亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種幀內(nèi)預(yù)測(cè)模式的預(yù)測(cè)方法

文檔序號(hào):7700665閱讀:187來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):一種幀內(nèi)預(yù)測(cè)模式的預(yù)測(cè)方法
技術(shù)領(lǐng)域
本發(fā)明涉及視頻壓縮技術(shù),特別涉及一種幀內(nèi)預(yù)測(cè)模式的預(yù)測(cè)方法。

背景技術(shù)
在現(xiàn)行的視頻壓縮標(biāo)準(zhǔn)中,幀內(nèi)編碼被廣泛使用。幀內(nèi)編碼利用同一幀中像素的空間相關(guān)性來(lái)去除冗余,而且由于不用相鄰時(shí)域幀做參考,所以可以有效的阻止錯(cuò)誤的幀間傳播,被用作參考幀和立即刷新幀。
在最新的H.264/AVC視頻壓縮標(biāo)準(zhǔn)中對(duì)于4x4亮度塊的定義了9種幀內(nèi)方向預(yù)測(cè)模式。同以往的視頻壓縮標(biāo)準(zhǔn)如H.261、MPEG-2、H.263、MPEG-4等相比較,新標(biāo)準(zhǔn)采用了更多的幀內(nèi)預(yù)測(cè)模式,所以使得幀內(nèi)編碼的效率得到提高。但是由于需要將具體采用的幀內(nèi)預(yù)測(cè)模式編碼后發(fā)送給解碼端,因此為了表示每個(gè)幀內(nèi)編碼塊所采用的方向預(yù)測(cè)模式就需要大量的比特。以4x4亮度塊為例,在不做任何優(yōu)化的條件下為了表示9種預(yù)測(cè)模式,每個(gè)編碼塊需要4比特開(kāi)銷(xiāo)來(lái)傳輸預(yù)測(cè)模式。對(duì)于整幅圖像來(lái)說(shuō)這種開(kāi)銷(xiāo)極大的降低了壓縮效率。所以,在H.264/AVC編碼標(biāo)準(zhǔn)中對(duì)幀內(nèi)預(yù)測(cè)模式采用預(yù)測(cè)編碼的方式來(lái)減少比特開(kāi)銷(xiāo)。
在目前的H.264/AVC標(biāo)準(zhǔn)中,首先對(duì)采用的幀內(nèi)預(yù)測(cè)模式進(jìn)行預(yù)測(cè),確定最有可能的預(yù)測(cè)模式,然后,根據(jù)預(yù)測(cè)得到的最有可能的預(yù)測(cè)模式與實(shí)際采用的預(yù)測(cè)模式間的關(guān)系,進(jìn)行預(yù)測(cè)模式的編碼。
具體地,如果預(yù)測(cè)得到的最有可能預(yù)測(cè)模式與實(shí)際采用的預(yù)測(cè)模式一致,則只需要1比特來(lái)表示預(yù)測(cè)模式信息,即告知解碼器采用預(yù)測(cè)得到的最有可能預(yù)測(cè)模式作為當(dāng)前解碼塊所選擇的模式;如果預(yù)測(cè)得到的最有可能預(yù)測(cè)模式與實(shí)際采用的預(yù)測(cè)模式不同,除使用1比特表示實(shí)際采用的預(yù)測(cè)模式與最有可能的預(yù)測(cè)模式不同之外,還需要額外的比特來(lái)表示實(shí)際采用的預(yù)測(cè)模式,在這種情況下又分為兩種情況當(dāng)實(shí)際采用的預(yù)測(cè)模式序號(hào)比最有可能預(yù)測(cè)模式的序號(hào)小時(shí),直接對(duì)實(shí)際預(yù)測(cè)模式信息進(jìn)行編碼;當(dāng)實(shí)際采用的預(yù)測(cè)模式序號(hào)比最有可能預(yù)測(cè)模式的序號(hào)大時(shí),對(duì)實(shí)際采用的預(yù)測(cè)模式序號(hào)減1后進(jìn)行編碼。通過(guò)這樣的處理,編碼預(yù)測(cè)模式僅需3比特。
由上述可見(jiàn),如果對(duì)幀內(nèi)預(yù)測(cè)模式的預(yù)測(cè)準(zhǔn)確,即最有可能編碼模式與當(dāng)前4x4塊實(shí)際采用的預(yù)測(cè)模式相同,那么僅需1比特來(lái)表示當(dāng)前塊的預(yù)測(cè)模式信息。相反,如果預(yù)測(cè)錯(cuò)誤,那么需要4比特來(lái)表示實(shí)際采用的預(yù)測(cè)模式??梢?jiàn),對(duì)幀內(nèi)預(yù)測(cè)模式的預(yù)測(cè)結(jié)果是否準(zhǔn)確,會(huì)直接影響幀內(nèi)編碼的壓縮效率。
在目前的H.264/AVC標(biāo)準(zhǔn)中,對(duì)采用的幀內(nèi)預(yù)測(cè)模式進(jìn)行預(yù)測(cè)的方式為將9種幀內(nèi)預(yù)測(cè)模式的序號(hào)從0到8按概率從大到小排列,如果當(dāng)前4x4塊的上方和左邊塊都采用4x4幀內(nèi)預(yù)測(cè)編碼方式,那么就將上方和左邊4x4塊中所采用的預(yù)測(cè)模式序號(hào)小的作為當(dāng)前塊的最有可能預(yù)測(cè)模式。同樣的,在解碼端也采用如此方法來(lái)計(jì)算最有可能預(yù)測(cè)模式。所以,不難理解在解碼端和編碼端可以得到相同的最有可能預(yù)測(cè)模式。
上述預(yù)測(cè)方式僅考慮了上方和左邊的已編碼塊,并且預(yù)測(cè)方式較為簡(jiǎn)單,使得預(yù)測(cè)結(jié)果與實(shí)際采用的預(yù)測(cè)模式相同的概率不大。


發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供一種幀內(nèi)預(yù)測(cè)模式的預(yù)測(cè)方法,能夠提高預(yù)測(cè)結(jié)果與實(shí)際采用的預(yù)測(cè)模式相同的概率,從而減少了編碼幀內(nèi)預(yù)測(cè)模式的開(kāi)銷(xiāo),提高了幀內(nèi)編碼的壓縮效率。
為實(shí)現(xiàn)上述目的,本發(fā)明采用如下的技術(shù)方案 一種幀內(nèi)預(yù)測(cè)模式的預(yù)測(cè)方法,包括 A、根據(jù)當(dāng)前編碼塊的相鄰已編碼塊,設(shè)置當(dāng)前編碼塊的鄰域預(yù)測(cè)模板及所述鄰域預(yù)測(cè)模板的參考像素;其中,將當(dāng)前編碼塊的左上角像素位置設(shè)為坐標(biāo)(0,0),水平方向的X軸向右為正,垂直方向的Y軸向下為正, 若當(dāng)前編碼塊為圖像上方第一行,將位于(-1,0)、(-2,0)、(-1,1)、(-2,1)、(-1,2)、(-2,2)、(-1,3)、(-2,3)的8個(gè)像素作為當(dāng)前編碼塊的鄰域預(yù)測(cè)模板,將位于(-3,0)、(-3,1)、(-3,2)、(-3,3)的4個(gè)像素作為所述參考像素; 若當(dāng)前編碼塊位于圖像最右邊且非圖像上方第一行,將位于(-2,-2)、(-1,-2)、(0,-2)、(1,-2)、(2,-2)、(3,-2)、(-2,-1)、(-1,-1)、(0,-1)、(1,-1)、(2,-1)、(3,-1)、(-1,0)、(-2,0)、(-1,1)、(-2,1)、(-1,2)、(-2,2)、(-1,3)、(-2,3)的20個(gè)像素作為當(dāng)前編碼塊的鄰域預(yù)測(cè)模板,將位于(-3,-3)、(-2,-3)、(-1,-3)、(0,-3)、(1,-3)、(2,-3)、(3,-3)、(-3,-2)、(-3,-1)、(-3,0)、(-3,1)、(-3,2)、(-3,3)的13個(gè)像素作為所述參考像素; 若當(dāng)前編碼塊位于圖像最左邊且非圖像上方第一行,將位于(0,-2)、(1,-2)、(2,-2)、(3,-2)、(4,-2)、(5,-2)、(0,-1)、(1,-1)、(2,-1)、(3,-1)、(4,-1)、(5,-1)的12個(gè)像素作為當(dāng)前編碼塊的鄰域預(yù)測(cè)模板,將位于(0,-3)、(1,-3)、(2,-3)、(3,-3)、(4,-3)、(5,-3)、(6,-3)、(7,-3)的8個(gè)像素作為所述參考像素; 若當(dāng)前編碼塊不位于圖像的第一行、或最右邊、或最左邊,且不是圖像的第一個(gè)編碼塊,則將位于(-2,-2)、(-1,-2)、(0,-2)、(1,-2)、(2,-2)、(3,-2)、(4,-2)、(5,-2)、(-2,-1)、(-1,-1)、(0,-1)、(1,-1)、(2,-1)、(3,-1)、(4,-1)、(5,-1)、(-1,0)、(-2,0)、(-1,1)、(-2,1)、(-1,2)、(-2,2)、(-1,3)、(-2,3)的24個(gè)像素作為當(dāng)前編碼塊的鄰域預(yù)測(cè)模板,將位于(-3,-3)、(-2,-3)、(-1,-3)、(0,-3)、(1,-3)、(2,-3)、(3,-3)、(4,-3)、(5,-3)、(6,-3)、(7,-3)、(-3,-2)、(-3,-1)、(-3,0)、(-3,1)、(-3,2)、(-3,3)的17個(gè)像素作為所述參考像素; B、根據(jù)所述當(dāng)前編碼塊在圖像中的位置確定可用的預(yù)測(cè)模式,并遍歷所有可用的預(yù)測(cè)模式,在每種預(yù)測(cè)模式i下,利用鄰域預(yù)測(cè)模板的參考像素,計(jì)算所述鄰域預(yù)測(cè)模板中像素的預(yù)測(cè)值,并根據(jù)所述預(yù)測(cè)值與所述鄰域預(yù)測(cè)模板中像素的實(shí)際值計(jì)算代價(jià)函數(shù) 將最小的代價(jià)函數(shù)值對(duì)應(yīng)的預(yù)測(cè)模式作為預(yù)測(cè)結(jié)果;其中,predMode(i)(x,y)預(yù)測(cè)模式i下所述鄰域預(yù)測(cè)模板中像素的預(yù)測(cè)值,x和y為鄰域預(yù)測(cè)模板的坐標(biāo),templatePixel(x,y)為所述鄰域預(yù)測(cè)模板中像素的實(shí)際值,templateSize為預(yù)測(cè)模式i下實(shí)際采用的鄰域預(yù)測(cè)模板中的像素總數(shù)。
較佳地,位于圖像第一行的非第一個(gè)當(dāng)前編碼塊,可用的預(yù)測(cè)模式為預(yù)測(cè)模式1、2和8; 位于圖像最右邊且非第一行的當(dāng)前編碼塊,可用的預(yù)測(cè)模式為預(yù)測(cè)模式0、2、3和7; 除位于圖像第一行、圖像最右邊和圖像第一個(gè)編碼塊之外的其他當(dāng)前編碼塊,可用的預(yù)測(cè)模式為所有9種幀內(nèi)預(yù)測(cè)模式。
由上述技術(shù)方案可見(jiàn),本發(fā)明中,根據(jù)當(dāng)前編碼塊的相鄰已編碼塊,設(shè)置當(dāng)前編碼塊的鄰域預(yù)測(cè)模板及所述鄰域預(yù)測(cè)模板的參考像素;然后,遍歷當(dāng)前編碼塊的所有可用預(yù)測(cè)模式,利用當(dāng)前編碼塊的鄰域預(yù)測(cè)模板,按照每種可用預(yù)測(cè)模式對(duì)參考像素進(jìn)行預(yù)測(cè),并根據(jù)得到的預(yù)測(cè)值與參考像素實(shí)際值進(jìn)行比較,確定對(duì)所有參考像素的平均預(yù)測(cè)效果最佳的預(yù)測(cè)模式,將其作為當(dāng)前編碼塊的預(yù)測(cè)模式??梢?jiàn),不僅利用左邊和上邊的編碼塊,而是利用各種可用預(yù)測(cè)模式所涉及的相鄰已編碼像素,從而保證可以遍歷各種可用的預(yù)測(cè)模式,并且根據(jù)各種可用預(yù)測(cè)模式下對(duì)鄰域預(yù)測(cè)模板中像素的預(yù)測(cè)結(jié)果,選擇平均預(yù)測(cè)效果最佳的一種預(yù)測(cè)模式作為當(dāng)前編碼塊的預(yù)測(cè)模式,從而提高了預(yù)測(cè)模式的預(yù)測(cè)準(zhǔn)確性,進(jìn)而減少了編碼幀內(nèi)預(yù)測(cè)模式的開(kāi)銷(xiāo),提高了幀內(nèi)編碼的壓縮效率。



圖1為本發(fā)明中幀內(nèi)預(yù)測(cè)模式的預(yù)測(cè)方法流程圖。
圖2a為鄰域預(yù)測(cè)模板和參考像素的示意圖一。
圖2b為鄰域預(yù)測(cè)模板和參考像素的示意圖二。
圖2c為鄰域預(yù)測(cè)模板和參考像素的示意圖三。
圖2d為鄰域預(yù)測(cè)模板和參考像素的示意圖四。
圖3為foreman測(cè)試序列下,采用本發(fā)明方法計(jì)算的最有可能預(yù)測(cè)模式的正確率與H.264/AVC編碼標(biāo)準(zhǔn)中計(jì)算的最有可能預(yù)測(cè)模式的正確率的性能比較示意圖。
圖4為foreman測(cè)試序列下,采用本發(fā)明的方法進(jìn)行預(yù)測(cè)后再進(jìn)行編碼與H.264/AVC編碼標(biāo)準(zhǔn)中編碼預(yù)測(cè)模式的性能比較示意圖。

具體實(shí)施例方式 為使本發(fā)明的目的、技術(shù)手段和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖對(duì)本發(fā)明做進(jìn)一步詳細(xì)說(shuō)明。
本發(fā)明的基本思想是對(duì)各種可用的預(yù)測(cè)模式進(jìn)行遍歷,利用各種預(yù)測(cè)模式對(duì)已編碼像素進(jìn)行預(yù)測(cè),根據(jù)預(yù)測(cè)結(jié)果與已編碼像素的匹配程度,選擇預(yù)測(cè)效果最佳的一種作為當(dāng)前編碼塊的預(yù)測(cè)模式。
如前所述,在現(xiàn)有技術(shù)中,根據(jù)當(dāng)前編碼塊的左邊和上邊相鄰已編碼塊的預(yù)測(cè)模式來(lái)確定當(dāng)前編碼塊的預(yù)測(cè)模式,并且在兩個(gè)相鄰已編碼塊采用的最多兩種預(yù)測(cè)模式中選擇一種,作為當(dāng)前編碼塊的預(yù)測(cè)結(jié)果。
由于相鄰編碼塊的像素相關(guān)性較大,因此本發(fā)明中同樣根據(jù)相鄰已編碼塊的預(yù)測(cè)當(dāng)前編碼塊的預(yù)測(cè)模式。與現(xiàn)有技術(shù)不同的在于,本發(fā)明中會(huì)對(duì)所有可用的預(yù)測(cè)模式進(jìn)行遍歷,選擇預(yù)測(cè)效果最佳的作為當(dāng)前編碼塊的預(yù)測(cè)模式。
具體地,本發(fā)明中幀內(nèi)預(yù)測(cè)模式的預(yù)測(cè)方法流程包括鄰域預(yù)測(cè)模板和參考像素的確定,利用參考像素依次按照各種可用的預(yù)測(cè)模式對(duì)鄰域預(yù)測(cè)模板中的像素進(jìn)行預(yù)測(cè),選擇預(yù)測(cè)效果最佳的一種作為當(dāng)前編碼塊的預(yù)測(cè)模式。
下面對(duì)本發(fā)明的具體實(shí)現(xiàn)做進(jìn)一步詳細(xì)說(shuō)明。本發(fā)明中的幀內(nèi)預(yù)測(cè)模式的預(yù)測(cè)方法是對(duì)除當(dāng)前幀的第一個(gè)編碼塊之外的其他編碼塊進(jìn)行預(yù)測(cè)的流程,圖1為本發(fā)明中預(yù)測(cè)方式的流程圖,如圖1所示,該方法包括 步驟101,根據(jù)當(dāng)前編碼塊的相鄰已編碼塊,設(shè)置當(dāng)前編碼塊的鄰域預(yù)測(cè)模板及該鄰域預(yù)測(cè)模板的參考像素。
本步驟中,鄰域預(yù)測(cè)模板和參考像素是由當(dāng)前編碼塊的相鄰已編碼塊中的像素構(gòu)成的。其中,參考像素是用于對(duì)鄰域預(yù)測(cè)模板中的像素進(jìn)行預(yù)測(cè)的已編碼像素。
具體根據(jù)當(dāng)前編碼塊的位置,確定鄰域預(yù)測(cè)模板和參考像素的方式為 假定當(dāng)前編碼塊的左上角像素位置設(shè)為坐標(biāo)(0,0),水平方向的X軸向右為正,垂直方向的Y軸向下為正; 1)當(dāng)當(dāng)前編碼塊處于圖像上方第一行時(shí),僅相鄰的左邊相鄰塊已編碼可作為參考,則將位于(-1,0)、(-2,0)、(-1,1)、(-2,1)、(-1,2)、(-2,2)、(-1,3)、(-2,3)的8個(gè)像素作為當(dāng)前編碼塊的鄰域預(yù)測(cè)模板,將位于(-3,0)、(-3,1)、(-3,2)、(-3,3)的4個(gè)像素作為所述參考像素;具體的位置關(guān)系如圖2a所示,領(lǐng)域預(yù)測(cè)模板由當(dāng)前編碼塊左邊相鄰的8個(gè)像素構(gòu)成,像素I-L作為參考像素; 2)當(dāng)當(dāng)前塊處于圖像最右邊,即圖像右邊最后一列時(shí),僅相鄰的左邊和正上方相鄰塊已編碼可作為參考,則將位于(-2,-2)、(-1,-2)、(0,-2)、(1,-2)、(2,-2)、(3,-2)、(-2,-1)、(-1,-1)、(0,-1)、(1,-1)、(2,-1)、(3,-1)、(-1,0)、(-2,0)、(-1,1)、(-2,1)、(-1,2)、(-2,2)、(-1,3)、(-2,3)的20個(gè)像素作為當(dāng)前編碼塊的鄰域預(yù)測(cè)模板,將位于(-3,-3)、(-2,-3)、(-1,-3)、(0,-3)、(1,-3)、(2,-3)、(3,-3)、(-3,-2)、(-3,-1)、(-3,0)、(-3,1)、(-3,2)、(-3,3)的13個(gè)像素作為參考像素;具體的位置關(guān)系如圖2b所示,領(lǐng)域預(yù)測(cè)模板為20個(gè)像素構(gòu)成的L型區(qū)域,A-D、I-Q作為參考像素; 3)當(dāng)當(dāng)前塊處于圖像最左邊,即圖像左邊第一列時(shí),僅相鄰的正上方相鄰塊已編碼可作為參考,或正上方相鄰塊和右上方相鄰塊同時(shí)可作為參考,則將位于(0,-2)、(1,-2)、(2,-2)、(3,-2)、(4,-2)、(5,-2)、(0,-1)、(1,-1)、(2,-1)、(3,-1)、(4,-1)、(5,-1)的12個(gè)像素作為當(dāng)前編碼塊的鄰域預(yù)測(cè)模板,將位于(0,-3)、(1,-3)、(2,-3)、(3,-3)、(4,-3)、(5,-3)、(6,-3)、(7,-3)的8個(gè)像素作為參考像素;具體的位置關(guān)系如圖2c所示,鄰域預(yù)測(cè)模板為當(dāng)前編碼宏塊正上方和右上方相鄰的12個(gè)像素,A-H作為參考像素;具體地,在當(dāng)前編碼塊位于該圖像最左邊時(shí),根據(jù)不同的預(yù)測(cè)模式,可能僅將正上方相鄰塊作為參考,這時(shí),實(shí)際應(yīng)用的領(lǐng)域預(yù)測(cè)模板為正上方相鄰的8個(gè)像素,A-D作為相應(yīng)的參考像素;或者,也可能將正上方相鄰塊和右上方相鄰塊同時(shí)作為參考,這時(shí),實(shí)際應(yīng)用的領(lǐng)域預(yù)測(cè)模板為正上方和右上方相鄰12個(gè)像素構(gòu)成的模板,A-H作為相應(yīng)的參考像素; 4)當(dāng)當(dāng)前塊處于圖像中的其它位置時(shí),左邊、正上方和右上方的相鄰塊均可用作參考,則將位于(-2,-2)、(-1,-2)、(0,-2)、(1,-2)、(2,-2)、(3,-2)、(4,-2)、(5,-2)、(-2,-1)、(-1,-1)、(0,-1)、(1,-1)、(2,-1)、(3,-1)、(4,-1)、(5,-1)、(-1,0)、(-2,0)、(-1,1)、(-2,1)、(-1,2)、(-2,2)、(-1,3)、(-2,3)的24個(gè)像素作為當(dāng)前編碼塊的鄰域預(yù)測(cè)模板,將位于(-3,-3)、(-2,-3)、(-1,-3)、(0,-3)、(1,-3)、(2,-3)、(3,-3)、(4,-3)、(5,-3)、(6,-3)、(7,-3)、(-3,-2)、(-3,-1)、(-3,0)、(-3,1)、(-3,2)、(-3,3)的17個(gè)像素作為參考像素;具體的位置關(guān)系如圖2d所示,領(lǐng)域預(yù)測(cè)模板為24個(gè)像素構(gòu)成的L型區(qū)域,A-Q作為參考像素;與前一種情況類(lèi)似,根據(jù)不同的預(yù)測(cè)模式,實(shí)際采用的鄰域預(yù)測(cè)模板與參考像素會(huì)有所差別,可以根據(jù)現(xiàn)有的各種預(yù)測(cè)模式來(lái)進(jìn)行實(shí)際的鄰域預(yù)測(cè)模板與參考像素的選擇。
在上述4種當(dāng)前編碼塊的位置上,設(shè)置鄰域預(yù)測(cè)模板和參考像素的過(guò)程中,之所以進(jìn)行上述方式的設(shè)置,一方面考慮到不同預(yù)測(cè)模式下,實(shí)際采用的鄰域預(yù)測(cè)模板不會(huì)完全相同,從而能夠體現(xiàn)出不同預(yù)測(cè)模式的性能差異,另一方面盡量避免利用過(guò)多的已編碼像素進(jìn)行預(yù)測(cè),以降低實(shí)現(xiàn)復(fù)雜度。
步驟102,根據(jù)當(dāng)前編碼塊在圖像中的位置確定可用的預(yù)測(cè)模式。
如前所述,幀內(nèi)預(yù)測(cè)模式共有9種,但對(duì)于某些位置上的編碼塊,并不是所有9種預(yù)測(cè)模式均可用,對(duì)于不可用的預(yù)測(cè)模式,就不需要對(duì)其進(jìn)行遍歷。本步驟即根據(jù)當(dāng)前編碼塊在圖像中的位置確定可用的預(yù)測(cè)模式。
具體地,對(duì)于上述步驟101的1)所述位置的編碼塊,可用的預(yù)測(cè)模式為1、2和8;對(duì)于上述步驟101的2)所述位置的編碼塊,可用的預(yù)測(cè)模式為2、3和7;對(duì)于其余位置的編碼塊,可用的預(yù)測(cè)模式為所有9種預(yù)測(cè)模式。
步驟103,遍歷所有可用的預(yù)測(cè)模式,在每種預(yù)測(cè)模式下,利用當(dāng)前編碼塊的鄰域預(yù)測(cè)模板的參考像素,計(jì)算鄰域預(yù)測(cè)模板中像素的預(yù)測(cè)值。
本步驟中,遍歷所有可用的預(yù)測(cè)模式,在每種預(yù)測(cè)模式下,利用當(dāng)前編碼塊的鄰域預(yù)測(cè)模板的參考像素,計(jì)算鄰域預(yù)測(cè)模板中像素的預(yù)測(cè)值。其中,在不同的預(yù)測(cè)模式下,需要在鄰域預(yù)測(cè)模板像素中選擇當(dāng)前預(yù)測(cè)模式實(shí)際采用的像素,具體在每種預(yù)測(cè)模式下,預(yù)測(cè)值的計(jì)算方式和鄰域預(yù)測(cè)模板中選擇像素的方式與現(xiàn)有方式相同。
具體地,本步驟中,設(shè)鄰域預(yù)測(cè)模板左上角像素位置為(0,0),pred4x4L[x,y]為在不同的預(yù)測(cè)模式下對(duì)鄰域預(yù)測(cè)模板中的像素進(jìn)行預(yù)測(cè)所得到的預(yù)測(cè)值,p[x,y]為參考像素值,其中x,y的取值根據(jù)當(dāng)前編碼塊所用的鄰域預(yù)測(cè)模板規(guī)定,即根據(jù)步驟101中的坐標(biāo)轉(zhuǎn)換而來(lái)。
1)預(yù)測(cè)模式0 pred4x4L[x,y]=p[x,-1],其中x,y的取值根據(jù)當(dāng)前編碼塊所用的鄰域預(yù)測(cè)模板規(guī)定,即根據(jù)步驟101中的坐標(biāo)轉(zhuǎn)換而來(lái)。
2)預(yù)測(cè)模式1 pred4x4L[x,y]=p[-1,y],其中x,y的取值根據(jù)當(dāng)前編碼塊所用的鄰域預(yù)測(cè)模板規(guī)定,即根據(jù)步驟101中的坐標(biāo)轉(zhuǎn)換而來(lái)。
3)預(yù)測(cè)模式2 a)如果p[x,-1],x=0..3和p[-1,y],y=0..3都可用,則 pred4x4L[x,y]=(p
+p[1,-1]+p[2,-1]+p[3,-1]+ p[-1,0]+p[-1,1]+p[-1,2]+p[-1,3]+4)>>3 其中x,y=0..3。
b)如果p[x,-1],x=0..3不可用p[-1,y],y=0..3可用,則 pred4x4L[x,y]=(p[-1,0]+p[-1,1]+p[-1,2]+p[-1,3]+2)>>2 其中x,y=0..3。
c)如果p[x,-1],x=0..3可用p[-1,y],y=0..3不可用,則 pred4x4L[x,y]=(p
+p[1,-1]+p[2,-1]+p[3,-1]+2)>>2 其中x,y=0..3。
d)對(duì)于其它情況, pred4x4L[x,y]=(1<<(BitDepthY-1))為表示亮度的比特位數(shù),如 其中BitDepthY為表示亮度的比特位數(shù),如8比特表示時(shí),pred4x4L[x,y]=8,其中x,y的取值根據(jù)當(dāng)前編碼塊所用的鄰域預(yù)測(cè)模板規(guī)定,即根據(jù)步驟101中的坐標(biāo)轉(zhuǎn)換而來(lái)。
4)預(yù)測(cè)模式3 pred4x4L[x,y]=(p[x+y,-1]+2*p[x+y+1,-1]+ p[x+y+2,-1]+2)>>2,其中x,y的取值根據(jù)當(dāng)前編碼塊所用的鄰域預(yù)測(cè)模板規(guī)定,即根據(jù)步驟101中的坐標(biāo)轉(zhuǎn)換而來(lái)。
5)預(yù)測(cè)模式4 a)如果x>y, pred4x4L[x,y]=(p[x-y-2,-1]+2*p[x-y-1,-1]+ p[x-y,-1]+2)>>2, b)如果x<y, pred4x4L[x,y]=(p[-1,y-x-2]+2*p[-1,y-x-1]+ p[-1,y-x]+2)>>2 c)如果x=y(tǒng), pred4x4L[x,y]=(p
+2*p[-1,-1]+p[-1,0]+2)>>2 其中x,y的取值根據(jù)當(dāng)前編碼塊所用的鄰域預(yù)測(cè)模板規(guī)定,即根據(jù)步驟101中的坐標(biāo)轉(zhuǎn)換而來(lái)。
6)預(yù)測(cè)模式5 令zVR=2*x-y a)如果zVR=0、2、4、6、8、10、12、14, pred4x4L[x,y]=(p[x-(y>>1)-1,-1]+p[x-(y>>1),-1]+1)>>1 b)如果zVR=1、3、5、7、9、11、13, pred4x4L[x,y]=(p[x-(y>>1)-2,-1]+2*p[x-(y>>1)-1,-1]+ p[x-(y>>1),-1]+2)>>2 c)如果zVR=-1 pred4x4L[x,y]=(p[-1,0]+2*p[-1,-1]+p
+2)>>2 d)如果zVR=-2, pred4x4L[x,y]=(p[-1,1]+2*p[-1,0]+p[-1,-1]+2)>>2 e)如果zVR=-3, pred4x4L[x,y]=(p[-1,2]+2*p[-1,1]+p
+2)>>2 f)如果zVR=-4,-5, pred4x4L[x,y]=(p[-1,y-1]+2*p[-1,y-2]+p[-1,y-3]+2)>>2 其中x,y的取值根據(jù)當(dāng)前編碼塊所用的鄰域預(yù)測(cè)模板規(guī)定,即根據(jù)步驟101中的坐標(biāo)轉(zhuǎn)換而來(lái)。
7)預(yù)測(cè)模式6 令zVR=2*y-x a)如果zVR=0、2、4、6、8、10, pred4x4L[x,y]=(p[-1,y-(x>>1)-1]+p[-1,y-(x>>1)]+1)>>1 b)如果zVR=1、3、5、7、9, pred4x4L[x,y]=(p[-1,y-(x>>1)-2]+ 2*p[-1,y-(x>>1)-1]+p[-1,y-(x>>1)]+2)>>2 c)如果zVR=-1, pred4x4L[x,y]=(p[-1,0]+2*p[-1,-1]+p
+2)>>2 d)如果zVR=-2, pred4x4L[x,y]=(p[1,-1]+2*p
+p[-1,-1]+2)>>2 c)如果zVR=-3, pred4x4L[x,y]=(p[2,-1]+2*p[1,-1]+p
+2)>>2 d)如果zVR=-4, pred4x4L[x,y]=(p[3,-1]+2*p[2,-1]+p[1,-1]+2)>>2 e)如果zVR=-5, pred4x4L[x,y]=(p[4,-1]+2*p[3,-1]+p[2,-1]+2)>>2 f)如果zVR=-6、-7, pred4x4L[x,y]=(p[x-1,-1]+2*p[x-2,-1]+p[x-3,-1]+2)>>2 其中x,y的取值根據(jù)當(dāng)前編碼塊所用的鄰域預(yù)測(cè)模板規(guī)定,即根據(jù)步驟101中的坐標(biāo)轉(zhuǎn)換而來(lái)。
8)預(yù)測(cè)模式7 a)當(dāng)y=0、2、4, pred4x4L[x,y]=(p[x+(y>>1),-1]+p[x+(y>>1)+1,-1]+1)>>1 b)當(dāng)y=1、3、5, pred4x4L[x,y]=(p[x+(y>>1),-1]+2*p[x+(y>>1)+1,-1]+ p[x+(y>>1)+2,-1]+2)>>2 其中x,y的取值根據(jù)當(dāng)前塊所用的預(yù)測(cè)模板規(guī)定(參考上面的步驟2和圖2)。
9)預(yù)測(cè)模式8 令zVR=x+2*y a)如果zVR=0、2、4、6、8, pred4x4L[x,y]=(p[-1,y+(x>>1)]+p[-1,y+(x>>1)+1]+1)>>1 b)如果zVR=1、3、5、7, pred4x4L[x,y]=(p[-1,y+(x>>1)]+2*p[-1,y+(x>>1)+1]+ p[-1,y+(x>>1)+2]+2)>>2 c)如果zVR=9, pred4x4L[x,y]=(p[-1,4]+3*p[-1,5]+2)>>2 c)如果zVR>9, pred4x4L[x,y]=p[-1,5] 其中x,y的取值根據(jù)當(dāng)前編碼塊所用的鄰域預(yù)測(cè)模板規(guī)定,即根據(jù)步驟101中的坐標(biāo)轉(zhuǎn)換而來(lái)。
至此,對(duì)于每種預(yù)測(cè)模式下,實(shí)際采用的鄰域預(yù)測(cè)模板中像素的預(yù)測(cè)值計(jì)算完畢。
步驟104,根據(jù)鄰域預(yù)測(cè)模板中像素的預(yù)測(cè)值和實(shí)際值,選擇預(yù)測(cè)效果最佳的預(yù)測(cè)模式作為當(dāng)前編碼塊的預(yù)測(cè)模式。
對(duì)鄰域預(yù)測(cè)模板中像素的預(yù)測(cè)效果通過(guò)代價(jià)函數(shù)來(lái)表征,具體該代價(jià)函數(shù)為其中,i為預(yù)測(cè)模式的編號(hào),x和y為鄰域預(yù)測(cè)模板中像素的坐標(biāo),predMode(i)(x,y)預(yù)測(cè)模式i下鄰域預(yù)測(cè)模板中像素的預(yù)測(cè)值,即前述步驟103中的pred4x4L[x,y],templatePixel(x,y)為所述鄰域預(yù)測(cè)模板中像素的實(shí)際值,templateSize為預(yù)測(cè)模式i下實(shí)際采用的鄰域預(yù)測(cè)模板中像素的總數(shù)。
在可用的預(yù)測(cè)模式中,使得代價(jià)函數(shù)最小的模式為預(yù)測(cè)值與實(shí)際值在統(tǒng)計(jì)意義上最接近的預(yù)測(cè)模式,也就是平均預(yù)測(cè)效果最優(yōu)的預(yù)測(cè)模式,將該預(yù)測(cè)模式作為當(dāng)前編碼塊的最有可能預(yù)測(cè)模式,即mostProbMode=arg min{Distortion(i)},mostProbMode即為最有可能預(yù)測(cè)模式,也就是按照本發(fā)明的方式確定的預(yù)測(cè)結(jié)果。
至此,本發(fā)明中的預(yù)測(cè)方法流程結(jié)束。接下來(lái),可以根據(jù)預(yù)測(cè)結(jié)果,對(duì)當(dāng)前編碼塊實(shí)際采用的預(yù)測(cè)模式進(jìn)行編碼,具體編碼方式與現(xiàn)有方式相同,即當(dāng)預(yù)測(cè)得到的最有可能的預(yù)測(cè)模式與實(shí)際采用的預(yù)測(cè)模式相同時(shí),利用1比特傳輸該預(yù)測(cè)模式,否則,利用4比特傳輸實(shí)際采用的預(yù)測(cè)模式。
通過(guò)上述方式預(yù)測(cè)得到的最有可能的預(yù)測(cè)方式,由于利用了當(dāng)前編碼塊的多個(gè)方向的相鄰已編碼塊,并遍歷了所有可用的編碼模式,從而選擇出預(yù)測(cè)效果最優(yōu)的預(yù)測(cè)模式作為當(dāng)前編碼塊的預(yù)測(cè)模式,因此使得其預(yù)測(cè)結(jié)果與當(dāng)前編碼塊實(shí)際采用的預(yù)測(cè)模式相同的概率大大增加。從而進(jìn)一步降低了預(yù)測(cè)模式的編碼開(kāi)銷(xiāo),提高了幀內(nèi)編碼的壓縮效率。
為進(jìn)一步說(shuō)明本發(fā)明相對(duì)于現(xiàn)有技術(shù)的優(yōu)點(diǎn),在JM軟件平臺(tái)上對(duì)利用本發(fā)明進(jìn)行預(yù)測(cè)并依據(jù)預(yù)測(cè)結(jié)果進(jìn)行編碼的方法進(jìn)行了仿真,并與H.264/AVC在相同實(shí)驗(yàn)條件下進(jìn)行了對(duì)比實(shí)驗(yàn)。在仿真過(guò)程中,設(shè)定全部序列采用4x4幀內(nèi)預(yù)測(cè)編碼模式,仿真結(jié)果如表1-表4所示。可以看出本發(fā)明方法在碼率節(jié)省上有很大提高。
表1編碼效率比較,圖像大小CIF(352×288) 表2編碼效率比較,圖像大小CIF(352×288) 表3編碼效率比較,圖像大小CIF(352×288) 表4編碼效率比較,圖像大小4CIF(704×576) 圖3為foreman測(cè)試序列下,采用本發(fā)明方法計(jì)算的最有可能預(yù)測(cè)模式的正確率與H.264/AVC編碼標(biāo)準(zhǔn)中計(jì)算的最有可能預(yù)測(cè)模式的正確率的性能比較示意圖。如圖3所示,在兩種典型的QP取值下,相對(duì)于H.264/AVC編碼標(biāo)準(zhǔn),本發(fā)明的預(yù)測(cè)方式準(zhǔn)確性有明顯的提高。
圖4為foreman測(cè)試序列下,采用本發(fā)明的方法進(jìn)行預(yù)測(cè)后再進(jìn)行編碼與H.264/AVC編碼標(biāo)準(zhǔn)中編碼預(yù)測(cè)模式的性能比較示意圖。由圖4可見(jiàn),利用本發(fā)明的方法,在相同的碼率下,使得整體的編碼性能有了明顯提高。
以上僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1、一種幀內(nèi)預(yù)測(cè)模式的預(yù)測(cè)方法,其特征在于,該方法包括
A、根據(jù)當(dāng)前編碼塊的相鄰已編碼塊,設(shè)置當(dāng)前編碼塊的鄰域預(yù)測(cè)模板及所述鄰域預(yù)測(cè)模板的參考像素;其中,將當(dāng)前編碼塊的左上角像素位置設(shè)為坐標(biāo)(0,0),水平方向的X軸向右為正,垂直方向的Y軸向下為正,
若當(dāng)前編碼塊為圖像上方第一行,將位于(-1,0)、(-2,0)、(-1,1)、(-2,1)、(-1,2)、(-2,2)、(-1,3)、(-2,3)的8個(gè)像素作為當(dāng)前編碼塊的鄰域預(yù)測(cè)模板,將位于(-3,0)、(-3,1)、(-3,2)、(-3,3)的4個(gè)像素作為所述參考像素;
若當(dāng)前編碼塊位于圖像最右邊且非圖像上方第一行,將位于(-2,-2)、(-1,-2)、(0,-2)、(1,-2)、(2,-2)、(3,-2)、(-2,-1)、(-1,-1)、(0,-1)、(1,-1)、(2,-1)、(3,-1)、(-1,0)、(-2,0)、(-1,1)、(-2,1)、(-1,2)、(-2,2)、(-1,3)、(-2,3)的20個(gè)像素作為當(dāng)前編碼塊的鄰域預(yù)測(cè)模板,將位于(-3,-3)、(-2,-3)、(-1,-3)、(0,-3)、(1,-3)、(2,-3)、(3,-3)、(-3,-2)、(-3,-1)、(-3,0)、(-3,1)、(-3,2)、(-3,3)的13個(gè)像素作為所述參考像素;
若當(dāng)前編碼塊位于圖像最左邊且非圖像上方第一行,將位于(0,-2)、(1,-2)、(2,-2)、(3,-2)、(4,-2)、(5,-2)、(0,-1)、(1,-1)、(2,-1)、(3,-1)、(4,-1)、(5,-1)的12個(gè)像素作為當(dāng)前編碼塊的鄰域預(yù)測(cè)模板,將位于(0,-3)、(1,-3)、(2,-3)、(3,-3)、(4,-3)、(5,-3)、(6,-3)、(7,-3)的8個(gè)像素作為所述參考像素;
若當(dāng)前編碼塊不位于圖像的第一行、或最右邊、或最左邊,且不是圖像的第一個(gè)編碼塊,則將位于(-2,-2)、(-1,-2)、(0,-2)、(1,-2)、(2,-2)、(3,-2)、(4,-2)、(5,-2)、(-2,-1)、(-1,-1)、(0,-1)、(1,-1)、(2,-1)、(3,-1)、(4,-1)、(5,-1)、(-1,0)、(-2,0)、(-1,1)、(-2,1)、(-1,2)、(-2,2)、(-1,3)、(-2,3)的24個(gè)像素作為當(dāng)前編碼塊的鄰域預(yù)測(cè)模板,將位于(-3,-3)、(-2,-3)、(-1,-3)、(0,-3)、(1,-3)、(2,-3)、(3,-3)、(4,-3)、(5,-3)、(6,-3)、(7,-3)、(-3,-2)、(-3,-1)、(-3,0)、(-3,1)、(-3,2)、(-3,3)的17個(gè)像素作為所述參考像素;
B、根據(jù)所述當(dāng)前編碼塊在圖像中的位置確定可用的預(yù)測(cè)模式,并遍歷所有可用的預(yù)測(cè)模式,在每種預(yù)測(cè)模式i下,利用鄰域預(yù)測(cè)模板的參考像素,計(jì)算所述鄰域預(yù)測(cè)模板中像素的預(yù)測(cè)值,并根據(jù)所述預(yù)測(cè)值與所述鄰域預(yù)測(cè)模板中像素的實(shí)際值計(jì)算代價(jià)函數(shù)
將最小的代價(jià)函數(shù)值對(duì)應(yīng)的預(yù)測(cè)模式作為預(yù)測(cè)結(jié)果;其中,predMode(i)(x,y)預(yù)測(cè)模式i下所述鄰域預(yù)測(cè)模板中像素的預(yù)測(cè)值,x和y為鄰域預(yù)測(cè)模板的坐標(biāo),templatePixel(x,y)為所述鄰域預(yù)測(cè)模板中像素的實(shí)際值,templateSize為預(yù)測(cè)模式i下實(shí)際采用的鄰域預(yù)測(cè)模板中的像素總數(shù)。
2、根據(jù)權(quán)利要求1所述的方法,其特征在于,位于圖像第一行的非第一個(gè)當(dāng)前編碼塊,可用的預(yù)測(cè)模式為預(yù)測(cè)模式1、2和8;
位于圖像最右邊且非第一行的當(dāng)前編碼塊,可用的預(yù)測(cè)模式為預(yù)測(cè)模式0、2、3和7;
除位于圖像第一行、圖像最右邊和圖像第一個(gè)編碼塊之外的其他當(dāng)前編碼塊,可用的預(yù)測(cè)模式為所有9種幀內(nèi)預(yù)測(cè)模式。
全文摘要
本發(fā)明公開(kāi)了一種幀內(nèi)預(yù)測(cè)模式的預(yù)測(cè)方法,包括根據(jù)當(dāng)前編碼塊的相鄰已編碼塊,設(shè)置當(dāng)前編碼塊的鄰域預(yù)測(cè)模板及所述鄰域預(yù)測(cè)模板的參考像素;遍歷當(dāng)前編碼塊的所有可用預(yù)測(cè)模式,利用當(dāng)前編碼塊的鄰域預(yù)測(cè)模板,按照每種可用預(yù)測(cè)模式對(duì)參考像素進(jìn)行預(yù)測(cè),并根據(jù)得到的預(yù)測(cè)值與參考像素實(shí)際值進(jìn)行比較,確定對(duì)所有參考像素的平均預(yù)測(cè)效果最佳的預(yù)測(cè)模式,將其作為當(dāng)前編碼塊的預(yù)測(cè)模式。應(yīng)用本發(fā)明,能夠使幀內(nèi)預(yù)測(cè)模式的預(yù)測(cè)更加準(zhǔn)確,從而提高幀內(nèi)編碼的壓縮效率。
文檔編號(hào)H04N7/26GK101572818SQ200910085819
公開(kāi)日2009年11月4日 申請(qǐng)日期2009年6月1日 優(yōu)先權(quán)日2009年6月1日
發(fā)明者波 楊, 鈺 韓, 門(mén)愛(ài)東, 侃 常, 張文豪, 宗曉飛, 陳曉博, 明陽(yáng)陽(yáng), 睿 韓 申請(qǐng)人:北京郵電大學(xué)
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1