|
PACS System 0.1.0
PACS DICOM system library
|
JPEG Lossless (Process 14, Selection Value 1) codec implementation. More...
#include <jpeg_lossless_codec.h>


Classes | |
| class | impl |
| PIMPL implementation for jpeg_lossless_codec. More... | |
Public Member Functions | |
| jpeg_lossless_codec (int predictor=kDefaultPredictor, int point_transform=kDefaultPointTransform) | |
| Constructs a JPEG Lossless codec instance. | |
| ~jpeg_lossless_codec () override | |
| jpeg_lossless_codec (const jpeg_lossless_codec &)=delete | |
| jpeg_lossless_codec & | operator= (const jpeg_lossless_codec &)=delete |
| jpeg_lossless_codec (jpeg_lossless_codec &&) noexcept | |
| jpeg_lossless_codec & | operator= (jpeg_lossless_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 | predictor () const noexcept |
| Gets the current predictor selection value. | |
| int | point_transform () const noexcept |
| Gets the current point transform value. | |
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 to JPEG Lossless format. | |
| codec_result | decode (std::span< const uint8_t > compressed_data, const image_params ¶ms) const override |
| Decompresses JPEG Lossless 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 = "1.2.840.10008.1.2.4.70" |
| DICOM Transfer Syntax UID for JPEG Lossless (Process 14, Selection Value 1) | |
| static constexpr int | kDefaultPredictor = 1 |
| Default predictor selection value (1 = Ra, left neighbor prediction) | |
| static constexpr int | kDefaultPointTransform = 0 |
| Default point transform (0 = no scaling) | |
Private Attributes | |
| std::unique_ptr< impl > | impl_ |
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 |
JPEG Lossless (Process 14, Selection Value 1) codec implementation.
Implements DICOM Transfer Syntax 1.2.840.10008.1.2.4.70. Uses libjpeg-turbo for high-performance SIMD-accelerated lossless encoding/decoding.
Supported Features:
Limitations:
Thread Safety:
Integration:
Definition at line 48 of file jpeg_lossless_codec.h.
|
explicit |
Constructs a JPEG Lossless codec instance.
| predictor | Predictor selection (1-7, default: 1)
|
| point_transform | Point transform value (0-15, default: 0) |
Definition at line 741 of file jpeg_lossless_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 770 of file jpeg_lossless_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 762 of file jpeg_lossless_codec.cpp.
|
nodiscardoverridevirtual |
Decompresses JPEG Lossless data.
| compressed_data | JPEG lossless compressed data |
| params | Image parameters (width/height for validation) |
Output format matches the original bit depth:
Implements kcenon::pacs::encoding::compression::compression_codec.
Definition at line 799 of file jpeg_lossless_codec.cpp.
References kcenon::pacs::encoding::compression::jpeg_lossless_codec::impl::decode(), and impl_.

|
nodiscardoverridevirtual |
Compresses pixel data to JPEG Lossless format.
| pixel_data | Uncompressed pixel data (8/12/16-bit) |
| params | Image parameters |
| options | Compression options (lossless flag is ignored, always lossless) |
The output is guaranteed to be exactly reconstructible (lossless). Quality setting in options is ignored for lossless compression.
Implements kcenon::pacs::encoding::compression::compression_codec.
Definition at line 792 of file jpeg_lossless_codec.cpp.
References kcenon::pacs::encoding::compression::jpeg_lossless_codec::impl::encode(), and impl_.

|
nodiscardoverridevirtualnoexcept |
Checks if this codec produces lossy compression.
Implements kcenon::pacs::encoding::compression::compression_codec.
Definition at line 758 of file jpeg_lossless_codec.cpp.
|
nodiscardoverridevirtualnoexcept |
Returns a human-readable name for the codec.
Implements kcenon::pacs::encoding::compression::compression_codec.
Definition at line 754 of file jpeg_lossless_codec.cpp.
|
delete |
|
defaultnoexcept |
|
nodiscardnoexcept |
Gets the current point transform value.
Definition at line 788 of file jpeg_lossless_codec.cpp.
References impl_, and kcenon::pacs::encoding::compression::jpeg_lossless_codec::impl::point_transform().

|
nodiscardnoexcept |
Gets the current predictor selection value.
Definition at line 784 of file jpeg_lossless_codec.cpp.
References impl_, and kcenon::pacs::encoding::compression::jpeg_lossless_codec::impl::predictor().

|
nodiscardoverridevirtualnoexcept |
Returns the Transfer Syntax UID supported by this codec.
Implements kcenon::pacs::encoding::compression::compression_codec.
Definition at line 750 of file jpeg_lossless_codec.cpp.
|
private |
Definition at line 149 of file jpeg_lossless_codec.h.
Referenced by decode(), encode(), point_transform(), and predictor().
|
staticconstexpr |
Default point transform (0 = no scaling)
Definition at line 57 of file jpeg_lossless_codec.h.
|
staticconstexpr |
Default predictor selection value (1 = Ra, left neighbor prediction)
Definition at line 54 of file jpeg_lossless_codec.h.
|
staticconstexpr |
DICOM Transfer Syntax UID for JPEG Lossless (Process 14, Selection Value 1)
Definition at line 51 of file jpeg_lossless_codec.h.
Referenced by kcenon::pacs::encoding::compression::codec_factory::create().