Композиция из SDR- и HDR-контента

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

В Android 13 улучшена поддержка одновременного отображения на экране композиции SDR и HDR. Для этого добавлены следующие функции:

  • Тональная компрессия яркости HDR в диапазон, совместимый с SDR.

    С помощью libtonemap можно обеспечить согласованное сопоставление тонов между Hardware Composer (HWC), SurfaceFlinger и приложениями. Производители оригинального оборудования могут реализовать собственные кривые сопоставления тонов, которые будут использоваться компонентами поставщика и фреймворка.

  • Затемнение SDR-контента на экране при одновременном показе HDR-контента.

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

Требования к OEM-производителям

Чтобы использовать улучшенную композицию для контента HDR и SDR с помощью затемнения контента SDR, выполните следующие требования:

  • Реализуйте версию HWC на основе AIDL, которая поддерживает аппаратное затемнение в цветовом конвейере устройства. Инструкции по реализации необходимых функций приведены в статье AIDL для HWC.

  • Для точного затемнения аппаратных оверлеев в HWC требуется специальное оборудование, которое масштабирует линейный свет оверлеев. Если аппаратное обеспечение не соответствует требованиям, SurfaceFlinger должен отложить композицию до графического процессора, что приведет к быстрому расходу батареи и возможному низкому качеству затемнения.

  • Устройство должно поддерживать хотя бы одну технологию HDR, указанную в Display.getHdrCapabilities.

Конфигурация

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

Включить и настроить улучшенную композицию можно с помощью конфигурации дисплея, схема которой находится в display-device-config.xsd. При настройке конфигурации дисплея важно учитывать следующие новые ключевые элементы:

  • Элемент sdrHdrRatioMap позволяет затемнять SDR и определяет таблицу поиска (LUT) для сопоставления яркости экрана для HDR с точкой белого SDR, когда на экране отображается контент HDR.

    Если определено значение sdrHdrRatioMap, то в рамках управления яркостью экрана DisplayManagerService передает желаемую точку белого SDR в SurfaceFlinger, чтобы SurfaceFlinger мог отправить в HWC подходящий коэффициент затемнения для каждого слоя.

    Если значение sdrHdrRatioMap не задано, затемнение SDR не включается, даже если реализация HWC поддерживает его.

  • Элемент minimumHdrPercentOfScreen со значением от 0 до 100 определяет, когда можно включить режим высокой яркости панели. В Android 13 это пороговое значение можно настраивать, чтобы режим высокой яркости включался в большем количестве ситуаций, например в режиме "картинка в картинке". В предыдущих версиях AOSP это значение было фиксированным и составляло 50%.

В следующем блоке кода показаны основные элементы конфигурации показа:

<displayConfiguration>
    ...
    <highBrightnessMode>
        ...
        <!--Percentage of the screen that must be covered by HDR layers until high brightness mode is enabled.
        <minimumHdrPercentOfScreen>...</minimumHdrPercentOfScreen>
        <!--sdrHdrRatioMap, backed by spline, must have at least two entries -->
        <sdrHdrRatioMap>
            <point>
                <sdrNits>...</sdrNits>
                <hdrRatio>...</hdrRatio>
            </point>
            <point>
                <sdrNits>...</sdrNits>
                <hdrRatio>...</hdrRatio>
            </point>
            <!--More interpolation points may be added –->
            ...
        </sdrHdrRatioMap>
        ...
    </highBrightnessMode>
    ...
</displayConfiguration>

Важные примечания

Включение сопоставления тонов и затемнения SDR-контента может привести к следующим ситуациям:

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

  • Время работы от батареи может сократиться в следующих случаях:

    • Реализации HWC, которые откладывают операции затемнения до графического процессора, могут привести к увеличению его использования.

    • Конфигурации экрана, которые позволяют снизить порог для включения режима высокой яркости, могут увеличить энергопотребление при работе экрана с более высокой яркостью.

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

Проверка

Производители оригинального оборудования могут использовать тесты VTS, которые входят в набор тестов HWC, чтобы проверить правильность затемнения и подтвердить коэффициент затемнения.

Проверка этой функции зависит от устройства, поэтому для нее нет тестов CTS или GTS.

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

Проблемы

При затемнении SDR-изображений может возникнуть подавление черного, то есть потеря информации в более темных областях исходного изображения. Это связано с тем, что более темные цвета сводятся к меньшему набору кодов.

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

Реализации HWC, которые не могут выполнять дизеринг изображения в нужном месте цветового конвейера, должны запрашивать у SurfaceFlinger применение затемнения и дизеринга на графическом процессоре.

Реализации также могут регулировать значение sdrHdrRatioMap, чтобы ограничить степень затемнения элементов SDR. Для снижения яркости до очень низкого уровня требуется использовать графический процессор, что улучшает качество изображения, но может сократить время работы от аккумулятора.