Camera2 YUV 格式效率及差异

问题描述 投票:0回答:1

我注意到在Camera2中,

StreamConfigurationMap.getOutputFormats()
函数根据手机的硬件返回不同的YUV格式。

例如,我的三星 S21 返回

ImageFormat.YUV_420_888
,以及
ImageFormat.NV21

我想知道这里在效率、兼容性或功能对等方面是否有任何差异?例如。

NV21
支持 60 FPS 流媒体,而 YUV_420_888 不支持?或者这纯粹只是为了稍后使用它的数据布局?

android android-camera android-camera2
1个回答
0
投票

所有camera2设备都必须支持

ImageFormat.YUV_420_888
,因此这是最安全的目标格式。

它是一种灵活的格式,可以描述

NV21
YV21
(或
NV12
YV12
等)布局。

某些设备还希望声明特定格式,例如

NV21
;该设备上的
YUV_420_888
很可能也是完全相同的布局,但如果您选择
NV21
那么您不必查询行和像素步幅。

camera2 API 在大多数情况下不允许根据输出格式指定不同的可用功能。一般的例外是 RAW 输出,因为它直接来自传感器且未经处理,显然电子图像稳定或降噪等功能对 RAW 数据没有影响。但不同的 YUV 格式应该都具有相同的可用功能集。

如果支持格式 X 需要从 ISP 的首选内部格式 Y 进行内部转换,某些 YUV 格式的性能开销可能会低于其他格式。但目前还没有真正的方法来查询这一点。

© www.soinside.com 2019 - 2024. All rights reserved.