專利名稱::自助碼流分析方法自助碼流分析方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及數(shù)字機(jī)頂盒(包括其它DVB相關(guān)產(chǎn)品)設(shè)計(jì)開(kāi)發(fā)及測(cè)試過(guò)程中需要對(duì)碼流進(jìn)行分析的技術(shù),尤其是指一種自助碼流分析方法。
背景技術(shù):
:現(xiàn)有的碼流分析軟件可以分析DVB標(biāo)準(zhǔn)中現(xiàn)有的表與描述子。現(xiàn)有的碼流分析軟件不能分析用戶私有的自定義格式的表與描述子,而現(xiàn)實(shí)的碼流分析過(guò)程中,有半數(shù)的情況是需要分析私有格式的表與描述子,現(xiàn)有碼流分析軟件已經(jīng)不能滿足實(shí)際需求。
發(fā)明內(nèi)容本發(fā)明所要解決的技術(shù)問(wèn)題是,克服現(xiàn)有技術(shù)的不足,提供一種可以按用戶編輯并存儲(chǔ)的描述子和表規(guī)則來(lái)解析接收到的信息的方法。本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案是:一種自助碼流分析方法,包括如下步驟a)、接受用戶對(duì)用戶定義規(guī)則的輸入;b)、在程序初始時(shí)將所述的用戶定義規(guī)則導(dǎo)入;c)、在有數(shù)據(jù)處理時(shí)按所述的用戶定義規(guī)則解析。所述的用戶定義規(guī)則是描述子和表規(guī)則,所述的用戶定義規(guī)則存儲(chǔ)為外部文件。所述的用戶定義描述子規(guī)則過(guò)程包括以下步驟第一步在規(guī)則編輯界面處選擇編輯所述的描述子規(guī)則;第二步在相應(yīng)的輸入框并填寫所述的描述子Tag值與所述的描述子的名稱;第三步在所述的描述子規(guī)則框填寫用戶自定的描述子規(guī)則;第四步點(diǎn)擊添加規(guī)則按鈕即可。所述的用戶定義定義表規(guī)則過(guò)程包括以下步驟步驟一在規(guī)則編輯界面處選擇編輯所述的表規(guī)則;步驟二在相應(yīng)的輸入框并填寫所述的表的PID值,TableID值與所述的表的名稱;步驟三在所述的表規(guī)則框填寫用戶自定的表規(guī)則;步驟四點(diǎn)擊添加規(guī)則按鈕即可。所述的步驟a)是指用戶對(duì)所述的描述子和表規(guī)則進(jìn)行編輯。4要照所迷的描述子的TAG值和所述的表的PID與TableID區(qū)分規(guī)則。所述的步驟b)是程序在初始化時(shí)通過(guò)讀取所述的外部文件來(lái)導(dǎo)入所述的描述子和表規(guī)則。其特征在于所述的步驟c)是將接收到的數(shù)據(jù)按照所述的描述子的TAG值和所述的表的PID與TableID,在所迷的描述子規(guī)則里查找相應(yīng)的規(guī)則進(jìn)行解析。一種自助碼流分析方法,具體操作步驟包括步驟1、接收用戶對(duì)描述子和表規(guī)則進(jìn)行編輯并將該描述子和表規(guī)則存儲(chǔ)為外部文件;步驟2、在程序初始化時(shí)通過(guò)讀取所述的外部文件來(lái)導(dǎo)入所述的描述子和表規(guī)則;步驟3、將接收到的數(shù)據(jù)按照所述的描述子和表的區(qū)分標(biāo)準(zhǔn),在所述的描述子規(guī)則里查找相應(yīng)的規(guī)則進(jìn)行解析。所述的區(qū)分標(biāo)準(zhǔn)是所述的描迷子的TAG值和所述的表的PID與TableID。本發(fā)明的有益效果是,將描述子和表規(guī)則存儲(chǔ)為外部文件,可以通過(guò)用戶自定義進(jìn)行編輯描述子和表規(guī)則,實(shí)現(xiàn)了用戶可以隨意增減修文描述子和表規(guī)則的功能,使用戶具備不修支碼流分析軟件而快速添加私有協(xié)議分析能力。圖l是自助碼流分析方法的工作流程圖。具體實(shí)施方式如圖l所示,本發(fā)明實(shí)施方式一種自助碼流分析方法,不是將描述子和表規(guī)則內(nèi)置于代碼中,而是按照一定的格式將描述子和表規(guī)則存儲(chǔ)為外部文件,用戶可以通過(guò)自定義對(duì)存儲(chǔ)于外部的文件進(jìn)行編輯,隨意增減修改描述子和表規(guī)則,使用戶具備不用修改碼流分析軟件而可以快速準(zhǔn)確添加私有協(xié)議的分析能力。在程序初始化時(shí)通過(guò)讀取外部文件來(lái)導(dǎo)入所述的描述子和表規(guī)則,各個(gè)規(guī)則以描述子的TAG值和表的PID與TableID來(lái)進(jìn)行區(qū)分。碼流分析方法可以分析并組合出單個(gè)的Section數(shù)據(jù)后再根據(jù)其描述子的TAG值和表的PID與TableID,,在導(dǎo)入的描述子規(guī)則里面查找相應(yīng)的規(guī)則來(lái)對(duì)接收到的數(shù)據(jù)進(jìn)行解析。用戶自定義描述子過(guò)程包括如下步驟第一步在規(guī)則編輯界面處選擇編輯描述子規(guī)則。第二步在相應(yīng)的輸入框并填寫描述子Tag值與描述子的名稱(軟件在碼流解析的時(shí)候會(huì)根據(jù)填寫的Tag值來(lái)確定是采用用戶定義的此描述子規(guī)則,如果Tag值相等,則會(huì)采用用戶定義的此規(guī)則來(lái)解析相應(yīng)的描述子,并現(xiàn)實(shí)用戶填寫的描述子名稱)第三步在描述子規(guī)則框填寫用戶自定的描述子規(guī)則。以下下舉例i兌明以下描述子為用戶想要添加的私有描述子(其表述方式按照國(guó)際文獻(xiàn)慣例表述)描述子名一爾為My—descriptorMy—descriptor()descriptor—tag8uimsbfdescriptor—length8uimsbfreserved—foture_use4bslbfmy—content4uimsbfmy—component—type8uimsbfmy—component—tag8uimsbfISO—639-2_language_code24bslbfchar—length8uimsbffor(i=0;i<N;i++){mytextchar8uimsbfif(char—length==0)single—char8uimsbf用戶在添加此私有描述子規(guī)則時(shí),只需要在規(guī)則框內(nèi)填入以下內(nèi)容:reserved—future—use斗my—content4my_component—type8my—component—tag8ISO—639-2—language—code24char—length8forchar—length{my—text—char8if(char—length==0)single—char8可以看到,變化為Al去掉了前面通用的兩項(xiàng)descriptor—tag8uimsbfdescriptor—length8uimsbfBl去掉了每項(xiàng)所占位數(shù)單位uimsbf或bslbfClfor循環(huán)長(zhǎng)度控制變量修改為其實(shí)際長(zhǎng)度控制變量charjength(若for循環(huán)為描述子剩余長(zhǎng)度,則不填寫長(zhǎng)度控制變量)第四步點(diǎn)擊添加規(guī)則按鈕即可。(如果已經(jīng)存在相同Tag值的描述子,軟件會(huì)作出提示,用戶可以選擇刪除原有描述子規(guī)則)用戶自定義表規(guī)則過(guò)程步驟一在規(guī)則編輯界面處選擇編輯表規(guī)則。步驟二在相應(yīng)的輸入框并填寫表的PID值,TableID值與表的名稱(軟件在解析碼流的時(shí)候會(huì)根據(jù)填寫的PID值與TableID值來(lái)確定是采用用戶定義的此表規(guī)則,如果Tag值相等,則會(huì)采用用戶定義的此規(guī)則來(lái)解析相應(yīng)的表,并現(xiàn)實(shí)用戶填寫的表的名稱)步驟三在表規(guī)則框填寫用戶自定的表規(guī)則。以下舉例i^明以下表規(guī)則為用戶想要添加的私有表(其表述方式按照國(guó)際文獻(xiàn)慣例表述)service_description_section()tablejd8uimsbfsection—syntax—indicator1bslbfre;s6rv6d一futur6use1bslbfreserved2bsMsection—length12uimsbftransport—stream—id16uimsbfreserved2bsMversion—number5uimsbfcurrentnextindicator1bslbfsection—number8uimsbflast—section—number8uimsbforiginal—network—id16uimsbfreserved—future—use8bslbffor(i=0;i<N;i++){service—id16uimsbfreserved—future—use6bslbfEIT—schedule—flag1bslbfEIT_present—following—flag1bslbfrunning—status3uimsbffree一CA一mode1bslbfdescriptors—loop—length12uimsbffor(j=0;j<N;j++)descriptorOCRC3232rpchof用戶在添加此私有表規(guī)則時(shí),只需要在規(guī)則框內(nèi)填入以下內(nèi)容:table—id8section—syntax—indicator1reserved—future—use1reserved2section—length12transport—stream—id16res6rv6d2version—number5currentnextindicator1<formula>formulaseeoriginaldocumentpage10</formula>可以看到,變化為A2去掉了每項(xiàng)所占位數(shù)單位uimsbf或bslbfB2for循環(huán)長(zhǎng)度控制變量修改為其實(shí)際長(zhǎng)度控制變量char—length(若for循環(huán)為描述子剩余長(zhǎng)度,則不填寫長(zhǎng)度控制變量)步驟四點(diǎn)擊添加規(guī)則按鈕即可。(如杲已經(jīng)存在相同PID與TableID的表時(shí),軟件會(huì)作出提示,用戶可以選擇刪除原有表規(guī)則)如圖1本分析方法的工作流程圖所示,首先將解析碼流才莫擬發(fā)包,接收TS包后分解數(shù)據(jù)到Filter,當(dāng)接收到完整的Section后,在DVB協(xié)議中找尋對(duì)應(yīng)的解析規(guī)則;接著在用戶自定義格式中找尋對(duì)應(yīng)的解析規(guī)則,找到后,按照用戶定義規(guī)則解析數(shù)據(jù)并存儲(chǔ),構(gòu)建基本PSI/SI信息,構(gòu)建EPGNVOD和基本節(jié)目信息以及原始數(shù)據(jù)信息,從而顯示分析結(jié)果;當(dāng)在用戶自定義格式中沒(méi)有找到對(duì)應(yīng)的解析規(guī)則后,則顯示原始數(shù)據(jù),構(gòu)建基本PSI/SI信息,構(gòu)建EPGNVOD和基本節(jié)目信息,從而顯示結(jié)果。當(dāng)不存在用戶自定義格式時(shí),則解析碼流模擬發(fā)包,接收TS包后分解數(shù)據(jù)到Filter,當(dāng)接收到完整的Section后,在DVB協(xié)議中找尋對(duì)應(yīng)的解析規(guī)則并按照標(biāo)準(zhǔn)DVB協(xié)議解析數(shù)據(jù)并存儲(chǔ),構(gòu)建基本PSI/SI信息,構(gòu)建EPGNVOD和基本節(jié)目信息以及原始數(shù)據(jù)信息,從而顯示結(jié)果。根據(jù)本發(fā)明,用戶可以對(duì)描述子和表規(guī)則的進(jìn)行簡(jiǎn)明編輯,可以將用戶編輯了的描述子與表規(guī)則重新導(dǎo)入新的規(guī)則庫(kù),從而實(shí)現(xiàn)了用戶自定義規(guī)則功能。本分析方法的描述子與表規(guī)則描述語(yǔ)法盡可能地保留國(guó)內(nèi)外DVB文獻(xiàn)資料上對(duì)描述子與表規(guī)則同行的描述語(yǔ)法格式,這樣,用戶添加新的描述子與表規(guī)則的時(shí)候,基本不需要修改,用戶可以快速使用本分析方法。隨著數(shù)字電視在國(guó)內(nèi)普及,各地為了實(shí)現(xiàn)本地應(yīng)用,大量采用的私有協(xié)議,本方法采用了分析軟件和描述子與表MJ'j分離的設(shè)計(jì)方式,實(shí)現(xiàn)了用戶隨意增減修改描述子和表規(guī)則的功能,使用戶具備不修改碼流分析軟件而快速添加私有協(xié)議分析能力。明,不能認(rèn)定本發(fā)明的具體實(shí)施只局限于這些說(shuō)明。對(duì)于本發(fā)明所屬
技術(shù)領(lǐng)域:
的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡(jiǎn)單推演或替換,都應(yīng)當(dāng)視為屬于本發(fā)明的保護(hù)范圍。權(quán)利要求1.一種自助碼流分析方法,其特征在于包括如下步驟a)、接受用戶對(duì)用戶定義規(guī)則的輸入;b)、在程序初始時(shí)將所述的用戶定義規(guī)則導(dǎo)入;c)、在有數(shù)據(jù)處理時(shí)按所述的用戶定義規(guī)則解析。2.根據(jù)權(quán)利要求l所述的自助碼流分析方法,其特征在于所述的用戶定義規(guī)則是描述子和表規(guī)則,所述的用戶定義規(guī)則存儲(chǔ)為外部文件。3.根據(jù)權(quán)利要求2所述的自助碼流分析方法,其特征在于所述的用戶定義描述子規(guī)則過(guò)程包括以下步驟第一步在規(guī)則編輯界面處選擇編輯所述的描述子規(guī)則;第二步在相應(yīng)的輸入框并填寫所述的描述子Tag值與所述的描述子的名稱;第三步在所迷的描述子規(guī)則框填寫用戶自定的描述子規(guī)則;第四步點(diǎn)擊添加規(guī)則按鈕即可。4.根據(jù)權(quán)利要求2所述的自助碼流分析方法,其特征在于所述的用戶定義定義表規(guī)則過(guò)程包括以下步驟步驟一在規(guī)則編輯界面處選擇編輯所述的表規(guī)則;步驟二在相應(yīng)的輸入框并填寫所述的表的PID值,TableID值與所述的表的名稱;步驟三在所述的表規(guī)則框填寫用戶自定的表規(guī)則;步驟四點(diǎn)擊添加規(guī)則按鈕即可。5.沖艮據(jù)權(quán)利要求l所述的自助碼流分析方法,其特征在于所述的步驟a)是指用戶對(duì)所迷的描述子和表規(guī)則進(jìn)行編輯。6.根據(jù)權(quán)利要求2所述的自助碼流分析方法,其特征在于按照所述的描述子的TAG值和所述的表的PID與TableID區(qū)分規(guī)則。7.根據(jù)權(quán)利要求12所述的自助碼流分析方法,其特征在于所述的步驟b)是程序在初始化時(shí)通過(guò)讀取所述的外部文件來(lái)導(dǎo)入所述的描述子和表規(guī)則。8.根據(jù)權(quán)利要求1所述的自助碼流分析方法,其特征在于其特征在于所述的步驟c)是將接收到的數(shù)據(jù)按照所述的描述子的TAG值和所述的表的PID與TableID,在所述的描述子規(guī)則里查找相應(yīng)的規(guī)則進(jìn)行解析。9.一種自助碼流分析方法,其特征在于具體操作步驟包括步驟l、接收用戶對(duì)描述子和表規(guī)則進(jìn)行編輯并將該描述子和表規(guī)則存儲(chǔ)為外部文件;步驟2、在程序初始化時(shí)通過(guò)讀取所述的外部文件來(lái)導(dǎo)入所述的描述子和表規(guī)則;步驟3、將接收到的數(shù)據(jù)按照所述的描述子和表的區(qū)分標(biāo)準(zhǔn),在所述的描述子規(guī)則里查找相應(yīng)的規(guī)則進(jìn)行解析。10.根據(jù)權(quán)利要求9所述的自助碼流分析方法,其特征在于所述的區(qū)分標(biāo)準(zhǔn)是所述的描述子的TAG值和所述的表的PID與TableID。全文摘要本發(fā)明公開(kāi)了一種自助碼流分析方法,包括如下步驟a)、接受用戶對(duì)用戶定義規(guī)則的輸入;b)、在程序初始時(shí)將所述的用戶定義規(guī)則導(dǎo)入;c)、在有數(shù)據(jù)處理時(shí)按所述的用戶定義規(guī)則解析。將描述子和表規(guī)則存儲(chǔ)為外部文件,可以通過(guò)用戶自定義進(jìn)行編輯描述子和表規(guī)則,實(shí)現(xiàn)了用戶可以隨意增減修改描述子和表規(guī)則的功能,使用戶具備不修改碼流分析軟件而快速添加私有協(xié)議分析能力。文檔編號(hào)H04N7/24GK101472165SQ20071030582公開(kāi)日2009年7月1日申請(qǐng)日期2007年12月27日優(yōu)先權(quán)日2007年12月27日發(fā)明者于海波申請(qǐng)人:康佳集團(tuán)股份有限公司