|
概述:本贴主要阐述使用jpglib库进行jpg和bmp之间的解码:RAM设置和Red和Blue颜色反转两个问题。 硬件平台: stm32f429bi 软件平台: keil v5版本搭配STM32 CUBE库 正文: 1、转码RAM控制(配置文件jconfig.h) stm32芯片具有LCD和DCMI等功能,可谓是十分丰富,但不具备图片硬件转码的功能,所以很多用户都使用jpglib转码,网上关于stm32使用jpglib库进行bmp和jpg之间的转换例子有很多(大多都是基于PC的应用程序,PC RAM很充足,所以移植程序大多都不考虑jpglib对内存的要求),不过在stm32f4平台上移植,要注意RAM的开销。 这款芯片内部RAM为256kb,不过在实际使用中,因为地址不连续,我们只能选择其中的64kb(CCMRAM)或者192kb作为程序RAM(Memory mapping详见:芯片Datasheet 84页)。 jpglib库在转码过程中,图片源文件的分辨率,直接影响解码过程中申请堆内存大小,那么申请超过实际RAM,就会导致进入硬件中断HardFault_Handler()中。 实践中发现jpglib库对内存申请的大小,可在jconfig.h文件中有上限设置,宏定义(MAX_ALLOC_CHUNK)。 2、转码RGB控制(配置文件jmorecfg.h) 在使用jpglib bmp转jpg时有可能出现jpg的颜色反转,很多朋友自己编写算法改变bmp源文件的RGB顺序,但库已经提供了相关配置。 #define RGB_RED 0 /* Offset of Red in an RGB scanline element */ #define RGB_GREEN 1 /* Offset of Green */ #define RGB_BLUE 2 /* Offset of Blue */ 如果颜色出现R和B的反转,可以如下设置,不必重新编写反转方法。 #define RGB_RED 2 /* Offset of Red in an RGB scanline element */ #define RGB_GREEN 1 /* Offset of Green */ #define RGB_BLUE 0 /* Offset of Blue */ 大家需要根据程序实际情况修改。 谢谢! |
STM32
超强工具——STM32CubeMX 你会用吗?
集结出发! STM32全国研讨会系列之一:ST智能门铃中国首秀
关于STM32启动文件的几个小问题
【银杏科技ARM+FPGA双核心应用】STM32H7系列35——USB_VCP_FS
【银杏科技ARM+FPGA双核心应用】STM32H7系列28——USB_HID
粉丝分享 | 图说CRC原理应用及STM32硬件CRC外设
STM32L151进入低功耗,并由RTC唤醒的故事
[转]stm32控制NFC模块(PN532)源码(P2P,模拟卡,读写卡等
STM32G070RB+LVGL移植
微信公众号
手机版
也是项目中曾经遇到的问题,分享一下,谢谢!