摄像头为什么要加FIFO?
如果FPGA的处理能力足够快的话何必加个FIFO呢?浪费吧?但是如果处理能力一般的MCU的话,对摄像头加了个FIFO,可以采集到几帧完整的图像。但FIFO的容量有限,不是使得帧数丢失么? 帮忙分析下FIFO利弊吧~ 你自己已经说了 1.当后级数据吞吐能力比前级弱时,不管你用什么手段(FIFO、乒乓操作)只要时间足够长,存储满了就会丢失数据。
2.不管是FIFO还是乒乓操作都是做“暂存”,当后级“实时”处理速率比前级慢时,将数据暂存下来,
只要保证在暂存的这段时间内数据能被后级消化即可保证不丢数据。达到“速率”匹配的目的。
3.MCU执行多任务时是分时执行的,加个FIFO保证能接收到完整的帧,避免在执行中断的时候丢失摄像头数据。
楼上分析的不错,学习了,有收获! Codoox 发表于 2014-3-7 16:56
1.当后级数据吞吐能力比前级弱时,不管你用什么手段(FIFO、乒乓操作)只要时间足够长,存储满了就会丢失数 ...
学习了 顶一下 Codoox 发表于 2014-3-7 16:56
1.当后级数据吞吐能力比前级弱时,不管你用什么手段(FIFO、乒乓操作)只要时间足够长,存储满了就会丢失数 ...
“ 只要保证在暂存的这段时间内数据能被后级消化即可保证不丢数据。达到“速率”匹配的目的。”
这句话我不大理解。就像玻璃珠一个一个倒入竖着放的管子,我人在下面面接,和不通过管子直接接不都是一样的么?如何达到速率匹配呢? zcy0517 发表于 2014-3-7 21:25
“ 只要保证在暂存的这段时间内数据能被后级消化即可保证不丢数据。达到“速率”匹配的目的。”
这句话 ...
你一个一个往里面扔,我一个个往里接。
你一秒扔一个,我可以接得住。
你一秒扔两个,我就接不住了,需要容器暂停一下。
如果你一直两秒扔一个,最后我还是接不住。
幸运地是,你只是偶尔一秒扔两个。大部分是见还是乖乖扔一个。
于是,容器大小就成了你任性发泄的地方,你发飙一次无所谓,两次无所谓,连续发飙十次可能就准备分手了
不过只要你乖一点,发飙少于10次。咱们最终还是能和好如初。{:titter:} 其中一个是为了做块处理吧 aa440981 发表于 2014-3-7 21:47
你一个一个往里面扔,我一个个往里接。
你一秒扔一个,我可以接得住。
解释的很通俗,我做学生的时候,就喜欢这样的老师,再难的事,经他一讲,就很简单。
aa440981 发表于 2014-3-7 21:47
你一个一个往里面扔,我一个个往里接。
你一秒扔一个,我可以接得住。
这个就通俗很多了{:smile:} 8楼学习了··· 看完通俗的解释,我来一个学术一点的
http://zh.m.wikipedia.org/wiki/%E7%94%9F%E4%BA%A7%E8%80%85%E6%B6%88%E8%B4%B9%E8%80%85%E9%97%AE%E9%A2%98 zcy0517 发表于 2014-3-7 21:25
“ 只要保证在暂存的这段时间内数据能被后级消化即可保证不丢数据。达到“速率”匹配的目的。”
这句话 ...
后级取一次数据,准备工作和善后工作是很耗时的,如果每次都是大量读取,就可以摊销这些不必要时间,类似于规模化生产可以降低单位成本一样 david1234 发表于 2014-3-7 21:57
解释的很通俗,我做学生的时候,就喜欢这样的老师,再难的事,经他一讲,就很简单。
...
做比方是最危险的解释方法,事物间共性远少于异处。
还是可泛化的典型事例在理解上危险性较小。 aa440981 发表于 2014-3-7 21:47
你一个一个往里面扔,我一个个往里接。
你一秒扔一个,我可以接得住。
你头像是谁呢 追问:一般加了FIFO后读取时会如何处理? 这就是一个很好的FIFO,为了防止速度不匹配 数据溢出,所以设计成蛇形路线,目的就是增大FIFO的容量 向大家学习了。{:biggrin:} 没有用过带fifo的摄像头,直接上无fifo摄像头与fpga连接,速度完全够了。 aa440981 发表于 2014-3-7 21:47
你一个一个往里面扔,我一个个往里接。
你一秒扔一个,我可以接得住。
够精辟!!! 四轴飞行器 发表于 2014-3-7 23:26
你头像是谁呢
前女友。今日刚好是交往纪念日。38节。那年本来约的是女生节。不过她偏偏拖到第二天才答应我。往事俱已,好笑的事都不在好笑了。 aa440981 发表于 2014-3-7 21:47
你一个一个往里面扔,我一个个往里接。
你一秒扔一个,我可以接得住。
神回复啊。。。。。。。。。。。 aa440981 发表于 2014-3-9 00:01
前女友。今日刚好是交往纪念日。38节。那年本来约的是女生节。不过她偏偏拖到第二天才答应我。往事俱已, ...
你初恋?还挂着她相片 aa440981 发表于 2014-3-9 00:01
前女友。今日刚好是交往纪念日。38节。那年本来约的是女生节。不过她偏偏拖到第二天才答应我。往事俱已, ...
搜噶 往事不堪回首,你还喜欢她不? goolloo 发表于 2014-3-7 22:58
做比方是最危险的解释方法,事物间共性远少于异处。
还是可泛化的典型事例在理解上危险性较小。 ...
呵呵,若我们具有佛性,一切可“一以贯之” FIFO连一帧图像都装不下 要它何用? fifo加的多大的呢? 求指导 SDRAM,DDRRAM都是突发读取,如果不用FIFO,你怎么突发? FIFO的还有个作用是平滑作用 学习了 jzb8736 发表于 2014-3-8 09:30
这就是一个很好的FIFO,为了防止速度不匹配 数据溢出,所以设计成蛇形路线,目的就是增大FIFO的容量 ...
怎么感觉像是武当山啊,你的图片 理论上什么都可能实现,但是实际上呢? xuxms 发表于 2014-4-2 19:19
怎么感觉像是武当山啊,你的图片
北京地铁 ~~~~ 有时候是为了不占用CPU的处理时间 ,可以比较方便的读取摄像头数据! 其实你用FPGA采集直接显示或者存到存储器里面速度是完全够的,而且可以做到很大的帧速率,没必要加FIFO。使用FIFO是因为用一般的MCU采集摄像头太慢了,如果降低摄像头速率,对于动态的物体就会有拖影,就像你第一行一秒前的东西,最后一行是两秒后的东西,可想而知。所以用个FIFO,在物体没动之前,快速把它采集进来。虽然说一个FIFO的大小还容不下一张图片,但是在FIFO非空的时候MCU就可以开始读取了,所以它会得到完整的一帧。 首先摄像头的数据是连续输出的,你的处理的接收以及处理的速度必须大于等于输出数据的数据流速度...........而FIFO就是一个缓冲区,能够帮你把一整的完整图像的信息给你保存下来,这样对你的处理速度的要求就降低了。不过在这个过程中可定会丢失数据。 aa440981 发表于 2014-3-7 21:47
你一个一个往里面扔,我一个个往里接。
你一秒扔一个,我可以接得住。
很形象!嘿嘿,要是我们老师这样讲课该多好。。。。 例子很精辟,一看就明白了 FIFO是跨时钟的解决利器
页:
[1]