專利名稱:用于時分多路復(fù)用處理多個數(shù)字視頻節(jié)目的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明大致涉及處理具有共同資源的多個數(shù)據(jù)流。更明確地說,本發(fā)明涉及一種用于時分多路復(fù)用處理例如多個數(shù)字視頻節(jié)目的技術(shù)。
背景技術(shù):
許多數(shù)字內(nèi)容的供應(yīng)方需要在任何時候“按需”向任何請求者傳送其包括視頻、音頻等的內(nèi)容。詳細(xì)來說,這些供應(yīng)方努力使觀眾能擺脫播放安排而訪問其整個電視節(jié)目。典型的電視節(jié)目包括新發(fā)布的電影和來自各種電視網(wǎng)絡(luò)的所有廣播和收費(fèi)電視節(jié)目?!叭f事按需”(“EOD”)和“網(wǎng)絡(luò)個人視頻錄像”(“nPVR”)是創(chuàng)造來描述這種類型的按需服務(wù)的術(shù)語。
目前,常規(guī)的視頻服務(wù)技術(shù)(稱為視頻點(diǎn)播(“VOD”))可用于以時移方式提供有限數(shù)量的視頻。但使用這種技術(shù)來支持EOD的話會有缺陷。舉例來說,考慮到觀眾當(dāng)前接收到的多數(shù)內(nèi)容來自播放源,且同樣,提供VOD的資源主要設(shè)計成僅將視頻同時傳送到有限數(shù)目的用戶。VOD資源(諸如VOD服務(wù)器和VOD分配設(shè)備)并沒有設(shè)計成根據(jù)EOD提供大多數(shù)觀眾想要的內(nèi)容。因而,使用足夠的VOD資源來全天候?yàn)槊總€請求者提供專門點(diǎn)播的流將是極其昂貴的。
VOD和EOD服務(wù)所需的設(shè)備分成以下三個部分之一服務(wù)器、傳輸設(shè)備和分配設(shè)備。服務(wù)器存儲且播放視頻節(jié)目,同時傳輸設(shè)備通常經(jīng)由光纖在分配點(diǎn)與集線器之間傳播視頻文件和實(shí)時流。分配設(shè)備一般按路線發(fā)送、轉(zhuǎn)換、多路傳輸、轉(zhuǎn)譯、譯碼、擾頻、調(diào)制和提升視頻流以將其最終傳送到用戶家庭。通常將分配產(chǎn)品放在電纜數(shù)據(jù)機(jī)頭端(cable beadend)、電纜集線器(cable hub)、電話公司中心機(jī)構(gòu)和其它分配中心中。
傳統(tǒng)的VOD分配設(shè)備的缺陷在于其缺少轉(zhuǎn)譯、接合、按路徑發(fā)送和譯碼視頻流的能力。常規(guī)的VOD資源帶寬也不足且具有不靈活的轉(zhuǎn)換能力。另外,常使用依賴輸入流的連續(xù)性的硬件或軟件處理來實(shí)施諸如轉(zhuǎn)譯、編碼、解碼、譯碼和擾頻的許多處理,且因而這些處理不包括分時多工、多流應(yīng)用的所必要的順序安排和狀態(tài)管理資源。相反,每個流處理器必須具有以足夠的資源實(shí)施以應(yīng)付最糟情況的需求,且通過復(fù)制整個流處理子系統(tǒng)可實(shí)現(xiàn)任何多流能力。出于這個和其它原因,分配設(shè)備以及其它資源一般是昂貴的且不必要地占用分配中心的物理空間。
考慮到上述內(nèi)容,極需要克服與上文提到和用于傳送內(nèi)容的技術(shù)和結(jié)構(gòu)相關(guān)聯(lián)的缺陷。當(dāng)處理大量的視頻、音頻和數(shù)據(jù)流以及以點(diǎn)播、點(diǎn)到點(diǎn)和單播形式傳送任何視頻節(jié)目時,也需要提供用于減少分配設(shè)備的成本和密度的技術(shù)和設(shè)備。
發(fā)明內(nèi)容
本發(fā)明包括一種用于多工處理一組包括數(shù)據(jù)包的數(shù)字流的方法。數(shù)據(jù)包可包括音頻數(shù)據(jù)包、視頻數(shù)據(jù)包、數(shù)據(jù)包(即,含有音頻或視頻以外信息的數(shù)據(jù)的數(shù)據(jù)包)等。數(shù)據(jù)包一般經(jīng)排序和定時而用于連續(xù)實(shí)時顯示。在一個實(shí)施例中,所述方法包括將每個接收到的數(shù)據(jù)包存儲在存儲器中,諸如隨機(jī)存取存儲器(“RAM”)。對于每個流來說,下一個數(shù)據(jù)包的到達(dá)期限是確定的且在期限之前基于當(dāng)前時間間隔指派優(yōu)先權(quán)。具有最高指派優(yōu)先權(quán)的流被識別為(且在某些情況下被標(biāo)記為)已識別的流。在某些實(shí)施例中,接著恢復(fù)已識別流的處理狀態(tài)。從存儲器中檢索與已識別的流對應(yīng)的一個或一個以上數(shù)據(jù)包以產(chǎn)生檢索的數(shù)據(jù)包。在處理完檢索的數(shù)據(jù)包之后保存處理狀態(tài)。
根據(jù)本發(fā)明的另一個實(shí)施例,配置一種設(shè)備以執(zhí)行復(fù)數(shù)個數(shù)字流的時分多路復(fù)用處理。隨機(jī)存取存儲器存儲每個接收到的數(shù)據(jù)包。對于每個流來說,具有一種用于確定下一個數(shù)據(jù)包到達(dá)接收器的期限且在所述期限之前基于當(dāng)前時間間隔指派優(yōu)先權(quán)的機(jī)制。某些實(shí)施例進(jìn)一步包括一識別具有最高指派優(yōu)先權(quán)的流的機(jī)制。另一種機(jī)制恢復(fù)與已識別的流對應(yīng)的處理狀態(tài)。一機(jī)制從隨機(jī)存取存儲器檢索與已識別的流對應(yīng)的一個或一個以上檢索的數(shù)據(jù)包。另一機(jī)制在處理完檢索的數(shù)據(jù)包之后保存處理狀態(tài)。
本發(fā)明可應(yīng)用于設(shè)計和實(shí)施更有效的分配產(chǎn)品,所述產(chǎn)品能同時且能以減少的每個流的成本處理許多視頻、音頻和數(shù)據(jù)流。另外,更高級的集成和增加的處理密度直接使產(chǎn)品在視頻分配中心占用更少的空間。
結(jié)合以下與隨附圖式相結(jié)合的詳細(xì)描述可更充分理解本發(fā)明,其中圖1說明根據(jù)本發(fā)明的一個實(shí)施例而使用的分時多工單處理器系統(tǒng)。
圖2說明根據(jù)本發(fā)明的一個實(shí)施例用于寫入和讀取接收到的數(shù)據(jù)包的過程。
圖3說明根據(jù)本發(fā)明的一個實(shí)施例的讀取地址生成機(jī)制。
圖4說明根據(jù)本發(fā)明的一個實(shí)施例利用的數(shù)據(jù)包分類技術(shù)。
圖5說明在本發(fā)明的數(shù)據(jù)包調(diào)度程序中的中斷處理。
圖6說明根據(jù)本發(fā)明的一個實(shí)施例執(zhí)行的數(shù)據(jù)包調(diào)度程序分類。
圖7說明在使用B幀的序列的顯示順序和傳輸順序之間的差異。
圖8A到圖8D說明可根據(jù)本發(fā)明的一個實(shí)施例而使用的存儲器管理策略。
圖9說明根據(jù)本發(fā)明的一個實(shí)施例用于指派存儲塊的計算機(jī)代碼。
圖10說明根據(jù)本發(fā)明的一個實(shí)施例用于釋放存儲塊的計算機(jī)代碼。
圖11說明根據(jù)本發(fā)明的一個實(shí)施例使用固定大小的小區(qū)塊的存儲器管理。
圖12說明根據(jù)本發(fā)明一個實(shí)施例在一頁中的線性存儲器定址。
圖13說明根據(jù)本發(fā)明的一個實(shí)施例而利用的存儲器存取硬件。
圖14說明實(shí)施可根據(jù)本發(fā)明的一個實(shí)施例而使用的地址生成器的計算機(jī)代碼。
圖15說明實(shí)施可根據(jù)本發(fā)明的一個實(shí)施例而使用的數(shù)據(jù)合并模塊的計算機(jī)代碼。
圖16說明在壓縮單幀期間根據(jù)本發(fā)明的一個實(shí)施例而需要的參數(shù)。
圖17說明根據(jù)本發(fā)明的一個實(shí)施例用于多個流水線階段以避免幀間延遲的獨(dú)立的標(biāo)簽區(qū)塊選擇位技術(shù)。
在一些視圖中類似的參考編號是指對應(yīng)部件。
具體實(shí)施例方式
本發(fā)明特定用于包括處理多個數(shù)字視頻節(jié)目的應(yīng)用中。數(shù)字視頻節(jié)目被定義為單流或一個或一個以上視頻、音頻或數(shù)據(jù)流的組合的數(shù)字表示,其中每個流與時間上連續(xù)的單個節(jié)目相關(guān)聯(lián)。數(shù)據(jù)流包括數(shù)據(jù)包流,其一般不包括音頻或視頻,且因此被稱為用于非音頻/視頻數(shù)據(jù)的“非A/V”數(shù)據(jù)包??梢晕磯嚎s格式或根據(jù)諸如MPEG 1、MPEG 2或MPEG 4的已知標(biāo)準(zhǔn)的壓縮格式表示這些數(shù)據(jù)流。此外,處理本身可以是壓縮編碼、解碼或譯碼操作的應(yīng)用。在譯碼情況下,可以一種壓縮格式接收輸入流且轉(zhuǎn)換成另一種格式?;蛘?,可將譯碼器設(shè)計成改變壓縮程序的某些特征,諸如壓縮率,同時堅持單一的壓縮標(biāo)準(zhǔn)。
在實(shí)施處理視頻和/或音頻流的過程中的挑戰(zhàn)之一在于處理必須足夠快以在任何時候跟上引入速率。這種需求通常導(dǎo)致過度設(shè)計的實(shí)施以處理最糟情況下的數(shù)據(jù)速率峰值或處理某些復(fù)雜的操作,這些操作盡管很少見但還是可能的且在隨機(jī)間隔中會重復(fù)出現(xiàn)。如果所述處理沒有設(shè)計成處理這些最糟情形,那么經(jīng)處理的數(shù)據(jù)可能會遲些時候到達(dá)其目的地,且視頻或音頻信號顯示會發(fā)生中斷。或者,如果實(shí)施經(jīng)過度設(shè)計來防止這些顯示中斷,那么處理資源在更通常情形下的時間間隔期間會頻繁閑置。
一種分時多工、單處理器解決方案可緩解設(shè)計用于最糟情況情形的需要。也就是說,通過共享單處理實(shí)施的資源,且通過每次對一個信號授權(quán)訪問,便可解決發(fā)生在每個個別流中的變化。盡管可能所有的流同時碰到其峰值速率,或多工處理情形可同時發(fā)生在每個流上是可能的,但這些事件的發(fā)生是微乎其微的,實(shí)際上可以把它們忽略掉。當(dāng)獨(dú)立的信號數(shù)目增加時,極端變化的可能性的減小是已知的統(tǒng)計現(xiàn)象。為了在分時多工、單處理器系統(tǒng)中實(shí)現(xiàn)這種統(tǒng)計上的益處,需要一種相容的調(diào)度系統(tǒng)。有必要實(shí)施一種策略,其中,例如額外的處理資源被自動地分配給經(jīng)歷反常的高數(shù)據(jù)速率或需要額外注意的非常多事件的任何單一流。如果沒有接收到額外的資源,那么延遲將導(dǎo)致流的顯示過程的中斷,即使其它流繼續(xù)被準(zhǔn)時處理。
根據(jù)本發(fā)明的一個實(shí)施例利用一種最優(yōu)化的調(diào)度系統(tǒng)。調(diào)度系統(tǒng)被配置成在相同的操作點(diǎn)維持每個流,其中操作點(diǎn)被定義為如果對于給定的流沒有額外的數(shù)據(jù)要處理而在顯示過程中斷前的時間間隔。以下描述這種系統(tǒng)的一個特定實(shí)施例。
圖1中展示分時多工單處理器系統(tǒng)100的方塊圖。在這個特定實(shí)例中,對多個壓縮的視頻流應(yīng)用譯碼處理。譯碼器106將壓縮的數(shù)據(jù)從一種表示轉(zhuǎn)換成另一種表示。每個視頻流包括一列幀,每個幀代表單個圖像,其代表在特定時刻采樣的視頻信號。每個幀被進(jìn)一步劃分為一列固定長度的數(shù)據(jù)包,例如根據(jù)當(dāng)時觀察到的實(shí)際壓縮率,每個幀的數(shù)據(jù)包的數(shù)目都會有變化。
在主機(jī)CPU 110的控制下從接收器模塊RX 102接收到含有壓縮視頻數(shù)據(jù)的數(shù)據(jù)包,且這些數(shù)據(jù)包經(jīng)由總線114轉(zhuǎn)移到隨機(jī)存取存儲器(RAM) 112。模塊RX 102可以是任何類型的輸入裝置,諸如地面、電纜或衛(wèi)星調(diào)諧器/解調(diào)器或以太網(wǎng)或類似的網(wǎng)絡(luò)接口。主CPU 110指派RAM 112中的地址,且實(shí)施調(diào)度數(shù)據(jù)包的處理以用于譯碼操作。選定的數(shù)據(jù)包以合適的順序傳送到譯碼器,同時由譯碼處理產(chǎn)生的數(shù)據(jù)包返回到相同的RAM 112,使得其可重新排序而經(jīng)由模塊TX 104進(jìn)行傳輸。模塊RX 104可以是任何類型的輸出裝置,諸如地面、電纜或衛(wèi)星調(diào)制器或以太網(wǎng)或類似的網(wǎng)絡(luò)接口。譯碼器RAM108配置成存儲處理器數(shù)據(jù)和處理器狀態(tài)信息。如本文所述,術(shù)語“狀態(tài)”或“處理狀態(tài)”是指當(dāng)暫停處理第一流且開始或重新處理第二流時需要保存的任何類型的數(shù)據(jù)。需要這些保存的數(shù)據(jù)來在發(fā)生中斷的相同點(diǎn)處重新處理第一流。狀態(tài)數(shù)據(jù)可包括處理參數(shù)(諸如圖片大小或壓縮率)、處理數(shù)據(jù)(諸如視頻像素的整個幀)或任何其它類似的數(shù)據(jù)。
圖2展示根據(jù)一個實(shí)施例將從模塊RX 102接收到的數(shù)據(jù)包寫入RAM 112中的過程和從RAM中讀取數(shù)據(jù)包且將其轉(zhuǎn)送到譯碼器106的過程??墒褂密浖傻拿枋龇硎箤懭肟刂破?02和讀取控制器204實(shí)施成直接存儲器存取(DMA)處理,例如,其中每個描述符制定一個源地址、一個目標(biāo)地址和轉(zhuǎn)移的字節(jié)數(shù)目。圖2中所示的實(shí)例基于由寫入地址生成器208生成的按順序增加的地址來描述寫入控制器202。也就是說,通過得到對應(yīng)于先前轉(zhuǎn)移的目標(biāo)地址且通過使其增加等于先前轉(zhuǎn)移的大小(例如,一個或一個以上數(shù)據(jù)包的大小)的量而得到與下一個轉(zhuǎn)移開始相對應(yīng)的目標(biāo)地址。因此數(shù)據(jù)包僅跟著一個數(shù)據(jù)包末尾而在其間不會有任何間隙或空間。在超過RAM 206的最大地址后,寫入的下一個地址將重新設(shè)定到RAM的起始地址。一個更復(fù)雜的實(shí)施可包括自由表等以更有效地管理所有有效的存儲器。
通常,從RAM 206讀取數(shù)據(jù)包的過程比寫入過程更復(fù)雜,因?yàn)檫@里是經(jīng)常實(shí)施優(yōu)先化和調(diào)度處理的地方。圖3中展示一種使建模讀取地址生成器210方式。數(shù)據(jù)包分類器302識別對應(yīng)于每個引入數(shù)據(jù)包的流且在至少一個實(shí)施例中基于數(shù)據(jù)包標(biāo)頭中的信息指派優(yōu)先權(quán)。下文討論FIFO 304、數(shù)據(jù)包調(diào)度程序306和優(yōu)先權(quán)隊(duì)列308。通過圖4中所示的流程圖描述數(shù)據(jù)包分類器的特定實(shí)施。
每次接收到數(shù)據(jù)包后就存儲在圖2的RAM 206中,例如通過數(shù)據(jù)包分類器302指派一個標(biāo)簽以代表所述數(shù)據(jù)包。標(biāo)簽包括數(shù)據(jù)包存儲處的RAM地址和由數(shù)據(jù)包分類器確定的數(shù)據(jù)包優(yōu)先權(quán)。最有效的指派優(yōu)先權(quán)的方式之一是考慮下一數(shù)據(jù)包(或通過處理數(shù)據(jù)包而得到的信息)必須被傳送到將顯示視頻處的接收器的最遲可能的時間。圖4中所示實(shí)施的期限最早最優(yōu)先(EDF)調(diào)度程序假定在這個期限與數(shù)據(jù)包的優(yōu)先權(quán)之間具有一種相反的關(guān)系。
對于實(shí)時視頻和音頻流來說,可唯一確定每個數(shù)據(jù)包的期限。舉例來說,使用MPEG傳輸流協(xié)議編碼的特定視頻和音頻數(shù)據(jù)包包括嵌在數(shù)據(jù)包標(biāo)頭中的時間標(biāo)志。時間標(biāo)志常包括在起始新的幀的每個數(shù)據(jù)包中。時間標(biāo)志指定當(dāng)當(dāng)前時間等于(或大于)對應(yīng)于下一個幀的時間標(biāo)志時接收器開始解碼下一個幀。如果沒有接收到整個幀且此時不存在于接收器的緩存器中,那么出現(xiàn)重放過程的中斷且執(zhí)行其它步驟以恢復(fù)正確的重放同步。
當(dāng)圖1的接收器102能與由產(chǎn)生時間標(biāo)志的編碼器使用的相同時鐘同步時,這種定時重放過程的方法具有良好作用。出于這個原因,MPEG編碼的傳輸流也包括嵌入時間參考參數(shù),其已知為節(jié)目時鐘參考(“PCR”),接收器使用這次參數(shù)來重構(gòu)原始時鐘。每個時間參考指定從編碼器發(fā)出時間參考時原始時鐘的當(dāng)前值。在時間參考采樣期間,以27MHz的MPEG指定速率連續(xù)外推時鐘。即使這個當(dāng)?shù)貢r鐘生成器的精確頻率和穩(wěn)定性將取決于編碼器處所使用的時鐘,接收器也應(yīng)能例如使用鎖相頻率追蹤回路和嵌入位流中的時間參考參數(shù)(PCR)同步且恢復(fù)這個原始時鐘。
圖3的數(shù)據(jù)包分類器302可如圖4的流程圖而運(yùn)作,其包括將在不同的流上偵測的時間標(biāo)志轉(zhuǎn)換成單個共同時鐘參考的簡單方法。在402處等待下一個數(shù)據(jù)包后,在406處接收數(shù)據(jù)包且將其存儲在RAM中。當(dāng)在408處偵測到用于在404處接收到的特定流i的時間參考時,所述時間參考用于在410處計算ΔTRi,其為當(dāng)前的當(dāng)?shù)貢r間t(基于例如27MHz時鐘的發(fā)射時鐘)與時間參考值之間的差值。
當(dāng)在412處在對應(yīng)于流i的數(shù)據(jù)包中偵測到時間標(biāo)志時,在414處將新的優(yōu)先權(quán)設(shè)定成等于這個時間標(biāo)志與對應(yīng)于這個流的最近的ΔTRi兩者的和。每次接收到?jīng)]有施加標(biāo)志的數(shù)據(jù)包時,假定對應(yīng)于和相同的流的先前數(shù)據(jù)包相同的幀,且優(yōu)先權(quán)可因此在一個實(shí)施例中保持不變。然而,在另一個實(shí)施例中,反而在416處將優(yōu)先權(quán)設(shè)定成最大值以確保這些數(shù)據(jù)包具有超過開始新幀的任何數(shù)據(jù)包的優(yōu)先級。還應(yīng)注意某些MPEG編碼模型不需要每個連續(xù)幀都包括時間標(biāo)志。如果允許這些不常見的時間標(biāo)志,那么可在412處通過檢查數(shù)據(jù)包標(biāo)頭偵測到不包括時間標(biāo)志的幀,且通過基于幀速率外推先前的時間標(biāo)志來推斷有效的時間標(biāo)志。還可從數(shù)據(jù)包標(biāo)頭中含有的信息推斷幀速率。
一旦圖3中的數(shù)據(jù)包分類器302向一數(shù)據(jù)包指派了一優(yōu)先權(quán),該數(shù)據(jù)包隨后就在與特定流相關(guān)聯(lián)的圖3的先進(jìn)先出存儲器(FIFO)304中被指派一存放在圖4的418處的標(biāo)簽。所述標(biāo)簽包括兩個參數(shù)指派的數(shù)據(jù)包優(yōu)先權(quán)和RAM中的數(shù)據(jù)包地址。為每個數(shù)據(jù)包流維持類似的FIFO,每個都含有與在那個流上接收到的數(shù)據(jù)包的優(yōu)先權(quán)和地址對應(yīng)的一標(biāo)簽序列。每當(dāng)在420處把新的標(biāo)簽插入先前是空的圖3的FIFO 304中時,在422處都將一中斷信號發(fā)送到圖3的數(shù)據(jù)包調(diào)度程序306。數(shù)據(jù)包調(diào)度程序306的主要任務(wù)是在圖3的每個FIFO 304的輸出處連續(xù)監(jiān)控下一個標(biāo)簽且根據(jù)這些下一個標(biāo)簽所指定的優(yōu)先權(quán)對各種流進(jìn)行分類。所得經(jīng)排序的列表被稱為優(yōu)先權(quán)隊(duì)列308。如果從數(shù)據(jù)包分類器302接收到一中斷,那么這意味著在對應(yīng)于與觸發(fā)所述中斷的數(shù)據(jù)包相關(guān)聯(lián)的所述流的FIFO 304的輸出處存在一新的下一個標(biāo)簽。因?yàn)镕IFO 304在420處先前是空的,所以所述流當(dāng)前未列在優(yōu)先權(quán)隊(duì)列308中,且因此必須插入一新的輸入項(xiàng)。數(shù)據(jù)包調(diào)度程序306通過將與新輸入項(xiàng)相關(guān)聯(lián)的優(yōu)先權(quán)與隊(duì)列中的現(xiàn)有輸入項(xiàng)的優(yōu)先權(quán)相比較而確定應(yīng)該將這個新的輸入項(xiàng)插在優(yōu)先權(quán)隊(duì)列308中的哪個地方。因?yàn)橐恢备鶕?jù)優(yōu)先權(quán)而對優(yōu)先權(quán)隊(duì)列308進(jìn)行分類,所以這個過程僅包括定位分別具有小于和大于(或等于)新輸入項(xiàng)優(yōu)先權(quán)的優(yōu)先權(quán)的連續(xù)輸入項(xiàng)對,且在這個對之間插入新的輸入項(xiàng)。如果不存在具有更高(或相等)優(yōu)先權(quán)的輸入項(xiàng),那么將新的輸入項(xiàng)放在優(yōu)先權(quán)隊(duì)列308的頭部,且類似地,如果不存在更低優(yōu)先權(quán)的輸入項(xiàng),那么將新的輸入項(xiàng)插在優(yōu)先權(quán)隊(duì)列308的尾部。用于創(chuàng)建和維持這些分類表的計算上有效的方法已眾所周知,且因此不再進(jìn)一步詳細(xì)討論。圖5中展示描述數(shù)據(jù)包調(diào)度程序306響應(yīng)一中斷的操作的簡單流程圖500。在502處,接收每個流的優(yōu)先權(quán)且在504處將其發(fā)布以對隊(duì)列進(jìn)行優(yōu)先權(quán)排序。
圖6中展示描述圖3的數(shù)據(jù)包調(diào)度程序306的主要分類任務(wù)的流程圖600。每當(dāng)譯碼器在602處準(zhǔn)備接受一個新的數(shù)據(jù)包時,數(shù)據(jù)包調(diào)度程序306在606處選擇優(yōu)先權(quán)隊(duì)列308中對應(yīng)于604處最高優(yōu)先權(quán)流的下一個數(shù)據(jù)包。通過拒絕幀中間的任何流間轉(zhuǎn)換,大大簡化了處理(諸如變碼)和與視頻編碼和解碼相關(guān)的其它操作。因此,數(shù)據(jù)包調(diào)度程序306會等待,直到在其轉(zhuǎn)換到對應(yīng)于任何其它流的數(shù)據(jù)包之前在610處提供當(dāng)前幀的最后數(shù)據(jù)包。在這種情況下,自動處理僅在幀分界處轉(zhuǎn)換流的限制,因?yàn)閿?shù)據(jù)包分類器302一直給幀的第一個數(shù)據(jù)包指派一比其指派給隨后的數(shù)據(jù)包低的優(yōu)先權(quán)。換句話說,如果當(dāng)前流上的下一個數(shù)據(jù)包不是一幀的第一個數(shù)據(jù)包,那么其將一直具有比任何其它FIFO中的下一個數(shù)據(jù)包的優(yōu)先權(quán)值更高的優(yōu)先權(quán)值。
數(shù)據(jù)包調(diào)度程序306的最后的任務(wù)一旦在數(shù)據(jù)包被選擇用于608處的傳輸就會更新優(yōu)先權(quán)隊(duì)列308。在將選定的數(shù)據(jù)包的標(biāo)簽從對應(yīng)的流FIFO 304中移除之后,必須檢查下一個標(biāo)簽的優(yōu)先權(quán)。如果在FIFO內(nèi)不含有其它標(biāo)簽,那么必須在612處將用于優(yōu)先權(quán)隊(duì)列308中的這個流的輸入項(xiàng)移除。如果FIFO在610處不為空且下一個數(shù)據(jù)包對應(yīng)于不同的幀,那么用于優(yōu)先權(quán)隊(duì)列308中的這個流的對應(yīng)輸入項(xiàng)必須重新定位以基于減小的優(yōu)先權(quán)在614處維持合適的排序。
用于從中央存儲單元讀取數(shù)據(jù)包且使用數(shù)據(jù)包分類器302將對應(yīng)的數(shù)據(jù)包標(biāo)簽指派給復(fù)數(shù)個FIFO 304且使用數(shù)據(jù)包調(diào)度程序306來讀取數(shù)據(jù)包標(biāo)簽且將數(shù)據(jù)包輸出到譯碼器的方法具有兩個重要優(yōu)勢。第一,以最優(yōu)的方式對數(shù)據(jù)包進(jìn)行優(yōu)先權(quán)排序,此確保數(shù)據(jù)包及時傳送以避免中斷實(shí)時視頻和音頻的重放,同時最小化所有其它流的等待時間。第二,優(yōu)先權(quán)排序和調(diào)度處理是計算上有效的。優(yōu)先權(quán)隊(duì)列308維持根據(jù)優(yōu)先權(quán)而分類的最新的不同流的列表,且輸入項(xiàng)僅需要進(jìn)行相對不頻繁的調(diào)整。這樣就可使用單個不昂貴的處理器來管理大量視頻流的分類和調(diào)度處理。
單一時分多路復(fù)用處理系統(tǒng)受益于與實(shí)施處理相關(guān)的任何邏輯、CPU(中央處理器)和存儲器資源的減少。如果為每一流提供一專用處理器,那么需要多次復(fù)制所有這些資源。另一方面,每次中止當(dāng)前流的處理且開始下一流的處理時,例示性時分多路復(fù)用處理可需要額外的存儲器來保存當(dāng)前的處理狀態(tài)。否則,將不可能在相同中斷點(diǎn)恢復(fù)第一流的執(zhí)行。在先前實(shí)例中,狀態(tài)信息可包括在圖1中的譯碼器存儲模塊108中。或者,如果采用更復(fù)雜的讀寫控制器實(shí)施,那么狀態(tài)信息可包括在主RAM(隨機(jī)存取存儲器)存儲器112中,。術(shù)語“保存狀態(tài)”可指將此狀態(tài)數(shù)據(jù)寫入存儲器中的處理,而“恢復(fù)狀態(tài)”則指從存儲器檢索狀態(tài)數(shù)據(jù)。
每次中止流的處理時必須保存的狀態(tài)量取決于特殊處理?;趬嚎s標(biāo)準(zhǔn)(如MPEG)的大多數(shù)視頻編碼、解碼和譯碼處理要求至少一幀像素包括在保存狀態(tài)中。這些壓縮系統(tǒng)使用通常所說的臨時性預(yù)測技術(shù),其中首先基于已編碼的一個或一個以上的幀來預(yù)測每一幀,然后進(jìn)一步僅壓縮臨時性預(yù)測和實(shí)際像素之間的差異。有時將利用此種預(yù)測的幀稱為P-幀。一般較不頻繁地傳輸稱為I-幀的其它幀且所述幀不利用臨時性預(yù)測。I-幀的壓縮相對不足夠,但是因?yàn)椴恍枰惹暗膸?,所以甚至可在位流中遇到傳輸或記錄誤差之后或當(dāng)在無可利用的先前信息處調(diào)到新的位流時解碼所述幀。稱為B-幀的其它類型的幀利用從兩個不同幀的預(yù)測,當(dāng)以顯示順序排列所述幀時,一幀向前而另一幀跟隨B-幀。為了利用B-幀預(yù)測,必須無次序地傳輸所述幀,以使得當(dāng)接收到經(jīng)編碼的B-幀時兩個預(yù)測幀可存在于接收器處。
圖7為使用例示性B-幀的序列的顯示順序700與傳輸順序750之間的差異。每對連續(xù)的P-幀(例如,P1、P4、P7、P11)之間的B-幀的數(shù)量為編碼可變的,其可時常改變。
在許多狀況下,必須分配存儲量來存儲預(yù)測將來幀所需的先前幀,通過謹(jǐn)慎選擇發(fā)生中斷的點(diǎn)可大大減少所述存儲器的存儲量。例如,如果在待傳輸?shù)南乱粠瑸锽-幀時發(fā)生中斷,那么需要將兩個幀保存在存儲器中?;蛘撸绻诮邮誔-幀或I-幀之前發(fā)生中斷,那么僅需要保存一個幀。因此,如果目標(biāo)為節(jié)約存儲器,那么應(yīng)在恰好傳輸P-幀或I-幀之前中斷每一流??扇菀椎貙⒋诵薷慕Y(jié)合入數(shù)據(jù)包分類器302的設(shè)計中。也可將指派給未開始一新幀的數(shù)據(jù)包的人工高優(yōu)先權(quán)指派給開始新的B-幀的數(shù)據(jù)包。除非下一數(shù)據(jù)包對應(yīng)于I-幀或P-幀,否則這將有效地阻止處理器中斷。實(shí)際上,B-幀的第一數(shù)據(jù)包的優(yōu)先權(quán)應(yīng)僅向上偏相對小的數(shù)量。這樣,如果流繼續(xù)大量的連續(xù)B-幀,那么其可最終丟失其優(yōu)先權(quán)優(yōu)勢,且可在下一流變得非常晚之前發(fā)生中斷。
在許多狀況下,可結(jié)構(gòu)化壓縮視頻序列以包括I-幀,其后緊跟P-幀。將以所述I-幀開始且以恰好位于下一所述I-幀之前的幀結(jié)束的幀組稱為圖像閉合組(閉合的“GOP”),這是因?yàn)榭山獯a所述組中的所有幀而不引用所述組之外的幀。如果恰好在開始所述閉合GOP之前中斷位流的處理,那么不需要將任何幀保存在存儲器中。然而,因?yàn)殚]合GOP通常僅以每秒1或2個的速率傳輸,所以不可能總是等待閉合GOP開始。在此速率下,除非將相當(dāng)大的等待時間設(shè)計到系統(tǒng),并提供所述緩存器來在等待處理的同時對位流數(shù)據(jù)進(jìn)行排序,否則單一處理器不可能服務(wù)于大量的流。
大多數(shù)最近的壓縮算法中的一些允許P-幀和B-幀使用臨時性預(yù)測,這種預(yù)測使用任意數(shù)量的先前傳輸?shù)膸PEG-4標(biāo)準(zhǔn)版本(也稱為H.264)為一實(shí)例。在所述壓縮系統(tǒng)中,當(dāng)中斷處理時必須保存的狀態(tài)量顯著增大了。同樣,在這種狀況下,可能難以優(yōu)化用于保存中斷期間的狀態(tài)的存儲器的使用,除非預(yù)測不同幀所需的幀的數(shù)量持續(xù)存在差異且預(yù)先已知此變化。
盡管一般預(yù)測尚待接收的其它幀所需的幀會占用大多數(shù)需要用來保存狀態(tài)的存儲器,但是也必須分配一些存儲器來對可在流之間或任一單一流的幀與幀之間變化的參數(shù)進(jìn)行編碼。這些參數(shù)專用于編碼算法,且在解碼和譯碼處理的狀況下,所述參數(shù)一般嵌入多種數(shù)據(jù)編碼層的標(biāo)頭中。
取決于視頻壓縮算法和用于中止和保存狀態(tài)的策略,需要為單一處理器分時多工實(shí)施的存儲器的量可與需要來支持多個獨(dú)立的處理器的存儲器的量像比較,其中所述多個獨(dú)立的處理器中的每一個專用于單一流。但是使用單一大存儲單元和一接合到單一系統(tǒng)的存儲控制器是有利的。如果單個存儲單元服務(wù)于單個處理器而不是服務(wù)于許多處理器,那么可從設(shè)計上省略復(fù)雜的仲裁策略且將花費(fèi)更少的時間來等待存儲訪問。也可按照處理每一流所需來分配存儲器,而不是預(yù)分配每一個別流可能需要的存儲器的最大量。統(tǒng)計益處類似于由共享其它處理資源產(chǎn)生的提高的效率,且在此種狀況下,允許以更少的總存儲器來設(shè)計系統(tǒng)。
由統(tǒng)計存儲分配模型產(chǎn)生的復(fù)雜性之一為存儲分配策略的設(shè)計。一般地,存儲分配器將接收對鄰接存儲塊的請求,所述存儲塊等于整個幀的大小,且因?yàn)槊恳粠拇笮】稍诹髋c流之間或甚至在單一流內(nèi)變化,所以分配器應(yīng)確保足夠大塊的自由存儲器總是可利用的。必須采取措施來避免隨著持續(xù)分配新塊及持續(xù)釋放舊塊時出現(xiàn)的過度存儲碎片。
圖8A展示了適當(dāng)?shù)拇鎯芾聿呗缘膶?shí)例。在此種狀況下,將存儲器分配成多個塊802,其水平和垂直大小分別等于總的水平或垂直大小除以n,其中n為2的整數(shù)冪。所述策略在于分配可能的最小的塊,其等于或大于對應(yīng)于請求的大小。
如圖8B、8C、和8D中所展示,也可由四叉樹結(jié)構(gòu)對圖8A建模。樹根為整個存儲區(qū)域的中心804。每次分配新的存儲塊時,從中心804延伸到新分配的塊的中心的分枝延伸了樹。僅可將每一單一分枝從塊的中心牽引到四分體之一的中心(意即,到四元塊的中心,如四元中心806),塊由所述四分體組成。圖8B為樹的一級或根級的分枝。圖8C為二級分枝,而圖8D為三級分枝。以短劃線展示較低級分枝。每一分枝點(diǎn)的橫坐標(biāo)和縱坐標(biāo)對應(yīng)于圖8A中所使用的標(biāo)度。
在此實(shí)例中,塊在尺寸上總為正方形,但是可容易地支持矩形以及其它幾何形狀。例如,通過簡單地將固定標(biāo)度因子應(yīng)用于所有的水平參數(shù),或替代地應(yīng)用于所有垂直參數(shù),可建模任何縱橫比的矩形區(qū)域而不需使實(shí)施復(fù)雜化。也可僅以一維而不是二維細(xì)分塊,且盡管普遍性是直接的,但是其引入附加的復(fù)雜性,因此不包括在實(shí)例中。
根據(jù)此策略,在圖9和圖10中分別提供用于指派并釋放存儲塊的源代碼的部分的實(shí)例。提供作為函數(shù)mem_allocate的一輸入的參數(shù)d是所請求的存儲塊的水平和垂直尺寸。參數(shù)i和j分別為對應(yīng)于所述塊的中心的縱坐標(biāo)和橫坐標(biāo),從所述塊中將要指派所請求的存儲塊。參數(shù)k是以坐標(biāo)i和j為中心的此塊的水平和垂直大小的一半。初始以引用表示圖8A中所說明的整個區(qū)域的全部存儲塊的i、j、和k來調(diào)用函數(shù)。然后,分配器判定當(dāng)前的存儲塊(具有中心i、j和由k決定的大小)是否大于所需,且如果是,那么通過使用更新成引用4個子四分體之一的參數(shù)i、j和k遞歸調(diào)用mem_allocate來將塊細(xì)分成多個四分體。當(dāng)識別一適當(dāng)?shù)淖铀姆煮w時,返回對應(yīng)于中心為縱坐標(biāo)i和橫坐標(biāo)j的塊的左上角的物理地址addr(i,j)。始終維持量D(i,j)以指示可用于以坐標(biāo)i和j為中心的塊內(nèi)分配的最大塊。
提供作為函數(shù)mem_free的一輸入的參數(shù)i和j分別為不再需要且準(zhǔn)備釋放的存儲塊的縱坐標(biāo)和橫坐標(biāo)。參數(shù)k是此塊的相應(yīng)尺寸。通過更新當(dāng)前塊和包含此塊的所有更大塊的量D(i,j)可有效地釋放存儲器。
可改良通過將塊細(xì)分成同等大小的四分體來分割主存儲器的例示性方法。首先,某一存儲碎片層可仍然存在且導(dǎo)致不能服務(wù)于對額外存儲器的請求。其次,如果所請求的存儲塊的大小與所細(xì)分的四分體之一的大小不精確匹配,那么所指派的存儲塊將過大且將浪費(fèi)額外的空間。根據(jù)本發(fā)明的另一實(shí)施例,一種方法將主存儲器分割成多個具有固定大小的小塊,如圖11所例示??蓪⒎Q為“頁”的這些塊做成比一典型幀的大小小得多。因此,當(dāng)將一新的幀保存在存儲器中時,應(yīng)分配許多頁1102。如果幀的水平和垂直尺寸不分別為水平和垂直頁尺寸的整數(shù)倍,那么可能會浪費(fèi)相對少量的存儲器,但是如果頁尺寸適當(dāng)小,那么應(yīng)忽略此浪費(fèi)。實(shí)際上,可通過平衡可能浪費(fèi)的存儲器的成本與管理額外頁的成本來選擇最佳的頁大小。
存儲管理功能包括跟蹤所有未分配的頁1110和當(dāng)需要新的存儲器時分配所述頁。在一實(shí)施例中,可將對應(yīng)于未指派的頁的物理地址保存為一組織為簡單的先進(jìn)先出緩存器(FIFO)的自由表。即,當(dāng)釋放頁時可將所述頁地址插入圖11的自由表緩存器1104的一端中,且當(dāng)分配一新的頁時可通過彈出自由表的另一端的地址來移除舊的頁。
頁管理也可用于跟蹤與當(dāng)前使用的每一頁有關(guān)的虛擬地址。虛擬地址可包含流標(biāo)識符、流內(nèi)的幀標(biāo)識符和幀內(nèi)的橫坐標(biāo)和縱坐標(biāo)???例如)用簡單的查找表(如圖11中的轉(zhuǎn)換后備緩存器(TLB)1106)來實(shí)施頁的虛擬地址到物理地址的映射。在此種狀況下,頁管理功能的成本略多于用于保存自由表的FIFO 1104的成本和用于保存地址映射的TLB的成本。
盡管可以軟件實(shí)施大多數(shù)存儲管理處理,但是可能需要根據(jù)另一實(shí)施例的部分硬件實(shí)施加速在一幀內(nèi)發(fā)生的處理。例如,如果其它因素規(guī)定使用用于一幀內(nèi)的壓縮相關(guān)處理任務(wù)的客戶硬件以及使用用于管理中斷和幀到幀的轉(zhuǎn)移的軟件,那么可能僅加載相對少量的頁地址到以硬件實(shí)施的子處理中。如果在開始每一新幀之前執(zhí)行此加載,那么僅必須在處理下一幀的同時轉(zhuǎn)換對應(yīng)于可引用的存儲器的頁地址。如果需要對將后面的幀進(jìn)行臨時性預(yù)測,那么此包括所有包含可用于臨時性預(yù)測的幀的頁和所有將需要用來保存輸出幀的頁。通過回收由不再被需要的臨時性預(yù)測幀所使用的相同頁可完成對輸出幀的存儲器分配,或通過從自由表提取新頁來達(dá)成此。
在大多數(shù)壓縮系統(tǒng)中,在非常小的塊中存取存儲器,一般范圍為4×4像素到16×16像素。假定頁的大小顯著地大于此大小,那么較佳進(jìn)一步將所述頁細(xì)分成具有固定大小的更小的子塊,所述固定大小類似于典型存取的大小。盡管單一幀可包含遍及主存儲器隨機(jī)分布的多個頁,但是一般按順序?qū)ψ訅K進(jìn)行排序,使得一頁內(nèi)的所有像素共同包含所述幀內(nèi)的單一鄰接的矩形。進(jìn)一步在圖12中說明一頁內(nèi)的此線性定址。
根據(jù)特定實(shí)施例,圖13展示可用于存取主存儲器的硬件1300的實(shí)例。當(dāng)處理任何給定流的單一幀時,通過指定幀標(biāo)識符(幀1302)、幀的縱坐標(biāo)(y)1306、和幀的橫坐標(biāo)(x)1304而產(chǎn)生存儲器存取請求。分別由ysize1310和xsize 1308指定所請求的存儲塊的縱向和橫向大小。地址生成器1320將所請求區(qū)域的位置和邊界與相鄰頁的位置和邊界相比較,且向高速緩存單元1322供應(yīng)完成所述請求所需的所有頁的地址。地址生成器1320也將每一頁內(nèi)的偏移輸出給數(shù)據(jù)合并模塊1330。圖14提供用于實(shí)施地址生成器的代碼的實(shí)例。在此種狀況下,假定子塊大小為16×16像素。
下文描述例示性高速緩存模塊1322的操作。如果對應(yīng)于由地址生成器供應(yīng)的地址的頁已存在于高速緩存器中,那么直接將所述頁供應(yīng)給數(shù)據(jù)合并模塊1330。否則,如果所述頁不存在于高速緩存器1322中,那么首先從外部DRAM(動態(tài)隨機(jī)存取存儲器)1340中取得數(shù)據(jù),且然后將數(shù)據(jù)提供給數(shù)據(jù)合并模塊。
數(shù)據(jù)合并模塊1330使用從地址生成器1320接收到的頁偏移信息來選擇從高速緩存器1322接收到的每一頁內(nèi)的子區(qū)域。圖15提供用于實(shí)施數(shù)據(jù)合并模塊1330的代碼的實(shí)例。在此實(shí)例中,為了以常規(guī)的光柵掃描順序輸出所請求的像素數(shù)據(jù)塊,模塊1330可緩存整行子塊。
圖16展示壓縮單一幀期間所需要的參數(shù)的簡單表示。將所述表示稱為標(biāo)簽塊,且其包括頁地址1602以及需要來實(shí)施處理的參數(shù)1604。例如,所述參數(shù)可包括幀大小、壓縮比、幀類型(I、P、或B)、運(yùn)動矢量搜索范圍等。一種有效地從一幀的處理轉(zhuǎn)移到下一幀的處理的方法是使用兩個或兩個以上的標(biāo)簽塊。當(dāng)正處理第一幀時,可能僅使用一個標(biāo)簽塊1600。在此時間期間,可加載第二標(biāo)簽塊1650以提供與經(jīng)調(diào)度處理的下一幀相關(guān)的信息。
在兩個標(biāo)簽塊的情況下,單一位可識別當(dāng)前所使用的標(biāo)簽塊。完全處理了幀之后,切換所述位以識別其他標(biāo)簽塊。如果與每一幀的處理并行地預(yù)加載第二標(biāo)簽塊,那么可立即開始第二幀的處理且可由此避免幀間延遲。
實(shí)際上,很可能利用并行執(zhí)行的不同操作對幀處理器的硬件實(shí)施進(jìn)行流水線處理,且每一操作對應(yīng)于不同的時間點(diǎn)。在所述狀況下,可延遲標(biāo)簽塊選擇位的切換,直到在處理了整個幀之后整個流水線變成空的為止。然而,此可在下一幀的處理可開始之前引入額外延遲,且取決于流水線階段的數(shù)量,此延遲時間可能很長。根據(jù)一特定實(shí)施例,一種避免招致此幀間延遲的方法是為處理流水線的每一階段保存一獨(dú)立的標(biāo)簽塊“選擇位”。此在圖17中展示。一旦第一流水線階段產(chǎn)生了對應(yīng)于當(dāng)前幀末端的最后的數(shù)據(jù)字,就切換對應(yīng)于所述流水線階段的標(biāo)簽塊選擇位1702,且可在下一時鐘周期一開始就接受對應(yīng)于下一幀的開始的數(shù)據(jù)。每一連續(xù)的時鐘周期一開始,就切換下一流水線階段的標(biāo)簽塊選擇位1704,且此持續(xù)直到整個處理從第一幀轉(zhuǎn)移到第二幀為止。
為了解釋的目的,上文描述使用特定的術(shù)語來提供對本發(fā)明的徹底理解。然而,所屬領(lǐng)域技術(shù)人員易了解不需要特定細(xì)節(jié)來實(shí)踐本發(fā)明。因此,為了說明和描述的目的提供本發(fā)明的特定實(shí)施例的上文描述。上文描述并不被認(rèn)為是詳盡的或?qū)⒈景l(fā)明限制于所揭示的精確形式;明顯地,考慮到以上的教示,許多修改和變化都是可能的。選擇并描述所述實(shí)施例以最好地解釋本發(fā)明的原理和其實(shí)際應(yīng)用,由此使其他所屬領(lǐng)域技術(shù)人員能夠最好地利用本發(fā)明和經(jīng)過多種修改的多個實(shí)施例,所述修改均適合于所預(yù)期的特殊用途。希望隨附權(quán)利要求書和其均等物來界定本發(fā)明的范疇。
權(quán)利要求
1.一種用于處理復(fù)數(shù)個數(shù)字流的方法,其中每個數(shù)字流包括經(jīng)排序用于連續(xù)顯示的數(shù)據(jù)包,所述方法包括接收用于所述復(fù)數(shù)個數(shù)字流中每個流的數(shù)據(jù)包;使所述數(shù)據(jù)包的每一個與所述復(fù)數(shù)個數(shù)字流中的一相應(yīng)流相關(guān)聯(lián);和確定所述復(fù)數(shù)個數(shù)字流的一個流的一數(shù)據(jù)包子集將在其它數(shù)據(jù)包子集之前被處理。
2.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括在緩存器中存儲所述接收到的數(shù)據(jù)包。
3.根據(jù)權(quán)利要求2所述的方法,其進(jìn)一步包括選擇用于處理的所述數(shù)據(jù)包子集;和從所述緩存器中檢索所述數(shù)據(jù)包子集。
4.根據(jù)權(quán)利要求3所述的方法,其中以所接收的次序檢索所述數(shù)據(jù)包子集。
5.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括向所述復(fù)數(shù)個數(shù)字流中的每個流指派一優(yōu)先權(quán)。
6.根據(jù)權(quán)利要求5所述的方法,其進(jìn)一步包括基于與一最高優(yōu)先權(quán)相關(guān)聯(lián)的所述復(fù)數(shù)個數(shù)字流中的所述一個流確定將要處理的所述數(shù)據(jù)包子集。
7.根據(jù)權(quán)利要求5所述的方法,其中所述優(yōu)先權(quán)代表一期限。
8.根據(jù)權(quán)利要求7所述的方法,其中所述期限從一關(guān)聯(lián)存取單元的標(biāo)頭提取的解碼時間標(biāo)志中獲得。
9.根據(jù)權(quán)利要求1所述的方法,其中排序所述數(shù)據(jù)包子集,所述經(jīng)排序的數(shù)據(jù)包子集構(gòu)成一存取單元。
10.根據(jù)權(quán)利要求9所述的方法,其中一存取單元代表一視頻幀。
11.根據(jù)權(quán)利要求9所述的方法,其中一存取單元代表一音頻幀。
12.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括確定所述復(fù)數(shù)個數(shù)字流中的所述一個流的另一個子集與一個新的存取單元相關(guān)聯(lián)。
13.根據(jù)權(quán)利要求12所述的方法,其中確定所述另一個子集與所述新的存取單元相關(guān)聯(lián)進(jìn)一步包括調(diào)整與所述復(fù)數(shù)個數(shù)字流中的所述一個流相關(guān)聯(lián)的一優(yōu)先權(quán)。
14.根據(jù)權(quán)利要求13所述的方法,其中響應(yīng)被接收作為第一個未處理的數(shù)據(jù)包的所述另一個子集的一數(shù)據(jù)包而調(diào)整所述優(yōu)先權(quán)。
15.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括維持與所述復(fù)數(shù)個數(shù)字流中的每個流相關(guān)聯(lián)的一狀態(tài)。
16.根據(jù)權(quán)利要求15所述的方法,其中所述狀態(tài)包括用于所述處理所述子集的參數(shù)。
17.根據(jù)權(quán)利要求15所述的方法,其中所述狀態(tài)包括代表至少一個視頻幀的像素數(shù)據(jù)。
18.根據(jù)權(quán)利要求15所述的方法,其進(jìn)一步包括分配用于存儲所述狀態(tài)的存儲器。
19.根據(jù)權(quán)利要求18所述的方法,其中分配存儲器包括將一存儲器循環(huán)細(xì)分成多個四分體以形成多個分配單元,其中所述多個分配單元之一是一個不能再進(jìn)一步細(xì)分的四分體,而沒有至少一個四分體尺寸變得比一視頻幀的對應(yīng)尺寸還要小。
20.根據(jù)權(quán)利要求18所述的方法,其中一存儲器分配成多個頁,其中所述頁的每一個是一固定大小的相鄰存儲單元。
21.根據(jù)權(quán)利要求20所述的方法,其中使用一個經(jīng)配置以管理不使用的存儲器頁的自由表來管理未分配的頁。
22.一種用于處理復(fù)數(shù)個數(shù)字流的設(shè)備,其中每個流包括經(jīng)排序用于連續(xù)顯示的數(shù)據(jù)包,所述設(shè)備包括接收用于所述復(fù)數(shù)個數(shù)字流的每個流的數(shù)據(jù)包的構(gòu)件;使每個所述數(shù)據(jù)包與所述復(fù)數(shù)個數(shù)字流的一相應(yīng)流相關(guān)聯(lián)的構(gòu)件;和確定所述復(fù)數(shù)個數(shù)字流中的一個流的數(shù)據(jù)包子集將在其它數(shù)字流的其它數(shù)據(jù)包子集之前將要被處理的構(gòu)件。
23.根據(jù)權(quán)利要求22所述的設(shè)備,其進(jìn)一步包括一用于存儲所述接收到的數(shù)據(jù)包的緩存器。
24.根據(jù)權(quán)利要求23所述的設(shè)備,其進(jìn)一步包括選擇用于處理的所述數(shù)據(jù)包子集的構(gòu)件;和從所述緩存器檢索所述數(shù)據(jù)包子集的構(gòu)件。
25.根據(jù)權(quán)利要求22所述的設(shè)備,其進(jìn)一步包括向所述復(fù)數(shù)個數(shù)字流中的每個流指派一優(yōu)先權(quán)的構(gòu)件。
26.根據(jù)權(quán)利要求25所述的設(shè)備,其進(jìn)一步包括基于與一最高優(yōu)先權(quán)相關(guān)聯(lián)的所述復(fù)數(shù)個數(shù)字流中的所述一個流確定將要處理的所述數(shù)據(jù)包子集的構(gòu)件。
27.根據(jù)權(quán)利要求25所述的設(shè)備,其中所述優(yōu)先權(quán)代表一期限。
28.根據(jù)權(quán)利要求26所述的設(shè)備,其進(jìn)一步包括用于從一關(guān)聯(lián)存取單元的一標(biāo)頭中提取一解碼時間標(biāo)志的構(gòu)件,其中所述解碼時間標(biāo)志用于獲得所述期限。
29.根據(jù)權(quán)利要求22所述的設(shè)備,其進(jìn)一步包括用于確定所述復(fù)數(shù)個數(shù)字流中的所述一個流的另一個子集與一個新的存取單元相關(guān)聯(lián)的構(gòu)件。
30.根據(jù)權(quán)利要求29所述的設(shè)備,其中用于確定所述另一個子集與所述新的存取單元相關(guān)聯(lián)的構(gòu)件進(jìn)一步包括用于調(diào)整與所述復(fù)數(shù)個數(shù)字流中的所述一個流相關(guān)聯(lián)的一優(yōu)先權(quán)的構(gòu)件。
31.根據(jù)權(quán)利要求30所述的設(shè)備,其進(jìn)一步包括響應(yīng)被接收作為第一個未處理的數(shù)據(jù)包的所述另一個子集的一數(shù)據(jù)包而調(diào)整所述優(yōu)先權(quán)的構(gòu)件。
32.根據(jù)權(quán)利要求22所述的設(shè)備,其進(jìn)一步包括用于維持與所述復(fù)數(shù)個數(shù)字流的每個流相關(guān)聯(lián)的一狀態(tài)的構(gòu)件。
33.根據(jù)權(quán)利要求32所述的設(shè)備,其中所述用于維持一狀態(tài)的構(gòu)件包括一用于存儲處理參數(shù)的存儲器。
34.根據(jù)權(quán)利要求32所述的設(shè)備,其中所述用于維持所述狀態(tài)的構(gòu)件包括用于存儲代表至少一個視頻幀的像素數(shù)據(jù)的存儲器。
35.根據(jù)權(quán)利要求34所述的設(shè)備,其進(jìn)一步包括用于將所述存儲器循環(huán)細(xì)分成多個四分體的構(gòu)件。
36.根據(jù)權(quán)利要求34所述的設(shè)備,其進(jìn)一步包括將所述存儲器劃分成多個頁的構(gòu)件,其中所述頁面中的每個頁是一固定大小的相鄰存儲單元。
37.根據(jù)權(quán)利要求36所述的設(shè)備,其進(jìn)一步包括用于管理存儲器的不使用頁的一自由表。
38.根據(jù)權(quán)利要求36所述的設(shè)備,其進(jìn)一步包括一用于將實(shí)際地址映射到頁面地址的轉(zhuǎn)換后備緩存器。
39.根據(jù)權(quán)利要求36所述的設(shè)備,其進(jìn)一步包括用于從存儲器中檢索頁且將數(shù)據(jù)合并成多個所請求大小的塊的構(gòu)件。
40.根據(jù)權(quán)利要求39所述的設(shè)備,其進(jìn)一步包括用于存儲從存儲器檢索的一個或一個以上頁的高速緩存器。
41.一種用于處理復(fù)數(shù)個數(shù)據(jù)流的方法,所述方法包括識別所述復(fù)數(shù)個數(shù)字流中的一單個流;將對應(yīng)于所述經(jīng)識別的單個流的一數(shù)據(jù)子集從一第一格式轉(zhuǎn)換成一第二格式;和對所述單個經(jīng)識別流的下一個數(shù)據(jù)子集進(jìn)行分類。
42.根據(jù)權(quán)利要求41所述的方法,其進(jìn)一步包括維持與所述復(fù)數(shù)個流中的每個流相關(guān)聯(lián)的一狀態(tài)。
43.根據(jù)權(quán)利要求42所述的方法,其中所述狀態(tài)包括代表一個或一個以上視頻、音頻和非A/V數(shù)據(jù)的數(shù)據(jù)。
44.一種調(diào)度復(fù)數(shù)個數(shù)據(jù)流的方法,所述方法包括對與第一個流相關(guān)聯(lián)的第一個數(shù)據(jù)子集進(jìn)行分類以區(qū)別所述數(shù)據(jù)子集和與第二個流相關(guān)聯(lián)的第二個數(shù)據(jù)子集;和僅選擇所述第一個數(shù)據(jù)子集用于在一第一時間間隔期間從一第一格式轉(zhuǎn)換成一第二格式。
45.根據(jù)權(quán)利要求44所述的方法,其進(jìn)一步包括在從所述第一格式轉(zhuǎn)換成所述第二格式期間不轉(zhuǎn)換所述復(fù)數(shù)個流的其它流。
46.根據(jù)權(quán)利要求45所述的方法,其進(jìn)一步包括在所述第一時間間隔期間維持與所述第二個子集相關(guān)聯(lián)的一狀態(tài),其中所述狀態(tài)包括代表一個或一個以上視頻、音頻和非A/V數(shù)據(jù)的數(shù)據(jù)。
47.根據(jù)權(quán)利要求46所述的方法,其中所述數(shù)據(jù)代表視頻且包括代表至少一個視頻幀的像素數(shù)據(jù)。
48.根據(jù)權(quán)利要求44所述的方法,其中對所述第一數(shù)據(jù)的子集進(jìn)行分類包括對所述第一和所述第二數(shù)據(jù)子集進(jìn)行優(yōu)先權(quán)排序;和分別使用一第一優(yōu)先權(quán)和一第二優(yōu)先權(quán)標(biāo)記所述第一和所述第二數(shù)據(jù)子集。
49.根據(jù)權(quán)利要求48所述的方法,其中所述第一優(yōu)先權(quán)和所述第二優(yōu)先權(quán)分別代表第一個流和第二個流的優(yōu)先權(quán)。
50.根據(jù)權(quán)利要求48所述的方法,其中所述第一優(yōu)先權(quán)與第一期限前的一第一持續(xù)時間相關(guān)聯(lián)且所述第二優(yōu)先權(quán)與第二期限前的一第二持續(xù)時間相關(guān)聯(lián),其中所述第一持續(xù)時間短于所述第二持續(xù)時間。
51.一種用于轉(zhuǎn)換復(fù)數(shù)個流中的每個流的設(shè)備,所述設(shè)備包括一分類器模塊,其配置成將指示一優(yōu)先權(quán)的一標(biāo)簽指派給所述復(fù)數(shù)個流中的每個流的每個數(shù)據(jù)包的數(shù)據(jù);一緩存器,其與所述復(fù)數(shù)個流的每個流相關(guān)聯(lián)且配置成存儲一標(biāo)簽子集;和一數(shù)據(jù)包調(diào)度程序模塊,其配置成僅選擇所述復(fù)數(shù)個流中的一個流用于在一第一時間間隔期間從一第一格式轉(zhuǎn)換成一第二格式。
52.根據(jù)權(quán)利要求51所述的設(shè)備,其中一幀的第一個數(shù)據(jù)包的優(yōu)先權(quán)低于所述復(fù)數(shù)個流中的一個流的所述幀的第二個數(shù)據(jù)包的優(yōu)先權(quán)。
53.根據(jù)權(quán)利要求51所述的設(shè)備,其進(jìn)一步包括一經(jīng)配置以存儲與一個或一個以上標(biāo)簽子集相關(guān)聯(lián)的相關(guān)優(yōu)先權(quán)的優(yōu)先權(quán)隊(duì)列模塊。
54.根據(jù)權(quán)利要求53所述的設(shè)備,其中所述優(yōu)先權(quán)隊(duì)列模塊經(jīng)配置以給所述數(shù)據(jù)包調(diào)度模塊提供一定范圍的優(yōu)先權(quán)以用于調(diào)度所述數(shù)據(jù)包的數(shù)據(jù)從所述第一格式轉(zhuǎn)換到所述第二格式。
全文摘要
本發(fā)明大致涉及處理具有共同資源的多個數(shù)據(jù)流(圖1)。更明確地說,本發(fā)明涉及一種用于時分多路復(fù)用處理(例如)多個數(shù)字視頻節(jié)目的技術(shù)。在一個實(shí)施例中,一種提供時分多路復(fù)用處理一組數(shù)字流(102)的例示性方法包括將每個接收到的數(shù)據(jù)包存儲在隨機(jī)存取存儲器(112)中。對于每個流來說,下一個數(shù)據(jù)包到達(dá)接收器的期限是確定的且基于所述期限指派優(yōu)先權(quán)。具有最高指派優(yōu)先權(quán)的流被識別為一已識別流。在某些實(shí)施例中,接著恢復(fù)已識別流的處理狀態(tài)。從隨機(jī)存取存儲器檢索對應(yīng)于已識別流的一個或一個以上數(shù)據(jù)包以產(chǎn)生已檢索數(shù)據(jù)包。在處理完已檢索數(shù)據(jù)包之后保存處理狀態(tài)。
文檔編號H04N5/00GK1717883SQ200380104411
公開日2006年1月4日 申請日期2003年11月26日 優(yōu)先權(quán)日2002年11月27日
發(fā)明者彼得·蒙塔, 愛德華·克勞斯, 亞當(dāng)·湯姆 申請人:Rgb網(wǎng)絡(luò)有限公司