本發(fā)明涉及一種視頻編碼方法。
背景技術(shù):
:隨著多媒體信息技術(shù)的發(fā)展,視頻越來越廣泛地應(yīng)用于移動終端、網(wǎng)絡(luò)直播、家庭影院和遠程監(jiān)控等各個領(lǐng)域,視頻分辨率逐步從標清(SD)向高清(HD)、超高清(UHD)進行轉(zhuǎn)變,分辨率的提高意味著對網(wǎng)絡(luò)帶寬的要求也越來越高,如何提升視頻編碼壓縮效率來減少網(wǎng)絡(luò)帶寬壓力是視頻技術(shù)發(fā)展的一個關(guān)鍵。與此同時,傳統(tǒng)視頻編碼技術(shù)中評價視頻質(zhì)量所采用的峰值信噪比(PeakSignalNoiseRatio,PSNR)只能表示重建值與原始值的失真度,與主觀感知質(zhì)量并不成正比。因此,如何從人眼主觀感知角度來進行視頻編碼,使編碼出的視頻更加符合人們的觀看感受具有重要的意義。如何在有限的帶寬下提高視頻質(zhì)量,需要通過碼率(比特率)控制技術(shù)來解決。碼率控制屬于編碼的一個模塊,它通過獲取視頻信源特性(如運動劇烈程度、圖像紋理復(fù)雜度等)和可用網(wǎng)絡(luò)帶寬來計算視頻中每一幀圖像和該圖像中的各個CU(CodingUnit,編碼單元)應(yīng)該分配的比特數(shù),指導編碼器對視頻進行編碼,使輸出的碼流符合信道的傳輸。編碼器將一個視頻分為若干個GOP,每個GOP包含若干幀,每一幀包括包含若干個CU,碼率控制算法基本可以分為三層:GOP(GroupofPicture)層碼率控制、幀層碼率控制和CU層碼率控制。GOP層碼率控制目的就是根據(jù)視頻特性和網(wǎng)絡(luò)帶寬計算各個GOP的目標碼率;幀層碼率控制將一個GOP的目標碼率劃分到GOP中的各個幀,根據(jù)各幀的特性計算各幀的目標碼率;CU層碼率控制的核心是率失真優(yōu)化,它需要使各個CU的編碼失真盡可能小,又必須使消耗的碼率盡可能小,而編碼失真和碼率之間的關(guān)系是反相關(guān),只有碼率越大,編碼失真才越小,因此碼率和編碼失真之間需要進行權(quán)衡,才能使率失真代價J達到最?。簃in{J},whereJ=λR+DSSE。其中λ為拉格朗日因子,R代表編碼碼率,DSSE代表編碼失真,傳統(tǒng)拉格朗日率失真優(yōu)化中采用的編碼失真通常是SSE(SumofSquaredError),它代表編碼預(yù)測值相對于原始數(shù)據(jù)值的失真,但是它不能很好地描述人眼感知的視頻失真的大小。人類視覺系統(tǒng)(HumanVisualSystem,HVS)具有主觀選擇性,對于同一幀圖像,人眼對于各個區(qū)域的敏感程度并不一樣,比如運動區(qū)域、紋理復(fù)雜區(qū)域、前景區(qū)域則容易吸引人眼的注意。因此,對于人眼較敏感的區(qū)域,可以分配更多的碼率,對于人眼較不敏感的區(qū)域,可以相對分配較少的碼率,從而在總碼率不變的情況下提升整體的主觀質(zhì)量。目前,以主觀感知為指導的碼率控制研究主要集中在感興趣區(qū)域(RegionofInterest,ROI)、顯著性特征(Saliency)、恰可察覺失真(JustNoticeableDifference,JND)和結(jié)構(gòu)相似度(StructuralSimilarity,SSIM)。一篇來自NCBI的文獻“GradientMagnitudeSimilarityDeviation:AHighlyEfficientPerceptualImageQualityIndex,IEEETransactionsonImageProcessing,2013,23(2):684-95”提出了一種基于梯度幅值相似度GMSD(GradientMagnitudeSimilarityDeviation)的圖像質(zhì)量評價指標,證明了一幀圖像中梯度的失真容易引起人眼的察覺,且比SSIM更加符合人眼感知,而如何利用它指導碼率控制尚未有人研究。該文獻中描述的GMS(GradientMagnitudeSimilarity,梯度幅值相似度)表示了各像素點的梯度幅值失真:其中c是一個常數(shù),md(i)和mr(i)分別表示失真圖像和參考圖像在像素點i處的梯度幅值,求取方式為:其中r和d分別表示參考圖像和失真圖像的亮度值,hx和hy分別是用Prewitt邊緣檢測算子求取的在水平和豎直方向的梯度。技術(shù)實現(xiàn)要素:本發(fā)明的目的在于克服現(xiàn)有技術(shù)中的不足而提供一種視頻編碼方法。為實現(xiàn)上述目的,一方面,本發(fā)明提供的一種視頻編碼方法,包括如下步驟:在GOP層碼率控制階段,計算出各個GOP的目標碼率RGOP;在幀層碼率控制階段,利用第i幀和第i-1幀的梯度幅值相似性的平均值來表示第i幀和第i-1幀之間的復(fù)雜度變化值GMSF(i);在CU層碼率控制階段,用Canny邊緣檢測算子代替原Prewitt邊緣檢測算子,求取第j個CU的失真值和參考值的梯度幅值mdj(x,y)和mrj(x,y),并進一步求取第j個CU的平均梯度幅值失真GMSB(j)。優(yōu)選地,在幀層碼率控制階段的步驟中,通過公式計算第i幀和第i-1幀之間的復(fù)雜度變化值GMSF(i),其中公式中mi(x,y)和mi-1(x,y)分別表示第i幀和第i-1幀在像素點(x,y)處的梯度幅值,H和W分別表示幀的高度和寬度,c為一個常數(shù)。優(yōu)選地,在GOP層碼率控制階段的步驟中,通過公式計算當前幀的目標碼率,其中N為當前GOP中的幀數(shù),α為幀復(fù)雜度調(diào)整因子。優(yōu)選地,α通過公式可得,α用于表示幀間復(fù)雜度的相對變化。優(yōu)選地,通過公式計算平均梯度幅值失真GMSB(i),其中公式中HB和WB分別表示當前CU的高度和寬度,c是一個常數(shù)。優(yōu)選地,定義第j個CU的感知失真度為DGMS(j)=1-GMSB(j),定義感知率失真模型為J=λR+βDGMS(j),其中J代表率失真代價,λ為拉格朗日因子,R為當前CU的碼率,β為感知失真度調(diào)整因子。8、優(yōu)選地,感知率失真模型中的感知失真度調(diào)整因子β根據(jù)β=wpβp+wlβl+wuβu+wulβul計算,其中公式中βp、β1、βu、βul分別表示前一幀相同位置、當前CU的左邊、當前CU的上邊、當前CU的左上邊的CU的感知失真度調(diào)整因子,wp、wl、wu、wul分別表示βp、βl、βu、βul的權(quán)重,且滿足wp+wl+wu+wul=1。根據(jù)本發(fā)明提供的一種視頻編碼方法,采用幀間梯度幅值相似度的指標,更確切地描述幀間變化,解決幀間劇烈變化帶來的編碼質(zhì)量下降問題;利用Canny邊緣檢測算子求取梯度,除了提取邊緣,還能夠較好的保護紋理區(qū)域,從而使GMS更完整的表示梯度幅值失真;建立一種感知率失真模型,利用當前CU的梯度幅值失真來取代傳統(tǒng)編碼失真SSE,使失真值更加符合人眼感知失真,因此本發(fā)明結(jié)合人眼感知失真特性,改善了現(xiàn)有碼率的控制方法,提升了視頻編碼的主觀質(zhì)量。具體實施方式下面詳細描述本發(fā)明的實施例。本發(fā)明以H265為實施例提供了一種視頻編碼方法,但可以理解這并不局限于H265,還可應(yīng)用于MPEG2、H264、AVS、AVS+等編碼器。本實施例的視頻編碼方法包括碼率控制、GOP層計算各GOP目標碼率、幀層根據(jù)幀間梯度幅值相似度衡量幀間復(fù)雜度,調(diào)整每幀目標碼率、CU層利用CU梯度幅值失真值取代SSE,修改率失真模型,選擇率失真代價最小的模式等四個流程。具體地,包括如下步驟:1、在GOP層碼率控制階段,計算出各個GOP的目標碼率RGOP;2、在幀層碼率控制階段,利用第i幀和第i-1幀的梯度幅值相似性的平均值來表示第i幀和第i-1幀之間的復(fù)雜度變化值GMSF(i);3、在CU層碼率控制階段,用Canny邊緣檢測算子代替原Prewitt邊緣檢測算子,求取第j個CU的失真值和參考值的梯度幅值mdj(x,y)和mrj(x,y),并進一步求取第j個CU的平均梯度幅值失真GMSB(j)。根據(jù)上述步驟,在幀層碼率控制,現(xiàn)有方法通常采用幀差法檢測幀間變化劇烈程度,但是該類方法會將不易引起察覺的平坦區(qū)域的變化和大量噪點也計算入內(nèi),造成較大的誤差。而本發(fā)明提出一種幀間梯度相似度(GradientMagnitudeSimilaritybetweenFrames,GMSF)的指標,根據(jù)當前幀和前一幀的梯度幅值相似性來衡量幀間變化劇烈程度,能夠更確切的描述幀間變化。在碼率分配方案上,幀間變化越大則分配更多的碼率,反之則分配較少的碼率,能夠較好的解決幀間劇烈變化帶來的編碼質(zhì)量下降問題。具體地,在幀層碼率控制階段的步驟中,通過公式計算第i幀和第i-1幀之間的復(fù)雜度變化值GMSF(i),其中公式中mi(x,y)和mi-1(x,y)分別表示第i幀和第i-1幀在像素點(x,y)處的梯度幅值,H和W分別表示幀的高度和寬度,c為一個常數(shù)。根據(jù)上述算法,在GOP層碼率控制階段的步驟中,通過公式計算當前幀的目標碼率,其中N為當前GOP中的幀數(shù),α為幀復(fù)雜度調(diào)整因子。特別地,α通過公式可得,α用于表示幀間復(fù)雜度的相對變化。在CU層碼率控制,原始GMS求取中所用的Prewitt邊緣檢測算子雖然能夠較好的提取邊緣,但是大部分紋理區(qū)域都不能有效提取,本發(fā)明利用Canny邊緣檢測算子求取梯度,除了提取邊緣,還能夠較好的保護紋理區(qū)域,從而使GMS更完整的表示梯度幅值失真。具體地,在CU層碼率控制階段的步驟中,通過公式計算平均梯度幅值失真GMSB(i),其中公式中HB和WB分別表示當前CU的高度和寬度,c是一個常數(shù)。在CU層碼率控制,由于傳統(tǒng)拉格朗日率失真優(yōu)化中采用的編碼失真SSE不能很好地描述人眼感知的視頻失真的大小,本發(fā)明建立一種感知率失真模型,利用當前CU的梯度幅值失真來取代傳統(tǒng)編碼失真SSE,使失真值更加符合人眼感知失真,對于人眼越敏感的區(qū)域,則分配較多的碼率,反之則分配較少的碼率具體地,定義第j個CU的感知失真度為DGMS(j)=1-GMSB(j),定義感知率失真模型為J=λR+βDGMS(j),其中J代表率失真代價,λ為拉格朗日因子,R為當前CU的碼率,β為感知失真度調(diào)整因子。9、根據(jù)上述算法,感知率失真模型中的感知失真度調(diào)整因子β根據(jù)β=wpβp+wlβl+wuβu+wulβul計算,其中公式中βp、βl、βu、βul分別表示前一幀相同位置、當前CU的左邊、當前CU的上邊、當前CU的左上邊的CU的感知失真度調(diào)整因子,wp、wl、wu、wul分別表示βp、βl、βu、βul的權(quán)重,且滿足wp+wl+wu+wul=1。由于本發(fā)明面向提升主觀感知質(zhì)量,將本發(fā)明方法與x265方法各自編碼9個視頻,其中3個為運動緩慢視頻,3個為運動適中視頻,3個為運動劇烈視頻,并邀請5個非專業(yè)人士進行主觀打分,在對比之下,如果認為好的記1分,不好的記0分,可得一得分結(jié)果:運動緩慢(共15分)運動適中(共15分)運動劇烈(共15分)x265方法746本方法8119由該結(jié)果可見,本方法對于原x265方法有較大提升,能夠更加符合人眼視覺感知,尤其是對于運動適中的場景,本發(fā)明效果更佳。綜上,根據(jù)本發(fā)明提供的一種視頻編碼方法,采用幀間梯度幅值相似度的指標,更確切地描述幀間變化,解決幀間劇烈變化帶來的編碼質(zhì)量下降問題;利用Canny邊緣檢測算子求取梯度,除了提取邊緣,還能夠較好的保護紋理區(qū)域,從而使GMS更完整的表示梯度幅值失真;建立一種感知率失真模型,利用當前CU的梯度幅值失真來取代傳統(tǒng)編碼失真SSE,使失真值更加符合人眼感知失真,因此本發(fā)明結(jié)合人眼感知失真特性,改善了現(xiàn)有碼率的控制方法,提升了視頻編碼的主觀質(zhì)量。盡管上面已經(jīng)示出和描述了本發(fā)明的實施例,可以理解的是,上述實施例是示例性的,不能理解為對本發(fā)明的限制,本領(lǐng)域的普通技術(shù)人員在不脫離本發(fā)明的原理和宗旨的情況下在本發(fā)明的范圍內(nèi)可以對上述實施例進行變化、修改、替換和變型。當前第1頁1 2 3