[论文解读] OpenVVC: a Lightweight Software Decoder for the Versatile Video Coding Standard
OpenVVC 是一个开源、轻量级的 Versatile Video Coding (VVC) 标准软件解码器,通过在多核处理器上结合数据级并行(SIMD)和帧级并行,实现了 UHD 视频的实时解码。其内存占用极低,Full HD 在随机访问模式下低于 75 MB,性能出色,适用于嵌入式系统和实时解码应用。
In the recent years, users requirements for higher resolution, coupled with the apparition of new multimedia applications, have created the need for a new video coding standard. The new generation video coding standard, called Versatile Video Coding (VVC), has been developed by the Joint Video Experts Team, and offers coding capability beyond the previous generation High Efficiency Video Coding (HEVC) standard. Due to the incorporation of more advanced and complex tools, the decoding complexity of VVC standard compared to HEVC has approximately doubled. This complexity increase raises new research challenges to achieve live software decoding. In this context, we developed OpenVVC, an open-source software decoder that supports a broad range of VVC functionalities. This paper presents the OpenVVC software architecture, its parallelism strategy as well as a detailed set of experimental results. By combining extensive data level parallelism with frame level parallelism, OpenVVC achieves real-time decoding of UHD video content. Moreover, the memory required by OpenVVC is remarkably low, which presents a great advantage for its integration on embedded platforms with low memory resources. The code of the OpenVVC decoder is publicly available at https://github.com/OpenVVC/OpenVVC
研究动机与目标
- 解决 VVC 标准中解码复杂度显著增加的问题,其复杂度相比 HEVC 翻倍,限制了在嵌入式平台上的实时软件解码。
- 克服现有开源 VVC 解码器(如 VTM 和 VVdeC)存在的高内存占用和低帧率等局限性。
- 实现在通用处理器上对 UHD 视频的高效、实时解码,且内存占用极低,适用于资源受限环境的部署。
- 支持广泛的 VVC 编码配置,包括 All Intra、Random Access、Low-Delay P 和 Low-Delay B,确保与标准合规视频的兼容性。
- 提供灵活的跨平台软件解决方案,可与主流视频播放器集成,并支持未来标准演进,无需硬件重新配置。
提出的方法
- 使用 C 语言实现模块化软件架构,编译为跨平台库,以兼容 Linux、Windows、macOS 和 Android。
- 利用单指令多数据流(SIMD)优化,加速变换、环路滤波和帧内预测等计算密集型阶段。
- 通过在多核 x86 处理器上同时处理多个帧,实现帧级并行,提升吞吐量,达成实时解码。
- 通过精细的缓冲区管理和减小全局缓冲区尺寸,最小化内存使用,实现 All Intra 模式下 FHD 内存占用低于 25 MB,Random Access 模式下低于 75 MB。
- 与标准视频播放器(如 FFplay、VLC、GPAC)集成,支持 JVET 的四种主要编码配置:AI、RA、LDP 和 LDB。
- 通过详细的指令级性能分析,识别瓶颈,重点优化高复杂度解码阶段,特别是环路滤波和帧间预测。
实验结果
研究问题
- RQ1如何通过轻量级软件解码器在极低内存占用下实现 UHD VVC 内容的实时解码?
- RQ2数据级与帧级并行策略的何种组合,可在通用处理器上实现高性能解码?
- RQ3SIMD 优化在变换、环路滤波和帧内预测等关键 VVC 解码阶段中,能将计算负载降低多少?
- RQ4OpenVVC 的内存占用与现有 VVC 解码器(如 VTM 和 VVdeC)相比如何,特别是在 All Intra 和 Random Access 配置下?
- RQ5VVC 中解码复杂度的主要来源是什么?如何在软件解码器中有效针对这些部分进行优化?
主要发现
- 在高性能 x86 处理器上,OpenVVC 对 Full HD 内容的解码速度超过 290 fps,对 UHD 内容超过 90 fps,实现了 UHD 视频的实时播放。
- 在 All Intra 配置下,Full HD 内容的内存占用低于 25 MB;在 Random Access 配置下,低于 75 MB,显著低于 VTM 和 VVdeC。
- 在 All Intra 模式下,环路滤波(ALF 和 DBF)占总解码复杂度的 50% 以上,其中 ALF 单独贡献 29–39%,具体取决于 QP 值。
- 在 Random Access 模式下,帧间预测工具(包括 MC 插值、DMVR、BDOF 和 PROF)贡献了超过 60% 的解码复杂度,其中 MC 插值单独占比超过 24%。
- CABAC 阶段在 QP27 时占总复杂度的 13.2%,但在 QP37 时降至 6%,表明其复杂度对比特流密度高度敏感。
- 在 All Intra 配置下,OpenVVC 的解码速度优于 VTM 和 VVdeC;在 Random Access 模式下,与 VVdeC 水平相当,未来通过引入 tile-level 或 wavefront 并行化可进一步提升性能。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。