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

STM32H7 JPEG硬件编码疑问(非解码)

[复制链接]
TFX5200 提问时间:2025-10-22 09:57 / 未解决
我需要使用STM32H7的JPEG硬件编码器功能,网上都是解码的,几乎没有编码例程可以参考。
唯一能参考的就是ST官方的JPEG_EncodingFromFLASH_DMA中的代码。

因为需要先把RGB565转换为MCU块,然后再把MCU块输入到硬件编码器,我看了下官方的RGB565转MCU块的代码,它的RGB565源数组是这种格式的:

uint32_t  Image_RGB565[320 * 240 * 2];

这表明它有320 * 240 * 2 =153600个uint32_t类型的元素,这里我就有点奇怪,不是RGB565吗?这里怎么搞成了153600个uint32_t类型的元素?哪里体现了RGB565?

但是奇怪的是,它的数组里面实际的元素个数又是38400个,并不是153600个!我不理解的是,既然实际元素只有38400个,为什么不直接定义成uint32_t  Image_RGB565[320 * 240 /2]? 而要定义成uint32_t  Image_RGB565[320 * 240 * 2]? 用意是什么?



而我这边需要编码的RGB565格式的图片是这种格式的:
uint16_t  Image_RGB565[320 * 240];

貌似我这种才是标准的RGB565吧?难道我这种需要转为上面他的那种吗?我不明白官方为什么要那样写?

如下官方代码种,RGB_IMAGE_WIDTH * RGB_IMAGE_HEIGHT * 2 =153600, 意味着这个数组有153600个uint32_t类型的元素
1.jpg


但实际上,如下的数组里的值只有38400个,并不是153600个!我不理解,为什么不直接定义成uint32_t  Image_RGB565[38400]?而非要定义成uint32_t  Image_RGB565[153600]?用意是什么?
2.jpg
3.jpg
我这边需要转换的RGB数组是 uint16_t Image_RGB565[320*240]这种格式的,需要转换成上面的格式吗?




收藏 评论0 发布时间:2025-10-22 09:57

举报

0个回答

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版