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