Operator Library: Prototype
![]() |
免責事項 |
|---|---|
|
Library: Prototype このモジュールは Prototype ライブラリの一部です。 完全に暫定的な状態であり、大幅な変更や削除が行われる可能性があります。 そのため、本番設計にこのモジュールを使用しないでください。 テスト目的でのみ含まれています。 |
PackbitsRLE オペレーターは、パックビッツアルゴリズムを使用して、入力リンク I の画像ストリームのランレングス符号化圧縮(RLE)を実行します。 Packbits は最初に Apple によって導入されたもので、TIFF ファイルのロスレス圧縮に使用できる RLE 圧縮アルゴリズムの 1 つです。
Packbits アルゴリズム
ラスター画像ファイルは、ヘッダー(画像寸法、色深度などの情報を含む)と、各ピクセルの色を記述するデータで構成されています。 データは順番に書き込まれます。つまり、ピクセルの色情報は、左から右へ、上から下へ、ピクセル行として解釈される必要があります。
非圧縮モードでは、同じ色の n 個の隣接するピクセルの色情報が n 回書き込まれます。これにより冗長性が生じます。
例:

この図は、4×4 ピクセルの白黒画像を表しています。 非圧縮フォーマットでは、ピクセルは次のように表現されます(B=黒、W=白):BBWWWBBBBBBWWWWW この冗長性は、パックビッツ圧縮によって削減されます。
パックビッツデータストリームは、1 バイトのヘッダーとそれに続くデータで構成されるパケットで構成されます。 ヘッダーは符号付きバイトです。
データは各ピクセルを 1 バイトで記述します。ヘッダーに値 n(-127 ~ -1)が含まれている場合、ヘッダーの続くバイトは、展開された出力で -n+1 回繰り返されます。 したがって、冗長な情報(同一のピクセルカラー)は、Counter(ヘッダー)とともに 1 回保存されます。 たとえば、BBBBBB は -6B として保存されます。 別の色の最初のピクセルに対して、新しいヘッダーが生成されます。
ヘッダーに値 n(0 ~ 127)が含まれている場合、ヘッダーに続く n+1 バイトは非圧縮のまま(そのままコピー)になります。
圧縮できる最長のピクセルシリーズは 128 バイトです。
パックビッツで圧縮すると、上記のサンプル画像(BBWWWBBBBBBWWWWW)は -2B-3W-6B-5W になり、16 シンボル(バイト)ではなく 8 シンボル(バイト)で表現できるようになります。
![]() |
効率性 |
|---|---|
|
Packbits は、グレースケール、パレット、および白黒画像に使用されます。 連続する同一色のピクセル数が多いほど、オペレーターはより効率的にデータを圧縮できます。 最適な圧縮結果は、白黒画像で得られます。 (非常にシンプルな)パックビッツアルゴリズムの利点は、その速度と、Memory(256 バイト)および処理能力の要求が極めて低いことにあります。 |
PackbitsRLE オペレータの使用方法は、以下の例に示されています。
-
例 - Packbits ランレングスエンコーディングの例

![[注意]](../common/images/admon/caution.png)
![[重要]](../common/images/admon/important.png)

前へ

