|
FZGPUModules 2.0
GPU-accelerated modular compression pipelines
|
#include <quantizer.h>
Public Attributes | |
| float | abs_error_bound |
| Absolute EB after mode conversion (0 for REL). | |
| float | user_error_bound |
| float | value_base |
| value_range (NOA); 0 for ABS/REL. | |
| uint32_t | quant_radius |
| Quantization radius. | |
| uint32_t | num_elements |
| Total element count. | |
| uint32_t | outlier_count |
| Actual number of outliers. | |
| DataType | input_type |
| Original input type (1B). | |
| DataType | code_type |
| Quantization code type (1B). | |
| uint8_t | eb_mode |
| ErrorBoundMode cast to uint8_t. | |
| uint8_t | zigzag_codes |
| 1 if ABS/NOA codes are zigzag-encoded. | |
| float | outlier_threshold |
| ABS/NOA: |x| >= threshold → forced outlier (inf = disabled). | |
| uint8_t | inplace_outliers |
| 1 if outliers are encoded in-place in the codes array. | |
| uint8_t | linear_mode |
| 1 if linear/no-outlier mode (signed codes, no outlier ports). | |
| uint8_t | dither |
| 1 if "_R"-style dithered reconstruction is enabled (LC QUANT_*_R). | |
| uint8_t | _pad [5] |
| Alignment padding (dither_seed needs 8-byte alignment) — must be zero. | |
| uint64_t | dither_seed |
| Deterministic per-element dither seed; meaningful only when dither. | |
| float | dither_strength |
| Dither offset amplitude as a fraction of abs_eb, in (0,1]; meaningful only when dither. | |
| uint32_t | _pad2 |
| double | abs_error_bound_f64 |
| double | value_base_f64 |
| Full-precision value_base; 0 in pre-2026-08-07 headers. | |
Serialized quantizer configuration stored in FZMBufferEntry.stage_config. Written by serializeHeader(); read back by deserializeHeader(). 72 bytes — fits within the 128-byte FZM_STAGE_CONFIG_SIZE limit.
| float fz::QuantizerConfig::abs_error_bound |
Absolute EB after mode conversion (0 for REL).
abs_error_bound_f64 — see the f64 note on that field. | float fz::QuantizerConfig::user_error_bound |
Original user-specified EB.
| float fz::QuantizerConfig::value_base |
value_range (NOA); 0 for ABS/REL.
value_base_f64. | uint32_t fz::QuantizerConfig::_pad2 |
Alignment padding (the f64 fields need 8-byte alignment) — must be zero.
| double fz::QuantizerConfig::abs_error_bound_f64 |
Full-precision absolute EB. The float copy above cannot carry an f64 bound: decode computes recon = q * 2*abs_eb, and for a field like S3D/N2 (q ~ 3.3e8) a 6e-08 relative error in abs_eb lands as a 4.4e-08 absolute error — 40x the bound. Headers written before 2026-08-07 leave this 0 and the reader falls back to the float field.