Kombination aus SDR- und HDR-Inhalten

Auf dieser Seite werden die Anforderungen, die Konfiguration und die Validierung der Funktion zum Dimmen von SDR-Inhalten für eine gemischte SDR- und HDR-Komposition beschrieben.

Android 13 bietet eine verbesserte Unterstützung für die gleichzeitige Darstellung von SDR- und HDR-Kompositionen auf dem Bildschirm. Dazu wurden die folgenden Funktionen eingeführt:

  • HDR-Leuchtdichte wird in einen SDR-kompatiblen Bereich umgewandelt.

    Mit libtonemap kann die Tonanpassung zwischen Hardware Composer (HWC), SurfaceFlinger und Apps einheitlich gestaltet werden. OEMs können ihre eigenen Tonmapping-Kurven implementieren, die zwischen Anbieter- und Framework-Komponenten freigegeben werden.

  • Dimmen von SDR-Inhalten auf dem Bildschirm, wenn sie gleichzeitig mit HDR-Inhalten präsentiert werden.

    Wenn HDR-Inhalte auf dem Display angezeigt werden, wird die Bildschirmhelligkeit erhöht, um dem erweiterten Leuchtdichtebereich der HDR-Inhalte gerecht zu werden. Alle SDR-Inhalte, die sich ebenfalls auf dem Display befinden, werden bei steigender Displayhelligkeit nahtlos gedimmt, damit sich die wahrgenommene Helligkeit der SDR-Inhalte nicht ändert. OEMs können ihre integrierten Displays so konfigurieren, dass SDR-Inhalte auf dem Bildschirm gedimmt werden, wenn sie zusammen mit HDR-Inhalten präsentiert werden.

OEM-Anforderungen

Wenn du die verbesserte Bildkomposition für HDR- und SDR-Inhalte durch Dimmen von SDR-Inhalten verwenden möchtest, musst du die folgenden Anforderungen erfüllen:

  • Implementieren Sie die AIDL-Version der HWC, die die Unterstützung für hardwaregestütztes Dimmen in der Farbpipeline des Geräts umfasst. Informationen zur Implementierung der erforderlichen Funktionen finden Sie unter AIDL für HWC.

  • Für das genaue Dimmen von Hardware-Overlays im HWC ist spezielle Hardware erforderlich, um das lineare Licht der Overlays zu skalieren. Bei Implementierungen ohne ausreichende Hardware muss die Zusammensetzung von SurfaceFlinger an die GPU übergeben werden, was zu einem Akkuverbrauch und möglicherweise zu einem schlechten Dimmen führt.

  • Das Gerät muss mindestens eine HDR-Technologie unterstützen, die von Display.getHdrCapabilities gemeldet wird.

Konfiguration

Die Funktion zur gemischten Zusammensetzung von SDR- und HDR-Inhalten kann gemäß den Eigenschaften des integrierten Displays konfiguriert werden, um einen Kompromiss zwischen Akkulaufzeit, Einbrennen und Inhaltstreue zu finden.

Die verbesserte Komposition wird über eine Displaykonfiguration aktiviert und angepasst, deren Schema sich unter display-device-config.xsd befindet. Die folgenden neuen wichtigen Elemente sind für die Einstellung der Anzeigekonfiguration wichtig:

  • Das Element sdrHdrRatioMap ermöglicht das Dimmen von SDR-Inhalten und definiert eine LUT (Look-Up-Table), um die Bildschirmhelligkeit für HDR-Inhalte auf den SDR-Weißpunkt abzubilden, wenn HDR-Inhalte auf dem Bildschirm angezeigt werden.

    Wenn sdrHdrRatioMap definiert ist, kommuniziert DisplayManagerService im Rahmen der Steuerung der Bildschirmhelligkeit den gewünschten SDR-Weißpunkt an SurfaceFlinger, damit SurfaceFlinger das entsprechende Dimmverhältnis pro Ebene an die HWC senden kann.

    Wenn sdrHdrRatioMap nicht definiert ist, wird das SDR-Dimmen nicht aktiviert, auch wenn die HWC-Implementierung das SDR-Dimmen unterstützt.

  • Mit dem Element minimumHdrPercentOfScreen mit einem Wert von 0 bis 100 wird festgelegt, wann der Modus mit hoher Helligkeit für ein Display aktiviert werden darf. Unter Android 13 kann dieser Grenzwert angepasst werden, um den Modus mit hoher Helligkeit in mehr Situationen zu aktivieren, z. B. in Bild-im-Bild-Szenarien. In früheren Versionen von AOSP war dieser Wert auf 50 % festgelegt.

Die wichtigsten Elemente der Anzeigekonfiguration finden Sie im folgenden Codeblock:

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

Einschränkungen

Wenn du die Funktionen für die Tonmapping- und Abdunkelung von SDR-Inhalten aktivierst, kann das zu folgenden Situationen führen:

  • Die Wiedergabequalität von HDR-Inhalten auf dem Gerät kann sich verbessern, da die SDR-Inhaltselemente gedimmt werden.

  • In den folgenden Fällen kann die Akkulaufzeit kürzer sein:

    • HWC-Implementierungen, die Dimmvorgänge an die GPU weiterleiten, können zu einer erhöhten GPU-Nutzung führen.

    • Displaykonfigurationen, die einen niedrigeren Grenzwert für die Aktivierung des Modus mit hoher Helligkeit zulassen, können den Stromverbrauch für die höhere Helligkeit des Displays erhöhen.

  • Die Lebensdauer des Displays kann durch die längere Nutzung des Modus mit hoher Helligkeit beeinträchtigt werden. Dies kann zu langfristigen Problemen wie Einbrennen führen.

Zertifizierungsstufe

OEMs können VTS-Tests verwenden, die Teil der Testsuite des HWC sind, um die Richtigkeit des Dimmens und das Dimmverhältnis der Eingabe zu prüfen.

Die Validierung dieser Funktion ist geräteabhängig. Es gibt daher keine CTS- oder GTS-Tests, die dies unterstützen.

OEMs müssen manuelle Tests durchführen, um sicherzustellen, dass die Bildqualität gedimmter SDR-Elemente akzeptabel ist. OEMs können Inhalte für HDR-Standards abspielen, die das Gerät unterstützt, um zu prüfen, ob SDR-Elemente, die zusammen mit den HDR-Inhalten wiedergegeben werden, nicht zu hell werden.SurfaceView

Probleme

Wenn du SDR-Bilder dämpfst, kann es zu Black Crush oder zu Informationsverlusten in dunkleren Bereichen des Originalbilds kommen. Das liegt daran, dass dunklere Farbwerte auf eine kleinere Anzahl dunkler Codes zusammengeführt werden.

Eine Implementierung für das Dimmen, die zu einem nicht akzeptablen Schwarzabzug führt, muss Dithering-Algorithmen implementieren, die Rauschen in das Endbild einschleusen, damit Streifeneffekte reduziert werden.

HWC-Implementierungen, die das Bild nicht an der richtigen Stelle in der Farbpipeline ditheringen können, müssen anfordern, dass der SurfaceFlinger Dimmen und Dithering auf der GPU anwendet.

Bei Implementierungen kann auch der Wert von sdrHdrRatioMap angepasst werden, um das Dimmen von SDR-Elementen einzuschränken. Wenn Sie die Helligkeit auf sehr niedrige Werte dimmen, wird die GPU verwendet. Das verbessert die Bildqualität, kann aber die Akkulaufzeit verkürzen.