彭金虎,岑 峰
(同濟大學(xué) 電子與信息工程學(xué)院,上海 201804)
雖然H.264/AVC[1]視頻編碼標準采用很多新的編碼方案,在現(xiàn)有的視頻編解碼取得了很好的編碼效果,但是它的編碼單元(CU)仍然固定為 16像素×16像素的宏塊 (MB), 包含 16個 4像素×4像素或者 8個 8像素×8像素變換塊,然而在編碼器處理高分辨率的圖像時,運動估計(ME)和運動補償(MC)與CU大小只有很小的相關(guān)性。 因此,HEVC(High Efficiency Video Coding)[2]中,CU在16像素×16像素MB的基礎(chǔ)上進行了擴展,CU的大小可以為 8像素×8像素、16像素×16像素、32像素×32像素和64像素×64像素,對CU的預(yù)測,可以將CU分割為預(yù)測單元(PU),每個PU可以分割為更小的 PU,假設(shè) CU 大小為 2N×2N (N=4,8,16,32),PU 可以分割為 2個 N×2N或者 2N×N或 4個 N×N像素塊,再分割為非 對 稱 模 式下,PU 可 以 為 nR×2N、nL×2N、2N×nDe 和2N×nU。同樣,HEVC中處理變化和量化部分有相應(yīng)的變換單元(TU),TU可以為 4像素×4像素、8像素×8像素、16像素×16像素和 32像素×32像素。
歸并技術(shù)應(yīng)用于CU單元在作RDO運算之前,用于快速決定CU的預(yù)測模型,其中的并行運算可以降低HM編碼端吞吐量過大的問題,提高視頻編碼效率。參考文獻[3]提出了歸并技術(shù)對不同CU層編解碼效率的提升,由于8像素×8像素CU占據(jù)整體 CU的54%,大塊CU的歸并技術(shù)的應(yīng)用,導(dǎo)致PSNK值有較大的下降。參考文獻[4]提出了只對8像素×8像素CU進行歸并技術(shù)的應(yīng)用,并在B幀上得到了很好的效果,將像素的Y、U與 V的BD-rate提升了0.1%、0.1%與 0.1%,解碼時間平均降低了12%。在本文中,將檢測及驗證歸并技術(shù)在低延遲情況下對P幀的影響,并分析P幀中歸并技術(shù)的并行運算原理。
在決定CU編碼模型和獲取CU的編碼列表前,HEVC會對當前CU做歸并運算,提前決定CU的預(yù)測列表,然后才對每個CU作RDO運算,選擇最佳的編碼模型。而RDO的運算必須對當前CU作運動估計運算,HEVC編碼器中歸并候選列表(MCL)的獲取速度會影響ME的計算,HM5中每個PU都有自己的MCL,一個64像素×64像素的CU有539個MCL,嚴重阻礙了預(yù)測模型類型的確定。HM6中提出的MCL的并行運算,不僅可以減少MCL的數(shù)量,同時減少了CU內(nèi)部PU的相互依賴性。在不包含不對稱CU的情況下,對于一個64×64的CU,相鄰有5個參考位置可以使用,其又可以分為4個 32像素×32像素的 CU,同樣擁有 5個參考點,總共有 4×5個參考點。同理,16像素×16像素的 CU有 4×4×5個參考點,8像素×8像素的 CU有 16×4×5個參考點,所以一個64像素×64像素大小的CU總共包含425個參考位置。在包含不對稱CU的情況下,參考點的數(shù)量可達593個[3]。這樣龐大的數(shù)量,加重了計算量,應(yīng)該試圖減少MCL的數(shù)量,特別是8像素×8像素CU中MCL的數(shù)量。
歸并技術(shù)利用已編碼的PU來推導(dǎo)或獲取當前PU的參數(shù)列表(如運動向量、參考幀索引、參考幀列表標志等),在HM6中提出了基于CU的運動歸并列表的構(gòu)造,它是將位于一個CU中所有8像素×8像素大小的PU共享同一個MCL,這不僅降低了幀間PU的相互依賴性,還減少了MCL的數(shù)量,最多可達HM5中 MCL的57%。這種設(shè)計使得視屏質(zhì)量平均損失了0.3%,但提高了高吞吐量和高質(zhì)量編碼器的靈活性。
當N=4時,當前PU的TMVP參考索引從其左邊PU獲取,當這兩個PU位于相同的CU中時,就說這兩個PU具有依賴性。圖1列舉了PU依賴性的情況。
圖1 同一個CU內(nèi)PU參考相鄰PU獲取TMVP
這種情況下,直到參考的PU編碼和解碼完成才能獲取當前 PU的 TMVP,HM6中通過當前CU之外已編碼的CU來獲取 TMVP。TMVP參考索引的位置如圖2所示,其中位于CU內(nèi)部的PU,其TMVP參考索引被設(shè)置為A1,如果A1不可用,則把TMVP的參考索引設(shè)置為 0。
因為當前CU內(nèi)部的PU都參考同一個 CU(A1),所以CU內(nèi)部PU的MCL的數(shù)量將會減少。對于CU中的不對稱PU,在去除PU間依賴性前,有13個參考點,由于同一個CU內(nèi)部的PU采用同一個參考點,因此對于一個64像素×64像素的PU只有一個參考點可以選擇(即 A1)。 同理,32像素×32像素共有 4×13個參考點,16像素×16像素共有 4×4×13個參考點,8像素×8像素共有16×4×1個參考點,因此去除 CU內(nèi)部PU的相互依賴性后,MCL的數(shù)量總共為397個。在包含不對稱PU的CU中,其他的參考點可以相應(yīng)求得。圖3表示MCL的獲取流程圖[4]。
圖2 TMVP參考索引的位置
圖3 MCL選取過程
MCL的獲取需要考慮時間和空間上的候選參考點。在空間位置上,從當前CU的5個候選參考點選擇其中4個,選擇順序為A1->B1->B0->A0->(B2),參考點B2只有在A1、B1、B0或A0無效時才可使用。在時間順序上,在當前PU的POC值小的幀里選擇兩幀,從這兩幀與當前PU相對應(yīng)的位置選擇兩個參考點,然后通過比較選擇其中較好的參考點。最后從選擇的5個參考點中移除重復(fù)的參考點,增加0歸并候選參考點,得到MCL。
本文仿真采用JCTVC小組開發(fā)的HM6.0代碼,仿真平臺是 CPU為 3.30 GHz Intel?CoreTMi3-2120、內(nèi)存為2 GB、操作系統(tǒng)為 Windows XP的64位計算機,運行環(huán)境為 Microsoft Visual Studio 2010。
實驗結(jié)果如表1所示,表中列出了運動歸并技術(shù)對于各類視頻P幀PSNR值、比特數(shù)與編解碼時間的影響。P幀 Y、U、V的 PSNR值分別降低了 0.1%、0.1%和0.1%,比特率平均提升了3%,編碼時間增加了10%。
表1 P幀運動歸并技術(shù)
視頻的PSNR平均值降低,編碼一幀比特數(shù)增加,這是由于歸并技術(shù)在計算P幀時算法復(fù)雜度上升,使得在低延遲低復(fù)雜度配置文件下,P幀在8像素×8像素 CU下需要額外的像素拷貝過程,使其運算的復(fù)雜度上升,增加了P幀在運動歸并技術(shù)中的計算時間,影響了P幀的編解碼時間。
本文分析了PU相互依賴性的解決方案,相對于HM5,merge模型的歸并運算很好地改善了編碼端視頻處理的吞吐量問題,降低了B幀的比特率,同時降低了B幀的解碼時間。由于歸并技術(shù)運用于P幀的特殊性,今后可以改善P幀歸并技術(shù)的算法,使其達到同樣的效果,在降低視頻比特率的同時,獲得較好的視頻質(zhì)量。歸并技術(shù)的并行運算為HEVC編碼器的設(shè)計提出了更好的merge/skip模型決定,并且提供了更加靈活的設(shè)計方案。
[1]H.264 and ISO/IEC 14496-10.Advanced video coding for generic audiovisual services,ITU-T rec[S].
[2]BROSS B, HAN W J, OHM J R, et al.High efficiency video coding (HEVC)text specification draft 6.JCTVCH1003, JCT-VC of ITU-T SG16 WP3 and ISO/IEC, CA,USA,2012.
[3]Zhou Minhua.Configurable and CU-group levelparallel merge/skip.JCTVC-H0082,JCT-VC of ITU-T SG16 WP3 and ISO/IEC,CA,USA,2012.
[4]Yu Qin, Ma Siwei, Liu Hongbin, et al.Parallel AMVP candidate list constrction.JCTVC-I0036,JCT-VC of ITU-T SG16 WP3 and ISO/IEC,CA,USA,2012.
[5]KIM H Y, CHO S H, LIM S C, et al.Throughput improvement for merge/skip mode.JCTVC-H0240,JCT-VC of ITU-T SG16 WP3 and ISO/IEC,CA,USA,2012.
[6]MCCANN K, BROSS B, KIM I K, et al.High efficiency video coding (HEVC)test model6 encoderdescription.JVTVC-H1002,JCT-VC of ITU-T SG16 WP3 and ISO/IEC,CA,USA,2012.