クロックを72MHzに変更したので、改めてMP3のデコードにどの程度の時間がかかっているのかを調べてみることにしました。以前、おおざっぱに調べたことがありますが、その時はまだSDカードも使えない状態でしたので短時間のMP3データでしか調べられませんでした。そこで今回は、SDカードからの読み出しと伸長処理をおこなうだけで音声出力をおこなわないルーチンを作成して、どの程度の時間がかかるのかを調べてみました。ついでに、ビットレートも192Kに加えて、256Kと320Kの場合の3種類を調べることにしました。
実験の様子はこんな↓感じです。試験再生コマンド(mplay)を投入して、経過した時間を表示させています。実際には、並行してLCDに時計を表示するタスクが動いているのですが、その程度のオーバヘッドは無視することにします。結果は次のとおりです。
![](https://blogimg.goo.ne.jp/user_image/21/4a/47ab9069725ca32bfe949869813a523c.jpg)
それぞれのファイルは、同一の曲をビットレートを変えて取り込んだものです。意外と、ビットレートによる時間差は少ないです。曲の長さは175.466秒ですので、
となり、SDの読み取り時間を含めてだいたい半分くらいの時間がかかっているようです。以前は60%くらいは費やしていましたから、ほぼ予想通りに性能が向上したということろでしょうか。
データがとれたのはいいのですが、じつは320Kbitのファイルを再生しようとすると、かなりの頻度で途中で試験再生が止まってしまうことが判明。普通に音を出せば問題なく動作するので、どうやらSDの読み取りが連続して発生した場合に問題が発生しているようです。週末にバグとりするつもりです。
実験の様子はこんな↓感じです。試験再生コマンド(mplay)を投入して、経過した時間を表示させています。実際には、並行してLCDに時計を表示するタスクが動いているのですが、その程度のオーバヘッドは無視することにします。結果は次のとおりです。
![](https://blogimg.goo.ne.jp/user_image/21/4a/47ab9069725ca32bfe949869813a523c.jpg)
それぞれのファイルは、同一の曲をビットレートを変えて取り込んだものです。意外と、ビットレートによる時間差は少ないです。曲の長さは175.466秒ですので、
ビットレート | ファイル長 | 展開時間 |
---|---|---|
192Kbit | 4,208,952 | 83.370/175.466 = 47.51% |
256Kbit | 5,612,596 | 87.368/175.466 = 49.79% |
320Kbit | 7,017,028 | 88.580/175.466 = 50.48% |
となり、SDの読み取り時間を含めてだいたい半分くらいの時間がかかっているようです。以前は60%くらいは費やしていましたから、ほぼ予想通りに性能が向上したということろでしょうか。
データがとれたのはいいのですが、じつは320Kbitのファイルを再生しようとすると、かなりの頻度で途中で試験再生が止まってしまうことが判明。普通に音を出せば問題なく動作するので、どうやらSDの読み取りが連続して発生した場合に問題が発生しているようです。週末にバグとりするつもりです。