PTWM
Transforms

Byte Split & Nibble Split

Deinterleaves a flat byte plane into separate planes by bit significance.

Byte Split and Nibble Split

The ByteSplit and NibbleSplit transforms deinterleave bytes or nibbles by significance to isolate predictable bit patterns into their own planes.

Byte Split

ByteSplit performs a round-robin deinterleave of a flat byte plane into n separate planes (where n is 2, 4, or 8).

For an input stream splitting into 4 planes, the bytes are routed as follows:

Input Element 0 Element 1 Element 2
Bytes b0b1b2b3 b4b5b6b7 b8b9b10b11
Plane 0 b0 b4 b8
Plane 1 b1 b5 b9
Plane 2 b2 b6 b10
Plane 3 b3 b7 b11

This transform typically follows a Bit Reorder step. By grouping bytes of the same significance together (e.g., placing all the exponent bytes of a float32 tensor into a single plane), the entropy coder sees highly skewed, compressible distributions rather than interleaved noise.

Nibble Split

NibbleSplit performs the same isolation at a 4-bit granularity. It splits each input byte [HHHH LLLL] into two separate one-nibble-per-byte planes:

  • Plane 0 (High): The high nibble (b >> 4) & 0x0F (often the exponent for FP8 types).
  • Plane 1 (Low): The low nibble b & 0x0F (often the sign and mantissa).

This enables dtype-aware plane coding for sub-byte formats like FP8 and FP4.

References

  • Martin Burtscher and Paruj Ratanaworabhan, "FPC: A High-Speed Compressor for Double-Precision Floating-Point Data", IEEE Transactions on Computers (2009). Link