Google Remote Desktop Codecs on a ViaSat high-latency Internet (2025-07-06)

Delta in‑flight WiFi (deltawifi.com) is using ViaSat (99.196.128.238)

  • download: 20 Mb/s
  • upload: 1.5 Mb/s
  • latency: 700 ms RTT

Recommendation

  • Start with VP9 – it cuts bandwidth ~30 % vs VP8, yet Chrome / Edge and most 2020‑plus GPUs decode it in hardware, so latency stays acceptable.
  • Drop to VP8 if the remote PC or the in‑browser decoder is pegging your CPU or if the client is an older tablet/phone.
  • Try AV1 only when both machines have modern AV1 hardware decode/encode (Intel Xe‑LP, Apple M‑series, NVIDIA RTX‑40, AMD RDNA 3, 2023‑plus Qualcomm) — you’ll save another ~30 %, but software encoding adds 1‑2 s of extra delay per keyframe.
Codec Year License What / When to use Deep technical notes Source code
VP8 2008 (open‑sourced 2010) Revised BSD‑3‑Clause Legacy Google/WebM codec; lightest CPU load. Choose it for very old clients or under‑powered Chromebooks where smooth decoding matters more than bandwidth. Block‑based hybrid codec using 4:2:0 sampling, 8‑bit depth, 16×16 macroblocks with 4×4 luma partitions, 4‑tap in‑loop deblocking, and a Boolean range coder for entropy. Supports three reference frames (last, golden, alt‑ref) and simple segmentation to vary quantizer inside one frame. No adaptive loop filters or tiles, so both encode and decode are simple but compression trails newer designs by ~50 % at HD. https://chromium.googlesource.com/webm/libvpx (en.wikipedia.org, github.com)
VP9 2013 Revised BSD‑3‑Clause Default for Chrome Remote Desktop today. Use when you need ~30 % less data than VP8 and have hardware decode (virtually all desktops since 2016 and mobiles since 2018). Builds on VP8 but raises the ceiling: 64×64 super‑blocks split recursively to 4×4, eight intra prediction modes, switchable interpolation filters, 8/10/12‑bit profiles, and tile rows/columns for parallel decode. Entropy coding is a multi‑symbol arithmetic coder with frame‑level adaptivity. Two pre‑filters (sub‑pixel and deblocking) plus a loop‑filter and a temporal‑noise‑reduction stage improve prediction. Encoding complexity ~2–3 × VP8, but GPUs/off‑load hide it at playback. https://chromium.googlesource.com/webm/libvpx (en.wikipedia.org, chromium.googlesource.com)
AV1 2018 BSD‑2‑Clause + AOM Patent 1.0 (royalty‑free) Highest efficiency (‑25–35 % vs VP9). Pick it when both endpoints have AV1 hardware; ideal on capped links like aircraft Wi‑Fi once encode off‑load is available. Uses up‑to‑128×128 super‑blocks with flexible quad‑tree/binary‑tree splits, 64 transform types (DCT, ADST, FLIPADST, IDTX) from 4×4 to 64×64, global + local motion warping, palette and film‑grain tools, 7 reference frames, and sophisticated in‑loop filters (CDEF + loop‑restoration with Wiener/Self‑Guided). Context modelling is fully adaptive with a multi‑symbol Range Asymmetric Numeral System (rANS). Tiles and sub‑tiles enable massive threading; still, software encode is ~10 × VP9, so server‑side hardware or ASIC acceleration is essential for low‑latency remote desktop. https://aomedia.googlesource.com/aom (android.googlesource.com, aomedia.googlesource.com)