本發(fā)明涉及圖像編碼領(lǐng)域,特別是涉及一種視頻編碼幀內(nèi)預(yù)測(cè)方法和裝置。
背景技術(shù):
從H.264高度壓縮數(shù)字視頻編解碼標(biāo)準(zhǔn)開始,幀內(nèi)方向預(yù)測(cè)編碼成了視頻幀內(nèi)塊編碼的主流技術(shù)。在這種技術(shù)中,當(dāng)前編碼塊的預(yù)測(cè)從其左相鄰列和上相鄰行根據(jù)一個(gè)方向進(jìn)行直線預(yù)測(cè)得到,如圖1所示,當(dāng)前編碼塊是一個(gè)8x8的塊,三角形所示像素是其左、上相鄰參考像素,幀內(nèi)預(yù)測(cè)首先規(guī)定一個(gè)方向,然后當(dāng)前塊中的每一行或列,就根據(jù)這個(gè)方向從其左上相鄰行列中獲得,如下圖所示的第六行,根據(jù)如圖所示方向就映射到上相鄰行的之像素位置,如下圖中圓點(diǎn)所示,因?yàn)檫@些圓點(diǎn)并不是整像素點(diǎn),所以它們需要根據(jù)其子像素坐標(biāo),通過插值算法根據(jù)已知的整像素點(diǎn),即圖中所示三角形像素點(diǎn)計(jì)算得出。
現(xiàn)有的這種幀內(nèi)預(yù)測(cè)存在的一個(gè)問題是,因?yàn)閰⒖碱A(yù)測(cè)像素位于塊的左、上相鄰位置,而預(yù)測(cè)相關(guān)性是距離越遠(yuǎn)越低,所以對(duì)于當(dāng)前塊中距離較遠(yuǎn)的右、下像素,則顯然預(yù)測(cè)精度不高,從而降低了編碼效率。
如何提供高預(yù)測(cè)精度的視頻編碼幀內(nèi)預(yù)測(cè)方法和裝置成為亟待解決的技術(shù)問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供一種視頻編碼幀內(nèi)預(yù)測(cè)方法和裝置,用以解決現(xiàn)有技術(shù)中對(duì)于當(dāng)前視頻編碼塊中距離參考預(yù)測(cè)像素位較遠(yuǎn)的像素預(yù)測(cè)精度低的缺陷,實(shí)現(xiàn)當(dāng)前視頻編碼塊的高預(yù)測(cè)精度。
為了解決上述問題,本發(fā)明公開了一種視頻編碼幀內(nèi)預(yù)測(cè)方法,其中,包括步驟:
視頻編碼時(shí)對(duì)當(dāng)前編碼塊進(jìn)行幀內(nèi)左、上方向預(yù)測(cè)和幀內(nèi)右、下方向預(yù)測(cè)的雙向預(yù)測(cè)。
本發(fā)明所述的方法,其中,
所述雙向預(yù)測(cè)進(jìn)一步是指:視頻編碼時(shí)對(duì)當(dāng)前編碼塊進(jìn)行幀內(nèi)左、上方向預(yù)測(cè)和右、下方向預(yù)測(cè)并進(jìn)行加權(quán)。
本發(fā)明所述的方法,其中,
當(dāng)前編碼塊進(jìn)行幀內(nèi)左、上預(yù)測(cè)是根據(jù)其左方相鄰的編碼塊的最右列像素列及上方相鄰的編碼塊的最下行像素行進(jìn)行幀內(nèi)左、上方向的預(yù)測(cè);其中,當(dāng)相應(yīng)的像素列或者像素行有一個(gè)不存在時(shí),只根據(jù)存在的像素行或者像素列進(jìn)行幀內(nèi)左、上預(yù)測(cè);當(dāng)相應(yīng)的像素列和者像素行都不存在時(shí),不進(jìn)行幀內(nèi)左、上預(yù)測(cè);
當(dāng)前編碼塊進(jìn)行幀內(nèi)右、下預(yù)測(cè)是根據(jù)其右方相鄰的編碼塊的最左列像素列及下方相鄰的編碼塊的最上行像素行進(jìn)行幀內(nèi)右、下方向的預(yù)測(cè);其中,當(dāng)相應(yīng)的像素列或者像素行有一個(gè)不存在時(shí),只根據(jù)存在的像素行或者像素列進(jìn)行幀內(nèi)右、下預(yù)測(cè);當(dāng)相應(yīng)的像素列和者像素行都不存在時(shí),不進(jìn)行幀內(nèi)右、下預(yù)測(cè);
對(duì)幀內(nèi)左、上方向預(yù)測(cè)和右、下方向預(yù)測(cè)都存在的預(yù)測(cè)進(jìn)行加權(quán)。
本發(fā)明所述的方法,其中,
當(dāng)兩個(gè)水平相鄰的編碼塊同時(shí)進(jìn)行視頻編碼時(shí),其中,從左往右數(shù)第一個(gè)編碼塊為第一編碼塊,從左往右數(shù)第二個(gè)編碼塊為第二編碼塊;
第一編碼塊根據(jù)其上方相鄰編碼塊的最下行像素行以及其左方相鄰編碼塊最右列像素列進(jìn)行幀內(nèi)左、上方向的預(yù)測(cè);并根據(jù)第二編碼塊的最左列像素列進(jìn)行幀內(nèi)右、下方向的預(yù)測(cè),并對(duì)幀內(nèi)左、上方向預(yù)測(cè)和右、下方向預(yù)測(cè)進(jìn)行加權(quán);
第二編碼塊根據(jù)其上方相鄰編碼塊的最下行像素行以及第一鄰編碼塊的最右列像素列進(jìn)行幀內(nèi)左、上方向的預(yù)測(cè);幀內(nèi)右、下預(yù)測(cè)不進(jìn)行預(yù)測(cè)。
本發(fā)明所述的方法,其中,
當(dāng)上下左右四個(gè)相鄰編碼塊同時(shí)進(jìn)行視頻編碼時(shí),其中,左上編碼塊為第A編碼塊、右上編碼塊為第B編碼塊、左下編碼塊為第C編碼塊、右下編碼塊為第D編碼塊;
第A編碼塊根據(jù)其上方相鄰編碼塊的最下行像素行以及其左方相鄰編碼塊最右列像素列進(jìn)行幀內(nèi)左、上方向的預(yù)測(cè);并根據(jù)第B編碼塊的最左列像素列及第C編碼塊的最上行像素行進(jìn)行幀內(nèi)右、下方向的預(yù)測(cè),并對(duì)幀內(nèi)左、上方向預(yù)測(cè)和右、下方向預(yù)測(cè)進(jìn)行加權(quán);
第B編碼塊根據(jù)其上方相鄰編碼塊的最下行像素行以及第A編碼塊的最右列像素列進(jìn)行幀內(nèi)左、上方向的預(yù)測(cè);并根據(jù)第D編碼塊的最上行的像素行進(jìn)行幀內(nèi)右、下方向的預(yù)測(cè),并對(duì)幀內(nèi)左、上方向預(yù)測(cè)和右、下方向預(yù)測(cè)進(jìn)行加權(quán);
第C編碼塊根據(jù)第A編碼塊的最下行的像素行以及其左方相鄰編碼塊的最右列像素列進(jìn)行幀內(nèi)左、上方向的預(yù)測(cè);并根據(jù)第D編碼塊的最左列像素列進(jìn)行幀內(nèi)右、下方向的預(yù)測(cè),并對(duì)幀內(nèi)左、上方向預(yù)測(cè)和右、下方向預(yù)測(cè)進(jìn)行加權(quán);
第D編碼塊根據(jù)第B編碼塊最下行像素行以及第C編碼塊最右列的像素列進(jìn)行幀內(nèi)左、上方向的預(yù)測(cè);幀內(nèi)右、下預(yù)測(cè)不進(jìn)行預(yù)測(cè)。
為了解決上述問題,本發(fā)明還公開了一種視頻編碼幀內(nèi)預(yù)測(cè)裝置,其中,包括:
幀內(nèi)左上預(yù)測(cè)單元,用于對(duì)當(dāng)前編碼塊進(jìn)行幀內(nèi)左、上方向預(yù)測(cè);
幀內(nèi)右下預(yù)測(cè)單元,用于對(duì)當(dāng)前編碼塊進(jìn)行幀內(nèi)右、下方向預(yù)測(cè)。
所述的裝置,其中,還進(jìn)一步包括:
加權(quán)單元,用于對(duì)當(dāng)前編碼塊進(jìn)行幀內(nèi)左、上方向預(yù)測(cè)和幀內(nèi)右、下方向預(yù)測(cè)進(jìn)行加權(quán)。
本發(fā)明所述的裝置,其中,
幀內(nèi)左上預(yù)測(cè)單元,進(jìn)一步用于根據(jù)當(dāng)前編碼塊的左方相鄰的編碼塊的最右列像素列及上方相鄰的編碼塊的最下行像素行進(jìn)行幀內(nèi)左、上方向的預(yù)測(cè);其中,當(dāng)相應(yīng)的像素列或者像素行有一個(gè)不存在時(shí),只根據(jù)存在的像素行或者像素列進(jìn)行幀內(nèi)左、上預(yù)測(cè);當(dāng)相應(yīng)的像素列和者像素行都不存在時(shí),不進(jìn)行幀內(nèi)左、上預(yù)測(cè);
幀內(nèi)右下預(yù)測(cè)單元,進(jìn)一步用于根據(jù)當(dāng)前編碼塊的右方相鄰的編碼塊的最左列像素列及下方相鄰的編碼塊的最上行像素行進(jìn)行幀內(nèi)右、下方向的預(yù)測(cè);其中,當(dāng)相應(yīng)的像素列或者像素行有一個(gè)不存在時(shí),只根據(jù)存在的像素行或者像素列進(jìn)行幀內(nèi)右、下預(yù)測(cè);當(dāng)相應(yīng)的像素列和者像素行都不存在時(shí),不進(jìn)行幀內(nèi)右、下預(yù)測(cè)。
本發(fā)明實(shí)施例提供的一種視頻編碼的幀內(nèi)預(yù)測(cè)方法和裝置,通過在視頻編碼時(shí)對(duì)當(dāng)前編碼塊進(jìn)行幀內(nèi)左、上方向預(yù)測(cè)和幀內(nèi)右、下方向預(yù)測(cè)的雙向預(yù)測(cè)并加權(quán)。實(shí)現(xiàn)了對(duì)當(dāng)前視頻編碼塊的高預(yù)測(cè)精度,提高了編碼效率。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是現(xiàn)有技術(shù)視頻編碼幀內(nèi)預(yù)測(cè)示意圖;
圖2是本發(fā)明一種視頻編碼幀內(nèi)預(yù)測(cè)方法實(shí)施例的步驟流程圖;
圖3是本發(fā)明視頻編碼中水平相鄰的兩個(gè)編碼塊同時(shí)編碼時(shí)幀內(nèi)預(yù)測(cè)的示意圖;
圖4是本發(fā)明視頻編碼中上下左右相鄰的四個(gè)編碼塊同時(shí)編碼時(shí)幀內(nèi)預(yù)測(cè)的示意圖;
圖5是本發(fā)明一種視頻編碼幀內(nèi)預(yù)測(cè)裝置實(shí)施例的結(jié)構(gòu)框圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
實(shí)施例一
參照?qǐng)D2,示出了本發(fā)明實(shí)施例一種視頻編碼幀內(nèi)預(yù)測(cè)方法的步驟流程圖。
本實(shí)施例的方法包括以下步驟:
步驟101:視頻編碼時(shí)對(duì)當(dāng)前編碼塊進(jìn)行幀內(nèi)左、上方向預(yù)測(cè);
步驟102:對(duì)當(dāng)前編碼塊進(jìn)行幀內(nèi)右、下方向預(yù)測(cè)的雙向預(yù)測(cè);
步驟103:將所述編碼塊的幀內(nèi)左、上方向預(yù)測(cè)和幀內(nèi)右、下方向預(yù)測(cè)進(jìn)行加權(quán)。
在本實(shí)施例中,當(dāng)前編碼塊進(jìn)行幀內(nèi)左、上預(yù)測(cè)是根據(jù)其左方相鄰的編碼塊的最右列像素列及上方相鄰的編碼塊的最下行像素行進(jìn)行幀內(nèi)左、上方向的預(yù)測(cè);其中,當(dāng)相應(yīng)的像素列或者像素行有一個(gè)不存在時(shí),只根據(jù)存在的像素行或者像素列進(jìn)行幀內(nèi)左、上預(yù)測(cè);當(dāng)相應(yīng)的像素列和者像素行都不存在時(shí),不進(jìn)行幀內(nèi)左、上預(yù)測(cè);
當(dāng)前編碼塊進(jìn)行幀內(nèi)右、下預(yù)測(cè)是根據(jù)其右方相鄰的編碼塊的最左列像素列及下方相鄰的編碼塊的最上行像素行進(jìn)行幀內(nèi)右、下方向的預(yù)測(cè);其中,當(dāng)相應(yīng)的像素列或者像素行有一個(gè)不存在時(shí),只根據(jù)存在的像素行或者像素列進(jìn)行幀內(nèi)右、下預(yù)測(cè);當(dāng)相應(yīng)的像素列和者像素行都不存在時(shí),不進(jìn)行幀內(nèi)右、下預(yù)測(cè)。
本方法實(shí)施例,通過在視頻編碼時(shí)對(duì)當(dāng)前編碼塊進(jìn)行幀內(nèi)左、上方向預(yù)測(cè)和幀內(nèi)右、下方向預(yù)測(cè)的雙向預(yù)測(cè)并加權(quán)。實(shí)現(xiàn)了對(duì)當(dāng)前視頻編碼塊的高預(yù)測(cè)精度,提高了編碼效率。
實(shí)施例二
參照?qǐng)D3,示出了本發(fā)明視頻編碼中水平相鄰的兩個(gè)編碼塊同時(shí)編碼時(shí)幀內(nèi)預(yù)測(cè)的示意圖。
當(dāng)兩個(gè)水平相鄰的編碼塊同時(shí)進(jìn)行視頻編碼時(shí),如圖3所示,從左往右數(shù)第一個(gè)編碼塊為第一編碼塊;從左往右數(shù)第二個(gè)編碼塊為第二編碼塊;T0是第一編碼塊和第二編碼塊的上方相鄰編碼塊的最下行像素行,本實(shí)施例中T0為已知參考像素行;L0是第一編碼塊的左方相鄰編碼塊最右列像素列,本實(shí)施例中L0為已知參考像素列;R1是第一編碼塊最右列像素列;L2是第二編碼塊最左列像素列。
其中,第一編碼塊根據(jù)其上方相鄰編碼塊的最下行像素行T0以及其左方相鄰編碼塊最右列像素列L0進(jìn)行幀內(nèi)左、上方向的預(yù)測(cè);并根據(jù)第二編碼塊的最左列像素列L2進(jìn)行幀內(nèi)右、下方向的預(yù)測(cè)并,并對(duì)幀內(nèi)左、上方向預(yù)測(cè)和右、下方向預(yù)測(cè)進(jìn)行加權(quán);
第二編碼塊根據(jù)其上方相鄰編碼塊的最下行像素行T0以及第一鄰編碼塊的最右列像素列R1進(jìn)行幀內(nèi)左、上方向的預(yù)測(cè);幀內(nèi)右、下預(yù)測(cè)不進(jìn)行預(yù)測(cè)。
具體公式如下:
公式一:R1=P(L0,T0,dir0)*q+(1-q)*P(L2,dir0)+rsdl0
公式二:L2=P(R1,T0,dir1)+rsdl1
其中,P表示幀內(nèi)預(yù)測(cè)操作,dir0是當(dāng)前預(yù)測(cè)方向,P(L0,T0,dir0),表示使用L0和T0作參考,以dir0為方向產(chǎn)生一個(gè)對(duì)于R1的幀內(nèi)預(yù)測(cè)向量。P(L2,dir0)表示以L2為參考向量,以dir0為方向產(chǎn)生R1的預(yù)測(cè)。q是個(gè)常量,它大于0小于1,表示加權(quán)預(yù)測(cè),即R1的預(yù)測(cè)由已知的L0和T0以及右邊的L2加權(quán)預(yù)測(cè)而得。rsdl0和rsdl1是殘差向量,它是第一編碼塊減去預(yù)測(cè)后得到的殘差經(jīng)過DCT變換、量化、反量化和反DCT變換后得到的,而L2的預(yù)測(cè)則是根據(jù)R1和T0產(chǎn)生。上面兩個(gè)公式中只有2個(gè)未知向量,即R1和L2,將公式二代入公式一,通過解方程即可解出R1,然后根據(jù)R1和T0可以得到第二編碼塊,同時(shí)也得到了L2,然后解出第一編碼塊。
另外,在本實(shí)施例中rsdl0就是第一編碼塊的源像素塊減去其幀內(nèi)預(yù)測(cè)塊,然后變換-量化-反量化-反變換后得到重構(gòu)殘差塊,然后取最右一列,就是rsdl0。
rsdl1就是第二編碼塊的源像素塊減去其幀內(nèi)預(yù)測(cè)塊,然后變換-量化-反量化-反變換后得到重構(gòu)殘差塊,然后取最左一列,就是rsdl1。
第一個(gè)公式中的P(L0,T0,dir0)表示以L0和T0根據(jù)方向dir0產(chǎn)生的第一編碼塊的預(yù)測(cè)取最右一列,P(L2,dir0)表示以L2和方向dir0產(chǎn)生的預(yù)測(cè)取最右一列。P(R1,T0,dir1)表示以R1和T0根據(jù)方向dir1生成的第二編碼塊的預(yù)測(cè)取最左一列。
以上是在殘差向量和左、上像素源已經(jīng)可用的條件下,進(jìn)行的幀內(nèi)預(yù)測(cè)。
但在初次編碼時(shí),我們只有左上相鄰行列,以及原始的兩個(gè)當(dāng)前像素塊,即,第一編碼塊和第二編碼塊這時(shí),我們要先給第一編碼塊和第二編碼塊直接生成預(yù)測(cè),對(duì)于非最后一個(gè)塊,事實(shí)上都是需要雙向預(yù)測(cè)的,這時(shí),我們第一次生成預(yù)測(cè)時(shí),除了最左上的相鄰行列外,其余的全部使用原始像素生成預(yù)測(cè),然后加權(quán),然后用源像素減預(yù)測(cè),變換-量化-反量化-反變換獲得殘差的重構(gòu),就是rsdl。
通過本實(shí)施例,對(duì)當(dāng)前編碼塊進(jìn)行幀內(nèi)左、上方向預(yù)測(cè)和幀內(nèi)右、下方向預(yù)測(cè)的雙向預(yù)測(cè)并加權(quán),實(shí)現(xiàn)了對(duì)當(dāng)前視頻編碼塊的高預(yù)測(cè)精度,提高了編碼效率。
實(shí)施例三
參照?qǐng)D4,示出了本發(fā)明視頻編碼中上下左右相鄰的四個(gè)編碼塊同時(shí)編碼時(shí)幀內(nèi)預(yù)測(cè)的示意圖。
當(dāng)上下左右四個(gè)相鄰編碼塊同時(shí)進(jìn)行視頻編碼時(shí),參照?qǐng)D4,其中,左上編碼塊為第A編碼塊、右上編碼塊為第B編碼塊、左下編碼塊為第C編碼塊、右下編碼塊為第D編碼塊。
T0是第A編碼塊和第B編碼塊的上方相鄰編碼塊的最下行像素行,本實(shí)施例中T0為已知參考像素行;L0是第A編碼塊和第C編碼塊的左方相鄰編碼塊最右列像素列,本實(shí)施例中L0為已知參考像素列;R1為第A編碼塊的最右列像素列;B1為第A編碼塊的最下行像素行;L2為第B編碼塊的最左列像素列;B2為第B編碼塊的最下行像素行;T3為第C編碼塊的最上行像素行;R3為第C編碼塊的最右列像素列;L4為第D編碼塊的最左列像素列;T4為第D編碼塊的最上行像素行。
第A編碼塊根據(jù)其上方相鄰編碼塊的最下行像素行T0以及其左方相鄰編碼塊最右列像素列L0進(jìn)行幀內(nèi)左、上方向的預(yù)測(cè);并根據(jù)第B編碼塊的最左列像素列L2及第C編碼塊的最上行像素行T3進(jìn)行幀內(nèi)右、下方向的預(yù)測(cè)并對(duì)幀內(nèi)左、上方向預(yù)測(cè)和右、下方向預(yù)測(cè)進(jìn)行加權(quán)。
第B編碼塊根據(jù)其上方相鄰編碼塊的最下行像素行T0以及第A編碼塊的最右列像素列R1進(jìn)行幀內(nèi)左、上方向的預(yù)測(cè);并根據(jù)第D編碼塊的最上行的像素行T4進(jìn)行幀內(nèi)右、下方向的預(yù)測(cè),并對(duì)幀內(nèi)左、上方向預(yù)測(cè)和右、下方向預(yù)測(cè)進(jìn)行加權(quán)。
第C編碼塊根據(jù)第A編碼塊的最下行的像素行B1以及其左方相鄰編碼塊的最右列像素列L0進(jìn)行幀內(nèi)左、上方向的預(yù)測(cè);并根據(jù)第D編碼塊的最左列像素列L4進(jìn)行幀內(nèi)右、下方向的預(yù)測(cè),并對(duì)幀內(nèi)左、上方向預(yù)測(cè)和右、下方向預(yù)測(cè)進(jìn)行加權(quán)。
第D編碼塊根據(jù)第B編碼塊最下行像素行B2以及第C編碼塊最右列的像素列R3進(jìn)行幀內(nèi)左、上方向的預(yù)測(cè);幀內(nèi)右、下預(yù)測(cè)不進(jìn)行預(yù)測(cè)。
對(duì)于第A編碼塊,具體公式如下:
公式一:B1=P(L0,T0,dir2)*q2+(1-q2)P(T3,L2,dir2)+rsdl2
公式二:R1=P(L0,T0,dir2)*p2+(1-p2)P(T3,L2,dir2)+rsdl3
此處,rsdl2和rsdl3是殘差向量,對(duì)待第A編碼塊,獲得它的某一個(gè)dir2的雙向預(yù)測(cè),然后將源塊和預(yù)測(cè)塊相減,得到殘差塊,然后對(duì)殘差塊執(zhí)行DCT-量化-反量化-IDCT操作后,得到重構(gòu)的殘差塊,然后殘差塊的最底一行就是rsdl2,最右一列rsdl3。P(L0,T0,dir2)本身表示以L0和T0根據(jù)方向dir2產(chǎn)生的第A編碼塊的預(yù)測(cè),但在本實(shí)施例的公式一中,它實(shí)際表示以L0和T0根據(jù)方向dir2產(chǎn)生的第A編碼塊的預(yù)測(cè)取最底一行,而第二個(gè)公式中的P(L0,T0,dir2)表示以L0和T0根據(jù)方向dir2產(chǎn)生的第A編碼塊的預(yù)測(cè)取最右一列。
同樣的方式,可以列出第B編碼塊、第C編碼塊、和第D編碼塊的公式,對(duì)于第B編碼塊,它的預(yù)測(cè)由R1、T0的左上預(yù)測(cè)以及T4的右下預(yù)測(cè)加權(quán)得到,公式如下:
公式三:L2=P(R1,T0,dir3)*q3+(1-q3)*P(T4,dir3)+rsdl4
公式四:B2=P(R1,T0,dir3)*p3+(1-p3)*P(T4,dir3)+rsdl5
對(duì)于第C編碼塊,它也是雙向預(yù)測(cè),即來自的L0、B1左上預(yù)測(cè)和來自的L4右下預(yù)測(cè)加權(quán)獲得,公式如下:
公式五:T3=P(L0,B1,dir4)*q4+(1-q4)*P(L4,dir4)+rsdl6
公式六:R3=P(L0,B1,dir4)*p4+(1-p4)*P(L4,dir4)+rsdl7
對(duì)于第D編碼塊,它采用單向預(yù)測(cè),即B2和R3的左上預(yù)測(cè),公式如下:
公式七:T4=P(B2,R3,dir5)+rsdl8
公式八:L4=P(B2,R3,dir5)+rsdl9
本實(shí)施例中有8個(gè)向量方程式,同時(shí)有8個(gè)未知向量,所以方程可解。
以上是在殘差向量和左、上像素源已經(jīng)可用的條件下,進(jìn)行的幀內(nèi)預(yù)測(cè)。
但在初次編碼時(shí),我們只有左上相鄰行列,以及原始的四個(gè)當(dāng)前像素塊,即,第A編碼塊、第B編碼塊、第C編碼塊和第D編碼塊,這時(shí),我們要先給第A編碼塊、第B編碼塊、第C編碼塊和第D編碼塊直接生成預(yù)測(cè),對(duì)于非最后一個(gè)塊,事實(shí)上都是需要雙向預(yù)測(cè)的,這時(shí),我們第一次生成預(yù)測(cè)時(shí),除了最左上的相鄰行列外,其余的全部使用原始像素生成預(yù)測(cè),然后加權(quán),然后用源像素減預(yù)測(cè),變換-量化-反量化-反變換獲得殘差的重構(gòu),就是rsdl。
通過本實(shí)施例,對(duì)當(dāng)前編碼塊進(jìn)行幀內(nèi)左、上方向預(yù)測(cè)和幀內(nèi)右、下方向預(yù)測(cè)的雙向預(yù)測(cè)并加權(quán),實(shí)現(xiàn)了對(duì)當(dāng)前視頻編碼塊的高預(yù)測(cè)精度,提高了編碼效率。
實(shí)施例四
參照?qǐng)D5,示出了本發(fā)明一種視頻編碼幀內(nèi)預(yù)測(cè)裝置的結(jié)構(gòu)框圖。
本實(shí)施例的視頻編碼幀內(nèi)預(yù)測(cè)裝置1,包括:幀內(nèi)左上預(yù)測(cè)單元2、幀內(nèi)右下預(yù)測(cè)單元3、加權(quán)單元4,其中:
幀內(nèi)左上預(yù)測(cè)單元2,用于對(duì)當(dāng)前編碼塊進(jìn)行幀內(nèi)左、上方向預(yù)測(cè);例如,根據(jù)當(dāng)前編碼塊的左方相鄰的編碼塊的最右列像素列及上方相鄰的編碼塊的最下行像素行進(jìn)行幀內(nèi)左、上方向的預(yù)測(cè);其中,當(dāng)相應(yīng)的像素列或者像素行有一個(gè)不存在時(shí),只根據(jù)存在的像素行或者像素列進(jìn)行幀內(nèi)左、上預(yù)測(cè);當(dāng)相應(yīng)的像素列和者像素行都不存在時(shí),不進(jìn)行幀內(nèi)左、上預(yù)測(cè);
幀內(nèi)右下預(yù)測(cè)單元3,用于對(duì)當(dāng)前編碼塊進(jìn)行幀內(nèi)右、下方向預(yù)測(cè);例如,用于根據(jù)當(dāng)前編碼塊的右方相鄰的編碼塊的最左列像素列及下方相鄰的編碼塊的最上行像素行進(jìn)行幀內(nèi)右、下方向的預(yù)測(cè);其中,當(dāng)相應(yīng)的像素列或者像素行有一個(gè)不存在時(shí),只根據(jù)存在的像素行或者像素列進(jìn)行幀內(nèi)右、下預(yù)測(cè);當(dāng)相應(yīng)的像素列和者像素行都不存在時(shí),不進(jìn)行幀內(nèi)右、下預(yù)測(cè)。
加權(quán)單元4,用于對(duì)幀內(nèi)左上預(yù)測(cè)單元2輸出的幀內(nèi)左、上方向預(yù)測(cè)和幀內(nèi)右下預(yù)測(cè)單元3輸出的幀內(nèi)右、下方向預(yù)測(cè)進(jìn)行加權(quán)。
本實(shí)施例的視頻編碼幀內(nèi)預(yù)測(cè)裝置用于實(shí)現(xiàn)前述實(shí)施例一、二以及實(shí)施例三中相應(yīng)的視頻編碼幀內(nèi)預(yù)測(cè)方法,并且具有相應(yīng)的方法實(shí)施例的有益效果,在此不再贅述。
以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動(dòng)的情況下,即可以理解并實(shí)施。
通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實(shí)施方式可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件?;谶@樣的理解,上述技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。
最后應(yīng)說明的是:以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。