OWLOWL/← All findings

Apple TV 4K (2017, A10X): H.264/HEVC play at the same power; AV1 and VP9 both cost +29% more — the third silicon-coverage instance

🟢 Repeatable · measured 2026-08-26 · refined 2026-09-22 · v2
Device-total W, VLC for tvOS, n=3 per codec across three content families: H.264 4.10 W, HEVC 4.07 W, AV1 5.25 W, VP9 5.28 W — hardware pair (VideoToolbox) flat, software-fallback pair +1.19 W (+29%), gap stable per content (+1.0 to +1.3 W).
SCOPE: Client device layer only (Apple TV 4K, 2017, A10X Fusion, tvOS 26.6). Network, CDN, display excluded. Player is VLC for tvOS via Companion launch, not the native tvOS player.
OWL Finding: Apple TV 4K (2017, A10X): H.264/HEVC play at the same power; AV1 and VP9 both cost +29% more — the third silicon-coverage instance measured 2026-08-26, refined 2026-09-22 https://wattlab.greeningofstreaming.org/findings/appletv-a10x-av1-vp9-software-fallback Greening of Streaming — wattlab.greeningofstreaming.org
Source measurement
Loading measurement decode/7a453a7c…
Loading measurement decode/c03615b2…
Loading measurement decode/53b55302…
Loading measurement decode/85aa43b7…
Loading measurement decode/959fc2be…
Loading measurement decode/87a42c89…
Loading measurement decode/e4333696…
Loading measurement decode/dbb70a0d…

Caveats

The result, in one sentence

On the 2017 Apple TV 4K (A10X Fusion, tvOS 26.6), playing the same 1080p60 content via VLC for tvOS, H.264 and HEVC draw the same device-total power (4.10 W and 4.07 W, VideoToolbox hardware) while AV1 and VP9 both draw +1.19 W more (+29%) — confirmed across three content families, n=3 per codec.

Why this matters

This is the third independent silicon vendor to show the same shape in OWL's decode panel: a codec with a hardware block is free; a codec without one is paid for in software, at a cost set by the silicon, not the codec. MediaTek (Google TV Streamer, Fire TV Stick — same MT8696 part) shows AV1 free where it has the block. Marvell (the Bbox operator CPE) shows AV1 costing +1.2–1.4 W where it doesn't. Apple silicon of this generation now shows the same penalty for two codecs at once — AV1 and VP9 — from the platform whose codec support was directly questioned in the LinkedIn thread this campaign's VP9 report grew out of. The panel's "codec cost is a property of silicon coverage" claim (codec-decode-energy-depends-on-silicon-and-regime) now spans three vendors, not two.

A fourth vendor, added 2026-09-22, pushes the same shape to its limit. The TV Box W5 (Allwinner H618) has a hardware VP9 block and no AV1 block. VP9 there is cheap — it ties HEVC and comes in below H.264. AV1 is not merely dearer: the box falls back to in-app libgav1 and presents 1.7 fps against a 1080p60 source, so the codec is effectively unavailable on that silicon rather than expensive on it. Where this Apple TV pays a measurable +29 % to decode AV1 in software, a weaker SoC cannot pay it at all — and, because it is not doing the work, its AV1 rows read as the cheapest codec on the box. Same mechanism, two very different consequences.

How it was measured

OWL /decode rig (decode_bench/bench.py's AtvDevice driver, sequenced by decode_bench/atv_night.py): Apple TV controlled over pyatv (Companion + AirPlay), playback via launch_app=vlc-x-callback://…/stream?url=<origin URL> (AirPlay's native play_url does not work on this tvOS — see caveats). Own Tapo P110 (Lab-F3, local mW API, 1 s cadence). Protocol: park (VLC stopped, relaunched to its library screen) → settle (25 s floor, above the generic protocol default — this device's post-stop settle is slower than the Android boxes the default was tuned against) → 40-sample baseline → launch → 120 s sampled window → stop → park. confidence.py on the raw 1 s samples; every cited row 🟢. Content: iso-bitrate BBB/Kranjska/Meridian families (S65/C17 recipe), 1080p60, matched-VMAF NVENC encodes, served by the Range-correct OWL origin. n=3 per codec per content family (n=2 for one cell — see caveats). Full campaign table and narrative: ~/dev/smpte-4951/digests/2026-08-appletv-vlc.md (SMPTE #4951, entry C19).

What this finding does not measure

Methodology → (docs/wattlab_traffic_light_confidence.md)
decodeclient-deviceapple-tvav1vp9codecsilicon-coverageowl-rem-lemprotocol-v3