Soporte de metadatos
Para permitir que el marco de Android guarde archivos de imágenes sin procesar, se requieren metadatos sustanciales sobre las características del sensor. Esto incluye información como espacios de color y funciones de sombreado de lentes.
La mayor parte de esta información es una propiedad estática del subsistema de la cámara y, por lo tanto, se puede consultar antes de configurar cualquier canal de salida o enviar cualquier solicitud. Las nuevas API de cámara amplían enormemente la información proporcionada por el método getCameraInfo()
para proporcionar esta información a la aplicación.
Además, el control manual del subsistema de la cámara requiere retroalimentación de los diversos dispositivos sobre su estado actual y los parámetros reales utilizados para capturar un cuadro determinado. Los valores reales de los controles (tiempo de exposición, duración del fotograma y sensibilidad) tal como los utiliza realmente el hardware deben incluirse en los metadatos de salida. Esto es esencial para que las aplicaciones sepan cuándo se produjo la sujeción o el redondeo y para que la aplicación pueda compensar la configuración real utilizada para la captura de imágenes.
Por ejemplo, si una aplicación establece la duración del fotograma en 0 en una solicitud, HAL debe limitar la duración del fotograma a la duración mínima real del fotograma para esa solicitud e informar esa duración mínima fijada en los metadatos del resultado de salida.
Entonces, si una aplicación necesita implementar una rutina 3A personalizada (por ejemplo, para medir adecuadamente una ráfaga HDR), necesita conocer la configuración utilizada para capturar el último conjunto de resultados que recibió para actualizar la configuración para la siguiente solicitud. Por lo tanto, la nueva API de la cámara agrega una cantidad sustancial de metadatos dinámicos a cada fotograma capturado. Esto incluye los parámetros solicitados y reales utilizados para la captura, así como metadatos adicionales por cuadro, como marcas de tiempo y resultados del generador de estadísticas.
Control por configuración
Para la mayoría de las configuraciones, la expectativa es que se puedan cambiar en cada cuadro, sin introducir tartamudeo o retraso significativo en el flujo de cuadros de salida. Idealmente, la velocidad de fotogramas de salida debería estar controlada únicamente por el campo de duración del fotograma de la solicitud de captura y ser independiente de cualquier cambio en la configuración de los bloques de procesamiento. En realidad, se sabe que algunos controles específicos tardan en cambiar; estos incluyen la resolución de salida y el formato de salida de la tubería de la cámara, así como controles que afectan los dispositivos físicos, como la distancia de enfoque de la lente. Los requisitos exactos para cada conjunto de control se detallan más adelante.
Soporte de datos de sensores sin procesar
Además de los formatos de píxeles admitidos por la antigua API, la nueva API agrega un requisito de compatibilidad con datos de sensores sin procesar (Bayer RAW), tanto para aplicaciones de cámara avanzadas como para admitir archivos de imágenes sin procesar.