本發(fā)明屬于視頻解碼領(lǐng)域,具體是一種基于視頻顯著性的HEVC解碼復(fù)雜度控制方法。
背景技術(shù):
:在視頻解碼領(lǐng)域,復(fù)雜度控制對視頻解碼有重要影響;解碼復(fù)雜度控制一般是指降低原解碼復(fù)雜度至任意指定目標復(fù)雜度,同時保證由復(fù)雜度降低所導(dǎo)致的視頻失真最小。在視頻編碼標準的演進過程中,伴隨著編碼效率的不斷提高,視頻解碼的復(fù)雜度也不斷提高;降低和控制視頻解碼的復(fù)雜度成為了視頻解碼的關(guān)鍵問題。最新一代高效率視頻編碼HEVC(HighEfficiencyVideoCoding)標準,能夠減少時空冗余以滿足高清乃至超高清視頻的壓縮需求,具有靈活的圖像分割方案,并行化編解碼設(shè)定,相比較之前的H.264/AVC視頻編碼標準,HEVC可以在只消耗H.264一半碼率的前提下獲得幾乎相同的視頻壓縮質(zhì)量;但是這是以編碼和解碼復(fù)雜度作為代價的,這種較高的解碼復(fù)雜度對HEVC的實時解碼的應(yīng)用造成了很大的挑戰(zhàn)。隨著當下智能終端的多樣化發(fā)展,越來越多的智能終端(智能手機,平板電腦,筆記本電腦,計算機等)進入到人們的生活。計算能力的不同導(dǎo)致各智能終端對視頻解碼時解碼復(fù)雜度的承受能力不同。同時,各類智能終端自帶的電量也十分迥異,觀看視頻的剩余電量也可能差異很大。因此,有必要根據(jù)智能終端實際計算能力和電量水平進行視頻解碼的復(fù)雜度控制。然而,在解碼復(fù)雜度控制時,通常需要降低解碼復(fù)雜度,而降低解碼復(fù)雜度的代價是視頻失真。通常,視頻的輸出端是人眼,因此在解碼復(fù)雜度控制時,需要以最小感知失真為優(yōu)化目標。人眼在觀看視頻的時候,關(guān)注點并不會遍布整個屏幕,而是會集中在很小的區(qū)域中。視頻顯著性可以用來描述各個區(qū)域的受關(guān)注程度。顯著性非常高的區(qū)域稱之為感興趣區(qū)域(Region-of-Interest,ROI),反之則成為非感興趣區(qū)域。ROI區(qū)域中的圖像質(zhì)量對視頻的感知質(zhì)量影響很大,而非ROI區(qū)域則影響很小。技術(shù)實現(xiàn)要素:本發(fā)明針對目前尚沒有可以離線完成視頻解碼復(fù)雜度控制的算法,以及現(xiàn)有的降低HEVC解碼復(fù)雜度的算法沒有考慮感知質(zhì)量優(yōu)化的問題,提出了一種基于視頻顯著性的HEVC解碼復(fù)雜度控制方法。具體步驟如下:步驟一、針對某段視頻,用戶根據(jù)智能終端的計算能力、電量剩余或者根據(jù)自己的要求設(shè)定視頻解碼的目標復(fù)雜度;步驟二、利用HEVC壓縮域的區(qū)域顯著性檢測算法,生成該視頻中每一幀的LCU級別顯著性圖譜。具體步驟如下:步驟201、輸入該段視頻經(jīng)過HEVC壓縮編碼的視頻比特流;視頻壓縮編碼時,每一幀包括若干最大編碼單元LCU(LargestCodingUnit)。步驟202、針對視頻壓縮編碼中每幀包括的LCU,從視頻比特流中提取編碼每個LCU所使用的比特數(shù);bn表示編碼第n個LCU使用的比特數(shù),每幀中LCU的數(shù)量為N。步驟203、針對某幀中的第n個LCU,計算該LCU與周圍8鄰域LCU的比特數(shù)差值Δbn。Δbn計算公式如下:Δbn=(Σn′∈Iexp(dn′2σb2)(bn′-bn)2Σn′∈Iexp(dn′2σb2))12]]>其中I為當前LCU的8鄰域LCU的集合,dn'是第n'個LCU和第n個LCU之間的歐氏距離,σb為高斯窗函數(shù)的參數(shù)。步驟204、根據(jù)比特數(shù)bn和比特數(shù)差值Δbn計算第n個LCU的顯著性值wn。計算公式如下:wn=12(bnbmax+ΔbnΔbmax)]]>其中bmax表示每幀中bn的最大值。Δbmax表示每幀中Δbn的最大值步驟205、將每一幀內(nèi)所有LCU的顯著性值構(gòu)成顯著性圖譜。步驟三、根據(jù)目標復(fù)雜度和LCU顯著性圖譜,設(shè)計解碼復(fù)雜度—感知失真優(yōu)化控制模型。具體步驟為:步驟301、通過訓(xùn)練若干個視頻,建立去塊濾波器與解碼復(fù)雜度之間的函數(shù)關(guān)系;具體步驟如下:步驟3011、選取若干個訓(xùn)練視頻,獲取數(shù)萬個LCU;步驟3012、使用原始HEVC解碼器對所有訓(xùn)練視頻的視頻比特流進行解碼,記錄每個LCU的去塊濾波器的時間;步驟3013、針對每一個LCU,記錄該LCU的去塊濾波器的時間占平均每幀解碼的時間比例該LCU的去塊濾波器的時間是指該LCU去掉去塊濾波器后,解碼時間的下降值;平均每幀解碼的時間是指該LCU所在的視頻中,所有幀解碼時間的平均值。參數(shù)fn=1表示去掉第n個LCU的去塊濾波器;參數(shù)fn=0表示不去掉第n個LCU的去塊濾波器;步驟3014、對所有時間比例采用最小二乘法擬合,獲得去掉去塊濾波器時,且不同顯著值的LCU,解碼復(fù)雜度下降的函數(shù)表達式ΔCD(fn=1,wn);當不去掉去塊濾波器時fn=0,解碼復(fù)雜度下降ΔCD(fn=0,wn)=0。步驟3015、得到去塊濾波器與解碼復(fù)雜度之間的函數(shù)表達式ΔCD(fn,wn)。ΔCD(fn,wn)=1N·(a·wn+b)·fn]]>參數(shù)a和b的值隨量化參數(shù)QP(QuantizationParameter)的變化而變化。步驟302、通過訓(xùn)練若干個視頻,建立去塊濾波器與視頻感知失真之間的函數(shù)關(guān)系;視頻的感知失真用視頻顯著性加權(quán)的均方誤差來表示;去掉/不去掉去塊濾波器時的視頻感知失真表示為:ΔSD(fn,wn)=wnΣn=1NwnMSED(fn)]]>其中,MSED(fn)為:設(shè)置fn∈{0,1}后解碼產(chǎn)生的第n個LCU,與使用原始HEVC解碼產(chǎn)生的第n個LCU之間的均方誤差(MSE)。將ΔSD(fn,wn)進行歸一化得到ΔS~D(fn,wn)=ΔSD(fn,wn)ΔSD(fn=1,wn=1)=wnMSED(fn)MSED(fn=1)]]>確定的具體函數(shù)表達式,得到步驟303、通過訓(xùn)練若干個視頻,建立簡化運動補償與解碼復(fù)雜度之間的函數(shù)關(guān)系。具體步驟為:步驟3031、選取若干個訓(xùn)練視頻,包含數(shù)萬個LCU;步驟3032、使用原始HEVC解碼器對每個訓(xùn)練視頻的視頻比特流進行解碼,記錄每個訓(xùn)練視頻中平均每幀的解碼時間以及每個LCU的解碼時間;步驟3033、針對每個訓(xùn)練視頻分別進行四次解碼,并記錄每個LCU解碼時間的下降值;在四次解碼中,分別將每個LCU中占0、1/4、2/4、3/4比例的像素使用臨近像素插值而跳過運動補償算法;LCU解碼時間的下降值是指:與使用原始HEVC解碼器解碼時每個LCU的解碼時間相比,使用臨近像素插值而跳過運動補償算法時該LCU解碼時間的下降值。步驟3034、針對四次解碼,分別記錄每個LCU解碼時間的下降值與平均幀解碼時間的比值,作為復(fù)雜度下降值gn表示第n個LCU中的每4個像素里,使用臨近像素插值而不使用運動補償算法的像素個數(shù);gn的值為{0,1,2,3};步驟3035、對于每個視頻,分別求四次解碼復(fù)雜度下降值的平均值;ΔC‾M*(gn)=1LΣl=1LΔCM*(gl=gn)]]>其中L為一個訓(xùn)練視頻中的LCU數(shù)量,l為訓(xùn)練視頻中LCU的序號。步驟3036、將所有視頻的通過最小二乘法進行擬合,得到簡化運動補償與解碼復(fù)雜度之間的函數(shù)關(guān)系ΔCM(gn);ΔCM(gn)=1N·c·gn]]>其中參數(shù)c的值隨量化參數(shù)QP的變化而變化。步驟304、通過訓(xùn)練若干個視頻,建立簡化運動補償與視頻感知失真之間的函數(shù)關(guān)系。簡化運動補償時的感知失真可以表示為ΔSM(gn,wn)=wnΣn=1NwnMSEM(gn)]]>其中,MSEM(gn)為:設(shè)置gn∈{0,1,2,3}后解碼產(chǎn)生的第n個LCU,與使用原始HEVC解碼產(chǎn)生的第n個LCU之間的均方誤差(MSE)。將ΔSM(gn,wn)進行歸一化,歸一化后為歸一化方法為:ΔS~M(gn,wn)=ΔSM(gn,wn)ΔSM(gn=3,wn=1)=wnMSEM(gn)MSEM(gn=3)]]>確定的具體函數(shù)表達式,具體步驟如下:步驟3041、選取若干個訓(xùn)練視頻,包含數(shù)萬個LCU。步驟3042、使用原始HEVC解碼器對每個訓(xùn)練視頻的視頻比特流進行解碼,得到解碼后的重建視頻;步驟3043、對每個訓(xùn)練視頻進行四次解碼,記錄每次解碼時的每個視頻與原始HEVC解碼器得到的重建視頻的均方誤差在四次解碼中,每次解碼時分別將每個LCU中占總像素個數(shù)0、1/4、2/4、3/4比例的像素使用臨近像素插值而跳過運動補償算法;分別對應(yīng)gn=0,1,2,3;步驟3044、對每次解碼時每個視頻的均方誤差均使用進行歸一化;步驟3045、對所有訓(xùn)練數(shù)據(jù)進行最小二乘擬合,得到的函數(shù)關(guān)系,進而得到的函數(shù)表達式。ΔS~M(gn,wn)=wn·(h1gn3+h2gn2+h3gn)]]>參數(shù)h1、h2和h3的值為常數(shù)。步驟305、得到解碼復(fù)雜度—感知失真優(yōu)化控制模型并進行簡化。優(yōu)化控制模型為:視頻的復(fù)雜度下降值大于等于目標下降值的時候,使得視頻的主觀失真最小,即min{fn,gn}n=1NΣn=1N(ΔSD(fn,wn)+ΔSM(gn,wn)]]>s.t.Σn=1N(ΔCD(fn,wn)+ΔCM(gn))≥ΔCT]]>ΔCT為特定視頻解碼復(fù)雜度的目標下降值;當滿足ΔSD(fn,wn)<<ΔSM(gn,wn),優(yōu)化方程分解并化簡為:其中ΔC'T為特定視頻需要通過簡化運動補償達到的解碼復(fù)雜度的下降值;ΔCT′=ΔCT-Σn=1NΔCD(fn=1,wn)=ΔCT-Σn=1N1N·(a·wn+b)]]>步驟四、利用解碼復(fù)雜度—感知失真優(yōu)化控制模型,控制視頻的實際解碼復(fù)雜度;達到視頻的解碼復(fù)雜度等于設(shè)定的目標復(fù)雜度,并且保證視頻的感知失真最小的目的。若結(jié)果為:其中,I滿足:1NΣn=1I(a·w~n+b)≥ΔCT>1NΣn=1I-1(a·w~n+b)]]>為的升序排列;若結(jié)果為:其中,N1,N2和N3分別為gn=1,2,3的LCU個數(shù),通過以下公式求得:minN3,N2,N1N32+(8h1+4h2+2h3)·(N22-N32)+(h1+h2+h3)·(N22-N12)]]>s.t.1N·c·(N1+2N2+3N3)≥ΔCT′]]>兩個求解結(jié)果為在滿足約束條件的前提下,給顯著性wn較小的LCU分配較大的fn和gn,也即首先去掉顯著性較小的LCU的去塊濾波器,并且首先簡化顯著性較小的LCU的運動補償,且簡化程度按照顯著性從小到大的順序減小。本發(fā)明的優(yōu)點在于:(1)一種基于視頻顯著性的HEVC解碼復(fù)雜度控制方法,可以離線完成視頻解碼的復(fù)雜度控制,并且可以應(yīng)用于最新一代視頻編碼標準HEVC。(2)一種基于視頻顯著性的HEVC解碼復(fù)雜度控制方法,可以在視頻解碼的復(fù)雜度降低至指定目標的前提下,最大程度地保證視頻的感知質(zhì)量。(3)一種基于視頻顯著性的HEVC解碼復(fù)雜度控制方法,用戶可以在解碼端根據(jù)既定需求指定目標復(fù)雜度進行解碼,從而將HEVC解碼廣泛地應(yīng)用于具有不同計算能力或者不同電量的終端設(shè)備中,或在一定電量下完成指定時間內(nèi)的視頻播放。(4)一種基于視頻顯著性的HEVC解碼復(fù)雜度控制方法,可實現(xiàn)離線完成HEVC解碼復(fù)雜度的精準控制,以適應(yīng)不同智能終端的不同的計算能力或剩余電量,并且保證控制后視頻的感知質(zhì)量下降最小。(5)一種基于視頻顯著性的HEVC解碼復(fù)雜度控制方法,可以在不改變編碼器的情況下,有解碼器離線完成視頻解碼的復(fù)雜度控制,并且可以應(yīng)用于最新一代視頻編碼標準HEVC;可以在控制解碼復(fù)雜度時,最大程度地保證視頻的感知質(zhì)量;用戶可以在解碼端根據(jù)既定需求指定目標復(fù)雜度進行解碼,從而將HEVC解碼廣泛地應(yīng)用于具有不同計算能力或者不同電量的終端設(shè)備中,或在一定電量下完成指定時間內(nèi)的視頻播放。附圖說明圖1為本發(fā)明基于視頻顯著性的HEVC解碼復(fù)雜度控制方法的示意圖;圖2為本發(fā)明基于視頻顯著性的HEVC解碼復(fù)雜度控制方法的流程圖;圖3為本發(fā)明生成視頻每一幀的LCU顯著性圖譜的方法流程圖;圖4為本發(fā)明生成視頻每一幀的LCU顯著性圖譜的方法示意圖;圖5為本發(fā)明設(shè)計解碼復(fù)雜度—感知失真優(yōu)化控制模型的方法流程圖;圖6為本發(fā)明去塊濾波器與解碼復(fù)雜度之間的函數(shù)關(guān)系訓(xùn)練流程圖;圖7為本發(fā)明簡化運動補償與解碼復(fù)雜度之間關(guān)系訓(xùn)練流程圖;圖8為本發(fā)明簡化運動補償與視頻感知失真程度之間關(guān)系訓(xùn)練流程圖;圖9為本發(fā)明去塊濾波器與解碼復(fù)雜度之間關(guān)系訓(xùn)練效果圖;圖10為本發(fā)明簡化運動補償與解碼復(fù)雜度之間關(guān)系訓(xùn)練效果圖;圖11為本發(fā)明簡化運動補償與失真程度的訓(xùn)練效果圖;圖12為本發(fā)明優(yōu)化控制模型求解結(jié)果示意圖;圖13為本發(fā)明優(yōu)化控制模型求解結(jié)果示例;圖14為本發(fā)明實際應(yīng)用場景示意圖。具體實施方式下面結(jié)合附圖與具體實例對本發(fā)明作進一步的描述:一種基于視頻顯著性的HEVC解碼復(fù)雜度控制方法,如圖1所示,首先,由用戶根據(jù)設(shè)備的計算能力、電量剩余或者根據(jù)自己的要求設(shè)定視頻解碼的目標復(fù)雜度。然后,通過檢測待解碼的視頻比特流中每個LCU在編碼時所需的比特數(shù),來預(yù)測每一個LCU的顯著性,進而生成塊級別顯著性權(quán)重圖譜;然后,通過若干個訓(xùn)練視頻的統(tǒng)計學習,提前訓(xùn)練四個函數(shù)關(guān)系:去塊濾波器與解碼復(fù)雜度之間的函數(shù)關(guān)系,簡化運動補償與解碼復(fù)雜度之間的函數(shù)關(guān)系,去塊濾波器與感知失真程度之間的函數(shù)關(guān)系,以及簡化運動補償與感知失真程度之間的函數(shù)關(guān)系;接下來根據(jù)顯著性圖譜和訓(xùn)練好的函數(shù)關(guān)系建立HEVC解碼復(fù)雜度控制與感知質(zhì)量優(yōu)化方程,并對優(yōu)化方程進行分解和化簡;最后,解碼器根據(jù)目標復(fù)雜度和LCU級別的顯著性圖譜,求解優(yōu)化方程,求解出哪些LCU需要去掉去塊濾波器、哪些LCU需要簡化運動補償以及簡化的程度。最后將求解的結(jié)果輸入到HEVC解碼器中,使得HEVC解碼器按照求解的結(jié)果對解碼過程進行簡化,這樣就可達到精確控制HEVC解碼復(fù)雜度,并且保證感知失真最小的目的。具體步驟如下,如圖2所示:步驟一、針對某段視頻,用戶根據(jù)智能終端的計算能力、電量剩余或者根據(jù)自己的要求設(shè)定視頻解碼的目標復(fù)雜度;步驟二、利用HEVC壓縮域的區(qū)域顯著性檢測算法,生成該視頻中每一幀的LCU級別顯著性圖譜。如圖3和圖4所示,具體步驟如下:步驟201、輸入該段視頻經(jīng)過HEVC壓縮編碼的視頻比特流;視頻比特流的格式優(yōu)選.bin文件,但不局限于此格式。視頻由幀組成,每一幀包括多個LCU,每個LCU含有多個像素點;本發(fā)明實例中,LCU尺寸為64*64;如果編碼區(qū)域不重合的話,一個像素點只能屬于一個LCU,每個LCU可以包含多個像素點;步驟202、針對視頻壓縮編碼中每幀包括的LCU,從視頻比特流中提取編碼每個LCU所使用的比特數(shù);bn表示編碼第n個LCU使用的比特數(shù),每幀中LCU的數(shù)量為N。步驟203、針對某幀中的第n個LCU,計算該LCU與周圍8鄰域LCU的比特數(shù)差值Δbn。Δbn計算公式如下:Δbn=(Σn′∈Iexp(dn′2σb2)(bn′-bn)2Σn′∈Iexp(dn′2σb2))12]]>其中I為當前LCU的8鄰域LCU的集合,dn'是第n'個LCU和第n個LCU之間的歐氏距離,σb為高斯窗函數(shù)的參數(shù)。步驟204、根據(jù)比特數(shù)bn和比特數(shù)差值Δbn計算第n個LCU的顯著性值wn。對于第n個LCU,顯著性預(yù)測值wn計算公式如下:wn=12(bnbmax+ΔbnΔbmax)]]>其中bmax表示每幀中bn的最大值。Δbmax表示每幀中Δbn的最大值步驟205、將每一幀內(nèi)所有LCU的顯著性值構(gòu)成顯著性圖譜。對視頻中每一幀內(nèi)的每一個LCU都進行步驟202-204,獲得每一個LCU的顯著性預(yù)測值,從而生成該幀的LCU級別顯著性圖譜。步驟三、根據(jù)目標復(fù)雜度和LCU顯著性圖譜,解碼器設(shè)計解碼復(fù)雜度—感知失真優(yōu)化控制模型。如圖5所示,具體步驟包括:步驟301、通過訓(xùn)練若干個視頻,建立去塊濾波器與解碼復(fù)雜度之間的函數(shù)關(guān)系。本發(fā)明采用如下步驟訓(xùn)練該函數(shù)關(guān)系,但不局限該方法。如圖6所示,具體步驟包括:步驟3011、選取若干個訓(xùn)練視頻,獲取數(shù)萬個LCU。本發(fā)明不局限于訓(xùn)練視頻數(shù)量和LCU的數(shù)量。步驟3012、使用原始HEVC解碼器對所有訓(xùn)練視頻的視頻比特流進行解碼,記錄每個LCU的去塊濾波器的時間;步驟3013、針對每一個LCU,記錄該LCU的去塊濾波器的時間占平均每幀解碼的時間比例該LCU的去塊濾波器的時間是指該LCU去掉去塊濾波器后,解碼時間的下降值;平均每幀解碼的時間是指該LCU所在的視頻中,所有幀解碼時間的平均值。設(shè)置fn∈{0,1}表示第n個LCU的去塊濾波器是否去掉,參數(shù)fn=1表示去掉第n個LCU的去塊濾波器;參數(shù)fn=0表示不去掉第n個LCU的去塊濾波器;步驟3014、對所有時間比例采用最小二乘法擬合,獲得去掉去塊濾波器時,且不同顯著值的LCU,解碼復(fù)雜度下降的函數(shù)表達式ΔCD(fn=1,wn);當不去掉去塊濾波器時fn=0,解碼復(fù)雜度下降ΔCD(fn=0,wn)=0。ΔCD(fn=1,wn)的擬合曲線如圖9所示,橫坐標是wn,縱坐標是N·ΔCD(fn=1,wn),其中N為一幀中的LCU總數(shù)。圖中的黑點表示在對應(yīng)顯著值(wn)下的去塊濾波器復(fù)雜度,黑點包含所有訓(xùn)練視頻中隨機選取的3000個LCU,然后對所選取的數(shù)據(jù)進行多項式擬合,得到去掉(fn=1)去塊濾波器時,不同顯著值(wn)的LCU的復(fù)雜度下降ΔCD(fn=1,wn)的函數(shù)表達式。本發(fā)明進行多項式擬合時,并不限于選取的LCU的個數(shù)。步驟3015、得到去塊濾波器與解碼復(fù)雜度之間的函數(shù)表達式ΔCD(fn,wn)。ΔCD(fn,wn)的含義為第n個LCU在給定fn時的解碼復(fù)雜度下降值占平均每幀解碼復(fù)雜度的比例。訓(xùn)練得到的ΔCD(fn,wn)的函數(shù)表達式為:ΔCD(fn,wn)=1N·(a·wn+b)·fn]]>參數(shù)a和b的值隨量化參數(shù)(QuantizationParameter,QP)的變化而變化,具體數(shù)值見于表1。表1QP=22QP=27QP=32QP=37a0.30410.38740.41010.4347b0.02550.04330.04590.0576步驟302、通過訓(xùn)練若干個視頻,建立去塊濾波器與視頻感知失真之間的函數(shù)關(guān)系;在本發(fā)明中,采用視頻顯著性加權(quán)的均方誤差(SaliencyWeightedMeanSquareError,SW-MSE)來表示視頻的感知失真。去掉(fn=1)和不去掉(fn=0)去塊濾波器時的感知失真表示為:ΔSD(fn,wn)=wnΣn=1NwnMSED(fn)]]>其中,MSED(fn)為:設(shè)置fn∈{0,1}后解碼產(chǎn)生的第n個LCU,與使用原始HEVC解碼產(chǎn)生的第n個LCU之間的均方誤差(MSE)。將ΔSD(fn,wn)進行歸一化后得到為:ΔS~D(fn,wn)=ΔSD(fn,wn)ΔSD(fn=1,wn=1)=wnMSED(fn)MSED(fn=1)]]>確定的函數(shù)表達式,得到步驟303、通過訓(xùn)練若干個視頻,建立簡化運動補償與解碼復(fù)雜度之間的函數(shù)關(guān)系。如圖7所示,具體步驟包括:步驟3031、選取若干個訓(xùn)練視頻,包含數(shù)萬個以上LCU;步驟3032、使用原始HEVC解碼器對每個訓(xùn)練視頻的視頻比特流進行解碼,記錄每個訓(xùn)練視頻中平均每幀的解碼時間以及每個LCU的解碼時間;步驟3033、針對每個訓(xùn)練視頻分別進行四次解碼,并記錄每個LCU解碼時間的下降值;在四次解碼中,分別將每個LCU中占0、1/4、2/4、3/4比例的像素使用臨近像素插值而跳過運動補償算法;LCU解碼時間的下降值是指:與使用原始HEVC解碼器解碼時每個LCU的解碼時間相比,使用臨近像素插值而跳過運動補償算法時該LCU解碼時間的下降值。步驟3034、針對四次解碼,分別記錄每個LCU解碼時間的下降值與不簡化運動補償時平均每幀解碼時間的比值,作為復(fù)雜度下降值gn表示第n個LCU中的每4個像素里,使用臨近像素插值而不使用運動補償算法計算的像素個數(shù);gn的值為{0,1,2,3};記錄每一個LCU在gn=0,1,2,3時該LCU解碼時間的下降值,并除以不簡化運動補償時平均每幀的解碼時間,這個比值用表示。gn=0表示第n個LCU中,沒有像素使用臨近像素插值而不使用運動補償算法;gn=1表示第n個LCU中占1/4比例的像素,使用臨近像素插值而不使用運動補償算法;gn=2表示第n個LCU中占2/4比例的像素,使用臨近像素插值而不使用運動補償算法;gn=3表示第n個LCU中占3/4比例的像素,使用臨近像素插值而不使用運動補償算法;步驟3035、對于每個視頻,分別求四次解碼復(fù)雜度下降值的平均值;對于每個視頻,都在gn=0,1,2,3時,分別求復(fù)雜度下降平均值:ΔC‾M*(gn)=1LΣl=1LΔCM*(gl=gn)]]>其中L為一個訓(xùn)練視頻中的LCU數(shù)量,l為訓(xùn)練視頻中LCU的序號。步驟3036、將所有視頻的通過最小二乘法進行擬合,得到簡化運動補償與解碼復(fù)雜度之間的函數(shù)關(guān)系ΔCM(gn);ΔCM(gn)的含義為第n個LCU在給定gn時的解碼復(fù)雜度下降值占平均每幀解碼復(fù)雜度的比例。擬合曲線如圖10所示,橫坐標是gn,縱坐標是N·ΔCM(gn),其中N為一幀中的LCU總數(shù)。圖中的黑點表示在對應(yīng)簡化程度(gn)下的簡化運動補償引起的解碼復(fù)雜度下降,黑點包含所有訓(xùn)練視頻的訓(xùn)練數(shù)據(jù),然后對所有的數(shù)據(jù)進行多項式擬合,得到簡化程度(gn)下的簡化運動補償引起的解碼復(fù)雜度下降ΔCM(gn)的函數(shù)表達式。訓(xùn)練得到的ΔCM(gn)的函數(shù)表達式為:ΔCM(gn)=1N·c·gn]]>其中參數(shù)c的值隨QP的變化而變化,具體數(shù)值見于表2。表2QP=22QP=27QP=32QP=37c0.03510.05200.06650.0792步驟304、通過訓(xùn)練若干個視頻,建立簡化運動補償與視頻感知失真之間的函數(shù)關(guān)系。簡化運動補償時的感知失真可以表示為ΔSM(gn,wn)=wnΣn=1NwnMSEM(gn)]]>其中,MSEM(gn)為設(shè)置gn∈{0,1,2,3}后解碼產(chǎn)生的第n個LCU,與使用原始HEVC解碼產(chǎn)生的第n個LCU之間的均方誤差(MSE)。將ΔSM(gn,wn)進行歸一化,歸一化后為歸一化方法為:ΔS~M(gn,wn)=ΔSM(gn,wn)ΔSM(gn=3,wn=1)=wnMSEM(gn)MSEM(gn=3)]]>具體步驟如圖8所示,包括:步驟3041、選取若干個訓(xùn)練視頻,包含數(shù)萬個LCU。步驟3042、使用原始HEVC解碼器對每個訓(xùn)練視頻的視頻比特流進行解碼,得到解碼后的重建視頻;步驟3043、對每個訓(xùn)練視頻進行四次解碼,記錄每次解碼時的每個視頻與原始HEVC解碼器得到的重建視頻的均方誤差在四次解碼中,每次解碼時分別將每個LCU中占總像素個數(shù)0、1/4、2/4、3/4比例的像素使用臨近像素插值而跳過運動補償算法;分別對應(yīng)gn=0,1,2,3;步驟3044、對記錄的每次解碼時每個視頻的均方誤差均使用進行歸一化;步驟3045對所有訓(xùn)練數(shù)據(jù)進行最小二乘擬合,得到的函數(shù)關(guān)系,進而得到的函數(shù)表達式。擬合曲線如圖11所示,橫坐標是gn,縱坐標是圖中的黑點表示在對應(yīng)簡化程度(gn)下的簡化運動補償引起的歸一化均方誤差,黑點包含所有訓(xùn)練視頻的訓(xùn)練數(shù)據(jù),然后對所有的數(shù)據(jù)進行多項式擬合,得到簡化程度(gn)下的簡化運動補償引起的歸一化均方誤差的函數(shù)表達式。最終,訓(xùn)練得到的的函數(shù)表達式為:ΔS~M(gn,wn)=wn·(h1gn3+h2gn2+h3gn)]]>參數(shù)h1、h2和h3的值為常數(shù),具體數(shù)值見于表3。表3步驟305、得到解碼復(fù)雜度—感知失真優(yōu)化控制模型并進行簡化。綜合去塊濾波器/運動補償與解碼復(fù)雜度,感知失真程度之間的函數(shù)關(guān)系以及步驟二中每一幀的LCU顯著性圖譜,得到解碼復(fù)雜度—感知失真優(yōu)化控制模型:優(yōu)化控制模型為:視頻的復(fù)雜度下降值大于等于目標下降值的時候,使得視頻的主觀失真最小,即minΔSs.t.ΔC≥ΔCTmin{fn,gn}n=1NΣn=1N(ΔSD(fn,wn)+ΔSM(gn,wn)]]>s.t.Σn=1N(ΔCD(fn,wn)+ΔCM(gn))≥ΔCT]]>ΔCT為特定視頻解碼復(fù)雜度的目標下降值;該解碼復(fù)雜度—感知失真優(yōu)化控制模型中,含有一個優(yōu)化目標和一個優(yōu)化條件。優(yōu)化目標是第一個表達式,使得視頻的感知失真最小。優(yōu)化條件為第二個表達式:HEVC的解碼復(fù)雜度下降值大于等于目標下降值。為了達到感知失真最小,該方程的解會使得解碼復(fù)雜度下降值在滿足大于等于目標下降值的前提下,盡可能接近目標下降值;既達到控制解碼復(fù)雜度到目標復(fù)雜度的目的,又可以到達讓解碼復(fù)雜度下降到目標復(fù)雜度以下,以滿足計算資源和電量剩余限制的目的。下面對控制優(yōu)化方程進行化簡,由于去掉去塊濾波器導(dǎo)致的感知失真要遠遠小于由于簡化運動補償而導(dǎo)致的失真,即ΔSD(fn,wn)<<ΔSM(gn,wn),上述優(yōu)化方程可分解并化簡為:當只去掉某些LCU的去塊濾波器,就可以達到目標復(fù)雜度時,僅去掉某些LCU的去塊濾波器,不簡化運動補償,模型簡化為(1)式;否則,當去掉全部LCU的去塊濾波器時,還達不到目標復(fù)雜度,則首先去掉所有LCU的去塊濾波器,然后簡化某些LCU的運動補償,模型簡化為(2)式;ΔC'T為特定視頻,需要通過簡化運動補償達到的解碼復(fù)雜度的下降值;ΔCT′=ΔCT-Σn=1NΔCD(fn=1,wn)=ΔCT-Σn=1N1N·(a·wn+b).]]>步驟四、利用解碼復(fù)雜度—感知失真優(yōu)化控制模型,控制視頻的實際解碼復(fù)雜度;達到視頻的解碼復(fù)雜度等于設(shè)定的目標復(fù)雜度,并且保證視頻的感知失真最小的目的。具體步驟為:步驟401、當所設(shè)置的目標復(fù)雜度滿足時,求解公式(1)。方程(1)的求解結(jié)果為:其中,I滿足:1NΣn=1I(a·w~n+b)≥ΔCT>1NΣn=1I-1(a·w~n+b)]]>定義為的升序排列;步驟402、當所設(shè)置的目標復(fù)雜度滿足時,求解公式(2)。具體步驟如下:首先、選取若干個訓(xùn)練視頻,獲得數(shù)千幀;通過對幀的進行觀察,定義為的升序排列,可以得到:∀Nt∈{n}n=1N,Σn=1Ntw~n≈k·Nt2---(3)]]>然后,根據(jù),公式(3),求解方程(2)的解為:gn=3,wn≤w~N32,w~N3+1≤wn≤w~N3+N21,w~N3+N2+1≤wn≤w~N3+N2+N10,w~N3+N2+N1+1≤wn≤w~N]]>其中,N1,N2和N3分別為gn=1,2,3的LCU個數(shù),通過以下公式求得:minN3,N2,N1N32+(8h1+4h2+2h3)·(N22-N32)+(h1+h2+h3)·(N22-N12)]]>s.t.1N·c·(N1+2N2+3N3)≥ΔCT′---(4)]]>為降低求解公式(4)所消耗的復(fù)雜度,可以采用查表法,即事先對每個目標復(fù)雜度ΔCT都求出公式(4)的解N1,N2和N3,并建立一張表,在實際應(yīng)用時從表中查得N1,N2和N3的值即可,但此處并不限于此方法。方程(1)和(2)的兩個求解結(jié)果如圖12a和圖12b所示,為在滿足約束條件的前提下,給顯著性(wn)較小的LCU分配較大的fn和gn,也即首先去掉顯著性較小的LCU的去塊濾波器,并且首先簡化顯著性較小的LCU的運動補償,且簡化程度按照顯著性從小到大的順序減??;顯著性越小簡化程度越高,顯著性越大簡化程度越低。如圖13所示,展示了求解結(jié)果的示例,通過和人眼關(guān)注點分布以及圖2的顯著性預(yù)測分布比較,可以發(fā)現(xiàn)求得的解滿足上述規(guī)律。在實施例中,排序優(yōu)選快速排序法,但不局限于快速排序方法。如圖14所示,本發(fā)明以一幀視頻為例實際應(yīng)用場景示意圖,展示了本發(fā)明在可移動設(shè)備電量剩余不足時的應(yīng)用場景。在圖中,每列對應(yīng)一個目標復(fù)雜度。假設(shè)當所使用的設(shè)備電量剩余80%時,該視頻恰好可以在電量用盡前完成解碼和播放。如果設(shè)備電量不足,例如剩余70%,則需要使用本發(fā)明的方法,將解碼復(fù)雜度降至某個目標復(fù)雜度,這一目標復(fù)雜度是由觀看視頻時解碼所占功耗比例決定的。當解碼復(fù)雜度下降時,視頻質(zhì)量也會下降。從圖中還可以看出,當解碼復(fù)雜度下降時,視覺顯著區(qū)域(例如人臉)的質(zhì)量下降不明顯,而非顯著區(qū)域(例如背景中的箱子)的質(zhì)量下降較為明顯。這說明,本發(fā)明方法犧牲非顯著區(qū)域的質(zhì)量,而盡可能保證了顯著區(qū)域的質(zhì)量。這樣,可以使得視頻感知質(zhì)量達到最優(yōu)。本發(fā)明是具有基于視頻顯著性的解碼復(fù)雜度分配機制,能夠按照區(qū)域的視覺顯著性來分配相應(yīng)的解碼復(fù)雜度,在一定程度上減小由于解碼復(fù)雜度的降低所導(dǎo)致的視頻的感知失真。本發(fā)明通過建立并求解HEVC的解碼復(fù)雜度—感知失真優(yōu)化控制模型,可以準確地控制HEVC視頻解碼的復(fù)雜度,并且通過保證關(guān)鍵區(qū)域的視頻質(zhì)量,來保證解碼后視頻整體的感知質(zhì)量,即在將實際視頻編碼的復(fù)雜度降低至指定水平的目標復(fù)雜度的前提下,最大程度地保證視頻感知質(zhì)量。本發(fā)明通過設(shè)定目標復(fù)雜度,對視頻編碼的復(fù)雜度進行準確地控制,適用于需要進行視頻解碼但計算能力受限或者電量不足的終端設(shè)備中。盡管本發(fā)明已參照具體實施方式進行描述和舉例說明,但是并不意味著本發(fā)明限于這些描述的實施方式。當前第1頁1 2 3