Loading article…
修正ハフマン符号化は、ファックス機で白黒画像(ビットマップ)を符号化するために使用されます。これは、ハフマン符号化の可変長符号と、ランレングス符号化における反復データの符号化を組み合わせたものです。
基本的なハフマン符号化は、テキストファイルのように繰り返しデータが多いファイルを圧縮する方法を提供します。テキストファイルでは、アルファベットの文字が繰り返しオブジェクトになります。しかし、1つのスキャンラインには、白ピクセルと黒ピクセルの2種類の要素しか含まれておらず、これらは0と1で直接表現できます。この2つの記号だけの「アルファベット」は、ハフマン符号化を直接適用するには小さすぎます。しかし、ランレングス符号化を最初に使用すれば、より多くのオブジェクトを符号化できます。ランレングス符号化に関する記事からの例を以下に示します。
Bが黒ピクセル、Wが白ピクセルを表す仮想的な走査線は、次のように表されるかもしれません。
WWWWWWWWWWWWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
上記の仮想的なスキャンラインにランレングス符号化(RLE)データ圧縮アルゴリズムを適用すると、以下のようにレンダリングできます。
12W1B12W3B24W1B14W
ここでは、「白」と「黒」の2つの項目に加えて、いくつかの異なる数字があることがわかります。これらの数字は使用できる項目を十分に提供してくれるため、上記のシーケンスにハフマン符号化を直接適用して、さらにサイズを縮小することができます。