專利名稱:多節(jié)目傳送流分離的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)字電視領(lǐng)域,特別是指一種多節(jié)目傳送流分離的方法及裝置。
背景技術(shù):
在日益數(shù)字化的當(dāng)代,數(shù)字電視信號(hào)無處不在,不僅存在電視節(jié)目播放的需求,同時(shí)對(duì)電視節(jié)目的錄制和分發(fā)也存在著大量的需求。但是實(shí)際接收到的電視節(jié)目大多是多個(gè)節(jié)目復(fù)用在一起的TS (Transport Stream,傳送流),目前使用的STB (Set Top Box,機(jī)頂盒)和便攜多媒體播放設(shè)備,都只是分離出一套節(jié)目來播放或錄制,分離出的節(jié)目不是信息完整的TS流,只能供本機(jī)播放,不能被其它設(shè)備或播放器播放,更無法分離出多套節(jié)目。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種多節(jié)目傳送流分離的方法及裝置,能夠分離出多個(gè)節(jié)目,并且保持每個(gè)節(jié)目傳送流的完整性。為解決上述技術(shù)問題,本發(fā)明的實(shí)施例提供技術(shù)方案如下一方面,提供一種多節(jié)目傳送流分離的方法,包括接收傳送流TS,所述TS中包含有至少一個(gè)節(jié)目的信息;從所述TS中獲取每個(gè)節(jié)目對(duì)應(yīng)的傳輸包標(biāo)志碼PID,并存儲(chǔ)PID與每個(gè)節(jié)目之間的對(duì)應(yīng)關(guān)系;根據(jù)所述對(duì)應(yīng)關(guān)系對(duì)所述TS中的數(shù)據(jù)包進(jìn)行分離,獲取每個(gè)節(jié)目對(duì)應(yīng)的獨(dú)立TS,所述獨(dú)立TS存儲(chǔ)在節(jié)目對(duì)應(yīng)的緩沖區(qū)中,包括節(jié)目對(duì)應(yīng)的音頻數(shù)據(jù)包、視頻數(shù)據(jù)包、節(jié)目時(shí)鐘基準(zhǔn)PCR、節(jié)目關(guān)聯(lián)表PAT和節(jié)目映射表PMT。其中,所述從所述TS中獲取每個(gè)節(jié)目對(duì)應(yīng)的PID包括對(duì)所述TS中的PAT進(jìn)行分析,根據(jù)所述PAT中的PMT PID獲取每個(gè)節(jié)目對(duì)應(yīng)的PMT ;對(duì)每個(gè)節(jié)目對(duì)應(yīng)的PMT進(jìn)行分析,獲取每個(gè)節(jié)目對(duì)應(yīng)的PCR PID、視頻數(shù)據(jù)包PID和音頻數(shù)據(jù)包PID。其中,所述根據(jù)所述對(duì)應(yīng)關(guān)系對(duì)所述TS中的數(shù)據(jù)包進(jìn)行分離之前包括重構(gòu)每個(gè)節(jié)目對(duì)應(yīng)的PAT ;在η個(gè)節(jié)目的PMT PID 一致時(shí),為所述η個(gè)節(jié)目重構(gòu)PMT。其中,所述根據(jù)所述對(duì)應(yīng)關(guān)系對(duì)所述TS中的數(shù)據(jù)包進(jìn)行分離,獲取每個(gè)節(jié)目對(duì)應(yīng)的獨(dú)立TS包括將所述TS中的數(shù)據(jù)包的PID與所述對(duì)應(yīng)關(guān)系中存儲(chǔ)的PID進(jìn)行逐一匹配;根據(jù)匹配結(jié)果,將所述數(shù)據(jù)包或重構(gòu)的PAT和PMT存儲(chǔ)到數(shù)據(jù)包的PID對(duì)應(yīng)的節(jié)目的緩沖區(qū)中。其中,所述根據(jù)匹配結(jié)果,將所述數(shù)據(jù)包或重構(gòu)的PAT和PMT存儲(chǔ)到數(shù)據(jù)包的PID對(duì)應(yīng)的節(jié)目的緩沖區(qū)中包括
當(dāng)所述數(shù)據(jù)包的PID為PAT PID時(shí),將重構(gòu)的PAT存儲(chǔ)到數(shù)據(jù)包的PID對(duì)應(yīng)的節(jié)目的緩沖區(qū)中;當(dāng)所述數(shù)據(jù)包的PID為η個(gè)節(jié)目對(duì)應(yīng)的PMT PID時(shí),將重構(gòu)的PMT存儲(chǔ)到所述η個(gè)節(jié)目的緩沖區(qū)中;當(dāng)所述數(shù)據(jù)包的PID僅為I個(gè)節(jié)目對(duì)應(yīng)的PMT PID時(shí),將所述數(shù)據(jù)包存儲(chǔ)到所述節(jié)目的緩沖區(qū)中;當(dāng)所述PID為PCR PID時(shí),將所述數(shù)據(jù)包存儲(chǔ)到數(shù)據(jù)包的PID對(duì)應(yīng)的節(jié)目的緩沖區(qū)中;當(dāng)所述PID為視頻數(shù)據(jù)包PID或音頻數(shù)據(jù)包PID時(shí),將所述數(shù)據(jù)包存儲(chǔ)到數(shù)據(jù)包的PID對(duì)應(yīng)的節(jié)目的緩沖區(qū)中。本發(fā)明實(shí)施例還提供了一種多節(jié)目傳送流分離的裝置,包括接收模塊,用于接收傳送流TS,所述TS中包含有至少一個(gè)節(jié)目的信息;存儲(chǔ)模塊,用于從所述TS中獲取每個(gè)節(jié)目對(duì)應(yīng)的傳輸包標(biāo)志碼PID,并存儲(chǔ)PID與每個(gè)節(jié)目之間的對(duì)應(yīng)關(guān)系;分離模塊,用于根據(jù)所述對(duì)應(yīng)關(guān)系對(duì)所述TS中的數(shù)據(jù)包進(jìn)行分離,獲取每個(gè)節(jié)目對(duì)應(yīng)的獨(dú)立TS,所述獨(dú)立TS存儲(chǔ)在節(jié)目對(duì)應(yīng)的緩沖區(qū)中,包括節(jié)目對(duì)應(yīng)的音頻數(shù)據(jù)包、視頻數(shù)據(jù)包、節(jié)目時(shí)鐘基準(zhǔn)PCR、節(jié)目關(guān)聯(lián)表PAT和節(jié)目映射表PMT。其中,所述存儲(chǔ)模塊具體用于對(duì)所述TS中的PAT進(jìn)行分析,根據(jù)所述PAT中的PMTPID獲取每個(gè)節(jié)目對(duì)應(yīng)的PMT ;對(duì)每個(gè)節(jié)目對(duì)應(yīng)的PMT進(jìn)行分析,獲取每個(gè)節(jié)目對(duì)應(yīng)的PCRPID、視頻數(shù)據(jù)包PID和音頻數(shù)據(jù)包PID。其中,所述裝置還包括重構(gòu)模塊,用于重構(gòu)每個(gè)節(jié)目對(duì)應(yīng)的PAT ;在η個(gè)節(jié)目的PMT PID—致時(shí),為所述η 個(gè)節(jié)目重構(gòu)PMT。其中,所述分離模塊包括匹配子模塊,用于將所述TS中的數(shù)據(jù)包的PID與所述對(duì)應(yīng)關(guān)系中存儲(chǔ)的PID進(jìn)行逐一匹配;存儲(chǔ)子模塊,用于根據(jù)匹配結(jié)果,將所述數(shù)據(jù)包或重構(gòu)的PAT和PMT存儲(chǔ)到數(shù)據(jù)包的PID對(duì)應(yīng)的節(jié)目的緩沖區(qū)中。其中,所述存儲(chǔ)子模塊具體用于當(dāng)所述數(shù)據(jù)包的PID為PAT PID時(shí),將重構(gòu)的PAT存儲(chǔ)到數(shù)據(jù)包的PID對(duì)應(yīng)的節(jié)目的緩沖區(qū)中;當(dāng)所述數(shù)據(jù)包的PID為η個(gè)節(jié)目對(duì)應(yīng)的PMT PID時(shí),將重構(gòu)的PMT存儲(chǔ)到所述η個(gè)節(jié)目的緩沖區(qū)中;當(dāng)所述數(shù)據(jù)包的PID僅為I個(gè)節(jié)目對(duì)應(yīng)的PMT PID時(shí),將所述數(shù)據(jù)包存儲(chǔ)到所述節(jié)目的緩沖區(qū)中;當(dāng)所述PID為PCR PID時(shí),將所述數(shù)據(jù)包存儲(chǔ)到數(shù)據(jù)包的PID對(duì)應(yīng)的節(jié)目的緩沖區(qū)中;當(dāng)所述PID為視頻數(shù)據(jù)包PID或音頻數(shù)據(jù)包PID時(shí),將所述數(shù)據(jù)包存儲(chǔ)到數(shù)據(jù)包的PID對(duì)應(yīng)的節(jié)目的緩沖區(qū)中。本發(fā)明的實(shí)施例具有以下有益效果
上述方案中,從輸入的TS中獲取每個(gè)節(jié)目對(duì)應(yīng)的PID,并存儲(chǔ)PID與每個(gè)節(jié)目之間的對(duì)應(yīng)關(guān)系;之后根據(jù)該對(duì)應(yīng)關(guān)系對(duì)TS中的數(shù)據(jù)包進(jìn)行分離,獲取每個(gè)節(jié)目對(duì)應(yīng)的獨(dú)立TS,每個(gè)節(jié)目對(duì)應(yīng)的獨(dú)立TS中包括節(jié)目對(duì)應(yīng)的音頻數(shù)據(jù)包、視頻數(shù)據(jù)包、節(jié)目時(shí)鐘基準(zhǔn)、節(jié)目關(guān)聯(lián)表和節(jié)目映射表。本發(fā)明實(shí)施例不但能夠高效的分離出各個(gè)需要的節(jié)目,而且分離出的每個(gè)節(jié)目是信息完備的TS流,適合于所有支持TS流播放的設(shè)備。
圖I為本發(fā)明實(shí)施例的多節(jié)目傳送流分離的方法的流程示意圖;圖2為本發(fā)明實(shí)施例的多節(jié)目傳送流分離的裝置的結(jié)構(gòu)示意圖;圖3為本發(fā)明實(shí)施例的多節(jié)目傳送流分離的方法的流程框圖;圖4為本發(fā)明實(shí)施例的獲取各頻點(diǎn)下的各個(gè)節(jié)目的所有信息的流程示意圖; 圖5為本發(fā)明實(shí)施例的配置各個(gè)節(jié)目和所需SECTION的PID的流程示意圖;圖6為本發(fā)明實(shí)施例的對(duì)TS進(jìn)行分離的流程示意圖;圖7為本發(fā)明具體實(shí)施例的將TS分離成兩個(gè)節(jié)目的示意圖。
具體實(shí)施例方式為使本發(fā)明的實(shí)施例要解決的技術(shù)問題、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖及具體實(shí)施例進(jìn)行詳細(xì)描述。本發(fā)明的實(shí)施例針對(duì)現(xiàn)有技術(shù)中STB和便攜多媒體播放設(shè)備從多節(jié)目TS中分離出的節(jié)目不是信息完整的TS的問題,提供一種多節(jié)目傳送流分離的方法及裝置,能夠分離出多個(gè)節(jié)目,并且保持每個(gè)節(jié)目傳送流的完整性。圖I為本發(fā)明實(shí)施例的多節(jié)目傳送流分離的方法的流程示意圖,如圖I所示,本實(shí)施例包括步驟101 :接收傳送流;該TS中包含有至少一個(gè)節(jié)目的信息;步驟102 :從傳送流中獲取每個(gè)節(jié)目對(duì)應(yīng)的傳輸包標(biāo)志碼,并存儲(chǔ)傳輸包標(biāo)志碼與每個(gè)節(jié)目之間的對(duì)應(yīng)關(guān)系;步驟103 :根據(jù)對(duì)應(yīng)關(guān)系對(duì)傳送流中的數(shù)據(jù)包進(jìn)行分離,獲取每個(gè)節(jié)目對(duì)應(yīng)的獨(dú)立傳送流,獨(dú)立傳送流存儲(chǔ)在節(jié)目對(duì)應(yīng)的緩沖區(qū)中,包括節(jié)目對(duì)應(yīng)的音頻數(shù)據(jù)包、視頻數(shù)據(jù)包、節(jié)目時(shí)鐘基準(zhǔn)、節(jié)目關(guān)聯(lián)表和節(jié)目映射表。進(jìn)一步地,獨(dú)立傳送流中還包括節(jié)目其它類型的私有數(shù)據(jù)包。上述方案中,從輸入的TS中獲取每個(gè)節(jié)目對(duì)應(yīng)的傳輸包標(biāo)志碼,并存儲(chǔ)傳輸包標(biāo)志碼與每個(gè)節(jié)目之間的對(duì)應(yīng)關(guān)系;之后根據(jù)該對(duì)應(yīng)關(guān)系對(duì)TS中的數(shù)據(jù)包進(jìn)行分離,獲取每個(gè)節(jié)目對(duì)應(yīng)的獨(dú)立TS,每個(gè)節(jié)目對(duì)應(yīng)的獨(dú)立TS中包括節(jié)目對(duì)應(yīng)的音頻數(shù)據(jù)包、視頻數(shù)據(jù)包、節(jié)目時(shí)鐘基準(zhǔn)、節(jié)目關(guān)聯(lián)表和節(jié)目映射表以及節(jié)目其它類型的私有數(shù)據(jù)包。本發(fā)明實(shí)施例不但能夠高效的分離出各個(gè)需要的節(jié)目,而且分離出的每個(gè)節(jié)目是信息完備的TS流,適合于所有支持TS流播放的設(shè)備。圖2為本發(fā)明實(shí)施例的多節(jié)目傳送流分離的裝置的結(jié)構(gòu)示意圖,如圖2所示,本實(shí)施例包括
接收模塊20,用于接收傳送流TS,TS中包含有至少一個(gè)節(jié)目的信息;存儲(chǔ)模塊22,用于從TS中獲取每個(gè)節(jié)目對(duì)應(yīng)的傳輸包標(biāo)志碼PID,并存儲(chǔ)PID與每個(gè)節(jié)目之間的對(duì)應(yīng)關(guān)系;分離模塊24,用于根據(jù)對(duì)應(yīng)關(guān)系對(duì)TS中的數(shù)據(jù)包進(jìn)行分離,獲取每個(gè)節(jié)目對(duì)應(yīng)的獨(dú)立TS,獨(dú)立TS存儲(chǔ)在節(jié)目對(duì)應(yīng)的緩沖區(qū)中,包括節(jié)目對(duì)應(yīng)的音頻數(shù)據(jù)包、視頻數(shù)據(jù)包、節(jié)目時(shí)鐘基準(zhǔn)PCR、節(jié)目關(guān)聯(lián)表PAT和節(jié)目映射表PMT,進(jìn)一步地,分離模塊24分離出的獨(dú)立TS中還包括節(jié)目其它類型的私有數(shù)據(jù)包。 其中,存儲(chǔ)模塊22具體用于對(duì)TS中的PAT進(jìn)行分析,根據(jù)PAT中的PMTPID獲取每個(gè)節(jié)目對(duì)應(yīng)的PMT ;對(duì)每個(gè)節(jié)目對(duì)應(yīng)的PMT進(jìn)行分析,獲取每個(gè)節(jié)目對(duì)應(yīng)的PCR PID、視頻數(shù)據(jù)包PID和音頻數(shù)據(jù)包PID以及其它類型的私有數(shù)據(jù)包PID。 其中,該多節(jié)目傳送流分離的裝置還包括重構(gòu)模塊26,用于重構(gòu)每個(gè)節(jié)目對(duì)應(yīng)的PAT ;在η個(gè)節(jié)目的PMT PID—致時(shí),為η個(gè)節(jié)目重構(gòu)PMT。分離模塊24包括匹配子模塊25,用于將TS中的數(shù)據(jù)包的PID與對(duì)應(yīng)關(guān)系中存儲(chǔ)的PID進(jìn)行逐一匹配;存儲(chǔ)子模塊27,用于根據(jù)匹配結(jié)果,將數(shù)據(jù)包或重構(gòu)的PAT和PMT存儲(chǔ)到數(shù)據(jù)包的PID對(duì)應(yīng)的節(jié)目的緩沖區(qū)中。存儲(chǔ)子模塊27具體用于當(dāng)數(shù)據(jù)包的PID為PAT PID時(shí),將重構(gòu)的PAT存儲(chǔ)到數(shù)據(jù)包的PID對(duì)應(yīng)的節(jié)目的緩沖區(qū)中;當(dāng)數(shù)據(jù)包的PID為η個(gè)節(jié)目對(duì)應(yīng)的PMT PID時(shí),將重構(gòu)的PMT存儲(chǔ)到η個(gè)節(jié)目的緩沖區(qū)中;當(dāng)數(shù)據(jù)包的PID僅為I個(gè)節(jié)目對(duì)應(yīng)的PMT PID時(shí),將數(shù)據(jù)包存儲(chǔ)到該節(jié)目的緩沖區(qū)中;當(dāng)PID為PCR PID時(shí),將數(shù)據(jù)包存儲(chǔ)到數(shù)據(jù)包的PID對(duì)應(yīng)的節(jié)目的緩沖區(qū)中;當(dāng)PID為視頻數(shù)據(jù)包PID或音頻數(shù)據(jù)包PID或其它類型的私有數(shù)據(jù)包PID時(shí),將數(shù)據(jù)包存儲(chǔ)到數(shù)據(jù)包的PID對(duì)應(yīng)的節(jié)目的緩沖區(qū)中。上述方案中,從輸入的TS中獲取每個(gè)節(jié)目對(duì)應(yīng)的PID,并存儲(chǔ)PID與每個(gè)節(jié)目之間的對(duì)應(yīng)關(guān)系;之后根據(jù)該對(duì)應(yīng)關(guān)系對(duì)TS中的數(shù)據(jù)包進(jìn)行分離,獲取每個(gè)節(jié)目對(duì)應(yīng)的獨(dú)立TS,每個(gè)節(jié)目對(duì)應(yīng)的獨(dú)立TS中包括節(jié)目對(duì)應(yīng)的音頻數(shù)據(jù)包、視頻數(shù)據(jù)包、節(jié)目時(shí)鐘基準(zhǔn)、節(jié)目關(guān)聯(lián)表和節(jié)目映射表以及節(jié)目其它類型的私有數(shù)據(jù)包。本發(fā)明實(shí)施例不但能夠高效的分離出各個(gè)需要的節(jié)目,而且分離出的每個(gè)節(jié)目是信息完備的TS流,適合于所有支持TS流播放的設(shè)備。下面結(jié)合附圖對(duì)本發(fā)明的多節(jié)目傳送流分離的方法進(jìn)行進(jìn)一步介紹如圖3所示為本發(fā)明的多節(jié)目傳送流分離的方法的流程框圖,首先獲取各頻點(diǎn)下的各個(gè)節(jié)目的PID (Packet ID dentif ier,傳輸包標(biāo)志碼)信息,并將各個(gè)節(jié)目對(duì)應(yīng)的PID存入節(jié)目信息文件中;并配置各個(gè)所需的SECTION (部分)的PID,供搜臺(tái)、事件監(jiān)控等使用,之后根據(jù)各個(gè)節(jié)目對(duì)應(yīng)的PID和SECTI0NPID對(duì)TS進(jìn)行分離,經(jīng)分離出的數(shù)據(jù)包存在對(duì)應(yīng)節(jié)目的緩沖區(qū)中,之后就可以對(duì)分離出的節(jié)目對(duì)應(yīng)的TS進(jìn)行播放、錄制或者分發(fā)。
本發(fā)明中,所要分離的TS來源可以是DVB(Digital Video Broadcasting,數(shù)字視頻廣播)_C,DVB-T, DVB-S以及其它數(shù)字電視解調(diào)輸出的并行或串行TS數(shù)據(jù);IP網(wǎng)絡(luò)傳輸?shù)臄?shù)字電視節(jié)目;TS文件;其它媒介中符合MPEG (Moving Pictures Experts Group/Mot inPictures Experts Group,動(dòng)態(tài)圖像專家組)_2系統(tǒng)層標(biāo)準(zhǔn)的多節(jié)目TS流。本發(fā)明的多節(jié)目傳送流分離的方法主要包括以下步驟
A、獲取各頻點(diǎn)下的各個(gè)節(jié)目的所有信息,并存入節(jié)目信息文件中;依照頻率表依次鎖定各個(gè)頻點(diǎn),通過調(diào)諧-解調(diào)-TS獲取等過程,得到TS。再從TS中濾出PAT (Program Association Table,節(jié)目關(guān)聯(lián)表),對(duì)PAT進(jìn)行分析,得到該頻點(diǎn)下的各個(gè)節(jié)目的PMT (Program Map Table,節(jié)目映射表)PID,并根據(jù)PMT PID查找PMT獲得每個(gè)節(jié)目的視頻數(shù)據(jù)包PID、音頻數(shù)據(jù)包PID、PCR(program clock reference,節(jié)目時(shí)鐘基準(zhǔn))PID,以及其它類型的私有數(shù)據(jù)包PID,存入節(jié)目信息文件,獲取節(jié)目信息的過程如圖4所示。節(jié)目信息文件存有所有頻點(diǎn)下的各個(gè)節(jié)目的所有必要信息,每個(gè)節(jié)目的信息由以下幾個(gè)部分組成PAT_PID ;-----節(jié)目關(guān)聯(lián)表 PID ;PMT_PID ;——節(jié)目映射表PID ;PCR_PID ;節(jié)目時(shí)鐘參考 PID ;PMT_PID_REPEAT_FLAG ;重復(fù)標(biāo)示;I,重復(fù);0,無重復(fù)STREAM_NUMBER ;PMT 中流數(shù)目;STREAM_TYPE1 ;PMT 中流 I 類型;SRTEAM_PID1 ;—PMT 中流 I 的 PID ;STREAM_TYPE2 ;PMT 中流 2 類型;SRTEAM_PID2 ;—PMT 中流 2 的 PID ;......STREAM_TYPE15 ;—PMT 中流 η 的類型;SRTEAM_PID15 ;PMT 中流 η 的 PID ;其中PMT_PID_REPEAT_FLAG是為了解決特殊TS問題,有時(shí)一些TS中多個(gè)節(jié)目的PMT PID是一樣的,在對(duì)TS進(jìn)行分離時(shí),如果不解析PMT則無法正確識(shí)別該P(yáng)MT屬于那套節(jié)目,設(shè)置該P(yáng)MT_PID_REPEAT_FLAG對(duì)具有重復(fù)PID的PMT進(jìn)行標(biāo)示,以便在設(shè)置節(jié)目參數(shù)時(shí)對(duì)具有重復(fù)PID的PMT進(jìn)行重構(gòu);B、配置各個(gè)節(jié)目和所需SECTION的PID ;具體配置過程如圖5所示,其中SECTION PID設(shè)置,直接通過DEMUX (數(shù)據(jù)分配器)設(shè)備設(shè)置即可,主要用于從TS中過濾出有用的SECTION。為了減少在TS分離過程的系統(tǒng)開銷,需要預(yù)先重構(gòu)PAT和必要的PMT。多節(jié)目的TS中的PAT包含有該頻點(diǎn)中的所有節(jié)目的PMT PID數(shù)據(jù),而對(duì)TS進(jìn)行分離后每個(gè)節(jié)目獨(dú)立的TS中的PAT只含有該節(jié)目的PMT PID數(shù)據(jù),所以輸入TS中的PAT不能直接使用,需要依據(jù)MPEG標(biāo)準(zhǔn)重新構(gòu)造每個(gè)節(jié)目獨(dú)立的TS中的PAT。對(duì)于一些特別的PMT,如有些TS多個(gè)節(jié)目的PMT PID都用一個(gè)值,在一個(gè)表中對(duì)多套節(jié)目信息進(jìn)行表述,多節(jié)目公用一個(gè)表。為了在分離過程中不再對(duì)該表進(jìn)行解析以節(jié)省系統(tǒng)開 銷,可以根據(jù)步驟A中獲取的節(jié)目信息依照MPEG標(biāo)準(zhǔn)重新構(gòu)造每個(gè)節(jié)目獨(dú)立的TS中的PMT ;C、根據(jù)配置的PID對(duì)TS進(jìn)行分離,獲得各個(gè)節(jié)目對(duì)應(yīng)的獨(dú)立TS。根據(jù)所設(shè)置的各個(gè)節(jié)目的PID和所需SECTION的PID,將輸入的TS流分解成各個(gè)節(jié)目的獨(dú)立TS和所需的SECTION,具體流程圖參見圖6,包括以下步驟I)由設(shè)置的節(jié)目PID可知分離的節(jié)目個(gè)數(shù)是N,由設(shè)置的SECTION PID可知所需SECTION個(gè)數(shù)是M ;2)根據(jù)取得的總的節(jié)目個(gè)數(shù)N和SECTION個(gè)數(shù)M,以及對(duì)應(yīng)的PID,配置好過濾器,準(zhǔn)備對(duì)輸入的TS進(jìn)行過濾。3)取TS的一個(gè)數(shù)據(jù)包,該數(shù)據(jù)包為188字節(jié)或204字節(jié);4)取出該TS數(shù)據(jù)包的PID,根據(jù)該P(yáng)ID對(duì)SECTION的各個(gè)PID進(jìn)行匹配,如果匹配則寫入相應(yīng)的緩沖區(qū),直到所有的SECTION PID都匹配一次;若不匹配,轉(zhuǎn)向5);5)首先對(duì)該數(shù)據(jù)包進(jìn)行PAT匹配,如果該數(shù)據(jù)包是PAT,則將重構(gòu)的PAT輸出到對(duì)應(yīng)節(jié)目的緩沖區(qū)中;如果該數(shù)據(jù)包不是PAT,轉(zhuǎn)向6);6)根據(jù)該P(yáng)ID對(duì)各個(gè)PMT PID進(jìn)行逐一匹配,若該數(shù)據(jù)包為PMT,還需要根據(jù)PMT_PID_REPEAT_FLAG的值判斷該P(yáng)MT PID和其它節(jié)目的PMTPID是否重復(fù),如果沒有重復(fù),則匹配成功后直接將該P(yáng)MT輸出到與該P(yáng)ID對(duì)應(yīng)的節(jié)目的緩沖區(qū)中;如果重復(fù),則匹配成功后依次用該P(yáng)ID匹配其它的節(jié)目的PMT PID,直到每一套節(jié)目都匹配一次,并將重構(gòu)的PMT輸入到對(duì)應(yīng)具有重復(fù)PMT PID的節(jié)目的緩沖區(qū)中;如果該數(shù)據(jù)包不是PMT,轉(zhuǎn)向7);7)根據(jù)該P(yáng)ID對(duì)PCR PID進(jìn)行匹配,也是每一套節(jié)目都匹配一次;如果該數(shù)據(jù)包是PCR,則將該數(shù)據(jù)包輸出到與該P(yáng)ID對(duì)應(yīng)的節(jié)目的緩沖區(qū)中;如果該數(shù)據(jù)包不是PCR,轉(zhuǎn)向8);8)根據(jù)該P(yáng)ID對(duì)每套節(jié)目的所有STREAM PID逐一匹配;如果匹配成功則輸出該數(shù)據(jù)包到與該P(yáng)ID對(duì)應(yīng)的節(jié)目的緩沖區(qū)中;如果匹配不成功則丟棄該數(shù)據(jù)包;其中,STREAM PID包括視頻數(shù)據(jù)包PID、音頻數(shù)據(jù)包PID和其它類型的私有數(shù)據(jù)包PID。9)取得下一個(gè)TS包,重復(fù)3) -9)。如圖7所示,一個(gè)含有兩套節(jié)目的TS,經(jīng)本發(fā)明的多節(jié)目傳送流分離的方法分離后生成兩套獨(dú)立的節(jié)目,存入各自的緩沖區(qū),其中,AUDIO為音頻數(shù)據(jù)包,VIDEO為視頻數(shù)據(jù)包。在分離的過程中,保持PAT在每個(gè)節(jié)目的TS中出現(xiàn)的位置和頻率不變,分別插入各個(gè)節(jié)目的TS中;為了減少傳輸帶寬和存儲(chǔ)數(shù)據(jù)量,原來TS中的空包和其它一些無用SECTION包被丟棄,只保留了 TS識(shí)別必須的所有內(nèi)容。本發(fā)明的技術(shù)方案對(duì)輸入的TS進(jìn)行分離后得到的節(jié)目的獨(dú)立TS經(jīng)過網(wǎng)絡(luò)傳輸或保存成文件后,都可以被支持TS的播放器所識(shí)別播放。此說明書中所描述的許多功能部件都被稱為模塊,以便更加特別地強(qiáng)調(diào)其實(shí)現(xiàn)方式的獨(dú)立性。本發(fā)明實(shí)施例中,模塊可以用軟件實(shí)現(xiàn),以便由各種類型的處理器執(zhí)行。舉例來說,一個(gè)標(biāo)識(shí)的可執(zhí)行代碼模塊可以包括計(jì)算機(jī)指令的一個(gè)或多個(gè)物理或者邏輯塊,舉例來說,其可以被構(gòu)建為對(duì)象、過程或函數(shù)。盡管如此,所標(biāo)識(shí)模塊的可執(zhí)行代碼無需物理地位于一起,而是可以包括存儲(chǔ)在不同位里上的不同的指令,當(dāng)這些指令邏輯上結(jié)合在一起時(shí),其構(gòu)成模塊并且實(shí)現(xiàn)該模塊的規(guī)定目的。實(shí)際上,可執(zhí)行代碼模塊可以是單條指令或者是許多條指令,并且甚至可以分布在多個(gè)不同的代碼段上,分布在不同程序當(dāng)中,以及跨越多個(gè)存儲(chǔ)器設(shè)備分布。同樣地,操作數(shù)據(jù)可以在模塊內(nèi)被識(shí)別,并且可以依照任何適當(dāng)?shù)男问綄?shí)現(xiàn)并且被組織在任何適當(dāng)類型的數(shù)據(jù)結(jié)構(gòu)內(nèi)。所述操作數(shù)據(jù)可以作為單個(gè)數(shù)據(jù)集被收集,或者可以分布在不同位置上(包括在不同存儲(chǔ)設(shè)備上),并且至少部分地可以僅作為電子信號(hào)存在于系統(tǒng)或網(wǎng)絡(luò)上。在模塊可以利用軟件實(shí)現(xiàn)時(shí),考慮到現(xiàn)有硬件工 藝的水平,所以可以以軟件實(shí)現(xiàn)的模塊,在不考慮成本的情況下,本領(lǐng)域技術(shù)人員都可以搭建對(duì)應(yīng)的硬件電路來實(shí)現(xiàn)對(duì)應(yīng)的功能,所述硬件電路包括常規(guī)的超大規(guī)模集成(VLSI)電路或者門陣列以及諸如邏輯芯片、晶體管之類的現(xiàn)有半導(dǎo)體或者是其它分立的元件。模塊還可以用可編程硬件設(shè)備,諸如現(xiàn)場(chǎng)可編程門陣列、可編程陣列邏輯、可編程邏輯設(shè)備等實(shí)現(xiàn)。在本發(fā)明各方法實(shí)施例中,所述各步驟的序號(hào)并不能用于限定各步驟的先后順序,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,對(duì)各步驟的先后變化也在本發(fā)明的保護(hù)范圍之內(nèi)。以上所述是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明所述原理的前提下,還可以作出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種多節(jié)目傳送流分離的方法,其特征在于,包括 接收傳送流TS,所述TS中包含有至少一個(gè)節(jié)目的信息; 從所述TS中獲取每個(gè)節(jié)目對(duì)應(yīng)的傳輸包標(biāo)志碼PID,并存儲(chǔ)PID與每個(gè)節(jié)目之間的對(duì)應(yīng)關(guān)系; 根據(jù)所述對(duì)應(yīng)關(guān)系對(duì)所述TS中的數(shù)據(jù)包進(jìn)行分離,獲取每個(gè)節(jié)目對(duì)應(yīng)的獨(dú)立TS,所述獨(dú)立TS存儲(chǔ)在節(jié)目對(duì)應(yīng)的緩沖區(qū)中,包括節(jié)目對(duì)應(yīng)的音頻數(shù)據(jù)包、視頻數(shù)據(jù)包、節(jié)目時(shí)鐘基準(zhǔn)PCR、節(jié)目關(guān)聯(lián)表PAT和節(jié)目映射表PMT。
2.根據(jù)權(quán)利要求I所述的多節(jié)目傳送流分離的方法,其特征在于,所述從所述TS中獲取每個(gè)節(jié)目對(duì)應(yīng)的PID包括 對(duì)所述TS中的PAT進(jìn)行分析,根據(jù)所述PAT中的PMT PID獲取每個(gè)節(jié)目對(duì)應(yīng)的PMT ; 對(duì)每個(gè)節(jié)目對(duì)應(yīng)的PMT進(jìn)行分析,獲取每個(gè)節(jié)目對(duì)應(yīng)的PCR PID、視頻數(shù)據(jù)包PID和音頻數(shù)據(jù)包PID。
3.根據(jù)權(quán)利要求I所述的多節(jié)目傳送流分離的方法,其特征在于,所述根據(jù)所述對(duì)應(yīng)關(guān)系對(duì)所述TS中的數(shù)據(jù)包進(jìn)行分離之前包括 重構(gòu)每個(gè)節(jié)目對(duì)應(yīng)的PAT ; 在η個(gè)節(jié)目的PMT PID 一致時(shí),為所述η個(gè)節(jié)目重構(gòu)PMT。
4.根據(jù)權(quán)利要求3所述的多節(jié)目傳送流分離的方法,其特征在于,所述根據(jù)所述對(duì)應(yīng)關(guān)系對(duì)所述TS中的數(shù)據(jù)包進(jìn)行分離,獲取每個(gè)節(jié)目對(duì)應(yīng)的獨(dú)立TS包括 將所述TS中的數(shù)據(jù)包的PID與所述對(duì)應(yīng)關(guān)系中存儲(chǔ)的PID進(jìn)行逐一匹配; 根據(jù)匹配結(jié)果,將所述數(shù)據(jù)包或重構(gòu)的PAT和PMT存儲(chǔ)到數(shù)據(jù)包的PID對(duì)應(yīng)的節(jié)目的緩沖區(qū)中。
5.根據(jù)權(quán)利要求4所述的多節(jié)目傳送流分離的方法,其特征在于,所述根據(jù)匹配結(jié)果,將所述數(shù)據(jù)包或重構(gòu)的PAT和PMT存儲(chǔ)到數(shù)據(jù)包的PID對(duì)應(yīng)的節(jié)目的緩沖區(qū)中包括 當(dāng)所述數(shù)據(jù)包的PID為PAT PID時(shí),將重構(gòu)的PAT存儲(chǔ)到數(shù)據(jù)包的PID對(duì)應(yīng)的節(jié)目的緩沖區(qū)中; 當(dāng)所述數(shù)據(jù)包的PID為η個(gè)節(jié)目對(duì)應(yīng)的PMT PID時(shí),將重構(gòu)的PMT存儲(chǔ)到所述η個(gè)節(jié)目的緩沖區(qū)中; 當(dāng)所述數(shù)據(jù)包的PID僅為I個(gè)節(jié)目對(duì)應(yīng)的PMT PID時(shí),將所述數(shù)據(jù)包存儲(chǔ)到所述節(jié)目的緩沖區(qū)中; 當(dāng)所述PID為PCR PID時(shí),將所述數(shù)據(jù)包存儲(chǔ)到數(shù)據(jù)包的PID對(duì)應(yīng)的節(jié)目的緩沖區(qū)中; 當(dāng)所述PID為視頻數(shù)據(jù)包PID或音頻數(shù)據(jù)包PID時(shí),將所述數(shù)據(jù)包存儲(chǔ)到數(shù)據(jù)包的PID對(duì)應(yīng)的節(jié)目的緩沖區(qū)中。
6.一種多節(jié)目傳送流分離的裝置,其特征在于,包括 接收模塊,用于接收傳送流TS,所述TS中包含有至少一個(gè)節(jié)目的信息; 存儲(chǔ)模塊,用于從所述TS中獲取每個(gè)節(jié)目對(duì)應(yīng)的傳輸包標(biāo)志碼PID,并存儲(chǔ)PID與每個(gè)節(jié)目之間的對(duì)應(yīng)關(guān)系; 分離模塊,用于根據(jù)所述對(duì)應(yīng)關(guān)系對(duì)所述TS中的數(shù)據(jù)包進(jìn)行分離,獲取每個(gè)節(jié)目對(duì)應(yīng)的獨(dú)立TS,所述獨(dú)立TS存儲(chǔ)在節(jié)目對(duì)應(yīng)的緩沖區(qū)中,包括節(jié)目對(duì)應(yīng)的音頻數(shù)據(jù)包、視頻數(shù)據(jù)包、節(jié)目時(shí)鐘基準(zhǔn)PCR、節(jié)目關(guān)聯(lián)表PAT和節(jié)目映射表PMT。
7.根據(jù)權(quán)利要求6所述的多節(jié)目傳送流分離的裝置,其特征在于, 所述存儲(chǔ)模塊具體用于對(duì)所述TS中的PAT進(jìn)行分析,根據(jù)所述PAT中的PMT PID獲取每個(gè)節(jié)目對(duì)應(yīng)的PMT ;對(duì)每個(gè)節(jié)目對(duì)應(yīng)的PMT進(jìn)行分析,獲取每個(gè)節(jié)目對(duì)應(yīng)的PCR PID、視頻數(shù)據(jù)包PID和音頻數(shù)據(jù)包PID。
8.根據(jù)權(quán)利要求6所述的多節(jié)目傳送流分離的裝置,其特征在于,所述裝置還包括 重構(gòu)模塊,用于重構(gòu)每個(gè)節(jié)目對(duì)應(yīng)的PAT ;在η個(gè)節(jié)目的PMT PID 一致時(shí),為所述η個(gè)節(jié)目重構(gòu)PMT。
9.根據(jù)權(quán)利要求8所述的多節(jié)目傳送流分離的裝置,其特征在于,所述分離模塊包括 匹配子模塊,用于將所述TS中的數(shù)據(jù)包的PID與所述對(duì)應(yīng)關(guān)系中存儲(chǔ)的PID進(jìn)行逐一匹配; 存儲(chǔ)子模塊,用于根據(jù)匹配結(jié)果,將所述數(shù)據(jù)包或重構(gòu)的PAT和PMT存儲(chǔ)到數(shù)據(jù)包的PID對(duì)應(yīng)的節(jié)目的緩沖區(qū)中。
10.根據(jù)權(quán)利要求9所述的多節(jié)目傳送流分離的裝置,其特征在于, 所述存儲(chǔ)子模塊具體用于當(dāng)所述數(shù)據(jù)包的PID為PAT PID時(shí),將重構(gòu)的PAT存儲(chǔ)到數(shù)據(jù)包的PID對(duì)應(yīng)的節(jié)目的緩沖區(qū)中; 當(dāng)所述數(shù)據(jù)包的PID為η個(gè)節(jié)目對(duì)應(yīng)的PMT PID時(shí),將重構(gòu)的PMT存儲(chǔ)到所述η個(gè)節(jié)目的緩沖區(qū)中; 當(dāng)所述數(shù)據(jù)包的PID僅為I個(gè)節(jié)目對(duì)應(yīng)的PMT PID時(shí),將所述數(shù)據(jù)包存儲(chǔ)到所述節(jié)目的緩沖區(qū)中; 當(dāng)所述PID為PCR PID時(shí),將所述數(shù)據(jù)包存儲(chǔ)到數(shù)據(jù)包的PID對(duì)應(yīng)的節(jié)目的緩沖區(qū)中;當(dāng)所述PID為視頻數(shù)據(jù)包PID或音頻數(shù)據(jù)包PID時(shí),將所述數(shù)據(jù)包存儲(chǔ)到數(shù)據(jù)包的PID對(duì)應(yīng)的節(jié)目的緩沖區(qū)中。
全文摘要
本發(fā)明提供一種多節(jié)目傳送流分離的方法及裝置,屬于數(shù)字電視領(lǐng)域。該多節(jié)目傳送流分離的方法,包括接收傳送流TS,所述TS中包含有至少一個(gè)節(jié)目的信息;從所述TS中獲取每個(gè)節(jié)目對(duì)應(yīng)的傳輸包標(biāo)志碼PID,并存儲(chǔ)PID與每個(gè)節(jié)目之間的對(duì)應(yīng)關(guān)系;根據(jù)所述對(duì)應(yīng)關(guān)系對(duì)所述TS中的數(shù)據(jù)包進(jìn)行分離,獲取每個(gè)節(jié)目對(duì)應(yīng)的獨(dú)立TS,所述獨(dú)立TS存儲(chǔ)在節(jié)目對(duì)應(yīng)的緩沖區(qū)中,包括節(jié)目對(duì)應(yīng)的音頻數(shù)據(jù)包、視頻數(shù)據(jù)包、節(jié)目時(shí)鐘基準(zhǔn)PCR、節(jié)目關(guān)聯(lián)表PAT和節(jié)目映射表PMT。本發(fā)明的技術(shù)方案能夠分離出多個(gè)節(jié)目,并且保持每個(gè)節(jié)目傳送流的完整性。
文檔編號(hào)H04N21/434GK102905189SQ20111020914
公開日2013年1月30日 申請(qǐng)日期2011年7月25日 優(yōu)先權(quán)日2011年7月25日
發(fā)明者劉三門, 袁堂夫, 鄒義生 申請(qǐng)人:北京國微集成技術(shù)有限公司