前言
近日,第 17 屆世界編碼器大賽 MSU 2022 公布硬體編碼器比賽結果,在 60 fps(幀率)的超快視訊編碼賽道上,火山引擎多媒體實驗室自主研發的 BVE 1.1 編碼器表現突出,榮獲最佳 FPGA 編碼器(各項名額大幅領先);并在所有硬體編碼器中,技術名額獲得一項第一和兩項第二,技術能力達到行業領先水準。
MSU 編碼器比賽是由國際機構主辦和測評,是視訊編碼業内影響力最大的國際比賽。
MSU 2022 視訊硬體編碼器大賽 60 fps 賽道比賽結果
背景
随着 5G、網際網路等技術不斷發展,以及半導體工藝的不斷進步,電子産品的性能得到持續提升,基于視訊内容的應用不斷湧現,如抖音、愛奇藝、Bilibili、以及 Youtube 等。另一方面,相對于傳統的文字圖檔内容,視訊内容的傳輸需要更大的網絡帶寬。而随着消費者對于高清視訊需求的指數級增長,如何解決使用者需求和網絡帶寬的沖突逐漸成為視訊應用普及和進步的最大挑戰。在衆多視訊技術中,視訊壓縮是解決帶寬限制最為關鍵的技術。
視訊壓縮主要利用視訊内容中存在的時間和空間備援,以更小的碼流進行視訊内容的傳輸。視訊壓縮技術和标準也在不斷進步中,如最新的 VVC 标準,編碼性能相較前一代提升超過 50%,而計算複雜度則至少提升 5 倍以上。主流的視訊壓縮解決方案主要分為軟體編碼器和硬體編碼器兩種。其中軟體編碼器主要由 CPU 實作,硬體編碼器包括 GPU,FPGA,以及 ASIC 三種方案。相較于軟體編碼器,硬體編碼器具有更高的計算密度,更高的吞吐率,更低的延時和計算成本等優勢。為了實作低延時、低碼率、高畫質、可持續的視訊應用,采用硬體編碼解決方案成為一種必然的選擇。
團隊簡介
火山引擎多媒體實驗室視訊晶片團隊從零開始建立了資料中心高密度硬體視訊編碼解決方案,包括算法開發及優化、硬體架構設計及驗證、固件及軟體開發等。團隊在短時間内從零到一完成了多款硬體編碼方案的設計以及部署,包括 FPGA HEIF 圖檔編碼器、FPGA 視訊編碼器 BVE 1.0、及 BVE 1.1 等。其中 FPGA HEIF 圖檔編碼器已經成功部署數千片,全面覆寫了抖音集團旗下抖音、頭條、西瓜視訊等的各個HEIF靜圖、動圖業務場景。FPGA 視訊編碼器 BVE 1.0 和 BVE 1.1 連續兩年獲評 MSU 最佳 FPGA編碼器,編碼性能大幅領先行業平均水準。
架構設計
視訊轉碼整體架構
BVE硬體編碼方案設計充分考慮到了硬體方案的相容性以及火山引擎轉碼服務流程,極大地簡化了硬體方案實作替代的難度。自主設計的轉碼器架構不僅相容業界标準FFMPEG API架構,同時支援火山引擎自研的業戶排程系統,進而實作了對點播,直播,雲遊戲,圖檔編碼等不同業務場景的無縫支援,減少了新産品從開發到業務落地的周期。
視訊轉碼整體架構圖
火山引擎轉碼流程主要由三個核心子產品組成:
- Host Server: 運作ffmpeg,內建圖檔、視訊相關處理API,通過PCIe 跟編碼器和解碼器通訊,實作對編解碼的控制, 同時對解碼出來的YUV做相應的前處理,例如畫質增強,銳化,降噪,插幀, ROI, CAE等, 并且通過ffmpeg API對音頻部分做相關的編解碼,實作對音頻和視訊的同步耦合等;
- 解碼器(Decoder): 對于FPGA方案,采用ffmpeg自帶的軟體解碼器,支援了不同格式的解碼, 并對解出的YUV 做格式轉換,縮放等後處理後存入DDR, 提供給編碼器進行編碼;
- 編碼器 (Encoder): 采用自研的FPGA BVE 1.1 架構設計, 加入各種自适應算法, 實作了低延時、低碼率、高畫質視訊壓縮,達到行業硬體編碼器性能的領先水準。
編碼核心算法
編碼核心算法方面,針對移動網際網路應用的特性,采用定制化以及自适應算法解決方案,加入視訊圖像中各種統計資料,優化編碼參數配置,進而達到極緻的編碼效率。
BVE編碼算法設計中引入了多種自适應編碼算法,包括自适應色度增強、運動補償時域濾波、ROI編碼、以及銳化增強等。其中,ROI的引入能極大的提升主觀品質,并有效降低碼率。銳化增強可以有效地提升視訊清晰度,及使用者畫質體驗。運動補償時域濾波可以根據幀間相關性去除使用者上傳視訊中的原有噪聲,進而提升編碼效率。自适應色度增強可以根據視訊内容自動調整色度分量的碼率大小,保持相同視訊品質的同時提升編碼效率。
MSU比賽結果顯示,BVE FPGA編碼器整體編碼性能比行業标準編碼器(GPU)提升30%,與行業最優的ASIC編碼器相當。在60 fps 超快視訊編碼的客觀品質評比中,火山引擎與騰訊、快手、Intel、Bluedot等參賽隊伍排名前列。在同期參賽的多款不同類型的硬體編碼器産品中,火山引擎 BVE 1.1 不僅榮獲最佳FPGA硬體編碼器,同時在主觀品質(YUV-VMAF)上更是領先其他所有硬體編碼器。
MSU 2022 視訊硬體編碼器大賽 60 fps 賽道YUV-VMAF結果
編碼硬體架構
硬體架構方面,BVE編碼器采用全新的編碼器硬體架構設計方案,不僅内嵌多種優化的編碼預分析和預處理子產品,而且支援多種編碼模式,如并行編碼、低延時編碼等,能夠很好地适配多種應用場景,以較小的硬體代價實作編碼性能和視訊品質的最大化。
編碼器架構設計方面,核心子產品全面采用可配置的編碼參數設計方案,支援端到端的自适應優化。首先,BVE編碼器采用多層次的運動搜尋方式,支援搜尋範圍動态調整,不僅能夠實作精确的運動估計,同時優化硬體吞吐率。其次,BVE編碼器支援全并行的率失真優化設計,精确的碼率估計,以及優化的量化編碼,能夠實作最大化編碼性能和吞吐率。BVE編碼器硬體内部定制的DMA進一步優化記憶體資料存取效率,降低軟硬體通信延時,提高帶寬使用率和編碼器吞吐率等。
BVE硬體編碼器架構設計已經過大量實驗以及應用驗證,如HEIF以及FPGA等,不僅具有編碼性能優異,吞吐率高等優點,同時具備支援自适應優化特性,可無縫銜接抖音集團主要産品。
寫在最後
FPGA BVE及HEIF編碼器目前已廣泛應用于今日頭條、抖音、西瓜視訊等抖音集團旗下産品的圖檔和視訊業務,及火山引擎圖檔業務toB産品veImageX中。高性能的BVE硬體編碼器除了支援主流的轉碼、直播等應用外,由于具有低延時、高吞吐、低成本等特點,也為更多創新的視訊應用提供可能性。
作者:火山引擎視訊晶片
來源:微信公衆号:位元組跳動技術團隊
出處:https://mp.weixin.qq.com/s/uOKSexbzb8MXXYcIR-4lXA