DXVA 高解像度ビデオ処理 - VideoProcessing
この手動テストでは、次に含まれるテスト ケースを実行します: IDXVAHD_VideoProcessor::SetVideoProcessBltState、IDXVAHD_VideoProcessor::GetVideoProcessBltState、IDXVAHD_VideoProcessor::SetVideoProcessStreamState、IDXVAHD_VideoProcessor::GetVideoProcessStreamState、および IDXVAHD_VideoProcessor::VideoProcessBltHD。
すべてのテスト ケースの詳細については、以下の「サポート情報」のセクションを参照してください。 ユーティリティが比較のためにフレームを後処理するときに、ほとんどのテスト ケースは画面に表示されます。 ほとんどのテスト ケースでは、ソフトウェアとハードウェアで処理されるフレームの間で > 20.0f PSNR が適用されます。 一部のテスト ケースでは、ソフトウェア実装の一部のフィルターおよび機能がサポートされていないため、しきい値が低くなります。
このテストでは、ほとんどの場合、ティッカーのようなウィンドウ インクリメントの失敗回数が表示され、反復処理されているテスト ケース変数が表示されます。
テストの詳細
仕様 |
|
プラットフォーム |
|
サポートされているリリース |
|
予想される実行時間 (分) | 2 |
カテゴリ | 互換性 |
タイムアウト (分) | 120 |
再起動が必要です | false |
特別な構成が必要です | false |
Type | automatic |
その他のドキュメント
この機能領域のテストには、前提条件、セットアップ、トラブルシューティング情報など、次のトピックに記載されている追加のドキュメントが含まれている場合があります。
テストの実行
テストを実行する前に、グラフィック アダプターまたはチップセットのテストの前提条件に関するページで説明されているテスト要件に従って、テストのセットアップを完了します。
さらに、このテストには次のソフトウェアが必要です:
D3D9Caps.Caps3 D3DCAPS3_DXVAHD をサポートするディスプレイ ドライバー。 具体的な内容は次のとおりです。
D3D9 では、D3DCAPS3_DXVAHD の公開をサポートします。
必須の出力形式: D3DFMT_X8R8G8B8、D3DFMT_A8R8G8B8。
必須の入力形式: D3DFMT_X8R8G8B8、D3DFMT_A8R8G8B8、D3DFMT_YUY2、D3DFMT_AYUV、およびデコードのレンダー ターゲットがサポートされています。
dxvahdsw.dll.
トラブルシューティング
HLK テスト エラーの一般的なトラブルシューティングについては、「Windows HLK テストのエラーのトラブルシューティング」を参照してください。
トラブルシューティングの情報については、「Device.Graphics テストのトラブルシューティング」を参照してください。
このテストでは、ほとんどの場合、ティッカーのようなウィンドウ インクリメントの失敗回数が表示され、反復処理されているテスト ケース変数が表示されます。
テストは成功または失敗を返します。 ドライバーによって D3DCAPS3_DXVAHD が公開されていない場合、テストは SKIP を返すことがあります。 その他のテスト ケースは、ストリームの状態サポート、逆テレシネ キャップ、フィルター キャップ、機能キャップ、およびサポートされている形式に基づいてスキップできます。 テストの詳細は、DTM Studio のテスト ログで確認します。
詳細情報
各 SetVideoProcessBltState の後に、対応する GetVideoProcessBltState を呼び出します。 この呼び出しによって適切なレポートが生成され、フレームが処理されます。また、精度を上げるために参照フレームとの比較が表示されます。 ほとんどの BltStates は、指定された BltState の各サイクルを完全に循環します。その後、有効な StreamState ごとにも循環されます。 ただし、一部の順列は必要ありません。
SetVideoProcessBltState と GetVideoProcessBltState に渡された無効なデータ型が E_INVALIDARG を返すことを確認します。
DXVAHD_BLT_STATE_TARGET_RECT_DATA
データを出力サーフェスより小さい rect に制限すると、正しいスケーリングが行えることを確認します。
出力サーフェスより rect を大きくすると、フレームが拡張されることを確認します。
ターゲットの rect データが設定され、[有効] フラグが false に設定されている場合、サーフェス全体が使用されることを確認します。
ターゲットの rect データがあり、[有効] が false に設定されたフレームを処理します。 次に、ターゲットの rect データが縮小、拡張、または移動され、[有効] が true の別のフレームを処理します。 サーフェスが適切にスケーリングまたは移動することを確認します。
[既定値] にデータが設定されていないと、サーフェス全体が使用されることを確認します。
DXVAHD_BLT_STATE_BACKGROUND_COLOR_DATA
既定値が [RGB 黒] であることを確認します。
YCbCr が true に設定されている場合は、背景の正しい色範囲が実際に表示されていることを確認します。
RGB オレンジ (255,165, 0)、既定の黒の値、RGB と YcbCr 両方のアルファ値を確認します
DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA の場合
- YCbCr の背景色が使用され、ColorSpaceData が [フル RGB_Range] の場合は、その全範囲 RGB は無視され、[マトリックス] および [xvYCC] に指定された設定に従って正しい制限付き範囲が使用されることを確認します。
DXVAHD_BLT_STATE_ALPHA_FILL の場合
- 色が異なる背景色で DXVAHD_ALPHA_FILL_MODE_BACKGROUND が使用されている場合は、指定されている背景色のアルファ値を確認します。
DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA
[既定の使用法]、[RGB_Range]、[YCbCr_Matrix]、[YCbCr_xvYCC] すべてが 0 に設定されていることを確認します。
[制限付き RGB_Range] によって色の範囲が 16 から 235 に正常に制限されていることを確認します。
BT.709 によって輝度と彩度が適切に増加していることを確認します。
xvYCC は色の範囲を正常に拡張します。 参照ビデオ プロセッサは XRGB 以外の出力サーフェスをサポートしていないので、この検証は特殊なケースです。 この検証は困難であり、プロセスについては後で説明します。
DXVAHD_VPDEVCAPS.DeviceCaps に DXVAHD_DEVICE_CAPS_xvYCC が指定されていないか確認します。 YCbCr_xvYCC によって調整される設定はありません。これは無視されます。
許容範囲は最初は柔軟に設定されていますが、ピクセル精度の開始率を 90% の精度にします。
DXVAHD_BLT_STATE_ALPHA_FILL
アルファ形式ではない出力サーフェスが変更されていないことを確認します。
アルファ形式の出力サーフェスがアルファ値を色に正常に適用されていることを確認します。
既定のモードによって背景アルファ値が正しく調整されていることを確認します。
アルファ形式の出力サーフェスを使用する NonAlpha 形式の入力サーフェスをテストします。 初めは 90% の精度ですが、再び柔軟な精度にしてアルファの正確性を検証します。
DXVAHD_BLT_STATE_CONSTRICTION_DATA
M2 抑制の過程でリファレンス ドライバーのサポートが不足しているため、テスト ケースは有効なダウンサンプリング サイズの直接比較 1:1 の外で検証する必要があります。
出力サーフェスへのダウンサンプリングが正しいことを確認します。
サイズがターゲットより大きい場合は、抑制がターゲット rect のサイズに制限されていることを確認します。
サイズを 0,* に設定してみて、*,0 で戻り値 E_INVALIDARG を検証します。
DXVAHD_VPDEVCAPS.FeatureCaps で DXVAHD_FEATURE_CAPS_CONSTRICTION が公開されない場合、抑制の設定を試みるときに、エラー E_INVALIDARG が返されることを確認します。
既定値が無効であることを確認します。 無効にフラグが設定され、サイズが指定されている場合、このサイズの値は無視されます。
DXVAHD_BLT_STATE_PRIVATE_DATA
無効な Guid、DataSize、pData を渡します。 ドライバーが適切に処理することを検証します。
Null pData は、プライベート blt 状態の正しいサイズを取得します。
SetVideoProcessStreamState と GetVideoProcessStreamState に渡された無効なデータ型が E_INVALIDARG を返すことを確認します。
DXVAHD_STREAM_STATE_D3DFORMAT_DATA
GetVideoProcessorInputFormats によって報告されたサポートされているすべての形式を検証します。
GetVideoProcessorInputFormats でサポートされていない形式を検証します。
既定の D3DFORMAT が D3DFMT_UNKNOWN であることを検証します。
DXVAHD_STREAM_STATE_FRAME_FORMAT_DATA
既定値が [プログレッシブ] であることを確認します。
プログレッシブとインターレースの形式が適切に表示されることを確認します。
DXVAHD_INPUT_FORMAT_CAPS_RGB_INTERLACED が DXVAHD_VPDEVCAPS.InputFormatCaps のサポート対象として報告されない場合は、DXVAHD_FRAME_FORMAT_INTERLACED_* を使用すると、既定でプログレッシブが使用されることを確認します。
DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE_DATA
既定値を確認します。
[制限付き RGB_Range] によって色の範囲が 16 から 235 に正常に制限されていることを確認します。
DXVAHD_VPDEVCAPS.InputFormatCaps で DXVAHD_INPUT_FORMAT_CAPS_RGB_LIMITED_RANGE のサポートが報告されない場合、RGB_Range が 1 のときにこれは無視され、FullRange が使用されます。
- 制限付き範囲の検証では、参照との 1:1 の比較は実行できません。 白と黒の一部の緩やかな検証では、色の範囲が制限されていることを検証できる場合があります。
BT.709 によって輝度と彩度のサンプルリングが適切に増加していることを確認します。
xvYCC は色の範囲を正常に拡張します。
DXVAHD_VPDEVCAPS.DeviceCaps で xvYCC のサポートが報告されないことを確認します。
可能であれば、処理が指定されている場合に、色変換のパフォーマンスの向上を検証します。
DXVAHD_VPDEVCAPS.DeviceCaps に DXVAHD_DEVICE_CAPS_xvYCC が指定されていないか確認します。 YCbCr_xvYCC によって調整される設定はありません。これは無視されます。
DXVAHD_STREAM_STATE_OUTPUT_RATE_DATA
既定値をテストして検証します (具体的には補間が行われます)。
NormalRate と HalfRate の両方をテストし、NormalRate が 2:1 インターレースからのプログレッシブ、HalfRate が 1:1 インターレースからのプログレッシブであることを確認します。
GetVideoProcessorCustomRates で何かが公開されている場合は、すべての CustomRates を確認します。
逆テレシネ レートを指定します
- ITELECINE のサポートは参照ビデオ プロセッサでは使用できないため、直接比較は行えません。 検証のために、テレシネ フレームが生成され、参照に渡されます。 その後、非テレシネ フレームが処理され、テレシネ フレームによって提供されるフレームと比較されます。
補間と繰り返しの両方で、サポートされていない CustomRate をテストします。
NormalRate と HalfRate の両方で、サポートされていない CustomRate をテストします。 エラー E_INVALIDARG が返されることを確認します。
DXVAHD_OUTPUT_RATE_CUSTOM が指定されていない限り、サポートされている CustomRates が正常に設定されないことを検証します。
DXVAHD_STREAM_STATE_SOURCE_RECT_DATA
データを入力サーフェスより小さい rect に制限すると、正しいスケーリングが行えることを確認します。
入力サーフェスよりも rect が大きくなると、クリップされた領域が透明になることを確認します。
ソースの rect データが設定され、[有効] フラグが false に設定されている場合、サーフェス全体が使用されることを確認します。
1 つのフレームがソースの rect データで処理され、[有効] が false になり、その後 2 番目のフレームがソースの rect データで処理され、[有効] が true になると、サーフェスが表示され、入力サーフェスへの rect サイズに従ってスケーリングされることを確認します。
[既定値] にデータが設定されていないと、サーフェス全体が使用されることを確認します。
DXVAHD_STREAM_STATE_DESTINATION_RECT_DATA
データを出力サーフェスより小さい rect に制限すると、正しいスケーリングが行えることを確認します。
出力サーフェスよりも rect が大きくなると、クリップされた領域が透明になることを確認します。
ターゲットの rect データが設定され、[有効] フラグが false に設定されている場合、サーフェス全体が使用されることを確認します。
1 つのフレームがターゲットの rect データで処理され、[有効] が false になり、その後 2 番目のフレームがターゲットの rect データで処理され、[有効] が true になると、出力サーフェスが表示され、出力サーフェスへの rect サイズに従ってスケーリングされることを確認します。
[既定値] にデータが設定されていないと、サーフェス全体が使用されることを確認します。
DXVAHD_STREAM_STATE_ALPHA_DATA
すべてのアルファ テスト ケースには複数のビデオ ストリームが必要であるため、これらのテスト ケースを 2 で乗算します。
既定のアルファ値が無効になっていることを確認します。
低、中、高の範囲のアルファ ブレンドを確認し、透明度を確認します。
処理中に、範囲外の float アルファ値が失敗することを確認します。
ピクセル精度の許容レベルは 10% です。 精度は 90% 以上の正確性である必要があります。
DXVAHD_STREAM_STATE_PALETTE_DATA
設定されたパレット エントリがない場合は、Null 値が 0 を返すことを検証します。
特定の数のパレット エントリを設定した場合、Null 値が予想されるパレット エントリ数を返すことを検証します。
4 ビットと 8 ビットの両方のパレット化された fourCC 形式をテストします。
ARGB と AYUV の両方の混合パレット エントリ配列を設定すると、成功が検証されます。
アルファ ブレンドと一緒に使用すると、正しいブレンドが発生することを確認します。
ピクセル精度の許容レベルは 10% です。 精度は 90% 以上の正確性である必要があります。
DXVAHD_STREAM_STATE_CLEAR_RECT_DATA
DXVAHD_VPDEVCAPS. FeatureCaps が DXVAHD_FEATURE_CAPS_CLEAR_RECT を公開しない場合、ClearRects の使用が試行されると、エラー E_INVALIDARG が返されることを確認します。
[既定の CLEAR RECT 状態] が無効であり、表示されないことを確認します。
[CLEAR_RECT DestRect 外部] が表示されないことを確認します。
[CLEAR_RECT DestRect 外部] が正常にクリップされることを確認します。
DXVAHD_STREAM_STATE_LUMA_KEY_DATA
DXVAHD_VPDEVCAPS. FeatureCaps が DXVAHD_FEATURE_CAPS_LUMA_KEY を公開しない場合、エラー E_INVALIDARG が返されることを確認します。
RGB 入力ストリームを使用し、DXVAHD_VPDEVCAPS. FeatureCaps が DXVAHD_FEATURE_CAPS_RGB_LUMA_KEY を公開しない場合、無視される輝度がないことを確認します。
[有効] が false に設定されている場合、輝度は無視されます。
下限と上限の範囲外の値が、Set 状態 (E_INVALIDARG) の間に失敗することを確認します。
輝度の既定値が無効で、上限/下限の値が 0 であることを確認します。
ピクセル精度の許容レベルは 10% です。 精度は 90% 以上の正確性である必要があります。
DXVAHD_STREAM_STATE_FILTER_DATA
既定値を確認します (Disabled と DXVAHD_FILTER_RANGE_DATA.Default)。
ストリームを表示した [有効] と [レベル] が既定値のときと、フィルターが有効になっているときが同じであることを確認します。
報告された GetVideoProcessorFilterRange より小さいレベルと大きいレベルを確認します。 大きい値は、E_INVALIDARG で失敗します。
ピクセル精度の許容レベルは 10% です。 精度は 90% 以上の正確性である必要があります。
DXVAHD_STREAM_STATE_PRIVATE_DATA
無効な Guid、DataSize、pData を渡します。 ドライバーが適切に処理することを検証します。
Null pData は、プライベート blt 状態の正しいサイズを取得します。
以下のサーフェスの種類の VideoProcessBltHD から pOutputSurface が正常に実行されることを確認します。
使用される既定のサーフェスは、スワップ チェーンになります。
DXVAHD_SURFACE_TYPE_VIDEO_OUTPUT
RENDERTARGET
オーバーレイ スワップ チェーン。
他のすべての型のスワップ チェーン。
標準でサポートされる出力および入力サーフェスのピクセル形式、および特定のデバイスのサポート対象として報告された出力および入力サーフェス形式。
フレーム 0 が処理される前に、OutputFrame の値が 1 以上の場合は、E_INVALIDARG になることを確認します。
ストリーム データを変更せずに、OutputFrame 0 の処理を 2 回連続で実行すると、フレームが一時停止することを検証します。
ストリーム データが変更された状態で OutputFrame 0 の処理を 2 回実行すると、キャッシュされたデータが表示される (一時停止されたフレーム) ことを確認します。
ストリームの最大、中間、および最小数の処理が成功することを確認します。
StreamCount が pStreams の数より大きい、または小さいと、E_INVALIDARG になることを確認します。
StreamCount が 0 だと E_INVALIDARG になることを確認します。
DXVAHD_STREAM_DATA: ノーマル/ハーフ レートでのプログレッシブ、2/1 でのプログレッシブ、ノーマル レートでのインターレース、ハーフ レートでのインターレース、4/5 でのインターレース
1 つのストリームを有効にすると、表示されたコンテンツが検証されます。
有効なメイン ストリームと無効なサブストリームの 2 つのストリーム。 表示されたコンテンツが検証されます。
メイン ストリームとサブストリームが有効な 2 つのストリーム。 表示されたコンテンツが検証されます。
2 つのストリームは両方とも有効なメイン ストリームを構成するために使用され、3 番目のストリームは無効なサブストリームとして使用される 3 つのストリーム。 表示されたコンテンツが検証されます。
2 つのストリームは 1 つが有効でもう 1 つが無効なメイン ストリームを構成するために使用され、3 番目のストリームは無効なサブストリームとして使用される 3 つのストリーム。 表示されたコンテンツが検証されます。
2 つのストリームは両方とも有効なメイン ストリームを構成するために使用され、3 番目のストリームも有効なサブストリームとして使用される 3 つのストリーム。 表示されたコンテンツが検証されます。
2 つのストリームは 1 つが有効でもう 1 つが無効なメイン ストリームを構成するために使用され、3 番目のストリームは有効なサブストリームとして使用される 3 つのストリーム。 表示されたコンテンツが検証されます。
範囲外の PastFrames と FutureFrames。
指定された PastSurfaces と FutureSurfaces による、無効な PastFrames と FutureFrames。
0 以外の PastFrames と FutureFrames が指定された Null PastSurfaces と FutureSurfaces。
DXVAHD_SURFACE_TYPE_VIDEO_INPUT、DXVAHD_SURFACE_TYPE_VIDEO_INPUT_PRIVATE、Decode RenderTarget のすべての順列、および ppPastSurfaces、pInputSurfaces、ppFutureSurfaces 全体にわたるオフスクリーンのプレーン サーフェス。
サポートされていない SurfaceType の ppPastSurfaces、pInputSurfaces、ppFutureSurfaces が E_INVALIDARG を返すことを検証します。
DXVAHD_VPDEVCAPS.InputPool 以外の型のメモリ プールに割り当てられたサーフェスが E_INVALIDARG になることを検証します。
コマンド構文
コマンド オプション | 説明 |
---|---|
DXVAHDVideoProcessing VideoProcessing |
オプションを指定しない場合、テストでは、一部の極端に無効な引数のテスト ケースを除いて、すべてが列挙されます。 |
TestPriority:[0, 1, 2] |
既定では、優先順位 1 レベルでテストが行われますが、優先順位 2 では、極端に無効な引数のテスト ケースを含め、すべての順列がテストされます。 0 は BVT レベルを対象としています。 |
SoftwareOnly |
ビデオ プロセッサのソフトウェア実装のみをテストします。 これは主に、ドライバーがテスト ケースをサポートする前の初期テストに使用されました。 |
SaveAllFrames |
このテストでは、無効なフレームの保存回数が 100 にハードコードされているため、すべてを保存する場合は、このフラグを使用します。 フレーム数の多いテスト ケースのエラーに適しています。 |
LogLevel:[0, 1, 2] |
このテストでは、ログ記録方法を非常に細かくに設定できます。 既定ではレベル 0 が設定されていますが、レベル 1 では、多くのストリーム状態/blt 状態セットを含むテスト ケースごとに、より多くのログ情報が収集されます。 レベル 2 では、調整されたすべてのストリーム状態と blt 状態、および構成情報が収集されます。 |
ファイル一覧
ファイル | 場所 |
---|---|
DXVAHDVideoProcessing.exe |
[testbinroot]\nttest\windowstest\graphics\d3d\func\ |
Dxvahdsw.dll |
[osbinroot]\nttest\windowstest\graphics\dxva\ |
パラメーター
パラメーター名 | パラメーターの説明 |
---|---|
LLU_NetAccessOnly | ネットワーク アクセスのための LLU |
ConfigDisplayCommandLine | ConfigDisplay のカスタム コマンド ライン。 既定値: logo |
MODIFIEDCMDLINE | テスト実行可能ファイルの追加のコマンド ライン引数 |