Dukungan Kompresi JBIG2

Ikhtisar

HotPDF kini menyertakan dukungan kompresi JBIG2 (Joint Bi-level Image Experts Group 2) yang menyeluruh JBIG2 adalah standar kompresi lossy atau lossless yang dirancang khusus untuk gambar bi-level (monokrom), yang umum digunakan dalam dokumen PDF untuk halaman teks hasil pindai dan gambar garis

Fitur Utama

  • Kompresi berefisiensi tinggi untuk gambar bi-level
  • Dukungan untuk mode kompresi lossy dan lossless
  • Dioptimalkan untuk kompresi teks dan gambar garis
  • Pengurangan ukuran file yang signifikan dibandingkan metode kompresi tradisional
  • Dukungan kepatuhan PDF/A penuh
  • Dukungan dokumen multi-halaman dengan kamus bersama

Manfaat Kompresi

  • Rasio Kompresi Unggul: Hingga 3-5x lebih baik daripada Group 4 CCITT
  • Pengenalan Pola: Pengenalan cerdas terhadap pola dan simbol yang berulang
  • Kompresi Adaptif: Secara otomatis menyesuaikan strategi kompresi berdasarkan jenis konten
  • Efisien Memori: Dioptimalkan untuk memproses dokumen hasil pindai berukuran besar

Kasus Penggunaan Umum

  • Dokumen teks hasil pindai
  • Gambar teknis dan cetak biru
  • Formulir dan faktur
  • Peta dan diagram
  • Dokumen berisi campuran teks dan grafis

Implementasi Teknis

Dukungan JBIG2 diimplementasikan melalui unit HPDFJBIG2.pas, yang menyediakan:

  • THPDFJBIG2Decoder: Kelas decoder inti untuk data terkompresi JBIG2
  • Pemrosesan Aliran: Penanganan efisien untuk aliran data JBIG2
  • Dukungan Kamus Global: Kamus simbol bersama untuk dokumen multi-halaman
  • Akses Scanline: Akses data baris demi baris untuk pemrosesan yang efisien memori

Contoh Penggunaan


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

Referensi Kelas

THPDFJBIG2Decoder

  • LoadFromByteArray: Memuat data JBIG2 dari byte array
  • GetScanline: Mengambil data scanline tertentu
  • Width/Height: Properti dimensi citra

Optimasi Performa

  • Pemrosesan scanline yang efisien memori
  • Dioptimalkan untuk penanganan dokumen berukuran besar
  • Jejak memori minimal selama dekompresi
  • Algoritme pengenalan pola yang cepat

Kepatuhan Standar

  • Kepatuhan standar ITU-T T.88
  • Dukungan standar ISO/IEC 14492
  • Kompatibilitas format arsip PDF/A
  • Konsistensi lintas platform

Lihat Juga