国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      運動估計算法的制作方法

      文檔序號:7643087閱讀:190來源:國知局
      專利名稱:運動估計算法的制作方法
      背景技術(shù)
      本發(fā)明一般涉及在數(shù)字視頻編碼器中具有特定用途的一種提高硬件效率的高性能運動估計算法。該運動估計算法也可用在其它視頻信號處理器中,如用在場頻轉(zhuǎn)換器中。
      為了盡可能減小傳送給定圖象質(zhì)量的數(shù)字編碼視頻數(shù)據(jù)(“數(shù)字視頻數(shù)據(jù)”)所需的帶寬,多種不同的視頻壓縮算法已經(jīng)被開發(fā)用于數(shù)字編碼(“壓縮”)視頻數(shù)據(jù)。幾個多媒體技術(shù)規(guī)范委員會已經(jīng)建立并提出了用于編碼/壓縮音頻和視頻數(shù)據(jù)的標(biāo)準(zhǔn)。廣為人知并被廣泛接受的國際標(biāo)準(zhǔn)是由運動圖象專家組(MPEG)提供的,它包括MPEG-1和MPEG-2標(biāo)準(zhǔn)。這些用于運動圖象壓縮的MPEG標(biāo)準(zhǔn)被用在現(xiàn)有的各類視頻重放產(chǎn)品中,包括數(shù)字多用(或視頻)盤(DVD)播放器、具有DVD重放能力的多媒體PC和衛(wèi)星廣播數(shù)字視頻。
      盡管MPEG標(biāo)準(zhǔn)通常提供高圖象質(zhì)量,但對于某些應(yīng)用來說,數(shù)據(jù)速率/帶寬要求太大了。視頻會議是一個特別的應(yīng)用,它一般不需要MPEG提供的編碼分辨率,這是因為圖象與圖象之間的畫面內(nèi)容一般變化不大,例如在圖象中,大部分運動被限定在與會者的頭和肩所處的菱形區(qū)中。總之,由于在視頻會議應(yīng)用中運動圖象序列幾乎沒有什么運動,因此圖象與圖象之間會有大量的冗余,結(jié)果,對于給定的圖象質(zhì)量來說,視頻數(shù)據(jù)的壓縮程度會非常大。而且,許多視頻會議的可用帶寬小于2M比特/秒,這相對于MPEG傳輸來說則太慢了。
      與MPEG一樣,H.261編碼算法使用DCT(離散余弦變換)編碼和差分編碼的組合。但只使用I-圖象和P圖象。I-圖象只使用該圖象中所含的信息進(jìn)行編碼,所以它被稱作“幀內(nèi)編碼”或“幀內(nèi)”圖象。P-圖象使用基于過去參考(或“錨(anchor)”)圖象的信息的運動補償預(yù)測(或“運動估計”)進(jìn)行編碼,所以它被稱作“預(yù)測”或“被預(yù)測的”圖象。根據(jù)H.261標(biāo)準(zhǔn),壓縮的數(shù)字視頻數(shù)據(jù)流分層排列在四個層中圖象、塊組(GOB)、宏塊(MB)和塊。圖象是頂層。每個圖象被分成塊組(GOB)。GOB是CIF(公用中間格式)圖象的十二分之一。每個GOB被分成33個宏塊。每個宏塊由16×16的像素陣列構(gòu)成。
      總之,就象MPEG一樣,H.261使用運動估計來編碼序列圖象中那些可能由于運動而發(fā)生變化的部分。具體來說,H.261使用“運動矢量”(MV),根據(jù)在給定的N×N個像素的搜索范圍內(nèi)的當(dāng)前宏塊的像素與錨圖象中的相應(yīng)像素陣列之間的比較,這些運動矢量規(guī)定當(dāng)前圖象內(nèi)的“宏塊”相對于其在錨圖象中的原始位置的位置。根據(jù)H.261標(biāo)準(zhǔn),最小搜索范圍是+/-7個像素,最大搜索范圍是+/-15個像素。應(yīng)當(dāng)理解,在所有H.261應(yīng)用中使用最大搜索范圍并不一定能提高壓縮信號的質(zhì)量。在這方面,由于H.261應(yīng)用能夠以范圍從64k比特/秒到1,084k比特/秒的各種比特率操作,所以實際采用的搜索范圍會有所不同。例如,在高比特率下,相鄰圖象間的時間間隔較小,因此使用較小的搜索范圍就可實現(xiàn)給定的圖象質(zhì)量。在低比特率下,情況正好相反,實現(xiàn)給定的圖象質(zhì)量則需要較大的搜索范圍。
      一旦一個特定宏塊的運動矢量被確定,那么就從當(dāng)前宏塊的相應(yīng)像素中減去由該運動矢量識別的錨圖象中的最匹配宏塊的像素值,隨后,由此產(chǎn)生的差值使用離散余弦變換(DCT)算法進(jìn)行變換,其產(chǎn)生的系數(shù)均被量化和霍夫曼編碼(與運動矢量和其它信息所涉及的一樣并識別該宏塊)。在運動估計處理期間,如果在錨圖象中未檢測到充分的宏塊匹配(即該差值超過一個預(yù)定的閾值量度),或者如果當(dāng)前圖象是I圖象,則該宏塊被指定為“幀內(nèi)”宏塊并且該宏塊被相應(yīng)地編碼。
      H.261標(biāo)準(zhǔn)并不規(guī)定所采用的運動估計算法的任何特定實施方案。換句話說,H.261為視頻會議系統(tǒng)的制造商留下了開放的運動估計算法實施方案的細(xì)節(jié)??傊鞣N測量方法和量度(metrics)被使用并被推薦用于計算與當(dāng)前宏塊最匹配(即最小差值/誤差)的錨圖象內(nèi)的像素陣列的位置,并且各種運動估計算法被使用并被推薦用于搜索并確定錨圖象中最匹配宏塊的位置。這些運動估計(M.E.)算法一般由處理器上運行的軟件來執(zhí)行,處理器可以是PhilipsSemiconductors制造并銷售的TriMedia處理器,它的任務(wù)是在視頻會議系統(tǒng)中編碼視頻數(shù)據(jù)。其中心目的是盡快確定錨圖象中最匹配宏塊的位置,同時盡可能減小處理器執(zhí)行該算法的負(fù)載,并保持一個可接受的誤差/不準(zhǔn)確度水平。實際執(zhí)行運動估計搜索算法的硬件/軟件有時被稱作“搜索引擎”。就搜索引擎而言,其中心目的是優(yōu)化其性能,同時盡可能減小執(zhí)行運動估計算法所需的資源。簡而言之,其基本目的就是盡可能減少計算量和計算時間。
      用于估算匹配質(zhì)量的最熟知的標(biāo)準(zhǔn)或量度是絕對差值之和(SAD)和方差之和(SSD)。SAD量度構(gòu)成當(dāng)前宏塊中的N個像素中的每個像素(對于一個16×16的宏塊來說,N=256)和估算的錨圖象中的比較宏塊的相應(yīng)像素中的各個像素的差值的絕對值之和。SSD量度構(gòu)成上述像素差的平方和。在一個給定運動估計搜索序列期間,在錨圖象中得出最小SAD或SSD值(使用標(biāo)準(zhǔn)/量度均可)的候選宏塊被選為“最佳匹配”。該宏塊相對于當(dāng)前宏塊的水平和垂直位置(即x,y位置)(即x,y“位移”),或者其導(dǎo)數(shù)被規(guī)定為當(dāng)前宏塊的“運動矢量”。如果SAD或SSD的值(無論哪一個均可)大于預(yù)定的閾值,則可以確定當(dāng)前宏塊不存在合適的匹配,因此作為幀內(nèi)宏塊編碼。通常,與SSD量度相比,SAD量度的計算簡便快速,但準(zhǔn)確性較低。換言之,SSD量度的計算與SAD量度的計算相比需要更大的處理器來發(fā)揮作用,因而從“成本函數(shù)”的觀點來看則被認(rèn)為比較“貴”。
      在H.261領(lǐng)域中,假定搜索范圍是+/-15個像素,那么就必須估算961個候選運動矢量,即在錨圖象的給定搜索范圍內(nèi)總共有961個不同宏塊大小的像素陣列,它們作為被估算的當(dāng)前宏塊的“最佳匹配”的候選宏塊。被估算的每個運動矢量將得出一個不同的均方誤差(MSE)差值。具有最小MSE值的運動矢量是真正的“最佳匹配”。由于每個運動矢量的估算需要進(jìn)行大量的減法和加法,因此對于運動估計搜索引擎來說在給定搜索范圍內(nèi)計算961個不同運動矢量中的每一個矢量的MSE值是完全不現(xiàn)實的。這種理論上的“完全搜索算法”總會產(chǎn)生真正的“最佳匹配”。但是,由于從實施的角度來講是不現(xiàn)實的,因此它僅僅被用作是一個參考或標(biāo)準(zhǔn),以能夠?qū)Ω嗖煌膶嶋H運動估計算法進(jìn)行比較,這些實際的運動估計算法只估算給定搜索范圍內(nèi)的運動矢量全集的一個子集,有時把這種技術(shù)稱作“二次取樣”。使用這種二次取樣技術(shù)的運動估計算法有時被稱作“快速搜索算法”,這是因為它們與“完全搜索算法”相比可以被更快地執(zhí)行并且計算量更小。
      總之,在運動估算搜索速度和運動估算搜索精確度(以及由此產(chǎn)生的編碼數(shù)字視頻數(shù)據(jù)的圖象質(zhì)量)之間存在固有的折衷。而且,搜索引擎的性能與其最小化其產(chǎn)生的數(shù)據(jù)集的能力直接有關(guān)。因此,把當(dāng)前宏塊與參考圖象中的所選“最佳匹配”宏塊之間的MSE減少因數(shù)n將會把性能近似提高n的倒數(shù)。因此,其中心目的就是設(shè)計一種能夠優(yōu)化性能并在同時盡可能減小所需計算量和計算時間的運動估計算法(搜索策略)。在這方面,運動估計可被認(rèn)為在數(shù)學(xué)上等價于一個找出成本函數(shù)的最小值的優(yōu)化問題。
      為了便于更好地理解本發(fā)明的原理,下面將回顧一下運動估計搜索的理論框架。概括來說,MSE差值的陣列(在H.261領(lǐng)域中的961個MSE差值)可被看作是一個“誤差面”,它具有與誤差成正比的高度。由于大多數(shù)視頻會議的景物絕大部分是低空間頻率的數(shù)據(jù),因此該誤差面的空間頻率一般也較低并且是均勻波動的,其中一個或僅僅一些“谷值”圍繞在最小誤差周圍。在H.261領(lǐng)域中的誤差面的這些特性允許在搜索運動估計的最小誤差值時使用嚴(yán)格的二次取樣。特別是,與任意一個候選運動矢量估算相關(guān)的誤差值可提供有關(guān)搜索空間的整個區(qū)域的信息,與兩個候選運動矢量估算相關(guān)的兩個誤差值的比較可提供有關(guān)兩個候選項之間的誤差面的斜率的信息。異常情況會發(fā)生,就象在使棋盤格成像時一樣。在這種圖象中,在白方格匹配白方格的每種情況下,誤差面將會受到抑制,并且確定在其中象和馬也對齊的實際最小誤差值的位置是困難的。因而可以理解,二次取樣可能會導(dǎo)致錯誤的判斷,并且在其它條件均相同的情況下,任何搜索策略的“成功”(準(zhǔn)確度/分辨率)均與進(jìn)行估算的取樣數(shù)有關(guān)(即取樣密度)。另外還應(yīng)理解,根據(jù)二次取樣而定的搜索策略的成功至少在某種程度上是依賴于誤差面的連續(xù)性而定的。
      從一個宏塊到空間相鄰的宏塊以及從一幀中的一個宏塊到下一幀中的相同宏塊也會存在矢量相關(guān)性。舉例來說,如果與會者的肘部在第n幀中向東北方向移動了三個像素,那么可以合理地推斷出在相鄰宏塊中的與會者的手部在第n幀中也將具有相同類型的運動,并且兩個宏塊在第n+1幀中將具有相似的矢量。這些空間及時間相關(guān)性是不完善的,并且不可能被忽略。但是,完全依賴這些空間及時間相關(guān)性的搜索策略只能提供可從運動補償/運動編碼獲得的一小部分益處。
      前面提出的一些運動估計算法過分依賴于誤差面的簡單性,從而極大地降低了正確解釋它的概率。舉例來說,一類特別有效的運動估計算法是那些以“維度序列”方式運行的算法。盡管這類運動估計算法在細(xì)節(jié)上會有所不同,但對以“維度序列”方式運行的一種典型運動估計算法的以下描述將會呈現(xiàn)出使用這種運動估計算法的上述弱點。具體來說,根據(jù)該典型算法,第一系列的估算是沿著水平軸來執(zhí)行的,以便沿著水平軸確定第一最小誤差點的位置。第二系列的估算是沿著經(jīng)過上面識別的第一最小誤差點的垂直線來執(zhí)行的,并且沿著該垂直線的第二最小誤差點被識別。由于該搜索是在搜索空間的水平和垂直方向上交替進(jìn)行的,所以它可被認(rèn)為是“維度序列”處理。候選項之間的間隔則被減小,并且該維度序列處理被重復(fù),以確定在所識別的每個最小誤差點的一行候選項的位置。最后,如果時間允許的話,與最終“勝者”(即具有最小誤差值的候選項)最接近的候選項可被估算。盡管這種維度序列方法所需的總估算數(shù)是最小的,但如果誤差面包含不只一個“谷值”,那么在整個誤差面中漏掉實際最小誤差的概率是相當(dāng)高的。
      大多數(shù)運動估計算法是二維操作的,而且是在不斷增加的分辨率(即下降的搜索范圍)的幾個級別中操作的,因此可將其看作為多級或多層的。一個典型的多層算法可使四個分級中的每一級的分辨率加倍。如

      圖1所示,在每一級中,間隔為45°的八個矢量均被估算。如果矢量尺寸是等概率的,那么這將表示一個最佳的解決辦法。但是,這種策略并不匹配視頻會議數(shù)據(jù)集中高峰值分布的矢量。在這方面,運動估計的大部分益處來源于小矢量,但上述典型的分層算法卻將其大部分時間用在了搜索大矢量上。其行為也是完全不適合的,因為它忽略了建議修改搜索序列的誤差面數(shù)據(jù)。在每一級中,“西北的”候選項首先被估算,第八個估算的是“西南的”候選項,而這與沿著該路線確定的誤差面形狀無關(guān),即根據(jù)搜索序列期間作出的判斷,該搜索序列并不適合。
      如果希望減輕處理負(fù)擔(dān),這必然意味著減少估算的數(shù)目,那么最顯而易見的策略是更粗略地取樣。在這方面,由Compression Labs,Inc.(CLI)在二十世紀(jì)八十年代晚期制造并銷售的商標(biāo)名為“Rembrandt”的56Kbs編解碼器采用了一種運動估計算法,如圖2所示,該算法在每個級別中估算間隔為90°的四個矢量,在其它級別中則將該模式旋轉(zhuǎn)45°。在偶數(shù)級中,位移是N、E、W和S,在奇數(shù)級中是NE、SE、SW和NW。在視頻會議應(yīng)用中,盡管這種運動估計算法對于為其設(shè)計的應(yīng)用來說是良好工作的,但這個搜索方案由于取樣少的原因而往往漏掉最佳矢量。
      本發(fā)明的一個優(yōu)選實施例包括一種方法,在執(zhí)行運動估計的處理中,該方法用于識別當(dāng)前圖象中的當(dāng)前像素塊的最佳運動矢量。該方法通過下面的步驟來執(zhí)行對于每個候選運動矢量來說,通過計算表示當(dāng)前像素塊的像素值與在參考像素塊中的相應(yīng)數(shù)目的像素值之間的差值的誤差值來估算當(dāng)前像素塊的多個候選運動矢量。當(dāng)估算每個候選運動矢量時,最好在幾個點檢驗誤差值,同時計算誤差值,并且一旦確定該候選運動矢量的誤差值超過預(yù)定閾值時,則停止該運動矢量的估算。具有最低計算誤差值的候選運動矢量被選為當(dāng)前像素塊的最佳運動矢量。
      候選運動矢量最好在兩個不同階段中估算,包括第一階段估算具有成為最佳候選運動矢量的內(nèi)在高概率的候選運動矢量的子集;以及第二階段在參考圖象的預(yù)定搜索區(qū)中執(zhí)行空間搜索,以便識別每個相應(yīng)的候選運動矢量估算的預(yù)定搜索區(qū)中的一個不同的參考像素塊。
      候選運動矢量的子集最好包括第一候選運動矢量,它對應(yīng)于與當(dāng)前圖象中的當(dāng)前像素塊的位置相同的參考圖像中的參考像素塊的位置;第二候選運動矢量,它對應(yīng)于與當(dāng)前圖象中的當(dāng)前像素塊的位置相同的前個圖像中的參考像素塊的位置;及第三候選運動矢量,它構(gòu)成先前為當(dāng)前圖像中的之前像素塊確定的最佳運動矢量。優(yōu)選地,如果確定第一候選運動矢量的誤差值低于預(yù)定的運動估計終止閾值,則不執(zhí)行另外的估算。
      空間搜索最好在多個不同的搜索級別中執(zhí)行。在目前優(yōu)選的實施例中,在每個搜索級別的空間搜索是可重入的,并在每個搜索級別被優(yōu)選執(zhí)行,其方式是重新確定空間搜索的中心是被識別為空間搜索中的該點的最佳候選運動矢量,該最佳候選運動矢量是其誤差值低于在空間搜索的該點發(fā)現(xiàn)的最低誤差值的矢量。優(yōu)選地,根據(jù)空間搜索期間進(jìn)行估算的結(jié)果,空間搜索的搜索模式適合于以試探的方式變化。
      該方法由用來操作軟件實施的狀態(tài)機的軟件來執(zhí)行。該軟件最好包括定義搜索序列的源代碼和在規(guī)定存儲空間中構(gòu)建狀態(tài)機的函數(shù)。源代碼最好只在初始化時執(zhí)行一次。該搜索序列最好是自適應(yīng)試探搜索序列。通過從預(yù)定存儲空間進(jìn)行的單一讀取,在搜索序列的任意一點的源代碼可識別要被估算的下一個候選運動矢量的合適x,y位置。另外,根據(jù)表示一個新的最佳候選運動矢量已被識別或者表示兩個最近估算之間的比較的測試比特的極性,通過在存儲空間中讀出兩個位置之一,在搜索序列的任意一點的源代碼可識別要被估算的下一個運動矢量。
      本發(fā)明的詳細(xì)描述下面將描述本發(fā)明的一個典型實施例的運動估計算法。該運動估計算法在處理器上運行的軟件中執(zhí)行,該處理器可以是PhilipsSemiconductors制造并銷售的TriMedia處理器。
      本發(fā)明的運動估計算法將以不同的方式來獲得高性能并在同時盡可能減少計算時間和計算量,下面對每一種方式均進(jìn)行描述。
      根據(jù)本發(fā)明的第一創(chuàng)新方面,最好在幾個點檢驗所有正在進(jìn)行的估算,如果當(dāng)前值大于以前識別的最佳值,則立即中止該估算,以節(jié)省大量的計算時間和計算量。應(yīng)當(dāng)認(rèn)識到,重要的是盡可能識別最小的可能誤差值,以便最大限度的節(jié)省計算量,而這可通過使用這種估算中止方案實現(xiàn)。
      根據(jù)本發(fā)明的第二創(chuàng)新方面,最佳運動矢量的搜索被分成粗略搜索階段和精確搜索階段。在粗略搜索階段中,最可能的候選運動矢量(即,那些具有最低誤差值的具有最高固有概率的候選運動矢量)被估算。如果這些最可能的候選運動矢量中的任意一個矢量近似正確的話,它們將得出一個小誤差值。在精確搜索階段,空間搜索是在多個(如3個)不同搜索級別中進(jìn)行的。粗略搜索階段也可被看作是“預(yù)先的空間搜索階段”。
      根據(jù)該特定的典型實施例,如下是三個最可能的候選矢量。被估算的第一個最可能的候選運動矢量是(0,0),即在參考幀中的相同宏塊的矢量。在該典型實施例中,所使用的搜索估算量度是SAD。如果SAD值低于一個預(yù)定閾值(在該典型實施例中被設(shè)置為“384”),則通過該運動估計處理程序不能期望明顯的增益,因而立即退出該功能。為了充分利用該判斷結(jié)果,該調(diào)用功能(calling function)應(yīng)當(dāng)把返回的低誤差值解釋為VCAP“不編碼”命令,并跳過正向DCT以及該運動估計。這個措施本身就可明顯地節(jié)省計算時間和計算量。在這方面,據(jù)估計,在H.261編碼應(yīng)用中的總計算負(fù)擔(dān)的大約60%都用于運動估計處理。在幾乎所有視頻會議應(yīng)用中的很大一部分宏塊(如33%的宏塊)可被簡單地“填滿”,因而幾乎不需要任何處理時間和系數(shù)數(shù)據(jù)。因此,上述措施可潛在地大大減少運動估計的計算負(fù)擔(dān)。
      被估算的第二個最可能的候選矢量是在之前幀中的相同宏塊的矢量。這個選擇是以下面的事實為基礎(chǔ)的,即在一個特定區(qū)域中,幾個幀之間的速度和方向常常是連續(xù)的,并且在一幀中經(jīng)歷的運動與下一幀中的運動密切相關(guān)。
      被估算的第三個最可能的候選矢量(除了該幀左邊的宏塊)是為相同幀的前個宏塊確定的運動矢量。同樣,該選擇是基于以下的事實,即如果運動區(qū)域大于一個宏塊,則整個宏塊組將具有類似的運動矢量。
      如圖3所示,根據(jù)本發(fā)明的第三創(chuàng)新方面,在精確搜索階段的前兩個搜索級別,彼此間隔60°的六個候選項被估算。在前兩個搜索級別中,兩個“六角形”搜索模式被按順序估算。第一搜索模式具有(x,y)坐標(biāo)(4,0)和(2,3),有四個共軛對,第二搜索模式具有(x,y)坐標(biāo)(2,0)和(1,2),有四個共軛對。全部八個外圍候選項在第三搜索級中估算。作為比較,經(jīng)典的分層搜索執(zhí)行1+8+8+8+8=33個SAD估算,而本發(fā)明的運動估計算法采用的典型搜索包括粗略搜索階段(即在空間搜索之前)在內(nèi)執(zhí)行3+6+6+8=23個SAD估算。但應(yīng)當(dāng)認(rèn)識到,根據(jù)上述的估算中止方案,這些估算中的大部分在進(jìn)行過程中都將被減弱。
      根據(jù)本發(fā)明的第四創(chuàng)新方面,在每個搜索級別中執(zhí)行的搜索以所識別的最佳候選項為中心,而不是以搜索區(qū)的中心為中心。利用這種方式,正如所分析的一樣,誤差面是沿著它所指引的任意一個方向的斜面的隨之的“下坡”。具體來說,在每個搜索級別中執(zhí)行的搜索是“可重入的”,也就是說,在每個搜索級別中,無論何時識別出具有新的最小誤差值(即低于以前識別的最佳誤差值)的候選運動矢量,其位置均成為另一組估算即彼此間隔60°的六個候選項的中心。估算以這種方式繼續(xù),直到確定最近的“最佳”候選運動矢量由六個“次級”候選運動矢量(在精確搜索階段的第三級別中為八個,這可從下面的描述中看出)圍繞為止。應(yīng)當(dāng)認(rèn)識到,構(gòu)成視頻會議應(yīng)用的大部分的小矢量(例如,處在零誤差值的周圍)只需要少數(shù)的額外估算來完成重入。大矢量則需要更多的估算,但它們并不常見。
      利用這種方法將找出具有真正“總體”最小誤差值的候選運動矢量,或者將找出具有所謂的“局部”最小誤差值的候選運動矢量。在任意一種情況下,一些運動補償增益將會產(chǎn)生,當(dāng)然,如果未找到具有真正“總體”最小誤差值的候選運動矢量,則該增益將會減小。通過這種方式,較小的第一搜索模式可快速地沿著誤差面的斜面到達(dá)遠(yuǎn)處的最小值。就是在這個區(qū)域中,運動估計算法應(yīng)當(dāng)花費一些時間來確定最小值的位置,而不是有規(guī)律地把整個搜索空間分類。
      盡管這個“捷徑”容易出現(xiàn)一些錯誤,但在視頻會議應(yīng)用的上下文中的整個性能通過該應(yīng)用中的視頻數(shù)據(jù)的統(tǒng)計行為得以加強。舉例來說,在誤差面的東向和西向均較低的情況下,西向的最小值最可能被識別,這僅僅是因為該方向首先被估算,從而使其難以在向東方向上跟蹤誤差面。盡管如此,即使在這種及類似情況下找到的錯誤最小值往往也是一個小數(shù)值,從而會減輕該誤差的反面效果。
      根據(jù)本發(fā)明的第五創(chuàng)新方面,對于每組估算來說,搜索區(qū)域或范圍被減小,例如,只估算一個規(guī)定像素位移(搜索區(qū)域)內(nèi)的候選運動矢量,例如從最近識別的“最佳”候選運動矢量的位置開始的+/-四個像素。這種技術(shù)基于以下的觀察,即由于絕大多數(shù)的最佳運動矢量具有小矢量值,因此在每個搜索序列開始時估算六個非常遠(yuǎn)的候選項是非常浪費處理器資源的。盡管在快速識別具有大矢量值的運動矢量時較大的搜索范圍是非常有效的,但其在這種不常見情況下的速度將會付出很大的代價。在大部分情況下,減小搜索范圍的技術(shù)仍然能夠用來識別最佳運動矢量。在真正的最小值較遠(yuǎn)的少數(shù)情況下,假設(shè)在最小值的通常方向上的第一級別的候選項具有比零候選項低的值,并且搜索可從該點開始進(jìn)行。當(dāng)然,任意的誤差面構(gòu)型都是可能的,在某些情況下,該假設(shè)將會被證明為是錯誤的,從而使該算法難以確定遠(yuǎn)處最小值的位置。在這方面,應(yīng)當(dāng)理解,本發(fā)明的運動估計算法并不能保證成功,但它會盡力提高成功的概率。該算法的每個方面并不是必然以統(tǒng)計概率為基礎(chǔ)的,而且大部分性能是通過下面的步驟來實現(xiàn)的,即提高確定非常遠(yuǎn)的大量小矢量最小值的位置的概率,同時只是略微降低確定非常遠(yuǎn)的不常見大矢量最小值的概率。
      根據(jù)本發(fā)明的第六創(chuàng)新方面,搜索模式根據(jù)搜索歷史以試探方式自適應(yīng)變化。傳統(tǒng)的分層搜索模式是從左向右,從上向下,沒有任何變化。本發(fā)明的算法的可重入方面有利于根據(jù)搜索歷史來改變搜索序列。假定一種簡單的情況,如果“西邊”的候選項被首先估算,并在隨后發(fā)現(xiàn)“東邊”的候選項最小,則搜索模式應(yīng)當(dāng)重新確定所找到的最佳矢量(即“東邊”的候選項)為中心并且重新開始。為了把該發(fā)現(xiàn)考慮進(jìn)去,搜索模式可自適應(yīng)變化。在這方面,該算法被編程以具有以“東邊”候選項開始下一組估算的智能,并且不再估算新的“西邊”的候選項,這是因為它在重新確定搜索中心之前是舊的“中心”候選項,因此早已在以前的估算序列中估算過。通常,本發(fā)明的算法被編程以使用從以前的估算所獲得的知識來避免重復(fù)處理,并且自適應(yīng)改變搜索來盡可能提高搜索效率。由于(精確搜索階段的)三個搜索級別中的每個級別可被重入多次,其中搜索中心在六個或八個方向中的幾個方向上移動,所以可利用字面上的數(shù)百個搜索模式來估算矢量陣列,每一種模式均針對所遇到的特定誤差面進(jìn)行優(yōu)化(盡可能具有較少的給定參數(shù))。
      根據(jù)本發(fā)明的第七創(chuàng)新方面,該運動估計算法可由軟件執(zhí)行狀態(tài)機來執(zhí)行。搜索智能駐留于由函數(shù)stseq所指的512個字的存儲空間中。包含其自身地址的存儲空間僅僅是狀態(tài)機的定義。定義搜索模式的源代碼只需在初始化時執(zhí)行一次。
      在搜索序列的任意一點,要被估算的下一個候選矢量合適的x,y位置可利用從512個字的存儲空間的單一讀出來獲得。在搜索序列的任意一點,根據(jù)形成存儲器(緩沖器)地址的最高有效比特(MSB)的單個“測試”比特的極性(‘1’或‘0’),兩個矢量之一被讀出。通常,該“測試”比特表示已經(jīng)發(fā)現(xiàn)一個新的“最佳”候選矢量;在其它情況下,它表示兩個最近估算之間的比較結(jié)果。以此方式,在每個測試點,在接著要估算的兩個潛在候選矢量之間進(jìn)行二元選擇。剩余的8個地址比特由緩沖器本身提供。通過把位移設(shè)置為一個不能接受的值,則可在影響到給定組的位移或者把當(dāng)前狀態(tài)解釋為比較請求之間進(jìn)行選擇。隨后,該地址被增加。
      應(yīng)當(dāng)理解,任何運動估計搜索策略,無論多么復(fù)雜,都可被嵌入狀態(tài)機的緩沖器中,且不會增加處理器的開銷,如TriMedia的周期。執(zhí)行時間將大體保持在一個估算(即SAD計算)所需周期的候選矢量估算時間數(shù),如果一個良好的候選項被快速定位,則可以減少一些時間。還應(yīng)當(dāng)理解,上述的特定搜索方案只是不限數(shù)目的方案中的一種,這些方案可被容易地結(jié)合,也許還具有非常優(yōu)良的效果。
      現(xiàn)在參考圖4A-4D,可以看到表示構(gòu)成本發(fā)明目前所考慮的優(yōu)選實施例的上述運動估計算法的流程圖的連續(xù)部分。參考圖4A,該算法開始于步驟10,并在步驟20立即進(jìn)入第一搜索階段。在第一搜索階段,第一個最可能的候選運動矢量(MV)的SAD在步驟30被計算。在步驟40,判斷SAD是否小于一個預(yù)定閾值,該閾值優(yōu)選為之前的最小SAD。如果判斷結(jié)果為“是”,則整個算法在步驟50結(jié)束(退出)。如果判斷為“否”,則該算法前進(jìn)到步驟60,在步驟60,第二個最可能的候選運動矢量(MV)的SAD被計算。該算法則前進(jìn)到步驟70,在步驟70,第三個最可能的候選運動矢量(MV)的SAD被計算。接著,在步驟80,該算法前進(jìn)到第二搜索階段。
      現(xiàn)在參考圖4B,在步驟90,該算法進(jìn)入第二搜索階段的第一搜索級別。接著,在步驟100,通過計算每個此類候選MV的SAD,彼此間隔60°的6個候選MV被估算。在步驟110,判斷該SAD是否小于一個預(yù)定閾值。如果在步驟110判斷結(jié)果為“是”,則在步驟150通過重新確定新最佳候選MV,即具有新的最小SAD的候選MV的搜索中心來重新進(jìn)入該搜索。該算法隨后前進(jìn)到步驟160,在步驟160,圍繞著新的最佳候選MV的6個新候選MV被估算,其中搜索模式最好以試探方式來變化。每個估算的新候選運動矢量的SAD被計算。該算法隨后返回到步驟110。如果在步驟110的判斷結(jié)果為“是”,則在步驟120判斷全部6個候選MV是否均被估算。如果在步驟120的判斷結(jié)果是“否”,則該算法前進(jìn)到步驟130,在步驟130,下一個候選MV被估算,該算法返回至步驟110。如果在步驟120的判斷結(jié)果為“是”,則在步驟140,該算法前進(jìn)到第二搜索階段的下一個(第二)搜索級別。
      現(xiàn)在參考圖4C,在步驟170,該算法進(jìn)入第二搜索階段的第二搜索級別。接著,在步驟180,通過計算每個此類候選MV的SAD,彼此間隔60°的6個候選MV被估算。在步驟190,判斷SAD是否小于一個預(yù)定閾值,該閾值最好是之前的最小SAD。如果在步驟190的判斷結(jié)果為“是”,則在步驟230通過重新確定新的最佳候選MV,即具有新的最小SAD的候選MV的搜索中心來重新進(jìn)入搜索。該算法隨后前進(jìn)到步驟240,在步驟240,圍繞著新的最佳候選MV的6個新候選MV被估算,其中搜索模式最好以試探方式來變化。每個被估算的新候選運動矢量的SAD被計算。該算法隨后返回到步驟190。如果在步驟190的判斷結(jié)果是“否”,則在步驟200判斷全部6個候選MV是否均被估算。如果在步驟200的判斷結(jié)果是“否”,則該算法前進(jìn)到步驟210,在步驟210,下一個候選MV被估算,并且該算法返回至步驟190。如果在步驟200的判斷結(jié)果為“是”,則在步驟220,該算法前進(jìn)到第二搜索階段的下一個(第三)搜索級別。
      現(xiàn)在參考圖4D,在步驟250,該算法進(jìn)入第二搜索階段的第三搜索級別。接著,在步驟260,通過計算每個此類候選MV的SAD,彼此間隔45°的8個候選MV被估算。在步驟270,判斷SAD是否小于一個預(yù)定閾值,該閾值最好是之前的最小SAD。如果在步驟270的判斷結(jié)果為“是”,則在步驟310通過重新確定新的最佳候選MV,即具有新的最小SAD的候選MV的搜索中心來重新進(jìn)入搜索。該算法隨后前進(jìn)到步驟320,在步驟320,圍繞著新的最佳候選MV的8個新候選MV被估算,其中搜索模式最好以試探方式來變化。該算法隨后返回到步驟270。如果在步驟270的判斷結(jié)果是“是”,則在步驟280判斷全部8個候選MV是否均被估算。如果在步驟280的判斷結(jié)果是“否”,則該算法前進(jìn)到步驟290,在步驟290,下一個候選MV被估算,并且該算法返回至步驟270。如果在步驟280的判斷結(jié)果是“是”,則在步驟300,該算法結(jié)束(退出)。
      盡管未在上述典型實施例中執(zhí)行,但也可在包括大范圍搜索區(qū)的第一搜索階段中使用較粗略的搜索估算量度,如SAD,并在包括較小搜索區(qū)的第二搜索階段中執(zhí)行較精確的搜索估算量度,如SSD。利用這種方式,快速SAD估算量度可在搜索區(qū)較寬時使用,并且更高計算強度的SSD估算量度可在搜索區(qū)變窄之后使用。
      圖5表示根據(jù)本發(fā)明的視頻信號處理設(shè)備。該設(shè)備包括運動估算器ME,用于不依賴于估算的運動矢量來執(zhí)行視頻信號。該視頻信號處理器可以是諸如MPEG或H.261型的數(shù)字視頻編碼器。視頻信號處理器VSP也可以是場頻轉(zhuǎn)換器,如用于獲得100Hz電視信號的場頻倍頻器,該100Hz電視信號在圖5的視頻信號處理設(shè)備的100Hz顯示器D上顯示。
      盡管上面已經(jīng)詳細(xì)描述了本發(fā)明,但應(yīng)當(dāng)理解,對于本專業(yè)技術(shù)人員來說顯見的在此所教導(dǎo)的本發(fā)明基本概念的許多變化和/或改進(jìn)和/或其它實施例仍然在所附權(quán)利要求定義的本發(fā)明的宗旨和范圍之內(nèi)。
      權(quán)利要求
      1.一種用于在執(zhí)行運動估計的處理過程中識別當(dāng)前圖像中的當(dāng)前像素塊的最佳運動矢量的方法,包括識別當(dāng)前像素塊的多個候選運動矢量;對于每個候選運動矢量來說,通過計算表示當(dāng)前像素塊的像素值與參考像素塊中的相應(yīng)數(shù)目的像素值之間的差值的誤差值來估算(30,100,180,260)當(dāng)前像素塊的多個候選運動矢量;并且選擇具有最低計算誤差值的候選運動矢量作為最佳運動矢量;其中該估算包括第一階段(20)包括估算(30,60,70)具有成為最佳候選運動矢量的內(nèi)在高概率的候選運動矢量的子集;以及第二階段(80)包括在參考圖象的預(yù)定搜索區(qū)中執(zhí)行空間搜索(90,170,250),以便識別每個相應(yīng)的候選運動矢量估算的預(yù)定搜索區(qū)中的一個不同的參考像素塊。
      2.如權(quán)利要求1所述的方法,其中第二階段(80)在多個不同搜索級別(90,170,250)中執(zhí)行。
      3.如權(quán)利要求1所述的方法,其中該空間搜索(90,170,250)是一種自適應(yīng)試探搜索。
      4.如權(quán)利要求1所述的方法,其中候選運動矢量的子集包括第一候選運動矢量,它對應(yīng)于與當(dāng)前圖象中的當(dāng)前像素塊的位置相同的參考圖像中的參考像素塊的位置;第二候選運動矢量,它對應(yīng)于與當(dāng)前圖象中的當(dāng)前像素塊的位置相同的前個圖像中的參考像素塊的位置;及第三候選運動矢量,它構(gòu)成先前為當(dāng)前圖像中的之前像素塊確定的最佳運動矢量。
      5.如權(quán)利要求4所述的方法,其中如果確定第一候選運動矢量的誤差值低于預(yù)定的運動估計終止閾值,則不執(zhí)行另外的估算(50)。
      6.如權(quán)利要求1所述的方法,其中空間搜索(90,170,250)通過重新確定空間搜索的中心(150,230,310)為被識別為空間搜索中的該點的最佳候選運動矢量來執(zhí)行,該最佳候選運動矢量是其誤差值低于在空間搜索中的該點發(fā)現(xiàn)的最低誤差值的矢量。
      7.如權(quán)利要求1所述的方法,其中空間搜索(90,170,250)的搜索模式根據(jù)空間搜索期間進(jìn)行估算的結(jié)果而自適應(yīng)變化。
      8.如權(quán)利要求1所述的方法,其中該方法由軟件來執(zhí)行,包括定義搜索序列的源代碼;和在規(guī)定存儲空間中構(gòu)建狀態(tài)機的函數(shù)。
      9.如權(quán)利要求8所述的方法,其中該搜索序列是一種自適應(yīng)試探搜索序列。
      10.如權(quán)利要求8所述的方法,其中通過從預(yù)定存儲空間進(jìn)行的單一讀取,在搜索序列的任意一點的源代碼可識別要被估算的下一個候選運動矢量的合適的x,y位置。
      11.如權(quán)利要求10所述的方法,其中根據(jù)表示一個新的最佳候選運動矢量已被識別或者表示兩個最近估算之間的比較的測試比特的極性,通過在存儲空間中讀出兩個位置之一,在搜索序列的任意一點的源代碼可識別要被估算的下一個候選運動矢量。
      12.如權(quán)利要求1所述的方法,還包括在估算每個候選運動矢量時,檢驗誤差值并在同時計算誤差值,并且一旦確定該候選運動矢量的誤差值超過一個預(yù)定閾值時就中止該候選運動矢量的估算。
      13.一種用于在執(zhí)行運動估計的處理過程中識別當(dāng)前圖像中的當(dāng)前像素塊的最佳運動矢量的設(shè)備,該設(shè)備包括用于識別當(dāng)前像素塊的多個候選運動矢量的裝置;對于每個候選運動矢量來說,通過計算表示當(dāng)前像素塊的像素值與參考像素塊中的相應(yīng)數(shù)目的像素值之間的差值的誤差值來估算(30,100,180,260)當(dāng)前像素塊的多個候選運動矢量的裝置;并且選擇具有最低計算誤差值的候選運動矢量作為最佳運動矢量的裝置;其中該估算裝置包括第一裝置(20)包括估算(30,60,70)具有成為最佳候選運動矢量的內(nèi)在高概率的候選運動矢量的子集;以及第二裝置(80)包括在參考圖象的預(yù)定搜索區(qū)中執(zhí)行空間搜索(90,170,250),以便識別每個相應(yīng)的候選運動矢量估算的預(yù)定搜索區(qū)中的一個不同的參考像素塊。
      14.一種數(shù)字視頻編碼器,包括如權(quán)利要求13所要求的用于估計運動矢量的設(shè)備;以及不依賴于運動矢量而產(chǎn)生壓縮視頻信號的裝置。
      15.一種視頻信號處理設(shè)備,包括如權(quán)利要求13所要求的用于估計運動矢量的設(shè)備(ME);以及不依賴于運動矢量而處理視頻信號的裝置(VSP)。
      全文摘要
      一種用于在執(zhí)行運動估計的處理過程中識別當(dāng)前圖象中的當(dāng)前像素塊的最佳運動矢量的方法。該方法通過下面的步驟來執(zhí)行:對于每個候選運動矢量來說,通過計算表示當(dāng)前像素塊的像素值與在參考像素塊中的相應(yīng)數(shù)目的像素值之間的差值的誤差值來估算(30)當(dāng)前像素塊的多個候選運動矢量。當(dāng)估算每個候選運動矢量時,最好在幾個點檢驗誤差值,同時計算誤差值,并且一旦確定該候選運動矢量的誤差值低于預(yù)定閾值,則中止(40,50)該候選運動矢量的估算。具有最低計算誤差值的候選運動矢量被選為當(dāng)前像素塊的最佳運動矢量。候選運動矢量最好在兩個不同階段中估算,包括:第一階段:包括估算具有成為最佳候選運動矢量的內(nèi)在高概率的候選運動矢量的子集;以及第二階段(80):包括在參考圖象的預(yù)定搜索區(qū)中執(zhí)行空間搜索,以便識別每個相應(yīng)的候選運動矢量估算的預(yù)定搜索區(qū)中的一個不同的參考像素塊。
      文檔編號H04N7/01GK1381145SQ01801368
      公開日2002年11月20日 申請日期2001年3月13日 優(yōu)先權(quán)日2000年3月23日
      發(fā)明者A·E·拉克特 申請人:皇家菲利浦電子有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1