MP3基本概念及MP3的頭信息


MP3 的全稱為MPEG1 Layer-3 音頻文件

每幀采樣數(幀時間戳):

我們首先區分兩個術語:幀大小和幀長度。幀大小即每幀采樣數表示一幀中采樣的個數,這是恆定值。其值如下表所示

 

MPEG 1

MPEG 2 (LSF)

MPEG 2.5 (LSF)

Layer I

384

384

384

Layer II

1152

1152

1152

Layer III

1152

576

576

  

 

采樣率(單位:Hz),2 bits

每秒采集信息的次數,例如:44100Hz, 每秒取44100次,每1/44100秒取一次(計算一次音頻振幅的位置)

bits

MPEG1

MPEG2

MPEG2.5

00

44100

22050

11025

01

48000

24000

12000

10

32000

16000

8000

11

保留

 

 

 

比特率(單位:Kbps)

索引值

MPEG 1

MPEG 2, 2.5 (LSF)

Layer I

Layer II

Layer III

Layer I

Layer II & III

0000

Free

0001

32

32

32

32

8

0010

64

48

40

48

16

0011

96

56

48

56

24

0100

128

64

56

64

32

0101

160

80

64

80

40

0110

192

96

80

96

48

0111

224

112

96

112

56

1000

256

128

112

128

64

1001

288

160

128

144

80

1010

320

192

160

160

96

1011

352

224

192

176

112

1100

384

256

224

192

128

1101

416

320

256

224

144

1110

448

384

320

256

160

1111

Bad

Free表示空閑,如果固定比特率(這種文件不能變換比特率)和上表定義的不同,應該有應用程序決定。這種情況的實現應該只用於內部目的因為第三方應用程序是沒有辦法找出正確比特率的。但是這么做並不是很重要況且還浪費精力。

Bad表示該值無效。

 

 

幀長:

LyaerI使用公式:

幀長度(字節) = (( 每幀采樣數 / 8 * 比特率 ) / 采樣頻率 ) + 填充 * 4

LyerII和LyaerIII使用公式:

幀長度(字節)= (( 每幀采樣數 / 8 * 比特率 ) / 采樣頻率 ) + 填充

例: LayerIII 比特率 128000,采樣頻率 44100,填充0 =〉幀大小 417字節

MPEG1                                                   MPEG2

1152                                                     576

最大幀長:144*320/32 = 1440         最大幀長:72*160/22.05=522.45

最小幀長:144*32/44.1=104.49        最小幀長:72*8/16=36

 

每幀持續時間(單位:毫秒) :

每幀持續時間(ms) = 每幀采樣數 / 采樣頻率 * 1000

MPEG1 Layer III 采樣率為44.1KHz,一幀持續時間為26.12...不是整數,約等於 26ms。

MPEG2 Layer III 采樣率為16KHz,    一幀持續時間為72ms.

 

1152/44.1=26.12ms

1152/48=24ms

1152/32=36ms

 

576/22.05=26.12ms

576/24=24ms

576/16=36ms

 

幀頻 (單位:HZ):

幀頻 = 采樣頻率 / 每幀采樣數

采樣率為44.1KHz,幀頻38.12幀/s。

MPEG2 Layer III 采樣率為16KHz,    一幀持續時間為72ms.

44100/1152=38.28125

48000/1152=41.67

32000/1152=27.78

 

22050/576=38.28125

24000/576=41.67

16000/576=27.78

 

 

 

LayerIII

MPEG 1

MPEG 2 (LSF)

比特率Kbps

 

 

0000

Free

0001

32

8

0010

40

16

0011

48

24

0100

56

32

0101

64

40

0110

80

48

0111

96

56

1000

112

64

1001

128

80

1010

160

96

1011

192

112

1100

224

128

1101

256

144

1110

320

160

1111

Bad

每幀采樣數Hz

 

 

 

1152

576

采樣頻率Hz

 

 

00

44100

22050

01

48000

24000

10

32000

16000

11

保留

 

 

 

MP3頭結構:

AAAAAAAA    AAA  BB CC D    EEEE  FFGH    II JJ K L MM

11111111    111  11 00 0    1000  0001    00 00 1 1 00

11111111    111  11 01 0    1001  0001    00 00 1 1 00

11111111    111  11 01 1    1111  0001    00 00 1 1 00

 

符號i

長度(bits)

位置(bits)

描述

例子

A

11

(31-21)

幀同步(所有位置1)

&0xFFF2 11位同步+MPEG2

&0xFFFA 11位同步+MPEG1

1111 1111 111

B

2

(20,19)

MPEG 音頻版本ID

00 – MPEG 2.5 01 – 保留

10 – MPEG 2 (ISO/IEC 13818-3)

11 – MPEG 1 (ISO/IEC 11172-3)

注:MPEG 2.5不是官方標准。幀頭第20個比特用來表示2.5版本。不支持該版本的應用程序一般認為該比特位置位為幀同步位,也就是說幀同步(A)的長度為12而不是這里規定的11,這樣B也就變成了1位(第19個位)。推薦使用該表的方法因為這樣允許你可以區分三個版本以獲得最高兼容性。

11


C

2

(18,17)

Layer描述

00 - 保留

01 - Layer III

10 - Layer II

11 - Layer I

01

D

1

(16)

校驗位 0 - 緊跟幀頭后有16位即2個字節用作CRC校驗

1 - 沒有校驗

1

E

4

(15,12)

位率索引

索引值

MPEG 1

MPEG 2, 2.5 (LSF)

 

Layer I

Layer II

Layer III

Layer I

Layer II & III

0000

Free

 

0001

32

32

32

32

8

0010

64

48

40

48

16

0011

96

56

48

56

24

0100

128

64

56

64

32

0101

160

80

64

80

40

0110

192

96

80

96

48

0111

224

112

96

112

56

1000

256

128

112

128

64

1001

288

160

128

144

80

1010

320

192

160

160

96

1011

352

224

192

176

112

1100

384

256

224

192

128

1101

416

320

256

224

144

1110

448

384

320

256

160

1111

Bad

 

             

注:所有值單位為kbps,而且1kbit=1000bit而不是1024bit

Free表示空閑,如果固定比特率(這種文件不能變換比特率)和上表定義的不同,應該有應用程序決定。這種情況的實現應該只用於內部目的因為第三方應用程序是沒有辦法找出正確比特率的。但是這么做並不是很重要況且還浪費精力。

Bad表示該值無效。 MPEG文件可以有VBR。表示文件的比特率可以變化。我已經知道了兩種慣用方法: 比特率變換(bitrate switching):每一幀都創建成不同的比特率。可以應用在任何層。LayerIII解碼器必須支持該方法。LayerI和LayerII也可以支持。 比特池(bit reservoir):比特率可以使從前面的幀中借來的(受限),以便騰出空間來容納輸入信號部分。然而這樣就導致各幀之間不再相互獨立,意味着不能隨便分割文件。這種方法只有LayerIII支持。 LyaerII中有一些不被允許比特率組合和模式。下表是允許的組合。

bitrate

allowed modes

free

all

32

single channel

48

single channel

56

single channel

64

all

80

single channel

96

all

112

all

128

all

160

all

192

all

224

stereo, intensity stereo, dual channel

256

stereo, intensity stereo, dual channel

320

stereo, intensity stereo, dual channel

384

stereo, intensity stereo, dual channel

1001


F

2

(11,10)

采樣頻率(單位:Hz)

bits

MPEG1

MPEG2

MPEG2.5

00

44100

22050

11025

01

48000

24000

12000

10

32000

16000

8000

11

保留

11

G

1

(9)

填充位 0 – 沒有填充

1 – 填充了一個額外的空位 填充用來達到正確的比特率。

例如:128k 44.1kHz LayerII使用了很多418bit或417bit長的幀來達到正確的128k比特率。LyaerI的空位有32bit長,LayerII和LayerIII的空位有8bit長。

0

H

1

(8)

私有bit,可以用來做特殊應用。例如可以用來觸發應用程序的特殊事件。

1

I

2

(7,6)

聲道 00 立體聲 01 聯合立體聲(立體聲) 10 雙聲道(立體聲) 11 單聲道(單聲)

注:雙聲道文件由二個獨立的單聲道組成。 每一個聲道使用整個文件一半的位率。大多數的解碼器把它當作立體聲來輸出,但是它並不總是這種情況。按我的理解就是是兩個聲道的信息是完全相同的,並不能把它當作立體聲看待。

01

J

2

(5,4)

擴展模式(僅在聯合立體聲時有效) 擴展模式用來連接對立體聲效果無用的信息,來減少所需的資源。這兩個位在聯合立體聲模式下有編碼器動態指定。 完整的MPEG文件的頻率序列分成有32個子帶。在LayerI和LayerII中這兩個位確定強度立體聲應用的頻帶。 LayerIII中這兩個位確定應用了哪一種聯合立體聲(M/S stereo或者Intensity stereo)頻帶由解壓算法決定。

Layer I & II

Layer III

M/S stereo

Intensity stereo

00

bands 4 to 31

off

off

01

bands 8 to 31

off

on

10

bands 12 to 31

on

off

11

bands 16 to 31

on

on

00

K

1

(3)

版權

0無版權

1有版權

1

L

1

(2)

原創

0 原創拷貝

1 原創

1

M

2

(1,0)

強調

00 - 無

01 - 50/15 ms

10 - 保留 11 - CCIT J.17

00

 

文檔:

http://mpgedit.org/mpgedit/mpeg_format/mpeghdr.htm

http://www.mp3-tech.org/

https://tools.ietf.org/html/rfc2250

https://tools.ietf.org/html/rfc1889

https://tools.ietf.org/html/rfc2038

https://tools.ietf.org/html/rfc3119

https://www.codeproject.com/Articles/8295/MPEG-Audio-Frame-Header

https://blog.csdn.net/yu_yuan_1314/article/details/9112509

https://blog.csdn.net/cpq37/article/details/11213323

https://www.datavoyage.com/mpgscript/mpeghdr.htm

https://id3.org/mp3Frame

http://www.mp3-tech.org/tests/wma9/index.html MP3樣例下載

https://blog.csdn.net/houxiaoni01/article/details/78810674

http://wiki.hydrogenaud.io/index.php?title=MP3


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM