• 欢迎来到 - 我就爱电子网 - http://www.592dz.com !
您的位置:> 我就爱电子网维修技术维修教程知识电子制作基于TMS320VC550的JPEG视频压缩系统的实现 -- 正文
正文

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

[02-14 07:36:07]   来源:http://www.592dz.com  电子制作   阅读:9941

 

概要:,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级流水线结构,频繁的转移指令使得流水线难以发挥作用

基于TMS320VC550的JPEG视频压缩系统的实现,http://www.592dz.com

  5.1 数据内存优化

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

  5.2 C代码优化

  在JPEG的编码中,根据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 结束语

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

www.592dz.com

 3.1 视频采集电路

  该系统选用的视频解码器为Philip公司的高性能视频A/D转换器SAA7111。该器件是一款广泛应用于桌面视频、多媒体、数字电视、图像处理、视频电话的高性能视频输入处理器件。该器件采用3.3 V的CMOS电路,高度集成模拟前端和数字视频编码器;包括2路模拟视频处理通道,1个时钟产生电路,1个自动箝位和自动增益控制电路,1个多制式数字解码器,1个亮度/对比度/饱和度控制电路,以及色彩空间矩阵。SAA7111输出为16位VPO总线,支持不同位宽的数据输出格式。SAA7111支持的输出格式包括:12位YUV411,16位YUV4:2:2,8位CCIR-656、16位565RGB以及24位的888RGB。图3为视频采集电路。

视频采集电路

  3.2 存储器选型

  选择存储器应从以下方面考虑:首先图像压缩算法中间数据量大,要求处理器的片上内存尽可能大,尽量避免对外部存储器读写操作。VC5509A的片上存储器包括32 Kx16位DARAM,96 Kx16位SARAM,共128 K位的存储空间。其中DARAM为双地址,在每个周期内可以对其进行两次操作(2次读,两次写,一次读和一次写),这样大大增加片上存储器的利用率;其次,VC5509A片上资源丰富,包括I2C总线(多主从接口),3个McBSPs(1个与多媒体卡/数字加密卡MMC/SD串行接口复用引脚)。利用 FC总线对SAA7111的片内控制寄存器进行读写操作,非常方便实时控制SAA711 1的工作状态;利用McBSP配合DMA,软件编程实现UART功能,无需专门的硬件UART,从而节省电路板空间:VC5509A采用144引脚 LQFP封装,便于安装、调试;VC5509A功耗小,工作在200 MHz主频下,功耗仅100 mW,非常适合嵌入式应用。

上一页  [1] [2] 


标签:电子制作电子小制作,电子制作网维修教程知识 - 电子制作
《基于TMS320VC550的JPEG视频压缩系统的实现》相关文章