RTC中屏幕共享svt-av1:scc的优化实践

发布时间:2026/7/27 8:05:29
RTC中屏幕共享svt-av1:scc的优化实践 摘要本文系统梳理了屏幕内容编码SCC的技术演进与AV1编码器生态。首先回顾了SCC从HEVC-SCC到AV1、VVC的标准化历程及其核心工具。随后重点对比了AOMedia生态下的三大AV1编码器libaom、SVT-AV1、rav1e深入剖析了SVT-AV1的架构优势、预设档位设计与线程模型。最后针对屏幕共享场景探讨了SVT-AV1的SCC专项优化路径包括调色板模式、IBC的快速决策以及内存访问模式重构等旨在实现高压缩率与低复杂度的平衡。前言随着远程办公、在线教育、云游戏等应用的普及高效编码与传输计算机生成的屏幕内容如桌面界面、文档、代码编辑器已成为关键需求。传统视频编码标准针对自然场景设计在处理屏幕内容时面临压缩效率低、复杂度高、画质受损等挑战。屏幕内容编码Screen Content Coding, SCC技术应运而生通过利用屏幕内容的独特特征无噪声、锐利边缘、有限颜色、空间重复性等显著提升了编码效率。本文旨在为开发者与技术决策者提供一份关于SCC技术及AV1编码器选型的实用指南。文章将首先概述SCC的标准演进与核心工具然后深入对比主流AV1编码器的特性与适用场景最后聚焦于SVT-AV1在SCC场景下的优化实践为相关应用开发提供参考。屏幕内容编码工具最早在HEVC-SCC2016 年中正式引入根本动机是传统视频编码标准无法高效处理计算机生成的屏幕内容。核心驱动力是 2010 年代屏幕共享、远程协作等应用的爆发式增长。HEVC-SCC 通过 IBC、调色板模式、ACT、AMVR 四大工具利用屏幕内容的无噪声、锐利边缘、有限颜色、空间重复、离散运动等特征实现了相比自然视频编码2倍以上的压缩效率提升。这些工具随后被 AV1 和 VVC 继承并标准化。标准SCC 支持情况HEVC-SCC (2016)首次引入作为扩展非强制AV1 (2018)将 SCC 工具纳入基础标准非扩展支持 IBC、调色板模式、变换跳过VVC/H.266 (2020)继承并增强 SCC 工具新增 TSRC变换跳过残差编码、BDPCM 等值得注意的是AV1 将 SCC 作为标准内建功能而非扩展这意味着所有 AV1 解码器都必须支持屏幕内容解码推动了 SCC 在移动端如骁龙 8 Gen 2、天玑 9000的硬件解码支持。屏幕共享场景主要采集电脑如笔记本PC。分辨率1080p起步主流PC已经默认4k分辨率如果按自然视频编码发送码率太高画质也难以保障。那么引入SCC屏幕编码工具是强需求。通过上述分析AV1编码器是最优选择。Av1编解码器有四大开源工程即aom、svt-av1、rav1e和dav1d。它们均出自AOMedia开放媒体联盟组织。 Svt-av1比较特殊单独介绍如下一、SVT-AV1 项目的历史与组织关系起源Intel Netflix 的独立项目SVT-AV1 最初并非 AOMedia 官方项目而是Intel 与 Netflix 于 2018 年 8 月开始合作开发的独立编码器项目。Netflix 在 2020 年的技术博客中明确说明Intel 和 Netflix 自 2018 年 8 月以来一直在 SVT-AV1 编码器和解码器框架上展开合作。被 AOMedia 正式收养2020 年 8 月2020 年 8 月AOMedia 宣布成立Software Implementation Working GroupSIWG软件实现工作组正式将 SVT-AV1 收养为 AOMedia 的官方 AV1 编码器实现。这一转变的关键信息代码仓库迁移从 github.com/OpenVisualCloud/SVT-AV1 迁移到 github.com/AOMediaCodec/SVT-AV1后改为 GitLabSIWG 联合主席Facebook 的 Ioannis Katsavounidis 和 Tencent 的 Xiang Li软件协调员Intel 的 Hassene Tmar使命创建在各种应用中提供出色视频压缩的 AV1 编码器实现消除计算复杂度权衡二、AOMedia 生态中的三大 AV1 编码器对比AOMedia 生态中有三个主要的 AV1 开源编码器实现定位各不相同维度libaomSVT-AV1rav1e开发主体AOMedia官方Google主导Intel Netflix → AOMedia SIWGXiph/Mozilla 社区Rust定位AV1 参考实现Reference生产级高性能编码器安全、可审计的替代实现语言C/CC 汇编Rust编码速度慢~2-15 fps 1080p最快~50-120 fps 1080p中等~15-60 fps压缩效率最高基准接近 libaom差距 2%略低于 libaom标准符合性黄金标准完全合规完全合规配置灵活性极高研究用中等生产用较低主要场景研究、AV2 开发、最高质量 VODVOD 批量转码、实时编码安全敏感场景、Web 集成实时编码勉强cpu-used 7-8原生支持Preset 8-12有限支持解码器有参考解码器已移除v2.1.1无三、libaom 与 SVT-AV1 的核心技术差异1. 架构哲学libaomSVT-AV1递归块划分RDO 递归决策多阶段流水线由粗到精筛选单帧处理为主Tile 级并行三维并行帧级 片级Segment 任务级为质量优化RDO 搜索最彻底为速度优化预设档位覆盖极广适合离线高质量编码适合大规模批量转码和直播SVT-AV1 的核心架构是Scalable Video Technology可扩展视频技术专为 Intel Xeon 多核处理器设计通过将每帧拆分为多个 Segment 并行处理在不损失质量的前提下最大化计算资源利用率。2. Preset 档位设计libaom-cpu-used 0-8共 9 档速度跨度约187 倍但最快档仍难以实时SVT-AV1-preset -2 到 13共 16 档覆盖从极致质量到实时直播的全场景SVT-AV1 的 Preset 10-12 已可实现实时编码这是 libaom 无法做到的。3. 线程模型libaomTile 级并行 Row-MT行级多线程线程扩展性有限SVT-AV1Segment-based 并行 帧级并行 任务流水线在 8 线程以上仍有良好扩展性有趣的是SVT-AV1 的测试表明超过 8 线程后性价比递减——从 1 线程到 8 线程的吞吐量提升与云 CPU 成本增长基本匹配但超过 8 线程后成本效益下降。关键要点AOMedia负责 AV1 标准规范、专利池管理和生态推广libaom是 AOMedia 官方维护的参考实现承担算法正确性黄金标准和 AV2 研究平台的角色SVT-AV1最初由 Intel Netflix 独立开发2020 年被 AOMedia SIWG 收养为官方生产级编码器专注速度-质量平衡和实时编码rav1e是社区驱动的 Rust 实现强调安全性和可审计性dav1dVideoLAN是独立的最快 AV1 软件解码器不属于 AOMedia 官方项目对于生产环境的选择建议VOD 批量转码和直播场景首选 SVT-AV1需要最高压缩效率或进行编解码研究时用 libaom安全敏感场景考虑 rav1e解码端统一使用 dav1d。为什么我们只在scc场景下才选择av1编码呢svt-av1经过多年优化从preset上也已经覆盖到实时场景。但是对比x264和openh264在同等压缩率下复杂度没有优势而解码器生态还不成熟而scc场景首先通过优化scc编码工具不需要前处后处理包括内部的LPfliter,CDEF等复杂度可控压缩率提升1倍。其次屏幕共享的帧率刷新更低通常低于15fps,有甚者分享刷新1~5fps. Svt-av1 scc实测4kp15不到1Mbps,已经满足清晰度需求。对于生产端和接收端的cpu性能都没有压力。四、SVT-AV1的SCC优化1屏幕内容编码SCC强化SVT-AV1 的 SCC 优化弱于传统视频需要如下算法优化调色板模式Palette ModeUI/文本内容压缩效率极高但搜索开销大需快速决策IBCIntra Block Copy屏幕内容中大量重复图案IBC 可替代 inter 预测跳过模式Skip Mode静态区域直接复制参考块几乎零码率其次各算法模块的simd指令集优化加速。支持 x86 (SSE2/SSSE3/AVX2/AVX-512)、ARM (NEON)2. SVT-AV1自身常规流程优化。早期Svt-av1的解码器24年6月移除与dav1d解码性能对比有明显差距。Scc编码器除编码流程外还包含自解码流程。1) 编码器双向操作正向变换 量化 反量化 逆变换正如我们上文所言。 Svt-av1的实现有一个问题正反变换有重复的二次转置问题。需要相应的修改扫描与反扫描矩阵移除正反变换中的二次转置操作。2) Dav1d解码器汇编模块的移植Intrapred,mc,tx/itx只需要少量代码重构可以复用dav1d的深度指令集汇编优化。比较复杂的LPFilter和cdef等模块可以屏蔽掉或者后期进行PGO编译优化。3) SAD/SATD重计算复用4) 内存访问模式重构借鉴 dav1d 的 cache-friendly 设计减少编码器各阶段间的内存拷贝Zero-Copy优化参考帧的内存布局提高运动估计时的缓存命中率压缩上下文数据结构减少 L2/L3 缓存占用通过以上优化1080p scc双线程编码能轻松达到200fps,码率降到200~300bps.