THotPDF.OptimizeLoadedImagesByVisualCost Method

Provede ohraničené hledání kvality u vybraných načtených obrázků JPEG a JPEG 2000 a převezme kandidáta s nejnižšími náklady, který splní limity jak kvality, tak úspor

Deklarace

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

Cost model

Každý zakódovaný kandidát se dekóduje a porovná s dekódovaným zdrojem přes vzorkované luma a chroma rezidua na normalizované škále percepční chyby 0 až 100

Kandidáti nad MaximumPerceptualError nebo pod MinimumSavingsBytes se zamítnou dřív, než se skórují

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

Nejnižší skóre vyhrává, při shodě rozhoduje menší zakódovaná velikost a pak vyšší kvalita, takže opakované běhy dávají stejný výstup

THPDFImageRecompressionCostOptions

MinimumQuality, MaximumQuality a QualityStep definují ohraničené pokusy o kvalitu a maximální kvalita se zahrne vždy, i když krok rozsah nedělí

SampleStride řídí deterministický pixelový subsampling od 1 do 64 a dvě nezáporné váhy umožní volajícímu preferovat vizuální věrnost nebo kompaktní výstup

THPDFImageRecompressionCostOptions.Default prohledá kvalitu 30 až 90 v krocích po 10, omezí percepční chybu na 3, vyžaduje alespoň jeden ušetřený bajt, vzorkuje každý čtvrtý pixel v každé dimenzi a váží vizuální chybu i náklady na bajty stejně

THPDFImageRecompressionCostInfo

Výsledek hlásí počty prohledaných a vybraných obrázků, přepisy JPEG a JPEG 2000, pokusy o kódování, zamítnutí podle vizuální chyby a nákladů na bajty, součty zvolené kvality, maximální přijatou percepční chybu, součty bajtů a stav DeterministicSelection

Bezpečnost

Image masky, colour-key masky, spot barvy, Lab obrázky a non-RGB ICCBased zdroje zůstanou beze změny, zatímco převoditelné kalibrované RGB zdroje si zachovají explicitní kalibrovaný výstupní barevný prostor

Zrušení se kontroluje před každým obrázkem i pokusem o kódování a žádný zdrojový stream se nenahradí, dokud není vybrán kompletní přijatý kandidát

Resource and Image Optimisation