專利名稱:當(dāng)前塊的相鄰塊可用性獲取方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及視頻編解碼技術(shù)領(lǐng)域,更具體地說(shuō),涉及當(dāng)前塊的相鄰塊可用性獲取方法及系統(tǒng)。
背景技術(shù):
在視頻編解碼中,一個(gè)編解碼圖像通常劃分成若干宏塊,宏塊又被劃分為塊。在編碼以及解碼過程中,都需要針對(duì)每個(gè)當(dāng)前塊計(jì)算出相鄰塊的可用性(相鄰塊的可用性信息簡(jiǎn)稱為當(dāng)前塊的可用性)情況,即相鄰塊是否已經(jīng)編解碼。參見圖1,當(dāng)前塊101需要用到的相鄰塊的位置分左方、上方、右上方、左上方,分別記做A、B、C、D。當(dāng)前塊的相鄰塊可用性計(jì)算既涉及宏塊的可用性判斷,又涉及宏塊內(nèi)部的各個(gè)塊之間的可用性判斷,因此計(jì)算比較復(fù)雜。通常的技術(shù)方案在每個(gè)方向上的可用性計(jì)算分別進(jìn)行如下操作通過判斷當(dāng)前塊實(shí)際坐標(biāo)位置得出當(dāng)前塊是位于宏塊內(nèi)部還是宏塊邊界;如果當(dāng)前塊在宏塊內(nèi)部,進(jìn)一步判斷是否因?yàn)榫幗獯a順序?qū)е掠行┫噜弶K不可用;如果當(dāng)前塊在宏塊邊界,則需要區(qū)分出是哪個(gè)邊界,根據(jù)當(dāng)前塊所處宏塊相鄰塊的可用性和邊界可用性信息,得出當(dāng)前塊的相鄰塊的可用性。以上操作在對(duì)當(dāng)前塊的每個(gè)方向的可用性計(jì)算上都要做一次,一共需做四次。最好的情況下得到一個(gè)方向上當(dāng)前塊的可用性也需要兩次判斷。尤其是當(dāng)宏塊所包含的塊越多時(shí),在每一宏塊上所花費(fèi)的計(jì)算量也越多。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明實(shí)施例目的在于提供可減少計(jì)算量當(dāng)前塊的相鄰塊可用性獲取方法及系統(tǒng)。為實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例提供如下技術(shù)方案根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供一種當(dāng)前塊的相鄰塊可用性獲取方法,預(yù)先定義塊的類別,塊的邏輯位置和類型與所述類別的關(guān)系,以及所述類別所對(duì)應(yīng)的相鄰塊可用性信息,所述邏輯位置為塊在所屬宏塊中的相對(duì)位置;所述方法包括確定當(dāng)前塊的邏輯位置和類型;根據(jù)所述邏輯位置和類型確定當(dāng)前塊所屬的類別;根據(jù)所述類別確定當(dāng)前塊的相鄰塊的可用性信息。根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供一種當(dāng)前塊的相鄰塊可用性獲取系統(tǒng),包括預(yù)定義單元,用于預(yù)先定義塊的類別,塊的邏輯位置和類型與所述類別的關(guān)系,以及所述類別所對(duì)應(yīng)的相鄰塊可用性信息,所述邏輯位置為塊在所屬宏塊中的相對(duì)位置;
確定單元,用于確定當(dāng)前塊的邏輯位置和類型,根據(jù)所述邏輯位置和類型確定當(dāng)前塊所屬的類別,以及根據(jù)所述類別確定當(dāng)前塊的相鄰塊的可用性信息。從上述的技術(shù)方案可以看出,由于已經(jīng)預(yù)先定義塊的類別,塊的邏輯位置和類型與所述類別的關(guān)系,以及所述類別所對(duì)應(yīng)的相鄰塊可用性信息,因此在進(jìn)行可用性判斷時(shí), 只需根據(jù)上述關(guān)系即可得到四個(gè)方向相鄰塊的可用性信息,而無(wú)需每一方面上均進(jìn)行計(jì)算。與傳統(tǒng)方式相比,本發(fā)明實(shí)施例所提供的技術(shù)方案可大大減少計(jì)算量。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為當(dāng)前塊與相鄰塊之間的關(guān)系;圖2-7為本發(fā)明實(shí)施例所提供的宏塊最基本的分割方式示意圖;圖8為本發(fā)明實(shí)施例所提供的編解碼順序示意圖;圖9-14分別為圖2-7所示分割方式對(duì)應(yīng)的類別示意圖;圖15為本發(fā)明實(shí)施例所提供的系統(tǒng)結(jié)構(gòu)示意圖;圖16為本發(fā)明實(shí)施例所提供的方法流程圖;圖17為本發(fā)明實(shí)施例所提供的宏塊其他分割方式示意圖;圖18-19為本發(fā)明實(shí)施例所提供的不同分割方式對(duì)應(yīng)邏輯位置及類別示意圖;圖20為本發(fā)明實(shí)施例所提供的邏輯位置設(shè)定示意圖;圖21為本發(fā)明實(shí)施例所提供的邏輯坐標(biāo)設(shè)定示意圖。
具體實(shí)施例方式下面將結(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ù)的范圍。在視頻編解碼中,一個(gè)編解碼圖像通常劃分成若干宏塊,宏塊又被劃分為塊。在編解碼過程中,需要針對(duì)每個(gè)當(dāng)前塊計(jì)算出相鄰塊的可用性(相鄰塊的可用性信息簡(jiǎn)稱為當(dāng)前塊的可用性)情況,即相鄰塊是否已經(jīng)編解碼。參見圖1,當(dāng)前塊101需要用到的相鄰塊的位置分左方、上方、右上方、左上方,分別記做A、B、C、D。當(dāng)前塊的相鄰塊可用性計(jì)算既涉及宏塊的可用性判斷,又涉及宏塊內(nèi)部的各個(gè)塊之間的可用性判斷,因此計(jì)算比較復(fù)雜。通常的技術(shù)方案在每個(gè)方向上的可用性計(jì)算分別進(jìn)行如下操作通過判斷當(dāng)前塊實(shí)際坐標(biāo)位置得出當(dāng)前塊是位于宏塊內(nèi)部還是宏塊邊界;如果當(dāng)前塊在宏塊內(nèi)部,進(jìn)一步判斷是否因?yàn)榫幗獯a順序?qū)е掠行┫噜弶K不可用;如果當(dāng)前塊在宏塊邊界,則需要區(qū)分出是哪個(gè)邊界,根據(jù)當(dāng)前塊所處宏塊相鄰塊的可用性和邊界可用性信息,得出當(dāng)前塊的相鄰塊的可用性。以上操作在對(duì)當(dāng)前塊的每個(gè)方向的可用性計(jì)算上都要做一次,一共需做四次。最好的情況下得到一個(gè)方向上當(dāng)前塊的可用性也需要兩次判斷。尤其是當(dāng)宏塊所包含的塊越多時(shí),在每一宏塊上所花費(fèi)的計(jì)算量也越多。為便于理解,現(xiàn)對(duì)宏塊和塊作進(jìn)一步地解釋。在視頻編解碼中,宏塊一般為一個(gè) P16X 16大小的圖像塊,其中的P代表像素,而塊則為宏塊內(nèi)的樹形分割得到的編解碼的最小單位,相鄰塊的可用性是指當(dāng)前塊的相鄰塊是否已經(jīng)編解碼。在H. 264標(biāo)準(zhǔn)中,宏塊最基本的分割為P16 X 16 (即本身不分割),P8X16(參見圖2,在此種分割中,一個(gè)宏塊中包含2個(gè)塊),P16 X 8 (參見圖3,在此種分割中,一個(gè)宏塊中包含2個(gè)塊),P8X8(參見圖4,在此種分割中,一個(gè)宏塊中包含4個(gè)塊),P8X4(參見圖 5,在此種分割中,一個(gè)宏塊中包含8個(gè)塊),P4X8(參見圖6,在此種分割中,一個(gè)宏塊中包含8個(gè)塊),P4 X 4 (參見圖7,在此種分割中,一個(gè)宏塊中包含16個(gè)塊)。上述P16X16、P8X16、P16X8、P8X8、P8X4、P4X8、P4X4 即為塊的類型。在進(jìn)行編解碼前,上述類型即已知,否則無(wú)法對(duì)塊執(zhí)行編解碼。參見圖8,在編解碼過程中,對(duì)宏塊內(nèi)各塊的編解碼會(huì)遵循一定的規(guī)定,比如,以 A4為例,即是1-16的順序。那么以A4中標(biāo)號(hào)為13的塊作為當(dāng)前塊,其對(duì)應(yīng)的相鄰塊A、B、C、D分別為塊10、 塊7、塊8和塊4。根據(jù)上述編解碼順序,可知,塊10、塊7、塊8和塊4先于塊13完成編解碼,因此,塊13所對(duì)應(yīng)的相鄰塊A、B、C、D的可用性信息為A、B、C、D均可用。再以塊1為例可知,其對(duì)應(yīng)的A、B、D相鄰塊的可用性與各自所屬的A1-A3宏塊的可用性一致,也即,當(dāng)A所在的A3宏塊已完成編解碼時(shí),A可用,否則A不可用,同理可推知相鄰塊B和D的可用性與宏塊A2和Al的可用性一致。至于鄰塊C,由于與鄰塊B同屬一個(gè)宏塊,因此與B的可用性一致。以此類推,可將當(dāng)前塊所對(duì)應(yīng)的類別分為第零類至第七類,其中第零類所對(duì)應(yīng)的相鄰塊A、B、C、D的可用性信息為A、B、C、D均可用;第一類所對(duì)應(yīng)的相鄰塊A、B、C、D的可用性信息為A、B、D的可用性與各自所屬的宏塊的可用性一致,C的可用性與B的可用性一致;第二類所對(duì)應(yīng)的相鄰塊A、B、C、D的可用性信息為A可用,B、C的可用性與各自所屬的宏塊的可用性一致,D的可用性與B的可用性一致;第三類所對(duì)應(yīng)的相鄰塊A、B、C、D的可用性信息為B、C可用,A可用性與其所屬的宏塊的可用性一致,D的可用性與A的可用性一致;第四類所對(duì)應(yīng)的相鄰塊A、B、C、D的可用性信息為A、B、D均可用,C不可用;第五類所對(duì)應(yīng)的相鄰塊A、B、C、D的可用性信息為B可用,C不可用,D的可用性
與A的可用性一致;第六類所對(duì)應(yīng)的相鄰塊A、B、C、D的可用性信息為A可用,B的可用性與其所屬的宏塊的可用性一致,C、D的可用性與B的可用性一致;第七類所對(duì)應(yīng)的相鄰塊A、B、C、D的可用性信息為A、B、C、D的可用性與各自所屬
的宏塊的可用性一致。另外,宏塊A4中的1-16可視為某一塊相對(duì)于宏塊的邏輯位置。由對(duì)圖10中的塊1和塊13的分析可知,即使在同一類型中,塊的邏輯位置不同,其相鄰塊的可用性信息也不同。因此,在獲取當(dāng)前塊的相鄰塊可用性時(shí),需要同時(shí)考慮當(dāng)前塊的邏輯位置以及其所對(duì)應(yīng)的類型。塊的類型以及邏輯位置可唯一地確定塊的類別?,F(xiàn)以0-7表示上述第零至七類,則圖2-7各宏塊所對(duì)應(yīng)的類別如圖9-14所示?;谏鲜龇治?,本發(fā)明實(shí)施例提供了可減少計(jì)算量當(dāng)前塊的相鄰塊可用性獲取系統(tǒng)。圖15示出了上述系統(tǒng)的一種結(jié)構(gòu),包括預(yù)定義單元201,用于預(yù)先定義塊的類別,塊的邏輯位置和類型與所述類別的關(guān)系,以及所述類別所對(duì)應(yīng)的相鄰塊可用性信息,所述邏輯位置為塊在所屬宏塊中的相對(duì)位置;確定單元202,用于確定當(dāng)前塊的邏輯位置和類型,根據(jù)所述邏輯位置和類型確定當(dāng)前塊所屬的類別,以及根據(jù)所述類別確定當(dāng)前塊的相鄰塊的可用性信息。與之相對(duì)應(yīng),本發(fā)明實(shí)施例還提供了一種當(dāng)前塊的相鄰塊可用性獲取方法,參見圖16,該方法至少包括如下步驟S1-3 Si、確定當(dāng)前塊的邏輯位置和類型;S2、根據(jù)所述邏輯位置和類型確定當(dāng)前塊所屬的類別;S3、根據(jù)所述類別確定當(dāng)前塊的相鄰塊的可用性信息。在實(shí)施上述步驟之前,預(yù)先定義了塊的類別,塊的邏輯位置和類型與所述類別的關(guān)系,以及所述類別所對(duì)應(yīng)的相鄰塊可用性信息,所述邏輯位置為塊在所屬宏塊中的相對(duì)位置。在本發(fā)明其他實(shí)施例中,以上實(shí)施例中的方法還可包括如下步驟預(yù)先以表格的形式存儲(chǔ)所述塊的類別,以及塊的邏輯位置和類型與所述類別的關(guān)系。而在本發(fā)明其他實(shí)施例中,以上所有實(shí)施例中的方法還可包括如下步驟預(yù)先以表格的形式存儲(chǔ)所述類別所對(duì)應(yīng)的相鄰塊可用性信息??梢钥闯?,由于已經(jīng)預(yù)先定義塊的類別,塊的邏輯位置和類型與所述類別的關(guān)系, 以及所述類別所對(duì)應(yīng)的相鄰塊可用性信息,因此在進(jìn)行可用性判斷時(shí),只需根據(jù)上述關(guān)系即可得到四個(gè)方向相鄰塊的可用性信息,而無(wú)需每一方面上均進(jìn)行計(jì)算。與傳統(tǒng)方式相比, 本發(fā)明實(shí)施例所提供的技術(shù)方案可大大減少計(jì)算量。當(dāng)然,本發(fā)明所公開之技術(shù)方案不僅僅只適用于視頻編解碼領(lǐng)域,在其他相關(guān)相似領(lǐng)域,需要判斷相鄰塊可用性乃至其他時(shí),也可將本發(fā)明之精神移植過去。并根據(jù)編解碼順序或預(yù)設(shè)處理順序的不同,分為若干類,每一類對(duì)應(yīng)不同的可用性信息,在此不作贅述。上述對(duì)宏塊的分割僅為最基礎(chǔ)的,事實(shí)上,參見圖17,可先將一宏塊分割為P8X8 的B1-B4四塊,然后將Bl和B4分為P4X4的塊,而將B2分割為P8X 16的塊,而將B3分割為P16X8的塊。針對(duì)上述類似的情況,以Bl分割塊中的四塊為例,該四塊的類型為P4X4,其邏輯位置與P4X4(參見圖18)中C1-C4的位置相對(duì)應(yīng),則其對(duì)應(yīng)的類別也與P4X4中塊C1-C4 的位置相對(duì)應(yīng)。而以B2分割塊為例分析,則B2中塊的類型為P8X4,其對(duì)應(yīng)的類別也與圖 19中P8X4中塊D2、D4的類別相對(duì)應(yīng)。需要說(shuō)明的是,無(wú)論如何對(duì)宏塊進(jìn)行分割,其分割方式,也即每一塊對(duì)應(yīng)的類型都是預(yù)知的,否則無(wú)法進(jìn)行編解碼。在本發(fā)明其他實(shí)施例中,參見圖20,對(duì)塊的邏輯位置可進(jìn)行如下設(shè)定以宏塊的最左端頂點(diǎn)為起始點(diǎn),每4個(gè)像素為一刻度,則水平維度及豎直維度上具有0-3四個(gè)刻度。當(dāng)一個(gè)塊對(duì)應(yīng)兩個(gè)刻度時(shí),例如塊El在水平方向上即對(duì)應(yīng)0,1,在豎直方向上也對(duì)應(yīng)0,1,取該塊左上角的頂點(diǎn)對(duì)應(yīng)的刻度作為其邏輯位置,也即El的邏輯位置為
o前已述及,預(yù)先以表格的形式存儲(chǔ)所述塊的類別,塊的邏輯位置和類型與所述類別的關(guān)系,可對(duì)表格進(jìn)行如下初始化#define P8x8_AVAIL_ALL類別 0//#define P8x8_AVAIL_ABCD_N0T 類別 1//#define P8x8_AVAIL_BCD_N0T 類別 2//#define P8x8_AVAIL_A_N0T類別 3//#define P8x8_AVAIL_C0_Dl類別 4//#define P8x8_AVAIL_AD_N0T 類別 5//#define P8x8_AVAIL_BCD_N0T_CUP 類別 6//#define P8x8_AVAIL_ABCD類別 7//#define P_16x8 0#define P_8xl6 1#define P_8x8 2#define P_8x4 3#define P_4x8 4#define P_4x4 5INT16*ptr = H264DEC_P8x8_AVAILTABLE
;for (i = 0 ;i < 6*4*4 ;i++){*ptr++= P8x8_AVAIL_ALL ;}H264DEC_P8x8_AVAILTABLE[P_16x8]
= P8x8_AVAIL_ABCD ;H264DEC_P8x8_AVAILTABLE[P_16x8]
[2] = P8x8_AVAIL_AD_N0T ;H264DEC_P8x8_AVAILTABLE[P_8xl6]
= P8x8_AVAIL_ABCD_N0T ;H264DEC_P8x8_AVAILTABLE[P_8xl6][2]
= P8x8_AVAIL_BCD_N0T ;H264DEC_P8x8_AVAILTABLE[P_8x8]
= P8x8_AVAIL_ABCD_N0T ;H264DEC_P8x8_AVAILTABLE[P_8x8][2]
= P8x8_AVAIL_BCD_N0T ;H264DEC_P8x8_AVAILTABLE[P_8x8]
[2] = P8x8_AVAIL_A_N0T ;H264DEC_P8x8_AVAILTABLE[P_8x8][2][2] = P8x8_AVAIL_C0_Dl ;H264DEC_P8x8_AVAILTABLE[P_8x4]
= P8x8_AVAIL_ABCD_N0T ;H264DEC_P8x8_AVAILTABLE[P_8x4]
[1] = P8x8_AVAIL_AD_N0T ;H264DEC_P8x8_AVAILTABLE[P_8x4]
[2] = P8x8_AVAIL_A_N0T ;H264DEC_P8x8_AVAILTABLE[P_8x4]
[3] = P8x8_AVAIL_AD_N0T ;H264DEC_P8x8_AVAILTABLE[P_8x4][2]
= P8x8_AVAIL_BCD_N0T ;H264DEC_P8x8_AVAILTABLE[P_8x4][2][1] = P8x8_AVAIL_C0_Dl ;
H264DEC_P8x8_AVAILTABLE[P_8x4][2][2] = P8x8_AVAIL_C0_Dl ;H264DEC_P8x8_AVAILTABLE[P_8x4][2][3] = P8x8_AVAIL_C0_Dl ;H264DEC_P8x8_AVAILTABLE[P_4x8]
= P8x8_AVAIL_ABCD_N0T ;H264DEC_P8x8_AVAILTABLE[P_4x8]
[2] = P8x8_AVAIL_A_N0T ;H264DEC_P8x8_AVAILTABLE[P_4x8][1]
= P8x8_AVAIL_BCD_N0T_CUP ;H264DEC_P8x8_AVAILTABLE[P_4x8][2]
= P8x8_AVAIL_BCD_N0T_CUP ;H264DEC_P8x8_AVAILTABLE[P_4x8][3]
= P8x8_AVAIL_BCD_N0T ;H264DEC_P8x8_AVAILTABLE[P_4x8][3][2] = P8x8_AVAIL_C0_Dl ;H264DEC_P8x8_AVAILTABLE[P_4x4]
= P8x8_AVAIL_ABCD_N0T ;H264DEC_P8x8_AVAILTABLE[P_4x4]
[1] = P8x8_AVAIL_A_N0T ;H264DEC_P8x8_AVAILTABLE[P_4x4]
[2] = P8x8_AVAIL_A_N0T ;H264DEC_P8x8_AVAILTABLE[P_4x4]
[3] = P8x8_AVAIL_A_N0T ;H264DEC_P8x8_AVAILTABLE[P_4x4][1]
= P8x8_AVAIL_BCD_N0T_CUP ;H264DEC_P8x8_AVAILTABLE[P_4x4][1][1] = P8x8_AVAIL_C0_Dl ;H264DEC_P8x8_AVAILTABLE[P_4x4][1][3] = P8x8_AVAIL_C0_Dl ;H264DEC_P8x8_AVAILTABLE[P_4x4][2]
= P8x8_AVAIL_BCD_N0T_CUP ;H264DEC_P8x8_AVAILTABLE[P_4x4][3]
= P8x8AVAIL_BCD_N0T ;H264DEC_P8x8_AVAILTABLE[P_4x4][3][1] = P8x8_AVAIL_C0_Dl ;H264DEC_P8x8_AVAILTABLE[P_4x4][3][2] = P8x8_AVAIL_C0_Dl ;H264DEC_P8x8_AVAILTABLE[P_4x4][3][3] = P8x8_AVAIL_C0_Dl。以初始化中 ^"H264DEC_P8x8_AVAILTABLE[P_16x8]
“為例,其在 ‘‘AVAILTABLE”后的[P_16x8]即為塊的類型,而
即為塊的邏輯位置。經(jīng)上述初始化后所形成的表格可稱為第一表格,該表格可用于檢索當(dāng)前塊的類別。前已述及,還可預(yù)先以表格的形式存儲(chǔ)所述類別所對(duì)應(yīng)的相鄰塊可用性信息。存儲(chǔ)于上述可用性信息的表格可稱為第二表格。因此,在本發(fā)明其他實(shí)施例中,在得到當(dāng)前塊類別之后,還可通過檢索第二個(gè)表格來(lái)得出當(dāng)前塊的相鄰塊的可用性。設(shè)某一宏塊的相鄰宏塊的可用性分別為L(zhǎng)eftjvailable、Up_available, UpRight_available、UpLeft_avaiIable ;設(shè)可用為 H264DEC_A1 IAvaiIableMB = 1 ;設(shè)不可用為!E64DEC_NoneAvaiIableMB = 0。第二表格的一種初始化方式如下H264DEC_P8x8_AVAILTABLE_INDEX [P8x8_AVAIL_ALL]
= &H264DEC_ AllAvailableMB ;H264DEC_P8x8_AVAILTABLE_INDEX[P8x8_AVAIL_ALL] [1] = &H264DEC_ AllAvailableMB ;H264DEC_P8x8_AVAILTABLE_INDEX[P8x8_AVAIL_ALL] [2] = &H264DEC_ AllAvailableMB ;H264DEC_P8x8_AVAILTABLE_INDEX[P8x8_AVAIL_ALL] [3] = &H264DEC_ AllAvailableMB ;H264DEC_P8x8_AVAILTABLE_INDEX[P8x_8AVAIL_ABCD_N0T]
= &H264DEC_LeftAvailableMB ;H264DEC_P8x8_AVAILTABLE_INDEX[P8x8_AVAIL_ABCD_N0T][1] = &H264DEC_ UpAvailableMB ;H264DEC_P8x8_AVAILTABLE_INDEX[P8x8_AVAIL_ABCD_N0T][2] = &H264DEC_ UpAvailableMB ;H264DEC_P8x8_AVAILTABLE_INDEX[P8x8_AVAIL_ABCD_N0T][3] = &H264DEC_ UpLeftAvailableMB ;H264DEC_P8x8_AVAILTABLE_INDEX[P8x8_AVAIL_BCD_N0T]
= &H264DEC_ AllAvailableMB ;H264DEC_P8x8_AVAILTABLE_INDEX[P8x8_AVAIL_BCD_N0T][1] = &H264DEC_ UpAvailableMB ;H264DEC_P8x8_AVAILTABLE_INDEX[P8x8_AVAIL_BCD_N0T] [2] = &H264DEC_ UpRightAvailableMB ;H264DEC_P8x8_AVAILTABLE_INDEX[P8x8_AVAIL_BCD_N0T] [3] = &H264DEC_ UpAvailableMB ;H264DEC_P8x8_AVAILTABLE_INDEX[P8x8_AVAIL_A_N0T]
= &H264DEC_ LeftAvailableMB ;H264DEC_P8x8_AVAILTABLE_INDEX[P8x8_AVAIL_A_N0T][1] = &H264DEC_ AllAvailableMB ;H264DEC_P8x8_AVAILTABLE_INDEX[P8x8_AVAIL_A_N0T][2] = &H264DEC_ AllAvailableMB ;H264DEC_P8x8_AVAILTABLE_INDEX[P8x8_AVAIL_A_N0T][3] = &H264DEC_ AllAvailableMB ;H264DEC_P8x8_AVAILTABLE_INDEX[P8x8_AVAIL_C0_Dl]
= &H264DEC_ AllAvailableMB ;H264DEC_P8x8_AVAILTABLE_INDEX[P8x8_AVAIL_C0_Dl][1] = &H264DEC_ AllAvailableMB ;H264DEC_P8x8_AVAILTABLE_INDEX[P8x8_AVAIL_C0_Dl][2] = &H264DEC_ NoneAvailableMB ;H264DEC_P8x8_AVAILTABLE_INDEX[P8x8_AVAIL_C0_Dl][3] = &H264DEC_ AllAvailableMB ;H264DEC_P8x8_AVAILTABLE_INDEX[P8x8_AVAIL_AD_N0T]
= &H264DEC_ LeftAvailableMB ;H264DEC_P8x8_AVAILTABLE_INDEX[P8x8_AVAIL_AD_N0T] [1] = &H264DEC_ AllAvailableMB ;H264DEC_P8x8_AVAILTABLE_INDEX[P8x8_AVAIL_AD_N0T] [2] = &H264DEC_ NoneAvailableMB ;H264DEC_P8x8_AVAILTABLE_INDEX[P8x8_AVAIL_AD_N0T] [3] = &H264DEC_ LeftAvailableMB ;
9
H264DEC_P8x8_AVAILTABLE_INDEX[P8x8_AVAIL_BCD_N0T_CUP]
= &H264DEC_ AllAvailableMB ;H264DEC_P8x8_AVAILTABLE_INDEX[P8x8_AVAIL_BCD_N0T_CUP][1] = &H264DEC_ UpAvailableMB ;H264DEC_P8x8_AVAILTABLE_INDEX[P8x8_AVAIL_BCD_N0T_CUP][2] = &H264DEC_ UpAvailableMB ;H264DEC_P8x8_AVAILTABLE_INDEX[P8x8_AVAIL_BCD_N0T_CUP][3] = &H264DEC_ UpAvailableMB ;H264DEC_P8x8_AVAILTABLE_INDEX[P8x8_AVAIL_ABCD]
= &H264DEC_ LeftAvailableMB ;H264DEC_P8x8_AVAILTABLE_INDEX[P8x8_AVAIL_ABCD] [1] = &H264DEC_ UpAvailableMB ;H264DEC_P8x8_AVAILTABLE_INDEX[P8x8_AVAIL_ABCD] [2] = &H264DEC_ UpRightAvailableMB ;H264DEC_P8x8_AVAILTABLE_INDEX[P8x8_AVAIL_ABCD] [3] = &H264DEC_ UpLeftAvailableMB。在本發(fā)明其他實(shí)施例中,還可直接根據(jù)塊的邏輯坐標(biāo)來(lái)得到塊的類別。參見圖21,以宏塊的最左端頂點(diǎn)為起始點(diǎn)畫X軸和Y軸,每一軸以4個(gè)像素為一刻度進(jìn)行標(biāo)記,這樣,在X和Y方向,分別有0-4五個(gè)邏輯坐標(biāo)刻度。以不同分割方式分割出的塊,其頂點(diǎn)的邏輯坐標(biāo)也不同。一個(gè)塊有四個(gè)角,每一角上都有一個(gè)頂點(diǎn),由于塊均為長(zhǎng)方形或正方形,因此某一塊的對(duì)角線上的頂點(diǎn)或任意三頂點(diǎn)的邏輯坐標(biāo)可唯一確定一個(gè)塊的邏輯位置,同時(shí)也可唯一地確定一個(gè)塊的分割方式,也即其對(duì)應(yīng)的塊的類型。因此,在本實(shí)施例中,塊的邏輯位置具體為塊的頂點(diǎn)的邏輯坐標(biāo),而邏輯坐標(biāo)意為塊中某一像素點(diǎn)在所屬宏塊中的相對(duì)坐標(biāo)。因此,在本發(fā)明其他實(shí)施例中,可直接定義邏輯坐標(biāo)與塊的類別的關(guān)系,也即,可直接預(yù)先定義塊的邏輯位置與該塊的類別的關(guān)系,從而進(jìn)一步獲得當(dāng)前塊的相鄰塊的可用性f曰息。本說(shuō)明書中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似部分互相參見即可。對(duì)于實(shí)施例公開的裝置而言,由于其與實(shí)施例公開的方法相對(duì)應(yīng),所以描述的比較簡(jiǎn)單,相關(guān)之處參見方法部分說(shuō)明即可。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過計(jì)算機(jī)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,所述程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤、只讀存儲(chǔ)記憶體(Read-Only Memory,ROM)或隨機(jī)存儲(chǔ)記憶體(Random Access Memory, RAM)等。對(duì)所公開的實(shí)施例的上述說(shuō)明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。 對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的專業(yè)技術(shù)人員來(lái)說(shuō)將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。
權(quán)利要求
1.一種當(dāng)前塊的相鄰塊可用性獲取方法,其特征在于,預(yù)先定義塊的類別,塊的邏輯位置和類型與所述類別的關(guān)系,以及所述類別所對(duì)應(yīng)的相鄰塊可用性信息,所述邏輯位置為塊在所屬宏塊中的相對(duì)位置;所述方法包括確定當(dāng)前塊的邏輯位置和類型;根據(jù)所述邏輯位置和類型確定當(dāng)前塊所屬的類別;根據(jù)所述類別確定當(dāng)前塊的相鄰塊的可用性信息。
2.如權(quán)利要求1所述的方法,其特征在于,所述塊的邏輯位置具體為塊的頂點(diǎn)的邏輯坐標(biāo),所述邏輯坐標(biāo)為塊中某一像素點(diǎn)在所屬宏塊中的相對(duì)坐標(biāo)。
3.如權(quán)利要求2所述的方法,其特征在于,還包括預(yù)先以表格的形式存儲(chǔ)所述塊的類別,塊的邏輯位置和類型與所述類別的關(guān)系。
4.如權(quán)利要求2所述的方法,其特征在于,還包括預(yù)先以表格的形式存儲(chǔ)所述類別所對(duì)應(yīng)的相鄰塊可用性信息。
5.如權(quán)利要求1-4任一項(xiàng)所述的方法,其特征在于,所述類別包括第零類至第七類,其中第零類所對(duì)應(yīng)的相鄰塊A、B、C、D的可用性信息為A、B、C、D均可用; 第一類所對(duì)應(yīng)的相鄰塊A、B、C、D的可用性信息為A、B、D的可用性與各自所屬的宏塊的可用性一致,C的可用性與B的可用性一致;第二類所對(duì)應(yīng)的相鄰塊A、B、C、D的可用性信息為A可用,B、C的可用性與各自所屬的宏塊的可用性一致,D的可用性與B的可用性一致;第三類所對(duì)應(yīng)的相鄰塊A、B、C、D的可用性信息為B、C可用,A可用性與其所屬的宏塊的可用性一致,D的可用性與A的可用性一致;第四類所對(duì)應(yīng)的相鄰塊A、B、C、D的可用性信息為A、B、D均可用,C不可用; 第五類所對(duì)應(yīng)的相鄰塊A、B、C、D的可用性信息為B可用,C不可用,D的可用性與A 的可用性一致;第六類所對(duì)應(yīng)的相鄰塊A、B、C、D的可用性信息為A可用,B的可用性與其所屬的宏塊的可用性一致,C、D的可用性與B的可用性一致;第七類所對(duì)應(yīng)的相鄰塊A、B、C、D的可用性信息為A、B、C、D的可用性與各自所屬的宏塊的可用性一致。
6.一種當(dāng)前塊的相鄰塊可用性獲取系統(tǒng),其特征在于,包括預(yù)定義單元,用于預(yù)先定義塊的類別,塊的邏輯位置和類型與所述類別的關(guān)系,以及所述類別所對(duì)應(yīng)的相鄰塊可用性信息,所述邏輯位置為塊在所屬宏塊中的相對(duì)位置;確定單元,用于確定當(dāng)前塊的邏輯位置和類型,根據(jù)所述邏輯位置和類型確定當(dāng)前塊所屬的類別,以及根據(jù)所述類別確定當(dāng)前塊的相鄰塊的可用性信息。
7.如權(quán)利要求5所述的系統(tǒng),其特征在于,所述塊的邏輯位置具體為塊的頂點(diǎn)的邏輯坐標(biāo),所述邏輯坐標(biāo)為塊中某一像素點(diǎn)在所屬宏塊中的相對(duì)坐標(biāo)。
8.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述塊的類別,塊的邏輯位置和類型與所述類別的關(guān)系和/或類別所對(duì)應(yīng)的相鄰塊可用性信息預(yù)先以表格的形式存儲(chǔ)。
全文摘要
本發(fā)明實(shí)施例公開了可減少計(jì)算量當(dāng)前塊的相鄰塊可用性獲取方法及系統(tǒng)。在實(shí)施所述方法前,預(yù)先定義塊的類別,塊的邏輯位置和類型與所述類別的關(guān)系,以及所述類別所對(duì)應(yīng)的相鄰塊可用性信息,所述邏輯位置為塊在所屬宏塊中的相對(duì)位置;所述方法包括確定當(dāng)前塊的邏輯位置和類型;根據(jù)所述邏輯位置和類型確定當(dāng)前塊所屬的類別;根據(jù)所述類別確定當(dāng)前塊的相鄰塊的可用性信息??梢?,由于已經(jīng)預(yù)先定義了各種關(guān)系,因此只需根據(jù)上述定義的關(guān)系即可得到四個(gè)方向相鄰塊的可用性信息,無(wú)需每一方面上均進(jìn)行計(jì)算。與傳統(tǒng)方式相比,本發(fā)明實(shí)施例所提供的技術(shù)方案可大大減少計(jì)算量。
文檔編號(hào)H04N7/26GK102547270SQ201010620879
公開日2012年7月4日 申請(qǐng)日期2010年12月31日 優(yōu)先權(quán)日2010年12月31日
發(fā)明者吳銘, 朱東巍, 李桂滿 申請(qǐng)人:聯(lián)芯科技有限公司