当前位置 > 首页 > 网站建设学院 > > 数据通信

一种实现MPEG2传输流码率调整的方法

2/14/2005来源:数据通信人气:12450

李 威,周正欧

电子科技大学电子工程学院,四川 成都 610054


  1 前言

  随着数字电视技术的发展,MPEG2标准已被广泛地接受,它是声音和图像数字化的基础标准,可用于数字电视及数字声音广播、数字图像与声音信号的传输及多媒体等领域。MPEG2的系统规定两种数据格式即节目码流(PS)和传输码流(TS),其中,节目码流主要为本地应用设计,数据帧长度不固定,用在误码较低的场合(如DVD);传输码流是为广播应用而设计的,由于信道环境不可预测,传输流由固定的包长构成,有利于在出现错误的情况下能够迅速同步。在TS流传输过程中,由于时钟出现抖动及源设备与目标设备的码率有可能不一致,因此,有必要对码率进行调整。

  2 码率调整的实观

  2.1 TS流的帧格式及接口

  MPEG2标准的帧长度有两种格式:188个字节和188个字节经过RS编码后构成的204个字节。两种格式的数据在调整码率的原理上是一致的,因此本文仅以188字节的帧长度为例,TS的帧结构如图1所示。



  由图1可以看出,通过对TS流帧的头部进行设置(0x47,0xlf,0xff, 0x10),后面的字节用0x00填充,可以人为地输出空包,这就提供了一种较好的码率调整方法。在调整时,先将数据存入先进先出(FIFO),由CPLD利用本地时钟控制FIFO读,当至少有一帧数据时,将数据读出,否则由CPLD发出一个空包,等待FIFO有数据并满足条件时,再读FIFO内部的数据,这样实现TS流的码率调整。

  另外,MPEG2传输流数据信号有三种接口,即同步并行接口(SPI)、异步串行接口(ASI)和同步串行接口(SSI)。其中,ASI和SPI接口较常用。ASI接口的数据传输速率为270Mb/s,在进行码率调整之前,需要将ASI接口中的同步字节删除,进行串并转换,再进一步处理。SPI接口传输数据率可变,帧与帧之间必须是连续的。

  2.2 码率调整的硬件实现

  由以上的讨论可知,码率调整的硬件主要有ASI格式转换电路、缓存和控制电路,同时,为了适应不同解码设备码率的差别,又采用了直接数字频率合成(DDS),输入信号有ASI和SPI接口,最后都由SPI接口输出标准信号,硬件构成如图2所示。



  2.2.1 转换电路

  CY7B933是美国CYPRESS公司近年推出的端到端通信接收解码电路。它把接收到的串行比特流进行串/并转换,这个串/并转换是采用每10bit串行比特流作为一组来转换为10bit字。为了保证串/并转换是在正确的字节对齐状态下进行,必须通过恢复字节对齐处理,而用于对齐的同步字节K28.5是恢复对齐处理的关键字节。恢复字节对齐处理模块首先搜索串行比特数据流中的K28.5字符0011111010或者1100000101,当在5个字节窗口(也就是50个比特)中搜索到两个相邻的K28.5特殊字符以后,就应该呈现已正确对齐的字节流。在第2个K28.5特殊字符以后接收到的第1个字节,应该具有有效的字节对齐。经过串/并转换之后的数据字节是一个10bit字,经过88/10B解码器解码成8bit的字节。然后将数据或同步特殊字符输出,通过输出一位标志位,表明输出的是数据或特殊字符,因此,CY7B933不能实现特殊字符的删除,在文献中规定了对ASI接口数据首先进行时钟及数据的恢复、串并转换,然后进行特殊字节的删除,最后进行8B/10B解码,因此,CY7B933对数据的处理顺序与规定的顺序不一致,但是,这并不影响最终的结果。

  2.2.2 控制电路

  CPLD使用lattice公司的ISPMACH4512V,它具有512个宏单元,最大工作频率为400MHz,而且功耗极低。在这里CPLD主要有以下几个功能。

  1)通过CY7B933的输出信号RDY和SC/D控制数据写入FIFO,当输出是数据时,将数据写入FIFO,如果是特殊字符,停止写入FIFO。这样,通过写FIFO删除特殊字符。SPI接口的TS流采用低压差分信号(LVDS)电平传输,需要将LVDS电平转换为TTL电平,这里采用DS90C032,可将4路差分信号转换为TTL电平信号。DS90C031将调整后的T5流由TTL电平转化为LVDS电平。SPI接口输出的T5流是连续的,通过CPLD可以将数据直接写入FIFO。

  2)控制AD9850的输出时钟,采用串行设置方式对输出时钟进行设置,以便少用。

  3)控制FIFO的读出及空包的插入,流程如图2所示,主要由两个状态机完成。状态机l控制凑FIFO,状态机2对读出的数据进行处理,建立同步。状态机l首先监测FIFO的半满信号,如果未到半满,则由CPLD发出包含188字节的空包,如果已到半满,允许读FIFO,同时。在计数过程中,如果状态机2的同步信号为高电平,计数器从1开始计数,读完188个字节后,返回再监测FIFO的半满标志。流程图(b)实现对FIFO读出的数据进行同步,并输出标准的SPI接口信号,首先监测头标志0x47,每隔188个字节再判断一次,如果不是,则重新搜索,如果是,则隔188个字节再判断一次,这样,连续判断三次表示已找到同步头,在以后的传输中每188个字节判断一次,如果失步,则重新搜索。这样,在每次读FIFO的时候从包头开始正好读出188个字节。

  2.2.3 缓存部分

  FIFO的选择主要考虑FIFO太小,可能将其读空或写满,如果太大则成本太高,传输延迟大,不利于实时传送。选用IDT7204,它是异步FIFO,存储容量为4K×9位,完全满足要求。输入ASI接口的数据经过CY7B933处理后,输入CPLD,由CPLD控制数据写入,删除特殊字符,SPI接口的数据流也输入CPLD,通过它写入FIFO。在读FIFO时,CPLD根据AD9850输出的时钟按图3所示的的流程控制读FIFO。

  2.2.4 直接数字频率合成器

  AD公司的AD9850型直接数字频率合成器(DDS),特点是给定参考频率后能够根据频率和相位设定值生成所需的任何频率,前提是所需频率要小于参考频率的三分之一。数控振荡器输出的波形由内部DAC转换,高频成份较多,不能直接输入到高速比较器,要增加一个考尔低通滤波器,滤除无用的高频成份,得到高质量和高精度的方波波形。本设计通过CPLD对AD9850进行设置,只通过改变CPLD的输出,就可以得到精确而稳定的不同输出频率。



  3 结论

  本文介绍的系统采用CY7B933、CPLD、FIFO及AD9850实现了MPEG2的TS流码率调整,消除了信号传输过程中出现的抖动,解决了由于信号源与接收设备码率不匹配的问题。采用LATTICE公司的CPLD作为逻辑控制,不仅完成了对系统的控制,而且在系统出错时还可以进行处理。数字频率合成器(AD9850)的采用为系统提供了很高的时钟精度,提高了系统的使用灵活性,可以广泛应用在各种视频设备中。

  
摘自《电子技术应用》