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