亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于無損視頻編碼的預(yù)測殘差編碼的制作方法

文檔序號:7990840閱讀:219來源:國知局
用于無損視頻編碼的預(yù)測殘差編碼的制作方法
【專利摘要】一種在視頻編碼中使用的設(shè)備,所述設(shè)備包括處理器,所述處理器用于:生成當(dāng)前塊的預(yù)測塊;計(jì)算所述當(dāng)前塊與所述預(yù)測塊之間的差值以生成殘差塊,其中所述殘差塊包括多個(gè)殘差值;以及,如果所述多個(gè)殘差值包括至少一個(gè)非零殘差值,其中所述至少一個(gè)非零殘差值包括至少一個(gè)正負(fù)號和至少一個(gè)殘差水平,則對所述至少一個(gè)正負(fù)號執(zhí)行熵編碼,并且對所述至少一個(gè)殘差水平執(zhí)行熵編碼,其中一個(gè)非零殘差值包括一個(gè)正負(fù)號和一個(gè)殘差水平。
【專利說明】用于無損視頻編碼的預(yù)測殘差編碼
相關(guān)申請案的交叉參考
[0001]本發(fā)明要求2011年6月30日高文等人遞交的發(fā)明名稱為“用于復(fù)合視頻的無損編碼工具(Lossless Coding Tools for Compound Video)”的第61/503,534號美國臨時(shí)專利申請案的在先申請優(yōu)先權(quán),以及2011年7月12日高文等人遞交的發(fā)明名稱為“用于復(fù)合視頻的額外的無損編碼工具(Addit1nal Lossless Coding Tools for Compound Video)”的第61/506,958號美國臨時(shí)專利申請案的在先申請優(yōu)先權(quán),上述在先申請的內(nèi)容以引入的方式并入本文本中,如全文再現(xiàn)一般。
關(guān)于由聯(lián)邦政府贊助的 研究或開發(fā)的聲明
[0002]不適用。
參考縮微膠片附錄
[0003]不適用。
【技術(shù)領(lǐng)域】

【背景技術(shù)】 [0004]即使敘述相對較短的影片,也需要大量的視頻數(shù)據(jù),當(dāng)數(shù)據(jù)要在帶寬容量受限的通信網(wǎng)絡(luò)中流過或以其他方式傳送時(shí),這樣可能會造成困難。因此,視頻數(shù)據(jù)通常要先壓縮然后在現(xiàn)代電信網(wǎng)絡(luò)中傳送。視頻壓縮裝置通常在源處使用軟件和/或硬件,以在傳輸之前對視頻數(shù)據(jù)進(jìn)行編碼,從而減少用來表示數(shù)字視頻圖像所需的數(shù)據(jù)量。接著,壓縮數(shù)據(jù)在目的地處由視頻解壓裝置接收,該視頻解壓裝置用于對視頻數(shù)據(jù)進(jìn)行解碼。由于網(wǎng)絡(luò)資源有限,因此需要能提高壓縮率但基本上不會降低圖像質(zhì)量的改進(jìn)式壓縮/解壓技術(shù)。

【發(fā)明內(nèi)容】

[0005]在一個(gè)實(shí)施例中,本發(fā)明包括一種在視頻編碼使用的設(shè)備,所述設(shè)備包括處理器,所述處理器用于:生成當(dāng)前塊的預(yù)測塊;計(jì)算當(dāng)前塊與預(yù)測塊之間的差值以生成殘差塊,其中所述殘差塊包括多個(gè)殘差值;以及如果所述多個(gè)殘差值包括至少一個(gè)非零殘差值,其中所述至少一個(gè)非零殘差值包括至少一個(gè)正負(fù)號和至少一個(gè)殘差水平(residual level),則對所述至少一個(gè)正負(fù)號執(zhí)行熵編碼,并且對所述至少一個(gè)殘差水平執(zhí)行熵編碼,其中一個(gè)非零殘差值包括一個(gè)正負(fù)號和一個(gè)殘差水平。
[0006]在另一個(gè)實(shí)施例中,本發(fā)明包括一種在視頻編碼使用的方法,所述方法包括:生成當(dāng)前塊的預(yù)測塊;計(jì)算當(dāng)前塊與預(yù)測塊之間的差值以生成殘差塊,其中所述殘差塊包括多個(gè)殘差值;以及如果所述多個(gè)殘差值包括至少一個(gè)非零殘差值,其中所述至少一個(gè)非零殘差值包括至少一個(gè)正負(fù)號和至少一個(gè)殘差水平,則對所述至少一個(gè)正負(fù)號執(zhí)行熵編碼,并且對所述至少一個(gè)殘差水平執(zhí)行熵編碼,其中一個(gè)非零殘差值包括一個(gè)正負(fù)號和一個(gè)殘差水平。
[0007]在又一個(gè)實(shí)施例中,本發(fā)明包括一種在視頻解碼中使用的設(shè)備,所述設(shè)備包括處理器,所述處理器用于:接收包括多個(gè)編碼殘差塊和多個(gè)編碼水平反向標(biāo)志(encodedlevel invers1n flag)的比特流,其中每個(gè)編碼水平反向標(biāo)志對應(yīng)于一個(gè)編碼殘差塊;對所述多個(gè)編碼殘差塊執(zhí)行熵解碼以生成多個(gè)解碼殘差塊;以及對所述多個(gè)編碼水平反向標(biāo)志執(zhí)行熵解碼以生成多個(gè)解碼水平反向標(biāo)志。
[0008]從結(jié)合附圖和所附權(quán)利要求書進(jìn)行的以下詳細(xì)描述將更清楚地理解這些和其他特征。
【專利附圖】

【附圖說明】
[0009]為了更完整地理解本發(fā)明,現(xiàn)在參考以下結(jié)合附圖和詳細(xì)描述進(jìn)行的簡要描述,其中相同參考標(biāo)號表不相同部分。
[0010]圖1是變換略過(bypass)編碼方案的一個(gè)實(shí)施例的示意圖。
[0011]圖2是變換略過解碼方案的一個(gè)實(shí)施例的示意圖。
[0012]圖3是殘差塊編碼方法的一個(gè)實(shí)施例的流程圖。
[0013]圖4是殘差塊解碼方法的一個(gè)實(shí)施例的流程圖。 [0014]圖5為網(wǎng)絡(luò)單元的一個(gè)實(shí)施例的示意圖。
[0015]圖6為通用計(jì)算機(jī)系統(tǒng)的示意圖。
【具體實(shí)施方式】
[0016]最初應(yīng)理解,盡管下文提供一個(gè)或一個(gè)以上實(shí)施例的說明性實(shí)施方案,但可使用任何數(shù)目的技術(shù),不管是當(dāng)前已知還是現(xiàn)有的,來實(shí)施所揭示的系統(tǒng)和/或方法。本發(fā)明決不應(yīng)限于下文所說明的所述說明性實(shí)施方案、附圖和技術(shù),包含本文所說明并描述的示范性設(shè)計(jì)和實(shí)施方案,而是可在所附權(quán)利要求書的范圍以及其均等物的完整范圍內(nèi)修改。
[0017]通常,視頻媒體涉及相對較快地連續(xù)顯示一系列靜態(tài)圖像或幀,從而讓觀察者感覺到運(yùn)動。每個(gè)幀可以包括多個(gè)圖像元素或像素,每個(gè)圖像元素或像素可以表示幀中的單個(gè)參考點(diǎn)。在數(shù)字處理期間,每個(gè)像素可以被分配一個(gè)整數(shù)值(例如,0、1,……或255),所述整數(shù)值表示對應(yīng)參考點(diǎn)處的圖像質(zhì)量或特征,例如,亮度或色度。在使用中,圖像或視頻幀可以包括大量的像素(例如,在1920 X 1080的幀中包括2,073, 600個(gè)像素),因此對每個(gè)像素進(jìn)行獨(dú)立的編碼和解碼(下文中簡稱為編碼)可能是繁瑣且低效的。為了提高編碼效率,通常將視頻幀分成多個(gè)矩形塊或宏塊,每個(gè)矩形塊或宏塊可以作為預(yù)測、變換以及量化等處理的基本單元。例如,典型的NxN的塊可以包括N2個(gè)像素,其中N是大于I的整數(shù),并且通常是四的倍數(shù)。
[0018]在國際電信聯(lián)盟(ITU)電信標(biāo)準(zhǔn)化部門(ITU-T)和國際標(biāo)準(zhǔn)化組織(ISO)/國際電工技術(shù)委員會(IEC)的工作草案中,高性能視頻編碼(HEVC)將準(zhǔn)備作為下一個(gè)視頻編碼標(biāo)準(zhǔn),并且已經(jīng)引入了新的塊概念。例如,編碼單元(CU)可以指劃分為相等大小或不同大小的矩形塊的視頻幀子分區(qū)。在HEVC中,CU可以取代先前標(biāo)準(zhǔn)的宏塊結(jié)構(gòu)。根據(jù)幀間預(yù)測或幀內(nèi)預(yù)測的模式,一個(gè)CU可以包括一個(gè)或多個(gè)預(yù)測單元(PU),每個(gè)預(yù)測單元可以用作預(yù)測的基本單元。例如,對于幀內(nèi)預(yù)測,一個(gè)64x64的⑶可以被對稱地分為四個(gè)32x32PU。又例如,對于幀間預(yù)測,一個(gè)64x64的⑶可以被非對稱地分為一個(gè)16x64PU和一個(gè)48x64PU。類似地,一個(gè)PU可以包括一個(gè)或多個(gè)變換單元(TU),每個(gè)變換單元可以用作變換和/或量化的基本單元。例如,一個(gè)32x32PU可以被對稱地分為四個(gè)16xl6TU。一個(gè)PU中的多個(gè)TU可以共享相同預(yù)測模式,但是可以單獨(dú)地進(jìn)行變換。本文中,術(shù)語塊大體可以指宏塊、CU、PU或TU中的任何一者。
[0019]根據(jù)具體應(yīng)用,可以在無損模式(即,不存在失真或信息損失)或有損模式(即,存在失真)下對塊進(jìn)行編碼。在使用中,可以使用無損模式對高質(zhì)量視頻(例如,具有的YUV子采樣為4:4:4)進(jìn)行編碼,而可以使用有損模式對低質(zhì)量視頻(例如,具有的YUV子采樣為4:2:0)進(jìn)行編碼。有時(shí),單個(gè)視頻幀或視頻切片可以采用無損和有損兩種模式來對可能為矩形或不規(guī)則形狀的多個(gè)區(qū)域進(jìn)行編碼。每個(gè)區(qū)域可以包括多個(gè)塊。例如,復(fù)合視頻可以包括文本、計(jì)算機(jī)圖表和天然視圖內(nèi)容(例如,攝像機(jī)采集的視頻)等不同類型的內(nèi)容的組合。在復(fù)合幀中,可以采用無損模式對文本和圖表的區(qū)域進(jìn)行編碼,并且可以采用有損模式對天然視圖內(nèi)容的區(qū)域進(jìn)行編碼。例如,在計(jì)算機(jī)屏幕共享應(yīng)用中可能期望對文本和圖表進(jìn)行無損編碼,這是因?yàn)橛袚p編碼可能導(dǎo)致本文和圖像的質(zhì)量或保真度較差,從而造成眼部疲勞。當(dāng)前的HEVC測試模型(HM),例如,HM3.0,可以相當(dāng)有效地對天然視圖內(nèi)容進(jìn)行編碼。然而,當(dāng)前HM可能缺少針對某些視頻的無損編碼模式,因此它們的編碼效率和速度可能會受到限制。
[0020]當(dāng)對某一塊進(jìn)行編碼時(shí),可以基于一個(gè)或多個(gè)先前編碼的參考塊來生成預(yù)測塊。預(yù)測塊可以是該塊的估計(jì)版本。殘差塊可以通過從預(yù)測塊中減去該塊生成,或者從該塊中減去預(yù)測塊生成,該殘差塊可以表示預(yù)測殘差或誤差。殘差塊的殘差值也可以用于表示預(yù)測殘差。由于用來表示預(yù)測殘差所需的數(shù)據(jù)量可能通常小于用來表示原始塊所需的數(shù)據(jù)量,因此可以對殘差塊進(jìn)行編碼以實(shí)現(xiàn)較高的壓縮比。在當(dāng)前HM的有損編碼方案中,通過二維變換,例如十分類似離散余弦變換(DCT)的變換,空間域中殘差塊的殘差值可以轉(zhuǎn)換成頻域中的變換系數(shù)。在變換矩陣中,低索引變換系數(shù)(例如,在左上部分中),例如對應(yīng)于具有低空間頻率分量的大空間特征,可能具有相對較大的量值;而高索引變換系數(shù)(例如,在右下部分中),例如對應(yīng)于具有高空間頻率分量的小空間特征,可能具有相對較小的量值。此外,在接下來的量化操作中,高索引變換系數(shù)的數(shù)量可以減小為零,從而可以在隨后的編碼步驟中被跳過。
[0021]由于零變換系數(shù)可能集中于變換矩陣的右下部分,因此塊結(jié)束(EOB)符號可以用于指示最后的非零變換系數(shù)。接著,可以對每個(gè)非零變換系數(shù)的正負(fù)號(正號或符號)和絕對值進(jìn)行編碼。由于變換系數(shù)的正負(fù)號在變換矩陣中可能是隨機(jī)分布的,因此它們的編碼沒有概率模型。
[0022]本文中所揭示的是用于改進(jìn)視頻編碼的系統(tǒng)和方法。本發(fā)明提供一種變換略過無損編碼方案,它可以略過變換步驟和量化步驟,而直接對殘差塊的預(yù)測殘差進(jìn)行編碼。殘差塊可以具有不同于變換矩陣的性質(zhì),例如,大的殘差值可以在任何位置而不是集中于左上部分,因此描述了各種編碼工具來有效地對殘差塊進(jìn)行編碼。在一個(gè)實(shí)施例中,自適應(yīng)掃描方案可以適應(yīng)性地基于殘差值的分布型式來確定起始位置并且/或者基于生成殘差塊時(shí)所使用的預(yù)測模式來確定掃描順序??梢陨扇珗D來指示所有非零殘差值。由于預(yù)測殘差的正負(fù)號可以示出空間相關(guān)性,因此可以使用上下文建模在對正負(fù)號進(jìn)行編碼中提高壓縮率。此外,由于預(yù)測殘差的絕對值可以具有相對較大的量值,因此可以執(zhí)行反向操作并且可以使用熵編碼器來對反向絕對值進(jìn)行編碼??梢越?jīng)由亮度(Iuma)水平反向標(biāo)志和色度(chroma)水平反向標(biāo)志而通過信號將預(yù)測殘差中發(fā)生反向的殘差塊發(fā)送出。在本發(fā)明中,由于在變換略過無損編碼方案中實(shí)施了編碼工具,因此復(fù)合視頻等視頻可以用高保真度有效地編碼。
[0023]在使用中,在編碼器之前存在一個(gè)模塊用以對視頻幀的內(nèi)容進(jìn)行分析,并且識別出需要進(jìn)行無損編碼的某些區(qū)域(例如,文本和/或圖表區(qū)域)。關(guān)于對哪些區(qū)域以無損模式進(jìn)行編碼的信息或指令可以傳遞到編碼器?;谠撔畔ⅲ幋a器可以使用無損模式對識別出的區(qū)域進(jìn)行編碼。或者,用戶可以手動地設(shè)定使用無損模式進(jìn)行編碼的某些區(qū)域,并且向編碼器提供識別這些區(qū)域的信息。因此,根據(jù)編碼器接收到的信息,可以在無損模式和/或有損模式下對視頻(例如,復(fù)合視頻)進(jìn)行編碼。本文中,無損編碼模式可以包括變換略過編碼以及無量化變換編碼。在本文中對這兩種無損編碼方案以及有損編碼方案進(jìn)行了描述。
[0024]類似地,基于接收到的比特流中包含的信息,視頻解碼器可以使用無損模式和/或有損模式對視頻幀進(jìn)行解碼。所述無損解碼模式可以包括變換略過解碼以及無量化變換解碼。在本文中對這兩種無損解碼方案以及有損解碼方案進(jìn)行了描述。
[0025]圖1示出了可以在視頻編碼器中實(shí)施的變換略過編碼方案100的一個(gè)實(shí)施例。變換略過編碼方案100可以包括如圖1所示進(jìn)行布置的率失真優(yōu)化(RDO)模塊110、預(yù)測模塊120、熵編碼器130以及重建模塊140。在操作中,包括視頻幀(或切片)序列的輸入視頻可以被編碼器接收。本文中,幀可以指預(yù)測幀(P幀)、幀內(nèi)編碼幀(I幀)或者雙向預(yù)測幀(B幀)中的任一者。類似地,切片可以指P切片、I切片或B切片中的任一者。
[0026]RDO模塊110可以用于為一個(gè)或多個(gè)其他模塊作出邏輯決策。在一個(gè)實(shí)施例中,基于一個(gè)或多個(gè)先前編碼的幀,RDO模塊110可以確定當(dāng)前幀(或切片)如何被分為多個(gè)CU,以及⑶如何被分為一個(gè)或多個(gè)I3U和TU。例如,當(dāng)前幀的均質(zhì)區(qū)域(即,這些區(qū)域中的像素值沒有差別或差別很小)可以被分為相對較大的塊,而當(dāng)前幀的細(xì)節(jié)區(qū)域(即,這些區(qū)域中的像素值差別很大)可以被分為相對較小的塊。
[0027]此外,RDO模塊110可以通過確定如何預(yù)測當(dāng)前幀來控制預(yù)測模塊120??梢越?jīng)由幀間預(yù)測和/或幀內(nèi)預(yù)測對當(dāng)前幀進(jìn)行預(yù)測。幀間預(yù)測(即,幀之間的預(yù)測)可以利用幀序列中的時(shí)間冗余,例如,連續(xù)幀的對應(yīng)塊之間的相似性,來減少壓縮數(shù)據(jù)。在幀間預(yù)測中,RDO模塊110可以基于一個(gè)或多個(gè)參考幀中的對應(yīng)塊,來確定當(dāng)前幀中的塊的運(yùn)動矢量。另一方面,幀內(nèi)預(yù)測可以利用單個(gè)幀內(nèi)的空間冗余,例如,鄰近塊之間的相似性,來減少壓縮數(shù)據(jù)。在幀內(nèi)預(yù)測中,鄰近當(dāng)前塊的參考像素可以用于生成預(yù)測塊。幀內(nèi)預(yù)測(即,幀之內(nèi)的預(yù)測)可以使用多個(gè)可用預(yù)測模式或方向(例如,HEVC中亮度分量的35個(gè)模式)中的任何一者來實(shí)施,所述模式或方向由RDO模塊110進(jìn)行確定。例如,RDO模塊110可以針對每個(gè)預(yù)測模式來計(jì)算絕對誤差之和(SAE),并且選擇產(chǎn)生最小SAE的預(yù)測模式。
[0028]基于RDO模塊110做出的邏輯決策,預(yù)測模塊120可以利用一個(gè)或多個(gè)參考幀(中貞間預(yù)測)或多個(gè)參考像素(幀內(nèi)預(yù)測)來生成預(yù)測塊,所述預(yù)測塊可能是當(dāng)前塊的估計(jì)。隨后,可以從當(dāng)前塊中減去預(yù)測塊,從而生成殘差塊。殘差塊可以包含多個(gè)殘差值,每個(gè)殘差值可以指示當(dāng)前塊中的像素與預(yù)測塊中的對應(yīng)像素之間的差值。隨后,可以對殘差塊的所有值進(jìn)行掃描并且用熵編碼器130將這些值編碼為編碼比特流。熵編碼器130可以采用任何熵編碼方案,例如,上下文適應(yīng)性二進(jìn)制算術(shù)編碼(CABAC)編碼、索引哥倫布(Golomb)編碼,或定長編碼,或其任意組合。在變換略過編碼方案100中,由于殘差塊是在沒有變換步驟或量化步驟的情況下進(jìn)行編碼的,因此在編碼過程中不會引起任何信息損失。
[0029]為了促進(jìn)視頻幀的連續(xù)編碼,殘差塊也可以被送入重建模塊140中,該重建模塊可以生成用于未來塊的幀內(nèi)預(yù)測的參考像素或者用于未來幀的幀間預(yù)測的參考幀。如果需要,可以在參考幀/像素用于幀間/幀內(nèi)預(yù)測之前對它們執(zhí)行濾波。所屬領(lǐng)域的技術(shù)人員對預(yù)測模塊120和重建模塊140的功能是非常熟悉的,因此將不會對這些模塊進(jìn)行詳細(xì)描述。應(yīng)注意,圖1可能是視頻編碼器的簡化圖示,因此它可能只包括編碼器中所出現(xiàn)模塊的一部分。其他模塊(例如,濾波器、掃描儀,以及發(fā)射器)雖然未在圖1中示出,但是也可以包含在內(nèi)以協(xié)助視頻編碼。在從編碼器處進(jìn)行傳輸之前,編碼比特流可以進(jìn)一步配置成包含其他信息,例如視頻分辨率、幀速率、塊分區(qū)信息(大小、坐標(biāo))、預(yù)測模式等,從而可以對視頻幀的編碼序列適當(dāng)?shù)剡M(jìn)行解碼。
[0030]圖2示出了可以在視頻解碼器中實(shí)施的變換略過解碼方案200的一個(gè)實(shí)施例。變換略過解碼方案200可以對應(yīng)于變換略過編碼方案100,并且可以包括如圖2所示進(jìn)行布置的熵解碼器210、預(yù)測模塊220以及重建模塊230。在操作中,熵解碼器210可以接收含有視頻幀序列信息的編碼比特流,該熵解碼器可以將比特流解碼成未壓縮格式。熵解碼器210可以采用任何熵解碼方案,例如,CABAC解碼、索引哥倫布解碼,或者定長解碼,或其任意組合。[0031]對于被解碼的當(dāng)前塊而言,在使用熵解碼器210之后,可以生成殘差塊。此外,包含當(dāng)前塊預(yù)測模式的信息也可以由熵解碼器210進(jìn)行解碼?;谒鲱A(yù)測模式,預(yù)測模塊220可以生成當(dāng)前塊的預(yù)測塊。如果所述預(yù)測模式為幀間模式,那么可以使用一個(gè)或多個(gè)先前編碼的參考幀來生成預(yù)測塊。否則,如果預(yù)測模式為幀內(nèi)模式,那么可以使用多個(gè)先前解碼的參考像素來生成預(yù)測塊。隨后,重建模塊230可以將殘差塊與預(yù)測塊結(jié)合起來以生成重建塊。此外,為了促進(jìn)視頻幀的連續(xù)解碼,可以在參考幀中使用重建塊以對未來幀進(jìn)行幀間預(yù)測。重建塊的一些像素也可以用作同一幀中未來塊的幀內(nèi)預(yù)測的參考像素。
[0032]在使用中,如果使用變換略過編碼方案100和變換略過解碼方案200等無損方案對原始塊進(jìn)行編碼和解碼,那么在整個(gè)編碼過程中將不會引起任何信息損失。因此,如果不包括在傳輸過程中引起的失真,那么重建塊可以與原始塊完全相同。這種編碼的高保真度可以改善用戶在查看文本和圖表等視頻內(nèi)容時(shí)的體驗(yàn)。
[0033]例如,假定當(dāng)前塊中像素的亮度分量是i,而預(yù)測塊中對應(yīng)像素的亮度分量為j,其中i和j為預(yù)定范圍(例如,對于8位色彩深度而言是0-255)內(nèi)的非負(fù)自然數(shù)。那么,這兩個(gè)亮度分量之間的亮度差,表示為k,可以用如下等式簡單計(jì)算出:k=1-j。k可以是正整數(shù)或負(fù)整數(shù),并且k的范圍取決于i和j的預(yù)定范圍。例如,對于O與255之間的i和j而言,k的變化范圍為-255至255。亮度水平或量值可以指亮度差的絕對值(即,|k|),因此亮度水平總是具有非負(fù)值。應(yīng)注意,盡管以上假設(shè)使用亮度分量,但是關(guān)于亮度分量的描述同樣適用于色度分量。除非另有說明,否則在下文中殘差值可以指亮度差或色度差,并且殘差水平或量值可以指亮度水平或色度水平。此外,當(dāng)在編碼過程中略過變換步驟時(shí),術(shù)語系數(shù)(除非用于短語“變換系數(shù)”中)在下文中可以指殘差值。[0034]當(dāng)使用變換略過編碼方案時(shí),所有殘差值可以進(jìn)行掃描并且使用熵編碼器來編碼。在沒有變換步驟將非零殘差值集中在變換矩陣左上角的情況下,非零殘差值可能出現(xiàn)在殘差塊的隨機(jī)位置。此外,非零變換系數(shù)的絕對值(即,水平)通常在左上角較大而在右下角較小,與之相比,非零殘差水平也可能相對更隨機(jī)地分布在殘差塊中。例如,峰值殘差水平可以出現(xiàn)在任何位置,例如最左上、最右下位置,或任何其他位置。因此,大殘差水平出現(xiàn)在殘差塊右下角的概率也仍然很大。
[0035]在一個(gè)實(shí)施例中,所有殘差值可以在被編碼之前進(jìn)行適應(yīng)性地掃描。在適應(yīng)性掃描方案中可以使用各種起始位置和/或掃描順序。此外,適應(yīng)性掃描方案可以基于非零殘差值的分布型式和/或生成殘差塊時(shí)所使用的幀內(nèi)預(yù)測模式。在使用中,RDO模塊可以用于確定最佳掃描方案。例如,RDO可以用于測試起始位置與掃描順序的各種組合??梢葬槍γ總€(gè)測試的組合計(jì)算出殘差塊中編碼位的數(shù)量。接著,RDO可以選擇使編碼位數(shù)量最小的起始位置與掃描順序的組合。
[0036]在一個(gè)實(shí)施例中,適應(yīng)性掃描方案可以基于非零殘差值的分布型式來確定最佳起始位置。例如,考慮某一 NxN殘差塊,其殘差值表示為Z (m, η),其中N為大于一的整數(shù),m為O與N-1之間變化的行索引,η為O與N-1之間變化的列索引,且Z (m, η)為位置(m, η)處的殘差值。應(yīng)注意,盡管本文中出于說明的目的而使用NxN正方形塊,但是也可以類似地使用非正方形塊。在一個(gè)實(shí)施例中,如果非零殘差值集中在靠近右下角的位置,那么殘差值的掃描可以從殘差值Z (Ν-1,Ν-1)開始。否則,如果非零殘差值集中在靠近左上角的位置,那么殘差值的掃描可以從殘差值Z (0,0)開始。類似地,掃描也可以從Z (0,Ν-1)或Z(Ν-1,0)開始。
[0037]在使用中,可以在比特流中包含關(guān)于起始位置的信息以促進(jìn)將來的解碼。在一個(gè)實(shí)施例中,為了表示不同的起始位置,可以在HEVC句法的背景下在編碼比特流中引入2位句法元素,表示為(CO,Cl )。(CO,Cl)可以用于指示:

00,從ζ(ο,ο)開始:

OL從 Z(iV-1,0)開始;
(10,從Z(0,iV-1)開始;

Π,從 Z(iV —l,iV —I)開始。
[0038]根據(jù)以上(CO,Cl),例如,’00’句法元素可以指示出殘差值的掃描從Z(0,O)開始。應(yīng)理解,句法元素的分配值可以在本發(fā)明的原理內(nèi)變化。例如,如果有必要,那么’00’句法元素的解譯可以變?yōu)橹甘境銎鹗嘉恢脼閆 (0,N-1)。
[0039]在一個(gè)實(shí)施例中,適應(yīng)性掃描方案可以基于生成殘差塊時(shí)所使用的幀內(nèi)預(yù)測模式來確定最佳掃描順序。可能存在多個(gè)幀內(nèi)預(yù)測模式(例如,對于亮度分量而言在具有33個(gè)方向模式的HEVC中多達(dá)35個(gè)模式),因此可以使用各種方向(例如,垂直、水平、對角,以及其他方向)。在一個(gè)實(shí)施例中,如果幀內(nèi)預(yù)測方向是垂直的,那么可以在水平方向上(即,逐行地)掃描殘差值。如果幀內(nèi)預(yù)測方向是水平的,那么可以在垂直方向上(即,逐列地)掃描殘差值。如果幀內(nèi)預(yù)測方向是45度對角,那么可以按Z字形(zigzag)順序掃描殘差值。其他幀內(nèi)預(yù)測方向可以基于它們與垂直軸和水平軸的相對接近度而分類到垂直組或水平組中。例如,如果幀內(nèi)預(yù)測方向與垂直軸所成的角度小于45度,那么幀內(nèi)預(yù)測方向可以被分類到垂直組中,而且可以在水平方向上掃描殘差值。又例如,如果幀內(nèi)預(yù)測方向與水平軸所成的角度小于45度,那么幀內(nèi)預(yù)測方向可以被分類到水平組中,而且可以在垂直方向上掃
描殘差值。
[0040]在掃描完所有殘差值之后,可以生成完整顯著系數(shù)(significant coefficient)圖,以指示出顯著系數(shù)或殘差值的位置。在一個(gè)實(shí)施例中,顯著系數(shù)是簡單的非零系數(shù)。完整顯著系數(shù)圖可以包括多個(gè)二進(jìn)制符號,其中在某一位置處的每個(gè)二進(jìn)制符號’ I’指示非零系數(shù)??梢詫λ卸M(jìn)制符號進(jìn)行編碼并且將其包含在比特流中。當(dāng)前編碼方案會使用塊結(jié)束(EOB)符號來指示最后的顯著變換系數(shù),與之相比,所揭示的變換略過編碼方案可以產(chǎn)生一個(gè)殘差塊,在該殘差塊中任何系數(shù)都可能具有大的絕對值。因此,在本發(fā)明中,可以將EOB符號從比特流中移除。
[0041]在生成顯著系數(shù)圖之后,可以使用熵編碼器來對非零殘差值進(jìn)行編碼。每個(gè)非零殘差值具有兩個(gè)屬性——可以是正號(+)或負(fù)號(_)的殘差正負(fù)號,以及為正量值的殘差水平。在一個(gè)實(shí)施例中,殘差正負(fù)號和殘差水平可以單獨(dú)地進(jìn)行編碼,下文將對此進(jìn)一步描述。
[0042]殘差正負(fù)號可以使用熵編碼器來編碼。符號’I’可以用于表示’+’,而符號’O’可以用于表示可以使用例如CABAC算法等來對’I’和’O’符號進(jìn)行編碼。變換系數(shù)的正負(fù)號可以隨機(jī)分布在變換矩陣中,與這種變換系數(shù)不同的是,殘差塊中殘差正負(fù)號之間可能存在空間相關(guān)性。因此,為了在對殘差正負(fù)號進(jìn)行編碼時(shí)實(shí)現(xiàn)更高的壓縮率,可以引入上下文建模來適應(yīng)性地改變正號或負(fù)號概率。根據(jù)具體應(yīng)用,任何合適數(shù)量的上下文模型可以用于CABAC熵編碼器中。在一個(gè)實(shí)施例中,可以使用一個(gè)上下文模型。在這種情況下,相關(guān)的概率狀態(tài)及其最可能的符號(MPS)可以基于過去編碼的殘差正負(fù)號而適應(yīng)性地變化,這可能是CABAC熵編碼器中的上下文模型的繼承屬性(inherit the property)。 [0043]在另一個(gè)實(shí)施例中,多個(gè)上下文模型可以用于CABAC熵編碼器中。每個(gè)上下文模型可以對應(yīng)于若干個(gè)先前編碼的殘差正負(fù)號的不同型式。例如,在上下文模型中,可以考慮緊靠著當(dāng)前殘差正負(fù)號之前編碼的兩個(gè)殘差正負(fù)號。根據(jù)這兩個(gè)殘差正負(fù)號,可以使用四種上下文模型。在一個(gè)實(shí)施例中,具有索引0、1、2、3的上下文模型可以分別對應(yīng)于以下四種情況:兩個(gè)先前編碼的殘差正負(fù)號為(+,+)、(+,-)、(_,+)和(_,_)。應(yīng)理解,上下文模型索引與正負(fù)號型式之間的對應(yīng)性可以在本發(fā)明的原理內(nèi)變化。例如,盡管上面的索引’2’對應(yīng)于型式(_,+),但是必要時(shí),索引’2’的意義可以修改為它替代性地對應(yīng)于型式(_,_)。
[0044]在對非零值(或簡單地稱為非零)殘差正負(fù)號進(jìn)行編碼之后,可以使用熵編碼器對非零殘差水平進(jìn)行編碼。如先前所述,由于沒有執(zhí)行變換或量化,因此殘差水平可能仍然較大(例如,接近或等于255)。在視頻幀中,大的亮度和/或色度殘差水平通??梢猿霈F(xiàn)某一區(qū)域中,所述區(qū)域包含銳邊、線條和/或紋理特征,例如白色背景上的黑色文本。因此,為了有效地對可能較大的亮度和色度殘差水平進(jìn)行編碼,可以在例如PU級等上設(shè)置水平反向標(biāo)志,在下文中該標(biāo)志可以指亮度或色度水平反向標(biāo)志。水平反向標(biāo)志可以指示非零殘差水平在編碼前是否應(yīng)發(fā)生反向。
[0045]在使用中,RDO模塊可以用于確定某一殘差水平是否應(yīng)發(fā)生反向。例如,考慮對的殘差塊中的非零殘差水平進(jìn)行編碼。如果非零殘差水平的平均值大于某一預(yù)定界限(例如,水平范圍1-255中的127),那么可以將水平反向標(biāo)志’I’分配給的殘差塊。否則,如果該平均值低于預(yù)定界限,那么可以將水平反向標(biāo)志’O’分配給殘差塊。當(dāng)水平反向標(biāo)志為’I’時(shí),可以對殘差塊中的所有非零殘差水平運(yùn)用水平反向操作。在替代性實(shí)施例中,RDO模塊(例如,圖1中的RDO模塊)可以確定當(dāng)反向后的編碼位數(shù)量小于未進(jìn)行反向操作的編碼位數(shù)量時(shí),是否執(zhí)行反向操作。
[0046]對于每個(gè)殘差塊而言,可以使用熵編碼器(例如,圖1中的熵編碼器130)將亮度和色度水平反向標(biāo)志編碼為壓縮格式??梢允褂肅ABAC算法來實(shí)施熵編碼器,所述算法可以使用多個(gè)上下文模型。在一個(gè)實(shí)施例中,針對每個(gè)亮度和色度水平反向標(biāo)志可以使用三個(gè)上下文模型。為了提高編碼效率,熵編碼器可以基于索引來選擇上下文模型,所述索引可以與鄰近的PU的水平反向標(biāo)志相關(guān)。例如,考慮對當(dāng)前PU的亮度水平反向標(biāo)志進(jìn)行編碼,并且假設(shè)可以采用相同或類似的方式對當(dāng)前PU的色度水平反向標(biāo)志進(jìn)行編碼。兩個(gè)鄰近的PU,即,上PU和左PU,也可以具有亮度水平反向標(biāo)志。因此,鄰近的I3U的兩個(gè)亮度水平反向標(biāo)志之和可以用作為當(dāng)前PU選定的索引。如果上I3U或左PU都不具有亮度水平反向標(biāo)志(例如,當(dāng)前PU處于變換略過編碼區(qū)域的邊界),那么可以將’O’分配給亮度水平反向標(biāo)志。在使用選定的上下文模型進(jìn)行熵編碼之后,編碼亮度水平反向標(biāo)志可以被包括在比特流中。類似地,編碼色度水平反向標(biāo)志可以包含在比特流中。
[0047]如果某一殘差塊的水平反向標(biāo)志為’ I’,那么可以對該殘差塊的所有非零殘差水
平執(zhí)行水平反向操作。假定某個(gè)非零殘差水平,表示為X,其中X為整數(shù),它在[1-255]的
范圍內(nèi),那么反向操作可以將水平X變?yōu)榉聪蛩?255-x)。對于大殘差水平,水平反向操
作可以產(chǎn)生較小數(shù),這樣使編碼更有效(例如,因?yàn)殪鼐幋a器可以經(jīng)設(shè)計(jì)使得其對小數(shù)的壓
縮比大數(shù)更有效)。接著,可以使用熵編碼器來對殘差水平進(jìn)行編碼,無論該殘差水平是反 向還是非反向的。在一個(gè)實(shí)施例中,根據(jù)殘差水平的量值,熵編碼器可以采用不同算法。例
如,假定水平,無論是反向的水平還是非反向的水平,在[1,255]的范圍內(nèi),當(dāng)該水平小于3
時(shí),可以使用截?cái)嘁辉a來將該水平二進(jìn)制化。當(dāng)該水平等于或大于3時(shí),可以使用截?cái)嘁?br> 元碼和定長碼的組合來將該水平二進(jìn)制化。該二進(jìn)制化方案可以如下表1所示,其中“水
平”表示非零的反向或非反向的殘差水平的值。
【權(quán)利要求】
1.一種在視頻編碼中使用的設(shè)備,其包括: 一個(gè)處理器,所述處理器用于: 生成當(dāng)前塊的預(yù)測塊; 計(jì)算所述當(dāng)前塊與所述預(yù)測塊之間的差值以生成殘差塊,其中所述殘差塊包括多個(gè)殘差值;以及 如果所述多個(gè)殘差值包括至少一個(gè)非零殘差值,其中所述至少一個(gè)非零殘差值包括至少一個(gè)正負(fù)號和至少一個(gè)殘差水平, 則對所述至少一個(gè)正負(fù)號執(zhí)行熵編碼,并且 對所述至少一個(gè)殘差水平執(zhí)行熵編碼,其中一個(gè)非零殘差值包括一個(gè)正負(fù)號和一個(gè)殘差水平。
2.根據(jù)權(quán)利要求1所述的設(shè)備,其中所述多個(gè)殘差值包括至少一個(gè)非零殘差值,其中所述處理器進(jìn)一步用于: 基于所述至少一個(gè)非零殘差值的分布型式來確定起始位置,其中所述起始位置是所述殘差塊的四個(gè)角位置中的一者;以及 從所述起始位置開始掃描所述多個(gè)殘差值。
3.根據(jù)權(quán)利要求 2所述的設(shè)備,其中所述處理器進(jìn)一步用于: 設(shè)置二位句法元素以指示所述殘差塊中的所述起始位置;以及 對所述二位句法元素執(zhí)行熵編碼。
4.根據(jù)權(quán)利要求3所述的設(shè)備,其中所述殘差塊的大小為NxN,其中N為大于一的整數(shù),其中所述殘差塊中的位置表示為(m, η),其中m為O與N-1之間變化的行索引,η為O與N-1之間變化的列索引,其中所述二位句法元素表示為(CO,Cl),其經(jīng)配置使得: 如果(CO,Cl)為00,則所述起始位置為(O,O); 如果(CO,Cl)為01,則所述起始位置為(Ν-1,O); 如果(CO,Cl)為10,則所述起始位置為(0,N-1);以及 如果(CO,Cl)為11,則所述起始位置為(Ν-1,Ν-1)。
5.根據(jù)權(quán)利要求1所述的設(shè)備,其中所述預(yù)測炔基于幀內(nèi)預(yù)測模式生成,其中所述多個(gè)殘差值包括至少一個(gè)非零殘差值,其中所述處理器進(jìn)一步用于: 基于所述幀內(nèi)預(yù)測模式來確定掃描順序;以及 遵照所述掃描順序來掃描所述多個(gè)殘差值。
6.根據(jù)權(quán)利要求5所述的設(shè)備,其中所述處理器進(jìn)一步用于: 如果所述幀內(nèi)預(yù)測模式在垂直組中, 則對所述掃描順序進(jìn)行設(shè)置使得所述多個(gè)殘差值被逐行掃描; 否則如果所述幀內(nèi)預(yù)測模式在水平組中, 則對所述掃描順序進(jìn)行設(shè)置使得所述多個(gè)殘差值被逐列掃描。
7.根據(jù)權(quán)利要求6所述的設(shè)備,其中所述處理器進(jìn)一步用于: 生成完整顯著系數(shù)圖,所述完整顯著系數(shù)圖包括用于指示所述殘差值位置的二進(jìn)制符號,其中一個(gè)二進(jìn)制符號’ I’指示非零殘差值的一個(gè)位置;以及對所述完整顯著系數(shù)圖執(zhí)行熵編碼。
8.根據(jù)權(quán)利要求1所述的設(shè)備,其中所述多個(gè)殘差值包括至少一個(gè)非零殘差值,其中正負(fù)號的熵編碼是基于所述正負(fù)號與一個(gè)或多個(gè)先前編碼的正負(fù)號之間的空間相關(guān)性來進(jìn)行的,其中如果所述一個(gè)或多個(gè)先前編碼的正負(fù)號不存在,那么將正號’+’分配給不存在的先前編碼的正負(fù)號中的每一者。
9.根據(jù)權(quán)利要求1所述的設(shè)備,其中所述多個(gè)殘差值包括至少一個(gè)非零殘差值,其中正負(fù)號的熵編碼是基于所述正負(fù)號與一個(gè)或多個(gè)先前編碼的正負(fù)號之間的空間相關(guān)性來進(jìn)行的,其中如果所述一個(gè)或多個(gè)先前編碼的正負(fù)號不存在,那么將負(fù)號分配給不存在的先前編碼的正負(fù)號中的每一者。
10.根據(jù)權(quán)利要求8所述的設(shè)備,其中所述多個(gè)殘差值包括至少三個(gè)非零殘差值,其中所述三個(gè)非零殘差值具有第一、第二和第三正負(fù)號,其中對所述第一、第二和第三正負(fù)號執(zhí)行熵編碼遵照某一編碼順序,其中在所述編碼順序中所述第二正負(fù)號緊隨著所述第一正負(fù)號,其中在所述編碼順序中所述第三正負(fù)號緊隨著所述第二正負(fù)號,其中對所述第三正負(fù)號執(zhí)行熵編碼包括使用上下文適應(yīng)性二進(jìn)制算術(shù)編碼(CABAC)算法,其中所述CABAC算法具有可由一個(gè)索引選擇的四個(gè)上下文模型,其中所述索引等于 0,如果所述第一和第二正負(fù)號為(+,+); 1,如果所述第一和第二正負(fù)號為(+,_); 2,如果所述第一和第二正負(fù)號為(_,+); 3,如果所述第一和第二正負(fù)號為(_,_)。
11.根據(jù)權(quán)利要求8所述的設(shè)備,其中對所述正負(fù)號進(jìn)行的熵編碼使用包括一個(gè)上下文模型的CABAC算法。
12.根據(jù)權(quán)利要求1所述的設(shè)備,其中所述處理器進(jìn)一步用于基于率失真標(biāo)準(zhǔn)來確定是否對所述殘差塊進(jìn)行反向。
13.根據(jù)權(quán)利要求12所述的設(shè)備,其中所述率失真標(biāo)準(zhǔn)包括編碼位速率而不包括失真。
14.根據(jù)權(quán)利要求13所述的設(shè)備,其中所述多個(gè)殘差值包括至少一個(gè)非零殘差值,其中所述至少一個(gè)殘差水平中的每一者介于I與最大許可值之間,其中如果所述殘差塊發(fā)生反向,那么每個(gè)反向殘差水平的計(jì)算方法是用所述最大許可值減去對應(yīng)的殘差水平,其中殘差水平或反向殘差水平是一個(gè)水平,其中所述處理器進(jìn)一步用于: 如果所述水平為I或2, 那么使用截?cái)嘁辉a來將所述水平二進(jìn)制化; 如果所述水平大于2, 那么使用截?cái)嘁辉a和定長碼的組合來將所述殘差水平二進(jìn)制化。
15.根據(jù)權(quán)利要求13所述的設(shè)備,其中所述多個(gè)殘差值包括至少一個(gè)非零殘差值,其中所述當(dāng)前塊的所述殘差水平中的每一者均為范圍[1,255]中包含的整數(shù),其中如果所述殘差塊發(fā)生反向,那么每個(gè)反向殘差水平的計(jì)算方法是用255減去所述對應(yīng)的殘差水平,其中殘差水平或反向殘差水平是一個(gè)水平,其中每個(gè)水平的編碼根據(jù)下表進(jìn)行:


16.根據(jù)權(quán)利要求13所述的設(shè)備,其中所述多個(gè)殘差值包括至少一個(gè)非零殘差值,其中所述當(dāng)前塊的所述殘差水平中的每一者介于I與最大許可值之間,其中如果所述殘差塊發(fā)生反向,那么每個(gè)反向殘差水平的計(jì)算方法是用所述最大許可值減去所述對應(yīng)的殘差水平,其中殘差水平或反向殘差水平是一個(gè)水平,其中所述處理器進(jìn)一步用于: 對所述至少一個(gè)水平進(jìn)行編碼,編碼使用的是截?cái)嘁辉a、截?cái)喔鐐惒?賴斯編碼算法和定長編碼算法的組合。
17.根據(jù)權(quán)利要求12所述的設(shè)備,其中所述處理器進(jìn)一步用于: 為所述殘差塊設(shè)置水平反向標(biāo)志;以及 對所述水平反向標(biāo)志執(zhí)行熵編碼以生成編碼的水平反向標(biāo)志。
18.根據(jù)權(quán)利要求17所述的設(shè)備,其中所述處理器進(jìn)一步用于: 如果所述殘差塊發(fā)生反向,那么將所述水平反向標(biāo)志設(shè)置為’ I’ ; 如果所述殘差塊未發(fā)生反向,那么將所述水平反向標(biāo)志設(shè)置為’ O’,其中對所述水平反向標(biāo)志執(zhí)行熵編碼包括使用三個(gè)上下文模型,其中所述三個(gè)上下文模型可經(jīng)由一個(gè)索引來選擇,所述索引等于屬于所述當(dāng)前塊中上塊的第二水平反向標(biāo)志與屬于所述當(dāng)前塊中左塊的第三水平反向標(biāo)志之和;以及 如果所述上塊不具有任何水平反向標(biāo)志, 那么將’ O’分配給所述第二水平反向標(biāo)志; 如果所述左塊不具有任何水平反向標(biāo)志, 那么將’O’分配給所述第三水平反向標(biāo)志。
19.根據(jù)權(quán)利要求18所述的設(shè)備,其中所述水平反向標(biāo)志、所述第二水平反向標(biāo)志以及所述第三水平反向標(biāo)志用于亮度(Iuma)分量。
20.根據(jù)權(quán)利要求19所述的設(shè)備,其中所述水平反向標(biāo)志、所述第二水平反向標(biāo)志以及所述第三水平反向標(biāo)志用于色度(chroma)分量。
21.一種在視頻編碼中使用的方法,其包括: 生成當(dāng)前塊的預(yù)測塊; 計(jì)算所述當(dāng)前塊與所述預(yù)測塊之間的差值以生成殘差塊,其中所述殘差塊包括多個(gè)殘差值;以及 如果所述多個(gè)殘差值包括至少一個(gè)非零殘差值,其中所述至少一個(gè)非零殘差值包括至少一個(gè)正負(fù)號和至少一個(gè)殘差水平, 則對所述至少一個(gè)正負(fù)號執(zhí)行熵編碼,并且 對所述至少一個(gè)殘差水平執(zhí)行熵編碼,其中一個(gè)非零殘差值包括一個(gè)正負(fù)號和一個(gè)殘差水平。
22.根據(jù)權(quán)利要求21所述的方法,其中所述多個(gè)殘差值包括至少一個(gè)非零殘差值,所述方法進(jìn)一步包括: 基于所述至少一個(gè)非零殘差值的分布型式來確定起始位置,其中所述起始位置是所述殘差塊的四個(gè)角位置中的一者;以及 從所述起始位置開始掃描所述多個(gè)殘差值。
23.根據(jù)權(quán)利要 求22所述的方法,其進(jìn)一步包括: 設(shè)置二位句法元素以指示所述殘差塊中的所述起始位置;以及 對所述二位句法元素執(zhí)行熵編碼。
24.根據(jù)權(quán)利要求23所述的方法,其中所述殘差塊的大小為NxN,其中N為大于一的整數(shù),其中所述殘差塊中的位置表示為(m, η),其中m為O與N-1之間變化的行索引,η為O與N-1之間變化的列索引,其中所述二位句法元素,表示為(CO,Cl),其經(jīng)配置使得: 如果(CO,Cl)為00,則所述起始位置為(0,0); 如果(CO,Cl)為01,則所述起始位置為(Ν-1,0); 如果(CO,Cl)為10,則所述起始位置為(0,Ν-1);以及 如果(CO,Cl)為11,則所述起始位置為(Ν-1,Ν-1)。
25.根據(jù)權(quán)利要求21所述的方法,其中所述預(yù)測炔基于幀內(nèi)預(yù)測模式而生成,其中所述多個(gè)殘差值包括至少一個(gè)非零殘差值,所述方法進(jìn)一步包括: 基于所述幀內(nèi)預(yù)測模式來確定掃描順序;以及 遵照所述掃描順序來掃描所述多個(gè)殘差值。
26.根據(jù)權(quán)利要求25所述的方法,所述方法進(jìn)一步包括: 如果所述幀內(nèi)預(yù)測模式在垂直組中, 則對所述掃描順序進(jìn)行設(shè)置使得所述多個(gè)殘差值被逐行掃描; 否則如果所述幀內(nèi)預(yù)測模式在水平組中, 則對所述掃描順序進(jìn)行設(shè)置使得所述多個(gè)殘差值被逐列掃描。
27.根據(jù)權(quán)利要求26所述的方法,所述方法進(jìn)一步包括: 生成完整顯著系數(shù)圖,所述完整顯著系數(shù)圖包括用于指示所述殘差值位置的二進(jìn)制符號,其中一個(gè)二進(jìn)制符號’ I’指示非零殘差值的一個(gè)位置;以及對所述完整顯著系數(shù)圖執(zhí)行熵編碼;以及在掃描順序中略過對非零殘差水平中最后位置進(jìn)行的熵編碼。
28.根據(jù)權(quán)利要求21所述的方法,其中所述多個(gè)殘差值包括至少一個(gè)非零殘差值,其中正負(fù)號的熵編碼是基于所述正負(fù)號與一個(gè)或多個(gè)先前編碼的正負(fù)號之間的空間相關(guān)性來進(jìn)行的,其中如果所述一個(gè)或多個(gè)先前編碼的正負(fù)號不存在,那么將正號’+’分配給所述不存在的先前編碼的正負(fù)號中的每一者。
29.根據(jù)權(quán)利要求21所述的方法,其中所述多個(gè)殘差值包括至少一個(gè)非零殘差值,其中正負(fù)號的熵編碼是基于所述正負(fù)號與一個(gè)或多個(gè)先前編碼的正負(fù)號之間的空間相關(guān)性來進(jìn)行的,其中如果所述一個(gè)或多個(gè)先前編碼的正負(fù)號不存在,那么將負(fù)號’ 分配給所述不存在的先前編碼的正負(fù)號中的每一者。
30.根據(jù)權(quán)利要求28所述的方法,其中所述多個(gè)殘差值包括至少三個(gè)非零殘差值,其中所述三個(gè)非零殘差值具有第一、第二和第三正負(fù)號,其中對所述第一、第二和第三正負(fù)號執(zhí)行熵編碼遵照某一編碼順序,其中在所述編碼順序中所述第二正負(fù)號緊隨著所述第一正負(fù)號,其中在所述編碼順序中所述第三正負(fù)號緊隨著所述第二正負(fù)號,其中對所述第三正負(fù)號執(zhí)行熵編碼包括使用上下文自適應(yīng)二進(jìn)制算術(shù)編碼(CABAC)算法,其中所述CABAC算法具有可由一個(gè)索引選擇的四個(gè)上下文模型,其中所述索引等于 0,如果所述第一和第二正負(fù)號為(+,+); 1,如果所述第一和第二正負(fù)號為(+,_); 2,如果所述第一和第二正負(fù)號為(_,+); 3,如果所述第一和第二正負(fù)號為(_,_)。
31.根據(jù)權(quán)利要求28所述的方法,其中對所述正負(fù)號進(jìn)行的熵編碼使用包括一個(gè)上下文模型的CABAC算法。
32.根據(jù)權(quán)利要求21所述的方法,所述方法進(jìn)一步包括:基于率失真標(biāo)準(zhǔn)來確定是否對所述殘差塊進(jìn)行反向。
33.根據(jù)權(quán)利要求32所述的方法,其中所述率失真標(biāo)準(zhǔn)包括編碼位速率而不包括失真。
34.根據(jù)權(quán)利要求33所述的方法,其中所述多個(gè)殘差值包括至少一個(gè)非零殘差值,其中所述至少一個(gè)殘差水平中的每一者介于I與最大許可值之間,其中如果所述殘差塊發(fā)生反向,那么每個(gè)反向殘差水平的計(jì)算方法是用所述最大許可值減去對應(yīng)的殘差水平,其中殘差水平或反向殘差水平是一個(gè)水平,所述方法進(jìn)一步包括: 如果所述水平為I或2, 那么使用截?cái)嘁辉a來將所述水平二進(jìn)制化; 如果所述反向殘差水平大于2, 那么使用截?cái)嘁辉a和定長碼的組合來將所述殘差水平二進(jìn)制化。
35.根據(jù)權(quán)利要求33所述的方法,其中所述多個(gè)殘差值包括至少一個(gè)非零殘差值,其中所述當(dāng)前塊的所述殘差水平中的每一者均為范圍[1,255]中包含的整數(shù),其中如果所述殘差塊發(fā)生反向,那么每個(gè)反向殘差水平的計(jì)算方法是用255減去所述對應(yīng)的殘差水平,其中殘差水平或反向殘差水平是一個(gè)水平,其中每個(gè)水平的編碼根據(jù)下表進(jìn)行:
36.根據(jù)權(quán)利要求33所述的方法,其中所述多個(gè)殘差值包括至少一個(gè)非零殘差值,其中所述當(dāng)前塊的所述殘差水平中的每一者介于I與最大許可值之間,其中如果所述殘差塊發(fā)生反向,那么每個(gè)反向殘差水平的計(jì)算方法是用所述最大許可值減去所述對應(yīng)的殘差水平,其中殘差水平或反向殘差水平是一個(gè)水平,所述方法進(jìn)一步包括: 對所述至少一個(gè)水平進(jìn)行編碼,編碼使用的是截?cái)嘁辉a、截?cái)喔鐐惒?賴斯編碼算法和定長編碼算法的組合。
37.根據(jù)權(quán)利要求32所述的方法,其進(jìn)一步包括: 為所述殘差塊設(shè)置水平反向標(biāo)志;以及 對所述水平反向標(biāo)志執(zhí)行熵編碼以生成編碼的水平反向標(biāo)志。
38.根據(jù)權(quán)利要求37所述的方法,其進(jìn)一步包括: 如果所述殘差塊發(fā)生反向,那么將所述水平反向標(biāo)志設(shè)置為’ I’ ; 如果所述殘差塊未發(fā)生反向,那么將所述水平反向標(biāo)志設(shè)置為’ O’,其中對所述水平反向標(biāo)志執(zhí)行熵編碼包括使用三個(gè)上下文模型,其中所述三個(gè)上下文模型可由一個(gè)索引來選擇,所述索引等于屬于所述當(dāng)前塊中上塊的第二水平反向標(biāo)志與屬于所述當(dāng)前塊中左塊的第三水平反向標(biāo)志之和;以及 如果所述上塊不具有任何水平反向標(biāo)志, 那么將’ O’分配給所述第二水平反向標(biāo)志; 如果所述左塊不具有任何水平反向標(biāo)志, 那么將’O’分配給所述第三水平反向標(biāo)志。
39.根據(jù)權(quán)利要求38所述的方法,其中所述水平反向標(biāo)志、所述第二水平反向標(biāo)志以及所述第三水平反向標(biāo)志用于亮度(Iuma)分量。
40.根據(jù)權(quán)利要求38所述的方法,其中所述水平反向標(biāo)志、所述第二水平反向標(biāo)志以及所述第三水平反向標(biāo)志用于色度(chroma)分量。
41.一種在視頻解碼中使用的設(shè)備,其包括: 一個(gè)處理器,所述處理器用于: 接收包括多個(gè)編碼殘差塊和多個(gè)編碼水平反向標(biāo)志的比特流,其中每個(gè)編碼水平反向標(biāo)志對應(yīng)于一個(gè)編碼殘差塊; 對所述多個(gè)編碼殘差塊執(zhí)行熵解碼以生成多個(gè)解碼殘差塊;以及 對所述多個(gè)編碼水平反向標(biāo)志執(zhí)行熵解碼以生成多個(gè)解碼水平反向標(biāo)志。
42.根據(jù)權(quán)利要求41所述的方法,其中編碼殘差塊包括對應(yīng)于至少一個(gè)編碼正負(fù)號的至少一個(gè)編碼非零殘差水平,其中所述處理器進(jìn)一步用于: 針對所述編碼殘差塊, 對所述至少一個(gè)編碼正負(fù)號執(zhí)行熵解碼以生成至少一個(gè)解碼正負(fù)號;以及 如果對應(yīng)的解碼水平反向標(biāo)志為’ I’, 那么對所述至少一個(gè)編碼殘差水平執(zhí)行水平反向操作,以生成至少一個(gè)反向水平,并且 對所述至少一個(gè)反向水平執(zhí)行熵解碼,以生成至少一個(gè)解碼反向水平, 否則,如果對應(yīng)的解碼水平反向標(biāo)志為’ O’, 那么對所述至少一個(gè)編碼殘差水平執(zhí)行熵解碼,以生成至少一個(gè)解碼殘差水平。
43.根據(jù)權(quán)利要求42所述的方法,其中編碼殘差塊進(jìn)一步包括編碼的完整顯著系數(shù)圖,其中所述處理器進(jìn)一步用于: 對所述編碼的完整顯著系數(shù)圖執(zhí)行熵解碼以生成解碼的完整顯著系數(shù)圖,其中所述解碼的完整顯著系數(shù)圖包括至少一個(gè)’ I’ 二進(jìn)制符號,其中生成解碼殘差塊包括使用所述解碼的完整顯著系數(shù)圖。
【文檔編號】H04N19/132GK104041040SQ201280032349
【公開日】2014年9月10日 申請日期:2012年6月29日 優(yōu)先權(quán)日:2011年6月30日
【發(fā)明者】高文, 喬治·庫克, 楊名遠(yuǎn), 宋錦, 于浩平 申請人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1