You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Chapter 4. Record Formats<br />
Compressed Bitmap (CBM)<br />
Compressed Bitmap (CBM)<br />
The CBM record, which is interchangeable with the Image Bitmap (IBM)<br />
record, contains a compressed bitmap that is to be printed at the current<br />
cursor position according to the current logical function set by the last SLF<br />
record. The bitmap is placed on the page in the upright orientation.<br />
Byte Position Bytes Field Name Description<br />
After this record, the cursor position is at the current X position and the<br />
current Y position plus the height of the bitmap.<br />
1-2 2 Record Length The length of this record, in binary, including the record length<br />
field. For example, hex 00 22 specifies a record length of 34 bytes.<br />
3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />
job is counted, starting with hex 01 for the first record. The 255th<br />
record is hex FF and the 256th record is hex 00. This count is used<br />
to verify record sequence.<br />
4 1 Control Code A binary code that identifies the record type. A value of hex 3E<br />
identifies the CBM record.<br />
5-6 2 Height An unsigned binary value representing the height of the bitmap in<br />
dots. The range is printer dependent and also dependent upon the<br />
blocking of input data. The height is measured down the length of<br />
the page in the Y direction when looking at the substrate in the<br />
direction it is moving. For example, hex 00 37 specifies a bitmap<br />
height of 55 dots.<br />
7-8 2 Width An unsigned binary value representing the width of the bitmap in<br />
dots. The range is printer dependent. For example, the range is<br />
1-4096 for systems using four stitched 4-inch printheads and<br />
1-1024 for systems with one 4-inch printhead. The width is<br />
measured across the width of the page in the X direction when<br />
looking at the substrate in the direction it is moving. For example,<br />
hex 06 A1 specifies a width of 1697 dots.<br />
9-10 2 Reserved This field is not used and must contain all binary zeroes.<br />
11-12 2 Compression Type Specifies the compression algorithm used to compress the<br />
bitmapped character data. Undefined or unsupported compression<br />
types will cause the imager to display an error message and stop<br />
printing.<br />
Compression types (see “Compression Types” on page 4-2) are:<br />
0x0000 = Reserved<br />
0x0001 = 32-bit Vertical Run Length Encoding (RLEV32)<br />
13-16 4 Compression<br />
Parameter<br />
17-n varies Compressed Bitmap<br />
Data<br />
The meaning of these bytes depends on the compression type<br />
specified in bytes 10-11.<br />
The bitmap is always imaged upright into the frame buffer at the<br />
current position and according to the current logical function. The<br />
cursor position following this command will be left at the current X<br />
position and at the current Y position plus the height of the bitmap.<br />
Should the compressed bitmap contain more or less<br />
uncompressed data than what is specified by the Height and Width<br />
fields, the imager will display an error message and imaging will<br />
stop.<br />
The compressed bitmap begins at byte position 17 and is arranged<br />
in horizontal raster format compressed using the compression<br />
method specified in byte positions 11 and 12. Each row of the<br />
raster must be padded to the right with binary zeroes (before<br />
compression) to make an integral number of 32-bit segments. The<br />
width of the bitmap (byte positions 7 and 8) does not have to be a<br />
multiple of 32 bits but the bitmap raster row length does.<br />
Reference Guide 4 - 53