專利名稱::用于可伸縮視頻編碼的簡化的層間運動預測的制作方法
技術(shù)領域:
:本發(fā)明涉及可伸縮視頻編碼(SVC),具體而言,涉及用于由ISO/IECMPEG以及ITU-TVCEG聯(lián)合視頻小組(JVT)制定的SVC標準的層間
背景技術(shù):
:現(xiàn)有技術(shù)中的可伸縮分級編碼方法支持以分級的方式對信息進行編碼,從而以不同的分辨率和/或質(zhì)量等級對可伸縮分級編碼方法進行解碼。因此,由可伸縮編碼設備生成的數(shù)據(jù)流被劃分為若干層,即基本層以及一個或更多的增強層。這些設備可以使唯一的數(shù)據(jù)流能夠適應可變的傳輸條件(帶寬、誤差率……)以及接收設備(CPU、再現(xiàn)設備的特征……)的能力。一種空間可伸縮分級編碼(或解碼)方法對與低分辨率圖像相關的被稱為基本層的第一部分數(shù)據(jù)進行編碼(或解碼),并根據(jù)該基本層對至少另一個與高分辨率圖像有關的被稱為增強層的數(shù)據(jù)部分進行編碼。與增強層有關的編碼信息有可能是利用一種被稱為層間繼承法(inter-layerinheritingmethod)的方法從與基本層有關的編碼信息繼承而來(即推導得出)的。所述推導得出的編碼信息可能包括與高分辨率圖像的像素塊相關的劃分模式(用于將所述塊劃分為若干子塊)、與所述塊相關的編碼模式、可能的運動矢量、以及一個或更多的圖像參考索引,所述圖像參考索引與一些能夠參考用于預測所述塊的圖像的塊相關。參考圖像是序列中的圖像,用于預測序列中的另一圖像。因此,如果沒有在數(shù)據(jù)流中明確地進行編碼,則必須根據(jù)與低分辨率圖像有關的編碼信息來推導與增強層有關的編碼信息(更具體地說,是宏塊和子宏塊類型)。現(xiàn)有技術(shù)中用于推導編碼信息的方法可用于高分辨率圖像,高分辨率圖像的格式無法通過二丄Reichel、H.Schwarz、M.Wien的題為"JointScalableVideoModelJSVM-5:JointDraft5withproposedchanges"的文獻中描述了一禾中最新方法(以下表示為JSVM5),該方法提出了一種基于一些復雜(就文字描述而言)過程的直接層間運動預測方法。
發(fā)明內(nèi)容本發(fā)明的目的在于,大大簡化該層間運動預測過程及其描述。具體而言,本發(fā)明涉及一種過程,用于確定所述宏塊在劃分中的劃分,并可能用于確定所述劃分在子劃分中的劃分。本發(fā)明的另一目的在于,根據(jù)權(quán)利要求1,利用層間預測,推導給定高層宏塊的宏塊類型以及子宏塊類型。通過以非限制性示例給出的并根據(jù)附圖作出的以下描述,本發(fā)明的其他特征以及優(yōu)勢將變得更加顯而易見,附圖中圖1是低空間圖像和高空間圖像之間的幾何關系,圖2是宏塊劃分、子劃分、宏塊類型和子宏塊類型的推導過程的概要視圖,圖3示出了可能的劃分以及子劃分索引,圖4是4x4塊整理過程的概要視圖,圖5是8x8塊整理的概要視圖,圖6是宏塊劃分以及mbType的推導過程的概要視圖;以及圖7是子劃分以及subMbType的推導過程的概要視圖。具體實施例方式以下,考慮兩個空間層,與低分辨率圖像相對應的低層(被稱為基本層),以及與高分辨率圖像相對應的高層(被稱為增強層)。如圖1所示,增強層圖像(即高分辨率圖像)的寬度和高度分別由We和He予以限定。基本層圖像(即低分辨率圖像)的尺寸由Wb和Hb予以限定。低分辨率圖像可以是位于增強層圖像坐標系中坐標(X。rig,Y。rig)位置的、尺寸為Ws和Hs的增強層圖像的子圖像的下采樣版本。低分辨率和高分辨率圖像可由不同的攝像機來提供。在這種情況下,低分辨率圖像不是通過對高分辨率圖像進行下采樣而獲得的,并且?guī)缀螀?shù)可由外部裝置(例如由攝像機本身)來提供。與縮放后的基本層相對應的窗口被稱為剪裁窗。低分辨率圖像的宏塊與高分辨率圖像的宏塊相對應,如果把沿兩個方向以層間比(inter-layerratio)進行上采樣得到的低分辨率圖像同高分辨率圖像重疊,則相應宏塊至少部分覆蓋高分辨率圖像的所述宏塊。在增強層圖像的邊界上,宏塊可能既沒有基本層的相應宏塊,也可能只被縮放后的基本層宏塊部分地覆蓋。對于給定的采用了層間預測的高層宏塊,劃分、可能的子劃分、宏塊類型以及子宏塊類型的推導過程是基于使用被稱為partlnfo[x][y](其中x-0至3,y:0至3)的4x4整數(shù)數(shù)組。所述過程是按以下步驟執(zhí)行的-在步驟20中,推導partlnfo數(shù)組的值,-在步驟22中,可能對partlnfo數(shù)組進行整理,-在步驟24中,確定劃分和可能的子劃分;以及-在步驟26中,推導宏塊類型和子宏塊類型。以下將詳細說明圖2所示的上述連續(xù)步驟。推導oartlnfo的倌(步驟20)令(xM,yM)表示高層參考中所述高層宏塊的左上角像素的位置(其中,原點位于高層圖像的左上角)。根據(jù)本發(fā)明,該過程包括為所述高層宏塊中的每個4x4塊(x,y)(x=0至3,y=0至3)識別位于基本層圖像中的相應宏塊mbBase,即識別其地址mbAddrBase的步驟。為此,令(Xin=4*x,Yin=4*y)為該過程的輸入像素位置,該過程將推導出包括像素(Xin,丫in)的基本層中的相應像素在內(nèi)的相應基本層宏塊的地址、所述基本層宏塊的基本層劃分索引以及所述劃分的基本層子劃分索引。令(xP,yP)為所述高層宏塊的4x4塊的所謂參考像素,其定義如下oxP=Xin+doyP=Yin+d其中d是設置在區(qū)間內(nèi)的預定義參數(shù)。在優(yōu)選實現(xiàn)方式中,將d設置為1。因此,可以按下式計算基本層中的相應位置(xB,yB):〇xB=((xP+xM-Xorig)*Wb+Ws/2)/WsoyB=((yP+yM-Yorig)*Hb+Hs/2)/Hs包含像素(xB,yB)的基本層宏塊mbBase的地址mbAddrBase可以根據(jù)下式來確定ombAddrBase=(yB/16)*(Wb/16)+(xB/16)如果所述基本層宏塊mbBase不存在(例如像素(xB,yB)位于基本層圖像界限以外),則將mbAddrBase標記為不可用。禁止對高層宏塊進行層間預測,并終止過程。該過程包括識別相應4x4塊mbBase的劃分(mbPartldxBase)和子劃分(subMbPartldxBase)的步驟。劃分(mbPartldxBase)和子劃分(subMbPartldxBase)可以按如下方式確定mbPartldxBase被設置為包含像素(xB,yB)的劃分的索引。subMbPartldxBase可按以下方式導出o如果以8x8方式來劃分mbBase(被分成4個8x8塊),則將subMbPartldxBase設置為包含像素(xB,yB)在內(nèi)的mbBase的劃分mbPartldxBase的子劃分的索引。o否則,將subMbPartldxBase設置為0。上述基本宏塊、劃分以及子劃分的推導過程將位置(Xin-4、丫ir^々y)作為輸入,以推導出與所述4x4塊相對應的基本宏塊地址mbAddrBase、基本層劃分的索引mbPartldxBase、以及子劃分的索引subMbPartldxBase。圖3給出了根據(jù)JSVM5的圖6-9中所定義的宏塊劃分的可能的劃分和子劃分索引。例如,宏塊劃分可以涉及16*16的亮度采樣及相關色度采樣的宏塊的劃分以及8*8的亮度采樣及相關色度采樣的子宏塊的劃分。該過程包括推導partlnfo[x][y]的步驟。partlnfo[x][y]可以按如下方式計算如果地址為mbAddrBase的基本宏塊是INTRA編碼的■partInfo[x][y]=-l(即,將其標記為繼承自基本宏塊內(nèi)),可以用-1以外的負值來標識該塊繼承自基本宏塊內(nèi)。o否貝ij■partlnfo[x][y]=16*mbAddrBase+4*mbPartldxBase+subMbPartldxBase。該公式的定義使得唯一的(mbAddrBase,mbPartldxBase,subMbPartldxBase)集合產(chǎn)生唯一的partlnfo值。根據(jù)partinfo[x][y],可以將mbAddrBase,mbPartldxBaseandsubMbPartldxBase唯一地表示為mbAddrBase=partinfo[x][y]/16mbPartldxBase-(partinfo[x][y]%16)/4subMbPartldxBase=(partinfo[x][y]%16)%4整理oartlnfo數(shù)組(步驟22)然后應用以下過程來管理某些4x4塊繼承自基本宏塊內(nèi)而其他4x4塊繼承自基本宏塊間的配置。該過程通過將等于-1的任意元素partlnfo[x[y]替換為其相鄰元素之一的方式來整理partlnfo數(shù)組。該整理過程首先應用于每個8x8塊中的4x4塊。然后,如有必要,再整理8x8塊。以下是該過程的具體描述。對于每個8x8塊(X,Y),XW至1,丫=0至1,執(zhí)行以下過程整理4x4塊圖4示出了該過程的概要。如果給定4x4塊的partlnfo值等于-1,則用屬于同一8x8塊的與其相鄰4x4塊之一的partlnfo值(在該值不等于-1的情況下)替換所述給定4x4塊的partlnfo值。按以下順序?qū)ο噜?x4塊進行掃描1.水平鄰塊、2.垂直鄰塊、3.對角鄰塊。該過程游偽/f媽表示-在—,罷f40^,對每個4Y4炎a>yJ>,;r^7至2,y-0至J,教療以7過程。一,/7菜p^tZ/7尸(^2/7等f《y教療以7"過私f刁游/f況7;厲〖復翁>大^鄰貧,-一否#義在,墨fW^7,在/^/tZ/7尸o,2+/7不箏f-2游獰況?;復劍垂直鄰炎一#/《麥46^7,,/7^^//7&/"2*火+J-A^/"2*K+J-/y不等f-j游/#況t;復劍對為鄰炎..整理8x8塊圖5示出了該過程的概要。對于給定的8x8塊,如果其第一4x4塊的partlnfo值等于-1,則用屬于同一高層宏塊的相鄰8x8塊的4個4x4塊的partlnfo值替換所述給定8x8塊的4個4x4塊的partlnfo值。僅當所考慮的相鄰8x8塊的第一4x4塊具有不等于-1的partlnfo值時,才執(zhí)行上述替換。相鄰8x8塊是按以下順序進行掃描的1.水平鄰塊、2.垂直鄰塊、3.對角鄰塊。遂雜麟順表示-^^,羞f50^,^z每個&s炎rxy人乂=0至^,v^o至仫^療以-驟52爐'*菜paAf/nfof2*X#2*v7箏f-L廁教療以T過程。-*菜parf/n/b/"2*M-X」#2*>7^w-Lz就復劍舒鄰炎.'—對f每f4x4炎6(,yJ,乂=0至億y-O至L教療以y過私—^W義^",差f54玄pa/f/〃/b/"2*乂7/"2*f7-YJ/不箏f-7游淳況T^復激垂直鄰炎,-對每個4x4炎,x=o^W,y-0至7,^療議yi^薦。"一"_/-齊抓趙綴560,在一/n/b/"2*"-;O#2*"-YJJ不箏f-:/游/f況K復劍對扇鄰炎.--對每個^化>0,x=0至Ly=0至7,教療"7過程。"7,2*"-"7推導劃分、子劃分、宏塊類型(mbTv。e)和子宏塊類型(subMbTvpe)該過程推導高層宏塊類型mbType,并在高層宏塊被劃分為4個8x8塊的情況下,根據(jù)partlnfo數(shù)組以及基本層宏塊類型(也稱為編碼模式),推導索引為blkldx的每個8x8塊的子宏塊類型subMbType[blkldx]??捎没緦訑?shù)據(jù)每個基本層宏塊被認為包含為其每個8x8塊指示其所使用的預測列表的可用信息。該信息是作為二維數(shù)組usedPredList[mbAddr][blkldx]存儲的,其中第一維對應于宏塊地址mbAddr,第二維對應于宏塊內(nèi)的8x8塊的索引blkldx(取值范圍在0和3之間)。如果地址為mbAddr的宏塊中的索引為blkldx的8x8塊-只使用預測列表LO,則usedPredUst[mbAddr][blkldx]=1。-只使用預測列表Ll,則usedPredList[mbAddr〗[blkldx]=2。-使用預測列表LO和Ll,則usedPredList[mbAddr][blkldx]=3。正如JSVM5中所規(guī)定的那樣,宏塊類型被定義為表1中的值。類似地,如JSVM5中所規(guī)定的那樣,子宏塊類型被定義為表1中的值。<table>tableseeoriginaldocumentpage11</column></row><table>*partPredModeO=usePredList[partlnfo/16][((partlnfo%16)/4)]。o否則,如果上部8個partlnfo值相等,且下部8個partlnfo值相等,■在步驟66中,將劃分partSize設置為16x8■在步驟68中,推導上部16x8劃分的預測列表信息partPredModeO=usePredList[partlnfo/16][((partlnfo[0〗%16)/4)]?!鲈诓襟E68中,推導下部16x8劃分的預測列表信息*partPredModel=usePredList[partlnfo[3][3]/16][((partlnfo[3][3]0/。16)/4)]。o否則,如果8個左側(cè)partlnfo值相等且8個右側(cè)partlnfo值相等,■在步驟70中,將劃分partSize設置為8x16翻在步驟72中,推導左側(cè)8xl6劃分的預測列表信息partPredModeO=usePredList[partlnfo/16][((partlnfo%16)/4)]?!鲈诓襟E72中,推導右側(cè)8xl6劃分的預測列表信息partPredModel=usePredList[partlnfo[3][3〗/16〗[((partlnfo[3][3]。/。16)/4)]。o否則,■在步驟74中,將劃分partSize設置為8x8最后,在步驟76中,利用表2,根據(jù)劃分partSize、推導出的預測列表信息partPredModeO和partPredModel、以及包含所考慮的高層宏塊在內(nèi)的片(slice)的類型slice—type,來推導mbType。<table>tableseeoriginaldocumentpage13</column></row><table>表2:推導宏塊類型mbType('na'表示不可用)該過程游偽/f媽表示-德/73/t勵仰/W箏f丄麟/776,e體為/一化。-義溈療以尸i^薦。/r準導游游好f量。廁教/f議7過程A/7a/t/M/"。,0〃W#rps/t/W〃7—《,,*菜ps/t/"/b/";r,//;r-a,義等f箏fp^t//7/b/^,2,^/教療以7過程。/>抓她/。,0〃W#⑨/t她/"0,07%J"〃72"/^勿〃^^r岸脅/"j,j〃"#rj/一#廁,*菜pa/t/z7&A;r,箏fy^/tZ/7,o/""。,i/^/t/"/7尸o/";r,/7f真^乂=2,i/=UJ箏f/^/t/Z7/b/"2,0,廁教/f以H^薦pa/t5/5e=加(50〃M#⑨函,o/"0,07%J"/奪/p抓片ecMcW=〃5^/^//^廣/9"丄胞^/t/"尸W〃"J⑨/t她/"J,J"〃7-艦獰一敘沒,歸。-浪薪sZ/ce—妙e、p抓5/:e、/a齢ecto/eO以iyra齢ecto/eL資表2,艦郝微導/77/7",。貌薪s,/ce」ype、partS/ze、parfP廠e譜octe0、以Jpa"P廠e掘ocfet録2顏定娜微導m/Type。子劃分的確定以及subMbTvpes的推導如果mbType等于P—8x8或B—8x8,則按以下方式確定每個8x8塊的子宏塊類型。圖7示出了該過程的概要。對于每個8x8塊(x0,y0),其中x0,y0=0,..,1,根據(jù)對partlnfo值的分析來確定子劃分。在步驟80中,推導預測列表信息〇partPredMode=usedPredictionLists[partlnfo[x0,y0]/16][(partlnfo[x0,y0]%16)/4]。在步驟82中,如果所考慮的8x8塊的4個partlnfo值相等,則將子劃分subPartSize設置為8x8否則,如果所考慮的8x8塊的上部2個partlnfo值相等,且所考慮的8x8塊的下部2個partlnfo值相等,則在步驟84中將子劃分subPartSize設置為8x4否則,如果所考慮的8x8塊的左側(cè)2個partlnfo值相等,且所考慮的8x8塊的右側(cè)2個partlnfo值相等,則在步驟86中將子劃分subPartSize設置為4x8否則,在步驟88中,將子劃分subPartSize設置為4x4最后,在步驟90中,利用表3,根據(jù)子劃分subPartSize、推導出的預測列表信息partPredMode、以及包含所考慮的高層宏塊在內(nèi)的片的類型<table>tableseeoriginaldocumentpage15</column></row><table>表3:推導子宏塊類型subMbType('na'表示不可用)遂過程游^/e碼表示J/77ZA^tTo^-H當/r^7y/e#T/L&5或好,搜*T^方式來拔導每,;^為1游s"Z7M/7ype。-^W、/。//7/^/^/"^//^^/矢為犮以7^方式遂療豫導游游量/"/7a/t勵/^,yOy/MJ⑨/t勵A;rt7,W%-爭5W/^/tS^e7方式遂療難導游游好變量。/wf她Aj/。廁搭s"Z腺5/:e體力。-否#1如菜pa/t/A7/b/";^,W7箏f/^"7/7廣0/>0+力,衛(wèi)p^fJ//b/";^,+J了箏fyra/tZ>7/b/"乂0+;+_/,廁游^/胸/t免e體力份4。-#廁,勿菜/^/t//^,;^,7箏f/ra/t/z7尸o/";r"/。J7,衛(wèi)s"力艦5/》e設,-齊抓獰^/Z組5fee沒,。-淑K妙e、si/Z組5"/:e、p,廣eoto/e'翁表J尿歡定鄉(xiāng)微維導s^A^7ype/"/77Z7/^/t/";r_/。權(quán)利要求1.一種用于為使用層間預測的高層宏塊確定所述宏塊在劃分中的劃分的方法,所述方法是可伸縮視頻編碼或解碼方法的一部分,其特征在于,所述方法包括以下步驟將所述高層宏塊分為預定義大小的不重疊的高層塊;針對每個高層塊中的被稱為參考像素的一個像素,確定相應的基本層像素;針對每個參考像素,識別所述相應基本層像素所屬的基本層宏塊、所述識別出的基本層宏塊中所述相應基本層像素所屬的基本層劃分,并在所述識別出的基本層劃分中存在所述相應基本層像素所屬的基本層子劃分的情況下,識別所述子劃分;針對每個所述高層塊,按如下方式推導被稱為PartInfo值的單一值如果所述識別出的基本層宏塊是INTRA編碼的,則將PartInfo值設置為預定義的負值;以及否則,根據(jù)識別出的基本層宏塊、識別出的基本層劃分、以及在子劃分存在的情況下識別出的基本層子劃分,計算所述PartInfo值;以及通過在宏塊劃分間比較與每個所述高層塊相關的所述PartInfo值,來確定所述高層宏塊在宏塊劃分中的劃分。2.根據(jù)權(quán)利要求1所述的方法,其中,所述基本層宏塊是通過其在圖像中的地址mbAddrBase來識別的,所述基本層劃分是通過索引mbPartldxBase在所述基本層宏塊中來識別的,所述基本層子劃分是通過索引subMbPartldxBase在所述基本層劃分中來識別的。3.根據(jù)權(quán)利要求2所述的方法,其中,所述Partlnfo值是根據(jù)以下公式來計算的16*mbAddrBase+4*mbPartldxBase+subMbPartldxBase。4.根據(jù)權(quán)利要求1至3中任意一項所述的方法,其中,所述方法還包括以下步驟在推導Partlnfo值的步驟之后,在不等于所述預定義負值且與所述給定高層塊相鄰的高層塊之一相關的Partlnfo值存在的情況下,將與給定高層塊相關且等于所述預定義負值的每個Partlnfo值設置為不等于所述預定義負值且與所述給定高層塊相鄰的高層塊之一相關的Partlnfo值。5.根據(jù)權(quán)利要求1至4中任意一項所述的方法,其中,所述高層宏塊的大小為16乘16像素,并且其中所述高層塊的大小為4乘4像素。6.根據(jù)權(quán)利要求5所述的方法,其中如果與各高層塊相關的Partlnfo值均等于相同的值,則將所述高層宏塊劃分為寬16像素高16像素的劃分;如果與所述高層宏塊上部分的8個高層塊相關的Partlnfo值均等于相同的第一值,并且與所述高層宏塊下部分的8個高層塊相關的Partlnfo值均等于與所述第一值不同的相同第二值,則將所述高層宏塊劃分為寬16像素高8像素的劃分;如果與所述高層宏塊左側(cè)部分的8個高層塊相關的Partlnfo值均等于相同的第三值,并且與所述高層宏塊右側(cè)部分的8個高層塊相關的Partlnfo值均等于與所述第三值不同的相同第四值,則將所述高層宏塊劃分為寬8像素高16像素的劃分;否則,將所述高層宏塊劃分為4個寬8像素高8像素的劃分。7.根據(jù)權(quán)利要求6所述的方法,其中,如果所述高層宏塊被劃分為4個寬8像素高8像素的劃分,則所述方法還包括以下步驟針對所述高層宏塊的每個劃分,通過在子劃分間比較與屬于所述劃分的每個所述高層塊相關的所述Partlnfo值,來確定子劃分的劃分。8.根據(jù)權(quán)利要求1至7中任意一項所述的方法,其中,所述參考像素是所述高層塊左上角的像素。全文摘要本發(fā)明涉及一種用于為使用層間預測的高層宏塊確定所述宏塊在劃分中的劃分的方法。所述方法包括以下步驟將所述高層宏塊分為預定義大小的不重疊的高層塊;針對每個高層塊中的被稱為參考像素的一個像素,確定相應的基本層像素;針對每個參考像素,識別所述相應基本層像素所屬的基本層宏塊、所述識別出的基本層宏塊中所述相應基本層像素所屬的基本層劃分,并在所述識別出的基本層劃分中存在所述相應基本層像素所屬的基本層子劃分的情況下,識別所述子劃分;針對每個所述高層塊,推導被稱為PartInfo值的單一值;以及通過在宏塊劃分間比較與每個所述高層塊相關的所述PartInfo值,來確定所述高層宏塊在宏塊劃分中的劃分。文檔編號H04N7/26GK101438596SQ200780016203公開日2009年5月20日申請日期2007年4月26日優(yōu)先權(quán)日2006年5月5日發(fā)明者克里斯托夫·舍旺斯,文森特·博特羅,熱羅姆·維耶龍,愛德華·弗朗索瓦申請人:湯姆森許可貿(mào)易公司