Выпуск Android 13 включает ряд изменений в Camera ITS . Помимо постепенных изменений, таких как обновленные версии Python и пакетов, а также обновления тестового оборудования, Android 13 поддерживает тестирование видео.
На этой странице обобщены изменения Camera ITS для Android 13. Изменения делятся на семь основных категорий:
- Версии Python и пакетов
- Дополнения к файлу конфигурации
- Тестовые изменения
- Новые тесты на основе планшетов
- Видео тестирование
- Обновления и дополнения оборудования
- Складная испытательная опора
Версии Python и пакетов
Android 13 поддерживает следующие версии Python в дополнение к версиям и библиотекам Python, поддерживаемым в Android 12:
- Питон 3.9.2
- OpenCV4.2.0
- Numpy 1.20.3
- Matplotlib 3.3.4
- Сципи 1.6.2
- pySerial 3.5
- Подушка 8.3.1
- PyYAML5.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.
сцена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), который обеспечивает три канала вращения и три канала управления освещением.
Рисунок 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