新闻中心

EEPW首页 > 消费电子 > 设计应用 > 基于TMS320VC550的JPEG视频压缩系统的实现

基于TMS320VC550的JPEG视频压缩系统的实现

作者:时间:2010-02-26来源:网络收藏

5 优化

  算法在DSP上需要解决编码速度问题。片上内存资源的有限性使得大部分的程序代码和数据不得不放在片外,大量的图像数据在慢速的SDRAM存储器中,对其访问和算术运算是影响性能的关键因素之一。因此,应从内存分配和代码优化两个方面来优化程序,提高编码效率。

  5.1 数据内存优化

  由于VC5509A的片上存储器包括32 Kx16位DARAM,96 Kx16位SARAM,共128 K位的存储空间。其中DARAM为双访问内存,即在一个周期内可完成两次数据访问,SARAM为单访问内存,即在一个周期内只能完成一次数据访问,片外内存为扩展的SDRAM,访问其需要额外的等待时间,执行效率比较低。因此在算法设计中应合理安排内存分配,尽量将访问频繁的程序代码和数据放在片内内存中,特别是DARAM中,可以提高编码效率。

  5.2 C代码优化

  在的编码中,根据VC5509A结构特点及结合图像数据量大的特点,提高编码效率,考虑程序编写和优化如下:

  (1)利用编译器优化,开启编译器的优化选项,包括基本优化、文件级优化和程序级优化。

  (2)使用本征(intrinsics)函数,C55x提供了一种特殊函数一本征函数,可迅速优化C代码。本征甬数前有个下划线“一”,调用方法和普通函数相同。

  (3)使用图像库,TI提供C55x的图像库IMGLIB,库中都是图像处理常用的函数,而且可以用C语言调用,汇编优化好,执行效率高,因此尽量用库函数。在JPEG编码中比较关键的是DCT变换可调用库函数中的IMG_sw_fdct_8x8(short*fdct_data,short, *inter_buffer),该函数完成一次DCT变换需用1 078个时钟周期。大大提高JPEG的编码效率。

  (4)高效使用MAC硬件,C55x有专门的硬件高效执行MAC运算。一个周期中可以执行一个单乘加或一个双乘加(dual-MAC)运算。

  (5)使用特殊数据类型(register类型、volatile类型、const类型),对于需要多次重复访问的变量,如for循环中的变量值,一般可设置为register型变量。声明变量为register型能提高效率,但必须小心使用。在某些编译器中,优化器会自动分配一些变量为register 型。

  (6)减少判断循环,在使用判断方式选取控制语句时应尽量减少判断转移。DSP多采用流水线结构。由于TMS320C55X采用7级流水线结构,频繁的转移指令使得流水线难以发挥作用。

  另外。DSP的大多数指令为单周期指令,但转移类指令却通常要耗费较多的机器周期。因此,应尽可能减少程序中的转移分支,以提高程序的效率。

  6 实验结果

  6.1 效果实验结果

  通过改变量化因子Q,改变图像的比。比越大,压缩过程中的视觉损失越大,压缩后的图片越不清晰。图6为采用不同的量化因子Q的压缩前后效果比较图。其中,图6a为未压缩,大小57.4 KB的原始BMP图像,图6b为压缩后大小为5.18 KB的图像,图6c为压缩后大小5.18 KB的图像。由图知,压缩后的图像与原始图像在视觉效果上相差不大。当Q=50时,压缩后图像所需存储空间仅为原图像的1/14。

采用不同的量化因子Q的压缩前后效果比较图


  6.2 压缩耗时实验结果

  对于一个8x8数据块,各步耗时如下:分块:1.335μs;DCT变换:5. 39μs;量化:1.355μs;哈夫曼编码:3.375μs。说明一个8x8数据块总耗时为11.455μs,一帧720x576灰度图像的压缩总耗时为90x72x11.455=74 228.4μs,再加上其他辅助操作,实际耗时约75 ms。根据上述结果,在1 s内向上位机发送13帧720x576的灰度图像,基本满足要求。

  7 结束语

  介绍9A DSP的JPEG压缩的设计和方案,该系统硬件设计采用DSP+FPGA的方案,充分发挥了各自优势;而软件设计针对C55x的结构进行程序结构和算法优化,经过验证达到较好的实时效果。由于该系统体积小、功耗低,适用于一些野外图像采集、远程监控等需要连续传输图像的场合。


上一页 1 2 3 4 下一页

评论


相关推荐

技术专区

关闭