專利名稱:用于視頻編碼和解碼的自適應變換選擇的方法和設備的制作方法
技術領域:
本發(fā)明原理總體上涉及視頻編碼和解碼,并且更具體地,涉及一種用于視頻編碼和解碼的自適應變換選擇的方法和設備。
背景技術:
基于塊的離散變換是許多圖像和視頻壓縮標準的基本組成部分,包括例如聯(lián)合圖像專家組(JPEG)、國際電信聯(lián)盟電信部門(ITU-T)、H. 263建議(下文中稱作“H. 263建議”)、國際標準化組織/國際電工委員會(IS0/IEC)運動圖像專家組-I(MPEG-I)標準、 IS0/IEC MPEG-2 標準、IS0/IEC MPEG-4 部分 10 先進視頻編碼(AVC)標準/ITU-T H. 264 建議(下文中稱作MPEG-4AVC標準“)等等,并且在大范圍的應用中使用。變換將信號轉(zhuǎn)換到變換域,并且作為一組變換基函數(shù)的線性組合來表示信號。接著是量化階段。用于視頻編碼的好的變換應該(1)對要量化信號去相關,使得可以有效地使用單獨值的標量量化,由此與矢量量化相比不會損失太多編碼效率;以及( 將視頻信號的能量壓縮為盡可能少的系數(shù),其允許編碼器通過具有較大幅度的較少系數(shù)來表示圖像。在前述兩種標準下良好的變換是Karhimen-Loeve變換(KLT)。離散余弦變換(DCT)提供了一種對于普通圖像信號的 KLT的良好近似,并且在幾乎所有現(xiàn)代視頻編碼標準中使用。DCT方案通過將圖像劃分為像素的塊(通常為4X4、8X8和16X16)、使用離散余弦變換將每一個塊從空間域變換到頻率域、并且對DCT系數(shù)進行量化,獲得了圖像/幀的局部空間相關性質(zhì)的優(yōu)勢。大多數(shù)圖像和視頻壓縮標準使用固定二維O-D)可分離DCT塊變換。如果允許幾種塊尺寸(典型地,從4X4到16X16塊),那么他們可以使用具有與所述塊相對應尺寸的DCT。在例如MPEG-4AVC標準的圖像和視頻編碼標準中,所使用的變換依賴于塊尺寸。 例如,4X4整數(shù)DCT用于4X4塊,8X8整數(shù)DCT用于8X8塊,并且4個級聯(lián)的4X4整數(shù) DCT用于幀內(nèi)16X16塊。DCT基函數(shù)是預定的,并且不會適配于視頻內(nèi)容或編碼參數(shù)。因為KLT是一種優(yōu)化的線性變換,在第一現(xiàn)有技術方法中,使用KLT針對 MPEG-4AVC標準的9種幀內(nèi)預測模式的每一個來得出最佳變換。提取針對每一個模式的統(tǒng)計量,并且得出對應KLT。利用對應KLT針對每一個幀內(nèi)預測模式的殘余數(shù)據(jù)進行編碼。9 種幀內(nèi)模式有效地分割了數(shù)據(jù)空間,使得DCT不再接近最佳變換,因此可以得出并且有效地應用不同的最佳變換??傊谝滑F(xiàn)有技術方法使用7種變換,并且每一個變換對于與視頻內(nèi)容無關地選擇的幀內(nèi)預測模式是固定的。在第二現(xiàn)有技術方法中,建議離線地訓練一種或多種變換,然后編碼器針對這些塊中的每一個塊選擇變換來優(yōu)化壓縮性能。針對每一個塊信號通知選擇。然而,圖像和視頻內(nèi)容的數(shù)據(jù)具有變化的統(tǒng)計特性和性質(zhì)。編碼器也使用不同的編碼參數(shù)操作,例如不同的目標比特率。DCT不能始終捕獲原始圖像和殘余圖像中的變化?;氐綀D1,編碼器處的典型變換選擇方法通常用參考數(shù)字100表示。方法100包括開始塊110,開始塊將控制傳給功能塊120。功能塊120初始化變換集合,并且將控制傳給循環(huán)限制塊130。循環(huán)限制塊130使用變量j開始循環(huán)(下文中的“循環(huán)(1)”),變量j 具有從1至(正在處理的)當前視頻序列中的畫面數(shù)目(#)的范圍,并且將控制傳給循環(huán)限制塊140。循環(huán)限制塊140使用變量i開始循環(huán)(下文中的“循環(huán)(2) ”),所述變量i具有從1到正在處理的當前畫面中的塊的數(shù)目(#)的范圍,并且將控制傳給功能塊150。功能塊350選擇針對塊的最佳變換(例如,基于一個或多個準則),并且將控制傳給功能塊160。 功能塊160對畫面j中的塊i進行編碼,并且將控制傳給循環(huán)限制塊170。循環(huán)限制塊170 結(jié)束循環(huán)(2),并且將控制傳給循環(huán)限制塊180。循環(huán)限制塊180結(jié)束循環(huán)(1),并且將控制傳給結(jié)束塊199。在現(xiàn)有技術中,利用訓練數(shù)據(jù)的大集合對變換集合進行離線訓練。訓練技術可以是基于普通的KLT、sparsity objective function等等。在編碼期間,編碼器針對每一個塊從訓練集合中選擇最佳的變換以改善壓縮性能。在比特流中信號通知選擇,使得對應解碼器可以解析比特流,并且使用與編碼器使用的相同(但是逆)變換來對視頻信號進行解碼?;氐綀D2,解碼器處的典型變換選擇方法通常由參考數(shù)字200表示。方法200包括開始塊210,開始塊將控制傳給功能塊220。功能塊220初始化變換集合,并且將控制傳給循環(huán)限制塊230。循環(huán)限制塊230使用變量j開始循環(huán)(下文中的“循環(huán)(1) ”),變量j具有從1至(正在處理的)當前視頻序列中的畫面數(shù)目(#)的范圍,并且將控制傳給循環(huán)限制塊M0。循環(huán)限制塊240使用變量i開始循環(huán)(下文中的“循環(huán)( ”),變量i具有從1 到正在處理的當前畫面中的塊的數(shù)目(#)的范圍,并且將控制傳給功能塊250。功能塊250 針對(當前)塊的變換進行解碼,并且將控制傳給功能塊沈0。功能塊260對畫面j中的塊i進行解碼,并且將控制傳給循環(huán)限制塊270。循環(huán)限制塊270結(jié)束循環(huán)( ,并且將控制傳給循環(huán)限制塊觀0。循環(huán)限制塊280結(jié)束循環(huán)(1),并且將控制傳給結(jié)束塊四9。因此,在方法200中,對于每一個塊,解碼器從比特流中獲得了編碼器使用的變換,然后使用信號通知的變換(逆變換)重構(gòu)視頻信號。然而,變換集合是離線得到的,并且不能適配于輸入視頻序列和編碼參數(shù)。
發(fā)明內(nèi)容
現(xiàn)有技術的這些和其他缺點和劣勢可以通過本發(fā)明的原理來解決,本發(fā)明的原理涉及一種針對視頻編碼和解碼的自適應變換選擇的方法和設備。根據(jù)本發(fā)明的一個方面,提出了一種設備。設備包括視頻編碼器,視頻編碼器使用變換至少對畫面中的塊進行編碼。從多個變換中選擇用于對塊進行編碼的變換。在畫面的編碼期間自適應地更新多個變換。根據(jù)本發(fā)明的另一個方面,提出了一種視頻編碼器中的方法。方法包括使用變換至少對畫面中的塊進行編碼。從多個變換中選擇用于對塊進行編碼的變換。在畫面的編碼期間自適應地更新多個變換。
根據(jù)本發(fā)明的再一方面,提出了一種設備。設備包括視頻解碼器,用于使用逆變換至少對畫面中的塊進行解碼。從多個逆變換中選擇用于對塊進行解碼的逆變換。在畫面的解碼期間自適應地更新多個逆變換。根據(jù)本發(fā)明的又一方面,提出了一種視頻解碼器中的方法。方法包括使用逆變換對至少對畫面中的塊進行解碼。從多個逆變換中選擇用于對塊進行解碼的逆變換。在畫面的解碼期間自適應地更新多個逆變換。根據(jù)結(jié)合附圖閱讀的典型實施例的以下詳細描述,本發(fā)明原理的這些和其他方面、特征和優(yōu)點將變得清楚明白。
根據(jù)以下示例性附圖可以更好地理解本發(fā)明的原理,其中圖1是示出了根據(jù)現(xiàn)有技術在編碼器處的典型變換選擇方法的流程圖;圖2是示出了根據(jù)現(xiàn)有技術在解碼器處的典型變換選擇方法的流程圖;圖3是示出了根據(jù)本發(fā)明原理實施例可以應用本發(fā)明原理的示范性視頻編碼器的方框圖;圖4是示出了根據(jù)本發(fā)明原理實施例可以應用本發(fā)明原理的示范性視頻解碼器的方框圖;圖5是示出了根據(jù)本發(fā)明原理實施例使用在編碼期間更新并且傳輸至對應解碼器的變換對畫面進行編碼的示范性方法的流程圖;圖6是示出了根據(jù)本發(fā)明原理實施例使用從編碼器接收的更新變換對畫面進行解碼的示范性方法的流程圖;圖7是示出了根據(jù)本發(fā)明原理實施例使用在編碼期間更新的變換對畫面進行編碼的示范性方法的流程圖;圖8是示出了根據(jù)本發(fā)明原理實施例使用在解碼期間更新的變換對畫面進行解碼的示范性方法的流程圖;圖9是示出了根據(jù)本發(fā)明原理實施例使用在編碼期間更新的變換和發(fā)送至對應解碼器的變換索引對畫面進行編碼的示范性方法的流程圖;圖10是示出了根據(jù)本發(fā)明原理實施例使用從對應編碼器接收的變換索引對畫面進行解碼的示范性方法的流程圖;圖11是根據(jù)本發(fā)明原理實施例使用奇異值分解在編碼器處得出變換的示范性方法的流程圖;以及圖12是示出了根據(jù)本發(fā)明原理實施例使用奇異值分解在解碼器處得出變換的示范性方法的流程圖。
具體實施例方式本發(fā)明的原理涉及一種針對視頻編碼和解碼的自適應變換選擇的方法和設備。本說明書示意了本發(fā)明原理。因此將理解的是,盡管這里沒有明確描述或示出,本領域的技術人員將能夠設想體現(xiàn)本發(fā)明原理并包括在本發(fā)明精神和范圍內(nèi)的各種布置。這里所引述的所有示例和條件性語言均為了教導的目的,以幫助讀者理解本發(fā)明原理以及發(fā)明人對現(xiàn)有技術做出貢獻的構(gòu)思,應看作不會被限制為這里具體引述的示例和條件。此外,這里對本發(fā)明的原理、方面、實施例及其特定示例做出引述的所有聲明意在包括本發(fā)明的結(jié)構(gòu)和功能上的等同物。另外,該等同物將包括當前已知的等同物以及將來開發(fā)出的等同物,即所開發(fā)出來的執(zhí)行相同功能的任何組件,而與結(jié)構(gòu)無關。因此,本領域的技術人員可以理解,例如這里所表示的框圖展示出體現(xiàn)本發(fā)明的示意性電路的概念圖。類似地,將理解,任何流程、流程圖、狀態(tài)轉(zhuǎn)移圖、偽代碼等表現(xiàn)出實質(zhì)上可以在計算機可讀介質(zhì)上表現(xiàn)的、并且由計算機或處理器執(zhí)行的各個過程,無論是否明確示出該計算機或處理器??梢酝ㄟ^使用專用硬件和能夠執(zhí)行適合的軟件的關聯(lián)軟件的硬件而實現(xiàn)圖中所示各個組件的功能。當由處理器來提供時,這些功能可以由單個的專用處理器、單個的共享處理器、或多個單獨的處理器來提供,其中一些可以是共享的。此外,術語“處理器”或“控制器”的顯式使用不應被解釋為排他性地指代能夠執(zhí)行軟件的硬件,而且可以隱式地包括 (不限為)數(shù)字信號處理器(“DSP”)硬件、用于存儲軟件的只讀存儲器(“ROM”)、隨機存取存儲器(“RAM”)以及非易失性存儲器。還可以包括常規(guī)和/或定制的其它硬件。類似地,圖中所示的任何開關僅是概念上的。其功能可以通過程序邏輯的操作、專用邏輯、程序控制和專用邏輯的交互、或甚至是手動地實現(xiàn),實施者可以選擇的具體技術可以從上下文中得到明確的理解。在權(quán)利要求書中,表示為用于執(zhí)行指定功能的裝置的任何組件意在包括執(zhí)行該功能的任何方式,例如包括a)執(zhí)行該功能的電路元件的組合,或b)任意形式的軟件,包括固件、微代碼等,并與用于執(zhí)行該軟件以執(zhí)行該功能的適合的電路進行組合。由權(quán)利要求所限定的本發(fā)明原理在于如下事實將各個引述的裝置所提供的功能以權(quán)利要求所要求的方式組合在一起。因此,可以把能夠提供這些功能的任意裝置看作與這里所示的裝置相等同。在說明書中涉及本發(fā)明原理的“ 一個實施例,,或“實施例,,是指結(jié)合實施例描述的特定特征、結(jié)構(gòu)、特性等包括在本發(fā)明的至少一個實施例中。因此,貫穿說明書在不同地方出現(xiàn)的短語“在一個實施例中”或“在實施例中”不必均指相同的實施例。此外短語“在另一實施例中”不排除與另一實施例全部或部分組合的所描述實施例的主題。應當理解的是,以下“/”、“和/或”和“至少一個”中任意的使用,例如在“A/B”、 "A和/或B”和“A和B中的至少一個”的情況下,意在包括只選擇第一所列項目(A)、或只選擇第二所列項目(B)、或選擇兩個項目(A和B)。作為另一示例,在“A、B和/或C”以及 “A、B和C中的至少一個”的情況下,這樣的表示意在包括只選擇第一所列項目(A)、只選擇第二所列項目(B)、只選擇第三所列項目(C)、選擇第一和第二所列項目(A和B)、選擇第一和第三所列項目(A和C)、選擇第二和第三所列項目(B和C)、或選擇所有三個項目(A和B 和C)。對于本領域和相關領域的普通技術人員來說顯而易見的是,對于所列的許多項目,上述是可以擴展的。如這里所使用的,“高級別語法”是指在分級中位于宏塊層之上的比特流中出現(xiàn)的語法。例如,如這里所使用的高級別語法可以指但不限于像條(slice)首部級、補充增強信息(SEI)級、圖像參數(shù)集(PPS)級、序列參數(shù)集(SPS)級、網(wǎng)絡抽象層(NAL)單元首部級處的語法。
同樣如這里所使用的,詞語“畫面”和“圖像”可互換使用,并且指代的是來自視頻序列的靜止圖像或畫面。如已知的,畫面可以是幀或場。此外,如這里所使用的,詞語“比特流”指的是編碼器輸出。當然,編碼器輸出可以是本發(fā)明原理可以考慮的任意形式。例如,可以使用但是不局限于廣播、點對點傳輸或多播傳輸方法傳輸“比特流”或者作為信號發(fā)送“比特流”,或者可以在例如但是不局限于光學、 磁學或其他存儲介質(zhì)之類的固定介質(zhì)中記錄“比特流”。此外,如這里所使用的,詞語“信號”指的是表示對于對應解碼器的某種東西。例如,編碼器可以用信號通知具體的變換(或者變換的子集)以便使得解碼器知曉編碼器一側(cè)使用的特定變換(或變換的子集)。在這種情況下,可以在編碼器一側(cè)和解碼器一側(cè)使用相同的變換(或者變換的子集)。因此,例如編碼器可以向解碼器傳輸特定的映射函數(shù),使得解碼器可以使用相同的變換(或變換的子集),或者如果解碼器已經(jīng)具有特定的變換(或變換的子集)或者其他,那么可以使用信號通知而無須傳輸)來簡單地允許解碼器知道和選擇特定的變換(或變換的子集)。通過避免任意實際變換的傳輸,可以實現(xiàn)比特節(jié)省。應該理解的是可以按照多種方式實現(xiàn)信號通知。例如,可以將一個或多個高級元素、標記等等用于向?qū)獯a器信令傳輸信息。盡管已經(jīng)相對于變換描述了前述有關的信令傳輸,其可以同樣地應用于逆變換?;氐綀D3,通過參考數(shù)字300總體上表示可以應用本發(fā)明原理的示范性視頻編碼
ο視頻編碼器300包括幀排序緩沖器310,具有與組合器385的非反相輸入進行信號通信的輸出。組合器385的輸出與變換和量化器325的第一輸入信號通信連接。變換和量化器325的輸出與熵編碼器345的第一輸入以及逆變換和逆量化器350的第一輸入信號通信連接。熵編碼器345的輸出與組合器390的第一非反相輸入信號通信連接。組合器390 的輸出與輸出緩沖器335的第一輸入信號通信連接。編碼器控制器305的第一輸出與幀排序緩沖器310的第二輸入、逆變換和逆量化器350的第二輸入、畫面類型判決模塊315的輸入、宏塊類型(MB-類型)判決模塊320的第一輸入、幀內(nèi)預測模塊360的第二輸入、解塊濾波器365的第二輸入、運動補償器370的第一輸入、運動估計器375的第一輸入以及參考畫面緩沖器380的第二輸入信號通信連接。編碼器控制器305的第二輸出與補充增強信息(SEI)插入器330的第一輸入、變換和量化器325的第二輸入、熵編碼器345的第二輸入、輸出緩沖器335的第二輸入以及序列參數(shù)集(SPQ和畫面參數(shù)集(PPQ插入器340的輸入信號通信連接。SEI插入器330的輸出與組合器390的第二非反相輸入信號通信連接。畫面類型判決模塊315的第一輸出與幀排序緩沖器310的第三輸入信號通信連接。畫面類型判決模塊315的第二輸出與宏塊類型判決模塊320的第二輸入信號通信連接。序列參數(shù)集(SPQ和畫面參數(shù)集(PPQ插入器340的輸出與組合器390的第三非反相輸入信號通信連接。逆量化和逆變換器350的輸出與組合器319的第一非反相輸入信號通信連接。組合器319的輸出與幀內(nèi)預測模塊360的第一輸入以及解塊濾波器365的第一輸入信號通信連接。解塊濾波器365的輸出與參考畫面緩沖器380的第一輸入信號通信連接。參考畫面緩沖器380的輸出與運動估計器375的第二輸入和運動補償器370的第三輸入信號通信連接。運動估計器375的第一輸出與運動補償器370的第二輸入信號通信連接。運動估計器 375的第二輸出與熵編碼器345的第三輸入信號通信連接。運動補償器370的輸出與開關397的第一輸入信號通信連接。幀內(nèi)預測模塊360 的輸出與開關397的第二輸入信號通信連接。宏塊類型判決模塊320的輸出與開關397的第三輸入信號通信連接。開關397的第三輸入確定開關的“數(shù)據(jù)”輸入(與控制輸入相比較,即與第三輸入相比較)是由運動補償器370還是幀內(nèi)預測模塊360提供。開關397的輸出與組合器319的第二非反相輸入和組合器385的反相輸入信號通信連接。幀排序緩沖器310的第一輸入和編碼器控制器105的輸入可用作編碼器300的用于接收輸入畫面的輸入。此外,補償增強信息(SEI)插入器330的第二輸入可用作編碼器 300的用于接收元數(shù)據(jù)的輸入。輸出緩沖器335的輸出可用作用于編碼器300的輸出,用于輸出比特流。轉(zhuǎn)到圖4,通過參考數(shù)字400總體表示可應用本發(fā)明原理的示范性視頻解碼器。視頻解碼器400包括輸入緩沖器410,具有與熵解碼器445的第一輸入信號通信連接的輸出。熵解碼器445的第一輸出與逆變換和逆量化器450的第一輸入信號通信連接。 逆變換和逆量化器450的輸出與組合器425的第二非反相輸入信號通信連接。組合器425 的輸出與解塊濾波器465的第二輸入以及內(nèi)預測模塊460的第一輸入信號通信連接。解塊濾波器465的第二輸出與參考畫面緩沖器480的第一輸入信號通信連接。參考畫面緩沖器 480的輸出與運動補償器470的第二輸入信號通信連接。熵解碼器445的第二輸出與運動補償器470的第三輸入、解塊濾波器465的第一輸入以及幀內(nèi)預測器460的第三輸入信號通信連接。熵解碼器445的第三輸出與解碼器控制器405的輸入信號通信連接。解碼器控制器405的第一輸出與熵解碼器445的第二輸入信號通信連接。解碼器控制器405的第二輸出與逆變換和逆量化器450的第二輸入信號通信連接。解碼器控制器405的第三輸出與解塊濾波器465的第三輸入信號通信連接。解碼器控制器405的第四輸出與幀內(nèi)預測模塊460的第二輸入、運動補償器470的第一輸入和參考畫面緩沖器480的第二輸入信號通信連接。運動補償器470的輸出與開關497的第一輸入信號通信連接。幀內(nèi)預測模塊460 的輸出與開關497的第二輸入信號通信連接。開關497的輸出與組合器425的第一非反相輸入信號通信連接。輸入緩沖器410的輸入可用作解碼器400的輸入,用于接收輸入比特流。解塊濾波器465的第一輸出可用作解碼器400的輸出,用于將輸出畫面輸出。已經(jīng)認識到如果可以選擇性地修改變換以適應視頻內(nèi)容和編碼參數(shù),則存在可以可用的潛在壓縮增益。因此根據(jù)本發(fā)明的原理,公開并且描述了一種供視頻編碼和解碼使用的內(nèi)容自適應變換選擇的方法和設備。同樣,描述了如何最佳選擇所使用的變換的方法。 在編碼過程期間得出變換集合。因為在編碼期間得出變換,它們自動地適配于輸入視頻序列和編碼參數(shù),并且可以提供更高的壓縮性能。與現(xiàn)有技術方法相反,根據(jù)本發(fā)明原理的一個或多個實施例,使用在編碼過程期間在先編碼的畫面得出的信息,在編碼過程期間“實時地”訓練所使用的變換。因為視頻信號在場景內(nèi)的相鄰畫面之間通常是近似的,使用在先畫面訓練的變換通常非常接近針對當前畫面的變換。通過使用在先編碼的畫面,訓練過程自動地考慮了輸入視頻序列的特性和編碼參數(shù)。轉(zhuǎn)到圖5,通過參考數(shù)字500總體示出了使用在編碼期間更新并且傳輸至對應解碼器的變換對畫面進行編碼的示范性方法。方法500包括開始塊510,開始塊將控制傳給功能塊520。功能塊520初始化變換集合,并且將控制傳給循環(huán)限制塊530。循環(huán)限制塊530 使用變量j開始循環(huán)(下文中的“循環(huán)(1) ”),變量j具有從1至(正在處理的)當前視頻序列中的畫面數(shù)目(#)的范圍,并且將控制傳給循環(huán)限制塊M0。循環(huán)限制塊540使用變量 i開始循環(huán)(下文中的“循環(huán)(2)”),變量i具有從1到正在處理的當前畫面中的塊的數(shù)目 (#)的范圍,并且將控制傳給功能塊550。功能塊550選擇針對(當前)塊的最佳變換,并且將控制傳給功能塊560。功能塊560對畫面j中的塊i進行編碼,并且將控制傳給循環(huán)限制塊570。循環(huán)限制塊570結(jié)束循環(huán)O),并且將控制傳給功能塊580。功能塊580根據(jù)編碼的畫面更新變換,發(fā)送更新的變換,并且將控制傳給循環(huán)限制塊590。對于功能塊580, 例如可以以幀為基礎、以畫面組為基礎和/或以場景為基礎來更新變換。此外,對于功能塊 580,例如可以基于從在先編碼畫面提供的信息或信息的一部分來更新變換。對于方法500,在編碼期間訓練變換集合,使得在對每一個畫面編碼之后更新變換。也可以在幾個畫面之后應用變換過程,例如在畫面組(GOP)或場景之后,以減小計算復雜度。為了更新變換,可以使用一個或多個編碼畫面。要使用的在先編碼畫面的容量 (volume)可以基于編碼器和解碼器都已知的一些規(guī)則,或者可以基于去往解碼器的比特流內(nèi)表達的一些其他準則??梢越Y(jié)合特定復位過程在場景變換處將變換復位至初始變換。對于正確操作的解碼器,可以按照語法特別地表示變換并且在比特流中表達。轉(zhuǎn)到圖6,通過參考數(shù)字600總體上示出了使用從編碼器接收的更新變換對畫面進行解碼的示范性方法。方法600包括開始塊610,開始塊將控制傳給功能塊620。功能塊 620初始化變換集合,并且將控制傳給循環(huán)限制塊630。循環(huán)限制塊630使用變量j開始循環(huán)(下文中的“循環(huán)(1)”),變量」具有從1至(正在處理的)當前視頻序列中的畫面數(shù)目(#)的范圍,并且將控制傳給功能塊640。功能塊640對來自比特流的變換進行解碼, 并且將控制傳給循環(huán)限制塊650。循環(huán)限制塊650使用變量i開始循環(huán)(下文中的“循環(huán) (2)”),變量i具有從1到正在處理的當前畫面中的塊的數(shù)目(#)的范圍,并且將控制傳給功能塊660。功能塊660針對(當前)塊的變換進行解碼,并且將控制傳給功能塊670。功能塊670對畫面j中的塊i進行解碼,并且將控制傳給循環(huán)限制塊680。循環(huán)限制塊680結(jié)束循環(huán)O),并且將控制傳給循環(huán)限制塊690。循環(huán)限制塊690結(jié)束循環(huán)(1),并且將控制傳給結(jié)束塊699。對于方法600,解碼器解析比特流以得出針對每一個畫面的變換集合。那么對于每一個塊,解碼器獲得編碼器使用的變換,然后使用對應逆變換重構(gòu)視頻信號。因此,在方法 600中,針對每一個畫面接收到了訓練的變換。然而,發(fā)送變換引起較高的開銷。因此,還公開了本發(fā)明原理的另一個實施例,其中不是將變換發(fā)送至解碼器,而是代替地一旦解碼器確定使用哪個變換就在解碼器處更新變換。轉(zhuǎn)到圖7,通過參考數(shù)字700總體上示出了使用在編碼期間更新的變換對畫面進行編碼的示范性方法。方法700包括開始塊710,開始塊將控制傳給功能塊720。功能塊 720初始化變換集合,并且將控制傳給循環(huán)限制塊730。循環(huán)限制塊730使用變量j開始循環(huán)(下文中的“循環(huán)(1) ”),變量j具有從1至(正在處理的)當前視頻序列中的畫面數(shù)目 (#)的范圍,并且將控制傳給循環(huán)限制塊740。循環(huán)限制塊740使用變量i開始循環(huán)(下文中的“循環(huán)O) ”),變量i具有從1到正在處理的當前畫面中的塊的數(shù)目(#)的范圍,并且將控制傳給功能塊750。功能塊750選擇針對(當前)塊的最佳變換,并且將控制傳給功能塊760。功能塊760對畫面j中的塊i進行編碼,并且將控制傳給循環(huán)限制塊770。循環(huán)限制塊770結(jié)束循環(huán)O),并且將控制傳給功能塊780。功能塊780根據(jù)編碼的畫面更新變換,并且將控制傳給循環(huán)限制塊790。循環(huán)限制塊790結(jié)束循環(huán)(1),并且將控制傳給結(jié)束塊799。對于功能塊780,例如可以以幀為基礎、以畫面組為基礎和/或以場景為基礎來更新變換。此外對于功能塊780,例如可以基于從在先編碼畫面提供的信息或從在先編碼畫面提供的信息的一部分來更新變換。轉(zhuǎn)到圖8,通過參考數(shù)字800總體上示出了使用在解碼期間更新的變換對畫面進行解碼的示范性方法。方法800包括開始塊810,開始塊將控制傳給功能塊820。功能塊 820初始化變換集合,并且將控制傳給循環(huán)限制塊830。循環(huán)限制塊830使用變量j開始循環(huán)(下文中的“循環(huán)(1) ”),變量j具有從1至(正在處理的)當前視頻序列中的畫面數(shù)目 (#)的范圍,并且將控制傳給循環(huán)限制塊840。循環(huán)限制塊840使用變量i開始循環(huán)(下文中的“循環(huán)0)”),變量i具有從1到(正在處理的)當前畫面中的塊的數(shù)目(#)的范圍, 并且將控制傳給循環(huán)限制塊850。功能塊850針對塊對變換進行解碼,并且將控制傳給功能塊860。功能塊860對畫面j中的塊i進行解碼,并且將控制傳給循環(huán)限制塊870。循環(huán)限制塊870結(jié)束循環(huán)(2),并且將控制傳給功能塊880。功能塊880更新變換,并且將控制傳給循環(huán)限制塊890。循環(huán)限制塊890結(jié)束循環(huán)(1),并且將控制傳給結(jié)束塊899。對于功能塊880,例如可以以幀為基礎、以畫面組為基礎和/或以場景為基礎來更新變換。此外對于功能塊880,例如可以基于從在先解碼畫面提供的信息或從在先解碼畫面提供的信息的一部分來更新變換。還公開了本發(fā)明原理的另一個實施例,其中在編碼器和解碼器處已知大量的變換 (和逆變換)。對于每一個畫面,選擇變換的子集并且將它們的索引(index)發(fā)送給解碼器。轉(zhuǎn)到圖9,通過參考數(shù)字900總體上示出了使用在編碼期間更新的變換和發(fā)送給對應解碼器的變換索引對畫面進行編碼的示范性方法。方法900包括開始塊910,開始塊將控制傳給功能塊920。功能塊920初始化變換的大集合,并且將控制傳給循環(huán)限制塊930。 循環(huán)限制塊930使用變量j開始循環(huán),變量j具有從1至(正在處理的)當前視頻序列中的畫面數(shù)目(#)的范圍,并且將控制傳給循環(huán)限制塊940。功能塊940對畫面j進行編碼, 并且將控制傳給功能塊950。功能塊950訓練變換,并且將控制傳給功能塊960。功能塊 960(從變換的大集合中)選擇變換的子集,并且將控制傳給功能塊970。功能塊970發(fā)送變換的索引,并且將控制傳給循環(huán)限制塊980。循環(huán)限制塊980結(jié)束循環(huán),并且將控制傳給結(jié)束塊999。對于功能塊970,例如可以使用一個或多個高級語法元素來發(fā)送變換的索引。對于方法900,編碼器使用訓練的變換來更新變換的大集合,以使得變換集合能夠更好地匹配內(nèi)容。通過變換的索引來表示接近訓練變換的變換,以使得對應解碼器在不要求較重開銷的情況也能夠獲得這種信息。這是以從中選擇了次優(yōu)化變換為代價的。轉(zhuǎn)到圖10,通過參考數(shù)字1000總體上示出了使用從對應編碼器接收的變換索引對畫面進行解碼的示范性方法。方法1000包括開始塊1010,開始塊將控制傳給功能塊820。功能塊1020初始化變換的大集合,并且將控制傳給循環(huán)限制塊1030。循環(huán)限制塊1030使用變量j開始循環(huán)(下文中的“循環(huán)(1) ”),變量j具有從1至(正在處理的)當前視頻序列中的畫面數(shù)目(#)的范圍,并且將控制傳給功能塊1040。功能塊1040對變換索引進行解碼,從比特流獲得變換,并且將控制傳給循環(huán)限制塊1050。循環(huán)限制塊1050使用變量i開始循環(huán)(下文中的“循環(huán)O) ”),變量i具有從1到正在處理的當前畫面中的塊的數(shù)目(#) 的范圍,并且將控制傳給功能塊1060。功能塊1060對針對塊的變換進行解碼,并且將控制傳給功能塊1070。功能塊1070對畫面j中的塊i進行解碼,并且將控制傳給循環(huán)限制塊 1080。循環(huán)限制塊1080結(jié)束循環(huán)O),并且將控制傳給循環(huán)限制塊1090。循環(huán)限制塊1090 結(jié)束循環(huán)(1),并且將控制傳給結(jié)束塊1099。對于功能塊1040,例如可以根據(jù)比特流中的一個或多個語法元素(和/或根據(jù)輔助信息)對變換索引進行解碼。轉(zhuǎn)到圖11,通過參考數(shù)字1100總體上示出了使用奇異值分解在編碼器處得出變換的示范性方法。方法1100包括開始塊1110,開始塊將控制傳給功能塊1120。功能塊1120 從在先編碼的畫面收集訓練數(shù)據(jù),并且將控制傳給功能塊1130。對于通過功能塊1120收集的數(shù)據(jù),這種數(shù)據(jù)可以包括非零的殘余或殘余部分,使得相同的變換可以用于當前畫面。功能塊1130向訓練數(shù)據(jù)應用奇異值分解(SVD),并且將控制傳給功能塊1140。功能塊1140 計算變換基礎,并且將控制傳給結(jié)束塊1199。轉(zhuǎn)到圖12,通過參考數(shù)字1200總體上示出了使用奇異值分解在解碼器處得出變換的示范性方法。方法1200包括開始塊1210,開始塊將控制傳給功能塊1220。功能塊1220 從在先編碼的畫面收集訓練數(shù)據(jù),并且將控制傳給功能塊1230。功能塊1230向訓練數(shù)據(jù)應用奇異值分解(SVD),并且將控制傳給功能塊1240。功能塊1240計算變換基礎,并且將控制傳給結(jié)束塊1299。語法例如,可以在一個或多個高級語法元素中規(guī)定變換集合。提供了針對涉及圖5的方法500的實施例如何定義語法的示例。表1示出了根據(jù)本發(fā)明原理實施例的(涉及方法 500)的畫面參數(shù)集(PPQ的典型語法??梢栽诟鞣N層將類似的語法變換應用于其他語法元素。在該示例中,考慮三種變換大小4X4 ;8X8 ;和16X16。對每一種塊大小,通過畫面參數(shù)集來表示變換集合。N4、N8和N16分別便是針對4X4、8X8和16X16變換的集合中的變換的數(shù)目。表 1
pic parameter set rbsp () {C 描述符
transform—selection—present—flag0 u(1)
if(transform—selection—present—flag){ for(i = 0 ;i < N4 ;i++) { for(j = 0 ;j < 16 ;j++) {
權(quán)利要求
1.一種設備,包括視頻編碼器(300),所述視頻編碼器使用變換至少對畫面中的塊進行編碼,其中從多個變換中選擇用于對所述塊進行編碼的變換,并且在所述畫面的編碼期間自適應地更新所述多個變換。
2.一種視頻編碼器中的方法,包括使用變換至少對畫面中的塊進行編碼,其中從多個變換中選擇用于對所述塊進行編碼的變換,并且在畫面的編碼期間自適應地更新所述多個變換(520、550、560、580)。
3.根據(jù)權(quán)利要求2所述的方法,其中響應于從在先編碼的畫面提供的信息來自適應地更新所述多個變換(580)。
4.根據(jù)權(quán)利要求3所述的方法,其中僅將從所述在先編碼的畫面提供的信息的一部分用于自適應地更新所述多個變換(580)。
5.根據(jù)權(quán)利要求3所述的方法,其中將奇異值分解訓練用于自適應地更新所述多個變換(1130)。
6.根據(jù)權(quán)利要求3所述的方法,其中根據(jù)至少以下之一來自適應地更新所述多個變換 (580)以幀為基礎、以畫面組為基礎以及以場景為基礎。
7.根據(jù)權(quán)利要求2所述的方法,其中當在對應解碼器中不存在所選擇的變換時將所選擇的變換傳輸至所述對應解碼器,或者當在對應解碼器中已經(jīng)存在所選擇的變換時將所選擇的變換識別用于對應解碼器,或者當在對應解碼器處不存在所選擇的變換時,在對應解碼器處重新產(chǎn)生所選擇的變換(580,970)。
8.根據(jù)權(quán)利要求2所述的方法,其中在具有多個畫面的視頻序列中包括了所述畫面, 并且在視頻編碼器和對應解碼器處已知所述多個變換和對應的多個逆變換,并且針對所述多個畫面的每一個選擇所述多個變換和所述多個逆變換的至少之一的子集(960)。
9.根據(jù)權(quán)利要求8所述的方法,其中使用一個或多個高級語法元素在對應比特流中傳輸所述子集的索引(970)。
10.根據(jù)權(quán)利要求8所述的方法,其中自適應地更新所述多個變換以獲得訓練的多個變換,并且所述子集的選擇基于所述多個變換和所述訓練的多個變換(950,960)。
11.根據(jù)權(quán)利要求8所述的方法,其中響應于從在先編碼的畫面提供的信息來自適應地更新所述多個變換(580)。
12.—種設備,包括視頻解碼器G00),用于使用逆變換至少對畫面中的塊進行解碼,其中從多個逆變換中選擇用于對所述塊進行解碼的逆變換,并且其中在畫面的解碼期間自適應地更新所述多個逆變換。
13.—種視頻解碼器中的方法,包括使用逆變換至少對畫面中的塊進行解碼,其中從多個逆變換中選擇用于對所述塊進行解碼的逆變換,并且在畫面的解碼期間自適應地更新所述多個逆變換(820,860,880)。
14.根據(jù)權(quán)利要求13所述的方法,其中響應于從在先解碼的畫面中提供的信息來自適應地更新所述多個逆變換(880)。
15.根據(jù)權(quán)利要求14所述的方法,其中僅將從在先解碼的畫面提供的信息的一部分用于自適應地更新所述多個逆變換(880)。
16.根據(jù)權(quán)利要求14所述的方法,其中將奇異值分解訓練用于自適應地更新所述多個逆變換(1230)。
17.根據(jù)權(quán)利要求14所述的方法,其中根據(jù)至少以下之一來自適應地更新所述多個逆變換以幀為基礎、以畫面組為基礎以及以場景為基礎(880)。
18.根據(jù)權(quán)利要求13所述的方法,其中當在視頻解碼器中不存在所選擇的變換時,所述視頻解碼器接收所選擇的逆變換,或者當在視頻解碼器中已經(jīng)存在所選擇的變換時,將所選擇的逆變換識別用于視頻解碼器(640,1040)。
19.根據(jù)權(quán)利要求13所述的方法,其中在具有多個畫面的視頻序列中包括了所述畫面,并且在視頻解碼器和對應編碼器處已知所述多個變換和相對應的多個逆變換,針對所述多個畫面的每一個選擇所述多個變換和所述多個逆變換的至少之一的子集(1040)。
20.根據(jù)權(quán)利要求19所述的方法,其中使用一個或多個高級語法元素在對應比特流中接收所述子集的索引(1040)。
21.根據(jù)權(quán)利要求19所述的方法,其中自適應地更新所述多個變換以獲得訓練的多個變換,并且其中所述子集的選擇是基于所述多個變換和所述訓練的多個變換。
22.根據(jù)權(quán)利要求19所述的方法,其中響應于從在先解碼的畫面提供的信息來自適應地更新所述多個變換(880)。
23.一種存儲介質(zhì),在所述存儲介質(zhì)上具有編碼的視頻信號,包括使用變換編碼的畫面中的至少一個塊,其中從多個變換中選擇用于對所述塊進行編碼的變換,并且其中在所述畫面的編碼期間自適應地更新所述多個變換。
全文摘要
針對視頻編碼和解碼提供了用于自適應變換選擇的方法和設備。一種設備包括視頻編碼器(300),視頻編碼器使用變換至少對畫面中的塊進行編碼。從多種變換中選擇用于對所述塊進行編碼的變換。在畫面的編碼期間自適應地更新所述多個變換。
文檔編號H04N7/50GK102474607SQ201080033552
公開日2012年5月23日 申請日期2010年7月22日 優(yōu)先權(quán)日2009年7月23日
發(fā)明者喬伊·索勒, 呂小安, 尹鵬, 許茜, 鄭云飛 申請人:湯姆森許可貿(mào)易公司