JPEG2000 Support

Genel bakış

HotPDF; JP2 ve J2K dosyaları dahil JPEG2000 görüntü biçimleri için kapsamlı destek sağlar. JPEG2000, dalgaçıklarına dayalı bir görüntü sıkıştırma standardıdır ve geleneksel JPEG biçimine göre daha üst sıkıştırma verimliliği ve kalitesi sunar

Desteklenen biçimler

  • JP2: Eksiksiz dosya yapısıyla JPEG2000 Part 1 biçimi
  • J2K: JPEG2000 kod akışı biçimi (ham sıkıştırılmış veri)

Öne çıkan özellikler

  • Otomatik biçim algılama ve uygun işleme
  • Hem kayıpsız hem kayıplı sıkıştırma desteği
  • Çok bileşenli görüntü desteği (RGB, RGBA, Gri tonlama)
  • Gelişmiş bit derinliği desteği (bileşen başına 8, 12, 16 bit)
  • Kiremit ızgarası üst verisiyle doğrudan doğrulanmış kod akışı kiremit çözme
  • Birleşik kaynak bölgesi ve ikinin kuvvetleri çözünürlüğünde ilgi bölgesi çözme
  • Düşmanca veya beklenmedik derecede büyük kod akışları için çözülmüş çıktı bütçeleri
  • Görünür hedef piksellerinden otomatik çizici çözünürlüğü seçimi
  • Bağımsız kesişen kiremitlerin sınırlı paralel yeniden inşası
  • Deterministik oluşturma, iptal, çalışan sınırı ve zirve bellek telemetrisi

Kullanım örneği


// Delphi example - Adding JPEG2000 image to PDF
procedure AddJPEG2000Image;
var
  PDF: THotPDF;
begin
  PDF := THotPDF.Create(nil);
  try
    PDF.FileName := 'output.pdf';
    PDF.BeginDoc;
    PDF.AddPage;

    // Add JPEG2000 image - format is automatically detected
    PDF.AddImage('sample.jp2', 100, 100, 200, 150);

    // J2K codestream format is also supported
    PDF.AddImage('sample.j2k', 100, 300, 200, 150);

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

Teknik uygulama

JPEG2000 desteği, şunları sağlayan HPDFJpeg2000.pas birimi üzerinden uygulanır:

  • THPDFJpeg2000Decoder: JPEG2000 görüntülerini işlemek için ana çözücü sınıfı
  • Biçim algılama: JP2, J2K ve JPT biçimlerinin otomatik tanınması
  • Başlık incelemesi: InspectHeaderFromByteArray; boyutları, bileşenleri ve SourceColorSpace'i piksel örneklerini çözmeden okur
  • Stream işlemesi: Dosya ve stream tabanlı görüntü yüklemenin ikisini de destekler
  • Kiremit erişimi: LoadTileFromByteArray doğrulanmış tek bir kiremiti çözer ve kaynak ofsetini ile ızgarasını bildirir
  • Çözünürlük seçimi: LoadRegionFromByteArray, kaynak dikdörtgenini bir dalgaçık küçültme çarpanıyla birleştirir
  • Paralel kiremit çözme: LoadRegionFromByteArrayParallel, bağımsız çözücü örnekleri ve deterministik satır öncelikli birleştirme kullanır
  • Yüklenen PDF'ler: DecodeLoadedImageRegionAtResolution, hedef boyutların hiçbirini eksik çözümlemeyen bir düzey seçer
  • İşlem kontrolleri: JPEG2000ParallelTileDecoding ve JPEG2000TileWorkerLimit çizici entegrasyonunu kontrol eder; GetLastJPEG2000ParallelDecodeStats zamanlama ve bütçe kestirimlerini bildirir
  • OpenJPEG entegrasyonu: Win32 ve Win64'te yerel bağlı çözme

Performans yararları

  • Geleneksel JPEG'e göre daha iyi sıkıştırma oranları
  • Yüksek sıkıştırma oranlarında bloklaşma artefaktı yok
  • Aşamalı iletim ve görüntüleme
  • İlgi bölgesi (ROI) kodlama desteği
  • Görünür bir bölge bağımsız kod akışı kiremitlerini aştığında eşzamanlı yeniden inşa
  • Kayıpsız sıkıştırma seçeneği

Uyumluluk

JPEG2000 desteği, HotPDF'in 32 bit ve 64 bit sürümlerinin ikisinde de mevcuttur ve desteklenen tüm Delphi ile C++ Builder sürümleriyle uyumludur

Ayrıca bakın