【おしらせ】AnyWare+での購入手続きを自動化しましたAnyWare+での購入手続きを自動化しました。お支払い手続き完了後10分程度でライセンスキーを受け取ることができます。システムトラブル等により自動処理ができなかった場合は24時間以内に手動で対応させて頂きます。AnyWare+側の都合で購入手続きに時間がかかる場合があります。録音テストSC500の対応状況の中で「・ビデオデータとオーディオデータのタイミングが合わない。」と書きましたが、その原因のひとつがオーディオのサンプリングレートに問題があるのではないかと思われるのでテストしてみました。ビデオデータとオーディオデータのタイミングが合わないと、アマレコTVで録画したときに映像と音声のズレを補正するためのフレームの増減が生じます(ステータス欄の(+)や(-))。携帯音楽プレイヤーをビデオキャプチャカードまたはサウンドカードのアナログ音声入力に接続して音楽を再生します。ビデオ信号はプレイステーション2用のゲームの480iをコンポーネントで接続しキャプチャします。この状態でアマレコTVで録画します。録画してできたビデオファイルからAviUtlを使ってwavファイルを作成します。Audacityを使ってwavファイルの波形を観察して判断します。Ver2.20b2.結果サウンドカードを使って録音した波形を基準にし各ビデオカードがどの程度ずれているかを見ます。音楽の開始位置(左端)を揃えてあります。音楽の終了位置を拡大します。サウンドカードで録音したものは約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フレームのズレなら妥当と思っています。14フレームずれました。これは1時間に換算すると194フレームと非常に大きなズレとなります。o(+)は映像と音声の同期を取るため追加したフレーム(Nullフレーム)数です。このログから、録画を開始して4分41秒後(281491ms)の段階で14フレーム分映像が不足していることが分かります。(1フレームは0.033秒)2011.11.6現在のSC500には映像ドロップの不具合がありますので、録画中に映像が不足し、その分が補正されたと見るのが妥当なのですが、映像ドロップが修正されても(補正なしでは)音ズレする動画になってしまう可能性がSC500にはあります。今回その原因が音声のサンプリングレートの僅かな狂いでは?と思いテストを行いましたが、サンプリングレートの異常は見られませんでした。SC500のオーディオキャプチャ周りはうまく機能していると思われるので、映像ドロップが修正され次第、再度検証してみたいと思います。価格.comの口コミ記事に興味深いものがあったので、同じようなテストをしてみました。遅延の要素としては次のものがあります。今回のテストでは1から4の間で起こる遅延をフレーム単位で計測します。モニターによる遅延は含まれていません。以降1フレームは16.67ms(1/60秒)とし、遅延が1フレーム未満と言った場合は16.67msより短い時間で1から4の処理を終えられることを意味します。1フレーム以上、2フレーム未満と言った場合は16.67ms以上かかるが33.33msまではかからない事を意味します。2.テスト方法アマレコTVのプレビューにフレームカウンターを表示します(やり方は後述)。ビデオカードに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のスクリーンショット機能を使いビットマップファイルを作って観察します。録画したビデオファイルをコマ送りで観察することでより多くのデータを得ることができますが、ドロップフレームやフレームレートに異常が無いことが前提となりますので注意して下さい。7で多く使われるEVRはXPのオーバーレイ表示より1フレーム分遅延が大きくなる。7でもオーバーレイ表示を使えば遅延を少なくできる。4.追加テストEVRにはエミュレーションレイヤ(以下エミュレーションモード)と言うのが存在します。エミュレーションモードは必要な機能がビデオカードに搭載されていなかったり、OSが対応していない場合に、ソフトウエア処理によりEVRの機能をエミュレーションしながら動作するモードです。性能が低く処理に時間がかかったり、画質が低下するため普通は使いませんが、垂直同期待ちを行わないようなので遅延を減らすことができます。1フレーム未満XP/7共にEVRのエミュレーションモードだと1フレーム未満の遅延で動作するようです。この結果からビデオキャプチャカードによる遅延は1フレーム未満であることが分かります。垂直同期待ちを行わないとティアリングが生じます。5.まとめ今回のテスト結果をまとめると・ビデオキャプチャカード(SC500)の遅延は1フレーム未満である・アマレコTVによる遅延は十分な性能のPCを使う限り0とみなしていい(画像処理を行わない場合)・EVRはオーバーレイレンダラーより遅延が大きい・レンダラー処理で垂直同期待ちを行わなければ遅延を減らせるなお、私の環境ではSC500がインターレース(1080i)を受け付けないためテストできませんでしたが、インターレース方式の場合は2フレーム分をまとめてビデオキャプチャソフトへ渡すためキャプチャ処理の遅延が1フレーム分大きくなると思われます。今回のテストを行うためのフィルターです。ある程度パソコンに詳しい人でないと利用できません。自己責任かつ、分からない事は自力で調べられる方のみご利用ください。0あまラボへようこそこのブログでは自作ソフトの最新情報やtips、PC動画に関する話題を掲載していきます。各記事へは下にあるカテゴリからアクセスして下さい。