APP下载

DVB-C标准下传输流解复用器的软件系统设计

2017-09-03欧阳利林岩张烽

单片机与嵌入式系统应用 2017年8期
关键词:复用器音视频解析

欧阳利,林岩,张烽

(北京航空航天大学,北京 100191)

DVB-C标准下传输流解复用器的软件系统设计

欧阳利,林岩,张烽

(北京航空航天大学,北京 100191)

本文介绍了DVB-C标准下传输流的复用/解复用原理,提出了利用软件对传输流解复用及服务信息解析的解决方案,并通过STM320DM8168芯片实现了灵活、高效的软件解复用系统。整个解复用系统主要包括了PID过滤、PSI解析和SI解析三部分。

DVB-C;解复用;嵌入式软件;STM320DM8168

引 言

MPEG-2作为数字音视频压缩的国际通用标准,在数字视频广播系统中广泛应用[1]。而随着全球数字电视的发展,数字电视业务变得复杂多样,数据传输需要更完善的标准。DVB-C标准基于MPEG-2的数据压缩和复用技术,在MPEG-2已有的4个PSI(Program Specific Information)表的基础上进行扩充,增加了9个表用来提供电子节目指南服务,发展为SI(Service Information)[2]。SI是对整个网络所有传输流的描述,包括网络信息、音视频数据流、条件接收系统、业务信息以及节目信息和节目时间表等。实现对DVB-C传输流的高效解复用,提取出音视频流和相关业务信息对于有线数字电视系统具有重要意义。本文提出了一种利用软件实现对DVB-C传输流的解复用,并通过对SI的解析生成电子节目指南(EPG)的实现方案。

1 复用/解复用概述

MPEG-2系统层规范[3]描述了多路音视频的ES流和系统数据的复用机制。根据ISO/TFC 13818-1协议,原始音视频数据经过音视频编码器压缩编码,得到基本流ES (Elementary Stream),系统编码器将ES流进行分组打包,并加入同步时钟TPS及DTS,得到PES 流(Packed Elementary Stream);同一个节目的多个PES流及节目信息经过节目复用器,得到一路TS流。为了充分利用带宽,再将多个节目的TS流进行第二层复用。将第一层复用得到的节目TS流以及系统相关信息通过传输复用器进行二次复用,同时加入节目参考时钟PCR(Program Clock Reference),得到最终的DVB-C TS流。双层复用原理如图1所示。

图1 双层复用原理

最终得到的TS流的包长度是相对固定的,每个包长为188字节或204字节,分为包头和有效负载两部分[4]。包头的PID值为TS包的标识,用来表示TS包的类型,如同一个表的所有TS包具有相同PID。解复用与复用相反,是从TS流中分离出各个节目的音视频码流,并解析出相应的节目信息。

2 解复用软件系统设计

整个解复用软件系统分为三大部分:PID过滤、PSI解析和SI解析。依据DVB标准对各个表PID定义,PID过滤模块对TS包进行分类处理,为后续TS包拼接及表的解析做准备;PSI解析模块完成各个节目的音视频流信息的获取,实现节目的正常播放;SI解析模块则主要获取节目基本信息和电视节目时间表等,为用户生成电子节目指南。

2.1 PID过滤

对DVB-C标准的TS流的解析,实际是对DVB-C标准中定义的各个表的正确解析,解析的前提是根据包标识符PID将所有的TS包按表类型过滤,进而选用正确合理的解析方式。根据解析流程,首先进行PSI解析,其次在其基础上进行SI信息的解析,PID过滤流程与之对应。

在PID过滤前,首先应对输入的TS流进行TS包同步处理。TS包头部以同步字0x47开始,在取得0x47字节时,以每个包长188字节或204字节计算,如若之后两个包的包头也是同步字0x47,则可认为同步成功。

DVB-C标准对表的PID分配如图2所示。在PID过滤时,首先进行PSI数据流的过滤。根据TS包PID判断此包是否属于PSI的4个表,其次判断是否为PMT表中的基本音视频流,最后判断是否为PCR或CA数据,若属于上述数据流,送入PSI解析模块。PID过滤过程如图3所示。

图2 PID分配表

图3 PID过滤

如果不满足PSI过滤条件,则进入SI过滤。SI表之间的联系相对PSI四个表的联系要弱很多,根据特定条件解析顺序也不同,本文采用较为常见的顺序。首先判断是否为SDT或BAT,其次判断是否为EIT或RST,最后判断是否为TDT或TOT,符合条件的都进入EPG信息解析模块进行相应解析处理。

2.2 PSI解析

实现音视频的播放是解复用最基本的目标。解复用的目的是从传输流中恢复出各个节目的音频、视频流和其他系统服务信息,解析出各个节目。要实现节目的解析,主要需要用到PSI的PAT表、PMT表、CAT表和NIT表[5]。图4描述了PSI四个表的关联。PAT表是整个PSI信息的根节点,节目的解析从PAT表开始,由PAT表可以获取到NIT表的PID和传输流中所有节目的PMT表的PID。如果希望获取其中一个节目,则根据其PMT的PID获得PMT表,从PMT中查询与该节目相关的所有码流PID,从而选择性地接收相应PID的TS包,通过解扰及解码等处理,再进行显示。

图4 PSI表关联图

以图4为例,DVB-C标准中规定PAT的PID=0x0,通过PID 0x0 找到PAT表,解析得到NIT的PID(0x10)和各个节目号及对应的PMT表的PID,如节目8,其PMT的PID为0x51。获取PID为0x10的TS包,解析该NIT得到网络的相关信息(如多个TS流分别对应的频率)并保存。如果希望收看节目8,则根据0x51找到对应的PMT表,通过PMT表,可以查到该节目的音视频和PCR及其他私有信息的PID,获取相应PID的传输包进行解码并显示,就得到我们平时观看的电视节目。

对于加扰的节目,在解码时需要利用CAT表,并在特定的智能卡配合下进行解扰。DVB-C标准规定CAT的PID为0x1,CAT表描述了CA系统与对应的授权管理信息EMM所在TS包的PID,提供了解扰系统的相关参数。条件接收系统采用三重密钥传输机制,解扰时首先从PMT及CAT表获取包含ECM和EMM信息的TS包的PID,解析获取相关TS包,将得到的EMM或ECM信息送给智能卡,智能卡解出解扰器需要的CW密钥,解扰器拿到CW密钥即可还原音视频流。

图5展现了PSI的解析以及后续处理的整体过程。通过以上步骤,基本完成了PSI信息的解析,获取到最终的节目,实现正常的节目播放。

图5 PSI解析流程

2.3 SI解析

PSI信息保证了节目的正常播放,而关于节目的其他详细信息,即电子节目指南(EPG)的获取,则需要通过DVB扩展的SI表的解析得到。EPG是数字电视的重要组成部分,它提供了节目的名称、类型、播放列表、时间等。

SI的解析在PSI信息解析的基础上进行,按照SDT—BAT—EIT—RST—TDT (TOT)进行(虽然在DVB标准中,NIT实际属于SI信息范畴,但本文在PSI解析模块对其进行了解析)。本文不考虑仅仅解析单个节目情况,而是对所有信息进行解析,且不考虑当前流和其他流信息解析的先后。图6描述了SI表解析的整体流程。从整体看,对经过PID过滤后进入SI解析模块的TS流的处理流程,主要包括table_id分析、基本信息分析、服务信息解析三大部分。

图6 SI解析流程

一个PID可以对应多个表,而解析以表为单位进行,故首先通过table_id区分每一个表及其作用。在服务信息解析前需要完成每个表的段拼接工作,而后进行表的解析。如图7所示,对于每一个表,都需要为其在内存开辟一个单独的缓存区,用来其全部分段的接收,同时通过分段号来判断一个表的所有分段是否全部接收完成。而版本号是表更新的关键,当版本有更新时,需要重新接收此表。最后才能进行表的解析工作,提取服务信息。

图7 表接收流程

SI表的解析,最终目的是获取各个表所携带的服务信息,服务信息解析的关键是descriptor_tag。服务信息一般包括两层循环,外循环是服务的基本信息,内循环是服务的详细描述。以EIT为例,在第一层循环可以解析得到事件id、开始及持续时间、运行状态以及是否加扰,然而这个事件的名称及描述则需要通过对第二层循环解析得到。对于第二层循环,通过descriptor_tag,可以获知描述的是什么内容,比如事件名字或语言代码。descriptor_tag在DVB-C中的定义如图8所示。

图8 descriptor分配表(部分)

通过SI的解析,利用TOT和TDT表可以获取到时间信息;利用SDT表可以获取服务的详细描述;利用EIT表可以得到频道节目播放时间表;RST可以对EIT动态更新,适时对节目进行切换;而BAT则对服务进行了分类,便于进行节目选择。通过以上信息,已基本可以构造各种各样的EPG。

整个软件解复用系统,通过PID过滤、PSI解析和SI解析三大模块,实现了对TS流的解复用。PSI解析完成了双层解复用,保证了节目的正常播放,SI解析获取了节目信息,并根据需要生成了电子节目指南。DVB-C标准中各个表的关系、作用以及最终得到的解析结果简图如图9所示。

图9 解析结果简图

结 语

[1] ISO/ IEC International Standard 13818, Information technology-generic coding of moving pictures and associated audio[S].Sweden: ISO/IEC Copyright Office,2004.

[2] ETSI.Digital Video Broadcasting(DVB),Specification for Service Information (SI) in DVB systems,2012.

[3] ISO/IEC 13818-1.Information technology-Generic coding of moving pictures and associated audio information:Systems,2012.

[4] 黄鲲鹏,刘丹,胡蓉.MPEG-2传输流解复用的软件实现[J].软件导刊,2008(10):150-152.

[5] 高鹏,陈咏恩.MPEG-2传输流解复用器的设计与实现[J].计算机工程与应用,2006(9):96-98.

Software Design for De-multiplexer Based on DVB-C

Ouyang Li,Lin Yan,Zhang Feng

(Beihang University,Beijing 100191,China)

In the paper,the theory of transport stream multiplexer/de-multiplexer based on DVB-C system is introduced.A solution that depends on software is proposed to accomplish transport stream demultiplexing and service information analysis,which implements a flexible and efficient demultiplexing system with STM320MD8168.The whole demultiplexing system is divided into three parts:PID filtering,PSI analysis and SI analysis.

DVB-C;demultiplex;embedded software;STM320DM8168

TP302.1

A

�士然

2017-03-23)

猜你喜欢

复用器音视频解析
三角函数解析式中ω的几种求法
3KB深圳市一禾音视频科技有限公司
WIFI音视频信号传输的关键问题探究
基于分束器与双向型的光分插复用器分析研究
睡梦解析仪
电竞初解析
高速公路整合移动音视频系统应用
相机解析
复用器与遥控设备兼容问题探讨及解决方案
Roland专业音视频新技术研讨会在上海召开