电力电子技术
直播中

潘务单

7年用户 201经验值
私信 关注
[问答]

基于STM32F4DISCOVERY扩展板的图像解码设计

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

回帖(5)

李果

2021-1-8 11:32:53
  本次分享的设计以ST意法半导体公司生产的STM32系列产品STM32F407VGT6为控制核心,主要由扩展板和JPEG图片解码系统两大部分组成。
  扩展板部分除了保留原有核心板STM32F4DISCOVERY的重力感应、三轴加速度传感器、3.5mm音频输出口、miniUSB(A-B两种接口)、100PIN GPIO、LED、用户按键以外,还扩展了TFT液晶,带有数字隔离的RS232、RS485及CAN总线接口、SD卡接口、以及带有光耦隔离的MOS管驱动及电机驱动模块。JPEG图片解码系统部分设计采用了从SD卡中读取编码的同时同步解码的方法,有效减少了系统内存的消耗,实现了一个能在内存有限的片上系统中进行JPEG图片解码的系统。
举报

卢表镜

2021-1-8 11:33:04
  系统方案?
  系统扩展板部分在原有STM32F4DISCOVERY开发套件的基础上增加了一些常用的外部设备接口,如:带有数字隔离的RS232威廉希尔官方网站 、RS485威廉希尔官方网站 及CAN总线接口威廉希尔官方网站 ,带有光耦隔离的MOS管驱动及电机驱动模块。用户通过该扩展板就可以与外部其他设备进行串行通信、CAN通信,同时还可以直接用该扩展板来驱动MOS管和电机,大大降低了用户的使用难度。
  而JPEG图片解码系统则是以STM32F407VGT6为控制核心,以TFT液晶模块作为显示器,完成对解码后图片的显示,需要显示的图片存储在SD卡中,处理器通过SPI方式读取SD卡里面的图片信息,由于STM32F4内部RAM很小不能作为整幅图片的缓冲区,所以本系统的设计过程中采用了时间换空间的方式,即采用了边解码边显示的方法省去了外部数据RAM。JPEG图片解码过程是使用了DCT变换算法。
举报

张俊

2021-1-8 11:33:16
  硬件设计?
  整个系统的硬件设计主要由两部分组成:基于STM32F4DISCOVERY的扩展板和JPEG图片解码系统。其中扩展板部分主要包括:带有数字隔离的RS232威廉希尔官方网站 、RS485威廉希尔官方网站 及CAN总线接口威廉希尔官方网站 和带有光耦隔离的MOS管驱动及电机驱动模块。而JPEG图片解码系统的硬件部分则主要有TFT液晶威廉希尔官方网站 和SD卡接口威廉希尔官方网站 组成。
  
举报

周勇

2021-1-8 11:33:32
  软件设计?
  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解码后的数据正确排列成完整的图像。
  
举报

更多回帖

发帖
×
20
完善资料,
赚取积分