DK Animation

From MultimediaWiki
Revision as of 06:50, 16 April 2024 by Kostya (talk | contribs) (fill information)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
  • Company: Dorling Kindersley
  • Extension: .ani

This is an animation format used in various interactive encyclopedias from Dorling Kindersley. This is not a stand-alone format since it reuses some image as the initial background and its palette is used throughout animation as well.

Essentially the format consists of a rudimentary header and chunks with audio and video payload.

Animation header (30 bytes in total, all values are little-endian, even for Mac videos):

 2 bytes - always 1
 2 bytes - number of frames
 2 bytes - always zero
 2 bytes - frames per second (usually 5 or 7)
 2 bytes - 1 or 2
 2 bytes - always 16?
 2 bytes - always 0
 2 bytes - always 1
 2 bytes - always 1
 4 bytes - audio sample rate
 4 bytes - audio sample rate or byte rate
 2 bytes - always 1
 2 bytes - always 8 (bitdepth?)

Chunks start with 28-byte header:

 2 bytes - always 1
 4 bytes - audio part size
 4x2 bytes - video update rectangle (top, left, bottom, right)
 4 bytes - unpacked video size
 4 bytes - packed video size
 6 bytes - "funky!"

If audio data is present it's stored first. Audio seems to always be 8-bit mono PCM. Usually first 7-10 chunks contain only audio and last 7-10 chunks contain only video data.

Video is stored in RLE form. The compression format is simple: if byte has top bit set then its low 7 bits tell how many following bytes should be copied, otherwise it's a run value for a single following byte. In case when update image width is odd, it is padded to even width but the last column should be ignored.