你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【说出你的故事】+ STM32F4(jpglib转码内存控制&RB反转控制)

[复制链接]
周玄尊 发布时间:2016-2-1 13:55
概述:本贴主要阐述使用jpglib库进行jpg和bmp之间的解码:RAM设置和Red和Blue颜色反转两个问题。* K9 {; o$ c. R& f) s7 Q3 [
, S: S! `2 [! \& T( G& m
硬件平台:3 a7 W* h3 R" v1 i) w8 n+ w' c! k
stm32f429bi
0 m  I5 Q5 K6 N3 g0 x- L
* {4 K: {# t, y- T- X' \软件平台:
4 E& B9 S( q5 @  t  ^# Vkeil v5版本搭配STM32 CUBE库
. K/ `) L" ^! X" G5 \$ F/ Y3 k+ O- t  p+ C% g5 C# }
正文:
    + e6 q- B/ w( s; i
    1、转码RAM控制(配置文件jconfig.h)+ |# N. X5 a0 E6 V! |9 Z* |
    stm32芯片具有LCD和DCMI等功能,可谓是十分丰富,但不具备图片硬件转码的功能,所以很多用户都使用jpglib转码,网上关于stm32使用jpglib库进行bmp和jpg之间的转换例子有很多(大多都是基于PC的应用程序,PC RAM很充足,所以移植程序大多都不考虑jpglib对内存的要求),不过在stm32f4平台上移植,要注意RAM的开销。: @% Y/ Z! ^0 t0 k
    这款芯片内部RAM为256kb,不过在实际使用中,因为地址不连续,我们只能选择其中的64kb(CCMRAM)或者192kb作为程序RAM(Memory mapping详见:芯片Datasheet 84页)。
, H+ N2 O& w  Y8 e; W    jpglib库在转码过程中,图片源文件的分辨率,直接影响解码过程中申请堆内存大小,那么申请超过实际RAM,就会导致进入硬件中断HardFault_Handler()中。8 @; D* `% u' z* ?, F
    实践中发现jpglib库对内存申请的大小,可在jconfig.h文件中有上限设置,宏定义(MAX_ALLOC_CHUNK)。% D) P/ A) U; ^9 _( B6 i, h5 P
    2、转码RGB控制(配置文件jmorecfg.h)$ d4 R* m4 z' F" ?0 l. k) D1 J
    在使用jpglib bmp转jpg时有可能出现jpg的颜色反转,很多朋友自己编写算法改变bmp源文件的RGB顺序,但库已经提供了相关配置。) D& n! ]5 ]; a- r
    #define RGB_RED        0        /* Offset of Red in an RGB scanline element */" `& |; Y. a% U8 y% ]3 ^1 T; ^  f  D
    #define RGB_GREEN        1        /* Offset of Green */
6 j: w2 Z" R' ]    #define RGB_BLUE        2        /* Offset of Blue */1 h, z  y" C6 |0 E
    如果颜色出现R和B的反转,可以如下设置,不必重新编写反转方法。9 h6 Q$ J( y: B
    #define RGB_RED        2        /* Offset of Red in an RGB scanline element */
# N% I8 y* ~+ S9 _* L" n4 Z    #define RGB_GREEN        1        /* Offset of Green */
& C  Y  w% ^! J, {6 S: d    #define RGB_BLUE        0        /* Offset of Blue */
. a" i& N: [3 l6 k* |
& i# H+ i% V9 |+ d9 Q

0 p6 y4 I5 @9 D) V5 a    大家需要根据程序实际情况修改。    谢谢!
7 B6 ?. V, ]; D' l: [6 C5 [, r

& z4 K) Y% Z. Z" f, H- N
9 _( ]% j9 m% b
# b; S, ?* H1 x. [/ O4 ~! ~/ v  E7 k* ?. B) ~0 Y# q0 Y! t
STM32F429-Datasheet.jpg
jconfig.jpg
赞 收藏 评论2 发布时间:2016-2-1 13:55

举报

2个回答
沐紫 回答时间:2016-2-1 13:58:05
不错哟,谢谢分享
周玄尊 回答时间:2016-2-1 14:00:41
沐紫 发表于 2016-2-1 13:58
, l; |- l5 N7 Y不错哟,谢谢分享

  E5 A' i8 G0 }5 e( C5 R也是项目中曾经遇到的问题,分享一下,谢谢!

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版