混合 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 內容調暗功能可能會導致下列情況:

  • 裝置播放 HDR 內容時,由於 SDR 內容元素會變暗,因此 HDR 內容的保真度會提高。

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

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

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

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

驗證

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

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

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

問題

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

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

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

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