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