none
IMediaExtensionを使用したカメラアプリにて、画面(プライマリ)への転送に非常に大きな遅延(2~5秒)が発生 RRS feed

  • 質問

  • IMediaExtensionを使用したカメラアプリにて、画面(プライマリ)への転送に非常に大きな遅延(2~5秒)が発生しています。

    ソースはこちら↓のサンプルを使用しています。
    http://msdn.microsoft.com/ja-jp/library/jj872764.aspx

    環境
    Surface 2
    OS = Windows8.1
    CPU = Tegra4

    現象
    ・プライマリへの転送後、実際に目視されるまで2~5秒程度の遅延が発生。
    ・どのくらい遅延するかは実行時によって異なる。
    ・上記サンプルを改良し、描画バッファを別に確保、タイマーから駆動したノーマルスレッドで同描画バッファからプライマリへ転送しても、同じ時間だけ遅延が発生する。
    ・プレビュー表示用のスレッド内、もしくはタイマーから駆動したスレッド内のどちらで認識処理やプライマリへの転送を試しても同じように遅延する。
    ・他にUnityでの転送処理、LowLogPhotoなどを試しても遅延が発生するのは同じ。
    ・稀にDebugモードにて全く遅延が発生しないことがある。

    プログラムについて
    ・取り込んだ画像のリアルタイム解析を行うため、最も時間ロスの少ないIMediaExtensionを使用しています。
    ・カメラの静止画の解像度が2560x1440と2560x1920の2種類しかないため、静止画キャプチャ後処理を行うと、もっと遅延します。
    ・画像の解析処理は1000ms~2000msほど掛かっています。(Surface Pro1の場合16ms以下)

    Surface Proですと発生していないことからデバイスの不具合の可能性も考えられますが、何か対策する方法はございませんでしょうか?
    また、ARM製プロセッサがいくら低速とは言え、100倍近い性能差は他の原因ではないかとも疑っており、高速化する手段をご存じの方おられましたらご教示いただけますと幸いです。

    宜しくお願い致します。


    2014年12月15日 6:49