JBIG2 Compression Support

Oversikt

HotPDF inkluderer nå omfattende støtte for JBIG2-komprimering (Joint Bi-level Image Experts Group 2) JBIG2 er en komprimeringsstandard med eller uten tap, spesielt utviklet for to-nivåbilder (monokrome), og brukes ofte i PDF-dokumenter for skannede tekstsider og strektegninger

Viktige funksjoner

  • Høyeffektiv komprimering for to-nivåbilder
  • Støtte for både tapsbaserte og tapsfrie komprimeringsmoduser
  • Optimalisert for komprimering av tekst og strektegninger
  • Betydelig mindre filstørrelse sammenlignet med tradisjonelle komprimeringsmetoder
  • Full støtte for PDF/A-samsvar
  • Støtte for flersidige dokumenter med delte ordbøker

Kompresjonsfordeler

  • Bedre kompresjonsforhold: Opptil 3-5x bedre komprimering enn Group 4 CCITT
  • Mønstergjenkjenning: Intelligent gjenkjenning av gjentatte mønstre og symboler
  • Adaptiv komprimering: Justerer automatisk komprimeringsstrategien etter innholdstype
  • Minneeffektiv: Optimalisert for behandling av store skannede dokumenter

Typiske bruksområder

  • Skannede tekstdokumenter
  • Tekniske tegninger og plantegninger
  • Skjemaer og fakturaer
  • Kart og diagrammer
  • Dokumenter med blandet innhold av tekst og grafikk

Teknisk implementering

JBIG2-støtten er implementert gjennom unit-en HPDFJBIG2.pas, som tilbyr:

  • THPDFJBIG2Decoder: Kjernedekoderklasse for JBIG2-komprimerte data
  • Strømbehandling: Effektiv håndtering av JBIG2-datastrømmer
  • Støtte for global ordbok: Delte symbolordbøker for flersidige dokumenter
  • Scanline-tilgang: Radvis datatilgang for minneeffektiv behandling

Brukseksempel


// 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;
        

Klassereferanse

THPDFJBIG2Decoder

  • LoadFromByteArray: Laster JBIG2-data fra byte-array
  • GetScanline: Henter bestemte scanline-data
  • Width/Height: Egenskaper for bildedimensjoner

Performance Optimization

  • Memory-efficient scanline processing
  • Optimized for large document handling
  • 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