2026 年 9 月 21 日,Valve 在 Steam 客户端 Beta 版中上线了一个反主流的视频编解码器 PyroWave。在各大科技公司都在追求更高压缩比的当下,这个编解码器在 1080p 串流时用掉了传统方案 5 到 10 倍的码率。这种对带宽的挥霍换来了一个核心指标的突破。1080p 编码加解码的总延迟被压低到了 0.1 毫秒,4K 场景下也仅需 0.2 毫秒。设计者 Hans-Kristian Arntzen 把编解码器的目标函数整个颠倒了过来。千兆以太网已成为家庭局域网标配,链路带宽严重过剩。继续消耗算力去抠体积,反而是对响应速度的拖累。
砍掉熵编码,换取全链路并发
现代视频编解码器为了实现高压缩比,内部塞满了复杂的运动补偿和帧间预测模块。后一帧的解码必须等待前一帧完成。这种串行依赖在公网流媒体中大获成功。但在要求即时响应的游戏串流里,它直接变成了系统的瓶颈。PyroWave 采用了直接的帧内编码(intra-only)策略,每一帧都作为独立的静止图像处理。切断帧与帧之间的依赖链,让后续的所有计算都能无缝进入高度并行状态。
图:评估用的无损 4:4:4 参考帧(Witcher 3)。来源:PyroWave 开源仓库评估数据
单纯的帧内编码不足以把延迟压进微秒级,PyroWave 进一步动了传统图像压缩算法的核心。算法保留了与 JPEG2000 基本一致的 CDF 9/7 离散小波变换。但在后续环节,最吃 CPU、最难并行的熵编码被直接砍掉了。系数编码被简化到了牺牲压缩率的地步,这正是其目标码率飙升至 200+ mbit/s 的主要原因。这放弃了在信息论极限边缘的试探。换来的是编码器能直接锁定一张图的码率上限,实现单趟精确码率控制。
在这个极简架构下,丢包恢复不再需要依赖复杂的网络纠错协议。每一帧由独立的 64x64 系数块构成,单个数据块的丢失不会在画面中蔓延。作者在长距离光纤链路上实测过这套方案。即使出现网络抖动,花屏现象也会在下一帧刷新时立即被覆盖。这种设计用巨大的冗余数据量,直接填平了物理链路中的不可控因素。
用计算着色器绕开硬件厂商
主流视频编码长期绑定 GPU 内部的专有硬件模块,比如 NVIDIA 的 NVENC 或是 AMD 的 AMF。这种路径下,开发者必须等待芯片厂商的硬件迭代。调用专用模块的微秒级开销,在软件层也很难抹平。PyroWave 抛弃了硬件编码器,将整套算法使用 Vulkan 计算着色器(compute shader)实现。从色彩空间转换到小波变换,所有操作都在通用计算单元上高强度并发执行。
通用算力的介入,让特定场景下的需求可以直接穿透硬件壁垒。作为 VKD3D-Proton 与 RetroArch 的核心开发者,Arntzen 非常清楚底层图形 API 的潜力。开发者不再需要向硬件厂商索要新特性。纯软件的解法直接在着色器层面上重构了数据流转逻辑。1080p 分辨率下 0.1 毫秒的惊人成绩,佐证了直接调度流处理器能打败绕道硬件编码单元的传统流程。
这种纯 Vulkan 的实现方式顺带解决了一个长久以来的工程难题:跨平台兼容性。PyroWave 首发即支持 Windows、macOS 与 Linux。在 Linux 平台上甚至只需配合 SteamRT3 实验客户端就能无缝运行。没有了各家私有驱动和硬件模块的掣肘,跨平台变成了一个简单的二进制文件分发问题。一套代码跑通三大系统,底层 API 的统一步调展现出了压倒性的维护优势。
把物理距离接进画质评估标准
当带宽消耗从 30 mbit/s 跃升至过百兆,现有的视频质量评估体系开始全部失效。作者发现传统的客观指标根本无法衡量玩家在两倍画面高度(H=2.0)距离观看时的真实感受。项目组沿用了 BT.500 的双刺激损伤量表(DSIS Variant II)思路。测试先播放 10 秒无损参考片段,间隔 3 秒中灰画面,再播放 10 秒未知码率的测试片段。由测试者打出 1 到 5 分的主观评分。这一整套流程的核心,是把观看距离这个物理变量正式拉进算法评估环节。
由于没有现成的工具能承接这种需求,他们造了一套带观看距离权重的指标 PSNR-HVS-M-H。这套评估系统覆盖了从 720p 到 4K 的所有 16:9 分辨率。它包含 4:2:0 与 4:4:4 色彩采样,并扫描了 16 种不同的观看距离。测试素材取自《地平线:零之曙光》、《远征 33》等真实游戏,原始无损素材超过 70GB。即便动用 GPU 着色器加速,处理一帧测试画面也要耗费几十秒时间。
图:H=2.0 观看距离下的码率-质量曲线,35 dB 为目标质量线。来源:PyroWave 开源仓库评估数据
经过漫长的暴力拟合,他们找到了画质与码率的边界:约 35 dB 的分数能对应主观上「好」的观感。在 H=2.0 时,720p 到 4K 的目标码率区间落在 125 mbit 到 300 mbit。而 1440p 之后的码率需求便达到上限,不再随分辨率线性增长。作者用 7 阶多项式做了一维回归拟合,把这套复杂的视觉心理学模型应用到实时串流里。这种工程化处理将误差控制在 1% 左右。庞大的测试数据被压缩成了一份极低开销的 C 语言静态查找表。
舍弃广域网,拿下局部胜利
高昂的带宽门槛将 PyroWave 的使用场景严格限制在有线局域网内。面对 200 mbit/s 以上的数据吞吐量,目前的 Wi-Fi 网络和跨地域公网串流根本无法承载。帧内编码的基因也决定了,在同等码率限制下,画质永远打不过 H.265 这类成熟的帧间编码器。作者在代码仓库里直接放出了 H.265 的画质对比图,坦承了这种底层架构带来的劣势。
图:H.265 在同场景 1080p 下的对比结果。来源:PyroWave 开源仓库评估数据
这种缺陷是一次算好的利益交换。作者在文档里明确表示,虽然理论上可以加上正规的熵编码器把压缩率拉回来,但那不在当前项目的考虑范围内。主观测试样本极小、只有作者自己参与评分。这些不合规范的操作表明,项目组只关注解决 Steam 串流的延迟问题。学术研究的严谨规范在这里并不适用。目标十分明确,就是把原始视频适配到千兆以太网链路,复现其 2014 年硕士论文中的技术直觉。
PyroWave 的出现展示了一种直指核心的工程取舍。把带宽浪费在局部网络里,换来毫秒级的响应速度,是对现有游戏串流体验的最优解。用过剩的传输通道去置换宝贵的计算时间,这套逻辑在千兆以太网的客厅里足够站得住脚。在特定的物理边界内,不计成本的简单粗暴往往比大而全的复杂设计更能解决问题。
参考链接:
- Phoronix 报道
- Lobsters 社区讨论
- PyroWave 开源仓库
- Steam 官方更新日志