28static constexpr std::array<std::string_view, 16> kSupportedTransferSyntaxes = {{
50 std::string_view transfer_syntax_uid) {
54 return std::make_unique<rle_codec>();
59 return std::make_unique<jpeg_baseline_codec>();
64 return std::make_unique<jpeg_lossless_codec>();
69 return std::make_unique<jpeg_ls_codec>(
true);
74 return std::make_unique<jpeg_ls_codec>(
false);
79 return std::make_unique<jpeg2000_codec>(
true);
84 return std::make_unique<jpeg2000_codec>(
false);
89 return std::make_unique<hevc_codec>(
false);
94 return std::make_unique<hevc_codec>(
true);
99 return std::make_unique<jpegxl_codec>(
true,
false);
104 return std::make_unique<jpegxl_codec>(
true,
true);
109 return std::make_unique<jpegxl_codec>(
false);
114 return std::make_unique<htj2k_codec>(
true,
false);
119 return std::make_unique<htj2k_codec>(
true,
true);
124 return std::make_unique<htj2k_codec>(
false);
129 return std::make_unique<frame_deflate_codec>();
141 return {kSupportedTransferSyntaxes.begin(), kSupportedTransferSyntaxes.end()};
145 for (
const auto&
uid : kSupportedTransferSyntaxes) {
146 if (
uid == transfer_syntax_uid) {
static std::unique_ptr< compression_codec > create(std::string_view transfer_syntax_uid)
Creates a codec instance for the given Transfer Syntax UID.
static std::vector< std::string_view > supported_transfer_syntaxes()
Returns a list of all supported Transfer Syntax UIDs.
static bool is_supported(std::string_view transfer_syntax_uid)
Checks if a Transfer Syntax is supported for compression.
static constexpr std::string_view kTransferSyntaxUID
DICOM Transfer Syntax UID for Frame Deflate.
static constexpr std::string_view kTransferSyntaxUIDMain10
DICOM Transfer Syntax UID for HEVC/H.265 Main 10 Profile / Level 5.1.
static constexpr std::string_view kTransferSyntaxUIDMain
DICOM Transfer Syntax UID for HEVC/H.265 Main Profile / Level 5.1.
static constexpr std::string_view kTransferSyntaxUIDLossy
DICOM Transfer Syntax UID for HTJ2K (Lossy)
static constexpr std::string_view kTransferSyntaxUIDLossless
DICOM Transfer Syntax UID for HTJ2K Lossless Only.
static constexpr std::string_view kTransferSyntaxUIDRPCL
DICOM Transfer Syntax UID for HTJ2K with RPCL Options (Lossless Only)
static constexpr std::string_view kTransferSyntaxUIDLossy
DICOM Transfer Syntax UID for JPEG 2000 (Lossy or Lossless)
static constexpr std::string_view kTransferSyntaxUIDLossless
DICOM Transfer Syntax UID for JPEG 2000 Lossless Only.
static constexpr std::string_view kTransferSyntaxUID
DICOM Transfer Syntax UID for JPEG Baseline.
static constexpr std::string_view kTransferSyntaxUID
DICOM Transfer Syntax UID for JPEG Lossless (Process 14, Selection Value 1)
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 std::string_view kTransferSyntaxUIDJPEGRecompression
DICOM Transfer Syntax UID for JPEG XL JPEG Recompression.
static constexpr std::string_view kTransferSyntaxUIDLossy
DICOM Transfer Syntax UID for JPEG XL (any mode)
static constexpr std::string_view kTransferSyntaxUIDLossless
DICOM Transfer Syntax UID for JPEG XL Lossless.
static constexpr std::string_view kTransferSyntaxUID
DICOM Transfer Syntax UID for RLE Lossless.
Represents a DICOM Transfer Syntax.