Skip to content

docs(bench): v0.17 — SSIMULACRA2 metric + tuned NVENC settings close most of the GPU->CPU gap#45

Merged
lusoris merged 1 commit into
masterfrom
docs/ss2-metric-settings-finding
Jun 27, 2026
Merged

docs(bench): v0.17 — SSIMULACRA2 metric + tuned NVENC settings close most of the GPU->CPU gap#45
lusoris merged 1 commit into
masterfrom
docs/ss2-metric-settings-finding

Conversation

@lusoris

@lusoris lusoris commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

What

Records the session's payoff + a methodology correction. Pelorus' mission: smaller + higher-quality GPU encodes approaching CPU quality, at GPU speed. We were measuring it with the wrong metric.

The findings

  1. SSIMULACRA2 is the primary metric; VMAF-NEG is retired. NEG zeroes the enhancement credit (it was the anti-gaming guard for the pre-encode filter lane) and VMAF saturates at 100 on clean content — together they hid the biggest lever. On the same encodes where NEG said "no gain," SS2 (no saturation, robust to sharpening-gaming) shows large differences. Set: SS2 primary + regular VMAF secondary (VMAF-up/SS2-down = gaming flag).

  2. The NVENC default is garbage; tuned settings are the big free lever. p7 -tune hq -spatial-aq 1 -temporal-aq 1 -aq-strength 8 -rc-lookahead 32 -multipass fullres -b_ref_mode middle beats default by +5..+10 SS2 at iso-bitrate — invisible to VMAF (+/-0.5; it can't see the flat-region AQ win). Pushing AQ15/lookahead-53 doesn't help (lever tapped).

  3. The real GPU->CPU gap is small (~2 SS2) — clean, CQ-locked: tuned hevc_nvenc vs x265 -preset slow, and av1_nvenc vs SVT-AV1, both ~2-2.5 SS2. The earlier "huge gap" was the garbage default + noisy content + VBR overshoot. The residual is what the Pelorus Vulkan filters close on top, at GPU speed (NVENC >> x265-slow, so it stays faster than CPU).

Methodology (benchmarking.md)

CQ-locked ladders (VBR overshoots ~50% with multipass), SS2 primary, VMAF secondary, NEG retired, CPU encode as the gold-standard gap reference.

Deliverables

bench-results v0.17 + benchmarking.md + changelog. Docs-only; feeds tune=auto (ADR-0142).

🤖 Generated with Claude Code

…close most of the GPU->CPU gap

The session's payoff + a methodology correction. Pelorus' goal is smaller +
higher-quality GPU encodes approaching CPU at GPU speed; VMAF/VMAF-NEG hid the
signal. VMAF-NEG zeroes the enhancement credit (it was the filter-lane anti-gaming
guard) and saturates, so it was blind to the biggest lever: tuned NVENC settings
(p7 + spatial/temporal-AQ + lookahead + multipass + b_ref) beat the conservative
defaults by ~+5..+10 SS2 at iso-bitrate (the default is garbage), invisible to
VMAF (+/-0.5). SSIMULACRA2 (no saturation, robust to sharpening) reveals it AND
correctly refutes additive sharpen.

With tuned settings the real GPU->CPU gap (clean, CQ-locked) is ~2 SS2 (tuned
hevc_nvenc vs x265-slow; av1_nvenc vs SVT-AV1 similar) -- down from the garbage-
default's ~16; pushing AQ/lookahead harder doesn't help (lever tapped). That
residual is what the Pelorus Vulkan filters close on top, at GPU speed (NVENC is
far faster than x265-slow). Adopts SS2-primary + VMAF-secondary + CQ-locked
ladders as the methodology; retires VMAF-NEG. Docs-only; feeds tune=auto (ADR-0142).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@lusoris
lusoris merged commit 6d10079 into master Jun 27, 2026
3 checks passed
@lusoris
lusoris deleted the docs/ss2-metric-settings-finding branch June 27, 2026 20:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant