基于高性能視頻編解碼技術(shù)的解決方案,可以實(shí)現(xiàn)高清畫質(zhì)更快的壓縮速度、更少的帶寬消耗,在滿足用戶高清畫質(zhì)要求的前提下有效降低運(yùn)營(yíng)成本。阿里巴巴達(dá)摩院XG實(shí)驗(yàn)室,高級(jí)算法專家楊名遠(yuǎn)在LiveVideoStack線上分享中詳細(xì)介紹了現(xiàn)有視頻編碼方案存在的挑戰(zhàn),并對(duì)高性能視頻硬件編碼技術(shù)進(jìn)行了詳細(xì)解析。
大家好,非常高興能夠和大家分享我們團(tuán)隊(duì)這一年內(nèi)所做的一些工作、研究和想法,本次分享的主題是高性能硬件視頻編碼。 1 視頻業(yè)務(wù)發(fā)展趨勢(shì)
大約是在2018年,我們?cè)诳紤]是否要面向視頻編碼方向做些研究,當(dāng)時(shí)看到的一個(gè)趨勢(shì)是:互聯(lián)網(wǎng)視頻頭部?jī)?nèi)容如電商直播、游戲直播等視頻內(nèi)容質(zhì)量越來越高,已經(jīng)從標(biāo)準(zhǔn)尺寸轉(zhuǎn)換為720P,甚至部分游戲直播場(chǎng)景、網(wǎng)紅直播場(chǎng)景已經(jīng)支持1080p/30fps、1080p/60fps,同時(shí)由于5G信道帶寬的增加,AR/VR場(chǎng)景的應(yīng)用出現(xiàn)復(fù)蘇跡象。 從端側(cè)來講,手機(jī)屏幕的面積越來越大,目前已基本可以支持720P或1080P。隨著柔性屏幕的擴(kuò)展以及觀看視野的放大,視頻的體驗(yàn)也許可以從1080P擴(kuò)展到4K、8K,高性能視頻端到端傳輸系統(tǒng)已經(jīng)具備了從內(nèi)容制作到傳輸?shù)浇K端整體的技術(shù)支持。
如圖是一些調(diào)研報(bào)告,我們可以看到無線信道中的視頻流量占有很大比重,預(yù)計(jì)到2024年比重可達(dá)到74%,同時(shí)用戶的使用行為正在逐漸發(fā)生變化,從標(biāo)清視頻開始向高清HD甚至是4K、8K超高清方向轉(zhuǎn)變。 因此,高質(zhì)量視頻(high resolution/high framerate/HDR)將在明后年迎來大幅度的增長(zhǎng).
如圖左邊是一個(gè)商業(yè)調(diào)研報(bào)告,以電商直播、在線教育等新的基于行業(yè)特點(diǎn)的視頻應(yīng)用不斷涌現(xiàn),到2020年,中國(guó)網(wǎng)絡(luò)視頻行業(yè)規(guī)模達(dá)2940億人民幣,其中大部分來自于泛娛樂直播,包括短視頻、在線視頻等。 如圖右邊是來自賽靈思的針對(duì)各大上市公司的財(cái)報(bào)調(diào)研報(bào)告,報(bào)告中顯示,普遍帶寬成本在全年財(cái)政收入中所占比重較大,特別以游戲直播為主的視頻網(wǎng)站,帶寬成本甚至可能有超過10%的占比。所以,對(duì)于視頻網(wǎng)站來說,帶寬成本和存儲(chǔ)成本是非常大的。 2 現(xiàn)有視頻編碼方案存在的挑戰(zhàn)
現(xiàn)有視頻編碼方案主要分為兩種,一種是軟件方案,例如較多應(yīng)用于x86平臺(tái)上的軟件編碼器。另一種就是硬件方案,例如NVDIA GPU中的硬核,FPGA方案以及ASIC SoC的解決方案。 軟件編碼器的特點(diǎn)是可以進(jìn)行復(fù)雜度配置的任意調(diào)整,例如x265,就有很多復(fù)雜度,不同的復(fù)雜度對(duì)應(yīng)不同的壓縮效率和處理能力,例如x265 veryslow檔的帶寬節(jié)省比superfast檔高出40%的碼率,但是單位時(shí)間內(nèi)處理幀率會(huì)低很多。隨著摩爾定律的失效,軟件編碼器在對(duì)時(shí)效性有要求的業(yè)務(wù)場(chǎng)景需要進(jìn)行壓縮性能和處理能力的平衡。 右圖是對(duì)當(dāng)前幾種不同硬件編碼器的水平進(jìn)行的測(cè)試,從測(cè)試結(jié)果中可以看到,現(xiàn)存業(yè)界較好的硬件實(shí)時(shí)高清硬件編碼方案的壓縮性能基本可以達(dá)到x265 medium檔的水平。 3 硬件編碼技術(shù) 基于上述現(xiàn)有編碼技術(shù)背景的調(diào)研以及現(xiàn)有方案的分析,我們發(fā)現(xiàn),硬件編碼器可能需要一種產(chǎn)品形態(tài),即在現(xiàn)有硬件編碼技術(shù)基礎(chǔ)上追求更高的壓縮性能,同時(shí)需要保證一定的實(shí)時(shí)性的處理能力,在壓縮性能與處理能力間尋找一種平衡,以更好的解決帶寬和存儲(chǔ)成本的問題。
因此,我們團(tuán)隊(duì)經(jīng)過一年多的努力,成功研發(fā)了一款基于FPGA的硬件編碼器-XGH265,目前已經(jīng)將該編碼器部署在阿里云的異構(gòu)服務(wù)平臺(tái)。右側(cè)圖就是FPGA卡,可以通過PCIE插在x86服務(wù)器上。圖中Host代表x86服務(wù)器,通過PCIE與FPGA板卡進(jìn)行信息交互。
如上圖中架構(gòu)圖所示,黃色區(qū)域代表x86服務(wù)器;藍(lán)色區(qū)域代表異構(gòu)服務(wù)器平臺(tái)本身具備的硬件和架構(gòu),包括PCIE的驅(qū)動(dòng)、傳輸?shù)?;綠色部分是我們搭建的整套系統(tǒng),包括嵌入式CPU、DMA交互、數(shù)據(jù)傳輸?shù)?;橙色部分也是我們團(tuán)隊(duì)研發(fā)的265編碼器,主要包括兩個(gè)模塊:預(yù)處理模塊、編碼模塊。
軟件方面,在x86服務(wù)器上采用的是較為流行的FFmpeg軟件進(jìn)行編碼調(diào)度、命令下發(fā)等工作,原始編碼碼流會(huì)通過FFmpeg解碼,將解碼后的YUV圖像通過PCIE傳到FPGA卡上,F(xiàn)PGA卡上的CPU/固件系統(tǒng)在接收到Y(jié)UV圖像后進(jìn)行編碼任務(wù)調(diào)度,控制FPGA HEVC Encoder編碼出265碼流,將編好的碼流回傳至主服務(wù)器, 再通過協(xié)議封裝成TS或MP4等格式進(jìn)行推流。 x86服務(wù)器的FFmpeg支持多線程、多進(jìn)程編碼、編碼參數(shù)等信息傳遞、以及對(duì)編碼器的監(jiān)控和異常處理。 FPGA編碼器上的CPU和固件負(fù)責(zé)的工作有:編碼通道管理、不同通道的編碼器配置、預(yù)分析計(jì)算(包括場(chǎng)景檢測(cè)、幀類型決策等)、參考幀管理、碼率控制等。
如圖是硬件編碼器的編碼框架,之前的一些硬件編碼器設(shè)計(jì)中,MD模塊大多是采用非RDO或者說是簡(jiǎn)單RDO的決策,而我們的設(shè)計(jì)目標(biāo)是實(shí)現(xiàn)一款高壓縮性能的編碼器,因此在編碼器架構(gòu)設(shè)計(jì)中采用了全RDO的決策模式,整個(gè)決策過程可以得到最真實(shí)的重構(gòu)像素和CABAC狀態(tài)及時(shí)更新后的概率表,最大程度上保留了編碼過程的依賴性,同時(shí)對(duì)DPCM流水線處理做了極致優(yōu)化保證MD能夠全遍歷不同CU大小和更多的模式,從而獲得了最好的壓縮性能。 但是全RDO的編碼架構(gòu)設(shè)計(jì)會(huì)給硬件的高速實(shí)現(xiàn)帶來很多困難,如編碼模塊中會(huì)存在大量復(fù)雜的反饋信息。在硬件設(shè)計(jì)中,處理性能的更好實(shí)現(xiàn)主要是基于數(shù)據(jù)的流水和并行處理,因此反饋機(jī)制所要承擔(dān)的壓力就會(huì)比較大,如果在一定時(shí)間內(nèi)反饋的數(shù)據(jù)沒有到達(dá)則流水處理就需要等待,所以說反饋機(jī)制的設(shè)計(jì)是編碼器設(shè)計(jì)實(shí)現(xiàn)中的一個(gè)難點(diǎn)。 我們?cè)诹魉€設(shè)計(jì)和算法設(shè)計(jì)上的優(yōu)化解決了這些難題,比如通過對(duì)TU流水線的Cycle級(jí)精細(xì)化控制,頻域Distortion預(yù)估等架構(gòu)和算法的設(shè)計(jì)既增加了流水線的吞吐量,又保持了各個(gè)模塊的信息獲取的依賴關(guān)系。類似的設(shè)計(jì)和算法優(yōu)化還有很多,由于篇幅的限制在此就不一一列舉了。 從視頻編碼的角度來說,如H.265、H.266/VVC等,壓縮性能的提升很大程度上來自反饋機(jī)制或者模塊間的耦合。為了盡可能保證實(shí)現(xiàn)265比較高的壓縮性能,因此在設(shè)計(jì)架構(gòu)時(shí),對(duì)于反饋機(jī)制部分我們投入了很大的精力進(jìn)行設(shè)計(jì)與優(yōu)化。
如圖是FPGA的物理版圖,由三個(gè)die組成,每個(gè)die之間通過連線的方式進(jìn)行數(shù)據(jù)傳遞,不同色彩的模塊代表不同的編碼模塊,資源的利用非常密集。實(shí)現(xiàn)了編碼器的三大特點(diǎn):高資源利用率、高頻率(核心計(jì)算模塊的主頻已達(dá)到400M)、合理的多die設(shè)計(jì),這三個(gè)特點(diǎn)保證了高性能壓縮的能力。
以下是我們實(shí)現(xiàn)的硬件編碼器的一些主要特性: l 全RDO架構(gòu)保證了視頻中低碼率段的壓縮性能 l 支持CBR、CRF、CQP等各類碼控算法 l 場(chǎng)景檢測(cè)、幀類型決策、碼率控制等算法為軟件算法,可以支持隨時(shí)升級(jí) l 支持延遲可配置,延遲從幾幀到幾十幀 l 支持高性能主管調(diào)節(jié),提升主客觀性能,減少馬賽克效應(yīng)的出現(xiàn) l 支持Close GOP,OPEN GOP和自適應(yīng)B幀 l 流媒體系統(tǒng)采用ffmpeg,便于與現(xiàn)有大部分系統(tǒng)對(duì)接 4 硬件編碼器性能
最后是XGH265與x265 veryslow檔 軟件加速比的一個(gè)測(cè)試比較。在阿里云標(biāo)準(zhǔn)機(jī)型下,在同等成本下,XGH265達(dá)到近20倍速度的提升。在壓縮性能方面,同等質(zhì)量下,XGH265節(jié)省帶寬最多。
-
FPGA
+關(guān)注
關(guān)注
1624文章
21573瀏覽量
600729 -
編碼器
+關(guān)注
關(guān)注
44文章
3556瀏覽量
133840 -
傳輸系統(tǒng)
+關(guān)注
關(guān)注
0文章
147瀏覽量
37133
原文標(biāo)題:基于FPGA的高性能視頻硬件編碼器
文章出處:【微信號(hào):livevideostack,微信公眾號(hào):LiveVideoStack】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論