用于使用非均勻重構(gòu)空間進(jìn)行數(shù)據(jù)壓縮的方法和設(shè)備的制作方法
【專利摘要】給出了使用自適應(yīng)重構(gòu)級別的編碼和解碼方法。由編碼器形成重構(gòu)空間參數(shù),并且將其插入到具有編碼的視頻數(shù)據(jù)的比特流中。重構(gòu)空間參數(shù)可以包括解碼器可以根據(jù)其來確定編碼的視頻數(shù)據(jù)的解量化的級別的參數(shù)。重構(gòu)空間參數(shù)可以包括第一重構(gòu)級別和其他級別之間的步長。第一重構(gòu)級別可以不等于步長。在一些情況下,該步長可以不等于用于對變換域系數(shù)進(jìn)行量化的量化步長。
【專利說明】用于使用非均勻重構(gòu)空間進(jìn)行數(shù)據(jù)壓縮的方法和設(shè)備
[0001]版權(quán)通告
[0002]本文檔和附屬材料的公開的一部分包含要求了版權(quán)的材料。版權(quán)人不反對任何人在專利商標(biāo)局的文件或記錄中發(fā)表的專利文檔或?qū)@_的復(fù)制,但是無論如何保留所有其他版權(quán)權(quán)利。
【技術(shù)領(lǐng)域】
[0003]本申請大體上涉及數(shù)據(jù)壓縮,具體地,涉及用于使用非均勻重構(gòu)空間進(jìn)行量化的方法和設(shè)備。
【背景技術(shù)】
[0004]數(shù)據(jù)壓縮發(fā)生在眾多上下文中。在通信和計(jì)算機(jī)聯(lián)網(wǎng)中非常普遍地使用數(shù)據(jù)壓縮,以有效地存儲、傳輸和再現(xiàn)信息。其在圖像、音頻和視頻的編碼方面得到了具體應(yīng)用。由于每個視頻幀所需的大量數(shù)據(jù)以及經(jīng)常需要發(fā)生的編碼和解碼的速度,因此視頻對數(shù)據(jù)壓縮提出相當(dāng)大的挑戰(zhàn)。視頻編碼的當(dāng)前最新技術(shù)是ITU-T H.264/AVC視頻編碼標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)定義了針對不同應(yīng)用的多個不同簡檔,包括主簡檔、基線簡檔等等。通過MPEG-1TU的聯(lián)合發(fā)起,當(dāng)前正在開發(fā)下一代視頻編碼標(biāo)準(zhǔn):高效視頻編碼(HEVC)。
[0005]存在用于編碼/解碼圖像和視頻的多個標(biāo)準(zhǔn),包括H.264,其使用基于塊的編碼過程。在這些過程中,圖像或幀被分割成塊,通常是4X4或8X8,并且塊被頻譜變換成系數(shù)、量化、和熵編碼。在許多情況中,被變換的數(shù)據(jù)不是實(shí)際像素?cái)?shù)據(jù),而是預(yù)測操作之后的殘差數(shù)據(jù)。預(yù)測可以是:巾貞內(nèi)的,即幀/圖像內(nèi)的塊到塊;或者幀間的,即在幀之間(也稱為運(yùn)動預(yù)測)。預(yù)計(jì)HEVC將也具有這些特征。
[0006]當(dāng)對殘差數(shù)據(jù)進(jìn)行頻譜變換時,這些標(biāo)準(zhǔn)中的多個標(biāo)準(zhǔn)規(guī)定了使用離散余弦變換(DCT)或基于它的一些變形。然后使用量化器對所得DCT系數(shù)進(jìn)行量化,其中,量化器采用均勻量化步長,即,數(shù)據(jù)空間的均勻劃分。
[0007]有損壓縮(例如,音頻/視頻編碼、視頻編碼、圖像編碼等)中的工作常常關(guān)注于改善速率_失真性能。也即是說,大多數(shù)編碼和解碼方案的目標(biāo)是找到失真和編碼速率之間的最佳平衡。通常使用J = d+xr類型的速率-失真優(yōu)化表達(dá)式,其中,拉格朗日乘數(shù)λ表示編碼速率與失真之間的期望折中。
[0008]在解碼器處使用與編碼器處量化對數(shù)據(jù)空間的均勻劃分相匹配的均勻重構(gòu)空間重構(gòu)數(shù)據(jù)并不始終實(shí)現(xiàn)最佳的速率-失真性能。
【發(fā)明內(nèi)容】
[0009]本申請描述了用于實(shí)現(xiàn)有損數(shù)據(jù)壓縮的速率-失真改善的方法以及編碼器/解碼器。在一些實(shí)施例中,本文所述的數(shù)據(jù)壓縮過程或設(shè)備可以應(yīng)用于對音頻數(shù)據(jù)、圖像數(shù)據(jù)和/或視頻數(shù)據(jù)進(jìn)行編碼和解碼。具體地,本申請描述了使用非均勻重構(gòu)空間進(jìn)行解量化的數(shù)據(jù)壓縮的方法和過程。描述了用于在編碼器處確定非均勻重構(gòu)空間、將用于非均勻重構(gòu)的參數(shù)傳送到解碼器、以及在解碼器處當(dāng)解量化數(shù)據(jù)時應(yīng)用非均勻重構(gòu)空間的方法和設(shè)備。
[0010]在第一方面,本申請公開了一種用于對視頻數(shù)據(jù)進(jìn)行編碼的方法,所述視頻數(shù)據(jù)被劃分為包括量化變換系數(shù)集合的塊。所述方法包括:針對當(dāng)前塊中的每一個量化變換系數(shù)集合,收集統(tǒng)計(jì)數(shù)據(jù),所述統(tǒng)計(jì)數(shù)據(jù)包括量化變換系數(shù)的數(shù)量和所述集合中的所有量化變換系數(shù)的相應(yīng)非取整量化值之和。然后,所述方法包括:針對所述當(dāng)前塊,基于所述統(tǒng)計(jì)數(shù)據(jù)導(dǎo)出步長,從預(yù)定的量化參數(shù)(QP)集合中選擇具有最接近所導(dǎo)出的步長的相應(yīng)步長的QP,以及使用針對所述當(dāng)前塊所選擇的QP來對下一個塊進(jìn)行編碼。
[0011]在一個方面,本申請描述了一種對編碼數(shù)據(jù)的比特流進(jìn)行解碼的方法。所述方法包括:從所述比特流中提取重構(gòu)空間參數(shù),其中,所述重構(gòu)空間參數(shù)標(biāo)識第一重構(gòu)級別和其他重構(gòu)級別的重構(gòu)步長,所述第一重構(gòu)級別不等于所述重構(gòu)步長;對所述編碼數(shù)據(jù)進(jìn)行解碼,以獲得多個量化變換系數(shù);以及基于所述第一重構(gòu)級別和所述重構(gòu)步長對每一個量化變換系數(shù)進(jìn)行解量化,以生成重構(gòu)變換系數(shù)。
[0012]在另一方面,本申請描述了一種用于對數(shù)據(jù)進(jìn)行編碼的方法,所述數(shù)據(jù)包括量化變換域系數(shù)。所述方法包括:基于所述量化變換域系數(shù)生成重構(gòu)空間參數(shù),其中,所述重構(gòu)空間參數(shù)標(biāo)識第一重構(gòu)級別和其他重構(gòu)級別的重構(gòu)步長,并且所述第一重構(gòu)級別不等于所述重構(gòu)步長;對所述量化變換域系數(shù)進(jìn)行熵編碼;以及生成包含編碼的量化變換域系數(shù)和所述重構(gòu)空間參數(shù)在內(nèi)的比特流。
[0013]在又一方面,本申請描述了被配置為執(zhí)行這種編碼和解碼方法的編碼器和解碼器。
[0014]在又一方面,本申請描述了存儲計(jì)算機(jī)可執(zhí)行程序指令的非瞬時計(jì)算機(jī)可讀介質(zhì),當(dāng)執(zhí)行所述計(jì)算機(jī)可執(zhí)行程序指令時,所述計(jì)算機(jī)可執(zhí)行程序指令將處理器配置為執(zhí)行所描述的編碼和/或解碼的方法。
[0015]本領(lǐng)域普通技術(shù)人員將通過結(jié)合附圖閱讀以下示例的描述,來理解本申請的其他方面和特征。
【專利附圖】
【附圖說明】
[0016]現(xiàn)在以示例方式參照附圖,附圖示出了本申請的示例性實(shí)施例,在附圖中:
[0017]圖1以框圖形式示出了用于對視頻進(jìn)行編碼的編碼器;
[0018]圖2以框圖形式示出了用于對視頻進(jìn)行解碼的解碼器;
[0019]圖3示出了示例性數(shù)據(jù)空間;
[0020]圖4示出了實(shí)際數(shù)據(jù)在數(shù)據(jù)空間的子部分中的示例性非均勻分布;
[0021]圖5示出了示例性自適應(yīng)重構(gòu)空間;
[0022]圖6示出了第二示例性自適應(yīng)重構(gòu)空間;
[0023]圖7示出了第三示例性自適應(yīng)重構(gòu)空間;
[0024]圖8示出了第四示例性自適應(yīng)重構(gòu)空間;
[0025]圖9以流程圖的形式示出了用于使用重構(gòu)空間參數(shù)來對數(shù)據(jù)進(jìn)行編碼的示例性方法;
[0026]圖10以流程圖的形式示出了用于使用重構(gòu)空間參數(shù)對編碼數(shù)據(jù)進(jìn)行解碼的示例性方法;[0027]圖11示出了編碼器的示例性實(shí)施例的簡化框圖;以及
[0028]圖12示出了解碼器的示例性實(shí)施例的簡化框圖。
[0029]在不同的附圖中可能已經(jīng)使用類似的附圖標(biāo)記來指示類似的組件。
【具體實(shí)施方式】
[0030]在以下描述中,參考用于視頻編碼的H.264標(biāo)準(zhǔn),描述了 一些示例性實(shí)施例。本領(lǐng)域普通技術(shù)人員將理解的是,本申請不限于H.264,而是可適用于其他視頻編碼/解碼標(biāo)準(zhǔn),包括可能的將來的標(biāo)準(zhǔn),例如,HEVC、多視圖編碼標(biāo)準(zhǔn)、可伸縮視頻編碼標(biāo)準(zhǔn)、以及可重新配置的視頻編碼標(biāo)準(zhǔn)。還將清楚的是,本申請不一定限制于視頻編碼/解碼,并且可以應(yīng)用于音頻編碼/解碼、圖像編碼/解碼、或者任何其他數(shù)據(jù)的有損編碼/解碼。本申請廣泛地應(yīng)用于采用量化的任何有損數(shù)據(jù)壓縮過程,而不論正在編碼/解碼的數(shù)據(jù)的類型如何。
[0031]在以下描述中,當(dāng)參考視頻或圖像時,在某種程度上可以互換地使用術(shù)語幀、片、平鋪塊(tile)和矩形片組。本領(lǐng)域技術(shù)人員將清楚的是,在H.264標(biāo)準(zhǔn)的情況中,幀可以包含一個或多個片。還將清楚的是,根據(jù)適用的圖像或視頻編碼標(biāo)準(zhǔn)的特定要求,某些編碼/解碼操作是逐幀執(zhí)行的,一些編碼/解碼操作是逐片執(zhí)行的,一些編碼/解碼操作是逐平鋪塊執(zhí)行的,以及一些編碼/解碼操作是逐矩形片組執(zhí)行的。在任何特定實(shí)施例中,適用的圖像或視頻編碼標(biāo)準(zhǔn)可以確定是否關(guān)于幀和/或片和/或平鋪塊和/或矩形片組來執(zhí)行以下描述的操作,視情況而定。相應(yīng)地,根據(jù)本公開,本領(lǐng)域普通技術(shù)人員將理解,本文描述的特定操作或過程以及對幀、片、平鋪塊、矩形片組的特定引用對于給定實(shí)施例是否適用于幀、片、平鋪塊、矩形片組、或者其中的一些或全部。這也可應(yīng)用于編碼單元、編碼單元組等等,這些根據(jù)以下描述將變得明顯。
[0032]在下面的討論中,提到了 DCT系數(shù)和DCT域;然而,將清楚的是,本申請不限于DCT系數(shù)的編碼、基于塊的變換系數(shù)的編碼、基于塊的數(shù)據(jù)的編碼、或者任何特定的數(shù)據(jù)類型。
[0033]就下面所述的過程或方法應(yīng)用于圖像和/或視頻而言,它們可以應(yīng)用于視頻或圖像的一部分,例如,幀、片、畫面組(GOP),或者基于任何其他因素,例如,應(yīng)用于編碼單元、編碼單元組。就本文所述的過程或方法應(yīng)用于諸如音樂或語音數(shù)據(jù)等的音頻而言,它們可以應(yīng)用于數(shù)據(jù)點(diǎn)的分組或序列,例如,音頻采樣。應(yīng)當(dāng)注意的是,術(shù)語畫面和幀可以互換使用。
[0034]現(xiàn)在參照圖1,圖1以框圖形式示出了用于對視頻進(jìn)行編碼的編碼器10。還參照圖2,圖2示出了用于對視頻進(jìn)行解碼的解碼器50的框圖。將清楚的是,本文描述的編碼器10和解碼器50均可以在專用或通用計(jì)算設(shè)備(包含一個或多個處理單元和存儲器)上實(shí)現(xiàn)。編碼器10或解碼器50執(zhí)行的操作可以通過例如專用集成電路或通過通用處理器可執(zhí)行的存儲程序指令來實(shí)現(xiàn),視情況而定。設(shè)備可以包括額外軟件,包括例如用于控制基本設(shè)備功能的操作系統(tǒng)。關(guān)于以下描述,本領(lǐng)域普通技術(shù)人員將清楚在其中可以實(shí)現(xiàn)編碼器10或解碼器50的設(shè)備和平臺的范圍。
[0035]編碼器10接收視頻源12并產(chǎn)生編碼比特流14。解碼器50接收編碼比特流14并輸出解碼視頻幀16。編碼器10和解碼器50可以被配置為符合多個視頻壓縮標(biāo)準(zhǔn)來操作。例如,編碼器10和解碼器50可以符合H.264/AVC。在其他實(shí)施例中,編碼器10和解碼器50可以符合其他視頻壓縮標(biāo)準(zhǔn),包括諸如HEVC之類的H.264/AVC標(biāo)準(zhǔn)的演進(jìn)。
[0036]編碼器10包括空間預(yù)測器21、編碼模式選擇器20、變換處理器22、量化器24和熵編碼器26。本領(lǐng)域普通技術(shù)人員將清楚的是,編碼模式選擇器20確定視頻源的適合編碼模式,例如對象幀/片是1、P還是B類型,幀/片內(nèi)的特定編碼單元(例如宏塊)是幀間還是幀內(nèi)編碼。變換處理器22對空間域數(shù)據(jù)執(zhí)行變換。具體地,變換處理器22應(yīng)用基于塊的變換來將空間域數(shù)據(jù)變換為頻譜分量。例如,在很多實(shí)施例中,使用離散余弦變換(DCT)。在一些示例中,可以使用其他變換,如離散正弦變換等。根據(jù)宏塊的大小,該基于塊的變換是在宏塊或者子塊的基礎(chǔ)上執(zhí)行的。在H.264標(biāo)準(zhǔn)中,例如,典型的16X 16的宏塊包含16個4X4的變換塊,并且對4X4的塊執(zhí)行DCT過程。在一些情況中,變換塊可以是8X8的,這意味著針對每個宏塊存在4個變換塊。在其他情況中,變換塊可以是其他大小。在一些情況中,16X 16的宏塊可以包括4X4和8X8的變換塊的非重疊的組合。
[0037]將基于塊的變換應(yīng)用于像素?cái)?shù)據(jù)塊得到變換域系數(shù)的集合。在該上下文中,“集合”是有序集合,在該集合中系數(shù)具有系數(shù)位置。在一些示例中,變換域系數(shù)的集合可被認(rèn)為是系數(shù)的“塊”或矩陣。在本文的描述中,短語“變換域系數(shù)的集合”或“變換域系數(shù)的塊”被互換地使用,并且用于指示變換域系數(shù)的有序集合。
[0038]量化器24對變換域系數(shù)的集合進(jìn)行量化。然后,熵編碼器26對量化后的系數(shù)和相關(guān)聯(lián)的息進(jìn)行編碼。
[0039]幀內(nèi)編碼的幀/片(即,類型I)不參照其他幀/片進(jìn)行編碼。換言之,它們不采用時間預(yù)測。然而,幀內(nèi)編碼的幀依賴于幀/片內(nèi)的空間預(yù)測,如圖1中由空間預(yù)測器21所示。即,在對特定塊編碼時,可以將塊中的數(shù)據(jù)與針對該幀/片已經(jīng)編碼的塊內(nèi)鄰近像素的數(shù)據(jù)進(jìn)行比較。使用預(yù)測算法,可以將塊的源數(shù)據(jù)轉(zhuǎn)換為殘差數(shù)據(jù)。然后,變換處理器22對殘差數(shù)據(jù)進(jìn)行編碼。例如,H.264規(guī)定了 4X4變換塊的9種空間預(yù)測模式。在一些實(shí)施例中,這9種模式中的每一種可以用于獨(dú)立地處理塊,然后使用速率-失真優(yōu)化來選擇最佳模式。
[0040]H.264標(biāo)準(zhǔn)還規(guī)定了使用運(yùn)動預(yù)測/補(bǔ)償來利用時間預(yù)測。相應(yīng)地,編碼器10具有反饋環(huán)路,反饋環(huán)路包括:解量化器28、逆變換處理器30和去塊處理器32。這些元件反映了解碼器50執(zhí)行以再現(xiàn)幀/片的解碼過程。幀存儲器34用于存儲再現(xiàn)幀。按照這種方式,運(yùn)動預(yù)測基于在解碼器50處重構(gòu)幀是什么,而不基于原始幀,由于編碼/解碼中涉及的有損壓縮,原始幀可能不同于重構(gòu)幀。運(yùn)動預(yù)測器36使用幀存儲器34中存儲的幀/片作為源幀/片,來與當(dāng)前幀進(jìn)行比較,以識別相似塊。相應(yīng)地,對于應(yīng)用了運(yùn)動預(yù)測的宏塊,變換處理器22編碼的“源數(shù)據(jù)”是出自運(yùn)動預(yù)測過程的殘差數(shù)據(jù)。例如,其可以包括關(guān)于參考幀、空間置換或“運(yùn)動矢量”的信息、以及表示參考塊與當(dāng)前塊之間的差異(如果存在)的殘差像素?cái)?shù)據(jù)。關(guān)于參考幀和/或運(yùn)動矢量的信息可以不由變換處理器22和/或量化器24處理,而是可以提供給熵編碼器26,作為比特流的一部分與量化后的系數(shù)一起編碼。
[0041]本領(lǐng)域普通技術(shù)人員將清楚用于實(shí)現(xiàn)H264編碼器的細(xì)節(jié)和可能變形。
[0042]解碼器50包括:熵解碼器52、解量化器54、逆變換處理器56、空間補(bǔ)償器57和去塊處理器60。幀緩沖器58提供重構(gòu)幀以便由運(yùn)動補(bǔ)償器62在應(yīng)用運(yùn)動補(bǔ)償時使用。空間補(bǔ)償器57表示根據(jù)先前解碼塊來恢復(fù)特定幀內(nèi)編碼塊的視頻數(shù)據(jù)的操作。
[0043]熵解碼器52接收并解碼比特流14,以恢復(fù)量化后的系數(shù)。在熵解碼過程中,還可以恢復(fù)輔助信息,如果適用,一些輔助信息可以提供給運(yùn)動補(bǔ)償環(huán)路,以用于運(yùn)動補(bǔ)償。例如,熵解碼器52可以恢復(fù)運(yùn)動矢量和/或針對幀間編碼宏塊的參考幀信息。[0044]然后,解量化器54對量化后的系數(shù)進(jìn)行解量化,以產(chǎn)生變換域系數(shù),然后,逆變換處理器56對變換域系數(shù)進(jìn)行逆變換,以重建“視頻數(shù)據(jù)”。將清楚的是,在一些情況下,如對于幀內(nèi)編碼的宏塊,重建的“視頻數(shù)據(jù)”是用于空間補(bǔ)償?shù)摹⑾鄬τ趲瑑?nèi)先前解碼塊的殘差數(shù)據(jù)??臻g補(bǔ)償器57根據(jù)殘差數(shù)據(jù)和來自先前解碼塊的像素?cái)?shù)據(jù)來產(chǎn)生視頻數(shù)據(jù)。在其他情況下,如對于幀間編碼的宏塊,來自逆變換處理器56的重建“視頻數(shù)據(jù)”是用于運(yùn)動補(bǔ)償?shù)摹⑾鄬τ趤碜圆煌瑤膮⒖級K的殘差數(shù)據(jù)。在本文中,空間和運(yùn)動補(bǔ)償均可以稱為“預(yù)測操作”。
[0045]運(yùn)動補(bǔ)償器62在幀緩沖器58內(nèi)定位針對特定幀間編碼的宏塊指定的參考塊。運(yùn)動補(bǔ)償器62基于針對幀間編碼的宏塊指定的參考幀信息和運(yùn)動矢量來進(jìn)行該操作。然后,運(yùn)動補(bǔ)償器62提供參考塊像素?cái)?shù)據(jù),以與殘差數(shù)據(jù)組合,從而得到針對該宏塊的重構(gòu)視頻數(shù)據(jù)。
[0046]然后,可以對重構(gòu)幀/片應(yīng)用去塊過程,如去塊處理器60所示。在去塊之后,輸出幀/片作為解碼視頻幀16,例如以在顯示設(shè)備上顯示。將理解的是,視頻回放機(jī)(如計(jì)算機(jī)、機(jī)頂盒、DVD或藍(lán)光播放器和/或移動手持設(shè)備)可以在輸出設(shè)備上顯示之前將解碼幀緩存在存儲器中。
[0047]期望符合HEVC的編碼器和解碼器將具有這些相同或類似特征中的多個特征。
[0048]量化
[0049]對于具有預(yù)測P的給定像素塊X,殘差為z = x-p。(例如,通過使用DCT)對殘差z進(jìn)行變換,以生成變換域系數(shù)集合C。使用所選量化步長q來對系數(shù)c進(jìn)行量化,以產(chǎn)生量化系數(shù)集合 U。這可以被表達(dá)為:
[0050]u = round (c/q+f)(I)
[0051]其中,通過應(yīng)用量化步長q,將輸入c量化為U,并且I >f>0是取整偏移。因?yàn)橥ㄟ^確定性函數(shù)計(jì)算量化輸出,因此這可以稱作硬判決量化。
[0052]可以從速率-失真的角度來觀察該量化操作。實(shí)際上,量化操作可以被重新定義,以選擇索引U,使得所選索引導(dǎo)致最小速率-失真成本??梢园聪率奖磉_(dá)最小速率-失真成本:
[0053]min I e — u'q 12+ A- r(w)(2)
I!
[0054]在等式(2)中,c是變換系數(shù)的矩陣,q是量化步長,u是系數(shù)被量化至的相應(yīng)索引矩陣。符號λ是拉格朗日乘數(shù),其是終端用戶基于其對編碼速率和視頻質(zhì)量的偏好所確定的常數(shù)。相對小的λ更偏好更好的質(zhì)量,而較大的λ著重于較低的編碼速率。r(u)表示針對索引u的熵編碼的速率函數(shù)。熵編碼可以是任何適當(dāng)或適用的熵編碼方案。例如,在JPEG圖像的情況下,編碼可以是Huffman編碼。在H.264視頻的情況下,編碼可以是CAVLC或CABAC編碼。另一種與上下文有關(guān)或者與上下文無關(guān)的編碼方案可以在特定的實(shí)施例中應(yīng)用。顯然,等式(2)的量化輸出不再是由確定性函數(shù)給出的,而是與速率和失真都有關(guān)的優(yōu)化過程的輸出。因此,其被稱作軟判決量化。
[0055]在Yang等提交的美國專利公開n0.2007/0217506 (下文中稱為“Yang”)中描述了軟判決量化的示例性實(shí)施例。Yang公開描述了給定固定q(或者一般地,量化器的矩陣q,其中,不同的步長可以用于不同的系數(shù)位置)的條件下優(yōu)化U。這被稱作“軟判決量化”,這是因?yàn)樵谒俾?失真優(yōu)化中變換域系數(shù)自身被視為自由參數(shù)。在Yang中描述了將軟判決量化應(yīng)用于使用CAVLC的H.264編碼,并且它可以包括使用格子來搜索針對給定的熵編碼方案產(chǎn)生最小累積速率-失真的量化系數(shù)集合U。在Yang中所述的示例中,H.264CAVLC編碼方案用于說明的目的。
[0056]在H.264中以及在很多其他編碼方案中,量化步長被預(yù)先確定,并且在特定的示例中,編碼器選擇量化步長之一以用于量化特定的數(shù)據(jù)點(diǎn)集合,不論是塊、片、還是幀等。然后,編碼器只需發(fā)送索引或指示符以向解碼器通知使用了哪一種量化步長。
[0057]現(xiàn)在參照圖3,圖3用圖形示出了數(shù)據(jù)空間100的一部分。在該示例中,數(shù)據(jù)空間100包含要使用所選量化方案量化的數(shù)據(jù)點(diǎn)集合。在概念上,為了執(zhí)行量化,可以認(rèn)為數(shù)據(jù)空間100被劃分為子部分Atl, A1,...An,其中,N+1是子部分的數(shù)量。每一個子部分可以由其索引i引用,其中,i =0,1,...,N。落入子部分Ai之一中的數(shù)據(jù)點(diǎn)被量化為經(jīng)量化的變換域系數(shù)U=索引i。重構(gòu)級別qu處于其相應(yīng)子部分的中點(diǎn)處。當(dāng)解碼器重構(gòu)數(shù)據(jù)點(diǎn)時,它將其重構(gòu)為重構(gòu)級別qu;在u = i的情況下,數(shù)據(jù)點(diǎn)被重構(gòu)為qi;而不論實(shí)際的數(shù)據(jù)點(diǎn)在子部分Ai中所處的位置如何。在量化步長為q的情況下,每一個重構(gòu)級別Qi由i *q給出。如果源數(shù)據(jù)是均勻的,則中點(diǎn)重構(gòu)級別的假設(shè)將導(dǎo)致最小失真;然而,在很多情況下,源數(shù)據(jù)的均勻分布的假設(shè)可能不準(zhǔn)確。
[0058]現(xiàn)在參照圖4,圖4示出了示例性子部分A”中點(diǎn)重構(gòu)級別被示出為qi。源數(shù)據(jù)點(diǎn)的非均勻分布如附圖標(biāo)記102所示。將清楚的是,具有如102所示的分布的數(shù)據(jù)點(diǎn)將由處于或接近q/的自適應(yīng)重構(gòu)級別來更好地表示。自適應(yīng)重構(gòu)級別可以基于與索引i相關(guān)聯(lián)或者指派給索引i (即,位于子部分Ai中)的數(shù)據(jù)點(diǎn)的實(shí)際分布。在一些實(shí)施例中,自適應(yīng)重構(gòu)級別可以基于算術(shù)平均或中值或模式。通過調(diào)整重構(gòu)級別以反映子部分Ai中的實(shí)際數(shù)據(jù)點(diǎn)的分布,當(dāng)前描述的過程補(bǔ)償了當(dāng)依賴于均勻假設(shè)時可歸因于數(shù)據(jù)點(diǎn)的非均勻分布的失真中的一些。
[0059]在很多數(shù)據(jù)壓縮過程中,當(dāng)執(zhí)行量化時,未分離地考慮數(shù)據(jù)空間的劃分和重構(gòu)級別的選擇。例如,在ITU-T H.264/AVC中,在選擇量化步長的情況下,這二者都被包括在內(nèi)。本 申請人:已經(jīng)認(rèn)識到,數(shù)據(jù)空間的劃分和針對每一個子部分的重構(gòu)級別的選擇可以被分離地考慮,而無需基于例如如ITU-T H.264/AVC中一樣處于子部分的中點(diǎn)處的預(yù)定的重構(gòu)級別。
[0060]因此,在該過程情況下的量化變?yōu)閮杉壊僮?。第一,將?shù)據(jù)點(diǎn)指派給量化索引(即,基于數(shù)據(jù)空間的劃分,將數(shù)據(jù)點(diǎn)分組為子部分)。該第一階段的劃分/量化可以是均勻的、非均勻的、預(yù)定的硬判決量化或軟判決量化??梢曰谒俾?失真優(yōu)化過程從預(yù)設(shè)的多個候選步長/劃分大小中選擇步長/劃分大小。在所有這些可能的變形中,數(shù)據(jù)點(diǎn)中的每一個被指派給所選量化劃分結(jié)構(gòu)的索引之一。
[0061]第二,確定劃分的數(shù)據(jù)空間的子部分中的一個或多個(例如,每一個索引)的自適應(yīng)重構(gòu)級別。自適應(yīng)重構(gòu)級別可以基于落入子部分中的實(shí)際數(shù)據(jù)點(diǎn)的平均。平均可以對塊或編碼單元、塊或編碼單元組、片、幀、畫面組(GOP)或者考慮到特定應(yīng)用的其他適當(dāng)?shù)臄?shù)據(jù)點(diǎn)集合而進(jìn)行。平均還可能對具有公共量化參數(shù)qP的編碼單元或幀組進(jìn)行。在一些情況下,相同的幀或GOP可以具有qp不同的編碼單元,在該情況下,具有相同qP的那些編碼單元可以被認(rèn)為是用于確定該編碼單元組的自適應(yīng)重構(gòu)級別的目的的編碼單元組。[0062] 每一個索引的自適應(yīng)重構(gòu)級別的選擇可以基于速率-失真分析。換言之,它可以基于選擇考慮子部分中的實(shí)際數(shù)據(jù)點(diǎn)而最小化總失真的重構(gòu)級別。它還可以基于最小化成本函數(shù),該成本函數(shù)包括由于重構(gòu)級別與實(shí)際數(shù)據(jù)點(diǎn)之間的差別引起的失真以及與發(fā)送重構(gòu)級別相關(guān)聯(lián)的速率成本。與發(fā)送重構(gòu)級別相關(guān)聯(lián)的速率成本可以基于用于對重構(gòu)級別進(jìn)行熵編碼的編碼方案。速率還可以取決于熵編碼器操作的模式(例如,CABAC的旁路模式)。
[0063]在分別于2011年2月25日和2011年6月8日提交的美國專利申請n0.61/446,528和n0.13/155,616中描述了用于選擇和應(yīng)用自適應(yīng)重構(gòu)級別的示例性過程;其內(nèi)容通過引用的方式并入本文。
[0064]這些早前的申請中所描述的一個示例性過程提出了以格式i.q+δ i構(gòu)造的自適應(yīng)重構(gòu)級別,其中,i是索引(在本文中也稱作量化變換域系數(shù)u),q是由量化參數(shù)qP設(shè)置的量化步長,\是第i個量化級別的偏移。圖5用圖形示出了根據(jù)格式1.q+Si構(gòu)造的重構(gòu)空間120。如美國專利n0.61/446,528中的實(shí)施例中所描述的,可以針對重構(gòu)級別中的一些(例如,前三個或前四個)計(jì)算偏移,并且公共偏移(其可能是使用平均來選擇的)可以用于后續(xù)級別。在該示例性說明中,偏移S4用于第四級別以及高于第四級別的級別。
[0065]早前的申請中所述的另一個示例性過程提出了以格式i.(q+δ)構(gòu)造的自適應(yīng)重構(gòu)級別,其中,i是索引(量化變換域系數(shù)),q是通過量化參數(shù)qP設(shè)置的量化步長,并且δ是量化步長的偏移。圖6用圖形示出了根據(jù)該格式構(gòu)造的重構(gòu)空間130。將注意的是,該格式仍然導(dǎo)致均勻的重構(gòu)空間,這是因?yàn)槊恳粋€級別相距q+ δ。
[0066]格式為i.(!+ δ i的前一個示例性重構(gòu)空間的可能問題是與發(fā)送所有偏移相關(guān)聯(lián)的速率-失真成本。還可能存在不足以生成足夠準(zhǔn)確的偏移以證明每一個級別的成本合理的統(tǒng)計(jì)數(shù)據(jù)。如所提到的,一些級別可以使用平均偏移來解決該問題。格式為i.(q+S)的后一個示例性重構(gòu)空間的可能問題是重構(gòu)空間保持均勻,這在量化設(shè)計(jì)中限制了速率-失真編碼性能增益。還將注意的是,兩個方案都仍然基于用于在編碼器處對變換域系數(shù)進(jìn)行量化的量化步長q。
[0067]為了改善速率-失真性能,本申請?zhí)岢隽耸褂酶袷?i.a+bj的更一般的重構(gòu)空間。通過該格式,重構(gòu)空間部分地與量化步長解耦,這是因?yàn)閍不一定等于q。如圖7中所示,這導(dǎo)致設(shè)計(jì)完全靈活的非均勻的重構(gòu)空間150。將注意的是,當(dāng)a = q時,該格式降級為格式(i.q+ δ J。還將注意的是,當(dāng)b = O時,該格式降級為i.(q+ δ )。
[0068]然而,已經(jīng)注意到,在a古q且匕古O的情況下,實(shí)現(xiàn)最佳速率_失真性能。
[0069]還已經(jīng)注意到,從速率-失真的角度來看,信令匕的傳輸成本是不合理的,使得格式可以簡化為格式α.a+b)。圖8用圖形示出了根據(jù)該格式(i.a+b)構(gòu)造的重構(gòu)空間160。將注意的是,第一級別(例如,i = I)處于a+b,后續(xù)級別(i > I)間隔a。
[0070]可以將落入第i個子部分中的所有采樣(即,變換域系數(shù))定義為C(i)j,j =1,...,隊(duì)。在該標(biāo)記中,第i個子部分中的米樣的數(shù)量為隊(duì)。
[0071]在編碼過程中,如果在例如片報(bào)頭中的系數(shù)數(shù)據(jù)開始時信號通知重構(gòu)空間,則這些采樣可以是來自前一片、幀等的數(shù)據(jù),然后,這些采樣用于確定當(dāng)前片、幀等的重構(gòu)空間。在一個實(shí)施例中,當(dāng)前片的重構(gòu)空間可以基于具有相同類型和/或相同量化參數(shù)的前一片的采樣數(shù)據(jù);并且在片報(bào)頭中信號通知重構(gòu)空間。在某些情況下,以這種方式收集的統(tǒng)計(jì)數(shù)據(jù)可能是不穩(wěn)定的,例如,采樣數(shù)據(jù)的總數(shù)可能小于給定的閾值。在該情況下,可以使用重構(gòu)空間的一些默認(rèn)參數(shù)。在另一實(shí)施例中,如果在片/幀數(shù)據(jù)的末尾信號通知重構(gòu)空間參數(shù),則重構(gòu)空間可以基于當(dāng)前片或幀的采樣數(shù)據(jù);然而,這將導(dǎo)致解碼器處的一片/幀延遲,這在一些實(shí)現(xiàn)中是不可接受的。
[0072]將理解的是,量化變換域系數(shù)U是使用量化步長q量化的變換域系數(shù)C,在下文中將量化步長q標(biāo)記為qqP,以指定與針對特定的片、幀等所選擇的qP值相關(guān)聯(lián)的量化步長。注意,在一些實(shí)施例中,量化變換域系數(shù)U也可以并入縮放;例如,在一些示例性實(shí)現(xiàn)中,可以將這些值縮放128或某一其他因子(例如2%其中,m具有以比特為單位的計(jì)算精度),從而幫助促進(jìn)有效的計(jì)算實(shí)現(xiàn)。在下面的描述中省略了縮放和相關(guān)操作的一些細(xì)節(jié),但是本領(lǐng)域普通技術(shù)人員將理解這些細(xì)節(jié)。
[0073]根據(jù)變換域系數(shù)C(i)p可以按下式計(jì)算第i個級別的平均值:
【權(quán)利要求】
1.一種用于對視頻數(shù)據(jù)進(jìn)行編碼的方法,所述視頻數(shù)據(jù)被劃分為包括量化變換系數(shù)集合的塊,所述方法包括: 針對當(dāng)前塊中的每一個量化變換系數(shù)集合,收集統(tǒng)計(jì)數(shù)據(jù),所述統(tǒng)計(jì)數(shù)據(jù)包括量化變換系數(shù)的數(shù)量和所述集合中的所有量化變換系數(shù)的相應(yīng)非取整量化值之和, 針對所述當(dāng)前塊, 基于所述統(tǒng)計(jì)數(shù)據(jù)導(dǎo)出步長, 從預(yù)定的量化參數(shù)QP集合中選擇具有最接近所導(dǎo)出的步長的相應(yīng)步長的QP,以及 使用針對所述當(dāng)前塊所選擇的QP來對下一個塊進(jìn)行編碼。
2.根據(jù)權(quán)利要求1所述的方法,其中,所述當(dāng)前塊是以下各項(xiàng)之一:編碼單元CU、大編碼單元LCU、以及片。
3.根據(jù)權(quán)利要求1或權(quán)利要求2所述的方法,其中,收集統(tǒng)計(jì)數(shù)據(jù)是在每一個量化級別針對所述級別中的系數(shù)集合來執(zhí)行的。
4.根據(jù)權(quán)利要求1至3中任意一項(xiàng)所述的方法,還包括:在導(dǎo)出所述步長之前確定初始QP,并且編碼包括:將所選擇的QP編碼為所選擇的QP與所述初始QP之差。
5.根據(jù)權(quán)利要求1至4中任意一項(xiàng)所述的方法,其中,收集統(tǒng)計(jì)數(shù)據(jù)包括:對所有非取整量化值求和,并且 量化級別中的量化變換系數(shù)的數(shù)量高于預(yù)定閾值。
6.一種用于對編碼單元組的變換域系數(shù)進(jìn)行編碼的編碼器,所述編碼器包括: 處理器; 存儲器;以及 編碼應(yīng)用,所述編碼應(yīng)用存儲在所述存儲器中并且包含用于將所述處理器配置為執(zhí)行根據(jù)權(quán)利要求1至5中任意一項(xiàng)所述的方法的指令。
7.一種對編碼數(shù)據(jù)的比特流進(jìn)行解碼的方法,所述數(shù)據(jù)包括指定量化步長的量化參數(shù),所述方法包括: 從所述比特流中提取重構(gòu)空間參數(shù)數(shù)據(jù),并且對重構(gòu)空間參數(shù)進(jìn)行重構(gòu),以指定第一重構(gòu)級別以及其他重構(gòu)級別的重構(gòu)步長,其中所述第一重構(gòu)級別不等于所述重構(gòu)步長,并且所述重構(gòu)步長不等于所述量化步長; 對所述編碼數(shù)據(jù)進(jìn)行解碼,以獲得多個量化變換系數(shù);以及 基于所述重構(gòu)空間參數(shù)對每一個量化變換系數(shù)進(jìn)行解量化,以生成重構(gòu)變換系數(shù)。
8.根據(jù)權(quán)利要求7所述的方法,其中,所述重構(gòu)步長不等于2%其中,m是用于表示所述重構(gòu)步長的精度的比特?cái)?shù)量。
9.根據(jù)權(quán)利要求7或權(quán)利要求8所述的方法,其中,解量化包括:基于所述第一重構(gòu)級別與所述重構(gòu)步長之差來計(jì)算第一級別偏差,并且其中,如果所述量化變換系數(shù)為非零,則根據(jù)所述第一級別偏差加上所述量化變換系數(shù)與所述重構(gòu)步長的乘積來計(jì)算所述重構(gòu)變換系數(shù)。
10.根據(jù)權(quán)利要求7至9中任意一項(xiàng)所述的方法,其中,提取包括:提取亮度分量的第一重構(gòu)空間參數(shù)數(shù)據(jù),并且提取色度分量的第二重構(gòu)空間參數(shù)數(shù)據(jù),并且解量化包括:使用根據(jù)所述第一重構(gòu)空間參數(shù)數(shù)據(jù)重構(gòu)的第一重構(gòu)空間參數(shù)來生成亮度值的重構(gòu)變換系數(shù),并且使用根據(jù)所述第二重構(gòu)空間參數(shù)數(shù)據(jù)重構(gòu)的第二重構(gòu)空間參數(shù)來生成色度值的重構(gòu)變換系數(shù)。
11.根據(jù)權(quán)利要求7至10中任意一項(xiàng)所述的方法,其中,從所述比特流中提取重構(gòu)空間參數(shù)數(shù)據(jù)包括:提取重構(gòu)空間增量索引,并且基于所述重構(gòu)空間增量索引和相應(yīng)的重構(gòu)空間參數(shù)預(yù)測來重構(gòu)所述重構(gòu)空間參數(shù)。
12.根據(jù)權(quán)利要求11所述的方法,其中,所述重構(gòu)變換系數(shù)針對當(dāng)前片,并且所述重構(gòu)空間參數(shù)預(yù)測與來自另一片的數(shù)據(jù)無關(guān)。
13.一種用于對編碼數(shù)據(jù)的比特流進(jìn)行解碼的解碼器,所述解碼器包括: 處理器; 存儲器;以及 解碼應(yīng)用,所述解碼應(yīng)用存儲在所述存儲器中并且包含用于將所述處理器配置為執(zhí)行根據(jù)權(quán)利要求7至12中任意一項(xiàng)所述的方法的指令。
14.一種用于對數(shù)據(jù)進(jìn)行編碼的方法,所述數(shù)據(jù)包括量化變換域系數(shù)以及指定量化步長的量化參數(shù),所述方法包括: 基于所述量化變換域系數(shù)生成重構(gòu)空間參數(shù),并且根據(jù)所述重構(gòu)空間參數(shù)導(dǎo)出重構(gòu)空間參數(shù)數(shù)據(jù),其中,所述重構(gòu)空間參數(shù)標(biāo)識第一重構(gòu)級別和其他重構(gòu)級別的重構(gòu)步長,所述第一重構(gòu)級別不等于所述重構(gòu)步長,并且所述重構(gòu)步長不等于所述量化步長; 對所述量化變換域系數(shù)進(jìn)行熵編碼;以及 生成包含編碼的量化變換域系數(shù)和所述重構(gòu)空間參數(shù)數(shù)據(jù)在內(nèi)的比特流。
15.根據(jù)權(quán)利要求14所述的方法,其中,生成包括:將所述第一重構(gòu)級別設(shè)置為等于量化至第一級別的變換域系數(shù)的平均值。
16.根據(jù)權(quán)利要求14或權(quán)利要求15所述的方法,其中,生成包括:使用量化至除第一級別之外的級別的變換域系數(shù)的平均步長來確定所述重構(gòu)步長。
17.根據(jù)權(quán)利要求14至16中任意一項(xiàng)所述的方法,其中,生成包括:生成亮度分量的第一重構(gòu)空間參數(shù)集合并且生成色度分量的第二重構(gòu)空間參數(shù)集合。
18.根據(jù)權(quán)利要求14至17中任意一項(xiàng)所述的方法,其中,生成包括:預(yù)測所述重構(gòu)空間參數(shù),確定所述預(yù)測的誤差,對所述誤差進(jìn)行量化,以及對量化誤差進(jìn)行編碼,并且生成所述比特流包括:將編碼的量化誤差插入到片報(bào)頭中。
19.根據(jù)權(quán)利要求18所述的方法,其中,所述量化變換域系數(shù)針對當(dāng)前片,并且預(yù)測所述重構(gòu)空間參數(shù)與來自另一片的數(shù)據(jù)無關(guān)。
20.一種用于對編碼單元組的變換域系數(shù)進(jìn)行編碼的編碼器,所述編碼器包括: 處理器; 存儲器,所述存儲器存儲數(shù)據(jù)點(diǎn);以及 編碼應(yīng)用,所述編碼應(yīng)用存儲在所述存儲器中并且包含用于將所述處理器配置為執(zhí)行根據(jù)權(quán)利要求14至19中任意一項(xiàng)所述的方法的指令。
21.一種存儲處理器可執(zhí)行指令的非瞬時處理器可讀介質(zhì),當(dāng)執(zhí)行所述處理器可執(zhí)行指令時 ,所述處理器可執(zhí)行指令將一個或多個處理器配置為執(zhí)行根據(jù)權(quán)利要求1至5、7至12以及14至19中任意一項(xiàng)所述的方法。
【文檔編號】H04N19/463GK103959786SQ201280059215
【公開日】2014年7月30日 申請日期:2012年10月1日 優(yōu)先權(quán)日:2011年9月30日
【發(fā)明者】余祥, 王競, 何大可 申請人:黑莓有限公司