Android 14 支援使用 JPEG_R
圖片格式拍攝 Ultra HDR 壓縮圖片。這個格式可向下相容 SDR JPEG 圖片,並支援 HDR 內容算繪。如要進一步瞭解 Ultra HDR 格式規格,請參閱 Ultra HDR 圖片格式 1.0 版。
實作
本節說明如何實作 Ultra HDR 功能。
參考實作
AOSP 相機架構和相機服務包含參考 Ultra HDR 實作項目。
除了相機架構中的參考功能之外,您還可以在相機 HAL 中實作 Ultra HDR,並以與其他相機 HAL 輸出串流相同的方式宣告支援 JPEG_R
輸出內容。在這種情況下,相機 HAL 必須產生必要的復原對應圖和最終 JPEG_R
圖片,如 Ultra HDR 規格所定義。您可以根據裝置硬體和軟體功能,對最終輸出內容進行最佳化和調整。
導入選項
裝置製造商可以決定自家裝置支援的下列 Ultra HDR 支援等級:
- 最小:在此設定中,系統預設會停用透過相機服務組合串流功能輸出的 Ultra HDR 內容。如要啟用
JpegRCompositeStream
參照實作,請將ro.camera.enableCompositeAPI0JpegR
系統屬性設為true
。由於所有處理程序和編碼作業都是在軟體中執行,因此這個選項可能會導致延遲時間增加,並降低效能。 - 中等:使用這個選項時,
JpegRCompositeStream
實作會使用 HAL 提供的 SDR JPEG 檔案做為基礎圖片,並使用 P010 影格來計算復原地圖。這個選項涉及資料路徑中的軟體處理作業,但與最小選項相比,其影響相對較小。 - 擴充:相機 HAL 會直接宣傳並支援
JPEG_R
輸出串流。這個選項可讓裝置製造商實施裝置專屬最佳化,並大幅改善圖片品質。
如要停用 JpegRCompositeStream
實作,請將 ro.camera.disableJpegR
建構屬性設為 true
。如果未設定這項建構屬性或設為 false
,則在支援10 位元輸出功能和同時 10 位元和 8 位元擷取功能的裝置上,系統會預設透過 JpegRCompositeStream
啟用 Ultra HDR。
驗證
如要驗證裝置上的 Ultra HDR 功能,請執行下列測試。
CTS 測試
ImageReaderTest.java#testImageReaderBuilderWithBLOBAndJpegR
ImageReaderTest.java#testJpegR
ImageReaderTest.java#testJpegRDisplayP3
PerformanceTest.java#testSingleCapture
StillCaptureTest.java# testJpegRCapture
ITS 測試
手動測試
如要執行手動測試,請使用 Ultra HDR 圖片擷取範例實作,包括支援使用 JPEG_R
圖片格式的 Ultra HDR 設定及擷取。