Android Camera2:硬件兼容级别

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiyanlgu/article/details/80693707

1. 前言

Camera2是Google在Android 5.0中全新设计的框架,相机模块是和硬件紧密相关的,Camera2中引入很多的特性,厂商的支持情况各有差异,所以Google定义了硬件兼容级别,方便开发者参考。

Google想的很好,但现实是高通,MTK,厂商压根就没支持。

2. 定义

Android Camera2根据硬件的兼容情况定义四种级别:
硬件兼容性:LEGACY < LIMITED < FULL < LEVEL_3

  • LEGACY devices operate in a backwards-compatibility mode for older Android devices, and have very limited capabilities.
  • LIMITED devices represent the baseline feature set, and may also include additional capabilities that are subsets of FULL.
  • FULL devices additionally support per-frame manual control of sensor, flash, lens and post-processing settings, and image capture at a high rate.
  • LEVEL_3 devices additionally support YUV reprocessing and RAW image capture, along with additional output stream configurations.

具体定义如下:

     INFO_SUPPORTED_HARDWARE_LEVEL_3 = 3;
     INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY = 2;
     INFO_SUPPORTED_HARDWARE_LEVEL_FULL = 1;
     INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED = 0;

笔者忍不住吐槽了,Google这个定义当初是怎么确定下来的,太坑爹了,所以所以笔者把这几个值重新定义了:

    //LEGACY < LIMITED < FULL < LEVEL_3
    int MESDK_HW_CHECK_LEVEL_LEGACY = 0;
    int MESDK_HW_CHECK_LEVEL_LIMITED = 1;
    int MESDK_HW_CHECK_LEVEL_FULL = 2;
    int MESDK_HW_CHECK_LEVEL_3 = 3;

    /**
     * 映射Android CameraCharacteristics值设定
     *      INFO_SUPPORTED_HARDWARE_LEVEL_3 = 3;
     *      INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY = 2;
     *      INFO_SUPPORTED_HARDWARE_LEVEL_FULL = 1;
     *      INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED = 0;
     */
    int[] CameraHWLevelMESDK2Android = {2, 0, 1, 3};
    int[] CameraHWLevelAndroid2MESDK = {1, 2, 0, 3};

哎……最后还有“但是”:
但是我们测试发现大部分机型硬件兼容级别都是LEGACY,包括Redmi Note 4(!_!)

红米Note 4是小米公司于2016年8月25日联合中国移动发布千元旗舰新标杆机

3. 参考文献

[1] Android Camera2 API

猜你喜欢

转载自blog.csdn.net/xiyanlgu/article/details/80693707