OWLOWL/← All findings

On modern hardware-decode set-top boxes, an hour of 1080p playback costs ~0.25–0.65 W over the home screen β€” and the content moves that number more than the codec does

🟒 Repeatable · measured 2026-08-16 · refined 2026-09-22 · v2
Google TV Streamer + Fire TV Stick 4K, 1080p over LAN, 1100–3540 s windows, all 🟒: BBB (animation) +0.60/+0.64/+0.60 W (GTV h264/hevc/av1), +0.59/+0.44/+0.52 W (Fire TV); live-action Meridian/Kranjska +0.25–0.46 W. Codec spread within a content ≀0.1 W; content spread ~0.35 W.
SCOPE: Client device layer only β€” the set-top box at the wall (Google TV Streamer, Fire TV Stick 4K 2nd gen), decode + render to HDMI, home-screen idle as baseline. Display, network, CDN, origin excluded. Boxes' sleep/screensaver/CEC-standby timers pinned for the bench (disclosed).
OWL Finding: On modern hardware-decode set-top boxes, an hour of 1080p playback costs ~0.25–0.65 W over the home screen β€” and the content moves that number more than the codec does measured 2026-08-16, refined 2026-09-22 https://wattlab.greeningofstreaming.org/findings/stb-decode-and-play-content-over-codec Greening of Streaming β€” wattlab.greeningofstreaming.org
Source measurement
Loading measurement decode/2c793c73…
Loading measurement decode/64383dd8…
Loading measurement decode/5b1def60…
Loading measurement decode/d9710c6f…
Loading measurement decode/d507b5ad…
Loading measurement decode/06ee3d06…
Loading measurement decode/545c99c1…
Loading measurement decode/5e2c4daa…
Loading measurement decode/b6b496f7…
Loading measurement decode/d1be6ebe…

Caveats

The result, in one sentence

Playing 1080p for an hour on a Google TV Streamer or a Fire TV Stick 4K adds about 0.6 W over the home screen for a bright, high-motion animation and 0.25–0.45 W for live-action drama or sport β€” and within either content, choosing H.264, HEVC or AV1 changes that by ≀0.1 W.

Why this matters

Decode energy is paid per viewer, per hour. These are the boxes on the shelves now, all-hardware decode for all three codecs, and the number is small enough that a 34 s window cannot see it: OWL's own first attempts read 0.0–0.3 W with πŸ”΄ flags. On long windows the signal is unambiguous β€” ~0.6 Wh per hour of playback, over a ~1.4 W home-screen floor β€” and it says two things a codec debate tends to miss. First, on decode silicon the codec is nearly free: HEVC and AV1 cost the viewer nothing measurable over H.264, so the encode-side energy and bitrate savings of newer codecs are not paid back at the client. Second, the picture is not free: the same box on the same codec draws 0.35 W more for Big Buck Bunny than for Meridian β€” bright, saturated, high-motion frames cost more to decode and render than dark, quiet ones, and any per-title or per-hour client-energy figure that ignores content is quoting one clip.

How it was measured

decode-bench harness (decode_bench/bench.py, protocol v3): the box's own Tapo P110 (fw 1.3.1, local mW API, 1 s), pre-baseline stable-idle guard on the home screen, 20-sample baseline, launch via ADB VIEW intent into Just Player streaming from OWL's Range-correct origin over LAN, 8 s startup skip, then a 3540 s (H.264, 60-min clips) or 1100 s (HEVC/AV1, 20-min clips) sampled window, OWL confidence.py per row. Liveness is proven per row: media-session state PLAYING at mid-window, a mid-window screenshot showing content, and a flat trace to the last bin (six 10-min bins agree within ~0.03 W). All nine cited campaign jobs ran overnight 2026-08-16β†’17 (results/decode/2026-08-17_*.json); the reference hour is 2c793c73 (2026-08-16). Content: Big Buck Bunny (animation), Meridian (dark drama), Kranjska (MTB sport), all 1080p matched-VMAF encodes.

What this finding does not measure

Methodology β†’ (docs/wattlab_traffic_light_confidence.md)
decodeclient-deviceset-top-boxgoogle-tvfire-tvcontent-dependencelong-windowprotocol-v3draft