跟着卷卷龙一起学 Camera-- 低延迟 03
从以上分析可以知道,典型的硬件延迟其实是非常小的,ISP 和 encoder 的延迟之和可以做到 2ms 以内, 如果只考虑算法 pipeline 本身的延迟则更小,与动辄 100ms 以上的端到端延迟相比,几乎可以忽略不计。 接下来的问题就很显然了,剩下的这么多延迟都是怎么来的呢?其实问题的根因很简单,就四个字:“离线 模式”。
1 离线与在线模式所谓离线模式就是说,从 CMOS sensor 捕获到的数据不是立即马上 right away 送给 ISP 去处理,而是先 输出到内存中的帧缓存(frame buffer)中,等到一帧完整的数据捕获完毕后 ISP 才择机开始处理。以 30fps 帧率为例,等到一帧图像捕获完成后,图像的第一个像素数据已经在内存中白白等待接近 30ms 的时间了。 在此基础上,“择机”二字的具体含义是,ISP 其实不一定什么时候才能开始处理,有的时候可能要再等上一 两帧之后 ISP 才有空,等 ISP 终于有空的时候,它读取的图像可能已经是两三帧之前的历史图像了,仍以 30fps 帧率为例,这就意味着刚才那个像素已经等了 60ms 以上。在 camera 系统中,这种由 buffer 缓冲引 起的延迟是最主要的延迟来源。那么 ISP 为什么会这么忙,以至于要等一两帧之后才有机会处理 sensor 图像呢?显然,这样设计是故 意的,并且有着非常合理的原因。按照当前的主流 IP 的技术水平,ISP 和 video encoder 的主频很容易做到 800MHz,有些芯片甚至可以做到 1GHz 以上。
版权声明: 本文为 InfoQ 作者【卷卷龙】的原创文章。
原文链接:【http://xie.infoq.cn/article/fbbf05028e32adbaf1f5de714】。文章转载请联系作者。
评论