一. 引言 在数字电视广播系统中,节目复用器和传输流再复用器是必不可少的。节目复用器的作用是将编码后的视频基本流(ES)、音频基本流、节目描述信息(Program Specification Information,PSI)和辅助数据按MPEG-2系统层标准规定的格式复用成为一个传输流。同时,为了使收发端同步工作,系统时钟(STC)计数器的值将被插入到相应包的PCR字段中去。按照输出传输流中所含的节目数,传输流分为单节目传输流(SPTS)和多节目传输流(MPTS),相应地,节目复用器也被分为单节目复用器和多节目复用器。在传输流最终被送到信道设备进行信道发送之前,需要一台设备将不同来源的传输流合成为一个新的传输流,即传输流再复用器。同时,数据广播、电子节目指南(Electrical Program Guide,EPG)、条件接收(Conditional Access CA)等服务信息(SI)一般也通过再复用器插入到输出传输流。PCR校正是复用器的关键技术之一,PCR的作用是将发端的27MHz的时钟以PCR时间戳的形式注入码流中,而收端是否能够根据该信息无偏差地恢复出发端的参考时钟以达到收发同步,在对系统的性能有至关重要的影响,所以本文对 PCR校正进行了详细的介绍。
二. MPEG-2系统层标准
MPEG-2标准,即ISOIEC13818是数字电视系统的基础,它规定了两种系统层码流格式:一种是节目码流(Program Stream,PS),即PS复用器将一个或几个具有公共时间基准的PES包组合成单一码流,包的长度相对较长而且不固定,它适用于错误相对较少、信道较好的环境,如演播室、家庭环境存储媒介中。另一种是传输码流(Transport Stream,TS),即PES流进入传输复用器中切割成一个个固定长度为188字节的包。适用于较容易发生错误的环境,如广播传输信道。在MPEG-2传输流中,包长固定为188byte每个包由4byte包头、可变数字节的适配域(Adaptation field)以及净荷(Payload)组成。包头包括:同步字节、根据内容不同且长度固定为13bit的包标识(Packet Identifier,PID)、包连续计数器及其他各种标志位.在自适应字段中,比较重要的信息包括42bit的节目时钟基准(Program Clock Reference,PCR)字段。
三. 复用器的关键技术
如果在一个电视频道内复用几路TS流,也即在一个常规频道内传输多套数字电视节目,则称为多路节目的双层复用。第一层复用称为节目复用,第二层复用称为传输复用。传输复用器的基本功能是将来自不同传输流的包进行重新组合,然后放到输出传输流中去。其关键技术有PCR的校正、PSI信息的重构和PID的映射。
(1)PCR校正(PCR correction):PCR由33bit基值(Base)和9bit扩展值(Extension)组成,PCR值以系统参考时钟周期为单位记录了源端的时间信息,对于整个数字电视系统的同步起着关键作用。在节目复用器中,有一个分为两段的42bitPCR计数器,分别对应传输流PCR字段的基值和扩展值。扩展值以节目复用器系统参考时钟(2MHz)为基准在0~299之间循环计数;扩展值每计到300时清零,同时,基值加1。在PCR字段最后1个字节离开节目复用器前的那一时刻,基值和扩展值分别被插入到传输流包的相应位置。在接收端,通过对PCR值的提取,利用锁相环电路恢复出与源端基本一致的27MHz时钟,作为接收端工作的基准时钟。在再复用器中,由于输入传输流的各个包经过再复用器的处理后延时各不相同,有必要对各个节目PCR字段的内容分别进行修正,这种操作称为PCR校正。其基本算法用公式表示如下:
其中,PCRin和PCRout分别为同一个包的PCR字段在进入再复用器和离开再复用器时的数值; 为此字段数据随着相应的传输流包在整个再复用器进行各种处理后产生的延时总和。
(2)PSI信息由MPEG-2标准规定,记录了关于信道、传输流和节目的基本信息。它主要包括节目关联表(Program Association Table,PAT)、节目映射表(Program Map Table,PMT)、网络信息表(Network Information Table,NIT)和条件接收表(Conditional Access Table,CAT)。PSI的插入可以看作再复用器数据插入功能的一个特例。因为再复用器的输出传输流是由多个输入传输流和数据组合而成,所以输出TS的PSI信息需要根据输出流的组成结构重新生成。为了保证码流的随机接入性,MPEG-2标准规定PSI表的重复间隔不得超过100ms,而DVB标准则更加严格,要求不得超过40ms。
(3)PID映射(PID mapping):在同一个传输流中,不同数据包PID的分配是互不冲突的,当来自多个传输流的包复用到一起时,则可能发生PID冲突的现象。另外,用户也可能需要修改某些PID,或将某些PID的包过滤掉。修改PID、根据PID使包选择性通过等操作统称为PID映射。
四. PCR校正的重要性及PCR抖动
1.PCR校正的重要性
PCR是TS流中节目参考时钟的英文缩写,利用PCR可以使数字电视接收机或机顶盒的解码视频输出与编码器端的视频源同步。从MPEG-2的模型来看,必须要保证传输系统是一个恒定延时系统,它的端到端的延迟(从信号进入编码器到信号从解码器输出)是一个常数。如果不进行校正或者校正精度不能满足要求,解码器所恢复的图像容易掉彩色,还会出现周期性的黑屏现象,同时图像会伴有马赛克,严重时会出现死机。
PCR是整个MPEG-2传输系统中的统一时钟,它的作用是将发端的27MHz时钟以PCR时间戳的形式注入码流中,而收端是否能够根据该信息无偏差地恢复出发端的参考时钟以达到收发时钟的同步,这对系统的性能有至关重要的影响,因此对PCR的研究一直是热点问题,其中主要的难点是如何校正并消除人为处理和网路阻塞等影响带来的PCR抖动。
2.非均匀延时和PCR抖动
通常情况下,经过复用和再复用后,PCR值并不能完全精确地反映信源编码端的时间信息,这种现象称为PCR抖动(PCR jitter)。复用器增加的PCR抖动量主要有以下几个来源:①本地27MHz时钟与节目复用器中系统参考时钟不一致;②本地27MHz时钟与输入传输流时钟不一致;③本地27MHz时钟与输出传输流时钟不一致。
下面通过一个例子说明非均匀延迟。假若在某TS流中,PCR1和PCR2之间的原始码速率是a,设为所表示的换算为秒的时间,两者的间隔为m1(bit),显然,根据PCR原理得到a=m1/△PCR。现在,由于传输过程中的各种原因,PCR1和PCR2之间的码流速率变为b,两者间隔为m2,如果要求b=m2/△PCR(即变化后的PCR仍然能够准确地反映当前速率),则必须有:
满足式(1)的延迟称为均匀延迟,否则称为非均匀延迟,显然在一个随机变化的网路中均匀延迟几乎是不可能的,我们把这种非均匀延迟带来的PCR值不能正确放映码流当前的速率信息的状况称为PCR抖动。
引起非均匀延迟的原因主要有两大类:一类是数据在网路中传输时端到端的非均匀传输延迟造成的,这类抖动一般来说都比较小,大多数系统是可以容忍的;另一类是根据传输的需要人为的改变码速率所引起的,码流复用和码速率调整所引起的PCR抖动都属于这一类,这类情况所引起的抖动一般是比较大的。PCR抖动较大会对收端恢复同步时钟产生很大的影响,如果抖动过大会进一步影响图像画面的效果。不同的系统能够容忍的最大抖动是不同的,在DVB系统中要求小于500ns,因此要对PCR进行校正。
五. PCR 校正的基本原理
1.TS流的帧结构
有线电视传送采用GB/17975.1-2000中规定的MPEG-2传送层,MPEG-2数据传送层由188个字节的包组成,每个包由分组包头及有效负荷组成,如图1所示。包含PCR的TS流包结构如图2所示。
2.PCR的作用
PCR是节目参考时钟的英文缩写。包头自适应区中周期性地包含6个字节的编码,用来产生解码器的锁定时钟。利用节目参考时钟,可使数字电视接收机或机顶盒的解码视频输出锁定于编码器输入端的视频信号源。在编码器/复用器中,节目时钟锁定于输入视频信号,由于标清电视(SD)视频(625行50Hz或525行59.94Hz)以27MHz时钟为基准,那么节目时钟也就是27MHz。PCR是计数器的抽点表示,由节目时钟驱动,以某种特定的时间周期(推荐为40ms,ISO/IEC13818-1规定为100ms)插入到流中。
3.PCR的产生及再生
传输中的为一路节目提供参考时钟,其中节目为具有共同时间基点的基本流集合,将被同步解码和显示。传输流中可能有多路节目,每一路节目都有独立的时间基点和各自的。PCR分两部分编码:一部分以系统时钟频率27MHz的1/300为计数单位,称为PCR_ base(方程<1>),它的作用是在解码器切换节目时,提供给解码器PCR计数器的初始值。另一部分以系统时钟频率27MHz作为计数单位,称为PCR_ ext(方程<2>),它的作用是通过解码器端的锁相环电路修正解码器的系统时钟,使其达到和编码器一致。编码在PCR(i)中的数值代表了t(i),i指包含PCR_ base字段的最后一位的字节。具体表达式如下:
由5.2节可知,PCR的取样时钟为27MHz,也就是说,单个时钟周期为37ns,因此,PCR的插入误差不得大于37ns。此外,复用器中的PCR插入机制应能在TS流中确定的准确位置,从而插入正确的数值,该位置的任何计算错误将会导致PCR不准确。对于再复用器和QAM调制器由于必须改变TS流中数据包的相对位置,因此当再插入PCR值时,其相应变化量应当反映任何位置的变化。由此可见,由27MHz时钟以及复用器(或再复用器和QAM调制器)的插入(或再插入)的计算错误会造成PCR的不准确,必须进行PCR校正。
六. PCR校正的方法
不同的复用器中,由于PCR校正实现的方法各不相同,以附加PCR抖动大小(即校正精度)为主要指标的性能差别也很大。下面分别介绍几种PCR校正方法。
1.基于相同实际的PCR校正方案
在13818协议中并没有对PCR的时基作明确的规定,即1路TS流中的多路节目的PCR 可以使用相互独立的时基,也可以使用统一时基(显然现实中不同节目的产生是不相关的,所以往往在复用时保留原有不相关的时基),PCR的作用在于为收端提供一个时钟基准,所需要的是PCR之间的差值,而每一个PCR的绝对值是没有意义的。所以,利用一个本地27MHz时钟按照13818协议的规则重新生成42位PCR值,当TS流中存在多路节目时,不区分当前的PCR域内为哪一路节目的PCR,而是利用一个统一的时钟根据时间在每一个PCR域内顺序置入新的PCR值,这样多路节目的PCR共享一个时基,而在恢复时钟时无需判断是哪一路节目的PCR,只需根据PCR的先后顺序进行锁相恢复即可。由于第二次PCR置入是在速率变化之后,最终输出的PCR值可以无抖动地反映调整之后的码流速率,可见尽管码率调整使得PCR出现抖动,但是重新置入PCR使得抖动消除。
2.关于基于相同时基的PCR校正策略的改进[4]
基于相同时基的PCR校正方法存在一定的弊端,由于采用本地27MHz时钟进行PCR的重新置入,最终恢复出来的27MHz时钟必然是本地的参考时钟,假如这个时钟与原参考时钟有偏差,那么这个偏差将不断积累,假如原参考时钟是产生PS流时产生PCR的参考时钟(这个时钟也是最终收端所需要的时钟基准),这个偏差的积累最终可能导致缓冲区的溢出并使解码产生不良效果,所以在置入时准确地恢复出原27MHz时钟,使重新置入PCR参考时钟无偏差或偏差较小,基于此,对该方案提出了改进。
具体方法是从第一次PCR的重新注入开始,每一次重新注入PCR之前,首先通过,码流中的原有PCR恢复出参考时钟,并用这一时钟来产生新的PCR,从PS流开始,第一次引起PCR抖动的是MPEG-2复用器,而在码流被复用以前其PCR是完全没有抖动的,从这里开始使用上述方法,可以解决时钟偏移量积累的问题。最终的整体FPGA实现框图如下。
3.改进的PCR校正算法
改进的PCR调整方法有别于原来的方法,它不是对原有的PCR值进行修改,而是重新生成正确的PCR值,并替代原有的PCR值。基本原理是用本地27MHz时钟计数值代替原有的PCR值,同时保存它们之间的差值,在用这个差值调整PTS,DTS值。如图4所示,原PCR值进入PCR校正模块, 被本地27MHz时钟计数值代替输出,同时计算两者的差值并保存到RAM中;如图5所示,原PTS,DTS值进入PTS,DTS 校正模块,原PTS和DTS值减去保存在RAM中的相应差值,输出正确的PTS和DTS值。
七. 结束语
在复用器系统中凡涉及到TS流的解复用和在复用都不可避免的要涉及到PCR校正问题。通过分析PCR校正的原因,介绍PCR校正的基本原理和现有的一些不同的PCR校正方法,可以为以后的研究和设计奠定一定的基础。
参考文献
[1] 王兴东,余松煜,梁龙飞.MPEG-2传输流再复用器的设计[J].上海交通大学学报.2003年6月
[2] 杨德鹏,邹伦开,徐亮. MPEG-2节目复用器中的关键技术及实现[J].中国有线电视.2006年2月
[3] 郑鑫,张晓玲.数字电视QAM调制器中PCR校正的设计与实现[J].中国有线电视.2005年7月
[4] 张炜,刘鹏.基于MPEG-2的PCR校正策略[J].中国有线电视.2006年
[5] 张磊,王宏远.基于改进的PCR校正算法的MPEG-2复用器[J].电视技术.2006年第3期