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

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

На этой странице обобщены изменения 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

Изменения теста

сцена1_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.

scene3/test_lens_position.py

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

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 : пропускает тест, если вспышка недоступна.

Метод

Тест настраивает запрос на съёмку для автоматической вспышки и отображает сцену, требующую срабатывания вспышки. Освещение в тестовом стенде и планшете выключено, чтобы создать тёмную сцену для алгоритма автоэкспозиции. Тест настраивает последовательность из 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 Подтверждает форматы видео: поле зрения, соотношение сторон и обрезку.
сенсорное слияние test_preview_stabilition 33 Подтверждает предварительные работы по стабилизации.
сенсорное слияние тест_видео_стабилизация 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 обновлен контроллер слияния датчиков на базе Arduino версии 2. Это обновление включает в себя как аппаратные, так и прошивочные изменения. Обновление позволяет контроллеру настраивать скорость вращения и управлять освещением. Обновление также включает в себя новый шилд (показан на рисунке 1), который обеспечивает три канала управления вращением и три канала управления освещением.

Arduino shield rev2.0

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

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

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

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

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

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