언어

RequestAvailableCapabilities 열거형

정의

의 여러 메서드에서 반환된 값을 열거합니다 RequestAvailableCapabilities.

public enum RequestAvailableCapabilities
type RequestAvailableCapabilities = 
상속
RequestAvailableCapabilities

필드

속성 Description
BackwardCompatible 0

android.info.supportedHardwareLevel에 관계없이 모든 카메라 디바이스에서 지원하는 최소한의 기능 집합입니다.

이 기능은 모든 일반 디바이스에서 나열되며 카메라 디바이스에 이전 android.hardware.Camera API의 기준 요구 사항과 비슷한 기능 집합이 있음을 나타냅니다.

DEPTH_OUTPUT 기능이 있는 디바이스는 표준 색 출력이 아닌 깊이 측정만 지원함을 나타내는 이 기능을 나열하지 않을 수 있습니다.

에 대한 android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLEAndroid 참조

이 페이지의 일부는 만들고 공유한 작업을 기반으로 하며 에 설명된 조건에 따라 사용됩니다.

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은 지원되는 각 크기 형식 조합에 대해 0보다 큰 최소 프레임 기간을 추가로 반환합니다.

LOGICAL_MULTI_CAMERA 기능이 있는 카메라 디바이스의 경우 AE/AF가 잠긴 경우에도 기본 활성 물리적 카메라 스위치, exposureTime, 민감도 및 렌즈 속성이 변경될 수 있습니다. 그러나 사용자에 대한 전반적인 자동 노출 및 자동 포커스 환경은 일관됩니다. 자세한 내용은 LOGICAL_MULTI_CAMERA 기능을 참조하세요.

에 대한 android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSORAndroid 참조

이 페이지의 일부는 만들고 공유한 작업을 기반으로 하며 에 설명된 조건에 따라 사용됩니다.

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 기능을 참조하세요.

에 대한 android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_MANUAL_POST_PROCESSINGAndroid 참조

이 페이지의 일부는 만들고 공유한 작업을 기반으로 하며 에 설명된 조건에 따라 사용됩니다.

Raw 3

카메라 디바이스는 RAW 버퍼 및 메타데이터를 해석하기 위한 출력을 지원합니다.

RAW 기능을 지원하는 디바이스를 사용하면 DNG 파일을 저장하고 원시 센서 이미지를 직접 애플리케이션 처리할 수 있습니다. RAW_SENSOR 출력 형식으로 지원됩니다. RAW_SENSOR 스트림에 사용할 수 있는 최대 해상도는 android.sensor.info.pixelArraySize 또는 android.sensor.info.preCorrectionActiveArraySize의 값과 일치합니다. 모든 DNG 관련 선택적 메타데이터 항목은 카메라 디바이스에서 제공합니다.

에 대한 android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_RAWAndroid 참조

이 페이지의 일부는 만들고 공유한 작업을 기반으로 하며 에 설명된 조건에 따라 사용됩니다.

PrivateReprocessing 4

카메라 디바이스는 제로 셔터 지연 재처리 사용 사례를 지원합니다.; 하나의 입력 스트림, 즉 android.request.maxNumInputStreams == 1이 지원됩니다. ImageFormat.PRIVATE은 출력/입력 형식으로 지원됩니다. 즉, ImageFormat.PRIVATE은 StreamConfigurationMap.getInputFormats() 및 StreamConfigurationMap.getOutputFormats();에서 반환하는 형식 목록에 포함됩니다. StreamConfigurationMap.getValidOutputFormatsForInput(int)은 StreamConfigurationMap.getInputFormats(); getInputSizes(ImageFormat.PRIVATE)에서 반환되는 각 크기는 getOutputSizes(ImageFormat.PRIVATE)에도 포함됩니다. ImageFormat.PRIVATE을 사용하면 센서의 최대 캡처 속도(해당 해상도)에 비해 프레임 속도가 떨어지지 않습니다. ImageFormat.PRIVATE은 ImageFormat.YUV_420_888 형식과 ImageFormat.JPEG 형식으로 다시 처리할 수 있습니다. Y8 형식을 지원하는 MONOCHROME 카메라의 경우 ImageFormat.PRIVATE을 ImageFormat.Y8로 다시 처리할 수 있습니다. PRIVATE 스트림에 사용할 수 있는 최대 해상도(입력/출력 모두)는 JPEG 스트림의 사용 가능한 최대 해상도와 일치합니다. 정적 메타데이터 android.reprocess.maxCaptureStall; 아래 컨트롤만 요청을 재처리하는 데 효과적이며 캡처 결과에 표시되며, 재처리 요청의 다른 컨트롤은 카메라 디바이스에서 무시됩니다. android.jpeg.*; android.noiseReduction.mode; android.edge.mode; android.noiseReduction.availableNoiseReductionModes 및 android.edge.availableEdgeModes는 모두 지원되는 모드로 ZERO_SHUTTER_LAG 나열합니다.

에 대한 android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_PRIVATE_REPROCESSINGAndroid 참조

이 페이지의 일부는 만들고 공유한 작업을 기반으로 하며 에 설명된 조건에 따라 사용됩니다.

ReadSensorSettings 5

카메라 디바이스는 기본 제공 3A 알고리즘이 실행되는 동안 많은 센서 컨트롤에 대한 센서 설정을 정확하게 보고할 수 있습니다. 이렇게 하면 이러한 설정을 수동으로 변경할 수 없는 경우에도 센서 설정을 보고할 수 있습니다.

다음 컨트롤에 대해 보고된 값은 3A를 사용하는 경우를 포함하여 CaptureResult에서 사용할 수 있도록 보장됩니다. 노출 컨트롤; android.sensor.exposureTime; 민감도 제어; android.sensor.sensitivity; 렌즈 컨트롤(렌즈를 조정할 수 있는 경우); android.lens.focusDistance; android.lens.aperture

이 기능은 MANUAL_SENSOR 제어 기능의 하위 집합이며 MANUAL_SENSOR 기능을 사용할 수 있는 경우 항상 포함됩니다.

에 대한 android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_READ_SENSOR_SETTINGSAndroid 참조

이 페이지의 일부는 만들고 공유한 작업을 기반으로 하며 에 설명된 조건에 따라 사용됩니다.

BurstCapture 6

카메라 디바이스는 후처리 설정이 FAST로 설정된 경우 압축되지 않은 YUV 형식으로 초당 20프레임의 고해상도 이미지 >캡처를 지원합니다. 또한 24메가픽셀 미만의 모든 이미지 해상도는 초당 10프레임으로 캡처 >할 수 있습니다. 여기서 '고해상도'는 최소 8메가픽셀 또는 디바이스의 최대 해상도 중 더 작은 해상도를 의미합니다.

더 구체적으로 말하자면, 카메라 디바이스의 활성 배열 크기와 일치하는 크기가 StreamConfigurationMap.getOutputSizes(int) 또는 StreamConfigurationMap.getHighResolutionOutputSizes(int) 중 하나에서 ImageFormat.YUV_420_888 형식에 대해 지원되는 크기로 나열되고 해당 형식의 최소 프레임 기간과 크기 <는 1/20초 또는 <= 이미지 크기가 각각 24메가픽셀보다 작은 경우 1/10 s입니다. 및 android.control.aeAvailableTargetFpsRanges 항목은 최소 FPS가 최대 크기 YUV_420_888 형식에 대해 = 1/minimumFrameDuration인 FPS >범위를 하나 이상 나열합니다. 해당 최대 크기가 StreamConfigurationMap.getHighResolutionOutputSizes(int)에 나열된 경우 StreamConfigurationMap.getOutputSizes(int)의 YUV_420_888 해상도 목록에는 최소 프레임 기간이 <= 1/20초인 해상도 >= 8메가픽셀이 하나 이상 포함됩니다.

디바이스에서 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.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_BURST_CAPTUREAndroid 참조

이 페이지의 일부는 만들고 공유한 작업을 기반으로 하며 에 설명된 조건에 따라 사용됩니다.

YuvReprocessing 7

카메라 디바이스는 PRIVATE_REPROCESSING 마찬가지로 YUV_420_888 재처리 사용 사례를 지원합니다. 이 기능을 사용하려면 카메라 디바이스가 다음을 지원해야 합니다. 하나의 입력 스트림이 지원됩니다. 즉, android.request.maxNumInputStreams == 1; ImageFormat.YUV_420_888 출력/입력 형식으로 지원됩니다. 즉, YUV_420_888 StreamConfigurationMap.getInputFormats() 및 StreamConfigurationMap.getOutputFormats(); StreamConfigurationMap.getValidOutputFormatsForInput(int)은 StreamConfigurationMap.getInputFormats(); 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.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSINGAndroid 참조

이 페이지의 일부는 만들고 공유한 작업을 기반으로 하며 에 설명된 조건에 따라 사용됩니다.

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 기능만 있는 LIMITED 카메라는 일반 YUV_420_888, Y8, JPEG 및 PRIV 형식 출력을 지원할 필요가 없습니다. DEPTH16 형식만 지원해야 합니다.

일반적으로 깊이 출력은 표준 색 캡처보다 느린 프레임 속도로 작동하므로 DEPTH16 및 DEPTH_POINT_CLOUD 형식은 일반적으로 고려해야 하는 중단 기간을 갖습니다(StreamConfigurationMap.getOutputStallDuration(int, Size) 참조). 깊이 및 색 기반 출력을 모두 지원하는 디바이스에서 부드러운 미리 보기를 사용하도록 설정하려면 반복 버스트를 사용하는 것이 좋습니다. 여기서 깊이 출력 대상은 N 프레임마다 한 번만 포함되며 여기서 N은 깊이 중단 시간을 포함하여 미리 보기 출력 속도와 깊이 출력 속도 사이의 비율입니다.

에 대한 android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_DEPTH_OUTPUTAndroid 참조

이 페이지의 일부는 만들고 공유한 작업을 기반으로 하며 에 설명된 조건에 따라 사용됩니다.

ConstrainedHighSpeedVideo 9

이 장치는 제한된 고속 비디오 녹화(프레임 속도 >=120fps) 사용 사례를 지원합니다. 카메라 디바이스는 CameraConstrainedHighSpeedRequestList(CaptureRequest)에서 만든 고속 요청 목록만 허용하는 CameraDevice.createConstrainedHighSpeedCaptureSession(List, StateCallback, Handler)에서 만든 고속 캡처 세션을 지원합니다.

카메라 디바이스는 android.control.aeAvailableTargetFpsRanges에서 고속 FPS 범위를 보급하여 고속 비디오 스트리밍을 계속 지원할 수 있습니다. 이 경우 프레임 컨트롤 및 동기화 요구 사항당 모든 일반 캡처 요청은 다른 모든 fps 범위와 동일한 고속 fps 범위에 적용됩니다. 이 기능은 고속 비디오 녹화를 대상으로 하는 많은 제한 사항(아래 참조)이 있는 특수한 운영 모드의 기능을 설명합니다.

지원되는 고속 비디오 크기 및 fps 범위는 StreamConfigurationMap.getHighSpeedVideoFpsRanges()에 지정됩니다. 원하는 출력 프레임 속도를 얻기 위해 애플리케이션은 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(지원되는 경우)

고속 녹화 사용 사례의 경우 실제 최대 지원 프레임 속도는 이미지 데이터의 대상 Surface에 따라 카메라가 출력할 수 있는 것보다 낮을 수 있습니다. 예를 들어 대상 화면이 비디오 인코더에서 온 경우 애플리케이션은 비디오 인코더가 지정된 비디오 크기에 대해 높은 프레임 속도를 지원할 수 있는지, 아니면 녹화 프레임 속도가 낮아지는지 확인해야 합니다. 대상 화면이 미리 보기 창에서 온 경우 실제 미리 보기 프레임 속도는 화면 새로 고침 속도에 의해 제한됩니다.

카메라 디바이스는 이 모드에서 최대 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 변경을 최대한 피하는 것이 좋습니다.

에 대한 android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_CONSTRAINED_HIGH_SPEED_VIDEOAndroid 참조

이 페이지의 일부는 만들고 공유한 작업을 기반으로 하며 에 설명된 조건에 따라 사용됩니다.

MotionTracking 10

카메라 디바이스는 최대 노출 시간을 20ms로 제한하는 android.control.captureIntent의 MOTION_TRACKING 값을 지원합니다.

이렇게 하면 캡처 이미지의 동작 흐림이 제한되어 이미지 안정화 또는 증강 현실과 같은 사용 사례에 대한 이미지 추적 결과가 향상됩니다.

에 대한 android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_MOTION_TRACKINGAndroid 참조

이 페이지의 일부는 만들고 공유한 작업을 기반으로 하며 에 설명된 조건에 따라 사용됩니다.

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 동일해야 합니다. 논리 카메라는 제한 또는 그 이상 디바이스여야 합니다.

논리 카메라 디바이스의 동적 메타데이터에는 현재 활성 물리적 카메라 ID를 애플리케이션에 알리기 위해 android.logicalMultiCamera.activePhysicalId가 포함될 수 있습니다. 활성 물리적 카메라는 논리 카메라의 기본 이미지 데이터 출력(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 스트림이 구성된 경우 이전 버전과의 호환성을 유지하기 위해 카메라 디바이스는 기본 활성 물리적 카메라가 활성 상태로 유지되고 다른 물리적 카메라로 전환되지 않도록 합니다. (한 가지 예외는 논리 카메라가 동일한 이미지 센서로 구성되고 다른 렌즈로 인해 여러 focalLength를 보급하는 경우 카메라 디바이스가 애플리케이션에서 설정하는 focalLength에 따라 다른 물리적 카메라에서 RAW 이미지를 생성할 수 있다는 것입니다.) 이 이전 버전과 호환되는 접근 방식은 일반적으로 광학 확대/축소, 망원 렌즈 또는 울트라 와이드 렌즈의 손실을 초래합니다. 또는 디바이스에서 지원하는 경우 MultiResolutionImageReader를 사용하여 기본 물리적 카메라 중 하나에서 RAW 이미지를 캡처할 수 있습니다(현재 확대/축소 수준에 따라 다름). 물리적 카메라는 서로 다른 RAW 특성을 가질 수 있으므로 애플리케이션은 관련 RAW 메타데이터에 활성 물리적 카메라의 특성 및 결과 메타데이터를 사용해야 합니다.

이전 버전과 호환되는 카메라 기능에 필요한 캡처 요청 및 결과 메타데이터 태그는 논리적 카메라 기능만을 기반으로 합니다. 반면에 논리 카메라와 함께 수동 캡처 컨트롤(센서 또는 후처리)을 사용하면 HAL이 내부적으로 서로 다른 특성을 가진 물리적 카메라 간에 전환하기로 결정할 때 예기치 않은 동작이 발생할 수 있습니다. 예를 들어 확대하는 동안 애플리케이션에서 노출 시간과 민감도를 수동으로 설정하면 HAL이 실제 카메라에서 다른 카메라로 전환되므로 카메라 이미지의 밝도가 갑자기 변경될 수 있습니다.

에 대한 android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERAAndroid 참조

이 페이지의 일부는 만들고 공유한 작업을 기반으로 하며 에 설명된 조건에 따라 사용됩니다.

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.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_MONOCHROMEAndroid 참조

이 페이지의 일부는 만들고 공유한 작업을 기반으로 하며 에 설명된 조건에 따라 사용됩니다.

SecureImageData 13

카메라 디바이스는 Android 사용자 영역 또는 Android 커널에 액세스할 수 없는 메모리 영역에 이미지 데이터를 쓸 수 있으며 TEE(신뢰할 수 있는 실행 환경)에서만 액세스할 수 있습니다.

에 대한 android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_SECURE_IMAGE_DATAAndroid 참조

이 페이지의 일부는 만들고 공유한 작업을 기반으로 하며 에 설명된 조건에 따라 사용됩니다.

SystemCamera 14

카메라 디바이스는 Android의 시스템 구성 요소 및 권한 있는 애플리케이션에서만 액세스할 수 있습니다. 이 카메라 디바이스에 연결하려면 프로세스에 android.permission.CAMERA 외에 android.permission.SYSTEM_CAMERA 있어야 합니다.

에 대한 android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_SYSTEM_CAMERAAndroid 참조

이 페이지의 일부는 만들고 공유한 작업을 기반으로 하며 에 설명된 조건에 따라 사용됩니다.

OfflineProcessing 15

카메라 디바이스는 OFFLINE_PROCESSING 사용 사례를 지원합니다.

OFFLINE_PROCESSING 기능을 사용하면 애플리케이션이 CameraCaptureSession#switchToOffline 메서드를 호출하여 진행 중인 캡처 세션을 오프라인 모드로 전환하고 오프라인 모드로 유지할 스트림을 지정할 수 있습니다. 그러면 카메라가 현재 활성 반복 요청을 중지하고, 일부 요청이 오프라인 모드로 전환되도록 준비하고, 오프라인 세션 개체를 반환합니다. switchToOffline 호출이 반환되면 원래 캡처 세션은 CameraCaptureSession#close 메서드가 호출된 것처럼 닫힌 상태입니다. 오프라인 모드에서는 모든 수신 요청이 백그라운드에서 계속 처리되며, 애플리케이션은 해당 요청의 출력 이미지 및 캡처 결과를 잃지 않고 카메라를 즉시 닫거나 새 캡처 세션을 만들 수 있습니다.

카메라 디바이스가 오프라인 요청을 처리하는 동안 오프라인 요청 없이는 지원할 수 있는 모든 스트림 구성을 지원하지 못할 수 있습니다. 이 경우 createCaptureSession 메서드 호출이 실패합니다. 리소스 사용 중 예외에 도달하지 않고 다음 스트림 구성이 작동하도록 보장됩니다. 진행 중인 오프라인 세션 1개: YUV 또는 JPEG 형식의 출력 표면 하나를 대상으로 지정하고, 해결 방법 활성 카메라 캡처 세션:; 최대 1920 너비의 하나의 미리 보기 화면(SurfaceView 또는 SurfaceTexture) 1920 년 너비까지 하나의 YUV ImageReader 표면; 하나의 Jpeg ImageReader, 모든 해상도: 카메라 디바이스는 진행 중인 오프라인 세션이 있는 경우 JPEG 출력 속도를 50% 늦출 수 있습니다. 디바이스가 PRIVATE_REPROCESSING 지원하는 경우 위의 JPEG ImageReader 해상도와 크거나 같은 해상도로 한 쌍의 ImageWriter/ImageReader 표면이 프라이빗 형식으로 표시됩니다. 또는 위의 활성 카메라 세션을 다음 매개 변수 설정을 사용하여 레거시 카메라로 바꿀 수 있습니다. 최대 1920 너비의 미리 보기 크기 최대 1920 너비의 콜백 크기를 미리 봅니다. 비디오 크기는 최대 1920 너비입니다. 그림 크기, 해상도: 진행 중인 오프라인 세션이 있는 경우 카메라 디바이스에서 JPEG 출력 속도를 50% 늦출 수 있습니다.

에 대한 android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_OFFLINE_PROCESSINGAndroid 참조

이 페이지의 일부는 만들고 공유한 작업을 기반으로 하며 에 설명된 조건에 따라 사용됩니다.

UltraHighResolutionSensor 16

이 카메라 디바이스는 android.scaler.streamConfigurationMap에 설명된 이미지 크기 외에도 초고해상도 이미지를 생성할 수 있습니다. '기본' 모드 및 '최대 해상도' 모드에서 작동할 수 있습니다. 일반적으로 '기본' 모드에서 픽셀을 범주화하고 '최대 해상도' 모드로 범주화하지 않음으로써 이 작업을 수행합니다. android.scaler.streamConfigurationMap은 '기본' 모드에서 지원되는 스트림에 대해 설명합니다. '최대 해상도' 모드에서 지원되는 스트림 구성은 android.scaler.streamConfigurationMapMaximumResolution에서 설명합니다. 이 기능을 사용하는 카메라 디바이스(android.sensor.info.pixelArraySize)의 최대 해상도 모드 픽셀 배열 크기는 24메가픽셀 이상입니다.

에 대한 android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSORAndroid 참조

이 페이지의 일부는 만들고 공유한 작업을 기반으로 하며 에 설명된 조건에 따라 사용됩니다.

RemosaicReprocessing 17

디바이스는 android.sensor.info.binningFactor(동일한 색 필터가 있는 픽셀의 m x n 그룹)에서 리모사이징된 일반 바이엘 패턴으로 지정된 바이엘 패턴을 사용하여 RAW_SENSOR 형식에서 재처리를 지원합니다.

이 기능은 REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR 기능이 있는 디바이스에만 제공됩니다. REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR 디바이스가 이 기능을 보급하지 않으면 ImageFormat.RAW_SENSOR 이미지에는 이미 일반 바이엘 패턴이 있습니다.

captureRequest에서 다른 비 RAW 스트림과 함께 RAW_SENSOR 스트림을 요청하는 경우(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(); getInputSizes(ImageFormat.RAW_SENSOR)에서 반환되는 각 크기는 getOutputSizes(ImageFormat.RAW_SENSOR)에도 포함됩니다. ImageFormat.RAW_SENSOR를 사용하면 센서의 최대 캡처 속도(해당 해상도)를 기준으로 프레임 속도가 떨어지지 않습니다. 요청에 ImageFormat.RAW_SENSOR 형식의 입력 대상이 있는 경우 CaptureRequest 컨트롤이 적용되지 않습니다.

에 대한 android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_REMOSAIC_REPROCESSINGAndroid 참조

이 페이지의 일부는 만들고 공유한 작업을 기반으로 하며 에 설명된 조건에 따라 사용됩니다.

DynamicRangeTenBit 18

디바이스는 DynamicRangeProfiles.getSupportedProfiles()에 지정된 동적 범위 프로필에 따라 하나 이상의 10비트 카메라 출력을 지원합니다. OutputConfiguration.setDynamicRangeProfile(long)을 통해 캡처 세션 초기화의 일부로 구성할 수 있습니다. 이 기능을 사용하도록 설정하는 카메라는 DynamicRangeProfiles.HLG10 프로필도 지원해야 합니다. 설명서에 따라 이 특정 기능에 대한 모든 필수 스트림 조합 디바이스가 동일한 캡처 요청 내에서 지원되는 표준 8비트 및/또는 10비트 동적 범위 프로필의 조합을 캡처할 수 없는 경우 해당 제약 조건은 DynamicRangeProfiles.getProfileCaptureRequestConstraints(long)에 나열되어야 합니다. CameraCharacteristics.REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILE 나열된 권장 동적 범위 프로필

에 대한 android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BITAndroid 참조

이 페이지의 일부는 만들고 공유한 작업을 기반으로 하며 에 설명된 조건에 따라 사용됩니다.

StreamUseCase 19

카메라 디바이스는 디바이스가 특정 사용자 시나리오에 대해 튜닝, 센서 모드 또는 ISP 설정과 같은 카메라 파이프라인 매개 변수를 최적화할 수 있도록 OutputConfiguration.setStreamUseCase(long)를 통해 스트림별 사용 사례를 선택할 수 있도록 지원합니다. 이 기능의 몇 가지 샘플 사용법은 다음과 같습니다. 이미지 품질이 JPEG 스트림만큼 좋지 않을 수 있는 일반 YUV 스트림과 고품질 YUV 캡처를 구분합니다. 하나의 스트림을 사용하여 뷰파인더, 비디오 녹화 및 캡처 등 여러 용도로 사용할 수 있습니다. 이는 편집을 미리 보기, 저장된 이미지 및 저장된 비디오에 동일하게 적용하려는 애플리케이션에서 일반적입니다.

이 기능을 사용하려면 카메라 디바이스가 다음 스트림 사용 사례를 지원해야 합니다. 애플리케이션이 스트림 사용 사례를 설정하지 않는 경우 이전 버전과의 호환성을 위한 DEFAULT입니다. 라이브 뷰파인더 및 앱 내 이미지 분석을 위한 미리 보기; 스틸 사진 캡처를 위한 STILL_CAPTURE; 비디오 클립을 녹화하기 위한 VIDEO_RECORD; 뷰파인더, 비디오 녹화 및 캡처에 사용되는 하나의 단일 스트림에 대한 PREVIEW_VIDEO_STILL. 장기 실행 화상 통화에 대한 VIDEO_CALL

CameraCharacteristics.SCALER_AVAILABLE_STREAM_USE_CASES 지원되는 모든 스트림 사용 사례를 나열합니다.

또한 MandatoryStreamCombination을 통해 쿼리할 수 있는 스트림 사용 사례와 관련된 필수 스트림 조합에 대한 지침을 참조하세요.

에 대한 android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASEAndroid 참조

이 페이지의 일부는 만들고 공유한 작업을 기반으로 하며 에 설명된 조건에 따라 사용됩니다.

ColorSpaceProfiles 20

디바이스는 카메라에서 지원하는 색 공간, 이미지 형식 및 동적 범위 프로필의 가능한 조합을 쿼리하고 SessionConfiguration.setColorSpace(Named)를 통해 세션에 대한 특정 색 공간을 요청할 수 있습니다.

이 기능을 사용하도록 설정하는 카메라는 동적 범위 프로필을 구현할 수도 있거나 구현하지 않을 수도 있습니다. 그렇지 않으면 ColorSpaceProfiles.getSupportedDynamicRangeProfiles(Named, int)는 DynamicRangeProfiles.STANDARD 및 ColorSpaceProfiles.getSupportedColorSpacesForDynamicRange(int, long)만 반환합니다.

에 대한 android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_COLOR_SPACE_PROFILESAndroid 참조

이 페이지의 일부는 만들고 공유한 작업을 기반으로 하며 에 설명된 조건에 따라 사용됩니다.

설명

이 페이지의 일부는 만들고 공유한 작업을 기반으로 하며 에 설명된 조건에 따라 사용됩니다.

적용 대상