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