一、无乒乓操作时
正常情况下是不需要乒乓操作的,比如当SDRAM通过串口传一张图时,就只要一个bank就行了(下图的t1、t2就是串口传图的过程)。 但是摄像头传图时则必须要乒乓操作,因为当OV5640 帧率 30fps,VGA 帧率 60fps,写慢读快,仿佛刚好可以写一帧读两帧,但是会出现以下的错帧现象。
将上述 5 帧图像生成的时间点编号为 t1、t2、t3、t4、t5。在 t1、t3、t5 时刻图像都是残缺帧(新老帧各显示一半图片),在 t2、t4 时刻图像才是完整的一帧,而 VGA 那边可不管,每个时间点都会要一帧图像,这就是错帧现象。而解决错帧现象的方法则是乒乓操作。
一、乒乓操作时
原理:使用两个缓存区,写缓存区 1 时读缓存区 2,写缓存区 2 时读缓存区 1,读写交替。示意图如下,红线为写,黑线为读。
乒乓操作中,每次读的(黑线)都是完整的帧,每一帧读 2 次,这样便没有出现读残缺帧的现象,解决了错帧问题。