BTIC2D - cr88192/bgbtech_misc GitHub Wiki
BTIC2D was an experimental DCT based codec.
Each macroblock consists of an 8x8 DCT Y block followed by 4x4 DCT UV blocks.
Coefficients are encoded in zigzag order, using AdSRice.
- Values greater than or equal to zero encode coefficient values.
- These values have an additional sign-fold.
- Values less than zero encode a run of zeroes.
- AdSRice: Values!=0 encode coeff value.
- 0 escapes a zero run (AdRice)
- 0: EOB
- 1+: Encodes the number of zeroes.
- Store an image with 1 pixel per macroblock;
- Colorspace is YUVDyuv;
- DCT blocks encode pixels relative to the YUVDyuv space;
- Y=Cy+Ly*Dy
- U=Cu+Ly*Du+Lu
- V=Cv+Ly*Dv+Lv
- Add multiple block codings.
- Block-Level Cmds
- Cy, Dy, YBlk8x8
- Cu, Du, UBlk4x4
- Cv, Dv, VBlk4x4
A B C x P=(3*B+3*C-2*A)/4
Exp Rice Table
0- 7 0- 7 0 8-11 8-15 1 12-15 16-31 2 16-19 32-63 3 ...
Exponential coding with AdRice used for coefficients, with the value being sign folded. Zeroes remain special, and are used for EOB or escape-coding runs of zeroes.
Use a mask table.
- xvuy-VUYs
- s: sticky
- YUVyuv: indicates which components are updated.
- 0, ZigZag+DCT
- 1, ZigZag+WHT