基于TMS320DM642的MPEG4编码器的设计与实现

发布者:创新之梦最新更新时间:2007-08-16 来源: 现代电子技术关键字:视频  压缩  量化  算法 手机看文章 扫描二维码
随时随地手机看文章

1 引 言

近年来,随着网络和多媒体技术的发展,视频信息通信的重要性和需求急剧增长,而其中的关键就在于视频压缩编码技术的应用。文献[1]曾提出了一种基于TMS320DM642 DSP的视频编码方案,实现了H.264算法。同H.264相比,MPEG4具有软硬件开发成本低和更容易实现的优势,是目前视频编码应用的主流。本文提出了一种基于TMS320DM642 DSP的MPEG4视频编码器的实现方法,该方案可用于远程视频监控、视频会议等诸多领域。

MPEG4是由国际运动图像专家组(MPEG)开发制定的国际通用视频压缩编码标准,目前已经发展成为可适应不同传输带宽、可用最少的数据来获得最佳质量图像的高效压缩算法和工具。MPEG采用了DCT、量化、熵编码等算法,通过对形状、运动、纹理等信息的分析,消除图像数据在时间和空间上的相关性,具有高效压缩性及普遍适用性等独特优势,为视频信息高效存储、传输提供了方便。

MPEG4为不同的应用对应的码率、分辨率、质量和服务定义了编码器和码流的不同框架和级别,其中的简单框架提供了对矩形视频对象的编码功能。本文所实现的就是MPEG4视频编码算法的简单框架。

2 MPEG4编码器硬件平台

实现MPEG4编码器的硬件平台以TMS320DM642DSP为核心,并配合以适当的外部存储器SDRAM,FLASH等外围设备。

2.1 TMS320DM642特性

TMS320DM642是TI为多媒体应用而开发的基于C64x内核的高性能定点数字信号处理器,时钟频率600 MHz,最高处理能力可达4 800 MIPS。DM642具有C6000系列DSP的公共定点指令集,增加了多媒体扩展指令,可以更加方便快速地执行图像处理中的算法。DM642的这些特点,使其非常适合于视频图像处理,是实现MPEG4视频编码器的理想硬件平台。

2.2 硬件系统结构

编码器的硬件平台如图1所示,图中DM642作为整个系统的核心,对视频数据进行高速处理,完成MPEG4编码算法;可编程视频格式转换电路将输入的原始视频数据进行预处理,转换成编码器可接受的视频格式的数字信号;E2PROM和FLASH用来固化应用程序和初始化参数,SDRAM作为片外存储器,在编码过程中存储待处理的视频数据,以上三者通过EMIF总线与DM642连接;通过JTAG接口,利用CCS,可方便地实现系统软硬件仿真与调试;实时时钟为数字视频提供实时时间基准信息。


3 MPEG4编码器的软件实现和优化

3.1 MPEG4的软件实现

MPEG4是一个开放的框架标准,并没有规定具体的算法和程序,用户可根据需要自行开发代码,我们采用了XVID 1.1.0开放源码来实现MPEG4编码器。XVID代码实现了MPEG4的简单框架算法,不需要形状编码,只对I-VOP和P-VOP进行编码。但XVID是针对PC机应用而设计开发的,要将他移植到DSP中,必须对代码进行分析,结合DSP的指令结构和特点进行修改。

XVID代码实现的MPEG4编码器,以原始视频数据中的每一帧作为一个视频对象,首先判断是I帧还是P帧,I帧需要对整帧图像数据进行编码存储,P帧则进行运动估计和补偿,只编码当前帧与参考帧之间的图像残差和运动矢量。每帧数据都被分为16×16宏块,每个宏块又分为8×8子块,在宏块和子块的基础上进行DCT、量化、VLC编码。基于不高的图像质量需求,我们减化了XVID的某些功能,如GMC(全局运动补偿)、RVLC等,减少了代码运算量,降低了复杂度。

3.2 代码优化

为提高代码执行效率,必须结合DSP的特点对代码进行优化,优化主要分为3个层次:

3.2.1 项目级优化

TI提供了功能强大的集成开发环境CCS,包含了各种高效的编译工具,在代码编译过程中,通过使用编译器提供的编译选项(如-o3和-pm等),编译器可自动改善代码结构,减少代码中指令的相关性,通过软件流水等方法,提高指令并行性,改善循环性能,并可以优化代码的尺寸。

3.2.2 C语言程序级优化

通过使用CCS中的profile工具,对C代码进行评估,找出运算量最大的程序段,如DCT、量化、运动估计等,这部分代码的优化对提高编码器性能有显著影响,我们采用了以下C程序级优化方法:

(1) 使用C6000 DSP特有的关键字和内联函数来改写C代码,如使用关键字restrict可消除数据间的相关性以提高代码并行执行能力,而使用内联函数(如_add2(),nassert())可快速优化C代码,作为直接映射为内联C6000指令的特殊函数,可提高代码在DSP中的执行效率。

(2) 使用整型访问短型数据,使用32位整型一次访问2个16位短型数据,分别存放在32位寄存器的高、低16位字段,可减少对内存的访问次数,将程序读取数据的效率提高一倍,再使用能同时对2个寄存器对应高低16位进行操作的内联函数,如add2();mpy2()等,可大大提高代码执行效率。

(3) 采用循环展开的方法,将多循环变为少循环甚至单循环,减少循环嵌套,消除冗余循环,可以提高指令并行执行的程度。

(4) DSP没有专门的硬件除法运算单元,除法都用连续减法实现,运算量比较大,所以要尽量减少除法运算,不能减少的除法用移位运算来实现,可减少运算耗时。

(5)使用TI图像库函数。TI提供了功能强大的IM-AGE库支持,包括了很多图像处理常用函数,如8×8子块的DCT变换(IMG_fdct_8×8)、SAD计算(IMG_sad_8×8),这些函数都是优化过的,代码效率很高,可直接应用到程序中。

3.2.3 汇编程序级优化

线性汇编语言是C6000系列DSP所特有的一种编程语言,类似汇编,但不需要给出指令使用的功能单元、寄存器、并行性等细节信息,汇编优化器可根据代码情况自动确定。我们将代码中运算量大、调用频率高的关键部分用线性汇编进行了改写,如量化、DCT、SAD等模块,进一步优化了循环迭代、提高了指令的并行性效果。表2给出了改写前后几个函数模块程序对3帧foreman.qcif测试序列编码时消耗的时钟周期数对比。

3.3 存储空间的配置

DSP的片上存储空间有限,编码器要处理的大量视频数据(包括当前帧和参考帧等图像)必须放在片外,而CPU访问片外的速度要比访问片内慢很多。利用DM642的EDMA功能,CPU对前一帧数据编码的同时,通过ED-MA通道提前将片外的数据搬移到片上内存,二者并行工作,提高了数据由片外传输至片内的效率,可减少CPU等待时间。

3.4 实验结果

使用编码器对标准qcif格式(176×144)测试序列进行编码来测试编码器性能,其中news序列300帧,suzie序列150帧,foreman序列400帧,通过TI的集成开发环境CCS 2.0进行硬件仿真实验,在设定码率为100 b/s的条件下,结果如表3所示。

通过分析测试序列编码结果,编码器的编码速率达到25 fps以上,可以满足实时编码的要求。在传输码率降低的情况下,编码速率还可以进一步提高。从编码结果可以发现,不同测试序列编码前后的压缩比不同,这是由于测试序列图像的运动情况、背景变换造成的,如suzie序列背景单一,运动缓和,压缩比较高,而news序列由于背景不断变换,压缩比就相对较低。通过对比编码前和编码后解码得到的图像,画面无失真现象,图像质量并没有明显下降。

4 结 语

本文探讨了MPEG4编码器在DM642上的实现方案和优化的方法,实现了MPEG4编码的简单框架算法。实验结果表明,本文所提出的方案具有较高的易实现性和实用性,增加和改进的代码优化方法是有效的,性能测试获得了满意的效果。在此基础上,我们还可进一步对实现MPEG4高级框架和代码优化方法的改进,进行更深入地研究,以满足更高的应用要求。

关键字:视频  压缩  量化  算法 引用地址:基于TMS320DM642的MPEG4编码器的设计与实现

上一篇:基于TMS320DM642的MPEG4编码器的设计与实现
下一篇:基于FPGA的星地信道模拟系统的研究与设计

推荐阅读最新更新时间:2024-05-02 20:37

研究机构开发遗传算法 缩减激光雷达传感器成本和尺寸
据外媒报道,法国研究机构CEA-Leti开发了遗传算法,校准高通道数光学相控阵(OPA),以缩减激光雷达传感器的成本和尺寸。 (图片来源:CEA-Leti) OPA是一项新兴技术,由紧密排列的(间距约为1µm)光学天线阵列组成,并在宽角度范围内发射相干光。通过调整每根天线发出的光的相对相位,可改变生成的干涉图。例如,如果天线之间的相位梯度是线性的,则会形成定向波束。通过改变线性梯度的斜率,控制波束的方向,从而实现固态光束的转向。 研究人员Sylvain Guerber表示,“开发高性能OPA将为自动驾驶汽车、全息显示等许多其他应用的低成本激光雷达系统铺平道路。但激光雷达的广泛应用将取决于较低的系统成本和较小的外型尺寸
[汽车电子]
研究机构开发遗传<font color='red'>算法</font> 缩减激光雷达传感器成本和尺寸
一文读懂直流电机控制算法
通常我们在控制小车运动的时候不知道如何精确的对小车轨迹进行控制。在不懂得小车控制算法精髓的时候,我们是无法对小车进行精确的控制的。目前绝大多数小车都是用PID控制算法来实现对小车的运动控制的。现在很多玩家就只知道一种调节方法,就是比例调节,即向左偏就向右调节,向右偏就向左调节,最容易想到,也是最容易用软硬件实现的,但是结果也是最容易出问题的。当时的感觉就是小车太灵敏了,忽左忽右,不是很稳定。后来查了资料后知道了其他的调节方式。 控制算法: 电机控制算法的作用是接受指令速度值,通过运算向电机提供适当的驱动电压,尽快地和尽快平稳地使电机转速达到指令速度值,并维持这个速度值。换言之,一旦电机转速达到了指令速度值,即使在各种不利因素(
[嵌入式]
一文读懂直流电机控制<font color='red'>算法</font>
IP视频监控系统存储设备选型指导
近年来,模拟视频监控系统的市场份额在不断缩水,正如人们所期望的,IP视频监控逐渐深入人心。确实,IP视频监控解决了传统监控布线繁琐的问题,可是它也带来了新的问题。   模拟摄像机达到650线便已是最高水平,然而对于IP摄像机而言,目前的技术水平早已超过了百万像素的限制,两百万、五百万乃至上千万像素的摄像机都已不再是“物以稀为贵”了,前端采集的图像画面质量的提高也对后端监控存储设备提出了要求。   一般说来,目前的视频监控主要采取以下几种方式进行存储:   DVR存储   这是目前最为常见的一种存储模式,编解码器设备直接挂接硬盘,目前最多可带8盘硬盘。但由于编译码设备性能的限制,一般采用硬盘顺序写入的模式,没有应用RAID
[模拟电子]
第74节:在液晶屏中让字体跨区域无缝对接显示的算法程序
开场白: 细心的网友会发现,这种12864液晶屏在显示自造字库时普遍有个毛病,在坐标轴x方向上是以每16个点阵为一个单位的,如果显示两个8x16字符 V 和 5 ,虽然它们的x坐标轴是相邻的,但是实际显示的效果是中间隔了8个点阵。另外,这种12864液晶屏是由上半屏和下半屏组成的,软件上的坐标体系并没有做到跟物理的坐标体系一致,需要转换的。如果我们想把一个整体字符的一半显示在上半屏,另一半显示在下半屏,那怎么办? 这一节就要教给大家这个算法程序: 为了实现跨区域无缝显示,就先在某个区域显示一块画布,我们只要在这块画布数组中插入字模数组,就可以达到跨区域无缝显示的目的。 具体内容,请看源代码讲解。 (1)硬件平台: 基于朱兆
[单片机]
基于TMS320C2812的SVPWM算法的S-Function仿真实现
利用MATLAB仿真CCS算法的方法在很多文章中都有介绍,归纳起来主要有两类:一类是利用MATLAB/Simulink中的S-Function编写所需算法模块,仿真成功后将算法移植到CCS中建立新的算法工程;另一类是在MATLAB中建立仿真模型,然后通过CClink的直接代码生成法建立CCS工程文件。这两类方法都有各自的缺点。第一类方法只注重对算法思想的验证,要在CCS中实现却要经过很复杂的算法移植过程,增加了算法实现的难度。第二类方法避免了此类问题,而将MATLAB仿真模型直接生成CCS代码,省略了再移植的过程,然而这种方法形成的代码具有可读性差、缺乏优化、占用资源大等缺点,使得TMS320F2812芯片的内存利用率大大降
[嵌入式]
基于TMS320C2812的SVPWM<font color='red'>算法</font>的S-Function仿真实现
苹果推出Object Capture 新API 可把iPhone视频内容转换为3D模型
6月8日凌晨消息,苹果公司今日通过线上形式举办2021年全球开发者大会,本次发布会中,RealityKit 2 新增加了Object Capture API,通过该API,能够帮助开发者将在iPhone上拍摄的视频,在几分钟内创建真实世界对象的高质量、照片般逼真的 3D 模型,并将它们转换为针对 AR 优化的3D模型。   据介绍,目前苹果内已经拥有超过10亿支持AR的设备,借助RealityKit 2 中的Object Capture新API,开发人员还可以通过更好的视觉、音频和动画控制(包括自定义渲染通道和动态着色器)创建更逼真和更复杂的 AR 体验。   “长期以来,AR内容的匮乏与欠缺一直是制约整个AR产业发展的一个
[手机便携]
详解视频编解码MPEG-X系列的发展轨迹
MPEG-4应用解析     从1948年提出电视信号数字化编码以来,图像编码压缩技术的研究已有六十多年的历史。时至今日,已形成并由国际标准化组织ISO/IEC制定的MPEG-X和国际电联ITU-T 制定的H.26X两大系列视频编码国际标准,本文将详解视频编解码MPEG-X系列的发展轨迹。   MPEG的全称是“Motion Picture Expert Group”(运动图像专家组),隶属于国际标准化组织ISO/IEC的一个专家工作组,其建成于1988年,主要负责为数字音视频编码算法开发和制定标准。MPEG标准的视频压缩编码技术主要利用了具有运动补偿的帧间压缩编码技术以减小时间冗余度,利用DCT技术以减小图像的空间冗余度
[安防电子]
Final Cut Pro 10.6.2更新 让专业视频制作更轻松
4月13日下午消息,苹果公司官方出品的视频制作软件Final Cut Pro今天更新,功能更智能化,让专业视频后期变得更简单,   Final Cut Pro、及配套应用Motion和Compressor等一系列视频App今天都得到更新。其中用户基础最广的当属Final Cut Pro,本次的10.6.2版本提供了重复检测功能,通过高亮显示的片段区间或时间线索引快速定位在项目中出现多次的媒体素材。   这虽然是个小改进,但大大方便了视频后期工作者。   同时,配合macOS Monterey 12.3(或更高版本)系统的机器学习,可调整背景噪音水平,以此提升语音清晰度。   作为专业类App,Final Cut
[手机便携]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved