Device.Streaming テストのトラブルシューティング
Device.Streaming テストで発生する問題をトラブルシューティングするには、次の手順に従います。
- Windows Hardware Lab Kit (Windows HLK) に関する次のトピックを確認します。
- 現在のテストの問題については、Windows HLK のリリースノートを確認してください。
- テスト エラーについて、Windows HLK Studio テスト ログ内で有用な情報を探します。 有用な情報が見つかったら、問題を解決し、テストを再実行します。
- Microsoft.Windows.CameraDebug TraceLogging プロバイダーを使用してログを取得し、ドライバーからカメラ パイプラインの範囲のエラーのトラブルシューティングを行います。
HMFT テストに関する具体的な情報
Hardware Media Foundation Transform (HMFT) のデコードおよびエンコード テストには、次が必要です。
HMFT マルチメディア テスト用の Windows HLK テストの補足コンテンツ: Windows デベロッパー センター から、HMFT マルチメディア テスト用の Windows HLK テストの補足コンテンツをダウンロードしてインストールします。 補足コンテンツのインストールと構成の詳細については、「HMFT テストの前提条件」を参照してください。
Windows HLK が含まれている標準コンテンツ ファイル。
クライアント コンピューターで補足コンテンツを使用できない場合は、HMFT テストの実行時に ContentSource パラメーターが正しく構成されていることを確認します。
Web カメラのビデオ キャプチャのトラブルシューティング
エラー | 説明 | 解決策/回避策 |
---|---|---|
セットアップ中に、テストで関心領域 (ROI) が見つからない。 |
テストでは、テストの既知の場所で、ROI マーカー (黒と白の円) が検索されます。 テストで ROI マーカーを識別できない場合、テストは正しく実行できません。 ROI の検出に失敗する原因としては、カメラの向きが悪い、またはカメラからのビデオ キャプチャが使用できない (室内が暗すぎるなど) 可能性があります。 |
テスト手順に従ってカメラの位置を変更し、使用可能な画像をカメラが提供できるようにテスト照明条件を修正します。 |
セットアップ中、ROI がカメラ ビューに収まらない。 |
テストでは、テストの既知の場所で、ROI マーカー (黒と白の円) が検索されます。 テストで ROI マーカーを識別できない場合、テストは正しく実行できません。 必要な ROI をキャプチャするには、より小さな視野のカメラ (背面カメラなど) をテストの対象から 0.5 m より離して配置する必要がある場合があります。 |
カメラの位置を変更し、使用可能な画像をカメラが提供できるようにテスト照明条件を修正します。 視野の要件に対して不正確な測定が行われるのを回避するため、位置を調整する場合、テスト アプリケーションに新しい距離を入力します。 |
i潜在的な障害の根本原因と、Web カメラ ビデオ キャプチャを改善するための推奨事項
画像の明瞭度
空間分解能
空間解像度は、剰余伝達関数 (空間周波数応答) を使用して測定されます。 具体的には、メトリック MTF30 が使用されます。これは、MTF=0.3 が得られるサイクル数/ピクセル数です。
MTF30 が 0.3 未満の場合、画像が非常にぼやけるか、不鮮明になります。 この問題は、光学機器の質が低いことが原因で発生する可能性があります。ただし、通常は、画像の信号処理 (画像スケーリングやデモサイクなど) が原因で発生します。 MTF30 が 0.8 を超えている場合、画像に多くのエイリアシングが発生している可能性があります。 この問題は、多くの場合、質の低い画像の信号処理、特にスケーリング (アンチエイリアシングを使用したバイキュービック補間ではなく、最近隣補間法など) が原因で発生します。
フォーカス範囲 (被写界深度)
フォーカス範囲の要件は、オートフォーカスが使用されるかどうかに関しては、カメラが 0.3m から無限遠までの距離にあるオブジェクトに焦点を当てる必要があります。 フォーカス範囲を決定するのは、MTF30 空間分解能メトリックです。 手動フォーカス カメラでこのメトリックが失敗する場合は、設計上の問題が原因の可能性があります。たとえば、ノートブック/タブレットの目標距離である 0.5mに焦点を当てられると、理論上の被写界深度は > 0.3m から無限遠になり、オールインワンでは最大 0.7m になります。 目標距離が正しい場合は、正しい被写界深度を得るために光学機器を変更する必要がある場合があります。
オートフォーカス レンズを使用して、このメトリックに失敗する場合、オートフォーカス アルゴリズムの問題が原因の可能性が最も高くなります。
ノイズ
空間 SN 比
空間ノイズでは、テスト チャートでニュートラル グレー (0.7 濃度) パッチを使用して、単一画像の空間変動を測定します。 このメトリックが失敗する場合は、質の低いセンサー (感度が不十分) または画像のノイズ除去が不十分であることが原因の可能性が最も高くなります。 SNR10 (ノイズ除去を実行せず、0.7 濃度パッチで SNR=10 を達成するために必要な lux レベル) が < 50 lux である画像センサーを選択する必要があります。 ノイズ除去画像の一部のレベルは許容されますが、テクスチャーの尖鋭度を大幅に低下させる必要があります。 テクスチャーの尖鋭度を測定する方法 (Windows HLK には含まれない別) は、Lync ロゴのビデオ キャプチャ仕様 (Rev G) で提供されます。 Lync ロゴの仕様の詳細については、「USB 周辺機器と Lync PC のテスト仕様」を参照してください。
テンポラルSN比
テンポラルノイズでは、テスト チャートでニュートラル グレー (0.7 濃度) パッチを使用して、2 つの画像の一時的な変動を測定します。 このメトリックが失敗する場合は、質の低いセンサー (感度が不十分)、不適切なオートゲイン (AGC) と自動露出制御 (AEC)、不十分な電源周波数制御、または画像のノイズ除去が不十分であることが原因の可能性が最も高くなります。 AEC/AGC 制御が不安定な場合、視認可能なフリッカーが発生する可能性があります。 電源周波数制御は、50/60 Hz の照明を検出するために使用されます。 露出を調整します。これがうまく機能しない場合は、フリッカー (ローリングシャッター方式により発生するフリッカー) が動画に表示されます。
色品質
ニュートラル グレーパッチの輝度 (0.7 濃度)
オートゲインおよび露出制御では、テスト チャートのニュートラル グレー パッチの輝度が 128 +/- 40 グレイ レベルに設定された画像を生成する必要があります。 これが失敗し、輝度が < 88 の場合は、AEC/AGC が不適切か、イメージ センサーの感度が低いことが原因です。 多くの場合、AEC/AGC を調整することで問題を解決できます。 輝度が > 168 の場合、問題は AEC/AGC にも関連します。
色の精度
色の精度は、ColorChecker テスト チャートの既知の色に関して、最大および平均 ΔC₀₀ を使用して測定されます。 このメトリックが失敗する場合は、問題の原因がホワイト バランスまたは色の均一性である可能性があります。両方とも、画像の信号処理を調整することで改善できます。
ガンマ
ガンマでは、動画または静止画の輝度または三刺激値をコード化するために使用される非線形演算を測定します。 ガンマが > 0.75 の場合は、画像の彩度が高すぎるように見える可能性があります。ガンマが < 0.4 の場合は、画像の彩度が低すぎるように見える可能性があります。 どちらの問題も、画像の信号処理でガンマ処理を調整することで修正できます。
ジオメトリ
垂直 FOV
フロントカメラの垂直 FOV の要件は ≥ 35INVALID USE OF SYMBOLS で、リアカメラの要件は ≥ 25INVALID USE OF SYMBOLS です。 このテストが失敗する場合は、画像のトリミング (画像全体のセンサーを使用しない) が原因である可能性があります。これは、画像の信号処理で修正できます。 ただし、レンズの設計が原因で問題が発生する可能性も高いため、 この場合は、新しいレンズまたは調整済みレンズが必要です。
タイミング
フレーム レート
動画のフレーム レートは、20 lux の輝度では ≥ 14 FPS、80 lux の輝度では ≥ 29 FPS である必要があります。 フレーム レートがこれらの要件より低い場合は、通常、自動露出とゲイン制御を調整して修正できます。
待機時間
動画レイテンシーでは、ディスプレイから光子が放出される時間に対して、カメラに光子が入射した時間を測定します。 動画レイテンシーの要件は、MIPI カメラの場合は ≤ 80 msで、USB カメラの場合は 120 msです。このエラーは、多くの場合、低フレーム レート、または 1 つ以上のフレーム バッファーを使用する画像の信号処理が原因です。 カメラの画像の信号処理を改善することで、両方の問題を解決できます。
オーディオ/ビデオの同期
オーディオ/ビデオの同期では、キャプチャされたオーディオとビデオの時間差を測定します。 このメトリックのエラーは、多くの場合、ビデオ待機時間またはオーディオ待機時間のエラーによって発生します。 詳細については、「通信オーディオ忠実度テスト (システム、手動)」を参照してください。
最初の写真またはビデオ フレームをキャプチャして配信する時間
最初のビデオ フレームとフォト フレームは、ビデオの開始または写真の撮影から 500 分以内にキャプチャする必要があります。 この要件を満たすことができない最も一般的な理由は、自動露出とゲイン コントロールの収束が遅いことです。これは、AEC/AGC を調整することで改善できます。
後続の要求で写真を配信する時間 (安定状態)
後続の写真画像は、250ms (フラッシュなし) と 500ms (フラッシュあり) 以内でキャプチャする必要があります。 この要件を満たすことができない最も一般的な理由は、自動露出とゲイン コントロールの収束が遅いことです。これは、AEC/AGC を調整することで改善できます。
解像度を変更する時間 (任意のメディアの種類)
解像度を変更する時間 (例: 720p から 360p) は、≤ 250 である必要があります。 この要件を満たすことができない最も一般的な理由は、自動露出とゲイン コントロールの収束が遅いことです。これは、AEC/AGC を調整することで改善できます。
カメラを切り替える
カメラを変更する時間 (たとえば、フロント カメラからリア カメラへ) は、≤ 750である必要があります。 この要件を満たすことができない最も一般的な理由は、自動露出とゲイン コントロールの収束が遅いことです。これは、AEC/AGC を調整することで改善できます。
グリッチ フリー/ジッター
20 lux 時で最大フレーム間時間が ≤ 133ms および 80 lux 時で最大フレーム間時間が ≤ 66ms のときにジッターが ≤ 7ms (ビデオ レンダラーで測定) の場合、ビデオはグリッチ フリーです。 フレーム間の最大時間とジッターの両方でエラーが発生する最も一般的な原因は、ターゲット フレーム レートが達成されていないことです。 たとえば、24 FPS のビデオ カメラでは、フレーム間の最大時間とジッター要件の両方がエラーとなります。 このような場合は、フレーム レートを 20 lux で 15 FPS、80 lux で 30 FPS となるように調整する必要があります。
その他
CPU 使用率
システムがビデオをキャプチャしてレンダリングする場合、CPU 使用率は ≤ 5% である必要があります。 エラーの一般的な原因は、CPU が画像の信号処理に使用されることです。 すべての重要な ISP をオフロードして CPU を使用しないか、使用率が ≤ 5% となるように最適化する必要があります。
アンチフリッカー ソリューション
不適切な露出 (電源周波数) モードで 50 または 60 Hz の照明でイメージングすると、SNR が大幅に低下するフリッカーが発生する可能性があります。 手動での電源周波数制御が必要であり、テストの対象です。 最も一般的なエラーは、手動での電源周波数制御がサポートされていない場合に派生します。
Microsoft.Windows.CameraDebug TraceLogging
- 名前:
- Microsoft.Windows.CameraDebug
- GUID:
- {9EE22E19-9672-4625-A9FF-C2B711AD923F}
- イベント:
- DriverCriticalError
- DriverError
現在、このプロバイダーは、カメラ ピンの切り替え中に重大なエラーを記録するためにのみ使用されます。 次の表は、イベントの構造と内容をまとめたものです。
コンポーネント | ErrorCode | ProcessId | スレッド Id | OsErrorCode (省略可能) |
---|---|---|---|---|
このイベントの原因となった機能の説明、String。
|
元のドライバーで報告されたエラー、HRESULT |
エラーが発生したプロセス ID |
エラーが発生したスレッド ID |
ドライバーで報告されたエラーが別のエラーに変換された場合、HRESULT |
イベントの記録と表示
その他のガイダンスについては、「TraceLogging イベントの記録と表示」を参照してください。
次の例は、Microsoft.Windows.CameraDebug TraceLogging プロバイダー イベントをキャプチャする .wprp ファイルです。
<?xml version="1.0" encoding="utf-8"?>
<WindowsPerformanceRecorder Version="1.0" Author="Microsoft Corporation" Copyright="Microsoft Corporation" Company="Microsoft Corporation">
<Profiles>
<EventCollector Id="EventCollector_WindowsCameraDebugTraceLoggingProvider" Name="WindowsCameraDebugTraceLoggingProvider">
<BufferSize Value="64" />
<Buffers Value="4" />
</EventCollector>
<EventProvider Id="EventProvider_WindowsCameraDebugTraceLoggingProvider" Name="9EE22E19-9672-4625-A9FF-C2B711AD923F" />
<Profile Id="WindowsCameraDebugTraceLoggingProvider.Verbose.File" Name="WindowsCameraDebugTraceLoggingProvider" Description="WindowsCameraDebugTraceLoggingProvider" LoggingMode="File" DetailLevel="Verbose">
<Collectors>
<EventCollectorId Value="EventCollector_WindowsCameraDebugTraceLoggingProvider">
<EventProviders>
<EventProviderId Value="EventProvider_WindowsCameraDebugTraceLoggingProvider" />
</EventProviders>
</EventCollectorId>
</Collectors>
</Profile>
<Profile Id="WindowsCameraDebugTraceLoggingProvider.Light.File" Name="WindowsCameraDebugTraceLoggingProvider" Description="WindowsCameraDebugTraceLoggingProvider" Base="WindowsCameraDebugTraceLoggingProvider.Verbose.File" LoggingMode="File" DetailLevel="Light" />
<Profile Id="WindowsCameraDebugTraceLoggingProvider.Verbose.Memory" Name="WindowsCameraDebugTraceLoggingProvider" Description="WindowsCameraDebugTraceLoggingProvider" Base="WindowsCameraDebugTraceLoggingProvider.Verbose.File" LoggingMode="Memory" DetailLevel="Verbose" />
<Profile Id="WindowsCameraDebugTraceLoggingProvider.Light.Memory" Name="WindowsCameraDebugTraceLoggingProvider" Description="WindowsCameraDebugTraceLoggingProvider" Base="WindowsCameraDebugTraceLoggingProvider.Verbose.File" LoggingMode="Memory" DetailLevel="Light" />
</Profiles>
</WindowsPerformanceRecorder>