混合 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 的螢幕亮度對應至 SDR 白點,以便在畫面上顯示 HDR 內容。

    如果已定義 sdrHdrRatioMap,則 DisplayManagerService 會將所需的 SDR 白點傳達給 SurfaceFlinger,以便控制螢幕亮度,讓 SurfaceFlinger 將每個圖層適用的調暗比例傳送給 HWC。

    如果未定義 sdrHdrRatioMap,即使 HWC 實作項目支援 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 內容的播放品質。

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

    • 如果 HWC 實作項目會將調暗作業延後至 GPU,可能會導致 GPU 使用量增加。

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

  • 長時間處於高亮度模式可能會影響螢幕健康度,長期下來可能導致螢幕烙印等問題。

驗證

原始設備製造商可以使用 VTS 測試 (HWC 測試套件隨附),檢查調暗功能是否正確,並驗證輸入調暗比例

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

原始設備製造商必須執行手動測試,驗證調暗的 SDR 元素影像品質是否可接受。原始設備製造商可以透過 SurfaceView 播放裝置支援的 HDR 標準內容,驗證與 HDR 內容一起播放的 SDR 元素不會過於明亮。

問題

調暗 SDR 圖像可能會導致黑階壓縮,或原始圖像較暗區域的資訊遺失。這是因為較深的顏色值會摺疊成一組較小的深色代碼。

如果調暗實作方式會導致無法接受的黑位壓縮,就必須實作抖動演算法,將雜訊注入最終影像,以減少色帶效果。

如果 HWC 實作項目無法在色彩管道的適當位置抖動處理圖片,就必須要求 SurfaceFlinger 在 GPU 上套用調暗和抖動處理。

實作項目也可以調整 sdrHdrRatioMap 的值,限制 SDR 元素的調暗程度。調暗至極低亮度等級需要使用 GPU,這可提升影像品質,但可能會縮短電池續航力。