С момента появления видео с расширенным динамическим диапазоном (HDR) потоковые сервисы начали транслировать HDR-видео, уделяя особое внимание полноэкранному режиму. Недавно приложения для социальных сетей начали поддерживать HDR-видео и Ultra HDR, что указывает на растущий интерес к внедрению HDR в различных приложениях.
Поддержка HDR в Android
Ниже приведены основные этапы поддержки Android технологии HDR за несколько лет:
Андроид 7
- Начальная поддержка декодирования и отображения HDR-видео.
- Продолжающееся развитие возможностей HDR.
Андроид 13
- Комплексная поддержка захвата, кодирования и отображения HDR-видео.
- Введение смешанной композиции SDR и HDR , определяющей различные диапазоны отображаемой яркости между SDR и HDR.
Андроид 14
- Поддержка изображений HDR с Ultra HDR .
Поддержка снимков экрана с HDR также развивалась и претерпела ряд изменений за прошедшие годы.
Улучшения в возможностях скриншотов HDR
В этом разделе отслеживается развитие возможностей HDR-снимков в последних обновлениях Android.
Андроид 9
SurfaceFlinger, графический наборщик Android, представляет поддержку HDR-видео. Графический рендеринг HDR-видео и снимков экрана поддерживается с помощью сложного полиномиального преобразователя тонов. Эта кривая тонального отображения не всегда эквивалентна тональному преобразователю дисплея, поэтому снимки экрана отличаются от содержимого на экране.
Андроид 13
Плагин отображения тонов добавлен в блок рендеринга графического процессора SurfaceFlinger, что позволяет OEM-производителю предоставлять шейдер графического процессора, соответствующий кривой тонального отображения их дисплея. Скриншоты практически соответствуют тому, что на экране, но со следующими отличиями:
- Скриншоты остаются в формате SDR. Следовательно, при просмотре рядом со сценой HDR области HDR на снимке экрана кажутся более тусклыми.
- Яркость SDR не управляется, в результате чего содержимое SDR на снимке экрана выглядит таким же ярким, как содержимое HDR.
Другими словами, любое HDR-видео, снятое на снимке экрана, преобразуется в SDR-видео.
Андроид 14
Ultra HDR представляет собой серьезную проблему для создания скриншотов. В отличие от видео, изображения обычно визуализируются внутри кадрового буфера пользовательского интерфейса, что имеет два основных последствия:
- Изображения не могут иметь обработку изображений, включая тональное отображение, которая отличается от окружающего пользовательского интерфейса.
- Приложения отвечают за отображение тонов на основе источника при рендеринге своего пользовательского интерфейса.
Чтобы облегчить эту проблему, существует три возможных реализации создания снимков экрана:
- Сохраните детали HDR изображения Ultra HDR, в результате чего пользовательский интерфейс приложения на снимке экрана будет затемнен.
- Сохраните детали пользовательского интерфейса приложения, что приведет к обрезке изображения Ultra HDR.
- Найдите компромисс, улучшив пользовательский интерфейс приложения и обрезав блики HDR.
В Android 14 реализован третий подход: повышение яркости пользовательского интерфейса приложения и обрезка ярких участков HDR.
Андроид 15-QPR1
SurfaceFlinger включает в себя локальный алгоритм тонального отображения снимков экрана. Этот процесс включает в себя:
- Разделение входного изображения на более мелкие изображения.
- Вычисление максимальной яркости в каждом изображении и отбрасывание значений низкой яркости в каждом разделе.
- Интерполяция вычисленных яркостей посредством размытия и повторной выборки.
- Применение параметризованного тонального преобразователя Рейнхарда к входному изображению на основе интерполированных значений яркости.
Этот алгоритм демонстрирует значительные улучшения снимков экрана между Android 14 и Android 15-QPR1, как показано в следующих примерах:
Пример 1 — это снимок экрана HDR-видео, наложенного поверх страницы Chrome, содержащей Ultra HDR. В новой реализации в основном сохранены цвета пользовательского интерфейса, а изображение больше не обрезается.
Андроид 14 Андроид 15-QPR1 Рисунок 1. Сравнение Android 14 и Android 15-QPR1 для примера 1.
Пример 2 — это снимок экрана HDR-видео, наложенный поверх настроек с последующими снимками экрана. В Android 14 цвета скриншотов становятся темнее. В Android 15-QPR1 тональный преобразователь правильно воспроизводит и сохраняет цвета пользовательского интерфейса.
Андроид 14 Андроид 15-QPR1 Рисунок 2. Сравнение Android 14 и Android 15-QPR1 для примера 2.