Примечания к выпуску пакета тестирования изображения камеры Android 13

Выпуск Android 13 включает ряд изменений в Camera ITS . Помимо дополнительных изменений, таких как обновленные версии Python и пакетов, а также обновления тестового оборудования, Android 13 поддерживает видеотестирование.

На этой странице представлены изменения в Camera ITS для Android 13. Изменения делятся на семь широких категорий:

Python и версии пакетов

Android 13 поддерживает следующие версии Python в дополнение к версиям и библиотекам Python, поддерживаемым в Android 12:

Дополнения к файлу конфигурации

В связи с добавлением управления освещением для теста test_auto_flash.py файлу config.yml требуются два дополнительных параметра для контроллера и канала освещения. Чтобы определить, является ли тестируемое устройство (DUT) складным или нет, в файле config.yml требуется третий дополнительный параметр, который необходимо добавить как в разделы для планшетов, так и в разделы объединения датчиков.

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

Тестовые изменения

Scene1_1/test_black_white.py

Тест test_black_white имеет проверку насыщенности канала, соответствующую предыдущим версиям Android, а это означает, что требуемый первый уровень API для проверки насыщенности канала — Android 10.

сцена1_2/test_yuv_plus_raw.py

Тест test_yuv_plus_raw обрабатывает сенсоры с соотношением сторон не 16:9 или 4:3, чтобы обеспечить лучшую поддержку RAW. Если тест не может найти общий формат между форматом RAW датчика и форматами захвата YUV, тест сравнивает захват RAW с самым большим захватом YUV, даже если соотношения сторон различаются.

Scene2_a/test_faces.py

test_faces реорганизуется в test_num_faces .

Scene2_a/test_num_faces.py

Тест test_num_faces обрабатывает обрезку сенсора и правильно размещает прямоугольники лица на кадрированных снимках камеры UW.

сцена3/test_lens_position.py

Тест test_lens_position устарел в Android 13.

сцена6/test_zoom.py

Тест test_zoom переработан, чтобы упростить тестирование систем с тремя и четырьмя камерами. Если камера правильно тестирует диапазон масштабирования 10x, тест завершается правильно. Это позволяет выполнять тестирование масштабирования на одном расстоянии карты.

Scene_change/test_scene_change.py

Тест test_scene_change устарел в Android 13.

Новые планшетные тесты

Android 13 включает в себя два новых теста для планшетов. Оба теста обязательны для устройств, запускаемых с Android 13, но пропускаются для устройств, обновляющихся до Android 13.

Сцена Название теста Первый уровень API Описание
2_а test_auto_flash 33 Подтверждает, что темные сцены активируют автоматическую вспышку.
2_б test_yuv_jpg_capture_sameness 33 Подтверждает, что снимки YUV и JPEG побитово идентичны.

Scene2_a/test_auto_flash.py

В Android 13 добавлен тест test_auto_flash .

Параметры

  • flash : Пропускает тест, если флэш-память недоступна.

Метод

Тест настраивает запрос захвата для автоматической вспышки и представляет сцену, требующую события вспышки. Освещение на испытательном стенде и планшете выключено, чтобы обеспечить темную сцену для алгоритма автоматической экспозиции. Тест настраивает последовательность снимков NUM_FRAMES с включенной автоматической вспышкой. Если параметр AE_STATE возвращает FLASH_REQUIRED тест проверяет, срабатывает ли вспышка при снимках.

Освещением можно управлять вручную по запросу или автоматически с помощью контроллера Arduino с добавленным управлением освещением для автоматического тестирования. Новая папка утилит lighting_control_utils централизует код для управления освещением в тестах.

Scene2_a/test_yuv_jpeg_capture_sameness.py

В Android 13 добавлен тест test_yuv_jpeg_capture_sameness .

Параметры

  • streamUseCase : определяет, поддерживает ли камера вариант использования потока.
  • android.jpeg.quality : устанавливает качество JPEG на 100.

Метод

В этом тесте захватываются два изображения с использованием самых крупных распространенных форматов YUV и JPEG с тем же соотношением сторон, что и самый большой формат JPEG, но не превышающим разрешение 1920x1440. Тест устанавливает jpeg.quality значение 100 и фиксирует запрос двойной поверхности. Затем он преобразует оба изображения в массивы RGB и вычисляет трехмерную среднеквадратическую разницу (RMS) между двумя изображениями. Допуск разницы установлен на уровне 1%.

Видео тестирование

Camera ITS добавляет поддержку тестирования видео в Android 13.

В Android 13 добавлены следующие тесты:

Сцена Название теста Первый уровень API Описание
4 test_preview_stabilization_fov 33 Подтверждает, что предварительный просмотр видео не обрезается слишком сильно при включенной стабилизации.
4 test_video_aspect_ratio_and_crop 33 Подтверждает форматы видео, поле зрения, соотношение сторон и обрезку.
датчик_fusion test_preview_stabilition 33 Подтверждает работу стабилизации предварительного просмотра.
датчик_fusion test_video_stabilition 33 Подтверждает работу стабилизации видео.

Scene4/test_preview_stabilization_fov.py

В Android 13 добавлен тест test_preview_stabilization_fov . В ходе этого теста проверяются поддерживаемые размеры предварительного просмотра, чтобы убедиться, что поле зрения не обрезано ненадлежащим образом.

Метод

В тесте снимается два видео: одно с включенной стабилизацией предварительного просмотра, а другое с выключенной стабилизацией предварительного просмотра. Из каждого видео выбирается репрезентативный кадр и анализируется, чтобы убедиться, что изменения поля зрения в двух видео находятся в пределах спецификаций.

В частности, тест проверяет следующие параметры со стабилизацией предварительного просмотра и без нее:

  • Округлость круга остается постоянной.
  • Центр круга остается стабильным.
  • Размер круга меняется не более чем на 20%, то есть поле зрения меняется не более чем на 20%.

Scene4/test_video_aspect_ratio_and_crop.py

В Android 13 добавлен тест test_video_aspect_ratio_and_crop . Подобно тесту test_aspect_ratio_and_crop для снимков, этот тест проверяет поддерживаемые форматы видео, чтобы убедиться, что видеокадры не растянуты или не обрезаны ненадлежащим образом. Все качества видео, о которых сообщают сами пользователи, проверяются. Кроме того, если камера поддерживает видео HLG10 , тестируется 10-битное видео.

Android 13 добавляет метод get_available_video_qualities в its_session_utils . Чтобы использовать общий код с существующими тестами, Android 13 также включает две новые служебные функции: image_fov_utils и video_processing_utils .

Метод

В ходе теста захватывается эталонное изображение в формате RAW или формате JPEG с самым высоким разрешением, если RAW не поддерживается. По эталонному изображению определяются размер и местоположение круга. Затем снимаются короткие видеоролики со всеми поддерживаемыми качествами видео. Окончательный опорный кадр извлекается из каждого качества видео. На основе опорного кадра для каждого качества видео рассчитываются поле зрения (FoV), центрирование (обрезка) и соотношение сторон.

Для расчета поля зрения тест сравнивает размер круга видеокадра с рассчитанным размером круга на основе размеров эталонного изображения и формата видео. При проверке обрезки тест сравнивает центрирование видеокадра с центрированием эталонного изображения. Для проверки соотношения сторон используется сцена, представляющая собой большой черный круг на белом фоне. Тест определяет соотношение сторон круга и проверяет, не искажен ли кадр.

Sensor_fusion/test_preview_stabilization.py

В Android 13 добавлен тест test_preview_stabilization , который проверяет все поддерживаемые качества предварительного просмотра до разрешения 1920x1080. В тесте используется испытательный стенд Sensor Fusion и требуется новый контроллер Sensor Fusion версии 2 или обновление прошивки более ранних версий контроллера Arduino. Более подробную информацию о новом контроллере см. в разделе Обновления и дополнения оборудования .

Метод

Телефон медленно перемещается под углом примерно 15 градусов с включенной стабилизацией предварительного просмотра. Затем вращение изображений сравнивается с вращением гироскопа.

Sensor_fusion/test_video_stabilization.py

В Android 13 добавлен тест test_video_stabilization , который проверяет поддерживаемое качество видео до 1920x1080. Качество видео низкого разрешения QCIF исключено. В тесте используется испытательный стенд Sensor Fusion и требуется новый контроллер Sensor Fusion версии 2 или обновление прошивки более ранних версий контроллера Arduino. Более подробную информацию о новом контроллере см. в разделе Обновления и дополнения оборудования .

Метод

Испытательная установка медленно перемещает телефон под углом примерно 15 градусов с включенной стабилизацией предварительного просмотра. Затем вращение изображений сравнивается с вращением гироскопа.

Обновления и дополнения оборудования

Android 13 включает обновление до контроллера Sensor Fusion версии 2 на базе Arduino. Это обновление включает в себя изменения как аппаратного обеспечения, так и встроенного ПО. Обновление позволяет контроллеру задавать скорость вращения и управление молнией. Модернизация также включает в себя новый щиток (показан на рисунке 1), обеспечивающий три канала вращения и три канала управления освещением.

Шилд Arduino версии 2.0

Рисунок 1. Arduino Shield rev2.0 с управлением вращением и подсветкой

Дополнительно для 13 необходимо обновить прошивку существующих контроллеров, чтобы обеспечить возможность управления скоростью вращения. Эту прошивку можно скачать по адресу:

Дополнительную информацию о новом контроллере можно найти в разделе «Контроллер сенсора Android 13 ».

Складная поддержка тестирования

Android 13 включает поддержку тестирования складных устройств. Чтобы включить многокамерный API для складных устройств, во время тестирования требуется состояние телефона ( Folded или Unfolded ). Чтобы включить опрос состояния телефона для всех DUT, включая нескладные телефоны, выполните следующую команду adb после подключения DUT к хосту.

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