ATM网络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保持一致 。

推荐阅读