> rle | 圧縮 | 繰り返し <
// Run-Length Encoding - 繰り返しデータ向けのシンプルな圧縮
データ圧縮
繰り返しシーケンスを効率的に符号化し、ファイルサイズを削減します。
シンプルなアルゴリズム
オーバーヘッドが小さく、高速で分かりやすい圧縮方式です。
複数フォーマット対応
シンプルな RLE と PackBits(TIFF)形式をサポートします。
>> 技術情報
RLE の仕組み:
Run-Length Encoding は、繰り返されるデータ列を回数と 1 つの値に置き換える方式です。シンプルな RLE は回数と値のペアを使い、PackBits は制御バイトによってランとリテラルを区別します。
圧縮例:
Simple RLE: AAAABBBCC → 4A3B2C ABCDE → 1A1B1C1D1E PackBits: [Run] AAA → FD 41 (3 × 'A') [Literal] ABC → 02 41 42 43
RLE を使う場面:
- >画像圧縮(BMP, PCX, TIFF)
- >ファクス伝送
- >アイコンやスプライトの保存
- >スパースデータの圧縮
- >実装が容易
>> よくある質問
Run-Length Encoding とは?
RLE は、連続する同一要素を回数と 1 つの値に置き換えるシンプルな圧縮アルゴリズムです。単純なグラフィックスやスパース行列など、繰り返しの多いデータに効果的です。
シンプル RLE と PackBits の違いは?
シンプル RLE は回数+値のペア(4A = AAAA)を使います。PackBits は制御バイトを使い、負の値でラン、正の値でリテラル列を表します。PackBits は TIFF 画像で使われ、混在したデータに強い方式です。
RLE はいつ有効ですか?
RLE は、同じ値が長く繰り返されるデータに最も効果的です。ランダムなデータには向かず、繰り返しが無い場合はサイズが逆に大きくなることもあります。
他の圧縮方式と比べて RLE は?
RLE は LZ77 や Huffman 符号化などより単純ですが、圧縮効率は低くなります。そのため、しばしば前処理ステップとして、またはファクスのようにシンプルさが重要なフォーマットで利用されます。