野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 15871|回复: 0

关于OV2640采集JPEG通过TCP发送的问题

[复制链接]
发表于 2018-11-23 16:10:46 | 显示全部楼层 |阅读模式
2火花
本帖最后由 十万、_lWIIC 于 2018-11-23 16:25 编辑

我在霸天虎407开发板上做了一个OV2640采集JPEG320*240图片通过DMA到内部SRAM,然后再通过TCP client方式发给上位机的程序。
OV2640用的快照模式,在帧中断中发送数据,发送完后立即重新启动DCMI采集。
DMA是把整个JPEG数据一次性传输完,实测一张320*240图片大小在10k之内,我一次发送1k的包 分10次发送完成,电脑上位机能够正常显示图片。
现在的问题是显示的帧率太低了,只有1fps左右,通过抓包工具看出,10个包发送的速度很快,在ms级就能发送完。还可以看到每一帧之间间隔大约1秒多。

所以估计帧率低是因为帧中断的速率太低,在debug中的帧中断服务里面打断点也能感觉到dcmi的帧传输时间很长。
这种情况是否是快照模式的问题?
OV2640的寄存器配置全部是例程的配置没有更改。
如果用连续传输模式,是否也是需要在帧中断中先暂停传输,等待发送完成后再恢复传输?这样效果是否和快照模式一样?
或者在DMA传输完成中断中发送数据,DCMI不暂停,但是这样由于jpeg数据大小不确定,一个包里可能同时包含上一帧的结尾数据和下一帧的起始数据,处理起来就比较麻烦了。
另外我在f429的wifi传输摄像头例程里看到了用了双缓冲dma的方式,这种方式的目的是什么?

我直接用快照模式在液晶屏上显示了640*480的图像,也是在帧中断中恢复dcmi传输,实测帧率正常,但是dma是一次传输16位数据。难道是dma一次性传输10k数据很耗时间,或者是jpeg压缩运算很耗时间??


求大神解答


QQ截图20181123161152.png
回复

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-11 03:18 , Processed in 0.030049 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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