專利名稱:流數(shù)據(jù)處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于對流數(shù)據(jù)進(jìn)行打包的技術(shù)以及用于對打包的流數(shù)據(jù)進(jìn)行解包的技術(shù)。
背景技術(shù):
MPEG-2節(jié)目流(PS)是通過對多個PES(打包的基本流)進(jìn)行多路復(fù)用而形成的,所述PES是由編碼的音頻或視頻數(shù)據(jù)組成的打包后的基本流(ES)。同樣地,通過對打包后的流數(shù)據(jù)進(jìn)行多路復(fù)用而形成了MPEG-1PS和MPEG-2傳輸流(TS)。通常,聚集或發(fā)送活動圖像流數(shù)據(jù)的操作是利用打包后的編碼流數(shù)據(jù)來執(zhí)行的。
圖8給出了用于對MPEG-2PS進(jìn)行編碼和解碼的傳統(tǒng)流數(shù)據(jù)處理器8的結(jié)構(gòu)。PES緩沖器811、包分解器812、ES緩沖器813、以及解碼器814具有輸入PES流數(shù)據(jù)(以下簡稱為PES數(shù)據(jù))并輸出由PES數(shù)據(jù)編碼得到的音頻或視頻數(shù)據(jù)這樣的功能。
PES緩沖器811是用于存儲PES數(shù)據(jù)的緩沖存儲器。將數(shù)據(jù)寫入到PES緩沖器811的操作是由用于從MPEG-2PS中分離出PES包的PES包信號分離器(DEMUX)等等來執(zhí)行的。包分解器812輸入來自PES緩沖器811的PES并且將通過從輸入數(shù)據(jù)中除去PES包報頭(以下簡稱為PES報頭)所獲得的ES流數(shù)據(jù)(以下簡稱為ES數(shù)據(jù))輸出到ES緩沖器813。包分解器812輸入來自PES緩沖器811的PES數(shù)據(jù)并且使PES數(shù)據(jù)移動一位,以便與用于表示PES包的起始位置的起始碼進(jìn)行比較,從而檢測PES包的開始。ES緩沖器813位于可獨立操作的包分解器812與解碼器814之間,并且是用于存儲ES數(shù)據(jù)的緩沖存儲器。解碼器814輸入來自ES緩沖器813的ES數(shù)據(jù)以對ES數(shù)據(jù)進(jìn)行解碼,并且輸出解碼的音頻或視頻數(shù)據(jù)。
另一方面,編碼器821、ES緩沖器822、打包器823、PES緩沖器824具有輸入音頻或視頻數(shù)據(jù)并輸出打包的PES數(shù)據(jù)這樣的功能。編碼器821輸入音頻或視頻數(shù)據(jù)并對其進(jìn)行編碼,且將該數(shù)據(jù)作為ES數(shù)據(jù)存儲到ES緩沖器822。ES緩沖器822位于可獨立操作的編碼器821與打包器823之間,并且是用于存儲ES數(shù)據(jù)的緩沖存儲器。打包器823輸入來自ES緩沖器822的ES數(shù)據(jù)、將PES報頭插入到PES包的邊界以產(chǎn)生PES數(shù)據(jù)、并且將所產(chǎn)生的PES數(shù)據(jù)輸出到PES緩沖器824。通過使ES緩沖器822所輸入的數(shù)據(jù)與嵌入在ES數(shù)據(jù)中的用于對報頭插入位置進(jìn)行定位的特定碼相匹配來確定插入PES報頭的位置。將存儲到PES緩沖器824的PES數(shù)據(jù)與其他PES數(shù)據(jù)一起多路復(fù)用,并將其輸出為MPEG-2PS。
已提議了利用上述流數(shù)據(jù)處理器來對流數(shù)據(jù)進(jìn)行有效打包或?qū)Υ虬牧鲾?shù)據(jù)進(jìn)行分解的技術(shù)(例如在公開號為No.11-317765的日本待審專利申請中公開的技術(shù))。
在公開號為No.11-317765的日本待審專利申請中公開了用于對流數(shù)據(jù)進(jìn)行編碼與打包的打包裝置。該打包裝置包括編碼裝置、流長度計算裝置、以及報頭添加裝置。編碼裝置輸入視頻或音頻數(shù)據(jù)并對其進(jìn)行編碼且輸出編碼的流數(shù)據(jù)。編碼裝置進(jìn)一步將用于表示包報頭插入位置的標(biāo)志位附加到流數(shù)據(jù)上。流長度計算裝置根據(jù)附加于編碼的流數(shù)據(jù)上的標(biāo)志位的值來識別包報頭插入位置,并且根據(jù)標(biāo)志位的間隔來計算流數(shù)據(jù)長度(即流長度)。此外,流長度計算裝置將所計算的流長度輸出到報頭添加裝置,并且將附著于編碼的流數(shù)據(jù)上的標(biāo)志位輸出到記錄介質(zhì)。報頭添加裝置從記錄介質(zhì)中讀取編碼的流數(shù)據(jù)并且將包報頭插入到該標(biāo)志位所定位的包報頭插入位置以便產(chǎn)生打包的流數(shù)據(jù)。通過參考流長度計算裝置所計算的流長度來產(chǎn)生要插入的包報頭。如前面所描述的,在公開號為No.11-317765的日本待審專利申請中公開的打包裝置輸出附著于流數(shù)據(jù)上的標(biāo)志位,并且通過該標(biāo)志位來識別報頭插入位置。這使得不再需要進(jìn)行匹配以檢測嵌入在流數(shù)據(jù)中的特定碼,從而使打包過程簡單化。
此外,公開號為No.2004-120632的日本待審專利申請公開了一種PES包信號分離器。該P(yáng)ES包信號分離器可有效地執(zhí)行要從MPEG-2PS中信號分離出流所必需的報頭分析。具體地說,信號分離器使所接收到的流數(shù)據(jù)與用于表示包起始位置的起始碼相匹配,所述包起始位置即報頭起始位置。此后,對用于分析包報頭以獲得包括有報頭長度、包長度、以及流ID的信息的起始時間進(jìn)行延遲,直到在檢測到起始碼之后完成了對指定字節(jié)的數(shù)據(jù)的接收。這可在將包括有報頭的主數(shù)據(jù)存儲到緩沖器的同時開始進(jìn)行分析。因此這可減少對緩沖器進(jìn)行存取的次數(shù)并且可提高分析過程的效率。在通過包報頭分析估計出包括PES包的數(shù)據(jù)是視頻流的情況下,將PES包存儲到視頻解碼器的PES緩沖器。當(dāng)估計出PES包是音頻流時,將PES包存儲到音頻解碼器的PES緩沖器。
公開號為No.11-317765及2004-120632的日本待審專利申請中所公開的流數(shù)據(jù)處理器8以及設(shè)備包括位于包分解器與解碼器之間的或者位于編碼器與打包器之間的緩沖存儲器(諸如ES緩沖器813和822)以便暫時存儲ES數(shù)據(jù)。
然而目前發(fā)現(xiàn),在包分解器與解碼器之間或者編碼器與打包器之間提供緩沖存儲器將引起存儲器存取次數(shù)增加,從而阻礙提高流數(shù)據(jù)處理器的處理能力。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的一方面,提供了這樣一種流數(shù)據(jù)處理器,該處理器包括緩沖器,用于存儲由多個包形成的流數(shù)據(jù);解碼器,用于從緩沖器中檢索流數(shù)據(jù)并且對該流數(shù)據(jù)進(jìn)行解碼;邊界檢測器,用于對流數(shù)據(jù)的包邊界進(jìn)行檢測;以及包處理器,用于對包括在流數(shù)據(jù)之內(nèi)的包報頭進(jìn)行分析。解碼器對邊界檢測器檢測到包邊界作出響應(yīng),以中止從緩沖器中檢索流數(shù)據(jù)。包處理器對邊界檢測器檢測到包邊界作出響應(yīng),以對包報頭進(jìn)行分析。此外,解碼器根據(jù)包處理器對包報頭的分析結(jié)果,恢復(fù)從緩沖器中檢索流數(shù)據(jù)。
在打包的流數(shù)據(jù)是遵照MPEG-2標(biāo)準(zhǔn)的PES數(shù)據(jù)的情況下,可連續(xù)地讀取PES數(shù)據(jù)并且直接對該P(yáng)ES數(shù)據(jù)進(jìn)行解碼,且當(dāng)讀取的數(shù)據(jù)到達(dá)包邊界時,中止檢索待解碼的PES數(shù)據(jù),以便執(zhí)行用于從PES數(shù)據(jù)中分離出PES報頭的包分析過程。在包分析過程之后,連續(xù)地讀取PES數(shù)據(jù)以直接對其進(jìn)行解碼。
與傳統(tǒng)技術(shù)相比,在本發(fā)明中并未將用于從PES數(shù)據(jù)中分離出PES報頭的包裝配過程與用于得到ES數(shù)據(jù)的解碼過程相分離,而是同時對這兩個過程進(jìn)行處理或?qū)ζ溥M(jìn)行集成。這使得不再需要在包分解器812與解碼器814之間提供ES緩沖器813以暫時存儲流數(shù)據(jù)。對ES緩沖器813的存取也不是必需的,從而提高了PES數(shù)據(jù)的包分解和解碼過程的效率。
根據(jù)本發(fā)明的另一方面,提供了這樣一種流數(shù)據(jù)處理器,該流數(shù)據(jù)處理器包括緩沖器,用于存儲由多個包形成的流數(shù)據(jù);執(zhí)行單元,用于執(zhí)行下述第一指令程序和第二指令程序,所述第一指令程序定義了從緩沖器中檢索流數(shù)據(jù)并對其進(jìn)行解碼的過程,所述第二指令程序定義了用于對包括在流數(shù)據(jù)之內(nèi)的包報頭進(jìn)行分析的過程;以及邊界檢測器,用于對從緩沖器所讀取的流數(shù)據(jù)的包邊界進(jìn)行檢測。邊界檢測器對檢測到包邊界作出響應(yīng),以產(chǎn)生對執(zhí)行單元的中斷請求。執(zhí)行單元對所述中斷請求作出響應(yīng),以從第一指令程序分支轉(zhuǎn)移到第二指令程序,并在完成了第二指令程序之后根據(jù)對包報頭的分析過程結(jié)果而恢復(fù)第一指令程序。
與傳統(tǒng)技術(shù)相比,本發(fā)明并未將用于從PES數(shù)據(jù)中分離出PES報頭的包裝配過程與用于得到ES數(shù)據(jù)的解碼過程相分離,而是可同時對這兩個過程進(jìn)行處理或?qū)ζ溥M(jìn)行集成。這使得不再需要在包分解過程與解碼過程之間提供緩沖存儲器,從而提高了PES數(shù)據(jù)的包分解和解碼過程的效率。
根據(jù)本發(fā)明的另一方面,提供了這樣一種流數(shù)據(jù)處理器,該流數(shù)據(jù)處理器包括緩沖器,用于存儲由多個包形成的流數(shù)據(jù);編碼器,用于將輸入信號編碼后的流數(shù)據(jù)輸出到緩沖器;包處理器,用于產(chǎn)生要插入到流數(shù)據(jù)的包報頭;以及邊界檢測器,用于檢測包報頭在流數(shù)據(jù)中的插入位置。編碼器對檢測到包報頭的插入位置作出響應(yīng),以中止將流數(shù)據(jù)輸出到緩沖器。包處理器對檢測到包報頭的插入位置作出響應(yīng),以將包報頭輸出到緩沖器。此外,在包處理器完成了輸出包報頭之后,編碼器恢復(fù)將流數(shù)據(jù)輸出到緩沖器。
在打包的流數(shù)據(jù)是遵照MPEG-2標(biāo)準(zhǔn)的PES數(shù)據(jù)的情況下,可連續(xù)地將輸入信號編碼成ES數(shù)據(jù)、將ES數(shù)據(jù)直接輸出到PES緩存器、并且當(dāng)輸出數(shù)據(jù)到達(dá)包邊緣時中止輸出ES數(shù)據(jù)以便將PES報頭寫入到PES緩存器。在PES報頭插入過程之后,連續(xù)地將ES數(shù)據(jù)直接輸出到PES緩存器。
與傳統(tǒng)技術(shù)相比,本發(fā)明并未將用于產(chǎn)生ES數(shù)據(jù)的編碼過程與用于將PES報頭插入到ES數(shù)據(jù)以獲得PES數(shù)據(jù)的打包過程相分離,而是可同步地處理這兩個過程或者對其進(jìn)行集成。這使得不再需要在編碼器821與打包器823之間提供ES緩存器822以臨時存儲流數(shù)據(jù)。此外還不必存取ES緩沖器822,從而提高了用于產(chǎn)生PES數(shù)據(jù)的編碼和打包過程的效率。
根據(jù)本發(fā)明的另一方面,提供了這樣一種流數(shù)據(jù)處理器,該流數(shù)據(jù)處理器包括緩沖器,用于存儲由多個包形成的流數(shù)據(jù);執(zhí)行單元,用于執(zhí)行下述第一指令程序和第二指令程序,所述第一指令程序定義了用于使流數(shù)據(jù)與編碼的輸入信號一起輸出到緩沖器的過程,所述第二指令程序定義了用于產(chǎn)生包報頭并將該包報頭插入到流數(shù)據(jù)中的過程;以及邊界檢測器,用于對包報頭插入到流數(shù)據(jù)中的插入位置進(jìn)行檢測。邊界檢測器對檢測到包報頭的插入位置作出響應(yīng),以產(chǎn)生對執(zhí)行單元的中斷請求。執(zhí)行單元對該中斷請求作出響應(yīng),以從第一指令程序分出轉(zhuǎn)移到第二指令程序,并在完成了第二指令程序之后恢復(fù)第一指令程序。
與傳統(tǒng)技術(shù)相比,本發(fā)明并未將用于產(chǎn)生ES數(shù)據(jù)的編碼過程與用于將PES報頭插入到ES數(shù)據(jù)以獲得PES數(shù)據(jù)的打包過程相分離,而是可同步地處理這兩個過程或者對其進(jìn)行集成。這使得不再需要在編碼過程與打包過程之間提供ES緩沖存儲器,從而提高了用于產(chǎn)生PES數(shù)據(jù)的編碼和打包過程的效率。
本發(fā)明在對打包的流數(shù)據(jù)的包進(jìn)行分解與解碼、或者進(jìn)行編碼與打包以產(chǎn)生打包的流數(shù)據(jù)的情況中,可防止由于緩沖存儲器存取所造成的處理效率惡化。
結(jié)合附圖從以下說明中可顯而易見的得知本發(fā)明的上述及其他目的、優(yōu)點、以及特征,在附圖中圖1給出了根據(jù)本發(fā)明的流數(shù)據(jù)處理器的功能方塊圖;圖2給出了根據(jù)本發(fā)明的流數(shù)據(jù)處理器的結(jié)構(gòu)示例;圖3給出了作為中斷處理的包分析操作的模式示意圖;圖4給出了根據(jù)本發(fā)明的數(shù)據(jù)處理器的操作流程圖;圖5給出了根據(jù)本發(fā)明的流數(shù)據(jù)處理器的功能方塊圖;圖6給出了根據(jù)本發(fā)明的數(shù)據(jù)處理器的操作流程圖;圖7給出了根據(jù)本發(fā)明的流數(shù)據(jù)處理器的功能方塊圖;以及圖8給出了根據(jù)傳統(tǒng)方法的流數(shù)據(jù)處理器的功能方塊圖。
具體實施例方式
現(xiàn)在在這里參考說明性實施例對本發(fā)明進(jìn)行描述。對于本領(lǐng)域普通技術(shù)人員來說可以明白的是利用本發(fā)明的教導(dǎo)可以實現(xiàn)許多替換實施例并且本發(fā)明并不局限于為了示意性目的所說明的實施例。
在附圖中,相同部件是由相同的參考數(shù)字來表示的,并且視情況而定省略對其的詳細(xì)說明。在下文中所描述的實施例包括流數(shù)據(jù)處理器,用于遵照MPEG-2標(biāo)準(zhǔn)對PES包進(jìn)行分解;以及流數(shù)據(jù)處理器,用于產(chǎn)生本發(fā)明所應(yīng)用的PES包。
第一實施例圖1給出了該實施例的流數(shù)據(jù)處理器1的功能方塊圖。流數(shù)據(jù)處理器1從用于將MPEG-2PS多路分離成多個PES數(shù)據(jù)的PES包多路分離器(未示出)輸入PES數(shù)據(jù),對PES包進(jìn)行分解與解碼,并且輸出解碼的音頻或視頻數(shù)據(jù)。
PES緩沖器11是用于存儲從外部PES包多路分離器等等輸入的PES數(shù)據(jù)的緩沖存儲器。解碼器12包括數(shù)據(jù)檢索器13和解碼單元14。數(shù)據(jù)檢索器13連續(xù)地從PES緩沖器11檢索出PES數(shù)據(jù)并且將所檢索的PES數(shù)據(jù)輸出到解碼單元14。解碼單元14遵照MPEG-2標(biāo)準(zhǔn)對從數(shù)據(jù)檢索器13輸入的數(shù)據(jù)進(jìn)行解碼并且輸出音頻或視頻數(shù)據(jù)。
數(shù)據(jù)檢索器13必須將不具有PES報頭的PES包的負(fù)載部分(其為ES數(shù)據(jù))輸出到解碼單元14。因此,流數(shù)據(jù)處理器1通過邊界檢測器15對PES包的負(fù)載的結(jié)束進(jìn)行檢測,同時數(shù)據(jù)檢索器13連續(xù)地從PES緩沖器11讀取PES數(shù)據(jù)。響應(yīng)于檢測結(jié)果,數(shù)據(jù)檢索器13中止將PES數(shù)據(jù)輸出到解碼單元14。因此數(shù)據(jù)檢索器13可僅將PES包的負(fù)載部分輸出到解碼單元14而留下PES報頭。
首先,數(shù)據(jù)檢索器13使PES計數(shù)器16的值遞增或遞減,以使該值與從PES緩沖器11中所獲得的PES數(shù)據(jù)的數(shù)據(jù)長度相對應(yīng)。邊界檢測器15對PES計數(shù)器16的值進(jìn)行監(jiān)控。當(dāng)PES計數(shù)器16到達(dá)指定值時,邊界檢測器15指示數(shù)據(jù)檢索器13以中止讀取PES數(shù)據(jù)。
具體地說,PES計數(shù)器16存儲與PES包的負(fù)載長度相對應(yīng)的值,以便從此開始讀取。然后,從開始檢索PES包的第一負(fù)載數(shù)據(jù)的時刻開始,數(shù)據(jù)檢索器13開始使PES計數(shù)器16的計數(shù)器值遞減。該操作根據(jù)PES計數(shù)器16的計數(shù)器值變?yōu)?,可以確定數(shù)據(jù)檢索器13完成了對于PES包的負(fù)載部分的讀取,并且已到達(dá)包的邊界。
當(dāng)邊界檢測器15確定出數(shù)據(jù)檢索器13在讀取PES數(shù)據(jù)時到達(dá)了PES包的邊界時,邊界檢測器15指示包分析器17執(zhí)行包分析。
包分析器17對PES報頭進(jìn)行分析以獲得PES包和報頭長度。包分析器17從數(shù)據(jù)檢索器13中止讀取數(shù)據(jù)的位置開始從PES緩沖器11讀取PES數(shù)據(jù),通過使該數(shù)據(jù)與起始碼相匹配來確定所讀取的數(shù)據(jù)是PES報頭,并且從所讀取的PES報頭中獲得與PES包長度和PES報頭有關(guān)的信息。此時可一起獲得包括有PTS(顯現(xiàn)時間戳)和DTS(譯碼時間戳)的其他PES報頭信息。
包分析器17根據(jù)PES包長度和報頭長度來計算PES包的負(fù)載大小并且將所計算的值設(shè)置到PES計數(shù)器16。包分析器17為數(shù)據(jù)檢索器13更新數(shù)據(jù)檢索器13的讀取地址以恢復(fù)從PES包的負(fù)載的起始位置起進(jìn)行讀取。例如使用于存儲數(shù)據(jù)檢索器13的讀取地址的寄存器(未示出)的值遞增,以使該值與PES報頭長度相對應(yīng)。
此后,包分析器17通知數(shù)據(jù)檢索器13以恢復(fù)讀取數(shù)據(jù)并且將該數(shù)據(jù)輸出到解碼單元14。這可使數(shù)據(jù)檢索器13僅將ES數(shù)據(jù)輸出到解碼單元14。
圖1所示的流數(shù)據(jù)處理器1是由下述處理器系統(tǒng)形成的,所述處理器系統(tǒng)具有用于執(zhí)行程序的處理器。圖2給出了由處理器系統(tǒng)所形成的流數(shù)據(jù)處理器1的示例的視圖。執(zhí)行單元101是從ROM104或RAM105取指令的處理器以執(zhí)行該指令。程序計數(shù)器102存儲執(zhí)行單元101所執(zhí)行的指令的地址。執(zhí)行單元101對程序計數(shù)器102的值進(jìn)行更新。在連續(xù)執(zhí)行指令時,通過與指令長度相對應(yīng)的值來更新程序計數(shù)器102的值。然而在出現(xiàn)中斷的情況下,通過中斷指令來非連續(xù)地更新程序計數(shù)器102的值。
通用寄存器103是用于執(zhí)行單元101中的操作的寄存器組。在圖2中,通用寄存器103的一部分用作PES計數(shù)器16。此外在圖2中,RAM105的一部分用作PES緩沖器11。提供通用寄存器13專用的寄存器來防止PES計數(shù)器16被突然更新,而不是將通用寄存器103的一部分分配為PES計數(shù)器16。
與數(shù)據(jù)檢索器13從PES緩沖器11讀取數(shù)據(jù)的處理相對應(yīng),只要不出現(xiàn)中斷,執(zhí)行單元101執(zhí)行用于連續(xù)執(zhí)行LOAD指令的程序。在執(zhí)行LOAD指令的同時,PES計數(shù)器16的值被遞減了所讀取數(shù)據(jù)的數(shù)據(jù)長度。邊界檢測器15對PES計數(shù)器16的值進(jìn)行監(jiān)控,并且當(dāng)該值變?yōu)?時將中斷請求發(fā)送到執(zhí)行單元101。已接收到中斷請求的執(zhí)行單元101分支轉(zhuǎn)移到用于執(zhí)行包分析的程序,所執(zhí)行的包分析是由包分析器17實施的。
圖3是一概念視圖,其示出了這樣的中斷處理在將包邊界檢測為中斷因素的同時,使執(zhí)行單元101的處理從數(shù)據(jù)檢索處理分支轉(zhuǎn)移到包分析處理。如圖3所示,當(dāng)邊界檢測器15在數(shù)據(jù)檢索處理之中連續(xù)地執(zhí)行LOAD指令的同時檢測到包邊界(邊界檢測301)時,邊界檢測器15產(chǎn)生中斷。執(zhí)行單元101響應(yīng)于該中斷而中止數(shù)據(jù)檢索處理,并且分支轉(zhuǎn)移到包分析處理。
在如上所述的分支轉(zhuǎn)移后的包分解處理中,對PES起始碼進(jìn)行檢測以得到PES報頭的起始位置,獲得諸如PES報頭長度和PES包長度這樣的PES報頭信息,并且將PES計數(shù)器16的值設(shè)置為PES包的負(fù)載長度。此外,將在回到數(shù)據(jù)檢索處理時由LOAD指令所參考的地址寄存器的值被遞增了與PES報頭長度相對應(yīng)的數(shù)據(jù)長度。例如,假定在移到包分析處理之前的地址寄存器的值是X,并且包括有起始碼的包報頭長度是64位。在這種情況下,地址寄存器的值被更新為X+64。在包分析處理之后,使程序計數(shù)器102、和除上述地址寄存器之外的通用寄存器103的值恢復(fù)為中止之前的值,并且回到數(shù)據(jù)檢索處理。
在圖2和3中,為了便于說明,簡化了解碼單元14的處理。解碼處理是由執(zhí)行單元101來執(zhí)行的。替換的,也可提供用于解碼的硬件。
如圖3所示,由下述處理器系統(tǒng)所形成的流數(shù)據(jù)處理器1執(zhí)行作為中斷處理的包分析處理,所述處理器系統(tǒng)響應(yīng)于邊界檢測器15檢測到包邊界,可產(chǎn)生對執(zhí)行單元101的中斷。這消除了執(zhí)行單元101要對包邊界進(jìn)行檢測的必要,從而減少了執(zhí)行單元101的負(fù)荷并且使數(shù)據(jù)檢索及其他處理的效率增加了。
圖4給出了流數(shù)據(jù)處理器1檢索PES數(shù)據(jù)并且對包進(jìn)行分解的處理的流程圖。在步驟S101對PES計數(shù)器16進(jìn)行初始化。初始化在這里表示邊界檢測器15將PES計數(shù)器16的值設(shè)置為被邊界檢測器15確定為PES包邊界的值。在以下說明中,與包邊界相對應(yīng)的PES計數(shù)器16的值是0,并且在初始化過程中將計數(shù)器值設(shè)置為0。因為在開始檢索PES數(shù)據(jù)時報頭分析器17必須識別PES報頭,因此對PES計數(shù)器16進(jìn)行初始化。通過對PES計數(shù)器16進(jìn)行初始化,可以無條件地執(zhí)行隨后的步驟S107和S108,以便通過對起始碼進(jìn)行檢測而得到PES報頭。
在步驟S102,確定是否發(fā)布用于執(zhí)行數(shù)據(jù)檢索器13的處理的指令,比如上述的LOAD指令(以下簡稱為數(shù)據(jù)檢索指令)。在發(fā)布數(shù)據(jù)檢索指令的情況下,執(zhí)行隨后步驟S102。
在步驟S103,估計PES計數(shù)器16的值是否該值為0。該估計與邊界檢測器15的處理相對應(yīng)。在估計出PES計數(shù)器16不是0的情況下,執(zhí)行步驟S104至S106。
在步驟S104中,從PES緩沖器11中讀取PES數(shù)據(jù)。應(yīng)按照諸如1比特或字節(jié)這樣的某個單位來讀取PES數(shù)據(jù)。在步驟S105,使PES計數(shù)器16的值與所讀取的PES數(shù)據(jù)的大小成比例的遞減。在步驟S106,估計是否已讀取了由數(shù)據(jù)檢索指令所規(guī)定的數(shù)據(jù)數(shù)目的數(shù)據(jù)。當(dāng)從PES緩沖器11讀取了規(guī)定數(shù)目的數(shù)據(jù)時,回到步驟S102。在未完成數(shù)據(jù)讀取的情況下,回到步驟S103。
在步驟S103中估計出PES計數(shù)器16的值是0的情況下,執(zhí)行步驟S107至S110。這些處理與包分析器17的處理相對應(yīng)。在步驟S107,對從PES緩沖器11所讀取的數(shù)據(jù)進(jìn)行估計,以與用于表示PES包的起始位置的起始碼相匹配。在該數(shù)據(jù)與起始碼不相匹配的情況下,從PES緩沖器11讀取下一位(步驟S108)并且重復(fù)與起始碼進(jìn)行匹配。當(dāng)檢測到起始碼時,從PES緩沖器11讀取與PES報頭相對應(yīng)的數(shù)據(jù),并且獲得包括有PES報頭長度和包長度的PES報頭信息(步驟S109)。在步驟S110,通過根據(jù)PES報頭長度和包長度所計算的PES包的負(fù)載長度,來更新計數(shù)器16的值。此后回到步驟S103。
如前面所描述的,該實施例的流數(shù)據(jù)處理器1連續(xù)地從PES緩沖器11讀取PES數(shù)據(jù)并且將該P(yáng)ES數(shù)據(jù)輸出到解碼單元14。在所讀取的PES數(shù)據(jù)是PES報頭的情況下,中止輸出到解碼單元14,并且通過包分析器17對PES報頭進(jìn)行分析。這使得能夠僅將不具有PES報頭的PES包的負(fù)載部分輸出到解碼單元14。
換句話說,在流數(shù)據(jù)處理器1中,解碼器12讀取PES數(shù)據(jù)的負(fù)載部分,并且通過使用在分析處理中由包分析器17所獲得的負(fù)載長度信息來對PES數(shù)據(jù)的負(fù)載部分進(jìn)行解碼。流數(shù)據(jù)處理器1的特征在于使報頭分析器17的報頭分析處理與解碼器12的解碼處理相關(guān)聯(lián)。這使得不再需要像在傳統(tǒng)流處理器8的包解裝器812與解碼器814之間提供ES緩沖器813那樣的為分離包解裝處理與解碼處理而要求的緩沖存儲器。因此該實施例的流數(shù)據(jù)處理器1不需對ES緩沖器進(jìn)行存儲器訪問,從而可提高PES數(shù)據(jù)的打包和解碼處理的效率。
流數(shù)據(jù)處理器1存儲根據(jù)包含在PES報頭之內(nèi)的PES包和報頭長度所計算的PES包的負(fù)載大小。流數(shù)據(jù)處理器1可通過用于讀取一個包的PES數(shù)據(jù)的數(shù)據(jù)檢索器13,來估計從PES緩沖器11所讀取的數(shù)據(jù)是否到達(dá)了PES包的邊界。換句話說,流數(shù)據(jù)處理器1根據(jù)從PES報頭中所獲得的PES包長度信息以及數(shù)據(jù)檢索器13所讀取的多個數(shù)據(jù),來對包邊界進(jìn)行檢測。這使得除了對PES數(shù)據(jù)進(jìn)行檢索并且識別出PES報頭的處理之外,不再需要為檢測分組邊界而與表示PES報頭的起始碼進(jìn)行匹配。因此可減小對包進(jìn)行分解所需的處理量。
第二實施例圖5給出了第二實施例的流數(shù)據(jù)處理器2的功能方塊圖。流數(shù)據(jù)處理器2輸入音頻或視頻數(shù)據(jù)并對其進(jìn)行編碼,對編碼的ES數(shù)據(jù)進(jìn)行打包,并且輸出PES數(shù)據(jù)。
編碼器21包括編碼單元22和數(shù)據(jù)寫入器23。編碼單元22輸入視頻或音頻數(shù)據(jù)并遵照MPEG-2標(biāo)準(zhǔn)對其進(jìn)行編碼。數(shù)據(jù)寫入器23輸入編碼單元22所編碼的ES數(shù)據(jù),并且按照諸如1比特或字節(jié)這樣的某個單位來將ES數(shù)據(jù)存儲到PES緩沖器24中。
需要數(shù)據(jù)寫入器23來將PES報頭插入到輸出給PES緩沖器24的ES數(shù)據(jù)中,并且將該數(shù)據(jù)作為PES數(shù)據(jù)存儲到PES緩沖器24中。流數(shù)據(jù)處理器2通過邊界檢測器25檢測定時,以將PES報頭插入到待存儲到PES緩沖器24中的數(shù)據(jù)中。響應(yīng)于該檢測結(jié)果,編碼單元22輸出的ES數(shù)據(jù)以及由數(shù)據(jù)寫入器23輸出到PES包緩沖器24的輸出被中止。
數(shù)據(jù)寫入器23使PES計數(shù)器26值遞減或遞增,以使該值與從編碼單元22接收到的ES數(shù)據(jù)的數(shù)據(jù)長度或者輸出到PES緩沖器24的數(shù)據(jù)長度相對應(yīng)。邊界檢測器25對PES計數(shù)器26的值進(jìn)行監(jiān)控。當(dāng)PES計數(shù)器26到達(dá)規(guī)定值時,編碼單元22和數(shù)據(jù)寫入器23的處理被中止。
具體地說,由數(shù)據(jù)寫入器23輸出到PES緩沖器24的PES包的負(fù)載大小被存儲到PES計數(shù)器26中。此后,每當(dāng)數(shù)據(jù)寫入器23開始寫入ES數(shù)據(jù)時,即每當(dāng)PES包的負(fù)載開始時,數(shù)據(jù)寫入器23開始使PES計數(shù)器26的值遞減。這使得能夠根據(jù)PES計數(shù)器26的值變?yōu)?,而確定數(shù)據(jù)寫入器23已完成了PES包的負(fù)載部分的寫入、并且已到達(dá)了用于插入PES報頭的包邊界。
當(dāng)邊界檢測器25確定出數(shù)據(jù)寫入器23在寫入數(shù)據(jù)的同時到達(dá)了PES包的邊界時,邊界檢測器25指示打包器27插入PES報頭。
響應(yīng)于邊界檢測器25的指令,打包器27指示數(shù)據(jù)寫入器23寫入PES報頭。包含在PES報頭之內(nèi)的PES包長度是由編碼單元22來計算的、或者是作為諸如用戶規(guī)定值這樣的規(guī)定值而提供的。編碼單元22計算諸如DTS和PTS這樣的信息。打包器27將PES負(fù)載大小設(shè)置到PES計數(shù)器26。
在上述處理完成之后,打包器27指示編碼單元22和數(shù)據(jù)寫入器23恢復(fù)處理。
圖6給出了流數(shù)據(jù)處理器2執(zhí)行的打包處理的流程圖。在步驟S201,對PES計數(shù)器26進(jìn)行初始化。初始化在這里表示將PES計數(shù)器26設(shè)置為被邊界檢測器15估計為PES包邊界的值。在以下說明中,與包邊界相對應(yīng)的PES計數(shù)器26的值是0,并且在初始化過程中將計數(shù)器值設(shè)置為0。在步驟S202,確定是否發(fā)布用于執(zhí)行數(shù)據(jù)寫入器23的處理的指令(以下簡稱為數(shù)據(jù)寫入指令)。在發(fā)布數(shù)據(jù)寫入指令的情況下,執(zhí)行隨后步驟S202。
在步驟S203,估計PES計數(shù)器26的值是否為0。該估計與邊界檢測器25的處理相對應(yīng)。在估計出PES計數(shù)器26不是0的情況下,執(zhí)行步驟S204至S206。
在步驟S204中,數(shù)據(jù)寫入器23將編碼單元22所產(chǎn)生的ES數(shù)據(jù)輸出到PES緩沖器24。應(yīng)按照諸如1比特或字節(jié)這樣的某個單位來寫入ES數(shù)據(jù)。在步驟S205,使PES計數(shù)器26的值與存儲到PES緩沖器24中的數(shù)據(jù)大小成比例地遞減。在步驟S206,估計是否已寫入由數(shù)據(jù)寫入指令所規(guī)定的數(shù)據(jù)數(shù)目的數(shù)據(jù)。當(dāng)規(guī)定數(shù)目的數(shù)據(jù)被寫入到PES緩沖器24中時,回到步驟S202。在未完成數(shù)據(jù)寫入的情況下,回到步驟S203。
在步驟S203估計出PES計數(shù)器26的值是0的情況下,執(zhí)行步驟S207至S208。這些處理與打包器27的處理相對應(yīng)。在步驟S207,將PES報頭輸出到PES緩沖器24。在步驟208,將PES計數(shù)器26的值設(shè)置為PES包的負(fù)載的數(shù)據(jù)長度,此后回到步驟S203。
該實施例的流數(shù)據(jù)處理器2連續(xù)地存儲編碼器21所編碼的ES數(shù)據(jù)。然而當(dāng)流數(shù)據(jù)處理器2根據(jù)寫入到PES緩沖器24的數(shù)據(jù)長度確定出插入PES包的時間時,編碼器21中止其處理,并且打包器25將PES報頭存儲到PES緩沖器24。
使編碼與打包處理相關(guān)聯(lián)可消除傳統(tǒng)流處理器8中的在編碼器821與打包器823之間提供ES緩沖器882的必要。這可降低存儲器存取次數(shù)并且可提高用于產(chǎn)生PES數(shù)據(jù)的編碼和打包處理的效率。
流數(shù)據(jù)處理器2存儲PES包的負(fù)載大小。是否已到達(dá)插入PES報頭的包邊界是通過進(jìn)行如下檢測確定的,即檢測數(shù)據(jù)寫入器23輸出了可存儲到一個包的負(fù)載中的ES數(shù)據(jù),或者編碼單元22產(chǎn)生了可存儲到一個包的負(fù)載中的ES數(shù)據(jù)。具體地說,流處理器2根據(jù)從編碼單元22等中所獲得的PES包信息以及數(shù)據(jù)寫入器23所寫入的數(shù)據(jù)長度來檢測包邊界。
這使得不再需要為檢測包邊界而與ES數(shù)據(jù)內(nèi)包含的特定碼進(jìn)行匹配、和得到PES報頭插入位置,從而降低了打包所需的處理量。此外,無需像公開號為No.11-317765的日本待審專利申請中所公開的打包裝置那樣將標(biāo)志位附加到ES數(shù)據(jù)上。因此,傳送標(biāo)志位的比特率未增加,并且不需要用于存儲該標(biāo)志位的存儲區(qū)。
此外,與流數(shù)據(jù)處理器1一樣,流數(shù)據(jù)處理器2是由處理器系統(tǒng)形成的。具體地說,響應(yīng)于邊界檢測器25檢測到包邊界,在執(zhí)行單元101中對編碼處理產(chǎn)生中斷,以執(zhí)行作為中斷處理的打包處理。這消除了執(zhí)行單元101要檢測包邊界的必要,從而降低了執(zhí)行單元101上的負(fù)荷并且提高了包括有數(shù)據(jù)寫入的編碼處理的效率。
第三實施例圖7給出了該實施例的流數(shù)據(jù)處理器3的功能方塊圖。流數(shù)據(jù)處理器3除了執(zhí)行第一實施例的流數(shù)據(jù)處理器1所執(zhí)行的用于對PES包的邊界進(jìn)行檢測的處理之外,還要執(zhí)行用于對另一邊界進(jìn)行檢測的處理。圖7給出了作為檢測另一邊界示例的用于檢測緩沖器邊界并且執(zhí)行緩沖器管理的結(jié)構(gòu)的視圖。
現(xiàn)有若干種緩沖器管理方法。在下文中描述了如下方法,其利用鏈接表來對多個有限長度緩沖器進(jìn)行管理,以便使它們作為一個PES緩沖器11來使用。在該鏈接表中,通過指針來鏈接有限長度的緩沖器。
緩沖計數(shù)器38存儲當(dāng)前處理的有限長度緩沖器的剩余數(shù)據(jù)。例如通過將緩沖計數(shù)器38的初始值規(guī)定為將要處理的可存儲到有限長度緩沖器中的數(shù)據(jù)的最大數(shù)目,可通過變?yōu)?的緩沖計數(shù)器38的值來估計出當(dāng)前有限長度緩沖器的端部已達(dá)到末端。因此,當(dāng)檢測到緩沖計數(shù)器38是0時,邊界檢測器35中止數(shù)據(jù)檢索器13的處理,并且指示緩沖器管理單元39執(zhí)行緩沖器管理。
緩沖器管理單元39對已達(dá)到其末端的有限長度緩沖器進(jìn)行存取并且讀取指向下一有限長度緩沖器的指針。將該指針存儲為有限長度緩沖器的最后數(shù)據(jù)。該指針指示出下一有限長度緩沖器的第一地址和可存儲的數(shù)據(jù)量。緩沖器管理單元39參考指針信息并且將可存儲到下一有限長度緩沖器中的數(shù)據(jù)數(shù)目設(shè)置到緩沖計數(shù)器38。此后,緩沖器管理單元39通知數(shù)據(jù)檢索器13以恢復(fù)讀取PES數(shù)據(jù)。
與上述流數(shù)據(jù)處理器1一樣,流數(shù)據(jù)處理器3是由處理器系統(tǒng)形成的。與包分析處理一樣,緩沖器管理單元39的處理可作為對數(shù)據(jù)檢索處理的中斷處理而執(zhí)行。可同時出現(xiàn)用于中斷緩沖器管理單元39的處理的中斷請求以及用于中斷包分析處理的中斷請求。在這種情況下,可應(yīng)用已知的多種中斷技術(shù)。具體地說,可以控制中斷,以便優(yōu)先進(jìn)行具有較高優(yōu)先級的處理。在該實施例中,使緩沖器管理單元39的處理優(yōu)先于包分析處理。
與上面所描述的一樣,在必須根據(jù)待處理的數(shù)據(jù)數(shù)目來執(zhí)行諸如包分解和緩沖器管理這樣的多個其他處理以便對多個其他處理進(jìn)行處理的情況下,流數(shù)據(jù)處理器3中止獲取PES數(shù)據(jù)。
在上述實施例中,將PES包和緩沖器的邊界表示為流數(shù)據(jù)的邊界。然而,也可通過邊界檢測器對其他數(shù)據(jù)位置進(jìn)行檢測。在對按照比特或字節(jié)等規(guī)定單位的流數(shù)據(jù)進(jìn)行處理的同時還需要依據(jù)處理的數(shù)目執(zhí)行其他處理的情況下,通過邊界檢測器來檢測要移到其他處理的數(shù)據(jù)位置。
上述實施例涉及用于處理MPEG-2PES數(shù)據(jù)的裝置。然而本發(fā)明并不局限于此,而是可廣泛用于對打包的流數(shù)據(jù)進(jìn)行處理。
很顯然的是本發(fā)明并不局限于上述實施例并且在不脫離本發(fā)明的范圍和精神的情況下可對其做出修改和變化。
權(quán)利要求
1.一種流數(shù)據(jù)處理器,包括緩沖器,用于存儲由多個包形成的流數(shù)據(jù);解碼器,用于從緩沖器中檢索流數(shù)據(jù)并且對該流數(shù)據(jù)進(jìn)行解碼;邊界檢測器,用于對流數(shù)據(jù)的包邊界進(jìn)行檢測;以及包處理器,用于對包括在流數(shù)據(jù)之內(nèi)的包報頭進(jìn)行分析,其中解碼器對檢測到包邊界作出響應(yīng),以中止從緩沖器中檢索流數(shù)據(jù),包處理器對檢測到包邊界作出響應(yīng),以對包報頭進(jìn)行分析,并且解碼器根據(jù)對包報頭的分析結(jié)果,恢復(fù)從緩沖器中檢索流數(shù)據(jù)。
2.根據(jù)權(quán)利要求1的流數(shù)據(jù)處理器,其中包處理器根據(jù)包括在包報頭之內(nèi)的信息來確定將由解碼器解碼的數(shù)據(jù)的數(shù)據(jù)長度,并且通過編碼器對從緩沖器所檢索的數(shù)據(jù)長度進(jìn)行計數(shù)并且確定計數(shù)值達(dá)到了所要編碼的數(shù)據(jù)長度,來執(zhí)行邊界檢測器對包邊界的檢測。
3.根據(jù)權(quán)利要求1的流數(shù)據(jù)處理器,其中包處理器對緩沖器的讀取地址進(jìn)行更新,以便解碼器在恢復(fù)檢索流數(shù)據(jù)的情況中跳過包報頭。
4.一種流數(shù)據(jù)處理器包括緩沖器,用于存儲由多個包形成的流數(shù)據(jù);執(zhí)行單元,用于執(zhí)行下述第一指令程序和第二指令程序,所述第一指令程序定義了用于從緩沖器中檢索流數(shù)據(jù)并對該流數(shù)據(jù)進(jìn)行解碼的過程,所述第二指令程序定義了用于對包括在流數(shù)據(jù)之內(nèi)的包報頭進(jìn)行分析的過程;以及邊界檢測器,用于對從緩沖器中讀出的流數(shù)據(jù)的包邊界進(jìn)行檢測,其中邊界檢測器對檢測到包邊界作出響應(yīng),以產(chǎn)生對執(zhí)行單元的中斷請求,執(zhí)行單元對所述中斷請求作出響應(yīng),以從第一指令程序分支轉(zhuǎn)移到第二指令程序,并在完成了第二指令程序之后根據(jù)對包報頭的分析過程的結(jié)果而恢復(fù)第一指令程序。
5.根據(jù)權(quán)利要求4的流數(shù)據(jù),其中在第二指令程序中所定義的包報頭的分析過程包括如下過程,該過程根據(jù)正被分析的包報頭的數(shù)據(jù)長度來對第一指令程序所參考的緩沖器的讀取地址進(jìn)行更新,以便在恢復(fù)第一指令程序所定義的解碼過程的情況中,跳過包報頭,從緩沖器中檢索數(shù)據(jù)。
6.一種流數(shù)據(jù)處理器包括緩沖器,用于存儲由多個包形成的流數(shù)據(jù);編碼器,用于將輸入信號編碼后的流數(shù)據(jù)輸出到緩沖器;包處理器,用于產(chǎn)生要插入到流數(shù)據(jù)的包報頭;以及邊界檢測器,用于檢測包報頭在流數(shù)據(jù)中的插入位置,其中編碼器對檢測到包報頭的插入位置作出響應(yīng),以中止將流數(shù)據(jù)輸出到緩沖器,包處理器對檢測到包報頭的插入位置作出響應(yīng),以將包報頭輸出到緩沖器,并且在包處理器完成了輸出包報頭之后,編碼器恢復(fù)將流數(shù)據(jù)輸出到緩沖器。
7.根據(jù)權(quán)利要求6的流數(shù)據(jù)處理器,其中包處理器根據(jù)從編碼器中所檢索的信息,確定在由包處理器插入的包報頭規(guī)定的一個包之內(nèi)所包含的流數(shù)據(jù)的數(shù)據(jù)長度,并且通過由編碼器對輸出到緩沖器的數(shù)據(jù)長度進(jìn)行計數(shù)并且估計計數(shù)值到達(dá)了包處理器所確定的流數(shù)據(jù)的數(shù)據(jù)長度,執(zhí)行邊界檢測器對包報頭插入位置的檢測。
8.一種流數(shù)據(jù)處理器包括緩沖器,用于存儲由多個包形成的流數(shù)據(jù);執(zhí)行單元,用于執(zhí)行下述第一指令程序和第二指令程序,所述第一指令程序定義了用于將輸入信號編碼后的流數(shù)據(jù)輸出到緩沖器的過程,所述第二指令程序定義了用于產(chǎn)生包報頭并將該包報頭插入到流數(shù)據(jù)中的過程;以及邊界檢測器,用于對包報頭插入到流數(shù)據(jù)中的插入位置進(jìn)行檢測,其中邊界檢測器對檢測到包報頭的插入位置作出響應(yīng),以產(chǎn)生對執(zhí)行單元的中斷請求,并且執(zhí)行單元對所述中斷請求作出響應(yīng),以從第一指令程序分支轉(zhuǎn)移到第二指令程序,并在完成了第二指令程序之后恢復(fù)第一指令程序。
全文摘要
一種處理器包括緩沖器,用于存儲PES數(shù)據(jù);解碼器,用于從PES緩沖器中檢索PES數(shù)據(jù)并且對該P(yáng)ES數(shù)據(jù)進(jìn)行解碼;邊界檢測器,用于對PES數(shù)據(jù)的PES包的包邊界進(jìn)行檢測;以及包分析器,用于對包括在流數(shù)據(jù)之內(nèi)的PES包報頭進(jìn)行分析。包分析器對包報頭進(jìn)行分析以響應(yīng)檢測到包邊界。解碼器中止從PES緩沖器中檢索PES數(shù)據(jù)以響應(yīng)邊界檢測器檢測到包邊界。此外,解碼器根據(jù)包分析器對包報頭的分析結(jié)果而恢復(fù)從PES緩沖器中檢索PES數(shù)據(jù)。
文檔編號H04N7/24GK1960335SQ20061013569
公開日2007年5月9日 申請日期2006年10月23日 優(yōu)先權(quán)日2005年10月31日
發(fā)明者中村武治 申請人:恩益禧電子股份有限公司