RequestAvailableCapabilities 枚举
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
枚举由多个方法 RequestAvailableCapabilities返回的值。
public enum RequestAvailableCapabilities
type RequestAvailableCapabilities =
- 继承
-
RequestAvailableCapabilities
字段
| 名称 | 值 | 说明 |
|---|---|---|
| BackwardCompatible | 0 | 每个相机设备(无论 android.info.supportedHardwareLevel 如何)都支持的最低功能集。 此功能由所有普通设备列出,并指示相机设备具有与较旧 android.hardware.Camera API 的基线要求相当的功能集。 具有DEPTH_OUTPUT功能的设备可能不会列出此功能,表示它们仅支持深度测量,不支持标准颜色输出。 本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。 |
| ManualSensor | 1 | 可以手动控制相机设备(3A 算法,如自动曝光和自动焦点可以绕过)。 相机设备支持对传感器图像获取相关阶段进行基本手动控制。 这意味着可以保证支持以下控件:手动帧持续时间控制;android.sensor.frameDuration;android.sensor.info.maxFrameDuration;手动曝光控制;android.sensor.exposureTime;android.sensor.info.exposureTimeRange;手动敏感度控制;android.sensor.sensitivity;android.sensor.info.sensitivityRange;手动镜头控制(如果镜头可调整);android.lens.*;手动闪存控制(如果存在闪存单元);android.flash.*;手动黑级锁定;android.blackLevel.lock;自动曝光锁;android.control.aeLock 如果启用了上述 3A 算法中的任何一种,则相机设备将准确报告结果中 3A 应用的值。 给定的相机设备还可能支持其他手动传感器控件,但此功能仅涵盖上述控件列表。 如果受支持,android.scaler.streamConfigurationMap 将额外返回每个受支持的大小格式组合的最小帧持续时间大于零。 对于具有LOGICAL_MULTI_CAMERA功能的相机设备,当基础活动物理相机切换、曝光时间、敏感度和镜头属性可能会更改,即使 AE/AF 已锁定也是如此。 但是,用户的整体自动曝光和自动焦点体验将一致。 有关详细信息,请参阅LOGICAL_MULTI_CAMERA功能。
Android 参考。 本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。 |
| ManualPostProcessing | 2 | 可以手动控制相机设备后期处理阶段。 相机设备支持对图像后处理阶段进行基本手动控制。 这意味着可以保证支持以下控件:手动音调地图控件;android.tonemap.curve;android.tonemap.mode;android.tonemap.maxCurvePoints;android.tonemap.gamma;android.tonemap.presetCurve;手动白平衡控制;android.colorCorrection.transform;android.colorCorrection.gains;手动镜头底纹地图控件;android.shading.mode;android.statistics.lensShadingMapMode;android.statistics.lensShadingMap;android.lens.info.shadingMapSize;手动反常量更正控制(如果支持反常量更正);android.colorCorrection.aberrationMode;android.colorCorrection.availableAberrationModes;自动白平衡锁;android.control.awbLock 如果启用了自动白平衡,则相机设备将准确报告结果中 AWB 应用的值。 给定的相机设备还可能支持其他后期处理控件,但此功能仅涵盖上述控件列表。 对于具有LOGICAL_MULTI_CAMERA功能的相机设备,当基础活动物理相机切换、音调图、白平衡和底纹地图时,即使 awb 被锁定也是如此。 但是,用户的整体后期处理体验将一致。 有关详细信息,请参阅LOGICAL_MULTI_CAMERA功能。 本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。 |
| Raw | 3 | 相机设备支持输出 RAW 缓冲区和元数据来解释它们。 支持 RAW 功能的设备既允许保存 DNG 文件,也允许直接应用程序处理原始传感器图像。输出格式支持RAW_SENSOR;RAW_SENSOR流的最大可用分辨率将与 android.sensor.info.pixelArraySize 或 android.sensor.info.preCorrectionActiveArraySize 中的值匹配;相机设备提供所有与 DNG 相关的可选元数据条目
Android 参考。 本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。 |
| PrivateReprocessing | 4 | 相机设备支持零快门滞后重新处理用例。支持一个输入流,即 android.request.maxNumInputStreams == 1;ImageFormat.PRIVATE 作为输出/输入格式受支持,即 ImageFormat.PRIVATE 包含在 StreamConfigurationMap.getInputFormats() 和 StreamConfigurationMap.getOutputFormats 返回的格式列表中():StreamConfigurationMap.getValidOutputFormatsForInput(int) 针对 StreamConfigurationMap.getInputFormats 返回的每个受支持的输入格式返回非空 int[] ;getInputSizes(ImageFormat.PRIVATE)返回的每个大小也包含在 getOutputSizes(ImageFormat.PRIVATE) 中;使用 ImageFormat.PRIVATE 不会导致相对于传感器最大捕获速率的帧速率下降(分辨率为):ImageFormat.PRIVATE 将重新处理为ImageFormat.YUV_420_888和ImageFormat.JPEG格式;对于支持 Y8 格式的 MONOCHROME 相机,ImageFormat.PRIVATE 将重新处理为 ImageFormat.Y8;专用流(两个输入/输出)的最大可用分辨率将与 JPEG 流的最大可用分辨率匹配;静态元数据 android.reprocess.maxCaptureStall;只有以下控件对重新处理请求有效,并且将出现在捕获结果中,相机设备将忽略重新处理请求中的其他控件;android.jpeg.*;android.noiseReduction.mode;android.edge.mode;android.noiseReduction.availableNoiseReductionModes 和 android.edge.availableEdgeModes 都将列出ZERO_SHUTTER_LAG作为受支持的模式 本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。 |
| ReadSensorSettings | 5 | 相机设备支持在内置 3A 算法运行时准确报告许多传感器控件的传感器设置。 这允许报告传感器设置,即使无法手动更改这些设置。 以下控件报告的值保证在 CaptureResult 中可用,包括启用 3A 时:曝光控件;android.sensor.exposureTime;敏感度控制;android.sensor.sensitivity;镜头控件(如果镜头可调整);android.lens.focusDistance;android.lens.aperture 此功能是MANUAL_SENSOR控制功能的子集,如果MANUAL_SENSOR功能可用,则始终包含此功能。 本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。 |
| BurstCapture | 6 | 当后期处理设置设置为 FAST 时,相机设备支持以每秒 20 帧的速度 >捕获高分辨率图像,至少采用未压缩的 YUV 格式。 此外,所有小于 2400 万像素的图像分辨率都可以以每秒 10 帧的速度捕获 >。 在这里,“高分辨率”表示至少 800 万像素,或设备的最大分辨率(以较小者为准)。 更具体地说,这意味着与相机设备的活动阵列大小匹配的大小被列为 StreamConfigurationMap.getOutputSizes(int) 或 StreamConfigurationMap.getHighResolutionOutputSizes(int)中ImageFormat.YUV_420_888格式支持的大小,该格式和大小 <为 1/20 秒,或 <如果图像大小分别小于 2400 万像素,则为 1/10 秒;和 android.control.aeAvailableTargetFpsRanges 条目列出了至少一个 FPS 范围,其中最小 FPS 为 >1/minimumFrameDuration,最大大小YUV_420_888格式。 如果 StreamConfigurationMap.getHighResolutionOutputSizes(int)中列出了该最大大小,则 StreamConfigurationMap.getOutputSizes(int) 中YUV_420_888的分辨率列表至少包含一个分辨率 >= 800 万像素,最小帧持续时间 <为 1/20 秒。 如果设备支持 ImageFormat.RAW10、ImageFormat.RAW12、ImageFormat.RAW14、ImageFormat.Y8,则还可以以与最大大小YUV_420_888分辨率相同的速率捕获这些图像。 如果设备支持PRIVATE_REPROCESSING功能,则YUV_420_888格式的保证也适用于 ImageFormat.PRIVATE 格式。 此外,保证 android.sync.maxLatency 字段的值介于 0 和 4 之间(含)。 android.control.aeLockAvailable 和 android.control.awbLockAvailable 也保证为 true,因此使用这两个锁 ON 的突发捕获将生成一致的图像输出。
Android 参考。 本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。 |
| YuvReprocessing | 7 | 相机设备支持YUV_420_888重新处理用例,类似于PRIVATE_REPROCESSING,此功能要求相机设备支持以下内容:支持一个输入流,即 android.request.maxNumInputStreams == 1;ImageFormat.YUV_420_888支持为输出/输入格式,即 StreamConfigurationMap.getInputFormats() 和 StreamConfigurationMap.getOutputFormats 返回的格式列表中包括YUV_420_888;StreamConfigurationMap.getValidOutputFormatsForInput(int) 针对 StreamConfigurationMap.getInputFormats 返回的每个受支持的输入格式返回非空 int[] ;getInputSizes(YUV_420_888) 返回的每个大小也包含在 getOutputSizes(YUV_420_888):使用ImageFormat.YUV_420_888不会导致相对于传感器最大捕获速率(分辨率)的帧速率下降;ImageFormat.YUV_420_888可重新处理为ImageFormat.YUV_420_888和ImageFormat.JPEG格式;ImageFormat.YUV_420_888流(两个输入/输出)的最大可用分辨率将与ImageFormat.JPEG流的最大可用分辨率匹配;对于支持 Y8 格式的 MONOCHROME 相机,上述YUV_420_888的所有要求也适用于 Y8 格式;静态元数据 android.reprocess.maxCaptureStall;只有以下控件对重新处理请求有效,并且将出现在捕获结果中。 重新处理请求来自与中间ImageFormat.YUV_420_888输出缓冲区关联的原始捕获结果。 相机设备将忽略重新处理请求中的所有其他控件;android.jpeg.*;android.noiseReduction.mode;android.edge.mode;android.reprocess.effectiveExposureFactor;android.noiseReduction.availableNoiseReductionModes 和 android.edge.availableEdgeModes 都将列出ZERO_SHUTTER_LAG作为受支持的模式
Android 参考。 本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。 |
| DepthOutput | 8 | 相机设备可以从其视野生成深度度量。 此功能要求相机设备支持以下内容:ImageFormat.DEPTH16支持为输出格式;可以选择将ImageFormat.DEPTH_POINT_CLOUD作为输出格式;此相机设备和所有具有相同 android.lens.facing 的相机设备将在 CameraCharacteristics 和 CaptureResult 中列出以下校准元数据条目:android.lens.poseTranslation;android.lens.poseRotation;android.lens.intrinsicCalibration;android.lens.distortion;此设备列出了 android.depth.depthIsExclusive 条目;从 Android P 起,此设备列出了 android.lens.poseReference 条目;仅具有DEPTH_OUTPUT功能的受限相机无需支持正常YUV_420_888、Y8、JPEG 和 PRIV 格式输出。 它只需要支持DEPTH16格式 通常,深度输出以比标准颜色捕获慢的帧速率运行,因此DEPTH16和DEPTH_POINT_CLOUD格式通常具有应考虑的停止持续时间(请参阅 StreamConfigurationMap.getOutputStallDuration(int,Size))。 在支持深度和基于颜色的输出的设备上,建议使用重复的突发来启用平滑预览,其中深度输出目标仅包括每 N 帧一次,其中 N 是预览输出速率与深度输出速率之间的比率,包括深度停止时间。
Android 参考。 本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。 |
| ConstrainedHighSpeedVideo | 9 | 设备支持受限的高速视频录制(帧速率 >=120fps)用例。 相机设备将支持 CameraDevice.createConstrainedHighSpeedCaptureSession(List, StateCallback, Handler)创建的高速捕获会话,该会话仅接受 CameraConstrainedHighSpeedCaptureSession.createHighSpeedRequestList(CaptureRequest) 创建的高速请求列表。 相机设备仍可以通过在 android.control.aeAvailableTargetFpsRanges 中播发高速 FPS 范围来支持高速视频流。 在这种情况下,每个帧控制和同步要求的所有正常捕获请求将应用于高速 fps 范围,这与所有其他 fps 范围相同。 此功能描述了专用操作模式的功能,但存在许多限制(请参阅下文),此功能仅针对高速视频录制。 StreamConfigurationMap.getHighSpeedVideoFpsRanges()中指定了支持的高速视频大小和 fps 范围。 若要获取所需的输出帧速率,仅允许应用程序选择 StreamConfigurationMap.getHighSpeedVideoSizes()提供的视频大小和 FPS 范围组合。 fps 范围可以通过 android.control.aeTargetFpsRange 进行控制。 在此功能中,相机设备将分别替代 aeMode、awbMode 和 afMode 到 ON、AUTO 和 CONTINUOUS_VIDEO。 所有后处理块模式控件将被重写为 FAST。 因此,无法手动控制捕获和后期处理参数。 所有其他控件都与 android.control.mode == AUTO 时相同。 这意味着所有其他 android.control.* 字段将继续工作,例如:android.control.aeTargetFpsRange;android.control.aeExposureCompensation;android.control.aeLock;android.control.awbLock;android.control.effectMode;android.control.aeRegions;android.control.afRegions;android.control.awbRegions;android.control.afTrigger;android.control.aePrecaptureTrigger;android.control.zoomRatio 在 android.control.*之外,以下控件将正常工作:android.flash.mode(仅 TORCH 模式,仍捕获的自动闪存将不起作用,因为 aeMode 为 ON):android.lens.opticalStabilizationMode(如果支持);android.scaler.cropRegion;android.statistics.faceDetectMode (如果支持) 对于高速录制用例,实际支持的最大帧速率可能低于相机可以输出的内容,具体取决于图像数据的目标图面。 例如,如果目标图面来自视频编码器,则应用程序需要检查视频编码器是否能够支持给定视频大小的高帧速率,或者最终会降低录制帧速率。 如果目标图面来自预览窗口,则实际预览帧速率将受屏幕刷新率的约束。 在此模式下,相机设备仅支持最多 2 个高速同时输出图面(预览和录制图面)。 仅当以下所有条件均为 true 时,上述控件才有效:应用程序通过 CameraDevice.createConstrainedHighSpeedCaptureSession(List、StateCallback、Handler)创建不超过 2 个表面的相机捕获会话。 目标图面必须是预览图面(来自 SurfaceView 或 SurfaceTexture)或录制图面(来自 MediaRecorder.getSurface() 或 MediaCodec.createInputSurface()):流大小是从 StreamConfigurationMap.getHighSpeedVideoSizes 报告的大小中选择的();FPS 范围是从 StreamConfigurationMap.getHighSpeedVideoFpsRanges() 中选择的 如果未满足上述条件,CameraDevice.createConstrainedHighSpeedCaptureSession(List、StateCallback、Handler)将失败。 切换到具有不同最大 FPS 的 FPS 范围可能会触发某些相机设备重新配置,这可能会导致额外的延迟。 建议应用程序在高速流式处理期间尽可能多地避免不必要的最大目标 FPS 更改。 本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。 |
| MotionTracking | 10 | 相机设备支持 android.control.captureIntent 的MOTION_TRACKING值,将最大曝光时间限制为 20 毫秒。 这会限制捕获图像的动作模糊,从而为图像稳定或增强现实等用例提供更好的图像跟踪结果。
Android 参考。 本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。 |
| LogicalMultiCamera | 11 | 相机设备是一个逻辑相机,由两台或更多个物理相机提供支持。 在 API 级别 28 中,物理相机还必须通过 CameraManager.getCameraIdList()向应用程序公开。 从 API 级别 29 开始:某些或所有物理相机可能不会独立公开给应用程序,在这种情况下,物理相机 ID 在 CameraManager.getCameraIdList()中不可用。 但应用程序仍可以通过调用 CameraManager.getCameraCharacteristics(String) 来查询物理相机的特征:如果物理相机隐藏在相机 ID 列表中,则必须使用物理流通过逻辑相机支持该物理相机的必需流组合。 一个例外是,在 API 级别 30 中,物理相机可能通过 CameraManager.AvailabilityCallback.onPhysicalCameraUnavailable 回调不可用 不能保证逻辑流和物理流或不同物理相机的物理流的组合。 但是,如果相机设备支持 CameraDevice.isSessionConfigurationSupported,则应用程序必须能够通过调用 CameraDevice.isSessionConfigurationSupported 来查询涉及物理流的流组合是否受支持。 相机应用程序不应假定系统中最多有 1 个后置摄像头和 1 个前置摄像头。 对于在前后相机之间切换的应用程序,建议在受支持的相机设备列表中的第一个后置摄像头和第一个前置摄像头之间切换。 此功能要求相机设备支持以下内容:基础物理相机的 ID 通过 CameraCharacteristics.getPhysicalCameraIds 返回():此相机设备必须列出 CameraCharacteristics 中的静态元数据 android.logicalMultiCamera.sensorSyncType;基础物理相机的静态元数据必须列出以下条目,以便应用程序可以关联物理流中的像素:android.lens.poseReference;android.lens.poseRotation;android.lens.poseTranslation;android.lens.intrinsicCalibration;android.lens.distortion;逻辑设备和物理设备的SENSOR_INFO_TIMESTAMP_SOURCE必须相同;逻辑相机必须是 LIMITED 或更高版本的设备 逻辑相机设备的动态元数据可能包含 android.logicalMultiCamera.activePhysicalId,以通知当前活动物理相机 ID 的应用程序。活动物理相机是逻辑相机的主图像数据输出(YUV 或 RAW)和元数据来自的物理相机。 此外,这可用作用于输出到 RAW 流的物理相机的指示,或者仅当物理相机支持 RAW 时,应用程序应请求的物理 RAW 流。 以下逻辑相机的静态元数据标记描述了默认活动物理相机。 如果应用程序直接使用从模板生成的请求,则默认使用活动物理相机。 所有模板都将默认为同一个活动物理相机。android.sensor.info.sensitivityRange;android.sensor.info.colorFilterArrangement;android.sensor.info.exposureTimeRange;android.sensor.info.maxFrameDuration;android.sensor.info.physicalSize;android.sensor.info.whiteLevel;android.sensor.info.lensShadingApplied;android.sensor.referenceIlluminant1;android.sensor.referenceIlluminant2;android.sensor.calibrationTransform1;android.sensor.calibrationTransform2;android.sensor.colorTransform1;android.sensor.colorTransform2;android.sensor.forwardMatrix1;android.sensor.forwardMatrix2;android.sensor.blackLevelPattern;android.sensor.maxAnalogSensitivity;android.sensor.opticalBlackRegions;android.sensor.availableTestPatternModes;android.lens.info.hyperfocalDistance;android.lens.info.minimumFocusDistance;android.lens.info.focusDistanceCalibration;android.lens.poseRotation;android.lens.poseTranslation;android.lens.intrinsicCalibration;android.lens.poseReference;android.lens.distortion 非 RAW 物理流的视场不得小于非 RAW 逻辑流或物理相机的最大视场(以较小者为准)。 应用程序应检查物理捕获结果元数据和物理相机特征,了解物理流是如何裁剪或缩放的。 请参阅 android.lens.focalLength,了解如何计算视野。 通常,活动物理相机的物理流具有与逻辑流相同的视场。 但是,来自非活动物理相机的物理流可能也是如此。 例如,如果逻辑相机具有宽超宽的配置,其中宽镜头是默认的,当裁剪区域设置为逻辑相机的活动阵列大小(从 Android 11 开始设置为 1.0 时),超宽相机的物理流可能更倾向于将具有较大视场的图像放在宽相机之外,以便更好的立体声匹配边距或更可靠的运动跟踪。 同时,物理非 RAW 流的视野不得小于所请求的裁剪区域和缩放比例,只要它在物理镜头的能力范围内。 例如,对于具有宽镜头配置的逻辑相机,其中宽镜头是默认值,如果逻辑相机的裁剪区域设置为最大大小,缩放比例设置为 1.0,则远程镜头的物理流将配置为其最大大小裁剪区域(无缩放)。 已弃用:在 Android 11 之前,所有非 RAW 物理流的视野不能大于非 RAW 逻辑流。 如果逻辑相机具有宽超宽镜头配置,其中宽镜头为默认值,当逻辑相机的裁剪区域设置为最大大小时,超宽镜头的物理流的 FOV 将与逻辑流相同,使裁剪区域小于其活动阵列大小以补偿较小的焦点长度。 对于逻辑相机,基础物理相机通常具有不同的 RAW 功能(例如分辨率或 CFA 模式)。 应用程序可通过两种方式从逻辑相机捕获 RAW 图像:如果逻辑相机具有 RAW 功能,则应用程序可以像以前一样创建和使用 RAW 流。 如果配置了 RAW 流,为了保持向后兼容性,相机设备可确保默认活动物理相机保持活动状态,并且不会切换到其他物理相机。 (一个例外是,如果逻辑相机由相同的图像传感器组成,并播发多个焦点,由于不同的镜头,相机设备可能会基于应用程序设置的焦点从不同的物理相机生成 RAW 图像。这种向后兼容的方法通常会导致光学缩放、远程摄影镜头或超宽镜头丢失:或者,如果设备支持,MultiResolutionImageReader 可用于从其中一个基础物理相机(具体取决于当前缩放级别)捕获 RAW 图像。 由于不同的物理相机可能具有不同的 RAW 特征,因此应用程序需要使用活动物理相机的特征和结果元数据作为相关 RAW 元数据 向后兼容相机功能所需的捕获请求和结果元数据标记将仅基于逻辑相机功能。 另一方面,当 HAL 决定在机罩下具有不同特征的物理相机之间切换时,将手动捕获控件(传感器或后处理)与逻辑相机结合使用可能会导致意外行为。 例如,当应用程序在放大时手动设置曝光时间和敏感度时,相机图像的亮度可能会突然改变,因为 HAL 从一个物理相机切换到另一个物理相机。 本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。 |
| Monochrome | 12 | 相机设备是一个单色相机,不包含颜色筛选器阵列,对于YUV_420_888流,你和 V 平面上的像素值均为 128。 MONOCHROME 相机必须支持其设备级别和功能所需的保证流组合。 此外,如果单色相机设备支持 Y8 格式,则与YUV_420_888相关的所有必需流组合要求也适用于 Y8。 对于拜尔相机设备,Y8 没有必需的流组合要求。 从 Android Q 开始,MONOCHROME 相机的SENSOR_INFO_COLOR_FILTER_ARRANGEMENT将是 MONO 或 NIR。
Android 参考。 本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。 |
| SecureImageData | 13 | 相机设备能够将图像数据写入 Android 用户空间或 Android 内核无法访问的内存区域,并且只能访问受信任的执行环境(TEE)。
Android 参考。 本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。 |
| SystemCamera | 14 | 相机设备只能由 Android 的系统组件和特权应用程序访问。 除了 android.permission.CAMERA 之外,进程还需要具有android.permission.SYSTEM_CAMERA才能连接到此相机设备。
Android 参考。 本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。 |
| OfflineProcessing | 15 | 相机设备支持OFFLINE_PROCESSING用例。 借助OFFLINE_PROCESSING功能,应用程序可以通过调用 CameraCaptureSession#switchToOffline 方法将正在进行的捕获会话切换到脱机模式,并指定要保持脱机模式的流。 然后,相机将停止当前处于活动状态的重复请求,准备某些请求进入脱机模式,并返回脱机会话对象。 switchToOffline 调用返回后,原始捕获会话处于关闭状态,就好像已调用 CameraCaptureSession#close 方法一样。 在脱机模式下,所有飞行请求将继续在后台处理,应用程序可以立即关闭相机或创建新的捕获会话,而不会丢失这些请求的输出图像和捕获结果。 当相机设备正在处理脱机请求时,它可能无法支持在没有脱机请求的情况下可以支持的所有流配置。 发生这种情况时,createCaptureSession 方法调用将失败。 保证以配置正常工作,而不会遇到资源繁忙异常:一个正在进行的脱机会话:以 YUV 或 JPEG 格式的一个输出图面为目标,任何解决方法;活动相机捕获会话:;一个预览图面(SurfaceView 或 SurfaceTexture)最大宽度为 1920;一个 YUV ImageReader 图面最大宽度为 1920;一个 Jpeg ImageReader,任何分辨率:如果有任何正在进行的脱机会话,允许相机设备将 JPEG 输出速度降低 50%;如果设备支持PRIVATE_REPROCESSING,则采用专用格式的一对 ImageWriter/ImageReader 图面,其分辨率与上述 JPEG ImageReader 分辨率相同;或者,上面的活动相机会话可以用以下参数设置替换旧相机:预览大小高达 1920 宽度;预览回调大小,最大宽度为 1920;视频大小高达 1920 宽度;图片大小,任何分辨率:如果有任何正在进行的脱机会话,允许相机设备将 JPEG 输出速度降低 50%
Android 参考。 本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。 |
| UltraHighResolutionSensor | 16 | 除了 android.scaler.streamConfigurationMap 中所述的图像大小外,此相机设备还能够生成超高分辨率图像。 它可以在“默认”模式和“最大分辨率”模式下运行。 它通常通过在“默认”模式下装箱像素,而不是在“最大分辨率”模式下装箱它们来执行此操作。 android.scaler.streamConfigurationMap 描述了“默认”模式下支持的流。 android.scaler.streamConfigurationMapMaximumResolution 描述了“最大分辨率”模式下支持的流配置。 具有此功能的相机设备(android.sensor.info.pixelArraySize)的最大分辨率模式像素数组大小至少为 2400 万像素。 本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。 |
| RemosaicReprocessing | 17 | 设备支持使用 android.sensor.info.binningFactor 提供的拜仁模式(同一颜色筛选器的 x n 个像素组)从RAW_SENSOR格式重新处理到重新调整的常规拜仁模式。 此功能仅适用于具有REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR功能的设备。 当REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR设备不播发此功能时,ImageFormat.RAW_SENSOR 映像将已有常规的拜器模式。 如果在 CaptureRequest 中请求RAW_SENSOR流与另一个非 RAW 流(如果 android.sensor.pixelMode 设置为SENSOR_PIXEL_MODE_MAXIMUM_RESOLUTION时支持多个流),RAW_SENSOR流将具有常规的拜器模式。 此功能要求相机设备支持以下内容:下面提到的 StreamConfigurationMap 是指 android.scaler.streamConfigurationMapMaximumResolution 所描述的:支持一个输入流,即 android.request.maxNumInputStreams == 1;ImageFormat.RAW_SENSOR 作为输出/输入格式受支持,即ImageFormat.RAW_SENSOR 包含在 StreamConfigurationMap.getInputFormats() 和 StreamConfigurationMap.getOutputFormats 返回的格式列表中():StreamConfigurationMap.getValidOutputFormatsForInput(int) 针对 StreamConfigurationMap.getInputFormats 返回的每个受支持的输入格式返回非空 int[] ;getInputSizes(ImageFormat.RAW_SENSOR)返回的每个大小也包含在 getOutputSizes(ImageFormat.RAW_SENSOR);使用 ImageFormat.RAW_SENSOR 不会导致相对于传感器最大捕获速率的帧速率下降(分辨率为):如果请求具有具有具有 ImageFormat.RAW_SENSOR 格式的输入目标,则不适用 CaptureRequest 控件 本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。 |
| DynamicRangeTenBit | 18 | 设备根据 DynamicRangeProfiles.getSupportedProfiles() 中指定的动态范围配置文件支持一个或多个 10 位相机输出。 可以通过 OutputConfiguration.setDynamicRangeProfile(long)将其配置为捕获会话初始化的一部分。 启用此功能的相机还必须支持以下内容:配置文件 DynamicRangeProfiles.HLG10;根据文档,此特定功能的所有必需流组合;如果设备无法捕获同一捕获请求中受支持的标准 8 位和/或 10 位动态范围配置文件的一些组合,则必须将这些约束列在 DynamicRangeProfiles.getProfileCaptureRequestConstraints(long):CameraCharacteristics.REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILE中列出的推荐的动态范围配置文件 本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。 |
| StreamUseCase | 19 | 相机设备支持通过 OutputConfiguration.setStreamUseCase(long) 选择每流用例,以便设备可以优化特定用户方案的相机管道参数,例如优化、传感器模式或 ISP 设置。 此功能的一些示例用法是:将高质量 YUV 捕获与常规 YUV 流区分开来,其中图像质量可能不如 JPEG 流,或者:使用一个流提供多个用途:取景器、视频录制和仍捕获。 这通常与希望将编辑同样应用于预览、保存的图像和已保存视频的应用程序一样 此功能要求相机设备支持以用例:在应用程序未设置流用例的情况下实现向后兼容性的 DEFAULT;实时查看器和应用内图像分析预览;STILL_CAPTURE拍摄静止照片;用于录制视频剪辑的VIDEO_RECORD;PREVIEW_VIDEO_STILL用于取景器、视频录制和仍捕获的单个流;VIDEO_CALL长时间运行的视频呼叫 CameraCharacteristics.SCALER_AVAILABLE_STREAM_USE_CASES列出了所有受支持的流用例。 请参阅涉及流用例的强制流组合的准则,这些用例也可以通过 MandatoryStreamCombination 查询。
Android 参考。 本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。 |
| ColorSpaceProfiles | 20 | 设备支持查询相机支持的颜色空间、图像格式和动态范围配置文件的可能组合,并通过 SessionConfiguration.setColorSpace(Named)请求会话的特定颜色空间。 启用此功能的相机也可能不实现动态范围配置文件。 否则,ColorSpaceProfiles.getSupportedDynamicRangeProfiles(Named, int) 将仅返回 DynamicRangeProfiles.STANDARD 和 ColorSpaceProfiles.getSupportedColorSpacesForDynamicRange(int, long)将假定在所有颜色空间和图像格式组合中都支持 DynamicRangeProfiles.STANDARD 配置文件。 本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。 |
注解
本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。