mp3に変換すると無音部分ができてしまう理由
こちらに転載しました
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
http://dj-daishizen.blog.jp/archives/2015-03-03.html
以前予告したようにmp3に変換すると無音部分ができてしまう理由について
ちょっと専門的な話しになるので、音楽関係の方以外は読んでも分からないかもしれませんが…
調べてみてビックリしたんだけど、無音が足されてしまうのにはいくつか理由がありまして
★エンコーダ(圧縮)が挿入する無音
★デコーダ(復元)が挿入する無音
★mp3はフレーム単位記録の為、デコード時にその単位と合致しない分の無音が挿入される
★エンコーダ(圧縮)が挿入する無音
エンコーダの仕様により曲頭に無音(エンコーダ・ディレイ)を付加してしまう。
(何でそんな仕様なのかは文系の私には分からず…w)
参照した資料によるディレイ値
iTunes7 528サンプル
音質がいいと話題になったLameだと
LAME 3.11 and earlier: 528サンプル
LAME 3.12-3.50 1160サンプル
LAME 3.54 and newer 48サンプル
ヴァージョンによってもこんなに違うんですね…汗
この画像を見てもらうと上から
★サイン波をPro Toolsで生成しオーディオ化したもの
★PTでWav書き出ししたものを再度インポート
★WavデータをiTunesでmp3に変換したもの
★WavデータをPTでmp3に変換したもの
★WavデータをAudioGateでAACに変換したもの
★WavデータをiTunesでAACに変換したもの
3段目のiTunesでmp3に変換したものは見事に528サンプルの無音ができています。
ちなみにPTのほうは672サンプルの無音…iTunesより長い…汗
下段2つのAAC変換したものは無音無しですね。
★デコーダ(復元)が挿入する無音
デコーダの仕様によりこちらも曲頭に無音(デコーダ・ディレイ)を付加してしまう。
(こちらも例によって、何故にそんな仕様なのかは分からず…です…すいません…)
★mp3はフレーム単位記録の為、デコード時にその単位と合致しない分の無音が挿入される
これも某所からの引用になりますが
「MP3はフレーム単位(44.1kHzのサンプル周波数なら1152サンプル = 0.0261秒)でデコードを行う。つまり、MP3ファイルは1152サンプル(0.0261秒)の整数倍の曲長しかとり得ないことを意味する。
具体例として,サンプル周波数44.1kHzの1秒のMP3を作ることを考えると、必要なMP3フレーム数は44100÷1152=38.3となり、小数点は切り上げ、39フレームということになる。39フレームでMP3ファイルを作ると,デコード後の曲長は 39×1152サンプル(0.0261秒)= 1.0179秒になってしまい,正確に1秒のMP3ファイルは作れない。つまり、ファイル末尾に約0.02秒弱の無音部分が付いてしまう。この末尾に付加された余計なサンプルのことを,パッディングと呼ぶ」
画像の中段2つのmp3ファイルは、曲頭、曲終わりに付加された無音部分の長さこそ違えど、ファイルとしての長さは同じこのケースの場合は1324800サンプルなのでこれを1152で割ってみると
1324800÷1152=1150
ちゃんと整数倍になってる!
スゲー!
以上のような問題を乗り超えてギャップレス再生するためには、
パッディング・サンプル数をデコーダーに伝達し、余計な部分を再生しないようにしつつ、
エンコーダ自身が作り出すディレイ・サンプル数みデコーダーに伝達して先頭の余計な部分を再生しないようにする。さらに!デコーダー自身が発生させるディレイ・サンプル数を認識して先頭の余計な部分を再生しないようにする。
というわけで、こういったディレイタイムをメタデータとして認識させ、先頭・末尾の不要サンプルを除去しながら再生することで余白が無い状態で聞くことが可能になるわけですね。
ちなみにmp3の頭のズレを取り除いて曲終わりを比べるとこんな感じこの場合、AACのほうが付加されてる無音が長いですね。
AACはiTunes変換とAudioGate変換でファイル全体の長さや付加される無音の長さも全く一緒で、曲頭には1サンプルたりとも無音は付加されませんでした。
AACに関しても少し調べてみたんですが、英語で書かれてるものが殆どで、細かいとこまでチェックしきれてないですが、こちらは1024サンプル単位(もしくは2048単位?)でのエンコード・デコードで…云々書いてありまして、より高度な計算をしつつもメタデータのやり取りが優秀なのか、こちらのほうがギャップレス再生に向いている設計になってるみたいです。
AACに関しても時間がある時にもっと調べてみます!
なんか書くのに疲れて最後は雑な感じになってしまいましたが(笑)、
PC DJ用のデータでmp3を使う時とかはそんなに問題にならないけど、制作や録音など音楽仕事で使うデータはやはり非圧縮(WAVやAIFF)でやり取りするにこしたことないですね。
録音データをmp3で送る→WAVに変換して取り込む→再度mp3で送る→WAVに変換して取り込む……なんてことを数回繰り返してたらとんでもないことになってきますよ
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
http://dj-daishizen.blog.jp/archives/2015-03-03.html
以前予告したようにmp3に変換すると無音部分ができてしまう理由について
ちょっと専門的な話しになるので、音楽関係の方以外は読んでも分からないかもしれませんが…
調べてみてビックリしたんだけど、無音が足されてしまうのにはいくつか理由がありまして
★エンコーダ(圧縮)が挿入する無音
★デコーダ(復元)が挿入する無音
★mp3はフレーム単位記録の為、デコード時にその単位と合致しない分の無音が挿入される
★エンコーダ(圧縮)が挿入する無音
エンコーダの仕様により曲頭に無音(エンコーダ・ディレイ)を付加してしまう。
(何でそんな仕様なのかは文系の私には分からず…w)
参照した資料によるディレイ値
iTunes7 528サンプル
音質がいいと話題になったLameだと
LAME 3.11 and earlier: 528サンプル
LAME 3.12-3.50 1160サンプル
LAME 3.54 and newer 48サンプル
ヴァージョンによってもこんなに違うんですね…汗
この画像を見てもらうと上から
★サイン波をPro Toolsで生成しオーディオ化したもの
★PTでWav書き出ししたものを再度インポート
★WavデータをiTunesでmp3に変換したもの
★WavデータをPTでmp3に変換したもの
★WavデータをAudioGateでAACに変換したもの
★WavデータをiTunesでAACに変換したもの
3段目のiTunesでmp3に変換したものは見事に528サンプルの無音ができています。
ちなみにPTのほうは672サンプルの無音…iTunesより長い…汗
下段2つのAAC変換したものは無音無しですね。
★デコーダ(復元)が挿入する無音
デコーダの仕様によりこちらも曲頭に無音(デコーダ・ディレイ)を付加してしまう。
(こちらも例によって、何故にそんな仕様なのかは分からず…です…すいません…)
★mp3はフレーム単位記録の為、デコード時にその単位と合致しない分の無音が挿入される
これも某所からの引用になりますが
「MP3はフレーム単位(44.1kHzのサンプル周波数なら1152サンプル = 0.0261秒)でデコードを行う。つまり、MP3ファイルは1152サンプル(0.0261秒)の整数倍の曲長しかとり得ないことを意味する。
具体例として,サンプル周波数44.1kHzの1秒のMP3を作ることを考えると、必要なMP3フレーム数は44100÷1152=38.3となり、小数点は切り上げ、39フレームということになる。39フレームでMP3ファイルを作ると,デコード後の曲長は 39×1152サンプル(0.0261秒)= 1.0179秒になってしまい,正確に1秒のMP3ファイルは作れない。つまり、ファイル末尾に約0.02秒弱の無音部分が付いてしまう。この末尾に付加された余計なサンプルのことを,パッディングと呼ぶ」
画像の中段2つのmp3ファイルは、曲頭、曲終わりに付加された無音部分の長さこそ違えど、ファイルとしての長さは同じこのケースの場合は1324800サンプルなのでこれを1152で割ってみると
1324800÷1152=1150
ちゃんと整数倍になってる!
スゲー!
以上のような問題を乗り超えてギャップレス再生するためには、
パッディング・サンプル数をデコーダーに伝達し、余計な部分を再生しないようにしつつ、
エンコーダ自身が作り出すディレイ・サンプル数みデコーダーに伝達して先頭の余計な部分を再生しないようにする。さらに!デコーダー自身が発生させるディレイ・サンプル数を認識して先頭の余計な部分を再生しないようにする。
というわけで、こういったディレイタイムをメタデータとして認識させ、先頭・末尾の不要サンプルを除去しながら再生することで余白が無い状態で聞くことが可能になるわけですね。
ちなみにmp3の頭のズレを取り除いて曲終わりを比べるとこんな感じこの場合、AACのほうが付加されてる無音が長いですね。
AACはiTunes変換とAudioGate変換でファイル全体の長さや付加される無音の長さも全く一緒で、曲頭には1サンプルたりとも無音は付加されませんでした。
AACに関しても少し調べてみたんですが、英語で書かれてるものが殆どで、細かいとこまでチェックしきれてないですが、こちらは1024サンプル単位(もしくは2048単位?)でのエンコード・デコードで…云々書いてありまして、より高度な計算をしつつもメタデータのやり取りが優秀なのか、こちらのほうがギャップレス再生に向いている設計になってるみたいです。
AACに関しても時間がある時にもっと調べてみます!
なんか書くのに疲れて最後は雑な感じになってしまいましたが(笑)、
PC DJ用のデータでmp3を使う時とかはそんなに問題にならないけど、制作や録音など音楽仕事で使うデータはやはり非圧縮(WAVやAIFF)でやり取りするにこしたことないですね。
録音データをmp3で送る→WAVに変換して取り込む→再度mp3で送る→WAVに変換して取り込む……なんてことを数回繰り返してたらとんでもないことになってきますよ