Cybermate Delta Animation file format
Jump to navigation
Jump to search
Stereo CAD-3D 2.0
Communication Pipeline Specification
by Tom Hudson
April, 1987
Copyright 1987 Tom Hudson
All rights reserved
CYBERMATE COMPRESSED DELTA FILE FORMAT
The Cybermate animation system uses a "delta" compression
technique for storage of animated sequences. A delta
compression is a simple technique which compares a frame of
animation to the previous frame, storing only the changes (or
deltas) that occurred from one frame to the next.
In the current application of the delta compression
technique, the first frame of the animation sequence is
stored in a DEGAS-format picture file, and the remainder of
the animation sequence is stored as a series of delta values
in a .DLT file.
Each frame of the animation is recorded as a series of delta
values, each of which is stored as a WORD value from 0 to
31996 which indicate an offset into the 32000-byte display
bitmap memory, then a LONG value which must be EOR'ed at the
specified point in the display memory. This changes the
previous frame's LONG value to the new frame's value. The
EOR technique allows animations to be played in reverse as
well.
Each frame has a WORD which indicates the number of deltas
that are present for that frame. When all those are
processed, a new frame delta count WORD is read and the
process is repeated.
The .DLT file has the following format:
WORD -- The number of deltas in this frame. A zero in this
flag indicates the end of the file. Frames with no deltas
(the same as the previous frame) are special cases and a
dummy delta offset and LONG EOR value of zero are provided in
the delta data which follows.
The following structure is repeated the number of times
specified in the delta count for this frame.
WORD -- Offset into 32000-byte screen RAM for the delta data.
This number is a multiple of 4 from 0 to 31996. It should be
used as an offset from the start of screen RAM to EOR the
following LONG.
LONG -- Delta data. This value is EOR'ed with the screen
data at [screenbase + offset] to change the previous frame's
data to the new frame's.
Once all deltas for a particular frame have been processed,
the program reads the number of deltas for the next frame,
and continues with this process until all frames have been
processed (delta count = 0).
Back to ST Picture Formats