Notas de la versión de Android 13 Camera Image Test Suite

La versión de Android 13 incluye una serie de cambios en Camera ITS . Además de los cambios incrementales, como versiones actualizadas de paquetes y Python y actualizaciones de hardware de prueba, Android 13 admite pruebas de video.

Esta página resume los cambios de Camera ITS para Android 13. Los cambios se dividen en siete categorías amplias:

Versiones de Python y paquetes

Android 13 admite las siguientes versiones de Python además de las versiones y bibliotecas de Python compatibles con Android 12:

Adiciones de archivos de configuración

Debido a la adición del control de iluminación para la prueba test_auto_flash.py , el archivo config.yml necesita dos parámetros adicionales para el controlador y el canal de iluminación. Para identificar si el dispositivo bajo prueba (DUT) es plegable o no, el archivo config.yml requiere un tercer parámetro adicional que debe agregarse a las secciones de fusión de sensores y de tableta.

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

Cambios de prueba

escena1_1/prueba_negro_blanco.py

La prueba test_black_white tiene una verificación de saturación de canales consistente con 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.

escena1_2/test_yuv_plus_raw.py

La prueba test_yuv_plus_raw maneja sensores que no son 16:9 o 4:3 para proporcionar un mejor soporte para RAW. Si la prueba no puede encontrar un formato común entre el formato RAW del sensor y los formatos de captura YUV, la prueba compara la captura RAW con la captura YUV más grande incluso si las relaciones de aspecto son diferentes.

escena2_a/test_faces.py

test_faces se refactoriza en test_num_faces .

escena2_a/test_num_faces.py

La prueba test_num_faces maneja el recorte del sensor y coloca los rectángulos de cara correctamente en las capturas de la cámara UW que están recortadas.

escena3/test_lens_position.py

La prueba test_lens_position está obsoleta en Android 13.

escena6/test_zoom.py

La prueba test_zoom se refactoriza para permitir pruebas más sencillas de sistemas de tres y cuatro cámaras. Si la cámara prueba correctamente en un rango de relación de 10x con zoom, la prueba sale correctamente. Esto permite realizar pruebas de zoom a una distancia de gráfico única.

cambio_escena/test_cambio_escena.py

La prueba test_scene_change está obsoleta en Android 13.

Nuevas pruebas basadas en tabletas

Android 13 incluye dos nuevas pruebas basadas en tabletas. Ambas pruebas son obligatorias para dispositivos que se inician con Android 13, pero se omiten para dispositivos que se actualizan a Android 13.

Escena Nombre de la prueba Primer nivel API Descripción
2_a prueba_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 fijas YUV y JPEG son idénticas en bits.

escena2_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 flash automático y presenta una escena que requiere un evento de flash. La iluminación del banco de pruebas y de la tableta se apagan para presentar una escena oscura para el algoritmo de exposición automática. La prueba configura una secuencia de NUM_FRAMES capturas con el flash automático habilitado. Si la configuración AE_STATE devuelve FLASH_REQUIRED la prueba verifica que se dispara un flash en las capturas.

La iluminación se puede controlar manualmente cuando se le solicite, o automáticamente con un controlador Arduino con control de iluminación agregado para pruebas automatizadas. Una nueva carpeta de utilidades lighting_control_utils centraliza el código para controlar la iluminación en las pruebas.

escena2_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 utilizando los formatos YUV y JPEG más grandes y comunes con la misma relación de aspecto que el formato JPEG más grande, sin exceder una resolución de 1920x1440. La prueba establece jpeg.quality en 100 y captura una solicitud de superficie dual. Luego convierte ambas imágenes a matrices RGB y calcula la diferencia cuadrática media (RMS) 3D entre las dos imágenes. La tolerancia de diferencia se establece en 1%.

Prueba de vídeo

Camera ITS agrega soporte para pruebas de video en Android 13.

Android 13 agrega las siguientes pruebas:

Escena Nombre de la prueba Primer nivel API Descripción
4 test_preview_stabilization_fov 33 Confirma que la vista previa del video no se recorta demasiado con la estabilización habilitada.
4 test_video_aspect_ratio_and_crop 33 Confirma los formatos de vídeo FoV, relación de aspecto y recorte.
fusión de sensores prueba_vista_previa_estabilización 33 Confirma los trabajos de estabilización de vista previa.
fusión de sensores prueba_estabilización_video 33 Confirma que la estabilización de video funciona.

escena4/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 manera inapropiada.

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 vídeo y se analiza para garantizar que los cambios de FoV en los dos vídeos estén dentro de 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 más del 20%, lo que significa que el FoV cambia como máximo un 20%.

escena4/test_video_aspect_ratio_and_crop.py

Android 13 agrega la prueba test_video_aspect_ratio_and_crop . De manera similar a la prueba test_aspect_ratio_and_crop para capturas fijas, esta prueba verifica los formatos de video admitidos para garantizar que los cuadros de video no se estiren ni se recorten de manera inapropiada. Se prueban todas las calidades de los videos autoinformados. Además, si la cámara admite vídeo HLG10 , se prueba vídeo 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 RAW no es compatible. A partir de la imagen de referencia, se determinan el tamaño y la ubicación del círculo. Luego se graban vídeos cortos con todas las calidades de vídeo compatibles. El cuadro de referencia final se extrae de cada calidad de vídeo. A partir del cuadro de referencia, se calculan el campo de visión (FoV), el centrado (recorte) y la relación de aspecto para cada calidad de vídeo.

Para el cálculo de FoV, la prueba compara el tamaño del círculo del cuadro de video con el tamaño del círculo calculado a partir de los tamaños de imagen de referencia y formato de video. Para la verificación de recorte, la prueba compara el centrado del cuadro de video con el centrado de la imagen de referencia. Para comprobar la relación de aspecto, utilizando la escena, que es un gran círculo negro sobre un fondo blanco, la prueba determina la relación de aspecto del círculo y verifica que el marco 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 1920x1080. La prueba utiliza el equipo de prueba de fusión de sensores y requiere el nuevo controlador de fusión de sensores de revisión 2 o una actualización del firmware de versiones anteriores del controlador Arduino. Para obtener más detalles sobre el nuevo controlador, consulte 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 1920x1080. Se excluye la calidad de vídeo de baja resolución QCIF. La prueba utiliza el equipo de prueba de fusión de sensores y requiere el nuevo controlador de fusión de sensores de revisión 2 o una actualización del firmware de versiones anteriores del controlador Arduino. Para obtener más detalles sobre el nuevo controlador, consulte Actualizaciones y adiciones de hardware .

Método

El equipo 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 rotación del giroscopio.

Actualizaciones y adiciones de hardware

Android 13 incluye una actualización del controlador de fusión de sensores de revisión 2 basado en Arduino. Esta actualización incluye cambios de hardware y firmware. La actualización permite al controlador establecer la velocidad de rotación y el control de rayos. La actualización también incluye un nuevo escudo (que se muestra en la Figura 1), que proporciona tres canales de rotación y tres canales de control de iluminación.

Escudo Arduino rev2.0

Figura 1. Arduino Shield rev2.0 con control de rotación e iluminación.

Además, para 13, el firmware de los controladores existentes debe actualizarse para permitir el control de la velocidad de rotación. Este firmware se puede descargar desde:

Para obtener más información sobre el nuevo controlador, consulte Controlador de fusión de sensores Android 13 .

Soporte de prueba plegable

Android 13 incluye soporte de prueba para dispositivos plegables. Para habilitar la API multicámara para dispositivos plegables, se requiere el estado del teléfono ( Folded o Unfolded ) durante la prueba. Para habilitar el sondeo del estado del teléfono para todos los DUT, incluidos los teléfonos no plegables, ejecute el siguiente comando adb después de que el DUT esté conectado al host.

adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier