2009年3月26日 星期四

語音壓縮技術Why 選有 iLBC codec 的機器

各種各樣的編解碼在各種領域得到廣泛的應用,下面就把各種codec的壓縮率進行一下比較,不正確之處望各位同行指正。
Speech codec:
現主要有的speech codec 有: G.711, G.723, G.726 , G.729, ILBC
QCELP, EVRC, AMR, SMV

主要的audio codec 有:
real audio, AAC, AC3, MP3, WMA, SBC等,各種編解碼都有其應用的重點領域。

本文主要對speech codec相關指標進行總結:
ITU 推出G.7XX系列的speech codec, 目前廣泛應用的有:G.711,G.723, G.726, G.729. 每一種又有很多分支,如G.729就有g.729A, g.729B and g.729AB

G.711:
G.711就是語音模擬信號的一種非線性量化,細分有二種:G.711 A-law and G.711 u-law.不同的國家和地方都會選取一種作為自己的標準. G.711 bitrate 是64kbps. 詳細的資料可以在ITU 上下到相關的spec,下面主要列出一些性能參數:
G.711(PCM方式:PCM=脈碼調製 :Pulse Code Modulation)
• 採樣率:8kHz
• 信息量:64kbps/channel
• 理論延遲:0.125msec
• 品質:MOS值4.10

G.723.1:
G.723.1是一個雙速率的語音編碼器,是 ITU-T建議的應用於低速率多媒體服務中語音或其它音頻信號的壓縮算法;
其目標應用系統包括H.323、H.324等多媒體通信系統,目前該算法已成為IP電話系統中的必選算法之一;編碼器的幀長為30ms,還有7.5ms的 前瞻,編碼器的算法時延為37.5ms;編碼器首先對語音信號進行傳統電話帶寬的濾波(基於G.712),再對語音信號用傳統8000-Hz速率進行抽樣 (基於G.711),並變換成16 bit線性PCM碼作為該編碼器的輸入;
在解碼器中對輸出進行逆操作來重構語音信號;高速率編碼器使用多脈衝最大似然量化(MP-MLQ),低速率編碼器使用代數碼激勵線性預測(ACELP)方法,編碼器和解碼器都必須支持此兩種速率,並能夠在幀間對兩種速率進行轉換;
此系統同樣能夠對音樂和其他音頻信號進行壓縮和解壓縮,但它對語音信號來說是最優的;採用了執行不連續傳輸的靜音壓縮,這就意味著在靜音期間的比特流中加入了人為的噪聲。除了預留帶寬之外,這種技術使發信機的調制解調器保持連續工作,並且避免了載波信號的時通時斷。

G.726:
G.726有四種碼率:, 32, 24, 16 kbit/s Adaptive Differential Pulse Code Modulation (ADPCM),最為常用的方式是 32 kbit/s,但由於其只是 G.711速率的一半,所以可將網絡的可利用空間增加了一倍。G.726具體規定了一個 64 kbpsA-law 或 µ-law PCM 信號是如何被轉化為40, 32, 24或16 kbps 的 ADPCM 通道的。在這些通道中,24和16 kbps 的通道被用於數字電路倍增設備(DCME)中的語音傳輸,而40 kbps 通道則被用於 DCME 中的數據解調信號(尤其是4800 kbps 或更高的調制解調器)。
G.726 encoder 輸入一般都是G.711 encoder的輸出:64kbps A-law or u-law.其算法實質就是一個ADPCM, 自適應量化算法。

G.729:
G..729語音壓縮編譯碼算法
採用算法是共軛結構的代數碼激勵線性預測(CSACELP),是基於CELP編碼模型的算法;能夠實現很高的語音質量(長話音質)和很低的算法延世;算法 幀長為10ms,編碼器含5ms前瞻,算法時延15ms;其重建語音質量在大多數工作環境下等同於32kb/s的ADPCM(G.726),MOS分大於 4.0;編碼時輸入16bitPCM語音信號,輸出2進制比特流;譯碼時輸入為2進制比特流,輸出16bitPCM語音信號;在語音信號8KHz取樣的基 礎上,16bit線性PCM後進行編碼,壓縮後數據速率為8Kbps;具有相當於16:1的壓縮率。
G.729系列在當前的VOIP得到廣泛的應用,且相關分支較多,可以直接從ITU網上得到source code 和相關文檔。
G.729(CS-ACELP方式:Conjugate Structure Algebraic Code Excited Linear Prediction)
• 採樣率:8kHz
• 信息量:8kbps/channel
• 幀長:10msec
• 理論延遲:15msec
• 品質:MOS值3.9

iLBC(internet low bitrate codec):
是全球著名語音引擎提供商Global IP Sound開發,它是低比特率的編碼解碼器,提供在丟包時具有的強大的健壯性。iLBC 提供的語音音質等同於或超過 G.729 和 G.723.1,並比其它低比特率的編碼解碼器更能阻止丟包。iLBC 以13.3 kb/s (每幀30毫秒)和15.2 kb/s (每幀20毫秒)速度運行,很適合撥號連接。
iLBC的主要優勢在於對丟包的處理能力。iLBC獨立處理每一個語音包,是一種理想的包交換網絡語音編解碼。在正常情況下,iLBC會記錄下當前數據的 相關參數和激勵信號,以便在之後的數據丟失的情況下進行處理;在當前數據接收正常而之前數據包丟失的情況下,iLBC會對當前解碼出的語音和之前模擬生成 的語音進行平滑處理,以消除不連貫的感覺;在當前數據包丟失的情況下,iLBC會對之前記錄下來的激勵信號作相關處理並與隨機信號進行混合,以得到模擬的 激勵信號,從而得到替代丟失語音的模擬語音。總的來說,和標準的低位速率編解碼相比,iLBC使用更多自然、清晰的元素,精確的模仿出原始語音信號,被譽 為更適合包交換網絡使用的可獲得高語音質量的編解碼。
此外,大部分標準的低位速率編解碼,如G.723.1和G.729,僅對300Hz——3400Hz的頻率範圍進行編碼。在這個頻率範圍裡,用G.711編解碼所達到的語音質量,就是傳統PSTN網絡進行語音通話的效果。
iLBC充分利用了0——4000Hz的頻率帶寬進行編碼,擁有超清晰的語音質量,這大大超出傳統300Hz——3400Hz的頻率範圍。
廣受歡迎的Skype網絡電話的核心技術之一就是iLBC語音編解碼技術,Global IP Sound稱該編碼器語音品質優於PSTN,而且能忍受高達30%的封包損失。
總的來說,在相同的包交換通信條件下,iLBC的語音質量效果比G.729、G.723.1以及G.711更好,聲音更加圓潤飽滿,且丟包率越高,iLBC在語音質量上的優勢就越明顯!
目前,在國際市場上已經有很多VoIP的設備和應用廠商把iLBC集成到他們的產品中。如:Skype, Nortel等。在國內市場上,目前尚無VoIP廠家正式推出支持「iLBC」的網關設備,迅時公司 率先推出支持「iLBC」的中繼網關和IAD設備。

更多資料你鏈接:
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

---
sorce
http://hi.baidu.com/myyiqiu/blog/item/be7c55f0e36cacc47931aaf1.html