JBIG2 Compression Support

Yleiskatsaus

HotPDF sisältää nyt kattavan JBIG2-pakkaustuen (Joint Bi-level Image Experts Group 2). JBIG2 on häviöllinen tai häviötön pakkausstandardi, joka on suunniteltu erityisesti kaksitasoisille (yksivärisille) kuville ja jota käytetään yleisesti PDF-dokumenteissa skannatuille tekstisivuille ja viivapiirroksille

Key Features

  • Erittäin tehokas pakkaus kaksitasoisille kuville
  • Tuki sekä häviöllisille että häviöttömille pakkaustiloille
  • Optimoitu teksti- ja viivagrafiikan pakkaukseen
  • Merkittävä tiedostokoon pienennys perinteisiin pakkausmenetelmiin verrattuna
  • Full PDF/A compliance support
  • Monisivuisten asiakirjojen tuki jaetuilla sanakirjoilla

Compression Benefits

  • Ylivoimaiset pakkaussuhteet: Jopa 3–5 kertaa parempi pakkaus kuin Group 4 CCITT -standardissa
  • Kuviontunnistus: Toistuvien kuvioiden ja symbolien älykäs tunnistus
  • Adaptive Compression: Automatically adjusts compression strategy based on content type
  • Muistitehokas: Optimoitu suurten skannattujen dokumenttien käsittelyyn

Typical Use Cases

  • Scanned text documents
  • Tekniset piirustukset ja piirustuspohjat
  • Lomakkeet ja laskut
  • Kartat ja kaaviot
  • Sekasisältöiset asiakirjat, joissa on tekstiä ja grafiikkaa

Technical Implementation

JBIG2-tuki on toteutettu yksikössä HPDFJBIG2.pas, joka tarjoaa

  • THPDFJBIG2Decoder: Core decoder class for JBIG2 compressed data
  • Virtakäsittely: Tehokas käsittely JBIG2-tietovirroille
  • Globaali sanakirjatuki: Jaetut symbolisanakirjat monisivuisia dokumentteja varten
  • Scanline-pääsy: Rivikohtainen pääsy tietoon muistitehokasta käsittelyä varten

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;
        

Class Reference

THPDFJBIG2Decoder

  • LoadFromByteArray: Lataa JBIG2-tieto tavutaulukosta
  • GetScanline: Retrieve specific scanline data
  • Width/Height: Image dimensions properties

Performance Optimization

  • Memory-efficient scanline processing
  • Optimoitu suurten asiakirjojen käsittelyyn
  • Minimal memory footprint during decompression
  • Fast pattern recognition algorithms

Standards Compliance

  • ITU-T T.88 standard compliance
  • ISO/IEC 14492 standard support
  • PDF/A archival format compatibility
  • Cross-platform consistency

See Also