專利名稱:用于混合型高速運動估計的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于混合型高速運動估計的方法和設(shè)備,其可應(yīng)用于運動圖像編碼設(shè)備,尤其涉及一種組合了單像素貪婪搜索(one-pixel greedysearch,OPGS)算法和分級搜索塊匹配算法(HSBMA)的運動估計方法和設(shè)備。
通常,視頻服務(wù)、娛樂、數(shù)字廣播和便攜式視頻終端采用國際視頻標準,如H.261、H.263、運動圖像專家組(MPEG)-1、MPEG-2和MPEG-4。根據(jù)國際視頻標準產(chǎn)生比特流的視頻編碼器采用諸如離散余弦變換(DCT)、量化和可變長度編碼的壓縮算法及運動估計算法來壓縮視頻信號。
現(xiàn)有的運動估計算法包括全搜索塊匹配算法(FSBMA)和快速搜索算法(FSA)。FSBMA首先逐個得到先前幀中搜索區(qū)域內(nèi)的所有可能的位置與當前幀中相應(yīng)位置之間的差值,然后求出具有最小誤差的位置。但是,盡管FSBMA是最簡單的并且是具有理想精度的,F(xiàn)SBMA需要進行大量的計算,從而不適于實時編碼。
與此同時,與FSBMA相比,F(xiàn)SA以較低精度為代價顯著減少了計算量,并且其適于其中視頻品質(zhì)相對來講不是十分重要的實時視頻編碼器(例如,視頻電話、IMT-2000終端、視頻會議系統(tǒng)等)。FSA的示例包括分級搜索塊匹配算法(HSBMA)、3步搜索(TSS)算法、2D對數(shù)搜索算法(LSBA)和單像素貪婪搜索(OPGS)。
這里,HSBMA的精度高,并且受運動量的影響相對較小,但是計算量大,并且需要用于存儲低分辨率幀的存儲器。此外,對于長距離運動向量和不用區(qū)分的短距離運動向量兩者,HSBMA所需計算量大。
OPGS算法僅能夠求出中心點(或開始點)附近的有效運動向量,不能準確地收斂到局部最小點,不能對具有復雜運動的復雜圖像得到準確結(jié)果,并且需要大量計算來求出長距離上的運動向量。
因此,現(xiàn)有的運動估計算法不能采用已計算出的結(jié)果,并且不能減少不必要的計算,這是因為,這些算法中的每個都均勻地應(yīng)用于所有塊,而不管運動的復雜性如何,也不管主題塊的特性如何。因此,現(xiàn)有的運動估計算法適于以硬件如超大規(guī)模集成電路(VLSI)芯片實現(xiàn),但不適于在軟件專用編碼器中實施算法。另外,由于計算量大,因此,不能采用低價位、低電壓的中央處理器(CPU)來以軟件實施這些算法。
為了解決上述問題,本發(fā)明的第一個目的是提供一種自適應(yīng)運動估計方法,其中通過執(zhí)行混合型運動估計使不必要的計算最少,并且提高精度,該混合型運動估計組合了單像素貪婪搜索(OPGS)算法和分級搜索塊匹配算法(HSBMA)。
本發(fā)明的第二個目的是提供一種運動估計設(shè)備,其采用組合了OPGS算法和HSBMA算法的運動估計方法。
為了實現(xiàn)本發(fā)明的第一個目的,提供了一種運動估計方法,該運動估計方法包括下列步驟(a)輸入以宏塊為單位的幀和搜索區(qū)域,并估計希望得到估計的宏塊的候選運動向量;和(b)如果在步驟(a)中估計的候選運動向量的誤差在閾值范圍內(nèi),則估計以估計位置為中心的限制的搜索區(qū)域內(nèi)的運動,否則估計整個搜索區(qū)域內(nèi)的運動。
為了實現(xiàn)本發(fā)明的第二個目的,還提供了一種自適應(yīng)運動估計設(shè)備,該運動估計設(shè)備包括向量估計單元,用于接收視頻數(shù)據(jù),并且估計零運動向量、先前運動向量和相鄰塊的運動向量中與希望得到估計的宏塊匹配的運動向量,作為候選運動向量;算法選擇單元,用于通過將候選向量估計單元中估計到的候選向量的誤差與預置的閾值相比較,來選擇運動估計算法;和運動估計單元,用于當算法選擇單元中估計的候選運動向量的誤差在閾值范圍內(nèi)時,估計以估計位置為中心的限制的搜索區(qū)域內(nèi)的運動,否則,估計整個搜索區(qū)域內(nèi)的運動。
從下列參照附圖對本發(fā)明優(yōu)選實施例的詳細描述中,本發(fā)明的上述目的和優(yōu)點將變得更清楚,其中
圖1是本發(fā)明混合型高速運動估計設(shè)備的框圖;圖2是本發(fā)明混合型高速運動估計方法的流程圖;圖3的圖形表示的是按運動向量尺寸的宏塊分布,該運動向量尺寸是通過執(zhí)行全搜索塊匹配算法(FSBMA)得到的;圖4是根據(jù)圖2的估計先前幀和下一幀中的候選向量的示意圖;圖5是根據(jù)圖2的單像素貪婪搜索(OPGS)算法的示意圖;和圖6是根據(jù)圖2的分級搜索塊匹配算法(HSBMA)的示意圖。
下面將參照附圖詳細描述本發(fā)明的優(yōu)選實施例。本發(fā)明不局限于下面的實施例,可在本發(fā)明的宗旨和范圍內(nèi)進行多種變化。給出本發(fā)明實施例是為了向本領(lǐng)域內(nèi)的普通技術(shù)人員更完全地解釋本發(fā)明。
圖1是本發(fā)明混合型高速運動估計設(shè)備的框圖。
圖1的設(shè)備具有候選向量估計單元110、算法選擇單元120、運動估計單元130、存儲器140、和半像素運動估計單元150。
參照圖1,候選向量估計單元110接收視頻數(shù)據(jù),并估計當前待估計的宏塊的候選向量。此時,候選向量估計單元110最終從零運動向量、先前的運動向量、及相鄰塊的運動向量中選擇最佳匹配的運動向量作為候選運動向量。
算法選擇單元120通過將由候選向量估計單元110估計到的候選向量的絕對差之和(SAD)與預定閾值相比較,來選擇運動估計算法(OPGS或HSBMA)。
運動估計單元130采用由算法選擇單元120選擇的運動算法(OPGS或HSBMA)對輸入的宏塊執(zhí)行全像素運動估計。
存儲器140存儲由運動估計單元130估計的全像素運動估計值,并將估計值提供給候選向量估計單元110。
采用視頻數(shù)據(jù)輸入,半像素運動估計單元150參照由運動估計單元130估計的全像素運動估計值的位置,估計16×16宏塊和8×8子塊的半像素運動。
圖2是本發(fā)明混合型高速運動估計方法的流程圖。
參照圖3至6,下面將解釋圖2所示高速運動估計方法的流程圖。
首先,在步驟210,輸入的視頻數(shù)據(jù)(或幀)被分成希望被搜索的宏塊,并且設(shè)置宏塊的先前或下一幀的搜索區(qū)域。
然后,在步驟220,估計其運動向量希望得到估計的宏塊的候選向量。例如,如圖3所示,通過對視頻數(shù)據(jù)執(zhí)行FSBMA而獲得的按運動尺寸的宏塊分布表示出有很多其長度在“0”和“1”之間的運動向量。因此,為了獲得這些運動向量,采用如圖3所示可參照分布度降低計算量的運動估計算法,而不對所有的宏塊僅采用一種運動估計算法。
因此,將(1)零運動向量、(2)相鄰塊的運動向量、和(3)先前運動向量中的最佳匹配值,例如具有最小SAD的向量值設(shè)定為候選運動向量。
這里,3個候選運動向量的設(shè)置如下。
第一候選運動向量(1)被設(shè)定為其長度為“0”的運動向量(零運動向量)。
第二候選運動向量(2)被設(shè)定為以當前宏塊為中心的其運動向量已被計算的3個宏塊420、430和440的運動向量的中間值,如圖4的(b)所示。但是,如果當前幀為雙向(B)型,則選擇相鄰宏塊中的前向運動向量、后向運動向量和雙向運動向量中的一個。因此,如果已知3個方向運動向量中的一個,則可通過換算(scaling)已知的運動向量來估計剩余的方向運動向量。例如,如果已知前向運動向量,則根據(jù)參考幀的間隔數(shù)目適當?shù)貙υ撉跋蜻\動向量進行換算,并且,通過改變所換算運動向量的符號,估計后向運動向量。類似地,可將后向運動向量適當?shù)馗淖優(yōu)榍跋蜻\動向量。因此,在通過計算相鄰宏塊420、430和440中的每個的3種類型的運動向量(前向、后向和雙向)獲得一中間值之后,與期望得到估計的宏塊最佳地匹配的運動向量被設(shè)定為第二候選運動向量(2)。
如圖4的(a)所示,如果當前幀是預測(P)型幀,則第三候選運動向量(3)被設(shè)定為在與先前P型幀中的位置相同的當前幀中的位置上的宏塊的運動向量410,或被設(shè)定為包括相鄰的4個宏塊的5個宏塊的運動向量的中間值。此時,如果當前幀為B型幀,則通過換算來估計在與先前或下一P型幀中的位置相同的當前幀中的位置上的宏塊的運動向量,它被用來估計當前幀的運動向量。在對4個相鄰的宏塊進行換算之后,將一中間值設(shè)定為第三候選運動向量(3)。此時,如果已知宏塊的一個方向分量,則可通過換算和改變符號來估計其余方向(前向、后向、和雙向)的運動向量,如在估計第二候選運動向量的方法中所使用的那樣。
然后,在步驟230,通過將候選運動向量中與搜索區(qū)域最佳匹配的值(例如最小SAD)與預定的閾值(T)相比較,來選擇運動估計算法。這里,如果在多任務(wù)環(huán)境中對運動圖像進行實時編碼,則CPU的處理能力可能不足。在這種情況下,如果希望有恒定的幀速率,則事先計算每個幀的目標計算時間。因此,通過根據(jù)先前計算出的目標編碼時間對當前幀估計每個片斷(一組宏塊系列)單元的編碼時間,來調(diào)整閾值(T)。
然后,如果候選運動向量中對應(yīng)于與待估計宏塊最佳匹配的值的最小SAD值位于閾值(T)范圍內(nèi),則選擇OPGS算法。此時,在步驟240,根據(jù)OPGS算法,在以對應(yīng)于所估計候選運動向量的位置為中心的、可以是被定義為“fcode”的運動向量的絕對值的1/2或1/4的更為有限的范圍內(nèi)對運動向量進行搜索。此時,fcode表示的是運動向量能夠所處的最大搜索范圍和最小搜索范圍。參照圖5,①是對應(yīng)于如圖4的(a)和(b)的估計位置的開始點。以開始點(①)為中心,執(zhí)行對由②指示的4個位置中的每個的匹配,然后,再次執(zhí)行對由③或④指示的4個位置中的每個的匹配,之后,重復執(zhí)行匹配,直至不存在最佳匹配相鄰值。因此,運動向量是對應(yīng)于最終收斂結(jié)果 的最佳匹配位置。
這里,對于H.263和MPEG-4標準,OPGS通常在以宏塊的運動向量為中心的±2范圍內(nèi)執(zhí)行8×8子塊運動估計(先進預測模式或4MV模式)。但是,本發(fā)明中,執(zhí)行16×16宏塊OPGS,然后在以運動向量為中心的±2范圍內(nèi)對每個8×8子塊執(zhí)行OPGS。另外,通過在標準中定義的重復填充,來估計擴展區(qū)域內(nèi)的未受限的運動向量。
然后,如果由于候選運動向量中的最佳匹配值,即SAD超出閾值而使估計失敗,則執(zhí)行HSBMA算法。HSBMA算法對由fcode指示的整個搜索區(qū)域執(zhí)行運動估計。下面將參照圖6解釋該實施例。從由低分辨率或二次采樣圖像(例如[-2,+2])形成的搜索區(qū)域,在階段1搜索運動向量。采用階段1的搜索結(jié)果,在階段2,在高分辨率圖像或原始圖像中限制的搜索區(qū)域內(nèi)搜索精確的運動向量。因此,連續(xù)重復該階段,直至達到最高分辨率(或原始圖像),然后,將最佳匹配塊位置設(shè)定給運動向量。
另外,HSBMA采用螺旋式搜索,并且,如果當將在每個階段(階段1和階段2)中計算出的運動向量的匹配度與預置的閾值相比較時匹配度不足,則選擇該運動向量作為最終的估計值。這里,閾值表示可容許誤差范圍,確定HSBMA的精度和計算量,并且是根據(jù)預置階段的值中所估計的編碼時間來進行選擇的。
這里,當估計8×8子塊的運動向量時,HSBMA在階段2估計4個子塊中的每個的運動,并且通過附加4個塊的匹配值來估計宏塊的運動。另外,在必要時,HSBMA估計在重復填充之后擴展搜索區(qū)域的未受限的運動向量。
然后,在步驟260和270,將由OPGS算法或HSBMA算法估計的像素單元的運動向量以16×16宏塊為單位進行存儲,并且在像素單元運動估計位置上估計半像素的運動向量。
然后,在步驟280,提取16×16宏塊、8×8子塊和半像素的運動向量。
根據(jù)上述本發(fā)明,估計運動向量,并且以估計位置為中心執(zhí)行OPGS,如果估計失敗,則采用HSBMA來對估計進行補償,以避免由于不精確估計而引起的誤差。由此,可在減少計算量的同時保持高精度。本發(fā)明對實時編碼尤其有效。
權(quán)利要求
1.一種自適應(yīng)運動估計方法,該運動估計方法包括下列步驟(a)輸入以宏塊為單位的幀和搜索區(qū)域,并估計希望得到估計的宏塊的候選運動向量;和(b)如果在步驟(a)中估計的候選運動向量的誤差在閾值范圍內(nèi),則估計以估計位置為中心的限制的搜索區(qū)域內(nèi)的運動,否則估計整個搜索區(qū)域內(nèi)的運動。
2.如權(quán)利要求1所述的運動估計方法,其中,產(chǎn)生零運動向量、相鄰宏塊的運動向量中間值、和從先前或下一幀中估計到的值,并且,通過從3個值中選擇與希望得到估計的宏塊最佳匹配的值,來得到候選運動向量。
3.如權(quán)利要求1所述的運動估計方法,其中,所述步驟(b)還包括下列子步驟(b-1)如果估計到的候選運動向量的誤差在閾值范圍內(nèi),則執(zhí)行單像素貪婪搜索(OPGS)算法;和(b-2)否則,執(zhí)行分級搜索塊匹配算法(HSBMA)。
4.如權(quán)利要求1所述的運動估計方法,其中,通過根據(jù)預先計算出的目標編碼時間,估計在對應(yīng)于宏塊組的每個片斷單元上的當前幀的編碼時間,來調(diào)整步驟(b)中的閾值。
5.如權(quán)利要求3所述的運動估計方法,其中,通過在步驟(b-2)中采用螺旋式搜索,HSBMA將運動向量匹配度與在每個搜索階段在預置閾值中根據(jù)估計的編碼時間選擇的可容許誤差范圍相比較,并且將比較值選為運動向量。
6.一種自適應(yīng)運動估計設(shè)備,該運動估計設(shè)備包括向量估計單元,用于接收視頻數(shù)據(jù),并且估計零運動向量、先前運動向量和相鄰塊的運動向量中與希望得到估計的宏塊匹配的運動向量,作為候選運動向量;算法選擇單元,用于通過將候選向量估計單元中估計到的候選向量的誤差與預置的閾值相比較,來選擇運動估計算法;和運動估計單元,用于當算法選擇單元中估計的候選運動向量的誤差在閾值范圍內(nèi)時,估計以估計位置為中心的限制的搜索區(qū)域內(nèi)的運動,否則,估計整個搜索區(qū)域內(nèi)的運動。
7.如權(quán)利要求6所述的運動估計設(shè)備,還包括半像素運動估計單元,用于參照所述運動估計單元估計的估計值的位置,來估計半像素運動。
全文摘要
一種組合了單像素貪婪搜索(one-pixel greedy search,OPGS)算法和分級搜索塊匹配算法(HSBMA)的運動估計方法及其設(shè)備。該方法包括下列步驟:(a)輸入以宏塊為單位的幀和搜索區(qū)域,并估計希望得到估計的宏塊的候選運動向量;和(b)如果在步驟(a)中估計的候選運動向量的誤差在閾值范圍內(nèi),則估計以估計位置為中心的比先前搜索區(qū)域小一個預定數(shù)的搜索區(qū)域內(nèi)的運動,否則估計整個搜索區(qū)域內(nèi)的運動。
文檔編號H04N7/26GK1348312SQ01117720
公開日2002年5月8日 申請日期2001年4月29日 優(yōu)先權(quán)日2000年10月11日
發(fā)明者金成柱 申請人:三星電子株式會社