打印

OV7670摄像头+AVR+SD卡+znFAT作“录像机”!(飙速极致) 附AVI软件

[复制链接]
11311|50
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
znmcu|  楼主 | 2014-1-1 22:04 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 znmcu 于 2014-1-3 00:45 编辑



网站 www.znmcu.cn 论坛 www.znmcu.cn/bbs
znFAT技术交流群:145948643


    自从用
OV7670摄像头模块+SD卡,还有我的znFAT实现了“简易数码相机”实验之后,我又有一个新的想法,那就是“简易录像机”实验。我想把静态的单帧图像升级为动态的视频。其实从原理上来说很简单,就是连续获取多幅图像,依次的存储在一起即可。请看下图。

这一实验与数码相机实验相比,最大的难点在于如何提高帧速(录像的流畅度),也就是说要在单位时间内尽量多地从摄像头模块获取图像,并且将其存入到SD卡中。从原则上来说,视频的帧速至少要达到10fps,人眼才会感觉比较流畅。以16QVGA图像(320x240像素)来计算,一帧图像的数据量为320x240x2=153600B=150KB。如果每秒要获取10帧图像,并全部存入SD卡,则总数据量为1500KB。这对于CPU芯片的硬件性能及文件系统的数据存储效率都有较高的要求。
我们使用ATMEGA128A芯片作为主控制器,它的硬件性能其实达不到上述要求(哪怕是在使用标称的最高工作频率16MHz的情况下)。因此,振南在这里使用了一些折中的方法,让其可以达到录像的实验目的,虽然最终的效果可能还是会有些差强人意。
OV7670芯片输出的图像尺寸是可以被灵活设置的,我将其宽与高均缩小一倍,即160x120,这样一帧图像的数据量就减少了3倍,即37.5KB。单帧图像数据量的减少,将使录像的帧速得以很大的提升,不过这是以图像质量为代价的。
SD卡以及文件系统部分其实是比较成熟的,直接延用了我的SD卡驱动与znFAT文件系统方案。使用ATMEGA128芯片的硬件SPI来进行驱动,并将znFAT的加速缓冲机制打开(CCCB算法),最终实测的文件数据写入速度大约为180KB/s,即录像的帧频大约能达到5fps,也许我们会看到一个稍有卡顿的视频效果。
实验硬件平台及示意如下图。

TFT液晶同步显示效果图。

一帧帧的图像数据在SD卡上被组织为了znv文件格式(znv格式是由振南片行定义的一种视频文件格式,详见相关实验)。我们希望在PC上能使用播放器对录像进行播放,因此振南编写了这样一个小软件,如下图所示。

演示视频链接 http://v.youku.com/v_show/id_XNjU1ODkzMjE2.html?x


源代码:
AVR单片机源代码: RECORDER.rar (461.58 KB)
PC ZNV格式视频播放器 VC++6.0源代码: znv player.rar (2.87 MB)
(内含示例ZNV文件,请将要播放的ZNV文件命名为znmcu.znv,并放在播放器同目录下)

注:此实验中TFT液晶模块使用的控制器为S6D1121,OV7670模块上集成了FIFO,型号为AL422B。
振南的ZN-X开杂板原理图: znFAT书配开发板原理图(基板).rar (78.81 KB)

相关帖子

沙发
xyz549040622| | 2014-1-1 23:18 | 只看该作者
顶镇南

使用特权

评论回复
板凳
znmcu|  楼主 | 2014-1-1 23:25 | 只看该作者
很多人建议我直接把视频存成AVI格式,这个不太现实。单片机一般没有这个编码能力。我可以用VC++6.0写一个ZNV格式转AVI格式的软件。或者还有一种方法,直接为ZNV格式写一个解码器,直接挂到暴风影音等播放器上,这样就可以直接播放了。后者难度较大,前者更加可行。
我定义ZNV视频格式,主要是为了方便单片机嵌入式平台去播放视频,它无需解码。

使用特权

评论回复
地板
abin0415| | 2014-1-1 23:43 | 只看该作者
顶起

使用特权

评论回复
5
洗澡哥2011| | 2014-1-1 23:49 | 只看该作者
支持啊。要是用STM32就好啦

使用特权

评论回复
6
znmcu|  楼主 | 2014-1-1 23:55 | 只看该作者
我也会做stm32的版本,zn-x是多元开发版,有stm32

使用特权

评论回复
7
通宵敲代码| | 2014-1-2 12:10 | 只看该作者
不错不错,支持振南哥,

榨干硬件资源!

使用特权

评论回复
8
yinlitansuo| | 2014-1-2 13:34 | 只看该作者
这个要顶!

使用特权

评论回复
9
znmcu|  楼主 | 2014-1-2 16:57 | 只看该作者
谢顶,谢顶。这个实验我还要做一个stm32版本,看看能把实验效果提高多少。

使用特权

评论回复
10
天师猫神| | 2014-1-2 19:41 | 只看该作者
这个要顶!这个要顶!

使用特权

评论回复
11
qwert1213131| | 2014-1-2 19:45 | 只看该作者
南哥永远是我膜拜的

使用特权

评论回复
12
hdp7891000| | 2014-1-2 20:36 | 只看该作者
mark,大神

使用特权

评论回复
13
znmcu|  楼主 | 2014-1-3 00:39 | 只看该作者
本帖最后由 znmcu 于 2014-1-3 00:42 编辑

ZNV视频转AVI视频 工具
软件: znv2avi.rar (4.47 KB)
源代码: znv2avi.rar (1.49 MB)




使用特权

评论回复
评分
参与人数 1威望 +6 收起 理由
dong_abc + 6
14
znmcu|  楼主 | 2014-1-3 07:38 | 只看该作者
深入研究了无压缩avi的数据格式,也许可能在单片机上直接出AVI视频

使用特权

评论回复
15
abin0415| | 2014-1-3 09:05 | 只看该作者
znmcu 发表于 2014-1-3 07:38
深入研究了无压缩avi的数据格式,也许可能在单片机上直接出AVI视频

先顶下振南哥,有无avi等格式资料推荐下。

使用特权

评论回复
16
subukenai| | 2014-1-3 09:11 | 只看该作者
细节决定成败,态度决定高度。

使用特权

评论回复
17
znmcu|  楼主 | 2014-1-3 09:11 | 只看该作者
要把avi实现之后,会亲自做通俗的教程给大家。

使用特权

评论回复
18
dong00520| | 2014-1-3 09:24 | 只看该作者
支持啊,顶起!

使用特权

评论回复
19
lipm| | 2014-1-3 09:53 | 只看该作者
这个要顶!

这个要顶!

使用特权

评论回复
20
kpzclxtx| | 2014-1-3 10:01 | 只看该作者
大牛。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:振南的znFAT -- 单片机上上的FAT32文件系统 www.znmcu.cn

4474

主题

5195

帖子

33

粉丝