since 2007.8 by K-ichi


同期チェックをしている様子
カシバードの精度確認などさんざん使ってきて、いまさらの話になるが、やはり気になったので確認してみた。

映像に時刻を焼きこむのは、GPS時計の正確さを拠所としている。その正確さの検証記事では、NTT時報の音声と、各種時計の映像とを比較している。
ところが、撮影した機材、およびそれを編集、確認するツールでの、音声と映像の同期性については未チェックだった。


通常の撮影は、安物HDデジカムであるKenko製 DVS2500HDによる。確認編集はAviUtlを使う。この組み合わせについて調べる。
撮影対象は、PICで自作した簡単なハードウェア。LEDとスピーカを直接同時駆動をしているので、ハードウェアは確実に同期動作している。

映像は、その実験環境、動作状況、検証の様子などをひとまとめにしたもの。


回路図
ハードウェアは、PICによる簡単な回路。
GP0~GP2は、2Hzのバイナリカウンタで、LEDを光らせる。GP4にはスピーカを直結する。スピーカは、32Ωと記載があったと記憶するイヤホンの残骸を使った。
GP3は念のため、47kΩでプルアップ。GP5は未使用。小規模実験回路ということで、パスコンなどは省略。

デバイスはPIC12F675を使い、MPLABX IDE+Pickit3で書き込む。
'13のhpのPCトラブル以来PICを触っていなかったようで、PCに開発環境がなかった。ストックのMPLAB v2.60をインストールしようにも、ファイルが壊れている模様。いい機会ということで、最新のMPLABXに乗り換えた。
pathに日本語やスペースが入っていたため、「~contain spaces or odd characters in their name or their path.」などとワーニングを吐かれる。既存ラベルを小文字で書いてしまったため「Symbol not previously defined (status)」などとエラーを吐かれる。果てはデバイスが認識できず、キャリブレーションが0x00だ、などと言われる始末。電源供給をオンにする必要があったわけだが。日本語のコメントが、次に開いたときにすべて化けていたこともあった。これはエンコードをUTF-8などに変更しておく。なかなか一筋縄ではいかない。

プログラムは、2Hzでカウンタを駆動するとともに音声を出力する。
音声は、通常は'L'にしておき、LEDカウントアップに合わせて0.5秒毎に音を出す。一命令で出力しているので、LEDとの時間差は電気特性的な差でしかない。
1回分の波形は、「1サイクルの880Hz、5サイクルの440Hz、2サイクルの880Hz、5サイクルの440Hz、3サイクルの880Hz、5サイクルの440Hz」、とする。特殊な波形にすることで、どの位置の音が見えているのかが判る。

オシロで見ると、ノイジーで時間軸が正確でないのがバレるが、波形はしっかり出ている。
AviUtlで見ると、音声は、各エッジが1振動になっていることを理解すれば、数はちゃんと数えられる。フレームを送っても勘定は合うので、すべての音声波形は表示されるよう。

映像と見比べても、きっちり同期している。ただ、1フレーム内で有限の露光時間があるため、音声が表示されている度合いでLEDの光り具合も変化する。
右端に音声波形がわずかに見え始めた程度ではLEDに変化は見えないが、それ以上では波形の埋まり具合によってLEDの光り具合も変わる。

DVS2500HD~AviUtlの連携では、同期はできており、表示を信じてよさそう。
一安心。

0 件のコメント:

コメントを投稿

.

関連記事


この記事へのリンク by 関連記事、被リンク記事をリストアップする」記事

ブログ アーカイブ