本發(fā)明屬于多媒體通信技術(shù)領(lǐng)域,涉及一種針對屏幕內(nèi)容視頻的幀內(nèi)預(yù)測的快速算法。
背景技術(shù):
隨著屏幕共享,遠(yuǎn)程桌面,動(dòng)畫存儲(chǔ),流媒體和在線教育等應(yīng)用的廣泛運(yùn)用,以及人們對高清視頻的追求,如何在低碼率下使屏幕內(nèi)容視頻在電腦屏幕、手機(jī)屏幕等其它終端上高清或者超高清地顯示,吸引了學(xué)術(shù)界和工業(yè)界研究者們的廣泛關(guān)注。屏幕內(nèi)容視頻往往包含許多靜態(tài)的背景,或者是一些運(yùn)動(dòng)的電腦圖片、文檔等。與攝像機(jī)捕捉的自然內(nèi)容相比,有著傳感器噪聲較少,有大量的平滑區(qū)域,飽和度高,有較多重復(fù)塊,并且一般情況下其內(nèi)容的所擁有的顏色也只有少量的幾種,而不像自然圖像那樣豐富。
2014年3月,由iso/iec運(yùn)動(dòng)圖像專家組和itu-t視頻編碼專家組所組成的“聯(lián)合視頻編碼組”(jct-vc),推出了基于最新的視頻編碼標(biāo)準(zhǔn)——highefficiencyvideocoding(hevc)的屏幕內(nèi)容擴(kuò)展版本(hevcscc)。jctvc官方提出的屏幕內(nèi)容標(biāo)準(zhǔn)軟件(scm)相比于hevc擴(kuò)展版本(rext)可以節(jié)省超過55%的db-rate。壓縮效率的提高主要得益于scc中新加入的幾個(gè)編碼工具,幀內(nèi)塊復(fù)制(ibc),調(diào)色板模式(plt),自適應(yīng)顏色變換(act)和自適應(yīng)運(yùn)動(dòng)向量分辨率(amvr)。
然而,hevc的遞歸劃分方案以及附加的scc編碼工具使得編碼復(fù)雜度增加數(shù)倍,主要是在尋找cu劃分與cu模式的最佳組合時(shí)為編碼器帶來了巨大的計(jì)算負(fù)擔(dān)。在現(xiàn)在的scm模型軟件中,采用的是窮盡搜索的方法,通過檢查當(dāng)前cu的每個(gè)可能模式,通過比較當(dāng)前cu的最佳模式rd成本和所有遞歸子cu的最佳rd成本之和來解決這兩個(gè)問題所有每個(gè)cu都以最佳模式和劃分進(jìn)行編碼。為了降低編碼的復(fù)雜度,許多研究者們提出了不同的解決方案。文獻(xiàn)(zhangm,guoy,baih.fastintrapartitionalgorithmforhevcscreencontentcoding[c]//visualcommunicationsandimageprocessingconference.ieee,2015:390-393.)中,提出了一種ctu劃分策略的快速算法,其中主要是是基于當(dāng)前cu的熵來決定cu劃分的終止。文獻(xiàn)(zhangh,zhouq,shin,etal.fastintramodedecisionandblockmatchingforhevcscreencontentcompression[c]//ieeeinternationalconferenceonacoustics,speechandsignalprocessing.ieee,2016:1377-1381.)中,通過使用時(shí)間相關(guān)性提出了快速cu深度預(yù)測方法。此外,采用自適應(yīng)搜索步長來減少ibc模式中的耗時(shí)塊匹配。文獻(xiàn)(zhangh,maz.fastintramodedecisionforhighefficiencyvideocoding(hevc)[j].ieeetransactionsoncircuits&systemsforvideotechnology,2014,24(4):660-668.)中,對hadamard成本和rd成本進(jìn)行了分析和推導(dǎo),提出了一種快速幀內(nèi)模式?jīng)Q策。
相比于傳統(tǒng)的算法,上述所提到的算法主要是對平滑塊多或者純屏幕內(nèi)容的圖像有較好的提升,但是對于自然圖像與屏幕內(nèi)容混合的屏幕內(nèi)容則提升較少。再者他們都是單獨(dú)的考慮模式選擇或者是cu劃分,而兩者存在較強(qiáng)的相關(guān)性,應(yīng)聯(lián)合考慮。因此,在保持scc編碼效率的同時(shí),提出一種將模式選擇與cu劃分聯(lián)合考慮,并且對與混合屏幕內(nèi)容也有較大提升的快速算法。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明的目的在于提供一種基于屏幕內(nèi)容的快速幀內(nèi)預(yù)測方法,充分利用不同類型cu的內(nèi)容特性,自適應(yīng)地跳過不必要的深度級和預(yù)測模式的rd代價(jià)計(jì)算,在保持視頻編碼質(zhì)量基本不變的前提下,降低屏幕內(nèi)容視頻編碼的計(jì)算復(fù)雜度。
為達(dá)到上述目的,本發(fā)明提供如下技術(shù)方案:
一種基于屏幕內(nèi)容的快速幀內(nèi)預(yù)測方法,包括以下步驟:
s1:根據(jù)編碼單位cu的特點(diǎn)將cu分為三類,包括自然內(nèi)容cu,即nccu、屏幕內(nèi)容完全平滑cu,即pscu、和屏幕內(nèi)容復(fù)雜cu,即sccu;
s2:對于自然內(nèi)容cu,選擇傳統(tǒng)的35種幀內(nèi)模式為候選,跳過幀內(nèi)塊復(fù)制ibc和調(diào)色板模式plt;
對于屏幕內(nèi)容完全平滑cu,選擇dc模式、planar模式、水平角度模式和垂直角度模式為模式候選,跳過ibc模式并終止四叉樹的劃分;
對于屏幕內(nèi)容復(fù)雜cu,先通過ibc預(yù)測,再通過空間相關(guān)性判斷是否跳過傳統(tǒng)的幀內(nèi)預(yù)測模式;
s3:最后所有的cu級與候選的預(yù)測模式,通過率失真優(yōu)化過程計(jì)算其代價(jià),選擇代價(jià)最優(yōu)的cu級和預(yù)測模式進(jìn)行預(yù)測編碼。
進(jìn)一步,所述步驟s1具體為:計(jì)算cu的平滑程度:
當(dāng)βh與βv有一個(gè)值為0時(shí),判斷當(dāng)前cu為屏幕內(nèi)容完全平滑cu;
當(dāng)βh與βv都不為0時(shí),采用roberts算子計(jì)算當(dāng)前cu的梯度值,梯度值計(jì)算公式為:
g(x,y)=|gx|+|gy|
th2=n×n/64
其中f(x,y)表示位置(x,y)處的像素值,gx表示(x,y)水平方向梯度,gy表示(x,y)垂直方向梯度,g(x,y)表示(x,y)處的梯度;
設(shè)定梯度閾值th1,當(dāng)g(x,y)>th1時(shí),判定為邊緣像素,th1的值為50;當(dāng)cu塊中鋒利邊緣像素的個(gè)數(shù)大于梯度閾值th2時(shí),判斷該cu塊為sccu,反之則為nccu塊;其中n表示當(dāng)前cu塊的寬度;
對于梯度值大于閾值時(shí)被判定為鋒利邊緣像素點(diǎn),如果當(dāng)前cu的鋒利邊緣像素點(diǎn)的個(gè)數(shù)大于或者等于n×n/64,則判定當(dāng)前cu為屏幕內(nèi)容復(fù)雜cu,如果當(dāng)前cu的鋒利邊緣像素點(diǎn)的個(gè)數(shù)小于n×n/64,則判定當(dāng)前cu為自然內(nèi)容cu。
進(jìn)一步,對于所述屏幕內(nèi)容復(fù)雜cu具體為:
對于屏幕內(nèi)容復(fù)雜cu,判斷當(dāng)前cu的上方,左上和左邊cu塊的最佳預(yù)測模式是否全為ibc,如果是,則當(dāng)前cu跳過傳統(tǒng)幀內(nèi)預(yù)測;如果當(dāng)前cu的上方,左上和左邊cu塊的最佳預(yù)測模式不全為ibc模式,則先通過ibc計(jì)算其rd代價(jià),再與其上方,左上和左邊cu塊代價(jià)進(jìn)行比較,如果當(dāng)前cu的代價(jià)小于3個(gè)鄰塊的rd代價(jià)的最小值則跳過傳統(tǒng)幀內(nèi)預(yù)測,ibc為其預(yù)測模式跳過傳統(tǒng)幀內(nèi)預(yù)測模式;否則繼續(xù)進(jìn)行傳統(tǒng)幀內(nèi),選出最優(yōu)的預(yù)測模式。
本發(fā)明的有益效果在于:本發(fā)明提出了基于hevc-scc的幀內(nèi)預(yù)測的快速算法,避免了在每個(gè)cu深度級和模式選擇過程中都需要計(jì)算rd代價(jià),通過cu的分類,對于不同種類的cu自適應(yīng)地跳過不必要的深度級和預(yù)測模式的rd代價(jià)計(jì)算,有效地減少編碼復(fù)雜度。
附圖說明
為了使本發(fā)明的目的、技術(shù)方案和有益效果更加清楚,本發(fā)明提供如下附圖進(jìn)行說明:
圖1為屏幕內(nèi)容視頻圖像;
圖2為本發(fā)明技術(shù)方案流程圖。
具體實(shí)施方式
下面將結(jié)合附圖,對本發(fā)明的優(yōu)選實(shí)施例進(jìn)行詳細(xì)的描述。
(1)cu的分類
屏幕內(nèi)容視頻通常不僅包含由計(jì)算機(jī)生成的屏幕內(nèi)容還會(huì)包含由真實(shí)相機(jī)拍攝的自然內(nèi)容的混合。在本發(fā)明中,nccu被定義為主要包含相機(jī)拍攝內(nèi)容的自然圖像cu。sccu被定義為主要包含計(jì)算機(jī)生成屏幕內(nèi)容復(fù)雜cu。pscu被定義為屏幕內(nèi)容中的完全平滑cu塊。由于這三種cu包含不同的內(nèi)容,因此根據(jù)cu內(nèi)容的特點(diǎn),可以考慮這三種cu的不同模式選擇或者劃分策略因而避免的每個(gè)cu級與預(yù)測模式的窮盡搜索。
屏幕內(nèi)容圖像中包含許多完全平滑cu塊且包含噪聲少,它們的像素值完全相等或者是其水平或者垂直方向完全相等。我們定義β來估計(jì)cu的平滑程度,β算公式如下所示:
β=min(βh,βv)
其中f(x,y)表示位置(x,y)處的像素值。當(dāng)β=0時(shí),我們可以判斷當(dāng)前cu塊為屏幕內(nèi)容完全平滑。
圖像處理中,通??梢赃吘墮z測來判斷該圖像的邊緣特性。經(jīng)典的邊緣檢測算子有梯度算子、laplacian算子、canny算子和log算子,其中梯度算子又包含roberts算子和sobel算子等。考慮的計(jì)算復(fù)雜度以及屏幕內(nèi)容圖像低噪聲,豐富的鋒利邊緣特性,本發(fā)明選擇采用roberts算子對圖像邊緣檢測。梯度計(jì)算公式如下所示:
g(x,y)=|gx|+|gy|
th2=n×n/64
其中f(x,y)表示位置(x,y)處的像素值,g(x,y)表示(x,y)處的梯度。當(dāng)g(x,y)>th1時(shí),判定為邊緣像素。通過實(shí)驗(yàn),本發(fā)明中選擇th1的值為50時(shí),可以很好的區(qū)分處鋒利邊緣像素。當(dāng)cu塊中鋒利邊緣像素的個(gè)數(shù)大于th2時(shí),判斷該cu塊為sccu,反之則為nccu塊,其中n表示當(dāng)前cu塊的寬度。
(2)屏幕內(nèi)容完全平滑塊的模式選擇與劃分策略
由于本發(fā)明定義的完全平滑塊的可能存在三種情況,它們的像素值可能是完全相等,沿水平或者垂直方向完全相等。如果是完全相等的cu塊,在幀內(nèi)預(yù)測過程中,通常會(huì)選擇dc或者planar模式為最佳預(yù)測模式。在水平或者垂直方向上完全相等的情況,通常會(huì)選擇水平角度模式或者垂直角度模式為最佳模式。因此本發(fā)明對于完全平滑的cu塊,我們只給出dc模式,planar模式,以及角度模式中的垂直模式和水平模式進(jìn)行候選。
對于平滑cu塊通常會(huì)選擇大尺寸的cu。如果當(dāng)前cu已經(jīng)被判斷為完全平滑的cu,那么沒必要繼續(xù)對cu進(jìn)行劃分。因此如果該cu塊被判定為完全平滑cu,那么就終止劃分。
(3)自然圖像cu的模式選擇與劃分策略
眾所周知,自然內(nèi)容相對于屏幕內(nèi)容具有不同的特征。ibc模式主要適用于屏幕內(nèi)容圖像,它們對于壓縮屏幕內(nèi)容是有很高的效率,但對于自然內(nèi)容并不能取得較好的效率反而會(huì)嚴(yán)重的增加編碼復(fù)雜度。因此對于自然圖像cu塊,本發(fā)明選擇跳過ibc模式,保留傳統(tǒng)的幀內(nèi)預(yù)測模式。
(4)屏幕內(nèi)容復(fù)雜cu的模式選擇與劃分策略
對于屏幕內(nèi)容復(fù)雜cu,由于包含許多鋒利邊緣區(qū)域,鄰近像素值差距很大,通常ibc為最佳預(yù)測模式。本發(fā)明考慮空間相關(guān)性,如果當(dāng)前cu的上方,左上和左邊cu塊的最佳預(yù)測模式全為ibc,則當(dāng)前cu跳過傳統(tǒng)幀內(nèi)預(yù)測。如果當(dāng)前cu的上方,左上和左邊cu塊的最佳預(yù)測模式不全為ibc模式,則先通過ibc計(jì)算其rd代價(jià),再與其上方,左上和左邊cu塊代價(jià)進(jìn)行比較,如果當(dāng)前cu的代價(jià)小于3個(gè)鄰塊的rd代價(jià)的最小值則跳過傳統(tǒng)幀內(nèi)預(yù)測,ibc為其預(yù)測模式跳過傳統(tǒng)的幀內(nèi)預(yù)測模式。否則繼續(xù)進(jìn)行傳統(tǒng)幀內(nèi),選出最優(yōu)的預(yù)測模式。
(5)選取最優(yōu)深度和預(yù)測模式進(jìn)行編碼
通過上面步驟對不同類型的cu選取不同劃分策略與預(yù)測模式,計(jì)算rd代價(jià),選取代價(jià)最小的預(yù)測模式和深度,進(jìn)行編碼。
在基于hevc的scc中,在每個(gè)cu深度級和模式選擇過程中都需要計(jì)算rd代價(jià),這使得計(jì)算復(fù)雜度非常高。如果可以自適應(yīng)地跳過不必要的深度級和預(yù)測模式的rd代價(jià)計(jì)算,則可以有效地減少編碼復(fù)雜度。本發(fā)明提出了基于hevc-scc的幀內(nèi)預(yù)測的快速算法,首先對cus進(jìn)行分類操作,然后根據(jù)不同分類提出各自的模式選擇與劃分策略。
步驟一:將編碼單元(cu)分類
首先,對于編碼單元cu,本發(fā)明選擇采用roberts算子對圖像邊緣檢測,再根據(jù)邊緣特性將cus分為三類,分別是自然內(nèi)容cu(nccu),屏幕內(nèi)容完全平滑cu(pscu),和屏幕內(nèi)容復(fù)雜cu(sccu)。
步驟二:自然內(nèi)容cu的模式選擇與劃分策略
對于自然圖像cu其中,本發(fā)明選擇跳過ibc與plt模式,保留傳統(tǒng)的幀內(nèi)預(yù)測模式。再者,本發(fā)明通過判斷此cu的平滑程度,對于紋理較簡單的cu,將終止劃分。
步驟三:屏幕內(nèi)容完全平滑cu的模式選擇與劃分策略
對于完全平滑的cu塊,本發(fā)明只給出dc模式,planar模式,以及角度模式中的垂直模式和水平模式進(jìn)行幀內(nèi)預(yù)測的候選模式。
步驟四:屏幕內(nèi)容復(fù)雜cu的模式選擇與劃分策略
對于屏幕內(nèi)容復(fù)雜cu,如果當(dāng)前cu的上方,左上和左邊cu塊的最佳預(yù)測模式全為ibc,則當(dāng)前cu跳過傳統(tǒng)幀內(nèi)預(yù)測。如果當(dāng)前cu的上方,左上和左邊cu塊的最佳預(yù)測模式不全為ibc模式,則先通過ibc計(jì)算其rd代價(jià),再與其上方,左上和左邊cu塊代價(jià)進(jìn)行比較,如果當(dāng)前cu的代價(jià)小于3個(gè)鄰塊的rd代價(jià)的最小值則跳過傳統(tǒng)幀內(nèi)預(yù)測,ibc為其預(yù)測模式。否則選擇鄰塊所選用的角度模式作為候選的角度模式,進(jìn)行預(yù)測。
步驟五:選取最佳深度和預(yù)測模式進(jìn)行編碼
所有的cu級與候選的預(yù)測模式,通過率失真優(yōu)化過程計(jì)算其代價(jià),選擇代價(jià)最優(yōu)的cu級和預(yù)測模式進(jìn)行預(yù)測編碼。
下面將結(jié)合附圖進(jìn)行說明:
圖1為屏幕內(nèi)容視頻一幀圖像。其中圖1(a)為屏幕內(nèi)容視頻中的一幀圖像,圖1(b)表示經(jīng)過編碼后的圖1(a)圖像。其中藍(lán)色框表示cu大小,從圖中可以看出,對于屏幕內(nèi)容完全平滑塊如圖中紅色標(biāo)記區(qū)域,會(huì)選擇較大的cu塊進(jìn)行編碼。而對于屏幕內(nèi)容復(fù)雜區(qū)域如紫色標(biāo)記區(qū)域,會(huì)選擇8×8大小的cu進(jìn)行編碼。
圖2為技術(shù)方案流程圖。本發(fā)明實(shí)現(xiàn)cu分類的流程進(jìn)行說明:
step1:對當(dāng)前cu計(jì)算β值,如果β=0滿足,則當(dāng)前cu為屏幕內(nèi)容完全平滑cu;
step2:對于不滿足β=0滿足的cu,計(jì)算其鋒利邊緣點(diǎn)的個(gè)數(shù),當(dāng)個(gè)數(shù)大于閾值th2時(shí),則判斷當(dāng)前cu為屏幕內(nèi)容復(fù)雜cu;
step3:鋒利邊緣點(diǎn)的個(gè)數(shù)小于或者等于th2的cu,判斷其為自然圖像cu。
本發(fā)明實(shí)現(xiàn)快速預(yù)測的整體流程進(jìn)行說明:
step1:將編碼單元cu經(jīng)過分類,分為三類,屏幕內(nèi)容完全平滑cu,自然圖像cu和屏幕內(nèi)容cu。
step2:對于完全平滑cu,選用dc,planar,垂直和水平四種角度模式作為候選預(yù)測模式進(jìn)行rd代價(jià)計(jì)算。選取rd代價(jià)最小的預(yù)測模式,并停止劃分。當(dāng)前cu級為最佳cu級。
step3:對于自然圖像cu,選用傳統(tǒng)的35種幀內(nèi)預(yù)測模式作為候選,選出最佳預(yù)測模式。如果當(dāng)前深度為3,則停止劃分,選取代價(jià)最小的預(yù)測模式和深度,否則跳到step1。
step4;對于屏幕圖像cu,首先進(jìn)行ibc預(yù)測,然后判斷是否需要進(jìn)行傳統(tǒng)的幀內(nèi)預(yù)測,如果不需要?jiǎng)tibc為最優(yōu)預(yù)測模式。否則在進(jìn)行傳統(tǒng)的幀內(nèi)預(yù)測,再通過比較ibc與傳統(tǒng)幀內(nèi)預(yù)測的rd計(jì)算選出最佳預(yù)測模式。如果當(dāng)前深度為3則選取代價(jià)最小的預(yù)測模式和深度,否則跳到step1。
最后說明的是,以上優(yōu)選實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非限制,盡管通過上述優(yōu)選實(shí)施例已經(jīng)對本發(fā)明進(jìn)行了詳細(xì)的描述,但本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,可以在形式上和細(xì)節(jié)上對其作出各種各樣的改變,而不偏離本發(fā)明權(quán)利要求書所限定的范圍。