Выпуск Android 13 включает ряд изменений в Camera ITS . Помимо дополнительных изменений, таких как обновленные версии Python и пакетов, а также тестовые обновления оборудования, Android 13 поддерживает видеотестирование.
На этой странице кратко изложены изменения Camera ITS для Android 13. Изменения делятся на семь широких категорий:
- Python и версии пакетов
- Дополнения к конфигурационному файлу
- Тестовые изменения
- Новые тесты на планшетах
- Видео тестирование
- Аппаратные обновления и дополнения
- Складная опора для тестирования
Python и версии пакетов
Android 13 поддерживает следующие версии Python в дополнение к версиям и библиотекам Python, поддерживаемым в Android 12:
- Питон 3.9.2
- OpenCV 4.2.0
- Нампи 1.20.3
- Матплотлиб 3.3.4
- Сципи 1.6.2
- pySerial 3.5
- Подушка 8.3.1
- ПиЯМЛ 5.4.1
- Мобильный 1.11
- FFmpeg 4.4.1
Дополнения к конфигурационному файлу
В связи с добавлением управления освещением для теста 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.
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
обрабатывает кадрирование сенсора и правильно размещает прямоугольники лиц на кадрированных снимках камеры UW.
сцена3/test_lens_position.py
Тест test_lens_position
устарел в Android 13.
сцена6/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_стабилизация_fov | 33 | Подтверждает, что предварительный просмотр видео не обрезается слишком сильно при включенной стабилизации. |
4 | test_video_aspect_ratio_and_crop | 33 | Подтверждает видеоформаты FoV, соотношение сторон и кадрирование. |
Sensor_fusion | test_preview_stabilition | 33 | Подтверждает, что стабилизация предварительного просмотра работает. | Sensor_fusion | test_video_stabilition | 33 | Подтверждает, что стабилизация видео работает. |
сцена4/test_preview_стабилизация_fov.py
В Android 13 добавлен тест test_preview_stabilization_fov
. Этот тест проверяет поддерживаемые размеры предварительного просмотра, чтобы убедиться, что поле зрения не обрезано ненадлежащим образом.
Метод
Тест снимает два видео, одно с включенной стабилизацией предварительного просмотра и одно с выключенной стабилизацией предварительного просмотра. Репрезентативный кадр выбирается из каждого видео и анализируется, чтобы убедиться, что изменения поля зрения в двух видео находятся в пределах спецификаций.
В частности, тест проверяет следующие параметры со стабилизацией предварительного просмотра и без нее:
- Округлость окружности остается постоянной.
- Центр круга остается стабильным.
- Размер круга изменяется не более чем на 20%, то есть поле зрения изменяется не более чем на 20%.
сцена4/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_стабилизация.py
В Android 13 добавлен тест test_preview_stabilization
, который проверяет все поддерживаемые качества предварительного просмотра до 1920x1080. В тесте используется испытательный стенд для слияния датчиков , и для него требуется новый контроллер слияния датчиков версии 2 или обновление прошивки более ранних версий контроллера Arduino. Дополнительные сведения о новом контроллере см. в разделе Обновления и дополнения оборудования .
Метод
Телефон медленно перемещается под углом примерно 15 градусов с включенной стабилизацией предварительного просмотра. Затем вращение изображений сравнивается с вращением гироскопа.
Sensor_fusion/test_video_стабилизация.py
В Android 13 добавлен тест test_video_stabilization
, который проверяет поддерживаемое качество видео до 1920x1080. Качество видео с низким разрешением QCIF исключено. В тесте используется испытательный стенд для слияния датчиков , и для него требуется новый контроллер слияния датчиков версии 2 или обновление прошивки более ранних версий контроллера Arduino. Дополнительные сведения о новом контроллере см. в разделе Обновления и дополнения оборудования .
Метод
Тестовая установка медленно перемещает телефон под углом примерно 15 градусов с включенной стабилизацией предварительного просмотра. Затем вращение изображений сравнивается с вращением гироскопа.
Аппаратные обновления и дополнения
Android 13 включает в себя обновление до контроллера слияния датчиков версии 2 на базе Arduino. Это обновление включает в себя как аппаратные, так и микропрограммные изменения. Обновление позволяет контроллеру устанавливать скорость вращения и управление молнией. Модернизация также включает в себя новый щит (показан на рис. 1), обеспечивающий три канала вращения и три канала управления освещением.
Рисунок 1. Arduino Shield rev2.0 с управлением вращением и освещением
Кроме того, для версии 13 необходимо обновить прошивку существующих контроллеров, чтобы включить управление скоростью вращения. Эту прошивку можно скачать с:
Дополнительные сведения о новом контроллере см. в статье Контроллер слияния сенсоров Android 13 .
Складная опора для тестирования
Android 13 включает тестовую поддержку складных устройств. Чтобы включить многокамерный API для складных устройств, во время тестирования требуется состояние телефона (в Folded
или Unfolded
). Чтобы включить опрос состояния телефона для всех тестируемых устройств, включая нескладные телефоны, выполните следующую команду adb после подключения тестируемого устройства к хосту.
adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier