|
Panoramica della compressione
Panoramica
HotPDF usa diversi percorsi di compressione e decompressione a seconda che stia generando nuovo contenuto PDF o leggendo stream e immagini esistenti da file esterni.
Principali percorsi di compressione
- FlateDecode: Usato per gli stream PDF generati tramite THotPDF.Compression e basato su zlib-ng in modalità zlib-compatibile, con dispatch SIMD a runtime a 64 bit dove disponibile; i flussi ad alto rapporto su stream caricati possono aggiungere un pass Zopfli con budget selezionato solo quando è più piccolo del miglior risultato zlib
- CompressionLevel: THotPDF.CompressionLevel selects
clNone, clFastest, clDefault, o clMaximum for enhanced Flate paths.
- LZWDecode: Supportato per dati legacy PDF e in stile TIFF tramite HPDFLZW.pas
- DCT/JPEG: Usato per i flussi immagine JPEG standard gestiti dal supporto immagini di HotPDF e basato su libjpeg-turbo 3.1.90 con oggetti di accelerazione SIMD NASM
- JBIG2 e JPEG2000: Disponibile per flussi immagine specializzati dove il formato sorgente usa già quei codec
riduzione strutturale delle dimensioni PDF 1.5+
For PDF 1.5+ output HotPDF can layer two additional structural compression paths on top of FlateDecode-compressed streams. Both are opt-in and pair naturally:
- UseXRefStream: Sostituisce la tabella testuale
xref ... trailer di riferimenti incrociato con uno /Type /XRef stream (ISO 32000-1 7.5.8). Cuts xref overhead by 4-10x on large documents.
- UseObjectStreams: Pack small indirect dictionaries (multi-page documents, annotations, AcroForm widgets, structure-tree elements, Optional Content layers) into
/Type /ObjStm container streams (ISO 32000-1 7.5.7) referenced through type-2 xref entries. Requires UseXRefStream to also be on. A 30-page graphics-only smoke shrinks from 14502 to 8488 bytes (-41.5%) with the two toggles combined.
- Decompressione in copia: DecompressForCopy e
OriginallyCompressed descrivono come i percorsi di copia del documento caricato materializzano gli stream sorgente compressi.
Unità correlate
- HPDFZLib.pas per FlateDecode e helper inflate consapevoli dei predittori
- HPDFLZW.pas per la decompressione LZW
- HPDFJBIG2.pas, HPDFJBIG2Codec.pas e HPDFJBIG2Enc.pas per la codifica e la decodifica JBIG2
- HPDFJpeg2000.pas e HPDFOpenJpeg.pas per i flussi correlati a JPEG2000
Vedi anche:
|