專利名稱:變換單元內(nèi)的多符號位隱藏的制作方法
技術(shù)領(lǐng)域:
本申請總體涉及數(shù)據(jù)壓縮,具體地涉及用于在對殘差視頻數(shù)據(jù)進行編碼和解碼時進行符號位隱藏的方法和設(shè)備。
背景技術(shù):
數(shù)據(jù)壓縮發(fā)生在眾多上下文中。在通信和計算機聯(lián)網(wǎng)中非常普遍地使用數(shù)據(jù)壓縮,以有效地存儲、傳輸和復(fù)制信息。其在圖像、音頻和視頻的編碼方面得到了具體應(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ā)稱為“高效視頻編碼(HEVC) ”的下一代視頻編碼標(biāo)準(zhǔn)。存在用于編碼/解碼圖像和視頻的多個標(biāo)準(zhǔn),包括H.264,其使用基于塊的編碼過程。在這些過程中,圖像或幀被分割成塊,通常是4X4或8X8,并且塊被頻譜變換成系數(shù)、量化、和熵編碼。在許多情況中,被變換的數(shù)據(jù)不是實際像素數(shù)據(jù),而是預(yù)測操作之后的殘差數(shù)據(jù)。預(yù)測可以是:巾貞內(nèi)的,即幀/圖像內(nèi)的塊到塊;或者幀間的,即在幀之間(也稱為運動預(yù)測)。期望MPEG-H將也具有這些特征。當(dāng)對殘差數(shù)據(jù)進行頻譜變換時,這些標(biāo)準(zhǔn)中的多個標(biāo)準(zhǔn)規(guī)定了使用離散余弦變換(DCT)或基于它的一些變型。然后使用量化器對所得DCT系數(shù)進行量化,以產(chǎn)生量化后的變換域系數(shù)或索引。然后,使用特定的上下文模型對量化后的變換域系數(shù)的塊或矩陣(有時稱為“變換單元”)進行熵編碼。在H.264/AVC中和在針對MPEG-H的當(dāng)前開發(fā)工作中,量化后的變換系數(shù)通過下述方式來編碼:(a)對指示變換單元中的最后一個非零系數(shù)的位置的末位有效系數(shù)位置進行編碼;(b)對指示變換單元中的包含非零系數(shù)的位置(除了末位有效系數(shù)位置)的有效圖進行編碼;(C)對非零系數(shù)的幅度進行編碼;以及(d)對非零系數(shù)的符號進行編碼。對量化后的變換系數(shù)的編碼常常占到比特流中的編碼數(shù)據(jù)的30-80%。變換單元通常是NXN。常見大小包括4X 4、8 X 8、16 X 16和32 X 32,但其他大小也是可能的,包括在某些實施例中的非正方形大小,如8 X 32或32 X 8。按每個非零系數(shù)使用一個符號位,對塊中的每個非零系數(shù)的符號進行編碼。
發(fā)明內(nèi)容
本申請描述了使用符號位隱藏對視頻數(shù)據(jù)進行編碼和解碼的方法和編碼器/解碼器。在一些實施例中,編碼器和解碼器可以使用多級有效圖對有效系數(shù)標(biāo)記進行編碼。使用奇偶校驗技術(shù),對于變換單元中的每個系數(shù)子集,可以隱藏至少一個系數(shù)的符號位。在一些情形下,系數(shù)子集與例如在有效圖編碼和解碼中使用的多級圖中使用的系數(shù)組相對應(yīng)。在至少一種情形下,多級圖與較大的變換單元(諸如16乂16和32乂32 ) —起使用。在一些情形下,多級圖與8 X 8TU、非正方形TU和其他大小的TU—起使用。符號位隱藏技術(shù)可被用于包含超過閾值數(shù)目的非零系數(shù)的那些系數(shù)子集。在一些實施例中,即使TU不使用多級有效圖編碼,也可以針對這些TU使用基于子集的符號位隱藏技術(shù),特別是在對TU的有效系數(shù)編碼是針對有效系數(shù)標(biāo)記子集模塊化實現(xiàn)的情況下,更是如此。在一個方面,本申請描述了一種通過重構(gòu)變換單元的系數(shù)對編碼視頻的比特流進行解碼的方法,所述比特流編碼所述變換單元的兩個或更多符號位集合,每個集合與所述變換單元的相應(yīng)系數(shù)集合相對應(yīng),其中每個符號位指示相應(yīng)集合內(nèi)的對應(yīng)的非零系數(shù)的符號。所述方法包括:針對所述兩個或更多符號位集合中的每一個,對與該符號位集合相對應(yīng)的相應(yīng)集合中的系數(shù)的絕對值進行求和,以獲得奇偶校驗值;以及基于所述奇偶校驗值是偶數(shù)還是奇數(shù),向所述相應(yīng)集合內(nèi)的系數(shù)之一分派符號。在另一方面,本申請描述了一種通過對變換單元的系數(shù)的符號位進行編碼來編碼視頻的比特流的方法。所述方法包括:針對所述變換單元的兩個或更多系數(shù)集合中的每一個,對該集合中的系數(shù)的絕對值進行求和,以獲得奇偶校驗值;確定該集合中的系數(shù)之一的符號不對應(yīng)于所述奇偶校驗值;以及,將該集合中的系數(shù)的級別進行值為I的調(diào)整,以便將所述奇偶校驗值改變?yōu)榕c所述系數(shù)之一的符號相對應(yīng)。在又一方面,本申請描述了配置為執(zhí)行這種編碼和解碼方法的編碼器和解碼器。在又一方面,本申請描述了存儲計算機可執(zhí)行程序指令的非瞬時計算機可讀介質(zhì),所述計算機可執(zhí)行程序指令在被執(zhí)行時將處理器配置為執(zhí)行所描述的編碼和/或解碼的方法。結(jié)合附圖,通過閱讀以下示例的描述,本領(lǐng)域技術(shù)人員將理解本申請的其他方面和特征。
現(xiàn)在參照附圖作為示例,附圖示出了本申請的示例實施例,在附圖中:圖1以框圖形式示出了用于對視頻進行編碼的編碼器;圖2以框圖形式示出了用于對視頻進行解碼的解碼器;圖3示出了針對16 X 16的變換單元的多級掃描順序的示例;。圖4示出了被分割成按逆組級掃描順序編號的系數(shù)組的示例16X16的變換單元;圖5示出了變換單元的一個示例,其中形成了用于符號位隱藏的四個系數(shù)組的組;圖6示出了針對符號位隱藏的系數(shù)組分組的另一示例;圖7示出了針對符號位隱藏的系數(shù)組分組的又一示例;圖8示出了針對符號位隱藏,動態(tài)形成系數(shù)集合的示例;圖9以流程圖的形式示出了符號位隱藏的示例過程;
圖10示出了編碼器的示例實施例的簡化框圖;以及圖11示出了解碼器的示例實施例的簡化框圖。在不同的附圖中可能已經(jīng)使用類似的參考標(biāo)號來標(biāo)記類似的組件。
具體實施例方式在以下描述中,參考用于視頻編碼的H.264標(biāo)準(zhǔn)和/或開發(fā)中的MPEG-H標(biāo)準(zhǔn),描述了一些示例實施例。本領(lǐng)域技術(shù)人員應(yīng)該理解,本申請不限于H.264或MPEG-H,而是可適用于其他視頻編碼/解碼標(biāo)準(zhǔn),包括可能的將來的標(biāo)準(zhǔn)、多視圖編碼標(biāo)準(zhǔn)、可伸縮視頻編碼標(biāo)準(zhǔn)、以及可重新配置的視頻編碼標(biāo)準(zhǔn)。在以下描述中,當(dāng)參考視頻或圖像時,在某種程度上可以互換地使用術(shù)語幀、圖片、片、平鋪塊(tile)和矩形片組。本領(lǐng)域技術(shù)人員將認(rèn)識到,在H.264標(biāo)準(zhǔn)的情況中,幀可以包含一個或多個片。還將認(rèn)識到 ,取決于適用的圖像或視頻編碼標(biāo)準(zhǔn)的特定要求或術(shù)語學(xué),某些編碼/解碼操作是逐幀執(zhí)行的,一些編碼/解碼操作是逐片執(zhí)行的,一些編碼/解碼操作是逐圖片執(zhí)行的,一些編碼/解碼操作是逐平鋪塊執(zhí)行的,以及一些編碼/解碼操作是逐矩形片組執(zhí)行的,視情況而定。在任何特定實施例中,適用的圖像或視頻編碼標(biāo)準(zhǔn)可以確定是否關(guān)于幀和/或片和/或圖片和/或平鋪塊和/或矩形片組來執(zhí)行以下描述的操作。相應(yīng)地,根據(jù)本公開,本領(lǐng)域技術(shù)人員將理解,這里描述的特定操作或過程以及對幀、片、圖片、平鋪塊、矩形片組的特定引用對于給定實施例是否適用于幀、片、圖片、平鋪塊、矩形片組、或者其中的一些或全部。這也可應(yīng)用于變換單元、編碼單元、編碼單元的組等等,如根據(jù)以下描述將變得明顯的那樣。本申請描述了用于對變換單元的非零系數(shù)的符號位進行編碼和解碼的示例過程和設(shè)備。非零系數(shù)是由有效圖來標(biāo)識的。有效圖是映射到或?qū)?yīng)于變換單元或定義的系數(shù)單元(例如,若干變換單元、變換單元的一部分、或者編碼單元)的標(biāo)記的塊、矩陣、組或集合。每個標(biāo)記指示變換單元或指定的單元中的對應(yīng)位置是否包含非零系數(shù)。在現(xiàn)有標(biāo)準(zhǔn)中,這些標(biāo)記可被稱為有效系數(shù)標(biāo)記。在現(xiàn)有標(biāo)準(zhǔn)中,按掃描順序從DC系數(shù)到末位有效系數(shù),每個系數(shù)一個標(biāo)記,并且如果對應(yīng)系數(shù)為0,則該標(biāo)記是為O的比特,以及如果對應(yīng)系數(shù)不為0,則該標(biāo)記被設(shè)置為I。本文使用的術(shù)語“有效圖”旨在指代變換單元的有效系數(shù)標(biāo)記的矩陣或有序集合(如根據(jù)下文描述將理解的)或者定義的系數(shù)單元(根據(jù)本申請的上下文將清楚)。應(yīng)該理解,根據(jù)以下描述,多級編碼和解碼結(jié)構(gòu)可以應(yīng)用在特定情形中,并且那些情形可以根據(jù)諸如視頻內(nèi)容類型(正常視頻或序列中識別的圖形、圖片、或者片頭)之類的輔助信息來確定。例如,針對正常視頻可以使用兩個級別,以及針對圖形可以使用三個級別(其通常更加稀疏)。另一可能性是在序列、圖片或片頭之一中提供標(biāo)記,該標(biāo)記指示該結(jié)構(gòu)是具有一個、兩個還是三個級別,由此允許編碼器靈活地選擇針對本內(nèi)容的最合適的結(jié)構(gòu)。在另一實施例中,標(biāo)記可以表示內(nèi)容類型,其將與級別數(shù)目相關(guān)聯(lián)。例如,內(nèi)容類型“圖像”可以以三個級別為特色?,F(xiàn)在參照圖1,圖1以框圖形式示出了用于對視頻進行編碼的編碼器10。還參照圖2,圖2示出了用于對視頻進行解碼的解碼器50的框圖??梢哉J(rèn)識到,這里描述的編碼器10和解碼器50均可以在專用或通用計算設(shè)備(包含一個或多個處理單元和存儲器)上實現(xiàn)。編碼器10或解碼器50執(zhí)行的操作可以通過例如專用集成電路或通過通用處理器可執(zhí)行的存儲程序指令來實現(xiàn),視情況而定。設(shè)備可以包括附加軟件,包括例如用于控制基本設(shè)備功能的操作系統(tǒng)。關(guān)于以下描述,本領(lǐng)域技術(shù)人員可以認(rèn)識到在其中可以實現(xiàn)編碼器10或解碼器50的設(shè)備和平臺的范圍。編碼器10接收視頻源12并產(chǎn)生編碼比特流14。解碼器50接收編碼比特流14并輸出解碼視頻幀16。編碼器10和解碼器50可以被配置為符合多個視頻壓縮標(biāo)準(zhǔn)來操作。例如,編碼器10和解碼器50可以符合H.264/AVC。在其他實施例中,編碼器10和解碼器50可以符合其他視頻壓縮標(biāo)準(zhǔn),包括類似MPEG-H之類的H.264/AVC標(biāo)準(zhǔn)的演進。編碼器10包括空間預(yù)測器21、編碼模式選擇器20、變換處理器22、量化器24和熵編碼器24。本領(lǐng)域技術(shù)人員可以認(rèn)識到,編碼模式選擇器20確定視頻源的適合編碼模式,例如對象幀/片是1、P還是B類型,幀/片內(nèi)的特定編碼單元(例如宏塊、編碼單元等)是幀間還是幀內(nèi)編碼。變換處理器22對空間域數(shù)據(jù)執(zhí)行變換。具體地,變換處理器22應(yīng)用基于塊的變換來將空間域數(shù)據(jù)轉(zhuǎn)換為頻譜分量。例如,在許多實施例中,使用離散余弦變換(DCT)。在一些實施例中,可以使用其他變換,如離散正弦變換等等。取決于宏塊或編碼單元的大小,該基于塊的變換是在編碼單元、宏塊或者子塊的基礎(chǔ)上執(zhí)行的。在H.264標(biāo)準(zhǔn)中,例如,典型的16X 16的宏塊包含16個4X4的變換塊,并且針對4X4的塊執(zhí)行DCT過程。在一些情況中,變換塊可以是8X8的,這意味著每個宏塊存在4個變換塊。在另外的情況中,變換塊可以是其他大小。在一些情況中,16 X 16的宏塊可以包括4 X 4和8 X 8的變換塊的非重疊的組合。將基于塊的變換應(yīng)用于像素數(shù)據(jù)塊得到變換域系數(shù)的集合。在該上下文中,“集合”是有序集合,在該集合中系數(shù)具有系數(shù)位置。在一些實例中,變換域系數(shù)的集合可被認(rèn)為是系數(shù)的“塊”或矩陣。在本文的描述中,短語“變換域系數(shù)的集合”或“變換域系數(shù)的塊”被互換地使用,并且用于指示變換域系數(shù)的有序集合。量化器24對變換域系數(shù)的集合進行量化。然后,熵編碼器26對量化后的系數(shù)和關(guān)聯(lián)息進行編碼。本文中,可以將量化后的變換域系數(shù)的塊或矩陣稱為“變換單元”(TU)。在一些情況下,TU可以是非正方形的,例如是非正方形的正交變換(NSQT)。幀內(nèi)編碼的幀/片(即,類型I)不參照其他幀/片進行編碼。換言之,它們不采用時間預(yù)測。然而,幀內(nèi)編碼的幀依賴于幀/片內(nèi)的空間預(yù)測,如圖1中通過空間預(yù)測器21進行說明。即,在對特定塊編碼時,可以將塊中的數(shù)據(jù)與針對該幀/片已經(jīng)編碼的塊內(nèi)鄰近像素的數(shù)據(jù)進行比較。使用預(yù)測算法,可以將塊的源數(shù)據(jù)轉(zhuǎn)換為殘差數(shù)據(jù)。然后,變換處理器22對殘差數(shù)據(jù)進行編碼。例如,H.264規(guī)定了 4X4變換塊的9種空間預(yù)測模式。在一些實施例中,這9種模式中的每一種可以用于獨立處理塊,然后使用速率(rate)失真優(yōu)化來選擇最佳模式。H.264標(biāo)準(zhǔn)還規(guī)定了使用運動預(yù)測/補償來利用時間預(yù)測。相應(yīng)地,編碼器10具有反饋環(huán)路,反饋環(huán)路包括:解量化器28、逆變換處理器30和解塊處理器32。解塊處理器32可以包括解塊處理器和過濾處理器。這些單元反映了解碼器50實現(xiàn)以再現(xiàn)幀/片的解碼過程。幀存儲器34用于存儲再現(xiàn)幀。按照這種方式,運動預(yù)測基于在解碼器50處重構(gòu)幀是什么,而不基于原始幀,由 于編碼/解碼中涉及的有損壓縮,原始幀可能不同于重構(gòu)幀。運動預(yù)測器36使用幀存儲器34中存儲的幀/片作為源幀/片,來與當(dāng)前幀進行比較,以識別相似塊。相應(yīng)地,對于應(yīng)用運動預(yù)測的宏塊或編碼單元,變換處理器22編碼的“源數(shù)據(jù)”是出自運動預(yù)測過程的殘差數(shù)據(jù)。例如,其可以包括關(guān)于參考幀、空間置換或“運動矢量”的信息、以及表示參考塊與當(dāng)前塊之間的差異(如果存在)的殘差像素數(shù)據(jù)。關(guān)于參考幀和/或運動矢量的信息可以不由變換處理器22和/或量化器24處理,而是可以提供給熵編碼器26,作為比特流的一部分與量化后的系數(shù)一起編碼。本領(lǐng)域技術(shù)人員將認(rèn)識到用于實現(xiàn)視頻編碼器的細(xì)節(jié)和可能變型。解碼器50包括:熵解碼器52、解量化器54、逆變換處理器56、空間補償器57和解塊處理器60。解塊處理器60可以包括解塊和過濾處理器。幀緩沖器58提供重構(gòu)幀以便應(yīng)用運動補償?shù)倪\動補償器62使用??臻g補償器57表示根據(jù)先前解碼塊來恢復(fù)特定幀內(nèi)編碼塊的視頻數(shù)據(jù)的操作。熵解碼器52接收并解碼比特流14,以恢復(fù)量化后的系數(shù)。在熵解碼過程中,還可以恢復(fù)輔助信息,如果適用,一些輔助信息可以提供給運動補償環(huán)路,以用于運動補償。例如,熵解碼器52可以恢復(fù)運動矢量和/或針對幀間編碼宏塊的參考幀信息。然后,解量化器54對量化后的系數(shù)進行解量化,以產(chǎn)生變換域系數(shù),然后,逆變換處理器56對變換域系數(shù)進行逆變換,以重建“視頻數(shù)據(jù)”。可以認(rèn)識到,在一些情況下,如對于幀內(nèi)編碼的宏塊或編碼單元,重建的“視頻數(shù)據(jù)”是相對于幀內(nèi)先前解碼塊的、用于空間補償?shù)臍埐顢?shù)據(jù)??臻g補償器57根據(jù)殘差數(shù)據(jù)和來自先前解碼塊的像素數(shù)據(jù)來產(chǎn)生視頻數(shù)據(jù)。在其他情況下,如對于幀間編碼的宏塊或編碼單元,來自逆變換處理器56的重建“視頻數(shù)據(jù)”是相對于來自不同幀的參考塊的、用于運動補償?shù)臍埐顢?shù)據(jù)。這里,空間和運動補償均可以稱為“預(yù)測操作”。運動補償器62在幀緩沖器58內(nèi)定位專用于特定幀間的編碼宏塊或編碼單元的參考塊。運動補償器62基于專用于幀間編碼的宏塊或編碼單元的參考幀信息和運動矢量來進行該操作。然后, 運動補償器62提供參考塊像素數(shù)據(jù),以與殘差數(shù)據(jù)組合,得到針對該編碼單元/宏塊的重構(gòu)視頻數(shù)據(jù)。然后,可以對重構(gòu)幀/片應(yīng)用解塊/過濾過程,如解塊處理器60所示。在解塊/過濾之后,輸出幀/片作為解碼視頻幀16,例如以在顯示設(shè)備上顯示??梢岳斫猓曨l回放機(如計算機、機頂盒、DVD或藍光播放器和/或移動手持設(shè)備)可以在輸出設(shè)備上顯示之前將解碼幀緩沖在存儲器中。期望兼容MPEG-H的編碼器和解碼器將具有這些相同或類似特征中的多個特征。對量化后的變換域系數(shù)的編碼和解碼如上面注意到的,對量化后的變換域系數(shù)的塊或集合的熵編碼包括對該量化后的變換域系數(shù)的塊或集合的有效圖(例如,有效系數(shù)標(biāo)記集合)進行編碼。該有效圖是指示非零系數(shù)出現(xiàn)在哪些位置(從DC位置到末位有效系數(shù)位置)的塊的二進制映射。可以根據(jù)掃描順序(其可以是垂直的、水平的、對角線的、Z字形的、或者適用的編碼標(biāo)準(zhǔn)規(guī)定的任何其他掃描順序)將有效圖轉(zhuǎn)換成矢量。該掃描通常按照“逆”順序完成,該“逆”順序即:從末位有效系數(shù)開始,并且按照逆方向工作反向穿過有效圖,直到到達左上角
處的有效系數(shù)標(biāo)記。在本描述中,術(shù)語“掃描順序”旨在表示處理標(biāo)記、系數(shù)或組所依照的順序(視情況而定),并且可以包括通俗地稱為“逆掃描順序”的順序。
然后,使用適用的上下文自適應(yīng)編碼機制對每個有效系數(shù)標(biāo)記進行熵編碼。例如,在許多應(yīng)用中,可以使用上下文自適應(yīng)二進制算術(shù)編碼(CABAC)機制。利用16 X 16和32 X 32的有效圖,有效系數(shù)標(biāo)記的上下文(在大多數(shù)情形下)基于相鄰有效系數(shù)標(biāo)記值。在針對16X 16和32X 32的有效圖所使用的上下文中,存在專用于比特位置
和(在一些示例實現(xiàn)中)專用于相鄰比特位置的特定上下文,但是有效系數(shù)標(biāo)記中的大多數(shù)取基于相鄰有效系數(shù)標(biāo)記的累積值的四個或五個上下文中的一個。在這些實例中,對有效系數(shù)標(biāo)記的正確上下文的確定取決于對相鄰位置(通常是5個位置,但是在一些實例中可以是更多或更少的位置)處的有效系數(shù)標(biāo)記的值的確定以及求和。于是,可以對那些非零系數(shù)的有效系數(shù)級別進行編碼。在一個示例實現(xiàn)中,可以通過下述方式對所述級別進行編碼:首先對絕對值級別大于I的那些非零系數(shù)構(gòu)成的圖進行編碼。然后,可以對級別大于2的那些非零系數(shù)構(gòu)成的另一圖進行編碼。然后,對絕對值大于2的系數(shù)中的任何系數(shù)的值或級別進行編碼。在一些情形下,被編碼的值可以是實際值減去3。還對非零系數(shù)的符號進行編碼。每個非零系數(shù)具有指示該非零系數(shù)的級別是負(fù)還是正的符號位。已經(jīng)做出隱藏變換單元中的第一系數(shù)的符號位的提議:Clare,Gordon, etal.,“Sign Data Hiding”,JCTVC-G271,7* Meet ing, Geneva, 21-30November, 2011 在該提議下,通過變換單元中的量化后的系數(shù)的總和的奇偶校驗來對變換單元中的第一系數(shù)的符號進行編碼。在該奇偶校驗不與第一系數(shù)的實際符號對應(yīng)的情況下,編碼器必須將系數(shù)之一的級別向上或向下進行值為I的調(diào)整,以便調(diào)整該奇偶校驗。將使用RDOQ來確定要調(diào)整哪個系數(shù)以及在哪個方向上調(diào)整。前面的工作關(guān)注于使用多級有效圖?,F(xiàn)在參考圖3,圖3示出了按照多級對角線掃描順序示出的16x16的變換單元100。變換單元100被分割成16個連續(xù)的4X4系數(shù)組或“有效系數(shù)標(biāo)記集合”。在每個系數(shù)組內(nèi),對角線掃描順序被應(yīng)用在該組內(nèi),而不是橫跨整個變換單元600。集合或系數(shù)組自身按照掃描順序進行處理,在該示例實現(xiàn)中也是對角線掃描順序。應(yīng)該注意,該示例中的掃描順序被示為“逆”掃描順序;也即,該掃描順序被示出為從右下系數(shù)組開始按向左下的對角線方向朝著左上系數(shù)組前進。在一些實現(xiàn)中,可以沿另一方向定義相同的掃描順序;也即,按向右上的對角線方向前進,并且當(dāng)在編碼或解碼期間應(yīng)用時,可按照“逆”掃描順序應(yīng)用。對多級有效圖的使用涉及對LI或更聞級別的有效圖的編碼,所述LI或更聞級別的有效圖指示哪些系數(shù)組可被期望包含非零有效系數(shù)標(biāo)記以及哪些系數(shù)組包含全零有效系數(shù)標(biāo)記。對可被期望包含非零有效系數(shù)標(biāo)記的系數(shù)組的有效系數(shù)標(biāo)記進行編碼,而不對包含全零有效系數(shù)標(biāo)記的系數(shù)組進行編碼(除非它們是由于假定它們包含至少一個非零有效系數(shù)標(biāo)記的特殊情形例外而被編碼的組)。每個系數(shù)組具有有效系數(shù)組標(biāo)記(除非適用系數(shù)組具有假定值的標(biāo)記的特殊情形,諸如包含末位有效系數(shù)的組、左上的組,等等)。對于編碼和解碼而言,對多級有效圖的使用有利于對殘差數(shù)據(jù)的模塊化處理。
較大的TU給出隱藏多個符號位的機會。TU可被分割或劃分成非零系數(shù)集合,并且針對每個非零系數(shù)集合,使用該集合中的非零系數(shù)的總和的奇偶校驗,可以隱藏符號位。在一個實施例中,可以使得非零系數(shù)集合與針對多級有效圖定義的系數(shù)組相對應(yīng)。無論數(shù)據(jù)類型如何,都可以使用單個閾值來確定針對特定非零系數(shù)集合是否隱藏符號位。在一個示例中,閾值測試是基于該集合中的第一非零系數(shù)與最后一個非零系數(shù)之間的系數(shù)的數(shù)目。也即,在該集合的第一和最后一個非零系數(shù)之間的系數(shù)的數(shù)目是否至少等于閾值數(shù)目。在另一示例中,該測試可以是基于在該集合中的非零系數(shù)的數(shù)目是否至少等于閾值數(shù)目。在又一個實施例中,該測試可以是基于在該集合中的非零系數(shù)的絕對值的總和超出閾值。在又一個實施例中,可以應(yīng)用這些測試的組合;也即,在該集合中必須有至少最小數(shù)目的系數(shù)并且系數(shù)的累積絕對值必須超過閾值。還可以使用這些閾值測試的變形?,F(xiàn)在參考圖4,其示出了示例16 X 16的變換單元120。變換單元120被分割成4X4的系數(shù)組,即16個系數(shù)集合。這些系數(shù)組按其處理順序(例如逆對角線掃描順序)被編號為 1、2、3...16。在第一實施例中,每個系數(shù)組是用于符號位隱藏目的的系數(shù)集合。也即,相對閾值對每個系數(shù)組進行測試,以確定該系數(shù)組是否適用于符號位隱藏。如上面提到的,該測試可以是:該系數(shù)組包含在該系數(shù)組內(nèi)的第一非零系數(shù)和最后一個非零系數(shù)之間的至少最小數(shù)目的系數(shù)。在第二實施例中,用于符號位隱藏的系數(shù)集合是通過對系數(shù)組進行分組來形成的。圖5示出了 16X16的TU 140,在其上示出了將系數(shù)組分成四個系數(shù)集合的示例分組。在該示例中,用于符號位隱藏目的的每個系數(shù)集合包含四個系數(shù)組。每個集合中的四個系數(shù)組是按掃描順序的連續(xù)的組。例如,第一系數(shù)集合142包含系數(shù)組16、15、14和13。第二系數(shù)集合144包含系數(shù)組12、11、10和9。第三系數(shù)集合146包含系數(shù)組8、7、6和5。最后,第四系數(shù)集合148包含系數(shù)組4、3、2和I。在該實施例中,可以針對每個系數(shù)集合,隱藏符號位。也即,每個TU 140,可以隱藏多達4個符號位。針對每個系數(shù)集合142、144、146和148,將第一和最后一個非零系數(shù)之間的系數(shù)數(shù)目(或者非零系數(shù)的數(shù)目,或者那些系數(shù)的累積總值)相對于閾值進行測試,以確定是否針對該集合隱藏符號位。該集合 中的那些系數(shù)的絕對值的總和的奇偶校驗通過其隱藏符號位的機制。如果該奇偶校驗與要隱藏的符號不對應(yīng),則通過對該集合中的系數(shù)之一的級別進行調(diào)整來調(diào)整該奇偶校驗。圖6示出了利用16X16的TU150進行符號位隱藏的系數(shù)集合的第三實施例。在該實施例中,集合同樣是基于系數(shù)組來形成的,但是集合不一定包含相同數(shù)目的系數(shù)或系數(shù)組。例如,在該示圖中,定義了五個系數(shù)集合。第一集合152包含系數(shù)組I到6。第二集合154包含四個系數(shù)組7、8、9和10。第三集合156包含系數(shù)組11、12和13。第四集合158包含系數(shù)組14和15。第五集合159僅包含左上系數(shù)組16。應(yīng)該理解,該實施例在變換單元150中的很可能存在較少非零系數(shù)的區(qū)域提供較大的系數(shù)集合,以及在變換單元150中通常存在較多非零系數(shù)的區(qū)域提供較小的系數(shù)集合。注意,上述實施例可應(yīng)用于32X32或者更大的TU大小以及8X8的TU大小,只要系數(shù)組結(jié)構(gòu)適用于那些TU。圖7示出了第四實施例,其中用于8X8的變換單元160內(nèi)的符號位隱藏的系數(shù)集合是在不堅持系數(shù)組結(jié)構(gòu)的情況下形成的。8X8的變換單元可以具有也可以不具有出于有效圖編碼的目的進行的系數(shù)組分割。在任何情況下,在該實施例中,針對符號位編碼和隱藏,使用基于變換單元的對角線掃描來處理系數(shù)。在該情形下,系數(shù)集合被形成為使得按掃描順序?qū)B續(xù)的系數(shù)進行分組。例如,在該示圖中,變換單元160被分組成四個系數(shù)集合,每個系數(shù)集合包含按掃描順序的16個連續(xù)的系數(shù)。在圖7中這些組被標(biāo)記為162、164、166和 168。在又一實施例中,系數(shù)集合可以不堅持掃描順序。也即,每個集合可以包括來自變換單元中的較高頻率位置的一些系數(shù)和來自變換單元中的較低頻率位置的一些系數(shù)。這些集合中的所有系數(shù)在掃描順序上可能不一定是相鄰的。圖8示出了第五實施例,其中用于16X16的TU 170內(nèi)的符號位隱藏的系數(shù)集合是使用系數(shù)組結(jié)構(gòu)和掃描順序而動態(tài)形成的。在該實施例中,編碼器和解碼器通過服從掃描順序且跟蹤相對于閾值測量的量直到達到該閾值來形成集合,而不是基于變換單元大小和掃描順序定義固定的系數(shù)集合。一旦達到閾值,則針對編碼器和解碼器當(dāng)時正在處理的系數(shù)組,隱藏符號位。作為示例,圖8示出了系數(shù)組[2,2]內(nèi)的末位有效系數(shù)。按照掃描順序,編碼器和解碼器然后依次移動到系數(shù)組[1,3]、[3,0]和[2,1]。當(dāng)處理系數(shù)組[2,1]中的系數(shù)時,達到閾值。因此,系數(shù)組[2,1]中的按逆掃描順序要處理的最后一個非零系數(shù)的符號位被隱藏在從末位有效系數(shù)(LSC)開始到貫穿當(dāng)前系數(shù)組[2,I]且包括當(dāng)前系數(shù)組[2,I]內(nèi)的所有系數(shù)的系數(shù)絕對值的累積值的奇偶校驗中。該示例中的閾值測試可以基于存在最少數(shù)目的非零系數(shù),或者基于系數(shù)的絕對值超過某個閾值。參考標(biāo)號174指示關(guān)于在特定系數(shù)組中的“最后一個”或最左上角的系數(shù)的符號位隱藏操作。在第六實施例中,符號位隱藏是基于系數(shù)組來完成的,并且用于確定系數(shù)組是否適合于進行符號位隱藏的標(biāo)準(zhǔn)是根據(jù)先前解碼的系數(shù)組動態(tài)調(diào)整的。作為示例,如果緊靠其右方的系數(shù)組或緊靠其底部的系數(shù)組具有非零系數(shù),則只要當(dāng)前系數(shù)組包含最少兩個非零系數(shù),就確定當(dāng)前系數(shù)組適合于進行符號位隱藏。如果在系數(shù)組內(nèi)的第一非零系數(shù)和最后一個非零系數(shù)之間至少包含最小數(shù)目的系數(shù),則也可確定該系數(shù)組是適合的。應(yīng)該理解,在前述實施例中的一些實施例中,一個系數(shù)組中的符號位隱藏可以基于依賴于另一系數(shù)組中的系數(shù)的奇偶校驗值來實現(xiàn)。換言之,一個系數(shù)組中的系數(shù)的符號值可被隱藏在通過對另一系數(shù)組中的系數(shù)的級別改變進行的奇偶校驗中。此外,應(yīng)該理解,在前述實施例中的一些實施例中,系數(shù)集合中的被隱藏的符號位可以是來自不同語法單元,如運動矢量差標(biāo)記(例如,mvd_sign_flag)。在編碼器側(cè),做出關(guān)于在奇偶校驗值與符號不對應(yīng)的情況下為了隱藏符號位要調(diào)整哪個系數(shù)的判決。在奇偶校驗值需要調(diào)整的情況下,為了改變該奇偶校驗,必須將系數(shù)級別加I或者減I。在一個實施例中,調(diào)節(jié)系數(shù)級別的過程中的第一步驟是確定搜索范圍,即按掃描順序的開始位置和結(jié)束位置。然后,對該范圍內(nèi)的系數(shù)進行評估,并且選擇一個系數(shù)以進行改變。在一個示例性實施例中,該搜索范圍可以是從按掃描順序的第一非零系數(shù)到最后一個系數(shù)。利用多級有效圖,可以改變針對子集的搜索范圍的結(jié)束位置,以利用塊級信息。具體地,如果一個子集包含剛好是整個TU中的最后一個非零系數(shù),(所謂的全局中的最后一個,或者末位有效系數(shù)),可以將搜索范圍確立為從第一非零系數(shù)到最后一個非零系數(shù)。對于其他子集,搜索范圍可被擴展到從第一非零系數(shù)到當(dāng)前子塊的結(jié)束的范圍。 在一個實施例中,開始位置可被擴展為:有條件地包括在第一非零的量化后的系數(shù)前面的未量化的系數(shù)。特別地,考慮量化前的所有系數(shù)。具有與要隱藏的符號相同的符號的未量化的系數(shù)將被包括在搜索中。對于從位置O到第一非零的量化后的系數(shù)的位置的未量化的系數(shù),將在該搜索中評估和測試將量化后的系數(shù)從O改變到I的代價。用于調(diào)整系數(shù)級別的過程中的另一問題是定義用于評估調(diào)整的影響的代價計算。當(dāng)關(guān)心計算復(fù)雜度時,代價可以是基于失真并且不考慮速率,在該情況下搜索是要最小化失真。另一方面,當(dāng)計算復(fù)雜度不重要時,代價可以包括速率和失真,使得最小化速率失真代價。如果啟用RD0Q,則RDOQ可被用于調(diào)整級別。然而,在許多情況下,RDOQ的計算復(fù)雜度可能是不利的,并且可能不啟用RD0Q。因此,在一些實施例中,在編碼器處可以應(yīng)用簡化的速率-失真分析以實現(xiàn)符號位隱藏??梢酝ㄟ^粗略計算因為系數(shù)加I造成的失真和因為將系數(shù)減I造成的失真,對在該集合中的第一非零系數(shù)與該集合中的最后一個非零系數(shù)之間的每個系數(shù)進行測試。一般而言,系數(shù)值u具有實際值U+δ。由(Sq)2給出失真。如果該系數(shù)u通過加I向上調(diào)整為U+1,則得到的失真可以估計如下:q2(l-2 δ)如果系數(shù)U是通過減I向下調(diào)整為U-1,則得到的失真可以估計如下:q2(l+2 δ)應(yīng)該認(rèn)識到,對于塊間編碼(inter-coded)的情形,當(dāng)RDOQ關(guān)閉時,量化失真δ在[-1/6到+5/6]的范圍內(nèi)。在塊內(nèi)編碼(intra-coded)塊的情形下,當(dāng)RDOQ關(guān)閉時,量化失真δ在[-1/3到+2/3]的范圍內(nèi)。當(dāng)RDOQ開啟時,δ的范圍將發(fā)生變化。然而,上面的失真增長的計算仍然有效,無論δ的范圍是多少。編碼器還使 用邏輯規(guī)則集合(即,預(yù)定的速率代價標(biāo)準(zhǔn))做出關(guān)于各個系數(shù)的速率代價的粗略估計。例如,在一個實施例中,預(yù)定的速率代價標(biāo)準(zhǔn)可以包括:u+1 (u 古 O 和 u 古-1) — 0.5 比特u-1 (u 古 O 和 u 古 +1) — -0.5 比特u = I或-1并且改變到O — -1-0.5-0.5比特U = O并且改變到I或-1 — 1+0.5+0.5比特其中,符號標(biāo)記的代價被估計為I比特,有效系數(shù)標(biāo)記的代價被估計為0.5個比特,以及從u到u+1的代價增長被估計為0.5個比特。在其他實施例中可以使用其他規(guī)則或估計。現(xiàn)在參考圖9,其示出了具有基于系數(shù)組的符號位隱藏的、對視頻數(shù)據(jù)進行解碼的示例過程200。過程200基于上面描述的第二實施例。在研究本說明之后,本領(lǐng)域技術(shù)人員將明白對過程200的替代和修改,以實現(xiàn)所描述的其他實施例。在操作202中,設(shè)置閾值。在一些實施例中,該閾值可以是在解碼器中預(yù)定的或者預(yù)先配置的。在其他實施例中,該值可以是從編碼視頻數(shù)據(jù)的比特流中抽取的。例如,閾值可以在圖像頭中,或者在比特流內(nèi)的其他位置。在操作204中,解碼器按掃描順序識別當(dāng)前系數(shù)組(即系數(shù)集合)中的第一非零位置,以及當(dāng)前系數(shù)組中的最后一個非零位置。然后,確定按掃描順序在該系數(shù)組中的第一和最后一個非零系數(shù)之間的系數(shù)的數(shù)目。
在操作206中,解碼器從比特流中解碼出符號位。針對除了該系數(shù)組中的最左上的非零系數(shù)(逆掃描順序中的最后一個非零系數(shù))之外的該系數(shù)組中的每個非零系數(shù),解碼符號位。符號位被應(yīng)用到其各自的非零系數(shù)。例如,如果適用的慣例是值為O的符號位表示“正”以及值為I的符號位表示“負(fù)”,則對于設(shè)置為I的所有符號位,對應(yīng)的系數(shù)級別為“負(fù)”。在操作208中,解碼器評估:該系數(shù)組中按掃描順序在第一非零系數(shù)和最后一個非零系數(shù)之間的系數(shù)的數(shù)目是否超過閾值。如果不超過,則在編碼器處沒使用符號位隱藏,因此在操作210中解碼器解碼出最左上的非零系數(shù)(逆掃描順序中的最后一個),并且將它應(yīng)用到系數(shù)級別。如果系數(shù)數(shù)目達到閾值,則在操作212中解碼器評估當(dāng)前系數(shù)組中的系數(shù)的總和的絕對值是偶數(shù)還是奇數(shù)(即,其奇偶校驗)。如果是偶數(shù),則最左上的非零系數(shù)的符號為正,并且解碼器不需要對它進行調(diào)節(jié)。如果是奇數(shù),則最左上的非零系數(shù)的符號為負(fù),因此在操作214中使得該系數(shù)為負(fù)。
在操作216中,解碼器確定是否已經(jīng)完成對系數(shù)組的處理。如果完成,則退出過程200。否則,在操作218中按組掃描順序移動到下一個系數(shù)組,并且返回操作204。在一個實施例中,系數(shù)集合的大小可以減小到單個系數(shù)。也即,符號位隱藏可以是基于單個系數(shù)的符號隱藏。在該實施例中,測試每個系數(shù),以檢查是否隱藏其符號信息。一個示例測試是將系數(shù)級別的大小與給定閾值進行比較。對于具有大于閾值的級別的系數(shù),隱藏其符號位;否則使用傳統(tǒng)的符號位編碼/解碼。為了在單個系數(shù)的情形下應(yīng)用符號位隱藏,將符號信息與系數(shù)級別的奇偶校驗進行比較。作為示例,奇偶校驗為偶數(shù)可以對應(yīng)于正號,而奇數(shù)可以對應(yīng)于負(fù)號。如果級別與符號不對應(yīng),則編碼器調(diào)整該級別。應(yīng)該理解,該技術(shù)隱含了:在閾值之上,所有負(fù)級別為奇數(shù),而所有正級別為偶數(shù)。在某種意義上,這可被認(rèn)為實際上對系數(shù)的量化步驟大小的修改具有大于閾值的量。用于實現(xiàn)符號位隱藏的示例語法提供如下。該示例語法僅是一種可能實現(xiàn)。在該示例中,符號位隱藏是基于系數(shù)組來應(yīng)用的,并且閾值測試是基于從系數(shù)組中的第一非零系數(shù)到系數(shù)組中的最后一個非零系數(shù)的系數(shù)數(shù)目。在圖片頭中發(fā)送標(biāo)為sign_data_hiding的標(biāo)記,該標(biāo)記指示符號位隱藏是否啟用。如果啟用,則該圖片頭還包含參數(shù)tsig,該參數(shù)tsig是閾值。示例語法闡述如下:
權(quán)利要求
1.一種通過重構(gòu)變換單元的系數(shù)對編碼視頻的比特流進行解碼的方法,所述比特流編碼所述變換單元的兩個或更多符號位集合,每個符號位集合與所述變換單元的相應(yīng)系數(shù)集合相對應(yīng),其中每個符號位指示相應(yīng)集合內(nèi)的對應(yīng)非零系數(shù)的符號,所述方法包括: 針對所述兩個或更多符號位集合中的每一個符號位集合, 對與該符號位集合對應(yīng)的相應(yīng)集合中的系數(shù)的絕對值求和,以獲得奇偶校驗值;以及 基于所述奇偶校驗值是偶數(shù)還是奇數(shù),向所述相應(yīng)集合內(nèi)的系數(shù)之一分派符號。
2.根據(jù)權(quán)利要求1所述的方法,其中所述相應(yīng)系數(shù)集合中的每一個系數(shù)集合與相應(yīng)的4X4系數(shù)塊相對應(yīng)。
3.根據(jù)權(quán)利要求1所述的方法,其中所述相應(yīng)系數(shù)集合中的每一個系數(shù)集合與相應(yīng)的4X4系數(shù)塊的組相對應(yīng),以及每個所述組中的系數(shù)塊是按塊級掃描順序的連續(xù)的塊。
4.根據(jù)權(quán)利要求1所述的方法,其中所述方法還包括:確定在所述相應(yīng)系數(shù)集合中在按掃描順序的第一非零系數(shù)和最后一個非零系數(shù)之間的系數(shù)的數(shù)目是否超過閾值。
5.根據(jù)權(quán)利要求1所述的方法,其中分派包括:如果所述奇偶校驗值是奇數(shù),則使得所述系數(shù)之一為負(fù),以及如果所述奇偶校驗值是偶數(shù),則保留所述系數(shù)之一為正。
6.一種對編碼數(shù)據(jù)的比特流進行解碼以重構(gòu)變換單元的系數(shù)的解碼器,所述解碼器包括: 處理器; 存儲器;以及 解碼應(yīng)用,存儲在存儲器中,并且包含用于將所述處理器配置為執(zhí)行根據(jù)權(quán)利要求1到5中任一項所述的方法的指令。
7.—種通過對變換單元的系數(shù)的符號位進行編碼來編碼視頻的比特流的方法,所述方法包括: 針對所述變換單元的兩個或更多系數(shù)集合中的每一個, 對該集合中的系數(shù)的絕對值求和,以獲得奇偶校驗值; 確定該集合中的系數(shù)之一的符號不對應(yīng)于所述奇偶校驗值;以及, 將該集合中的系數(shù)的級別進行值為I的調(diào)整,以便將所述奇偶校驗值改變?yōu)榕c所述系數(shù)之一的符號相對應(yīng)。
8.根據(jù)權(quán)利要求7所述的方法,還包括:針對所述兩個或更多系數(shù)集合中的每一個,對該集合中除所述系數(shù)之一之外的所有非零系數(shù)的符號位進行編碼。
9.根據(jù)權(quán)利要求7所述的方法,其中所述兩個或更多系數(shù)集合均包括相應(yīng)的4X4系數(shù)塊。
10.根據(jù)權(quán)利要求7所述的方法,其中所述系數(shù)集合中的每一個系數(shù)集合與相應(yīng)的4X4系數(shù)塊的組相對應(yīng),以及每個所述組中的系數(shù)塊是按塊級掃描順序的連續(xù)的塊。
11.根據(jù)權(quán)利要求7所述的方法,其中所述方法還包括:確定在所述系數(shù)集合中在按掃描順序的第一非零系數(shù)和最后一個非零系數(shù)之間的系數(shù)的數(shù)目是否超過閾值。
12.根據(jù)權(quán)利要求7所述的方法,其中調(diào)整級別包括:使用速率-失真優(yōu)化來選擇所述集合中要調(diào)整的系數(shù)。
13.根據(jù)權(quán)利要求12所述的方法,其中所述速率-失真優(yōu)化使用預(yù)定的代價標(biāo)準(zhǔn)來評估速率代價。
14.一種通過對變換單元的系數(shù)的符號數(shù)據(jù)進行編碼來編碼視頻的比特流的編碼器,所述編碼器包括: 處理器; 存儲器;以及 編碼應(yīng)用,存儲在存儲器中,并且包含用于將所述處理器配置為執(zhí)行根據(jù)權(quán)利要求7到13中任一項所述的方法的指令。
15.一種存儲處理器可執(zhí)行指令的非瞬時處理器可讀介質(zhì),所述處理器可執(zhí)行指令在被執(zhí)行時將一個或多個處理器配置為執(zhí)行根據(jù)權(quán)利要求1到5和7到13中任一項所述的 方法。
全文摘要
描述了對視頻數(shù)據(jù)進行編碼和解碼的方法,以對變換單元的系數(shù)進行編碼或解碼。具體地,使用符號位隱藏對非零系數(shù)的符號位進行編碼。針對變換單元定義兩個或多個系數(shù)集合,并且針對滿足閾值測試的每個集合可以隱藏符號位。該集合可以與否則會在多級有效圖編碼和解碼中使用的系數(shù)組對應(yīng)。
文檔編號H04N7/50GK103220515SQ201310019680
公開日2013年7月24日 申請日期2013年1月18日 優(yōu)先權(quán)日2012年1月20日
發(fā)明者王競, 余祥, 何大可 申請人:捷訊研究有限公司