Skip to main content
Interwork Corporation
IDR Solutions Product Support Portal
PDF開発用語集 モードの切替 ダーク/ライト/自動 モードの切替 ダーク/ライト/自動 モードの切替 ダーク/ライト/自動

Run-length encoding

Run-length encoding(RLE)は、PDFファイルで繰り返し値のシーケンスを効率的にエンコードするために使用される、シンプルな可逆データ圧縮アルゴリズムです。

カテゴリ: Text & Fonts
キーワード: run-length encoding, Run-length encoding

概要

Run-length encoding(RLE)は、PDFファイルで繰り返し値のシーケンスを効率的にエンコードするために使用される、シンプルな可逆データ圧縮アルゴリズムです。 ( Citation: N.A., (N.A.). (). Document management — Portable document format — Part 2: PDF 2.0 International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html ) でサポートされているいくつかの圧縮方式の一つであり、PDFストリーム、特に画像データやコンテンツストリームのサイズを削減するために使用されます。RLEは、連続する同一のデータ値を単一の値とカウントに置き換えることで動作し、長い繰り返しバイト列を持つデータに対して特に効果的です。

定義

Run-length encodingは、連続するシーケンス(ラン)の同一データ値を識別し、それらをカウントと値のペアに置き換える圧縮技術です。PDFの文脈では、RLEは通常バイトレベルのデータに対して動作し、AAAAAAのようなシーケンスは6A(バイト値Aの6回の繰り返し)としてエンコードされます。Flate(deflate)のようなより複雑な圧縮アルゴリズムとは異なり、RLEは計算が単純で、最小限の処理オーバーヘッドで実装できます。このアルゴリズムは、ルックアップテーブルの構築や直接的な繰り返しを超えたパターン分析を行わないという点で、辞書ベースの圧縮方式とは明確に異なります。単純に連続する同一バイトをカウントし、それらをより効率的にエンコードするだけです。

重要性

PDF生成や操作を行う開発者にとって、run-length encodingを理解することは、いくつかの実用的な理由から重要です。第一に、特定のタイプのコンテンツ、特に2値(白黒)画像、シンプルなグラフィックス、または均一な色の大きな領域を持つデータを扱う際に、ファイルサイズを最適化するのに役立ちます。第二に、PDFリーダーやライターを実装する際、開発者は基礎となるデータにアクセスするためにRLE圧縮されたストリームをデコードまたはエンコードする必要がある場合があります。第三に、異なるタイプのコンテンツに対して適切な圧縮方式を選択することは、ファイルサイズと処理速度の両方に大きな影響を与える可能性があります。RLEは、そのシンプルさと速度が、より複雑なアルゴリズムの潜在的により良い圧縮率を上回る特定のデータパターンに対して、良いバランスを提供します。

仕組み

PDFにおけるrun-length encodingは、データを順次処理する単純明快なアルゴリズムを通じて動作します。エンコーダーは入力バイトストリームをスキャンし、同一バイトのランと非繰り返しバイトのランを識別し、それぞれを適切にエンコードします。PDF仕様では、エンコードされたデータが一連のランで構成され、それぞれが長さバイトで始まる特定のRLE形式が定義されています。長さバイトの値が0~127の場合、続く(長さ + 1)バイトをそのままコピーすることを示し、長さバイトの値が129~255の場合、次の1バイトを(257 - 長さ)回繰り返すことを示します。長さバイト128は、無操作マーカーとして予約されています。デコード時には、パーサーが長さバイトを読み取り、それがリテラルランを表すか繰り返しランを表すかを判断し、対応する非圧縮データを出力します。このエンコード方式は、繰り返しデータを効率的に圧縮する必要性と、非繰り返しシーケンスを拡張オーバーヘッドなしで処理することのバランスを取っています。

関連用語

  • Stream – RLEを含むさまざまなアルゴリズムを使用して圧縮できるPDF内のバイトシーケンス
  • Flate compression – PDFで一般的に使用されるより洗練された圧縮アルゴリズムで、通常RLEよりも優れた圧縮率を達成する
  • Image XObject – RLEまたは他の圧縮方式をそのデータに使用する可能性がある、画像を表すPDFオブジェクト
  • Content stream – RLEまたは他のアルゴリズムを使用して圧縮される可能性がある、ページ記述演算子を含むストリーム
  • FilterRunLengthDecodeのような圧縮フィルターを含む、ストリームデータを処理するPDFメカニズム

出典

(N.A.) (2020)
(N.A.). (). Document management — Portable document format — Part 2: PDF 2.0 International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html