PACS System 0.1.0
PACS DICOM system library
Loading...
Searching...
No Matches
pacs-encoding.cppm
Go to the documentation of this file.
1// BSD 3-Clause License
2// Copyright (c) 2025, 🍀☀🌕🌥 🌊
3// See the LICENSE file in the project root for full license information.
4
22module;
23
24// Standard library imports
25#include <cstddef>
26#include <cstdint>
27#include <functional>
28#include <memory>
29#include <optional>
30#include <span>
31#include <string>
32#include <string_view>
33#include <type_traits>
34#include <vector>
35
36// PACS encoding headers
45
46// Compression codec headers
55
56// SIMD utility headers
63
64export module kcenon.pacs:encoding;
65
66// ============================================================================
67// Re-export pacs::encoding namespace
68// ============================================================================
69
70export namespace pacs::encoding {
71
72// Byte order types
73using pacs::encoding::byte_order;
74
75// Byte swap utilities
76using pacs::encoding::byte_swap;
77
78// VR types
79using pacs::encoding::vr_type;
80using pacs::encoding::to_string;
81using pacs::encoding::from_string;
82
83// VR info
84using pacs::encoding::vr_info;
85using pacs::encoding::get_vr_info;
86
87// Transfer syntax
88using pacs::encoding::transfer_syntax;
89using pacs::encoding::vr_encoding;
90using pacs::encoding::compression_type;
91
92// Codecs
93using pacs::encoding::explicit_vr_codec;
94using pacs::encoding::explicit_vr_big_endian_codec;
95using pacs::encoding::implicit_vr_codec;
96
97} // namespace pacs::encoding
98
99// ============================================================================
100// Re-export pacs::encoding::compression namespace
101// ============================================================================
102
104
105// Image parameters
106using pacs::encoding::compression::photometric_interpretation;
107using pacs::encoding::compression::to_string;
108using pacs::encoding::compression::parse_photometric_interpretation;
109using pacs::encoding::compression::image_params;
110
111// Compression types
112using pacs::encoding::compression::compression_options;
113using pacs::encoding::compression::compression_result;
114using pacs::encoding::compression::codec_result;
115
116// Codec base class
117using pacs::encoding::compression::compression_codec;
118
119// Codec factory
120using pacs::encoding::compression::codec_factory;
121
122// JPEG codecs
123using pacs::encoding::compression::jpeg_baseline_codec;
124using pacs::encoding::compression::jpeg_lossless_codec;
125using pacs::encoding::compression::jpeg_ls_codec;
126using pacs::encoding::compression::jpeg2000_codec;
127
128// RLE codec
129using pacs::encoding::compression::rle_codec;
130
131} // namespace pacs::encoding::compression
132
133// ============================================================================
134// Re-export pacs::encoding::simd namespace
135// ============================================================================
136
137export namespace pacs::encoding::simd {
138
139// SIMD feature detection
140using pacs::encoding::simd::simd_feature;
141using pacs::encoding::simd::has_feature;
142using pacs::encoding::simd::detect_features;
143using pacs::encoding::simd::get_features;
144using pacs::encoding::simd::optimal_vector_width;
145
146// Individual feature checks
147using pacs::encoding::simd::has_sse2;
148using pacs::encoding::simd::has_ssse3;
149using pacs::encoding::simd::has_sse41;
150using pacs::encoding::simd::has_avx;
151using pacs::encoding::simd::has_avx2;
152using pacs::encoding::simd::has_avx512f;
153using pacs::encoding::simd::has_neon;
154
155// SIMD byte swap operations
156using pacs::encoding::simd::swap_bytes_16_simd;
157using pacs::encoding::simd::swap_bytes_32_simd;
158using pacs::encoding::simd::swap_bytes_64_simd;
159
160} // namespace pacs::encoding::simd
Byte swapping utilities for endianness conversion.
Encoder/decoder for Explicit VR Big Endian transfer syntax.
Encoder/decoder for Explicit VR Little Endian transfer syntax.
Encoder/decoder for Implicit VR Little Endian transfer syntax.
SIMD configuration and CPU feature detection.
SIMD optimizations for photometric interpretation conversions.
SIMD optimizations for RLE codec operations.
Platform-specific SIMD type definitions and wrappers.
Common SIMD utility functions.
SIMD optimizations for window/level (VOI LUT) application.