|
JBIG2 Compression Support
Prezentare generală
HotPDF include acum suport complet pentru compresia JBIG2 (Joint Bi-level Image Experts Group 2)
JBIG2 este un standard de compresie cu sau fără pierderi, creat special pentru imagini bi-nivel
(monocrome), folosit frecvent în documente PDF pentru pagini de text scanate și desen tehnic
Funcții principale
- Compresie de mare eficiență pentru imagini bi-nivel
- Suport pentru modurile de compresie cu pierderi și fără pierderi
- Optimizat pentru compresia textului și a desenelor liniare
- Reducere semnificativă a dimensiunii fișierului față de metodele tradiționale de compresie
- Suport complet pentru conformitatea PDF/A
- Suport pentru documente cu mai multe pagini și dicționare partajate
Avantaje ale compresiei
- Raporturi superioare de compresie: până la de 3-5 ori mai bună decât Group 4 CCITT
- Recunoaștere de modele: detectare inteligentă a tiparelor și simbolurilor repetate
- Compresie adaptivă: ajustează automat strategia de compresie în funcție de tipul conținutului
- Eficiență în memorie: optimizat pentru procesarea documentelor scanate de mari dimensiuni
Utilizări tipice
- Documente text scanate
- Desene tehnice și planșe
- Formulare și facturi
- Hărți și diagrame
- Documente cu conținut mixt, text și grafică
Implementare tehnică
Suportul JBIG2 este implementat prin unitatea HPDFJBIG2.pas, care oferă:
- THPDFJBIG2Decoder: clasa principală de decodare pentru date comprimate JBIG2
- Prelucrare de flux: gestionare eficientă a fluxurilor de date JBIG2
- Suport pentru dicționar global: dicționare de simboluri partajate pentru documente cu mai multe pagini
- Acces la scanline: acces la date linie cu linie pentru procesare eficientă în memorie
Usage Example
// 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;
Referință de clasă
THPDFJBIG2Decoder
- LoadFromByteArray: încarcă date JBIG2 dintr-un tablou de octeți
- GetScanline: obține datele unei scanline specifice
- Width/Height: proprietăți pentru dimensiunile imaginii
Optimizare a performanței
- Procesare eficientă în memorie a scanline-urilor
- Optimizat pentru tratarea documentelor mari
- Consum minim de memorie în timpul decompresiei
- Algoritmi rapizi de recunoaștere a tiparelor
Conformitate cu standardele
- Conformitate cu standardul ITU-T T.88
- Suport pentru standardul ISO/IEC 14492
- Compatibilitate cu formatul arhivistic PDF/A
- Comportament consecvent pe platforme diferite
See Also
|