12.11.2012 Views

ijpds formats.book - Kodak

ijpds formats.book - Kodak

ijpds formats.book - Kodak

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!