So in some previous posts I’ve described Bink2 bitstream. What’s the catch? It applies only to KB2f
files, newer versions (KB2g
—KB2i
) use different bitstream format:
- Block types are coded as an index in LRU list with an unary code;
- One quantiser for the whole macroblock instead of individual per-component quantisers;
- New CBP coding method for luma (it depends on number of bits set in the previous CBP and such)
- DCs are coded as unary codes + additional bits instead of fixed bits + additional bits
- AC coding now has skips coded before coefficients (previously first coefficient was always coded).
Implementations welcome.