PTWM
ptwm_core

ptwm_core::range_coder

Minimal, correct 32-bit range coder for PerGroupCodebook / Order1ScaleAC.

ptwm_core::range_coder

Minimal, correct 32-bit range coder for PerGroupCodebook / Order1ScaleAC.

rsmod

ptwm_core::range_coder

crates/ptwm-core/src/range_coder.rs:1
mod range_coder

Minimal, correct 32-bit range coder for PerGroupCodebook / Order1ScaleAC.

Encodes/decodes symbol streams under PMFs represented as quantized counts out of a caller-supplied total. Correctness over speed. ## Design Uses the LZMA-style carry-propagation range coder: - `range` starts at `0xFFFF_FFFF` (`2^32 - 1`). - `low` is tracked as a 64-bit integer; bit 32 signals a carry. - The encoder emits a leading alignment byte (`0x00`) followed by data bytes. - The decoder preloads 5 bytes at init (one is the alignment byte). - Carry propagation is handled via a single-byte cache plus a pending-`0xFF` count.
rstype

ptwm_core::range_coder::RangeDecoder

crates/ptwm-core/src/range_coder.rs:120
pub struct RangeDecoder

Range decoder.

rstype

ptwm_core::range_coder::RangeEncoder

crates/ptwm-core/src/range_coder.rs:16
pub struct RangeEncoder

Range encoder. Call [`Self::encode_symbol`] for each symbol, then [`Self::finish`].