專利名稱:視頻編碼和解碼中用于變換選擇的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本原理一般涉及視頻編碼和解碼,且更具體地涉及選擇待用于視頻編碼和解碼的變換的方法和裝置。
背景技術(shù):
基于塊的離散變換是包括下列的許多圖像和視頻壓縮標(biāo)準(zhǔn)和推薦的基本組成部分聯(lián)合圖像專家組(JPEG)標(biāo)準(zhǔn),國際電信聯(lián)盟電信部門(ITU-T)H. 263推薦標(biāo)準(zhǔn)(下文是“H. 263推薦標(biāo)準(zhǔn)”),國際標(biāo)準(zhǔn)化組織/國際電工委員會(IS0/IEC)運動圖像專家組-1 (MPEG-I)標(biāo)準(zhǔn),MPEG-2標(biāo)準(zhǔn),IS0/IEC MPEG-4第10部分高級視頻編碼(AVC)標(biāo)準(zhǔn)/ ITU-T H. 264推薦標(biāo)準(zhǔn)(下文是“MPEG-4 AVC標(biāo)準(zhǔn)”)及其它,并且它在廣泛的應(yīng)用中使用。離散余弦變換(DCT)是最常用的塊變換。DCT方案通過將圖像/幀分為像素塊(通常是4X4和8X8),使用離散余弦變換將每個塊從空間域變換到頻域,并且量化DCT系數(shù), 來利用圖像/幀的局部空間相關(guān)屬性。大多數(shù)圖像和視頻壓縮標(biāo)準(zhǔn)使用固定的二維O-D) 可分離DCT塊變換。如果允許若干塊大小(通常,從4X4到16X16個塊),則它們使用其大小對應(yīng)于該塊的DCT。但是,對于每個塊大小僅存在一種可能變換。然而,圖像和視頻內(nèi)容包含變化統(tǒng)計和屬性的數(shù)據(jù)。因此,每塊大小的單個變換的可用性以及由此強(qiáng)迫使用使得無法實現(xiàn)任何潛在壓縮獲益,而這潛在壓縮獲益是可以使用與每塊大小可用的單個變換不同的變換而獲得的。在諸如像MPEG-4AVC標(biāo)準(zhǔn)之類的圖像和視頻編碼標(biāo)準(zhǔn)中,針對每個塊大小使用的塊變換僅存在一種選擇。不存在對變換的選擇。參考圖1,能夠按照MPEG-4 AVC標(biāo)準(zhǔn)進(jìn)行視頻編碼的視頻編碼器一般地用附圖標(biāo)號100表示。視頻編碼器100包括幀排序緩沖器110,其具有與組合器185的非反向輸入端進(jìn)行信號通信的輸出端。組合器185的輸出端與變換器和量化器125的第一輸入端進(jìn)行信號通信連接。變換器和量化器125的輸出端與熵編碼器145的第一輸入端以及逆變換器和逆量化器150的第一輸入端進(jìn)行信號通信連接。熵編碼器145的輸出端與組合器190的第一非反向輸入端進(jìn)行信號通信連接。組合器190的輸出端與輸出緩沖器135的第一輸入端進(jìn)行信號通信連接。
編碼器控制器105的第一輸出端與幀排序緩沖器110的第二輸入端、逆變換器和逆量化器150的第二輸入端、畫面型判定模塊115的輸入端、宏塊型(MB-型)判定模塊120 的第一輸入端、幀內(nèi)預(yù)測模塊160的第二輸入端、去塊濾波器165的第二輸入端、運動補(bǔ)償器170的第一輸入端、運動估計器175的第一輸入端以及參考畫面緩沖器180的第二輸入
端進(jìn)行信號通信連接。編碼器控制器105的第二輸出端與補(bǔ)充增強(qiáng)信息(SEI)插入器130的第一輸入端、變換器和量化器125的第二輸入端、熵編碼器145的第二輸入端、輸出緩沖器135的第二輸入端以及序列參數(shù)組(SPQ和畫面參數(shù)組(PPQ插入器140的輸入端進(jìn)行信號通信連接。SEI插入器130的輸出端與組合器190的第二非反向輸入端進(jìn)行信號通信連接。畫面型判定模塊115的第一輸出端與幀排序緩沖器110的第三輸入端進(jìn)行信號通信連接。畫面型判定模塊115的第二輸出端與宏塊型判定模塊120的第二輸入端進(jìn)行信號通信連接。序列參數(shù)組(SPS)和畫面參數(shù)組(PPS)插入器140的輸出端與組合器190的第三非反向輸入端進(jìn)行信號通信連接。逆量化器和逆變換器150的輸出端與組合器119的第一非反向輸入端進(jìn)行信號通信連接。組合器119的輸出端與幀內(nèi)預(yù)測模塊160的第一輸入端和去塊濾波器165的第一輸入端進(jìn)行信號通信連接。去塊濾波器165的輸出端與參考畫面緩沖器180的第一輸入端進(jìn)行信號通信連接。參考畫面緩沖器180的輸出端與運動估計器175的第二輸入端和運動補(bǔ)償器170的第三輸入端進(jìn)行信號通信連接。運動估計器175的第一輸出端與運動補(bǔ)償器 170的第二輸入端進(jìn)行信號通信連接。運動估計器175的第二輸出端與熵編碼器145的第三輸入端進(jìn)行信號通信連接。運動補(bǔ)償器170的輸出端與開關(guān)197的第一輸入端進(jìn)行信號通信連接。幀內(nèi)預(yù)測模塊160的輸出端與開關(guān)197的第二輸入端進(jìn)行信號通信連接。宏塊型判定模塊120的輸出端與開關(guān)197的第三輸入端進(jìn)行信號通信連接。開關(guān)197的第三輸入端確定開關(guān)的“數(shù)據(jù)”輸入端(與控制輸入端相比較,即,第三輸入端)是否將由運動補(bǔ)償器170或幀內(nèi)預(yù)測模塊160來提供。開關(guān)197的輸出端與組合器119的第二非反向輸入端和組合器185的反向輸入端進(jìn)行信號通信連接。幀排序緩沖器110的第一輸入端和編碼器控制器105的輸入端可用作編碼器100 的用于接收輸入畫面的輸入端。而且,補(bǔ)充增強(qiáng)信息(SEI)插入器130的第二輸入端可用作編碼器100的用于接收元數(shù)據(jù)的輸入端。輸出緩沖器135的輸出端可用作編碼器100的用于輸出位流的輸出端。參考圖2,能夠按照MPEG-4 AVC標(biāo)準(zhǔn)進(jìn)行視頻解碼的視頻解碼器一般地用附圖標(biāo)號200表示。視頻解碼器200包括輸入緩沖器210,其具有與熵解碼器245的第一輸入端進(jìn)行信號通信連接的輸出端。熵解碼器245的第一輸出端與逆變換器和逆量化器250的第一輸入端進(jìn)行信號通信連接。逆變換器和逆量化器250的輸出端與組合器225的第二非反向輸入端進(jìn)行信號通信連接。組合器225的輸出端與去塊濾波器265的第二輸入端以及幀內(nèi)預(yù)測模塊260的第一輸入端進(jìn)行信號通信連接。去塊濾波器265的第二輸出端與參考畫面緩沖器觀0的第一輸入端進(jìn)行信號通信連接。參考畫面緩沖器觀0的輸出端與運動補(bǔ)償器270的第二輸入端進(jìn)行信號通信連接。熵解碼器M5的第二輸出端與運動補(bǔ)償器270的第三輸入端以及去塊濾波器265 的第一輸入端進(jìn)行信號通信連接。熵解碼器245的第三輸出端與解碼器控制器205的輸入端進(jìn)行信號通信連接。解碼器控制器205的第一輸出端與熵解碼器245的第二輸入端進(jìn)行信號通信連接。解碼器控制器205的第二輸出端與逆變換器和逆量化器250的第二輸入端進(jìn)行信號通信連接。解碼器控制器205的第三輸出端與去塊濾波器265的第三輸入端進(jìn)行信號通信連接。解碼器控制器205的第四輸出端與幀內(nèi)預(yù)測模塊沈0的第二輸入端、運動補(bǔ)償器270的第一輸入端以及參考畫面緩沖器觀0的第二輸入端進(jìn)行信號通信連接。運動補(bǔ)償器270的輸出端與開關(guān)四7的第一輸入端進(jìn)行信號通信連接。幀內(nèi)預(yù)測模塊260的輸出端與開關(guān)297的第二輸入端進(jìn)行信號通信連接。開關(guān)297的輸出端與組合器225的第一非反向輸入端進(jìn)行信號通信連接。輸入緩沖器210的輸入端可用作解碼器200的用于接收輸入位流的輸入端。去塊濾波器沈5的第一輸出端可用作解碼器200的用于輸出輸出畫面的輸出端。在單一編碼方案中對于多個變換的使用已經(jīng)存在一些現(xiàn)有建議。在第一種現(xiàn)有技術(shù)途徑中,揭露了一種最佳線性變換,稱作Karhunen Loeve變換(KLT)。KLT被利用來在 MPEG-4 AVC標(biāo)準(zhǔn)中對于9種幀內(nèi)預(yù)測模式的每種模式推導(dǎo)出最佳變換。提取每種模式的統(tǒng)計并且推導(dǎo)出相應(yīng)的KLT。每個幀內(nèi)預(yù)測剩余部分(residue)利用它的KLT來編碼。以 DCT不再接近最佳變換的這種方式,數(shù)據(jù)空間被9種幀內(nèi)模式有效地分割,因此可以推導(dǎo)并且成功地應(yīng)用獨特的最佳變換??傊?,該建議使用數(shù)種變換,但是每種變換被固定為所選擇的幀內(nèi)預(yù)測模式。第二種現(xiàn)有技術(shù)途徑提出修改DCT變換為若干頻率,也就是,利用不同的全通濾波器改變基本函數(shù)以便獲得各種各樣的彎曲(warped)頻率響應(yīng)。得到的變換稱作彎曲 DCT(WDCT)。對于每個塊進(jìn)行窮盡比率失真(R_D,rate distortion)搜索,并且用輔助信息 (side information)表示被選變換。該構(gòu)思應(yīng)用于圖像壓縮。第三種現(xiàn)有技術(shù)途徑描述了使用WDCT和在變換的系數(shù)本身內(nèi)嵌入變換選擇。該方法對低位速率圖像壓縮顯示了良好性能。而且,該方法添加了最小化均方差(MSE)的后濾波步驟。該濾波是在編碼器處確定的并且被復(fù)用到位流。第四種現(xiàn)有技術(shù)途徑提出針對大數(shù)據(jù)庫的一組變換的代數(shù)最優(yōu)化。該組被迭代地分割,直到它達(dá)到穩(wěn)定點,在該穩(wěn)定點,每個變換對于它的特殊子集數(shù)據(jù)是最佳稀疏的。編碼器通過四重樹表示在每個塊中使用哪個變換。因此,對于每個塊不是獨立地完成變換選擇。第五種現(xiàn)有技術(shù)途徑提出用于幀間模式的整數(shù)正弦變換(1ST)。幀間剩余部分相關(guān)性低,并且DCT僅對于高相關(guān)數(shù)據(jù)是足夠的。因此,提出了正弦變換,它對相關(guān)性從-0. 5 到0. 5的數(shù)據(jù)有效。KLT在該范圍部分與正弦變換一致。1ST是以與MPEG-4AVC標(biāo)準(zhǔn)中的整數(shù)余弦變換完全相同的方式從正弦變換中推導(dǎo)出的。第五種現(xiàn)有技術(shù)途徑已經(jīng)實現(xiàn)4X4 和8X8 1ST版本。對于整個宏塊應(yīng)用相同變換,發(fā)送標(biāo)記,除非宏塊被分為4個子宏塊,隨后發(fā)送規(guī)定在每個子宏塊中采用的變換的4個標(biāo)記。第六種現(xiàn)有技術(shù)途徑提出了類似于在第五種現(xiàn)有技術(shù)途徑中提出的方案。該第六種現(xiàn)有技術(shù)途徑提出能夠在空間域和頻域中進(jìn)行自適應(yīng)預(yù)測差錯編碼的自適應(yīng)預(yù)測差錯編碼(APEC)方案。對于預(yù)測差錯的每個塊,應(yīng)用變換編碼或空間域編碼。選擇較低比率失真成本的算法。先前的途徑提出最佳變換的有限范圍選擇,并且沒有充分地利用可用的可能性。
發(fā)明內(nèi)容
通過本原理解決了現(xiàn)有技術(shù)的這些和其它缺陷和不足,本原理致力于視頻編碼中用于變換選擇的方法和裝置。按照本原理的一方面,提供了一種裝置。該裝置包括視頻編碼器,用于通過從一組兩個或多個變換中選擇一種應(yīng)用于畫面中的至少一塊的剩余部分的變換來編碼該至少一塊。所述變換是基于以下中的至少一個而選擇的用于預(yù)測所述塊的至少一個參考的幀間預(yù)測模式,對應(yīng)于運動矢量的一個或多個值,一個或多個在先編碼塊的剩余部分的值,所述塊的預(yù)測數(shù)據(jù)的值,一個或多個相鄰重構(gòu)塊的一個或多個變換選擇,和應(yīng)用于所述塊的剩余部分的變換系數(shù)的量化步驟。按照本原理的另一方面,提供了一種裝置。該裝置包括視頻編碼器,用于通過從一組兩個或多個可用變換中選擇一種應(yīng)用于畫面中的至少一塊的剩余部分的變換來編碼該至少一塊。所述視頻編碼器通過以下中的至少一個發(fā)送描述被選變換的信息使用一個或多個標(biāo)記顯性地發(fā)送所述信息,使用位流中的樹結(jié)構(gòu)發(fā)送所述信息,在與被選變換對應(yīng)的變換系數(shù)內(nèi)嵌入所述信息,和允許相應(yīng)解碼器從已解碼數(shù)據(jù)中推斷被選變換。按照本原理的又另一方面,提供了一種裝置。該裝置包括視頻編碼器,用于通過從一組兩個或多個可用變換中選擇一種應(yīng)用于畫面中的至少一塊的剩余部分的變換來編碼該至少一塊。該組變換是使用來自視頻序列中的一個或多個在先畫面的重構(gòu)數(shù)據(jù)來確定和精化(refinement)的至少一個。按照本原理的又另一方面,提供了一種裝置。該裝置包括視頻編碼器,用于通過從一組兩個或多個可用變換中選擇一種應(yīng)用于畫面中的至少一塊的剩余部分的變換來編碼該至少一塊。該組變換是從待用于所述塊編碼的數(shù)據(jù)中確定的。按照本原理的另一方面,提供了一種視頻編碼器中的方法。該方法包括通過從一組兩個或多個可用變換中選擇一種應(yīng)用于畫面中的至少一塊的剩余部分的變換來編碼該至少一塊。所述變換是基于以下中的至少一個而選擇的用于預(yù)測所述塊的至少一個參考的幀間預(yù)測模式,對應(yīng)于運動矢量的一個或多個值,一個或多個在先編碼塊的剩余部分的值,所述塊的預(yù)測數(shù)據(jù)的值,一個或多個相鄰重構(gòu)塊的一個或多個變換選擇,和應(yīng)用于所述塊的剩余部分的變換系數(shù)的量化步驟。按照本原理的又一方面,提供了一種視頻編碼器中的方法。該方法包括通過從一組兩個或多個可用變換中選擇一種應(yīng)用于畫面中的至少一塊的剩余部分的變換來編碼該至少一塊;和通過以下中的至少一種發(fā)送描述被選變換的信息使用一個或多個標(biāo)記顯性地發(fā)送所述信息,使用位流中的樹結(jié)構(gòu)發(fā)送所述信息,在與被選變換對應(yīng)的變換系數(shù)內(nèi)嵌入所述信息,和允許相應(yīng)解碼器從已解碼數(shù)據(jù)中推斷被選變換。按照本原理的又一方面,提供了一種視頻編碼器中的方法。該方法包括通過從一組兩個或多個可用變換中選擇一種應(yīng)用于畫面中的至少一塊的剩余部分的變換來編碼該至少一塊。該組變換是使用來自視頻序列中的一個或多個在先畫面的重構(gòu)數(shù)據(jù)來確定和精化中的至少一個。按照本原理的另外方面,提供了一種視頻編碼器中的方法。該方法包括確定一組一個或多個變換;并且通過從該組變換中選擇一種應(yīng)用于畫面中的至少一塊的剩余部分的變換來編碼該至少一塊。該組變換是從待用于所述塊編碼的數(shù)據(jù)中確定的。從下面結(jié)合附圖閱讀的示例性實施例的詳細(xì)描述中,本原理的這些和其它方面、 特征和優(yōu)點將變得明顯。
按照下列示例性附圖可以更好理解本原理,附圖中圖1是示出能夠按照MPEG-4 AVC標(biāo)準(zhǔn)進(jìn)行視頻編碼的視頻編碼器的方框圖;圖2是示出能夠按照MPEG-4 AVC標(biāo)準(zhǔn)進(jìn)行視頻解碼的視頻解碼器的方框圖;圖3是示出按照本原理實施例的利用應(yīng)用本原理的變換選擇的示例性視頻編碼器的方框圖;圖4是示出按照本原理實施例的利用應(yīng)用本原理的變換選擇的示例性視頻解碼器的方框圖;圖5是示出按照本原理實施例的視頻編碼器中用于變換選擇的示例性方法的流程圖;圖6是示出按照本原理實施例的視頻解碼器中用于變換選擇的示例性方法的流程圖;圖7是示出按照本原理實施例的視頻編碼器中用于變換選擇和傳送的示例性方法的流程圖;圖8是示出按照本原理實施例的視頻解碼器中用于變換傳送和選擇的示例性方法的流程圖;圖9是示出按照本原理實施例的視頻編碼器中用于變換選擇和傳送的另一示例性方法的流程圖;和圖10是示出按照本原理實施例的視頻解碼器中用于變換傳送和選擇的另一示例性方法的流程圖。
具體實施例方式本原理致力于視頻編碼中用于變換選擇的方法和裝置。本說明書圖示了本原理。因此,將要理解,本領(lǐng)域的技術(shù)人員能夠設(shè)想出盡管本文未顯性描述或示出,但體現(xiàn)本原理和包含在其精神和范疇之內(nèi)的各種布置。本文敘述的所有例子和條件語言是教學(xué)性的,旨在輔助讀者理解(多個)發(fā)明人為推動技術(shù)進(jìn)步而貢獻(xiàn)的原理和概念,并且應(yīng)當(dāng)理解為不局限于這樣具體敘述的例子和條件而且,本文敘述本原理的原理、方面和實施例、以及其特定示例的所有語句旨在涵蓋其結(jié)構(gòu)和功能兩者的等效物。另外,這樣的等效物旨在包括當(dāng)前已知的等效物、以及將來開發(fā)的等效物兩者,即,與結(jié)構(gòu)無關(guān),開發(fā)出來執(zhí)行相同功能的任何元件。因此,例如,本領(lǐng)域技術(shù)人員將會理解,本文給出的方框圖代表體現(xiàn)本原理的例示性電路的概念圖。類似地,將會理解,任何流程圖、流向圖、狀態(tài)轉(zhuǎn)移圖、偽碼等代表基本上可以表示在計算機(jī)可讀介質(zhì)中并因此可被計算機(jī)或處理器執(zhí)行的各種處理,無論這樣的計算機(jī)或處理器是否顯性示出。顯示在圖中的各種元件的功能可以通過使用專用硬件以及能夠與適當(dāng)軟件相關(guān)聯(lián)地執(zhí)行軟件的硬件來提供。當(dāng)由處理器提供時,這些功能可以由單個專用處理器,單個共享處理器,或其中一些可以共享的多個單獨處理器提供。此外,術(shù)語“處理器”或“控制器”的顯性使用不應(yīng)該理解為唯一地指代能夠執(zhí)行軟件的硬件,也可以不受限制地隱性包括數(shù)字信號處理器(“DSP”)硬件、存儲軟件的只讀存儲器(“ROM”)、隨機(jī)存取存儲器(“RAM”)、 和非易失性存儲設(shè)備。也可以包括常規(guī)的和/或定制的其它硬件。類似地,顯示在圖中的任何開關(guān)都只是概念性的。它們的功能可以通過程序邏輯運算,通過專用邏輯,通過程序控制和專用邏輯的交互,或甚至人工實現(xiàn),正如從上下文中更具體理解到的那樣,具體技術(shù)可由實現(xiàn)者選擇。在本文的權(quán)利要求書中,表達(dá)成執(zhí)行特定功能的部件的任何元件旨在包含執(zhí)行那種功能的任何方式,例如,包括a)執(zhí)行那種功能的電路元件的組合,或b)任何形式的軟件, 因此,包括固件、微碼等,與執(zhí)行那種軟件的適當(dāng)電路組合在一起來執(zhí)行那種功能。如這樣的權(quán)利要求書定義的本原理基于各種所述部件提供的功能以權(quán)利要求書要求的方式組合和聚集在一起的事實。因此,認(rèn)為可以提供那些功能的任何部件都等效于本文所示的那些部件。在說明書中提到本原理的“一個實施例”或“實施例”,以及其其它變體,意味著結(jié)合該實施例所描述的具體特征、結(jié)構(gòu)、特性等包括在本原理的至少一個實施例中。因此,出現(xiàn)在整個說明書的各個地方的短語“在一個實施例中”或“在實施例中”,以及任何其它變體的出現(xiàn)未必都指代相同實施例。而且,將要注意,本文相互交換地使用短語“實施例”和“實現(xiàn)方式”。此外,如本文中所使用的,詞語“畫面”和“圖像”得以相互交換地使用并且指代自視頻序列的靜止圖像或畫面。如所知的,畫面可以是一幀或一場。而且,如本文中所使用的,詞語“塊”指代任何塊大小的塊,包括超宏塊、宏塊、宏塊分割和子宏塊分割。同樣,如本文中所使用的,針對一組變換或一個變換的詞語“精化”是指從參考變換/變換組推導(dǎo)出一個變換/變換組所需的信息。通常,發(fā)送一個變換/變換組的“差異”(精化)的信息比發(fā)送從擦痕(scratch)推導(dǎo)出變換/變換組所需的所有信息更有效。另外,如本文中所使用的,短語“輔助信息”指代位流中必須包含的運送到在普通位流中沒有發(fā)現(xiàn)附加數(shù)據(jù)的解碼器的附加信息。例如,如果使用兩個變換來編碼一個塊,則必須用信號發(fā)送被選變換,使得解碼器得知要使用哪個逆變換。因此,編碼器可以包括1位的表示將要使用哪個逆變換的“輔助信息”。將要理解,如下“/”、“和/或”、和“至少一個”的任何一種的使用,例如,在“A/B”、 "A和/或B”、和“A和B的至少一個”的情況下,旨在包含只選擇第一列出選項(A),或只選擇第二列出選項(B),或選擇兩個選項(A和B)。作為進(jìn)一步的例子,在“A、B和/或C”和 “A、B和C的至少一個”的情況下,這樣的措詞旨在包含只選擇第一列出選項(A),或只選擇第二列出選項(B),或只選擇第三列出選項(C),或只選擇第一和第二列出選項(A和B),或只選擇第一和第三列出選項(A和C),或只選擇第二和第三列出選項(B和C),或選擇所有三個選項(A、B和C)。本領(lǐng)域及相關(guān)領(lǐng)域的普通技術(shù)人員容易明白,這可以推廣到許多列出項目。此外,將會理解,雖然本文如先進(jìn)于(且參考)MPEG-4 AVC標(biāo)準(zhǔn)來描述本原理的一個或多個實施例,但本原理不只局限于這種標(biāo)準(zhǔn),因此,可以在保持本原理精神的同時,針對其它視頻編碼標(biāo)準(zhǔn)、推薦標(biāo)準(zhǔn)、以及包括MPEG-4 AVC標(biāo)準(zhǔn)的擴(kuò)充的其擴(kuò)充來使用本原理。如上注釋的,本原理致力于視頻編碼中用于變換選擇的方法和裝置。意識到圖像和視頻內(nèi)容具有變化統(tǒng)計和屬性的數(shù)據(jù),我們也會意識到,如果可以對于每個塊使用數(shù)個變換,在選項范圍內(nèi)對每種形勢選擇最有利的變換,則存在將要實現(xiàn)的潛在壓縮獲益。在至少一個實施例中,我們建議優(yōu)化/設(shè)計一組變換給給定統(tǒng)計或圖案并且對于每個區(qū)域或每個塊從該組中選擇最佳變換。因此,我們提出更一般更廣泛的途徑,其包括現(xiàn)有技術(shù)中未考慮的替換物。按照本原理,我們描述使用一組變換(兩個或多個變換),隨后對每個區(qū)域、切片、塊或宏塊選擇該組的最佳變換來編碼圖像或視頻。該組變換可被最優(yōu)化或設(shè)計用于統(tǒng)計或圖像/視頻圖案的范圍。本原理也涉及如何選擇最佳變換和被選變換的適當(dāng)信令,使得圖像/視頻解碼器可以有效地恢復(fù)選擇信息。不必限制視頻編碼器和解碼器僅具有一種可能變換。在實施例中,我們建議視頻編碼器可以從對于每個塊、宏塊或區(qū)域的不同變換中進(jìn)行選擇以實現(xiàn)最佳性能。然后,在實施例中,我們將編碼器中的變換組與不損害潛在獲益的輕語法相結(jié)合。參考圖3,利用變換選擇的示例性視頻編碼器一般地用附圖標(biāo)號300表示。視頻編碼器300包括幀排序緩沖器310,其具有與組合器385的非反向輸入端進(jìn)行信號通信的輸出端。組合器385的輸出端與變換器和量化器1 325的輸入端、變換器和量化器2 3 的輸入端、以及變換器和量化器η 327的輸入端進(jìn)行信號通信連接。變換器和量化器1 325 的輸出端與變換選擇器3 的第一輸入端進(jìn)行信號通信連接。變換器和量化器2 3 的輸出端與變換選擇器3 的第二輸入端進(jìn)行信號通信連接。變換器和量化器η 327的輸出端與變換選擇器3 的第三輸入端進(jìn)行信號通信連接。變換選擇器3 的輸出端與熵編碼器 345的第一輸入端以及逆變換器和逆量化器350的第一輸入端進(jìn)行信號通信連接。熵編碼器345的輸出端與組合器390的第一非反向輸入端進(jìn)行信號通信連接。組合器390的輸出端與輸出緩沖器335的第一輸入端進(jìn)行信號通信連接。編碼器控制器305的第一輸出端與幀排序緩沖器310的第二輸入端、逆變換器和逆量化器350的第二輸入端、畫面型判定模塊315的輸入端、宏塊型(MB型)判定模塊320 的第一輸入端、幀內(nèi)預(yù)測模塊360的第二輸入端、去塊濾波器365的第二輸入端、運動補(bǔ)償器370的第一輸入端、運動估計器375的第一輸入端以及參考畫面緩沖器380的第二輸入端進(jìn)行信號通信連接。編碼器控制器305的第二輸出端與補(bǔ)充增強(qiáng)信息(SEI)插入器330的第一輸入端、熵編碼器345的第二輸入端、輸出緩沖器335的第二輸入端以及序列參數(shù)組(SPQ和畫面參數(shù)組(PPQ插入器340的輸入端進(jìn)行信號通信連接。SEI插入器330的輸出端與組合器390的第二非反向輸入端進(jìn)行信號通信連接。
畫面型判定模塊315的第一輸出端與幀排序緩沖器310的第三輸入端進(jìn)行信號通信連接。畫面型判定模塊315的第二輸出端與宏塊型判定模塊320的第二輸入端進(jìn)行信號通信連接。序列參數(shù)組(SPQ和畫面參數(shù)組(PPQ插入器340的輸出端與組合器390的第三非反向輸入端進(jìn)行信號通信連接。逆量化器和逆變換器350的輸出端與組合器319的第一非反向輸入端進(jìn)行信號通信連接。組合器319的輸出端與幀內(nèi)預(yù)測模塊360的第一輸入端和去塊濾波器365的第一輸入端進(jìn)行信號通信連接。去塊濾波器365的輸出端與參考畫面緩沖器380的第一輸入端進(jìn)行信號通信連接。參考畫面緩沖器380的輸出端與運動估計器375的第二輸入端和運動補(bǔ)償器370的第三輸入端進(jìn)行信號通信連接。運動估計器375的第一輸出端與運動補(bǔ)償器 370的第二輸入端進(jìn)行信號通信連接。運動估計器375的第二輸出端與熵編碼器345的第三輸入端進(jìn)行信號通信連接。運動補(bǔ)償器370的輸出端與開關(guān)397的第一輸入端進(jìn)行信號通信連接。幀內(nèi)預(yù)測模塊360的輸出端與開關(guān)397的第二輸入端進(jìn)行信號通信連接。宏塊型判定模塊320的輸出端與開關(guān)397的第三輸入端進(jìn)行信號通信連接。開關(guān)397的第三輸入端確定開關(guān)的“數(shù)據(jù)”輸入端(與控制輸入端相比較,即,第三輸入端)是否將由運動補(bǔ)償器370或幀內(nèi)預(yù)測模塊360提供。開關(guān)397的輸出端與組合器319的第二非反向輸入端和組合器385的反向輸入端進(jìn)行信號通信連接。幀排序緩沖器310的第一輸入端和編碼器控制器305的輸入端可用作編碼器300 的用于接收輸入畫面的輸入端。而且,補(bǔ)充增強(qiáng)信息(SEI)插入器330的第二輸入端可用作編碼器300的用于接收元數(shù)據(jù)的輸入端。輸出緩沖器335的輸出端可用作編碼器300的用于輸出位流的輸出端。在一個實施例中,視頻編碼器300從一組η個變換中選擇最佳變換,并且發(fā)送被選變換的輔助信息。然后,對于該被選變換(用i表示)進(jìn)行逆變換。在該實施例中,所述變換是離線推導(dǎo)出的并且在編碼器和解碼器處可用。在一個實施例中,改變/修改熵編碼器 345進(jìn)行的熵編碼以便適應(yīng)正使用什么變換的附加信息,并且也因為每個變換可能需要不同的熵編碼(不同的掃描順序,不同的環(huán)境,等等)。參考圖4,利用變換選擇的示例性視頻解碼器一般地用附圖標(biāo)號400表示。視頻解碼器400包括輸入緩沖器410,其具有與熵解碼器445的第一輸入端進(jìn)行信號通信連接的輸出端。熵解碼器445的第一輸出端與逆變換器和逆量化器i 450的第一輸入端進(jìn)行信號通信連接。逆變換器和逆量化器i 450的輸出端與組合器425的第二非反向輸入端進(jìn)行信號通信連接。組合器425的輸出端與去塊濾波器465的第二輸入端和幀內(nèi)預(yù)測模塊460的第一輸入端進(jìn)行信號通信連接。去塊濾波器465的第二輸出端與參考畫面緩沖器480的第一輸入端進(jìn)行信號通信連接。參考畫面緩沖器480的輸出端與運動補(bǔ)償器470的第二輸入端進(jìn)行信號通信連接。熵解碼器445的第二輸出端與運動補(bǔ)償器470的第三輸入端以及去塊濾波器465 的第一輸入端進(jìn)行信號通信連接。熵解碼器445的第三輸出端與解碼器控制器405的輸入端進(jìn)行信號通信連接。解碼器控制器405的第一輸出端與熵解碼器445的第二輸入端進(jìn)行信號通信連接。解碼器控制器405的第二輸出端與逆變換器和逆量化器i 450的第二輸入端進(jìn)行信號通信連接。解碼器控制器405的第三輸出端與去塊濾波器465的第三輸入端進(jìn)行信號通信連接。解碼器控制器405的第四輸出端與幀內(nèi)預(yù)測模塊460的第二輸入端、運動補(bǔ)償器470的第一輸入端和參考畫面緩沖器480的第二輸入端進(jìn)行信號通信連接。運動補(bǔ)償器470的輸出端與開關(guān)497的第一輸入端進(jìn)行信號通信連接。幀內(nèi)預(yù)測模塊460的輸出端與開關(guān)497的第二輸入端進(jìn)行信號通信連接。開關(guān)497的輸出端與組合器425的第一非反向輸入端進(jìn)行信號通信連接。輸入緩沖器410的輸入端可用作解碼器400的用于接收輸入位流的輸入端。去塊濾波器465的第一輸出端可用作解碼器400的用于輸出輸出畫面的輸出端。當(dāng)待編碼的數(shù)據(jù)可用或者存在大量訓(xùn)練數(shù)據(jù)集時,存在技術(shù)來推導(dǎo)出最佳變換組。例如,數(shù)個序列的訓(xùn)練集可能是可得到的,并且這些技術(shù)可以提供分割數(shù)據(jù)空間的一組變換使得每個變換對其數(shù)據(jù)部分是最佳的。然后,給定一個塊,編碼器必須確定該塊所屬的數(shù)據(jù)的類型并且使用適當(dāng)?shù)淖儞Q。推導(dǎo)出一組變換的這些技術(shù)可以基于普通KLT、稀疏目標(biāo)功能、和/或本領(lǐng)域和相關(guān)領(lǐng)域的普通技術(shù)人員已知或容易推導(dǎo)出的技術(shù)。假設(shè)我們具有這樣可用的技術(shù),我們現(xiàn)在解決如何以有效方式使用該組變換,也就是,如何選擇最佳變換和如何將信息從編碼器有效地傳送到解碼器。確定變換組現(xiàn)在我們解釋如何確定所使用的變換組。在一個實施例中,采用一組序列作為訓(xùn)練數(shù)據(jù)離線推導(dǎo)該變換組。如所提到的,一旦形成良好的訓(xùn)練組,就可以使用基于KLT的、基于稀疏性的能量壓縮或其它方法來推導(dǎo)該變換組。存在基于變換組的現(xiàn)有設(shè)計標(biāo)準(zhǔn)(方向性、頻率等)推導(dǎo)變換的方法。而且,上述第四種現(xiàn)有技術(shù)途徑提出了利用代數(shù)優(yōu)化處理基于訓(xùn)練數(shù)據(jù)的離線優(yōu)化。該處理通過旨在獲得給定數(shù)據(jù)的合適變換組的成本函數(shù)來驅(qū)動。成本函數(shù)包括符合壓縮目的的兩項。該算法嘗試最小化重構(gòu)差錯項,同時最大化與變換系數(shù)表示的稀疏性相關(guān)的項。在原理上,越稀疏表示越少的位速率來傳送系數(shù)的信息。我們也提出一種解決上面引用的現(xiàn)有技術(shù)途徑的至少兩個不足的途徑。首先,我們明確提出一個平衡成本函數(shù)的兩個項的權(quán)重。第二且更重要的是,我們建議推導(dǎo)最佳垂直和水平變換,而不是單個2-D不可分離變換。盡管我們的途徑結(jié)合了兩個方向的聯(lián)合優(yōu)化,但是針對實踐應(yīng)用重要的優(yōu)點在于,一組可分離變換的計算復(fù)雜性和存儲需求比一組不可分離變換的需求低得多。同時,允許垂直和水平方向上的變換不同使得圖像和視頻塊的豐富的捕獲優(yōu)于具有兩個方向的單個內(nèi)核(kernel)。注意,當(dāng)我們提及“變換組”時,這些變換的每一個可能是不可分離的或者可分離的。如果它們是可分離的,則每個方向(垂直/水平)可能相同或不同。在另一個實施例中,可以選擇變換族的子集,因此該子集具有良好屬性以便編碼輸入數(shù)據(jù)。例如,可以對要編碼的視頻數(shù)據(jù)確定WDCT的子集。而且,可以確定折疊(lapped) 變換的子集。一旦固定了子集,則編碼器僅需要傳送使用了族子集內(nèi)的什么變換的信息。在另一個實施例中,根據(jù)重構(gòu)視頻的質(zhì)量來選擇變換的子集。輸出的質(zhì)量可以通過編碼器的量化步驟、量化參數(shù)(QP)、目標(biāo)位速率、PSNR和/或表示期望輸出視頻質(zhì)量的度量的任何參數(shù)來確定。在另一個實施例中,從已被編碼的數(shù)據(jù)在線推導(dǎo)變換組。該實施例的兩個示例性實現(xiàn)方式提供如下。在一個示例性實現(xiàn)方式中,在先幀的重構(gòu)數(shù)據(jù)被用作訓(xùn)練組以便利用可用方法的任何一種來推導(dǎo)變換組。在另一種示例性實現(xiàn)方式中,重構(gòu)數(shù)據(jù)被用來精化正被使用的變換,因此在線更新變換以便匹配正進(jìn)行的數(shù)據(jù)統(tǒng)計。在另一個實施例中,從待編碼的數(shù)據(jù)推導(dǎo)變換組。待編碼的這種數(shù)據(jù)包括但不限于從要編碼的后來幀抽取的原始幀或統(tǒng)計。因此,編碼器分析序列或者序列的下一部分以便利用可用方法的任何一種編碼和確定要使用的最佳變換組或者選擇要使用的最佳變換族。在這種情況下,編碼器需要將正要使用的變換組作為輔助信息進(jìn)行發(fā)送。本實施例的數(shù)個示例性實現(xiàn)方式提供如下。在第一個示例性實現(xiàn)方式中,編碼器發(fā)現(xiàn)最佳變換組并且發(fā)送所有要使用的變換。在第二個示例性實施例中,編碼器發(fā)現(xiàn)要使用的最佳變換組,并且解碼器試圖從在先解碼數(shù)據(jù)推導(dǎo)最佳組,使得編碼器僅需要發(fā)送解碼器推導(dǎo)的變換的精化 (使得在編碼器和解碼器之間沒有錯誤或失配)。在第三個示例性實現(xiàn)方式中,編碼器從各種變換組(在編碼器和解碼器兩者處可用)選擇要使用的最佳組,并且將該特殊組用信號發(fā)送到解碼器。在第四種實現(xiàn)方式中,編碼器從最適于數(shù)據(jù)的變換族中發(fā)現(xiàn)特定變換組。然后,編碼器向解碼器傳送已被選擇的變換族的特定子集。傳送被詵變換現(xiàn)在我們描述如何對解碼器表示被選變換使得編碼器和解碼相匹配。在一個實施例中,編碼器可以利用在切片、宏塊或塊級別包含在語法中的標(biāo)記將被選變換發(fā)送到解碼器。在一個實施例中,在編碼器處,利用比率失真成本函數(shù)來確定每個塊的最佳變換。在另一個實施例中,利用針對幀中的不同區(qū)域允許顯性并靈活規(guī)定被選變換的四重樹或其它類型的樹來傳送被選變換。這樣,變換的區(qū)域可能比先前實施例的簡單塊形狀更任意。在另一個實施例中,可以通過將標(biāo)記隱藏在變換系數(shù)本身內(nèi)(表示將要使用哪個變換)來發(fā)送被選變換。下面解釋這種替換的可能實施例。假設(shè)在該組變換中僅有兩種變換。然后,如果選擇變換1,則編碼器強(qiáng)制變換系數(shù)之和為偶數(shù)。如果選擇變換2,則編碼器強(qiáng)制變換系數(shù)之和為奇數(shù)。在解碼器處,變換系數(shù)得以恢復(fù)并且它們和的奇偶校驗被計算。 如果該奇偶校驗是偶數(shù),則要應(yīng)用的逆變換是變換1的逆變換。如果該奇偶校驗是奇數(shù),則要應(yīng)用的逆變換是變換2的逆變換。這樣,標(biāo)記可被隱藏在變換系數(shù)中,并且在解碼器側(cè)是可恢復(fù)的,因此編碼器和解碼器兩者同步。明顯地,在系數(shù)中隱藏標(biāo)記不限于具有兩種變換。這樣的技術(shù)可以直接擴(kuò)展到任何數(shù)量的變換。在另一個實施例中,不發(fā)送被選變換的顯性信息。在這種情況下,它可以從已經(jīng)解碼的數(shù)據(jù)中進(jìn)行推導(dǎo)。該信息必須在編碼器和解碼器兩者處可獲得,并且從數(shù)據(jù)中提取被選變換的方式在兩者中必須相同,使得它們同步。存在從中可以選擇變換的各種各樣的信息。下面,提供這種隱性信令的5個具體實施例。當(dāng)然,本原理不限于下列與隱性信令相關(guān)的實施例,給定本文中提供的本原理的教導(dǎo),本領(lǐng)域和相關(guān)領(lǐng)域的普通技術(shù)人員將設(shè)想這些和其它實現(xiàn)方式,同時維持本原理的精神。在第一個實施例中,使用被采用的幀間預(yù)測模式來隱性地用信號發(fā)送變換。在本實施例的一種實現(xiàn)方式中,如果它是直接模式,則使用變換1。否則,使用變換2。在第二個實施例中,使用運動矢量來隱性地用信號發(fā)送變換。待使用的變換可以取決于塊的運動矢量(它的大小、方向、參考畫面等等)。在第三個實施例中,變換取決于在先編碼塊的剩余部分。然后,在先編碼塊的剩余部分的統(tǒng)計確定使用該組內(nèi)的什么變換。在第四個實施例中,變換選擇取決于塊的預(yù)測數(shù)據(jù)。在剩余部分和預(yù)測數(shù)據(jù)之間存在在最佳變換的選擇中可以利用的某些相關(guān)性。例如,如果預(yù)測具有方向性分量,則該方向性在剩余部分中通常也是顯而易見的。然后,對于給定方向使用方向性變換會得到更好的性能,因為方向性變換可以以非方向性變換不能的方式利用剩余部分的方向性分量。在第五個實施例中,變換選擇可以取決于可在編碼器和解碼器兩者處獲得的相鄰重構(gòu)塊的變換選擇。SS本原理可認(rèn)為包括兩部分,S卩,對于每個特殊塊如何選擇變換組和如何傳送所述組內(nèi)的被選變換。對于這兩部分的每一個提出了幾種替換方式。所提出的途徑可以組合針對每個部分提出的替換方式的任何一種。而且,注意,每個變換可能需要它的特殊量化處理、以及熵編碼之前系數(shù)的不同掃描順序。而且,每個掃描順序可以自適應(yīng)于每個變換的統(tǒng)計而完成。在一個實施例中,每個變換的掃描順序可以自適應(yīng)于特殊系數(shù)位置已經(jīng)被在先編碼為重要的次數(shù)。本原理考慮下列變換擴(kuò)展變換的量化處理;變換的掃描順序;和該掃描順序的潛在自適應(yīng)性。參考圖5,視頻編碼器中用于變換選擇的示例性方法一般地用附圖標(biāo)號500來表示。方法500包括將控制傳遞到功能塊510的起始塊505。功能塊510接收用于編碼的視頻序列,開始編碼該視頻序列,并且將控制傳遞到功能塊515。功能塊515確定訓(xùn)練數(shù)據(jù)、每組代表各個變換族的一組或多組變換、已編碼數(shù)據(jù)和待編碼數(shù)據(jù)中的一個或多個,并且將控制傳遞到功能塊520。功能塊520根據(jù)訓(xùn)練數(shù)據(jù)、每子集代表變換族的各個部分的一個或多個變換子集、已編碼數(shù)據(jù)和待編碼數(shù)據(jù)中的一個或多個來選擇變換i,并且將控制傳遞到功能塊525。功能塊525使用被選變換i進(jìn)行變換,并且對于視頻序列畫面中的塊對塊剩余數(shù)據(jù)進(jìn)行量化,并且將控制傳遞到功能塊530。功能塊530輸出量化系數(shù),并且將控制傳遞到結(jié)束塊599。將會理解,訓(xùn)練數(shù)據(jù)以及一組或多組變換中的一個或多個可以在線地(即,視頻序列編碼期間)或者離線地(例如,在編碼視頻序列之前)確定。參考圖6,視頻解碼器中用于變換選擇的示例性方法一般地用附圖標(biāo)號600來表示。方法600包括將控制傳遞到功能塊610的起始塊605。功能塊610接收用于解碼的位流,開始解碼該位流,并且將控制傳遞到功能塊615。功能塊615確定訓(xùn)練數(shù)據(jù)、每組代表各個變換族的一組或多組變換、已編碼數(shù)據(jù)和待編碼數(shù)據(jù)中的一個或多個,并且將控制傳遞到功能塊620。功能塊620根據(jù)訓(xùn)練數(shù)據(jù)、每子集代表變換族的相應(yīng)部分的一個或多個變換子集、已編碼數(shù)據(jù)和待編碼數(shù)據(jù)中的一個或多個來選擇變換i,并且將控制傳遞到功能塊 625。功能塊625使用被選變換i逆變換和逆量化針對視頻序列畫面中的塊的量化系數(shù),并且將控制傳遞到功能塊630。功能塊630輸出塊剩余數(shù)據(jù),并且將控制傳遞到結(jié)束塊699。將會理解,訓(xùn)練數(shù)據(jù)以及一組或多組變換中的一個或多個可以在線地(即,視頻序列解碼期間)或者離線地(例如,在解碼視頻序列之前)確定。參考圖7,視頻編碼器中用于變換選擇和傳送的示例性方法一般地用附圖標(biāo)號700來表示。方法700包括將控制傳遞到功能塊710的起始塊705。功能塊710接收用于編碼的輸入幀,并且將控制傳遞到功能塊715。功能塊715訓(xùn)練一組或多組變換,并且將控制傳遞到功能塊765和循環(huán)限制塊720。功能塊765輸出將要在幀中使用的該組變換,并且將控制傳遞到功能塊770。循環(huán)限制塊720對輸入幀上的塊進(jìn)行循環(huán),并且將控制傳遞到功能塊725。功能塊725得到塊剩余部分,并且將控制傳遞到循環(huán)限制塊730。循環(huán)限制塊 730對一組或多組變換進(jìn)行循環(huán),并且將控制傳遞到功能塊735。功能塊735針對一組或多組變換中的變換進(jìn)行比率失真分析,并且將控制傳遞到循環(huán)限制塊740。循環(huán)限制塊740結(jié)束對變換的循環(huán),并且將控制傳遞到功能塊745。功能塊745確定當(dāng)前塊的最佳變換,并且將控制傳遞到循環(huán)限制塊750。循環(huán)限制塊750結(jié)束對塊的循環(huán),并且將控制傳遞到功能塊755和功能塊760。功能塊755輸出每個塊的量化系數(shù),并且將控制傳遞到功能塊770。 功能塊760輸出每個塊的被選變換,并且將控制傳遞到功能塊770。功能塊770發(fā)送量化系數(shù)、將要在幀中使用的該組變換(或該組的精化)以及對該幀中的每個塊的被選變換,將要在幀中使用的該組變換(或該組的精化)和/或?qū)υ搸械拿總€塊的被選變換被顯性地或隱性地發(fā)送,并且將控制傳遞到結(jié)束塊799。將會理解,針對功能塊770,在將要在幀中使用的該組變換(或該組的精化)和/或?qū)υ搸械拿總€塊的被選變換被隱性地發(fā)送的情況下,代替實際變換,可以發(fā)送表示將要在幀中使用的該組變換(或該組的精化)和/或?qū)υ搸械拿總€塊的被選變換的信息。在這種情況下,解碼器隨后可以從隱性信息中推導(dǎo)出所述變換。而且,針對位流,將要在幀中使用的該組變換(或該組的精化)、對該幀中的每個塊的被選變換、和/或表示先前中的至少一個的信息可以作為輔助信息發(fā)送。另外,使用一個或多個標(biāo)記和/或語法元素可以發(fā)送將要在幀中使用的該組變換(或該組的精化)、對該幀中的每個塊的被選變換、和/或表示先前中的至少一個的信息。參考圖8,視頻解碼器中用于變換傳送和選擇的示例性方法一般地用附圖標(biāo)號 800來表示。方法800包括將控制傳遞到功能塊810、功能塊815和功能塊820的起始塊 805。功能塊810顯性地或隱性地接收將用于待解碼的當(dāng)前幀的一組變換或者該組的精化, 并且將控制傳遞到功能塊830。功能塊815接收對當(dāng)前幀中的每個塊的量化系數(shù),并且將控制傳遞到循環(huán)限制塊825。功能塊820顯性地或者隱性地接收對當(dāng)前幀中的每個塊的被選變換,并且將控制傳遞到功能塊830。循環(huán)限制塊825對當(dāng)前幀中的塊進(jìn)行循環(huán),并且將控制傳遞到功能塊830。功能塊830確定當(dāng)前塊的逆變換,并且將控制傳遞到功能塊835。功能塊835應(yīng)用對該塊所確定的逆變換,并且將控制傳遞到循環(huán)限制塊840。循環(huán)限制塊840 結(jié)束循環(huán),并且將控制傳遞到功能塊845。功能塊845輸出每個塊的塊剩余部分,并且將控制傳遞到結(jié)束塊899。將會理解,針對功能塊810和820,在將要在幀中使用的該組變換(或該組的精化)和/或?qū)υ搸械拿總€塊的被選變換被隱性地發(fā)送的情況下,代替實際變換,可以接收表示將要在幀中使用的該組變換(或該組的精化)和/或?qū)υ搸械拿總€塊的被選變換的信息。在這種情況下,解碼器隨后可以從隱性信息中推導(dǎo)出變換(例如通過功能塊830)。 而且,針對位流,將要在幀中使用的該組變換(或該組的精化)、對該幀中的每個塊的被選變換、和/或表示先前中的至少一個的信息可以作為輔助信息接收。參考圖9,視頻編碼器中用于變換選擇和傳送的另一示例性方法一般地用附圖標(biāo)號900來表示。方法900包括將控制傳遞到功能塊910的起始塊905。功能塊910輸入待編碼的幀,并且將控制傳遞到功能塊915。功能塊915訓(xùn)練一組或多組變換,并且將控制傳遞到功能塊970和循環(huán)限制塊920。循環(huán)限制塊920對幀中的塊進(jìn)行循環(huán),并且將控制傳遞到功能塊925。功能塊925得到當(dāng)前塊的塊剩余部分,并且將控制傳遞到循環(huán)限制塊930。 循環(huán)限制塊930對一組或多組變換進(jìn)行循環(huán),并且將控制傳遞到功能塊935。功能塊935 變換和量化當(dāng)前塊的系數(shù),并且將控制傳遞到功能塊940。功能塊940將標(biāo)記嵌入系數(shù)中, 并且將控制傳遞到功能塊945。功能塊945進(jìn)行比率失真(RD)分析,并且將控制傳遞到循環(huán)限制塊950。循環(huán)限制塊950結(jié)束對變換的循環(huán),并且將控制傳遞到功能塊955。功能塊 955確定當(dāng)前塊的最佳變換,并且將控制傳遞到功能塊960。功能塊960輸出每個塊的量化系數(shù),并且將控制傳遞到循環(huán)限制塊965。循環(huán)限制塊結(jié)束對塊的循環(huán),并且將控制傳遞到結(jié)束塊999。參考圖10,視頻解碼器中用于變換傳送和選擇的另一示例性方法一般地用附圖標(biāo)號1000來表示。方法1000包括將控制傳遞到功能塊1010和循環(huán)限制塊1015的起始塊 1005。功能塊1010顯性地或隱性地接收將用于待解碼的當(dāng)前幀的一組變換,并且將控制傳遞到功能塊1030。循環(huán)限制塊1015對當(dāng)前幀中的塊進(jìn)行循環(huán),并且將控制傳遞到功能塊 1020。功能塊1020接收當(dāng)前幀中的每個塊的量化系數(shù),并且將控制傳遞到功能塊1025。功能塊1025從系數(shù)中提取嵌入標(biāo)記,并且將控制傳遞到功能塊1030。功能塊1030根據(jù)(多個)嵌入標(biāo)記確定應(yīng)用于當(dāng)前塊的逆變換,并且將控制傳遞到功能塊1035。功能塊1035使用所確定的逆變換對塊進(jìn)行逆變換,并且將控制傳遞到功能塊1040。功能塊1040輸出塊剩余部分,并且將控制傳遞到循環(huán)限制塊1045。循環(huán)限制塊1045結(jié)束循環(huán),并且將控制傳遞到結(jié)束塊1099?,F(xiàn)在將給出本發(fā)明的許多隨附優(yōu)點/特征的一些的描述,其中一些優(yōu)點/特征已在上面提到。例如,一個優(yōu)點/特征是具有用于通過從一組兩個或多個可用變換中選擇一種應(yīng)用于畫面中的至少一塊的剩余部分的變換來編碼該至少一塊的視頻編碼器的裝置。所述變換是基于以下中的至少一個來選擇的用于預(yù)測所述塊的至少一個參考的幀間預(yù)測模式,對應(yīng)于運動矢量的一個或多個值,一個或多個在先編碼塊的剩余部分的值,所述塊的預(yù)測數(shù)據(jù)的值,一個或多個相鄰重構(gòu)塊的一個或多個變換選擇,和應(yīng)用于所述塊的剩余部分的變換系數(shù)的量化步驟。另一優(yōu)點/特征是具有如上所描述的編碼器的裝置,其中該組變換是離線確定的。再另一優(yōu)點/特征是具有如上所描述的其中該組變換是離線確定的編碼器的裝置,其中該組變換是使用訓(xùn)練數(shù)據(jù)和通過選擇變換族的子集的至少一個來確定的。另一優(yōu)點/特征是具有如上所描述的編碼器的裝置,其中該組中的變換是可分離的或者不可分離中的任何一個,并且當(dāng)所述變換是可分離的時候,該變換的水平和垂直方向可能不同。又另一優(yōu)點/特征是具有用于通過從一組兩個或多個可用變換中選擇一種應(yīng)用于畫面中的至少一塊的剩余部分的變換來編碼該至少一塊的視頻編碼器的裝置。所述視頻編碼器通過下列中的至少一個發(fā)送描述被選變換的信息使用一個或多個標(biāo)記顯性地發(fā)送所述信息,使用位流中的樹結(jié)構(gòu)發(fā)送所述信息,將所述信息嵌入在與被選變換對應(yīng)的變換系數(shù)內(nèi),以及允許相應(yīng)解碼器從已解碼數(shù)據(jù)推斷被選變換。
而且,另一優(yōu)點/特征是具有如上所描述的視頻編碼器的裝置,其中該變換組是使用訓(xùn)練數(shù)據(jù)和通過選擇變換族的子集的至少一個確定的。再者,另一優(yōu)點/特征是具有用于通過從一組兩個或多個可用變換中選擇一種應(yīng)用于視頻序列畫面中的至少一塊的剩余部分的變換來編碼該至少一塊的視頻編碼器的裝置。該變換組是使用來自視頻序列中的一個或多個在先畫面的重構(gòu)數(shù)據(jù)被確定和被精化中的至少一個。而且,另一優(yōu)點/特征是具有用于通過從一組兩個或多個可用變換中選擇一種應(yīng)用于畫面中的至少一塊的剩余部分的變換來編碼該至少一塊的視頻編碼器的裝置。該變換組是從將要對所述塊編碼的數(shù)據(jù)中確定的。另外,另一優(yōu)點/特征是具有如上所描述的視頻編碼器的裝置,其中所述視頻編碼器確定該變換組,并且將該變換組作為邊消息發(fā)送到相應(yīng)解碼器。而且,另一優(yōu)點/特征是具有如上所描述的視頻編碼器的裝置,其中所述視頻編碼器確定變換組,確定對該變換組的精化,允許相應(yīng)解碼器從所述精化以及從在先解碼數(shù)據(jù)預(yù)測所述變換組,以便推導(dǎo)相同變換組作為所述視頻編碼器,并且將所述精化發(fā)送到相應(yīng)解碼器。另外,另一優(yōu)點/特征是具有如上所描述的視頻編碼器的裝置,其中所述視頻編碼器從多個變換組中確定該變換組,并且將該變換組作為邊消息進(jìn)行發(fā)送。而且,另一優(yōu)點/特征是具有如上所描述的視頻編碼器的裝置,其中所述視頻編碼器從變換族中確定變換組,該變換組表示所述變換族的子集,并且其中所述視頻編碼器僅發(fā)送所述變換族的子集。相關(guān)領(lǐng)域的普通技術(shù)人員可以根據(jù)本文的教導(dǎo)容易地弄清本原理的這些和其它特征和優(yōu)點。將要理解,本原理的教導(dǎo)可以以硬件、軟件、固件、專用處理器或它們的組合體的各種形式實現(xiàn)。更優(yōu)選的是,將本原理的教導(dǎo)實現(xiàn)成硬件和軟件的組合體。此外,軟件可以實現(xiàn)成有形地具體化在程序存儲單元上的應(yīng)用程序。應(yīng)用程序可以上載到包含任何適當(dāng)結(jié)構(gòu)的機(jī)器,并由該機(jī)器執(zhí)行。優(yōu)選的是,機(jī)器是在具有諸如一個或多個中央處理單元(“CPU”)、隨機(jī)存取存儲器(“RAM”)、和輸入/輸出(“I/O”)接口之類的硬件的計算機(jī)平臺上實現(xiàn)的。 計算機(jī)平臺也可以包括操作系統(tǒng)和微指令代碼。本文所述的各種處理和功能可以是可以由 CPU執(zhí)行的微指令代碼的一部分或應(yīng)用程序的一部分,或其任何組合。另外,諸如附加數(shù)據(jù)存儲單元和打印單元之類的各種外圍單元可以與計算機(jī)平臺連接。將要進(jìn)一步理解,由于描繪在附圖中的組成系統(tǒng)部件和方法的一些優(yōu)選用軟件實現(xiàn),因此,取決于編程本原理的方式,系統(tǒng)部件或處理功能塊之間的實際連接可能不同。在本文的教導(dǎo)下,相關(guān)領(lǐng)域的普通技術(shù)人員將能夠設(shè)想出本原理的這些和類似實現(xiàn)方式或配置。盡管本文已經(jīng)參考附圖描述了例示性實施例,但是將要理解,本原理不限于那些精確的實施例,并且在不背離本原理的范圍或精神的情況下,相關(guān)領(lǐng)域的普通技術(shù)人員可以在其中做出各種變化和修改。所有這種變化和修改意欲包含在如所附權(quán)利要求中闡述的本原理的范圍之內(nèi)。
權(quán)利要求
1.一種裝置,包括視頻編碼器(300),用于通過從一組兩個或多個變換中選擇一種應(yīng)用于畫面中的至少一塊的剩余部分的變換來編碼該至少一塊,其中所述變換是響應(yīng)于以下中的至少一個而選擇的 (i)用于預(yù)測所述塊的至少一個參考的幀間預(yù)測模式, ( )對應(yīng)于運動矢量的一個或多個值,(iii)一個或多個在先編碼塊的剩余部分的值,(iv)所述塊的預(yù)測數(shù)據(jù)的值,(ν) 一個或多個相鄰重構(gòu)塊的一個或多個變換選擇,和 (vi)應(yīng)用于所述塊的剩余部分的變換系數(shù)的量化步驟。
2.如權(quán)利要求1所述的裝置,其中,該組變換是離線確定的。
3.如權(quán)利要求2所述的裝置,其中,該組變換是通過下列中的至少一個確定的 (i)使用訓(xùn)練數(shù)據(jù),和( )選擇變換族的子集。
4.如權(quán)利要求1所述的裝置,其中,該組中的變換是可分離的或者不可分離中的任何一個,并且當(dāng)所述變換是可分離的時候,該變換的水平和垂直方向能夠不同。
5.如權(quán)利要求1所述的裝置,其中,僅對于大于閾值塊大小的塊大小顯性地用信號發(fā)送描述被選變換的信息。
6.如權(quán)利要求1所述的裝置,其中,當(dāng)塊大小小于閾值塊大小時,在所述變換的系數(shù)中嵌入描述被選變換的標(biāo)記。
7.一種視頻編碼器中的方法,包括通過從一組兩個或多個變換中選擇(520) —種應(yīng)用于畫面中的至少一塊的剩余部分的變換來編碼(510)該至少一塊,其中所述變換是響應(yīng)于以下中的至少一個而選擇的 (i)用于預(yù)測所述塊的至少一個參考的幀間預(yù)測模式, ( )對應(yīng)于運動矢量的一個或多個值,(iii)一個或多個在先編碼塊的剩余部分的值,(iv)所述塊的預(yù)測數(shù)據(jù)的值,(ν) 一個或多個相鄰重構(gòu)塊的一個或多個變換選擇,和 (vi)應(yīng)用于所述塊的剩余部分的變換系數(shù)的量化步驟(520)。
8.如權(quán)利要求7所述的方法,還包括確定該組變換是離線確定的。
9.如權(quán)利要求8所述的方法,其中,該組變換是通過下列中的至少一個確定的 ⑴使用訓(xùn)練數(shù)據(jù)(515),和( )選擇變換族的子集(520)。
10.如權(quán)利要求7所述的方法,其中,該組中的變換是可分離的或者不可分離中的任何一個,并且當(dāng)所述變換是可分離的時候,該變換的水平和垂直方向能夠不同。
11.如權(quán)利要求7所述的方法,其中,僅對于大于閾值塊大小的塊大小顯性地用信號發(fā)送描述被選變換的信息。
12.如權(quán)利要求7所述的方法,其中,當(dāng)塊大小小于閾值塊大小時,在所述變換的系數(shù)中嵌入描述被選變換的標(biāo)記。
13.如權(quán)利要求7所述的裝置,其中,僅對于大于閾值塊大小的塊大小顯性地用信號發(fā)送描述被選變換的信息。
14.如權(quán)利要求7所述的裝置,其中,當(dāng)塊大小小于閾值塊大小時,在所述變換的系數(shù)中嵌入描述被選變換的標(biāo)記。
15.一種裝置,包括視頻解碼器G00),用于通過從一組兩個或多個逆變換中確定一種應(yīng)用于畫面中的至少一塊的量化系數(shù)的逆變換來解碼該至少一塊,其中所述逆變換是響應(yīng)于以下中的至少一個而確定的 (i)用于預(yù)測所述塊的至少一個參考的幀間預(yù)測模式, ( )對應(yīng)于運動矢量的一個或多個值,(iii)一個或多個在先編碼塊的剩余部分的值,(iv)所述塊的預(yù)測數(shù)據(jù)的值,和(ν) 一個或多個相鄰重構(gòu)塊的一個或多個逆變換選擇。
16.一種視頻解碼器中的方法,包括通過從一組兩個或多個逆變換中確定(615,620) —種應(yīng)用于畫面中的至少一塊的量化系數(shù)的逆變換來解碼(610)該至少一塊,其中所述逆變換是響應(yīng)于以下中的至少一個而確定的 (i)用于預(yù)測所述塊的至少一個參考的幀間預(yù)測模式, ( )對應(yīng)于運動矢量的一個或多個值,(iii)一個或多個在先編碼塊的剩余部分的值,(iv)所述塊的預(yù)測數(shù)據(jù)的值,和(ν) 一個或多個相鄰重構(gòu)塊的一個或多個逆變換選擇。
17.一種存儲媒體,具有在其上編碼的視頻信號數(shù)據(jù),包括與通過從一組兩個或多個變換中選擇一種應(yīng)用于畫面中的至少一塊的剩余部分的變換而編碼的該至少一塊對應(yīng)的數(shù)據(jù),其中所述變換是響應(yīng)于以下中的至少一個而選擇的 (i)用于預(yù)測所述塊的至少一個參考的幀間預(yù)測模式, ( )對應(yīng)于運動矢量的一個或多個值,(iii)一個或多個在先編碼塊的剩余部分的值,(iv)所述塊的預(yù)測數(shù)據(jù)的值,(ν) 一個或多個相鄰重構(gòu)塊的一個或多個變換選擇,和 (vi)應(yīng)用于所述塊的剩余部分的變換系數(shù)的量化步驟。
全文摘要
提供了視頻編碼中用于變換選擇的方法和裝置。一種裝置包括視頻編碼器(300),用于通過從一組兩個或多個可用變換(325,326,327)中選擇一種應(yīng)用于畫面中的至少一塊的剩余部分的變換(329)來編碼該至少一塊。所述變換是基于以下中的至少一個而選擇的用于預(yù)測所述塊的至少一個參考的幀間預(yù)測模式,對應(yīng)于運動矢量的一個或多個值,一個或多個在先編碼塊的剩余部分的值,所述塊的預(yù)測數(shù)據(jù)的值,一個或多個相鄰重構(gòu)塊的一個或多個變換選擇,和應(yīng)用于所述塊的剩余部分的變換系數(shù)的量化步驟。
文檔編號H04N7/12GK102308578SQ200980155457
公開日2012年1月4日 申請日期2009年10月21日 優(yōu)先權(quán)日2009年1月27日
發(fā)明者C.格米拉, J.索爾, 尹鵬, 鄭云飛 申請人:湯姆森特許公司