TMS320C6201在MPEG-4视频解码器中的应用
摘要:TMS320C6201是美国TI公司生产的一种高性能数字信号处理器。本文介绍如何利用1片TMS320C6201数字信号处理器实现MPEG-4 SVP视频解码,并讨论解码器的结构,算法、存储器分配以及程序的优化等问题,最后给出该解码器总体特性表。
关键词:TMS320C6201 视频压缩 MPEG-4 VOP MB IDCT 运动补偿
引言
随着网络和多媒体技术的发展,视觉通信的重要性和需求急剧增加,如桌面视频会议、移动终端、基于因特网的视音频通信等。随之而来的是视频压缩技术的迅速发展和视频压缩标准的不断推出。国际运动图像编码专家组(MPEG)先后推出了MPEG-1、MPEG-2和MPEG-4.MPEG-4是由国际运动图像专家组于1998年11月制定的。它是一个面向多媒体应用的压缩标准,其应用覆盖范围远大于MPEG-1和MPEG-2等标准。从移动可视电话到专业视频编辑,既支持自然图像,也支持计算机合成图像。最重要的是它支持交互功能。这是由于MPEG-4采用了与其它标准不同的、基于对象的图像描述方式。目前,国内有关MPEG-4应用技术的研究及开发的工作正在悄然兴起。笔者在研究了MPEG-4视频标准之后,充分利用TMS320C6201的硬件资源和软件优化,实时实现了嵌入式MPEG-4视频解码器。
javascript:window.open(this.src);" style="cursor:pointer;"/>
1 MPEG-4视频码流及主要算法
MPEG-4采用了基于对象的压缩编码技术。在编码前,首先要对视频序列进行分析,从原理图像中分割出各个视频对象,然后南分别对每个视频对象单独编码。每个对象都有自己的形状信息(shape)、运动信息(motion)、纹理信息(texture)。对视频对象的编码就是对这3种信息进行编码。MPEG-4通过运动预测和运行补偿来去除连续帧之间的时间冗余。运动预测与运动补偿的精度可以为整像素、半像素或1/4像素,另外还增了重叠运动补偿方式。与形状相关算法有:基于邻近信息的算术编码、水平和垂直填补、扩张填补等。与纹理编码相关的算法有:离散余弦变换(DCT)、量化、DCT系数的DC/AC差分预测、Zig-Zag扫描、游程编码、霍夫曼变长编码等。
笔者实现的是MPEG-4的SVP(Simple Visual Profile)视频解码。视频序列全部为矩形,所以不存在任意形状编码。视频序列按照视频对象层VOL(Video Object Layer)、视频对象平台VOP(Video Object Plane)、宏块MB(Macro Block)视顺序编成一串码流。1个VOL中包含多个VOP,1个VOP中包含多个MB。MB是码流中的基本单位。MB又分为帧内MB(intraMB)、帧间MB(imterMB)。帧间4VMB(inter4VMB)等几种。在I-VOP中,所有的宏块都是intraMB。P-VOP中宏块有多种可能,可以是intraMB、interMB或inter4VMB。P-VOP中的interMB或inter4VMB的码流描述如下:
MB码流=MB形状+MB头信息+MV+DCT纹理信息(Y1+Y2+Y3+Y4+U+V)
由于是矩形帧,所以无形状编码MB shape部分。
MB头信息中主要包括4个参数:not_coded(本MB是否编码的标志位)、mcbpc(色度块U和V是否编码的标志位)、cbpy(亮度块Y1~Y4是否编码的标志位)、dquant(本MB中DCT系数量化步长的增量值)。javascript:window.open(this.src);" style="cursor:pointer;"/>
MV为运动矢量,实际写入码流的是运动矢量误差值(ΔMV),这是因为编码中MV采用差分编码。如果MB是一个interMB,则表示本MB只有1个运动矢量,所以在码流中只传1个ΔMV;如果MB是一个inter4VMB,则表示本MB有4个运行矢量,即每个子块(block)有1个运动矢量,所以在码流中需传送4个ΔMV,即mvd1、mvd2、mvd3和mvd4。
最后是一连串经过量化、Zig-Zag扫描、游程编码和霍夫曼变长编码的DCT系数,按照Y1、Y2、Y3、Y4、U和V的先后顺序编码。
2 TMS320C6201 DSP及EVM板介绍
2.1 TMS320C6201 DSP
TMS320C6201是美国TI公司的C6000系列新一代数字信号处理器中的第1个产品,于1997年3月发布。它是一个32bit的定点DSP芯片。该芯片具有8个相互独立的功能单元,可以工作在200MHz的CPU时钟频率,全速运行时可达到1600 MIPS。其主要特性包括:
*芯片内核采用VelociTI TM先进的超长指令字(VLIW)结构,具有高度的并行性和快速的运行能力,每个时钟周期最多可同时执行8条32位指令,并且所有的指令都可以有条件执行;
*具有丰富的指令系统且可对字节操作,支持16位的乘法运算;
*有4个彼此独立的快速的DMA通道,可以进行多种形式的数据传输。
*片内数据存储区和程序存储区各64KB,并支持多种数据宽度8位/16位/32位;32位的外部存储器接口,提供与片外SDRAM、SDSRAM和SRAM的直接接口。
TMS320C6201的以上特点,能满足视频图像处理的实时性要求。例如:TMS320C6201 DSP计算1块8×8 IDCT(逆变散余弦变换)仅用(168+62)个时钟周期,为1.15μs。
2.2 EVM板
TMS320C6201 EVM板是一块带有PCI接口的插卡,除了可以插在计算机主板的PCI插槽上使用外,还可以外配电源作为独立的模块工作,并通过XDS510仿真器进行调试。该板上配有1片TMS320C6201 DSP,最高工作在160MHz。
EVM板上提供的片外存储器包括1组64Kbit×32(256KB)、133MHz的SBSRAM,配置成CE0;2组4MB、100MHz的SDRAM,分别配置成CE2和CE3;另外还可以通过板上的外部存储器接口(EMIF)扩展存储空间,这些扩展存储器配置成CEI。
javascript:window.open(this.src);" style="cursor:pointer;"/>
3 用TMS320C6201实现MPEG-4 SVP解码
3