Cirrus Logic AccuPak
Cirrus Logic AccuPak is a reduced precision YUV codec.
The AccuPak codec packs 4 Y samples and 2 C samples into 32 bits by representing each Y sample with 5 bits and each C sample with 6 bits. It is essentially a scaled-down method of coding YUV 4:1:1, where each group of 4 pixels on a line is represented by a luminance sample each but share C samples.
Each set of 32 bits represents 4 pixels on a line:
p0 p1 p2 p3
For each set of 32 bits, read left -> right:
p3.Y = next 5 bits p2.Y = next 5 bits p1.Y = next 5 bits p0.Y = next 5 bits Cb/U = next 6 bits Cr/V = next 6 bits ------- 32 bits
Thus, the first 5 bits represent the Y sample for the last pixel in the group of 4 pixels.