Av1编码

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

與 VP9 類似，但與 H.264/AVC 和 HEVC 不同的是，AV1 具有買斷式授權模式，不會阻礙開源項目的採用。

AVIF 是一種使用 AV1 壓縮演算法的圖形檔案格式。

## 歷史進程

開放媒體聯盟（AOMedia）建立 AV1 主因包括涉及 HEVC 的高成本專利許可與模糊空間，此外，由 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 另一個原因是專利授權對免費開源軟體的負面影響。例如在瀏覽器中實作 H.264，將被禁止使用，除非向 MPEG-LA 支付權利金。歐洲自由軟體基金會認為，由於與自由軟體許可證的各種不相容，公平及合理非歧視條款許可實踐使標準的自由軟體實施成為不可能。

AV1 的組成來自聯盟成員過往的研究與工作內容，分別在幾年前就開始實作實驗性平台，如：Xiph 與 Mozilla 的 Daala，Google 實驗性質的 VP9 提升為 VP10，並於 2014 年 9 月 12 日公布，以及 Cisco 的 Thor 於 2015 年 8 月 11 日發布。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 的目標是成為一種既先進科技又買斷式授權 (免版稅) 的網路影片格式。 根據 Google Chrome 媒體團隊戰略和合作夥伴關係主管 Matt Frost 的說法，「開放媒體聯盟的使命與 WebM 項目相同。」

標準制定中反復出現的一個問題，尤其是免版稅的多媒體格式，是不小心侵犯其建立者和使用者不知道的專利的危險。 關於 AV1 和之前的 VP8、 VP9、 Theora 和 IVC 已經提出了這種擔憂。 這個問題並不是免版稅格式獨有的，但它獨特地威脅到他們免版稅的地位。

為實現免版稅的目標，開發過程要求在兩個獨立方獨立確認不侵犯競爭公司的專利之前，不得採用任何功能。如果無法獲得專利保護技術的替代方案，相關專利的所有者將被邀請加入聯盟（即使他們已經是另一個專利池的成員）。 例如，聯盟成員 Apple、Cisco、Google 和 Microsoft 也是 MPEG-LA H.264 專利池的許可人。

## 技術

AV1 是一種使用傳統的基於區塊編碼但也加入了新技術的頻率變換格式，AV1 所使用的編碼技術主要來源於 GoogleVP9 的下一代影片壓縮格式 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 擁有三種設定供解碼器使用 **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 位元的色彩深度。

## 軟體支援

* 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 月起）

## 採用

YouTube 已開始嘗試在部份影片使用 AV1 影片格式。2020 年 2 月 5 日，Netflix 開始在 Android 裝置上使用 AV1 影片格式播放影片，AV1 的壓縮效率較原先的 VP9 提升了 20%。Facebook 表示 AV1 效能超乎預期，一旦時機成熟將逐步採用 AV1 影片格式。

Twitch 計劃在 2022 年或 2023 年於關注度較高的影片採用 AV1 影片格式，並在 2024 年或 2025 年全面採用。

2020 年 4 月 30 日，愛奇藝宣佈在電腦瀏覽器和 Android 裝置上支援 AV1 影片格式。

2022 年 2 月 6 日，嗶哩嗶哩已在網頁端測試 AV1 影片格式的解碼播放。

## 參考資料