Для устройств под управлением 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. Камеры в ЦДД.
Выполнение
Чтобы обеспечить поддержку 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 Photos) поддерживает воспроизведение 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. Если выбор настройки делает это невозможным, убедитесь, что поведение стороннего приложения соответствует поведению собственного приложения камеры.