硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3260|回复: 14
收起左侧

[JPEG] 没有外扩SDRAM,能使用H7硬件JPEG解码吗?

  [复制链接]

25

主题

68

回帖

143

积分

初级会员

积分
143
QQ
发表于 2021-5-24 08:42:47 | 显示全部楼层 |阅读模式
各位好。

我看了很多STM32H7的硬件JPEG解码例程,都使用了SDRAM,一次就要申请很大的内存。我的H7板子没有外扩SDRAM,单独依靠H7内部的SRAM,能使用H7硬件JPEG解码吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106726
QQ
发表于 2021-5-24 13:57:34 | 显示全部楼层
可以。
回复

使用道具 举报

25

主题

68

回帖

143

积分

初级会员

积分
143
QQ
 楼主| 发表于 2021-5-31 08:04:16 | 显示全部楼层

感谢。我已经实现不用外扩SDRAM硬解JPEG功能,就是每次硬解多少就先显示多少,这样只需要申请很少的SRAM内存就可以了。

但是,我没有发现STM32H7硬解JPEG有缩放功能,对于分辨率超出LCD分辨率的图片,如何缩放并显示在LCD上?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106726
QQ
发表于 2021-6-1 09:17:03 | 显示全部楼层
pnhywyb 发表于 2021-5-31 08:04
感谢。我已经实现不用外扩SDRAM硬解JPEG功能,就是每次硬解多少就先显示多少,这样只需要申请很少的SRAM ...

可用个GUI,像emWin那种都支持缩放
回复

使用道具 举报

11

主题

28

回帖

61

积分

初级会员

积分
61
发表于 2022-4-28 20:44:08 | 显示全部楼层
pnhywyb 发表于 2021-5-31 08:04
感谢。我已经实现不用外扩SDRAM硬解JPEG功能,就是每次硬解多少就先显示多少,这样只需要申请很少的SRAM ...

正在搞这个,可以看看吗,不是商用,自己玩的。先谢谢了
回复

使用道具 举报

11

主题

28

回帖

61

积分

初级会员

积分
61
发表于 2022-4-28 20:45:27 | 显示全部楼层
pnhywyb 发表于 2021-5-31 08:04
感谢。我已经实现不用外扩SDRAM硬解JPEG功能,就是每次硬解多少就先显示多少,这样只需要申请很少的SRAM ...

可以看看吗,正在搞这个,不是商用,自己玩玩的。先谢谢了!
回复

使用道具 举报

18

主题

216

回帖

270

积分

高级会员

积分
270
发表于 2022-4-29 09:09:41 | 显示全部楼层
pnhywyb 发表于 2021-5-31 08:04
感谢。我已经实现不用外扩SDRAM硬解JPEG功能,就是每次硬解多少就先显示多少,这样只需要申请很少的SRAM ...

HI pnhywyb 您好

方便請教一下您圖面是多大的圖面??
大概需要多少時間解出來??
內存的大小是??

謝謝.
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106726
QQ
发表于 2022-4-29 15:24:59 | 显示全部楼层
新洲罗远 发表于 2022-4-28 20:45
可以看看吗,正在搞这个,不是商用,自己玩玩的。先谢谢了!

硬件JPEG,原本就是一部分一部分解析的,全部缓冲到SDRAM仅仅是方便整体DMA2D显示,有些防止撕裂拉窗的效果。

如果需要,用户仅需在解析一部分后直接显示出去腾空间,让后续解析继续添加进来即可。

关键的地方就在这里。
[C] 纯文本查看 复制代码
/*
*********************************************************************************************************
*	函 数 名: HAL_JPEG_DataReadyCallback
*	功能说明: JPEG回调函数,用于输出缓冲地址更新
*	形    参: hjpeg         JPEG_HandleTypeDef 句柄指针
*             pDataOut      输出数据缓冲
*             OutDataLength 输出数据大小,单位字节
*	返 回 值: 无
*********************************************************************************************************
*/
void HAL_JPEG_DataReadyCallback (JPEG_HandleTypeDef *hjpeg, uint8_t *pDataOut, uint32_t OutDataLength)
{
	/* 更新JPEG输出地址 */  
	FrameBufferAddress += OutDataLength;

	HAL_JPEG_ConfigOutputBuffer(hjpeg, (uint8_t *)FrameBufferAddress, CHUNK_SIZE_OUT); 
}



回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106726
QQ
发表于 2022-4-29 15:26:16 | 显示全部楼层
inceboy 发表于 2022-4-29 09:09
HI pnhywyb 您好

方便請教一下您圖面是多大的圖面??

看V7的硬件JPEG章节即可,一样的。

硬件JPEG,原本就是一部分一部分解析的,全部缓冲到SDRAM仅仅是方便整体DMA2D显示,有些防止撕裂拉窗的效果。

如果需要,用户仅需在解析一部分后直接显示出去腾空间,让后续解析继续添加进来即可。
回复

使用道具 举报

11

主题

28

回帖

61

积分

初级会员

积分
61
发表于 2022-5-2 08:51:47 | 显示全部楼层
谢谢版主分析经验,我也拿出一个方案

STM32H7B0JPEG解码显示数据空间共用
1、设置JPEG解码YCbCr数据区起点为0X24000000;  屏幕(800*600*2)显示区起点为0X42010000;
2、整幅JPEG图片硬件解码,数据放在0X24000000
3、从下边开始,每32行作一次转换写显示,这样不会破坏待转换的数据。
回复

使用道具 举报

18

主题

216

回帖

270

积分

高级会员

积分
270
发表于 2022-5-2 22:02:22 | 显示全部楼层
eric2013 发表于 2022-4-29 15:26
看V7的硬件JPEG章节即可,一样的。

硬件JPEG,原本就是一部分一部分解析的,全部缓冲到SDRAM仅仅是方 ...

hi 大佬,謝謝回覆.

這個我再試看看,

謝謝.
回复

使用道具 举报

18

主题

216

回帖

270

积分

高级会员

积分
270
发表于 2022-5-17 12:18:42 | 显示全部楼层
HI 2013大佬:

教程裡是說 :
"如果用户设置每次 解码 的数据小于 JPEG 文件 大小,那么就需要通过此函数 更新"
HAL_JPEG_GetDataCallback() 不是HAL_JPEG_DataReadyCallback() ??

是用HAL_JPEG_GetDataCallback解碼一點再用 DMA2D_Copy_YCbCr_To_RGB 顯示在
LCD上囉

謝謝.
回复

使用道具 举报

18

主题

216

回帖

270

积分

高级会员

积分
270
发表于 2022-5-18 17:43:49 | 显示全部楼层
HI 2013大佬

搞錯了,原來是解碼時會用HAL_JPEG_DataReadyCallback
更新目標地址。
但是一次64*1024而己??
用DEBUG觀察程式流向時
跑兩次就可以解480X272的圖???

謝謝.
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106726
QQ
发表于 2022-5-19 05:58:43 | 显示全部楼层
inceboy 发表于 2022-5-18 17:43
HI 2013大佬

搞錯了,原來是解碼時會用HAL_JPEG_DataReadyCallback

这个可以修改。
回复

使用道具 举报

18

主题

216

回帖

270

积分

高级会员

积分
270
发表于 2022-5-24 16:09:41 | 显示全部楼层

HI 大佬

您的意思是要在這個
HAL_JPEG_DataReadyCallback 裡面再加入
先把已解碼完的YCBCR先LOAD到顯存裡面的意思嗎??

不然看JPEG_Decode_DMA(&JPEG_Handle, (uint32_t)_ac1, sizeof(_ac1), SDRAM_APP_BUF);
好像就直接解完了.中間好像攔不到。

謝謝.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-2 07:39 , Processed in 0.234898 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表