專利名稱:基于圖像塊的幀內(nèi)預(yù)測模式的編解碼方法和編解碼器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及圖像處理技術(shù)領(lǐng)域,尤其涉及一種基于圖像塊的幀內(nèi)預(yù)測模式的編解碼方法和編解碼器。
背景技術(shù):
在視頻編碼壓縮處理中,一種巾貞內(nèi)編碼(Intra coding)的基本原理是利用空域相關(guān)性,比如使用巾貞內(nèi)預(yù)測(Intra prediction),來去 除空域冗余。巾貞內(nèi)編碼無需參考巾貞,不涉及對參考幀進(jìn)行插值。在進(jìn)行幀內(nèi)編碼的時候,可按照一定的劃分方式,進(jìn)行該劃分方式下的預(yù)測,從而得到對應(yīng)劃分大小的殘差塊,并對殘差塊進(jìn)行變換、量化及熵編碼。在解碼的時候,首先得到當(dāng)前編碼對象的劃分方式及對應(yīng)的劃分大小,然后解碼碼流中的系數(shù),進(jìn)行對應(yīng)塊劃分方式的下的預(yù)測和重構(gòu),生成解碼圖像。在進(jìn)行上述對圖像塊的預(yù)測時,需要首先獲得當(dāng)前塊的預(yù)測方向(也可稱為預(yù)測模式),然后按照所獲得的預(yù)測方向從相鄰塊的像素中獲取參考像素,作為在該預(yù)測方向下當(dāng)前塊的預(yù)測像素值。圖I為一種16x16圖像塊中子塊劃分的示意圖。在當(dāng)前16x16塊中總共包括16個4x4塊,所述16個4x4塊中的每個塊都是當(dāng)前16x16塊的一個子塊。可以理解,塊與子塊是一個相對的概念,一個子塊作為一個單獨的塊而言,其內(nèi)部也可包括其它子塊;一個塊內(nèi)子塊的劃分形式也可以是靈活的,例如子塊可以是橫向矩形或縱向矩形,而不僅限于正方形。圖2為一種圖像塊的幀內(nèi)預(yù)測方向的示意圖,其中一個8x8塊用粗線標(biāo)識,圖中箭頭指向是該8x8塊的中一個子塊可能的預(yù)測方向的示意圖。通常而言,在對當(dāng)前子塊進(jìn)行幀內(nèi)預(yù)測時,會從多個可能的預(yù)測方向中確定一個最優(yōu)的預(yù)測方向作為當(dāng)前子塊的預(yù)測模式,按照所述預(yù)測模式對當(dāng)前子塊進(jìn)行預(yù)測編碼,并在碼流中寫入所述預(yù)測模式,以及編碼殘差等。為了減少預(yù)測模式在碼流中所占用的比特,現(xiàn)有技術(shù)引入了一種最可能預(yù)測模式(MPM,most probable mode,也叫最可能預(yù)測方向)。在碼流中不直接寫入子塊的實際預(yù)測模式,而是先得到當(dāng)前子塊的最可能預(yù)測模式,再對所述子塊的實際預(yù)測模式與所述子塊的最可能預(yù)測模式做比較,并根據(jù)比較得出的大小關(guān)系得到需要寫入碼流的標(biāo)識信息;如果所述子塊的實際預(yù)測模式與所述子塊的最可能預(yù)測模式相同,則能夠節(jié)省所述標(biāo)識在碼流中占用的比特位。因此,如何確定圖像塊的最可能預(yù)測模式,使其盡可能接近該圖像塊的實際預(yù)測模式,就成為一個問題。在傳統(tǒng)的基于方塊的編碼結(jié)構(gòu)中,在預(yù)測當(dāng)前塊的最可能預(yù)測模式時,以當(dāng)前塊的上相鄰塊及左相鄰塊中預(yù)測模式值最小的那個相鄰塊的實際預(yù)測模式做為當(dāng)前塊的最可能預(yù)測模式,這樣就能利用當(dāng)前塊與其左相鄰塊及上相鄰塊的相關(guān)性,提高預(yù)測當(dāng)前方塊的最可能預(yù)測模式的精確度。然而對于采用不規(guī)則劃分的塊來說,一個塊的子塊可能不是方塊,而是矩形塊等,因此當(dāng)前塊的左相鄰塊及上相鄰塊可能有不同的劃分,如果依然以預(yù)測模式值最小的那個相鄰塊的實際預(yù)測模式作為當(dāng)前塊的最可能預(yù)測模式,得到的最可能預(yù)測模式未必是準(zhǔn)確的。因此如何能有效預(yù)測一個塊的最可能預(yù)測模式,并使得這種預(yù)測方法不僅適用于方塊劃分也能適用于不規(guī)則塊的劃分,就成為一個問題。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種基于圖像塊的幀內(nèi)預(yù)測模式的編解碼方法和編解碼器,以有效預(yù)測圖像塊的最可能預(yù)測模式。根據(jù)本發(fā)明的一實施例,提供一種基于圖像塊的幀內(nèi)預(yù)測模式的編碼方法,包括獲取當(dāng)前圖像塊中第一子塊的預(yù)測模式與所述當(dāng)前圖像塊中第二子塊的預(yù)測模式,所述第一子塊與所述第二子塊相鄰且沿水平方向或豎直方向排列;將所述第一子塊的預(yù)測模式做為第二子塊的最可能預(yù)測模式;根據(jù)第二子塊的預(yù)測模式與第二子塊的最可能預(yù)測模式,確定用于指示第二子塊的預(yù)測模式的標(biāo)識,并將所述標(biāo)識寫入碼流中。根據(jù)本發(fā)明的另一實施例,提供一種基于圖像塊的幀內(nèi)預(yù)測模式的解碼方法,包括從碼流中獲取用于指示當(dāng)前圖像塊中第二子塊的預(yù)測模式的標(biāo)識;將所述當(dāng)前圖像塊中第一子塊的預(yù)測模式做為第二子塊的最可能預(yù)測模式,所述第一子塊與所述第二子塊相鄰且沿水平方向或豎直方向排列;根據(jù)所述標(biāo)識與所述第二子塊的最可能預(yù)測模式,確定第二子塊的預(yù)測模式。根據(jù)本發(fā)明的另一實施例,提供一種編碼器,包括獲取單元,用于獲取當(dāng)前圖像塊中第一子塊的預(yù)測模式與所述當(dāng)前圖像塊中第二子塊的預(yù)測模式,所述第一子塊與所述第二子塊相鄰且沿水平方向或豎直方向排列;確定單元,用于將所述第一子塊的預(yù)測模式做為第二子塊的最可能預(yù)測模式;碼流寫入單元,用于根據(jù)第二子塊的預(yù)測模式與第二子塊的最可能預(yù)測模式,確定用于指示第二子塊的預(yù)測模式的標(biāo)識,并將所述標(biāo)識寫入碼流中。根據(jù)本發(fā)明的另一實施例,提供一種解碼器,包括碼流讀出單元,用于從碼流中獲取用于指示當(dāng)前圖像塊中第二子塊的預(yù)測模式的標(biāo)識;確定單元,用于將當(dāng)前圖像塊中第一子塊的預(yù)測模式做為第二子塊的最可能預(yù)測模式,所述第一子塊與所述第二子塊相鄰且沿水平方向或豎直方向排列;解碼單元,用于根據(jù)所述標(biāo)識與所述第二子塊的最可能預(yù)測模式,確定第二子塊的預(yù)測模式。通過采用上述技術(shù)方案,本發(fā)明實施例可以較好的利用沿一定方向排列的不同相鄰塊之間的相關(guān)性來預(yù)測得到的一個塊的最可能預(yù)測方向,使得該塊的最可能預(yù)測方向接近其實際預(yù)測方向,有利于節(jié)省用于指示塊的實際預(yù)測方向的標(biāo)識所占用的比特數(shù),從而節(jié)省碼流開銷。根據(jù)本發(fā)明的另一實施例,提供一種基于圖像塊的幀內(nèi)預(yù)測模式的編碼方法,包括獲取當(dāng)前圖像塊中第一子塊的預(yù)測模式,所述第一子塊包括沿水平方向或豎直方向排列的多個子塊;、
確定第二子塊,將第二子塊的預(yù)測模式做為所述第一子塊的最可能預(yù)測模式,所述第二子塊與第一子塊相鄰并包括沿水平方向或豎直方向排列的多個子塊;根據(jù)第一子塊的預(yù)測模式與第一子塊的最可能預(yù)測模式,確定用于指示第一子塊的預(yù)測模式的標(biāo)識,并將所述標(biāo)識寫入碼流中。根據(jù)本發(fā)明的另一實施例,提供一種基于圖像塊的幀內(nèi)預(yù)測模式的解碼方法,包括從碼流中獲取用于指示當(dāng)前圖像塊中第一子塊的預(yù)測模式的標(biāo)識,所述第一子塊包括沿水平方向或豎直方向排列的多個子塊;確定第二子塊,將第二子塊的預(yù)測模式做為所述第一子塊的最可能預(yù)測模式,所述第二子塊與第一子塊相鄰并包括沿水平方向或豎直方向排列的多個子塊;根據(jù)所述標(biāo)識與所述第一子塊的最可能預(yù)測模式,確定第一子塊的預(yù)測模式。 根據(jù)本發(fā)明的另一實施例,提供一種編碼器,包括獲取單元,用于獲取當(dāng)前圖像塊中第一子塊的預(yù)測模式,所述第一子塊包括沿水平方向或豎直方向排列的多個子塊;確定單元,用于確定第二子塊,將第二子塊的預(yù)測模式做為所述第一子塊的最可能預(yù)測模式,所述第二子塊與第一子塊相鄰并包括沿水平方向或豎直方向排列的多個子塊;碼流寫入單元,用于根據(jù)第一子塊的預(yù)測模式與第一子塊的最可能預(yù)測模式,確定用于指示第一子塊的預(yù)測模式的標(biāo)識,并將所述標(biāo)識寫入碼流中。根據(jù)本發(fā)明的另一實施例,提供一種解碼器,包括碼流讀出單元,用于從碼流中獲取用于指示當(dāng)前圖像塊中第一子塊的預(yù)測模式的標(biāo)識,所述第一子塊包括沿水平方向或豎直方向排列的多個子塊;確定單元,用于確定第二子塊,將第二子塊的預(yù)測模式做為所述第一子塊的最可能預(yù)測模式,所述第二子塊與第一子塊相鄰并包括沿水平方向或豎直方向排列的多個子塊;解碼單元,用于根據(jù)所述標(biāo)識與所述第一子塊的最可能預(yù)測模式,確定第一子塊的預(yù)測模式。本發(fā)明實施例用于確定圖像塊中2個相鄰的且有著類似子塊劃分方式的子塊的最可能預(yù)測模式,使得一個子塊的實際預(yù)測模式作為另一個子塊內(nèi)所有子塊的最可能預(yù)測模式,能有效預(yù)測所述最可能預(yù)測模式,有利于節(jié)省用于指示塊的實際預(yù)測方向的標(biāo)識所占用的比特數(shù),從而節(jié)省碼流開銷。
為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I為一種16x16圖像塊中子塊劃分的示意圖;圖2為一種圖像塊的幀內(nèi)預(yù)測方向的示意圖;圖3a為本發(fā)明實施例提供的一種基于圖像塊的幀內(nèi)預(yù)測模式的編碼方法的示意圖;圖3b為本發(fā)明實施例提供的一種基于圖像塊的幀內(nèi)預(yù)測模式的解碼方法的示意圖;圖3c為本發(fā)明實施例提供一種編解碼圖像塊預(yù)測方向的方法的流程示意圖;圖4為本發(fā)明實施例提供的一種圖像塊劃分結(jié)構(gòu)的示意圖;圖5為本發(fā)明實施例提供的另一種圖像塊劃分結(jié)構(gòu)的示意圖;圖6為本發(fā)明實施例提供的另一種基于圖像塊的幀內(nèi)預(yù)測模式的編碼方法的示意圖; 圖7為本發(fā)明實施例提供的一種8x8方塊內(nèi)子塊劃分的示意圖;圖8為本發(fā)明實施例提供的另一種基于圖像塊的幀內(nèi)預(yù)測模式的解碼方法的示意圖;圖9為本發(fā)明實施例提供的一種編碼器的結(jié)構(gòu)示意圖;圖10為本發(fā)明實施例提供的一種解碼器的結(jié)構(gòu)示意圖;圖11為本發(fā)明實施例提供的另一種編碼器的結(jié)構(gòu)示意圖;圖12為本發(fā)明實施例提供的另一種解碼器的結(jié)構(gòu)示意圖。
具體實施例方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。圖3a為本發(fā)明的實施例提供的一種基于圖像塊的幀內(nèi)預(yù)測模式的編碼方法的示意圖,該方法包括S31a :獲取當(dāng)前圖像塊中第一子塊的預(yù)測模式與所述當(dāng)前圖像塊中第二子塊的預(yù)測模式,所述第一子塊與所述第二子塊相鄰且沿水平方向或豎直方向排列。S32a:將所述第一子塊的預(yù)測模式做為第二子塊的最可能預(yù)測模式。S33a:根據(jù)第二子塊的預(yù)測模式與第二子塊的最可能預(yù)測模式,確定用于指示第二子塊的預(yù)測模式的標(biāo)識,并將所述標(biāo)識寫入碼流中。在本實施例以及后續(xù)實施例中,預(yù)測模式也稱為預(yù)測方向,二者表達(dá)不同卻代表同樣的含義。上述實施例提供的方法能有效預(yù)測圖像塊的最可能預(yù)測方向,從而確定寫入碼流的標(biāo)識符的值。該方法不僅適用于方塊劃分的方向預(yù)測,也適用于非方塊如橫向矩形或縱向矩形塊的方向預(yù)測。與在左相鄰塊和上相鄰塊中選擇一個塊作為參考塊來預(yù)測當(dāng)前塊的最可能預(yù)測方向不同,本實施例僅采用當(dāng)前塊的一個相鄰塊來預(yù)測當(dāng)前塊的最可能預(yù)測方向,用于預(yù)測當(dāng)前塊的最可能預(yù)測方向的相鄰塊與當(dāng)前塊沿水平或豎直方向排列,可以較好的利用沿一定方向排列的不同相鄰塊之間的相關(guān)性,使得預(yù)測得到的當(dāng)前塊的最可能預(yù)測方向接近其實際預(yù)測方向,并能適用于圖像塊中子塊劃分方式不規(guī)則的場景,有利于節(jié)省用于指示當(dāng)前塊的實際預(yù)測方向的標(biāo)識的比特數(shù),當(dāng)編碼端利用本實施例提供的方法進(jìn)行編碼信息的傳遞時,可盡量節(jié)省碼流開銷,提高整體編碼性能。圖3b為本發(fā)明的實施例提供的一種基于圖像塊的幀內(nèi)預(yù)測模式的解碼方法的示意圖,該方法包括S31b :從碼流中獲取用于指示當(dāng)前圖像塊中第二子塊的預(yù)測模式的標(biāo)識;S32b:將所述當(dāng)前圖像塊中第一子塊的預(yù)測模式做為第二子塊的最可能預(yù)測模式,所述第一子塊與所述第二子塊相鄰且沿水平方向或豎直方向排列;S33b :根據(jù)所述標(biāo)識與所述第二子塊的最可能預(yù)測模式,確定第二子塊的預(yù)測模式。本實施例提供的方法可適用于解碼端,可以有效預(yù)測圖像塊的最可能預(yù)測方向,以據(jù)此獲取圖像塊的實際預(yù)測方向,并根據(jù)所述預(yù)測方向?qū)D像塊進(jìn)行預(yù)測解碼,準(zhǔn)確的得到解碼圖像。為便于理解,本發(fā)明還提供了一種編解碼圖像塊預(yù)測方向的方法的實施例,如圖 3c所示,該方法包括 S31c:對當(dāng)前圖像塊進(jìn)行劃分,得到多個子圖像塊,并將當(dāng)前圖像塊的劃分方式信息寫入碼流中。其中,所述多個子圖像塊沿水平或豎直方向依次排列,且所述多個子圖像塊中至少包括處于所述當(dāng)前圖像塊邊界的第一子圖像塊,以及與所述第一子圖像塊相鄰的第二子圖像塊。本發(fā)明實施例提供的一種具體的圖像塊劃分結(jié)構(gòu)的示意圖如圖4所示,對于32x32塊而言,可劃分出4個16x16塊,每個16x16塊可劃分出4個8x8塊,當(dāng)然也可以不劃分成方塊,如圖左下角方塊的16x16塊被分為4個4x16塊,同樣8x8塊可進(jìn)一步劃分為4x4塊或2x8塊等,本領(lǐng)域技術(shù)人員可以根據(jù)實際需要對圖像塊進(jìn)行各種靈活劃分,得到大小和形狀不同的各種塊,這些塊可以是方形或者其它形狀的矩形,圖4中的一個4x16塊是豎向排列的矩形,但在實際應(yīng)用中也可以劃分出沿水平方向排列的矩形,如一個16x16塊可分為4個豎向的16x4塊。矩形塊可包括多種形式,可以理解,諸如1x16或16x1的線形塊也是矩形塊的一種。S32c:從預(yù)先定義的多個預(yù)測方向中,根據(jù)所述當(dāng)前圖像塊的相鄰圖像塊對所述第一子圖像塊和第二子圖像塊進(jìn)行預(yù)測,分別得到所述第一子圖像塊的預(yù)測方向和第二子圖像塊的預(yù)測方向。預(yù)測得到一個圖像塊的預(yù)測方向的具體方法可參見現(xiàn)有技術(shù),本實施例對此不做具體描述。S33c:根據(jù)所述當(dāng)前圖像塊的相鄰圖像塊的預(yù)測方向,確定所述第一子圖像塊的最可能預(yù)測方向。本過程可采用現(xiàn)有技術(shù)的做法,即在當(dāng)前圖像塊的上相鄰塊和左相鄰塊中選擇預(yù)測模式值最小的塊,將該選擇的塊的預(yù)測方向作為當(dāng)前圖像塊中所述第一子圖像塊的最可能預(yù)測方向。在實際應(yīng)用中,每個預(yù)測模式可對應(yīng)一個值,即每個模式可對應(yīng)一個編號,用于反映該模式值的大小,在進(jìn)行所述塊的選擇時,可根據(jù)所述編號選擇出預(yù)測模式值最小的塊。在這里,當(dāng)一個圖像塊有2個相鄰塊時,可選擇預(yù)測模式值最小的塊為基準(zhǔn)來預(yù)測當(dāng)前塊或當(dāng)前塊中子塊的最可能預(yù)測方向。當(dāng)然,如果當(dāng)前塊的左相鄰塊與上相鄰塊中只有一個塊可用,則使用該可用的相鄰塊的預(yù)測方向作為所述最可能預(yù)測方向。如果所述左相鄰塊與上相鄰塊都不可用,則使用預(yù)先定義的默認(rèn)值作為所述最可能預(yù)測模式。S34c:將所述第一子圖像塊的預(yù)測方向確定為所述第二子圖像塊的最可能預(yù)測方向。
S35c:根據(jù)所述第一子圖像塊的預(yù)測方向以及所述第一子圖像塊的最可能預(yù)測方向,確定需要寫入碼流中的標(biāo)識所述第一子圖像塊的預(yù)測方向的值;以及,根據(jù)所述第二子圖像塊的預(yù)測方向以及所述第二子圖像塊的最可能預(yù)測方向,確定需要寫入碼流中的標(biāo)識所述第二子圖像塊的預(yù)測方向的值。下面對如何在碼流中寫入一個圖像塊的標(biāo)識的過程做簡要介紹。假定當(dāng)前子塊的預(yù)測模式為HntraDirLuma,當(dāng)前子塊的最可能預(yù)測模式為iMostProbable。則,如果iIntraDirLuma等于iMostProbable,則在碼流中寫入一個比特的標(biāo)識符號,例如可用標(biāo)識符“I”來表示,指示當(dāng)前子塊的預(yù)測模式為最可能預(yù)測模式。如果HntraDirLuma不等于iMostProbable,先將上述標(biāo)識符的值標(biāo)識為“0”,即當(dāng)前子塊的預(yù)測模式不等于最可能預(yù)測模式,并做進(jìn)一步判斷。如果當(dāng)前子塊的實際預(yù)測方向小于預(yù)測得到的最可能預(yù)測方向,則在碼流中寫入當(dāng)前子塊的實際預(yù)測方向值ilntraDirLuma,如果當(dāng)前子塊的實際預(yù)測方向大于預(yù)測得到的最可能預(yù)測方向,貝Ij在碼流中寫入i IntraDirLuma-1。本實施例中的方法可用于16x16方塊劃分中的4x16塊或16x4塊,或者應(yīng)用于8x8方塊劃分中的2x8塊或8x2塊等。當(dāng)然,對于32x32方塊中的8x32或32x8劃分,以及4x16中的1x16劃分,或者16x4中的16x1劃分也可以使用本實施例中的方法?!36c :解碼端在接收到碼流之后,從碼流中解析獲得所述當(dāng)前圖像的劃分方式信息、所述第一子圖像塊的預(yù)測方向的標(biāo)識信息以及所述第二子圖像塊的預(yù)測方向的標(biāo)識信肩、OS37c:根據(jù)所述劃分方式信息,對所述當(dāng)前圖像塊進(jìn)行劃分,得到所述多個子圖像塊。S38c:根據(jù)所述當(dāng)前圖像塊的相鄰圖像塊的預(yù)測方向,確定所述第一子圖像塊的最可能預(yù)測方向。本步驟的執(zhí)行過程可參見S33。S39c:從所述第一子圖像塊的預(yù)測方向的所述標(biāo)識信息以及所述第一子圖像塊的最可能預(yù)測方向,得到所述第一子圖像塊的預(yù)測方向。S310C:將所述第一子圖像塊的預(yù)測方向作為所述第二子圖像塊的最可能預(yù)測方向。S311C:從所述第二子圖像塊的預(yù)測方向的所述標(biāo)識信息以及所述第二子圖像塊的所述最可能預(yù)測方向,得到所述第二子圖像塊的預(yù)測方向。S39c和S311c中根據(jù)標(biāo)識符確定圖像塊的預(yù)測方向的過程為S35c的逆過程。具體地,先得到當(dāng)前子塊的最可能預(yù)測方向,解析碼流中標(biāo)識當(dāng)前子塊的預(yù)測方向是否為最可能預(yù)測方向的標(biāo)識符。比如,如果所述標(biāo)識符指示為“ I ”,則當(dāng)前子塊的預(yù)測方向即為當(dāng)前子塊的最可能預(yù)測方向。如果所述標(biāo)識符指示為“0”,進(jìn)一步解析碼流,得到當(dāng)前子塊的預(yù)測方向標(biāo)識符的值,比較所述預(yù)測方向標(biāo)識符的值與所述當(dāng)前子塊的最可能預(yù)測方向的值的關(guān)系,如果所述標(biāo)識符的值大于或等于所述最可能預(yù)測方向的值,則所述當(dāng)前子塊的實際的預(yù)測方向為所述標(biāo)識符的值加1,如果所述標(biāo)識符的值小于所述最可能預(yù)測方向的值,所述當(dāng)前子塊的實際的預(yù)測方向的值就為所述標(biāo)識符對應(yīng)的值??梢岳斫猓景l(fā)明實施例的一些步驟間的先后順序可以做出適應(yīng)性調(diào)整,例如,步驟S33c的執(zhí)行可以在步驟S34c之后。通過采用本發(fā)明實施例的方法,可以有效預(yù)測一個塊的最可能預(yù)測方向,從而確定寫入碼流的用于指示該圖像塊的預(yù)測方向的標(biāo)識,當(dāng)圖像塊的實際預(yù)測方向等于其最可能預(yù)測方向時,只需要在碼流中寫入一比特的指示標(biāo)識,因此當(dāng)一個塊的最可能預(yù)測方向越接近該塊的實際預(yù)測方向,將更有利于節(jié)省碼流。當(dāng)一個當(dāng)前圖像塊與其鄰居塊沿水平方向或豎直方向排列時,可僅利用鄰居塊的實際預(yù)測模式作為當(dāng)前圖像塊的最可能預(yù)測模式,而不必比較當(dāng)前圖像塊的2個鄰居塊的預(yù)測模式值,從而實現(xiàn)簡單有效的預(yù)測。特別是在圖像塊中子塊存在多種形狀劃分時,一個子塊的左相鄰塊和上相鄰塊在劃分方式上存在較大差異,利用劃分方式接近或相同的一個塊內(nèi)的不同子塊來預(yù)測最可能預(yù)測模式能達(dá)到比現(xiàn)有技術(shù)更好的效果。圖5為本發(fā)明實施例提供的另一種圖像塊劃分結(jié)構(gòu)的示意圖。假定當(dāng)前圖像塊50為一個8x8塊,其包括4個沿橫向排列的8x2子塊,分別為子塊51、子塊52、子塊53和子塊54。子塊51位于當(dāng)前圖像塊50邊界,其最可能預(yù)測模式通過現(xiàn)有技術(shù)求出,即從當(dāng)前圖像塊50的左相鄰塊和上相鄰塊(對所述左相鄰塊和上相鄰塊圖中未示出)中選擇預(yù)測模式值最小的塊的預(yù)測模式來作為子塊51的最可能預(yù)測模式;子塊52的最可能預(yù)測模式則為子塊51的預(yù)測模式;子塊53的最可能預(yù)測模式則為子塊52的預(yù)測模式;子塊54的最可能預(yù)測模式則為子塊53的預(yù)測模式。由于所述4個子塊之間有一定相關(guān)性,因此彼此相鄰的子塊的預(yù)測模式在一定程度上有可能有相同的預(yù)測模式,因此才將相鄰子塊的預(yù)測模式作為當(dāng)前子塊的最可能預(yù)測模式。
圖6為本發(fā)明實施例提供的另一種基于圖像塊的幀內(nèi)預(yù)測模式的編碼方法的示意圖,所述方法包括S61 :獲取當(dāng)前圖像塊中第一子塊的預(yù)測模式,所述第一子塊包括沿水平方向或豎直方向排列的多個子塊;S62:確定第二子塊,將第二子塊的預(yù)測模式做為所述第一子塊的最可能預(yù)測模式,所述第二子塊與第一子塊相鄰并包括沿水平方向或豎直方向排列的多個子塊;S63:根據(jù)第一子塊的預(yù)測模式與第一子塊的最可能預(yù)測模式,確定用于指示第一子塊的預(yù)測模式的標(biāo)識,并將所述標(biāo)識寫入碼流中。在本發(fā)明實施例中,當(dāng)前圖像塊包括多個子塊,如果每個子塊都包括沿水平方向或豎直方向排列的多個子塊,則可利用其中一個子塊的預(yù)測模式做為其相鄰子塊的最可能預(yù)測模式,該相鄰子塊的最可能預(yù)測模式適用于該相鄰子塊內(nèi)所有子塊,而不必針對該相鄰子塊內(nèi)每個子塊單獨求解出一個最可能預(yù)測模式??梢岳斫猓琒61與S12的順序不是固定的,可以靈活調(diào)整。在通常情況下,如果2個相鄰塊之間有著類似的子塊劃分方式,則可將其中一個塊的預(yù)測方向作為另一個塊的最可能預(yù)測方向,并將該最可能預(yù)測方向作為所述另一個塊內(nèi)所有子塊的最可能預(yù)測方向,可使所述另一個塊內(nèi)所有子塊的最可能預(yù)測方向接近真實的預(yù)測方向,從而減少碼流中傳輸?shù)闹甘绢A(yù)測方向的標(biāo)識位數(shù)。2個塊的劃分方式類似,可以是劃分方式完全相同,也可以是一個塊內(nèi)的子塊與另一塊內(nèi)的子塊的大小和形狀相同,但子塊排列方向不同。通常,只要2個塊都包括沿水平方向或豎直方向排列的多個子塊,則可認(rèn)為該2個塊排列方式類似。這2個相鄰塊可以均為方塊,每個方塊內(nèi)的子塊可以為非方塊形的矩形塊,并可沿水平或豎直方向排列,參見附圖7所示。在本實施例中,第二子塊與第一子塊可以都位于當(dāng)前圖像塊內(nèi),當(dāng)然也不排除第二子塊位于當(dāng)前圖像塊外的情況。第二子塊可以為第一子塊的上相鄰塊或左相鄰塊,或者第二子塊可以是第一子塊的上相鄰塊和左相鄰塊中預(yù)測模式值最小的塊。也就是說,可以僅將第一子塊的一個與第一子塊劃分方式類似的相鄰塊作為確定第一子塊最可能預(yù)測模式的參考。當(dāng)然,如果第一子塊的左相鄰塊和上相鄰塊都有與第一子塊類似的劃分方式,即都包括沿水平方向或豎直方向排列的多個子塊,則可選擇其中預(yù)測模式值最小的塊作為確定第一子塊最可能預(yù)測模式的參考。為便于理解,下面舉例對本實施例提供的預(yù)測方法進(jìn)行說明,附圖和說明僅是為了便于理解,不用于限定本發(fā)明。圖7為本發(fā)明實施例提供的一種8x8方塊內(nèi)子塊劃分的示意圖,該8x8塊被劃分為4個4x4子塊,分別用標(biāo) 號1、2、3和4標(biāo)識。每個4x4塊內(nèi)可進(jìn)一步劃分出多個1x4塊或4x1塊,其中子塊I和子塊4內(nèi)子塊的排列相同,子塊2和子塊3內(nèi)子塊的排列相同。其中每個4x4塊需要有一個預(yù)測方向,4x4塊內(nèi)的每個1x4塊或4x1塊不必單獨編碼預(yù)測方向,即預(yù)測方向以4x4子塊為單位進(jìn)行編碼。而在編碼4x4塊的預(yù)測方向之前,需要獲得每個4x4塊的最可能預(yù)測方向。對于第一個子塊1,可取其所在的當(dāng)前圖像塊的左相鄰塊以及上相鄰塊中預(yù)測方向值為最小的預(yù)測方向,作為第一個子塊I的最可能預(yù)測方向;對于第二個子塊2,其最可能預(yù)測方向為第一個子塊I的預(yù)測方向;可選的,如果第二個子塊2的上相鄰塊(圖中未示出)也是由1x4或4x1塊組成,則取其左相鄰塊以及上相鄰塊中預(yù)測方向值為最小的預(yù)測方向,作為第二個子塊2的最可能預(yù)測方向;對于第三個子塊3,其最可能預(yù)測方向為第一個子塊I的預(yù)測方向;可選的,如果第三個子塊3的左相鄰塊(圖中未示出)也是由1x4或4x1塊組成,則取其左相鄰塊以及上相鄰塊中預(yù)測方向值為最小的預(yù)測方向,作為第三個子塊3的最可能預(yù)測方向;對于第四個子塊4,可取其左相鄰塊3以及上相鄰塊2中預(yù)測方向值為最小的預(yù)測方向,作為第四個子塊4的最可能預(yù)測方向。與圖6實施例對應(yīng)的,圖8為本發(fā)明實施例提供的另一種基于圖像塊的幀內(nèi)預(yù)測模式的解碼方法的示意圖,所述方法包括S81 :從碼流中獲取用于指示當(dāng)前圖像塊中第一子塊的預(yù)測模式的標(biāo)識,所述第一子塊包括沿水平方向或豎直方向排列的多個子塊;S82:確定第二子塊,將第二子塊的預(yù)測模式做為所述第一子塊的最可能預(yù)測模式,所述第二子塊與第一子塊相鄰并包括沿水平方向或豎直方向排列的多個子塊;S83:根據(jù)所述標(biāo)識與所述第一子塊的最可能預(yù)測模式,確定第一子塊的預(yù)測模式。與之前圖3所示實施例類似的,碼流中可不僅傳遞圖像塊的預(yù)測模式的標(biāo)識,還可傳遞圖像塊的劃分方式信息,使得解碼端能夠得知編碼端如何劃分所述圖像塊。本發(fā)明實施例還進(jìn)一步提供了利用之前實施例的方法對碼流進(jìn)行編解碼的設(shè)備,具體地,圖9為本發(fā)明實施例提供的一種編碼器的結(jié)構(gòu)示意圖,包括獲取單元91,用于獲取當(dāng)前圖像塊中第一子塊的預(yù)測模式與所述當(dāng)前圖像塊中第二子塊的預(yù)測模式,所述第一子塊與所述第二子塊相鄰且沿水平方向或豎直方向排列;確定單元92,用于將所述第一子塊的預(yù)測模式做為第二子塊的最可能預(yù)測模式;碼流寫入單元93,用于根據(jù)第二子塊的預(yù)測模式與第二子塊的最可能預(yù)測模式,確定用于指示第二子塊的預(yù)測模式的標(biāo)識,并將所述標(biāo)識寫入碼流中。如果所述第一子塊位于所述當(dāng)前圖像塊邊界,則所述確定單元92還用于將所述當(dāng)前圖像塊的上相鄰塊和左相鄰塊之中預(yù)測模式值最小的塊的預(yù)測模式作為第一子塊的最可能預(yù)測模式,所述碼流寫入單元93還用于根據(jù)第一子塊的預(yù)測模式與第一子塊的最可能預(yù)測模式確定用于指示第一子塊的預(yù)測模式的另一標(biāo)識,并將所述另一標(biāo)識寫入所述碼流中。進(jìn)一步地,所述編碼器還可包括塊劃分單元94,用于對所述當(dāng)前圖像塊進(jìn)行劃分,得到包括所述第一子塊與所述第二子塊在內(nèi)的、沿水平方向或豎直方向排列的多個子塊;所述碼流寫入單元93,還用于將當(dāng)前圖像塊的劃分方式信息寫入所述碼流中。圖10為本發(fā)明實施例提供的一種解碼器的結(jié)構(gòu)示意圖,包括碼流讀出單元101,用于從碼流中獲取用于指示當(dāng)前圖像塊中第二子塊的預(yù)測模式的標(biāo)識;確定單元102,用于將當(dāng)前圖像塊中第一子塊的預(yù)測模式做為第二子塊的最可能預(yù)測模式,所述第一子塊與所述第二子塊相鄰且沿水平方向或豎直方向排列; 解碼單元103,用于根據(jù)所述標(biāo)識與所述第二子塊的最可能預(yù)測模式,確定第二子塊的預(yù)測模式。如果所述第一子塊位于所述當(dāng)前圖像塊邊界,則所述碼流讀出單元101,還用于從所述碼流中獲取用于指示第一子塊的預(yù)測模式的另一標(biāo)識;所述確定單元102,還用于將所述當(dāng)前圖像塊的上相鄰塊和左相鄰塊之中預(yù)測模式值最小的塊的預(yù)測模式作為第一子塊的最可能預(yù)測模式;所述解碼單元103,還用于根據(jù)所述另一標(biāo)識與所述第一子塊的最可能預(yù)測模式,確定第一子塊的預(yù)測模式。進(jìn)一步地,所述碼流讀出單元101,還用于從所述碼流中獲取當(dāng)前圖像塊的劃分方式信息;所述解碼器還包括塊劃分單元104,用于按照所述劃分方式對所述當(dāng)前圖像塊進(jìn)行劃分,得到包括所述第一子塊與所述第二子塊在內(nèi)的、沿水平方向或豎直方向排列的多個子塊。圖11為本發(fā)明實施例提供的另一種編碼器的結(jié)構(gòu)示意圖,所述編碼器包括獲取單元111,用于獲取當(dāng)前圖像塊中第一子塊的預(yù)測模式,所述第一子塊包括沿水平方向或豎直方向排列的多個子塊;確定單元112,用于確定第二子塊,將第二子塊的預(yù)測模式做為所述第一子塊的最可能預(yù)測模式,所述第二子塊與第一子塊相鄰并包括沿水平方向或豎直方向排列的多個子塊;碼流寫入單元113,用于根據(jù)第一子塊的預(yù)測模式與第一子塊的最可能預(yù)測模式,確定用于指示第一子塊的預(yù)測模式的標(biāo)識,并將所述標(biāo)識寫入碼流中。對于所述確定單元112而言,如果所述第一子塊的上相鄰塊包括沿水平方向或豎直方向排列的多個子塊,則將所述上相鄰塊確定為所述第二子塊;或者,如果所述第一子塊的左相鄰塊包括沿水平方向或豎直方向排列的多個子塊,將所述左相鄰塊確定為所述第二子塊;或者,如果所述第一子塊的上相鄰塊和左相鄰塊均包括沿水平方向或豎直方向排列的多個子塊,則將所述上相鄰塊和所述左相鄰塊之中預(yù)測模式值最小的塊確定為所述第二子塊。如果所述第二子塊位于所述當(dāng)前圖像塊邊界,則所述確定單元112,還用于將所述當(dāng)前圖像塊的上相鄰塊和左相鄰塊之中預(yù)測模式值最小的塊的預(yù)測模式作為第二子塊的最可能預(yù)測模式;所述碼流寫入單元113,還用于根據(jù)第二子塊的預(yù)測模式與第二子塊的最可能預(yù)測模式,確定用于指示第二子塊的預(yù)測模式的另一標(biāo)識,并將所述另一標(biāo)識寫入所述碼流中。圖12為本發(fā)明實施例提供的另一種解碼器的結(jié)構(gòu)示意圖,所述解碼器包括碼流讀出單元121,用于從碼流中獲取用于指示當(dāng)前圖像塊中第一子塊的預(yù)測模式的標(biāo)識,所述第一子塊包括沿水平方向或豎直方向排列的多個子塊;確定單元122,用于確定第二子塊,將第二子塊的預(yù)測 模式做為所述第一子塊的最可能預(yù)測模式,所述第二子塊與第一子塊相鄰并包括沿水平方向或豎直方向排列的多個子塊;解碼單元123,用于根據(jù)所述標(biāo)識與所述第一子塊的最可能預(yù)測模式,確定第一子塊的預(yù)測模式。對于所述確定單元122來說,如果所述第一子塊的上相鄰塊包括沿水平方向或豎直方向排列的多個子塊,將所述上相鄰塊確定為所述第二子塊;或者,如果所述第一子塊的左相鄰塊包括沿水平方向或豎直方向排列的多個子塊,將所述左相鄰塊確定為所述第二子塊;或者,如果所述第一子塊的上相鄰塊和左相鄰塊均包括沿水平方向或豎直方向排列的多個子塊,則將所述上相鄰塊和所述左相鄰塊之中預(yù)測模式值最小的塊確定為所述第二子塊。如果所述第二子塊位于所述當(dāng)前圖像塊邊界,則所述碼流讀出單元121,還用于從所述碼流中獲取用于指示第二子塊的預(yù)測模式的另一標(biāo)識;所述確定單元122,還用于將所述當(dāng)前圖像塊的上相鄰塊和左相鄰塊之中預(yù)測模式值最小的塊的預(yù)測模式作為第二子塊的最可能預(yù)測模式;所述解碼單元123,還用于根據(jù)所述另一標(biāo)識與所述第二子塊的最可能預(yù)測模式,確定第二子塊的預(yù)測模式。本發(fā)明實施例提供的編解碼器分別位于編碼端和解碼端用于對碼流進(jìn)行編解碼,通過有效預(yù)測圖像塊的最可能預(yù)測模式,使得一個圖像塊的最可能預(yù)測模式更接近其實際預(yù)測模式,減少在碼流傳遞的反映圖像塊預(yù)測模式的比特數(shù),提高編解碼性能。本領(lǐng)域普通技術(shù)人員可以理解上述方法實施例中的全部或部分流程,是可以通過計算機(jī)程序來指令相關(guān)硬件完成的,所述的程序可存儲于一計算機(jī)可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory, ROM)或隨機(jī)存儲記憶體(Random Access Memory,RAM)等。以上所述僅為本發(fā)明的幾個實施例,本領(lǐng)域的技術(shù)人員依據(jù)申請文件公開的內(nèi)容可以對本發(fā)明進(jìn)行各種改動或變型而不脫離本發(fā)明的精神和范圍。本領(lǐng)域普通技術(shù)人員可以理解所述實施例間或不同實施例的特征間在不發(fā)生沖突的情況下可以互相結(jié)合形成新的實施例。
權(quán)利要求
1.一種基于圖像塊的幀內(nèi)預(yù)測模式的編碼方法,其特征在于,包括 獲取當(dāng)前圖像塊中第一子塊的預(yù)測模式與所述當(dāng)前圖像塊中第二子塊的預(yù)測模式,所述第一子塊與所述第二子塊相鄰且沿水平方向或豎直方向排列; 將所述第一子塊的預(yù)測模式做為第二子塊的最可能預(yù)測模式; 根據(jù)第二子塊的預(yù)測模式與第二子塊的最可能預(yù)測模式,確定用于指示第二子塊的預(yù)測模式的標(biāo)識,并將所述標(biāo)識寫入碼流中。
2.如權(quán)利要求I所述的方法,其特征在于,所述第一子塊位于所述當(dāng)前圖像塊邊界,所述方法還包括 將所述當(dāng)前圖像塊的上相鄰塊和左相鄰塊之中預(yù)測模式值最小的塊的預(yù)測模式作為 第一子塊的最可能預(yù)測模式; 根據(jù)第一子塊的預(yù)測模式與第一子塊的最可能預(yù)測模式,確定用于指示第一子塊的預(yù)測模式的另一標(biāo)識,并將所述另一標(biāo)識寫入所述碼流中。
3.如權(quán)利要求I或2所述的方法,其特征在于,還包括 對所述當(dāng)前圖像塊進(jìn)行劃分,得到包括所述第一子塊與所述第二子塊在內(nèi)的、沿水平方向或豎直方向排列的多個子塊; 將當(dāng)前圖像塊的劃分方式信息寫入所述碼流中。
4.如權(quán)利要求3所述的方法,其特征在于,所述第一子塊與所述第二子塊均為非方塊形的矩形塊。
5.一種基于圖像塊的幀內(nèi)預(yù)測模式的解碼方法,其特征在于,包括 從碼流中獲取用于指示當(dāng)前圖像塊中第二子塊的預(yù)測模式的標(biāo)識; 將所述當(dāng)前圖像塊中第一子塊的預(yù)測模式做為第二子塊的最可能預(yù)測模式,所述第一子塊與所述第二子塊相鄰且沿水平方向或豎直方向排列; 根據(jù)所述標(biāo)識與所述第二子塊的最可能預(yù)測模式,確定第二子塊的預(yù)測模式。
6.如權(quán)利要求5所述的方法,其特征在于,所述第一子塊位于所述當(dāng)前圖像塊邊界,所述方法還包括 從所述碼流中獲取用于指示第一子塊的預(yù)測模式的另一標(biāo)識; 將所述當(dāng)前圖像塊的上相鄰塊和左相鄰塊之中預(yù)測模式值最小的塊的預(yù)測模式作為第一子塊的最可能預(yù)測模式; 根據(jù)所述另一標(biāo)識與所述第一子塊的最可能預(yù)測模式,確定第一子塊的預(yù)測模式。
7.如權(quán)利要求5或6所述的方法,其特征在于,還包括 從所述碼流中獲取當(dāng)前圖像塊的劃分方式信息; 按照所述劃分方式對所述當(dāng)前圖像塊進(jìn)行劃分,得到包括所述第一子塊與所述第二子塊在內(nèi)的、沿水平方向或豎直方向排列的多個子塊。
8.如權(quán)利要求7所述的方法,其特征在于,所述第一子塊與所述第二子塊均為非方塊形的矩形塊。
9.一種基于圖像塊的幀內(nèi)預(yù)測模式的編碼方法,其特征在于,包括 獲取當(dāng)前圖像塊中第一子塊的預(yù)測模式,所述第一子塊包括沿水平方向或豎直方向排列的多個子塊; 確定第二子塊,將第二子塊的預(yù)測模式做為所述第一子塊的最可能預(yù)測模式,所述第二子塊與第一子塊相鄰并包括沿水平方向或豎直方向排列的多個子塊; 根據(jù)第一子塊的預(yù)測模式與第一子塊的最可能預(yù)測模式,確定用于指示第一子塊的預(yù)測模式的標(biāo)識,并將所述標(biāo)識寫入碼流中。
10.如權(quán)利要求9所述的方法,其特征在于,所述確定第二子塊包括 如果所述第一子塊的上相鄰塊包括沿水平方向或豎直方向排列的多個子塊,將所述上相鄰塊確定為所述第二子塊;或者 如果所述第一子塊的左相鄰塊包括沿水平方向或豎直方向排列的多個子塊,將所述左相鄰塊確定為所述第二子塊;或者 如果所述第一子塊的上相鄰塊和左相鄰塊均包括沿水平方向或豎直方向排列的多個子塊,則將所述上相鄰塊和所述左相鄰塊之中預(yù)測模式值最小的塊確定為所述第二子塊。
11.如權(quán)利要求9所述的方法,其特征在于,所述第一子塊和第二子塊均為方塊。
12.如權(quán)利要求9所述的方法,其特征在于,所述第二子塊內(nèi)的多個子塊與所述第一子塊內(nèi)的多個子塊均為非方塊形的矩形塊。
13.如權(quán)利要求9-12中任一項所述的方法,其特征在于,所述第二子塊位于所述當(dāng)前圖像塊邊界,所述方法還包括 將所述當(dāng)前圖像塊的上相鄰塊和左相鄰塊之中預(yù)測模式值最小的塊的預(yù)測模式作為第二子塊的最可能預(yù)測模式; 根據(jù)第二子塊的預(yù)測模式與第二子塊的最可能預(yù)測模式,確定用于指示第二子塊的預(yù)測模式的另一標(biāo)識,并將所述另一標(biāo)識寫入所述碼流中。
14.一種基于圖像塊的幀內(nèi)預(yù)測模式的解碼方法,其特征在于,包括 從碼流中獲取用于指示當(dāng)前圖像塊中第一子塊的預(yù)測模式的標(biāo)識,所述第一子塊包括沿水平方向或豎直方向排列的多個子塊; 確定第二子塊,將第二子塊的預(yù)測模式做為所述第一子塊的最可能預(yù)測模式,所述第二子塊與第一子塊相鄰并包括沿水平方向或豎直方向排列的多個子塊; 根據(jù)所述標(biāo)識與所述第一子塊的最可能預(yù)測模式,確定第一子塊的預(yù)測模式。
15.如權(quán)利要求14所述的方法,其特征在于,所述確定第二子塊包括 如果所述第一子塊的上相鄰塊包括沿水平方向或豎直方向排列的多個子塊,將所述上相鄰塊確定為所述第二子塊;或者 如果所述第一子塊的左相鄰塊包括沿水平方向或豎直方向排列的多個子塊,將所述左相鄰塊確定為所述第二子塊;或者 如果所述第一子塊的上相鄰塊和左相鄰塊均包括沿水平方向或豎直方向排列的多個子塊,則將所述上相鄰塊和所述左相鄰塊之中預(yù)測模式值最小的塊確定為所述第二子塊。
16.如權(quán)利要求14所述的方法,其特征在于,所述第一子塊和第二子塊均為方塊。
17.如權(quán)利要求14所述的方法,其特征在于,所述第二子塊內(nèi)的多個子塊與所述第一子塊內(nèi)的多個子塊均為非方塊形的矩形塊。
18.如權(quán)利要求14-17中任一項所述的方法,其特征在于,所述第二子塊位于所述當(dāng)前圖像塊邊界,所述方法還包括 從所述碼流中獲取用于指示第二子塊的預(yù)測模式的另一標(biāo)識; 將所述當(dāng)前圖像塊的上相鄰塊和左相鄰塊之中預(yù)測模式值最小的塊的預(yù)測模式作為第二子塊的最可能預(yù)測模式; 根據(jù)所述另一標(biāo)識與第二子塊的最可能預(yù)測模式,確定第二子塊的預(yù)測模式。
19.一種編碼器,其特征在于,包括 獲取單元,用于獲取當(dāng)前圖像塊中第一子塊的預(yù)測模式與所述當(dāng)前圖像塊中第二子塊的預(yù)測模式,所述第一子塊與所述第二子塊相鄰且沿水平方向或豎直方向排列; 確定單元,用于將所述第一子塊的預(yù)測模式做為第二子塊的最可能預(yù)測模式; 碼流寫入單元,用于根據(jù)第二子塊的預(yù)測模式與第二子塊的最可能預(yù)測模式,確定用于指示第二子塊的預(yù)測模式的標(biāo)識,并將所述標(biāo)識寫入碼流中。
20.如權(quán)利要求19所述的編碼器,其特征在于,所述第一子塊位于所述當(dāng)前圖像塊邊界; 所述確定單元,還用于將所述當(dāng)前圖像塊的上相鄰塊和左相鄰塊之中預(yù)測模式值最小的塊的預(yù)測模式作為第一子塊的最可能預(yù)測模式; 所述碼流寫入單元,還用于根據(jù)第一子塊的預(yù)測模式與第一子塊的最可能預(yù)測模式,確定用于指示第一子塊的預(yù)測模式的另一標(biāo)識,并將所述另一標(biāo)識寫入所述碼流中。
21.如權(quán)利要求19或20所述的編碼器,其特征在于,還包括 塊劃分單元,用于對所述當(dāng)前圖像塊進(jìn)行劃分,得到包括所述第一子塊與所述第二子塊在內(nèi)的、沿水平方向或豎直方向排列的多個子塊; 所述碼流寫入單元,還用于將當(dāng)前圖像塊的劃分方式信息寫入所述碼流中。
22.—種解碼器,其特征在于,包括 碼流讀出單元,用于從碼流中獲取用于指示當(dāng)前圖像塊中第二子塊的預(yù)測模式的標(biāo)識; 確定單元,用于將當(dāng)前圖像塊中第一子塊的預(yù)測模式做為第二子塊的最可能預(yù)測模式,所述第一子塊與所述第二子塊相鄰且沿水平方向或豎直方向排列; 解碼單元,用于根據(jù)所述標(biāo)識與所述第二子塊的最可能預(yù)測模式,確定第二子塊的預(yù)測模式。
23.如權(quán)利要求22所述的解碼器,其特征在于,所述第一子塊位于所述當(dāng)前圖像塊邊界; 所述碼流讀出單元,還用于從所述碼流中獲取用于指示第一子塊的預(yù)測模式的另一標(biāo)識; 所述確定單元,還用于將所述當(dāng)前圖像塊的上相鄰塊和左相鄰塊之中預(yù)測模式值最小的塊的預(yù)測模式作為第一子塊的最可能預(yù)測模式; 所述解碼單元,還用于根據(jù)所述另一標(biāo)識與所述第一子塊的最可能預(yù)測模式,確定第一子塊的預(yù)測模式。
24.如權(quán)利要求22或23所述的解碼器,其特征在于,所述碼流讀出單元,還用于從所述碼流中獲取當(dāng)前圖像塊的劃分方式信息; 所述解碼器還包括塊劃分單元,用于按照所述劃分方式對所述當(dāng)前圖像塊進(jìn)行劃分,得到包括所述第一子塊與所述第二子塊在內(nèi)的、沿水平方向或豎直方向排列的多個子塊。
25.—種編碼器,其特征在于,包括 獲取單元,用于獲取當(dāng)前圖像塊中第一子塊的預(yù)測模式,所述第一子塊包括沿水平方向或豎直方向排列的多個子塊; 確定單元,用于確定第二子塊,將第二子塊的預(yù)測模式做為所述第一子塊的最可能預(yù)測模式,所述第二子塊與第一子塊相鄰并包括沿水平方向或豎直方向排列的多個子塊;碼流寫入單元,用于根據(jù)第一子塊的預(yù)測模式與第一子塊的最可能預(yù)測模式,確定用于指示第一子塊的預(yù)測模式的標(biāo)識,并將所述標(biāo)識寫入碼流中。
26.如權(quán)利要求25所述的解碼器,其特征在于,所述確定單元具體用于 如果所述第一子塊的上相鄰塊包括沿水平方向或豎直方向排列的多個子塊,將所述上相鄰塊確定為所述第二子塊;或者 如果所述第一子塊的左相鄰塊包括沿水平方向或豎直方向排列的多個子塊,將所述左相鄰塊確定為所述第二子塊;或者 如果所述第一子塊的上相鄰塊和左相鄰塊均包括沿水平方向或豎直方向排列的多個子塊,則將所述上相鄰塊和所述左相鄰塊之中預(yù)測模式值最小的塊確定為所述第二子塊。
27.如權(quán)利要求25或26所述的解碼器,其特征在于,所述第二子塊位于所述當(dāng)前圖像塊邊界; 所述確定單元,還用于將所述當(dāng)前圖像塊的上相鄰塊和左相鄰塊之中預(yù)測模式值最小的塊的預(yù)測模式作為第二子塊的最可能預(yù)測模式; 所述碼流寫入單元,還用于根據(jù)第二子塊的預(yù)測模式與第二子塊的最可能預(yù)測模式,確定用于指示第二子塊的預(yù)測模式的另一標(biāo)識,并將所述另一標(biāo)識寫入所述碼流中。
28.一種解碼器,其特征在于,包括 碼流讀出單元,用于從碼流中獲取用于指示當(dāng)前圖像塊中第一子塊的預(yù)測模式的標(biāo)識,所述第一子塊包括沿水平方向或豎直方向排列的多個子塊; 確定單元,用于確定第二子塊,將第二子塊的預(yù)測模式做為所述第一子塊的最可能預(yù)測模式,所述第二子塊與第一子塊相鄰并包括沿水平方向或豎直方向排列的多個子塊; 解碼單元,用于根據(jù)所述標(biāo)識與所述第一子塊的最可能預(yù)測模式,確定第一子塊的預(yù)測模式。
29.如權(quán)利要求28所述的解碼器,其特征在于,所述確定單元具體用于 如果所述第一子塊的上相鄰塊包括沿水平方向或豎直方向排列的多個子塊,將所述上相鄰塊確定為所述第二子塊;或者 如果所述第一子塊的左相鄰塊包括沿水平方向或豎直方向排列的多個子塊,將所述左相鄰塊確定為所述第二子塊;或者 如果所述第一子塊的上相鄰塊和左相鄰塊均包括沿水平方向或豎直方向排列的多個子塊,則將所述上相鄰塊和所述左相鄰塊之中預(yù)測模式值最小的塊確定為所述第二子塊。
30.如權(quán)利要求28或29所述的解碼器,其特征在于,所述第二子塊位于所述當(dāng)前圖像塊邊界; 所述碼流讀出單元,還用于從所述碼流中獲取用于指示第二子塊的預(yù)測模式的另一標(biāo)識; 所述確定單元,還用于將所述當(dāng)前圖像塊的上相鄰塊和左相鄰塊之中預(yù)測模式值最小的塊的預(yù)測模式作為第二子塊的最可能預(yù)測模式; 所述解碼單元,還用于根據(jù)所述另一標(biāo)識與所述第二子塊的最可能預(yù)測模式,確定第二 子塊的預(yù)測模式。
全文摘要
本發(fā)明實施例公開了一種基于圖像塊的幀內(nèi)預(yù)測模式的編解碼方法和編解碼器,其中的一種方法包括獲取當(dāng)前圖像塊中第一子塊的預(yù)測模式與所述當(dāng)前圖像塊中第二子塊的預(yù)測模式,所述第一子塊與所述第二子塊相鄰且沿水平方向或豎直方向排列;將所述第一子塊的預(yù)測模式做為第二子塊的最可能預(yù)測模式;根據(jù)第二子塊的預(yù)測模式與第二子塊的最可能預(yù)測模式,確定用于指示第二子塊的預(yù)測模式的標(biāo)識,并將所述標(biāo)識寫入碼流中。通過采用所述技術(shù)方案,可有效預(yù)測圖像塊的最可能預(yù)測模式,節(jié)省碼流開銷。
文檔編號H04N7/32GK102724493SQ201110020668
公開日2012年10月10日 申請日期2011年1月18日 優(yōu)先權(quán)日2011年1月18日
發(fā)明者何蕓, 曹瀟然, 賴昌材 申請人:華為技術(shù)有限公司, 清華大學(xué)