Камеры смартфонов линейки Pixel и Nexus никогда не представляли собой ничего выдающегося, но за последние четыре года сделали мощный рывок вперед и теперь занимают первые строчки рейтингов. Почему так произошло? Потому что Google внедрила программный механизм постобработки фотографий под названием HDR+. В этой статье мы расскажем, как он работает и как активировать HDR+ на своем смартфоне, независимо от его марки.
 

Что такое HDR

Для полного понимания принципа работы HDR+ придется для начала разобраться с обычным HDR.

Основная проблема всех камер смартфонов — маленький размер матрицы (а точнее — фотоячеек) и, как следствие, недостаточный охват динамического диапазона. Чтобы исправить этот недостаток, был разработан алгоритм HDR (High-Dynamic Range), принцип работы которого следующий: камера делает кадр со стандартным для данной сцены уровнем экспозиции, затем делает недоэкспонированный кадр, на котором будут четко видны лишь пересвеченные области изначального снимка, далее выполняется переэкспонированный снимок, на котором видны только затемненные детали изначального снимка, а все остальное пересвечено. Далее снимки накладываются друг на друга и объединяются при помощи специальных алгоритмов, качество которых зависит от производителя софта камеры. В результате получается снимок с хорошей проработкой деталей как в тенях, так и в более светлых местах.

Недостатки HDR очевидны: долгое время съемки приводит к тому, что попавшие в кадр движущиеся объекты будут двоиться, а даже небольшая тряска смажет картинку.

 

Что такое HDR+

Умные головы придумали алгоритм, лишенный недостатков HDR. Впрочем, общее с HDR у него одно лишь название.

HDR+ расшифровывается как High-Dynamic Range + Low Noise. Свою известность он получил за ряд выдающихся возможностей: алгоритм способен устранять шумы практически без потери детализации, повышать качество цветопередачи, что крайне важно при плохом освещении и по краям кадра, вместе с этим он сильно расширяет динамический диапазон фотографии. HDR+, в отличие от стандартного HDR, почти не боится тряски смартфона и движения в кадре.

Первым смартфоном с поддержкой HDR+ стал Nexus 5. Из-за не самого лучшего баланса белого и маленького отверстия диафрагмы (f2.4) камера этого смартфона считалась не более чем крепким середнячком. Все изменилось с выходом обновления Android 4.4.2. Именно оно принесло с собой поддержку режима HDR+ и изумительное качество ночных снимков. Они хоть и не отличались большой яркостью по всему полю кадра, но благодаря HDR+ практически не содержали шума при сохранении мелких деталей и обладали превосходной (для смартфонов 2013 года) передачей цветов.

Nexus 5 + HDR+
Nexus 5 + HDR+

(Изображение в исходном качестве)

 

История создания HDR+

Как же компания, никогда не занимавшаяся камерами, создала алгоритм, который творит чудеса, используя обычные, по меркам флагманов, камеры Nexus и Pixel?

Все началось в 2011 году, когда Себастьян Трун (Sebastian Thrun), глава компании Google X (теперь уже просто X), подыскивал камеру для очков дополненной реальности Google Glass. Массогабаритные требования предъявлялись очень жесткие. Размер матрицы камеры должен был быть еще меньше, чем в смартфонах, что крайне плохо сказывалось бы на динамическом диапазоне и приводило бы к появлению множества шумов на фотографии.

Выход оставался один — попытаться улучшить фотографию программно, с помощью алгоритмов. Эту задачу должен был решить Марк Левой (Marc Levoy), преподаватель факультета информатики Стэнфордского университета, эксперт в области вычислительной фотографии. Он занимался технологией захвата и обработки изображений на базе программного обеспечения.

Марк сформировал команду, известную как Gcam, которая занялась изучением метода Image Fusion (сплавление изображений), основанного на объединении серии снимков в один кадр. Фотографии, обработанные при помощи этого метода, получались более яркими и резкими, имели малое количество шумов. В 2013 году технология дебютировала в Google Glass, а затем, в этом же году, переименованная в HDR+, появилась в Nexus 5.

Еще один ночной снимок с Nexus 5
Еще один ночной снимок с Nexus 5

(Изображение в исходном качестве)

 

Как работает HDR+

HDR+ — чрезвычайно сложная технология, детально разобрать которую в рамках данной статьи невозможно. Поэтому мы рассмотрим общий принцип работы, не останавливаясь на деталях.

 

Фундаментальный принцип

После нажатия кнопки спуска затвора камера захватывает серию недоэкспонированных (с короткой выдержкой) кадров (это нужно для сохранения максимального количества деталей на снимке). Количество кадров зависит от сложности условий освещения. Чем темнее сцена или чем больше деталей в тени нужно осветить, тем больше кадров выполняет смартфон.

Когда серия снимков будет сделана, она объединяется в один снимок. Тут выручает заниженная выдержка, благодаря которой каждая фотография в серии выглядит относительно четко. Из трех первых кадров выбирается самый приемлемый в плане как резкости, так и детализации для использования в качестве основы. Затем полученные снимки разделяются на фрагменты и система проверяет, можно ли совместить соседние фрагменты и как это сделать. Обнаружив лишние предметы в одном из фрагментов, алгоритм удаляет этот фрагмент и выбирает похожий с другого кадра. Полученные снимки обрабатываются с помощью специального алгоритма, основанного на методе удачных экспозиций (в основном он применяется в астрофотографии для уменьшения размытости изображений, вызванной мерцающей атмосферой Земли).

Далее в дело вступает сложная система подавления шумов, которая включает в себя как простой метод усреднения цвета пикселей на основе нескольких снимков, так и систему предсказания появления шумов. Алгоритм работает очень мягко на границах переходов тональностей, чтобы минимизировать потерю детализации, пусть даже и ценой наличия небольшого количества шума в таких местах. А вот на участках с равномерной текстурой «шумодав» выравнивает картинку вплоть до почти идеально равномерного тона с сохранением перехода оттенков.

Работа шумодава в сложных условиях. Слева до обработки, а справа — после
Работа шумодава в сложных условиях. Слева до обработки, а справа — после

(Изображение в исходном качестве)

А как же расширение динамического диапазона? Как мы уже знаем, использование короткой выдержки избавляет нас от пересвеченных мест. Осталось только удалить шумы на темном участке ранее описанным алгоритмом.

На завершающем этапе выполняется постобработка полученного изображения: алгоритм делает минимизацию виньетирования, обусловленного попаданием света на матрицу под наклонным углом, корректирует хроматическую аберрацию заменой пикселей у высококонтрастных краев на соседние, увеличивает насыщенность зелени, синие и пурпурные оттенки смещает в сторону голубого, усиливает резкость (шарпинг) и выполняет ряд других шагов, повышающих качество фотографии.

Иллюстрация работы конвейерного алгоритма HDR+ из доклада разработчиков
Иллюстрация работы конвейерного алгоритма HDR+ из доклада разработчиков

Слева фотография из стоковой камеры Samsung в HDR, а справа фотография, созданная в Gcam в HDR+. Видно, что алгоритм принес в жертву детализацию неба для прорисовки объектов на земле.


(Изображение в исходном качестве)


(Изображение в исходном качестве)

 

Обновление HDR+ в Google Pixel

В Google Pixel алгоритм претерпел существенные изменения. Теперь смартфон начинает снимать сразу после запуска камеры и в зависимости от степени освещения делает от 15 до 30 кадров в секунду. Эта технология называется ZSL (Zero Shutting Lag) и была придумана для того, чтобы делать моментальные снимки. Но Pixel использует ее для работы HDR+: при нажатии на кнопку спуска смартфон выбирает от 2 до 10 кадров из буфера ZSL (в зависимости от условий освещения и наличия движущихся объектов). Затем из первых двух-трех кадров выбирается лучший, а остальные, как и в предыдущей версии алгоритма, слоями накладываются на основной.

Наряду с этим появилось разделение на два режима: HDR+ Auto и HDR+. Последний берет максимально большое количество снимков для создания итоговой фотографии. Она получается более сочной и яркой.

HDR+ Auto делает меньше фотографий, благодаря чему движущиеся объекты становятся менее размытыми, влияние тряски рук ниже, а фотография готова практически мгновенно после нажатия на кнопку съемки.

В версии Google Камеры для Pixel 2/2XL режим HDR+ Auto был переименован в HDR+ On, а HDR+ стал называться HDR+ Enhanced.

Во втором поколении Google Pixel появился специальный сопроцессор, называемый Pixel Visual Core. В настоящее время чип применяется только для ускоренной обработки фотографий в режиме HDR+, а также предоставляет сторонним приложениям возможность выполнять снимки в HDR+. На качестве фотографий, сделанных Google Камерой, его наличие или отсутствие никак не сказывается.

INFO

Google использует HDR+ даже для устранения проблем с железом. Из-за конструктивной ошибки Google Pixel / Pixel XL мог сделать фотографию с сильным засветом. Google выпустила обновление, которое использует HDR+, чтобы убрать этот засвет, комбинируя снимки.

 

Преимущества и недостатки

Выделим основные достоинства HDR+:

  • Алгоритм замечательно устраняет шумы с фотографий, практически не искажая детали.
  • Цвета в темных сюжетах гораздо насыщеннее, чем при однокадровой съемке.
  • Движущиеся объекты на снимках реже двоятся, чем при съемке в режиме HDR.
  • Даже при создании кадра в условиях недостаточной освещенности вероятность смазывания картинки из-за дрожания камеры сведена к минимуму.
  • Динамический диапазон шире, чем без использования HDR+.
  • Цветопередача преимущественно получается естественней, чем при однокадровой съемке (не для всех смартфонов), особенно по углам снимка.

На ниже размещенных иллюстрациях слева расположена фотография со стоковой камеры Galaxy S7, а в правой части — фото в HDR+ через Google Камеру на том же устройстве.

Ночные фотографии города. Тут прекрасно видно, что HDR+ дает нам возможность получить отчетливое изображение группы граждан, расположившихся под вывеской Билайн. Небо выглядит чисто, дорожный знак отчетливо. Трава, как и должна быть, зеленая. Вывеска Билайн с правильной передачей цветов. Отчетливая прорисовка балконов, проводов и крон деревьев. Важно — проработка деталей на деревьях справа (в тени) у HDR+ несколько хуже, чем у стоковой камеры.


(Изображение в исходном качестве)


(Изображение в исходном качестве)


(Изображение в исходном качестве)

Обрати внимание на прорисовку лиц скульптур, сочность красок одежды, отсутствие критичных шумов. Однако прорисовка объектов в тени опять оставляет желать лучшего.


(Изображение в исходном качестве)


(Изображение в исходном качестве)


(Изображение в исходном качестве)

Городская окраина. Тусклого света фонарей достаточно для прорисовки HDR+ поверхности стены здания.


(Изображение в исходном качестве)


(Изображение в исходном качестве)


(Изображение в исходном качестве)

Утренние фотографии. В сложных условиях утренней съемки при ярко выраженном контровом свете цвета выглядят естественно, рисунок на стволах деревьев отчетлив, изображение куста и травы в тени дерева просматривается в глубину.


(Изображение в исходном качестве)


(Изображение в исходном качестве)


(Изображение в исходном качестве)

Недостатков у HDR+ мало, да и носят они несущественный характер для большинства сюжетов. Во-первых, для создания HDR+ фотографии требуется много ресурсов процессора и оперативной памяти, что приводит к ряду негативных последствий:

  • повышается расход аккумулятора, и устройство греется при объединении серии снимков;
  • нельзя быстро сделать несколько снимков;
  • мгновенный предпросмотр недоступен; фотография появится в галерее после окончания обработки, которая на Snapdragon 810 длится до четырех секунд.

Частично эти проблемы уже решены с помощью Pixel Visual Core. Но этот сопроцессор, скорее всего, так и останется козырем Google Pixel.

Во-вторых, для работы алгоритму необходимо как минимум две фотографии, а в среднем происходит захват четырех-пяти кадров. Поэтому:

  • обязательно возникнут ситуации, в которых алгоритмы будут давать сбои;
  • HDR+ немного проигрывает классическому HDR по охвату динамического диапазона;
  • создание одной фотографии и ее обработка с использованием быстрого ISP-сопроцессора будет предпочтительнее в экшен-сценах, потому что позволяет избежать двоения и смазывания объектов при невысокой выдержке.
Недостатки HDR+ из доклада его разработчиков
Недостатки HDR+ из доклада его разработчиков
Ночная фотография с множеством движущихся объектов
Ночная фотография с множеством движущихся объектов

(Изображение в исходном качестве)

 

На каких устройствах работает HDR+

Чисто теоретически HDR+ может работать на любом смартфоне с версией Android не ниже 5.0 (необходим Camera2 API). Но по соображениям маркетинга, а также из-за наличия некоторых оптимизаций, требующих специальных железных компонентов (сопроцессор Hexagon в Snapdragon), Google намеренно заблокировала включение HDR+ на любом устройстве, кроме Pixel. Однако Android не был бы Android’ом, если бы энтузиасты не нашли способ обойти это ограничение.

В августе 2017 года один из пользователей 4PDA сумел модифицировать приложение Google Camera таким образом, чтобы режим HDR+ можно было использовать на любом смартфоне с сигнальным процессором Hexagon 680+ (Snapdragon 820+) и включенным Camera2 API. Первое время мод не поддерживал ZSL, да и в целом выглядел сыро. Но и этого было достаточно, чтобы улучшить качество фотосъемки смартфонов Xiaomi Mi5S, OnePlus 3 и прочих до ранее недостижимого для них уровня, а HTC U11 так и вовсе получил возможность на равных соревноваться с Google Pixel.

Позже к адаптации Google Camera на телефоны сторонних вендоров подключились другие разработчики. Спустя некоторое время HDR+ заработал даже на устройствах со Snapdragon 808 и 810. На сегодняшний день практически для каждого смартфона, основанного на Snapdragon ARMv8, работающего на Android 7+ (в некоторых случаях и Android 6) и имеющего возможность использовать Camera2 API, существует портированная версия Google Camera. Частенько она поддерживается отдельным энтузиастом, но обычно таких разработчиков сразу несколько.

В начале января 2018-го пользователь XDA miniuser123 сумел запустить Google Camera с HDR+ на своем Galaxy S7 с процессором Exynos. Немного позже выяснилось, что Google Camera работала также на Galaxy S8 и Note 8. Первые версии для Exynos были нестабильны, часто падали и зависали, в них не работала оптическая стабилизация изображения и ZSL. Версия 3.3 уже достаточно стабильна, поддерживает оптическую стабилизацию изображения и ZSL и все функции Google Camera, за исключением портретного режима. А в число поддерживаемых устройств теперь входят несколько смартфонов Samsung серии A.

 

Как получить HDR+ на своем устройстве

Если у тебя смартфон на Exynos, то выбор невелик. Переходи в тему обсуждения на XDA, открывай спойлер V8.3b Base (если у тебя Android 8) или Pixe2Mod Base (для Android 7) и качай последнюю версию. Также можешь посетить группу в Telegram, где оперативно выкладывают все обновления Google Камеры.

Владельцам смартфонов с процессом Qualcomm придется поискать. Энтузиасты активно поддерживают версии Google Camera с HDR+ для множества смартфонов. Приведу наиболее известные модели:

Если в списке нет твоей модели, рекомендую прогуляться по темам обсуждения камеры и самого устройства на 4PDA и XDA. Как минимум там будут пользователи, пытавшиеся запустить HDR+.

Ко всему вышесказанному упомяну, что в интернете есть страница, где собраны практически все версии Google Camera, на которой удобно тестировать различные Gcam на малоизвестных устройствах.

 

Заключение

Алгоритм HDR+ служит яркой демонстрацией возможностей мобильной цифровой фотографии. Пожалуй, на сегодняшний день это самый эффективный из доступных алгоритмов обработки изображений. HDR+ достаточно одного фотомодуля для создания снимка, по качеству обходящего двойные фотомодули некоторых гаджетов.

Оставить мнение