CameraDevice

时间:2016-07-26 09:15:34

标签: android timestamp android-camera2

我遇到了时间戳的问题,如果有人能帮助我,我将不胜感激。我正在尝试将SensorEvent与我从ImageReader接收的图像同步。

我知道SensorEvent的时间戳是自操作系统启动以来的纳秒(正常运行时间)。 另一方面,Image的getTimestamp(来自ImageReader)以纳秒为单位测量,但时基取决于提供图像的源(Camera,CameraDevice等)。在我的情况下,我使用CameraDevice(camera2),但我还没有找到CameraDevice的时基。

我将不胜感激任何帮助。 干杯

1 个答案:

答案 0 :(得分:5)

这在SENSOR_INFO_TIMESTAMP_SOURCE字段中有记录,但在这两个选项中,第一个可能对您没有帮助。

  • UNKNOWN:"来自android.sensor.timestamp的时间戳以纳秒为单位,但不能与其他子系统的时间戳(例如加速度计,陀螺仪等)或其它的其他实例进行比较或同一系统中的不同摄像设备。单个摄像机实例的流和结果之间的时间戳是可比较的,并且所有缓冲区的时间戳和单次捕获生成的结果元数据是相同的。"

  • REALTIME:" android.sensor.timestamp的时间戳与elapsedRealtimeNanos()位于同一时基,可以将它们与使用该基数的其他时间戳进行比较。"

    < / LI>

不幸的是,今天的大多数设备报告UNKNOWN,因为它们与elapsedRealtimeNanos()使用的时基没有精确同步(在Linux内核级别,通常是CLOCK_BOOTTIME时间源。

然而,在实践中,大多数设备&#39;摄像机时间戳只来自CLOCK_MONOTONIC源,它通常与nanoTime()的时基相同。

但是时间戳通常不是非常准确(意味着,关闭几毫秒),这就是为什么这些设备报告未知,因为时间戳准确度不够高,无法与其他传感器可靠地相关联。时间戳。