Na tej stronie opisujemy wymagania, konfigurację i weryfikację funkcji przyciemniania treści SDR w przypadku kompozycji mieszanych SDR i HDR.
Android 13 ulepsza obsługę jednoczesnego wyświetlania kompozycji SDR i HDR na ekranie, wprowadzając te funkcje:
Mapowanie tonów luminancji HDR na zakres zgodny z SDR.
Za pomocą
libtonemapmożna zapewnić spójność mapowania tonów między kompozycją sprzętową (HWC), SurfaceFlinger i aplikacjami. Producenci OEM mogą wdrażać własne krzywe mapowania tonów, które będą udostępniane komponentom dostawcy i platformy.przyciemnianie treści SDR wyświetlanych na ekranie, gdy są prezentowane jednocześnie z treściami HDR;
Gdy na ekranie wyświetlane są treści HDR, jasność ekranu jest zwiększana, aby dostosować się do większego zakresu luminancji treści HDR. Wszelkie treści SDR wyświetlane na ekranie są płynnie przyciemniane wraz ze wzrostem jasności ekranu, dzięki czemu postrzegana jasność treści SDR nie zmienia się. Producenci OEM mogą skonfigurować wbudowane wyświetlacze tak, aby przyciemniały treści SDR wyświetlane na ekranie obok treści HDR.
Wymagania dotyczące OEM
Aby korzystać z ulepszonego komponowania treści HDR i SDR za pomocą przyciemniania treści SDR, musisz spełniać te wymagania:
Wdrażanie wersji AIDL interfejsu HWC, która obejmuje obsługę przyciemniania z akceleracją sprzętową w potoku kolorów urządzenia. Informacje o wdrażaniu wymaganych funkcji znajdziesz w artykule AIDL dla HWC.
Precyzyjne przyciemnianie nakładek sprzętowych w HWC wymaga specjalnego sprzętu do skalowania liniowego światła nakładek. Implementacje bez wystarczającej ilości sprzętu muszą przekazywać kompozycję do procesora graficznego za pomocą usługi SurfaceFlinger, co powoduje szybkie zużycie baterii i może skutkować przyciemnianiem o niskiej jakości.
Urządzenie musi obsługiwać co najmniej 1 technologię HDR zgłoszoną przez
Display.getHdrCapabilities.
Konfiguracja
Funkcję kompozycji treści SDR i HDR można skonfigurować zgodnie z charakterystyką wbudowanego wyświetlacza, aby ustalić kompromis między żywotnością baterii, wypaleniem i wiernością treści.
Włączanie i dostrajanie ulepszonej kompozycji odbywa się za pomocą konfiguracji wyświetlania, której schemat znajduje się w display-device-config.xsd.
W konfiguracji wyświetlania ważne są te nowe kluczowe elementy:
Element
sdrHdrRatioMapumożliwia przyciemnianie SDR i definiuje tabelę wyszukiwania (LUT) do mapowania jasności ekranu dla HDR, która ma być wyświetlana w punkcie bieli SDR, gdy na ekranie są wyświetlane treści HDR.Jeśli zdefiniowano wartość
sdrHdrRatioMap, w ramach sterowania jasnością ekranuDisplayManagerServiceprzekazuje do SurfaceFlinger żądany punkt bieli SDR, aby SurfaceFlinger mógł wysłać do HWC odpowiedni współczynnik przyciemnienia dla każdej warstwy.Jeśli parametr
sdrHdrRatioMapnie jest zdefiniowany, przyciemnianie SDR nie jest włączone, nawet jeśli implementacja HWC obsługuje przyciemnianie SDR.Element
minimumHdrPercentOfScreeno 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 stała i wynosiła 50%.
W bloku kodu poniżej znajdziesz kluczowe elementy konfiguracji wyświetlania:
<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 odcieni i przyciemniania treści SDR może prowadzić do następujących sytuacji:
Wierność 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ą powodować zwiększone wykorzystanie GPU.
Konfiguracje wyświetlacza, które pozwalają na niższy próg włączania trybu wysokiej jasności, mogą zwiększać pobór mocy, ponieważ ekran działa przy wyższej jasności.
Na stan ekranu może mieć wpływ dłuższy czas spędzony w trybie wysokiej jasności, co może powodować długotrwałe problemy, takie jak wypalenie ekranu.
Weryfikacja
Producenci OEM mogą używać testów VTS, które są częścią zestawu testów HWC, aby sprawdzić poprawność przyciemniania i zweryfikować współczynnik przyciemniania wejściowego.
Weryfikacja tej funkcji zależy od urządzenia, więc nie ma testów CTS ani GTS, które by ją obsługiwały.
Producenci OEM muszą przeprowadzać testy ręczne, aby sprawdzić, czy jakość obrazu przyciemnionych elementów SDR jest akceptowalna. Producenci OEM mogą odtwarzać treści w standardach HDR obsługiwanych przez urządzenie za pomocą SurfaceView, aby sprawdzić, czy elementy SDR odtwarzane razem z treściami HDR nie stają się zbyt jasne.
Problemy
Przyciemnianie obrazów SDR może powodować zacieranie czerni, czyli utratę informacji w ciemniejszych obszarach oryginalnego obrazu. Wynika to z tego, że ciemniejsze wartości kolorów są łączone w mniejszy zestaw ciemnych kodów.
Implementacja przyciemniania, która powoduje niedopuszczalne rozmycie czerni, musi implementować algorytmy ditheringu, które wstrzykują szum do końcowego obrazu, aby zmniejszyć efekt pasmowania.
Implementacje HWC, które nie mogą roztrząsać obrazu w odpowiednim miejscu w potoku kolorów, muszą zażądać, aby SurfaceFlinger zastosował przyciemnianie i roztrząsanie na GPU.
Implementacje mogą też dostosowywać wartość sdrHdrRatioMap, aby ograniczyć przyciemnianie 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.