新闻中心

EEPW首页 > 消费电子 > 设计应用 > ATM网络MPEG-Ⅱ比特率测量系统的设计

ATM网络MPEG-Ⅱ比特率测量系统的设计

——
作者:赵忠伟 李式巨时间:2007-04-16来源:51CTO.COM收藏
1 引言

作为一种运动图像国际标准已经得到广泛应用,数字视频广播(DVB)已经将作为一种源格式。在许多实际应用中包括卫星广播、数字电缆和高清晰度电视分组是通过编码器同步接口输入到信道中。而在宽带数字通信网中如ADSL,FTTC和宽带IDSL是将MPEG-Ⅱ分组转化成另外一种传输分组,在这种情况下,一定数目的传输流分组被压缩成一个 AAL-5 PDU单元,在分组交换时,PDU被分解成几个单元。至于有多少传输流分组压缩成为 AAL-5 PDU单元,主要与ATM协议有关,一般是2个传输流分组压缩成一个AAL-5 PDU单元。一个中传输的MPEG-2传输流需要内部的分组延迟进行时间上的控制,这种控制主要是为了发送程序参考时钟,从而在系统接收端进行解码时对系统时钟进行恢复。同时也可以避免解码器的输入缓冲的上溢和下溢。

在设计一个视频发送系统的时候,对MPEG-Ⅱ传输流的实行精确的控制就显得尤为重要。当MPEG-Ⅱ分组进行直接传送时,系统时间的控制是比较简单的,关键问题是如何对视频源的输入时间进

行精确的计算。如果解决了这个问题,解码器端的解码时钟或者系统层复用器输入的系统时钟基本能够和编码器的系统时钟保持同步。如果当前网络能够容忍一定量的分组延迟,那么对网络堵塞而造成的分组延迟就不是我们所关心的目标,因此对MPEG-Ⅱ进行对于整个解码器的设计或者视频发送系统不是显得很关键的问题。但是当MPEG-Ⅱ传输流分组转化成另外一种格式如ATM AAL-5 PDU单元的时候,对由于网络堵塞而造成内部分组延迟甚至是分组丢失就成为一个能否有效解码的十分关键的问题。在这里我们提出了一种简单而有效的方法,可以在解码器或者系统层复用器接收端进行有效的MPEG-Ⅱ。通过用MPEG解码芯片和一个嵌入式处理器对MPEG-Ⅱ传输流的程序参考时钟进行统一管理。由于MPEG-Ⅱ传输流程序参考时钟是根据一定的编码器系统参考时钟设定的,所以通过对其实时监控就可以基本确定该流的比特率,同时将当前解码器的参考时钟和程序参考时钟PCR进行对比,就可以对要的网络堵塞进行校验。而且设计了一种硬件评估卡对该方法进行了验证,验证的结果基本符合当前CATV或者的要求。

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



评论


相关推荐

技术专区

关闭