RequestAvailableCapabilities 列挙型
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
RequestAvailableCapabilitiesのいくつかのメソッドによって返される値を列挙します。
public enum RequestAvailableCapabilities
type RequestAvailableCapabilities =
- 継承
-
RequestAvailableCapabilities
フィールド
| 名前 | 値 | 説明 |
|---|---|---|
| BackwardCompatible | 0 | すべてのカメラ デバイス (android.info.supportedHardwareLevel に関係なく) がサポートする最小限の機能セット。 この機能はすべての通常のデバイスによって一覧表示され、カメラ デバイスに古い android.hardware.Camera API のベースライン要件に相当する機能セットがあることを示します。 DEPTH_OUTPUT機能を持つデバイスでは、標準のカラー出力ではなく深度測定のみがサポートされていることを示す、この機能が一覧表示されない場合があります。 |
| 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 は、サポートされているサイズ形式の組み合わせごとに 0 より大きい最小フレーム期間を返します。 LOGICAL_MULTI_CAMERA機能を備えたカメラ デバイスの場合、AE/AF がロックされている場合でも、基になるアクティブな物理カメラのスイッチ、exposureTime、感度、レンズのプロパティが変わる可能性があります。 ただし、ユーザーの全体的な自動露出と自動フォーカスエクスペリエンスは一貫しています。 詳細については、LOGICAL_MULTI_CAMERA機能を参照してください。 |
| ManualPostProcessing | 2 | カメラデバイスの後処理ステージは手動で制御できます。 カメラデバイスは、画像後処理ステージの基本的な手動制御をサポートしています。 これは、次のコントロールがサポートされることを保証することを意味します: 手動トーンマップコントロール;android.tonemap.curve;android.tonemap.mode;android.tonemap.maxCurvePoints;android.tonemap.gamma;android.tonemap.presetCurve;手動ホワイトバランス制御;android.colorCorrection.transform;android.colorCorrection.gain;手動レンズシェーディングマップコントロール;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機能を参照してください。 |
| Raw | 3 | カメラ デバイスでは、RAW バッファーの出力と、それらを解釈するためのメタデータがサポートされています。 RAW 機能をサポートするデバイスでは、DNG ファイルの保存と、生のセンサー イメージの直接アプリケーション処理の両方が可能です。RAW_SENSORは出力形式としてサポートされています。RAW_SENSOR ストリームで使用可能な最大解像度は、android.sensor.info.pixelArraySize または android.sensor.info.preCorrectionActiveArraySize の値と一致します。すべての DNG 関連の省略可能なメタデータ エントリは、カメラ デバイスによって提供されます
|
| PrivateReprocessing | 4 | カメラ デバイスは、ゼロ シャッター ラグの再処理のユース ケースをサポートしています。1 つの入力ストリーム、つまり 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一覧表示されます |
| ReadSensorSettings | 5 | カメラ デバイスは、組み込みの 3A アルゴリズムの実行中に、多くのセンサー コントロールのセンサー設定を正確にレポートすることをサポートしています。 これにより、これらの設定を手動で変更できない場合でも、センサー設定のレポートが可能になります。 次のコントロールに対して報告される値は、3A が有効になっている場合を含め、CaptureResult で使用可能であることが保証されます。android.sensor.exposureTime;感度制御;android.sensor.sensitivity;レンズコントロール(レンズが調整可能な場合)android.lens.focusDistance;android.lens.aperture この機能は、MANUAL_SENSOR制御機能のサブセットであり、MANUAL_SENSOR機能が使用可能な場合は常に含まれます。 |
| BurstCapture | 6 | カメラ デバイスでは、後処理の設定が FAST に設定されている場合、少なくとも非圧縮 YUV 形式で、1 秒あたり 20 フレームの >= で高解像度の画像をキャプチャできます。 さらに、2400 万画素未満のすべての画像解像度は、 >= 10 フレーム/秒でキャプチャできます。 ここで、"高解像度"とは、少なくとも 800 万画素、またはデバイスの最大解像度のいずれか小さい方を意味します。 具体的には、カメラ デバイスのアクティブな配列サイズに一致するサイズが、StreamConfigurationMap.getOutputSizes(int) または StreamConfigurationMap.getHighResolutionOutputSizes(int) のいずれかのImageFormat.YUV_420_888形式でサポートされているサイズとして一覧表示され、その形式とサイズの最小フレーム期間は <= 1/20 秒、または <= 1/10 s の場合、画像のサイズは、それぞれ 24 の画素未満です。および android.control.aeAvailableTargetFpsRanges エントリには、最大サイズのYUV_420_888形式の最小 FPS が >= 1 / minimumFrameDuration である 1 つ以上の FPS 範囲が一覧表示されます。 その最大サイズが StreamConfigurationMap.getHighResolutionOutputSizes(int) に一覧表示されている場合、StreamConfigurationMap.getOutputSizes(int) のYUV_420_888の解像度の一覧には、少なくとも 1 つの解像度 > = 8 mb、最小フレーム期間は < = 1/20 秒です。 デバイスが ImageFormat.RAW10、ImageFormat.RAW12、ImageFormat.RAW14、ImageFormat.Y8 をサポートしている場合は、最大サイズのYUV_420_888解像度と同じレートでキャプチャすることもできます。 デバイスがPRIVATE_REPROCESSING機能をサポートしている場合、YUV_420_888形式と同じ保証が ImageFormat.PRIVATE 形式にも適用されます。 さらに、android.sync.maxLatency フィールドには、0 から 4 までの値が指定されていることが保証されています。 android.control.aeLockAvailable と android.control.awbLockAvailable も true であることが保証されているため、これら 2 つのロックを ON にしてバースト キャプチャを実行すると、一貫した画像出力が生成されます。 |
| YuvReprocessing | 7 | カメラ デバイスは、PRIVATE_REPROCESSINGと同様に、YUV_420_888再処理のユース ケースをサポートしています。この機能では、カメラ デバイスで次の処理がサポートされている必要があります。1 つの入力ストリームがサポートされています。つまり、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一覧表示されます |
| DepthOutput | 8 | カメラデバイスは、その視野から深度測定を生成することができます。 この機能を使用するには、カメラ デバイスで次の機能がサポートされている必要があります。ImageFormat.DEPTH16 は出力形式としてサポートされています。ImageFormat.DEPTH_POINT_CLOUDは、必要に応じて出力形式としてサポートされます。このカメラ デバイスと、同じ android.lens.facing を持つすべてのカメラ デバイスには、CameraCharacteristics と CaptureResult の両方で次の調整メタデータ エントリが一覧表示されます。android.lens.poseTranslation;android.lens.poseRotation;android.lens.intrinsicCalibration;android.lens.distortion;android.depth.depthIsExclusive エントリは、このデバイスによって一覧表示されます。Android P の時点で、android.lens.poseReference エントリはこのデバイスによって一覧表示されます。DEPTH_OUTPUT機能のみを備えた LIMITED カメラでは、通常のYUV_420_888、Y8、JPEG、PRIV 形式の出力をサポートする必要はありません。 DEPTH16形式のみをサポートする必要がある 一般に、深度出力は標準のカラー キャプチャよりも低速のフレーム レートで動作するため、DEPTH16形式とDEPTH_POINT_CLOUD形式では、一般的にストール期間を考慮する必要があります (StreamConfigurationMap.getOutputStallDuration(int, Size) を参照)。 深度とカラーベースの両方の出力をサポートするデバイスでは、スムーズなプレビューを有効にするために、繰り返しバーストを使用することをお勧めします。ここで、深度出力ターゲットは N フレームごとに 1 回だけ含まれます。N は、プレビュー出力レートと深度出力レートの比率 (深度ストール時間を含む) です。
|
| ConstrainedHighSpeedVideo | 9 | このデバイスは、制限付き高速ビデオ記録 (フレーム レート >= 120fps) のユース ケースをサポートしています。 カメラ デバイスは、CameraDevice.createConstrainedHighSpeedCaptureSession(List, StateCallback, Handler) によって作成された高速キャプチャ セッションをサポートします。これは、CameraConstrainedHighSpeedCaptureSession.createHighSpeedRequestList(CaptureRequest) によって作成された高速要求リストのみを受け入れます。 カメラ デバイスでは、android.control.aeAvailableTargetFpsRanges で高速 FPS 範囲をアドバタイズすることで、高速ビデオ ストリーミングを引き続きサポートできます。 この場合、フレーム コントロールごとの通常のキャプチャ要求と同期の要件はすべて、他のすべての fps 範囲と同じ高速 fps 範囲に適用されます。 この機能は、高速ビデオ録画のみを対象とする多くの制限 (下記参照) を持つ特殊な動作モードの機能について説明します。 サポートされている高速ビデオ サイズと fps 範囲は、StreamConfigurationMap.getHighSpeedVideoFpsRanges() で指定されています。 目的の出力フレーム レートを取得するために、アプリケーションは StreamConfigurationMap.getHighSpeedVideoSizes() によって提供されるビデオ サイズと FPS 範囲の組み合わせを選択することのみを許可されます。 fps 範囲は android.control.aeTargetFpsRange を使用して制御できます。 この機能では、カメラ デバイスは aeMode、awbMode、afMode をそれぞれ ON、AUTO、および CONTINUOUS_VIDEO にオーバーライドします。 すべての後処理ブロック モード コントロールは、FAST にオーバーライドされます。 そのため、キャプチャと後処理のパラメーターを手動で制御できません。 他のすべてのコントロールは、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 が ON であるため、キャプチャ用の自動フラッシュは機能しません)。android.lens.opticalStabilizationMode (サポートされている場合)android.scaler.cropRegion;android.statistics.faceDetectMode (サポートされている場合) 高速記録のユース ケースの場合、実際にサポートされている最大フレーム レートは、画像データの宛先サーフェスに応じて、カメラが出力できるフレーム レートよりも低くなる場合があります。 たとえば、宛先サーフェスがビデオ エンコーダーからのものである場合、アプリケーションでは、ビデオ エンコーダーが特定のビデオ サイズに対して高いフレーム レートをサポートできるかどうかを確認する必要があります。そうしないと、最終的に記録フレーム レートが低くなります。 ターゲット サーフェスがプレビュー ウィンドウからの場合、実際のプレビュー フレーム レートは画面のリフレッシュ レートによって制限されます。 カメラ デバイスは、このモードで最大 2 つの高速同時出力サーフェス (プレビューおよび記録サーフェス) のみをサポートします。 上記のコントロールは、以下の条件がすべて当てはまる場合にのみ有効です。アプリケーションは、CameraDevice.createConstrainedHighSpeedCaptureSession(List, StateCallback, Handler) を介して、2 サーフェス以下のカメラ キャプチャ セッションを作成します。 ターゲット サーフェスはプレビュー サーフェス (SurfaceView または SurfaceTexture のいずれか) または記録サーフェス (MediaRecorder.getSurface() または MediaCodec.createInputSurface()) である必要があります。ストリーム サイズは、StreamConfigurationMap.getHighSpeedVideoSizes()によって報告されるサイズから選択されます。FPS 範囲は StreamConfigurationMap.getHighSpeedVideoFpsRanges() から選択されます 上記の条件が満たされていない場合、CameraDevice.createConstrainedHighSpeedCaptureSession(List, StateCallback, Handler) は失敗します。 最大 FPS が異なる FPS 範囲に切り替えると、一部のカメラ デバイスの再構成がトリガーされ、待機時間が長くなる可能性があります。 アプリケーションでは、高速ストリーミング中にターゲット FPS の変更の上限ができるだけ不要にならないようにすることをお勧めします。 |
| MotionTracking | 10 | カメラ デバイスでは、最大露出時間を 20 ミリ秒に制限する android.control.captureIntent のMOTION_TRACKING値がサポートされています。 これにより、キャプチャ 画像のモーション ブラーが制限され、画像の安定化や拡張現実などのユース ケースでの画像追跡の結果が向上します。 |
| LogicalMultiCamera | 11 | カメラ デバイスは、2 つ以上の物理カメラによって支えられた論理カメラです。 API レベル 28 では、物理カメラも CameraManager.getCameraIdList() を介してアプリケーションに公開する必要があります。 API レベル 29 以降: 一部またはすべての物理カメラがアプリケーションに個別に公開されていない可能性があります。この場合、物理カメラ ID は CameraManager.getCameraIdList() では使用できません。 ただし、アプリケーションは CameraManager.getCameraCharacteristics(String)を呼び出すことによって、物理カメラの特性を照会できます。物理カメラがカメラ ID リストから非表示になっている場合は、物理ストリームを使用して、その物理カメラの必須のストリームの組み合わせを論理カメラでサポートする必要があります。 1 つの例外は、API レベル 30 では、CameraManager.AvailabilityCallback.onPhysicalCameraUnavailable コールバックを介して物理カメラが使用できなくなる可能性があるということです。 論理ストリームと物理ストリームの組み合わせ、または異なる物理カメラからの物理ストリームは保証されません。 ただし、カメラ デバイスが CameraDevice.isSessionConfigurationSupported をサポートしている場合、アプリケーションは CameraDevice.isSessionConfigurationSupported を呼び出すことによって、物理ストリームを含むストリームの組み合わせがサポートされているかどうかをクエリできる必要があります。 カメラ アプリケーションでは、システムに最大 1 台のリア カメラと 1 台のフロント カメラがあると想定しないでください。 フロント カメラとバック カメラを切り替えるアプリケーションの場合は、サポートされているカメラ デバイスの一覧で最初のリア カメラと最初のフロント カメラを切り替えるのが推奨されます。 この機能では、カメラ デバイスで次の機能をサポートする必要があります。基になる物理カメラの 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 以上のデバイスである必要があります 論理カメラ デバイスの動的メタデータには、現在のアクティブな物理カメラ ID をアプリケーションに通知する android.logicalMultiCamera.activePhysicalId が含まれている場合があります。アクティブな物理カメラは、論理カメラのメイン画像データ出力 (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 以外の論理ストリームよりも大きくすることはできません。 論理カメラにワイド レンズが既定のワイドレンズ構成の場合、論理カメラのトリミング領域が最大サイズに設定されている場合、トリミング領域をアクティブなアレイ サイズよりも小さくして、より小さい焦点の長さを補正することで、超ワイド レンズの物理ストリームの FOV は論理ストリームと同じになります。 論理カメラの場合、通常、基になる物理カメラには異なる RAW 機能 (解像度や CFA パターンなど) があります。 アプリケーションが論理カメラから RAW 画像をキャプチャするには、次の 2 つの方法があります。論理カメラに RAW 機能がある場合、アプリケーションは以前と同じ方法で RAW ストリームを作成して使用できます。 RAW ストリームが構成されている場合、下位互換性を維持するために、カメラ デバイスは、既定のアクティブな物理カメラがアクティブなままであり、他の物理カメラに切り替わらないことを確認します。 (1 つの例外は、論理カメラが同じイメージ センサーで構成され、レンズが異なるために複数の focalLength をアドバタイズする場合、カメラ デバイスは、アプリケーションによって設定されている focalLength に基づいて、異なる物理カメラから RAW 画像を生成する可能性があるということです)。この後方互換性のあるアプローチは、通常、望遠レンズまたは超ワイドレンズへの光学ズームの損失をもたらす。または、デバイスでサポートされている場合は、MultiResolutionImageReader を使用して、基になる物理カメラの 1 つから RAW 画像をキャプチャできます (現在のズーム レベルに応じて)。 物理カメラによって RAW 特性が異なる場合があるため、アプリケーションでは、関連する RAW メタデータに対してアクティブな物理カメラの特性と結果メタデータを使用する必要があります 下位互換性のあるカメラ機能に必要なキャプチャ要求と結果メタデータ タグは、論理カメラ機能のみに基づいています。 一方、論理カメラで手動キャプチャ コントロール (センサーまたは後処理) を使用すると、HAL が内部で異なる特性を持つ物理カメラを切り替えるときに予期しない動作が発生する可能性があります。 たとえば、アプリケーションがズームイン中に露出時間と感度を手動で設定すると、HAL が物理カメラ間で切り替わるため、カメラ画像の明るさが突然変わる可能性があります。 |
| Monochrome | 12 | カメラ デバイスはカラー フィルター配列を含まないモノクロ カメラであり、YUV_420_888 ストリームの場合、ユーザーと V 平面のピクセル値はすべて 128 です。 モノクロカメラは、デバイスレベルと機能に必要な保証されたストリームの組み合わせをサポートする必要があります。 さらに、モノクロ カメラ デバイスが Y8 形式をサポートしている場合、YUV_420_888に関連するすべての必須ストリームの組み合わせ要件も Y8 にも適用されます。 バイエルカメラデバイスのY8に関して、ストリームの組み合わせ要件は必須ありません。 Android Q 以降では、モノクロ カメラのSENSOR_INFO_COLOR_FILTER_ARRANGEMENTは MONO または NIR になります。
|
| SecureImageData | 13 | カメラ デバイスは、Android ユーザースペースまたは Android カーネルにアクセスできないメモリ領域に画像データを書き込み、信頼された実行環境 (TEE) にのみアクセスできます。 |
| SystemCamera | 14 | カメラ デバイスには、Android のシステム コンポーネントと特権アプリケーションのみがアクセスできます。 このカメラ デバイスに接続するには、android.permission.CAMERA に加えてプロセスにandroid.permission.SYSTEM_CAMERAが必要です。 |
| OfflineProcessing | 15 | カメラ デバイスは、OFFLINE_PROCESSINGユース ケースをサポートしています。 OFFLINE_PROCESSING機能を使用すると、アプリケーションは CameraCaptureSession#switchToOffline メソッドを呼び出して、オフライン モードで保持するストリームを指定することで、進行中のキャプチャ セッションをオフライン モードに切り替えることができます。 その後、カメラは現在アクティブな繰り返し要求を停止し、一部の要求がオフライン モードになる準備をして、オフライン セッション オブジェクトを返します。 switchToOffline 呼び出しが戻ると、元のキャプチャ セッションは、CameraCaptureSession#close メソッドが呼び出されたかのように閉じた状態になります。 オフライン モードでは、すべての処理中の要求はバックグラウンドで引き続き処理され、アプリケーションはすぐにカメラを閉じたり、新しいキャプチャ セッションを作成したりできます。要求の出力画像とキャプチャ結果を失う必要はありません。 カメラ デバイスがオフライン要求を処理している間、オフライン要求なしでサポートできるすべてのストリーム構成をサポートできない場合があります。 その場合、createCaptureSession メソッドの呼び出しは失敗します。 次のストリーム構成は、リソース ビジー例外に達することなく動作することが保証されています。1 つの進行中のオフライン セッション: YUV または JPEG 形式の 1 つの出力サーフェスをターゲットにし、任意の解像度。アクティブなカメラ キャプチャ セッション:;1 つのプレビュー サーフェス (SurfaceView または SurfaceTexture) 最大 1920 幅。1 つの YUV ImageReader サーフェス最大 1920 幅。1つのJpeg ImageReader、任意の解像度:カメラデバイスは、進行中のオフラインセッションがある場合、JPEG出力速度を50% 遅くすることができます。デバイスがPRIVATE_REPROCESSINGをサポートしている場合は、上記の JPEG ImageReader 解像度と同じ解像度で、プライベート形式の ImageWriter/ImageReader サーフェスの 1 組。または、上記のアクティブなカメラ セッションを、次のパラメーター設定で従来のカメラに置き換えることができます。1920幅までのプレビューサイズ。最大 1920 幅のプレビュー コールバック サイズ。最大1920の幅のビデオサイズ。画像サイズ、任意の解像度:カメラデバイスは、進行中のオフラインセッションがある場合、JPEG出力速度を50% 遅くすることができます |
| UltraHighResolutionSensor | 16 | このカメラ デバイスは、android.scaler.streamConfigurationMap で説明されている画像サイズに加えて、超高解像度の画像を生成できます。 これは、"既定" モードと "最大解像度" モードで動作できます。 これは通常、ピクセルを "既定" モードでビン分割し、"最大解像度" モードでビン分割しないことによって行われます。 android.scaler.streamConfigurationMap では、'default' モードでサポートされるストリームについて説明します。 "max resolution" モードでサポートされるストリーム構成は、android.scaler.streamConfigurationMapMaximumResolution によって記述されます。 この機能を備えたカメラ デバイス (android.sensor.info.pixelArraySize) の最大解像度モードピクセル配列サイズは、少なくとも 24 ピクセルになります。 |
| 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 イメージには通常のベイヤー パターンが既に存在します。 RAW_SENSOR ストリームが CaptureRequest 内の別の RAW 以外のストリームと共に要求された場合 (android.sensor.pixelMode が SENSOR_PIXEL_MODE_MAXIMUM_RESOLUTION に設定されている場合に複数のストリームがサポートされている場合)、RAW_SENSOR ストリームには通常のベイヤー パターンがあります。 この機能を使用するには、カメラ デバイスで以下をサポートする必要があります。以下に示す StreamConfigurationMap は、android.scaler.streamConfigurationMapMaximumResolution で説明されている StreamConfigurationMap を参照します。1 つの入力ストリーム、つまり android.request.maxNumInputStreams == 1 がサポートされています。ImageFormat.RAW_SENSOR は出力/入力形式としてサポートされています。つまり、streamConfigurationMap.getInputFormats() と StreamConfigurationMap.getOutputFormats()によって返される形式のリストには、ImageFormat.RAW_SENSOR が含まれています。StreamConfigurationMap.getValidOutputFormatsForInput(int) は、StreamConfigurationMap.getInputFormats()によって返されるサポートされている各入力形式に対して空でない int[] を返します。getInputSizes(ImageFormat.RAW_SENSOR) によって返される各サイズは、getOutputSizes(ImageFormat.RAW_SENSOR) にも含まれます。ImageFormat.RAW_SENSOR を使用しても、センサーの最大キャプチャ レート (その解像度) に対してフレーム レートが低下することはありません。要求に ImageFormat.RAW_SENSOR 形式の入力ターゲットがある場合、CaptureRequest コントロールは適用されません |
| DynamicRangeTenBit | 18 | デバイスは、DynamicRangeProfiles.getSupportedProfiles() で指定されたダイナミック レンジ プロファイルに従って、1 つ以上の 10 ビット カメラ出力をサポートします。 これらは、OutputConfiguration.setDynamicRangeProfile(long) を使用してキャプチャ セッションの初期化の一部として構成できます。 この機能を有効にするカメラは、DynamicRangeProfiles.HLG10 のプロファイルもサポートする必要があります。ドキュメントに従って、この特定の機能のすべての必須ストリームの組み合わせ。デバイスが同じキャプチャ要求内でサポートされている標準の 8 ビットまたは 10 ビットのダイナミック レンジ プロファイルの組み合わせをキャプチャできない場合は、それらの制約を DynamicRangeProfiles.getProfileCaptureRequestConstraints(long)に一覧表示する必要があります。CameraCharacteristics.REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILEに記載されている推奨されるダイナミック レンジ プロファイル |
| StreamUseCase | 19 | カメラ デバイスでは、OutputConfiguration.setStreamUseCase(long) を使用したストリームごとのユース ケースの選択がサポートされているため、デバイスは特定のユーザー シナリオに合わせてチューニング、センサー モード、ISP 設定などのカメラ パイプライン パラメーターを最適化できます。 この機能の一部の使用例は次のとおりです。高品質の YUV キャプチャを通常の YUV ストリームと区別します。通常の YUV ストリームでは、画像の品質が JPEG ストリームほど良くない場合があります。1 つのストリームを使用して、ビューファインダー、ビデオ録画、キャプチャなど、複数の目的を果たします。 これは、プレビュー、保存された画像、保存されたビデオに同じように編集を適用するアプリケーションで一般的です この機能を使用するには、カメラ デバイスで次のストリームユース ケースをサポートする必要があります。アプリケーションがストリームのユース ケースを設定していない下位互換性のための DEFAULT。ライブビューファインダーとアプリ内画像分析のプレビュー。まだ写真のキャプチャのためのSTILL_CAPTURE;ビデオ クリップを記録するためのVIDEO_RECORD。ビューファインダー、ビデオ録画、およびまだキャプチャに使用される1つのストリームのPREVIEW_VIDEO_STILL。実行時間の長いビデオ通話のVIDEO_CALL CameraCharacteristics.SCALER_AVAILABLE_STREAM_USE_CASESサポートされているすべてのストリームユース ケースが一覧表示されます。 ストリームのユース ケースに関連する必須ストリームの組み合わせのガイドラインを参照してください。これは、MandatoryStreamCombination を使用してクエリを実行することもできます。 |
| ColorSpaceProfiles | 20 | デバイスは、カメラでサポートされている色空間、画像形式、およびダイナミック レンジ プロファイルの可能な組み合わせのクエリをサポートし、SessionConfiguration.setColorSpace(Named) を介してセッションの特定の色空間を要求します。 この機能を有効にするカメラは、ダイナミック レンジ プロファイルも実装する場合と実装しない場合があります。 そうでない場合、ColorSpaceProfiles.getSupportedDynamicRangeProfiles(Named, int) は DynamicRangeProfiles.STANDARD と ColorSpaceProfiles.getSupportedColorSpacesForDynamicRange(int, long) のみを返し、色空間とイメージ形式のすべての組み合わせで DynamicRangeProfiles.STANDARD プロファイルのサポートを想定します。 |
注釈
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。