一種Do-NBDV獲取方法及視頻解碼裝置制造方法
【專利摘要】本發明提供了一種Do-NBDV獲取方法及視頻解碼裝置,涉及視頻處理領域,可以降低Do-NBDV的計算復雜度,提高編碼效率,所述方法包括:確定參考視圖;獲取NBDV值和參考視圖的序號值,根據所述序號值獲得參考視圖對應的深度圖信息;根據序號值獲得參考視圖的CU地址和PU分割方式;根據NBDV值、CU地址和PU分割方式計算獲得第一PU塊的位置信息;在第一PU塊中確定M個像素點,根據所述深度圖信息獲得所述M個像素點的深度值;將所述M個像素點中深度值最大的像素點的映射值作為第一預測運動矢量的水平分量,并根據其計算獲得第一Do-NBDV的水平分量,所述M等于2或3。
【專利說明】 —種Do-NBDV獲取方法及視頻解碼裝置
【技術領域】
[0001]本發明涉及視頻處理領域,尤其涉及一種Do-NBDV (Depth-oriented NeighboringBlock Disparity Vector,深度基于相鄰塊視差矢量)獲取方法及視頻解碼裝置。
【背景技術】
[0002]由于在同一時刻不同視點的圖像可能有著相似的圖像內容,在進行視頻編碼中,還需要進行視間預測,以進一步消除不同視點圖像間的信息冗余。視差矢量代表了同一時刻不同視點圖像間對應相似宏塊的矢量關系,視間矢量的準確性直接影響視頻編解碼效率。
[0003]視差矢量可以通過Do-NBDV獲取,其中傳統Do-NBDV計算過程冗余。另外現有的Do-NBDV計算流程也會影響計算精度,進而影響編碼效率。
【發明內容】
[0004]本發明的實施例提供一種Do-NBDV獲取方法及視頻解碼裝置,可以降低Do-NBDV的計算復雜度,提高編碼效率。
[0005]為達到上述目的,本發明的實施例采用如下技術方案:
[0006]第一方面,公開了一種Do-NBDV獲取方法,所述方法包括:
[0007]確定參考視圖;
[0008]獲取基于相鄰塊視差矢量NBDV值和所述參考視圖的序號值,根據所述參考視圖的序號值獲得所述參考視圖對應的深度圖信息;
[0009]根據所述參考視圖的序號值獲得所述參考視圖的編解碼單元CU地址和預測單元PU分割方式,所述⑶地址為編碼⑶地址或解碼⑶地址;
[0010]根據所述NBDV值、所述⑶地址和所述分割方式計算獲得第一 PU塊的位置信息;
[0011]在所述第一 塊中確定M個像素點,根據所述參考視圖對應的深度圖信息獲得所述M個像素點的深度值;
[0012]將所述M個像素點中深度值最大的像素點的映射值作為第一預測運動矢量的水平分量,根據所述第一預測運動矢量的水平分量計算獲得第一深度基于相鄰塊視差矢量Do-NBDV的水平分量,所述第一 Do-NBDV的豎直分量為所述NBDV的豎直分量;所述M等于2或3。
[0013]結合第一方面,在第一種可能的實現方式中,在所述確定參考視圖之前,所述方法還包括:
[0014]對視頻基本視圖進行編碼并執行視差矢量計算;
[0015]或者,對所述視頻基本視圖進行解碼并執行視差矢量計算。
[0016]結合第一方面,在第二種可能的實現方式中,在計算獲得第一 Do-NBDV的水平分量之后,所述方法還包括:[0017]根據所述第一 Do-NBDV、所述⑶地址和所述分割方式計算獲得第二 PU塊的位
置信息;
[0018]在所述第二 塊中確定N個像素點,根據所述參考視圖對應的深度圖信息獲得所述N個像素點的深度值;
[0019]將所述N個像素點中深度值最大的像素點的映射值作為第二預測運動矢量的水平分量,根據所述第二預測運動矢量的水平分量計算獲得第二 Do-NBDV的水平分量,所述第二 Do-NBDV的豎直分量為所述NBDV的豎直分量;所述N等于2或3。
[0020]結合第一方面,在第三種可能的實現方式中,所述在所述第一 塊中確定M個像素點,將所述M個像素點中深度值最大的像素點的映射值作為第一預測運動矢量的水平分量,根據所述第一預測運動矢量的水平分量計算獲得第一 Do-NBDV的水平分量,包括:
[0021]在所述第一 PU塊中確定左下及右下2個像素點,并獲取所述左下及右下2個像素點的深度值;
[0022]將深度值較大的像素點的映射值作為第一預測運動矢量的水平分量;
[0023]根據所述第一預測運動矢量的水平分量計算獲得第一 Do-NBDV的水平分量。
[0024]或者,在所述第一 I3U塊中確定右上、左下及右下3個像素點,并獲取所述右上、左下及右下3個像素點的深度值;
[0025]將深度值最大的像素點的映射值作為第一預測運動矢量的水平分量;
[0026]根據所述第一預測運動矢量的水平分量計算獲得第一 Do-NBDV的水平分量。
[0027]結合第一方面,在第四種可能的實現方式中,所述獲取NBDV值和所述參考視圖的序號值,包括:
[0028]獲取所述參考視圖的編碼單兀CU塊的時域相鄰塊的移動矢量MV值和序號值;
[0029]將所述時域相鄰塊的MV值作為所述NBDV值,將所述時域相鄰塊的序號值作為所述參考視圖的序號值。
[0030]結合第一方面,在第五種可能的實現方式中,所述獲取NBDV值和所述參考視圖的序號值,包括:
[0031]獲取所述參考視圖的CU塊的空域相鄰塊的MV值和序號值;
[0032]將所述空域相鄰塊的MV值作為所述NBDV值,將所述空域相鄰塊的序號值作為所述參考視圖的序號值。
[0033]結合第一方面,在第六種可能的實現方式中,所述獲取NBDV值和所述參考視圖的序號值,包括:
[0034]檢測所述參考視圖是否存在運動預測補償塊;
[0035]若存在,則獲取所述運動預測補償塊的MV值和序號值;
[0036]將所述運動預測補償塊的MV值作為所述NBDV,將所述運動預測補償塊的序號值作為所述參考視圖的序號值。
[0037]結合第一方面,在第七種可能的實現方式中,所述獲取NBDV值和所述參考視圖的序號值,包括:
[0038]將所述NBDV預設為O向量;
[0039]獲取所述參考視圖的CU塊的視間參考幀的序號值,并將所述視間參考幀的序號值作為所述參考視圖的序號值。[0040]第二方面,一種視頻處理器,包括:
[0041]確定單元,用于確定參考視圖;
[0042]獲取單元,用于獲取基于相鄰塊視差矢量NBDV值和所述參考視圖的序號值,并根據所述參考視圖的序號值獲得所述參考視圖對應的深度圖信息;
[0043]所述獲取單元還用于,根據所述參考視圖的序號值獲得所述參考視圖的編解碼單元⑶地址和預測單元分割方式,所述⑶地址為編碼⑶地址或解碼⑶地址;
[0044]計算單元,用于根據所述獲取單元獲得的所述NBDV值、所述⑶地址和所述分割方式計算獲得第一 PU塊的位置信息;
[0045]所述確定單元還用于,在所述計算單元計算獲得的所述第一 塊中確定M個像素點,所述M等于2或3 ;
[0046]所述獲取單元還用于,根據所述參考視圖對應的深度圖信息獲得所述M個像素點的深度值;
[0047]比較單元,用于比較所述確定單元確定的所述M個像素點的深度值,獲得深度值最大的像素點;
[0048]所述獲取單元還用于,獲得所述深度值最大的像素點的映射值;
[0049]所述計算單元還用于,將所述深度值最大的像素點的映射值作為第一預測運動矢量的水平分量,根據所述第一預測運動矢量的水平分量計算獲得第一 Do-NBDV的的水平分量,所述第一 Do-NBDV的豎直分量為所述NBDV的豎直分量。。
[0050]結合第二方面,在第一種可能的實現方式中,還包括編碼單元和解碼單元,
[0051]所述編碼單元,用于在所述確定單元確定參考視圖之前,對視頻基本視圖進行編碼并執行視差矢量計算;
[0052]所述解碼單元,用于在所述確定單元確定參考視圖之前,對所述視頻基本視圖進行解碼并執行視差矢量計算。
[0053]結合第二方面,在第二種可能的實現方式中,所述計算單元還用于,根據所述第一Do-NBDV、所述⑶地址和所述I3U分割方式計算獲得第二 PU塊的位置信息;
[0054]所述確定單元還用于,在所述計算單元計算獲得的所述第二 塊中確定N個像素點,所述N等于2或3 ;
[0055]所述獲取單元還用于,根據所述參考視圖對應的深度圖信息獲得所述N個像素點的深度值;
[0056]比較單元,用于比較所述確定單元確定的所述N個像素點的深度值,獲得深度值最大的像素點;
[0057]所述獲取單元還用于,獲得所述N個像素點中深度值最大的像素點的映射值;
[0058]所述計算單元還用于,將所述深度值最大的像素點的映射值作為第二預測運動矢量的水平分量,根據所述第二預測運動矢量的水平分量計算獲得第二 Do-NBDV的水平分量,所述第二 Do-NBDV的豎直分量為所述NBDV的豎直分量。
[0059]結合第二方面,在第三種可能的實現方式中,所述確定單元具體用于,在所述第一PU塊中確定左下及右下2個像素點;
[0060]所述確定單元具體用于,在所述第一 PU塊中確定右上、左下及右下3個像素點。
[0061]結合第二方面,在第四種可能的實現方式中,所述獲取單元具體用于,獲取所述參考視圖的編碼單元CU塊的時域相鄰塊的移動矢量MV值和序號值;將所述時域相鄰塊的MV值作為所述NBDV值,將所述時域相鄰塊的序號值作為所述參考視圖的序號值。
[0062]結合第二方面,在第五種可能的實現方式中,所述獲取單元具體用于,獲取所述參考視圖的CU塊的空域相鄰塊的MV值和序號值;將所述空域相鄰塊的MV值作為所述NBDV值,將所述空域相鄰塊的序號值作為所述參考視圖的序號值。
[0063]結合第二方面,在第六種可能的實現方式中,還包括檢測單元,
[0064]所述檢測單元用于,檢測所述參考視圖是否存在運動預測補償塊;
[0065]所述獲取單元具體用于,在所述檢測單元檢測到所述參考視圖存在運動預測補償塊之后,獲取所述運動預測補償塊的MV值和序號值;將所述運動預測補償塊的MV值作為所述NBDV,將所述運動預測補償塊的序號值作為所述參考視圖的序號值。
[0066]結合第二方面,在第七種可能的實現方式中,還包括設置單元,
[0067]所述設置單元用于,將所述NBDV預設為O向量;
[0068]所述獲取單元具體用于,獲取所述參考視圖的CU塊的視間參考幀的序號值,并將所述視間參考幀的序號值作為所述參考視圖的序號值。
[0069]本發明實施例提供的Do-NBDV獲取方法及視頻解碼裝置,在計算Do-NBDV過程中利用較少的像素點信息計算獲得Do-NBDV值,并將獲得的Do-NBDV值作為輸入重新計算獲得更準確的Do-NBDV值,與有技術中計算Do-NBDV過程冗余且Do-NBDV值精度不高相比,本發明提供的方法及裝置,降低了計算復雜度,提高了 Do-NBDV值的精度,提高了編碼效率。
【專利附圖】
【附圖說明】
[0070]圖1為本發明實施例1提供的Do-NBDV獲取方法的流程示意圖;
[0071]圖2為本發明實施例2提供的Do-NBDV獲取方法的流程示意圖;
[0072]圖3為本發明實施例2提供的另一種Do-NBDV獲取方法的流程示意圖;
[0073]圖4為本發明實施例2提供的采用2像素點計算Do-NBDV的流程示意圖;
[0074]圖5為本發明實施例3提供的視頻解碼裝置的結構框圖;
[0075]圖6為本發明實施例4提供的視頻處理器的結構框圖。
【具體實施方式】
[0076]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0077]當前基于塊的視頻編解碼混合框架通常包括預測模塊、變換模塊、量化模塊和編解碼模塊;其中預測模塊通過編碼獲得視頻序列編碼圖像的圖像塊的預測塊信息,進而得到圖像塊殘差,預測補償模塊通過解碼獲得當前解碼圖像塊的預測塊信息,再根據所述圖像塊殘差獲得當前解碼圖像塊。通常,預測模塊包含幀內預測和幀間預測,其中,幀間預測技術利用當前圖像鄰近的已編碼或已解碼圖像像素信息去除當前圖像塊的冗余信息以獲得殘差。由于在同一時刻不同視點的圖像可能有著相似的圖像內容,在幀間預測時采用視間預測可以進一步消除不同視點圖像間的信息冗余。視差矢量可以表示同一時刻不同視點圖像間對應相似宏塊的矢量關系。在視間預測編碼過程中,視差矢量作為視間運動矢量確定不同視點間的對應宏塊位置。而對應宏塊間的相似程度決定了編碼的冗余程度,因此視間矢量的準確與否直接影響了視間預測編碼性能,合理的視差矢量計算方法能有效提高視頻編解碼效率。
[0078]實施例1:
[0079]本發明提供了一種Do-NBDV獲取方法,如圖1所示,所述方法包括以下步驟:
[0080]101、確定參考視圖。
[0081]在這之前,需要對視頻基本視圖進行編碼,或者對視頻基本點解碼。在對一幀圖像中的一個視點完成編碼(或解碼)后,對第二個視點及之后的視點進行編碼(或解碼)時,才需要計算視差矢量。視差矢量可以通過Do-NBDV計算獲得,因此進行視頻編碼(或解碼)時,可以首先計算獲得Do-NBDV值,在根據所述Do-NBDV值計算獲得視差矢量。
[0082]這里,與所述基本視圖有相同圖像內容的視點不止一個,在確定參考視圖時,判斷所選視點的⑶(Coding Unit,編碼單元)塊對應的序號值與基本視圖的圖像序列號是否一致,若一致,則確定該視點為參考視圖;或者,判斷所選視點的CU塊的參考幀視點的序號值與基本視圖的序號值是否一致,若一致,則確定該視點為參考視圖。
[0083]102、獲取基于相鄰塊視差矢量NBDV值和所述參考視圖的序號值,根據所述參考視圖的序號值獲得所述參考視圖對應的深度圖信息。
[0084]在計算所述Do-NBDV時需要計算NBDV值,并可將NBDV用在其對應的視間預測編解碼、虛擬視點預測及殘差預測上。目前,3D視頻采用了多視圖加深度的方式進行編解碼,在進行多視圖編碼的過程中,給每個視圖分配了一個id值以區分各視圖。本發明所述的參考視圖的序號值就是上述id值。另外,深度圖信息包含了某深度圖中所攜帶的所有信息,主要有:圖的大小、該深度圖中各像素點的深度值、運動矢量、該深度圖的參考幀的信息等。
[0085]這里所述NBDV值和所述參考視圖的序號值可以是根據所述參考視圖的CU塊的時域相鄰塊信息計算獲得,可以是根據所述參考視圖的CU塊的空域相鄰塊信息計算獲得,也可以是根據所述參考視圖的運動預測補償塊信息計算獲得,或者是將所述NBDV值預設為O向量,將參考視圖的CU塊的視間參考幀的序號值作為所述參考視圖的序號值。需要說明的是,每個視圖會對應有多個參考幀,本發明實施例中,所述的參考幀是預先在參考視圖的多個參考幀中確定的一個,因此可以通過獲取確定的這個參考幀的序號值來獲取所述參考視圖的序號值。
[0086]這樣,就可以根據所述參考視圖的序號值獲得所述參考視圖對應的深度圖信息,以便計算獲得所述Do-NBDV。
[0087]103、根據所述參考視圖的序號值獲得所述參考視圖的⑶地址和預測單元PU分割方式,所述⑶地址為編碼⑶地址或解碼⑶地址。
[0088]其中。在進行編碼時需要編碼⑶地址,在解碼時需要解碼⑶地址。在這之前,就會記錄參考視圖的序號值與所述參考視圖的CU塊地址、采用的PU分割方式之間的對應關系,因此,根據所述參考視圖的序號值就可以獲得所述參考視圖的編碼單元CU地址和預測單兀PU分割方式。
[0089]104、根據所述NBDV值、所述⑶地址和所述I3U分割方式計算獲得第一 PU塊的位
置信息。[0090]根據當前的⑶地址即可以得到對應⑶±夾,進而就可以獲得該⑶塊左上角的像素點的坐標值,然后結合所述NBDV進行映射即可以得到位置信息。
[0091]105、在所述第一 PU塊中確定M個像素點,根據所述參考視圖對應的深度圖信息獲得所述M個像素點的深度值。
[0092]106、將所述M個像素點中深度值最大的像素點的映射值作為第一預測運動矢量的水平分量,根據所述第一預測運動矢量的水平分量計算獲得第一 Do-NBDV的水平分量,所述M等于2或3。
[0093]像素點的映射值是在視頻編解碼開始初始化的時候已經根據攝像頭位置所寫入各像素點的視差參數值。因此,根據某個像素點就可以相應獲得其對應的的映射值。另外,本發明提供的方法修正了 Do-NBDV的水平分量,所述Do-NBDV的豎直分量不予改變,仍為之前獲取的NBDV的豎直分量。
[0094]這里,在所述第一 PU塊中確定左下及右下2個像素點,并獲取所述左下及右下2個像素點的深度值;將深度值較大的像素點的映射值作為第一預測運動矢量的水平分量;根據所述第一預測運動矢量的水平分量計算獲得第一 Do-NBDV的水平分量。需要說明的是,在PU塊的一角可以獲得一個像素點,因此在左下及右下可以相應獲取兩個像素點。
[0095]或者,在所述第一 I3U塊中確定右上、左下及右下3個像素點,并獲取所述右上、左下及右下3個像素點的深度值;將深度值最大的像素點的映射值作為第一預測運動矢量的水平分量;根據所述第一預測運動矢量的水平分量計算獲得第一 Do-NBDV的水平分量。
[0096]另外,在步驟104之后,還可以根據所述第一 Do-NBDV、所述⑶地址和所述PU分割方式計算獲得第二 PU塊的位置信息。
[0097]在所述第二 PU塊中確定N個像素點,所述N等于2或3,將所述N個像素點中深度值最大的像素點的映射值作為第二預測運動矢量的水平分量,根據所述第二預測運動矢量的水平分量計算獲得第二 Do-NBDV的水平分量。第二 Do-NBDV的豎直分量仍為所述NBDV的豎直分量。這樣獲得的Do-NBDV值精度更高,進一步采用所述Do-NBDV進行編碼可以提高編碼效率。
[0098]本發明實施例提供的Do-NBDV獲取方法,在計算Do-NBDV過程中利用較少的像素點信息計算獲得Do-NBDV值,并將獲得的Do-NBDV值作為輸入重新計算獲得更準確的Do-NBDV值,與有技術中計算Do-NBDV過程冗余且Do-NBDV值精度不高相比,本發明提供的方法及裝置,降低了計算復雜度,提高了 Do-NBDV值的精度,提高了編碼效率。
[0099]實施例2:
[0100]本發明提供了一種Do-NBDV獲取方法,如圖2所示,所述方法包括以下步驟:
[0101]201、對視頻基本視點進行編碼,執行視差矢量計算并確定參考視圖。
[0102]通常情況下,在對一幀圖像中的一個視點完成編碼后,對第二個視點及之后的視點進行編碼時,才需要計算視差矢量。這是因為,視差矢量指的是同一時刻不同視點的圖像間對應相似宏塊的矢量關系。視差矢量可以通過Do-NBDV計算獲得,因此進行視頻編碼時,可以首先計算獲得Do-NBDV值,在根據所述Do-NBDV值計算獲得視差矢量。
[0103]這里,與所述基本視圖有相同圖像內容的視圖不止一個,在確定參考視圖時,判斷所選視圖的CU塊對應的序號值與基本視圖的圖像序列號是否一致,若一致,則確定該視點為參考視圖;或者,判斷所選視點的CU塊的參考幀視圖的序號值與基本視圖的序號值是否一致,若一致,則確定該視圖為參考視圖。
[0104]當然,視差矢量可以通過NBDV計算獲得,在此只考慮通過Do-NBDV計算獲得的情況。
[0105]202、獲取NBDV值、所述參考視圖的序號值,根據所述參考視圖的序號值獲得所述參考視圖對應的深度圖信息。
[0106]一般情況下,可以獲取所述參考視圖的編碼單元CU塊的時域相鄰塊的移動矢量MV值和參考視圖的序號值。將所述時域相鄰塊的MV值作為所述NBDV值,將所述時域相鄰塊的參考視圖的序號值作為所述參考視圖的序號值。
[0107]或者,獲取所述參考視圖的CU塊的空域相鄰塊的MV值和參考視圖的序號值。將所述空域相鄰塊的MV值作為所述NBDV值,將所述空域相鄰塊的參考視圖的序號值作為所述參考視圖的序號值。
[0108]若所述參考視圖的CU塊的時域相鄰塊和空域相鄰塊均不可用,則檢測所述參考視圖是否存在運動預測補償塊。如果所述參考視圖存在運動預測補償塊,則獲取所述運動預測補償塊的MV值和參考視圖的序號值。將所述運動預測補償塊的MV值作為所述NBDV,將所述運動預測補償塊的參考視圖的序號值作為所述參考視圖的序號值。
[0109]若無法獲取所述運動預測補償塊的MV值,則將所述NBDV預設為O向量。獲取所述參考視圖的CU塊的視間參考巾貞的參考視圖的序號值,并將所述視間參考巾貞的參考視圖的序號值作為所述參考視圖的序號值。
[0110]203、根據所述參考視圖的序號值獲得所述參考視圖的CU地址和預測單元PU分割方式。
[0111]這里,所述⑶地址為編碼⑶地址。在進行編碼時需要編碼⑶地址,在解碼時也需要解碼⑶地址。
[0112]204、根據所述NBDV值、所述⑶地址和所述分割方式計算獲得第一預測單元塊的位置信息。
[0113]這里,采用預設算法,根據所述NBDV值、所述⑶地址和所述分割方式計算獲得第一預測單元PU塊的位置信息。對預設算法不做限制。在獲得PU塊的位置信息后,就可以在所述位置信息對應的PU塊上選中像素點,進而計算獲得Do-NBDV值。
[0114]205、在所述第一 PU塊中確定M個像素點,根據所述參考視圖對應的深度圖信息獲得所述M個像素點的深度值,將所述M個像素點中深度值最大的像素點的映射值作為第一預測運動矢量的水平分量,根據所述第一預測運動矢量的水平分量計算獲得第一 Do-NBDV的水平分量。
[0115]其中,所述M等于2或3。若所述M等于2,則在所述第一 塊中確定左下及右下2個像素點,并獲取所述左下及右下2個像素點的深度值。通過比較可以獲得這2個像素點中深度值較大的像素點,進而計算獲得的該像素點的映射值,該像素點的映射值作為第一預測運動矢量的水平分量,根據所述第一預測運動矢量的水平分量計算獲得第一 Do-NBDV的水平分量。示例的,視頻編碼過程中對視點I (已對視點O編碼)進行編碼,假設視差矢量計算過程中可執行Do-NBDV計算。如圖4所示,若獲得的NBDV為(176,112)。根據NBDV計算得到對應的PU塊,并在所述PU塊上確定左下及右下2個像素點。獲取這2點像素點的深度值并取較大的深度值,根據所述較大的深度值對應到右下的像素點。獲取右下像素點對應的映射值183,并作為183預測運動矢量的水平分量,經過clip操作后獲得Do-NBDV的水平分量,另外Do-NBDV的豎直分量仍為所述NBDV的豎直分量。
[0116]若所述M等于3,則在所述第一 塊中確定右上、左下及右下3個像素點,并獲取所述右上、左下及右下3個像素點的深度值。并計算這三個像素點的深度值,進而獲得深度值最大的像素點。將所述深度值最大的像素點的映射值作為第一預測運動矢量的水平分量,根據所述第一預測運動矢量的水平分量計算獲得第一 Do-NBDV的水平分量。
[0117]206、根據所述第一 Do-NBDV、所述⑶地址和所述I3U分割方式計算獲得第二 PU塊的位置信息。
[0118]這里,根據所述第一 Do-NBDV、所述⑶地址和所述分割方式計算獲得一個更精確的I3U塊的位置信息,就可以繼續計算獲得更精確的Do-NBDV。
[0119]視頻編碼過程中對視點I (已對視點O編碼)進行編碼,設視差矢量計算過程中可執行Do-NBDV計算。示例的,若獲得的NBDV為(176,112)。根據NBDV、參考視圖的序號值和參考視圖的對應深度圖信息初次計算后得到Do-NBDV為(184,112),將(184,112)作為輸入NBDV值再進行一次計算,并將得到精度更高的(186,112)作為Do-NBDV的最終結果。
[0120]207、在所述第二PU塊中確定N個像素點,根據所述參考視圖對應的深度圖信息獲得所述N個像素點的深度值,將所述N個像素點中深度值最大的像素點的映射值作為第二預測運動矢量的水平分量,根據所述第二預測運動矢量的水平分量計算獲得第二 Do-NBDV的水平分量。
[0121]這里,所述N等于2或3。所述N的取值不受M的影響。當所述M取2時,所述N可以取2或3,所述M取3時,所述N可以取2或3。
[0122]當所述N等于2時,在所述第二 塊中確定左下及右下2個像素點,并獲取所述左下及右下2個像素點的深度值。將深度值較大的像素點的映射值作為第二預測運動矢量的水平分量。根據所述第二預測運動矢量的水平分量計算獲得第二 Do-NBDV的水平分量。
[0123]或者,當所述N等于3時,在所述第二 塊中確定右上、左下及右下3個像素點,并獲取所述右上、左下及右下3個像素點的深度值。將深度值最大的像素點的映射值作為第二預測運動矢量的水平分量。根據所述第二預測運動矢量的水平分量計算獲得第二Do-NBDV的水平分量。
[0124]本發明還提供了一種Do-NBDV獲取方法,如圖3所示,所述方法包括以下步驟:
[0125]301、對視頻基本視點進行解碼,執行視差矢量計算并確定參考視圖。
[0126]通常情況下,在對一幀圖像中的一個視點完成解碼后,對第二個視點及之后的視點進行解碼時,才需要計算視差矢量。這是因為,視差矢量指的是同一時刻不同視點的圖像間對應相似宏塊的矢量關系。視差矢量可以通過Do-NBDV計算獲得,因此進行視頻解碼時,可以首先計算獲得Do-NBDV值,在根據所述Do-NBDV值計算獲得視差矢量。
[0127]302、獲取NBDV值、所述參考視圖的序號值,根據所述參考視圖的序號值獲得所述參考視圖對應的深度圖信息。
[0128]303、根據所述參考視圖的序號值獲得所述參考視圖的CU地址和預測單元PU分割方式。
[0129]304、根據所述NBDV值、所述⑶地址和所述分割方式計算獲得第一預測單元I3U塊的位置信息。[0130]305、在所述第一 PU塊中確定M個像素點,根據所述參考視圖對應的深度圖信息獲得所述M個像素點的深度值,將所述M個像素點中深度值最大的像素點的映射值作為第一預測運動矢量的水平分量,根據所述第一預測運動矢量的水平分量計算獲得第一 Do-NBDV的水平分量。
[0131]306、根據所述第一 Do-NBDV、所述⑶地址和所述I3U分割方式計算獲得第二 PU塊
的位置信息。
[0132]這里,所述⑶地址為解碼⑶地址。
[0133]307、在所述第二PU塊中確定N個像素點,根據所述參考視圖對應的深度圖信息獲得所述N個像素點的深度值,將所述N個像素點中深度值最大的像素點的映射值作為第二預測運動矢量的水平分量,根據所述第二預測運動矢量的水平分量計算獲得第二 Do-NBDV的水平分量。
[0134]本發明實施例提供的Do-NBDV獲取方法及視頻解碼裝置,在計算Do-NBDV過程中利用較少的像素點信息計算獲得Do-NBDV值,并將獲得的Do-NBDV值作為輸入重新計算獲得更準確的Do-NBDV值,與有技術中計算Do-NBDV過程冗余且Do-NBDV值精度不高相比,本發明提供的方法及裝置,降低了計算復雜度,提高了 Do-NBDV值的精度,提高了編碼效率。
[0135]實施例3:
[0136]本發明提供了一種視頻解碼裝置,如圖5所示,所述視頻處理器包括:確定單元501、獲取單元502、計算單元503和比較單元504。
[0137]確定單元501,用于確定參考視圖。
[0138]獲取單元502,用于獲取基于相鄰塊視差矢量NBDV值和所述參考視圖的序號值,并根據所述參考視圖的序號值獲得所述參考視圖對應的深度圖信息。
[0139]所述獲取單元502還用于,根據所述參考視圖的序號值獲得所述參考視圖的編碼單元⑶地址和預測單元分割方式。
[0140]計算單元503,用于根據所述獲取單元502獲得的所述NBDV值、所述⑶地址和所述PU分割方式計算獲得第一 PU塊的位置信息。
[0141]所述確定單元501還用于,在所述計算單元503計算獲得的所述第一 PU塊中確定M個像素點,所述M等于2或3。
[0142]所述獲取單元502還用于,根據所述參考視圖對應的深度圖信息獲得所述M個像素點的深度值和映射值。
[0143]比較單元504,用于比較所述確定單元501確定的所述M個像素點的深度值,獲得深度值最大的像素點。
[0144]所述獲取單元502還用于,獲得所述深度值最大的像素點的映射值。
[0145]所述計算單元503還用于,將所述深度值最大的像素點的映射值作為第一預測運動矢量的水平分量,根據所述第一預測運動矢量的水平分量計算獲得第一 Do-NBDV的水平分量,所述第一 Do-NBDV的豎直分量為所述NBDV的豎直分量。
[0146]所述視頻處理器還包括編碼單元和解碼單元,
[0147]所述編碼單元,用于在所述確定單元501確定參考視圖之前,對視頻基本視圖進行編碼并執行視差矢量計算。
[0148]所述解碼單元,用于在所述確定單元501確定參考視圖之前,對視頻基本視圖進行解碼并執行視差矢量計算。
[0149]所述計算單元503還用于,根據所述第一 Do-NBDV、所述⑶地址和所述I3U分割方式計算獲得第二 PU塊的位置信息。
[0150]所述確定單元501還用于,在所述計算單元503計算獲得的所述第二 塊中確定N個像素點,所述N等于2或3。
[0151]所述獲取單元503還用于,根據所述參考視圖對應的深度圖信息獲得所述N個像素點的深度值和映射值。
[0152]比較單元504,用于比較所述確定單元501確定的所述N個像素點的深度值,獲得深度值最大的像素點。
[0153]所述計算單元503還用于,將所述深度值最大的像素點的映射值作為第二預測運動矢量的水平分量,根據所述第二預測運動矢量的水平分量計算獲得第二 Do-NBDV的水平分量,所述第一 Do-NBDV的豎直分量為所述NBDV的豎直分量。
[0154]所述確定單元501具體用于,在所述第一 PU塊中確定左下及右下2個像素點。
[0155]所述確定單元501具體用于,在所述第一 PU塊中確定右上、左下及右下3個像素點。
[0156]所述獲取單元502具體用于,獲取所述參考視圖的編碼單元CU塊的時域相鄰塊的移動矢量MV值和序號值。將所述時域相鄰塊的MV值作為所述NBDV值,將所述時域相鄰塊的序號值作為所述參考視圖的序號值。
[0157]所述獲取單元502具體用于,獲取所述參考視圖的CU塊的空域相鄰塊的MV值和序號值。將所述空域相鄰塊的MV值作為所述NBDV值,將所述空域相鄰塊的序號值作為所述參考視圖的序號值。
[0158]所述視頻處理器還包括檢測單元,所述檢測單元用于,檢測所述參考視圖是否存在運動預測補償塊。
[0159]所述獲取單元502具體用于,在所述檢測單元檢測到所述參考視圖存在運動預測補償塊之后,獲取所述運動預測補償塊的MV值和序號值。將所述運動預測補償塊的MV值作為所述NBDV,將所述運動預測補償塊的序號值作為所述參考視圖的序號值。
[0160]所述視頻處理器還包括設置單元,所述設置單元用于,將所述NBDV預設為O向量。
[0161]所述獲取單元502具體用于,獲取所述參考視圖的CU塊的視間參考幀的序號值,并將所述視間參考幀的序號值作為所述參考視圖的序號值。
[0162]本發明實施例提供的視頻解碼裝置,在計算Do-NBDV過程中利用較少的像素點信息計算獲得Do-NBDV值,并將獲得的Do-NBDV值作為輸入重新計算獲得更準確的Do-NBDV值,與有技術中計算Do-NBDV過程冗余且Do-NBDV值精度不高相比,本發明提供的方法及裝置,降低了計算復雜度,提高了 Do-NBDV值的精度,提高了編碼效率。
[0163]實施例4:
[0164]本發明實施例提供了一種視頻處理器,在硬件實現上,圖5中所述的確定單元、獲取單元、計算單元和比較單元以及以上實施例中所述的編碼單元、解碼單元、檢測單元和設置單元可以以硬件形式或軟件形式內嵌于所述視頻處理器的處理器中。該處理器可以為中央處理單元(CPU),也可以單片機。
[0165]如圖6所示,所述視頻處理器包括:存儲器601和處理器602。其中,存儲器601中存儲一組程序代碼,且處理器602用于調用存儲器601中存儲的程序代碼,用于執行以下操作:
[0166]處理器602,用于確定參考視圖。
[0167]處理器602,用于獲取基于相鄰塊視差矢量NBDV值和所述參考視圖的序號值,并根據所述參考視圖的序號值獲得所述參考視圖對應的深度圖信息。
[0168]所述處理器602還用于,根據所述參考視圖的序號值獲得所述參考視圖的編碼單元⑶地址和預測單元分割方式。
[0169]處理器602,用于根據所述NBDV值、所述⑶地址和所述分割方式計算獲得第一PU塊的位置信息。
[0170]所述處理器602還用于,在計算獲得的所述第一 塊中確定M個像素點,所述M等于2或3。
[0171]所述處理器602還用于,根據所述參考視圖對應的深度圖信息獲得所述M個像素點的深度值和映射值。
[0172]處理器602,用于比較所述M個像素點的深度值,獲得深度值最大的像素點。
[0173]所述處理器602還用于,獲得所述深度值最大的像素點的映射值。
[0174]所述處理器602還用于,將所述深度值最大的像素點的映射值作為第一預測運動矢量的水平分量,根據所述第一預測運動矢量的水平分量計算獲得第一 Do-NBDV的水平分量,所述第一 Do-NBDV的豎直分量為所述NBDV的豎直分量。
[0175]所述處理器602,用于在確定參考視圖之前,對視頻基本視圖進行編碼并執行視差
矢量計算。
[0176]所述處理器602,用于在確定參考視圖之前,對視頻基本視圖進行解碼并執行視差
矢量計算。
[0177]所述處理器602還用于,根據所述第一 Do-NBDV、所述⑶地址和所述I3U分割方式
計算獲得第二 PU塊的位置信息。
[0178]所述處理器602還用于,在計算獲得的所述第二 塊中確定N個像素點,所述N等于2或3。
[0179]所述處理器602還用于,根據所述參考視圖對應的深度圖信息獲得所述N個像素點的深度值和映射值。
[0180]處理器602,用于比較所述N個像素點的深度值,獲得深度值最大的像素點。
[0181]所述處理器602還用于,將所述深度值最大的像素點的映射值作為第二預測運動矢量的水平分量,根據所述第二預測運動矢量的水平分量計算獲得第二 Do-NBDV的水平分量,所述第一 Do-NBDV的豎直分量為所述NBDV的豎直分量。
[0182]所述處理器602具體用于,在所述第一 塊中確定左下及右下2個像素點。
[0183]所述處理器602具體用于,在所述第一 PU塊中確定右上、左下及右下3個像素點。
[0184]所述處理器602具體用于,獲取所述參考視圖的編碼單元CU塊的時域相鄰塊的移動矢量MV值和序號值。將所述時域相鄰塊的MV值作為所述NBDV值,將所述時域相鄰塊的序號值作為所述參考視圖的序號值。
[0185]所述處理器602具體用于,獲取所述參考視圖的⑶塊的空域相鄰塊的MV值和序號值。將所述空域相鄰塊的MV值作為所述NBDV值,將所述空域相鄰塊的序號值作為所述參考視圖的序號值。
[0186]處理器602用于,檢測所述參考視圖是否存在運動預測補償塊。
[0187]所述處理器602具體用于,在檢測到所述參考視圖存在運動預測補償塊之后,獲取所述運動預測補償塊的MV值和序號值。將所述運動預測補償塊的MV值作為所述NBDV,將所述運動預測補償塊的序號值作為所述參考視圖的序號值。
[0188]所述處理器602用于,將所述NBDV預設為O向量。
[0189]所述處理器602具體用于,獲取所述參考視圖的CU塊的視間參考幀的序號值,并將所述視間參考幀的序號值作為所述參考視圖的序號值。
[0190]本發明實施例提供的視頻處理器,在計算Do-NBDV過程中利用較少的像素點信息計算獲得Do-NBDV值,并將獲得的Do-NBDV值作為輸入重新計算獲得更準確的Do-NBDV值,與有技術中計算Do-NBDV過程冗余且Do-NBDV值精度不高相比,本發明提供的方法及裝置,降低了計算復雜度,提高了 Do-NBDV值的精度,提高了編碼效率。
[0191]本領域普通技術人員可以理解:實現上述方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成,前述的程序可以存儲于計算機可讀取存儲介質中,該程序在執行時,執行包括上述方法實施例的步驟;而前述的存儲介質包括:R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質。
[0192]以上所述,僅為本發明的【具體實施方式】,但本發明的保護范圍并不局限于此,任何熟悉本【技術領域】的技術人員在本發明揭露的技術范圍內,可輕易想到變化或替換,都應涵蓋在本發明的保護范圍之內。因此,本發明的保護范圍應所述以權利要求的保護范圍為準。
【權利要求】
1.一種深度基于相鄰塊視差矢量D0-NBDV獲取方法,其特征在于,所述方法包括: 確定參考視圖; 獲取基于相鄰塊視差矢量NBDV值和所述參考視圖的序號值,根據所述參考視圖的序號值獲得所述參考視圖對應的深度圖信息; 根據所述參考視圖的序號值獲得所述參考視圖的編解碼單元CU地址和預測單元分割方式,所述⑶地址為編碼⑶地址或解碼⑶地址; 根據所述NBDV值、所述⑶地址和所述分割方式計算獲得第一 PU塊的位置信息;在所述第一 PU塊中確定M個像素點,根據所述參考視圖對應的深度圖信息獲得所述M個像素點的深度值; 將所述M個像素點中深度值最大的像素點的映射值作為第一預測運動矢量的水平分量,根據所述第一預測運動矢量的水平分量計算獲得第一深度基于相鄰塊視差矢量Do-NBDV的水平分量,所述第一 Do-NBDV的豎直分量為所述NBDV的豎直分量;所述M等于2或3。
2.根據權利要求1所述的方法,其特征在于,在所述確定參考視圖之前,所述方法還包括: 對視頻基本視圖進行編碼并執行視差矢量計算; 或者,對所述視頻基本視圖進行解碼并執行視差矢量計算。
3.根據權利要求1所述的方法,其特征在于,在計算獲得第一Do-NBDV的水平分量之后,所述方法還包括: 根據所述第一 Do-NBDV、所述⑶地址和所述I3U分割方式計算獲得第二 PU塊的位置信息; 在所述第二 PU塊中確定N個像素點,根據所述參考視圖對應的深度圖信息獲得所述N個像素點的深度值; 將所述N個像素點中深度值最大的像素點的映射值作為第二預測運動矢量的水平分量,根據所述第二預測運動矢量的水平分量計算獲得第二 Do-NBDV的水平分量,所述第二Do-NBDV的豎直分量為所述NBDV的豎直分量;所述N等于2或3。
4.根據權利要求1所述的方法,其特征在于,所述在所述第一PU塊中確定M個像素點,將所述M個像素點中深度值最大的像素點的映射值作為第一預測運動矢量的水平分量,根據所述第一預測運動矢量的水平分量計算獲得第一 Do-NBDV的水平分量,包括: 在所述第一 PU塊中確定左下及右下2個像素點,并獲取所述左下及右下2個像素點的深度值; 將深度值較大的像素點的映射值作為第一預測運動矢量的水平分量; 根據所述第一預測運動矢量的水平分量計算獲得第一 Do-NBDV的水平分量; 或者,在所述第一 PU塊中確定右上、左下及右下3個像素點,并獲取所述右上、左下及右下3個像素點的深度值; 將深度值最大的像素點的映射值作為第一預測運動矢量的水平分量; 根據所述第一預測運動矢量的水平分量計算獲得第一 Do-NBDV的水平分量。
5.根據權利要求1所述的方法,其特征在于,所述獲取NBDV值和所述參考視圖的序號值,包括:獲取所述參考視圖的編碼單元CU塊的時域相鄰塊的移動矢量MV值和序號值; 將所述時域相鄰塊的MV值作為所述NBDV值,將所述時域相鄰塊的序號值作為所述參考視圖的序號值。
6.根據權利要求1所述的方法,其特征在于,所述獲取NBDV值和所述參考視圖的序號值,包括: 獲取所述參考視圖的CU塊的空域相鄰塊的MV值和序號值; 將所述空域相鄰塊的MV值作為所述NBDV值,將所述空域相鄰塊的序號值作為所述參考視圖的序號值。
7.根據權利要求1所述的方法,其特征在于,所述獲取NBDV值和所述參考視圖的序號值,包括: 檢測所述參考視圖是否存在運動預測補償塊; 若存在,則獲取所述運動預測補償塊的MV值和序號值; 將所述運動預測補償塊的MV值作為所述NBDV,將所述運動預測補償塊的序號值作為所述參考視圖的序號值。
8.根據權利要求1所述的方法,其特征在于,所述獲取NBDV值和所述參考視圖的序號值,包括: 將所述NBDV預設為O向量; 獲取所述參考視圖的CU塊的視間參考幀的序號值,并將所述視間參考幀的序號值作為所述參考視圖的序號值。
9.一種視頻解碼裝置,其特征在于,包括: 確定單兀,用于確定參考視圖; 獲取單元,用于獲取基于相鄰塊視差矢量NBDV值和所述參考視圖的序號值,并根據所述參考視圖的序號值獲得所述參考視圖對應的深度圖信息; 所述獲取單元還用于,根據所述參考視圖的序號值獲得所述參考視圖的編解碼單元CU地址和預測單元PU分割方式,所述⑶地址為編碼⑶地址或解碼⑶地址; 計算單元,用于根據所述獲取單元獲得的所述NBDV值、所述CU地址和所述分割方式計算獲得第一 PU塊的位置信息; 所述確定單元還用于,在所述計算單元計算獲得的所述第一 PU塊中確定M個像素點,所述M等于2或3; 所述獲取單元還用于,根據所述參考視圖對應的深度圖信息獲得所述M個像素點的深度值; 比較單元,用于比較所述確定單元確定的所述M個像素點的深度值,獲得深度值最大的像素點; 所述獲取單元還用于,獲得所述深度值最大的像素點的映射值; 所述計算單元還用于,將所述深度值最大的像素點的映射值作為第一預測運動矢量的水平分量,根據所述第一預測運動矢量的水平分量計算獲得第一深度基于相鄰塊視差矢量Do-NBDV的水平分量,所述第一 Do-NBDV的豎直分量為所述NBDV的豎直分量。
10.根據權利要求9所述的視頻解碼裝置,其特征在于,還包括編碼單元和解碼單元, 所述編碼單元,用于在所述確定單元確定參考視圖之前,對視頻基本視圖進行編碼并執行視差矢量計算; 所述解碼單元,用于在所述確定單元確定參考視圖之前,對所述視頻基本視圖進行解碼并執行視差矢量計算。
11.根據權利要求9所述的視頻解碼裝置,其特征在于, 所述計算單元還用于,根據所述第一 Do-NBDV、所述CU地址和所述分割方式計算獲得第二 PU塊的位置信息; 所述確定單元還用于,在所述計算單元計算獲得的所述第二 PU塊中確定N個像素點,所述N等于2或3; 所述獲取單元還用于,根據所述參考視圖對應的深度圖信息獲得所述N個像素點的深度值; 比較單元,用于比較所述確定單元確定的所述N個像素點的深度值,獲得深度值最大的像素點; 所述獲取單元還用于,獲得所述N個像素點中深度值最大的像素點的映射值; 所述計算單元還用于,將所述深度值最大的像素點的映射值作為第二預測運動矢量的水平分量,根據所述第二預測運動矢量的水平分量計算獲得第二 Do-NBDV的水平分量,所述第二 Do-NBDV的豎直分量為所述NBDV的豎直分量。
12.根據權利要求9所述的視頻解碼裝置,其特征在于, 所述確定單元具體用于,在所述第一 PU塊中確定左下及右下2個像素點; 所述確定單元具體用于,在所述第一 PU塊中確定右上、左下及右下3個像素點。
13.根據權利要求9所述的視頻解碼裝置,其特征在于, 所述獲取單元具體用于,獲取所述參考視圖的編碼單元CU塊的時域相鄰塊的移動矢量MV值和序號值;將所述時域相鄰塊的MV值作為所述NBDV值,將所述時域相鄰塊的序號值作為所述參考視圖的序號值。
14.根據權利要求9所述的視頻解碼裝置,其特征在于, 所述獲取單元具體用于,獲取所述參考視圖的CU塊的空域相鄰塊的MV值和序號值;將所述空域相鄰塊的MV值作為所述NBDV值,將所述空域相鄰塊的序號值作為所述參考視圖的序號值。
15.根據權利要求9所述的視頻解碼裝置,其特征在于,還包括檢測單元, 所述檢測單元用于,檢測所述參考視圖是否存在運動預測補償塊; 所述獲取單元具體用于,在所述檢測單元檢測到所述參考視圖存在運動預測補償塊之后,獲取所述運動預測補償塊的MV值和序號值;將所述運動預測補償塊的MV值作為所述NBDV,將所述運動預測補償塊的序號值作為所述參考視圖的序號值。
16.根據 權利要求9所述的視頻解碼裝置,其特征在于,還包括設置單元, 所述設置單元用于,將所述NBDV預設為O向量; 所述獲取單元具體用于,獲取所述參考視圖的CU塊的視間參考幀的序號值,并將所述視間參考幀的序號值作為所述參考視圖的序號值。
【文檔編號】H04N13/00GK103763557SQ201410003938
【公開日】2014年4月30日 申請日期:2014年1月3日 優先權日:2014年1月3日
【發明者】陳旭, 林永兵, 鄭蕭楨 申請人:華為技術有限公司