專利名稱:一種視頻圖像跳過(guò)宏塊的解碼方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種對(duì)視頻圖像解碼的方法,尤其是一種當(dāng)編碼圖像含有跳過(guò)宏塊時(shí),對(duì)視頻圖像的跳過(guò)宏塊進(jìn)行編碼的方法以及相應(yīng)的解碼獲得視頻圖像的方法,屬于視頻編碼領(lǐng)域。
背景技術(shù):
數(shù)字電視、新一代移動(dòng)通信、寬帶網(wǎng)絡(luò)通信、家庭消費(fèi)電子這些高技術(shù)產(chǎn)業(yè)群的共性技術(shù)集中在以視音頻為主要內(nèi)容的多媒體信息處理技術(shù),特別是數(shù)據(jù)壓縮技術(shù)上。高效的視頻編解碼技術(shù)是實(shí)現(xiàn)高質(zhì)量、低成本多媒體數(shù)據(jù)存儲(chǔ)與傳輸?shù)年P(guān)鍵。
在現(xiàn)有的視頻標(biāo)準(zhǔn)中,(如MPEG系列和H.26x系列),都存在一種跳過(guò)宏塊模式(Skipped Macroblock)。所謂跳過(guò)宏塊是指對(duì)此類型宏塊編碼時(shí)不需要編碼附加信息(例如運(yùn)動(dòng)矢量或殘差),它只在P圖像和B圖像中存在,即只在幀間編碼視頻圖像中存在,幀內(nèi)編碼視頻圖像如I幀中并不存在。跳過(guò)宏塊的運(yùn)動(dòng)矢量是通過(guò)先前處理的相鄰宏塊(時(shí)間域或空間域)的運(yùn)動(dòng)矢量所導(dǎo)出的,并且沒(méi)有殘差數(shù)據(jù)(量化后殘差為0)。由于跳過(guò)宏塊的處理不同于其他的宏塊,所以在視頻編碼時(shí),需要將它標(biāo)識(shí)出來(lái)。
MPEG2標(biāo)準(zhǔn)中采用“宏塊地址增量”(macroblock_address_increment)來(lái)處理的。如果macroblock_address_increment大于1,則表示中間有若干跳過(guò)宏塊。
H.263標(biāo)準(zhǔn)中通過(guò)專門(mén)的一位來(lái)標(biāo)識(shí)是否有編碼數(shù)據(jù),即“編碼宏塊標(biāo)識(shí)”(coded macroblock indication),1表示沒(méi)有數(shù)據(jù)是跳過(guò)宏塊,0表示后面有編碼的宏塊數(shù)據(jù)。
H.264標(biāo)準(zhǔn)中對(duì)跳過(guò)宏塊采用“游程編碼”(run length)來(lái)處理,對(duì)跳過(guò)數(shù)目進(jìn)行編碼。這種處理方式與MPEG2的“宏塊地址增量”方法思路相同,都是編碼跳過(guò)的宏塊數(shù)目。
現(xiàn)有技術(shù)中,只采用單一方式編碼跳過(guò)宏塊類型,編碼的效率不高。對(duì)于某些平滑的序列,當(dāng)量化參數(shù)較大時(shí),跳過(guò)宏塊很多,此時(shí)“宏塊標(biāo)識(shí)方式”對(duì)每個(gè)宏塊都需一位來(lái)標(biāo)識(shí)是否是跳過(guò)宏塊,效率較低;而采用“宏塊地址增量”方式只需用變長(zhǎng)碼來(lái)編連續(xù)的跳過(guò)宏塊數(shù)目。同樣,對(duì)某些運(yùn)動(dòng)較大的序列,當(dāng)量化參數(shù)較小時(shí),跳過(guò)宏塊較少,連續(xù)出現(xiàn)的跳過(guò)宏塊數(shù)目也較小,頻繁出現(xiàn)的小數(shù)值并不利于變長(zhǎng)碼來(lái)編碼,例如數(shù)值3變長(zhǎng)碼編碼時(shí)可能需要3bit來(lái)表示,如果這樣的小數(shù)值很多,并且沒(méi)有大的數(shù)值(跳過(guò)宏塊持續(xù)出現(xiàn)),此時(shí)定長(zhǎng)碼可以達(dá)到更好的編碼效果。同時(shí),對(duì)于用來(lái)標(biāo)識(shí)非跳過(guò)宏塊的單一0值,“宏塊地址增量”方式與“編碼宏塊標(biāo)識(shí)”方式的實(shí)際編碼位數(shù)是相同的。此時(shí)宏塊地址增量方式不能充分發(fā)揮變長(zhǎng)碼的優(yōu)勢(shì),編碼效率也大為降低。
在圖像編碼時(shí)選擇何種方式編碼跳過(guò)宏塊,以取得最好的編碼效率成為視頻編碼領(lǐng)域進(jìn)一步提高編碼效率的難題之一。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問(wèn)題在于提出一種跳過(guò)宏塊的編碼方法,可以根據(jù)跳過(guò)的宏塊的多少來(lái)選擇不同編碼方式編碼跳過(guò)宏塊,并進(jìn)一步提供相應(yīng)的跳過(guò)宏塊的解碼方法,使編碼效率大為提高。
一種視頻圖像跳過(guò)宏塊的解碼方法,包括如下步驟步驟1、從碼流中讀取當(dāng)前圖像跳過(guò)宏塊的編碼標(biāo)志,并根據(jù)所述編碼標(biāo)志判斷當(dāng)前圖像跳過(guò)宏塊的編碼類型;所述編碼標(biāo)志專門(mén)用于表示當(dāng)前圖像編碼采用的跳過(guò)宏塊的編碼方式;步驟2、根據(jù)編碼類型選擇宏塊類型解碼方式,如果為游程編碼,則執(zhí)行步驟3;如果編碼類型為跳過(guò)宏塊數(shù)與宏塊類型聯(lián)合編碼,則執(zhí)行步驟4;步驟3、采用游程解碼方式,解碼當(dāng)前圖像當(dāng)前宏塊的宏塊類型,執(zhí)行步驟5;步驟4、采用跳過(guò)宏塊數(shù)與宏塊類型聯(lián)合的解碼方式,解碼當(dāng)前圖像當(dāng)前宏塊的宏塊類型,并執(zhí)行步驟5;步驟5、按照對(duì)應(yīng)的宏塊類型,對(duì)當(dāng)前圖像的宏塊進(jìn)行宏塊自身數(shù)據(jù)的解碼;步驟6、判斷當(dāng)前宏塊是否為當(dāng)前圖像最后一個(gè)編碼宏塊,是則結(jié)束,否則重新執(zhí)行步驟2。
本發(fā)明通過(guò)兩次編碼或通過(guò)經(jīng)驗(yàn)閾值來(lái)選擇視頻圖像跳過(guò)宏塊的編碼方式以及相應(yīng)的解碼方式,提高了圖像編碼的效率,減少了傳輸及存儲(chǔ)的代價(jià),解決了以往視頻圖像跳過(guò)宏塊編碼時(shí),效率低下的問(wèn)題,并且可用性強(qiáng),在幀編解碼和場(chǎng)編解碼時(shí)都可有效使用,是一種簡(jiǎn)單、實(shí)用的技術(shù)方案。
圖1是本發(fā)明嵌入跳過(guò)宏塊編碼的通用編碼流程示意圖;圖2是本發(fā)明嵌入跳過(guò)宏塊解碼的通用解碼流程示意圖;圖3是一個(gè)包括跳過(guò)宏塊的圖像宏塊實(shí)例的示意圖;圖4是本發(fā)明采用兩次編碼選擇編碼方式的流程圖;圖5是本發(fā)明基于統(tǒng)計(jì)信息選擇編碼方式的流程圖。
具體實(shí)施例方式
視頻圖像由多個(gè)宏塊組成,所以,對(duì)視頻圖像進(jìn)行編碼,首先要編碼宏塊的類型,然后再編碼宏塊本身;編碼完所有的宏塊就完成了圖像的編碼。
本發(fā)明涉及對(duì)幀間編碼視頻圖像宏塊類型的編碼,跳過(guò)宏塊可以看作是一種特殊的宏塊類型,而對(duì)于宏塊本身如運(yùn)動(dòng)矢量、殘差等數(shù)據(jù)的編碼,則可以采用任何一種宏塊編碼方式。
本發(fā)明根據(jù)碼率和圖像質(zhì)量需求以及視頻序列特征,跳過(guò)宏塊較多的編碼圖像采用游程編碼,跳過(guò)宏塊較少的編碼圖像采用跳過(guò)宏塊個(gè)數(shù)與宏塊類型聯(lián)合的編碼方式,因而能夠更好地適應(yīng)不同應(yīng)用需求,在不同情況下都能選用最有效地跳過(guò)宏塊編碼方式,提高編碼的效率。
如圖1所示,本發(fā)明所述技術(shù)方案的編碼過(guò)程,包括如下步驟步驟一、圖像頭中增加一位來(lái)標(biāo)識(shí)當(dāng)前圖像跳過(guò)宏塊的編碼方式;步驟二、根據(jù)跳過(guò)宏塊的多少,選擇對(duì)當(dāng)前圖像中宏塊類型的編碼方式,如果為游程編碼,則執(zhí)行步驟三;如果為跳過(guò)宏塊數(shù)與宏塊類型聯(lián)合編碼,則執(zhí)行步驟四;步驟三、將圖像頭的標(biāo)識(shí)位,設(shè)定為1,并采用游程編碼方式編碼圖像的宏塊類型;執(zhí)行步驟五;步驟四、將圖像頭的標(biāo)識(shí)位,設(shè)定為0,并采用跳過(guò)宏塊數(shù)與宏塊類型聯(lián)合的編碼方式編碼圖像的宏塊類型;執(zhí)行步驟五;步驟五、編碼當(dāng)前圖像,寫(xiě)入碼流。
本發(fā)明由于對(duì)視頻圖像的跳過(guò)宏塊采用了不同的編碼方式,因此,需要首先改變標(biāo)記的方式,為了減少標(biāo)記,單幀的所有跳過(guò)宏塊采用相同的方式進(jìn)行編碼。圖像頭中包括了許多圖像的信息,通過(guò)在圖像頭中增加一位(0或1)可以標(biāo)識(shí)當(dāng)前圖像跳過(guò)宏塊的編碼方式,比如預(yù)先設(shè)定該位為1表示游程編碼,為0表示跳過(guò)宏塊數(shù)與宏塊類型聯(lián)合編碼。
下面為其一個(gè)具體實(shí)例
pb_picture_header()//圖像頭{.....................
skip_code_flag//其值表明了跳過(guò)宏塊的編碼方式.....................
next_start_code()//找到碼流的下一圖像頭}pb_picture_header()中圖像頭的增加一位數(shù)據(jù),用于標(biāo)識(shí)當(dāng)前圖像跳過(guò)宏塊的編碼方式,具體實(shí)現(xiàn)如下skip_code_flag長(zhǎng)度為1個(gè)比特,為1表示編碼方式為游程編碼,為0編碼方式為跳過(guò)宏塊數(shù)與宏塊類型聯(lián)合編碼。
編碼完宏塊類型之后,就涉及到宏塊自身數(shù)據(jù)的編碼,即編碼運(yùn)動(dòng)矢量和殘差等數(shù)據(jù),然后將數(shù)據(jù)寫(xiě)入碼流中,完成當(dāng)前宏塊的編碼;依次對(duì)當(dāng)前圖像的所有宏塊進(jìn)行編碼,完成當(dāng)前圖像的編碼;采用上述方式編碼所有的幀間編碼視頻圖像。
如圖2所示,解碼端,首先從碼流的圖像頭pb_picture_header中讀入跳過(guò)宏塊編碼標(biāo)志skip_code_flag,判斷skip_code_flag的值,如果為1,則為游程編碼,如果為0,則為聯(lián)合編碼;采用對(duì)應(yīng)的方式,完成對(duì)宏塊的解碼。
根據(jù)以上的描述,本發(fā)明的步驟二對(duì)當(dāng)前圖像中宏塊類型編碼方式的選擇可以采用兩種方法,一種是采用兩次編碼比較編碼性能,擇優(yōu)而定;另一種是通過(guò)統(tǒng)計(jì)方式來(lái)估算待編碼圖像的跳過(guò)宏塊的多少,以此來(lái)決定采用哪種編碼方式。
圖3所示是一個(gè)包含跳過(guò)宏塊的幀間編/解碼視頻圖像的一部分,作為詳細(xì)說(shuō)明本發(fā)明技術(shù)方案的例子。
如圖4所示是單幀圖像的跳過(guò)宏塊編碼方式通過(guò)兩次編碼過(guò)程來(lái)選擇最優(yōu)的方案,步驟如下
步驟200、對(duì)當(dāng)前編碼圖像的所有宏塊采用游程編碼方式,處理完畢后獲得對(duì)應(yīng)的編碼性能參數(shù);步驟201、對(duì)當(dāng)前編碼圖像進(jìn)行二次編碼,其所有宏塊采用跳過(guò)宏塊數(shù)與宏塊類型聯(lián)合的編碼方式,處理完畢后獲得對(duì)應(yīng)的編碼性能參數(shù);步驟202、綜合比較兩次編碼所獲得的性能參數(shù),選取當(dāng)前圖像最優(yōu)的跳過(guò)宏塊編碼方式。
進(jìn)行比較的性能參數(shù)包括編碼率和信噪比,所述的編碼率指編碼的效率,即壓縮的比例,所述的信噪比指壓縮后的失真情況。選擇哪個(gè)參數(shù)作為判斷的依據(jù)要根據(jù)編碼的要求來(lái)決定,如果對(duì)圖像的壓縮率要求高而對(duì)圖像的失真情況要求不高,可以選擇同一信噪比編碼率高的編碼方式;如果對(duì)圖像的失真情況要求高,而對(duì)壓縮率沒(méi)有太高的要求,則選擇同一壓縮率失真小的編碼方式。因?yàn)樘^(guò)宏塊的編碼對(duì)編碼圖像的質(zhì)量影響較小,即對(duì)信噪比影響小,此時(shí)編碼方式主要是影響編碼的碼率。
下面分別對(duì)兩種編碼方式進(jìn)行介紹游程編碼方式是對(duì)于連續(xù)的跳過(guò)宏塊,用變長(zhǎng)碼(Variable-lengthcoding,VLC)編碼跳過(guò)的數(shù)目;而連續(xù)的非跳過(guò)宏塊之間必須加編一位“0”值來(lái)標(biāo)識(shí),表示沒(méi)有跳過(guò)宏塊。這樣,碼流中的每個(gè)非跳過(guò)宏塊都按表1所示結(jié)構(gòu)編碼。在每個(gè)宏塊頭先編碼跳過(guò)宏塊記數(shù)值(skipped macroblockcounter),然后編碼下一個(gè)非跳過(guò)宏塊的宏塊類型mb_type(macroblocktype)。此種方式對(duì)宏塊類型的原有編碼沒(méi)有影響。跳過(guò)宏塊個(gè)數(shù)則采用變長(zhǎng)碼(例如Exp-Golomb)編碼方式。
表1、跳過(guò)宏塊游程編碼方式
例如,如圖3所示是待編碼圖像的宏塊類型,每個(gè)小格表示一個(gè)宏塊,顏色較深的是跳過(guò)宏塊。采用游程編碼處理方式(mbx表示第x個(gè)宏塊的編碼數(shù)據(jù)),結(jié)果為(0,mb0)(1,mb2)(0,mb3)(4,mb8)(0,mb9)(0,mb10)(0,mb11)(1,mb13)(0,mb14)(2,mb17)跳過(guò)宏塊數(shù)與宏塊類型聯(lián)合編碼方式對(duì)P圖像按如下方法處理如果是P圖像,則在宏塊類型中增加一種跳過(guò)類型(skip mode),根據(jù)其平均出現(xiàn)概率決定其在宏塊類型表中的位置,整個(gè)宏塊類型表要隨之調(diào)整。跳過(guò)宏塊類型出現(xiàn)的概率根據(jù)圖像的不同而有所不同,可以通過(guò)對(duì)某一類型的圖像預(yù)先進(jìn)行統(tǒng)計(jì),來(lái)判斷可能出現(xiàn)的概率,從而決定跳過(guò)宏塊類型在宏塊類型表中的位置。一般對(duì)于B圖像和P圖像,跳過(guò)宏塊類型出現(xiàn)的概率較高,可以設(shè)定其mb_type為0。
例如,表2所示為原有的P圖像宏塊類型表(以AVS 1.0視頻標(biāo)準(zhǔn)為例)表2、P圖像中宏塊類型
表3所示為增加P_Skip模式的P圖像宏塊類型表。P_Skip模式插入到表的第一項(xiàng),原有其他項(xiàng)依次后推。宏塊類型采用Exp_Golomb編碼方式。
表3、加入P_Skip模式P圖像中宏塊類型
對(duì)于連續(xù)的跳過(guò)宏塊,根據(jù)其跳過(guò)記數(shù)值使用跳過(guò)類型來(lái)逐個(gè)編碼逐一標(biāo)識(shí)。對(duì)于非跳過(guò)宏塊,使用其對(duì)應(yīng)的宏塊類型編碼即可標(biāo)識(shí)。這樣通過(guò)宏塊類型就能清楚區(qū)分跳過(guò)宏塊和非跳過(guò)宏塊。
采用聯(lián)合編碼方式對(duì)圖3所示的圖像進(jìn)行編碼,結(jié)果為(mbx表示第x個(gè)宏塊編碼數(shù)據(jù)單元,TYPE-mbx表示第x個(gè)宏塊的類型)(TYPE-mb0,mb0)(0)(TYPE-mb2,mb2)(TYPE-mb3,mb3)(0)(0)(0)(0)(TYPE-mb8,mb8)(TYPE-mb9,mb9)(TYPE-mb10,mb10)(TYPE-mb11,mb11)(0)(TYPE-mb13,mb13)(TYPE-mb14,mb14)(0)(0)(TYPE-mb17,mb17)。
跳過(guò)宏塊數(shù)與宏塊類型聯(lián)合編碼方式對(duì)B圖像處理可以采用兩種方式一是采用與P圖像相同的處理方式,加入到原有的宏塊類型表中,這里不再贅述;二是對(duì)原有的B圖像直接(Direct)模式(B_Direct16x16mode)編碼進(jìn)行調(diào)整來(lái)達(dá)到同樣效果。
考慮到B圖像宏塊類型較多,改動(dòng)原有的宏塊類型表對(duì)非跳過(guò)宏塊編碼影響較大。這里將Direct和Skipped兩者宏塊類型都用原有的B圖像Direct模式標(biāo)識(shí),而通過(guò)編碼CBP來(lái)進(jìn)一步區(qū)分它們。Direct模式不需要編碼運(yùn)動(dòng)矢量信息,其運(yùn)動(dòng)矢量是導(dǎo)出的,這一點(diǎn)與Skip模式相同,但它可以有殘差數(shù)據(jù)。Skip模式可以看做Direct模式的特殊情況,即殘差數(shù)據(jù)全為0的Direct模式。塊編碼模板值(Coded Block Pattern,簡(jiǎn)稱CBP)標(biāo)識(shí)哪個(gè)8×8塊有殘差數(shù)據(jù),如果當(dāng)前宏塊殘差數(shù)據(jù)全部為0,其CBP也就為0。
每個(gè)跳過(guò)宏塊其編碼方式是Direct模式編碼值緊接CBP為0的編碼值(因?yàn)樘^(guò)宏塊本來(lái)就沒(méi)有殘差數(shù)據(jù),CBP應(yīng)該為0),而Direct宏塊其編碼方式是Direct模式編碼值緊接CBP非0的編碼值,其他非跳過(guò)宏塊按其對(duì)應(yīng)的宏塊類型編碼即可。這樣就能在CBP的協(xié)助下區(qū)分Direct和Skip兩種編碼模式,同時(shí)不修改原有的宏塊類型表,因此對(duì)其他宏塊編碼模式?jīng)]有影響。具體的編碼如表4所示表4 Direct+CBP方式
解碼處理時(shí),通過(guò)讀入的宏塊類型,如果是Direct模式,需讀入其后的CBP數(shù)值。若CBP為0則當(dāng)前宏塊為跳過(guò)宏塊,其后的數(shù)據(jù)為下一宏塊;如果不為0,則當(dāng)前宏塊為真正的Direct宏塊,其后的數(shù)據(jù)是當(dāng)前塊的殘差數(shù)據(jù)。
因?yàn)閮纱尉幋a來(lái)選擇最佳的跳過(guò)宏塊編碼方式速度較慢,也可以采用一種自適應(yīng)的模式快速選擇編碼方式。
如圖5所示,每次編碼都統(tǒng)計(jì)當(dāng)前幀跳過(guò)宏塊的比例Rskip。在編碼下一幀之前,參考前一幀的統(tǒng)計(jì)信息,根據(jù)視頻序列的內(nèi)容相關(guān)性,可以預(yù)測(cè)下一幀的跳過(guò)宏塊比例。如果大于經(jīng)驗(yàn)閾值Threshold,下一幀跳過(guò)宏塊數(shù)目也會(huì)較多,此時(shí)采用游程編碼方式;如果小于經(jīng)驗(yàn)閾值Threshold,跳過(guò)宏塊數(shù)較少,采用跳過(guò)宏塊數(shù)與宏塊類型的聯(lián)合編碼方式。
閾值的選擇與量化參數(shù)(QP)有關(guān),不同的QP值采用不同的閾值。量化參數(shù)(QP)能夠大致控制編碼圖像的質(zhì)量,量化參數(shù)越大,則圖像質(zhì)量變差,碼率降低,壓縮率提高,此時(shí)跳過(guò)宏塊出現(xiàn)的比例增大。
由于不同的圖像包含的宏塊數(shù)量不同(如高清圖像宏塊數(shù)量多),閾值的變化很大,一般在35-55%之間;為了獲得最佳的編碼效率,也可以采用通過(guò)統(tǒng)計(jì)的方式,對(duì)比兩種編碼方式的效果,本發(fā)明的閾值根據(jù)統(tǒng)計(jì)的結(jié)果獲得。由于大多數(shù)情況下,對(duì)于編碼可用的資源較多,針對(duì)實(shí)際的應(yīng)用需求預(yù)先挑選幾個(gè)有代表性的碼流,按照前面所述的兩次編碼的方法,統(tǒng)計(jì)此種應(yīng)用需求下典型碼流跳過(guò)宏塊的分布特征,從而獲得適合當(dāng)前應(yīng)用的最佳經(jīng)驗(yàn)閾值。亦可以通過(guò)軟件在編碼開(kāi)始時(shí)先按兩次編碼的方式編碼多幀幀間編碼圖像,同時(shí)統(tǒng)計(jì)對(duì)應(yīng)的跳過(guò)宏塊分布特征,從而獲得當(dāng)前序列的經(jīng)驗(yàn)閾值,此后序列的編碼全部按照快速模式選擇的方式進(jìn)行。
例如采用自適應(yīng)快速算法時(shí),當(dāng)QP為37,對(duì)于高清序列(1280×720),每個(gè)圖像有3600個(gè)宏塊,如果前一幀圖像跳過(guò)的宏塊總數(shù)大于1440個(gè),當(dāng)前幀的跳過(guò)宏塊編碼則采用游程編碼方式;反之,采用聯(lián)合編碼方式。對(duì)于CIF序列(352×288),每個(gè)圖像有396個(gè)宏塊,如果前一幀跳過(guò)宏塊數(shù)大于198個(gè),采用游程編碼方式,反之采用聯(lián)合編碼方式。
采用基于統(tǒng)計(jì)的自適應(yīng)編碼方法沒(méi)有增加空間復(fù)雜度,時(shí)間復(fù)雜度方面所新增計(jì)算量也非常小,并且由于圖像的時(shí)域相關(guān)性,使得這種估計(jì)在大多數(shù)的情況下,可以得到很好的編碼效果。
通過(guò)對(duì)本發(fā)明技術(shù)方案分析可知,該方法對(duì)傳統(tǒng)的視頻編解碼流程改動(dòng)很小,不論是幀編解碼還是場(chǎng)編解碼都能有效采用,能夠很方便地嵌入傳統(tǒng)的幀場(chǎng)編解碼流程。
最后應(yīng)說(shuō)明的是以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案而非對(duì)其進(jìn)行限制,盡管參照較佳實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解其依然可以對(duì)本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而這些修改或者等同替換亦不能使修改后的技術(shù)方案脫離本發(fā)明技術(shù)方案的精神和范圍。
權(quán)利要求
1.一種視頻圖像跳過(guò)宏塊的解碼方法,包括如下步驟步驟1、從碼流中讀取當(dāng)前圖像跳過(guò)宏塊的編碼標(biāo)志,并根據(jù)所述編碼標(biāo)志判斷當(dāng)前圖像跳過(guò)宏塊的編碼類型;所述編碼標(biāo)志專門(mén)用于表示當(dāng)前圖像編碼采用的跳過(guò)宏塊的編碼方式;步驟2、根據(jù)編碼類型選擇宏塊類型解碼方式,如果為游程編碼,則執(zhí)行步驟3;如果編碼類型為跳過(guò)宏塊數(shù)與宏塊類型聯(lián)合編碼,則執(zhí)行步驟4;步驟3、采用游程解碼方式,解碼當(dāng)前圖像當(dāng)前宏塊的宏塊類型,執(zhí)行步驟5;步驟4、采用跳過(guò)宏塊數(shù)與宏塊類型聯(lián)合的解碼方式,解碼當(dāng)前圖像當(dāng)前宏塊的宏塊類型,并執(zhí)行步驟5;步驟5、按照對(duì)應(yīng)的宏塊類型,對(duì)當(dāng)前圖像的宏塊進(jìn)行宏塊自身數(shù)據(jù)的解碼;步驟6、判斷當(dāng)前宏塊是否為當(dāng)前圖像最后一個(gè)編碼宏塊,是則結(jié)束,否則重新執(zhí)行步驟2。
2.根據(jù)權(quán)利要求1所述的視頻圖像跳過(guò)宏塊的解碼方法,其特征在于所述步驟3具體為步驟301、從碼流中解析當(dāng)前宏塊的跳過(guò)宏塊計(jì)數(shù)值,該值大于或者等于0;步驟302、判斷所述跳過(guò)宏塊計(jì)數(shù)值,大于0時(shí),執(zhí)行步驟303;否則執(zhí)行步驟304;步驟303、從當(dāng)前宏塊起,連續(xù)解碼標(biāo)識(shí)所述跳過(guò)宏塊計(jì)數(shù)值個(gè)宏塊為跳過(guò)宏塊,并執(zhí)行步驟5;步驟304、解碼標(biāo)識(shí)當(dāng)前宏塊為非跳過(guò)宏塊,并執(zhí)行步驟5。
3.根據(jù)權(quán)利要求1所述的視頻圖像的跳過(guò)宏塊解碼方法,其特征在于所述的步驟4具體為步驟401、從碼流中解析當(dāng)前宏塊的類型值;步驟402、查找宏塊類型表,所述類型值對(duì)應(yīng)跳過(guò)宏塊的,執(zhí)行步驟403,否則執(zhí)行步驟404;步驟403、解碼標(biāo)識(shí)當(dāng)前宏塊為跳過(guò)宏塊,并執(zhí)行步驟5;步驟404、解碼標(biāo)識(shí)當(dāng)前宏塊為非跳過(guò)宏塊,并執(zhí)行步驟5。
4.根據(jù)權(quán)利要求1所述的視頻圖像的跳過(guò)宏塊解碼方法,其特征在于所述的步驟4具體為步驟411、解析當(dāng)前圖像是P圖像或者B圖像,為P圖像時(shí),執(zhí)行步驟412;為B圖像時(shí),執(zhí)行步驟413;步驟412、查找宏塊類型表,所述類型值對(duì)應(yīng)跳過(guò)宏塊的,解碼標(biāo)識(shí)當(dāng)前宏塊為跳過(guò)宏塊;否則解碼標(biāo)識(shí)當(dāng)前宏塊為非跳過(guò)宏塊,并執(zhí)行步驟5;步驟413、查找宏塊類型表,所述類型值對(duì)應(yīng)直接模式的,則執(zhí)行步驟414;否則解碼標(biāo)識(shí)當(dāng)前宏塊為非跳過(guò)宏塊,并執(zhí)行步驟5;步驟414、繼續(xù)解析當(dāng)前宏塊的塊編碼模板值,如果為0,解碼標(biāo)識(shí)當(dāng)前宏塊為跳過(guò)宏塊;否則解碼標(biāo)識(shí)當(dāng)前宏塊為非跳過(guò)宏塊,并執(zhí)行步驟5。
5.根據(jù)權(quán)利要求1-4任一所述的視頻圖像的跳過(guò)宏塊解碼方法,其特征在于所述的跳過(guò)宏塊解碼方法既可以適用于幀解碼,也可以適用于場(chǎng)解碼。
全文摘要
本發(fā)明提出了一種視頻編碼中跳過(guò)宏塊的解碼方法,從碼流中讀取當(dāng)前圖像跳過(guò)宏塊的編碼標(biāo)志,并根據(jù)所述編碼標(biāo)志判斷當(dāng)前圖像跳過(guò)宏塊的編碼類型;根據(jù)編碼類型選擇宏塊類型解碼方式,采用游程解碼方式或者跳過(guò)宏塊數(shù)與宏塊類型聯(lián)合的解碼方式,解碼當(dāng)前圖像當(dāng)前宏塊的宏塊類型,并對(duì)當(dāng)前圖像的宏塊進(jìn)行宏塊自身數(shù)據(jù)的解碼;判斷當(dāng)前宏塊是否為當(dāng)前圖像最后一個(gè)編碼宏塊,是則結(jié)束,否則繼續(xù)執(zhí)行解碼。本發(fā)明通過(guò)適應(yīng)性地選擇視頻圖像跳過(guò)宏塊的編碼方式及相應(yīng)解碼方式,提高了圖像編碼的效率,減少了傳輸及存儲(chǔ)的代價(jià),是一種簡(jiǎn)單、實(shí)用的技術(shù)方案,本發(fā)明在幀解碼或場(chǎng)解碼中都可有效實(shí)施。
文檔編號(hào)H04N7/50GK101056409SQ200710097499
公開(kāi)日2007年10月17日 申請(qǐng)日期2003年12月31日 優(yōu)先權(quán)日2003年12月31日
發(fā)明者高文, 鄭俊浩, 馬思偉, 季向陽(yáng), 張鵬, 呂巖 申請(qǐng)人:中國(guó)科學(xué)院計(jì)算技術(shù)研究所