一種圖像的幀內(nèi)預(yù)測算法
【專利摘要】本發(fā)明公開一種圖像的幀內(nèi)預(yù)測算法。該方法包括步驟:將圖像分成至少兩個(gè)圖層,任意兩個(gè)圖層之間的分辨率不同,選擇分辨率較低的圖層做標(biāo)準(zhǔn)的幀內(nèi)預(yù)測;根據(jù)已預(yù)測的圖層得到的預(yù)測結(jié)果,對分辨率較高的圖層進(jìn)行預(yù)測。本發(fā)明能顯著降低計(jì)算量。而且本發(fā)明能產(chǎn)生多種分辨率的圖像數(shù)據(jù),可以根據(jù)不同的網(wǎng)絡(luò)環(huán)境選擇不同分辨率的圖像數(shù)據(jù),通用性也更好。
【專利說明】一種圖像的幀內(nèi)預(yù)測算法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及視頻數(shù)據(jù)處理領(lǐng)域,更具體的說,涉及一種圖像的幀內(nèi)預(yù)測算法。
【背景技術(shù)】
[0002]現(xiàn)有的視頻編碼直接對圖像進(jìn)行標(biāo)準(zhǔn)的幀內(nèi)預(yù)測,視頻的每個(gè)圖像都包括多種預(yù)測模式和預(yù)測方向,需要對每種預(yù)測模式和預(yù)測方向都進(jìn)行計(jì)算,以便得出最佳預(yù)測模式?,F(xiàn)有的預(yù)測方式計(jì)算量大,增加處理器負(fù)擔(dān),不利于提高運(yùn)算速度。
【發(fā)明內(nèi)容】
[0003]本發(fā)明所要解決的技術(shù)問題是提供一種降低計(jì)算量的圖像的幀內(nèi)預(yù)測算法。
[0004]本發(fā)明的目的是通過以下技術(shù)方案來實(shí)現(xiàn)的:
[0005]一種圖像的幀內(nèi)預(yù)測算法,包括步驟:
[0006]將圖像分成至少兩個(gè)圖層,任意兩個(gè)圖層之間的分辨率不同,
[0007]選擇分辨率較低的圖層做標(biāo)準(zhǔn)的幀內(nèi)預(yù)測;
[0008]根據(jù)已預(yù)測的圖層得到的預(yù)測結(jié)果,對分辨率較高的圖層進(jìn)行預(yù)測。
[0009]進(jìn)一步的,所述預(yù)測結(jié)果包括預(yù)測模式和預(yù)測方向。由于不同圖層都是基于同樣的畫面,雖然分辨率不同,但圖像結(jié)構(gòu)是一致的。因此,分辨率較低圖層的預(yù)測模式和預(yù)測方向?qū)Ψ直媛瘦^高圖層的預(yù)測有重要的價(jià)值。
[0010]進(jìn)一步的,先對分辨率最低的圖層做標(biāo)準(zhǔn)的幀內(nèi)預(yù)測:將圖像劃分成多個(gè)像素矩陣,以像素矩陣為基本預(yù)測模塊,計(jì)算每個(gè)預(yù)測模塊的殘差值;
[0011]分析每個(gè)預(yù)測模塊的殘差值在該圖層空間中的分布,得到預(yù)測模式或預(yù)測方向中的任意一種或兩種,對下一個(gè)分辨率更高的圖層進(jìn)行幀內(nèi)預(yù)測。選擇分辨率最低的圖層,其幀內(nèi)預(yù)測的計(jì)算量最低,因此能進(jìn)一步降低運(yùn)算量,提高數(shù)據(jù)處理速度。
[0012]進(jìn)一步的,所述已預(yù)測的圖層得到的預(yù)測模式包括最優(yōu)和次優(yōu)模式;分別以已預(yù)測的圖層的最優(yōu)和次優(yōu)預(yù)測模式對分辨率較高的圖層進(jìn)行預(yù)測,得到最佳預(yù)測模式。上一圖層畢竟是較原始圖像分辨率低的數(shù)據(jù),因此得到的是一種粗略的模式估計(jì),有可能需要在高分辨率圖層中進(jìn)行修正。若只傳最優(yōu)的結(jié)果給下一圖層,有一定概率是估計(jì)失準(zhǔn)的。同時(shí)把次優(yōu)傳給下一圖層作初始估計(jì),是一種冗余設(shè)計(jì)策略。這樣,到下一圖層,基于兩個(gè)初始估計(jì)模式來進(jìn)行實(shí)際的計(jì)算,選擇真正的最優(yōu)。也就是說,有一定概率,在低分辨率圖層中的估計(jì)的次優(yōu)結(jié)果,到了高分辨率圖層中反而是最終的最優(yōu)。
[0013]進(jìn)一步的,分別以已預(yù)測的圖層的最優(yōu)和次優(yōu)預(yù)測模式及其對應(yīng)的預(yù)測方向,對分辨率較高的圖層進(jìn)行預(yù)測,得到最佳預(yù)測模式和預(yù)測方向。圖層預(yù)測包括預(yù)測模式和預(yù)測方向,因此將已經(jīng)預(yù)測好的圖層的預(yù)測模式和預(yù)測方向反饋給其他圖層,可以進(jìn)一步減
少計(jì)算量。
[0014]進(jìn)一步的,假設(shè)分辨率較低圖層反饋的預(yù)測模式為XXX像素矩陣,則較高分辨率圖層分別按照XXX?aXXaX的像素矩陣進(jìn)行預(yù)測,得到最優(yōu)的預(yù)測模式;[0015]其中a為自然數(shù),且aXXaX界定的像素矩陣不超過視頻編碼標(biāo)準(zhǔn)規(guī)定的最大范圍。
[0016]進(jìn)一步的,第一個(gè)圖層的分辨率最低,后面的圖層分辨率依次遞增,
[0017]先對第一個(gè)圖層做標(biāo)準(zhǔn)的幀內(nèi)預(yù)測:將圖像劃分成多個(gè)像素矩陣,以像素矩陣為基本預(yù)測模塊,計(jì)算每個(gè)預(yù)測模塊的殘差值;
[0018]分析每個(gè)預(yù)測模塊的殘差值在該圖層空間中的分布,得到最優(yōu)和次優(yōu)的預(yù)測模式及其預(yù)測方向;
[0019]假設(shè)第一圖層最優(yōu)預(yù)測模式為XXX像素矩陣,次優(yōu)預(yù)測模式為最優(yōu)預(yù)測模式為YXY像素矩陣;則第二圖層分別按照XXX?aXXaX、YXY?bYXbY的像素矩陣進(jìn)行預(yù)測;然后比較得出第二圖層的最佳預(yù)測模式和預(yù)測方向;
[0020]依次類推,根據(jù)分辨率較低的上一圖層得到的最優(yōu)和次優(yōu)預(yù)測模式及其對應(yīng)的預(yù)測方向,對下一層分辨率較高的圖層進(jìn)行預(yù)測,得到最佳預(yù)測模式和預(yù)測方向,直至預(yù)測完最后一個(gè)、分辨率最高的圖層;
[0021]其中a、b為大于I的自然數(shù),且aXXaX、bYXbY界定的像素矩陣不超過視頻編碼標(biāo)準(zhǔn)規(guī)定的最大范圍。
[0022]進(jìn)一步的,每一圖層的預(yù)測基于分辨率最接近圖層的預(yù)測結(jié)果。兩個(gè)圖層的分辨率越接近,則一個(gè)圖層得到的預(yù)測結(jié)果對另一個(gè)圖層的參考價(jià)值越大,及誤判的概率越低,對精度影響也越小。
[0023]進(jìn)一步的,選擇分辨率最低的圖層做標(biāo)準(zhǔn)的幀內(nèi)預(yù)測;基于該圖層得到的預(yù)測結(jié)果,分別對其他圖層進(jìn)行幀內(nèi)預(yù)測。選擇分辨率最低的圖層做標(biāo)準(zhǔn)的幀內(nèi)預(yù)測,計(jì)算量也最小,而基于同一個(gè)圖層的預(yù)測結(jié)果預(yù)測其他圖層,可以采用并行運(yùn)算的方式,同時(shí)進(jìn)行預(yù)測,能顯著提高運(yùn)算效率。
[0024]進(jìn)一步的,利用GPU對每個(gè)圖層進(jìn)行幀內(nèi)預(yù)測,然后將預(yù)測結(jié)果反饋回CPU進(jìn)行編碼處理。本技術(shù)方案采用CPU+GPU平臺,充分發(fā)揮各個(gè)平臺的優(yōu)點(diǎn),讓CPU和GPU協(xié)作處理,提高了平臺的運(yùn)算效率。
[0025]本發(fā)明由于將圖像、視頻數(shù)據(jù)按不同分辨率進(jìn)行分層處理,形成一個(gè)圖像金字塔結(jié)構(gòu)。預(yù)測時(shí),先對分辨率較低的圖層進(jìn)行預(yù)測,然后根據(jù)預(yù)測結(jié)果來預(yù)測分辨率較高的圖層,最終可以得到分辨率最高的圖層預(yù)測結(jié)果。由于先預(yù)測分辨率較低的圖層,大幅減少了運(yùn)算量,而基于較低圖層的預(yù)測結(jié)果來預(yù)測其他圖層的計(jì)算量在整個(gè)編碼過程中占比很小,因此相比直接預(yù)測最高分辨率的圖層,本發(fā)明能顯著降低計(jì)算量。而且本發(fā)明能產(chǎn)生多種分辨率的圖像數(shù)據(jù),可以根據(jù)不同的網(wǎng)絡(luò)環(huán)境選擇不同分辨率的圖像數(shù)據(jù),通用性也更好。
【專利附圖】
【附圖說明】
[0026]圖1是本發(fā)明圖像幀內(nèi)預(yù)測算法的方法示意圖;
[0027]圖2是本發(fā)明金字塔建模原理示意圖;
[0028]圖3是本發(fā)明實(shí)施例基于CPU+GPU架構(gòu)的圖像幀內(nèi)預(yù)測的方法示意圖。
【具體實(shí)施方式】[0029]如圖1所示,本發(fā)明公開一種圖像的幀內(nèi)預(yù)測算法,包括步驟:
[0030]將圖像分成至少兩個(gè)圖層,任意兩個(gè)圖層之間的分辨率不同,
[0031]選擇分辨率較低的圖層做標(biāo)準(zhǔn)的幀內(nèi)預(yù)測;
[0032]根據(jù)已預(yù)測的圖層得到的預(yù)測結(jié)果,對分辨率較高的圖層進(jìn)行預(yù)測。
[0033]本發(fā)明由于將圖像、視頻數(shù)據(jù)按不同分辨率進(jìn)行分層處理,形成一個(gè)圖像金字塔結(jié)構(gòu)。
[0034]一幅圖像的金字塔是一系列以金字塔形狀排列的分辨率逐步降低的圖像集合。金字塔的底部是待處理圖像的高分辨率表示,而頂部是低分辨率的近似。當(dāng)向金字塔的上層移動時(shí),尺寸和分辨率就降低。因?yàn)榛A(chǔ)級J的尺寸是2~J*2~J或N*N (J=log2N),所以中間級j的尺寸是2~j*2~j,其中0〈=j〈=J。完整的金字塔由J+1個(gè)分辨率級組成,由2~J*2~J到2~0*2~0,但大部分金字塔只有P+1級,其中J=J-P,...,了-2,了-1,了,且1〈=卩〈=了。也就是說通常限制它們只使用P級來減少原始圖像近似值的尺寸。例如,一幅512*512圖像的1*1或單像素近似值將非常小。
[0035]圖2顯示了一個(gè)建立圖像金字塔的簡單系統(tǒng)。j_l級的近似輸出用來建立近似值金字塔,包括原始圖像的一個(gè)或多個(gè)近似值。作為金字塔的原始圖像和它的P級減少的分辨率近似都能直接獲取并調(diào)整。j級的預(yù)測殘差輸出用于建立預(yù)測殘差金字塔。這些金字塔包括了原始圖像的J-P級低分辨率的近似信息,以及建立P級較高分辨率的近似信息。j級的信息在相應(yīng)近似金字塔的j級近似與基于j-Ι級預(yù)測殘差得到的近似估計(jì)之間是不同的。對這些差異進(jìn)行編碼(用于存儲或傳輸)將比對近似值進(jìn)行編碼有效得多。
[0036]預(yù)測時(shí),先對分辨率較低的圖層進(jìn)行預(yù)測,然后根據(jù)預(yù)測結(jié)果來預(yù)測分辨率較高的圖層,最終可以得到分辨率最高的圖層預(yù)測結(jié)果。由于先預(yù)測分辨率較低的圖層,大幅減少了運(yùn)算量,而基于較低圖層的預(yù)測結(jié)果來預(yù)測其他圖層的計(jì)算量在整個(gè)編碼過程中占比很小,因此相比直接預(yù)測最高分辨率的圖層,本發(fā)明能顯著降低計(jì)算量。而且本發(fā)明能產(chǎn)生多種分辨率的圖像數(shù)據(jù),可以根據(jù)不同的網(wǎng)絡(luò)環(huán)境選擇不同分辨率的圖像數(shù)據(jù),通用性也更好。
[0037]下面結(jié)合附圖和較佳的實(shí)施例對本發(fā)明作進(jìn)一步說明。
[0038]本實(shí)施方式公開一種基于CPU+GPU架構(gòu)的硬件平臺實(shí)現(xiàn)圖像的幀內(nèi)預(yù)測算法的技術(shù)方案,利用GPU對每個(gè)圖層進(jìn)行幀內(nèi)預(yù)測,然后將預(yù)測結(jié)果反饋回CPU進(jìn)行編碼處理。采用CPU+GPU平臺,充分發(fā)揮各個(gè)平臺的優(yōu)點(diǎn),讓CPU和GPU協(xié)作處理,提高了平臺的運(yùn)算效率。
[0039]如圖3所示,本實(shí)施例以三個(gè)圖層為例,公開一種圖像的幀內(nèi)預(yù)測算法,包括步驟:
[0040]S1:將圖像分成三個(gè)圖層,分辨率從低到高分別是第一圖層、第二圖層、第三圖層;
[0041]S2:先對第一個(gè)圖層做標(biāo)準(zhǔn)的幀內(nèi)預(yù)測:以4X4的像素矩陣為基本預(yù)測模塊,計(jì)算每個(gè)預(yù)測模塊的殘差值;
[0042]S3:分析每個(gè)預(yù)測模塊的殘差值在該圖層空間中的分布,得到最優(yōu)和次優(yōu)的預(yù)測模式及其預(yù)測方向;
[0043]S4:假設(shè)第一圖層最優(yōu)預(yù)測模式為4X4像素矩陣,次優(yōu)預(yù)測模式為最優(yōu)預(yù)測模式為16 X 16像素矩陣;則第二圖層分別按照4X 4?8 X 8、16 X 16?32 X 32的像素矩陣進(jìn)行預(yù)測;然后比較得出第二圖層的最佳預(yù)測模式和預(yù)測方向;
[0044]S5:依次類推,根據(jù)第二圖層得到的最優(yōu)和次優(yōu)預(yù)測模式及其對應(yīng)的預(yù)測方向,對第三圖層進(jìn)行預(yù)測,得到最佳預(yù)測模式和預(yù)測方向。
[0045]由于有了上一圖層的最后預(yù)測結(jié)果有預(yù)測方向,所以下一圖層不需要計(jì)算所有的預(yù)測方向,只是根據(jù)上一圖層的預(yù)測方向,只做有限個(gè)預(yù)測方向,讓所有預(yù)測方向都靠近上一圖層的最終預(yù)測方向.[0046]由于有了第一層4X4像素矩陣分析出來的紋理特征,所以,我們不需要做所有模塊的預(yù)測,只需要針對第一層紋理來分割的最適合預(yù)測的模塊即可。因此,本實(shí)施方式不但節(jié)約了大量的計(jì)算量,同時(shí)對精度影響也比較小,試驗(yàn)表明,針對標(biāo)準(zhǔn)的幀內(nèi)預(yù)測,PSNR差異在0.1db以內(nèi)。
[0047]本實(shí)施方式采用三層的金字塔圖層,是因?yàn)槊繉佣寄芨帽A魣D像信息,同時(shí)也為后續(xù)操作節(jié)約了計(jì)算量。圖層數(shù)量減少可以降低計(jì)算量,而增加圖層數(shù)量則可以提高精度,降低PSNR差異;因此具體建立多少圖層應(yīng)該根據(jù)應(yīng)用場合來確定。
[0048]本實(shí)施方式提供技術(shù)方案中,每一圖層的預(yù)測基于分辨率最接近圖層的預(yù)測結(jié)果。因此,必須預(yù)測出上一層分辨率較低的圖層以后,才能預(yù)測下一層分辨率較高的圖層,這是一種遞進(jìn)的、串行的運(yùn)算方式。
[0049]為了進(jìn)一步提高運(yùn)算效率,還可以在得到分辨率最低圖層的預(yù)測結(jié)果后,基于該預(yù)測結(jié)果同時(shí)預(yù)測其他圖層,這樣就能并行運(yùn)算,縮短運(yùn)算時(shí)間。
[0050]以上內(nèi)容是結(jié)合具體的優(yōu)選實(shí)施方式對本發(fā)明所作的進(jìn)一步詳細(xì)說明,不能認(rèn)定本發(fā)明的具體實(shí)施只局限于這些說明。對于本發(fā)明所屬【技術(shù)領(lǐng)域】的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡單推演或替換,都應(yīng)當(dāng)視為屬于本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1.一種圖像的幀內(nèi)預(yù)測算法,包括步驟: 將圖像分成至少兩個(gè)圖層,任意兩個(gè)圖層之間的分辨率不同, 選擇分辨率較低的圖層做標(biāo)準(zhǔn)的幀內(nèi)預(yù)測; 根據(jù)已預(yù)測的圖層得到的預(yù)測結(jié)果,對分辨率較高的圖層進(jìn)行預(yù)測。
2.如權(quán)利要求1所述的一種圖像的幀內(nèi)預(yù)測算法,其特征在于,所述預(yù)測結(jié)果包括預(yù)測模式和預(yù)測方向。
3.如權(quán)利要求2所述的一種圖像的幀內(nèi)預(yù)測算法,其特征在于, 先對分辨率最低的圖層做標(biāo)準(zhǔn)的幀內(nèi)預(yù)測:將圖像劃分成多個(gè)像素矩陣,以像素矩陣為基本預(yù)測模塊,計(jì)算每個(gè)預(yù)測模塊的殘差值; 分析每個(gè)預(yù)測模塊的殘差值在該圖層空間中的分布,得到預(yù)測模式或預(yù)測方向中的任意一種或兩種,對下一個(gè)分辨率更高的圖層進(jìn)行幀內(nèi)預(yù)測。
4.如權(quán)利要求3所述的一種圖像的幀內(nèi)預(yù)測算法,其特征在于,所述已預(yù)測的圖層得到的預(yù)測模式包括最優(yōu)和次優(yōu)模式; 分別以已預(yù)測的圖層的最優(yōu)和次優(yōu)預(yù)測模式對分辨率較高的圖層進(jìn)行預(yù)測,得到最佳預(yù)測模式。
5.如權(quán)利要求4所述的一種圖像的幀內(nèi)預(yù)測算法,其特征在于,分別以已預(yù)測的圖層的最優(yōu)和次優(yōu)預(yù)測模式及其對應(yīng)的預(yù)測方向,對分辨率較高的圖層進(jìn)行預(yù)測,得到最佳預(yù)測模式和預(yù)測方向。
6.如權(quán)利要求2所述的一種圖像的幀內(nèi)預(yù)測算法,其特征在于,假設(shè)分辨率較低圖層反饋的預(yù)測模式為XXX像素矩陣,則較高分辨率圖層分別按照XXX~aXXaX的像素矩陣進(jìn)行預(yù)測,得到最優(yōu)的預(yù)測模式; 其中a為大于I的自然數(shù),且aXX aX界定的像素矩陣不超過視頻編碼標(biāo)準(zhǔn)規(guī)定的最大范圍。
7.如權(quán)利要求1所述的一種圖像的幀內(nèi)預(yù)測算法,其特征在于, 第一個(gè)圖層的分辨率最低,后面的圖層分辨率依次遞增, 先對第一個(gè)圖層做標(biāo)準(zhǔn)的幀內(nèi)預(yù)測:將圖像劃分成多個(gè)像素矩陣,以像素矩陣為基本預(yù)測模塊,計(jì)算每個(gè)預(yù)測模塊的殘差值; 分析每個(gè)預(yù)測模塊的殘差值在該圖層空間中的分布,得到最優(yōu)和次優(yōu)的預(yù)測模式及其預(yù)測方向; 假設(shè)第一圖層最優(yōu)預(yù)測模式為XXX像素矩陣,次優(yōu)預(yù)測模式為最優(yōu)預(yù)測模式為YXY像素矩陣;則第二圖層分別按照XXX~aXXaX、YXY~bYXbY的像素矩陣進(jìn)行預(yù)測;然后比較得出第二圖層的最佳預(yù)測模式和預(yù)測方向; 依次類推,根據(jù)分辨率較低的上一圖層得到的最優(yōu)和次優(yōu)預(yù)測模式及其對應(yīng)的預(yù)測方向,對下一層分辨率較高的圖層進(jìn)行預(yù)測,得到最佳預(yù)測模式和預(yù)測方向,直至預(yù)測完最后一個(gè)、分辨率最高的圖層; 其中a、b為大于I的自然數(shù),且aXXaX、bYXbY界定的像素矩陣不超過視頻編碼標(biāo)準(zhǔn)規(guī)定的最大范圍。
8.如權(quán)利要求1所述的一種圖像的幀內(nèi)預(yù)測算法,其特征在于,每一圖層的預(yù)測基于分辨率最接近圖層的預(yù)測結(jié)果。
9.如權(quán)利要求1所述的一種圖像的幀內(nèi)預(yù)測算法,其特征在于,選擇分辨率最低的圖層做標(biāo)準(zhǔn)的幀 內(nèi)預(yù)測;基于該圖層得到的預(yù)測結(jié)果,分別對其他圖層進(jìn)行幀內(nèi)預(yù)測。
10.如權(quán)利要求1所述的一種圖像的幀內(nèi)預(yù)測算法,其特征在于,利用GPU對每個(gè)圖層進(jìn)行幀內(nèi)預(yù)測,然后將預(yù)測結(jié)果反饋回CPU進(jìn)行編碼處理。
【文檔編號】H04N19/593GK103731670SQ201310727150
【公開日】2014年4月16日 申請日期:2013年12月25日 優(yōu)先權(quán)日:2013年12月25日
【發(fā)明者】隆剛, 金明, 史方 申請人:同觀科技(深圳)有限公司