|
JPEG2000 Image Format Support
概要
HotPDF は JP2 / J2K ファイルを含む JPEG2000 画像フォーマットを包括的にサポートします。JPEG2000 はウェーブレットベースの画像圧縮規格で、従来の JPEG と比べて高い圧縮効率と品質を提供します
対応フォーマット
- JP2: 完全なファイル構造を持つ JPEG2000 Part 1 フォーマット
- J2K: JPEG2000 コードストリームフォーマット(生の圧縮データ)
主な特徴
- フォーマットの自動判定と適切な処理
- ロスレス / ロッシーの両圧縮に対応
- マルチコンポーネント画像のサポート(RGB、RGBA、グレースケール)
- 高度なビット深度のサポート(コンポーネントあたり 8 / 12 / 16 ビット)
- タイルグリッドメタデータ付きの検証済みコードストリームタイル直接デコード
- ソース領域と 2 の冪の注目解像度を組み合わせたデコード
- 敵対的または予想外に大きなコードストリームに対するデコード出力予算
- 可視ターゲットピクセルからのレンダラー解像度自動選択
- 交差する独立タイルの境界付き並列再構成
- 決定論的な合成、キャンセル、ワーカー上限、ピークメモリのテレメトリ
使用例
// 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;
技術的な実装
JPEG2000 サポートは HPDFJpeg2000.pas ユニットで実装されており、次を提供します:
- THPDFJpeg2000Decoder: JPEG2000 画像を処理するメインのデコーダークラス
- フォーマット判定: JP2、J2K、JPT フォーマットの自動識別
- ヘッダー検査:
InspectHeaderFromByteArray がピクセルサンプルをデコードせずに、サイズ、コンポーネント、SourceColorSpace を読み取ります
- ストリーム処理: ファイル / ストリームベースのどちらの画像読み込みにも対応
- タイルアクセス:
LoadTileFromByteArray が検証済みの 1 タイルをデコードし、ソースオフセットとグリッドを報告します
- 解像度選択:
LoadRegionFromByteArray がソース矩形とウェーブレット縮小係数を組み合わせます
- 並列タイルデコード:
LoadRegionFromByteArrayParallel が独立したデコーダーインスタンスと決定論的な行優先の合成を使います
- ロード済み PDF:
DecodeLoadedImageRegionAtResolution が、どちらのターゲット次元も過小解像にならないレベルを選択します
- 操作コントロール:
JPEG2000ParallelTileDecoding と JPEG2000TileWorkerLimit がレンダラー統合を制御し、GetLastJPEG2000ParallelDecodeStats がスケジューリングと予算の見積りを報告します
- OpenJPEG 統合: Win32 / Win64 でのネイティブリンクデコード
性能上の利点
- 従来の JPEG より良い圧縮率
- 高圧縮率でもブロックノイズが出ない
- プログレッシブな転送と表示
- 関心領域(ROI)符号化のサポート
- 可視領域が独立したコードストリームタイルにまたがるときの並行再構成
- ロスレス圧縮オプション
互換性
JPEG2000 サポートは HotPDF の 32 ビット / 64 ビット両方のバージョンで利用でき、サポート対象のすべての Delphi / C++Builder バージョンと互換性があります
関連項目
|