專利名稱:視頻序列的最優(yōu)幀內編碼模式選擇方法及裝置的制作方法
技術領域:
本發(fā)明涉及視頻編碼技術領域,特別涉及一種視頻序列的最優(yōu)幀內編碼模式選擇方法及裝置。
背景技術:
隨著網絡技術和終端處理能力的不斷提高,人們對目前廣泛使用的MPEG-2, MPEG-4, H. 264等,提出了新的要求 。希望能夠提供I、高清,2、立體,3、移動無線,以滿足新的家庭影院、遠程監(jiān)控、數(shù)字廣播、移動流媒體、便攜攝像、醫(yī)學成像等新領域的應用。針對這些新的需求,HEVC編碼標準應運而生?,F(xiàn)有的視頻編碼標準HEVC雖然在編碼效率方面具有明顯的優(yōu)勢;但它們?yōu)樘岣邏嚎s效率所引入的高計算復雜度卻是實際應用,特別是實時視頻應用,無法承受的。實驗結果表明,多模式運動估計和模式決策大約占了超過一半的總處理時間,可見合理高效的模式決策算法對于視頻編碼的意義重大。幀內預測編碼模式是在H. 264中提出的新的編碼方案,采用了對靜止圖像進行編碼的手段實現(xiàn)視頻幀內部空間冗余的去除,即用周圍鄰近的像素值來預測當前的像素值,然后對預測殘差進行編碼。ffiVC中的幀內預測相對于H. 264/AVC的編碼技術,引進了更多預測塊大小,更多預測方向的變化。例如a 264/AVC的幀內模式選擇中,對于亮度分量,塊的大小可以在16X 16和4X4之間選擇,16X16塊有4種預測模式,4X4塊有9種預測模式;對于色度分量,預測是對整個8 X 8塊進行的,有4種預測模式。除了 DC預測外,其他每種預測模式對應不同方向上的預測。而在HEVC的幀內預測模式中,單預測塊的大小就存在4X 4,8 X 8,16 X 16,32 X 32,64X 64五種選擇,且預測模式最高達34種,即除去DC預測外,角度預測增加到了 33種。然而,幀內預測模式決策是基于宏塊率失真優(yōu)化策略實現(xiàn)的,過多的模式選擇雖然編碼壓縮后的精度很高,但復雜度和編碼時間卻大大增加,不利于其在實時系統(tǒng)的應用。對于整個實時編碼系統(tǒng)而言,幀內編碼雖占用整個編碼過程的比例不大,但卻有著很長的編碼時間,使得直接進行幀內編碼成為實時系統(tǒng)實現(xiàn)的很大障礙。
發(fā)明內容
本發(fā)明旨在至少解決上述技術問題之一。為此,本發(fā)明的一個目的在于提出一種視頻序列的最優(yōu)幀內編碼模式選擇方法。本發(fā)明的另一目的在于提出一種視頻序列的最優(yōu)幀內編碼模式選擇裝置。為了實現(xiàn)上述目的,本發(fā)明第一方面的實施例提出了一種視頻序列的最優(yōu)幀內編碼模式選擇方法,包括以下步驟獲取視頻序列,并從所述視頻序列中提取當前待編碼的圖像;將所述當前待編碼的圖像劃分為多個編碼塊;根據(jù)當前待編碼的編碼塊的大小確定多個不同編碼方向的多個幀內編碼模式;計算所述編碼塊中每個像素點的水平梯度、垂直梯度和梯度幅值,且在所述垂直梯度不等于零時計算對應像素點的梯度方向斜率;計算每一個幀內編碼模式對應編碼方向的斜率,并將所述多個幀內編碼模式分為N組,其中,第一至第N組內的幀內編碼模式對應的斜率分別位于第一至第N預定區(qū)間內;將所有梯度方向斜率與所述第一至第N預定區(qū)間進行比較,以將位于同一預定區(qū)間中的梯度方向斜率對應像素點的梯度幅值求和得到第一至第N梯度能量值;選擇第一至第N梯度能量值中最大的梯度能量值對應的預定區(qū)間,以將該預定區(qū)間對應的一組幀內編碼模式作為候選預測模式集;以及計算所述候選預測模式集中每個幀內編碼模式的率失真代價,并選取相應率失真代價最小的幀內編碼模式作為所述編碼塊的最優(yōu)幀內編碼模式。另外,根據(jù)本發(fā)明上述實施例的視頻序列的最優(yōu)幀內編碼模式選擇方法還可以具有如下附加的技術特征在一些示例中,計算所述編碼塊中每個像素點的水平梯度、垂直梯度和梯度幅值之前,包括步驟判斷當前像素點是否為位于所述前待編碼的圖像中第一行和第一列位置的像素點;如果是,則對所述編碼塊進行獨立編碼。
在一些示例中,還包括將DC模式添加到所述候選預測模式集中。在一些示例中,所述編碼塊的大小為4*4、8*8、16*16、32*32或64*64的任意一種。在一些示例中,所述編碼塊的大小16*16。在一些示例中,所述多個幀內編碼模式分為4組,且所述第一至第4組內的幀內編碼模式對應的斜率分別位于第一至第4預定區(qū)間內,其中,所述第一預定區(qū)間至所述第四預定區(qū)間依次為[1,+ 00 ]、[_ 00,_1)、[_1,0)、
。在一些示例中,將所有梯度方向斜率與所述第一至第N預定區(qū)間進行比較,以將位于同一預定區(qū)間中的梯度方向斜率對應像素點的梯度幅值求和得到第一至第N梯度能量值的步驟包括當 dy/dx 彡 1,且 dx>0 時,prob(l)+ = JdT+dJ ;當dy/dx〈_l 時,prob_ = ^dJTdJ ;當-I< dy/dx〈0 時,_proA(3)+ = ^dJTdJ ;當0 彡 dy/dx 彡 1,且 dy>0 時,prob(4)+ = ^jdx2 2,其中,dx為像素點的水平梯度,dy為像素點的垂直梯度,dy/dx為像素點的梯度方向斜率,prob(l)至prob(4)分別為第一梯度能量值至第四梯度能量值。在一些示例中,還包括如果所述dx等于零,則將對應的梯度幅值加入所述第一梯度能量值中。本發(fā)明第二方面的實施例提出了一種視頻序列的最優(yōu)幀內編碼模式選擇裝置,包括圖像獲取模塊,用于獲取視頻序列,并從所述視頻序列中提取當前待編碼的圖像;編碼塊劃分模塊,用于將所述當前待編碼的圖像劃分為多個編碼塊;幀內編碼模式確定模塊,用于根據(jù)當前待編碼的編碼塊的大小確定多個不同編碼方向的多個幀內編碼模式;計算模塊,用于計算所述編碼塊中每個像素點的水平梯度、垂直梯度和梯度幅值,且在所述垂直梯度不等于零時計算對應像素點的梯度方向斜率;預定區(qū)間劃分模塊,用于計算每一個幀內編碼模式對應編碼方向的斜率,并將所述多個幀內編碼模式分為N組,其中,第一至第N組內的幀內編碼模式對應的斜率分別位于第一至第N預定區(qū)間內;梯度能量值求取模塊,用于將所有梯度方向斜率與所述第一至第N預定區(qū)間進行比較,以將位于同一預定區(qū)間中的梯度方向斜率對應像素點的梯度幅值求和得到第一至第N梯度能量值;候選預測模式集選擇模塊,用于選擇第一至第N梯度能量值中最大的梯度能量值對應的預定區(qū)間,以將該預定區(qū)間對應的一組幀內編碼模式作為候選預測模式集;以及最優(yōu)幀內編碼模式選擇模塊,用于計算候選預測模式集中每個幀內編碼模式的率失真代價,并選取相應率失真代價最小的幀內編碼模式作為所述編碼塊的最優(yōu)幀內編碼模式。另外,根據(jù)本發(fā)明上述實施例的視頻序列的最優(yōu)幀內編碼模式選擇裝置還可以具有如下附加的技術特征在一些示例中,還包括判斷模塊,用于在計算模塊計算所述編碼塊中每個像素點的水平梯度、垂直梯度和梯度幅值之前,判斷當前像素點是否為位于所述前待編碼的圖像中第一行和第一列位置的像素點,且在判斷當前像素點是位于所述前待編碼的圖像中第一行和第一列位置的像素點時,對所述編碼塊進行獨立編碼。在一些示例中,所述候選預測模式集選擇模塊還用于將DC模式添加到所述候選 預測模式集中。在一些示例中,所述編碼塊的大小為4*4、8*8、16*16、32*32或64*64的任意一種。在一些示例中,所述編碼塊的大小16*16。在一些示例中,所述多個幀內編碼模式分為4組,且所述第一至第4組內的幀內編碼模式對應的斜率分別位于第一至第4預定區(qū)間內,其中,所述第一預定區(qū)間至所述第四預定區(qū)間依次為[1,+ 00 ]、[_ 00,_1)、[_1,0)、
。在一些示例中,所述梯度能量值求取模塊用于在判斷dy/dx彡1,且4>0時,使 prob(X)+ = ^jdx2 +d/ ,在 dy/dx〈_l 時,使 prob(2)+ =」(~ +d/,在-I < dy/dx〈0 時,使
pmbO)+ = Jd X及在 0 ( dy/dx 彡 1,且 dy>0 時,使_(4)+ =火+(f,2 ,其中,dx為像素點的水平梯度,dy為像素點的垂直梯度,dy/dx為像素點的梯度方向斜率,prob(l)至prob(4)分別為第一梯度能量值至第四梯度能量值。在一些示例中,所述梯度能量值求取模塊還用于在判斷所述dx等于零時,將對應的梯度幅值加入所述第一梯度能量值中。根據(jù)本發(fā)明實施例的視頻序列的最優(yōu)幀內編碼模式選擇方法及裝置,基于像素的梯度能量估計選擇當前編碼塊的候選預測模式,通過計算候選預測模式的率失真代價得到最優(yōu)幀內編碼模式,相對與傳統(tǒng)的方式中根據(jù)所有幀內編碼模式的率失真代價得到最優(yōu)預測模式相比,由于候選預測模式數(shù)量的大幅度減小,可以減少率失真代價的計算量,提高運算速度,適用于實時編碼。本發(fā)明的附加方面和優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到。
本發(fā)明的上述和/或附加的方面和優(yōu)點從結合下面附圖對實施例的描述中將變得明顯和容易理解,其中圖I為本發(fā)明實施例的視頻序列的最優(yōu)幀內編碼模式選擇方法的流程圖;以及圖2為本發(fā)明實施例的視頻序列的最優(yōu)幀內編碼模式選擇裝置的結構圖。
具體實施例方式下面詳細描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本發(fā)明,而不能理解為對本發(fā)明的限制。在本發(fā)明的描述中,需要理解的是,術語“中心”、“縱向”、“橫向”、“上”、“下”、“前”、“后”、“左”、“右”、“豎直”、“水平”、“頂”、“底”、“內”、“外”等指示的方位或位置關系為基于附圖所示的方位或位置關系,僅是為了便于描述本發(fā)明和簡化描述,而不是指示或暗示所指的裝置或元件必須具有特定的方位、以特定的方位構造和操作,因此不能理解為對本發(fā)明的限制。此外,術語“第一”、“第二”僅用于描述目的,而不能理解為指示或暗示相對重要性。在本發(fā)明的描述中,需要說明的是,除非另有明確的規(guī)定和限定,術語“安裝”、“相連”、“連接”應做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或一體地連接;可以是機械連接,也可以是電連接;可以是直接相連,也可以通過中間媒介間接相連,可以是兩個元件內部的連通。對于本領域的普通技術人員而言,可以具體情況理解上述術語在本 發(fā)明中的具體含義。以下結合附圖首先描述根據(jù)本發(fā)明實施例的視頻序列的最優(yōu)幀內編碼模式選擇方法。參考圖1,根據(jù)本發(fā)明實施例的視頻序列的最優(yōu)幀內編碼模式選擇方法,包括如下步驟步驟S101,獲取視頻序列,并從視頻序列中提取當前待編碼的圖像。步驟S102,將當前待編碼的圖像劃分為多個編碼塊。在一些實例中,劃分的編碼塊的大小為4*4、8*8、16*16、32*32或64*64的任意一種。步驟S103,根據(jù)當前待編碼的編碼塊的大小確定多個不同編碼方向的多個幀內編碼模式。具體地,根據(jù)當前待編碼的編碼塊的大小確定該編碼塊的幀內編碼的幀內編碼模式集。其中,4X 4的編碼塊有17個幀內編碼模式(例如,包含I個DC模式和16個方向的編碼模式),8X8的編碼塊有34個幀內編碼模式(包含I個DC模式和33個方向的編碼模式),16X16的編碼塊有34個幀內編碼模式(包含I個DC模式和33個方向編碼模式),32X 32的編碼塊有34個幀內編碼模式(包含I個DC模式和33個方向的編碼模式),64 X 64的編碼塊有5個幀內編碼模式(包含I個DC模式和4個方向編碼模式)。步驟S104,計算編碼塊中每個像素點的水平梯度、垂直梯度和梯度幅值,且在垂直梯度不等于零時計算對應像素點的梯度方向斜率。具體而言,對當前待編碼的編碼塊中的每個像素,利用sobel算子,分別計算得該像素的水平梯度dx和垂直梯度dy,并計算其梯度幅度+<2 此時若dx古0,計算其梯度方向斜率dy/dx。更為具體地,設當前像素點在當前待編碼的圖像(即編碼幀)中的絕對位置坐標為(i,j),且其亮度像素值為Pm,則有以下判斷判斷I :若該像素i = 0,j=0,則對此編碼塊進行獨立編碼,不進行幀內預測,也就是說對該編碼塊進行獨立編碼。即在計算編碼塊中每個像素點的水平梯度dx、垂直梯度dy和梯度幅值#7^7之前,應首先判斷當前像素點是否為位于前待編碼的圖像中第一行和第一列位置的像素點,如果是,則對編碼塊進行獨立編碼。判斷2 :若該像素處于當前待編碼幀的第一列,即i = 0,j古0,則dx= (2 X Pi, j^+Pi+!, J^1) - (2 X Pi, J+1+pi+1; J+1), dy=00判斷3 :若該像素處于當前編碼幀的第一行,即i關0,j = 0,則dx=0, dy= (2 X 卩卜1;押卜1; j+1) -(2 X pi+1 ’ j+pi+1; J+1)。判斷4 :其他情況下,即i關0,j關0,則dx- (Ph,j-i+2 XPi, j-i+Pi+i, j-i)_ (Pi-i,j+i+2 Xpi; j+1+Pi+1,j+1),dy- (Ph, j-i+2 X Ph’ j+PH’ j+i)_ (Pi+i, j-i+2 X pi+1 ’ j+pi+1; J+1)。步驟S105,計算每一個幀內編碼模式對應編碼方向的斜率,并將多個幀內編碼模式分為N組,其中,第一至第N組內的幀內編碼模式對應的斜率分別位于第一至第N預定區(qū)間內。作為一個具體的示例,以編碼塊的大小16*16的編碼塊為例,并將多個幀內編碼模式分為4組,且第一至第4組內的幀內編碼模式對應的斜率分別位于第一至第4預定區(qū)間內,在該實例中,根據(jù)斜率的知識可知,斜率位于
、[-00 , -I)、[-1,0)、
。
7.根據(jù)權利要求6所述的視頻序列的最優(yōu)幀內編碼模式選擇方法,其特征在于,將所有梯度方向斜率與所述第一至第N預定區(qū)間進行比較,以將位于同一預定區(qū)間中的梯度方向斜率對應像素點的梯度幅值求和得到第一至第N梯度能量值的步驟包括 當 dy/dx ≥ 1,且 dx>0 時,
8.根據(jù)權利要求7所述的視頻序列的最優(yōu)幀內編碼模式選擇方法,其特征在于,還包括 如果所述dx等于零,則將對應的梯度幅值加入所述第一梯度能量值中。
9.一種視頻序列的最優(yōu)幀內編碼模式選擇裝置,其特征在于,包括 圖像獲取模塊,用于獲取視頻序列,并從所述視頻序列中提取當前待編碼的圖像; 編碼塊劃分模塊,用于將所述當前待編碼的圖像劃分為多個編碼塊; 幀內編碼模式確定模塊,用于根據(jù)當前待編碼的編碼塊的大小確定多個不同編碼方向的多個幀內編碼模式; 計算模塊,用于計算所述編碼塊中每個像素點的水平梯度、垂直梯度和梯度幅值,且在所述垂直梯度不等于零時計算對應像素點的梯度方向斜率; 預定區(qū)間劃分模塊,用于計算每一個幀內編碼模式對應編碼方向的斜率,并將所述多個幀內編碼模式分為N組,其中,第一至第N組內的幀內編碼模式對應的斜率分別位于第一至第N預定區(qū)間內; 梯度能量值求取模塊,用于將所有梯度方向斜率與所述第一至第N預定區(qū)間進行比較,以將位于同一預定區(qū)間中的梯度方向斜率對應像素點的梯度幅值求和得到第一至第N梯度能量值; 候選預測模式集選擇模塊,用于選擇第一至第N梯度能量值中最大的梯度能量值對應的預定區(qū)間,以將該預定區(qū)間對應的一組幀內編碼模式作為候選預測模式集;以及 最優(yōu)幀內編碼模式選擇模塊,用于計算候選預測模式集中每個幀內編碼模式的率失真代價,并選取相應率失真代價最小的幀內編碼模式作為所述編碼塊的最優(yōu)幀內編碼模式。
10.根據(jù)權利要求9所述的視頻序列的最優(yōu)幀內編碼模式選擇裝置,其特征在于,還包括 判斷模塊,用于在計算模塊計算所述編碼塊中每個像素點的水平梯度、垂直梯度和梯度幅值之前,判斷當前像素點是否為位于所述前待編碼的圖像中第一行和第一列位置的像素點,且在判斷當前像素點是位于所述前待編碼的圖像中第一行和第一列位置的像素點時,對所述編碼塊進行獨立編碼。
11.根據(jù)權利要求9所述的視頻序列的最優(yōu)幀內編碼模式選擇裝置,其特征在于,所述候選預測模式集選擇模塊還用于將DC模式添加到所述候選預測模式集中。
12.根據(jù)權利要求9所述的視頻序列的最優(yōu)幀內編碼模式選擇裝置,其特征在于,所述編碼塊的大小為4*4、8*8、16*16、32*32或64*64的任意一種。
13.根據(jù)權利要求I所述的視頻序列的最優(yōu)幀內編碼模式選擇裝置,其特征在于,所述編碼塊的大小16*16。
14.根據(jù)權利要求13所述的視頻序列的最優(yōu)幀內編碼模式選擇裝置,其特征在于,所述多個幀內編碼模式分為4組,且所述第一至第4組內的幀內編碼模式對應的斜率分別位于第一至第4預定區(qū)間內,其中,所述第一預定區(qū)間至所述第四預定區(qū)間依次為[l,+ m]、[-00 , -I)、[-1,0)、
。
15.根據(jù)權利要求14所述的視頻序列的最優(yōu)幀內編碼模式選擇裝置,其特征在于,所述梯度能量值求取模塊用于在判斷dy/dx≥1,且‘ > 0時,使
16.根據(jù)權利要求15所述的視頻序列的最優(yōu)幀內編碼模式選擇裝置,其特征在于,所述梯度能量值求取模塊還用于在判斷所述dx等于零時,將對應的梯度幅值加入所述第一梯度能量值中。
全文摘要
本發(fā)明提出一種視頻序列的最優(yōu)幀內編碼模式選擇方法及裝置,該方法包括將圖像劃分為多個編碼塊;根據(jù)編碼塊的大小確定多個幀內編碼模式;計算編碼塊中像素點的水平、垂直梯度等;計算每一個幀內編碼模式對應編碼方向的斜率,并將多個幀內編碼模式分為N組;將所有梯度方向斜率與第一至第N預定區(qū)間進行比較以得到第一至第N梯度能量值;選擇最大的梯度能量值對應的一組幀內編碼模式作為候選預測模式集;計算候選預測模式集中每個編碼模式的率失真代價以并選取率失真代價最小的幀內編碼模式為編碼塊的最優(yōu)幀內編碼模式。具有減少率失真代價的計算量,提高運算速度,適用于實時編碼的優(yōu)點。
文檔編號H04N7/26GK102724509SQ20121021027
公開日2012年10月10日 申請日期2012年6月19日 優(yōu)先權日2012年6月19日
發(fā)明者張永兵, 戴瓊海, 王好謙, 馬茜 申請人:清華大學