Metoda THotPDF.OptimizeLoadedImagesByVisualCost

Rulează o căutare delimitată a calității pentru imaginile JPEG și JPEG 2000 încărcate eligibile și adoptă candidatul cu cel mai mic cost care respectă atât limita de calitate, cât și pe cea de economie

Declarație

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

Cost model

Fiecare candidat codat este decodat și comparat cu sursa decodată prin reziduuri eșantionate de luma și chroma, pe o scară normalizată a erorii perceptuale de la zero la 100

Candidates above MaximumPerceptualError or below MinimumSavingsBytes are rejected before scoring

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

Câștigă scorul cel mai mic, urmat de dimensiunea codată mai mică și apoi de calitatea mai mare, la scoruri egale, astfel că rulările repetate produc aceeași ieșire

THPDFImageRecompressionCostOptions

MinimumQuality, MaximumQuality și QualityStep definesc încercările de calitate delimitate, iar calitatea maximă este întotdeauna inclusă, chiar și când pasul nu împarte intervalul exact

SampleStride controlează subeșantionarea deterministă a pixelilor de la 1 la 64, iar cele două ponderi nenegative permit apelanților să favorizeze fidelitatea vizuală sau ieșirea compactă

THPDFImageRecompressionCostOptions.Default caută calități de la 30 la 90, în pași de 10, limitează eroarea perceptuală la 3, cere un octet economisit, eșantionează fiecare al patrulea pixel pe fiecare dimensiune și dă aceeași pondere erorii vizuale și costului în octeți

THPDFImageRecompressionCostInfo

Rezultatul raportează numărul de imagini scanate și eligibile, rescrierile JPEG și JPEG 2000, încercările de codare, respingerile pe motive vizuale și de cost în octeți, totalurile calității selectate, eroarea perceptuală maximă acceptată, totalurile de octeți și starea DeterministicSelection

Safety

Măștile de imagine, măștile color-key, spot color-urile, imaginile Lab și sursele ICCBased non-RGB rămân neschimbate, în timp ce sursele RGB calibrate convertibile își păstrează un spațiu de culoare de ieșire calibrat explicit

Anularea este verificată înaintea fiecărei imagini și a fiecărei încercări de codare, iar niciun stream sursă nu este înlocuit decât dacă a fost selectat un candidat complet acceptat

Resource and Image Optimisation