DK Animation
- 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.