MPEG-2 系统的传输流复用方式

来源:百度文库 编辑:16楼社区 时间:2020/08/09 07:56:05
2.5  MPEG-2 系统的传输流复用方式
MPEG-2标准可分为三部分:视频、音频和系统。上面所述的MPEG-2视频、音频编码是针对每一路电视信号的图像和伴频进行的。视频编码和音频编码部分输出的是视频或音频基本码流(称为ES流)。ES流再经过打包后输出的是包基本流 ( 称为 PES) 。包基本流的包长度可变的,视频通常是一帧(即一幅图像)一个包;音频包长度通常为一个音频帧,不超过64KB 。打包的视频、音频基本码流再经过复用打包,可形成两种不同的码流,即节目流(PS:Program Stream)和传送流(TS:Transport Stream)。从打包开始便属于MPEG-2系统的范围。节目流和传送流的码率都是可变的,但节目流的速率是由系统时钟参考(称为 SCR)定义的;而传送流的速率则是由节目时钟参考(称为PCR)定义的。由于节目流(PS)一般适用于误码比较小的演播室、家庭环境和存储媒介(如DVD光盘)等场合使用。但在数字卫星电视信号的传输信道中存在较大的干扰,容易产生较大的误码,故需要采用传送流(S)进行传送。
2.5.1 MPEG-2传送流结构
MPEG-2传送流结构是为系统复用和传输所定义的,属于系统传输层结构中的一种。通过与MPEG-2系统时序模型的建立、节目特殊信息(PSI)及服务信息(SI)共同作用来实现在恶劣的信道环境中灵活可靠的复用、传输与解复用。
MPEG-2系统部分给出了多路音频、视频的复用和同步标准。系统传输层的结构可以用图2-35来描述。其中,ES流是经过压缩编码的音视频码流,PES流是打包后的音视频编码流,而信道中传输的码流有两类——适用于DVB-S系统这种有可能发生严重错误(如比特值错误或分组丢失)的应用环境的码流是TS。它是若干188B长度的TS包的串联,发生传输误码时它可以从固定长度的包结构中方便地找出同步字,恢复同步;而PS是不定长度的,一旦失去同步,就会失去整帧数据,故只适用于相对无误差的环境。

图 2-35 MPEG-2 系统传输层结构
传送流分组的结构如图2-36所示,传送流的系统层可分作两个子层——一个是相应于特定数据流操作(PES分组层,可变长度),该层是为编解码的控制而定义的逻辑结构。PES头包括流的性质、版权说明(该节目是原始节目还是复制节目)、加入时间标签PTS和DTS、说明DSM的特殊模式等;另一个是相应于多路复用操作(TS分组层,188字节固定长度结构),该层是针对交换和互操作而定义的。在TS头中加入同步、说明有无差错、有无加扰、加入连续计数和不连续性指示(因为节目流的包相互交叉)、加入节目参考时钟PCR以及包识别PID等。

图 2-36 MPEG-2 传送流结构
两个子层间的复用关系是通过将PES结构切割成一个个小包作为TS包的净荷嵌入到TS流结构中而建立起来的。这种结构可以很方便地实现直接从传送流中解出原始音视频、数据;也可从一个或多个传送流中抽取想要的基本流来进行解码或构造新的传送流再次传输;还可以依据通信信道的质量在TS流与PS流间作切换。
一个TS包有188个字节,由分组首部、可变长度适配头和净负荷数据组成,如图2-37所示。
分组首部以固定8位字段的同步头开始,同步字为 0x47 。同步头后是几个重要的标志,如“不可纠正错误指示”、“有效负载起始标志”、“传送优先指示”、“PID(Packet identifier分组标号)”、“有效负载加密控制”、“调整字段控制”、“连续计数器”等。其中的“PID”是辨别传送流分组的重要参数,PID通过节目特殊信息(PSI)表来识别传送流分组中所带的数据。一个PID值的传送流分组只带有来自一个原始流的数据。“调整字段控制”表示分组首部中是否有调整字段,调整字段中含有节目参考时钟PCR的重要信息。
分组有效负载带有原始流分组(PES)数据,或者带有程序特殊信息(PSI)或服务信息(SI),或者带有私有数据。原始流数据加载在PES中,PES分组由PES分组首部及其后的分组数据组成。PES分组插在传送流分组中,每个PES分组首部的第一个字节就是传送流分组有效负载的第一个字节。也就是说,一个PES包的包头必须包含在一个新的TS包中,同时PES包数据要充满TS传送包的有效负荷区域,若PES包数据的结尾无法与TS包的结尾对齐,则需要在TS的自适应区域中插入相应数量的填充字节,使得两者的结尾对齐。

图 2-37 MPEG-2 TS 包结构
节目特殊信息(PSI)表可以被分割成一段或多段置于传送流分组的有效负荷部分中。分段长度可变,一个分段的最大字节数为1K,分段的开始由传送流分组有效负载中的指针字段(pointer-field)指示。
私用数据在传送流分组中的运载方法是私自定义的,它可以按用于携带PSI表的方法构造,一个私有分段的最大值为4K。
以上就是TS层的结构说明,TS包的有效负荷数据可以是PES、PSI、SI数据,其中PES的组成和结构如图2-38所示。

图 2-38 MPEG-2 PES分组结构
2.5.2 MPEG-2的系统时序模型
由于在数字压缩系统中,每一帧图像所占的数据量是不同的,其依赖于图像的编码方式和图像的复杂度。而通常的传输信道的时延是固定的,因而,对于活动图像而言,各帧的传输时延是可变的,于是传输和显示之间没有自然的同步概念。也就是说,数字传输系统不像模拟电视传输系统那样,图像信息以同步方式传输,接收机可以从图像同步信号中直接获得时钟信号,并由此控制显示。
MPEG-2的系统时序模型的建立,就是为了解决以上的不定时延的问题。它是一个以编码输入端与解码输出端(显示端)之间为一恒定时延的模型。该模型通过每个编码器、解码器缓冲区的延时是可变的方法(不仅仅是通过一原始流通道的缓冲区的延时可变,就是在音频和视频通道中单个的缓冲区延迟也是可变的)来实现恒定时延。为了实现缓冲器的延时可变,MPEG-2系统采用了在ES、PES和TS 3个码流层次中设置相关的时钟信息,分别为VBV-delay、显示时间标签PTS(Presentation Time Stamp)和解码时间标签DTS(Decoding Time Stamp)、节目参考时钟PCR(Program Clock Reference),并通过其联合作用达到编解码的同步和音视频显示的同步,如图2-39所示。

图 2-39 MPEG-2系统编解码时钟控制
VBV-delay是表示MPEG-2假定的目标解码器的视频缓冲校验器VBV接收到图像起始码后,到当前解码帧解码开始所等待的90KHz系统时钟的周期数。它用来在播放开始时设置解码器缓冲区的初始分配,以防止解码器的缓冲器出现上溢或下溢。
PTS、DTS、PCR都是基于统一的27MHz系统时钟,整个系统由该时钟来同步。以上三个时钟信息由系统时钟来产生,因此该时钟要求有很高的频率稳定度。PTS、DTS均为33bit,编码成3个独立的字段,是保证音视频准确同步的必要信息。这些时间标签均是以此分组数据开始的第一个访问单元为基准来编码的;对TS码流而言,PTS和DTS的间隔700ms。当实际码流合成器(PES打包器)工作时,DTS值由系统信道复用器产生,并通过串行通信方式送给码流合成模块,同时还采用同样的方式送给音视频编码器。而PTS值则是利用帧同步信号对DTS计数值进行延时锁存(延时长度随图像组GOP类型和图像帧类型而定),增加音视频同步的可靠性和简易性。
PCR是指示抽样间隙中系统时钟本身的瞬时值。其稳定度要求高,误差小于20ppm,时间变化率小于75×Hz/s 。PCR为42bit 值,分为33bit的基于90KHz时钟计数的PCR_base字段和9bit基于27MHz采样的PCR_ext字段。PCR在TS流中的最大间隔(从编码位插入PCR域后至到达解码器解复用时间)应小于100ms(DVB中一般为40ms)。将PCR按一定时间间隔精确插入到TS中,才可保证解码系统时钟以此做出精确重建,以保持与编码器的准确同步。
2.5.3 节目特殊信息PSI和服务信息SI
PSI是 MPEG-2特有的说明信息,用来自动设置解码所需的参数和引导解码器进行解码,并提供音视频同步信息。它由4种信息表组成:节目关联表(PAT)、节目映射表(PMT)、条件访问表(CAT)和网络信息表(NIT)。这四种表都有自己的 ID值。各种表和节目流的PID都是13位,其中PAT表的PID为0。将PID=0赋予PAT,可见PAT的重要性,它是所有这些信息的根。下面通过一个解码时各表调用的例子来说明它们之间的关系。
解码器先在TS流中找到 PAT 表,找出相应节目的PMT表的PID,再由该PID找到该PMT表,然后在相应的PMT表找到相应码流的PID值,才能找到所需的码流进行解码。如图2-40所示。假设要对节目1(没有加扰的)进行解码,首先要先找到PAT,在PAT表中,列出了若干节目的PMT表的PID,节目2的PMT表的PID是22,由此可以找出节目1的PMT表。在这个PMT中有若干个码流的PID。码流1、码流2、…分别对应该节目的视频和若干个音频以及其它数据的PID。再根据这些码流的PID值,就可以在传送流中找到相应的码流。

图 2-40 PSI 信息的内在逻辑关系
CAT(PID=1)用于节目码流解扰之用,说明各基本流是否加密,并能帮助解码器找到控制加密的加密控制信息(ECM)和加密管理信息(EMM);NIT主要用于说明节目所属网络的情况和主要参数。所有的PSI信息必须以一定的频率不断的发送,每秒钟至少要发20次。由于它包括了所有自动设置和引导解码器进行节目解调的规格化数据和私用数据,因而它不可被加密。
实际上,仅有PSI信息尚不能使综合接收解码器(IRD)自动接收某一业务并提供相应的节目的信息。因此,DVB标准提供额外的服务信息SI(Service Information)作PSI的补充。它提供了整个IRD的设置信息,而不象PSI信息那样仅提供MPEG-2解码信息,从而可以使IRD自动调谐接收特定的节目并可对节目进行分组。SI中有传送的节目时间表、电子节目指南信息( Electronic Program Guide)等。SI信息包括节目的种类(如体育节目、新闻或电影)、节目的起始时间、节目的来源等。这些信息主要包括在4个基本表和一系列可选送的表中,4个基本的表是:
NIT (网络信息表)——将属于特定节目提供所有者的所有节目集中在一起,提供调谐接收所必需的转发器频率、符号率等数据,并在节目接收参数有变化时及时更新参数使IRD自动跟踪接收;
SDT (业务描述表)——给出特定复用器中与每个节目或业务有关的其他节目的名称与参数;
EIT (节目信息表)——给出各类节目的时间安排;
TDT (时间及日期表)——提供节目开始的具体时间。由于它有具体的时钟信息,因此有时还可作为IRD解码时钟的更新。
除了这四个基本表外,DVB-SI还包括若干个可选表:
BAT (节目组相关表)——给不同观众提供不同节目组合信息。
RST (运行状态表)——快速更新某节目或某些节目的运行参数。它只有在状态或节目变更时才发送一次。
ST (填充表)——用来替代不传送的表。
总之,PSI及其扩展SI是传送流解复用的指导性信息,IRD应首先从码流中提取这些信息,才能为后续的码流分析和数据提取提供依据。
2.5.4 MPEG-2传送流的复用过程
在单载波多节目(MCPC)方式下,MPEG-2传送流的复用过程可分作两个层次:打包后的音视频数据 PES 流合成单个节目的TS流,以及多个单节目的TS流合成总的TS流(如图2-41)。在单载波单节目(SCPC)方式下,只含第一个层次的复用。不论是哪一级的复用,都要满足实时要求;不论是硬件复用还是软件复用,均要考虑速率上的实时要求。因而,目前大多数复用设备都采用了DSP实时处理技术。
下面就目前较为常用的传送流复用方案,说明双层复用思想及其过程。

图 2-41 MPEG-2 传送流双层复用模型
(一) 从PES/PSI/私用数据到单节目的TS流
复用思想:通过两级缓冲,对同一节目源的各个PES分组流先进行速率均衡,而后将PES流拆分为TS包净荷大小,并插入TS包头(含PCR信息),打成固定长度的传送流TS;同时定期地插入以PSI分段为净荷的TS包。处理过程如图2-42所示。
1 .各种TS包的速率均衡。视频流的输入速率远大于音频和数据的输入速率,因而必须采用二级缓存和DSP轮询技术。当一级FIFO中的值大于预定的门限时,将其移入主缓存,与数据一同进入主数据通道,完成TS包头的插入和TS流的成形,从而使视频TS包、音频TS包和数据TS包均匀交织于最终的系统传送码流中,保证解码端的音视频解码器的Buffer不会上溢或下溢。
2 .PES流准确嵌入到TS包框架中。从语法分析可知,PES分组包的包头必须与封装它的TS包的净荷数据首字节对齐。因此,当 DSP 轮询中检测到PES包头时,应将已缓存的数据(长度为N)分别封装在相邻的两个TS包的净荷中,使前一个TS包经填充(182-(N-4))Bytes后,达到PES包与TS包的末尾对齐;而后一个TS包的净荷的首字节与该PES包头对齐。

图 2-42 从PES码流复用到TS码流的处理框图
3 .系统PCR、PSI信息的插入。为简便起见,规定PCR与PSI具有相同的重复间隔(为40ms)。根据复用器输出速率恒定的机制,可用计数器计数已生成的TS包个数的方法间接定时。一旦DSP轮询前监测到时间间隔标记,则在打包的下一视频TS包中,插入PCR时间标记,同时在随后的两个TS包中放入PSI分段信息。而PCR的真正插入是在检测到PCR域的标志字后,在PCR域最后离开复用器的那一刻完成。
(二)从单节目TS流到多节目TS流
复用思想:在多CPU的服务器上,用软件分进程处理代替硬件复用,以降低成本、提高灵活性。其方法是,将各个单节目TS流以时分的方式复合成总的TS流,并将各节目的PSI信息经分析合成,形成总的PSI信息(构造新的PAT)。
复用过程:硬盘或输入接口存储的各路单节目TS流,经复用预处理提取各自的PSI和码率信息后,分别设置到输入进程和复用进程中;启动输入进程和复用进程,输入进程把各路TS流以预置码率读到缓冲区中,并同时进行PCR修正;复用进程控制对各路TS流的选择发送。具体过程如下:
1 . 传送流的信息分析。
a) 码率的提取:

(2-27)
其中,为相邻两 PCR 间的比特数;为相邻两个PCR间的差值。实际中,取平均码率为该TS流的输入码率。
b) PSI信息的提取:从各个单节目TS流的PMT中合成总的TS流的PAT(PID=0),即给出总的TS流中所包含的所有节目流的PMT对应的PID。

输入进程
图 2-43 从个单节目TS流复用到总的TS流的处理框图
2 . 输入TS流的调度和输出传送流的存储。
a) 输入调度:为保证TS流按设定的码率被提取,以软件轮询方式,将获取的当前系统时间Tsys分别与TSi的当前包时间Ti进行比较,以决定是否提取该TSi到复用进程中。
b) 输出调度:为保证输入缓冲区Bi既不上溢也不下溢,复用进程采取轮询转发策略。当所有缓冲区B1~Bn均无TS包时发送空包(PID=8191);同时实时地调整包的发送速度,使合成的传送流码率近似为各路TS流码率之和,以尽量减少合成TS流中空包的数目。
3 .传送流的PCR修正。由于时分复用,各路TS流在合成TS流中是由不连续的TS包构成的,各个包的相对时域位置发生了改变,且TS包的PCR字段反映的是复用前发送PCR_base的时刻,亦即产生了PCR的抖动。处理策略是:当输入进程检测到当前TS包中含PCR字段时,采样当前系统时间;复用进程发送该包时,再采样当前系统时间。根据两次时间差值,计算出复用所导致的PCR实际延时 , 并据此修正PCR值,以恢复到与PTS和DTS有相同的时间起点。又考虑到PCR信息的插入周期大于复用软件从检测到PCR到发送该PCR的时间间隔,因而对各个PCR的修正处理不会交错。
2.5.5 有条件接收技术简介
在全数字传输平台上运行各种服务业务都离不开条件接收系统。条件接收(CA : Conditional Access)是电视节目商业化的需要,没有条件接收,就无从谈及增值盈利。同时,它也是应数字电视系统的交互要求而定义的,是收发两端相互配合的系统。在发送端,对MPEG-2码 流中的收费或保密部分信息用密钥进行加扰;在接收端,靠用户智能卡来解密产生密钥进行解扰。目前,CA系统已应用于视频点播等交互式业务上。DVB系统发射端的加扰是在系统打包复用过程之前发生的,即按MPEG-2标准压缩后的音视频和数据,先进行加扰后才进行系统层的复用,形成传送流(TS)。DVB定义了统一的条件接收接口,但允许不同的加密方式,以方便各种不同系统的同时采用。
DVB和MPEG-2系统层没有对有条件接收系统作具体的规定,只是给出CAT的定义。目前,许多有条件接收系统,如Viaccess、MediaguardNagra等,都已应用于商业领域,它们实现原理基本相同。各节目提供商也可根据自己的需要选择使用各自的有条件接收系统。
通常,一个CA系统是由工作密钥KW、加扰密钥和主密钥构成,用户只有得到这三个才能正确的解扰出广播的信息。如何将这三个密钥安全的传送到用户手上,是一个CA系统的关键所在。CA系统中传送的信息可分为公有信息和私有信息。公有信息是传输给所有用户的关于CA信息的,包含有节目信息(如该节目的视听费用、限制级别等)和控制节目信息,同时还包含加扰密钥;私有信息是传送给某个特定用户的关于该用户权限的信息,通过它可以更改用户的权限,同时还包含工作密钥
通过可以解出和其它私有信息,通过又可以解出和公有信息,有了就可以解出相应的加扰节目。
(一)条件接收系统的基本原理
图2-44是DVB系统基于以上原理构成的条件接收系统的结构框图。
图中,CW(Control Word)为控制字,相当于,通常可不断改变;授权控制信息ECM(Entitlement Control Message)相当于公有信息,提供特定的控制字或基于码流的解扰和控制参数;授权管理信息EMM(Entitlement Control Message)相当于私有信息,除了有智能卡识别符,还提供特定的用户的权限。它一般传输给特定的用户或用户群,告诉智能卡那些节目可以解扰以及实现的权限。例如,出于安全的考虑,可以发送信息给某个智能卡使其失效。EMM通常定期(如一个月)改变后传输给用户,用于更新和保持用户的权限。同时,对于某些付费业务,EMM经常传输一定数量的特性符(TOKEN)给用户,它代表用户可以购买的节目数量,智能卡可根据得到的 TOKEN 决定可以解扰的节目数量。在MPEG -2码 流中,EMM、ECM所在的分组位置由CAT中的CA描述子(CA_descriptor)中的CA-PID字段给出。通过该PID,可以在TS包中找到EMM,在PMT表中找到ECM。

图 2-44 MPEG-2的条件接收系统
SMS(用户管理系统):存储用户的信息和管理用户的权限和账户。它给SAS发送控制SMART CARD的命令,从而达到控制用户权限的目的。
SAS(用户授权系统):担负着传输权限消息给SAMAT CARD的任务,接收SMS来的命令,将其转化为加密的EMM信息输出。它可以连接到多个不同的SMS上。
加扰过程:在发送端,视音频或数据码流首先在控制字的控制下进行加密,将数据打乱。同时,CW也进行加密,与构成ECM。ECM、加密后的数据和经加密的EMM三者一起送入传输系统,其中的ECM和EMM送给智能卡。
(二) DVB系统解扰过程
1 .EMM和ECM的提取和使用。如前所述,EMM和ECM可以根据其对应的PID,在码流中的相应位置中提取出来。值得注意的是,目前有几种有条件接收系统,它是由CAT表中的CA_descriptor中的CA_system_ID(有条件接收系统识别符)来标识的。每个系统有相对应的EMM形式,每一种接收系统可有多个的智能卡来解扰。在EMM中就有智能卡的识别符,它标志着该EMM所适用的不同智能卡。接收端的CA模块比较该符号与当时所插入的智能卡的识别号是否相同,来决定是否将此EMM传递到该智能卡上进行解密。
2 .智能卡工作过程和组成。EMM的解密是唯一的,也就是说,一个智能卡只能解与其相关的EMM信息。解密后,就可以得到用于解ECM的所有信息,恢复出发送端的密钥CW。该CW就可用于对加扰的数据进行解密。可见,智能卡、ECM、EMM是解扰系统不可缺少的三要素。当智能卡插入时,接收机将读取TS中的“条件接收系统识别码(Conditional Access System ID)”,并用此来找到带有EMM的正确的基本流。有的智能卡还自带一密钥,将解出的CW再度加密后送到接收机。此时智能卡与接收机是协同工作、相互配套的。这种智能卡不能用于其它的接收机,但大部分的智能卡(即不把CW重新加密的)则可同时供多个用户使用。
智能卡内部包括协处理器、ROM、EEPROM等。例如,IRDETO 1.X版本的智能卡带有20k ROM、2k EEPROM和一个RSA协处理器,每一部分包4对密钥,总共可产生120个分时业务和145个立即付费电视业务。它每秒能处理0.5个EMM,3个ECM,并有11个EMM的缓存能力。