本頁面說明混合 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 白點。如果已定義
sdrHdrRatioMap
,DisplayManagerService
會在控制螢幕亮度時,將所需的 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,雖然可改善影像品質,但可能會縮短電池續航力。