專利名稱::Pcmciampeg碼流發(fā)生、分析、記錄、方法及設(shè)備的制作方法技述領(lǐng)域本發(fā)明涉及一種數(shù)字電視視廣播中對傳輸碼流的發(fā)生、分析、記錄方法及其相應(yīng)的設(shè)備。本發(fā)明包括硬件和軟件,硬件制成分析儀器,硬件包括碼流輸入控制及處理設(shè)備,PCMCIA接口硬件,軟件采用獨(dú)立的三個軟件層次應(yīng)用軟件、支持軟件和驅(qū)動程序,驅(qū)動程序完成與硬件控制及操作系統(tǒng)相關(guān)工作,支持軟件用于聯(lián)系應(yīng)用軟件和驅(qū)動程序,屏蔽硬件細(xì)節(jié),為應(yīng)用軟件提供數(shù)據(jù),分析進(jìn)程管理,提供訪問硬件的接口函數(shù),進(jìn)行數(shù)據(jù)整理,應(yīng)用軟件完成用戶輸入的處理,按用戶要求對取得的數(shù)據(jù)進(jìn)行分析、統(tǒng)計(jì)、顯示。所述硬件包括輸入模塊,時鐘信息記錄模塊,輸入分析與控制模塊,輸入緩存及控制模塊,輸出緩存及控制模塊,輸出處理與控制模塊,輸出模塊,時鐘處理與控制模塊、PCI狀態(tài)控制模塊,寄存器及控制模塊,數(shù)據(jù)傳輸控制模塊,中斷控制模塊,計(jì)算機(jī)接口模塊,電源控制模塊,初始化及編程模塊,其中輸入模塊,完成輸入信號格式的轉(zhuǎn)換。輸入信號是ASI格式。ASI接口是串行270M的信號,接口電路完成信號耦合與整形,采用一個ASIC完成比特時鐘恢復(fù),線路解碼及10比特/8比特轉(zhuǎn)換,將其轉(zhuǎn)換成并行信號。時鐘信息模塊,負(fù)責(zé)監(jiān)視和記錄PCR時鐘值。PCR是MPEG碼流中系統(tǒng)時鐘基準(zhǔn),它的精確度與抖動對數(shù)字視頻系統(tǒng)的影響較大,因此對它的分析必須準(zhǔn)確,這就要求對它的記錄也要即時、準(zhǔn)確。時間信息寄存器寄存上述的時間信息,并在適當(dāng)時間通過計(jì)算機(jī)接口提供給軟件進(jìn)行分析處理。輸入分析與控制模塊,控制輸入芯片的參數(shù)及操作,接收從輸入模塊進(jìn)來的數(shù)據(jù),根據(jù)其中控制信號對碼流進(jìn)行分析,并向輸入緩沖器寫入數(shù)據(jù)。輸入緩沖及控制模塊,對數(shù)據(jù)進(jìn)行緩存,為簡化電路,緩存器采用FPGA內(nèi)部的塊RAM實(shí)現(xiàn)。模塊還負(fù)責(zé)檢查緩沖器的充滿程度,給出相應(yīng)的指示信號。再結(jié)合數(shù)據(jù)傳輸控制部分的指示將輸入碼流數(shù)據(jù)經(jīng)PCMCIA接口傳給軟件進(jìn)行分析和處理。輸出緩沖及控制模塊,對輸出數(shù)據(jù)進(jìn)行緩存,這里的緩存器也采用FPGA內(nèi)部的塊RAM實(shí)現(xiàn)。模塊還負(fù)責(zé)檢查緩沖器的充滿程度,給出相應(yīng)的指示信號。再結(jié)合數(shù)據(jù)傳輸控制部分的指示經(jīng)PCMCIA接口從軟件取得輸出碼流數(shù)據(jù)。輸出處理與控制模塊,控制輸出芯片的參數(shù)及操作,根據(jù)標(biāo)準(zhǔn)參考時鐘及綜合出來的輸出時鐘,從緩沖器中取數(shù)據(jù)發(fā)給輸出芯片,同時插入一些填充數(shù)據(jù)以保持輸出的線上速率。輸出模塊,完成輸出信號格式的轉(zhuǎn)換。這里采用了一個ASIC做碼流數(shù)據(jù)到ASI信號的編碼,輸出270M的串行信號,此外還有部分電路完成ASI信號的驅(qū)動及耦合輸出等。時鐘處理與控制模塊,完成兩個部分的任務(wù)一是完成參考時鐘的整形與生成,主要是根據(jù)一個108M的時鐘源生成27M的系統(tǒng)時鐘;二是將108M時鐘進(jìn)行頻率合成,生成輸出信號所需要的字節(jié)輸出時鐘,以生成所需的各種不同碼率的碼流。PCI狀態(tài)控制模塊,主要完成PCMCIA接口中PCI規(guī)范,實(shí)現(xiàn)PCI的功能與控制。PCI規(guī)范是比較復(fù)雜的,它的狀態(tài)控制也比較復(fù)雜,這里包括PCI接口空間的控制、命令的解釋、地址與數(shù)據(jù)的選擇、數(shù)據(jù)傳輸過程及狀態(tài)的控制等。寄存器及控制模塊,寄存器是硬件中提供控制參數(shù)及硬件信息的主要手段,在PCI規(guī)范中,寄存器是空間中的一個重要的組成部分。它的控制主要包括地址解析、數(shù)據(jù)讀寫、初始化、參數(shù)對其它模塊的控制等。數(shù)據(jù)傳輸控制模塊,主要完成的任務(wù)有判斷并發(fā)起數(shù)據(jù)PCI傳輸過程,通知相應(yīng)的硬件及緩沖器對此進(jìn)行準(zhǔn)備,控制相應(yīng)的PCI硬件進(jìn)行正確的地址數(shù)據(jù)選擇,選擇正確的緩沖器及找到相應(yīng)的地址,確認(rèn)任務(wù)的完成,結(jié)束傳輸過程等。中斷控制模塊,根據(jù)輸入數(shù)據(jù)傳輸與輸出數(shù)據(jù)傳輸?shù)拇螖?shù)及相關(guān)的控制寄存器的參數(shù),在完成一定的數(shù)據(jù)傳輸后產(chǎn)生中斷,通知計(jì)算機(jī)中相關(guān)軟件對數(shù)據(jù)進(jìn)行記錄分析處理或準(zhǔn)備并提供新數(shù)據(jù)。計(jì)算機(jī)接口模塊,主要完成與計(jì)算機(jī)的直接連接的緩沖,保證計(jì)算機(jī)接口部分的電氣性能符合規(guī)范要求。電源控制模塊,主要完成的有從PCMCIA的單一電源轉(zhuǎn)換出各種芯片要求的其它直流電源,這其中包括升壓電路和降壓電路。此外,還要完成節(jié)電所需要的電源控制,在有些情況下切斷某些部分電路的電源。初始化及編程模塊,這一部分是FPGA所必需的初始化電路,它在上電時將FPGA所需要的相關(guān)設(shè)置信息載入到FPGA的配置空間中,使FPGA能夠?qū)崿F(xiàn)所要求的功能。所述驅(qū)動程序的工作步聚是與操作系統(tǒng)相配合完成硬件初始化,設(shè)備建立,中斷、輸入輸出口和緩沖器各資源的分配,使硬件成為操作系統(tǒng)可訪問的設(shè)備,并對支持程序和應(yīng)用程序可見,操作系統(tǒng)在發(fā)現(xiàn)硬件并開始啟動驅(qū)動程序后,工作步聚是1.首先是對硬件進(jìn)行初始化,分配資源和完成系統(tǒng)控制結(jié)構(gòu)。2.接下來是進(jìn)行緩沖器的分配,分配用于分析和發(fā)生的緩沖器。3.此后驅(qū)動程序駐留的部分等待支持程序發(fā)來的命令。4.收到命令后對其進(jìn)行解釋,并分解成對硬件的訪問操作。5.根據(jù)分解出的訪問操作要求通過PCMCIA接口對硬件進(jìn)行訪問。在初始化完成后,驅(qū)動程序還駐留了另一部分,即中斷響應(yīng)程序1.收到中斷響應(yīng)激活相應(yīng)的中斷響應(yīng)程序。2.由于PCI規(guī)范采用共享中斷,首先需要判斷中斷的來源。3.如果是這里的設(shè)備產(chǎn)生的中斷,則檢查緩沖器的狀態(tài)。4.若緩沖器已經(jīng)得到數(shù)據(jù)或需要新的數(shù)據(jù),則對緩沖器的狀態(tài)進(jìn)行調(diào)整。6.然后向支持軟件發(fā)出緩沖器需要處理的請求,由支持程序處理得到的數(shù)據(jù)或提供新數(shù)據(jù)。支持軟件包括發(fā)生控制模塊、發(fā)生文件處理進(jìn)程模塊、發(fā)生數(shù)據(jù)處理進(jìn)程模塊、分析控制模塊、記錄文件處理進(jìn)程模塊、分析數(shù)據(jù)處理進(jìn)程模塊、硬件參數(shù)設(shè)置與獲取模塊,各模塊工作步聚如下發(fā)生控制模塊1.初始化軟、硬件參數(shù),為發(fā)生碼流的操作做準(zhǔn)備。2.分配發(fā)生用的緩沖器,發(fā)生碼流需要較大的緩沖器以保證碼流的連續(xù)。3.設(shè)定硬件的參數(shù),開始發(fā)生碼流的硬件動作。4.生成發(fā)生文件處理的進(jìn)程,它將按要求從文件中取得發(fā)生所需要的原始數(shù)據(jù)。5.生成發(fā)生數(shù)據(jù)處理的進(jìn)程,它將對從文件中取得的數(shù)據(jù)進(jìn)行處理,確保最后發(fā)出的碼流符合用戶需要。發(fā)生文件處理模塊1.對輸出碼流數(shù)據(jù)的文件進(jìn)行初始化,獲得文件的信息,并打開文件。2.初始化文件處理緩沖器,文件讀寫的速度與碼流處理的速度不能完全配合,所以這里需要文件處理緩沖器。3.此后進(jìn)行進(jìn)入實(shí)際操作循環(huán),等待來自驅(qū)動程序的讀取文件的請求。4.接收到讀取文件的請求后,首先檢查緩沖器,確認(rèn)緩沖器的狀態(tài)正確。5.然后開始文件操作,將數(shù)據(jù)從文件中讀到文件處理緩沖器中。6.讀完數(shù)據(jù)后修改緩沖器狀態(tài),通知其它程序可以使用該緩沖器。發(fā)生數(shù)據(jù)處理模塊1.進(jìn)程開始后等待來自驅(qū)動程序的數(shù)據(jù)處理請求。2.首先對緩沖器進(jìn)行整理,從文件處理緩沖器將數(shù)據(jù)移動到數(shù)據(jù)處理緩沖器中,然后改變文件處理緩沖器和數(shù)據(jù)處理緩沖器的狀態(tài)。3.需要填充文件處理緩沖器時發(fā)出讀取文件的請求。4.需要對所取得的碼流數(shù)據(jù)進(jìn)一步處理修改時調(diào)用應(yīng)用程序回調(diào)函數(shù)進(jìn)行處理。5.將處理好的碼流數(shù)據(jù)提供給驅(qū)動程序,該緩沖器中的碼流將在驅(qū)動程序中通過硬件接口傳到硬件中并發(fā)出。分析控制模塊1.初始化軟、硬件參數(shù),為碼流的輸入緩存及分析操作做準(zhǔn)備。2.分配分析用的緩沖器,分析碼流需要較大的緩沖器以緩沖碼流平滑分析過程。3.設(shè)定硬件的參數(shù),開始分析碼流的硬件動作。4.生成記錄文件處理的進(jìn)程,它將按要求將所需要的碼流數(shù)據(jù)記錄到文件中。5.生成分析數(shù)據(jù)處理的進(jìn)程,它將對從輸入緩沖器取得的數(shù)據(jù)進(jìn)行處理,并調(diào)用應(yīng)用回調(diào)函數(shù)進(jìn)行詳細(xì)的分析處理。記錄文件處理模塊1.對記錄碼流數(shù)據(jù)的文件進(jìn)行初始化,獲得文件的信息,并打開文件。2.初始化文件處理緩沖器,文件讀寫的速度與碼流處理的速度不能完全配合,所以這里需要文件處理緩沖器。3.此后進(jìn)行進(jìn)入實(shí)際操作循環(huán),等待來自驅(qū)動程序的記錄文件的請求。4.接收到記錄文件的請求后,首先檢查緩沖器,確認(rèn)緩沖器的狀態(tài)正確。5.然后開始文件操作,將數(shù)據(jù)從文件處理緩沖器中寫到文件中。6.寫完數(shù)據(jù)后修改緩沖器狀態(tài),通知其它程序可以使用該緩沖器。分析數(shù)據(jù)處理模塊1.進(jìn)程開始后等待來自驅(qū)動程序的數(shù)據(jù)處理請求。2.首先對緩沖器進(jìn)行整理,從數(shù)據(jù)處理緩沖器將數(shù)據(jù)移動到文件處理緩沖器中,然后改變文件處理緩沖器和數(shù)據(jù)處理緩沖器的狀態(tài)。3.需要將文件處理緩沖器中數(shù)據(jù)記錄時發(fā)出寫文件的請求。4.需要對碼流數(shù)據(jù)進(jìn)一步分析處理,調(diào)用應(yīng)用程序回調(diào)函數(shù)進(jìn)行處理。5.最后整理緩沖器,將處理過的緩沖器清理掉,用于新數(shù)據(jù)的緩沖。硬件參數(shù)設(shè)置獲取模塊1.首先對應(yīng)用調(diào)用的功能和要求進(jìn)行分析。2.根據(jù)所需的功能計(jì)算相關(guān)的參數(shù)。3.選擇與要求功能相關(guān)的寄存器。4.根據(jù)參數(shù)和相關(guān)寄存器的特性計(jì)算寄存器的相應(yīng)值。5.打開設(shè)備,準(zhǔn)備進(jìn)行硬件操作。6.調(diào)用驅(qū)動程序進(jìn)行寄存器的讀寫。7.返回讀取的寄存器值。8.根據(jù)寄存器值計(jì)算需要了解的信息參數(shù)值應(yīng)用軟件包括MPEG碼流實(shí)時分析、記錄軟件和MPEG碼流離線分析軟件,其中MPEG碼流實(shí)時分析、記錄軟件首先通過底層硬件模塊得到系統(tǒng)控制權(quán),然后啟動程序視圖,創(chuàng)建各功能頁面,程序視圖框架包括工具欄和菜單欄、樹型結(jié)構(gòu)框架、實(shí)時分析框架、PCR分析框架、節(jié)目分析框架、表格分析框架、Buffer分析框架、硬件分析框架、碼流記錄框架、碼流發(fā)生框架;其中系統(tǒng)設(shè)置模塊程序的工作步聚是(1).系統(tǒng)設(shè)置模塊在啟動后,首先創(chuàng)建設(shè)置對話框;(2).讀取系統(tǒng)的當(dāng)前設(shè)置參數(shù)并顯示;(3).用戶可以在各個設(shè)置按鈕上選擇符合自己要求的選項(xiàng)(也可只是查看,不作選擇);(4).在完成(3)步驟后,用戶選擇是否同意現(xiàn)有的參數(shù)設(shè)置,如果不同意則詢問是否退出系統(tǒng)參數(shù)設(shè)置,如果不退出則返回步驟(3),否則退出設(shè)置;(5).如果在步驟(4)中選擇同意現(xiàn)有的參數(shù)設(shè)置,則將設(shè)置參數(shù)輸入系統(tǒng)核心模塊,并退出系統(tǒng)設(shè)置。MPEG碼流離線分析軟件,首先通過底層硬件模塊得到系統(tǒng)控制權(quán),然后啟動程序視圖,創(chuàng)建各功能頁面,程序視圖框架包括工具欄和菜單欄、樹型結(jié)構(gòu)框架、綜合分析框架、PCR分析框架、節(jié)目分析框架、表格分析框架、視頻分析框架。進(jìn)入實(shí)時分析時調(diào)用系統(tǒng)核心模塊,其工作步聚是1.啟動系統(tǒng)核心模塊,開始等待底層硬件模塊的中斷調(diào)用;2.啟動底層硬件模塊,底層硬件模塊從輸入信號線上捕獲碼流數(shù)據(jù)填充入系統(tǒng)內(nèi)存的緩沖器1中,當(dāng)緩沖器1中的數(shù)據(jù)填滿后,產(chǎn)生系統(tǒng)中斷,調(diào)用系統(tǒng)核心模塊中的中斷響應(yīng)函數(shù),并將緩沖器的地址、緩沖器的大小和硬件時鐘傳給中斷響應(yīng)函數(shù)。完成以上步驟后,底層硬件模塊繼續(xù)捕捉碼流數(shù)據(jù),并填充入系統(tǒng)內(nèi)存緩沖器2中,當(dāng)緩沖器2的數(shù)據(jù)填滿后,產(chǎn)生系統(tǒng)中斷,調(diào)用系統(tǒng)核心模塊的中斷響應(yīng)函數(shù),重復(fù)步驟2直到分析系統(tǒng)發(fā)出停止分析的控制命令;3.系統(tǒng)核心模塊在收到底層硬件模塊的中斷調(diào)用后,運(yùn)行中斷響應(yīng)函數(shù)。中斷響應(yīng)函數(shù)得到碼流數(shù)據(jù)的內(nèi)存指針、碼流數(shù)據(jù)塊的大小和系統(tǒng)硬件的時鐘信息。首先通過碼流數(shù)據(jù)的大小計(jì)算碼流數(shù)據(jù)的包數(shù)和每個數(shù)據(jù)包的包長;按包數(shù)分別對每個數(shù)據(jù)包進(jìn)行分析;4.在MPEG的傳輸流中有許多特殊的服務(wù)信息表格,他們以包數(shù)據(jù)的形式發(fā)布在數(shù)據(jù)流中。其中的PAT表格(Programassociationtable節(jié)目關(guān)聯(lián)表)是產(chǎn)生整個碼流結(jié)構(gòu)的關(guān)鍵表格。在步驟3中,一旦出現(xiàn)PAT表的數(shù)據(jù)包,即刻進(jìn)入PAT表格分析過程。5.在步驟3中,對每個數(shù)據(jù)包進(jìn)行分析前先檢查數(shù)據(jù)包的第一個字節(jié)是否為同步字節(jié)0×47。若不是,表明該數(shù)據(jù)包可能出現(xiàn)數(shù)據(jù)錯誤或是數(shù)據(jù)沒有同步。將錯誤信息送入錯誤處理模塊,并進(jìn)行下一個數(shù)據(jù)包的分析;以上步驟完成后,檢查數(shù)據(jù)包中的第二個字節(jié)的最高位(傳輸錯誤標(biāo)志位),若為“1”則表示數(shù)據(jù)包中存在無法糾正的傳輸錯誤,將錯誤信息送入錯誤處理模塊,并進(jìn)行下一個數(shù)據(jù)包的分析;以上步驟完成后,檢查數(shù)據(jù)包中的第四個字節(jié)的后4位(包連續(xù)計(jì)數(shù)位)是否是上一個相同PID包的連續(xù)計(jì)數(shù)+1(0×f+1=0),若不是,則在碼流中可能出現(xiàn)數(shù)據(jù)丟失或重復(fù),將錯誤信息送入錯誤處理模塊,并進(jìn)行下一個數(shù)據(jù)包的分析;6.在完成步驟5后,對每個數(shù)據(jù)包的包頭數(shù)據(jù)進(jìn)行分析,檢查是否存在節(jié)目的時鐘信息。若有時鐘信息,則查找該數(shù)據(jù)包對應(yīng)的節(jié)目號,根據(jù)節(jié)目號取得上一次的時鐘信息,再從硬件的時鐘信息中查找對應(yīng)的時鐘信息,計(jì)算出PCR時鐘的間隔值和精度值;將計(jì)算結(jié)果送入FIFO(先進(jìn)先出的緩沖器)中,判斷其間隔值和精度值是否超出了標(biāo)準(zhǔn)允許的范圍。若超出范圍,則將錯誤信息送入錯誤信息處理模塊;7.在完成步驟6后,將每個數(shù)據(jù)包的包頭中的PID(PacketID13比特)取出,根據(jù)標(biāo)準(zhǔn)分析包數(shù)據(jù)的屬性;8.在步驟7中,若包的PID屬于服務(wù)信息表中的一種(PSI-SI表格),則取出數(shù)據(jù)包中的表格識別碼(TableID),根據(jù)TableID分別進(jìn)行不同表格的分析。其中若出現(xiàn)PAT表,則執(zhí)行所述的步驟4,并刷新碼流結(jié)構(gòu);9.在步驟7中,若包的PID屬于音/視頻流數(shù)據(jù),則查找該音/視頻數(shù)據(jù)屬于哪套節(jié)目,并從數(shù)據(jù)包中將音/視頻的屬性取出,放入對應(yīng)的節(jié)目屬性的數(shù)據(jù)結(jié)構(gòu)中;10.在步驟7中,若包的PID不屬于任何標(biāo)準(zhǔn)所規(guī)定的PID并且不屬于任何節(jié)目中的數(shù)據(jù)流,則將該P(yáng)ID的數(shù)據(jù)包認(rèn)為是碼流未指定的PID,將其列入未指定PID列表中,并將錯誤信息送入錯誤信息處理模塊;11.在步驟1中,一旦底層硬件模塊被啟動,系統(tǒng)將定時向硬件申請當(dāng)前的硬件信息數(shù)據(jù),并將得到的硬件信息送入硬件信息分析模塊,將硬件信息顯示給用戶。進(jìn)入系統(tǒng)后,點(diǎn)擊“碼流記錄”,進(jìn)入碼流記錄前的設(shè)置,包括記錄文件的路徑和文件名、記錄長度(按包數(shù))、是否進(jìn)行碼流的PID過濾、PID過濾的設(shè)置,記錄碼流的工作步聚是1,用戶輸入要記錄的文件路徑和文件名,或使用文件瀏覽器選擇路徑和文件名;2,由戶輸入要記錄的碼流包數(shù)(如輸入為“0”,則連續(xù)記錄,直到用戶手動停止)和選擇是否進(jìn)行碼流記錄過濾;3,用戶點(diǎn)擊工具欄上“碼流記錄”,系統(tǒng)將要記錄的碼流文件名和和記錄參數(shù)送入底層硬件模塊,并向底層硬件模塊發(fā)送開始記錄的控制命令,系統(tǒng)開始記錄碼流;4,在完成步聚1、2、3后,若用戶在第2步聚中輸入的記錄包數(shù)為“0”,則由用戶點(diǎn)擊工具欄上“碼流記錄”,系統(tǒng)向底層硬件模塊發(fā)送停止記錄命令,系統(tǒng)停止碼流記錄,否則,碼流記錄到用戶輸入的包數(shù)時,底層硬件模塊自動停止碼流記錄過程;5,如果在步聚2中用戶選擇了碼流過濾,則由用戶在碼流記錄設(shè)置中選擇要過濾的PID或要存儲的PID;6,在步聚5中,若用戶不知道輸入源中存在哪些PID,則可通過“掃描輸入”按扭取得輸入源的PID列表,供用戶選擇。進(jìn)入系統(tǒng)后,點(diǎn)擊“碼流發(fā)生”,進(jìn)入碼流發(fā)生前的設(shè)置,包括發(fā)生的文件路徑和文件名、發(fā)生碼率、發(fā)生包長、發(fā)生的有效包長,發(fā)生時的接口屬性,發(fā)生位置,碼流發(fā)生的步聚1,用戶輸入要發(fā)生的碼流文件路徑和文件名,或使用瀏覽器選擇文件;2,系統(tǒng)核心模塊分析碼流文件,恢復(fù)文件的時鐘;3,由用戶完成碼流發(fā)生的各項(xiàng)設(shè)置;4,將要發(fā)生的碼流文件名,發(fā)生參數(shù)送入底層硬件模塊;5,完成步聚集1-4后,由用戶點(diǎn)擊工具欄上的“碼流發(fā)生”,系統(tǒng)向底層硬件模塊發(fā)送開始發(fā)生的命令,系統(tǒng)發(fā)生碼流;6,在步聚5后,若用戶點(diǎn)擊工具欄上的“碼流發(fā)生”,系統(tǒng)向底層硬件模塊發(fā)送停止發(fā)生的控制命令,系統(tǒng)停止發(fā)生碼流;所述碼流離線分析軟件,其中,文件識別程序的工作步聚是1,選擇要分析的流文件;2,取得文件名及其后綴,并判斷是否為傳輸流后綴,若不是,則警告用戶該流文件可能不是可分析的傳輸流;3,查找同步字節(jié)OX47,記下當(dāng)前位置,認(rèn)為其是文件開始的的偏移量;4,繼續(xù)查OX47,若兩個相鄰OX47的間隔大于188則記下間隔值,反之,當(dāng)前位置為碼流起始位置,繼續(xù)步聚4;5,重復(fù)步聚4,直到獲得5個連續(xù)的間隔值后,判斷其中是否存在合法值(即是否為188或204);若存在,則將間隔值和文件頭偏移量的值送入系統(tǒng)核心心模塊,反之,則退回步聚1重新選擇文件。所述碼流離線分析軟件,其中,文件時鐘恢復(fù)模塊的程序工作步聚是1,取得節(jié)目的PCR的PID;2,查找含有PCR信息的數(shù)據(jù)包,記錄其位置和PCR值;3,查找后一個含有PCR信息的數(shù)據(jù)包,記錄其位置和PCR值;4,判斷是否找到6個PCR包,或是文件結(jié)束,如不是,返回3;5,記錄共找到的PCR包數(shù)pcmum;6,從文件未尾查找第一個含有PCR信息的數(shù)據(jù)包,記錄其位置和PCR值;7,查找前一個含有PCR信息的數(shù)據(jù)包,記錄其位置和PCR值;8,是否找到pcmum個PCR包?如不是,則返回7;9,計(jì)算前向第i(i<=pcmum)個PCR與后向第pcmum-j(j<=pcmum)個PCR之間的比特?cái)?shù)和PCR時鐘間隔,以27MHZ時鐘計(jì)算出碼率;10,判斷是否計(jì)算出pcmum個碼率,如不是,返回9;11,計(jì)算各碼率之間的誤差,去掉明顯錯誤的碼率值,對相對正確的碼率值取平均值;12,將計(jì)算結(jié)果送入系統(tǒng)核心模塊。所述碼流離線分析軟件,其中,音/視頻倒出模塊程序的工作步聚是1,取得音視頻流的PID值,通過選擇決定導(dǎo)出的是PES還是ES;若為ES則繼續(xù)步聚2,否則跳到步聚4;2,判斷選擇的是音頻流還是視頻流,若為音頻流則查找第一個音頻頭,反之,則查找第一個視頻序列頭,并記錄其位置,忽略其PES及TS包的頭數(shù)據(jù),開始記錄有效數(shù)據(jù);3,判斷是否將選擇范圍內(nèi)的數(shù)據(jù)流都導(dǎo)出,若無,繼續(xù)步聚2,反之,則跳到退出該模塊;4,在可選擇的范圍內(nèi)查找下一個含有PES頭的數(shù)據(jù)包,記下PES包的數(shù)據(jù)長度;5,忽略TS包的頭數(shù)據(jù),開始記錄有效數(shù)據(jù),直到一個PES的數(shù)據(jù)結(jié)束為止;6,判斷是否將選擇范圍內(nèi)的PES數(shù)據(jù)都導(dǎo)出,若無,繼續(xù)步聚4,反之,退出出該模塊。進(jìn)入系統(tǒng)程序后,記錄碼流的步聚是1.用戶輸入要記錄的文件路徑和文件名,或使用文件瀏覽器選擇路徑和文件名;2.由用戶輸入要記錄的碼流包數(shù)(如輸入“0”,則連續(xù)記錄,知道用戶手動停止)和選擇是否進(jìn)行碼流記錄過濾;3.用戶點(diǎn)擊主視圖上的工具欄上的“碼流記錄”按鈕,系統(tǒng)將要記錄的碼流文件名和記錄參數(shù)送入底層硬件模塊,并向底層硬件模塊發(fā)送開始記錄的控制命令,系統(tǒng)開始記錄碼流;4.在完成步驟1、2、3后,如果用戶在第2步驟中輸入的記錄包數(shù)為“0”,則由用戶點(diǎn)擊主視圖的工具欄的“碼流記錄”按鈕,系統(tǒng)向底層硬件模塊發(fā)送停止記錄的控制命令,系統(tǒng)停止碼流的記錄,否則當(dāng)碼流記錄到用戶輸入的包數(shù)時,底層硬件模塊自動停止碼流記錄過程。5.如果在步驟2中用戶選擇了碼流過濾,則由用戶在碼流記錄設(shè)置中選擇要過濾的PID或要存儲的PID;6.在步驟5中,如果用戶不知道輸入源中存在哪些PID,則可通過“掃描輸入”按鈕取得輸入源的PID列表,供用戶選擇。碼流發(fā)生的步驟為1.用戶輸入要發(fā)生的碼流文件的路徑和文件名,或使用文件瀏覽器選擇文件;2.系統(tǒng)核心模塊分析碼流文件,恢復(fù)文件的時鐘(參見離線分析中的文件時鐘恢復(fù)2.2.5);3.由用戶完成碼流發(fā)生的各項(xiàng)設(shè)置;4.將要發(fā)生的碼流文件名、發(fā)生參數(shù)送入底層硬件模塊;5.完成步驟1-4后,由用戶點(diǎn)擊主視圖上的工具欄上的“碼流發(fā)生”按鈕,系統(tǒng)向底層硬件模塊發(fā)送開始發(fā)生的控制命令,系統(tǒng)開始發(fā)生碼流;在步驟5后,如果用戶點(diǎn)擊主視圖上的工具欄上的“碼流發(fā)生”按鈕,系統(tǒng)向底層硬件模塊發(fā)送停止發(fā)生的控制命令,系統(tǒng)停止發(fā)生碼流。本發(fā)明的優(yōu)點(diǎn)是可以充分利用軟、硬件各自的優(yōu)勢,使用靈活。根據(jù)情況調(diào)整軟、硬件的分工,增加了一些其他類似分析產(chǎn)品所不具備的功能。這樣,在不增加成本的情況下,使本產(chǎn)品集多種分析功能于一體,而其中每個功能都可以單獨(dú)實(shí)現(xiàn),功能強(qiáng)大,體積小,攜帶方便,適合技術(shù)人員對系統(tǒng)隨時進(jìn)行實(shí)地的測量。作為分析、測量儀器,其提供的軟件界面友好,方便使用者使用,并且直觀地了解碼流信息。附圖2是本發(fā)明硬件結(jié)構(gòu)方框圖。附圖3是驅(qū)動程序流程與硬件接口示意圖。附圖4是支持軟件模塊及流程圖。附圖5是實(shí)時分析軟件流程圖。附圖6是系統(tǒng)設(shè)置模塊流程圖。附圖7是系統(tǒng)核心模塊流程圖。附圖8是PAT表格處理流程圖。附圖9是表格分析模塊流程圖。附圖10是離線分析模塊軟件流程圖。附圖11是文件識別程序流程圖。附圖12是文件時鐘恢復(fù)程序流程圖。附圖13是音/視頻倒出模塊程序流程圖。支持軟件的主要模塊與流程如圖4所示,主要模塊包括發(fā)生控制、發(fā)生文件處理進(jìn)程、發(fā)生數(shù)據(jù)處理進(jìn)程、分析控制、記錄文件處理進(jìn)程、分析數(shù)據(jù)處理進(jìn)程、硬件參數(shù)設(shè)置與獲取。支持程序中有許多獨(dú)立的處理進(jìn)程模塊,這樣做的作用是使得許多的操作可以同時進(jìn)行,而不至于在某一操作發(fā)生時其它操作無法進(jìn)行。如在分析時必須對新輸入的數(shù)據(jù)進(jìn)行緩沖,否則新數(shù)據(jù)將會丟失,同時可能還要對緩沖好的數(shù)據(jù)進(jìn)行記錄保存。發(fā)生控制模塊主要是在收到發(fā)生命令后完成相關(guān)的操作,以保證發(fā)生所需要的各種硬件資源與軟件資源到位,并保證發(fā)生的數(shù)據(jù)處理及過程控制得以進(jìn)行。發(fā)生文件處理進(jìn)程是由發(fā)生控制模塊生成的,主要負(fù)責(zé)在發(fā)生碼流的過程中需要新的數(shù)據(jù)時能夠從相應(yīng)的文中正確取到所需的數(shù)據(jù),并提供給或通知相關(guān)的驅(qū)動程序。發(fā)生數(shù)據(jù)處理進(jìn)程的作用在發(fā)生過程中從文件或其它來源獲得數(shù)據(jù)后不能直接當(dāng)作發(fā)生的碼流時體現(xiàn),這時需要對所取得的數(shù)據(jù)進(jìn)行處理,有時需要調(diào)用應(yīng)用程序進(jìn)行更深入的處理。分析控制模塊響應(yīng)應(yīng)用程序發(fā)出的分析碼流的命令,完成必要的硬件、軟件操作,保證資源到位,使得分析的數(shù)據(jù)處理及過程控制得以進(jìn)行,同時還分配碼流記錄所需要的資源和生成記錄所需要的文件處理進(jìn)程。記錄文件處理進(jìn)程主要負(fù)責(zé)對輸入在緩沖器中的碼流數(shù)據(jù)進(jìn)行過濾、選擇和修改,并對緩沖器的狀態(tài)進(jìn)行控制,獲取所需要的數(shù)據(jù)并記錄在文件中。分析數(shù)據(jù)處理進(jìn)程對輸入緩沖器的空滿狀態(tài)進(jìn)行監(jiān)視,控制緩沖器的選擇,對輸入的碼流進(jìn)行整理,并在需要時調(diào)用應(yīng)用程序的回調(diào)函數(shù)進(jìn)行更詳細(xì)的分析處理。硬件參數(shù)設(shè)置與獲取提供了一個對硬件進(jìn)行控制的接口。根據(jù)不同的操作要求或功能要求,經(jīng)常需要改變硬件設(shè)置,這一接口能設(shè)置相應(yīng)的硬件,以使硬件可以按照應(yīng)用的要求進(jìn)行操作。應(yīng)用程序也經(jīng)常會需要知道硬件當(dāng)前的狀態(tài),以判別硬件的工作狀況和獲取外部信號的特性等,這一接口也據(jù)要求獲取相應(yīng)的信息,各模塊的主要工作步驟見前述
發(fā)明內(nèi)容。應(yīng)用軟件應(yīng)用軟件在操作系統(tǒng)的輔助下處理用戶輸入,翻譯成相應(yīng)的命令,對命令解釋后通過支持軟件控制硬件的工作并獲取數(shù)據(jù)。在得到碼流數(shù)據(jù)后根據(jù)相關(guān)的標(biāo)準(zhǔn)對其進(jìn)行分析、統(tǒng)計(jì),按用戶要求顯示碼流的結(jié)構(gòu)、PCR的抖動、節(jié)目的信息、碼流參數(shù)的解釋等。請參閱附圖5所示PCMCIAMPEG碼流分析、發(fā)生、記錄儀軟件流程圖實(shí)時分析、發(fā)生、記錄部分系統(tǒng)連接----在啟動分析系統(tǒng)前,將碼流源連接到分析系統(tǒng)的輸入接口(參見“系統(tǒng)框圖”)。應(yīng)用軟件啟動,運(yùn)行應(yīng)用軟件“MPEG碼流實(shí)時分析系統(tǒng)”,程序首先通過底層硬件模塊得到系統(tǒng)的控制權(quán)限,然后啟動程序視圖,創(chuàng)建各個功能的顯示頁面。在圖5中的“工具欄和菜單欄”、“樹型結(jié)構(gòu)框架”、“實(shí)時分析框架”、“PCR分析框架”、“節(jié)目分析框架”、“表格分析框架”、“Buffer分析框架”、“硬件信息框架”分別為各個功能的視圖框架。系統(tǒng)設(shè)置模塊,如果用戶在使用系統(tǒng)前需要對各個監(jiān)測項(xiàng)目進(jìn)行一定的設(shè)置(以便在系統(tǒng)監(jiān)測過程中按用戶自己的要求進(jìn)行分析),點(diǎn)擊主視圖中的工具欄中的“設(shè)置參數(shù)”的按鈕,系統(tǒng)將調(diào)用“系統(tǒng)設(shè)置模塊”。“系統(tǒng)設(shè)置模塊”的流程如圖6,其工作步聚見前述
發(fā)明內(nèi)容。碼流的發(fā)生、記錄開始記錄,在用戶進(jìn)入系統(tǒng)程序后,點(diǎn)擊主視圖中的“碼流記錄”的視圖頁標(biāo)進(jìn)入碼流記錄前的設(shè)置。設(shè)置項(xiàng)目包括記錄文件的路徑和文件名、記錄長度(按包數(shù))、是否進(jìn)行碼流的PID過濾、PID過濾的設(shè)置。記錄碼流的步驟如前述的
發(fā)明內(nèi)容。開始發(fā)生,在用戶進(jìn)入系統(tǒng)程序后,點(diǎn)擊主視圖中的“碼流發(fā)生”的視圖頁標(biāo)進(jìn)入碼流發(fā)生前的設(shè)置。設(shè)置項(xiàng)目包括發(fā)生的文件路徑和文件名、發(fā)生碼率、發(fā)生包長、發(fā)生的有效包長,發(fā)生時的接口屬性,發(fā)生位置,碼流發(fā)生的步驟如前述
發(fā)明內(nèi)容。系統(tǒng)核心模塊系統(tǒng)核心模塊是整個分析系統(tǒng)的核心,其主要功能是完成碼流數(shù)據(jù)的各項(xiàng)分析和系統(tǒng)控制。該模塊接收由底層硬件模塊的碼流數(shù)據(jù)(在底層硬件發(fā)生中斷的時候,接收到數(shù)據(jù)),將數(shù)據(jù)按照DVB(或ATSC)的標(biāo)準(zhǔn)進(jìn)行分類;然后將分類的數(shù)據(jù)送入不同的處理子模塊進(jìn)行處理;最后將處理完成的結(jié)果送入主窗口框架的各個頁面顯示。為了達(dá)到較高的實(shí)時性能,系統(tǒng)核心模塊采用數(shù)據(jù)分類處理方式,這種方式也是符合MPEG傳輸流的數(shù)據(jù)模式(TransportStream)——MPEG傳輸流的數(shù)據(jù)以打包的數(shù)據(jù)進(jìn)行傳輸,各個不同的音/視頻流和用于控制和其他服務(wù)的數(shù)據(jù)流都以自己的速率同時存在于碼流中,其順序沒有一定的規(guī)則,他們只是以每個數(shù)據(jù)包的識別碼(PID)來區(qū)分。在傳輸流的分析中,精確的實(shí)時時鐘是分析的關(guān)鍵。但是,采用計(jì)算機(jī)內(nèi)部時鐘(BIOS或PCI總線上的時鐘)其精度和穩(wěn)定度遠(yuǎn)遠(yuǎn)達(dá)不到標(biāo)準(zhǔn)所規(guī)定的要求。所以在該系統(tǒng)中的實(shí)時時鐘采用硬件時鐘來替代計(jì)算機(jī)的內(nèi)部時鐘(在硬件中采用的是高精度恒溫晶體,其精度高于10-7)。在核心模塊中的時鐘相關(guān)部分均采用這個時鐘信號。而在底層硬件模塊中不但要提供該時鐘的信息,還要完成碼流時鐘信息的提取和分析,這樣才能保證實(shí)時分析的正確性,也不會因?yàn)橛?jì)算機(jī)在處理高度精確且實(shí)時的數(shù)據(jù)時過多的占用系統(tǒng)的處理時間,從而留出更多的時間處理更高級的分析。碼流結(jié)構(gòu)分析模塊該模塊的是整個碼流分析的基礎(chǔ)部分,只有在完成碼流結(jié)構(gòu)的分析后,才能對其他項(xiàng)目進(jìn)行更詳細(xì)的分析。碼流結(jié)構(gòu)也是MPEG傳輸流分析最常要得到的分析結(jié)果(甚至在某些場合只需要分析碼流結(jié)構(gòu))。因?yàn)楸鞠到y(tǒng)同時支持DVB(歐洲標(biāo)準(zhǔn))和ATSC(美國標(biāo)準(zhǔn)),而他們的碼流結(jié)構(gòu)在許多方面存在很大的差異。因此在分析過程中需要對碼流進(jìn)行識別。通常情況下,在MPEG傳輸流中有一些ATSC標(biāo)準(zhǔn)的標(biāo)志,當(dāng)系統(tǒng)發(fā)現(xiàn)存在這些標(biāo)志時可以確定某傳輸流采用的是否為ATSC標(biāo)準(zhǔn)。但也有很多傳輸流沒有這樣的標(biāo)志,同時在DVB標(biāo)準(zhǔn)中也沒有類似的標(biāo)志,所以在本系統(tǒng)的碼流識別處理中采用自動和手動相結(jié)合的方式來確定碼流的類型。在碼流結(jié)構(gòu)分析過程中,為使用戶能直觀且清晰的了解整個碼流的結(jié)構(gòu)及各個數(shù)據(jù)流之間的關(guān)系,系統(tǒng)采用樹型的方式來表示一個碼流結(jié)構(gòu)。然而在其它的同類產(chǎn)品中,采用樹型結(jié)構(gòu)無法達(dá)到實(shí)時性的要求(樹型結(jié)構(gòu)的不斷變化會產(chǎn)生閃爍不定的結(jié)果)。本系統(tǒng)采用的樹型結(jié)構(gòu)使用簡化的樹方式,將用戶不使用的功能去掉。在顯示樹型結(jié)構(gòu)時采用無閃的顯示模式。參考時鐘分析模塊參考時鐘分析是整個系統(tǒng)實(shí)時性要求最高的模塊,他和底層硬件模塊的關(guān)系最密切。該模塊在顯示方式上采用動態(tài)無閃的圖形化顯示,能夠給用戶最直觀的信息。在此分析模塊中有兩個重要的分析部分——參考時鐘(后稱PCR)精度分析和參考時鐘間隔分析。PCR精度分析是分析碼流中每套節(jié)目的每個時鐘信號來時的誤差,在碼流中的每個時鐘信息以27MHz的頻率計(jì)數(shù),本系統(tǒng)的硬件在同時也對同一個時鐘進(jìn)行計(jì)數(shù),用以得到碼流在各種傳輸信道中的時鐘抖動情況。在MPEG傳輸流標(biāo)準(zhǔn)中對PCR計(jì)數(shù)點(diǎn)的頻率也有規(guī)定,過長的間隔時間會引起碼流時間精度的誤差。本系統(tǒng)的PCR間隔分析能將PCR間隔的實(shí)際情況用圖形方式顯示。在兩種分析部分,系統(tǒng)都使用了直方圖形式來提供時鐘抖動和間隔在整個時域出現(xiàn)的比率,給出PCR時鐘誤差的程度。錯誤信息處理模塊錯誤信息處理模塊是貫穿整個系統(tǒng)的模塊。由他產(chǎn)生各種警告消息。作為一套標(biāo)準(zhǔn)的分析設(shè)備,最重要的是檢測被分析的數(shù)據(jù)是否符合標(biāo)準(zhǔn),并且在數(shù)據(jù)發(fā)生錯誤時對用戶提出警告,以解決發(fā)生的問題,保證播出的質(zhì)量。本系統(tǒng)嚴(yán)格按照ETR290的標(biāo)準(zhǔn)(MPEG傳輸流測試標(biāo)準(zhǔn))進(jìn)行檢測。因此在系統(tǒng)的各個分析環(huán)節(jié)都有和錯誤信息處理模塊交互的接口,錯誤信息處理模塊本身具有詳細(xì)靈活的設(shè)置方式。在用戶的控制下可自定義報(bào)警的方式和監(jiān)控的內(nèi)容,對一些不完全符和標(biāo)準(zhǔn)的數(shù)據(jù)流可有目的的分析部分錯誤,而不會被大量不關(guān)心的錯誤所混淆。錯誤信息處理模塊同時為錯誤觸發(fā)存儲提供觸發(fā)條件。因此,靈活的錯誤信息處理同時也保證了靈活的觸發(fā)存儲方式。表格分析模塊在MPEG傳輸流分析的過程中,表格信息(服務(wù)信息)的分析最為關(guān)鍵。碼流的整體結(jié)構(gòu)和各種紛繁復(fù)雜的服務(wù)功能都是通過表格信息來控制的。在高碼率的環(huán)境下,從碼流中提取相應(yīng)的表格信息并顯示出來是十分困難的,因?yàn)榉?wù)信息的數(shù)據(jù)處理復(fù)雜、數(shù)據(jù)量大。而本系統(tǒng)中的表格信息處理模塊能夠?qū)崟r地分析顯示各種服務(wù)信息表格。這為數(shù)字電視系統(tǒng)的構(gòu)架提供了良好的工具。能完成實(shí)時的表格信息處理功能主要是因?yàn)樵谙到y(tǒng)核心模塊中采用了數(shù)據(jù)分類方式。系統(tǒng)中有為每一種表格處理而定義的數(shù)據(jù)結(jié)構(gòu),和靈活的模塊式處理方法。其處理過程如圖9所示。碼流發(fā)生處理模塊本系統(tǒng)的碼流發(fā)生功能是通過碼流發(fā)生處理模塊來實(shí)現(xiàn)的。該模塊包括文件的結(jié)構(gòu)分析、文件時鐘恢復(fù)、碼流輸出方式控制和內(nèi)建調(diào)試碼流發(fā)生控制四部分組成。文件結(jié)構(gòu)分析采用離線分析的文件識別模塊的子集,用于判斷文件是否能夠被硬件作為碼流發(fā)生到硬件端口。同樣,文件時鐘恢復(fù)也采用離線分析中的文件時鐘恢復(fù)模塊,用于確定文件在發(fā)生時應(yīng)使用的發(fā)生速率。碼流輸出方式控制部分又可分為輸出格式控制、輸出格式調(diào)整、插入測試包信息等部分。輸出格式控制設(shè)置輸出碼流的數(shù)據(jù)和硬件接口格式,以適應(yīng)不同的后端設(shè)備的需要(這種功能也是同類設(shè)備中所不具有的)。輸出格式調(diào)整是對輸入源的碼流進(jìn)行一定格式和時鐘的調(diào)整,使其完全符合標(biāo)準(zhǔn)。其中的碼流時鐘調(diào)整采用獨(dú)有的PCR調(diào)整技術(shù)和碼流循環(huán)播放技術(shù),他們可使碼流在發(fā)生時接近最原始的傳輸狀態(tài)。插入測試包信息部分是配合實(shí)時分析模塊的測試包分析部分,他可由底層硬件模塊產(chǎn)生一偽隨機(jī)序列,用以測試均勻分布的數(shù)據(jù)流在信道上的傳輸錯誤幾率。內(nèi)建調(diào)試碼流發(fā)生控制也是本系統(tǒng)獨(dú)有的功能模塊之一。通過他可產(chǎn)生一些規(guī)則結(jié)構(gòu)的數(shù)據(jù)流,用以檢測后端設(shè)備在某些特殊情況下的數(shù)據(jù)處理能力。(如產(chǎn)生一個包間連續(xù)計(jì)數(shù)的碼流可用于檢測后端設(shè)備是否會產(chǎn)生數(shù)據(jù)丟失的情況等等)。碼流記錄處理模塊碼流記錄的處理相對比較簡單,其主要功能是由硬件完成(由于記錄介質(zhì)的速度瓶頸,只可能采用硬件方式完成)。該功能模塊能提供對輸入碼流源的數(shù)據(jù)過濾處理,將用戶不關(guān)心的數(shù)據(jù)濾掉。因此在記錄碼流前的設(shè)置功能包含有實(shí)時碼流結(jié)構(gòu)分析模塊的子集。通過對輸入碼流的簡單分析產(chǎn)生用戶設(shè)置的允許范圍,再由用戶進(jìn)行詳細(xì)的過濾設(shè)置。硬件信息分析模塊硬件信息是本系統(tǒng)的獨(dú)有的功能模塊。在MPEG傳輸流系統(tǒng)構(gòu)架時,經(jīng)常會遇到線路錯誤的連接(或是線路質(zhì)量問題)等,但在其表現(xiàn)形式上與設(shè)備問題之間無法區(qū)分,因此會在不必要的環(huán)節(jié)上浪費(fèi)過多的時間(通常在出現(xiàn)問題的時候總是首先懷疑硬件設(shè)備的問題)。硬件信息分析就是針對這種情況而獨(dú)立出來的分析模塊。他采用端口分離,層次分立的模式將硬件線路上的信號情況顯示給用戶。使用戶能迅速找到系統(tǒng)在線路方面的問題,加快系統(tǒng)構(gòu)建的速度。硬件信息模塊本身是系統(tǒng)軟件和底層硬件的交互模塊。因?yàn)橛布€路的狀態(tài)只能由底層硬件得到,所以硬件信息處理實(shí)際上是實(shí)時的將底層硬件得到的硬件線路信息顯示給用戶。離線分析模塊框如附圖10所示離線分析模塊軟件流程圖。離線分析模塊工作流程應(yīng)用軟件啟動,運(yùn)行應(yīng)用軟件“MPEG碼流離線分析系統(tǒng)”,程序首先通過底層硬件模塊得到系統(tǒng)的控制權(quán)限,然后啟動程序視圖,創(chuàng)建各個功能的顯示頁面。在圖10中的“工具欄和菜單欄”、“樹型結(jié)構(gòu)框架”、“綜合分析框架”、“PCR分析框架”、“節(jié)目分析框架”、“表格分析框架”、“視頻分析框架”、“錯誤分析框架”分別為各個功能的視圖框架。打開要分析的流文件,在工具欄中(或菜單欄中的相應(yīng)選項(xiàng))的“打開文件”項(xiàng),系統(tǒng)顯示一文件對話框,由用戶選擇需要分析的流文件。在文件對話框中對各路徑文件的顯示進(jìn)行一定的過濾,顯示可能被分析的流文件類型的文件。文件類型識別,系統(tǒng)先將文件指針?biāo)腿胛募R別模塊進(jìn)行更細(xì)致的文件類型判斷,其識別流程如附圖11。文件識別模塊在文件開頭部分查找傳輸流的同步字節(jié)和文件開頭的偏移量(考慮到用戶在存儲碼流文件時可能產(chǎn)生的錯誤)。但由于碼流數(shù)據(jù)中可能存在許多的0×47字節(jié)(并非是包的同步字節(jié)),所以在文件識別模塊中一開始查找到的同步字節(jié)和碼流的開頭偏移量不一定是正確的。因此,在文件識別模塊中采用向后查找5次的方法來進(jìn)一步確定碼流起始位置。在每次查找的同時重新同步起始如果以上步驟都失敗,則判斷碼流為非傳輸流。碼流結(jié)構(gòu)分析,啟動系統(tǒng)核心模塊,此時系統(tǒng)核心模塊的碼流輸入接口并不是底層硬件模塊,而是由文件讀取模塊的接口。文件時鐘恢復(fù),系統(tǒng)核心模塊得到碼流的結(jié)構(gòu),得知每套節(jié)目的PCR時鐘存在的流。然后從碼流開始處,計(jì)算每套節(jié)目的時鐘,其流程如附圖12所示。文件碼率的計(jì)算采用文件首尾時間標(biāo)志的提取和多數(shù)據(jù)的容差算法,即是在文件頭部提取數(shù)個時鐘信息,在文件尾部提取同樣數(shù)量的時鐘信息,然后取首尾相對應(yīng)的時鐘信息進(jìn)行運(yùn)算。這樣的算法幾乎包含整個文件的長度,每個計(jì)算結(jié)果的誤差都不大,再對多個計(jì)算結(jié)果取平均值,使誤差進(jìn)一步擴(kuò)散到每個結(jié)果中,進(jìn)一步減小誤差。因此,在文件相對較大時,計(jì)算誤差相對較小。文件局部選擇模塊在對文件進(jìn)行分析時,由于其數(shù)據(jù)來源和實(shí)時分析不同,數(shù)據(jù)是從文件得到,而用戶可能在文件的任意部分進(jìn)行分析(如文件本身記錄1小時的碼流,用戶關(guān)心其最后1分鐘的數(shù)據(jù),系統(tǒng)不可能讓用戶等待59分鐘后才給出分析結(jié)果),系統(tǒng)分析文件時也不可能將整個文件的分析進(jìn)行完成后才顯示結(jié)果(文件較大時將花費(fèi)很長的時間)。因此,本系統(tǒng)對文件的分析采用局部分析的方法。由用戶操作一個“局部范圍選擇控件”來指定系統(tǒng)對文件的分析范圍。而系統(tǒng)核心模塊此時對文件的定位也是由此控件來控制。(系統(tǒng)默認(rèn)分析包數(shù)為<=100000,用戶可選擇1-文件總包數(shù)個,文件較大時,分析時間較長)。音/視頻倒出模塊在完成以上各個步驟后,用戶可通過不同的視圖框架來查看系統(tǒng)對文件分析的結(jié)果。當(dāng)用戶需要對碼流中的某一單獨(dú)的音/視頻流進(jìn)行進(jìn)一步分析或使用其他播放軟件查看節(jié)目內(nèi)容時,用戶可以使用系統(tǒng)中的“音/視頻倒出”功能將數(shù)據(jù)從碼流文件中抽取出來,存為單獨(dú)的文件。在顯示碼流結(jié)構(gòu)的樹型結(jié)構(gòu)中,用鼠標(biāo)右鍵點(diǎn)擊選擇的音/視頻子項(xiàng),系統(tǒng)彈出“音/視頻倒出”菜單。選擇要倒出的文件格式(PES流或ES流)。系統(tǒng)核心模塊調(diào)用“音/視頻倒出模塊”。該模塊的運(yùn)行流程如附圖13所示在音/視頻數(shù)據(jù)倒出ES流時,為了能夠讓其他的軟件或工具認(rèn)識該文件(通常的播放或編輯軟件以文件頭的起始數(shù)據(jù)來判斷碼流類型),模塊在音/視頻流開頭先查找音/視頻的頭信息,直到找到后才開始處理以后的數(shù)據(jù)。離線分析主要模塊的特性及工作過程系統(tǒng)核心模塊,該模塊同實(shí)時分析中和系統(tǒng)核心模塊采用同一模塊。文件識別模塊,離線分析的主要操作是針對文件的操作,而數(shù)據(jù)文件的格式又可以是多種的(包括傳輸流-TS、節(jié)目流-PS、節(jié)目元素流-PES或ES等),因此文件格式的識別是離線分析的基礎(chǔ)。離線分析的文件識別模塊不但要識別出碼流文件的類型,而且要檢查用戶在文件存儲過程中產(chǎn)生的錯誤(比如文件頭定位錯誤等)。大部分軟件在文件識別時只通過文件頭的信息來判斷文件類型而無法識別有錯誤的文件。事實(shí)上本系統(tǒng)的文件識別模塊具有一定智能識別功能。文件識別模塊采用多種識別模式相結(jié)合的方式來達(dá)到智能識別的功能。利用不同格式的數(shù)據(jù)特性,分層次的模糊判斷。文件數(shù)據(jù)統(tǒng)計(jì)模塊,在離線分析中,由于數(shù)據(jù)來自文件,所以用戶可以詳細(xì)的得到碼流中的每一個數(shù)據(jù)。在文件數(shù)據(jù)統(tǒng)計(jì)模塊中的文件數(shù)據(jù)顯示部分,本系統(tǒng)沒有采用簡單的數(shù)據(jù)顯示方式,而是結(jié)合系統(tǒng)核心模塊的數(shù)據(jù)分類功能將數(shù)據(jù)中的重要信息分離出來,以不同的顏色顯示,并加以提示,讓用戶能夠清楚的了解數(shù)據(jù)中的每一個成員所代表的意義。這種顯示方式不但直觀,而且操作方便,界面清晰。文件時鐘恢復(fù)模塊,對文件進(jìn)行碼流參考時鐘分析是本系統(tǒng)的又一個獨(dú)特的分析模塊。在靜態(tài)的文件分析中不可能采用硬件的實(shí)時時鐘來分析數(shù)據(jù)在時間方面的特性。而本系統(tǒng)在分析碼流文件時,預(yù)先對整個碼流文件進(jìn)行抽取時鐘信息,再通過多次的容錯(減少累計(jì)誤差)算法,能得到相對準(zhǔn)確的文件原始時鐘。文件時鐘恢復(fù)的精確度保證也保證了靜態(tài)碼流的參考時鐘分析的正確性。音/視頻數(shù)據(jù)的導(dǎo)出模塊,音/視頻數(shù)據(jù)的導(dǎo)出模塊事實(shí)上完成的是各種碼流文件之間的轉(zhuǎn)換工作。通過該模塊的功能,將文件或文件中的部分轉(zhuǎn)換為另一種格式,以用來進(jìn)行其他更深層次的分析(或音/視頻的回放)。權(quán)利要求1,一種PCMCIAMPEG碼流發(fā)生、分析、記錄方法及設(shè)備,包括硬件和軟件,硬件制成儀器,其特征在于硬件包括碼流輸入控制及處理設(shè)備,PCMCIA接口硬件,軟件采用獨(dú)立的三個軟件層次應(yīng)用軟件、支持軟件和驅(qū)動程序,驅(qū)動程序完成與硬件控制及操作系統(tǒng)相關(guān)工作,支持軟件用于聯(lián)系應(yīng)用軟件和驅(qū)動程序,屏蔽硬件細(xì)節(jié),為應(yīng)用軟件提供數(shù)據(jù),分析進(jìn)程管理,提供訪問硬件的接口函數(shù),進(jìn)行數(shù)據(jù)整理,應(yīng)用軟件完成用戶輸入的處理,按用戶要求對取得的數(shù)據(jù)進(jìn)行分析、統(tǒng)計(jì)、顯示。2,按權(quán)利要求1所述的PCMCIAMPEG碼流發(fā)生、分析、記錄方法及設(shè)備,其特征在于所述硬件包括入模塊,時鐘信息記錄模塊,輸入分析與控制模塊,輸入緩存及控制模塊,輸出緩存及控制模塊,輸出處理與控制模塊,輸出模塊,時鐘處理與控制模塊、PCI狀態(tài)控制模塊,寄存器及控制模塊,數(shù)據(jù)傳輸控制模塊,中斷控制模塊,計(jì)算機(jī)接口模塊,電源控制模塊,初始化及編程模塊,其中輸入模塊;完成輸入信號格式的轉(zhuǎn)換,接口電路完成信號耦合與整形,采用一個ASIC完成比特時鐘恢復(fù),線路解碼及10比特/8比特轉(zhuǎn)換,將其轉(zhuǎn)換成并行信號。時鐘信息模塊;監(jiān)視和記錄PCR時鐘值,時間信息寄存器寄存上述的時間信息,并在適當(dāng)時間通過計(jì)算機(jī)接口提代給軟件進(jìn)行分析處理。輸入分析與控制模塊;控制輸入芯片的參數(shù)及操作,接收從輸入模塊進(jìn)來的數(shù)據(jù),根據(jù)其中控制信號對碼流進(jìn)行分析,并向輸入緩沖器寫入數(shù)據(jù)。輸入緩沖及控制模塊;對數(shù)據(jù)進(jìn)行緩存,檢查緩沖器的充滿程度,給出相應(yīng)的指示信號。再結(jié)合數(shù)據(jù)傳輸控制部分的指示將輸入碼流數(shù)據(jù)經(jīng)PCMCIA接口傳給軟件進(jìn)行分析和處理。輸出緩沖及控制模塊;對輸出數(shù)據(jù)進(jìn)行緩存,檢查緩沖器的充滿程度,給出相應(yīng)的指示信號。再結(jié)合數(shù)據(jù)傳輸控制部分的指示經(jīng)PCMCIA接口從軟件取得輸出碼流數(shù)據(jù)。輸出處理與控制模塊;控制輸出芯片的參數(shù)及操作,從緩沖器中取數(shù)據(jù)發(fā)給輸出芯片。輸出模塊;完成輸出信號格式的轉(zhuǎn)換。采用一個ASIC做碼流數(shù)據(jù)到ASI信號的編碼,輸出270M的串行信號,完成ASI信號的驅(qū)動及耦合輸出等。時鐘處理與控制模塊;參考時鐘的生成與整形,生成27M的系統(tǒng)時鐘,將108M時鐘進(jìn)行頻率合成,生成各種不同碼率的碼流。PCI狀態(tài)控制模塊;完成PCMCIA接口中PCI規(guī)范,實(shí)現(xiàn)PCI的功能與控制,包括PCI接口空間的控制、命令的解釋、地址與數(shù)據(jù)的選擇、數(shù)據(jù)傳輸過程及狀態(tài)的控制。寄存器及控制模塊;包括地址解析、數(shù)據(jù)讀寫、初始化、參數(shù)對其它模塊的控制。數(shù)據(jù)傳輸控制模塊;判斷并發(fā)起數(shù)據(jù)PCI傳輸過程,控制相應(yīng)的PCI硬件進(jìn)行正確的地址數(shù)據(jù)選擇,選擇正確的緩沖器及找到相應(yīng)的地址。中斷控制模塊;根據(jù)輸入數(shù)據(jù)傳輸與輸出數(shù)據(jù)傳輸?shù)拇螖?shù)及相關(guān)的控制寄存器的參數(shù),完成一定的數(shù)據(jù)傳輸后產(chǎn)生中斷。計(jì)算機(jī)接口模塊;完成與計(jì)算機(jī)的直接連接的緩沖。電源控制模塊;從PCMCIA的單一電源轉(zhuǎn)換出各種芯片要求的其它直流電源。初始化及編程模塊;上電時將FPGA所需要的相關(guān)設(shè)置信息載入到FPGA的配置空間中,使FPGA能夠?qū)崿F(xiàn)所要求的功能。3.按權(quán)利要求1所述的PCMCIAMPEG碼流發(fā)生、分析、記錄方法及設(shè)備,其特征在于所述驅(qū)動程序與操作系統(tǒng)相配合完成硬件初始化,設(shè)備建立,中斷、輸入輸出口和緩沖器各資源的分配,使硬件成為操作系統(tǒng)可訪問的設(shè)備,并對支持程序和應(yīng)用程序可見,操作系統(tǒng)在發(fā)現(xiàn)硬件并開始啟動驅(qū)動程序后,工作步聚是1.首先是對硬件進(jìn)行初始化,分配資源和完成系統(tǒng)控制結(jié)構(gòu)。2.接下來是進(jìn)行緩沖器的分配,分配用于分析和發(fā)生的緩沖器。3.此后驅(qū)動程序駐留的部分等待支持程序發(fā)來的命令。4.收到命令后對其進(jìn)行解釋,并分解成對硬件的訪問操作。5.根據(jù)分解出的訪問操作要求通過PCMCIA接口對硬件進(jìn)行訪問。在初始化完成后,驅(qū)動程序還駐留了另一部分,即中斷響應(yīng)程序1.收到中斷響應(yīng)激活相應(yīng)的中斷響應(yīng)程序。2.由于PCI規(guī)范采用共享中斷,首先需要判斷中斷的來源。3.如果是這里的設(shè)備產(chǎn)生的中斷,則檢查緩沖器的狀態(tài)。4.若緩沖器已經(jīng)得到數(shù)據(jù)或需要新的數(shù)據(jù),則對緩沖器的狀態(tài)進(jìn)行調(diào)整。6.然后向支持軟件發(fā)出緩沖器需要處理的請求,由支持程序處理得到的數(shù)據(jù)或提供新數(shù)據(jù)。4.按權(quán)利要求1所述的PCMCIAMPEG碼流發(fā)生、分析、記錄方法及設(shè)備,其特征在于所述支持軟件包括發(fā)生控制模塊、發(fā)生文件處理進(jìn)程模塊、發(fā)生數(shù)據(jù)處理進(jìn)程模塊、分析控制模塊、記錄文件處理進(jìn)程模塊、分析數(shù)據(jù)處理進(jìn)程模塊、硬件參數(shù)設(shè)置與獲取模塊,各模塊工作步聚如下發(fā)生控制程序1.初始化軟、硬件參數(shù),為發(fā)生碼流的操作做準(zhǔn)備。2.分配發(fā)生用的緩沖器,發(fā)生碼流需要較大的緩沖器以保證碼流的連續(xù)。3.設(shè)定硬件的參數(shù),開始發(fā)生碼流的硬件動作。4.生成發(fā)生文件處理的進(jìn)程,它將按要求從文件中取得發(fā)生所需要的原始數(shù)據(jù)。5.生成發(fā)生數(shù)據(jù)處理的進(jìn)程,它將對從文件中取得的數(shù)據(jù)進(jìn)行處理,確保最后發(fā)出的碼流符合用戶需要。發(fā)生文件處理進(jìn)程1.對輸出碼流數(shù)據(jù)的文件進(jìn)行初始化,獲得文件的信息,并打開文件。2.初始化文件處理緩沖器,文件讀寫的速度與碼流處理的速度不能完全配合,所以這里需要文件處理緩沖器。3.此后進(jìn)行進(jìn)入實(shí)際操作循環(huán),等待來自驅(qū)動程序的讀取文件的請求。4.接收到讀取文件的請求后,首先檢查緩沖器,確認(rèn)緩沖器的狀態(tài)正確。5.然后開始文件操作,將數(shù)據(jù)從文件中讀到文件處理緩沖器中。6.讀完數(shù)據(jù)后修改緩沖器狀態(tài),通知其它程序可以使用該緩沖器。發(fā)生數(shù)據(jù)處理進(jìn)程1.進(jìn)程開始后等待來自驅(qū)動程序的數(shù)據(jù)處理請求。2.首先對緩沖器進(jìn)行整理,從文件處理緩沖器將數(shù)據(jù)移動到數(shù)據(jù)處理緩沖器中,然后改變文件處理緩沖器和數(shù)據(jù)處理緩沖器的狀態(tài)。3.需要填充文件處理緩沖器時發(fā)出讀取文件的請求。4.需要對所取得的碼流數(shù)據(jù)進(jìn)一步處理修改時調(diào)用應(yīng)用程序回調(diào)函數(shù)進(jìn)行處理。5.將處理好的碼流數(shù)據(jù)提供給驅(qū)動程序,該緩沖器中的碼流將在驅(qū)動程序中通過硬件接口傳到硬件中并發(fā)出。分析控制1.初始化軟、硬件參數(shù),為碼流的輸入緩存及分析操作做準(zhǔn)備。2.分配分析用的緩沖器,分析碼流需要較大的緩沖器以緩沖碼流平滑分析過程。3.設(shè)定硬件的參數(shù),開始分析碼流的硬件動作。4.生成記錄文件處理的進(jìn)程,它將按要求將所需要的碼流數(shù)據(jù)記錄到文件中。5.生成分析數(shù)據(jù)處理的進(jìn)程,它將對從輸入緩沖器取得的數(shù)據(jù)進(jìn)行處理,并調(diào)用應(yīng)用回調(diào)函數(shù)進(jìn)行詳細(xì)的分析處理。記錄文件處理進(jìn)程1.對記錄碼流數(shù)據(jù)的文件進(jìn)行初始化,獲得文件的信息,并打開文件。2.初始化文件處理緩沖器,文件讀寫的速度與碼流處理的速度不能完全配合,所以這里需要文件處理緩沖器。3.此后進(jìn)行進(jìn)入實(shí)際操作循環(huán),等待來自驅(qū)動程序的記錄文件的請求。4.接收到記錄文件的請求后,首先檢查緩沖器,確認(rèn)緩沖器的狀態(tài)正確。5.然后開始文件操作,將數(shù)據(jù)從文件處理緩沖器中寫到文件中。6.寫完數(shù)據(jù)后修改緩沖器狀態(tài),通知其它程序可以使用該緩沖器。分析數(shù)據(jù)處理進(jìn)程1.進(jìn)程開始后等待來自驅(qū)動程序的數(shù)據(jù)處理請求。2.首先對緩沖器進(jìn)行整理,從數(shù)據(jù)處理緩沖器將數(shù)據(jù)移動到文件處理緩沖器中,然后改變文件處理緩沖器和數(shù)據(jù)處理緩沖器的狀態(tài)。3.需要將文件處理緩沖器中數(shù)據(jù)記錄時發(fā)出寫文件的請求。4.需要對碼流數(shù)據(jù)進(jìn)一步分析處理,調(diào)用應(yīng)用程序回調(diào)函數(shù)進(jìn)行處理。5.最后整理緩沖器,將處理過的緩沖器清理掉,用于新數(shù)據(jù)的緩沖。硬件參數(shù)設(shè)置獲取1.首先對應(yīng)用調(diào)用的功能和要求進(jìn)行分析。2.根據(jù)所需的功能計(jì)算相關(guān)的參數(shù)。3.選擇與要求功能相關(guān)的寄存器。4.根據(jù)參數(shù)和相關(guān)寄存器的特性計(jì)算寄存器的相應(yīng)值。5.打開設(shè)備,準(zhǔn)備進(jìn)行硬件操作。6.調(diào)用驅(qū)動程序進(jìn)行寄存器的讀寫。7.返回讀取的寄存器值。8根據(jù)寄存器值計(jì)算需要了解的信息參數(shù)值。5,按權(quán)利要求1所述的PACMIAMPEG碼流分析、發(fā)生、記錄方法及設(shè)備,其特征在于所述應(yīng)用軟件包括MPEG碼流實(shí)時分析、記錄軟件和MPEG碼流離線分析軟件,其中MPEG碼流實(shí)時分析、記錄軟件首先通過底層硬件模塊得到系統(tǒng)控制權(quán),然后啟動程序視圖,創(chuàng)建各功能頁面,程序視圖框架包括工具欄和菜單欄、樹型結(jié)構(gòu)框架、實(shí)時分析框架、PCR分析框架、節(jié)目分析框架、表格分析框架、Buffer分析框架、硬件分析框架、碼流發(fā)生框架、碼流記錄框架;其中系統(tǒng)設(shè)置模塊程序的工作步聚是(1).系統(tǒng)設(shè)置模塊在啟動后,首先創(chuàng)建設(shè)置對話框;(2).讀取系統(tǒng)的當(dāng)前設(shè)置參數(shù)并顯示;(3).用戶可以在各個設(shè)置按鈕上選擇符合自己要求的選項(xiàng)(也可只是查看,不作選擇);(4).在完成(3)步驟后,用戶選擇是否同意現(xiàn)有的參數(shù)設(shè)置,如果不同意則詢問是否退出系統(tǒng)參數(shù)設(shè)置,如果不退出則返回步驟(3),否則退出設(shè)置;(5).如果在步驟(4)中選擇同意現(xiàn)有的參數(shù)設(shè)置,則將設(shè)置參數(shù)輸入系統(tǒng)核心模塊,并退出系統(tǒng)設(shè)置。MPEG碼流離線分析軟件,首先通過底層硬件模塊得到系統(tǒng)控制權(quán),然后啟動程序視圖,創(chuàng)建各功能頁面,程序視圖框架包括工具欄和菜單欄、樹型結(jié)構(gòu)框架、綜合分析框架、PCR分析框架、節(jié)目分析框架、表格分析框架、視頻分析框架。6,按權(quán)利要求5所述的PACMIAMPEG碼流發(fā)生、分析、記錄方法及設(shè)備,其特征在于進(jìn)入實(shí)時分析時調(diào)用系統(tǒng)核心模塊,其工作步聚是1.啟動系統(tǒng)核心模塊,開始等待底層硬件模塊的中斷調(diào)用;2.啟動底層硬件模塊,底層硬件模塊從輸入信號線上捕獲碼流數(shù)據(jù)填充入系統(tǒng)內(nèi)存的緩沖器1中,當(dāng)緩沖器1中的數(shù)據(jù)填滿后,產(chǎn)生系統(tǒng)中斷,調(diào)用系統(tǒng)核心模塊中的中斷響應(yīng)函數(shù),并將緩沖器的地址、緩沖器的大小和硬件時鐘傳給中斷響應(yīng)函數(shù)。完成以上步驟后,底層硬件模塊繼續(xù)捕捉碼流數(shù)據(jù),并填充入系統(tǒng)內(nèi)存緩沖器2中,當(dāng)緩沖器2的數(shù)據(jù)填滿后,產(chǎn)生系統(tǒng)中斷,調(diào)用系統(tǒng)核心模塊的中斷響應(yīng)函數(shù),重復(fù)步驟2直到分析系統(tǒng)發(fā)出停止分析的控制命令;3.系統(tǒng)核心模塊在收到底層硬件模塊的中斷調(diào)用后,運(yùn)行中斷響應(yīng)函數(shù)。中斷響應(yīng)函數(shù)得到碼流數(shù)據(jù)的內(nèi)存指針、碼流數(shù)據(jù)塊的大小和系統(tǒng)硬件的時鐘信息。首先通過碼流數(shù)據(jù)的大小計(jì)算碼流數(shù)據(jù)的包數(shù)和每個數(shù)據(jù)包的包長;按包數(shù)分別對每個數(shù)據(jù)包進(jìn)行分析;4.在MPEG的傳輸流中有許多特殊的服務(wù)信息表格,他們以包數(shù)據(jù)的形式發(fā)布在數(shù)據(jù)流中。其中的PAT表格(Programassociationtable節(jié)目關(guān)聯(lián)表)是產(chǎn)生整個碼流結(jié)構(gòu)的關(guān)鍵表格。在步驟3中,一旦出現(xiàn)PAT表的數(shù)據(jù)包,即刻進(jìn)入PAT表格分析過程。5.在步驟3中,對每個數(shù)據(jù)包進(jìn)行分析前先檢查數(shù)據(jù)包的第一個字節(jié)是否為同步字節(jié)0×47。若不是,表明該數(shù)據(jù)包可能出現(xiàn)數(shù)據(jù)錯誤或是數(shù)據(jù)沒有同步。將錯誤信息送入錯誤處理模塊,并進(jìn)行下一個數(shù)據(jù)包的分析;以上步驟完成后,檢查數(shù)據(jù)包中的第二個字節(jié)的最高位(傳輸錯誤標(biāo)志位),若為“1”則表示數(shù)據(jù)包中存在無法糾正的傳輸錯誤,將錯誤信息送入錯誤處理模塊,并進(jìn)行下一個數(shù)據(jù)包的分析;以上步驟完成后,檢查數(shù)據(jù)包中的第四個字節(jié)的后4位(包連續(xù)計(jì)數(shù)位)是否是上一個相同PID包的連續(xù)計(jì)數(shù)+1(0×f+1=0),若不是,則在碼流中可能出現(xiàn)數(shù)據(jù)丟失或重復(fù),將錯誤信息送入錯誤處理模塊,并進(jìn)行下一個數(shù)據(jù)包的分析;6.在完成步驟5后,對每個數(shù)據(jù)包的包頭數(shù)據(jù)進(jìn)行分析,檢查是否存在節(jié)目的時鐘信息。若有時鐘信息,則查找該數(shù)據(jù)包對應(yīng)的節(jié)目號,根據(jù)節(jié)目號取得上一次的時鐘信息,再從硬件的時鐘信息中查找對應(yīng)的時鐘信息,計(jì)算出PCR時鐘的間隔值和精度值;將計(jì)算結(jié)果送入FIFO(先進(jìn)先出的緩沖器)中,判斷其間隔值和精度值是否超出了標(biāo)準(zhǔn)允許的范圍。若超出范圍,則將錯誤信息送入錯誤信息處理模塊;7.在完成步驟6后,將每個數(shù)據(jù)包的包頭中的PID(PacketID13比特)取出,根據(jù)標(biāo)準(zhǔn)分析包數(shù)據(jù)的屬性;8.在步驟7中,若包的PID屬于服務(wù)信息表中的一種(PSI-SI表格),則取出數(shù)據(jù)包中的表格識別碼(TableID),根據(jù)TableID分別進(jìn)行不同表格的分析。其中若出現(xiàn)PAT表,則執(zhí)行所述的步驟4,并刷新碼流結(jié)構(gòu);9.在步驟7中,若包的PID屬于音/視頻流數(shù)據(jù),則查找該音/視頻數(shù)據(jù)屬于哪套節(jié)目,并從數(shù)據(jù)包中將音/視頻的屬性取出,放入對應(yīng)的節(jié)目屬性的數(shù)據(jù)結(jié)構(gòu)中;10.在步驟7中,若包的PID不屬于任何標(biāo)準(zhǔn)所規(guī)定的PID并且不屬于任何節(jié)目中的數(shù)據(jù)流,則將該P(yáng)ID的數(shù)據(jù)包認(rèn)為是碼流未指定的PID,將其列入未指定PID列表中,并將錯誤信息送入錯誤信息處理模塊;11.在步驟1中,一旦底層硬件模塊被啟動,系統(tǒng)將定時向硬件申請當(dāng)前的硬件信息數(shù)據(jù),并將得到的硬件信息送入硬件信息分析模塊,將硬件信息顯示給用戶。7,按權(quán)利要求5所述的PCMCIAMPEG碼流發(fā)生、分析、記錄方法及設(shè)備,其特征在于進(jìn)入系統(tǒng)后記錄碼流的工作步聚是1,用戶輸入要記錄的文件路徑和文件名;2,用戶輸入要記錄的碼流包數(shù)和選擇是否進(jìn)行碼流記錄過濾;3,打開“碼流記錄”,系統(tǒng)將要記錄的碼流文件名和和記錄參數(shù)送入底層硬件模塊,并向底層硬件模塊發(fā)送開始記錄的控制命令,系統(tǒng)開始記錄碼流;4,在完成步聚1、2、3后,若用戶在第2步聚中輸入的記錄包數(shù)為“0”,系統(tǒng)向底層硬件模塊發(fā)送停止記錄命令,系統(tǒng)停止碼流記錄,否則,碼流記錄到用戶輸入的包數(shù)時,底層硬件模塊自動停止碼流記錄過程;5,如果在步聚2中用戶選擇了碼流過濾,則由用戶在碼流記錄設(shè)置中選擇要過濾的PID或要存儲的PID;6,在步聚5中,若用戶不知道輸入源中存在哪些PID,則可通過“掃描輸入”按扭取得輸入源的PID列表,供用戶選擇。進(jìn)入系統(tǒng)后,碼流發(fā)生的步聚是1,戶輸入要發(fā)生的碼流文件路徑和文件名;2,系統(tǒng)核心模塊分析碼流文件,恢復(fù)文件的時鐘;3,用戶完成碼流發(fā)生的各項(xiàng)設(shè)置;4,要發(fā)生的碼流文件名,發(fā)生參數(shù)送入底層硬件模塊;5,成步聚集1-4后,打開“碼流發(fā)生”,系統(tǒng)向底層硬件模塊發(fā)送開始發(fā)生的命令,系統(tǒng)發(fā)生碼流;7,在步聚5后,系統(tǒng)向底層硬件模塊發(fā)送停止發(fā)生的控制命令,系統(tǒng)停止發(fā)生碼流;8,按權(quán)利要求5所述的PCMCIAMPEG碼流發(fā)生、分析、記錄方法及設(shè)備,其特征在于所述碼流離線分析軟件,其中文件識別程序的工作步聚是1,選擇要分析的流文件;2,取得文件名及其后綴,并判斷是否為傳輸流后綴,若不是,則警告用戶該流文件可能不是可分析的傳輸流;3,查找同步字節(jié)OX47,記下當(dāng)前位置,認(rèn)為其是文件開始的的偏移量;4,繼續(xù)查OX47,若兩個相鄰OX47的間隔大于188則記下間隔值,反之,當(dāng)前位置為碼流起始位置,繼續(xù)步聚4;5,重復(fù)步聚4,直到獲得5個連續(xù)的間隔值后,判斷其中是否存在合法值(即是否為188或204);若存在,則將間隔值和文件頭偏移量的值送入系統(tǒng)核心心模塊,反之,則退回步聚1重新選擇文件。9,按權(quán)利要求5所述的PCMCIAMPEG碼流分析方法及設(shè)備,其特征在于所述碼流離線分析軟件,其中,文件時鐘恢復(fù)模塊的程序工作步聚是1,取得節(jié)目的PCR的PID;2,找含有PCR信息的數(shù)據(jù)包,記錄其位置和PCR值;3,查找后一個含有PCR信息的數(shù)據(jù)包,記錄其位置和PCR值;4,判斷是否找到6個PCR包,或是文件結(jié)束,如不是,返回3;5,記錄共找到的PCR包數(shù)pcmum;6,從文件未尾查找第一個含有PCR信息的數(shù)據(jù)包,記錄其位置和PCR值;7,查找前一個含有PCR信息的數(shù)據(jù)包,記錄其位置和PCR值;8,是否找到pcmum個PCR包?如不是,則返回7;9,計(jì)算前向第i(i<=pcmum)個PCR與后向第pcmum-j(j<=pcmum)個PCR之間的比特?cái)?shù)和PCR時鐘間隔,以27MHZ時鐘計(jì)算出碼率;10,判斷是否計(jì)算出pcmum個碼率,如不是,返回9;11,計(jì)算各碼率之間的誤差,去掉明顯錯誤的碼率值,對相對正確的碼率值取平均值;12,將計(jì)算結(jié)果送入系統(tǒng)核心模塊。10,按權(quán)利要求5所述的PCMCIAMPEG碼流分析方法及設(shè)備,其特征在于所述碼流離線分析軟件,其中,音/視頻倒出模塊程序的工作步聚是1,取得音視頻流的PID值,通過選擇決定導(dǎo)出的是PES還是ES;若為ES則繼續(xù)步聚2,否則跳到步聚4;2,斷選擇的是音頻流還是視頻流,若為音頻流則查找第一個音頻頭,反之,則查找第一個視頻序列頭,并記錄其位置,忽略其PES及TS包的頭數(shù)據(jù),開始記錄有效數(shù)據(jù);3,判斷是否將選擇范圍內(nèi)的數(shù)據(jù)流都導(dǎo)出,若無,繼續(xù)步聚2,反之,則跳到退出該模塊;4,在可選擇的范圍內(nèi)查找下一個含有PES頭的數(shù)據(jù)包,記下PES包的數(shù)據(jù)長度;5,忽略TS包的頭數(shù)據(jù),開始記錄有效數(shù)據(jù),直到一個PES的數(shù)據(jù)結(jié)束為止;6,判斷是否將選擇范圍內(nèi)的PES數(shù)據(jù)都導(dǎo)出,若無,繼續(xù)步聚4,反之,退出出該模塊。全文摘要本發(fā)明提供一種硬件和軟件結(jié)合的測試儀器,用于測試數(shù)字電視廣播中對傳輸PCMCIAMPEG碼流的發(fā)生、分析、記錄方法,硬件有碼流輸入控制、處理及緩沖,PMCIA接口控制,軟件采用較獨(dú)立的三個軟件層次-應(yīng)用軟件、支持軟件、驅(qū)動程序,驅(qū)動程序是操作系統(tǒng)管理硬件所必須的,其他軟件對硬件的操作都經(jīng)過驅(qū)動程序,而支持軟件與應(yīng)用軟件的分離可以屏蔽底層的細(xì)節(jié),本發(fā)明可以充分利用軟、硬件的優(yōu)勢,靈活使用,功能強(qiáng)大,可以對各種碼流進(jìn)行分析,包括CA碼流,DVB標(biāo)準(zhǔn)輸入的碼流,也可測試分析ATSC標(biāo)準(zhǔn)輸入的碼流,儀器體積小,攜帶方便,適用于技術(shù)人員對系統(tǒng)進(jìn)行適時測試。文檔編號H04N7/015GK1375993SQ0211154公開日2002年10月23日申請日期2002年4月28日優(yōu)先權(quán)日2002年4月28日發(fā)明者惠新標(biāo),戚丹青,陳駿逸,顧燕玲申請人:上海市廣播科學(xué)研究所