Na tej stronie opisano wymagania, konfigurację i weryfikację 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 z SDR.
Za pomocą
libtonemap
można zapewnić spójność mapowania tonów między narzędziami 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. Każda zawartość SDR jest płynnie przyciemniona wraz ze zwiększeniem jasności ekranu, dzięki czemu ich poziom percepcji nie zmienia się. OEM może skonfigurować wbudowane wyświetlacze, aby przyciemniały treści SDR na ekranie, gdy są 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. Informacje o implementowaniu wymaganych funkcji znajdziesz w artykule AIDL w HWC.
Dokładne przyciemnianie nakładek sprzętowych w HWC wymaga odpowiedniego sprzętu do skalowania liniowego światła nakładek. Implementacje bez odpowiedniego sprzętu są wymagane, aby odroczyć kompozycję do GPU przez SurfaceFlinger, co spowoduje wyczerpanie baterii i możliwość przyciemnienia ekranu o niskiej jakości.
Urządzenie musi obsługiwać co najmniej jedną technologię HDR zgłoszoną przez
Display.getHdrCapabilities
.
Konfiguracja
Funkcję tworzenia kompozycji treści w trybie mieszanym SDR i HDR można skonfigurować zgodnie z właściwościami wbudowanego wyświetlacza, aby osiągnąć kompromis między czasem pracy baterii, wypaleniem ekranu i wiernością treści.
Ulepszoną kompozycję można włączyć i dostroić za pomocą konfiguracji wyświetlania, której schemat znajduje się w display-device-config.xsd
.
Podczas konfigurowania konfiguracji wyświetlania ważne są te nowe kluczowe elementy:
Element
sdrHdrRatioMap
umożliwia przyciemnianie treści SDR i definiuje tabelę wyszukiwania (LUT) służącą do mapowania jasności ekranu w celu wyświetlania obrazu HDR w punkcie bieli w przypadku treści HDR.Jeśli
sdrHdrRatioMap
jest zdefiniowany, to w ramach sterowania jasnością ekranuDisplayManagerService
przekazuje do SurfaceFlingera żądany punkt biały SDR, aby SurfaceFlinger mógł przesłać do HWC odpowiedni współczynnik przyciemnienia na warstwę.Jeśli zasada
sdrHdrRatioMap
nie jest zdefiniowana, przyciemnianie treści SDR nie jest włączone, nawet jeśli implementacja HWC obsługuje przyciemnianie treści SDR.Element
minimumHdrPercentOfScreen
o wartości od 0 do 100 określa, kiedy tryb wysokiej jasności panelu może być włączony. W Androidzie 13 próg ten można dostosować, aby włączyć tryb wysokiej jasności w większej liczbie sytuacji, np. w przypadku obrazu w obrazie. Poprzednie wersje AOSP ustabilizowały tę wartość na poziomie 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 mapowania tonalnego i przyciemnienia treści SDR może spowodować:
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 do GPU, mogą powodować zwiększone 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ższy czas korzystania z trybu wysokiej jasności może mieć wpływ na kondycję ekranu, co może powodować długotrwałe problemy, takie jak wypalenie wyświetlacza.
Weryfikacja
Producenci OEM mogą korzystać z testów VTS, które są częścią pakietu testów HWC, aby sprawdzić poprawność przyciemnienia i zweryfikować współczynnik przyciemnienia.
Weryfikacja tej funkcji zależy od urządzenia, nie ma więc testów CTS ani GTS, które to potwierdzają.
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ć efekt czarnego słabości, a także utratę informacji w ciemniejszych obszarach oryginalnego zdjęcia. Wynika to z faktu, że wartości ciemniejszych kolorów zapadają się w mniejszy zestaw ciemnych kodów.
W przypadku przyciemniania obrazu, który powoduje nieakceptowalne rozjaśnienie, należy wdrożyć algorytmy rozpraszające, które wstrzykują szum do ostatecznego obrazu, tak aby efekt pasm został zredukowany.
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ż dostosować wartość sdrHdrRatioMap
, aby ograniczyć przyciemnienie 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.