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