r/AV1 • • 10h ago

Firefox dev compares JXL and AVIF for WEB uses

Thumbnail
jakearchibald.com
54 Upvotes

r/AV1 • • 52m ago

SVT-AV1 4.2, presets 4–7 on DJI Osmo Pocket 3 footage: preset 5 gets ~90% of preset 4's savings in 80% of the time, and same-CRF comparisons undersell preset 6

• Upvotes

I'm setting up an auto-encoder that converts my Osmo Pocket 3 footage to AV1 when I insert the SD card. Before picking settings I ran a test: 150 encodes across presets 4–7 and CRF 20–36, with VMAF, VMAF NEG and BD-rate. Sharing in case it's useful, and I'd welcome critique of the method.

TL;DR

  • Preset 5 is the sweet spot on this footage. At equal quality it's 20% smaller than preset 7, against 22% for preset 4, and it takes 1.5× preset 7's time against 1.9×.
  • Preset 6 is better than it looks at the same CRF. At the same CRF it's only 4% smaller than preset 7. But it also scores about 0.3 VMAF higher, so at matched quality it's 15% smaller. On the 4K60 clip it's even 3% bigger at the same CRF, yet 12% smaller at matched quality.
  • CRF sets the quality almost independently of preset. At the same CRF, presets 4 and 7 land within 0.44 VMAF of each other on every clip (0.1–0.2 on average). So you can pick the CRF first and then the preset, without a full matrix.
  • I went with preset 5, CRF 32. Output is about 13–14% of the camera files, at a mean VMAF of ~96.5.

Setup

  • Encoder: ffmpeg (gyan.dev full build, 2026-09-28 git) with libsvtav1, SVT-AV1 v4.2.0. -c:v libsvtav1 -preset P -crf Q -pix_fmt yuv420p10le -svtav1-params tune=0. No other parameters, video only.
  • Hardware: i7-12700H laptop (6P+8E, 20 threads), Windows 11, on AC power, encodes run one at a time. Times are wall-clock and include HEVC decode.
  • Source: Osmo Pocket 3 HEVC, normal colour profile (bt709). Clips are ≤10 s excerpts from the middle of each file, stream-copied so the source is bit-exact. 11 clips in total:
    • 6× 1080p60 10-bit, ~32 Mb/s, handheld
    • 4× 4K30 8-bit timelapses, 80–124 Mb/s
    • 1× 4K60 10-bit, ~92 Mb/s
  • Metrics: VMAF v0.6.1 and v0.6.1neg at native resolution, both sides converted to yuv420p10le. Scored on every 2nd frame (n_subsample=2). I report the mean, 5th percentile and worst 1%.
  • BD-rate: per clip, PCHIP on log-bitrate vs mean VMAF, then averaged over clips. All presets are anchored to preset 7.
  • Test matrix. I started with a full matrix, found that CRF ≈ quality across presets, and then trimmed it:
Preset CRF
7 24, 28, 32, 36
4 20, 24, 28, 32
6 28, 32
5 28, 32

So the BD-rate for presets 5 and 6 is computed on the CRF 28–32 range, which is effectively a 2-point, log-linear comparison. As a sanity check, preset 4 vs 7 gives −22.2% on the 28–32 range and −22.7% over the full overlapping range.

Result 1: preset trade-off at matched quality

Preset BD-rate vs p7 (VMAF) BD-rate vs p7 (NEG) Encode time vs p7
7 — — 1.00×
6 −14.7% −12.9% 1.28×
5 −19.9% −17.5% 1.52×
4 −22.2% −19.9% 1.92×

Each step down in preset buys less:

Step Extra size reduction Extra encode time
p7 → p6 −14.7% +28%
p6 → p5 −6.1% +19%
p5 → p4 −2.9% +26%

The ranking is the same on every one of the 11 clips. Per clip, preset 5 is within 1.6–3.0 points of preset 4, and preset 6 is 3.5–7.5 points behind preset 5. NEG shows the same ranking, so it isn't VMAF rewarding sharpening.

Result 2: same CRF ≠ same quality

All four presets at CRF 32, all clips (duration-weighted):

Preset Bitrate Size vs p7 VMAF mean VMAF NEG 5th pct
7 8.95 Mb/s — 96.40 94.74 92.57
6 8.58 Mb/s −4.1% 96.70 95.04 92.97
5 7.46 Mb/s −16.6% 96.48 94.74 92.87
4 7.32 Mb/s −18.1% 96.50 94.78 92.91

Preset 6 consistently lands higher in quality at a given CRF than 7, 5 and 4. It has the highest VMAF of the four on 10 of 11 clips, at both CRF 28 and CRF 32. If you only compare file sizes at the same CRF (which is what I did first), preset 6 looks pointless. At matched quality it's a real option: it gives the best savings per extra second of encoding.

Result 3: per resolution/fps

Group p6 BD-rate / time p5 BD-rate / time p4 BD-rate / time
1080p60 10-bit −18.2% / 1.34× −23.3% / 1.60× −25.4% / 2.02×
4K30 8-bit timelapse −10.1% / 1.19× −14.9% / 1.40× −17.4% / 1.77×
4K60 10-bit (1 clip) −12.4% / 1.31× −19.9% / 1.54× −22.2% / 1.93×

Absolute speed at CRF 28/32 on this laptop:

Group p7 p6 p5 p4
1080p60 ~58 fps ~43 fps ~36 fps ~29 fps
4K30 ~14 fps ~11 fps ~10 fps ~8 fps
4K60 ~17 fps ~13 fps ~11 fps ~9 fps

Even preset 7 is barely real-time for 1080p60.

  • The slower presets help most on handheld 1080p60.
  • The 4K30 timelapses gain the least, despite being the slowest per minute of footage.
  • One grainy timelapse is an outlier. At preset 5 / CRF 32 it stays at 32% of its source bitrate, against 7–9% for the other timelapses, and gains the least from slower presets (−11% at p5). Presumably the encoder is spending bits on the camera's noise.

Result 4: CRF ladder

Preset 7. Sizes at p5/p4 are about 17% lower at the same quality.

CRF 1080p60 size / VMAF / 5th pct 4K30 size / VMAF / 5th pct 4K60 size / VMAF / 5th pct
24 38% / 98.1 / 95.8 38% / 99.0 / 95.8 17% / 96.5 / 90.3
28 25% / 97.4 / 94.8 25% / 98.1 / 93.8 10% / 95.5 / 88.8
32 17% / 96.5 / 93.8 17% / 96.8 / 91.8 6% / 94.4 / 88.4
36 13% / 95.4 / 92.5 11% / 95.0 / 89.7 4% / 93.3 / 87.5

(Size is a percentage of the camera's HEVC file.)

  • Each +4 CRF removes about a third of the bitrate and costs about 1 VMAF on the mean.
  • The timelapses' weakest frames fall off about twice as fast as 1080p's.
  • The 4K60 clip's weakest frames don't depend on the CRF. Its 5th percentile sits at 88–91 regardless, even at preset 4 / CRF 20, and its worst 1% at ~70–79. My guess is a few fast-motion frames that VMAF dislikes no matter what.

Caveats

  • Sample. 11 short clips from two days of shooting with one camera. 4K60 is a single clip.
  • VMAF model. v0.6.1 at native 4K assumes 1080p viewing at 3H, so it's probably optimistic for 4K on a big screen.
  • Timing. Laptop timings include some thermal and background noise. But the ratios were consistent across clips and groups.
  • Untuned settings. Only tune=0; no variance boost, film grain or other parameters. Those could shift the picture.

Hope it's useful. I'm curious about how other people experience the preset 4/5/6 trade-offs.