10-битный выход камеры

Для устройств под управлением 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-битного или более высокого разрешения, а также соответствующую поддержку ISP. Подробную информацию о требованиях к совместимости для поддержки 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 :

Пример реализации Camera HAL, поддерживающей 10-битный вывод изображения с камеры, см. в файле /hardware/google/camera/devices/EmulatedCamera/hwl .

Валидация

Для проверки вашей реализации 10-битного вывода изображения с камеры и обеспечения возможности включения этой функции сторонними приложениями мы рекомендуем выполнить следующие три этапа проверки.

Для визуальной проверки 10-битного выходного сигнала камеры предполагается, что устройство поддерживает отображение HDR (дисплей с яркостью более 1000 нит), а приложение для просмотра видео (например, Google Фото) поддерживает воспроизведение HDR-видео.

Проверка функциональной корректности API

Для проверки функциональной корректности API 10-битного вывода с камеры выполните следующие тесты CTS, Camera ITS и VTS:

Сравните встроенную камеру и сторонние приложения.

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