メタデータと制御

メタデータのサポート

Android フレームワークで RAW 画像ファイルの保存をサポートするには、センサーの特性に関する詳細なメタデータが必要です。メタデータには、色空間やレンズ シェーディング関数などの情報が含まれます。

こうした情報はほとんどがカメラ サブシステムの静的プロパティであるため、出力パイプラインを構成したりリクエストを送信したりする前にクエリを実行できます。新しいカメラ API では、getCameraInfo() メソッドによって提供される情報を大幅に拡張して、この情報をアプリに提供します。

さらに、カメラ サブシステムを手動で制御するには、それぞれのデバイスの現在の状態と、特定のフレームのキャプチャに使用される実際のパラメータに関するフィードバックが必要です。出力メタデータには、ハードウェアで実際に使用する制御値(露出時間、フレーム間隔、感度)が含まれている必要があります。これらの値は、クランプまたは端数処理が行われたタイミングをアプリが把握し、画像の撮影に使用する実際の設定を補正するために必須となります。

たとえば、アプリがリクエストでフレーム間隔を 0 に設定した場合、HAL はフレーム間隔をそのリクエストの実際の最小フレーム間隔でクランプし、出力結果のメタデータでその最小間隔を報告します。

そのため、アプリにカスタム 3A ルーティンを実装する必要がある場合(たとえば、HDR バーストを適切に測定する場合など)、受信した最新の結果をキャプチャして次のリクエストの設定を更新するために使用される設定をアプリが把握する必要があります。したがって、新たなカメラ API により、キャプチャしたそれぞれのフレームに相当量の動的メタデータが追加されます。これには、キャプチャに使用するリクエストされたパラメータと実際のパラメータ、およびタイムスタンプや統計ジェネレータ出力などといった追加のフレームごとのメタデータが含まれます。

設定ごとの制御

ほとんどの設定では、出力フレーム ストリームに大幅な途切れや遅延が発生せず、フレームごとに変更可能であることが望ましいとされます。出力フレームレートの制御がキャプチャ リクエストのフレーム間隔フィールドのみで行われ、処理ブロックの構成の変更に依存しないのが理想的です。実際には、カメラ パイプラインの出力解像度や出力形式、レンズの焦点距離などの物理デバイスに影響する制御など、特定の制御については変更に時間がかかることがわかっています。各制御セットの詳細な要件については後述します。

RAW センサーデータのサポート

新たな API では、高度なカメラアプリと RAW 画像ファイルをサポートするため、従来の API でサポートされるピクセル形式に加えて RAW センサーデータ(Bayer RAW)のサポート要件が追加されています。