Pixar codecs

From MultimediaWiki
Jump to navigation Jump to search
  • 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.

Games using these codecs

Toy Story Activity Center