編解碼方法和編解碼器的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明實(shí)施例涉及視頻圖像編解碼領(lǐng)域,并且更具體地,涉及一種編解碼方法和編解碼器。
【背景技術(shù)】
[0002]在視頻編碼和解碼框架中,混合編碼結(jié)構(gòu)通常用于視頻序列的編碼和解碼?;旌暇幋a結(jié)構(gòu)的編碼端通常包括:預(yù)測(cè)模塊、變換模塊、量化模塊和熵編碼模塊;混合編碼結(jié)構(gòu)的解碼端通常包括:熵解碼模塊、反量化模塊、反變換模塊和預(yù)測(cè)補(bǔ)償模塊。這些編碼和解碼模塊的組合可以有效去除視頻序列的冗余信息,并能保證在解碼端得到視頻序列的編碼圖像。
[0003]在視頻編碼和解碼框架中,視頻序列的圖像通常劃分成圖像塊進(jìn)行編碼。一幅圖像被劃分成若干圖像塊,這些圖像塊使用上述模塊進(jìn)行編碼和解碼。
[0004]在上述模塊中,預(yù)測(cè)模塊用于編碼端獲得視頻序列編碼圖像的圖像塊的預(yù)測(cè)塊信息,進(jìn)而得到圖像塊的殘差,預(yù)測(cè)補(bǔ)償模塊用于解碼端獲得當(dāng)前解碼圖像塊的預(yù)測(cè)塊信息,再根據(jù)解碼得到的圖像塊殘差獲得當(dāng)前解碼圖像塊。預(yù)測(cè)模塊通常包含幀內(nèi)預(yù)測(cè)和幀間預(yù)測(cè)兩種技術(shù)。其中,幀內(nèi)預(yù)測(cè)技術(shù)利用當(dāng)前圖像塊的空間像素信息去除當(dāng)前圖像塊的冗余信息以獲得殘差;幀間預(yù)測(cè)技術(shù)利用當(dāng)前圖像鄰近的已編碼或已解碼圖像像素信息去除當(dāng)前圖像塊的冗余信息以獲得殘差。在幀間預(yù)測(cè)技術(shù)里,用于幀間預(yù)測(cè)的當(dāng)前圖像鄰近的圖像被稱(chēng)為參考圖像。
[0005]上述巾貞內(nèi)預(yù)測(cè)或巾貞間預(yù)測(cè)技術(shù)均涉及塊劃分(block partit1ning)技術(shù),即將一個(gè)圖像塊劃分成多于一個(gè)的區(qū)域(partit1n),然后再以所述區(qū)域?yàn)閱挝贿M(jìn)行幀內(nèi)預(yù)測(cè)或幀間預(yù)測(cè)。常用的塊劃分方法包括:將一個(gè)方形圖像塊沿水平或垂直方向劃分成兩個(gè)矩形區(qū)域(rectangular partit1n),如圖1中的A和B所示,圖中方形圖像塊分別沿水平與垂直方向劃分成兩個(gè)矩形區(qū)域。除此以外,一個(gè)方形圖像塊還可以將一個(gè)圖像塊劃分成兩個(gè)非矩形區(qū)域(non-rectangular partit1n),如圖 2 所不。
[0006]三維視頻編解碼技術(shù)也可使用上述的塊劃分技術(shù)。在三維視頻的紋理圖編解碼技術(shù)中,基于深度的塊分割是一種常用的方法。其原理在于利用亮度編碼塊中各采樣點(diǎn)對(duì)應(yīng)的深度值信息生成二值化劃分模板,利用二值化劃分模板對(duì)亮度編碼塊進(jìn)行劃分。這種方法也被稱(chēng)為基于深度的塊分割模式(DBBP, depth-based block partit1ning)。
[0007]現(xiàn)有技術(shù)中,要利用當(dāng)前亮度編碼塊中各采樣點(diǎn)對(duì)應(yīng)的深度值信息實(shí)現(xiàn)當(dāng)前亮度編碼塊的劃分,首先要確定當(dāng)前亮度編碼塊中各采樣點(diǎn)對(duì)應(yīng)的深度值信息。但是,由于當(dāng)前視點(diǎn)的深度編碼還未開(kāi)始,因此無(wú)法直接從當(dāng)前視點(diǎn)的紋理圖對(duì)應(yīng)的深度圖中得到當(dāng)前亮度編碼塊中各采樣點(diǎn)對(duì)應(yīng)的深度值信息,因此,需要利用視差矢量(DV,disparity vector)從已編碼的參考視點(diǎn)對(duì)應(yīng)的深度圖中獲取當(dāng)前亮度編碼塊中各采樣點(diǎn)對(duì)應(yīng)的深度值信息(如圖3所示),由于視點(diǎn)之間的視差,從參考視點(diǎn)對(duì)應(yīng)的深度圖中尋找當(dāng)前視點(diǎn)的亮度編碼塊中各采樣點(diǎn)的深度值信息的過(guò)程需要大量的Clip和移位等操作,降低了編碼的效率。
【發(fā)明內(nèi)容】
[0008]本發(fā)明實(shí)施例提供一種編解碼方法和編解碼器,以提高編碼的效率。
[0009]第一方面,提供一種編碼方法,包括:從紋理圖中確定當(dāng)前的亮度編碼塊;確定所述亮度編碼塊的左上亮度采樣點(diǎn)的坐標(biāo),所述坐標(biāo)用于指示所述亮度編碼塊的左上亮度采樣點(diǎn)相對(duì)于所述紋理圖的左上亮度采樣點(diǎn)的位置,所述坐標(biāo)包括X坐標(biāo)和Y坐標(biāo);獲取所述紋理圖對(duì)應(yīng)的當(dāng)前視點(diǎn)與參考視點(diǎn)之間的視差矢量;根據(jù)所述亮度編碼塊的左上亮度采樣點(diǎn)的X坐標(biāo)和所述視差矢量,確定所述參考視點(diǎn)對(duì)應(yīng)的深度圖中的目標(biāo)采樣點(diǎn)的X坐標(biāo),其中所述目標(biāo)采樣點(diǎn)為所述深度圖中的與所述亮度編碼塊的左上亮度采樣點(diǎn)對(duì)應(yīng)的采樣點(diǎn);將所述亮度編碼塊的左上亮度采樣點(diǎn)的Y坐標(biāo)確定為所述深度圖的目標(biāo)采樣點(diǎn)的Y坐標(biāo);根據(jù)所述深度圖中的目標(biāo)采樣點(diǎn)的X坐標(biāo)和Y坐標(biāo),以及所述亮度編碼塊的大小,確定所述亮度編碼塊中各采樣點(diǎn)所對(duì)應(yīng)的深度值信息;根據(jù)所述深度值信息,得到所述亮度編碼塊的塊劃分方式,并對(duì)所述亮度編碼塊進(jìn)行劃分;對(duì)劃分后的所述亮度編碼塊進(jìn)行編碼。
[0010]結(jié)合第一方面,在第一方面的一種實(shí)現(xiàn)方式中,所述根據(jù)所述亮度編碼塊的左上亮度采樣點(diǎn)的X坐標(biāo)和所述視差矢量,確定所述參考視點(diǎn)對(duì)應(yīng)的深度圖中的目標(biāo)采樣點(diǎn)的X坐標(biāo),包括:根據(jù)所述視差矢量,確定所述亮度編碼塊的左上亮度采樣點(diǎn)的X坐標(biāo)與所述深度圖中的目標(biāo)采樣點(diǎn)的X坐標(biāo)之間的偏移量;根據(jù)所述亮度編碼塊的左上亮度采樣點(diǎn)的X坐標(biāo)和所述偏移量,確定所述深度圖中的目標(biāo)采樣點(diǎn)的X坐標(biāo)。
[0011]結(jié)合第一方面或其上述實(shí)現(xiàn)方式的任一種,在第一方面的另一種實(shí)現(xiàn)方式中,所述根據(jù)所述視差矢量,確定所述亮度編碼塊的左上亮度采樣點(diǎn)的X坐標(biāo)與所述深度圖中的目標(biāo)采樣點(diǎn)的X坐標(biāo)之間的偏移量,包括:將所述視差矢量的水平分量加2后除以4的結(jié)果向下取整,得到所述偏移量。
[0012]結(jié)合第一方面或其上述實(shí)現(xiàn)方式的任一種,在第一方面的另一種實(shí)現(xiàn)方式中,所述獲取所述紋理圖對(duì)應(yīng)的當(dāng)前視點(diǎn)與參考視點(diǎn)之間的視差矢量,包括:根據(jù)深度精細(xì)化標(biāo)識(shí)位,確定所述視差矢量。
[0013]結(jié)合第一方面或其上述實(shí)現(xiàn)方式的任一種,在第一方面的另一種實(shí)現(xiàn)方式中,所述根據(jù)深度精細(xì)化標(biāo)識(shí)位,確定所述視差矢量,包括:當(dāng)所述深度精細(xì)化標(biāo)識(shí)位為O時(shí),將相鄰塊視差矢量NBDV確定為所述視差矢量;當(dāng)所述深度精細(xì)化標(biāo)識(shí)位為I時(shí),將基于深度的鄰塊視差矢量DoNBDV確定為所述視差矢量。
[0014]第二方面,提供一種解碼方法,包括:從紋理圖中確定當(dāng)前的亮度解碼塊;確定所述亮度解碼塊的左上亮度采樣點(diǎn)的坐標(biāo),所述坐標(biāo)用于指示所述亮度解碼塊的左上亮度采樣點(diǎn)相對(duì)于所述紋理圖的左上亮度采樣點(diǎn)的位置,所述坐標(biāo)包括X坐標(biāo)和Y坐標(biāo);獲取所述紋理圖對(duì)應(yīng)的當(dāng)前視點(diǎn)與參考視點(diǎn)之間的視差矢量;根據(jù)所述亮度解碼塊的左上亮度采樣點(diǎn)的X坐標(biāo)和所述視差矢量,確定所述參考視點(diǎn)對(duì)應(yīng)的深度圖中的目標(biāo)采樣點(diǎn)的X坐標(biāo),其中所述目標(biāo)采樣點(diǎn)為所述深度圖中的與所述亮度解碼塊的左上亮度采樣點(diǎn)對(duì)應(yīng)的采樣點(diǎn);將所述亮度解碼塊的左上亮度采樣點(diǎn)的Y坐標(biāo)確定為所述深度圖的目標(biāo)采樣點(diǎn)的Y坐標(biāo);根據(jù)所述深度圖中的目標(biāo)采樣點(diǎn)的X坐標(biāo)和Y坐標(biāo),以及所述亮度解碼塊的大小,確定所述亮度解碼塊中各采樣點(diǎn)所對(duì)應(yīng)的深度值信息;根據(jù)所述深度值信息,得到所述亮度解碼塊的塊劃分方式,并對(duì)所述亮度解碼塊進(jìn)行劃分;對(duì)劃分后的所述亮度解碼塊進(jìn)行解碼。
[0015]結(jié)合第二方面,在第二方面的一種實(shí)現(xiàn)方式中,所述根據(jù)所述亮度解碼塊的左上亮度采樣點(diǎn)的X坐標(biāo)和所述視差矢量,確定所述參考視點(diǎn)對(duì)應(yīng)的深度圖中的目標(biāo)采樣點(diǎn)的X坐標(biāo),包括:根據(jù)所述視差矢量,確定所述亮度解碼塊的左上亮度采樣點(diǎn)的X坐標(biāo)與所述深度圖中的目標(biāo)采樣點(diǎn)的X坐標(biāo)之間的偏移量;根據(jù)所述亮度解碼塊的左上亮度采樣點(diǎn)的X坐標(biāo)和所述偏移量,確定所述深度圖中的目標(biāo)采樣點(diǎn)的X坐標(biāo)。
[0016]結(jié)合第二方面或其上述實(shí)現(xiàn)方式的任一種,在第二方面的另一種實(shí)現(xiàn)方式中,所述根據(jù)所述視差矢量,確定所述亮度解碼塊的左上亮度采樣點(diǎn)的X坐標(biāo)與所述深度圖中的目標(biāo)采樣點(diǎn)的X坐標(biāo)之間的偏移量,包括:將所述視差矢量的水平分量加2后除以4的結(jié)果向下取整,得到所述偏移量。
[0017]結(jié)合第二方面或其上述實(shí)現(xiàn)方式的任一種,在第二方面的另一種實(shí)現(xiàn)方式中,所述獲取所述紋理圖對(duì)應(yīng)的當(dāng)前視點(diǎn)與參考視點(diǎn)之間的視差矢量,包括:根據(jù)深度精細(xì)化標(biāo)識(shí)位,確定所述視差矢量。
[0018]結(jié)合第二方面或其上述實(shí)現(xiàn)方式的任一種,在第二方面的另一種實(shí)現(xiàn)方式中,所述根據(jù)深度精細(xì)化標(biāo)識(shí)位,確定所述視差矢量,包括:當(dāng)所述深度精細(xì)化標(biāo)識(shí)位為O時(shí),將相鄰塊視差矢量NBDV確定為所述視差矢量;當(dāng)所述深度精細(xì)化標(biāo)識(shí)位為I時(shí),將基于深度的鄰塊視差矢量DoNBDV確定為所述視差矢量。
[0019]第三方面,提供一種編碼器,包括:第一確定單元,用于從紋理圖中確定當(dāng)前的亮度編碼塊;第二確定單元,用于確定所述亮度編碼塊的左上亮度采樣點(diǎn)的坐標(biāo),所述坐標(biāo)用于指示所述亮度編碼塊的左上亮度采樣點(diǎn)相對(duì)于所述紋理圖的左上亮度采樣點(diǎn)的位置,所述坐標(biāo)包括X坐標(biāo)和Y坐標(biāo);獲取單元,用于獲取所述紋理圖對(duì)應(yīng)的當(dāng)前視點(diǎn)與參考視點(diǎn)之間的視差矢量;第三確定單元,用于根據(jù)所述亮度編碼塊的左上亮度采樣點(diǎn)的X坐標(biāo)和所述視差矢量,確定所述參考視點(diǎn)對(duì)應(yīng)的深度圖中的目標(biāo)采樣點(diǎn)的X坐標(biāo),其中所述目標(biāo)采樣點(diǎn)為所述深度圖中的與所述亮度編碼塊的左上亮度采樣點(diǎn)對(duì)應(yīng)的采樣點(diǎn);第四確定單元,用于將所述亮度編碼塊的左上亮度采樣點(diǎn)的Y坐標(biāo)確定為所述深度圖的目標(biāo)采樣點(diǎn)的Y坐標(biāo);第五確定單元,用于根據(jù)所述深度圖中的目標(biāo)采樣點(diǎn)的X坐標(biāo)和Y坐標(biāo),以及所述亮度編碼塊的大小,確定所述亮度編碼塊中各采樣點(diǎn)所對(duì)應(yīng)的深度值信息;塊劃分單元,用于根據(jù)所述深度值信息,得到所述亮度編碼塊的塊劃分方式,并對(duì)所述亮度編碼塊進(jìn)行劃分;編碼單元,用于對(duì)劃分后的所述亮度編碼塊進(jìn)行編碼。
[0020]結(jié)合第三方面,在第三方面的一種實(shí)現(xiàn)方式中,所述第三確定單元具體用于根據(jù)所述視差矢量,確定所述亮度編碼塊的左上亮度采樣點(diǎn)的X坐標(biāo)與所述深度圖中的目標(biāo)采樣點(diǎn)的X坐標(biāo)之間的偏移量;根據(jù)所述亮度編碼塊的左上亮度采樣點(diǎn)的X坐標(biāo)和所述偏移量,確定所述深度圖中的目標(biāo)采樣點(diǎn)的X坐標(biāo)。
[0021]結(jié)合第三方面或其上述實(shí)現(xiàn)方式的任一種,在第三方面的另一種實(shí)現(xiàn)方式中,所述第三確定單元具體用于將所述視差矢量的水平分量加2后除以4的結(jié)果向下取整,得到所述偏移量。
[0022]結(jié)合第三方面或其上述實(shí)現(xiàn)方式的任一種,在第三方面的另一種實(shí)現(xiàn)方式中,所述獲取單元具體用于根據(jù)深度精細(xì)化標(biāo)識(shí)位,確定所述視差矢量。
[0023]結(jié)合第三方面或其上述實(shí)現(xiàn)方式的任一種,在第三方面的另一種實(shí)現(xiàn)方式中,所述獲取單元具體用于當(dāng)所述深度精細(xì)化標(biāo)識(shí)位為O時(shí),將相鄰塊視差矢量NBDV確定為所述視差矢量;當(dāng)所述深度精細(xì)化標(biāo)識(shí)位為I時(shí),將基于深度的鄰塊視差矢量DoNBDV確定為所述視差矢量。
[0024]第四方面,提供一種解碼器,包括:第一確定單元,用于從紋理圖中確定當(dāng)前的亮度解碼塊;第二確定單元,用于確定所述亮度解碼塊的左