La versión de Android 13 incluye varios cambios en el ITS de la cámara. Además de los cambios incrementales, como las versiones actualizadas de Python y los paquetes, y las actualizaciones de hardware de prueba, Android 13 admite pruebas de video.
En esta página, se resumen los cambios en el ITS de la cámara para Android 13. Los cambios se dividen en siete categorías generales:
- Versiones de Python y de paquetes
- Adiciones al archivo de configuración
- Probar cambios
- Nuevas pruebas basadas en tablets
- Pruebas de video
- Actualizaciones y adiciones de hardware
- Compatibilidad con pruebas de dispositivos plegables
Versiones de Python y de paquetes
Android 13 admite las siguientes versiones de Python, además de las versiones y bibliotecas de Python compatibles con Android 12:
- Python 3.9.2
- OpenCV 4.2.0
- Numpy 1.20.3
- Matplotlib 3.3.4
- Scipy 1.6.2
- pySerial 3.5
- Pillow 8.3.1
- PyYAML 5.4.1
- Mobly 1.11
- FFmpeg 4.4.1
Adiciones al archivo de configuración
Debido a la incorporación del control de iluminación para la prueba test_auto_flash.py
, el archivo config.yml
necesita dos parámetros adicionales para el canal de iluminación y el controlador. Para identificar si el dispositivo bajo prueba (DUT) es plegable o no, el archivo config.yml
requiere un tercer parámetro adicional que se debe agregar a las secciones basadas en la tablet y de fusión de sensores.
TestBeds:
- Name: TEST_BED_TABLET_SCENES
# Test configuration for scenes[0:4, 6, _change]
Controllers:
AndroidDevice:
- serial: 8A9X0NS5Z
label: dut
- serial: 5B16001229
label: tablet
TestParams:
brightness: 192
chart_distance: 22.0
debug_mode: "False" # "True" or "False"; quotes needed
lighting_cntl: <controller-type> # "arduino" or "None"; quotes needed
lighting_ch: <controller-channel>
camera: 0
foldable_device: "False". # set "True" if testing foldable
scene: <scene-name> # if <scene-name> runs all scenes
Prueba los cambios
scene1_1/test_black_white.py
La prueba test_black_white
tiene una verificación de saturación de canales coherente con las versiones anteriores de Android, lo que significa que el primer nivel de API requerido para la verificación de saturación de canales es Android 10.
scene1_2/test_yuv_plus_raw.py
La prueba test_yuv_plus_raw
controla los sensores que no son de 16:9 o 4:3 para brindar una mejor compatibilidad con RAW. Si la prueba no puede encontrar un formato común entre el formato RAW del sensor y los formatos de captura YUV, compara la captura RAW con la captura YUV más grande, incluso si las relaciones de aspecto son diferentes.
scene2_a/test_faces.py
Se refactoriza test_faces
en test_num_faces
.
scene2_a/test_num_faces.py
La prueba test_num_faces
controla el recorte del sensor y coloca los rectángulos faciales correctamente en las capturas de la cámara UW que se recortan.
scene3/test_lens_position.py
La prueba test_lens_position
dejó de estar disponible en Android 13.
scene6/test_zoom.py
Se refactorizó la prueba test_zoom
para facilitar la prueba de sistemas de tres y cuatro cámaras. Si la cámara se prueba correctamente en un rango de relación de 10x en el zoom, la prueba se cierra correctamente. Esto permite realizar pruebas de zoom a una sola distancia del gráfico.
scene_change/test_scene_change.py
La prueba test_scene_change
dejó de estar disponible en Android 13.
Nuevas pruebas basadas en tablets
Android 13 incluye dos pruebas nuevas basadas en tablets. Ambas pruebas son obligatorias para los dispositivos que se lanzan con Android 13, pero se omiten para los dispositivos que se actualizan a Android 13.
Scene | Nombre de la prueba | Primer nivel de API | Descripción |
---|---|---|---|
2_a | test_auto_flash | 33 | Confirma que las escenas oscuras activan el flash automático. |
2_b | test_yuv_jpg_capture_sameness | 33 | Confirma que las capturas de YUV y JPEG siguen siendo idénticas bit a bit. |
scene2_a/test_auto_flash.py
Android 13 agrega la prueba test_auto_flash
.
Parámetros
flash
: Omite la prueba si el flash no está disponible.
Método
La prueba configura la solicitud de captura para el flash automático y presenta una escena que requiere un evento de flash. La iluminación del equipo de prueba y la tablet están apagadas para presentar una escena oscura para el algoritmo de exposición automática. La prueba configura una secuencia de capturas de NUM_FRAMES
con el flash automático habilitado. Si el parámetro de configuración AE_STATE
devuelve FLASH_REQUIRED
, la prueba verifica que se active un flash en las capturas.
La iluminación se puede controlar de forma manual cuando se le solicite o automáticamente con un controlador Arduino con control de iluminación agregado para las pruebas automatizadas. Una nueva carpeta de utilidades lighting_control_utils
centraliza el código para controlar la iluminación en las pruebas.
scene2_a/test_yuv_jpeg_capture_sameness.py
Android 13 agrega la prueba test_yuv_jpeg_capture_sameness
.
Parámetros
streamUseCase
: Determina si la cámara admite el caso de uso de transmisión.android.jpeg.quality
: Establece la calidad JPEG en 100.
Método
Esta prueba captura dos imágenes con los formatos YUV y JPEG comunes más grandes con la misma relación de aspecto que el formato JPEG más grande que no supera una resolución de 1,920 x 1,440. El conjunto de pruebas establece jpeg.quality
en 100 y captura una solicitud de doble superficie. Luego, convierte ambas imágenes en arreglos RGB y calcula la diferencia de la raíz cuadrada de la media (RMS) tridimensional entre las dos imágenes. La tolerancia de diferencia se establece en un 1%.
Pruebas de video
Camera ITS agrega compatibilidad con las pruebas de video en Android 13.
Android 13 agrega las siguientes pruebas:
Scene | Nombre de la prueba | Primer nivel de API | Descripción |
---|---|---|---|
4 | test_preview_stabilization_fov | 33 | Confirma que la vista previa del video no se recorta demasiado cuando la estabilización está habilitada. |
4 | test_video_aspect_ratio_and_crop | 33 | Confirma el campo de visión, la relación de aspecto y el recorte de los formatos de video. |
sensor_fusion | test_preview_stabilition | 33 | Confirma que la estabilización de la vista previa funciona. |
sensor_fusion | test_video_stabilition | 33 | Confirma que la estabilización de video funciona. |
scene4/test_preview_stabilization_fov.py
Android 13 agrega la prueba test_preview_stabilization_fov
. Esta prueba verifica los tamaños de vista previa admitidos para garantizar que el campo de visión no se recorte de forma inadecuada.
Método
La prueba captura dos videos, uno con la estabilización de vista previa activada y otro con la estabilización de vista previa desactivada. Se selecciona un fotograma representativo de cada video y se analiza para garantizar que los cambios en el CdV de los dos videos cumplan con las especificaciones.
Específicamente, la prueba verifica los siguientes parámetros con y sin estabilización de vista previa:
- La redondez del círculo permanece constante.
- El centro del círculo permanece estable.
- El tamaño del círculo no cambia en más del 20%, lo que significa que el ángulo de visión cambia en un 20% como máximo.
scene4/test_video_aspect_ratio_and_crop.py
Android 13 agrega la prueba test_video_aspect_ratio_and_crop
. Al igual que la test_aspect_ratio_and_crop
prueba de capturas de imágenes fijas, esta prueba verifica los formatos de video admitidos para garantizar que los fotogramas de video no se estiren ni se recorten de forma inadecuada.
Se prueban todas las calidades de video autoinformadas. Además, si la cámara admite video HLG10
, se prueba el video de 10 bits.
Android 13 agrega el método get_available_video_qualities
a its_session_utils
. Para compartir código común con las pruebas existentes, Android 13 también incluye dos nuevas funciones de utilidad, image_fov_utils
y video_processing_utils
.
Método
La prueba captura una imagen de referencia con el formato RAW o el formato JPEG de mayor resolución si no se admite RAW. A partir de la imagen de referencia, se determinan el tamaño y la ubicación del círculo. Luego, se graban videos cortos con todas las calidades de video admitidas. El fotograma de referencia final se extrae de cada calidad de video. Desde el marco de referencia, se calculan el campo de visión (FoV), el centrado (recorte) y la relación de aspecto para cada calidad de video.
Para el cálculo del CdV, la prueba compara el tamaño del círculo del fotograma de video con el tamaño del círculo calculado a partir de los tamaños de la imagen de referencia y el formato de video. En el caso de la verificación de recorte, la prueba compara el centrado del fotograma de video con el centrado de la imagen de referencia. Para la verificación de la relación de aspecto, se usa la escena, que es un círculo negro grande sobre un fondo blanco. La prueba determina la relación de aspecto del círculo y verifica que el fotograma no esté distorsionado.
sensor_fusion/test_preview_stabilization.py
Android 13 agrega la prueba test_preview_stabilization
, que prueba todas las calidades de vista previa admitidas hasta 1920 x 1080. La prueba usa el equipo de prueba de fusión de sensores y requiere el nuevo controlador de fusión de sensores de la revisión 2 o una actualización de firmware de versiones anteriores del controlador de Arduino. Para obtener más detalles sobre el nuevo controlador, consulta Actualizaciones y adiciones de hardware.
Método
El teléfono se mueve lentamente en un ángulo de aproximadamente 15 grados con la estabilización de vista previa habilitada. Luego, se compara la rotación de las imágenes con la rotación del giroscopio.
sensor_fusion/test_video_stabilization.py
Android 13 agrega la prueba test_video_stabilization
, que prueba las calidades de video admitidas hasta 1920 x 1080. Se excluye la calidad de video de baja resolución QCIF. La prueba usa el equipo de prueba de fusión de sensores y requiere el nuevo controlador de fusión de sensores de la revisión 2 o una actualización de firmware de versiones anteriores del controlador de Arduino. Para obtener más detalles sobre el nuevo controlador, consulta Actualizaciones y adiciones de hardware.
Método
El soporte de prueba mueve el teléfono lentamente en un ángulo de aproximadamente 15 grados con la estabilización de vista previa habilitada. Luego, se compara la rotación de las imágenes con la del giroscopio.
Actualizaciones y adiciones de hardware
Android 13 incluye una actualización del controlador de fusión de sensores de la revisión 2 basado en Arduino. Esta actualización incluye cambios de hardware y firmware. La actualización permite que el controlador establezca la velocidad de rotación y el control de iluminación. La actualización también incluye un nuevo protector (que se muestra en la Figura 1), que proporciona tres canales de rotación y tres canales de control de iluminación.
Figura 1: Placa Arduino rev2.0 con control de rotación y luz
Además, en el caso de la versión 13, se debe actualizar el firmware de los controles existentes para habilitar el control de velocidad de rotación. Puedes descargar este firmware desde los siguientes vínculos:
Para obtener más información sobre el nuevo controlador, consulta Controlador de fusión de sensores de Android 13.
Compatibilidad con pruebas de dispositivos plegables
Android 13 incluye compatibilidad con pruebas para dispositivos plegables. Para habilitar la API de varias cámaras para dispositivos plegables, se requiere el estado del teléfono (Folded
o Unfolded
) durante las pruebas.
Para habilitar el sondeo del estado del teléfono en todos los DUT, incluidos los teléfonos no plegables, ejecuta el siguiente comando de adb después de que el DUT se conecte al host.
adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier