Pixar codecs
- Company: Pixar
- FOURCCS: pix0, pix1, pix2, pix3, pix4, pix5, pix6, pix7, pixA
These codecs are employed to compress paletted data in MOV.
Pixar codecs 0 and 4
These codecs store uncompressed image split into 4x4 tiles.
Pixar codecs 1 and 2
Not much is known, but they seem to be similar to codec 3.
Pixar codec 3
This codec employs vector quantisation, so instead of transmitting each frame tile, only the codebook (or its update) plus tile indices are transmitted.
Frame format:
- 16-bit big-endian number of tiles in codebook (update)
- codebook update (the number of entries is specified above):
- 16-bit codebook entry ID
- 16 bytes of tile data
- compressed frame description
Frame description consists of 16-bit opcodes specifying the operation:
- 0-159 - leave that number of tiles unchanged from the previous frame
- 160-319 - restore (opcode-159) tiles from the initial background frame (note: the frame is not coded in the file but rather provided by the game engine from elsewhere)
- 320-65535 - paint tile (opcode-320) from the codebook
Pixar codec 5
This is an extension of codec 3. Now frame data starts with 16-bit big-endian frame number and probably the total number of tiles. If that value is not zero or 0xFFFF, two additional 16-bit values should be read. The rest is the same as in codec 3.
Pixar codec 6
Probably similar to codec 5.
Pixar codec 7
Unknown, but it seems to employ Huffman compression.
Pixar codec A
Unknown, but it seems to be not tile-based on the first glance.