|
Omówienie kompresji
Omówienie
HotPDF używa kilku ścieżek kompresji i dekompresji w zależności od tego, czy generuje nową zawartość PDF, czy czyta istniejące streams i images z plików zewnętrznych
Główne ścieżki kompresji
- FlateDecode: Używane dla generowanych PDF streams przez THotPDF.Compression i obsługiwane przez zlib-ng w trybie zgodnym z zlib, z 64-bit runtime SIMD dispatch tam, gdzie jest dostępny
- CompressionLevel: THotPDF.CompressionLevel wybiera
clNone, clFastest, clDefault lub clMaximum dla ulepszonych ścieżek Flate.
- LZWDecode: Obsługiwane dla legacy PDF i danych w stylu TIFF przez HPDFLZW.pas
- DCT/JPEG: Używane dla standardowych workflows obrazów JPEG obsługiwanych przez HotPDF image support i wspierane przez libjpeg-turbo 3.1.90 z obiektami NASM SIMD acceleration
- JBIG2 and JPEG2000: Dostępne dla wyspecjalizowanych workflows obrazów, w których format źródłowy już używa tych kodeków
Redukcja rozmiaru strukturalnego PDF 1.5+
Dla wyjścia PDF 1.5+ HotPDF może nałożyć dwie dodatkowe structural compression paths na streams skompresowane FlateDecode. Obie są opt-in i naturalnie działają razem:
- UseXRefStream: Zastępuje tekstową tabelę cross-reference
xref ... trailer skompresowanym streamem /Type /XRef (ISO 32000-1 7.5.8). Zmniejsza narzut xref 4-10x w dużych dokumentach
- UseObjectStreams: Pakuje małe indirect dictionaries (multi-page documents, annotations, AcroForm widgets, structure-tree elements, Optional Content layers) do container streams
/Type /ObjStm (ISO 32000-1 7.5.7) referencjonowanych przez type-2 xref entries. Wymaga, aby UseXRefStream również był włączony. 30-stronicowy graphics-only smoke zmniejsza się z 14502 do 8488 bytes (-41.5%) przy połączeniu obu przełączników
- Dekompresja przy kopiowaniu: DecompressForCopy i
OriginallyCompressed opisują materializację skompresowanych strumieni źródłowych.
Powiązane moduły
- HPDFZLib.pas dla FlateDecode i predictor-aware inflate helpers
- HPDFLZW.pas dla dekompresji LZW
- HPDFJBIG2.pas dla obsługi dekodowania JBIG2
- HPDFJpeg2000.pas i HPDFOpenJpeg.pas dla workflows związanych z JPEG2000
Zobacz też
|