THotPDF.OptimizeLoadedImagesByVisualCost Method

Runs a bounded quality search for eligible loaded JPEG and JPEG 2000 images and adopts the lowest-cost candidate that satisfies both quality and savings limits

Declaration

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

Cost model

Each encoded candidate is decoded and compared with the decoded source through sampled luma and chroma residuals on a normalized zero-to-100 perceptual-error scale

Candidates above MaximumPerceptualError or below MinimumSavingsBytes are rejected before scoring

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

The lowest score wins, followed by smaller encoded size and then higher quality when scores tie, so repeated runs use the same output

THPDFImageRecompressionCostOptions

MinimumQuality, MaximumQuality and QualityStep define the bounded quality trials, and the maximum quality is always included even when the step does not divide the range

SampleStride controls deterministic pixel subsampling from 1 through 64, while the two non-negative weights let callers favor visual fidelity or compact output

THPDFImageRecompressionCostOptions.Default searches quality 30 through 90 in steps of 10, limits perceptual error to 3, requires one saved byte, samples every fourth pixel in each dimension, and weights visual error and byte cost equally

THPDFImageRecompressionCostInfo

The result reports scanned and eligible image counts, JPEG and JPEG 2000 rewrites, encoding trials, visual and byte-cost rejections, selected quality totals, maximum accepted perceptual error, byte totals, and DeterministicSelection status

Safety

Image masks, color-key masks, spot colors, Lab images and non-RGB ICCBased sources remain unchanged, while convertible calibrated RGB sources retain an explicit calibrated output color space

Cancellation is checked before each image and encoding trial, and no source stream is replaced unless a complete accepted candidate has been selected

Resource and Image Optimization