![]() |
MH符号表 (Modified Huffman coding) |
G3 ファクシミリで使用されているデータ圧縮用符号です。
ファクシミリで送信する書類や図表には、しばしば白または黒のデータが連続します。
白または黒のデータをそれぞれ「白ラン」、「黒ラン」といい、
連続している長さをランレングス (run length) といいます。
下図の例では、白が5個、黒が6個、白が8個… と連続しています。
ランレングスはそれぞれ5,6,8……です。
白ラン、黒ランともそれぞれのランレングスに対応する2進数の符号が定められています。
この例の場合は、1100、0010、10011……です。
1行のはじめは必ず白のランから始まります。もし行のはじめが黒の場合はランレングス 0 の
白のランから始まります。
白のラン、黒のランは交互に現れます。
63 までのランレングスには Terminating 符号、64 以上のランレングスには Make up 符号と
Terminating 符号を組み合わせて使用します。
行のおしまいには EOL 符号が挿入されます。
以上が MH 符号方式によるデータ圧縮のおおまかな手順です。
画数の多い複雑な文字の部分では、
白や黒の短いランが続きますが、このような短いランには出現頻度の高いものほど
短い符号が割り当てられています。
また、文書の行と行の間の空白などは長い白ランが続きますが、Mark up 符号は長いランを
非常に短い符号に置き換えます。
FAX で送信中、原稿の送り速度が絶えず変化するのは、
文字の粗密等によって圧縮後のデータ量が変化するためです。
ランレングス | 白符号 | 黒符号 | ランレングス | 白符号 | 黒符号 |
---|---|---|---|---|---|
0 | 00110101 | 0000110111 | 32 | 00011011 | 000001101010 |
1 | 000111 | 010 | 33 | 00010010 | 000001101011 |
2 | 0111 | 11 | 34 | 00010011 | 000011010010 |
3 | 1000 | 10 | 35 | 00010100 | 000011010011 |
4 | 1011 | 011 | 36 | 00010101 | 000011010100 |
5 | 1100 | 0011 | 37 | 00010110 | 000011010101 |
6 | 1110 | 0010 | 38 | 00010111 | 000011010110 |
7 | 1111 | 00011 | 39 | 00101000 | 000011010111 |
8 | 10011 | 000101 | 40 | 00101001 | 000001101100 |
9 | 10100 | 000100 | 41 | 00101010 | 000001101101 |
10 | 00111 | 0000100 | 42 | 00101011 | 000011011010 |
11 | 01000 | 0000101 | 43 | 00101100 | 000011011011 |
12 | 001000 | 0000111 | 44 | 00101101 | 000001010100 |
13 | 000011 | 00000100 | 45 | 00000100 | 000001010101 |
14 | 110100 | 00000111 | 46 | 00000101 | 000001010110 |
15 | 110101 | 000011000 | 47 | 00001010 | 000001010111 |
16 | 101010 | 0000010111 | 48 | 00001011 | 000001100100 |
17 | 101011 | 0000011000 | 49 | 01010010 | 000001100101 |
18 | 0100111 | 0000001000 | 50 | 01010011 | 000001010010 |
19 | 0001100 | 00001100111 | 51 | 01010100 | 000001010011 |
20 | 0001000 | 00001101000 | 52 | 01010101 | 000000100100 |
21 | 0010111 | 00001101100 | 53 | 00100100 | 000000110111 |
22 | 0000011 | 00000110111 | 54 | 00100101 | 000000111000 |
23 | 0000100 | 00000101000 | 55 | 01011000 | 000000100111 |
24 | 0101000 | 00000010111 | 56 | 01011001 | 000000101000 |
25 | 0101011 | 00000011000 | 57 | 01011010 | 000001011000 |
26 | 0010011 | 000011001010 | 58 | 01011011 | 000001011001 |
27 | 0100100 | 000011001011 | 59 | 01001010 | 000000101011 |
28 | 0011000 | 000011001100 | 60 | 01001011 | 000000101100 |
29 | 00000010 | 000011001101 | 61 | 00110010 | 000001011010 |
30 | 00000011 | 000001101000 | 62 | 00110011 | 000001100110 |
31 | 00011010 | 000001101001 | 63 | 00110100 | 000001100111 |
ランレングス | 白符号 | 黒符号 | ランレングス | 白符号 | 黒符号 |
---|---|---|---|---|---|
64 | 11011 | 0000001111 | 960 | 011010100 | 0000001110011 |
128 | 10010 | 000011001000 | 1024 | 011010101 | 0000001110100 |
192 | 010111 | 000011001001 | 1068 | 011010110 | 0000001110101 |
256 | 0110111 | 000001011011 | 1152 | 011010111 | 0000001110110 |
320 | 00110110 | 000000110011 | 1216 | 011011000 | 0000001110111 |
384 | 00110111 | 000000110100 | 1280 | 011011001 | 0000001010010 |
448 | 01100100 | 000000110101 | 1344 | 011011010 | 0000001010011 |
512 | 01100101 | 0000001101100 | 1308 | 011011011 | 0000001010100 |
576 | 01101000 | 0000001101101 | 1472 | 010011000 | 0000001010101 |
640 | 01100111 | 0000001001010 | 1536 | 010011001 | 0000001011010 |
704 | 011001100 | 0000001001011 | 1600 | 010011010 | 0000001011011 |
768 | 011001101 | 0000001001100 | 1664 | 011000 | 0000001100100 |
832 | 011010010 | 0000001001101 | 1728 | 010011011 | 0000001100101 |
896 | 011010011 | 0000001110010 | EOL | 000000000001 |