AOMedia Video 1
開放媒體聯盟開發的開放且免專利費用的影片編碼格式 来自维基百科,自由的百科全书
開放媒體聯盟開發的開放且免專利費用的影片編碼格式 来自维基百科,自由的百科全书
AOMedia Video 1(简称AV1)是一個開放、免專利的影片編碼格式,為网络串流传输而设计。它由開放媒體聯盟(AOMedia)開發,目標是取代其前身VP9[2],該聯盟由半導體企業、隨選視訊供應商和網頁瀏覽器開發商於2015年成立。2018年,Facebook進行接近真實使用環境條件測試,測試結果顯示AV1資料壓縮率與x264 main profile、x264 high profile和libvpx-vp9相較之下,分別提昇50.3%、46.2%和34.0%[3]。
![]() | 此條目需要精通或熟悉相关主题的编者参与及协助编辑。 |
AV1在授权上与VP9类似,可以免版税使用,不会像按销售量计授权费的H.264/AVC和HEVC一样对开源软件的采用造成障碍。[4][5][6][7][8][9]
開放媒體聯盟(AOMedia)創建AV1主要是因为HEVC的专利许可成本高昂,授权空间模糊。AV1有望取代MPEG设计开发的编解码器AVC[11][12]。联盟最初由七間公司,Amazon、Cisco、Google、Intel、Microsoft、Mozilla和Netflix所組成,並宣布技術重点為提供高品質網路影像[13]。於2015年7月21日,HEVC Advance,現為ACCESS Advance,初始授權被宣布增加对AVC的權利金[14],除了權利金所增加的成本外,還增加了授權複雜度。这進而促成了同年9月1日,开放媒体联盟發布AV1的官方公告並宣布成立。与過往MPEG規範不同,MPEG可以只從MPEG-LA获得许可,而当完成HEVC規範时,已经形成了兩個專利池,第三個專利池也即將出現。普遍而言,專利持有人拒絕將專利共享於專利池上,這增添HEVC授權的不确定性。據微软的Lan LeGrow所說,开源、免版税可视为不确定性消除的方法[11]。
此外,创建AV1另一个原因是专利授權对自由开源软件的负面影响[12]。例如在瀏覽器中,如果不向MPEG-LA支付權利金,就不能集成H.264[15]。欧洲自由软件基金会认为,由于与自由软體许可证的各种不兼容,不可能实现公平及合理非歧視條款许可实践使标准的自由软體[16]。
AV1技术主要来自联盟成员過往的研究與工作內容,分別在几年前就开始实现实验性平台,如:Xiph與Mozilla的Daala,于2014年9月12日发布的Google實驗性質的VP9的下一代VP10[17],以及2015年8月11日发布的Cisco的Thor。AV1以VP9的代码库为基础,與其他技術结合產生[18],AV1編解碼器参考規範初始版本0.1.0,並於2016年4月7日发布。
2017年10月下旬,尽管對於開發的冻结開始生效,但數個重要功能仍在繼續發展。其中一项正在開發的功能──比特流格式,原定于2018年1月冻结開發,但仍有关键错误,以及需要对转换方法、语法設計、运动矢量预测的修改,也有法律的妥善性問題,最終發布日期延期至同年3月28日,联盟发布官方AV1比特流规范與軟體的编解码器參考規範[19],2018年6月25日发布經驗證過後的比特流规范1.0.0版[20],最終於2019年1月8日,发布1.0.0版附帶的規格刊誤。
據聯盟成员Bitmovin中Martin Smole表示,在比特流格式完成凍結後,计算效率在官方參考编解码器仍具挑戰[21]。虽然尚可處理比特流格式,但此並非商用用途,速度优化也未考量。因此,早期版本的AV1比现有的HEVC编码器慢几个数量级。近期,开发者趨於優化官方参考编码器。發布後一年的2019年3月,参考编码器的效率有大幅提升,并且与其他常见的编解码器在可比擬的效率範圍內[22]。
2021年1月21日,AV1的多用途互聯網郵件擴展(MIME)類型被定義為「video/AV1」。使用此MIME類型的AV1的使用僅限於实时传输协议目的[23]。
AV1的目標是成為一種既先進又免版税的網絡視頻格式[24]。 根據谷歌Chrome媒體團隊戰略和合作夥伴關係主管 Matt Frost 的說法,“開放媒體聯盟的使命與WebM項目相同。”[25]
標準制定中反復出現的一個問題,尤其是免版稅的多媒體格式,是不小心侵犯其創建者和用戶不知道的專利的危險。關於 AV1和之前的VP8、 VP9、Theora和IVC已經提出了這種擔憂。這個問題並不是免版稅格式獨有的,但它獨特地威脅到他們免版稅的地位。
為實現免版稅的目標,開發過程要求在兩個獨立方獨立確認不侵犯競爭公司的專利之前,不得採用任何功能。如果無法獲得專利保護技術的替代方案,相關專利的所有者將被邀請加入聯盟(即使他們已經是另一個專利池的成員)。例如,聯盟成員Apple、Cisco、Google和Microsoft也是MPEG-LA H.264專利池的許可人。
AV1是一种使用传统的基于区块编码但也加入了新技术的频率变换格式,AV1所使用的编码技术主要来源于谷歌VP9的下一代视频压缩格式VP10,但同时也包含了由Xiph.Org基金会的主要赞助者Mozilla开发的Daala视频压缩格式和由Cisco开发的Thor视频压缩格式中所使用的视频编码技术。
开放媒体联盟根据FreeBSD 2许可证发布了一个用C语言和汇编语言编写的编解码器参考实例libaom。该参考实例的开发接受开放媒体联盟成员资助并且公开进行。此外还有另一个开源编码器rav1e,rav1e编码器以牺牲编码效率为代价,成为最简单、最快符合AV1标准的视频编码器[26]。
於此,帧的内容被劃分(Partitioning)為相間、相鄰且大小相同的區塊,称为超區塊。相似於宏區塊的概念,超區塊呈現方形,大小可為128×128或64×64像素。超區块可以根据不同的分区模式划分为更小的區塊。四方分割模式(four-way split pattern)是唯一可以递归將分区細分的模式。这允许将超區块從大區塊划分为小至4×4像素的分區。
T形分区模式是VP10开发的一項新功能,水平或垂直拆分超區塊分割为4:1和1:4長條形分區。分区模式的使用因超區块大小而有所限制,其中128×128和8×8超區块都不能使用4:1或1:4長條型分區拆分,而只有8×8超區块則不能使用T形分割。
在不同區块空間的部分上使用两个獨立預測,可以使用平滑的倾斜过渡线(楔形分区预测)。这使得對象得以准确地分割,而无需沿方形边界的傳統阶梯线。
基於瓦形行列之间的可预测的相依性這使得可以实现更多的编码器平行性[27]。
AV1以更高的精度(10或12位樣本頻率)执行内部处理,由于解析度提高,图像中的四捨五入的误差较小,使得压缩效能改进。
预测(Prediction)可以在一个區块中以更高级的方式组合成复合预测,包括不同方向平滑與尖锐的楔形分区预测,以及基于使用兩個預測器探究两者之间差异的隐式掩码,這將比取平均來得優秀。这允许在同一超區块中使用两个帧间预测或帧间和帧内预测的组合[28]。
于帧间预测時,一个帧可以訪問8个可用帧缓冲区中的6个而不是3个,且可同時为双向预测,即帧间與帧内预测组合預測[29]。
在AV1中的扭曲运动[27]和全局运动分析工具,用於藉由识别由相机运动产生的模式,以减少运动向量中的冗余資訊,如噪音即為冗於資訊[27]。這實現了以往的格式中试图卻仍未被實現的做法,例如尽管采用适用于三维的新颖方法的MPEG-4 ASP。比特流中提供的帧有一組扭曲参数,隐式區域参数可根据周围的區块计算得到並於區块中使用。
切换帧(S帧)是一种新的帧间类型,可以使用来自同一影像更高分辨率的已解码参考帧进行预测以允许切换至低分辨率,於自適性比特串流媒体實例中,无需在开始时使用完整的关键帧影像片段。
帧内预测(Intra Prediction)使用当前帧中可用資訊来预测目標區块的像素。大多数情况下,帧内预测是从待预测目標區块上方和左侧的相邻像素构建的。DC预测器藉由平均區块左侧和上方像素進行预测。
根据指定的角度,方向预测器可以推斷相邻像素。在AV1中,以45度角开始,每次差距22.5度,逐步增加至203度,共計八種模式。每个方向模式中,可以为較大的區块給予每個3度,共計六組的偏移信号,主角上方與下方各三組,从而产生总共56个角。
其中,真實運動预测器被替换为Paeth预测器,這將判別左上角已知像素與新像素的左侧與上方的的像素的差异,而後选择位于较小梯度方向的像素作为预测器。
另调色板预测器可用于較少顏色最多8个顏色的區块,如部分電腦螢幕内容,可使用基于亮度平面样本的色度块预测器来利用亮度和颜色信息之间的相关性[27]。
为了减少沿帧间预测區块边界的可視边界,可使用重叠块运动补偿(OBMC)技术,与相邻區块重叠2到32个像素,并混合重叠部分[30]。
为了将预测后剩余的误差转换(Data transformation)到频域,AV1编码器可以使用正方形、或2:1/1:2和4:1/1:4矩形進行離散餘弦變換[29],以及非对称的離散正弦變換[31][32],对来自附近像素,預測左侧或上方边缘具有较低误差的區块,或者选择不进行变换。
這可以複合两个一维变换,使得水平和垂直维度得以使用不同的变换。
AV1具有最佳化量化(Quantization)矩阵,每帧可选择和发送資訊八组量化参数,具有两个色度平面的单独参数,并且可以使用空间预测。在每个新的超區块上,量化参数可以通过发送偏移信号進行调整。
Thor的约束低通滤波器(Filter)和Daala的定向去振鈴滤波器,對于环路滤波有卓越的成效:結合二者之约束定向增强滤波器,超过了单独或一起使用一般濾波器的结果。
這是一种边缘定向条件替换滤波器,平滑具有可配置强度的區块沿主要边缘方向,以消除振铃效應。
还有基於Wiener滤波器和自引导恢复滤波器的环路恢复滤波器,用于去除由于區块处理引起的模糊振鈴。
胶片颗粒合成使用参数视频编码方法改进了噪声信号的编码。由于胶片颗粒噪声固有的随机性,该信号分量传统上编码成本昂貴,容易遺失與損壞,並可能会留下严重的编码振鈴作为残留物。使用胶片颗粒合成来规避这些问题,其使用视觉上主观视觉印象相似的部分替换部分信号而不是客观相似性。消除从信号中去除颗粒成分與分析其非随机特征,取而代之的是仅将描述性参数传输到解码器,解码器会添加回原始組成成分之後重塑並合成伪随机噪声信号。胶片颗粒合成是AC3、AAC、Vorbis和Opus音频编解码器中使用的感知噪声替代技术的视觉等效项。
Daala的熵编码器,是一種非二进制的算术编码器,作為替代原先VP9二进制的编码器。非二进制算术编码的有利於避開現有專利,同時也讓比特層級的串列過程增加了平行性,藉而降低硬體实现對於石英震盪器的速率要求。如前文參考之適應性二元算術編碼之现代二进制算术编码的有效性,其正在使用比二进制更大的字母表来实现,因此速度更快,就像霍夫曼編碼一樣,雖然仍不及霍夫曼編碼簡單而快速。AV1在算术编码器中擁有按编码符号而不是按帧调整符号概率的能力[27]。
对于視訊最重要的是,可適性視訊編碼是一种泛用技术而不是由AV1独有,以便可以从更高比特率的影像流中提取质量更好的低比特率视频流。這與自适应比特率流传输差別在於,每个更高比特率适配中的一些压缩效率被放弃,以获得整体影像流的效能。编码过程也较少冗余與較低的要求。
AV1提供了时间和空间可適性[33],帧速率和分辨率都是定义為低比特流可用的方法。
AV1拥有三种設定(Profile)供解码器使用Main、High与Professional。Main允许8、10位元的色彩深度以及4:0:0(灰阶)和4:2:0的色度抽样。High后续会支持4:4:4的色度抽样。Professional将会完整支持4:0:0、4:2:0、4:2:2、4:4:4的色度抽样以及8、10、12位元的色彩深度[34]。
Main (0) | High (1) | Professional (2) | ||
---|---|---|---|---|
色彩深度 | 8、10 | 8、10 | 8、10、12 | |
色度抽样 | 4:0:0 | 是 | 是 | 是 |
4:2:0 | 是 | 是 | 是 | |
4:2:2 | 否 | 否 | 是 | |
4:4:4 | 否 | 是 | 是 |
seq_ |
Level | Max (抽样) |
Max (抽样) |
Max (抽样) |
Max (Hz) |
Max (Hz) |
Max |
Main (Mbit/s) |
High (Mbit/s) |
Min Comp Basis | Max Tiles | Max Tile Cols | Example |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 2.0 | 147456 | 2048 | 1152 | 4,423,680 | 5,529,600 | 150 | 1.5 | - | 2 | 8 | 4 | 426×240@30fps |
1 | 2.1 | 278784 | 2816 | 1584 | 8,363,520 | 10,454,400 | 150 | 3.0 | - | 2 | 8 | 4 | 640×360@30fps |
4 | 3.0 | 665856 | 4352 | 2448 | 19,975,680 | 24,969,600 | 150 | 6.0 | - | 2 | 16 | 6 | 854×480@30fps |
5 | 3.1 | 1065024 | 5504 | 3096 | 31,950,720 | 39,938,400 | 150 | 10.0 | - | 2 | 16 | 6 | 1280×720@30fps |
8 | 4.0 | 2359296 | 6144 | 3456 | 70,778,880 | 77,856,768 | 300 | 12.0 | 30.0 | 4 | 32 | 8 | 1920×1080@30fps |
9 | 4.1 | 2359296 | 6144 | 3456 | 141,557,760 | 155,713,536 | 300 | 20.0 | 50.0 | 4 | 32 | 8 | 1920×1080@60fps |
12 | 5.0 | 8912896 | 8192 | 4352 | 267,386,880 | 273,715,200 | 300 | 30.0 | 100.0 | 6 | 64 | 8 | 3840×2160@30fps |
13 | 5.1 | 8912896 | 8192 | 4352 | 534,773,760 | 547,430,400 | 300 | 40.0 | 160.0 | 8 | 64 | 8 | 3840×2160@60fps |
14 | 5.2 | 8912896 | 8192 | 4352 | 1,069,547,520 | 1,094,860,800 | 300 | 60.0 | 240.0 | 8 | 64 | 8 | 3840×2160@120fps |
15 | 5.3 | 8912896 | 8192 | 4352 | 1,069,547,520 | 1,176,502,272 | 300 | 60.0 | 240.0 | 8 | 64 | 8 | 3840×2160@120fps |
16 | 6.0 | 35651584 | 16384 | 8704 | 1,069,547,520 | 1,176,502,272 | 300 | 60.0 | 240.0 | 8 | 128 | 16 | 7680×4320@30fps |
17 | 6.1 | 35651584 | 16384 | 8704 | 2,139,095,040 | 2,189,721,600 | 300 | 100.0 | 480.0 | 8 | 128 | 16 | 7680×4320@60fps |
18 | 6.2 | 35651584 | 16384 | 8704 | 4,278,190,080 | 4,379,443,200 | 300 | 160.0 | 800.0 | 8 | 128 | 16 | 7680×4320@120fps |
19 | 6.3 | 35651584 | 16384 | 8704 | 4,278,190,080 | 4,706,009,088 | 300 | 160.0 | 800.0 | 8 | 128 | 16 | 7680×4320@120fps |
其他几个组织也在开发AV1的编解码器,包括EVE for AV1(目前为Beta测试版)、[48] NGCodec、[49] Socionext、[50] Aurora[51] 和MilliCast。[52]
Microsoft Windows | macOS | BSD / Linux | Android | iOS | |
---|---|---|---|---|---|
编解码 |
未默认启用,需扩展程序 | 是 | 是 | 是 | 是 |
容器 |
|||||
注释 |
|
|
YouTube已開始嘗試在部份影片使用AV1影片格式。2020年2月5日,Netflix開始在Android裝置上使用AV1影片格式播放影片,AV1的壓縮效率較原先的VP9提升了20%[78]。Facebook表示AV1性能超乎預期,一旦時機成熟將逐步採用AV1影片格式[79]。
Twitch計劃在2022年或2023年於關注度較高的影片採用AV1影片格式,並在2024年或2025年全面採用[80]。
2020年4月30日,愛奇藝宣佈在電腦瀏覽器和Android設備上支持AV1視頻格式[81]。
2022年2月6日,哔哩哔哩已在网页端测试AV1视频格式的解码播放。