Dav1d移動端解碼高清視頻達30FPS

開源AV1解碼器Dav1d 0.3.0版性能進一步提升,在SSSE3指令集上快24%、在SSE4.1上為26%、在AVX2(所有PC)上為4%,在ARM64上快12%。目前已知使用的解碼器 VLC media player 3.0.6 應該還是相對較舊的版本,未來最新的4.0會採用最新解碼庫。但MPC-BE(beta)和PotPlayer最新版本已更新0.2.x以上的解碼庫。

文:Ewout ter Hoeven

翻譯:蔣默邱澤

原文:

https://medium.com/@ewoutterhoeven/dav1d-0-3-0-sailfish-armed-to-the-teeth-af5bbf845a16

開源AV1解碼器Dav1d近日更新版本0.3.0,在發佈的第三個版本中,新的彙編代碼在PC和移動平臺上都提供了一些重要的性能提升。(訪問這裡瞭解詳細的測試數據https://docs.google.com/spreadsheets/d/1kokRutDAZmIMHa7EHxMNefhezDVozkcHwXIK_7X6g1w/edit#gid=1963224812)

Dav1d移動端解碼高清視頻達30FPS

個人電腦

在x86方面,此版本主要改進了Dav1d的SSSE3性能。Jiang Xuefeng對亮度和Paeth幀內預測函數的色度預測做出了貢獻,分別提高了0.8%和0.4%的全局性能。

Liwei Wang繼續他的逆變換工作,針對更大的8x32,32x16和32x32以及高達64x64的塊,提供了這個版本的最大速度優化,在一些視頻上超過10%。

Dav1d 0.3.0還新增了第一個SSE4.1程序集。在大多數情況下添加的SSE4.1指令除了SSSE3之外沒有太多利用上,但Victorien Le Couviour - Tuffet近一個月還在優化SSE4。他對CDEF約束方向增強濾波器濾波器進行了優化,使模塊級別的速度提高了115倍,整體提升了1.5%。

與此同時,Henrik Gramner編寫了一些非常聰明的SSE2代碼來加速熵解碼/碼流讀取,剛開始會佔用大部分解碼時間,尤其是在AVX2指令上。彙編代碼為所有64位x86平臺帶來了加速,AVX2約為4%、SSSE3和SSE4.1約提升2%。

Dav1d移動端解碼高清視頻達30FPS


Dav1d移動端解碼高清視頻達30FPS

總的來看,這些測試使得SSSE3上的Dav1d 0.3.0快24%,SSE4.1快26%,AVX2 CPU快4%。

Dav1d移動端解碼高清視頻達30FPS

雖然單線程aomdec仍然非常強大,但是多線程Dav1d 0.3.0使libaom在下面對比圖中的位置更微小。

Dav1d移動端解碼高清視頻達30FPS


Dav1d移動端解碼高清視頻達30FPS

Arm64

MartinStorsjö提供了兩個非常好的提交,使用NEON彙編代碼加速了loopfilter(NEON環路過濾器)和自導環路恢復。這兩項功能都加速了大約3倍,使性能提升了7%到36%。不僅可以實現更高的分辨率、幀率和碼率,還可以降低相同畫面內容的硬件功耗。

在高通驍龍835上單核解碼1080p視頻突破25FPS,使用多個線程穩定30 FPS,某些內容甚至達到60FPS。

Dav1d移動端解碼高清視頻達30FPS


Dav1d移動端解碼高清視頻達30FPS

總結以上結果,我們看到《RED》的測試結果提升明顯,因為它很大程度上依賴於loopfilter。單線程增益介於11%和36%之間(平均19%),多線程介於7%和16%之間。

Dav1d移動端解碼高清視頻達30FPS

應用現狀

Dav1d的應用進行得非常順利,重大新聞是Chrome瀏覽器和新的Microsoft Edge背後的開源項目Chromium現在也用了Dav1d,默認情況下將在Chrome 74中集成。

Firefox 67也在最新版本里使用了Dav1d,Dav1d已更新為0.2.1並使用了多線程。 除了Windows之外,默認情況下還在Linux和macOS上啟用Dav1d解碼。

FFmpeg和 VLC 自然也使用了Dav1d,一旦FFmpeg 4.2發佈,Handbrake,自然也會考慮集成Dav1d。

Youtube越來越多的使用AV1編碼,他們甚至編碼了一些4K和8K分辨率高達60fps的視頻,在這裡瞭解如何讓Youtube啟用AV1。(https://www.youtube.com/testtube)

參考:

  • https://code.videolan.org/videolan/dav1d
  • https://code.videolan.org/videolan/dav1d/blob/master/NEWS
  • https://www.videohelp.com/software/PotPlayer
  • https://www.videohelp.com/software/MPC-BE
  • http://lazybing.github.io/blog/2019/01/28/av1-cdef-filter/
  • https://aomediacodec.github.io/av1-spec/av1-spec.pdf

相關推薦

推薦中...