JPEG2000-Bildformatunterstützung

Übersicht

HotPDF bietet nun eine umfassende Unterstützung für JPEG2000-Bildformate, einschließlich JP2-, J2K- und JPT-Dateien. JPEG2000 ist ein Wavelet-basierter Bildkomprimierungsstandard, der im Vergleich zum traditionellen JPEG-Format eine überlegene Komprimierungseffizienz und -qualität bietet

Unterstützte Formate

  • JP2: JPEG2000 Part 1-Format mit vollständiger Dateistruktur
  • J2K: JPEG2000-Codestream-Format (rohe komprimierte Daten)

Key Features

  • Automatische Formaterkennung mit passender Verarbeitung
  • Unterstützung sowohl verlustfreier als auch verlustbehafteter Komprimierung
  • Unterstützung von Bildern mit mehreren Komponenten (RGB, RGBA, Graustufen)
  • Erweiterte Bittiefen-Unterstützung (8, 12, 16 Bit pro Komponente)
  • Direkte validierte Codestream-Tile-Dekodierung mit Tile-Grid-Metadaten
  • Kombinierte Dekodierung von Quellregion und Zweierpotenz-Interessenauflösung
  • Budgets für dekodierte Ausgabe bei feindlichen oder unerwartet großen Codestreams
  • Automatische Renderer-Auflösungswahl anhand sichtbarer Zielpixel
  • Begrenzter paralleler Wiederaufbau unabhängiger, sich überschneidender Tiles
  • Deterministische Telemetrie für Komposition, Abbruch, Worker-Limit und Speicherspitzen

Usage Example


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

Technical Implementation

Die JPEG2000-Unterstützung ist in der Einheit HPDFJpeg2000.pas implementiert, welche Folgendes bietet:

  • THPDFJpeg2000Decoder: zentrale Dekodierer-Klasse für die Verarbeitung von JPEG2000-Bildern
  • Formaterkennung: automatische Identifikation der Formate JP2, J2K und JPT
  • Header-Inspektion: InspectHeaderFromByteArray liest Abmessungen, Komponenten und SourceColorSpace, ohne Pixel-Samples zu dekodieren
  • Stream-Verarbeitung: Unterstützung für bildbasiertes Laden sowohl über Dateien als auch über Streams
  • Tile-Zugriff: LoadTileFromByteArray dekodiert ein validiertes Tile und meldet seinen Quell-Offset und sein Grid
  • Auflösungswahl: LoadRegionFromByteArray kombiniert ein Quellrechteck mit einem Wavelet-Reduktionsfaktor
  • Paralleles Tile-Dekodieren: LoadRegionFromByteArrayParallel verwendet unabhängige Dekodierer-Instanzen und eine deterministische Komposition in zeilenweise höherer Reihenfolge
  • Geladene PDFs: DecodeLoadedImageRegionAtResolution wählt eine Stufe, die keine der Zielabmessungen zu grob auflöst
  • Bedienung der Operation: JPEG2000ParallelTileDecoding und JPEG2000TileWorkerLimit steuern die Renderer-Integration, während GetLastJPEG2000ParallelDecodeStats Scheduling- und Budget-Schätzungen meldet
  • OpenJPEG-Integration: nativ gelinkte Dekodierung auf Win32 und Win64

Performance Benefits

  • Bessere Kompressionsraten als klassisches JPEG
  • Keine Blockartefakte bei hohen Kompressionsraten
  • Progressive Übertragung und Ansicht
  • Unterstützung von Region-of-Interest-Kodierung (ROI)
  • Gleichzeitiger Wiederaufbau, wenn eine sichtbare Region unabhängige Codestream-Tiles überschreitet
  • Option verlustfreier Komprimierung

Compatibility

Die JPEG2000-Unterstützung ist sowohl in 32-Bit- als auch in 64-Bit-Versionen von HotPDF verfügbar und mit allen unterstützten Delphi- und C++ Builder-Versionen kompatibel

Siehe auch