王 壘 周開倫 林 濤
(同濟(jì)大學(xué)超大規(guī)模集成電路研究所,上海 200331)
HEVC是繼H.264后新一代的視頻編碼標(biāo)準(zhǔn),著重于高清視頻的高效編碼。同濟(jì)大學(xué)超大規(guī)模集成電路研究所在HEVC基礎(chǔ)上提出了一種編碼單元自適應(yīng)雙編碼器方案。兩種編碼方案會(huì)對(duì)同一原始數(shù)據(jù)單元進(jìn)行處理,并通過比較編碼后的RDCost(Rate-Distortion Cost),最終決定哪種編碼方案會(huì)被選中并輸出到碼流中,再進(jìn)行CABAC熵編碼。
CABAC根據(jù)信源符號(hào)出現(xiàn)的概率分布特性進(jìn)行壓縮編碼,使用算術(shù)編碼的壓縮算法通常先要對(duì)輸入符號(hào)的概率進(jìn)行估計(jì),然后再編碼。這個(gè)估計(jì)越準(zhǔn),編碼結(jié)果就越接近最優(yōu)的結(jié)果。編碼單元自適應(yīng)雙編碼器沿用了HEVC標(biāo)準(zhǔn)中的某一固定值,這種概率的初始化方法雖然算法簡便,但沒有利用先驗(yàn)知識(shí),會(huì)影響數(shù)據(jù)壓縮效率。本文用各種屏幕圖像做實(shí)驗(yàn),統(tǒng)計(jì)出適合雙編碼器的最佳初始概率值,使其更接近信源的實(shí)際概率分布,提高壓縮性能。
二進(jìn)制算術(shù)編碼的原理與一般算術(shù)編碼一樣,所不同的是:在二進(jìn)制算術(shù)編碼中編碼序列只有“0”和“l(fā)”兩種符號(hào),所涉及的概率也只有P(O)和P(1)。在編碼過程中,輸入數(shù)據(jù)流中的信源符號(hào)被分為大概率符號(hào)(MPS)和小概率符號(hào)(LPS)。若MPS為“0”,則LPS為“1”;反之,若MPS為“1”,則LPS為“0”。概率區(qū)間分成兩份,一份是MPS的編碼區(qū)間,一份是LPS的編碼區(qū)間,區(qū)間長度由每個(gè)信源符號(hào)的概率決定,LPS的編碼區(qū)間總應(yīng)該小于MPS的編碼區(qū)間。若把LPS的概率記為Q,則MPS的概率記為P=1-Q。在編碼進(jìn)程中,如果有連續(xù)的LPS輸入,有可能出現(xiàn)Q>P的情況,此時(shí)MPS和LPS所代表的信源符號(hào)要互換,以確保MPS所代表的信源符號(hào)的概率始終大于LPS所代表的信源符號(hào)的概率。
CABAC方案可分為以下四個(gè)基本過程:(1)語法元素的二進(jìn)制化;(2)context modeling;(3)概率的自適應(yīng)更新;(4)算術(shù)編碼。根據(jù)這個(gè)過程來設(shè)計(jì)CABAC熵編碼器,其結(jié)構(gòu)圖1所示:
圖1 CABAC熵編碼器結(jié)構(gòu)框圖
進(jìn)入“主路編碼”的二進(jìn)制符號(hào),首先確定其所屬的Context Model,接下來判斷其屬于MPS或LPS,確定其概率,完成區(qū)間劃分、新的編碼區(qū)間的確定以及區(qū)間下限的確定,而后更新其對(duì)應(yīng)概率模型下的概率分配,最后,為下一個(gè)二進(jìn)制符號(hào)完成 Context Model的更新。關(guān)于概率狀態(tài),在CABAC中,對(duì)每一待編碼的比特位(bin)的值(0或1),用MPS(Most Probable Symbol)表示最有可能出現(xiàn)的狀態(tài),LPS(Lest Probable Symbol)表示最不可能出現(xiàn)的狀態(tài)。這樣只需一個(gè)變量值Pσ保存LPS出現(xiàn)的概率大小,而對(duì)應(yīng)MPS的概率大小可由(1-Pσ)表示。對(duì)于CABAC的算術(shù)編碼中,根據(jù)先驗(yàn)知識(shí)為LPS的概率設(shè)定了128個(gè)代表概率,認(rèn)為LPS的概率值只在這128個(gè)代表概率之間變化,而不會(huì)取其它值,變化過程可參考HEVC官方代碼。在CABAC中所有的概率模型都是自適應(yīng)模型(σ=127除外),在每個(gè)符號(hào)被編碼后,概率估計(jì)會(huì)被更新。在CABAC中,每編碼完一個(gè)比特位后,都要進(jìn)行概率更新,從而得到新的概率狀態(tài),實(shí)現(xiàn)Context自適應(yīng)編碼,概率狀態(tài)的自適應(yīng)更新發(fā)生在對(duì)每一個(gè)二進(jìn)制符號(hào)編碼之后。根據(jù)以上分析,可以把 “0”“1”概率分布的經(jīng)驗(yàn)值作為其初始概率,這種方法利用了概率統(tǒng)計(jì)的先驗(yàn)知識(shí),后面實(shí)驗(yàn)證明采用這種概率狀態(tài)的初始化方法數(shù)據(jù)的壓縮效率要高于不利用先驗(yàn)知識(shí)直接把“概率狀態(tài)”σ的初值定為某一統(tǒng)一固定值的方法。
現(xiàn)有的編碼單元自適應(yīng)雙編碼器方案沿用了 HEVC標(biāo)準(zhǔn)中的上下文模型初始概率值,即為某一統(tǒng)一固定值,標(biāo)準(zhǔn)中的相關(guān)代碼如下(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三行分別對(duì)應(yīng)B、P、I幀,且六位相互獨(dú)立,與初始概率值有對(duì)應(yīng)關(guān)系,該初始概率未考慮雙編碼器對(duì)屏幕圖像處理的統(tǒng)計(jì)特性,沒有充分利用概率統(tǒng)計(jì)的先驗(yàn)知識(shí),因此不是最佳值。由于I幀描述了圖像背景和運(yùn)動(dòng)主體的詳情,所占數(shù)據(jù)信息量較大,故本文只優(yōu)化I幀,以11幅屏幕圖像為測試圖像,采用0~255依次取值,同時(shí)參考屏幕圖像編碼元素“0”“1”概率分布與上下文模型初始概率值關(guān)系的方法,通過計(jì)算BD-rate(有現(xiàn)成VB宏代碼,可直接用于EXCEL中)進(jìn)行大量測試比較。
通過實(shí)驗(yàn)發(fā)現(xiàn),六位最優(yōu)值依次為:140、123、155、94、78、110,以01p0448wv_704x448.yuv圖像為例(其他圖像有類似結(jié)果),用原來的六位139和優(yōu)化值進(jìn)行BD-rate比較,結(jié)果如下:
圖2 優(yōu)化前后對(duì)比
BD-rate為負(fù)值且絕對(duì)值越大,說明壓縮性能提升越多。
編碼單元自適應(yīng)雙編碼器上下文模型初始概率沿用了HEVC標(biāo)準(zhǔn)中的某一固定值,這種概率的初始化方法雖然算法簡便,但沒有利用先驗(yàn)知識(shí),會(huì)影響數(shù)據(jù)壓縮效率。本文通過實(shí)驗(yàn)發(fā)現(xiàn),結(jié)合雙編碼器對(duì)屏幕圖像壓縮性能較好的特點(diǎn),利用經(jīng)驗(yàn)信息,統(tǒng)計(jì)出適合雙編碼器的較佳的上下文模型初始概率值,使其更接近信源的實(shí)際概率分布,確實(shí)能提高壓縮性能,并且如果對(duì)每個(gè)語法元素進(jìn)行CABAC熵編碼時(shí)都進(jìn)行這種優(yōu)化,則壓縮性能提升是相當(dāng)可觀的。
[1] 張培君,王淑慧,周開倫等.融合全色度LZMA與色度子采樣HEVC的屏幕圖像編碼[J].電子報(bào),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.