На устройствах под управлением Android 13 и более поздних версий Android поддерживает 10-битный вывод изображения с камеры посредством профилей динамического диапазона, которые клиент камеры может настроить в рамках конфигурации потока. Производители устройств могут добавить поддержку 10-битных профилей динамического диапазона, таких как HLG10, HDR 10, HDR 10+ и Dolby Vision.
Поддержка 10-битного вывода камеры позволяет клиентам камеры обнаруживать поддерживаемые 10-битные профили динамического диапазона устройства, вызывая getSupportedProfiles
. Затем фреймворк возвращает экземпляр DynamicRangeProfiles
, содержащий информацию о поддерживаемых профилях динамического диапазона и, если доступно, ограничениях запроса на захват. Необходимо поддерживать профиль HLG10
. Рекомендуемый профиль динамического диапазона указан в поле REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILE
.
Клиенты камеры могут настраивать комбинации потоков, вызывая setDynamicRangeProfile
. Подробнее об обязательных комбинациях выходных потоков см. в таблице дополнительных гарантированных конфигураций 10-битного вывода в разделе «Обычный захват» .
Требования
Для поддержки 10-битного видеосигнала камера должна быть оснащена сенсором с разрешением 10 бит или выше и поддержкой соответствующего интернет-провайдера. Подробнее о требованиях к совместимости для поддержки 10-битного видео см. в разделе 7.5. Камеры в CDD.
Выполнение
Чтобы обеспечить поддержку 10-битного выхода камеры, производители устройств должны выполнить следующие интеграции Camera AIDL HAL:
- Включить
ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT
в возможности камеры. - Заполните
ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP
всеми поддерживаемыми профилями динамического диапазона и растровой картой их ограничений. ПрофильHLG10
должен поддерживаться. Также необходимо включить рекомендуемый профиль динамического диапазона, чтобы информировать клиентов камеры об оптимальном поддерживаемом формате. - Обеспечьте поддержку значения профиля динамического диапазона во время настройки потока для потоков, использующих формат P010 или поддержку формата, определяемого реализацией (
ImageFormat.PRIVATE
). - В зависимости от профиля динамического диапазона установите статический или динамический буфер метаданных обработанных буферов Gralloc 4 перед уведомлением службы камеры.
Более подробную информацию о 10-битном выходе камеры в Camera HAL см. в metadata_definitions.xml
:
-
DYNAMIC_RANGE_TEN_BIT
- Подробности HAL для
availableDynamicRangeProfilesMap
-
recommendedTenBitDynamicRangeProfile
-
10BIT_OUTPUT
Информацию о реализации Camera HAL, поддерживающей 10-битный вывод камеры, можно найти на странице /hardware/google/camera/devices/EmulatedCamera/hwl
.
Проверка
Чтобы проверить реализацию 10-битного вывода камеры и убедиться, что сторонние приложения смогут включить эту функцию, мы рекомендуем выполнить следующие три этапа проверки.
- Тестирование функциональной корректности API
- Сравните родную камеру и стороннее приложение
- Сравните стандартный динамический диапазон и расширенный динамический диапазон
Для визуальной проверки 10-битного вывода камеры предполагается, что устройство поддерживает отображение HDR (яркость дисплея более 1000 нит), а приложение для просмотра видео (например, Google Фото) поддерживает воспроизведение HDR-видео.
Тестирование функциональной корректности API
Чтобы проверить корректность работы API 10-битного выходного сигнала камеры, выполните следующие тесты CTS, ITS камеры и VTS:
-
hardware/interfaces/camera/provider/aidl/vts/
: Тесты для базового обнаружения, настройки и потоковой передачи, а также проверки наличия метаданных HDR при необходимости. -
tests/camera/src/android/hardware/camera2/cts/
: Гарантирует, что камера ведет себя в соответствии со спецификациями API AOSP. -
cts/apps/CameraITS
: подтверждает единообразие общего поведения видео при использовании профилей HDR. Конкретный тест —tests/scene4/test_video_aspect_ratio_and_crop.py
.
Сравните родную камеру и стороннее приложение
Мы настоятельно рекомендуем убедиться, что результаты съёмки 10-битного видео сторонним приложением аналогичны, если не идентичны, результатам съёмки во встроенном приложении камеры. Это означает, что настройки, такие как экспозиция, динамический диапазон и цветопередача, должны быть перенесены из встроенного приложения в сторонние приложения. Чтобы проверить работу стороннего приложения, поддерживающего 10-битный вывод камеры на вашем устройстве, используйте пример приложения Camera2Video на GitHub. Данное руководство призвано проиллюстрировать видимые аспекты HDR без использования объективных цифр из-за различий в характеристиках сенсоров, панелей, условий просмотра и предпочтений поставщиков.
Предлагаемые сцены для сравнения
Чтобы сравнить стандартное приложение камеры и стороннее приложение, снимите видео с использованием нескольких различных сцен как с помощью стандартного приложения камеры, так и с помощью приложения-образца Camera2Video. Ниже приведены рекомендуемые сцены для сравнения:
- Сцена со средним или слабым освещением и ярким объектом, например, свечой или небольшим ярким источником света, создающим значительный диапазон яркости. Это подтверждает работу автоматической экспозиции и динамического диапазона.
- Яркий пейзаж на открытом воздухе с яркими цветами и отражающими объектами, такими как хромированные бамперы автомобилей, создающими яркие блики. Это подтверждает визуализацию ярких сцен с ещё более яркими бликами.
- Сцена со средним и низким динамическим диапазоном, например, естественная сцена в помещении дома или офиса. Это подтверждает, что менее экстремальные условия освещения ведут себя ожидаемо.
Для всех сцен мы рекомендуем использовать изображения людей и лиц для проверки экспозиции, цвета и тона кожи. Уменьшение вариаций от кадра к кадру упрощает сравнение кадров подряд.
Сравните стандартный динамический диапазон и расширенный динамический диапазон
Чтобы убедиться в ощутимом преимуществе использования 10-битного профиля динамического диапазона по сравнению со стандартным, сравните видео, снятые в SDR (без профиля HDR), с HDR-видео, чтобы убедиться в наличии ключевых аспектов HDR в снимках. Для сравнения SDR и HDR используйте пример приложения Camera2Video и рекомендуемые сцены для сравнения встроенного приложения камеры и сторонних приложений.
Ниже приведены ключевые аспекты, которые следует проверить в предлагаемых сценах. Дисплеи с поддержкой HDR различаются по уровню яркости (измеряемой в нитах или люменах), поэтому приведенные ниже значения приведены в качестве примеров:
- В сцене со средним и слабым освещением яркие блики свечи или небольшого источника света отображаются с максимальной яркостью дисплея (возможно, до 1000 нит) в HDR-клипе, а также с максимальной яркостью SDR (примерно 100 нит) в SDR-клипе. В HDR-клипе яркие блики должны выходить за пределы дисплея, передавая восприятие пользователем истинного динамического диапазона сцены. По сравнению с HDR-клипом, SDR-клип должен выглядеть более плоским и менее ярким.
- В яркой сцене, в зависимости от настроек устройства, HDR-клип демонстрирует очевидную разницу в яркости экрана по сравнению с SDR-клипом. Для HDR-клипа яркость экрана для всей сцены (в зависимости от габаритов) должна быть выше, например, до 800 нит, и ещё выше для ярких элементов, таких как хромированные бамперы, около максимальной яркости.
- При съёмке в помещении со средним и низким динамическим диапазоном HDR- и SDR-клипы схожи по цвету и тону, причём HDR-снимок потенциально ярче SDR. HDR-снимок не должен быть темнее SDR. Если настройки не позволяют это сделать, убедитесь, что поведение стороннего приложения соответствует поведению встроенного приложения камеры.