注册登录

基于STM32F4DISCOVERY扩展板的图像解码设计(附源代码、原理图等)

本次分享的设计以ST意法半导体公司生产的STM32系列产品STM32F407VGT6为控制核心,主要由扩展板和JPEG图片解码系统两大部分组成。

扩展板部分除了保留原有核心板STM32F4DISCOVERY的重力感应、三轴加速度传感器、3.5mm音频输出口、miniUSB(A-B两种接口)、100PIN GPIO、LED、用户按键以外,还扩展了TFT液晶,带有数字隔离的RS232、RS485及CAN总线接口、SD卡接口、以及带有光耦隔离的MOS管驱动及电机驱动模块。JPEG图片解码系统部分设计采用了从SD卡中读取编码的同时同步解码的方法,有效减少了系统内存的消耗,实现了一个能在内存有限的片上系统中进行JPEG图片解码的系统。


系统方案?

系统扩展板部分在原有STM32F4DISCOVERY开发套件的基础上增加了一些常用的外部设备接口,如:带有数字隔离的RS232电路、RS485电路及CAN总线接口电路,带有光耦隔离的MOS管驱动及电机驱动模块。用户通过该扩展板就可以与外部其他设备进行串行通信、CAN通信,同时还可以直接用该扩展板来驱动MOS管和电机,大大降低了用户的使用难度。

而JPEG图片解码系统则是以STM32F407VGT6为控制核心,以TFT液晶模块作为显示器,完成对解码后图片的显示,需要显示的图片存储在SD卡中,处理器通过SPI方式读取SD卡里面的图片信息,由于STM32F4内部RAM很小不能作为整幅图片的缓冲区,所以本系统的设计过程中采用了时间换空间的方式,即采用了边解码边显示的方法省去了外部数据RAM。JPEG图片解码过程是使用了DCT变换算法。


硬件设计?

整个系统的硬件设计主要由两部分组成:基于STM32F4DISCOVERY的扩展板和JPEG图片解码系统。其中扩展板部分主要包括:带有数字隔离的RS232电路、RS485电路及CAN总线接口电路和带有光耦隔离的MOS管驱动及电机驱动模块。而JPEG图片解码系统的硬件部分则主要有TFT液晶电路和SD卡接口电路组成。

图片1


软件设计?

1.JPEG图片解码过程

  • 读入JPEG/JFIF文件的相关信息;
  • 读取Huffman表和构建Huffman树;
  • DC系数的Huffman解码和AC系数的Huffman解码;
  • 反量化和反Zig-zag扫描;
  • DCT逆变换和颜色模式转换。

2.使用的解码算法如下:

  • 从文件头读出文件的相关信息。JPEG文件数据分为文件头和图像数据两大部分,其中文件头记录了图像的版本、长宽、采样因子、量化表、哈夫曼表等重要信息。所以解码前必须将文件头信息读出,以备图像数据解码过程之用。 
  • 从图像数据流读取一个最小编码单元(MCU),并提取出里边的各个颜色分量单元。关于如何从数据流中把一个个连续存储的MCU分割开来,以及如何从各个MCU中将多个颜色分量分割开来。 
  • 将颜色分量单元从数据流恢复成矩阵数据。利用文件头给出的哈夫曼表,对分割出来的颜色分量单元进行解码,把其恢复成8×8的数据矩阵。
  • 8×8的数据矩阵进一步解码。此部分解码工作以8×8的数据矩阵为单位,其中包括相邻矩阵的直流系数差分解码、利用文件头给出的量化表反量化数据、反Zig-Zag编码、隔行正负纠正、反向离散余弦变换等5个步骤,最终输出仍然是一个8×8的数据矩阵。
  • 颜色系统YCrCb向RGB转换。将一个MCU的各个颜色分量单元解码结果整合起来,将图像颜色系统从YCrCb向RGB转换。排列整合各个MCU的解码数据。不断读取数据流中的MCU并对其解码,直至读完所有MCU为止,将各MCU解码后的数据正确排列成完整的图像。

图片2


实物展示?

拓展板实物图:

     图片3       


初始化图展示:

图片4


实物图片展示:

图片5


视频讲解:

说明:视频中的硬件平台采用了STM32F4DISCOVERY作为开发平台,采用自制扩展板的方式对外设资源进行扩展。板子资源丰富,除STM32F4DISCOVERY外,额外扩展了FSMC TFT接口,SPI总线 SD卡接口、I2C总线 EEPROM,一个蜂鸣器、隔离RS232/RS485/CAN接口,采用磁耦数字隔离芯片,DC/DC隔离电源产品,具有实际应用价值。在SD卡中存储有宋体16*16点阵汉字库,当硬件平台上电时,系统会加载SD卡字库,FATFS文件系统,当系统检测正确后,在TFT上出现“SD卡加载文件系统成功”的汉字提示,系统对各个函数模块初始化完毕后,就进入了JPEG图片解码过程。JPEG解码函数依次读取存储在SD卡 JPG文件夹下面的37个jpg文件并逐一进行解码并在TFT上显示,为了展示F4高速性能,解码过程没有增加延时。JPEG解码完成后,系统进入JULIA集分形动画演示过程。这个是为了展示在FPU模块及数学库函数使用时STM32F4的运算性能而设计,作为整个项目的补充。


关于资料?

基于STM32F4DISCOVERY的扩展板及JPEG图片解码系统设计资料可在附件中下载,包括源代码、原理图、PCB、设计说明等。

0条回复

作者
用户头像
文章 0关注 0粉丝 0
发私信
相关文章
联系客服