マルチカメラ サポート

外部ビューシステム(EVS)1.1 では、複数の物理カメラデバイスで構成される論理カメラデバイスがサポートされています。この仮想デバイスを使用するには、デバイスの実装で同期フレームワークがサポートされている必要があります。

論理カメラデバイスの列挙、オン、オフ

アプリは、同じ IEvsEnumerator メソッドを使用して、利用可能な論理カメラデバイスを使用できます。返される EvsCamera オブジェクト(論理カメラデバイスを表す)には、メタデータに次の項目が含まれている必要があります。

  • ANDROID_REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
    返された EvsCamera オブジェクトが論理カメラを表す場合は、そのカメラ メタデータの ANDROID_REQUEST_AVAILABLE_CAPABILITIES フィールドにこの機能キーを含める必要があります。
  • ANDROID_LOGICAL_MULTI_CAMERA_PHYSICAL_IDS フィールドには、物理カメラのデバイス識別子が一覧表示されます。
  • ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE フィールドには、次のいずれかの列挙値を指定できます。
    • ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_APPROXIMATE: マスター / マスターモードのセンサーの場合、ハードウェアのシャッターと露出は同期されません。
    • ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_CALIBRATED: マスター / スレーブモードのセンサーの場合、ハードウェアのシャッターと露出が同期されます。同期されている GMSL2 カメラは、この値を持つ必要があります。

アプリは、新しい getPhysicalCameraInfo(stringcameraId) メソッドの IEvsCamera を介して物理カメラデバイスの記述子を取得できます。

/**
 * Returns the description of the physical camera device that backs this
 * logical camera.
 *
 * If a requested device does not either exist or back this logical device,
 * this method returns a null camera descriptor. And, if this is called on
 * a physical camera device, this method is the same as getCameraInfo_1_1()
 * method if a given device ID is matched. Otherwise, this will return a
 * null camera descriptor.
 *
 * @param  deviceId Physical camera device identifier string.
 * @return info     The description of a member physical camera device.
 *                  This must be the same value as reported by
 *                  EvsEnumerator::getCameraList_1_1().
 */
getPhysicalCameraInfo(string deviceId) generates (CameraDesc info);

マルチカメラ サポートの構成

すべての論理カメラを静的に定義し、構成マネージャー実装を通じて列挙する必要があります。EVS ではグループ内のデバイスを個別に構成できるため、EVS はメンバー デバイスのリストを提供し、画像キャプチャが同期しているかどうかを示します。

<!-- camera group 0 -->
<group id='group0' synchronized='CALIBRATED'>
    <caps>
        <!-- list of supported controls supported by all physical devices -->
        <supported_controls>
            <control name='BRIGHTNESS' min='0' max='255'/>
            <control name='CONTRAST' min='0' max='255'/>
        </supported_controls>

        <!-- list of stream configuration supported by all physical devices -->
        <stream id='0' width='640' height='480' format='RGBA_8888' framerate='30'/>
    </caps>

    <!-- list of parameters -->
    <characteristics>
        <parameter
            name='REQUEST_AVAILABLE_CAPABILITIES'
            type='enum'
            size='1'
            value='LOGICAL_MULTI_CAMERA'
        />
        <parameter
            name='LOGICAL_MULTI_CAMERA_PHYSICAL_IDS'
            type='byte[]'
            size='2'
            value='/dev/video3,/dev/video4'
        />
    </characteristics>
</group>