CN104536910A - 一种mpeg ts流pid重映射实现系统及方法 - Google Patents
一种mpeg ts流pid重映射实现系统及方法 Download PDFInfo
- Publication number
- CN104536910A CN104536910A CN201410760411.0A CN201410760411A CN104536910A CN 104536910 A CN104536910 A CN 104536910A CN 201410760411 A CN201410760411 A CN 201410760411A CN 104536910 A CN104536910 A CN 104536910A
- Authority
- CN
- China
- Prior art keywords
- pid
- mapping table
- stream
- old
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种MPEG TS流PID重映射实现系统及方法。解析TS流并提取TS流中PID为old PID;将提取出的old PID和在映射过程中会被替换成的new PID组成PID映射表;将PID映射表根据old PID的值按照从小到大的顺序进行排序并存储;当有TS流包输入时,提取所述TS流包中的PID并查询存储模块中的PID映射表;将TS流中提取的PID的值与查询的PID映射表某一地址中的old PID的值进行比对,相等则退出查询,用new PID替换提取出的PID,否则根据比对大小和映射表地址大小来决定向上或向下查询,并继续查询和比对。对比传统的查询方式,去除了资源浪费,节省了大量的存储器资源开销和减小了系统的延时。
Description
技术领域
本发明涉及一种MPEG TS流PID重映射实现系统及方法,特别是涉及一种适用于DVB系统中MPEG TS流PID的重映射实现系统及方法。
背景技术
目前通用PID重映射方法,把PID输入输出的映射关系存于FPGA内部一块RAM中。当一个TS流包输入FPGA后,FPGA开始提取包中的PID,在存有PID映射关系的RAM中去查询此输入PID对应的输出PID。由于MPEG2中,每个TS流的包长为188,所以当要处理的PID超过188个时,就需要对每个TS包进行寄存,以增加查询所需时间。
以处理2048个PID为例,就要格外开辟存储空间来寄存每个TS包,这样才能将RAM中2048个PID查询完,以Altera的FPGA Cyclone IV EP4CE40为例,需要多消耗2个M9K的存储器资源,并加大系统的延时,这就给设计带来了时序和资源的浪费。
发明内容
本发明要解决的技术问题是提供一种查询时间短,节省时序和资源的MPEG TS流PID重映射实现系统及方法。
本发明采用的技术方案如下:一种MPEG TS流PID重映射实现系统,器特征在于,包括
PID提取模块,解析TS流并提取TS流中PID为old PID;
映射表生成模块,将提取出的old PID和在映射过程中会被替换成的new PID组成PID映射表;
PID映射表排序模块,将PID映射表根据old PID的值按照从小到大的顺序进行排序;
PID映射表存储模块,存储排序好的PID映射表;
PID查询模块,当有TS流包输入时,提取所述TS流包中的PID并查询存储模块中的PID映射表;
PID比较模块,将TS流中提取的PID的值与查询的PID映射表某一地址中的old PID的值进行比对。
一种MPEG TS流PID重映射实现方法,具体方法步骤为,
步骤一、解析TS流并提取TS流中PID为old PID;
步骤二、将提取出的old PID和在映射过程中会被替换成的new PID组成PID映射表;
步骤三、将PID映射表根据old PID的值按照从小到大的顺序进行排序并存储;
步骤四、当有TS流包输入时,提取所述TS流包中的PID并查询存储模块中的PID映射表;将TS流中提取的PID的值与查询的PID映射表某一地址中的old PID的值进行比对,判断是否相等,相等,则退出查询,用new PID替换提取出的PID,否则进入下一步;
步骤五、根据比对大小和映射表地址大小来决定向上或向下查询,并继续查询和比对。
作为优选,所述步骤四中,将TS流中提取的PID的值与查询的PID映射表中间地址中的old PID的值进行比对。
作为优选,所述步骤五中,根据比对大小和映射表地址大小来决定向上或向下查询,查询地址为排除查询地址后所剩下查询地址范围的中间地址,并以此类推继续查询和比对。
与现有技术相比,本发明的有益效果是:对比传统的查询方式,去除了资源浪费,节省了大量的存储器资源开销和减小了系统的延时。
附图说明
图1为本发明其中一实施例的PID映射表存储结构示意图。
图2为图1所示实施例中的PID查询示意图。
图3为图1所示实施例的实现方法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或者具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
一种MPEG TS流PID重映射实现系统,包括PID提取模块,解析TS流并提取TS流中PID为old PID;映射表生成模块,将提取出的old PID和在映射过程中会被替换成的new PID组成PID映射表;PID映射表排序模块,将PID映射表根据old PID的值按照从小到大的顺序进行排序;PID映射表存储模块,存储排序好的PID映射表;PID查询模块,当有TS流包输入时,提取所述TS流包中的PID并查询存储模块中的PID映射表;PID比较模块,将TS流中提取的PID的值与查询的PID映射表某一地址中的old PID的值进行比对。
如图1所示,图中代表一个存储器资源,在本具体实施例中,PID映射表根据old PID按照从小到大的顺序存在存储器中,排序的过程是CPU进行的排序,排好序后将PID映射表传到FPGA的RAM中。
一种MPEG TS流PID重映射实现方法,具体方法步骤为,
步骤一、解析TS流并提取TS流中PID为old PID;
步骤二、将提取出的old PID和在映射过程中会被替换成的new PID组成PID映射表;
步骤三、将PID映射表根据old PID的值按照从小到大的顺序进行排序并存储;
步骤四、当有TS流包输入时,提取所述TS流包中的PID并查询存储模块中的PID映射表;将TS流中提取的PID的值与查询的PID映射表某一地址中的old PID的值进行比对,判断是否相等,相等,则退出查询,用new PID替换提取出的PID,否则进入下一步;
步骤五、根据比对大小和映射表地址大小来决定向上或向下查询,并继续查询和比对。
节省了用于寄存TS包的存储器资源,同时也节省了相应的时序资源。
在本具体实施例中,所述步骤四中,将TS流中提取的PID的值与查询的PID映射表中间地址中的old PID的值进行比对。
在本具体实施例中,所述步骤五中,根据比对大小和映射表地址大小来决定向上或向下查询,查询地址为排除查询地址后所剩下查询地址范围的中间地址,并以此类推继续查询和比对。
以查询2048个PID为例,当开始查询时,如图2所示,第一次取出地址为1024中的数据进行对比,如果不对,继续下一次查询,直到查询到对应的PID后退出,或者没查询到,但遍历完毕退出,具体流程如图3所示,当有TS流输入进来时,我们会提取出TS流包中的PID,这里称它为TS_PID。提取完成后,进入PID查询过程,查询的初始地址为地址长度的中间值,即初始地址为addr=1024。这里还有一个偏移地址,这里称之为flag,flag的初始值为地址长度的1/4,即初始偏移地址flag=512,同时flag也是查询完成的标志。
将TS_PID与addr=1024中的old_PID进行对比,是否相等,如果相等,完成查询,退出此次查询,如果不相等,比对大小,如果TS_PID>old_PID,则addr加上flag,形成下一个查询的地址,flag与addr完成相加后flag的值要进行右移一位;如果TS_PID<old_PID,则addr减去flag,形成下一个查询的地址,flag与addr完成相减后flag的值也要进行右移一位。这样重复上面的过程,直至查询到相应的PID,退出查询,或者flag标志等于0,退出查询。每次addr与flag进行运算后flag的值都要进行右移一位,直到flag的值等于0,此时标志着查询过程结束,此时没有查询到相应的PID,退出。如果在查询过程中查询到TS_PID等于old_PID,立刻退出查询,用new_PID替换TS_PID。
如果比所查询的old PID大,则把查询范围缩小到地址范围1025~2047,如果比所查询的old PID小,则把查询范围缩小到地址范围0~1023,第二次查询依然从中间地址开始查询,比如如果在地址范围1025~2047,则查询地址为1536中的PID; 如果在地址范围0~1023,则查询地址为512中的PID。依此类推,这样不断分割,查询完2048个PID理论上只需要12个时钟周期。在实际应用中从TS包中提取PID,加上从RAM中读取PID并对比,还要花去一部分延时,总的算下来查询完2048个PID至少需要26个时钟周期。对比传统的查询方式,节省了大量的存储器资源开销和减小了系统的延时。
Claims (4)
1.一种MPEG TS流PID重映射实现系统,器特征在于,包括
PID提取模块,解析TS流并提取TS流中PID为old PID;
映射表生成模块,将提取出的old PID和在映射过程中会被替换成的new PID组成PID映射表;
PID映射表排序模块,将PID映射表根据old PID的值按照从小到大的顺序进行排序;
PID映射表存储模块,存储排序好的PID映射表;
PID查询模块,当有TS流包输入时,提取所述TS流包中的PID并查询存储模块中的PID映射表;
PID比较模块,将TS流中提取的PID的值与查询的PID映射表某一地址中的old PID的值进行比对。
2.一种MPEG TS流PID重映射实现方法,具体方法步骤为,
步骤一、解析TS流并提取TS流中PID为old PID;
步骤二、将提取出的old PID和在映射过程中会被替换成的new PID组成PID映射表;
步骤三、将PID映射表根据old PID的值按照从小到大的顺序进行排序并存储;
步骤四、当有TS流包输入时,提取所述TS流包中的PID并查询存储模块中的PID映射表;将TS流中提取的PID的值与查询的PID映射表某一地址中的old PID的值进行比对,判断是否相等,相等,则退出查询,用new PID替换提取出的PID,否则进入下一步;
步骤五、根据比对大小和映射表地址大小来决定向上或向下查询,并继续查询和比对。
3.根据权利要求2所述的MPEG TS流PID重映射实现方法,所述步骤四中,将TS流中提取的PID的值与查询的PID映射表中间地址中的old PID的值进行比对。
4.根据权利要求2或3所述的MPEG TS流PID重映射实现方法,所述步骤五中,根据比对大小和映射表地址大小来决定向上或向下查询,查询地址为排除查询地址后所剩下查询地址范围的中间地址,并以此类推继续查询和比对。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410760411.0A CN104536910B (zh) | 2014-12-12 | 2014-12-12 | 一种mpeg ts流pid重映射实现系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410760411.0A CN104536910B (zh) | 2014-12-12 | 2014-12-12 | 一种mpeg ts流pid重映射实现系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104536910A true CN104536910A (zh) | 2015-04-22 |
CN104536910B CN104536910B (zh) | 2017-12-12 |
Family
ID=52852440
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410760411.0A Active CN104536910B (zh) | 2014-12-12 | 2014-12-12 | 一种mpeg ts流pid重映射实现系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104536910B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114631083A (zh) * | 2019-11-19 | 2022-06-14 | 美光科技公司 | 供处理器进行存储器存取的生存时间 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1623327A (zh) * | 2002-01-02 | 2005-06-01 | 索尼电子有限公司 | 部分加密和pid映射 |
US20070133693A1 (en) * | 2003-11-06 | 2007-06-14 | Koninklijke Phillips Electronics N.V. | Method and system for extracting/storing specific program from mpeg multpile program tranport stream |
CN103297843A (zh) * | 2012-03-02 | 2013-09-11 | 三星电子(中国)研发中心 | 一种用于mpeg ts文件回放的节目选择方法 |
CN104205856A (zh) * | 2012-03-26 | 2014-12-10 | 索尼公司 | 用于同时处理多个电视节目的条件接入方法与设备 |
CN104205855A (zh) * | 2012-03-26 | 2014-12-10 | 索尼公司 | 用于同时处理多个电视节目的条件接入方法与设备 |
-
2014
- 2014-12-12 CN CN201410760411.0A patent/CN104536910B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1623327A (zh) * | 2002-01-02 | 2005-06-01 | 索尼电子有限公司 | 部分加密和pid映射 |
US20070133693A1 (en) * | 2003-11-06 | 2007-06-14 | Koninklijke Phillips Electronics N.V. | Method and system for extracting/storing specific program from mpeg multpile program tranport stream |
CN103297843A (zh) * | 2012-03-02 | 2013-09-11 | 三星电子(中国)研发中心 | 一种用于mpeg ts文件回放的节目选择方法 |
CN104205856A (zh) * | 2012-03-26 | 2014-12-10 | 索尼公司 | 用于同时处理多个电视节目的条件接入方法与设备 |
CN104205855A (zh) * | 2012-03-26 | 2014-12-10 | 索尼公司 | 用于同时处理多个电视节目的条件接入方法与设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114631083A (zh) * | 2019-11-19 | 2022-06-14 | 美光科技公司 | 供处理器进行存储器存取的生存时间 |
CN114631083B (zh) * | 2019-11-19 | 2024-05-17 | 美光科技公司 | 供处理器进行存储器存取的生存时间 |
Also Published As
Publication number | Publication date |
---|---|
CN104536910B (zh) | 2017-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
PH12019501499A1 (en) | Blockchain consensus method and device | |
CN103123618B (zh) | 文本相似度获取方法和装置 | |
CN105159777A (zh) | 进程的内存回收方法及装置 | |
CN103095840B (zh) | 一种用于移动终端的广告加载方法 | |
CN103136227A (zh) | 一种生成榜单的方法及装置 | |
CN103488732A (zh) | 一种静态页面生成方法及装置 | |
CN105426467A (zh) | 一种用于Presto的SQL查询方法及系统 | |
CN103309801A (zh) | 一种确定回归测试范围的方法和装置 | |
CN105591914A (zh) | 一种openflow流表的查表方法和装置 | |
CN104468361A (zh) | 带有优先级的tcam储存和查找方法及装置 | |
CN104461901A (zh) | 一种自动生成测试用例的方法及系统 | |
CN110677468A (zh) | 消息处理方法、装置以及设备 | |
CN104376061A (zh) | 一种提取网页正文的方法 | |
CN104536910A (zh) | 一种mpeg ts流pid重映射实现系统及方法 | |
CN106789697A (zh) | 一种提高大批量网络流表老化效率的方法及装置 | |
CN106776072A (zh) | 消息推送方法及系统 | |
CN105681252A (zh) | 一种基于客户端侧数据的处理方法及装置 | |
CN104462605B (zh) | 一种数据库持久层框架配置、修改方法及系统 | |
CN109800074A (zh) | 任务数据并发执行方法、装置以及电子设备 | |
CN106126743A (zh) | 配置页面的生成方法及系统 | |
CN103176953B (zh) | 一种文本处理方法及系统 | |
CN103207907B (zh) | 一种索引文件合并方法及装置 | |
CN104598546A (zh) | 同义词搜索系统 | |
CN104516956B (zh) | 一种网站信息增量爬取方法 | |
CN103399937B (zh) | 一种基于coreseek查询分页的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 610046, No. 10, No. four, 12 Xing Wu Road, Chengdu, Sichuan, Wuhou District Applicant after: Chengdu core digital Polytron Technologies Inc Address before: 610046, No. 10, No. four, 12 Xing Wu Road, Chengdu, Sichuan, Wuhou District Applicant before: Chengdu Dexin Digital Technology Co., Ltd. |
|
COR | Change of bibliographic data | ||
GR01 | Patent grant | ||
GR01 | Patent grant |