專(zhuān)利名稱(chēng):優(yōu)化的去塊濾波器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及視頻編碼,以及更具體地涉及使用內(nèi)插濾波器作為運(yùn)動(dòng)補(bǔ)償編碼一部分的視頻編碼系統(tǒng)。
背景技術(shù):
視頻編解碼器通常使用離散余弦變換(“DCT”)對(duì)像素的塊(這里稱(chēng)為“像素塊”)進(jìn)行處理來(lái)對(duì)視頻幀進(jìn)行編碼,非常類(lèi)似于用于靜態(tài)圖像的原始JPEG編碼器。初始幀(稱(chēng)作“內(nèi)”幀)被編碼并作為獨(dú)立幀被發(fā)送。被建模為隨著場(chǎng)景中對(duì)象的小運(yùn)動(dòng)而緩慢改變的后續(xù)中貞使用被稱(chēng)作運(yùn)動(dòng)補(bǔ)償(“MC”)的技術(shù)以巾貞間模式(inter mode)被高效編碼,在運(yùn)動(dòng)補(bǔ)償中,將像素塊相對(duì)于其在先前編碼幀中的位置的位移作為運(yùn)動(dòng)向量,與預(yù)測(cè)的像素塊和來(lái)自源圖像的像素塊之間的差的編碼表示一起被發(fā)送。下面提供了運(yùn)動(dòng)補(bǔ)償?shù)暮?jiǎn)單概述。圖1和2示出了運(yùn)動(dòng)補(bǔ)償圖像編碼器/解碼器系統(tǒng)的方塊圖。該系統(tǒng)將變換編碼(像素的像素塊的DCT形式)與預(yù)測(cè)編碼(差分脈沖編碼調(diào)制(“PCM”)形式)結(jié)合,從而降低壓縮圖像的存儲(chǔ)和計(jì)算,同時(shí)給出高的壓縮度和自適應(yīng)度。因?yàn)檫\(yùn)動(dòng)補(bǔ)償難以在變換域中執(zhí)行,所以幀間編碼器的第一步是創(chuàng)建運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)誤差。該計(jì)算要求一個(gè)或多個(gè)幀存儲(chǔ)在編碼器和解碼器二者中。得到的誤差信號(hào)使用DCT被變換,由自適應(yīng)量化器進(jìn)行量化,使用可變長(zhǎng)度編碼器(“VLC”)進(jìn)行熵編碼,以及被緩存以用于通過(guò)信道傳輸。運(yùn)動(dòng)評(píng)估器如圖3中所示工作。在其最簡(jiǎn)單的形式中,當(dāng)前幀被劃分為運(yùn)動(dòng)補(bǔ)償塊,在此被稱(chēng)作“me塊”,其具有恒定大小,例如16X16或8X8。然而,常常也使用可變大小me塊,尤其是在較新的編解碼器中,諸如H.264.1TU-T建議H.264、高級(jí)視頻編碼。事實(shí)上,非矩形的me塊也已經(jīng)被研究和提出。me塊的大小通常大于或等于像素塊的大小。同樣,在運(yùn)動(dòng)補(bǔ)償?shù)淖詈?jiǎn)單形式中,先前解碼幀被用作參考幀,如圖3中所示。然而,許多可能的參考幀之一也可以被使用,尤其是在諸如H.264的較新編解碼器中。事實(shí)上,使用適當(dāng)?shù)男帕?,每個(gè)me塊可以使用不同的參考幀。將當(dāng)前幀中的每個(gè)me塊與參考幀中的一組位移的me塊進(jìn)行比較,來(lái)確定哪一個(gè)me塊最好地預(yù)測(cè)了當(dāng)前me塊。當(dāng)找到最佳匹配的me塊時(shí),規(guī)定參考me塊的位移的運(yùn)動(dòng)向
量被確定。
_7]利用空間冗余因?yàn)橐曨l是一系列靜態(tài)圖像,所以可以使用類(lèi)似于JPEG的技術(shù)實(shí)現(xiàn)一定壓縮。這樣的壓縮方法被稱(chēng)作幀內(nèi)編碼技術(shù),其中視頻的每一幀被單獨(dú)且獨(dú)立地壓縮或編碼。幀內(nèi)編碼利用了存在于幀的相鄰像素之間的空間冗余。僅使用幀內(nèi)編碼來(lái)編碼的幀被稱(chēng)作“1-幀”。利用時(shí)間冗金在上述的單向運(yùn)動(dòng)估計(jì)(被稱(chēng)作“前向估計(jì)”)中,將要編碼的幀中的目標(biāo)me塊與被稱(chēng)作“參考幀”的過(guò)去幀中的一組具有相同大小的me塊進(jìn)行匹配。參考幀中“最匹配”目標(biāo)me塊的me塊被用作參考me塊。然后計(jì)算目標(biāo)me塊和參考me塊之間的差作為預(yù)測(cè)誤差。預(yù)測(cè)me塊通常不與參考幀中的編碼me塊邊界對(duì)準(zhǔn)。該最匹配參考me塊的位置由描述其與目標(biāo)mc塊之間的位移的運(yùn)動(dòng)向量來(lái)表示。該運(yùn)動(dòng)向量信息也被編碼并連同預(yù)測(cè)誤差一起被發(fā)送。使用前向預(yù)測(cè)來(lái)編碼的幀被稱(chēng)作“P-幀”。預(yù)測(cè)誤差本身使用上面總結(jié)的基于DCT的幀內(nèi)編碼技術(shù)來(lái)發(fā)送。雙向時(shí)間預(yù)測(cè)丨雙向時(shí)間預(yù)測(cè),也稱(chēng)作“運(yùn)動(dòng)補(bǔ)償內(nèi)插”,是現(xiàn)代視頻編解碼器的關(guān)鍵特征。用雙向預(yù)測(cè)來(lái)編碼的幀使用兩個(gè)參考幀,通常一個(gè)是過(guò)去的,一個(gè)是未來(lái)的。然而,許多可能的參考幀中的兩個(gè)也可以被使用,尤其在諸如H.264的較新編解碼器中。事實(shí)上,使用適當(dāng)?shù)男帕?,每個(gè)me塊可以使用不同的參考幀。雙向編碼幀中的目標(biāo)me塊可以由來(lái)自過(guò)去參考幀的me塊(前向預(yù)測(cè))、或來(lái)自未來(lái)參考幀的me塊(后向預(yù)測(cè))、或兩個(gè)me塊(各來(lái)自一個(gè)參考幀)的平均值(內(nèi)插)來(lái)預(yù)測(cè)。在每種情況下,來(lái)自參考幀的預(yù)測(cè)me塊與運(yùn)動(dòng)向量相關(guān)聯(lián),以使得每個(gè)me塊最多兩個(gè)運(yùn)動(dòng)向量可以被雙向預(yù)測(cè)使用。對(duì)于雙向預(yù)測(cè)幀中的me塊的運(yùn)動(dòng)補(bǔ)償內(nèi)插如圖4中所示。使用雙向預(yù)測(cè)編碼的幀被稱(chēng)作“B-幀”。雙向預(yù)測(cè)提供了許多優(yōu)點(diǎn)。主要的一個(gè)是所獲得的壓縮通常高于單獨(dú)由前向(單向)預(yù)測(cè)獲得的壓縮。為了獲得相同圖片質(zhì)量,雙向預(yù)測(cè)幀可以使用比僅使用前向預(yù)測(cè)的幀更少的比特來(lái)編碼。然而,雙向預(yù)測(cè)在編碼處理中引入了額外的延遲,因?yàn)閹仨毑话错樞虻鼐幋a。此夕卜,其必須承擔(dān)額外的編碼復(fù)雜性,因?yàn)閙e塊匹配(計(jì)算上最密集的編碼過(guò)程)對(duì)于每個(gè)目標(biāo)me塊必須執(zhí)行兩次,一次使用過(guò)去參考巾貞,一次使用未來(lái)參考中貞。雙向預(yù)測(cè)的典型編碼器架構(gòu)圖5示出了典型的雙向視頻編碼器。假設(shè)幀重排序發(fā)生在編碼前,即,用于B-幀預(yù)測(cè)的1-幀或P-幀必須在任何相應(yīng)的B-幀之前被編碼和發(fā)送。在該編解碼器中,B-幀不被用作參考幀。如果改變架構(gòu),它們也可以用作參考幀,如在H.264中那樣。輸入視頻被提供至運(yùn)動(dòng)補(bǔ)償估計(jì)器/預(yù)測(cè)器,其將預(yù)測(cè)提供至減法器的負(fù)輸入端。對(duì)于每個(gè)me塊,幀間/幀內(nèi)分類(lèi)器然后將輸入像素與減法器的預(yù)測(cè)誤差輸出進(jìn)行比較。通常,如果均方預(yù)測(cè)誤差超過(guò)均方像素值,則判定為幀內(nèi)me塊。涉及像素和預(yù)測(cè)誤差二者的DCT的更復(fù)雜的比較會(huì)產(chǎn)生稍微更好的性能,但是通常被認(rèn)為不值成本。對(duì)于幀內(nèi)me塊,預(yù)測(cè)被設(shè)置為零。否則,其如上所述來(lái)自預(yù)測(cè)器。預(yù)測(cè)誤差然后在被編碼之前通過(guò)DCT和量化器,被多路復(fù)用并被發(fā)送至緩沖器。量化后的等級(jí)被逆量化器轉(zhuǎn)換為重建的DCT系數(shù),然后由逆DCT單元(“IDCT”)對(duì)該逆值進(jìn)行變換以產(chǎn)生編碼的預(yù)測(cè)誤差。加法器將預(yù)測(cè)與預(yù)測(cè)誤差相加并將結(jié)果修剪至例如O至255的范圍,來(lái)產(chǎn)生經(jīng)編碼的像素值。對(duì)于B-幀,運(yùn)動(dòng)補(bǔ)償估計(jì)器/預(yù)測(cè)器使用圖片存儲(chǔ)器中的先前幀和未來(lái)幀二者。對(duì)于1-幀和P-幀,由加法器輸出的編碼像素被寫(xiě)入下一圖片存儲(chǔ)器,同時(shí)舊像素被從下一圖片存儲(chǔ)器拷貝到前一圖片存儲(chǔ)器。實(shí)踐中,這通常是通過(guò)簡(jiǎn)單地改變存儲(chǔ)地址來(lái)實(shí)現(xiàn)的。同樣,在實(shí)踐中,編碼像素可以在進(jìn)入圖片存儲(chǔ)器之前被自適應(yīng)去塊(deblocking)濾波器濾波。這改進(jìn)了運(yùn)動(dòng)補(bǔ)償預(yù)測(cè),尤其是對(duì)于編碼偽影可能可見(jiàn)的低比特率情況。編碼統(tǒng)計(jì)處理器與量化器適配器一起控制輸出比特率,并盡可能地優(yōu)化圖片質(zhì)量。雙向預(yù)測(cè)的典型解碼器架構(gòu)圖6示出了典型雙向視頻解碼器。其具有與使用逆處理的編碼器的像素重建部分相對(duì)應(yīng)的結(jié)構(gòu)。假設(shè)幀重排序發(fā)生在解碼和視頻輸出之后。內(nèi)插濾波器可以位于運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)器的輸出端,如在編碼器中一樣。分?jǐn)?shù)運(yùn)動(dòng)向暈位移圖3和圖4示出了參考幀中相對(duì)于在當(dāng)前幀中被解碼的當(dāng)前me塊的位置具有垂直和水平位移的參考me塊。位移量由二維向量[dx, dy]表示,稱(chēng)作運(yùn)動(dòng)向量。運(yùn)動(dòng)向量可以被編碼和發(fā)送,或者它們可以從已經(jīng)在解碼器中的信息估計(jì)出,在這一情況下它們不被發(fā)送。對(duì)于雙向預(yù)測(cè),每個(gè)發(fā)送的me塊需要兩個(gè)運(yùn)動(dòng)向量。以最簡(jiǎn)單的形式,dx和dy是有符號(hào)的整數(shù),表示偏離參考me塊的水平方向像素?cái)?shù)量和垂直方向行數(shù)量。在這種情況下,參考me塊僅通過(guò)從參考存儲(chǔ)器中讀取適當(dāng)像素來(lái)獲得。然而,在較新的視頻編解碼器中,已經(jīng)發(fā)現(xiàn)允許dx和dy為分?jǐn)?shù)值是有利的。典型地,它們?cè)试S位移精度下至四分之一像素,即整數(shù)H■— 0.25,0.5或0.75。分?jǐn)?shù)運(yùn)動(dòng)向量比簡(jiǎn)單從參考存儲(chǔ)器讀取像素具有更多要求。為了獲得參考存儲(chǔ)像素之間的位置的參考me塊值,有必要在它們之間內(nèi)插。簡(jiǎn)單雙線(xiàn)性?xún)?nèi)插可以很好地工作。然而,在實(shí)踐中,已經(jīng)發(fā)現(xiàn)使用特別為該目的設(shè)計(jì)的二維內(nèi)插濾波器是有利的。事實(shí)上,為了性能和實(shí)用性,濾波器往往不是移位不變?yōu)V波器(shift-1nvariant filter)。相反,分?jǐn)?shù)運(yùn)動(dòng)向量的不同值可以使用不同內(nèi)插濾波器。使用自適應(yīng)內(nèi)插濾波器的運(yùn)動(dòng)補(bǔ)償最佳的運(yùn)動(dòng)補(bǔ)償內(nèi)插濾波器取決于許多因素。例如,在純平移時(shí),場(chǎng)景中的對(duì)象可能不在移動(dòng)??赡苡屑仍诙S也在三維的對(duì)象旋轉(zhuǎn)。其他因素包括縮放、相機(jī)運(yùn)動(dòng)和由陰影或改變照明引起的光照改變。相機(jī)特性可能由于其傳感器的特有性質(zhì)而不同。例如,許多消費(fèi)類(lèi)相機(jī)固有是隔行的,它們的輸出可能被去隔行并且被過(guò)濾來(lái)提供沒(méi)有隔行偽影(artifact)的看起來(lái)舒服的圖片。低光照條件可能導(dǎo)致增加每幀的曝光時(shí)間,導(dǎo)致移動(dòng)物體的運(yùn)動(dòng)依賴(lài)型模糊。像素可能不是正方形的。因此,在許多情況下,如果運(yùn)動(dòng)補(bǔ)償內(nèi)插濾波器可以適應(yīng)這些和其他外部因素,則可以具有改進(jìn)的性能。在這樣的系統(tǒng)中,內(nèi)插濾波器可以通過(guò)在每一幀上最小化當(dāng)前me塊與其相應(yīng)參考me塊之間的均方誤差來(lái)設(shè)計(jì)。這些被稱(chēng)作維納濾波器。濾波器系數(shù)然后可以在每幀的開(kāi)始處被量化和發(fā)送,以用在實(shí)際運(yùn)動(dòng)補(bǔ)償編碼中。在H.264和類(lèi)似編解碼器中,僅允許周期性調(diào)節(jié)少數(shù)幾個(gè)去塊 參數(shù)。此外,由于濾波器操作是如此的非線(xiàn)性,所以普通的維納過(guò)濾器設(shè)計(jì)不能被應(yīng)用。因此,在本領(lǐng)域中,需要用于在編碼過(guò)程中選擇去塊濾波器的參數(shù)的高效機(jī)制。
圖1是傳統(tǒng)視頻編碼器的框圖。圖2是傳統(tǒng)視頻解碼器的框圖。圖3示出了運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)的原理。圖4示出了雙向時(shí)間預(yù)測(cè)的原理。圖5是傳統(tǒng)雙向視頻編碼器的框圖。圖6是傳統(tǒng)雙向視頻解碼器的框圖。圖7示出了適于與本發(fā)明的實(shí)施例一起使用的編碼器/解碼器系統(tǒng)。圖8是根據(jù)本發(fā)明的一個(gè)實(shí)施例的視頻編碼器的簡(jiǎn)化框圖。圖9示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的方法。圖10示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的梯度搜索方法的示例操作。圖11示出了根據(jù)本發(fā)明的另一實(shí)施例的方法。圖12示出了根據(jù)本發(fā)明的另一實(shí)施例的梯度搜索方法的示例操作。圖13是根據(jù)本發(fā)明的實(shí)施例的視頻解碼器的簡(jiǎn)化框圖。
具體實(shí)施例方式本發(fā)明的實(shí)施例提供了用于為編碼視頻選擇去塊參數(shù)的迭代方法。根據(jù)該方法,解碼圖片可以根據(jù)與多維去塊向量相關(guān)聯(lián)的參數(shù)被去塊,并且可以由此估計(jì)被稱(chēng)作“去塊誤差”的誤差。如果估計(jì)的誤差超過(guò)預(yù)定閾值,則可以創(chuàng)建替換去塊向量,每個(gè)替換去塊向量在相應(yīng)維度上從當(dāng)前去塊向量前進(jìn)。該方法可以根據(jù)每個(gè)前進(jìn)的向量對(duì)編碼圖片進(jìn)行去塊,并且可以從每個(gè)前進(jìn)的向量的每次去塊估計(jì)誤差。最終,去塊向量可以根據(jù)從各個(gè)向量維度的估計(jì)的去塊誤差得出的梯度而被修改,以用于下一迭代。該基于梯度的搜索方法可以以高效方式收斂到一組最終的去塊參數(shù)。圖7示出了適用與本發(fā)明一起使用的編碼器/解碼器系統(tǒng)100。在此,編碼器110通過(guò)網(wǎng)絡(luò)130與解碼器120通信。解碼器110可以對(duì)源視頻的數(shù)據(jù)流進(jìn)行編碼操作,源視頻可以經(jīng)由相機(jī)設(shè)備在編碼器處本地捕捉,或從存儲(chǔ)設(shè)備(未示出)獲取。編碼操作降低源視頻數(shù)據(jù)的帶寬,從其產(chǎn)生編碼視頻。編碼器110可以通過(guò)網(wǎng)絡(luò)130將編碼視頻發(fā)送至解碼器120。解碼器120可以逆向執(zhí)行由編碼器110執(zhí)行的編碼操作,來(lái)從編碼視頻數(shù)據(jù)產(chǎn)生恢復(fù)的視頻數(shù)據(jù)流。由編碼器110執(zhí)行的編碼操作通常是有損處理,因此,恢復(fù)的視頻數(shù)據(jù)可能是源視頻數(shù)據(jù)的不精確復(fù)制。解碼器120可以在顯示設(shè)備上呈現(xiàn)恢復(fù)的視頻數(shù)據(jù),或其可以存儲(chǔ)恢復(fù)的視頻數(shù)據(jù)用于以后使用。如上所述,網(wǎng)絡(luò)130可以將來(lái)自編碼器110的編碼視頻數(shù)據(jù)傳輸至解碼器120。網(wǎng)絡(luò)130可以作為各種有線(xiàn)或無(wú)線(xiàn)通信網(wǎng)絡(luò)、計(jì)算機(jī)網(wǎng)絡(luò)或其組合被提供。此外,網(wǎng)絡(luò)130可以作為存儲(chǔ)單元被提供,例如電、光或磁存儲(chǔ)設(shè)備。圖8是適于與本發(fā)明一起使用的編碼器的簡(jiǎn)化框圖。編碼器200可以包括基于塊的編碼鏈210和預(yù)測(cè)單元220。基于塊的編碼鏈210可以包括減法器212、變換單元214、量化器216和可變長(zhǎng)度編碼器218。減法器212可以接收來(lái)自源圖像的輸入me塊,以及來(lái)自預(yù)測(cè)單元220的預(yù)測(cè)me塊。其可以從輸入me塊減去預(yù)測(cè)me塊,產(chǎn)生像素殘差塊。變換單元214可以根據(jù)空間變換(典型地為離散余弦變換(“DCT”)或小波變換)來(lái)將me塊的殘差數(shù)據(jù)轉(zhuǎn)換為變換系數(shù)陣列。量化器216可以根據(jù)量化參數(shù)(“QP”)截?cái)嗝總€(gè)塊的變換系數(shù)。用于截?cái)嗟腝P值可以在信道中被發(fā)送至解碼器。可變長(zhǎng)度編碼器218可以根據(jù)熵編碼算法(例如可變長(zhǎng)度編碼算法)來(lái)對(duì)經(jīng)量化的系數(shù)編碼??勺冮L(zhǎng)度編碼之后,每個(gè)me塊的編碼數(shù)據(jù)可以存儲(chǔ)在緩沖器240中以等待通過(guò)信道發(fā)送至解碼器。預(yù)測(cè)單元220可以包括:逆量化單元222、逆變換單元224、加法器226、去塊濾波器228、參考圖片高速緩存230、運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)器232和運(yùn)動(dòng)估計(jì)器234。逆量化單元222可以根據(jù)量化器216使用的QP來(lái)量化編碼視頻數(shù)據(jù)。逆變換單元224可以將重新量化的系數(shù)變換到像素域。加法器226可以將從逆變換單元224輸出的像素殘差與來(lái)自運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)器232的預(yù)測(cè)運(yùn)動(dòng)數(shù)據(jù)相加。去塊濾波器228可以在恢復(fù)的me塊和同一幀的其他恢復(fù)的me塊之間的接縫處對(duì)恢復(fù)的圖像數(shù)據(jù)進(jìn)行濾波。參考圖片高速緩存230可以存儲(chǔ)恢復(fù)的幀,用于在編碼后續(xù)接收的me塊的過(guò)程中作為參考幀使用。運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)器232可以產(chǎn)生預(yù)測(cè)me塊以供塊編碼器210使用。運(yùn)動(dòng)估計(jì)器234可以估計(jì)被編碼的源圖像與存儲(chǔ)在參考圖片高速緩存230中的參考幀(一個(gè)或多個(gè))之間的圖像運(yùn)動(dòng)。其可以選擇將被使用的預(yù)測(cè)模式(例如,單向P-編碼或雙向B-編碼),并產(chǎn)生用于在這樣的預(yù)測(cè)編碼中使用的運(yùn)動(dòng)向量。該運(yùn)動(dòng)向量可以被輸出至運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)器232和信道。作為響應(yīng),運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)器232可以從參考圖片高速緩存230獲取預(yù)測(cè)的me塊,并且可以將該預(yù)測(cè)塊輸出至塊編碼器210??蛇x地,運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)器232可以在將所獲取的me塊輸出至塊編碼器210之前對(duì)其執(zhí)行內(nèi)插濾波(未示出)。去塊過(guò)濾器228的操作可以基于控制參數(shù)而改變。在編碼器處,控制邏輯器(未示出)可以檢查由預(yù)測(cè)單元產(chǎn)生的編碼圖像數(shù)據(jù),并且可以將編碼圖像數(shù)據(jù)與源圖像的數(shù)據(jù)進(jìn)行比較來(lái)確定哪些參數(shù)使得編碼誤差最小。在一個(gè)實(shí)施例中,該選擇處理可以通過(guò)對(duì)候選參數(shù)值進(jìn)行梯度搜索處理而被增強(qiáng),以便快速收斂至一組適當(dāng)參數(shù)。一旦適當(dāng)參數(shù)被選擇,參數(shù)標(biāo)識(shí)符可以被發(fā)送至解碼器供解碼使用。例如,用于圖片中的每個(gè)me塊或用于較大實(shí)體(例如宏塊或片段)的去塊參數(shù)可以被發(fā)送。去塊參數(shù)可以與編碼me塊的其他數(shù)據(jù)(例如,運(yùn)動(dòng)向量、量化參數(shù)和編碼殘差)一起被發(fā)送。圖9示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的方法300。該方法300可以開(kāi)始于編碼和解碼源圖片(框310),然后使用與當(dāng)前去塊向量相關(guān)聯(lián)的去塊參數(shù)對(duì)圖片執(zhí)行去塊(框320)。在方法300的第一次迭代中,該向量可以被設(shè)置為默認(rèn)值。方法300可以計(jì)算與經(jīng)去塊的圖片相關(guān)聯(lián)的誤差(框330),并將該誤差與預(yù)定閾值進(jìn)行比較(框340)。如果誤差小于預(yù)定閾值,則方法300可以發(fā)送編碼圖片數(shù)據(jù)和當(dāng)前去塊向量至解碼器(框350),并且方法300可以終止于當(dāng)前圖片。去塊參數(shù)可以被認(rèn)為代表具有多個(gè)值的N維向量。例如,H.264定義了兩個(gè)參數(shù),其可以被圖像編碼中的編碼器定義:slice_alpha_c0_offset_div2和slice_beta_offset_div2 (在此稱(chēng)作“ α ”和“ β ”)。在應(yīng)用至H.264實(shí)施方式時(shí),去塊參數(shù)可以被認(rèn)為是二維向量。未來(lái)的編碼協(xié)議可能定義附加類(lèi)型的去塊參數(shù),當(dāng)在圖9的方法300的上下文中考慮時(shí),其可以被表示為3維、4維或更大維度的空間。當(dāng)框340的比較確定誤差超過(guò)閾值時(shí),方法300可以執(zhí)行針對(duì)新的去塊向量的多維搜索。具體地,方法300可以在每個(gè)維度i上分別增加當(dāng)前向量(框360)。方法300使用與每個(gè)增加后的向量相關(guān)聯(lián)的參數(shù)執(zhí)行已解碼圖片的去塊(框370),并計(jì)算原始圖片和去塊圖片之間的誤差(框380)。在N維向量空間中,可以存在N個(gè)去塊圖片和從其獲得的N個(gè)誤差值。方法300可以通過(guò)將在框330獲得的誤差值與在框380從每個(gè)維度計(jì)算獲得的誤差進(jìn)行比較來(lái)計(jì)算梯度值(框390)。方法300可以從梯度產(chǎn)生新的向量(框400)并且執(zhí)行另一迭代分析,從而返回至框320。梯度向量可以是N維向量,其中每個(gè)維度i的分量可以通過(guò)將來(lái)自框330的去塊誤差和從框380獲得的維度誤差進(jìn)行比較來(lái)獲得。例如,對(duì)于梯度向量的每個(gè)分量Gi,梯度向量G可以如下計(jì)算:G=LG1, G2,…,Gn],其中Gi=erri-errDBLX方法300還可以如下產(chǎn)生新的去塊向量V:
權(quán)利要求
1.一種為編碼視頻確定去塊參數(shù)的方法,迭代地包括: 根據(jù)去塊向量執(zhí)行解碼圖片的去塊; 從已去塊的解碼圖片估計(jì)去塊誤差; 對(duì)于多個(gè)向量維度中的每一個(gè),如果所估計(jì)的誤差超過(guò)預(yù)定閾值,則: 在相應(yīng)維度上使去塊向量前進(jìn); 根據(jù)前進(jìn)后的維度對(duì)解碼圖片進(jìn)行去塊;以及 從根據(jù)前進(jìn)后的維度去塊的解碼圖片估計(jì)去塊誤差; 根據(jù)從所述多個(gè)向量維度的所估計(jì)的去塊誤差得出的梯度,修改用于下一次迭代的去塊向量。
2.根據(jù)權(quán)利要求1所述的方法,還包括:如果所估計(jì)的誤差不超過(guò)所述閾值,則將編碼圖片數(shù)據(jù)和去塊向量的標(biāo)識(shí)符發(fā)送至解碼器。
3.根據(jù)權(quán)利要求1所述的方法,還包括:重復(fù)所述方法直到去塊誤差小于預(yù)定閾值。
4.根據(jù)權(quán)利要求1所述的方法,在所述方法的第二次迭代中還包括: 估計(jì)第一次迭代和第二次迭代之間所估計(jì)的誤差的變化率; 如果變化率小于第二閾值,則將編碼圖片數(shù)據(jù)和去塊向量的標(biāo)識(shí)符發(fā)送至解碼器。
5.根據(jù)權(quán)利要求1所述的方法,還包括:如果所述梯度的幅值小于第二閾值,則將編碼圖片數(shù)據(jù)和去塊向量的標(biāo)識(shí)符發(fā)送至解碼器。
6.根據(jù)權(quán)利要求1所述的方法,在所述方法的后續(xù)迭代中還包括: 確定修改后的去塊向量是否與在所述方法的先前迭代中使用的去塊向量匹配, 如果匹配,則將編碼圖片數(shù)據(jù)和去塊向量的標(biāo)識(shí)符發(fā)送至解碼器。
7.根據(jù)權(quán)利要求1所述的方法,其中所述前進(jìn)包括在相應(yīng)維度上增加去塊向量。
8.根據(jù)權(quán)利要求1所述的方法,其中所述前進(jìn)包括:在由先前迭代的梯度確定的方向上在相應(yīng)維度上調(diào)節(jié)去塊向量。
9.根據(jù)權(quán)利要求1所述的方法,其中第一次迭代的去塊向量被設(shè)置為默認(rèn)值。
10.根據(jù)權(quán)利要求1所述的方法,其中第一次迭代的去塊向量被設(shè)置為通過(guò)對(duì)先前圖片執(zhí)行所述方法獲得的最終去塊向量值。
11.根據(jù)權(quán)利要求1所述的方法,其中第一次迭代的去塊向量被設(shè)置為通過(guò)對(duì)與當(dāng)前圖片具有共同編碼分配的先前圖片執(zhí)行所述方法獲得的最終去塊向量值。
12.根據(jù)權(quán)利要求1所述的方法,其中第一次迭代的去塊向量被設(shè)置為通過(guò)對(duì)與當(dāng)前圖片具有類(lèi)似運(yùn)動(dòng)特性的先前圖片執(zhí)行所述方法獲得的最終去塊向量值。
13.根據(jù)權(quán)利要求1所述的方法,其中已去塊圖片的所估計(jì)的誤差由已去塊的解碼圖片與未濾波的源圖片數(shù)據(jù)的比較來(lái)確定。
14.根據(jù)權(quán)利要求1所述的方法,其中已去塊圖片的所估計(jì)的誤差由已去塊的解碼圖片與已濾波的源圖片數(shù)據(jù)的比較來(lái)確定。
15.一種視頻編碼方法,包括: 通過(guò)運(yùn)動(dòng)補(bǔ)償對(duì)源圖片的塊進(jìn)行編碼; 解碼參考圖片的塊,所述解碼包括: 通過(guò)迭代的基于梯度的搜索處理,估計(jì)去塊濾波操作的參數(shù);以及 根據(jù)最終估計(jì)的去塊參數(shù), 對(duì)已解碼的參考圖片進(jìn)行去塊濾波;在參考圖片存儲(chǔ)器中存儲(chǔ)已去塊的圖片;以及 發(fā)送編碼圖片的數(shù)據(jù)和最終估計(jì)的去塊參數(shù)至信道。
16.根據(jù)權(quán)利要求15所述的方法,其中所述搜索處理迭代地包括: 根據(jù)去塊向量執(zhí)行解碼圖片的去塊; 從已去塊的解碼圖片估計(jì)去塊誤差; 對(duì)于多個(gè)向量維度中的每一個(gè),如果所估計(jì)的誤差超過(guò)預(yù)定閾值,則: 在相應(yīng)維度上使去塊向量前進(jìn); 根據(jù)前進(jìn)后的維度對(duì)解碼圖片進(jìn)行去塊;以及 從根據(jù)前進(jìn)后的維度去塊的解碼圖片估計(jì)去塊誤差; 根據(jù)從所述多個(gè)向量維度的所估計(jì)的去塊誤差得出的梯度,修改用于下一次迭代的去塊向量。
17.根據(jù)權(quán)利要求16所述的方法,還包括:如果所估計(jì)的誤差不超過(guò)所述閾值,則將編碼圖片數(shù)據(jù)和去塊向量的標(biāo)識(shí)符發(fā)送至解碼器。
18.根據(jù)權(quán)利要求16所述的方法,還包括:重復(fù)所述方法直到去塊誤差小于預(yù)定閾值。
19.根據(jù)權(quán)利要求16所述的方法,在所述方法的第二次迭代中還包括: 估計(jì)第一次迭代和第二次迭代之間所估計(jì)的誤差的變化率; 如果變化率小于第二閾值,則將編碼圖片數(shù)據(jù)和去塊向量的標(biāo)識(shí)符發(fā)送至解碼器。
20.根據(jù)權(quán)利要求16所述的方法,還包括:如果所述梯度的幅值小于第二閾值,則將編碼圖片數(shù)據(jù)和去塊向量的標(biāo)識(shí)符發(fā)送至解碼器。
21.根據(jù)權(quán)利要求16所述的方法,在所述方法的后續(xù)迭代中還包括: 確定修改后的去塊向量是否與在所述方法的先前迭代中使用的去塊向量匹配, 如果匹配,則將編碼圖片數(shù)據(jù)和去塊向量的標(biāo)識(shí)符發(fā)送至解碼器。
22.根據(jù)權(quán)利要求16所述的方法,其中所述前進(jìn)包括在相應(yīng)維度上增加去塊向量。
23.根據(jù)權(quán)利要求16所述的方法,其中所述前進(jìn)包括:在由先前迭代的梯度確定的方向上在相應(yīng)維度上調(diào)節(jié)去塊向量。
24.根據(jù)權(quán)利要求16所述的方法,其中第一次迭代的去塊向量被設(shè)置為默認(rèn)值。
25.根據(jù)權(quán)利要求16所述的方法,其中第一次迭代的去塊向量被設(shè)置為通過(guò)對(duì)先前圖片執(zhí)行所述方法獲得的最終去塊向量值。
26.根據(jù)權(quán)利要求16所述的方法,其中第一次迭代的去塊向量被設(shè)置為通過(guò)對(duì)與當(dāng)前圖片具有共同編碼分配的先前圖片執(zhí)行所述方法獲得的最終去塊向量值。
27.根據(jù)權(quán)利要求16所述的方法,其中第一次迭代的去塊向量被設(shè)置為通過(guò)對(duì)與當(dāng)前圖片具有類(lèi)似運(yùn)動(dòng)特性的先前圖片執(zhí)行所述方法獲得的最終去塊向量值。
28.根據(jù)權(quán)利要求16所述的方法,其中已去塊圖片的所估計(jì)的誤差由已去塊的解碼圖片與未濾波的源圖片數(shù)據(jù)的比較來(lái)確定。
29.根據(jù)權(quán)利要求16所述的方法,其中已去塊圖片的所估計(jì)的誤差由已去塊的解碼圖片與已濾波的源圖片數(shù)據(jù)的比較來(lái)確定。
30.一種視頻編碼器,包括: 基于塊的編碼器,具有用于源圖片和預(yù)測(cè)塊的輸入端; 預(yù)測(cè)單元,耦接至基于塊的編碼器,包括:基于塊的解碼器,用于對(duì)參考圖片的編碼塊進(jìn)行解碼,所述基于塊的解碼器包括去塊濾波器和用于通過(guò)迭代的基于梯度的搜索處理來(lái)估計(jì)去塊參數(shù)的控制邏輯器;以及用于已去塊圖片的參考圖片存儲(chǔ)器;以及發(fā)送緩沖器,用于存儲(chǔ)編碼圖片的數(shù)據(jù)和最終估計(jì)的去塊參數(shù)。
31.根據(jù)權(quán)利要求30所述的編碼器,其中控制邏輯器迭代地進(jìn)行以下操作: 根據(jù)去塊向量執(zhí)行解碼圖片的去塊; 從已去塊的解碼圖片估計(jì)去塊誤差; 對(duì)于多個(gè)向量維度中的每一個(gè),如果所估計(jì)的誤差超過(guò)預(yù)定閾值,則: 在相應(yīng)維度上使去塊向量前進(jìn); 根據(jù)前進(jìn)后的維度對(duì)解碼圖片進(jìn)行去塊;以及 從根據(jù)前進(jìn)后的維度去塊的解碼圖片估計(jì)去塊誤差; 根據(jù)從所述多個(gè)向量維度的所估計(jì)的去塊誤差得出的梯度,修改用于下一次迭代的去塊向量。
32.—種視頻解碼器,包括: 基于塊的解碼器,具有用于編碼的圖片數(shù)據(jù)和預(yù)測(cè)的塊數(shù)據(jù)的輸入端; 預(yù)測(cè)單元,耦接至基于塊的解碼器,以響應(yīng)于在信道中接收的運(yùn)動(dòng)向量數(shù)據(jù)來(lái)預(yù)測(cè)塊數(shù)據(jù);以及 去塊濾波器,接收來(lái)自所述基于塊的解碼器的恢復(fù)的塊數(shù)據(jù),并且響應(yīng)于在所述信道中接收的去塊向量,使用由所述去塊向量識(shí)別的參數(shù)來(lái)執(zhí)行去塊,所述去塊向量已經(jīng)通過(guò)迭代的基于梯度的搜索處理而產(chǎn)生。
全文摘要
解碼器執(zhí)行用于為編碼視頻選擇去塊參數(shù)的迭代搜索方法。根據(jù)該方法,解碼圖片可以根據(jù)與多維去塊向量相關(guān)聯(lián)的參數(shù)來(lái)去塊,并且可以由此估計(jì)被稱(chēng)作“去塊誤差”的誤差。如果估計(jì)的誤差超過(guò)預(yù)定閾值,則可以創(chuàng)建替換去塊向量,每個(gè)替換去塊向量在相應(yīng)維度上從當(dāng)前去塊向量前進(jìn)。該方法可以根據(jù)每個(gè)前進(jìn)后的向量對(duì)編碼圖片進(jìn)行去塊,并且可以從每個(gè)前進(jìn)后的向量的每次去塊估計(jì)誤差。最終,去塊向量可以根據(jù)從各個(gè)向量維度的估計(jì)的去塊誤差得出的梯度而被修改,以用于下一迭代。該基于梯度的搜索方法可以以高效方式收斂到一組最終的去塊參數(shù)。
文檔編號(hào)H04N7/50GK103141097SQ201180047120
公開(kāi)日2013年6月5日 申請(qǐng)日期2011年8月10日 優(yōu)先權(quán)日2010年9月30日
發(fā)明者B·G·哈斯克爾 申請(qǐng)人:蘋(píng)果公司