APP下载

地面数字电视MPTS码流实时监测方法研究与应用

2020-06-04马维新李建军

数字技术与应用 2020年3期
关键词:码流码率传输

马维新 李建军

摘要:对TS流的结构及其传输特性进行了分析和研究,结合地面数字电视系统管理和维护的实际需求,通过具体的应用软件设计过程,详细介绍了地面发射台站MPTS码流实时监测的方法。

关键词:地面数字电视;MPTS码流;码率;时实监测

中图分类号:TN94 文献标识码:A 文章编号:1007-9416(2020)03-0053-03

0 概述

地面数字电视其前端信息的传输使用了数字电视所普遍采用的TS流(Transport Stream,传输流)的传输方式。TS流是节目信源复用后的一种信息形式,它可以是SMTS(单节目流)也可以是MPTS(多节目流),以188字节的固定包长存在于在传输介质中,来实现数字电视信息的传输。由于音视频压缩编码在传输过程中的固有特性,需要TS流在承载基本编码信息的同时还必须承载解复用以及解码所需要诸多辅助信息,这就使TS流的描述性语法结构十分复杂,再加上高达20M左右的传输码率,传统的信源监测方法很难实现对地面数字电视这样的MPTS流进行数据层面的有效监测。因此研究和实现对MPTS的时实监测十分必要。

1 MPTS码流的传输和结构分析

TS流为MPEG-2的传输流,是Moving Pictures ExpertGroup (运动图像专家组)制定的主要用于传输声音和图像数据压缩的标准,也是当前国内地面数字电视所使用的传输标准。相对于ASI,因为IP传输有着极高性价比,更适合远距离传输,因此从中心(碼流发送端)到各地面发射台站主要采用这种传输方式。

关于TS流的结构,有文献已做了详细的介绍,限于篇幅就不再赘述,这里仅就我们设计中所涉及到的内容进行分析。

TS流格式为一个基于Packet(包)的Bit流,每个Packet规定为188个字节,其中前4个字节为Packet header(包头)。

Packet header的具体含义如表1。其中PID(Packet ID)是TS流中一个非常重要的参数,它标识着Packet Data(包数据)的类型,Packet Data是什么类型数据就是由PID声明的。PAT(节目关联表)是一个特殊的Packet Data,它定义了TS流中的所有业务,其PID固定为0x0000是节目信息的根节点。PMT(节目映射表)是另一个特殊的Packet Data,负责提供具体节目的编号和组成它们的节目元之间的映射,它的PID由PAT指定,而具体节目SMTS中所包含的节目元Video数据的PID、Audio数据的PID和Other(其他)数据的PID(如数字广播、图文信息、数据通讯等使用的PID) 则由PMT指定。

可表示为:

MPTS=PAT+∑(SMTS)+Other Packet Data

SMTS=PMT+Video Packet Data+Audio Packet Data

由于我们主要关心的是电视信息码流的实时监测,并不对信息Packet Data进行解码播放,这里就不对Other Packet Data和TS流中关于解码的有关参数做详细解析。

通过前面的分析,可以看出MPTS的结构模型是一个基于PID的树,PAT为根。通过PAT可以遍历整个树。这也正是我们设计的理论依据。

2 实际应用

本台地面数字电视情况:

(1)本台地面数字电视TS流的传输由4个相对独立的IP通道采用Multicast(组播)方式进行的,Multicast地址分别为:224.30.1.11、224.30.1.12、224.30.1.13、224.30.1.14,共同使用8500端口。

(2)每个通道传输的为MPTS流,由若干套电视节目的SMTS和Other Packet Data构成。分别通过各自的PAT来指定SMTS的具体套数(目前都为10)和PMT的PID。

(3)SMTS为具体电视节目的码流(如CCTV-1等),包含节目号、节目名、Video Packet Data和Audio Packet Data。由SMTS的PMT指定。

设计由主界面中如下3个区域来显示监测结果:

(1)体现4个通道MPTS层次结构的区域。

(2)动态显示选定通道MPTS UDP包序列的区域。

(3)具体TS包数据的16进制显示区域。

2.1 系统初始化

主要是实现区域(1)的功能,监测MPTS的有无,并将其层次结构显示出来。一个通道的初始化程序结构如图1所示,其他通道相同。

实际当中,码流处理单元是由4个独立的嵌入式系统来分别完成4个通道的MPTS码流接收的,不存在端口共用问题,而本项目却存在一个操作系统下4个线程同时使用同一个端口的问题。这就需要们在每个通道的组播接收线程中,在创建setsockopt时使用SO_REUSEADDR选项并做相应的处理。

需要说明,在MPTS树结构中,节目号和节目名应该是PMT的子节点,而设计中我们做了互换,这主要是为了适应我们的观测习惯。

2.2  MPTS码流的实时获取、过滤与显示

主要是实现区域(2)的功能,就是将包含MPTS的每个UDP包按接收顺序存入缓冲区,并将其Index(序号)、Data type(数据类型)、n/7(所选类型TS占UDP包数)、Sour IP(发送端IP地址)、Sour Port(发送端端口)等项,以列表形式实时显示出来。

MPTS码流的实时获取、过滤与显示部分程序结构如图2所示。

由于区域(1)中4个通道对应的树有诸多节点,选中节点具体处在哪个阶层、属于哪个通道是随机的。需要由该节点向上递归来确定。递归算法如下:

另外,直接显示数字电视这种高速、巨量数据将会出现大量丢包、界面闪烁现象,无法满足观测要求。这里我们是使用VirtualList(虚拟列表)技术解决的。

2.3 TS包数据的16进制显示

实现区域(3)的功能,根据用户在区域(2)中选择的Index,把其对应缓冲区的UDP包进行过滤,对满足条件的ST包数据做16进制转换并显示。程序结构如图3所示。

受MTU(网络最大传送单元)的限制,数字电视业务标准规定,每个UDP包固定包含7个TS包,所以过滤过程要执行7次 。3.1.2节中的过滤过程也是这样。

2.4 码率的计算和显示

除了上述监测功能外,还设计了对选定通道码率的实时监测功能。原理描述如下:

T1=timeGetTime();

接收UDP包数据n次

T2=timeGetTime();

碼率=n个UDP包的数据量/(T2-T1)

使用Mbps为码率单位。那么n个UDP 包的数据量为:7*188*8*n/1024*1024(Mbit)、时间间隔为:(T2-T1)/1000(s)。实际设计中根据观测效果选择n=3000。

3 应用系统测试

设计完成,实际运行后的在线实时监测界面,如图4所示。其中,左边为区域:(1)、右上为区域(2)、右下为区域(3)、右上角为实时码率。监测数据与编码端理论数据对比,结果完全相同。

4 结语

TS码流监测是广播电视数字化进程中的重要组成部分,本文通过具体的应用事例,分析研究了数字电视MPTS码流的结构及其传输原理,给出了获取和解析MPTS码流、码率的算法流程。

参考文献

[1] 方涛.数字电视业务信息及其编码[M].北京:国防工业出版社,2003.

[2] 工业和信息化部与国家新闻出版广电总局联合发布,广播电视先进视频编解码(AVS+)技术应用实施指南[S].2014.

[3] 浮沉.基于IP的数字电视信号监测系统构设计与实现[J].广播电视信息,2012(6):50-51.

[4] 阿合买提江吾甫尔.数字电视信号监测系统方案的设计[J].广播与电视技术,2007(8):140-141.

[5] 宋栋栋.数字电视TS码流监测的研究分析[D].北京:北京邮电大学,2009.

Abstract:This paper analyzes and studies the structure and transmission characteristics of TS streams.Based on the actual requirements of the management and maintenance of the terrestrial digital TV system, according to the specific application software design process ,the method of real-time monitoring of the MPTS code stream of the terrestrial transmitting station is introduced in detail.

Key words:digital terrestrial television;MPTS stream;bit rate; real-time monitoring

猜你喜欢

码流码率传输
分布式码流实时监控与录制系统的设计与实现
数字电视TS码流协议简要分析
混合型随机微分方程的传输不等式
牵引8K超高清传输时代 FIBBR Pure38K
关于无线电力传输的探究
基于状态机的视频码率自适应算法
支持长距离4K HDR传输 AudioQuest Pearl、 Forest、 Cinnamon HDMI线
基于场景突变的码率控制算法
X264多线程下码率控制算法的优化
多光谱图像压缩的联合码率分配—码率控制方法