come from : http://blog.chinaunix.net/uid-7213935-id-5753468.html
ZSL(zero shutter lag)解析
ZSL (zero shutter lag):零秒延迟
在日常生活中,使用手机camera拍照的时候往往会有一些延迟的体验。ZSL,就是为了消除这种延迟,提供一种“拍即视”的体验而被开发出来。
一.Normal mode:
一般情况下,拍照流程如下,从图中我们可以看到data flow 以及shutter lag (延迟)是如何产生的。
二. ZSL Mode:
通过zsl 技术,最大程度上减小了这种延迟,如下图:
Zsl 分为两种mode:single shot;burst mode。
1. single shot:
预览之后,sensor 和VFE 会产生快照和预览帧,并且会把最新的一些帧保留在图像buffer中。一旦“取图”事件被触发,系统就会在第一时间内从图像buffer中把相关的图像找出并返回给用户,这就是ZSL,零秒延迟。
2. Burst-mode:
Burst mode 是single shot 特征的自然延伸。此功能允许用户捕获的不仅是当前帧,但也有几个帧之前和之后的当前帧的少数几个帧,从而捕捉到一个序列的图像到内存。这将为用户提供不同的快照时间,从中选择一个或多个帧来保存。应用了多少帧的选择自由是多少追溯帧和未来帧在记忆的局限性上,追溯和未来帧是相对于真正的快门时间的。
三.拍照具体实现过程
1. Implementation without ZSL:
2. Implementation with ZSL:
如果快照command不来,ZSL 帧就不会被拿起;他们会通过快照线程回到内核释放。如果zsl帧command过来,就会设置信号,快照线程就会立刻在序列中抓取最老的帧并开始编码。
一旦一个JPEG完成,这个帧就会回到队列释放到内核。如果ZLS 快照是burst mode,快照线程加会立刻抓住整个队列并开始编码,一旦一个JPEG完成,这个帧就会回到队列释放到内核。