【问题标题】:Android Camera2 ImageReader Image Format YUVAndroid Camera2 ImageReader 图像格式 YUV
【发布时间】:2017-01-06 03:03:47
【问题描述】:

我有一个可以进行运动检测和视频录制的 Android 应用程序。它同时支持 Camera 和 Camera2 API,以提供向后兼容性。我正在使用带有 Camera2 API 的 ImageReader 来进行运动检测。我目前正在请求 JPEG 格式的图像,这非常慢。我知道请求 YUV 图像会更快,但是 YUV 格式是否会因使用的设备而异?我只是想在我放弃优化之前检查一下。

【问题讨论】:

    标签: android jpeg yuv camera2


    【解决方案1】:

    所有设备都将支持旧相机 API(自 API 12 起)的 NV21 和 YV12 格式,对于 camera2,所有设备都将支持 YUV_420_888。

    YUV_420_888是一种灵活的YUV格式,因此可以表示多种底层格式(包括NV21和YV12)。因此,您需要从 ImageReader 检查图像中的像素和行步长,以确保您正确读取 3 个数据平面。

    如果您需要全帧率,则需要在 YUV 中工作 - JPEG 有很多编码开销,并且通常不会以 2-10fps 的速度运行,而 YUV 在预览分辨率下至少会以 30fps 的速度运行。

    【讨论】:

    • 我通过仅使用 Y 并使用设备的最小图像尺寸使其工作。
    【解决方案2】:

    我通过仅使用亮度 (Y) 值解决了这个问题,其格式在设备之间没有变化。出于运动检测的目的,黑白图像就可以了。这也解决了 API Level 21 上使用 ImageReader 时缺少一些 U 和 V 数据的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-12
      • 2017-07-30
      • 1970-01-01
      • 2019-08-28
      • 2018-05-24
      • 2016-08-19
      • 1970-01-01
      • 2016-06-13
      相关资源
      最近更新 更多