znmcu 发表于 2014-1-1 22:04

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

本帖最后由 znmcu 于 2014-1-3 00:45 编辑

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

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

这一实验与数码相机实验相比,最大的难点在于如何提高帧速(录像的流畅度),也就是说要在单位时间内尽量多地从摄像头模块获取图像,并且将其存入到SD卡中。从原则上来说,视频的帧速至少要达到10fps,人眼才会感觉比较流畅。以16位QVGA图像(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
http://player.youku.com/player.php/sid/XNjU1ODkzMjE2/v.swf

源代码:
AVR单片机源代码:
PC ZNV格式视频播放器 VC++6.0源代码:
(内含示例ZNV文件,请将要播放的ZNV文件命名为znmcu.znv,并放在播放器同目录下)注:此实验中TFT液晶模块使用的控制器为S6D1121,OV7670模块上集成了FIFO,型号为AL422B。
振南的ZN-X开杂板原理图:

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

顶起

洗澡哥2011 发表于 2014-1-1 23:49

支持啊。要是用STM32就好啦

znmcu 发表于 2014-1-1 23:55

我也会做stm32的版本,zn-x是多元开发版,有stm32

通宵敲代码 发表于 2014-1-2 12:10

不错不错,支持振南哥,

榨干硬件资源!

yinlitansuo 发表于 2014-1-2 13:34

这个要顶!

znmcu 发表于 2014-1-2 16:57

谢顶,谢顶。这个实验我还要做一个stm32版本,看看能把实验效果提高多少。

天师猫神 发表于 2014-1-2 19:41

这个要顶!这个要顶!

qwert1213131 发表于 2014-1-2 19:45

南哥永远是我膜拜的

hdp7891000 发表于 2014-1-2 20:36

mark,大神

znmcu 发表于 2014-1-3 00:39

本帖最后由 znmcu 于 2014-1-3 00:42 编辑

ZNV视频转AVI视频 工具
软件:
源代码:



znmcu 发表于 2014-1-3 07:38

深入研究了无压缩avi的数据格式,也许可能在单片机上直接出AVI视频

abin0415 发表于 2014-1-3 09:05

znmcu 发表于 2014-1-3 07:38 static/image/common/back.gif
深入研究了无压缩avi的数据格式,也许可能在单片机上直接出AVI视频

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

subukenai 发表于 2014-1-3 09:11

细节决定成败,态度决定高度。

znmcu 发表于 2014-1-3 09:11

要把avi实现之后,会亲自做通俗的教程给大家。

dong00520 发表于 2014-1-3 09:24

支持啊,顶起!

lipm 发表于 2014-1-3 09:53

这个要顶!

这个要顶!

kpzclxtx 发表于 2014-1-3 10:01

大牛。。
页: [1] 2 3
查看完整版本: OV7670摄像头+AVR+SD卡+znFAT作“录像机”!(飙速极致) 附AVI软件