幀內(nèi)像素預(yù)測方法、編碼方法、解碼方法及其裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明總體地涉及視頻編碼和解碼技術(shù),尤其涉及一種幀內(nèi)預(yù)測方法、視頻編碼方法和視頻解碼方法和裝置。
【背景技術(shù)】
[0002]視頻壓縮技術(shù)廣泛用于各種產(chǎn)品中,例如數(shù)字機(jī)頂盒(STB)、高清電視解碼器、DVD播放器、數(shù)字?jǐn)z像機(jī)、網(wǎng)絡(luò)多媒體視頻應(yīng)用等等。存在壓縮數(shù)字視頻內(nèi)容的各種視頻編碼方法。已經(jīng)存在許多視頻壓縮標(biāo)準(zhǔn)來使得各種視頻編碼方法標(biāo)準(zhǔn)化。這些標(biāo)準(zhǔn)的例子包括MPEG-U MPEG-2 (ITU-T H.262)、MPEG-4、ITU-T H.261, ITU-T H.263, ITU-T H.264。
[0003]諸如MPEG標(biāo)準(zhǔn)之類的視頻編碼標(biāo)準(zhǔn)通常通過利用諸如時間和空間預(yù)測、變換和量化、熵編碼之類的各種編碼技術(shù)來實(shí)現(xiàn)數(shù)據(jù)壓縮。視頻編碼器中的壓縮通常包括幀間預(yù)測和幀內(nèi)預(yù)測,以提高編碼效率。幀間預(yù)測利用視頻的圖像之間的時間相關(guān)性,而幀內(nèi)預(yù)測利用視頻的圖像內(nèi)的像素的空間相關(guān)性。
[0004]幀間預(yù)測和幀內(nèi)預(yù)測通常都是對像素塊執(zhí)行的。
[0005]對于幀內(nèi)預(yù)測,通常是利用已經(jīng)重建像素來外插待預(yù)測塊,例如,對當(dāng)前圖像中任意一個待編碼塊,利用其周圍已經(jīng)重構(gòu)的像素沿著某個方向進(jìn)行插值,并將插值后的結(jié)果作為待編碼塊的預(yù)測塊。待編碼塊與預(yù)測塊之間的差作為預(yù)測殘差,預(yù)測殘差經(jīng)過變換量化后進(jìn)行編碼。
【發(fā)明內(nèi)容】
[0006]根據(jù)本發(fā)明的一個方面,提供一種預(yù)測圖像中的像素的幀內(nèi)像素預(yù)測方法,可以包括:目標(biāo)模板定義步驟,定義當(dāng)前待預(yù)測像素的目標(biāo)模板;匹配模板確定步驟,將所述目標(biāo)模板與該幀的搜索區(qū)域的候選模板相比較,以及確定所述候選模板中至少一個與所述目標(biāo)模板匹配的匹配模板;以及預(yù)測值確定步驟,基于所述至少一個匹配模板來確定當(dāng)前待預(yù)測像素的預(yù)測值。
[0007]在一個示例中,所述當(dāng)前待預(yù)測像素的目標(biāo)模板由該位于當(dāng)前待預(yù)測像素的左側(cè)和上側(cè)的像素組成。
[0008]在一個示例中,該幀內(nèi)像素預(yù)測方法還可以包括,將所述目標(biāo)模板中尚未重構(gòu)的像素設(shè)置為無效像素,以及所述匹配模板確定步驟包括:基于目標(biāo)模板中的已重構(gòu)像素和候選模板中的已重構(gòu)像素,確定目標(biāo)模板與候選模板之間的匹配度;以及選擇匹配度最高的一個或多個作為所述至少一個匹配模板。
[0009]在一個示例中,所述基于所述至少一個匹配模板來確定當(dāng)前待預(yù)測像素的預(yù)測值可以包括:根據(jù)當(dāng)前待預(yù)測像素與其目標(biāo)模板之間的相對位置關(guān)系,獲得與匹配模板具有所述相對位置關(guān)系的參考像素;以及基于匹配模板和參考像素或者基于參考像素,確定當(dāng)前待預(yù)測像素的預(yù)測值。
[0010]在一個示例中,該幀內(nèi)像素預(yù)測方法還可以包括:將當(dāng)前待預(yù)測像素的值與當(dāng)前待預(yù)測像素的預(yù)測值之間的差作為預(yù)測殘差;對預(yù)測殘差進(jìn)行編碼,以供將該編碼后的預(yù)測殘差發(fā)送到解碼器側(cè);以及在編碼器側(cè)對編碼后的預(yù)測殘差進(jìn)行解碼,并將解碼后的殘差與待預(yù)測像素的預(yù)測值相加,獲得對應(yīng)位置像素的重構(gòu)值。
[0011 ] 在一個示例中,該幀內(nèi)像素預(yù)測方法還可以包括:將像素重新排列并分塊,得到各個作為編碼目標(biāo)的塊,使得分塊后的塊中的多個像素盡可能不同時出現(xiàn)在重新排列前的幀中的原始塊中,且使得塊中的像素在被預(yù)測時,其在重新排列前的幀中的目標(biāo)模板中的像素盡可能地已重構(gòu);對于當(dāng)前待編碼塊:對于塊中的每個像素,在重新排列前的幀中執(zhí)行上述目標(biāo)模板定義步驟、匹配模板確定步驟和預(yù)測值確定步驟,由此得到每個像素的預(yù)測值,從而得到當(dāng)前待編碼塊的預(yù)測塊;使用當(dāng)前待編碼塊的預(yù)測塊對當(dāng)前待編碼塊進(jìn)行編碼。
[0012]根據(jù)本發(fā)明的另一方面,提供了一種對圖像進(jìn)行幀內(nèi)編碼的編碼方法,可以包括:目標(biāo)模板定義步驟,定義當(dāng)前待預(yù)測像素的目標(biāo)模板;匹配模板確定步驟,將所述目標(biāo)模板與該幀的搜索區(qū)域的候選模板相比較,以及確定所述候選模板中至少一個與所述目標(biāo)模板匹配的匹配模板;以及預(yù)測值確定步驟,基于所述至少一個匹配模板來確定當(dāng)前待預(yù)測像素的預(yù)測值;以及基于預(yù)測編碼步驟,基于所述當(dāng)前待預(yù)測像素的預(yù)測值對所述當(dāng)前待預(yù)測像素或者該當(dāng)前待預(yù)測像素所屬于的塊進(jìn)行編碼。
[0013]在一個示例中,該編碼方法還可以包括:像素重組織分塊步驟,將像素重新排列并分塊,得到各個作為編碼目標(biāo)的塊,使得分塊后的塊中的多個像素盡可能不同時出現(xiàn)在重新排列前的幀中的原始塊中,且使得塊中的像素在被預(yù)測時,其在重新排列前的幀中的目標(biāo)模板中的像素盡可能地已重構(gòu);對于當(dāng)前待編碼塊:對于塊中的每個像素,在重新排列前的幀中執(zhí)行上述目標(biāo)模板定義步驟、匹配模板確定步驟和預(yù)測值確定步驟,由此得到每個像素的預(yù)測值,從而得到當(dāng)前待編碼塊的預(yù)測塊;使用當(dāng)前待編碼塊的預(yù)測塊對當(dāng)前待編碼塊進(jìn)行編碼。
[0014]在一個示例中,所述使用當(dāng)前待編碼塊的預(yù)測塊對當(dāng)前待編碼塊進(jìn)行編碼可以包括獲得殘差塊、量化殘差塊、對量化后的殘差塊進(jìn)行熵編碼。
[0015]在一個示例中,其中所述分塊后得到的塊中存在大小不同的塊。
[0016]在一個示例中,像素重組織分塊步驟可以使得盡可能多的分塊后塊的大小為具體編碼標(biāo)準(zhǔn)中的塊的大小。
[0017]在一個示例中,關(guān)于該編碼方法,圖像的大小為MxN,編碼的塊的大小為TxT,M和N是T的整數(shù)倍,其中M表示圖像的行數(shù),N表示圖像的列數(shù),以圖像最上方的像素行稱為第O行,圖像最左側(cè)的像素列稱為第O列,P1, ,表示圖像中位置在第i行,第j列的像素點(diǎn),O彡i彡M-1,0彡i彡N_1,M、N和T均為大于I的正整數(shù),重組后的第P行,第q列的像素點(diǎn)Rp,q對應(yīng)于重組前的像素點(diǎn)P1, j;0彡P(guān)彡M-1,0彡q彡N-1,
[0018]其中i,j的計(jì)算公式分別如公式(I)、(2)所示:
[0019]i = (P mod T) x (M/T) +rounddown (p/T)(I)
[0020]j = (q mod T) x (N/T) +rounddown (q/T)(2)
[0021 ] 其中mod表示取模運(yùn)算,X表示乘法運(yùn)算,rounddown O表示向下取整運(yùn)算。
[0022]在一個示例中,關(guān)于該編碼方法,圖像的大小為MxN,編碼的塊的大小為TxT,M和N的值不是T的整數(shù)倍,其中M表示圖像的行數(shù),N表示圖像的列數(shù),以圖像最上方的像素行稱為第O行,圖像最左側(cè)的像素列稱為第O列,P1,,表示圖像中位置在第i行,第j列的像素點(diǎn),O ( i ^M-1,O ( i ( N-1, M、N和T均為大于I的正整數(shù),重組后的第P行,第q列的像素點(diǎn)Rp,q對應(yīng)于重組前的像素點(diǎn)Pli j,重組后的圖像大小為((rounddown(M/T) +1) xT) X ((rounddown (N/T) +1) xT), (rounddown (M/T) +1) xT 表不重組后的圖像的行數(shù),(rounddown (N/T) +1)表示重組后的圖像的列數(shù),O < p < (rounddown (M/T) +1) xT-Ι,O彡q彡(rounddown (N/T)+l)xT-l,重組后的圖像中像素點(diǎn)Rp, q對應(yīng)于重組前的圖像中的像素點(diǎn)P^,其中i,j的計(jì)算公式為:
[0023]i = (P mod T) x (rounddown (M/T) +1) +rounddown (p/T)當(dāng)(p mod T) < (M mod T)時,(3)
[0024]i = (M mod T) x (rounddown (M/T) +1) + ( (p mod T) - (M mod T))X rounddown (M/T) +rounddown (p/T)當(dāng)(p mod T) > = (M mod T)且 p〈M 時,(4)
[0025]i無有效值,此時RPiq = O當(dāng)p> = M時,(5)
[0026]其中j的計(jì)算公式為:
[0027]j = (q mod T) x (rounddown (N/T) +1) +rounddown (q/T)當(dāng)(q mod T) < (N mod T)時,(6)
[0028]j = (N mod T) x (rounddown (N/T) +1) + ( (q mod T) - (N mod T))X rounddown (N/T) +rounddown (q/T)當(dāng)(q mod T) > = (N mod T)且 q〈N 時,(7)
[0029]j無有效值,此時Rp,q = 0當(dāng)q> = N時⑶。
[0030]在一個示例中,關(guān)于該編碼方法,圖像的大小為MxN,編碼的塊的大小為TxT,M和N的值不是T的整數(shù)倍,其中M表示圖像的行數(shù),N表示圖像的列數(shù),以圖像最上方的像素行稱為第O行,圖像最左側(cè)的像素列稱為第O列,P1, ,表示圖像中位置在第i行,第j列的像素點(diǎn),O ( i ^M-1,O ( i ( N-1, M、N和T均為大于I的正整數(shù),重組后的第P行,第q列的像素點(diǎn)Rp,q對應(yīng)于重組前的像素點(diǎn)Pli j,重組后的圖像大小為((rounddown(M/T) +1) xT) X ((rounddown (N/T) +1) xT), (rounddown (M/T) +1) xT 表不重組后的圖像的行數(shù),(rounddown(N/T) +1)xT 表示重組后的圖像的列數(shù),O ^ p ^ (rounddown(M/T)+1)xT,0彡q彡(rounddown (Ν/Τ)+1)χΤ,重組后的圖像中像素點(diǎn)Rp,q對應(yīng)于重組前的圖像中的像素點(diǎn)P^,其中i,j的計(jì)算公式為:
[0031]i = (P mod T) x (rounddown (M/T) +1) +rounddown (p/T)當(dāng)(p mod T) < (M mod T)時,(9)
[0032]i = (M mod T) x (rounddown (M/T) +1) + ( (p mod T) - (M mod T))X rounddown (M/T) +rounddown (p/T)當(dāng)(p mod T) > = (M mod T)且 p〈M 時,
(10)
[0033]i無有效值,此時Rp,q = O當(dāng)p> = M時,(11)
[0034]其中j的