Mieszana kompozycja SDR i HDR

Na tej stronie opisano wymagania, konfigurację i weryfikację funkcji przyciemniania treści SDR dla mieszanej kompozycji SDR i HDR.

Android 13 poprawia obsługę jednoczesnego prezentowania kompozycji SDR i HDR na ekranie, wprowadzając następujące funkcje:

  • Mapowanie tonów luminancji HDR do zakresu zgodnego z SDR.

    Używając libtonemap , można zapewnić spójność mapowania tonów pomiędzy programami Hardware Composer (HWC), SurfaceFlinger i aplikacjami. Producenci OEM mogą wdrażać własne krzywe mapowania tonów, które będą współdzielone pomiędzy dostawcami i komponentami platformy.

  • Przyciemnianie treści SDR na ekranie, gdy są one prezentowane jednocześnie z treścią HDR.

    Gdy na ekranie wyświetlana jest treść HDR, jasność ekranu jest zwiększana, aby dostosować się do zwiększonego zakresu luminancji treści HDR. Jakakolwiek zawartość SDR, która jest również na ekranie, jest płynnie przyciemniana wraz ze wzrostem jasności ekranu, dzięki czemu percepcyjna jasność zawartości SDR nie ulega zmianie. Producenci OEM mogą skonfigurować swoje wbudowane wyświetlacze tak, aby przyciemniały zawartość SDR na ekranie, gdy jest ona prezentowana obok treści HDR.

Wymagania OEM

Aby korzystać z ulepszonej kompozycji treści HDR i SDR poprzez przyciemnianie treści SDR, postępuj zgodnie z następującymi wymaganiami:

  • Zaimplementuj wersję AIDL HWC, która obejmuje obsługę przyspieszanego sprzętowo przyciemniania w potoku kolorów urządzenia. Informacje na temat implementowania wymaganej funkcjonalności można znaleźć w AIDL dla HWC .

  • Dokładne przyciemnianie nakładek sprzętowych w HWC wymaga specjalnego sprzętu do skalowania liniowego światła nakładek. Implementacje bez wystarczającego sprzętu są wymagane, aby odłożyć kompozycję do procesora graficznego przez SurfaceFlinger, powodując wyczerpanie 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ę mieszanego komponowania treści SDR i HDR można skonfigurować zgodnie z charakterystyką wbudowanego urządzenia wyświetlającego, co pozwala ustalić kompromis między czasem pracy baterii, wypaleniem i wiernością treści.

Włączanie i dostrajanie ulepszonej kompozycji odbywa się poprzez konfigurację wyświetlacza, której schemat znajduje się w display-device-config.xsd . Przy ustawianiu konfiguracji wyświetlacza ważne są następujące nowe kluczowe elementy:

  • Element sdrHdrRatioMap umożliwia przyciemnianie SDR i definiuje tabelę przeglądową (LUT) do mapowania jasności ekranu w przypadku wyświetlania HDR na punkt bieli SDR, gdy na ekranie znajduje się zawartość HDR.

    Jeśli zdefiniowano sdrHdrRatioMap , to w ramach kontrolowania jasności ekranu DisplayManagerService przekazuje żądany punkt bieli SDR do SurfaceFlinger, dzięki czemu SurfaceFlinger może wysłać odpowiedni współczynnik przyciemnienia na warstwę do HWC.

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

  • Element minimumHdrPercentOfScreen o wartości z zakresu od 0 do 100 określa, kiedy można włączyć tryb wysokiej jasności panelu. W systemie Android 13 ten próg można dostosować, aby włączyć tryb wysokiej jasności w większej liczbie sytuacji, na przykład w scenariuszach obrazu w obrazie. Poprzednie wersje AOSP ustaliły tę wartość na 50%.

Zobacz następujący blok kodu, aby zapoznać się z kluczowymi elementami konfiguracji wyświetlacza:

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

Zastrzeżenia

Włączenie funkcji mapowania tonów i przyciemniania zawartości SDR może prowadzić do następujących sytuacji:

  • Wierność treści HDR odtwarzanych na urządzeniu może wzrosnąć, ponieważ elementy treści SDR są przyciemnione.

  • Żywotność baterii może się zmniejszyć w następujących sytuacjach:

    • Implementacje HWC, które opóźniają operacje przyciemniania procesora graficznego, mogą powodować zwiększone wykorzystanie procesora graficznego.

    • Konfiguracje wyświetlacza, które pozwalają na niższy próg włączania trybu wysokiej jasności, mogą zwiększyć pobór mocy w celu działania ekranu przy wyższej jasności.

  • Wydłużenie czasu spędzanego w trybie wysokiej jasności może mieć wpływ na kondycję ekranu, co może powodować długoterminowe problemy, takie jak wypalenie i pogorszenie stanu wyświetlacza.

Walidacja

Producenci OEM mogą korzystać z testów VTS, które są częścią zestawu testów HWC, w celu sprawdzenia poprawności ściemniania i sprawdzenia współczynnika ściemniania sygnału wejściowego .

Walidacja tej funkcji zależy od urządzenia, dlatego nie ma żadnych testów CTS ani GTS, które by to potwierdzały.

Producenci OEM muszą przeprowadzić testy ręczne, aby sprawdzić, czy jakość obrazu przyciemnionych elementów SDR jest akceptowalna. Producenci OEM mogą odtwarzać treści zgodne ze standardami HDR obsługiwane przez urządzenie za pośrednictwem SurfaceView , aby sprawdzić, czy elementy SDR odtwarzane razem z treścią HDR nie stają się zbyt jasne.

Kwestie

Przyciemnianie obrazów SDR może spowodować zgniecenie czerni lub utratę informacji w ciemniejszych obszarach oryginalnego obrazu. Dzieje się tak dlatego, że wartości ciemniejszych kolorów spadają na mniejszy zestaw ciemnych kodów.

Implementacja przyciemniania, która powoduje niedopuszczalne zmiażdżenie czerni, musi implementować algorytmy ditheringu, które wprowadzają szum do końcowego obrazu, aby zredukować efekty pasmowania.

Implementacje HWC, które nie są w stanie roztrząsać obrazu w odpowiednim miejscu w potoku kolorów, muszą zażądać, aby SurfaceFlinger zastosował przyciemnianie i dithering na GPU.

Implementacje mogą również dostosować wartość sdrHdrRatioMap , aby ograniczyć stopień przyciemnienia elementów SDR. Przyciemnianie do bardzo niskich poziomów jasności wymaga użycia procesora graficznego, co poprawia jakość obrazu, ale może skrócić żywotność baterii.