User's Manual

48
DAT 72/DDS-4 Product Manual
Dictionary codes, codewords 264 through 4,095:
The dictionary codes refer
to dictionary entries and represent multiple bytes (a string of characters) in the
input data stream. These codes are built as the input stream is processed.
These codes are pointers to other locations and eventually end by pointing to
one of the byte values 0 through 255. A linked chain is created that builds up a
string of characters.
Each dictionary entry is 23 bits long and comprises a logical RAM address. The
information is stored in 8-bit-wide static RAM chips that are 8K, 10K, or 16K by 22
bits. The structure of each dictionary entry is as follows:
Bits 0 through 7
contain the byte value of the entry.
Bits 8 through 19
contain the codeword that represents the entry or that points
to a previous entry (encoded byte or dictionary code).
Bits 20 through 22
are condition flag bits.
Dictionary codewords range from 9 through 12 bits in length and correspond to
dictionary entries from 0 through 4,095. These entries are divided as follows:
First 512 entries are 9-bit codewords.
Second 512 entries are 10-bit codewords.
Next 1,024 entries are 11-bit codewords.
Final 2,048 entries are 12-bit codewords.
Simplified Decompression Operation
The DCLZ algorithm requires that compression and decompression be tied together
through:
The compression and decompression processes (requires synchronization)
The packing and unpacking of codewords into a byte stream (requires
synchronization)
That is, decompression of the data does not begin at an arbitrary point; rather, it
begins at a point where the dictionary is reset—known to be empty. This stipulation
is vital because the dictionary is embedded in the codewords, which saves time and
space as it is not recorded separately.
Likewise, the packing and unpacking processes require synchronization so that the
compressed data is presented to the algorithm in the proper order.