DVC

From MultimediaWiki
Jump to navigation Jump to search
  • Company: Q-Team
  • Extension: dvc

This is an animation format based on RLE. Quite likely it was the ancestor of QPEG codec.

Container format

Header (all values are little-endian):

 6 bytes - "IDVCd\x00"
 2 bytes - height
 2 bytes - width
 2 bytes - unknown
 4 bytes - unknown, maybe frame delay in milliseconds
 4 bytes - unknown
 4 bytes - unknown, looks somewhat like the number of frames but not exactly it
 4 bytes - data size
 68 bytes - unknown
 708 bytes - palette (starting from colour 20)

Frames start with 16-bit value equal to one (zero means end of file) followed by 32-bit frame size and actual payload.

Video compression

Frame data starts with 128-byte remap table (used in literal mode) followed by the opcode stream.

Opcodes:

  • 0x00 -- skip pixel
  • 0x01-0x7F -- literal, output pixel value from the remap table using opcode as an index
  • 0x80 -- skip next_byte + 64 pixels
  • 0x81 -- skip next_byte + 320 pixels
  • 0x82-0xBF -- skip 2-63 pixels
  • 0xC0-0xDF -- copy 1-32 pixels from the stream
  • 0xE0 -- end of stream marker
  • 0xE1-0xFF -- repeat next byte from the stream 2-32 times