11 bool jpeg_recompression,
12 float quality_distance)
13 : lossless_(lossless),
14 jpeg_recompression_(jpeg_recompression),
15 quality_distance_(quality_distance) {}
22std::string_view
jpegxl_codec::transfer_syntax_uid() const noexcept {
24 return jpeg_recompression_
25 ? kTransferSyntaxUIDJPEGRecompression
26 : kTransferSyntaxUIDLossless;
28 return kTransferSyntaxUIDLossy;
34 ?
"JPEG XL JPEG Recompression"
35 :
"JPEG XL (Lossless)";
37 return "JPEG XL (Lossy)";
45 if (params.width == 0 || params.height == 0) {
49 if (params.samples_per_pixel != 1 && params.samples_per_pixel != 3) {
53 if (params.bits_stored < 1 || params.bits_stored > 16) {
61 return can_encode(params);
79 [[maybe_unused]] std::span<const uint8_t> pixel_data,
84 "JPEG XL codec not available: libjxl library not found at build time. "
85 "Build with PACS_WITH_JPEGXL=ON to enable.");
89 [[maybe_unused]] std::span<const uint8_t> compressed_data,
93 "JPEG XL codec not available: libjxl library not found at build time. "
94 "Build with PACS_WITH_JPEGXL=ON to enable.");
JPEG XL codec implementation (Supplement 232).
float quality_distance() const noexcept
codec_result decode(std::span< const uint8_t > compressed_data, const image_params ¶ms) const override
Decompresses compressed pixel data.
bool is_jpeg_recompression_mode() const noexcept
std::string_view name() const noexcept override
Returns a human-readable name for the codec.
bool is_lossless_mode() const noexcept
bool can_encode(const image_params ¶ms) const noexcept override
Checks if this codec supports the given image parameters.
bool can_decode(const image_params ¶ms) const noexcept override
Checks if this codec can decode data with given parameters.
bool is_lossy() const noexcept override
Checks if this codec produces lossy compression.
jpegxl_codec(bool lossless=true, bool jpeg_recompression=false, float quality_distance=kDefaultQualityDistance)
Constructs a JPEG XL codec instance.
codec_result encode(std::span< const uint8_t > pixel_data, const image_params ¶ms, const compression_options &options={}) const override
Compresses uncompressed pixel data.
constexpr int compression_error
constexpr int decompression_error
Result< T > pacs_error(int code, const std::string &message, const std::string &details="")
Create a PACS error result with module context.
Result<T> type aliases and helpers for PACS system.
Compression quality settings for lossy codecs.
Parameters describing image pixel data.