CN104536910B - 一种mpeg ts流pid重映射实现系统及方法 - Google Patents
一种mpeg ts流pid重映射实现系统及方法 Download PDFInfo
- Publication number
- CN104536910B CN104536910B CN201410760411.0A CN201410760411A CN104536910B CN 104536910 B CN104536910 B CN 104536910B CN 201410760411 A CN201410760411 A CN 201410760411A CN 104536910 B CN104536910 B CN 104536910B
- Authority
- CN
- China
- Prior art keywords
- pid
- old
- value
- address
- mapping
- 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.)
- Active
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和在映射过程中会被替换成的newPID组成PID映射表;PID映射表排序模块,将PID映射表根据old PID的值按照从小到大的顺序进行排序;PID映射表存储模块,存储排序好的PID映射表;PID查询模块,当有TS流包输入时,提取所述TS流包中的PID并查询存储模块中的PID映射表;PID比较模块,将TS流中提取的PID的值与查询的PID映射表某一地址中的old PID的值进行比对。
如图1所示,图中代表一个存储器资源,在本具体实施例中,PID映射表根据oldPID按照从小到大的顺序存在存储器中,排序的过程是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的值进行比对;
其中,所述PID比较模块进行比对的具体方法为:将TS流中提取的PID的值与查询的PID映射表某一地址中的old PID的值进行比对,判断是否相等,相等,则退出查询,用new PID替换提取出的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 CN104536910A (zh) | 2015-04-22 |
CN104536910B true 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) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11243804B2 (en) * | 2019-11-19 | 2022-02-08 | Micron Technology, Inc. | Time to live for memory access by processors |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1623327A (zh) * | 2002-01-02 | 2005-06-01 | 索尼电子有限公司 | 部分加密和pid映射 |
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 | 索尼公司 | 用于同时处理多个电视节目的条件接入方法与设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1615018A (zh) * | 2003-11-06 | 2005-05-11 | 皇家飞利浦电子股份有限公司 | 一种从mpeg多节目传送流中提取/存储特定节目的方法和系统 |
-
2014
- 2014-12-12 CN CN201410760411.0A patent/CN104536910B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1623327A (zh) * | 2002-01-02 | 2005-06-01 | 索尼电子有限公司 | 部分加密和pid映射 |
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 | 索尼公司 | 用于同时处理多个电视节目的条件接入方法与设备 |
Also Published As
Publication number | Publication date |
---|---|
CN104536910A (zh) | 2015-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105159777B (zh) | 进程的内存回收方法及装置 | |
CN105095099B (zh) | 一种基于内存页位图变更的大内存页整合方法 | |
CN100445999C (zh) | 一种数据存储及搜索方法 | |
CN105022696B (zh) | 一种基于内存访问热度的大内存页整合方法 | |
WO2010046086A8 (en) | Method for multimedia content search on the internet | |
CN104536910B (zh) | 一种mpeg ts流pid重映射实现系统及方法 | |
CN107506482A (zh) | 一种基于流式处理框架的大规模数据处理装置及方法 | |
CN105591914A (zh) | 一种openflow流表的查表方法和装置 | |
CN101741737B (zh) | 路由表的维护方法与装置 | |
CN102663061B (zh) | 一种大容量查找表快速排序和查找装置及其实现方法 | |
CN106789697A (zh) | 一种提高大批量网络流表老化效率的方法及装置 | |
CN105512234A (zh) | 一种云数据库的数据存储方法 | |
CN106126743A (zh) | 配置页面的生成方法及系统 | |
CN102819441B (zh) | 一种基于MPC5200B的Vxworks系统快速启动方法 | |
CN108063692B (zh) | 流量识别方法及装置 | |
CN106897450A (zh) | 一种基于HDFS海量数据快速导入HBase的方法 | |
CN103176953A (zh) | 一种文本处理方法及系统 | |
CN104504012A (zh) | 一种基于逆拓扑的数据库数据迁移方法 | |
CN104679837A (zh) | 关键词调价请求的处理方法及装置 | |
CN103067770B (zh) | 一种电视机中网络参数设置及纠错方法 | |
CN101369264B (zh) | 一种自动排版方法 | |
CN107608994A (zh) | 一种批量处理sql语句插入数据库的方法及系统 | |
CN105224620A (zh) | 通过软件搬移降低hash冲突概率的方法及装置 | |
CN103077284A (zh) | 利用通用文本模板自动生成辅助代码文件的方法及系统 | |
CN203581698U (zh) | 一种铝银浆高架桶 |
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 |