林 敏,林慶毫,翁曉雨,陳國捷
(特種光纖與光接入網(wǎng)重點(diǎn)實(shí)驗(yàn)室(上海大學(xué)),上海 201900)
高級視頻編碼H.264/AVC(advanced video coding)、高性能視頻編碼H.265/HEVC、多功能視頻編碼H.266/VVC是由國際電信聯(lián)盟與國際標(biāo)準(zhǔn)化組織聯(lián)合專家組制定的一系列視頻壓縮編碼標(biāo)準(zhǔn)[1-3],代表著自2003年至今各時(shí)期最先進(jìn)的視頻編碼技術(shù)。幀內(nèi)編碼是H.26X系列標(biāo)準(zhǔn)中的重要組成部分,其利用圖像的空間相關(guān)性進(jìn)行數(shù)據(jù)壓縮,視頻的關(guān)鍵幀也只使用幀內(nèi)編碼處理。加之近年來,自動(dòng)駕駛視覺、云游戲、遠(yuǎn)程桌面共享、后期制作、醫(yī)學(xué)影像存檔等應(yīng)用的發(fā)展使得視頻無損幀內(nèi)編碼的需求日益增多[4]。因而探索無損幀內(nèi)編碼的優(yōu)化算法有很高的研究和應(yīng)用價(jià)值。
H.26X系列標(biāo)準(zhǔn)可以通過簡單地跳過變換、量化、去塊濾波、自適應(yīng)樣點(diǎn)補(bǔ)償?shù)瓤赡芤胧д娴牟襟E,實(shí)現(xiàn)無損幀內(nèi)壓縮[5]。但也因此使得待編碼系數(shù)具有較高的能量,為后續(xù)的熵編碼帶來極大的壓力。為優(yōu)化H.26X系列標(biāo)準(zhǔn)無損幀內(nèi)編碼的性能,國內(nèi)外學(xué)者進(jìn)行了大量的研究。Kamisli[6]提出了一種不會(huì)引入失真的整數(shù)離散正弦變換,一定程度上彌補(bǔ)了跳過變換帶來的碼率損失;Sanchez等[7]針對不同的殘差數(shù)值分布特征設(shè)計(jì)了3組映射規(guī)則,整體降低了殘差的能量;Xu等[8]提出的殘差差分脈沖編碼調(diào)制(residual differential pulse code modulation,RDPCM)是HEVC屏幕圖像編碼擴(kuò)展標(biāo)準(zhǔn)(HEVC screen content coding extension,HEVC-SCC)的一部分,通過對殘差進(jìn)行再處理的方式提高了編碼效率;Wien等[1]提出的區(qū)塊差分脈沖編碼調(diào)制(block differential pulse code modulation,BDPCM)是H.266標(biāo)準(zhǔn)的一部分,通過在水平或垂直方向上使用臨近像素迭代預(yù)測的方式提高了預(yù)測準(zhǔn)確性;有學(xué)者將DPCM的思想擴(kuò)展到任意預(yù)測角度,提出了多種基于樣本點(diǎn)的幀內(nèi)角度預(yù)測(sample-based angular intra-prediction,SAP),進(jìn)一步提高了預(yù)測準(zhǔn)確性[9-11];元輝等[12]提出了一種新穎的不需要編碼預(yù)測模式信息的幀內(nèi)預(yù)測方案;Zhang等[13]分析了亮度通道與色差通道之間的關(guān)系,設(shè)計(jì)了3個(gè)模型,使用亮度通道對色差通道進(jìn)行幀內(nèi)預(yù)測;Li等[14]通過將參考像素拓展到多行的方式提高了幀內(nèi)預(yù)測的準(zhǔn)確性。
上述文獻(xiàn)中提出的算法對幀內(nèi)編碼的性能均有不同程度的優(yōu)化,但仍存在以下待改進(jìn)的問題:文獻(xiàn)[6]設(shè)計(jì)的整數(shù)變換方法局限性很大,且沒有量化的配合很難降低待編碼系數(shù)的能量,因此帶來的碼率優(yōu)化較??;文獻(xiàn)[7-8]設(shè)計(jì)的殘差分段映射方案沒有考慮殘差獨(dú)特的空間相關(guān)性,仍有優(yōu)化空間;文獻(xiàn)[9-14]都是設(shè)法增加或優(yōu)化預(yù)測模式來提高幀內(nèi)預(yù)測的準(zhǔn)確性,然而各代H.26X標(biāo)準(zhǔn)中的幀內(nèi)預(yù)測模式不斷增多,在最新的H.266中已經(jīng)達(dá)到67種,很難再挖掘出優(yōu)化空間,可以預(yù)見今后這類改進(jìn)帶來的優(yōu)化會(huì)越來越小;最后,上述大部分方案具有一定的應(yīng)用范圍的局限性,很難在各代的H.26X標(biāo)準(zhǔn)中通用?;谏鲜鲈?,本文提出了一種在H.264、H.265、H.266中通用的無損幀內(nèi)編碼優(yōu)化算法。該算法利用幀內(nèi)預(yù)測殘差具有豐富的邊緣特征這一統(tǒng)計(jì)結(jié)果,對預(yù)測殘差進(jìn)行處理。首先將當(dāng)前編碼塊的殘差首行、首列作為參考點(diǎn);然后利用中值邊緣檢測(median edge detection,MED)對剩余點(diǎn)逐點(diǎn)進(jìn)行預(yù)測并求得新的殘差;最后統(tǒng)計(jì)處理前后的殘差能量,選擇能量較小的一組進(jìn)行熵編碼。算法經(jīng)過測試,得到了明顯的碼率優(yōu)化。
H.26X系列標(biāo)準(zhǔn)中的幀內(nèi)編碼方案經(jīng)過各世代的持續(xù)優(yōu)化,但整體框架仍保持一致,包含幀內(nèi)預(yù)測-變換-量化-熵編碼4個(gè)基本過程(圖1(a))。幀內(nèi)編碼過程中引入失真的是變換和量化操作,因此可通過跳過變換和量化,僅保留幀內(nèi)預(yù)測和熵編碼來實(shí)現(xiàn)基礎(chǔ)的H.26X無損幀內(nèi)編碼[5](圖1(b))。
圖1 H.26X幀內(nèi)編碼過程Fig.1 H.26X intra-frame coding process
幀內(nèi)預(yù)測是H.26X無損幀內(nèi)編碼的核心部分。對每個(gè)預(yù)測單元(prediction unit,PU),H.26X執(zhí)行幀內(nèi)預(yù)測得到相應(yīng)的預(yù)測殘差Ri,j為
Ri,j=Pi,j-Ii,j
(1)
式中Ii,j表示原始像素值,Pi,j表示通過參考像素結(jié)合不同的幀內(nèi)預(yù)測方式得到的預(yù)測值。H.26X的幀內(nèi)預(yù)測模式包括平滑預(yù)測(DC模式、planar模式)和方向預(yù)測兩大類,隨著編碼標(biāo)準(zhǔn)的發(fā)展,預(yù)測模式的數(shù)量不斷增多。H.264僅使用9種預(yù)測模式[3],H.265增加到35種[2],H.266達(dá)到了67種[1]。
圖2展示了在H.265標(biāo)準(zhǔn)下經(jīng)過幀內(nèi)預(yù)測后的殘差圖像(數(shù)值整體平移128以繪制負(fù)值)。出于多種原因,盡管幀內(nèi)預(yù)測的準(zhǔn)確性不斷提高,殘差中仍然可能保留豐富的邊緣特征。首先,由于PU最小尺寸的限制,角度預(yù)測在圖像中紋理豐富的區(qū)域始終無法得到良好的預(yù)測結(jié)果;其次,當(dāng)被預(yù)測塊靠近參考像素的邊沿存在不連續(xù)性時(shí),角度預(yù)測很可能會(huì)插入原始塊中本不存在的方向性條紋。
圖2 “KristenAndSara”第一幀及其幀內(nèi)預(yù)測的殘差(亮度)Fig.2 First frame of “KristenAndSara”and its intra-frame prediction residuals (luma)
針對預(yù)測殘差圖像中存在豐富的邊緣特征這一統(tǒng)計(jì)結(jié)果,本文提出了基于殘差中值邊緣檢測(residual median edge detection,R-MED)的無損幀內(nèi)編碼算法。算法通過對預(yù)測殘差進(jìn)行二次預(yù)測,有效地壓縮了殘差圖像中豐富的邊緣特征,從而降低待編碼系數(shù)的整體能量,最終降低視頻碼率。
(2)
圖3 R-MED的預(yù)測策略Fig.3 Prediction strategy of R-MED
通過上述分析,證明R-MED適合應(yīng)用到H.26X殘差圖像的二次預(yù)測中。如圖1(c)所示,本文對經(jīng)過H.26X幀內(nèi)預(yù)測后,進(jìn)行熵編碼前的預(yù)測殘差進(jìn)行再處理。以PU為基本單位,將各PU的首行、首列作為參考點(diǎn),對剩下的數(shù)據(jù)點(diǎn)逐點(diǎn)應(yīng)用R-MED算法并計(jì)算新的殘差Di,j
(3)
然后分別計(jì)算處理前后的殘差總能量:
(4)
(5)
最后選擇總能量較小的一組進(jìn)行熵編碼。通過殘差的總能量判斷是否選用經(jīng)過二次處理的殘差是因?yàn)?,H.26X在對預(yù)測殘差進(jìn)行編碼前,需要使用哥倫布-萊斯碼或指數(shù)哥倫布碼對其進(jìn)行二值化,二值化后碼字的長度將與殘差的絕對幅值呈指數(shù)關(guān)系[16]。圖4是一個(gè)4×4的預(yù)測單元經(jīng)過H.265+R-MED算法處理前后的效果,其殘差總能量明顯降低。
圖4 一個(gè)經(jīng)過R-MED處理的預(yù)測單元Fig.4 A prediction unit processed by R-MED
為了驗(yàn)證R-MED算法的有效性,統(tǒng)計(jì)了在H.265標(biāo)準(zhǔn)下,部分測試序列第一幀經(jīng)過算法處理后整體能量的變化率。統(tǒng)計(jì)結(jié)果如表1所示,同時(shí)繪制測試序列“KristenAndSara”第一幀經(jīng)過算法處理前后的殘差圖像,如圖5所示。統(tǒng)計(jì)結(jié)果顯示單幀圖像的殘差能量平均降低67.9%,觀察“KristenAndSara”第一幀的殘差圖像發(fā)現(xiàn)邊緣特征極大減少,證明R-MED算法對預(yù)測殘差圖像有很準(zhǔn)確的預(yù)測能力。
表1 應(yīng)用H.265+R-MED算法后殘差能量的變化率Tab.1 Reduced ratio of residual energy processed by H.265+R-MED
圖5 “KristenAndSara”的預(yù)測殘差經(jīng)過R-MED處理后的結(jié)果(亮度)Fig.5 Output of prediction residual of “KristenAndSara”processed by R-MED (luma)
R-MED算法分別在H.265參考軟件HM-SCC-16[17]和H.266參考軟件VTM-12[18]中實(shí)現(xiàn),并在視頻聯(lián)合專家組制定的公共測試條件下使用全幀內(nèi)(all intra,AI)配置進(jìn)行實(shí)驗(yàn)。為了證明算法的適用性,測試序列使用專家組推薦的ClassA-ClassF共6類25個(gè)序列,測試序列的相關(guān)屬性及R-MED算法對比H.265及H.266的測試結(jié)果見表2、3。
表2 R-MED算法應(yīng)用在H.265及H.266的碼率優(yōu)化Tab.2 Bit rate optimization of R-MED algorithm applied in H.265 and H.266
與H.265參考軟件HM-16相比,經(jīng)過R-MED算法處理的視頻序列達(dá)到了最大18.45%,平均7.04%的碼率優(yōu)化,平均編碼時(shí)間僅增加4%,同時(shí)由于經(jīng)過處理的待編碼殘差能量大幅減少,緩解了后續(xù)熵編解碼器的壓力,因此平均解碼速度加快5%,另外還證明比HEVC-SCC擴(kuò)展標(biāo)準(zhǔn)中的RDPCM性能更好;與H.266參考軟件VTM-12相比,視頻碼率達(dá)到了最大17.36%,平均5.98%的優(yōu)化,編碼時(shí)間平均增加17%,解碼速度提升17%,同時(shí)證明比H.266標(biāo)準(zhǔn)中的BDPCM性能更好。
此外,為了證明R-MED算法性能良好,在表4、5中給出了近年多種針對H.265無損幀內(nèi)編碼的優(yōu)化算法與R-MED算法的性能比較。表中數(shù)據(jù)指對比H.265跳過變換量化方案的優(yōu)化程度。由于大部分文獻(xiàn)并未給出完整的測試序列的實(shí)驗(yàn)數(shù)據(jù),因此僅能對比表4所示的5個(gè)測試序列的性能。
表3 R-MED算法應(yīng)用在H.265及H.266的性能統(tǒng)計(jì)Tab.3 Performance statistics of R-MED algorithm applied in H.265 and H.266 %
表4 R-MED與其他算法的碼率優(yōu)化(對比H.265)Tab.4 Bit rate optimization of R-MED and other algorithms (versus H.265) %
表5 R-MED與其他算法的性能統(tǒng)計(jì)(對比H.265)Tab.5 Performance statistics of R-MED and other algorithms (versus H.265) %
上述算法中,文獻(xiàn)[11]提出的SAP+SWP2+DTM方案獲得了最佳的碼率優(yōu)化,但編解碼時(shí)間大幅增加。相比之下R-MED以增加少量編碼時(shí)間的代價(jià)獲得了可觀的碼率優(yōu)化,證明所提算法具有較高的實(shí)用價(jià)值。
針對H.26X系列編碼標(biāo)準(zhǔn)中,無損幀內(nèi)預(yù)測得到的殘差仍保留特殊的空間相關(guān)性,整體待編碼殘差能量較高的問題,提出了基于殘差中值邊緣檢測的無損幀內(nèi)編碼優(yōu)化算法。算法通過對預(yù)測殘差進(jìn)行邊緣檢測得到高準(zhǔn)確度的預(yù)測值,由此計(jì)算得到新的能量大幅降低的殘差值。在H.265與最新的H.266標(biāo)準(zhǔn)的參考軟件中應(yīng)用提出的優(yōu)化算法,平均碼率分別降低7.04%和5.98%,編解碼時(shí)間變化細(xì)微,具有顯著的實(shí)用價(jià)值。同時(shí)該算法具有很強(qiáng)的通用性,可在H.26X系列標(biāo)準(zhǔn)中應(yīng)用,也可與各種幀內(nèi)預(yù)測優(yōu)化方法結(jié)合使用,甚至有可能在編碼結(jié)構(gòu)相似的數(shù)字音視頻編碼技術(shù)標(biāo)準(zhǔn)(audio video standard,AVS)、AV1(AOMedia Video 1)標(biāo)準(zhǔn)中應(yīng)用。不足的是,文中描述的算法暫時(shí)只能應(yīng)用在無損編解碼中,今后的工作將研究R-MED算法與其他優(yōu)化算法的聯(lián)合應(yīng)用,并將該方法拓展到有損編碼、幀間編碼。