|
PACS System 0.1.0
PACS DICOM system library
|
JPEG-LS codec implementation supporting both lossless and near-lossless modes. More...
#include <jpeg_ls_codec.h>


Classes | |
| class | impl |
| PIMPL implementation for jpeg_ls_codec. More... | |
Public Member Functions | |
| jpeg_ls_codec (bool lossless=true, int near_value=kAutoNearValue) | |
| Constructs a JPEG-LS codec instance. | |
| ~jpeg_ls_codec () override | |
| jpeg_ls_codec (const jpeg_ls_codec &)=delete | |
| jpeg_ls_codec & | operator= (const jpeg_ls_codec &)=delete |
| jpeg_ls_codec (jpeg_ls_codec &&) noexcept | |
| jpeg_ls_codec & | operator= (jpeg_ls_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 | |
| bool | is_lossless_mode () const noexcept |
| Checks if this codec is configured for lossless mode. | |
| int | near_value () const noexcept |
| Gets the NEAR parameter 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-LS format. | |
| codec_result | decode (std::span< const uint8_t > compressed_data, const image_params ¶ms) const override |
| Decompresses JPEG-LS data. | |
Public Member Functions inherited from kcenon::pacs::encoding::compression::compression_codec | |
| virtual | ~compression_codec ()=default |
Static Public Attributes | |
| static constexpr std::string_view | kTransferSyntaxUIDLossless |
| DICOM Transfer Syntax UID for JPEG-LS Lossless. | |
| static constexpr std::string_view | kTransferSyntaxUIDNearLossless |
| DICOM Transfer Syntax UID for JPEG-LS Near-Lossless (Lossy) | |
| static constexpr int | kAutoNearValue = -1 |
| Sentinel value indicating "auto-determine NEAR based on mode". | |
| static constexpr int | kLosslessNearValue = 0 |
| NEAR parameter for lossless mode. | |
| static constexpr int | kDefaultNearLosslessValue = 2 |
| Default NEAR parameter for near-lossless mode (visually lossless quality) | |
| static constexpr int | kMaxNearValue = 255 |
| Maximum NEAR parameter value (higher = more compression, more loss) | |
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-LS codec implementation supporting both lossless and near-lossless modes.
Implements DICOM Transfer Syntaxes:
Uses CharLS library for high-performance JPEG-LS encoding/decoding.
Supported Features:
Limitations:
Thread Safety:
Integration:
Definition at line 50 of file jpeg_ls_codec.h.
|
explicit |
Constructs a JPEG-LS codec instance.
| lossless | If true, use lossless mode (Transfer Syntax 1.2.840.10008.1.2.4.80). If false, use near-lossless mode (Transfer Syntax 1.2.840.10008.1.2.4.81). |
| near_value | NEAR parameter controlling the maximum absolute error per pixel. -1 = auto (0 for lossless, kDefaultNearLosslessValue for near-lossless) 0 = lossless (overrides lossless flag to true) 1-255 = near-lossless (bounded error, higher = more compression) Typical medical imaging: 1-3 for visually lossless quality. |
Definition at line 253 of file jpeg_ls_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 302 of file jpeg_ls_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 273 of file jpeg_ls_codec.cpp.
|
nodiscardoverridevirtual |
Decompresses JPEG-LS data.
| compressed_data | JPEG-LS 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 327 of file jpeg_ls_codec.cpp.
References kcenon::pacs::encoding::compression::jpeg_ls_codec::impl::decode(), and impl_.

|
nodiscardoverridevirtual |
Compresses pixel data to JPEG-LS format.
| pixel_data | Uncompressed pixel data (8/12/16-bit, grayscale or color) |
| params | Image parameters |
| options | Compression options:
|
For lossless mode (NEAR=0):
For near-lossless mode (NEAR>0):
Implements kcenon::pacs::encoding::compression::compression_codec.
Definition at line 321 of file jpeg_ls_codec.cpp.
References kcenon::pacs::encoding::compression::jpeg_ls_codec::impl::encode(), and impl_.

|
nodiscardnoexcept |
Checks if this codec is configured for lossless mode.
Definition at line 313 of file jpeg_ls_codec.cpp.
References impl_, and kcenon::pacs::encoding::compression::jpeg_ls_codec::impl::is_lossless_mode().
Referenced by transfer_syntax_uid().


|
nodiscardoverridevirtualnoexcept |
Checks if this codec produces lossy compression.
Implements kcenon::pacs::encoding::compression::compression_codec.
Definition at line 269 of file jpeg_ls_codec.cpp.
References impl_, and kcenon::pacs::encoding::compression::jpeg_ls_codec::impl::is_lossless_mode().

|
nodiscardoverridevirtualnoexcept |
Returns a human-readable name for the codec.
Implements kcenon::pacs::encoding::compression::compression_codec.
Definition at line 265 of file jpeg_ls_codec.cpp.
References impl_, and kcenon::pacs::encoding::compression::jpeg_ls_codec::impl::is_lossless_mode().

|
nodiscardnoexcept |
Gets the NEAR parameter value.
Definition at line 317 of file jpeg_ls_codec.cpp.
References impl_, and kcenon::pacs::encoding::compression::jpeg_ls_codec::impl::near_value().

|
delete |
|
defaultnoexcept |
|
nodiscardoverridevirtualnoexcept |
Returns the Transfer Syntax UID supported by this codec.
Implements kcenon::pacs::encoding::compression::compression_codec.
Definition at line 261 of file jpeg_ls_codec.cpp.
References is_lossless_mode().

|
private |
Definition at line 167 of file jpeg_ls_codec.h.
Referenced by decode(), encode(), is_lossless_mode(), is_lossy(), name(), and near_value().
|
staticconstexpr |
Sentinel value indicating "auto-determine NEAR based on mode".
Definition at line 61 of file jpeg_ls_codec.h.
Referenced by kcenon::pacs::encoding::compression::jpeg_ls_codec::impl::impl().
|
staticconstexpr |
Default NEAR parameter for near-lossless mode (visually lossless quality)
Definition at line 67 of file jpeg_ls_codec.h.
Referenced by kcenon::pacs::encoding::compression::jpeg_ls_codec::impl::impl().
|
staticconstexpr |
NEAR parameter for lossless mode.
Definition at line 64 of file jpeg_ls_codec.h.
Referenced by kcenon::pacs::encoding::compression::jpeg_ls_codec::impl::impl().
|
staticconstexpr |
Maximum NEAR parameter value (higher = more compression, more loss)
Definition at line 70 of file jpeg_ls_codec.h.
Referenced by kcenon::pacs::encoding::compression::jpeg_ls_codec::impl::encode(), and kcenon::pacs::encoding::compression::jpeg_ls_codec::impl::impl().
|
staticconstexpr |
DICOM Transfer Syntax UID for JPEG-LS Lossless.
Definition at line 53 of file jpeg_ls_codec.h.
Referenced by kcenon::pacs::encoding::compression::codec_factory::create().
|
staticconstexpr |
DICOM Transfer Syntax UID for JPEG-LS Near-Lossless (Lossy)
Definition at line 57 of file jpeg_ls_codec.h.
Referenced by kcenon::pacs::encoding::compression::codec_factory::create().