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