|
PACS System 0.1.0
PACS DICOM system library
|
Frame-level Deflate codec implementation (Supplement 244). More...
#include <frame_deflate_codec.h>


Public Member Functions | |
| frame_deflate_codec (int compression_level=kDefaultCompressionLevel) | |
| Constructs a Frame Deflate codec instance. | |
| ~frame_deflate_codec () override | |
| frame_deflate_codec (const frame_deflate_codec &)=delete | |
| frame_deflate_codec & | operator= (const frame_deflate_codec &)=delete |
| frame_deflate_codec (frame_deflate_codec &&) noexcept | |
| frame_deflate_codec & | operator= (frame_deflate_codec &&) noexcept |
Codec Information | |
| std::string_view | transfer_syntax_uid () const noexcept override |
| Returns the Transfer Syntax UID supported by this codec. | |
| std::string_view | name () const noexcept override |
| Returns a human-readable name for the codec. | |
| bool | is_lossy () const noexcept override |
| Checks if this codec produces lossy compression. | |
| 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. | |
Configuration | |
| int | compression_level () const noexcept |
| Gets the current zlib compression level. | |
Compression Operations | |
| codec_result | encode (std::span< const uint8_t > pixel_data, const image_params ¶ms, const compression_options &options={}) const override |
| Compresses pixel data using zlib deflate. | |
| codec_result | decode (std::span< const uint8_t > compressed_data, const image_params ¶ms) const override |
| Decompresses deflate-compressed pixel data. | |
Public Member Functions inherited from kcenon::pacs::encoding::compression::compression_codec | |
| virtual | ~compression_codec ()=default |
Static Public Attributes | |
| static constexpr std::string_view | kTransferSyntaxUID |
| DICOM Transfer Syntax UID for Frame Deflate. | |
| static constexpr int | kDefaultCompressionLevel = 6 |
| Default zlib compression level (6 = balanced speed/ratio) | |
| static constexpr int | kMinCompressionLevel = 1 |
| Minimum zlib compression level (fastest) | |
| static constexpr int | kMaxCompressionLevel = 9 |
| Maximum zlib compression level (best compression) | |
Private Attributes | |
| int | compression_level_ |
Additional Inherited Members | |
Protected Member Functions inherited from kcenon::pacs::encoding::compression::compression_codec | |
| 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 |
Frame-level Deflate codec implementation (Supplement 244).
Implements DICOM Transfer Syntax 1.2.840.10008.1.2.11 defined in Supplement 244. Applies zlib deflate compression on a per-frame basis, specifically optimized for single-bit binary segmentation masks generated by AI algorithms.
Key Properties:
Supported Features:
Limitations:
Thread Safety:
Definition at line 53 of file frame_deflate_codec.h.
|
explicit |
Constructs a Frame Deflate codec instance.
| compression_level | zlib compression level (1-9). 1 = fastest, 9 = best compression, 6 = default balanced. |
Definition at line 17 of file frame_deflate_codec.cpp.
|
overridedefault |
|
delete |
|
defaultnoexcept |
|
nodiscardoverridevirtualnoexcept |
Checks if this codec can decode data with given parameters.
| params | The image parameters |
Implements kcenon::pacs::encoding::compression::compression_codec.
Definition at line 58 of file frame_deflate_codec.cpp.
|
nodiscardoverridevirtualnoexcept |
Checks if this codec supports the given image parameters.
| params | The image parameters to check |
Implements kcenon::pacs::encoding::compression::compression_codec.
Definition at line 40 of file frame_deflate_codec.cpp.
|
nodiscardnoexcept |
Gets the current zlib compression level.
Definition at line 62 of file frame_deflate_codec.cpp.
References compression_level_.
|
nodiscardoverridevirtual |
Decompresses deflate-compressed pixel data.
| compressed_data | Deflate compressed data (single frame) |
| params | Image parameters (width, height, samples_per_pixel) |
Implements kcenon::pacs::encoding::compression::compression_codec.
Definition at line 166 of file frame_deflate_codec.cpp.
References kcenon::pacs::error_codes::decompression_error, and kcenon::pacs::pacs_error().

|
nodiscardoverridevirtual |
Compresses pixel data using zlib deflate.
| pixel_data | Uncompressed pixel data (single frame) |
| params | Image parameters describing the pixel data |
| options | Compression options (lossless flag is ignored, always lossless) |
For binary segmentation masks (1-bit), achieves very high compression ratios due to the repetitive nature of single-bit data.
Implements kcenon::pacs::encoding::compression::compression_codec.
Definition at line 157 of file frame_deflate_codec.cpp.
References kcenon::pacs::error_codes::compression_error, and kcenon::pacs::pacs_error().

|
nodiscardoverridevirtualnoexcept |
Checks if this codec produces lossy compression.
Implements kcenon::pacs::encoding::compression::compression_codec.
Definition at line 36 of file frame_deflate_codec.cpp.
|
nodiscardoverridevirtualnoexcept |
Returns a human-readable name for the codec.
Implements kcenon::pacs::encoding::compression::compression_codec.
Definition at line 32 of file frame_deflate_codec.cpp.
|
delete |
|
defaultnoexcept |
|
nodiscardoverridevirtualnoexcept |
Returns the Transfer Syntax UID supported by this codec.
Implements kcenon::pacs::encoding::compression::compression_codec.
Definition at line 28 of file frame_deflate_codec.cpp.
|
private |
Definition at line 140 of file frame_deflate_codec.h.
Referenced by compression_level().
|
staticconstexpr |
Default zlib compression level (6 = balanced speed/ratio)
Definition at line 60 of file frame_deflate_codec.h.
|
staticconstexpr |
Maximum zlib compression level (best compression)
Definition at line 66 of file frame_deflate_codec.h.
|
staticconstexpr |
Minimum zlib compression level (fastest)
Definition at line 63 of file frame_deflate_codec.h.
|
staticconstexpr |
DICOM Transfer Syntax UID for Frame Deflate.
Definition at line 56 of file frame_deflate_codec.h.
Referenced by kcenon::pacs::encoding::compression::codec_factory::create().