專利名稱:一種視頻編解碼過程中進行運動估計搜索計算的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種視頻編解碼中的運動估計搜索計算的方法。
背景技術(shù):
視頻幀間編碼利用圖像的時間和空間冗余度來壓縮視頻,利用相鄰幀之間的圖像相關(guān)性,通過前一幀(或后一幀)來預(yù)測當前幀。預(yù)測越準確,傳輸?shù)拇a流就可以壓縮得越小。運動估計(Motion Estimation,ME)就是來實現(xiàn)這樣一種運動圖像預(yù)測的方法。運動估計算法的結(jié)果準確性影響碼流的大小,而其運算復雜性影響幀率的快慢,這兩項指標都是實時視頻編碼效率的主要指標。
在H.263、MPEG-4和H.264運動估計算法都是以宏塊(Macro block)匹配為基礎(chǔ),對當前幀里的一個16×16的宏塊,在上一幀(即參考幀)里眾多的16×16的宏塊中找出和它差別最小的一塊。當前幀的塊和上一幀的最小差別塊之間的運動位移就是運動估計所要計算的運動向量。
在匹配當前的宏塊時,可以采用全搜索或快速搜索的算法在參考幀里搜索,如采用快速搜索算法時,即在指定區(qū)域,比如以該宏塊為中心的32×32像素范圍內(nèi),以一定的模板或指定步長進行SAD(Sum Of Absolute Difference絕對差和)計算,最后確定局部最優(yōu)點。由于搜索時是從左到右,從上到下依次掃描每個宏塊,然而相鄰宏塊之間的搜索空間是幾乎重疊的。因此,按照現(xiàn)有技術(shù)進行掃描,實質(zhì)上對同樣的數(shù)據(jù)進行了多次掃描和運算,并且每次也只能讀取一個搜索區(qū)域進行一個宏塊的匹配,而無法進行快速搜索計算。
發(fā)明內(nèi)容
本發(fā)明的目的是針對現(xiàn)有技術(shù)的不足,提供一種簡單、快速,可同時對多個宏塊進行并行搜索計算的視頻編解碼過程中進行運動估計搜索計算的方法。
為了解決上述技術(shù)問題,本發(fā)明所采取的技術(shù)方案是一種視頻編解碼過程中進行運動估計搜索計算的方法,包括步驟一、在當前幀里從左至右的獲取至少兩個依次相鄰的16×16像素的宏塊,其中第一個宏塊為首宏塊,最后一個宏塊為尾宏塊;步驟二、在參考幀里預(yù)先設(shè)定一區(qū)域半徑,以所述首宏塊為中心,確定一方形搜索區(qū)域,使所述搜索區(qū)域的左邊、上邊和下邊均與首宏塊之間的距離為區(qū)域半徑,搜索區(qū)域的右邊與首宏塊之間的距離=區(qū)域半徑+16*(n-1),則所述搜索區(qū)域大?。?2*區(qū)域半徑)×(區(qū)域半徑+區(qū)域半徑+16*(n-1)),其中n為獲取的宏塊個數(shù);步驟三、讀取參考幀內(nèi)所確定的搜索區(qū)域中的宏塊數(shù)據(jù),用于同時對所有獲取的宏塊進行搜索匹配。
所述步驟三可以采用快速搜索的方法,即首先,讀取所述搜索區(qū)域內(nèi)的宏塊數(shù)據(jù);其次,按照快速搜索第一個模板的步長對所有宏塊進行絕對差和計算,取最小誤差位置為新的位置;然后,以新的位置為中心以新的步長或新的模板,同時計算各個宏塊的絕對差和,再取最小誤差位置為新的位置;最后,重復前一步驟,直到滿足搜索匹配結(jié)束條件。
所述步驟一中可以獲取兩個相鄰的宏塊。
所述步驟二中,可以預(yù)先設(shè)定區(qū)域半徑為16像素;以兩個宏塊中的首宏塊為中心,確定一方形搜索區(qū)域,使該搜索區(qū)域的左邊、上邊和下邊均與首宏塊之間的距離為16像素,搜索區(qū)域的右邊與首宏塊之間的距離為32像素,則所述搜索區(qū)域大小為32×48像素。
所述步驟三可以采用快速搜索方法中的三步法,即首先,讀取所述32×48像素的搜索區(qū)域內(nèi)的宏塊數(shù)據(jù);其次,按照三步法的步長獲得兩個宏塊的第一個模板,進行絕對差和計算,并取最小誤差位置為新的位置;然后,重用所述模板,以新的位置為中心,步長減半得到新的比較點,同時計算兩個宏塊的絕對差和,再取最小誤差位置;最后,重復前一步驟,直到直到滿足搜索匹配結(jié)束條件。
所述步驟三可以采用全搜索的方法,即,在搜索區(qū)域內(nèi)從左到右,從上到下平移,對每個位置都同時計算各個宏塊和參考區(qū)域每個點的絕對誤差之和,取最小一個位置得到當前各個宏塊的最優(yōu)匹配位置。
在上述技術(shù)方案中,本發(fā)明同時讀取多個宏塊的搜索區(qū)域內(nèi)的數(shù)據(jù),并同時對多個宏塊進行搜索匹配計算,因此,本發(fā)明相對現(xiàn)有的搜索匹配方法,只需要增加少量的數(shù)據(jù),即可實現(xiàn)多個宏塊的并行搜索匹配,達到快速搜索的目的。另外,由于相鄰的宏塊之間的搜索區(qū)域是幾乎重疊的,在搜索匹配計算時,可以重用計算模塊,從而可以進一步提高搜索速度。
附圖1為本發(fā)明的方法流程圖;附圖2為本發(fā)明的一種較佳實施例的宏塊數(shù)據(jù)搜索區(qū)域示意圖。
具體實施例方式
下面將結(jié)合說明書附圖及具體實施例對本發(fā)明作進一步詳細說明。
參考附圖1,本發(fā)明提供了一種視頻編解碼過程中進行運動估計搜索計算的方法,包括步驟一、在當前幀里從左至右的獲取至少兩個依次相鄰的16×16像素的宏塊,其中第一個宏塊為首宏塊,最后一個宏塊為尾宏塊;步驟二、在參考幀里預(yù)先設(shè)定一區(qū)域半徑,以所述首宏塊為中心,確定一方形搜索區(qū)域,使所述搜索區(qū)域的左邊、上邊和下邊均與首宏塊之間的距離為區(qū)域半徑,搜索區(qū)域的右邊與首宏塊之間的距離=區(qū)域半徑+16*(n-1),則所述搜索區(qū)域大小=(2*區(qū)域半徑)×(區(qū)域半徑+區(qū)域半徑+16*(n-1)),其中n為獲取的宏塊個數(shù);
步驟三、讀取所確定的搜索區(qū)域內(nèi)的數(shù)據(jù),用于同時對所有獲取的宏塊進行搜索匹配。
搜索匹配的方法可以采用目前本領(lǐng)域內(nèi)的多種方法,如全搜索法、快速搜索法。這些方法一般都是通過設(shè)計不同的搜索模板和搜索策略,進行高效的塊匹配運動估計算法。
在目前所有塊匹配算法中,全搜索的性能是最好的,本發(fā)明中采用全搜索的方法時,首先在搜索區(qū)域內(nèi)從左到右,從上到下平移,對每個位置都同時計算各個宏塊和參考區(qū)域每個點的絕對誤差之和,然后取最小一個位置得到當前各個宏塊的最優(yōu)匹配位置。這種全搜索的方法由于要搜索整個搜索區(qū)域內(nèi)的每一個點,因此存在費時的缺陷。
本發(fā)明還可以采用如三步法、四步法、二維對數(shù)法等等快速搜索方法,即首先,讀取所述搜索區(qū)域內(nèi)的宏塊數(shù)據(jù);其次,按照快速搜索第一個模板的步長對所有宏塊進行絕對差和計算,取最小誤差位置為新的位置;然后,以新的位置為中心以新的步長或新的模板,同時計算各個宏塊的絕對差和,再取最小誤差位置為新的位置;最后,重復前一步驟,直到滿足搜索匹配結(jié)束條件。
下面將給出一個對兩個宏塊進行并行搜索匹配計算的具體的實施例,以更加清楚的說明本發(fā)明的方法。由于多個兩個宏塊的并行搜索匹配計算的方法可以依本發(fā)明所給出的方法類推,因此,本發(fā)明包括但不限于本實施例。
參考圖1、2,本實施例具體實施流程為步驟一在當前幀里從左至右的獲取至少兩個依次相鄰的16×16像素的宏塊,如圖2中的宏塊A和宏塊B;步驟二在參考幀1里預(yù)先設(shè)定一區(qū)域半徑,本實施例中可以采用16像素;以兩個宏塊中的首宏塊為中心,確定一方形搜索區(qū)域2,使該搜索區(qū)域2的左邊、上邊和下邊均與首宏塊之間的距離為16像素(即區(qū)域半徑值),搜索區(qū)域2的右邊與首宏塊之間的距離為32像素,則所述搜索區(qū)域大?。?2×48像素。
步驟三,采用快速搜索法中的三步法搜索法,即,首先,讀取所述32×48像素的搜索區(qū)域內(nèi)的宏塊數(shù)據(jù);其次,按照三步法的步長獲得兩個宏塊的第一個模板,進行絕對差和(SAD)計算,取最小誤差位置為新的位置;由于這些計算模塊對兩個宏塊是完全相同的,因此可以重用所述模塊,然后,按照新的位置,步長減半得到新的比較點,同時計算兩個宏塊的絕對差和;最后,重復前一步驟,重復前一步驟,直到滿足搜索匹配結(jié)束條件。如,直到最后步長小于1,如果其中一宏塊先到終點,則將步長恢復,再讀取搜索區(qū)域內(nèi)大小為16×32的宏塊數(shù)據(jù),并行計算新的宏塊搜索。由此,則可保持任一時刻都可以同時計算兩個宏塊的以三步法(TSS)模板的SAD計算。
權(quán)利要求
1.一種視頻編解碼過程中進行運動估計搜索計算的方法,包括步驟一、在當前幀里從左至右的獲取至少兩個依次相鄰的16×16像素的宏塊,其中第一個宏塊為首宏塊,最后一個宏塊為尾宏塊;步驟二、在參考幀里預(yù)先設(shè)定一區(qū)域半徑,以所述首宏塊為中心,確定一方形搜索區(qū)域,使所述搜索區(qū)域的左邊、上邊和下邊均與首宏塊之間的距離為區(qū)域半徑,搜索區(qū)域的右邊與首宏塊之間的距離=區(qū)域半徑+16*(n-1),則所述搜索區(qū)域大小=(2*區(qū)域半徑)×(區(qū)域半徑+區(qū)域半徑+16*(n-1)),其中n為獲取的宏塊個數(shù);步驟三、讀取參考幀內(nèi)所確定的搜索區(qū)域中的宏塊數(shù)據(jù),用于同時對所有獲取的宏塊進行搜索匹配。
2.如權(quán)利要求1所述視頻編解碼過程中進行運動估計搜索計算的方法,其特征在于所述步驟三采用快速搜索的方法,即首先,讀取所述搜索區(qū)域內(nèi)的宏塊數(shù)據(jù);其次,按照快速搜索第一個模板的步長對所有宏塊進行絕對差和計算,取最小誤差位置為新的位置;然后,以新的位置為中心以新的步長或新的模板,同時計算各個宏塊的絕對差和,再取最小誤差位置為新的位置;最后,重復前一步驟,直到滿足搜索匹配結(jié)束條件。
3.如權(quán)利要求1或2所述視頻編解碼過程中進行運動估計搜索計算的方法,其特征在于所述步驟一中獲取兩個相鄰的宏塊。
4.如權(quán)利要求3所述視頻編解碼過程中進行運動估計搜索計算的方法,其特征在于所述步驟二中,預(yù)先設(shè)定區(qū)域半徑為16像素;以兩個宏塊中的首宏塊為中心,確定一方形搜索區(qū)域,使該搜索區(qū)域的左邊、上邊和下邊均與首宏塊之間的距離為16像素,搜索區(qū)域的右邊與首宏塊之間的距離為32像素,則所述搜索區(qū)域大小為32×48像素。
5.如權(quán)利要求4所述視頻編解碼過程中進行運動估計搜索計算的方法,其特征在于所述步驟三采用快速搜索法中的三步法,具體為首先,讀取所述32×48像素的搜索區(qū)域內(nèi)的宏塊數(shù)據(jù);其次,按照三步法的步長獲得兩個宏塊的第一個模板,進行絕對差和計算,并取最小誤差位置為新的位置;然后,重用所述模板,以新的位置為中心,步長減半得到新的比較點,同時計算兩個宏塊的絕對差和,再取最小誤差位置;最后,重復前一步驟,直到滿足搜索匹配結(jié)束條件。
6.如權(quán)利要求1所述視頻編解碼過程中進行運動估計搜索計算的方法,其特征在于所述步驟三采用全搜索的方法,即,在搜索區(qū)域內(nèi)從左到右,從上到下平移,對每個位置都同時計算各個宏塊和參考區(qū)域每個點的絕對誤差之和,取最小一個位置得到當前各個宏塊的最優(yōu)匹配位置。
全文摘要
本發(fā)明公開了一種可快速的,可同時對多個宏塊進行并行處理的視頻編解碼過程中進行運動估計搜索計算的方法,首先在當前幀里從左至右的獲取至少兩個依次相鄰的16×16像素的宏塊,其中第一個宏塊為首宏塊,最后一個宏塊為尾宏塊;然后在參考幀里預(yù)先設(shè)定一區(qū)域半徑,以所述首宏塊為中心,確定一方形搜索區(qū)域,使所述搜索區(qū)域的左邊、上邊和下邊均與首宏塊之間的距離為區(qū)域半徑,搜索區(qū)域的右邊與首宏塊之間的距離=區(qū)域半徑+16*(n-1),則所述搜索區(qū)域大小=(2*區(qū)域半徑)×(區(qū)域半徑+區(qū)域半徑+16*(n-1)),其中n為獲取的宏塊個數(shù);最后讀取參考幀內(nèi)所確定的搜索區(qū)域中的宏塊數(shù)據(jù),用于同時對所有獲取的宏塊進行搜索匹配。
文檔編號H04N7/32GK1615027SQ20041009632
公開日2005年5月11日 申請日期2004年11月30日 優(yōu)先權(quán)日2004年11月30日
發(fā)明者懷千江, 白峰, 王浩 申請人:北京中星微電子有限公司