用于視頻處理的運動估計的制作方法
【技術(shù)領(lǐng)域】
[0001]本文總體上涉及視頻處理并且特別涉及用于壓縮視頻以進行傳輸?shù)募夹g(shù)。
【背景技術(shù)】
[0002]視頻應用在計算上可以開銷很大。設計者可以壓縮視頻數(shù)據(jù)以減少與視頻數(shù)據(jù)相關(guān)聯(lián)的計算并且減少傳輸視頻數(shù)據(jù)所需的帶寬。例如,壓縮算法可以利用連續(xù)視頻幀之間的高相關(guān)度。這樣的一種技術(shù)被稱為運動估計。
[0003]使用運動估計,可以將參考圖像(其為之前已編碼的幀)細分為像素塊,例如4x4或16x16像素塊。編碼算法將該塊與當前幀的搜索窗內(nèi)的另一塊匹配。
[0004]當識別出參考幀與當前幀之間的最佳匹配塊時,運動矢量捕獲從參考幀到當前幀的塊的移動??梢詫⒃撨\動矢量編碼以代替將兩個幀都編碼。因此,可以降低帶寬和計算開銷。
[0005]一種用于確定兩個塊多密切地互相匹配的方法被稱為絕對差值和(SAD)。對于參考幀中的宏塊的搜索窗內(nèi)的每個搜索步驟,計算了針對該塊的256個像素的SAD。可以繼續(xù)該搜索,直到獲得具有最小SAD的最佳匹配。可以針對參考幀中的每個宏塊重復該操作。對于高分辨率視頻,該方法需要每秒計算針對成千上萬的宏塊的運動矢量。因此,運動估計在計算上開銷很大。用于確定最佳匹配塊的其它技術(shù)包括Haar變換和Hadamard變換。
【附圖說明】
[0006]關(guān)于以下附圖描述了一些實施例:
[0007]圖1為根據(jù)本發(fā)明的一個實施例的序列的流程圖;
[0008]圖2為根據(jù)本發(fā)明的一個實施例的另一序列的流程圖;
[0009]圖3為本發(fā)明的一個實施例的電路圖;
[0010]圖4為本發(fā)明的一個實施例的系統(tǒng)描繪;
[0011]圖5為本發(fā)明的一個實施例的正視圖。
【具體實施方式】
[0012]根據(jù)一些實施例,可以降低實施使用Haar、SAD和/或Hadamard的運動估計算法的復雜度。這可以減少功率消耗和電路覆蓋區(qū)或面積。
[0013]在運動估計的背景下,使用Haar變換實際是指執(zhí)行變換的絕對值求和。對4x4像素差輸入塊的Haar變換實際將導致4x4塊。將這些變換后的差值的絕對值的和用作匹配度量。有時可以將其稱為殘差變換絕對值的和(SATD)。傳統(tǒng)的方式是首先找到變換的所有項、找到它們的絕對值并且接著將它們求和??梢杂嬎阕罱K的和而無需明確地計算變換的所有項(以及他們的絕對值)。
[0014]在一些實施例中,相比于現(xiàn)有技術(shù)可以減少求和的次數(shù),并且可以使用比較運算來替代現(xiàn)有求和/差值中的一些。相比于加法/差值,比較運算使用集成電路管芯內(nèi)更少的面積和功率。
[0015]在一些實施例中,基于所期望的速度與(versus)效率而確定所移除的加法/差值的次數(shù)。例如,如果使用比較來替代更多的加法,則速度可能會受到影響但是可以減少面積和功率。由于抵消(cancel)而減少加法的次數(shù)需要比較以確定哪些像素差抵消?;诿娣e、延遲、和功率,這些比較可以比加法開銷更小。然而,實現(xiàn)最少次數(shù)的加法可以增加總體延遲,這是因為需要在加法之前按順序完成比較。
[0016]為了計算4x4塊的Haar變換,可以將要相加的項的數(shù)量從16減少到12。根據(jù)項的符號,可以將輸入到變換的一些像素差最終在求和期間抵消并且并其不影響最后的結(jié)果。但是通過除去最多次數(shù)的加法以使能使用最少數(shù)量的加法項,可能降低了速度。實現(xiàn)用于相加的最少數(shù)量的項是以降低的速度為代價的。在一些實施例中,使用比較來替代少于最大次數(shù)的加法,以便平衡速度和面積或覆蓋區(qū)考量。可以使用多于最少次數(shù)的加法來維持性能,但仍然比傳統(tǒng)方法具有更少的加法。在一些實施例中,不將加法的次數(shù)降低到最少,這導致速度與功率之間的更好平衡。
[0017]在以下討論中,描述了使用Haar和SAD變換兩者的運動估計塊。但是在其它實施例中,例如,也可以使用需要多次加法的其它變換,包括絕對差值和或SAD以及Hadamard變換。因此,本發(fā)明并不限于用于運動估計的任何特定算法。當前示例針對4x4塊。相同的方法也可以擴展到不同尺寸的塊。
[0018]傳統(tǒng)上認為對于參考幀和當前幀中的4x4像素宏塊的Haar變換需要16項。這包括計算每項(其基本上是求和及差值),隨后是取它們的絕對值并且接著將所有這些絕對值求和??梢允褂脡嚎s器樹來將必要的絕對值項求和,而并行外樹計算來自像素輸入的不同Haar項。像素輸入包括當前幀像素Ci和參考幀像素r it)這個想法是要查看當前幀像素塊相比參考幀像素塊在位置上有多大變化,以便確定運動矢量來以節(jié)省空間的方式表示當前宏塊。在一些實施例中,通過簡單的移位操作而實現(xiàn)Haar變換內(nèi)所隱含要求的除以二。
[0019]可以通過在絕對值計算之前的Haar和SAD項之間的基于模式的復用而包含對用于SAD計算的硬件的可重構(gòu)性。
[0020]參考圖1,可以在軟件、固件和/或硬件中實現(xiàn)用于運動估計的技術(shù)50。在軟件和固件實施例中,可以通過存儲在一個或多個非瞬時性計算機可讀介質(zhì)(例如,光、磁或半導體存儲設備)中的計算機執(zhí)行的指令來實現(xiàn)該技術(shù)50。
[0021]運動估計技術(shù)50可以從弄清哪些像素差影響最終結(jié)果而開始。這可以在對Haar項的絕對值進行求和之前或期間完成。因此,存在16個候選項來組成像素差以進行求和,并且通過分析它們的符號,可以確定輸入像素差中的哪些影響輸出。在針對4x4宏塊的詳盡方式中,實際上最多僅有12項需要進行求和以獲得最終結(jié)果。在一些實施例中,可以將多于12項相加以便提高速度。在一個示例性實施例中,將13項進行相加。
[0022]雖然在本文中關(guān)于4x4塊給出了示例,但是本發(fā)明并不限于任何特定尺寸的塊。
[0023]如框54所示,考慮到速度考量,可以除去不影響輸出的項并且將剩余項相加。
[0024]圖2的增強運動估計算法56示出了速度考量。在這里,如在框58中所示,計算了和中的一些。并行地,如在框60中所示,完成了比較以確定哪些項影響輸出。如在框62中所示,接著在繼續(xù)的計算中使用影響結(jié)果的其余的和。但是當然,并不一定在每個實施例中都將求和的次數(shù)最小化,這是因為在一些情況下,將求和的次數(shù)最小化可能導致速度損失。因此,設計者可能希望減少求和的次數(shù)而同時實現(xiàn)任何必要的速度規(guī)范。
[0025]因此參考圖3,用于選擇性地實現(xiàn)Haar或SAD變換以用于運動估計的電路實現(xiàn)了優(yōu)化的設計,該設計即減少了加法的次數(shù)又減少了來自用比較來替換加法所帶來的任何速度損失。然而,在其它實施例中,基于增加速度或減少功率消耗或管芯上的面積消耗的需要,可以完成更多或更少的加法。
[0026]該電路包括三個主要部分,包括壓縮器樹32和34、并行加法器樹12、以及電路14,以使用相同電路來選擇性地實現(xiàn)SAD。并行加法器樹12計算用于Haar變換的項,并且這些項中的一些可以被重新使用以用于SAD計算。在框26的輸出處,兩個像素對的實際SAD是準備好的。該電路還包括壓縮器樹32和34以將用于Haar和SAD變換的所有項相加。在該加法器樹中,將一些加法器改為比較器以找出像素差的和的符號。在一些實施例中,在高層處,針對Haar變換而將壓縮器樹的項的數(shù)量減少到13而不