抖音視頻編碼器優化
世界杯的編碼技術挑戰
對于世界杯這樣的大型體育賽事而言,視頻編碼算法既要在高速運動、復雜紋理的場景下確保直播內容的清晰度和流暢度,保障用戶的觀賽體驗,又要兼顧碼率、延遲等對網絡傳輸層面尤為敏感的指標。
另外,抖音實現了業界首次的世界杯比賽支持 4K HDR 10-bit 直播,其內容信息量相較于以往有極大提升,對編碼器的實時性提出了更高要求。
火山引擎如何完成這個挑戰
BVC 編碼器長期迭代優化
火山引擎自研的 BVC 編碼器經過多年的技術攻關和優化技術積累,以及在不同視頻服務業務方向上的長期迭代優化,目前其編碼性能和編碼器架構的計算效率都處于業界領先水平,在國際權威編碼器大賽 MSU 比賽中多次奪冠。
世界杯項目針對性優化
概述
在 BVC 編碼器的基礎上,火山引擎多媒體實驗室針對世界杯比賽場景進行了一系列針對性優化。
首先通過科學構建世界杯比賽視頻的測試集,分析足球比賽視頻特性,進一步挖掘了當前場景下的先驗信息,有效提升了編碼效率,在保證畫質的情況下進一步降低了碼率,同時優化了碼率平穩性以及碼控精度。
同時,團隊優化了多核下的并行機制,極大幅度提升了 CPU 利用率;同時分析并優化了4K HDR 10-bit 視頻編碼中的復雜度瓶頸,進一步加快了 HDR 視頻的編碼速度。最終使得 BVC 編碼器在保證畫質和降低碼率的同時,能進一步提升編碼速度,達到并超出了4K HDR 10-bit 50fps 視頻實時編碼的要求。
另外在線上部署時,團隊通過主觀質量評測專門對足球賽事視頻優化了各種不同質量配置下的最優碼率,比如超高清 4K,超高清 HDR,藍光 HD 等質量配置,保證不同用戶的觀看質量。
優化成果
本次 BVC 編碼器共優化了 3 個不同檔位,分別用于4K HDR/SDR 編碼,1080p編碼,以及 720p/480p 編碼。
(1)針對世界杯場景, BVC 編碼器優化前后各項指標對比如下圖
可見優化后,BVC 編碼器既有相同視頻質量下帶寬收益(BD-Rate),尤其是在相同 VMAF 質量指標時碼率節省收益顯著,同時編碼速度和 CPU 利用率也提升較大(尤其是 4K 檔位),碼控精準度也有顯著提升。
(2)針對世界杯場景的4K 10 - bit 視頻 , BVC 編碼器與開源 x265 編碼器性能對比如下圖:
可見在相同 PSNR 下,BVC 編碼器的帶寬節省高于 x265 的 veryslow 最慢檔,且在相同測試條件下,編碼速度也高于 x265 的 ultrafast 最快檔。
備注:上述圖示中,speed(相對于 x265 ultrafast 編碼速度)越大越好,bandwidth(相對于 x265 ultrafast 帶寬)越小越好。
優化手段
團隊通過精準構建世界杯足球比賽測試集,有效約束了團隊的優化場景,既能為團隊提供更多的足球比賽視頻的先驗信息,同時也不會導致過擬合的情況。在此基礎上,團隊做了大量編碼器內核優化,包括編碼工具調優,新增數十項主/客觀編碼算法,多線程調度以及 SIMD 等工程優化加速,碼率控制優化等;在優化過程中,團隊使用了多個質量評價指標對優化技術性能進行評估,最終實現了在保證畫質不變的條件下既有碼率節省又有速度提升的優化效果。
(1)構建精準的足球比賽測試序列
團隊分析了足球比賽視頻中每個片段的時域復雜度和空域復雜度,同時根據每個片段的場景內容,篩選出了數十個作為足球比賽測試集。
在此基礎上,團隊加入了部分通用測試視頻防止過擬合,構建了最終的測試集,如下圖。
(2)優化編碼器內核
團隊首先測試了已有的數十個編碼工具在當前場景的性價比,找出性價比最高的(復雜度最低,碼率節省最高)工具在當前場景下開啟,并關閉性價比低的工具。
在此基礎上,團隊針對編碼器內部的多個不同模塊,其中包括預分析和編碼過程中運動搜索,模式決策,環路濾波等,開發了數十項新算法,進一步提高了編碼效率和降低模塊的計算復雜度,加快編碼速度。
針對世界杯場景中視頻時域復雜度高特點,團隊通過優化了碼率控制算法,保證了場景切換時的碼率平穩性,同時提高了整體碼率的精準性。團隊也優化了支持 ROI 區域的碼控算法,在相同碼率下使得主觀感受更優,有效提高了足球比賽中人眼敏感的球員區域以及草坪區域的主觀質量。
團隊也進行了大量并行優化,通過多線程任務調度以及 SIMD 優化,提升了多核下的 CPU 利用率,極大加快了編碼速度。
優化示例
( 1 )解決480p檔位拖影問題
優化前(左) vs 優化后(右):
( 2 )提升720p/480p草坪清晰度
優化前(左) vs 優化后(右):