fc2ブログ
 

ビデオキャプチャカードのタイミングと遅延

アマレコTV用 デインターレースフィルタ Ver2.20d ベータ版」で触れたようにアマレコTVがビデオキャプチャカードからデータを受け取る際のタイミングにはばらつきがあります。
それを確認するためにAmDeinterlace.axと同じフォルダにある「AmDeinterlace.ini」をメモ帳で開いて「iDebugLog」を”1”にするとアマレコTVがデータを受け取った際の時刻やステータスを記録したログファイルを作成することができます。また、「iWaitDeliver」は今回のタイミング調整を行うかどうかの設定です。0なら調整を行わない(今まで通りの動作)。1でタイミング調整を行うようになります。初期値は1です。なお、タイミング調整はアマレコTVのプレビュー設定でソフトウエアデインターレースを使う場合に限り行われます。デインターレースを行わなかったり、ハードウエアデインターレースを使う場合はタイミング調整は行われません(今のところ必要ないので)。

【注意】 ビデオキャプチャカードのタイミングを観察するときはアマレコTVのタイミング調整が影響してしまうので「iWaitDeliver」を0にしてタイミング調整しない状態で観察してください。

 

■テスト環境
OSWindows7 x64 Professional SP1
CPUIntel(R) Core(TM) i5-3470S CPU @ 2.90GHz Ivy Bridge
MBASRock H77 Pro4-M (Intel H77)
MemoryDDR3 1600 8GB(4GBx2 Dual Cannel)read=23.7GB/s write=12.2GB/s
SoftwareアマレコTV Ver2.20c
AmDeinterlace.ax Ver2.20d
Capture CardGV-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の結果
wait_recv\GV-USB2.PNG 

各行にデータを受け取った時刻とステータスが記録されています。
赤枠の部分は一つ前のデータからの経過時間(インターバルタイム)でビデオキャプチャカードのタイミングを観察できます(今回注目する値)。
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の結果
wait_recv\SD-USB2CAP4.PNG

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


■SC500N1/DVIの結果
wait_recv\SC500.PNG

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でキャプチャできればパソコンの画面を見ながらゲームしやすくなると思うので、そういった商品も今後出てくると良いなと思います。
関連記事


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

trackback


この記事にトラックバックする(FC2ブログユーザー)

コメントの投稿

Intensity proで実験

Intensity proで実験しました。タイミングがバラついていますので、EVRでカクカクするのもこれが原因のようです。

・環境
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で実験

> Intensity proで実験しました。タイミングがバラついていますので、EVRでカクカクするのもこれが原因のようです。
>
> ・環境
> 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で実験

>>他のHDキャプチャカードと比べ遅延したりカクカクしたりで(今となっては)見劣りしますね。

お返事いただきどうもありがとうございます。
Intensity proは型も古いし、仕方ない部分ありそうですね。
そろそろ新しいキャプチャカードの購入を検討してみます!
 
 
あまラボへようこそ
このブログでは自作ソフトの最新情報やtips、PC動画に関する話題を掲載していきます。各記事へは下にあるカテゴリからアクセスして下さい。

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

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



ホームページ
カテゴリ
最新コメント
カレンダー
04 | 2023/05 | 06
- 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 ビデオキャプチャ アマレコVR AMVコーデック Oculus Quest アマレココ アマミキ! コーデック gQuest SC500 動画配信 Pico GO ファンタジーリモート 4K アマレコライト プラグイン G2 AMV4 oculus Unity SC512 ライブ機能 パススルー機能 デスクトップキャプチャ AVX2 Passthrough FAQ リモートソフト 質問コーナー ニコニコ動画 HDキャプチャ DirectShow 120Hz 背景透過 遅延 可変再生速度 レゴ 解説動画 Meta 組み換え VR LEGO XL2420T GV-USB2 2 アセット機能 液晶モニター 倍速液晶 デインターレース PS4 ベンチマーク アマステ AMV2MT Asset Intensity Pico4 MetaQuest Pro VRonVR MonsterX3A designs VideoKeeper2 AVX Alternate XCAPTURE-1 SD-USB2CAP4 GV-USB インストール RDT233WX-Z 32ZP2 31006 ffmpeg WindowsMR Rift 画像処理 31024 T2 60fps RGBキャプチャ UtVideo Shadow Play RYZEN 電源オプション HDCP Haswell HDMI 音遅延 QSV MonsterXU3.0R LameACM MP3 31021 フィギュア 音ズレ 録画 ゲームスムーズモード HT OBS MPC ハイパースレッディングテクノロジー NVEnc 液晶テレビ DirectShowFilter プレビュー 擬似NTSCキャプチャ SD-USB2CUP4 Livetube AtomでHDキャプチャ キャプチャーツール シンクライアント イベント IntensityPro DC-HD1 額縁遅延 REGZA ZP3 32ZP32 オーバーレイ リプレイ機能 モノステ 倍速駆動 倍速補完処理 キャプチャカード Robust Video Matting API APIパススルー機能 60Hz 検証 passthrough python pytorch ハンドジェスチャー パカラーススルー機能 AssetBundle 2.0 Tracking ファイルマネージャプラス SkyBox Hand AMPlayer 新プレイヤー機能 GPU使用率 LAVFilters Preferred 可逆圧縮 GV-USB3 Kabelake SSE SKnet Filter Tweaker Windows 90Hz 新アマレコVR MR VRコントローラー SteamVR VR動画 フレーム間圧縮 XCapture-1 

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