PEM 0: INDEXED BY PLANE

In Pixel Encoding Mode 0, successive planes of data are sent for each raster row. A plane contains one bit for each pixel in a row. A pixel is not fully defined until all the planes for that row have been received, which is signaled by a transfer raster row command. The planes in a row form index numbers into the current palette. For example, assuming three bits per index, the underlined column of bits in the figure below is the palette index for pixel three of the first row (i1 is the least significant bit, i3 is the most significant bit). Note that the Transfer Raster Data by Plane command (?*b#V) is used for all planes except the last plane of each row, which is sent using the Transfer Raster Data by Row command (?*b#W).

?*b#V

row 1

plane 1

i1

i1

i1

i1

i1

i1

?*b#V

 

plane 2

i2

i2

i2

i2

i2

i2

?*b#W

 

plane 3

i3

i3

i3

i3

i3

i3

?*b#V

row 2

plane 1

i1

i1

i1

i1

i1

i1

Example:

In the example below, the row transfer commands are shown in binary for clarity, even though the actual data would be byte-aligned binary data. The example is for an eight-pixel-wide image.

?*v6W 00 00 03 08 08 08

Binary data for CID represented

 

in hex. This command sets the

 

color space to RGB, the PEM to

 

Indexed by Plane, the palette size

 

to 8 (23). The last 3 bytes are

 

ignored.

?*r1A

Start raster.

?*b1V10110000

Transfer plane 1 (the first bit for

 

each pixel in the first row).

?*b1V01110000

Transfer plane 2 (the second bit

 

for each pixel in the row).

?*b1W10101000

Transfer plane 3 (the third and

 

final bit for each pixel in the row)

 

and move to the next row. Note

 

that the ?*b#W command is

 

used to send the last plane of

 

each row.

2-8 Using Color Modes

EN

Page 32
Image 32
HP L 5 manual Example, PEM 0 Indexed by Plane