ページ

2009年3月26日木曜日

iPodの音飛び


最近究極のCD-R/RWドライブと誉れの高い、PlextorのPremium2/JPKを購入したこともあって、DJで使用するためにCDをすべてWAVEファイルで取り込んでいます。
昔はMP3(320kHz)で取り込んでいましたが、比べるとやはりかなりの音の違いを感じます。
ようやくCDを取り替える手間から解放された! VIVAテクノロジー!

ところが、取り込んだWAVEファイルをiPod(初代nano 2GB)で再生すると、10曲に1曲程度の確率で音飛びする。
iPodで音飛びしたファイルををiTunesで再生しても音飛びしないので、ファイルに原因があるのではなく、iPodに原因があるとみて間違いない。

調べたところ、iPodは32MBのバッファを持ち、ファイルをいったんバッファに取り込んだ後再生するらしい。

32MBに転送可能なWAVEファイル(44.1kHz、16bit、ステレオ)は、秒数で言うと、、、

サンプリング周波数44.1kHzなので、すなわち1秒間に44100回サンプリングするという意味であり、つまり1秒間の音を作るのに、44100個のデータが必要である。
そして、1個のデータサイズが16bitなので、1データあたり2 byte必要(1 byte=8 bit)。
ステレオデータなので、LチャンネルとRチャンネルのデータがあるため、2 byteの2倍の4 byteが必要。 結果として、1秒間という音を記録するのに必要な容量は、44100×2×2=176400 byteである。

32MBをこの値で割れば、転送可能なデータの秒数が導き出せる。

32MB=32×1024×1024=33554432 byte(1 kbyte=1024 byte)
33554432÷176400≒190秒

つまり32MBのバッファに転送可能なWAVEファイルの上限は、3分10秒ということになる。
体感的には2分30秒前後再生した段階で音飛びするので、大体あってると思います。
バッファを100%キャッシュとして使えるわけでもないだろうし。

このことより推論すると、iPodはキャッシュに乗ったデータを再生終了する少し前のタイミングで再キャッシュしていると言える。
そして、再キャッシュが再生に追いつかないことがあると。
たぶんなんだけど、6分20秒より長い曲(1回目の再キャッシュが32MB以上になるファイル)だと確実に音飛びするんじゃないかな?
ストレージ側のファイル配置状況(分断化の程度)にもよるかな?

こんなのキャッシュを3分割して再生中、再生待ち、転送中っていうブロックにして、順繰りに再生バッファに送るようにして(いわゆるストリーミング再生ですね)、その転送に必要なハードウェア設計すればいいだけやと思うんやけど。
安全取って倍くらい余裕見れればたぶん大丈夫でしょう。
今時そんな遅いハード、そうそうないと思うんやけどなあ。

テストで誰も気づかんかったんやろうか?
気づいてもGOしたんやろうか?
それでWAVE再生対応ってどうなの?
新聞は食べることが可能ですってのと同じレベルやと思うんやけど。

そろそろ160GBのiPod classic(絶版)を買おうと思ってたんだけど、どうしようかなあ。
どうせ160GBじゃ全部入らないし、処理速度が向上したiPod touchにしようかなあ。でもCPUの速度が上がっても転送速度が上がってる訳でもないしなあ。

iPod以外で、大容量のポータブルオーディオ再生機ないすかね?

0 件のコメント:

コメントを投稿