【おしらせ】AnyWare+での購入手続きを自動化しました
お支払い手続き完了後10分程度でライセンスキーを受け取ることができます。ただし、システムトラブル等により自動処理ができなかった場合は24時間以内に手動で対応させて頂きます。ご了承ください。
また、AnyWare+側の都合で購入手続きに時間がかかる場合があります。
購入案内
AnyWare+からウェブマネーで購入する場合について
SC-500N1/DVI その13 録音テスト
なお、ビデオデータとオーディオデータのタイミングが合わないと、アマレコTVで録画したときに映像と音声のズレを補正するためのフレームの増減が生じます(ステータス欄の(+)や(-))。
1.テスト方法
携帯音楽プレイヤーをビデオキャプチャカードまたはサウンドカードのアナログ音声入力に接続して音楽を再生します。
ビデオ信号はプレイステーション2用のゲームの480iをコンポーネントで接続しキャプチャします。
この状態でアマレコTVで録画します。
録画してできたビデオファイルからAviUtlを使ってwavファイルを作成します。
Audacityを使ってwavファイルの波形を観察して判断します。
デバイス | 品番 | 備考 |
サウンドカードのライン入力 | CMI8738-6CHLP2 | ビデオキャプチャデバイスはSD-USB2CUP4 オーディオキャプチャデバイスはCMI8738-6CHLP2 としてアマレコTVで録画 |
キャプチャカード1 | SC-500N1/DVI | |
キャプチャカード2 | SD-USB2CUP4 |
OS | WindowsXP Professional SP3 |
MB | M3N78-EM |
CPU | AMD Phenom(tm) 8750 Triple-Core Processor 2.4GHz |
MEMORY | DDR2-800 2GB(2GB*1) |
HDD | WD10EADS-00M2B0 1TB, 5400rpm |
キャプチャカード | SC-500N1/DVI Driver 1.1.0.108.0 SD-USB2CUP4 Driver 5.2009.917.0 |
アマレコTV | Ver2.20b |
2.結果
サウンドカードを使って録音した波形を基準にし各ビデオカードがどの程度ずれているかを見ます。
全体像です。音楽の開始位置(左端)を揃えてあります。

音楽の終了位置を拡大します。

サウンドカードで録音したものは約4分41秒のところで音楽が終わっています。
SC500はサウンドカードと比べて約0.005秒短くなっています。
SD-USB2CUP4はサウンドカードと比べて約0.035秒長くなっています。
※SD-USB2CUP4は音圧が合わず、音楽の開始位置を正確に合わせることができませんでした。そのため誤差が含まれています。
3.まとめ
SD-USB2CUP4の4分41秒あたり0.035秒と言うズレは1時間で約15フレーム(1フレームは0.033秒)のズレとなります。 個人的には1時間で15フレームのズレなら妥当と思っています。
一方、SC500はもっと精度が高いので映像と音声のズレは小さくなるはずですが、実際は4分41秒で 14フレームずれました。これは1時間に換算すると194フレームと非常に大きなズレとなります。
VT=281491(8449f), Cap= 8787f( 0D), Enc= 1.283ms, Siz= 137KB( 20%) , Drp=0, (+)14, (-)0, o (+)は映像と音声の同期を取るため追加したフレーム(Nullフレーム)数です。 このログから、録画を開始して4分41秒後(281491ms)の段階で14フレーム分映像が不足していることが分かります。(1フレームは0.033秒) |
2011.11.6現在のSC500には映像ドロップの不具合がありますので、録画中に映像が不足し、その分が補正されたと見るのが妥当なのですが、映像ドロップが修正されても(補正なしでは)音ズレする動画になってしまう可能性がSC500にはあります。今回その原因が音声のサンプリングレートの僅かな狂いでは?と思いテストを行いましたが、サンプリングレートの異常は見られませんでした。
とりあえずSC500のオーディオキャプチャ周りはうまく機能していると思われるので、映像ドロップが修正され次第、再度検証してみたいと思います。
キャプチャカードによる遅延は1フレーム未満
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・・・とフレームカウンターが並びます。

※ 左側に1/1000秒単位の時間、右側にフレームカウンタを表示しています。
このような動作は遅延が1フレーム未満の場合の話です。1フレーム以上の遅延があるとカウンターの並びが変わってきます。 例えば遅延が1以上、2フレーム未満の場合のカウンターは5,3,1・・・と2間隔で並びます。
同様に、遅延が2以上、3フレーム未満の場合は7,4,1・・・と3間隔ですので、表示されるカウンターの間隔から遅延を把握することができます。
後は適当なタイミングでアマレコTVのスクリーンショット機能を使いビットマップファイルを作って観察します。
また、録画したビデオファイルをコマ送りで観察することでより多くのデータを得ることができますが、ドロップフレームやフレームレートに異常が無いことが前提となりますので注意して下さい。
OS | WindowsXP Professional SP3 Windows7 |
MB | M3N78-EM |
CPU | AMD Phenom(tm) 8750 Triple-Core Processor 2.4GHz |
MEMORY | DDR2-800 2GB(2GB*1) |
HDD | WD10EADS-00M2B0 1TB, 5400rpm |
ビデオカード | GeForceGT240 ZT-20401-10L |
キャプチャカード | SC-500N1/DVI Driver 1.1.0.108.0 |
アマレコTV | Ver2.20b AmDeinterlace Ver2.20b |
サンプル画像 | アマレコTVのスクリーンショットでPNG保存した物 |
3.結果
OS | レンダラー | 測定結果(遅延) | サンプル画像 |
Windows XP | オーバーレイ | 2フレーム未満 | ![]() |
Windows 7 | オーバーレイ | 2フレーム未満 | ![]() |
Windows 7 | EVR | 3フレーム未満 | ![]() |
Windows 7で多く使われるEVRはXPのオーバーレイ表示より1フレーム分遅延が大きくなる。
Windows 7でもオーバーレイ表示を使えば遅延を少なくできる。
4.追加テスト
EVRにはエミュレーションレイヤ(以下エミュレーションモード)と言うのが存在します。 エミュレーションモードは必要な機能がビデオカードに搭載されていなかったり、OSが対応していない場合に、ソフトウエア処理によりEVRの機能をエミュレーションしながら動作するモードです。 性能が低く処理に時間がかかったり、画質が低下するため普通は使いませんが、垂直同期待ちを行わないようなので遅延を減らすことができます。
OS | レンダラー | 測定結果(遅延) | サンプル画像 |
Windows XP | EVR エミュレーション | 1フレーム未満 | ![]() |
Windows 7 | EVR エミュレーション | 1フレーム未満 | ![]() |
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