FZGPUModules 2.0
GPU-accelerated modular compression pipelines
Loading...
Searching...
No Matches
fz::QuantizerConfig Struct Reference

#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.
 

Detailed Description

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.

Member Data Documentation

◆ abs_error_bound

float fz::QuantizerConfig::abs_error_bound

Absolute EB after mode conversion (0 for REL).

Deprecated:
Narrow copy of the absolute EB, kept so old readers still parse. New code must read abs_error_bound_f64 — see the f64 note on that field.

◆ user_error_bound

float fz::QuantizerConfig::user_error_bound

Original user-specified EB.

◆ value_base

float fz::QuantizerConfig::value_base

value_range (NOA); 0 for ABS/REL.

Deprecated:
Narrow copy; new code reads value_base_f64.

◆ _pad2

uint32_t fz::QuantizerConfig::_pad2

Alignment padding (the f64 fields need 8-byte alignment) — must be zero.

◆ abs_error_bound_f64

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.