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