CameraDevice时间戳的时基是多少

mik*_*ter 2 android timestamp android-camera2

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

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

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

Edd*_*ala 5

这在SENSOR_INFO_TIMESTAMP_SOURCE字段中有说明,尽管有两个选项,但第一个选项可能对您没有帮助。

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

  • REALTIME:“来自android.sensor.timestamp的时间戳与elapsedRealtimeNanos()处于同一时基,并且可以将其与使用该时基的其他时间戳进行比较。”

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

但是,实际上,大多数设备的摄像机时间戳仅来自CLOCK_MONOTONIC来源,通常与nanoTime()相同。

但是时间戳通常不是很准确(意思是,间隔了几毫秒),这就是为什么这些设备报告未知的原因,因为时间戳的准确性不够高,无法可靠地与其他传感器的时间戳相关联。