MPEG-2复用器PSI信息分析部分的FPGA实现

复用器是数字电视前端平台的关键设备,它的主要功能是完成对输入多路传输流(Transport Stream,TS)的复用工作,它的性能稳定性直接影响前端平台的运行。而复用器对传输流中节目特殊信息(Program Spe-cial Information,PSI)的分析处理是否完整全面,则直接影响到复用器其他功能部分的运行结果是否正确。对PSI信息的检测分析是复用器设计中首要的也是最重要的部分之一。下文将对PSI信息检测问题进行深入的分析探讨。

  1 TS流语法结构

  传输流以TS包为单位,其中每个包的长度为188 B,这188个字节大致可以分为:包头、调整字段和有效负载三个主要部分。包头占4个字节,如图1所示。

  同步字节:8 b,值为0x47,表示一个TS包的开始。传输错误指示:1b,当置为1时,表明在相关的TS包中至少有一个不可纠正的错误。有效负载起始指示:1 b,在带有PSI信息时,置1表示TS包含有PSI部分的第一个字节并带有pointer field字段,否则表示不含有PSI的第一个字节。传输优先级:1 b,置1表明相关的包比其他具有相同PID但此位没有置1的TS包有更高的优先级。PID:13 b字段,指示传输流有效负载的数据类型。传输加扰控制:2b,用来指示TS包有效负载的加扰方式。自适应字段控制:2b,用来指示本TS包首部是否跟有调整字段。连续计数器:4b,随着每一个具有相同PID的传输流包而增加,当它达到最大值后又恢复到0。

  节目专用信息PSI用来描述TS流的组成结构。它包括节目关联表(Program Association Table,PAT)、节目映射表(Program Map Table,PMT)、网络信息表(Network Information Table,NIT)和条件访问表(Conditional Access Table,CAT)。PAT是PSI信息的最上层,列出了传输流中所有节目所对应的PMT的PID值,可以根据节目的PID值找到相应的PMT信息及NIT信息。节目映射表PMT提供节目号码与组成它们的原始流之间的映射关系,这种映射表是一个TS流中所有节目定义的集合。网络信息表NIT是可选的,其内容是私有的,通常包括用户选择的服务和通道频率、卫星脉冲发射机、调制特性等的映射。条件接收表CAT提供条件接收(CA)系统的相关信息,指定EMM的PID值及相关的参数。

  2 PSI信息提取分析

  由于PSI信息四个表结构差别不大,所以提取算法也大致相似,在此主要以PAT表为例详细介绍J"SI信息的提取流程。对TS流的分析在FPGA内部以字节为单位。PAT语法结构如图2所示。

  PAT的提取流程:

  (1)首先应在传输流中找到包首PID 13位全为0且有效负载起始指示位为l的TS包。

  (2)然后根据自适应字段控制位判断是否含有调整字段,再结合pointer_field字段值找到table_id,从此字段开始到CRC校验字节之前,将对所有有效数据进行CRC校验。

  (3)接下来是section_length字段,由此字段可以得到该PAT分段的TS包个数。

  (4)接下来两字节是传输流标识字段,再接下来的一个字节包含着版本号信息及当前段是否可用信息。保留当前版本号并与下一次的版本号对比以确定版本是否有更新。若当前段可用,则继续,否则返回(1)。

  (5)接下来的两个字节分别是当前分段号和最后分段号,由此信息可以得知是否提取了所有分段的信息,即对整个PAT表是否进行了一次完整的分析。

  (6)对循环字段的处理,每4字节一次循环,由前两字节的节目号可以得知后2字节的PID是PMTPID还是NIT—PID。在循环字段结束后立即停止CRC校验并把校验的结果和码流中的CRC四字节进行比较从而得知传输是否有误。

  (7)在TS包结尾处判断当前PAT分段是否结束,否则继续检测下一TS包,是则进一步判断是否分析了所有分段,若已经分析了所有分段则给出一个表示PAT分析全部结束的信号,否则转到(1)继续分析下一分段。

  3 信息提取的硬件实现

  信息提取框图如图3所示。

  一路TS流首先经过芯片CY78933进行串并转换再进入同步模块进行同步锁定后,其他各模块才开始工作。由图3可看出,以上各检测模块是并行独立工作的,但是PMT检测模块、ELE检测模块、NIT检测模块和EMM检测模块要想进行有效工作,需要先接受其他模块提供的信息,具体为PMT和N1T检测模块要接受PAT检测模块提供的PID信息,ELE检测模块要接受PMT检测模块提供的PID信息,EMM检测模块要接受CAT检测模块提供的PID信息。

  3.1 信息提取同步模块

  根据MPEG一2标准可知,一个有效的TS包长为188 B,且其同步头为8′h47,只有在有效地识别了包头,才能严格地按照MPEG一2标准对数据包的每一位进行分析。在同步模块检测中,当找到8′h47时,必须连续3~5次(可通过参数设置)隔188 B都找到8′h47,才能认为实现了同步。另外考虑到TS包可附加16
B的前向纠错码,故该模块做成188/204 B自适应,这样可以提高通用性。

 

3.2 检测模块

  由于PAT,CAT,PMT,NIT等检测模块在硬件设计上都很类似,故本文重点探讨PAT检测模块的硬件设计,其他检测模块的设计将不再赘述。

  PAT检测模块按照PAT提取流程进行工作,若发现PAT分段并且CRC校验正确后,提取里面的PMT—PID和NIT-PID并分别送到PMT检测模块和NIT检测模块。对PAT表全部分段都分析完后启动PMT、检测模块和NIT检测模块对TS流进行实时检测,若PAT表有更新,则将新的信息再送给此两模块,以确保实时跟踪TS流的最新变化。

  在硬件实现上,从实用的角度出发,考虑到实际码流中可能出现的各种情况,将其归为三类处理:

  (1)一个分段只由一个TS包来承载。

  (2)一个分段由多个TS包来承载。

  对于此类情况(即该分段的长度使得一个TS包无法完全承载此分段),要考虑的是第一个TS包在该分段的什么位置结束。又可以分为三种情况:

  ①第一个TS包结束在该分段的table_id字段到last_sectiOn_number字段这一区间。这也就是第一个TS包大部分为调整字段占据时的情况;

  ②第一个TS包结束在循环字段中的某个字节的情况;

  ③第一个TS包结束在四个CRC校验字节中的某个字节处,考虑到有三个以上TS包时更确切地说应该是最后一个TS包只承载了CRC校验字节的某几个。

  (3)一个TS包承载多个分段

  此类情况是第(2)类中③情况的延伸。比如一个PAT表有两个分段,第一个分段由第一个TS包承载后只剩下一个CRC校验字节需要第二个TS包来承载。那么第二个TS包只承载这一个CRC校验字节无疑将是很大的浪费,此时可以充分利用第二个TS包。使它也承载第二个分段,这就是一包多段的情况。对于一段单包、一段多包(包括三种情况)和一包多段等多种情况,在设计上无疑要充分发挥FPGA有限状态机的强大优势来进行处理。

  将以上各种情况恰当地对应于状态机的各个状态,根据包头提供的信息及表段信息可以进行逻辑判断,从而控制各个状态之间的转移。在代码实现上,逻辑判断后控制信号的是否准确及时,至关重要。举例来说,把对PAT表的CRC校验分析作为一个独立模块,在分析该表时就要给予该模块准确的控制,假如PAT有两个TS包,在第一个TS包的table_id字段就要使能该模块,第一个TS包结束时要禁止使能该模块,到第二个PAT包第五个字节再使能CRC校验模块,直到CRC校验字节前再关闭该模块,总之控制信号要确保CRC校验模块校验的是PSI表的所有有效信息。

  另外需要说明的是PMT检测模块在实现上不需要考虑多个分段的情况,但有两处描述子要进行CA描述子的检测;NIT检测模块可以对指定描述子做检测,如卫星传送系统描述符等;ELE检测模块检测elementary_PID、PCR PID和可能存在的ECM_PID,该模块能正常工作说明PMT检测模块正确工作;同理EMM检测模块能正常工作说明CAT检测模块正确工作。

  3. 3 资源的优化

  由图3可见,PAT检测和CAT检测同为一个模块。这也算是本文在硬件实现上的一个创新点。之所以如此,是因为笔者在程序代码的编写上巧妙地将对CAT的检测分析融入到对PAT的检测分析中,而整合到一起的检测模块消耗的资源比原先PAT检测模块消耗的资源只增加一点点,这就意味着几乎没有增加硬件资源消耗的情况下完成了对CAT的检测,从而大大节省了FPGA内部宝贵的逻辑资源。

  经过仔细分析对照,笔者发现PAT表和CAT表有着惊人的相似性,这种相似性给编写硬件语言带来了极大的便利。PAT和CAT的差别主要在循环字段,其他字段位置字节数都能很好对应。若把对两个表的循环字段的处理分别独立为两个小模块,则剩下的部分就可以很好地将对PAT和CAT的处理融合到一起,融合到一起的模块只需要给这两个小模块恰当的控制即可。

  4 实际测试

  本设计采用硬件平台DE2开发板,FPGA型号EP2C35F672C6N,接口芯片通过DE2板GPIO接口和FPGA相连。测试码流有将卫星信号转换而得的实时码流和人工制作的非实时码流。对于A类情况,采用由亚洲三号卫星频点为4095H的信号转换的实时码流进行测试,如图4所示,从左向右:数码管数值1和3分别表示有一套节目,该套节目里有3个PID,它们是13′h0021,13′h00A0,13′h0050;三个红色LED灯亮表示发现PAT,PMT和基本音视频包,两个绿色LED灯亮表示接收同步及提取分析完PSI信息。DE2板显示的节目数及PID值跟专业数字卫星接收机显示的结果一样,表明PSI信息检测正确。对于其他各种可能的情况,由于在实际码流中很少见,所以采用人工构造符合标准的码流进行验证,发现结果也是正确的。

  5 结 语

  随着将来复用器应用范围的扩展,数据业务量的加大,实际码流中会出现一段多包或一包多段的情况,本文针对实际码流中可能出现的各种情况进行实用性的设计,完全能保证复用器在无论业务量多大的场合都能进行完整全面的PSI信息检测,具有很强的现实意义。

 

时间: 2024-09-26 22:45:58

MPEG-2复用器PSI信息分析部分的FPGA实现的相关文章

NEC与新世界等公司联手推出客流信息分析云服务

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;   今日,NEC与韩国新世界I&C公司.NICE信用调查公司联手,在韩国推出客流信息分析云服务. NEC是全球IT.通信网络的领先供应商之一,融合先进的信息技术和网络技术,向政府.企业及个人提供卓越的综合解决方案.韩国新世界集团是韩国大型流通集团,业务涉及商场.餐厅等广泛领域,新世界I&C公司则是韩国新世界集团旗下的系统集成公司.NICE是韩国最大规

大数据分析:基因信息分析的价值极高

随着基因检测的迅速发展以及成本的越来越低,基因信息的数据将会发生大爆发,而将这些基因信息进行大数据分析,就能够得到及其有价值的医疗和科学数据.今天,基因信息大数据分析服务公司Bina Technologies宣布获得650万美元B轮融资. 今天,基因信息大数据分析服务公司Bina Technologies宣布获得650万美元B轮融资,主要投资者是Sierra Ventures.Bina早前曾获得过Google和Dropbox的天使投资. 如今,基因检测服务开始兴起,基因检测的成本逐渐降低,但是像

《BI项目笔记》报到信息分析Cube

原文:<BI项目笔记>报到信息分析Cube 数据源设置:数据处理逻辑: --处理丢失外键关系数据 SELECT * FROM T_ReportLeafGrade WHERE FSubFID NOT IN ( SELECT FID FROM T_RaceLeafReport ) DELETE FROM T_ReportLeafGrade WHERE FSubFID NOT IN ( SELECT FID FROM T_RaceLeafReport ) --处理供应商关系 SELECT * FRO

如何做网络整合营销服务的信息分析

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 在<网络整合营销策划篇>与<网络整合营销执行监控篇中>我们都提到了在进行网络整合营销服务的时候要定期的对信息进行分析总结.那么我们为什么要对整合营销服务的信息进行分析总结呢?对整合营销服务的信息进行分析总结会对网络整合营销服务有什么推进作用呢? 广州网络营销公司在做客户的网络整合营销服务的时候都会进行信息分析,帮助执行

基于云计算的临床医学信息分析系统构建

基于云计算的临床医学信息分析系统构建 森干 杜守洪 王超 陈国忠 周毅 研究基于国内外公网和医学专业网站组成的公有云的临床医学信息采集.分析.整合及存储,构建基于标准化和规范化的医学数据仓库和数据多维立方体,并在此基础上,构建医学数据挖掘的研究平台,通过利用存储在数据仓库中的数据完成进行多层次.多角度挖掘工作和集成分析,并以软件即服务(SaaS)的模式向所在学科的医疗卫生人员提供其关注的基础医学.临床治疗.流行病学研究等信息,使医学信息资源的利用水平达到一个新的高度,建立区域性的医学信息共享平台

Sybase交行客户信息分析系统解决方案

项目背景 交通银行在信息化的战略主要包括二个方向的发展: 业务处理集中化,主要体现在业务系统大集中上,取消了以往分散在各个支行的业务系统而将业务处理系统集中到总部,崭新的大集中业务系统能够理顺各地业务的不一致性,从而起到集约化管理的作用,降低了业务成本,提高业务流程的规范性和有效性. 企业分析构架的建设,主要体现在银行集中精力进行数据仓库的建设,目标是创建企业核心的数据视图,从而满足越来越多样性的各种数据分析,和业务发展决策管理的需要.目标是通过数据仓库以及相关的数据集市分析应用帮助银行建立差异

2010年7月上旬我国网络不良与垃圾信息分析报告

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 根据此前国际知名安全机构SOPHOS最近检测数据显示,今年第二季度期间,源于美国的垃圾邮件数量仍然位居全球首位,占全球垃圾邮件总量的15.2%,印度(占全球垃圾邮件总量的7.7%).巴西(5.5%).英国(4.6%).韩国(4.2%)分列2-5位. (图1)第二季度垃圾邮件输出国情况 从图表1可知中国继续延续着第一季度的好成绩,依旧未出现在前

IBM收购信息分析和处理软件开发商PSS系统

IBM周三宣布,已收购加利福尼亚州山景的非上市公司PSS系统.IBM计划将PSS系统并入其http://www.aliyun.com/zixun/aggregation/13660.html">IBM软件部门,不过IBM没有透露协议的金额. PSS 系统开发的软件用于帮助企业分析.自动制定和执行跨大量电子业务信息的信息管理政策,并自动处理这些信息.这些功能对随时应对法律责任,同时减少数据存储 成本至关重要.随着信息持续以指数级增长,各行业公司都在通过制定符合法律规定的处理政策,寻求降低信息

Windows 2000中蓝屏死机之停止信息分析

Win2000也许可以说得上是一个划时代的操作系统,但是它仍然不能够避免蓝屏死机(Blue Screen of Death)问题.本文的目的是解刨BSOD问题,同时给出如何处理一般的蓝屏问题的解决步骤. 简介 什么是蓝屏死机(BSOD)问题? BSOD就是显示在蓝色屏幕背景下的出错信息.一般这种出错信息严重到你的整个操作系统当机,你只有重新冷启动的选择. 停止消息和硬件消息 Win2000的BSOD和NT4以前的BSOD消息是完全不同的.最大的不同就是NT中的BSOD只包含一个通用的停止消息类型