|
圧縮の概要
概要
HotPDF は、新しい PDF コンテンツを生成するか、外部ファイルから既存のストリームと画像を読み取るかに応じて、いくつかの圧縮および解凍パスを使用します。
主な圧縮パス
FlateDecode: THotPDF.Compression 経由で生成 PDF streams に使用され、zlib-compatible mode の zlib-ng に backed されます。利用可能な場合は 64-bit runtime SIMD dispatch を使用します
- CompressionLevel: THotPDF.CompressionLevel selects
clNone, clFastest, clDefault, or clMaximum for enhanced Flate paths.
- LZWDecode: HPDFLZW.pas を介したレガシー PDF および TIFF スタイルのデータのサポート
- DCT/JPEG: HotPDF の画像サポートによって処理され、NASM SIMD アクセラレーションオブジェクトを備えた libjpeg-turbo 3.1.90 によってサポートされる標準の JPEG 画像ワークフローに使用されます。
- JBIG2 と JPEG2000: ソース形式がすでにそれらのコーデックを使用している特化した画像ワークフローで利用できます。
PDF 1.5+ 構造的なサイズの縮小
PDF 1.5+ の出力では、HotPDF は FlateDecode で圧縮されたストリームの上に、さらに 2 つの構造的な圧縮パスをレイヤー化できます。どちらもオプトインであり、自然にペアになります。
- UseXRefStream: Replace the textual
xref ... trailer cross-reference table with a compressed /型 /XRef stream (ISO 32000-1 7.5.8). Cuts xref overhead by 4-10x on large documents.
UseObjectStreams: small indirect dictionaries (multi-page documents、annotations、AcroForm widgets、structure-tree elements、Optional Content layers) を /Type /ObjStm container streams (ISO 32000-1 7.5.7) に pack し、type-2 xref entries 経由で参照します。UseXRefStream も on である必要があります。30-page graphics-only smoke では 2 つの toggles を組み合わせることで 14502 bytes から 8488 bytes に縮小します (-41.5%)
- Copy decompression: DecompressForCopy and
OriginallyCompressed describe how loaded-document copy paths materialize compressed source streams.
関連ユニット
- FlateDecode およびプレディクタ対応のインフレートヘルパー用の HPDFZLib.pas
- LZW 解凍用の HPDFLZW.pas
- JBIG2 デコードサポート用の HPDFJBIG2.pas
- JPEG2000 関連のワークフロー用の HPDFJpeg2000.pas および HPDFOpenJpeg.pas
関連項目
|