随着数字电视技术的日渐成熟,我国电视网络的数字化也正在进行中。为了保证数字电视网络的正常运转和传输质量,必须采取相应的监测设备作为辅助。码流分析仪就是适应数字电视网络的应用需求而开发的一种码流监测和分析设备。
目前市场上的码流分析设备主要有嵌入式和"PCI板卡+PC机"两种实现模式。嵌入式码流分析仪成本较低,但是功能相对简单,无法满足复杂的应用需求,并且由于资源的限制,不适合或者无法完成大容量的码流存储备份等功能。"PCI板卡+PC机"的实现模式克服了这些缺点,却存在价格较高的问题。比如美国泰克公司和后来一些厂家出产的码流分析仪,价格都比较昂贵。我们分析对比了市场上的码流分析仪产品后,自主研发出了性能良好的PCI板卡,并在此基础上,选用国产工业控制机作为平台,构建了性能优良、成本较低的码流分析仪系统。
笔者在整个系统的研制过程中,主要从事码流分析仪软件部分的开发。因此,本文将在对MPEG-2背景知识和码流分析仪整体结构进行分析的基础上,讨论软件部分的实现。
2 MPEG-2标准概述
2.1 MPEG-2与TS流
MPEG-2是如今数字电视领域系统层的普遍标准。该标准主要规定了传送流(TS)和程序流(节目流)(PS)2种结构。其中TS流适合于信道状况相对恶劣,具有较高误码率的场合,因此已成为我国数字电视领域普遍使用的一种码流格式。
TS流的组成过程是将原始的视频和音频信息按照适当的尺寸划分为ES流,之后对ES包附加信息形成PES包,再按照一定的规则,将SI和PSI信息或者PES包附加上系统层控制信息而成为TS包,从而组成完整的TS流。TS包有2种尺寸188 B或者204 B,后者加入了循环校验信息。
2.2 TS流的整体结构
2.2.1 TS流系统层结构
TS流系统层由有效负载和系统层信息构成。
TS流系统层信息就是在PES包组成TS流的过程中,为了使码流适合于信道传输和接收端恢复数据而添加的TS包头和其他相关控制信息。系统层信息可以分为3类,即TS包头信息、SI信息、PSI信息。
TS包头是TS包的标识部分,以0X47标志一个TS包的开始,共4 B,包含了与当前TS包相关的其他信息。其中比较重要的有PID,adaption_field_control,continuity_counter等信息,PID标识了当前TS包携带的数据内容(有效数据、SI或PSI信息),adaption_field _control表示当前包携带调整字段和有效负载的情况(共2位,第一位表示有无调整字段,第二位表示有无有效负载),continuity_counter是具有同一PID值的TS包之间的连续计数值。
从系统层的角度来看,TS包的结构一般有以下几种:有调整字段又有有效负载,只有调整字段没有有效负载,只有有效负载没有调整字段。这里所说的有效负载指的是原来PES包所包含的信息,PES包被分段后用来组成TS包,携带有SI和PSI信息的数据包不含有效负载。
2.2.2 PSI表
PSI即程序特殊信息,他包括所有使解码器能进行程序的多路解调的规格化数据和私有数据。在传送流中,程序特殊信息被分为4类标准结构,即程序相关表(PAT)、程序映射表(PMT)、网络信息表(NIT)和条件访问表(CAT),这些表被分段插入传送流分组中。在接收端,解码器可根据这些信息确定节目路数、每路节目包含的数据类型、PID分配情况等重要信息。
2.2.3 SI表
SI即业务信息,他定义了9种业务信息表,包括业务群关联表(BAT)、业务描述表(SDT)、事件信息表(EIT)、运行状态表(RST)、时间和日期表(TDT)、时间偏移表(TOT)、填充表(ST)、选择信息表(SIT)、间断信息表(DIT)。SI表中所包含的信息,对于解码而言,并无多大贡献,所以在进行码流分析仪设计的时候,对于这一部分信息仅做了提取和翻译,并没有进行太多的处理。
3 TS流的重要测试指标
3.1 290信息
290定义了3级错误。这里的错误有着广泛的含义,他们主要是用来检测在传输过程中所发生的错误和码流本身的帧结构与标准不一致的地方。这些不一致给码流的传输和接收带来了隐患,有些甚至会直接造成传输和接收的错误。错误级别划分的主要依据是错误对接收的影响程度。大概说明如下:
(1)第一优先级:可解码的必要条件。
(2)第二优先级:建议做连续的或定期的监测。
(3)第三优先级:与应用有关的监测。
具体错误的定义,读者可参阅相关标准,在此不作说明。
3.2 PCR间隔与PCR抖动
PCR是系统层的时钟信息,由提取的PCR字段可计算出码流的当前速率和平均速率,这些值在码流传输和接收解码中起着至关重要的作用。PCR间隔是指具有相同PCR_PID的PCR数值出现的时间间隔,PCR抖动是指由当前PCR字段获得的当前速率和平均速率的偏差程度。在290里定义了与.PCR相关的错误,在理想解码器缓冲区分析的过程中,PCR值也作为一个重要的参数来决定码流的每一个字节进入系统缓冲区的时间。
3.3理想解码器缓冲区
MPEG-2相关协议里提出了理想解码器的模型,在解码器模型中,定义了上溢、下溢和清空3种缓冲区错误。这些缓冲区错误主要是由于各缓冲区尺寸和输入输出速率不匹配造成的。在实际的硬件电路设计中,并非所有的缓冲区都按照理想解码器的模型来设计,但是根据理想解码器模型,可以对码流的速率匹配问题进行标准化的分析,防止实际接收机因为码流的时钟问题而产生错误。[page]
4 MPEG-2码流分析仪的整体设计
本文所设计的码流分析仪采用软硬结合的结构,硬件部分主要包括码流发送卡和码流接收卡2块板卡。硬件板卡通过PCI总线和工控机进行通信,实现码流的读写与发送功能。发送卡和接收卡之间可通过标准的ASI和SPI接口进行码流的发送和接收。硬件板卡与软件层的通信通过驱动程序来完成,在分析过程中软件部分和硬件板卡通过事件和消息进行交互。动态链接库完成数据传递和分析的主体功能,最上层的应用程序调用动态链接库的数据实现数据传递和最终的界面显示。码流分析仪整体的设计如图1所示。
图中硬件的主要部分用FPGA实现,PCI接口使用专用PCI接口芯片PCI9054进行控制,在码流传输过程中,依靠大容量的RAM进行辅助缓存。因为码流读写的速率很高。如果使用PIO方式进行控制硬盘读写则无法满足码流写入的速度要求,所以在硬件设计中,使用板卡本身的芯片进行DMA控制,满足了读写速率的要求。驱动程序使用WINDDK和Driver Studio开发完成。上层软件的设计思想和注意事项在后面将做详细的说明。
5 MPEG-2码流分析仪的软件部分设计
图2所示为MPEG-2码流分析仪模块图,其中码流发送与接收模块,数据接口与信息提取、离线分析、在线分析3个动态链接库(DLL)以及主程序与人机界面为系统的软件部分。软件部分采用Visual C++开发,详细模块关系和数据流图如图3所示。
|
图3中,最底层是发送卡和接收卡,板卡通过PCI插槽和PC机进行通信;驱动程序通过消息和中断以及Windows句柄来完成硬件和软件的交互与控制;DLL通过调用驱动程序的接口间接控制硬件,并且根据获得的码流或参数完成复杂的运算,通过其提供给应用程序的接口,DLL完成与应用程序之间信息的交互和控制;应用程序实现人机界面及最终分析结果的静态与动态显示。分析软件的分析工作流程在图4中给出。
如图4所示,首先由应用程序选择实时分析或者离线分析。若进行实时分析则执行如下流程:
通过驱动的接口查询接收卡状态是否正常,若接收卡正常则检测当前接收卡是否在接收码流,若正在传输码流则调用动态链接库中的实时分析预处理模块(由于码流以高速发送,而软件处理速度相对较慢,所以这个模块主要完成硬件与软件分析之间为匹配速率而进行的一些格式转换和预处理),经过预处理后先搜索同步头建立同步,之后按照图中所示的顺序进行分析,分析过程由动态链接库完成,最后在应用程序界面上实时地显示各种参数和错误的统计情况、出现位置;或者实时绘制PCR曲线。
离线分析的流程和在线分析类似,区别在于离线分析是从硬盘读入码流,而不是从接收卡获得码流,参数的显示也是在完全分析完之后才显示,所以中间分析的过程相对较长,其好处在于,可以对整段的码流一次进行分析,从而对码流的状况有更加全面和准确的把握。
码流收发控制流程相对简单,主要问题在于驱动的开发和调用。软件中涉及的其他功能,如图3中最上层所表示的复用与码流修改等,都是根据码流本身的结构,直接修改文件形式的码流而完成的,在此不再作详细说明。
6 结语
本文主要讨论了码流分析仪所要分析的关键参数、整体结构和软件部分的设计。在整个软件开发中,使用了多线程技术以提高软件的运行效率,使用动态链接库来提高程序的可扩展性,并且在初步功能完成之后,对软件的运行效率和整体性能进行了评估,在评估的基础上对软件的整体结构和代码进行了优化,达到了性能要求。文中涉及的硬件板卡和软件部分都已经通过调试并且投入使用。
上一篇:基于FPGA的新型谐波分析仪设计
下一篇:蓝菲光学高端光谱仪推出两款应用
推荐阅读最新更新时间:2024-03-30 23:00