本發(fā)明屬于視頻編碼
技術(shù)領(lǐng)域:
,具體的說是涉及一種用于視頻編碼的幀內(nèi)預(yù)測方法。
背景技術(shù):
:近年來,豐富多彩的視頻內(nèi)容每時每刻都在產(chǎn)生,視頻數(shù)量更是成指數(shù)級爆炸式增長。據(jù)youtube統(tǒng)計(jì),用戶每分鐘上傳的視頻量達(dá)300多小時;貝爾實(shí)驗(yàn)室預(yù)測,2020年音視頻數(shù)據(jù)流量將占新增流量的80%,種種跡象表明,視頻數(shù)據(jù)已成為大數(shù)據(jù)中的大數(shù)據(jù),我們正處在被海量音視頻數(shù)據(jù)包圍的多媒體時代。為了節(jié)約存儲空間降低傳輸帶寬占用率,一般需要做視頻壓縮編碼處理。幀內(nèi)編碼是視頻編碼標(biāo)準(zhǔn)中的一種編碼方式。傳統(tǒng)的幀內(nèi)編碼的參考像素僅利用距離當(dāng)前待編碼塊最近重建塊的一行一列像素,通過選擇一種預(yù)測角度模式進(jìn)行線性預(yù)測得到。這種利用單行單列的預(yù)測方法已經(jīng)被證明對小尺寸編碼塊是非常有效的,但是這種方法對大尺寸編碼塊的效果并不好,并且當(dāng)前待編碼塊的位置不同,編碼器需要的預(yù)測像素濾波策略也不盡相同。例如,相對于遠(yuǎn)離待編碼塊左上方的像素需要更低強(qiáng)度的平滑。此外,即使對于相同大小的塊,由于編碼塊內(nèi)容不同,編碼器需要不同的濾波策略。在過去一段時間中,研究者們提出了使用遞歸濾波器平滑預(yù)測值,實(shí)驗(yàn)證明可以提高編碼效率。w.-j.han和j.min(“improvedvideocompressionefficiencythroughflexibleunitrepresentationandcorrespondingextensionofcodingtools,”ieeetrans.circuitssyst.videotechnol.,vol.20,no.12,pp.1709–1720,dec.2010.)以及y.chen和j.han,(“arecursiveextrapolationapproachtointrapredictioninvideocoding,”inproc.ieeeint.conf.acousticsspeechsignalprocess.,vancouver,bc,canada,may2013,pp.1734–1738.),是應(yīng)用遞歸濾波器組來平滑預(yù)測值。雖然遞歸的方法可以在一定程度上對預(yù)測像素進(jìn)行平滑,且實(shí)驗(yàn)結(jié)果表明遞歸濾波器可以提升編碼性能,然而,遞歸濾波器并不適用于并行計(jì)算,并且不考慮信號整體的變化。技術(shù)實(shí)現(xiàn)要素:為了更好的利用待編碼塊內(nèi)部紋理特征,本發(fā)明提出一種基于多行多列的位置依賴預(yù)測組合的幀內(nèi)預(yù)測方法(enhancedpositiondependentintrapredictioncombination,epdpc)。本發(fā)明的技術(shù)方案是:一種用于視頻編碼的幀內(nèi)預(yù)測方法,其特征在于,包括以下步驟:s1、生成濾波參考像素:通過如下公式1獲取濾波后的參考像素s:s=ak·r+(e-ak)·(hk*r)(公式1)公式1中,hk該編碼塊尺寸下的濾波器參數(shù),r是選取的當(dāng)前待編碼塊的多行多列參考像素,*為卷積運(yùn)算符,ak為濾波器輸出的加權(quán)因子;s2、計(jì)算當(dāng)前編碼塊的預(yù)測像素值:設(shè)定編碼塊尺寸為m×n,對編碼塊內(nèi)的每一個像素點(diǎn)(x,y)的預(yù)測像素px,y進(jìn)行預(yù)測,其中,n≥x≥1,m≥y≥1;假設(shè)sx,0與s0,y分別是當(dāng)前待編碼塊濾波后的參考像素s中最靠近當(dāng)前待編碼塊的一行一列像素,則預(yù)測像素值的生成方法包括:在平面(planar)預(yù)測模式下:將預(yù)測像素px,y定義為水平、垂直兩個方向預(yù)測值的平均值,則通過如下公式2、公式3和公式4獲得預(yù)測像素值:在直流分量(dc)預(yù)測模式下:對于色度分量以及大于16x16的亮度分量,預(yù)測像素值通過如下公式5獲得:其他情況則通過如下公式6獲得:在角度模式下:對于給定垂直類角度模式m,使用投影像素法將其需要用到的參考像素映射為形式,記為ref,如下公式7和公式8:計(jì)算當(dāng)前像素對應(yīng)參考像素在中的位置,記為pos,如下公式9:pos=(y·offset[m])>>5(公式9)計(jì)算當(dāng)前像素對應(yīng)參考像素的加權(quán)因子w,如下公式10:w=(y·offset[m])&31(公式10)通過如下公式11計(jì)算當(dāng)前像素的預(yù)測像素值:px,y=((32-w)·ref[pos]+w·ref[pos+1]+16)>>5(公式11)其中,offset[m]是角度折算因子,round(·)是四舍五入運(yùn)算函數(shù);s3、根據(jù)多行多列未濾波參考像素以及預(yù)測值平滑生成新的預(yù)測值:根據(jù)步驟s2中獲得的預(yù)測值px,y,通過如下公式12-公式16獲得最終的當(dāng)前待編碼塊的預(yù)測像素值:其中,是存儲的預(yù)測參數(shù),對于16×16的塊,設(shè)置d=1,對于更大的塊,設(shè)置d=2;bx,y是歸一化因子,如下公式16:是分別是依賴于水平位置、垂直位置的加權(quán)權(quán)重,是一組針對左上角位置的加權(quán)權(quán)重,依賴于水平位置、垂直位置、左上角位置的卷積模板,是向下取整運(yùn)算符,>>左移運(yùn)算符。本法總的技術(shù)方案,根據(jù)編碼塊的預(yù)測角度模式、編碼塊大小和像素位置,使用多行多列未濾波參考像素預(yù)測當(dāng)前待編碼塊的預(yù)測值,并用得到的預(yù)測值和過濾(平滑)后的多行多列未濾波參考像素加權(quán)組合得到最終預(yù)測值。實(shí)現(xiàn)了高效地幀內(nèi)編碼。本發(fā)明的有益效果是:相對現(xiàn)有技術(shù),本發(fā)明能夠更高效地、魯棒地進(jìn)行幀內(nèi)編碼。附圖說明圖1為本發(fā)明中兩行兩列epdpc示意圖,其中(a)當(dāng)前待編碼塊以及未濾波參考像素示意圖,(b)是當(dāng)前待編碼塊以及濾波后的參考像素示意圖;圖2為幀內(nèi)角度模式預(yù)測方向示意圖,其中每一個箭頭代表一個預(yù)測方向。具體實(shí)施方式下面結(jié)合附圖和實(shí)施例,詳細(xì)描述本發(fā)明的技術(shù)方案:實(shí)施例本例是以兩行兩列的epdpc驗(yàn)證本發(fā)明所述方法的有效性。本例的方法包括:利用公式(1)構(gòu)建一個擬高斯濾波器,將當(dāng)前待編碼塊的上未濾波的兩行兩列參考像素unfilteredrefline2和unfilteredrefline1濾波(圖1(a))生成(圖1(b))濾波的參考像素filteredrefline1:s=ak·r+(e-ak)·(hk*r)(公式1)步驟2、根據(jù)圖2中角度模式,用濾波后的參考像素filteredrefline1計(jì)算當(dāng)前編碼塊像素點(diǎn)(x,y)的預(yù)測像素prediction(px,y);步驟3、用unfilteredrefline2和unfilteredrefline1以及predictionp(x,y)濾波生成fprediction(fpx,y)。通過步驟2的方法獲得px,y后,按照公式(16)計(jì)算bx,y:然后利用公式(15)計(jì)算最終的當(dāng)前塊的預(yù)測像素值fpx,y:公式(15)中的參數(shù)可利用公式(12),公式(13)和公式(14)就算得到;其中,對于16×16的塊,設(shè)置d=1,對于更大的塊,設(shè)置d=2;并且設(shè)置是一組卷積模板。表3是實(shí)施例得到的編碼結(jié)果:表3實(shí)施例得到的編碼結(jié)果sequenceyuvtraffic-0.1%0.0%0.0%peopleonstreet-0.2%-0.3%-0.2%nebuta-0.2%-0.4%-0.2%steamlocomotive-0.2%-0.8%-0.1%parkscene-0.2%-0.1%-0.1%cactus-0.1%-0.1%-0.2%basketballpass-0.1%-0.1%-0.4%bqsquare-0.1%0.1%-0.1%blowingbubbles-0.1%-0.2%-0.1%racehorses-0.1%-0.2%-0.1%fourpeople-0.2%-0.2%-0.3%johnny-0.1%-0.1%-0.1%kristenandsara-0.1%0.0%0.0%slideshow-0.2%-0.2%-0.6%(平均)average-0.1%-0.2%-0.2%從表3所示的編碼性能可以得出,yuv三個分量的編碼效果均得到了提升。當(dāng)前第1頁12