本發(fā)明涉及多媒體技術(shù)領(lǐng)域,尤其涉及一種視頻編碼方法及裝置。
背景技術(shù):數(shù)字視頻蓬勃應(yīng)用范圍越來越廣闊。視頻編碼效率作為視頻應(yīng)用的核心,需要提高的方向之一是如何在有限的帶寬條件下盡可能提高視頻的質(zhì)量。由于視頻信號是一類特殊的信號源,其特點是向人們傳達視覺上的內(nèi)容信息。所以在視頻編碼的過程中,由于帶寬與存儲空間的限制,不可避免地會引入視頻信號失真。那么如何在同樣的帶寬條件下盡可能降低圖像失真,提高圖像質(zhì)量,是業(yè)界視頻編碼工作的核心問題。現(xiàn)有的視頻編碼技術(shù)通常對一幀圖像的各個編碼基本單元(簡稱宏塊)采用相同的編碼參數(shù)和編碼策略。但是,上述現(xiàn)有的方案至少存在如下技術(shù)問題:由于視頻內(nèi)容以及信號本身編碼特性的不同,相同的編碼參數(shù)有時會導(dǎo)致較大的視覺感受差異,視頻的主觀質(zhì)量不僅無法達到最優(yōu),而且還存在在相同的帶寬條件下,編碼資源不合理占用的情況。
技術(shù)實現(xiàn)要素:本發(fā)明的實施例提供一種視頻編碼方法及裝置,可準確控制視頻圖像主觀視覺質(zhì)量的視頻編碼方法,充分利用編碼資源,提高視頻的主觀視覺質(zhì)量。為達到上述目的,本發(fā)明的實施例采用如下技術(shù)方案:一種視頻編碼方法,包括:分析接收到的一幀視頻數(shù)據(jù)中每個宏塊的內(nèi)容特征,所述內(nèi)容特征包括亮度參數(shù)和紋理參數(shù);根據(jù)所述內(nèi)容特征獲取每個宏塊的敏感度參數(shù);根據(jù)所述敏感度參數(shù)計算編碼量化參數(shù);根據(jù)所述編碼量化參對所述一幀視頻數(shù)據(jù)進行編碼。優(yōu)選地,上述分析接收到的一幀視頻數(shù)據(jù)中每個宏塊的內(nèi)容特征具體包括:根據(jù)當前像素規(guī)定范圍內(nèi)的平均亮度值計算亮度參數(shù)和根據(jù)用sobel算子指數(shù)擬合后的函數(shù)計算紋理參數(shù)。優(yōu)選地,上述根據(jù)當前像素規(guī)定范圍內(nèi)的平均亮度值計算亮度參數(shù)具體為:125Li10else]]>其中,kKuminance代表亮度參數(shù),Li代表當前像素5*5范圍內(nèi)的亮度平均值;上述根據(jù)用Sobel算子指數(shù)擬合后的函數(shù)計算紋理參數(shù)具體為:kTexture=0.00329×exp(-0.02378×Sobel)其中,kTexture代表紋理參數(shù),Sobel代表Sobel算子。優(yōu)選地,上述根據(jù)所述內(nèi)容特征獲取每個宏塊的敏感度參數(shù)具體包括:ε=kTexture·kLuminance其中,ε代表敏感度參數(shù),kTexture代表紋理參數(shù),kLuminance代表亮度參數(shù)。優(yōu)選地,所述根據(jù)所述敏感度參數(shù)計算編碼量化參數(shù)具體包括:根據(jù)獲取到的所有敏感度參數(shù)進行聚類以得到多個區(qū)域類別;針對每個區(qū)域類別計算該區(qū)域類別的平均敏感度參數(shù);根據(jù)所述平均敏感度參數(shù)和預(yù)設(shè)的每個區(qū)域類型的目標質(zhì)量參數(shù)計算所述區(qū)域類別的編碼量化參數(shù)。優(yōu)選地,所述針對每個區(qū)域類別計算該區(qū)域類別的平均敏感度參數(shù)具體包括:ε_AVGi代表第i個區(qū)域類別的平均敏感度參數(shù);Si代表第i個區(qū)域類別中所有宏塊的集合;Ni代表第i個區(qū)域類別中宏塊的數(shù)量;ε代表敏感度參數(shù),MBj∈Si代表代表第j個宏塊屬于第i個區(qū)域類別;εj代表第j個宏塊的敏感度參數(shù)。優(yōu)選地,上述根據(jù)所述平均敏感度參數(shù)和預(yù)設(shè)的每個區(qū)域類型的目標質(zhì)量參數(shù)計算所述區(qū)域類別的編碼量化參數(shù)具體包括:Qi代表編碼量化參數(shù);DTarget代表每個聚類區(qū)域設(shè)定的目標質(zhì)量值。一種視頻編碼裝置,包括:分析單元,用于分析接收到的一幀視頻數(shù)據(jù)中每個宏塊的內(nèi)容特征,所述內(nèi)容特征包括亮度參數(shù)和紋理參數(shù);敏感度獲取單元,用于根據(jù)所述內(nèi)容特征獲取每個宏塊的敏感度參數(shù);計算單元,用于根據(jù)所述敏感度參數(shù)計算編碼量化參數(shù);編碼單元,用于根據(jù)所述編碼量化參對所述一幀視頻數(shù)據(jù)進行編碼。其中,分析單元包括:計算模塊,用于根據(jù)當前像素規(guī)定范圍內(nèi)的平均亮度值計算亮度參數(shù)和根據(jù)用sobel算子指數(shù)擬合后的函數(shù)計算紋理參數(shù)。其中,敏感度獲取單元包括:聚類模塊,用于根據(jù)獲取到的所有敏感度參數(shù)進行聚類以得到多個區(qū)域類別;區(qū)域計算模塊,用于針對每個區(qū)域類別計算該區(qū)域類別的平均敏感度參數(shù);參數(shù)計算模塊,用于根據(jù)所述平均敏感度參數(shù)計算所述區(qū)域類別的編碼量化參數(shù)。本發(fā)明實施例提供的視頻編碼方法及裝置可以根據(jù)每幀視頻數(shù)據(jù)的亮度參 數(shù)和紋理參數(shù)獲取每個視頻數(shù)據(jù)中每個宏塊的敏感度參數(shù),再根據(jù)計算出的敏感度參數(shù)計算該視頻數(shù)據(jù)的編碼量化參數(shù),從而根據(jù)該編碼量化參數(shù)對該幀視頻數(shù)據(jù)進行編碼,解決了現(xiàn)有技術(shù)中由于采用相同的編碼參數(shù)導(dǎo)致的編碼資源占用不合理的技術(shù)問題,進而取得可根據(jù)視頻數(shù)據(jù)的特征采用不同的編碼量化參數(shù),以主觀視覺感受可以接受為準,盡可能的降低帶寬的占用,可合理、充分地利用編碼資源的技術(shù)效果。附圖說明為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實施例1中視頻編碼方法的亮度參數(shù)函數(shù)的曲線示意圖;圖2為本發(fā)明實施例1中視頻編碼方法的kTexture與紋理參數(shù)之間的指數(shù)擬合曲線示意圖;圖3為本發(fā)明實施例1中視頻編碼方法的根據(jù)敏感度特性將視頻圖像進行區(qū)域類型劃分的示意圖;圖4為本發(fā)明實施例1中視頻編碼方法的流程示意圖;圖5為本發(fā)明實施例2中視頻編碼裝置的結(jié)構(gòu)示意圖。具體實施方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造 性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。并且,以下各實施例均為本發(fā)明的可選方案,實施例的排列順序及實施例的編號與其優(yōu)選執(zhí)行順序無關(guān)。實施例1本實施例提供一種視頻編碼方法,在該方法中主要根據(jù)視頻數(shù)據(jù)中每個宏塊的敏感度參數(shù)將視頻數(shù)據(jù)聚類成多個區(qū)域類型,再根據(jù)劃分后的區(qū)域類型計算該區(qū)域類型的編碼量化參數(shù),從而實現(xiàn)對不同的區(qū)域類型采用不同的編碼方式、降低帶寬占用量的效果。特別地,在本實施例中,敏感度參數(shù)是根據(jù)視頻數(shù)據(jù)的內(nèi)容特征中的亮度參數(shù)和紋理參數(shù)計算得來的。為便于理解本實施例,下面就先說明一下,本實施例中,以紋理參數(shù)和亮度參數(shù)獲取到的敏感度參數(shù),為何可以最終取得提高主觀視覺感受的同時,降低帶寬占用率,合理利用編碼資源的技術(shù)效果的原理。首先需要定義人眼感知失真(主觀視覺感知)失真與像素數(shù)值失真之間的對應(yīng)關(guān)系:Dperceptual=kTexture·kLuminance·DMSE=ε·DMSE(1)其中,Dperceptual代表人眼的感知失真;DMSE代表像素值統(tǒng)計失真(MSE即MeanSquareError均方誤差);ε代表敏感度參數(shù)。敏感度系數(shù)是指人眼對某個圖像內(nèi)容或圖像信息在編碼過程中產(chǎn)生失真的敏感程度,敏感度低意味著該區(qū)域即使失真比較大,人眼能感受到的失真也相對比較?。环粗?,如果敏感度高,則該區(qū)域即使只有很小的失真,人眼也能明顯地感受到。根據(jù)上述表達式(1)可知:ε=kTexture·kLuminance(2)該ε由亮度參數(shù)kLuminance和紋理參數(shù)kTexture相乘,通過乘法加權(quán),使像素失真與感知失真聯(lián)系起來。kLuminance的取值方法:根據(jù)圖1所示的生理學(xué)理論實驗結(jié)果表明,人眼對不同環(huán)境下的像素變化敏感度不同。圖1中橫坐標表示背景亮度(0-255),縱坐標表示人眼的感知門限值。門限值越小,代表人眼的敏感度越高。從圖1中可以看到,在亮度較高或較低的情況下,敏感度相對較低,而在亮度值居中時,人眼對變化(或失真)的敏感度最高。根據(jù)圖1所示的人眼感知門限與亮度的關(guān)系,可用分段函數(shù)對該特征曲線進行近似表達:12510else---(3)]]>其中,Li表示當前像素i周圍5x5像素范圍內(nèi)的平均亮度值。Ti表示像素i的變化敏感閾值,i=0,1,2,3….n。根據(jù)表達式(3)可知,亮度參數(shù)kLuminance的值與當前環(huán)境亮度下圖像的敏感變化閾值成反比。再根據(jù)Weber對比度法則中的環(huán)境對比度因素,這里取Ti除以Li結(jié)果的倒數(shù)為kLuminance的值,寫為:125Li10else---(4)]]>kTexture的取值方法:紋理參數(shù)的值可以用實驗擬合的方法。首先選擇標準測試序列進行壓縮 處理,并且招募測試人員對結(jié)果進行主觀感受打分。通過打分可以得到ε的估計值,再除以kLuminance的值便得到kTexture的實驗數(shù)據(jù),參照下述表一種各序列的ε擬合結(jié)果及kTexture的計算結(jié)果。表一用Sobel算子描述圖像的紋理復(fù)雜程度。將Sobel算子結(jié)果與kTexture實驗數(shù)據(jù)對應(yīng)起來,并進行指數(shù)擬合,參照圖2所示,便可以得到kTexture的經(jīng)驗計算函數(shù):kTexture=0.00329×exp(-0.02378×Sobel)(5)參照圖4,該方法包括:101,視頻編碼器從輸入端得到一幀視頻數(shù)據(jù);102,視頻編碼器分析接收到的一幀視頻數(shù)據(jù)中每個宏塊的內(nèi)容特征,內(nèi)容特征包括亮度參數(shù)和紋理參數(shù);而且而言,視頻編碼器根據(jù)當前像素規(guī)定范圍內(nèi)的平均亮度值計算亮度參數(shù)和根據(jù)用sobel算子指數(shù)擬合后的函數(shù)計算紋理參數(shù)。優(yōu)選方案為:步驟102可根據(jù)上述公式(4)和(5)計算得到對應(yīng)的亮度參數(shù)和紋理參數(shù)。并且在本實施例中亮度參數(shù)和紋理參數(shù)的計算過程不分先后 順序,甚至可以同時根據(jù)公式(4)和(5)計算得到的亮度參數(shù)和紋理參數(shù)。103,視頻編碼器根據(jù)所述內(nèi)容特征獲取每個宏塊的敏感度參數(shù);并根據(jù)所述敏感度參數(shù)計算編碼量化參數(shù);即對視頻幀的每個宏塊(16*16像素)計算敏感度系數(shù)ε,該系數(shù)表示人眼對該區(qū)域圖像失真的敏感程度。優(yōu)選地,視頻編碼器可根據(jù)公式(1)計算得到每個宏塊的ε。上述該根據(jù)所述敏感度參數(shù)計算編碼量化參數(shù)具體可通過如下方式實現(xiàn):1041,根據(jù)獲取到的所有敏感度參數(shù)進行聚類以得到多個區(qū)域類別;利用聚類算法(如k-means聚類算法)將所有的εi(i=0,1,2,…n)分為N個區(qū)域類型。如圖3所示,聚類后按類型分可得到至少三個區(qū)域:高敏感區(qū)域、中敏感區(qū)域和低敏感區(qū)域。1042,視頻編碼器針對每個區(qū)域類別計算該區(qū)域類別的平均敏感度參數(shù);視頻編碼器根據(jù)每個區(qū)域中所有宏塊的敏感度參數(shù)計算該區(qū)域的平均敏感度參數(shù),該步驟可如下公式:其中,ε_AVGi代表第i個區(qū)域類別的平均敏感度參數(shù);Si代表第i個區(qū)域類別中所有宏塊的集合;Ni代表第i個區(qū)域類別中宏塊的數(shù)量;ε代表敏感度參數(shù);MBj∈Si代表第j個宏塊屬于第i個區(qū)域類別;εj代表第j個宏塊的敏感度參數(shù);i取值0或自然數(shù);j取值0或自然數(shù)。1043,視頻編碼器根據(jù)所述平均敏感度參數(shù)和預(yù)設(shè)的每個區(qū)域類型的目標質(zhì)量參數(shù)計算所述區(qū)域類別的編碼量化參數(shù)。優(yōu)選方案,為了計算簡便,每個區(qū)域類型預(yù)設(shè)的目標質(zhì)量參數(shù)在本實施例中為相同值,設(shè)每個區(qū)域設(shè)定相同的目標質(zhì)量值Dtarget。那么每個區(qū)域的量化 參數(shù)值根據(jù)上述公式(6)可以得出如下:Qi代表編碼量化參數(shù);DTarget代表每個聚類區(qū)域設(shè)定的目標質(zhì)量值;為了進一步提高編碼量化參數(shù)的準確率,優(yōu)選方案中步驟1043還可以通過如下公式計算:其中,代表誤差系數(shù),是前一幀視頻數(shù)據(jù)編碼后,統(tǒng)計編碼參數(shù)與編碼結(jié)果之間的誤差設(shè)定的誤差參數(shù)。由于現(xiàn)有技術(shù)的一些編碼方法已經(jīng)給出了誤差系數(shù)的計算方式,并且本實施例也可以采用現(xiàn)有方法求取,因此對于該誤差系數(shù)的具體計算方法在此不贅述。本實施例的方法在編碼過程中采用將輸入的視頻數(shù)據(jù)根據(jù)亮度參數(shù)和紋理參數(shù)等內(nèi)容特性分割成視覺敏感度不同的N個區(qū)域的手段,把一幀視頻圖像分割成多個不同的區(qū)域,每個區(qū)域的視覺敏感度系數(shù)差別較大,并利用信號特性和視覺特性調(diào)整不同編碼區(qū)域類型的編碼量化參數(shù),使得最終的圖像各個區(qū)域的視覺質(zhì)量一致,取得提高整體視覺質(zhì)量,合理利用編碼資源的技術(shù)效果。105,視頻編碼器根據(jù)步驟1043得到的每個區(qū)域類型的編碼量化參數(shù)對相應(yīng)的區(qū)域進行編碼,最終完成對一幀視頻數(shù)據(jù)進行編碼。本實施例提供的方法對編碼量化參數(shù)進行了改進,使其與敏感度參數(shù)相關(guān),保證在人眼能夠接受的視覺范圍內(nèi),盡可能的降低編碼量化參數(shù),因此可以降低部分區(qū)域類型的編碼量化參數(shù)的值,如此在參照該編碼量化參數(shù)編碼時便可降低編碼資源的占用率,解決了現(xiàn)有技術(shù)中采用相同的編碼量化參數(shù)導(dǎo)致的編 碼資源利用不合理的技術(shù)問題,進而取得了可以合理利用編碼資源,同時滿足人眼對畫面視覺要求的技術(shù)效果。需要說明的是:本實施例中敏感度參數(shù)、亮度參數(shù)、紋理參數(shù)、每個區(qū)域的平均敏感度系數(shù)和編碼量化參數(shù)等的公式并不僅限制與公式(1)、(4)、(5)、(6)和(7)的形式,通過對這些公式進行等效變換或公式變形等從而得到的其他形式的公式也同樣可應(yīng)用于本實施例中,由于變形后的其他公式的形式是本領(lǐng)域技術(shù)人員可以輕易推導(dǎo)出來的,因此變形后的形式具體形式在此不贅述。本實施例中的方法僅需對前端的視頻編碼器進行改進,不影響后端視頻解碼器的解碼方法,改進小,利用實施應(yīng)用。本實施例提供的方法中,根據(jù)人類視覺系統(tǒng)的理論研究結(jié)論,人眼對不同圖像內(nèi)容的失真敏感度差別較大的原理,定義并計算敏感度系數(shù)。通過亮度參數(shù)kLuminance和紋理參數(shù)kTexture的相乘加權(quán),得到像素失真和感知失真之間的關(guān)系。其中,kLuminance通過經(jīng)典亮度敏感模型的線性擬合并與weber對比度特性結(jié)合得到;kTexture通過主觀實驗和對數(shù)擬合的方式得到。根據(jù)敏感度與亮度和紋理之間的關(guān)系模型,使圖像在編碼時產(chǎn)生的數(shù)值統(tǒng)計失真準確預(yù)估該圖像在人眼觀察時帶來的主觀感知失真,并在編碼時有效選擇合適的編碼量化參數(shù),使得最終的圖像各個區(qū)域的視覺質(zhì)量一致,提高整體視覺質(zhì)量,合理利用編碼資源的技術(shù)效果。實施例2本實施例提供一種視頻編碼裝置,該視頻編碼裝置可是部署在實施例1的視頻編碼器上實現(xiàn)實施例1的方法,也可以就是視頻編碼器。如圖5所示,包括:分析單元41,敏感度獲取單元42,計算單元43,編碼單元44。分析單元41,用于分析接收到的一幀視頻數(shù)據(jù)中每個宏塊的內(nèi)容特征,所述內(nèi)容特征包括亮度參數(shù)和紋理參數(shù);敏感度獲取單元42,用于根據(jù)所述內(nèi)容特征獲取每個宏塊的敏感度參數(shù);計算單元43,用于根據(jù)所述敏感度參數(shù)計算編碼量化參數(shù);編碼單元44,用于根據(jù)所述編碼量化參對所述一幀視頻數(shù)據(jù)進行編碼。其中,分析單元41包括:計算模塊411,用于根據(jù)當前像素規(guī)定范圍內(nèi)的平均亮度值計算亮度參數(shù)和根據(jù)用sobel算子指數(shù)擬合后的函數(shù)計算紋理參數(shù)。敏感度獲取單元42包括:聚類模塊421,區(qū)域計算模塊422,參數(shù)計算模塊423。聚類模塊421,用于根據(jù)獲取到的所有敏感度參數(shù)進行聚類以得到多個區(qū)域類別;區(qū)域計算模塊422,用于針對每個區(qū)域類別計算該區(qū)域類別的平均敏感度參數(shù);參數(shù)計算模塊423,用于根據(jù)所述平均敏感度參數(shù)計算所述區(qū)域類別的編碼量化參數(shù)。本實施例提供的裝置通過控制具有明顯感知特性差異的圖像區(qū)域的編碼量化參數(shù),來控制每個區(qū)域類型的編碼數(shù)值統(tǒng)計失真,從而最終控制每個區(qū)域類型的主觀感知失真,使得圖像整體質(zhì)量均勻,提高主觀視覺質(zhì)量。裝置可以使用于現(xiàn)有的編碼設(shè)備和編碼工具,相比普遍使用的對每個單元采用相同編碼參數(shù)的方法,本發(fā)明提供的裝置能夠在帶寬相同的情況下,提供更好的圖像質(zhì)量感受,提高編碼效率。本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,也即是說:本發(fā)明的裝置、設(shè)備或者組成系統(tǒng)的各個設(shè)備即便執(zhí)行方法或?qū)崿F(xiàn)功能的主體為硬件,但實現(xiàn)該本發(fā)明所述功能的部分也是計算機軟件產(chǎn)品的模塊或單元等。該計算機軟件產(chǎn)品存儲在可讀取的存儲介質(zhì)中,如計算機的軟盤,硬盤或光盤等,包括若干指令用以使得一臺設(shè)備(執(zhí)行 本發(fā)明各個實施例所述的方法。以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)所述以權(quán)利要求的保護范圍為準。