|
PACS System 0.1.0
PACS DICOM system library
|
Abstract base class for image compression codecs. More...
#include <compression_codec.h>


Public Member Functions | |
| virtual | ~compression_codec ()=default |
Codec Information | |
| virtual std::string_view | transfer_syntax_uid () const noexcept=0 |
| Returns the Transfer Syntax UID supported by this codec. | |
| virtual std::string_view | name () const noexcept=0 |
| Returns a human-readable name for the codec. | |
| virtual bool | is_lossy () const noexcept=0 |
| Checks if this codec produces lossy compression. | |
| virtual bool | can_encode (const image_params ¶ms) const noexcept=0 |
| Checks if this codec supports the given image parameters. | |
| virtual bool | can_decode (const image_params ¶ms) const noexcept=0 |
| Checks if this codec can decode data with given parameters. | |
Compression Operations | |
| virtual codec_result | encode (std::span< const uint8_t > pixel_data, const image_params ¶ms, const compression_options &options={}) const =0 |
| Compresses uncompressed pixel data. | |
| virtual codec_result | decode (std::span< const uint8_t > compressed_data, const image_params ¶ms) const =0 |
| Decompresses compressed pixel data. | |
Protected Member Functions | |
| compression_codec ()=default | |
| compression_codec (const compression_codec &)=default | |
| compression_codec & | operator= (const compression_codec &)=default |
| compression_codec (compression_codec &&)=default | |
| compression_codec & | operator= (compression_codec &&)=default |
Abstract base class for image compression codecs.
Provides a unified interface for DICOM image compression and decompression. Implementations wrap external libraries (libjpeg-turbo, OpenJPEG, etc.).
Thread Safety:
Definition at line 82 of file compression_codec.h.
|
virtualdefault |
|
protecteddefault |
|
protecteddefault |
|
protecteddefault |
|
nodiscardpure virtualnoexcept |
Checks if this codec can decode data with given parameters.
| params | The image parameters |
Implemented in kcenon::pacs::encoding::compression::frame_deflate_codec, kcenon::pacs::encoding::compression::hevc_codec, kcenon::pacs::encoding::compression::htj2k_codec, kcenon::pacs::encoding::compression::jpeg2000_codec, kcenon::pacs::encoding::compression::jpeg_baseline_codec, kcenon::pacs::encoding::compression::jpeg_lossless_codec, kcenon::pacs::encoding::compression::jpeg_ls_codec, kcenon::pacs::encoding::compression::jpegxl_codec, and kcenon::pacs::encoding::compression::rle_codec.
|
nodiscardpure virtualnoexcept |
Checks if this codec supports the given image parameters.
| params | The image parameters to check |
Implemented in kcenon::pacs::encoding::compression::frame_deflate_codec, kcenon::pacs::encoding::compression::hevc_codec, kcenon::pacs::encoding::compression::htj2k_codec, kcenon::pacs::encoding::compression::jpeg2000_codec, kcenon::pacs::encoding::compression::jpeg_baseline_codec, kcenon::pacs::encoding::compression::jpeg_lossless_codec, kcenon::pacs::encoding::compression::jpeg_ls_codec, kcenon::pacs::encoding::compression::jpegxl_codec, and kcenon::pacs::encoding::compression::rle_codec.
|
nodiscardpure virtual |
Decompresses compressed pixel data.
| compressed_data | The compressed pixel data (single frame) |
| params | Image parameters (width, height, samples_per_pixel) |
The output pixel data is always in interleaved format (planar_configuration=0).
Implemented in kcenon::pacs::encoding::compression::frame_deflate_codec, kcenon::pacs::encoding::compression::hevc_codec, kcenon::pacs::encoding::compression::htj2k_codec, kcenon::pacs::encoding::compression::jpeg2000_codec, kcenon::pacs::encoding::compression::jpeg_baseline_codec, kcenon::pacs::encoding::compression::jpeg_lossless_codec, kcenon::pacs::encoding::compression::jpeg_ls_codec, kcenon::pacs::encoding::compression::jpegxl_codec, and kcenon::pacs::encoding::compression::rle_codec.
|
nodiscardpure virtual |
Compresses uncompressed pixel data.
| pixel_data | The raw, uncompressed pixel data |
| params | Image parameters describing the pixel data |
| options | Compression settings |
The input pixel_data must match the format specified by params:
Implemented in kcenon::pacs::encoding::compression::frame_deflate_codec, kcenon::pacs::encoding::compression::hevc_codec, kcenon::pacs::encoding::compression::htj2k_codec, kcenon::pacs::encoding::compression::jpeg2000_codec, kcenon::pacs::encoding::compression::jpeg_baseline_codec, kcenon::pacs::encoding::compression::jpeg_lossless_codec, kcenon::pacs::encoding::compression::jpeg_ls_codec, kcenon::pacs::encoding::compression::jpegxl_codec, and kcenon::pacs::encoding::compression::rle_codec.
|
nodiscardpure virtualnoexcept |
Checks if this codec produces lossy compression.
Implemented in kcenon::pacs::encoding::compression::frame_deflate_codec, kcenon::pacs::encoding::compression::hevc_codec, kcenon::pacs::encoding::compression::htj2k_codec, kcenon::pacs::encoding::compression::jpeg2000_codec, kcenon::pacs::encoding::compression::jpeg_baseline_codec, kcenon::pacs::encoding::compression::jpeg_lossless_codec, kcenon::pacs::encoding::compression::jpeg_ls_codec, kcenon::pacs::encoding::compression::jpegxl_codec, and kcenon::pacs::encoding::compression::rle_codec.
|
nodiscardpure virtualnoexcept |
Returns a human-readable name for the codec.
Implemented in kcenon::pacs::encoding::compression::frame_deflate_codec, kcenon::pacs::encoding::compression::hevc_codec, kcenon::pacs::encoding::compression::htj2k_codec, kcenon::pacs::encoding::compression::jpeg2000_codec, kcenon::pacs::encoding::compression::jpeg_baseline_codec, kcenon::pacs::encoding::compression::jpeg_lossless_codec, kcenon::pacs::encoding::compression::jpeg_ls_codec, kcenon::pacs::encoding::compression::jpegxl_codec, and kcenon::pacs::encoding::compression::rle_codec.
|
protecteddefault |
|
protecteddefault |
|
nodiscardpure virtualnoexcept |
Returns the Transfer Syntax UID supported by this codec.
Implemented in kcenon::pacs::encoding::compression::frame_deflate_codec, kcenon::pacs::encoding::compression::hevc_codec, kcenon::pacs::encoding::compression::htj2k_codec, kcenon::pacs::encoding::compression::jpeg2000_codec, kcenon::pacs::encoding::compression::jpeg_baseline_codec, kcenon::pacs::encoding::compression::jpeg_lossless_codec, kcenon::pacs::encoding::compression::jpeg_ls_codec, kcenon::pacs::encoding::compression::jpegxl_codec, and kcenon::pacs::encoding::compression::rle_codec.