国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
AMR文件格式分析
    最近在傳輸手機(jī)錄音時,遇到了AMR編碼的問題,開始以為可以任意截斷amr文件,加個文件頭就可以播放的,后來發(fā)現(xiàn)是有問題,這樣得到的amr音頻有些不能正常播放,后來參看amr格式后,才知道amr文件是一幀一幀的,如果是按照完整的幀前面添加文件頭,就沒問題了,下面是參考的一篇文章:

原文地址:http://blog.csdn.net/dinggo/archive/2007/12/25/1966444.aspx

目錄
1.   概述
2.   AMR編碼方式
3.   AMR文件結(jié)構(gòu)示范圖
4.   AMR幀頭格式分析
5.   異常幀分析
6.   AMR幀讀取算法
7.   參考資料

1.     概述

現(xiàn)在很多智能手機(jī)都支持多媒體功能,特別是音頻和視頻播放功能,而AMR文件格式是手機(jī)端普遍支持的音頻文件格式。

 

AMR,全稱是:AdaptiveMulti-Rate,自適應(yīng)多速率,是一種音頻編碼文件格式,專用于有效地壓縮語音頻率。

 

AMR音頻主要用于移動設(shè)備的音頻壓縮,壓縮比非常高,但是音質(zhì)比較差,主要用于語音類的音頻壓縮,不適合對音質(zhì)要求較高的音樂類音頻的壓縮。

 

下面是兩個AMR示范文件,一個是新聞類,一個是歌曲,可以聽出來,音樂類壓縮成AMR格式后,音質(zhì)大大降低。

編號

文件名

文件長度

時長

1

h.amr             (歌曲)

409KB

04:21

2

zbc1217.amr

242KB

02:36

 

 


2.       AMR編碼方式

AMR有多種編碼方式,每種編碼方式的采樣頻率不同:

 

 

規(guī)格

比特率(kbps

音頻幀大?。ㄗ止?jié))

幀頭(字節(jié))

FT

0

AMR4.75

 

13

0400000100

0000

1

AMR5.15

 

14

0C 00001100

0001

2

AMR5.9

 

16

1400010100

0010

3

AMR6.7

 

18

1C 00011100

0011

4

AMR7.4

 

20

2400100100

0100

5

AMR7.95

 

21

2C 00101100

0101

6

AMR10.2

 

27

3400110100

0110

7

AMR12.2

 

32

3C 00111100

0111

 

說明:

l        比特率是指將數(shù)字聲音由模擬格式轉(zhuǎn)化成數(shù)字格式的采樣率,采樣率越高,還原后的音質(zhì)就越好。

 

l        比特率值與現(xiàn)實音頻對照:

16kbps=電話音質(zhì)

24kbps=增加電話音質(zhì)、短波廣播、長波廣播、歐洲制式中波廣播

40kbps=美國制式中波廣播

56kbps=話音

64kbps=增加話音(手機(jī)鈴聲最佳比特率設(shè)定值、手機(jī)單聲道MP3播放器最佳設(shè)定值)

112kbps=FM調(diào)頻立體聲廣播

128kbps=磁帶(手機(jī)立體聲MP3播放器最佳設(shè)定值、低檔MP3播放器最佳設(shè)定值)

160kbps=HIFI高保真(中高檔MP3播放器最佳設(shè)定值)

192kbps=CD(高檔MP3播放器最佳設(shè)定值)

256kbps=Studio音樂工作室(音樂發(fā)燒友適用)

 

l        音頻數(shù)據(jù)幀大小的計算:

amr 一幀對應(yīng)20ms,那么一秒有50幀的音頻數(shù)據(jù)。由于比特率不同,每幀的數(shù)據(jù)大小也不同。

如果比特率是12.2kbs,那么每秒采樣的音頻數(shù)據(jù)位數(shù)為:

12200 /50 = 244bit = 30.5byte,取整為31字節(jié)。

取整要四舍五入。

再加上一個字節(jié)的幀頭,這樣數(shù)據(jù)幀的大小為32字節(jié)。

 


3.     AMR文件結(jié)構(gòu)示范圖

下面是一個AMR文件示范:

 

 

 

 

從圖中可以看出,所有AMR文件頭標(biāo)志是6個字節(jié)。(最后一個字節(jié)是換行符“\n”)

后面就緊跟的是音頻幀。這個文件是每幀32字節(jié)。

 

文件頭

語音幀 1

語音幀 2

 

 


4.     AMR幀頭格式分析

AMR語音幀格式為幀頭和語音數(shù)據(jù)組成。

幀頭

語音數(shù)據(jù)

 

AMR語音幀頭占1個字節(jié),如下圖所示:

0

1

2

3

4

5

6

7

P

FT

Q

P

P

0

 

 

 

 

0

0

0

 

其中:

P =0;

FTFrame Type,對應(yīng)不同編碼模式。(參見“2. AMR編碼方式”中表格中的說明)

Q:幀質(zhì)量指示器,0:表示為壞幀。

后面的P補(bǔ)0。

 


5.     異常幀分析

下圖是一個出現(xiàn)異常幀的示例:(zbc1217.amr

 

 

 

 

從上圖可以看見,本amr音頻幀頭都是0x3C,但是在0x000091e6處,幀頭字節(jié)為0x44。與0x3C不一致。而在0x00009243處,才恢復(fù)到0x3C

 

對異常幀的簡單處理辦法是,遇到異常幀就跳過異常幀。后面的讀幀算法有描述。

 


6.     AMR幀讀取算法

因為可能存在異常幀,所以不一定所有的語音幀大小一致,對于跟正常幀大小不一致的,或者幀頭跟正常幀頭不一致的,就不交給解碼器,直接拋棄該壞幀。

 

讀取幀的算法,用C語言來編寫,readAMRFrame.c,JAVA可以用類似的方法。

下面是算法描述流程圖。

 

 

 



7.     參考資料

l        rfc3267

http://www.rfc-editor.org/rfc/rfc3267.txt

http://ietfreport.isoc.org/rfc/PDF/rfc3267.pdf

l        3GPP TS 26.104 V 6.1.0(2004-03)

http://www.3gpp.org/ftp/Specs/html-info/26104-CRs.htm

l        3GPP AMR Floating-point SpeechCodec

http://www.3gpp.org/ftp/Specs/html-info/26104.htm

l        amr編程匯總”

http://blog.csdn.net/windcao/archive/2006/01/04/570348.aspx

l        關(guān)于AMR文件格式的解釋

http://www.mcublog.com/blog/user1/11409/archives/2006/16832.html

l         


本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
優(yōu)酷視頻網(wǎng)優(yōu)酷網(wǎng)上傳高清視頻的辦法 - xieqingli63 - 博客大巴
AMR 文件解析及編解碼流程
語音編碼演進(jìn)與EVS(增強(qiáng)型語音服務(wù))
詳解SoundStream:一款端到端的神經(jīng)音頻編解碼器
SoundStream:端到端神經(jīng)音頻編解碼器
手機(jī)鈴聲格式
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服