dav2d:彌合 AV2 影片編解碼器的差距

新影片編解碼器規格的發布是一個里程碑,但正如 VideoLAN 的 Jean‑Baptiste Kempf 所說:「編解碼器只有在每個人都能解碼時才真正存在。」雖然開放媒體聯盟(AOM)已正式發布 AV2 規格,將理論標準轉化為實用工具仍需一個可投入生產的解碼器。

進入這個領域的是 dav2d,一個由 VideoLAN 社群開發的快速、可移植且開源的解碼器。作為極為成功的 dav1d(AV1 解碼器)的繼任者,dav2d 旨在提供必要的軟體基礎設施,使 AV2 在現有硬體上即可運作,遠早於專用硬體解碼器普及之前。

AV2 的挑戰

AV2 是 AV1 的最新免版稅繼任者,於預測、變換、熵編碼與色度處理等方面引入先進的編碼工具。其主要目標是提升壓縮效率,在許多測試條件下據報告相較於 AV1 可提升約 25%。

然而,這種效率伴隨著顯著的計算成本。AV2 解碼的複雜度大約是 AV1 解碼的 五倍。這種複雜度的飛躍意味著在當前世代硬體上執行的軟體若未採取激進且針對架構的最佳化,將難以即時解碼 AV2。此性能差距是推動 dav2d 早期開發的主要動力;若等到規格完全穩定後才開始開發解碼器,將在生態系統部署編解碼器的能力上留下關鍵缺口。

從 dav1d 的教訓

dav2d 的策略深受 dav1d 歷史的啟發。當 AV1 首次定稿時,AOM 社群內曾就硬體實作與參考解碼器是否足夠展開討論。VideoLAN 主張瀏覽器、媒體播放器與行動裝置必須立即擁有生產品質的軟體解碼器,以免阻礙採用。

歷史證明他們的判斷正確。dav1d 成為最廣泛部署的 AV1 軟體解碼器,已整合至 VLC、FFmpeg、Chrome、Firefox、Safari、Android 與 Windows。透過提前啟動 dav2d,VideoLAN 正將相同的思路套用於 AV2:提供開發者可立即用來構建、效能測試與整合編解碼器至其應用程式的工具。

技術實作與目前狀態

dav2d 並非從零開始,而是利用 dav1d 的架構基礎。大量關於執行緒、SIMD 組織與 API 設計的經驗已直接移植至新專案。

目前,dav2d 具備功能完整的 AVM v15 解碼器,支援 8 位元與 10 位元解碼。已實作的關鍵元件包括:

  • 位元流解析與標頭處理
  • 熵解碼與 CDF 處理
  • 內部與跨幀預測
  • 變換與 Wiener 濾波
  • 去塊、CDEF 與影像顆粒合成

效能最佳化

為了對抗複雜度的五倍提升,團隊專注於針對特定架構的組合語言程式碼:

  • x86: 實作 AVX2 程式碼,用於逆變換、CCTX 與去塊。
  • ARM: AArch64 NEON 最佳化,用於熵解碼、SAD 與運動相關功能。
  • RISC‑V: 早期工作,將現有的內部預測與運動補償組合語言進行調整。

dav2d 相較於 dav1d 早期的一項最顯著優勢是 checkasm。此框架讓團隊能即時驗證與基準測試最佳化的組合語言實作,與其 C 版等價物比較,使最佳化過程更快速且更安全。

社群觀點與關鍵問題

dav2d 的發布在開發者與愛好者之間引發了關於提升編解碼器複雜度取捨的技術討論。

「複雜度 vs. 效益」的取捨

有些觀察者質疑 25% 的檔案大小縮減是否值得淘汰舊硬體的代價。正如一位評論者指出,若 AV1 軟體解碼已相當吃力,AV2 複雜度的五倍提升可能會讓舊設備的效能基準測試「慘不忍睹」。

人工設計編解碼器的未來

同時也有更廣泛的討論,探討傳統人工設計的編解碼器是否已達到瓶頸。有些人認為若解碼成本對硬體而言過於昂貴,產業最終可能轉向「全神經」解碼——傳送潛在向量並在張量核心上執行解碼過程——然而對於大多數現有硬體而言,這仍是遙遠的前景。

專利與授權疑慮

儘管 AOM 追求免版稅的目標,仍有使用者對 AV1 曾遭遇的專利池問題表示關切,並質疑 AV2 如何避免來自 Sisvel 或 Dolby/Snap 等實體的類似法律挑戰。

結論

透過以 BSD‑style 授權釋出 dav2d 並以開放方式開發,VideoLAN 確保 AV2 生態系統擁有透明且可互操作的基礎。雖然完整最佳化之路仍然漫長,然而高效能軟體解碼器的存在是確保免版稅編解碼器能在多元現代計算設備上真正部署的唯一途徑。

Sources