web-dev-qa-db-ja.com

MP3ビットレートが通常32の倍数であるのはなぜですか? (2の累乗)

2の倍数がバイナリの性質のためにコンピュータに頻繁に表示される理由は理解していますが、最も一般的なmp3ビットレート(64kbps、128kbps、160kbps、192kbps、256kbps、320kbpsなど)を理解できませんでした。このルールにも従う傾向があります。

  • MP3は音波の単なるシーケンシャルエンコーディングであるため、毎秒が2で割り切れるキロビット数で表されることが重要なのはなぜですか。
  • ITunesのような音楽プレーヤーは、2番目の境界がどこにあるかに関係なく、ファイルを読み取り、エンコードされたサウンドを再生し続けるのでしょうか、それともファイルを1秒ごとに読み取るのでしょうか。
  • 後者の場合、256kbpsファイルを読み取るには、257kbpsファイルよりもメモリ内のページをわずかに少なく読み取る必要がありますが、プレーヤーは、ビットレートに関係なく、常に256キロビットのチャンクで読み取り、徐々に処理することができます。
  • これが一般的に受け入れられているビットレートであるという理由だけで128kbpsのMP3は人気がありますか、それともveryのわずかな違いを除いて、126kbpsおよび131kbpsのファイルよりも実際にいくつかの利点がありますか?品質/ファイルサイズで?
6

固定ビットレートエンコーディング(CBR)の場合、 MPEG-1 Audio Layer III標準 は32、40、48、56、64、80、96、112、128、160、192の標準ビットレートを指定します、224、256、および320 kbit/s。 MPEG-2標準で定義されているものは他にもありますが、それらはすべて2の倍数です(実際には、8〜160の範囲の8の倍数です。上記のリンクの「ビットレートインデックス」というラベルの付いた表を参照してください)。

技術的には、MP3のビットレートを2の倍数に制限するものはありません。可変ビットレートエンコーディングを使用したり、MPEG仕様の未使用フラグの一部を使用してカスタムビットレートを実装したりできます(ただし、これを実装する必要があります)。手動で)。 MP3がMPEG仕様に準拠し、ほとんどのMP3デコーダーと互換性があるためには、仕様に従って定義されたビットレートが必要です。したがって、CBRでエンコードされたすべてのMP3ファイルのビットレートは次の倍数になります。二。

リソースによると、VBRは、フレームごとの固定レートを超えるビットレートを切り替えることでエンコードするか、隣接するフレームで使用可能なビットを共有することでエンコードできます(2つの結合されたフレームの非標準ビットレートを効果的に生成します) 。特定のフレームの長さはサンプリングレートに依存し、フレームあたり1152サンプルです。フレーム自体のサイズを制限するものはなく、フレームを2進数のサイズにするための制限もありません(つまり、サンプリングレートが44.1kHzの128kbit/s MP3のフレームサイズは417バイトになります)。 。


最後に、126 kbpsでエンコードされたファイルは、128 kbpsのファイルよりも音質が悪く、同様に、131kbpsのファイルの方が音質が良くなります。 ただし、MP3は、特定のエンコーダーの圧縮心理音響モデルに従ってエンコードされます。特定のビットレートでファイルが「良く」または「悪く」聞こえる量は、モデルの実装に使用されるアルゴリズムに大きく依存します。ただし、一般に、ビットレートが高いほど、より多くのデータが可能になり、おそらく元のストリームのより正確なストリームが再構築されます。オーディオ信号。

8
Breakthrough

MPEG 1 Layer-III(mp3)ファイルはフレームのストリームです。

このWebページ eはフレームのデータ構造を詳しく説明します。

ご覧のとおり、ビットレートを決定するために4ビットのみが割り当てられました。リアルタイムでストリーミングされることを意図したもののフォーマットを設計するときは、ストリームについて説明する必要があるよりも多くのスペースを無駄にしたくありません。

4ビットが消費スペースと「ビットレート解像度」の間の適切なトレードオフであると判断された理由は正確にはわかりません。選択された特定のレートに関しては、エンジニアが許容できる最低および最高の品質範囲であると判断したものに従って選択された可能性があります。 mp3アルゴリズム。

ほとんどのMP3プレーヤーは、一度に1フレームずつ読み取りを行っている可能性があり、現在のフレームがデコード/再生されている間、少なくとも1フレーム先をバッファリングしようとしている可能性があります。

フレームのサイズ、およびおそらくそれを保持するために割り当てられたRAM)は次のとおりです。

  • _FrameSize = 144 * BitRate / SampleRate_パディングビットがクリアされたとき。
  • FrameSize = (144 * BitRate / SampleRate) + 1パディングビットが設定されている場合。

より高いビットレート/サンプルレート=より多くRAM必要です。

128Kbpsは、多くのエンコーダーのデフォルト設定であるため、おそらく人気があります。

また、同僚がディスカッション中にこれについていくつかの洞察を与えてくれました。128Kbpsは、大まかに「1分をメグ」に変換します(ただし、検証はされていません)。これも関係がある可能性があります。

1
LawrenceC

「生の」データを記録するとき、データはバッファリングのためにブロックに分割されます。これらのブロックは明らかに2の累乗になります。 1秒あたりのブロック数が整数の場合、概念的には最も単純です。

0
Daniel R Hicks