Kompozycja z SDR i HDR

Ta strona zawiera informacje o wymaganiach, konfiguracji i weryfikacji funkcji przyciemniania treści SDR w przypadku kompozycji mieszanej SDR i HDR.

Android 13 umożliwia jednoczesną prezentację kompozycji SDR i HDR na ekranie dzięki tym funkcjom:

  • Mapowanie tonacji jasności HDR do zakresu zgodnego ze standardem SDR.

    Za pomocą libtonemap można mapować ton w sposób spójny między narzędziem Hardware Composer (HWC), SurfaceFlinger i aplikacjami. Producenci OEM mogą stosować własne krzywe mapowania tonacji, które będą udostępniane między komponentami dostawcy i ramy.

  • przyciemnianie treści SDR wyświetlanych na ekranie, gdy są one prezentowane jednocześnie z treściami HDR;

    Gdy na ekranie wyświetlane są treści HDR, jasność ekranu jest zwiększana, aby uwzględnić zwiększony zakres luminacji treści HDR. Wszystkie treści SDR, które są również wyświetlane na ekranie, są płynnie przyciemniane, gdy jasność ekranu wzrasta, aby jasność percepcyjna treści SDR się nie zmieniała. Producenci OEM mogą skonfigurować wbudowane wyświetlacze tak, aby przyciemniać treści SDR wyświetlane obok treści HDR.

Wymagania dotyczące OEM

Aby użyć ulepszonej kompozycji w przypadku treści HDR i SDR poprzez przyciemnienie treści SDR, postępuj zgodnie z tymi wymaganiami:

  • Wdrożyć wersję AIDL interfejsu HWC, która obejmuje obsługę przyciemniania przyspieszonego sprzętowo w ramach potoku kolorów urządzenia. Aby wdrożyć wymagane funkcje, zapoznaj się z AIDL dla HWC.

  • Dokładne przyciemnianie nakładek sprzętowych w HWC wymaga określonego sprzętu, który skaluje liniowe światło nakładek. Implementacje bez odpowiedniego sprzętu muszą odroczyć tworzenie kompozycji na procesorze graficznym przez SurfaceFlinger, co powoduje zużycie baterii i możliwe przyciemnienie o niskiej jakości.

  • Urządzenie musi obsługiwać co najmniej jedną technologię HDR zgłoszoną przez Display.getHdrCapabilities.

Konfiguracja

Funkcję mieszania treści SDR i HDR można skonfigurować zgodnie z wbudowanymi w urządzenie wyświetlacza, aby zapewnić równowagę między czasem pracy baterii, wypaleniem ekranu i wiernością treści.

Włączenie i dostrajanie ulepszonej kompozycji odbywa się za pomocą konfiguracji wyświetlania, której schemat znajduje się w sekcji display-device-config.xsd. W konfiguracji wyświetlania ważne są te nowe kluczowe elementy:

  • Element sdrHdrRatioMap umożliwia przyciemnianie SDR i definiuje tablicę odwołań (LUT) do mapowania jasności ekranu, aby wyświetlana zawartość HDR była wyświetlana jako punkt biały SDR, gdy na ekranie jest zawartość HDR.

    Jeśli sdrHdrRatioMap jest zdefiniowany, to w ramach kontroli jasności ekranu DisplayManagerService przekazuje do SurfaceFlingera żądaną białą punkt SDR, aby SurfaceFlinger mógł przesłać do HWC odpowiedni współczynnik przyciemnienia na warstwę.

    Jeśli parametr sdrHdrRatioMap nie jest zdefiniowany, przyciemnianie SDR nie jest włączone, nawet jeśli implementacja HWC obsługuje przyciemnianie SDR.

  • Element minimumHdrPercentOfScreen o wartości od 0 do 100 określa, kiedy można włączyć tryb wysokiej jasności panelu. W Androidzie 13 ten próg można dostosować, aby włączyć tryb wysokiej jasności w większej liczbie sytuacji, np. w przypadku obrazu w obrazie. W poprzednich wersjach AOSP ta wartość była równa 50%.

Kluczowe elementy konfiguracji wyświetlania znajdziesz w tym bloku kodu:

<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>

Uwagi

Włączenie funkcji mapowania tonów i przyciemniania treści w formacie SDR może spowodować następujące sytuacje:

  • Jakość odtwarzanych na urządzeniu treści HDR może się zwiększyć, ponieważ elementy treści SDR są przyciemnione.

  • Czas pracy na baterii może się skrócić w tych sytuacjach:

    • Implementacje HWC, które odkładają operacje przyciemniania na GPU, mogą zwiększać wykorzystanie GPU.

    • Konfiguracje wyświetlacza, które umożliwiają włączenie trybu wysokiej jasności przy niższym progu, mogą zwiększyć pobór mocy na potrzeby działania ekranu przy wyższej jasności.

  • Dłuższe korzystanie z trybu wysokiej jasności może mieć wpływ na stan ekranu, ponieważ może powodować długotrwałe problemy, takie jak wypalenie.

Weryfikacja

Producenci OEM mogą korzystać z testów VTS, które są częścią zestawu testów HWC, aby sprawdzić poprawność przyciemnieniazweryfikować współczynnik przyciemnienia.

Weryfikacja tej funkcji zależy od urządzenia, dlatego nie ma testów CTS ani GTS, które ją obsługują.

Producenci OEM muszą przeprowadzić ręczne testy, aby sprawdzić, czy jakość obrazu przy przyciemnionych elementach SDR jest akceptowalna. Producenci urządzeń mogą odtwarzać treści w standardach HDR, które są obsługiwane przez urządzenie, za pomocą SurfaceView, aby sprawdzić, czy elementy SDR odtwarzane razem z treściami HDR nie są zbyt jasne.

Problemy

Przyciemnienie obrazów SDR może spowodować utratę szczegółów w ciemnych obszarach lub utratę informacji w ciemniejszych obszarach oryginalnego obrazu. Wynika to z złożenia ciemniejszych wartości kolorów na mniejszy zestaw kodów ciemnych.

Implementacja przyciemniania, która powoduje niedopuszczalne ścięcie czerni, musi stosować algorytmy ditheringu, które dodają szum do końcowego obrazu, aby zmniejszyć efekt bandingu.

Implementacje HWC, które nie mogą ditherować obrazu w odpowiednim miejscu w przepływie danych kolorów, muszą poprosić SurfaceFlingera o zastoswanie przyciemnienia i ditheringu na procesorze graficznym.

Implementacje mogą też dostosować wartość sdrHdrRatioMap, aby ograniczyć ilość przyciemnienia elementów SDR. Przyciemnianie do bardzo niskiego poziomu jasności wymaga użycia procesora graficznego, co poprawia jakość obrazu, ale może skrócić czas pracy na baterii.