本申請總地涉及視頻編碼器/解碼器、方法和計算機程序產(chǎn)品,更具體地涉及處理按照拼貼(tile)布置的相鄰塊的組的視頻編碼器/解碼器、方法和計算機程序產(chǎn)品。
背景技術:這里提供的“背景”描述是為了總地給出本公開的上下文的目的。到本背景部分中描述的程度的當前指名發(fā)明人的工作以及本描述中在申請時可能不適合作為現(xiàn)有技術的各方面既未明確也未隱含地被承認是本發(fā)明的現(xiàn)有技術。視頻編碼器通常通過按照像素塊劃分原始視頻數(shù)據(jù)的每個幀來實現(xiàn)。在視頻壓縮的現(xiàn)有標準(例如,MPEG1、MPEG2、H.261、H.263和H.264)中,這些塊通常將是16×16尺寸的并且被稱作宏塊(MB)。在未來的HEVC/H.265標準中,塊通常將會更大(例如64×64)并且例如在幀邊界處可能是矩形的。通常,塊按照光柵掃描次序,即從塊的頂行到塊的底行并且在塊的每一行內(nèi)從左到右,被處理和/或傳輸。對于原始像素數(shù)據(jù)的每個塊,編碼通常按照以下步驟執(zhí)行:-使用來自i)前一幀(幀間預測)或者ii)當前幀中的先前重構(gòu)像素(幀內(nèi)預測)的重構(gòu)像素值來產(chǎn)生預測像素。取決于預測類型,塊被分類為間塊(interblock)或者內(nèi)塊(intrablock)。-計算塊內(nèi)的每個原始像素與對應預測像素之間的差異。-向差異樣本應用二維變換從而產(chǎn)生一組變換系數(shù)。-將每個變換系數(shù)量化為整數(shù)。-執(zhí)行對量化變換系數(shù)的無損熵編碼。-向量化變換系數(shù)應用二維逆變換以計算量化版本的差異樣本。-添加預測以形成當前塊的重構(gòu)像素。另外,參考圖1,當前幀以及預測幀被輸入到減法器9。減法器9被提供有來自幀內(nèi)預測處理路徑3和運動補償處理路徑5的輸入,其選擇受開關7控制。幀內(nèi)預測處理是為了找出當前圖像幀內(nèi)的相似點而被選擇的,因而被稱作“幀內(nèi)”預測。運動補償具有時間分量并因而涉及被稱作“幀間”預測的連續(xù)幀之間的分析。開關7的輸出在減法器9中被從當前幀的像素中減去,然后經(jīng)過二維變換處理13。經(jīng)變換系數(shù)然后經(jīng)過量化器15中的量化并且然后經(jīng)過熵編碼器17。熵編碼在不丟失信息的情況下除去冗余,并且被稱作無損編碼處理。接下來,經(jīng)編碼數(shù)據(jù)經(jīng)由分組器被按照網(wǎng)絡分組來布置,然后被以比特流傳輸。然而,量化器15的輸出也被應用逆變換并被用于輔助預測處理。該輸出被應用于去塊濾波器8,去塊濾波器8抑制邊緣中的某些銳利以改善清晰度并且更好地支持預測處理。去塊濾波器8的輸出被應用于幀存儲器6,幀存儲器6將經(jīng)處理的圖像像素數(shù)據(jù)保存在存儲器中以供在后續(xù)運動處理中使用。每個塊的對應解碼處理可被描述如下(如在圖2中指示)。在熵解碼22(以產(chǎn)生量化變換系數(shù))和對量化變換系數(shù)的二維逆變換26以提供量化版本的差異樣本之后,由此得到的圖像在添加先前討論的幀間預測和幀內(nèi)預測數(shù)據(jù)之后被重構(gòu)。更詳細的編碼器和解碼器處理步驟中的一些現(xiàn)在將被更詳細地描述。在視頻編碼器中,塊可被劃分為子塊。通常,塊是固定(正方形)尺寸的,而子塊可以是各種(例如矩形)形狀。另外,劃分為子塊通常將因塊而異。幀間預測通常通過針對每個子塊得到一組運動向量來實現(xiàn)。運動向量定義了原始像素數(shù)據(jù)與前一幀中的對應重構(gòu)像素數(shù)據(jù)之間的空間位移。因此,如果第一幀中的特征可被識別出已移動到后一幀中的另一位置,則需要被傳輸給解碼器的數(shù)據(jù)量可被極大減少。在該情形中,運動向量可被用來高效傳達關于從一個幀到下一幀已改變位置的特征的信息。幀內(nèi)預測通常通過針對每個子塊得到內(nèi)部方向模式來實現(xiàn)。該內(nèi)部方向模式定義了原始像素數(shù)據(jù)與當前幀中的先前重構(gòu)像素數(shù)據(jù)之間的空間位移。運動向量和內(nèi)部方向模式兩者都被編碼并傳輸?shù)浇獯a器作為每個子塊的邊信息(sideinformation)。為了減少用于該邊信息的比特數(shù)目,對這些參數(shù)的編碼依賴于先前經(jīng)處理子塊的對應參數(shù)。通常,某種形式的自適應熵編碼被使用。自適應使得子塊的熵編碼/解碼依賴于先前處理的子塊。熵編碼是減少向接收地點傳達信息所需的比特數(shù)目的無損編碼。許多視頻編碼/解碼系統(tǒng)和方法跨塊之間的邊界來應用去塊濾波器(圖2中的8)。另外,去塊濾波器被應用于經(jīng)解碼視頻中的塊以通過使當塊編碼技術被使用時可以在塊之間形成的銳利邊緣平滑化來提高視覺質(zhì)量和預測性能。該濾波器旨在改善經(jīng)解碼圖片的外觀。視頻壓縮的AVC/H.264標準支持兩種用于塊的并行處理的機制:片(slice)和片組。片AVC/H.264中的片被定義為按照光柵掃描次序的多個連續(xù)塊。片的使用在編碼器側(cè)是可選的,并且關于片邊界的信息被發(fā)送到網(wǎng)絡傳輸層中的解碼器或者作為獨特比特式樣在比特流中被發(fā)送。AVC/H.264中的片設計的最重要特征是允許通過基于分組的網(wǎng)絡來傳輸壓縮視頻。通常,一個片的壓縮視頻數(shù)據(jù)是作為一個分組來傳輸?shù)?。為了保證對分組丟失的恢復力,每個片是獨立可解碼的。如本發(fā)明人所認識到的,該要求暗示不同片的塊之間的所有依賴性被打破。此外,整個片的關鍵參數(shù)是在片頭部中傳輸?shù)?。片組AVC/H.264中的片組定義了對幀內(nèi)的塊的劃分。該劃分是在圖片頭部中表示的。塊在片組內(nèi)以光柵掃描次序來處理和傳輸。另外,如本發(fā)明人所認識到的,因為一個片無法跨越超過一個片組,因此片組之間的依賴性以與片之間相同的方式被打破。如本發(fā)明人所認識到,片組在至少兩個重要方面不同于“拼貼(tile)”(如接下來將詳細討論的)。首先,在片組的情況下,塊在片組內(nèi)按照光柵掃描次序傳輸。必須解碼使用片組內(nèi)的光柵掃描次序的比特流對許多解碼器尤其是使用單核心的那些解碼器而言是非常不希望的要求。這是因為像素最好按照它們被渲染并存儲在存儲器中以供在顯示設備上渲染的相同次序來解碼。在極端情況下,具有片組的比特流可以強迫解碼器一次一列(塊)而非一次一行(塊)地解碼每個幀。其次,片組可以指定幀的非臨近部分(例如棋盤式樣)。必須例如在棋盤式樣乃至更復雜式樣的所有“黑”塊之前解碼所有“白”塊對解碼器造成了甚至更糟的負擔。由于在AVC/H.264解碼器中實現(xiàn)一般片組時的這些困難,最新修訂的AVC/H.264標準引入了不允許在比特流中使用片組的新的類(profile)(約束類)。不能解碼片組的解碼器然后可以聲稱符合約束類(而非基線類)。在拼貼(如將在具體實施方式中討論)的情況下,塊在幀內(nèi)按照作為多數(shù)單核心解碼器的最優(yōu)傳輸次序的光柵掃描次序來傳輸。
技術實現(xiàn)要素:將會明白本發(fā)明的前述一般描述以及以下詳細描述都是本發(fā)明的示例而非限制。本發(fā)明人認識到用于將幀劃分為宏塊組的傳統(tǒng)方法的局限。例如,盡管針對AVC/H.264中的片定義的依賴性打破對于并行處理也是有用的,但是片的定義也具有一些缺點。片頭部意味著并行處理所不需要的極大開銷。另外,將塊分組為片需要遵守對塊的光柵掃描處理。轉(zhuǎn)而,這對幀可被如何劃分為獨立可編碼塊強加了不必要常常不希望的限制。針對能夠使許多分區(qū)可用的片組,本發(fā)明人認識到矩形的分區(qū)/片組對于并行處理是最相關的。矩形劃分使能垂直(列)以及水平地劃分。盡管片組的定義給予編碼器定義幀的幾乎任何分區(qū)的靈活性,但是該方案對解碼器具有一些不希望的可能結(jié)果。具體而言,解碼器被強迫按照與編碼器相同的次序(即,片組內(nèi)的光柵掃描)處理塊。這可能對解碼器實現(xiàn)方式具有嚴重可能結(jié)果,因為解碼器必須被設計為處理幾乎任意掃描次序。AVC/H.264中的片組的另一缺點在于最多8個片組被允許,并且每個片組由包括片頭部在內(nèi)的單獨片組成。通常,視頻解碼器規(guī)范將按照光柵掃描次序的順序塊處理定義為正常操作模式。這通過允許沒有限制地利用同一幀中的臨近塊之間的依賴性來保證最大壓縮效率。通常,這意味著給定塊的參數(shù)依賴于左側(cè)和上面的塊中的相同參數(shù)。如先前描述,這通常適用于幀內(nèi)預測的重構(gòu)像素、運動向量編碼、內(nèi)部方向模式編碼以及自適應熵編碼。獨立于視頻編碼/解碼方法的順序性質(zhì),許多硬件架構(gòu)是針對并行處理設計的以使吞吐量(每秒處理的像素數(shù)目)最大化。通常,針對并行處理設計的處理設備包括多個核心(通常在2和100之間),每個核心能夠與其他核心并行地對幀內(nèi)的塊的子集進行編碼/解碼。如果正在不同核心上處理的塊之間沒有依賴性則這被最好地實現(xiàn)。因此在壓縮效率與并行處理程度(同時處理的塊的數(shù)目)之間存在權(quán)衡。優(yōu)選地,根據(jù)本發(fā)明,核心能夠訪問先前重構(gòu)的幀所存儲于的共享存儲器。在這些情況下,臨近塊之間的依賴性僅需針對當前幀被打破,從而允許對運動向量的無限制選擇。相應地,本發(fā)明的一個方面是其使對壓縮效率的懲罰最小化,同時使在編碼視頻幀時的并行處理的程度和靈活性最大化。另外,本發(fā)明的另一個方面在于其引入了作為在拼貼邊界處具有依賴性打破的N×M個相鄰塊的組的拼貼。與片和片組相反,拼貼的定義獨立于傳輸次序。傳輸次序被假定為遵循幀(或者片組)內(nèi)的正常光柵掃描次序。該意味著編碼器/解碼器可以選擇針對每個拼貼獨立地執(zhí)行除比特流生成/解析之外的所有處理。即使編碼器按照拼貼來處理幀,解碼器也可以選擇按照光柵掃描次序來解碼幀。附圖說明隨著本公開及其許多伴隨優(yōu)點參考聯(lián)系附圖考慮時的以下具體實施方式變得被更好地理解,對本公開及其許多伴隨優(yōu)點的更完全認識將被容易地獲得,在附圖中:圖1是視頻編碼器的框圖;圖2是視頻解碼器的框圖;圖3a和3b分別示出了根據(jù)一個實施例的編碼器處理次序與傳輸次序之間的布局關系;圖4示出了根據(jù)一個實施例的利用拼貼來支持并行處理的編碼器的框圖;圖5示出了根據(jù)一個實施例的利用拼貼來支持并行處理的解碼器的框圖;圖6是根據(jù)本發(fā)明一個實施例執(zhí)行的示例性處理的流程圖,并且圖7是根據(jù)本發(fā)明一個實施例的在視頻編碼和解碼中利用拼貼的主通信設備的框圖。具體實施方式本實施例引入了“拼貼”的概念來利用塊之間的二維依賴性,同時還支持利用多個處理器(如果在編碼器中可用的話)對多個拼貼同時執(zhí)行編碼操作。將幀劃分為拼貼完全由數(shù)目N和M指定,從而消除了對作為傳統(tǒng)片處理中的基本要求的片頭部的需要。這里,N和M是按照塊的數(shù)目測量得到的拼貼的高度和寬度。通常,N和M的值在序列頭部或者圖片頭部中被傳達給解碼器,從而產(chǎn)生可以忽略的傳輸帶寬開銷。除了在序列或圖片頭部中單方面向解碼器傳輸N和M數(shù)目之外,一種替代方式是在解碼設備與編碼設備之間進行握手操作,其中N和M的值以及也許解碼器的處理能力被交換。通過在N×M的拼貼中做出依賴性打破,系統(tǒng)利用圖像中的可能性來創(chuàng)建最低限度地妨礙塊之間的對應性的垂直邊界以及水平邊界兩者。另外,一系列具體圖像的內(nèi)容可以是經(jīng)常具有水平依賴性(例如地平線等)的自然景觀。另一方面,通過具有更大的垂直維度以使得垂直維度上的更多塊可被包括作為共同拼貼的一部分,從而允許利用垂直方向上的塊之間的依賴性,涉及森林或者其他垂直朝向圖像的影像可更大地受益。數(shù)目N和M的規(guī)定通過暗示指定了拼貼邊界處的依賴性打破。在根據(jù)本實施例的典型視頻編碼器中,至少以下依賴性在拼貼邊界處被打破(其他依賴性取決于定義解碼要求的相關標準也可被打破):-針對幀內(nèi)預測使用重構(gòu)像素,-針對運動向量編碼使用來自鄰近塊的運動向量,-使用來自鄰近塊的內(nèi)部方向模式。-基于先前編碼塊的自適應熵編碼。-算術編碼比特的沖刷(flush)。-跨拼貼邊界的去塊濾波器,盡管如果去塊在單個處理核心上作為另一遍執(zhí)行則這可被避免。圖3a示出了2×3拼貼的布置(任意選擇2作為拼貼的垂直分量并且選擇3作為拼貼的水平分量,但是反過來也將是可接受的約定)。具有相同字母的塊屬一于共同拼貼并因而最適合利用一個處理核心來處理。因此,假定四個處理核心可用,則“A”拼貼可由一個核心處理而另外的核心可分別處理B、C和D,其中所有處理是并行完成的。在非限制性的上下文中,圖3a中的每個拼貼中的數(shù)字表示拼貼內(nèi)的宏塊(或者其他塊)的排序。例如,對于拼貼A,前三個塊0-2被布置在水平行中(按照光柵掃描方向),而第二行的塊3-5被布置在第一行之下的行中。因此,塊被布置在塊的二維組中,其中依賴性在拼貼A與拼貼B之間的垂直邊緣處并且在拼貼A與拼貼C之間的水平邊緣處被打破。圖3b示出了幀的傳輸次序,其遵循光柵掃描次序。為了將來自拼貼的比特重新排序為按照光柵掃描次序的比特,拼貼重新格式化器被使用。類似地,在解碼器處,如果按照拼貼的處理被選擇,則拼貼格式化器被用于使比特返回每個拼貼的正確塊。編碼器轉(zhuǎn)換處的拼貼重新格式化器將如在圖3a中示出的拼貼次序(A0、A1、A2、A3、A4、A5、B0、B1、B2,..)改變?yōu)槿缭趫D3b中示出的光柵掃描次序(A0、A1、A2、B0、B1、B2、A3、A4,…)。類似地,解碼器處的拼貼格式化器執(zhí)行從光柵掃描次序到拼貼次序的重新排序操作。關于該重新格式化處理,如果編碼器按照拼貼來處理并且來自每個拼貼的比特未曾被重新排序,則由此得到的比特流將會按照拼貼次序。在該情況下,解碼器將具有兩種選項:可以a)不對比特流做任何事情并且按照拼貼次序?qū)K進行解碼,或者可以b)轉(zhuǎn)換為光柵掃描次序然后按照光柵掃描次序?qū)K進行解碼。兩種選項都是可替代的實施例,雖然它們對解碼器造成了額外的處理負擔。另一方面,附圖中反映的主要實施例是使編碼器按照光柵掃描次序放置比特。轉(zhuǎn)而,這使解碼器上的處理負擔最小化并且允許解碼器:要么a)不對比特流做任何事情并且按照光柵掃描次序?qū)K進行解碼(即無拼貼懲罰),要么b)從光柵掃描次序轉(zhuǎn)換為拼貼次序并且按照拼貼次序?qū)K進行解碼。因此,如果編碼器按照拼貼來處理并且承擔從拼貼次序轉(zhuǎn)換為光柵掃描次序的負擔,則解碼器除了尊重拼貼邊界處的依賴性打破之外不被強迫做任何事情。在根據(jù)本實施例的編碼器中,拼貼在不同核心上被并行地處理。每個核心針對該具體拼貼產(chǎn)生一串壓縮比特。為了按照光柵掃描次序傳輸壓縮數(shù)據(jù),由不同拼貼/核心產(chǎn)生的比特需要被重新格式化。這通常在單個核心上完成。并行處理器實施例在圖4中被圖示出,其中虛線指示在各核心上被并行處理的模塊。另外,每個核心被指派每一拼貼的處理任務(盡管對每個核心處理多個拼貼沒有限制),并且共享存儲器資源以輔助共享用于拼貼和塊之間的幀間預測的參考數(shù)據(jù)。幀存儲器存在于共享存儲器中,而拼貼重新格式化器被實現(xiàn)在單個核心上。(可替代地,去塊濾波器可以在單個核心上運行。)另外,減法器9、變換13、量化15、逆變換26、去塊濾波器8、幀存儲器6、運動補償5、幀內(nèi)預測3、開關7和熵編碼器17都與早先在圖1中描述的類似。然而,在該提供拼貼兼容處理的多核心實施例中,拼貼重新格式化器18被用于取回并布置來自各拼貼的比特以將其按照光柵掃描次序放置,以使得從圖4中的編碼器發(fā)送的比特流將會按照光柵掃描次序。類似地,解碼器將可選地使用對應的拼貼格式化器,如果其被配置為在解碼前將比特重新封裝為首尾相連(endbyend)的拼貼的話。圖4中要注意的另一件事是虛線的存在。如在上面討論的,共同的核心可以執(zhí)行例如變換13、量化15、熵編碼器17、逆變換26、去塊濾波器8、運動補償5、開關7和幀間預測3的所有功能。因為拼貼重新格式化器18和幀存儲器6可用作各自用于處理不同拼貼的不同核心當中的公共資源,因此幀存儲器和拼貼重新格式化器18不限于在單個核心上使用,而是可用于在不同核心之間進行接口連接。類似地,所示出的減法器和加法器是在另一核心上實現(xiàn)的。編碼功能在不同核心上的本布置旨在是非無遺漏的。相反,具有按照拼貼的布置的一個方面在于在拼貼與所提供核心數(shù)目之間可以存在對應關系。另外,如在上面討論的,具有多個處理器核心提供了可導致將多個拼貼布置為與那些核心相對應的可用處理資源。在解碼器側(cè),解碼器在與編碼器的握手處理中可以指定拼貼重新格式化器18應當被使用與否(在拼貼劃分模式下與否)。該拼貼劃分模式允許接收從各拼貼中讀出的比特,不重新格式化,或者重新格式化以按照如在光柵掃描中將會提供的或者如利用傳統(tǒng)編碼器將會完成的相同次序來放置這些比特。當然,在更加直截了當?shù)奶幚碇校帐植槐粓?zhí)行并且編碼器和解碼器總是在拼貼劃分模式下操作。應當注意到,當編碼器和解碼器兩者都在拼貼劃分模式下操作時,拼貼重新格式化器(編碼器)和拼貼格式化器(解碼器)是不需要的,因為無需按照光柵掃描次序放置比特流。因此,拼貼重新格式化器18和拼貼格式化器25具有用于在沒有操縱的情況下使比特流穿過其中的內(nèi)部旁通能力。當然在圖4和5中,拼貼重新格式化器18和拼貼格式化器25也被用于示出編碼器與解碼器之間的雙向通信。該連接僅僅是示例性的,因為編碼器和解碼器可以通過各種通信接口中的任何一種來交換信息(例如通過序列或圖片的頭部交換N和M的值)。另外,表示N和M的值的比特無需以任何方式被重新格式化,并且因而分別繞過拼貼重新格式化器18和拼貼格式化器25中的重新格式化和格式化功能。以該同樣方式,在編碼器與解碼器之間交換的其他消息數(shù)據(jù)在沒有比特重新排序的情況下使用拼貼重新格式化器和拼貼格式化器作為通信接口。圖5是根據(jù)一個實施例的支持拼貼劃分操作模式并且包括用于輔助處理單獨拼貼的并行處理的解碼器的框圖。與圖4的情況一樣,虛線指示什么解碼組件在一單獨處理核心上被支持,使得多個核心可被用于同時處理從編碼器接收到的拼貼。幀存儲器6被用作公共資源,類似于在圖4中的編碼器處所做的。拼貼格式化器25初始接收來自編碼器的拼貼重新格式化器18的值N和M,雖然拼貼重新格式化器不執(zhí)行對這些值的任何比特操縱或重新排序。相反,根據(jù)值N和M,拼貼格式化器25識別從輸入比特流到達的數(shù)據(jù)的拼貼形狀并且最終允許解碼器組件基于在編碼器處引入的拼貼劃分(以及相關聯(lián)的依賴性打破)來執(zhí)行解碼操作。另外,解碼器在如值N和M指示的拼貼邊界處的塊之間打破當前幀中的依賴性。應當注意到,編碼器可以提供多對N和M,從而指示一個幀中的每個拼貼或者至少多個拼貼可以具有不同的矩形形狀。在一些實例中,解碼器可以向編碼器指明其對N和M的所需值/希望值的愿望或者究竟是否要使用拼貼劃分。例如,通過解碼器向編碼器通知解碼器如果不在拼貼劃分模式下則僅可以支持720p30顯示格式,但是如果在利用不大于N×M的拼貼的拼貼劃分模式下使用則可以支持1080p30顯示格式,這可以使有用的。編碼器與解碼器之間的這種雙向通信由圖5中的拼貼格式化器25處的雙頭箭頭表示。當以這種方式布置時,拼貼提供了相比傳統(tǒng)的片和片組的優(yōu)點,該優(yōu)點在于識別拼貼邊界無需拼貼頭部。另外,不需要逐拼貼或者逐塊的開銷來支持對拼貼邊界的識別。相反,通過首先指定拼貼的形狀,或者通過讀取序列或者幀的頭部,解碼器具有其基于值N和M的原始規(guī)格識別拼貼邊界所需的所有信息。另外,解碼器具有使用拼貼與否的選項。以這種方式,對解碼器的影響是最小的,因為解碼器如果選擇不執(zhí)行拼貼處理則無需執(zhí)行拼貼處理。另外通過允許編碼器指定不同N×M形狀的拼貼,關于安排拼貼的數(shù)目和尺寸以更好地支持并行處理以及當多個核心可用時可用來執(zhí)行編碼的速度,存在大量的靈活性。另外,拼貼提供了使編碼處理與比特被傳輸?shù)膫鬏敶涡蛉ヱ詈系膬?yōu)點。這與傳統(tǒng)處理相比允許更好的垂直幀內(nèi)預測。另外,通過使用并行拼貼允許用于分析的更好并行化,這是因為對拼貼形狀有更少約束并且不需要頭部。如進一步說明,在列邊界(垂直邊界)處打破依賴性的優(yōu)點在于,通過垂直地劃分幀提供了對壓縮性能的更小懲罰,這是因為當16:9縱橫比是顯示格式時垂直邊界比水平邊界更短,因為運動一般傾向于在水平方向上執(zhí)行。另外,按照列的并行化降低了延遲,這是因為數(shù)據(jù)一次一行地從相機到達,并且所有可用核心可以在新一行到達時立即開始在新一行上工作。因此,與使用片或片組的傳統(tǒng)方法相比,將幀劃分為拼貼允許對可用核心的更高效使用以開始對從相機提供的數(shù)據(jù)的立即處理。另外,通過使用拼貼,在編碼器中執(zhí)行“縫合(stitching)”可以更加靈活??p合是任意形狀的矩形的集合,這意味著由壓縮域中的操縱引起的子圖片的空間位置的改變可變?yōu)榭赡?。拼貼還允許更高效地分組化為(幾乎)固定大小的分組。由此分組化器可以將獨立架子的壓縮數(shù)據(jù)(每列/行一個)裝配為一個分組,而沒有對編碼處理的任何反向依賴。這幫助針對通過不同通信路徑的傳輸以及解碼器側(cè)的獨立處理兩者在數(shù)據(jù)如何被從一個位置傳輸?shù)较乱晃恢梅矫嫣峁┝俗灾餍?。如上面討論的,允許按照列的分組化還提供了處理核心當中的更細粒度的并行化以及更好的負載均衡。最后,使用拼貼的另一優(yōu)點在于:與片處理或者片組相比,通過按照更小寬度進行編碼提供了使存儲器帶寬和內(nèi)部存儲器減少的機會。另外,即使使用單核心實現(xiàn)方式也可以提供存儲器帶寬和內(nèi)部存儲器的減少??傊旅媸橇羞吔缣幍囊蕾囆源蚱频膬?yōu)點列表:1)垂直地劃分幀給予對壓縮性能的更小懲罰,這是因為垂直邊界比水平邊界更短(假設16:9縱橫比)并且因為運動傾向于是水平的。2)按照列的并行化降低了延遲,這是因為數(shù)據(jù)一次一行地從相機到達,并且當新一行到達時所有核心可以立即開始工作。3)在編碼器中對任意形狀的矩形執(zhí)行“縫合”的靈活性,即通過壓縮域中的操縱來改變子圖片的空間位置。4)更高效地分組化為(幾乎)固定大小的分組。分組化器可以將獨立塊的壓縮數(shù)據(jù)(每列/行一個)裝配為一個分組,而沒有對編碼處理的任何反向依賴。5)按照列的并行化提供了更細粒度的并行化以及更好的負載均衡。6)按照更小寬度進行編碼可以使存儲器帶寬和內(nèi)部存儲器減少。即使對于單核心實現(xiàn)方式也是這樣。圖6是示出了一種利用N×M的拼貼對幀進行編碼的方法的流程圖。處理在步驟S1中開始,其中幀被劃分為像素塊。處理然后前進到步驟S3,其中塊被布置為N×M的拼貼。拼貼獨立于塊的傳輸次序而被分組。處理然后前進到步驟S5,其中在認識到AVC/H.264不支持除片或片組之外的任何事物的情況下N和M的值在序列或圖片的頭部中而非在片或片組的頭部中被傳輸?shù)浇邮赵O備。拼貼將不會符合AVC/H.264,因為如果編碼器決定將幀劃分為拼貼,則解碼器將不會認識該格式。在序列頭部(在第一幀之前——其是視頻流的一部分,但是在呼叫建立之后)中,編碼器將發(fā)送拼貼的高度和寬度。這樣解碼器將知道拼貼的尺寸。應當注意到,還可以存在向幀類型(例如I(內(nèi)部幀)、B和P幀)預先指派拼貼形狀。每個拼貼然后可在步驟S7中被并行編碼,其中每個拼貼可選地被一單獨處理核心編碼。當然單個核心可以處理多于一個拼貼。另外,具有僅一個核心的設備可以處理所有拼貼。處理然后前進到步驟S9,其中經(jīng)編碼拼貼被傳輸?shù)浇邮赵O備。傳輸次序可以按照光柵掃描次序,即使拼貼可能已被按照不同次序編碼。一旦被傳輸?shù)浇邮赵O備處的解碼器,解碼器在步驟S11中利用一個或多個核心對拼貼進行解碼。處理然后在步驟S13中重復以處理下一幀。圖7圖示出本發(fā)明的實施例可被實現(xiàn)于的計算機系統(tǒng)1201。計算機系統(tǒng)1201可被編程為實現(xiàn)包括用于處理實時視頻圖像的視頻編碼器或解碼器的基于計算機的視頻會議端點。計算機系統(tǒng)1201包括總線1202或者用于傳送信息的其他通信機構(gòu),以及與總線1202相耦合的用于處理信息的處理器1203。雖然該圖示出了用于處理器的信號塊1203,但是應當明白處理器1203表示多個處理核心,其中的每一個核心可以執(zhí)行不同拼貼。計算機系統(tǒng)1201還包括與總線1202相耦合的用于存儲信息和將由處理器1203執(zhí)行的指令的主存儲器1204,例如隨機存取存儲器(RAM)或者其他動態(tài)存儲設備(例如,動態(tài)RAM(DRAM)、靜態(tài)RAM(SRAM)以及同步DRAM(SDRAM))。此外,主存儲器1204可被用于存儲在處理器1203執(zhí)行指令期間的臨時變量或者其他中間信息。計算機系統(tǒng)1201還包括與總線1202相耦合的用于存儲靜態(tài)信息和處理器1203的指令的只讀存儲器(ROM)1205或者其他靜態(tài)存儲設備(例如,可編程ROM(PROM)、可擦除PROM(EPROM)以及電可擦除PROM(EEPROM))。計算機系統(tǒng)1201還包括與總線1202相耦合的用來控制諸如磁性硬盤1207和可移除介質(zhì)驅(qū)動器1208(例如,軟盤驅(qū)動器、只讀緊湊盤驅(qū)動器、讀/寫緊湊盤驅(qū)動器、緊湊盤自動點唱機、磁帶驅(qū)動器以及可移除磁光驅(qū)動器)之類的一個或多個用于存儲信息和指令的存儲設備的盤控制器1206。利用適當設備接口(例如,小型計算機系統(tǒng)接口(SCSI)、集成設備電路(IDE)、增強型IDE(E-IDE)、直接存儲器訪問(DMA)或者高速DMA)可將這些存儲設備添加到計算機系統(tǒng)1201。計算機系統(tǒng)1201也可以包括專用邏輯器件(例如,專用集成電路(ASIC))或者可配置邏輯器件(例如,簡單可編程邏輯器件(SPLD)、復雜可編程邏輯器件(CPLD)以及現(xiàn)場可編程門陣列(FPGA))。計算機系統(tǒng)1201還可以包括與總線1202相耦合的用來控制諸如陰極射線管(CRT)之類用于向計算機用戶顯示信息的顯示設備1210的顯示控制器1209。計算機系統(tǒng)包括用于與計算機用戶交互并且向處理器1203提供信息的輸入設備,例如鍵盤1211和指點設備1212。指點設備1212例如可以是用于向處理器1203傳送方向信息和命令選擇并且用于控制顯示設備1210上的光標移動的鼠標、軌跡球或者指點桿。此外,打印機可以提供由計算機系統(tǒng)1201存儲和/或生成的數(shù)據(jù)的打印清單。計算機系統(tǒng)1201響應于處理器1203執(zhí)行在諸如主存儲器1204之類的存儲器內(nèi)包含的一個或多個指令的一個或多個序列而執(zhí)行本發(fā)明的處理步驟中的一部分或者全部。這種指令可被從諸如硬盤1207或者可移除介質(zhì)驅(qū)動器1208之類的另一計算機可讀介質(zhì)中讀取到主存儲器1204中。多處理布置中的一個或多個處理器也可被用來執(zhí)行主存儲器1204中包含的指令序列。在可替代實施例中,硬連線電路可被用來代替軟件指令或者可被結(jié)合軟件指令使用。因此,實施例不限于硬件電路和軟件的任何特定組合。如上面所述,計算機系統(tǒng)1201包括用于保存根據(jù)本發(fā)明教導而編程的指令并且用于包含在此描述的數(shù)據(jù)結(jié)構(gòu)、表、記錄或其他數(shù)據(jù)的至少一個計算機可讀介質(zhì)或存儲器。計算機可讀介質(zhì)的示例是緊湊盤、硬盤、軟盤、磁帶、磁光盤、PROM(EPROM、EEPROM、閃速EPROM)、DRAM、SRAM、SDRAM或者任何其他磁介質(zhì)、緊湊盤(例如,CD-ROM)或者任何其他光介質(zhì)、穿孔卡片、紙帶或者其他具有孔圖案的物理介質(zhì)、載波(在下面描述),或者計算機可以從中進行讀取的任何其他介質(zhì)。存儲在計算機可讀介質(zhì)中的任一個上或者計算機可讀介質(zhì)的組合上,本發(fā)明包括用于控制計算機系統(tǒng)1201、用于驅(qū)動用于實現(xiàn)本發(fā)明的一個或多個設備并且用于使得計算機系統(tǒng)1201能夠與人類用戶(例如,印刷制造人員)交互的軟件。這種軟件可以包括但不限于設備驅(qū)動程序、操作系統(tǒng)、開發(fā)工具以及應用軟件。這種計算機可讀介質(zhì)還包括本發(fā)明的用于執(zhí)行在實現(xiàn)本發(fā)明時執(zhí)行的處理的全部或者一部分(如果處理是分布式的話)的計算機程序產(chǎn)品。本發(fā)明的計算機代碼設備可以是任何可解釋或者可執(zhí)行的代碼機制,包括但不限于腳本、可解釋程序、動態(tài)鏈接庫(DLL)、Java類以及完全可執(zhí)行程序。另外,本發(fā)明的處理的多個部分為了更好的性能、可靠性和/或成本可以是分布式的。這里所使用的術語“計算機可讀介質(zhì)”指代參與向處理器1203提供供執(zhí)行的指令的任何介質(zhì)。計算機可讀介質(zhì)可以采用許多形式,包括但不限于非易失性介質(zhì)、易失性介質(zhì)以及傳輸介質(zhì)。非易失性介質(zhì)例如包括光盤、磁盤和磁光盤,例如硬盤1207或者可移除介質(zhì)驅(qū)動器1208。易失性介質(zhì)包括動態(tài)存儲器,例如主存儲器1204。傳輸介質(zhì)包括同軸電纜、銅線和光纖,包括組成總線1202的電線。傳輸介質(zhì)也可以采用聲波或者光波的形式,例如在無線電波和紅外數(shù)據(jù)通信期間生成的那些。在向處理器1203攜帶供執(zhí)行的一個或多個指令的一個或多個序列時可涉及各種形式的計算機可讀介質(zhì)。例如,指令初始可被攜帶在遠程計算機的磁性盤上。遠程計算機可以將用于實現(xiàn)本發(fā)明的全部或者一部分的指令遠程地加載到動態(tài)存儲器中并且利用調(diào)制解調(diào)器通過電話線來發(fā)送這些指令。位于計算機系統(tǒng)1201本地的調(diào)制解調(diào)器可以接收電話線上的數(shù)據(jù)并且利用紅外發(fā)射器將該數(shù)據(jù)轉(zhuǎn)換為紅外信號。與總線1202相耦合的紅外檢測器可以接收紅外信號中攜帶的數(shù)據(jù)并將該數(shù)據(jù)置于總線1202上。總線1202將該數(shù)據(jù)攜帶到處理器1203從中取回并執(zhí)行指令的主存儲器1204。主存儲器1204所接收到的指令在被處理器1203執(zhí)行之前或之后可被可選地存儲在存儲設備1207或1208上。計算機系統(tǒng)1201還包括與總線1202相耦合的通信接口1213。通信接口1213提供與網(wǎng)絡鏈路1214的雙向數(shù)據(jù)通信耦合,網(wǎng)絡鏈路1214例如與局域網(wǎng)(LAN)1215相連或者與諸如因特網(wǎng)的另一通信網(wǎng)絡1216相連。例如,通信接口1213可以是附接到任何分組交換LAN的網(wǎng)絡接口卡。作為另一示例,通信接口1213可以是用來向相應類型的通信線路提供數(shù)據(jù)通信連接的非對稱數(shù)字用戶線(ADSL)卡、集成業(yè)務數(shù)字網(wǎng)絡(ISDN)卡或者調(diào)制解調(diào)器。無線鏈路也可被實現(xiàn)。在任何這種實現(xiàn)方式中,通信接口1213發(fā)送并接收攜帶表示各類信息的數(shù)字數(shù)據(jù)流的電、電磁或光信號。網(wǎng)絡鏈路1214通常提供通過一個或多個網(wǎng)絡到其他數(shù)據(jù)設備的數(shù)據(jù)通信。例如,網(wǎng)絡鏈路1214可提供通過本地網(wǎng)絡1215(例如LAN)或者通過由服務提供商操作的設備(其提供通過通信網(wǎng)絡1216的通信服務)到另一計算機的連接。本地網(wǎng)絡1214和通信網(wǎng)絡1216例如使用攜帶數(shù)字數(shù)據(jù)流的電、電磁或光信號,以及相關聯(lián)的物理層(例如,CAT5線纜、同軸線纜、光纖等)。通過各種網(wǎng)絡的信號以及在網(wǎng)絡鏈路1214上并且通過通信接口1213的信號(其向和從計算機系統(tǒng)1201攜帶數(shù)字數(shù)據(jù))可被實現(xiàn)在基帶信號或者基于載波的信號中。基帶信號傳達作為未經(jīng)調(diào)制的電脈沖的數(shù)字數(shù)據(jù),這些未經(jīng)調(diào)制的電脈沖描述數(shù)字數(shù)據(jù)比特的流,其中術語“比特”將被寬泛地理解為意思是符號,其中每個符號傳達至少一個或多個信息比特。數(shù)字數(shù)據(jù)也可被用于例如利用幅度、相位和/或通過傳導介質(zhì)傳播或者通過傳播介質(zhì)作為電磁波傳輸?shù)念l移鍵控信號來調(diào)制載波。因此,數(shù)字數(shù)據(jù)可被通過“有線”通信信道作為未經(jīng)調(diào)制的基帶數(shù)據(jù)來發(fā)送,并且/或者通過調(diào)制載波而在不同于基帶的預定頻帶內(nèi)發(fā)送。計算機系統(tǒng)1201可以通過一個或多個網(wǎng)絡1215和1216、網(wǎng)絡鏈路1214和通信接口1213來發(fā)送和接收包括程序代碼在內(nèi)的數(shù)據(jù)。另外,網(wǎng)絡鏈路1214可以提供通過LAN1215到諸如個人數(shù)字助理(PDA)、膝上型計算機或蜂窩電話的移動設備1217的連接。(選項1)顯然,本公開的許多修改和變更鑒于以上教導是可能的。因而將會明白,在所附權(quán)利要求的范圍內(nèi),本發(fā)明可被以除如在這里具體描述的方式以外的方式實現(xiàn)。