HP PCL/PJL reference (PCL 5 Color) - Technical Reference Manual

EN Raster Graphics 6-31
Adaptive Compression Operation Hints
Note Some HP LaserJet printers perform internal compression techniques
to support full-page graphics. Refer to Chapter 1 of the PCL 5
Comparison Guide for specifics.
The compression methods cannot be mixed within one raster
row. A raster row must be compressed using only one method.
The cursor position is updated with each row of the raster
block. The cursor position is also incremented when a block
count of less than 3 is sent.
A Raster Y-Offset command moves the entire block of raster
data and initializes the seed row to zeros. The seed row is set
to zero even if the y-offset is zero.
Block size takes precedence over row length. If the row length
of any line exceeds the block size, the row length is truncated
to the block size.
For duplicate and empty rows, a row length value of zero does
not update the cursor, however the seed row is initialized to
zero.
If an unsupported command byte for a raster row is
encountered, the remaining bytes for the block are skipped,
the seed row is cleared, and the cursor is not incremented.
For method 1, run length encoded, if the row length is odd, the
cursor is incremented, the row data is skipped (thrown away),
and the seed row is left unchanged.
For method 1, a row length value of zero increments the cursor
and zero fills the seed row.
For method 2, TIFF, if row length terminates the data before
the control byte value is satisfied (literal byte count greater
than row length), the data following the control byte, if any, is
printed as text. The cursor is incremented.
For Method 2—if row length is equal to one, the one byte is
consumed from the I/O and the cursor is incremented. The
data is ignored and the seed row is zeroed.
For Method 3—delta row compression, within an adaptive
compression block, the seed row is updated by every raster
compression method or type of row. For example, a row
compressed with Method 2, TIFF, updates the seed row, while
the effect of an empty row initializes the seed row to zeros.
Maintaining the seed row allows Method 3 to be mixed with
other methods to achieve optimal compression performance.