新闻中心

EEPW首页>嵌入式系统>设计应用> 基于RT-Thread和STM32的数码相框的设计方案

基于RT-Thread和STM32的数码相框的设计方案

作者: 时间:2013-12-28 来源:网络 收藏

  在程序运行过程中,IDCT运算量较大,有大量浮点乘法和加法运算,程序执行速度较慢,这对图片能否流畅的显示有很大影响。基于此本统软件对IDCT算法了优化,采用一种快速IDCT算法[5],把二维IDCT分解成行和列两个一维IDCT,再将IDCT算法通过数学变换转化为离散傅里叶逆变换(IDFT),利用矩阵变换简化计算。在开始进行二维IDCT转换时,先对输入的反量化后的数据进行8次一维的行变换,并将存储运行结果,再对运行的结果进行8次一维的列变换,经过两次变换,得到的就是二维IDCT运算变换的结果。程序流程图如图10所示。

  4.3.3 色彩模式转换

  由于液晶支持的是RGB格式的图像数据,需要把执行完解码过程得到的YCrCb格式的数据转换成RGB模式,将256级的YCrCb色彩模型转换成RGB色彩模型的计算公式如式(1)。

  因为R、G、B的取值范围为[0,255],需要对运算结果进行阈值保护,对超过255的数值,限定在255,小于0的数值,限定在0.经过运算最终可以得到RGB模式的图像数据,完成解码过程。

  4.4 图片浏览模式

  本系统的图片浏览模式有触摸手动浏览和定时自动浏览两种模式可供选择。在触摸手动浏览模式下,有“下一张”,“上一张”,“退出”控件。通过操作触摸屏上下翻页的控件,实现浏览图片的功能。在浏览完最后一张时,系统会自动跳转到第一张。在定时自动浏览模式下,界面仅有退出控件,每隔3秒,自动进行下一张图片的浏览,并循环显示。

  5.系统调试

  5.1 硬件调试

  通过硬件电路设计,检查元器件之间的电气连接,下载基本调试程序,检测系统板运行状况,在对USB枚举测试时,通过USB数据线连接至电脑,可以对flash存储设备进行读写操作。

  5.2 软件调试

  5.2.1 LIB库的编译

  本系统的软件开发环境是MDK,在程序基本模块的底层驱动编写完善以后,将的底层外设驱动库和μC/GUI库函数编译封装成LIB库,在后期程序开发时,大大提高了程序的编译效率,缩短了软件开发周期。

  5.2.2 Finsh Shell调试组件本系统采用嵌入式操作系统,通过其自带的用户命令行组件Finsh Shell查看系统运行状况。通过超级终端输入相应的命令来使用Finsh Shell.Finsh Shell在中被设计成一个独立的线程,通过串口设备输入相应的命令,系统对用户命令进行解析执行,可用来获取系统运行时信息,对任意寄存器和内存地址进行读写操作,还能够直接在shell中调用系统函数,访问系统变量。FinshShell组件的使用,在很大程度上提高了调试程序的效率。

  5.2.3 图片解码调试

  由于图片解码算法占用内存较大,考虑到图片解码算法在中可能会因为内存分配不足而无法正常运行,在验证图片解码函数的正确性时,先在PC机的VC模拟器上运行,用以给图片解码算法提供一个理想的运行平台。在模拟器中,用数组存储图片二进制源码,用解码算法对图片的数组数据进行解码,验证解码算法的正确性。在模拟器运行正确后,再将图片解码算法移植到本系统上运行,实践证明,的内存足以支持图片解码算法正常执行。实验在VC模拟器中运行的效果图如图11所示。

  6.结论

  本文介绍了基于和STM32的的设计方案,通过设计相关硬件电路和软件算法,实现了对JPEG格式图片文件的浏览功能。本系统设计的基于连续IDCT变换的JPEG解码算法能够正确稳定完成JPEG格式图像的解码,解码速度较快,恢复图像的质量良好。实际测试表明,本方案具有很强的实用性。

晶振相关文章:晶振原理

上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭