鄭唯


【摘要】視頻編碼技術是當今電視節目制作中比較重要的技術之一,是隨著視頻技術,計算機技術和通信技術的發展而不斷發展的。本文介紹了視頻編碼技術的發展歷程和最新面向SDR和HDR標準的視頻編碼技術和主要編碼工具。
【關鍵詞】視頻 ;壓縮 ;SDR視頻編碼;HDR視頻編碼
中圖分類號:TN929 ? ? ? ? ? ? ? ? ? ?文獻標識碼:A ? ? ? ? ? ? ? ? ? ? DOI:10.12246/j.issn.1673-0348.2021.09..008
視頻編碼技術在當今電視節目制作中占據著不可或缺的地位。最初的電視節目制作,都是采用的模擬信號,即包含亮度和色度信息的復合模擬信號,用磁帶進行線性編輯制作后直接重放播出。隨著計算機技術的飛速發展,出現了基于計算機系統的非線性編輯軟件,開始有了視頻圖像的壓縮編碼技術,并以此技術將前期攝像設備上實錄的原始節目素材上載采集到計算機系統中存儲,然后在計算機網絡上進行非線性編輯制作,最后再依托計算機網絡進行傳輸并解碼后播出。這其中的視頻編碼技術已經成為現今節目制作中比較重要的技術之一。
視頻編碼首先需要有一個國際通用的標準,國際電信聯盟ITU是比較著名的制定視頻編碼國際標準的組織,另外還有國際標準化組織ISO和國際電工委員會IEC。1988年,ISO和IEC聯合成立了動態圖像專家組MPEG(Moving Picture Expert Group),當時世界上主流的視頻編碼標準基本上都是他們提出來的。而ITU提出了H.261、H.262、H.263等編碼標準,統稱為H.26X系列,主要應用于實時視頻通信領域。2001年ITU和ISO/IEC成立了一個聯合小組JVT(Joint Video Team),即聯合視頻工作組。JVT致力于制定新一代視頻編碼標準,推出了包括H.264在內的一系列的視頻編碼標準,壓縮率可以達到300到400比1。其最新推出的HEVC編碼,也就是現在開始流行的H.265,相比H.264有著極大的性能提升。H.265所占帶寬要比H.264減少一半,占用的存儲量也可以節省一半,同時畫質卻能夠更加細膩,并可以完美向下兼容H.264。
隨著SDR和HDR視頻的出現,在HEVC的基礎上又出現了一種新型的視頻編碼機制,即面向標準動態范圍SDR和高動態范圍HDR的視頻編碼技術。這就是剛剛問世的H.266/VVC的雛形。
JVET(the joint video exploration team)聯合視頻開發團隊從2015年起就開始開發比HEVC更加節省帶寬而又不降低畫面質量的視頻編碼技術。2017年正式開始開發HEVC后的下一代視頻編碼技術,其范疇包含SDR視頻,HDR視頻以及360度視頻編碼技術。其中SDR編碼解碼技術的底層核心設計理念就是基于JVET聯合視頻開發團隊開發的相關軟件的JEM模型。通過對JEM模型的一些關鍵編碼工具的大幅簡化,從而達到可以憑借可忽略的編碼性能損失來降低硬件在平均和最壞情況下的設計復雜度。同時,還采用了兩種編碼技術來進一步提高編碼效率,一個稱做多類型樹技術(MTT),另一個稱做解碼器側內部模式推導(DIMD)。
對于HDR視頻編碼這方面,除了有SDR視頻編碼所用的工具外,還用了另外兩種編碼工具來進一步提高HDR視頻的編碼效率。這兩種工具就是:環路內重整形工具和基于亮度的QP預測模塊。
實測結果表明,和HEVC相比較,在普通編碼復雜度的情況下,新的視頻編解碼有著更高的編碼效率。在隨機獲取方式下,對于SDR視頻序列,可以分別比上一代HEVC的HM模型和JVET的JEM模型的錨點平均節省35.7%和4.00%的比特率,解碼時間分別降低了263%和33%。對于HDR視頻序列,通過配置環內重整形工具來盡可能地提高HDR的客觀指標,從而使HDR PQ內容的wPSNRY指標比HM模型和JEM模型分別平均節省31.3%和4.6%的比特率。
下面就來介紹一下面向SDR和HDR的新型視頻編碼技術。
1. 序言
應用當時最先進的視頻編碼標準的HEVC(High Efficency Video Coding),在同等視頻質量下可以比上一代視頻編碼標準MPEG-4和H.264節省50%的比特率。盡管HEVC標準已經可以提供更大的壓縮能力,但由于SDR和HDR視頻的出現,并且還有很多專門的用戶需求,需要在不降低用戶視覺體驗的前提下,進一步降低視頻帶寬和編解碼時間,由此開始了對下一代視頻編碼技術的開發。本文介紹的就是面對最近剛剛出現的SDR和HDR視頻的最新型的視頻編碼技術。
SDR的核心編碼解碼是建立在JEM模型上的。JEM模型能夠相比于HEVC顯著地提高編碼效率,但是也會大大地增加了編碼的復雜性。在隨機獲取的情況下,JEM的錨點要比HEVC的錨點降低了33%的帶寬傳輸率,但是它的編碼時間幾乎是后者的8倍,解碼時間幾乎是后者的7.6倍。解碼端的復雜性是否增加是十分重要的一點,因為許多的視頻流應用,視頻內容的編碼只需一次或有限幾次,但在不同的終端設備上解碼則是需要許多次的。因此我們的目的應該是在不降低性能的前提下盡可能地降低解碼的復雜度。為此,SDR的編解碼工具力求大幅簡化JEM模型中的編解碼工具,具體工具包括:幀率上變換FRUC,解碼器側運動矢量細化DMVR,雙向光流BIO,重疊塊運動補償OBMC,局部亮度補償LIC,高級時域運動矢量預測ATMVP,空時運動矢量預測STMVP以及自適應環路濾波器ALF。此外,還有另外兩種編碼技術被應用在SDR核心編碼中來進一步提高編碼效率,即多類型樹(MTT)技術和解碼器側內部模式推導(DIMD)。
對于HDR視頻編碼,SDR編解碼技術是它的核心編碼引擎。在這之上,還增加了兩個主要編碼工具:環路內重整形工具和基于亮度的QP預測工具,用以進一步提高HDR視頻編碼效率。
2. SDR專用編碼工具
SDR的編碼解碼機制是基于JEM-7.0模型的相關軟件。并且,對JEM模型的一些關鍵解碼技術做了很大的簡化,其中包括簡化的FRUC,簡化的DMVR,簡化的BIO,簡化的OBMC,簡化的LIC,簡化的ATMVP和STMVP以及簡化的ALF。這些簡化同時考慮到了降低平均復雜度和最壞情況下的復雜度。除此之外還有另外兩項編碼技術即MTT和DIMD,用以進一步提高編碼效率。下面簡要說一下簡化的FRUC和簡化的OBMC,以及簡化的LIC。
2.1簡化的幀率上變換FRUC
為了節省標注運動信息的一些開銷,JEM-7.0模型中的內部編碼塊可以支持FRUC模式。當FRUC模式生效時,編碼塊的運動矢量(MVs)部分是不被標注的,這些運動矢量會在解碼的時候經特定的方式推導出來。JEM-7.0中有兩種FRUC模式。當在模板匹配模式下時,這些運動矢量信息是從一系列的待選MV表得出,這些MV表信息是通過把一個編碼單元CU的相鄰重建樣本信息和實時參照圖像的參照塊相鄰的重建樣本信息的差異做最小化來得出。當在雙向匹配模式下時,這些運動矢量信息是通過把兩個不同時序參照圖像中的不同運動軌跡的兩個參照塊的差異做最小化而得出。因此,SDR編碼機制為了簡化這個過程,減少待選的運動矢量的個數,使用了一個運動矢量聚類的方法來降低FRUC模式的檢索復雜度。這個運動矢量聚類的方法包括三個步驟:(1)參照圖像的選取;(2)MV的適配和修正;(3)MV的聚類。
2.1.1.參照圖像的選取
JEM-7.0的FRUC運動搜索可以擁有多個參照圖像。但是參照圖像的增多卻又會增加對存儲器訪問的帶寬的占用。為了解決這個問題,可以采取在FRUC運動搜索中的參照圖像序列中選取一個最頻繁的作為參照圖像的辦法來達到上述目的。
2.1.2. MV的適配和修正
參照圖像選好以后,就可以把最初的候選MV適配到所選擇的參考圖像中去來更新初始候選MV列表。由于MV適配后可能會有多個候選MV的值是相同的,因此在這里我們可以對MV進行修正來去除冗余的候選MV,從而保證只保留互不相同的候選MV,進一步進行簡化。
2.1.3. MV的聚類
為了降低FRUC運動搜索的運算復雜度,我們還采用了一個稱作MV聚類的方法來減少被測試的候選MV數量。具體是在進行FRUC運動搜索時,通過按照相似的原則對候選MV進行分組,然后只使用每組中最靠近中間值的那個候選MV來實現,從而達到對FRUC的簡化。
2.2. 簡化的重疊塊運動補償OBMC
JEM-7.0模型使用OBMC來提高編碼效率和去除塊失真。OBMC可以適用于所有內部編碼單元(CU)以及除去右面和底部邊界以外的所有邊界。而且,當一個CU在子塊模式下(如FRUC,ATMVP和STMVP)被編碼時,OBMC適用于子塊的所有四個邊界。不同于JEM-7.0中OBMC是以光柵掃描順序來處理CU內部子塊的方式,這里的OBMC采用分兩步的方法。第一步,被稱作“邊緣OBMC”,使用與當前CU相鄰CU的MV來調整當前CU頂部/左面邊緣的樣本。如果CU不是在子塊模式下編碼,OBMC進行完第一步操作就結束了。否則繼續進行第二步,即執行“內部OBMC”操作。在第二步操作中,樣本中的每個子塊,除了在第一步已經調整過的CU邊界樣本,子塊中的頂部,左部,底部和右部邊界的樣本,都要用同一CU中相鄰子塊的MV進行調整。這種OBMC方式,相鄰子塊的MV很可能是相同的,因此,使用這些MV的OBMC可以用一個大型塊的方式合并為一個MC(運動補償),從而降低操作的復雜度。基于這種考慮,使用了塊編組的方法來減少OBMC中所包含的MC數量。具體的說,就是在OBMC的邊界處理過程中,位于沿著同一個CU邊界(頂或底),并有同樣的運動方式的相鄰的4x4個相連塊,即被編組為一個塊組;對于每一個塊組,只執行一個MC過程。對于內部OBMC的處理,子塊的大小要與用于子塊級運動推導中所使用的大小相一致。下圖即這種簡化的OBMC處理過程,箭頭和陰影分別表示所用的MV和每一步進行調整的樣本區域。
2.3. 簡化的局部亮度補償LIC
LIC是當JEM模型中出現局部亮度變化時進行亮度補償所用的一種編碼工具。在LIC模式啟動時,一個CU(編碼單元)的各個樣本將根據當時它相鄰圖像的重建樣本進行預測。對于雙向預測CU,在JEM-7.0模型中,LIC的參數值是按兩個方向分別進行估算和使用。然后,合并這兩個LIC并修正預測信號從而得出雙向預測信號。因而JEM-7.0模型是需要兩個獨立的LIC處理過程來進行CU的雙向預測的。SDR編碼機制為了降低這種復雜性,對LIC進行了簡化,具體辦法是首先生成雙向預測信號,然后在這個雙向預測信號上只進行一次的LIC參數估算。最后,把這個LIC參數值應用到雙向預測信號上。下圖是雙向預測過程在JEM-7.0和簡化的LIC下的對比示意圖。
3. HDR特定編碼工具
3.1. 環內亮度重整形
環內重映射(重整形)采用重新修正編碼環路內的亮度編碼值來獲得更好的HDR編碼效率。環內亮度重整形工具是以一對LUT表的形式來工作。只需對這一對LUT表中的一個作為參考值,另一個就可以依據這個參考值,通過計算來獲得。
每個LUT表都是個一維,10位,1024個入口的映射表,即1D-LUT表。其中的一個LUT表是一個正向LUT表,即FwdLUT,它把輸入的亮度編碼值Yi轉換為值Yr。另一個LUT表是反向LUT表,InvLUT,它把轉換后的編碼值Yr映射為輸入值Yi的最終重建值。經過這種配置的LUT表可以更好地優化視頻的主觀質量或客觀指標。
對于幀內片重映射,只使用反向LUT表InvLUT,而對于幀間片重映射,則正向LUT表和反向LUT表都要使用,具體做法是在幀內片和幀間片循環過濾之前,使用盡可能低的復雜度配置的LUT表來進行這個重映射。
3.2. 基于亮度的QP預測
使用空間亮度相關QP適配器(LumaDQP)的同時,我們使用基于亮度的QP預測來有效地減少deltaQP句法比特率的過度增長。這是基于CU平均預測亮度值與原始亮度值十分接近的假設前提之下的。在這種情況下,當接收到deltaQP句法后,解碼器就可以按照一個特定的流程得出那個CU實際編碼的QP值。
參考文獻:
[1]周蕓胡瀟郭曉強.H.266/VVC視頻編碼圖像劃分技術研究.《廣播與電視技術》2019-11.
[2]陳璐俊郁梅等.面向多用戶的高動態范圍視頻動態范圍可分級編碼.《光電子激光》2018-08.