專利名稱:用于執(zhí)行運動估計的方法和裝置的制作方法
技術領域:
本發(fā)明的實施例一般地涉及編碼系統(tǒng)。更特定地,本發(fā)明涉及在運動補償編碼器 中所采用的運動估計方法。
背景技術:
對于更低比特速率和更高視頻質(zhì)量的需求要求帶寬的有效使用。為了實現(xiàn)這些目 標,運動圖像專家組(MPEG)創(chuàng)建了 IS0/IEC國際標準11172(1991)(通常稱作MPEG-I格 式)和13818 (1995)(通常稱作MPEG-2格式),其全部內(nèi)容通過引用并入這里。雖然這些編 碼標準非常有效,但是已經(jīng)開發(fā)了新的和改進的編碼標準,例如H. 264/MPEG-4AVC。H. 264/MPEG-4 AVC是一種通過利用各種編碼工具來實現(xiàn)數(shù)據(jù)壓縮的新的視頻編 碼標準,所述編碼工具諸如空間和時間預測、轉(zhuǎn)換和量化、熵編碼等。與其它現(xiàn)有的視頻編 碼標準不同,H. 264支持幀編碼、字段編碼以及圖片自適應幀和字段編碼。雖然H. 264是強 大的視頻壓縮標準,但是在例如實時應用的特定應用中使用H. 264類的視頻編碼器可能是 非常富有挑戰(zhàn)性的。
發(fā)明內(nèi)容
在一個實施例中,本發(fā)明公開了一種系統(tǒng)和方法,用于執(zhí)行與例如遵循H. 264/ MPEG-4 AVC編碼器的編碼器相關聯(lián)的運動估計。例如,所述方法在至少一個參考圖片的搜 索區(qū)域中選擇用于當前塊選擇運動矢量定心。所述方法計算用于從所述搜索區(qū)域得到的多 個候選運動矢量中的每一個的匹配成本,并且基于與所述多個候選運動矢量中的每一個相 關聯(lián)的匹配成本向主編碼回路輸出所述多個候選運動矢量中的至少一個。
因此,可以通過參考實施例來獲得以上簡要概括的本發(fā)明的更為具體的描述的以 其能夠詳細理解本發(fā)明以上所引用的特征的方式,一些實施例在附圖中進行圖示。然而,應 當注意,附圖僅圖示了本發(fā)明的典型實施例,并且因此不被認為是對本發(fā)明的范圍的限制, 因為本發(fā)明可以允許其它等效的實施例。圖1圖示了本發(fā)明的說明性運動補償編碼器的概況;圖2圖示了說明性搜索區(qū)域;圖3圖示了另一說明性搜索區(qū)域;圖4圖示了相對于當前塊的相鄰塊的位置的一個說明性實施例;圖5圖示了相對于當前塊對的相鄰塊的位置的另一個說明性實施例;圖6圖示了差運動矢量計算中所使用的預測的運動矢量的位置的一個說明性實 施例;圖7圖示了差運動矢量計算中所使用的預測的運動矢量的位置的另一個說明性 實施例;
圖8圖示了差運動矢量計算中所使用的預測的運動矢量的位置的另一個說明性 實施例;圖9圖示了差運動矢量計算中所使用的預測的運動矢量的位置的另一個說明性 實施例;圖10圖示了本發(fā)明一個實施例中的用于執(zhí)行運動估計的方法;以及圖11圖示了使用通用計算機實現(xiàn)的本發(fā)明。為了促進理解,已經(jīng)在可能處使用了相同的附圖標記以指示各圖共用的相同元
ο
具體實施例方式應當注意,雖然在H.264/MPEG-4 AVC的上下文中對本發(fā)明進行了描述,但是本發(fā) 明并不局限于此。也就是說,運動補償編碼器可以是遵循H. 264/MPEG-4 AVC的編碼器或者 是遵循能夠采用本運動估計方案的任何其它壓縮標準的編碼器。圖1描繪了本發(fā)明的示例性運動補償編碼器100的框圖。在本發(fā)明的一個實施例 中,裝置100是編碼器或更復雜的運動補償編碼系統(tǒng)的一部分。裝置100可以包括時間或空 間預測模塊140 (例如,包括可變塊運動估計模塊和運動補償模塊)、速率控制模塊130、例 如基于離散余弦變換(DCT)模塊的變換模塊160、量化(Q)模塊170、上下文自適應可變長 度編碼(CAVLC)模塊或上下文自適應二進制算術編碼模塊(CABAC) 180、緩沖器(BUF) 190、 反量化(Q—1)模塊175、反DCT(DCT)變換模塊165、減法器115、加法器155、去塊模塊151 和參考緩沖器150。雖然裝置100包括多個模塊,但是本領域技術人員將會意識到,不要求 各個模塊所執(zhí)行的功能被分隔成如圖1中所示的分立模塊中。例如,包括時間或空間預測 模塊140、反量化模塊175和反DCT模塊165的模塊集合通常被長作“嵌入式解碼器”。圖1圖示了根據(jù)MPEG標準的被數(shù)字化并且表示為亮度以及兩個色差信號(Y,Cr, Cb)的路徑110上的輸入視頻圖像(圖像序列)。這些信號能夠進一步被分為多個層(序 列、圖片組、圖片、條帶和塊),使得每個圖片(幀)由具有不同大小的多個塊來表示。將圖 片分為塊單元提高了辨別兩個連續(xù)圖片之間的改變的能力,并且提高了通過低幅度變換系 數(shù)的估計的圖像壓縮。數(shù)字化的信號可以可選地經(jīng)歷諸如格式轉(zhuǎn)換的處理來選擇適當?shù)拇?口、分辨率和輸入格式。路徑110上的輸入視頻圖像被接收到時間或空間預測模塊140中,以供執(zhí)行空間 預測并且估計用于時間預測的運動矢量。在一個實施例中,時間或空間預測模塊140包括 可變塊運動估計模塊和運動補償模塊。來自可變塊運動估計模塊的運動矢量由運動補償模 塊來接收以供提高樣本值預測的效率。運動補償涉及預測,該預測使用運動矢量來將偏移 提供到包含用于形成預測誤差的先前解碼的樣本值的過去和/或未來的參考幀中。也就是 說,時間或空間預測模塊140使用先前解碼的幀和運動矢量來構成當前幀的估計。時間或空間預測模塊140還可以執(zhí)行空間預測處理,例如,定向空間預測(DSP)。 定向空間預測可以被實現(xiàn)用于幀內(nèi)編碼、用于推斷當前圖片的先前解碼部分的邊緣并且將 其應用在幀內(nèi)編碼的圖片的區(qū)域中。這提高了預測信號的質(zhì)量,并且還允許從沒有使用幀 內(nèi)編碼的相鄰區(qū)域進行預測。此外,在執(zhí)行對給定塊的運動補償預測之前,必須選擇編碼模式。在編碼模式判定
6方面,MPEG提供了多種不同的編碼模式。通常,這些編碼模式被分組為兩個大類,幀間模式 編碼和幀內(nèi)模式編碼。幀內(nèi)模式編碼涉及使用僅來自塊或圖片的信息來對所述塊或圖片進 行編碼。相反,幀間模式編碼涉及使用來自自身以及在不同時間出現(xiàn)的塊和圖片的信息來 對塊和圖片進行編碼。一旦選擇了編碼模式,時間或空間預測模塊140就基于過去和/或未來的參考圖 片在塊的內(nèi)容的路徑152上生成運動補償預測(預測圖像)。在當前塊中經(jīng)由減法器115 從在路徑110上的視頻圖像中減去路徑152上的該運動補償預測,以在路徑153上形成誤 差信號或預測殘差信號。預測殘差信號的形成有效地移除了輸入視頻圖像中的冗余信息。 也就是說,作為經(jīng)由傳輸信道來傳送實際視頻圖像的代替,僅傳送生成視頻圖像的預測以 及這些預測的誤差所需的信息,由此顯著減少了需要傳送的數(shù)據(jù)量。為了進一步降低比特 速率,將路徑153上的預測殘差信號傳遞到變換模塊160以供進行編碼。變換模塊160然后應用變換,例如,基于DCT的變換。雖然H. 264/MPEG-4 AVC中 的變換仍然是基于DCT的,但是與其它現(xiàn)有視頻編碼標準相比,存在一些重要差異。首先, 變換是整數(shù)變換,也就是說,所有運算都以整數(shù)算術來執(zhí)行。第二,完整地指定反變換。因 此,在編碼器和解碼器之間不存在失配。第三,變換不需要乘法,僅需要加法和移位運算。第 四,作為完整變換的一部分的縮放乘法被集成到量化器中,減少乘法的總數(shù)目。特定地,在H. 264/MPEG-4 AVC中,將變換應用于4x4塊,其中應用可分離整數(shù)變 換。將另外的2x2變換應用于每個色度分量的四個DC系數(shù)。得到的變換系數(shù)由量化模塊170來接收,在量化模塊170處對變換系數(shù)進行量化。 H. 264/MPEG-4 AVC使用標量量化。為每個宏塊選擇52個量化器或者量化參數(shù)(QP)中的一 個。然后,在反量化器模塊175和反DCT模塊165中解碼該得到的量化的變換系數(shù),以 恢復將存儲在參考緩沖器150中的參考幀(多個)或圖片(多個)。在H. 264/MPEG-4 AVC 中,還采用環(huán)路去塊(in-loopdeblocking)濾波器151來使得塊效應最小化。來自量化模塊170的得到的量化變換的系數(shù)還經(jīng)由信號連接171由上下文自適應 可變長度編碼模塊(CAVLC)模塊或上下文自適應的二進制算術編碼模塊(CABAC)180來接 收,其中,使用例如“zig-zag(Z字形)”順序的特定掃描模式來對量化系數(shù)的二維塊進行掃 描,以將其轉(zhuǎn)換為量化變換的系數(shù)的一維串。在CAVLC中,根據(jù)已經(jīng)傳送的句法元素對用于 各種句法元素的VLC表進行切換。由于VLC表被設計成匹配相應的有條件統(tǒng)計,所以與僅 使用一個VLC表的方法相比,熵編碼的性能有所提高。替代地,能夠采用CABAC。CABAC通過下述來實現(xiàn)良好壓縮a)根據(jù)元素的上下文 為每個句法元素選擇多個模型,b)基于局部統(tǒng)計采用概率估計,以及c)使用算術編碼。將數(shù)據(jù)流接收到“先進先出”(FIFO)緩沖器190中。使用不同圖片類型和可變長 度編碼的結(jié)果是進入FIFO的整體比特速率是可變的。也就是說,用于對每個幀進行編碼的 比特數(shù)目可以有所不同。在涉及固定速率信道的應用中,F(xiàn)IFO緩沖器用于將編碼器輸出與 用于平滑比特速率的信道相匹配。由此,F(xiàn)IFO緩沖器190的輸出信號是輸入視頻圖像110 的壓縮表示,其中,它被發(fā)送到路徑195上的電信信道或者存儲介質(zhì)。速率控制模塊130用于監(jiān)視和調(diào)整進入FIFO緩沖器190的數(shù)據(jù)流的比特速率, 用于防止數(shù)據(jù)流傳輸之后在(接收器或目標存儲設備內(nèi)的,未示出)解碼器側(cè)的上溢
7(overflow)或下溢(underflow)。假設固定速率將信道將以恒定速率的比特放入解碼器內(nèi) 的輸入緩沖器中。在通過圖片速率確定的規(guī)則間隔,解碼器即刻從其輸入緩沖器中移除用 于下一圖片的所有比特。如果輸入緩沖器中的比特過少,即,沒有接收到用于下一圖片的所 有比特,則輸出緩沖器下溢導致錯誤。另一方面,如果輸入緩沖器中的比特過多,即,在圖像 開始之間超出了輸入緩沖器的容量,則輸入緩沖器上溢導致上溢錯誤。因此,速率控制模塊 130的任務在于監(jiān)視緩沖器190的狀態(tài),以控制編碼器所生成的比特數(shù)目,由此防止上溢狀 況和下溢狀況。速率控制算法在影響圖像質(zhì)量和壓縮效率方面起到重要作用。以上所描述的編碼器可以被稱作包含主編碼回路。換句話說,主編碼回路中的各 個模塊將能夠共同地將輸入像素編碼為編碼比特。應當注意,主編碼回路的多種變化形式 可以適用于本發(fā)明,并且本發(fā)明不限于主編碼回路的特定實施方式。在一個實施例中,本發(fā)明公開了一種處理模塊135,例如,整像素運動估計(FPME) 模塊135。應當注意,運動估計過程由于其復雜性而在編碼器中需要大量的計算周期。如此 一來,對于例如實時應用的特定應用而言,運動估計過程可能成為瓶頸。在一個實施例中,本發(fā)明通過將運動估計過程劃分為兩個部分,例如,整像素運動 估計和改進(refinement)運動估計,來對運動估計過程進行優(yōu)化。例如,在第一部分中,在 獨立于主編碼回路進行操作的預處理模塊中實現(xiàn)預處理模塊135中的整像素運動估計過 程。換句話說,在不從主編碼回路接收與所編碼的當前圖片相關的輸入的情況下,執(zhí)行整像 素運動估計過程。在一個實施例中,整像素運動估計過程在沒有來自主編碼回路的任何反 饋的情況下從先驗信息,例如,從半水平分辨率的原始視頻序列確定用于圖片的每個當前 塊的一個或多個候選運動矢量。例如,整像素運動估計過程沒有接收到與相對于進行編碼 的當前圖片的當前塊的相鄰塊相關的實際編碼信息。然而,如以下所討論的,整像素運動估 計過程可以使用先前編碼的圖片的編碼信息。在第二部分中,主編碼回路的時間或空間預測模塊140采用改進運動估計過程。 例如,從整像素運動估計過程接收到的用于每個當前塊(例如,當前宏塊)的一個或多個候 選運動矢量用于選擇用于當前塊的最終運動矢量。換句話說,改進運動估計過程例如以全 分辨率來使用重構視頻輸出以最小化漂移來改進來自整像素運動估計過程的最佳候選運 動矢量(多個)。應當注意,能夠采用任何類型的改進運動估計過程。本發(fā)明的一個方面在 于,在主編碼回路外操作的外部整像素運動估計過程能夠為要編碼的當前塊快速地提供一 個或多個候選運動矢量。使用一個或多個候選運動矢量,改進運動估計過程能夠擴展計算 周期以更好地確定用于當前塊的最終運動矢量,即,一個或多個候選運動矢量由改進運動 估計過程來用作開始點。在操作中,編碼器通過計算與運動矢量和預測的運動矢量(PMV)之間的差相關的 DMV成本來對用于當前塊的運動矢量進行編碼。由于運動矢量和PMV之間的差在大小上常 常小于運動矢量本身,所以這是被編碼和傳送以提高編碼效率的差。該差被稱作差運動矢 量(DMV)。為了選擇運動矢量,編碼器可以在運動估計過程中使用塊匹配技術。例如,塊匹配 過程可以將候選塊與當前塊進行比較,并且基于成本量度來計算匹配成本。應當注意,鑒于 H. 264標準,成本量度是非規(guī)范的,這意味著允許H. 264類的編碼器以任何方式對成本量度 進行調(diào)整。例如,H. 264類的編碼器可以利用如下的說明匹配質(zhì)量和估計的比特成本二者的基于拉格朗日的成本量度J = SAD+λ Il MV-PMV ||等式 1其中,J為成本量度,SAD是當前塊和預測塊之間的絕對差之和,λ是常數(shù),例如拉 格朗日乘數(shù),Il · Il是范數(shù)函數(shù),MV是運動矢量,并且PMV是預測的運動矢量。應當注意, DMV = MV-PMV。在一個實施例中,等式1的成本量度J被如下修改Jfpme = 2*SAD麗+ λ ‘ (selen (MVx' -PMVx' )-selen (MVy' -PMVy'))等式 2其中,Jfpme是例如運動估計模塊135所采用的整像素運動估計的成本量度,SADhhe 是當前塊和預測的塊之間在HHR水平的絕對差之和,λ'是常數(shù),例如,拉格朗日乘數(shù),其 中DMV成本計算函數(shù)selen是輸出如在編碼的H. 264比特流中表示的比特中的運動矢量 分量的長度的函數(shù),MV' x和MV’ y分別是運動矢量候選的水平和垂直分量,并且PMV’ x和 PMV’ y分別是估計預測的運動矢量的水平和垂直分量。應當注意,HHR代表半水平分辨 率,例如,對于每個塊而言,僅使用一半的水平像素。如此一來,SAD-乘以常數(shù)2。此外, selen (MV' -PMV')表示基于MV候選和PMV估計之間的差的大小所估計的比特數(shù)目。在一 個實施例中,等式2的成本量度J由運動估計模塊135所采用。由于諸如λ'和PMV’的參 數(shù)都是估計值,而不是從主編碼回路所推導出的實際參數(shù),所以能夠針對候選運動矢量MV’ 計算等式2的成本量度J。如此一來,給定搜索區(qū)域,運動估計模塊135能夠快速地應用任 何塊匹配技術,并且通過在所有候選運動矢量MV’上最小化J而使用等式2來計算一個或 多個候選運動矢量。在一個實施例中,本發(fā)明的FPME可以采用MV定心(centering)的多種不同方法。 搜索區(qū)域設置用于運動估計的工作邊界,并且由用于參考圖片的大小和中心位置來限定。 在一個實施例中,F(xiàn)PME對所有分割類型(即,1MB內(nèi)16x16,、兩個16x8、兩個8x16、四個8x8) 采用相同的搜索區(qū)域配置(例如,相同的中心位置),使得能夠?qū)λ蟹指铑愋屯瑫r執(zhí)行搜 索操作,例如,成本計算。替代地,F(xiàn)PME可以針對不同的分割類型采用不同搜索區(qū)域配置。 MV定心將影響FPME性能。也就是說,不良的MV定心方法需要通過使用較大的搜索區(qū)域進 行補償以保持相同的搜索質(zhì)量。在一個實施例中,用于FPME的MV定心方法將參考圖片中的搜索區(qū)域的中心與當 前圖片中的當前宏塊(MB)的左上位置放置在一起,如圖2中所示。特定地,圖2圖示了搜 索區(qū)域200,其中,該搜索區(qū)域的中心被示為與當前宏塊210的左上位置放置在一起。在替代實施例中,用于FPME的MV定心方法在遠離當前圖片中的當前宏塊(MB) 的左上位置距離SACV(搜索區(qū)域中心矢量)處放置搜索區(qū)域的參考圖片中的中心,如圖3 中所示。特定地,圖3圖示了搜索區(qū)域300,其中,該搜索區(qū)域的中心被示為遠離當前宏塊 (MB) 310的左上位置。在一個實施例中,SACV 305是計算機為來自當前塊310的相鄰塊的 運動矢量的中間值的矢量(例如,16xl6MV的在最低到最高的幅度排名中的中間數(shù)值)。例 如,圖4圖示了具有左鄰塊A 320、頂鄰塊B 330、右上相鄰塊C 340和左上相鄰塊D 350的 當前塊310。在一個實施例中,SACV被確定為來自相鄰塊A、B和的16xl6MV的中間值。在 一個替代實施例中,如果相鄰塊C不可用,則相鄰塊D可以替代相鄰C。應當注意,為了使 FPME獨立于主編碼回路,相鄰宏塊的MV是FPME所確定的MV而不是來自主編碼回路的改進 運動估計過程所生成的最終MV。
在替代實施例中,用于FPME的MV定心方法在遠離當前圖片中的具有頂MB 510a 和底MB 510b的當前宏塊對510的中心的共用矢量的距離處放置參考圖片中的搜索區(qū)域的 中心。換句話說,SACV(搜索區(qū)域中心矢量)遠離當前圖片中的當前宏塊(MB)對510的中 心位置,如圖5中所示。在一個實施例中,SACV是從共用矢量計算的矢量,所述共用矢量是 指來自當前圖片中的當前MB對510的頂MB 510a的相鄰塊A 520的右側(cè)8xl6MV。再一次, 應當注意,為了使FPME獨立于主編碼回路,相鄰宏塊的MV是FPME所確定的MV,而不是來自 主編碼回路的改進運動估計過程所生成的最終MV。如以上所討論的,基于當前塊的最終MV和PMV之間的差來執(zhí)行差運動矢量(DMV) 成本計算。因為H. 264類的編碼器通過對MV關于PMV在比特上的差進行編碼來編碼用于 當前塊的MV,所以需要DMV。不幸的是,由于DMV的計算需要了解真實的MV(在比特流中編 碼的最終MV),所以運動估計過程然后必須等待編碼器完成所有相鄰塊的模式判定。該方法 產(chǎn)生了大量的延遲并且可能對于例如實時應用的一些應用是不實際的。在一個實施例中,本發(fā)明采用在主編碼回路外的模塊135中的FPME。FPME不具有 關于相鄰塊的真實MV的任何信息。換句話說,該FPME采用近似的PMV’。如此一來,F(xiàn)PME 所執(zhí)行的DMV成本計算僅是與編碼用于當前塊的MV相關聯(lián)的多個比特的估計。因此,提高 DMV成本計算的估計的準確度還將轉(zhuǎn)化為編碼器的處理速度和編碼效率的提高。在一個實施例中,可以以多種不同方式來近似或設置PMV’。概言之,以如下三種不 同方法來設置用于DMV成本計算的PMV ’ 1)左鄰元素(PMVL)-在DMV成本計算中使用的PMV來自當前宏塊的左鄰元素(例 如,圖4中的宏塊A);2)頂鄰元素(PMVT)-在DMV成本計算中使用的PMV來自當前宏塊的頂鄰元素(例 如,圖4中的宏塊B);3)三個相鄰塊(PMV3)-在DMV成本計算中使用的PMV是當前宏塊的左鄰元素(例 如,圖4中的宏塊A)、上鄰元素(例如,圖4中的宏塊B)和右上鄰元素(例如,圖4中的宏 塊C)或左上鄰元素(例如,圖4中的宏塊D)的MV中的中間值。如此一來,如果宏塊C不 可用,則能夠使用宏塊D。在一個實施例中,在DMV成本計算中使用的PMV從相鄰塊的8x8MV中得到。本發(fā) 明允許當前塊具有任何分割。圖6-圖9中圖示了各種類型的分割。圖6圖示了在用于當前塊610的16x16分割的差運動矢量計算中所使用的預測 的運動矢量的位置的一個說明性實施例。在PMVL方法下,PMV’將從相鄰塊A 620的子塊 Al 622的MV得到。在PMVT方法下,PMV’將從相鄰塊B 630的子塊Bl 632的MV得到。在 PMV3方法下,PMV’將從三個MV的中間值得到相鄰塊A 620的子塊Al 622的MV、相鄰塊 B 630的子塊Bl 632的MV以及相鄰塊C 640的子塊Cl 642的MV (或者如果相鄰塊C 640 不可用,則為相鄰塊D 650的子塊Dl 652的MV)。圖7圖示了在用于具有頂塊712和底塊714的當前塊710的16x8分割的差運動 矢量計算中所使用的預測的運動矢量的位置的一個說明性實施例。在用于頂塊712的PMVL 方法下,PMV’將從相鄰塊A 720的子塊Al 722的MV得到。在用于底塊714的PMVL方法 下,PMV,將從相鄰塊A 720的子塊A2 724的MV得到。在用于頂塊712的PMVT方法下,PMV’將從相鄰塊B 730的子塊Bl 732的MV得到。在用于底塊714的PMVT方法下,PMV’將從相鄰塊B 730的子塊B1 732的MV得到。在用于頂塊712的PMV3方法下,PMV,將從三個MV的中間值得到相鄰塊A 720 的子塊A1 722的MV、相鄰塊B 730的子塊B1 732的MV以及相鄰塊C 740的子塊C 742的 MV(或者如果相鄰塊C 740不可用,則為相鄰塊D 750的子塊D 752的MV)。在用于底塊 714的PMV3方法下,PMV’將從三個MV的中間值得到相鄰塊A 720的子塊A1 722的MV、 相鄰塊A 720的子塊A2 724的MV以及相鄰塊B 730的子塊B1 732的MV。圖8圖示了在用于具有左塊812和右塊814的當前塊810的8x16分割的差運動 矢量計算中所使用的預測的運動矢量的位置的一個說明性實施例。在用于左塊812的PMVL 方法下,PMV’將從相鄰塊A 820的子塊A1 822的MV得到。在用于右塊814的PMVL方法 下,PMV’將從相鄰塊A 820的子塊A1 822的MV得到。在用于左塊812的PMVT方法下,PMV,將從相鄰塊B 830的子塊B1 832的MV得 到。在用于右塊814的PMVT方法下,PMV,將從相鄰塊B 830的子塊B2 834的MV得到。在用于左塊812的PMV3方法下,PMV,將從三個MV的中間值得到相鄰塊A 820 的子塊A1 822的MV、相鄰塊B 830的子塊B1 832的MV以及相鄰塊C 840的子塊C 842的 MV (或者如果相鄰塊C 840不可用,則為相鄰塊D 850的子塊D 852的MV)。在用于右塊 814的PMV3方法下,PMV’將從三個MV的中間值得到相鄰塊B 830的子塊B1 832的MV、 相鄰塊B 830的子塊B2 834的MV以及相鄰塊C 840的子塊C 842的MV。圖9圖示了在用于具有左上塊912、右上塊914、左下塊916和右下塊918的當前 塊910的8x8分割的差運動矢量計算中所使用的預測的運動矢量的位置的一個說明性實施 例。在用于左上塊912的PMVL方法下,PMV’將從相鄰塊A 920的子塊A1 922的MV得到。 在用于右上塊914的PMVL方法下,PMV’將從相鄰塊A 920的子塊A1 922的MV得到。在 用于左下塊916的PMVL方法下,PMV,將從相鄰塊A920的子塊A2 924的MV得到。在用于 右下塊918的PMVL方法下,PMV,將從相鄰塊A 920的子塊A2 924的MV得到。在用于左上塊912的PMVT方法下,PMV,將從相鄰塊B 930的子塊B1 932的MV得 到。在用于右上塊914的PMVT方法下,PMV,將從相鄰塊B 930的子塊B2 934的MV得到。 在用于左下塊916的PMVT方法下,PMV’將從相鄰塊B 930的子塊B1 932的MV得到。在 用于右下塊914的PMVT方法下,PMV,將從相鄰塊B 930的子塊B2 934的MV得到。在用于左上塊912的PMV3方法下,PMV,將從三個MV的中間值得到相鄰塊A 920 的子塊A1 922的MV、相鄰塊B 930的子塊B1 932的MV以及相鄰塊C 940的子塊C 942的 MV (或者如果相鄰塊C 940不可用,則為相鄰塊D 950的子塊D 952的MV)。在用于右上塊 914的PMV3方法下,PMV’將從三個MV的中間值得到相鄰塊B 930的子塊B1 932的MV、相 鄰塊B 930的子塊B2 934的MV以及相鄰塊C940的子塊C 942的MV。在用于左下塊916 的PMV3方法下,PMV’將從三個MV的中間值得到相鄰塊A 920的子塊A1 922的MV、相鄰 塊A 920的子塊A2 924的MV以及相鄰塊B 930的子塊B1 932的MV。在用于右下塊918 的PMV3方法下,PMV’將從三個MV的中間值得到相鄰塊A 920的子塊A1 922的MV、相鄰 塊A 920的子塊A2924的MV以及相鄰塊C 940的子塊C 942的MV。應當注意,對于以上所討論的方法的任何一個而言,如果塊A、B、C或D的任何一個 都不存在,則該方法可以將不存在的相鄰元素的MV設置為零。應當注意,在不接收來自主 編碼回路的任何信息的情況下,PMV'近似中所需的所有信息都從FPME過程的局部信息得到。 如以上所討論的,λ是成本量度中的拉格朗日乘數(shù)。λ可以如下定義其中,QP'是估計的量化參數(shù)。應當注意,在固定比特速率的編碼應用中,因為在作為主編碼回路的一部分的速 率控制過程中確定QP,所以量化參數(shù)(QP)信息不可用于FPME過程。如此一來,本發(fā)明在其 成本量度中使用近似的QP’。在一個實施例中,本發(fā)明依賴于過去的QP信息來近似當前QP。例如,可以通過增 加更新頻率(例如,每MB、每條帶等)或者增加在QP近似中使用的信息量使得來自最近編 碼的相同類型圖片中的所有MB的QP的平均值更為準確。在一個實施例中,QP近似可以使 用以編碼順序相距M個圖片的N個圖片的QP的權重平均值。FPME過程對來自在時間距離 上更加接近編碼圖片的圖片的QP平均值指定較大的權重。圖10圖示了在本發(fā)明的一個實施例中的用于執(zhí)行運動估計的方法1000。例如,方 法1000能夠由運動估計模塊135來執(zhí)行。方法1000在步驟1005中開始并且前進到步驟1010。在步驟1010中,方法1000
選擇搜索區(qū)域和用于當前塊的運動矢量定心。例如,能夠采用如上所討論的三種運動矢量 定心方法中的一種。在步驟1020中,方法1000在搜索區(qū)域中執(zhí)行用于當前塊的塊匹配,并且計算用于 每個候選運動矢量的匹配成本(例如,成本量度)。例如,如以上所討論的,在該步驟中能夠 使用等式2。在步驟1030中,方法1000基于計算的用于每個候選運動矢量的匹配成本來輸出 至少一個候選矢量。例如,能夠由方法1000輸出與具有最低匹配成本的搜索區(qū)域中的匹配 塊相關聯(lián)的候選運動矢量。例如,F(xiàn)PME能夠?qū)⒑蜻x運動矢量轉(zhuǎn)發(fā)到主編碼回路的時間或空 間預測模塊140。應當注意,本發(fā)明不限于僅為每個當前塊提供單個候選運動矢量。根據(jù)實 施方式,能夠提供一個或多個候選運動矢量,例如,具有最低匹配成本的兩個候選運動矢量等。在步驟1040中,方法1000查詢是否存在要編碼的下一個當前塊。如果肯定回答 了該查詢,則方法1000返回步驟1010,并且針對下一個當前塊再次重復該過程。如果否定 回答了該查詢,則方法1000在步驟1045中結(jié)束。應當注意,雖然沒有特別指定,但是方法1000的一個或多個步驟可以包括如特定 應用所要求的存儲、顯示和/或輸出步驟。換句話說,所述方法中所討論的任何數(shù)據(jù)、記錄、 字段和/或中間結(jié)果都可以如特定應用所要求的被存儲、顯示和/或輸出到另一設備。此 外,引用確定操作或涉及判定的圖10中的步驟或塊并不必需要求所述確定操作的兩個分 支都被實踐。換句話說,所述確定操作的分支的一個可以被視為可選步驟。圖11是利用通用計算機實現(xiàn)的本編碼系統(tǒng)的框圖。在一個實施例中,編碼系統(tǒng) 1100使用通用計算機或任何其它硬件等價物來實現(xiàn)。更特定地,編碼系統(tǒng)1100包括處理器 (CPU) 1110、例如隨機存取存儲器(RAM)和/或只讀存儲器(ROM)的存儲器1120、采用該外 部FPME方法的編碼器1122以及各種輸入/輸出設備1130(例如,存儲設備,包括但不限于,磁帶驅(qū)動器、軟盤驅(qū)動器、硬盤驅(qū)動器或致密盤驅(qū)動器、接收器、發(fā)射器、揚聲器、顯示器、輸 出端口、用戶輸入設備(諸如,鍵盤、小鍵盤、鼠標等)或者用于捕捉話音命令的麥克風)。應當理解,編碼器1122能夠被實施為通過通信信道耦合到CPUl 110的物理設備或 子系統(tǒng)。替代地,編碼器1122能夠由一個或多個軟件應用程序來表示(或者甚至由軟件和 硬件的組合來表示,例如,使用應用特定集成電路(ASIC)),其中,軟件從存儲介質(zhì)(例如, 磁或光驅(qū)動器或者卡帶)加載,并且由CPU在計算機的存儲器1120中進行操作。如此一來, 本發(fā)明的編碼器1122 (包括關聯(lián)的數(shù)據(jù)結(jié)構和編碼器內(nèi)所采用的方法)能夠存儲在計算機 可讀介質(zhì)或載體上,例如,RAM存儲器、磁或光驅(qū)動器或者卡帶等。雖然以上內(nèi)容針對本發(fā)明的實施例,但是在不背離本發(fā)明的基本范圍的情況下, 可以設想本發(fā)明的其它另外的實施例,并且其范圍由以下權利要求所確定。
權利要求
一種用于執(zhí)行運動估計的方法,包括在至少一個參考圖片的搜索區(qū)域中選擇用于當前塊的運動矢量定心;計算用于從所述搜索區(qū)域得到的多個候選運動矢量中的每一個的匹配成本;以及基于與所述多個候選運動矢量中的每一個相關聯(lián)的所述匹配成本來向主編碼回路輸出所述多個候選運動矢量中的至少一個。
2.根據(jù)權利要求1所述的方法,其中,所述選擇運動矢量定心包括將所述搜索區(qū)域的 中心與所述當前塊的左上位置放置在一起。
3.根據(jù)權利要求1所述的方法,其中,所述選擇運動矢量定心包括在遠離所述當前 塊的左上位置的距離處放置所述搜索區(qū)域的中心,其中,所述距離從搜索區(qū)域中心矢量 (SACV)得到。
4.根據(jù)權利要求3所述的方法,其中,所述SACV是計算為來自所述當前塊的多個相鄰 塊的運動矢量的中間值的矢量。
5.根據(jù)權利要求3所述的方法,其中,所述當前塊是具有頂塊和底塊的當前塊對,并且 其中,所述SACV是從共用矢量所計算的矢量,所述共用矢量是指來自所述當前塊對的所述 頂塊的相鄰塊的運動矢量。
6.根據(jù)權利要求1所述的方法,其中,所述計算所述匹配成本包括估計預測的運動矢 量(PMV,)。
7.根據(jù)權利要求6所述的方法,其中,所述估計所述預測的運動矢量(PMV’)包括使 用從所述當前塊的左鄰塊選擇的運動矢量。
8.根據(jù)權利要求6所述的方法,其中,所述估計所述預測的運動矢量(PMV’)包括使 用從所述當前塊的頂鄰塊選擇的運動矢量。
9.根據(jù)權利要求6所述的方法,其中,所述估計所述預測的運動矢量(PMV’)包括選 擇從所述當前塊的多個相鄰塊選擇的多個運動矢量的中間值。
10.根據(jù)權利要求6所述的方法,其中,所述當前塊具有分割類型,所述分割類型包括 下述中的至少一個16x16分割、16x8分割、8x16分割或8x8分割。
11.根據(jù)權利要求1所述的方法,其中,所述計算所述匹配成本包括估計拉格朗日乘 數(shù),其中,使用來自至少一個先前編碼的圖片的多個宏塊的量化參數(shù)信息來估計所述拉格 朗日乘數(shù)。
12.根據(jù)權利要求11所述的方法,其中,所述至少一個先前編碼的圖片包括遠離所述 當前塊的當前圖片M個圖片的N個先前編碼的圖片。
13.一種計算機可讀載體,所述計算機可讀載體具有存儲在其上的多個指令,所述多個 指令包括當由處理器執(zhí)行時使得所述處理器執(zhí)行用于執(zhí)行運動估計的方法的步驟的指令, 所述步驟包括在至少一個參考圖片的搜索區(qū)域中選擇用于當前塊的運動矢量定心;計算用于從所述搜索區(qū)域得到的多個候選運動矢量中的每一個的匹配成本;以及基于與所述多個候選運動矢量中的每一個相關聯(lián)的所述匹配成本來向主編碼回路輸 出所述多個候選運動矢量中的至少一個。
14.根據(jù)權利要求13所述的計算機可讀載體,其中,所述選擇運動矢量定心包括將所 述搜索區(qū)域的中心與所述當前塊的左上位置放置在一起。
15.根據(jù)權利要求13所述的計算機可讀載體,其中,所述選擇運動矢量定心包括在遠 離所述當前塊的左上位置的距離處放置所述搜索區(qū)域的中心,其中,所述距離從搜索區(qū)域 中心矢量(SACV)得到。
16.根據(jù)權利要求15所述的計算機可讀載體,其中,所述SACV是被計算為來自所述當 前塊的多個相鄰塊的運動矢量的中間值的矢量。
17.根據(jù)權利要求15所述的計算機可讀載體,其中,所述當前塊是具有頂塊和底塊的 當前塊對,并且其中,所述SACV是從共用矢量計算的矢量,所述共用矢量是指來自所述當 前塊對的所述頂塊的相鄰塊的運動矢量。
18.根據(jù)權利要求13所述的計算機可讀載體,其中,所述計算所述匹配成本包括估計 預測的運動矢量(PMV’ )。
19.根據(jù)權利要求18所述的計算機可讀載體,其中,所述估計所述預測的運動矢量 (PMV’ )包括下述中的至少一個使用從所述當前塊的左鄰塊選擇的運動矢量、使用從所述 當前塊的頂鄰塊選擇的運動矢量,或者選擇從所述當前塊的多個相鄰塊選擇的多個運動矢 量的中間值。
20.—種編碼系統(tǒng),包括編碼器,所述編碼器具有主編碼回路;以及運動估計模塊,所述運動估計模塊被耦合到所述編碼器,其中,所述運動估計模塊在至 少一個參考圖片的搜索區(qū)域中選擇用于當前塊的運動矢量定心,其中,所述運動估計模塊 計算用于從所述搜索區(qū)域得到的多個候選運動矢量中的每一個的匹配成本,并且其中,所 述運動估計模塊基于與所述多個候選運動矢量中的每一個相關聯(lián)的所述匹配成本來向主 編碼回路輸出所述多個候選運動矢量中的至少一個。
21.根據(jù)權利要求20所述的編碼系統(tǒng),其中,所述選擇所述運動矢量定心包括將所述 搜索區(qū)域的中心與所述當前塊的左上位置放置在一起。
22.根據(jù)權利要求20所述的編碼系統(tǒng),其中,所述選擇所述運動矢量定心包括在遠離 所述當前塊的左上位置的距離處放置所述搜索區(qū)域的中心,其中,所述距離從搜索區(qū)域中 心矢量(SACV)得到。
23.根據(jù)權利要求22所述的編碼系統(tǒng),其中,所述SACV是被計算為來自所述當前塊的 多個相鄰塊的運動矢量的中間值的矢量。
24.根據(jù)權利要求22所述的編碼系統(tǒng),其中,所述當前塊是具有頂塊和底塊的當前塊 對,并且其中,所述SACV是從共用矢量計算的矢量,所述共用矢量是指來自所述當前塊對 的所述頂塊的相鄰塊的運動矢量。
25.根據(jù)權利要求20所述的編碼系統(tǒng),其中,所述計算所述匹配成本包括估計預測的 運動矢量(PMV’ )。
26.根據(jù)權利要求25所述的編碼系統(tǒng),其中,所述估計所述預測的運動矢量(PMV’)包 括使用從所述當前塊的左鄰塊選擇的運動矢量。
27.根據(jù)權利要求25所述的編碼系統(tǒng),其中,所述估計所述預測的運動矢量(PMV’)包 括使用從所述當前塊的頂鄰塊選擇的運動矢量。
28.根據(jù)權利要求25所述的編碼系統(tǒng),其中,所述估計所述預測的運動矢量(PMV’)包 括選擇從所述當前塊的多個相鄰塊所選擇的多個運動矢量的中間值。
29.根據(jù)權利要求25所述的編碼系統(tǒng),其中,所述當前塊具有分割類型,所述分割類型 包括下述中的至少一個16xl6分割、16x8分割、8x16分割或8x8分割。
30.根據(jù)權利要求20所述的編碼系統(tǒng),其中,所述計算所述匹配成本包括估計拉格朗 日乘數(shù),其中,使用來自至少一個先前編碼的圖片的多個宏塊的量化參數(shù)信息來估計所述 拉格朗日乘數(shù)。
全文摘要
本發(fā)明公開了一種系統(tǒng)和方法,用于執(zhí)行與編碼器相關聯(lián)的運動估計,該編碼器例如遵循H.264/MPEG-4AVC的編碼器。例如,該方法在至少一個參考圖片的搜索區(qū)域中選擇用于當前塊的運動矢量定心。該方法計算用于從該搜索區(qū)域得到的多個候選運動矢量中的每一個的匹配成本,并且基于與多個候選運動矢量中的每一個相關聯(lián)的匹配成本向主編碼回路輸出多個候選運動矢量中的至少一個。
文檔編號H04B1/66GK101889405SQ200880116385
公開日2010年11月17日 申請日期2008年10月29日 優(yōu)先權日2007年11月15日
發(fā)明者克里特·帕努索波內(nèi), 參查爾·查特吉, 王利民, 羅伯特·O·艾弗里格, 阿杰伊·K·盧特拉 申請人:通用儀表公司