JBIG2 Compression Support

Apžvalga

HotPDF dabar siūlo išsamų JBIG2 (Joint Bi-level Image Experts Group 2) suspaudimo palaikymą JBIG2 yra nuostolingas arba be nuostolių suspaudimo standartas, sukurtas specialiai dvejetainių (vieno spalvos) vaizdams dažniausiai naudojamas PDF dokumentuose skenuotuose tekstiniuose puslapiuose ir linijinėje grafikoje

Key Features

  • High-efficiency compression for bilevel images
  • Palaikomos tiek suspaudimo su nuostoliais, tiek be nuostolių režimai
  • Optimized for text and line art compression
  • Significant file size reduction compared to traditional compression methods
  • Full PDF/A compliance support
  • Kelių puslapių dokumentų palaikymas su bendrais žodynais

Compression Benefits

  • Superior Compression Ratios: Up to 3-5x better compression than Group 4 CCITT
  • Pattern Recognition: Intelligent recognition of repeated patterns and symbols
  • Adaptive Compression: Automatically adjusts compression strategy based on content type
  • Memory Efficient: Optimized for processing large scanned documents

Typical Use Cases

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

Technical Implementation

JBIG2 palaikymas įgyvendintas per HPDFJBIG2.pas modulį, kuris suteikia:

  • THPDFJBIG2Decoder: Core decoder class for JBIG2 compressed data
  • Stream Processing: Efficient handling of JBIG2 data streams
  • Global Dictionary palaikymas: bendri simbolių žodynai kelių puslapių dokumentams
  • Scanline Access: Row-by-row data access for memory-efficient processing

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: Load JBIG2 data from byte array
  • GetScanline: Retrieve specific scanline data
  • Width/Height: Image dimensions properties

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