本發(fā)明屬于hevc高清視頻編碼技術(shù)領(lǐng)域,尤其涉及一種基于主觀感興趣區(qū)域和時(shí)空域相結(jié)合的碼率控制方法。
背景技術(shù):
高效視頻編碼hevc(highefficiencyvideocoding)是jct-vc會(huì)議提出的最新一代視頻編碼標(biāo)準(zhǔn)。隨著實(shí)際生活應(yīng)用中的高清、超高清視頻壓縮的需求日益增多,h.264視頻編碼標(biāo)準(zhǔn)已經(jīng)不能滿足高清視頻壓縮的需求。相較于h.264視頻壓縮編碼標(biāo)準(zhǔn),hevc擁有更優(yōu)異的編碼性能,將得到廣泛的應(yīng)用。而碼率控制技術(shù)是視頻壓縮編碼中的一個(gè)重要部分,在實(shí)際的應(yīng)用場合,如何在有限的帶寬資源下保證編碼后視頻的質(zhì)量,即為碼率控制技術(shù)所要解決的問題。hevc采用混合編碼框架,包括碼率控制、幀內(nèi)預(yù)測(cè)、幀間預(yù)測(cè)、變換量化、熵編碼、環(huán)路濾波等模塊。其中碼率控制模塊包含目標(biāo)碼率分配和目標(biāo)碼率實(shí)現(xiàn)兩個(gè)子模塊。碼率控制的目的是在滿足總編碼比特?cái)?shù)小于目標(biāo)比特?cái)?shù)的前提下,為每一個(gè)編碼單元確定最優(yōu)的量化參數(shù),使得總失真最小。碼率控制模塊主要包括兩個(gè)步驟,目標(biāo)比特分配和目標(biāo)比特實(shí)現(xiàn)。目標(biāo)比特分配主要任務(wù)為根據(jù)編碼設(shè)定總目標(biāo)比特?cái)?shù)來確定每個(gè)編碼單元的最優(yōu)比特分配?,F(xiàn)有的碼率控制算法基于分層次進(jìn)行碼率分配,分別依次對(duì)gop層、圖像層、ctu層進(jìn)行目標(biāo)碼率分配。進(jìn)行分配的依據(jù)主要考慮幀編碼格式(i、b、p幀)、圖像復(fù)雜度及緩沖區(qū)狀態(tài)等因素對(duì)碼率進(jìn)行動(dòng)態(tài)分配;目標(biāo)比特實(shí)現(xiàn)部分主要任務(wù)為建立目標(biāo)比特與量化參數(shù)qp的關(guān)系模型(r-qp模型),根據(jù)每個(gè)編碼單元的目標(biāo)比特分配值確定量化參數(shù)qp進(jìn)行下一步編碼工作。現(xiàn)有的目標(biāo)比特實(shí)現(xiàn)部分算法中多采用基于雙曲線函數(shù)特性的r-λ-qp模型來確定量化參數(shù)。下面將分別介紹在hevc中目標(biāo)比特分配和目標(biāo)比特實(shí)現(xiàn)兩個(gè)過程的具體實(shí)現(xiàn)算法。1、目標(biāo)比特分配。目標(biāo)比特分配采用分層次的分配策略,分別依次對(duì)gop層、圖像層、ctu層進(jìn)行目標(biāo)比特分配。1)gop層目標(biāo)比特分配。gop是碼率控制算法需要處理的最大編碼單元。gop層目標(biāo)比特分配策略主要參考信道速率和緩沖區(qū)狀態(tài)兩個(gè)因素為每個(gè)gop分配目標(biāo)比特?cái)?shù)。具體分配公式為:
其中,ng為一個(gè)gop中的幀數(shù),
其中,u為設(shè)定信道速率,fr為幀率,nv,c為當(dāng)前視頻序列已經(jīng)編碼的總幀數(shù),這些幀的實(shí)際編碼比特?cái)?shù)為rv,c,sw為固定參數(shù)。
2)圖像層目標(biāo)比特分配。該過程將gop層得到的目標(biāo)比特分配給每一幅圖像,參考當(dāng)前gop已編碼的實(shí)際比特?cái)?shù)和分配權(quán)重來進(jìn)行圖像層目標(biāo)比特分配。具體算法計(jì)算公式為:
tf(j)=β·ta(j)+(1-β)·tb(j);
其中,β為固定參數(shù)。ta(j)為根據(jù)gop級(jí)的總目標(biāo)比特分配數(shù)為每一幅圖像分配的目標(biāo)比特?cái)?shù),具體為:
tb為根據(jù)當(dāng)前gop剩余編碼比特?cái)?shù)為該幅圖像分配的目標(biāo)比特?cái)?shù),具體為:
其中,rg,c為當(dāng)前gop中已編碼圖像的實(shí)際比特?cái)?shù),ωf(j)為圖像級(jí)比特分配權(quán)重,根據(jù)不同的時(shí)域預(yù)測(cè)結(jié)構(gòu)對(duì)gop中不同的圖像設(shè)置了固定的ωf(j)。由以上公式確定圖像級(jí)的目標(biāo)比特分配。
3)ctu層目標(biāo)比特分配。在hevc視頻壓縮編碼過程中,將每幅圖像劃分為64x64大小的編碼單元ctu,為最小的編碼單元。目標(biāo)比特分配具體公式參考如下:
其中,rl,c為當(dāng)前幀已編碼ctu所用實(shí)際比特?cái)?shù),hf為圖像頭信息所用實(shí)際編碼數(shù),ωl(m)為當(dāng)前ctu的比特分配權(quán)重,該權(quán)重值由當(dāng)前ctu的內(nèi)容特性決定。官方壓縮模型中將該權(quán)重的值設(shè)定為前一幀圖像中相同位置ctu編碼mad的平方,即通過前一幀預(yù)測(cè)得到該權(quán)重值。
通過以上分配策略完成hevc視頻編碼過程中各級(jí)編碼單元的分配編碼比特?cái)?shù),為hevc視頻壓縮碼率控制的第一個(gè)步驟。
2、目標(biāo)比特實(shí)現(xiàn)。由目標(biāo)比特分配算法可以得到各級(jí)編碼單元的目標(biāo)比特分配。目標(biāo)比特實(shí)現(xiàn)模塊將已得到的目標(biāo)比特通過一定的r-qp模型轉(zhuǎn)化為量化參數(shù)qp值,用于變化量化模型進(jìn)行壓縮。該部分的重點(diǎn)為建立合適的r-qp模型,使得用該模型得到的qp進(jìn)行量化編碼后的比特?cái)?shù)與目標(biāo)設(shè)定比特?cái)?shù)相同。
現(xiàn)行官方壓縮模型中所用模型為r-λ-qp模型,該模型用雙曲函數(shù)模型來模擬視頻碼率和失真之間關(guān)系,求得到拉格朗日優(yōu)化因子λ,具體公式為:
qp=4.2005lnλ+13.7122;
其中,d為視頻編碼失真,r為視頻碼率,α和β為與視頻內(nèi)容特性有關(guān)的參數(shù)。在實(shí)現(xiàn)過程中,α和β為保持動(dòng)態(tài)更新。編碼當(dāng)前ctu時(shí)α和β值參考前一幀編碼圖像相同位置ctu的α和β的更新值,編碼完成后根據(jù)實(shí)際編碼情況更新α和β的值,實(shí)現(xiàn)動(dòng)態(tài)更新。
通過目標(biāo)比特實(shí)現(xiàn)算法得到編碼量化參數(shù)qp,參考該qp值進(jìn)行變化量化過程即可實(shí)現(xiàn)hevc視頻編碼的壓縮過程。當(dāng)每幀圖像壓縮完成后,在hevc官方模型中衡量視頻壓縮質(zhì)量的標(biāo)準(zhǔn)為psnr,該參數(shù)由原始序列與編碼重構(gòu)后序列之間失真計(jì)算所得,具體公式為:
其中,mse為均方誤差值,計(jì)算公式為:
m,n為圖像尺寸,i(i,j)和k(i,j)分別為原始圖像和重構(gòu)圖像。
經(jīng)過以上算法分析可知,在hevc各級(jí)編碼單元碼率分配過程中有兩點(diǎn)缺陷。
第一,在碼率分配的過程中考慮了編碼結(jié)構(gòu)與視頻序列內(nèi)容特性等客觀因素進(jìn)行了碼率分配。但由于人眼在觀測(cè)視頻的過程中,對(duì)每一幀圖像的觀測(cè)是有側(cè)重區(qū)域的,合理的碼率分配策略應(yīng)該為在人眼關(guān)注的區(qū)域分配較多的碼率,在人眼不關(guān)注的區(qū)域分配較少的碼率,因此完全基于客觀參數(shù)的碼率分配策略并不是一種最優(yōu)的分配策略。
第二,hevc壓縮編碼最終結(jié)果評(píng)價(jià)標(biāo)準(zhǔn)為psnr,該值是基于一幀圖像的全局均方誤差值mse進(jìn)行計(jì)算的,圖像不同位置的誤差值對(duì)最終結(jié)果的影響程度相同,同樣基于此思想的psnr評(píng)價(jià)標(biāo)準(zhǔn)與人眼觀測(cè)到的主觀評(píng)價(jià)結(jié)果相差還是較大,導(dǎo)致該參數(shù)并不能很好的反映視頻真實(shí)的壓縮質(zhì)量好壞,需要對(duì)該最終評(píng)價(jià)結(jié)果進(jìn)行一定的修正。
綜上所述,現(xiàn)有技術(shù)存在的問題是:在hevc各級(jí)編碼單元碼率分配過程中存在在人眼不關(guān)注的區(qū)域分配較少的碼率;psnr評(píng)價(jià)標(biāo)準(zhǔn)與人眼觀測(cè)到的主觀評(píng)價(jià)結(jié)果相差還是較大,導(dǎo)致該參數(shù)并不能很好的反映視頻真實(shí)的壓縮質(zhì)量好壞。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有技術(shù)存在的問題,本發(fā)明提供了一種基于主觀感興趣區(qū)域和時(shí)空域相結(jié)合的碼率控制方法。
本發(fā)明是這樣實(shí)現(xiàn)的,一種基于主觀感興趣區(qū)域和時(shí)空域相結(jié)合的碼率控制方法,所述基于主觀感興趣區(qū)域和時(shí)空域相結(jié)合的碼率控制方法包括:
(1)在空間域方面,采用基于直方圖分布的頻率計(jì)算方式修改原算法中ctu級(jí)目標(biāo)比特分配權(quán)重;具體包括:
步驟一,對(duì)每個(gè)64x64的ctu進(jìn)行直方圖統(tǒng)計(jì),計(jì)算ctu編碼塊每級(jí)像素(0-255)出現(xiàn)的頻率,
步驟二,基于得到的直方圖分布,計(jì)算每個(gè)點(diǎn)的顯著值,參考公式如下:
其中,i(x,y)為圖像原始像素值,fre(i)為在ctu中每級(jí)像素值出現(xiàn)的頻率。由該公式計(jì)算得到的顯著值d(x,y)有效的反應(yīng)每個(gè)點(diǎn)在整個(gè)ctu中所占的顯著權(quán)值;
步驟三,對(duì)ctu中每個(gè)點(diǎn)的顯著值進(jìn)行求和做為ctu的最終空域目標(biāo)比特分配權(quán)重,參考公式如下:
(2)在時(shí)間域方面,基于光流和全局運(yùn)動(dòng)估計(jì)算法檢測(cè)出視頻幀中的運(yùn)動(dòng)區(qū)域,根據(jù)運(yùn)動(dòng)區(qū)域修改1中得到的ctu級(jí)目標(biāo)比特分配權(quán)重;具體包括:
步驟一,計(jì)算視頻序列中每幀圖像的光流場,采用以sift算法為基礎(chǔ)的光流估計(jì)算法;
步驟二,對(duì)一幀圖像進(jìn)行運(yùn)動(dòng)區(qū)域提取,基于得到的光流估計(jì)結(jié)果進(jìn)行全局運(yùn)動(dòng)矢量估計(jì),采用6參數(shù)的仿射模型來進(jìn)行全局運(yùn)動(dòng)估計(jì),具體公式參考如下:
dxi=a1xi+a2yi+a3;
dyi=a4xi+a5yi+a6;
其中,(xi,yi)為當(dāng)前幀fn中第i點(diǎn)所處位置,(dxi,dyi)為當(dāng)前序列從第fn-1幀到fn幀的運(yùn)動(dòng)矢量,由光流估計(jì)得到,a=(a1,a2,a3,a4,a5,a6)為所要求得的運(yùn)動(dòng)矢量;
計(jì)算全局運(yùn)動(dòng)估計(jì)向量a公式參考如下:
直到一幀圖像結(jié)束便得到了一幀圖像的運(yùn)動(dòng)區(qū)域;
步驟三,將得到的圖像運(yùn)動(dòng)檢測(cè)圖經(jīng)過二值化處理得到二值化的運(yùn)動(dòng)區(qū)域圖像,其中運(yùn)動(dòng)值大于平均值的歸為運(yùn)動(dòng)點(diǎn),否則歸為非運(yùn)動(dòng)點(diǎn);
步驟四,按編碼ctu的劃分,將得到的二值化運(yùn)動(dòng)區(qū)域圖像進(jìn)行處理,得到每幀圖像中運(yùn)動(dòng)劇烈的ctu;
步驟五,基于得到的運(yùn)動(dòng)劇烈ctu檢測(cè),將由空域得到的ctu級(jí)目標(biāo)比特分配值進(jìn)行調(diào)整:
dl(m)=a*d(m);
其中,d(m)為由空域得到的ctu級(jí)目標(biāo)比特分配權(quán)重值,a為權(quán)重參數(shù),根據(jù)由得出的當(dāng)前ctu是否屬于運(yùn)動(dòng)劇烈ctu取不同的值,如果當(dāng)前ctu屬于運(yùn)動(dòng)劇烈ctu,那么a取大于1的值,否則,a取小于1的值;
(3)對(duì)得到的目標(biāo)比特分配權(quán)重進(jìn)行中心增強(qiáng)操作,得到最終ctu級(jí)目標(biāo)比特分配,完成ctu級(jí)目標(biāo)比特分配權(quán)重修改;對(duì)分配權(quán)重進(jìn)行中心增強(qiáng)調(diào)整,具體參考公式:
其中,dl(m)為由時(shí)空域得到的ctu目標(biāo)比特分配權(quán)重,row為當(dāng)前ctu的行標(biāo)識(shí),col為當(dāng)前ctu的列標(biāo)識(shí),midx為當(dāng)前幀ctu劃分行中值,midy為列中值,a為固定參數(shù);由中心增強(qiáng)調(diào)整公式可知,當(dāng)分配圖像中心區(qū)域ctu時(shí),公式中
(4)修改視頻壓縮最終評(píng)價(jià)標(biāo)準(zhǔn),基于眼動(dòng)儀實(shí)驗(yàn)真實(shí)關(guān)注值對(duì)psnr進(jìn)行修改,形成更能反應(yīng)人眼主觀觀測(cè)效果的roi-psnr;具體公式如下:
其中,m和n為圖像寬和高,i(i,j)為圖像原始像素點(diǎn),k(i,j)為壓縮重構(gòu)后的圖像像素點(diǎn),ω(i,j)為每個(gè)點(diǎn)的權(quán)重參數(shù),值計(jì)算公式參考如下:
其中,a和b為固定參數(shù),v(i,j)為由眼動(dòng)儀實(shí)驗(yàn)得到的圖像中每一點(diǎn)的真實(shí)關(guān)注值,取值范圍為0-255,
更新msep的計(jì)算方式,并帶入psnr計(jì)算公式中,得到更符合人眼主觀觀測(cè)的roi-psnr評(píng)價(jià)參數(shù),公式參考如下:
進(jìn)一步,所述基于主觀感興趣區(qū)域和時(shí)空域相結(jié)合的碼率控制方法包括以下步驟:
步驟一,基于空域計(jì)算每個(gè)ctu級(jí)目標(biāo)比特分配權(quán)重;
步驟二,基于光流和全局運(yùn)動(dòng)估計(jì)算法計(jì)算每幀圖像的運(yùn)動(dòng)區(qū)域作為時(shí)域感興趣區(qū)域;
步驟三,依據(jù)由光流和全局運(yùn)動(dòng)估計(jì)算法得到的時(shí)域感興趣區(qū)域結(jié)果,對(duì)s1中得到的ctu級(jí)目標(biāo)比特分配權(quán)重進(jìn)行調(diào)整;
步驟四,將以時(shí)空域主觀感興趣區(qū)域檢測(cè)得出的ctu級(jí)目標(biāo)比特分配權(quán)重進(jìn)行中心增強(qiáng)操作;
步驟五,將時(shí)空域感興趣區(qū)域和中心增強(qiáng)得到的ctu級(jí)目標(biāo)比特分配權(quán)重用于ctu級(jí)目標(biāo)比特分配公式中,得到最終編碼ctu級(jí)目標(biāo)比特分配進(jìn)行編碼操作;
步驟六,修改視頻壓縮最終評(píng)價(jià)標(biāo)準(zhǔn),基于眼動(dòng)儀實(shí)驗(yàn)真實(shí)關(guān)注值對(duì)psnr進(jìn)行修改,形成更能反應(yīng)人眼主觀觀測(cè)效果的roi-psnr,并用此作為改進(jìn)碼率控制算法的評(píng)價(jià)標(biāo)準(zhǔn)。
進(jìn)一步,對(duì)根據(jù)每個(gè)ctu的直方圖統(tǒng)計(jì),計(jì)算圖像中每個(gè)點(diǎn)的關(guān)注顯著值,公式如下:
其中,i(x,y)為圖像原始像素值,fre(i)為在ctu中每級(jí)像素值出現(xiàn)的頻率;對(duì)ctu中每個(gè)點(diǎn)的顯著值進(jìn)行求和做為ctu的空域目標(biāo)碼率分配權(quán)重,公式如下:
進(jìn)一步,采用6仿射模型來進(jìn)行全局運(yùn)動(dòng)估計(jì),公式如下:
dxi=a1xi+a2yi+a3;
dyi=a4xi+a5yi+a6;
其中,(xi,yi)為當(dāng)前幀fn中第i點(diǎn)所處位置,(dxi,dyi)為當(dāng)前序列從第fn-1幀到fn幀的運(yùn)動(dòng)矢量,由光流估計(jì)得到;
用最小二乘法迭代計(jì)算全局運(yùn)動(dòng)矢量,公式參考如下:
經(jīng)過多次迭代檢測(cè)出運(yùn)動(dòng)矢量與已求得全局運(yùn)動(dòng)矢量差距較大的點(diǎn)作為運(yùn)動(dòng)點(diǎn)進(jìn)行區(qū)分;直到一幀圖像結(jié)束便得到了一幀圖像的運(yùn)動(dòng)區(qū)域;將圖像運(yùn)動(dòng)區(qū)域信息經(jīng)過二值化處理,得到每幀圖像中運(yùn)動(dòng)劇烈的ctu,即得到時(shí)域感興趣區(qū)域。
進(jìn)一步,運(yùn)動(dòng)時(shí)域感興趣區(qū)域檢測(cè)結(jié)果對(duì)得到ctu級(jí)目標(biāo)比特分配權(quán)重進(jìn)行調(diào)整,公式參考如下:
dl(m)=a*d(m);
其中,d(m)為由空域得到的ctu級(jí)目標(biāo)比特分配權(quán)重值,a為權(quán)重參數(shù),根據(jù)由步驟五中得出的當(dāng)前ctu是否屬于運(yùn)動(dòng)劇烈ctu取不同的值,如果當(dāng)前ctu屬于運(yùn)動(dòng)劇烈ctu,那么a取大于1的值,否則,a取小于1的值。
進(jìn)一步,中心增強(qiáng)的公式如下:
其中,dl(m)為由時(shí)空域得到的ctu目標(biāo)比特分配權(quán)重,row為當(dāng)前ctu的行標(biāo)識(shí),col為當(dāng)前ctu的列標(biāo)識(shí),midx為當(dāng)前幀ctu劃分行中值,midy為列中值,a為固定參數(shù);中心增強(qiáng)過后的值作為最終ctu級(jí)目標(biāo)比特分配權(quán)重。
進(jìn)一步,評(píng)價(jià)結(jié)果參數(shù)的修改以人眼真實(shí)主觀關(guān)注顯著圖作為依據(jù),對(duì)mse計(jì)算公式增加權(quán)值計(jì)算,實(shí)現(xiàn)公式如下:
其中,m和n為圖像寬和高,i(i,j)為圖像原始像素點(diǎn),k(i,j)為經(jīng)壓縮重構(gòu)后的圖像像素點(diǎn),ω(i,j)為每個(gè)點(diǎn)的權(quán)重參數(shù),值計(jì)算參考如下:
其中,a和b為固定參數(shù),v(i,j)為由眼動(dòng)儀實(shí)驗(yàn)得到的圖像中每一點(diǎn)的眼動(dòng)儀真實(shí)關(guān)注值,取值范圍為0-255,
本發(fā)明的優(yōu)點(diǎn)及積極效果為:相比于hm16.0壓縮模型,在保證滿足目標(biāo)比特碼率不變的情況下,使hevc壓縮主觀效果更好。本發(fā)明經(jīng)過多次實(shí)驗(yàn)測(cè)試,設(shè)置合適的參數(shù),使得視頻序列不依賴于自身特性,大大提升了壓縮質(zhì)量。以主觀評(píng)價(jià)參數(shù)roi-psnr作為評(píng)價(jià)標(biāo)準(zhǔn),本發(fā)明的改進(jìn)碼率控制算法相較于hm16.0壓縮算法,可以使最終壓縮質(zhì)量平均提升0.46db;同時(shí)本發(fā)明適用于所有視頻序列,對(duì)不同內(nèi)容特性的壓縮序列均有不同程度的提升。本發(fā)明在不影響編碼目標(biāo)碼率實(shí)現(xiàn)的情況下,提升了序列結(jié)果的主觀觀測(cè)質(zhì)量,并且不局限于特定特征的視頻序列,對(duì)于圖像分辨率和紋理特征等因素不過分依賴。
附圖說明
圖1是本發(fā)明實(shí)施例提供的基于主觀感興趣區(qū)域和時(shí)空域相結(jié)合的碼率控制方法流程圖。
圖2是本發(fā)明實(shí)施例提供的檢測(cè)出時(shí)域感興趣ctu示意圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
下面結(jié)合附圖對(duì)本發(fā)明的應(yīng)用原理作詳細(xì)的描述。
如圖1所示,本發(fā)明實(shí)施例提供的基于主觀感興趣區(qū)域和時(shí)空域相結(jié)合的碼率控制方法包括以下步驟:
s101:基于空域計(jì)算每個(gè)ctu級(jí)目標(biāo)比特分配權(quán)重;
s102:基于光流和全局運(yùn)動(dòng)估計(jì)算法計(jì)算每幀圖像的運(yùn)動(dòng)區(qū)域作為時(shí)域感興趣區(qū)域;
s103:依據(jù)由光流和全局運(yùn)動(dòng)估計(jì)算法得到的時(shí)域感興趣區(qū)域結(jié)果,對(duì)得到的ctu級(jí)目標(biāo)比特分配權(quán)重進(jìn)行調(diào)整;
s104:將以時(shí)空域主觀感興趣區(qū)域檢測(cè)得出的ctu級(jí)目標(biāo)比特分配權(quán)重進(jìn)行中心增強(qiáng)操作;
s105:將時(shí)空域感興趣區(qū)域和中心增強(qiáng)得到的ctu級(jí)目標(biāo)比特分配權(quán)重用于ctu級(jí)目標(biāo)比特分配公式中,得到最終編碼ctu級(jí)目標(biāo)比特分配進(jìn)行編碼操作;
s106:修改視頻壓縮最終評(píng)價(jià)標(biāo)準(zhǔn),基于眼動(dòng)儀實(shí)驗(yàn)真實(shí)關(guān)注值對(duì)psnr進(jìn)行修改,形成更能反應(yīng)人眼主觀觀測(cè)效果的roi-psnr,并用此作為改進(jìn)碼率控制算法的評(píng)價(jià)標(biāo)準(zhǔn)。
本發(fā)明實(shí)施例提供的基于主觀感興趣區(qū)域和時(shí)空域相結(jié)合的碼率控制方法具體步驟如下:
(1)基于空域計(jì)算每個(gè)ctu目標(biāo)比特分配權(quán)重。對(duì)每個(gè)64x64的ctu進(jìn)行直方圖統(tǒng)計(jì),計(jì)算該ctu編碼塊每級(jí)像素(0-255)出現(xiàn)的頻率。然后根據(jù)得到的直方圖分布,計(jì)算圖像中每個(gè)點(diǎn)的關(guān)注顯著值,參考公式如下:
其中,i(x,y)為圖像原始像素值,fre(i)為在該ctu中每級(jí)像素值出現(xiàn)的頻率。由該公式計(jì)算得到的顯著值d(x,y)能夠有效的反應(yīng)每個(gè)點(diǎn)在整個(gè)ctu中所占的顯著權(quán)值。對(duì)該ctu中每個(gè)點(diǎn)的顯著值進(jìn)行求和做為該ctu的空域目標(biāo)碼率分配權(quán)重,參考公式如下:
(2)基于光流算法檢測(cè)每幀圖像的運(yùn)動(dòng)區(qū)域作為時(shí)域感興趣區(qū)域。首先采用celiu于2009年提出的以sift算法為基礎(chǔ)的光流估計(jì)算法計(jì)算每幀圖像的光流場。
其次,對(duì)每幀圖像進(jìn)行運(yùn)動(dòng)區(qū)域檢測(cè)。先基于光流估計(jì)結(jié)果進(jìn)行全局運(yùn)動(dòng)矢量估計(jì),該過程采用6仿射模型來進(jìn)行全局運(yùn)動(dòng)估計(jì),具體公式參考如下:
dxi=a1xi+a2yi+a3;
dyi=a4xi+a5yi+a6;
其中,(xi,yi)為當(dāng)前幀fn中第i點(diǎn)所處位置,(dxi,dyi)為當(dāng)前序列從第fn-1幀到fn幀的運(yùn)動(dòng)矢量,由光流估計(jì)得到。
為計(jì)算全局運(yùn)動(dòng)估計(jì)向量a,本發(fā)明采用最小二乘法。公式參考如下:
通過以上公式,經(jīng)過多次迭代跟新全局運(yùn)動(dòng)矢量,在迭代的過程中運(yùn)動(dòng)矢量與已求得全局運(yùn)動(dòng)矢量差距較大的點(diǎn)作為運(yùn)動(dòng)點(diǎn)進(jìn)行區(qū)分。重復(fù)此過程,直到一幀圖像結(jié)束便得到了一幀圖像的運(yùn)動(dòng)區(qū)域。
將以上得到的圖像運(yùn)動(dòng)區(qū)域信息經(jīng)過二值化處理,其中運(yùn)動(dòng)顯著值大于平均值的歸為運(yùn)動(dòng)點(diǎn),否則歸為非運(yùn)動(dòng)點(diǎn)。然后按照編碼ctu的劃分,將二值化運(yùn)動(dòng)區(qū)域圖像進(jìn)行處理,得到每幀圖像中運(yùn)動(dòng)劇烈的ctu。
(3)依據(jù)由光流和全局運(yùn)動(dòng)估計(jì)得到的運(yùn)動(dòng)劇烈ctu檢測(cè)結(jié)果,對(duì)s101中得到的ctu級(jí)目標(biāo)比特分配值進(jìn)行調(diào)整。具體公式參考如下:
dl(m)=a*d(m);
其中,d(m)為由空域得到的ctu級(jí)目標(biāo)比特分配權(quán)重值,a為權(quán)重參數(shù),根據(jù)由步驟五中得出的當(dāng)前ctu是否屬于運(yùn)動(dòng)劇烈ctu取不同的值,如果當(dāng)前ctu屬于運(yùn)動(dòng)劇烈ctu,那么a取大于1的值,否則,a取小于1的值。
(4)將以時(shí)空域主觀感興趣區(qū)域檢測(cè)為標(biāo)準(zhǔn)的的ctu級(jí)目標(biāo)比特分配權(quán)重進(jìn)行中心增強(qiáng)操作,具體參考公式如下:
其中,dl(m)為由時(shí)空域得到的ctu目標(biāo)比特分配權(quán)重,row為當(dāng)前ctu的行標(biāo)識(shí),col為當(dāng)前ctu的列標(biāo)識(shí),midx為當(dāng)前幀ctu劃分行中值,midy為列中值,a為固定參數(shù)。
(5)將時(shí)空域感興趣區(qū)域和中心增強(qiáng)得到的ctu級(jí)目標(biāo)比特分配權(quán)重用于ctu級(jí)目標(biāo)比特分配公式中,得到最終編碼ctu級(jí)目標(biāo)比特分配進(jìn)行以后編碼操作。具體參考公式如下:
其中,tf為當(dāng)前幀目標(biāo)比特分配,rl,c為當(dāng)前幀已編碼ctu所用實(shí)際比特?cái)?shù),hf為圖像頭信息所用實(shí)際編碼數(shù),ωl(m)為當(dāng)前ctu的比特分配權(quán)重。
(6)在psnr計(jì)算模塊修改計(jì)算公式,以人眼真實(shí)主觀關(guān)注顯著圖作為依據(jù),對(duì)mse計(jì)算公式增加權(quán)值計(jì)算,具體實(shí)現(xiàn)公式參考如下:
其中,m和n為圖像寬和高,i(i,j)為圖像原始像素點(diǎn),k(i,j)為經(jīng)壓縮重構(gòu)后的圖像像素點(diǎn),ω(i,j)為每個(gè)點(diǎn)的權(quán)重參數(shù),該值計(jì)算參考如下:
其中,a和b為固定參數(shù),v(i,j)為由眼動(dòng)儀實(shí)驗(yàn)得到的圖像中每一點(diǎn)的眼動(dòng)儀真實(shí)關(guān)注值(取值范圍為0-255),
由以上公式更新msep的計(jì)算方式,并帶入psnr計(jì)算公式中,最終得到更符合人眼主觀觀測(cè)的roi-psnr評(píng)價(jià)參數(shù),公式參考如下:
由于人眼在觀看視頻時(shí)是有側(cè)重的,從空間域上來說,人眼更偏向于觀測(cè)每幀中的復(fù)雜區(qū)域;從時(shí)間域上來說,人眼更偏向于觀測(cè)運(yùn)動(dòng)的區(qū)域;從觀測(cè)習(xí)慣來說,人眼更偏向于關(guān)注圖像的中心區(qū)域。針對(duì)這三方面,本發(fā)明分別在空間域和時(shí)間域上對(duì)ctu級(jí)目標(biāo)比特權(quán)重ωl(m)計(jì)算進(jìn)行了修改,同時(shí)進(jìn)行了相應(yīng)分配權(quán)重的中心增強(qiáng)操作,形成了一種改進(jìn)的碼率分配策略,使得最終碼率更多地分配在人眼主觀關(guān)注區(qū)域。并且對(duì)于最終評(píng)價(jià)標(biāo)準(zhǔn)psnr進(jìn)行了相應(yīng)的修改,形成了更符合人眼主觀觀測(cè)結(jié)果的評(píng)測(cè)標(biāo)準(zhǔn)roi-psnr,用該參數(shù)作為改進(jìn)碼率控制算法的評(píng)價(jià)標(biāo)準(zhǔn)更為合理和。以下對(duì)于這四方面的發(fā)明改進(jìn)進(jìn)行分別說明:
1、空域ctu級(jí)碼率分配修改。
在空間域方面,研究發(fā)現(xiàn)人眼觀測(cè)視頻的時(shí)候?qū)τ诿繋瑘D像中的高頻區(qū)域相對(duì)于低頻部分更感興趣,所以在進(jìn)行ctu級(jí)碼率分配的時(shí)候應(yīng)該使高頻區(qū)域分的更多的碼率,低頻區(qū)域分的較少的碼率。基于此分析,本發(fā)明采用基于直方圖分布的頻率計(jì)算方式修改原算法的ctu級(jí)目標(biāo)比特分配,使得最終ctu級(jí)目標(biāo)比特分配結(jié)果更主觀更合理。該部分具體實(shí)現(xiàn)過程如下:
步驟一:首先對(duì)每個(gè)64x64的ctu進(jìn)行直方圖統(tǒng)計(jì),計(jì)算該ctu編碼塊每級(jí)像素(0-255)出現(xiàn)的頻率。
步驟二:基于步驟一中得到的直方圖分布,計(jì)算每個(gè)點(diǎn)的顯著值,參考公式如下:
其中,i(x,y)為圖像原始像素值,fre(i)為在該ctu中每級(jí)像素值出現(xiàn)的頻率。由該公式計(jì)算得到的顯著值d(x,y)能夠有效的反應(yīng)每個(gè)點(diǎn)在整個(gè)ctu中所占的顯著權(quán)值。
步驟三:對(duì)該ctu中每個(gè)點(diǎn)的顯著值進(jìn)行求和做為該ctu的最終空域目標(biāo)比特分配權(quán)重,參考公式如下:
經(jīng)過以上三個(gè)步驟得到基于空間域的ctu級(jí)目標(biāo)比特分配權(quán)重d(m),其本質(zhì)相當(dāng)于計(jì)算該ctu塊的復(fù)雜程度,當(dāng)d(m)值大時(shí),表征該ctu文理較為復(fù)雜,屬于高頻塊;當(dāng)d(m)值較小時(shí),表征該ctu塊相對(duì)較為簡單平緩,屬于低頻塊。該過程利用人眼對(duì)高頻區(qū)域感興趣的思想得到了基于空域的ctu級(jí)目標(biāo)比特分配權(quán)重。
2、時(shí)域ctu級(jí)目標(biāo)比特分配修改。
在時(shí)間域方面,經(jīng)研究可知人眼在觀測(cè)視頻時(shí)對(duì)運(yùn)動(dòng)區(qū)域比較感興趣,合理的碼率分配標(biāo)準(zhǔn)應(yīng)該為在運(yùn)動(dòng)區(qū)域ctu目標(biāo)比特分配更改更多,在非運(yùn)動(dòng)區(qū)域ctu目標(biāo)比特分配應(yīng)該相對(duì)較少?;诖怂枷氡景l(fā)明實(shí)現(xiàn)了一種基于運(yùn)動(dòng)區(qū)域檢測(cè)的時(shí)域ctu目標(biāo)碼率調(diào)整方法。首先基于光流估計(jì)算法和全局運(yùn)動(dòng)矢量估計(jì)檢測(cè)出每幀圖像運(yùn)動(dòng)區(qū)域,并將運(yùn)動(dòng)區(qū)域進(jìn)一步處理,提取出每幀圖像中運(yùn)動(dòng)劇烈的ctu編碼塊,再基于此進(jìn)行時(shí)域的碼率分配調(diào)整。具體過程如下:
步驟一:計(jì)算視頻序列中每幀圖像的光流場,這里采用的是celiu于2009年提出的以sift算法為基礎(chǔ)的光流估計(jì)算法。
步驟二:對(duì)一幀圖像進(jìn)行運(yùn)動(dòng)區(qū)域提取。首先基于步驟一得到的光流估計(jì)結(jié)果進(jìn)行全局運(yùn)動(dòng)矢量估計(jì),該過程本發(fā)明采用6參數(shù)的仿射模型來進(jìn)行全局運(yùn)動(dòng)估計(jì),具體公式參考如下:
dxi=a1xi+a2yi+a3;
dyi=a4xi+a5yi+a6;
其中,(xi,yi)為當(dāng)前幀fn中第i點(diǎn)所處位置,(dxi,dyi)為當(dāng)前序列從第fn-1幀到fn幀的運(yùn)動(dòng)矢量,由步驟一光流估計(jì)得到。a=(a1,a2,a3,a4,a5,a6)為所要求得的運(yùn)動(dòng)矢量。
為計(jì)算全局運(yùn)動(dòng)估計(jì)向量a,本發(fā)明采用最小二乘法。公式參考如下:
通過以上公式,經(jīng)過多次迭代跟新全局運(yùn)動(dòng)矢量,在迭代的過程中運(yùn)動(dòng)矢量與已求得全局運(yùn)動(dòng)矢量差距較大的點(diǎn)作為運(yùn)動(dòng)點(diǎn)進(jìn)行區(qū)分。重復(fù)此過程,直到一幀圖像結(jié)束便得到了一幀圖像的運(yùn)動(dòng)區(qū)域。
步驟三:將步驟二得到的圖像運(yùn)動(dòng)檢測(cè)圖經(jīng)過二值化處理得到二值化的運(yùn)動(dòng)區(qū)域圖像。其中運(yùn)動(dòng)值大于平均值的歸為運(yùn)動(dòng)點(diǎn),否則歸為非運(yùn)動(dòng)點(diǎn)。
步驟四:按編碼ctu的劃分,將步驟三中得到的二值化運(yùn)動(dòng)區(qū)域圖像進(jìn)行處理,得到每幀圖像中運(yùn)動(dòng)劇烈的ctu。
步驟五:基于步驟四得到的運(yùn)動(dòng)劇烈ctu檢測(cè),將由空域得到的ctu級(jí)目標(biāo)比特分配值進(jìn)行調(diào)整。
dl(m)=a*d(m);
其中,d(m)為由空域得到的ctu級(jí)目標(biāo)比特分配權(quán)重值,a為權(quán)重參數(shù),根據(jù)由步驟四中得出的當(dāng)前ctu是否屬于運(yùn)動(dòng)劇烈ctu取不同的值,如果當(dāng)前ctu屬于運(yùn)動(dòng)劇烈ctu,那么a取大于1的值,否則,a取小于1的值。
經(jīng)過以上六個(gè)步驟,實(shí)現(xiàn)了基于時(shí)空域相結(jié)合的目標(biāo)比特分配權(quán)重修改。
3、基于中心增強(qiáng)的ctu級(jí)目標(biāo)比特分配調(diào)整。
考慮人眼在觀測(cè)視頻過程中對(duì)于圖像中心區(qū)域部分側(cè)重比較大,所以本發(fā)明在完成了基于時(shí)空域的ctu級(jí)目標(biāo)比特分配權(quán)重調(diào)整后,對(duì)該分配權(quán)重進(jìn)行中心增強(qiáng)調(diào)整,具體參考公式:
其中,dl(m)為由時(shí)空域得到的ctu目標(biāo)比特分配權(quán)重,row為當(dāng)前ctu的行標(biāo)識(shí),col為當(dāng)前ctu的列標(biāo)識(shí),midx為當(dāng)前幀ctu劃分行中值,midy為列中值,a為固定參數(shù)。由該中心增強(qiáng)調(diào)整公式可知,當(dāng)分配圖像中心區(qū)域ctu時(shí),公式中
經(jīng)過時(shí)空域和中心增強(qiáng)得到ctu級(jí)目標(biāo)比特分配權(quán)重ωl(m)后,將該值用于ctu級(jí)目標(biāo)比特分配即可。
其中,tf為當(dāng)前幀目標(biāo)比特分配,rl,c為當(dāng)前幀已編碼ctu所用實(shí)際比特?cái)?shù),hf為圖像頭信息所用實(shí)際編碼數(shù),ωl(m)為當(dāng)前ctu的比特分配權(quán)重。
通過以上三個(gè)部分的改進(jìn),本發(fā)明實(shí)現(xiàn)了基于主觀感興趣區(qū)域和時(shí)空域相結(jié)合的碼率控制算法。
4、算法評(píng)價(jià)結(jié)果參數(shù)psnr修改。
對(duì)于算法結(jié)果的評(píng)價(jià),本發(fā)明提出了一種基于真實(shí)觀測(cè)顯著值的改進(jìn)roi-psnr評(píng)價(jià)參數(shù),該參數(shù)以眼動(dòng)儀真實(shí)觀測(cè)結(jié)果作為mse計(jì)算權(quán)重的更改依據(jù),使最終計(jì)算結(jié)果的好壞更趨近與人眼主觀觀測(cè)。具體實(shí)現(xiàn)公式參考如下:
其中,m和n為圖像寬和高,i(i,j)為圖像原始像素點(diǎn),k(i,j)為壓縮重構(gòu)后的圖像像素點(diǎn),ω(i,j)為每個(gè)點(diǎn)的權(quán)重參數(shù),該值計(jì)算公式參考如下:
其中,a和b為固定參數(shù),v(i,j)為由眼動(dòng)儀實(shí)驗(yàn)得到的圖像中每一點(diǎn)的真實(shí)關(guān)注值(取值范圍為0-255),
由以上公式更新msep的計(jì)算方式,并帶入psnr計(jì)算公式中,最終得到更符合人眼主觀觀測(cè)的roi-psnr評(píng)價(jià)參數(shù),公式參考如下:
相較于原始hevc中碼率控制算法,本發(fā)明中提出的算法在不改變最終壓縮碼率的情況下,在空間域、時(shí)間域、中心增強(qiáng)和最終評(píng)價(jià)標(biāo)準(zhǔn)四個(gè)方面進(jìn)行了改進(jìn),使得改進(jìn)后算法結(jié)果人眼主觀觀測(cè)效果更好。為測(cè)試發(fā)明效果,對(duì)部分hm標(biāo)準(zhǔn)測(cè)試序列在表1的環(huán)境下進(jìn)行了實(shí)驗(yàn),具體實(shí)驗(yàn)數(shù)據(jù)和分析數(shù)據(jù)由表2給出。
表1實(shí)驗(yàn)環(huán)境
表2實(shí)驗(yàn)數(shù)據(jù)及分析數(shù)據(jù)
在表2中,實(shí)驗(yàn)對(duì)原始hm16.0壓縮算法和本發(fā)明改進(jìn)的算法分別用參數(shù)rsnr和roi-psnr進(jìn)行了比較。由表中測(cè)試結(jié)果可知,相較于原始hm16.0碼率控制算法,考慮主觀感興趣區(qū)域和時(shí)空域相結(jié)合的碼率控制算法,具有更好的主觀壓縮效果。以修改后的更合理更符合人眼主觀觀測(cè)的roi-psnr參數(shù)作為評(píng)價(jià)標(biāo)準(zhǔn),對(duì)于不同的測(cè)試序列,本發(fā)明的改進(jìn)碼率控制算法可以使最終壓縮質(zhì)量提升平均0.46db。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。