STM32F7(STM32官网)内置JPEG硬件解码,可以极大增强STM32的图像处理能力,毕竟软解需要消耗的CPU时间会更多。 JPEG 百度百科定义(节选) JPEG是常见的一种图像格式,它由联合照片专家组(Joint Photographic Experts Group)开发并命名为"ISO 10918-1",JPEG仅仅是一种俗称而已。 由于JPEG优异的品质和杰出的表现,它的应用也非常广泛,特别是在网络和光盘读物上,肯定都能找到它的影子。目前各类浏览器均支持JPEG这种图像格式,因为JPEG格式的文件尺寸较小,下载速度快,使得Web页有可能以较短的下载时间提供大量美观的图像,JPEG同时也就顺理成章地成为网络上最受欢迎的图像格式。 JPEG图像的编、解码算法已非常成熟,STM32 HAL库里已内置了该算法的支持,方便用户直接调用。 JPEG测试需要使用到的功能比较多,主要包括:MICRO uSD支持、LCD显示支持、FatFS支持、SDRAM读写支持及JPEG库等。其中任何一个主题都需要花费大量的时间和精力去研究,为了更专注于JPEG解码性能本身,本次测试直接使用HAL库中的BSP例程进行改写。 测试方法介绍,在uSD卡中存储需要测试解码的图像,代码运行时从SD卡中读取图像文件,然后使用JPEG算法进行解码,最后将解码后的图像显示在LCD上,并在LCD上输出相关的信息。 由于SD卡中图像读取需要一定的时间,该时间与SD卡的存储性能相关,所以本贴测试结果仅供参考,毕竟不同的存储卡性能会有所差异。本次测试用到的SD卡如下,CLASS4级别,名为SANDISK,实际可能是山上来的产品。 测试中使用的关键代码如下,可以参考BSP中的JPEG解码例程
解码时间精确到MS级别,一般来讲该精度应该足够。 测试使用图片涵盖不同分辨率图片,以进行对比。不过分辨率只是其中一个要素,毕竟JPEG图像压缩时还可以指定不同的质量标准,这里特别指出来。 下面为实际测试时输出结果,看图说话。 LCD显示输出解码后的图像。同时还在LCD上输出图像名,图像大小及解码时间。 注意到其中有两幅相同图片的解码,其中一次使用的时间为104MS,而另一次使用的时间为101MS,有些微的差别。另外工具链使用的是MDK,优化级别为-O3。 最后附上本次测试用的图片压缩包,欢迎对比,大家一起讨论。另外代码直接基于BSP包,做了很小的修改,就不上代码了。 |
分享个NUCLEO-STM32F767 ZI 的PCB和原理图
【Nucleo STM32F767ZI】 STM32CubeMX + USB读取U盘文件例程
【F769IDISCOVERY评测】 STM32F769I-DISCO开发包评测系列(更至五)
【Nucleo STM32F767ZI】 STM32CubeMX + SDIO读取TF卡例程
【F769IDISCOVERY评测】STM32F769I-DISCO开发包简介(二)_板载部件...
【F769IDISCOVERY评测】STM32F769评测系列:开箱
STM32F769I-DISCO评测之(六)使用STM32CubeMX快速开发应用 ...
【F769IDISCOVERY评测】STM32F769I-DISCO开发包简介(五)_板载部件...
STM32F769I-DISCO评测之(七)实时操作系统FreeRTOS体验
【Nucleo STM32F767ZI】 STM32CubeMX + USB_DEVICE 大容量U盘教程
可以读取到 jpg 图片的大小
我使用的是中断模式,现在问题貌似就是出现在 使用dma2d的显示函数配置里面,
使用16bit的565模式,现在也不知道是哪里没有配置对啊 ??
仍然用到JPEG库,不过硬件对代码有支持
mulu
一起学习
点评
点评
点评
点评
点评
点评