專利名稱:用于視頻處理的移動估計的方法及裝置的制作方法
技術領域:
本發明涉及一種移動估計的方法及裝置,且特別涉及使用高精確度移動估計的一種移動估計的方法及裝置。
背景技術:
由國際標準組織 ITU-T (International Telecommunication Union)以及 ISO(Intenrational Organization for Standardization)/IEC(International Electrotechnical Commission)所共同制定的 H. ^4/AVC(AVC :Advanced Video Coding) 視頻壓縮標準獲得高縮壓比的結果并因此廣泛地為多種應用所使用,例如藍光光盤、 IPTVdnternet Protocol Television) ,HDTV(High Definition Television)廣播等。此壓縮標準使用兩種預測方法以預測目前要進行編碼的宏區塊的像素。一種是畫面內(intra) 預測,其利用相鄰宏區塊之間的空間相關性去預測目前要進行編碼的宏區塊的像素。另一種是畫面間(inter)預測,其利用接續的多個畫面之間的時間相關性去預測目前要進行編碼的宏區塊的像素。而移動估計為每一個要進行編碼的宏區塊從上一個面畫中找出最佳匹配區域的方法,并產生對應的移動向量。移動估計除了針對整數值的像素進行的整數移動估計以外,進一步進行高精確度移動估計,其能達成例如1/2及1/4像素的精確度。雖然畫面間預測為壓縮效果帶來許多的貢獻,但是代價是需要大量的計算時間。 例如,H. ^4/AVC提供多種不同大小的區塊模式以進行移動估計,故此移動估計占去編碼時間中約60%至90%的時間。再者,在HJ64的參考軟件之中,為了要得到最佳區塊模式, 針對所有區塊模式進行全域搜尋,并分別進行整數移動估計及高精確度移動估計。如此, H. 264的編碼運算復雜度比之前移動估計采用固定宏區塊大小的如MPEG-I或MPEG-2的視頻標準來得高很多。對于需要實時編碼的應用,如實現在手持裝置上進行攝錄的應用,就會耗費大量運算資源或需要高效能的處理器去進行編碼,從而增加實現編碼器的成本。
發明內容
以下公開內容涉及一種移動估計的方法及裝置,適用于需要針對多種區塊大小進行不同精確度的移動估計的視頻編碼過程中。一實施例提供一種移動估計的方法,用以減少所需進行的高精確度移動估計的模式的數量,如此可以增進整體的高精確度移動估計的效率。另一實施例提供一種移動估計的方法,用以減少于進行高精確度移動估計時搜尋位置的數量,如此可以減少運算資源的使用或以較少的硬件資源以實施。再者,利用前述實施例得出所需進行的高精確度移動估計的模式的數量減少的情況下,更可在進行各個高精確度移動估計時以實施例的較少的搜尋位置進行估計。如此,更可減少整體編碼的復雜度及運算時間。根據本公開的第一方面,提出一種移動估計的方法,此方法包括以下步驟。在移動估計的過程中對于一宏區塊執行整數移動估計以產生多個移動向量。至少依據此整數移動估計所得出的一部分的這些移動向量且此部分的移動向量對應到多個區塊模式,通過判斷各個這些區塊模式的整數移動向量是否皆實質上等于此區塊模式的較上層模式的整數移動向量,決定是否要執行或忽略此區塊模式的高精確度移動估計,其中此區塊模式的較上層模式所對應的區塊大于此區塊模式。如此,所需進行的高精確度移動估計的模式的數量可得以減少。根據本公開的第二方面,提出一種移動估計的方法,此方法包括以下步驟。在移動估計的過程中依據一預測移動向量的方向,執行一第一高精確度的移動估計以找出一第一高精確度的最合適位置。以及依據此預測移動向量的方向以及此第一高精確度的最合適位置,執行一第二高精確度的移動估計以找出一第二高精確度的最合適位置,其中第二高精確度的移動估計的精確度(accuracy)高于第一高精確度的移動估計的精確度。如此,進行高精確度移動估計時搜尋位置的數量可得以減少。根據本公開的第三方面,提出一種具有移動估計的裝置,包括一移動估計單元及一控制單元。移動估計單元,在移動估計的過程中,對于一宏區塊執行整數移動估計以產生多個移動向量。控制單元,用于至少依據從移動估計單元所得出的一部分的這些移動向量且這部分的移動向量對應到多個區塊模式,判斷各區塊模式的整數移動向量是否皆實質上等于此區塊模式的較上層模式的整數移動向量,并據以選擇性地控制此移動估計單元執行或忽略此區塊模式的高精確度移動估計,其中此區塊模式的較上層模式所對應的區塊大于此區塊模式。根據本公開的第四方面,提出一種具移動估計的裝置,包括一整數移動估計單元及一高精確度移動估計單元。高精確度移動估計單元,在移動估計的過程中,回應在此整數移動估計單元所產生的一整數移動向量,用以對此整數移動向量精細化(refinement)。此高精確度移動估計單元依據一預測移動向量的方向,對于此整數移動向量,執行一第一高精確度的移動估計以找出一第一高精確度的最合適位置。此高精確度移動估計單元依據此預測移動向量的方向以及此第一高精確度的最合適位置,執行一第二高精確度的移動估計以找出一第二高精確度的最合適位置,其中此第二高精確度的移動估計的精確度高于此第一高精確度的移動估計的精確度。為了對公開的上述及其他方面有更佳的了解,下文特舉優選實施例,并配合附圖, 作詳細說明如下
圖1繪示H. 264的區塊模式的各種分割類型。圖2繪示以硬件實現移動估計的一種方式。圖3所示為一視頻編碼器的部分電路方塊圖的一例子。圖4繪示模式1至3及P8x8的分割命名方式。圖5繪示依據第一實施例的移動估計方法的一第一例的流程圖。圖6繪示依據第一實施例的移動估計方法的一第二例的流程圖。圖7所示的依據第二實施例的一種移動估計方法的一流程圖。圖8示意依據第二實施例的一種移動估計方法的尋找高精確度的最合適位置的過程。圖9A至圖9D所示分別為4種可能情況,用以選擇第一高精確度的搜尋位置及方向。圖IOA至圖IOC所示分別為3種情況,用以選擇第二高精確度的搜尋位置及方向。圖11為依據第二實施例的一高精確度移動估計單元的架構方塊圖。主要元件符號說明100 控制器200 移動估計210 JME 單元220、1100 =FME 單元910 預測移動向量產生裝置920 移動向量成本計算電路1100 高精確度移動估計裝置1110:內插裝置 1120 搜尋位置產生裝置1130:殘差計算電路1140 哈達碼轉換裝置(HT)1150 累計器(ACC) 1160:比較電路1170:模式決定電路 1180:存儲器P10B、P10C 可能位置P730、P800、P810、P820 搜尋位置A10、A100、A110 方向S100、S500-S545、S600-S645、S710-S750 步驟
具體實施例方式以下公開的實施例的說明中,舉H.沈4作為范例性的說明,然而,其也可應用于基于H.沈4的其他視頻標準的實現之中,例如是可調性視頻編碼(Salable Video Coding, SVC),或是應用于存儲介質,如藍光光盤(Blu-ray disc),高品質視頻光盤(HD-DVD),或是電視廣播如高畫質電視或基于網絡協定電視(IPTV)。故此,公開的各實施例可適用于各種視頻處理場合之中,亦用以實現于各種運算裝置、手持裝置或視頻處理裝置之中。第一實施例第一實施例提供一種移動估計的方法,可用以減少所需進行的高精確度移動估計的模式的數量。此實施例在移動估計進行高精確度移動估計階段時,至少依據整數移動估計所得出的部分移動向量,進行比較,以決定所需要執行的高精確度移動估計的模式。故此,所需進行的高精確度移動估計的模式的數量就得以減少,并因此增進整體的高精確度移動估計的效率。此實施例適用于使用可變區塊大小的移動估計(variable block-size motion estimation)的視頻編碼中。如H. 264/AVC(以下簡稱H. 264)為例,其允許于一 16x16的宏區塊中作不同大小的區塊分割而形成不同的區塊模式,共提供了 7種不同大小的區塊模式。如圖1所示,區塊模式可分為宏區塊分割類型(macroblock types)與8x8分割類型 (sub-macroblock type 或 8x8types)。宏區塊分割類型包含了 16xl6、16x8、8xl6 與 8x8 的區塊模式。而8x8分割類型則包含了 8χ8、8χ4、4χ8與虹4的區塊模式。圖2為以硬件實現移動估計的一種方式,移動估計的整數移動估計(integer motion estimation, I ME)及高精石角度移動估計(fractional motion estimation, FME) 分別以兩級電路來實現,如IME單元210及FME單元220,并例如以兩管線級實現。當然在其他例子中,也可采用其他方式實施。IME單元210用以依據可變區塊大小移動估計方式 (variable-block-size motion estimation, VBSME),對于一個宏區塊產生含有上述 7 種區塊模式共41個整數移動向量(integer motion vector, IMV)之后,FME單元220依序對于每一個區塊模式的移動向量進一步的提高其精確度,即精細化這些移動向量。最后,經過 FME單元220處理后,具有最小成本的模式會被選為編碼的最合適的模式。而依據第一實施例的方法應用于圖2的移動估計電路的意義在于,FME單元220需要執行哪些區塊模式,至少依據IME單元210所得出的部分移動向量,經過比較而決定。故此,FME單元220并不需要對所有整數移動向量IMV進行全部的模式的高精確度移動估計。 如此,高精確度移動估計所需的運算時間及運算資源能得以減少。以電路來實現FME單元 220時,能簡化電路復雜度。圖3所示為一視頻編碼器的部分電路方塊圖的一例子。移動估計單元200依據如圖2所示的架構實現,以產生最合適的移動向量MVB。控制器100從移動估計單元200得到部分的整數移動向量,并至少依據此些整數移動向量決定移動估計單元200需要執行哪些區塊模式的高精確度移動估計。控制器100例如是通過至少一控制信號CS控制移動估計單元200。以下舉例說明依據本實施例的方法如何至少依據整數移動估計所得出的部分移動向量,進行比較,以決定所需要執行的高精確度移動估計的模式。在H. 264中,碼率失真成本或簡寫為RDcost (rate-distortion cost)可據以作為決定成本最小的模式的條件。碼率失真成本RDcost可以表示為λ len(mvd)+SATD,其中λ由量化參數所決定,而bit_len(mVd)代表移動向量差異(motion vector difference, mvd)的編碼位數,SATD表示絕對轉換差異的和(sum of absolute transformed difference)。而本實施例針對H.沈4,則應用如下的觀點以定出模式決定的條件,來減少冗余的模式的移動估計。一者是,如果兩模式的整數移動向量是實質上相同則此模式的SATD是相當接近的,其中實質上相同(或相等)指兩者相同,例如是兩移動向量的坐標值皆相同,或可視為兩者的差異在一預定的范圍內,例如是兩移動向量的坐標值 (至少x與y坐標值的至少一個)的差值在一或兩個像素的范圍內,此范圍可隨實際應用的需要而定義或設定。另一觀點是,一模式的移動向量很有可能趨近于其較上層區塊。例如, 請參考圖1,模式2(即16x8的區塊模式)的分割0視為模式4(即16x16分割為4個8x8 的區塊模式)的分割0或1的上層區塊,后者所對應的移動向量通常都是趨近于前者的移動向量。故此,以下舉兩個例子說明依據第一實施例的移動估計方法。請參考圖5,依據第一實施例的移動估計方法的一第一例的流程圖。在進行移動估計時,如步驟S100所示,對于一宏區塊執行整數移動估計,例如是前述H. 264的7個區塊模式以產生相對應的多個整數移動向量。接著,如步驟S500所示,執行依本實施例的一高精確度移動估計的方法,至少依據整數移動估計所得出的部分移動向量,判斷一模式的整數移動向量是否皆實質上等于其較上層模式的整數移動向量,以決定是否要執行此模式的高精確度移動估計。另外,以H. 264為例,模式的定義請參考圖1及圖4,模式1至3分別代表16x16、16x8與8x16的3種區塊模式;而模式P8x8即代表前述的8x8分割類型,每個 8x8的區塊及其分割可以產生其有4種不同大小的區塊,如8x8、8x4、4x8與虹4,圖4模式 P8x8所示為分割0至8的一宏區塊,其中對于一模式的一分割η的整數移動向量可簡稱為IMVn。圖5中的高精確度移動估計的方法包括如下步驟。如步驟S510所示,執行模式1 的高精確度移動估計。之后,執行步驟S520,決定模式2及模式1的整數移動向量是否實質上相同。亦即,判斷模式2的分割0及1的整數移動向量(即IMVO及IMV1)是否實質上皆等于模式1的整數移動向量(即IMV0)。如果否,則如步驟S525所示,執行模式2的高精確度移動估計,即對模式2的整數移動向量進行高精確度移動估計,例如以移動估計單元200 的FME單元220對模式2的兩個整數移動向量IMVO及IMVl進行精細化(refinement)。并在步驟S525結束后執行步驟S530。如果步驟S520的判斷結果為是,則表示可以忽略步驟 S525。此例的方法繼續進入步驟S530,以決定模式3及模式1的整數移動向量是否實質上相同。亦即,判斷模式3的分割0及1的IMVO及IMVl是否實質上皆等于模式1的IMV0。 如果否,則如步驟S535所示,執行模式3的高精確度移動估計,并在步驟S535結束后執行步驟S540。如果步驟S530的判斷結果為是,則表示可以忽略步驟S535。此例的方法繼續進入步驟S540,以決定模式P8x8的整數移動向量是否實質上等于模式1、2或3的整數移動向量。如果否,則如步驟S545所示,執行模式P8x8的高精確度移動估計。如果步驟S540的判斷結果為是,則表示可以忽略步驟S545。另外,步驟S540的判斷條件例如為滿足如下條件1、2及3中的一個。條件1 模式P8x8的IMVO至IMV8皆等于模式1的IMV0。條件2 模式P8x8的IMVO至IMV2皆等于模式2的IMV0,且模式P8x8的 IMV3至IMV8皆等于模式2的IMVl。條件3 模式P8x8的IMVO、IMV3及IMV4皆等于模式 3的IMVO,且模式P8x8的IMV1、IMV2、IMV5至IMV8皆等于模式3的IMVl。此外,為了減少需要執行高精確度移動估計的模式,在一例子中,對次步驟S540中的模式P8x8的整數移動向量,可以只取用從一宏區塊所分割出來的4個8x8的區塊中每個8x8的區塊的8x8分割類型之中(即8x8、8x4、4x8及虹4的模式)最佳模式(即對應的RDcost最低)的整數移動向量。故在步驟S540中,只需要至少4個IMV,最多有16個IMV來作為比對的依據,而且比對時,只需要比較最佳模式的IMV,沒有取用的模式可以不納入條件1、2或3中。例如,假設模式P8x8的整數移動向量為4個8x8的區塊模式的IMV0,如果此4個模式P8x8的IMVO 皆等于模式1的IMV0,即條件1被滿足,至于IMV2至IMV8并不是最佳模式的IMV,故不用比對。另外,假設模式P8x8的整數移動向量為2個8x8的區塊模式的IMV0、1個4x8的區塊模式的IMV3及IMV4、1個虹4的區塊模式的IMV5至IMV8,如果此例的IMVO與模式2的 IMVO相同,而且IMV3至IMV8皆同等于模式的IMV1,亦即條件2得以滿足。其他情況可依此類推,故不再贅述。在步驟S540或S545結束后,移動估計方法還可依據在步驟S500中所得的高精確度移動向量以及已知的整數移動向量,找出合適的區塊模式及移動向量。例如,H. 264的移動估計方式,根據碼率失真成本以找出最合適的區塊模式及移動向量。經過模擬測試幾個示范性的視頻文件(如akiyo、news、silent、foreman、 mobile),本實施例的第一例通過減少所需進行的高精確度移動估計的模式的數量,可以減少高精確度移動估計所需要的時鐘周期數,約可減少H. 264的參考軟件的60%的時鐘周期數。此外,也可達成與H. 264的參考軟件相似的品質。請參考圖6,依據第一實施例的移動估計方法的一第二例的流程圖。此例子與圖5的主要異差在于如步驟S600所示的一高精確度移動估計的方法,除了至少依據整數移動估計所得出的部分移動向量,進行比較以外,更進一步考量移動向量差異的編碼位數,亦即依據一模式及其較上層模式之間整數移動向量IMV及移動向量差異成本mvd_C0St的關系, 以決定是否要執行此模式的高精確度移動估計。移動向量差異成本mvd_C0St即前述碼率 RDcost = λ *bit_len (mvd) +SATD 巾白勺 λ *bit_len (mvd)。圖6中的高精確度移動估計的方法包括如下步驟。如步驟S610所示,判斷模式2 及模式1的整數移動向量是否實質上相同,而且模式2的移動向量差異成本是否大于模式1 的移動向量差異成本(mvd_cost (mode2) > mvd_cost (model)),其中modeN即代表模式N, N為正整數。如果否,則如步驟S615所示,執行模式2的高精確度移動估計,并在步驟S615 結束后執行步驟S620。如果步驟S610的判斷結果為是,則表示可以忽略步驟S615。此例的方法繼續進入步驟S620,判斷模式3及模式1的整數移動向量是否實質上相同,而且模式3的移動向量差異成本是否大于模式1的移動向量差異成本(mvd_ cost(mode3) > mvd_cost (model))。如果否,則如步驟S625所示,執行模式3的高精確度移動估計,并在步驟S625結束后執行步驟S630。如果步驟S620的判斷結果為是,則表示可以忽略步驟S625。此例的方法繼續進入步驟S630,判斷模式1及模式2的IMV是否實質上相同且模式2的FME已執行,或是模式1及模式3的IMV是否實質上相同且模式3的FME已執行。如果否,則如步驟S635所示,執行模式1的高精確度移動估計,并在步驟S635結束后執行步驟S640。如果步驟S630的判斷結果為是,則表示可以忽略步驟S635。如步驟S640所示,判斷模式P8x8的整數移動向量是否實質上等于模式1、2或3 的整數移動向量。如果否,則如步驟S645所示,執行模式P8x8的高精確度移動估計。如果步驟S640的判斷結果為是,則表示可以忽略步驟S645。此處的步驟S640及S645與圖5中的步驟S540及S545相似,其他情況可依此類推,故不再贅述。在步驟S640或S645結束后,移動估計方法更可依據在步驟S600中所得的高精確度移動向量以及已知的整數移動向量,找出合適的區塊模式及移動向量。例如,H. 264的移動估計方式,根據碼率失真成本以找出最合適的區塊模式及移動向量。上述圖6的第二例因為還考慮移動向量差異成本作為判斷條件,更能在減少運算資源的同時獲得與參考軟件相似的傳輸率(bit rate)。在硬件實際操作時,第一實施例的兩個例子時,需要增加判斷電路,如以比較器或加法器,或邏輯電路實施。例如,請參考圖3, 可以于控制器100中實施有關的判斷電路。此外,在此例子中,如果實現步驟S540時,模式 P8x8的整數移動向量采用最佳模式的整數移動向量的話,則只需要傳輸較少數量的IMV至控制器100,便可以依據本實施例,以控制移動估計單元200決定要執行或是忽略哪些高精確度移動估計的模式,從而增進高精確度移動估計的效能。控制器100可以實際操作為獨立的電路或是一視頻處理器如編碼器或視頻傳輸裝置之中的控制電路,如編碼控制器。第二實施例第二實施例提供一種移動估計的方法,用以減少于進行高精確度移動估計時搜尋位置的數量。此實施例在移動估計針對一整數移動向量進行高精確度移動估計的過程中, 第一輪首先依據預測移動向量的方向來產生第一高精確度的搜尋位置,找出第一高精確度的最合適位置后,還據此預測移動向量的方向及最合適位置進一步精細化,產生第二高精確度的搜尋位置,以找出其中第二高精確度的最合適位置。如此可提升高精確度移動估計的效率,減少運算資源的使用,或能以較少的硬件資源以實施高精確度移動估計。請參考圖7所示的依據第二實施例的一種移動估計的方法的一流程圖。此方法用以對一整數移動向量,進行高精確度移動估計以提高其精確度,即精細化此整數移動向量, 例如具有最小整數移動估計成本的一整數移動向量。以下舉例以一整數移動向量的坐標點作為一整數位置,作為進行高精確度移動估計的開始點(也可視為原點),如圖8的開始點 P800。在圖7中,如步驟S710所示,取得一預測移動向量(predicted motion vector)PMV, 其基于目前編碼的宏區塊的鄰近的宏區塊的移動向量而決定,例如H. 264的預設會產生的預測移動向量。接著,如步驟S720所示,依據此預測移動向量的方向,產生數個第一高精確度的搜尋位置,其中第一高精確度例如為1/2像素,而這些第一高精確度的搜尋位置皆為離此方向較近的第一高精確度的位置。例如,圖8中的箭號AlO代表預測移動向量的方向為向右上,在此方向上離此方向較近的1/2像素的位置如正方形所代表的3個點作為1/2 像素的搜尋位置。如步驟S730所示,對這些第一高精確度的搜尋位置及此整數位置,執行FME以找出其中第一高精確度的最合適位置,其中FME如以平行處理方式達行。例如,依照H.沈4,利用FME單元計算3個1/2像素的搜尋位置以及開始點P800的碼率失真成本,找出其中成本最小者作為第一高精確度的最合適位置如位置P810。以如步驟S740所示,基于第一高精確度的最合適位置及此預測移動向量的方向,產生多個第二高精確度(例如為1/4像素)的搜尋位置,而這些第二高精確度的搜尋位置皆為離此預測移動向量的方向及此整數位置較近的第二高精確度的位置。例如在位置P810附近,較接近此預移動向量的方向(實際上靠右上方向)及此整數位置(即位置P800)的第二高精確度的位置(即4個三角型所代者的位置)。如步驟S750所示,對這些第二高精確度的搜尋位置,執行FME以找出其中最合適的第二高精確度位置,其中FME如以平行處理方式達行。例如,最合適的第二高精確度位置為位置P820。在上述步驟S720中,依據此預測移動向量的方向所產生的數個第一高精確度的搜尋位置皆為離此方向較近的第一高精確度的位置。在一例子中,搜尋位置例如圖9A至圖9D所示,可分別預先設定4種可能情況,依預測移動向量的方向如其坐標方向(x-dir, y-dir)的正負號(+,+)、(+,-)、(-,-)、(-,+)分為情況1至4。在步驟S720中,可以依預測移動向量的方向,從4種情況中找出對應的一個預定的搜尋方向即右下、右上、左上及左下(如其中箭號所示),以及數個(如3個或2個)相對應第一高精確度的搜尋位置,此3 個位置皆離此方向較近,且與開始點相距第一高精確度的坐標位置,如H. 264中所需的1/2 像素。此外,在步驟S740中,基于第一高精確度的最合適位置及此預測移動向量的方向所產生的多個第二高精確度的搜尋位置皆為離此預測移動向量的方向及此整數位置較近的第二高精確度的位置。此例的作法可稱為調適性的基于方向的(adaptive and direction-based)位置搜尋,例如,圖IOA至圖IOC分別說明3種情況。情況1為前述步驟S730所找出的第一高精確度的最合適位置為原點P800時,則第二高精確度的搜尋位置可設為原點P800的上下左右且與開始點相距第二高精確度的坐標位置,如 H. 264 中所需的 1/4 像素,(1/4,0)、(0,1/4)、(-1/4,0)及(0,-1/4).在圖IOB示意情況2時,第一高精確度的最合適位置P730不為原點P800時,則第二高精確度的搜尋位置可從5個1/4像素的位置中(如三角形所示)基于一更新的預測方向AllO而選取。此更新的預測方向AllO是基于位置P730及前述此預測移動向量的方向AlOO而得。從圖IOB中可見,由于更新的預測方向AllO表示更精確的搜尋位置應出現在離此預測移動向量的方向AlOO及此整數位置P800較近的第二高精確度的位置即 (1/4,-1/2)、(1/4,-1/4)、(0,-1/4)及(-1/4,-1/4),亦即空心的三角形所示的位置。如此類推,如果更新的預測方向AllO偏向左下,則選取偏左邊的四個位置S卩(-1/4,-1/2), (-1/4,-1/4)、(0,-1/4)及(1/4,-1/4)。其他的最合適位置P730落在通過原點的χ或y 軸時,可依此類推,第二高精確度的位置如落入在圖IOB中的粗黑線PlOB所示的可能位置之中。在圖IOC示意情況3時,第一高精確度的最合適位置P730位置如圖IOC所示的正方形的位置時,其選取第二高精確度的搜尋位置與圖IOB的情況2相似,可依此類推,故不再贅述。第二高精確度的位置如落入在圖IOC中的粗黑線PlOC的可能位置之中。再者,第二實施例之上例子說明中,皆以4個第一或第二高精確度的搜尋位置為例進行高精確度移動估計以找出其中的最合適位置。但本實施例并不以此為限,其他的例子中,依第二實施例的基于預測移動向量的方向的高精確度移動估計在步驟S720 (或步驟 S740)中產生其他數目如3、4或5的個數的搜尋位置。另外,本實施例亦不限定于第一及第二高精確度分別為1/2及1/4像素,其他可能的高精確度如1/3及1/6或1/8像素也可應用。此外,在其他例子中,圖7的流程也可進一步相似地重復S740及S750以再進行一次精細化。此外,第一或第二高精確度的搜尋位置的選取也可改以其他方式得到,這些第一高精確度的搜尋位置皆為離此預測移動向量的方向較近的第一高精確度的位置,而多個第二高精確度的搜尋位置皆為離此預測移動向量的方向及此整數位置較近的第二高精確度的位置。另外,依據本實施例,可以實現一種高精確度移動估計的裝置。請參考圖11,其為依據本實施例的一高精確度移動估計單元1000的架構方塊圖,高精確度移動估計單元 1000包括高精確度移動估計裝置1100及模式決定電路1170及存儲器1180如緩沖器。高精確度移動估計裝置1100例如依據上述圖7的高精確度移動估計的方法以硬件實現。預測移動向量產生裝置910接收目前的宏區塊CB的鄰近宏區塊的移動向量(MV)產生預測移動向量PMV以實現步驟S710。搜尋位置產生裝置1120依據預測移動向量PMV以及通過內插裝置1110產生適合的搜尋位置,以實現S720。搜尋位置產生裝置1120,例如依據圖9A至圖9D的方式以數字電路、邏輯電路或以查表或固件實現,依據預測移動向量的坐標,判斷要選用哪一種情況及對應的方向及搜尋位置。當依據這些搜尋位置進行高精確度移動估計時,高精確度移動估計裝置1100需要讀取參考畫面的像素RB及目前宏區塊的像素CB。高精確度移動估計裝置1100的殘差計算電路1130、哈達碼轉換裝置(Hadamard transform, HT) 1140如實現4x4的哈達碼轉換,以及累計器(accumulator, ACC) 1150,則依據如H. 264 的標準,進行高精確度移動估計,計算出各個搜尋位置所對應的成本,如RDcost,其中殘差計算電路1130讀取目前宏區塊的像素CB并與搜尋位置產生裝置1120所產生的搜尋位置作比較產生殘差(residue)給HTl 140并可輸出殘差數據。HTl 140共有4個,對應到4個搜尋位置,并且以平行方式運算,并配合ACC1140,可以得出各個搜尋位置的SATD。另外,再配合移動向量成本計算電路920輸出mvd_C0St,達成了各個搜尋位置的RDcost的計算。接著,通過比較電路1160,找出當中成本最小的搜尋位置。如此實現了步驟S730。此外,搜尋位置產生裝置1120接收比較電路1160輸出的第一高精確度的最合適搜尋位置并依據預測移動向量PMV,產生第二高精確度的搜尋位置,以實現步驟S740。例如,搜尋位置產生裝置 1120可以依據圖IOA至圖IOC所示,依據前述條件以電路判斷或查表或計算以選取適用的搜尋位置。接著,高精確度移動估計裝置1100如上述般實現步驟S750。最后輸出第二高精確度的最合適搜尋位置到模式決定電路1170,其依據之前所得到整數移動向量及高精確度移動向量以及成本等的參數決定最合適的區域模式,并輸出到存儲器1180之中。如此,可以輸出例如最佳移動向量MVB、最佳模式及最小SATD的數據供視頻處理如編碼之用。另外,在實現H. 264時,預測移動向量PMV為視頻系統標準中必須產生的,故若在視頻處理器能提供的情況之下,就不必另外由高精確度移動估計單元1000自行產生,故此,在其他實現方式中,預測移動向量產生裝置910及移動向量成本計算電路920的至少一個可視為實施例在高精確度移動估計單元1000以外的電路,或是不必實現于高精確度移動估計單元1000之內,直接從視頻處理器的其他部分讀取即可。另外,在其他實施例中,在圖11中的HTl 140及ACCl 150可以使不同組數如3或5組對應到每次作FME時3或5個搜尋位置。此外,雖然本實施例以H. 264作為范例性說明,但是,其他需要進行高精確度移動估計的場合或其他視頻處理也可利用本實施例以執行。在其他視頻處理中,如果不并采用哈達碼轉換者可改采其他轉換或最合適搜尋位置的成本計算,只要其實施時依基于預測移動向量為產生搜尋位置的高精確度移動估計其中更再調適性的基于預測移動向量進一步精細化搜尋位置的話,皆可視為本實施例的實現范圍之內。第三實施例第三實施例在前述的第一實施例得出所需進行的高精確度移動估計的模式的數量減少的情況下,在進行各個高精確度移動估計時,如圖5的步驟S510、S525、S535及S545 以及圖6中如步驟S610、S625、S635及S645,以第二實施例的較少的搜尋位置進行估計。如此,更可進一步減少整體編碼的復雜度及運算時間,以達成更佳的效能。請參考圖2及圖3, 依第三實施例之下,可視為將第一實施例實現于控制器100之中,而移動估計單元200則包括有如圖2的架構,而FME單元220則可依照第二實施例的方式實施。其他實施例此外,上述第一實施例及第二實施例的實施方式,其可單獨實施。也就是說,在實施第一實施例時,高精確度移動估計的執行如步驟S510或S610所示者,可以采用第二實施例以外的其他方式實施。另外,在實施第二實施例時,也可配合其他第一實施例以外的方式以減省所需要的模式或是全部模式皆執行,又或者是以一獨立的高精確度移動估計單元或是包括整數移動估計及高精確度移動估計的移動估計裝置來實施第二實施例。上述的各個本公開的實施例的方法或硬件實際操作,不論是個別或聯合的方式皆視為本公開所卻揭示的實施范圍之內。另外,本公開上述的方法除了上述的硬件結構實施以外,也可利用如處理器、數字信號處理器、數字視頻處理器實施,或是以可編程的集成電路如微控制器、元件可編程邏輯門陣列(FPGA,Field Programmable Gate Array)之類的電路來實現,其中例如以硬件描述 (HDL, Hardware description language)來設計。另外,本公開上述的方法也可以軟件程序來實現,如依據本公開的方法的一例子的程序代碼記錄在一存儲介質之中,如存儲器如ROM、RAM及之類的介質、或光學或磁性或其他記錄介質,或是實現為固件(firmware)。當運算裝置的視頻處理器如編碼器或微處理的類,從存儲有依本公開的方法的程序代碼的存儲介質讀取并執行,能實現依本公開的方法。再者,本公開的上述方法可以軟硬件結合的方式實現。如上述,本公開的第一實施例提供一種移動估計的方法,可用以減少所需進行的高精確度移動估計的模式的數量,如此可以增進整體的高精確度移動估計的效率。第二實施例提供一種移動估計的方法,用以減少于進行高精確度移動估計時搜尋位置的數量,如此可以減少運算資源的使用或以較少的硬件資源以實施。再者,利用前述實施例得出所需進行的高精確度移動估計的模式的數量減少的情況下,更可在進行各個高精確度移動估計時以實施例的較少的搜尋位置進行估計。如此,更可減少整體編碼的復雜度及運算時間。相對于需要進行全部模式的高精確度移動估計的實現方式來說,大大減少了整體移動估計的運算時間。綜上所述,雖然已以實施例公開如上,然其并非用以限定可能實施的方式。本申請本領域技術人員,在不脫離本公開的精神和范圍內,當可作各種的更動與潤飾。因此,本申請的保護范圍當視所附權利要求書所界定者為準。
權利要求
1.一種移動估計的方法,該方法包括在移動估計的過程中a.對于一宏區塊執行整數移動估計以產生多個移動向量;以及b.至少依據該整數移動估計所得出的一部分的這些移動向量且該部分的這些移動向量對應到多個區塊模式,通過判斷各這些區塊模式的整數移動向量是否皆實質上等于該區塊模式的較上層模式的整數移動向量,決定是否要執行或忽略該區塊模式的高精確度移動估計,其中該區塊模式的較上層模式所對應的區塊大于該區塊模式。
2.如權利要求1所述的方法,其中該步驟b包括執行區塊模式1的高精確度移動估計;決定區塊模式2及區塊模式1的整數移動向量是否實質上相同;若否,則執行區塊模式 2的高精確度移動估計,并繼續以下步驟;若是,則忽略區塊模式2的高精確度移動估計,并繼續以下步驟;決定模式3及模式1的整數移動向量是否實質上相同;若否,則執行區塊模式3的高精確度移動估計,并繼續以下步驟;若是,則忽略區塊模式3的高精確度移動估計,并繼續以下步驟;決定模式P8x8的整數移動向量是否實質上等于模式1、2或3的整數移動向量;若否, 則執行區塊模式P8x8的高精確度移動估計;若是,則忽略區塊模式P8x8的高精確度移動估計。
3.如權利要求2所述的方法,其中該步驟b中,模式P8x8對應到該宏區塊4個8x8的區塊中每個8x8的區塊的8x8分割類型之中最佳模式的整數移動向量。
4.如權利要求1所述的方法,其中該步驟b還依據該模式及該較上層模式的移動向量差異成本的關系,決定是否要執行或忽略該模式的高精確度移動估計。
5.如權利要求1所述的方法,其中該步驟b包括判斷模式2及模式1的整數移動向量是否實質上相同,而且模式2的移動向量差異成本是否大于模式1的移動向量差異成本;若否,則執行區塊模式2的高精確度移動估計,并繼續以下步驟;若是,則忽略區塊模式2的高精確度移動估計,并繼續以下步驟;判斷模式3及模式1的整數移動向量是否實質上相同,而且模式3的移動向量差異成本是否大于模式1的移動向量差異成本;若否,則執行區塊模式3的高精確度移動估計,并繼續以下步驟;若是,則忽略區塊模式3的高精確度移動估計,并繼續以下步驟;判斷模式1及模式2的整數移動向量是否實質上相同且模式2的高精確度移動估計已執行,或是模式1及模式3的整數移動向量是否實質上相同且模式3的高精確度移動估計已執行;若否,則執行區塊模式1的高精確度移動估計,并繼續以下步驟;若是,則忽略區塊模式1的高精確度移動估計,并繼續以下步驟;判斷模式P8x8的整數移動向量是否實質上等于模式1、2或3的整數移動向量;若否, 則執行區塊模式P8x8的高精確度移動估計;若是,則忽略區塊模式P8x8的高精確度移動估計。
6.如權利要求5所述的方法,其中該步驟b中,模式P8x8對應到該宏區塊4個8x8的區塊中每個8x8的區塊的8x8分割類型之中最佳模式的整數移動向量。
7.如權利要求1至6中的一個所述的方法,其中執行各這些模式的高精確度移動估計包括以下步驟依據一預測移動向量的方向,執行一第一高精確度的移動估計以找出一第一高精確度的最合適位置;以及依據該預測移動向量的方向以及該第一高精確度的最合適位置,執行一第二高精確度的移動估計以找出一第二高精確度的最合適位置,其中第二高精確度的移動估計的精確度高于第一高精確度的移動估計的精確度。
8.如權利要求7所述的方法,其中該第一高精確度的最合適位置由離該預測移動向量的方向較近的多個第一高精確度的搜尋位置中所選取。
9.如權利要求8所述的方法,其中該第二高精確度的最合適位置由離該預測移動向量的方向及一原點較近的多個第二高精確度的搜尋位置中所選取。
10.一種移動估計的方法,該方法包括 在移動估計的過程中依據一預測移動向量的方向,執行一第一高精確度的移動估計以找出一第一高精確度的最合適位置;以及依據該預測移動向量的方向以及該第一高精確度的最合適位置,執行一第二高精確度的移動估計以找出一第二高精確度的最合適位置,其中該第二高精確度的移動估計的精確度高于該第一高精確度的移動估計的精確度。
11.如權利要求10所述的方法,其中該執行一第一高精確度的移動估計的步驟包括 依據該預測移動向量的方向,產生多個離該預測移動向量的方向較近的第一高精確度的搜尋位置;對于這些第一高精確度的搜尋位置和作為原點的一整數位置,執行該第一高精確度的移動估計以找出該第一高精確度的最合適位置。
12.如權利要求10或11所述的方法,其中該執行一第二高精確度的移動估計的步驟包括依據該預測移動向量的方向以及該第一高精確度的最合適位置,產生多個離該預測移動向量的方向及該原點較近的第二高精確度的搜尋位置;對于這些第二高精確度的搜尋位置,執行該第二高精確度的移動估計以找出該第二高精確度的最合適位置。
13.如權利要求10所述的方法,其中該預測移動向量基于目前編碼的宏區塊的鄰近的宏區塊的移動向量決定。
14.如權利要求10所述的方法,其中該第一高精確度的移動估計及該第二高精確度的移動估計皆以平行方式進行。
15.一種具有移動估計的裝置,包括一移動估計單元,在移動估計的過程中,對于一宏區塊執行整數移動估計以產生多個移動向量;以及一控制單元,用于至少依據從該移動估計單元所得出的一部分的這些移動向量且該部分的這些移動向量對應到多個區塊模式,判斷各這些區塊模式的整數移動向量是否皆實質上等于該區塊模式的較上層模式的整數移動向量,并據以選擇性地控制該移動估計單元執行或忽略該區塊模式的高精確度移動估計,其中該區塊模式的較上層模式所對應的區塊大于該區塊模式。
16.如權利要求15所述的裝置,其中該控單元還依據該區塊模式及該較上層模式的移動向量差異成本的關系,決定是否控制該移動估計單元執行或忽略該區塊模式的高精確度移動估計。
17.如權利要求15所述的裝置,其中該移動估計單元,回應于該控制單元的一控制信號指示執行該區塊模式的高精確度移動估計,用以依據一預測移動向量的方向,執行一第一高精確度的移動估計以找出一第一高精確度的最合適位置,其中該移動估計單元還依據該預測移動向量的方向以及該第一高精確度的最合適位置,執行一第二高精確度的移動估計以找出一第二高精確度的最合適位置,其中該第二高精確度的移動估計的精確度高于該第一高精確度的移動估計的精確度。
18.一種具移動估計的裝置,包括一整數移動估計單元;以及一高精確度移動估計單元,在移動估計的過程中,回應于該整數移動估計單元所產生的一整數移動向量,用以對該整數移動向量精細化;其中該高精確度移動估計單元依據一預測移動向量的方向,對于該整數移動向量,執行一第一高精確度的移動估計以找出一第一高精確度的最合適位置;以及該高精確度移動估計單元依據該預測移動向量的方向以及該第一高精確度的最合適位置,執行一第二高精確度的移動估計以找出一第二高精確度的最合適位置,其中該第二高精確度的移動估計的精確度高于該第一高精確度的移動估計的精確度。
19.如權利要求18所述的裝置,其中該高精確度移動估計單元包括一搜尋位置產生裝置,該搜尋位置產生裝置用以于執行該第一高精確度的移動估計時,依據該預測移動向量的方向,產生多個離該預測移動向量的方向較近的第一高精確度的搜尋位置。
20.如權利要求19所述的裝置,其中該搜尋位置產生裝置還用以于執行該第二高精確度的移動估計時,依據該預測移動向量的方向以及該第一高精確度的最合適位置,產生多個離該預測移動向量的方向及該原點較近的第二高精確度的搜尋位置。
全文摘要
一種用于視頻處理的移動估計的方法及裝置。一實施例的移動估計方法包括以下步驟。在移動估計的過程中對于一宏區塊執行整數移動估計以產生多個移動向量。至少依據此整數移動估計所得出的一部分的這些移動向量且此部分的移動向量對應到多個區塊模式,通過判斷各個這些區塊模式的整數移動向量是否皆實質上等于此區塊模式的較上層模式的整數移動向量,決定是否要執行或忽略此區塊模式的高精確度移動估計,其中此區塊模式的較上層模式所對應的區塊大于此區塊模式。
文檔編號H04N5/14GK102377998SQ20101024933
公開日2012年3月14日 申請日期2010年8月10日 優先權日2010年8月10日
發明者張元騰, 鐘文豪 申請人:財團法人工業技術研究院