本申請涉及視頻壓縮領域,尤其涉及一種視頻幀的濾波方法及裝置。
背景技術:
目前,由于互聯(lián)網(wǎng)技術的不斷發(fā)展,電子產(chǎn)品的種類也越來越多,人們也享受到了科技發(fā)展帶來的各種便利。現(xiàn)在人們可以通過各種類型的電子設備,享受隨著科技發(fā)展帶來的舒適生活。
例如,用戶可以使用電子設備觀看各類視頻。
而為了便于視頻傳輸,在傳輸之前,通常會在編碼端(例如網(wǎng)站服務器)對視頻進行壓縮,然后傳輸壓縮的視頻給解碼端(例如各終端)。
而在視頻編碼標準中,在編解碼器反變換量化后圖像會出現(xiàn)方塊效應。其產(chǎn)生的原因有兩個。最重要的一個原因是基于視頻像素塊的幀內和幀間預測殘差的dct變換。變換系數(shù)的量化過程相對粗糙,因而反量化過程恢復的變換系數(shù)帶有誤差,會造成在圖像塊邊界上的視覺不連續(xù)。第二個原因來自于運動補償預測。運動補償塊可能是從不是同一幀的不同位置上的內插樣點數(shù)據(jù)復制而來。因為運動補償塊的匹配不可能是絕對準確的,所以就會在復制塊的邊界上產(chǎn)生數(shù)據(jù)不連續(xù)。
當然,參考幀中存在的邊界不連續(xù)也被復制到需要補償?shù)膱D像塊內。盡管采用較小的4*4變換尺寸可以降低這種不連續(xù)現(xiàn)象,但仍需要一個對視頻幀進行濾波以最大程度提高編碼性能。
故而,為了解決圖像出現(xiàn)的方塊效應,會對視頻幀進行濾波處理。
而目前的濾波處理方法,一般采用邊界濾波,作用是去除h.264編解碼算法帶來的方塊效應。但是,如果在dct邊界上,正好是圖像的邊界,如家具邊等,若不加以判斷而誤認為是方塊效應,則可能造成新的誤差。為此,在濾波方塊效應時,應該先判斷該邊界是圖像真實邊界還是方塊效應所形成的邊界(假邊界)。對真實邊界不進行濾波處理,而對假邊界則要根據(jù)周圍圖像塊的性質和編碼方法采用不同強度的濾波。
為了保證編碼器和解碼器中的濾波過程完全一致,對每個編碼圖像的濾波運算必需按規(guī)定順序進行。濾波應該在適當位置上進行,這樣邊界兩邊直線上修改過的樣點值作為后續(xù)運算的輸入值而不引入的誤差。
濾波是基于宏塊基礎上的,先對垂直邊界進行水平濾波,再對水平邊界進行垂直濾波。對宏塊的兩個方向濾波都完成后才能進行后面宏塊的濾波。對圖像中宏塊的濾波按raster掃描方式進行。對幀場自適應編碼幀,它們在垂直方向上相鄰的宏塊對放在一起,則濾波順序按宏塊對進行,即在幀中對宏塊對進行按raster掃描方式,對每個宏塊對先進行頂部宏塊的濾波。對每個亮度宏塊,先濾波宏塊(即:16*16的視頻像素塊)最左邊的邊界(如圖1中的a),然后依次從左到右宏塊內三個垂直邊界(如圖1的b到d)。類似的,對水平邊界先濾波宏塊頂部的邊界(如圖1中的e),然后依次從上到下宏塊內三個水平邊界(如圖1中的f到h)。色度濾波次序類似,對8×8的色度宏塊,在每個方向上,先濾波宏塊外部邊界再濾波一個內部邊界(如在圖2中,水平方向先濾波i,再濾波j;垂直方向上先濾波k,再濾波l)。
但是這種邊界濾波方式的效率不高,故而目前亟需一種濾波方式來提高視頻幀的濾波效率。
技術實現(xiàn)要素:
本發(fā)明了提供了一種視頻幀的濾波方法及裝置,以解決目前的濾波方式的效率不高的技術問題。
為解決上述技術問題,本發(fā)明提供了一種視頻幀的濾波方法,所述方法包括:
將垂直分界線和水平分界線進行邊界濾波;
確定出濾波后的垂直分界線和濾波后的水平分界線的至少一個交叉點;
確定出所述至少一個交叉點中每個交叉點的五個像素點;所述五個像素點包括所述周邊四個像素點和所述居中像素點;
確定出所述周邊四個像素點中相對于所述居中像素點不是圖像邊界的像素點;
利用所述周邊四個像素點中相對于所述居中像素點不是圖像邊界的像素點確定出所述居中像素點的當前像素值。
優(yōu)選的,所述將垂直分界線和水平分界線進行邊界濾波之前,包括:
將所述視頻幀分為多個16*16的像素子塊,對每個16*16的像素子塊作下述處理:
確定出16*16的像素子塊的所述垂直分界線和所述水平分界線。
優(yōu)選的,所述確定出所述周邊四個像素點中相對于所述居中像素點不是圖像邊界的像素點,包括:
分別判斷所述周邊四個像素點相對于所述居中像素點是否為圖像邊界,進而確定出所述周邊四個像素點中相對于所述居中像素點不是圖像邊界的像素點。
優(yōu)選的,所述周邊四個像素點為:上像素點、下像素點、左像素點、右像素點;
所述分別判斷所述周邊四個像素點相對于所述居中像素點是否為圖像邊界,包括:
判斷所述上像素點相對于所述居中像素點是否為圖像邊界;
判斷所述下像素點相對于所述居中像素點是否為圖像邊界;
判斷所述左像素點相對于所述居中像素點是否為圖像邊界;
判斷所述右像素點相對于所述居中像素點是否為圖像邊界。
優(yōu)選的,所述判斷所述上像素點相對于所述居中像素點是否為圖像邊界,包括:
確定出所述上像素點的像素值和所述居中像素點的原像素值的差值;
判斷所述差值的絕對值是否大于一預設閾值;
若是,則所述上像素點相對于所述居中像素點是圖像邊界的像素點。
優(yōu)選的,所述利用所述周邊四個像素點中相對于所述居中像素點不是圖像邊界的像素點確定出所述居中像素點的當前像素值,包括:
獲得所述周邊四個像素點中相對于所述居中像素點不是圖像邊界的像素點的像素值;
基于所述周邊四個像素點中相對于所述居中像素點不是圖像邊界的像素點的像素值和所述居中像素點的原像素值,得到所述居中像素點的當前像素值。
優(yōu)選的,所述基于所述周邊四個像素點中相對于所述居中像素點不是圖像邊界的像素點的像素值和所述居中像素點的原像素值,得到所述居中像素點的當前像素值,包括:
將所述周邊四個像素點中相對于所述居中像素點不是圖像邊界的像素點的像素值和所述居中像素點的原像素值相加,然后求出平均值,所述平均值就是所述居中像素點的當前像素值。
本發(fā)明公開了一種視頻幀的濾波裝置,包括:
濾波模塊,用于將垂直分界線和水平分界線進行邊界濾波;
第一確定模塊,用于確定出濾波后的垂直分界線和濾波后的水平分界線的至少一個交叉點;
第二確定模塊,用于確定出所述至少一個交叉點中每個交叉點的五個像素點;所述五個像素點包括所述周邊四個像素點和所述居中像素點;
第三確定模塊,用于確定出所述周邊四個像素點中相對于所述居中像素點不是圖像邊界的像素點;
第四確定模塊,用于利用所述周邊四個像素點中相對于所述居中像素點不是圖像邊界的像素點確定出所述居中像素點的當前像素值。
優(yōu)選的,還包括:
劃分模塊,用于將垂直分界線和水平分界線進行邊界濾波之前,將所述視頻幀分為多個16*16的像素子塊,對每個16*16的像素子塊作下述處理:
第五確定模塊,用于確定出16*16的像素子塊的所述垂直分界線和所述水平分界線。
優(yōu)選的,所述第三確定模塊,用于分別判斷所述周邊四個像素點相對于所述居中像素點是否為圖像邊界,進而確定出所述周邊四個像素點中相對于所述居中像素點不是圖像邊界的像素點。
優(yōu)選的,所述周邊四個像素點為:上像素點、下像素點、左像素點、右像素點;
第三確定模塊,用于:
判斷所述上像素點相對于所述居中像素點是否為圖像邊界;
判斷所述下像素點相對于所述居中像素點是否為圖像邊界;
判斷所述左像素點相對于所述居中像素點是否為圖像邊界;
判斷所述右像素點相對于所述居中像素點是否為圖像邊界。
通過本發(fā)明的一個或者多個技術方案,本發(fā)明具有以下有益效果或者優(yōu)點:
本發(fā)明提出了一種視頻幀的濾波方法及裝置。首先將垂直分界線和水平分界線進行邊界濾波;然后確定出濾波后的垂直分界線和濾波后的水平分界線的至少一個交叉點;并確定出所述至少一個交叉點中每個交叉點的五個像素點;所述五個像素點包括所述周邊四個像素點和所述居中像素點;本發(fā)明通過確定出所述周邊四個像素點中相對于所述居中像素點不是圖像邊界的像素點;然后利用所述周邊四個像素點中相對于所述居中像素點不是圖像邊界的像素點確定出所述居中像素點的當前像素值,進而避免對居中像素點進行濾波,經(jīng)過上述操作后原本要進行2次濾波操作的居中像素點,現(xiàn)在只需要判斷其周圍的像素點是否是圖像邊界,然后根據(jù)周圍的像素點來確定出居中像素點的像素值,大大的減少了計算步驟,節(jié)約了時間,提高了編碼效率,進而提高了濾波效率,減少了方快幀的出現(xiàn)。
進一步的,本發(fā)明將所述周邊四個像素點中相對于所述居中像素點不是圖像邊界的像素點的像素值和所述居中像素點的原像素值相加,然后求出平均值,所述平均值就是所述居中像素點的當前像素值。這樣的取均值操作其實是針對的是經(jīng)過濾波操作后的值,而且取均值可以使m0像素點很好的與m1,m2,m3,m4像素點相融合,不會顯得太突兀。
附圖說明
圖1為16*16的視頻像素塊的邊界線劃分的示意圖;
圖2為8*8的視頻像素塊的邊界線劃分的示意圖;
圖3為本發(fā)明實施例中一種視頻幀的濾波方法的流程圖;
圖4a為本發(fā)明實施例中16*16的像素子塊的示意圖;
圖4b為本發(fā)明實施例中邊界線的交叉濾波示意圖;
圖4c為本發(fā)明實施例中居中像素點的示意圖;
圖5為本發(fā)明實施例中樣點值取值示意圖;
圖6a-圖6b為本發(fā)明實施例中垂直和水平濾波邊界像素情況;
圖7為本發(fā)明實施例中一種視頻幀的濾波裝置的示意圖。
具體實施方式
為了使本申請所屬技術領域中的技術人員更清楚地理解本申請,下面結合附圖,通過具體實施例對本申請技術方案作詳細描述。
為了解決濾波效率不高的技術問題,本發(fā)明提出了一種視頻幀的濾波方法。首先將所述視頻幀分為多個16*16的像素子塊,對每個16*16的像素子塊作下述處理:先確定出16*16的像素子塊的垂直分界線和水平分界線;然后將垂直分界線和水平分界線進行邊界濾波。濾波之后,確定出濾波后的垂直分界線和濾波后的水平分界線的至少一個交叉點;然后確定出所述至少一個交叉點中每個交叉點的五個像素點;所述五個像素點包括所述周邊四個像素點和所述居中像素點;再確定出所述周邊四個像素點中相對于所述居中像素點不是圖像邊界的像素點;然后利用所述周邊四個像素點中相對于所述居中像素點不是圖像邊界的像素點確定出所述居中像素點的當前像素值。本發(fā)明將本來要進行2次濾波操作的居中像素點,現(xiàn)在只是判斷它周圍的像素點是否是圖像邊界,然后計算像素均值操作,將此均值作為居中像素的當前像素值,大大的減少了計算步驟,提高了編碼效率,進而提高了視頻幀的濾波效率,減少了視頻幀的方塊效應。。而且取均值操作其實是針對的是經(jīng)過濾波操作后的值,而且取均值可以使居中像素點很好的與其周圍的像素點相融合,不會顯得太突兀。
下面介紹本發(fā)明具體的實施過程。
參看圖3,該方法包括如下步驟:
步驟11,將垂直分界線和水平分界線進行邊界濾波。
濾波之前,本發(fā)明會先將視頻幀分為多個16*16的像素子塊,對每個16*16的像素子塊作下述處理:確定出16*16的像素子塊的所述垂直分界線和所述水平分界線。
本發(fā)明將視頻幀分為多個16*16的像素子塊(例如圖4a,是本發(fā)明一個16*16的像素子塊的示意圖),然后確定出16*16的像素子塊的邊界線,對每個亮度宏塊,先濾波宏塊(即:16*16的視頻像素塊)最左邊的邊界(如圖4a中的a’),然后依次從左到右濾波宏塊內三個垂直邊界(如圖1的b’、c’到d’)。類似的,對水平邊界先濾波宏塊頂部的邊界(如圖1中的e’),然后依次從上到下濾波宏塊內三個水平邊界(如圖1中的f’、g’到h’)。
然后,將垂直分界線和水平分界線進行邊界濾波。
在具體的濾波過程中,需要先確定邊界線的過濾強度。
邊界強度(bs)決定去方塊濾波器選擇濾波參數(shù),控制去除方塊效應的程度。對所有4×4亮度塊間的邊界,邊界強度參數(shù)值在0到4之間,它與邊界的性質有關。表1說明bs與相鄰圖像塊的模式及編碼條件的關系。表中的條件是從表的上部至下部進行判斷的,直到某一條件滿足,給bs相應賦值。
表1
在實際濾波算法中,bs決定對邊界的濾波強度,包括對兩個主要濾波模式的選擇。當其值為4時表示要用特定最強的濾波模式(后續(xù)將介紹具體的濾波方式),而其值為0表示不需要對邊界進行濾波。對其值為1到3的標準濾波模式,bs值影響濾波器對樣點的最大修正程度。bs值的下降趨勢說明最強的方塊效應主要來自于幀內預測模式及對預測殘差編碼,而在較小程度上與圖像的運動補償有關。色度塊邊界濾波的bs值不另外單獨計算,而是從相應亮度塊邊界的bs值復制而來。在幀場自適應宏塊中,表1中的條件相對復雜些,因為相鄰兩圖像塊中的一個可能來自幀編碼宏塊或來自場編碼宏塊。濾波強度變化的原則不變。為了避免將圖像過度模糊化,對于來自場編碼宏塊的水平邊界需要特別考慮以避免過強的濾波強度,這是因為這種宏塊的垂直濾波的空間擴展范圍是其它情況的兩倍。
根據(jù)樣點集的bs值選擇兩種濾波方式。圖5為本發(fā)明實施例中樣點值取值示意圖。特定濾波方式是針對bs為4的強濾波,普通濾波方式應用于其它情況(bs=1,2,3)。濾波順序如圖4a所示。
對每種方式,用β閾值估計另外兩個空間變化條件,以決定亮度點的濾波范圍。
|p2-p0|<β(indexb)(6.62)
|q2-q0|<β(indexb)(6.63)
當上述條件成立,說明邊界變化強度不大,濾波強度設定值相對實際濾波來說偏大,需要進一步濾波。
圖6a-圖6b是垂直和水平濾波邊界像素情況。濾波運算可以分為基本濾波運算和限幅兩個階段。
bs值從1到3的邊界濾波:
基本濾波運算:
先討論對亮度點的濾波。對這種模式的濾波,濾波后的p0’和q0’值按下式計算:
p0’=p0+δ0(6.64)
q0'=q0-δ0(6.65)
其中δ0分兩步計算,先計算它的初始值δ0i,再對這個初始值進行限幅后代入上式。
初始值δ0i根據(jù)邊界兩邊的樣點值計算:
δ0i=(4(q0-p0)+(p1-q1)+4)>>3(6.66)
計算p0’的脈沖響應運算為(1,4,4,-1)/8。
只有式(6.62)或(6.63)成立,才修正對應p1或q1值。即如果式(6.62)成立,濾波后的p1’值按下式計算:
p1’=p1+δp1(6.67)
同樣,如果式(6.63)成立,濾波后的q1’值按下式計算:
q1’=q|1+δq1(6.68)
這些同樣要經(jīng)過兩步計算。對p1’的初始值δ按下式計算:
δpli=(p2+((p0+q0+1)>>1)-2p1)>>1(6.69)
δq1i按同樣關系式計算,用q2和q1分別代替p2和p1。上式相應的脈沖響應為(1,0,0.5,-0.5)/2,具有很強的低通特性。
限幅:
如果上述初始值δ0i、δp1i和δq1i直接應用在濾波計算中,則可能導致濾波頻率過低,出現(xiàn)圖像模糊。自適應濾波器的一個重要部分是限制δ的值。這個過程稱為限幅。對于內部和邊界上的樣點,限幅過程不同。
對于濾波邊界p0和q0樣點,δ0i的限幅值由c1和式(6.62)或(6.63)決定。先將它的限幅值c0定為c1。如果式(6.62或(6.63)都成立,說明邊界兩邊內部的變化強度小于β閾值,需要對邊界進行更強的濾波(同時如上述需要對p1和/或q1樣點進行修正),c0將增加1。這樣對邊界樣點的修正值為:
對色度點濾波,只有p0和q0才被修正。濾波方法與亮度點一樣,只是限幅值c。
0為c1加1。這樣對bs小于4的邊界沒有必要對色度的式(6.62)或(6.63)進行估計,也不必存取變量p2和q2值。
表2,濾波限幅變量c1與indexa和bs的關系。
表2
bs值為4的邊界濾波:
h.264/mpeg-4avc的幀內編碼在對同一圖像區(qū)域編碼時傾向采用16×16亮度預測模式。這會在宏塊邊界引起小幅度的方塊效應。但是由于machband效應,在這種情況下,即使是很小的強度值差別在視覺上的感覺是陡峭的階梯。為了消除這種馬賽克效應,需要在圖像內容平滑的兩個宏塊邊界采用較強的濾波器。
對亮度濾波,根據(jù)圖像內容判斷選擇較強的4拍或5拍濾波器,還是較弱的3拍濾波器。4拍或5拍濾波器對邊界兩邊的邊界點及兩個內部點進行修正,而3拍濾波器僅改變邊界點。只有下面的跨邊界差異的約束條件成立才使用較強的濾波器:
|p0-q0|<(α>>2)+2|(6.73)
注意,式(6.73)與式(6.53)很相似,只是它跨邊界的最大樣點值差異的約束很嚴格。
對亮度濾波,當式(6.62)和(6.73)都成立,根據(jù)下式計算濾波后的樣點值:
p0’=(p2+2p1+2p0+2q0+q1+4)>>3(6.74)
p1’=(p2+p1+p0+q0+2)>>2(6.75)
p2’=(2p3+3p2+p1+p0+q0+4)>>3(6.76)
否則,對色度點或當式(6.62)和(6.73)中只要有一個不成立的亮度點,只根據(jù)下式修正p0:
p0’=(2p1+p0+q1+2)>>2(6.77)
q點值的修正方法相同,只是在選擇亮度濾波器時用式(6.63)代替式(6.62)。
步驟12,確定出濾波后的垂直分界線和濾波后的水平分界線的至少一個交叉點。
在具體的實施過程中,垂直分界線和所述水平分界線交叉之后會形成交叉點,參看圖4a,交叉點是三條垂直邊界線b’、c’、d’和三條水平邊界線f’、g’、h’相互交叉形成的交叉點,共9個。
步驟13,確定出所述至少一個交叉點中每個交叉點的五個像素點。
在本發(fā)明的每個交叉點中都可以確定出五個像素點,五個像素點包括所述周邊四個像素點和所述居中像素點;其中,周邊四個像素點分別為:上像素點、下像素點、左像素點、右像素點。這種位置關系是基于以在正視圖中,居中像素點的位置為參考標準來設置的。
請參看圖4a,圖4a是一個16*16的宏塊,如果把分割為4*4的像素子塊,就會有垂直a’,b’,c’,d’四條邊。水平有e’,f’,g’,h’,四條邊。其中看到4*4像素子塊的右下角有5個像素值,我們設這五個像素點中,中間的是m0,上面m1,下面m2,左邊m3,右邊m4。
而在具體的實施過程中,參看圖4b,是a’,b’,e’,f’濾波之后的示意圖。其中,虛線框代表水平濾波,灰色框代表垂直濾波,中間而虛線框和灰色框重疊的部分代表需要水平和垂直2次濾波。
而每個交叉點的m0在兩次濾波時,需要跳過這兩次濾波,暫時不進行處理。
參看圖4c,是m0的示意圖,m0是黑色像素點,代表的是居中像素點.從圖4c中可以看出,居中像素點實際上有4個,是存在于交叉點的像素點,然后以m0為標準將周邊四個像素點確定出來。
從這個地方可以看出,以居中像素點m0來說,其周圍的m1和m3是需要濾波的像素點,而m2、m4是跳過濾波的居中像素點,那么在確定m0的像素值時,如果需要用到m2、m4,由于m2、m4沒有進行濾波,那么則使用m2、m4的原始像素點值。
步驟14,確定出所述周邊四個像素點中相對于所述居中像素點不是圖像邊界的像素點。
具體的處理過程中,可分別判斷所述周邊四個像素點相對于所述居中像素點是否為圖像邊界,進而確定出所述周邊四個像素點中相對于所述居中像素點不是圖像邊界的像素點。
在具體的實施過程中,由于所述周邊四個像素點為:上像素點、下像素點、左像素點、右像素點。
故而,分別判斷所述周邊四個像素點相對于所述居中像素點是否為圖像邊界,包括:
判斷所述上像素點相對于所述居中像素點是否為圖像邊界。
判斷所述下像素點相對于所述居中像素點是否為圖像邊界。
判斷所述左像素點相對于所述居中像素點是否為圖像邊界。
判斷所述右像素點相對于所述居中像素點是否為圖像邊界。
而這四個判斷過程類似,故而本申請僅用判斷所述上像素點相對于所述居中像素點是否為圖像邊界的過程進行舉例說明。
承接上述舉例,上像素點m1和居中像素點m0的判斷方式,具體為:
首先,確定出所述上像素點的像素值和所述居中像素點的原像素值的差值。
其次,判斷所述差值的絕對值是否大于一預設閾值。
若是,則所述上像素點相對于所述居中像素點是圖像邊界的像素點。
由于我們先進行了a’、b’、c’、d’、e’、f’、g’、h’邊界濾波,所以m1,m2,m3,m4現(xiàn)在是濾波后的值。
圖像邊界:是指視頻幀里面有很多的物體(如人的眼睛,樹木,等),每個物體與物體的邊界。而判斷是否是物體的邊界其實就是判斷每個像素點之間是否相差很大,既是否超過某一個閾值。上圖中a’、b’、c’、d’、e’、f’、g’、h’其實是像素塊的分割邊界。
參看圖5,主要說明p0、q0像素點是圖像邊界,因為像素點相差很大,而q0、q1像素點相差很小不是圖像邊界,p1、p0也不是圖像邊界。
步驟15,利用所述周邊四個像素點中相對于所述居中像素點不是圖像邊界的像素點確定出所述居中像素點的當前像素值。
在具體的實施過程中,若在周邊四個像素點中確定出相對于所述居中像素點不是圖像邊界的像素點,則獲得所述周邊四個像素點中相對于所述居中像素點不是圖像邊界的像素點的像素值。然后基于所述周邊四個像素點中相對于所述居中像素點不是圖像邊界的像素點的像素值和所述居中像素點的原像素值,得到所述居中像素點的當前像素值。
具體來說,是將所述周邊四個像素點中相對于所述居中像素點不是圖像邊界的像素點的像素值和所述居中像素點的原像素值相加,然后求出平均值,所述平均值就是所述居中像素點的當前像素值。
例如,四個像素點相對于居中像素點來說都不是圖像邊界的像素點,那么則將這四個像素點的值和居中像素點的原像素值相加,然后求出平均值。即:(m1+m2+m3+m4+m0(原))/5=m0(當前)這個平均值就是居中像素點的當前像素點。
經(jīng)過上面的操作后,原本來要進行2次濾波操作的m0像素點,現(xiàn)在只是判段是否是圖像邊界然后計算像素均值操作,大大的減少了計算步驟,提高了編碼效率。而且取均值操作其實是針對的是經(jīng)過濾波操作后的值,而且取均值可以使m0像素點很好的與m1,m2,m3,m4像素點相融合,不會顯得太突兀。
由于重建幀其實是殘差與預測像素值相加,不是真正的當前幀數(shù)據(jù),所以預測的像素塊與旁邊的像素塊像素值在a’,e‘邊上可能不是平滑的過度,既塊之間無法相容,雖然畫面內容可以辨認,但顯得很突兀,這也是產(chǎn)出塊效應的主要原因。而經(jīng)濾波處理以后塊之間就會顯得更協(xié)調,不會過于突兀。
算法介紹:
1)算法實現(xiàn):
a.增強的水平濾波和垂直濾波通用的強濾波函數(shù)
參數(shù)介紹:src:16*16像素子塊(輸入/輸出)xstride:像素塊橫向寬度(如果xstride=stride,ystride=1垂直過濾,xstride=1,ystride=stride水平過濾)alpha和beta:檢查圖像內容,以決定每個樣本點集是否要被濾波(輸入),p2,p1,p0,q0,q1,q2:像素塊對應點的像素值(臨時)
像素塊結構圖:
算法流程:
獲取對應點像素值,p2,p1,p0,q0,q1,q2。
根據(jù)上文(6.55),(6.56),(6.57)式判斷是否進行濾波。
根據(jù)上文(6.73)式判斷是否進行強濾波。
根據(jù)上文(6.62)式判斷相鄰的p2,p1,p0是否進行濾波。
根據(jù)上文(6.74),(6.75),(6.76)式對p2,p1,p0進行強濾波處理。
根據(jù)上文(6.63)式判斷相鄰的q0,q1,q2是否進行濾波。
根據(jù)上文(6.74),(6.75),(6.76)式對q0,q1,q2進行強濾波處理。
普通的水平濾波和垂直濾波通用的強濾波函數(shù)
參數(shù)介紹:src:16*16像素子塊(輸入/輸出)xstride:像素塊橫向寬度(如果xstride=stride,ystride=1垂直過濾,xstride=1,ystride=stride水平過濾)alpha和beta:檢查圖像內容,以決定每個樣本點集是否要被濾波(輸入),p2,p1,p0,q0,q1,q2:像素塊對應點的像素值(臨時)tc0:限幅值(輸入)
像素塊結構圖:
算法流程:
b.獲取對應點像素值,p2,p1,p0,q0,q1,q2
c.根據(jù)上文(6.55),(6.56),(6.57)式判斷是否進行濾波。
d.根據(jù)上文(6.62)式判斷p1是否進行濾波。
e.根據(jù)上文(6.69)式對p1進行濾波,并通過pixel_clip3進行限幅
f.根據(jù)上文(6.63)式判斷q1是否進行濾波。
g.根據(jù)上文(6.69)式對q1進行濾波,并通過pixel_clip3進行限幅
h.根據(jù)上文(6.66)式對p0,q0進行濾波,并通過clip_pixel進行限幅
c.增強的水平濾波和垂直濾波通用的強濾波函數(shù)
參數(shù)介紹:src:16*16像素子塊(輸入/輸出)xstride,ystride:像素塊橫向寬度和高度(如果xstride=stride,ystride=1垂直過濾,xstride=1,ystride=stride水平過濾)alpha和beta:檢查圖像內容,以決定每個樣本點集是否要被濾波(輸入)
算法流程:遍歷16個過濾的像素點,通過上文的強濾波函數(shù)進行過濾。
c.普通的水平濾波和垂直濾波通用的強濾波函數(shù)
參數(shù)介紹:src:16*16像素子塊(輸入/輸出)xstride,ystride:像素塊橫向寬度和高度(如果xstride=stride,ystride=1垂直過濾,xstride=1,ystride=stride水平過濾)alpha和beta:檢查圖像內容,以決定每個樣本點集是否要被濾波(輸入),tc0:限幅值(輸入)
算法流程:遍歷16個過濾的像素點,通過上文的普通濾波函數(shù)進行過濾。
基于同一發(fā)明構思,本發(fā)明公開了一種視頻幀的濾波裝置,參看圖7,包括:
濾波模塊71,用于將垂直分界線和水平分界線進行邊界濾波;
第一確定模塊72,用于確定出濾波后的垂直分界線和濾波后的水平分界線的至少一個交叉點;
第二確定模塊73,用于確定出所述至少一個交叉點中每個交叉點的五個像素點;所述五個像素點包括所述周邊四個像素點和所述居中像素點;
第三確定模塊74,用于確定出所述周邊四個像素點中相對于所述居中像素點不是圖像邊界的像素點;
第四確定模塊75,用于利用所述周邊四個像素點中相對于所述居中像素點不是圖像邊界的像素點確定出所述居中像素點的當前像素值。
作為一種可選的實施例,還包括:
劃分模塊,用于將垂直分界線和水平分界線進行邊界濾波之前,將所述視頻幀分為多個16*16的像素子塊,對每個16*16的像素子塊作下述處理:
第五確定模塊,用于確定出16*16的像素子塊的所述垂直分界線和所述水平分界線。
作為一種可選的實施例,所述第三確定模塊74,用于分別判斷所述周邊四個像素點相對于所述居中像素點是否為圖像邊界,進而確定出所述周邊四個像素點中相對于所述居中像素點不是圖像邊界的像素點。
作為一種可選的實施例,所述周邊四個像素點為:上像素點、下像素點、左像素點、右像素點;
第三確定模塊74,用于:
判斷所述上像素點相對于所述居中像素點是否為圖像邊界;
判斷所述下像素點相對于所述居中像素點是否為圖像邊界;
判斷所述左像素點相對于所述居中像素點是否為圖像邊界;
判斷所述右像素點相對于所述居中像素點是否為圖像邊界。
通過本發(fā)明的一個或者多個實施例,本發(fā)明具有以下有益效果或者優(yōu)點:
本發(fā)明提出了本發(fā)明公開了一種視頻幀的濾波方法及裝置。首先將垂直分界線和水平分界線進行邊界濾波后確定出垂直分界線和水平分界線的至少一個交叉點;然后根據(jù)交叉點的居中像素的周邊的四個像素點來確定出居中像素點的當前像素值,進而避免對居中像素點進行濾波,經(jīng)過上述操作后原本要進行2次濾波操作的居中像素點,現(xiàn)在只需要判斷其周圍的像素點是否是圖像邊界,然后根據(jù)周圍的像素點來確定出居中像素點的像素值,大大的減少了計算步驟,節(jié)約了時間,提高了編碼效率,進而提高了濾波效率,減少了方快幀的出現(xiàn)。
盡管已描述了本申請的優(yōu)選實施例,但本領域內的普通技術人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權利要求意欲解釋為包括優(yōu)選實施例以及落入本申請范圍的所有變更和修改。
顯然,本領域的技術人員可以對本申請進行各種改動和變型而不脫離本申請的精神和范圍。這樣,倘若本申請的這些修改和變型屬于本申請權利要求及其等同技術的范圍之內,則本申請也意圖包含這些改動和變型在內。