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