|
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アーカイブ形式との互換性
- クロスプラットフォームの一貫性
関連項目
|