流行的音頻編碼標準

?

speech codec (G.711, G.723, G.726, G.729, iLBC)
各種各樣的編解碼在各種領域得到廣泛的應用,下面就把各種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設備。

??????

audio ?codec 通常采用參數編碼,基本思想是提取speech的特征參數,解碼端由這些特征參數計算出最后輸出的波形。

speech ?codec 通常采用波形編碼,基本思想是用一個編碼后的波形去擬合原始波形,失真小但帶寬大。

?

?1. 波形編碼
波形編碼是最簡單也是應用最早的語音編碼方法。最基本的一種就是PCM編碼,如G.711 建議中的A 律或μ 律。APCM、DPCM和ADPCM也屬于波形編碼的范疇,使用這些技術的標準有G.721、G.726、G.727 等。波形編碼具有實施簡單、性能優良的特點,不足是編碼帶寬往往很難再進一步下降。
2. 預測編碼
語音信號是非平穩信號,但在短時間段內(一般是30ms)具有平穩信號的特點,因而對語音信號幅度進行預測編碼是一種很自然的做法。最簡單的預測是相鄰兩個樣點間求差分,編碼差分信號,如G.721。但更廣為應用的是語音信號的線性預測編碼(LPC)。幾乎所有的基于語音信號產生的全極點模型的參數編碼器都要用到LPC, 如G.728、G.729、G.723.1 建議。
3. 參數編碼
參數編碼是建立在人類語音產生的全極點模型的理論上,參數編碼器傳輸的編碼參數也就是全極點模型的參數- 基頻、線譜對、增益。對語音來說,參數編碼器的編碼效率最高,但對音頻信號,參數編碼器就不太合適。典型的參數編碼器有LPC- 10、LPC-10E,當然,G.729、G.723.1 以及CELP(FS- 1016)等碼
本激勵聲碼器都離不開參數編碼。
4. 變換編碼
一般認為變換編碼在語音信號中作用不是很大,但在音頻信號中它卻是主要的壓縮方法。比如,MPEG 伴音壓縮算法(含著名的MP3) 用到FFT、MDCT 變換,AC- 3 杜比立體聲也用到MDCT,G.722.1建議中采用的MLT 變換。在近年來出現的低速率語音編碼算法中,STC(正弦變換編碼)和WI(波形插值)占有重要的位置,小波變換和Gabor 變換在其中有用武之地。
5. 子帶編碼
子帶編碼一般是同波形編碼結合使用,如G.722 使用的是SB- ADPCM技術。但子帶的劃分更多是對頻域系數的劃分(這可以更好地利用低頻帶比高頻帶感覺重要的特點),故子帶編碼中,往往先要應用某種變換方法得到頻域系數,在G.722.1 中使用MLT 變換,系數劃分為16 個子帶;MPEG 伴音中用FFT 或MDCT 變換,劃分的子帶多達32 個。
6. 統計編碼
統計編碼在圖像編碼中大量應用,但在語音編碼中出于對編碼器整體性能的考慮(變長編碼易引起誤碼擴散),很少使用。對存在統計冗余的信號來說,統計編碼確實可以大大提高編碼的效率,所以,近年來出現的音頻編碼算法中,統計編碼又重新得到了重視。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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/254184.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/254184.shtml
英文地址,請注明出處:http://en.pswp.cn/news/254184.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【angularjs】使用angular搭建項目,pc端實現網頁中的內容不可復制

實現目標&#xff1a;不可復制頁面內容 js:          <script language"javascript"> if (typeof(document.onselectstart) ! "undefined") { // IE下禁止元素被選取 document.onselectstart function (event){if(event.targe…

DIV+CSS如何讓文字垂直居中?

在說到這個問題的時候&#xff0c;也許有人會問CSS中不是有vertical-align屬性來設置垂直居中的嗎&#xff1f;即使是某些瀏覽器不支持我只需做少許的CSS Hack技術就可以啊&#xff01;所以在這里我還要啰嗦兩句&#xff0c;CSS中的確是有vertical-align屬性&#xff0c;但是它…

Segments POJ 3304 直線與線段是否相交

題目大意&#xff1a;給出n條線段&#xff0c;問是否存在一條直線&#xff0c;使得n條線段在直線上的投影有至少一個公共點。 題目思路:如果假設成立&#xff0c;那么作該直線的垂線l&#xff0c;該垂線l與所有線段相交&#xff0c;且交點可為線段中的某兩個交點 證明&#xff…

Linux Socket編程(不限Linux)

“一切皆Socket&#xff01;” 話雖些許夸張&#xff0c;但是事實也是&#xff0c;現在的網絡編程幾乎都是用的socket。 ——有感于實際編程和開源項目研究。 我們深諳信息交流的價值&#xff0c;那網絡中進程之間如何通信&#xff0c;如我們每天打開瀏覽器瀏覽網頁時&#xff…

shell之計算文本中單詞出現頻率

2019獨角獸企業重金招聘Python工程師標準>>> Word Frequency&#xff08;https://leetcode.com/problems/word-frequency/description/&#xff09; Example: Assume that words.txt has the following content: the day is sunny the the the sunny is is Your scr…

一個halcon擬合直線的例子

read_image (hImage, E:/vs2012/halcon卡尺例程/白光碗光效果4.bmp) get_image_pointer1(hImage, Pointer, Type, Width, Height) *功能&#xff1a;獲取一個通道的指針&#xff0c;得到HTuple Pointer, Type, CurWidth, CurHeight dev_set_draw(margin) dev_set_color (green…

NLP數據挖掘基礎知識

Basis(基礎)&#xff1a; SSE(Sum of Squared Error, 平方誤差和)SAE(Sum of Absolute Error, 絕對誤差和)SRE(Sum of Relative Error, 相對誤差和)MSE(Mean Squared Error, 均方誤差)RMSE(Root Mean Squared Error, 均方根誤差)RRSE(Root Relative Squared Error, 相對平方根誤…

SQL Fundamentals || Oracle SQL語言

對于SQL語言&#xff0c;有兩個組成部分&#xff1a; DML&#xff08;data manipulation language&#xff09; 它們是SELECT、UPDATE、INSERT、DELETE&#xff0c;就象它的名字一樣&#xff0c;這4條命令是用來對數據庫里的數據進行操作的語言。 DDL&#xff08;data defini…

圓形卡尺測量后創建模板

read_image (Image, QQ圖片20201113111404.jpg) dev_close_window () dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle) dev_display (Image) rgb1_to_gray (Image,Image) ****創建模板階段 *大致找內圓 fast_threshold (Image, Region, 128, 255, 20) connecti…

fread函數和fwrite函數,read,write

fread函數和fwrite函數 1.函數功能 用來讀寫一個數據塊。 2.一般調用形式 fread(buffer,size,count,fp); fwrite(buffer,size,count,fp); 3.說明 &#xff08;1&#xff09;buffer&#xff1a;是一個指針&#xff0c;對fread來說&#xff0c;它是讀入數據的存放地址。對fwrit…

微信小程序 CSS filter(濾鏡)的使用示例

前言 之前在看七月老師的視頻的時候&#xff0c;看到了有一個樣式是-webkit-filter&#xff0c;不知道是什么&#xff08;我沒咋學過CSS&#xff0c;嘿嘿&#xff0c;所以不知道是啥&#xff09;&#xff0c;于是查了一下&#xff0c;原來是濾鏡吖。但是在微信小程序里使用的時…

vmware ubuntu重置root密碼

1.重啟ubuntu&#xff0c;按住shift&#xff08;開機啟動時&#xff09; 2.選擇recovery mode,enter 3.root選擇root drop to root shell prompt 4.進入shell界面設置密碼 (1)mount -rw -o remount / (2)passwd username(設置root用戶的密碼) 完成以上修改后&#xff0c;重啟就…

halcon使用直線標定板,標定相機內參代碼

read_image (Image, 直線標定板圖片/Left201118140641772.bmp) get_image_size (Image, Width, Height) dev_close_window () dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle) dev_display (Image) * Image Acquisition 01: Code generated by Image Acquisiti…

dyld: Library not loaded: @rpath/libswiftCore.dylib 解決方法

解決&#xff1a; 設置Build Setting - > 搜索 embe關鍵字 -> 修改屬性 見如下圖&#xff1a; 如果更新了Xcode 8 這里變成&#xff1a; 轉載于:https://www.cnblogs.com/yajunLi/p/5979621.html

Bootloader及u-boot簡介/u-boot系統啟動流程

Bootloader及u-boot簡介Bootloader代碼是芯片復位后進入操作系統之前執行的一段代碼&#xff0c;主要用于完成由硬件啟動到操作系統啟動的過渡&#xff0c;從而為操作系統提供基本的運行環境&#xff0c;如初始化CPU、堆棧、存儲器系統等。Bootloader 代碼與CPU 芯片的內核結構…

Dubbo之RPC架構

為什么會有dubbo的出現: 隨著互聯網的發展&#xff0c;網站應用的規模不斷擴大&#xff0c;常規的垂直應用架構已無法應對&#xff0c;分布式服務架構以及流動計算架構勢在必行&#xff0c;亟需一個治理系統確保架構有條不紊的演進。 單一應用架構 當網站流量很小時&#xff0c…

區域路由的注冊機制

AreaRegistration.RegisterAllAreas() 我們新建一個名稱為Admin的Area&#xff0c;VS生成下面的代碼。 { action , id 我們先來看AreaRegistration這個抽象類&#xff0c;實際上&#xff0c;它只有一個核心功能&#xff0c;就是RegisterAllAreas&#xff0c;獲取所有繼承它的…

Unix/Linux IPC及線程間通信總結

一、互斥與同步 1.互斥&#xff1a;是指某一資源同時只允許一個訪問者對其進行訪問&#xff0c;具有唯一性和排它性。但互斥無法限制訪問者對資源的訪問順序&#xff0c;即訪問是無序的。 2.同步&#xff1a;是指在互斥的基礎上&#xff08;大多數情況&#xff09;&#xff0…

CSS樣式的插入方式

1.外部樣式&#xff1a; 當樣式需要應用于很多頁面時&#xff0c;外部樣式表將是理想的選擇。<head><link rel"stylesheet" type"text/css" href"mystyle.css" /> </head> 2.內部樣式 當單個文檔需要特殊的樣式時&#…