|
Compression Overview
Overzicht
HotPDF gebruikt verschillende compressie- en decompressiepaden, afhankelijk van of het nieuwe PDF-inhoud genereert of bestaande streams en afbeeldingen uit externe bestanden leest.
Belangrijkste compressiepaden
- FlateDecode: Wordt gebruikt voor gegenereerde PDF-streams via THotPDF.Compression en wordt ondersteund door zlib-ng in zlib-compatibele modus, met 64-bit runtime-SIMD-dispatch waar beschikbaar; high-ratio-workflows voor geladen streams kunnen een begrensde Zopfli-pas toevoegen die alleen wordt gekozen als die kleiner is dan het beste zlib-resultaat
- CompressionLevel: THotPDF.CompressionLevel kiest
clNone, clFastest, clDefault of clMaximum voor de verbeterde Flate-paden.
- LZWDecode: Ondersteund voor legacy-PDF- en TIFF-achtige data via HPDFLZW.pas
- DCT/JPEG: Wordt gebruikt voor standaard JPEG-beeldworkflows die door de HotPDF-beeldondersteuning worden afgehandeld en wordt ondersteund door libjpeg-turbo 3.1.90 met NASM-SIMD-versnellingsobjecten
- JBIG2 en JPEG2000: Beschikbaar voor gespecialiseerde beeldworkflows waarbij het bronformaat die codecs al gebruikt
Structurele groottebesparing in PDF 1.5+
Voor PDF 1.5+-uitvoer kan HotPDF twee extra structurele compressiepaden stapelen bovenop de FlateDecode-gecomprimeerde streams. Beide zijn opt-in en vullen elkaar van nature aan:
- UseXRefStream: Vervang de tekstuele
xref ... trailer-kruisverwijzingstabel door een gecomprimeerde /Type /XRef-stream (ISO 32000-1 7.5.8). Vermindert de xref-overhead op grote documenten met 4-10x.
- UseObjectStreams: Pakt kleine indirecte woordenlijsten (documenten met veel pagina's, annotaties, AcroForm-widgets, structuurboomelementen, Optional Content-lagen) in
/Type /ObjStm-containerstreams (ISO 32000-1 7.5.7) waarnaar via type-2-xref-regels wordt verwezen. Vereist dat UseXRefStream ook aan staat. Een 30-pagina rooktest met alleen graphics krimpt met de twee schakelaars samen van 14502 naar 8488 bytes (-41,5%).
- Kopie-decompressie: DecompressForCopy en
OriginallyCompressed beschrijven hoe kopiepaden voor geladen documenten gecomprimeerde bronstreams materialiseren.
Related Units
- HPDFZLib.pas voor FlateDecode en predictor-bewuste inflate-helpers
- HPDFLZW.pas voor LZW-decompressie
- HPDFJBIG2.pas, HPDFJBIG2Codec.pas en HPDFJBIG2Enc.pas voor JBIG2-codering en -decodering
- HPDFJpeg2000.pas en HPDFOpenJpeg.pas voor JPEG2000-gerelateerde workflows
Zie ook
|