Примечания к выпуску пакета тестирования изображения камеры 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

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

сцена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, даже если соотношения сторон различаются.

сцена2_a/test_faces.py

test_faces преобразован в test_num_faces .

сцена2_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 переработан для упрощения тестирования систем из трех и четырех камер. Если камера правильно тестирует в диапазоне 10-кратного масштабирования, тест завершается правильно. Это позволяет проводить тестирование масштабирования на одном расстоянии диаграммы.

изменение_сцены/тест_изменение_сцены.py

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

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

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

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

сцена2_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 тест_видео_соотношение_и_обрезка 33 Подтверждает форматы видео, поле зрения, соотношение сторон и обрезку.
сенсор_фьюжн test_preview_stabilition 33 Подтверждает предварительные работы по стабилизации.
сенсор_фьюжн тест_видео_стабильность 33 Подтверждает работу видеостабилизации.

scene4/test_preview_stabilization_fov.py

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

Метод

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

Arduino шилд rev2.0

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

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

Более подробную информацию о новом контроллере можно найти в разделе Контроллер Android 13 Sensor Fusion .

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

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

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