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