キャプチャカードによる遅延は1フレーム未満

価格.comの口コミ記事に興味深いものがあったので、同じようなテストをしてみました。


1.遅延の要素
遅延の要素としては次のものがあります。

1) ビデオキャプチャカードによるキャプチャ処理
2) ビデオキャプチャソフトによる画像処理
3) ビデオレンダラーによる画像処理、垂直同期待ち
4) ビデオカードによるビデオ信号出力処理
5) モニターによる画像処理と表示処理

今回のテストでは1から4の間で起こる遅延をフレーム単位で計測します。モニターによる遅延は含まれていません。

以降1フレームは16.67ms(1/60秒)とし、遅延が1フレーム未満と言った場合は16.67msより短い時間で1から4の処理を終えられることを意味します。
1フレーム以上、2フレーム未満と言った場合は16.67ms以上かかるが33.33msまではかからない事を意味します。


2.テスト方法
アマレコTVのプレビューにフレームカウンターを表示します(やり方は後述)。
デスクトップの設定を1280x720 60pにします。
ビデオカードに2つある出力のうち一方をモニター、もう一方をキャプチャカードの入力に接続し、ミラーリング状態にします。

この状態でアマレコTVのウインドウ位置を調整すると、アマレコTVのカウンター表示がビデオカードから出力されます(下図フレーム1)。
これがキャプチャカードの次のキャプチャタイミングで取り込まれ、アマレコTV内で新しいカウンター2と合成され下図フレーム2のようになります。
これが再びビデオカードから出力され繰り返されると下図フレーム3の様にアマレコTVのプレビューにカウンター3,2,1・・・とフレームカウンターが並びます。
テスト方法.png
※ 左側に1/1000秒単位の時間、右側にフレームカウンタを表示しています。


このような動作は遅延が1フレーム未満の場合の話です。1フレーム以上の遅延があるとカウンターの並びが変わってきます。 例えば遅延が1以上、2フレーム未満の場合のカウンターは5,3,1・・・と2間隔で並びます。
同様に、遅延が2以上、3フレーム未満の場合は7,4,1・・・と3間隔ですので、表示されるカウンターの間隔から遅延を把握することができます。

後は適当なタイミングでアマレコTVのスクリーンショット機能を使いビットマップファイルを作って観察します。
また、録画したビデオファイルをコマ送りで観察することでより多くのデータを得ることができますが、ドロップフレームやフレームレートに異常が無いことが前提となりますので注意して下さい。


テストPC環境
OSWindowsXP Professional SP3
Windows7
MBM3N78-EM
CPUAMD Phenom(tm) 8750 Triple-Core Processor 2.4GHz
MEMORYDDR2-800 2GB(2GB*1)
HDDWD10EADS-00M2B0 1TB, 5400rpm
ビデオカードGeForceGT240 ZT-20401-10L
キャプチャカードSC-500N1/DVI  Driver 1.1.0.108.0
アマレコTVVer2.20b
AmDeinterlace Ver2.20b
サンプル画像アマレコTVのスクリーンショットでPNG保存した物



3.結果
OSレンダラー測定結果(遅延)サンプル画像
Windows XPオーバーレイ2フレーム未満XP D4 OL SC500.PNG 
Windows 7オーバーレイ2フレーム未満Win7 D4 OL SC500.PNG
Windows 7EVR3フレーム未満Win7 D4 EVR SC500.PNG

Windows 7で多く使われるEVRはXPのオーバーレイ表示より1フレーム分遅延が大きくなる。
Windows 7でもオーバーレイ表示を使えば遅延を少なくできる。



4.追加テスト
EVRにはエミュレーションレイヤ(以下エミュレーションモード)と言うのが存在します。 エミュレーションモードは必要な機能がビデオカードに搭載されていなかったり、OSが対応していない場合に、ソフトウエア処理によりEVRの機能をエミュレーションしながら動作するモードです。 性能が低く処理に時間がかかったり、画質が低下するため普通は使いませんが、垂直同期待ちを行わないようなので遅延を減らすことができます。


OSレンダラー測定結果(遅延)サンプル画像
Windows XPEVR エミュレーション1フレーム未満XP D4 EVR SC500.PNG
Windows 7EVR エミュレーション1フレーム未満Win7 D4 EVR SC500 OFF.PNG

XP/7共にEVRのエミュレーションモードだと1フレーム未満の遅延で動作するようです。
この結果からビデオキャプチャカードによる遅延は1フレーム未満であることが分かります。
※ 垂直同期待ちを行わないとティアリングが生じます。


5.まとめ
今回のテスト結果をまとめると

・ビデオキャプチャカード(SC500)の遅延は1フレーム未満である
・アマレコTVによる遅延は十分な性能のPCを使う限り0とみなしていい(画像処理を行わない場合)
・EVRはオーバーレイレンダラーより遅延が大きい
・レンダラー処理で垂直同期待ちを行わなければ遅延を減らせる

なお、私の環境ではSC500がインターレース(1080i)を受け付けないためテストできませんでしたが、インターレース方式の場合は2フレーム分をまとめてビデオキャプチャソフトへ渡すためキャプチャ処理の遅延が1フレーム分大きくなると思われます。


6.カウンター表示用フィルター
今回のテストを行うためのフィルターです。
ある程度パソコンに詳しい人でないと利用できません。
自己責任かつ、分からない事は自力で調べられる方のみご利用ください。

【使い方】
1) アマレコTV Ver2.20bのAmDeinterlace.axを置き換える
2) アマレコTV.exeと同じフォルダにあるAmDeinterlace.iniをメモ帳で開く
3) 最後の行に「iCounterTest=1」を追加する
4) テストが終了したら「iCounterTest=0」に書き換える

【仕様】
対応解像度(横):720、1280、1920
対応解像度(縦):480以上
対応カラーフォーマット:YUY2、UYVY、HDYC

【ダウンロード】
amdeint220b.zip
関連記事


テーマ : PC周辺機器     ジャンル : コンピュータ

コメントの投稿

No title

SC-500N1/DVIの場合は特別遅延が少ないそうです。

ほかのSD-USB2CAP4などはその2倍くらいあります。
たぶんUSBタイプのやつはほとんどそうです。

Re: No title

> SC-500N1/DVIの場合は特別遅延が少ないそうです。
>
> ほかのSD-USB2CAP4などはその2倍くらいあります。
> たぶんUSBタイプのやつはほとんどそうです。

SC-500N1/DVIはなぜ遅延が少ないのか?
SC-500N1/DVIは本当に遅延が少ないのか?
USBタイプのやつはなぜ遅延が大きいのか?
USBタイプのやつは本当に遅延が大きいのか?
USBタイプでも製品によって遅延に差があるのではないか?

このあたりを教えて頂けるといいな

No title

あ、っていうか上のコメントの元ネタってたぶんあまラボさんかも。
よく調べないでレスしてました。

たぶんこれ?http://amalabo.blog35.fc2.com/blog-entry-207.html

No title

0:00:02.4070054s(32.0496ms), Idle=12ms, IdleCount= 0, Size=614400byte, SP(0) Pl(1) Dc(1):######
0:00:02.4389732s(31.9678ms), Idle=11ms, IdleCount= 0, Size=614400byte, SP(0) Pl(1) Dc(1):######
0:00:02.4710155s(32.0423ms), Idle= 9ms, IdleCount= 0, Size=614400byte, SP(0) Pl(1) Dc(1):######
0:00:02.5029460s(31.9305ms), Idle= 8ms, IdleCount= 0, Size=614400byte, SP(0) Pl(1) Dc(1):######
0:00:02.5429612s(40.0152ms), Idle=14ms, IdleCount= 0, Size=614400byte, SP(0) Pl(1) Dc(1):########
0:00:02.5749597s(31.9985ms), Idle=13ms, IdleCount= 0, Size=614400byte, SP(0) Pl(1) Dc(1):######
0:00:02.6069780s(32.0183ms), Idle=12ms, IdleCount= 0, Size=614400byte, SP(0) Pl(1) Dc(1):######
0:00:02.6389608s(31.9828ms), Idle=10ms, IdleCount= 0, Size=614400byte, SP(0) Pl(1) Dc(1):######
0:00:02.6709646s(32.0038ms), Idle= 9ms, IdleCount= 0, Size=614400byte, SP(0) Pl(1) Dc(1):######
0:00:02.7109494s(39.9848ms), Idle=16ms, IdleCount= 0, Size=614400byte, SP(0) Pl(1) Dc(1):#######
0:00:02.7431089s(32.1595ms), Idle=14ms, IdleCount= 0, Size=614400byte, SP(0) Pl(1) Dc(1):######
0:00:02.7749683s(31.8594ms), Idle=13ms, IdleCount= 0, Size=614400byte, SP(0) Pl(1) Dc(1):######
0:00:02.8069615s(31.9932ms), Idle=12ms, IdleCount= 0, Size=614400byte, SP(0) Pl(1) Dc(1):######
0:00:02.8389542s(31.9927ms), Idle=10ms, IdleCount= 0, Size=614400byte, SP(0) Pl(1) Dc(1):######
0:00:02.8709416s(31.9874ms), Idle= 9ms, IdleCount= 0, Size=614400byte, SP(0) Pl(1) Dc(1):######
0:00:02.9109495s(40.0079ms), Idle=15ms, IdleCount= 0, Size=614400byte, SP(0) Pl(1) Dc(1):########
0:00:02.9429252s(31.9757ms), Idle=14ms, IdleCount= 0, Size=614400byte, SP(0) Pl(1) Dc(1):######
0:00:02.9749556s(32.0304ms), Idle=13ms, IdleCount= 0, Size=614400byte, SP(0) Pl(1) Dc(1):######
0:00:03.0069401s(31.9845ms), Idle=11ms, IdleCount= 0, Size=614400byte, SP(0) Pl(1) Dc(1):######

これはEVRエミュ有効時ですが、
win764bitですがEVRエミュ有効時とそうでないときの差はわかりませんでした。

しかしブレイブルーをプレイしているときにこの数値のような遅延を体感で感じることはできませんでした(むしろほぼ無いような?)
吐き出されている数値と実際の遅延に差はないですよね…うーん

Re: No title

> 0:00:02.4070054s(32.0496ms), Idle=12ms, IdleCount= 0, Size=614400byte, SP(0) Pl(1) Dc(1):######
> これはEVRエミュ有効時ですが、
> win764bitですがEVRエミュ有効時とそうでないときの差はわかりませんでした。
>
> しかしブレイブルーをプレイしているときにこの数値のような遅延を体感で感じることはできませんでした(むしろほぼ無いような?)
> 吐き出されている数値と実際の遅延に差はないですよね…うーん


その数値はキャプチャカード単体の値なのでレンダラーによる違いは反映されません。
また、遅延を直接表しているわけでもありません。
例えば最初の行の32.0496msはキャプチャカードにより最低でも32msの遅延があることはわかりますが、実際のキャプチャカードの遅延は40msかもしれないし100msかもしれません。

EVRのハードウエア動作とEVRのソフトウエアエミュレーションの遅延の差は、通常1から2フレームです。
その違いを体感できるかどうかは個人差に大きく依存します。
また、キャプチャカードの遅延が大きくなればなるほどレンダラーによる遅延の差は体感しにくくなり、キャプチャカードの遅延が小さいほどレンダラーによる遅延の差を大きく感じる性質もあります。

No title

こんどからこの名前でお邪魔するようにします。
レンダラーによる遅延は上のようなツールをつかわなければわからないのですね。
またテキストに吐き出される遅延は最短であってそれ以上早くはならないと…


ということは私はもしかして超鈍感!?

ありがとうございましたw
 
 
あまラボへようこそ
このブログでは自作ソフトの最新情報やtips、PC動画に関する話題を掲載していきます。各記事へは下にあるカテゴリからアクセスして下さい。

ファイルのダウンロードはホームページの方でお願い致します。

質問・要望・不具合報告はこちら
アマレコTV
アマミキ!
アマレココ
アマレコ・ライト
ファンタジーリモート
AMVコーデック



ホームページ
カテゴリ
最新コメント
カレンダー
07 | 2017/08 | 09
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -
最新記事
最新トラックバック
ブログ内タグ

アマレコTV ビデオキャプチャ AMVコーデック アマレココ アマミキ! コーデック SC500 動画配信 ファンタジーリモート アマレコライト プラグイン AMV4 SC512 ライブ機能 デスクトップキャプチャ AVX2 FAQ リモートソフト 質問コーナー ニコニコ動画 DirectShow HDキャプチャ 組み換え 4K レゴ 遅延 可変再生速度 解説動画 LEGO XL2420T ベンチマーク Intensity AMV2MT 120Hz 倍速液晶 GV-USB2 アマステ 液晶モニター PS4 Pro デインターレース 32ZP2 Shadow VideoKeeper2 31024 RDT233WX-Z ffmpeg GV-USB AVX Play Alternate designs 31006 RGBキャプチャ RYZEN SD-USB2CAP4 XCAPTURE-1 DirectShowFilter キャプチャーツール Livetube シンクライアント イベント AtomでHDキャプチャ プレビュー 擬似NTSCキャプチャ IntensityPro SD-USB2CUP4 額縁遅延 MPC ハイパースレッディングテクノロジー HT インストール OBS QSV NVEnc 31021 フィギュア Kabelake SSE MonsterX3A XCapture-1 オーバーレイ 音ズレ 録画 HDMI HDCP 32ZP32 SKnet REGZA 液晶テレビ 倍速駆動 リプレイ機能 モノステ ZP3 倍速補完処理 MP3 Haswell 電源オプション LameACM 音遅延 ゲームスムーズモード MonsterXU3.0R DC-HD1 

ブログ内検索
月別アーカイブ
アマレココに関するリンク
お世話になっているソフトのリンク
RSSリンクの表示
管理画面
  • 管理画面