JBIG2-compressieondersteuning

Overzicht

HotPDF bevat nu uitgebreide JBIG2-compressieondersteuning (Joint Bi-level Image Experts Group 2) JBIG2 is een verlieslatende of verliesvrije compressiestandaard die speciaal is ontworpen voor bi-level (monochrome) afbeeldingen en vaak in PDF-documenten wordt gebruikt voor gescande tekstpagina's en lijntekeningen

Belangrijkste kenmerken

  • Hoogefficiënte compressie voor bi-level afbeeldingen
  • Ondersteuning voor zowel verlieslatende als verliesvrije compressiemodi
  • Geoptimaliseerd voor tekst- en lijntekeningcompressie
  • Aanzienlijke verkleining van bestandsgrootte vergeleken met traditionele compressiemethoden
  • Volledige ondersteuning voor PDF/A-naleving
  • Ondersteuning voor meerpagina-documenten met gedeelde woordenlijsten

Compressievoordelen

  • Superieure compressieverhoudingen: Tot 3-5x betere compressie dan Group 4 CCITT
  • Patroonherkenning: Intelligente herkenning van herhaalde patronen en symbolen
  • Adaptieve compressie: Past de compressiestrategie automatisch aan op basis van het inhoudstype
  • Geheugenefficiënt: Geoptimaliseerd voor verwerking van grote gescande documenten

Typische gebruikssituaties

  • Scanned text documents
  • Technical drawings and blueprints
  • Forms and invoices
  • Maps and diagrams
  • Mixed content documents with text and graphics

Technische implementatie

De JBIG2-ondersteuning is geïmplementeerd via de HPDFJBIG2.pas-unit, die het volgende biedt:

  • THPDFJBIG2Decoder: Kern-decoderklasse voor JBIG2-gecomprimeerde gegevens
  • Streamverwerking: Efficiënte afhandeling van JBIG2-datastromen
  • Ondersteuning voor globale woordenlijst: Gedeelde symboolwoordenlijsten voor meerpagina-documenten
  • Scanline-toegang: Gegevens per rij benaderen voor geheugenefficiënte verwerking

Gebruikvoorbeeld


// Delphi-voorbeeld - JBIG2-gecomprimeerde gegevens verwerken
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;

    // JBIG2-gecomprimeerde afbeeldingsgegevens laden
    if Decoder.LoadFromByteArray(ImageData) then
    begin
      // Scanline voor scanline verwerken voor geheugenefficiëntie
      for Row := 0 to Decoder.Height - 1 do
      begin
        if Decoder.GetScanline(Row, ScanlineData) then
        begin
          // Scanlinegegevens verwerken indien nodig
          // Aan de PDF-pagina toevoegen
        end;
      end;
    end;

    PDF.EndDoc;
  finally
    Decoder.Free;
    PDF.Free;
  end;
end;
        

Klassereferentie

THPDFJBIG2Decoder

  • LoadFromByteArray: JBIG2-gegevens uit een byte-array laden
  • GetScanline: Specifieke scanlinegegevens ophalen
  • Width/Height: Eigenschappen voor afbeeldingsafmetingen

Prestatie-optimalisatie

  • Geheugenefficiënte scanlineverwerking
  • Geoptimaliseerd voor afhandeling van grote documenten
  • Minimale geheugenvoetafdruk tijdens decompressie
  • Snelle algoritmen voor patroonherkenning

Naleving van standaarden

  • Naleving van ITU-T T.88
  • Ondersteuning voor ISO/IEC 14492
  • Compatibiliteit met PDF/A-archiveringsformaat
  • Consistent gedrag op meerdere platforms

Zie ook