用于對系數(shù)組中的最后一個(gè)非零變換系數(shù)的位置數(shù)據(jù)進(jìn)行編碼的制作方法
【專利摘要】描述了用于視頻編碼的方法和設(shè)備。當(dāng)對變換塊中的組掃描順序中的最后一個(gè)組之前的非零系數(shù)組(CG)進(jìn)行編碼時(shí),基于(a)用于對塊進(jìn)行編碼的幀內(nèi)預(yù)測模式和(b)與該CG相鄰的至少一個(gè)系數(shù)組中的至少一個(gè)修改表示該CG中的掃描順序中的最后一個(gè)非零變換系數(shù)的真實(shí)(x,y)-位置的數(shù)據(jù)進(jìn)行修改,以提高編碼效率。在對由此編碼的CG進(jìn)行解碼時(shí),解開修改以得到真實(shí)(x,y)-位置。
【專利說明】用于對系數(shù)組中的最后一個(gè)非零變換系數(shù)的位置數(shù)據(jù)進(jìn)行編碼
[0001]版權(quán)通知
[0002]本文件的一部分公開內(nèi)容和隨附材料包含了要求版權(quán)的材料。當(dāng)該專利文件或?qū)@_內(nèi)容的傳真復(fù)制出現(xiàn)在美國專利商標(biāo)局的文件或記錄中時(shí),版權(quán)所有者不反對任何人對該專利文件或?qū)@_內(nèi)容的傳真復(fù)制,但是保留其他所有無論什么情況下的版權(quán)權(quán)利。
【技術(shù)領(lǐng)域】
[0003]本公開總體上涉及數(shù)據(jù)壓縮,更具體地涉及對用于視頻編碼和解碼的方法和設(shè)備的改進(jìn)。
【背景技術(shù)】
[0004]在多種背景下出現(xiàn)數(shù)據(jù)壓縮。其在通信和計(jì)算機(jī)聯(lián)網(wǎng)中經(jīng)常用于高效地存儲、發(fā)送、和再現(xiàn)信息。其在圖像、音頻和視頻的編碼中具有特別的應(yīng)用。由于每個(gè)視頻幀所要求的大量數(shù)據(jù)以及編碼和解碼經(jīng)常需要發(fā)生的速度,視頻向數(shù)據(jù)壓縮提出了重大的挑戰(zhàn)。
[0005]音頻和視頻譯碼標(biāo)準(zhǔn)(AVS)工作組規(guī)定了在中國使用的音頻譯碼、視頻譯碼、和傳輸協(xié)議。為了本文件的目的,AVS指代由AVS工作組定義的第一版視頻譯碼規(guī)范,而AVS2指代由AVS工作組當(dāng)前正在開發(fā)的第二版視頻譯碼規(guī)范。如本文所使用的,術(shù)語“譯碼(coding) ” 包含編碼(encoding)和解碼(decoding)。
[0006]包括AVS和AVS2在內(nèi)的很多視頻譯碼標(biāo)準(zhǔn)使用基于塊的譯碼過程。在這些過程中,將圖像或幀分為塊,通常是4x4或8x8 (然而在一些情況下可以使用非正方形的塊),且將塊變換為系數(shù),并進(jìn)行量化和熵編碼。在很多情況下,被變換的數(shù)據(jù)不是實(shí)際的像素?cái)?shù)據(jù),而是在預(yù)測操作之后的殘余數(shù)據(jù)。預(yù)測可以是幀內(nèi)預(yù)測(即在幀/圖像內(nèi)的塊到塊)或幀間預(yù)測(i,在幀之間(也被稱為運(yùn)動預(yù)測))。
[0007]為了壓縮數(shù)據(jù),量化變換系數(shù)的譯碼被設(shè)計(jì)為利用變換特性的優(yōu)點(diǎn)來改進(jìn)壓縮。在AVS的情況下,使用四部序列對系數(shù)進(jìn)行譯碼:平(level)、跑(run)、符號(sign)、塊結(jié)束(EOB)標(biāo)志。譯碼是從變換塊中按鋸齒(zig-zag)掃描順序的最后一個(gè)非零系數(shù)開始沿反鋸齒方向的(因此,要求EOB標(biāo)志)。
[0008]使用一元二進(jìn)制化將“平減一”(level-minus-one)和“跑”數(shù)據(jù)進(jìn)行二進(jìn)制化,然后使用基于上下文的熵譯碼對二進(jìn)制值(bin)進(jìn)行編碼。AVS針對變換系數(shù)數(shù)據(jù)具體地使用算術(shù)譯碼。
[0009]在AVS的現(xiàn)有譯碼方案中存在一些限制。例如,將現(xiàn)有AVS譯碼方案直接擴(kuò)展到更大的塊大小可能不是有效率的。此外,在預(yù)測之后對殘余塊的譯碼不使用諸如幀內(nèi)預(yù)測信息之類的補(bǔ)充信息。
【專利附圖】
【附圖說明】
[0010]現(xiàn)在將通過示例來參考附圖,復(fù)古示出了本公開的樣本實(shí)施例,且在附圖中:
[0011]圖1a以框圖形式示出了用于對視頻編碼的已知編碼器;
[0012]圖1b以框圖形式示出了根據(jù)本公開的用于對視頻編碼的編碼器;
[0013]圖2a示出了將幀內(nèi)預(yù)測模式分為無交集的三個(gè)類的已知劃分;
[0014]圖2b示出了根據(jù)本公開將幀內(nèi)預(yù)測模式分為無交集的三個(gè)類的劃分;
[0015]圖3a示出了用于對殘余塊編碼的已知方法的流程圖;
[0016]圖3b示出了根據(jù)本公開并入了塊轉(zhuǎn)置的用于對殘余塊編碼的方法的流程圖;
[0017]圖3c示出了圖3b所示方法的一個(gè)實(shí)施例的邏輯流程的流程圖;
[0018]圖4a示出了對量化變換系數(shù)的樣本8x8塊應(yīng)用全塊轉(zhuǎn)置;
[0019]圖4b示出了對與圖4a —樣的量化變換系數(shù)的樣本8x8塊應(yīng)用部分塊轉(zhuǎn)置;
[0020]圖5a以框圖形式示出了用于對視頻解碼的已知解碼器;
[0021]圖5b以框圖形式示出了根據(jù)本公開的并入了塊轉(zhuǎn)置的用于對視頻解碼的解碼器;
[0022]圖6a示出了用于對殘余塊解碼的已知方法的流程圖;
[0023]圖6b示出了根據(jù)本公開的用于對殘余塊解碼的方法的流程圖;
[0024]圖6c示出了圖6b所示方法的一個(gè)實(shí)施例的邏輯流程的流程圖;
[0025]圖7示出了將系數(shù)組的變換系數(shù)分為無交集的三個(gè)變換系數(shù)區(qū)域的三種不同方式;
[0026]圖8a示出了在不使用塊轉(zhuǎn)置的情況下用于對殘余塊進(jìn)行模式相關(guān)的平跑(level-run)編碼的已知方法的流程圖;
[0027]圖Sb示出了根據(jù)本公開的方法對圖8a所示的方法的一個(gè)步驟詳細(xì)說明的流程圖,此外該流程圖適于說明從圖7所示的那些劃分中對劃分的選擇;
[0028]圖Sc示出了對根據(jù)圖Sb所示方法所選擇的劃分的使用進(jìn)行詳細(xì)說明的流程圖;
[0029]圖9a示出了在幀內(nèi)預(yù)測模式處于預(yù)定類中的情況下使用塊轉(zhuǎn)置對殘余塊進(jìn)行模式相關(guān)編碼的方法的流程圖;
[0030]圖9b示出了對圖8a所示方法的一個(gè)步驟進(jìn)行詳細(xì)說明的流程圖,其類似于圖Sb的流程圖,但是適應(yīng)對塊轉(zhuǎn)置的任何使用,此外適于說明從圖7所示的那些劃分中對劃分的選擇;
[0031]圖9c示出了對根據(jù)圖9b所示的方法所選擇的劃分的使用進(jìn)行詳細(xì)說明的流程圖,其在水平類中的幀內(nèi)預(yù)測模式的具體情況下;
[0032]圖1Oa示出了被分為系數(shù)組的具有大小16x16的樣本塊,并示出了塊內(nèi)的系數(shù)組的鋸齒組掃描順序;
[0033]圖1Ob示出了與圖1Oa所示的樣本塊相對應(yīng)的系數(shù)組標(biāo)志塊,并示出了按塊內(nèi)系數(shù)組的組掃描順序的最后一個(gè)非零系數(shù)組的位置;
[0034]圖1Oc更詳細(xì)地示出了與圖1Oa所示相同的樣本塊,其示出了(a) —個(gè)特定系數(shù)組內(nèi)的變換系數(shù)的掃描順序和(b)兩個(gè)其他系數(shù)組的最后一個(gè)非零系數(shù)(按掃描順序);
[0035]圖1la示出了與圖1Oa所示相同的樣本塊,以及將塊的系數(shù)組分為無交集的四個(gè)系數(shù)組區(qū)域的方式;
[0036]圖1lb示出了與圖1Oa所示相同的樣本塊,以及將塊的系數(shù)組分為無交集的三個(gè)系數(shù)組區(qū)域的方式;
[0037]圖12示出了對圖1lb所示的劃分的使用進(jìn)行詳細(xì)說明的流程圖;
[0038]圖13示出了對按當(dāng)前正被編碼的系數(shù)組的掃描順序的最后一個(gè)非零系數(shù)的(X,y)位置的經(jīng)修改表示進(jìn)行編碼的方法的流程圖;
[0039]圖13a示出了圖13所示方法的一個(gè)步驟的一個(gè)實(shí)施例的流程圖,該實(shí)施例基于幀內(nèi)預(yù)測模式所屬的類來修改(X,y)位置;
[0040]圖13b示出了圖13所示方法的一個(gè)步驟的另一實(shí)施例的流程圖,該實(shí)施例基于當(dāng)前系數(shù)組的至少一個(gè)相鄰系數(shù)組來修改(X,y)位置;
[0041]圖13c示出了圖13所示方法的一個(gè)步驟的又一實(shí)施例的流程圖,該實(shí)施例基于幀內(nèi)預(yù)測模式所屬的類以及基于當(dāng)前系數(shù)組的至少一個(gè)相鄰系數(shù)組來修改(x,y)位置;
[0042]圖14示出了用于針對當(dāng)前系數(shù)組的、對按該系數(shù)組的掃描順序的最后一個(gè)非零系數(shù)的真實(shí)(x,y)位置的編碼表示進(jìn)行解碼并轉(zhuǎn)換該表示以獲得真實(shí)(x,y)位置的方法的流程圖;以及
[0043]圖15示出了根據(jù)本公開的并入了解碼器和編碼器的設(shè)備的示例實(shí)施例的簡化框圖;
[0044]以及其中不同附圖中使用的相似附圖標(biāo)記用于表示相似的特征。
【具體實(shí)施方式】
[0045]本公開描述了用于對殘余視頻數(shù)據(jù)進(jìn)行編碼和解碼的方法以及編碼器/解碼器。
[0046]在第一方面中,本公開描述了用于使用視頻解碼器根據(jù)編碼視頻的比特流中的殘余數(shù)據(jù)的編碼塊重構(gòu)殘余數(shù)據(jù)的當(dāng)前塊的方法,所述當(dāng)前塊被劃分為系數(shù)組,每一個(gè)系數(shù)組包括變換系數(shù)。所述方法包括:針對當(dāng)前系數(shù)組,所述當(dāng)前系數(shù)組是在所述當(dāng)前塊的所述系數(shù)組的組掃描順序中的所述最后一個(gè)非零系數(shù)組之前的非零系數(shù)組:對所述當(dāng)前系數(shù)組中表示所述當(dāng)前系數(shù)組中的所述變換系數(shù)的掃描順序中的所述最后一個(gè)非零變換系數(shù)的真實(shí)(X,y)_位置的坐標(biāo)(X,Y)進(jìn)行解碼;以及向所述坐標(biāo)(X,Y)應(yīng)用非恒等修改以計(jì)算所述最后一個(gè)非零變換系數(shù)的所述真實(shí)(x,y)_位置,其中所述修改基于以下至少一項(xiàng):在產(chǎn)生所述編碼塊時(shí)使用的幀內(nèi)預(yù)測模式;以及與所述當(dāng)前系數(shù)組相鄰的至少一個(gè)系數(shù)組。
[0047]在另一方面,本公開公開了一種用于使用視頻編碼器對視頻進(jìn)行編碼的方法,所述視頻包括劃分為塊的圖片,將針對所述塊的殘余數(shù)據(jù)頻譜變換為變換塊,每一個(gè)變換塊被進(jìn)一步劃分為系數(shù)組。所述方法包括:針對當(dāng)前系數(shù)組,所述當(dāng)前系數(shù)組是在所述當(dāng)前塊的所述系數(shù)組的組掃描順序中的所述最后一個(gè)非零系數(shù)組之前的非零系數(shù)組:獲得所述當(dāng)前系數(shù)組中所述系數(shù)組中的變換系數(shù)的掃描順序中的最后一個(gè)非零變換系數(shù)的U,y)_位置(X,Y);基于以下至少一項(xiàng)使用非恒等修改將所述(x,y)_位置(X,Y)轉(zhuǎn)換為修改的(X,y)_位置(X’,Y’):在產(chǎn)生所述變換塊時(shí)使用的幀內(nèi)預(yù)測模式;以及與所述當(dāng)前系數(shù)組相鄰的至少一個(gè)系數(shù)組;以及使用上下文模型對所述修改的U,y)_位置(X’,Y’ )進(jìn)行二進(jìn)制化和熵編碼。
[0048]在另一方面中,本公開描述了被配置為實(shí)現(xiàn)這種用于編碼和解碼的方法的編碼器和解碼器。
[0049]在又一方面中,本公開描述了存儲處理器可執(zhí)行程序指令的非瞬時(shí)處理器可讀介質(zhì),該處理器可執(zhí)行程序指令在執(zhí)行時(shí)將處理器配置為執(zhí)行所述用于編碼和解碼的方法。
[0050]本領(lǐng)域技術(shù)人員根據(jù)對樣本實(shí)施例的以下描述的評述,結(jié)合附圖,將理解本公開的其他方面和特征。
[0051]在隨后的描述中,參考用于視頻譯碼的AVS標(biāo)準(zhǔn)和/或開發(fā)中的AVS2標(biāo)準(zhǔn)來描述一些示例實(shí)施例。本領(lǐng)域普通技術(shù)人員將理解:本公開不限于AVS或AVS2,而是可以適用于其他視頻編碼/解碼標(biāo)準(zhǔn),包括:將來可能的標(biāo)準(zhǔn)、3D和多視圖譯碼標(biāo)準(zhǔn)、可擴(kuò)縮視頻譯碼標(biāo)準(zhǔn)、以及可重配置視頻譯碼標(biāo)準(zhǔn)。
[0052]在隨后的描述中,當(dāng)提到視頻或圖像時(shí),術(shù)語幀、圖片、切片(slice)、分片(tile)和矩形切片組可以在某種程度上互換使用。本領(lǐng)域技術(shù)人員將意識到:在AVS標(biāo)準(zhǔn)的情況下,幀可以包含一個(gè)或多個(gè)切片。在其他視頻譯碼標(biāo)準(zhǔn)中,可以使用其他術(shù)語。還將意識到:可以逐幀來執(zhí)行特定編碼/解碼操作,一些是逐切片執(zhí)行的,一些是逐圖片執(zhí)行的,一些是逐分片執(zhí)行的,且一些是逐矩形切片組執(zhí)行的,取決于適用的圖像或視頻譯碼標(biāo)準(zhǔn)的具體要求或術(shù)語。在任何具體實(shí)施例中,適用的圖像或視頻譯碼標(biāo)準(zhǔn)可以確定以下描述的操作是否是針對幀和/或切片和/或圖片和/或分片和/或矩形切片組,視具體情況而定。因此,本領(lǐng)域普通技術(shù)人員根據(jù)本公開將理解本文描述的具體操作或過程以及對幀、切片、圖片、分片、矩形切片組的具體引用適用于幀、切片、圖片、分片、還是矩形切片組,或者對于給定實(shí)施例適用于它們中的一些或全部。如根據(jù)以下描述而變得顯而易見的,這對于變換單位、譯碼單位、譯碼單位組等也成立。
[0053]在一些場景下,可以將幀分為兩個(gè)區(qū)域,例如一個(gè)用于屏幕內(nèi)容且另一個(gè)用于自然視頻。有時(shí),這可以被稱為分屏。類似地,在多視圖編解碼中,可以將一個(gè)視圖用于屏幕內(nèi)容且將另一個(gè)視圖用于自然視頻。備選地,比特流可以包含至少兩個(gè)子流,一個(gè)子流采用變換跳過模式或無損模式,同時(shí)另一個(gè)將不采用變換跳過模式或無損模式。在這些示例情形的任一情形中,將理解:可以在對視圖/區(qū)域/流中使用變換跳過、具有平坦量化的變換跳過、或跳過變換和量化步驟的一個(gè)視圖/區(qū)域/流進(jìn)行編碼/解碼時(shí),應(yīng)用系數(shù)重新排序,而另一個(gè)區(qū)域/視圖/流可能未對其編碼/解碼應(yīng)用系數(shù)重新排序??梢栽谑褂没虿皇褂米儞Q跳過的情況下,采用本公開中描述的創(chuàng)新。此外,如本文所使用的術(shù)語“變換系數(shù)”和“變換塊”意在指代處于編碼/解碼中特定階段的其系數(shù)和塊,其中,如果頻譜變換尚未被跳過,其系數(shù)和塊將反映對頻譜變換的應(yīng)用。從而,該術(shù)語預(yù)期包含曾應(yīng)用頻譜變換的一個(gè)特殊情況,恒等(即,什么也不做)函數(shù),而不是標(biāo)準(zhǔn)頻譜變換的情況。這是因?yàn)楸疚拿枋龅膭?chuàng)新不依賴于對頻譜變換的應(yīng)用。
[0054]在可擴(kuò)縮視頻譯碼的情況下,下文公開的任何實(shí)施例可以應(yīng)用于基礎(chǔ)層編碼/解碼、增強(qiáng)層編碼/解碼、或這二者。在3D或多視圖視頻譯碼的情況下,可以將任何前述實(shí)施例應(yīng)用于以下各項(xiàng)之一:視圖編碼/解碼、另一視圖編碼/解碼、或這二者/全部視圖。
[0055]首先參考圖1a和3a。圖1a以框圖形式示出了用于對視頻進(jìn)行編碼的傳統(tǒng)編碼器10A0圖3a示出了用于對殘余數(shù)據(jù)的塊進(jìn)行編碼的對應(yīng)傳統(tǒng)方法300A的流程圖,其省略了在本文所述創(chuàng)新中未涉及的某些前置編碼步驟。
[0056]編碼器100A接收視頻源101,并最終產(chǎn)生編碼比特流199。編碼器100A可以被配置為根據(jù)多個(gè)視頻壓縮標(biāo)準(zhǔn)來工作。例如,編碼器100A可以是符合AVS或AVS2的;后者是本公開中特別關(guān)注的標(biāo)準(zhǔn),但是本文所述創(chuàng)新也可以應(yīng)用于其他標(biāo)準(zhǔn)。
[0057]視頻源101包括幀序列,每個(gè)幀對應(yīng)于不同的時(shí)間點(diǎn)。其一次處理一個(gè)幀或切片。盡管以更精細(xì)的粒度級別來執(zhí)行大量的對一個(gè)幀/切片的處理;將幀/切片分為更小的塊,且以循環(huán)方式逐塊執(zhí)行處理。塊可以是譯碼單位、宏塊、或子塊。
[0058]如本領(lǐng)域中眾所周知的,幀可以是具有類型1、P、或B。譯碼模式選擇器160確定正在被編碼的當(dāng)前幀具有類型1、P還是B,以及確定幀內(nèi)的具體譯碼單位(例如,宏塊、譯碼單位等)是幀間譯碼還是幀內(nèi)譯碼。
[0059]兩類“幀間譯碼”巾貞-類型P和類型B-利用了時(shí)間預(yù)測,其基于當(dāng)前幀與不同時(shí)間點(diǎn)相對應(yīng)的之前處理的幀的差異。該類型預(yù)測(其與本公開無關(guān))利用了編碼器100A中的反饋環(huán)路。該環(huán)路開始于解量化器130和反頻譜變換135,它們(如圖5A中傳統(tǒng)解碼器500A的對應(yīng)解量化器520和反頻譜變換525)對頻譜變換110和量化器115 (下面描述)大致進(jìn)行逆轉(zhuǎn),即,它們重構(gòu)類與原始?xì)堄鄶?shù)據(jù)相類似(而不是一樣,這是由步驟320的有損性質(zhì)導(dǎo)致的)的殘余數(shù)據(jù)。解塊處理器145 (如解碼器500A的對應(yīng)解塊處理器540)可以執(zhí)行濾波,以移除塊邊界上的偽像和/或執(zhí)行在解碼過程期間將進(jìn)行的其他平滑化處理。幀存儲器150從而存儲了 “參考”幀以供運(yùn)動預(yù)測器155使用,該“參考”幀是由解碼器500A對其照原樣進(jìn)行重構(gòu)和解塊的。
[0060]類型I幀(“幀內(nèi)譯碼”幀)是在不參考其他幀的情況下編碼的,且因此其不能采用時(shí)間預(yù)測。然而,其確實(shí)采用了幀內(nèi)的預(yù)測;換言之,幀的一部分是基于其與幀的另一部分的差異來編碼的。
[0061]幀內(nèi)預(yù)測(本公開中所關(guān)注的預(yù)測類型)是由空間預(yù)測器105根據(jù)圖3a的步驟310來執(zhí)行的。具體地,空間預(yù)測器105將當(dāng)前塊的數(shù)據(jù)與針對當(dāng)前幀的之前處理過的塊內(nèi)的附近像素的數(shù)據(jù)進(jìn)行比較,并根據(jù)針對特定空間預(yù)測模式的預(yù)測算法來生成該塊的殘余數(shù)據(jù)。在AVS和AVS2標(biāo)準(zhǔn)中,存在例如33個(gè)這種模式,稍后將參考圖2a和2b來討論他們。在一些實(shí)施例中,可以將速率失真優(yōu)化用于選擇最佳模式。
[0062]然后,在圖3a的步驟320,頻譜變換110對殘余數(shù)據(jù)進(jìn)行頻譜變換,且量化器115對頻譜變換的輸出進(jìn)行量化。盡管圖1a將頻譜變換110和量化器115示出為編碼器100A中的不同組件,如本領(lǐng)域中所理解的,這兩個(gè)操作可以要么作為兩個(gè)單獨(dú)的數(shù)學(xué)運(yùn)算來執(zhí)行,要么作為單一運(yùn)算來執(zhí)行;從而,可以用實(shí)現(xiàn)了相同合并結(jié)果的單一組件來替代所示的這兩個(gè)組件。此外,在一些實(shí)施例中,可以采用變換跳過;在這種情況下,不采用頻譜變換110,且步驟320僅在空間域中對殘余數(shù)據(jù)進(jìn)行量化。
[0063]向頻譜變換110輸入的殘余數(shù)據(jù)是空間域中的數(shù)據(jù);這意味著該數(shù)據(jù)對應(yīng)于(可能不是以一對一的方式)按幾何行和列排列的像素。頻譜變換110將該空間域數(shù)據(jù)轉(zhuǎn)換為變換域中的數(shù)據(jù);本文中稱為變換系數(shù)的該輸出數(shù)據(jù)包含與像素相關(guān)的頻率信息,根據(jù)該頻率信息可以重構(gòu)像素。在很多實(shí)施例中,頻譜變換I1應(yīng)用離散余弦變換(DCT)。盡管AVS和AVS2標(biāo)準(zhǔn)規(guī)定使用DCT,在視頻譯碼協(xié)議中可以使用離散正弦變換或其他變換,且因此它們預(yù)期在本公開的范圍中。取決于宏塊或譯碼單位的大小,空間變換110逐譯碼單位、逐宏塊、或逐子塊進(jìn)行操作。在AVS和AVS2標(biāo)準(zhǔn)中,典型的16x16宏塊例如包含四個(gè)8x8變換塊,且對8x8塊執(zhí)行DCT過程。在一些視頻譯碼協(xié)議中,變換塊可以是4x4,意味著每個(gè)宏塊中存在十六個(gè)變換塊。在另一些其他情況下,變換塊可以是其他大小。在一些情況下,16x16宏塊可以包括非重疊的4x4和8x8變換塊的組合。
[0064]繼續(xù)參考圖1a和3a,熵編碼器125基于與要壓縮的各種符號的頻率相關(guān)的統(tǒng)計(jì)數(shù)據(jù)對符號進(jìn)行無損壓縮;壓縮的符號不僅包括作為變換量化系數(shù)的直接反映的數(shù)據(jù),還包括與當(dāng)前塊相關(guān)的其它數(shù)據(jù),該其它數(shù)據(jù)包括對與塊相關(guān)的參數(shù)的指示(例如,在對塊進(jìn)行編碼時(shí)使用的幀內(nèi)預(yù)測模式)和/或在編碼過程中暗示了(且在解碼過程中推斷出)多個(gè)零值的意義上允許“跳過”某些零值數(shù)據(jù)的標(biāo)志,稍后將對其進(jìn)行解釋。
[0065]直接基于變換量化系數(shù)的數(shù)據(jù)也涉及對零值數(shù)據(jù)的這種跳過。具體地,在圖3a的步驟350,由于零值系數(shù)普遍,導(dǎo)致變換量化系數(shù)是平跑編碼的。這涉及生成平跑有序?qū)?,每個(gè)平跑有序?qū)Π?a)非零系數(shù)的量值,后接(b)沿反掃描順序在非零系數(shù)之后的連續(xù)零值系數(shù)的數(shù)目。
[0066]在步驟360,表示變換量化系數(shù)和與當(dāng)前塊相關(guān)的其他數(shù)據(jù)的符號都被二進(jìn)制化和熵編碼。二進(jìn)制化包括將符號轉(zhuǎn)換為某種二進(jìn)制形式,例如,一元記號(unary notat1n)或其某種變型。AVS和AVS2標(biāo)準(zhǔn)規(guī)定了熵編碼可以是算術(shù)譯碼,但是在其他視頻譯碼協(xié)議中,可以使用其他類型的熵譯碼(例如,可變長度譯碼)(且因此其在本公開的范圍內(nèi))。
[0067]圖2a和2b均示出了在視頻譯碼中使用的一類“有角”的三十個(gè)幀內(nèi)預(yù)測模式,以及林列出了另一類“無角”的三個(gè)幀內(nèi)預(yù)測模式,且還示出了如何將全部這些模式分類為無交集的三個(gè)類,以在圖3b的新穎方法300B中使用。每個(gè)有角幀內(nèi)預(yù)測模式由表示從正在譯碼的當(dāng)前塊到在幀內(nèi)預(yù)測中使用的附近像素的空間位移的角度的箭頭來示出。箭頭的長度是無關(guān)緊要的;相對地,每個(gè)箭頭頭部被示出為到達(dá)特定圓-且對應(yīng)模式被稱為屬于對應(yīng)“區(qū)以輔助示出從正y軸開始測量的空間位移的角度,作為某個(gè)基本角度的倍數(shù)。屬于區(qū)O、特征400的模式O和I具有作為90度的倍數(shù)的角度。屬于區(qū)1、特征410的模式4、5和6具有作為45度的倍數(shù)的角度,但是不屬于區(qū)O。屬于區(qū)2、特征420的模式7到16具有作為15度的倍數(shù)的角度,但是不屬于區(qū)O或I。屬于區(qū)3、特征430的模式17到31具有作為7.5度的倍數(shù)的角度,但是不屬于區(qū)O、I或2。在圖2a和2b中僅列出了無角幀內(nèi)預(yù)測模式-DC模式(在AVS2標(biāo)準(zhǔn)中指定為模式2)、平面模式(3)、和雙線性模式(32),因?yàn)樗鼈儾惑w現(xiàn)“方向”,且因此不能以向量的方式來有意義地繪出;不僅出于完整性(相對于AVS2標(biāo)準(zhǔn))的目的將它們列出,還由于它們被包括在接下來將解釋的分類方案中。
[0068]對幀內(nèi)預(yù)測模式的改進(jìn)分類
[0069]關(guān)于圖2a和2b,重要的不是區(qū),而是對分類200A和200B的分別繪出。每個(gè)分類將整個(gè)幀內(nèi)預(yù)測模式O值32的聚集劃分為無交集的三個(gè)類;確定給定模式不在兩類中任何一類意味著其必須在剩余類中。在圖2a所示的分類200A中,垂直類210A包含由粗的實(shí)心箭頭示出的模式0、9、10、11、12、16、21、22、23和24 ;水平類220A包含由細(xì)的實(shí)心箭頭示出的模式1、7、8、13、14、15、17、18、27、28和29 ;以及對角類230A包含剩余模式,即由虛線箭頭示出的有角模式4、5、6、19、20、25、26、30和31,以及僅在圖2a中列出的無角模式2、3和32。在圖2b所示的分類200B中,垂直類210B包含由粗的實(shí)心箭頭示出的模式0、10、11、21、22、23和24 ;水平類220B包含由細(xì)的實(shí)心箭頭示出的模式1、7、14、17、18、27、28和29 ;以及對角類230B包含剩余模式,即由虛線箭頭示出的有角模式4、5、6、8、9、12、13、15、16、
19、20、25、26、30和31,以及無角模式2、3和32。
[0070]這些分類可以用多種方式來改進(jìn)視頻譯碼。如在共同待審的申請PCT/CA2013/050020中之前公開的,這些類可以用于模式相關(guān)上下文涉及。當(dāng)用于對塊編碼的幀內(nèi)預(yù)測模式在特定一類中時(shí),其易于具有與該類對應(yīng)的系數(shù)的獨(dú)特分布。例如針對平跑對的熵譯碼,當(dāng)對上下文的確定基于模式所屬的類時(shí),該確定將是更恰當(dāng)?shù)摹.?dāng)該確定更恰當(dāng)時(shí),最終的譯碼將變得更有效率。圖2a的分類200A之前被公開為用于在這些獨(dú)特分布之間進(jìn)行區(qū)分的方式。
[0071]現(xiàn)在已經(jīng)意識到:有可能更有效率地來劃分幀內(nèi)預(yù)測模式。分類200B的經(jīng)修訂的垂直類210B和水平類220B比分類200A的對應(yīng)類210A和220A“窄”,即經(jīng)修訂的類均包括更少的模式,跨更小的角度范圍。包括更少模式在內(nèi)的類對應(yīng)于甚至更獨(dú)特的分布。然而,本發(fā)明人還意識到:如果類過小,則將沒有充足的數(shù)據(jù)來訓(xùn)練上下文以達(dá)到穩(wěn)定狀態(tài),且譯碼性能將更差;這被稱為上下文稀釋問題。每個(gè)經(jīng)修訂的類210B和220B在分布獨(dú)特性和狀態(tài)穩(wěn)定性之間取得平衡。最終結(jié)果是使用新穎的分類200B比之前公開的分類200A取得更好的譯碼性能;這對于之前公開的模式相關(guān)上下文涉及成立,對于稍后將描述的由圖3b所示的新穎方法300B所提供的附加譯碼改進(jìn)也成立。
[0072]系數(shù)的模式相關(guān)塊轉(zhuǎn)置
[0073]為了解釋相對于視頻編碼領(lǐng)域的當(dāng)前狀態(tài)的該改進(jìn),現(xiàn)在來回顧關(guān)于圖1a的編碼器100A稍早討論的圖3a的傳統(tǒng)方法300A。在對視頻的逐塊編碼期間,在步驟310,根據(jù)由譯碼模式選擇器160選擇的幀內(nèi)預(yù)測模式(在未示出為方法300A的一部分的傳統(tǒng)步驟中)來生成當(dāng)前塊的殘余數(shù)據(jù)。在步驟320,對殘余數(shù)據(jù)的塊進(jìn)行頻譜變換和量化,以獲得量化變換塊。盡管將步驟320示出為單一步驟,本領(lǐng)域已知的是可以通過單一數(shù)學(xué)運(yùn)算或通過兩個(gè)單獨(dú)運(yùn)算的序列來實(shí)現(xiàn)頻譜變換和量化的最終效果。在AVS2標(biāo)準(zhǔn)中,所采用的頻譜變換是離散余弦變換(DCT),但是在視頻譯碼中可以使用其他變換(例如,離散正弦變換)(且因此,在本公開的范圍內(nèi))。在步驟350,對量化變換系數(shù)進(jìn)行平跑編碼。這涉及按反鋸齒掃描順序掃描量化變換系數(shù)并生成包含(a) “平即非零系數(shù)的量值和(b) “跑即(按反鋸齒順序)在非零系數(shù)之后在下一個(gè)非零系數(shù)或CG末端(如果上一個(gè)“跑” 一直到CG的左上系數(shù))之前的連續(xù)零值系數(shù)的數(shù)目在內(nèi)的對。在步驟360,對平跑對進(jìn)行二進(jìn)制化(例如,使用一元譯碼或其某種變型)和熵編碼。在AVS2標(biāo)準(zhǔn)中,熵譯碼是算數(shù)譯碼,但是在視頻譯碼中可以使用其他類型的熵譯碼(例如,可變長度譯碼)(且因此,在本公開的范圍內(nèi))。
[0074]現(xiàn)在將意識到:在視頻壓縮中的幀內(nèi)預(yù)測和變換過程之后,當(dāng)所使用的幀內(nèi)預(yù)測模式在垂直類中時(shí),非零變換系數(shù)易于接近CG的頂部。類似地,當(dāng)使用的幀內(nèi)預(yù)測模式是水平類時(shí),非零變換系數(shù)易于接近CG的左側(cè)。該發(fā)現(xiàn)暗示了在水平預(yù)測之后的變換系數(shù)塊如果被轉(zhuǎn)置,將具有與在垂直預(yù)測之后的變換系數(shù)塊的類似統(tǒng)計(jì)數(shù)據(jù)。(此處該統(tǒng)計(jì)數(shù)據(jù)主要指代在CG中連續(xù)非零系數(shù)之間的零值系數(shù)的“跑”,即數(shù)目,其確定了最后一個(gè)非零CG的位置和CG中最后一個(gè)非零系數(shù)的位置)。由于轉(zhuǎn)置水平模式塊具有與未轉(zhuǎn)置垂直模式塊的系數(shù)分布相類似的系數(shù)分布,可以通過編程命令它們“共享上下文”(如下文詳細(xì)描述),來“哄騙”編碼器100B將前者視為其是后者一樣。這具有降低上下文總數(shù)的效果。降低需要存儲的上下文的數(shù)目進(jìn)而降低了熵譯碼的復(fù)雜度。
[0075]在圖1b和3b中示出了該發(fā)現(xiàn)的技術(shù)應(yīng)用。圖1b以框圖形式示出了編碼器100B,其與圖1a的編碼器100A的不同之處在與:在量化器115和熵編碼器125之間插入了塊轉(zhuǎn)置120。在虛線輪廓中指示了:盡管其位置固定,不需要在所有情況下對其進(jìn)行使用。事實(shí)上,對變換系數(shù)塊進(jìn)行轉(zhuǎn)置的點(diǎn)是針對第一特定類(例如,水平類)中幀內(nèi)預(yù)測模式的轉(zhuǎn)置,且針對第二特定類(例如,垂直類)中幀內(nèi)預(yù)測模式不轉(zhuǎn)置,使得經(jīng)由第一類中模式的幀內(nèi)預(yù)測之后的變換系數(shù)塊一旦進(jìn)行轉(zhuǎn)置,將具有與在經(jīng)由第二類中模式的幀內(nèi)預(yù)測之后的變換系數(shù)塊類似的統(tǒng)計(jì)數(shù)據(jù)。從而,在實(shí)際中,執(zhí)行測試(圖1b中未示出,但是在圖3b的步驟330中指示,接下來描述)以確定是否應(yīng)當(dāng)調(diào)用塊轉(zhuǎn)置120的功能。
[0076]圖3b示出了如下文中詳細(xì)描述的用于對殘余塊進(jìn)行編碼的新穎方法300B的流程圖。通過添加步驟330和340來將其與圖3a所示的傳統(tǒng)方法300A加以區(qū)分。在步驟330,執(zhí)行測試以確定空間預(yù)測器105要使用的幀內(nèi)預(yù)測模式(與譯碼模式選擇器160所確定的一樣)是否在預(yù)定類中。為了更清楚,該測試不僅確定模式是否在某個(gè)預(yù)定類中;這種測試將是不必要的,因?yàn)槊總€(gè)模式嚴(yán)格地在三個(gè)類之一中,這均是根據(jù)達(dá)成一致的編碼-解碼標(biāo)準(zhǔn)(其可被寫為僅規(guī)定了解碼協(xié)議,而編碼協(xié)議是隱式的)的可互操作性要求來“預(yù)定的”。該測試確定模式是否在預(yù)定的特定類中,該特定類是量化變換塊被轉(zhuǎn)置所針對的唯一類。如下面解釋的,水平類是作為該特定、獨(dú)特的預(yù)定類的最佳選擇。在步驟340,在特定預(yù)定類的情況下,至少一部分量化變換塊被如圖4a (針對全塊轉(zhuǎn)置)和4b (針對部分塊轉(zhuǎn)置)所示轉(zhuǎn)置。為了完成欺騙-“哄騙”編碼器100B將一種模式類的轉(zhuǎn)置塊視為好像其是另一類的未轉(zhuǎn)置塊一樣-應(yīng)當(dāng)更新上下文索引;否則,解碼將比在根據(jù)更新的上下文索引來導(dǎo)出上下文的情況下低效,且將不實(shí)現(xiàn)塊變換的全部優(yōu)點(diǎn)。
[0077]例如,假定對于某些實(shí)施例,觸發(fā)塊轉(zhuǎn)置的特定預(yù)定類是水平類。還假定編碼器100B 一般將具有值 INTRA_PRED_VER、INTRA_PRED_H0R、或 INTRA_PRED_DC_DIAG (分別等于例如0、1和2的常數(shù))的上下文索引intraModeldx解釋為指示了用于幀內(nèi)預(yù)測的模式-且因此對于模式相關(guān)熵編碼來說-分別是垂直、水平或?qū)穷?。然后,表示對上下文索引的更新的偽代碼將是:
[0078]If intraModeldx = INTRA_PRED_H0R,
[0079]intraModeldx = INTRA_PRED_VER
[0080]盡管存在可以潛在地被預(yù)定為模式類(針對其在步驟340執(zhí)行塊轉(zhuǎn)置)的三個(gè)類,一類是最不想要的類,且另一類是最想要的類。預(yù)定類不應(yīng)當(dāng)是對角類,因?yàn)閷τ趯穷愔械哪J剑橇阆禂?shù)獨(dú)特地沿一條邊分布(如其他兩類中的模式的情況一樣)?,F(xiàn)在已經(jīng)意識到:如參考圖1Oc的掃描順序1020所將描述的,因?yàn)樵贑G內(nèi)的系數(shù)的特定鋸齒掃描順序以及塊內(nèi)的CG的特定鋸齒掃描順序,水平類相對于垂直類作為預(yù)定類更有優(yōu)勢。
[0081]圖3c示出了在預(yù)定類是水平類的一個(gè)實(shí)施例中圖3b所示方法300中邏輯流程300C的流程圖。具體地,圖3b的步驟310被特殊化為針對幀內(nèi)譯碼模式在水平類中的情況的替代步驟310C。方法300B的測試330未在邏輯流程300C中示出,且因此無條件地執(zhí)行步驟340處的塊轉(zhuǎn)置。
[0082]現(xiàn)在參考圖4a和4b。圖4a示出了對量化變換系數(shù)的樣本8x8塊410應(yīng)用全塊轉(zhuǎn)置400A以產(chǎn)生轉(zhuǎn)置塊410T ;該轉(zhuǎn)置是傳統(tǒng)矩陣轉(zhuǎn)置,即,沿著從左上角到塊的右下角的對角線翻轉(zhuǎn)。如果用B[j,i]來表示初始塊(例如,塊410),其中,j = 0...塊高度-1且i=0...塊寬度-1,且用BT[j,i]來表示轉(zhuǎn)置塊(例如,塊410T),其中,j = 0...塊高度-1且i =0...塊寬度-1,則全塊轉(zhuǎn)置可以用以下公式表示:
[0083]BT[j,i] = B[i,j],其中,j = 0...塊高度-1 且 i = 0...塊寬度-1。
[0084]另一方面,圖4b示出了對圖4a所示的相同樣本8x8塊410應(yīng)用部分塊轉(zhuǎn)置400B。在該情況下,沿著塊410左側(cè)邊的4x4系數(shù)塊411和413單獨(dú)轉(zhuǎn)置,以產(chǎn)生轉(zhuǎn)置系數(shù)塊41IT和413T,而系數(shù)塊412和414 ;最終結(jié)果是部分轉(zhuǎn)置塊41(ΧΤ。在另一實(shí)施例中(未示出),沿著塊410的頂部邊的411和412可以單獨(dú)轉(zhuǎn)置。這兩個(gè)實(shí)施例僅是在本公開范圍內(nèi)的各種部分轉(zhuǎn)置的樣本。對于每個(gè)這種部分塊轉(zhuǎn)置,公式表示是對上述全塊轉(zhuǎn)置的公式的約束和/或改編。
[0085]現(xiàn)在參考圖5a和6a。圖5a以框圖形式示出了與傳統(tǒng)編碼器100A兼容的傳統(tǒng)解碼器500A,即能夠?qū)λ鼍幋a器生成的視頻進(jìn)行解碼的解碼器。圖6a示出了用于對幀內(nèi)譯碼幀的殘余塊進(jìn)行解碼的對應(yīng)傳統(tǒng)方法600A的流程圖。
[0086]解碼器500A接收由例如圖1a的編碼器100A所編碼的兼容比特流199。(本領(lǐng)域眾所周知的是:功能不同的編碼器可以產(chǎn)生可由單一解碼器來解碼的編碼比特流。)解碼器500A最終產(chǎn)生重構(gòu)視頻101A,其由于有損編碼過程是不完美的,但其是對曾向編碼器中輸入的原始視頻源101的充分復(fù)制。解碼器500A可以被配置為根據(jù)多種視頻壓縮標(biāo)準(zhǔn)來工作。例如,解碼器500A可以符合AVS或AVS2。
[0087]在步驟610,熵解碼器510 (與編碼器100A的熵編碼器125相對應(yīng)并逆轉(zhuǎn)熵編碼器125的動作)對與該塊有關(guān)的數(shù)據(jù)進(jìn)行熵解碼,該與塊有關(guān)的數(shù)據(jù)包括(在圖2a和2b中示出或列出的三十三個(gè)幀內(nèi)預(yù)測模式中)用于產(chǎn)生編碼塊的幀內(nèi)預(yù)測模式。解碼器500A不包括與編碼器100A的譯碼模式選擇器160相對應(yīng)的組件,譯碼模式選擇器160具有(基于各種標(biāo)準(zhǔn))確定必須要使用哪種譯碼模式的任務(wù)。相反,先前解碼的數(shù)據(jù)包括關(guān)于正在編碼的當(dāng)前幀具有類型1、P還是B的指示以及關(guān)于幀內(nèi)的特定譯碼單位將被幀間譯碼還是幀內(nèi)譯碼。在步驟620,熵解碼器還對編碼塊進(jìn)行熵解碼以產(chǎn)生經(jīng)熵解碼的殘余數(shù)據(jù)塊。
[0088]在步驟660,由解量化器520對經(jīng)熵解碼的量化變換系數(shù)塊進(jìn)行解量化,以逆轉(zhuǎn)由(圖1a的)編碼器100A中的量化器115執(zhí)行的作為(圖3a的)步驟320的一部分的量化。這產(chǎn)生了經(jīng)解量化的殘余數(shù)據(jù)塊。在步驟670,反頻譜變換525對經(jīng)解量化的殘余數(shù)據(jù)塊進(jìn)行操作以逆轉(zhuǎn)編碼器100A的頻譜變換110在步驟320的剩余部分期間進(jìn)行的操作。
[0089]解碼器500A的特定組件的操作包括未作為方法600A的一部分示出的傳統(tǒng)步驟??臻g補(bǔ)償器530如上所述應(yīng)用從比特流中恢復(fù)的幀內(nèi)預(yù)測模式。由運(yùn)動補(bǔ)償器550針對I型和B型幀執(zhí)行運(yùn)動補(bǔ)償。解塊處理器540可以執(zhí)行濾波,以移除塊邊界上的偽像和/或執(zhí)行其他平滑化(與編碼過程期間預(yù)期的解碼器500A的對應(yīng)解塊處理器145 —樣)。幀緩沖區(qū)545存儲用于后續(xù)幀內(nèi)預(yù)測和幀間預(yù)測的數(shù)據(jù)。
[0090]現(xiàn)在參考圖5b和6b。圖5b以框圖形式示出了用于對圖1b所示的編碼器100B編碼的視頻進(jìn)行解碼的新穎解碼器500B。圖6b示出了用于對根據(jù)圖3b所示的方法300B來編碼的殘余塊進(jìn)行解碼的方法的流程圖。由于新穎的編碼器100B包括塊轉(zhuǎn)置120,新穎的解碼器500B必須包含在編碼組件的序列中恰當(dāng)定位的用于通過應(yīng)用塊轉(zhuǎn)置的逆來逆轉(zhuǎn)塊轉(zhuǎn)置的效果的組件;否則由于變換系數(shù)將與錯(cuò)誤的頻率相關(guān)聯(lián),將根據(jù)混淆的變換域數(shù)據(jù)來最終重構(gòu)空間域數(shù)據(jù)。當(dāng)然,塊轉(zhuǎn)置120執(zhí)行周期而操作,意味著應(yīng)用其兩次相當(dāng)于應(yīng)用恒等(即,什么也不做)操作。所述另一種方式,塊轉(zhuǎn)置120使其自身的逆。從而,新穎的解碼器500B與傳統(tǒng)解碼器500A的不同之處在于:不僅作為塊轉(zhuǎn)置120的逆還與其相同的塊轉(zhuǎn)置515被插在熵解碼器510和解量化器520之間。此外,為了兼容,必須在編碼器和解碼器中并入嚴(yán)格相同類型的塊轉(zhuǎn)置(全塊轉(zhuǎn)置或部分塊轉(zhuǎn)置)。以虛線輪廓的方式來繪出塊轉(zhuǎn)置515,因?yàn)槠鋬H在用于生成編碼塊的幀內(nèi)預(yù)測模式在特定預(yù)定類中的情況下才采用,該情況觸發(fā)了編碼器10A的塊轉(zhuǎn)置在編碼期間的操作。
[0091]類似地,新穎的解碼方法600B與傳統(tǒng)方法600A的不同之處在于:為了與新穎的編碼方法300B兼容,其必須包含步驟650,在步驟650,對量化變換塊應(yīng)用塊轉(zhuǎn)置(其也是在編碼期間應(yīng)用的塊轉(zhuǎn)置的逆);此外,為了兼容,必須在編碼和解碼期間都并入嚴(yán)格相同類型的塊轉(zhuǎn)置(全塊轉(zhuǎn)置或部分塊轉(zhuǎn)置)。
[0092]然而,步驟650僅在以下條件時(shí)才執(zhí)行:在步驟620,對當(dāng)前快的編碼期間使用的幀內(nèi)預(yù)測模式是否在預(yù)定類中的確定具有肯定結(jié)果。這是因?yàn)槠鋬H在以下情況下才有意義:(a)針對水平類中的模式進(jìn)行轉(zhuǎn)置,使得系數(shù)將以與垂直類中的模式的系數(shù)相類似的方式分布,或(b)針對垂直類中的模式進(jìn)行轉(zhuǎn)置,使得系數(shù)將以與水平類中的模式的系數(shù)相類似的方式分布。(在實(shí)際中,優(yōu)選選項(xiàng)(a),如在本文其他地方所解釋的。)如果步驟620的幀內(nèi)預(yù)測模式的測試具有否定結(jié)果,則在步驟640僅對編碼塊進(jìn)行熵解碼,與圖6a的方法600A—樣。另一方面,如果測試具有肯定結(jié)果,則在步驟640'對編碼塊的熵解碼(在塊轉(zhuǎn)置步驟650之前)應(yīng)當(dāng)在步驟630的上下文索引的更新之后;否則,將使用更多的上下文,且熵譯碼將變得比根據(jù)更新上下文索引來導(dǎo)出上下文的情況更復(fù)雜。嚴(yán)格按照在編碼期間的方式來執(zhí)行更新。例如,假定對于某些實(shí)施例,在編碼期間觸發(fā)塊轉(zhuǎn)置的特定預(yù)定類曾是水平類。進(jìn)一步假設(shè)編碼器100B通常將具有值INTRA_PRED_VER、INTRA_PRED_H0R或INTRA_PRED_DC_DIAG(分別等于例如0、1和2的常數(shù))的上下文索引intraModeldx解釋為指示用于幀內(nèi)預(yù)測(因此用于模式相關(guān)熵編碼)的模式分別在垂直類、水平類或?qū)穷愔?。然后,表示上下文索引的更新的偽代碼是:
[0093]如果intraModeldx = INTRA_PRED_H0R,,
[0094]intraModeldx = INTRA_PRED_VER
[0095]解量化步驟660B與方法600A的步驟660無差別地操作。不同的特征數(shù)字僅反映它具有更多樣的輸入,該輸入可能已經(jīng)或可能還未在步驟650處被轉(zhuǎn)置。
[0096]圖6c示出了在圖6b中所示的方法600B的一個(gè)實(shí)施例中的邏輯流程600C的流程圖。該實(shí)施例被限制于指定的預(yù)定類(其觸發(fā)轉(zhuǎn)置的應(yīng)用)是水平類并且用于產(chǎn)生編碼塊的幀內(nèi)預(yù)測模式在該類中的情況。該邏輯序列從步驟610C開始,步驟610C以類似于方法600B的步驟610處的方式操作;改變的特征數(shù)字反映了結(jié)果是處于水平類中的經(jīng)解碼的幀內(nèi)預(yù)測模式。在其是結(jié)果的情況下,例如根據(jù)上文的偽隨機(jī)碼無條件地更新上下文索引(未示出測試620)。如方法600B中一樣,步驟640’和650緊隨之后。解量化步驟660C與方法600B的步驟660B無差別地操作。不同的特征數(shù)字僅反映通過該邏輯路徑的輸入必然在步驟650處進(jìn)行了轉(zhuǎn)置。
[0097]針對平跑編碼的改進(jìn)模式相關(guān)上下文設(shè)計(jì)
[0098]在共同未決的申請PCT/CA2013/050020中,公開了如果用于對平跑對進(jìn)行熵編碼的上下文是至少部分地基于變換系數(shù)在當(dāng)前系數(shù)組中的位置以及幀內(nèi)預(yù)測模式所屬的類導(dǎo)出的,則編碼效率受益。為此,針對幀內(nèi)預(yù)測模式的三個(gè)類中的每一個(gè)(在本申請中參照圖2a的分類200A定義),公開了 CG中的系數(shù)位置的相應(yīng)兩部分劃分。然后,基于針對該類的劃分的兩個(gè)區(qū)域中與特定模式類別的平跑對的每一個(gè)二進(jìn)制值相對應(yīng)的系數(shù)所處的那個(gè)區(qū)域來導(dǎo)出用于對該二進(jìn)制值進(jìn)行熵編碼的上下文。現(xiàn)在已經(jīng)認(rèn)識到,可以通過三部分劃分實(shí)現(xiàn)對編碼效率的進(jìn)一步提高,如下所述。根據(jù)上文已經(jīng)公開的內(nèi)容,劃分的應(yīng)用還應(yīng)當(dāng)適應(yīng)任何轉(zhuǎn)置操作的存在;否則,模式相關(guān)上下文設(shè)計(jì)將不如進(jìn)行調(diào)整的情況那樣有效。
[0099]首先參照圖7,圖7示出了將系數(shù)組的變換系數(shù)劃分為三個(gè)不相交的變換系數(shù)區(qū)域,以用于導(dǎo)出用于對當(dāng)前CG的平跑對進(jìn)行熵編碼的上下文的目的。在所示的每一種情況下,CG的大小為4個(gè)系數(shù)X4個(gè)系數(shù)。每一個(gè)劃分最適合于上文參照圖2b的分類200B所定義的三個(gè)類中的相應(yīng)類中的幀內(nèi)預(yù)測模式(但是它們也可以與圖2a的分類200A—起使用)。
[0100]劃分710由CG的三個(gè)不相交水平帶構(gòu)成:由頂行構(gòu)成的區(qū)域A,特征711 ;由中間行構(gòu)成的區(qū)域B,特征712 ;以及由底行構(gòu)成的區(qū)域C,特征713。該劃分被設(shè)計(jì)用于垂直類中的幀內(nèi)預(yù)測模式——假設(shè)未向當(dāng)前塊(或者包括當(dāng)前CG的部分)應(yīng)用塊轉(zhuǎn)置。如果模式在垂直類中但是當(dāng)前CG受到轉(zhuǎn)置影響,則采用下文所述的劃分720。
[0101]劃分720由CG的三個(gè)不相交垂直帶構(gòu)成:由左列構(gòu)成的區(qū)域A,特征721 ;由中間列構(gòu)成的區(qū)域B,特征722 ;以及由右列構(gòu)成的區(qū)域C,特征723。該劃分被設(shè)計(jì)用于水平類中的幀內(nèi)預(yù)測模式——假設(shè)未向當(dāng)前塊(或者包括當(dāng)前CG的部分)應(yīng)用塊轉(zhuǎn)置。如果模式在水平類中但是當(dāng)前CG受到轉(zhuǎn)置影響,則采用上文所述的劃分710。
[0102]劃分730由CG的三個(gè)不相交(大致)對角線帶構(gòu)成:由CG的左上角中的三個(gè)系數(shù)構(gòu)成的區(qū)域A,特征731 ;由CG的右下角中的六個(gè)系數(shù)構(gòu)成的區(qū)域C,特征733 ;以及由區(qū)域A與C之間的對角線帶中的剩余七個(gè)系數(shù)構(gòu)成區(qū)域B,特征732。該劃分被設(shè)計(jì)用于對角線類中的幀內(nèi)預(yù)測模式。該劃分在轉(zhuǎn)置下不變。在上文提到的任何情況下,沒有理由針對對角線類中的模式進(jìn)行轉(zhuǎn)置,因此針對對角線類中的模式,關(guān)于當(dāng)前CG是否受轉(zhuǎn)置影響的考慮是無實(shí)際意義的。
[0103]根據(jù)已經(jīng)關(guān)于劃分710和720所述的內(nèi)容,應(yīng)當(dāng)在意料之中的是,將這些劃分中的任意一個(gè)用于導(dǎo)出上下文(該上下文用于對當(dāng)前CG的平跑對進(jìn)行熵編碼)的目的取決于是否采用轉(zhuǎn)置。因此,針對可能在一些情況下采用轉(zhuǎn)置的實(shí)施例(圖9a至9c),必須單獨(dú)地描述不采用轉(zhuǎn)置的用于模式相關(guān)上下文設(shè)計(jì)的方法(圖Sb和Sc)。
[0104]現(xiàn)在參照圖8a至8c,圖8a至8c均涉及當(dāng)不采用轉(zhuǎn)置時(shí)將圖7的劃分710、720和730用于導(dǎo)出上下文的目的,該上下文用于對當(dāng)前CG的平跑對進(jìn)行熵編碼。
[0105]圖8a示出了在不使用塊轉(zhuǎn)置的情況下用于對殘余塊進(jìn)行模式相關(guān)的平跑編碼的已知方法300D的流程圖;它借鑒了圖3A的方法300A,其中省略了步驟310。步驟320和350與方法300A中的完全相同。步驟360D是步驟360的特定實(shí)施例,在步驟360D中,現(xiàn)在通過至少部分地基于CG的若干區(qū)域中與CG的平跑對的每一個(gè)二進(jìn)制值相對應(yīng)的系數(shù)所屬的那個(gè)區(qū)域,導(dǎo)出該二進(jìn)制值的上下文,來完成對平跑對的熵編碼,其中,已經(jīng)基于用于對CG進(jìn)行編碼的幀內(nèi)預(yù)測模式將該CG劃分為區(qū)域(如上所述,現(xiàn)有公開內(nèi)容規(guī)定了兩部分劃分)。
[0106]圖8b示出了詳細(xì)說明步驟360D’的流程圖,步驟360D’與圖8a中所示的方法300D的步驟360D相似,但是被調(diào)整為說明從圖7中所示的劃分中選擇三部分劃分。在步驟361,確定三個(gè)類中用于對當(dāng)前CG進(jìn)行編碼的幀內(nèi)預(yù)測模式所屬的那一類。根據(jù)模式是屬于對角類、垂直類還是水平類,分別將控制傳遞到步驟361A、步驟361B或步驟361C,所述步驟分別使用劃分730、劃分710或劃分720來執(zhí)行熵編碼。
[0107]圖8c示出了詳細(xì)說明表示圖8b的步驟361A、步驟361B或步驟361C(根據(jù)具體情況而定)的步驟361x的流程圖一其中,至少部分地基于在圖Sb的步驟361處選擇的劃分(分別為730、710或720)來導(dǎo)出上下文。在步驟362,確定與平跑對的當(dāng)前二進(jìn)制值相對應(yīng)的系數(shù)是否是DC系數(shù)(因?yàn)镈C系數(shù)是整個(gè)當(dāng)前塊中的左上角系數(shù),因此這可能僅在當(dāng)前CG是塊的左上角CG時(shí)才發(fā)生)。如果是,則在一個(gè)特殊情況下使用上下文模型O。否則,使用三部分劃分。在步驟363,確定三個(gè)區(qū)域中與平跑對的當(dāng)前二進(jìn)制值相對應(yīng)的系數(shù)所屬的那個(gè)區(qū)域。根據(jù)該系數(shù)是屬于區(qū)域A、B還是C,將控制分別傳遞到步驟363A、步驟363B或步驟363C,所述步驟分別使用上下文模型1、2或3來執(zhí)行熵編碼。在一個(gè)示例性實(shí)施例中,可以通過以下偽代碼給出用于對“跑”的每一個(gè)二進(jìn)制值進(jìn)行熵編碼的上下文模型:
[0108]如果當(dāng)前CG是左上角CG,則
[0109]ctxlnc (run) = reg1nCGIdx*3+min(2, (absSum+absLevel)/2)
[0110]否則,
[0111]ctxlnc(run) = (reg1nCGIdx-1)*3+min(2, (absSum+absLevel)/2)+12
[0112]其中,針對上下文模型i,i = 0、1、2或3, reg1nCGIdx = i ;absSum是先前以逆掃描順序編碼的非零系數(shù)的“平”之和;并且absLevel是與“平跑對”中的該“跑”相對應(yīng)的“平”?,F(xiàn)在參照圖9a至9c,其也將圖7的劃分710、720和730用于導(dǎo)出上下文的目的的方法,該上下文用于對當(dāng)前CG的平跑對進(jìn)行熵編碼。然而,與圖8a至Sc的方法相反,這些方法適應(yīng)采用轉(zhuǎn)置的可能情況。
[0113]圖9a示出了在產(chǎn)生編碼塊時(shí)使用的幀內(nèi)預(yù)測模式在特定預(yù)定類中的情況下使用塊轉(zhuǎn)置對殘余塊進(jìn)行模式相關(guān)編碼的方法300E的流程圖。方法300E與圖3b的方法300B的不同之處在于:替換步驟360E現(xiàn)在通過至少部分地基于CG的若干區(qū)域中與平跑對的每一個(gè)二進(jìn)制值相對應(yīng)的(可能轉(zhuǎn)置的)系數(shù)所屬的那個(gè)區(qū)域?qū)С鲈摱M(jìn)制值的上下文來對平跑對進(jìn)行熵編碼?;谟糜趯G進(jìn)行編碼的幀內(nèi)預(yù)測模式以及在步驟340處是否向系數(shù)應(yīng)用轉(zhuǎn)置,各區(qū)域構(gòu)成劃分。該聯(lián)合條件的第一部分正好是圖8a的步驟360D中提及并且在圖8b的步驟360D’中詳細(xì)描述的條件。
[0114]對條件的第二部分——在步驟340處是否應(yīng)用轉(zhuǎn)置——進(jìn)行更仔細(xì)的考慮。第一,如果應(yīng)用的轉(zhuǎn)置是全塊轉(zhuǎn)置,則條件相當(dāng)于步驟330處的測試條件;換言之,可以用與步驟330相同的方式測試第二條件。
[0115]第二,當(dāng)判斷系數(shù)的位置以確定系數(shù)處于哪個(gè)區(qū)域時(shí),使用的是轉(zhuǎn)置后的位置。
[0116]第三,已經(jīng)應(yīng)用轉(zhuǎn)置的意義在于在該情況下必須同樣對劃分進(jìn)行“轉(zhuǎn)置”。當(dāng)例如幀內(nèi)預(yù)測模式在水平類中時(shí),轉(zhuǎn)置的目的是定位轉(zhuǎn)置系數(shù),使得它們以與垂直類中的模式的分布類似的方式分布;如上所述,為了完成“哄騙”編碼器100B將轉(zhuǎn)置水平模式塊視為如同它是未轉(zhuǎn)置的垂直模式塊一樣,應(yīng)當(dāng)更新上下文索引。如果如這里一樣,劃分也用于在已經(jīng)應(yīng)用轉(zhuǎn)置時(shí)導(dǎo)出水平類中的模式的上下文,則應(yīng)當(dāng)進(jìn)一步(通過適當(dāng)代碼)哄騙編碼器100B采用(在無轉(zhuǎn)置的情況下)用于垂直類中的模式的劃分,即,劃分710。此外,這用于獲得至少部分地基于當(dāng)前CG的劃分來導(dǎo)出上下文的全部益處。劃分710在其布局中是劃分720的轉(zhuǎn)置(針對水平類中的模式,沒有轉(zhuǎn)置),即使一個(gè)劃分不是通過應(yīng)用轉(zhuǎn)置根據(jù)另一個(gè)劃分來逐字地(literally)生成的。下面將參照圖9b來詳細(xì)說明劃分的該有條件交換。
[0117]第四,如果應(yīng)用的轉(zhuǎn)置僅是部分塊轉(zhuǎn)置,則僅針對曾應(yīng)用過轉(zhuǎn)置的系數(shù)進(jìn)行考慮到該轉(zhuǎn)置的調(diào)節(jié)。(其對該轉(zhuǎn)置的域中的所有系數(shù)加以同等對待,甚至在該轉(zhuǎn)置下位于不變的對角線上的系數(shù))。
[0118]最后,本領(lǐng)域技術(shù)人員認(rèn)識到,如果應(yīng)用的轉(zhuǎn)置僅是部分轉(zhuǎn)置,則僅當(dāng)轉(zhuǎn)置應(yīng)用于CG時(shí)才對應(yīng)用于CG的劃分進(jìn)行轉(zhuǎn)置。在該情況下,不完全共享上下文,但是編碼效率仍然得到提高,這是因?yàn)獒槍Σ煌惖姆植几营?dú)特。
[0119]圖9b示出了詳細(xì)說明圖8a中所示的方法中的一個(gè)步驟但是被調(diào)整為說明從圖7中所示的劃分中選擇劃分的流程圖——該流程圖與圖8b中的流程圖類似但是適應(yīng)塊轉(zhuǎn)置的任何用法。調(diào)整是在步驟365處增加針對垂直類和水平類中任意一個(gè)中的模式來確定轉(zhuǎn)置是否應(yīng)用于與正在編碼的二進(jìn)制值相對應(yīng)的系數(shù)。(如上所述,針對對角線類中的模式,不觸發(fā)轉(zhuǎn)置)。如果針對水平類中的模式,答案是肯定的,則在步驟361B處使用劃分710(最初為垂直類中的模式設(shè)計(jì)的)而不是在步驟361C處使用劃分720 (最初為水平類中的模式設(shè)計(jì)的)。如果針對垂直類中的模式,答案是肯定的,則在步驟361C處使用劃分720而不是在步驟361B處使用劃分710。
[0120]該流程圖是“過強(qiáng)的”,其原因在于它可以針對水平類中的模式和/或針對垂直類中的模式來處理部分塊轉(zhuǎn)置或全塊轉(zhuǎn)置。實(shí)際上,將一貫針對一個(gè)特定類或另一個(gè)類(而不是有時(shí)針對一個(gè)而其他時(shí)候針對另一個(gè))完成轉(zhuǎn)置。因此,為了對編碼算法進(jìn)行實(shí)際編程,流程圖將無需太復(fù)雜。例如,如果觸發(fā)轉(zhuǎn)置的特定預(yù)定類是水平類,則測試364中的“垂直”線364B將直接(無條件地)前進(jìn)至步驟361B,即使應(yīng)用的轉(zhuǎn)置是部分轉(zhuǎn)置也是如此;如果應(yīng)用的轉(zhuǎn)置是全轉(zhuǎn)置,則364中的“水平”線364C也可以直接前進(jìn)至步驟36IB。
[0121]圖9c示出了詳細(xì)說明在假設(shè)特定預(yù)定類是水平類的情況下通過圖9a的步驟360E的流程圖的一個(gè)特定路徑360E’的流程圖。在步驟364C,與圖9b的“水平”線364C相對應(yīng)地,確定用于產(chǎn)生編碼塊的幀內(nèi)預(yù)測模式在水平類(其是觸發(fā)轉(zhuǎn)置的特定預(yù)定類)中。詳細(xì)說明了圖9b的步驟361A,其示出了如何在環(huán)境(即,應(yīng)用塊轉(zhuǎn)置)下如何采用最初針對垂直類中的模式設(shè)計(jì)的劃分710。這是圖Sc的一般步驟361x的特定實(shí)施例。與步驟361x相比,區(qū)域A現(xiàn)在是CG的頂行,區(qū)域B是中間兩行,區(qū)域C現(xiàn)在是底行。
[0122]現(xiàn)在參照圖10a、圖1Ob和圖1Oc以解釋如何對變換塊的“概述(overview) ”進(jìn)行編碼以避免不必要地對零值變換系數(shù)進(jìn)行編碼。圖1Oa示出了(在該情況下,大小為16x16)樣本塊1000被劃分為(在該情況下具有四行和四列的)系數(shù)組。在塊1000的上方和左側(cè)示出了用于根據(jù)這些列和行指示CG的二維位置的CCx-和CCy-坐標(biāo)軸。此外,示出了塊內(nèi)的系數(shù)組的鋸齒組掃描順序1010。系數(shù)組100a至100p的特征數(shù)字中的字母反映從左上角CG 100a到右下角CGlOOOp的順序1010。該特定鋸齒順序以(1,0)處的CG緊隨(0,0)處的CG之后開始,但是該順序的“轉(zhuǎn)置”版本((0,1)處的CG緊隨(0,0)處的CG之后)也是可能的。雖然AVS2標(biāo)準(zhǔn)規(guī)定圖1Oa中所示的鋸齒順序,但是其他類型的順序(例如,水平(面向行)順序和垂直(面向列)順序,不論是雙向的還是單向的)也可以在視頻編碼時(shí)使用(因此落入本公開的范圍內(nèi))。
[0123]圖1Ob示出了與圖1Oa中所示的相同樣本塊1000相對應(yīng)的系數(shù)組標(biāo)志塊1000F,并且示出了塊中的系數(shù)組的組掃描順序中的最后一個(gè)非零系數(shù)組的位置。每個(gè)I指示相應(yīng)的CG是“非零” CG,即,它包含至少一個(gè)非零變換系數(shù);每一個(gè)O指示相應(yīng)的CG是“0”CG,SP,它僅包含零值變換系數(shù)。根據(jù)順序1010,最后一個(gè)非零系數(shù)組(LNZCG)是由標(biāo)志100Cm來標(biāo)志的,標(biāo)志100Cm與塊1000的CG 100m相對應(yīng);兩個(gè)相應(yīng)塊的(x,y)_位置是(最后一個(gè)CGX,最后一個(gè)CGY) = (3,I)。(本領(lǐng)域技術(shù)人員通常將塊中的最后一個(gè)非零CG稱作“最后一個(gè)” CG,這是因?yàn)樗切枰幋a的最后一個(gè)CG;在解碼期間,組掃描順序中的后續(xù)CG中的所有系數(shù)被推斷為O)。在組掃描順序中在LNZCG 100m之后的CG lOOOnUOOOo和100p中,僅存在零值變換系數(shù)。通過(根據(jù)如這里的X坐標(biāo)和y坐標(biāo)或者作為組掃描順序中的一維位置)對LNZCG 100rn的位置進(jìn)行編碼,不僅無需對這些O進(jìn)行編碼,而且無需對與CGlOOOn、1000ο和100p相對應(yīng)的零值標(biāo)志進(jìn)行編碼。慮到由“n/a” ( “不可應(yīng)用”)記號指示的丟失數(shù)據(jù),標(biāo)志塊1000F因此可以被視為“部分”塊(其仍然起重構(gòu)完整塊的作用)。
[0124]圖1Oc示出了針對圖1Oa中所示的相同樣本塊1000的一些系數(shù)級別細(xì)節(jié)。針對CG 100e,示出了該CG內(nèi)的變換系數(shù)的掃描順序1020。如同CG級別的組掃描順序一樣,系數(shù)級別的掃描順序以向右鋸齒折轉(zhuǎn)(zig)然后對角急轉(zhuǎn)(zag)開始,從左上角系數(shù)100eO前進(jìn)至右下角系數(shù)1000el5。同樣如同組掃描順序一樣,雖然圖1Oc中所示的掃描順序是由AVS2標(biāo)準(zhǔn)規(guī)定的掃描順序,但是系數(shù)級別的其他掃描順序也是可能的(并且落入本公開的范圍內(nèi))。在CG 1000k的上方和左側(cè)也示出了用于指示變換系數(shù)的二維位置的Cx和Cy坐標(biāo)軸。針對系數(shù)組1000k和1000m,示出了這些系數(shù)組的掃描順序中的相應(yīng)最后一個(gè)非零系數(shù)(LNZCs) 1000kl3 和 1000m3。針對 CG 1000k,(最后一個(gè) PosX,最后一個(gè) PosY) = (3,2)。針對 CG 1000m,(最后一個(gè) PosX,最后一個(gè) Posy) = (l,l)o
[0125]所有掃描順序是非對稱的。例如,掃描順序1020在CG轉(zhuǎn)置或CG的任何其他翻轉(zhuǎn)下不是不變的。如關(guān)于轉(zhuǎn)置塊簡要描述的,現(xiàn)在已經(jīng)認(rèn)識到,由于CG內(nèi)的系數(shù)的特定鋸齒掃描順序1020以及塊中的CG的組掃描順序1010(其中每一個(gè)在對角急轉(zhuǎn)之前向右(而不是向下)鋸齒折轉(zhuǎn)),轉(zhuǎn)置水平類(與垂直類相對)中的塊幀內(nèi)預(yù)測模式是有利的。針對垂直類中的模式,LNZC通常在前兩行中,而針對水平類中的模式,LNZC通常在前兩列中。通過轉(zhuǎn)置水平模式的塊,LNZC移動至前兩行,這平均減少了要掃描的系數(shù)的數(shù)量,從而有利于編碼效率。
[0126]系數(shù)組的LNZC的(X,y)位置的模式相關(guān)編碼
[0127]現(xiàn)在已經(jīng)認(rèn)識到,在視頻壓縮中的幀內(nèi)預(yù)測和變換過程之后,當(dāng)CG位于變換塊的頂邊時(shí),該CG中的LNZC趨于靠近CG的頂部。類似地,當(dāng)CG位于變換塊的左側(cè)邊時(shí),LNZC趨于靠近CG的左側(cè)。
[0128]為了利用該觀察的目的,在圖1la和Ilb中示出了圖1Oa的變換塊1000的兩個(gè)不同劃分。圖12示出了如何使用這些劃分之一。
[0129]在圖1la中,劃分1100A將塊1000的系數(shù)組劃分為四個(gè)不相交的系數(shù)組區(qū)域。這些區(qū)域是:僅由左上角CG 1000a單獨(dú)構(gòu)成的區(qū)域0,特征1110A ;由塊1000的頂邊上除了左上角CG 1000a之外的CG構(gòu)成的區(qū)域1,特征IlllA ;區(qū)域2,由塊1000的左側(cè)邊上除了左上角CG 1000a之外的CG構(gòu)成的區(qū)域2,特征1112A ;以及由既不在塊的左側(cè)邊上也不在頂邊上的所有CG構(gòu)成的區(qū)域3,特征1113A。
[0130]另一方面,在圖1lb中,劃分1100B將塊1000的系數(shù)組劃分為三個(gè)不相交的系數(shù)組區(qū)域。這些區(qū)域是:僅由左上角CG 100a單獨(dú)構(gòu)成的區(qū)域0,特征1110B ;由塊的左側(cè)邊或頂邊上(而非同時(shí)在這二者上)的CG構(gòu)成的區(qū)域1,特征IlllB ;以及由既不在塊的左側(cè)邊上也不在頂邊上的所有CG構(gòu)成的區(qū)域2,特征1112B。
[0131]圖12示出了詳細(xì)說明使用圖1lb中所示的三部分劃分1100B的流程圖。在步驟368,確定當(dāng)前CG屬于區(qū)域O、區(qū)域I和區(qū)域2中的哪一個(gè)區(qū)域。根據(jù)該區(qū)域是區(qū)域O、I還是2,分別在步驟368A處基于上下文模型O、在步驟368B處基于上下文模型1、或者在步驟368C處基于上下文模型2,對該CG中的LNZC的(x,y)位置進(jìn)行編碼。在一個(gè)示例性實(shí)施例中,基于區(qū)域索引、幀內(nèi)預(yù)測模式分類和二進(jìn)制值索引來確定用于對當(dāng)前CG中的LNZC的(X,y)位置進(jìn)行熵編碼的上下文模型,如下面的偽代碼所示:
[0132]如果當(dāng)前CG屬于區(qū)域2,則:
[0133]ctxlnc (IastPosX) = min(binlndex,I);
[0134]ctxlnc (IastPosY) = min(binlndex,I);
[0135]否則,
[0136]ctxlnc (IastPosX)=
[0137]reg1nIndex*4+(intraModeldx > 0)*2+min(binlndex,1)+2 ;
[0138]ctxlnc (IastPosY)=
[0139]reg1nIndex*4+ (intraModeldx > 0)*2+min (binlndex, 1)+2 ;其中,intraModeldx = 0,如果巾貞內(nèi)預(yù)測模式在垂直類中
[0140]= 1,如果幀內(nèi)預(yù)測模式在水平類中
[0141]=2,其它情況
[0142]用于對系數(shù)組中的最后一個(gè)非零系數(shù)的位置數(shù)據(jù)進(jìn)行編碼
[0143]在統(tǒng)一的AVS2編碼設(shè)計(jì)中,CG中的最后一個(gè)非零系數(shù)的(x,y)位置被編碼為(X,Y),其中,原點(diǎn)(0,0)是CG的左上角系數(shù)位置。向坐標(biāo)(X,Y)應(yīng)用一元二進(jìn)制化。如果當(dāng)前CG不是LNZCG,則通常當(dāng)前CG的最后一個(gè)非零系數(shù)位置位于接近右下角、左下角或右上角系數(shù)位置,在該情況下,編碼(X,Y)不是有效的,這是因?yàn)閮蓚€(gè)坐標(biāo)中的至少一個(gè)將接近值3,值3是可能針對CG編碼的坐標(biāo)值(O至3)中最長的,其中為了符合AVS2標(biāo)準(zhǔn),CG始終具有大小4x4。
[0144]在圖13中非常一般地示出了對該觀測的技術(shù)應(yīng)用,在圖13中,流程圖示出了用于對正在對被編碼的當(dāng)前系數(shù)組的掃描順序中的最后一個(gè)非零系數(shù)的(X,y)_位置的修改表示進(jìn)行編碼的新穎方法1300。在針對符合AVS2 CG(具有大小4x4)的具體實(shí)施例中,修改導(dǎo)致(可能有條件地)分別將值3和2轉(zhuǎn)換為O和I ;這通常提高了編碼效率。
[0145]該一般方法僅應(yīng)用于作為在LNZCG之前非零CG的CG。因此,方法1300中的第一步驟是在步驟1310處確定當(dāng)前CG滿足這些要求。然后,在步驟1320,獲得當(dāng)前CG中最后一個(gè)非零系數(shù)的(x,y)_位置(X,Y)。接下來,在步驟1340,向坐標(biāo)(X,Y)應(yīng)用非恒等修改以計(jì)算修改的(x,y)_位置(X’,Y’)。修改基于以下至少一項(xiàng):(a)在產(chǎn)生編碼塊時(shí)使用的幀內(nèi)預(yù)測模式以及(b)與當(dāng)前系數(shù)組相鄰的至少一個(gè)系數(shù)組。分別在圖13a至13c中示出了修改基于(a)、基于(b)和基于這二者的實(shí)施例。最后,在步驟1350,使用上下文模型對修改的(x,y)_位置(X’,Y’ )進(jìn)行二進(jìn)制化和熵編碼。
[0146]圖13a示出了作為圖13中所示的方法1300的一個(gè)實(shí)施例的方法1300A(其基于幀內(nèi)預(yù)測模式所屬的類來修改(x.y)_位置)的流程圖,其中省略了步驟1310。圖13中未示出的步驟1330包括在圖13a中,這是因?yàn)橐谠搶?shí)施例中在產(chǎn)生編碼塊時(shí)使用的幀內(nèi)預(yù)測模式的確定現(xiàn)在是必不可少的。用虛線輪廓對此進(jìn)行描繪,這是因?yàn)?a)它無需在步驟1320之后發(fā)生,以及(b)為了(通過空間預(yù)測器105)執(zhí)行空間預(yù)測(圖1a的編碼模式選擇器160)將始終確定幀內(nèi)預(yù)測模式,而不管該方法如何。
[0147]方法1300A的本質(zhì)是步驟1340A。在該示例性實(shí)施例中,修改的應(yīng)用取決于幀內(nèi)預(yù)測模式所屬的類。在步驟1341,確定類是否是對角類。如果是,則在步驟1342,將LNZC的真實(shí)(x,y)位置(X,Y)轉(zhuǎn)換為(3-Χ,3-Υ)。如果否,則在步驟1343,確定類是否是垂直類。如果是,則在步驟1344,將LNZC的真實(shí)(X,y)位置的(X,Y)轉(zhuǎn)換為(3-X,Y)。如果否,則在步驟1346,將LNZC的真實(shí)(X,y)位置(X,Y)轉(zhuǎn)換為(X,3_Y);在該最后一種情況下,通過排除過程,隱含幀內(nèi)預(yù)測模式在水平類中。
[0148]可以在完全相同的三個(gè)相應(yīng)條件下通過其他測試序列來實(shí)現(xiàn)三個(gè)不同轉(zhuǎn)換是基本邏輯。如果提早測試更頻繁發(fā)生的狀況(從而減少執(zhí)行的測試的平均次數(shù)),對于一個(gè)特定的序列而言可能是有利的。因?yàn)楸竟_中定義的對角類最頻繁地發(fā)生,因此圖13a中所示的特定測試序列通常地受益于其首先針對對角類的測試。
[0149]圖13b示出了作為圖13中所示的方法1300的另一實(shí)施例的方法1300B(其基于當(dāng)前系數(shù)組的至少一個(gè)相鄰系數(shù)組來修改(x,y)_位置)的流程圖,其中省略了步驟1310。在該示例性實(shí)施例中,在步驟1340B處應(yīng)用修改取決于與當(dāng)前CG相鄰的先前處理過的CG (B卩,緊跟在當(dāng)前CG右側(cè)或下方的CG)中的哪一些是O并且哪一些是非零。在步驟1347,確定是否滿足右側(cè)鄰居是O并且下側(cè)鄰居是非零。如果是,則在步驟1346,將LNZC的真實(shí)(X,y)_位置(X,Y)轉(zhuǎn)換為(X,3-Y)。如果否,則在步驟1348,確定是否滿足右側(cè)鄰居是非零并且下側(cè)鄰居是O。如果是,則在步驟1344,將LNZC的真實(shí)(x,y)_位置(X,Y)轉(zhuǎn)換為(3-X,Y)。如果否,則在步驟1349,確定右側(cè)鄰居和下側(cè)鄰居是否均為非零。如果是,則在步驟1342,將LNZC的真實(shí)(X,y)_位置(X,Y)轉(zhuǎn)換為(3_X,3_Y)。如果否,則不進(jìn)行轉(zhuǎn)換,即,真實(shí)(x,y)_位置(X,Y)在被編碼之前不進(jìn)行算術(shù)修改;在該情況下,通過排除過程,隱含右側(cè)鄰居和下側(cè)鄰居均為零。
[0150]可以在完全相同的三個(gè)相應(yīng)條件下通過其他測試序列實(shí)現(xiàn)三個(gè)不同轉(zhuǎn)換是基本邏輯。如果提早測試更頻繁的狀況(從而減少執(zhí)行的測試的平均次數(shù)),對于一個(gè)此類序列而言可能是有利的。
[0151]圖13c示出了圖13中所示的方法1300的又一實(shí)施例的步驟1340C的流程圖。在該示例性實(shí)施例中,(X.y)-位置的修改的應(yīng)用取決于以下至少一項(xiàng):(a)與當(dāng)前CG相鄰的至少一個(gè)CG以及(b)要在產(chǎn)生編碼塊時(shí)使用的幀內(nèi)預(yù)測模式的分類。在步驟1347,確定是否滿足右側(cè)鄰居是O并且下側(cè)鄰居是非零。如果是,則在步驟1346,將LNZC的真實(shí)(X,y)_位置(X,Y)轉(zhuǎn)換為(Χ,3-Υ)。如果否,則在步驟1348,確定是否滿足右側(cè)鄰居是非零并且下側(cè)鄰居是O。如果是,則在步驟1344,將LNZC的真實(shí)(x,y)_位置(X,Y)轉(zhuǎn)換為(3-Χ,Y)。如果否,則在步驟1349,確定右側(cè)鄰居和下側(cè)鄰居是否均為非零。如果是,則在步驟1342,將LNZC的真實(shí)(x,y)_位置(X,Y)轉(zhuǎn)換為(3_X,3_Y)。如果否,則在步驟1343,確定幀內(nèi)預(yù)測模式是否在垂直類中。如果是,則在步驟1344,將LNZC的真實(shí)(x,y)_位置(X,Y)轉(zhuǎn)換為(3-X,Y)。如果否,則在步驟1345,確定幀內(nèi)預(yù)測模式是否在水平類中。如果是,則在步驟1346,將LNZC的真實(shí)(x,y)_位置(X,Y)轉(zhuǎn)換為(X,3_Y)。如果否,則不進(jìn)行轉(zhuǎn)換,即,真實(shí)U,y)_位置(X,Y)在被編碼之前不進(jìn)行算術(shù)修改;在該最后一種情況下,通過排除過程,隱含右側(cè)鄰居和下側(cè)鄰居均為零并且?guī)瑑?nèi)預(yù)測模式在對角類中。
[0152]可以在完全相同的三個(gè)相應(yīng)條件下通過其他測試序列實(shí)現(xiàn)三個(gè)不同轉(zhuǎn)換是基本邏輯。如果提早測試更頻繁的狀況(從而減少執(zhí)行的測試的平均次數(shù)),對于一個(gè)此類序列而言可能是有利的。
[0153]現(xiàn)在轉(zhuǎn)向圖14,示出了說明用于對根據(jù)圖13中所示的方法1300編碼的視頻進(jìn)行解碼的方法1400的流程圖。在這種編碼視頻的逐塊處理期間,在步驟1410,針對當(dāng)前塊中的當(dāng)前系數(shù)組,對該系數(shù)組的掃描順序中的最后一個(gè)非零系數(shù)的真實(shí)(X,y)_位置的修改的編碼表示(X,Y)進(jìn)行解碼。然后,在步驟1440,向修改的表示(X,Y)應(yīng)用非恒等修改以獲得真實(shí)(x,y)_位置。與方法1300 —樣,修改基于以下至少一項(xiàng):(a)在產(chǎn)生編碼塊時(shí)使用的幀內(nèi)預(yù)測模式以及(b)與當(dāng)前系數(shù)組相鄰的至少一個(gè)系數(shù)組。
[0154]如圖14中所示并且如剛剛所述的方法1400通常足夠使得它可以應(yīng)用于根據(jù)分別如圖13A、13B和13C所示并且如上文詳細(xì)討論的方法1300的范圍內(nèi)的各個(gè)實(shí)施例中的任意一個(gè)實(shí)施例編碼的視頻。當(dāng)然,它不能同時(shí)應(yīng)用于方法1300的范圍內(nèi)的每一個(gè)編碼實(shí)施例。為了與方法1300的任何特定實(shí)施例兼容,方法1400必須具有與方法1300的相應(yīng)步驟1340兼容的修改步驟1440的實(shí)施例。將顯而易見的是,修改步驟1440必須是步驟1340的逆。更具體地,在每一個(gè)可能的環(huán)境中-不論基于在產(chǎn)生編碼塊時(shí)使用的幀內(nèi)預(yù)測模式還是基于與當(dāng)前系數(shù)組相鄰的至少一個(gè)系數(shù)組-步驟1440處的對(X,Y)的轉(zhuǎn)換必須逆轉(zhuǎn)曾在當(dāng)前塊的編碼期間在步驟1340處執(zhí)行的對(X,Y)的無論哪種轉(zhuǎn)換。
[0155]因?yàn)?-(3-X) =X并且3-(3_Υ) = Y,因此可以在步驟1340處在不同條件下使用的各種轉(zhuǎn)換中的每一種——即,(Χ,Υ) — (χ,3-γ),(X, Y) — (3-X, Y)和(X,Y) — (3_Χ,3-Υ)——是周期2操作,這意味著將其應(yīng)用兩次相當(dāng)于應(yīng)用恒等(即,什么也不做)操作。換句話說,每一個(gè)轉(zhuǎn)換是其自己的逆。其最終結(jié)果是將與方法1300的特定實(shí)施例兼容的針對方法1400所需的步驟1440的變形實(shí)際上與在方法1300的該實(shí)施例中使用的步驟1340的變形相同。在這種情況下,未在單獨(dú)的圖中示出方法1400的與相應(yīng)方法1300Α、1300Β和1300C兼容的三個(gè)變形。
[0156]最后,參照圖15,圖15示出了計(jì)算設(shè)備1500的示例性實(shí)施例的簡化框圖,計(jì)算設(shè)備1500可以是多種設(shè)備中的任意一種,包括但不限于:服務(wù)器、適合編程的通用計(jì)算機(jī)、音頻/視頻編碼和回放設(shè)備、機(jī)頂盒、電視廣播設(shè)備、DVD或藍(lán)光播放器、以及可以用作編碼器、解碼器或這二者的移動設(shè)備(例如,智能電話、平板電腦、平板手機(jī)(phablet)等)。設(shè)備1500被描繪為具有兩個(gè)處理器1511和1512以控制設(shè)備的功能,但是眾所周知,計(jì)算設(shè)備可以被設(shè)計(jì)為具有單個(gè)通用處理器或具有任意數(shù)量的通用和/或?qū)S锰幚砥鳌TO(shè)備1500包括存儲器1520,其可以是能夠存儲處理器可執(zhí)行指令的非臨時(shí)性處理器可讀介質(zhì),所述處理器可執(zhí)行指令可以由設(shè)備1500中的一個(gè)或多個(gè)處理器(例如,處理器1511和1512)執(zhí)行。介質(zhì)可以是單一的或者可以由多個(gè)部分構(gòu)成。介質(zhì)可以具有一種或多種類型,例如,高密度盤、閃存設(shè)備、隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、硬盤驅(qū)動器、專用集成芯片(ASIC)等。存儲器1520或其各個(gè)部分可以從設(shè)備1500中拆卸和/或可以永久性地固定在其中。存儲器1520或其各個(gè)部分的屬性可以呈現(xiàn)存儲在其中的不可改變和/或可重新編程的指令;可重新編程存儲器可以是易失性的或非易失性的。在各個(gè)實(shí)施例中,可以將指令稱為以硬件、固件和/或軟件的形式執(zhí)行。
[0157]存儲在存儲器1520中的處理器可執(zhí)行指令當(dāng)由設(shè)備1500中的一個(gè)或多個(gè)處理器(例如,處理器1511和1512)執(zhí)行時(shí)可以將設(shè)備1500配置為執(zhí)行多個(gè)功能。特定的此類處理器可執(zhí)行指令組可以構(gòu)成計(jì)算機(jī)程序,也稱作“計(jì)算機(jī)應(yīng)用”或僅簡稱為“應(yīng)用”。具體地,存儲器1520可以(在處理器可讀介質(zhì)中)存儲能夠執(zhí)行根據(jù)本公開的一個(gè)或多個(gè)方法的應(yīng)用1530,在該情況下,設(shè)備1500是編碼器,例如,編碼器100B。備選地,存儲器1520可以存儲能夠執(zhí)行根據(jù)本公開的一個(gè)或多個(gè)解碼方法的解碼應(yīng)用1540,在該情況下,設(shè)備1500是解碼器,例如,解碼器500B。作為另一個(gè)備選方式,存儲器1520可以存儲編碼應(yīng)用1530和解碼應(yīng)用1540,在該情況下,設(shè)備1500既是編碼器,也是解碼器。
[0158]存儲器1520可以是用于使用設(shè)備1500根據(jù)編碼視頻的比特流中的殘余數(shù)據(jù)的編碼塊重構(gòu)殘余數(shù)據(jù)的當(dāng)前塊的裝置,所述當(dāng)前塊被劃分為系數(shù)組,每一個(gè)系數(shù)組包括變換系數(shù)。所述裝置包括:用于進(jìn)行以下操作的裝置:針對當(dāng)前系數(shù)組,所述當(dāng)前系數(shù)組是在所述當(dāng)前塊的所述系數(shù)組的組掃描順序中的所述最后一個(gè)非零系數(shù)組之前的非零系數(shù)組:
(a)對所述當(dāng)前系數(shù)組中表示所述當(dāng)前系數(shù)組中的所述變換系數(shù)的掃描順序中的所述最后一個(gè)非零變換系數(shù)的真實(shí)(X,y)-位置的坐標(biāo)(X,Y)進(jìn)行解碼;以及(b)向所述坐標(biāo)(X,Y)應(yīng)用非恒等修改以計(jì)算所述最后一個(gè)非零變換系數(shù)的所述真實(shí)(X,y)_位置,其中所述修改基于以下至少一項(xiàng):在產(chǎn)生所述編碼塊時(shí)使用的幀內(nèi)預(yù)測模式;以及與所述當(dāng)前系數(shù)組相鄰的至少一個(gè)系數(shù)組。
[0159]備選地,存儲器1520可以是用于使用設(shè)備1500對視頻進(jìn)行編碼的裝置,所述視頻包括劃分為塊的圖片,將針對所述塊的殘余數(shù)據(jù)頻譜變換為變換塊,每一個(gè)變換塊被進(jìn)一步劃分為系數(shù)組。所述裝置包括:用于進(jìn)行以下操作的裝置:針對當(dāng)前系數(shù)組,所述當(dāng)前系數(shù)組是在所述當(dāng)前塊的所述系數(shù)組的組掃描順序中的所述最后一個(gè)非零系數(shù)組之前的非零系數(shù)組:(a)獲得所述當(dāng)前系數(shù)組中所述系數(shù)組中的變換系數(shù)的掃描順序中的最后一個(gè)非零變換系數(shù)的(X,y)-位置(X,Y) ;(b)基于以下至少一項(xiàng)使用非恒等修改將所述(X,y)_位置(X,Y)轉(zhuǎn)換為修改的(x,y)_位置(X’,Y’):在產(chǎn)生所述變換塊時(shí)使用的幀內(nèi)預(yù)測模式;以及(c)與所述當(dāng)前系數(shù)組相鄰的至少一個(gè)系數(shù)組;以及使用上下文模型對所述修改的(x,y)_位置(X’,Y’ )進(jìn)行二進(jìn)制化和熵編碼。
[0160]本領(lǐng)域普通技術(shù)人員認(rèn)識到,可以在保持在本公開的范圍內(nèi)的情況下對上述示例性實(shí)施例進(jìn)行各種常規(guī)調(diào)整和修改。因此,所述實(shí)施例應(yīng)當(dāng)被認(rèn)為是示例性的而非限制性的。
【權(quán)利要求】
1.一種用于使用視頻解碼器根據(jù)編碼視頻的比特流中的殘余數(shù)據(jù)的編碼塊重構(gòu)殘余數(shù)據(jù)的當(dāng)前塊的方法,所述當(dāng)前塊被劃分為系數(shù)組,每一個(gè)系數(shù)組包括變換系數(shù),所述方法包括: 針對當(dāng)前系數(shù)組,所述當(dāng)前系數(shù)組是在所述當(dāng)前塊的所述系數(shù)組的組掃描順序中的所述最后一個(gè)非零系數(shù)組之前的非零系數(shù)組: 對所述當(dāng)前系數(shù)組中表示所述當(dāng)前系數(shù)組中的所述變換系數(shù)的掃描順序中的所述最后一個(gè)非零變換系數(shù)的真實(shí)(X,y)-位置的坐標(biāo)(X,Y)進(jìn)行解碼;以及 向所述坐標(biāo)(X,Y)應(yīng)用非恒等修改以計(jì)算所述最后一個(gè)非零變換系數(shù)的所述真實(shí)(X,y)_位置,其中,所述修改基于以下至少一項(xiàng):在產(chǎn)生所述編碼塊時(shí)使用的幀內(nèi)預(yù)測模式;以及與所述當(dāng)前系數(shù)組相鄰的至少一個(gè)系數(shù)組。
2.根據(jù)權(quán)利要求1所述的方法,其中,所述當(dāng)前系數(shù)組具有大小4x4,并且所述修改包括以下一項(xiàng)或兩項(xiàng):將所述坐標(biāo)X轉(zhuǎn)換為3-X ;以及將所述坐標(biāo)Y轉(zhuǎn)換為3-Y。
3.根據(jù)權(quán)利要求1所述的方法,其中,所述修改基于所述模式的分類。
4.根據(jù)權(quán)利要求3所述的方法,其中,確定所述模式在預(yù)定類中包括: 對指示所述模式的數(shù)據(jù)進(jìn)行解碼;以及 確定所述模式的所述分類。
5.根據(jù)權(quán)利要求3所述的方法,其中,所述當(dāng)前系數(shù)組具有大小4x4,并且所述修改包括: 如果所述模式在對角線類中,則將所述坐標(biāo)(X,Y)轉(zhuǎn)換為(3-Χ,3-Υ); 如果所述模式在垂直類中,則將所述坐標(biāo)(Χ,Υ)轉(zhuǎn)換為(3-Χ,Υ);以及 如果所述模式是垂直類,則將所述坐標(biāo)(Χ,Υ)轉(zhuǎn)換為(Χ,3-Υ)。
6.根據(jù)權(quán)利要求1所述的方法,其中,所述當(dāng)前系數(shù)組右側(cè)的相鄰系數(shù)組和所述當(dāng)前系數(shù)組下方的相鄰系數(shù)組中的至少一個(gè)包括非零系數(shù)組,并且所述修改基于所述相鄰系數(shù)組中的至少一個(gè)。
7.根據(jù)權(quán)利要求6所述的方法,其中,所述當(dāng)前系數(shù)組具有大小4x4,并且所述修改包括: 如果所述當(dāng)前系數(shù)組右側(cè)所述相鄰系數(shù)組是零系數(shù)組并且所述當(dāng)前系數(shù)組下方的所述相鄰系數(shù)組是非零系數(shù)組,則將所述坐標(biāo)(Χ,Υ)轉(zhuǎn)換為(Χ,3-Υ); 如果所述當(dāng)前系數(shù)組右側(cè)的所述相鄰系數(shù)組是非零系數(shù)組并且所述當(dāng)前系數(shù)組下方的所述相鄰系數(shù)組是零系數(shù)組,則將所述坐標(biāo)(Χ,Υ)轉(zhuǎn)換為(3-Χ,Υ);以及 如果所述當(dāng)前系數(shù)組右側(cè)的所述相鄰系數(shù)組和所述當(dāng)前系數(shù)組下方的所述相鄰系數(shù)組均是非零系數(shù)組,則將所述坐標(biāo)(Χ,Υ)轉(zhuǎn)換為(3-Χ,3-Υ)。
8.根據(jù)權(quán)利要求1所述的方法,其中,所述當(dāng)前系數(shù)組具有大小4x4,所述當(dāng)前系數(shù)組右側(cè)的相鄰系數(shù)組和所述當(dāng)前系數(shù)組下方的相鄰系數(shù)組均是零系數(shù)組,所述模式在水平類和垂直類之一中,并且所述修改包括: 如果所述模式在垂直類中,則將所述坐標(biāo)(Χ,Υ)轉(zhuǎn)換為(3-Χ,Υ);以及 如果所述模式在垂直類中,則將所述坐標(biāo)(Χ,Υ)轉(zhuǎn)換為(Χ,3-Υ)。
9.根據(jù)權(quán)利要求1至8中任一項(xiàng)所述的方法,其中,所述組掃描順序包括:所述當(dāng)前塊中的系數(shù)組從左上角系數(shù)組開始的順序,并且所述解碼器以所述組掃描順序的逆掃描順序?qū)λ鰤K的所述系數(shù)組進(jìn)行解碼。
10.根據(jù)權(quán)利要求9所述的方法,其中,所述組掃描順序包括鋸齒順序。
11.根據(jù)權(quán)利要求1至8中任一項(xiàng)所述的方法,其中,所述掃描順序包括每一個(gè)系數(shù)組中的變換系數(shù)從所述組中的左上方變換系數(shù)開始的順序;并且所述解碼器以所述掃描順序的逆掃描順序?qū)︶槍γ恳粋€(gè)系數(shù)組中的變換系數(shù)的平、跑和符號數(shù)據(jù)進(jìn)行解碼。
12.根據(jù)權(quán)利要求11所述的方法,其中,所述掃描順序包括鋸齒順序。
13.根據(jù)權(quán)利要求1至8中任一項(xiàng)所述的方法,其中,對坐標(biāo)似、進(jìn)行解碼基于三個(gè)區(qū)域中所述當(dāng)前系數(shù)組所屬的那個(gè)區(qū)域?qū)С龅?,其中所述?dāng)前塊的所述系數(shù)組已經(jīng)劃分為所述三個(gè)區(qū)域。
14.根據(jù)權(quán)利要求13所述的方法,其中,所述三個(gè)區(qū)域均是與轉(zhuǎn)置無關(guān)的。
15.根據(jù)權(quán)利要求14所述的方法, 其中,所述系數(shù)組被排列在所述當(dāng)前塊中的行和列中, 所述三個(gè)區(qū)域之一由所述頂行和所述左列中的系數(shù)組構(gòu)成; 所述三個(gè)區(qū)域中的另一個(gè)區(qū)域由既不在所述頂行中也不在所述左列中的系數(shù)組構(gòu)成;以及 所述三個(gè)區(qū)域中的剩余一個(gè)區(qū)域由在所述頂行或所述左列中而不是同時(shí)在所述頂行和所述左列中的系數(shù)組構(gòu)成。
16.一種用于根據(jù)編碼視頻的比特流中的殘余數(shù)據(jù)的編碼塊重構(gòu)殘余數(shù)據(jù)的當(dāng)前塊的解碼器,所述解碼器包括: 一個(gè)或多個(gè)處理器; 存儲器;以及 解碼應(yīng)用,所述解碼應(yīng)用存儲在存儲器中并且包含用于將所述一個(gè)或多個(gè)處理器配置為執(zhí)行根據(jù)權(quán)利要求1至8中任一項(xiàng)所述的方法的指令。
17.一種用于使用視頻編碼器對視頻進(jìn)行編碼的方法,所述視頻包括劃分為塊的圖片,將針對所述塊的殘余數(shù)據(jù)頻譜變換為變換塊,每一個(gè)變換塊被進(jìn)一步劃分為系數(shù)組,所述方法包括: 針對當(dāng)前系數(shù)組,所述當(dāng)前系數(shù)組是在所述當(dāng)前塊的所述系數(shù)組的組掃描順序中的所述最后一個(gè)非零系數(shù)組之前的非零系數(shù)組: 獲得所述當(dāng)前系數(shù)組中所述系數(shù)組中的變換系數(shù)的掃描順序中的最后一個(gè)非零變換系數(shù)的(17)-位置(⑶; 基于以下至少一項(xiàng)使用非恒等修改將所述“,7卜位置似、轉(zhuǎn)換為修改的(17)-位置〈X’,V ):在產(chǎn)生所述變換塊時(shí)使用的幀內(nèi)預(yù)測模式;以及與所述當(dāng)前系數(shù)組相鄰的至少一個(gè)系數(shù)組;以及 使用上下文模型對所述修改的“,7卜位置IV )進(jìn)行二進(jìn)制化和熵編碼。
18.一種用于對視頻進(jìn)行編碼的編碼器,所述編碼器包括: 一個(gè)或多個(gè)處理器; 存儲器;以及 編碼應(yīng)用,所述編碼應(yīng)用存儲在存儲器中并且包含用于將所述一個(gè)或多個(gè)處理器配置為執(zhí)行根據(jù)權(quán)利要求17所述的方法的指令。
19.一種非臨時(shí)性處理器可讀介質(zhì),存儲處理器可執(zhí)行指令,當(dāng)執(zhí)行所述處理器可執(zhí)行指令時(shí),所述處理器可執(zhí)行指令將一個(gè)或多個(gè)處理器配置為執(zhí)行根據(jù)權(quán)利要求1至8和17中任一項(xiàng)所述的方法。。
【文檔編號】H04N19/129GK104469378SQ201410482404
【公開日】2015年3月25日 申請日期:2014年9月19日 優(yōu)先權(quán)日:2013年9月19日
【發(fā)明者】王小峰, 王競, 何大可, 計(jì)天穎 申請人:黑莓有限公司