專利名稱:視頻圖像運動信息獲取方法、裝置及設備、模板構造方法
技術領域:
本發(fā)明涉及視頻技術,尤其涉及一種視頻圖像編解碼過程中視頻圖像運動信息的獲取方法、裝置及設備、以及一種應用在視頻圖像編解碼過程中的模板構造方法。
背景技術:
隨著視頻編碼技術的不斷發(fā)展,幀間的運動搜索和補償技術能夠有效地去除視頻內容的時間冗余,編碼效率得到了很大程度的提高;通過運動估計得到運動信息并把它傳遞給解碼端,由解碼端通過運動補償?shù)姆椒▽σ曨l圖像進行預測重建。然而由于運動補償后預測殘差在碼流中所占的比重的大幅度下降,同時運動矢量信息在碼流中的比重不斷上升,如何有效地壓縮運動信息成為進一步提升視頻壓縮效率的關鍵。現(xiàn)有技術中有一種減少視頻圖像編解碼過程中運動信息在碼流中比重的獲取運 動信息的方法通過模板匹配來獲取運動矢量;具體地,以當前塊是B幀中的宏塊為例,如圖I所示,首先在當前塊的周圍用重建值構造一個模板TM,然后在該塊的前向參考幀(Ref ListO)和后向參考幀(Ref Listl)中用與模板TM形狀相同的模板進行搜索匹配得到運動矢量MVO和MVl作為當前塊的運動矢量,同時得到當前塊的預測值,對其進行預測殘差編碼。在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術中至少存在如下問題在獲取運動信息時引入的預測誤差較大,使得視頻圖像編碼的效率低。
發(fā)明內容
本發(fā)明的實施例還提供一種應用在視頻編解碼過程中的模板構造方法,包括在當前塊的部分周邊塊的重建值未知的情況下,根據(jù)所述重建值未知的周邊塊對應的已經(jīng)解析的運動信息在對應參考幀中獲得所述周邊塊的預測值,然后利用所述預測值和所述當前塊周邊已知的重建值構造模板。本發(fā)明實施例提供的視頻圖像運動信息的獲取方法及裝置,通過改變確定參考塊的方法來改進視頻圖像中運動信息的獲取過程,可以提高視頻圖像的編解碼效率。本發(fā)明實施例提供的模板構造方法,能夠在當前塊為劃分塊時利用周邊塊對應的預測值來代替所述周邊塊的未知重建值,進而完成當前塊的模板構建。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I為現(xiàn)有技術中通過模板匹配獲取運動矢量的方法示意圖;圖2為本發(fā)明實施例一中的方法流程圖3為本發(fā)明實施例一中的裝置示意圖;圖4為本發(fā)明實施例二中的方法流程圖;圖5為本發(fā)明實施例二中的參考幀結構示意圖一;圖6為本發(fā)明實施例二中的參考幀結構示意圖二 ;圖7為本發(fā)明實施例三中的方法流程圖;圖8為本發(fā)明實施例三中的參考幀結構示意圖一;圖9為本發(fā)明實施例三中的參考幀結構示意圖二 ;
圖10為本發(fā)明實施例四中的裝置示意圖;圖11為本發(fā)明實施例五中的方法流程圖;圖12為本發(fā)明實施例五中的裝置示意圖;圖13為本發(fā)明實施例六中的方法流程圖;圖14為本發(fā)明實施例六中的參考幀結構示意圖;圖15為本發(fā)明實施例七中的方法流程圖;圖16為本發(fā)明實施例八中的裝置示意圖;圖17為本發(fā)明實施例九中的電子設備的示意圖;圖18為本發(fā)明實施例十中的B幀示意圖;圖19為本發(fā)明實施例三中宏塊劃分下的模板解碼示意圖;圖20為本發(fā)明實施例三中8X8宏塊劃分下的模板解碼示意圖。
具體實施例方式下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。實施例一如圖2所示,本實施例提供的獲取視頻圖像運動信息的方法,包括以下步驟201、根據(jù)與當前塊相關的已知運動信息確定所述當前塊在第一參考幀中對應的至少一個備選第一參考塊。在本實施例中,所述與當前塊相關的已知運動信息可以是與當前塊在時間上或者空間上相關的已編碼塊或者已解碼塊的運動矢量;具體地,從與當前塊相關的編碼塊/解碼塊的運動矢量中選擇其全部或者部分組成一個備選運動矢量集,然后根據(jù)每個備選運動矢量在第一參考巾貞中對應地確定一個備選第一參考塊,從而得到一組備選第一參考塊。202、在第二參考幀中確定與每個所述備選第一參考塊分別對應的至少一個備選
第二參考塊。根據(jù)備選第一參考塊與當前塊的位置關系,確定每個備選第一參考塊到當前塊的運動矢量,并結合所述運動矢量在第二參考幀中確定與每個備選第一參考塊分別對應的備選第二參考塊;例如,在本實施例中可以通過對稱性搜索來確定各個備選第一參考塊在所述第二參考幀中對應的備選第二參考塊,也就是說,對稱性搜索后,所述備選第一參考塊與其對應的搜索到的備選第二參考塊以當前塊為中心等比例對稱。203、計算每個備選第一參考塊與其相對應的備選第二參考塊之間的誤差和。所述誤差和,可以是絕對誤差和(SAD)、絕對轉換誤差和(sum of absolutetransformation differences)、或者絕對平方差和,當然還可以是其它一些可以用于描述兩個參考塊之間相似性的參數(shù);在本實施例中以及以下各個實施例中,均以絕對誤差和為例對本發(fā)明提供的方案進行闡述。204、選取最小SAD所對應的備選第一參考塊和備選第二參考塊作為當前塊的第一參考塊和第二參考塊,根據(jù)所述第一參考塊和第二參考塊確定的運動矢量得到所述當前塊的運動信息。為了更好地實現(xiàn)上述獲取視頻圖像運動信息的方法,本實施例還提供了一種獲取視頻圖像運動信息的裝置,如圖3所示,包括第一確定單元301、第二確定單元302、計算單元303以及選取單元304 ;其中, 第一確定單元301根據(jù)與當前塊相關的已知運動信息確定所述當前塊在第一參考幀中對應的至少一個備選第一參考塊;然后,由第二確定單元302通過對稱性搜索在第二參考巾貞中確定與所述至少一個備選第一參考塊分別對應的至少一個備選第二參考塊;之后,計算單元303計算出每個所述備選第一參考塊與其相對應的備選第二參考塊之間的誤差和;最后,選取單元304選取誤差和最小的備選第一參考塊和備選第二參考塊作為所述當前塊的第一參考塊和第二參考塊,根據(jù)所述第一參考塊和第二參考塊確定的運動矢量得到所述當前塊的運動信息。本發(fā)明實施例提供的方法可以根據(jù)實際需要對各個步驟順序進行調整。本實施例提供的獲取視頻圖像運動信息的方法及裝置,改變了在確定參考塊過程中確定參考塊的策略,可以在保證編碼性能基本不變的情況下降低參考塊確定過程實現(xiàn)的復雜度,從而改進了視頻圖像中運動信息的獲取過程,提高了視頻圖像的編解碼效率。實施例二 以按B幀編碼為例,如圖4所示,本實施例提供的獲取視頻圖像運動信息的方法,具體包括以下步驟401、利用當前塊周圍已編碼的塊的運動矢量組成一個備選運動矢量集,其中包括與當前塊相關的編碼塊的運動矢量中的部分或者全部。所述當前塊可以是完整的宏塊,也可以是宏塊的劃分塊,在這里以完整的宏塊為例;所述備選運動矢量集中可以包括與當前塊(Curr_blk)在空間上相關的周邊塊的運動矢量MVL、MVU、MVR和MEAN(MVL、MVU、MVR),前向參考幀fn_i中相同位置塊中的運動矢量(如圖5中的col_MVl、col_MV2、col_MV3、col_MV4)以及相同位置塊的周邊塊的運動
矢量(如圖5中的MV1、MV2.....MV12),后向參考幀fn+1中相同位置塊中的運動矢量(如
圖5中的col_MVl'、col_MV2'、col_MV3'、col_MV4')以及相同位置塊的周邊塊的運動
矢量(如圖5中的MVli ,MV2/ .....MV12')中的全部或者其中一部分,即包括當前塊的
左邊塊,上邊塊,左上塊,右上塊,在參考幀中和當前塊相同位置的塊的左邊塊,上邊塊,左上塊,右上塊或其中的一部分,以及在參考幀中和當前塊相同位置的塊。
402、選擇所述備選運動矢量集中的一個運動矢量,根據(jù)該運動矢量在第一參考幀(在本實施例中,以當前幀的前向參考幀I1為第一參考幀)中找到一個備選第一參考塊
blkllo403、根據(jù)所述備選第一參考塊blkll與當前塊的位置關系,得到備選第一參考塊blkll到當前塊的運動矢量;結合該運動矢量在第二參考幀(在本實施例中,以當前幀的后向參考幀fn+1為第二參考幀)中確定與備選第一參考塊blkll對應的備選第二參考塊blk21。404、計算出備選第一參考塊blkll與備選第二參考塊blk21之間的絕對誤差和SAD I。在執(zhí)行完步驟404之后,在所述備選運動矢量集中未選擇的運動矢量中重新選擇一個運動矢量,重復執(zhí)行步驟402至404 ;若所述備選運動矢量集中共有P個運動矢 量,則上述步驟需要重復操作P-I次,從而依次確定備選第一參考塊blkl2、blkl3、...以及與之分別對應的備選第二參考塊blk22、blk23、...,并且得到每兩個對應的備選參考塊之間的絕對誤差和SAD2、SAD3、...。405、選取上述絕對誤差和SADI、SAD2、SAD3、...中最小的SAD所對應的備選第一參考塊和備選第二參考塊作為當前塊的第一參考塊和第二參考塊,則根據(jù)所述第一參考塊和第二參考塊確定的運動矢量(U,V)即為當前塊的運動矢量。406、根據(jù)所述當前塊的運動矢量計算當前塊的預測值。如果前向預測幀L和后向預測幀fn+1到當前幀fn的距離相等,則可以利用公式
(I)來計算得到當前塊的預測值
IIII/ (X, V) = {/ _! (x-—u,y-—v) + / τ1 (x +—u,y +—v)}/2(I)如果前向預測幀L和后向預測幀fn+1到當前幀fn的距離不相等,則可以利用公式(2)來計算得到當前塊的預測值
fn (U) = {d2* , (X- V - ^1 V) + d\ * (X+ /2 J +V)}/(dl + d 2)
dl + d2 dl + d2 dl + d2 dl + d2
(2)其中,dl為前向預測幀L到當前幀fn的距離,d2為后向預測幀fn+1到當前幀fn的距離。如果此時處于視頻圖像的編碼階段,則執(zhí)行步驟407 ;如果此時處于視頻圖像的解碼階段,則執(zhí)行步驟408。407、計算所述當前塊的預測值和真實值之間的差值,進行視頻圖像的預測殘差編碼。408、從接收到的碼流中解碼出圖像塊的預測值和真實值之間的差值,當前塊所對應的差值與步驟406中得到的預測值相加后得到的和,即為當前塊解碼后的真實值。在本實施例中,以上各步驟的編號并不用于限定各個步驟之間的執(zhí)行順序,本發(fā)明實施例提供的方法可以根據(jù)實際需要對各個步驟順序進行調整。此外,為了使解碼端能夠得到更為準確的運動信息,在本實施例中編碼端還可以根據(jù)獲取到的運動信息求得其與真實運動信息之間的差值,并將運動信息的差值發(fā)送給解碼端;而且,當前塊的預測值也是根據(jù)所述真實運動信息計算得到的,即求得步驟405獲取到的根據(jù)所述第一參考塊和第二參考塊確定的運動矢量(U,V)和當前塊通過運動搜索得到的真實運動矢量之間的矢量差,將所述運動矢量誤差發(fā)送給解碼端。這樣,解碼端在接收到編碼端提供的數(shù)據(jù)后,首先根據(jù)所述運動信息的差值恢復出真實運動信息,并根據(jù)該真實運動信息計算出當前塊的預測值并進一步對當前塊進行重建。如果本實施例中的當前塊是宏塊的部分劃分塊,如圖6所示,則在確定備選運動矢量集時就不能再考慮和當前塊的Neighborhood_blk(即和當前塊相鄰的、且和當前塊屬于同一宏塊或子塊的圖像塊)相關的運動矢量,這樣才能避免當前塊因受到Neighborhood_blk的影響而出現(xiàn)錯誤預測;從圖6中可以看到,此時的備選運動矢量集包括與當前塊在空間上相關的周邊塊的運動矢量MVLU、MVU、MVR,前向參考幀中的運動矢量(col_MVl、col_MV2、MVl、MV2、. . .、MV7),后向參考幀 fn+1 中的運動矢量(col_MVl'、col_MV2/、MV1'、MV2'、…、MV7')中的全部或者其中一部分。
本實施例提供的獲取視頻圖像運動信息的方法,改變了在確定參考塊過程中確定參考塊的策略,可以在保證編碼/解碼性能基本不變的情況下降低參考塊確定過程實現(xiàn)的復雜度,從而改進了視頻圖像中運動信息的獲取過程,提高了視頻圖像的編解碼效率。實施例三為了進一步提高編解碼性能,可以將模板比較的方法引入到實施例二所描述的方法中;以按B幀編碼為例,如圖7所示,本實施例提供的獲取視頻圖像運動信息的方法,具體包括以下步驟701、在當前幀fn中當前塊(Curr_blk)的周圍利用重建值構造一個模板TM1。702、利用當前塊周邊已編碼的塊的運動矢量組成一個備選運動矢量集,其中包括與當前塊相關的編碼塊的運動矢量中的部分或者全部。所述當前塊可以是完整的宏塊,也可以是宏塊的劃分塊,在本實施例中仍然以完整的宏塊為例。703、選擇所述備選運動矢量集中的一個運動矢量,根據(jù)該運動矢量在第一參考幀(在本實施例中,以當前幀的前向參考幀I1為第一參考幀)中找到一個備選第一參考塊blkll,并在備選第一參考塊blklI的周圍利用重建值構建模板TM21,如圖8所示。704、根據(jù)所述備選第一參考塊blkll與當前塊的位置關系,得到備選第一參考塊blkll到當前塊的運動矢量;結合該運動矢量在第二參考幀(在本實施例中,以當前幀的后向參考幀fn+1為第二參考幀)中確定與備選第一參考塊blkll對應的備選第二參考塊blk21。705、計算出備選第一參考塊blkll與備選第二參考塊blk21之間的絕對誤差和SADl,以及模板TMl和模板TM21之間的絕對誤差和SADl丨。在執(zhí)行完步驟705之后,在所述備選運動矢量集中未選擇的運動矢量中重新選擇一個運動矢量,重復執(zhí)行步驟703至705 ;若所述備選運動矢量集中共有P個運動矢量,則上述步驟需要重復操作P-I次,從而依次確定備選第一參考塊blkl2、blkl3以及與之分別對應的備選第二參考塊blk22、blk23、...和模板TM22、TM23、...,并且得到每兩個對應的備選參考塊之間的絕對誤差和SAD2、SAD3、...,以及模板TMl和模板TM22、TM23、...之間的絕對誤差和SAD2'、SAD3'、...。706、計算 SAD X 和 SAD X'的加權和SUMx = (a*SAD x+b*SAD x'),其中 x 為從I到P的自然數(shù),SAD X和SAD X'的權重a和b分別表示參考塊相似度和模板相似度對編碼性能的影響程度。例如,權重a和b的具體數(shù)值只要滿足a和b的比值等于當前塊的面積和模板TMl的面積的比值就可以了。707、選取上述加權和SUMx中最小的加權和所對應的備選第一參考塊和備選第二參考塊作為當前塊的第一參考塊和第二參考塊,則由所述第一參考塊和第二參考塊確定的 運動矢量(U,V)即為當前塊的運動矢量。708、根據(jù)所述當前塊的運動矢量計算當前塊的預測值。如果前向預測幀L和后向預測幀fn+1到當前幀fn的距離相等,則利用公式(I)來計算得到當前塊的預測值
權利要求
1.一種模板構造方法,其特征在于,應用在視頻編解碼過程中,包括 當前宏塊劃分塊的周邊塊處在當前宏塊中而重建值未知的情況下,根據(jù)所述重建值未知的周邊塊對應的已知的運動信息在對應參考幀中獲得所述周邊塊的預測值; 利用所述預測值和 所述當前塊周邊已知的重建值構造所述當前宏塊劃分塊的模板。
2.根據(jù)權利要求I所述的方法,其特征在于,還包括 利用所述當前宏塊劃分塊的模板在所述當前宏塊劃分塊的參考幀中找到當前宏塊劃分塊的模板的匹配參考模板,采用所述匹配參考模板得到當前宏塊劃分塊的運動信息。
3.一種獲取視頻圖像運動信息的方法,其特征在于, 利用已解碼得到的當前宏塊劃分塊的相鄰宏塊劃分塊的運動信息,在參考幀中得到預測塊,根據(jù)所述預測塊以及所述當前宏塊劃分塊周圍的已知重建信息得到當前宏塊劃分塊的模板; 利用所述當前宏塊劃分塊的模板在所述當前宏塊劃分塊的參考幀中找到當前宏塊劃分塊的模板的匹配參考模板,采用所述匹配參考模板得到當前宏塊劃分塊的運動信息。
4.根據(jù)權利要求3所述的獲取視頻圖像運動信息的方法,其特征在于,所述根據(jù)所述預測快得到當前宏塊劃分塊的模板包括 采用預測塊中與當前宏塊劃分塊的第一部分模板對應位置的預測值作為所述宏塊劃分塊的第一部分模板的值; 根據(jù)所述當前宏塊劃分塊周圍已知的重建值得到當前宏塊劃分塊的第二部分模板的值; 采用所述第一部分模板的值和所述第二部分模板的值得到當前宏塊劃分塊的模板。
5.根據(jù)權利要求3所述的獲取視頻圖像運動信息的方法,其特征在于,所述方法還包括 采用所述匹配參考模板對應的參考塊補償當前宏塊劃分塊的殘差數(shù)據(jù),重建當前宏塊劃分塊;或者, 采用所述匹配參考模板對應的參考塊預測當前宏塊劃分塊得到殘差數(shù)據(jù)用于解碼端重建當前宏塊劃分塊。
全文摘要
本發(fā)明實施例公開了一種視頻圖像運動信息的獲取方法、裝置及設備。所述方法包括根據(jù)與當前塊相關的已知運動信息確定當前塊在第一參考幀中對應的至少一個備選第一參考塊;在第二參考幀中確定與所述至少一個備選第一參考塊分別對應的至少一個備選第二參考塊;計算每個備選第一參考塊與其相對應的備選第二參考塊之間的誤差和;選取誤差和最小的備選第一參考塊和備選第二參考塊作為當前塊的第一參考塊和第二參考塊,根據(jù)所述第一參考塊和第二參考塊確定的運動信息得到當前塊的運動信息。本發(fā)明實施例還提供了一種模板構造方法。本發(fā)明實施例提供的方法、裝置及設備,可以提高視頻圖像的編解碼效率。
文檔編號H04N7/26GK102883160SQ20121034138
公開日2013年1月16日 申請日期2010年4月9日 優(yōu)先權日2009年6月26日
發(fā)明者林四新, 楊名遠 申請人:華為技術有限公司