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