天天看點

性能可期——Netflix與Intel優化SVT-AV1視訊編碼标準的曆史解碼器規範沒有變過,而編碼器被改進多年Netflix對SVT-AV1的興趣我們取得的進展

文 / AndreyNorkin, Joel Sole, Kyle Swanson, Mariana Afonso, Anush Moorthy, Anne Aaron

譯 / 元寶

原文:

https://medium.com/netflix-techblog/introducing-svt-av1-a-scalable-open-source-av1-framework-c726cce3103a

視訊編碼标準的曆史

從曆史的發展來看,視訊壓縮的标準是由兩個國際的标準化組織ITU-T和MPEG(ISO)共同制定的。最早取得成功的數字視訊标準是MPEG-2,它真正意義上實作了視訊的數字傳輸。此外,H.264/AVC也取得了同樣的成功,H.264/AVC是目前的現代裝置(通常是硬體)最普遍支援的視訊壓縮标準。另一方面,還有一些公司自己開發的視訊編解碼器,例如微軟的VC-1和谷歌的VPx編解碼器。大家采用同一視訊壓縮标準的好處是互操作性。視訊壓縮的标準規範詳細地描述了應如何處理視訊比特流來生成可顯示的視訊幀。這就允許了裝置制造商可以自主地實作自己的解碼器。當内容提供商根據視訊壓縮标準對其視訊進行編碼後,可以保證所有的相容裝置都能夠解碼和顯示這一視訊。

最近,由于普遍存在許可不确定性的問題,應用ITU-T和ISO标準化的最新視訊編解碼器速度很慢。是以,有一群公司組成了一個開放媒體聯盟(AOM),這個聯盟緻力于建立一個現代的、免版稅的視訊編解碼器,并且該編解碼器将被大量裝置廣泛支援和采用。目前,AOM的委員會成員包括亞馬遜、蘋果、ARM、思科、Facebook、谷歌、IBM、英特爾、微軟、Mozilla、Netflix、Nvidia和三星,并且還有許多公司都加入了AOM的推廣團隊。在2018年,AOM釋出了AV1視訊編解碼器的規範。

解碼器規範沒有變過,而編碼器被改進多年

如上所述,一個标準規定了如何解碼被壓縮的比特流來生成可顯示的視訊流,這意味着編碼器是可以根據其特性進行更改的,比如計算性能和給定比特率的可實作品質。編碼器通常可以在标準多年不變的情況下進行改進,包括不同的速度和品質的權衡。像這樣的開發執行個體有x264編碼器,它從H.264标準制定後的多年來一直在改進。

要開發一個符合标準的解碼器,采用标準規範應該就是足夠的。為了指導大家實作編解碼器,标準化委員會還釋出了參考軟體,這其中包括相容的解碼器和編碼器。參考軟體作為标準開發過程的基礎,同時也是一個評價視訊編碼工具性能的架構。參考軟體通常伴随着标準的發展而發展。此外,當标準規範制定完成後,參考軟體也可以幫助推進相容解碼器和編碼器的實作。

AOM已經為AV1開發了參考軟體,該軟體名為libaom,可以線上使用。libaom是建立在VP9、VP8和前幾代VPx視訊編解碼器的代碼基礎之上的。在AV1開發的過程中,該軟體是由AOM視訊編解碼器團隊進一步開發的。

Netflix對SVT-AV1的興趣

參考軟體通常關注的是以犧牲編碼速度為代價所能得到的最佳壓縮比。衆所周知,現代視訊編解碼器參考軟體的編碼時間都是相當長的

英特爾開發SVT-AV1的目标之一是建立一個工業産品級别的AV1編碼器,它能同時提供高性能和可擴充性。SVT-AV1在編碼過程的幾個階段中均使用了并行化,這使其能夠适應可用核心的數量。這使得SVT-AV1可以在保持壓縮效率的同時減少編碼時間。

在2018年8月,Netflix的視訊算法團隊和英特爾的可視化雲團隊決定聯手開發SVT-AV1。從那時起,英特爾和Netflix的團隊在SVT-AV1的開發上緊密合作,包括讨論架構決策、實作新工具和提高壓縮效率。Netflix對SVT-AV1的主要興趣點與英特爾有些不同,但與英特爾建構工業産品級别、高度可擴充的編碼器的意圖是互補的。

在Netflix,我們相信AV1的生态系統将得益于實作一個可供選擇的簡潔、高效開源編碼器。目前至少就有一個可供選擇的開源AV1編碼器,rav1e。但是,rav1e是用Rust語言編寫的,而用C語言編寫的編碼器對潛在的開發人員來說有更廣泛的基礎。開源編碼器還應該支援實作簡單的實驗和提供測試新編碼工具的平台。是以,我們對AV1軟體的要求如下:

  • 代碼易于了解,具有較低的入門門檻和測試架構
  • 具有與參考實作相當的有競争力的壓縮效率
  • 完整的工具集,實作的解碼器要滿足與編碼器共享通用代碼,并且還要簡化新編碼工具的實驗
  • 減少編碼器的運作時間,以便在測試新想法時實作更短的周期

我們相信,如果SVT-AV1符合了這些特性,它則可以用作未來視訊編碼标準開發的平台,例如對AV2視訊編解碼器的研究和開發工作以及改進AV1的編碼。

是以,Netflix和英特爾開發SVT-AV1具有互補的目标。編碼器的速度是有助于創新的,因為它可以更快地運作實驗。代碼的簡潔性有助于開源社群的采用,這對于開源項目的成功至關重要。我們可以說,大量的并行化可能有對壓縮效率的權衡,但它也允許測試更多的編碼選項。此外,我們預計多核平台在未來将普遍用于視訊編碼,這會使得在支援多線程的架構中測試新工具非常重要。

我們取得的進展

為了使SVT-AV1成為一個優秀的實驗平台和AV1參考,我們已經完成了以下裡程碑:

  • 為Linux,Windows和MacO添加了一個持續內建(CI)架構。
  • 基于Google     Test添加了一個單元測試架構。外部的承包商正在添加單元測試,以實作對已經開發的代碼的充分覆寫。此外,單元測試将涵蓋新的代碼。
  • 在CI架構中添加了其他類型的測試,例如自動編碼和Valgrind測試。
  • 啟動了一個解碼器項目,它與編碼器共享AV1算法的常用部分。
  • 引入了樣式指南,并對現有代碼進行了相應的格式化。

SVT-AV1的工作目前正在進行中,因為它仍需實作一些編碼工具,是以在1-pass模式下,與libaom編碼器在PSNR BD速率上的平均差距約為14%。為了降低BD速率的差距,計劃添加以下功能,:

  • 多參考圖檔
  • ALTREF圖檔
  • 八像素運動補償(1/8像素)
  • 全局運動補償
  • OBMC
  • 楔形預測
  • TMVP
  • 調色闆預測
  • 自适應變換塊大小
  • 網格量化系數優化
  • 分割
  • 4:2:2支援
  • 速率控制(ABR,CBR,VBR)
  • 2-pass編碼模式

前面還有很多工作要做,我們緻力于使SVT-AV1項目能滿足成為一個優秀實驗平台的目标,同時也适用于生産應用程式。您可以在AWCY(AreWeCompressedYet)網站的beta版上跟蹤SVT-AV1的性能進展。AWCY是用于在AV1開發過程中用來評估AV1工具的架構。在下圖中,您可以看到兩個版本的SVT-AV1編解碼器的比較,藍色的圖表示2019年3月15日的SVT-AV1版本,綠色的圖表示2019年3月19日的SVT-AV1版本。

性能可期——Netflix與Intel優化SVT-AV1視訊編碼标準的曆史解碼器規範沒有變過,而編碼器被改進多年Netflix對SVT-AV1的興趣我們取得的進展

SVT-AV1的編碼速度其實已經很出衆了。在最慢的速度設定下,SVT-AV1不能達到libaom的壓縮效率,但它執行編碼的速度明顯快于最快的libaom模式。目前,在最慢模式下的SVT-AV1與在1-pass模式下使用cpu_used = 1(libaom的第二慢速模式)的libaom編碼器相比多使用了大約13.5%的比特數,但在速度上大約是快了4倍多。與2-pass模式下的libaom編碼的BD速率的差距就更大了,我們計劃通過在SVT-AV1中實作2-pass模式編碼來解決這個問題。我們還可以注意到,SVT-AV1更快的編碼設定可以更顯著地減少編碼時間,進而顯著提高編碼器的速度。

————————————————

版權聲明:本文為CSDN部落客「LiveVideoStack_」的原創文章,遵循CC 4.0 BY-SA版權協定,轉載請附上原文出處連結及本聲明。

原文連結:

https://blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/90252629
「視訊雲技術」你最值得關注的音視訊技術公衆号,每周推送來自阿裡雲一線的實踐技術文章,在這裡與音視訊領域一流工程師交流切磋。
性能可期——Netflix與Intel優化SVT-AV1視訊編碼标準的曆史解碼器規範沒有變過,而編碼器被改進多年Netflix對SVT-AV1的興趣我們取得的進展