- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
G711的取样基本原理.ppt
2007/3/5 G.711 簡介 Speaker : Chungyi Wang Adviser : Quincy Wu Date :outline PCM G.711 的取樣基本原理 A-law Mu-law A-law V.S Mu-law Reference PCM PCM (Pulse code modulation) 波形編碼,把類比的音訊信號轉換為數位信號 G.711有兩個編碼方式,分別是 A-law Mu-law G.711的編碼方式會將14bits(所以會用16bits儲存)的樣本訊息轉換成8bits的樣本以期傳送資料壓縮 G.711 的取樣基本原理 低位數的差異 取較具影響的位數 前N位較具影響,好比說N = 5 (強度1位,樣本4位) 由16bits轉成8bits 傳送時將重要的位數encode成8bits (保留重要位數) 接收端將此decode成PCM的16bits (有些許失真) A-law(1/4) 規則 取影響最大的5位 s 代表的是sign,於樣本為正數時填1 逢偶數位取補數 s x’ x x’ w x’ y z’ A-law(2/4) 範例 -- 3210 (0000110010001010)2 = 取s,s = 1 取強度位置 0 0001 10010001010 Xs = 100 取高位樣本 0 0001 10010001010 wxyz = 1001 結合以上數字 s xxx wxyz 1 100 1001 逢偶位數取補數 1 1001001 1 0011100 A-law(3/4) 範例 -- 321(0000000101000001)2 = 取s,s = 1 取強度位置 0 0000001Xs = 001 取高位樣本 0 0000001wxyz = 0100 結合以上數字 s xxx wxyz 1 001 0100 逢偶位數取補數 1 0010100 1 1000001 A-law(4/4) 範例程式 使用mediastreamer2的g711common.h unsigned char s16_to_alaw(int pcm_val) 將16bit的原始樣本 encode 成為8bit的a-law碼 int alaw_to_s16(unsigned char a_val) 將8bit的a-law碼 decode 成為16bit的原始樣本 unsigned char s16_to_ulaw(int pcm_val) int ulaw_to_s16(unsigned char a_val) Mu-law(1/6) 規則 1.取得範圍值,得到8-bit基本值b(ex 0x80) 2.取得間隔數值size(ex 256) Mu-law(2/6) 規則 3.取得區間基本值rb(ex 2015) 4.算出與區間基本值rb的距離d d = rb - sample 5.依據間距大小size,算出平移量 s = d / size 6.與8-bit基本值相加 output = b + s Mu-law(3/6) 範例 – 2345 = 0x9D 1.取得範圍值 range = 4063~2015 1-1.得到8-bit基本值 b = 0x90 2.取得間隔數值 size = 128 3.取得區間基本值 rb = 4063 4.算出與區間基本值rb的距離d d = rb – sample = 4063 – 2345 = 1718 Mu-law(4/6) 5.依據間距大小size,算出平移量 s = d / size = 1718 / 128 = 13.42… = 13 6.與8-bit基本值相加 output = b + s = 0x90 + 13 = 9D Mu-law(5/6) Decode 建立對應的陣列 大小為255 先前的2345 = 0x9D, 執行結果得到ulaw 9d becomes 2271 Mu-law(6/6) 範例程式 秀出Mu-law全部的Decode結果 A-law V.S Mu-law (1/2) A-law V.S Mu-law (2/2) 如果將A-law的間距加大一倍到8192,那麼與Mu-law的量化執行結果會相近 (link 3) 在A-law於較小的數值有較大的動態範圍值(dynamic range) ,也就是靜音時會比較採樣雜訊,而不是僅取靜音 (link 3) 於33-127的數值兩者的執行效果相近,但是Mu-law如果在數值32之前的區間加入
文档评论(0)