Интеграция видео Eclipsa

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

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

Eclipsa video — это современный стандарт HDR-видео, разработанный для решения именно этих проблем, возникающих в экосистеме различных устройств. Созданный на основе спецификации SMPTE ST 2094-50 , Eclipsa video позволяет дисплеям динамически адаптировать отображение контента в зависимости от физических возможностей оборудования и условий окружающего освещения в реальном времени. Благодаря встроенной интеграции без необходимости настройки в Jetpack Media3 ExoPlayer и стандартных конвейерах захвата Camera2, Eclipsa video предлагает командам разработчиков мобильных приложений бесплатный и беспроблемный путь к внедрению потокового видео следующего поколения с аппаратной адаптацией, сохраняющего художественный замысел на каждом экране.

Техническая архитектура SMPTE ST 2094-50

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

Стандарт SMPTE ST 2094-50 решает эту проблему, вводя двухуровневые метаданные, которые обеспечивают визуальную согласованность на основе двух основных принципов:

Белый опорный якорь

Это устанавливает строгий базовый уровень, который напрямую сопоставляет пиковую яркость элементов SDR с эталонной точкой белого дисплея. Любое значение яркости, превышающее этот уровень, зарезервировано исключительно для светлых участков HDR. Этот предсказуемый механизм привязки гарантирует, что при наложении слоев SDR и HDR на экране они сохраняют свою заданную визуальную взаимосвязь, не размывая друг друга.

Адаптивные кривые усиления с запасом по уровню (AGTM)

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

Поддержка платформы

Поддержка воспроизведения и захвата видео Eclipsa на уровне платформы добавлена ​​в Android 17 (уровень API 37).

Реализовать воспроизведение

Для стандартной разработки приложений Media3 ExoPlayer обеспечивает поддержку видеоформата Eclipsa «из коробки». При анализе файлов, содержащих метаданные SMPTE 2094-50, ExoPlayer автоматически извлекает и применяет эти метаданные, не требуя настройки плеера.

  • Стандартная инициализация проигрывателя: Чтобы создать экземпляр поверхности проигрывателя, см. раздел «Обзор Media3 ExoPlayer» .

  • Переопределение дорожек: Если ваше приложение программно запрашивает или блокирует определенные профили HDR, см. API выбора дорожек Media3 .

Мы рекомендуем перенести обработку процессов воспроизведения в Jetpack Media3. ExoPlayer изначально обрабатывает низкоуровневое извлечение контейнеров, что полностью обходит известные артефакты декодирования на уровне платформы, присутствующие в устаревших слоях рендеринга в Android 16 (уровень API 36) и ниже.

Реализовать захват видео.

Для записи видео Eclipsa с устройства необходимо настроить конвейер обработки видео с камеры таким образом, чтобы генерировать метаданные AGTM путем назначения совместимого профиля динамического диапазона.

После проверки поддержки устройства с помощью CameraCharacteristics направьте поток на поверхность кодировщика, используя профиль DynamicRangeProfiles.HLG10_SMPTE_2094_50 . Инструкции по запросу и настройке профилей динамического диапазона в сеансах съемки см. в разделе «Захват HDR-видео» .

Для метаданных AGTM не требуется явная настройка кодека. Медиафреймворк Android автоматически подключает и передает метаданные, если они присутствуют в активном динамическом профиле.

Вопросы совместимости и производительности

Для мониторинга производительности получите активный объект Display и проверьте наличие LutProperties в его overlayProperties , чтобы определить наличие аппаратного ускорения.

Для устройств, не обладающих возможностями аппаратного ускорения, в Exoplayer ведется разработка поддержки отключения рендеринга видео Eclipsa.

Дополнительные ресурсы