混合 SDR 和 HDR 成分

本頁面說明混合 SDR 和 HDR 合成的 SDR 內容調光功能的相關規定、設定和驗證。

Android 13 推出下列功能,進一步支援在螢幕上同時呈現 SDR 和 HDR 合成的畫面:

  • 將 HDR 亮度與 SDR 相容範圍的色調映射。

    使用 libtonemap,硬體合成器 (HWC)、SurfaceFlinger 和應用程式之間的色調對應可以保持一致。原始設備製造商 (OEM) 可以實作自己的色調對應曲線,以便在供應商和架構元件之間共用。

  • 在 HDR 內容同時顯示時,將螢幕上的 SDR 內容調暗。

    當 HDR 內容顯示在螢幕上時,螢幕亮度會調高,以配合 HDR 內容的亮度範圍。螢幕亮度增加時,畫面上任何 SDR 內容都會無縫調暗,以免 SDR 內容的感知亮度有所變動。原始設備製造商 (OEM) 可以設定內建螢幕,在播放 HDR 內容時將畫面上的 SDR 內容調暗。

原始設備製造商 (OEM) 規定

如要透過 SDR 內容調暗功能,為 HDR 和 SDR 內容使用改善後的組合,請遵循下列規定:

  • 實作 HWC 的 AIDL 版本,其中包括支援裝置色彩管線中的硬體加速調光功能。如要實作必要功能,請參閱 AIDL for HWC

  • 如要在 HWC 中準確調暗硬體疊加層,就需要使用特定硬體來調整疊加層的線性光線。在沒有足夠硬體的情況下,實作項目必須由 SurfaceFlinger 將合成作業延後至 GPU,這可能會導致電池耗盡,並可能造成亮度降低。

  • 裝置必須支援 Display.getHdrCapabilities 回報的至少一種 HDR 技術。

設定

混合 SDR 和 HDR 內容合成的功能可根據內建顯示裝置特性進行設定,以便在電池續航力、燒屏和內容真實度之間取得平衡。

您可以透過顯示設定啟用及調整改善後的組合,其結構定義位於 display-device-config.xsd 中。以下是設定顯示設定時的重要新元素:

  • sdrHdrRatioMap 元素可啟用 SDR 調光功能,並定義查詢表 (LUT),以便在畫面上顯示 HDR 內容時,將 HDR 的畫面亮度對應至 SDR 白點。

    如果已定義 sdrHdrRatioMapDisplayManagerService 會在控制螢幕亮度時,將所需的 SDR 白點傳送至 SurfaceFlinger,讓 SurfaceFlinger 將每個圖層的適當調光比率傳送至 HWC。

    如果未定義 sdrHdrRatioMap,即使 HWC 實作支援 SDR 調光,系統也不會啟用 SDR 調光功能。

  • minimumHdrPercentOfScreen 元素的值介於 0 到 100 之間,可控制是否允許開啟面板的高亮度模式。在 Android 13 中,您可以調整這項門檻,在更多情況下 (例如子母畫面情境) 啟用高亮度模式。先前版本的 Android 開放原始碼計畫已將這個值修正為 50%。

如要瞭解顯示設定的主要元素,請參閱以下程式碼區塊:

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

注意事項

啟用色調對應和 SDR 內容調光功能可能會導致以下情況:

  • 由於 SDR 內容元素會調暗,因此裝置播放 HDR 內容的忠實度可能會提高。

  • 在下列情況下,電池續航力可能會降低:

    • 將調光作業推遲至 GPU 的 HWC 實作可能會導致 GPU 使用量增加。

    • 允許以較低門檻啟用高亮度模式的顯示設定,可能會增加以較高亮度運作螢幕的耗電量。

  • 高亮度模式的使用時間增加,可能會影響螢幕健康,導致螢幕烙印等長期問題。

驗證

原始設備製造商 (OEM) 可以使用 VTS 測試 (已納入 HWC 的測試套件),檢查調光正確性,並驗證輸入調光比率

這項功能的驗證作業取決於裝置,因此沒有支援 CTS 或 GTS 的測試。

原始設備製造商 (OEM) 必須執行手動測試,驗證調暗 SDR 元素的影像品質是否在可接受範圍內。原始設備製造商 (OEM) 可以播放裝置支援超過 SurfaceView 的 HDR 標準內容,藉此驗證在 HDR 內容一起播放的任何 SDR 元素不會過亮。

問題

調暗 SDR 圖像可能會導致「黑色破壞」,或原始圖像的深色區域發生資訊遺失情形。這是因為顏色較深的顏色值會收合到一組較小的深色代碼。

如果調低亮度會導致無法接受的黑色壓縮,則必須實作抖動演算法,將雜訊注入最終圖片,以減少色階效果。

如果 HWC 實作無法在色彩管線的適當位置對圖片進行半色處理,就必須要求 SurfaceFlinger 在 GPU 上套用調光和半色處理。

實作方式也可以調整 sdrHdrRatioMap 的值,以限制 SDR 元素的調光量。將亮度調低至極低等級時,必須使用 GPU,雖然可改善影像品質,但可能會縮短電池續航力。