專利名稱:用于視頻去抖動的修復的方法和裝置的制作方法
用于視頻去抖動的修復的方法和裝置
背景技術:
視頻去抖動(video stabilization)的目標在于,在視頻中消除由于抖動平臺所 造成的非預期相機運動產生的影響。這個全局運動可以包括由于搖擺、旋轉或前后移動相 機所引入的運動??梢允褂冒炼葘?、特征匹配和塊運動矢量過濾在內的各種方法來 執(zhí)行全局運動估計。通??梢允褂酶咚箖群藢λ玫降倪\動參數進行平滑,然后可以對幀 進行扭曲(warp)以補償高頻率的顫抖。然而,幀扭曲在幀的邊緣附近造成了丟失區(qū)域。如 果這些區(qū)域被保持可見,則視頻就會仍然顯現出不穩(wěn)定。解決此問題的一種常用方法是對 幀進行修剪。取決于運動的量,這種方法會導致幀尺寸明顯減小,這并非是所希望的??梢允褂靡曨l修復(video completion)來實現具有其原始分辨率的去抖動的視 頻,這是一種被稱為“全幀視頻去抖動”的處理??梢允褂脕碜赃^去(或將來)幀的信息及 /或圖像修復(inpainting)來填充由幀扭曲造成的丟失區(qū)域。如果丟失的像素的運動矢量 是已知的,則可以使用相鄰幀來填充丟失的像素,但是由于這些像素位于原始幀的外部,它 們的運動無法計算。然而,為扭曲所使用的全局變換可能會擴展到幀外部的該區(qū)域,這假設 了該區(qū)域與圖像位于同一平面上。因此,一種基本的修復方法是使用全局的二維變換將相 鄰幀鑲嵌到當前的扭曲后的圖像上。基于全局運動參數的鑲嵌可能會導致相鄰幀重疊。如果對于一個給定的像素有一 個以上的候選,則可以使用這些點的中值。這些候選的方差決定了匹配質量-如果方差低, 則各個鑲嵌幀在一定程度上是一致的并且該區(qū)域很有可能具有很小的紋理。如果方差高, 則使用中值可能產生模糊效應。第二個選擇是選取從與當前幀最接近的幀中獲取的點,這 假設了較為接近的幀提供更好的整體匹配。然而,這會導致在幀邊界處的不連續(xù)。此外,全 局參數僅可能在丟失的區(qū)域中不存在局部運動時才能產生良好的結果。局部運動可能無法 由全局變換所捕獲,并因此不能通過使用全局鑲嵌來處理。為了避免不連續(xù)性以及模糊,可以在視頻修復中使用在幀的邊緣附近的局部運 動。為此目的,一些解決方案首先使用全局鑲嵌方法來填充具有低方差的區(qū)域。對于任何剩 余的孔區(qū)域(hole),它們使用在其邊界處所計算的光流來填充丟失區(qū)域的局部運動矢量, 這是一種被稱為“運動修復”的處理。該方法可以產生在視覺上可接受的結果,但是需要大 量的光流計算。類似地,其它解決方案將視頻修復作為一個全局最優(yōu)化問題,填充提高局部 和全局相干性的空間-時間圖塊。這種方法可能是魯棒的并且能夠填充丟失區(qū)域,但是也 造成了巨大的計算負擔。
圖1是示出根據一個實施例的整體處理的流程圖。圖2示出了根據一個實施例的全局運動矢量的使用。圖3是示出根據一個實施例的邊緣塊的運動矢量的確定的流程圖。圖4示出了根據一個實施例的在產生候選塊時使用的運動矢量。圖5是示出根據一個實施例的候選塊的產生的流程圖。
圖6是示出根據一個實施例的候選塊的選擇的流程圖。圖7示出了根據一個實施例的在所選擇的塊與外邊界(outer boundary)之間的關系。圖8示出了根據一個實施例的視頻幀的修復的掃描次序。圖9是示出根據一個實施例的可以實現本系統的模塊的方框圖。圖10是示出根據一個實施例的可以實現本系統的軟件或固件模塊的方框圖。
具體實施例方式視頻去抖動旨在通過移除或減小由抖動的相機引入的非預期運動來提高所拍攝 的視頻的視覺質量。去抖動的一個主要部分可以是幀扭曲,其造成了在幀的邊緣附近的丟 失區(qū)域。通常,這些丟失的像素可以通過幀剪裁來去除,幀剪裁會較大地降低視頻分辨率。 這就造成了對用于在不進行剪裁的情況下填充幀邊界處的丟失像素的視頻修復的需求。以下描述了用于視頻修復的系統和方法。可以為要去抖動的當前幀確定全局運動 參數。然后可以計算當前幀的邊緣塊的運動矢量。對于在當前幀之外的預期的新塊,可以 使用所計算的運動矢量以及由全局運動參數預測的全局運動矢量來產生候選塊??梢詮暮?選塊中選擇一個候選塊來作為所述新塊,其中可以將所選擇的候選塊至少部分地放置在當 前幀的最終去抖動版本的外邊界內。在圖1中一般性地示出了此處理。在110處,可以按照通過全局運動參數的建 模,來確定當前幀(即,要去抖動的幀)的全局運動。在一個實施例中,可以使用全局運 動參數來預測在當前幀中的各個點的全局運動矢量。用于此背景中的全局運動估計的方 法在本領域中是公知的,并且例如包括Odobez等人(M. Odobez, P. Bouthemy和P. Temis, “Robustmultiresolution estimation of parametric motion models,,,Journal of VisualCommunication and Image Representation,第 6 卷,第 348-365 頁,1995 年)以 及 Battiato 等人(S. Battiato, G. Puglisi 禾口 A. Bruna, "A robust videostabiIization system by adaptive motion vectors filtering,”ICME,第 373—376 頁,2008 年 4 月)描 述的處理。在120處,可以為在當前幀的邊緣處的塊計算運動矢量(MV),其中,可以針對相鄰 幀來計算所述運動矢量??梢允褂糜扇诌\動參數預測的全局運動矢量來初始化對給定邊 緣塊的運動矢量的搜索,如在以下將會更詳細地描述的。在130處,從將會與當前塊的邊緣 接界的預期塊開始,為將被用于修復的每一個預期塊產生一組候選塊。如以下將會論述的, 候選塊的產生可以使用全局運動矢量和在120處計算的MV。在140處,可以為每個預期塊選擇其中一個候選塊,并放置在位置處。在一個實 施例中,在選擇候選塊時可以遵循特定的次序,以便沿著當前幀的邊界排列,如以下將會論 述的。如果在選擇了候選塊以沿著邊界排列之后在150處確定修復尚未完成,則可以創(chuàng)建 另一組塊,其中這些新的塊可以進一步遠離當前幀的邊緣。相對于被放置在與當前幀相鄰 的第一層中的第一組所選擇的候選塊而言,下一組塊的中心可以從當前幀的邊緣向外偏移 (160)。以下將會論述此偏移的程度。可以通過在130處產生另外的塊并進行進一步選擇, 來選出這個新的塊層,如圖1中的循環(huán)中所示的。在(按照在150處的判斷)修復之后,可以在170處進行當前幀的扭曲,以便產生去抖動的幀。此過程可以在180處結束。根據一個實施例,在圖2和3中更為詳細地示出了對邊緣塊的MV的計算(以上的 120)。如圖2所示,當前幀210可以具有幀邊緣220。對于邊緣塊沈0,可以定義搜索區(qū)域 230。為了初始化該搜索以及該搜索區(qū)域,可以使用全局運動矢量M0。具體而言,對該搜索 的初始化可以使用全局運動矢量MO的一半,其被示出為矢量250。在圖3示出了計算邊緣塊的MV的過程。在310處,可以初始化搜索區(qū)域。在所示 的實施例中,此舉可以使用由全局運動參數預測的MV來進行。為了初始化搜索,可以使用 此MV的一半。在320處,可以在該邊緣塊周圍的鄰域中執(zhí)行搜索。在330處,確定MV,其 中,該MV可以使得在該邊緣塊與參考幀中的一個塊之間的SAD最小。此過程可以在340處 結束。在一個實施例中,圖3的過程可以針對必要數量的邊緣塊而進行重復。根據一個實施例,在圖4和5中更為詳細地示出了候選塊的產生(圖1的130)。圖 4中示出了 6個候選塊的產生,其中這些候選塊中的每一個皆可表示用以填充在當前幀410 外部的與當前幀410中的邊緣塊430相對的空間的預期塊。每個候選塊皆可按照各自的運 動矢量來定義。這些運動矢量被標記為從1到6。MVl可以是邊緣塊430的運動矢量。MV2 可以是與邊緣塊430相鄰的邊緣塊440的運動矢量。MV3可以是在邊緣塊430的另一側的 邊緣塊450的運動矢量。MV4可以是MVl. . . 3的中值。MV5可以是MVl. . . 3的均值。MV6可 以是以上針對該邊緣塊所導出的全局MV。MVl至MV6中的每一個皆可指示這樣的塊即,該 塊是用以填充在當前幀410的外部的要進行修復的區(qū)域中被示出為塊420的空間的候選。根據一個實施例,在圖5中示出了產生這些候選塊的過程。在510處,最初可以將 預期塊的中心定義在與當前幀的邊緣相距半個塊的距離處。在520處,可以用在當前幀中 的最接近的邊緣塊,例如圖4中的塊430,的運動矢量來確定候選塊。在530處,可以用與在 當前幀中的該最接近的邊緣塊相鄰的第一塊的運動矢量來確定另一候選塊。在540處,可 以用當前幀中的第二塊的運動矢量來確定另一候選塊。在550處,可以用作為以上前3個 運動矢量520到MO的均值的一運動矢量來確定另一候選塊。在560中,可以用作為以上 前3個運動矢量520到MO的中值的一運動矢量來確定另一候選塊。在570中,可以用全 局運動矢量來確定另一候選塊。該過程在580處結束。注意,可以針對當前幀的每個邊緣塊而產生一組候選塊。因此可以重復該序列 510-560,每次迭代皆使用另一邊緣塊作為其最接近的塊。此外,對于每個邊緣塊,可以針對 與當前幀相鄰的幀來確定過程500中所確定的6個運動矢量。對于每個邊緣塊,過程500 可以針對作為當前幀的鄰居的每個幀而進行重復,從而將可以針對與當前幀相鄰的每個幀 而確定6個運動矢量(并產生6個候選塊)。例如,在給定了兩個相鄰幀的情況下,可以為 每個邊緣塊產生總共12個候選塊。注意,相鄰幀可以是也可以不是直接相鄰的。根據一個實施例,在圖6中示出了從與一個邊緣塊相對應的各個候選塊中選擇一 個特定塊。在640處,確定延伸到外邊界的區(qū)域是否已經被填充。若是,則不需要增加另一個 塊或者填充額外的區(qū)域,該過程可以在660處結束。若不是,則該過程繼續(xù)進行到645處。 在此,可以選擇其中一個候選塊,其中,所選擇的候選塊當與當前幀的邊緣接界時,使得在 該候選塊與最接近的邊緣塊的重疊邊界之間的關于色度和亮度的SAD最小。在650處,可以由所選擇的候選塊的MV來確定要填充的區(qū)域的量??梢允褂盟x擇的候選塊來填充多行,其中行的數量可以取決于所選擇的候選塊的MV。例如,如果填充在 當前幀的頂部處的區(qū)域,假設所選擇的候選塊的MV的y分量為-5。在此情況下,所選擇的 候選塊可以僅用于填充5行。這可以被視為將所選擇的候選塊的中心向上偏移5行。可以 類似地處理填充在當前幀的底部、左側或右側處的區(qū)域的情況。例如,可以用所選擇的候選 塊的MV的χ坐標來控制使用所選擇的候選塊對當前幀的左側或右側的修復。該過程可以 在660處結束。根據一個實施例,在圖7中示出了按照依據所選擇的候選塊的MV而變化的程度 (extent)來填充區(qū)域的過程。該圖示出了原始幀,即當前幀710,以及外邊界720。舊中心 730表示可以相對于原始幀710放置的塊的中心。新中心740可以表示所選擇的候選塊的 位置,其中該塊的位置可以取決于所選擇的候選塊的運動矢量。在該實例中使用所選擇的 候選塊新近覆蓋的行的數量可以對應于在該實例中的所選擇的候選塊的MV的y坐標。在一個實施例中,可能需要在當前幀(例如圖8的幀810)的完整的周長周圍執(zhí)行 130-140(見圖1)。在此情況下,可以使用圖8中所示的次序來填充要被修復的區(qū)域。示出 了所選擇的塊的初始層。第一個所選擇的塊可以放置在位置1(示出為塊820)。在從一組 候選中選出了該塊并將其放置在所指示的位置處之后,可以從針對位置2得到的一組候選 中為位置2選擇一個塊??梢园凑账镜拇涡蜥槍υ诋斍皫?10周圍的所有位置持續(xù)進行 該過程。在所示的實施例中,拐角位置可以最后填充。如果在該初始層完成后,有必要填充額外的區(qū)域,則此過程仍然不會結束(如圖1 中150處所確定的)。在此情況下,可以以類似的方式構建另一層。根據一個實施例,在圖9中示出了用于執(zhí)行上述處理的系統。邊緣塊MV計算模塊 910計算當前幀的各個邊緣塊的運動矢量。對于每個邊緣塊,候選塊產生模塊920接收由模 塊910產生的運動矢量,并產生一組候選塊,該組候選塊可以在填充與該邊緣塊相對的位 置處要被修復的區(qū)域時使用。可以向塊選擇模塊930發(fā)送標識所述候選塊的標識符,塊選 擇模塊930將候選塊的標識符前送至邊界匹配模塊940。在邊界匹配模塊940處,可以選擇 特定的候選塊(如以上參考圖6的附圖標記610所述),其中該所選擇的候選塊可以按照需 要用于填充在當前幀與外邊界之間的區(qū)域。如上所述的,在使用所選擇的候選塊時所填充 的行的數量可以取決于該所選擇的候選塊的MV。如上所述,該處理可以重復進行,以便構建 被修復區(qū)域。所得到結果,即當前幀加上該當前幀周圍的所選擇的候選塊(或其部分),隨 后可以被發(fā)送至扭曲模塊950,扭曲模塊950產生去抖動的幀作為輸出960。上述的模塊可以用硬件、固件、或軟件、或其組合來實現。另外,本文公開的任何 一個或多個特征可以用包括分立或集成電路邏輯、專用集成電路(ASIC)邏輯、以及微控 制器在內的硬件、軟件、固件、或其組合來實現,以及可以被實現為特定領域的集成電路塊 (integrated circuit package)的一部分或集成電路塊的組合。本文所使用的術語“軟件” 可以表示包含計算機可讀介質的計算機程序產品,所述計算機可讀介質具有存儲在其中的 計算機程序邏輯,所述計算機程序邏輯使得計算機系統執(zhí)行本文公開的一個或多個特征及 /或特征組合。上述處理的軟件或固件實施例在圖10中示出。系統1000可以包括處理器1020 和存儲器體1010,存儲器體1010可以包括可存儲計算機程序邏輯1040的一個或多個計算 機可讀介質。存儲器1010可以被實現為,例如,硬盤或硬盤驅動器、諸如壓縮盤或壓縮驅動器的可移動介質、或只讀存儲器(ROM)設備。處理器1020和存儲器1010可以使用本領域 普通技術人員公知的幾種技術中的任何技術,例如總線,來進行通信。存儲器1010中包含 的邏輯可以由處理器1020讀取并執(zhí)行。一個或多個I/O端口及/或I/O設備,其總體示出 為I/O 1030,也可以連接到處理器1020和存儲器1010。根據一個實施例,計算機程序邏輯可以包括模塊1050-1080。邊緣塊MV計算模塊 1050可以負責為當前幀的每個邊緣塊計算MV。候選塊產生模塊1060可以負責為與邊緣塊 相對的、需要被修復的給定位置產生一組候選塊。塊選擇模塊1070可以負責將候選塊前送 至邊界匹配模塊1080。邊界匹配模塊1080可以負責使用所選擇的候選塊來填充在當前幀 與外邊界之間的區(qū)域,其中,該區(qū)域被覆蓋的程度可以取決于所選擇的候選塊的MV。結論本文在功能架構模塊的幫助下公開了方法和系統,所述功能架構模塊如以上所列 出的,描述了功能、特征及其關系。為了表述的方便,這些功能架構塊的邊界的至少一些在 本文中被任意地定義了。可以定義替代邊界,至少所規(guī)定的功能及其關系被適當地執(zhí)行即可。雖然本文公開了各種實施例,但是應該理解,這些實施例僅是采用實例的方式而 非限制性的方式來給出的。本領域普通技術人員會明白,在此可以在形式和細節(jié)方面進行 各種改變而不會脫離本文所述的方法和系統的精神和范圍。因此,權利要求的寬度和范圍 不應受到本文公開的任何示例性實施例的限制。
權利要求
1.一種方法,包括確定要被去抖動的當前幀的全局運動參數;為所述當前幀的多個邊緣塊中的每個邊緣塊計算運動矢量,其中,針對相鄰幀來計算 每個邊緣塊的運動矢量;對于在所述當前幀之外的預期的新塊,使用所計算的邊緣塊的運動矢量以及由所述全 局運動參數預測的全局運動矢量來產生多個候選塊;以及從所述多個候選塊中選擇一個候選塊作為所述新塊,其中,將所選擇的候選塊至少部 分地放置在所述當前幀的去抖動版本的外邊界內。
2.如權利要求1所述的方法,進一步包括扭曲所述當前幀,以產生所述當前幀的所述去抖動版本。
3.如權利要求1所述的方法,其中,所述為每個邊緣塊計算運動矢量包括 初始化該邊緣塊的運動矢量的搜索區(qū)域,所述初始化使用所述全局運動矢量的一半; 在該邊緣塊周圍的鄰域中進行搜索;以及確定當前邊緣塊的運動矢量,其中,所確定的運動矢量使得在該邊緣塊與參考塊之間 的絕對差之和(SAD)最小。
4.如權利要求1所述的方法,其中,所述產生多個候選塊包括將所述預期的新塊的中心初始化為與所述當前幀的邊緣處的邊緣塊相距半個塊;以及 從所述預期的新塊的中心處開始,確定a.由該邊緣塊的運動矢量所指示的塊;b.由與該邊緣塊相鄰的第一邊緣塊的運動矢量所指示的塊;c.由與該邊緣塊相鄰的第二邊緣塊的運動矢量所指示的塊;d.由作為a.至c.的運動矢量的均值的運動矢量所指示的塊;e.由作為a.至c.的運動矢量的中值的運動矢量所指示的塊;以及f.由所述全局運動矢量所指示的塊。
5.如權利要求4所述的方法,其中,所述多個候選塊包括多組塊a.至f.,其中,所述多 組塊a.至f.是針對與所述當前幀相鄰的相應的多個幀而確定的。
6.如權利要求1所述的方法,其中,所述選擇包括當放置所選擇的候選塊時,使用所選擇的候選塊填充在所述當前幀與所述外邊界之間 的區(qū)域至一程度,該程度取決于所選擇的候選塊的運動矢量的χ或y坐標。
7.如權利要求6所述的方法,其中,所述選擇進一步包括選擇所述候選塊,該候選塊在所選擇的候選塊與該邊緣塊的重疊邊界之間得到關于亮 度分量和色度分量的最小絕對差之和(SAD)。
8.一種系統,包括 處理器;以及與所述處理器通信的存儲器,其中,所述存儲器存儲被配置為指導所述處理器執(zhí)行以 下功能的多個處理指令確定要被去抖動的當前幀的全局運動參數;為所述當前幀的多個邊緣塊中的每個邊緣塊計算運動矢量,其中,針對相鄰幀來計算 每個邊緣塊的運動矢量;對于在所述當前幀之外的預期的新塊,使用所計算的邊緣塊的運動矢量以及由所述全 局運動參數預測的全局運動矢量來產生多個候選塊;從所述多個候選塊中選擇一個候選塊作為所述新塊,其中,將所選擇的候選塊至少部 分地放置在所述當前幀的去抖動版本的外邊界內。
9.如權利要求8所述的系統,其中,所述存儲器進一步存儲被配置為指導所述處理器 執(zhí)行以下功能的處理指令扭曲所述當前幀,以產生所述當前幀的所述去抖動版本。
10.如權利要求8所述的系統,其中,所述用于指導所述處理器為所述當前幀的每個邊 緣塊計算運動矢量的處理指令包括被配置為指導所述處理器執(zhí)行以下功能的指令初始化該邊緣塊的運動矢量的搜索區(qū)域,所述初始化使用所述全局運動矢量的一半;在該邊緣塊周圍的鄰域中進行搜索;以及確定該邊緣塊的運動矢量,其中,所確定的運動矢量使得在該邊緣塊與參考塊之間的 絕對差之和(SAD)最小。
11.如權利要求8所述的系統,其中,所述被配置為指導所述處理器產生多個候選塊的 處理指令包括被配置為指導所述處理器執(zhí)行以下功能的指令將所述預期的新塊的中心初始化為與所述當前幀的邊緣處的邊緣塊相距半個塊;以及從所述預期的新塊的中心處開始,確定a.由該邊緣塊的運動矢量所指示的塊;b.由與該邊緣塊相鄰的第一邊緣塊的運動矢量所指示的塊;c.由與該邊緣塊相鄰的第二邊緣塊的運動矢量所指示的塊;d.由作為a.至c.的運動矢量的均值的運動矢量所指示的塊;e.由作為a.至c.的運動矢量的中值的運動矢量所指示的塊;以及f.由所述全局運動矢量所指示的塊。
12.如權利要求11所述的系統,其中,所述多個候選塊包括多組塊a.至f.,其中,所述 多組塊a.至f.是針對與所述當前幀相鄰的相應的多個幀而確定的。
13.如權利要求8所述的系統,其中,所述被配置為指導所述處理器從所述多個候選塊 中選擇一個候選塊作為所述新塊的處理指令包括被配置為指導所述處理器執(zhí)行以下功能 的指令當放置所選擇的候選塊時,使用所選擇的候選塊填充在所述當前幀與所述外邊界之間 的區(qū)域至一程度,該程度取決于所選擇的候選塊的運動矢量的χ或y坐標。
14.如權利要求13所述的系統,其中,所述用于指導所述處理器從所述多個候選塊中 選擇一個候選塊作為所述新塊的處理指令進一步包括被配置為指導所述處理器執(zhí)行以下 功能的指令選擇所述候選塊,該候選塊在所選擇的候選塊與當前邊緣塊的重疊邊界之間得到關于 亮度分量和色度分量的最小絕對差之和(SAD)。
15.一種系統,包括邊緣塊運動矢量計算模塊,其被配置為為當前幀的多個邊緣塊中的每個邊緣塊計算 運動矢量,其中,針對相鄰幀來計算每個邊緣塊的運動矢量;候選塊產生模塊,其與所述邊緣塊運動矢量計算模塊通信,并且被配置為從所述邊緣塊運動矢量計算模塊接收所述邊緣塊的運動矢量,并且對于在所述當前幀之外的預期的新 塊,使用所計算的邊緣塊的運動矢量以及由全局運動參數預測的全局運動矢量來產生多個 候選塊;塊選擇模塊,其與所述候選塊產生模塊通信,并且被配置為從所述候選塊產生模塊接 收所述候選塊的指示符,并選擇一個候選塊;以及邊界匹配模塊,其與所述塊選擇模塊通信,并且被配置為從所述塊選擇模塊接收所選 擇的候選塊的指示,并將所選擇的候選塊至少部分地放置在所述當前幀的去抖動版本的外 邊界內。
16.如權利要求15所述的系統,其中,所述邊緣塊運動矢量計算模塊被進一步配置為 初始化每一個邊緣塊的運動矢量的搜索區(qū)域,所述初始化使用全局運動矢量的一半; 在該邊緣塊周圍的鄰域中進行搜索;以及確定該邊緣塊的運動矢量,其中,所確定的運動矢量使得在該邊緣塊與參考塊之間的 絕對差之和(SAD)最小。
17.如權利要求15所述的系統,其中,所述候選塊產生模塊被進一步配置為將所述預期的新塊的中心初始化為與所述當前幀的邊緣處的邊緣塊相距半個塊;以及 從所述預期的新塊的中心處開始,確定a.由該邊緣塊的運動矢量所指示的塊;b.由與該邊緣塊相鄰的第一邊緣塊的運動矢量所指示的塊;c.由與該邊緣塊相鄰的第二邊緣塊的運動矢量所指示的塊;d.由作為a.至c.的運動矢量的均值的運動矢量所指示的塊;e.由作為a.至c.的運動矢量的中值的運動矢量所指示的塊;以及f.由用于該邊緣塊的全局運動矢量所指示的塊。
18.如權利要求17所述的系統,其中,所述多個候選塊包括多組塊a.至f.,其中,所述 多組塊a.至f.是針對與所述當前幀相鄰的相應的多個幀而確定的。
19.如權利要求15所述的系統,其中,所述塊選擇模塊被進一步配置為選擇所述候選塊,該候選塊在所選擇的候選塊與當前邊緣塊的重疊邊界之間得到關于 亮度分量和色度分量的最小絕對差之和(SAD)。
20.如權利要求15所述的系統,其中,所述邊界匹配模塊被進一步配置為當放置所選擇的候選塊時,使用所選擇的候選塊填充在所述當前幀與所述外邊界之間 的區(qū)域至一程度,該程度取決于所選擇的候選塊的運動矢量的χ或y坐標。
21.一種包含計算機可讀介質的計算機程序產品,所述計算機可讀介質具有存儲在其 中的計算機程序邏輯,所述計算機程序邏輯包括用于使得處理器確定要被去抖動的當前幀的全局運動參數的邏輯; 用于使得處理器為所述當前幀的多個邊緣塊中的每個邊緣塊計算運動矢量的邏輯,其 中,針對相鄰幀來計算所述運動矢量;用于使得處理器對于在所述當前幀之外的預期的新塊,使用所計算的邊緣塊的運動矢 量以及由所述全局運動參數預測的全局運動矢量來產生多個候選塊的邏輯;用于使得處理器從所述多個候選塊中選擇一個候選塊作為所述新塊的邏輯,其中,將 所選擇的候選塊至少部分地放置在所述當前幀的去抖動版本的外邊界內。
22.如權利要求21所述的計算機程序產品,其中,所述用于使得處理器為所述當前幀 的每個邊緣塊計算運動矢量的邏輯包括用于使得所述處理器初始化該邊緣塊的運動矢量的搜索區(qū)域的邏輯,所述初始化使用 所述全局運動矢量的一半;用于使得所述處理器在該邊緣塊周圍的鄰域中進行搜索的邏輯;以及用于使得所述處理器確定該邊緣塊的運動矢量的邏輯,其中,所確定的運動矢量使得 在該邊緣塊與參考塊之間的絕對差之和(SAD)最小。
23.如權利要求21所述的計算機程序產品,其中,所述用于使得處理器使用所述全局 運動矢量以及所計算的運動矢量來產生多個候選塊的邏輯包括用于使得所述處理器將所述預期的新塊的中心初始化為與所述當前幀的邊緣相距半 個塊的邏輯;以及用于使得所述處理器從所述預期的新塊的中心處開始,確定以下各塊的邏輯a.由該邊緣塊的運動矢量所指示的塊;b.由與該邊緣塊相鄰的第一邊緣塊的運動矢量所指示的塊;c.由與該邊緣塊相鄰的第二邊緣塊的運動矢量所指示的塊;d.由作為a.至c.的運動矢量的均值的運動矢量所指示的塊;e.由作為a.至c.的運動矢量的中值的運動矢量所指示的塊;以及f.由所述全局運動矢量所指示的塊。
24.如權利要求23所述的計算機程序產品,其中,所述多個候選塊包括多組塊a.至 f.,其中,所述多組塊a.至f.是針對與所述當前幀相鄰的相應的多個幀而確定的。
25.如權利要求21所述的計算機程序產品,進一步包括用于使得所述處理器當放置所選擇的候選塊時,使用所選擇的候選塊填充在所述當前 幀與所述外邊界之間的區(qū)域至一程度的邏輯,該程度取決于所選擇的候選塊的運動矢量的 χ或y坐標。
26.如權利要求21所述的計算機程序產品,其中,所述用于使得處理器選擇一個候選 塊作為所述新塊的邏輯進一步包括用于使得所述處理器選擇所述候選塊的邏輯,該候選塊在所選擇的候選塊與所述邊緣 塊的重疊邊界之間得到關于亮度分量和色度分量的最小絕對差之和(SAD)。
全文摘要
用于視頻修復的系統和方法。可以為要被去抖動的當前幀確定一組全局運動參數。隨后可以計算當前幀的邊緣塊的運動矢量。對于在當前幀之外的預期的新塊,可以使用全局運動矢量以及所計算的運動矢量來產生候選塊??梢詮乃龊蜻x塊中選擇一個候選塊作為所述新塊,其中,可以將所選擇的候選塊至少部分地放置在當前幀的最終去抖動版本的外邊界內。
文檔編號H04N5/232GK102123244SQ20101060237
公開日2011年7月13日 申請日期2010年12月21日 優(yōu)先權日2009年12月22日
發(fā)明者S·曼吉雅特, Y-J·秋 申請人:英特爾公司