Kompozycja z SDR i HDR

Na tej stronie znajdziesz informacje o wymaganiach, konfiguracji i weryfikacji funkcji przyciemniania treści SDR w przypadku kompozycji mieszanej SDR i HDR.

Android 13 oferuje lepszą obsługę wyświetlania 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 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ż widoczne 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, spełnij te wymagania:

  • 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 for HWC.

  • Dokładne przyciemnianie nakładek sprzętowych w HWC wymaga określonego sprzętu, który pozwoli na skalowanie liniowego światła 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 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. Te nowe kluczowe elementy są ważne w konfiguracji wyświetlania:

  • 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 sterowania jasnością ekranu DisplayManagerService przekazuje do SurfaceFlingera żądany punkt biały 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>

Ograniczenia

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

  • Z powodu przyciemnienia elementów treści SDR jakość odtwarzanych na urządzeniu treści HDR może się zwiększyć.

  • 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 pozwalają na 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ą pakietu testów HWC, aby sprawdzić poprawność przyciemnieniazweryfikować współczynnik przyciemnienia.

Weryfikacja tej funkcji zależy od urządzenia, więc 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 do zaakceptowania. 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 kolorów, muszą poprosić SurfaceFlingera o zastoswanie przyciemnienia i ditheringu na procesorze graficznym.

Implementacje mogą też dostosowywać wartość sdrHdrRatioMap, aby ograniczać 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.