基于TMS320C64xDSPs的MPEG-4实时编码器设计与实现
扫描二维码
随时随地手机看文章
;;; 摘要:设计并实现了一种基于TMS320C64x系列高性能通用DSPs的MPEG-4 Simple Profile编码器。详细介绍了系统的硬件结构和工作流程。为解决高分辨率视频编码的实时性问题,采用预测技术的运动估计计算法以及基于C64x CPU的软件优化技术。实验结果表明编码器对D1分辨率(720×576)视频的编码速率达到25帧/秒以上,且具有较低的码率和较好的图像质量。 ;;;; 关键词:MPEG-4 TMS320C64x 软件优化 运动估计信息时代对于视频通讯的需求越来越广,从较低码率的可视电话、视频会议、实时监控到高码率的空中侦察、数字电视等,迫切要求将高效率、高质量的视频压缩算法实用化。MPEG-4于2000年正式成为国标标准并不断地扩展。它不仅支持码率低于64kbps的多媒体通信,还能支持广播级的视频应用。与以前的视频标准相比,MPEG-4可以提供更高的压缩效率、更好的交互性以及更强的抗误码能力。目前,MPEG-4已经成为视频压缩标准的主流。MPEG-4算法非常复杂,其编码码的实时性难以保证,通常只能实现对中低分辨率视频的实时编码。本文基于TI公司的C64x系列DSPs设计并实现了一种MPEG-4编码器,实现了对DI分辨率(720×576)视频的实时编码,且在保证输出码率低于1Mbps的同时,解码图像具有较高的峰值信噪比和较好的视觉效果。
1 编码系统的硬件结构编码系统以TMS320DM642高性能通用DSP芯片为核心。图1为系统框图。1.1 TMS320DM642芯片的特点DM642属于TI公司的C64x系列DSPs。Veloci TI结构使C6000 DSPs在视频和图像处理中得到广泛应用。CPU的VLIW结构由多个并行运行的执行单元组成,这些单元在单个周期内可执行多种指令。并行是C6000获得高性能的关键。C64x在C6000的基础上有一些重要的改进。除了有更高的时钟频率外,C64x从以前的Veloci TI结构扩展到Veloci TI.2结构,包含了许多新的指令,增加了额外的数据通道,寄存器的数量也增加了一倍。这些扩展使得CPU可以在一个时钟周期内处理更多的数据,从而获得更高的运算性能。DM642芯片集成了各种片内外设,使得开发视频和图像领域的应用更为方便。它带有三个可配置的视频端口,提供与视频输入、视频输出以及码流输入的无缝接口。这些视频端口支持许多格式的视频输入/输出,包括BT.656、HDTV Y/C、RGB以及MPEG-2码流的输入。利用DM642开发视频编码器,其视频输入部分只需要一块视频采集芯片即可,如Phillips的SAA7113,无需外加逻辑控制电路和FIFO缓存,使硬件系统更为简单和稳定。DM642的其它外设包括:10Mbps/100Mbps的以太网口(EMAC)、多通道音频串口(McASP)、外部存储器接口(EMAC)、主机接口(HPI)、多通道缓冲串口(McBSP以及PCI接口等。1.2 系统工作流程该编码系统可分为图像压缩卡和主机两部分。其工作流程如图2所示。首先主机通过PCI初始化DSP并对其加载程序;DSP开始运行MPEG-4编码程序,从视频端口获取实时采集的视频,如图1所示。SAA7113输出BT.656格式的数字视频,作为DM642 VPORT的输入,VPORT输出YUV(4:2:0)格式的图像,作为编码程序的输入;DSP完成一帧图像的编码,通过PCI向主机发出中断;主机响应中断,从DSP 存储空间读取原始图像数据和压缩后的码流。主机程序在VC++环境下编写,提供与用户交互的界面,可对数据进行各种处理,包括原始视频的实时播放、保存,压缩码流的实时解压播放、保存、回放、网络传输,从网络接收压缩码流实时解压回放等。
;;; 需要注意的是原始图像和压缩码流在DSP中的存储。视频端口、编码程序和主机都要访问原始图像,例如在某一时刻,编码程序访问当前帧图像,主机读取上一帧图像,而视频端口正在输入下一帧图像,为了避免访问冲突,原始图像在DSP中采用三缓冲区进行管理。压缩码流由编码程序写入。主机读取,所以采用乒乓制进行存储。1.3 内存分配DM642片内只有256KB的存储空间,因此当前帧、参考帧和当前帧的重建帧都必须放至片外存储器,压缩码流若被主机读取,也放至片外。其它数据如程序代码、全局变量、VLC码表、各编码模块产生的中间数据等均可放至片内。由于CPU访问片外的速度通常要比访问片内慢几十倍,片外数据的传输通常成为程序运行时的瓶颈,即使代码