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 |
採用
- Libaom是AV1的參考實作,它包含一個編碼器(aomenc)和一個解碼器(aomdec)。它特性與標準實作最全,但是編碼速度非常緩慢。後續開發中Libaom的效能得到了顯著最佳化。[35][36]
- SVT-AV1包含了主要由英特爾與Netflix合作開發的開源編碼器和解碼器。[37][38]這一編解碼器特別關注多線程效能。2020年8月,開放媒體聯盟接受了SVT-AV1作為生產就緒的編碼器。[39] SVT-AV1 1.0.0發佈於2022年4月22日。[40] SVT-AV1 1.4.0發佈於2022年12月30日。[41]
- rav1e是一個用Rust和匯編語言編寫的編碼器。[42] rav1e採用了與aomenc相反的開發方法:從最快、最簡單的相容編碼器開始,然後在後續開發中提高效率,同時保持速度。[35]
- dav1d是一個用C99和匯編語言編寫的解碼器,注重速度和可移植性。[43] 在2019年3月,dav1d 0.3發佈,經過進一步最佳化,此時dav1d已經比Libaom的aomdec快2到5倍。在2019年5月,Firefox 67將預設解碼器從Libaom切換到了dav1d。[44] 2019年,與libgav1和libaom 相比,dav1d v0.5解碼效能更好。[45] 2022年3月18日,dav1d 1.0.0發佈。[46]
- libgav1是用C++11編寫的解碼器,由Google發佈。[47]
其他幾個組織也在開發AV1的編解碼器,包括EVE for AV1(目前為Beta測試版)、[48] NGCodec、[49] Socionext、[50] Aurora[51] 和MilliCast。[52]
- Web瀏覽器:
- 影像播放器:
- 編碼器:
- 影像編輯:
- DaVinci Resolve(自2021年5月17.2版起支援解碼)
- 其他:
- GStreamer(自1.14版起)[67]
- MKVToolNix(自版本28開始採用最終的av1-in-mkv規範)
- MediaInfo(自18.03版起)[68]
- Elecard StreamEye Studio(影像質素分析工具)
- Google Duo(自2020年4月起)[69]
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影片格式的解碼播放。
參考資料
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.