AVS2 超高清編碼實踐

AVS2 超高清編碼實踐

Photo by Lisa Fotios from Pexels

本文內容來自杭州當虹科技股份有限公司謝亞光在LiveVideoStackCon2019北京站上的精彩分享,他將簡單介紹AVS2視頻編碼標準的特點和優勢,同時分享在研發4K超高清過程中探索的高效視頻算法,包含各種快速模式決策策略以及獲得的速度增益和對壓縮效率的影響。同時還將介紹當虹科技在使用GPU來加速編碼的一些探索,以及獲得的速度增益。

文 / 謝亞光

整理 / LiveVideoStack

大家好我是當虹科技的謝亞光,今天由我來為大家介紹公司在AVS2超高清領域所做的一些實踐。

AVS2 超高清編碼實踐

今天的介紹分為四個部分,第一部分是介紹當虹科技公司;第二部分介紹AVS2的視頻標準;第三部分是對AVS2超高清編碼的實踐介紹;第四部分是介紹當虹科技在超高清編碼領域的一些規劃。

1. 公司介紹

1.1 當虹科技公司發展歷程

AVS2 超高清編碼實踐

當虹科技是定位於大視頻領域、提供智能視頻解決方案與視頻雲服務的國家高新技術企業,其高質量視頻轉碼、智能人像識別、全終端播放、低延時視頻通訊等核心算法研究與應用,在中國面向廣電媒體、互聯網視頻、教育、公安、司法、社會安防、政府等大視頻行業,為用戶提供傳媒文化、公共安全整體解決方案,滿足人民日益增長的精神文化和安全穩定訴求。

公司在視頻編轉碼領域擁有深厚的核心技術積累,主要技術團隊在該領域的從業經驗及技術積累超過20年。公司從1994年開始服務海外,1998年時候開始做DVD的播放和刻錄,2002開始做攝像頭視頻,2004年涉及藍光視頻,2009年開始做移動和雲視頻。2013年的時候進軍國內廣電業務,2017年,開始涉及並拓展公安與教育行業。

1.2 超高清化視頻解決方案

AVS2 超高清編碼實踐

視頻主要採用端對端的視頻解決方案,並且專注視頻採集,生產,管理,發佈和終端的多屏顯示和多屏播放領域。在採集部分,從直播線的直導播一體機、VR直播、手機推流,到點播線的匯聚轉碼和離線轉碼進行導入。在生產部分分為直播生產和離線內容生產,管理部分主要有增值運營下屬的各種系統,最後通過各種系統進行發佈在播放引擎。

1.3 產品在廣電市場的應用

AVS2 超高清編碼實踐

公司主要專注於廣電和IPTV,OTT等平臺,雖然不會直接與大眾直接接觸,但是每天都約有上萬路多屏直播信號依靠著當虹公司的解決方案在平臺中安全播出。

1.4 發展里程碑

AVS2 超高清編碼實踐

以上是當虹公司超高清的發展里程碑,在其中可以看到當虹科技在2013年時候開始對4K和H.265超高清編碼算法進行研究,在2016年的時候我們發佈了4K超高清編碼,在2016-2017年時與許多電視臺合作做4K的實時直播,在2018年已經開始研發8K的實時編碼研發,而在2019年,當虹科技已經開始在多個場合發佈8K的雲轉碼產品。

1.5 參與5G/8K行業應用

AVS2 超高清編碼實踐

在未來的體育賽事,我們也會尋找合作伙伴來把5G/8K投入使用。

2. AVS2簡介

2.1 視頻壓縮標準進化歷史

AVS2 超高清編碼實踐

AVS2是中國高文老師帶隊創新的視頻標準,實際是與國際的HEVC對標的。這兩項的編碼工具和編碼性能是很接近的。

2.2 各代視頻標準的壓縮效率

AVS2 超高清編碼實踐

上圖展示的是視頻壓縮標準的三代進化歷史。第一代是從MPEG-1到MPEG-2,第二代是264和AVS+,第三代是HEVC 和AVS2。下一代的視頻壓縮標準很可能就是AVS3和H265,每一代的壓縮性能提高一倍,並且其適應的分辨率也是成倍增長。

2.3 AVS2主要特性

AVS2 超高清編碼實踐

以上是AVS2的主要特性。通過圖表對比,可以得知AVS2和H265的各項對比是很接近的,不過會比H265有所增強,比如幀內預測單元等。

2.4 AVS2編碼塊四叉樹劃分

AVS2 超高清編碼實踐

這是AVS2的編碼塊四叉樹劃分方法,這種方法和HEVC幾乎是一樣的,就是最大塊可以為64×64,一直可以向下劃分乘8×8。

2.5 AVS2/HEVC預測塊劃分

AVS2 超高清編碼實踐

AVS2和HEVC的預測塊的劃分方法中,其中的幀間預測劃分是大致一樣的。但是其中針對的不同領域,劃分標準會有不一樣,比如:AVS2的預測塊劃分分為幀內和幀間的兩種方式劃分。

2.6 AVS2產業鏈

AVS2 超高清編碼實踐

接下來介紹AVS2產業鏈的發展現狀。目前在電視領域,央視已經有了4K的衛星頻道並且播出,多地的有線頻道也在落地。在芯片方面,有國內的海思在解碼芯片方面大力支持,並且生產出Hi3796和Hi3798等機頂盒芯片。在編碼器方面,國內的幾家公司一直都有支持AVS2的使用並長時間投入商用。在政策方面,廣東省作為支持AVS2產業最大力度的省份,在2018年5月出臺了相關的政策助力發展。

AVS2 超高清編碼實踐

國家廣電總局在2018年8月還發布了《4K超高清電視技術應用實施指南》中指明AVS2作為唯一的視頻編碼格式。

3. AVS2超高清的編碼實踐框架和實踐優化

AVS2 超高清編碼實踐

在介紹AVS2超高清的編碼實踐框架之前我想先介紹當虹科技支持AVS2發展的理由。第一,AVS2非常高效,可以適應4K超高清編碼。之前的廣電以高清為主,而下一代廣電將會以超高清為主,那麼超高清才剛剛發展,它的標準與HEVC的標準是相似的,所以AVS2在廣電領域有機會可以大力的發展。第二,這個標準是完全國家自主知識產權,沒有專利風險。第三,國家政策的支持。第四,最重要的是產業鏈不成熟,現在沒有國外廠商支持AVS2,作為民族的企業必須大力的發展。

3.1 常見編碼器架構

AVS2 超高清編碼實踐

接下來介紹常見的編碼器架構,主要有五種,分別是純CPU架構、ASIC方案、FPGA方案、純GPU方案和CPU/GPU混合方案。純CPU架構的優點是CPU比較靈活並且可參考的開源方案比較成熟,缺點是算力不夠。第二種是ASIC專用編碼芯片方案,這個方案的優勢是算例比較強,如果量產的話性價比比較高,其缺點就是前期的開發成本比較高。第三種是FPGA方案,其優點是靈活且算例較多,缺點是成本比較高,開發難度比較大,需要專業的人才。第四種是純GPU方案,計算量比較大,計算能力比較強,其缺點是運行方式有限制,這種運行方式就是“單指令,多線程”。第五種就是CPU/GPU的混合方案,這個方案也是當虹公司主推的方案。這種方案就是CPU做串行的模塊,GPU做並行的模塊。這樣就可以各自發揮優勢,從而達到理想的效果。

3.2 當虹AVS2編碼器框架

AVS2 超高清編碼實踐

當虹AVS2的編碼框架一開始是和北京大學合作優化CPU,當虹公司主要負責GPU的加速引擎,在加速引擎中做了很多預分析,基本的運動模式,基本的模式選擇,GU,CU,TU的劃分。在GPU端做進一步的調優,因為GPU做出來的模式是初步模式,直接用於BD損失會比較大。

3.3 當虹選擇CPU/GPU框架

AVS2 超高清編碼實踐

當虹公司選擇CPU/GPU框架的原因是:第一,當虹公司主不具備FPGA的經驗,並且性價比不高,而對於NVIDIA的GPU是早期就有深入合作,相應的工程也有經驗。另外一方面,GPU和CPU有不同的優勢,公司是把GPU和CPU合併起來,從而達到最優的效果。

4. 當虹AVS2編碼優化

4.1 算法實現優化

AVS2 超高清編碼實踐

GPU的一次運算是以32個線程來並行執行,也就是一個Warp。每一個線程運行在一個CUDA core上。如果想其充分運行起來就要要求32個線程全部同時執行同一個指令,只有這樣GPU的能力才能充分利用起來;如果32個線程裡分支不一樣,其內部也是做串行的運算,也會導致效率低下。

所以算法基本實現過程首先先做算法深度的改造,讓其可以並行起來。做法就是把可以並行的模塊儘可能提取出來,與串行模塊隔開。比如,在預分析裡面用GPU做完全並行的計算。

第二步就是用GPU對預分析做並行運算,利用GPU計算能力強的特質。在GPU預分析做完後,CPU內部就可以對其進行調優,CPU調優會先判斷GPU的初步模式,如果模式足夠好,則跳過CPU裡的全部或者部分運算,如果不夠好則採用調優模式進行調優。調優部分有很多快速終止算法,有CU劃分,TU和ME的劃分,一些子像素的快速終止算法。其中對於CU劃分,當虹公司做了大量的數據統計,通過大數據,能夠判斷出快速算法的嘗試率和命中率的一些預值,從而來判斷當前的模式是否夠好。這個算法也對感知特性做了很多分析,用它來做碼率分配,進而實現合理地使用碼率。

4.2 平臺實現優化

AVS2 超高清編碼實踐

除了做了算法優化,當虹科技也對平臺做了很多優化。因為平臺是採用Intel的志強處理器,核心數字比較多。所以我們會大量使用多核並行編碼技術,同時使用幀級並行以及WPP幀內並行技術。幀級運行包括預分析和最後編碼板塊,所以運行度比較高,另外會使用Intel的X86的SIMD的彙編指令集。

4.3 GPU CUDA優化

AVS2 超高清編碼實踐

我們對於GPU的CUDA也會做一定的優化工作。第一,合理分配線程GRID/BLOCK的size;第二,使用Multiple Streams來提升GPU的併發度;第三,使用Pinned Memory來減少Host/GPU內存的copy時間,這個Pinned Memory就是配置鎖定的內存,用它去copy到GPU上就會使性能加快很多;第四,使用Coalesced內存訪問全局的內存來減少數據延時;最後還對線程塊內部頻繁訪問內存使用shareMemory內存來避免bank衝突,因為使用share Memory比他的全局內存會快上百倍,但是資源也是有限,所以要將share Memory用到真正的實處。第三、四、五是基於一條經驗,也就是GPU的並行計算能力非常強,但是性能瓶頸就在於內存的讀取IO這一部分。

5. 當虹未來規劃

AVS2 超高清編碼實踐

目前4K和8K的AVS2和HEVC都已經研發完成,當虹科技的下一步將會針對AVS3和VVC展開編碼,並計劃在2019年底前和北京大學實驗室、鵬程實驗室進行合作完成8KAVS3的編碼器。

AVS2 超高清編碼實踐

此外,除了學習編碼,當虹公司也在關注人工智能方面的技術,並且在深度學習方面做了一些嘗試。接下來第一步是做基於深度學習的視頻增強技術,利用它對視頻實現動態亮度調節,色度飽和度對比度調節,做一些去塊、去噪、銳化和抗鋸齒的工作來提升視頻畫質,以目前的結果來說效果還是不錯的。另外當虹科技也在嘗試做主觀視覺的編碼模型,在編碼器內部使用深度神經網絡,對各種CU劃分做嘗試,其效果也是不錯的。但是還是遠遠不夠,接下來在一塊會利用深度學習來研究怎樣和人的主觀視覺結合起來,讓編程碼率和碼流達到更好的主觀畫質。


分享到:


相關文章: