Lenguaje

RequestAvailableCapabilities Enumeración

Definición

Enumera los valores devueltos por varios métodos de RequestAvailableCapabilities.

public enum RequestAvailableCapabilities
type RequestAvailableCapabilities = 
Herencia
RequestAvailableCapabilities

Campos

Nombre Valor Description
BackwardCompatible 0

El conjunto mínimo de funcionalidades que admite cada dispositivo de cámara (independientemente de android.info.supportedHardwareLevel).

Esta funcionalidad aparece en todos los dispositivos normales e indica que el dispositivo de cámara tiene un conjunto de características comparable a los requisitos de línea base de la API android.hardware.Camera anterior.

Es posible que los dispositivos con la funcionalidad DEPTH_OUTPUT no muestren esta funcionalidad, lo que indica que solo admiten la medición de profundidad, no la salida de color estándar.

Referencia de Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

ManualSensor 1

El dispositivo de cámara se puede controlar manualmente (se pueden omitir algoritmos 3A, como la exposición automática y el enfoque automático). El dispositivo de cámara admite el control manual básico de las fases relacionadas con la adquisición de imágenes del sensor. Esto significa que se garantiza que se admiten los siguientes controles: control de duración manual de fotogramas; android.sensor.frameDuration; android.sensor.info.maxFrameDuration; Control manual de exposición; android.sensor.exposureTime; android.sensor.info.exposureTimeRange; Control de sensibilidad manual; android.sensor.sensitivity; android.sensor.info.sensitivityRange; Control manual de lente (si la lente es ajustable); android.lens.*; Control flash manual (si hay una unidad flash presente); android.flash.*; Bloqueo manual de nivel negro; android.blackLevel.lock; Bloqueo de exposición automática; android.control.aeLock

Si alguno de los algoritmos 3A anteriores está habilitado, el dispositivo de cámara notificará con precisión los valores aplicados por 3A en el resultado.

Un dispositivo de cámara determinado también puede admitir controles de sensor manuales adicionales, pero esta funcionalidad solo cubre la lista anterior de controles.

Si se admite, android.scaler.streamConfigurationMap devolverá además una duración mínima de fotogramas mayor que cero para cada combinación de formato de tamaño compatible.

En el caso de los dispositivos de cámara con capacidad de LOGICAL_MULTI_CAMERA, cuando las propiedades subyacentes de la cámara física activa, exposureTime, sensibilidad y lente pueden cambiar incluso si AE/AF está bloqueado. Sin embargo, la experiencia general de exposición automática y enfoque automático para los usuarios será coherente. Consulte LOGICAL_MULTI_CAMERA funcionalidad para obtener más información.

Referencia de Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

ManualPostProcessing 2

Las fases de posprocesamiento del dispositivo de cámara se pueden controlar manualmente. El dispositivo de cámara admite el control manual básico de las fases de postprocesamiento de la imagen. Esto significa que se garantiza que se admiten los siguientes controles: control de mapa de tono manual; android.tonemap.curve; android.tonemap.mode; android.tonemap.maxCurvePoints; android.tonemap.gamma; android.tonemap.presetCurve; Control manual de balance de blancos; android.colorCorrection.transform; android.colorCorrection.gains; Control de mapa de sombreado de lente manual; android.shading.mode; android.statistics.lensShadingMapMode; android.statistics.lensShadingMap; android.lens.info.shadingMapSize; Control de corrección manual de aberración (si se admite la corrección de aberración); android.colorCorrection.aberrationMode; android.colorCorrection.availableAberrationModes; Bloqueo de balance automático de blancos; android.control.awbLock

Si el balance de blancos automático está habilitado, el dispositivo de cámara notificará con precisión los valores aplicados por AWB en el resultado.

Un dispositivo de cámara determinado también puede admitir controles adicionales posteriores al procesamiento, pero esta funcionalidad solo cubre la lista anterior de controles.

En el caso de los dispositivos de cámara con capacidad de LOGICAL_MULTI_CAMERA, cuando cambia la cámara física activa subyacente, el mapa de tonos, el balance de blancos y el mapa de sombreado pueden cambiar incluso si está bloqueado el awb. Sin embargo, la experiencia general posterior al procesamiento para los usuarios será coherente. Consulte LOGICAL_MULTI_CAMERA funcionalidad para obtener más información.

Referencia de Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_MANUAL_POST_PROCESSING.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Raw 3

El dispositivo de cámara admite la salida de búferes y metadatos RAW para interpretarlos.

Los dispositivos que admiten la funcionalidad RAW permiten guardar archivos DNG y para el procesamiento directo de aplicaciones de imágenes de sensor sin procesar. RAW_SENSOR se admite como formato de salida; La resolución máxima disponible para las secuencias de RAW_SENSOR coincidirá con el valor de android.sensor.info.pixelArraySize o android.sensor.info.preCorrectionActiveArraySize; El dispositivo de cámara proporciona todas las entradas de metadatos opcionales relacionadas con DNG.

Referencia de Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_RAW.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

PrivateReprocessing 4

El dispositivo de cámara admite el caso de uso de reprocesamiento de retardo de obturación cero. Se admite un flujo de entrada, es decir, android.request.maxNumInputStreams == 1; ImageFormat.PRIVATE se admite como un formato de salida y entrada, es decir, ImageFormat.PRIVATE se incluye en las listas de formatos devueltos por StreamConfigurationMap.getInputFormats() y StreamConfigurationMap.getOutputFormats(); StreamConfigurationMap.getValidOutputFormatsForInput(int) devuelve int[] no vacío para cada formato de entrada admitido devuelto por StreamConfigurationMap.getInputFormats(); Cada tamaño devuelto por getInputSizes(ImageFormat.PRIVATE) también se incluye en getOutputSizes(ImageFormat.PRIVATE); El uso de ImageFormat.PRIVATE no provoca una caída de velocidad de fotogramas en relación con la velocidad de captura máxima del sensor (a esa resolución); ImageFormat.PRIVATE se volverá a procesar en formatos ImageFormat.YUV_420_888 y ImageFormat.JPEG; Para una cámara MONOCHROME compatible con el formato Y8, ImageFormat.PRIVATE se volverá a procesar en ImageFormat.Y8; La resolución máxima disponible para las secuencias PRIVADAS (ambas entradas y salidas) coincidirá con la resolución máxima disponible de las secuencias JPEG; Metadatos estáticos android.reprocess.maxCaptureStall; Solo los controles siguientes son efectivos para volver a procesar las solicitudes y estarán presentes en los resultados de captura, otros controles en las solicitudes de reprocesamiento serán ignorados por el dispositivo de cámara; android.jpeg.*; android.noiseReduction.mode; android.edge.mode; android.noiseReduction.availableNoiseReductionModes y android.edge.availableEdgeModes mostrarán ZERO_SHUTTER_LAG como modo compatible

Referencia de Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_PRIVATE_REPROCESSING.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

ReadSensorSettings 5

El dispositivo de cámara admite informes precisos de la configuración del sensor para muchos de los controles de sensor mientras se ejecuta el algoritmo 3A integrado. Esto permite informar de la configuración del sensor incluso cuando esta configuración no se puede cambiar manualmente.

Se garantiza que los valores notificados para los siguientes controles están disponibles en CaptureResult, incluido cuando se habilita 3A: Control de exposición; android.sensor.exposureTime; Control de sensibilidad; android.sensor.sensitivity; Controles de lente (si la lente es ajustable); android.lens.focusDistance; android.lens.aperture

Esta funcionalidad es un subconjunto de la funcionalidad de control MANUAL_SENSOR y siempre se incluirá si la funcionalidad MANUAL_SENSOR está disponible.

Referencia de Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_READ_SENSOR_SETTINGS.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

BurstCapture 6

El dispositivo de cámara admite la captura de imágenes de alta resolución en >= 20 fotogramas por segundo, al menos en el formato YUV sin comprimir, cuando la configuración posterior al procesamiento se establece en FAST. Además, todas las resoluciones de imagen inferiores a 24 megapíxeles se pueden capturar en >= 10 fotogramas por segundo. Aquí, "alta resolución" significa al menos 8 megapíxeles, o la resolución máxima del dispositivo, lo que sea menor.

En concreto, esto significa que un tamaño que coincida con el tamaño de la matriz activa del dispositivo de cámara se muestra como un tamaño admitido para el formato ImageFormat.YUV_420_888 en streamConfigurationMap.getOutputSizes(int) o StreamConfigurationMap.getHighResolutionOutputSizes(int), con una duración mínima de fotograma para ese formato y tamaño de <= 1/20 s, o bien <= 1/10 s si el tamaño de la imagen es inferior a 24 megapíxeles, respectivamente; y la entrada android.control.aeAvailableTargetFpsRanges enumera al menos un intervalo fps donde el FPS mínimo es >= 1 /minimumFrameDuration para el formato de YUV_420_888 de tamaño máximo. Si ese tamaño máximo aparece en StreamConfigurationMap.getHighResolutionOutputSizes(int), la lista de resoluciones para YUV_420_888 de StreamConfigurationMap.getOutputSizes(int) contiene al menos una resolución >= 8 megapíxeles, con una duración mínima de fotogramas de <= 1/20 s.

Si el dispositivo admite ImageFormat.RAW10, ImageFormat.RAW12, ImageFormat.RAW14, ImageFormat.Y8, también se pueden capturar a la misma velocidad que la resolución de YUV_420_888 tamaño máximo.

Si el dispositivo admite la funcionalidad PRIVATE_REPROCESSING, las mismas garantías que para el formato YUV_420_888 también se aplican al formato ImageFormat.PRIVATE.

Además, se garantiza que el campo android.sync.maxLatency tenga un valor entre 0 y 4, ambos incluidos. android.control.aeLockAvailable y android.control.awbLockAvailable también se garantiza que la captura de ráfaga con estos dos bloqueos ON produce una salida de imagen coherente.

Referencia de Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_BURST_CAPTURE.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

YuvReprocessing 7

El dispositivo de cámara admite el caso de uso de reprocesamiento YUV_420_888, similar a PRIVATE_REPROCESSING, esta funcionalidad requiere que el dispositivo de cámara admita lo siguiente: se admite una secuencia de entrada, es decir, android.request.maxNumInputStreams == 1; ImageFormat.YUV_420_888 se admite como un formato de salida o entrada, es decir, YUV_420_888 se incluye en las listas de formatos devueltos por StreamConfigurationMap.getInputFormats() y StreamConfigurationMap.getOutputFormats(); StreamConfigurationMap.getValidOutputFormatsForInput(int) devuelve int[] no vacío para cada formato de entrada admitido devuelto por StreamConfigurationMap.getInputFormats(); Cada tamaño devuelto por getInputSizes(YUV_420_888) también se incluye en getOutputSizes(YUV_420_888); El uso de ImageFormat.YUV_420_888 no provoca una caída de velocidad de fotogramas en relación con la velocidad de captura máxima del sensor (a esa resolución); ImageFormat.YUV_420_888 se volverán a procesar en formatos ImageFormat.YUV_420_888 y ImageFormat.JPEG; La resolución máxima disponible para las secuencias de ImageFormat.YUV_420_888 (ambas entradas y salidas) coincidirá con la resolución máxima disponible de los flujos de ImageFormat.JPEG; Para una cámara MONOCHROME con compatibilidad con formato Y8, todos los requisitos mencionados anteriormente para YUV_420_888 solicitar también el formato Y8; Metadatos estáticos android.reprocess.maxCaptureStall; Solo los controles siguientes son efectivos para volver a procesar las solicitudes y estarán presentes en los resultados de captura. Las solicitudes de reprocesamiento proceden de los resultados de captura originales asociados a los búferes de salida intermedios ImageFormat.YUV_420_888. El dispositivo de cámara omitirá todos los demás controles de las solicitudes de reprocesamiento; android.jpeg.*; android.noiseReduction.mode; android.edge.mode; android.reprocess.effectiveExposureFactor; android.noiseReduction.availableNoiseReductionModes y android.edge.availableEdgeModes mostrarán ZERO_SHUTTER_LAG como modo compatible

Referencia de Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSING.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

DepthOutput 8

El dispositivo de cámara puede producir medidas de profundidad a partir de su campo de vista.

Esta funcionalidad requiere que el dispositivo de cámara admita lo siguiente: ImageFormat.DEPTH16 se admite como un formato de salida; ImageFormat.DEPTH_POINT_CLOUD opcionalmente se admite como formato de salida; Este dispositivo de cámara, y todos los dispositivos de cámara con el mismo android.lens.facing, mostrarán las siguientes entradas de metadatos de calibración en CameraCharacteristics y CaptureResult:; android.lens.poseTranslation; android.lens.poseRotation; android.lens.intrinsicCalibration; android.lens.distortion; Este dispositivo enumera la entrada android.depth.depthIsExclusive; A partir de Android P, este dispositivo enumera la entrada android.lens.poseReference; Una cámara LIMITADA con solo la capacidad de DEPTH_OUTPUT no tiene que admitir salidas normales de YUV_420_888, Y8, JPEG y formato PRIV. Solo tiene que admitir el formato de DEPTH16

Por lo general, la salida de profundidad funciona a una velocidad de fotogramas más lenta que la captura de color estándar, por lo que los formatos DEPTH16 y DEPTH_POINT_CLOUD normalmente tendrán una duración de bloqueo que se debe tener en cuenta (vea StreamConfigurationMap.getOutputStallDuration(int, Size)). En un dispositivo que admita la salida basada en color y profundidad, para habilitar una vista previa suave, se recomienda usar una ráfaga de repetición, donde solo se incluye un destino de salida de profundidad una vez cada N fotogramas, donde N es la relación entre la velocidad de salida de vista previa y la velocidad de salida de profundidad, incluido el tiempo de parada de profundidad.

Referencia de Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_DEPTH_OUTPUT.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

ConstrainedHighSpeedVideo 9

El dispositivo admite grabación de vídeo de alta velocidad restringida (velocidad >de fotogramas =120fps) caso de uso. El dispositivo de cámara admitirá la sesión de captura de alta velocidad creada por CameraDevice.createConstrainedHighSpeedCaptureSession(List, StateCallback, Handler), que solo acepta listas de solicitudes de alta velocidad creadas por CameraConstrainedHighSpeedCaptureSession.createHighSpeedRequestList(CaptureRequest).

Un dispositivo de cámara todavía puede admitir el streaming de vídeo de alta velocidad mediante la publicidad de los intervalos fps de alta velocidad en android.control.aeAvailableTargetFpsRanges. En este caso, todas las solicitudes de captura normales por control de fotogramas y requisitos de sincronización se aplicarán a los intervalos de fps de alta velocidad, igual que todos los demás intervalos de fps. Esta funcionalidad describe la funcionalidad de un modo operativo especializado con muchas limitaciones (consulte a continuación), que solo está destinada a la grabación de vídeo de alta velocidad.

Los tamaños de vídeo de alta velocidad y intervalos de fps admitidos se especifican en StreamConfigurationMap.getHighSpeedVideoFpsRanges(). Para obtener velocidades de fotogramas de salida deseadas, la aplicación solo puede seleccionar combinaciones de tamaño de vídeo y intervalo fps proporcionadas por StreamConfigurationMap.getHighSpeedVideoSizes(). El intervalo fps se puede controlar a través de android.control.aeTargetFpsRange.

En esta funcionalidad, el dispositivo de cámara invalidará aeMode, awbMode y afMode en ON, AUTO y CONTINUOUS_VIDEO, respectivamente. Todos los controles de modo de bloqueo posteriores al procesamiento se invalidarán para que sean FAST. Por lo tanto, no es posible controlar manualmente los parámetros de captura y posprocesamiento. Todos los demás controles funcionan igual que cuando android.control.mode == AUTO. Esto significa que todos los demás campos android.control.* siguen funcionando, como; 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

Fuera de android.control.*, los siguientes controles funcionarán: android.flash.mode (solo modo TORCH, el flash automático para la captura todavía no funcionará ya que aeMode es ON); android.lens.opticalStabilizationMode (si se admite); android.scaler.cropRegion; android.statistics.faceDetectMode (si se admite)

En el caso de uso de la grabación de alta velocidad, la velocidad de fotogramas máxima real admitida puede ser inferior a la que puede generar la cámara, en función de las superficies de destino de los datos de imagen. Por ejemplo, si la superficie de destino procede del codificador de vídeo, la aplicación necesita comprobar si el codificador de vídeo es capaz de admitir la alta velocidad de fotogramas para un tamaño de vídeo determinado o terminará con una velocidad de fotogramas de grabación inferior. Si la superficie de destino se encuentra en la ventana de vista previa, la velocidad de fotogramas de vista previa real estará limitada por la frecuencia de actualización de la pantalla.

El dispositivo de cámara solo admitirá hasta 2 superficies de salida simultáneas de alta velocidad (superficies de vista previa y grabación) en este modo. Los controles anteriores solo serán efectivos si se cumplen todas las condiciones siguientes: la aplicación crea una sesión de captura de cámara sin más de 2 superficies a través de CameraDevice.createConstrainedHighSpeedCaptureSession(List, StateCallback, Handler). Las superficies de destino deben ser superficie de vista previa (ya sea desde SurfaceView o SurfaceTexture) o superficie de grabación (ya sea desde MediaRecorder.getSurface() o MediaCodec.createInputSurface()); Los tamaños de secuencia se seleccionan de los tamaños notificados por StreamConfigurationMap.getHighSpeedVideoSizes(); Los intervalos de FPS se seleccionan en StreamConfigurationMap.getHighSpeedVideoFpsRanges()

Cuando no se cumplen las condiciones anteriores, CameraDevice.createConstrainedHighSpeedCaptureSession(List, StateCallback, Handler) producirá un error.

Cambiar a un intervalo de FPS que tenga un fps máximo diferente puede desencadenar algunas reconfiguraciones de dispositivos de cámara, lo que puede introducir una latencia adicional. Se recomienda que la aplicación evite los cambios de FPS máximos de destino innecesarios tanto como sea posible durante el streaming de alta velocidad.

Referencia de Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_CONSTRAINED_HIGH_SPEED_VIDEO.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

MotionTracking 10

El dispositivo de cámara admite el valor de MOTION_TRACKING para android.control.captureIntent, que limita el tiempo máximo de exposición a 20 ms.

Esto limita el desenfoque de movimiento de las imágenes de captura, lo que da lugar a mejores resultados de seguimiento de imágenes para casos de uso como la estabilización de imágenes o la realidad aumentada.

Referencia de Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_MOTION_TRACKING.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

LogicalMultiCamera 11

El dispositivo de cámara es una cámara lógica respaldada por dos o más cámaras físicas.

En el nivel de API 28, las cámaras físicas también deben exponerse a la aplicación a través de CameraManager.getCameraIdList().

A partir del nivel de API 29: es posible que algunas o todas las cámaras físicas no se expongan de forma independiente a la aplicación, en cuyo caso los identificadores de cámara física no estarán disponibles en CameraManager.getCameraIdList(). Pero la aplicación todavía puede consultar las características de las cámaras físicas llamando a CameraManager.getCameraCharacteristics(String); Si una cámara física está oculta en la lista de identificadores de cámara, las combinaciones de secuencias obligatorias para esa cámara física deben admitirse a través de la cámara lógica mediante secuencias físicas. Una excepción es que, en el nivel de API 30, una cámara física puede dejar de estar disponible a través de CameraManager.AvailabilityCallback.onPhysicalCameraUnavailable callback

No se garantizan combinaciones de secuencias lógicas y físicas, ni secuencias físicas de diferentes cámaras físicas. Sin embargo, si el dispositivo de cámara admite CameraDevice.isSessionConfigurationSupported, la aplicación debe poder consultar si se admite una combinación de secuencias que implique secuencias físicas mediante una llamada a CameraDevice.isSessionConfigurationSupported.

La aplicación de cámara no debe suponer que hay como máximo 1 cámara trasera y 1 cámara frontal en el sistema. Para una aplicación que cambia entre cámaras delanteras y traseras, la recomendación es cambiar entre la primera cámara trasera y la primera cámara frontal en la lista de dispositivos de cámara compatibles.

Esta funcionalidad requiere que el dispositivo de cámara admita lo siguiente: los identificadores de las cámaras físicas subyacentes se devuelven a través de CameraCharacteristics.getPhysicalCameraIds(); Este dispositivo de cámara debe enumerar los metadatos estáticos android.logicalMultiCamera.sensorSyncType en CameraCharacteristics; Los metadatos estáticos de las cámaras físicas subyacentes deben enumerar las siguientes entradas para que la aplicación pueda correlacionar píxeles de las secuencias físicas:; android.lens.poseReference; android.lens.poseRotation; android.lens.poseTranslation; android.lens.intrinsicCalibration; android.lens.distortion; El SENSOR_INFO_TIMESTAMP_SOURCE del dispositivo lógico y los dispositivos físicos debe ser el mismo; La cámara lógica debe ser LIMITADA o superior.

Los metadatos dinámicos de un dispositivo de cámara lógica pueden contener android.logicalMultiCamera.activePhysicalId para notificar a la aplicación el identificador de cámara física activo actual. Una cámara física activa es la cámara física de la que procede la salida de datos de imagen principal (YUV o RAW) de la cámara lógica. Además, esto sirve como indicación de qué cámara física se usa para generar una secuencia RAW, o en caso de que solo las cámaras físicas admitan RAW, que flujo RAW físico debe solicitar la aplicación.

Las etiquetas de metadatos estáticos de la cámara lógica siguientes describen la cámara física activa predeterminada. Una cámara física activa es predeterminada si se usa cuando la aplicación usa directamente solicitudes compiladas a partir de una plantilla. Todas las plantillas tendrán como valor predeterminado la misma cámara física activa. 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

El campo de vista de secuencias físicas no RAW no debe ser menor que el de las secuencias lógicas no RAW o el campo máximo de vista de la cámara física, lo que sea menor. La aplicación debe comprobar los metadatos de los resultados de captura física y las características de la cámara física para ver cómo se recortan o amplían las secuencias físicas. Consulte android.lens.focalLength sobre cómo se calcula el campo de vista.

Normalmente, la secuencia física de la cámara física activa tiene el mismo campo de vista que las secuencias lógicas. Sin embargo, puede que lo mismo no sea cierto para las secuencias físicas de cámaras físicas no activas. Por ejemplo, si la cámara lógica tiene una configuración de gran alcance donde la lente ancha es la predeterminada, cuando la región de recorte se establece en el tamaño de matriz activa de la cámara lógica (y la relación de zoom establecida en 1,0 a partir de Android 11), una secuencia física para la cámara ultra wide puede preferir la salida de imágenes con un campo de vista mayor que el de la cámara ancha para mejorar el margen de coincidencia estéreo o un seguimiento de movimiento más sólido. Al mismo tiempo, el campo de vista de los flujos físicos que no son RAW no debe ser menor que la región de recorte solicitada y la relación de zoom, siempre y cuando esté dentro de la capacidad de la lente física. Por ejemplo, para una cámara lógica con configuración de lente de tele ancha donde la lente ancha es la predeterminada, si la región de recorte de la cámara lógica está establecida en tamaño máximo y la relación de zoom establecida en 1,0, la secuencia física para la tele lente se configurará en su región de recorte de tamaño máximo (sin zoom).

En desuso: antes de Android 11, el campo de vista de todas las secuencias físicas que no son RAW no puede ser mayor que el de secuencias lógicas no RAW. Si la cámara lógica tiene una configuración de lente de gran alcance donde la lente ancha es la predeterminada, cuando la región de recorte de la cámara lógica se establece en tamaño máximo, el FOV de las secuencias físicas para la lente ultra ancha será el mismo que la secuencia lógica, haciendo que la región de recorte sea menor que su tamaño de matriz activo para compensar la longitud focal más pequeña.

En el caso de una cámara lógica, normalmente las cámaras físicas subyacentes tienen diferentes funcionalidades RAW (como la resolución o el patrón CFA). Hay dos maneras de que la aplicación capture imágenes RAW desde la cámara lógica: si la cámara lógica tiene capacidad RAW, la aplicación puede crear y usar secuencias RAW de la misma manera que antes. En caso de que se configure una secuencia RAW, para mantener la compatibilidad con versiones anteriores, el dispositivo de cámara garantiza que la cámara física activa predeterminada permanece activa y no cambia a otras cámaras físicas. (Una excepción es que, si la cámara lógica consta de sensores de imagen idénticos y anuncia varios focalLength debido a diferentes lentes, el dispositivo de cámara puede generar imágenes RAW a partir de diferentes cámaras físicas basadas en el focalLength que la aplicación establece). Este enfoque compatible con versiones anteriores suele dar lugar a la pérdida de zoom óptico, a la lente de telefoto o a la lente ultraparápida; Como alternativa, si es compatible con el dispositivo, Se puede usar MultiResolutionImageReader para capturar imágenes RAW desde una de las cámaras físicas subyacentes (en función del nivel de zoom actual). Dado que diferentes cámaras físicas pueden tener características RAW diferentes, la aplicación debe usar las características y los metadatos de resultados de la cámara física activa para los metadatos RAW pertinentes.

Las etiquetas de metadatos de solicitud de captura y de resultados necesarias para las funcionalidades de cámara compatibles con versiones anteriores se basarán únicamente en la funcionalidad de la cámara lógica. Por otro lado, el uso de controles de captura manual (sensor o posprocesamiento) con una cámara lógica puede dar lugar a un comportamiento inesperado cuando hal decide cambiar entre cámaras físicas con diferentes características bajo el capó. Por ejemplo, cuando la aplicación establece manualmente el tiempo de exposición y la sensibilidad mientras se acerca, el brillo de las imágenes de la cámara puede cambiar repentinamente porque HAL cambia de una cámara física a la otra.

Referencia de Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Monochrome 12

El dispositivo de cámara es una cámara monocromática que no contiene una matriz de filtros de color y, para YUV_420_888 secuencia, los valores de píxeles en usted y los planos V son los 128.

Una cámara MONOCHROME debe admitir las combinaciones de secuencias garantizadas necesarias para su nivel de dispositivo y capacidades. Además, si el dispositivo de cámara monocromática admite el formato Y8, todos los requisitos obligatorios de combinación de secuencias relacionados con YUV_420_888 también se aplican a Y8. No hay requisitos obligatorios de combinación de secuencias con respecto a Y8 para dispositivos de cámara Bayer.

A partir de Android Q, la SENSOR_INFO_COLOR_FILTER_ARRANGEMENT de una cámara MONOCHROME será MONO o NIR.

Referencia de Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_MONOCHROME.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

SecureImageData 13

El dispositivo de cámara es capaz de escribir datos de imagen en una región de memoria inaccesible para el espacio de usuarios android o el kernel de Android, y solo es accesible para entornos de ejecución de confianza (TEE).

Referencia de Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_SECURE_IMAGE_DATA.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

SystemCamera 14

El dispositivo de cámara solo es accesible por los componentes del sistema android y las aplicaciones con privilegios. Los procesos deben tener el android.permission.SYSTEM_CAMERA además de android.permission.CAMERA para conectarse a este dispositivo de cámara.

Referencia de Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_SYSTEM_CAMERA.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

OfflineProcessing 15

El dispositivo de cámara admite el caso de uso de OFFLINE_PROCESSING.

Con OFFLINE_PROCESSING funcionalidad, la aplicación puede cambiar una sesión de captura en curso al modo sin conexión mediante una llamada al método CameraCaptureSession#switchToOffline y especificar secuencias que se mantendrán en modo sin conexión. A continuación, la cámara detendrá las solicitudes de repetición activas actualmente, preparará algunas solicitudes para entrar en modo sin conexión y devolverá un objeto de sesión sin conexión. Una vez que se devuelve la llamada switchToOffline, la sesión de captura original está en estado cerrado como si se hubiera llamado al método CameraCaptureSession#close. En el modo sin conexión, todas las solicitudes en curso se seguirán procesando en segundo plano y la aplicación puede cerrar inmediatamente la cámara o crear una nueva sesión de captura sin perder las imágenes de salida de esas solicitudes y capturar los resultados.

Aunque el dispositivo de cámara está procesando solicitudes sin conexión, es posible que no pueda admitir todas las configuraciones de flujo que puede admitir sin solicitudes sin conexión. Cuando esto sucede, se producirá un error en la llamada al método createCaptureSession. Se garantiza que las siguientes configuraciones de flujo funcionan sin alcanzar la excepción ocupada del recurso: una sesión sin conexión en curso: tener como destino una superficie de salida del formato YUV o JPEG, cualquier resolución; Sesión de captura de cámara activa:; Una superficie de vista previa (SurfaceView o SurfaceTexture) de hasta 1920 ancho; Una superficie YUV ImageReader de hasta 1920 ancho; One Jpeg ImageReader, cualquier resolución: el dispositivo de cámara puede ralentizar la velocidad de salida JPEG en 50% si hay alguna sesión sin conexión en curso; Si el dispositivo admite PRIVATE_REPROCESSING, un par de superficies ImageWriter/ImageReader de formato privado, con la misma resolución que es mayor o igual que la resolución JPEG ImageReader anterior; Como alternativa, la sesión de cámara activa anterior se puede reemplazar por una cámara heredada por la siguiente configuración de parámetros:; Tamaño de vista previa de hasta 1920 ancho; Vista previa del tamaño de devolución de llamada hasta 1920; Tamaño de vídeo de hasta 1920 ancho; Tamaño de imagen, cualquier resolución: el dispositivo de cámara puede ralentizar la velocidad de salida JPEG en 50% si hay alguna sesión sin conexión en curso.

Referencia de Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_OFFLINE_PROCESSING.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

UltraHighResolutionSensor 16

Este dispositivo de cámara es capaz de producir imágenes de resolución ultra alta además de los tamaños de imagen descritos en android.scaler.streamConfigurationMap. Puede funcionar en modo "predeterminado" y en modo "resolución máxima". Por lo general, esto se hace mediante la discretización de píxeles en modo "predeterminado" y no binninglos en el modo "resolución máxima". android.scaler.streamConfigurationMap describe las secuencias admitidas en el modo "predeterminado". Las configuraciones de flujo admitidas en el modo "resolución máxima" se describen mediante android.scaler.streamConfigurationMapMaximumResolution. El tamaño máximo de la matriz de píxeles del modo de resolución de un dispositivo de cámara (android.sensor.info.pixelArraySize) con esta capacidad, será de al menos 24 megapíxeles.

Referencia de Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

RemosaicReprocessing 17

El dispositivo admite el reprocesamiento desde el formato de RAW_SENSOR con un patrón bayer proporcionado por android.sensor.info.binningFactor (m x n grupo de píxeles con el mismo filtro de color) a un patrón de bayer regular remosaiced.

Esta funcionalidad solo estará presente para los dispositivos con REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR funcionalidad. Cuando los dispositivos REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR no anuncian esta funcionalidad, ImageFormat.RAW_SENSOR images ya tendrán un patrón bayer normal.

Si se solicita una secuencia de RAW_SENSOR junto con otra secuencia que no es RAW en un objeto CaptureRequest (si se admiten varias secuencias cuando android.sensor.pixelMode está establecido en SENSOR_PIXEL_MODE_MAXIMUM_RESOLUTION), la secuencia de RAW_SENSOR tendrá un patrón bayer normal.

Esta funcionalidad requiere que el dispositivo de cámara admita lo siguiente: StreamConfigurationMap mencionado a continuación hace referencia a la descrita por android.scaler.streamConfigurationMapMaximumResolution; Se admite un flujo de entrada, es decir, android.request.maxNumInputStreams == 1; ImageFormat.RAW_SENSOR se admite como un formato de salida/entrada, es decir, ImageFormat.RAW_SENSOR se incluye en las listas de formatos devueltos por StreamConfigurationMap.getInputFormats() y StreamConfigurationMap.getOutputFormats(); StreamConfigurationMap.getValidOutputFormatsForInput(int) devuelve int[] no vacío para cada formato de entrada admitido devuelto por StreamConfigurationMap.getInputFormats(); Cada tamaño devuelto por getInputSizes(ImageFormat.RAW_SENSOR) también se incluye en getOutputSizes(ImageFormat.RAW_SENSOR); El uso de ImageFormat.RAW_SENSOR no provoca una caída de velocidad de fotogramas en relación con la velocidad de captura máxima del sensor (a esa resolución); No se aplicará ningún control CaptureRequest cuando una solicitud tenga un destino de entrada con formato ImageFormat.RAW_SENSOR.

Referencia de Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_REMOSAIC_REPROCESSING.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

DynamicRangeTenBit 18

El dispositivo admite una o varias salidas de cámara de 10 bits según los perfiles de intervalo dinámico especificados en DynamicRangeProfiles.getSupportedProfiles(). Se pueden configurar como parte de la inicialización de la sesión de captura mediante OutputConfiguration.setDynamicRangeProfile(long). Las cámaras que habilitan esta funcionalidad también deben admitir lo siguiente: Profile DynamicRangeProfiles.HLG10; Todas las combinaciones de secuencias obligatorias para esta funcionalidad específica según la documentación; En caso de que el dispositivo no pueda capturar alguna combinación de perfiles de intervalo dinámico de 8 o 10 bits compatibles dentro de la misma solicitud de captura, esas restricciones deben aparecer en DynamicRangeProfiles.getProfileCaptureRequestConstraints(long); Perfil de intervalo dinámico recomendado que se muestra en CameraCharacteristics.REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILE

Referencia de Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

StreamUseCase 19

El dispositivo de cámara admite la selección de un caso de uso por secuencia a través de OutputConfiguration.setStreamUseCase(long) para que el dispositivo pueda optimizar los parámetros de canalización de cámara, como la optimización, el modo de sensor o la configuración de ISP para un escenario de usuario específico. Algunos usos de ejemplo de esta funcionalidad son: distinguir capturas YUV de alta calidad de una secuencia YUV normal donde la calidad de la imagen puede no ser tan buena como la secuencia JPEG o; Use una secuencia para servir con varios propósitos: visor, grabación de vídeo y capturas fijas. Esto es común con las aplicaciones que desean aplicar ediciones igualmente a la vista previa, las imágenes guardadas y los vídeos guardados.

Esta funcionalidad requiere que el dispositivo de cámara admita los siguientes casos de uso de secuencias: DEFAULT para la compatibilidad con versiones anteriores en las que la aplicación no establece un caso de uso de secuencias; VISTA PREVIA para el visor en directo y el análisis de imágenes en la aplicación; STILL_CAPTURE para la captura de fotos fijas; VIDEO_RECORD para grabar videoclips; PREVIEW_VIDEO_STILL para una sola secuencia utilizada para el visor, la grabación de vídeo y la captura de todavía; VIDEO_CALL para videollamadas de larga duración

CameraCharacteristics.SCALER_AVAILABLE_STREAM_USE_CASES enumera todos los casos de uso de flujos admitidos.

Consulte la guía para las combinaciones de secuencias obligatorias que implican casos de uso de flujos, que también se pueden consultar a través de MandatoryStreamCombination.

Referencia de Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

ColorSpaceProfiles 20

El dispositivo admite la consulta de las posibles combinaciones de espacios de color, formatos de imagen y perfiles de intervalo dinámico admitidos por la cámara y solicitando un espacio de color determinado para una sesión a través de SessionConfiguration.setColorSpace(Named).

Las cámaras que habilitan esta funcionalidad pueden o no implementar perfiles de intervalo dinámico. Si no lo hacen, ColorSpaceProfiles.getSupportedDynamicRangeProfiles(Named, int) devolverá solo DynamicRangeProfiles.STANDARD y ColorSpaceProfiles.getSupportedColorSpacesForDynamicRange(int, long) asumirán la compatibilidad del perfil DynamicRangeProfiles.STANDARD en todas las combinaciones de espacios de color y formatos de imagen.

Referencia de Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_COLOR_SPACE_PROFILES.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Comentarios

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Se aplica a