11#ifndef PACS_ENCODING_COMPRESSION_JPEG_BASELINE_CODEC_HPP
12#define PACS_ENCODING_COMPRESSION_JPEG_BASELINE_CODEC_HPP
69 [[nodiscard]] std::string_view
name() const noexcept override;
70 [[nodiscard]]
bool is_lossy() const noexcept override;
94 std::span<const uint8_t> pixel_data,
110 std::span<const uint8_t> compressed_data,
Abstract base class for image compression codecs.
JPEG Baseline (Process 1) codec implementation.
static constexpr std::string_view kTransferSyntaxUID
DICOM Transfer Syntax UID for JPEG Baseline.
jpeg_baseline_codec(jpeg_baseline_codec &&) noexcept
std::string_view transfer_syntax_uid() const noexcept override
Returns the Transfer Syntax UID supported by this codec.
bool is_lossy() const noexcept override
Checks if this codec produces lossy compression.
bool can_decode(const image_params ¶ms) const noexcept override
Checks if this codec can decode data with given parameters.
jpeg_baseline_codec(const jpeg_baseline_codec &)=delete
std::string_view name() const noexcept override
Returns a human-readable name for the codec.
codec_result encode(std::span< const uint8_t > pixel_data, const image_params ¶ms, const compression_options &options={}) const override
Compresses pixel data to JPEG Baseline format.
codec_result decode(std::span< const uint8_t > compressed_data, const image_params ¶ms) const override
Decompresses JPEG Baseline data.
jpeg_baseline_codec()
Constructs a JPEG Baseline codec instance.
bool can_encode(const image_params ¶ms) const noexcept override
Checks if this codec supports the given image parameters.
~jpeg_baseline_codec() override
jpeg_baseline_codec & operator=(const jpeg_baseline_codec &)=delete
std::unique_ptr< impl > impl_
Compression quality settings for lossy codecs.
Parameters describing image pixel data.