The 8x8 inverse DCT is a separable integer transform with 13-bit constants: a column pass
that keeps two extra fractional bits, then a row pass that rounds, adds the level shift of 128
and clamps. Columns and rows that hold only a DC term take a shortcut. last is the highest
zigzag position that may be non-zero; a block with only a DC term becomes a flat tile.
jpeg_idct_block :: (block: *s32, last: s32, out: *u8, stride: s64)
The 8x8 inverse DCT is a separable integer transform with 13-bit constants: a column pass
that keeps two extra fractional bits, then a row pass that rounds, adds the level shift of 128
and clamps. Columns and rows that hold only a DC term take a shortcut. last is the highest
zigzag position that may be non-zero; a block with only a DC term becomes a flat tile.
Parameters
- block: *s32
- last: s32
- out: *u8
- stride: s64