Выпуск Android 13 включает ряд изменений в Camera ITS . Помимо дополнительных изменений, таких как обновленные версии Python и пакетов, а также обновления тестового оборудования, Android 13 поддерживает видеотестирование.
На этой странице представлены изменения в Camera ITS для Android 13. Изменения делятся на семь широких категорий:
- Python и версии пакетов
- Дополнения к файлу конфигурации
- Тестовые изменения
- Новые планшетные тесты
- Видео тестирование
- Обновления и дополнения оборудования
- Складная поддержка тестирования
Python и версии пакетов
Android 13 поддерживает следующие версии Python в дополнение к версиям и библиотекам Python, поддерживаемым в Android 12:
- Питон 3.9.2
- ОпенКВ 4.2.0
- Нампи 1.20.3
- Матплотлиб 3.3.4
- Сципи 1.6.2
- pySerial 3.5
- Подушка 8.3.1
- ПиЯМЛ 5.4.1
- Мобли 1.11
- ФФмпег 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
Тестовые изменения
Scene1_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.
сцена3/test_lens_position.py
Тест test_lens_position
устарел в Android 13.
сцена6/test_zoom.py
Тест test_zoom
переработан, чтобы упростить тестирование систем с тремя и четырьмя камерами. Если камера правильно тестирует диапазон масштабирования 10x, тест завершается правильно. Это позволяет выполнять тестирование масштабирования на одном расстоянии карты.
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 | Подтверждает форматы видео, поле зрения, соотношение сторон и обрезку. |
датчик_fusion | test_preview_stabilition | 33 | Подтверждает работу стабилизации предварительного просмотра. | датчик_fusion | test_video_stabilition | 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 включает обновление до контроллера Sensor Fusion версии 2 на базе Arduino. Это обновление включает в себя изменения как аппаратного обеспечения, так и встроенного ПО. Обновление позволяет контроллеру задавать скорость вращения и управление молнией. Модернизация также включает в себя новый щиток (показан на рисунке 1), обеспечивающий три канала вращения и три канала управления освещением.
Рисунок 1. Arduino Shield rev2.0 с управлением вращением и подсветкой
Дополнительно для 13 необходимо обновить прошивку существующих контроллеров, чтобы обеспечить возможность управления скоростью вращения. Эту прошивку можно скачать по адресу:
Дополнительную информацию о новом контроллере можно найти в разделе «Контроллер сенсора Android 13» .
Складная поддержка тестирования
Android 13 включает поддержку тестирования складных устройств. Чтобы включить многокамерный API для складных устройств, во время тестирования требуется состояние телефона ( Folded
или Unfolded
). Чтобы включить опрос состояния телефона для всех DUT, включая нескладные телефоны, выполните следующую команду adb после подключения DUT к хосту.
adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier