元數據和控件

元數據支持

為了支援 Android 框架保存原始影像文件,需要大量有關感測器特性的元資料。這包括色彩空間和鏡頭著色功能等資訊。

這些資訊大部分是相機子系統的靜態屬性,因此可以在配置任何輸出管道或提交任何請求之前進行查詢。新的相機 API 大大擴展了getCameraInfo()方法提供的信息,以便將此資訊提供給應用程式。

此外,相機子系統的手動控制需要來自各種設備的關於其當前狀態的回饋,以及用於捕獲給定幀的實際參數。硬體實際使用的控制項的實際值(曝光時間、幀持續時間和靈敏度)必須包含在輸出元資料中。這是至關重要的,以便應用程式知道何時發生箝位或舍入,並且應用程式可以補償用於影像擷取的實際設定。

例如,如果應用程式在請求中將幀持續時間設為 0,則 HAL 必須將幀持續時間限制為該請求的實際最小幀持續時間,並在輸出結果元資料中報告該限制的最小持續時間。

因此,如果應用程式需要實現自訂 3A 例程(例如,正確計量 HDR 突發),則它需要知道用於捕獲收到的最新結果集的設置,以便更新下一個請求的設定。因此,新的相機 API 為每個捕獲的幀添加了大量的動態元資料。這包括用於捕獲的請求參數和實際參數,以及附加的每幀元數據,例如時間戳和統計生成器輸出。

按設定控制

對於大多數設置,期望它們可以在每一幀中進行更改,而不會給輸出幀流帶來明顯的卡頓或延遲。理想情況下,輸出幀速率應僅由捕獲請求的幀持續時間字段控制,並且獨立於處理區塊配置的任何變更。事實上,一些特定的控制措施變化緩慢。其中包括相機管道的輸出解析度和輸出格式,以及影響實體設備的控件,例如鏡頭焦距。每個控制集的具體要求稍後會詳述。

原始感測器數據支援

除了舊 API 支援的像素格式之外,新 API 還增加了對原始感測器資料 (Bayer RAW) 的支援要求,既適用於進階相機應用,也支援原始影像檔案。