RequestAvailableCapabilities 列舉
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
透過 的 RequestAvailableCapabilities多種方法列舉 。
public enum RequestAvailableCapabilities
type RequestAvailableCapabilities =
- 繼承
-
RequestAvailableCapabilities
欄位
| 名稱 | 值 | Description |
|---|---|---|
| BackwardCompatible | 0 | 這是每台相機裝置(不論 android.info.supportedHardwareLevel)都支援的最低限度功能。 這項功能在所有一般裝置上都有列出,表示該相機裝置的功能集與舊版 android.hardware.Camera API 的基準需求相當。 具備DEPTH_OUTPUT功能的裝置可能未列出此功能,表示它們僅支援深度測量,而非標準色彩輸出。 本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。 |
| ManualSensor | 1 | 相機裝置可手動控制(3A 演算法如自動曝光與自動對焦可繞過)。 相機裝置支援對感測器影像擷取階段的基本手動控制。 這表示以下控制項保證支援:手動幀數控制;android.sensor.frameDuration;android.sensor.info.maxFrameDuration;手動曝光控制;android.sensor.exposureTime;android.sensor.info.exposureTimeRange;手動靈敏度控制;android.sensor.sensitivity;android.sensor.info.sensitivityRange;手動鏡頭控制(如果鏡頭可調);android.lens.*;手動閃光燈控制(若有閃光燈);android.flash.*;手動黑位鎖定;android.blackLevel.lock;自動曝光鎖;android.control.aeLock 若啟用上述任一 3A 演算法,攝影機裝置將準確回報 3A 在結果中施加的數值。 特定相機裝置也可能支援額外的手動感光元件控制,但此功能僅涵蓋上述控制清單。 若支援此功能,android.scaler.streamConfigurationMap 會針對每種支援的大小格式組合,回傳一個最小幀持續時間,該長度大於零。 對於具備LOGICAL_MULTI_CAMERA功能的相機裝置,當底層的主動實體相機切換時,即使鎖定 AE/AF,曝光時間、感光度及鏡頭特性也可能改變。 然而,使用者整體的自動曝光與自動對焦體驗將會保持一致。 詳情請參考LOGICAL_MULTI_CAMERA能力。
Android 參考資料。 本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。 |
| ManualPostProcessing | 2 | 相機裝置的後製階段可手動控制。 相機裝置支援對影像後製階段的基本手動控制。 這表示以下控制項必定支援:手動音色映射控制;android.tonemap.curve;android.tonemap.mode;android.tonemap.maxCurvePoints;android.tonemap.gamma;android.tonemap.presetCurve;手動白平衡控制;android.colorCorrection.transform;android.colorCorrection.gains;手動鏡頭著色貼圖控制;android.shading.mode;android.statistics.lensShadingMapMode;android.statistics.lensShadingMap;android.lens.info.shadingMapSize;手動像差校正控制(若支援像差校正);android.colorCorrection.aberrationMode;android.colorCorrection.availableAberrationModes;自動白平衡鎖定;android.control.awbLock 若啟用自動白平衡,相機裝置會準確回報 AWB 所套用的數值。 特定相機裝置也可能支援額外的後製控制,但此功能僅涵蓋上述控制清單。 對於具備LOGICAL_MULTI_CAMERA功能的相機裝置,當底層有主動實體相機切換時,即使鎖定 AWB,色調貼圖、白平衡和陰影貼圖也可能改變。 然而,使用者的整體後製體驗將會是一致的。 詳情請參考LOGICAL_MULTI_CAMERA能力。 本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。 |
| Raw | 3 | 相機裝置支援輸出 RAW 緩衝區及中繼資料以進行解讀。 支援 RAW 能力的裝置同時允許儲存 DNG 檔案,也可直接應用原始感測器影像;RAW_SENSOR 作為輸出格式被支援;RAW_SENSOR串流的最大可用解析度會與 android.sensor.info.pixelArraySize 或 android.sensor.info.preCorrectionActiveArraySize 中的數值相符;所有與 DNG 相關的可選元資料條目皆由相機裝置提供
Android 參考資料。 本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。 |
| PrivateReprocessing | 4 | 該相機裝置支援零快門延遲重處理的使用情境。支援一個輸入串流,即 android.request.maxNumInputStreams == 1;ImageFormat.PRIVATE 支援作為輸出/輸入格式,也就是說,ImageFormat.PRIVATE 被包含在 StreamConfigurationMap.getInputFormats() 和 StreamConfigurationMap.getOutputFormats() 回傳的格式清單中;StreamConfigurationMap.getValidOutputFormatsForInput(int) 對於 StreamConfigurationMap.getInputFormats() 回傳的每種支援輸入格式,回傳非空的 int[];getInputSizes(ImageFormat.PRIVATE)回傳的每個大小也包含在 getOutputSizes(ImageFormat.PRIVATE)中;使用 ImageFormat.PRIVATE 並不會導致相對於感光元件最大擷取率(該解析度下)的幀率下降;ImageFormat.PRIVATE 將可重新處理成 ImageFormat.YUV_420_888 與 ImageFormat.JPEG 格式;對於支援Y8格式的單色相機,ImageFormat.PRIVATE將可重新處理成ImageFormat.Y8;PRIVATE 串流(輸入/輸出)的最大可用解析度將與 JPEG 串流的最大可用解析度相符;靜態元資料 android.reprocess.maxCaptureStall;僅以下控制項對重處理請求有效且會存在於擷取結果中,其他控制項在重處理請求中會被攝影機忽略;android.jpeg.*;android.noiseReduction.mode;android.edge.mode;android.noiseReduction.availableNoiseReductionModes 和 android.edge.availableEdgeModes 都會將 ZERO_SHUTTER_LAG 列為支援模式 本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。 |
| ReadSensorSettings | 5 | 相機裝置支援在內建 3A 演算法運行時,準確回報許多感光元件控制的感測器設定。 即使感測器設定無法手動更改,也能回報這些設定。 以下控制項的報告數值保證會在 CaptureResult 中顯示,包括啟用 3A 時:曝光控制;android.sensor.exposureTime;靈敏度控制;android.sensor.sensitivity;鏡頭控制(如果鏡頭可調);android.lens.focusDistance;android.lens.光圈 此能力屬於MANUAL_SENSOR控制能力的子集,若MANUAL_SENSOR能力可用,該功能將始終包含在內。 本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。 |
| BurstCapture | 6 | 當後製設定設為 FAST 時,該相機裝置支援以 = 20 幀每秒拍攝高解析度影像 >,至少在未壓縮的 YUV 格式下。 此外,所有小於 2400 萬像素的影像解析度均可以 >= 10 幀每秒捕捉。 這裡的「高解析度」指的是至少 800 萬像素,或裝置的最大解析度,以較小者為準。 更具體來說,這表示在 StreamConfigurationMap.getOutputSizes(int) 或 StreamConfigurationMap.getHighResolutionOutputSizes(int) 中,ImageFormat.YUV_420_888格式的支援大小會被列為支援大小,且該格式與大小的最小影格長度為 <= 1/20 秒,或 <= 1/10 秒,若影像大小小於 24 百萬像素;而 android.control.aeAvailableTargetFpsRanges 條目列出至少一個 FPS 範圍,最大 YUV_420_888 格式的最低 FPS >= 1 / 最小幀持續時間。 如果 StreamConfigurationMap.getHighResolutionOutputSizes(int) 中列出了這個最大尺寸,那麼 StreamConfigurationMap.getOutputSizes(int) YUV_420_888 的解析度清單中至少包含一個解析度 >= 8 百萬像素,且最小幀長度為 <= 1/20 秒。 如果裝置支援 ImageFormat.RAW10、ImageFormat.RAW12、ImageFormat.RAW14、ImageFormat.Y8,那麼這些檔案也能以與最大解析度相同的速率擷取YUV_420_888。 若裝置支援 PRIVATE_REPROCESSING 功能,則 ImageFormat.PRIVATE 格式同樣享有與 YUV_420_888 格式相同的保證。 此外,android.sync.maxLatency 欄位的值保證介於 0 到 4 之間,包含。 android.control.aeLockAvailable 和 android.control.awbLockAvailable 也保證為真,因此開啟這兩個鎖的突發擷取能產生一致的影像輸出。
Android 參考資料。 本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。 |
| YuvReprocessing | 7 | 相機裝置支援YUV_420_888再處理的使用情境,類似於PRIVATE_REPROCESSING,此功能要求相機裝置支援以下事項:支援一個輸入串流,即 android.request.maxNumInputStreams == 1;ImageFormat.YUV_420_888 支援作為輸出/輸入格式,也就是說,YUV_420_888 被包含在 StreamConfigurationMap.getInputFormats() 和 StreamConfigurationMap.getOutputFormats() 回傳的格式列表中;StreamConfigurationMap.getValidOutputFormatsForInput(int) 對於 StreamConfigurationMap.getInputFormats() 回傳的每種支援輸入格式,回傳非空的 int[];getInputSizes(YUV_420_888) 回傳的每個大小也包含在 getOutputSizes(YUV_420_888);使用ImageFormat.YUV_420_888不會造成相對於感光元件最大擷取率(該解析度下)的幀率下降;ImageFormat.YUV_420_888將可重新加工成ImageFormat.YUV_420_888及ImageFormat.JPEG兩種格式;ImageFormat.YUV_420_888串流(包括輸入/輸出)的最大可用解析度會與ImageFormat.JPEG串流的最大可用解析度相符;對於支援 Y8 格式的單色相機,上述所有要求YUV_420_888同樣適用於 Y8 格式;靜態元資料 android.reprocess.maxCaptureStall;只有以下控制措施對重新處理請求有效,且會出現在捕捉結果中。 重處理請求來自與中間ImageFormat.YUV_420_888輸出緩衝區相關的原始擷取結果。 再處理請求中的所有其他控制措施都會被相機裝置忽略;android.jpeg.*;android.noiseReduction.mode;android.edge.mode;android.reprocess.effectiveExposureFactor;android.noiseReduction.availableNoiseReductionModes 和 android.edge.availableEdgeModes 都會將 ZERO_SHUTTER_LAG 列為支援模式
Android 參考資料。 本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。 |
| DepthOutput | 8 | 相機裝置能從視野中進行深度測量。 此功能要求相機裝置支援以下格式:ImageFormat.DEPTH16 作為輸出格式被支援;ImageFormat.DEPTH_POINT_CLOUD 可選擇作為輸出格式支援;此相機裝置及所有使用相同 android.lens.falcing 的相機裝置,會在 CameraCharacteristics 與 CaptureResult 中列出以下校正元資料項目:android.lens.poseTranslation;android.lens.poseRotation;android.lens.intrinsicCalibration;android.lens.distortion;android.depth.depthIsExclusive 條目由此裝置列出;從 Android P 開始,android.lens.poseReference 條目由此裝置列出;僅具備DEPTH_OUTPUT功能的有限相機,不必支援一般YUV_420_888、Y8、JPEG及PRIV格式輸出。 它只需要支援 DEPTH16 格式 一般來說,深度輸出的幀率比標準色彩捕捉慢,因此DEPTH16和DEPTH_POINT_CLOUD格式通常會有延遲時間,需要考慮(參見 StreamConfigurationMap.getOutputStallDuration(int, Size))。 在同時支援深度與色彩輸出的裝置上,為了實現平滑預覽,建議使用重複連發,其中每 N 幀只包含一次深度輸出目標,其中 N 是預覽輸出率與深度輸出率(含深度停滯時間)的比值。
Android 參考資料。 本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。 |
| ConstrainedHighSpeedVideo | 9 | 此裝置支援受限高速錄影(幀率 >=120fps)的使用情境。 攝影機裝置將支援由 CameraDevice.createConstrainedHighSpeedCaptureSession(List, StateCallback, Handler) 建立的高速擷取會話,該會話僅接受由 CameraConstrainedHighSpeedCaptureSession.createHighSpeedRequestList(CaptureRequest) 建立的高速請求清單。 相機裝置仍可透過 android.control.aeAvailableTargetFpsRanges 廣告高速 FPS 範圍來支援高速影片串流。 在這種情況下,所有正常的每幀擷取請求控制與同步要求都適用於高速 fps 範圍,與其他 fps 範圍相同。 此能力描述了一種特殊操作模式的能力,但有許多限制(見下文),僅針對高速錄影。 支援的高速影片大小與幀率範圍在 StreamConfigurationMap.getHighSpeedVideoFpsRanges() 中規定。 為了獲得所需的輸出幀率,應用程式只能選擇 StreamConfigurationMap.getHighSpeedVideoSizes() 提供的影片大小與 FPS 範圍組合。 fps 範圍可以透過 android.control.aeTargetFpsRange 來控制。 在此功能中,相機裝置會分別覆蓋 aeMode、awbMode 和 afMode 至 ON、AUTO 和 CONTINUOUS_VIDEO。 所有後製區塊模式控制都會被覆寫為快速。 因此,無法手動控制捕捉與後處理參數。 其他所有控制項的操作方式與 android.control.mode == AUTO. 這表示所有其他 android.control.* 欄位都會繼續運作,例如:android.control.aeTargetFpsRange;android.control.aeExposureCompensation;android.control.aeLock;android.control.awbLock;android.control.effectMode;android.control.aeRegions;android.control.afRegions;android.control.awbRegions;android.control.afTrigger;android.control.aePrecaptureTrigger;android.control.zoomRatio 在 android.control.* 之外,以下控制項可使用:android.flash.mode(僅限 TORCH 模式,自動閃光無法使用,因為 aeMode 已開啟);android.lens.opticalStabilizationMode(若支援);android.scaler.cropRegion;android.statistics.faceDetectMode(如果支援的話) 在高速錄影的情況下,實際支援的最大幀率可能低於攝影機的輸出,這取決於影像資料的目標 Surface。 例如,若目標曲面來自視訊編碼器,應用程式需檢查視訊編碼器是否能支援特定影片尺寸下的高影格率,否則錄影幀率會較低。 如果目標表面是預覽視窗,實際預覽幀率會被螢幕刷新率限制。 在此模式下,攝影機裝置最多支援兩個高速同時輸出面(預覽面與錄影面)。 上述控制項僅在以下條件皆成立時有效:應用程式透過 CameraDevice.createConstrainedHighSpeedCaptureSession(List, StateCallback, Handler) 建立一個不超過 2 個表面的相機擷取會話。 目標曲面必須是預覽曲面(來自 SurfaceView 或 SurfaceTexture)或錄製曲面(來自 MediaRecorder.getSurface() 或 MediaCodec.createInputSurface());串流大小是從 StreamConfigurationMap.getHighSpeedVideoSizes() 報告的大小中選擇的;FPS 範圍是從 StreamConfigurationMap.getHighSpeedVideoFpsRanges() 中選擇的 當上述條件未被滿足時,CameraDevice.createConstrainedHighSpeedCaptureSession(List, StateCallback, Handler) 將失敗。 切換到不同最大 FPS 的 FPS 範圍,可能會觸發某些攝影機裝置的重新配置,進而增加延遲。 建議應用程式在高速串流時盡量避免不必要的最大目標幀數變動。 本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。 |
| MotionTracking | 10 | 相機裝置支援 android.control.captureintent 的 MOTION_TRACKING 值,限制最大曝光時間為 20 毫秒。 這限制了拍攝影像的動態模糊,進而在影像穩定或擴增實境等應用場景中,取得更佳的影像追蹤效果。
Android 參考資料。 本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。 |
| LogicalMultiCamera | 11 | 攝影機裝置是邏輯攝影機,並由兩台或更多實體攝影機支援。 在 API 層級 28 中,實體攝影機也必須透過 CameraManager.getCameraIdList() 暴露給應用程式。 從 API 層級 29 開始:部分或全部實體攝影機可能不會獨立暴露給應用程式,此時實體攝影機 ID 將無法在 CameraManager.getCameraIdList() 中提供。 但應用程式仍可透過呼叫 CameraManager.getCameraCharacteristics(String);若實體攝影機隱藏於攝影機 ID 清單中,該實體攝影機的強制串流組合必須透過邏輯攝影機使用實體串流來支援。 一個例外是 API 層級 30 中,實體攝影機可能會透過 CameraManager.AvailabilityCallback.onPhysicalCameraUnavailable 回撥變得無法使用。 邏輯串流與實體串流的組合,或來自不同實體攝影機的實體串流,並不保證會發生。 然而,若攝影機裝置支援 CameraDevice.isSessionConfigurationSupported,應用程式必須能夠透過呼叫 CameraDevice.isSessionConfigurationSupported 查詢是否支援包含實體串流的串流組合。 相機應用程式不應該假設系統中最多只有一台後置攝影機和一台前置攝影機。 對於需要在前後鏡頭間切換的應用程式,建議在支援的相機裝置清單中,切換第一台後置相機和第一台前置相機。 此功能要求相機裝置支援以下功能:底層實體相機的 ID 會透過 CameraCharacteristics.getPhysicalCameraIds();此相機裝置必須在 CameraCharacteristics; 中列出靜態元資料 android.logicalMultiCamera.sensorSyncType;底層實體攝影機的靜態元資料必須列出以下條目,以便應用程式能將實體串流中的像素對應起來:android.lens.poseReference;android.lens.poseRotation;android.lens.poseTranslation;android.lens.intrinsicCalibration;android.lens.distortion;邏輯裝置與實體裝置的SENSOR_INFO_TIMESTAMP_SOURCE必須相同;邏輯攝影機必須是 LIMITED 或更高階的裝置 邏輯攝影機裝置的動態元資料可能包含 android.logicalMultiCamera.activePhysicalId,用以通知應用程式目前的主動實體攝影機 ID。主動式實體攝影機是邏輯攝影機主要影像資料(YUV 或 RAW)及元資料來源的實體攝影機。 此外,這也指示用哪台實體攝影機輸出 RAW 串流,或若只有實體攝影機支援 RAW,應用程式應該請求哪個實體 RAW 串流。 邏輯攝影機的靜態元資料標籤描述了預設的主動實體攝影機。 如果應用程式直接使用從範本建立的請求時,主動實體攝影機就是預設的。 所有範本預設為相同的主動實體攝影機;android.sensor.info.sensitivityRange;android.sensor.info.colorFilterArrangement;android.sensor.info.exposureTimeRange;android.sensor.info.maxFrameDuration;android.sensor.info.physicalSize;android.sensor.info.whiteLevel;android.sensor.info.lensShadingApplied;android.sensor.referenceIlluminant1;android.sensor.referenceIlluminant2;android.sensor.calibrationTransform1;android.sensor.calibrationTransform2;android.sensor.colorTransform1;android.sensor.colorTransform2;android.sensor.forwardMatrix1;android.sensor.forwardMatrix2;android.sensor.blackLevelPattern;android.sensor.maxAnalogSensitivity;android.sensor.opticalBlackRegions;android.sensor.availableTestPatternModes;android.lens.info.hyperfocalDistance;android.lens.info.minimumFocusDistance;android.lens.info.focusDistanceCalibration;android.lens.poseRotation;android.lens.poseTranslation;android.lens.intrinsicCalibration;android.lens.poseReference;android.lens.distortion 非 RAW 物理串流的視野不得小於非 RAW 邏輯串流,或物理攝影機的最大視野,以較小者為準。 應用程式應檢查實體擷取結果的元資料及實體攝影機特性,以判斷物理串流的裁切或縮放情況。 請參考 android.lens.focalLength 相關視角計算方式。 通常主動實體攝影機的物理串流與邏輯串流擁有相同的視野範圍。 然而,非活動實體攝影機的實體串流可能不一定如此。 例如,若邏輯相機採用廣角超廣角配置,且預設為廣角鏡頭,裁切區域設定為邏輯相機的主動陣列大小(且從 Android 11 起變焦比設為 1.0),超廣角相機的實體串流可能會偏好輸出比廣角相機更大的視野影像,以獲得更好的立體匹配邊距或更穩健的動態追蹤。 同時,物理非RAW串流的視野不得小於所需裁切區域與變焦比,只要在實體鏡頭的範圍內即可。 例如,對於邏輯相機的廣角長鏡頭設定,且預設為廣角鏡頭,若邏輯相機的裁切區域設為最大尺寸,變焦比設為 1.0,則長焦鏡頭的物理畫面串流將被設定為最大尺寸裁切區域(無變焦)。 已棄用:在 Android 11 之前,所有非 RAW 實體串流的視野不得大於非 RAW 邏輯串流。 若邏輯相機採用廣角超廣角配置,且預設為廣角鏡頭,當邏輯相機的裁切區域設定為最大尺寸時,超廣角鏡頭的物理裁切流視野將與邏輯流相同,因為裁切區域會比其主動陣列尺寸更小,以補償較小的焦距。 對於邏輯相機,底層的實體相機通常具有不同的 RAW 功能(例如解析度或 CFA 模式)。 應用程式有兩種方式可以從邏輯相機擷取 RAW 影像:如果邏輯相機具備 RAW 功能,應用程式就能以相同方式建立並使用 RAW 串流。 若設定了 RAW 串流,為維持向下相容,攝影機裝置會確保預設的主動實體攝影機持續啟用,且不會切換到其他實體攝影機。 (例外是,若邏輯相機由相同的影像感測器組成,且因不同鏡頭標示多個焦距,相機裝置可能會根據應用程式設定的焦距,從不同實體相機產生 RAW 影像。)這種向下相容的做法通常會導致光學變焦、長焦鏡頭或超廣角鏡頭的失效;另外,若裝置支援,也可使用MultiResolutionImageReader從底層實體相機擷取RAW影像(視當前縮放等級而定)。 由於不同的實體攝影機可能擁有不同的 RAW 特性,應用程式需要使用主動實體攝影機的特性與結果元資料來產生相關的 RAW 元資料 向下相容相機功能所需的擷取請求與結果元資料標籤,將完全基於邏輯相機功能。 另一方面,使用手動捕捉控制(感測器或後製)搭配邏輯相機,當HAL決定在不同特性的實體相機間切換時,可能會產生意想不到的行為。 例如,當應用程式在放大時手動設定曝光時間與感光度,相機影像的亮度可能會突然改變,因為 HAL 會從一台實體相機切換到另一台。 本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。 |
| Monochrome | 12 | 相機裝置是單色相機,沒有色彩濾鏡陣列YUV_420_888,串流中 U 和 V 平面的像素值都是 128。 單色相機必須支援其裝置等級與能力所需的保證串流組合。 此外,若單色相機裝置支援 Y8 格式,所有與 YUV_420_888 相關的強制串流組合要求也適用於 Y8。 拜耳相機設備的Y8沒有強制性的串流組合要求。 從 Android Q 開始,單色相機的SENSOR_INFO_COLOR_FILTER_ARRANGEMENT將是單紅外(MONO)或近紅外(NIR)。
Android 參考資料。 本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。 |
| SecureImageData | 13 | 該相機裝置能將影像資料寫入 Android 使用者空間或核心無法存取的記憶體區域,且僅可信任執行環境(TEE)存取。 本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。 |
| SystemCamera | 14 | 該相機裝置僅能透過 Android 的系統元件及特權應用程式存取。 程序除了 android.permission.CAMERA 外,還需要有 android.permission.SYSTEM_CAMERA,才能連接到這個相機裝置。
Android 參考資料。 本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。 |
| OfflineProcessing | 15 | 相機裝置支援OFFLINE_PROCESSING的使用情境。 有了OFFLINE_PROCESSING功能,應用程式可以透過呼叫 CameraCaptureSession#switchToOffline 方法,將正在進行的擷取會話切換到離線模式,並指定要保持離線的串流。 攝影機會停止目前正在重複的請求,準備部分請求進入離線模式,並回傳離線會話物件。 在 switchToOffline 呼叫回傳後,原始擷取會話會處於封閉狀態,就像 CameraCaptureSession#close 方法被呼叫一樣。 在離線模式下,所有飛行中請求都會在背景繼續處理,應用程式可以立即關閉相機或建立新的拍攝會話,而不會遺失這些請求的輸出影像和擷取結果。 當攝影機裝置正在處理離線請求時,可能無法支援所有串流設定,除非離線請求。 當這種情況發生時,createCaptureSession 方法呼叫將會失敗。 以下串流配置保證不觸發資源繁忙例外:一個持續的離線工作階段:目標為 YUV 或 JPEG 格式的輸出表面,解析度不限;主動攝影機拍攝階段:一個預覽曲面(SurfaceView 或 SurfaceTexture)寬度可達 1920;一台 YUV ImageReader 表面寬度可達 1920 吋;一台 JPEG 影像閱讀器,任何解析度:若有離線連線,相機可將 JPEG 輸出速度減慢 50%;若裝置支援PRIVATE_REPROCESSING,一對 ImageWriter/ImageReader 會以私有格式呈現,解析度與上述 JPEG ImageReader 解析度相同;或者,上述主動攝影機會話也可以被傳統攝影機取代,並設定如下參數:預覽尺寸可達1920寬;預覽回調大小可達1920寬度;影片寬度可達1920;圖片大小、任何解析度:如果有任何離線連線,相機可以將 JPEG 輸出速度減慢 50% 本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。 |
| UltraHighResolutionSensor | 16 | 此相機裝置除了 android.scaler.streamConfigurationMap 描述的影像尺寸外,還能產生超高解析度影像。 它可以在「預設」模式和「最高解析度」模式下運作。 它通常是透過在「預設」模式下分線像素,而不是在「最高解析度」模式中分選像素來達成這個目標。 android.scaler.streamConfigurationMap 描述了在「預設」模式下支援的串流。 在「最大解析度」模式下支援的串流配置由 android.scaler.streamConfigurationMapMaximumResolution 描述。 具備此功能的相機裝置(android.sensor.info.pixelArraySize)的最大解析度像素陣列尺寸,至少可達 2400 萬像素。 本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。 |
| RemosaicReprocessing | 17 | 裝置支援從 android.sensor.info.binningFactor 提供的拜耳圖案(m x n 像素群組,且相同色彩濾鏡)的 RAW_SENSOR 格式重新處理成重新馬賽克的常規拜耳圖案。 此功能僅提供於具備REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR能力的裝置。 當REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR裝置未宣告此功能時,ImageFormat.RAW_SENSOR 影像已呈現規則的拜耳圖案。 如果在 CaptureRequest 中同時請求一個 RAW_SENSOR 串流和另一個非 RAW 串流(且 android.sensor.pixelMode 設定為 SENSOR_PIXEL_MODE_MAXIMUM_RESOLUTION 時支援多串流),RAW_SENSOR串流將呈現規律的 bayer 模式。 此功能要求相機裝置支援以下功能:以下提到的 StreamConfigurationMap 指的是 android.scaler.streamConfigurationMapMaximumResolution 所描述的版本;支援一個輸入串流,即 android.request.maxNumInputStreams == 1;ImageFormat.RAW_SENSOR 支援作為輸出/輸入格式,也就是說,ImageFormat.RAW_SENSOR 包含在 StreamConfigurationMap.getInputFormats() 和 StreamConfigurationMap.getOutputFormats() 回傳的格式列表中;StreamConfigurationMap.getValidOutputFormatsForInput(int) 對於 StreamConfigurationMap.getInputFormats() 回傳的每種支援輸入格式,回傳非空的 int[];getInputSizes(ImageFormat.RAW_SENSOR) 回傳的每個大小也包含在 getOutputSizes(ImageFormat.RAW_SENSOR);使用 ImageFormat.RAW_SENSOR 不會造成相對於感測器最大擷取率(該解析度)的幀率下降;當請求的輸入目標為 ImageFormat.RAW_SENSOR 格式時,將不適用 CaptureRequest 控制項 本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。 |
| DynamicRangeTenBit | 18 | 該裝置支援一個或多個 10 位元相機輸出,依據 DynamicRangeProfiles.getSupportedProfiles() 所指定的動態範圍設定檔。 它們可透過 OutputConfiguration.setDynamicRangeProfile(long) 作為擷取會話初始化的一部分來設定。 啟用此功能的攝影機還必須支援以下功能:Profile DynamicRangeProfiles.HLG10;根據文件,所有針對此特定能力的強制串流組合;若裝置無法在同一擷取請求中擷取支援的標準 8 位元和/或 10 位元動態範圍配置檔組合,則這些限制必須在 DynamicRangeProfiles.getProfileCaptureRequestConstraints(long) 中列出;推薦動態範圍設定在CameraCharacteristics.REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILE 本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。 |
| StreamUseCase | 19 | 攝影機裝置支援透過 OutputConfiguration.setStreamUseCase(long) 選擇每個串流的使用情境,以便針對特定使用者情境優化攝影機管線參數,如調校、感測器模式或 ISP 設定。 此功能的一些範例應用包括:區分高品質的 YUV 擷取與一般 YUV 串流,後者的影像品質可能不如 JPEG 串流,或;用一條串流同時兼顧多種用途:取景器、錄影和靜態擷取。 這在希望將編輯對預覽、儲存的圖片和已儲存影片都同等套用的應用程式中很常見 此功能要求攝影機裝置支援以下串流使用情境:DEFAULT 用於向下相容,應用程式未設定串流使用情境;即時觀景器及應用程式內影像分析預覽;STILL_CAPTURE用於靜態攝影;VIDEO_RECORD用於錄製影片片段;PREVIEW_VIDEO_STILL單一串流,用於觀景器、錄影及靜態捕捉;VIDEO_CALL長時間視訊通話 CameraCharacteristics.SCALER_AVAILABLE_STREAM_USE_CASES列出所有支援的串流使用案例。 請參閱有關涉及串流使用情境的強制串流組合指引,這些資訊也可以透過 MandatoryStreamCombination 查詢。
Android 參考資料。 本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。 |
| ColorSpaceProfiles | 20 | 裝置支援查詢相機支援的色彩空間、影像格式及動態範圍設定檔的可能組合,並透過 SessionConfiguration.setColorSpace(Named)請求特定色彩空間。 啟用此功能的攝影機可能同時實作動態範圍設定檔,也可能沒有。 若不支援,ColorSpaceProfiles.getSupportedDynamicRangeProfiles(Named, int)僅回傳 DynamicRangeProfiles.STANDARD,而 ColorSpaceProfiles.getSupportedColorSpacesForDynamicRange(int, long) 則假設在所有色彩空間與影像格式組合中支援 DynamicRangeProfiles.STANDARD 設定檔。 本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。 |
備註
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。