本技術(shù)涉及視頻編碼,尤其是涉及一種幀間運動估計編碼的目標像素點搜索方法。
背景技術(shù):
1、hevc作為新一代視頻編碼標準,相比上一代視頻編碼標準h.264/avc在壓縮效率上提升了一倍,但與此同時編碼復雜度也大大增加。這主要是由于hevc中引入了一些新的技術(shù),比如大尺寸的四叉樹分割、更高的預測精度、35種幀內(nèi)預測模式以及rdo技術(shù)和sao技術(shù)等。其中rdo過程需要計算每一種編碼尺寸和預測單元的編碼代價,從中選擇代價最小的作為最佳尺寸和預測模式,因此,rdo過程是編碼器編碼過程中計算量最大的部分。而幀間運動估計過程需要幀間預測塊從鄰近的參考幀中通過運動匹配的方式搜索得到最相似的塊,計算復雜度極高。由于幀間運動估計采用hevc,引入的新技術(shù)導致編碼的復雜度和計算的復雜度極高,不適用于視頻會議等實時應(yīng)用場景。
2、申請?zhí)枮閏n201510509889.0的《一種hevc幀間編碼快速模式選擇方法》主要是采用建模的方式尋找最優(yōu)像素點,容易陷入局部最優(yōu)的問題,對于幀間運動估計和降低編碼復雜度具有局限性。
3、針對上述中的相關(guān)技術(shù),發(fā)明人發(fā)現(xiàn)現(xiàn)有的幀間運動估計編碼方法存在有尋找最優(yōu)像素點時容易陷入局部最優(yōu)的問題而不適用于視頻會議等實時應(yīng)用場景的問題。
技術(shù)實現(xiàn)思路
1、為了使幀間運動估計編碼適用于視頻會議等實時應(yīng)用場景,提高編碼效率,本技術(shù)提供了一種幀間運動估計編碼的目標像素點搜索方法。
2、第一方面,本技術(shù)提供一種幀間運動估計編碼的目標像素點搜索方法。
3、本技術(shù)是通過以下技術(shù)方案得以實現(xiàn)的:
4、一種幀間運動估計編碼的目標像素點搜索方法,包括以下步驟,
5、獲取待編碼視頻幀;
6、基于幀間預測,結(jié)合參考幀,對所述待編碼視頻幀的當前幀中的一個塊進行預測,得到預測塊;
7、根據(jù)所述預測塊進行整像素搜索,確定整像素最優(yōu)搜索點;
8、利用所述整像素最優(yōu)搜索點進行半像素搜索,確定半像素最優(yōu)搜索點;
9、通過所述半像素最優(yōu)搜索點,判斷是否進行1/4像素搜索;
10、若進行1/4像素搜索,確定1/4像素最優(yōu)搜索點;
11、從所述整像素最優(yōu)搜索點、所述半像素最優(yōu)搜索點和所述1/4像素最優(yōu)搜索點中選擇失真最小的搜索像素點,作為目標像素點。
12、本技術(shù)在一較佳示例中可以進一步配置為:還包括以下步驟,
13、若不進行1/4像素搜索,則從所述整像素最優(yōu)搜索點和所述半像素最優(yōu)搜索點中選擇失真最小的搜索像素點,作為目標像素點。
14、本技術(shù)在一較佳示例中可以進一步配置為:根據(jù)所述預測塊進行整像素搜索,確定整像素最優(yōu)搜索點的步驟包括,
15、利用所述預測塊在空域和時域上的相鄰編碼塊的運動矢量,組成運動矢量集合;
16、從所述運動矢量集合中尋找失真最小的運動矢量,作為當前編碼塊的初始矢量,得到當前編碼塊在參考幀中的整像素搜索起始點;
17、以所述整像素搜索起始點為中心,分別以預設(shè)的步長進行菱形搜索,并選擇當前菱形搜索中失真最小的點作為下一次菱形搜索的搜索中心點;
18、進行下一次菱形搜索前,先計算所述搜索中心點與所述整像素搜索起始點的距離;
19、判斷所述距離與預設(shè)的距離閾值的大小;
20、若所述距離與所述距離閾值的大小滿足預設(shè)條件,則進入下一次菱形搜索,直至整像素搜索點出現(xiàn)在搜索中心位置,得到所述整像素最優(yōu)搜索點,所述整像素最優(yōu)搜索點的失真值小于或等于預設(shè)的第一閾值。
21、本技術(shù)在一較佳示例中可以進一步配置為:判斷所述距離與預設(shè)的距離閾值的大小的步驟后,還包括,
22、若所述距離與所述距離閾值的大小不滿足預設(shè)條件,則以所述搜索中心點作為所述整像素搜索起始點,按預設(shè)的步長進行全遍歷搜索,得到所述整像素最優(yōu)搜索點。
23、本技術(shù)在一較佳示例中可以進一步配置為:利用所述整像素最優(yōu)搜索點進行半像素搜索,確定半像素最優(yōu)搜索點的步驟包括,
24、以所述整像素最優(yōu)搜索點為中心進行矩形檢索,搜索時按(-2,0)→(2,0)→(0,-2)→(0,2)→(-2,-2)→(2,-2)→(-2,2)→(2,2)的順序進行,選擇失真最小的搜索點,作為所述半像素最優(yōu)搜索點。
25、本技術(shù)在一較佳示例中可以進一步配置為:所述確定1/4像素最優(yōu)搜索點的步驟包括,
26、判斷所述半像素最優(yōu)搜索點的位置;
27、當所述半像素最優(yōu)搜索點位于像素塊的中點位置,按照(0,-1)→(0,1)→(-1,0)→(-1,-1)/(-1,1)→(1,0)→(1,-1)/(1,1)的順序進行1/4像素搜索;
28、先計算(0,-1)、(0,1)和(-1,0)的像素值,確定當前的1/4像素搜索點;
29、若當前的1/4像素搜索點為(0,-1)或者(-1,0),則計算(-1,-1)的像素值,得到1/4像素最優(yōu)搜索點;
30、若當前的1/4像素搜索點為(-1,0)或者(0,1),則計算(-1,1)的像素值,得到1/4像素最優(yōu)搜索點;
31、再計算(1,0)的像素值,確定當前的1/4像素搜索點;
32、若當前的1/4像素搜索點為(0,-1)或者(1,0),則計算(1,-1)的像素值,得到1/4像素最優(yōu)搜索點。
33、本技術(shù)在一較佳示例中可以進一步配置為:判斷所述半像素最優(yōu)搜索點的位置的步驟后,還包括,
34、當所述半像素最優(yōu)搜索點位于像素塊的橫軸上時,搜索時按(0,-1)→(0,1)→(-1,0)→(-1,-1)/(-1,1)→(1,0)→(1,-1)/(1,1)的順序進行1/4像素搜索;
35、先計算(0,-1)和(0,1)的像素值;
36、判斷所述半像素最優(yōu)搜索點的位置;
37、當所述半像素最優(yōu)搜索點的位置位于像素塊的正橫軸上時,則計算(-1,0)的像素值,確定當前的1/4像素搜索點;
38、若當前的1/4像素搜索點為(0,-1)和(-1,0),則計算(-1,-1)的像素值,得到1/4像素最優(yōu)搜索點;
39、若當前的1/4像素搜索點為(-1,0)和(0,1),則計算(-1,1)的像素值,得到1/4像素最優(yōu)搜索點;
40、當所述半像素最優(yōu)搜索點的位置位于像素塊的負橫軸上時,則計算(1,0)的像素值,確定當前的1/4像素搜索點;
41、若當前的1/4像素搜索點為(0,-1)或者(1,0),則計算(1,-1)的像素值,得到1/4像素最優(yōu)搜索點;
42、若當前的1/4像素搜索點為(1,0),則計算(1,1)的像素值,得到1/4像素最優(yōu)搜索點。
43、本技術(shù)在一較佳示例中可以進一步配置為:判斷所述半像素最優(yōu)搜索點的位置的步驟后,還包括,
44、當所述半像素最優(yōu)搜索點位于像素塊的縱軸上時,搜索時按(0,-1)/(0,1)→(-1,0)→(-1,-1)/(-1,1)→(1,0)→(1,-1)/(1,1)的順序進行1/4像素搜索;
45、若所述半像素最優(yōu)搜索點為(0,2),則計算(0,-1)的像素值,確定當前的1/4像素搜索點;
46、若所述半像素最優(yōu)搜索點為(0,-2),則計算(0,1)的像素值,確定當前的1/4像素搜索點;
47、計算(-1,0)的像素值,判斷所述半像素最優(yōu)搜索點的位置和當前的1/4像素搜索點的位置;
48、當所述半像素最優(yōu)搜索點為(0,2)且當前的1/4像素搜索點為(0,-1)或者(-1,0)時,計算(1,-1)的像素值,得到1/4像素最優(yōu)搜索點;
49、當所述半像素最優(yōu)搜索點為(0,-2)且當前的1/4像素搜索點為(0,1)或者(-1,0)時,計算(-1,1)的像素值,得到1/4像素最優(yōu)搜索點;
50、計算(1,0)的像素值,判斷所述半像素最優(yōu)搜索點的位置和當前的1/4像素搜索點的位置;
51、當所述半像素最優(yōu)搜索點為(0,2)且當前的1/4像素搜索點為(0,-1)或者(1,0)時,計算(1,-1)的像素值,得到1/4像素最優(yōu)搜索點;
52、當所述半像素最優(yōu)搜索點為(0,-2)且當前的1/4像素搜索點為(0,1)或者(1,0)時,計算(1,1)的像素值,得到1/4像素最優(yōu)搜索點。
53、本技術(shù)在一較佳示例中可以進一步配置為:判斷所述半像素最優(yōu)搜索點的位置的步驟后,還包括,
54、當所述半像素最優(yōu)搜索點位于像素塊的頂點位置時,搜索時按(0,-1)/(0,1)→(-1,0)→(-1,-1)/(-1,1)→(1,0)→(1,-1)/(1,1)的順序進行1/4像素搜索;
55、判斷所述半像素最優(yōu)搜索點的位置;
56、若所述半像素最優(yōu)搜索點的垂直坐標為2,則計算(0,-1)的像素值,得到1/4像素最優(yōu)搜索點;
57、若所述半像素最優(yōu)搜索點的垂直坐標不為2,則計算(0,1)的像素值,得到1/4像素最優(yōu)搜索點;
58、若所述半像素最優(yōu)搜索點的水平坐標為2,則計算(-1,0)的像素值,得到1/4像素最優(yōu)搜索點;
59、若所述半像素最優(yōu)搜索點的垂直坐標為2且當前的1/4像素搜索點為(0,-1)或者(-1,0),則計算(-1,-1)的像素值,得到1/4像素最優(yōu)搜索點;
60、若所述半像素最優(yōu)搜索點的垂直坐標為-2且當前的1/4像素搜索點為(-1,0)或者(0,1),則計算(-1,1)的像素值,得到1/4像素最優(yōu)搜索點;
61、若所述半像素最優(yōu)搜索點的水平坐標為-2,則計算(1,0)的像素值,得到1/4像素最優(yōu)搜索點;
62、若所述半像素最優(yōu)搜索點為(-2,-2)且當前的1/4像素搜索點為(0,-1)或者(1,0),則計算(1,-1)的像素值,得到1/4像素最優(yōu)搜索點;
63、若當前的1/4像素搜索點為(0,1)或者(1,0),則計算(1,1)的像素值,得到1/4像素最優(yōu)搜索點。
64、本技術(shù)在一較佳示例中可以進一步配置為:通過所述半像素最優(yōu)搜索點,判斷是否進行1/4像素搜索的步驟包括,
65、計算各半像素搜索點中的最大失真值與所述整像素最優(yōu)搜索點的失真值的差值;
66、若所述半像素搜索點的最大失真值與所述整像素最優(yōu)搜索點的失真值的差值大于或等于預設(shè)的第二閾值,則判斷所述半像素最優(yōu)搜索點的失真值是否大于merge模式的最小失真值;
67、當所述半像素最優(yōu)搜索點的失真值大于merge模式的最小失真值時,判定進行1/4像素搜索;
68、當所述半像素搜索點的最大失真值與所述整像素最優(yōu)搜索點的失真值的差值小于所述第二閾值時,判定不進行1/4像素搜索。
69、第二方面,本技術(shù)提供一種幀間運動估計編碼的目標像素點搜索裝置。
70、本技術(shù)是通過以下技術(shù)方案得以實現(xiàn)的:
71、一種幀間運動估計編碼的目標像素點搜索裝置,包括,
72、采集模塊,用于獲取待編碼視頻幀;
73、幀間預測模塊,用于基于幀間預測,結(jié)合參考幀,對所述待編碼視頻幀的當前幀中的一個塊進行預測,得到預測塊;
74、整像素搜索模塊,用于根據(jù)所述預測塊進行整像素搜索,確定整像素最優(yōu)搜索點;
75、半像素搜索模塊,用于利用所述整像素最優(yōu)搜索點進行半像素搜索,確定半像素最優(yōu)搜索點;
76、判斷模塊,用于通過所述半像素最優(yōu)搜索點,判斷是否進行1/4像素搜索;
77、1/4像素搜索模塊,用于進行1/4像素搜索,確定1/4像素最優(yōu)搜索點;
78、最優(yōu)搜索點確定模塊,用于從所述整像素最優(yōu)搜索點、所述半像素最優(yōu)搜索點和所述1/4像素最優(yōu)搜索點中選擇失真最小的搜索像素點,作為目標像素點。
79、綜上所述,與現(xiàn)有技術(shù)相比,本技術(shù)提供的技術(shù)方案帶來的有益效果至少包括:
80、基于幀間預測,利用前后幀之間的相似性,結(jié)合參考幀,對獲取的待編碼視頻幀的當前幀中的一個塊進行預測,得到預測塊,通過存儲實際視頻塊與預測塊之間的預測誤差,無需存儲整個視頻塊的像素數(shù)據(jù),以減少待編碼視頻的數(shù)據(jù)量,提高編碼效率;根據(jù)預測塊進行整像素搜索,確定整像素最優(yōu)搜索點,利用整像素最優(yōu)搜索點進行半像素搜索,確定半像素最優(yōu)搜索點,以充分利用預測塊的特征和最優(yōu)半像素點的位置和搜索趨勢確定最優(yōu)搜索點,通過所述半像素最優(yōu)搜索點,判斷是否進行1/4像素搜索,最終確定最優(yōu)搜索點;克服現(xiàn)有技術(shù)中采用建模方式尋找最優(yōu)搜索點容易陷入局部最優(yōu)的問題,從而有效降低幀間運動估計中的分像素計算復雜度,在不降低或者小幅降低編碼性能的前提下,提高編碼效率,使幀間運動估計編碼適用于視頻會議等實時應(yīng)用場景,利于實時視頻編碼處理的實現(xiàn)。