專利名稱:優(yōu)化搜索算法的視頻數(shù)據(jù)壓縮方法及裝置的制作方法
技術領域:
本發(fā)明涉及視頻壓縮算法中的運動估計,特別地,涉及優(yōu)化使用搜索模板的搜索算法的視頻數(shù)據(jù)壓縮方法及裝置。
背景技術:
目前的視頻壓縮算法大都是基于運動估計的,也就是根據(jù)前一幀的像素來預測當前幀的像素移動位置,產(chǎn)生的預測運動矢量和預測值與實際值的誤差作為壓縮后的數(shù)據(jù)進行處理并傳輸。在實際算法中一般有三種視頻幀I、P、B。I幀是不進行運動補償直接壓縮,P幀是進行前向的運動估計,B幀通常在比較高的壓縮層次中出現(xiàn),是雙向的預測幀。在一個視頻壓縮算法中計算量最大的就是運動估計,運動估計是最耗費時間的模塊。
運動估計的核心思想就是要運算次數(shù)越少,收斂速度越快,找到和前一幀對應像素塊匹配的位置。比較常用的搜索算法有三步法、梯度法、鉆石法等。
三步法(TSS)是幀內(nèi)編碼運動估計時的搜索算法。為了減少搜索算法的計算復雜度并提高運動補償?shù)臏蚀_性,TSS采用9點正方形對目標塊進行最優(yōu)匹配,其基本思想是利用搜索模板的形狀和大小對運動估計算法速度及精度產(chǎn)生重要影響的特性。在搜索最優(yōu)匹配點時,選擇小的搜索模板可能會陷入局部最優(yōu),選擇大的搜索模板則可能無法找到最優(yōu)點。
參照圖1,圖1是現(xiàn)有技術中三步法搜索模板的示意圖。三步法的搜索過程如下第一步,以目標塊為中心,往四個方向擴展以一定步長取8個點,進行比較;第二步,將步長減半,以之前最優(yōu)塊為中心向四周擴展取8個點,進行比較;重復第一、第二步,直到步長小于1,得到最優(yōu)點。
鉆石搜索(DS,Diamond Search)法以搜索模板形狀而得名,具有簡單、魯棒、高效的特點,是現(xiàn)有性能最優(yōu)的快速搜索算法之一。DS算法針對視頻圖像中運動矢量的基本規(guī)律,選用了兩種形狀大小的搜索模板,一種為大鉆石搜索模板(LDSP,Large Diamond SearchPattern),參照圖2,圖2是現(xiàn)有技術中大鉆石搜索模板的示意圖,它包含9個候選位置;另一種為小鉆石搜索模板(SDSP,Small DiamondSearch Pattern),參照圖3,圖3是現(xiàn)有技術中小鉆石搜索模板的示意圖,它包含5個候選位置。
DS算法搜索過程如下開始階段先重復使用大鉆石搜索模板,直到最佳匹配塊落在大鉆石中心。由于LDSP步長大,因而搜索范圍廣,可實現(xiàn)粗定位,使搜索不會陷于局部最小。當粗定位結束后,可認為最優(yōu)點就在LDSP周圍8個點所圍菱形區(qū)域中。然后再使用小鉆石搜索模板來實現(xiàn)最佳匹配塊的準確定位,以不產(chǎn)生較大起伏,從而提高運動估計精度。
在三步搜索算法和DS搜索算法中,需要讀取的匹配點的位置是變化的,這些位置在內(nèi)存中是不連續(xù)的。而在系統(tǒng)緩存內(nèi),數(shù)據(jù)的地址是連續(xù)的。因此操作系統(tǒng)在進行緩存時,內(nèi)存數(shù)據(jù)失效率增加,直接對內(nèi)存的訪問必然會引起訪問失效,增加訪問等待時間。
發(fā)明內(nèi)容
本發(fā)明要解決的技術問題是,縮短處理器或硬件邏輯在進行搜索算法計算時因緩存失效而造成的額外等待時間。
根據(jù)本發(fā)明的第一方面,提供一種優(yōu)化使用搜索模板的搜索算法的視頻數(shù)據(jù)壓縮方法,所述方法包括根據(jù)搜索模板和搜索步長,確定搜索模板中其余各搜索塊相對于當前搜索塊的偏移地址;在搜索中,根據(jù)當前搜索塊的起始地址和所述各偏移地址,計算其余各搜索塊的起始地址;以及在進行匹配運算之前,將當前搜索塊的視頻數(shù)據(jù)和其余各搜索塊的視頻數(shù)據(jù)依次預讀入緩存。
在第一方面中,優(yōu)選地,所述使用搜索模板的搜索算法包括使用單一搜索模板的搜索算法。
優(yōu)選地,所述使用單一搜索模板的搜索算法包括三步搜索算法。
優(yōu)選地,所述使用搜索模板的搜索算法包括使用多級搜索模板的搜索算法。
優(yōu)選地,所述使用多級搜索模板的搜索算法包括鉆石搜索算法。
優(yōu)選地,所述當前搜索塊位于模板的中心。
根據(jù)本發(fā)明的第二方面,提供一種優(yōu)化使用搜索模板的搜索算法的視頻數(shù)據(jù)壓縮裝置,所述裝置包括偏移地址確定裝置,用于根據(jù)搜索模板和搜索步長,確定搜索模板中其余各搜索塊相對于當前搜索塊的偏移地址;起始地址計算裝置,在搜索中用于根據(jù)當前搜索塊的起始地址和所述各偏移地址,計算其余各搜索塊的起始地址;以及塊數(shù)據(jù)預讀裝置,用于在進行匹配運算之前,將當前搜索塊的視頻數(shù)據(jù)和其余各搜索塊的視頻數(shù)據(jù)依次預讀入緩存。
在第二方面中,優(yōu)選地,所述使用搜索模板的算法包括使用單一搜索模板的搜索算法。
優(yōu)選地,所述使用單一搜索模板的搜索算法包括三步搜索算法。
優(yōu)選地,所述使用搜索模板的搜索算法包括使用多級搜索模板的搜索算法。
優(yōu)選地,所述使用多級搜索模板的搜索算法包括鉆石搜索算法。
優(yōu)選地,所述當前搜索塊位于模板的中心。
盡管搜索算法對塊的讀取是非連續(xù)的,但是根據(jù)本發(fā)明,可通過計算來確定數(shù)據(jù)塊的地址,利用緩存預讀技術改進單一的內(nèi)存預讀,從而提高內(nèi)存緩存成功率,大量縮短處理器或硬件邏輯的額外等待時間。
圖1是現(xiàn)有技術中三步法搜索模板的示意圖;圖2是現(xiàn)有技術中大鉆石搜索模板的示意圖;圖3是現(xiàn)有技術中小鉆石搜索模板的示意圖;圖4是根據(jù)本發(fā)明優(yōu)化三步搜索算法的視頻數(shù)據(jù)壓縮方法的流程圖;圖5是根據(jù)本發(fā)明優(yōu)化鉆石搜索算法的視頻數(shù)據(jù)壓縮方法的流程圖。
為更好地理解本發(fā)明,下面結合附圖和具體實施方式
對本發(fā)明作進一步說明。
具體實施例方式
根據(jù)本發(fā)明,優(yōu)化三步搜索算法的視頻數(shù)據(jù)壓縮方法的過程為首先,偏移地址確定裝置根據(jù)三步法的搜索模板和搜索步長,確定搜索模板中其余各搜索塊相對于當前搜索塊的偏移地址??山⒁粡埰频刂穼φ毡恚瑢阉鞑介L以及模板索引可得到其余各搜索塊相對于當前搜索塊的偏移地址,優(yōu)選地,當前搜索塊位于模板的中心。參照圖1,對于三步法搜索模板,以當前搜索塊為中心,從位于它左側的搜索塊起沿順時針方向,各搜索塊的偏移地址分別如下表所示,其中n是搜索步長,當前搜索塊的偏移地址為(0,0)。
其次,起始地址計算裝置在搜索中根據(jù)當前搜索塊的起始地址和各偏移地址,計算其余各搜索塊的起始地址。如當前搜索塊起始地址為(72,36),步長為4,那么對應的各個搜索塊的起始地址分別為(72,36),(72-4,36),(72-4,36+4),依次類推。
最后,塊數(shù)據(jù)預讀裝置在進行匹配運算之前,將當前搜索塊的視頻數(shù)據(jù)和其余各搜索塊的視頻數(shù)據(jù)依次預讀入緩存。這里,匹配運算的常用匹配準則包括絕對誤差和(SAD)、均方誤差(MSE)及歸一化互相關函數(shù)(NCCF),其中SAD不需要乘法運算,實現(xiàn)簡單。確定了塊的起始地址,因為塊是8×8大小的像素塊,就可以將塊的視頻數(shù)據(jù)讀到緩存中。在嵌入式平臺,如DSP和ARM平臺上提供了專門對緩存進行處理的指令。使用處理器或DSP的專用指令,如ARM的PLD指令可將視頻數(shù)據(jù)讀取到緩存。這樣,用緩存預讀(Cache preload)在運算之前進行緩存,提高了系統(tǒng)性能。
在三步法第一步前,先讀取偏移地址對照表,將指定地址的數(shù)據(jù)讀入緩存中。計算得到一個最優(yōu)點時,根據(jù)新的步長,預先將指定地址的視頻數(shù)據(jù)讀入緩存,不斷重復。參照圖4,圖4是根據(jù)本發(fā)明優(yōu)化三步搜索算法的視頻數(shù)據(jù)壓縮方法的流程圖。上述過程的具體步驟如下1)建立一個TSS模板偏移地址對照表;2)讀取參考幀中一個塊數(shù)據(jù);3)以對應的塊地址為中心,從偏移地址對照表中依次得到每個塊的起始地址;4)在系統(tǒng)計算SAD時,將塊數(shù)據(jù)讀入緩存中,比較之前的結果保存較小的值,重復8次;5)如果中心點塊的SAD值最小,那么本次搜索結束。否則,將中心點移到SAD值最小的那個塊,將步長減半后,重復執(zhí)行步驟3),直到步長小于1,得到最優(yōu)值。
根據(jù)本發(fā)明,優(yōu)化鉆石搜索算法的視頻數(shù)據(jù)壓縮方法的過程為首先,偏移地址確定裝置根據(jù)DS搜索算法的兩種模板,分別確定每一模板中其余各搜索塊相對于當前搜索塊的偏移地址。可建立兩張偏移地址對照表,對應搜索步長以及模板索引可得到各搜索塊相對于當前搜索塊的偏移地址,優(yōu)選地,當前搜索塊位于模板的中心。參照圖2、3,以當前搜索塊為中心,從位于它左側的搜索塊起沿順時針方向,大、小鉆石搜索模板中各搜索塊的偏移地址分別如LDSP表、SDSP表中所示,其中當前搜索塊的偏移地址為(0,0),n是大模板的當前搜索步長,小模板的搜索步長為1。
其次,起始地址計算裝置在搜索中根據(jù)當前搜索塊的起始地址和各偏移地址,計算其余各搜索塊的起始地址。如當前搜索塊起始地址為(72,36),步長為2,那么對應的大模板中各個搜索塊的起始地址分別為(72,36),(72-2,36),(72-2/2,36+2/2),依次類推。
最后,塊數(shù)據(jù)預讀裝置在進行匹配運算之前,將當前搜索塊的視頻數(shù)據(jù)和其余各搜索塊的視頻數(shù)據(jù)依次預讀入緩存。同樣地,這里匹配運算的常用匹配準則也包括絕對誤差和(SAD)、均方誤差(MSE)及歸一化互相關函數(shù)(NCCF)。仍可使用處理器或DSP的專用指令,如ARM的PLD指令將視頻數(shù)據(jù)讀取到緩存,同樣利用緩存預讀(Cachepreload)在運算之前進行緩存,提高了系統(tǒng)性能。
參照圖5,圖5是根據(jù)本發(fā)明優(yōu)化鉆石搜索算法的視頻數(shù)據(jù)壓縮方法的流程圖。上述過程的具體步驟為1)讀取一個參考幀的塊數(shù)據(jù);2)根據(jù)第一個塊的起始地址,將第一塊的數(shù)據(jù)讀到緩存中,根據(jù)當前步長在LDSP表中確定其余各塊的起始地址;3)在系統(tǒng)進行SAD計算時,將第二個塊讀到緩存中,比較并保存較優(yōu)值,重復8次;4)如果中心點塊的SAD值最小,則進入小模板匹配環(huán)節(jié),否則將中心點移到SAD最小的那個塊,調(diào)整步長,重復執(zhí)行步驟2);5)確定在SDSP表中第一個塊的起始地址,將第一塊的視頻數(shù)據(jù)讀到緩存中;6)在系統(tǒng)進行當前塊SAD計算時,將第二個塊讀到緩存中,比較并保存較優(yōu)值,重復4次;7)如果中心點的SAD值最小,則當前塊搜索結束,否則將中心點移到SAD值最小的那個塊,重復執(zhí)行步驟5),直至得到最優(yōu)點。
上述優(yōu)化三步搜索算法和鉆石搜索算法的過程和具體步驟中,所述當前搜索塊位于搜索模板的中心只是一個例子,這里當前搜索塊也可以位于搜索模板中除中心以外的其他任何位置。
前文分別以優(yōu)化使用單一搜索模板的三步法和優(yōu)化使用兩級搜索模板的DS算法為例,對本發(fā)明作了說明性的描述。除此之外,本發(fā)明還可優(yōu)化使用其他單一搜索模板的搜索算法,以及優(yōu)化使用其他多級搜索模板的搜索算法,如四步法、二維對數(shù)法等,這對本領域技術人員來講是顯然的。
顯而易見,在此描述的本發(fā)明可以有許多變化,這種變化不能認為偏離本發(fā)明的精神和范圍。因此,所有對本領域技術人員顯而易見的改變,都包括在本權利要求書的涵蓋范圍之內(nèi)。
權利要求
1.一種優(yōu)化使用搜索模板的搜索算法的視頻數(shù)據(jù)壓縮方法,包括根據(jù)搜索模板和搜索步長,確定搜索模板中其余各搜索塊相對于當前搜索塊的偏移地址;在搜索中,根據(jù)當前搜索塊的起始地址和所述各偏移地址,計算其余各搜索塊的起始地址;以及在進行匹配運算之前,將當前搜索塊的視頻數(shù)據(jù)和其余各搜索塊的視頻數(shù)據(jù)依次預讀入緩存。
2.如權利要求1所述的視頻數(shù)據(jù)壓縮方法,所述使用搜索模板的搜索算法包括使用單一搜索模板的搜索算法。
3.如權利要求2所述的視頻數(shù)據(jù)壓縮方法,所述使用單一搜索模板的搜索算法包括三步搜索算法。
4.如權利要求1所述的視頻數(shù)據(jù)壓縮方法,所述使用搜索模板的搜索算法包括使用多級搜索模板的搜索算法。
5.如權利要求4所述的視頻數(shù)據(jù)壓縮方法,所述使用多級搜索模板的搜索算法包括鉆石搜索算法。
6.如權利要求1至5中任一項所述的視頻數(shù)據(jù)壓縮方法,所述當前搜索塊位于模板的中心。
7.一種優(yōu)化使用搜索模板的搜索算法的視頻數(shù)據(jù)壓縮裝置,包括偏移地址確定裝置,用于根據(jù)搜索模板和搜索步長,確定搜索模板中其余各搜索塊相對于當前搜索塊的偏移地址;起始地址計算裝置,在搜索中用于根據(jù)當前搜索塊的起始地址和所述各偏移地址,計算其余各搜索塊的起始地址;以及塊數(shù)據(jù)預讀裝置,用于在進行匹配運算之前,將當前搜索塊的視頻數(shù)據(jù)和其余各搜索塊的視頻數(shù)據(jù)依次預讀入緩存。
8.如權利要求7所述的視頻數(shù)據(jù)壓縮裝置,所述使用搜索模板的搜索算法包括使用單一搜索模板的搜索算法。
9.如權利要求8所述的視頻數(shù)據(jù)壓縮裝置,所述使用單一搜索模板的搜索算法包括三步搜索算法。
10.如權利要求7所述的視頻數(shù)據(jù)壓縮裝置,所述使用搜索模板的搜索算法包括使用多級搜索模板的搜索算法。
11.如權利要求10所述的視頻數(shù)據(jù)壓縮裝置,所述使用多級搜索模板的搜索算法包括鉆石搜索算法。
12.如權利要求7至11中任一項所述的視頻數(shù)據(jù)壓縮裝置,所述當前搜索塊位于模板的中心。
全文摘要
本發(fā)明公開了一種優(yōu)化使用搜索模板的搜索算法的視頻數(shù)據(jù)壓縮方法與裝置,該方法包括以下步驟根據(jù)搜索模板和搜索步長,確定搜索模板中其余各搜索塊相對于當前搜索塊的偏移地址;在搜索中,根據(jù)當前搜索塊的起始地址和所述各偏移地址,計算其余各搜索塊的起始地址;以及在進行匹配運算之前,將當前搜索塊的視頻數(shù)據(jù)和其余各搜索塊的視頻數(shù)據(jù)依次預讀入緩存。本發(fā)明提高了內(nèi)存緩存成功率。
文檔編號H04N5/14GK1700736SQ20051007319
公開日2005年11月23日 申請日期2005年6月1日 優(yōu)先權日2004年12月31日
發(fā)明者懷千江, 白鋒, 王浩 申請人:北京中星微電子有限公司