|
本帖最后由 nosi12 于 2020-11-28 17:09 编辑
我想在STM32F429上实现一定帧率的视频播放(不带音频), 但由于直接利用软件解码的方式速度过慢, 为此选择了在电脑上将图片文件保存为rgb565格式, 而后通过SD卡直接依次读取一张张图片, 并直接输入显存进行显示. 目前已经能够实现800*480屏幕, rgb565格式, 150ms/帧左右的刷新速度。
进入调试模式, 发现f_open与f_read的耗时分别为50ms与100ms。为了进一步提高帧率, 我就想把rgb565文件头尾相接, 直接合并在一起, 这样只需要调用一次f_open, 希望能够将帧数提升至10/s左右.
但在测试时, 却发现JPG_Buffer这个缓存区读不到数据。 执行完f_read指令后JPG_Buffer缓冲区仍然全为0. 但单张读取rgb565格式的文件就是正常的.
进入调试模式, 检查f_open的返回值, 为FR_OK; 检查f_read的返回值, 为FR_OK, 说明文件已经正常开启, 读取. 再查看JPG_File结构体, 得到结果如下:
文件大小信息与实际是相符的, 但扇区缓冲区win数据全为0, 应该就是这个地方出了问题。
正常读取rgb文件时得到的JPG_File结构体如下
扇区缓冲区win数据不为0, 而是有相应读数. 请教下大家是什么问题呢?
|
|