AOMedia Video 1

**AOMedia Video 1**（简称**AV1**）是一個開放、免專利的影片編碼格式，為网络串流传输而设计。它由開放媒體聯盟（AOMedia）開發，目標是取代其前身VP9，該聯盟由半導體企業、隨選視訊供應商和網頁瀏覽器開發商於2015年成立。2018年，Facebook進行接近真實使用環境條件測試，測試結果顯示AV1資料壓縮率與x264 main profile、x264 high profile和libvpx-vp9相較之下，分別提昇50.3%、46.2%和34.0%。

AV1在授权上与VP9类似，可以免版税使用，不会像按销售量计授权费的H.264/AVC和HEVC一样对开源软件的采用造成障碍。

AVIF是一種使用AV1壓縮算法的图形文件格式。

## 歷史進程

開放媒體聯盟（AOMedia）創建AV1主要是因为HEVC的专利许可成本高昂，授权空间模糊。AV1有望取代MPEG设计开发的编解码器AVC。联盟最初由七間公司，Amazon、Cisco、Google、Intel、Microsoft、Mozilla和Netflix所組成，並宣布技術重点為提供高品質網路影像。於2015年7月21日，HEVC Advance，現為ACCESS Advance，初始授權被宣布增加对AVC的權利金，除了權利金所增加的成本外，還增加了授權複雜度。这進而促成了同年9月1日，开放媒体联盟發布AV1的官方公告並宣布成立。与過往MPEG規範不同，MPEG可以只從MPEG-LA获得许可，而当完成HEVC規範时，已经形成了兩個專利池，第三個專利池也即將出現。普遍而言，專利持有人拒絕將專利共享於專利池上，這增添HEVC授權的不确定性。據微软的Lan LeGrow所說，开源、免版税可视为不确定性消除的方法。

此外，创建AV1另一个原因是专利授權对自由开源软件的负面影响。例如在瀏覽器中，如果不向MPEG-LA支付權利金，就不能集成H.264。欧洲自由软件基金会认为，由于与自由软體许可证的各种不兼容，不可能实现公平及合理非歧視條款许可实践使标准的自由软體。

AV1技术主要来自联盟成员過往的研究與工作內容，分別在几年前就开始实现实验性平台，如：Xiph與Mozilla的Daala，于2014年9月12日发布的Google實驗性質的VP9的下一代VP10，以及2015年8月11日发布的Cisco的Thor。AV1以VP9的代码库为基础，與其他技術结合產生，AV1編解碼器参考規範初始版本0.1.0，並於2016年4月7日发布。

2017年10月下旬，尽管對於開發的冻结開始生效，但數個重要功能仍在繼續發展。其中一项正在開發的功能──比特流格式，原定于2018年1月冻结開發，但仍有关键错误，以及需要对转换方法、语法設計、运动矢量预测的修改，也有法律的妥善性問題，最終發布日期延期至同年3月28日，联盟发布官方AV1比特流规范與軟體的编解码器參考規範，2018年6月25日发布經驗證過後的比特流规范1.0.0版，最終於2019年1月8日，发布1.0.0版附帶的規格刊誤。

據聯盟成员Bitmovin中Martin Smole表示，在比特流格式完成凍結後，计算效率在官方參考编解码器仍具挑戰。虽然尚可處理比特流格式，但此並非商用用途，速度优化也未考量。因此，早期版本的AV1比现有的HEVC编码器慢几个数量级。近期，开发者趨於優化官方参考编码器。發布後一年的2019年3月，参考编码器的效率有大幅提升，并且与其他常见的编解码器在可比擬的效率範圍內。

2021年1月21日，AV1的多用途互聯網郵件擴展（MIME）類型被定義為「video/AV1」。使用此MIME類型的AV1的使用僅限於实时传输协议目的。

## 目的
AV1的目標是成為一種既先進又免版税的網絡視頻格式。 根據谷歌Chrome媒體團隊戰略和合作夥伴關係主管 Matt Frost 的說法，“開放媒體聯盟的使命與WebM項目相同。”

標準制定中反復出現的一個問題，尤其是免版稅的多媒體格式，是不小心侵犯其創建者和用戶不知道的專利的危險。關於 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标准的视频编码器。

### 分區

於此，帧的内容被劃分（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形分割。
在不同區块空間的部分上使用两个獨立預測，*可以使用平滑的倾斜过渡线（楔形分区预测*）。这使得對象得以准确地分割，而无需沿方形边界的傳統阶梯线。

基於瓦形行列之间的可预测的相依性這使得可以实现更多的编码器平行性。

### 預測
AV1以更高的精度（10或12位樣本頻率）执行内部处理，由于解析度提高，图像中的四捨五入的误差较小，使得压缩效能改进。

预测（Prediction）可以在一个區块中以更高级的方式组合成复合预测，包括不同方向平滑與尖锐的楔形分区预测*，*以及基于使用兩個預測器探究两者之间差异的隐式掩码，這將比取平均來得優秀。这允许在同一超區块中使用两个帧间预测或帧间和帧内预测的组合。

于帧间预测時，一个帧可以訪問8个可用帧缓冲区中的6个而不是3个，且可同時为双向预测，即帧间與帧内预测组合預測。

**在AV1中的扭曲运动**和**全局运动分析**工具，用於藉由识别由相机运动产生的模式，以减少运动向量中的冗余資訊，如噪音即為冗於資訊。這實現了以往的格式中试图卻仍未被實現的做法，例如尽管采用适用于三维的新颖方法的MPEG-4 ASP。比特流中提供的帧有一組扭曲参数，隐式區域参数可根据周围的區块计算得到並於區块中使用。

*切换帧*（S帧）是一种新的帧间类型，可以使用来自同一影像更高分辨率的已解码参考帧进行预测以允许切换至低分辨率，於自適性比特串流媒体實例中，无需在开始时使用完整的关键帧影像片段。

### 帧内预测
帧内预测（Intra Prediction）使用当前帧中可用資訊来预测目標區块的像素。大多数情况下，帧内预测是从待预测目標區块上方和左侧的相邻像素构建的。DC预测器藉由平均區块左侧和上方像素進行预测。

根据指定的角度，方向预测器可以推斷相邻像素。在AV1中，以45度角开始，每次差距22.5度，逐步增加至203度，共計八種模式。每个方向模式中，可以为較大的區块給予每個3度，共計六組的偏移信号，主角上方與下方各三組，从而产生总共56个角。

其中，真實運動预测器被替换为Paeth预测器，這將判別左上角已知像素與新像素的左侧與上方的的像素的差异，而後选择位于较小梯度方向的像素作为预测器。

另调色板预测器可用于較少顏色最多8个顏色的區块，如部分電腦螢幕内容，可使用基于亮度平面样本的色度块预测器来利用亮度和颜色信息之间的相关性。

为了减少沿帧间预测區块边界的可視边界，可使用重叠块运动补偿（OBMC）技术，与相邻區块重叠2到32个像素，并混合重叠部分。 

### 数据转换
为了将预测后剩余的误差转换（Data transformation）到频域，AV1编码器可以使用正方形、或2:1/1:2和4:1/1:4矩形進行離散餘弦變換，以及非对称的離散正弦變換，对来自附近像素，預測左侧或上方边缘具有较低误差的區块，或者选择不进行变换。

這可以複合两个一维变换，使得水平和垂直维度得以使用不同的变换。

### 量化
AV1具有最佳化量化(Quantization）矩阵，每帧可选择和发送資訊八组量化参数，具有两个色度平面的单独参数，并且可以使用空间预测。在每个新的超區块上，量化参数可以通过发送偏移信号進行调整。

### 濾波器

Thor的约束低通滤波器（Filter）和Daala的定向去振鈴滤波器，對于环路滤波有卓越的成效：結合二者之约束定向增强滤波器，超过了单独或一起使用一般濾波器的结果。

這是一种边缘定向条件替换滤波器，平滑具有可配置强度的區块沿主要边缘方向，以消除振铃效應。

还有基於Wiener滤波器和自引导恢复滤波器*的环路恢复滤波器*，用于去除由于區块处理引起的模糊振鈴。

胶片颗粒合成使用参数视频编码方法改进了噪声信号的编码。由于胶片颗粒噪声固有的随机性，该信号分量传统上编码成本昂貴，容易遺失與損壞，並可能会留下严重的编码振鈴作为残留物。使用胶片颗粒合成来规避这些问题，其使用视觉上主观视觉印象相似的部分替换部分信号而不是客观相似性。消除从信号中去除颗粒成分與分析其非随机特征，取而代之的是仅将描述性参数传输到解码器，解码器会添加回原始組成成分之後重塑並合成伪随机噪声信号。胶片颗粒合成是AC3、AAC、Vorbis和Opus音频编解码器中使用的感知噪声替代技术的视觉等效项。

### 熵编码

Daala的熵编码器，是一種非二进制的算术编码器，作為替代原先VP9二进制的编码器。*非二进制*算术编码的有利於避開現有專利，同時也讓比特層級的串列過程增加了平行性，藉而降低硬體实现對於石英震盪器的速率要求。如前文參考之適應性二元算術編碼之现代二进制算术编码的有效性，其正在使用比二进制更大的字母表来实现，因此速度更快，就像霍夫曼編碼一樣，雖然仍不及霍夫曼編碼簡單而快速。AV1在算术编码器中擁有按编码符号而不是按帧调整符号概率的能力。

### 可適性視訊編碼

对于視訊最重要的是，可適性視訊編碼是一种泛用技术而不是由AV1独有，以便可以从更高比特率的影像流中提取质量更好的低比特率视频流。這與自适应比特率流传输差別在於，每个更高比特率适配中的一些压缩效率被放弃，以获得整体影像流的效能。编码过程也较少冗余與較低的要求。

AV1提供了时间和空间可適性，帧速率和分辨率都是定义為低比特流可用的方法。

## 编码规范
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位元的色彩深度。





## 採用
### 内容供應商

2016年10月，Netflix表示他們預計將成為AV1的最早採用者。2020年2月5日，Netflix開始在Android裝置上使用AV1來串流特定影片，相較於Netflix原本使用的VP9串流，壓縮效率提升了20%，並且開始向部分內建AV1解碼器的智慧電視串流AV1內容。

2018年，YouTube開始部署AV1，並且推出了AV1 Beta Launch Playlist影片播放清單。根據說明，這些播放清單的影片以高位元速率編碼，用於測試解碼效能，而YouTube對於全面推廣AV1有著「雄心勃勃的目標」。自2020年初釋出的2.10.13版本開始，Android TV版本的YouTube應用程式已支援在相容平台上播放以AV1編碼的影片。2020年，YouTube開始以AV1格式提供8K解析度的影片。

2019年2月，Facebook在內部測試取得正面結果後，表示會逐漸推廣AV1編解碼器。他們計畫從最受歡迎的影片開始，一旦主流瀏覽器普遍支援AV1格式，就會開始全面部署。

Twitch於2022年或2023年較受歡迎的內容部署了AV1，並預計在2024年或2025年全面支援。

2020年4月30日，愛奇藝宣布在電腦瀏覽器和Android設備上支持AV1視頻格式。

2022年2月6日，哔哩哔哩已在网页端测试AV1视频格式的解码播放。

### 软件实现

* Libaom是AV1的参考实现，它包含一个编码器（aomenc）和一个解码器（aomdec）。它特性与标准实现最全，但是编码速度非常缓慢。后续开发中Libaom的性能得到了显著优化。
* SVT-AV1包含了主要由英特尔与Netflix合作开发的开源编码器和解码器。这一编解码器特别关注多线程性能。2020年8月，开放媒体联盟接受了SVT-AV1作为生产就绪的编码器。 SVT-AV1 1.0.0发布于2022年4月22日。  SVT-AV1 1.4.0发布于2022年12月30日。
* rav1e是一个用Rust和汇编语言编写的编码器。 rav1e采用了与aomenc相反的开发方法：从最快、最简单的兼容编码器开始，然后在后续开发中提高效率，同时保持速度。
* dav1d是一个用C99和汇编语言编写的解码器，注重速度和可移植性。 在2019年3月，dav1d 0.3发布，经过进一步优化，此时dav1d已经比Libaom的aomdec快2到5倍。在2019年5月，Firefox 67将默认解码器从Libaom切换到了dav1d。 2019年，与libgav1和libaom 相比，dav1d v0.5解码性能更好。 2022年3月18日，dav1d 1.0.0发布。
* libgav1是用C++11编写的解码器，由Google发布。

其他几个组织也在开发AV1的编解码器，包括EVE for AV1（目前为Beta测试版）、 NGCodec、 Socionext、 Aurora 和MilliCast。

### 软件支持

* Web浏览器：
** Firefox（自2019年5月第67.0版起；在所有桌面平台上預設啟動-适用于32位和64位系统的Windows、macOS和Linux）
**Google Chrome（自2018年10月第70版後的解码器起；自2021年4月14日第90版后的編碼器起）
** Opera（自2018年11月28日第57版起）
** Microsoft Edge（自2018年10月10日Windows更新的(1809）起，带有AV1影像扩展插件）
** Vivaldi（自2018年10月起）
* 影像播放器：
** VLC媒体播放器（自3.0版起）
** mpv（自0.29.0版起）
** Xine-lib（自1.2.10起）
** PotPlayer（自2018年10月16日第1.7.14804版起）
** K-Lite编解码器包（自2018年9月13日起14.4.5版起）
* 编码器：
** FFmpeg（自2018年4月20日4.0版起）
** HandBrake（自2019年11月9日1.3.0版起支持解碼）
** Bitmovin编码（自2018年7月4日1.50.0版起）
* 影像编辑：
** DaVinci Resolve（自2021年5月17.2版起支持解碼）
* 其他：
** GStreamer（自1.14版起）
** MKVToolNix（自版本28开始采用最终的av1-in-mkv规范）
** MediaInfo（自18.03版起）
** Elecard StreamEye Studio（影像品質分析工具）
** Google Duo（自2020年4月起）

### 操作系统支持

## 參考資料