專利名稱:使用多個(gè)可編程處理器的多信道m(xù)peg視頻代碼轉(zhuǎn)換器的制作方法
技本領(lǐng)域本發(fā)明涉及數(shù)字視頻圖象的代碼轉(zhuǎn)換,具體而言,涉及使用并行操作的多個(gè)代碼轉(zhuǎn)換處理器的特定結(jié)構(gòu)。
背景技術(shù):
數(shù)字視頻數(shù)據(jù)的傳輸,例如通過(guò)諸如有線電視或衛(wèi)星電視網(wǎng)絡(luò)等的寬帶通信系統(tǒng)的傳輸已變得越來(lái)越普及。在用戶家庭中使用數(shù)字解碼器/機(jī)頂盒來(lái)接收該數(shù)字視頻信號(hào),并以一種適合于顯示在電視或視頻顯示終端上的格式處理該信號(hào)。
通常,源視頻序列可以為任何格式,例如,就空間分辨率而言,有幀速率、幀大小、彩色取樣格式、隔行或順序掃描格式、比特率、分辨率(例如高清晰度或標(biāo)準(zhǔn)清晰度)、或噪聲濾波的數(shù)量和類型。另外,可以任何速率對(duì)該源視頻序列進(jìn)行預(yù)編碼,無(wú)論是恒定的比特率(CBR)還是可變的比特率(VBR)。
但是,對(duì)于許多應(yīng)用而言,預(yù)壓縮位流必須對(duì)應(yīng)于唯一指定的可允許的或期望的視頻格式和速率。因此,通常需要在將該視頻數(shù)據(jù)傳遞給機(jī)頂盒和/或網(wǎng)絡(luò)中的某個(gè)中間點(diǎn)之前,改變它的格式或其它特征。
可由代碼轉(zhuǎn)換器來(lái)提供所需的格式改變。通常,多信道視頻代碼轉(zhuǎn)換器是可將一組預(yù)壓縮視頻位流,例如符合MPEG標(biāo)準(zhǔn)的位流轉(zhuǎn)換為另一組視頻位流的儀器。這種轉(zhuǎn)換儀器可完成多種功能,例如改變比特率、插入和刪減位流、變換分辨率和位流的再多路復(fù)用等??稍黾雍蛣h減數(shù)據(jù)信道。這種儀器的基本功能器件為單信道MPEG視頻代碼轉(zhuǎn)換器。
用于MPEG位流的順向代碼轉(zhuǎn)換器可以僅僅是級(jí)聯(lián)的MPEG解碼器和編碼器。首先,該級(jí)聯(lián)代碼轉(zhuǎn)換器對(duì)該壓縮位流進(jìn)行解碼,以獲得重構(gòu)的視頻序列。然后對(duì)該重構(gòu)視頻序列再編碼,獲得適合于傳輸?shù)牟煌膲嚎s位流。另外,已建議更有效的代碼轉(zhuǎn)換器,其重新利用運(yùn)動(dòng)向量并將宏塊模式的改變降至最小。
但是,尤其是由于需要對(duì)預(yù)測(cè)圖象(例如P圖象和B圖象)進(jìn)行運(yùn)動(dòng)估計(jì),該代碼轉(zhuǎn)換器仍然非常復(fù)雜。并且,需要對(duì)多個(gè)信道進(jìn)行實(shí)時(shí)的代碼轉(zhuǎn)換。例如,有線電視網(wǎng)絡(luò)的頭端可能使用一代碼轉(zhuǎn)換器來(lái)將衛(wèi)星饋送和本地編程實(shí)時(shí)地結(jié)合在一起。該代碼轉(zhuǎn)換器的處理速度必須足以執(zhí)行所期望地操作,而察覺(jué)不到任何延遲。
相應(yīng)地,期望提供一種更有效的代碼轉(zhuǎn)換器結(jié)構(gòu)。該系統(tǒng)應(yīng)通過(guò)提供多個(gè)代碼轉(zhuǎn)換處理器來(lái)提高處理效率。該系統(tǒng)應(yīng)降低整個(gè)處理時(shí)間,和/可允許使用較低速度的處理器。
該系統(tǒng)應(yīng)允許將代碼轉(zhuǎn)換算法更新為容易執(zhí)行的算法。
該系統(tǒng)應(yīng)能夠升級(jí)為新的更快的處理器(芯片),而無(wú)需對(duì)主要部分進(jìn)行重新設(shè)計(jì)。
該系統(tǒng)與專用的代碼轉(zhuǎn)換硬件相比,更節(jié)省成本。
該系統(tǒng)應(yīng)適于轉(zhuǎn)換多個(gè)種信道的代碼,例如標(biāo)準(zhǔn)清晰度視頻信道,或單個(gè)高比特率信道,例如HDTV信道。
本發(fā)明提供具有上述和其它優(yōu)點(diǎn)的系統(tǒng)。
發(fā)明內(nèi)容
本發(fā)明涉及數(shù)字視頻圖象的代碼轉(zhuǎn)換,具體地,涉及使用并行操作的多個(gè)代碼轉(zhuǎn)換處理器的特定結(jié)構(gòu)。
在第一種結(jié)構(gòu)(結(jié)構(gòu)A)中,將n個(gè)信道的輸入位流分割為若干處理單元,再將這些處理單元(例如片(slice)或幀)分離成m個(gè)子流,并在相應(yīng)的分支處理每個(gè)子流。每一子流具有一單獨(dú)的隊(duì)列。
在第二種結(jié)構(gòu)(結(jié)構(gòu)B)中,將處理單元指定給任何可用的處理器。且所有處理器只具有一個(gè)隊(duì)列。
改進(jìn)結(jié)構(gòu)A的一種選擇是對(duì)該m個(gè)分支的每一個(gè)分支提供一緩沖器飽和反饋信號(hào),以及調(diào)整對(duì)該位流的分離以將該輸入數(shù)據(jù)發(fā)送到最空的隊(duì)列(緩沖器)。
另一種對(duì)結(jié)構(gòu)A或B的改進(jìn)使得可根據(jù)最短尺寸優(yōu)先的技術(shù),重新排列這些處理單元在該隊(duì)列(這些隊(duì)列)中的位置。
當(dāng)一個(gè)或若干視頻流被分成不同的子流時(shí)對(duì)結(jié)構(gòu)A的另一可能的改進(jìn)和對(duì)結(jié)構(gòu)B的另一可能的改進(jìn)是隔行掃描不同視頻位流的幀,以確保在每個(gè)預(yù)測(cè)處理單元位于其隊(duì)列中第一之前,具有其可用的基準(zhǔn)處理單元。
當(dāng)一個(gè)或若干視頻流被分成不同的子流時(shí)對(duì)結(jié)構(gòu)A的另一可能的改進(jìn)和對(duì)結(jié)構(gòu)B的另一可能的改進(jìn)是提供一保護(hù)協(xié)議,其能夠保持對(duì)預(yù)測(cè)處理單元和其相關(guān)基準(zhǔn)處理單元的跟蹤,以確保它們不被同時(shí)處理(在不同的處理器中)。該保護(hù)協(xié)議延遲對(duì)該預(yù)測(cè)處理單元的處理直到其已處理其相應(yīng)的基準(zhǔn)處理單元。還協(xié)調(diào)該未被壓縮的基準(zhǔn)處理單元向具有預(yù)測(cè)處理單元的處理器的移動(dòng),移動(dòng)到該處理器用于進(jìn)行運(yùn)動(dòng)補(bǔ)償處理。
通過(guò)確保不同時(shí)處理相關(guān)的處理單元,可獲得最小平均處理延遲。
此外,通??赏瑫r(shí)實(shí)現(xiàn)上述的改進(jìn)。
本發(fā)明適用于轉(zhuǎn)換若干信道的代碼,例如標(biāo)準(zhǔn)清晰度視頻信道,或單個(gè)高比特率信道,例如HDTV信道。
一種轉(zhuǎn)換數(shù)字視頻數(shù)據(jù)的位流的代碼的特定方法,包括以下步驟將該位流分成若干連續(xù)處理單元,對(duì)這些處理單元進(jìn)行排隊(duì),以及根據(jù)一排隊(duì)系統(tǒng)模型將該排隊(duì)處理單元的每一個(gè)指定給并行排列的若干可用的代碼轉(zhuǎn)換處理器中的一個(gè)。
根據(jù)該排隊(duì)系統(tǒng)模型,可將該排隊(duì)處理單元指定給這些代碼轉(zhuǎn)換處理器,以便可同時(shí)處理該排隊(duì)處理單元中彼此獨(dú)立的幾個(gè)特定的單元。
具體地,根據(jù)該排隊(duì)系統(tǒng)模型,可將這些排隊(duì)處理單元指定給這些代碼轉(zhuǎn)換處理器,使得不能同時(shí)處理一基準(zhǔn)圖象的排隊(duì)處理單元和其預(yù)測(cè)圖象的排隊(duì)處理單元。
這些處理單元例如可以是片、幀、半幀、視頻物面(VOP)或塊組(GOB)等。
對(duì)于結(jié)構(gòu)A,在所述排隊(duì)步驟中,將所述分割處理單元排列為公用隊(duì)列。在所述指定步驟中,從該公用隊(duì)列中將所述排隊(duì)處理單元指定給代碼轉(zhuǎn)換處理器。這里的一種選項(xiàng)是以最短尺寸處理單元優(yōu)先的方式將分割處理單元排隊(duì)為該公用隊(duì)列。
該處理單元可包括一基準(zhǔn)圖象的處理單元和其預(yù)測(cè)圖象的處理單元。此外,該基準(zhǔn)圖象的處理單元可被排列為第一隊(duì)列,該預(yù)測(cè)圖象的處理單元可被排列為第二、優(yōu)先隊(duì)列。在將該基準(zhǔn)圖象的排隊(duì)處理單元指定給各個(gè)代碼轉(zhuǎn)換處理器用以進(jìn)行處理后,該預(yù)測(cè)圖象的排隊(duì)處理單元在被指定給其各自的代碼轉(zhuǎn)換處理器方面具有優(yōu)先權(quán)。
在結(jié)構(gòu)A中,將該連續(xù)處理單元分成若干子流,該處理單元的若干子流被排列成各自的隊(duì)列,且從該各個(gè)隊(duì)列中將該排隊(duì)處理單元指定給代碼轉(zhuǎn)換處理器。
在所有的方案中,可按最短尺寸處理單元優(yōu)先的方式來(lái)排隊(duì)該分割處理單元。或者,對(duì)于結(jié)構(gòu)A,可按最空隊(duì)列優(yōu)先的方式來(lái)排隊(duì)。
在隔行掃描或重排序技術(shù)中,位流至少具有第一和第二視頻信道,這些信道具有沿各自的圖象順序的各自的圖象。逐行交錯(cuò)掃描第一視頻信道的圖象和來(lái)自第二視頻信道的圖象,使得與在各自的圖象順序中的情況相比,第一和第二視頻信道的各自相關(guān)的圖象被分隔得更遠(yuǎn)。即,第一視頻信道中的相關(guān)圖象被分隔得更遠(yuǎn),且第二視頻信道中的相關(guān)圖象被分隔得更遠(yuǎn)。
這就為處理基準(zhǔn)圖象提供了時(shí)間,并且可獲得對(duì)相關(guān)預(yù)測(cè)圖象的運(yùn)動(dòng)補(bǔ)償處理。
類似地,該位流可至少具有第一和第二視頻信道,這些信道具有沿各自分組順序的各自的圖象分組。每個(gè)分組可具有一個(gè)圖象,或若干不相關(guān)的圖象。隔行掃描第一視頻信道的圖象分組和來(lái)自第二視頻信道的圖象分組,使得與在各自分組順序中的情況相比,該第一和第二視頻信道的各自相關(guān)的分組被分隔得更遠(yuǎn)。
基本上,當(dāng)將不同分組內(nèi)的圖象分隔開時(shí),在公用分組中的圖象的隔行掃描位置更加靠近,或最好相鄰。
在該保護(hù)協(xié)議中,將一基準(zhǔn)圖象的該排隊(duì)處理單元和其預(yù)測(cè)圖象的排隊(duì)處理單元指定給各個(gè)代碼轉(zhuǎn)換處理器。延遲在該預(yù)測(cè)圖象的排隊(duì)處理單元的處理器中對(duì)該預(yù)測(cè)圖象的排隊(duì)處理單元的處理,直到已處理該基準(zhǔn)圖象的排隊(duì)處理單元為止。
為此目的,保持被指定的該基準(zhǔn)圖象的排隊(duì)處理單元、被指定的其預(yù)測(cè)圖象的排隊(duì)處理單元和被指定了上述兩單元的處理器的一個(gè)記錄(例如任務(wù)窗口和確認(rèn)窗口)。當(dāng)已處理該基準(zhǔn)圖象的排隊(duì)處理單元時(shí),更新該記錄。延遲對(duì)該預(yù)測(cè)圖象的排隊(duì)處理單元的處理,直到已更新該記錄來(lái)反映可獲得該基準(zhǔn)圖象的排隊(duì)處理單元為止。之后,將該基準(zhǔn)圖象的排隊(duì)處理單元從其處理器提供給用于該預(yù)測(cè)圖象的排隊(duì)處理單元的處理器。
還公開了相應(yīng)的裝置。
圖1示出根據(jù)本發(fā)明的具有用于n個(gè)信道的n個(gè)代碼轉(zhuǎn)換器的多信道視頻代碼轉(zhuǎn)換器的框圖。
圖2示出根據(jù)本發(fā)明的具有用于將n個(gè)信道分到m個(gè)代碼轉(zhuǎn)換處理器的位流分離器(splitter)的多信道視頻代碼轉(zhuǎn)換器(結(jié)構(gòu)A)的框圖。
圖3示出圖2的結(jié)構(gòu),其中,根據(jù)本發(fā)明,分別對(duì)該m個(gè)代碼轉(zhuǎn)換處理器中的每一個(gè)提供各自的隊(duì)列。
圖4示出根據(jù)本發(fā)明的具有用于調(diào)度在m個(gè)代碼轉(zhuǎn)換處理器之中對(duì)n個(gè)信道的處理的處理器/調(diào)度程序的多信道視頻代碼轉(zhuǎn)換器(結(jié)構(gòu)B)的框圖。
圖5示出圖4的結(jié)構(gòu),其中,根據(jù)本發(fā)明,為該處理器/調(diào)度程序設(shè)有一隊(duì)列。
圖6示出圖4的結(jié)構(gòu),其中,根據(jù)本發(fā)明,為該處理器/調(diào)度程序設(shè)有一附加、優(yōu)先隊(duì)列。
圖7示出根據(jù)本發(fā)明的用于證實(shí)數(shù)據(jù)已被處理的保護(hù)協(xié)議。
具體實(shí)施例方式
本發(fā)明涉及對(duì)數(shù)字視頻圖象的代碼轉(zhuǎn)換,具體而言,涉及使用并行操作的多個(gè)代碼轉(zhuǎn)換處理器的特定結(jié)構(gòu)。
圖1示出根據(jù)本發(fā)明的具有用于n個(gè)信道的n個(gè)代碼轉(zhuǎn)換器的多信道視頻代碼轉(zhuǎn)換器的框圖。
多信道MPEG視頻代碼轉(zhuǎn)換器100從功能上講包括接收n路輸入位流(例如信道)的位流調(diào)度程序或分離器110,用于對(duì)該各個(gè)位流進(jìn)行代碼轉(zhuǎn)換的n個(gè)單信道代碼轉(zhuǎn)換器(SCT)120、122…、124,和用于將單獨(dú)的經(jīng)代碼轉(zhuǎn)換的位流重新組合為傳輸流的統(tǒng)計(jì)復(fù)用器(stat mux)130。
大家知道,統(tǒng)計(jì)復(fù)用是對(duì)多個(gè)不同比特率的信號(hào)進(jìn)行編碼并將該速率變化的位流組合為一單一固定速率傳輸流,使得分配給每個(gè)信號(hào)的帶寬是可變的且隨每個(gè)信號(hào)的比特率需要而改變的過(guò)程。
代碼轉(zhuǎn)換器100示出該代碼轉(zhuǎn)換過(guò)程的基本數(shù)據(jù)流。然而,該過(guò)程的實(shí)際執(zhí)行可有許多途徑。
由于許多實(shí)際原因,較佳的是使用多個(gè)可編程處理器來(lái)實(shí)現(xiàn)該多信道MPEG視頻代碼轉(zhuǎn)換器。對(duì)于該多處理器的實(shí)現(xiàn),每個(gè)處理器都負(fù)責(zé)該代碼轉(zhuǎn)換過(guò)程的某些片段。這方法的優(yōu)點(diǎn)包括·允許使用不同的視頻編碼算法的靈活性。這意味著該結(jié)構(gòu)可支持編碼算法的改進(jìn)和變更。通過(guò)僅改變或重構(gòu)每個(gè)單獨(dú)代碼轉(zhuǎn)換器的軟件可實(shí)現(xiàn)一個(gè)新的算法。例如,該代碼轉(zhuǎn)換器算法可將MPEG-2的主測(cè)線主水平(main profile,main level)(MP@ML)位流轉(zhuǎn)換為在一新的速率下的另一MP@ML位流??蓪⒁籑PEG-2的4∶2∶2測(cè)線主水平(422P@ML)位流轉(zhuǎn)換成一MP@ML位流。還可將一MPEG-2主測(cè)線高水平(HP@ML)位流轉(zhuǎn)換成一MP@ML位流,等等。
·設(shè)計(jì)風(fēng)險(xiǎn)低,因此一定數(shù)量的選擇芯片將能夠完成任務(wù)。即,使用具有許多子卡的母板,類似于具有多個(gè)PCI插座的PC母板可實(shí)現(xiàn)該結(jié)構(gòu)。每個(gè)子卡包括一處理器和多個(gè)本地存儲(chǔ)器。增加更多的子卡,可轉(zhuǎn)換更多視頻信道的代碼。
·處理器技術(shù)的改進(jìn)。無(wú)需對(duì)主要部分進(jìn)行重新設(shè)計(jì)就可采用新出的具有更快時(shí)鐘速率的芯片。隨著同一處理器家族中更快或更便宜的芯片的出現(xiàn),保留了該方法和軟件開發(fā)中的投資。
·與用于MPEG代碼轉(zhuǎn)換的專用硬件相比,更節(jié)省成本。
必須提到多信道MPEG視頻代碼轉(zhuǎn)換器的設(shè)計(jì)的不同版本。本發(fā)明的目的在于使用排隊(duì)系統(tǒng)理論來(lái)使用多個(gè)可編程處理器實(shí)現(xiàn)多信道MPEG視頻代碼轉(zhuǎn)換器。開發(fā)用于調(diào)度一多路復(fù)用的n信道位流單元的隊(duì)列以進(jìn)行該轉(zhuǎn)換代碼處理的策略和方法。
圖2示出根據(jù)本發(fā)明的具有將n個(gè)信道的位流分離到m個(gè)代碼轉(zhuǎn)換處理器的位流分離器的多信道視頻代碼轉(zhuǎn)換器(結(jié)構(gòu)A)的框圖。
對(duì)于具有多個(gè)可編程處理器的多信道MPEG視頻代碼轉(zhuǎn)換器200而言,一個(gè)重要的版本是調(diào)度一位流單元隊(duì)列,使得該代碼轉(zhuǎn)換處理更有效。
這里,將一MPEG傳輸流(MTS)提供給MTS輸入隊(duì)列210作為其輸入。在分析程序和處理單元功能塊220中,分析該MTS位流,并將其分割成多個(gè)“處理單元”,以向位流分離器230提供n個(gè)信道的多路復(fù)用位流。例如,該處理單元可以是片或完整的幀。片是指從左至右和從上至下穿過(guò)一圖象的任意長(zhǎng)度的一串連續(xù)的宏塊。如果存在傳送位誤差,則使用片頭來(lái)進(jìn)行再同步。于是,片是單個(gè)幀或半幀的一部分。
如下面參照表1所述,可選擇其它處理單元。
功能塊220還恢復(fù)其它數(shù)據(jù),例如時(shí)鐘恢復(fù)數(shù)據(jù)和程序時(shí)間基準(zhǔn)(PCR)校正數(shù)據(jù),這些恢復(fù)是由一單獨(dú)的微處理器或控制器以已知方式來(lái)處理的。
位流分離器230將該多路復(fù)用流分成m個(gè)單獨(dú)的位流(例如子流),其中,m可小于、等于或大于信道數(shù)n。通常,m<n,這表示每個(gè)處理器必須對(duì)多于一個(gè)的視頻數(shù)據(jù)信道的代碼進(jìn)行轉(zhuǎn)換。每個(gè)子流包括連續(xù)的處理單元,這些處理單元分別被提供給各個(gè)緩沖器,例如緩沖器1(240)、緩沖器2(242)、…、緩部器m(244)。
處理器/調(diào)度程序250從緩沖器1(240)、緩沖器2(242)、…、緩部器m(244)中找回這些處理單元,并將這些處理單元提供給相應(yīng)的代碼轉(zhuǎn)換處理器,例如處理器1(260)、處理器2(262)、…、處理器3(264)。例如,來(lái)自緩沖器1(240)的處理單元被提供給處理器1(260),來(lái)自緩沖器2(242)的處理單元被提供給處理器2(262),等等。
從處理器1(260)、處理器2(262)、…、處理器3(264)輸出的經(jīng)代碼轉(zhuǎn)換的數(shù)據(jù)被提供給統(tǒng)計(jì)復(fù)用器130,以形成一輸出位流(例如傳輸流)。
這里,選擇m個(gè)相同的處理器(或m相同的處理器組),以執(zhí)行n信道的MPEG視頻代碼轉(zhuǎn)換。每個(gè)處理器(或每組處理器)執(zhí)行相同的代碼轉(zhuǎn)換程序,以一次處理一個(gè)處理單元。
根據(jù)本發(fā)明,具有兩個(gè)基本的實(shí)現(xiàn)結(jié)構(gòu)。一個(gè)為并行處理m分支的結(jié)構(gòu)(結(jié)構(gòu)A),如圖2所示。第二個(gè)結(jié)構(gòu)(結(jié)構(gòu)B)是多處理的單分支結(jié)構(gòu),如圖4所示。
對(duì)于結(jié)構(gòu)A,將n個(gè)信道的多路復(fù)用位流分成m個(gè)子流。每個(gè)處理器(例如260、262、…、264)對(duì)一個(gè)子流進(jìn)行代碼轉(zhuǎn)換。于是,n信道MPEG視頻的整個(gè)代碼轉(zhuǎn)換過(guò)程就具有并行處理m個(gè)分支的結(jié)構(gòu)。
對(duì)于每個(gè)分支,如果處理單元彼此獨(dú)立,則可將該代碼轉(zhuǎn)換處理模型化為M/M/l排隊(duì)系統(tǒng)。在該符號(hào)中,第一個(gè)“M”表示泊松到達(dá)過(guò)程是相同分布(iid)的指數(shù)隨機(jī)變量,其中,在每個(gè)分支中該處理單元的每?jī)纱蔚竭_(dá)的時(shí)間間隔是獨(dú)立的。第二個(gè)“M”表示該分支中的服務(wù)時(shí)間(即每個(gè)處理單元的處理時(shí)間)為iid指數(shù)隨機(jī)變量?!發(fā)”表示每個(gè)分支中服務(wù)器(即處理器)的數(shù)量,此時(shí)為1。
另外,假設(shè)輸入位流的速率給定為λ位/秒,且每個(gè)代碼轉(zhuǎn)換處理器260、262、…、264的處理功率給定為μ位/秒。如果已將n個(gè)信道的多路復(fù)用位流平均分成m個(gè)子流,則每個(gè)處理單元的平均延遲T1約為 圖3示出圖2的結(jié)構(gòu),其中,根據(jù)本發(fā)明對(duì)m個(gè)代碼轉(zhuǎn)換處理器的每一個(gè)分別提供有各自的隊(duì)列。圖中相同標(biāo)號(hào)的元件彼此對(duì)應(yīng)。
在代碼轉(zhuǎn)換器200’中,分別為處理器1(260)、處理器2(262)、…、處理器m(264)提供隊(duì)列1(240)、隊(duì)列2(242)、…、隊(duì)列3(244)。例如,可按照已知的方式將每個(gè)隊(duì)列實(shí)現(xiàn)為先進(jìn)先出(FIFO)緩沖器。
值得注意的是,在每個(gè)時(shí)刻,隊(duì)列1、2、…、m的充滿度通常是不同的,這是因?yàn)椴煌幚韱卧挠?jì)算時(shí)間通常是不同的。該計(jì)算時(shí)間基于以下因素,例如,每個(gè)處理單元中的數(shù)據(jù)量、比特率、相關(guān)圖象的復(fù)雜性、編碼方法、是否使用運(yùn)動(dòng)補(bǔ)償和圖象類型(I、P或B)等。
因此,分離器230應(yīng)不平均地將這些處理單元指定給每個(gè)隊(duì)列。特別是,可通過(guò)向最空的隊(duì)列發(fā)送該引入的處理單元、即以最空隊(duì)列優(yōu)先的方式來(lái)提高該代碼轉(zhuǎn)換器200’的性能。這種情況下的平均延遲時(shí)間T3可被證明滿足以下關(guān)系T3≤T1。為了實(shí)現(xiàn)這種分離器230,使用該緩沖器充滿度的反饋信號(hào)來(lái)確定應(yīng)將引入的處理單元發(fā)送給哪個(gè)隊(duì)列。例如,為此目的,可分別可選擇的反饋路徑320、322、…、324提供給隊(duì)列240、242、…、244。
圖4示出根據(jù)本發(fā)明的具有用于在m個(gè)代碼轉(zhuǎn)換處理器中調(diào)度n個(gè)信道的處理的處理器/調(diào)度程序的多信道視頻代碼轉(zhuǎn)換器(結(jié)構(gòu)B)的框圖。這是本發(fā)明的第二種結(jié)構(gòu),具有單個(gè)分支、多個(gè)處理。
這里,n個(gè)信道的多路復(fù)用位流的處理單元被提供給一重排序緩沖器或隊(duì)列410。處理器/調(diào)度程序420以循環(huán)方式將每個(gè)處理單元發(fā)送給一可用的處理器(例如,處理器260、然后是處理器262、…、然后是處理器264)。
如果這些處理單元彼此獨(dú)立,則這些處理單元的排隊(duì)可被模型化為M/M/m排隊(duì)系統(tǒng)?!癿”表示服務(wù)器(即處理器)的數(shù)量,這里,處理流程在一整個(gè)分支內(nèi)。
對(duì)于上述有關(guān)λ和μ的相同的假設(shè),每個(gè)處理單元的平均延遲(對(duì)于穩(wěn)定狀態(tài))可由下式估算 其中,PQ表示到達(dá)該重排序緩沖器410的處理單元將發(fā)現(xiàn)所有處理器忙并被迫在隊(duì)列中等待的概率。
圖5示出圖4的結(jié)構(gòu),其中,根據(jù)本發(fā)明為該處理器/調(diào)度程序提供有一隊(duì)列。
如圖所示,隊(duì)列410將這些處理單元緩沖存儲(chǔ)在該多路復(fù)用位流中,之后將多路復(fù)用位流送往調(diào)度程序420。
注意,對(duì)于兩個(gè)結(jié)構(gòu)A和B而言,可用條件λ/(m·μ)<1來(lái)粗略估算該服務(wù)所需的處理器的最少數(shù)量m。現(xiàn)在,可比較T1和T2之間的平均延遲時(shí)間。(通過(guò)使用歸納法)可將其表示為PQ≤λ/(m·μ)。因此,總有T1>T2。在可忽略1/μ的情況下,有T1≥mT2。因此,就平均延遲時(shí)間而言,結(jié)構(gòu)B的性能總優(yōu)于結(jié)構(gòu)A。
另外,對(duì)于上述給出的兩個(gè)結(jié)構(gòu),問(wèn)題在于如何確定該處理單元及如何調(diào)度或分離這些單元,使得它們對(duì)于其處理器來(lái)說(shuō)是彼此獨(dú)立。即,在每個(gè)代碼轉(zhuǎn)換處理器中的每個(gè)處理單元的處理時(shí)間都應(yīng)是獨(dú)立的。
對(duì)處理單元的基本要求是可容易地將該單元從該位流中恢復(fù)出來(lái),并形成一序列或圖象或單個(gè)幀或半幀的基本構(gòu)件塊。并且,該處理單元應(yīng)具有能夠被作為一個(gè)完整、獨(dú)立的單元處理的功能。對(duì)于運(yùn)動(dòng)補(bǔ)償單元,該處理單元可能需要一些已可在該當(dāng)前處理器或其它處理器中獲得的基準(zhǔn)單元。表1歸納了用于不同視頻編碼標(biāo)準(zhǔn)的處理單元的可能的選擇。
盡管公開了用于所列視頻標(biāo)準(zhǔn)的可能的處理單元,但本發(fā)明基本上可適用于與任何視頻編碼標(biāo)準(zhǔn)一起使用,包括所列標(biāo)準(zhǔn)衍生的標(biāo)準(zhǔn)。另外,處理單元可包括一幀或半幀的一部分,或整個(gè)幀或半幀。
表1
一個(gè)GOB可包括例如33個(gè)宏塊。
一個(gè)VOP包括一幀內(nèi)的視頻物體。
注意,因?yàn)榭臻g轉(zhuǎn)換系數(shù)的直流預(yù)測(cè)和運(yùn)動(dòng)矢量預(yù)測(cè),該最小的處理單元(通常)不能為用于圖4的結(jié)構(gòu)的宏塊。因?yàn)槊總€(gè)片中的數(shù)據(jù)量通常是不相關(guān)的,所以單個(gè)幀中的各個(gè)片對(duì)于其處理器是彼此獨(dú)立的。
較大的處理單元通常需要較大的緩沖能力。
另外,需要存儲(chǔ)用于每個(gè)處理單元的某些信息,以便正確排序、多路復(fù)用及傳輸該經(jīng)代碼轉(zhuǎn)換的位流。該信息包括信道號(hào)、幀號(hào)(由用于MPEG-2的暫時(shí)基準(zhǔn)字“temp-ref”表示)、和用于每個(gè)信道的每個(gè)幀的處理單元號(hào)(例如片號(hào))。
處理單元之間的獨(dú)立性要求對(duì)于本發(fā)明的代碼轉(zhuǎn)換器的計(jì)算性能是至關(guān)重要的。但是,在單個(gè)視頻位流中的處理單元,例如MPEG-2視頻中的幀或片通常由于運(yùn)動(dòng)預(yù)測(cè)而彼此相關(guān)。
對(duì)于結(jié)構(gòu)A而言,如果單個(gè)視頻位流的處理單元被發(fā)送到相同的處理器,則這種相關(guān)不會(huì)引起任何問(wèn)題。此時(shí),將按順序處理這些單元,并可從所述在先處理單元中獲得運(yùn)動(dòng)預(yù)測(cè)所需的所有信息。
然而,對(duì)于結(jié)構(gòu)B而言,或當(dāng)將該單一視頻位流的處理單元發(fā)送給不同的處理器時(shí)對(duì)于結(jié)構(gòu)A而言,需要“保護(hù)協(xié)議”來(lái)防止在不同的處理器中同時(shí)處理相關(guān)的處理單元。后面將參照?qǐng)D7來(lái)描述這種協(xié)議。
對(duì)于結(jié)構(gòu)B而言,期望避免這樣一種情況,其中,一個(gè)預(yù)測(cè)處理單元被指定給一處理器,而其基準(zhǔn)宏塊仍在一個(gè)或若干其它的處理器中被處理,因此還無(wú)法利用。根據(jù)本發(fā)明,公開了一種方案,以通過(guò)隔行掃描該不同視頻位流的編碼幀來(lái)避免這種情況。
例如,假設(shè)編碼的MPEG-2視頻位流具有以下幀順序(傳輸順序)I1P1B1B2P2B3B4P3B5B6P4B7B8P5…其中,I、P和B表示圖象類型,而下標(biāo)表示每個(gè)圖象類型在位流中的順序。且假設(shè)該處理單元為片。接著,在每個(gè)具有下劃線的圖象分組中的片,例如I1、P1、B1B2P2與相同分組中的其它片不相關(guān)。例如,對(duì)于由具有若干片的單個(gè)幀組成的圖象分組I1而言,通常每個(gè)片中的數(shù)據(jù)會(huì)與該相同幀中其它片不相關(guān)。對(duì)于圖象分組B1B2P2而言,B1、B2和P2彼此不相關(guān)。
然而,在該位流中相鄰圖象組之間的片可能是相關(guān)的。例如,考慮預(yù)測(cè)處理單元(例如B1中的片)為待指定給一可用處理器的隊(duì)列中的第一單元,但其基準(zhǔn)宏塊(例如P1中的某些宏塊)仍在一個(gè)或多個(gè)其它處理器中被處理的情況。并且,B1和P1位于不同的分組。則無(wú)法處理該預(yù)測(cè)處理單元,直到其基準(zhǔn)宏塊準(zhǔn)備好為止。該延遲可導(dǎo)致某些處理器空閑。
為使空閑時(shí)間降到最小,一個(gè)方法是重新隔行掃描一視頻位流和其它視頻位流,以保證在每個(gè)處理單元成為隊(duì)列中的第一單元之前,總是具有其可用的基準(zhǔn)宏塊。基本上,對(duì)公用分組中的不相關(guān)的圖象進(jìn)行排序以使其彼此更加接近,或最好是相鄰,而不同的相關(guān)分組被分隔開。
由此,可同時(shí)由相同或不同的處理器來(lái)處理相同分組的不相關(guān)的圖象,同時(shí)增加不同分組中圖象處理之間的時(shí)間,使得在沒(méi)有延遲處理其它分組的預(yù)測(cè)圖象的情況下,可獲得一個(gè)分組中的基準(zhǔn)單元。由于在一給定信道的分組的處理之間處理來(lái)自其它信道的圖象,所以總的處理量不會(huì)降低。
例如,假設(shè)在傳輸流中存在另一視頻位流i1p1b1p2b2p3…,且在該傳輸流中的原始多路復(fù)用位流具有以下順序I1i1p1P1B1b1p2B2P2B3b2p3B4P3B5B6P4…該經(jīng)編碼的圖象重排列緩沖器410(或緩沖器240、242、…、244)可如下順序重新設(shè)置該位流順序,以減少該處理器的空閑時(shí)間I1P1i1p1B1B2P2b1p2B3B4P3b2p3B5B6P4…有時(shí)這種重新隔行掃描過(guò)程會(huì)受到每個(gè)視頻位流的實(shí)際所允許的延遲的限制??商峁┢渌皇茉撓拗浦萍s的多種方法。如下所討論的一個(gè)例子是從圖4和5結(jié)構(gòu)中變更而來(lái)的雙緩沖器方案。
重新排序可用于這里論述的任何結(jié)構(gòu)。
圖6示出結(jié)構(gòu)B,其中,根據(jù)本發(fā)明對(duì)處理器/調(diào)度程序提供一附加的優(yōu)先隊(duì)列。
在該方案中,用第一隊(duì)列,隊(duì)列1(410’)來(lái)緩沖基準(zhǔn)圖象處理單元。用第二隊(duì)列,、隊(duì)列2(610)來(lái)暫時(shí)緩沖其基準(zhǔn)宏塊(即基準(zhǔn)圖象處理單元)仍不可用的預(yù)測(cè)處理單元。隊(duì)列2(610)中的處理單元當(dāng)它們的基準(zhǔn)單元可用且有可用的處理器時(shí),該隊(duì)列在指定給處理器方面具有較高的優(yōu)先權(quán)。因此,這是一優(yōu)先隊(duì)列模型。
值得注意的是,當(dāng)在相同子流中攜載單個(gè)視頻流時(shí),該優(yōu)先隊(duì)列模型還可與圖2的結(jié)構(gòu)一起使用。例如,可將一附加的、優(yōu)先隊(duì)列加入到圖3的隊(duì)列240、242和244的每一個(gè)。
圖7示出根據(jù)本發(fā)明的用于驗(yàn)證數(shù)據(jù)已被處理的保護(hù)協(xié)議。這里公開了一種保護(hù)協(xié)議,用于防止在不同處理器中同時(shí)處理相關(guān)的處理單元??捎捎糜趫D2的代碼轉(zhuǎn)換器的處理器/調(diào)度程序250和用于圖4的代碼轉(zhuǎn)換器的處理器/調(diào)度程序420來(lái)執(zhí)行該協(xié)議。
值得注意的是,可使用任何已知的語(yǔ)法和通信協(xié)議來(lái)執(zhí)行該協(xié)議,包括任務(wù)和確認(rèn)窗口的實(shí)現(xiàn),并可使用任何已知的語(yǔ)法和通信協(xié)議來(lái)在處理器/調(diào)度程序和代碼轉(zhuǎn)換處理器之間發(fā)送和接收信息。
當(dāng)存在多個(gè)視頻位流或單個(gè)HDTV位流時(shí),處理該基準(zhǔn)處理單元的處理器可放慢速率并落在后面,以使該預(yù)測(cè)處理單元和其(相關(guān)的)基準(zhǔn)處理單元同時(shí)在不同的處理器中被處理。這可導(dǎo)致非最優(yōu)化最小平均處理時(shí)間。該保護(hù)協(xié)議可防止這種問(wèn)題。
該保護(hù)協(xié)議使用預(yù)定義窗口或列表,通過(guò)處理器來(lái)驗(yàn)證“已完成”的處理單元。對(duì)于圖2實(shí)施例的緩沖器240、242、…、244或圖4實(shí)施例的緩沖器410,處理器/調(diào)度程序既具有任務(wù)窗口又具有確認(rèn)窗口。該任務(wù)窗口順序地將固定(anchor)/基準(zhǔn)圖象(用于MPEG-2視頻的I和P圖象)的處理單元指定給可用的處理器。該確認(rèn)窗口指示已處理了對(duì)應(yīng)于該任務(wù)窗口的處理單元。通過(guò)使用該窗口,該協(xié)議僅需跟蹤由該任務(wù)窗口指定且由確認(rèn)窗口指示的一部分處理單元。操作這些窗口,并使其從一個(gè)固定圖象更新到另一固定圖象。
在塊705中,由處理器/調(diào)度程序從緩沖器中獲得下一處理單元。在塊710中,如果該處理單元是部分基準(zhǔn)圖象,或其本身是一整個(gè)基準(zhǔn)圖象(例如完整幀或半幀),則該處理器/調(diào)度程序?qū)⒃搯卧獦?biāo)記在其任務(wù)窗口中(塊715)。處理器/調(diào)度程序可具有一存儲(chǔ)器,用于對(duì)處理單元的識(shí)別數(shù)據(jù),例如信道號(hào)、幀號(hào)和處理單元號(hào)(例如片號(hào))進(jìn)行列表。
在塊720中,該處理器/調(diào)度程序向一可用的處理器分配一任務(wù),以處理該基準(zhǔn)處理單元,并將該處理單元數(shù)據(jù)轉(zhuǎn)發(fā)給該處理器。在塊725中,該處理器/調(diào)度程序等待從該處理器中收到已接收到任務(wù)的確認(rèn)。當(dāng)接收到該確認(rèn)時(shí),處理器/調(diào)度程序在其確認(rèn)窗口中作一適當(dāng)?shù)臉?biāo)記(塊730)。
在塊735中,如果該處理器已完成對(duì)基準(zhǔn)處理單元的處理,則設(shè)定一適當(dāng)?shù)臉?biāo)志(“end_of_unit=1”),且在塊740中,設(shè)定一適當(dāng)標(biāo)志(例如“referenc_eready=1”),表明該基準(zhǔn)處理單元可由被指定來(lái)處理相關(guān)預(yù)測(cè)處理單元的任何處理器來(lái)使用。
值得注意的是,該協(xié)議提供一通用的程序流程。例如對(duì)來(lái)自B和P圖象的單元,應(yīng)對(duì)該協(xié)議進(jìn)行適當(dāng)?shù)男薷?。例如,?lái)自B圖象的單元需要兩個(gè)基準(zhǔn)單元用于進(jìn)行運(yùn)動(dòng)補(bǔ)償。相應(yīng)地,僅當(dāng)該兩個(gè)基準(zhǔn)單元都準(zhǔn)備好時(shí)才應(yīng)設(shè)定“referenc_eready”標(biāo)志。并且,來(lái)自P圖象的單元可以是一個(gè)固定單元(對(duì)于B圖象單元而言),也可以是一個(gè)預(yù)測(cè)單元(這里,I圖象單元是該固定單元)。此外,應(yīng)當(dāng)理解,多個(gè)處理器被同時(shí)跟蹤,并且可按要求同時(shí)跟蹤多組基準(zhǔn)和處理單元。
例如,每個(gè)處理器可包括基準(zhǔn)緩沖器以獲取基準(zhǔn)單元數(shù)據(jù),該基準(zhǔn)緩沖器用于可被其它處理器訪問(wèn)的兩個(gè)基準(zhǔn)單元(向前和向后預(yù)測(cè))。可對(duì)用于當(dāng)前單元,例如B圖象的每個(gè)處理器提供一第三緩沖器。并且,無(wú)論是否被基準(zhǔn),均可將經(jīng)處理的固定幀單元(I或P)存儲(chǔ)于基準(zhǔn)緩沖器中。因?yàn)楫?dāng)前向后預(yù)測(cè)基準(zhǔn)緩沖器在下一時(shí)刻將是向前預(yù)測(cè)基準(zhǔn)緩沖器,所以幀緩沖器指針在兩個(gè)基準(zhǔn)緩沖器之間交換。
可使用已知的MPEG參數(shù)來(lái)檢測(cè)一處理單元的幀類型。
值得注意的是,當(dāng)處理單元是一個(gè)完整圖象(例如幀或半幀)的子集(例如片)時(shí),因?yàn)樵谝活A(yù)測(cè)處理單元中的區(qū)域運(yùn)動(dòng)補(bǔ)償?shù)湫偷匦枰獊?lái)自僅一個(gè)基準(zhǔn)處理單元中的基準(zhǔn)數(shù)據(jù),所以可立即利用該處理單元。該“推動(dòng)”方法將節(jié)省處理時(shí)間,但每個(gè)處理器需要較大的緩沖器,且處理器之間需要更多的DMA傳送。這是真實(shí)地,因?yàn)楫?dāng)基準(zhǔn)幀中的處理單元未被壓縮時(shí),不知道將來(lái)會(huì)用哪個(gè)其它的處理器來(lái)作為基準(zhǔn)。因此,必須廣播給所有處理器。執(zhí)行DMA的第二種方法是使每個(gè)處理器存儲(chǔ)其自己的經(jīng)解碼的基準(zhǔn)單元,且對(duì)每個(gè)處理器來(lái)說(shuō),從其它處理器中“拉出”所需的基準(zhǔn)單元。這樣做在處理時(shí)間上放慢了速度,但可節(jié)省DMA和存儲(chǔ)器。
如果需要,可處理、暫時(shí)存儲(chǔ)包括該圖象的若干處理單元,直到圖象中所有單元都被處理且一起作為一整個(gè)圖象來(lái)被利用。
在塊710中,如果該處理單元不是一基準(zhǔn)圖象的一部分,即是預(yù)測(cè)圖象,則處理器檢查標(biāo)志“reference_ready”,以查看是否可獲得相關(guān)的基準(zhǔn)單元(塊745)。如果不能,則輸入一保持模式(塊750)。如果基準(zhǔn)單元或若干基準(zhǔn)單元已準(zhǔn)備好,則該處理器/調(diào)度程序復(fù)位該“reference_ready”標(biāo)志(塊755),清除任務(wù)窗口(塊760),并清除確認(rèn)窗口(765)。這意味著不存在未決任務(wù),例如,不存在基準(zhǔn)處理單元用于當(dāng)前還未被處理的預(yù)測(cè)處理單元。
因此,在塊770中,該預(yù)測(cè)處理單元被指定并提供給一處理器。
根據(jù)來(lái)自相關(guān)處理器的請(qǐng)求,該所需的基準(zhǔn)處理單元被傳送給預(yù)測(cè)單元的處理器,用于對(duì)預(yù)測(cè)單元進(jìn)行運(yùn)動(dòng)補(bǔ)償??赏ㄟ^(guò)總線使用直接存儲(chǔ)器存取(DMA)傳送來(lái)進(jìn)行該數(shù)據(jù)傳送。為此目的,可使用已知的計(jì)算機(jī)結(jié)構(gòu),因此這里不再詳細(xì)論述。通常,該處理器/調(diào)度程序保持該基準(zhǔn)和預(yù)測(cè)單元被指定的那個(gè)處理器的記錄,并可協(xié)調(diào)該所需的傳送。
此外,每個(gè)處理器都具有其自身的本地存儲(chǔ)器,用于存儲(chǔ)基準(zhǔn)和預(yù)測(cè)處理單元。每個(gè)處理器還可具有其自身的緩沖器,用于存儲(chǔ)經(jīng)代碼轉(zhuǎn)換的處理單元,然后將其轉(zhuǎn)發(fā)給stat mux。
已知的stat mux技術(shù)控制該經(jīng)代碼轉(zhuǎn)換的數(shù)據(jù)從每個(gè)處理器傳送到該stat mux。
值得注意的是,該基準(zhǔn)處理單元被事先進(jìn)行代碼轉(zhuǎn)換,并提供給該stat mux(或當(dāng)前等待提供給stat mux)。由該預(yù)測(cè)單元的處理器使用,用于該預(yù)測(cè)單元的運(yùn)動(dòng)補(bǔ)償?shù)幕鶞?zhǔn)處理單元數(shù)據(jù)為未壓縮、象素疇(domain)格式,且在使用后被丟棄。
以單元來(lái)講,任務(wù)和確認(rèn)窗口都具有相同規(guī)模的處理單元的數(shù)量。該規(guī)模由每基準(zhǔn)圖象的處理單元的個(gè)數(shù)來(lái)確定。
只要確認(rèn)開始從處理器到處理器/調(diào)度程序定期地流回,則位流順利且有效地流動(dòng)。
這樣,該保護(hù)協(xié)議通過(guò)將預(yù)測(cè)處理單元的處理延遲到基準(zhǔn)處理單元的處理之后來(lái)避免同處理該基準(zhǔn)處理單元和其相關(guān)的一個(gè)或若干預(yù)測(cè)處理單元。結(jié)果,期望根據(jù)M/M/l或M/M/m排隊(duì)理論來(lái)使處理器的平均延遲最小化。
在本發(fā)明的另一方面,可將下面的處理單元重排序方法應(yīng)用于這里所述的多信道代碼轉(zhuǎn)換器結(jié)構(gòu)。每個(gè)處理單元具有其自身的尺寸,該尺寸通常確定所需的計(jì)算功率。該尺寸越大,則所需的計(jì)算功率越多。對(duì)于軟件實(shí)現(xiàn)而言,通常是處理單元尺寸越大,處理延遲就越大。為了最小化這種延遲,可將下述的重排序處理應(yīng)用于每個(gè)信道。
具體而言,在重排序緩沖器中對(duì)每個(gè)圖象中的處理單元進(jìn)行重排序。設(shè)計(jì)每個(gè)重排序緩沖器(隊(duì)列)來(lái)根據(jù)最短尺寸處理單元優(yōu)先的規(guī)律將該信道的處理單元指定給處理器。此時(shí),隊(duì)列模型對(duì)于圖2的并行處理結(jié)構(gòu)的m個(gè)分支而言變?yōu)镸/G/l,對(duì)于圖4的多處理結(jié)構(gòu)的單個(gè)分支而言變?yōu)镸/G/m。通過(guò)用Uik(t)在時(shí)間t標(biāo)注該k幀的第I個(gè)處理單元,并用Sik(t)表示該單元的尺寸(以位的形式)來(lái)指定優(yōu)先權(quán)。例如,假設(shè)MTS分析程序和處理單元分割220之后的位流的處理單元順序如下。U1k(t),U2k(t),...,ULk(t)]]>并假設(shè)S1k(t)<SLk(t)<S2k(t)<SL-3k<......<S3k(t)....]]>則該重排序緩沖器410的輸出中的處理單元的順序?yàn)閁1k(t),ULk(t),U2k(t),UL-3k......,U3k(t)......]]>總之,應(yīng)根據(jù)性能和成本折衷來(lái)選擇用于實(shí)現(xiàn)一多信道MPEG視頻代碼轉(zhuǎn)換器的結(jié)構(gòu)。假設(shè)所需的總的處理功率為P,則從減少每個(gè)處理單元的平均延遲的觀點(diǎn)來(lái)看,應(yīng)注意以下問(wèn)題·對(duì)于安排多路復(fù)用的n信道位流用于m個(gè)處理器(每個(gè)處理器的處理功率為P/m)的情況,對(duì)越小的m,該系統(tǒng)的每個(gè)處理單元的平均延遲越小。例如在M/M/l排隊(duì)系統(tǒng)的情況下,當(dāng)m=1時(shí),具有最小的平均延遲。
·在給定處理器的數(shù)量m的情況下,與直接安排多路復(fù)用的n信道位流用于m個(gè)處理器的方法相比,將該多路復(fù)用的n信道位流事先分成m個(gè)子流(每個(gè)子流被發(fā)送給每個(gè)處理器)的方法的系統(tǒng)延遲較大。
·對(duì)于處理單元的預(yù)確定塊而言,可通過(guò)重排序該塊中的處理單元使得尺寸較小的處理單元首先被處理,來(lái)減少該平均延遲。
·因?yàn)?a)對(duì)位流分離器230的速度要求遠(yuǎn)遠(yuǎn)低于對(duì)圖4結(jié)構(gòu)中處理器/調(diào)度程序420的速度要求,且(b)控制協(xié)議較簡(jiǎn)單,所以實(shí)現(xiàn)圖2的結(jié)構(gòu)的復(fù)雜性較小。
因此,可知本發(fā)明提供用于一種有效的代碼轉(zhuǎn)換器的方法和裝置,該轉(zhuǎn)換器使用多個(gè)單獨(dú)的代碼轉(zhuǎn)換處理器。在第一種結(jié)構(gòu)(結(jié)構(gòu)A)中,將n個(gè)信道的輸入位流分成若干處理單元,這些處理單元又被分成m個(gè)子流,且在相應(yīng)的分支中處理該每個(gè)子流。對(duì)每個(gè)子流提供一隊(duì)列。在第二種結(jié)構(gòu)(結(jié)構(gòu)B)中,這些處理單元被指定給任何可用的處理器。所有處理器具有一個(gè)隊(duì)列。或在優(yōu)先隊(duì)列方案中,用一優(yōu)先隊(duì)列來(lái)保持預(yù)測(cè)圖象單元,使得這些單元在已處理其基準(zhǔn)單元時(shí),在被指定給處理器方面具有優(yōu)先權(quán)。
改進(jìn)結(jié)構(gòu)A的一種選擇是為該m個(gè)分支中的每一個(gè)提供一緩沖器充滿反饋信號(hào),并調(diào)整該位流的分離,從而將引入的數(shù)據(jù)發(fā)送給最空的隊(duì)列(緩沖器)。
在對(duì)結(jié)構(gòu)A或B之一的另一種改進(jìn)中,可根據(jù)最短尺寸優(yōu)先技術(shù)重排隊(duì)列中的這些處理單元。
當(dāng)單一視頻流被分成不同的子流時(shí)對(duì)結(jié)構(gòu)A的另一可能的改進(jìn)和對(duì)結(jié)構(gòu)B的另一可能的改進(jìn)是隔行掃描不同視頻位流的幀,以確保在每個(gè)預(yù)測(cè)處理單元位于其隊(duì)列中第一之前,具有其可用的基準(zhǔn)處理單元。
當(dāng)一個(gè)或若干視頻流被分成不同的子流時(shí)對(duì)結(jié)構(gòu)A的另一可能的改進(jìn)和對(duì)結(jié)構(gòu)B的另一可能的改進(jìn)是提供一保護(hù)協(xié)議,其能夠保持對(duì)預(yù)測(cè)處理單元和其相關(guān)基準(zhǔn)處理單元的跟蹤,以確保它們不被同時(shí)處理(在不同的處理器中)。該保護(hù)協(xié)議延遲對(duì)該預(yù)測(cè)處理單元的處理直到其已處理其相應(yīng)的基準(zhǔn)處理單元。還協(xié)調(diào)該未被壓縮的基準(zhǔn)處理單元向預(yù)測(cè)處理單元的處理器的移動(dòng),移動(dòng)到該處理器用于進(jìn)行運(yùn)動(dòng)補(bǔ)償處理。
通過(guò)確保不同時(shí)處理相關(guān)的處理單元,可獲得最小平均處理延遲。
此外,通??赏瑫r(shí)實(shí)現(xiàn)上述的改進(jìn)。
另一優(yōu)點(diǎn)是本發(fā)明的代碼轉(zhuǎn)換器的結(jié)構(gòu)可容易地通過(guò)僅將數(shù)據(jù)傳給操作處理器來(lái)調(diào)整一個(gè)或若干故障處理器。
本發(fā)明適于對(duì)多個(gè)信道,例如標(biāo)準(zhǔn)定義視頻信道,或單個(gè)高比特率信道,例如HDTV信道進(jìn)行代碼轉(zhuǎn)換。
雖然參照不同的具體實(shí)施例對(duì)本發(fā)明進(jìn)行了描述,但本領(lǐng)域技術(shù)人員應(yīng)該明白,在不脫離權(quán)利要求所限定的本發(fā)明的精神和范圍下可進(jìn)行多種修改和變更。
例如,盡管這里討論了不同的語(yǔ)法元件,但值得注意的是,它們僅僅是實(shí)例,可使用任何語(yǔ)法程序。
此外,盡管結(jié)合MPEG-2標(biāo)準(zhǔn)論述了本發(fā)明,但應(yīng)該明白,這里所公開的概念可適于與任何類似的通信標(biāo)準(zhǔn)一起使用,包括當(dāng)前MPEG標(biāo)準(zhǔn)的衍生。
此外,事實(shí)上,本發(fā)明還適于與任何類型的網(wǎng)絡(luò)一起使用,包括有線或衛(wèi)星電視廣播通信網(wǎng)、局域網(wǎng)(LANs)、城域網(wǎng)(MANs)、寬域網(wǎng)(WANs)、互連網(wǎng)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)或這些網(wǎng)絡(luò)的組合。
權(quán)利要求
1.一種用于對(duì)包括數(shù)字視頻數(shù)據(jù)的位流進(jìn)行代碼轉(zhuǎn)換的方法,包括以下步驟將該位流分成若干連續(xù)的處理單元;對(duì)這些處理單元進(jìn)行排隊(duì);以及根據(jù)一排隊(duì)系統(tǒng)模型,將該排隊(duì)處理單元的每一個(gè)分別指定給并行排列的若干代碼轉(zhuǎn)換處理器中的一個(gè)。
2.根據(jù)權(quán)利要求1的方法,其中根據(jù)該排隊(duì)系統(tǒng)模型,可將這些排隊(duì)處理單元指定給這些代碼轉(zhuǎn)換處理器,以便在此同時(shí)處理彼此獨(dú)立的幾個(gè)特定的排隊(duì)處理單元。
3.根據(jù)權(quán)利要求1的方法,其中所述排隊(duì)處理單元包括一基準(zhǔn)圖象的排隊(duì)處理單元和其預(yù)測(cè)圖象的排隊(duì)處理單元;且根據(jù)該排隊(duì)系統(tǒng)模型,將這些排隊(duì)處理單元指定給這些代碼轉(zhuǎn)換處理器,使得該基準(zhǔn)圖象的排隊(duì)處理單元和該預(yù)測(cè)圖象的排隊(duì)處理單元不被同時(shí)處理。
4.根據(jù)權(quán)利要求1的方法,其中該處理單元至少包括片、幀、半幀、視頻物面(VOP)和塊組(GOB)中的一種。
5.根據(jù)權(quán)利要求1的方法,其中在所述排隊(duì)步驟中,所述分割處理單元被排列進(jìn)一公用隊(duì)列;且在所述指定步驟中,從該公用隊(duì)列中將該排隊(duì)處理單元指定給這些代碼轉(zhuǎn)換處理器。
6.根據(jù)權(quán)利要求5的方法,其中,在所述排隊(duì)步驟中,以最短尺寸處理單元優(yōu)先的方式將所述分割處理單元排列到該公用隊(duì)列。
7.根據(jù)權(quán)利要求5的方法,其中所述位流僅具有一個(gè)視頻信道。
8.根據(jù)權(quán)利要求1的方法,其中所述處理單元包括一基準(zhǔn)圖象的處理單元和其預(yù)測(cè)圖象的處理單元,在所述排隊(duì)步驟中,該基準(zhǔn)圖象的處理單元被排列到第一隊(duì)列,而該預(yù)測(cè)圖象的處理單元被排列到第二、優(yōu)先隊(duì)列;且在所述指定步驟中,在將該基準(zhǔn)圖象的排隊(duì)處理單元指定給各個(gè)代碼轉(zhuǎn)換處理器用以進(jìn)行處理后,該預(yù)測(cè)圖象的排隊(duì)處理單元在被指定給其各自的代碼轉(zhuǎn)換處理器方面具有優(yōu)先權(quán)。
9.根據(jù)權(quán)利要求8的方法,其中,在所述排隊(duì)步驟中,以最短尺寸處理單元優(yōu)先的方式將所述分割處理單元排列到第一和第二隊(duì)列。
10.根據(jù)權(quán)利要求1的方法,還包括以下步驟將所述連續(xù)處理單元分成若干子流;在所述排隊(duì)步驟中,將該處理單元的子流排列到各自的隊(duì)列中;且在所述指定步驟中,從該各個(gè)隊(duì)列中將所述排隊(duì)處理單元指定給代碼轉(zhuǎn)換處理器。
11.根據(jù)權(quán)利要求10的方法,其中所述位流包括若干視頻信道。
12.根據(jù)權(quán)利要求10的方法,其中,在所述排隊(duì)步驟中,以最短尺寸處理單元優(yōu)先的方式將該處理單元的子流排列到所述各自的隊(duì)列。
13.根據(jù)權(quán)利要求10的方法,其中,在所述排隊(duì)步驟中,以最空隊(duì)列優(yōu)先的方式將該處理單元的子流排列到各自的隊(duì)列。
14.根據(jù)權(quán)利要求1的方法,其中,所述位流至少包括第一和第二視頻信道,這些信道具有按各自的圖象順序排列的各自的圖象,還包括以下步驟隔行掃描第一視頻信道的圖象和來(lái)自第二視頻信道的圖象,使得與在各自圖象順序中的情況相比,第一和第二視頻信道各自的相關(guān)的圖象被分隔得更遠(yuǎn)。
15.根據(jù)權(quán)利要求1的方法,其中,所述位流至少包括第一和第二視頻信道,這些信道具有按各自的分組順序排列的各自的圖象分組,每個(gè)分組包括一個(gè)圖象或若干不相關(guān)的圖象,還包括以下步驟隔行掃描第一視頻信道的圖象分組和來(lái)自第二視頻信道的圖象分組,使得與在各自分組順序中的情況相比,第一和第二視頻信道各自的相關(guān)的分組被分隔得更遠(yuǎn)。
16.根據(jù)權(quán)利要求1的方法,其中,在所述指定步驟中,一基準(zhǔn)圖象的該排隊(duì)處理單元和其預(yù)測(cè)圖象的排隊(duì)處理單元被指定給各自的代碼轉(zhuǎn)換處理器,還包括以下步驟延遲該預(yù)測(cè)圖象的排隊(duì)處理單元在被指定了該處理單元的代碼轉(zhuǎn)換處理器中的處理,直到已處理該基準(zhǔn)圖象的排隊(duì)處理單元為止。
17.根據(jù)權(quán)利要求16的方法,還包括以下步驟保持該被指定的基準(zhǔn)圖象的排隊(duì)處理單元、其被指定的預(yù)測(cè)圖象的排隊(duì)處理單元、以及在所述指定步驟中被指定了上述兩單元的代碼轉(zhuǎn)換處理器的一個(gè)記錄;并當(dāng)已由被指定了該基準(zhǔn)圖象的排隊(duì)處理單元的代碼轉(zhuǎn)換處理器處理該處理單元時(shí),更新該記錄;其中,所述延遲步驟對(duì)所述更新步驟做出反映。
18.根據(jù)權(quán)利要求16的方法,還包括以下步驟當(dāng)在被指定了該基準(zhǔn)圖象的排隊(duì)處理單元的代碼轉(zhuǎn)換處理器處進(jìn)行完處理之后,將該基準(zhǔn)圖象的排隊(duì)處理單元從該處理器提供到被指定了該預(yù)測(cè)圖象的排隊(duì)處理單元的代碼轉(zhuǎn)換處理器。
19.一種用于對(duì)包括數(shù)字視頻數(shù)據(jù)的位流進(jìn)行代碼轉(zhuǎn)換的設(shè)備,包括分割裝置,用于將所述位流分割為若干連續(xù)的處理單元;排隊(duì)裝置,用于對(duì)這些處理單元進(jìn)行排隊(duì);若干并行排列的代碼轉(zhuǎn)換處理器;以及指定裝置,用于根據(jù)一排隊(duì)系統(tǒng)模型,將所述排隊(duì)處理單元的每一個(gè)分別指定給該若干代碼轉(zhuǎn)換處理器中的一個(gè)。
20.根據(jù)權(quán)利要求19的設(shè)備,其中所述排隊(duì)裝置包括一用于對(duì)所述分割處理單元進(jìn)行排隊(duì)的公用隊(duì)列;且所述指定裝置從該公用隊(duì)列中將該排隊(duì)處理單元指定給代碼轉(zhuǎn)換處理器。
21.根據(jù)權(quán)利要求19的設(shè)備,還包括一分離器,用于將該連續(xù)的處理單元分離成若干子流;其中,所述排隊(duì)裝置包括用于排列該處理單元的子流的各個(gè)隊(duì)列;且所述指定裝置從該各個(gè)隊(duì)列中將排隊(duì)處理單元指定給代碼轉(zhuǎn)換處理器。
全文摘要
一種使用排隊(duì)系統(tǒng)模型來(lái)對(duì)數(shù)字視頻圖象進(jìn)行代碼轉(zhuǎn)換的方法和裝置。并行設(shè)置若干代碼轉(zhuǎn)換處理器(120、122、124、260、262、264)。在第一種結(jié)構(gòu)中,將n個(gè)信道的輸入位流(220)分為若干處理單元,例如片或幀,將這些處理單元(110、230)分成m個(gè)子流,且在相應(yīng)的分支(260、262、264)處理該每個(gè)子流。對(duì)每個(gè)子流提供一單獨(dú)的隊(duì)列(240、242、244)。在第二種結(jié)構(gòu)中,從公用隊(duì)列(410)中將處理單元指定給任一可用的處理器。根據(jù)該排隊(duì)系統(tǒng)模型來(lái)同時(shí)處理各個(gè)獨(dú)立的處理單元,以使平均處理時(shí)間最小化。尤其是,避免了同時(shí)處理基準(zhǔn)圖象(I圖象)單元和相關(guān)的預(yù)測(cè)圖象(P或B圖象單元)單元。進(jìn)一步的技術(shù)完成記錄保持,并在已處理完該基準(zhǔn)圖象單元后,調(diào)整將該基準(zhǔn)圖象單元從其處理器向相關(guān)預(yù)測(cè)圖象單元的處理器的傳送。還提供了具有圖象重排序和使用優(yōu)先權(quán)的緩沖器的實(shí)施例。
文檔編號(hào)H04N7/58GK1357200SQ00809277
公開日2002年7月3日 申請(qǐng)日期2000年6月9日 優(yōu)先權(quán)日1999年6月23日
發(fā)明者陳學(xué)敏, 凌璠 申請(qǐng)人:通用儀器公司