两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

可配置的運動估計的制作方法

文檔序號:7922851閱讀:295來源:國知局
專利名稱:可配置的運動估計的制作方法
可配置的運動估計
背景技術
運動估計引擎(MEE)是一種在用于生成壓縮視頻流的視頻壓縮系統(tǒng) 中使用的模塊。運動估計包括分析先前的和/或未來的幀,以確定匹配的或 接近匹配的塊,其中這些塊能夠用于其它幀中而不需要每次單獨對其進行 存儲。然后,取代這些塊,存儲了指向可接受的匹配者的運動矢量。遺憾 的是,運動估計處理在對整個視頻流文件確定匹配中會消耗過多的處理資 源。因此,需要對方法進行改進。


通過舉例方式而非限定方式示出了本發(fā)明的實施例,在附圖的各圖中 相同的參考標號指代相似的部件。
圖1是根據(jù)一些實施例的視頻壓縮系統(tǒng)的方框圖。
圖2是用于將源幀中的宏塊與參考幀中的塊進行匹配的比較方案的示 意圖。
圖3A是示出根據(jù)一些實施例被分割為多個矩形搜索單元的參考幀部 分的示意圖。
圖3B是示出根據(jù)一些實施例被分割為多個十字形搜索單元的參考幀
部分的示意圖。
圖4示出了用于搜索參考窗以確定適當?shù)暮陦K匹配的例程。
圖5示出了可以與圖3A或3B的參考窗部分同時使用的示例性行走路
徑(walk path)。
圖6是根據(jù)一些實施例的運動估計引擎的一部分的方框圖。
圖7是示出用于根據(jù)一些實施例搜索參考幀部分的例程的流程圖。
圖8是用于根據(jù)一些實施例搜索兩個參考幀部分的運動估計引擎的一
部分的方框圖。
圖9是示出用于根據(jù)一些實施例同時搜索第一和第二參考幀部分的例
6程的流程圖。
圖IO是示出用于根據(jù)本發(fā)明的移動平臺的一部分的實例。
具體實施例方式
利用這里公開的一些創(chuàng)造性實施例給出了運動估計技術,該技術能夠 用于根據(jù)具有不同編碼成本需求的不同視頻標準來壓縮視頻文件。在一些 實施例中,提供了用于在不同幀的多個部分之間確定匹配的搜索技術,該 技術可以合并固定路徑和自適應(動態(tài))搜索這兩者的特征。在一些實施
例中,提供了搜索單元(search unit, SU)的概念和靈活SU行走路徑的實 現(xiàn),其中搜索單元通常會使得硬件效率提高。
未編碼(未壓縮)視頻流文件通常包括大量的數(shù)字數(shù)據(jù),以定義該文 件中通常大量的幀中的很多像素。視頻壓縮技術提供了一種方法,用于顯 著地減小文件大小并且同時保留大部分視頻信息。
利用幀間壓縮技術,使用序列中一個或多個之前的或后來的幀來壓縮 當前幀。將當前幀(也稱為"源"幀)中的幀部分(frame portion)與該文 件中其它幀(也稱為"參考"幀)中的部分進行匹配。然后,將指向匹配 部分的運動矢量存儲在源幀中,來取代這些部分的實際像素數(shù)據(jù)。通常能 夠?qū)ξ募械拇蠖鄶?shù)幀的很大部分進行這種處理,使得文件大小顯著減小。 (如這里所使用的,術語"幀"是指構成運動序列的獨立視頻圖像。 通常,視頻格式和獨立剪輯是利用獨立幀的分辨率以及對它們進行播放的 幀速率來描述的。應當注意,幀可以或可以不定義完整畫面。例如,對于 一種用于電視視頻格式的技術,即所謂的隔行掃描視頻,視頻的每個完整 畫面(或圖片)是由在稍微不同時間捕獲的一對幀中取出的交替行組成的。 然后,將這兩個幀交織或交錯到完整視頻圖片的交替的奇數(shù)和偶數(shù)行中。)
在一些方案中,以一般的順序形式對幀進行編碼,在流起始處開始并 繼續(xù)直到已經(jīng)對全部幀進行了編碼。在其它方案中,可以不按順序?qū)@些 幀進行編碼。例如,利用雙向方案,可以以交錯的形式對幀進行編碼,例 如,可以編碼第一幀,然后是第三("預測的")幀,然后是位置順序在第 一幀和第三幀之間的第二幀,依此類推。這稱為雙向方案,因為可以使用 在源幀之前和/或之后的參考幀來對源幀進行編碼。運動估計引擎(MEE)通常用于搜索和要確定由源幀中的運動矢量參 考的匹配部分。依據(jù)一個幀在視頻編碼過程中的位置,該幀可以作為源幀、 作為參考幀、或者即不作為源幀也不作為參考幀。參考幀可以包括源幀之
前的幀或后續(xù)的幀。通常,參考幀在包含源幀的窗(例如,8到15個幀)內(nèi)。
圖1示出了一種視頻編碼系統(tǒng),用于將所接收的視頻輸入文件102編 碼(壓縮)為符合期望視頻格式的編碼數(shù)據(jù)文件(壓縮數(shù)據(jù)流)128。這種 格式可以包括例如,AVC (先進視頻編碼或H.264或MPEG4)、 WMV (Windows媒體視頻)、MPEG (運動圖像專家組)以及當前已知或尚未定 義的很多其它格式。
視頻文件編碼系統(tǒng)具有運動估計引擎110,以根據(jù)一個或多個參考幀將 塊或塊部分與源幀匹配。在本文中,該系統(tǒng)可以使用原始參考幀104和/或 已解碼參考幀106。原始幀是來自輸入視頻流的光柵幀,而己解碼參考幀是 在該處理中已經(jīng)編碼然后又被解碼的幀。至少在處理開始處當編/解碼幀尚 不可用時,可以使用原始參考幀。
此后,將由運動估計器110生成的、源幀的匹配矢量數(shù)據(jù)提供給殘差 計算(或幀內(nèi)模式求值器)113。殘差計算113將由該矢量所確定的匹配部 分與相應的未編碼輸入幀中的相應部分進行比較,以計算在匹配的幀部分 中有多少失真(誤差)。在一些方案中,該信息可以與匹配矢量信息一起發(fā) 送,以便在壓縮數(shù)據(jù)時實現(xiàn)額外的精確度和效率。
此后,經(jīng)過量化器和離散余弦變換(DCT)模塊112,發(fā)送該殘差數(shù)據(jù) 和匹配矢量信息。該模塊將矢量信息和殘差從時域變換并量化到頻域,這 對于壓縮而言更加有效,因為例如可以提供殘差中的較寬變化。
接下來,編碼決策方框116基于來自質(zhì)量和比特速率控制方框118和 熵估計器方框122的數(shù)據(jù),使用所變換的矢量和誤差數(shù)據(jù)來組合幀數(shù)據(jù)。 此后,編碼決策信息進入熵編碼器,其依據(jù)統(tǒng)計可能性以及當編碼幀部分 被重新組合時的精確程度等來確定針對不同幀部分應該使用多大的分辨 率。
此后,在數(shù)據(jù)分組方框124處對編碼幀數(shù)據(jù)進行分組,并將其提供作 為輸出編碼(壓縮)數(shù)據(jù)流128的一部分。在這部分內(nèi)容期間,將每個幀
8的幀部分組合成為幀并且可以添加同步信息。
圖2概念性地示出了運動估計器206的操作,該運動估計器可以用作 圖1的系統(tǒng)中的運動估計器110。將被分割為多個宏塊(MB或簡稱為"塊") 的源幀204提供給ME206。宏塊可以是任何適當?shù)拇笮?,取決于具體的設 計考慮。例如,在一些實施例中,宏塊可以包括8x8或16x16個像素。
ME 206從源幀204中取出源宏塊205,并且通過將其與候選宏塊匹配 203進行比較來在參考幀202中査找最佳宏塊匹配。(應當注意,在ME 206 將源幀和參考幀中的宏塊相互進行比較時,可以確定不同參考宏塊中的子 塊(或部分)是最佳匹配的并且如此對其進行定義。)在對塊進行匹配中, ME206比較這些宏塊的相應的像素差,并針對匹配候選計算失真(誤差) 量。有若干不同的失真計量方法(例如,絕對差之和SAD或所謂的均方方 法)可以使用,并且本發(fā)明不局限于此。在一些方案中,匹配算法可以進 一步深化,例如經(jīng)由內(nèi)插方法來比較分數(shù)級的像素分量。然而,為了簡化 討論,不對此進行描述,但是這屬于并入這里所公開的原理的方法的一部 分。
ME為源幀204中的每個源宏塊(MB)生成運動矢量記錄。每個MB 記錄包括一個或多個矢量,其針對給定的源宏塊而指向參考幀中最佳部分 (分區(qū)、子塊)。
由于硬件約束和/或其它設計考慮,當查找最接近的匹配時可以針對源 宏塊搜索參考幀部分(稱為參考窗)而不是搜索整個參考幀。例如,在一 些實施例中,MEE可以被配置為提取一個或若干個參考窗的像素數(shù)據(jù),并 將其加載到參考緩存中,其中該參考緩存被配置為針對所加載的源塊査找 參考塊匹配。在一些實施例中,允許將一個或兩個參考窗(或者在其它實 施例中甚至更多)加載到參考緩沖區(qū)中,并且每個窗可以遵從其自身的搜 索路徑或者遵循公共搜索路徑。然后,通過單獨地搜索參考幀的不同窗部 分直到搜索了參考幀的所有的或適當?shù)恼w部分,能夠完全搜索該參考幀。
用于存儲參考窗的存儲器可以是任何適當?shù)拇笮?。例如,在一些實?例中,使用2K字節(jié)的緩沖區(qū)是合理的,其中將該緩沖區(qū)組織為具有下列尺 寸的一個或兩個參考窗 一個64x32像素的窗、 一個48x40像素的窗、兩 個各自為40x24像素的窗、或者兩個32x32像素的窗、等等。當然,可以
9使用任意大小的存儲器或存儲器分區(qū),這取決于設計考慮。(為了簡明并易 于理解,假設利用存儲器中的字節(jié)來定義參考幀或源幀中的每個像素。然 而, 一個像素可以對應于任何適當?shù)拇鎯卧@取決于諸如所采用的標 準、期望的分辨率、和/或編碼處理中的階段之類的事項。)
當加載了參考窗時,則將已加載的源塊與參考窗中的宏塊進行比較, 以便找到"期望的匹配",即,可用的或適度可用的、充分接近或最接近的 匹配。由所采用的搜索方法(在下文中具體討論)來確定將要進行比較的 參考塊以及對其進行比較的順序。
圖3A和3B示出了兩個參考窗實例。為了簡明起見,所描繪的窗的大 小僅為19x19像素,但是應當理解,正如所描述的,加載的參考窗可以更 大,并且可能在多數(shù)應用中都會更大。假設對于該實例,源宏塊(MB)或 參考宏塊的大小為8x8像素。對于該實施例,因為將整個源塊和參考塊相 互進行比較,所以能夠搜索的有效塊是具有8x8像素的完整塊。對于該實 例,能夠進行比較的有效塊利用其左上角的陰影像素來標識。例如,虛線 框302標識宏塊[B,2],而虛線框304標識宏塊[H,8]。(具有非陰影標識像素
的塊延伸到窗外,因此不能進行比較,除非重新加載該窗,使得這些塊移 動到完全在窗內(nèi)。)
在一些實施例中,從硬件觀點而言,更為高效的是配置參考窗緩沖區(qū)、 源緩沖區(qū)和比較邏輯,使得參考窗的多個宏塊同時與所加載的源塊進行比 較。因此,將所描繪的參考窗分組為搜索單元(SU)。在圖3A中,有標號 為"1一9"的9個正方形SU,其中每個SU定義了將要進行比較的16個 塊。另一方面,圖3B具有標號為"1一8"的十字形SU,其分別定義了將 要進行比較的12個塊。這些不同的實例說明,按照搜索單元的大小和形狀 有許多不同的方式用來定義搜索單元,根據(jù)特定的設計考慮任何方式在正 確的環(huán)境下都是適當?shù)摹?br> 可以利用各種不同的方式來實現(xiàn)被選擇進行比較的SU以及將其進行 比較的順序。例如,對于本發(fā)明的一些實施例,使用固定策略和動態(tài)策略 兩者的結合來定義要進行比較的SU的選擇以及進行比較的順序。固定策 略可以包括,例如,使用固定的"行走路徑",而動態(tài)策略可以包括動態(tài)路 徑或自適應路徑,在動態(tài)策略中,基于先前比較的結果來確定將要進行比
10較的下一個SU。
行走路徑(WP)是搜索單元的預定義順序。在壓縮之前或在壓縮期間,
可以預定義搜索單元,但是通常在針對給定源塊開始搜索之前對搜索單元 進行預定義。例如,可以基于源塊在幀內(nèi)的位置,來在査找表中定義搜索
單元。行走路徑(WP)中su的數(shù)目稱為行走路徑的長度(在本文中記為 LenWP)。 WP長度可以相對較長,例如,長達參考窗或參考幀的搜索單元 的總數(shù),或者其可以相對較小,例如,集中在期望匹配的最高可能性。
圖4示出用于搜索參考窗以確定適當?shù)暮陦K匹配的例程,并且圖5示 出用于圖3A或3B的參考窗部分的示例性行走路徑。在402處,初始化運 動估計器(或運動估計引擎MEE),用于將參考窗塊與新的源塊進行比較。 接下來,在404處,確定在行走路徑(WP)中是否存在下一個可用的SU。 (除其它處理外,在402處的初始化可能將第一個SU,對于圖5的行走路 徑實例為SU5,作為第一個"下一個"SU。)如果存在下一個SU,則例程 繼續(xù)到406,并且針對該下一個SU執(zhí)行SU比較,更新當前源宏塊的記錄, 并循環(huán)回到404。該循環(huán)繼續(xù),直到行走路徑中的每個SU都已經(jīng)按照其列 出的順序進行了比較。
當執(zhí)行SU比較操作時,將當前源宏塊與由所選擇的(下一個)SU標 識的參考宏塊進行比較。在一些實施例中,基本上同時執(zhí)行這些比較操作。 即,可以結合參考窗緩沖區(qū)和源MB緩沖區(qū),對用于執(zhí)行比較的運算和比 較邏輯進行配置,以便讀取所標識的參考塊和源塊的像素值,并將其提供 給適當?shù)倪壿嬕詧?zhí)行比較操作。
對于圖3A的參考窗,在每個SU中標識有16個參考MB,因此,比 較操作包括源塊與由該SU標識的16個不同參考塊的單獨比較。對于每個 塊比較,計算一個或多個失真計量,其指示源塊和所比較的參考塊之間的 差。因此,通常對每個源/參考宏塊比較生成一個或多個定量的結果(例如, 整數(shù)值)。
可以使用任何適當?shù)氖д嬗嬃糠椒ā@?,在一些實施例中,采用絕 對差之和(SAD)。 SAD方法包括得出所比較的源塊和參考塊中相對應像素 之間的絕對差,并將其加在一起以獲得塊比較所得到的總的SAD。在一些 實施例中,可以針對整個塊以及針對不同的對應部分得出結果。因此,使用該方法,針對每個所比較的源/參考塊生成一個或多個整數(shù)結果。
對于失真計量值,數(shù)字越小,匹配度越好。可以保留每次比較的數(shù)值, 并隨后進行評估用于選擇要由源幀中的運動矢量進行參考的匹配??商鎿Q 地,如在一些實施例的情況中,可以在對參考塊逐個進行搜索的進程中實
時地將得到結果相互進行比較以保留最佳結果。在這種方式中,在MEE硬 件中需要較少的存儲器。因此,根據(jù)SU比較操作來"更新"記錄通常是 指存儲任何或所有所獲得的失真計量結果,和/或?qū)⑵浔舜诉M行比較并且基 于該比較而保存減少數(shù)量的結果或保存失真計量結果的修改版本。
當再不存在下一個SU時(在圖5中當下一個SU是空時),則在404 處繼續(xù)到408。因此,操作404和406對應于將行走路徑中的SU按照其列 出的順序進行比較。對于圖5的示例性行走路徑,在例程的該點處,搜索 單元5、 2、 6、 8以及最后的4應當已經(jīng)按照列出的順序進行了比較,并且 在這些比較操作中保留這些結果(或至少部分結果,例如,當前獲得的最 佳匹配)。
在決策方框408處,例程確定最佳宏塊匹配是否出現(xiàn)在未搜索的相鄰 SU的邊界處。如果不是,則例程進行到412并且結束當前源宏塊。在另一 方面,如果所找到的最接近匹配是在SU邊緣處的參考MB而且相鄰的SU 還沒有進行比較,那么例程在410處對相鄰SU執(zhí)行比較操作并且循環(huán)回 到408。(應當注意,可能有多個未搜索的相鄰SU。例如,如果最佳MB 在SU的角上,則可能有若干個未搜索相鄰SU,例如有3個未搜索的相鄰 SU,其中,依據(jù)設計考慮和/或當前或下一個SU比較操作的新的結果,將 這些未搜索的相鄰SU之中的全部或僅一部分進行比較。)
該循環(huán)繼續(xù),直到?jīng)]有任何未搜索(未比較)的SU與在先前搜索的 SU的邊緣處的最接近匹配相臨。然后,例程進行到412,并進行等待,直 到加載下一個源MB。
圖6示出了根據(jù)一些實施例的的MEE引擎。該MEE引擎包括存儲器 602、 MB比較邏輯615、匹配記錄620以及控制邏輯625,其如圖所示相 互耦合。在該實施例中,使用8x8的宏塊,并且MEE針對9個單獨的源/ 參考塊分區(qū)組合生成失真計量值。這提供了額外信息,以允許在尋找適當 的或者甚至最佳匹配時具有靈活性。將宏塊分割為4個4x4分區(qū)(標記為
12A、 B、 C、 D),并且MEE為源塊的不同分區(qū)組合與參考塊的比較生成比 較結果。在匹配記錄620中示出不同的分區(qū)組合。它們是ABCD (整個 宏塊進行比較);AB、 CD、 AC、 BD (將對應的4x8和8x4半塊進行比較); 以及A、 B、 C、 D (將對應的4x4的四分之一塊進行比較)。
存儲器602具有源宏塊片段(section) 603和參考窗片段605。其可以 利用任何適當?shù)谋热?例如用于高速緩存的)靜態(tài)隨機存取存儲器(SRAM)
這樣的存儲器結構,或者利用動態(tài)寄存器結構等等來實現(xiàn)。對于該實例中 的8x8宏塊,源片段603應當具有至少64個像素字節(jié),其每一個大小足夠 適當?shù)卮鎯υ春陦K的像素信息。類似地,參考片段605應當足夠大,以便 存儲所實現(xiàn)的參考窗的像素字節(jié)的數(shù)目,例如,32x64、 64x64等。
MB比較邏輯615包括運算邏輯,用于對由搜索單元標識的參考塊執(zhí) 行失真計量計算。在該實例中, 一個搜索單元標識了 16個參考塊,并且因 此有16個比較邏輯實例用于執(zhí)行16個單獨的源塊與參考塊的比較。應當 理解,所述比較邏輯實例可以包括獨立的、相似的電路,或者可以包括一 些獨立的部分和其它對于單獨的電路實例而言的公共的部分。此外,比較 邏輯可以同步地、異步地、或者在一定變化程度上可以同步和異步地執(zhí)行 運算操作。在一些實施例中,在比較邏輯615中的計算可以在一個時鐘周 期中執(zhí)行,同時正在將新搜索單元的新參考塊加載到比較邏輯塊中用于下 一個周期中的計算。
在所描述的實施例中,比較邏輯615包括4個單獨的分區(qū)比較(PC) 方框,616A到616D,用于產(chǎn)生針對在相應的源/參考塊分區(qū)(A、 B、 C、 D)之間的比較的獨立失真計量值;以及分區(qū)求和邏輯618,用于將分區(qū)的 比較結果進行組合以生成9個單獨的分區(qū)組合值。PC和求和邏輯可以被配 置用于執(zhí)行任何期望的失真計量計算。例如,PC和求和邏輯可以執(zhí)行SAD (絕對差之和)或均方計算。例如,由于SAD硬件實現(xiàn)簡單,所以在一些 應用中SAD失真計算是適合的。
從每個PC塊執(zhí)行失真計量計算,并且將數(shù)值(例如,整數(shù)值)提供給 分區(qū)求和方框618。這里,將4個分區(qū)的數(shù)值以適當?shù)慕M合方式進行組合(求 和),以便為在匹配記錄620中指示的單獨的分區(qū)組合提供數(shù)值。(應當理 解,取決于硬件因素和希望提供給用戶的編程靈活性等等,可以采用任何期望大小的或適當大小的分區(qū)。在一些實施例中,可以需要或不需要單獨 的分區(qū)計量或使其可用,或者可以將硬件設計為向用戶提供選擇性組合。)
匹配記錄620具有存儲單元片段622和624,用于分別保存每個分區(qū)組 合的當前值和每個分區(qū)組合的最佳匹配(BM)。通常,匹配記錄可以包括 任何適當?shù)拇鎯ζ鹘Y構,用于保存針對不同參考塊的一個或多個不同分區(qū) 組合的失真計量結果、或者如該描述的情況針對當前塊和目前所獲得的最 佳匹配的失真計量結果。在所示圖中,當前記錄片段622中的失真值與其 在最佳匹配片段624中的對應值進行比較。如果當前片段值指示更低的失 真(例如,當使用SAD時,如果數(shù)值更小),則以當前片段的數(shù)值來取代 BM片段中的數(shù)值。這種方法的優(yōu)點是,通常需要較小的存儲器。即,僅 保存每個分區(qū)組合的最佳匹配。
匹配記錄620可以包括當前片段的多個實例,或者可以具有其它適當 電路用于緩存由16組不同的比較邏輯生成的數(shù)值。即,當比較邏輯并行地 或者基本上在一個公共時間幀(諸如一個或多個時鐘周期)內(nèi)執(zhí)行比較操 作時,在近似相同的時間生成16組單獨的比較結果。因此,應當維護這16 組單獨的結果,至少直到確認它們是或者不是BM (最佳匹配)值。
運算邏輯可以用任何適當方式來實現(xiàn)。例如,16個值可以單獨地與例 如BM片段624中的BM值進行比較??商鎿Q地,例如,在比較邏輯615 中可以采用適當?shù)谋容^器的分支,用于有效地將16組數(shù)值互相比較,以獲 得16組結果中的最佳值,然后將這些最佳值提供給當前記錄片段。例如, 可以使用所謂的分治(divide-and-conquer)樹型邏輯結構??梢杂泻芏嗖?同的適當方式用于實現(xiàn)實際的運算電路。運算電路可以同步或異步完成, 并且可以包括或多或少的電路模塊,這取決于成本、效率和所期望的靈活 性之間的期望平衡。
圖7示出了利用例如圖6的MEE、使用單個參考窗將搜索單元組的參 考塊與源塊進行比較的例程。通常,該例程分為兩個單獨的線程A0和 Al,其中A0和A1能夠同時執(zhí)行。AO通常負責執(zhí)行SU比較(SU搜索), 而Al通常負責確定將要搜索的"下一個"搜索單元(SU)。應當注意,對 于該實施例, 一旦線程A1進入自適應搜索階段,則其基于當前正在搜索的 什么SU來決定下一個SU是什么。SP,從正在搜索當前被搜索的SU的時間到該SU對Al線程可用的時間之間存在延遲??梢愿鶕?jù)每個線程的處理 結構來實現(xiàn)用于該例程的硬件。
在702處,初始化MEE。接下來,在704處,為變量NextSU分配第 一個SU(WP[O]),并且為計數(shù)器K分配數(shù)值1。在706處,為變量ThisSU 分配NextSU的搜索單元地址,并且為該SU (ThisSU)的記錄(Record) 分配數(shù)值1 ,以指示將要搜索該SU。
由此處開始,例程向下進行兩個獨立線程線程AO,對應于例程的固 定行走路徑部分;以及線程A1,對應于例程的自適應(或動態(tài))部分。對 于線程AO的路徑,在708處,針對ThisSU執(zhí)行SU比較操作。接下來, 在710處,例程將線程相互進行同步,例如,使得在線程A1中基于AO中 的事件或條件做出的決策是準確的,并且因此這些線程并非是獨立地循環(huán) 而不考慮可能在另一線程中已經(jīng)改變的具體條件。對其的另一種思考方式 是,在使用獨立的硬件處理邏輯單元來執(zhí)行每個線程的實施例中,該步驟 允許任何一個線程等待另 一線程以獲取所需數(shù)據(jù)。
在712處,例程確定NextSU是否為空。(當前這個是可用的,而不是 下一個。)如果其不為空,則在714處,將K遞增,并且例程確定K是否 小于數(shù)值MaxNumSU,其中數(shù)值MaxNumSU是預先指定的常量,其對應 于參考窗中SU的最大數(shù)目。如果K小于該值,則例程循環(huán)返回到706并 且繼續(xù)如所描述的進行處理。(應當注意,如對線程A1的討論所說明的, 在線程A1的728處,該循環(huán)的NextSU有效地獲得遞增,即,指向行走路 徑中的下一個SU。)
該循環(huán)繼續(xù),直到當在712處NextSU為空時對行走路徑(WP)中的 每個SU都進行了比較為止,并且隨后,固定路徑(線程A0)部分繼續(xù)到 在716處的結束。(這并不意味著例程全部完成。自適應線程(線程A1) 可以并且可能仍在執(zhí)行。)
現(xiàn)在,對于下一個SU決策部分(線程A1),在718處,例程確定K 是否小于行走路徑的長度(LenWP),即,行走路徑中SU的數(shù)目。如果是 (指示例程仍在執(zhí)行固定行走路徑過程部分),則在728處,例程為NextSU 分配行走路徑中的第K個SU,其中該SU是行走路徑中的下一個SU,因 為在714處遞增了K。在另一方面,在718處,如果K不小于LenWP (指示已經(jīng)或正在比較 WP中最后一個SU),則例程繼續(xù)進行到720,并確定最佳運動矢量(參考 塊匹配)是否處于SU的邊緣,如果是,則例程繼續(xù)到722以確定在該邊 緣處是否存在有相鄰的SU還要進行搜索。如果不是,則例程進入726并 將NexSU分配為空,從而結束例程。
另一方面,如果存在有相鄰的SU還需進行搜索,則為NextSU分配該 相鄰SU,并且例程進入710以插回到SU比較執(zhí)行循環(huán)以便搜索該相鄰SU。 只要未搜索的相鄰SU位于具有最佳匹配的SU的邊界處,則該自適應循環(huán) (經(jīng)過722和724)繼續(xù)進行以執(zhí)行未搜索的相鄰SU。最后,當沒有剩余 的與最佳匹配運動矢量相鄰的未搜索的相鄰SU時,則在724處,例程進 入726,將NextSU分配為空并結束,直到比較下一個源塊。
圖8示出了另一個MEE實施例。除該MEE允許在存儲器802中加載 兩個參考窗(805A、 805B)之外,該MEE與圖6的MEE相似。對于該結 構,可以對每個參考窗按照其自己的搜索路徑進行搜索,或者可替換地, 可以采用公共路徑。在一些實施例中,MEE包括用于執(zhí)行搜索(SU比較) 線程的處理片段和用于進行下一個SU決策線程的處理片段。
如在圖9的雙窗搜索例程中所實現(xiàn)的,對于兩個窗,可以有兩組獨立 的搜索和下一個SU決策線程(在單個搜索和下一個SU處理片段中實現(xiàn))。 因此,在具有這種情況的一些實施例中,硬件可以對于每個線程類型在兩 個窗之間進行"乒乓(ping pong)"(交替)。對于該方法,(每個窗的)搜 索線程具有趕上其相關聯(lián)的下一個SU決策線程的機會,即,(在例程的自 適應部分中)對于下一個SU的決策更可能由搜索線程來進行更新并且對 目前的"最佳"匹配做出判斷。圖9的例程有效地將圖7例程的兩個版本 進行組合,以便獨立地搜索兩個獨立的窗。線程A0和A1分別對應第一窗 的搜索線程和下一個SU線程,而線程B0和Bl分別對應第二窗的搜索線 程和下一個SU線程。
應當注意,在一些實施例中,MEE可以包括多個處理片段,用于同時 執(zhí)行多個搜索線程和下一個SU線程,并且因此本發(fā)明不局限于上文所述 內(nèi)容。然而,本發(fā)明確實提供了一種有效的方法,用于同時搜索多個窗而 沒有使用過多的硬件。此外,在一些實施例中,對于同時搜索的多個窗(有或沒有多個線程處理片段),可以合并(組合)由每個窗獲得的最佳匹配, 以便獲得針對這些窗的總的最佳結果。例如,所保存的矢量可以指向不同 窗中的多個塊部分,并且甚至可以例如以外推的方式對它們進行加權。
參照圖10,示出了移動平臺1001 (例如,計算系統(tǒng),比如,移動個
人計算機、PDA、蜂窩電話等)的一部分的一個實例。所呈現(xiàn)的部分包括 一個或多個處理器1002、芯片組控制功能實體1004、視頻顯示設備1015、 存儲器1017、無線網(wǎng)絡接口 1008以及天線1009。處理器1002經(jīng)過芯片組 功能實體1004耦合到無線網(wǎng)絡接口 1008,以便使該處理器經(jīng)由天線1009 與無線網(wǎng)絡通信性鏈接。芯片組功能實體可以包括一個或多個電路模塊, 用于執(zhí)行各種接口控制功能(例如,存儲器控制1016、圖形處理單元(GPU) 1014、 I/O接口控制等)。這些電路可以在一個或多個單獨的芯片上實現(xiàn), 和/或可以部分地或完全地在處理器1002內(nèi)部實現(xiàn)。存儲器控制功能實體 將處理器耦合到存儲器1017,而圖形處理單元被耦合到視頻顯示設備1015 以向用戶提供可視接口。GPU功能實體1015包括如這里所描述的運動估計 引擎,以允許芯片組功能實體1004和/或處理器1002執(zhí)行高效視頻編碼。
在之前的描述中,給出了大量具體細節(jié)。然而,應當理解,本發(fā)明的 實施例可以在沒有這些具體細節(jié)的情況下實現(xiàn)。在其它實例中,沒有具體 示出公知電路、結構和技術,以避免混淆對描述的理解。應當注意,提及 "一個實施例"、"實施例"、"示例性實施例"、"不同實施例"等,是指所 述發(fā)明的一個(或多個)實施例可以包括特定的特征、結構或特性,但并 非每個實施例都必須包括該特定的特征、結構或特性。此外, 一些實施例 可以具有對其它實施例所描述的一些或所有特征,或者可以沒有對其它實 施例所描述的特征。
在之前的描述以及所附權利要求中,下列術語可以如下理解可以使 用術語"耦合"和"連接"以及其派生詞。應當理解,這些術語不旨在作 為彼此的同義詞。相反地,在特定實施例中,"連接"用于指示兩個或更多 部件彼此直接物理接觸或電接觸。"耦合"用于指示兩個或更多部件共同操 作或彼此相互作用,但是這些部件可以直接或者不直接物理接觸或電接觸。
術語"PMOS晶體管"是指P型金屬氧化物半導體場效應管。同樣, "NMOS晶體管"是指N型金屬氧化物半導體場效應管。應當注意,無論
17何時使用了術語"MOS晶體管"、"NMOS晶體管"或"PMOS晶體管", 除非明確地指示或指出其使用性質(zhì),否則這些術語以示例性方式使用。這 些術語包含不同的MOS器件類別,包括的器件具有不同VT、材料類型、 絕緣體厚度、門結構等。此外,除非具體稱為MOS等,否則術語晶體管可 以包括其它適當?shù)木w管類型,例如結型場效應晶體管、雙極型晶體管、 金屬半導體FET、以及各種類型的三維晶體管、MOS或者已知或尚未開發(fā) 的其它類型。
本發(fā)明不局限于所述的實施例,而是能夠以所附權利要求的精神和范 圍內(nèi)的修改和變換形式來實施。例如,應當理解,本發(fā)明可用于所有類型 的半導體集成電路("ic")芯片。這些IC芯片的實例包括但不局限于處
理器、控制器、芯片組部件、可編程邏輯陣列(PLA)、存儲器芯片、網(wǎng)絡 芯片等。
應當注意,在一些附圖中,利用線條來表示信號導線。 一些線條可能 較粗,以指示更多信號路徑分量; 一些線條具有數(shù)字標記,以指示信號路 徑分量的數(shù)目;和/或一些線條在一個或多個端點處具有箭頭,以指示主信 息流向。然而,這不應視為一種限制方式。相反,這些增加的細節(jié)可以與 一個或多個示例性實施例結合使用,以助于更容易理解電路。無論是否具 有附加信息,任何所示信號線路實際可以包括可以在多個方向傳播的一個 或多個信號,并且可以利用任何適當?shù)男盘栴愋头桨竵韺崿F(xiàn),例如利用差 分對、光纖線路和/或單端線路實現(xiàn)的數(shù)字或模擬線路。
應當理解,給出了示例性的大小/模型/數(shù)值/范圍,盡管本發(fā)明不局限 于此。由于制造技術(例如,光刻術)隨著時間不斷成熟,希望能夠制造 更小的設備。此外,為簡明起見,可以在圖中示出或不示出對IC芯片和其 它部件的公知電源/接地連接,以便避免掩蓋本發(fā)明。此外,結構可以利用 方框圖形式示出,以避免掩蓋本發(fā)明,并且事實上,關于實現(xiàn)這種方框圖 結構的具體細節(jié)很大程度上取決于實現(xiàn)本發(fā)明所在的平臺,即,這些具體 細節(jié)應當完全屬于本領域技術人員的知識范圍內(nèi)。給出具體細節(jié)(例如, 電路)是為了描述本發(fā)明的示例性實施例,沒有這些具體細節(jié)或者利用這 些具體細節(jié)的變型也能夠?qū)崿F(xiàn)本發(fā)明,這對本領域技術人員而言是顯而易 見的。因此,應將本說明書視為示例性的而非限制性的。
18
權利要求
1、一種芯片,包括塊比較邏輯,用于將源塊與參考幀的一個或多個參考窗中的參考塊進行比較,將所述參考塊組織為搜索單元,其中所述一個或多個參考窗具有多個不同的搜索單元;以及控制邏輯,其耦合到所述塊比較邏輯,用于控制所述塊比較邏輯執(zhí)行塊比較,并且用于針對根據(jù)固定和自適應路徑導航而選擇的搜索單元中的塊生成誤差信息。
2、 如權利要求1所述的芯片,其中,所述塊比較邏輯具有分區(qū)比較器, 用于將正在比較的源塊和參考塊中的相對應的子塊進行比較。
3、 如權利要求l所述的芯片,包括匹配記錄邏輯,用于存儲所述誤差{曰息o
4、 如權利要求3所述的芯片,其中,所述匹配記錄邏輯存儲最接近于 所述源塊的參考塊的誤差信息。
5、 如權利要求4所述的芯片,其中,所述匹配記錄邏輯存儲塊比較和 子塊比較的誤差信息。
6、 如權利要求1所述的芯片,其中,所述固定和自適應路徑導航包括 基于預定義的行走路徑選擇搜索單元,以及基于所得到的結果選擇搜索單 元以便如果最接近匹配出現(xiàn)在未搜索的搜索單元附近則搜索附加搜索單 元。
7、 如權利要求l所述的芯片,其中,所述控制邏輯控制所述比較邏輯 以使用每個窗單獨的固定和自適應導航對兩個或更多參考窗進行比較。
8、 如權利要求7所述的芯片,其中,將每個窗的最佳匹配合并在一起 以生成所述兩個窗的總的最佳匹配。
9、 如權利要求7所述的芯片,其中,公共處理片段用于在所述兩個窗 之間交替,以針對公共源幀執(zhí)行所述窗的SU比較。
10、 一種芯片,包括存儲器,用于存儲源塊和一個或多個參考窗,其中每個所述參考窗具 有分組為搜索單元的參考塊;塊比較邏輯,用于將所述源塊與所選擇的搜索單元中的所述參考塊進 行比較,并生成每次源/參考塊比較的誤差結果;以及控制邏輯,用于控制所述塊比較邏輯,以執(zhí)行塊比較并生成根據(jù)固定 和自適應路徑導航所選擇的搜索單元中的塊的誤差信息。
11、 如權利要求10所述的芯片,其中,所述塊比較邏輯具有分區(qū)比較 器,用于對正在比較的源塊和參考塊中的相對應的字塊進行比較。
12、 如權利要求10所述的芯片,包括匹配記錄邏輯,用于存儲所述誤差{曰息。
13、 如權利要求12所述的芯片,其中,所述匹配記錄邏輯存儲最接近 于所述源塊的參考塊的誤差信息。
14、 如權利要求13所述的芯片,其中,所述匹配記錄邏輯存儲塊比較 和子塊比較的誤差信息。
15、 如權利要求10所述的芯片,其中,所述固定和自適應路徑導航包 括基于預定義的行走路徑選擇搜索單元,以及基于所得到的結果選擇搜索 單元以便如果最接近匹配出現(xiàn)在未搜索的搜索單元附近則搜索附加搜索單 元。
16、 如權利要求10所述的芯片,其中,所述控制邏輯控制所述比較邏 輯以使用每個窗單獨的固定和自適應導航對兩個或更多參考窗進行比較。
17、 一種電路,包括運動估計引擎,用于將源幀中的源塊與參考幀中的參考塊進行比較, 以便為所述源塊找到適當?shù)钠ヅ?,其中,同時將多個參考塊組與所述源塊 進行比較,并且部分地使用固定路徑和部分地使用自適應路徑來選擇用于 比較的多個參考塊組。
18、 如權利要求17所述的電路,其中,所述運動估計引擎具有塊比較 邏輯,所述塊比較邏輯具有分區(qū)比較器,用于將正在比較的源塊和參考塊 中相對應的子塊進行比較。
19、 如權利要求17所述的電路,其中,所述運動估計引擎包括匹配記 錄邏輯,用于存儲由所述比較所生成的誤差信息。
20、 如權利要求19所述的電路,其中,所述匹配記錄邏輯存儲與所述 源塊最佳匹配的參考塊的誤差信息。
21、 一種設備,包括(a) 具有運動估計引擎的芯片,所述運動估計引擎用于將源幀中的源 塊與參考幀中的參考塊進行比較,以便為所述源塊找到適當?shù)钠ヅ洌渲?同時將多個參考塊組與所述源塊進行比較,并且使用固定路徑和自適應路 徑來選擇用于比較的多個參考塊組;(b) 天線;以及(c) 耦合到所述天線的無線接口,用于將所述芯片通信性鏈接到無線網(wǎng)絡。
22、 如權利要求21所述的設備,其中,所述芯片是圖形處理芯片。
23、如權利要求21所述的設備,其中,所述芯片是用于便攜式電子設 備的處理器。
全文摘要
本發(fā)明涉及可配置的運動估計。在一些實施例中,提供了運動估計引擎和方法。
文檔編號H04N7/26GK101511015SQ200810184919
公開日2009年8月19日 申請日期2008年12月23日 優(yōu)先權日2007年12月26日
發(fā)明者N·路, S·科內(nèi)魯, 洪 江 申請人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
塔河县| 镇赉县| 东兰县| 中江县| 东丰县| 绥宁县| 新平| 甘肃省| 汉中市| 泰宁县| 元江| 彰化市| 文化| 抚顺市| 天长市| 南乐县| 泾源县| 辛集市| 青田县| 隆子县| 温州市| 青田县| 岑溪市| 高青县| 呼和浩特市| 九台市| 荥经县| 兴宁市| 昔阳县| 石狮市| 济南市| 南华县| 宁安市| 红原县| 石泉县| 东乌| 信阳市| 宣化县| 师宗县| 江山市| 盐池县|