ビデオキャプチャカードのタイミングと遅延
それを確認するためにAmDeinterlace.axと同じフォルダにある「AmDeinterlace.ini」をメモ帳で開いて「iDebugLog」を”1”にするとアマレコTVがデータを受け取った際の時刻やステータスを記録したログファイルを作成することができます。また、「iWaitDeliver」は今回のタイミング調整を行うかどうかの設定です。0なら調整を行わない(今まで通りの動作)。1でタイミング調整を行うようになります。初期値は1です。なお、タイミング調整はアマレコTVのプレビュー設定でソフトウエアデインターレースを使う場合に限り行われます。デインターレースを行わなかったり、ハードウエアデインターレースを使う場合はタイミング調整は行われません(今のところ必要ないので)。
【注意】 ビデオキャプチャカードのタイミングを観察するときはアマレコTVのタイミング調整が影響してしまうので「iWaitDeliver」を0にしてタイミング調整しない状態で観察してください。 |
■テスト環境
OS | Windows7 x64 Professional SP1 | |
CPU | Intel(R) Core(TM) i5-3470S CPU @ 2.90GHz Ivy Bridge | |
MB | ASRock H77 Pro4-M (Intel H77) | |
Memory | DDR3 1600 8GB(4GBx2 Dual Cannel)read=23.7GB/s write=12.2GB/s | |
Software | アマレコTV Ver2.20c AmDeinterlace.ax Ver2.20d | |
Capture Card | GV-USB2 S端子 | Driver:1.1.0.93.5, 2010.06.28 |
SD-USB2CAP4 S端子 | Driver:5.2009.917.0 | |
SC-500N1/DVI コンポーネント端子 | Driver:1.1.0.108.0, 2011.08.09 |
PlayStation2本体でPS1のゲーム「雷電プロジェクトの雷電II」を使用。
このゲームのビデオ信号は擬似NTSC(240p 60fps)になります。

■GV-USB2の結果

各行にデータを受け取った時刻とステータスが記録されています。
赤枠の部分は一つ前のデータからの経過時間(インターバルタイム)でビデオキャプチャカードのタイミングを観察できます(今回注目する値)。
IdleはアマレコTVのデータ処理が終わり次のデータが届くまでの暇な時間(アイドルタイム)。この時間が少ないと遅延している(急いでデータが送られてきている)可能性があります。
IdleCountはIdleが小さい時にカウントが増えます。一定値に達すると遅延を回復するため意図的にプレビューの画像をドロップします。
Sizeは受け取ったデータ量。上記では720 x 480 x 2=691,200バイトになります。
SP、Pl、DcはDirectShowフィルターのステータス。
行の最後にはインターバルタイムを“#”の個数で表示しています。#ひとつが5msです。
GV-USB2の場合、擬似NTSCのビデオ信号を秒間30フレームのデータ(インターレースのようにインターリーブされたデータ)として送ってきますので、正常なインターバルタイムは33msとなります。
しかし、ところどころ約64msになっており33msより大きく遅れているのがわかります。 その後、数フレームを33msより早いタイミングで送ることで平均的に見て33msとなるよう動作しています。
背景が青くなっている23フレーム分(約0.8秒)が一つのサイクルになっているようです。
■SD-USB2CAP4の結果

SD-USB2CAP4も秒間30フレームのデータとして送ってきますので正常なインターバルタイムは33msです。
GV-USB2の時と同様インターバルタイムが33msより遅くなることがありますが約40msとGV-USB2より遅れは少なくなっています。
こちらも青くした6フレーム(約0.2秒)を1サイクルとして平均33msになるよう動作しています。
■SC500N1/DVIの結果

SC500では擬似NTSCのビデオ信号を720 x 240プログレッシブ 60fps(59.94fps)でキャプチャするため正常なインターバルタイムは16.6msです。
テスト結果から約16.7msで安定しているのがわかります。
これは、アマレコTVでタイミング調整することなく滑らかなプレビューができるだけでなく遅延も少ない事を意味します。
■遅延に付いて
遅延に付いて語るのは難しいのですが、今回の結果からビデオキャプチャカードにより生じる遅延の最小値(最低でもこれだけは遅延すると言う値)は次のようになります。
ビデオキャプチャカード | 遅延(最小値) |
GV-USB2 | 約64ms |
SD-USB2CAP4 | 約40ms |
SC500N1/DVI | 約17ms |
※ この他に、ビデオレンダラーによる遅延とビデオカードによる遅延が生じます(両方あわせて約17ms)。また、Windows7でデスクトップコンポジションを行う場合はデスクトップコンポジションによる遅延も生じます。
■最後に
GV-USB2とSD-USB2CAP4でタイミングがばらつく原因は判りませんが、 もうすこしタイミングが安定されると良いなと思います。あと擬似NTSCがキャプチャできるだけでも有難いけど、SC500の様に240pでキャプチャできればパソコンの画面を見ながらゲームしやすくなると思うので、そういった商品も今後出てくると良いなと思います。
- 関連記事
-
- アマレコTV Ver2.20b ミキサー修正 ベータ版
- アマレコTV FAQ
- IO DATA社製ビデオキャプチャ「GV-USB2」
- GV-USB2の色ズレ
- アマレコTV、アマレココ、アマレコ・ライト、ファンタジーリモート更新
- アマレコTV FAQ
- アマレコTV用 デインターレースフィルタ Ver2.20d ベータ版
- ビデオキャプチャカードのタイミングと遅延
- アマレコTV用 デインターレースフィルタ Ver2.20e ベータ版
- アマレコTV・アマミキ!用 オーディオレンダラーフィルタ Ver2.30a ベータ版
- アマレコ・オーディオ・レンダラー デバックログとビデオキャプチャ編
- アマレコTV Live アマミキ! Ver2.30 ライブ機能
- アマレコTV Live アマミキ! Ver2.30 先行公開
- アマレコTV Ver2.30 モノステ(モノラル・ステレオ変換)
- アマレコTV Live アマミキ! Ver2.31 先行公開
コメントの投稿
Intensity proで実験
・環境
OS Win7 Ult x64
CPU Xeon E-3 1230@3.2GHz
Mem 8GB
VGA Radeon HD 6870
Capture Intensity pro Driver:3.4
・設定
APP / OS = AmaRecTV Ver 2.20c / Windows 7 / graph(0)
Device = Decklink Video Capture
Format = *w=1280, h= 720, fps=59.94, fcc=HDYC, bit=16
Crossbar = /
Tuner / CLK = / 1
AudioDevice = Decklink Audio Capture
AudioInput = (選択しない)
AudioFormat = *sample=48000, bit=16, ch= 2
・ログの一部
0:00:00.7173135s(29.9963ms), Idle=30ms, IdleCount= 0, Size=1843200byte, SP(0) Pl(1) Dc(1):#####
0:00:00.7323241s(15.0106ms), Idle=14ms, IdleCount= 0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
0:00:00.7473563s(15.0322ms), Idle=14ms, IdleCount= 0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
0:00:00.7623428s(14.9865ms), Idle=14ms, IdleCount= 0, Size=1843200byte, SP(0) Pl(1) Dc(1):##
0:00:00.7773419s(14.9991ms), Idle=14ms, IdleCount= 0, Size=1843200byte, SP(0) Pl(1) Dc(1):##
0:00:00.7923436s(15.0017ms), Idle=14ms, IdleCount= 0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
0:00:00.8073267s(14.9831ms), Idle=14ms, IdleCount= 0, Size=1843200byte, SP(0) Pl(1) Dc(1):##
0:00:00.8223511s(15.0244ms), Idle=14ms, IdleCount= 0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
0:00:00.8373441s(14.9930ms), Idle=14ms, IdleCount= 0, Size=1843200byte, SP(0) Pl(1) Dc(1):##
0:00:00.8673975s(30.0534ms), Idle=29ms, IdleCount= 0, Size=1843200byte, SP(0) Pl(1) Dc(1):######
0:00:00.8823500s(14.9525ms), Idle=14ms, IdleCount= 0, Size=1843200byte, SP(0) Pl(1) Dc(1):##
0:00:00.8973482s(14.9982ms), Idle=14ms, IdleCount= 0, Size=1843200byte, SP(0) Pl(1) Dc(1):##
0:00:00.9123126s(14.9644ms), Idle=14ms, IdleCount= 0, Size=1843200byte, SP(0) Pl(1) Dc(1):##
0:00:00.9272761s(14.9635ms), Idle=14ms, IdleCount= 0, Size=1843200byte, SP(0) Pl(1) Dc(1):##
0:00:00.9423410s(15.0649ms), Idle=14ms, IdleCount= 0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
0:00:00.9573189s(14.9779ms), Idle=14ms, IdleCount= 0, Size=1843200byte, SP(0) Pl(1) Dc(1):##
0:00:00.9723190s(15.0001ms), Idle=14ms, IdleCount= 0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
0:00:00.9873800s(15.0610ms), Idle=14ms, IdleCount= 0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
0:00:01.0174093s(30.0293ms), Idle=29ms, IdleCount= 0, Size=1843200byte, SP(0) Pl(1) Dc(1):######
Re: Intensity proで実験
>
> ・環境
> OS Win7 Ult x64
> CPU Xeon E-3 1230@3.2GHz
> Mem 8GB
> VGA Radeon HD 6870
> Capture Intensity pro Driver:3.4
>
> ・設定
> APP / OS = AmaRecTV Ver 2.20c / Windows 7 / graph(0)
> Device = Decklink Video Capture
> Format = *w=1280, h= 720, fps=59.94, fcc=HDYC, bit=16
> Crossbar = /
> Tuner / CLK = / 1
> AudioDevice = Decklink Audio Capture
> AudioInput = (選択しない)
> AudioFormat = *sample=48000, bit=16, ch= 2
>
> ・ログの一部
> 0:00:00.7173135s(29.9963ms), Idle=30ms, IdleCount= 0, Size=1843200byte, SP(0) Pl(1) Dc(1):#####
> 0:00:00.7323241s(15.0106ms), Idle=14ms, IdleCount= 0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
> 0:00:00.7473563s(15.0322ms), Idle=14ms, IdleCount= 0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
> 0:00:00.7623428s(14.9865ms), Idle=14ms, IdleCount= 0, Size=1843200byte, SP(0) Pl(1) Dc(1):##
> 0:00:00.7773419s(14.9991ms), Idle=14ms, IdleCount= 0, Size=1843200byte, SP(0) Pl(1) Dc(1):##
> 0:00:00.7923436s(15.0017ms), Idle=14ms, IdleCount= 0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
> 0:00:00.8073267s(14.9831ms), Idle=14ms, IdleCount= 0, Size=1843200byte, SP(0) Pl(1) Dc(1):##
> 0:00:00.8223511s(15.0244ms), Idle=14ms, IdleCount= 0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
> 0:00:00.8373441s(14.9930ms), Idle=14ms, IdleCount= 0, Size=1843200byte, SP(0) Pl(1) Dc(1):##
> 0:00:00.8673975s(30.0534ms), Idle=29ms, IdleCount= 0, Size=1843200byte, SP(0) Pl(1) Dc(1):######
> 0:00:00.8823500s(14.9525ms), Idle=14ms, IdleCount= 0, Size=1843200byte, SP(0) Pl(1) Dc(1):##
> 0:00:00.8973482s(14.9982ms), Idle=14ms, IdleCount= 0, Size=1843200byte, SP(0) Pl(1) Dc(1):##
> 0:00:00.9123126s(14.9644ms), Idle=14ms, IdleCount= 0, Size=1843200byte, SP(0) Pl(1) Dc(1):##
> 0:00:00.9272761s(14.9635ms), Idle=14ms, IdleCount= 0, Size=1843200byte, SP(0) Pl(1) Dc(1):##
> 0:00:00.9423410s(15.0649ms), Idle=14ms, IdleCount= 0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
> 0:00:00.9573189s(14.9779ms), Idle=14ms, IdleCount= 0, Size=1843200byte, SP(0) Pl(1) Dc(1):##
> 0:00:00.9723190s(15.0001ms), Idle=14ms, IdleCount= 0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
> 0:00:00.9873800s(15.0610ms), Idle=14ms, IdleCount= 0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
> 0:00:01.0174093s(30.0293ms), Idle=29ms, IdleCount= 0, Size=1843200byte, SP(0) Pl(1) Dc(1):######
ご報告ありがとうございます。
Intensity Proは録画に特化した作りになっていて、モニターリングは出力端子で行ってくださと言うのがメーカーのコンセプトのように思います。アプリケーション上のプレビューは他のHDキャプチャカードと比べ遅延したりカクカクしたりで(今となっては)見劣りしますね。
Re: Re: Intensity proで実験
お返事いただきどうもありがとうございます。
Intensity proは型も古いし、仕方ない部分ありそうですね。
そろそろ新しいキャプチャカードの購入を検討してみます!