PLOVE (Platinum Labs Objective Video Evaluation) is a single, tunable score that balances visual quality, output size, and encode speed to make row-to-row comparisons easy.
Each component is normalized to a 0–100 range within the currently filtered dataset, then combined with user-adjustable weights that sum to 1.00.
// PLOVE 4.0 component scores
// Quality (VMAF) with diminishing returns above 90 and harsh penalty below 90
function qualityScore(vmaf) {
if (vmaf == null) return 100
if (vmaf >= 90) return 50 + 50 * Math.sqrt((vmaf - 90) / 10)
return 50 * Math.pow(vmaf / 90, 4)
}
// Relative size (fileSize / medianFileSize) — lower is better
function sizeScore(relSize, rsMin, rsMax) {
if (!(rsMax > rsMin)) return 100
return 100 * (rsMax - relSize) / (rsMax - rsMin)
}
// Speed uses logarithmic normalization
function speedScore(fps, fpsMin, fpsMax) {
if (!(fpsMin > 0 && fpsMax > 0)) return 0
if (fpsMax === fpsMin) return 100
const lf = Math.log(Math.max(fps, fpsMin))
return 100 * (lf - Math.log(fpsMin)) / (Math.log(fpsMax) - Math.log(fpsMin))
}
// Hard cutoff for inefficient encodes
if (relSize >= 1.0) plove = 0
else plove = clamp(wQ*qualityScore(vmaf) + wS*sizeScore(relSize, rsMin, rsMax) + wV*speedScore(fps, fpsMin, fpsMax), 0, 100)When a range collapses (e.g., all rows have identical values), that component defaults to 100 to avoid skewing results. PLOVE also applies strong penalties to oversized outputs (relative size > 1.0) and to VMAF below 90.