表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
45/61

3.映像と音声がズレまくって調整が難しい

作った動画ファイルをいくつか再生して楽しんでたが、とある動画で気が付いた。

ダンスと音が合ってない…

処理をよく見るとMP3の再生を開始してから画像のデコードを開始してる。そりゃズレるよな。音声再生の開始を1フレームずらそう。


だいぶ改善したが、まだ微妙にずれてる。厳密にタイミングを合わせないとこの違和感は消せないな。

ということで、画像の表示切替タイミングとMP3のデコード開始を厳密に調整できるように改造して解決。


うむ。これで完璧。じゃぁちょっと長い奴で試そう。映画を変換して試そう。90分ちょいの映画だと400MB か。結構でかいが VIDEO CD よりは小さいな。イケるイケる。


あれ?こりゃダメだ。どんどんズレてく。画像の切り替えタイミングの調整に、前のフレームとの時間差を計算して、フレームレートに合わせるようにsleep するせいで誤差が蓄積してるかな?

と思ってMP3の再生開始時刻を記憶してそことの差分を使ってもやはりずれていく。


いっそのことPCMで再生した回数を累積でカウントするか?それなら絶対にずれないはず。ということでドライバにAPIを追加。ただ、DMAの転送カウンタを見てるんで、一周して初期値に戻る前に定期的に呼び出す必要があるのがちょっと面倒。DMA完了割り込みを使えば確実なんだが、そこまでやるのもなぁ。

ということでpythonプログラム側で、定期的に呼び出すようにループ処理を見直して何とか解決。


しかし、なんでずれていくんだろうなぁ?同じシステムクロックを使ってるから差が出るのはおかしいよな?micropythonに問題があるか??

と疑いだしたときに、ふと思い出した。


第三部 6.DMAでPWMデータを更新する設定方法 

誤差 1% ぐらいは我慢する(別のPWMチャネルを使ってDREQを出せば正確なレートにすることもできるが、そこまでは頑張らない)


自業自得だった。orz

評価をするにはログインしてください。
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

↑ページトップへ