Soporte de compresión JBIG2

Descripción general

HotPDF ahora incluye compatibilidad completa con compresión JBIG2 (Joint Bi-level Image Experts Group 2) JBIG2 es un estándar de compresión con pérdida o sin pérdida diseñado específicamente para imágenes binivel (monocromas), comúnmente usado en documentos PDF para páginas de texto escaneadas y arte lineal

Funciones clave

  • Compresión de alta eficiencia para imágenes binivel
  • Compatibilidad con modos de compresión con pérdida y sin pérdida
  • Optimizado para compresión de texto y arte lineal
  • Reducción significativa del tamaño de archivo frente a métodos de compresión tradicionales
  • Compatibilidad completa con conformidad PDF/A
  • Compatibilidad con documentos multipágina mediante diccionarios compartidos

Ventajas de compresión

  • Relaciones de compresión superiores: Hasta 3-5 veces mejor compresión que Group 4 CCITT
  • Reconocimiento de patrones: Reconocimiento inteligente de patrones y símbolos repetidos
  • Compresión adaptativa: Ajusta automáticamente la estrategia de compresión según el tipo de contenido
  • Eficiente en memoria: Optimizado para procesar documentos escaneados grandes

Casos de uso típicos

  • Documentos de texto escaneados
  • Dibujos técnicos y planos
  • Formularios y facturas
  • Mapas y diagramas
  • Documentos de contenido mixto con texto y gráficos

Implementación técnica

El soporte JBIG2 se implementa mediante la unidad HPDFJBIG2.pas, que ofrece:

  • THPDFJBIG2Decoder: Clase decodificadora principal para datos comprimidos JBIG2
  • Procesamiento de flujos: Manejo eficiente de flujos de datos JBIG2
  • Compatibilidad con diccionario global: Diccionarios de símbolos compartidos para documentos multipágina
  • Acceso por scanline: Acceso a datos fila por fila para procesamiento eficiente en memoria

Usage Ejemplo


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

Véase también