流行的音频编码标准
?
speech codec (G.711, G.723, G.726, G.729, iLBC)
各種各樣的編解碼在各種領(lǐng)域得到廣泛的應(yīng)用,下面就把各種codec的壓縮率進(jìn)行一下比較,不正確之處望各位同行指正。
Speech codec:
??? 現(xiàn)主要有的speech codec 有: G.711, G.723, G.726 , G.729, ILBC
?????????????????????????????????????????? QCELP, EVRC, AMR, SMV
?? 主要的audio codec 有:
?????????????????????????????? real audio, AAC, AC3, MP3, WMA, SBC等,各種編解碼都有其應(yīng)用的重點(diǎn)領(lǐng)域。
?? 本文主要對speech codec相關(guān)指標(biāo)進(jìn)行總結(jié):
?? ITU 推出G.7XX系列的speech codec, 目前廣泛應(yīng)用的有:G.711,G.723, G.726, G.729. 每一種又有很多分支,如G.729就有g(shù).729A, g.729B and g.729AB
? G.711:
??????????? G.711就是語音模擬信號的一種非線性量化,細(xì)分有二種:G.711 A-law and G.711 u-law.不同的國家和地方都會選取一種作為自己的標(biāo)準(zhǔn). G.711 bitrate 是64kbps. 詳細(xì)的資料可以在ITU 上下到相關(guān)的spec,下面主要列出一些性能參數(shù):
??? G.711(PCM方式:PCM=脈碼調(diào)制 :Pulse Code Modulation)
? 采樣率:8kHz
? 信息量:64kbps/channel
? 理論延遲:0.125msec
? 品質(zhì):MOS值4.10??????????????
?
?G.723.1:
??????? G.723.1是一個雙速率的語音編碼器,是 ITU-T建議的應(yīng)用于低速率多媒體服務(wù)中語音或其它音頻信號的壓縮算法;
其目標(biāo)應(yīng)用系統(tǒng)包括H.323、H.324等多媒體通信系統(tǒng),目前該算法已成為IP電話系統(tǒng)中的必選算法之一;編碼器的幀長為30ms,還有7.5ms的前瞻,編碼器的算法時延為37.5ms;編碼器首先對語音信號進(jìn)行傳統(tǒng)電話帶寬的濾波(基于G.712),再對語音信號用傳統(tǒng)8000-Hz速率進(jìn)行抽樣(基于G.711),并變換成16 bit線性PCM碼作為該編碼器的輸入;
在解碼器中對輸出進(jìn)行逆操作來重構(gòu)語音信號;高速率編碼器使用多脈沖最大似然量化(MP-MLQ),低速率編碼器使用代數(shù)碼激勵線性預(yù)測(ACELP)方法,編碼器和解碼器都必須支持此兩種速率,并能夠在幀間對兩種速率進(jìn)行轉(zhuǎn)換;
此系統(tǒng)同樣能夠?qū)σ魳泛推渌纛l信號進(jìn)行壓縮和解壓縮,但它對語音信號來說是最優(yōu)的;采用了執(zhí)行不連續(xù)傳輸?shù)撵o音壓縮,這就意味著在靜音期間的比特流中加入了人為的噪聲。除了預(yù)留帶寬之外,這種技術(shù)使發(fā)信機(jī)的調(diào)制解調(diào)器保持連續(xù)工作,并且避免了載波信號的時通時斷。
?
G.726:
?????? G.726有四種碼率:, 32, 24, 16 kbit/s Adaptive Differential Pulse Code Modulation (ADPCM),最為常用的方式是 32 kbit/s,但由于其只是 G.711速率的一半,所以可將網(wǎng)絡(luò)的可利用空間增加了一倍。G.726具體規(guī)定了一個 64 kbpsA-law 或 μ-law PCM 信號是如何被轉(zhuǎn)化為40, 32, 24或16 kbps 的 ADPCM 通道的。在這些通道中,24和16 kbps 的通道被用于數(shù)字電路倍增設(shè)備(DCME)中的語音傳輸,而40 kbps 通道則被用于 DCME 中的數(shù)據(jù)解調(diào)信號(尤其是4800 kbps 或更高的調(diào)制解調(diào)器)。
G.726 encoder 輸入一般都是G.711 encoder的輸出:64kbps A-law or u-law.其算法實(shí)質(zhì)就是一個ADPCM, 自適應(yīng)量化算法。????
G.729:
??? G..729語音壓縮編譯碼算法
采用算法是共軛結(jié)構(gòu)的代數(shù)碼激勵線性預(yù)測(CSACELP),是基于CELP編碼模型的算法;能夠?qū)崿F(xiàn)很高的語音質(zhì)量(長話音質(zhì))和很低的算法延世;算法幀長為10ms,編碼器含5ms前瞻,算法時延15ms;其重建語音質(zhì)量在大多數(shù)工作環(huán)境下等同于32kb/s的ADPCM(G.726),MOS分大于4.0;編碼時輸入16bitPCM語音信號,輸出2進(jìn)制比特流;譯碼時輸入為2進(jìn)制比特流,輸出16bitPCM語音信號;在語音信號8KHz取樣的基礎(chǔ)上,16bit線性PCM后進(jìn)行編碼,壓縮后數(shù)據(jù)速率為8Kbps;具有相當(dāng)于16:1的壓縮率。
??? G.729系列在當(dāng)前的VOIP得到廣泛的應(yīng)用,且相關(guān)分支較多,可以直接從ITU網(wǎng)上得到source code 和相關(guān)文檔。
?? G.729(CS-ACELP方式:Conjugate Structure Algebraic Code Excited Linear Prediction)
? 采樣率:8kHz
? 信息量:8kbps/channel
? 幀長:10msec
? 理論延遲:15msec
? 品質(zhì):MOS值3.9
iLBC(internet low bitrate codec):
???????? 是全球著名語音引擎提供商Global IP Sound開發(fā),它是低比特率的編碼解碼器,提供在丟包時具有的強(qiáng)大的健壯性。iLBC 提供的語音音質(zhì)等同于或超過 G.729 和 G.723.1,并比其它低比特率的編碼解碼器更能阻止丟包。iLBC 以13.3 kb/s (每幀30毫秒)和15.2 kb/s (每幀20毫秒)速度運(yùn)行,很適合撥號連接。
???????? iLBC的主要優(yōu)勢在于對丟包的處理能力。iLBC獨(dú)立處理每一個語音包,是一種理想的包交換網(wǎng)絡(luò)語音編解碼。在正常情況下,iLBC會記錄下當(dāng)前數(shù)據(jù)的相關(guān)參數(shù)和激勵信號,以便在之后的數(shù)據(jù)丟失的情況下進(jìn)行處理;在當(dāng)前數(shù)據(jù)接收正常而之前數(shù)據(jù)包丟失的情況下,iLBC會對當(dāng)前解碼出的語音和之前模擬生成的語音進(jìn)行平滑處理,以消除不連貫的感覺;在當(dāng)前數(shù)據(jù)包丟失的情況下,iLBC會對之前記錄下來的激勵信號作相關(guān)處理并與隨機(jī)信號進(jìn)行混合,以得到模擬的激勵信號,從而得到替代丟失語音的模擬語音。總的來說,和標(biāo)準(zhǔn)的低位速率編解碼相比,iLBC使用更多自然、清晰的元素,精確的模仿出原始語音信號,被譽(yù)為更適合包交換網(wǎng)絡(luò)使用的可獲得高語音質(zhì)量的編解碼。
此外,大部分標(biāo)準(zhǔn)的低位速率編解碼,如G.723.1和G.729,僅對300Hz——3400Hz的頻率范圍進(jìn)行編碼。在這個頻率范圍里,用G.711編解碼所達(dá)到的語音質(zhì)量,就是傳統(tǒng)PSTN網(wǎng)絡(luò)進(jìn)行語音通話的效果。
iLBC充分利用了0——4000Hz的頻率帶寬進(jìn)行編碼,擁有超清晰的語音質(zhì)量,這大大超出傳統(tǒng)300Hz——3400Hz的頻率范圍。
廣受歡迎的Skype網(wǎng)絡(luò)電話的核心技術(shù)之一就是iLBC語音編解碼技術(shù),Global IP Sound稱該編碼器語音品質(zhì)優(yōu)于PSTN,而且能忍受高達(dá)30%的封包損失。
總的來說,在相同的包交換通信條件下,iLBC的語音質(zhì)量效果比G.729、G.723.1以及G.711更好,聲音更加圓潤飽滿,且丟包率越高,iLBC在語音質(zhì)量上的優(yōu)勢就越明顯!
目前,在國際市場上已經(jīng)有很多VoIP的設(shè)備和應(yīng)用廠商把iLBC集成到他們的產(chǎn)品中。如:Skype, Nortel等。在國內(nèi)市場上,目前尚無VoIP廠家正式推出支持“iLBC”的網(wǎng)關(guān)設(shè)備,迅時公司 率先推出支持“iLBC”的中繼網(wǎng)關(guān)和IAD設(shè)備。
??????
audio ?codec 通常采用參數(shù)編碼,基本思想是提取speech的特征參數(shù),解碼端由這些特征參數(shù)計算出最后輸出的波形。
speech ?codec 通常采用波形編碼,基本思想是用一個編碼后的波形去擬合原始波形,失真小但帶寬大。
?
?1. 波形編碼
波形編碼是最簡單也是應(yīng)用最早的語音編碼方法。最基本的一種就是PCM編碼,如G.711 建議中的A 律或μ 律。APCM、DPCM和ADPCM也屬于波形編碼的范疇,使用這些技術(shù)的標(biāo)準(zhǔn)有G.721、G.726、G.727 等。波形編碼具有實(shí)施簡單、性能優(yōu)良的特點(diǎn),不足是編碼帶寬往往很難再進(jìn)一步下降。
2. 預(yù)測編碼
語音信號是非平穩(wěn)信號,但在短時間段內(nèi)(一般是30ms)具有平穩(wěn)信號的特點(diǎn),因而對語音信號幅度進(jìn)行預(yù)測編碼是一種很自然的做法。最簡單的預(yù)測是相鄰兩個樣點(diǎn)間求差分,編碼差分信號,如G.721。但更廣為應(yīng)用的是語音信號的線性預(yù)測編碼(LPC)。幾乎所有的基于語音信號產(chǎn)生的全極點(diǎn)模型的參數(shù)編碼器都要用到LPC, 如G.728、G.729、G.723.1 建議。
3. 參數(shù)編碼
參數(shù)編碼是建立在人類語音產(chǎn)生的全極點(diǎn)模型的理論上,參數(shù)編碼器傳輸?shù)木幋a參數(shù)也就是全極點(diǎn)模型的參數(shù)- 基頻、線譜對、增益。對語音來說,參數(shù)編碼器的編碼效率最高,但對音頻信號,參數(shù)編碼器就不太合適。典型的參數(shù)編碼器有LPC- 10、LPC-10E,當(dāng)然,G.729、G.723.1 以及CELP(FS- 1016)等碼
本激勵聲碼器都離不開參數(shù)編碼。
4. 變換編碼
一般認(rèn)為變換編碼在語音信號中作用不是很大,但在音頻信號中它卻是主要的壓縮方法。比如,MPEG 伴音壓縮算法(含著名的MP3) 用到FFT、MDCT 變換,AC- 3 杜比立體聲也用到MDCT,G.722.1建議中采用的MLT 變換。在近年來出現(xiàn)的低速率語音編碼算法中,STC(正弦變換編碼)和WI(波形插值)占有重要的位置,小波變換和Gabor 變換在其中有用武之地。
5. 子帶編碼
子帶編碼一般是同波形編碼結(jié)合使用,如G.722 使用的是SB- ADPCM技術(shù)。但子帶的劃分更多是對頻域系數(shù)的劃分(這可以更好地利用低頻帶比高頻帶感覺重要的特點(diǎn)),故子帶編碼中,往往先要應(yīng)用某種變換方法得到頻域系數(shù),在G.722.1 中使用MLT 變換,系數(shù)劃分為16 個子帶;MPEG 伴音中用FFT 或MDCT 變換,劃分的子帶多達(dá)32 個。
6. 統(tǒng)計編碼
統(tǒng)計編碼在圖像編碼中大量應(yīng)用,但在語音編碼中出于對編碼器整體性能的考慮(變長編碼易引起誤碼擴(kuò)散),很少使用。對存在統(tǒng)計冗余的信號來說,統(tǒng)計編碼確實(shí)可以大大提高編碼的效率,所以,近年來出現(xiàn)的音頻編碼算法中,統(tǒng)計編碼又重新得到了重視。MPEG 伴音和G.722.1 建議中采納了哈夫曼變長編碼
?????
更多資料你鏈接:
www.itu.int
http://www.ilbcfreeware.org/documentation.html#presentations
http://itbbs-arch.pconline.com.cn/topic.jsp?tid=2648071
http://bbs.sdgb.cn/ShowThread.aspx?PostID=11843
http://en.wikipedia.org/wiki/G.726
http://www.itu.int/rec/T-REC-G.726/e
總結(jié)
- 上一篇: nylon尼龙的来历
- 下一篇: fread函数和fwrite函数,rea