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

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

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

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

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

Добавление элементов в конфигурационный файл

В связи с добавлением управления освещением для теста 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.

scene1_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 обрабатывает кадрирование сенсора и корректно размещает прямоугольники с лицами на кадрированных снимках, полученных с помощью подводной камеры.

scene3/test_lens_position.py

В Android 13 тест test_lens_position устарел.

scene6/test_zoom.py

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

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 : Пропускает проверку, если 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%.

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

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

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

Сцена Название теста Первый уровень API Описание
4 test_preview_stabilization_fov 33 Подтверждается, что предварительный просмотр видео не сильно обрезается при включенной стабилизации.
4 test_video_aspect_ratio_and_crop 33 Подтверждает форматы видео: угол обзора, соотношение сторон и кадрирование.
sensor_fusion test_preview_stabilition 33 Подтверждает, что стабилизация предварительного просмотра работает.
sensor_fusion тест_видео_стабилизация 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), центрирование (кадрирование) и соотношение сторон.

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

sensor_fusion/test_preview_stabilization.py

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

Метод

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

sensor_fusion/test_video_stabilization.py

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

Метод

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

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

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

Плата расширения Arduino, версия 2.0

Рисунок 1. Плата расширения Arduino версии 2.0 с управлением вращением и подсветкой.

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

Для получения более подробной информации о новом контроллере см. раздел «Контроллер объединения датчиков Android 13» .

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

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

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