JBIG2 圧縮サポート

概要

HotPDF では、包括的な JBIG2 (Joint Bi-level Image Experts グループ 2) 圧縮サポートが含まれるようになりました。JBIG2 は、2値 (モノクロ) 画像用に特別に設計された非可逆または可逆の圧縮標準であり、PDF ドキュメントのテキストのスキャンページや線画に一般的に使用されます。

主な機能

  • 2値画像向けの非常に効率的な圧縮
  • 非可逆および可逆の圧縮モードの両方をサポート
  • テキストと線画の圧縮用に最適化
  • 従来の圧縮方法と比較して大幅なファイルサイズの縮小
  • 完全な PDF/A 準拠のサポート
  • 共有辞書を使用したマルチページドキュメントのサポート

圧縮の利点

  • 優れた圧縮率: グループ 4 CCITT より最大 3~5 倍優れた圧縮
  • パターン認識: 繰り返されるパターンとシンボルのインテリジェントな認識
  • アダプティブ圧縮: コンテンツのタイプに基づいて圧縮戦略を自動的に調整
  • メモリ効率: 大規模なスキャンドキュメントの処理に最適化

典型的な使用例

  • スキャンされたテキストドキュメント
  • 技術図面や設計図
  • フォームと請求書
  • 地図と図
  • テキストとグラフィックスが混在するコンテンツドキュメント

技術的な実装

JBIG2 のサポートは、HPDFJBIG2.pas ユニットを通じて実装されており、以下の機能を提供します。

  • THPDFJBIG2Decoder: JBIG2圧縮データ用のコアデコーダークラス
  • ストリーム処理: JBIG2データストリームの効率的な処理
  • グローバル辞書サポート: マルチページドキュメント用の共有シンボル辞書
  • スキャンラインアクセス: メモリ効率の良い処理のための行ごとのデータアクセス

使用例


// Delphi example - Processing JBIG2 compressed data
procedure ProcessJBIG2Data;
var
  PDF: THotPDF;
  Decoder: THPDFJBIG2Decoder;
  ImageData: TBytesArray;
  ScanlineData: TBytesArray;
  Row: Integer;
begin
  PDF := THotPDF.Create(nil);
  Decoder := THPDFJBIG2Decoder.Create;
  try
    PDF.BeginDoc;
    PDF.AddPage;

    // Load JBIG2 compressed image data
    if Decoder.LoadFromByteArray(ImageData) then
    begin
      // Process scanline by scanline for memory efficiency
      for Row := 0 to Decoder.Height - 1 do
      begin
        if Decoder.GetScanline(Row, ScanlineData) then
        begin
          // Process scanline data as needed
          // Add to PDF page
        end;
      end;
    end;

    PDF.EndDoc;
  finally
    Decoder.Free;
    PDF.Free;
  end;
end;
        

クラスリファレンス

THPDFJBIG2Decoder

  • LoadFromByteArray: バイト配列からJBIG2データを読み込みます
  • GetScanline: 特定のスキャンラインデータを取得します
  • Width/Height: 画像の寸法プロパティ

パフォーマンスの最適化

  • メモリ効率の良いスキャンライン処理
  • 大きなドキュメントの処理に最適化
  • 解凍中の最小限のメモリフットプリント
  • 高速なパターン認識アルゴリズム

標準への準拠

  • ITU-T T.88規格への準拠
  • ISO/IEC 14492規格のサポート
  • PDF/Aアーカイブ形式との互換性
  • クロスプラットフォームの一貫性

関連項目