10 位元相機輸出內容

在搭載 Android 13 以上版本的裝置上,Android 支援 10 位元相機輸出,方法是透過動態範圍設定檔,由相機用戶端設定為串流設定的一部分。裝置製造商可以新增對 10 位元動態範圍設定檔的支援,例如 HLG10、HDR 10、HDR 10+ 和 Dolby Vision。

相機用戶端可呼叫 getSupportedProfiles,探索裝置支援的 10 位元動態範圍設定檔。架構接著會傳回 DynamicRangeProfiles 的執行個體,其中包含支援的動態範圍設定檔相關資訊,以及擷取要求限制 (如有)。必須支援HLG10設定檔。建議的動態範圍設定檔會列在 REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILE 欄位中。

攝影機用戶端可以呼叫 setDynamicRangeProfile 設定串流組合。如要進一步瞭解強制輸出的串流組合,請參閱「一般擷取」中的「10 位元輸出額外保證設定」表格。

需求條件

如要支援 10 位元攝影機輸出,裝置必須具備 10 位元以上的攝影機感應器,並支援相應的 ISP。如要進一步瞭解 10 位元支援的相關相容性需求,請參閱第 7.5 節。CDD 中的攝影機。

實作

如要支援 10 位元相機輸出,裝置製造商必須執行下列 Camera AIDL HAL 整合:

  • 在攝影機功能中加入 ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT
  • ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP 中填入所有支援的動態範圍設定檔,以及這些設定檔的限制點陣圖。必須支援HLG10設定檔。您也必須加入建議的動態範圍設定檔,讓攝影機用戶端瞭解最佳支援格式。
  • 使用 P010 格式的串流,請確保在串流設定期間支援動態範圍設定檔值,或支援實作定義的格式 (ImageFormat.PRIVATE)。
  • 視動態範圍設定檔而定,請先設定已處理 Gralloc 4 緩衝區的靜態或動態中繼資料緩衝區,再通知攝影機服務。

如要進一步瞭解 Camera HAL 中的 10 位元攝影機輸出,請參閱 metadata_definitions.xml 中的下列內容:

如需支援 10 位元相機輸出的參考 Camera HAL 實作,請參閱 /hardware/google/camera/devices/EmulatedCamera/hwl

驗證

如要驗證 10 位元相機輸出功能的導入狀態,並確保第三方應用程式可以啟用這項功能,建議您執行下列三個階段的驗證。

如要以視覺方式驗證 10 位元攝影機輸出內容,前提是裝置支援顯示 HDR (1000 尼特以上的螢幕),且影片觀看應用程式 (例如 Google 相簿) 支援播放 HDR 影片。

測試 API 功能是否正確

如要測試 10 位元攝影機輸出內容的 API 功能正確性,請執行下列 CTS、攝影機 ITS 和 VTS 測試:

比較原生相機和第三方應用程式

強烈建議您確保使用第三方應用程式拍攝 10 位元影片的結果,與原生相機應用程式的結果相似 (甚至相同)。這表示曝光、動態範圍和色彩等微調選項,應從原生應用程式沿用至第三方應用程式。如要驗證裝置上支援 10 位元相機輸出的第三方應用程式影片錄製行為,請使用 GitHub 上的 Camera2Video 範例應用程式。由於感應器、面板、觀看條件和供應商偏好設定各不相同,以下指南僅說明 HDR 的可見層面,不提供客觀數據。

建議用於比較的場景

如要比較原生相機應用程式和第三方應用程式,請使用原生相機應用程式和 Camera2Video 範例應用程式,拍攝多個不同場景的影片。建議使用下列場景進行比較:

  • 場景光線中等至昏暗,且有明亮物體,例如蠟燭或小燈,亮度範圍明顯。這可確認自動曝光行為和動態範圍。
  • 明亮的戶外場景,色彩鮮豔,且有反光物體 (例如車輛的鍍鉻保險桿),因此產生明亮的高光。這項功能可確保亮部場景的算繪效果,讓亮部更亮。
  • 中低動態範圍場景,例如住家或辦公室的室內自然場景。這項測試可確認光線不充足時,攝影機是否能正常運作。

建議在所有場景中加入人物和臉部,以驗證曝光度、色彩和膚色處理方式。減少連續鏡頭間的差異,可簡化連續比較。

比較標準動態範圍和高動態範圍

如要確保使用 10 位元動態範圍設定檔比標準動態範圍設定檔更有優勢,請比較使用 SDR (無 HDR 設定檔) 擷取的影片與 HDR 影片,確認擷取的影片中是否出現 HDR 的重要元素。如要比較 SDR 和 HDR,請使用 Camera2Video 範例應用程式建議的場景,比較原生相機應用程式和第三方應用程式。

建議場景中需要驗證的重點如下。支援 HDR 的螢幕面板亮度等級各不相同 (以 nit 或流明為單位),因此下列數字僅供參考:

  • 在光線中等至昏暗的場景中,HDR 短片會以螢幕最高亮度 (可能高達 1000 nit) 呈現蠟燭或小燈的明亮高光,SDR 短片則會以 SDR 最高亮度 (約 100 nit) 呈現。在 HDR 短片中,明亮的高光部分應從螢幕中發出光芒,捕捉使用者對場景真實動態範圍的感知。與 HDR 短片相比,SDR 短片應會顯得較為平淡,亮度也較低。
  • 在明亮的輸出場景中,視裝置的調整方式而定,HDR 短片與 SDR 短片相比,螢幕亮度會明顯不同。如果是 HDR 短片,整體場景的螢幕亮度 (視預留空間而定) 應更高,例如最高可達 800 nit,如果是亮部 (例如鍍鉻保險桿),亮度甚至應接近最高亮度。
  • 在中階低動態範圍室內拍攝時,HDR 和 SDR 短片在色彩和色調方面相似,但 HDR 拍攝的影片可能比 SDR 更明亮。HDR 影像不應比 SDR 影像暗。如果調整選項會導致無法達成這個目標,請確保第三方應用程式的行為與原生相機應用程式的行為一致。