Skip to content

docs(bench): v0.15 — deband radius premise-check validated positive (multi-scale deband headroom)#40

Merged
lusoris merged 1 commit into
masterfrom
docs/deband-radius-premise-validated
Jun 27, 2026
Merged

docs(bench): v0.15 — deband radius premise-check validated positive (multi-scale deband headroom)#40
lusoris merged 1 commit into
masterfrom
docs/deband-radius-premise-validated

Conversation

@lusoris

@lusoris lusoris commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

What

bench-results.md v0.15 — the deband radius premise-check, validated positive. The gains-hunt's #1 quality candidate (multi-scale deband) moves from corpus-blocked / unknown to premise-supported / ready to build. Docs-only; no code, ABI, or surface change.

The metric unblock (reusable)

Every quality-gain check this session had been blocked by the standalone vmaf --feature cambi appearing to hang. Root cause was mundane, not a cambi failure:

  • It's a GPU-accelerated vmaf fork whose dispatcher first-match-wins race grabs CUDA/Vulkan. --backend cpu makes it deterministic and fast.
  • It writes the JSON before a teardown sleep — the same behavior the harness's --vmaf-timeout already exploits (v0.14 Open/next §3). timeout N … -o out.json --json + read the partial returns scores in well under a second of compute.

(The recurring "exit 1, no output" was a pkill -9 prelude being swallowed by the unsafe-bash hook — dropped.) This CPU-backend pattern unblocks all future quality work.

Result

Synthetic wide low-amplitude luma gradient (16→24 over 854 px ⇒ ~107-px bands, wider than the 2·31 = 62-px max reach), 480p, dither off (grainy=0 dither=none) to isolate the spatial averaging from the grain:

range CAMBI vs baseline
baseline 7.837
8 6.207 −20.8 %
15 (default) 5.145 −34.3 %
24 4.532 −42.2 %
31 (max) 4.302 −45.1 %

CAMBI falls monotonically and is still descending at the range=31 cap (24→31 still buys −5 %). The spatial pass leaves CAMBI ≈ 4.3 of real residual on bands wider than it can reach; the default range=15 under-debands them (5.14 vs 4.30 achievable). Premise supported.

Why it matters through the encoder (ties to v0.1.0)

With the shipping default dither on, CAMBI floors to ≈ 3e-6 at every radius — the grain breaks the contour the metric keys on. But v0.1.0 established that an 8-bit encoder quantizes that dither away and re-bands, so the dither's banding removal never reaches the decoded output. What survives is the spatial averaging (it changes the actual luma plateaus, not added noise) — and this shows that durable pass is radius-limited. So multi-scale spatial deband (a coarse downsampled pass to span wide bands cheaply, blended under the existing detail mask) is the durable lever.

Status: validated-positive, build pending

The build is deliberately not in this PR. Proving it does not over-smooth needs detail-bearing content (wide bands and texture/edges), scored post-encode (or dither-off) CAMBI for the gain plus an SSIM/SSIMULACRA2 detail-preservation check — the failure mode the synthetic gradient cannot show. That validation corpus is the tracked blocker. This PR records the measurement and tees up the build behind a detail-preservation gate.

Deliverables

Docs-only measurement record (bench-results v0.15). Per the per-PR rule, a pure bench-results entry adds no surface — no ADR/changelog/patch (matches v0.12–v0.14 docs PRs). The follow-up build will carry its own ADR + docs + changelog + shader-lockstep + patch.

🤖 Generated with Claude Code

…multi-scale deband has measured headroom)

The first positive premise-check in the bench series after the v0.11-v0.13
encoder-RC negatives. Two parts: the metric-tooling unblock that enabled it,
and the result.

Metric unblock: the standalone vmaf cambi 'hang' that had blocked every
quality check was the GPU-accelerated fork's dispatcher grabbing CUDA/Vulkan
(forcing --backend cpu makes it deterministic) plus the known
write-JSON-then-teardown-sleep (read the partial under timeout, as the
harness --vmaf-timeout already does). cambi itself was never broken.

Result: on a wide (~107px) low-amplitude gradient with dither off (isolating
the spatial averaging), CAMBI falls monotonically with range
(7.84 -> 6.21 -> 5.14 -> 4.53 -> 4.30 at range 8/15/24/31) and is still
descending at the range=31 cap. The spatial pass leaves real residual on
bands wider than a single <=31 radius can span; the default range=15
under-debands them. Premise supported.

Ties to v0.1.0: with dither on, CAMBI floors regardless of radius, but the
8-bit encoder quantizes that dither away and re-bands, so the durable
banding removal is the spatial averaging -- which this shows is
radius-limited. Multi-scale spatial deband (a coarse downsampled pass under
the existing detail mask) is the durable lever.

Status: validated-positive, build pending. The build needs detail-bearing
validation content (bands + texture, scored post-encode CAMBI for the gain +
SSIM/SSIMULACRA2 for no over-smoothing) -- the failure mode the synthetic
gradient cannot show. Converts the gains-hunt #1 quality candidate from
corpus-blocked/unknown to premise-supported/ready-to-build.

Docs-only (bench-results record); no code, ABI, or surface change.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@lusoris
lusoris merged commit 818d844 into master Jun 27, 2026
3 checks passed
@lusoris
lusoris deleted the docs/deband-radius-premise-validated branch June 27, 2026 16:32
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