本頁說明混合 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,這可提升影像品質,但可能會縮短電池續航力。