当前位置: 首页 > article >正文

AV1编码背景及现状

AV1AOMedia Video 1是一种开放的、免版税的视频编码标准由开放媒体联盟开发。该标准的最初设计目的是用于互联网上的视频传输同时提供一个对所有用户开放且无须支付版税的视频压缩解决方案。作为 VP9的下一代视频编码标准AV1 旨在超越 VP9提供更高的视频压缩效率同时保持或提升视频质量。在技术方面AV1 是一种基于传统混合编码框架的视频编码标准它在继承谷歌的 VP9 编解码标准的基础上引入了一系列新技术并加以改进以提高编码效率和视频质量。由于开放性和免费性质AV1 已经得到了广泛的支持并且被认为是未来视频编码的主流标准之一。本书根据公开发表的文献资料和AV1标准文档参考编码器SVT-AV1对AV1标准的各个模块进行了详细的介绍期望能够帮助开发者了解AV1标准本身及其影响。1.1 AV1的背景和现状随着高分辨率视频内容的日益普及以及虚拟现实和 360° 全景视频等沉浸式技术的兴起主流视频内容提供商对于一个高效、技术先进且开放的编解码器的需求变得尤为迫切。然而国际视频编码标准 H.265/HEVC所涉及的高昂专利授权费用和专利许可策略的不确定性使得内容提供商无法轻松便利地使用 HEVC 编码标准。HEVC 虽然提供了比前一代编解码标准 H.264/AVC更好的压缩效率但其专利许可的复杂性和成本一直是业界的痛点。作为 HEVC 专利的管理者HEVC Advance 宣布的版税结构对于内容提供商和设备制造商来说可能过于昂贵特别是对于那些需要大规模部署编解码技术的公司。此外HEVC 专利池的许可条款缺乏透明度导致潜在的用户和开发者面临不确定性担心未来可能出现的专利诉讼进而产生额外的部署成本。这种不确定性和成本问题限制了 HEVC 技术的广泛采用尤其是在开放和自由的互联网环境中。在这种背景下全球多家知名科技公司于 2015 年共同成立了 AOM。AOM 是一个非营利性的行业联盟其目标是开发开放的、免版税的多媒体传输技术。AOM 采用开放网络标准开发的理念和原则来制定视频编码标准作为迄今为止主导市场的 MPEGMoving Picture Experts Group动态图像专家组和 VCEGVideo Code Experts Group视频编码专家组标准的替代品。AOM 的董事会成员包括亚马逊、苹果、ARM、思科、Facebook、谷歌、华为、英特尔、微软、Mozilla、奈飞Netflix、Nvidia、三星电子和腾讯。AOM 的首个项目就是制定 AV1 标准这是一种新的、开放的视频编解码标准。AV1 项目建立在 AOM 联盟成员的先前研究工作基础之上包括 Xiph/Mozilla 的 Daala、谷歌的 VP10以及思科的 Thor等实验性技术平台。这些平台的研究成果为 AV1 提供了坚实的技术基础。AV1 参考编解码器的第一个版本于 2016 年发布随后在 2017 年进行了软特性冻结。尽管在标准制定期间存在一些关键错误和需要进一步改进的地方AV1 标准规范最终还是在 2018 年发布并在同年晚些时候发布了经过验证的规范版本 1.0.0。与 VP9 相比AV1 引入了 100 多项创新的编码技术。比如AV1 引入了一种基于四叉树的编码块划分机制并且允许使用多种形状的编码块划分模式从而能够根据图像内容自适应地把图像划分为大小合适的编码块。此外不同于以往只允许正方形或矩形等规则形状划分AV1 首次引入了 Wedge-based 的楔形划分技术使得运动估计和运动补偿能够适应多样化的形状划分更贴合实际物体的运动轨迹进一步提升了帧间预测的准确性。再比如除了传统平移运动补偿之外AV1 首次引入了基于仿射变换的运动补偿这不仅能够处理图像的平移运动还能更精确地捕捉旋转和缩放等复杂运动从而显著提高编码效率。AV1 还在编解码标准中集成了屏幕内容编码Screen Content CodingSCC并且首次引入电影颗粒合成工具。这意味着所有符合 AV1 标准的解码器都能够支持屏幕内容编码和胶片颗粒合成工具。这些技术的引入使 AV1 成了一个功能全面且高效的视频编码解决方案适用于各种不同类型的视频内容和应用场景。自 2018 年 AV1 标准发布以来它已经赢得了业界的广泛支持。众多知名企业包括三星、Vimeo、AMD、Nvidia、ARM、Facebook、Hulu、VideoLAN、Adobe 和苹果公司等都是 AOM 的成员。苹果公司作为 AOM 董事会成员之一虽然在联盟成立后才加入但对 AV1 的发展做出了积极的贡献。AV1 格式已被正式纳入 Coremedia可管理的视频类型之中这不仅标志着 AV1 格式的标准化也反映了它在行业内已被广泛认可和接纳。随着越来越多的公司和组织加入 AV1 生态系统中这一开放、免版税的视频编码标准正迅速成为视频流媒体和内容分发的首选格式。1.2 档次和级别考虑到通用应用场景的多样化如不同的比特率、分辨率、视频质量在制定标准时标准制定组织综合考虑了各种典型应用场景的需求开发了必要的编码算法并将它们整合到一套统一的语法规则中。因此标准规范有利于视频数据在不同应用之间的交换、兼容。考虑到实现一个标准规范完整语法的可操作性标准规范定义了不同的档次Profile和级别Level。档次指的是完整码流语法的一个子集通常包含一组特定的编码工具和技术用于满足特定应用需求的编解码器功能集。不同档次支持不同的编码特性以适应不同的应用场景。然而在给定档次的语法限制下编码器和解码器的性能可能存在较大差异这取决于语法元素的取值如解码图像的大小等。目前许多应用中的解码器能够处理一个档次下的所有情况但这种做法既不实用又不经济。为了解决这个问题标准规范在每个档次下还定义了若干级别级别是对语法元素和参数值的限定集合定义了编解码器在处理视频数据时的最大操作参数如分辨率、帧率和比特率。级别确保了即使在不同的设备和网络条件下符合特定级别的编码内容也能被相应级别的解码器处理。AV1 为解码器定义了三个档次主要档次Main Profile、高级档次High Profile和专业档次Professional Profile。主要档次允许输入视频位宽BitDepth为 8 比特或 10 比特并且支持 4:0:0 和 4:2:0 的色度采样格式。高级档次在主要档次的基础上进一步增加了对 4:4:4 色度采样格式的支持。专业档次则全面支持 4:0:0、4:2:0、4:2:2 和 4:4:4 等色度采样格式以及允许输入视频位宽为 8 比特、10 比特和 12 比特。表 1-1 所示为 AV1 标准的各个档次所支持的编码工具集合。表 1-1 AV1 标准的各个档次所支持的编码工具集合档次BitDepth/ 比特主要档次高级档次专业档次视频位宽8, 108, 108, 10, 12色度采样格式4:0:0支持支持支持4:2:0支持支持支持4:2:2不支持不支持支持4:4:4不支持支持支持级别的数值范围为 2.06.3。这些级别旨在量化解码器的硬件处理能力确保视频内容能够与解码器的性能相匹配。解码器能够实现的级别越高表明其硬件能力越强能够处理更复杂的视频编码 / 解码任务。这种分级制度使得内容提供商可以根据目标用户的设备能力选择适当的编码级别以确保视频播放的流畅性和兼容性。同时它也鼓励硬件制造商开发和优化能够支持更高级别 AV1 解码的设备。表 1-2 所示为 AV1 标准文档在各个级别下规定的部分最大操作参数取值其中参数 MaxPicSize、MaxHSize 和 MaxVSize 对输出视频的分辨率进行了限制参数 MaxDisplayRate 和 MaxDecodeRate 对解码器的最大显示速率和解码速率进行了限制。由表 1-2 可知最低的级别 2.0 对应的视频分辨率和帧率可能是 426×24030 帧 / 秒级别 3.0 对应的是 854×48030 帧 / 秒级别 4.0 对应的是 1920×108030 帧 / 秒级别 5.1 对应的是 3840×216060 帧 / 秒级别 5.2 对应的是 3840×2160120 帧 / 秒而最高级别 6.3 对应的是 7680×4320120 帧 / 秒。表 1-2 各个级别下部分最大操作参数取值级别MaxPicSize样本MaxHSize样本MaxVSize样本MaxDisplayRate样本 / 秒MaxDecodeRate样本 / 秒示例2.0147 456204811524 423 6805 529 600426×24030 帧 / 秒2.1278 784281615848 363 52010 454 400640×36030 帧 / 秒3.0665 8564352244819 975 68024 969 600854×48030 帧 / 秒3.11 065 0245504309631 950 72039 938 4001280×72030 帧 / 秒4.02 359 2966144345670 778 88077 856 7681920×108030 帧 / 秒4.12 359 29661443456141 557 760155 713 5361920×108060 帧 / 秒5.08 912 89681924352267 386 880273 715 2003840×216030 帧 / 秒5.18 912 89681924352534 773 760547 430 4003840×216060 帧 / 秒5.28 912 896819243521 069 547 5201 094 860 8003840×2160120 帧 / 秒5.38 912 896819243521 069 547 5201 176 502 2723840×2160120 帧 / 秒6.035 651 58416 38487041 069 547 5201 176 502 2727680×432030 帧 / 秒6.135 651 58416 38487042 139 095 0402 189 721 6007680×432060 帧 / 秒6.235 651 58416 38487044 278 190 0804 379 443 2007680×4320120 帧 / 秒6.335 651 58416 38487044 278 190 0804 706 009 0887680×4320120 帧 / 秒1.3 AV1 编码器和解码器现状AV1 标准的软件实现目前处于不断发展和完善的阶段。对于编码器来讲AOM 及其会员基于 AV1 标准先后推出了多款开源软件编码器其中包括libaom)该软件是 AV1 标准的参考实现它包括一个编码器aomenc和一个解码器aomdec。作为以研究为目的的编解码器libaom 的优势在于能够充分展示每个编码工具的编码特性但这通常是以牺牲编码速度为代价的。在 AV1 标准刚刚发布时libaom 的编码速度非常慢。但随后AOM 会员对其进行了优化显著地提高了编码速度并且对编码效率影响很小。SVT-AV1)该软件是由英特尔和奈飞合作启动的开源 AV1 编码器是可扩展视频技术Scalable Video Technology的实现。SVT-AV1 解码器SVT-AV1 是一个全面的编解码器解决方案它不仅包含了编码器也包含了解码器。SVT-AV1 特别注重多线程性能因此非常适合在服务器端进行点播和直播内容的转码处理。dav1d)dav1d 是一个专注于速度和性能的 AV1 解码器由 VideoLan 和 FFmpeg 组织主导并且得到了 AOM 的资助。它已被业界公认为性能优秀的 AV1 解码器并且已经被谷歌 Chrome 浏览器等多个流行平台所集成和采用)。libgav1)由谷歌主导开发的 libgav1 解码器特别优化了对 Android 平台的支持。libgav1 的推出进一步扩展了 AV1 编解码器在移动设备和基于 Android 的系统中的应用范围。这些开源解码器的开发和优化展示了 AV1 标准在不同平台和应用中的适应性和灵活性。随着这些解码器的不断进步和集成AV1 格式的视频内容将会被更广泛的用户群体访问和使用从而推动 AV1 生态系统的健康发展和快速普及。参考文献[1] https://developer.apple.com/documentation/coremedia/kcmvideocodectype_av1/[2] https://aomedia.googlesource.com/aom/[3] https://gitlab.com/AOMediaCodec/SVT-AV1[4] https://github.com/xiph/rav1e[5] https://code.videolan.org/videolan/dav1d[6] https://caniuse.com/?searchav1

相关文章:

AV1编码背景及现状

AV1(AOMedia Video 1)是一种开放的、免版税的视频编码标准,由开放媒体联盟开发。该标准的最初设计目的是用于互联网上的视频传输,同时提供一个对所有用户开放且无须支付版税的视频压缩解决方案。作为 VP9的下一代视频编码标准&…...

Unity城市建造工作流:模块化建筑与性能优化实践

1. 这不是“贴图堆砌”,而是一套可落地的城市建造工作流你有没有试过在Unity里搭一座像样的城镇?不是那种靠几个Cube拼起来的“示意场景”,而是真正有生活气息、有建筑逻辑、有视觉节奏的城镇——街道有宽窄变化,建筑有主次关系&a…...

如何快速掌握串口数据可视化:开源SerialPlot工具的完整指南

如何快速掌握串口数据可视化:开源SerialPlot工具的完整指南 【免费下载链接】serialplot Small and simple software for plotting data from serial port in realtime. 项目地址: https://gitcode.com/gh_mirrors/se/serialplot 你是否曾被串口终端中源源不…...

iOS自动化测试环境搭建:Appium+Python真机与模拟器全链路通关指南

1. 为什么iOS自动化测试环境搭建总让人卡在第一步?“AppiumPython实现iOS自动化测试~环境搭建”——这个标题里藏着太多新手看不见的暗礁。我带过三届测试团队,每年都有至少7个人卡在“连不上真机”“Xcode报错找不到WebDriverAgent”“模拟器启动后白屏…...

iOS自动化测试环境搭建:Xcode签名与WebDriverAgent配置全指南

1. 为什么iOS自动化测试环境比Android更让人头疼——从Xcode签名到WebDriverAgent的硬门槛AppiumPython实现iOS自动化测试~环境搭建,这短短十几个字背后,藏着绝大多数刚接触iOS自动化的新手在前三天反复重装系统、重启Mac、怀疑人生的真实写照。我带过六…...

快马AI生成高性能JMeter压测脚本的核心原理与实战

1. 这不是“又一个AI写脚本工具”,而是压测工程师终于能睡整觉的转折点快马AI、JMeter、一键生成高性能测试脚本——这三个词凑在一起,很多老压测人第一反应是皱眉:又来个包装成“智能”的模板填充器?我亲手调过37版登录接口的Thi…...

jquery.inputmask插件介绍

目录 一、什么是 jQuery.inputmask? 主要应用场景 二、快速上手 1. 引入依赖文件 2. 基础用法 3. 掩码字符定义 三、高级功能 1. 自定义占位符 2. 完成回调 3. 扩展自定义字符 4. 重复掩码 5. 移除默认占位符 四、配合 Vue.js 使用 五、更多实用示例 …...

快马AI:基于OpenAPI的JMeter压测脚本智能生成工具

1. 这不是“AI写脚本”,而是把压测工程师从重复劳动里彻底解放出来你有没有过这样的经历:凌晨两点,JMeter界面还开着,线程组参数调了第七遍,CSV数据文件改到第14版,正则提取器的括号又少打了一个反斜杠&…...

Unity地形草刷不上?根源是单顶点Mesh硬限制

1. 问题不是“刷不上去”,而是Unity地形系统对Mesh草的底层限制逻辑被误解了“Unity地形使用Mesh网格刷草刷不上”——这句话在Unity社区里每年至少被重复提问3000次以上。我第一次遇到它是在2019年做一款开放世界生存游戏时,美术同事把精心建模的蒲公英…...

Modules功能模块体系

Modules 功能模块体系 位置:Source/Modules 每个模块通常包含: Extension.cs / Extention.cs 注册入口 Options.cs 配置选项 Presenter.xaml UI 展示器 Themes/Generic.xaml 默认样式 Resources.*.resx …...

基于SpringBoot 的实验设备预约系统的设计及实现

摘 要 随着高校与科研院所实验教学规模扩大,传统人工预约实验设备效率低、易冲突、管理混乱,已无法满足师生需求。为提升设备利用率、规范预约流程、减少时间冲突与资源浪费,构建一套基于网络的实验设备预约系统十分必要。该系统可实现在线预…...

GitHub中文界面插件架构解析与实战指南

GitHub中文界面插件架构解析与实战指南 【免费下载链接】github-chinese GitHub 汉化插件,GitHub 中文化界面。 (GitHub Translation To Chinese) 项目地址: https://gitcode.com/gh_mirrors/gi/github-chinese 核心问题:开发者面临的GitHub语言障…...

E-Hentai Downloader:三步解决漫画批量下载与打包难题的实用指南

E-Hentai Downloader:三步解决漫画批量下载与打包难题的实用指南 【免费下载链接】E-Hentai-Downloader Download E-Hentai archive as zip file 项目地址: https://gitcode.com/gh_mirrors/eh/E-Hentai-Downloader 还在为手动保存上百张漫画图片而烦恼吗&am…...

本地虚拟机停电启动异常:原理、诊断与四步修复

1. 停电不是“按了关机键”,而是对虚拟化环境的一次暴力断电冲击你有没有经历过这样的场景:凌晨三点,小区突然跳闸,家里那台跑着三台生产级虚拟机的NUC主机黑屏了;第二天早上开机,宿主机系统能进&#xff0…...

Windows右键菜单终极优化指南:用ContextMenuManager让你的右键菜单秒开如飞

Windows右键菜单终极优化指南:用ContextMenuManager让你的右键菜单秒开如飞 【免费下载链接】ContextMenuManager 🖱️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 你是否经历过这样的烦恼&…...

终极指南:5分钟让Switch手柄在Windows上完美运行

终极指南:5分钟让Switch手柄在Windows上完美运行 【免费下载链接】BetterJoy Allows the Nintendo Switch Pro Controller, Joycons and SNES controller to be used with CEMU, Citra, Dolphin, Yuzu and as generic XInput 项目地址: https://gitcode.com/gh_mi…...

空洞骑士模组管理器Scarab:5分钟学会一键安装所有模组

空洞骑士模组管理器Scarab:5分钟学会一键安装所有模组 【免费下载链接】Scarab An installer for Hollow Knight mods written with Avalonia. 项目地址: https://gitcode.com/gh_mirrors/sc/Scarab 还在为《空洞骑士》模组安装的复杂流程而烦恼吗&#xff1…...

Unity IL2CPP运行时调试:Frida-il2cpp-bridge实战指南

1. 这不是“教你怎么黑游戏”,而是Unity开发者该懂的底层透视镜你有没有在调试一个Unity项目时,突然发现某个C#方法的行为和预期完全不符,但断点打进去却卡在IL2CPP生成的汇编里,连变量名都看不到了?或者你在做性能优化…...

TikTok广告账号被封怎么解决?2026年防封号完整攻略

做TikTok广告投放,最让人头疼的事情是什么?账号被封。前一秒还在跑量,后一秒突然提示账号异常,所有广告计划全部暂停,预算打水漂,客户推广计划全乱。这种经历,做过TikTok广告投放的卖家应该都不…...

UGUI三大Layout Group原理与避坑指南:Vertical、Horizontal、Grid布局本质解析

1. 为什么这三个Layout Group是UGUI里最常被误用、也最容易“看似正常实则埋雷”的组件?在Unity项目组做技术分享时,我常问新人一个问题:“你第一次用Vertical Layout Group,是不是拖进去一个空GameObject,加个组件&am…...

Unity UGUI三大Layout Group核心原理与工程实践

1. 为什么这三个Layout Group是Unity UI开发的“地基级”组件,而不是可有可无的装饰品?在Unity里做UI,很多人第一反应是拖控件、调锚点、手动改RectTransform——这就像盖房子不打地基,先砌墙再想承重。我带过十几期新人训练营&am…...

Unity ShaderGraph实战指南:从美术协作到URP渲染优化

1. 为什么我劝新手别急着写Shader代码——从一个被美术追着问“这个效果能不能加”的下午说起 去年冬天,我在一家做AR教育产品的团队里做技术美术。那天下午三点,UI组的同事抱着iPad冲进我工位:“老师,这个粒子光晕要加呼吸感&…...

Unity ShaderGraph工程化实践:从可视化到生产级渲染

1. 为什么我劝新手别急着写第一行Shader代码——从Unity ShaderGraph的“可视化错觉”说起 刚接触Unity渲染管线的新手,十有八九会经历这样一个阶段:在B站搜“Unity Shader教程”,点开前三个视频,前两分钟听着“顶点着色器负责位置…...

企业数字化破局:AI低代码为何是唯一刚需?

聊企业数字化转型,现在最绕不开的就是AI低代码。但很多技术人仍有偏见:“低代码低技术”“AI能写代码,没必要用低代码”“中小企业用不起,大企业用不上”。真相很扎心:信通院2026年数据显示,AI低代码化率已…...

逻辑流中,判断操作符NULLOREMPTY的限制

问题描述: 逻辑流中,判断操作符NULLOREMPTY的限制 解决方案: NULLOREMPTY与NOTNULLOREMPTY都只能判断值是null或者空字符串,判断空对象不生效。建议如果是{}空对象,请使用java表达式去写判断条件。 比如下图:Busin…...

终极指南:如何用WeChatLuckyMoney轻松实现微信红包自动抢

终极指南:如何用WeChatLuckyMoney轻松实现微信红包自动抢 【免费下载链接】WeChatLuckyMoney :money_with_wings: WeChats lucky money helper (微信抢红包插件) by Zhongyi Tong. An Android app that helps you snatch red packets in WeChat groups. 项目地址…...

工业自动化设备电流检测解决方案——工业控制系统为什么越来越重视隔离电流检测

在工业自动化设备中,电流检测已经成为控制系统的重要组成部分。无论是PLC控制柜、伺服驱动器、工业电源、机器人控制系统还是变频器系统,控制器都需要实时获取负载电流信息,用于过流保护、闭环控制、功率计算以及设备状态监测。但很多工程师在…...

如何快速掌握拯救者工具箱:联想笔记本性能调校终极指南

如何快速掌握拯救者工具箱:联想笔记本性能调校终极指南 【免费下载链接】LenovoLegionToolkit Lightweight Lenovo Vantage and Hotkeys replacement for Lenovo Legion laptops. 项目地址: https://gitcode.com/gh_mirrors/le/LenovoLegionToolkit 还在为联…...

深入理解Android中startActivity的完整流程:聚焦IPC机制与Binder原理

引言 在Android开发中,startActivity() 方法是启动新Activity的核心API,它贯穿了应用的生命周期管理。理解其内部流程,不仅有助于优化性能、避免常见错误,还能提升开发者在面试中的竞争力。本文将以“一次完整的 startActivity 到底经历了什么”为主题,深入探讨整个流程,…...

华硕笔记本终极性能优化指南:GHelper如何一键释放你的设备潜能?

华硕笔记本终极性能优化指南:GHelper如何一键释放你的设备潜能? 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, V…...