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

使用列的圖像分割方法和系統(tǒng)與流程

文檔序號(hào):11524674閱讀:206來(lái)源:國(guó)知局
使用列的圖像分割方法和系統(tǒng)與流程

本申請(qǐng)是申請(qǐng)日為2011年12月28日、題為“使用列的圖像分割方法和系統(tǒng)”的發(fā)明專利申請(qǐng)201180062299.8的分案申請(qǐng)。

本申請(qǐng)要求2010年12月28日提交的、標(biāo)題為"picturesegmentationusinggeneralizedslices”的美國(guó)臨時(shí)專利申請(qǐng)序列號(hào)61/427,569以及2011年12月23日提交的、標(biāo)題為“methodandsystemforpicturesegmentationusingcolumns”的美國(guó)專利申請(qǐng)?zhí)?3/336,675的優(yōu)先權(quán),以引用的方式將以上每個(gè)申請(qǐng)的全文并入本申請(qǐng)中。

本發(fā)明的實(shí)施方式涉及視頻編碼,并且更具體而言涉及將編碼圖像分割成一個(gè)或多個(gè)列或片。



背景技術(shù):

可以將數(shù)字視頻能力包括在范圍廣泛的設(shè)備中,包括數(shù)字電視機(jī)、數(shù)字直接廣播系統(tǒng)、無(wú)線廣播系統(tǒng)、個(gè)人數(shù)字助理(pda)、膝上型計(jì)算機(jī)或桌上型計(jì)算機(jī)、攝像機(jī)、數(shù)字記錄設(shè)備、視頻游戲設(shè)備、視頻游戲控制臺(tái)、蜂窩或衛(wèi)星無(wú)線電話等等。數(shù)字視頻設(shè)備可以實(shí)現(xiàn)視頻壓縮技術(shù),如諸如mpeg-2、mpeg-4的標(biāo)準(zhǔn)中所述的那些視頻壓縮技術(shù),其中,可以從位于瑞士ch—1211日內(nèi)瓦20,郵政信箱56,voie-creuse第一大道的國(guó)際標(biāo)準(zhǔn)組織(“iso”)或www.iso.org或itu-th.264/mpeg-4第十部分,高級(jí)視頻編碼(“avc”)獲得,從位于瑞士ch-1211日內(nèi)瓦20萬(wàn)國(guó)宮廣場(chǎng)的國(guó)際電信聯(lián)盟(“itu'’)或www.im.int獲得mpeg-2、mpeg-4標(biāo)準(zhǔn),以引用的方式將以上每個(gè)標(biāo)準(zhǔn)的全文并入本申請(qǐng)中,或者根據(jù)其他標(biāo)準(zhǔn)或非標(biāo)準(zhǔn)規(guī)范實(shí)現(xiàn)視頻壓縮技術(shù),以有效地編碼并且/或者解碼數(shù)字視頻信息。

視頻編碼器可以接收未編碼視頻信息以便處理成任意合適的格式,該格式可以是符合(可從位于瑞士ch-1211日內(nèi)瓦20萬(wàn)國(guó)宮廣場(chǎng)的國(guó)際電信聯(lián)盟(“itu'’)或wvw.訌u.int獲得的并且以引用的方式全文并入本申請(qǐng)的)itu-rbt6016勺數(shù)字格式或者一些其他數(shù)字格式??梢詫⑽淳幋a視頻在空間上組織成配置在一個(gè)或多個(gè)二維矩陣中的像素值并且在時(shí)間上組織成一系列未編碼圖像,其中,每個(gè)未編碼圖像包括一個(gè)或多個(gè)上述提到的二維像素值矩陣。此外,每個(gè)像素可以包括用于以數(shù)字格式表示色彩的多個(gè)獨(dú)立的分量。用于被輸入到視頻編碼器的未編碼視頻的一個(gè)常用格式對(duì)于具有四個(gè)像素的每個(gè)分組具有四個(gè)輝度樣本和兩個(gè)色度樣本,其中,該輝度樣本包括關(guān)于像素的亮度/光亮或黑暗的信息,該色度樣本包括顏色信息(例如ycrcb4:2:0)。

視頻編碼器的一種功能是將未編碼圖像轉(zhuǎn)譯(更普遍而言“轉(zhuǎn)換”)成比特流、分組流、nal單元流或其他合適的傳輸格式(全都被在今后稱為“比特流”),其目標(biāo)在于例如降低編碼到比特流中的冗余的數(shù)量以由此增加傳輸速率,增加比特流的恢復(fù)能力以抑制在傳輸期間可能發(fā)生的比特錯(cuò)誤或分組擦除(統(tǒng)稱為“差錯(cuò)恢復(fù)能力”)或其他專用目標(biāo)。本發(fā)明的實(shí)施方式具備以下之中的至少一個(gè):冗余的去除或降低、差錯(cuò)恢復(fù)能力的增加以及并行處理架構(gòu)中的視頻編碼器和/或相關(guān)解碼器的實(shí)現(xiàn)。

視頻解碼器的一個(gè)功能在于接收由符合相同的視頻壓縮標(biāo)準(zhǔn)的視頻編碼器產(chǎn)生的比特流形式的編碼視頻作為它的輸入。視頻編碼器然后將接收編碼比特流轉(zhuǎn)譯(更普遍而言“轉(zhuǎn)換”)成可以被顯示、存儲(chǔ)或以其它方式處理的未編碼視頻信息。

可以使用包括硬件和軟件的組合的硬件和/或軟件配置實(shí)現(xiàn)視頻編碼器和視頻解碼器。視頻編碼器和視頻解碼器中的任意一個(gè)或兩個(gè)的實(shí)現(xiàn)可以包括可編程硬件組件如(如個(gè)人計(jì)算機(jī)(pc)中發(fā)現(xiàn)的那些)通用中央處理器cpu、嵌入式處理器、圖形卡處理器、數(shù)字信號(hào)處理器(dsp)、現(xiàn)場(chǎng)可編程門陣列(fpga)等等的使用。為了實(shí)現(xiàn)視頻編碼或解碼的至少一部分,可能需要指令,并且可以使用一個(gè)或多個(gè)非瞬態(tài)的計(jì)算機(jī)可讀介質(zhì)存儲(chǔ)并且分配那些指令。計(jì)算機(jī)可讀介質(zhì)選擇包括壓縮盤只讀存儲(chǔ)器(cd-rom)、數(shù)字視頻盤只讀存儲(chǔ)器(dvd-rom)、記憶棒、嵌入式rom等等。

在下文中,將描述與視頻壓縮和解壓縮的至少一個(gè)廣義方案(即視頻編碼器和/或解碼器中執(zhí)行的操作)關(guān)聯(lián)的特定系統(tǒng)、方法和/或方案。視頻解碼器可以執(zhí)行與編碼操作相逆的操作的全部或子集。若非另外注釋,則本文所述的視頻編碼技術(shù)還適用于包括所述視頻編碼技術(shù)的逆向(即與視頻解碼相關(guān)聯(lián))。

可以將未壓縮的數(shù)字表示的視頻視為樣本流,其中,可以由視頻顯示器在掃描次序中處理樣本。在該樣本流中通常出現(xiàn)的一種類型的邊界是樣本流的圖像之間的邊界。許多視頻壓縮標(biāo)準(zhǔn)識(shí)別該邊界并且通常例如通過(guò)在每個(gè)未編碼圖像的開頭插入圖像報(bào)頭或其他元數(shù)據(jù)來(lái)分割在這些邊界上的編碼比特流。

對(duì)于一些應(yīng)用,將編碼圖像分割成更小的數(shù)據(jù)塊可能是有利的,其中,該分割可以發(fā)生在編碼之前或期間。下文描述了可以受益于圖像分割的兩個(gè)使用情況。

第一種該使用情況涉及并行處理。在以前,標(biāo)清視頻(例如720x480或720x576個(gè)像素)是廣泛的商業(yè)使用中的最大格式。最近,出現(xiàn)并且在各種各樣的應(yīng)用空間使用(高達(dá)1920x1080個(gè)像素的)hd格式以及4k(4096x2048個(gè)像素)、8k(8192x4096個(gè)像素)以及更大的格式。盡管近些年來(lái)可負(fù)擔(dān)的計(jì)算能力增加,但是由于與這些更新的或更大的格式中的一些格式相關(guān)聯(lián)的的非常大的圖像尺寸,調(diào)節(jié)并行處理的效率對(duì)編碼并且解碼過(guò)程通常是有利的。并行編碼和解碼可以發(fā)生在指令等級(jí)(例如使用simd)、在可以在不同階段上同時(shí)處理多個(gè)視頻編碼單元的流水線中或者在由獨(dú)立的計(jì)算引擎作為獨(dú)立的實(shí)體(例如多核通用處理器)來(lái)處理視頻編碼子單元的集合的大型結(jié)構(gòu)基礎(chǔ)上。并行處理的最后一個(gè)形式需要圖像分割。

第二種該使用情況涉及圖像分割以便創(chuàng)建適用于在分組網(wǎng)絡(luò)上的有效傳輸?shù)谋忍亓鳌;趇p或其他分組網(wǎng)絡(luò)協(xié)議來(lái)傳輸編碼視頻的編解碼器可能受到最大傳輸單元(“mtu”)尺寸限制。對(duì)于編碼片尺寸而言,有時(shí)候包括編碼片的結(jié)果分組盡可能地接近mtu尺寸而不超過(guò)該尺寸是有利的,以便保持高的有效載荷/分組化開銷比率,同時(shí)避免被網(wǎng)絡(luò)分段(以及結(jié)果導(dǎo)致的更高的損失概率)。

mtu尺寸在一個(gè)網(wǎng)絡(luò)到另一個(gè)網(wǎng)絡(luò)之間變化很大。例如,可以由通常用于因特網(wǎng)的網(wǎng)絡(luò)基礎(chǔ)設(shè)施的最小mtu尺寸設(shè)置許多因特網(wǎng)連接的mtu尺寸,其中,該最小mtu尺寸通常對(duì)應(yīng)于以太網(wǎng)中的極限并且可以大致為1500個(gè)字節(jié)。

編碼圖像中的比特的數(shù)量依賴于許多因素如源圖像的尺寸、希望的質(zhì)量、就預(yù)測(cè)適宜性而言的內(nèi)容復(fù)雜度、視頻編碼標(biāo)準(zhǔn)的編碼效率以及其他因素。然而,即使在適中的設(shè)置質(zhì)量和內(nèi)容復(fù)雜度上,對(duì)于hd分辨率以及更高分辨率的序列,平均編碼圖像的尺寸輕易地超過(guò)mtu尺寸。視頻會(huì)議編碼器可能例如需要大約2mbit/sec,以編碼720p60視頻序列。這導(dǎo)致大致33000比特或4215字節(jié)的平均編碼圖像尺寸,這比因特網(wǎng)的mtu尺寸的近似1500個(gè)字節(jié)多相當(dāng)多。在更高的分辨率上,平均圖像尺寸增加到顯著高于因特網(wǎng)的mtu尺寸的值。假設(shè)與以上720p60中類似的壓縮比,60fps上的4096x2048(4k)視頻(4kp60)可能對(duì)于每個(gè)編碼視頻圖像需要超過(guò)300000個(gè)比特或25個(gè)mut大小的分組。

在許多視頻編碼標(biāo)準(zhǔn)中,圖像段(或至少一種形式的圖像段)被稱為“片”。在下文的描述中,可以將用于破壞任意形式的圖像內(nèi)預(yù)測(cè)或其他編碼機(jī)制的任意類型的(例如基于視頻編碼標(biāo)準(zhǔn)的)編碼圖像分段概括地稱為“片”。就這點(diǎn)而言,諸如(從見(jiàn)以上用于h.264的itu可得的)itu.trec.h.261或iturec.h.263中的塊組(“gob”)、h.264或mpeg標(biāo)準(zhǔn)族中的片之類的結(jié)構(gòu)中的每一個(gè)結(jié)構(gòu)可以構(gòu)成遍及本文所使用的術(shù)語(yǔ)“片”。然而,rfc3984的分段單元或h.264的數(shù)據(jù)劃分片段即使將編碼圖像的比特流細(xì)分成更小的數(shù)據(jù)塊也不能構(gòu)成遍及本文所使用的術(shù)語(yǔ)“片”,因?yàn)樗麄儧](méi)有破壞圖像預(yù)測(cè)或另外的編碼機(jī)制。

在媒體未知的分割機(jī)制例如由路由層的ip提供的那些分割機(jī)制上使用片的一個(gè)優(yōu)點(diǎn)在于片至少在一定程度上可獨(dú)立地解碼(如下文更詳細(xì)地討論的)。一個(gè)片的損失因此不會(huì)必然致使編碼圖像的其他片不可用或不可解碼。根據(jù)分段機(jī)制的實(shí)現(xiàn),分段的損失可能相反地致使許多其他分段不可用。

可以通過(guò)圖像報(bào)頭(或等效物)的解碼破壞許多或全部圖像內(nèi)預(yù)測(cè)機(jī)制或編碼機(jī)制。那些預(yù)測(cè)機(jī)制是否還被片報(bào)頭的檢測(cè)破壞取決于視頻壓縮標(biāo)準(zhǔn)和使用的片的類型。

在h.264中,可以將單獨(dú)的視頻圖像分割成一個(gè)或多個(gè)片,由此適應(yīng)需要或另外利用這樣一種圖像的應(yīng)用,其中,該圖像被分割成編碼/解碼過(guò)程的一部分??梢韵鄬?duì)于運(yùn)動(dòng)向量預(yù)測(cè)、內(nèi)部預(yù)測(cè)、ca-vlc和cabac狀態(tài)和h.264標(biāo)準(zhǔn)的其他方案獨(dú)立地解碼h.264中的片。雖然該解碼獨(dú)立性可以實(shí)現(xiàn)差錯(cuò)恢復(fù)能力的增加,但是不允許前述的跨片邊界的預(yù)測(cè)可能易于降低編碼效率。

在h.263中,視頻編碼器在選擇通過(guò)片或帶有非空gob報(bào)頭的gob的使用來(lái)破壞哪些預(yù)測(cè)機(jī)制方面具有更大的彈性。例如存在這樣一種比特,其中,該比特被包括在圖像報(bào)頭中,當(dāng)附件r被使用時(shí)可選擇該比特,該比特向解碼器發(fā)信號(hào)通知跨片/gob邊界沒(méi)有發(fā)生任何預(yù)測(cè)。如果未設(shè)置該比特,則運(yùn)動(dòng)向量可以指向到當(dāng)前片之外,因而潛在地“輸入”用于當(dāng)前片內(nèi)部的運(yùn)動(dòng)補(bǔ)償?shù)臉颖局?。此外,環(huán)路濾波可以包括片外部的樣本值。

在大部分或全部現(xiàn)有視頻編碼標(biāo)準(zhǔn)中,除了用作h.264的一部分的靈活宏塊排序(“fmo”)的可能的例外之外,按照光柵掃描次序來(lái)排序片中的宏塊。結(jié)果,當(dāng)將具有大的圖像尺寸的視頻序列分割成僅包括該圖像中的全部宏塊的相對(duì)小的百分比時(shí),片在空間上被觀察時(shí)往往被拉長(zhǎng)。

圖1顯示了根據(jù)現(xiàn)有技術(shù)被分解成片的示例性圖像100。示例性圖像100具有6x4個(gè)宏塊的矩陣101,通過(guò)細(xì)線指示它們的邊界。圖像100被分割成兩個(gè)片102、103,其中,由粗線指示兩個(gè)片102、103之間的片邊界104。第一片102按照掃描次序包括10個(gè)宏塊,具體而言宏塊1到10。第二片103包括矩陣101中的其余14個(gè)宏塊(即宏塊11到24)。宏塊中的數(shù)字(例如宏塊105中的數(shù)字“11”)是根據(jù)掃描次序的宏塊地址。

比特流106表示與圖像100相對(duì)應(yīng)的編碼圖像并且可以包括一個(gè)或多個(gè)參數(shù)集合107作為高級(jí)語(yǔ)法結(jié)構(gòu)的一個(gè)實(shí)例,其中,該高級(jí)語(yǔ)法結(jié)構(gòu)可以包括與圖像100的多個(gè)編碼片相關(guān)的語(yǔ)法元素。參數(shù)集合107之后可以緊接著一個(gè)或多個(gè)片,其中,每個(gè)該片分別包括對(duì)應(yīng)的片報(bào)頭108、110和對(duì)應(yīng)的片數(shù)據(jù)109、111。因此,在該實(shí)例中,片報(bào)頭108可能與片數(shù)據(jù)109相關(guān)聯(lián)并且可能對(duì)應(yīng)于矩陣101中的片102,同時(shí)片報(bào)頭110可能與片數(shù)據(jù)111相關(guān)聯(lián)并且可能對(duì)應(yīng)于片103。片報(bào)頭108、110可以根據(jù)掃描次序包括諸如各自的片的第一宏塊的地址之類的信息。例如當(dāng)?shù)诙?03被編碼到比特流106中時(shí)從包括用于指定宏塊105的地址的第一宏塊地址“11”的片報(bào)頭110開始。

如圖1中可以看出的,片102和103有點(diǎn)被拉長(zhǎng),在某種意義上而言片102和103中的每一個(gè)在水平上(即6個(gè)宏塊)比在垂直上(即2到3個(gè)宏塊)跨越更多宏塊。由于在水平上從一端到另一端的大的距離的結(jié)果,拉長(zhǎng)的片如片102和103往往包括不同的圖像內(nèi)容。此外,拉長(zhǎng)的片往往具有低的片面積對(duì)片周長(zhǎng)/邊界比率。當(dāng)與包括更多正方形圖像區(qū)域如正方形或其他接近正方形的幾何圖形的片相比時(shí),從編碼效率觀點(diǎn)而言,包括不同的圖像內(nèi)容的片與相對(duì)低的面積對(duì)周長(zhǎng)/邊界比率的組合可能是不利的。在本說(shuō)明書的下文中可以將具有該幾何特性的片稱為“緊湊”片。

還可以對(duì)于正方形圖像縱橫比優(yōu)化許多具有二維特性的熵編碼工具如運(yùn)動(dòng)向量或內(nèi)部預(yù)測(cè)模式的編碼。例如在h.264中,給定長(zhǎng)度的水平運(yùn)動(dòng)向量的編碼與相同長(zhǎng)度的垂直運(yùn)動(dòng)向量的編碼大致花費(fèi)相同的比特?cái)?shù)量。因此,這些編碼工具可以對(duì)于緊湊片產(chǎn)生比“拉長(zhǎng)”片如圖1中顯示的片102和103更好的壓縮。

與在拉長(zhǎng)片中更有可能發(fā)現(xiàn)的相對(duì)不同的內(nèi)容相比可以更有效地編碼在緊湊片中更有可能發(fā)現(xiàn)的同質(zhì)內(nèi)容的事實(shí)可能進(jìn)一步產(chǎn)生對(duì)于緊湊片的改善的編碼效率。作為一種普遍的但不必絕對(duì)的規(guī)則,在緊湊片中圖像內(nèi)容更有可能是同質(zhì)的,因?yàn)槠骄?,緊湊片的從片的中心到邊界的空間距離比拉長(zhǎng)片更小。此外,對(duì)于緊湊片具有更大的片面積對(duì)片邊界比率意味著在給定圖像中通常可以破壞更少的預(yù)測(cè)機(jī)制,由此導(dǎo)致更高的編碼效率。

在h.264中,fmo通過(guò)定義矩形片組,允許視頻編碼器有效地產(chǎn)生矩形片。fmo是為了解決視頻編碼中遇到的多個(gè)問(wèn)題而設(shè)計(jì)的高度概括的編碼工具。然而,從實(shí)際觀點(diǎn)看來(lái),往往發(fā)覺(jué)fmo具有相對(duì)高的實(shí)現(xiàn)復(fù)雜度,導(dǎo)致作為標(biāo)準(zhǔn)視頻壓縮的方案有點(diǎn)受限。可以利用改善的編碼效率以及并行編碼和解碼的更簡(jiǎn)單的編碼工具可以解決或減輕與完全fmo實(shí)現(xiàn)相關(guān)聯(lián)的的一個(gè)或多個(gè)復(fù)雜度問(wèn)題。

在許多基于mepg-2的編碼方案的極端情況中也可能出現(xiàn)拉長(zhǎng)片的問(wèn)題。例如在mpeg-2編碼中,通常的情況是將圖像之中的每行宏塊編碼到片中,由此有效地破壞圖像中的垂直維度中的任意圖像中預(yù)測(cè)機(jī)制。

矩形片模式是h.263的附件k中規(guī)定的兩種子模式中的一種子模式,另一種子模式是“掃描次序片模式”,掃描次序片模式具有與上文所討論的h.264的片相似的特性。h.263中規(guī)定的矩形片可以提供一個(gè)或多個(gè)前文所述的由緊湊片提供的優(yōu)點(diǎn)。然而,h.263要求必須在每個(gè)片的對(duì)應(yīng)的報(bào)頭中傳遞該片的維度(具體而言寬度),這例如在水平維度中的片尺寸從一個(gè)圖像到另一個(gè)圖像不改變的應(yīng)用中導(dǎo)致編碼低效率。另外,h.263的附件k沒(méi)有規(guī)定將有效地防止使用垂直拉長(zhǎng)的片的最小片寬度。垂直拉長(zhǎng)的片可能引起實(shí)現(xiàn)困難,并且,由于上文針對(duì)水平拉長(zhǎng)的片所討論的原因,將不會(huì)在每個(gè)情況中提供通過(guò)更緊湊的片的使用而可以提供的希望的編碼效率優(yōu)點(diǎn)。

在某些情況中限制片具有矩形形狀也可能是不利的。首先,矩形片可以在這樣一種應(yīng)用中次優(yōu)地執(zhí)行,其中,比特流對(duì)于該應(yīng)用使用受制于mtu的傳輸協(xié)議。例如,如果給定分組中的比特的數(shù)量超過(guò)比特流上強(qiáng)制的mtu限制,則可以對(duì)該分組進(jìn)行分裂,這從最小網(wǎng)絡(luò)性能和差錯(cuò)恢復(fù)能力觀點(diǎn)而言是不希望的。相反,如果給定分組中的比特的數(shù)量遠(yuǎn)低于該mtu限制,則傳輸和片報(bào)頭中的比特?cái)?shù)量的比率與分組有效載荷中的比特?cái)?shù)量相比變得比較大,由此導(dǎo)致編碼低效率。在形狀上要求片矩形限制了編碼器精確地控制編碼片中的比特?cái)?shù)量以避免上述缺點(diǎn)的能力。

其次,矩形片可以在利用并行編碼和/或解碼的應(yīng)用中也次優(yōu)地執(zhí)行。當(dāng)進(jìn)行并行編碼和/或解碼時(shí),將圖像分割成不同的部分以使得該圖像的每個(gè)部分需要近似相同的計(jì)算量來(lái)編碼是特別有利的。通過(guò)按照該方式分割圖像,因此可以用幾乎相同的延遲來(lái)編碼圖像的每個(gè)部分,以由此降低或最小化圖像的不同部分的編碼時(shí)間之間的滯后。限于使用矩形片的編碼器可能無(wú)法精確地控制解碼和/或編碼每個(gè)片所需要的cpu容量的數(shù)量并且由此避免該潛在的缺點(diǎn)。

為了有助于屬于同一編碼圖像的片的并行解碼,解碼器通常將編碼圖像段分配給各種各樣的處理器、處理器內(nèi)核或?qū)τ谟糜诓⑿薪獯a的解碼器可用的其他獨(dú)立地操作的解碼機(jī)制。對(duì)于以前的視頻編碼標(biāo)準(zhǔn)而言,在不使用fmo的情況下,這通常在一些極難的情況中是難以處理的任務(wù),因?yàn)槟切┮郧暗臉?biāo)準(zhǔn)將在比特流的生成中允許過(guò)多的彈性。例如在h.264中,也可能是在同一比特流中將一個(gè)圖像編碼在單個(gè)片中并且將另一個(gè)圖像編碼在數(shù)打片中。如果并行化發(fā)生在片等級(jí)上,則當(dāng)將圖像編碼在單個(gè)片中時(shí),將需要提供為了解碼該圖像而分配的處理器,以完整地處理它的解碼。結(jié)果,在不強(qiáng)制視頻編碼標(biāo)準(zhǔn)的外部限制的前提下,如果每個(gè)解碼處理器需要被配備為能夠在任意情況中處理整個(gè)圖像,則通過(guò)建立并行解碼器所實(shí)現(xiàn)的優(yōu)點(diǎn)將比較少。

普遍地將在許多mepg-2編碼器中使用的片編碼視為同意利用非正式的纜線實(shí)驗(yàn)室規(guī)范的結(jié)果,其中,該規(guī)范建議每個(gè)宏塊行分割為一個(gè)片的方案。該非正式規(guī)范最終獲得了廣泛的接受。盡管當(dāng)?shù)谝粋€(gè)mpeg-2產(chǎn)品在大約1995年變得可用時(shí)在該分割方案中可能具有價(jià)值,但是即使(至少所謂的sd)圖像的解碼的并行化在近十年來(lái)已經(jīng)相對(duì)不是問(wèn)題,如今與歷史規(guī)范相關(guān)聯(lián)的的各種各樣的約束也可能顯著地限制編碼效率。

因此需要一種在mtu尺寸匹配和并行解碼兩方面解決、減輕視頻編碼器的現(xiàn)有缺點(diǎn)或提供有用的備選的改進(jìn)的圖像分割方法和系統(tǒng)。因此,需要一種至少部分地解決以上以及其他缺點(diǎn)的技術(shù)方案。



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

本發(fā)明的實(shí)施方式在一個(gè)或多個(gè)廣義的方案中涉及用于將編碼圖像分割成列或片的技術(shù)。

在一些實(shí)施方式中,可以在位于一個(gè)或多個(gè)高級(jí)語(yǔ)法結(jié)構(gòu)(如片報(bào)頭或參數(shù)集合)中的一個(gè)或多個(gè)語(yǔ)法元素中定義多個(gè)列。如此定義的列可以是例如一個(gè)編碼樹塊(如例如wd4(從http://wftp3.itu.int/av-arch/jctvc-sit/2011_07_f_forino/可獲得的、由b.bross等人所著的“wd4:workingdraft4ofhigh-efficiencyvideocoding”)中所定義的ctb)與ctb中測(cè)量的圖像的整個(gè)水平尺寸之間的任意寬度。

在一些實(shí)施方式中,相鄰列之間的列邊界可能破壞視頻編解碼器的一個(gè)或多個(gè)預(yù)測(cè)機(jī)制或環(huán)路濾波機(jī)制。被列邊界破壞的預(yù)測(cè)或環(huán)路濾波器機(jī)制可以與被片邊界破壞的那些預(yù)測(cè)或環(huán)路濾波器機(jī)制相同或不同。

在一些實(shí)施方式中,用于計(jì)算并且指定列寬度的粒度可以是最大編碼單元(lcu),并且編碼樹塊(ctb)可以與lcu具有相同的尺寸。

在一些實(shí)施方式中,可以由語(yǔ)法元素n定義n個(gè)列,其中,該語(yǔ)法元素n指示圖像中的列的數(shù)量,并且該語(yǔ)法元素n之后緊接著n-1個(gè)用于指示該n個(gè)列中的每個(gè)列的對(duì)應(yīng)的寬度的n-1個(gè)語(yǔ)法元素??梢岳缤ㄟ^(guò)從圖像的寬度減去最左邊的n-1個(gè)列的寬度的和來(lái)計(jì)算指定的列(例如最右邊的列)的寬度。

在一些實(shí)施方式中,(除了或許對(duì)于一個(gè)預(yù)定義的列(如最右邊的列)之外,其中,該預(yù)定義的列可能具有更小的寬度)圖像中的每個(gè)列可以具有相等的寬度,并且語(yǔ)法元素w可用于指示(除了一個(gè)預(yù)定義的列之外的)每個(gè)列的該相等的寬度。可以將語(yǔ)法元素w例如放置到高級(jí)語(yǔ)法元素結(jié)構(gòu)(如參數(shù)集合)中。在該情況中,可以基于涉及w與由n所表示的圖像寬度的除法運(yùn)算來(lái)確定該一個(gè)預(yù)定義的列的寬度,從而可以將該一個(gè)預(yù)定義的列的寬度作為當(dāng)n被w除時(shí)的余數(shù)。

|在一些實(shí)施方式中,(除了或許以ctb為單位的圖像寬度不能被n整除的情況中對(duì)于一個(gè)預(yù)定義的列(如最右邊的列)之外,其中,該預(yù)定義的列可能具有更小的寬度)圖像中的每個(gè)列可以具有相等的寬度,并且語(yǔ)法元素n可用于指示(除了一個(gè)預(yù)定義的列之外的)寬度相等的列的數(shù)量。在該情況中,可以通過(guò)將以ctb為單位的圖像寬度除以n來(lái)確定全部n個(gè)列的寬度,其中,該預(yù)定義的列的寬度然后等于該除法運(yùn)算的余數(shù)。

在一些實(shí)施方式中,語(yǔ)法元素n可用于指示圖像中的列的數(shù)量。以lcu為單位的相等的列寬度w等于以lcu為單位的圖像寬度除以n。

在一些實(shí)施方式中,如果圖像寬度不能被相等的列寬度w整除,則一個(gè)預(yù)定義的列(例如最右邊的列)的寬度可能是圖像寬度(例如以ctb測(cè)量的)與w-1之間的除法運(yùn)算的余數(shù)。

在一些實(shí)施方式中,片可以包括一個(gè)或多個(gè)ctb,其中,每個(gè)ctb位于單個(gè)列中,由此使得mtu尺寸匹配,同時(shí)仍然允許通過(guò)列的并行化。

在一些實(shí)施方式中,片可以包括位于大于一個(gè)列中的ctb。

在一些實(shí)施方式中,可以在片報(bào)頭或類似的語(yǔ)法結(jié)構(gòu)中調(diào)整列的寬度,由此允許“負(fù)載平衡”編碼器中的計(jì)算資源。如果在源圖像順序中不同水平區(qū)域中的內(nèi)容復(fù)雜度不同,則列寬度的這種調(diào)整可能是有利的。

在一些實(shí)施方式中,高級(jí)語(yǔ)法元素可用于固定圖像的全部列的尺寸,由此在并行編碼或解碼情況中允許每個(gè)列到單個(gè)處理器或等效物的有效的分配。

在一些實(shí)施方式中,可以強(qiáng)制對(duì)于列的最小和/或最大水平寬度的限制。該限制可以在一些情況中輔助并行化并且可以改善編碼效率??梢岳鐚⒃撓拗凭幋a到標(biāo)準(zhǔn)的等級(jí)規(guī)范中或高級(jí)語(yǔ)法元素中,或者可以通過(guò)優(yōu)化可能涉及mtu尺寸和每ctb的平均比特(其可以源自比特率、幀速率和以ctb為單位的幀尺寸)的功能來(lái)調(diào)整該限制。

在一些實(shí)施方式中,ctb的掃描次序可用于解碼和/或編碼,根據(jù)該掃描次序,可以在第一等級(jí)上按列從左到右經(jīng)過(guò)圖像中的所有列并且在該第一等級(jí)之下的第二等級(jí)上按ctb從左到右并且從上到下經(jīng)過(guò)給定列中的全部ctb,按照排序次序處理ctb。

在一個(gè)廣義的方案中,提供了一種用于編碼包括多個(gè)編碼樹塊(ctb)的視頻圖像的方法,其中,該ctb被配置成至少兩個(gè)ctb行和至少一個(gè)ctb列。該方法可以涉及編碼至少一個(gè)列中的每個(gè)列的對(duì)應(yīng)的列寬度,每個(gè)列寬度大于零并且所有列寬度的和等于該視頻圖像的水平尺寸,并且編碼該視頻圖像的至少一個(gè)片。在一些情況中,該至少一個(gè)片可以包括位于至少兩個(gè)ctb行中的至少兩個(gè)ctb。

在另一個(gè)廣義的方案中,提供了一個(gè)或多個(gè)非瞬態(tài)計(jì)算機(jī)可讀介質(zhì),其中,在該非瞬態(tài)計(jì)算機(jī)可讀介質(zhì)上存儲(chǔ)指令,該指令被配置為使得一個(gè)或多個(gè)處理器能夠執(zhí)行一種用于視頻編碼包括多個(gè)編碼樹塊(ctb)的視頻圖像的方法,其中,該ctb被配置成至少兩個(gè)ctb行和至少一個(gè)ctb列。該方法可以包括編碼至少一個(gè)列中的每個(gè)列的對(duì)應(yīng)的列寬度,每個(gè)列寬度大于零并且所有列寬度的和等于該視頻圖像的水平尺寸,并且編碼該視頻圖像的至少一個(gè)片。在一些情況中,該至少一個(gè)片可以包括位于至少兩個(gè)ctb行中的至少兩個(gè)ctb。

在一些實(shí)施方式中,根據(jù)以上兩個(gè)方案中的任意一個(gè),該方法可以進(jìn)一步包括在ctb的相鄰列之間的列邊界處破壞至少一個(gè)形式的預(yù)測(cè)或環(huán)路濾波。

在一些實(shí)施方式中,根據(jù)以上兩個(gè)方案中的任意一個(gè),該方法可以進(jìn)一步包括將列的數(shù)量和列的寬度中的至少一個(gè)編碼到參數(shù)集合中。

在一些實(shí)施方式中,根據(jù)以上兩個(gè)方案中的任意一個(gè),至少一個(gè)列的對(duì)應(yīng)的列寬度在該視頻圖像的至少兩個(gè)ctb行之間可能是可變的。在該實(shí)施方式中,可以通過(guò)編碼片報(bào)頭中的對(duì)應(yīng)的列寬度來(lái)控制這種可變性。

在一些實(shí)施方式中,根據(jù)以上兩個(gè)方案中的任意一個(gè),該方法可以進(jìn)一步包括按照該多個(gè)ctb的掃描次序編碼該多個(gè)ctb,其中,根據(jù)該多個(gè)ctb的掃描次序,按列從左到右經(jīng)過(guò)多個(gè)列并且在該多個(gè)列的每個(gè)列中按ctb從左到右并且從上到下順序地編碼該多個(gè)ctb。

在另一個(gè)廣義的方案中,提供了一種用于解碼包括多個(gè)編碼樹塊(ctb)的編碼視頻圖像的方法,其中,該ctb被配置成至少兩個(gè)ctb行和至少一個(gè)ctb列。該方法可以包括獲得(i)至少一個(gè)列中的每個(gè)列的對(duì)應(yīng)的列寬度和(ii)列數(shù)量中的至少一個(gè),(如果未從該編碼視頻圖像獲得至少一個(gè)列中的每個(gè)列的對(duì)應(yīng)的列寬度則)導(dǎo)出至少一個(gè)列中的每個(gè)列的對(duì)應(yīng)的列寬度,并且解碼編碼視頻圖像的至少一個(gè)片。在一些情況中,該至少一個(gè)片可以包括位于至少兩個(gè)ctb行中的至少兩個(gè)ctb。

在另一個(gè)廣義的方案中,提供了一個(gè)或多個(gè)非瞬態(tài)計(jì)算機(jī)可讀介質(zhì),其中,在該非瞬態(tài)計(jì)算機(jī)可讀介質(zhì)上存儲(chǔ)指令,該指令被配置為使得一個(gè)或多個(gè)處理器能夠執(zhí)行一種用于視頻解碼包括多個(gè)編碼樹塊(ctb)的編碼視頻圖像的方法,其中,該ctb被配置成至少兩個(gè)ctb行和至少一個(gè)ctb列。該方法可以包括獲得(i)至少一個(gè)列中的每個(gè)列的對(duì)應(yīng)的列寬度和(ii)列數(shù)量中的至少一個(gè),(如果未從編碼視頻圖像獲得至少一個(gè)列中的每個(gè)列的對(duì)應(yīng)的列寬度則)導(dǎo)出至少一個(gè)列中的每個(gè)列的對(duì)應(yīng)的列寬度,并且解碼編碼視頻圖像的至少一個(gè)片。在一些情況中,該至少一個(gè)片可以包括位于至少兩個(gè)ctb行中的至少兩個(gè)ctb。

在一些實(shí)施方式中,根據(jù)以上兩個(gè)方案中的任意一個(gè),該方法可以進(jìn)一步包括在ctb的相鄰列之間的列邊界處破壞至少一個(gè)形式的預(yù)測(cè)或環(huán)路濾波。

在一些實(shí)施方式中,根據(jù)以上兩個(gè)方案中的任意一個(gè),可以從參數(shù)集合獲得該至少一個(gè)列中對(duì)應(yīng)的列寬度和列數(shù)量。

在一些實(shí)施方式中,根據(jù)以上兩個(gè)方案中的任意一個(gè),至少一個(gè)列的對(duì)應(yīng)的列寬度在編碼視頻圖像的至少兩個(gè)ctb行之間可能是可變的。在該實(shí)施方式中,可以通過(guò)編碼片報(bào)頭中的列寬度來(lái)控制這種可變性。

在一些實(shí)施方式中,根據(jù)以上兩個(gè)方案中的任意一個(gè),該方法可以進(jìn)一步包括按照該多個(gè)ctb的掃描次序解碼該多個(gè)ctb,其中,根據(jù)該多個(gè)ctb的掃描次序,按列從左到右經(jīng)過(guò)多個(gè)列并且在該多個(gè)列的每個(gè)列中按ctb從左到右并且從上到下順序地解碼該多個(gè)ctb。

在一個(gè)廣義的方案中,提供了一種用于包括多個(gè)編碼樹塊(ctb)的編碼視頻圖像的視頻解碼器,其中,該ctb被配置成至少兩個(gè)ctb行和至少一個(gè)ctb列。該視頻解碼器可以包括多個(gè)列解碼器,其中,每個(gè)列解碼器被配置為解碼編碼視頻圖像的位于被分配給該列解碼器的至少一個(gè)ctb列中的片。

在一些實(shí)施方式中,根據(jù)以上方案,每個(gè)片可以完全確切地位于一個(gè)列中。

在一些實(shí)施方式中,根據(jù)以上方案,每個(gè)列解碼器可以是運(yùn)行在多核處理器內(nèi)核或多處理器中的至少一個(gè)上的過(guò)程。

根據(jù)所述實(shí)施方式的進(jìn)一步的方案,提供了一種裝置如數(shù)據(jù)處理系統(tǒng)、一種用于調(diào)整該裝置的方法以及制品如非瞬態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)或者其上記錄用于實(shí)施本文所述的方法的程序指令的產(chǎn)品。

附圖說(shuō)明

本發(fā)明的實(shí)施方式的各種特征和優(yōu)點(diǎn)將從結(jié)合附圖所進(jìn)行的下文的詳細(xì)描述變得顯而易見(jiàn),其中,:

圖1是示出了具有掃描次序片和宏塊地址的一個(gè)示例性圖像的圖示;

圖2是示出了根據(jù)本發(fā)明的一個(gè)實(shí)施方式的列和片的圖示;

圖3是示出了根據(jù)本發(fā)明的一個(gè)實(shí)施方式的列和(給定列本地的)片的圖示;

圖4是示出了根據(jù)本發(fā)明的一個(gè)實(shí)施方式的示例性解碼器的操作的流程圖;

圖5是示出了根據(jù)本發(fā)明的一個(gè)實(shí)施方式的列寬度的修改的圖示;

圖6是示出了根據(jù)本發(fā)明的一個(gè)實(shí)施方式當(dāng)解碼片時(shí)示例性解碼器的操作的流程圖。

圖7是根據(jù)本發(fā)明的一個(gè)實(shí)施方式具有兩個(gè)列處理器的解碼器的方框圖;以及

圖8是示出了根據(jù)本發(fā)明的一個(gè)實(shí)施方式的基于數(shù)據(jù)處理系統(tǒng)(例如個(gè)人計(jì)算機(jī)(“pc”))的實(shí)現(xiàn)的方框圖。

應(yīng)當(dāng)注意的是,在整個(gè)附圖中由相同的參考數(shù)字識(shí)別相同的特征。

具體實(shí)施方式

在下面的描述中,闡述了細(xì)節(jié)以提供對(duì)本發(fā)明的理解。在一些實(shí)例中,未詳細(xì)地描述或示出特定的軟件、電路、結(jié)構(gòu)和方法,以免模糊本發(fā)明。在本文中使用術(shù)語(yǔ)“數(shù)據(jù)處理系統(tǒng)”來(lái)指代用于處理數(shù)據(jù)的任意機(jī)器,包括本文所述的計(jì)算機(jī)系統(tǒng)、無(wú)線設(shè)備和網(wǎng)絡(luò)配置??梢杂萌我庥?jì)算機(jī)編程語(yǔ)言來(lái)實(shí)現(xiàn)本發(fā)明的實(shí)施方式,只要數(shù)據(jù)處理系統(tǒng)的操作系統(tǒng)提供可以支持這些實(shí)施方式的要求的設(shè)施。也可以用硬件或用硬件和軟件的組合實(shí)現(xiàn)本發(fā)明的實(shí)施方式。

本發(fā)明的實(shí)施方式涉及視頻壓縮中使用列和片的圖像分割。

參考圖2,圖2顯示了根據(jù)本發(fā)明的實(shí)施方式的圖像201的示例性的分割200。圖像201被分割成多個(gè)編碼樹塊或宏塊(在后文中被稱為“ctb”)。在該實(shí)例中,圖像201具有6x4個(gè)ctb的尺度。通常將ctb的邊界顯示為細(xì)線。ctb的屬性以及他們的具體尺度是可變的并且可以根據(jù)不同的實(shí)施方式而改變。雖然下文的描述假設(shè)被包括在圖像201中的ctb是正方形的并且具有相等的尺寸(例如如同通常用于h.264中的宏塊一樣),但是本發(fā)明的特定實(shí)施方式可能不需要該特性并且可以利用具有不同尺寸的ctb來(lái)操作,只要在該實(shí)施方式中能夠使用那些不均勻尺寸的ctb來(lái)定義一個(gè)或多個(gè)水平列??梢岳缋萌鏷.264交織編碼中所使用的宏塊對(duì)或者利用h.263的降低分辨率的最新模式來(lái)操作本發(fā)明的實(shí)施方式。如果在同一圖像中存在例如32x32、16x16和8x8的樣本,則也可以操作該實(shí)施方式。

在圖像201中定義了兩個(gè)列202、203,并且圖中顯示由黑體實(shí)心線204所示的列邊界分割兩個(gè)列202、203。任意列的寬度可以是圖像201中所使用的ctb的尺寸的整數(shù)倍數(shù)(或者最小可能ctb尺寸的整數(shù)倍數(shù))。在圖像201中列可以具有相等或不相等的寬度。如圖所示,列202包括ctb1到8,并且列203包括ctb9到24。列202的寬度為兩個(gè)ctb,并且列203的寬度為四個(gè)ctb。然而,所述實(shí)施方式不限于該列數(shù)量也不限于圖1中所顯示的示例性列寬度。

圖2還顯示了在圖像201中定義的并且有黑體斷續(xù)線205劃定的兩個(gè)片。第一片包括ctb地址為1到14的ctb。第二片包括地址為15到24的ctb。第一片的ctb1-8位于列202中,而第一片的ctb9-14位于列203中。因此,第一片覆蓋作為列202和203中的任意一個(gè)的一部分的ctb。第二片包括全部位于列203中的ctb15-24。因此,圖像201中的ctb的掃描次序已經(jīng)從如圖1中所示的按圖像掃描次序改變?yōu)槿鐖D2中所示的按列掃描次序。根據(jù)該按列掃描次序,首先按列本地的掃描次序(從左到右,從上到下貫穿列202)枚舉列202的ctb,之后才(按以類似的方式定義的按列本地的掃描次序)枚舉列203的ctb。如果合適的話/在合適的情況中,可以將圖2中所顯示的按列掃描次序擴(kuò)展到已經(jīng)針對(duì)其定義了多于兩個(gè)列的圖像。

編碼比特流206表示圖像201并且可以包括參數(shù)集合207(或者可以包括到以前已解碼的參數(shù)集合的參考,因?yàn)槎鄠€(gè)圖像可以涉及同一參數(shù)集合)。參數(shù)集合207可以包括列邊界信息208,用于直接地或間接地識(shí)別一個(gè)或多個(gè)列(例如如稍后所述的列202和203)的寬度。每個(gè)編碼片可以分別包括對(duì)應(yīng)的片報(bào)頭209、211和對(duì)應(yīng)的片數(shù)據(jù)210、212。

如圖2所示,具有跨越列邊界的片的圖像分割可以提供一個(gè)或多個(gè)優(yōu)點(diǎn)例如(除了給定圖像的最后一個(gè)片的可能的例外之外)可以調(diào)整所有編碼片的尺寸以盡可能緊密地匹配mtu尺寸213,這至少部分地由于編碼片可能不包括編碼ctb部分。在圖2的該實(shí)例中,將兩個(gè)編碼片(每個(gè)編碼片包括各自的片報(bào)頭209、211和片數(shù)據(jù)210、212)顯示為尺寸大致相同,以便指示這些編碼片攜帶大致相同數(shù)量的比特,其中,該數(shù)量可以是小于但是接近mtu尺寸213的數(shù)量。將mtu尺寸213顯示為時(shí)間間隔,該時(shí)間間隔在該實(shí)例中對(duì)于兩個(gè)片是恒定的。在大部分情況中,雖然mtu尺寸213是網(wǎng)絡(luò)特性并且對(duì)于任意分組是恒定的以便通過(guò)片的使用優(yōu)化分組有效載荷,但是其他考慮可能迫切要求對(duì)于編碼片采用可變目標(biāo)尺寸。例如對(duì)于差錯(cuò)恢復(fù)能力而言,一些分組除了它們的片有效載荷之外還攜帶參數(shù)集合的冗余版本是有用的。在該情況中,從一個(gè)分組到另一個(gè)分組因此同樣從一個(gè)編碼片到另一個(gè)編碼片,該mtu尺寸213可以不同。貫穿本說(shuō)明書在廣義的意義上使用術(shù)語(yǔ)“mtu尺寸”。

允許片跨越跨多個(gè)列之間的邊界的該多個(gè)列的一個(gè)優(yōu)點(diǎn)在于考慮到良好的mtu尺寸匹配。隨著片能夠跨越多個(gè)列,由于列邊界的出現(xiàn),沒(méi)有任意一個(gè)列的尺寸將受到人工限制。另一個(gè)優(yōu)點(diǎn)可以是能夠?qū)⒄麄€(gè)圖像表示成單個(gè)片(例如在大多數(shù)情況中mtu尺寸大于已編碼圖像尺寸),同時(shí)仍然考慮到并行化。為了方便起見(jiàn),可以假設(shè)列邊界破壞所有形式的預(yù)測(cè)或環(huán)內(nèi)濾波。在該假設(shè)之下,并行編碼器的一個(gè)示例性配置可以如下。并行解碼器的每個(gè)處理器/內(nèi)核可以開始編碼列的空間區(qū)域,從該列中的左上端的ctb開始并且按照掃描次序順序地運(yùn)行到右下端的宏塊即從左到右并且從上到下。假設(shè)圖像中有n個(gè)列并且并行解碼器有n個(gè)處理器/內(nèi)核,該編碼方法可能導(dǎo)致生成n個(gè)子比特流,每個(gè)子比特流來(lái)自每個(gè)處理器/內(nèi)核。然后可以組合該n個(gè)子比特流以形成用于表示整個(gè)圖像的單個(gè)比特流。接收該比特流的解碼器可以從(例如被包括在該比特流中的)參數(shù)集合確定它的任務(wù)在于n個(gè)列中的并行解碼。該解碼器然后可以通過(guò)首先僅解碼該比特流中所包括的語(yǔ)法元素(而不執(zhí)行ctb的任意計(jì)算密集的重構(gòu))來(lái)預(yù)處理該組合比特流,以便識(shí)別比特流區(qū)域中的列之間的邊界。作為一個(gè)實(shí)例,一個(gè)該邊界將位于圖像201的編碼ctb8與編碼ctb9之間。此后,解碼器可以提取并且/或者將在預(yù)識(shí)別的邊界處在組合比特流之中分解的子比特流復(fù)制到處理器/內(nèi)核中以便處理。解碼器中的處理器/內(nèi)核可以在像素域中獨(dú)立地重構(gòu)它們的指定列,然后可以一起復(fù)制它們的指定列,以重構(gòu)完整的圖像。在下文中更詳細(xì)地解釋了其他可能的實(shí)現(xiàn)。

由于例如當(dāng)預(yù)測(cè)和/或環(huán)路濾波機(jī)制的(小的)子集被列邊界破壞時(shí),并行化實(shí)現(xiàn)困難,所以使得片跨越列邊界可能引起一個(gè)潛在缺點(diǎn)。例如如果將要在第一處理器上解碼列202并且將要在第二處理器上解碼列203,則解碼引擎的狀態(tài)(包括諸如cabac狀態(tài)、運(yùn)動(dòng)預(yù)測(cè)狀態(tài)之類的信息)或者至少解碼引擎的與未被列邊界破壞的預(yù)測(cè)或環(huán)路濾波工具有關(guān)的那些部分將至少在一些情況中必須在ctb8的解碼之后從第一處理器切換到第二處理器,其中,ctb8按列本地的掃描次序是列202中的最后一個(gè)宏塊。該切換的實(shí)現(xiàn)和計(jì)算復(fù)雜度可能依賴于例如被該列邊界的出現(xiàn)破壞的預(yù)測(cè)或環(huán)路濾波器工具。如果例如列邊界破壞除了熵編碼中的預(yù)測(cè)之外的任意形式的預(yù)測(cè),則僅需要切換與熵編碼引擎相關(guān)的信息。被整體并入本文的、2011年12月23日提交的、標(biāo)題為“methodandsystemforselectivelybreakingpredictioninvideocoding”的共同未決的美國(guó)專利申請(qǐng)序列號(hào)13/336,475披露了用于當(dāng)片跨越列邊界時(shí)控制需要切換的數(shù)據(jù)的數(shù)量的技術(shù)以及其他。

圖3示出了以損失最佳可能mtu尺寸匹配為代價(jià),在具體而言針對(duì)相等能力處理器(或其他并行處理實(shí)體如處理器內(nèi)核)的并行處理而優(yōu)化的較不普遍的情況300中在視頻圖像的片與列之間的交互。(該優(yōu)化還可以依賴于通過(guò)列的使用而破壞的預(yù)測(cè)和環(huán)路濾波工具;共同未決的美國(guó)專利申請(qǐng)序列號(hào)13/336,475披露了用于控制受列邊界影響的工具的技術(shù)以及其他。)

如在圖3中可以看出的,圖像301被分割成等寬度(在該實(shí)例中三個(gè)ctb寬)的兩個(gè)列302、303,導(dǎo)致向列302、303中的每一個(gè)分配相似數(shù)量的ctb。在由給定處理器或內(nèi)核處理給定列的假設(shè)之下,圖像301到等寬度的列302、303的分割還可能導(dǎo)致對(duì)于每個(gè)處理器或內(nèi)核的大致相等的負(fù)載。將列302與303之間的列邊界304顯示為黑體線。將列302的所有ctb編碼到單個(gè)片305中。然而在列303中定義了兩個(gè)片306、307并且兩個(gè)片306、307一起包括列303的全部ctb,其中,片306、307中的每一個(gè)片被定義為保持在mtu尺寸限制之內(nèi)。片305、306和307中的每一個(gè)可以例如滿足mtu尺寸限制,而不管包括不同的宏塊數(shù)量(分別是十二個(gè)、八個(gè)和四個(gè)),其中,對(duì)于列303的ctb需要比列302的ctb更高的平均比特?cái)?shù)量,這可以發(fā)生在如果/當(dāng)圖像201的一個(gè)部分比另一個(gè)部分更“復(fù)雜”時(shí)的情況中。由黑體斷續(xù)線指示列303之中的片306與片307之間的片邊界308。應(yīng)該注意到,片305和306比包括相似數(shù)量ctb但是按照?qǐng)D像掃描次序來(lái)排列的片更加“緊湊”得多。因此,列302和303的使用可能不僅助于(如下文將更詳細(xì)地描述的)并行處理的使用,而還可以有助于編碼效率。在該實(shí)例中,片307盡管與片305和306比不是非常緊湊,但是仍然可能比沒(méi)使用列302和303更緊湊。如前所述,ctb的掃描次序再次被改變。

編碼比特流309可以包括參數(shù)集合310,參數(shù)集合310包括列邊界信息311。雖然在圖3中可以將參數(shù)集合310顯示為與編碼圖像的編碼片相鄰,但是在各種各樣的實(shí)施方式中,參數(shù)集合可能位于比特流309中的別處或者甚至在一些情況中從帶外傳遞。

該編碼圖像包括三個(gè)編碼片(即片0、片1和片2),每個(gè)編碼片分別包括對(duì)應(yīng)的片報(bào)頭312、314、316和對(duì)應(yīng)的片數(shù)據(jù)313、315、317。編碼片0包括編碼片報(bào)頭312和編碼片數(shù)據(jù)313,編碼片數(shù)據(jù)313包括片305的編碼信息,并且編碼片數(shù)據(jù)313被描述為具有略低于mtu尺寸318的尺寸(單位為編碼比特)。編碼片1包括(對(duì)應(yīng)于片306的)編碼片報(bào)頭314和編碼片數(shù)據(jù)315。在該實(shí)例中,當(dāng)對(duì)片1進(jìn)行編碼時(shí),編碼器能夠用片報(bào)頭314和片數(shù)據(jù)315填充幾乎像mtu尺寸318一樣大的分組。注意到,填充到多達(dá)mtu尺寸318的最后一個(gè)比特可能不總是可行的,因?yàn)椴荒軐tb分段成超過(guò)一個(gè)片。因此,受制于該限制,在片中的最后一個(gè)ctb的編碼之后可能剩下額外比特。最后,片2包括(對(duì)應(yīng)于片307的)片報(bào)頭316和片數(shù)據(jù)317,并且比mtu尺寸318小得多,因?yàn)榕c片0和片1相比在該片中存在更少要被編碼的ctb。

可以在序列等級(jí)(例如在序列參數(shù)集合中)、在圖像等級(jí)(例如在圖像參數(shù)集合中)或者在覆蓋至少一個(gè)編碼圖像的比特流中的其他數(shù)據(jù)結(jié)構(gòu)中指定圖像中的列的靜態(tài)寬度。一次性對(duì)于序列或圖像中的所以片指定列邊界對(duì)于片寬度從一個(gè)圖像到另一個(gè)圖像不改變的應(yīng)用而言有優(yōu)點(diǎn),因?yàn)閷?duì)于每個(gè)圖像不需要與指定不同的片結(jié)果相關(guān)聯(lián)的的開銷。其進(jìn)一步具有在并行解碼的情況中有效地允許編碼比特在多個(gè)處理器或等效物之間的分配的優(yōu)點(diǎn)。稍后描述動(dòng)態(tài)列寬度調(diào)整。

可以使用一個(gè)或多個(gè)不同的數(shù)據(jù)結(jié)構(gòu)、參數(shù)、規(guī)則、標(biāo)志位或其他合適的語(yǔ)法指定列邊界。使用序列參數(shù)集合(sps)作為示例性高級(jí)語(yǔ)法結(jié)構(gòu)來(lái)傳遞列邊界,sps可以例如包括:

(1)變量n,通過(guò)該變量來(lái)編碼每個(gè)圖像的列數(shù)量。在該情況中,如果/當(dāng)必要并且/或者合適時(shí),如果圖像的寬度(以ctb為單位)可被n除盡,則可以通過(guò)將圖像的寬度除以n來(lái)導(dǎo)出每個(gè)列的寬度(以ctb為單位)。否則,可以通過(guò)將圖像的寬度除以n-1來(lái)計(jì)算n-1個(gè)列的寬度,從而最后的列(例如圖像中的最右邊的列)的寬度將是該除法運(yùn)算的余數(shù)。

(2)變量w,通過(guò)該變量來(lái)編碼列的最大寬度(以ctb為單位)。在該情況中,令n為圖像的寬度除以w。則前n個(gè)列的寬度等于w,并且最后的列的寬度將是該除法運(yùn)算的余數(shù)。

(3)變量n包括列數(shù)量,并且整數(shù)n-1的字段長(zhǎng)久地包括用于表示每個(gè)該列的寬度的值。該選擇考慮到如圖2中所顯示的不均勻的列寬度。

在熟悉了本文的公開內(nèi)容之后,適用于不同應(yīng)用的列邊界信息的其他表示將可以顯而易見(jiàn)并且旨在被覆蓋在所述實(shí)施方式的范圍中。

視頻編碼標(biāo)準(zhǔn)可以有利地設(shè)置用于可以出現(xiàn)在比特流中的最小或最大列寬度的極限。可以例如在配置文件和等級(jí)規(guī)范中指定該極限。對(duì)于高分辨率視頻解碼情況中的高級(jí)并行處理所設(shè)計(jì)的配置文件可能例如要求列必須與不大于例如1920個(gè)樣本(通常可在單個(gè)內(nèi)核中被解碼的1080p分辨率具有1920個(gè)水平樣本的分辨率)的寬度一起使用。另一方面,配置文件可能例如要求最小列寬度不小于640個(gè)樣本。下限可以有助于避免最壞情況和y維度中的“拉長(zhǎng)”片。上限可用于大量不同的原因。首先,如前所述,由于更少并且更小的拉長(zhǎng)片,可以改善編碼效率。其次,編碼器可以基于子圖像解碼器,其中,每個(gè)子圖像解碼器能夠解碼單個(gè)列(在下文中被稱為“列解碼器”)而無(wú)需能夠處理完整的圖像。再次,由于行緩沖器不需要跨越完整圖像寬度而僅需要跨越列寬度,所以可以降低列解碼器中的存儲(chǔ)器要求(加上有可能的依賴于實(shí)現(xiàn)的邊距)。關(guān)于列寬度的該上限的其他優(yōu)點(diǎn)也可以顯而易見(jiàn)。

接下來(lái)描述解碼器在包括片和列的比特流上的操作,注意該操作與不使用列所生成的比特流的解碼過(guò)程有何不同。為了方便起見(jiàn),在下文的描述中,將假設(shè)根據(jù)以上選擇(3)來(lái)執(zhí)行列寬度的編碼。然而,不應(yīng)該將該描述理解為僅限于該類型的編碼,并且如果必要/在必要的情況中,通過(guò)對(duì)該描述進(jìn)行合適的修改和/或替換,該描述還將適用于以上所述的其他兩個(gè)選擇。

在現(xiàn)代視頻編碼標(biāo)準(zhǔn)中,可以將與超過(guò)一個(gè)片相關(guān)的參數(shù)存儲(chǔ)在被稱為參數(shù)集合的更高級(jí)的語(yǔ)法結(jié)構(gòu)中。在更舊的標(biāo)準(zhǔn)中,可以將這些參數(shù)存儲(chǔ)在報(bào)頭如圖像、gop或序列報(bào)頭中。為了有助于下文的描述,今后假設(shè)為參數(shù)集合,但是本發(fā)明的實(shí)施方式可以等效地利用其它形式的高級(jí)語(yǔ)法結(jié)構(gòu)。

圖4顯示了用于示出根據(jù)本發(fā)明的實(shí)施方式的示例性解碼器的操作的方法400。首先,為了能夠解碼片數(shù)據(jù),可以將一個(gè)或多個(gè)參數(shù)集合解碼(401)為存儲(chǔ)在參數(shù)集合中并且可以通過(guò)存儲(chǔ)在片報(bào)頭中的參考來(lái)訪問(wèn)的參數(shù)。在一些實(shí)施方式中,參數(shù)集合可以包括與將要被解碼的圖像中所使用的列機(jī)制相關(guān)并且足以完整地定義與將要被解碼的圖像中所使用的列機(jī)制的信息。參數(shù)集合可以例如包括用于指示列數(shù)量(即圖4中的“num_column_minus_1”)和除了最后一個(gè)列之外的每個(gè)該列的寬度(即圖4中的“columnwidth[]”)的參數(shù)。編碼圖像中的最后一個(gè)列的寬度可以等于最右邊的列邊界與右手邊的圖像邊界之間的距離。

可以作為參數(shù)集合解碼(401)的一部分來(lái)解碼(402)存儲(chǔ)參數(shù)(例如“num_column_minus_1”和“columnwidth[]”)。解碼(402)可以是解碼(401)的子步驟并且可以在參數(shù)集合解碼(401)期間的任意合適時(shí)間執(zhí)行??梢岳缬蓞?shù)集合自身的語(yǔ)法(其可能強(qiáng)制在402中解碼的信息相對(duì)于參數(shù)集合中的其他條目的位置)限制確切的次序。

如共同未決的美國(guó)專利申請(qǐng)序列號(hào)13/336,475中進(jìn)一步所述的,在參數(shù)集合解碼(401)期間,還可以解碼與預(yù)測(cè)和/或環(huán)內(nèi)濾波工具相關(guān)的信息。與預(yù)測(cè)和/或環(huán)內(nèi)濾波工具相關(guān)的信息的解碼在圖4中通常被指示在403處并且也可以被視為參數(shù)集合解碼(401)的一部分。

在方法400中的參數(shù)集合信息的解碼(401)之后,片解碼和重構(gòu)可以開始。

首先,可以解碼(404)片報(bào)頭。在片報(bào)頭中,可以獲得允許解碼器將給定片與包括該給定片的列相關(guān)聯(lián)的的信息。片報(bào)頭可以例如包括用于表示片中所包括的第一ctb的地址的ctb地址(即如圖4中的“first_dtb_address”所指示的)。編碼ctb地址可以被解碼(405)并且用作在解碼過(guò)程期間被解碼器用于追蹤當(dāng)前ctb地址(即圖4中的“currentctb”)的參數(shù)的初始值。然后,可以基于片中所包括的第一ctb的地址,通過(guò)將該第一ctb與編碼圖像中所定義的特定的列相關(guān)聯(lián),識(shí)別(406)該片所位于的列。

例如往回參考圖1,ctb地址(它的一個(gè)實(shí)例是在405處解碼的ctb地址)可以是圖像中按掃描次序的每個(gè)給定ctb的位置的熵編碼表示,如圖1的ctb中央的數(shù)字所示的。為了將片與列相關(guān)聯(lián),可以將給定片中的第一ctb的ctb地址的水平分量與對(duì)于編碼圖像所定義的列邊界相比較,其中,可以從在參數(shù)集合的解碼期間獲得的(并且如下文所述有可能在稍后的片解碼期間被修改的)列寬度信息導(dǎo)出該列邊界。在本發(fā)明的一些實(shí)施方式中,如果可以限制每個(gè)給定片以存在于給定列內(nèi)的整體中,則可以通過(guò)識(shí)別該給定片中的第一ctb所存在的列來(lái)將片與列相關(guān)聯(lián)(因?yàn)橥ㄟ^(guò)定義可知,片中的所有剩余ctb將位于同一列中)??梢愿鶕?jù)下文更詳細(xì)地討論的圖6的方框611和612來(lái)進(jìn)行該識(shí)別。

再次參考圖4,識(shí)別(406)將要被解碼的片的第一(初始)列。然后可以如一個(gè)或多個(gè)ctb解碼可能符合的用于ctb解碼的視頻壓縮標(biāo)準(zhǔn)中所指定地那樣,進(jìn)行片中的編碼ctb的解碼,其中,該解碼可以包括多個(gè)步驟如除了ctb地址處理和基于片外部的數(shù)據(jù)的預(yù)測(cè)可用性來(lái)使用該數(shù)據(jù)之外的熵解碼、運(yùn)動(dòng)補(bǔ)償以形成預(yù)測(cè)器、系數(shù)的反量化和反變換以計(jì)算殘差、向運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)器增加殘差、對(duì)結(jié)果樣本進(jìn)行ctb內(nèi)去塊濾波等等。在下文中,概述了一個(gè)用于概述一個(gè)可能的實(shí)現(xiàn)策略的實(shí)例,但是在熟悉了本文的公開內(nèi)容之后,其他策略也可以顯而易見(jiàn)。

首先,可以解碼ctb質(zhì)地、運(yùn)動(dòng)和其他信息,并且可以重構(gòu)(407)正在由解碼器處理的當(dāng)前ctb,其可以涉及以上在ctb解碼的環(huán)境中所示的不同步驟中的任意一個(gè)或全部,然而還有注意到片或列邊界外部的信息的預(yù)測(cè)能力。

然后可以將當(dāng)前ctb地址增加(408)。如果確定(409)已增加ctb地址仍然在列的右手邊界的左邊,則不需要ctb地址的進(jìn)一步的更新(在圖4中通過(guò)將方框410直接繞到方框411的箭頭來(lái)指示)。然而,如果確定(409)已增加ctb地址在該列之外(即等于或在列的右手邊界的右邊),則將ctb地址復(fù)位(410)成該列中的下一個(gè)ctb行中的第一ctb的地址。換句話說(shuō),將ctb地址的水平分量設(shè)置為該列的最左邊的ctb(如圖6中的參數(shù)“colbound[]”所指示的)并且將ctb地址的垂直分量增加一。

如果在執(zhí)行方框408到410之后,ctb地址的垂直分量超過(guò)該圖像的垂直尺寸,則片可能跨越超過(guò)一個(gè)列。在該情況中,可以例如將ctb地址復(fù)位到以前的列的左邊的列中的左上端的ctb地址。在該列中繼續(xù)解碼和ctb地址改變。

此時(shí),確定(411)在將要解碼的片中是否可獲得更多(用于指示一個(gè)或多個(gè)ctb的)數(shù)據(jù)。如果確定(411)在將要解碼的片中剩余更多數(shù)據(jù),則方法400回到(412)方框407,并且繼續(xù)對(duì)該片中的下一個(gè)ctb解碼。然而,如果確定在將要解碼的片中不剩任何數(shù)據(jù),則方法400回到(413)方框404,并且繼續(xù)對(duì)該圖像中的下一個(gè)片解碼。

根據(jù)本發(fā)明的實(shí)施方式,解碼器可以從高級(jí)結(jié)構(gòu)(如圖像或序列參數(shù)集合)讀取(初始)列邊界信息。這可以例如在用于從比特流解析第一語(yǔ)法元素(即“num_column_minus_1”)的機(jī)制中實(shí)現(xiàn)。該語(yǔ)法元素可以有利地是圖像(或更高的)語(yǔ)法結(jié)構(gòu)(如圖像參數(shù)集合、序列參數(shù)集合、圖像報(bào)頭或類似的結(jié)構(gòu))的一部分。如果“num_column_minus_1”的值大于0,則可以推斷出現(xiàn)在一致性(conformant)比特流中的列邊界的數(shù)量等于在該參數(shù)中存儲(chǔ)的值,并且可以解析num_column_minus_1的列寬度??梢杂胏tb的方式指示對(duì)應(yīng)地解析的列的寬度。以h.264語(yǔ)法規(guī)范的風(fēng)格指定上述語(yǔ)法,為了方便起見(jiàn)在下文中概述了該語(yǔ)法的一部分。

具體而言,在下文提供的語(yǔ)法描述中,與無(wú)格式行相比的黑體變量(即下文的第一行到第四行)可以表示作為確定變量值的副作用或者否則結(jié)合確定變量值而從比特流獲取的比特。在讀取該值之后,該值可用于解碼過(guò)程,然而不再將該變量設(shè)置為黑體,因?yàn)樵撟兞康氖褂脧脑摃r(shí)刻開始不再與比特流獲取相關(guān)聯(lián)。

如果根據(jù)給定的壓縮標(biāo)準(zhǔn)可以在超過(guò)一個(gè)等級(jí)處指定列邊界,則列邊界的語(yǔ)法可以在各種各樣的等級(jí)(例如序列和/或圖像等級(jí))上相同。在該情況中,在相對(duì)較低的等級(jí)(即圖像等級(jí))上指示的列邊界可以優(yōu)先于在在相對(duì)較高的等級(jí)(即序列等級(jí))上指示的列邊界。

已解析columnwidth[]值可用于如下所示地導(dǎo)出列邊界:

在下文中,描述可以在圖像的編碼期間(即在片等級(jí)上)調(diào)整列邊界的本發(fā)明的實(shí)施方式。

參考圖5,圖5顯示了用于示出根據(jù)本發(fā)明的實(shí)施方式的列寬度修改500的圖示。在圖5中,可以在片等級(jí)上(例如基于來(lái)自片報(bào)頭的信息)修改列邊界的位置。修改500可能僅與當(dāng)前圖像有關(guān)并且與編碼比特流中的其他圖像無(wú)關(guān)。當(dāng)涉及編碼處理并行化并且可以由獨(dú)立的處理器或類似的單元處理列時(shí),修改500可以提供這樣一種優(yōu)點(diǎn),其中,該優(yōu)點(diǎn)在于可以根據(jù)有可能來(lái)自外部負(fù)載因子(其它過(guò)程與視頻編碼不相關(guān))的處理器負(fù)載、內(nèi)容復(fù)雜度(從一個(gè)列到另一個(gè)列其可以改變)或其他因子,調(diào)整每列的ctb數(shù)量。

在下文的描述中,為了方便起見(jiàn),使用片報(bào)頭傳遞修改信息,因?yàn)樵谔囟ōh(huán)境中片報(bào)頭可能是在h.264中最適合用于該目的的語(yǔ)法結(jié)構(gòu)。用于與超過(guò)一個(gè)片相關(guān)的信息的片報(bào)頭的使用不必符合h.264的語(yǔ)法模型(例如,在h.264中,與超過(guò)一個(gè)片相關(guān)的全部信息應(yīng)當(dāng)僅被包括在參數(shù)集合中),但是符合某些比較舊的視頻壓縮標(biāo)準(zhǔn)(例如,在h.261中,可以從以前的gob報(bào)頭預(yù)測(cè)gob報(bào)頭信息,并且gob至少在一些方案中類似于或等效于h.264片)。與此同時(shí),如果要在較新的視頻壓縮標(biāo)準(zhǔn)中包括這樣一種機(jī)制,其中,該機(jī)制將允許在不僅與當(dāng)前片相關(guān)的片等級(jí)上的特性的編碼,則該語(yǔ)法結(jié)構(gòu)可能在一些情況中對(duì)于出現(xiàn)在片報(bào)頭本身之下的信息處于更合適的位置。例如在wd4中包括自適應(yīng)參數(shù)集合(aps),該aps被設(shè)計(jì)為攜帶有可能從一個(gè)圖像到另一個(gè)圖像改變的信息(與用于攜帶不可能從一個(gè)圖像到另一個(gè)圖像改變的信息的圖像參數(shù)集合相反)。在jct-vc中還考慮允許在片邊界“更新”aps的提案,該提案如果被接受則還將使得aps成為用于如下所述的列寬度更新信息的合適的語(yǔ)法結(jié)構(gòu)。

在本發(fā)明的一些實(shí)施方式中,當(dāng)當(dāng)前圖像的編碼/解碼完成時(shí),已通過(guò)下文所討論的覆蓋機(jī)制被改變的列邊界回復(fù)到在圖像或序列等級(jí)指定的位置。該特征可以至少部分地補(bǔ)償使用片報(bào)頭來(lái)編碼與超過(guò)一個(gè)片相關(guān)的信息而導(dǎo)致的架構(gòu)不潔凈。例如不允許使用圖像報(bào)頭和h.264中的類似的數(shù)據(jù)結(jié)構(gòu)的一個(gè)可能的原因在于避免由于破壞的報(bào)頭結(jié)構(gòu)而導(dǎo)致的差錯(cuò)傳播。在每個(gè)圖像之后回復(fù)到(已經(jīng)被設(shè)計(jì)為非常難以被破壞的)參數(shù)集合中所傳遞的數(shù)據(jù)可以確保報(bào)頭破壞僅限于一個(gè)給定圖像,而不對(duì)于已經(jīng)發(fā)生了報(bào)頭破壞的圖像之后的所有圖像。

在圖5中顯示了兩個(gè)原始列邊界501和502,其中,將原始列邊界501和502描述為斷續(xù)的黑體垂直線。在該實(shí)例中,假設(shè)編碼器由于某種原因而希望降低最左邊的列503的列寬度。解碼器進(jìn)行該調(diào)整的動(dòng)機(jī)通常不受限制并且可以包括例如處理器負(fù)載平衡方案或最左邊的列中的內(nèi)容(與其他列相比)相對(duì)高的編碼復(fù)雜度(其將在該列的ctb中導(dǎo)致更多比特),并且結(jié)果除非降低該列寬度否則將導(dǎo)致拉長(zhǎng)片。

根據(jù)修改500,列邊界502跨越該圖像的整個(gè)垂直高度,而列邊界503僅跨越該圖像的整個(gè)垂直高度的一部分即兩個(gè)最上邊的ctb行。其余的列邊界相對(duì)于列邊界501偏移并且因此最左邊的列邊界503具有可變的寬度。列503可以例如被分割成具有不同寬度的兩個(gè)不同的片。如圖5中所示的,列503中的片504可能具有由原始列邊界501設(shè)置的第一寬度,而列503中的片505可能具有與該第一寬度不同并且由根據(jù)修改500的偏移列邊界設(shè)置的第二寬度。

可以通過(guò)包括邊界偏移值以便如果該偏移值為負(fù)則將列邊界例如向左移動(dòng)或者可替換地如果該偏移值為正則將列邊界例如向右移動(dòng),來(lái)在片等級(jí)上修改列邊界。在最右邊的列503中的片505的片報(bào)頭可以例如包括這樣一種信息,其中,該信息的程度以致如關(guān)于片504所定義的最左邊的列與中間列之間的原始列邊界關(guān)于片505向左移動(dòng)一個(gè)ctb。結(jié)果,ctb22現(xiàn)在屬于中間列(與最左邊的列503相反),并且在最左邊的列503中繼續(xù)對(duì)片505編碼,其中,在該特定的實(shí)例中,片505包括ctb20、21、30、31、40、41、50和50。

存在大量角落情況,其中,從高速緩沖存儲(chǔ)器的觀點(diǎn)看來(lái)該角落情況可能潛在地使得上述修改500的實(shí)現(xiàn)看起來(lái)不必要地復(fù)雜和/或無(wú)效率。然而,可以由可以在各種各樣的實(shí)施方式中強(qiáng)制的并且在下文中進(jìn)一步描述的、關(guān)于列邊界移動(dòng)的大量限制來(lái)有效地處理該角落情況。

在圖像解碼期間,列邊界的移動(dòng)可能從這樣一種ctb行開始生效,其中,該片的第一ctb的地址位于該ctb行,以將邊界偏移信息包括在它的片報(bào)頭中。此后,邊界偏移可以仍然對(duì)于圖像中的所有剩余ctb行有效,除非該邊界偏移被后續(xù)片報(bào)頭中的另一個(gè)邊界偏移覆蓋。

可以以ctb寬度為單位來(lái)指示邊界偏移值。

比特流可以包括可以從該比特流被解析的“boundary_offset_flag”(即如圖6中所示)。如果boundary_offset_flag具有值為一,則left_boundary_offset和right_boundary_offset中的一個(gè)或兩個(gè)可以跟隨在該比特流中,其中,可以通過(guò)left_boundary_offset和right_boundary_offset來(lái)指定向右或向左的列邊界移動(dòng)。否則,如果boundary_offset_flag具有值為零,則可能沒(méi)有任何偏移值出現(xiàn)在比特流中在boundary_offset_flag之后。按照h.264語(yǔ)法規(guī)范的風(fēng)格,下文顯示了用于指定偏移值的一個(gè)示例性語(yǔ)法:

如上所述,與無(wú)格式行(即第二行)相比的黑體變量(即以上第一行、第三行和第四行)可以表示作為確定變量值的副作用或者否則結(jié)合確定變量值而從比特流獲取的比特。

圖6是示出了根據(jù)本發(fā)明的實(shí)施方式,可用于基于如上所解析的邊界偏移值來(lái)確定列邊界的方法600的流程圖。

可以通過(guò)以下設(shè)置來(lái)開始(601)方法600,其中,為了方便起見(jiàn)將以下設(shè)置描述為c語(yǔ)言風(fēng)格偽代碼。該開始除了別的之外還從變量columnboundary[]復(fù)制解析邊界,其中,該columnboundary[]是從上述高級(jí)語(yǔ)法元素導(dǎo)出的,如下:

此后,確定(602)是否設(shè)置(上文介紹的)boundary_offset_flag。如果確定(602)不設(shè)置該標(biāo)志位,則不允許列邊界的更新,并且方法600分叉(603),因而如前所述地并且如該編碼所服從的視頻編碼方案中所指定地解碼(604)片,該解碼例如涉及對(duì)于片的每個(gè)ctb的處理如熵解碼、運(yùn)動(dòng)補(bǔ)償以形成預(yù)測(cè)器、系數(shù)的反量化和反變換以計(jì)算殘差、向運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)器增加殘差、對(duì)結(jié)果樣本進(jìn)行ctb內(nèi)去塊濾波等等。然后,如果確定(605)圖像中的最后一個(gè)片已經(jīng)被解碼(可以由許多不同機(jī)制(如檢測(cè)圖像id、臨時(shí)參考、出現(xiàn)時(shí)間戳或類似的語(yǔ)法元素的值的改變以及基于rtp時(shí)間戳的到期機(jī)制)來(lái)測(cè)試該情況),則方法600通過(guò)如上所述進(jìn)行初始化(601)以處理比特流中的下一個(gè)圖像來(lái)繼續(xù)(606)。然而,如果確定(605)片不是該圖像的最后一個(gè)片,則方法600通過(guò)確定(602)是否設(shè)置了boundary_offset_flag來(lái)繼續(xù)(607)。

如果確定(602)設(shè)置了boundary_offset_flag,則片報(bào)頭包括可以被解析并且可用于修改colbound[]的邊界偏移,并且該方法分叉(608)以便列邊界的該修改。該修改可以通過(guò)識(shí)別該片所屬于的列來(lái)開始。該識(shí)別因而可以始于初始化(609),該初始化可以例如包括指令如下文的指令:

此時(shí),方法600可以(例如在colbound[]中)搜遍列邊界的當(dāng)前狀態(tài),以便識(shí)別正在被解碼的片所屬于的特定的列。方法600可以例如通過(guò)對(duì)照存儲(chǔ)列邊界值(colbound[])檢查(611)如在初始化中所確定的并且存儲(chǔ)在firstctbmod中的、當(dāng)前ctb(它是所討論的片中的第一ctb)的ctb地址的水平地址分量來(lái)執(zhí)行該識(shí)別。通過(guò)增加(610)合適的搜索索引來(lái)搜遍列邊界,在列邊界被識(shí)別為位于當(dāng)前片的第一ctb(如firstctbmod中所表示的)的“右邊”(即就掃描次序而言具有更大的水平地址)之后,該搜索完成并且方法600帶著搜索索引i的幸存狀態(tài)退出(612)搜索循環(huán)。

可以通過(guò)向左列邊界和右列邊界增加如所初始化(609)的不同信息leftoffset和rigtoffset,根據(jù)搜索索引i的幸存狀態(tài),更新該正在被解碼的片所屬于的列的邊界。可以例如如下實(shí)現(xiàn)該更新:

colbound[i-1]=colbound[i-1]+leftoffset;

colbound[i]=colbound[i]+rigtoffset;

此時(shí),方法600進(jìn)行如上所述的片解碼(604)。

在一些情況中,對(duì)列邊界指示強(qiáng)制包括以下限制的限制可能是有利的并且/或者方便的:

colbound[i]<colbound[i+1]

該限制要求在圖像中從左到右對(duì)列標(biāo)號(hào)并且還暗示偏移值不能用于交換列邊界次序。

也可以限制leftoffset、rigtoffset和隨后導(dǎo)出的colbound[]值,以使得每個(gè)結(jié)果列的寬度大于或等于最小列寬度。該最小列寬度可以是例如等級(jí)專用的并且/或者被指定在視頻壓縮標(biāo)準(zhǔn)中。

在一些情況中,leftoffset和rigtoffset可能無(wú)法用于修改作為以前編碼的片的片邊界的colbound[]。

在一些情況中,colbound[0]的值可能無(wú)法從它的初始值‘0’被改變,以反映第一個(gè)標(biāo)號(hào)的列從圖像的最左邊邊緣開始。結(jié)果,在當(dāng)i=1時(shí)的該情況中l(wèi)eftoffset的值應(yīng)該是‘0’。

在一些情況中,colbound[num_column_minus_1+1]的值可能無(wú)法從它的初始值picturewidth被改變。結(jié)果,在當(dāng)i=num_column_minus_1+1時(shí)的情況中rigtoffset的值應(yīng)該是‘0’。

參考圖7,圖7顯示了根據(jù)所述實(shí)施方式的基于多處理器或多核架構(gòu)的解碼器700的方框圖。為了方便起見(jiàn),假設(shè)解碼器700在被配置為用于或者適用于并行解碼的比特流上進(jìn)行操作,例如通過(guò)要求使用如上所述對(duì)于列寬度具有特定限制(例如關(guān)于列寬度的上限和下限)的寬度。

在一些實(shí)施方式中,解碼器700可以將編碼比特流701接收到高級(jí)語(yǔ)法解釋器702中。在圖7中將比特流701顯示為斷續(xù)線條以將比特流701與(如實(shí)心細(xì)線所顯示的)元數(shù)據(jù)并且與(如實(shí)心黑體線條所顯示的)樣本數(shù)據(jù)區(qū)分開來(lái)。高級(jí)語(yǔ)法解釋器702可以被配置為用于參數(shù)集合的解碼以及在參數(shù)集合數(shù)據(jù)庫(kù)703中的后續(xù)存儲(chǔ),其中,高級(jí)語(yǔ)法解釋器702具有到參數(shù)集合數(shù)據(jù)庫(kù)703的讀取和寫入通路??梢源鎯?chǔ)并且向解碼器700中的一個(gè)或多個(gè)其他組件(例如向列/片解碼器705)提供704解碼參數(shù)集合。在一些實(shí)例中,高級(jí)語(yǔ)法解釋器702可能能夠進(jìn)一步處理比特流701中所包括的高級(jí)語(yǔ)法和/或低級(jí)語(yǔ)法(低于cu等級(jí))元素的熵編碼的一部分或全部,該能力可以依賴于熵解碼到列解碼器707、708的分配。高級(jí)語(yǔ)法解釋器702的輸出數(shù)據(jù)706可能是例如從比特流701導(dǎo)出的元數(shù)據(jù)分量,該元數(shù)據(jù)分量可能包括來(lái)自該比特流的信息如(經(jīng)過(guò)熵解碼創(chuàng)建的)符號(hào)或包括熵編碼符號(hào)的緩沖器以及控制信息。

列/片解碼器705可以被耦合到高級(jí)語(yǔ)法解釋器702并且到參數(shù)集合數(shù)據(jù)庫(kù)703并且可以從高級(jí)語(yǔ)法解釋器702接收輸出數(shù)據(jù)706。在一些實(shí)施方式中,列/片解碼器705可以解碼片報(bào)頭,并且例如通過(guò)考慮列邊界信息來(lái)識(shí)別該片的第一ctb所屬于的列,其中該列邊界信息可以位于存儲(chǔ)在參數(shù)集合數(shù)據(jù)庫(kù)703中的參數(shù)集合中并且基于片報(bào)頭中的參數(shù)集合參考來(lái)獲取704該列邊界信息。如果列/片解碼器705確定片位于單個(gè)列中,如上所述,則列/片解碼器705可以通過(guò)識(shí)別該片的第一ctb所屬于的列來(lái)識(shí)別該片所位于的列。

根據(jù)該列信息,列/片解碼器705可以選擇用于該片的解碼的一個(gè)列解碼器。兩個(gè)列解碼器707、708被顯示在圖7中作為解碼器700的實(shí)現(xiàn)的實(shí)例并且不適用于限制可能的實(shí)現(xiàn)。在可替換的實(shí)施方式中,編碼器700可以例如包括更多或更少數(shù)量的列解碼器,只要編碼器700包括至少一個(gè)列解碼器。如果在比特流701中存在的列比在解碼器700中所包括的列解碼器707、708更多,則可以選擇列解碼器707、708中的至少一個(gè)用于解碼多個(gè)列??商鎿Q地,如果在解碼器700中可用的列解碼器707、708比在比特流701中存在的列更多,則列解碼器707、708中的一個(gè)或多個(gè)可以是空閑的,因?yàn)閷](méi)有列被列/片解碼器705分配給它們。雖然列/片解碼器705可以將比特流701中的列分配給列解碼器707、708,但是列/片解碼器705可以作為負(fù)載平衡問(wèn)題來(lái)處理它們,其中,在熟悉了本文的公開內(nèi)容之后對(duì)于該負(fù)載平衡問(wèn)題的許多可能的技術(shù)方案將顯而易見(jiàn)。

假設(shè)將當(dāng)前將要被解碼的片分配給列解碼器707,可以向列解碼器707轉(zhuǎn)發(fā)解碼該列所需要的數(shù)據(jù)709。該數(shù)據(jù)709可以與來(lái)自高級(jí)語(yǔ)法解釋器702的輸出數(shù)據(jù)706具有相似的特性。在一些實(shí)現(xiàn)中,列/片解碼器705可以刪減輸出數(shù)據(jù)706中對(duì)于列的解碼所不需要的那些部分或者使得那些部分不相關(guān),以力圖不作為數(shù)據(jù)709的一部分向解碼器707轉(zhuǎn)發(fā)該不需要的部分。

在一些實(shí)施方式中,比特流701可以不被配置為用于或者可以允許它的內(nèi)容在多個(gè)列解碼器(例如圖7中的707和708)中完全或者近乎完全獨(dú)立的解碼。然而,在其他情況中,可能需要在多個(gè)列解碼器之間共享一些元數(shù)據(jù)或簡(jiǎn)單數(shù)據(jù)信息??梢栽诠餐礇Q的美國(guó)專利申請(qǐng)序列號(hào)13/336,475中找到與可能潛在地需要在多個(gè)列解碼器之間共享的數(shù)據(jù)的屬性和數(shù)量相關(guān)的細(xì)節(jié)。

在一些實(shí)施方式中,可以由合適地配置的共享單元710處理信息的共享??梢詫⒐蚕韱卧?10實(shí)現(xiàn)為共享存儲(chǔ)器、允許消息交換的排隊(duì)機(jī)制或者用于處理器間或內(nèi)核間通信的其他機(jī)制。在由共享單元710使得能夠信息共享的情況中,可能潛在地需要在列解碼器707、708之間共享元數(shù)據(jù)信息711(例如熵解碼狀態(tài)、運(yùn)動(dòng)向量預(yù)測(cè)器)和/或樣本數(shù)據(jù)712(例如用于內(nèi)部預(yù)測(cè)或運(yùn)動(dòng)補(bǔ)償?shù)牧械南噜徬袼氐闹?。共享單元710還可以被合適地配置為在片跨越相鄰列之間的列邊界的情況中,助于從列解碼器707、708中的一個(gè)到另一個(gè)的信息的“切換”,以力圖由列/片解碼器705依次地分配多個(gè)列解碼器707、708以解碼該片。

在一些實(shí)施方式中,例如在解碼器700在個(gè)人計(jì)算機(jī)或類似的硬件架構(gòu)中利用多個(gè)處理器或單個(gè)多核處理器的實(shí)現(xiàn)中,可以通過(guò)將解碼器700的全部狀態(tài)信息(包括例如全部參考圖像)保持在可以在列解碼器707、708之間共享的存儲(chǔ)器中,極大地助于作為運(yùn)行在內(nèi)核或處理器上的過(guò)程的、列解碼器707、708的實(shí)現(xiàn)。在該情況中,共享單元710可以包括共享存儲(chǔ)器,其中在一些情況中可能由處理器間通信工具如臂板或在例如操作系統(tǒng)核心中實(shí)現(xiàn)的消息傳遞來(lái)輔助該共享存儲(chǔ)器。

列解碼器708的輸出可能是向組合器715提供的部分重構(gòu)的樣本713和相關(guān)元數(shù)據(jù)714。類似地,列解碼器707可以產(chǎn)生與由列解碼器708產(chǎn)生的部分重構(gòu)的樣本713和相關(guān)元數(shù)據(jù)714類似的部分重構(gòu)的樣本和相關(guān)元數(shù)據(jù)??梢詫颖?13描述為“部分重構(gòu)的”,因?yàn)閷?duì)于如視頻壓縮標(biāo)準(zhǔn)中所指定的完全重構(gòu)而言可能在基于圖像的樣本生成器717中需要進(jìn)一步的處理,如稍后所述??梢栽诮M合器715中將由列解碼器708提供的樣本713和相關(guān)元數(shù)據(jù)輸出714與列解碼器707的對(duì)應(yīng)的輸出組合,以生成列已處理圖像716和相關(guān)元數(shù)據(jù)719。

基于圖像的樣本生成器717可以被配置為基于從組合器715接收的列已處理圖像716和相關(guān)元數(shù)據(jù)719生成重構(gòu)圖像718。最終的重構(gòu)圖像718有可能用于被解碼器700輸出并且/或作為反饋回解碼器700中的其他組件(下文進(jìn)一步所示)的參考圖像?;趫D像的樣本生成器717有利地實(shí)現(xiàn)計(jì)算無(wú)需非常密集但是需要到與全部列相關(guān)的信息的通路的任務(wù)。環(huán)內(nèi)濾波、后置濾波和差錯(cuò)消除是那些任務(wù)的實(shí)例。但是,依賴于編碼比特流的特性,還有可能改為在列解碼器707、708中實(shí)現(xiàn)這些任務(wù)中的一些或全部(可以在共同未決的美國(guó)專利申請(qǐng)序列號(hào)13/336,475中找到該實(shí)現(xiàn)的進(jìn)一步的細(xì)節(jié))。因此,在一些實(shí)施方式中,可以從解碼器700省略基于圖像的樣本生成器717。

在圖7中沒(méi)有具體地顯示參考圖像樣本和/或元數(shù)據(jù)到這樣一種位置的“反饋”,其中在該位置處列解碼器707、708具有到相關(guān)參考圖像樣本和/或元數(shù)據(jù)中所包括的信息的通路。在一些實(shí)施方式中,可以向列解碼器707、708提供相關(guān)的參考圖像存儲(chǔ)器,其中,在該相關(guān)的參考圖像存儲(chǔ)器中可能不需要參考圖像樣本和/或元數(shù)據(jù)的反饋。在其他實(shí)施方式中,可以向組合器715提供相反的數(shù)據(jù)路徑,其中,該相反的數(shù)據(jù)路徑允許來(lái)自基于圖像的樣本生成器717的參考圖像被反饋回到列解碼器707、708。在圖7中,由箭頭713、714、716和719雙向尖頭來(lái)指示該反饋路徑。在其他實(shí)施方式中,可以將該參考圖像存儲(chǔ)在共享單元710中(在該情況中可以在基于圖像的樣本生成器717與共享單元710之間提供對(duì)應(yīng)的數(shù)據(jù)路徑,但是在圖7中為了增強(qiáng)簡(jiǎn)潔性未顯示該對(duì)應(yīng)的數(shù)據(jù)路徑)。

圖8是示出了根據(jù)本發(fā)明的實(shí)施方式基于數(shù)據(jù)處理系統(tǒng)(例如個(gè)人計(jì)算機(jī)(“pc”))800的實(shí)現(xiàn)的方框圖。到此時(shí)為止,為了方便起見(jiàn),未詳細(xì)地將描述明確地與編碼器和/或解碼器的可能的物理實(shí)現(xiàn)相關(guān)?;谲浖?或組件的組合的許多不同的物理實(shí)現(xiàn)是可能的。在一些實(shí)施方式中,在許多情況中由于與成本效率和/或功耗效率相關(guān)的原因,可以例如使用定制或門陣列集成電路實(shí)現(xiàn)視頻編碼器和/或解碼器。

另外,使用通用處理架構(gòu)(它的一個(gè)實(shí)例是數(shù)據(jù)處理系統(tǒng)800)的基于軟件的實(shí)現(xiàn)是可能的。例如通過(guò)使用個(gè)人計(jì)算機(jī)或類似的設(shè)備(例如機(jī)頂盒、膝上型計(jì)算機(jī)、移動(dòng)設(shè)備),該實(shí)現(xiàn)策略可以是可能的,如下所述。如圖8中所示的,根據(jù)所述實(shí)施方式,可以用包括這樣一種指令的計(jì)算機(jī)可讀介質(zhì)801(例如cd-rom、半導(dǎo)體rom、記憶棒)的形式提供用于pc或類似的設(shè)備的編碼器和/或解碼器,其中,該指令被配置為使處理器802能夠單獨(dú)地或與加速器硬件(例如圖形處理器)803組合地、結(jié)合耦合到處理器802和/或加速器硬件803的存儲(chǔ)器804來(lái)執(zhí)行編碼或解碼。可以將處理器802、存儲(chǔ)器804和加速器硬件803耦合到可用于向/從前述設(shè)備傳遞比特流和未壓縮視頻的總線805。根據(jù)應(yīng)用,可以將用于比特流和未壓縮視頻的輸入/輸出的外圍設(shè)備耦合到總線805??梢岳缃?jīng)過(guò)合適的接口(如抓幀器807或usb鏈路808)將相機(jī)806依附到總線805以便未壓縮視頻的實(shí)時(shí)輸入。類似的接口可用于未壓縮視頻存儲(chǔ)設(shè)備如vtr??梢越?jīng)過(guò)顯示器設(shè)備(如計(jì)算機(jī)監(jiān)視器或tv屏幕)809輸出未壓縮視頻。dvdrw驅(qū)動(dòng)器或等效物(例如cd-rom、cd-rw藍(lán)光光盤、記憶棒)810可用于實(shí)現(xiàn)比特流的輸入和/或輸出。最后,為了在網(wǎng)絡(luò)812上的實(shí)時(shí)傳輸,網(wǎng)絡(luò)接口811可用于依賴于到網(wǎng)絡(luò)812的接入鏈路的容量以及網(wǎng)絡(luò)812自身來(lái)傳遞比特流和/或未壓縮視頻。

根據(jù)各種各樣的實(shí)施方式,可以由各自的軟件模塊實(shí)現(xiàn)上述方法。根據(jù)其他實(shí)施方式,可以由各自的硬件模塊實(shí)現(xiàn)上述方法。根據(jù)其他實(shí)施方式,可以由軟件模塊與硬件模塊的組合實(shí)現(xiàn)上述方法。

雖然為了方便起見(jiàn)主要參考一種示例性方法來(lái)描述實(shí)施方式,但是上述參考數(shù)據(jù)處理系統(tǒng)800所討論的裝置可以根據(jù)所述實(shí)施方式被編程為使得所述方法能夠?qū)嵤4送?,用于?shù)據(jù)處理系統(tǒng)800的制品(如包括其上記錄有程序指令的預(yù)記錄存儲(chǔ)介質(zhì)或其他類似的計(jì)算機(jī)可讀介質(zhì)或產(chǎn)品)可以指導(dǎo)數(shù)據(jù)處理系統(tǒng)800以便有助于所述方法的實(shí)現(xiàn)。應(yīng)當(dāng)理解的是,除了所述方法之外,該裝置和制品也全部落入所述實(shí)施方式的范圍之中。

具體而言,根據(jù)本發(fā)明的一個(gè)實(shí)施方式,可以將當(dāng)被執(zhí)行時(shí)導(dǎo)致由數(shù)據(jù)處理系統(tǒng)800執(zhí)行本文所述的方法的指令序列包括在數(shù)據(jù)載體產(chǎn)品中。該數(shù)據(jù)載體產(chǎn)品可以被加載到數(shù)據(jù)處理系統(tǒng)800中并且被數(shù)據(jù)處理系統(tǒng)800運(yùn)行。另外,根據(jù)本發(fā)明的一個(gè)實(shí)施方式,可以將該當(dāng)被執(zhí)行時(shí)導(dǎo)致由數(shù)據(jù)處理系統(tǒng)800執(zhí)行本文所述的方法的指令序列包括在計(jì)算機(jī)程序或軟件產(chǎn)品中。該計(jì)算機(jī)程序或軟件產(chǎn)品可以被加載到數(shù)據(jù)處理系統(tǒng)800中并且被數(shù)據(jù)處理系統(tǒng)800運(yùn)行。此外,根據(jù)本發(fā)明的一個(gè)實(shí)施方式,可以將當(dāng)被執(zhí)行時(shí)導(dǎo)致由數(shù)據(jù)處理系統(tǒng)800執(zhí)行本文所述的方法的指令序列包括在集成電路產(chǎn)品(例如硬件模塊或多個(gè)模塊)中。該集成電路產(chǎn)品可以被安裝到數(shù)據(jù)處理系統(tǒng)800中。

本文所述的發(fā)明的實(shí)施方式僅適用于示例。因此,可以對(duì)于這些實(shí)施方式做出對(duì)細(xì)節(jié)的各種各樣的變化和/或修改,全部該變化和/或修改都落入本發(fā)明的范圍中。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1