Поддръжка на JBIG2 компресия

Общ преглед

HotPDF вече включва цялостна поддръжка на JBIG2 (Joint Bi-level Image Experts Group 2) компресия JBIG2 е стандарт за компресия със или без загуба, специално проектиран за bi-level (монохромни) изображения, който често се използва в PDF документи за сканирани текстови страници и line art

Основни възможности

  • Високо ефективна компресия за bilevel изображения
  • Поддръжка както на режим със загуба, така и на lossless режим
  • Оптимизирано за компресия на текст и line art
  • Съществено намаляване на размера на файла спрямо традиционните методи за компресия
  • Пълна поддръжка на PDF/A съвместимост
  • Поддръжка на многостранични документи със споделени речници

Ползи от компресията

  • Superior Compression Ratios: До 3-5 пъти по-добра компресия от Group 4 CCITT
  • Pattern Recognition: Интелигентно разпознаване на повтарящи се шаблони и символи
  • Adaptive Compression: Автоматично настройва стратегията за компресия според типа съдържание
  • Memory Efficient: Оптимизирано за обработка на големи сканирани документи

Типични случаи на употреба

  • Сканирани текстови документи
  • Технически чертежи и blueprints
  • Форми и фактури
  • Карти и диаграми
  • Документи със смесено съдържание от текст и графика

Техническа реализация

Поддръжката на JBIG2 е реализирана чрез единицата HPDFJBIG2.pas, която предоставя:

  • THPDFJBIG2Decoder: Основен декодер клас за JBIG2 компресирани данни
  • Stream Processing: Ефективна обработка на JBIG2 потоци от данни
  • Global Dictionary Support: Споделени символни речници за многостранични документи
  • Scanline Access: Достъп до данните ред по ред за паметно ефективна обработка

Пример за употреба


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

Класова справка

THPDFJBIG2Decoder

  • LoadFromByteArray: Зарежда JBIG2 данни от байтов масив
  • GetScanline: Извлича данни за конкретен scanline
  • Width/Height: Свойства за размерите на изображението

Оптимизация на производителността

  • Паметно ефективна обработка ред по ред
  • Оптимизирано за работа с големи документи
  • Минимален memory footprint по време на декомпресия
  • Бързи алгоритми за разпознаване на шаблони

Съответствие със стандарти

  • Съответствие със стандарта ITU-T T.88
  • Поддръжка на стандарта ISO/IEC 14492
  • Съвместимост с архивния формат PDF/A
  • Последователност между платформите

Виж също