Dune: Part Two Libvpx Now

vpxenc --codec=vp9 --passes=2 --good \ --width=3840 --height=1608 \ --bitrate=25000 --auto-alt-ref=1 \ --lag-in-frames=25 --end-usage=vbr \ --min-q=0 --max-q=63 --cq-level=18 \ --enable-fwd-kme=1 --aq-mode=4 \ --noise-sensitivity=3 \ --tile-columns=2 --threads=8 \ -o dune_part2.webm Note: --noise-sensitivity=3 synthesizes grain, tricking the encoder into preserving texture without over-spending bits on actual sand noise.

Finding: At 25 Mbps 4K, libvpx retained 92% of film grain noise (per SSIM-c for texture), whereas x264 smeared sand into “mud” (68% retention). The --enable-fwd-kme=1 flag improved temporal consistency across shifting dunes. dune: part two libvpx

The monochromatic, high-dynamic-range scene (Giedi Prime’s black sun) exposed a flaw in libvpx ’s default psychovisual optimization. Due to the lack of chroma information (UV planes near-zero), the rate-distortion algorithm over-allocated bits to residual luma noise, causing in the sky. libvpx ’s constrained loop filter ( --loopfilter=2 )

High-contrast edges (worm teeth against bright sky) produce ringing artifacts. libvpx ’s constrained loop filter ( --loopfilter=2 ) successfully suppressed Gibbs phenomena without blurring the worm’s carapace ridges. dune: part two libvpx

To address both sand and the Harkonnen scene, a hybrid libvpx profile is proposed:

| Feature | libvpx (VP9) | x265 (HEVC) | Winner | | :--- | :--- | :--- | :--- | | Sand grain retention | Excellent (92%) | Good (88%) | libvpx | | Worm motion vectors | Accurate sub-pel | Slightly blurry | libvpx | | Giedi Prime banding | Visible | None (10-bit dither) | x265 | | Encode speed (fps) | 0.3 fps | 0.8 fps | x265 |

[Generated AI] Date: May 20, 2024