欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

預(yù)測單元的靈活分割的制作方法

文檔序號(hào):11291317閱讀:333來源:國知局
預(yù)測單元的靈活分割的制造方法與工藝

本申請(qǐng)案要求2015年1月30日申請(qǐng)的第62/110,401號(hào)美國臨時(shí)申請(qǐng)案的權(quán)益,所述臨時(shí)申請(qǐng)案的全部內(nèi)容以全文引用的方式并入本文中。

本發(fā)明涉及視頻譯碼。



背景技術(shù):

數(shù)字視頻能力可以并入到多種多樣的裝置中,包含數(shù)字電視、數(shù)字直播系統(tǒng)、無線廣播系統(tǒng)、個(gè)人數(shù)字助理(pda)、筆記本計(jì)算機(jī)或臺(tái)式計(jì)算機(jī)、平板計(jì)算機(jī)、電子圖書閱讀器、數(shù)碼相機(jī)、數(shù)字記錄裝置、數(shù)字媒體播放器、視頻游戲裝置、視頻游戲控制臺(tái)、蜂窩式或衛(wèi)星無線電電話(所謂的“智能電話”)、視頻電話會(huì)議裝置、視頻流式傳輸裝置等等。數(shù)字視頻裝置實(shí)施視頻壓縮技術(shù),例如,在由mpeg-2、mpeg-4、itu-th.263、itu-th.264/mpeg-4第10部分高級(jí)視頻譯碼(avc)定義的標(biāo)準(zhǔn)、目前正在開發(fā)的高效率視頻譯碼(hevc)標(biāo)準(zhǔn)及此類標(biāo)準(zhǔn)的擴(kuò)展中所描述的視頻壓縮技術(shù)。視頻裝置可以通過實(shí)施此類視頻壓縮技術(shù)來更有效率地發(fā)射、接收、編碼、解碼和/或存儲(chǔ)數(shù)字視頻信息。

視頻壓縮技術(shù)執(zhí)行空間(圖片內(nèi))預(yù)測和/或時(shí)間(圖片間)預(yù)測來減少或去除視頻序列中固有的冗余。對(duì)于基于塊的視頻譯碼來說,視頻切片(即,視頻幀或視頻幀的一部分)可分割成視頻塊,視頻塊還可被稱作樹塊、譯碼單元(cu)、預(yù)測單元(pu)和/或譯碼節(jié)點(diǎn)。使用關(guān)于同一圖片中的相鄰塊中的參考樣本的空間預(yù)測對(duì)圖片的經(jīng)幀內(nèi)譯碼(i)切片中的視頻塊進(jìn)行編碼。圖片的經(jīng)幀間譯碼(p或b)切片中的視頻塊可使用相對(duì)于同一圖片中的相鄰塊中的參考樣本的空間預(yù)測或相對(duì)于其它參考圖片中的參考樣本的時(shí)間預(yù)測。空間或時(shí)間預(yù)測產(chǎn)生待譯碼塊的預(yù)測塊。殘余數(shù)據(jù)表示待譯碼原始?jí)K與預(yù)測塊之間的像素差。根據(jù)指向形成預(yù)測塊的參考樣本塊的運(yùn)動(dòng)向量和指示經(jīng)譯碼塊與預(yù)測塊之間的差的殘余數(shù)據(jù)對(duì)經(jīng)幀間譯碼塊進(jìn)行編碼。根據(jù)幀內(nèi)譯碼模式和殘余數(shù)據(jù)來對(duì)經(jīng)幀內(nèi)譯碼塊進(jìn)行編碼。為了進(jìn)一步壓縮,可將殘余數(shù)據(jù)從像素域變換到變換域,從而產(chǎn)生殘余變換系數(shù),所述殘余變換系數(shù)可接著進(jìn)行量化。



技術(shù)實(shí)現(xiàn)要素:

一般來說,本發(fā)明描述用于執(zhí)行視頻譯碼的技術(shù)。更具體地說,本發(fā)明描述用于促進(jìn)將編碼單元(cu)的預(yù)測單元(pu)靈活地劃分成兩個(gè)或兩個(gè)以上子pu的技術(shù)。

在一個(gè)實(shí)例中,用于對(duì)視頻數(shù)據(jù)進(jìn)行解碼的方法包含:從經(jīng)編碼視頻位流中對(duì)語法元素進(jìn)行解碼,所述語法元素指示在視頻數(shù)據(jù)的當(dāng)前cu的當(dāng)前pu的多個(gè)子pu中的一或多個(gè)子pu中的視頻數(shù)據(jù)的排的數(shù)目;針對(duì)多個(gè)子pu中的每一相應(yīng)的子pu,確定表示相應(yīng)的子pu和來自多個(gè)先前經(jīng)解碼視頻數(shù)據(jù)塊的相應(yīng)的預(yù)測符塊之間的位移的相應(yīng)的向量;以及基于相應(yīng)的視頻數(shù)據(jù)預(yù)測符塊,重構(gòu)多個(gè)子pu中的每一子pu。

在另一實(shí)例中,對(duì)視頻數(shù)據(jù)進(jìn)行編碼的方法包含:確定將視頻數(shù)據(jù)的當(dāng)前cu的當(dāng)前pu劃分成多個(gè)子pu;針對(duì)多個(gè)子pu中的每一相應(yīng)的子pu,確定表示相應(yīng)的子pu和來自多個(gè)先前經(jīng)解碼視頻數(shù)據(jù)塊的相應(yīng)的預(yù)測符塊之間的位移的相應(yīng)的向量;以及在經(jīng)編碼視頻位流中對(duì)語法元素進(jìn)行編碼,所述語法元素指示在多個(gè)子pu中的一或多個(gè)子pu中的視頻數(shù)據(jù)的排的數(shù)目。

在另一實(shí)例中,用于對(duì)視頻數(shù)據(jù)進(jìn)行編碼或解碼的裝置包含經(jīng)配置以存儲(chǔ)視頻數(shù)據(jù)的存儲(chǔ)器,以及一或多個(gè)處理器。在這個(gè)實(shí)例中,一或多個(gè)處理器經(jīng)配置以:從經(jīng)編碼視頻位流中對(duì)語法元素進(jìn)行編碼或解碼,所述語法元素指示在視頻數(shù)據(jù)的當(dāng)前cu的當(dāng)前pu的多個(gè)子pu中的一或多個(gè)子pu中的排的數(shù)目;針對(duì)多個(gè)子pu中的每一相應(yīng)的子pu,確定表示相應(yīng)的子pu和來自多個(gè)先前經(jīng)解碼視頻數(shù)據(jù)塊的相應(yīng)的預(yù)測符塊之間的位移的相應(yīng)的向量;以及基于相應(yīng)的視頻數(shù)據(jù)預(yù)測符塊,重構(gòu)多個(gè)子pu中的每一子pu。

在另一實(shí)例中,用于對(duì)視頻數(shù)據(jù)進(jìn)行編碼或解碼的裝置包含:用于從經(jīng)編碼視頻位流中對(duì)語法元素進(jìn)行編碼或解碼的裝置,所述語法元素指示在視頻數(shù)據(jù)的當(dāng)前cu的當(dāng)前pu的多個(gè)子pu中的一或多個(gè)子pu中的排的數(shù)目;用于針對(duì)多個(gè)子pu中的每一相應(yīng)的子pu,確定表示相應(yīng)的子pu和來自多個(gè)先前經(jīng)解碼視頻數(shù)據(jù)塊的相應(yīng)的預(yù)測符塊之間的位移的相應(yīng)的向量的裝置;以及用于基于相應(yīng)的視頻數(shù)據(jù)預(yù)測符塊,重構(gòu)多個(gè)子pu中的每一子pu的裝置。

在另一實(shí)例中,計(jì)算機(jī)可讀存儲(chǔ)媒體存儲(chǔ)指令,所述指令在經(jīng)執(zhí)行時(shí)使視頻編碼或解碼裝置的一或多個(gè)處理器進(jìn)行以下操作:從經(jīng)編碼視頻位流中對(duì)語法元素進(jìn)行編碼或解碼,所述語法元素指示在視頻數(shù)據(jù)的當(dāng)前cu的當(dāng)前pu的多個(gè)子pu中的一或多個(gè)子pu中的排的數(shù)目;針對(duì)多個(gè)子pu中的每一相應(yīng)的子pu,確定表示相應(yīng)的子pu和來自多個(gè)先前經(jīng)解碼視頻數(shù)據(jù)塊的相應(yīng)的預(yù)測符塊之間的位移的相應(yīng)的向量;以及基于相應(yīng)的視頻數(shù)據(jù)預(yù)測符塊,重構(gòu)多個(gè)子pu中的每一子pu。

在附圖和以下描述中闡述本發(fā)明的一或多個(gè)方面的細(xì)節(jié)。根據(jù)描述和圖式并根據(jù)權(quán)利要求書,將清楚本發(fā)明中所描述的技術(shù)的其它特征、目標(biāo)及優(yōu)點(diǎn)。

附圖說明

圖1是說明可利用本發(fā)明中描述的技術(shù)的實(shí)例視頻編碼和解碼系統(tǒng)的框圖。

圖2是說明可實(shí)施本發(fā)明中描述的技術(shù)的實(shí)例視頻編碼器的框圖。

圖3是說明可實(shí)施本發(fā)明中描述的技術(shù)的實(shí)例視頻解碼器的框圖。

圖4說明根據(jù)本發(fā)明的技術(shù)的包含幀內(nèi)bc的幀內(nèi)預(yù)測過程的實(shí)例。

圖5a到5d說明根據(jù)本發(fā)明的技術(shù)編碼單元可如何分割成預(yù)測單元的實(shí)例。

圖6a到6d說明根據(jù)本發(fā)明的技術(shù)預(yù)測單元可如何細(xì)分成子預(yù)測單元的實(shí)例。

圖7是說明根據(jù)本發(fā)明的一或多種技術(shù)視頻編碼器將pu靈活地分割成多個(gè)子pu的實(shí)例操作的流程圖。

圖8是說明根據(jù)本發(fā)明的一或多種技術(shù)視頻解碼器將pu靈活地分割成多個(gè)子pu的實(shí)例操作的流程圖。

具體實(shí)施方式

視頻序列一般表示為圖片序列。通常,基于塊的譯碼技術(shù)用于對(duì)個(gè)別圖片中的每一者進(jìn)行譯碼。也就是說,將每一圖片劃分成塊,且單獨(dú)地對(duì)所述塊中的每一者進(jìn)行譯碼。對(duì)視頻數(shù)據(jù)塊進(jìn)行譯碼通常涉及針對(duì)塊和譯碼殘余值中的像素形成預(yù)測值。使用一或多個(gè)預(yù)測塊中的像素樣本來形成預(yù)測值。殘余值表示原始?jí)K的像素與預(yù)測像素值之間的差。確切地說,原始視頻數(shù)據(jù)塊包含像素值陣列,且預(yù)測塊包含預(yù)測像素值陣列。殘余值表示原始?jí)K的像素值與預(yù)測像素值之間的逐像素差。

用于視頻數(shù)據(jù)塊的預(yù)測技術(shù)一般被分類為幀內(nèi)預(yù)測和幀間預(yù)測。幀內(nèi)預(yù)測或空間預(yù)測不包含根據(jù)任何參考圖片的預(yù)測;而是根據(jù)相鄰的先前經(jīng)譯碼塊的像素值預(yù)測所述塊。幀間預(yù)測或時(shí)間預(yù)測一般涉及根據(jù)一或多個(gè)先前經(jīng)譯碼參考圖片(例如,幀或切片)的像素值預(yù)測所述塊。

除了多種預(yù)測技術(shù)之外,視頻編碼器還可在對(duì)視頻數(shù)據(jù)進(jìn)行編碼時(shí)利用多種塊大小。例如,當(dāng)根據(jù)高效視頻譯碼(hevc)視頻譯碼標(biāo)準(zhǔn)(itu-th.265,h系列:移動(dòng)視頻的視聽服務(wù)編碼的視聽和多媒體系統(tǒng)、基礎(chǔ)架構(gòu),2015年4月,可獲自http://www.itu.int/rec/t-rec-h.265-201504-i/en)使用幀內(nèi)預(yù)測對(duì)視頻數(shù)據(jù)進(jìn)行編碼時(shí),視頻編碼器可將視頻圖片劃分成樹塊或最大譯碼單元(lcu)的序列,它可根據(jù)四叉樹而被分裂成譯碼單元(cu)。一般來說,四叉樹數(shù)據(jù)結(jié)構(gòu)包含每個(gè)cu一個(gè)節(jié)點(diǎn),其中一個(gè)根節(jié)點(diǎn)對(duì)應(yīng)于所述樹塊。如果一個(gè)cu分裂成四個(gè)子cu,那么對(duì)應(yīng)于cu的節(jié)點(diǎn)包含四個(gè)葉節(jié)點(diǎn),葉節(jié)點(diǎn)中的每一個(gè)對(duì)應(yīng)于所述子cu中的一個(gè)子cu。cu可包括具有亮度樣本陣列、cb樣本陣列和cr樣本陣列的圖片的亮度樣本的譯碼塊和色度樣本的兩個(gè)對(duì)應(yīng)的譯碼塊,以及用于對(duì)譯碼塊的樣本進(jìn)行譯碼的語法結(jié)構(gòu)。在單色圖片或具有三個(gè)單獨(dú)顏色平面的圖片中,cu可包括單個(gè)譯碼塊和用于對(duì)所述譯碼塊的樣本進(jìn)行譯碼的語法結(jié)構(gòu)。譯碼塊是樣本的nxn塊。

四叉樹數(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。如果cu未進(jìn)一步分裂,那么將其稱作葉cu。在本發(fā)明中,葉cu的四個(gè)子cu也將被稱作葉cu,即使原始葉cu未明確分裂也是如此。例如,如果16×16大小的cu未進(jìn)一步分裂,那么四個(gè)8×8子cu也將被稱作葉cu,盡管16×16cu從未分裂。

hevc標(biāo)準(zhǔn)中的cu具有類似于h.264標(biāo)準(zhǔn)的宏塊的目的的目的。然而,cu并不具有大小區(qū)別。例如,樹塊可分裂成四個(gè)子節(jié)點(diǎn)(也稱為子cu),且每一子節(jié)點(diǎn)又可為父節(jié)點(diǎn)且可分裂成另外四個(gè)子節(jié)點(diǎn)。最后未分裂的子節(jié)點(diǎn)(被稱作四叉樹的葉節(jié)點(diǎn))包括譯碼節(jié)點(diǎn),所述譯碼節(jié)點(diǎn)也被稱作葉cu。與經(jīng)譯碼位流相關(guān)聯(lián)的語法數(shù)據(jù)可定義樹塊可分裂的最大次數(shù),所述最大次數(shù)被稱作最大cu深度,且還可定義譯碼節(jié)點(diǎn)的最小大小。因此,位流還可定義最小譯碼單元(scu)。本發(fā)明使用術(shù)語“塊”來指代在hevc的上下文中的cu、pu或tu中的任一個(gè),或者在其它標(biāo)準(zhǔn)的上下文中的類似數(shù)據(jù)結(jié)構(gòu)(例如,其在h.264/avc中的宏塊和子塊)。

cu包含譯碼節(jié)點(diǎn)和與所述譯碼節(jié)點(diǎn)相關(guān)聯(lián)的預(yù)測單元(pu)和變換單元(tu)。cu的大小對(duì)應(yīng)于譯碼節(jié)點(diǎn)的大小,并且形狀必須是正方形。cu的大小范圍可從8×8像素到最大為64×64像素或更大像素的樹塊的大小。每一cu可含有一或多個(gè)pu和一或多個(gè)tu。

一般來說,pu表示對(duì)應(yīng)于對(duì)應(yīng)的cu的全部或一部分的空間區(qū)域,并且可包含用于檢索pu的參考樣本的數(shù)據(jù)。此外,pu包含與預(yù)測有關(guān)的數(shù)據(jù)。例如,當(dāng)pu進(jìn)行幀內(nèi)模式編碼時(shí),用于pu的數(shù)據(jù)可包含在殘余四叉樹(rqt)中,所述殘余四叉樹可包含描述用于對(duì)應(yīng)于pu的tu的幀內(nèi)預(yù)測模式的數(shù)據(jù)。作為另一實(shí)例,當(dāng)pu進(jìn)行幀間模式編碼時(shí),pu可包含定義pu的一或多個(gè)運(yùn)動(dòng)向量的數(shù)據(jù)。預(yù)測塊可為其上應(yīng)用相同預(yù)測的樣本的矩形(即,正方形或非正方形)塊。cu的pu可包括圖片的亮度樣本的預(yù)測塊、色度樣本的兩個(gè)對(duì)應(yīng)的預(yù)測塊,以及用于對(duì)預(yù)測塊樣本進(jìn)行預(yù)測的語法結(jié)構(gòu)。在單色圖片或具有三個(gè)單獨(dú)顏色平面的圖片中,pu可包括單個(gè)預(yù)測塊和用于對(duì)預(yù)測塊樣本進(jìn)行預(yù)測的語法結(jié)構(gòu)。

在將變換(例如,離散余弦變換(dct)、整數(shù)變換、小波變換或概念上類似的變換)應(yīng)用于殘余視頻數(shù)據(jù)之后,tu可包含變換域中的系數(shù)。殘余數(shù)據(jù)可對(duì)應(yīng)于未經(jīng)編碼圖片的像素與對(duì)應(yīng)于pu的預(yù)測值之間的像素差。視頻編碼器20可形成包含用于cu的殘余數(shù)據(jù)的tu,并接著變換tu以產(chǎn)生用于cu的變換系數(shù)。變換塊可為其上應(yīng)用相同變換的樣本的矩形塊。cu的變換單元(tu)可包括亮度樣本的變換塊、色度樣本的兩個(gè)對(duì)應(yīng)的變換塊,以及用于對(duì)變換塊樣本進(jìn)行變換的語法結(jié)構(gòu)。在單色圖片或具有三個(gè)單獨(dú)顏色平面的圖片中,tu可包括單個(gè)變換塊和用于對(duì)變換塊樣本進(jìn)行變換的語法結(jié)構(gòu)。

hevc支持各種預(yù)定義pu大小的預(yù)測,其也被稱作分割模式。假設(shè)特定cu的大小是2nx2n,那么hevc支持2nx2n或nxn的pu大小的幀內(nèi)預(yù)測,以及2nx2n、2nxn、nx2n或nxn的對(duì)稱pu大小的幀間預(yù)測(其中n表示cu側(cè)的長度的一半)。hevc還支持用于2nxnu、2nxnd、nlx2n及nrx2n的pu大小的幀間預(yù)測的不對(duì)稱運(yùn)動(dòng)分割(amp)。在不對(duì)稱分割中,不分割cu的一個(gè)方向,但是將另一方向分割成25%和75%。cu的對(duì)應(yīng)于25%分區(qū)的部分由后面接著“上方”、“下方”、“左側(cè)”或“右側(cè)”的指示的“n”來指示。因此,例如,“2nxnu”是指水平地分割的2nx2ncu,其中頂部為2nx0.5npu,底部為2nx1.5npu。

一般來說,將cu分割成pu使得視頻編碼器能夠獲得更好的預(yù)測且能夠最小化殘余值。然而,在一些實(shí)例中,可能不希望在劃分視頻數(shù)據(jù)的cu時(shí)將視頻編碼器限制在pu大小的預(yù)定義集合。例如,當(dāng)對(duì)屏幕內(nèi)容序列(其呈現(xiàn)內(nèi)容的快速改變)進(jìn)行編碼時(shí),固定pu分區(qū)大小可能不是高效的。

在一些實(shí)例中,視頻編碼器可利用短距離幀內(nèi)預(yù)測(sdip)。sdip是一種技術(shù),例如,如在曹(cao)等人的“關(guān)于短距離幀內(nèi)預(yù)測方法的ce6.b1報(bào)告”中所描述,itu-tsg16wp3和iso/iecjtc1/sc29/wg11的視頻譯碼(jct-vc)的聯(lián)合合作小組,第5次會(huì)議:日內(nèi)瓦,2011年3月16日到23日,文獻(xiàn):jctvc-e278(下文“jctvc-e278”),其中一個(gè)小于32x32的nxn方形塊被劃分成為矩形形狀的若干排或非正方形塊,并逐排或逐矩形對(duì)像素進(jìn)行預(yù)測和重構(gòu)。作為一個(gè)實(shí)例,jctvc-e278提供16x16cu不僅可以被劃分成四個(gè)8x8pu,還可以被劃分成四個(gè)4x16/16x4pu,并且4x16/16x4pu可進(jìn)一步分裂成四個(gè)1x16/16x1分區(qū)。作為另一實(shí)例,jctvc-e278提供8x8cu可劃分成四個(gè)2x8/8x2pu,并且每一4x4pu可進(jìn)一步劃分成四個(gè)1x4/4x1分區(qū)??傊琷ctvc-e278提供在sdip中支持兩種類型的pu,第一種是名稱為hnx2n/2nxhn的矩形pu,其中h是指一半(1/2),第二種是名稱為1xn/nx1的基于排的pu。盡管在一些實(shí)例中,sdip可使得視頻編碼器能夠?qū)σ曨l數(shù)據(jù)進(jìn)行編碼,同時(shí)減小殘余值,但是所引起的編碼復(fù)雜性和帶寬要求可能并不合乎需要。

根據(jù)本發(fā)明的一或多種技術(shù),相對(duì)于被限制在固定大小的pu(例如,2nx2n、2nxn、nx2n、nxn、2nxnu、2nxnd、nlx2n和nrx2n)或基于排的pu(例如,sdip),視頻編碼器可實(shí)施靈活分割方案,其中pu可被劃分成各自包含數(shù)目可調(diào)節(jié)的排(即,行或列)的多個(gè)子pu。作為一個(gè)實(shí)例,視頻編碼器可將32x32cu劃分成四個(gè)16x16pu(例如,nxn),并且進(jìn)一步將16x16pu中的至少一個(gè)劃分成一個(gè)3x16子pu和一個(gè)13x16子pu。作為另一實(shí)例,視頻編碼器可將16x16cu劃分成一個(gè)12x16pu和一個(gè)4x16pu(例如,nrx2n),并且進(jìn)一步將12x16pu劃分成一個(gè)5x16子pu和一個(gè)11x16子pu。以此方式,視頻編碼器可獲得更好的預(yù)測且最小化殘余值。

在一些實(shí)例中,本發(fā)明的技術(shù)可適用于幀內(nèi)塊復(fù)制(bc)。例如遠(yuǎn)程桌面、遠(yuǎn)程游戲、無線顯示器、車用信息娛樂、云計(jì)算等多個(gè)應(yīng)用在日常生活中越來越平常。這些應(yīng)用中的視頻內(nèi)容通常是自然內(nèi)容、文本、人工圖形等的組合。在文本和人工圖形區(qū)域中,通常存在重復(fù)圖案(例如字符、圖標(biāo)、符號(hào)等)。幀內(nèi)bc是一種可使得視頻譯碼器能夠去除冗余并提高圖片內(nèi)譯碼效率的技術(shù)。在一些情況下,幀內(nèi)bc替代地可被稱為幀內(nèi)運(yùn)動(dòng)補(bǔ)償(mc)。

為了使用一些幀內(nèi)bc技術(shù)來預(yù)測當(dāng)前視頻數(shù)據(jù)塊,視頻譯碼器可確定將在同一圖片內(nèi)的預(yù)測性視頻數(shù)據(jù)塊(即,先前經(jīng)譯碼視頻數(shù)據(jù)塊)標(biāo)識(shí)為當(dāng)前視頻數(shù)據(jù)塊的塊向量。作為一個(gè)實(shí)例,視頻編碼器可選擇預(yù)測塊作為發(fā)現(xiàn)與當(dāng)前視頻數(shù)據(jù)塊緊密匹配的先前經(jīng)譯碼視頻數(shù)據(jù)塊,并產(chǎn)生指示預(yù)測塊相對(duì)于當(dāng)前塊的位置的向量。作為另一實(shí)例,視頻解碼器可接收指示預(yù)測塊相對(duì)于當(dāng)前塊的位置的向量的指示。

在一些實(shí)例中,相對(duì)于僅對(duì)塊向量的值進(jìn)行編碼而不壓縮,視頻編碼器可實(shí)施壓縮方案以對(duì)將塊向量的值編碼為塊向量和塊向量預(yù)測符之間的差。在一些實(shí)例中,塊向量預(yù)測符可為先前經(jīng)譯碼塊向量(即,呈譯碼順序)。例如,為了對(duì)當(dāng)前塊的塊向量的值進(jìn)行編碼,視頻編碼器可確定塊向量和先前經(jīng)譯碼塊向量之間的差,并對(duì)指示塊向量和先前經(jīng)譯碼塊向量之間的差的一或多個(gè)語法元素進(jìn)行編碼。

為了對(duì)當(dāng)前塊的塊向量的值進(jìn)行解碼,視頻解碼器可執(zhí)行互補(bǔ)過程。例如,視頻解碼器可接收指示塊向量和先前經(jīng)譯碼塊向量之間的差的一或多個(gè)語法元素,以及基于先前經(jīng)譯碼塊向量和一或多個(gè)語法元素而確定當(dāng)前塊的塊向量的值。以此方式,視頻譯碼器可減少用于對(duì)塊向量進(jìn)行譯碼的數(shù)據(jù)量。

然而,在一些實(shí)例中,除了先前經(jīng)譯碼塊向量以外,可能還需要利用塊向量預(yù)測符。作為一個(gè)實(shí)例,對(duì)于一些塊來說,可能希望將相鄰塊的塊向量用作塊向量預(yù)測符。例如,當(dāng)前塊的塊向量和相鄰塊的塊向量之間的差可能小于當(dāng)前塊的塊向量和先前經(jīng)譯碼塊向量之間的差。作為另一實(shí)例,對(duì)于一些塊來說,也許不可能將先前經(jīng)譯碼塊向量或相鄰塊的塊向量兩者用作塊向量預(yù)測符。例如,可能不存在先前經(jīng)譯碼塊向量或相鄰塊的塊向量可供用作使用幀內(nèi)bc進(jìn)行譯碼的編碼樹單元(ctu)中的第一塊的塊向量預(yù)測符。

在一些實(shí)例中,相對(duì)于在對(duì)視頻數(shù)據(jù)塊進(jìn)行編碼時(shí)一直將先前經(jīng)譯碼塊向量用作塊向量預(yù)測符,視頻編碼器可利用選自多個(gè)源的多個(gè)塊向量預(yù)測符候選者。例如,視頻編碼器可產(chǎn)生多個(gè)塊向量預(yù)測符候選者,所述塊向量預(yù)測符候選者可選自相鄰塊的塊向量、先前經(jīng)解碼塊的塊向量和默認(rèn)塊向量;選擇多個(gè)塊向量預(yù)測符候選者中的特定塊向量預(yù)測符候選者;以及對(duì)多個(gè)語法元素進(jìn)行編碼,所述語法元素指示選擇多個(gè)塊向量預(yù)測符候選者中的哪一塊向量預(yù)測符候選者,并指示塊向量和選定塊向量預(yù)測符候選者之間的差。

為了對(duì)當(dāng)前塊的塊向量的值進(jìn)行解碼,視頻解碼器可執(zhí)行互補(bǔ)過程。例如,視頻解碼器可接收多個(gè)語法元素、產(chǎn)生多個(gè)塊向量預(yù)測符候選者(即,使用類似于視頻編碼器的技術(shù))、基于多個(gè)語法元素中的語法元素而選擇多個(gè)塊向量預(yù)測符候選者中的特定塊向量預(yù)測符候選者,所述語法元素指示視頻編碼器選擇多個(gè)塊向量預(yù)測符候選者中的哪一塊向量預(yù)測符候選者,以及基于特定塊向量預(yù)測符候選者和指示塊向量與選定塊向量預(yù)測符候選者之間的差的一或多個(gè)語法元素而確定當(dāng)前塊的塊向量的值。以此方式,視頻譯碼器可進(jìn)一步減少用于對(duì)塊向量進(jìn)行譯碼的數(shù)據(jù)量。

在一些實(shí)例中,幀內(nèi)bc可與幀間預(yù)測模式“合并”。例如,當(dāng)前圖片可添加到在預(yù)測當(dāng)前圖片的塊期間使用的參考圖片列表(rpl)中,以使得當(dāng)前圖片中的塊的運(yùn)動(dòng)向量可指向還駐留在當(dāng)前圖片中的預(yù)測塊。

在一些實(shí)例中,塊向量可具有多個(gè)分量。例如,塊向量可具有水平分量(x)和垂直分量(y)。因而,在一些實(shí)例中,通過產(chǎn)生共同表示塊向量的相應(yīng)的分量的值的相應(yīng)的多個(gè)語法元素,視頻編碼器可對(duì)塊向量的每一相應(yīng)的分量的值進(jìn)行編碼。在一些實(shí)例中,針對(duì)多個(gè)分量中的每一分量,視頻編碼器可使用相同的塊向量預(yù)測符候選者。在一些實(shí)例中,針對(duì)多個(gè)分量中的每一分量,視頻編碼器可使用不同的塊向量預(yù)測符候選者。視頻解碼器可實(shí)施互補(bǔ)方案以將多個(gè)語法元素解碼成塊向量的分量的相應(yīng)的值。

如在喬希(joshi)等人的“高效視頻譯碼(hevc)屏幕內(nèi)容譯碼:草案1”中所描述,文獻(xiàn):itu-tsg16wp3和iso/iecjtc1/sc29/wg11的jctvc-r1005_v3,jct-vc,第18次會(huì)議:日本札幌(saopporo),2014年6月30日到7月9日(下文“scc草案1”),cu和pu層級(jí)兩者均支持幀內(nèi)bc。對(duì)于pu層級(jí)幀內(nèi)bc,針對(duì)全部cu大小支持2nxn和nx2npu分區(qū)。另外,當(dāng)cu是最小cu時(shí),支持nxnpu分區(qū)。幀內(nèi)bcpu分區(qū)大小始終是規(guī)律的(即,對(duì)稱)。

在一些實(shí)例中,視頻編碼器可在幀內(nèi)bc的上下文中實(shí)施本發(fā)明的靈活分割方案。例如,相對(duì)于被限制在將cu劃分成預(yù)定義的規(guī)律pu,視頻編碼器可將pu劃分成各自包含數(shù)目可調(diào)節(jié)的排(即,行或列)的多個(gè)子pu。針對(duì)子pu的每一相應(yīng)的子pu,視頻編碼器可用信號(hào)發(fā)送塊向量的指示,其指示駐留在與cu相同的圖片中的相應(yīng)的預(yù)測符塊的位置。

子pu與pu進(jìn)一步分裂開,并且這個(gè)分裂在位流中用信號(hào)發(fā)送。在一些實(shí)例中,可能不會(huì)改變pu模式信息的傳信(即,可用相同的信號(hào)表示pu模式信息而與pu是否細(xì)分無關(guān))。每一子pu可與pu相似的排中具有相關(guān)聯(lián)向量。在一些實(shí)例中,塊運(yùn)動(dòng)補(bǔ)償可與scc草案1相同,并且可以不變。cu中的所有pu,或僅cu內(nèi)的某一些pu分區(qū),或某一些cu大小(例如,cu大小16x16和以上)可支持這種靈活分割。在另一實(shí)例中,僅當(dāng)cu具有2個(gè)pu時(shí)可支持子pu。在另一替代方案中,可針對(duì)2nxn或nx2n分區(qū)支持子pu分裂,但針對(duì)2nx2n、nxn或amp分區(qū)不支持子pu分裂。

視頻譯碼器可用信號(hào)發(fā)送pu的模式/對(duì)pu的模式進(jìn)行譯碼。例如,視頻譯碼器可在pu層級(jí)對(duì)旗標(biāo)進(jìn)行譯碼,所述旗標(biāo)指示是否支持自適應(yīng)分割。當(dāng)支持自適應(yīng)分割時(shí),視頻譯碼器可對(duì)子分區(qū)信息進(jìn)行譯碼。當(dāng)不支持時(shí),視頻譯碼器可假設(shè)pu中不存在子分區(qū)。在一些實(shí)例中,針對(duì)nxnpu模式,可能禁用這個(gè)模式(也就是說,當(dāng)pu模式是nxn時(shí),視頻譯碼器可能不會(huì)對(duì)旗標(biāo)進(jìn)行譯碼)。在一些實(shí)例中,視頻譯碼器可在cu層級(jí)對(duì)旗標(biāo)進(jìn)行譯碼,以指示cu中的所有pu是否具有子分區(qū)信息。

在一些實(shí)例中,針對(duì)每一pu,可能支持最大兩個(gè)子pu,并且可通過視頻譯碼器對(duì)分裂信息進(jìn)行譯碼。在一些實(shí)例中,pu的子pu的數(shù)目(例如1、2、3、4……至多到pu中的排的數(shù)目)可在序列層級(jí)、圖片層級(jí)或切片層級(jí)(sps、pps或切片標(biāo)頭)進(jìn)行譯碼,并且可針對(duì)每一pu對(duì)對(duì)應(yīng)的pu分裂信息進(jìn)行譯碼。

在一些實(shí)例中,針對(duì)cu,視頻譯碼器可將子pu的最大數(shù)目限制在四個(gè)。在一些實(shí)例中,視頻譯碼器可在序列層級(jí)、圖片層級(jí)或切片層級(jí)(sps、pps或切片標(biāo)頭)對(duì)pu的最大數(shù)目(例如1、2、3、4……至多到pu中的排的數(shù)目)的子pu進(jìn)行譯碼。

在一些實(shí)例中,視頻譯碼器可添加其它限制。例如,視頻譯碼器可能需要每一子pu中的行(列)的數(shù)目大于n(n=1、2、3、4、5……等)。

在一些實(shí)例中,可對(duì)子pu的塊向量進(jìn)行預(yù)測(即,基于塊向量預(yù)測符)。在一些實(shí)例中,每一子pu的塊向量預(yù)測符可與當(dāng)前pu的預(yù)測符相同。在一些實(shí)例中,當(dāng)前pu的預(yù)測符可如在scc草案1中的那樣導(dǎo)出。在一些實(shí)例中,非第一子pu可將先前子pu的已經(jīng)經(jīng)解碼塊向量中的任一個(gè)用作預(yù)測符。先前子pu的已經(jīng)經(jīng)解碼塊向量可添加到候選者列表中的空間(即,相鄰)候選者之后。在一些實(shí)例中,非第一子pu可僅將先前子pu的先前(最新)已經(jīng)經(jīng)譯碼塊向量用作預(yù)測符。在一些實(shí)例中,可用merge_flag和merge_idx介紹塊向量合并,所述merge_flag可以指示是否使用合并,所述merge_idx可以指示使用候選集中的哪一合并候選者。在此情況下,bvd需要不可進(jìn)行譯碼。合并候選者集可僅使用n個(gè)先前經(jīng)譯碼bv進(jìn)行建構(gòu),或者如在hevc合并中,它可包含空間或時(shí)間相鄰者。第一子pu和非第一子pu的候選集有可能是不同的。例如,第一子pu可以將候選集用作hevc合并;以及非第一子pu可以僅使用先前經(jīng)譯碼bv。

本發(fā)明提出若干種用于對(duì)相應(yīng)的子pu的相應(yīng)的塊向量差(bvd)的值進(jìn)行譯碼的技術(shù)。根據(jù)本發(fā)明的第一技術(shù),視頻譯碼器可對(duì)一個(gè)二進(jìn)制數(shù)b0進(jìn)行譯碼,以指示bvd的值是否大于零。接著,視頻譯碼器可對(duì)一個(gè)二進(jìn)制數(shù)b1進(jìn)行譯碼,以指示bvd的值是否大于n。在一些實(shí)例中,如果bvd的值大于n(n=1、2、3、4……),那么視頻譯碼器可使用具有階數(shù)k(k=0、1、2、3、4……)的指數(shù)哥倫布(eg)碼來對(duì)余數(shù)(bvd減去n)進(jìn)行譯碼。在其它實(shí)例中,視頻譯碼器可使用長度基于n的旁路經(jīng)譯碼的固定長度(fl)碼來對(duì)bvd減去一的值進(jìn)行譯碼。在其它實(shí)例中,視頻譯碼器可使用截?cái)啻a來對(duì)bvd減去一的值進(jìn)行譯碼。在一些實(shí)例中,視頻譯碼器可使用經(jīng)譯碼的上下文或旁路對(duì)bin0進(jìn)行譯碼。類似地,視頻譯碼器可使用經(jīng)譯碼的上下文或旁路對(duì)二進(jìn)制數(shù)b1進(jìn)行譯碼。

根據(jù)本發(fā)明的第二技術(shù),視頻譯碼器可對(duì)一個(gè)二進(jìn)制數(shù)b0進(jìn)行譯碼,以指示bvd的值是否大于零。如果bvd的值不等于零,那么視頻譯碼器可使用具有階數(shù)k(k=0、1、2、3、4……)的eg碼來對(duì)余數(shù)(bvd減去1)進(jìn)行譯碼。

根據(jù)本發(fā)明的第三技術(shù),視頻譯碼器可使用上下文經(jīng)譯碼的二進(jìn)制數(shù)來對(duì)第一子pu的bvd進(jìn)行譯碼(如上文相對(duì)于第一技術(shù)和第二技術(shù)所論述)。視頻譯碼器可使用旁路經(jīng)譯碼的二進(jìn)制數(shù)來對(duì)其余子pu的bvd進(jìn)行譯碼(如上文相對(duì)于第一技術(shù)和第二技術(shù)所論述)。

如上文所論述,視頻譯碼器可對(duì)子pu的分裂信息進(jìn)行譯碼。在一些實(shí)例中,通過對(duì)子pu中的排(例如,行或列)的數(shù)目進(jìn)行譯碼,視頻譯碼器可對(duì)子pu的分裂信息進(jìn)行譯碼。在一些實(shí)例中,視頻譯碼器可對(duì)pu中除了最后一個(gè)子pu之外的每一子pu的此分裂信息進(jìn)行譯碼,在此情況下,可基于pu中的排的總數(shù)減去分配給其它子pu的排而推斷排的數(shù)目。

例如,如果當(dāng)前pu中存在兩個(gè)子pu,并且分區(qū)使得第一子pu包含三個(gè)排而第二子pu包含其余的排,那么視頻譯碼器可用信號(hào)明確發(fā)送第一子pu包含三個(gè)排,且未用信號(hào)明確發(fā)送包含在第二子pu中的排的數(shù)目。

在一些實(shí)例中,視頻譯碼器可使用截?cái)嘁辉a來對(duì)子pu中的排的數(shù)目進(jìn)行譯碼。在此類實(shí)例中的一些中,截?cái)嘁辉a的最大長度可基于pu中行的數(shù)目。

在另一實(shí)例中,視頻譯碼器可使用固定長度碼來對(duì)子pu中的排的數(shù)目進(jìn)行譯碼。在此類實(shí)例中的一些中,固定長度碼的長度可基于pu中行的數(shù)目。

在一些實(shí)例中,視頻譯碼器可在任一方向上(水平和垂直)分割pu內(nèi)的子pu。在一些實(shí)例中,視頻譯碼器可對(duì)位流中的分割方向的指示進(jìn)行譯碼(例如,使用1位旁路經(jīng)譯碼的旗標(biāo))。

在一些實(shí)例中,視頻譯碼器可向子pu分裂施加一或多個(gè)限制。作為一個(gè)實(shí)例,視頻譯碼器可防止分裂指示pu未進(jìn)行劃分(即,子pu中的一個(gè)具有零高度或?qū)挾?。作為另一實(shí)例,如果pu為垂直取向,那么視頻譯碼器可將子pu分割限制成水平分裂,或如果pu為水平取向,那么將子pu分割限制成垂直分裂。在此類實(shí)例中的一些中,視頻譯碼器可能未明確對(duì)分割方向進(jìn)行譯碼。

在一些實(shí)例中,視頻譯碼器可使用預(yù)定義語法結(jié)構(gòu)來對(duì)分裂信息進(jìn)行譯碼。作為一個(gè)實(shí)例,視頻譯碼器可使用下文表1中顯示的語法結(jié)構(gòu)來對(duì)分裂信息進(jìn)行譯碼。盡管在表1中將子pu的數(shù)目固定到大小為2,但是在子pu的數(shù)目被固定到另一大小(例如,1、2、3、4、5……至多到pu中行/列的數(shù)目)的情況下也可說明相似實(shí)例。

表1

sub_pu_present_flag:-指定pu內(nèi)是否存在子pu。針對(duì)某些pu,例如針對(duì)2nx2npu、amppu、nxnpu,可能不會(huì)用信號(hào)發(fā)送sub_pu_present旗標(biāo),并且如果所述旗標(biāo)不存在,那么推斷旗標(biāo)為零(未分裂)。

sub_pu_type:-指定語法元素num_sub_pu_lines是否對(duì)應(yīng)于行或列

num_sub_pu_lines:-指定子pu內(nèi)的行/列的數(shù)目(基于語法sub_pu_type)。

圖1是說明實(shí)例視頻編碼和解碼系統(tǒng)10的框圖,所述系統(tǒng)10可利用用于將視頻數(shù)據(jù)的預(yù)測單元(pu)靈活地劃分成視頻數(shù)據(jù)的多個(gè)子pu的技術(shù)。如圖1中所示,系統(tǒng)10包含源裝置12,其提供稍后待由目的地裝置14解碼的經(jīng)編碼視頻數(shù)據(jù)。具體來說,源裝置12經(jīng)由計(jì)算機(jī)可讀媒體16將視頻數(shù)據(jù)提供到目的地裝置14。源裝置12和目的地裝置14可包括廣泛范圍的裝置中的任一者,包含臺(tái)式計(jì)算機(jī)、筆記型計(jì)算機(jī)(即,筆記本計(jì)算機(jī))、平板計(jì)算機(jī)、機(jī)頂盒、例如所謂的“智能”電話的電話手持機(jī)、所謂的“智能”板、電視、相機(jī)、顯示裝置、數(shù)字媒體播放器、視頻游戲控制臺(tái)、視頻流式傳輸裝置等等。在一些情況下,可裝備源裝置12和目的地裝置14以用于無線通信。

目的地裝置14可經(jīng)由計(jì)算機(jī)可讀媒體16接收待解碼的經(jīng)編碼視頻數(shù)據(jù)。計(jì)算機(jī)可讀媒體16可包括能夠?qū)⒔?jīng)編碼視頻數(shù)據(jù)從源裝置12移動(dòng)到目的地裝置14的任一類型的媒體或裝置。在一個(gè)實(shí)例中,計(jì)算機(jī)可讀媒體16可包括通信媒體以使得源裝置12能夠?qū)崟r(shí)地將經(jīng)編碼視頻數(shù)據(jù)直接發(fā)射到目的地裝置14??筛鶕?jù)通信標(biāo)準(zhǔn)(例如,無線通信協(xié)議)調(diào)制經(jīng)編碼視頻數(shù)據(jù),并將其發(fā)射到目的地裝置14。通信媒體可包括任何無線或有線通信媒體,例如射頻(rf)頻譜或一或多個(gè)物理傳輸線。通信媒體可形成基于分組的網(wǎng)絡(luò)(例如,局域網(wǎng)、廣域網(wǎng)或全球網(wǎng)絡(luò),例如因特網(wǎng))的部分。通信媒體可包含路由器、交換器、基站或可用于促進(jìn)從源裝置12到目的地裝置14的通信的任何其它設(shè)備。

在一些實(shí)例中,經(jīng)編碼數(shù)據(jù)可從輸出接口22輸出到存儲(chǔ)裝置32。類似地,經(jīng)編碼數(shù)據(jù)可通過輸入接口從存儲(chǔ)裝置32存取。存儲(chǔ)裝置32可包含多種分布式或本地存取的數(shù)據(jù)存儲(chǔ)媒體中的任一者,例如硬盤驅(qū)動(dòng)器、藍(lán)光光盤、dvd、cd-rom、快閃存儲(chǔ)器、易失性或非易失性存儲(chǔ)器或用于存儲(chǔ)經(jīng)編碼視頻數(shù)據(jù)的任何其它合適的數(shù)字存儲(chǔ)媒體。在另一實(shí)例中,存儲(chǔ)裝置32可對(duì)應(yīng)于文件服務(wù)器或可存儲(chǔ)由源裝置12產(chǎn)生的經(jīng)編碼視頻的另一中間存儲(chǔ)裝置。

目的地裝置14可經(jīng)由流式傳輸或下載從存儲(chǔ)裝置32存取所存儲(chǔ)的視頻數(shù)據(jù)。文件服務(wù)器可為能夠存儲(chǔ)經(jīng)編碼視頻數(shù)據(jù)和將所述經(jīng)編碼視頻數(shù)據(jù)發(fā)射到目的地裝置14的任何類型的服務(wù)器。實(shí)例文件服務(wù)器包含網(wǎng)絡(luò)服務(wù)器(例如,用于網(wǎng)站)、ftp服務(wù)器、網(wǎng)絡(luò)連接存儲(chǔ)(nas)裝置或本地磁盤驅(qū)動(dòng)器。目的地裝置14可以通過任何標(biāo)準(zhǔn)數(shù)據(jù)連接(包含因特網(wǎng)連接)來存取經(jīng)編碼視頻數(shù)據(jù)。這可包含適合于存取存儲(chǔ)在文件服務(wù)器上的經(jīng)編碼視頻數(shù)據(jù)的無線信道(例如,wi-fi連接)、有線連接(例如,dsl、電纜調(diào)制解調(diào)器等)或兩者的組合。經(jīng)編碼視頻數(shù)據(jù)從存儲(chǔ)裝置32的發(fā)射可為流式傳輸、下載傳輸或其組合。

本發(fā)明的技術(shù)未必限于無線應(yīng)用或設(shè)定。所述技術(shù)可應(yīng)用于視頻譯碼以支持多種多媒體應(yīng)用中的任一者,例如空中協(xié)議電視廣播、有線電視發(fā)射、衛(wèi)星電視發(fā)射、因特網(wǎng)流式視頻發(fā)射(例如動(dòng)態(tài)自適應(yīng)http串流(dash))、經(jīng)編碼到數(shù)據(jù)存儲(chǔ)媒體上的數(shù)字視頻,存儲(chǔ)在數(shù)據(jù)存儲(chǔ)媒體上的數(shù)字視頻的解碼,或其它應(yīng)用。在一些實(shí)例中,系統(tǒng)10可經(jīng)配置以支持單向或雙向視頻發(fā)射,以支持例如視頻流式傳輸、視頻重放、視頻廣播和/或視頻電話等應(yīng)用。

在圖1的實(shí)例中,源裝置12包含視頻源18、視頻編碼器20和輸出接口22。目的地裝置14包含輸入接口28、視頻解碼器30和顯示裝置31。根據(jù)本發(fā)明,源裝置12的視頻編碼器20可經(jīng)配置以應(yīng)用技術(shù),從而執(zhí)行視頻譯碼的變換。在其它實(shí)例中,源裝置和目的地裝置可包括其它組件或布置。例如,源裝置12可從外部視頻源18(例如外部相機(jī))接收視頻數(shù)據(jù)。同樣,目的地裝置14可與外部顯示裝置介接,而不是包含集成顯示裝置。

圖1所說明的系統(tǒng)10僅為一個(gè)實(shí)例。用于執(zhí)行視頻譯碼的技術(shù)可由任何數(shù)字視頻編碼和/或解碼裝置執(zhí)行。源裝置12和目的地裝置14僅為其中源裝置12產(chǎn)生經(jīng)譯碼視頻數(shù)據(jù)以發(fā)射到目的地裝置14的此類譯碼裝置的實(shí)例。在一些實(shí)例中,裝置12、14可以大體上對(duì)稱的方式操作,使得裝置12、14中的每一個(gè)包含視頻編碼和解碼組件。因此,系統(tǒng)10可支持視頻裝置12、14之間的單向或雙向視頻發(fā)射,以(例如)用于視頻流式傳輸、視頻重放、視頻廣播或視頻電話。

源裝置12的視頻源18可包含視頻捕獲裝置,例如攝像機(jī)、含有先前所捕獲視頻的視頻存檔和/或用于從視頻內(nèi)容提供者接收視頻的視頻饋送接口。作為另一替代方案,視頻源18可產(chǎn)生基于計(jì)算機(jī)圖形的數(shù)據(jù)作為源視頻,或直播視頻、存檔視頻與計(jì)算機(jī)產(chǎn)生的視頻的組合。在一些情況下,如果視頻源18為攝像機(jī),那么源裝置12和目的地裝置14可形成所謂的相機(jī)電話或視頻電話。然而,如上文所提及,本發(fā)明中所描述的技術(shù)可大體上適用于視頻譯碼,且可應(yīng)用于無線和/或有線應(yīng)用。在每一情況下,捕獲、預(yù)先捕獲或計(jì)算機(jī)產(chǎn)生的視頻可由視頻編碼器20進(jìn)行編碼。經(jīng)編碼視頻信息可接著由輸出接口22輸出到計(jì)算機(jī)可讀媒體16上。

計(jì)算機(jī)可讀媒體16可包含暫時(shí)性媒體,例如無線廣播或有線網(wǎng)絡(luò)發(fā)射,或存儲(chǔ)媒體(也就是說,非暫時(shí)性存儲(chǔ)媒體),例如硬盤、快閃驅(qū)動(dòng)器、壓縮光盤、數(shù)字視頻光盤、藍(lán)光光盤或其它計(jì)算機(jī)可讀媒體。在一些實(shí)例中,網(wǎng)絡(luò)服務(wù)器(未示出)可從源裝置12接收經(jīng)編碼視頻數(shù)據(jù),并向目的地裝置14提供經(jīng)編碼視頻數(shù)據(jù),例如,經(jīng)由網(wǎng)絡(luò)傳輸。類似地,媒體生產(chǎn)設(shè)施(例如,光盤沖壓設(shè)施)的計(jì)算裝置可從源裝置12接收經(jīng)編碼視頻數(shù)據(jù),并生產(chǎn)含有經(jīng)編碼視頻數(shù)據(jù)的光盤。因此,在各種實(shí)例中,計(jì)算機(jī)可讀媒體16可以理解為包含各種形式的一或多個(gè)計(jì)算機(jī)可讀媒體。

目的地裝置14的輸入接口28從計(jì)算機(jī)可讀媒體16接收信息。計(jì)算機(jī)可讀媒體16的信息可包含由視頻編碼器20定義的語法信息,所述語法信息也由視頻解碼器30使用,且包含描述塊和其它經(jīng)譯碼單元(例如,gop)的特性和/或處理的語法元素。顯示裝置31將經(jīng)解碼視頻數(shù)據(jù)顯示給用戶,且可包括多種顯示裝置中的任一種,例如陰極射線管(crt)、液晶顯示器(lcd)、等離子顯示器、有機(jī)發(fā)光二極管(oled)顯示器或另一類型的顯示裝置。

視頻編碼器20和視頻解碼器30各自可實(shí)施為合適的多種合適的編碼器或解碼器電路中的任一種,例如一或多個(gè)微處理器、數(shù)字信號(hào)處理器(dsp)、專用集成電路(asic)、現(xiàn)場可編程門陣列(fpga)、離散邏輯電路、軟件、硬件、固件或其任何組合。當(dāng)部分地在軟件中實(shí)施所述技術(shù)時(shí),裝置可將用于軟件的指令存儲(chǔ)在合適的非暫時(shí)性計(jì)算機(jī)可讀媒體中,并使用一或多個(gè)處理器在硬件中執(zhí)行所述指令以執(zhí)行本發(fā)明的技術(shù)。視頻編碼器20和視頻解碼器30中的每一個(gè)可包含在一或多個(gè)編碼器或解碼器中,所述編碼器或解碼器中的任一個(gè)可集成為組合式視頻編碼器/解碼器(編解碼器)的部分。包含視頻編碼器20和/或視頻解碼器30的裝置可包括集成電路、微處理器和/或無線通信裝置,例如,蜂窩式電話。

盡管圖1中未示,但在一些方面中,視頻編碼器20和視頻解碼器30可各自與音頻編碼器和解碼器集成,且可包含適當(dāng)?shù)亩嗦窂?fù)用器-多路分用器單元或其它硬件和軟件以處理共同數(shù)據(jù)流或單獨(dú)數(shù)據(jù)流中的音頻和視頻兩者的編碼。如果適用,那么多路復(fù)用器-多路分用器單元可符合ituh.223多路復(fù)用器協(xié)議,或例如用戶數(shù)據(jù)報(bào)協(xié)議(udp)等其它協(xié)議。

本發(fā)明可大體涉及視頻編碼器20將某些信息“用信號(hào)發(fā)送”到例如視頻解碼器30的另一裝置。然而,應(yīng)理解,視頻編碼器20可通過使某些語法元素與視頻數(shù)據(jù)的各種經(jīng)編碼部分相關(guān)聯(lián)而用信號(hào)發(fā)送信息。也就是說,視頻編碼器20可以通過將某些語法元素存儲(chǔ)到視頻數(shù)據(jù)的各種經(jīng)編碼部分的標(biāo)頭來“用信號(hào)發(fā)送”數(shù)據(jù)。在一些情況下,這些語法元素可在由視頻解碼器30接收和解碼之前進(jìn)行編碼和存儲(chǔ)(例如,存儲(chǔ)到存儲(chǔ)裝置32)。因此,術(shù)語“用信號(hào)發(fā)送”可大體指語法或其它數(shù)據(jù)的通信以用于對(duì)經(jīng)壓縮視頻數(shù)據(jù)進(jìn)行解碼,不管此通信實(shí)時(shí)還是幾乎實(shí)時(shí)或是在一定時(shí)間間隔內(nèi)發(fā)生,例如,可在編碼時(shí)將語法元素存儲(chǔ)到媒體時(shí)發(fā)生,接著所述語法元素可在存儲(chǔ)到此媒體之后的任何時(shí)間通過解碼裝置檢索。

視頻編碼器20和視頻解碼器30可根據(jù)視頻壓縮標(biāo)準(zhǔn)(例如,hevc標(biāo)準(zhǔn))操作。雖然本發(fā)明的技術(shù)不限于任何特定譯碼標(biāo)準(zhǔn),但所述技術(shù)可以與hevc標(biāo)準(zhǔn)相關(guān)。hevc標(biāo)準(zhǔn)化努力是基于被稱作hevc測試模型(hm)的視頻譯碼裝置的模型。hm假設(shè)視頻譯碼裝置根據(jù)例如itu-th.264/avc相對(duì)于現(xiàn)有裝置的幾個(gè)額外能力。例如,雖然h.264提供了九個(gè)幀內(nèi)預(yù)測編碼模式,但是hm可提供多達(dá)三十五個(gè)幀內(nèi)預(yù)測編碼模式。

一般來說,hm的工作模型描述視頻圖片可以劃分成包含亮度和色度樣本兩者的一連串樹塊或最大譯碼單元(lcu)。位流內(nèi)的語法數(shù)據(jù)可定義lcu的大小,所述lcu是就像素?cái)?shù)目來說的最大譯碼單元。切片包含多個(gè)連續(xù)譯碼樹單元(ctu)。ctu中的每一個(gè)可包括亮度樣本的譯碼樹塊、色度樣本的兩個(gè)對(duì)應(yīng)的譯碼樹塊,以及用以對(duì)譯碼樹塊的樣本進(jìn)行譯碼的語法結(jié)構(gòu)。在單色圖片或具有三個(gè)單獨(dú)顏色平面的圖片中,ctu可包括單個(gè)譯碼樹塊和用于對(duì)所述譯碼樹塊的樣本進(jìn)行譯碼的語法結(jié)構(gòu)。

視頻圖片可被分割成一或多個(gè)切片。每一樹塊可以根據(jù)四叉樹分裂成譯碼單元(cu)。一般來說,四叉樹數(shù)據(jù)結(jié)構(gòu)包含每個(gè)cu一個(gè)節(jié)點(diǎn),其中一個(gè)根節(jié)點(diǎn)對(duì)應(yīng)于所述樹塊。如果一個(gè)cu分裂成四個(gè)子cu,那么對(duì)應(yīng)于cu的節(jié)點(diǎn)包含四個(gè)葉節(jié)點(diǎn),葉節(jié)點(diǎn)中的每一個(gè)對(duì)應(yīng)于所述子cu中的一個(gè)子cu。cu可包括具有亮度樣本陣列、cb樣本陣列和cr樣本陣列的圖片的亮度樣本的譯碼塊和色度樣本的兩個(gè)對(duì)應(yīng)的譯碼塊,以及用于對(duì)譯碼塊的樣本進(jìn)行譯碼的語法結(jié)構(gòu)。在單色圖片或具有三個(gè)單獨(dú)顏色平面的圖片中,cu可包括單個(gè)譯碼塊和用于對(duì)所述譯碼塊的樣本進(jìn)行譯碼的語法結(jié)構(gòu)。譯碼塊是樣本的nxn塊。

四叉樹數(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。如果cu未進(jìn)一步分裂,那么將其稱作葉cu。在本發(fā)明中,葉cu的四個(gè)子cu也將被稱作葉cu,即使原始葉cu未明確分裂也是如此。例如,如果16×16大小的cu未進(jìn)一步分裂,那么四個(gè)8×8子cu也將被稱作葉cu,盡管16×16cu從未分裂。

hevc中的cu具有類似于h.264標(biāo)準(zhǔn)的宏塊的目的的目的,但是cu并不具有大小區(qū)別。例如,樹塊可分裂成四個(gè)子節(jié)點(diǎn)(也稱為子cu),且每一子節(jié)點(diǎn)又可為父節(jié)點(diǎn)且可分裂成另外四個(gè)子節(jié)點(diǎn)。最后未分裂的子節(jié)點(diǎn)(被稱作四叉樹的葉節(jié)點(diǎn))包括譯碼節(jié)點(diǎn),所述譯碼節(jié)點(diǎn)也被稱作葉cu。與經(jīng)譯碼位流相關(guān)聯(lián)的語法數(shù)據(jù)可定義樹塊可分裂的最大次數(shù),所述最大次數(shù)被稱作最大cu深度,且還可定義譯碼節(jié)點(diǎn)的最小大小。因此,位流還可定義最小譯碼單元(scu)。本發(fā)明使用術(shù)語“塊”來指代在hevc的上下文中的cu、pu或tu中的任一個(gè),或者在其它標(biāo)準(zhǔn)的上下文中的類似數(shù)據(jù)結(jié)構(gòu)(例如,其在h.264/avc中的宏塊和子塊)。

cu包含譯碼節(jié)點(diǎn)和與所述譯碼節(jié)點(diǎn)相關(guān)聯(lián)的預(yù)測單元(pu)和變換單元(tu)。cu的大小對(duì)應(yīng)于譯碼節(jié)點(diǎn)的大小,并且形狀必須是正方形。cu的大小范圍可從8×8像素到最大為64×64像素或更大像素的樹塊的大小。每一cu可含有一或多個(gè)pu和一或多個(gè)tu。

一般來說,pu表示對(duì)應(yīng)于對(duì)應(yīng)的cu的全部或一部分的空間區(qū)域,并且可包含用于檢索pu的參考樣本的數(shù)據(jù)。此外,pu包含與預(yù)測有關(guān)的數(shù)據(jù)。例如,當(dāng)pu進(jìn)行幀內(nèi)模式編碼時(shí),用于pu的數(shù)據(jù)可包含在殘余四叉樹(rqt)中,所述殘余四叉樹可包含描述用于對(duì)應(yīng)于pu的tu的幀內(nèi)預(yù)測模式的數(shù)據(jù)。作為另一實(shí)例,當(dāng)pu進(jìn)行幀間模式編碼時(shí),pu可包含定義pu的一或多個(gè)運(yùn)動(dòng)向量的數(shù)據(jù)。預(yù)測塊可為其上應(yīng)用相同預(yù)測的樣本的矩形(即,正方形或非正方形)塊。cu的pu可包括圖片的亮度樣本的預(yù)測塊、色度樣本的兩個(gè)對(duì)應(yīng)的預(yù)測塊,以及用于對(duì)預(yù)測塊樣本進(jìn)行預(yù)測的語法結(jié)構(gòu)。在單色圖片或具有三個(gè)單獨(dú)顏色平面的圖片中,pu可包括單個(gè)預(yù)測塊和用于對(duì)預(yù)測塊樣本進(jìn)行預(yù)測的語法結(jié)構(gòu)。

在將變換(例如,離散余弦變換(dct)、整數(shù)變換、小波變換或概念上類似的變換)應(yīng)用于殘余視頻數(shù)據(jù)之后,tu可包含變換域中的系數(shù)。殘余數(shù)據(jù)可對(duì)應(yīng)于未經(jīng)編碼圖片的像素和對(duì)應(yīng)于pu的預(yù)測值之間的像素差,例如,未經(jīng)編碼的原始像素和經(jīng)預(yù)測像素的明度和彩度值的原始值和預(yù)測值之間的差。視頻編碼器20可形成包含用于cu的殘余數(shù)據(jù)的tu,并接著變換tu以產(chǎn)生用于cu的變換系數(shù)。變換塊可為其上應(yīng)用相同變換的樣本的矩形塊。cu的變換單元(tu)可包括亮度樣本的變換塊、色度樣本的兩個(gè)對(duì)應(yīng)的變換塊,以及用于對(duì)變換塊樣本進(jìn)行變換的語法結(jié)構(gòu)。在單色圖片或具有三個(gè)單獨(dú)顏色平面的圖片中,tu可包括單個(gè)變換塊和用于對(duì)變換塊樣本進(jìn)行變換的語法結(jié)構(gòu)。

在變換之后,視頻編碼器20可執(zhí)行變換系數(shù)的量化。量化大體上指代對(duì)變換系數(shù)進(jìn)行量化以可能減少用于表示系數(shù)的數(shù)據(jù)量從而提供進(jìn)一步壓縮的過程。量化過程可減少與系數(shù)中的一些或全部相關(guān)聯(lián)的位深度。例如,n位值可在量化期間被下舍入到m位值,其中n大于m。

視頻編碼器20可掃描變換系數(shù),從而從包含經(jīng)量化變換系數(shù)的二維矩陣中產(chǎn)生一維向量。掃描可經(jīng)設(shè)計(jì)以將較高能量(并且因此較低頻率)的系數(shù)放置在陣列的前面,并將較低能量(并且因此較高頻率)的系數(shù)放置在陣列的后面。在一些實(shí)例中,視頻編碼器20可利用預(yù)定義掃描次序來掃描經(jīng)量化變換系數(shù),以產(chǎn)生可進(jìn)行熵編碼的串行化向量。在其它實(shí)例中,視頻編碼器20可執(zhí)行自適應(yīng)掃描。

在掃描經(jīng)量化變換系數(shù)以形成一維向量之后,視頻編碼器20可例如根據(jù)上下文自適應(yīng)可變長度譯碼(cavlc)、上下文自適應(yīng)二進(jìn)制算術(shù)譯碼(cabac)、基于語法的上下文自適應(yīng)二進(jìn)制算術(shù)譯碼(sbac)、概率區(qū)間分割熵(pipe)譯碼或另一熵編碼方法來對(duì)一維向量進(jìn)行熵編碼。視頻編碼器20也可對(duì)與經(jīng)編碼視頻數(shù)據(jù)相關(guān)聯(lián)的語法元素進(jìn)行熵編碼以供視頻解碼器30在對(duì)視頻數(shù)據(jù)進(jìn)行解碼時(shí)使用。

視頻編碼器20可進(jìn)一步向視頻解碼器30發(fā)送語法數(shù)據(jù),例如基于塊的語法數(shù)據(jù)、基于圖片的語法數(shù)據(jù)和基于圖片群組(gop)的語法數(shù)據(jù),例如在圖片標(biāo)頭、塊標(biāo)頭、切片標(biāo)頭或gop標(biāo)頭中。gop語法數(shù)據(jù)可描述在相應(yīng)的gop中的多個(gè)圖片,并且圖片語法數(shù)據(jù)可指示用于對(duì)對(duì)應(yīng)圖片進(jìn)行編碼的編碼/預(yù)測模式。

在獲得經(jīng)譯碼視頻數(shù)據(jù)后,視頻解碼器30可執(zhí)行與相對(duì)于視頻編碼器20描述的編碼遍次大體上反向的解碼遍次。例如,視頻解碼器30可從視頻編碼器20中獲得表示經(jīng)編碼視頻切片和相關(guān)聯(lián)語法元素的視頻塊的經(jīng)編碼視頻位流。視頻解碼器30可使用包含于位流中的數(shù)據(jù)重構(gòu)未經(jīng)編碼的原始視頻序列。

視頻編碼器20和視頻解碼器30可執(zhí)行視頻切片內(nèi)的視頻塊的幀內(nèi)和幀間譯碼。幀內(nèi)譯碼依賴于空間預(yù)測以減少或去除給定視頻圖片內(nèi)的視頻中的空間冗余。幀間譯碼依賴于時(shí)間預(yù)測或視圖間預(yù)測以減少或去除視頻序列的相鄰圖片內(nèi)的視頻中的時(shí)間冗余,或減少或去除其它視圖中的視頻冗余。幀內(nèi)模式(i模式)可指代若干種基于空間的壓縮模式(即,dc、平面和多個(gè)角度模式)中的任一種。例如單向預(yù)測(p模式)或雙向預(yù)測(b模式)的幀間模式可指代若干種基于時(shí)間的壓縮模式中的任一種。

許多應(yīng)用(例如遠(yuǎn)程桌面、遠(yuǎn)程游戲、無線顯示器、車用信息娛樂、云計(jì)算等)在日常個(gè)人生活中越來越平常。這些應(yīng)用中的視頻內(nèi)容通常是自然內(nèi)容、文本、人工圖形等的組合。在文本和人工圖形中,內(nèi)容區(qū)域可包含重復(fù)圖案(例如字符、圖標(biāo)和符號(hào)(提供幾個(gè)實(shí)例))通常存在。幀內(nèi)塊復(fù)制(bc)是一種能夠去除這種冗余,從而潛在地提高圖片內(nèi)譯碼效率的技術(shù),(例如)如在龐(pang)等人的“非rce3:具有2-dmv的幀內(nèi)運(yùn)動(dòng)補(bǔ)償”中所描述,文獻(xiàn):itu-tsg16wp3和iso/iecjtc1/sc29/wg11的jctvc-n0256,jct-vc,第14次會(huì)議:維也納,2013年7月25日到8月2日(下文“jctvc-n0256”)。在最近的jct-vc會(huì)議中,在hevc范圍擴(kuò)展標(biāo)準(zhǔn)(已從其發(fā)展到hevc的屏幕內(nèi)容譯碼(scc)擴(kuò)展)中采用幀內(nèi)bc過程。

如在圖2的實(shí)例中更詳細(xì)地說明,對(duì)于使用幀內(nèi)bc進(jìn)行譯碼的當(dāng)前譯碼單元(cu)(例如,圖4的當(dāng)前視頻塊102),視頻編碼器20可從相同圖片中的搜索區(qū)(例如,圖4的搜索區(qū)108)中獲得預(yù)測信號(hào)(例如,圖4的預(yù)測塊104)(其還可被稱作“預(yù)測塊”)。在一些情況下,視頻編碼器20可對(duì)向量進(jìn)行編碼,例如圖4的塊向量106,所述向量指示從當(dāng)前cu位移的預(yù)測塊的位置。在一些實(shí)例中,所述塊向量可指示預(yù)測塊的左上角相對(duì)于當(dāng)前cu的左上角的位置的位置。在一些情況下,塊向量還可被稱為偏移向量、位移向量或運(yùn)動(dòng)向量。視頻編碼器20可使用由塊向量標(biāo)識(shí)的預(yù)測塊而對(duì)當(dāng)前塊進(jìn)行編碼。例如,視頻編碼器20可確定表示預(yù)測塊和當(dāng)前塊之間的像素差的殘余塊,并對(duì)所確定的殘余塊以及標(biāo)識(shí)預(yù)測塊的經(jīng)編碼塊向量進(jìn)行編碼。

視頻解碼器30還可經(jīng)配置以使用與上文相對(duì)于視頻編碼器20所描述的那些大體上反向的技術(shù)。就此而言,視頻解碼器30可經(jīng)配置以執(zhí)行幀內(nèi)bc過程,以使用由塊向量標(biāo)識(shí)的預(yù)測塊來對(duì)圖片的經(jīng)譯碼當(dāng)前塊進(jìn)行解碼。例如,視頻解碼器30可基于表示預(yù)測塊與當(dāng)前塊之間的像素差的殘余塊來產(chǎn)生當(dāng)前塊。

如上文所論述,視頻編碼器20可將譯碼單元(cu)分割成預(yù)測單元(pu)。一般來說,將cu分割成pu使得視頻編碼器20能夠獲得更好的預(yù)測且能夠最小化殘余值,這可減小位流的大小。然而,在一些實(shí)例中,可能不希望在劃分視頻數(shù)據(jù)的cu時(shí)將視頻編碼器20限制在pu大小的預(yù)定義集合。例如,當(dāng)對(duì)屏幕內(nèi)容序列(其呈現(xiàn)內(nèi)容的快速改變)進(jìn)行編碼時(shí),固定pu分割大小可能不是高效的。

根據(jù)本發(fā)明的一或多種技術(shù),相對(duì)于被限制在固定大小pu或基于排的pu(例如,sdip),視頻編碼器20可實(shí)施靈活分割方案,其中pu可被劃分成各自包含數(shù)目可調(diào)節(jié)的排(即,行或列)的樣本或像素的多個(gè)子pu。作為一個(gè)實(shí)例,視頻編碼器20可將32x32cu劃分成四個(gè)16x16pu(例如,nxn),并且進(jìn)一步將16x16pu中的至少一個(gè)劃分成一個(gè)3x16子pu和一個(gè)13x16子pu。作為另一實(shí)例,視頻編碼器20可將16x16cu劃分成一個(gè)12x16pu和一個(gè)4x16pu(例如,nrx2n),并且進(jìn)一步將12x16pu劃分成一個(gè)5x16子pu和一個(gè)11x16子pu。作為又一實(shí)例,視頻編碼器20可將16x16cu劃分成一個(gè)16x12pu和一個(gè)16x4pu(例如,2nxnd),并且進(jìn)一步將16x4pu劃分成一個(gè)16x1子pu和一個(gè)16x3子pu。以此方式,視頻編碼器20可獲得更好的預(yù)測且最小化殘余值。

在一些實(shí)例中,通過對(duì)語法元素進(jìn)行編碼,視頻編碼器20可用信號(hào)發(fā)送pu分裂信息,所述語法元素指示在視頻數(shù)據(jù)的當(dāng)前cu的當(dāng)前pu的多個(gè)子pu中的一或多個(gè)子pu中的樣本(或像素)的連續(xù)排的數(shù)目。作為一個(gè)實(shí)例,視頻編碼器20可對(duì)指示第一子pu包含當(dāng)前cu的五個(gè)連續(xù)排的第一語法元素和指示第二子pu包含當(dāng)前cu的三個(gè)連續(xù)排的第二語法元素進(jìn)行編碼。在一些實(shí)例中,視頻編碼器20可針對(duì)每一相應(yīng)的子pu,對(duì)指示在相應(yīng)的子pu中的相應(yīng)數(shù)目的排的單獨(dú)語法元素進(jìn)行編碼。在一些實(shí)例中,視頻編碼器20可針對(duì)當(dāng)前pu中除了當(dāng)前pu的最后一個(gè)子pu之外的每一相應(yīng)的子pu,對(duì)指示在相應(yīng)的子pu中的相應(yīng)數(shù)目的排的單獨(dú)語法元素進(jìn)行編碼。在這些實(shí)例中,可基于包含在當(dāng)前pu中的排的總數(shù)和包含在當(dāng)前pu的其它子pu中的排的總數(shù),推斷包含在當(dāng)前pu的最后一個(gè)子pu中的排的數(shù)目。

在一些實(shí)例中,視頻編碼器20可對(duì)當(dāng)前pu是水平還是垂直劃分成多個(gè)子pu的指示進(jìn)行編碼。在當(dāng)前pu進(jìn)行水平劃分的情況下,視頻編碼器20可確定子pu中的排是視頻數(shù)據(jù)的行。類似地,在當(dāng)前pu進(jìn)行垂直劃分的情況下,視頻編碼器20可確定子pu中的排是視頻數(shù)據(jù)的列。

在一些實(shí)例中,由視頻編碼器20編碼的指示在視頻數(shù)據(jù)的當(dāng)前cu的當(dāng)前pu的多個(gè)子pu中的一或多個(gè)子pu中的排的數(shù)目的語法元素可指示亮度樣本的排的數(shù)目。在一些實(shí)例中,例如其中色度像素的數(shù)目與亮度樣本的數(shù)目相同(即,4:4:4分布),每一子pu可包含相同數(shù)目的色度樣本排和亮度樣本排。在一些實(shí)例中,例如其中色度像素的數(shù)目與亮度樣本的數(shù)目不同(即,非4:4:4分布),每一子pu可包含不同數(shù)目的色度樣本排和亮度樣本排。例如,在4:2:2分布中,視頻編碼器20可將16x16pu劃分成包含四排亮度樣本和兩排色度樣本的4x16子pu和各自包含六排亮度樣本和三排色度樣本的兩個(gè)6x16子pu,并對(duì)指示第一子pu包含四排亮度樣本的第一語法元素、指示第二子pu包含六排亮度樣本的第二語法元素以及指示16x16pu被垂直劃分成子pu的第三語法元素進(jìn)行編碼。

視頻編碼器20可用信號(hào)發(fā)送用于多個(gè)子pu中的每一子pu的預(yù)測信息。例如,針對(duì)多個(gè)子pu中的每一相應(yīng)的子pu,視頻編碼器20可用信號(hào)發(fā)送表示相應(yīng)的子pu和相應(yīng)的預(yù)測符塊之間的位移的相應(yīng)的向量的指示。在一些實(shí)例中,針對(duì)多個(gè)子pu中的每一相應(yīng)的子pu,視頻編碼器20可用信號(hào)發(fā)送表示相應(yīng)的子pu和相應(yīng)的預(yù)測符塊的像素之間的像素差的相應(yīng)的殘余塊。

在一些實(shí)例中,視頻編碼器20可用信號(hào)發(fā)送靈活分割方案是否應(yīng)用于特定pu的指示。例如,視頻編碼器20可用信號(hào)發(fā)送指示當(dāng)前pu是否被劃分成多個(gè)子pu的語法元素。當(dāng)支持靈活分割時(shí),視頻編碼器20可用信號(hào)發(fā)送子分區(qū)信息(例如,pu分裂信息和預(yù)測信息)。

在任何情況下,視頻解碼器30可將互補(bǔ)過程實(shí)施到視頻編碼器20。例如,視頻解碼器30可實(shí)施靈活分割方案,其中pu可被劃分成各自包含數(shù)目可調(diào)節(jié)的排(即,行或列)的多個(gè)子pu。

在一些實(shí)例中,基于pu分裂信息,視頻解碼器30可將當(dāng)前pu劃分成多個(gè)子pu。例如,視頻解碼器30可對(duì)語法元素進(jìn)行解碼,所述語法元素指示在視頻數(shù)據(jù)的當(dāng)前cu的當(dāng)前pu的多個(gè)子pu中的一或多個(gè)子pu中的排的數(shù)目。作為一個(gè)實(shí)例,視頻解碼器30可對(duì)指示第一子pu包含當(dāng)前cu的五個(gè)排的第一語法元素進(jìn)行解碼,并對(duì)指示第二子pu包含當(dāng)前cu的三個(gè)排的第二語法元素進(jìn)行解碼。在一些實(shí)例中,針對(duì)每一相應(yīng)的子pu,視頻解碼器30可對(duì)指示在相應(yīng)的子pu中的排的相應(yīng)數(shù)目的單獨(dú)語法元素進(jìn)行解碼。在一些實(shí)例中,針對(duì)當(dāng)前pu中除了當(dāng)前pu的最后一個(gè)子pu之外的每一相應(yīng)的子pu,視頻解碼器30可對(duì)指示在相應(yīng)的子pu中的排的相應(yīng)數(shù)目的單獨(dú)語法元素進(jìn)行解碼。在這些實(shí)例中,視頻解碼器30可基于包含在當(dāng)前pu中的排的總數(shù)和包含在當(dāng)前pu的其它子pu中的排的總數(shù),推斷包含在當(dāng)前pu的最后一個(gè)子pu中的排的數(shù)目。

在一些實(shí)例中,視頻解碼器30可對(duì)當(dāng)前pu是水平還是垂直劃分成多個(gè)子pu的指示進(jìn)行解碼。在當(dāng)前pu進(jìn)行水平劃分的情況下,視頻解碼器30可確定子pu中的排是視頻數(shù)據(jù)的行。類似地,在當(dāng)前pu進(jìn)行垂直劃分的情況下,視頻解碼器30可確定子pu中的排是視頻數(shù)據(jù)的列。

視頻解碼器30可接收用于多個(gè)子pu中的每一子pu的預(yù)測信息。例如,針對(duì)多個(gè)子pu中的每一相應(yīng)的子pu,視頻解碼器30可對(duì)表示相應(yīng)的子pu和相應(yīng)的預(yù)測符塊之間的位移的相應(yīng)的向量的指示進(jìn)行解碼。在一些實(shí)例中,針對(duì)多個(gè)子pu中的每一相應(yīng)的子pu,視頻解碼器30可對(duì)表示相應(yīng)的子pu和相應(yīng)的預(yù)測符塊之間的像素差的相應(yīng)的殘余塊進(jìn)行解碼。

在一些實(shí)例中,視頻解碼器30可用信號(hào)發(fā)送靈活分割方案是否應(yīng)用于特定pu的指示。例如,視頻解碼器30可用信號(hào)發(fā)送指示當(dāng)前pu是否被劃分成多個(gè)子pu的語法元素。當(dāng)支持靈活分割時(shí),視頻解碼器30可用信號(hào)發(fā)送子分區(qū)信息(例如,pu分裂信息和預(yù)測信息)。

圖2是說明可實(shí)施本發(fā)明中描述的技術(shù)的實(shí)例視頻編碼器的框圖。視頻編碼器20可執(zhí)行視頻切片內(nèi)的視頻塊的幀內(nèi)和幀間譯碼。幀內(nèi)譯碼依賴于空間預(yù)測以減少或去除給定視頻幀或圖片內(nèi)的視頻中的空間冗余。幀間譯碼依賴于時(shí)間或視圖間預(yù)測以減少或去除視頻序列的相鄰幀或圖片內(nèi)的視頻中的冗余。幀內(nèi)模式(i模式)可指若干種基于空間的壓縮模式中的任一種。例如單向預(yù)測(p模式)或雙向預(yù)測(b模式)的幀間模式可包含若干種基于時(shí)間的壓縮模式中的任一種。視頻編碼器20還可經(jīng)配置以利用用于對(duì)來自同一圖片內(nèi)的預(yù)測性視頻數(shù)據(jù)塊的視頻數(shù)據(jù)塊的幀內(nèi)預(yù)測的模式,例如如本文中所描述的幀內(nèi)bc模式。

在圖2的實(shí)例中,視頻編碼器20包含分割單元35、預(yù)測處理單元41、經(jīng)重構(gòu)區(qū)域存儲(chǔ)器64、濾波處理單元66、參考圖片存儲(chǔ)器68、求和器50、變換處理單元52、量化處理單元54和熵編碼單元56。預(yù)測處理單元41包含運(yùn)動(dòng)估計(jì)單元42、運(yùn)動(dòng)補(bǔ)償單元44、幀內(nèi)預(yù)測處理單元46和幀內(nèi)塊復(fù)制(幀內(nèi)bc)單元48。對(duì)于視頻塊重構(gòu),視頻編碼器20還包含逆量化處理單元58、逆變換處理單元60和求和器62。

在各種實(shí)例中,可給視頻編碼器20的單元分派任務(wù)以執(zhí)行本發(fā)明的技術(shù)。并且,在一些實(shí)例中,本發(fā)明的技術(shù)可在視頻編碼器20的單元中的一或多個(gè)當(dāng)中進(jìn)行劃分。例如,幀內(nèi)bc單元48可單獨(dú)地或結(jié)合視頻編碼器的其它單元(例如,運(yùn)動(dòng)估計(jì)單元42、運(yùn)動(dòng)補(bǔ)償單元44、幀內(nèi)預(yù)測處理單元46、經(jīng)重構(gòu)區(qū)域存儲(chǔ)器64和熵編碼單元56)執(zhí)行本發(fā)明的技術(shù)。

如圖2中所示,視頻編碼器20接收視頻數(shù)據(jù),并且分割單元35將所述數(shù)據(jù)分割成視頻塊。此分割還可包含分割成切片、單元片或其它較大單元,以及例如根據(jù)lcu和cu的四叉樹結(jié)構(gòu)的視頻塊分割。視頻編碼器20大體上說明對(duì)待編碼視頻切片內(nèi)的視頻塊進(jìn)行編碼的組件。所述切片可劃分成多個(gè)視頻塊(并且可能劃分成被稱作單元片的視頻塊集合)。

預(yù)測處理單元41可基于速率失真結(jié)果(例如,譯碼位速率和失真層級(jí))而選擇用于當(dāng)前視頻塊的多個(gè)可能的譯碼模式中的一個(gè),例如多個(gè)幀內(nèi)譯碼模式中的一個(gè)、多個(gè)幀間譯碼模式中的一個(gè)或幀內(nèi)bc模式。預(yù)測處理單元41可將所得預(yù)測塊提供到求和器50以產(chǎn)生殘余塊數(shù)據(jù),并提供到求和器62以重構(gòu)當(dāng)前塊從而用于預(yù)測其它視頻塊,例如作為參考圖片。

除了選擇譯碼模式之外,預(yù)測處理單元41還可與分割單元35合作以將視頻數(shù)據(jù)塊分割成子塊。例如,分割單元35可一開始將幀或切片分割成lcu,并基于速率失真分析(例如,速率失真優(yōu)化)將lcu中的每一個(gè)分割成cu。

預(yù)測處理單元41內(nèi)的幀內(nèi)預(yù)測處理單元46可相對(duì)于與待譯碼當(dāng)前塊在相同幀或切片中的一或多個(gè)相鄰塊執(zhí)行當(dāng)前視頻塊的幀內(nèi)預(yù)測性譯碼,以提供空間壓縮。預(yù)測處理單元41內(nèi)的運(yùn)動(dòng)估計(jì)單元42和運(yùn)動(dòng)補(bǔ)償單元44相對(duì)于一或多個(gè)參考圖片中的一或多個(gè)預(yù)測塊執(zhí)行當(dāng)前視頻塊的幀間預(yù)測性譯碼(例如)以提供時(shí)間壓縮。

運(yùn)動(dòng)估計(jì)單元42可經(jīng)配置以根據(jù)用于視頻序列的預(yù)定模式來確定用于視頻切片的幀間預(yù)測模式。運(yùn)動(dòng)估計(jì)單元42和運(yùn)動(dòng)補(bǔ)償單元44可高度集成,但出于概念的目的分別進(jìn)行說明。由運(yùn)動(dòng)估計(jì)單元42執(zhí)行的運(yùn)動(dòng)估計(jì)是產(chǎn)生運(yùn)動(dòng)向量的過程,所述過程估計(jì)視頻塊的運(yùn)動(dòng)。例如,運(yùn)動(dòng)向量可指示當(dāng)前視頻幀或圖片內(nèi)的視頻塊的pu相對(duì)于參考圖片內(nèi)的預(yù)測塊的位移。類似地,根據(jù)本發(fā)明的技術(shù)的用于幀內(nèi)bc的塊向量指示當(dāng)前視頻幀或圖片內(nèi)的視頻塊的pu相對(duì)于同一幀或圖片內(nèi)的預(yù)測塊的位移。幀內(nèi)bc單元48可以類似于運(yùn)動(dòng)估計(jì)單元42確定運(yùn)動(dòng)向量以進(jìn)行幀間預(yù)測的方式來確定用于幀內(nèi)bc譯碼的向量(例如塊向量),或可利用運(yùn)動(dòng)估計(jì)單元42來確定所述塊向量。

例如由運(yùn)動(dòng)估計(jì)單元42和/或幀內(nèi)bc單元標(biāo)識(shí)以用于幀間預(yù)測或幀內(nèi)bc預(yù)測的預(yù)測塊是發(fā)現(xiàn)在像素差方面與待譯碼的視頻塊的pu緊密匹配的塊,所述像素差可通過絕對(duì)差總和(sad)、平方差總和(ssd)或其它差異度量確定。在一些實(shí)例中,視頻編碼器20可計(jì)算存儲(chǔ)在參考圖片存儲(chǔ)器68中的參考圖片的子整數(shù)像素位置的值或存儲(chǔ)在經(jīng)重構(gòu)區(qū)域存儲(chǔ)器64中的當(dāng)前圖片的經(jīng)重構(gòu)區(qū)域的值。例如,視頻編碼器20可內(nèi)插參考圖片的四分之一像素位置、八分之一像素位置或其它分?jǐn)?shù)像素位置的值。因此,運(yùn)動(dòng)估計(jì)單元42和/或幀內(nèi)bc單元48可相對(duì)于全像素位置和分?jǐn)?shù)像素位置執(zhí)行對(duì)預(yù)測塊的搜索,并輸出具有分?jǐn)?shù)像素精確度的向量。

運(yùn)動(dòng)估計(jì)單元42通過比較pu的位置與參考圖片的預(yù)測塊的位置來計(jì)算用于經(jīng)幀間譯碼切片中的視頻塊的pu的運(yùn)動(dòng)向量。參考圖片可選自第一參考圖片列表(列表0或refpiclist0)或第二參考圖片列表(列表1或refpiclist1),參考圖片列表中的每一個(gè)標(biāo)識(shí)存儲(chǔ)在參考圖片存儲(chǔ)器68中的一或多個(gè)參考圖片。運(yùn)動(dòng)估計(jì)單元42向熵編碼單元56和運(yùn)動(dòng)補(bǔ)償單元44發(fā)送計(jì)算出的運(yùn)動(dòng)向量。

由運(yùn)動(dòng)補(bǔ)償單元44執(zhí)行的運(yùn)動(dòng)補(bǔ)償可涉及基于由運(yùn)動(dòng)估計(jì)(可能執(zhí)行對(duì)子像素精確度的內(nèi)插)確定的運(yùn)動(dòng)向量獲取或產(chǎn)生預(yù)測塊。在接收到當(dāng)前視頻塊的pu的運(yùn)動(dòng)向量后,運(yùn)動(dòng)補(bǔ)償單元44可在參考圖片列表中的一個(gè)中定位所述運(yùn)動(dòng)向量指向的預(yù)測塊。

在一些實(shí)例中,幀內(nèi)bc單元48可以類似于上文相對(duì)于運(yùn)動(dòng)估計(jì)單元42和運(yùn)動(dòng)補(bǔ)償單元44所描述的方式產(chǎn)生向量并獲取預(yù)測塊,但其中所述預(yù)測塊與當(dāng)前塊在相同的圖片或幀中,且所述向量被稱作塊向量,與運(yùn)動(dòng)向量形成對(duì)照。在其它實(shí)例中,幀內(nèi)bc單元48可完全或部分地使用運(yùn)動(dòng)估計(jì)單元42和運(yùn)動(dòng)補(bǔ)償單元44,以根據(jù)本文所描述的技術(shù)執(zhí)行用于幀內(nèi)bc預(yù)測的此類功能。在任一情況下,對(duì)于幀內(nèi)bc,預(yù)測塊可為被發(fā)現(xiàn)在像素差方面與待譯碼塊緊密匹配的塊,所述像素差可通過絕對(duì)差總和(sad)、平方差總和(ssd)或其它差異度量確定,且塊的標(biāo)識(shí)可包含用于子整數(shù)像素位置的值的計(jì)算。

在任何情況下,視頻編碼器20可通過從正進(jìn)行譯碼的當(dāng)前視頻塊的像素值減去預(yù)測塊的像素值形成殘余視頻塊,從而形成像素差值。所述像素差值形成所述塊的殘余數(shù)據(jù),且可包含亮度分量差和色度分量差兩者。求和器50表示執(zhí)行此減法運(yùn)算的一或多個(gè)組件。幀內(nèi)bc單元48和/或運(yùn)動(dòng)補(bǔ)償單元44還可產(chǎn)生與視頻塊和視頻切片相關(guān)聯(lián)的語法元素,以供視頻解碼器(例如視頻解碼器30)對(duì)視頻切片的視頻塊進(jìn)行解碼。所述語法元素可包含(例如)定義用于標(biāo)識(shí)預(yù)測塊的向量的語法元素、指示預(yù)測模式的任何旗標(biāo)或相對(duì)于本發(fā)明的技術(shù)所描述的任何其它語法。

幀內(nèi)預(yù)測處理單元46可對(duì)當(dāng)前塊進(jìn)行幀內(nèi)預(yù)測,這是運(yùn)動(dòng)估計(jì)單元42和運(yùn)動(dòng)補(bǔ)償單元44所執(zhí)行的幀間預(yù)測或幀內(nèi)bc單元48所執(zhí)行的幀內(nèi)bc預(yù)測的替代方案,如上文所描述。具體來說,幀內(nèi)預(yù)測處理單元46可確定用于對(duì)當(dāng)前塊進(jìn)行編碼的幀內(nèi)預(yù)測模式。在一些實(shí)例中,幀內(nèi)預(yù)測處理單元46可(例如)在單獨(dú)的編碼遍次期間使用各種幀內(nèi)預(yù)測模式來對(duì)當(dāng)前視頻塊進(jìn)行編碼,且?guī)瑑?nèi)預(yù)測處理單元46(或在一些實(shí)例中,預(yù)測處理單元41)可從經(jīng)測試模式中選擇適當(dāng)?shù)膸瑑?nèi)預(yù)測模式來使用。例如,幀內(nèi)預(yù)測處理單元46可使用速率失真分析計(jì)算各種經(jīng)測試幀內(nèi)預(yù)測模式的速率失真值,并在所述經(jīng)測試模式當(dāng)中選擇具有最佳速率失真特性的幀內(nèi)預(yù)測模式。速率失真分析大體上確定經(jīng)編碼塊與經(jīng)編碼以產(chǎn)生所述經(jīng)編碼塊的未經(jīng)編碼的原始?jí)K之間的失真(或誤差)的量,以及用于產(chǎn)生經(jīng)編碼塊的位速率(也就是說,位數(shù)目)。幀內(nèi)預(yù)測處理單元46可根據(jù)用于各種經(jīng)編碼塊的失真和速率來計(jì)算比率,以確定哪一幀內(nèi)預(yù)測模式呈現(xiàn)用于所述塊的最佳速率失真值。

在任何情況下,在選擇用于塊的幀內(nèi)預(yù)測模式之后,幀內(nèi)預(yù)測處理單元46可將指示用于所述塊的選定幀內(nèi)預(yù)測模式的信息提供到熵編碼單元56。熵編碼單元56可根據(jù)本發(fā)明的技術(shù)對(duì)指示選定幀內(nèi)預(yù)測模式的信息進(jìn)行編碼。視頻編碼器20在所發(fā)射的位流中可包含配置數(shù)據(jù),所述配置數(shù)據(jù)可包含多個(gè)幀內(nèi)預(yù)測模式索引表和多個(gè)經(jīng)修改的幀內(nèi)預(yù)測模式索引表(也稱為碼字映射表)、對(duì)用于各種塊的上下文進(jìn)行編碼的定義,以及最可能幀內(nèi)預(yù)測模式、幀內(nèi)預(yù)測模式索引表和經(jīng)修改的幀內(nèi)預(yù)測模式索引表的指示以用于所述上下文中的每一者。

在預(yù)測處理單元41經(jīng)由幀間預(yù)測、幀內(nèi)預(yù)測或幀內(nèi)bc預(yù)測產(chǎn)生當(dāng)前視頻塊的預(yù)測塊之后,視頻編碼器20通過(例如)經(jīng)由求和器50從當(dāng)前視頻塊減去預(yù)測塊而形成殘余視頻塊。殘余塊中的殘余視頻數(shù)據(jù)可包含在一或多個(gè)tu中,并且可應(yīng)用于變換處理單元52。變換處理單元52使用變換(例如,離散余弦變換(dct)或在概念上相似的變換)將殘余視頻數(shù)據(jù)變換成殘余變換系數(shù)。變換處理單元52可將殘余視頻數(shù)據(jù)從像素值域轉(zhuǎn)換到變換域,例如頻域。

變換處理單元52可將所得變換系數(shù)發(fā)送到量化處理單元54。量化處理單元54可量化所述變換系數(shù)以進(jìn)一步減小位速率。量化過程可減少與系數(shù)中的一些或全部相關(guān)聯(lián)的位深度。可通過調(diào)節(jié)量化參數(shù)來修改量化的程度。在一些實(shí)例中,量化處理單元54可接著執(zhí)行對(duì)包含經(jīng)量化變換系數(shù)的矩陣的掃描。替代地,熵編碼單元56可執(zhí)行掃描。

在量化之后,熵編碼單元56對(duì)經(jīng)量化變換系數(shù)進(jìn)行熵編碼。例如,熵編碼單元56可執(zhí)行上下文自適應(yīng)可變長度譯碼(cavlc)、上下文自適應(yīng)二進(jìn)制算術(shù)譯碼(cabac)、基于語法的上下文自適應(yīng)二進(jìn)制算術(shù)譯碼(sbac)、概率區(qū)間分割熵(pipe)譯碼或另一熵譯碼方法或技術(shù)。熵編碼單元56可執(zhí)行本文所描述的技術(shù)中的任一種來對(duì)語法元素進(jìn)行二進(jìn)制化和編碼,包含向量分量、旗標(biāo)和其它語法元素,從而根據(jù)幀內(nèi)bc模式進(jìn)行預(yù)測。在由熵編碼單元56進(jìn)行熵編碼之后,經(jīng)編碼視頻位流可被發(fā)射到視頻解碼器30,或經(jīng)存檔以稍后供視頻解碼器30進(jìn)行發(fā)射或檢索。

逆量化處理單元58和逆變換處理單元60分別應(yīng)用逆量化和逆變換,以在像素域中重構(gòu)殘余塊供稍后用作用于其它視頻塊的預(yù)測的參考?jí)K。運(yùn)動(dòng)補(bǔ)償單元44和/或幀內(nèi)bc單元48可通過將殘余塊與參考圖片列表中的一個(gè)內(nèi)的參考圖片中的一個(gè)的預(yù)測塊相加來計(jì)算參考?jí)K。運(yùn)動(dòng)補(bǔ)償單元44和/或幀內(nèi)bc單元48也可將一或多個(gè)內(nèi)插濾波器應(yīng)用于經(jīng)重構(gòu)殘余塊,以計(jì)算用于運(yùn)動(dòng)估計(jì)的子整數(shù)像素值。

求和器62將經(jīng)重構(gòu)殘余塊與由運(yùn)動(dòng)補(bǔ)償單元44和/或幀內(nèi)bc單元48產(chǎn)生的運(yùn)動(dòng)補(bǔ)償預(yù)測塊相加以產(chǎn)生經(jīng)重構(gòu)視頻塊。經(jīng)重構(gòu)區(qū)域存儲(chǔ)器64根據(jù)視頻編碼器20對(duì)用于當(dāng)前視頻塊的幀內(nèi)bc(例如幀內(nèi)bc單元48)的經(jīng)重構(gòu)區(qū)域的定義來存儲(chǔ)經(jīng)重構(gòu)視頻塊,如本文中所描述。經(jīng)重構(gòu)區(qū)域存儲(chǔ)器64可存儲(chǔ)尚未通過濾波處理單元66進(jìn)行環(huán)路內(nèi)濾波的經(jīng)重構(gòu)建視頻塊。求和器62可與經(jīng)重構(gòu)區(qū)域存儲(chǔ)器64同時(shí)向?yàn)V波處理單元66提供經(jīng)重構(gòu)建視頻塊,或者當(dāng)幀內(nèi)bc的經(jīng)重構(gòu)區(qū)域不再需要時(shí),經(jīng)重構(gòu)區(qū)域存儲(chǔ)器64可將經(jīng)重構(gòu)建視頻塊釋放到濾波處理單元66。在任一情況下,幀內(nèi)bc單元48可搜索經(jīng)重構(gòu)區(qū)域存儲(chǔ)器64中的經(jīng)重構(gòu)建視頻塊,以供在與當(dāng)前視頻塊相同的圖片內(nèi)的預(yù)測視頻塊預(yù)測當(dāng)前視頻塊。

濾波處理單元66可對(duì)經(jīng)重構(gòu)視頻塊執(zhí)行環(huán)路內(nèi)濾波。環(huán)路內(nèi)濾波可包含解塊濾波以對(duì)塊邊界進(jìn)行濾波,從而從經(jīng)重構(gòu)視頻中去除成塊效應(yīng)假象。環(huán)路內(nèi)濾波還可包含sao濾波以改善經(jīng)重構(gòu)視頻。其中一些可進(jìn)行環(huán)路內(nèi)濾波的經(jīng)重構(gòu)塊可作為參考圖片存儲(chǔ)在參考圖片存儲(chǔ)器68中。參考圖片可包含可由運(yùn)動(dòng)估計(jì)單元42和運(yùn)動(dòng)補(bǔ)償單元44用作預(yù)測塊以對(duì)后續(xù)視頻幀或圖片中的塊進(jìn)行幀間預(yù)測的經(jīng)重構(gòu)塊。

在一些實(shí)例中,熵編碼單元56可使用hevc中的運(yùn)動(dòng)向量差(mvd)譯碼方法對(duì)塊向量的值進(jìn)行編碼。在一些實(shí)例中,相對(duì)于使用hevc中的mvd譯碼方法對(duì)塊向量的值進(jìn)行編碼,熵編碼單元56可使用針對(duì)塊向量的特性定制的編碼方法對(duì)塊向量的值進(jìn)行編碼。以此方式,本發(fā)明的技術(shù)可減少用于對(duì)塊向量的值進(jìn)行編碼的語法元素的數(shù)目,這可提高譯碼效率。

塊向量可為包含水平分量和垂直分量的二維塊向量,或所述塊向量可為包含水平分量或垂直分量的一維塊向量。水平分量可表示預(yù)測性視頻數(shù)據(jù)塊與當(dāng)前視頻數(shù)據(jù)塊之間的水平位移。垂直分量可表示預(yù)測性視頻數(shù)據(jù)塊與當(dāng)前視頻數(shù)據(jù)塊之間的垂直位移。預(yù)測性視頻數(shù)據(jù)塊可與當(dāng)前視頻數(shù)據(jù)塊在相同的幀內(nèi)。幀內(nèi)bc單元48可輸出水平分量和垂直分量中的一者或兩者的多個(gè)語法元素。

在一些實(shí)例中,相對(duì)于對(duì)表示塊向量的值的語法元素進(jìn)行編碼,熵編碼單元56可對(duì)表示塊向量和塊向量預(yù)測符的值之間的差的語法元素進(jìn)行編碼。在一些實(shí)例中,塊向量預(yù)測符可為先前經(jīng)譯碼塊向量(即,呈譯碼順序)。例如,為了對(duì)當(dāng)前塊的塊向量的值進(jìn)行編碼,幀內(nèi)bc單元48可確定塊向量和先前經(jīng)譯碼塊向量之間的差,并使熵編碼單元56對(duì)指示塊向量和先前經(jīng)譯碼塊向量之間的差的一或多個(gè)語法元素進(jìn)行編碼。以此方式,幀內(nèi)bc單元48可減少用于對(duì)塊向量進(jìn)行編碼的數(shù)據(jù)量。

在一些實(shí)例中,幀內(nèi)bc單元48可從多個(gè)塊向量預(yù)測符候選者中選擇特定塊向量預(yù)測符候選者。例如,幀內(nèi)bc單元48可從多個(gè)塊向量預(yù)測符候選者中選擇與當(dāng)前塊的塊向量最佳匹配的特定塊向量預(yù)測符候選者作為塊向量預(yù)測符候選者。例如,幀內(nèi)bc單元48可確定來自多個(gè)塊向量預(yù)測符候選者的哪一塊向量預(yù)測符候選者具有與當(dāng)前塊的塊向量的值最接近的值。

如上文所論述,在一些實(shí)例中,幀內(nèi)bc可與幀間預(yù)測模式“合并”。在這些實(shí)例中,描述為通過幀內(nèi)bc單元48執(zhí)行的操作中的一或多個(gè)可由視頻編碼器20的一或多個(gè)其它組件執(zhí)行,例如運(yùn)動(dòng)估計(jì)單元42和/或運(yùn)動(dòng)補(bǔ)償單元44。

如上文所論述,預(yù)測處理單元41和/或分割單元35可將視頻數(shù)據(jù)塊分割成子塊。例如,預(yù)測處理單元41和/或分割單元35可將視頻數(shù)據(jù)的圖片分割成lcu和cu,并且可進(jìn)一步將cu分割成pu。在一些實(shí)例中,可能不希望在劃分視頻數(shù)據(jù)的cu時(shí)將預(yù)測處理單元41和/或分割單元35限制在pu大小的預(yù)定義集合。例如,當(dāng)對(duì)屏幕內(nèi)容序列(其呈現(xiàn)內(nèi)容的快速改變)進(jìn)行編碼時(shí),固定pu分割大小可能不是高效的。

根據(jù)本發(fā)明的一或多種技術(shù),相對(duì)于被限制在固定大小pu或基于排的pu(例如,sdip),處理單元41和/或分割單元35可實(shí)施靈活分割方案,其中pu可被劃分成各自包含數(shù)目可調(diào)節(jié)的排(即,行或列)的多個(gè)子pu。作為一個(gè)實(shí)例,處理單元41和/或分割單元35可將32x32cu劃分成四個(gè)16x16pu(例如,nxn),并且進(jìn)一步將16x16pu中的至少一個(gè)劃分成一個(gè)3x16子pu和一個(gè)13x16子pu。作為另一實(shí)例,處理單元41和/或分割單元35可將16x16cu劃分成一個(gè)12x16pu和一個(gè)4x16pu(例如,nrx2n),并且進(jìn)一步將12x16pu劃分成一個(gè)5x16子pu和一個(gè)11x16子pu。下文參考圖6a到6d論述靈活分割方案的另外實(shí)例和細(xì)節(jié)。

具體來說,預(yù)測處理單元41可針對(duì)視頻數(shù)據(jù)塊(例如,cu或編碼樹單元(ctu))執(zhí)行多種編碼遍次。在每一遍次期間,預(yù)測處理單元41可測試多種編碼決策,例如塊的分割、預(yù)測模式(例如,幀內(nèi)和幀間預(yù)測)等等。此類分割可包含將pu細(xì)分成具有特定數(shù)目的排的樣本的子pu。在每一遍次結(jié)束時(shí),預(yù)測處理單元41可計(jì)算所述遍次的速率失真度量。最終,預(yù)測處理單元41可選擇使得編碼遍次產(chǎn)生最佳執(zhí)行速率失真特性的編碼決策的組合。

在任何情況下,通過具有將pu劃分成子pu的選擇方案,處理單元41和/或分割單元35也許能夠定位每一子pu的預(yù)測符塊,其具有與所述子pu中的像素更加緊密匹配的像素。以此方式,處理單元41和/或分割單元35可獲得更好的預(yù)測且最小化殘余值。以此方式最小化殘余值可最終減小包含經(jīng)編碼視頻數(shù)據(jù)的所得位流的位速率。

圖3是說明可實(shí)施本發(fā)明中描述的技術(shù)的實(shí)例視頻解碼器30的框圖。在圖3的實(shí)例中,視頻解碼器30包含熵解碼單元80、預(yù)測處理單元81、逆量化處理單元86、逆變換處理單元88、求和器90、經(jīng)重構(gòu)區(qū)域存儲(chǔ)器92、濾波處理單元94和參考圖片存儲(chǔ)器96。預(yù)測處理單元81包含運(yùn)動(dòng)補(bǔ)償單元82、幀內(nèi)預(yù)測處理單元84和幀內(nèi)塊復(fù)制(幀內(nèi)bc)單元85。在一些實(shí)例中,視頻解碼器30可執(zhí)行與相對(duì)于圖2的視頻編碼器20描述的編碼遍次大體上反向的解碼遍次。

在各種實(shí)例中,可給視頻解碼器30的單元分派任務(wù)以執(zhí)行本發(fā)明的技術(shù)。并且,在一些實(shí)例中,本發(fā)明的技術(shù)可在視頻解碼器30的單元中的一或多個(gè)當(dāng)中進(jìn)行劃分。例如,幀內(nèi)bc單元85可單獨(dú)地或結(jié)合視頻解碼器30的其它單元(例如,運(yùn)動(dòng)補(bǔ)償單元82、幀內(nèi)預(yù)測處理單元84、經(jīng)重構(gòu)區(qū)域存儲(chǔ)器92和熵解碼單元80)執(zhí)行本發(fā)明的技術(shù)。

在解碼過程期間,視頻解碼器30從視頻編碼器20接收表示經(jīng)編碼視頻切片的視頻塊和相關(guān)聯(lián)語法元素的經(jīng)編碼視頻位流。視頻解碼器30的熵解碼單元80對(duì)位流進(jìn)行熵解碼以產(chǎn)生經(jīng)量化系數(shù)、用于幀間預(yù)測的運(yùn)動(dòng)向量、用于幀內(nèi)bc預(yù)測的塊向量,以及本文中所描述的其它語法元素。熵解碼單元80可執(zhí)行本文所描述的用于語法元素(包含向量分量、旗標(biāo)和其它語法元素)的二進(jìn)制化和編碼的技術(shù)中的任一種的逆技術(shù),以根據(jù)幀內(nèi)bc模式進(jìn)行預(yù)測。熵解碼單元80將向量和其它語法元素轉(zhuǎn)發(fā)到預(yù)測處理單元81。視頻解碼器30可接收序列層級(jí)、圖片層級(jí)、視頻切片層級(jí)和/或視頻塊層級(jí)的語法元素。

根據(jù)本發(fā)明中描述的技術(shù)的一或多個(gè)方面,相對(duì)于使用hevc中的運(yùn)動(dòng)向量差(mvd)譯碼方法對(duì)塊向量的值進(jìn)行解碼,熵解碼單元80可使用針對(duì)用于幀內(nèi)bc模式的塊向量的特性定制的解碼方法對(duì)塊向量的值進(jìn)行解碼。例如,相對(duì)于基于四個(gè)語法元素來對(duì)塊向量的值進(jìn)行解碼,熵解碼單元80可基于三個(gè)語法元素來對(duì)塊向量的值進(jìn)行解碼。

在一些實(shí)例中,熵解碼單元80可使用hevc中的運(yùn)動(dòng)向量差(mvd)譯碼方法對(duì)塊向量的值進(jìn)行解碼。在一些實(shí)例中,相對(duì)于使用hevc中的mvd譯碼方法對(duì)塊向量的值進(jìn)行編碼,熵解碼單元80可使用針對(duì)塊向量的特性定制的編碼方法對(duì)塊向量的值進(jìn)行解碼。以此方式,本發(fā)明的技術(shù)可減少用于對(duì)塊向量的值進(jìn)行解碼的語法元素的數(shù)目,這可提高譯碼效率。

根據(jù)本發(fā)明的一或多種技術(shù),視頻解碼器30可實(shí)施自適應(yīng)pu分割方案。例如,預(yù)測處理單元81可將視頻數(shù)據(jù)的當(dāng)前cu的當(dāng)前pu劃分成多個(gè)子pu。在一些實(shí)例中,響應(yīng)于針對(duì)當(dāng)前pu在經(jīng)編碼視頻位流中接收到當(dāng)前pu進(jìn)行劃分的指示,預(yù)測處理單元81可將當(dāng)前pu劃分成多個(gè)子pu。例如,預(yù)測處理單元81可從熵解碼單元80接收指示在視頻數(shù)據(jù)的當(dāng)前cu的pu的多個(gè)子pu中的一或多個(gè)子pu中的排的數(shù)目的語法元素。下文參考圖6a到6d論述靈活分割方案的另外實(shí)例和細(xì)節(jié)。

當(dāng)視頻切片譯碼為經(jīng)幀內(nèi)譯碼(i)切片時(shí),預(yù)測處理單元81的幀內(nèi)預(yù)測單元84可基于用信號(hào)發(fā)送的幀內(nèi)預(yù)測模式及來自當(dāng)前幀或圖片的先前經(jīng)解碼塊的數(shù)據(jù)而產(chǎn)生用于當(dāng)前視頻切片的視頻塊的預(yù)測數(shù)據(jù)。當(dāng)視頻幀譯碼為經(jīng)幀間譯碼(即,b或p)切片時(shí),預(yù)測處理單元81的運(yùn)動(dòng)補(bǔ)償單元82基于從熵解碼單元80接收的運(yùn)動(dòng)向量和其它語法元素而產(chǎn)生用于當(dāng)前視頻切片的視頻塊的預(yù)測塊。所述預(yù)測塊可從參考圖片列表中的一個(gè)列表內(nèi)的參考圖片中的一個(gè)參考圖片中產(chǎn)生。視頻解碼器30可使用默認(rèn)建構(gòu)技術(shù)或基于存儲(chǔ)在參考圖片存儲(chǔ)器96中的參考圖片的任何其它技術(shù)來建構(gòu)參考幀列表refpiclist0和refpiclist1。當(dāng)視頻塊根據(jù)本文中所描述的幀內(nèi)bc模式進(jìn)行譯碼時(shí),預(yù)測處理單元81的幀內(nèi)bc單元85基于從熵解碼單元80接收的塊向量和其它語法元素而產(chǎn)生用于當(dāng)前視頻塊的預(yù)測塊。所述預(yù)測塊可在與由視頻編碼器20定義的當(dāng)前視頻塊相同的圖片內(nèi)的經(jīng)重構(gòu)區(qū)域內(nèi),并且可從經(jīng)重構(gòu)區(qū)域存儲(chǔ)器92中檢索到。

運(yùn)動(dòng)補(bǔ)償單元82和幀內(nèi)bc單元85通過分析向量和其它語法元素來確定當(dāng)前視頻切片的視頻塊的預(yù)測信息,并使用預(yù)測信息以產(chǎn)生用于正進(jìn)行解碼的當(dāng)前視頻塊的預(yù)測塊。例如,運(yùn)動(dòng)補(bǔ)償單元82使用接收到的語法元素中的一些,以確定用于對(duì)視頻切片的視頻塊進(jìn)行譯碼的預(yù)測模式(例如,幀內(nèi)預(yù)測或幀間預(yù)測)、幀間預(yù)測切片類型(例如,b切片或p切片)、切片的參考圖片列表中的一或多個(gè)的建構(gòu)信息、切片的每一經(jīng)幀間編碼的視頻塊的運(yùn)動(dòng)向量、切片的每一經(jīng)幀間譯碼的視頻塊的幀間預(yù)測狀態(tài),以及用于對(duì)當(dāng)前視頻切片中的視頻塊進(jìn)行解碼的其它信息。類似地,幀內(nèi)bc單元85可使用接收到的語法元素中的一些(例如,旗標(biāo)),以確定使用幀內(nèi)bc模式、指示圖片的哪些視頻塊在經(jīng)重構(gòu)區(qū)域內(nèi)且應(yīng)該存儲(chǔ)在經(jīng)重構(gòu)區(qū)域存儲(chǔ)器92中的建構(gòu)信息、切片的每一經(jīng)幀內(nèi)bc預(yù)測的視頻塊的塊向量、切片的每一經(jīng)幀內(nèi)bc預(yù)測的視頻塊的幀內(nèi)bc預(yù)測狀態(tài),以及用于對(duì)當(dāng)前視頻切片中的視頻塊進(jìn)行解碼的其它信息來對(duì)當(dāng)前視頻塊進(jìn)行預(yù)測。

運(yùn)動(dòng)補(bǔ)償單元82和幀內(nèi)bc單元85還可基于內(nèi)插濾波器而執(zhí)行內(nèi)插。運(yùn)動(dòng)補(bǔ)償單元82和幀內(nèi)bc單元85可使用如視頻編碼器20在視頻塊的編碼期間使用的內(nèi)插濾波器來計(jì)算用于預(yù)測塊的子整數(shù)像素的經(jīng)內(nèi)插值。在此情況下,運(yùn)動(dòng)補(bǔ)償單元82和幀內(nèi)bc單元85可根據(jù)接收到的語法元素確定視頻編碼器20所使用的內(nèi)插濾波器,并使用所述內(nèi)插濾波器來產(chǎn)生預(yù)測塊。

逆量化處理單元86對(duì)在位流中提供且由熵解碼單元80解碼的經(jīng)量化變換系數(shù)進(jìn)行逆量化,即解量化。逆量化過程可包含使用視頻編碼器20針對(duì)視頻切片中的每一視頻塊計(jì)算以確定應(yīng)應(yīng)用的量化程度和,同樣地,逆量化程度的量化參數(shù)。逆變換處理單元88將逆變換(例如,逆dct、逆整數(shù)變換或在概念上類似的逆變換過程)應(yīng)用于變換系數(shù),以便產(chǎn)生像素域中的殘余塊。

在運(yùn)動(dòng)補(bǔ)償單元82或幀內(nèi)bc單元85基于向量和其它語法元素而產(chǎn)生用于當(dāng)前視頻塊的預(yù)測塊之后,視頻解碼器30通過對(duì)來自逆變換處理單元88的殘余塊與由運(yùn)動(dòng)補(bǔ)償單元82和幀內(nèi)bc單元85產(chǎn)生的對(duì)應(yīng)的預(yù)測塊進(jìn)行求和來形成經(jīng)解碼視頻塊。求和器90表示執(zhí)行此求和運(yùn)算以產(chǎn)生經(jīng)重構(gòu)建視頻塊的一或多個(gè)分量。

經(jīng)重構(gòu)區(qū)域存儲(chǔ)器92根據(jù)視頻編碼器20對(duì)當(dāng)前視頻塊的幀內(nèi)bc的經(jīng)重構(gòu)區(qū)域的定義來存儲(chǔ)經(jīng)重構(gòu)視頻塊,如本文所述。經(jīng)重構(gòu)區(qū)域域存儲(chǔ)器92可存儲(chǔ)尚未通過濾波處理單元394進(jìn)行環(huán)路內(nèi)濾波的經(jīng)重構(gòu)建視頻塊。求和器90可與經(jīng)重構(gòu)區(qū)域存儲(chǔ)器92同時(shí)向?yàn)V波處理單元94提供經(jīng)重構(gòu)建視頻塊,或者當(dāng)幀內(nèi)bc的經(jīng)重構(gòu)區(qū)域不再需要時(shí),經(jīng)重構(gòu)區(qū)域存儲(chǔ)器92可將經(jīng)重構(gòu)建視頻塊釋放到濾波處理單元94。在任一情況下,幀內(nèi)bc單元85從經(jīng)重構(gòu)區(qū)域存儲(chǔ)器92中檢索用于當(dāng)前視頻塊的預(yù)測視頻塊。

濾波處理單元94可對(duì)經(jīng)重構(gòu)視頻塊執(zhí)行環(huán)路內(nèi)濾波。環(huán)路內(nèi)濾波可包含解塊濾波以對(duì)塊邊界進(jìn)行濾波,從而從經(jīng)重構(gòu)視頻中去除成塊效應(yīng)假象。環(huán)路內(nèi)濾波還可包含sao濾波以改善經(jīng)重構(gòu)視頻。其中一些可進(jìn)行環(huán)路內(nèi)濾波的經(jīng)重構(gòu)塊可作為參考圖片存儲(chǔ)在參考圖片存儲(chǔ)器68中。參考圖片可包含可由運(yùn)動(dòng)補(bǔ)償單元82用作預(yù)測塊以對(duì)后續(xù)視頻幀或圖片中的塊進(jìn)行幀間預(yù)測的經(jīng)重構(gòu)塊。參考圖片存儲(chǔ)器96還存儲(chǔ)經(jīng)解碼視頻,以供稍后在顯示裝置(例如圖1的顯示裝置31)上呈現(xiàn)。

如上文所論述,在一些實(shí)例中,幀內(nèi)bc可與幀間預(yù)測模式“合并”。在這些實(shí)例中,描述為通過幀內(nèi)bc單元85執(zhí)行的操作中的一或多個(gè)可由視頻解碼器30的一或多個(gè)其它組件執(zhí)行,例如運(yùn)動(dòng)補(bǔ)償單元82。

圖4說明根據(jù)本發(fā)明的技術(shù)的包含幀內(nèi)bc的幀內(nèi)預(yù)測過程的實(shí)例。根據(jù)一個(gè)實(shí)例幀內(nèi)預(yù)測過程,視頻編碼器20可(例如)從先前經(jīng)譯碼且經(jīng)重構(gòu)的視頻數(shù)據(jù)塊集合中選擇預(yù)測符視頻塊。在圖4的實(shí)例中,經(jīng)重構(gòu)區(qū)域108包含先前經(jīng)譯碼且經(jīng)重構(gòu)的視頻塊集合。經(jīng)重構(gòu)區(qū)域108中的塊可表示已經(jīng)通過視頻解碼器30進(jìn)行解碼和重構(gòu)且存儲(chǔ)在經(jīng)重構(gòu)區(qū)域存儲(chǔ)器92中的塊,或表示已經(jīng)在視頻編碼器20的重建環(huán)路中進(jìn)行解碼和重構(gòu)且存儲(chǔ)在經(jīng)重構(gòu)區(qū)域存儲(chǔ)器64中的塊。當(dāng)前塊102表示待譯碼的當(dāng)前視頻塊。預(yù)測符塊104表示與當(dāng)前塊102在相同圖片中的一或多個(gè)經(jīng)重構(gòu)建視頻塊,其用于當(dāng)前塊102的幀內(nèi)bc預(yù)測。應(yīng)理解,預(yù)測符塊104不需要一定表示先前經(jīng)譯碼的單個(gè)視頻數(shù)據(jù)塊(例如,cu或pu),而是可以與已經(jīng)進(jìn)行重構(gòu)的先前經(jīng)譯碼塊重疊,并且在一些情況下,可進(jìn)行解塊濾波以去除成塊效應(yīng)假象。

在實(shí)例幀內(nèi)預(yù)測過程中,視頻編碼器20可確定塊向量106,并對(duì)塊向量進(jìn)行編碼,所述塊向量與殘余信號(hào)一起指示預(yù)測符塊104相對(duì)于當(dāng)前塊102的位置。例如,如圖4所說明,塊向量106可指示預(yù)測符塊104的左上角相對(duì)于當(dāng)前塊102的左上角的位置。如上文所論述,塊向量106還可被稱作偏移向量、位移向量、運(yùn)動(dòng)向量(mv),或僅稱作向量。視頻解碼器30利用經(jīng)編碼信息來對(duì)當(dāng)前cu進(jìn)行解碼。

圖5a到5d說明根據(jù)本發(fā)明的技術(shù)編碼單元可如何分割成預(yù)測單元的實(shí)例。如上文所論述,視頻譯碼器(例如,圖1和2的視頻編碼器20和/或圖1和3的視頻解碼器30)可將cu劃分成一或多個(gè)pu。例如,在scc草案1中,視頻譯碼器可將cu劃分成兩個(gè)2nxnpu或兩個(gè)nx2npu,這與cu的大小無關(guān)(其中n表示cu側(cè)的長度的一半)。此外,當(dāng)cu是最小cu時(shí),視頻譯碼器可根據(jù)scc草案1替代地將cu劃分成四個(gè)nxnpu。

如圖5a的實(shí)例中所示,視頻譯碼器可將2nx2ncu500劃分成單個(gè)2nx2npu(pu0502)。如圖5b的實(shí)例中所示,視頻譯碼器可將2nx2ncu504劃分成兩個(gè)nx2npu(pu0506和pu1508)。如圖5c的實(shí)例中所示,視頻譯碼器可將2nx2ncu510劃分成兩個(gè)2nxnpu(pu0512和pu1514)。如圖5d的實(shí)例中所示,視頻譯碼器可將2nx2ncu516劃分成四個(gè)nxnpu(pu0518、pu1520、pu2522和pu3524)。

圖6a到6d說明根據(jù)本發(fā)明的技術(shù)預(yù)測單元可如何細(xì)分成子預(yù)測單元的實(shí)例。如上文所論述且根據(jù)本發(fā)明的一或多種技術(shù),相對(duì)于被限制在固定大小的pu(例如,2nx2n、2nxn、nx2n、nxn、2nxnu、2nxnd、nlx2n和nrx2n)或基于排的pu(例如,sdip),視頻譯碼器可實(shí)施靈活分割方案,其中pu可被劃分成各自包含數(shù)目可調(diào)節(jié)的排(即,行或列)的多個(gè)子pu。

在圖6a的實(shí)例中,類似于圖5a的實(shí)例,視頻譯碼器可將2nx2ncu600劃分成pu0602,其為單個(gè)2nx2npu。然而,在圖6a的實(shí)例中,視頻譯碼器可進(jìn)一步將pu0602劃分成nlx2n子pu0604和nrx2n子pu1606(其中nl是包含在子pu0604中的列的數(shù)目,nr是包含在子pu1606中的列的數(shù)目)。

在圖6b的實(shí)例中,類似于圖5a的實(shí)例,視頻譯碼器可將2nx2ncu608劃分成pu0610,其為單個(gè)2nx2npu。然而,在圖6b的實(shí)例中,視頻譯碼器可進(jìn)一步將pu0610劃分成2nxnu子pu0612和2nxnr子pu1614(其中nu是包含在子pu0612中的行的數(shù)目,nr是包含在子pu1614中的行的數(shù)目)。

在圖6c的實(shí)例中,類似于圖5b的實(shí)例,視頻譯碼器可將2nx2ncu616劃分成pu0618和pu1620,它們都是nx2npu。然而,在圖6c的實(shí)例中,視頻譯碼器可進(jìn)一步將pu1620劃分成2nxnl-n子pu0622和2nxnr子pu1624(其中nl-n是包含在子pu0622中的列的數(shù)目,nr是包含在子pu1624中的列的數(shù)目)。

在圖6d的實(shí)例中,類似于圖5c的實(shí)例,視頻譯碼器可將2nx2ncu626劃分成pu0628和pu1630,它們都是2nxnpu。然而,在圖6d的實(shí)例中,視頻譯碼器可進(jìn)一步將pu0628劃分成nlxn子pu0632和nrxn子pu1634(其中nl是包含在子pu0632中的列的數(shù)目,nr是包含在子pu1634中的列的數(shù)目)。

在圖6a到6d中的每一個(gè)圖中,視頻譯碼器可對(duì)一或多個(gè)語法元素進(jìn)行譯碼以指示分裂信息。在一些實(shí)例中,視頻譯碼器可對(duì)一或多個(gè)語法元素進(jìn)行譯碼,所述語法元素指示在子pu中的排(即,行或列)的數(shù)目。例如,在圖6a的實(shí)例中,視頻譯碼器可對(duì)語法元素進(jìn)行譯碼,所述語法元素指定多少個(gè)排包含在子pu0中(即,指定nl的值)。在一些實(shí)例中,視頻譯碼器可對(duì)指示當(dāng)前pu是水平還是垂直劃分的語法元素進(jìn)行譯碼。例如,在圖6a的實(shí)例中,視頻譯碼器可對(duì)指定pu0602進(jìn)行垂直劃分的語法元素進(jìn)行譯碼。在一些實(shí)例中,視頻譯碼器可對(duì)指定當(dāng)前pu是否被劃分成多個(gè)子pu的語法元素進(jìn)行譯碼。例如,在圖6a到6d的實(shí)例中,視頻譯碼器可對(duì)指示當(dāng)前pu被劃分成多個(gè)子pu的語法元素進(jìn)行譯碼。

圖7是說明根據(jù)本發(fā)明的一或多種技術(shù)視頻編碼器將pu靈活地分割成多個(gè)子pu的實(shí)例操作的流程圖。圖7的技術(shù)可由一或多個(gè)視頻編碼器執(zhí)行,例如圖1和2中所說明的視頻編碼器20。出于說明的目的,圖7的技術(shù)在視頻編碼器20的上下文內(nèi)進(jìn)行描述,但是具有不同于視頻編碼器20的配置的配置的視頻編碼器也可執(zhí)行圖7的技術(shù)。

根據(jù)本發(fā)明的一或多種技術(shù),視頻編碼器20可確定是否將當(dāng)前預(yù)測單元(pu)劃分成多個(gè)子pu(702)。例如,視頻編碼器20的預(yù)測處理單元41和/或分割單元35可確定是否基于速率失真分析(例如,速率失真優(yōu)化)而將當(dāng)前pu劃分成多個(gè)子pu。

在一些實(shí)例中,視頻編碼器20可限制單個(gè)pu可劃分成的子pu的數(shù)目。例如,在一些實(shí)例中,視頻編碼器20可將單個(gè)pu劃分成最多兩個(gè)子pu。在一些實(shí)例中,視頻編碼器20可限制cu可劃分成的pu分區(qū)的總數(shù)。例如,在一些實(shí)例中,視頻編碼器20可將單個(gè)cu中的未劃分pu(即,未進(jìn)一步劃分成子pu的pu)和pu的總數(shù)限制為四(即,以使得cu中的未劃分pu的數(shù)目加上cu中的子pu的數(shù)目小于或等于四)。

在一些實(shí)例中,視頻編碼器20可在某些情形中制止劃分pu。例如,視頻編碼器20可制止進(jìn)一步劃分nxnpu(即,nxnpu模式可能不支持子pu分裂)。

視頻編碼器20可針對(duì)所述多個(gè)子pu中的每一子pu確定相應(yīng)的預(yù)測模式(704)。例如,預(yù)測處理單元41可針對(duì)每一子pu選擇多個(gè)可能譯碼模式中的一個(gè),例如,多個(gè)幀內(nèi)譯碼模式中的一個(gè)、多個(gè)幀間譯碼模式中的一個(gè)或幀內(nèi)bc模式。在一些實(shí)例中,預(yù)測處理單元41可基于速率失真結(jié)果(例如,譯碼位速率和失真層級(jí))而選擇譯碼模式。

視頻編碼器20可針對(duì)每一子pu,計(jì)算相應(yīng)的子pu和相應(yīng)的預(yù)測符塊之間的相應(yīng)的差(706)。例如,預(yù)測處理單元41可向求和器50提供用于每一子pu的預(yù)測符塊,所述求和器50可產(chǎn)生相應(yīng)的殘余塊,所述殘余塊表示相應(yīng)的子pu和相應(yīng)的預(yù)測符塊之間的相應(yīng)的差。

視頻編碼器20可在經(jīng)編碼位流中對(duì)指示當(dāng)前pu是否被劃分成多個(gè)子pu的語法元素進(jìn)行編碼(708)。例如,預(yù)測處理單元41可使熵編碼單元56在pu層級(jí)利用指示支持自適應(yīng)分割的值(即,當(dāng)前pu被劃分成多個(gè)子pu)對(duì)旗標(biāo)(例如,表1的sub_pu_present_flag)進(jìn)行編碼。

視頻編碼器20可在經(jīng)編碼視頻位流中對(duì)指示在多個(gè)子pu中的一或多個(gè)子pu中的排的數(shù)目的語法元素進(jìn)行編碼(710)。例如,預(yù)測處理單元41可使熵編碼單元56對(duì)語法元素(例如,表1的num_sub_pu_lines)進(jìn)行編碼,所述語法元素指示在多個(gè)子pu中的特定子pu中的排的數(shù)目。在一些實(shí)例中,預(yù)測處理單元41可使熵編碼單元56對(duì)單獨(dú)的相應(yīng)的語法元素進(jìn)行編碼,所述語法元素指示在多個(gè)子pu中的每一相應(yīng)的子pu中的排的相應(yīng)數(shù)目。在一些實(shí)例中,預(yù)測處理單元41可使熵編碼單元56對(duì)單獨(dú)的相應(yīng)的語法元素進(jìn)行編碼,所述語法元素指示多個(gè)子pu中除了多個(gè)子pu的最后一個(gè)子pu之外的每一相應(yīng)的子pu中的排的相應(yīng)數(shù)目。

在一些實(shí)例中,視頻編碼器20可從經(jīng)編碼視頻位流中對(duì)當(dāng)前pu是水平還是垂直劃分成多個(gè)子pu的指示進(jìn)行解碼。例如,預(yù)測處理單元41可使熵編碼單元56對(duì)指示當(dāng)前pu是水平還是垂直劃分成多個(gè)子pu的語法元素(例如,表1的sub_pu_type)進(jìn)行編碼。

在一些實(shí)例中,視頻編碼器20可針對(duì)多個(gè)子pu中的每一相應(yīng)的子pu,從多個(gè)先前經(jīng)編碼塊中選擇相應(yīng)的預(yù)測符塊。例如,作為速率失真分析的部分,預(yù)測處理單元41可針對(duì)多個(gè)子pu中的每一相應(yīng)的子pu,從圖片中的多個(gè)先前經(jīng)編碼視頻數(shù)據(jù)塊中選擇相應(yīng)的預(yù)測符塊,在所述圖片中,出現(xiàn)視頻數(shù)據(jù)的當(dāng)前cu。基于選定預(yù)測符塊,視頻編碼器20可針對(duì)多個(gè)子pu中的每一相應(yīng)的子pu,確定表示相應(yīng)的子pu和相應(yīng)的預(yù)測符塊之間的位移的相應(yīng)的向量。

視頻編碼器20可針對(duì)每一相應(yīng)的子pu,在經(jīng)編碼視頻位流中對(duì)表示相應(yīng)的子pu和相應(yīng)的預(yù)測符塊之間的位移的相應(yīng)的向量的指示進(jìn)行編碼(712)。在一些實(shí)例中,視頻編碼器20可通過對(duì)表示向量的值和向量預(yù)測符的值之間的差的向量差(vd)值進(jìn)行編碼,對(duì)表示子pu和預(yù)測符塊之間的位移的向量的指示進(jìn)行編碼。

預(yù)測處理單元41可針對(duì)多個(gè)子pu中的每一相應(yīng)的子pu,確定相應(yīng)的向量預(yù)測符。在一些實(shí)例中,預(yù)測處理單元41可針對(duì)每一子pu,從相應(yīng)的候選向量預(yù)測符列表中選擇相應(yīng)的向量預(yù)測符,并對(duì)選定哪一向量預(yù)測的指示進(jìn)行編碼。在一些實(shí)例中,預(yù)測處理單元41可使用類似于scc草案1的技術(shù)的技術(shù)來確定候選向量預(yù)測列表。在一些實(shí)例中,預(yù)測處理單元41可將當(dāng)前pu的向量預(yù)測符用作每一子pu的向量預(yù)測符。在一些實(shí)例中,預(yù)測處理單元41可在當(dāng)前pu的當(dāng)前子pu的相應(yīng)的候選向量預(yù)測符列表中包含當(dāng)前pu的先前經(jīng)譯碼子pu的相應(yīng)的向量。以此方式,非第一子pu可將先前子pu的已經(jīng)經(jīng)解碼塊中的任一個(gè)用作向量預(yù)測符。

預(yù)測處理單元41可使熵編碼單元56對(duì)表示向量的值和向量預(yù)測符的值之間的差的向量差(vd)值進(jìn)行編碼。根據(jù)本發(fā)明的第一技術(shù),預(yù)測處理單元41可使熵編碼單元56對(duì)一個(gè)二進(jìn)制數(shù)b0進(jìn)行譯碼,以指示vd的值是否大于零。接著,預(yù)測處理單元41可使熵編碼單元56到對(duì)一個(gè)二進(jìn)制數(shù)b1進(jìn)行譯碼,以指示vd的值是否大于n。在一些實(shí)例中,如果vd的值大于n(n=1、2、3、4……),那么預(yù)測處理單元41可使熵編碼單元56使用具有階數(shù)k(k=0、1、2、3、4……)的指數(shù)哥倫布(eg)碼來對(duì)余數(shù)(vd減去n)進(jìn)行譯碼。在其它實(shí)例中,預(yù)測處理單元41可使熵編碼單元56使用長度基于n的旁路經(jīng)譯碼的固定長度(fl)碼來對(duì)vd減去一的值進(jìn)行譯碼。在其它實(shí)例中,預(yù)測處理單元41可使熵編碼單元56使用截?cái)啻a來對(duì)bvd減去一的值進(jìn)行譯碼。在一些實(shí)例中,預(yù)測處理單元41可使熵編碼單元56使用經(jīng)譯碼的上下文或旁路對(duì)bin0進(jìn)行譯碼。類似地,預(yù)測處理單元41可使熵編碼單元56使用經(jīng)譯碼的上下文或旁路對(duì)二進(jìn)制數(shù)b1進(jìn)行譯碼。

根據(jù)本發(fā)明的第二技術(shù),預(yù)測處理單元41可使熵編碼單元56對(duì)一個(gè)二進(jìn)制數(shù)b0進(jìn)行譯碼,以指示bvd的值是否大于零。如果bvd的值不等于零,那么預(yù)測處理單元41可使熵編碼單元56使用具有階數(shù)k(k=0、1、2、3、4……)的eg碼來對(duì)余數(shù)(bvd減去1)進(jìn)行譯碼。

根據(jù)本發(fā)明的第三技術(shù),預(yù)測處理單元41可使熵編碼單元56使用上下文經(jīng)譯碼的二進(jìn)制數(shù)對(duì)第一子pu的bvd進(jìn)行譯碼(如上文相對(duì)于第一技術(shù)和第二技術(shù)所論述)。預(yù)測處理單元41可使熵編碼單元56使用旁路經(jīng)譯碼的二進(jìn)制數(shù)對(duì)其余子pu的bvd進(jìn)行譯碼(如上文相對(duì)于第一技術(shù)和第二技術(shù)所論述)。

在任何情況下,視頻編碼器20可針對(duì)每一相應(yīng)的子pu,在經(jīng)編碼視頻位流中對(duì)表示相應(yīng)的子pu和相應(yīng)的預(yù)測符塊之間的差的殘余塊進(jìn)行編碼(714)。例如,在預(yù)測處理單元41經(jīng)由幀間預(yù)測、幀內(nèi)預(yù)測或幀內(nèi)bc預(yù)測產(chǎn)生用于當(dāng)前視頻塊的預(yù)測塊之后,視頻編碼器20通過(例如)經(jīng)由求和器50從當(dāng)前視頻塊中減去預(yù)測塊而形成殘余視頻塊。變換處理單元52可向量化處理單元54發(fā)送所得變換系數(shù),所述量化處理單元54可對(duì)變換系數(shù)進(jìn)行量化以進(jìn)一步減小位速率。在量化之后,熵編碼單元56對(duì)經(jīng)量化變換系數(shù)進(jìn)行熵編碼。

圖8是說明根據(jù)本發(fā)明的一或多種技術(shù)視頻解碼器將pu靈活地分割成多個(gè)子pu的實(shí)例操作的流程圖。圖8的技術(shù)可由一或多個(gè)視頻解碼器執(zhí)行,例如圖1和3中所說明的視頻解碼器30。出于說明的目的,圖8的技術(shù)在視頻解碼器30的上下文內(nèi)進(jìn)行描述,但是具有不同于視頻解碼器30的配置的配置的視頻編碼器也可執(zhí)行圖8的技術(shù)。

根據(jù)本發(fā)明的一或多種技術(shù),視頻解碼器30可從經(jīng)編碼位流中對(duì)指示當(dāng)前cu的當(dāng)前pu是否被劃分成多個(gè)子pu的語法元素進(jìn)行解碼(802)。例如,熵解碼單元80可在pu層級(jí)利用指示支持自適應(yīng)分割的值(即,當(dāng)前pu被劃分成多個(gè)子pu)對(duì)旗標(biāo)(例如,表1的sub_pu_present_flag)進(jìn)行解碼,并將所述旗標(biāo)提供到預(yù)測處理單元81。

視頻解碼器30可從經(jīng)編碼視頻位流中對(duì)指示在子pu中的一或多個(gè)子pu中的排的數(shù)目的語法元素進(jìn)行解碼(804)。例如,熵解碼單元80可對(duì)語法元素(例如,表1的num_sub_pu_lines)進(jìn)行解碼,所述語法元素指示在多個(gè)子pu中的特定子pu中的排的數(shù)目,并將所述語法元素提供到預(yù)測處理單元81。在一些實(shí)例中,熵解碼單元80可對(duì)單獨(dú)的相應(yīng)的語法元素進(jìn)行解碼,所述語法元素指示在多個(gè)子pu中的每一相應(yīng)的子pu中的排的相應(yīng)數(shù)目。在一些實(shí)例中,熵解碼單元80可對(duì)單獨(dú)的相應(yīng)的語法元素進(jìn)行解碼,所述語法元素指示多個(gè)子pu中除了多個(gè)子pu的最后一個(gè)子pu之外的每一相應(yīng)的子pu中的排的相應(yīng)數(shù)目。

在一些實(shí)例中,視頻解碼器30可從經(jīng)編碼視頻位流中對(duì)當(dāng)前pu是水平還是垂直劃分成多個(gè)子pu的指示進(jìn)行解碼。例如,熵解碼單元80可對(duì)指示當(dāng)前pu是水平還是垂直劃分成多個(gè)子pu的語法元素(例如,表1的sub_pu_type)進(jìn)行解碼,并將所述語法元素提供到預(yù)測處理單元81。

視頻解碼器30可針對(duì)每一相應(yīng)的子pu,從經(jīng)編碼視頻位流中對(duì)表示相應(yīng)的子pu和相應(yīng)的預(yù)測符塊之間的位移的相應(yīng)的向量的指示進(jìn)行解碼(806)。在一些實(shí)例中,視頻解碼器30可通過對(duì)表示向量的值和向量預(yù)測符的值之間的差的向量差(vd)值進(jìn)行解碼,對(duì)表示子pu和預(yù)測符塊之間的位移的向量的指示進(jìn)行解碼。

預(yù)測處理單元81可針對(duì)多個(gè)子pu中的每一相應(yīng)的子pu,確定相應(yīng)的向量預(yù)測符。在一些實(shí)例中,預(yù)測處理單元81可針對(duì)每一子pu從相應(yīng)的候選向量預(yù)測符列表中選擇相應(yīng)的向量預(yù)測符。例如,預(yù)測處理單元81可產(chǎn)生候選向量預(yù)測符列表,熵解碼單元80可接收指定列表中的條目的語法元素,以及預(yù)測處理單元81可利用指定條目中的向量預(yù)測符以確定向量。

在一些實(shí)例中,預(yù)測處理單元81可使用類似于scc草案1的技術(shù)的技術(shù)來確定候選向量預(yù)測列表。在一些實(shí)例中,預(yù)測處理單元81可將當(dāng)前pu的向量預(yù)測符用作每一子pu的向量預(yù)測符。在一些實(shí)例中,預(yù)測處理單元81可在當(dāng)前pu的當(dāng)前子pu的相應(yīng)的候選向量預(yù)測符列表中包含當(dāng)前pu的先前經(jīng)譯碼子pu的相應(yīng)的向量。以此方式,非第一子pu可將先前子pu的已經(jīng)經(jīng)解碼塊中的任一個(gè)用作向量預(yù)測符。

熵解碼單元80可對(duì)表示向量的值和向量預(yù)測符的值之間的差的向量差(vd)值進(jìn)行解碼,并將所述向量差(vd)值提供到預(yù)測處理單元81。在一些實(shí)例中,熵解碼單元80可使用上文所論述的技術(shù)中的任一種對(duì)vd值進(jìn)行解碼。

視頻解碼器30可針對(duì)每一相應(yīng)的子pu,從經(jīng)編碼視頻位流中對(duì)表示相應(yīng)的子pu和相應(yīng)的預(yù)測符塊之間的差的殘余塊進(jìn)行解碼(808)。例如,逆量化處理單元86可對(duì)在位流中提供且由熵解碼單元80解碼的經(jīng)量化變換系數(shù)進(jìn)行逆量化。接著,逆變換處理單元88可將逆變換(例如逆dct、逆整數(shù)變換或在概念上類似的逆變換過程)應(yīng)用于變換系數(shù),以便重構(gòu)像素域中的殘余塊。

視頻解碼器30可基于相應(yīng)的視頻數(shù)據(jù)預(yù)測符塊,重構(gòu)每一子pu(810)。例如,求和器90可通過對(duì)來自逆變換處理單元88的殘余塊與由預(yù)測處理單元81產(chǎn)生的對(duì)應(yīng)的預(yù)測符塊進(jìn)行求和來形成經(jīng)解碼視頻塊。

以下編號(hào)實(shí)例可說明本發(fā)明的一或多個(gè)方面:

實(shí)例1:一種對(duì)視頻數(shù)據(jù)進(jìn)行解碼的方法,所述方法包括:從經(jīng)編碼視頻位流中對(duì)語法元素進(jìn)行解碼,所述語法元素指示在視頻數(shù)據(jù)的當(dāng)前譯碼單元(cu)的當(dāng)前預(yù)測單元(pu)的多個(gè)子pu中的一或多個(gè)子pu中的視頻數(shù)據(jù)的排的數(shù)目;針對(duì)多個(gè)子pu中的每一相應(yīng)的子pu,確定表示相應(yīng)的子pu和來自多個(gè)先前經(jīng)解碼視頻數(shù)據(jù)塊的相應(yīng)的預(yù)測符塊之間的位移的相應(yīng)的向量;以及基于相應(yīng)的視頻數(shù)據(jù)預(yù)測器塊,重構(gòu)多個(gè)子pu中的每一子pu。

實(shí)例2:根據(jù)實(shí)例1所述的方法,其中多個(gè)子pu的相應(yīng)的預(yù)測符塊在包含視頻數(shù)據(jù)的當(dāng)前cu的圖片中。

實(shí)例3:根據(jù)實(shí)例1到2的任何組合所述的方法,其中多個(gè)子pu包含最多兩個(gè)子pu。

實(shí)例4:根據(jù)實(shí)例1到3的任何組合所述的方法,其中對(duì)指示在多個(gè)子pu中的一或多個(gè)子pu中的排的數(shù)目的語法元素進(jìn)行解碼包括:針對(duì)多個(gè)子pu中除了多個(gè)子pu的最后一個(gè)子pu之外的每一相應(yīng)的子pu,對(duì)指示在相應(yīng)的子pu中的排的相應(yīng)數(shù)目的相應(yīng)的語法元素進(jìn)行解碼,所述方法進(jìn)一步包括:基于包含在當(dāng)前pu中的排的數(shù)目和包含在多個(gè)子pu的其它子pu中的排的數(shù)目之間的差,確定在多個(gè)子pu的最后一個(gè)子pu中的排的數(shù)目。

實(shí)例5:根據(jù)實(shí)例1到4的任何組合所述的方法,其進(jìn)一步包括對(duì)當(dāng)前pu是水平還是垂直劃分成多個(gè)子pu的指示進(jìn)行解碼。

實(shí)例6:根據(jù)實(shí)例1到5的任何組合所述的方法,其中未劃分pu和子pu的組合總數(shù)為最多四個(gè),其中未劃分pu不包含任何子pu。

實(shí)例7:根據(jù)實(shí)例1到6的任何組合所述的方法,其中指示在多個(gè)子pu中的一或多個(gè)子pu中的排的數(shù)目的語法元素是第一語法元素,所述方法進(jìn)一步包括:針對(duì)視頻數(shù)據(jù)的當(dāng)前cu的當(dāng)前pu,從經(jīng)編碼視頻位流中對(duì)指示當(dāng)前pu是否被劃分成多個(gè)子pu的第二語法元素進(jìn)行解碼,其中對(duì)第一語法元素進(jìn)行解碼包括響應(yīng)于第二語法元素指示當(dāng)前pu被劃分成多個(gè)子pu而對(duì)第一語法元素進(jìn)行解碼。

實(shí)例8:根據(jù)實(shí)例1到7的任何組合所述的方法,其中針對(duì)多個(gè)子pu中的每一相應(yīng)的子pu,確定表示相應(yīng)的子pu和相應(yīng)的預(yù)測符塊之間的位移的相應(yīng)的向量包括:針對(duì)多個(gè)子pu中的每一相應(yīng)的子pu,確定相應(yīng)的向量預(yù)測符;針對(duì)多個(gè)子pu中的每一相應(yīng)的子pu,確定各自指示相應(yīng)的向量和相應(yīng)的向量預(yù)測符之間的相應(yīng)的差的相應(yīng)的向量差(vd);以及針對(duì)每一相應(yīng)的子pu,基于相應(yīng)的向量預(yù)測符和相應(yīng)的vd而確定相應(yīng)的向量。

實(shí)例9:根據(jù)實(shí)例1到8的任何組合所述的方法,其中確定相應(yīng)的向量預(yù)測符包括確定相應(yīng)的候選向量預(yù)測符列表,所述方法進(jìn)一步包括:在當(dāng)前子pu的相應(yīng)的候選向量預(yù)測符列表中包含先前經(jīng)譯碼子pu的相應(yīng)的向量。

實(shí)例10:一種用于對(duì)視頻數(shù)據(jù)進(jìn)行解碼的裝置,所述裝置包括:經(jīng)配置以存儲(chǔ)視頻數(shù)據(jù)的存儲(chǔ)器;以及經(jīng)配置以執(zhí)行實(shí)例1到9的任何組合的方法的一或多個(gè)處理器。

實(shí)例11:一種用于對(duì)視頻數(shù)據(jù)進(jìn)行解碼的裝置,所述裝置包括:用于執(zhí)行實(shí)例1到9的任何組合的方法的裝置。

實(shí)例12:一種存儲(chǔ)指令的計(jì)算機(jī)可讀存儲(chǔ)媒體,所述指令在經(jīng)執(zhí)行時(shí)使視頻解碼裝置的一或多個(gè)處理器執(zhí)行實(shí)例1到9的任何組合的方法。

實(shí)例13:一種對(duì)視頻數(shù)據(jù)進(jìn)行編碼的方法,所述方法包括:確定將視頻數(shù)據(jù)的當(dāng)前譯碼單元(cu)的當(dāng)前預(yù)測單元(pu)劃分成多個(gè)子pu;針對(duì)多個(gè)子pu中的每一相應(yīng)的子pu,確定表示相應(yīng)的子pu和來自多個(gè)先前經(jīng)解碼視頻數(shù)據(jù)塊的相應(yīng)的預(yù)測符塊之間的位移的相應(yīng)的向量;以及在經(jīng)編碼視頻位流中對(duì)語法元素進(jìn)行編碼,所述語法元素指示在多個(gè)子pu中的一或多個(gè)子pu中的視頻數(shù)據(jù)的排的數(shù)目。

實(shí)例14:根據(jù)實(shí)例13所述的方法,其中多個(gè)子pu的相應(yīng)的預(yù)測符塊在包含視頻數(shù)據(jù)的當(dāng)前cu的圖片中。

實(shí)例15:根據(jù)實(shí)例13到14的任何組合所述的方法,其中多個(gè)子pu包含最多兩個(gè)子pu。

實(shí)例16:根據(jù)實(shí)例13到15的任何組合所述的方法,其中對(duì)指示在多個(gè)子pu中的一或多個(gè)子pu中的排的數(shù)目的語法元素進(jìn)行編碼包括:針對(duì)多個(gè)子pu中除了多個(gè)子pu的最后一個(gè)子pu之外的每一相應(yīng)的子pu,對(duì)指示在相應(yīng)的子pu中的排的相應(yīng)數(shù)目的相應(yīng)的語法元素進(jìn)行編碼。

實(shí)例17:根據(jù)實(shí)例13到16的任何組合所述的方法,其進(jìn)一步包括對(duì)當(dāng)前pu是水平還是垂直劃分成多個(gè)子pu的指示進(jìn)行編碼。

實(shí)例18:根據(jù)實(shí)例13到17的任何組合所述的方法,其中未劃分pu和子pu的組合總數(shù)為最多四個(gè),其中未劃分pu不包含任何子pu。

實(shí)例19:根據(jù)實(shí)例13到18的任何組合所述的方法,其中指示在多個(gè)子pu中的一或多個(gè)子pu中的排的數(shù)目的語法元素是第一語法元素,所述方法進(jìn)一步包括:針對(duì)視頻數(shù)據(jù)的當(dāng)前cu的當(dāng)前pu,在經(jīng)編碼視頻位流中對(duì)指示當(dāng)前pu是否被劃分成多個(gè)子pu的第二語法元素進(jìn)行編碼,其中對(duì)第一語法元素進(jìn)行編碼包括響應(yīng)于確定將當(dāng)前pu劃分成多個(gè)子pu而對(duì)第一語法元素進(jìn)行編碼。

實(shí)例20:根據(jù)實(shí)例13到19的任何組合所述的方法,其進(jìn)一步包括:針對(duì)多個(gè)子pu中的每一相應(yīng)的子pu,確定相應(yīng)的向量預(yù)測符;針對(duì)多個(gè)子pu中的每一相應(yīng)的子pu,確定各自指示相應(yīng)的向量和相應(yīng)的向量預(yù)測符之間的相應(yīng)的差的相應(yīng)的向量差(vd);以及針對(duì)每一相應(yīng)的子pu,在經(jīng)編碼視頻位流中對(duì)相應(yīng)的vd的指示和相應(yīng)的向量預(yù)測符的指示進(jìn)行編碼。

實(shí)例21:根據(jù)實(shí)例13到20的任何組合所述的方法,其中確定相應(yīng)的向量預(yù)測符包括確定相應(yīng)的候選向量預(yù)測符列表,所述方法進(jìn)一步包括:在當(dāng)前子pu的相應(yīng)的候選向量預(yù)測符列表中包含先前經(jīng)譯碼子pu的相應(yīng)的向量。

實(shí)例22:一種用于對(duì)視頻數(shù)據(jù)進(jìn)行解碼的裝置,所述裝置包括:經(jīng)配置以存儲(chǔ)視頻數(shù)據(jù)的存儲(chǔ)器;以及經(jīng)配置以執(zhí)行實(shí)例13到21的任何組合的方法的一或多個(gè)處理器。

實(shí)例23:一種用于對(duì)視頻數(shù)據(jù)進(jìn)行解碼的裝置,所述裝置包括:用于執(zhí)行實(shí)例13到21的任何組合的方法的裝置。

實(shí)例24:一種存儲(chǔ)指令的計(jì)算機(jī)可讀存儲(chǔ)媒體,所述指令在經(jīng)執(zhí)行時(shí)使視頻解碼裝置的一或多個(gè)處理器執(zhí)行實(shí)例13到21的任何組合的方法。

以下編號(hào)條款可說明本發(fā)明的一或多個(gè)方面:

條款1:一種對(duì)視頻數(shù)據(jù)進(jìn)行編碼的方法,所述方法包括:響應(yīng)于確定劃分視頻數(shù)據(jù)的當(dāng)前譯碼單元(cu)的當(dāng)前預(yù)測單元(pu),將當(dāng)前pu劃分成多個(gè)子預(yù)測單元(子pu);針對(duì)多個(gè)子pu中的每一相應(yīng)的子pu,從其中出現(xiàn)視頻數(shù)據(jù)的當(dāng)前cu的圖片中的多個(gè)先前經(jīng)編碼視頻數(shù)據(jù)塊中選擇相應(yīng)的預(yù)測符塊;針對(duì)多個(gè)子pu中的每一相應(yīng)的子pu,確定表示相應(yīng)的子pu和相應(yīng)的預(yù)測符塊之間的位移的相應(yīng)的塊向量;以及對(duì)表示當(dāng)前pu被劃分成多個(gè)子pu的指示和用于多個(gè)子pu中的每一相應(yīng)的子pu的相應(yīng)的塊向量的指示的數(shù)據(jù)進(jìn)行編碼。

條款2:根據(jù)條款1所述的方法,其中將當(dāng)前pu劃分成多個(gè)子pu包括將當(dāng)前pu劃分成兩個(gè)子pu。

條款3:根據(jù)條款1到2的任何組合所述的方法,其中基于一或多個(gè)塊向量預(yù)測符,對(duì)用于多個(gè)子pu中的每一相應(yīng)的子pu的相應(yīng)的塊向量的指示進(jìn)行編碼。

條款4:根據(jù)條款1到3的任何組合所述的方法,其中編碼包括使用pu的塊向量預(yù)測符來對(duì)表示用于多個(gè)子pu中的每一相應(yīng)的子pu的相應(yīng)的塊向量的指示的數(shù)據(jù)進(jìn)行編碼。

條款5:根據(jù)條款1到4的任何組合所述的方法,其中用于多個(gè)子pu中的每一相應(yīng)的子pu的相應(yīng)的塊向量的指示使用不同的塊向量預(yù)測符。

條款6:根據(jù)條款1到5的任何組合所述的方法,其中編碼包括使用相同塊向量預(yù)測符來對(duì)表示用于多個(gè)子pu中的每一相應(yīng)的子pu的相應(yīng)的塊向量的指示的數(shù)據(jù)進(jìn)行編碼。

條款7:根據(jù)條款1到6的任何組合所述的方法,其中編碼包括將表示用于多個(gè)子pu中的每一相應(yīng)的子pu的相應(yīng)的塊向量的指示的數(shù)據(jù)編碼為各自指示相應(yīng)的塊向量和相應(yīng)的塊向量預(yù)測符之間的相應(yīng)的差的相應(yīng)的塊向量差(bvd)。

條款8:根據(jù)條款1到7的任何組合所述的方法,其中對(duì)用于多個(gè)子pu中的第一子pu的bvd進(jìn)行編碼包括基于用于多個(gè)子pu中的第二子pu的bvd,對(duì)bvd進(jìn)行編碼。

條款9:根據(jù)條款1到8的任何組合所述的方法,其進(jìn)一步包括對(duì)當(dāng)前pu是水平還是垂直劃分成多個(gè)子pu的指示進(jìn)行編碼。

條款10:根據(jù)條款1到9的任何組合所述的方法,其進(jìn)一步包括對(duì)在多個(gè)子pu中的一或多個(gè)子pu中的行/列的數(shù)目的指示進(jìn)行編碼。

條款11:根據(jù)條款1到10的任何組合所述的方法,其中對(duì)在多個(gè)子pu中的一或多個(gè)子pu中的行/列的數(shù)目的指示進(jìn)行編碼包括對(duì)多少個(gè)行/列在多個(gè)子pu中除了多個(gè)子pu的最后一個(gè)子pu之外的每一子pu中的指示進(jìn)行編碼。

條款12:根據(jù)條款1到11的任何組合所述的方法,其中對(duì)在多個(gè)子pu中的一或多個(gè)子pu中的行/列的數(shù)目的指示進(jìn)行編碼包括使用截?cái)嘁辉a對(duì)在多個(gè)子pu中的一或多個(gè)子pu中的行/列的數(shù)目的指示進(jìn)行編碼。

條款13:根據(jù)條款1到12的任何組合所述的方法,其中對(duì)在多個(gè)子pu中的一或多個(gè)子pu中的行/列的數(shù)目的指示進(jìn)行編碼包括使用具有基于pu中的行/列的數(shù)目的最大長度的截?cái)嘁辉a對(duì)多個(gè)子pu中的一或多個(gè)子pu中的行/列的數(shù)目的指示進(jìn)行編碼。

條款14:根據(jù)條款1到13的任何組合所述方法,其中對(duì)在多個(gè)子pu中的一或多個(gè)子pu中的行/列的數(shù)目的指示進(jìn)行編碼包括使用固定長度碼對(duì)在多個(gè)子pu中的一或多個(gè)子pu中的行/列的數(shù)目的指示進(jìn)行編碼。

條款15:根據(jù)條款1到14的任何組合的方法,其中對(duì)在多個(gè)子pu中的一或多個(gè)子pu中的行/列的數(shù)目的指示進(jìn)行編碼包括使用具有基于pu中的行/列的數(shù)目的長度的固定長度碼對(duì)在多個(gè)子pu中的一或多個(gè)子pu中的行/列的數(shù)目的指示進(jìn)行編碼。

條款16:根據(jù)條款1到15的任何組合所述的方法,其中對(duì)當(dāng)前pu被劃分成多個(gè)子pu的指示進(jìn)行編碼包括對(duì)指定當(dāng)前pu是否被劃分成子pu的語法元素進(jìn)行編碼。

條款17:一種用于使用幀內(nèi)塊復(fù)制(bc)對(duì)視頻數(shù)據(jù)進(jìn)行解碼的方法,所述方法包括:響應(yīng)于針對(duì)視頻數(shù)據(jù)的當(dāng)前譯碼單元(cu)的當(dāng)前預(yù)測單元(pu),在經(jīng)編碼視頻位流中接收當(dāng)前pu進(jìn)行劃分的指示,通過至少以下操作將當(dāng)前pu劃分成多個(gè)子預(yù)測單元(子pu):針對(duì)多個(gè)子pu中的每一相應(yīng)的子pu,確定表示相應(yīng)的子pu和來自其中駐留視頻數(shù)據(jù)的當(dāng)前cu的圖片中的多個(gè)先前經(jīng)編碼視頻數(shù)據(jù)塊的相應(yīng)的預(yù)測符塊之間的位移的相應(yīng)的塊向量;以及基于相應(yīng)的視頻數(shù)據(jù)預(yù)測器塊,重構(gòu)多個(gè)子pu中的每一子pu。

條款18:根據(jù)條款17所述的方法,其進(jìn)一步包括根據(jù)條款1到16的任何組合所述的方法。

如上文所論述,本發(fā)明的技術(shù)可減少表示視頻數(shù)據(jù)需要的數(shù)據(jù)量。下文的表格2到4表示一些實(shí)例測試結(jié)果,其顯示jctvc-s1015“屏幕內(nèi)容譯碼測試的一般情況”(法國斯特拉斯堡,2014年10月17日到24日,獲自phenix.it-sudparis.eu/jct/doc_end_user/documents/19_strasbourg/wg11/jctvc-s1015-v2.zip)描述的表示視頻數(shù)據(jù)測試序列所需要的數(shù)據(jù)量的實(shí)例減少。具體來說,表2示出了實(shí)例測試結(jié)果,其顯示jctvc-s1015針對(duì)所有幀內(nèi)模式編碼描述的表示視頻數(shù)據(jù)測試序列所需要的數(shù)據(jù)量的實(shí)例減少。

表2

表3

表4

在一或多個(gè)實(shí)例中,所描述功能可用硬件、軟件、固件或其任何組合來實(shí)施。如果用軟件實(shí)施,那么所述功能可作為一或多個(gè)指令或代碼在計(jì)算機(jī)可讀媒體上存儲(chǔ)或發(fā)射,且由基于硬件的處理單元執(zhí)行。計(jì)算機(jī)可讀媒體可包含計(jì)算機(jī)可讀存儲(chǔ)媒體,其對(duì)應(yīng)于例如數(shù)據(jù)存儲(chǔ)媒體或通信媒體等有形媒體,所述通信媒體包含促進(jìn)將計(jì)算機(jī)程序從一處傳送到另一處的任何媒體(例如,根據(jù)通信協(xié)議)。以此方式,計(jì)算機(jī)可讀媒體大體上可對(duì)應(yīng)于(1)有形計(jì)算機(jī)可讀存儲(chǔ)媒體,其為非暫時(shí)性,(2)或通信媒體,例如信號(hào)或載波。數(shù)據(jù)存儲(chǔ)媒體可為可由一或多個(gè)計(jì)算機(jī)或一或多個(gè)處理器存取以檢索用于實(shí)施本發(fā)明中描述的技術(shù)的指令、代碼和/或數(shù)據(jù)結(jié)構(gòu)的任何可用媒體。計(jì)算機(jī)程序產(chǎn)品可包含計(jì)算機(jī)可讀媒體。

借助于實(shí)例而非限制,此類計(jì)算機(jī)可讀存儲(chǔ)媒體可包括ram、rom、eeprom、cd-rom或其它光盤存儲(chǔ)裝置、磁盤存儲(chǔ)裝置或其它磁性存儲(chǔ)裝置、快閃存儲(chǔ)器或可用于存儲(chǔ)呈指令或數(shù)據(jù)結(jié)構(gòu)的形式的所要程序代碼并且可由計(jì)算機(jī)存取的任何其它媒體。并且,任何連接被恰當(dāng)?shù)胤Q作計(jì)算機(jī)可讀媒體。例如,如果使用同軸纜線、光纖纜線、雙絞線、數(shù)字訂戶線(dsl)或例如紅外線、無線電和微波等無線技術(shù)從網(wǎng)站、服務(wù)器或其它遠(yuǎn)程源傳輸指令,那么同軸纜線、光纖纜線、雙絞線、dsl或例如紅外線、無線電和微波等無線技術(shù)包含在媒體的定義中。但是,應(yīng)理解,計(jì)算機(jī)可讀存儲(chǔ)媒體和數(shù)據(jù)存儲(chǔ)媒體并不包含連接、載波、信號(hào)或其它暫時(shí)性媒體,而是實(shí)際上針對(duì)于非暫時(shí)性有形存儲(chǔ)媒體。如本文中所使用,磁盤和光盤包含壓縮光盤(cd)、激光光盤、光學(xué)光盤、數(shù)字多功能光盤(dvd)、軟性磁盤和藍(lán)光光盤,其中磁盤通常以磁性方式再現(xiàn)數(shù)據(jù),而光盤利用激光以光學(xué)方式再現(xiàn)數(shù)據(jù)。以上各項(xiàng)的組合也應(yīng)包含在計(jì)算機(jī)可讀媒體的范圍內(nèi)。

可由例如一或多個(gè)數(shù)字信號(hào)處理器(dsp)、通用微處理器、專用集成電路(asic)、現(xiàn)場可編程邏輯陣列(fpga)或其它等效集成或離散邏輯電路等一或多個(gè)處理器來執(zhí)行指令。因此,如本文中所使用的術(shù)語“處理器”可指前述結(jié)構(gòu)或適合于實(shí)施本文中所描述的技術(shù)的任一其它結(jié)構(gòu)中的任一者。另外,在一些方面中,本文中所描述的功能性可以在經(jīng)配置以用于編碼和解碼的專用硬件和/或軟件模塊內(nèi)提供,或者并入在組合編解碼器中。而且,所述技術(shù)可完全實(shí)施于一或多個(gè)電路或邏輯元件中。

本發(fā)明的技術(shù)可在各種裝置或設(shè)備中實(shí)施,包含無線手持機(jī)、集成電路(ic)或一組ic(例如,芯片組)。本發(fā)明中描述各種組件、模塊或單元是為了強(qiáng)調(diào)經(jīng)配置以執(zhí)行所揭示的技術(shù)的裝置的功能方面,但未必需要由不同硬件單元實(shí)現(xiàn)。實(shí)際上,如上文所描述,各種單元可以結(jié)合合適的軟件和/或固件而組合在編解碼器硬件單元中,或者通過互操作硬件單元的集合來提供,所述硬件單元包含如上文所描述的一或多個(gè)處理器。

描述了各種實(shí)例。這些和其它實(shí)例在所附權(quán)利要求書的范圍內(nèi)。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
宽城| 抚松县| 化州市| 江川县| 历史| 桐乡市| 邛崃市| 两当县| 丰镇市| 临洮县| 乐清市| 香格里拉县| 文安县| 博白县| 淳化县| 靖远县| 新巴尔虎左旗| 石林| 祁连县| 广宁县| 景宁| 贞丰县| 富源县| 文成县| 宜宾市| 夏津县| 辽源市| 巩义市| 瓮安县| 库伦旗| 丰城市| 公安县| 徐州市| 丹江口市| 遵义市| 彰武县| 徐汇区| 许昌市| 古田县| 桐梓县| 漠河县|