事件相机读出延迟的真相
异步事件读出方案意味着事件通过非时钟握手通信协议从像素阵列传送到主机接收器。如果当前一个事件正在通信时检测到多个新事件被,它们会被认为是同时发生的。这些同时发生的事件按照仲裁系统确定的顺序进行通信。这些同时发生的事件通常在读出期间被加上时间戳,因此它们可能不共享相同的时间戳。异步事件读出方案的主要优点是其低功耗和低读出延迟,只有当事件检测率低于最大读出速度时,这两种方法才是正确的。异步事件读出方案的主要缺点是其最大读出速度有限。
在异步事件读出方案中,事件的通信由事件的检测启动。如果事件检测率较低,则读出系统不太活跃,甚至有时处于空闲状态,因此,消耗很少的功率。此外,如果事件检测率低于最大读出速度,则新检测到的事件的通信通过其以最小延迟的检测立即启动。作为一个例子,DAVIS346相机实现了一个异步事件读出方案,它需要大约80ns来通信一个事件。因此,如果事件检测率低于每80ns(或约12meps)中的一个事件,则DAVIS346相机的最佳情况读出延迟约为80ns。
然而,随着事件检测率的增加,异步事件读出方案的功耗效率降低。这是因为握手通信协议需要在像素阵列和主机接收器之间进行多次信息交换,用来通信单个事件。此外,如果瞬时事件检测率高于最大读出速度,则排队等待通信的同时事件的数量开始累积,从而导致读出延迟增加。这种读出延迟的增加对于每个单独的事件是不确定的,因为在确定排队序列时使用了仲裁。以DAVIS346摄像机(最大事件吞吐量为12meps)为例,如果一个输入刺激产生10k个同时事件(在总的0.1M像素中约为10%),这些事件在最坏情况下的读出延迟约为1ms,引入了一个大的时间戳错误。
如图1所示,如果在1毫秒内检测到新事件,则通过仲裁将它们插入通信队列,这可能进一步增加先前累积的同时事件的读出延迟和时间戳错误。
图一:异步事件读出方案中最坏情况下的读出延迟
同步事件读出方案意味着事件通过时钟系统扫描方案从像素阵列传送到主机接收器。同步事件读出方案通常与全局快门式全局事件采样机制结合使用,这意味着整个像素阵列以已知(和可调整的)时间间隔同时采样。当在一个这样的时间间隔内检测和采样多个事件时,它们被认为是同时的,并且根据它们在像素阵列中的位置(例如从上到下和从左到右)以系统顺序进行通信。同时发生的事件共享相同的时间戳,可以称为一个事件帧。这个同步事件读出方案的主要优点包括其比较高的最大读出速度,以及在高事件检测率下比较低的恒定的读出延迟。同步事件读出方案的缺点是在低事件检测率下其恒定的静态功耗和恒定的读出延迟。如前面在对时间分辨率问题的回答中所解释的,作为全局事件采样结果的较粗的时间戳不是缺点。
在同步事件读出方案中,事件的通信由像素阵列外部的读出控制器控制,通常以特定的采样率跟随每个全局事件采样操作。因此,读出控制器不知道在每个全局采样间隔期间检测到的事件的数量,读出控制器必须在每个全局采样操作之后启动可能检测到的事件的通信。这些定期取样和即使在零事件检测率下,通信活动也会导致恒定的非零静态功率消耗。幸运的是,通过设计优化,这种静态功耗的大小通常与整个传感器的总功耗相比可以忽略不计。随着事件检测率的增加,同步事件读出方案变得更省电,因为每个事件的通信只需要一个时钟信息交换。
由读出控制器发起的周期性通信还意味着,即使在低事件检测率下,检测到的事件的最坏情况是读出延迟至少是全局事件采样间隔的持续时间。然而,只要事件检测率低于最大读出速度,这种最坏情况下的读出延迟不随事件检测率而变化。由于其高的最大读出速度,同步事件读出方案能够在高事件检测率下保持恒定的最坏情况下的读出延迟。例如,DVXplorer相机实现了同步事件读出方案,默认全局事件采样率为5 kHz,这意味着在低事件检测率下,最坏情况下的读出延迟至少为200µs。然而,在165meps的最大读出速度下,DVXplorer能够在每个事件帧中连续地维持30k个同时事件(由总0.3M像素的10%产生),同时保持小于400µs的最坏情况下的读出延迟(如图2所示,假设在全局事件采样间隔开始时检测到一个事件,并且是事件帧中最后读取的事件)。
图2:同步事件读出方案中最坏情况下的读出延迟
那么哪种事件读出方案更好呢?
这个问题的答案取决于传感器分辨率和用例。异步事件读出方案可以更适合于低分辨率传感器(例如,我们的DAVIS346传感器,像素为0.1M),或事件检测率预计较低的用例。同步事件读出方案更适合于高分辨率传感器(例如,我们的DVXplorer传感器具有0.3M像素)或期望高事件检测率的用例。不管使用的是异步还是同步读出方案,事件输出数据都采用相同的地址事件表示(AER)格式。