王 壘 周開倫 林 濤
(同濟大學超大規模集成電路研究所,上海 200331)
HEVC是繼H.264后新一代的視頻編碼標準,著重于高清視頻的高效編碼。同濟大學超大規模集成電路研究所在HEVC基礎上提出了一種編碼單元自適應雙編碼器方案。兩種編碼方案會對同一原始數據單元進行處理,并通過比較編碼后的RDCost(Rate-Distortion Cost),最終決定哪種編碼方案會被選中并輸出到碼流中,再進行CABAC熵編碼。
CABAC根據信源符號出現的概率分布特性進行壓縮編碼,使用算術編碼的壓縮算法通常先要對輸入符號的概率進行估計,然后再編碼。這個估計越準,編碼結果就越接近最優的結果。編碼單元自適應雙編碼器沿用了HEVC標準中的某一固定值,這種概率的初始化方法雖然算法簡便,但沒有利用先驗知識,會影響數據壓縮效率。本文用各種屏幕圖像做實驗,統計出適合雙編碼器的最佳初始概率值,使其更接近信源的實際概率分布,提高壓縮性能。
二進制算術編碼的原理與一般算術編碼一樣,所不同的是:在二進制算術編碼中編碼序列只有“0”和“l”兩種符號,所涉及的概率也只有P(O)和P(1)。在編碼過程中,輸入數據流中的信源符號被分為大概率符號(MPS)和小概率符號(LPS)。若MPS為“0”,則LPS為“1”;反之,若MPS為“1”,則LPS為“0”。概率區間分成兩份,一份是MPS的編碼區間,一份是LPS的編碼區間,區間長度由每個信源符號的概率決定,LPS的編碼區間總應該小于MPS的編碼區間。若把LPS的概率記為Q,則MPS的概率記為P=1-Q。在編碼進程中,如果有連續的LPS輸入,有可能出現Q>P的情況,此時MPS和LPS所代表的信源符號要互換,以確保MPS所代表的信源符號的概率始終大于LPS所代表的信源符號的概率。
CABAC方案可分為以下四個基本過程:(1)語法元素的二進制化;(2)context modeling;(3)概率的自適應更新;(4)算術編碼。根據這個過程來設計CABAC熵編碼器,其結構圖1所示:

圖1 CABAC熵編碼器結構框圖
進入“主路編碼”的二進制符號,首先確定其所屬的Context Model,接下來判斷其屬于MPS或LPS,確定其概率,完成區間劃分、新的編碼區間的確定以及區間下限的確定,而后更新其對應概率模型下的概率分配,最后,為下一個二進制符號完成 Context Model的更新。關于概率狀態,在CABAC中,對每一待編碼的比特位(bin)的值(0或1),用MPS(Most Probable Symbol)表示最有可能出現的狀態,LPS(Lest Probable Symbol)表示最不可能出現的狀態。這樣只需一個變量值Pσ保存LPS出現的概率大小,而對應MPS的概率大小可由(1-Pσ)表示。對于CABAC的算術編碼中,根據先驗知識為LPS的概率設定了128個代表概率,認為LPS的概率值只在這128個代表概率之間變化,而不會取其它值,變化過程可參考HEVC官方代碼。在CABAC中所有的概率模型都是自適應模型(σ=127除外),在每個符號被編碼后,概率估計會被更新。在CABAC中,每編碼完一個比特位后,都要進行概率更新,從而得到新的概率狀態,實現Context自適應編碼,概率狀態的自適應更新發生在對每一個二進制符號編碼之后。根據以上分析,可以把 “0”“1”概率分布的經驗值作為其初始概率,這種方法利用了概率統計的先驗知識,后面實驗證明采用這種概率狀態的初始化方法數據的壓縮效率要高于不利用先驗知識直接把“概率狀態”σ的初值定為某一統一固定值的方法。
現有的編碼單元自適應雙編碼器方案沿用了 HEVC標準中的上下文模型初始概率值,即為某一統一固定值,標準中的相關代碼如下(posslot編碼部分):
static const UChar
INIT_DICTCODE_POSSLOT_CTX[3][NUM_DICTCODE_POSSLOT_CTX]={{139,139,139,139,139,139},{139,139,139,139,139,139},{139,139,139,139,139,139}};
其中的139三行分別對應B、P、I幀,且六位相互獨立,與初始概率值有對應關系,該初始概率未考慮雙編碼器對屏幕圖像處理的統計特性,沒有充分利用概率統計的先驗知識,因此不是最佳值。由于I幀描述了圖像背景和運動主體的詳情,所占數據信息量較大,故本文只優化I幀,以11幅屏幕圖像為測試圖像,采用0~255依次取值,同時參考屏幕圖像編碼元素“0”“1”概率分布與上下文模型初始概率值關系的方法,通過計算BD-rate(有現成VB宏代碼,可直接用于EXCEL中)進行大量測試比較。
通過實驗發現,六位最優值依次為:140、123、155、94、78、110,以01p0448wv_704x448.yuv圖像為例(其他圖像有類似結果),用原來的六位139和優化值進行BD-rate比較,結果如下:

圖2 優化前后對比
BD-rate為負值且絕對值越大,說明壓縮性能提升越多。
編碼單元自適應雙編碼器上下文模型初始概率沿用了HEVC標準中的某一固定值,這種概率的初始化方法雖然算法簡便,但沒有利用先驗知識,會影響數據壓縮效率。本文通過實驗發現,結合雙編碼器對屏幕圖像壓縮性能較好的特點,利用經驗信息,統計出適合雙編碼器的較佳的上下文模型初始概率值,使其更接近信源的實際概率分布,確實能提高壓縮性能,并且如果對每個語法元素進行CABAC熵編碼時都進行這種優化,則壓縮性能提升是相當可觀的。
[1] 張培君,王淑慧,周開倫等.融合全色度LZMA與色度子采樣HEVC的屏幕圖像編碼[J].電子報,2013,(1).
[2] Sze, V.;Chandrakasan,A.P.,“Joint algorithm-architecture optimization of CABAC to increase speed and reduce area cost”[C].2011 IEEE International Conference,pp.1577-1580,May 2011.
[3] Karwowski, D.,“Improved Adaptive Arithmetic Coding for HEVC Video Compression Technology”[C]. Lecture Notes in Computer Science,pp.121-128, 2012.