¿Tu terminal es compatible con las nuevas funciones?

Desde el anuncio de Google de Android Lollipop, los fotógrafos han estado encantados con las nuevas funciones enumeradas durante Google I / O. De hecho, la nueva versión del sistema operativo viene con una API (interfaz de programación) completamente reescrita que cambia la filosofía de la adquisición de fotografías y videos. Sin embargo, pocos dispositivos pueden aprovechar al máximo la API de Camera2. Intentaremos entender el motivo y ofrecerte conocer el estado de tu terminal sobre el tema.

En julio, Vincent escribió un análisis detallado sobre la nueva API de Camera2. Las funcionalidades también se describen en nuestro gran archivo Lollipop que hace un balance de estas nuevas características. Hoy en día, muchos de ustedes han recibido e instalado manualmente actualizaciones para Android 5.0 Lollipop. Múltiples terminales Nexus de Google, Motorola Moto X o Moto G, Samsung galaxy S4, S5, Note 4 están en el juego. Pero algunos de ustedes también han notado en su dispositivo recién actualizado que las aplicaciones que permiten tomar fotografías en modo manual se niegan a hacerlo o simplemente se instalan debido a incompatibilidad.

¿Cuales son las razones?

Debe reconocerse que Google ha puesto el listón muy alto con la API Camera2. Hasta Android KitKat 4.4, la interfaz de programación para el módulo de imágenes digitales seguía una lógica básica: una buena analogía es que este subsistema se comportaba como una cámara de apuntar y disparar. La mayoría de las veces, los ajustes se limitaban a ajustes preestablecidos de balance de blancos, compensación de exposición automática y enfoque con los dedos. El resto de las acciones son iniciar y detener la grabación de una sola foto a la vez o un video en un modo diferente. Las aplicaciones fotográficas de terceros eran entonces como la mano de un usuario presionando botones virtuales con poco control sobre el proceso interno de captura, procesamiento y transformación de imágenes. Podemos calificar la primera API de cámara de Android como de alto nivel.

Con la API de Camera2 acercándose a una interfaz de bajo nivel: idealmente, las aplicaciones obtienen un control preciso sobre la captura, el procesamiento y la grabación de cada imagen que compone una sola foto, una ráfaga o un video. Los fabricantes se encontraron entonces con la complicada tarea de volver a imaginar y reescribir casi desde cero los controladores del módulo de la cámara y las capas de abstracción para la API de Camera2, al mismo tiempo que proporcionaban lo mismo para la API de la cámara histórica por razones compatibilidad con casi todas las aplicaciones de terceros existentes.

Se requiere la API Camera2 para pasar las pruebas de validación de Lollipop, lo que permite la venta de dispositivos certificados, tener acceso a aplicaciones de Google y uso comercial del nombre Android ™. Por lo tanto, los ingenieros de Google debían proporcionar una solución técnica para facilitar la tarea de los fabricantes que deseaban ofrecer la nueva versión de Android a sus clientes. Esto se debe a que no solo la cantidad de trabajo para implementar Camera2 en un dispositivo existente es colosal desde la perspectiva del fabricante para una actualización simple, sino que no hay garantía de que los proveedores de soluciones de imágenes Procesador de señal de imagen) proporcionan este nuevo tipo de acceso a chips existentes ya vendidos. Por esta razón, la API de Android Camera2 es multifacética y se comporta como una solución de tres niveles.

Niveles de soporte de Camera2

Echemos un vistazo a la documentación para programadores de Android, disponible en developer.android.com.

COMPLETO: Soporte completo para Camera2

  • Capture imágenes o videos a 30 cuadros por segundo (20 mínimo) con la resolución completa del sensor.
  • Control de los parámetros de disparo y procesamiento de cada imagen individual.
  • Control manual del sensor: tiempo de exposición, ganancia ISO.
  • Control de procesamiento de imágenes: reproducción de color, contraste y curva gamma, procesamiento de ruido.
  • Recorte libre en tamaño y posición.
  • Al menos tres formatos de salida de búfer (por ejemplo, JPEG, YUV 4: 2: 0, NV21)
  • La capacidad de enumerar y configurar automáticamente formatos de salida en búferes de acuerdo con una lista documentada de lo que se admite en términos de formatos y retrasos.
  • Un rango definido de tiempo de exposición elegido manualmente, así como el máximo que el equipo es capaz de hacer.

Nota: La capacidad de acceder a valores sin procesar leídos desde el sensor para fotografía RAW y los metadatos necesarios para empaquetarlos en un DNG estándar no es parte de lo que se requiere para considerar una implementación de Camera2 como COMPLETA.

Un ejemplo que es medio sorprendente es la tableta Nexus 9, ya que la API Camera2 anuncia soporte para captura RAW pero DngCreator falla porque faltan los metadatos necesarios, como las matrices de conversión del espacio de color.

LIMITADO: Soporte parcial para Camera2

Los dispositivos que anuncian este modo aprovechan una implementación real de la API de Camera2, pero no se admite todo lo necesario para FULL. Bien porque el trabajo no se ha terminado o porque el sensor, la óptica o el procesador de imagen no tienen capacidad suficiente.

LEGACY: un resumen de la API de cámara histórica

Esto es lo que veremos con mayor frecuencia en teléfonos móviles y tabletas que fueron diseñados y comercializados antes de la publicación de Lollipop, incluso si son actualizados por su fabricante. Esto no ofrece ninguna funcionalidad adicional y solo permite que funcionen las nuevas aplicaciones escritas para la API de Camera2.

Un APK para probar la compatibilidad de tu terminal con la API

¿Qué dispositivos son total o parcialmente compatibles con la API de Camera2? Desafortunadamente, no existe una lista oficial, por lo que será necesario verificar caso por caso. Entonces creé para la ocasión una aplicación minimalista (solo para Lollipop) que le permite saber qué tipo de soporte ofrece su dispositivo con la nueva API. No dude en descargar la aplicación en esta dirección y compartir sus descubrimientos en los comentarios.

Con suerte, la mayoría de los fabricantes harán que sus dispositivos sean compatibles con el nivel completo de la API de Camera 2, sin embargo, no hay garantía. El próximo Mobile World Congress sin duda nos dará una idea de lo que podemos esperar este año en cuanto a fotografía móvil e intentaremos probar los móviles con nuestra aplicación. Dado que la API de Camera2 es muy poderosa, su soporte completo determinará en gran medida las innovaciones futuras de los desarrolladores externos.