Підтримка стиснення JBIG2

Огляд

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

Основні функції

  • Високоефективне стиснення двоколірних зображень
  • Підтримка режимів стиснення як із втратами, так і без втрат
  • Оптимізовано для стиснення тексту та векторної графіки
  • Значне зменшення розміру файлу порівняно з традиційними методами стиснення
  • Повна підтримка відповідності стандарту PDF/A
  • Підтримка багатосторінкових документів із спільними словниками

Переваги стиснення

  • Вища ступінь стиснення: До 3-5 разів краще стиснення, ніж Group 4 CCITT
  • Розпізнавання образів: Інтелектуальне розпізнавання повторюваних шаблонів та символів
  • Адаптивне стиснення: Автоматично коригує стратегію стиснення залежно від типу вмісту
  • Ефективне використання пам'яті: Оптимізовано для обробки великих сканованих документів

Типові випадки використання

  • Скановані текстові документи
  • Технічні креслення та плани
  • Форми та рахунки-фактури
  • Карти та діаграми
  • Документи зі змішаним вмістом (текст та графіка)

Технічна реалізація

Підтримка JBIG2 реалізована за допомогою модуля HPDFJBIG2.pas, який надає:

  • THPDFJBIG2Decoder: Основний клас декодера для стиснених даних JBIG2
  • Обробка потоків: Ефективна обробка потоків даних JBIG2
  • Підтримка глобальних словників: Спільні словники символів для багатосторінкових документів
  • Доступ до рядків розгортки: Порядковий доступ до даних для ефективної обробки пам'яті

Приклад використання


// Приклад Delphi - обробка стиснених даних JBIG2
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
    if Decoder.LoadFromByteArray(ImageData) then
    begin
      // Порядкова обробка для ефективного використання пам'яті
      for Row := 0 to Decoder.Height - 1 do
      begin
        if Decoder.GetScanline(Row, ScanlineData) then
        begin
          // Обробка даних рядка розгортки за потреби
          // Додавання до сторінки PDF
        end;
      end;
    end;

    PDF.EndDoc;
  finally
    Decoder.Free;
    PDF.Free;
  end;
end;
        

Довідник класів

THPDFJBIG2Decoder

  • LoadFromByteArray: Завантаження даних JBIG2 з масиву байтів
  • GetScanline: Отримання даних конкретного рядка розгортки
  • Width/Height: Властивості розмірів зображення

Оптимізація продуктивності

  • Порядкова обробка з ефективним використанням пам'яті
  • Оптимізовано для обробки великих документів
  • Мінімальне споживання пам'яті під час декомпресії
  • Швидкі алгоритми розпізнавання шаблонів

Відповідність стандартам

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

Див. також