運行 Android 9 或更高版本的設備可以支持單色相機。 Android 10 為 Y8 流格式、單色和近紅外 (NIR) 濾色器陣列靜態元數據以及單色相機的DngCreator
函數提供了額外支持。
借助此功能,設備製造商可以實現單色或 NIR 相機設備,並通過使用 Y8 流格式減少內存使用。單色相機可以作為邏輯多相機設備的底層物理相機,以實現更好的低光噪聲特性。
執行
硬件要求
要實現此功能,您的設備必須具有單色相機傳感器和圖像信號處理器 (ISP) 來處理傳感器輸出。
實現單色相機
要將相機設備宣傳為單色相機, Camera HAL必須滿足以下要求:
-
android.sensor.info.colorFilterArray
設置為MONO
或NIR
。 - 支持
BACKWARD_COMPATIBLE
必需的鍵,不支持MANUAL_POST_PROCESSING
。 -
android.control.awbAvailableModes
僅包含AUTO
和android.control.awbState
是CONVERTED
還是LOCKED
取決於android.control.awbLock
。 -
android.colorCorrection.mode
、android.colorCorrection.transform
和android.colorCorrection.gains
不在可用的請求和結果鍵中。結果,相機設備是LIMITED
。 不存在以下與顏色相關的靜態元數據鍵:
-
android.sensor.referenceIlluminant*
-
android.sensor.calibrationTransform*
-
android.sensor.colorTransform*
-
android.sensor.forwardMatrix*
-
android.sensor.neutralColorPoint
-
android.sensor.greenSplit
-
對於以下元數據鍵,所有顏色通道都具有相同的值:
-
android.sensor.blackLevelPattern
-
android.sensor.dynamicBlackLevel
-
android.statistics.lensShadingMap
-
android.tonemap.curve
-
android.sensor.noiseProfile
只有一個顏色通道。
對於支持 Y8 流格式的單色設備,Camera HAL 必須支持將強制流組合(包括重新處理)中的YUV_420_888
格式與 Y8 格式交換。
此功能使用以下公共 API:
- Y8圖像格式
- SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_MONO
- SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_NIR
- MONOCHROME 相機功能(在 Android 9 中引入)
有關相機 HAL 的更多詳細信息,請參閱docs.html 。有關相關公共 API 的更多信息,請參閱ImageFormat 、 CameraCharacteristics 、 CaptureRequest和CaptureResult 。
驗證
要驗證單色相機的實現,請運行以下 CTS 和 VTS 測試。
CTS 測試
testMonochromeCharacteristics
-
CaptureRequestTest
-
CaptureResultTest
-
StillCaptureTest
-
DngCreatorTest
VTS 測試
getCameraCharacteristics
-
processMultiCaptureRequestPreview