Valve добавила в бета-клиент Steam новый видеокодек Pyrowave — он создан для стриминга с минимальными задержками в быстрых сетях.
Кодек появился как опция в Steam Remote Play — сервисе, с помощью которого можно транслировать игровой процесс или выводить картинку с другой системы на своё устройство. В Linux-сборке Steam Pyrowave становится доступен после включения режима SteamRT3 в настройках.
Реализация написана на C++ и поставляется под лицензией MPL. Ключевая особенность кодека — кодирование исключительно внутри кадра (intra-only), без опоры на соседние кадры: каждый кадр здесь ключевой, межкадровое сжатие не применяется вообще. Такой подход даёт предельно точную передачу изображения и убирает артефакты при движении и резкой смене фона. Для сжатия используется дискретное вейвлет-преобразование с фильтром CDF 9/7 — как в JPEG2000 — плюс простое энтропийное кодирование, которое хорошо распараллеливается.
Расплата за качество — требования к каналу: Pyrowave прогоняет в 5–10 раз больше трафика, чем другие потоковые кодеки. Его рекомендуют для трансляций и доступа к играм в локальной сети с гигабитным Ethernet. Битрейт по умолчанию подбирается автоматически под контент, но при узком канале можно задать верхнюю границу — от 100 до 500 Mbit/s.
Кодек заточен под очень быстрое кодирование и декодирование на GPU и целиком собран из вычислительных шейдеров. Если пропускной способности хватает (примерно 200+ Mbit/s), задержки падают до 0,1 мс при 1080p и 0,2 мс при 4K. От потери пакетов спасает изолированное кодирование блоками 64×64. Поддерживаются HDR и цветовые пространства YCbCr 4:2:0 и 4:4:4; HDR включается сам, если его поддерживают и хост, и клиент. Режим 4:4:4 требует больше вычислений и трафика, поэтому по умолчанию выключен — его стоит включать для трансляции рабочего стола или когда нужно повысить читаемость текста на видео.
