CHAPTER 2 PCL - 92
# = 9 Mode 9 compression
Like mode 3 compression, this mode 9 compression data contains only the difference of the current row
from the preceding row.
Replacement data often consists of a repetition of a particular byte in mode 3 compression.
Mode 9 compression is effective in such cases.
Simple mode 9 compression data consists of a command byte and the replacement data.
A Command byte consists of 3 parts. These are the control bit, the offset count and the replacement count.
The Control bit is the most significant bit (bit 7) of a control byte.
7
6
5
4
3
2
1
0
Offset count
Replacement count-1
Control bit
0
Command byte for mode 9 compression (non repeated replacement data)
If the control bit is 0, replacement data is not repeated data. Bits 6 to 3 contain the offset count. This field
value is from 0 to 15. If this value is 15, the next byte of the control bytes is an optional offset count. The
value of this optional offset count byte is from 0 to 255. If this optional offset count value is 255, then the
next byte is another (second) optional offset count byte. Optional offset count bytes will continue until the
value is less than 255. The total Offset value is the sum of the offset count in the control byte and all the
optional offset bytes.
Bits 2 to 0 of the control byte contains the replacement count - 1. The value is from 0 to 7. If this value is 7,
optional replacement byte(s) follow the control byte or optional offset byte(s) (if any).
If the first optional replacement count byte is 255, then a second optional count byte follows the first
optional count byte. Optional offset count bytes will continue until the value becomes less than 255. The
addition of the replacement count in the control byte and all optional replacement count bytes gives the total
replacement count.
Replacement data bytes follow the control byte and any optional offset bytes and any optional replacement
count bytes.
<Example>
Seed row
55 55 55 55 55 55 55 55 55 55 55 55 55
Current row
55 55 55 55 55 11 11 22 33 44 55 66 77
<Different section 11 11 22 33 44 55 66 77>
Offset count = 5
Replacement count = 8
Replacement data = 11 11 22 33 44 55 66 77
0 0
1
0
1
1
1
1
7
6
5
4
3
2
1
0
Replacement count = 7 + 1 = 8
Offset count = 5
Optional offset count byte = 0
8 bytes of repracement data
11 11 22 33 44 55 66 77
7
6
5
4
3
2
1
0
Offset count
Replacement count
Control bit
1
Command byte for mode 9 compression (repeated replacement data)
If the control bit is 1, replacement data is repeated data. Bits 6 to 5 contain the offset count and bits 4 to 0
contain the 'replacement count (repeat count) - 2'.