Skip to content

docs(vmaf): research digest + ADR-1122 for VMAF v1 model port - #1082

Merged
lusoris merged 2 commits into
VMAFx:masterfrom
Tualua:docs/vmaf-v1-port-research
Aug 30, 2026
Merged

lusoris merged 2 commits into
VMAFx:masterfrom
Tualua:docs/vmaf-v1-port-research

Conversation

@Tualua

@Tualua Tualua commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Summary

Netflix shipped VMAF v1 in libvmaf v3.2.0 (June 2026). This PR adds a cited
research digest and ADR-1122 deciding how the fork adopts it: opt-in v1
generation, vmaf_v0.6.1 stays default.
Docs-only (planning) — no code yet.

Key finding: v1 is still a libsvm ν-SVR fusion, but VIF is removed and CAMBI
(banding) + speed_chroma (chroma) become core features
(ADM/motion → adm3/motion3).
Six built-in models (1080p@3H, phone@5H, 4K@1.5H, 4K@3H — last on [0, 110]) + HFR
variants; Netflix recommends 10-bit even for 8-bit SDR (aligns with ADR-1121 / PR #1081).

Type

  • docs — documentation only

Checklist

  • Commits follow Conventional Commits.
  • ADR row lives in docs/adr/_index_fragments/1122-*.md + _order.txt (README regenerated).
  • No Netflix golden assertions modified (docs-only).

Bug-status hygiene (ADR-0165)

  • no state delta: planning ADR, not a bug open/close/rule-out.

Deep-dive deliverables (ADR-0108)

  • Research digest — docs/research/2026-07-01-vmaf-v1-models.md.
  • Decision matrix — ADR-1122 ## Alternatives considered (opt-in vs v1-default vs don't-port vs models-only).
  • AGENTS.md invariant note — no rebase-sensitive invariants: docs-only planning ADR, no code touched.
  • Reproducer / smoke-test command — no reproducer needed: docs-only.
  • CHANGELOG fragment — no changelog needed: no user-visible surface changes (planning ADR only).
  • Rebase note — no rebase impact: docs-only; the actual v1 port lands under this ADR later.

Known follow-ups

The v1 implementation (build in JSONs, fix SYCL cambi/speed_chroma, [0,110]
handling, CAMBI enc-params, v1 golden tests, upstream sync to v3.2.0) is scoped in
ADR-1122 and tracked as a follow-up port — this PR only lands the decision + research.

🤖 Generated with Claude Code

https://claude.ai/code/session_01YCP4JCoduujJgccDRGvNKv

@lusoris

lusoris commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

Apologies for the long silence on this — the repository had a CI deadlock that blocked every PR (including our own) from 2026-06-29 until today. Nothing to do with your work. Details in #1127 if you're curious: the Required Checks Aggregator treats a sibling job still queued at its 90-minute deadline as a failure, and a large dependency backlog kept the queue deeper than that, so the gate kept failing PRs that had nothing wrong with them.

Two things I've done here:

1. CI is now running on this PR for the first time. Fork PRs need a maintainer to approve workflow runs, and that never happened. Approved now.

2. Pushed one formatting-only commit (4256164) to get markdownlint green. No content or conclusions were changed — table delimiter rows to the repo's compact pipe style, a text language on the feature_names fence, and backticks around the viewing-condition identifiers. That last one is worth flagging: MD034 read the dot in 4K@1.5H as a TLD and called it a bare URL. Backticks are the right fix anyway since these are identifiers, not prose.

Heads-up if you ever reach for it: markdownlint-cli2 --fix is unsafe in this repo (ADR-0864). It rewrote 4K@1.5H to <4K@1.5H> and silently corrupted the sentence. I reverted its output and applied the fixes by hand.

On the ADR numbers. You claimed ADR-1121 (in #1081) and ADR-1122 here, and those claims are correct and stand — I'm not going to renumber your work. But our allocator (scripts/adr/next-free.sh) only queries git ls-remote --heads origin, so it cannot see ADR files on contributor forks. It handed me 1121 today for an unrelated change and I had to release it by hand. That's our bug, not yours; I'll get the allocator taught about open fork PRs.

Also: several of the docs/adr/README.md lint errors on this PR are pre-existing index corruption, not yours — #1126 fixes them at the source. Once that lands, rebasing here should clear those.

The v1 model research is genuinely good work — the feature-delta table and the [0,110] score-range implications are exactly the parts we'd have had to rediscover. Reviewing #1081 properly next.

Tualua and others added 2 commits August 30, 2026 16:37
Netflix shipped VMAF v1 in libvmaf v3.2.0 (June 2026): still a libsvm
nu-SVR fusion, but VIF is removed and CAMBI (banding) + speed_chroma
(chroma) become core features; ADM/motion move to adm3/motion3. Six
built-in models for 1080p@3H / phone@5H / 4K@1.5H / 4K@3H (last on a
[0,110] range) + HFR variants; Netflix recommends 10-bit measurement
even for 8-bit SDR.

Adds a cited research digest and ADR-1122 deciding to adopt v1 as an
opt-in generation (v0.6.1 stays default), with the port scope: build in
the JSONs, fix SYCL cambi/speed_chroma (now core, currently failing on
Arc A380), handle the [0,110] range end-to-end, plumb CAMBI enc params,
and add new v1 golden refs in separate tests (v0.6.1 golden pairs
untouched). Aligns with the zero-copy 10-bit work (ADR-1121, PR VMAFx#1081).

Refs ADR-1122.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YCP4JCoduujJgccDRGvNKv
…R-1122

Formatting only — no content or conclusions changed.

- table delimiter rows to the repo's "compact" pipe style (MD060)
- `text` language on the feature_names fence (MD040)
- backtick the viewing-condition identifiers `1080p@3H` / `phone@5H` /
  `4K@1.5H` / `4K@3H`; MD034 read the dot in `4K@1.5H` as a TLD and flagged it
  as a bare URL. Backticks are also more correct — these are technical
  identifiers, not prose.
- angle-bracket the maintainer e-mail (MD034)

markdownlint-cli2 over the PR's changed files now reports 0 issues.

Note for anyone repeating this: `markdownlint-cli2 --fix` is unsafe here per
ADR-0864. It rewrote `4K@1.5H` to `<4K@1.5H>`, silently corrupting the text. The
autofix output was reverted and the fixes above applied by hand.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@lusoris
lusoris force-pushed the docs/vmaf-v1-port-research branch from 4256164 to f5ba7c9 Compare August 30, 2026 14:38
@lusoris
lusoris merged commit 1fa331c into VMAFx:master Aug 30, 2026
@lusoris lusoris added this to the 1.0.0 — First release milestone Sep 4, 2026
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.

2 participants