1 引言
MPEG-Ⅱ作为一种运动图像国际标准已经得到广泛应用,数字视频广播(DVB)已经将MPEG-Ⅱ作为一种源格式。在许多实际应用中包括卫星广播、数字电缆和高清晰度电视HDTV,MPEG-Ⅱ分组是通过编码器同步接口输入到信道中。而在宽带数字通信网中如ADSL,FTTC和宽带IDSL是将MPEG-Ⅱ分组转化成另外一种网络传输分组,在这种情况下,一定数目的传输流分组被压缩成一个ATM AAL-5 PDU单元,在分组交换时,PDU被分解成几个ATM单元。至于有多少传输流分组压缩成为ATM AAL-5 PDU单元,主要与ATM网络协议有关,一般是2个传输流分组压缩成一个AAL-5 PDU单元。一个网络中传输的MPEG-2传输流需要内部的分组延迟进行时间上的控制,这种控制主要是为了发送程序参考时钟,从而在系统接收端进行解码时对系统时钟进行恢复。同时也可以避免解码器的输入缓冲的上溢和下溢。
在设计一个视频发送系统的时候,对MPEG-Ⅱ传输流的比特率实行精确的控制就显得尤为重要。当MPEG-Ⅱ分组进行直接传送时,系统时间的控制是比较简单的,关键问题是如何对视频源的输入时间进行精确的计算。如果解决了这个问题,解码器端的解码时钟或者系统层复用器输入的系统时钟基本能够和编码器的系统时钟保持同步。如果当前网络能够容忍一定量的分组延迟,那么对网络堵塞而造成的分组延迟就不是我们所关心的目标,因此对MPEG-Ⅱ进行比特率测量对于整个解码器的设计或者视频发送系统不是显得很关键的问题。但是当MPEG-Ⅱ传输流分组转化成另外一种格式如ATM AAL-5 PDU单元的时候,对由于网络堵塞而造成内部分组延迟甚至是分组丢失就成为一个能否有效解码的十分关键的问题。在这里我们提出了一种简单而有效的方法,可以在解码器或者系统层复用器接收端进行有效的MPEG-Ⅱ比特率测量。通过用MPEG解码芯片和一个嵌入式处理器对MPEG-Ⅱ传输流的程序参考时钟进行统一管理。由于MPEG-Ⅱ传输流程序参考时钟是根据一定的编码器系统参考时钟设定的,所以通过对其实时监控就可以基本确定该流的比特率,同时将当前解码器的参考时钟和程序参考时钟PCR进行对比,就可以对要测量的网络堵塞进行校验。而且设计了一种硬件测试评估卡对该方法进行了验证,验证的结果基本符合当前CATV或者HDTV的要求。
2 网络堵塞和系统参考时钟的恢复
根据MPEG-Ⅱ国际标准,编码器将系统参考时钟(27 MHz)的1/33进行编码,编码后的数据进行一定扩展和处理后作为程序参考时钟PCR嵌入到传输流分组中。因此在解码器端,通过对PCR的恢复就可以确定编码的系统时钟,从而达到编解码的同步。由于在传输流中,含有PCR字段分组的PID值在程序映射表(PMT)得到确定。根据这个含有PCR字段的分组PID就可以参考设置将第一个含有PCR的分组作为系统时钟STC的参考PCR,然后将其余的含有PCR字段的传输分组中的PCR的值通过一定的方式处理就可以恢复系统时钟。恢复系统时钟的方法如下:
(1)将第一个PCR的值对STC进行初始化。
(2)考虑解码器输入缓冲的上溢和下溢的影响,对其大小进行一定的估计,从而确定解码输入缓冲。根据当前MPEG-Ⅱ传输流的最大码率计算,连续含有PCR字段的分组的时间间隔必须小于0.1 s。
(3)对于连续到达的PCR的值进行锁定,通过和第一个PCR的值进行对比,就可以确定STC。
由于在MPEG解复用器输出到缓冲器的过程中以往没能对其码速进行测量,从而会造成缓冲的上溢,而在视频和音频解码器端,在缓冲输入到解码器的过程中,同样原因而造成缓冲的下溢。为此在ATM/CATV网络到MPEG解复用器的过程中,如果能够添加一个接收器的比特监控单元,将能够减少由于网络堵塞而造成的麻烦。
如果从传输分组中得到的含有PCR字段的分组,由于网络堵塞而造成PCR的值随机延迟,解码器和嵌入的系统处理器,将会按照一定的算法对PCR的值进行校正,从而恢复STC。这个校正和当前的MPEG比特率有密切关系,是将当前MPEG比特率对PCR的值进行一定的补偿从而恢复PCR的原值。如果对当前的PCR不进行校正,那么视频解码、图像和D/A转换都会由于这个STC的无法恢复而受到影响。为此,在整个解码器或者解复用器的系统设计过程中,对当前MPEG比特率的实时监控和测量是至关重要的,它的目的就是为了对当前网络传输的延迟进行实时的测量和监控。如果在接收器中能够实时跟踪测试当前的比特率的话,那么基本上ATM/CATV网络的传输延迟(网络堵塞)将会在解码器端得到实时的补偿。
3 接收端MPEG比特率的测量算法
在ATM或者CATV网络传输过程中,MPEG-Ⅱ传输分组由于网络堵塞而造成的随机延迟,使得在解复用器或者解码器端接收到的分组系统时钟和发送端输出的有一定的偏移,在理想情况下,往往对这个偏移不进行考虑,但正是由于这一点而造成视频解码无法正常工作,或者图像无法恢复到原先的状态。在这种情况下,对系统时钟STC的恢复将会在一个不确定的状态下进行。为了避免这种情况的发生,就必须对STC的状态进行检测,将当前得到的PCR的值和本地产生的时钟进行比较,比较的公式推导如下:
(ΔSTC-ΔPCR)ΔSTC=(Δb/ΔPCR-Rf)(Δb/ΔPCR)(1)
式中:ΔSTC=STC(t)-STC(t-1)
ΔPCR=PCR(t)-PCR(t-1)
Δb=b(t)-b(t-1)
t——PCR到达时间;
b(t)——在PCR到达时间t时刻累加的比特数;
Rf——在两个连续过程和更多的PCR之间的运行时间比特率。
如果这里用Sf来替代Δb/ΔPCR,那么(1)式就可以变为:
(ΔSTC-ΔPCR)/ΔSTC=(Sf-Rf) /Sf(2)
在上式中很容易看到Sf能够在视频信号传输之前就可以得到,而且Sf在恒定比特率传输流CBR中是一个常量K,因此在CBR中将上式可以演化成为:
Rf=(ΔSTC/ΔPCR)K(3)
而在可变速率MPEG-Ⅱ传输流(VBR)中由于Sf是一个变量,因此(2)式可以演变成为:
Rf=(ΔSTC×Δb)/(ΔPCR×ΔPCR)(4)
4 硬件测试系统
为了对上述的MPEG-Ⅱ TS比特率算法进行验证,设计了一种硬件测试评估系统,对上面的算法进行实时验证。系统主要由视频服务器和嵌入的处理器组成。视频服务器主要是为了发送MPEG-Ⅱ传输流分组。发送码速是仿真于网络堵塞而造成的网络延迟的分组码速。当MPEG-Ⅱ传输流分组到达处理器后,处理器首先对含有PCR字段的分组进行处理,过滤出PCR的值。处理器主要由两个模块构成:分组处理器和MPEG-Ⅱ系统层解复用器。分组处理器主要将PAT表和PMT表进行处理,同时将处理后的含有PCR字段的分组PID值进行保存输出到解复用器中,解复用器根据PID值对传输流分组进行分解,将含有PCR值的分组进行过滤,同时将该分组中的PCR值提取出来。这里分组处理器用FPGA电路设计,解复用器采用了TMS320VC5410 DSP芯片,解复用器将PCR值进行提取,提取的相邻PCR值相减从而获取ΔPCR,用这个ΔPCR值利用锁相环PLL倍频后得到27 MHz时钟。处理后的MPEG-Ⅱ音频流直接输入到音频解码器中,视频流输入到视频解码器的输入缓冲中。恢复的系统时钟STC作为解码时钟输入到音频和视频解码器中。
MPEG-Ⅱ传输流分组是通过基于NT系统的广播服务器产生。为了便于控制MPEG-Ⅱ比特率,MPEG文件系统数据通过PC机上的流产生器转化成MPEG-ⅡTS分组,同时将该数据流通过数字接口直接输出到分组处理器中。这种处理方式比直接从ATM/CATV网络下载传输分组来测算比特率和系统时钟更加有效。视频服务器可以根据算法的需要将MPEG-Ⅱ传输码率进行调整。不同的码率输入到分组处理器中可以验证上述算法的正确性。同时为了有效控制网络堵塞,避免其他网络延迟对测试比特率的影响,服务器和分组处理器以及MPEG-Ⅱ TS直接连接在一起,用RS422接口去保持信号的稳定性。管脚的物理连接和DAVIC1.1规范中的高速数据I/O保持一致。
5 测试结果评估
利用这个测试系统进行了两个测试结果分析:码流的非连续性和多用户输入情况下的比特率。
(1) 码流的非连续性分析
测试码流的非连续性主要是为了分析当前的解复用器驱动程序能否有效地检测到由于网络延迟而造成的码速变化。这种情况在很多方面都可以看到:如CATV中的网络传输失败,VOD中的视频服务器传送失败,视频播放器播放节目完成等都可以引起当前传送码速的改变,但要注意的是,无论当前传送码流的比特率如何改变甚至是停止传送,当前解复用器中的驱动程序必须能够检测到变化,这样才能够实时测量当前的MPEG-Ⅱ比特率。图像下凹点表示当前MPEG传输分组在PCR到达时间大约在30~35 s的时候流比特率变为0。
(2) 多用户输入情况下的比特率测试结果分析
在多个用户输入情况下,网络的比特率和单路有不同之处。当在CATV网络系统中,在多个用户与网络连接后,服务器可能通过同一个传输通道对每个用户进行服务。比如在VOD中,6路MPEG-Ⅱ传输流共享一个传输通道,这就涉及到了网络资源动态的分配问题。网络带宽的动态分配和每路传输流当前的传输比特率有关,所以在多个用户挂载情况下的比特率测试,对每路TS的比特率测试和计算就显得尤为重要。
6 结论
MPEG-Ⅱ运动图像压缩编码已经成为当今数字广播电视系统中一个非常重要的标准,尤其是在数字电视应用领域。在这些应用领域中,最关键的一个问题就是让MPEG图像传输保持一个稳定的比特率,这样就在解码的时候能够对STC进行有效的恢复,从而保证视频和音频的正确解码。测试MPEG-Ⅱ传输流的码率往往需要一些专业的工具和知识,但是通过应用分组处理器和解复用器,就可以非常简单而有效地完成这个任务。这里提出的MPEG-Ⅱ比特率测试原理和方法,在实际的解码系统终端设计中也具有广泛的应用。为此这里也设计了一种硬件测试平台对其进行评估,评估的结果基本符合实际要求。虽然在这个测试平台中,应用的是视频服务器,用文件的形式来仿真实际的MPEG-Ⅱ传输流数据,但这并不影响这个方式的正确性。
作者:赵忠伟 李式巨 来源:51CTO.COM