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