Stöd för JBIG2-komprimering

Översikt

HotPDF innehåller nu omfattande stöd för JBIG2-komprimering (Joint Bi-level Image Experts Group 2) JBIG2 är en förstörande eller förlustfri komprimeringsstandard som är särskilt utformad för tvånivåbilder (monokroma bilder), som ofta används i PDF-dokument för skannade textsidor och linjegrafik

Viktiga funktioner

  • Högeffektiv komprimering för tvånivåbilder
  • Stöd för både förstörande och förlustfria komprimeringslägen
  • Optimerat för komprimering av text och linjegrafik
  • Betydande minskning av filstorlek jämfört med traditionella komprimeringsmetoder
  • Fullt stöd för PDF/A-efterlevnad
  • Stöd för flersidiga dokument med delade ordböcker

Komprimeringsfördelar

  • Överlägsna komprimeringsgrader: Upp till 3-5 gånger bättre komprimering än Group 4 CCITT
  • Mönsterigenkänning: Intelligent igenkänning av upprepade mönster och symboler
  • Adaptiv komprimering: Justerar automatiskt komprimeringsstrategin baserat på innehållstyp
  • Minneseffektivt: Optimerat för bearbetning av stora skannade dokument

Typiska användningsfall

  • Skannade textdokument
  • Tekniska ritningar och byggritningar
  • Formulär och fakturor
  • Kartor och diagram
  • Dokument med blandat innehåll, text och grafik

Teknisk implementation

JBIG2-stödet är implementerat genom enheten HPDFJBIG2.pas, som tillhandahåller:

  • THPDFJBIG2Decoder: Central dekoderklass för JBIG2-komprimerade data
  • Strömbearbetning: Effektiv hantering av JBIG2-dataströmmar
  • Stöd för globala ordböcker: Delade symbolordböcker för flersidiga dokument
  • Åtkomst till scanline: Radvis dataåtkomst för minneseffektiv bearbetning

Användningsexempel


// Delphi-exempel - bearbetning av JBIG2-komprimerade 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;

    // Läs in JBIG2-komprimerade bilddata
    if Decoder.LoadFromByteArray(ImageData) then
    begin
      // Bearbeta scanline för scanline för minneseffektivitet
      for Row := 0 to Decoder.Height - 1 do
      begin
        if Decoder.GetScanline(Row, ScanlineData) then
        begin
          // Bearbeta scanline-data efter behov
          // Lägg till på PDF-sidan
        end;
      end;
    end;

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

Klassreferens

THPDFJBIG2Decoder

  • LoadFromByteArray: Läs in JBIG2-data från bytearray
  • GetScanline: Hämta specifika scanline-data
  • Width/Height: Egenskaper för bilddimensioner

Prestandaoptimering

  • Minneseffektiv scanline-bearbetning
  • Optimerat för hantering av stora dokument
  • Minimalt minnesavtryck under dekomprimering
  • Snabba algoritmer för mönsterigenkänning

Standardefterlevnad

  • Efterlevnad av standarden ITU-T T.88
  • Stöd för standarden ISO/IEC 14492
  • Kompatibilitet med arkivformatet PDF/A
  • Konsekvens mellan plattformar

Se även