對(duì)視頻數(shù)據(jù)進(jìn)行上下文自適應(yīng)譯碼的制作方法
【專利摘要】在一實(shí)例中,本發(fā)明的方面涉及一種對(duì)數(shù)據(jù)進(jìn)行譯碼的方法,其包含根據(jù)上下文自適應(yīng)熵譯碼過程對(duì)二進(jìn)位序列進(jìn)行譯碼。用于對(duì)所述二進(jìn)位序列的至少一個(gè)二進(jìn)位進(jìn)行譯碼的當(dāng)前譯碼循環(huán)包含:確定所述二進(jìn)位的上下文;基于所述上下文選擇概率模型,其中所述概率模型是基于以所述上下文進(jìn)行譯碼且在所述當(dāng)前譯碼循環(huán)之前至少兩個(gè)譯碼循環(huán)進(jìn)行譯碼的先前二進(jìn)位的值而更新;應(yīng)用所述概率模型對(duì)所述二進(jìn)位進(jìn)行譯碼;以及基于所述二進(jìn)位的值更新所述概率模型。
【專利說明】對(duì)視頻數(shù)據(jù)進(jìn)行上下文自適應(yīng)譯碼
[0001]本申請(qǐng)案主張2011年6月3日申請(qǐng)的第61 / 493,371號(hào)美國(guó)臨時(shí)專利申請(qǐng)案、2011年6月30日申請(qǐng)的第61 / 503,537號(hào)美國(guó)臨時(shí)專利申請(qǐng)案、2011年10月28日申請(qǐng)的第61 / 552,921號(hào)美國(guó)臨時(shí)專利申請(qǐng)案、2011年11月I日申請(qǐng)的第61 / 554,408號(hào)美國(guó)臨時(shí)專利申請(qǐng)案,以及2011年11月20日申請(qǐng)的第61 / 561,921號(hào)美國(guó)臨時(shí)專利申請(qǐng)案的優(yōu)先權(quán),所有臨時(shí)專利申請(qǐng)案的全部?jī)?nèi)容全文以引用的方式并入本文中。
【技術(shù)領(lǐng)域】
[0002]本發(fā)明涉及視頻譯碼,且更特定來說涉及對(duì)視頻譯碼過程產(chǎn)生的殘余變換系數(shù)的塊進(jìn)行譯碼。
【背景技術(shù)】
[0003]數(shù)字視頻能力可并入到廣泛裝置中,包含數(shù)字電視、數(shù)字直播系統(tǒng)、無線廣播系統(tǒng)、個(gè)人數(shù)字助理(PDA)、膝上型或臺(tái)式計(jì)算機(jī)、平板計(jì)算機(jī)、電子書閱讀器、數(shù)碼相機(jī)、數(shù)字記錄裝置、數(shù)字媒體播放器、視頻游戲裝置、視頻游戲控制臺(tái)、蜂窩式或衛(wèi)星無線電電話、所謂的“智能電話”、視頻電信會(huì)議裝置、視頻串流裝置等。數(shù)字視頻裝置實(shí)施視頻壓縮技術(shù),例如 MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264 / MPEG-4 第 10 部分高級(jí)視頻譯碼(AVC)、當(dāng)前開發(fā)中的高效視頻譯碼(HEVC)標(biāo)準(zhǔn)所界定的標(biāo)準(zhǔn)以及此類標(biāo)準(zhǔn)的擴(kuò)展中描述的技術(shù)。視頻裝置可通過實(shí)施此類視頻壓縮技術(shù)更有效地發(fā)射、接收、編碼、解碼和/或存儲(chǔ)數(shù)字視頻息。
[0004]視頻壓縮技術(shù)執(zhí)行空間(圖片內(nèi))預(yù)測(cè)和/或時(shí)間(圖片間)預(yù)測(cè)以減少或移除視頻序列中固有的冗余。對(duì)于基于塊的視頻譯碼,視頻切片(即,視頻幀或視頻幀的一部分)可分割為視頻塊,其也可稱為樹塊、譯碼單元(CU)和/或譯碼節(jié)點(diǎn)。圖片的經(jīng)幀內(nèi)譯碼(I)切片中的視頻塊是使用相對(duì)于同一圖片中的相鄰塊中的參考樣本的空間預(yù)測(cè)來編碼。圖片的經(jīng)幀間譯碼(P或B)切片中的視頻塊可使用相對(duì)于同一圖片中的相鄰塊中的參考樣本的空間預(yù)測(cè),或相對(duì)于其它參考圖片中的參考樣本的時(shí)間預(yù)測(cè)。圖片可稱為幀,且參考圖片可稱為參考中貞。
[0005]空間或時(shí)間預(yù)測(cè)結(jié)果產(chǎn)生待譯碼的塊的預(yù)測(cè)塊。殘余數(shù)據(jù)表示待譯碼的原始?jí)K與預(yù)測(cè)塊之間的像素差。幀間譯碼塊根據(jù)指向形成預(yù)測(cè)塊的參考樣本的塊的運(yùn)動(dòng)向量以及指示經(jīng)譯碼塊與預(yù)測(cè)塊之間的差的殘余數(shù)據(jù)而編碼。幀內(nèi)譯碼塊根據(jù)幀內(nèi)譯碼模式和殘余數(shù)據(jù)而編碼。為了進(jìn)一步壓縮,殘余數(shù)據(jù)可從像素域變換到變換域,從而產(chǎn)生殘余變換系數(shù),殘余變換系數(shù)接著可量化。初始布置在二維陣列中的經(jīng)量化變換系數(shù)可經(jīng)掃描以便產(chǎn)生變換系數(shù)的一維向量,且可應(yīng)用熵譯碼來實(shí)現(xiàn)更多壓縮。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的技術(shù)大體涉及對(duì)視頻數(shù)據(jù)進(jìn)行熵譯碼。舉例來說,在熵譯碼期間,視頻譯碼器可將變換系數(shù)轉(zhuǎn)換為二進(jìn)制形式,借此產(chǎn)生一個(gè)或一個(gè)以上位或“二進(jìn)位(bin) ”。視頻譯碼器可接著使用針對(duì)每一二進(jìn)位的概率估計(jì)值對(duì)視頻數(shù)據(jù)的塊的每一二進(jìn)位進(jìn)行譯碼,所述概率估計(jì)值可指示二進(jìn)位具有給定二進(jìn)制值的可能性。概率估計(jì)值可包含在概率模型(也稱為“上下文模型”)內(nèi)。視頻譯碼器可通過確定二進(jìn)位的上下文而選擇上下文模型。語法元素的二進(jìn)位的上下文可包含先前經(jīng)譯碼語法元素的相關(guān)二進(jìn)位的值。在對(duì)二進(jìn)位譯碼之后,視頻譯碼器可基于二進(jìn)位的值更新上下文模型以反映最當(dāng)前概率估計(jì)值。
[0007]本發(fā)明的某些技術(shù)大體涉及熵譯碼期間的概率更新。即,在一些實(shí)例中,視頻譯碼器可在對(duì)每一二進(jìn)位譯碼之后更新概率模型。在此類實(shí)例中,概率可相對(duì)準(zhǔn)確,然而,可存在與更新過程相關(guān)聯(lián)的等待時(shí)間。在其它實(shí)例中,視頻譯碼器可存儲(chǔ)與二進(jìn)位值相關(guān)聯(lián)的統(tǒng)計(jì),且在對(duì)完整視頻數(shù)據(jù)塊譯碼之后更新概率模型。此類技術(shù)可減少等待時(shí)間,然而,性能也可能歸因于塊的譯碼期間較不準(zhǔn)確的概率而衰減。本發(fā)明的方面涉及增加概率更新過程的粒度使得概率模型可比完整視頻數(shù)據(jù)塊之后更頻繁地更新,但在每一二進(jìn)位之后不更新概率模型。舉例來說,本發(fā)明的方面涉及在對(duì)與視頻數(shù)據(jù)塊相關(guān)聯(lián)的預(yù)定變換系數(shù)子集譯碼之后更新概率。以此方式,本發(fā)明的技術(shù)可在譯碼性能與譯碼速度之間找到平衡,且可允許對(duì)子集的二進(jìn)位的并行處理。
[0008]本發(fā)明的某些方面還涉及用于并行化熵譯碼的其它技術(shù)。舉例來說,本發(fā)明的技術(shù)還包含使用在對(duì)一個(gè)或一個(gè)以上先前二進(jìn)位譯碼之前更新的概率模型對(duì)數(shù)據(jù)的二進(jìn)位譯碼。即,概率模型可在對(duì)當(dāng)前二進(jìn)位譯碼之前的至少兩個(gè)譯碼迭代或循環(huán)中更新。因此,本發(fā)明的技術(shù)可避免當(dāng)使用同一模型對(duì)多個(gè)連續(xù)二進(jìn)位譯碼時(shí)由于在使用模型對(duì)二進(jìn)位譯碼之后更新概率模型引起的延遲。在一些實(shí)例中,此類技術(shù)可應(yīng)用于并行地對(duì)視頻數(shù)據(jù)塊的二進(jìn)位進(jìn)行譯碼。
[0009]在一實(shí)例中,本發(fā)明的方面涉及一種對(duì)數(shù)據(jù)譯碼的方法,其包含根據(jù)上下文自適應(yīng)熵譯碼過程對(duì)二進(jìn)位序列譯碼。用于對(duì)二進(jìn)位序列的至少一個(gè)二進(jìn)位譯碼的當(dāng)前譯碼循環(huán)包含:確定二進(jìn)位的上下文;基于所述上下文選擇概率模型,其中所述概率模型基于以所述上下文譯碼且在所述當(dāng)前譯碼循環(huán)之前至少兩個(gè)譯碼循環(huán)譯碼的先前二進(jìn)位的值而更新;應(yīng)用所述概率模型對(duì)所述二進(jìn)位進(jìn)行譯碼;以及基于所述二進(jìn)位的值更新所述概率模型。
[0010]在另一實(shí)例中,本發(fā)明的方面涉及一種用于對(duì)數(shù)據(jù)譯碼的設(shè)備,其包含經(jīng)配置以根據(jù)上下文自適應(yīng)熵譯碼過程對(duì)二進(jìn)位序列譯碼的一個(gè)或一個(gè)以上處理器。用于對(duì)二進(jìn)位序列的至少一個(gè)二進(jìn)位譯碼的當(dāng)前譯碼循環(huán)包含:確定二進(jìn)位的上下文;基于所述上下文選擇概率模型,其中所述概率模型基于以所述上下文譯碼且在所述當(dāng)前譯碼循環(huán)之前至少兩個(gè)譯碼循環(huán)譯碼的先前二進(jìn)位的值而更新;應(yīng)用所述概率模型對(duì)所述二進(jìn)位進(jìn)行譯碼;以及基于所述二進(jìn)位的值更新所述概率模型。
[0011]在另一實(shí)例中,本發(fā)明的方面涉及一種用于對(duì)數(shù)據(jù)譯碼的設(shè)備,其包含用于根據(jù)上下文自適應(yīng)熵譯碼過程對(duì)二進(jìn)位序列譯碼的裝置。用于對(duì)二進(jìn)位序列的至少一個(gè)二進(jìn)位譯碼的當(dāng)前譯碼循環(huán)包含:確定二進(jìn)位的上下文;基于所述上下文選擇概率模型,其中所述概率模型基于以所述上下文譯碼且在所述當(dāng)前譯碼循環(huán)之前至少兩個(gè)譯碼循環(huán)譯碼的先前二進(jìn)位的值而更新;應(yīng)用所述概率模型對(duì)所述二進(jìn)位進(jìn)行譯碼;以及基于所述二進(jìn)位的值更新所述概率模型。
[0012]在另一實(shí)例中,本發(fā)明的方面涉及一種上面存儲(chǔ)有指令的計(jì)算機(jī)可讀存儲(chǔ)媒體,所述指令當(dāng)執(zhí)行時(shí)致使一個(gè)或一個(gè)以上處理器根據(jù)上下文自適應(yīng)熵譯碼過程對(duì)二進(jìn)位序列譯碼。用于對(duì)二進(jìn)位序列的至少一個(gè)二進(jìn)位譯碼的當(dāng)前譯碼循環(huán)包含:確定二進(jìn)位的上下文;基于所述上下文選擇概率模型,其中所述概率模型基于以所述上下文譯碼且在所述當(dāng)前譯碼循環(huán)之前至少兩個(gè)譯碼循環(huán)譯碼的先前二進(jìn)位的值而更新;應(yīng)用所述概率模型對(duì)所述二進(jìn)位進(jìn)行譯碼;以及基于所述二進(jìn)位的值更新所述概率模型。
[0013]在另一實(shí)例中,本發(fā)明的方面涉及一種在視頻譯碼過程中對(duì)與殘余視頻數(shù)據(jù)相關(guān)聯(lián)的變換系數(shù)譯碼的方法,其包含對(duì)變換系數(shù)的多個(gè)子集的第一子集譯碼,其中對(duì)第一子集譯碼包括:使用一個(gè)或一個(gè)以上概率模型對(duì)第一子集進(jìn)行上下文自適應(yīng)譯碼;在對(duì)變換系數(shù)的第一子集譯碼的同時(shí)存儲(chǔ)與所述一個(gè)或一個(gè)以上概率模型相關(guān)聯(lián)的概率模型統(tǒng)計(jì);在對(duì)第一子集的最終系數(shù)譯碼之后基于所存儲(chǔ)的概率模型統(tǒng)計(jì)更新概率模型;以及使用經(jīng)更新的一個(gè)或一個(gè)以上概率模型對(duì)變換系數(shù)的第二子集譯碼。
[0014]在另一實(shí)例中,本發(fā)明的方面涉及一種用于對(duì)與殘余視頻數(shù)據(jù)相關(guān)聯(lián)的變換系數(shù)譯碼的設(shè)備,其包含經(jīng)配置以對(duì)變換系數(shù)的多個(gè)子集的第一子集譯碼的一個(gè)或一個(gè)以上處理器,其中對(duì)第一子集譯碼包括:使用一個(gè)或一個(gè)以上概率模型對(duì)第一子集進(jìn)行上下文自適應(yīng)譯碼;在對(duì)變換系數(shù)的第一子集譯碼的同時(shí)存儲(chǔ)與所述一個(gè)或一個(gè)以上概率模型相關(guān)聯(lián)的概率模型統(tǒng)計(jì);在對(duì)第一子集的最終系數(shù)譯碼之后基于所存儲(chǔ)的概率模型統(tǒng)計(jì)更新概率模型;以及使用經(jīng)更新的一個(gè)或一個(gè)以上概率模型對(duì)變換系數(shù)的第二子集譯碼。
[0015]本發(fā)明的一個(gè)或一個(gè)以上方面的細(xì)節(jié)在附圖及以下描述中陳述。從描述和圖式并從權(quán)利要求書將明白本發(fā)明中所描述的技術(shù)的其它特征、目的和優(yōu)點(diǎn)。
【專利附圖】
【附圖說明】
[0016]圖1是說明可利用本發(fā)明的技術(shù)的實(shí)例視頻編碼和解碼系統(tǒng)的框圖。
[0017]圖2是說明可實(shí)施本發(fā)明的技術(shù)的任一者或全部的視頻編碼器的實(shí)例的框圖。
[0018]圖3是說明對(duì)經(jīng)編碼視頻序列進(jìn)行解碼的視頻解碼器的實(shí)例的框圖。
[0019]圖4A和4B是說明實(shí)例四叉樹和對(duì)應(yīng)的最大譯碼單元(LCU)的概念圖。
[0020]圖5A是說明用于掃描視頻數(shù)據(jù)塊的變換系數(shù)的實(shí)例前向?qū)菕呙枘J降母拍顖D。
[0021]圖5B是說明用于掃描視頻數(shù)據(jù)塊的變換系數(shù)的實(shí)例逆向?qū)菕呙枘J降母拍顖D。
[0022]圖6A是說明將變換系數(shù)塊劃分為子集的實(shí)例概念圖。
[0023]圖6B是說明將變換系數(shù)塊劃分為子集的另一實(shí)例概念圖。
[0024]圖7A是說明將與視頻數(shù)據(jù)塊相關(guān)聯(lián)的變換系數(shù)塊以子塊的形式劃分為子集的實(shí)例概念圖。
[0025]圖7B是說明將與視頻數(shù)據(jù)塊相關(guān)聯(lián)的變換系數(shù)塊以子塊的形式劃分為子集的另一實(shí)例概念圖。
[0026]圖8是說明使用上下文自適應(yīng)譯碼技術(shù)對(duì)有效性圖譯碼的實(shí)例的流程圖。
[0027]圖9是說明其中可在對(duì)自子集譯碼之后更新上下文的經(jīng)修改上下文自適應(yīng)譯碼過程的實(shí)例的流程圖。
[0028]圖10是說明對(duì)視頻數(shù)據(jù)塊進(jìn)行熵譯碼的實(shí)例技術(shù)的流程圖。[0029]圖11是說明使用延遲狀態(tài)更新上下文自適應(yīng)熵譯碼對(duì)二進(jìn)位序列譯碼的實(shí)例的概念圖。
[0030]圖12說明使用延遲狀態(tài)更新上下文自適應(yīng)熵譯碼對(duì)二進(jìn)位序列譯碼的實(shí)例技術(shù)。
【具體實(shí)施方式】
[0031]視頻譯碼裝置可試圖通過利用空間和時(shí)間冗余壓縮視頻數(shù)據(jù)。舉例來說,視頻編碼器可通過相對(duì)于相鄰的先前經(jīng)譯碼塊對(duì)塊譯碼而利用空間冗余。同樣,視頻編碼器可通過相對(duì)于先前經(jīng)譯碼幀的數(shù)據(jù)對(duì)塊譯碼而利用時(shí)間冗余。特定來說,視頻編碼器可從空間相鄰者的數(shù)據(jù)或從先前經(jīng)譯碼幀的數(shù)據(jù)預(yù)測(cè)當(dāng)前塊。視頻編碼器可接著將塊的殘余計(jì)算為塊的實(shí)際像素值與塊的所預(yù)測(cè)像素值之間的差。因此,塊的殘余可包含像素(或空間)域中的逐像素差值。
[0032]視頻編碼器可接著向殘余的值應(yīng)用變換以將像素值的能量壓縮為頻域中相對(duì)小數(shù)目的變換系數(shù)。視頻編碼器可接著量化所述變換系數(shù)。視頻編碼器可掃描經(jīng)量化的變換系數(shù)以將經(jīng)量化變換系數(shù)的二維矩陣轉(zhuǎn)換為包含經(jīng)量化變換系數(shù)的一維向量。掃描系數(shù)的過程有時(shí)稱為使系數(shù)串行化。
[0033]視頻編碼器可接著應(yīng)用熵譯碼過程對(duì)經(jīng)掃描系數(shù)進(jìn)行熵編碼。實(shí)例熵譯碼過程可包含例如上下文自適應(yīng)可變長(zhǎng)度譯碼(CAVLC)、上下文自適應(yīng)二進(jìn)制算術(shù)譯碼(CABAC)、基于語法的上下文自適應(yīng)二進(jìn)制算術(shù)譯碼(SBAC)、概率間隔分割熵(PIPE)譯碼,或其它熵編碼方法。視頻編碼器還可對(duì)與經(jīng)編碼視頻數(shù)據(jù)相關(guān)聯(lián)的語法元素進(jìn)行熵編碼以供由視頻解碼器用來解碼視頻數(shù)據(jù)。
[0034]視頻解碼器可執(zhí)行與視頻編碼器執(zhí)行的編碼技術(shù)大體互逆的技術(shù)。盡管大體互逆,但視頻解碼器可在一些例子中執(zhí)行與視頻編碼器執(zhí)行的技術(shù)類似的技術(shù)。視頻解碼器還可依賴于包含相對(duì)于視頻編碼器描述的數(shù)據(jù)的所接收位流中含有的語法元素或其它數(shù)據(jù)。
[0035]相對(duì)于(CABAC)作為一實(shí)例,視頻譯碼器(視頻編碼器和/或視頻解碼器)可選擇概率模型或“上下文模型”,其對(duì)上下文操作以對(duì)與視頻數(shù)據(jù)塊相關(guān)聯(lián)的符號(hào)譯碼。舉例來說,在編碼器處,可通過使用概率模型對(duì)目標(biāo)符號(hào)譯碼。在解碼器處,可通過使用概率模型剖析目標(biāo)符號(hào)。上下文可關(guān)于例如對(duì)于與當(dāng)前正譯碼符號(hào)相鄰的符號(hào),值為零還是非零。
[0036]根據(jù)一些實(shí)例,視頻塊中有效系數(shù)(即,非零變換系數(shù))的位置可在變換系數(shù)的值之前編碼,所述變換系數(shù)的值可稱為變換系數(shù)的“層級(jí)”。對(duì)有效系數(shù)的位置譯碼的過程可稱為有效性圖譯碼。有效性圖(SM)包含指示有效系數(shù)的位置的二進(jìn)制值的二維陣列。
[0037]舉例來說,視頻數(shù)據(jù)塊的SM可包含I和O的二維陣列,其中I指示塊內(nèi)有效變換系數(shù)的位置,且O指示塊內(nèi)非有效(零值)變換系數(shù)的位置。I和O稱為“有效系數(shù)旗標(biāo)”。另外,在一些實(shí)例中,SM可包含I和O的另一 2-D陣列,其中I指示根據(jù)與塊相關(guān)聯(lián)的掃描次序塊內(nèi)的最后有效系數(shù)的位置,且O指示塊內(nèi)所有其它系數(shù)的位置。在此情況下,I和O稱為“最后有效系數(shù)旗標(biāo)”。在其它實(shí)例中,不使用此類最后有效系數(shù)旗標(biāo)。事實(shí)上,塊中的最后有效系數(shù)可首先譯碼,隨后發(fā)送SM的剩余部分。在任一情況下,視頻數(shù)據(jù)塊的SM譯碼可消耗用于對(duì)塊譯碼的視頻位速率的顯著百分比。[0038]在對(duì)SM譯碼之后,視頻譯碼器可對(duì)每一變換系數(shù)的層級(jí)進(jìn)行熵譯碼。舉例來說,視頻譯碼器可將每一非零變換系數(shù)的絕對(duì)值轉(zhuǎn)換為二進(jìn)制形式。以此方式,每一非零變換系數(shù)可例如使用包括一個(gè)或一個(gè)以上位或“二進(jìn)位”的一元代碼來“二進(jìn)制化”。另外,可包含若干其它二進(jìn)制化語法元素以允許視頻解碼器解碼視頻數(shù)據(jù)。
[0039]視頻譯碼器可使用針對(duì)每一二進(jìn)位的概率估計(jì)值對(duì)視頻數(shù)據(jù)塊的每一二進(jìn)位(不論對(duì)應(yīng)于塊的變換系數(shù)還是語法信息)譯碼。概率估計(jì)值可指示二進(jìn)位具有給定二進(jìn)制值(例如,“O”或“I”)的可能性。概率估計(jì)值可包含在概率模型(也稱為“上下文模型”)內(nèi)。視頻譯碼器可通過確定二進(jìn)位的上下文而選擇概率模型。語法元素的二進(jìn)位的上下文可包含先前經(jīng)譯碼相鄰語法元素的相關(guān)二進(jìn)位的值。
[0040]作為一個(gè)實(shí)例,塊的每一有效系數(shù)旗標(biāo)的上下文包含塊的類型(例如,塊大小),以及根據(jù)與塊相關(guān)聯(lián)的掃描次序?qū)?yīng)于塊內(nèi)的相應(yīng)旗標(biāo)的系數(shù)的位置。作為另一實(shí)例,塊的二進(jìn)制化殘余變換系數(shù)絕對(duì)值的每一二進(jìn)位的上下文包含表示絕對(duì)值的一元碼字內(nèi)的二進(jìn)位的位置,以及塊的先前經(jīng)譯碼系數(shù)的值。在其它實(shí)例中,語法元素的二進(jìn)位的上下文(例如,經(jīng)譯碼塊樣式,或“CBP”)包含先前經(jīng)譯碼相鄰語法元素的相關(guān)二進(jìn)位的值,例如在當(dāng)前語法元素的頂部上和左側(cè)。在任一情況下,針對(duì)每一上下文界定不同概率模型。在對(duì)二進(jìn)位譯碼之后,基于二進(jìn)位的值進(jìn)一步更新概率模型以反映最當(dāng)前概率估計(jì)值。
[0041]與視頻數(shù)據(jù)塊相關(guān)聯(lián)的二進(jìn)位可在一個(gè)或一個(gè)以上譯碼“遍次”中譯碼。舉例來說,在第一遍次期間,視頻譯碼器可對(duì)SM進(jìn)行熵譯碼。在第二遍次期間,視頻譯碼器可對(duì)變換系數(shù)層級(jí)的第一二進(jìn)位進(jìn)行熵譯碼。視頻譯碼器可繼續(xù)執(zhí)行譯碼遍次直到與塊的變換系數(shù)相關(guān)聯(lián)的所有信息經(jīng)譯碼為止。在一些實(shí)例中,視頻譯碼器可使用上下文自適應(yīng)和非上下文自適應(yīng)譯碼的組合對(duì)視頻數(shù)據(jù)塊的二進(jìn)位譯碼。舉例來說,對(duì)于一個(gè)或一個(gè)以上遍次,視頻譯碼器可使用繞過模式以繞過或省略常規(guī)算術(shù)譯碼過程。在此類例子中,固定相等概率模型可用于對(duì)經(jīng)繞過譯碼二進(jìn)位譯碼。經(jīng)繞過譯碼二進(jìn)位不包含上下文或概率更新。
[0042]當(dāng)執(zhí)行上下文自適應(yīng)譯碼時(shí),在一些例子中,可存在歸因于多個(gè)反饋回路的相對(duì)高的串行相依性。舉例來說,指`示用于對(duì)二進(jìn)位譯碼的特定概率模型的上下文可受先前經(jīng)譯碼二進(jìn)位(例如,先前經(jīng)譯碼語法元素的相關(guān)二進(jìn)位)的值影響。另外,用于對(duì)二進(jìn)位譯碼的概率模型還可受先前經(jīng)譯碼二進(jìn)位的值影響。即,概率模型可維持為有限狀態(tài)機(jī)中的狀態(tài)。每一特定狀態(tài)可對(duì)應(yīng)于特定概率值。對(duì)應(yīng)于概率模型的更新的下一狀態(tài)可取決于當(dāng)前二進(jìn)位(例如,當(dāng)前正譯碼的二進(jìn)位)的值。
[0043]因此,概率模型內(nèi)的概率估計(jì)值可受先前經(jīng)譯碼二進(jìn)位的值影響,因?yàn)樗鲋抵辽俨糠种甘径M(jìn)位具有給定值的概率。因此,以串行方式,例如以逐二進(jìn)位為基礎(chǔ)執(zhí)行上下文自適應(yīng)譯碼(例如,CABAC)。舉例來說,在對(duì)確定特定上下文所針對(duì)的當(dāng)前二進(jìn)位譯碼之后,對(duì)應(yīng)于所述上下文的概率模型必須在對(duì)確定同一上下文所針對(duì)的且因此對(duì)應(yīng)于同一概率模型的下一二進(jìn)位譯碼之前更新。
[0044]作為一個(gè)實(shí)例,可使用同一概率模型(例如,概率模型A)連續(xù)對(duì)視頻數(shù)據(jù)塊的二進(jìn)位序列H^^n,bin(0)、bin(l)、...bin(n))譯碼。換句話說,針對(duì)二進(jìn)位導(dǎo)出的(例如,使用上下文索引ctx(0)、ctx(l)、...ctx(n)指示的)上下文可各自對(duì)應(yīng)于用于對(duì)相應(yīng)二進(jìn)位譯碼的同一概率模型。在此實(shí)例中,在對(duì)二進(jìn)位的給定一者譯碼之后,必須基于二進(jìn)位的值更新概率模型,隨后可使用所述概率模型對(duì)任何后續(xù)二進(jìn)位譯碼。更新概率模型允許所述模型反映使用具有給定值的模型譯碼的二進(jìn)位的最當(dāng)前概率。如此,使用在完成如上所述的塊的先前譯碼循環(huán)(即,先前二進(jìn)位的譯碼)之后更新的概率模型對(duì)視頻數(shù)據(jù)塊的特定二進(jìn)位譯碼可產(chǎn)生連續(xù)譯碼循環(huán)之間的延遲。特定來說,所述概率模型可能不能容易地用于在對(duì)先前二進(jìn)位譯碼之后立即對(duì)特定二進(jìn)位譯碼。因此,二進(jìn)位序列的譯碼可不如使用其它方法對(duì)序列譯碼那樣成流線型。在這些情況下,譯碼效率可受到損害。
[0045]另外,如上所述,特定概率模型可維持為有限狀態(tài)機(jī)中的狀態(tài),其中每一特定狀態(tài)對(duì)應(yīng)于特定概率值。對(duì)應(yīng)于概率模型的更新的下一狀態(tài)可取決于當(dāng)前二進(jìn)位的值。此類反饋回路(其可稱為狀態(tài)更新)可引起計(jì)算瓶頸。舉例來說,歸因于反饋回路中的相依性,可能難以增加處理量。即,可直到來自先前二進(jìn)位的概率模型已更新后才處理一個(gè)二進(jìn)位。在一些實(shí)例中,可以高頻率連續(xù)(逐二進(jìn)位)調(diào)用同一上下文索引。在一實(shí)例中,可表示譯碼器編碼的總二進(jìn)位的25%到35%的有效性旗標(biāo)譯碼的上下文可被連續(xù)調(diào)用。重復(fù)調(diào)用同一上下文且等待更新每一二進(jìn)位之后的模型可引起整個(gè)譯碼器的處理量的瓶頸。
[0046]為避免上文描述的上下文更新瓶頸,在一些實(shí)例中,視頻譯碼器可存儲(chǔ)某些統(tǒng)計(jì)且在對(duì)整個(gè)視頻數(shù)據(jù)塊譯碼之后更新一個(gè)或一個(gè)以上上下文。舉例來說,代替于更新用于對(duì)每一二進(jìn)位譯碼的上下文,視頻譯碼器可將與每一上下文相關(guān)聯(lián)的概率的概率統(tǒng)計(jì)存儲(chǔ)到視頻數(shù)據(jù)塊的存儲(chǔ)器。因此,用于對(duì)塊的每一二進(jìn)位譯碼的概率不變,且不存在對(duì)塊回路內(nèi)的經(jīng)更新概率的相依性。在塊的譯碼之后,在塊譯碼期間曾更新的所存儲(chǔ)概率(例如,上下文的狀態(tài))經(jīng)設(shè)定為下一塊的當(dāng)前概率。以此方式,代替于在每一二進(jìn)制之后更新上下文概率,在當(dāng)前塊的結(jié)尾處將當(dāng)前塊的二進(jìn)位的譯碼中曾使用的上下文的概率模型更新一次。然而,總體譯碼性能可衰減,因?yàn)楦怕什皇侵鸲M(jìn)位更新且因此可能不太準(zhǔn)確。
[0047]本發(fā)明的方面涉及增加概率更新過程的粒度使得概率模型可比完整視頻數(shù)據(jù)塊之后更頻繁地更新,但不更新每一二進(jìn)位之后的概率模型。舉例來說,本發(fā)明的方面涉及在對(duì)與視頻數(shù)據(jù)塊相關(guān)聯(lián)的變換系數(shù)的預(yù)定子集譯碼之后更新概率。以此方式,本發(fā)明的技術(shù)可在譯碼性能與譯碼速度之間找到平衡,且可允許對(duì)子集的二進(jìn)位的并行處理。
[0048]在一實(shí)例中,視頻譯碼器可將與視頻數(shù)據(jù)塊相關(guān)聯(lián)的變換系數(shù)劃分為多個(gè)子集。在確定子集之后,視頻譯碼器可執(zhí)行每一子集的上下文自適應(yīng)譯碼(例如,比如CABAC、PIPE,或另一譯碼方法)。即,舉例來說,視頻譯碼器可執(zhí)行用于對(duì)第一子集的變換系數(shù)的有效性圖、系數(shù)層級(jí)和系數(shù)正負(fù)號(hào)進(jìn)行譯碼的譯碼遍次。視頻譯碼器可接著移動(dòng)到下一子集且重復(fù)譯碼過程。視頻譯碼器可繼續(xù)對(duì)塊的每一子集譯碼直到整個(gè)塊已譯碼為止。
[0049]根據(jù)本發(fā)明的方面,更新與上下文相關(guān)聯(lián)的概率可與每一子集的譯碼聯(lián)系。舉例來說,視頻譯碼器可收集并存儲(chǔ)與在對(duì)變換系數(shù)的子集譯碼的同時(shí)應(yīng)用的概率模型相關(guān)聯(lián)的統(tǒng)計(jì)。在對(duì)子集譯碼之后,視頻譯碼器可使用所存儲(chǔ)的概率統(tǒng)計(jì)更新在子集的譯碼期間使用的每一上下文的概率模型。視頻譯碼器可使用經(jīng)更新的概率來對(duì)變換系數(shù)的下一子集譯碼。以此方式,視頻譯碼器可在不在子集的譯碼期間更新概率的情況下對(duì)每一子集的變換系數(shù)譯碼。
[0050]視頻譯碼器可以多種方式確定子集。在一個(gè)實(shí)例中,子集可包含呈掃描次序(例如,視頻數(shù)據(jù)塊的變換系數(shù)串行化的次序)的預(yù)定數(shù)目的二進(jìn)位。在出于說明的目的的實(shí)例中,對(duì)于變換系數(shù)的8x8塊(例如,總共64個(gè)系數(shù)),第一子集可包含呈掃描次序的第一16個(gè)系數(shù),第二子集可包含呈掃描次序的第二 16個(gè)系數(shù),第三子集可包含呈掃描次序的第三16個(gè)系數(shù),且第四子集可包含呈掃描次序的塊的最終16個(gè)系數(shù)。視頻譯碼器可以此方式確定子集而不管掃描方向/次序如何(例如,水平、垂直、對(duì)角、鋸齒狀、自適應(yīng)等)。在此實(shí)例中,根據(jù)本發(fā)明的方面,視頻譯碼器可在以掃描次序?qū)γ恳蛔蛹乃卸M(jìn)位譯碼之后更新概率。
[0051]在另一實(shí)例中,視頻譯碼器可通過將變換系數(shù)塊劃分為多個(gè)子塊而確定子集。在出于說明的目的的實(shí)例中,視頻譯碼器可將變換系數(shù)的8x8塊(例如,總共64個(gè)系數(shù))劃分為四個(gè)4x4子塊。視頻譯碼器可使用特定掃描次序(例如,水平、垂直、對(duì)角、鋸齒狀、自適應(yīng)等)掃描子塊的每一者。掃描次序可針對(duì)子塊的每一者相同或不同。在此實(shí)例中,視頻譯碼器可在對(duì)每一子塊的所有二進(jìn)位譯碼之后更新概率。
[0052]代替于等待更新概率直到特定子集的所有二進(jìn)位已經(jīng)譯碼為止,根據(jù)本發(fā)明的方面,在另一實(shí)例中,視頻譯碼器可在每一子集的每一譯碼遍次之后更新概率。在此實(shí)例中,視頻譯碼器可使子集內(nèi)的一個(gè)遍次的概率模型的更新過程與所述子集的其它遍次并行化。舉例來說,視頻譯碼器可更新變換系數(shù)的子集的有效性信息的二進(jìn)位的概率,同時(shí)在子集的另一譯碼遍次期間對(duì)系數(shù)層級(jí)的二進(jìn)位I進(jìn)行譯碼。在此實(shí)例中,一個(gè)遍次的上下文不能用于對(duì)子集內(nèi)的其它遍次譯碼。
[0053]在其它實(shí)例中,視頻譯碼器可在對(duì)子集的預(yù)定數(shù)目的二進(jìn)位進(jìn)行譯碼之后更新概率。舉例來說,視頻譯碼器可在對(duì)變換系數(shù)層級(jí)進(jìn)行譯碼之前對(duì)有效性圖進(jìn)行譯碼。在此實(shí)例中,視頻譯碼器可對(duì)有效性圖進(jìn)行譯碼且在對(duì)有效性圖進(jìn)行譯碼之后更新概率。視頻譯碼器可接著對(duì)與變換系數(shù)相關(guān)聯(lián)的剩余信息(例如,正負(fù)號(hào)、層級(jí)等)進(jìn)行譯碼。在其中視頻譯碼器對(duì)last_x和last_y語法元素兩者進(jìn)行譯碼的實(shí)例中,視頻譯碼器可在對(duì)最后有效系數(shù)的last_x和last_y兩者進(jìn)行譯碼之后更新概率,或視頻編碼器可在對(duì)last_x和last_y的每一者進(jìn)行譯碼之后更新概率。
[0054]可應(yīng)用本發(fā)明的技術(shù)來增加并行(例如,相對(duì)于在每個(gè)二進(jìn)位之后更新上下文)處理二進(jìn)位同時(shí)還維持譯碼性能(例如,相對(duì)于僅在每個(gè)完整變換系數(shù)塊之后更新上下文)的能力。舉例來說,本發(fā)明的技術(shù)可增強(qiáng)譯碼并行化,因?yàn)榭刹⑿械貙?duì)子集的一個(gè)以上二進(jìn)位進(jìn)行譯碼。本發(fā)明的技術(shù)還可促進(jìn)譯碼效率,因?yàn)槊恳蛔蛹蟾碌母怕蕦?duì)于對(duì)塊的某些變換系數(shù)進(jìn)行譯碼可比塊的結(jié)尾處更新的概率更準(zhǔn)確。
[0055]本發(fā)明的某些方面還涉及用于并行化熵譯碼的技術(shù)。舉例來說,本發(fā)明的技術(shù)包含使用在對(duì)先前二進(jìn)位進(jìn)行譯碼之前更新的概率模型對(duì)數(shù)據(jù)的二進(jìn)位進(jìn)行譯碼。即,可在對(duì)當(dāng)前二進(jìn)位進(jìn)行譯碼之前至少兩個(gè)譯碼迭代或循環(huán)更新概率模型。因此,本發(fā)明的技術(shù)可避免當(dāng)使用同一模型對(duì)多個(gè)連續(xù)二進(jìn)位進(jìn)行譯碼時(shí)由于在使用所述模型對(duì)二進(jìn)位進(jìn)行譯碼之后更新概率模型而引起的延遲。在一些實(shí)例中,可應(yīng)用此類技術(shù)并行地對(duì)視頻數(shù)據(jù)塊的二進(jìn)位進(jìn)行譯碼。舉例來說,本發(fā)明的技術(shù)可避免與例如在對(duì)完整變換系數(shù)塊進(jìn)行譯碼之后較不頻繁地更新概率模型相關(guān)聯(lián)的性能降級(jí),同時(shí)仍維持概率更新以實(shí)現(xiàn)相對(duì)準(zhǔn)確的概率。
[0056]在出于說明的目的的實(shí)例中,假定通過執(zhí)行上下文自適應(yīng)熵譯碼過程(例如,CABAC過程)連續(xù)地對(duì)視頻數(shù)據(jù)塊的二進(jìn)位序列(例如,bin(0)、bin(l)、...、bin(n_l)和bin(n))進(jìn)行譯碼。在此實(shí)例中,對(duì)應(yīng)于針對(duì)二進(jìn)位的任一者確定的上下文的概率模型包含在上下文緩沖器或“ctxBuffer”中。假設(shè)對(duì)應(yīng)于針對(duì)bin (n)確定的上下文的概率模型包含在ctxBuffer(n)中。概率模型可由初始狀態(tài)界定,且如先前描述,可受先前經(jīng)譯碼二進(jìn)位(即,bin (O)、bin (I)、? ? ?、bin (n_l))影響。
[0057]根據(jù)本發(fā)明的方面,視頻譯碼器可使用包含在CtxBuffeHn-K)中的概率模型對(duì)bin(n)進(jìn)行譯碼。索引“K”可等于任何正的非零整數(shù)值。舉例來說,對(duì)于“K”值“1”,上下文緩沖器ctxBuffer (n-1)包含在當(dāng)前譯碼循環(huán)之前兩個(gè)譯碼循環(huán)更新的概率模型。特定來說,包含在ctxBuffer (n-1)中的概率模型是在對(duì)bin (n_2)進(jìn)行譯碼之后更新的包含在ctxBuffer(n-2)中的概率模型。以此方式更新概率模型可稱為延遲狀態(tài)更新,因?yàn)樵诟怕矢轮g引入延遲的一個(gè)或一個(gè)以上循環(huán)。
[0058]在如上所述的實(shí)例中,雖然包含在ctxBuffer (n-1)中的概率模型由于更新的緣故不可容易地用于對(duì)bin (n-1)進(jìn)行譯碼,但所述模型可用于晚一個(gè)譯碼循環(huán)對(duì)bin (n)進(jìn)行譯碼(例如,在bin(n)經(jīng)譯碼時(shí)已完成更新)。如此,譯碼器不必要等到基于在先前譯碼循環(huán)期間譯碼的bin (n-1)進(jìn)一步更新包含在ctxBuffer (n_l)中的概率模型才對(duì)bin(n)進(jìn)行譯碼。因此,本發(fā)明的方面可避免與概率更新相關(guān)聯(lián)的延遲且可允許并行地對(duì)一個(gè)以上二進(jìn)位進(jìn)行譯碼。
[0059]在一些實(shí)例中,初始概率模型用以對(duì)序列的第一和第二二進(jìn)位進(jìn)行譯碼。舉例來說,可使用CtxBuffer(O)對(duì)給定序列的bin (0)和bin (I)兩者進(jìn)行譯碼。可以此方式對(duì)Bin(O)進(jìn)行譯碼,因?yàn)椴淮嬖谙惹案碌母怕誓P???梢源朔绞綄?duì)Bin(I)進(jìn)行譯碼以避免上文描述的概率更新延遲,這可由于基于bin (0)的值更新包含在ctxBuffer (0)中的概率模型而引起。
[0060]另外,在其中使用上下文分割的實(shí)例中,可針對(duì)每一上下文分區(qū)應(yīng)用本發(fā)明的技術(shù)。舉例來說,在語法分割中,二進(jìn)位是基于語法元素分組且放置在不同分區(qū)中,所述不同分區(qū)接著經(jīng)并行處理(例如,如V.Sze和A.P.Chandrakasan的“使用語法元素分割的高處理量 CAB AC 算法(A high throughput CAB AC algorithm u sing s yntax elementpartitioning) ”中描述,IE`EE國(guó)際圖像處理會(huì)議,第773-776頁,2009)。在此情況下,將延遲狀態(tài)更新的概念應(yīng)用于每一分區(qū)。舉例來說,如果一個(gè)分區(qū)含有用于殘余變換系數(shù)譯碼的所有上下文且另一分區(qū)含有剩余上下文,那么在此實(shí)例中經(jīng)延遲上下文更新可單獨(dú)應(yīng)用于每一分區(qū)。
[0061]本發(fā)明的關(guān)于延遲狀態(tài)更新(如上所述)的方面可應(yīng)用于一種或一種以上類型的二進(jìn)位。舉例來說,延遲狀態(tài)更新技術(shù)可僅針對(duì)用于對(duì)變換系數(shù)層級(jí)進(jìn)行譯碼的上下文應(yīng)用。在另一實(shí)例中,延遲狀態(tài)更新技術(shù)可僅用于有效性圖譯碼。
[0062]因此,本發(fā)明的技術(shù)可避免當(dāng)使用概率模型對(duì)多個(gè)連續(xù)二進(jìn)位進(jìn)行譯碼時(shí)由于在使用所述模型對(duì)二進(jìn)位進(jìn)行譯碼之后更新所述模型而引起的延遲。另外,本發(fā)明的技術(shù)可避免與例如在對(duì)變換系數(shù)的完整塊進(jìn)行譯碼之后較不頻繁地更新概率模型相關(guān)聯(lián)的性能降級(jí)。在一些實(shí)例中,本發(fā)明中描述的技術(shù)可獨(dú)立使用或可以任何組合一起使用。
[0063]雖然上文相對(duì)于二進(jìn)制視頻譯碼描述,但應(yīng)理解,延遲狀態(tài)更新技術(shù)可通常應(yīng)用于其它數(shù)據(jù)的其它算術(shù)譯碼。
[0064]舉例來說,在其中兩個(gè)以上符號(hào)包含在概率模型中的例子中,執(zhí)行簡(jiǎn)單狀態(tài)更新可能不可行。因此,代替于執(zhí)行延遲狀態(tài)更新,本發(fā)明的方面包含執(zhí)行延遲概率更新。
[0065]作為一實(shí)例,出于說明的目的,假定正在編碼或解碼符號(hào)序列(例如,symbol (0)、symbol (I)、...、symbol (n)等)。所述符號(hào)可由視頻數(shù)據(jù)、音頻數(shù)據(jù)或任何其它數(shù)據(jù)產(chǎn)生。此外,假定每一符號(hào)可采取A、B、C和D表示的四個(gè)值。另外,假定不同上下文模型可與每一符號(hào)相關(guān)聯(lián),但出于說明的目的,所有符號(hào)使用同一上下文。另外,假定針對(duì)每一上下文維持單獨(dú)概率模型(例如,針對(duì)A、B、C和D的概率)。通常,在對(duì)symbol (0)進(jìn)行譯碼之后,context (0)的概率模型將經(jīng)更新以考慮到符號(hào)symbol (0)的實(shí)際值。然而,根據(jù)本發(fā)明的方面,可延遲概率模型更新過程,直到正對(duì)一個(gè)或一個(gè)以上未來符號(hào)進(jìn)行譯碼為止。舉例來說,對(duì)于延遲1,經(jīng)更新模型(例如,對(duì)符號(hào)symbol (0)進(jìn)行譯碼之后)可用于對(duì)symbol (2)進(jìn)行譯碼。
[0066]因此,雖然可相對(duì)于二進(jìn)制譯碼(且更特定來說,視頻數(shù)據(jù)的CABAC譯碼)描述某些實(shí)例,但本發(fā)明的技術(shù)更通常適用于算術(shù)譯碼。即,上文描述的延遲狀態(tài)和/或概率更新技術(shù)可通常應(yīng)用于m元算術(shù)譯碼方案,其可或可不為上下文自適應(yīng)的。
[0067]圖1是可經(jīng)配置以利用本發(fā)明中描述的用于上下文自適應(yīng)譯碼的技術(shù)的實(shí)例視頻編碼和解碼系統(tǒng)10的框圖。如圖1的實(shí)例中所示,系統(tǒng)10包含源裝置12,其產(chǎn)生經(jīng)編碼視頻以供目的地裝置14解碼。源裝置12可經(jīng)由通信信道16將經(jīng)編碼視頻發(fā)射到目的地裝置14,或可將經(jīng)編碼視頻存儲(chǔ)在存儲(chǔ)媒體34或文件服務(wù)器36上,使得經(jīng)編碼視頻可視需要由目的地裝置14存取。源裝置12和目的地裝置14可包括廣泛種類的裝置的任一者,包含臺(tái)式計(jì)算機(jī)、筆記本(即,膝上型)計(jì)算機(jī)、平板計(jì)算機(jī)、機(jī)頂盒、電話手持機(jī)(例如,所謂的智能電話)、電視機(jī)、相機(jī)、顯示裝置、數(shù)字媒體播放器、視頻游戲控制臺(tái)等。
[0068]在許多情況下,此類裝置可經(jīng)裝備用于無線通信。因此,通信信道16可包括無線信道、有線信道,或適于經(jīng)編碼視頻數(shù)據(jù)的發(fā)射的無線與有線信道的組合。舉例來說,通信信道16可包括任何無線或有線通信媒體,例如射頻(RF)頻譜或一個(gè)或一個(gè)以上物理傳輸線路,或無線與有線媒體的任何組合。通信信道16可形成例如局域網(wǎng)、廣域網(wǎng)或例如因特網(wǎng)的全球網(wǎng)絡(luò)的基于包的網(wǎng)絡(luò)的部分。通信信道16 —股表示用于將視頻數(shù)據(jù)從源裝置12發(fā)射到目的地裝置14的任何合適的通信媒體或不同通信媒體的集合,包含有線或無線媒體的任何合適組合。通信信道16可包含可用于促進(jìn)從源裝置12到目的裝置14的通信的路由器、交換器、基站或任何其它設(shè)備。
[0069]本發(fā)明中描述的技術(shù)可應(yīng)用于視頻譯碼,支持多種多媒體應(yīng)用的任一者,例如空中電視廣播、電纜電視發(fā)射、衛(wèi)星電視發(fā)射、串流視頻發(fā)射(例如,經(jīng)由因特網(wǎng))、用于存儲(chǔ)在數(shù)據(jù)存儲(chǔ)媒體上的數(shù)字視頻的編碼、存儲(chǔ)在數(shù)據(jù)存儲(chǔ)媒體上的數(shù)字視頻的解碼,或其它應(yīng)用。在一些實(shí)例中,系統(tǒng)10可經(jīng)配置以支持單向或雙向視頻發(fā)射以支持例如視頻串流、視頻重放、視頻廣播和/或視頻電話等應(yīng)用。
[0070]如圖1的實(shí)例中進(jìn)一步展示,源裝置12包含視頻源18、視頻編碼器20、調(diào)制器/解調(diào)器(調(diào)制解調(diào)器)22和發(fā)射器24。在源裝置12中,視頻源18可包含例如視頻俘獲裝置等源。借助實(shí)例,視頻俘獲裝置可包含攝像機(jī)、含有先前俘獲的視頻的視頻檔案、用以接收來自視頻內(nèi)容提供者的視頻的視頻饋送接口,和/或用于產(chǎn)生計(jì)算機(jī)圖形數(shù)據(jù)作為源視頻的計(jì)算機(jī)圖形系統(tǒng)中的一者或一者以上。作為一個(gè)實(shí)例,如果視頻源18是攝像機(jī),那么源裝置12和目的地裝置14可形成所謂的相機(jī)電話或視頻電話。然而,本發(fā)明的技術(shù)不一定限于無線應(yīng)用或設(shè)定,且可應(yīng)用于包含視頻編碼和/或解碼能力的非無線裝置。源裝置12和目的地裝置16僅為可支持本文描述的技術(shù)的譯碼裝置的實(shí)例。[0071]所俘獲、預(yù)先俘獲或計(jì)算機(jī)產(chǎn)生的視頻可由視頻編碼器20編碼。經(jīng)編碼視頻信息可由調(diào)制解調(diào)器22根據(jù)通信標(biāo)準(zhǔn)(例如,無線通信協(xié)議)調(diào)制且經(jīng)由發(fā)射器24發(fā)射到目的地裝置14。調(diào)制解調(diào)器22可包含各種混頻器、濾波器、放大器或經(jīng)設(shè)計(jì)以用于信號(hào)調(diào)制的其它組件。發(fā)射器24可包含經(jīng)設(shè)計(jì)以用于發(fā)射數(shù)據(jù)的電路,包括放大器、濾波器及一個(gè)或一個(gè)以上天線。
[0072]由視頻編碼器20編碼的所俘獲、預(yù)先俘獲或計(jì)算機(jī)產(chǎn)生的視頻還可存儲(chǔ)到存儲(chǔ)媒體34或文件服務(wù)器36上以供稍后消耗。存儲(chǔ)媒體34可包含藍(lán)光光盤、DVD、⑶-ROM、快閃存儲(chǔ)器,或用于存儲(chǔ)經(jīng)編碼視頻的任何其它適宜的數(shù)字存儲(chǔ)媒體。存儲(chǔ)在存儲(chǔ)媒體34上的經(jīng)編碼視頻可接著由目的地裝置14存取以用于解碼和重放。
[0073]文件服務(wù)器36可為能夠存儲(chǔ)經(jīng)編碼視頻且將所述經(jīng)編碼視頻發(fā)射到目的地裝置14的任何類型的服務(wù)器。實(shí)例文件服務(wù)器包含網(wǎng)絡(luò)服務(wù)器(例如,針對(duì)網(wǎng)站)、FTP服務(wù)器、網(wǎng)絡(luò)附接存儲(chǔ)(NAS)裝置、本地磁盤驅(qū)動(dòng)器,或能夠存儲(chǔ)經(jīng)編碼視頻數(shù)據(jù)且將其發(fā)射到目的地裝置的任何其它類型的裝置。文件服務(wù)器36可由目的地裝置14經(jīng)由任何標(biāo)準(zhǔn)數(shù)據(jù)連接(包含因特網(wǎng)連接)存取。此可包含無線信道(例如,W1-Fi連接)、有線連接(例如,DSL、電纜調(diào)制解調(diào)器等)或適于存取存儲(chǔ)在文件服務(wù)器上的經(jīng)編碼視頻數(shù)據(jù)的兩者的組合。來自文件服務(wù)器36的經(jīng)編碼視頻數(shù)據(jù)的發(fā)射可為串流發(fā)射、下載發(fā)射或兩者的組合。
[0074]本發(fā)明可通常提及視頻編碼器20向另一裝置(例如,視頻解碼器30) “用信號(hào)發(fā)送”某些信息。然而,應(yīng)理解,視頻編碼器20可通過使某些語法元素與視頻數(shù)據(jù)的各個(gè)經(jīng)編碼部分相關(guān)聯(lián)而用信號(hào)發(fā)送信息。即,視頻編碼器20可通過將某些語法元素存儲(chǔ)到視頻數(shù)據(jù)的各個(gè)經(jīng)編碼部分的標(biāo)頭而“用信號(hào)發(fā)送”數(shù)據(jù)。在一些情況下,此類語法元素可在由視頻解碼器30接收和解碼之前進(jìn)行編碼和存儲(chǔ)(例如,存儲(chǔ)到存儲(chǔ)媒體34或文件服務(wù)器36)。因此,術(shù)語“用信號(hào)發(fā)送”可通常指代用于解碼經(jīng)壓縮視頻數(shù)據(jù)的語法或其它數(shù)據(jù)的傳送,不論此傳送是實(shí)時(shí)還是在一時(shí)間跨度內(nèi)近實(shí)時(shí)發(fā)生(例如,可能當(dāng)在編碼時(shí)將語法元素存儲(chǔ)到媒體時(shí)發(fā)生,其可在存儲(chǔ)到此媒體之后的任何時(shí)間由解碼裝置檢索)。
[0075]圖1的實(shí)例中的目的地裝置14包含接收器26、調(diào)制解調(diào)器28、視頻解碼器30和顯示裝置32。目的地裝置14的接收器26經(jīng)由信道16接收信息,且調(diào)制解調(diào)器28解調(diào)所述信息以為視頻解碼器30產(chǎn)生經(jīng)解調(diào)位流。經(jīng)由信道16傳送的信息可包含視頻編碼器20產(chǎn)生的供視頻解碼器30用于解碼視頻數(shù)據(jù)的多種語法信息。此語法還可與存儲(chǔ)在存儲(chǔ)媒體34或文件服務(wù)器36上的經(jīng)編碼視頻數(shù)據(jù)一起包含。視頻編碼器20和視頻解碼器30的每一者可形成能夠編碼或解碼視頻數(shù)據(jù)的相應(yīng)編碼器一解碼器(CODEC)的一部分。
[0076]顯示裝置32可與目的地裝置14集成或在其外部。在一些實(shí)例中,目的地裝置14可包含集成顯示裝置,且還經(jīng)配置以與外部顯示裝置介接。在其它實(shí)例中,目的地裝置14可為顯示裝置。一股來說,顯示裝置32向用戶顯示經(jīng)解碼視頻數(shù)據(jù),且可包括例如液晶顯示器(LCD)、等離子體顯示器、有機(jī)發(fā)光二極管(OLED)顯示器,或另一類型的顯示裝置等多種顯示裝置的任一者。
[0077]視頻編碼器20和視頻解碼器30可根據(jù)視頻壓縮標(biāo)準(zhǔn)(例如,當(dāng)前發(fā)展中的高效視頻譯碼01EVC)標(biāo)準(zhǔn))操作,且可遵守HEVC測(cè)試模型(HM)?;蛘?,視頻編碼器20和視頻解碼器30可根據(jù)其它專門或工業(yè)標(biāo)準(zhǔn)操作,例如ITU-T H.264標(biāo)準(zhǔn),或稱為MPEG-4,第10部分,高級(jí)視頻譯碼(AVC),或此類標(biāo)準(zhǔn)的延伸。然而,本發(fā)明的技術(shù)不限于任何特定譯碼標(biāo)準(zhǔn)。其它實(shí)例包含MPEG-2和ITU-T H.263。
[0078]HEVC標(biāo)準(zhǔn)將視頻數(shù)據(jù)塊稱為譯碼單元(⑶)。一股來說,⑶具有與根據(jù)H.264譯碼的宏塊類似的用途,只是⑶不具有大小區(qū)分。因此,⑶可分裂為子⑶。一股來說,本發(fā)明中對(duì)CU的提及可指代圖片的最大譯碼單元(LCU)或LCU的子CU。舉例來說,位流內(nèi)的語法數(shù)據(jù)可界定IXU,其是依據(jù)像素?cái)?shù)目的最大譯碼單元。IXU可分裂為子⑶,且每一子⑶可分裂為子CU。位流的語法數(shù)據(jù)可界定LCU可分裂的最大次數(shù),稱為最大CU深度。因此,位流還可界定最小譯碼單元(SCU)。
[0079]IXU可與層級(jí)四叉樹數(shù)據(jù)結(jié)構(gòu)相關(guān)聯(lián)。一股來說,四叉樹數(shù)據(jù)結(jié)構(gòu)包含每⑶一個(gè)節(jié)點(diǎn),其中根節(jié)點(diǎn)對(duì)應(yīng)于LCU。如果CU分裂為四個(gè)子CU,那么對(duì)應(yīng)于CU的節(jié)點(diǎn)包含四個(gè)葉節(jié)點(diǎn),其每一者對(duì)應(yīng)于子CU的一者。四叉樹數(shù)據(jù)結(jié)構(gòu)的每一節(jié)點(diǎn)可提供對(duì)應(yīng)CU的語法數(shù)據(jù)。舉例來說,四叉樹中的節(jié)點(diǎn)可包含分裂旗標(biāo),指示對(duì)應(yīng)于節(jié)點(diǎn)的CU是否分裂為子CU。CU的語法元素可用遞歸法界定,且可取決于CU是否分裂為子CU。
[0080]未分裂的⑶可包含一個(gè)或一個(gè)以上預(yù)測(cè)單元(PU)。一股來說,I3U表示對(duì)應(yīng)⑶的全部或一部分,且包含用于檢索PU的參考樣本的數(shù)據(jù)。舉例來說,當(dāng)PU經(jīng)幀內(nèi)模式編碼時(shí),PU可包含描述的幀內(nèi)預(yù)測(cè)模式的數(shù)據(jù)。作為另一實(shí)例,當(dāng)PU經(jīng)幀間模式編碼時(shí),PU可包含界定PU的運(yùn)動(dòng)向量的數(shù)據(jù)。界定運(yùn)動(dòng)向量的數(shù)據(jù)可描述例如運(yùn)動(dòng)向量的水平分量、運(yùn)動(dòng)向量的垂直分量、運(yùn)動(dòng)向量的分辨率(例如,四分之一像素精度或八分之一像素精度)、運(yùn)動(dòng)向量所指向的參考幀,和/或運(yùn)動(dòng)向量的參考列表(例如,列表0或列表I)。界定I3U的⑶的數(shù)據(jù)還可描述例如將⑶分割為一個(gè)或一個(gè)以上PU。分割模式可依據(jù)⑶未譯碼、經(jīng)幀內(nèi)預(yù)測(cè)模式編碼還是經(jīng)幀間預(yù)測(cè)模式編碼而不同。
[0081]具有一個(gè)或一個(gè)以上PU的⑶還可包含一個(gè)或一個(gè)以上變換單元(TU)。在使用PU的預(yù)測(cè)之后,視頻編碼器可計(jì)算CU的對(duì)應(yīng)于的部分的殘余值。殘余值可經(jīng)變換、量化和掃描。TU不一定限于PU的大小。因此,TU可比同一⑶的對(duì)應(yīng)PU大或小。在一些實(shí)例中,TU的最大大小可為對(duì)應(yīng)CU的大小。本發(fā)明還使用術(shù)語“塊”來指代CU、PU或TU的任一者。
[0082]如上所述,一股來說,經(jīng)編碼視頻數(shù)據(jù)可包含預(yù)測(cè)數(shù)據(jù)和殘余數(shù)據(jù)。視頻編碼器20可在幀內(nèi)預(yù)測(cè)模式或幀間預(yù)測(cè)模式期間產(chǎn)生預(yù)測(cè)數(shù)據(jù)。幀內(nèi)預(yù)測(cè)通常涉及相對(duì)于同一圖片的相鄰、先前經(jīng)譯碼塊中的參考樣本預(yù)測(cè)圖片的塊中的像素值。幀間預(yù)測(cè)通常涉及相對(duì)于先前經(jīng)譯碼圖片的數(shù)據(jù)預(yù)測(cè)圖片的塊中的像素值。
[0083]在幀內(nèi)或幀間預(yù)測(cè)之后,視頻編碼器20可計(jì)算塊的殘余像素值。殘余值通常對(duì)應(yīng)于塊的預(yù)測(cè)像素值數(shù)據(jù)與塊的真實(shí)像素值數(shù)據(jù)之間的差。舉例來說,殘余值可包含指示經(jīng)譯碼像素與預(yù)測(cè)性像素之間的差的像素差值。在一些實(shí)例中,經(jīng)譯碼像素可與待譯碼的像素塊相關(guān)聯(lián),且預(yù)測(cè)性像素可與用于預(yù)測(cè)經(jīng)譯碼塊的像素的一個(gè)或一個(gè)以上塊相關(guān)聯(lián)。
[0084]為進(jìn)一步壓縮塊的殘余值,殘余值可經(jīng)變換為變換系數(shù)的集合,所述變換系數(shù)將盡可能多的數(shù)據(jù)(也稱為“能量”)壓緊為盡可能少的系數(shù)。變換技術(shù)可包括離散余弦變換(DCT)過程或概念上類似的過程、整數(shù)變換、小波變換,或其它類型的變換。所述變換將像素的殘余值從空間域轉(zhuǎn)換到變換域。變換系數(shù)對(duì)應(yīng)于通常為與原始?jí)K相同大小的二維系數(shù)矩陣。換句話說,存在正好與殘余數(shù)據(jù)的原始?jí)K中的像素一樣多的變換系數(shù)。然而,歸因于所述變換,許多變換系數(shù)可具有等于零的值。[0085]視頻編碼器20可接著量化變換系數(shù)以進(jìn)一步壓縮視頻數(shù)據(jù)。量化通常涉及將相對(duì)大范圍內(nèi)的值映射到相對(duì)小范圍內(nèi)的值,因此減少表示經(jīng)量化變換系數(shù)所需的數(shù)據(jù)的量。更特定來說,可根據(jù)量化參數(shù)(QP)應(yīng)用量化,量化參數(shù)可編索引到在量化期間應(yīng)用于變換系數(shù)的量化器步長(zhǎng)。
[0086]量化之后,視頻編碼器20可掃描變換系數(shù),從而從包含經(jīng)量化變換系數(shù)的二維矩陣產(chǎn)生一維向量。視頻編碼器20可接著對(duì)所得陣列進(jìn)行熵編碼以更進(jìn)一步壓縮數(shù)據(jù)。一股來說,熵譯碼包括共同壓縮一連串經(jīng)量化的變換系數(shù)及/或其它語法信息的一個(gè)或一個(gè)以上過程。舉例來說,例如增量QP、預(yù)測(cè)向量、譯碼模式、濾波器、偏移或其它信息等語法元素也可包含在經(jīng)熵譯碼位流中。經(jīng)掃描系數(shù)接著連同任何語法信息一起例如經(jīng)由CAVLC、CABAC、PIPE或另一熵譯碼過程進(jìn)行熵譯碼。
[0087]為執(zhí)行CAVLC,視頻編碼器20可選擇待發(fā)射的符號(hào)的可變長(zhǎng)度碼。VLC中的碼字可經(jīng)構(gòu)造使得相對(duì)較短碼對(duì)應(yīng)于可能性較大的符號(hào),且較長(zhǎng)碼對(duì)應(yīng)于可能性較小的符號(hào)。以此方式,VLC的使用與例如針對(duì)待發(fā)射的每一符號(hào)使用相等長(zhǎng)度碼字相比可實(shí)現(xiàn)位速率節(jié)省。
[0088]為執(zhí)行CABAC,視頻編碼器20可選擇上下文模型以應(yīng)用于某一上下文來編碼待發(fā)射的符號(hào)。所述上下文可涉及例如相鄰值是否非零。視頻編碼器20還可對(duì)例如有效系數(shù)旗標(biāo)和當(dāng)執(zhí)行自適應(yīng)掃描時(shí)產(chǎn)生的最后系數(shù)旗標(biāo)等語法元素進(jìn)行熵編碼。
[0089]一股來說,視頻解碼器30執(zhí)行的視頻解碼過程可包含與視頻編碼器20執(zhí)行的編碼技術(shù)互逆的技術(shù)。盡管大體互逆,但視頻解碼器30可在一些例子中執(zhí)行與視頻編碼器20執(zhí)行的技術(shù)類似的技術(shù)。視頻解碼器30還可依賴于包含相對(duì)于視頻編碼器20描述的數(shù)據(jù)的所接收位流中含有的語法元素或其它數(shù)據(jù)。
[0090]根據(jù)本發(fā)明的方面,視頻編碼器20和/或視頻解碼器30可在對(duì)與視頻數(shù)據(jù)塊相關(guān)聯(lián)的變換系數(shù)的預(yù)定子集進(jìn)行譯碼之后更新在熵譯碼期間使用的概率模型。舉例來說,視頻編碼器20和/或視頻解碼器30可將與視頻數(shù)據(jù)塊相關(guān)聯(lián)的變換系數(shù)劃分為多個(gè)子集。視頻編碼器20和/或視頻解碼器30可繼續(xù)對(duì)塊的每一子集進(jìn)行譯碼直到整個(gè)塊已經(jīng)譯碼為止。根據(jù)本發(fā)明的方面,視頻編碼器20和/或視頻解碼器30可在對(duì)每一子集進(jìn)行譯碼之后更新與上下文相關(guān)聯(lián)的概率。舉例來說,視頻編碼器20和/或視頻解碼器30可收集并存儲(chǔ)與在對(duì)變換系數(shù)的子集進(jìn)行譯碼的同時(shí)應(yīng)用的概率模型相關(guān)聯(lián)的統(tǒng)計(jì)。在對(duì)子集進(jìn)行譯碼之后,視頻編碼器20和/或視頻解碼器30可使用所存儲(chǔ)的概率統(tǒng)計(jì)更新在子集的譯碼期間使用的每一上下文的概率模型。視頻編碼器20和/或視頻解碼器30可使用經(jīng)更新的概率對(duì)變換系數(shù)的下一子集進(jìn)行譯碼。以此方式,視頻編碼器20和/或視頻解碼器30可在不在子集的譯碼期間更新概率的情況下對(duì)每一子集的變換系數(shù)進(jìn)行譯碼。以此方式,本發(fā)明的技術(shù)可在譯碼性能與譯碼速度之間找到平衡,且可允許對(duì)子集的二進(jìn)位的并行處理。
[0091]在其它實(shí)例中,根據(jù)本發(fā)明的方面,視頻編碼器20和/或視頻解碼器30可執(zhí)行用于并行化熵譯碼的其它技術(shù)。舉例來說,視頻編碼器20和/或視頻解碼器30可使用在對(duì)塊的先前二進(jìn)位進(jìn)行譯碼之前更新的概率模型對(duì)視頻數(shù)據(jù)塊的二進(jìn)位進(jìn)行譯碼。即,視頻編碼器20和/或視頻解碼器30可在對(duì)當(dāng)前二進(jìn)位進(jìn)行譯碼之前至少兩個(gè)譯碼迭代或循環(huán)更新概率模型。因此,視頻編碼器20和/或視頻解碼器30可避免當(dāng)使用概率模型對(duì)多個(gè)連續(xù)二進(jìn)位進(jìn)行譯碼時(shí)由于在使用所述模型對(duì)二進(jìn)位進(jìn)行譯碼之后更新所述模型而引起的延遲。
[0092]盡管圖1中未展示,但在一些方面中,視頻編碼器20及視頻解碼器30可各自與音頻編碼器及解碼器集成,且可包含適當(dāng)?shù)亩嗦窂?fù)用器一多路分用器(MUX-DEMUX)單元或其它硬件及軟件,以處置對(duì)共同數(shù)據(jù)流或單獨(dú)數(shù)據(jù)流中的音頻與視頻兩者的編碼。在適用的情況下,在一些實(shí)例中,MUX-DEMUX單元可遵守ITU H.223多路復(fù)用器協(xié)議,或例如用戶數(shù)據(jù)報(bào)協(xié)議(UDP)等其它協(xié)議。
[0093]視頻編碼器20和視頻解碼器30各自可經(jīng)實(shí)施為例如一個(gè)或一個(gè)以上微處理器、數(shù)字信號(hào)處理器(DSP)、專用集成電路(ASIC)、現(xiàn)場(chǎng)可編程門陣列(FPGA)、離散邏輯、軟件、硬件、固件或其任何組合的多種合適編碼器電路中的任一者。當(dāng)在軟件中部分實(shí)施所述技術(shù)時(shí),裝置可將軟件的指令存儲(chǔ)在適宜的非暫時(shí)性計(jì)算機(jī)可讀媒體中,且使用一個(gè)或一個(gè)以上處理器執(zhí)行硬件中的指令以執(zhí)行本發(fā)明的技術(shù)。視頻編碼器20和視頻解碼器30的每一者可包含在一個(gè)或一個(gè)以上編碼器或解碼器中,其任一者可作為組合式編碼器/解碼器(CODEC)的一部分集成在相應(yīng)裝置中。
[0094]圖2是說明可實(shí)施本發(fā)明的用于上下文自適應(yīng)譯碼的技術(shù)的視頻編碼器20的實(shí)例的框圖。應(yīng)理解,圖2的某些組件可出于概念的目的相對(duì)于單一組件展示和描述,但可包含一個(gè)或一個(gè)以上功能單元。另外,雖然圖2的某些組件可相對(duì)于單一組件展示和描述,但此類組件可實(shí)體上包括一個(gè)或一個(gè)以上離散和/或集成單元。
[0095]如圖2所示,視頻編碼器20接收待編碼的視頻圖片內(nèi)的當(dāng)前視頻塊。在圖2的實(shí)例中,視頻編碼器20包含運(yùn)動(dòng)補(bǔ)償單元44、運(yùn)動(dòng)估計(jì)單元42、參考幀存儲(chǔ)裝置64、求和器50、變換單元52、量化單元54和熵編碼單元56。對(duì)于視頻塊重構(gòu),視頻編碼器20還包括逆量化單元58、逆變換單元60,和求和器62。還可包含解塊濾波器(圖2中未展示)以將塊邊界濾波,以從經(jīng)重構(gòu)的視頻移除成塊性假象。在需要時(shí),解塊濾波器通常對(duì)求和器62的輸出進(jìn)行濾波。
[0096]在編碼過程期間,視頻編碼器20接收待譯碼的視頻圖片或切片。圖片或切片可劃分為多個(gè)視頻塊。運(yùn)動(dòng)估計(jì)單元42和運(yùn)動(dòng)補(bǔ)償單元44執(zhí)行所接收視頻塊相對(duì)于一個(gè)或一個(gè)以上參考幀中的一個(gè)或一個(gè)以上塊的幀間預(yù)測(cè)譯碼。即,運(yùn)動(dòng)估計(jì)單元42可執(zhí)行所接收視頻塊相對(duì)于不同時(shí)間例項(xiàng)的一個(gè)或一個(gè)以上參考幀中的一個(gè)或一個(gè)以上塊的幀間預(yù)測(cè)譯碼,例如使用同一視圖的一個(gè)或一個(gè)以上參考幀的運(yùn)動(dòng)估計(jì)。另外,運(yùn)動(dòng)估計(jì)單元42可執(zhí)行所接收視頻塊相對(duì)于同一時(shí)間例項(xiàng)的一個(gè)或一個(gè)以上參考幀中的一個(gè)或一個(gè)以上塊的幀間預(yù)測(cè)譯碼,例如使用不同視圖的一個(gè)或一個(gè)以上參考幀的運(yùn)動(dòng)視差。
[0097]幀內(nèi)預(yù)測(cè)單元46可執(zhí)行所接收視頻塊相對(duì)于與待譯碼的塊相同的幀或切片中的一個(gè)或一個(gè)以上相鄰塊的幀內(nèi)預(yù)測(cè)譯碼,以提供空間壓縮。模式選擇單元40可例如基于誤差結(jié)果選擇譯碼模式(幀內(nèi)或幀間)的一者,且將所得經(jīng)幀內(nèi)或幀間譯碼塊提供到求和器50以產(chǎn)生殘余塊數(shù)據(jù),以及提供到求和器62以重構(gòu)用于在參考幀中使用的經(jīng)編碼塊。
[0098]運(yùn)動(dòng)估計(jì)單元42和運(yùn)動(dòng)補(bǔ)償單元44可高度集成,但出于概念的目的單獨(dú)說明。運(yùn)動(dòng)估計(jì)是產(chǎn)生估計(jì)視頻塊的運(yùn)動(dòng)的運(yùn)動(dòng)向量的過程。運(yùn)動(dòng)向量(例如)可指示預(yù)測(cè)參考幀(或其它經(jīng)譯碼單元)內(nèi)的預(yù)測(cè)塊相對(duì)于當(dāng)前幀(或其它經(jīng)譯碼單元)內(nèi)正被譯碼的當(dāng)前塊的位移。預(yù)測(cè)塊是經(jīng)發(fā)現(xiàn)在像素差異方面密切地匹配待譯碼的塊的塊,其可通過絕對(duì)差總和(SAD)、平方差總和(SSD)或其它差異量度來確定。運(yùn)動(dòng)向量還可指示宏塊的分區(qū)的位移。運(yùn)動(dòng)補(bǔ)償可涉及基于運(yùn)動(dòng)估計(jì)單元42確定的運(yùn)動(dòng)向量(或位移向量)取得或產(chǎn)生預(yù)測(cè)塊。再次,在一些實(shí)例中,運(yùn)動(dòng)估計(jì)單元42和運(yùn)動(dòng)補(bǔ)償單元44可功能上集成。
[0099]運(yùn)動(dòng)估計(jì)單元42可通過將視頻塊與參考幀存儲(chǔ)裝置64中的參考幀的視頻塊進(jìn)行比較來計(jì)算經(jīng)幀間譯碼圖片的視頻塊的運(yùn)動(dòng)向量。運(yùn)動(dòng)補(bǔ)償單元44還可內(nèi)插參考幀(例如,I幀或P幀)的子整數(shù)像素。ITU-T H.264標(biāo)準(zhǔn)指代參考幀的“列表”,例如列表0和列表I。列表0包含具有早于當(dāng)前圖片的顯示次序的參考幀,而列表I包含具有遲于當(dāng)前圖片的顯示次序的參考幀。在其它譯碼方案中,可維持單一列表。
[0100]運(yùn)動(dòng)估計(jì)單元42將來自參考幀存儲(chǔ)裝置64的一個(gè)或一個(gè)以上參考幀的塊與當(dāng)前圖片(例如,P圖片或B圖片)的待編碼的塊進(jìn)行比較。當(dāng)參考幀存儲(chǔ)裝置64中的參考幀包含子整數(shù)像素的值時(shí),由運(yùn)動(dòng)估計(jì)單元42計(jì)算的運(yùn)動(dòng)向量可指代參考幀的子整數(shù)像素位置。運(yùn)動(dòng)估計(jì)單元42將所計(jì)算的運(yùn)動(dòng)向量發(fā)送到熵編碼單元56和運(yùn)動(dòng)補(bǔ)償單元44。由運(yùn)動(dòng)向量識(shí)別的參考幀塊可稱作預(yù)測(cè)塊。運(yùn)動(dòng)補(bǔ)償單元44計(jì)算參考幀的預(yù)測(cè)塊的殘余誤差值。
[0101]變換單元52將例如離散余弦變換(DCT)、整數(shù)變換或概念上類似的變換等變換應(yīng)用于殘余塊,從而產(chǎn)生包括殘余變換系數(shù)值的視頻塊。變換單元52可執(zhí)行概念上類似于DCT的其它變換,例如由H.264標(biāo)準(zhǔn)界定的變換。也可使用小波變換、整數(shù)變換、子帶變換或其它類型的變換。在任何狀況下,變換單元52均將變換應(yīng)用于殘余塊,從而產(chǎn)生殘余變換系數(shù)的塊。變換單元52可將殘余信息從像素值域轉(zhuǎn)換到例如頻域等變換域。
[0102]量化單元54量化殘余變換系數(shù)以進(jìn)一步減小位速率。量化過程可減少與系數(shù)中的一些或全部相關(guān)聯(lián)的位深度。量化的程度可通過調(diào)整量化參數(shù)來修改。舉例來說,量化通常涉及將相對(duì)大范圍內(nèi)的值映射到相對(duì)小范圍內(nèi)的值,因此減少表示經(jīng)量化變換系數(shù)所需的數(shù)據(jù)的量。視頻編碼器可通過根據(jù)預(yù)定義算法應(yīng)用量化參數(shù)(QP)而量化變換系數(shù)。視頻編碼器可通過調(diào)整QP修改應(yīng)用于變換系數(shù)值的量化的程度。
[0103]量化之后,熵編碼單元56對(duì)經(jīng)量化變換系數(shù)進(jìn)行掃描和熵譯碼。熵編碼單元56可執(zhí)行CAVLC、CABAC、PIPE或另一熵譯碼技術(shù)。熵編碼單元56可在執(zhí)行熵譯碼時(shí)執(zhí)行本發(fā)明的技術(shù)的任一者。
[0104]舉例來說,根據(jù)本發(fā)明的方面,在此實(shí)例中,熵編碼單元56可在對(duì)與視頻數(shù)據(jù)塊相關(guān)聯(lián)的變換系數(shù)的預(yù)定子集進(jìn)行譯碼之后更新在熵譯碼期間使用的概率模型。舉例來說,熵編碼單元56可將與視頻數(shù)據(jù)塊相關(guān)聯(lián)的變換系數(shù)劃分為多個(gè)子集。熵編碼單元56可繼續(xù)對(duì)塊的每一子集進(jìn)行譯碼直到整個(gè)塊已經(jīng)譯碼為止。根據(jù)本發(fā)明的方面,熵編碼單元56可在對(duì)每一子集進(jìn)行譯碼之后更新與上下文相關(guān)聯(lián)的概率。舉例來說,熵編碼單元56可收集并存儲(chǔ)與在對(duì)變換系數(shù)的子集進(jìn)行譯碼的同時(shí)應(yīng)用的概率模型相關(guān)聯(lián)的統(tǒng)計(jì)。在對(duì)子集進(jìn)行譯碼之后,熵編碼單元56可使用所存儲(chǔ)的概率統(tǒng)計(jì)更新在子集的譯碼期間使用的每一上下文的概率模型。熵編碼單元56可使用經(jīng)更新的概率來對(duì)變換系數(shù)的下一子集進(jìn)行譯碼。以此方式,熵編碼單元56可在不在子集的譯碼期間更新概率的情況下對(duì)每一子集的變換系數(shù)進(jìn)行譯碼。以此方式,本發(fā)明的技術(shù)可在譯碼性能與譯碼速度之間找到平衡,且可允許對(duì)子集的二進(jìn)位的并行處理。
[0105]另外或作為替代,根據(jù)本發(fā)明的方面,熵編碼單元56可執(zhí)行用于并行化熵譯碼的其它技術(shù)。舉例來說,熵編碼單元56可使用在對(duì)塊的先前二進(jìn)位進(jìn)行譯碼之前更新的概率模型對(duì)視頻數(shù)據(jù)塊的二進(jìn)位進(jìn)行譯碼。即,熵編碼單元56可在對(duì)當(dāng)前二進(jìn)位進(jìn)行譯碼之前至少兩個(gè)譯碼迭代或循環(huán)更新概率模型。因此,熵編碼單元56可避免當(dāng)使用概率模型對(duì)多個(gè)連續(xù)二進(jìn)位進(jìn)行譯碼時(shí)由于在使用所述模型對(duì)二進(jìn)位進(jìn)行譯碼之后更新所述模型而引起的延遲。
[0106]在一些情況下,熵編碼單元56或視頻編碼器20的另一單元還可經(jīng)配置以除熵譯碼外還執(zhí)行其它譯碼功能。舉例來說,熵編碼單元56可經(jīng)配置以確定⑶和/或的經(jīng)譯碼塊樣式(CBP)值。并且,在一些情況下,熵編碼單元56可執(zhí)行宏塊或其分區(qū)中的系數(shù)的延行長(zhǎng)度譯碼。熵編碼單元56還可以適當(dāng)語法元素構(gòu)建標(biāo)頭信息以在經(jīng)編碼視頻位流中發(fā)射。
[0107]逆量化單元58和逆變換單元60分別應(yīng)用逆量化和逆變換以在像素域中重構(gòu)殘余塊,例如以供稍后用作參考?jí)K。運(yùn)動(dòng)補(bǔ)償單元44可通過將殘余塊加到參考幀存儲(chǔ)裝置64的幀中的一者的預(yù)測(cè)塊來計(jì)算參考?jí)K。運(yùn)動(dòng)補(bǔ)償單元44還可將一個(gè)或一個(gè)以上內(nèi)插濾波器應(yīng)用于經(jīng)重構(gòu)殘余塊以計(jì)算子整數(shù)像素值用于在運(yùn)動(dòng)估計(jì)中使用。加法器62將經(jīng)重構(gòu)殘余塊添加到由運(yùn)動(dòng)補(bǔ)償單元44所產(chǎn)生的經(jīng)運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)塊以產(chǎn)生經(jīng)重構(gòu)視頻塊以供存儲(chǔ)于參考幀存儲(chǔ)裝置64中。經(jīng)重構(gòu)的視頻塊可由運(yùn)動(dòng)估計(jì)單元42和運(yùn)動(dòng)補(bǔ)償單元44用作用于對(duì)后續(xù)視頻幀中的塊進(jìn)行幀間譯碼的參考?jí)K。
[0108]圖3是說明對(duì)經(jīng)編碼視頻序列進(jìn)行解碼的視頻解碼器30的實(shí)例的框圖。在圖3的實(shí)例中,視頻解碼器30包含熵解碼單元130、運(yùn)動(dòng)補(bǔ)償單元132、幀內(nèi)預(yù)測(cè)單元134、逆量化單元136、逆變換單元138、參考幀存儲(chǔ)裝置142和求和器140。
[0109]熵解碼單元130可對(duì)所接收位流進(jìn)行熵解碼。舉例來說,熵解碼單元130可接收串行化變換系數(shù)且對(duì)變換系數(shù)進(jìn)行逆掃描以產(chǎn)生變換系數(shù)的二維陣列。熵解碼單元130可實(shí)施本發(fā)明的技術(shù)的任一者。
[0110]舉例來說,根據(jù)本發(fā)明的方面,熵解碼單元130可在對(duì)與視頻數(shù)據(jù)塊相關(guān)聯(lián)的變換系數(shù)的預(yù)定子集進(jìn)行解碼之后更新在熵解碼期間使用的概率模型。舉例來說,熵解碼單元130可將與視頻數(shù)據(jù)塊相關(guān)聯(lián)的變換系數(shù)劃分為多個(gè)子集。熵解碼單元130可繼續(xù)對(duì)塊的每一子集進(jìn)行解碼直到整個(gè)塊已經(jīng)解碼為止。根據(jù)本發(fā)明的方面,熵解碼單元130可在對(duì)每一子集進(jìn)行解碼之后更新與上下文相關(guān)聯(lián)的概率。舉例來說,熵解碼單元130可收集并存儲(chǔ)與在對(duì)變換系數(shù)的子集進(jìn)行解碼的同時(shí)應(yīng)用的概率模型相關(guān)聯(lián)的統(tǒng)計(jì)。在對(duì)子集進(jìn)行解碼之后,熵解碼單元130可使用所存儲(chǔ)的概率統(tǒng)計(jì)更新在子集的解碼期間使用的每一上下文的概率模型。熵解碼單元130可使用經(jīng)更新的概率來對(duì)變換系數(shù)的下一子集進(jìn)行解碼。以此方式,熵解碼單元130可在不在子集的解碼期間更新概率的情況下對(duì)每一子集的變換系數(shù)進(jìn)行解碼。以此方式,本發(fā)明的技術(shù)可在譯碼性能與解碼速度之間找到平衡,且可允許對(duì)子集的二進(jìn)位的并行處理。
[0111]另外或作為替代,根據(jù)本發(fā)明的方面,熵解碼單元130可執(zhí)行用于并行化熵譯碼的其它技術(shù)。舉例來說,熵解碼單元130可使用在對(duì)塊的先前二進(jìn)位進(jìn)行譯碼之前更新的概率模型對(duì)視頻數(shù)據(jù)塊的二進(jìn)位進(jìn)行解碼。即,熵解碼單元130可在對(duì)當(dāng)前二進(jìn)位進(jìn)行解碼之前至少兩個(gè)譯碼迭代或循環(huán)更新概率模型。因此,熵解碼單元130可避免當(dāng)使用所述模型對(duì)多個(gè)連續(xù)二進(jìn)位進(jìn)行解碼時(shí)由于在使用概率模型對(duì)二進(jìn)位進(jìn)行解碼之后更新所述模型而引起的延遲。
[0112]運(yùn)動(dòng)補(bǔ)償單元132可基于從熵解碼單元130接收的運(yùn)動(dòng)向量產(chǎn)生預(yù)測(cè)數(shù)據(jù)。運(yùn)動(dòng)補(bǔ)償單元132可使用在位流中所接收的運(yùn)動(dòng)向量來識(shí)別參考幀存儲(chǔ)裝置142中的參考幀中的預(yù)測(cè)塊。幀內(nèi)預(yù)測(cè)單元134可使用在位流中所接收的幀內(nèi)預(yù)測(cè)模式以從空間上鄰近的塊形成預(yù)測(cè)塊。
[0113]逆量化單元136對(duì)位流中提供的且由熵解碼單元130解碼的經(jīng)量化塊系數(shù)進(jìn)行逆量化(即,解量化)。根據(jù)本發(fā)明的一些方面,逆量化單元136可經(jīng)配置以以與上文相對(duì)于圖2的實(shí)例中展示的視頻編碼器20描述的量化單元54的方式大體互逆的方式操作。
[0114]逆變換單元158將例如逆DCT、逆整數(shù)變換或概念上類似的逆變換過程等逆變換應(yīng)用于變換系數(shù)以在像素域中產(chǎn)生殘余塊。運(yùn)動(dòng)補(bǔ)償單元132產(chǎn)生經(jīng)運(yùn)動(dòng)補(bǔ)償?shù)膲K,可能執(zhí)行基于內(nèi)插濾波器的內(nèi)插。待用于具有子像素精度的運(yùn)動(dòng)估計(jì)的內(nèi)插濾波器的識(shí)別符可包含在語法元素中。運(yùn)動(dòng)補(bǔ)償單元132可使用如由視頻編碼器20在視頻塊的編碼期間所使用的內(nèi)插濾波器來計(jì)算參考?jí)K的子整數(shù)像素的內(nèi)插值。運(yùn)動(dòng)補(bǔ)償單元132可根據(jù)所接收的語法信息來確定由視頻編碼器20使用的內(nèi)插濾波器且使用所述內(nèi)插濾波器來產(chǎn)生預(yù)測(cè)塊。
[0115]運(yùn)動(dòng)補(bǔ)償單元132使用一些語法信息來確定用于編碼經(jīng)編碼視頻序列的(多個(gè))幀的宏塊的大小、描述經(jīng)編碼視頻序列的幀的每一宏塊經(jīng)分割的方式的分割信息、指示每一分區(qū)經(jīng)編碼的方式的模式、用于每一經(jīng)幀間編碼的宏塊或分區(qū)的一個(gè)或一個(gè)以上參考幀(或列表),和用于解碼經(jīng)編碼視頻序列的其它信息。
[0116]求和器140將殘余塊與運(yùn)動(dòng)補(bǔ)償單元132或幀內(nèi)預(yù)測(cè)單元產(chǎn)生的對(duì)應(yīng)的預(yù)測(cè)塊求和以形成經(jīng)解碼塊。如果需要的話,還可應(yīng)用解塊濾波器以對(duì)經(jīng)解碼塊進(jìn)行濾波,以便移除成塊假象。接著將經(jīng)解碼的視頻塊存儲(chǔ)于參考幀存儲(chǔ)裝置142中,參考幀存儲(chǔ)裝置142提供用于后續(xù)運(yùn)動(dòng)補(bǔ)償?shù)膮⒖級(jí)K且還產(chǎn)生用于在顯示裝置(例如,圖1的顯示裝置32)上呈現(xiàn)的經(jīng)解碼視頻。
[0117]圖4A和4B是說明實(shí)例四叉樹150和對(duì)應(yīng)的最大譯碼單元172的概念圖。圖4A描繪實(shí)例四叉樹150,其包含以層級(jí)方式布置的節(jié)點(diǎn)。四叉樹150可根據(jù)所提議的HEVC標(biāo)準(zhǔn)與例如樹塊相關(guān)聯(lián)。四叉樹(例如,四叉樹150)中的每一節(jié)點(diǎn)可為無子代的葉節(jié)點(diǎn),或具有四個(gè)子節(jié)點(diǎn)。在圖4A的實(shí)例中,四叉樹150包含根節(jié)點(diǎn)152。根節(jié)點(diǎn)152具有四個(gè)子節(jié)點(diǎn),包含葉節(jié)點(diǎn)156A-156C(葉節(jié)點(diǎn)156)和節(jié)點(diǎn)154。因?yàn)楣?jié)點(diǎn)154不是葉節(jié)點(diǎn),所以節(jié)點(diǎn)154包含四個(gè)子節(jié)點(diǎn),其在此實(shí)例中為葉節(jié)點(diǎn)158A-158D(葉節(jié)點(diǎn)158)。
[0118]四叉樹150可包含描述對(duì)應(yīng)的最大譯碼單元(IXU)(例如,在此實(shí)例中為IXU172)的特性的數(shù)據(jù)。舉例來說,四叉樹150依據(jù)其結(jié)構(gòu)可描述LCU分裂為子CU。假定LCU172具有大小2Nx2N。在此實(shí)例中,IXU172具有四個(gè)子⑶176A-176C (子⑶176)和174,每一者大小為NxN。子CU174進(jìn)一步分裂為四個(gè)子CU178A-178D (子CU178),每一者大小為N / 2xN /2。在此實(shí)例中,四叉樹150的結(jié)構(gòu)對(duì)應(yīng)于IXU172的分裂。即,根節(jié)點(diǎn)152對(duì)應(yīng)于IXU172,葉節(jié)點(diǎn)156對(duì)應(yīng)于子⑶176,節(jié)點(diǎn)154對(duì)應(yīng)于子⑶174,且葉節(jié)點(diǎn)158對(duì)應(yīng)于子⑶178。
[0119]四叉樹150的節(jié)點(diǎn)的數(shù)據(jù)可描述對(duì)應(yīng)于節(jié)點(diǎn)的⑶是否經(jīng)分裂。如果⑶經(jīng)分裂,那么四叉樹150中可存在四個(gè)額外節(jié)點(diǎn)。在一些實(shí)例中,四叉樹的節(jié)點(diǎn)可類似于以下偽碼而實(shí)施:[0120]
quadtree_node {
boolcan_splil_flag( I);
//信令數(shù)據(jù)
if (splilj_lag) {
quadlrcc_node child I ;
quadlrcc_node child2;
quadtree_nodc child3;
quadlrcc_nodc child4;
}
}
[0121]split_flag值可為表示對(duì)應(yīng)于當(dāng)前節(jié)點(diǎn)的⑶是否經(jīng)分裂的I位值。如果⑶未經(jīng)分裂,那么split_flag值可為‘0’,而如果CU經(jīng)分裂,那么split_flag值可為‘I’。相對(duì)于四叉樹150的實(shí)例,分裂旗標(biāo)值的陣列可為101000000。
[0122]在一些實(shí)例中,子⑶176和子⑶178的每一者可使用同一幀內(nèi)預(yù)測(cè)模式進(jìn)行幀內(nèi)預(yù)測(cè)編碼。因此,視頻編碼器20可在根節(jié)點(diǎn)152中提供幀內(nèi)預(yù)測(cè)模式的指示。
[0123]雖然圖4A說明CU四叉樹的實(shí)例,但應(yīng)理解,類似的四叉樹可應(yīng)用于葉節(jié)點(diǎn)CU的TU0 即,葉節(jié)點(diǎn)⑶可包含描述⑶的TU的分割的TU四叉樹。TU四叉樹可通常類似于⑶四叉樹,只是TU四叉樹可個(gè)別地用信號(hào)發(fā)送⑶的TU的幀內(nèi)預(yù)測(cè)模式。
[0124]圖5A和5B大體說明用于掃描在熵譯碼期間與視頻數(shù)據(jù)塊相關(guān)聯(lián)的變換系數(shù)的對(duì)角掃描模式。即,舉例來說,掃描模式可由視頻編碼器(例如,視頻編碼器20)在使變換系數(shù)的二維陣列串行化時(shí)使用。在另一實(shí)例中,掃描模式可由視頻解碼器(例如,視頻解碼器30)在由經(jīng)譯碼變換系數(shù)的所接收串行化陣列重構(gòu)視頻數(shù)據(jù)塊時(shí)使用。
[0125]舉例來說,圖5A說明用于掃描視頻數(shù)據(jù)塊的變換系數(shù)(例如,與TU相關(guān)聯(lián)的變換系數(shù))的前向?qū)菕呙枘J?80。一股來說,前向?qū)菕呙枘J?80以從左向右以及從上向下45度角遍歷塊。即,在圖5A所示的實(shí)例中,第一系數(shù)182是在塊的左上角定位的DC分量,而待掃描的最后系數(shù)184在塊的右下角定位。
[0126]圖5B說明用于掃描視頻數(shù)據(jù)塊的變換系數(shù)(例如,與TU相關(guān)聯(lián)的變換系數(shù))的逆向?qū)菕呙枘J?86。一股來說,逆向?qū)菕呙枘J?86以從右向左以及從下向上45度角遍歷塊。即,在圖5B所示的實(shí)例中,第一系數(shù)188是在塊的右下角定位的DC分量,而待掃描的最后系數(shù)190在塊的左上角定位。
[0127]應(yīng)理解,圖5A和5B所示的掃描模式僅出于說明的目的而提供。舉例來說,雖然圖5A和5B說明對(duì)角掃描模式,但可存在其它掃描模式可用,例如鋸齒狀模式、自適應(yīng)掃描次序、水平模式和垂直模式等。另外,與變換系數(shù)相關(guān)聯(lián)的不同分量(例如,有效性、正負(fù)號(hào)、層級(jí)等)可使用不同定向和/或方向的模式掃描。舉例來說,在一些例子中,可在變換系數(shù)層級(jí)的相反方向上掃描有效性信息(例如,有效性圖)。在其它例子中,可實(shí)施統(tǒng)一掃描模式,使得在相同方向上掃描有效性信息和變換系數(shù)層級(jí)。[0128]圖6A和6B大體說明根據(jù)本發(fā)明的方面將變換系數(shù)塊劃分為子集。雖然圖6A和6B相對(duì)于視頻解碼器30(圖1和3)描述,但應(yīng)理解,本發(fā)明的技術(shù)可由多種其它視頻譯碼器(包含視頻編碼器20(圖1和2))、其它處理器、處理單元、基于硬件的譯碼單元(例如,編碼器/解碼器(CODEC))等實(shí)行。
[0129]參看圖6A,根據(jù)本發(fā)明的方面,視頻解碼器30可在解碼塊200的同時(shí)以掃描次序?qū)K200劃分為子集202、204、206和208。在圖6A所示的實(shí)例中,第一子集202包含呈掃描次序的第一 16個(gè)變換系數(shù),第二子集204包含呈掃描次序的接下來16個(gè)變換系數(shù),第三子集206包含呈掃描次序的接下來16個(gè)變換系數(shù),且第四子集208包含呈掃描次序的最終16個(gè)變換系數(shù)。
[0130]根據(jù)本發(fā)明的方面,視頻解碼器30可將與上下文自適應(yīng)譯碼過程相關(guān)聯(lián)的概率更新與子集202-208聯(lián)系。舉例來說,在塊200的解碼期間,視頻解碼器30可初始使用概率模型的第一集合解碼子集202。概率模型的第一集合可不在對(duì)子集202進(jìn)行譯碼期間更新,使得視頻解碼器30使用概率模型的第一集合解碼整個(gè)子集202。另外,視頻解碼器30可收集并存儲(chǔ)與在對(duì)子集202進(jìn)行解碼的同時(shí)應(yīng)用的概率模型的第一集合相關(guān)聯(lián)的統(tǒng)計(jì)。舉例來說,如上所述,指示用于對(duì)二進(jìn)位進(jìn)行譯碼的特定概率模型的上下文可受先前經(jīng)譯碼二進(jìn)位(例如,先前經(jīng)譯碼語法元素的相關(guān)二進(jìn)位)的值影響。另外,用于對(duì)二進(jìn)位進(jìn)行譯碼的概率模型也可受先前經(jīng)譯碼二進(jìn)位的值影響。根據(jù)本發(fā)明的方面,代替于以串行方式更新概率模型(例如,以逐二進(jìn)位為基礎(chǔ)),視頻解碼器30可存儲(chǔ)基于經(jīng)譯碼二進(jìn)位的上下文的經(jīng)更新狀態(tài)。
[0131]根據(jù)本發(fā)明的方面,在對(duì)子集202解碼之后,視頻解碼器30可使用所存儲(chǔ)的概率統(tǒng)計(jì)更新概率模型的第一集合。視頻解碼器30可接著使用此經(jīng)更新的概率模型的第二集合來對(duì)變換系數(shù)的第二子集204解碼。視頻解碼器30可以此方式繼續(xù)解碼塊200直到塊200已經(jīng)解碼為止。即,在對(duì)第二子集204解碼之后,視頻解碼器30可使用在第二子集的解碼期間存儲(chǔ)的統(tǒng)計(jì)來更新概率模型,且使用經(jīng)更新的概率模型來解碼第三子集206。此外,視頻解碼器30可執(zhí)行相同過程來解碼第四子集208。
[0132]在一些實(shí)例中,代替于等待更新概率模型直到特定子集的所有二進(jìn)位已經(jīng)譯碼為止,視頻解碼器30可在每一子集的每一譯碼遍次之后更新概率。在此實(shí)例中,視頻解碼器30可使子集內(nèi)的一個(gè)遍次的概率模型的更新過程與子集的其它遍次并行化。舉例來說,視頻譯碼器可在子集的另一譯碼遍次期間對(duì)系數(shù)層級(jí)的二進(jìn)位I進(jìn)行譯碼的同時(shí)更新變換系數(shù)的子集的有效性信息的二進(jìn)位的概率。在此實(shí)例中,一個(gè)遍次的上下文不能用于對(duì)子集內(nèi)的其它遍次進(jìn)行譯碼。
[0133]在其它實(shí)例中,視頻解碼器30可在對(duì)子集的預(yù)定數(shù)目的二進(jìn)位進(jìn)行譯碼之后更新概率。舉例來說,視頻解碼器30可在對(duì)變換系數(shù)層級(jí)進(jìn)行譯碼之前對(duì)有效性圖進(jìn)行譯碼。在此實(shí)例中,視頻解碼器30可對(duì)有效性圖解碼且在對(duì)有效性圖解碼之后更新概率。視頻解碼器30可接著解碼與變換系數(shù)相關(guān)聯(lián)的剩余信息(例如,正負(fù)號(hào)、層級(jí)等)。在其中視頻解碼器30解碼last X和last_y語法元素兩者的實(shí)例中,視頻解碼器30可在對(duì)最后有效系數(shù)的last_x和last_y兩者解碼之后更新概率,或可在解碼last_x和last_y的每一者之后更新概率。
[0134]以與參看圖6A描述類似的方式,視頻解碼器30可以掃描次序?qū)D6B的塊210劃分為子集212、214、216和218。即,在圖6B所示的實(shí)例中,第一子集212包含呈掃描次序的第一 16個(gè)變換系數(shù),第二子集214包含呈掃描次序的接下來16個(gè)變換系數(shù),第三子集216包含呈掃描次序的接下來16個(gè)變換系數(shù),且第四子集218包含呈掃描次序的最終16個(gè)變換系數(shù)。視頻解碼器30可接著執(zhí)行如參看圖6A描述的類似概率模型更新過程。
[0135]雖然圖6A和6B所示的實(shí)例大體說明對(duì)角掃描模式,如上文參看圖5A和5B所述,但可使用多種其它掃描模式,例如鋸齒狀模式、自適應(yīng)掃描次序、水平模式、垂直模式等。
[0136]另外,雖然圖6A和6B所示的實(shí)例說明具有包含16個(gè)變換系數(shù)的子集的變換系數(shù)的8x8塊,但應(yīng)理解,本發(fā)明的技術(shù)可應(yīng)用于其它大小的塊以及具有任何數(shù)目的變換系數(shù)的子集。舉例來說,子集可為變換單元(TU)的n個(gè)變換系數(shù)的任何集合,其中n為小于TU的變換系數(shù)的數(shù)目的某一數(shù)目。在出于說明的目的的其它實(shí)例中,變換系數(shù)的32x32塊可劃分為32個(gè)子集,每一子集具有32個(gè)變換系數(shù),或變換系數(shù)的8x8塊可劃分為兩個(gè)子集,每一子集具有32個(gè)變換系數(shù)。其它實(shí)例也是可能的。
[0137]舉例來說,子集可包含呈任何連續(xù)掃描次序(例如,水平、垂直、對(duì)角、自適應(yīng),或某一其它掃描次序)的16個(gè)連續(xù)系數(shù)。
[0138]圖7A和7B大體說明根據(jù)本發(fā)明的方面將與視頻數(shù)據(jù)塊相關(guān)聯(lián)的變換系數(shù)塊以子塊的形式劃分為子集。雖然圖7A和7B是相對(duì)于視頻解碼器30(圖1和3)描述,但應(yīng)理解,本發(fā)明的技術(shù)可由多種其它視頻譯碼器實(shí)行,包含視頻編碼器20(圖1和2)、其它處理器、處理單元、基于硬件的譯碼單元(例如,編碼器/解碼器(CODEC))等。
[0139]參看圖7A,根據(jù)本發(fā)明的方面,視頻解碼器30可在對(duì)塊220進(jìn)行解碼的同時(shí)將塊220劃分為子塊222A、222B、222C和222D (統(tǒng)稱為子塊222)。在圖7A所示的實(shí)例中,第一子塊222k包含定位在塊220的左上角的變換系數(shù)的4x4塊,第二子塊222B包含定位在塊220的左下角的變換系數(shù)的4x4塊,第三子塊222C包含定位在塊220的右上角的變換系數(shù)的4x4塊,且第四子塊222D包含定位在塊220的右下角的變換系數(shù)的4x4塊。
[0140]在一些實(shí)例中,視頻解碼器30可使用統(tǒng)一掃描來掃描子塊222的變換系數(shù)。舉例來說,視頻解碼器30可使用圖7A所示的對(duì)角掃描來掃描有效性信息(例如,有效性圖)和系數(shù)層級(jí)。在其它實(shí)例中,視頻解碼器30可使用逆掃描或具有其它定向的掃描來掃描變換系數(shù)的分量(例如,有效性、正負(fù)號(hào)、層級(jí)等)。舉例來說,視頻解碼器30可通過使用前向鋸齒狀掃描將每一正方形(或矩形)8x8塊和更大塊的變換系數(shù)層級(jí)圖的絕對(duì)值映射到4x4子塊的經(jīng)排序集合(例如,向量)上。視頻解碼器30可接著以逆鋸齒狀掃描處理每一 4x4子塊內(nèi)部的變換系數(shù)層級(jí)以產(chǎn)生變換系數(shù)層級(jí)的向量。
[0141]在一些實(shí)例中,為了對(duì)子塊222進(jìn)行譯碼,視頻解碼器30可執(zhí)行第一遍次以對(duì)有效性信息進(jìn)行譯碼。視頻解碼器30可接著執(zhí)行用以對(duì)變換系數(shù)層級(jí)的二進(jìn)位I解碼的另一遍次、用以對(duì)變換系數(shù)層級(jí)的剩余二進(jìn)位解碼的另一遍次,以及用以對(duì)變換系數(shù)層級(jí)的正負(fù)號(hào)解碼的另一遍次。在完成子塊222中的一者后,視頻解碼器30可即刻執(zhí)行下一子塊的解碼遍次直到塊220已完全解碼為止。在其它實(shí)例中,可實(shí)施替代數(shù)目的譯碼遍次。
[0142]根據(jù)本發(fā)明的方面,視頻解碼器30可將與上下文自適應(yīng)譯碼過程相關(guān)聯(lián)的概率更新與子塊222聯(lián)系。舉例來說,在塊220的解碼期間,視頻解碼器30可初始使用概率模型的第一集合解碼子塊222A。概率模型的第一集合可不在對(duì)子塊222k進(jìn)行解碼期間更新,使得視頻解碼器30使用概率模型的第一集合解碼整個(gè)子塊222A。另外,視頻解碼器30可收集并存儲(chǔ)與在對(duì)子塊222A進(jìn)行解碼的同時(shí)應(yīng)用的概率模型的第一集合相關(guān)聯(lián)的統(tǒng)計(jì)(例如,上下文的狀態(tài))。
[0143]根據(jù)本發(fā)明的方面,在對(duì)子塊222k進(jìn)行譯碼之后,視頻解碼器30可使用所存儲(chǔ)的概率統(tǒng)計(jì)更新概率模型的第一集合。視頻解碼器30可接著使用此經(jīng)更新的概率模型的第二集合來對(duì)變換系數(shù)的第二子塊222B解碼。視頻解碼器30可以此方式繼續(xù)解碼塊220直到塊220已經(jīng)解碼為止。即,在對(duì)第二子塊222B解碼之后,視頻解碼器30可使用在第二子塊的解碼期間存儲(chǔ)的統(tǒng)計(jì)來更新概率模型,且使用經(jīng)更新的概率模型來解碼第三子塊222C。此外,視頻解碼器30可執(zhí)行相同過程來解碼第四子塊222D。
[0144]在一些實(shí)例中,代替于等待更新概率模型直到特定子集的所有二進(jìn)位已經(jīng)譯碼為止,視頻解碼器30可在每一子集的每一譯碼遍次之后更新概率。在此實(shí)例中,視頻解碼器30可使子集內(nèi)的一個(gè)遍次的概率模型的更新過程與子集的其它遍次并行化。
[0145]在其它實(shí)例中,視頻解碼器30可在對(duì)子集的預(yù)定數(shù)目的二進(jìn)位進(jìn)行譯碼之后更新概率。舉例來說,視頻解碼器30可在對(duì)變換系數(shù)層級(jí)進(jìn)行譯碼之前對(duì)有效性圖進(jìn)行譯碼。在此實(shí)例中,視頻解碼器30可對(duì)有效性圖解碼且在對(duì)有效性圖進(jìn)行譯碼之后更新概率。視頻解碼器30可接著解碼與變換系數(shù)相關(guān)聯(lián)的剩余信息(例如,正負(fù)號(hào)、層級(jí)等)。在其中視頻解碼器30解碼last_x和法元素兩者的實(shí)例中,視頻解碼器30可在對(duì)最后有效系數(shù)的last_x和last_y兩者解碼之后更新概率,或可在解碼last_x和last_y的每一者之后更新概率。
[0146]以與參看圖7A描述類似的方式,視頻解碼器30可在對(duì)塊220進(jìn)行解碼的同時(shí)將圖7B的塊224劃分為子塊226A、226B、226C和226D。在圖7B所示的實(shí)例中,第一子塊226A包含定位在塊224的右下角的變換系數(shù)的4x4塊,第二子塊226B包含定位在塊224的右上角的變換系數(shù)的4x4塊,第三子塊226C包含定位在塊224的左下角的變換系數(shù)的4x4塊,且第四子塊226D包含定位在塊224的左上角的變換系數(shù)的4x4塊。
[0147]為促進(jìn)圖7B所示的逆掃描(相對(duì)于圖7A),在一些實(shí)例中,視頻解碼器30可首先識(shí)別塊224的最后有效系數(shù)。在識(shí)別最后有效系數(shù)之后,視頻譯碼器30可應(yīng)用圖7B所示的掃描,且可接著執(zhí)行如參看圖7A描述的類似的概率模型更新過程。
[0148]雖然圖7A和7B所示的實(shí)例大體說明對(duì)角掃描模式,如上文參看圖5A和5B所述,但可使用多種其它掃描模式,例如鋸齒狀模式、自適應(yīng)掃描次序、水平模式、垂直模式等。
[0149]另外,雖然圖7A和7B所示的實(shí)例說明具有4x4子塊的變換系數(shù)的8x8塊,但應(yīng)理解,本發(fā)明的技術(shù)可應(yīng)用于其它大小的塊以及其它大小的子塊。舉例來說,子塊可包含變換單元(TU)的變換系數(shù)的任何n X n塊,其中n X n小于TU的大小。另外,如圖7A和7B所示的相等大小的子塊可對(duì)實(shí)現(xiàn)硬件效率提供某一幫助(例如,硬件可經(jīng)優(yōu)化以與靜態(tài)子塊大小協(xié)作)。然而,在其它實(shí)例中,本發(fā)明的技術(shù)可應(yīng)用于具有不同大小的子塊。
[0150]此外,圖7A和7B說明正以大體鋸齒狀模式掃描的子塊222和子塊226。S卩,在圖7A所示的實(shí)例中,子塊222A的掃描之后是子塊222B的掃描,再之后是子塊222C和222D的掃描。在圖7B所示的實(shí)例中,子塊226A的掃描之后是子塊226B的掃描,再之后是子塊226C和226D的掃描。然而,應(yīng)理解,圖7A和7B僅出于實(shí)例的目的而提供。即,在其它實(shí)例中,子塊222和子塊226可以不同次序掃描。在出于說明的目的的實(shí)例中,參看圖7A,子塊222A的掃描之后可為子塊222C或子塊222D。[0151]另外,子塊222或226中的一者以上可在子塊222或226本身正掃描之前完全譯碼。即,在對(duì)子塊222和226進(jìn)行譯碼之后,子塊本身可根據(jù)特定掃描次序掃描。在一些實(shí)例中,子塊222或226可經(jīng)對(duì)角掃描,但也可使用例如鋸齒狀、水平和垂直等其它掃描。用于在子塊內(nèi)掃描以及用于掃描子塊本身的特定掃描可取決于用于產(chǎn)生變換系數(shù)的殘余數(shù)據(jù)的幀內(nèi)模式。
[0152]圖8大體說明使用上下文自適應(yīng)譯碼技術(shù)(例如,CABAC)對(duì)有效性圖進(jìn)行譯碼。雖然圖8大體相對(duì)于視頻解碼器30(圖1和3)描述,但應(yīng)理解,本發(fā)明的技術(shù)可由多種其它視頻譯碼器實(shí)行,包含視頻編碼器20(圖1和2)、其它處理器、處理單元、基于硬件的譯碼單元(例如,編碼器/解碼器(CODEC))等。
[0153]根據(jù)圖8所示的實(shí)例,視頻解碼器30初始選擇用于解碼二進(jìn)制化變換系數(shù)的特定二進(jìn)位的上下文(240)。如上所述,語法元素的二進(jìn)位的上下文可包含先前經(jīng)譯碼語法元素的相關(guān)二進(jìn)位的值。上下文可涉及例如對(duì)于與當(dāng)前正譯碼的符號(hào)相鄰的符號(hào)來說值為零還
是非零。
[0154]視頻解碼器30接著加載對(duì)應(yīng)于選定上下文的概率(例如,上下文的狀態(tài))(“上下文加載”(242))。即,視頻解碼器30確定與概率模型相關(guān)聯(lián)的上下文的狀態(tài)。視頻解碼器30接著使用經(jīng)加載概率解碼當(dāng)前二進(jìn)位(“二進(jìn)位譯碼”(244))。根據(jù)圖8所示的實(shí)例,視頻解碼器30以串行方式(例如,逐二進(jìn)位為基礎(chǔ))更新算術(shù)譯碼器的范圍。因此,在對(duì)特定二進(jìn)位進(jìn)行譯碼之后,視頻解碼器30接著以特定二進(jìn)位的值更新算術(shù)譯碼器的范圍(“范圍更新”(246))。
[0155]圖8所示的范圍更新(246)在解碼過程中引入串行相依性。即,隨后的二進(jìn)位具有對(duì)操作“二進(jìn)位解碼”(244)的串行相依性。即,“二進(jìn)位解碼”需要在解碼隨后的二進(jìn)位之前完成。另外,視頻解碼器30基于經(jīng)解碼二進(jìn)位更新概率(“關(guān)于當(dāng)前狀態(tài)的上下文更新”(248))。在圖8所示的實(shí)例中,視頻解碼器30使用經(jīng)更新上下文解碼下一二進(jìn)位(“上下文更新”(250))。因此,隨后的二進(jìn)位也具有對(duì)于操作“關(guān)于當(dāng)前狀態(tài)的上下文更新”的串行相依性。即,“關(guān)于當(dāng)前狀態(tài)的上下文更新”(248)步驟需要在解碼隨后的二進(jìn)位之前完成。視頻解碼器30以此方式繼續(xù)直到特定塊的所有二進(jìn)位已經(jīng)譯碼為止。視頻解碼器30接著移動(dòng)到下一視頻數(shù)據(jù)塊(“塊回路”(252))。
[0156]在出于說明的目的的實(shí)例中,視頻解碼器30可使用同一概率模型(例如,概率模型A)連續(xù)地解碼視頻數(shù)據(jù)塊的二進(jìn)位序列(例如,bin(0)、bin(l)、...bin(n))。換句話說,針對(duì)二進(jìn)位導(dǎo)出的上下文(例如,使用上下文索引ctx(0)、ctx(I)、...ctx(n)指示的)可各自對(duì)應(yīng)于用于對(duì)相應(yīng)二進(jìn)位譯碼的同一概率模型。在此實(shí)例中,在對(duì)二進(jìn)位中的給定一者解碼之后,視頻解碼器30必須在概率模型可用于解碼任何后續(xù)二進(jìn)位之前基于當(dāng)前二進(jìn)位的值更新概率模型(步驟248)。更新概率模型允許所述模型反映使用具有給定值的模型譯碼的二進(jìn)位的最當(dāng)前概率。如此,使用在先前解碼循環(huán)(即,先前二進(jìn)位的解碼)完成之后更新的概率模型解碼視頻數(shù)據(jù)塊的特定二進(jìn)位可在連續(xù)譯碼循環(huán)之間產(chǎn)生延遲。特定來說,概率模型不能容易地用于在解碼先前二進(jìn)位之后立即對(duì)特定二進(jìn)位進(jìn)行譯碼。因此,二進(jìn)位序列的譯碼可能不如使用其它方法解碼序列那樣成流線型。
[0157]因此,“范圍更新”和“上下文更新”步驟包含編碼器和解碼器兩者處的反饋回路。此類反饋回路可產(chǎn)生計(jì)算瓶頸,因?yàn)榭赡軞w因于反饋回路中的相依性而難以增加處理量。即,直到來自先前二進(jìn)位的概率模型已經(jīng)更新才可處理一個(gè)二進(jìn)位。根據(jù)如當(dāng)前提議的HEVC,可以高頻率連續(xù)(逐二進(jìn)位)調(diào)用同一上下文索引。在一實(shí)例中,可表示經(jīng)譯碼的總二進(jìn)位的25%到35%的有效性旗標(biāo)譯碼的上下文可經(jīng)連續(xù)調(diào)用。反復(fù)調(diào)用同一上下文且等待在每一二進(jìn)位之后更新模型可產(chǎn)生視頻解碼器30的處理量的瓶頸。
[0158]在一些實(shí)例中,為避免此瓶頸,視頻解碼器30可存儲(chǔ)某些統(tǒng)計(jì)(例如,上下文的狀態(tài))且在對(duì)整個(gè)視頻數(shù)據(jù)塊進(jìn)行譯碼之后更新一個(gè)或一個(gè)以上上下文。以此方式,隨后的塊使用如當(dāng)前塊更新的概率,且與更新上下文相關(guān)聯(lián)的延遲每個(gè)塊僅發(fā)生一次。然而,總譯碼性能可衰減,因?yàn)楦怕什⒎侵鸲M(jìn)位更新,且可能因此不太準(zhǔn)確。
[0159]如上所述,雖然相對(duì)于以視頻解碼器30解碼數(shù)據(jù)而描述,但與如圖8中描述的技術(shù)類似或相同的技術(shù)可以另一視頻譯碼器(例如,視頻編碼器20)執(zhí)行。
[0160]圖9大體說明根據(jù)本發(fā)明的方面其中可在對(duì)子集進(jìn)行譯碼之后更新上下文的經(jīng)修改上下文自適應(yīng)譯碼過程。雖然圖9大體相對(duì)于視頻解碼器30(圖1和3)描述,但應(yīng)理解,本發(fā)明的技術(shù)可由多種其它視頻譯碼器(包含視頻編碼器20(圖1和2))、其它處理器、處理單元、基于硬件的譯碼單元(例如,編碼器/解碼器(CODEC))等實(shí)行。
[0161]在圖9所示的實(shí)例中,視頻解碼器30首先將所有相關(guān)上下文的當(dāng)前狀態(tài)存儲(chǔ)到存儲(chǔ)器(280)。作為一實(shí)例,對(duì)于變換系數(shù)譯碼,將僅存儲(chǔ)變換系數(shù)譯碼中使用的上下文的狀態(tài)。視頻解碼器30接著選擇用于解碼經(jīng)二進(jìn)制化變換系數(shù)的特定二進(jìn)位的上下文(282)。視頻解碼器30接著加載對(duì)應(yīng)于選定上下文的概率(例如,上下文的狀態(tài))(“上下文加載”(284))。視頻解碼器30接著使用經(jīng)加載概率解碼當(dāng)前二進(jìn)位(“二進(jìn)位譯碼”(286))。視頻解碼器30還逐二進(jìn)位更新算術(shù)譯碼器的范圍(“范圍更新”(288))。
[0162]根據(jù)本發(fā)明的方面,代替于更新用于對(duì)下一二進(jìn)位進(jìn)行譯碼的上下文(如例如圖8所示),視頻解碼器30可存儲(chǔ)與在二進(jìn)位的譯碼期間使用的上下文相關(guān)聯(lián)的概率的概率統(tǒng)計(jì)(290)。即,視頻解碼器30可存儲(chǔ)基于經(jīng)譯碼二進(jìn)位的上下文的經(jīng)更新狀態(tài)。因此,用于對(duì)下一二進(jìn)位進(jìn)行譯碼的概率不變,且不存在對(duì)塊回路內(nèi)的經(jīng)更新概率的相依性。實(shí)際上,視頻解碼器30繼續(xù)對(duì)子集的所有二進(jìn)位進(jìn)行譯碼(“子集回路”(292))
[0163]在子集的解碼之后,根據(jù)本發(fā)明的方面,視頻解碼器30可將所存儲(chǔ)的上下文設(shè)定為用于對(duì)下一子集進(jìn)行譯碼的當(dāng)前上下文(294)。即,視頻解碼器30可基于在先前子集的解碼期間收集的所存儲(chǔ)的概率統(tǒng)計(jì)更新一個(gè)或一個(gè)以上概率模型。因此,視頻解碼器30可使用經(jīng)更新的概率解碼隨后的子集。由于更新和存儲(chǔ)操作是在子集回路以外執(zhí)行,所以所述操作不會(huì)在每一二進(jìn)位之后引起延遲。實(shí)際上,與更新上下文相關(guān)聯(lián)的延遲每個(gè)子集僅發(fā)生一次。在圖9所示的實(shí)例中,用于存儲(chǔ)在塊的解碼期間的上下文狀態(tài)更新所需的存儲(chǔ)器可等于正解碼的二進(jìn)位的上下文大小。舉例來說,如果視頻解碼器正解碼與視頻數(shù)據(jù)塊相關(guān)聯(lián)的變換系數(shù),那么變換系數(shù)譯碼期間使用的上下文可需要存儲(chǔ)。
[0164]如上所述,雖然相對(duì)于以視頻解碼器30解碼數(shù)據(jù)而描述,但與如圖9中描述的技術(shù)類似或相同的技術(shù)可以另一視頻譯碼器(例如,視頻編碼器20)執(zhí)行。
[0165]圖10是說明根據(jù)本發(fā)明的方面對(duì)視頻數(shù)據(jù)塊進(jìn)行熵譯碼的實(shí)例技術(shù)的流程圖。圖10所示的實(shí)例大體描述為由視頻譯碼器執(zhí)行。即,舉例來說,在其中視頻譯碼器為視頻編碼器的實(shí)例中,所述編碼器可使用概率模型對(duì)目標(biāo)符號(hào)進(jìn)行譯碼。在其中視頻譯碼器為視頻解碼器的實(shí)例中,所述解碼器可使用概率模型對(duì)目標(biāo)符號(hào)進(jìn)行剖析。因此,應(yīng)理解,相對(duì)于圖10展示和描述的技術(shù)可由視頻編碼器20 (圖1和2)、視頻解碼器30 (圖1和3),或其它處理器、處理單元、基于硬件的譯碼單元(例如,編碼器/解碼器(CODEC))等多種其它處理器實(shí)行。
[0166]在圖10所示的實(shí)例中,視頻譯碼器以一個(gè)或一個(gè)以上概率模型使用上下文自適應(yīng)譯碼對(duì)變換系數(shù)的第一子集進(jìn)行譯碼(302)。舉例來說,視頻譯碼器可對(duì)變換系數(shù)的第一子集進(jìn)行CABAC譯碼。如上所述,第一子集可包含呈掃描次序的預(yù)定數(shù)目的變換系數(shù),或可包含變換系數(shù)的子塊。因此,視頻數(shù)據(jù)塊可通常包含n / m個(gè)子集,其中n表示變換系數(shù)的數(shù)目,且m表示每一子集中變換系數(shù)的數(shù)目。
[0167]在對(duì)變換系數(shù)的第一子集進(jìn)行譯碼的同時(shí),視頻譯碼器可存儲(chǔ)與用于對(duì)第一子集進(jìn)行譯碼的概率模型相關(guān)聯(lián)的概率模型統(tǒng)計(jì)(302)。舉例來說,視頻譯碼器可存儲(chǔ)在對(duì)第一子集的每一二進(jìn)位進(jìn)行譯碼之后上下文的狀態(tài)。上下文的狀態(tài)可指示基于正譯碼的二進(jìn)位的值的特定概率。視頻譯碼器還可存儲(chǔ)用于產(chǎn)生概率的實(shí)際二進(jìn)位值。
[0168]接著,在對(duì)第一子集的最終系數(shù)進(jìn)行譯碼之后,視頻譯碼器可基于所存儲(chǔ)的概率模型統(tǒng)計(jì)更新概率模型(304)。視頻譯碼器可接著使用經(jīng)更新的概率模型對(duì)變換系數(shù)的第二子集進(jìn)行譯碼(306)。應(yīng)理解,相對(duì)于圖10描述的技術(shù)可針對(duì)變換系數(shù)的二進(jìn)位的子集執(zhí)行。即,子集的一些二進(jìn)位不能使用上下文自適應(yīng)譯碼來譯碼,而是在不更新概率的情況下以繞過模式譯碼。
[0169]圖10中描述的技術(shù)可在增加的處理量與準(zhǔn)確的概率之間找到平衡。舉例來說,圖10中描述的技術(shù)可增強(qiáng)每一子集的并行化(例如,允許并行地對(duì)多個(gè)二進(jìn)位進(jìn)行譯碼),同時(shí)還使用針對(duì)后續(xù)經(jīng)譯碼的子集的更準(zhǔn)確的概率。
[0170]還應(yīng)理解,相對(duì)于圖10展示和描述的步驟僅作為一個(gè)實(shí)例提供。即,圖10的方法的步驟不需要一定以圖10所示的次序執(zhí)行,且可執(zhí)行較少、額外或替代步驟。
[0171]圖11是說明根據(jù)本發(fā)明的方面使用延遲狀態(tài)更新上下文自適應(yīng)熵譯碼對(duì)二進(jìn)位序列320進(jìn)行譯碼的概念圖。雖然圖11大體相對(duì)于視頻解碼器30(圖1和3)描述,但應(yīng)理解,本發(fā)明的技術(shù)可由多種其它視頻譯碼器(包含視頻編碼器20(圖1和2))、其它處理器、處理單元、基于硬件的譯碼單元(例如,編碼器/解碼器(CODEC))等實(shí)行。
[0172]如圖11所示,視頻解碼器30可對(duì)包含二進(jìn)位BIN(O)-BIN(N) 322-330的二進(jìn)位序列320進(jìn)行解碼。二進(jìn)位BIN(O)-BIN(N) 322-330各自與對(duì)應(yīng)于存儲(chǔ)在上下文緩沖器CTXB (0)-CTXB (N) 332-340中的概率模型的上下文索引相關(guān)聯(lián)。此處,上下文緩沖器CTXB (K)存儲(chǔ)對(duì)應(yīng)于在BIN(K-1)已經(jīng)解碼且對(duì)應(yīng)于BIN(K-1)的上下文狀態(tài)已更新之后的所有上下文的狀態(tài)。在圖11的實(shí)例中,作為初始化解碼循環(huán)的一部分,視頻解碼器30可使用存儲(chǔ)在上下文緩沖器CTXB(0)332中的初始概率模型(其可稱為初始“修訂”)解碼BIN(O) 322。
[0173]根據(jù)本發(fā)明的方面,視頻解碼器30可使用對(duì)應(yīng)于在其相應(yīng)譯碼循環(huán)之前至少兩個(gè)譯碼循環(huán)的概率模型修訂來解碼后續(xù)二進(jìn)位BIN(I) -BIN(N) 324-330,所述概率模型修訂可存儲(chǔ)在上下文緩沖器CTXB (0) -CTXB (N-1)中。舉例來說,視頻解碼器30可使用在相對(duì)于其當(dāng)前譯碼循環(huán)的先前譯碼循環(huán)之前發(fā)生的概率模型修訂來解碼BIN(I)-BIN(N) 324-330
的每一者。
[0174]在出于說明的目的的實(shí)例中,視頻解碼器30可使用存儲(chǔ)在CTXB (0)332中的初始概率模型修訂來解碼BIN(I) 324。此初始概率模型修訂在解碼BIN(O) 322之前存在或“發(fā)生”。同樣,視頻解碼器30可使用存儲(chǔ)在CTXB(I)中的概率模型修訂對(duì)BIN(2)326進(jìn)行譯碼,所述概率模型修訂在解碼BIN(I) 324之前存在。
[0175]雖然圖11所示的實(shí)例大體說明兩個(gè)循環(huán)狀態(tài)延遲,但本發(fā)明的技術(shù)通常適用于具有額外延遲循環(huán)的延遲狀態(tài)更新。舉例來說,根據(jù)本發(fā)明的方面,視頻解碼器30可使用存儲(chǔ)在CTXB (0)中的概率模型修訂(例如,三個(gè)循環(huán)延遲)對(duì)BIN (2) 326進(jìn)行譯碼。還可實(shí)施額外延遲狀態(tài)循環(huán)(例如,四個(gè)循環(huán)延遲、五個(gè)循環(huán)延遲等)。
[0176]在一些實(shí)例中,延遲循環(huán)的數(shù)目可對(duì)應(yīng)于待并行譯碼的二進(jìn)位的數(shù)目。舉例來說,圖11所示的實(shí)例可通常允許并行解碼兩個(gè)二進(jìn)位而不會(huì)引起與更新二進(jìn)位之間的概率相關(guān)聯(lián)的延遲。即,視頻解碼器30可并行解碼BIN(I) 324和BIN (2) 326,而不會(huì)引起與狀態(tài)更新相關(guān)聯(lián)的延遲,因?yàn)槎M(jìn)位使用已確定的概率模型修訂。延遲的額外循環(huán)可允許并行解碼更多二進(jìn)位。
[0177]相對(duì)于圖11展示和描述的技術(shù)可與任何上下文自適應(yīng)熵譯碼方法一起使用,包含CAVLC、CABAC、PIPE或另一上下文自適應(yīng)熵譯碼方法。此外,相對(duì)于圖11展示和描述的技術(shù)可通常應(yīng)用于其它數(shù)據(jù)的其它算術(shù)譯碼(例如,音頻數(shù)據(jù)或多種其它數(shù)據(jù))。舉例來說,圖11的技術(shù)可用于執(zhí)行延遲的概率更新。
[0178]作為一實(shí)例,出于說明的目的,假定正在編碼或解碼符號(hào)序列,例如symbol (0)、symbol (I)、...、symbol (n)等。所述符號(hào)可由視頻數(shù)據(jù)、音頻數(shù)據(jù)或任何其它數(shù)據(jù)產(chǎn)生。此外,假定每一符號(hào)可采取A、B、C和D表示的四個(gè)值。另外,假定不同上下文模型可與每一符號(hào)相關(guān)聯(lián),但出于說明的目的,所有符號(hào)使用同一上下文。另外,假定針對(duì)每一上下文維持單獨(dú)的概率模型(例如,針對(duì)A、B、C和D的概率)。通常,在對(duì)符號(hào)symbol (0)進(jìn)行譯碼之后,針對(duì)contexts)的概率模型將經(jīng)更新以考慮到symbol (0)的實(shí)際值。然而,如圖11所示,本發(fā)明的技術(shù)可包含實(shí)施概率模型更新延遲,使得概率模型更新過程被延遲直到正對(duì)一個(gè)或一個(gè)以上將來符號(hào)進(jìn)行譯碼為止。舉例來說,對(duì)于延遲1,經(jīng)更新模型(例如,在對(duì)符號(hào)symbol (0)進(jìn)行譯碼之后)可用于對(duì)符號(hào)symbol (2)進(jìn)行譯碼。在此實(shí)例中,緩沖器(類似于上文描述的上下文緩沖器CTXB)可用于存儲(chǔ)概率模型。
[0179]圖12說明根據(jù)本發(fā)明的方面使用延遲狀態(tài)更新上下文自適應(yīng)熵譯碼對(duì)二進(jìn)位序列進(jìn)行譯碼的實(shí)例技術(shù)。圖12所示的實(shí)例通常描述為由視頻譯碼器執(zhí)行。即,舉例來說,在其中視頻譯碼器為視頻編碼器的實(shí)例中,所述編碼器可使用概率模型對(duì)目標(biāo)符號(hào)(例如,二進(jìn)位)進(jìn)行譯碼。在其中視頻譯碼器為視頻解碼器的實(shí)例中,所述解碼器可使用概率模型對(duì)目標(biāo)符號(hào)(例如,二進(jìn)位)進(jìn)行解碼。因此,應(yīng)理解,相對(duì)于圖10展示和描述的技術(shù)可由視頻編碼器20(圖1和2)、視頻解碼器30(圖1和3),或多種其它處理器、處理單元、基于硬件的譯碼單元(例如,編碼器/解碼器(CODEC))等實(shí)行。
[0180]在圖12所示的實(shí)例中,視頻譯碼器初始確定在熵譯碼循環(huán)期間二進(jìn)位的上下文(360)。如上所述,熵譯碼循環(huán)通常包含確定對(duì)應(yīng)于用于對(duì)二進(jìn)位進(jìn)行譯碼的概率模型的上下文,以及應(yīng)用概率模型對(duì)二進(jìn)位進(jìn)行譯碼。
[0181]視頻譯碼器可接著基于上下文選擇概率模型,其中基于在當(dāng)前譯碼循環(huán)之前至少兩個(gè)循環(huán)譯碼的先前經(jīng)譯碼二進(jìn)位的值更新概率模型(362)。舉例來說,通常,二進(jìn)位(例如,bin(n))的上下文可使用對(duì)應(yīng)于概率模型的上下文索引(例如,ctx(n))來指示。然而,根據(jù)本發(fā)明的技術(shù),視頻譯碼器可使用在對(duì)塊的先前二進(jìn)位進(jìn)行譯碼之前(即,在對(duì)當(dāng)前二進(jìn)位進(jìn)行譯碼之前至少兩個(gè)譯碼迭代或循環(huán))更新的概率模型對(duì)視頻數(shù)據(jù)塊的特定二進(jìn)位進(jìn)行譯碼。因此,如下文更詳細(xì)描述,視頻譯碼器可避免當(dāng)使用概率模型對(duì)多個(gè)連續(xù)二進(jìn)位進(jìn)行譯碼時(shí)由于在使用所述模型對(duì)二進(jìn)位進(jìn)行譯碼之后更新所述模型引起的延遲。
[0182]在出于說明的目的的實(shí)例中,假定通過執(zhí)行CABAC過程連續(xù)對(duì)視頻數(shù)據(jù)塊的二進(jìn)位序列(例如,bin(0)、bin(l)、...、bin(n-l)和bin(n))進(jìn)行譯碼。假定,在此實(shí)例中,用于對(duì) bin (0)、bin (I)、...、bin (n-1)和 bin (n)進(jìn)行譯碼的上下文由 ctx (0)、ctx (I)、...、ctx (n-1)和ctx(n)表示。另外,假定對(duì)應(yīng)于所有上下文的概率模型(或狀態(tài))存儲(chǔ)在ctxBuffer (0)、ctxBuffer (I)、? ? ?、ctxBuffer (n-1)和 ctxBuffer (n)中。此處,上下文緩沖器ctxBuffer (K)存儲(chǔ)對(duì)應(yīng)于bin(K-1)已經(jīng)譯碼且對(duì)應(yīng)于bin(K-1)的上下文狀態(tài)已更新之后的所有上下文的狀態(tài)??尚枰褂么司彌_器來維持用于對(duì)二進(jìn)位進(jìn)行譯碼的概率模型的多個(gè)型式或“修訂”。概率模型可由初始狀態(tài)界定,且如先前描述可受先前經(jīng)譯碼二進(jìn)位(即,bin(0)、bin(l)、…> bin (n-1))影響。根據(jù)新興的HEVC和H.264標(biāo)準(zhǔn),執(zhí)行以下步驟對(duì)bin (n)進(jìn)行譯碼:
[0183]1.確定將用于對(duì)bin(n)進(jìn)行譯碼的上下文ctx(n)。
[0184]2.從上下文緩沖器ctxBuffer (n)檢索ctx (n)的概率模型。
[0185]3.使用概率模型編碼bin (n)。
[0186]4.基于bin(n)更新概率模型。經(jīng)更新的概率模型包含在ctxBuffer (n+1)中。
[0187]如上文展示的過程所說明,直到所有步驟完成,CABAC過程才可繼續(xù)以對(duì)下一二進(jìn)位(例如,bin(n+l))進(jìn)行譯碼,這可產(chǎn)生譯碼過程中的延遲。根據(jù)本發(fā)明的方面,視頻譯碼器可使用CtxBuffeHn-K)中包含的概率模型對(duì)bin(n)進(jìn)行譯碼。即,舉例來說,本發(fā)明的方面包含修改上文展示的過程`的步驟2,使得視頻譯碼器從上下文緩沖器CtxBuffeHn-K)檢索ctx(n)的概率模型。在其中“n”小于或等于“K”的實(shí)例中,視頻譯碼器可使用ctxBuffer (0)。
[0188]索引“K”可等于任何正非零整數(shù)值。舉例來說,對(duì)于“K”值“1”,上下文緩沖器ctxBuffer (n-1)包含在當(dāng)前譯碼循環(huán)之前兩個(gè)譯碼循環(huán)更新的概率模型。特定來說,包含在ctxBuffer (n_l)中的概率模型可對(duì)應(yīng)于包含在ctxBuffer (n_2)中的在對(duì)bin(n_2)進(jìn)行譯碼之后更新的概率模型。
[0189]根據(jù)本發(fā)明的方面,視頻譯碼器可使用初始概率模型對(duì)序列的第一和第二二進(jìn)位進(jìn)行譯碼。舉例來說,視頻譯碼器可使用CtxBufTer(O)對(duì)給定序列的bin(0)和bin(l)兩者進(jìn)行譯碼。Bin(O)可以此方式進(jìn)行譯碼,因?yàn)椴淮嬖谙惹案碌母怕誓P?。Bin(I)可以此方式進(jìn)行譯碼以避免可由于基于待包含在CtxBuffer(I)中的bin(0)的值更新包含在CtxBuffer(O)中的概率模型而引起的狀態(tài)更新延遲。因此,在一些實(shí)例中,可在對(duì)預(yù)定數(shù)目的二進(jìn)位進(jìn)行譯碼之后執(zhí)行步驟362。
[0190]在選擇概率模型(362)之后,視頻譯碼器可應(yīng)用概率模型對(duì)二進(jìn)位進(jìn)行譯碼(364)。視頻譯碼器可接著基于二進(jìn)位的值更新概率模型(366)。通過避免與上下文自適應(yīng)譯碼中的狀態(tài)更新相關(guān)聯(lián)的延遲,相對(duì)于圖12展示和描述的方面可實(shí)現(xiàn)當(dāng)在視頻譯碼中執(zhí)行CABAC過程時(shí)視頻數(shù)據(jù)塊的殘余變換系數(shù)的有效譯碼。另外,在其中使用上下文分割的實(shí)例中,可針對(duì)每一上下文分區(qū)應(yīng)用本發(fā)明的技術(shù)。[0191]如上文參看圖11所述,雖然上文相對(duì)于二進(jìn)制視頻譯碼描述,但應(yīng)理解,延遲狀態(tài)更新技術(shù)可通常應(yīng)用于其它數(shù)據(jù)的其它算術(shù)譯碼。另外,還應(yīng)理解,相對(duì)于圖12展示和描述的步驟僅提供作為一個(gè)實(shí)例。即,圖12的方法的步驟不需要一定以圖12所示的次序執(zhí)行,且可執(zhí)行更少、額外或替代步驟。
[0192]應(yīng)理解,依據(jù)實(shí)例,本文描述的方法的任一者的某些動(dòng)作或事件可以不同序列執(zhí)行,可添加、合并或一起刪除(例如,并非所有所描述的動(dòng)作或事件對(duì)于方法的實(shí)踐都是必需的)。此外,在某些實(shí)施例中,可同時(shí)(例如,通過多線程處理、中斷處理或多個(gè)處理器)而非順序地執(zhí)行動(dòng)作或事件。
[0193]在一個(gè)或一個(gè)以上實(shí)例中,所描述的功能可以硬件、軟件、固件或其任何組合來實(shí)施。如果實(shí)施在軟件中,那么所述功能可作為一個(gè)或一個(gè)以上指令或代碼存儲(chǔ)在計(jì)算機(jī)可讀媒體上或經(jīng)由計(jì)算機(jī)可讀媒體發(fā)射,且由基于硬件的處理單元執(zhí)行。計(jì)算機(jī)可讀媒體可包含對(duì)應(yīng)于例如數(shù)據(jù)存儲(chǔ)媒體等有形媒體的計(jì)算機(jī)可讀存儲(chǔ)媒體,或包含促進(jìn)將計(jì)算機(jī)程序從一處轉(zhuǎn)移到另一處(例如,根據(jù)通信協(xié)議)的任何媒體的通信媒體。
[0194]以此方式,計(jì)算機(jī)可讀媒體通??蓪?duì)應(yīng)于(I)非暫時(shí)性的有形計(jì)算機(jī)可讀存儲(chǔ)媒體,或(2)例如信號(hào)或載波等通信媒體。數(shù)據(jù)存儲(chǔ)媒體可為可由一個(gè)或一個(gè)以上計(jì)算機(jī)或一個(gè)或一個(gè)以上處理器存取以檢索指令、代碼和/或數(shù)據(jù)結(jié)構(gòu)以用于實(shí)施本發(fā)明中描述的技術(shù)的任何可用媒體。計(jì)算機(jī)程序產(chǎn)品可包含計(jì)算機(jī)可讀媒體。
[0195]借助實(shí)例而非限制,此類計(jì)算機(jī)可讀存儲(chǔ)媒體可包括RAM、ROM、EEPROM、CD-ROM或其它光盤存儲(chǔ)裝置、磁盤存儲(chǔ)裝置,或其它磁性存儲(chǔ)裝置、快閃存儲(chǔ)器,或可用于存儲(chǔ)指令或數(shù)據(jù)結(jié)構(gòu)的形式的所要程序代碼且可由計(jì)算機(jī)存取的任何其它媒體。同樣,恰當(dāng)?shù)貙⑷魏芜B接稱作計(jì)算機(jī)可讀媒體。舉例來說,如果使用同軸電纜、光纖電纜、雙絞線、數(shù)字訂戶線(DSL)或例如紅外線、無線電及微波的無線技術(shù)從網(wǎng)站、服務(wù)器或其它遠(yuǎn)程源傳輸指令,則同軸電纜、光纖電纜、雙絞線、DSL或例如紅外線、無線電及微波的無線技術(shù)包含于媒體的定義中。
[0196]然而,應(yīng)理解,計(jì)算機(jī)可讀存儲(chǔ)媒體和數(shù)據(jù)存儲(chǔ)媒體不包含連接、載波、信號(hào)或其它瞬時(shí)媒體,而是針對(duì)非瞬時(shí)有形存儲(chǔ)媒體。如本文中所使用,磁盤及光盤包含壓縮光盤(CD)、激光光盤、光學(xué)光盤、數(shù)字多功能光盤(DVD)、軟磁盤及藍(lán)光光盤,其中磁盤通常磁性地復(fù)制數(shù)據(jù),而光盤使用激光光學(xué)地復(fù)制數(shù)據(jù)。上文的組合也應(yīng)包含在計(jì)算機(jī)可讀媒體的范圍內(nèi)。
[0197]指令可由例如一個(gè)或一個(gè)以上數(shù)字信號(hào)處理器(DSP)、通用微處理器、專用集成電路(ASIC)、現(xiàn)場(chǎng)可編程邏輯陣列(FPGA),或其它等效集成或離散邏輯電路等一個(gè)或一個(gè)以上處理器執(zhí)行。因此,如本文中所使用的術(shù)語“處理器”可指上述結(jié)構(gòu)或適合于實(shí)施本文中所描述的技術(shù)的任一其它結(jié)構(gòu)中的任一者。另外,在一些方面中,本文描述的功能性可提供在經(jīng)配置用于編碼和解碼的專門硬件和/或軟件模塊內(nèi),或并入在組合式編解碼器中。并且,可將所述技術(shù)完全實(shí)施于一個(gè)或一個(gè)以上電路或邏輯元件中。
[0198]本發(fā)明的技術(shù)可實(shí)施在廣泛多種裝置或設(shè)備中,包含無線手持機(jī)、集成電路(IC)或IC組(例如,芯片組)。本發(fā)明中描述各個(gè)組件、模塊或單元以強(qiáng)調(diào)經(jīng)配置以執(zhí)行所揭示的技術(shù)的裝置的功能方面,且不一定要求由不同硬件單元實(shí)現(xiàn)。實(shí)際上,如上所述,各個(gè)單元可組合在編解碼器硬件單元中或由互操作硬件單元(包含如上所述的一個(gè)或一個(gè)以上處理器)結(jié)合適宜的軟件和/或固件的集合提供。
[0199]已描述本發(fā)明的各個(gè)方面。這些及其它方面均處于所附權(quán)利要求書的范圍內(nèi)。
【權(quán)利要求】
1.一種對(duì)數(shù)據(jù)進(jìn)行譯碼的方法,所述方法包括:根據(jù)上下文自適應(yīng)熵譯碼過程對(duì)二進(jìn)位序列進(jìn)行譯碼,其中用于對(duì)所述二進(jìn)位序列的至少一個(gè)二進(jìn)位進(jìn)行譯碼的當(dāng)前譯碼循環(huán)包含:確定所述二進(jìn)位的上下文;基于所述上下文選擇概率模型,其中所述概率模型是基于以所述上下文進(jìn)行譯碼且在所述當(dāng)前譯碼循環(huán)之前至少兩個(gè)譯碼循環(huán)進(jìn)行譯碼的先前二進(jìn)位的值而更新;應(yīng)用所述概率模型對(duì)所述二進(jìn)位進(jìn)行譯碼;以及基于所述二進(jìn)位的值更新所述概率模型。
2.根據(jù)權(quán)利要求1所述的方法,其中將所述概率模型存儲(chǔ)到上下文緩沖器,其中所述至少兩個(gè)譯碼循環(huán)包括K個(gè)循環(huán)的延遲,且其中選擇所述概率模型包括在所述當(dāng)前譯碼循環(huán)之前至少(K+1)個(gè)循環(huán)選擇存儲(chǔ)在所述上下文緩沖器中的所述概率模型。
3.根據(jù)權(quán)利要求1所述的方法,其中所述二進(jìn)位序列的兩個(gè)或兩個(gè)以上連續(xù)二進(jìn)位是各自使用其相應(yīng)譯碼循環(huán)進(jìn)行譯碼,且其中針對(duì)所述兩個(gè)或兩個(gè)以上二進(jìn)位中的每一者確定的相應(yīng)上下文包括同一上下文。
4.根據(jù)權(quán)利要求1所述的方法,其中所述二進(jìn)位序列的所述至少一個(gè)二進(jìn)位包括除所述序列的初始二進(jìn)位以外的所述序列的任何二進(jìn)位,以及在譯碼次序中在所述初始二進(jìn)位之后的二進(jìn)位,所述方法進(jìn)一步包括用于對(duì)所述初始二進(jìn)位和所述初始二進(jìn)位之后的所述二進(jìn)位中的每一者進(jìn)行譯碼的初始化譯碼循環(huán),包含:確定所述相應(yīng)二進(jìn)位的初始化上下文;基于所述初始化上下文選擇初始化概率模型;應(yīng)用基于所述初始化上下文的所述`初始化概率模型對(duì)所述相應(yīng)二進(jìn)位進(jìn)行譯碼;以及基于所述相應(yīng)二進(jìn)位的值更新所述初始化概率模型。
5.根據(jù)權(quán)利要求1所述的方法,其中根據(jù)所述上下文自適應(yīng)熵譯碼過程對(duì)所述二進(jìn)位序列進(jìn)行譯碼包括對(duì)有效性二進(jìn)位進(jìn)行譯碼,且所述方法進(jìn)一步包括使用非上下文自適應(yīng)譯碼過程對(duì)層級(jí)二進(jìn)位進(jìn)行譯碼。
6.根據(jù)權(quán)利要求1所述的方法,其中所述二進(jìn)位序列包括第一分區(qū),且所述方法進(jìn)一步包括與所述第一分區(qū)并行地對(duì)第二分區(qū)的第二二進(jìn)位序列進(jìn)行譯碼。
7.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括并行地對(duì)所述二進(jìn)位序列的至少兩個(gè)二進(jìn)位進(jìn)行譯碼。
8.根據(jù)權(quán)利要求1所述的方法,其中所述上下文自適應(yīng)熵譯碼過程包括上下文自適應(yīng)二進(jìn)制算術(shù)譯碼CABAC過程。
9.根據(jù)權(quán)利要求1所述的方法,其中對(duì)所述二進(jìn)位序列進(jìn)行譯碼包括編碼所述二進(jìn)位序列。
10.根據(jù)權(quán)利要求9所述的方法,其進(jìn)一步包括,在編碼所述二進(jìn)位序列之前:向視頻數(shù)據(jù)塊的一個(gè)或一個(gè)以上殘余值應(yīng)用變換以產(chǎn)生變換系數(shù);以及量化所述變換系數(shù)以產(chǎn)生經(jīng)量化變換系數(shù);以及將所述經(jīng)量化變換系數(shù)二進(jìn)制化以產(chǎn)生所述二進(jìn)位序列。
11.根據(jù)權(quán)利要求1所述的方法,其中對(duì)所述二進(jìn)位序列進(jìn)行譯碼包括解碼所述二進(jìn)位序列。
12.根據(jù)權(quán)利要求11所述的方法,其進(jìn)一步包括:對(duì)所述二進(jìn)位序列進(jìn)行逆量化以產(chǎn)生變換系數(shù);以及向所述經(jīng)逆量化二進(jìn)位序列應(yīng)用逆變換以產(chǎn)生視頻數(shù)據(jù)塊的殘余值。
13.一種用于對(duì)數(shù)據(jù)進(jìn)行譯碼的設(shè)備,所述設(shè)備包括一個(gè)或一個(gè)以上處理器,所述處理器經(jīng)配置以:根據(jù)上下文自適應(yīng)熵譯碼過程對(duì)二進(jìn)位序列譯碼,其中用于對(duì)所述二進(jìn)位序列的至少一個(gè)二進(jìn)位進(jìn)行譯碼的當(dāng)前譯碼循環(huán)包含:確定所述二進(jìn)位的上下文;基于所述上下文選擇概率模型,其中所述概率模型是基于以所述上下文進(jìn)行譯碼且在所述當(dāng)前譯碼循環(huán)之前至少兩個(gè)譯碼循環(huán)進(jìn)行譯碼的先前二進(jìn)位的值而更新;應(yīng)用所述概率模型對(duì)所述二進(jìn)位進(jìn)行譯碼;以及基于所述二進(jìn)位的值更新所述概率模型。
14.根據(jù)權(quán)利要求13所述的設(shè)備,其中所述設(shè)備進(jìn)一步包括存儲(chǔ)所述概率模型的上下文緩沖器,其中所述至少兩個(gè)譯碼循環(huán)包括K個(gè)循環(huán)的延遲,且其中選擇所述概率模型包括在所述當(dāng)前譯碼循環(huán)之前至少(K+1)個(gè)循環(huán)選擇存儲(chǔ)在所述上下文緩沖器中的所述概率模型。
15.根據(jù)權(quán)利要求13所述的設(shè)備,其中所述二進(jìn)位序列的兩個(gè)或兩個(gè)以上連續(xù)二進(jìn)位是各自使用其相應(yīng)譯碼循環(huán)進(jìn)行譯碼,且其中針對(duì)所述兩個(gè)或兩個(gè)以上二進(jìn)位中的每一者確定的相應(yīng)上下文包括同一上下文。
16.根據(jù)權(quán)利要求13所述的設(shè)備,其中所述二進(jìn)位序列的所述至少一個(gè)二進(jìn)位包括除所述序列的初始二進(jìn)位以外的所述序列的任何二進(jìn)位,以及在譯碼次序中在所述初始二進(jìn)位之后的二進(jìn)位,進(jìn)一步包括用于對(duì)所述初始二進(jìn)位和所述初始二進(jìn)位之后的所述二進(jìn)位中的每一者進(jìn)行譯碼的初始化譯碼循環(huán),包含:確定所述相應(yīng)二進(jìn)位的初始化上下文;基于所述初始化上下文選擇初始化概率模型;應(yīng)用基于所述初始化上下文的所述初始化概率模型對(duì)所述相應(yīng)二進(jìn)位進(jìn)行譯碼;以及基于所述相應(yīng)二進(jìn)位的值更新所述初始化概率模型。
17.根據(jù)權(quán)利要求13所述的設(shè)備,其中根據(jù)所述上下文自適應(yīng)熵譯碼過程對(duì)所述二進(jìn)位序列進(jìn)行譯碼包括對(duì)有效性二進(jìn)位進(jìn)行譯碼,且進(jìn)一步包括使用非上下文自適應(yīng)譯碼過程對(duì)層級(jí)二進(jìn)位進(jìn)行譯碼。
18.根據(jù)權(quán)利要求13所述的設(shè)備,其中所述二進(jìn)位序列包括第一分區(qū),且其中所述一個(gè)或一個(gè)以上處理器進(jìn)一步經(jīng)配置以與所述第一分區(qū)并行地對(duì)第二分區(qū)的第二二進(jìn)位序列進(jìn)行譯碼。
19.根據(jù)權(quán)利要求13所述的設(shè)備,其中所述一個(gè)或一個(gè)以上處理器進(jìn)一步經(jīng)配置以并行地對(duì)所述二進(jìn)位序列的至少兩個(gè)二進(jìn)位進(jìn)行譯碼。
20.根據(jù)權(quán)利要求13所述的設(shè)備,其中所述上下文自適應(yīng)熵譯碼過程包括上下文自適應(yīng)二進(jìn)制算術(shù)譯碼CABAC過程。
21.根據(jù)權(quán)利要求13所述的設(shè)備,其中所述一個(gè)或一個(gè)以上處理器經(jīng)配置以編碼所述二進(jìn)位序列。
22.根據(jù)權(quán)利要求21所述的設(shè)備,其中所述一個(gè)或一個(gè)以上處理器進(jìn)一步經(jīng)配置以,在編碼所述二進(jìn)位序列之前:向視頻數(shù)據(jù)塊的一個(gè)或一個(gè)以上殘余值應(yīng)用變換以產(chǎn)生變換系數(shù);以及量化所述變換系數(shù)以產(chǎn)生經(jīng)量化變換系數(shù);以及將所述經(jīng)量化變換系數(shù)二進(jìn)制化以產(chǎn)生所述二進(jìn)位序列。
23.根據(jù)權(quán)利要求13所述的設(shè)備,其中所述一個(gè)或一個(gè)以上處理器經(jīng)配置以解碼所述二進(jìn)位序列。
24.根據(jù)權(quán)利要求23所述的設(shè)備,其中所述一個(gè)或一個(gè)以上處理器進(jìn)一步經(jīng)配置以:對(duì)所述二進(jìn)位序列進(jìn)行逆量化以產(chǎn)生變換系數(shù);以及向所述經(jīng)逆量化二進(jìn)位序列應(yīng)用逆變換以產(chǎn)生視頻數(shù)據(jù)塊的殘余值。
25.一種用于對(duì)數(shù)據(jù)進(jìn)行譯碼的設(shè)備,所述設(shè)備包括:用于根據(jù)上下文自適應(yīng)熵譯碼過程對(duì)二進(jìn)位序列進(jìn)行譯碼的裝置,其中用于對(duì)所述二進(jìn)位序列的至少一個(gè)二進(jìn)位進(jìn)行譯碼的當(dāng)前譯碼循環(huán)包含:確定所述二進(jìn)位的上下文;基于所述上下文選擇概率模型,其中所述概率模型是基于以所述上下文進(jìn)行譯碼且在所述當(dāng)前譯碼循環(huán)之前至少兩個(gè)譯碼循環(huán)進(jìn)行譯碼的先前二進(jìn)位的值而更新;應(yīng)用所述概率模型對(duì)所述二進(jìn)位進(jìn)行譯碼;以及基于所述二進(jìn)位的值更新所述概率模型。
26.根據(jù)權(quán)利要求25所述的設(shè)備,其中所述設(shè)備進(jìn)一步包括用于存儲(chǔ)所述概率模型的裝置,其中所述至少兩個(gè)譯碼循環(huán)包括K個(gè)循環(huán)的延遲,且其中選擇所述概率模型包括在所述當(dāng)前譯碼循環(huán)之前至少(K+1)個(gè)循環(huán)選擇存儲(chǔ)在用于存儲(chǔ)所述概率模型的裝置中的所述概率模型。
27.根據(jù)權(quán)利要求25所述的設(shè)備,其中所述二進(jìn)位序列的兩個(gè)或兩個(gè)以上連續(xù)二進(jìn)位是各自使用其相應(yīng)譯碼循環(huán)進(jìn)行譯碼,且其中針對(duì)所述兩個(gè)或兩個(gè)以上二進(jìn)位中的每一者確定的相應(yīng)上下文包括同一上下文。
28.根據(jù)權(quán)利要求25所述的設(shè)備,其中所述二進(jìn)位序列的所述至少一個(gè)二進(jìn)位包括除所述序列的初始二進(jìn)位以外的所述序列的任何二進(jìn)位,以及在譯碼次序中在所述初始二進(jìn)位之后的二進(jìn)位,所述設(shè)備進(jìn)一步包括用于使用于對(duì)所述初始二進(jìn)位和所述初始二進(jìn)位之后的所述二進(jìn)位中的每一者進(jìn)行譯碼的譯碼循環(huán)初始化的裝置,包含:確定所述相應(yīng)二進(jìn)位的初始化上下文;基于所述初始化上下文選擇初始化概率模型;應(yīng)用基于所述初始化上下文的所述初始化概率模型對(duì)所述相應(yīng)二進(jìn)位進(jìn)行譯碼;以及基于所述相應(yīng)二進(jìn)位的值更新所述初始化概率模型。
29.根據(jù)權(quán)利要求25所述的設(shè)備,其中所述二進(jìn)位序列包括第一分區(qū),且其中所述用于譯碼的裝置進(jìn)一步經(jīng)配置以與所述第一分區(qū)并行地對(duì)第二分區(qū)的第二二進(jìn)位序列進(jìn)行譯碼。
30.根據(jù)權(quán)利要求25所述的設(shè)備,其中所述用于譯碼的裝置進(jìn)一步經(jīng)配置以并行地對(duì)所述二進(jìn)位序列的至少兩個(gè)二進(jìn)位進(jìn)行譯碼。
31.根據(jù)權(quán)利要求25所述的設(shè)備,其中所述上下文自適應(yīng)熵譯碼過程包括上下文自適應(yīng)二進(jìn)制算術(shù)譯碼CABAC過程。
32.—種上面存儲(chǔ)有指令的計(jì)算機(jī)可讀存儲(chǔ)媒體,所述指令當(dāng)執(zhí)行時(shí)致使一個(gè)或一個(gè)以上處理器:根據(jù)上下文自適應(yīng)熵譯碼過程對(duì)二進(jìn)位序列進(jìn)行譯碼,其中用于對(duì)所述二進(jìn)位序列的至少一個(gè)二進(jìn)位進(jìn)行譯碼的當(dāng)前譯碼循環(huán)包含:確定所述二進(jìn)位的上下文;基于所述上下文選擇概率模型,其中所述概率模型是基于以所述上下文進(jìn)行譯碼且在所述當(dāng)前譯碼循環(huán)之前至少兩個(gè)譯碼循環(huán)進(jìn)行譯碼的先前二進(jìn)位的值而更新;應(yīng)用所述概率模型對(duì)所述二進(jìn)位進(jìn)行譯碼;以及基于所述二進(jìn)位的值更新所述概率模型。
33.根據(jù)權(quán)利要求32所述的計(jì)算機(jī)可讀存儲(chǔ)媒體,其中所述指令進(jìn)一步致使所述一個(gè)或一個(gè)以上處理器將所述概率模型存儲(chǔ)到上下文緩沖器,其中所述至少兩個(gè)譯碼循環(huán)包括K個(gè)循環(huán)的延遲,且其中選擇所述概率模型包括在所述當(dāng)前譯碼循環(huán)之前至少(K+1)個(gè)循環(huán)選擇存儲(chǔ)在所述上下文緩沖器中的所述概率模型。
34.根據(jù)權(quán)利要求32所述的計(jì)算機(jī)可讀存儲(chǔ)媒體,其中所述二進(jìn)位序列的兩個(gè)或兩個(gè)以上連續(xù)二進(jìn)位是各自使用其相應(yīng)譯碼循環(huán)進(jìn)行譯碼,且其中針對(duì)所述兩個(gè)或兩個(gè)以上二進(jìn)位中的每一者確定的相應(yīng)上下文包括同一上下文。
35.根據(jù)權(quán)利要求32所述的計(jì)算機(jī)可讀存儲(chǔ)媒體,其中所述二進(jìn)位序列的所述至少一個(gè)二進(jìn)位包括除所述序列的初始二進(jìn)位以外的所述序列的任何二進(jìn)位,以及在譯碼次序中在所述初始二進(jìn)位之后的`二進(jìn)位,其中所述指令進(jìn)一步致使所述一個(gè)或一個(gè)以上處理器使用于對(duì)所述初始二進(jìn)位和所述初始二進(jìn)位之后的所述二進(jìn)位中的每一者進(jìn)行譯碼的譯碼循環(huán)初始化,包含:確定所述相應(yīng)二進(jìn)位的初始化上下文;基于所述初始化上下文選擇初始化概率模型;應(yīng)用基于所述初始化上下文的所述初始化概率模型對(duì)所述相應(yīng)二進(jìn)位進(jìn)行譯碼;以及基于所述相應(yīng)二進(jìn)位的值更新所述初始化概率模型。
36.根據(jù)權(quán)利要求32所述的計(jì)算機(jī)可讀存儲(chǔ)媒體,其中根據(jù)所述上下文自適應(yīng)熵譯碼過程對(duì)所述二進(jìn)位序列進(jìn)行譯碼包括對(duì)有效性二進(jìn)位進(jìn)行譯碼,且所述計(jì)算機(jī)可讀存儲(chǔ)媒體進(jìn)一步包括用以致使所述一個(gè)或一個(gè)以上處理器使用非上下文自適應(yīng)譯碼過程對(duì)層級(jí)二進(jìn)位進(jìn)行譯碼的指令。
37.根據(jù)權(quán)利要求32所述的計(jì)算機(jī)可讀存儲(chǔ)媒體,其中所述二進(jìn)位序列包括第一分區(qū),其中所述指令致使所述一個(gè)或一個(gè)以上處理器與所述第一分區(qū)并行地對(duì)第二分區(qū)的第二二進(jìn)位序列進(jìn)行譯碼。
38.根據(jù)權(quán)利要求32所述的計(jì)算機(jī)可讀存儲(chǔ)媒體,其中所述指令致使所述一個(gè)或一個(gè)以上處理器并行地對(duì)所述二進(jìn)位序列的至少兩個(gè)二進(jìn)位進(jìn)行譯碼。
39.根據(jù)權(quán)利要求32所述的計(jì)算機(jī)可讀存儲(chǔ)媒體,其中所述上下文自適應(yīng)熵譯碼過程包括上下文自適應(yīng)二進(jìn)制算術(shù)譯碼CABAC過程。
40.一種在視頻譯碼過程中對(duì)與殘余視頻數(shù)據(jù)相關(guān)聯(lián)的變換系數(shù)進(jìn)行譯碼的方法,所述方法包括:對(duì)變換系數(shù)的多個(gè)子集中的第一子集進(jìn)行譯碼,其中對(duì)所述第一子集進(jìn)行譯碼包括使用一個(gè)或一個(gè)以上概率模型對(duì)所述第一子集進(jìn)行上下文自適應(yīng)譯碼;在對(duì)變換系數(shù)的所述第一子集進(jìn)行譯碼的同時(shí)存儲(chǔ)與所述一個(gè)或一個(gè)以上概率模型相關(guān)聯(lián)的概率模型統(tǒng)計(jì);在對(duì)所述第一子集的最終系數(shù)進(jìn)行譯碼之后基于所述所存儲(chǔ)的概率模型統(tǒng)計(jì)更新所述概率模型;以及使用所述經(jīng)更新的一個(gè)或一個(gè)以上概率模型對(duì)所述變換系數(shù)的第二子集進(jìn)行譯碼。
41.根據(jù)權(quán)利要求40所述的方法,其進(jìn)一步包括:在對(duì)變換系數(shù)的所述第二子集進(jìn)行譯碼的同時(shí)存儲(chǔ)與所述一個(gè)或一個(gè)以上概率模型相關(guān)聯(lián)的第二概率模型統(tǒng)計(jì);在對(duì)所述第二子集的最終系數(shù)進(jìn)行譯碼之后基于所述所存儲(chǔ)的第二概率模型統(tǒng)計(jì)更新所述概率模型;以及使用來自所述第二子集的所述經(jīng)更新的概率模型對(duì)所述多個(gè)子集中的第三子集進(jìn)行譯碼。
42.根據(jù)權(quán)利要求40所述的方法,其中對(duì)所述第一子集進(jìn)行譯碼包括對(duì)與所述第一子集的所述變換系數(shù)相關(guān)聯(lián)的有效性圖進(jìn)行譯碼。
43.根據(jù)權(quán)利要求40所述的方法,其中所述子集包括變換系數(shù)的子塊,所述方法進(jìn)一步包括連續(xù)地對(duì)所述多個(gè)子集中的每一子集進(jìn)行譯碼。
44.根據(jù)權(quán)利要求40所述的方法,其中所述子集包括基于所述變換系數(shù)的掃描次序循序地掃描的子集,所述方法進(jìn)一步包括連續(xù)地對(duì)所述多個(gè)子集中的每一子集進(jìn)行譯碼。`
45.根據(jù)權(quán)利要求40所述的方法,其中:在第一掃描中對(duì)所述第一子集進(jìn)行譯碼包括在第一掃描中對(duì)與所述第一子集的所述變換系數(shù)相關(guān)聯(lián)的有效性圖進(jìn)行譯碼,以及在一個(gè)或一個(gè)以上額外掃描中對(duì)表示與所述第一子集的所述變換系數(shù)相關(guān)聯(lián)的層級(jí)信息的多個(gè)二進(jìn)位進(jìn)行譯碼;存儲(chǔ)概率模型統(tǒng)計(jì)包括在每一掃描期間存儲(chǔ)所述概率模型統(tǒng)計(jì);以及更新所述概率模型包括在每一掃描之后更新所述概率模型。
46.根據(jù)權(quán)利要求40所述的方法,其進(jìn)一步包括與所述多個(gè)子集中的至少一個(gè)其它子集并行地對(duì)所述第一子集進(jìn)行譯碼。
47.根據(jù)權(quán)利要求40所述的方法,其中對(duì)所述變換系數(shù)進(jìn)行譯碼包括編碼所述變換系數(shù)。
48.根據(jù)權(quán)利要求40所述的方法,其中對(duì)所述變換系數(shù)進(jìn)行譯碼包括解碼所述變換系數(shù)。
49.一種用于對(duì)與殘余視頻數(shù)據(jù)相關(guān)聯(lián)的變換系數(shù)進(jìn)行譯碼的設(shè)備,所述設(shè)備包括一個(gè)或一個(gè)以上處理器,所述一個(gè)或一個(gè)以上處理器經(jīng)配置以:對(duì)變換系數(shù)的多個(gè)子集中的第一子集進(jìn)行譯碼,其中對(duì)所述第一子集進(jìn)行譯碼包括使用一個(gè)或一個(gè)以上概率模型對(duì)所述第一子集進(jìn)行上下文自適應(yīng)譯碼;在對(duì)變換系數(shù)的所述第一子集進(jìn)行譯碼的同時(shí)存儲(chǔ)與所述一個(gè)或一個(gè)以上概率模型相關(guān)聯(lián)的概率模型統(tǒng)計(jì);在對(duì)所述第一子集的最終系數(shù)進(jìn)行譯碼之后基于所述所存儲(chǔ)的概率模型統(tǒng)計(jì)更新所述概率模型;以及使用所述經(jīng)更新的一個(gè)或一個(gè)以上概率模型對(duì)所述變換系數(shù)的第二子集進(jìn)行譯碼。
50.根據(jù)權(quán)利要求49所述的設(shè)備,其中所述一個(gè)或一個(gè)以上處理器進(jìn)一步經(jīng)配置以:在對(duì)變換系數(shù)的所述第二子集進(jìn)行譯碼的同時(shí)存儲(chǔ)與所述一個(gè)或一個(gè)以上概率模型相關(guān)聯(lián)的第二概率模型統(tǒng)計(jì);在對(duì)所述第二子集的最終系數(shù)進(jìn)行譯碼之后基于所述所存儲(chǔ)的第二概率模型統(tǒng)計(jì)更新所述概率模型;以及使用來自所述第二子集的所述經(jīng)更新的概率模型對(duì)所述多個(gè)子集中的第三子集進(jìn)行譯碼。
51.根據(jù)權(quán)利要求49所述的設(shè)備,其中為對(duì)所述第一子集進(jìn)行譯碼,所述一個(gè)或一個(gè)以上處理器經(jīng)配置以對(duì)與所述第一子集的所述變換系數(shù)相關(guān)聯(lián)的有效性圖進(jìn)行譯碼。
52.根據(jù)權(quán)利要求49所述的設(shè)備,其中所述子集包括變換系數(shù)的子塊,其中所述一個(gè)或一個(gè)以上處理器經(jīng)配置以連續(xù)地對(duì)所述多個(gè)子集中的每一子集進(jìn)行譯碼。
53.根據(jù)權(quán)利要求49所述的設(shè)備,其中所述子集包括基于所述變換系數(shù)的掃描次序循序地掃描的子集,其中所述一個(gè)或一個(gè)以上處理器經(jīng)配置以連續(xù)地對(duì)所述多個(gè)子集中的每一子集進(jìn)行譯碼。
54.根據(jù)權(quán)利要求49所述的設(shè)備,其中所述一個(gè)或一個(gè)以上處理器經(jīng)配置以:在第一掃描中對(duì)所述第一子集進(jìn)行譯碼包括在第一掃描中對(duì)與所述第一子集的所述變換系數(shù)相關(guān)聯(lián)的有效性圖進(jìn)行譯碼,以及在一個(gè)或一個(gè)以上額外掃描中對(duì)表示與所述第一子集的所述變換系數(shù)相關(guān)聯(lián)的層級(jí)信息的多個(gè)二進(jìn)位進(jìn)行譯碼;存儲(chǔ)概率模型統(tǒng)計(jì)包括在每一掃描期間存儲(chǔ)所述概率模型統(tǒng)計(jì);以及更新所述概率模型包括在每一掃描之后更新所述概率模型。
55.根據(jù)權(quán)利要求49所述的設(shè)備,其中所述一個(gè)或一個(gè)以上處理器經(jīng)配置以與所述多個(gè)子集中的至少一個(gè)其它子集并行地對(duì)所述第一子集進(jìn)行譯碼。
56.根據(jù)權(quán)利要求49所述的設(shè)備,其中所述一個(gè)或一個(gè)以上處理器包括視頻編碼器。
57.根據(jù)權(quán)利要求49所述的設(shè)備,其中所述一個(gè)或一個(gè)以上處理器包括視頻解碼器。
【文檔編號(hào)】H03M7/40GK103563381SQ201280026675
【公開日】2014年2月5日 申請(qǐng)日期:2012年6月1日 優(yōu)先權(quán)日:2011年6月3日
【發(fā)明者】霍埃爾·索賴·羅哈斯, 拉詹·拉克斯曼·喬希, 馬爾塔·卡切維奇 申請(qǐng)人:高通股份有限公司