THotPDF.OptimizeLoadedImagesByVisualCost メソッド

対象となる読み込み済み JPEG と JPEG 2000 画像に対して上限付きの品質探索を実行し、品質と削減量の両方の制限を満たす最小コストの候補を採用します

宣言

function OptimizeLoadedImagesByVisualCost(
    const Options: THPDFImageRecompressionCostOptions;
    out AInfo: THPDFImageRecompressionCostInfo): Integer;

コストモデル

エンコードされた各候補はデコードされ、正規化された 0 から 100 の知覚誤差スケール上で、サンプリングした luma / chroma 残差によってデコード済みソースと比較されます

MaximumPerceptualError を超える候補と MinimumSavingsBytes に満たない候補は、スコア計算の前に拒否されます

score = VisualErrorWeight * sqr(error / MaximumPerceptualError)
      + ByteCostWeight * (candidateBytes / sourceBytes)

最小スコアが採用され、同点の場合はエンコード後サイズがより小さい方、さらに品質が高い方の順で決まるため、繰り返し実行でも同じ出力になります

THPDFImageRecompressionCostOptions

MinimumQuality、MaximumQuality、QualityStep が上限付きの品質試行を定義し、ステップが範囲を割り切れない場合でも最大品質は常に含まれます

SampleStride が 1 から 64 の決定論的なピクセル間引きを制御し、2 つの非負の重みで視覚的忠実度とコンパクトさのどちらを優先するかを調整できます

THPDFImageRecompressionCostOptions.Default は品質 30 から 90 を 10 刻みで探索し、知覚誤差を 3 に制限し、1 バイト以上の削減を要求し、各次元 4 ピクセルごとにサンプリングし、視覚誤差とバイトコストを等しく重み付けします

THPDFImageRecompressionCostInfo

結果は、走査した画像数と対象画像数、JPEG と JPEG 2000 の書き換え数、エンコード試行数、視覚・バイトコストによる拒否数、選択された品質の合計、受理された最大知覚誤差、バイト合計、DeterministicSelection ステータスを報告します

安全性

image mask、colour-key mask、スポットカラー、Lab 画像、非 RGB の ICCBased ソースは変更されず、変換可能な calibrated RGB ソースは明示的な calibrated 出力色空間を保持します

キャンセルは各画像とエンコード試行の前に確認され、完全に受理された候補が選ばれない限りソースストリームは置き換えられません

Resource and Image Optimisation