
W90100F
Embedded Micro-Controller
Revision 1.1
The above information is the exclusive intellectual property of Winbond Electronics Corp. and shall not be disclosed, distributed or reproduced without permission from Winbond
-20-
Publication Release Date: 10/07/97
7.6 Frame Memory Reduction Module
The CODEC Module consists of two Compressors and Decompressors, and a pass-through function
(Zero Compressor).
Input to the compressors and decompressors comes from the system memory through the DMA
Module. The output is saved in a 64-byte FIFO. The output from the FIFO can be returned to memory (to a
different location than the input) or sent to the Video Interface/RET Module to be printed, but not both at the
same time.
All compressors and decompressors operate on 32-byte (8-word) blocks of input data. If there are
fewer bytes of data, the input must be padded to a multiple of 32 bytes. A Byte Counter is provided to limit the
output if the padding would otherwise result in extra bytes after the desired output.
The CODEC
'
s generate two signals to the processor to signal completion of the operation. One of
these,
"
proc_done
"
, comes on when the CODEC is finished, but before the FIFO data has been transferred to
memory or to the Video Interface. The other,
"
done_all
"
,' comes on after
proc_done
when the FIFO becomes
empty.
Much of the CODEC hardware is shared, so that only one compression or decompression can be in
progress at a time.
7.6.1 Zero Compressor
The Zero Compressor copies the input to the output unchanged. It can be used to print data that has
not been compressed.
7.6.2 Byte Compressor
This compressor is used for byte data, such as gray-scale images. It encodes the differences
between bytes. It first computes the effectiveness of three types of differences for each 32-byte block. It then
uses the method which results in maximum compression. If none of the three methods results in any
compression, then the input data is copied to the output without compression. The encoding type is
determined separately for each 32-byte block.
An SRAM, external to the W90100, must be provided to save one line of input data. The compressor
uses this to form the difference between the current byte and bytes on the previous line.
The first scan line is treated differently, since there is no previous line with which to form differences.
Instead, it uses an in-line difference and does not test to determine which encoding type would be best.
The maximum number of pixels (bytes) per line is determined by the size of the external SRAM. There
are 16 address bits for the SRAM, so the maximum size is 65,535 bytes per line. The maximum number of
output bytes is 16,777,215 bytes.
7.6.3 JBIG Compressor
The JBIG compressor is used for processing one-bit images. It implements the ISO/IEC IS 11544
specification, also published as ITU-T T.82.
The CODEC does not process the 20-byte JBIG header. If required, the header must be processed
by the CPU. For encoding, the header must be prefixed to the CODEC output; when decoding, the header
must be stripped from the decoder input.
The same SRAM described in 7.6.2 is also used for this compressor. The maximum image width is
65,535 pixels (8192 Bytes) per line, assuming an SRAM of at least this size. The maximum number of lines is
65,535.