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