AVS3关键技术、性能和复杂度分析
本文由北京大學的范逵博士在LiveVideoStack線上分享第三季,第七期的內容整理而成,本次分享將主要從AVS3關鍵技術介紹、AVS3性能測試兩個方面介紹AVS3基準檔次中新采納的編碼工具,并分析這些編碼工具的性能和計算復雜度。
文 / 范逵
整理 / LiveVideoStack
?
?
大家好,我是來自北京大學的范逵,本次分享的主題是AVS3關鍵技術介紹、性能和復雜度分析。
?
?
首先做一個自我介紹,我于2019年博士畢業于北京大學,2018-2019年新加坡南洋理工大學訪問學者,2016-2019年間擔任MPEG Internet Video Coding(IVC)標準專題小組副主席,目前擔任AVS3標準參考軟件維護人。主要研究領域是視頻編解碼算法、視頻編碼快速算法以及圖像和視頻處理三個方面。
?
1.?AVS發展歷史
?
?
本次分享將主要從AVS發展歷史、AVS3關鍵技術介紹、AVS3性能測試和AVS3資料獲取四個部分展開。
1.1 AVS1與AVS+
?
?
AVS1指第一代AVS標準,制定起始于2002年,于2006年2月頒布,性能與同期國際標準MPEG-2相當。AVS+于2012年7月獲批成為廣電行標,性能與同期的MPEG-4 AVC/H.264相當。
?
1.2 AVS2及其產業化
?
?
第二代的AVS標準簡稱AVS2,于2016年5月被頒布為廣電行標,2016年的12月30日被頒布為國家標準,壓縮效率與國際標準H.265/HEVC相當,但在全I幀編碼以及監控場景編碼中性能優于HEVC。在產業化方面,AVS2視頻標準全面應用于IPTV和廣東省4K超高清,解碼芯片已由華為海思、晨星(Mstar)等研發并推向市場,廣播級AVS2超高清實時編碼器由深圳優微視覺等公司推向市場。
?
1.3 AVS3
?
?
說到AVS3,就不得不提AVS3的封閉開發。在去年十二月廈門會議后AVS標準工作組決定進行封閉開發,從去年的12月10日到2019年1月28日,歷時48天完成了AVS3第一階段標準制定任務,AVS3 Baseline Profile編碼性能相比AVS2和HEVC提升超過20%。2019年3月9日的青島會議上,AVS3的基準檔次起草完成,預計于2022年投入應用,我國的AVS3+5G+8K產業發展將領先全球部署。之后進行的標準制定工作是AVS3 High Profile,即AVS3第二階段標準,預計會在2020年6月制定完成,目標編碼性能比AVS2提升一倍,也就是在現有AVS3 Baseline Profile的基礎上提升20-30%的性能。
?
2.?AVS3 關鍵技術介紹
?
?
2.1 基礎塊劃分結構
?
?
AVS3采用了QT+BT+EQT的基礎塊劃分結構,在上一代標準(AVS2和HEVC)中采用的是四叉樹(QT)劃分將一個CU劃分為四個subCU。在AVS3中除了支持四叉樹劃分,還支持二叉樹(BT)和EQT劃分。其中,BT可以將一個CU劃分為左右/上下兩個subCU;EQT包含水平和豎直兩種工字型劃分方式,將一個CU劃分為4個subCU,該技術由字節跳動公司提出。
?
?
AVS3中QTBT+EQT基礎塊劃分結構在碼流中的表征方式如上圖所示。首先判斷是否為QT,如果是QT,直接進行四叉樹劃分,如果不是QT就需要進一步判斷是否不劃分,如果不劃分就結束判斷,如果需要劃分還要再判斷是EQT還是BT,無論是EQT還是BT都需要判斷是水平還是豎直劃分。
?
基礎塊劃分中很重要的一個部分是劃分約束,在AVS3中所包含的約束劃分為三種。第一種為劃分尺寸約束,主要是指QT、BT和EQT最大/最小可使用的CU尺寸,括號中的數值為AVS3參考軟件中設置的默認數值。除此之外的約束包括劃分深度,AVS3中最大劃分深度為6層;另外AVS3中編碼單元最大的寬高比是1:8;QT劃分要優先于BT/EQT劃分,一旦進入BT/EQT劃分就無法再進行QT劃分。
第二種約束是邊界約束,邊界約束有三個,在圖像右邊界的時候只能進行BT的豎直劃分,在圖像下邊界的時候只能進行BT的水平劃分,在圖像右下角邊界只能進行QT劃分。
第三種是VPDU的約束,VPDU約束更多是為了配合硬件實現的方便,如果當前單元出現了128x64/64x128的CU,就必須劃分成兩個64x64的CU。
?
2.2 幀間編碼工具
?
2.2.1 AMVR
?
首先介紹自適應矢量精度,簡稱AMVR,在上一代AVS和HEVC標準中,運動矢量的精度均為?像素,AVS3中新引入了?、1、2、4四種像素精度。在編碼端對這五個像素精度進行編碼,通過RDO過程選擇最優的運動矢量精度,并將對應的索引傳輸到解碼端。由于需要進行五次編碼嘗試,這會極大地增加編碼端的復雜度,所以在AMVR中引入了三種快速算法:提前跳出、基于歷史的MVR搜索策略以及對應不同的運動矢量精度設計了對運動估計的加速。AMVR由三星公司提出。
?
2.2.2 HMVP
?
HMVP是基于歷史信息的運動矢量預測,該方法由字節跳動公司提出。HMVP技術從先前編碼塊拷貝八個運動信息候選到FIFO中,FIFO保持不斷更新。上圖中間部分反映了FIFO以先進先出的方式進行更新的例子,在這個例子中FIFO的第三個HMVP候選與剛剛編碼完成的運動信息相同,這個重復的候選首先會被移除,在FIFO的尾部會加入當前編碼單元的運動信息。如果當前編碼單元的運動信息與FIFO中任意候選的運動信息均不相同,就會去掉FIFO中第一個候選,再將最新的運動信息加到FIFO末尾,保證FIFO中永遠保留八個最新的運動候選。
HMVP中的運動候選與AVS2中已有的運動候選一起進行標識,使用Unary的方式進行二值化。AVS2中包含了五個運動候選,但在AVS3中去掉了對稱模式,只剩余四個運動候選,再加上HMVP的8個候選一共是12個候選。
?
2.2.3 UMVE
?
UMVE技術,中文名為高級運動信息表達,該技術是在已經生成的運動候選基礎上進行偏移,從而得到更優的運動候選。例如上圖所示,將一個運動候選作為起始點,從上下左右四個方向進行搜索,偏移分別為?、?、1、2、4像素,起始點有兩個(2 base),四個偏移方向(4 direction)和5種offset,總共生成40個運動候選,該方法由三星公司提出。
2.2.4 AFFINE
?
已有的標準中支持的MV都是兩個參數的(即X方向和Y方向的偏移),這種運動模型稱為平移運動。4參數可以表達更豐富的運動模型,包括縮放、旋轉或者斜切,6參數代表Affine模型,可以表達更復雜的運動。在AVS3中的仿射運動補償支持4參數和6參數的運動模型,使用的運動矢量精度是1/16像素,針對尺寸大于16x16的CU,按照8x8的小塊進行運動補償。該技術由華為公司提出。
?
?
AVS3中的AFFINE技術可以分為AFFINE skip/direct和AFFINE inter兩個部分。AFFINE skip/direct就是使用當前塊周圍的一些信息從而導出AFFINE模型和當前塊的運動矢量,在目前的AVS3中最多支持5個AFFINE模式候選,并且需要將AFFINE index傳輸到解碼端。AFFINE skip/direct運動候選列表的構建主要分為三步,第一是從臨近AFFINE編碼單元拷貝Affine模型;第二是利用當前塊周圍角點的運動信息生成AFFINE模型;最后,如果當前AFFINE運動矢量候選沒有到達五個,就填充零。
AFFINE inter是在AFFINE skip/direct基礎上加入了MVD,每一個控制點均需傳輸MVD。
?
2.2.5 PBT
?
PBT是基于位置的變換,被應用于幀間預測殘差塊,可以更好地擬合幀間殘差特性。例如上圖中左下角四分之一的區域分別標識了0,1,2,3,他們對應的水平和豎直的變換組合如右表中所示,通過在不同區域使用不同的變換組合,實現更高效的殘差信號表達。PBT允許的變換類型包括DCT8和DST7。使用該方法的編碼單元尺寸最大為32x32,最小為8x8,且編碼單元長寬比不大于2。該方法由清華大學提出。
2.3 幀內編碼工具
?
2.3.1 Intra DT
?
Intra Derived Tree簡稱Intra DT,叫做幀內衍生模式,這個方法主要是在編碼單元的基礎上加上了PU的概念,該方法總共支持六種PU劃分(水平/豎直各三種),使用非對稱和長條形劃分方式,提升幀內編碼效率。使用條件包括編碼單元尺寸最大64x64,最小16x16,編碼單元長寬比小于4,且當前編碼單元使用IPF時,禁用Intra DT。該方法由清華大學提出。
?
IPF是由北大深研院提出的,該方法針對的問題是目前幀內預測中會忽略一些參考像素點與當前預測單元之間的關聯性,通過預測濾波的方式可以有效增強空間關聯性,從而提升幀內預測精度。如左圖所示,預測方向是從右上到左下,生成當前幀內預測塊主要使用的是MRB這一條參考像素點,預測樣本塊的左側因為沒有考慮與URB的關聯性,所以預測效果較差。為了解決這一問題,IPF使用了URB中的參考像素對幀內預測塊進行濾波,濾波器包括三種類型,分別為水平、豎直的2-tap濾波器和同時對水平和垂直方向濾波的3-tap濾波器,3-tap濾波器被應用在非角度預測模式以及右下對角模式。
?
?
TSCPM是一種分量間預測技術,通過探索不同分量之間的線性關系去除分量間冗余,如公式所示,recL代表亮度分量的重建值,通過兩個線性參數α和β生成chroma的預測值predC。之所以稱該技術是Two-Step,是因為它分為兩個步驟執行。首先使用Co-located luma塊,通過參數α和β生成尺寸相同的臨時預測塊;第二步再進行下采樣,得到色度分量的預測值,該方法由字節跳動公司提出。
?
2.4 濾波器
?
2.4.1 deblock去塊濾波器
?
?
在AVS3中直接繼承了AVS2中的去塊濾波方案,但由于嚴格的濾波條件,AVS2中現有的去塊濾波方案常常會引入嚴重的塊效應。這個問題在AVS3中的deblock去塊濾波器中得到解決。首先濾波條件被放寬并且對濾波器系數進行了優化,另外簡化了色度分量的去塊操作,從而降低了色度濾波的計算復雜度。
?
3.?AVS3性能測試
?
3.1 測試條件
?
?
性能測試采用了AVS3的通用測試條件進行測試,軟件使用了AVS3的參考軟件HPM-3.3,對比軟件為RD-19.5和HM-16.20,配置使用random access(RA)。
3.2 Basic structure
?
?
AVS3基礎結構相對于AVS2的平均性能增益為10.56%。基礎結構不僅包括基礎塊劃分結構,還包括對參考幀結構的優化和編碼端決策的優化。AVS3的編碼時間和解碼時間相比AVS2均有下降,尤其是解碼時間縮短為AVS2參考軟件的一半。原因是AVS3的參考軟件HPM已經經過了部分優化,該參考軟件由北大深研院和華為公司共同提出。在HPM中主要包含三部分優化,第一個部分是所設計的數據結構較為簡單,第二個是尋址方式更加快捷,第三個是在HPM中已經對關鍵的模塊進行了數據并行加速。
相比HEVC,AVS3的編碼性能增益為9.45%,編碼時間是HEVC的一倍,解碼時間略有上升。
?
?
之后進行tool-off測試,即在AVS3的參考軟件中只關閉單個工具的性能,tool-off的實驗結果基本可以反映單個工具在AVS3標準中的性能。上圖中顯示HMVP、UMVE、AFFINE和AMVR的性能分別為0.81%、0.94%、1.94%和3.87%。圖中關閉UMVE后編碼時間上升,這是因為UMVE和HMVP的運動候選是放在一起優化的,使用SATD進行粗選對編碼端進行加速,隨后再使用RDO進行編碼決策。由于這個快速算法是放在UMVE工具下,所以在關閉UMVE之后時間有所上升。AMVR關閉之后時間減少30%,由此可見AMVR對時間復雜度的影響是非常大的。
?
?
IntraDT和IPF的性能分別是0.4%和0.71%,TSCPM在Y/U/V分量中的性能分別是0.51%、9.28%和9.20%,由于TSCPM主要是對色度分量的優化,因此它的主要性能來自于色度。IntraDT、IPF和TSCPM都是針對Intra的工具,所以在random access的配置下性能不是太高,IntraDT、IPF在All Intra配置下的性能分別是0.6%和1.4%。
?
?
總體性能對比結果來看,AVS3相比AVS2編碼性能高出23.52%,時間復雜度增加了一倍,解碼復雜度是AVS2參考軟件的一半。相對HEVC平均編碼性能提高了22.25%,時間復雜度大概是HEVC的7倍,解碼時間略有上升。
?
4.?AVS3資料獲取
?
LiveVideoStack? 招募
LiveVideoStack正在招募編輯/記者/運營,與全球頂尖多媒體技術專家和LiveVideoStack年輕的伙伴一起,推動多媒體技術生態發展。同時,也歡迎你利用業余時間、遠程參與內容生產。了解崗位信息請在BOSS直聘上搜索“LiveVideoStack”,或通過微信“Tony_Bao_”與主編包研交流。
LiveVideoStackCon 2019北京 音視頻技術大會 初版日程現已上線,掃描圖中二維碼或點擊【閱讀原文】了解大會最新日程。
總結
以上是生活随笔為你收集整理的AVS3关键技术、性能和复杂度分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【大会】没有什么比把码率降低更爽的了
- 下一篇: 【大会】技术决策背后的商业逻辑