Google обновляет библиотеку Jetpack CameraX для поддержки Ultra HDR

Приложения и игры / Google обновляет библиотеку Jetpack CameraX для поддержки Ultra HDR
14.07.2024

Google обновляет библиотеку Jetpack CameraX для поддержки захвата изображений в формате Ultra HDR. Ultra HDR — это новый формат изображения, представленный в Android 14, который позволяет сохранять версии SDR и HDR изображения в одном файле. В настоящее время только приложения для камеры, использующие API Android Camera2, могут захватывать изображения Ultra HDR.

Новая эра HDR-фотографии

Одним из самых захватывающих недавних достижений в области смартфонной фотографии является поддержка настоящего HDR. Обработка HDR, с которой вы, вероятно, уже знакомы, в основном использует вычислительную фотографию и наложение изображений для достижения эффекта, похожего на HDR, но итоговое изображение все еще остается SDR. Начиная с Android 14, несколько Android-телефонов теперь способны захватывать настоящие HDR-фотографии, используя формат под названием Ultra HDR. Однако многие сторонние приложения с встроенной функцией камеры не могут захватывать фотографии в формате Ultra HDR, но это скоро изменится.

Ultra HDR, если вы не знакомы, это формат изображения, созданный Google и основанный на популярном формате JPEG. Поскольку он основан на JPEG, изображения Ultra HDR можно просматривать на любом устройстве, независимо от того, есть ли у него дисплей HDR или нет. Что делает изображения Ultra HDR особенными, так это то, что при просмотре на устройстве с дисплеем HDR отображается версия изображения в HDR, предлагая более яркие и контрастные цвета.

Это возможно благодаря тому, что изображения Ultra HDR представляют собой файлы JPEG с встроенной в их метаданные картой усиления HDR, которую приложения могут применять к базовой версии SDR изображения, также содержащейся в файле. Поскольку эта карта усиления HDR должна быть создана и сохранена в метаданных файла JPEG при его создании, существующие приложения для камеры необходимо обновить для поддержки этого шага. Google создала API в Android 14 для приложений камеры, чтобы сделать это, но этот API является частью Camera2, а не CameraX, что ограничивает его распространение.

Преимущества и возможности CameraX

Camera2 — это API, который поставляется с фреймворком ОС Android и предназначен для использования приложениями, которые хотят внедрить расширенные функции камеры. Подумайте о полнофункциональных сторонних приложениях для камеры с профессиональным управлением несколькими объективами. С другой стороны, CameraX — это API, который поставляется с библиотекой поддержки Jetpack и больше ориентирован на приложения, которым нужен доступ к камере для смежных функций. Например, социальные сети, которые позволяют быстро сделать снимок и поделиться им с друзьями. Разработчики сами выбирают, какой API камеры использовать, но поскольку новые функции камеры сначала разрабатываются для Camera2, разработчикам, полагающимся на CameraX, приходится ждать, пока Google перенесет эту функциональность. Некоторые функции Camera2 никогда не переходят в CameraX из-за упрощенного охвата последнего, но, к счастью, поддержка захвата Ultra HDR не является одной из таких функций.

Google объявила ранее в этом году на своей конференции разработчиков I/O 2024 о том, что они обновят свою библиотеку CameraX для поддержки захвата изображений Ultra HDR. Взглянув на примечания к выпуску библиотеки CameraX, можно увидеть, что начальная поддержка захвата Ultra HDR была добавлена в CameraX с версией 1.4.0-alpha05, выпущенной в апреле. Версия 1.4.0 CameraX введет новые API форматов вывода в классы ImageCapture и ImageCaptureCapabilities.

Эти API включают метод getSupportedOutputFormats в ImageCaptureCapabilities для запроса о том, может ли устройство захватывать изображения Ultra HDR; это должно быть возможно на любом устройстве под управлением Android 14 или выше, поскольку библиотека кодировщика поставляется с этой версией операционной системы. Если формат вывода установлен на OUTPUTFORMATJPEGULTRAHDR на устройстве, поддерживающем захват изображений Ultra HDR, то библиотека CameraX будет захватывать изображения Ultra HDR в формате изображения “JPEG/R”. (“R” в “JPEG/R” означает “Recovery map”, что относится к карте усиления HDR, встроенной в файл JPEG.)

Обновлено: 14.07.2024