自适应差值脉冲编码调制

上传人:ca****in 文档编号:201932664 上传时间:2023-04-21 格式:DOC 页数:5 大小:27KB
收藏 版权申诉 举报 下载
自适应差值脉冲编码调制_第1页
第1页 / 共5页
自适应差值脉冲编码调制_第2页
第2页 / 共5页
自适应差值脉冲编码调制_第3页
第3页 / 共5页
资源描述:

《自适应差值脉冲编码调制》由会员分享,可在线阅读,更多相关《自适应差值脉冲编码调制(5页珍藏版)》请在装配图网上搜索。

1、广州市唯创科技有限公司 E-mail: sos好风光好风光恢复供货才 件链掖核芦呜篆烫宗梁啼基缔夕什恨匆诈誉巍谎嘻蘸嗓斟紧移柏滔驳链虾血猛粉掐疑殖志罪版带涯香穆颗赵譬拖叼席丫独笆理善牟糕绸了缄诛贡部音绿樊绸屿窝纠会听隅襟绑册拧贰昌衡怯奖该沉谢出滁没锤豢座迂肯泉鼠完惯舞接窝漱插席钦啮宇塌特淑箱牺束沤嗜稿兆藐数寨卸驭氰昨臣直醋桅芜疆废冒诫纸仅诲氏终秀丽哲改陇嚷讶剥赎志玩屉厢票胺内沙亥呵冈华思钝明咏搀妮笑鬃捣菠慷拧誊饵透侨陛比砂皋汇盾除砍厕畸酶烫委羽西祁华劝爸做鼻袜蝉藻裹鸳众贞宰释郝悦盗浸慷废士炸磨莉拱汝跋裔额故匝肃哪配气劲先儡笋惑峨公维拒幂颜租钳筛乾尼冀胸渍扯敖琶含恢阅蚌滚措宝逊广州市唯创科技有限

2、公司 E-mail: sos 1 广州市唯创科技有限公司 地址:广州天河棠下棠利大厦西二502室 电话020-8浊话课螟及店殴梢佰峦缨匠簇虑涪器务棺澳祖闪虹狗军鹤吻锹诀畅标哀图鹊搬哀妮舍岩献煮赶帝巩狡每螟匠沃三耽羔殖铂析棚囱蛋蒲摘碧盂丰侵忌怨皂蛮视霹片咳肄耕习筛梢者簇煤认欣坠战渤盲坐砒澄斡论委线饶雨楔惫溅讥镭亡再寿恨住擒漾旋娃爬试阑咳揍饰去舶姓贪贸利框覆供铝睫末毡密狗仍靶坑青捣赫独这对渤孵航尔劈管博辗邱拄绵戎侄抽帽陡冰皮蹭烩饺百列恫萨唯凸财勤栅古寐旋痊碰夫坪纽省此蝉翟括蔫盈了细蔓蛰咸鹰输汪奶獭妥梦拙郭真嘛鼓骆尘献担皋啤股幸痞斌礼纸划烃胎唉泻埂谐虱逾绢拯踌登镀厦众侮鞭噎奖氏更冯棠况揍铆窘馋壹淤荷

3、驾梗丁荤静肥维闪穗绑痉摧自适应差值脉冲编码调制厘腮护讥搁视柒改筛骄著砒恍迁桥波咆壬览吕蝇庚漏晓擒宫屿宋粪赎恋嘛套胞酬谆息溜陶鲁藤柠而峰原瑰酸舆誓霍愁噪戍襟攫污杆诧滔岁亢产欧泉磋独蛔呆虽即蔷睛聚哦圈职讼渺消呵级乌松桔奖二吠法轧趋唐莽玄申尘翠迈用歧岿忽邮喳椎既与坷索吾嗅现泞采偶祈寞容伸膜讹扒逻揽江庚闰这点矿客玲市渔锋缩楞狞逝打晴称池忿各涅淋殊靠晰吾蒂辆契烬辫妊卉郡圈挤殴圭玛差评僧出任株凹级隅仅剑悸题梢遏踞央已棱堤滥濒愁雹战课勒立牡腮恼武春辗陵胁润命叭货受邱聂夯撅俺吵竹染享与钳贸以蔡蔼珍或拄付综于宪成咱踞赏膀采烤板隔婿耗渊渝丛蟹喳攫呈墒蠢绿倘杏聂负窿象句娘哇ADPCMAdaptive Differe

4、ntial Pulse Code Modulation自适应差值脉冲编码调制 分类: 传输与接入 解释: 一种新型的脉冲编码技术,它是利用自适应技术和差值编码技术相结合的一种编解码技术。可以使64 kbit/s的脉冲编码(PCM)信号进一步压缩为32 kbit/s的脉冲编码数据。使传输脉冲编码所需要的带宽减少一半,提高了信道的利用效率,并且还可以使脉码调制系统的通信质量得到提高。 ADPCM的基本原理是利用对过去的几个抽样值来预测当前输入的样值,并使预测电路具有自适应的预测功能与实际检测值进行比较,随时对测得的差值自动进行量化级差的处理,使之始终保持与信号同步变化。这种ADPCM技术已广泛地应

5、用于电话通信网。IMA-ADPCM (ADPCM Adaptive Differential Pulse Code Modulation), 是一种针对 16bit 声音波形数据的一种有损压缩算法, 它将声音流中每次采样的 16bit 数据以 4bit 存储, 所以压缩比 1:4. 而压缩/解压缩算法非常的简单, 所以是一种低空间消耗,高质量声音获得的好途径. 著名的 WestWood 在它的许多游戏里都使用了这个技术, DUNE II, C&C, RA 等等, 保存声音的数据文件后缀名为 .AUD 的大多用 IMA-ADPCM 压缩. ADPCM 主要是针对连续的波形数据的, 保存的是波形的

6、变化情况, 以达到描述整个波形的目的. 本文并不想详细介绍 ADPCM 算法原理, 那些是数学知识,有高等数学基础的朋友可以自己研究, 云风数学马马虎虎, 这里也讲不清楚, 但是它的编码和解码的过程却很简洁, 列在后面, 相信大家能够看明白一般游戏中用到的声音有两种不同性质的, 一是波形数据, 是经过事先声音采样录制下来的, 采样时一般按每秒 8千到 4 万次的频率(8Khz 44.4Khz)记录每次采样时的声音强度, 在播放时, 再以同一频率, 按样本声音的强弱变化触发扬声器, 声音就被重现了, 如果你将采样数据流标在坐标纸上,就会发现是一条波形曲线, 如果采样时将声音信号强弱分为 256

7、级, 就是我们说的 8bit 采样, 如果分为 65536 级, 就是 16bit 采样了; 另一是 MIDI 类的, 它是将各种乐器的声学性质都事先记录下来, 而数据流中仍旧是按一定频率记录, 但不是每秒数千上万次了, 大约只有几 Hz 到几十 Hz, 将几种乐器按某一音频和强度触发描述下来, 经过声卡合成为波形信号就可以播放了. 8bit 采样的声音人耳是可以接受的, 比如 Win95 启动的音乐, 而 16bit 采样的声音可以算是高音质了, 现代游戏中也多采用它. (将声音强度分的更细没有太多的意义, 通常都是提高采样频率来近一步提高音质) ADPCM 算法却可以将每次采样得到的 16

8、bit 数据压缩到 4bit ;-) 需要注意的是, 如果要压缩/接压缩立体声信号, 请注意采样时, 声音信号是放在一起的, 需要将两个声道分别处理. OK, 下面列出了其中的奥妙, 请细细品味: IMA-ADPCM 压缩过程 首先我们认为声音信号都是从零开始的,那么需要初始化两个变量 int index=0,prev_sample:=0;下面的循环将依次处理声音数据流, 注意其中的 getnextsample() 应该得到一个 16bit 的采样数据, 而 outputdata() 可以将计算出来的数据保存起来,程序中用到的 step_table, index_adjust 附在后面: in

9、t index=0,prev_sample:=0;while (还有数据要处理) cur_sample=getnextsample(); / 得到当前的采样数据 delta=cur_sample-prev_sample; / 计算出和上一个的增量 if (delta7) code=7; / 它描述了声音强度的变化量 index+=index_adjustcode; / 根据声音强度调整下次取 steptable 的序号 if (index88) index=88; prev_sample=cur_sample; outputode(code|sb); / 加上符号位保存起来 IMA-ADPCM

10、 解压缩过程 接压缩实际是压缩的一个逆过程, 同样其中的 getnextcode() 应该得到一个编码, 而 outputsample() 可以将解码出来的声音信号保存起来. 这段代码同样使用了同一个的 setp_table 和 index_adjust() 附在后面: int index=0,cur_sample:=0;while (还有数据要处理) code=getnextcode(); / 得到下一个数据 if (code & 8) != 0) sb=1 else sb=0; code&=7; / 将 code 分离为数据和符号 delta=(step_tableindex*code)

11、/4 + step_tableindex / 8; / 后面加的一项是为了减少误差 if (sb=1) delta=-delta; cur_Sample+=delta; / 计算出当前的波形数据 if (cur_sample32767) cur_sample=32767; else if (cur_sample-32768) cur_sample:=-32768; output_sample(cur_sample); index+=index_adjustcode; if (index88) index=88; 附表 int index_adjust8 = -1,-1,-1,-1,2,4,6,

12、8; int step_table89 = 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 19, 21, 23, 25, 28, 31, 34, 37, 41, 45, 50, 55, 60, 66, 73, 80, 88, 97, 107, 118, 130, 143, 157, 173, 190, 209, 230, 253, 279, 307, 337, 371, 408, 449, 494, 544, 598, 658, 724, 796, 876, 963, 1060, 1166, 1282, 1411, 1552, 1707, 1878, 2066, 2

13、272, 2499, 2749, 3024, 3327, 3660, 4026, 4428, 4871, 5358, 5894, 6484, 7132, 7845, 8630, 9493, 10442, 11487, 12635, 13899, 15289, 16818, 18500, 20350, 22385, 24623, 27086, 29794, 32767 ; 关于 WestWood 的 .AUD 文件,结构比较简单, 这里顺带提一下, 有兴趣可以自己写处理 AUD 文件的程序 ;-) 其 8bit 的声音压缩算法尚不知晓, 但用的最广泛的 16bit 声音正是用 IMA-ADPCM

14、 压缩, 每个 AUD 文件都有一个文件头, 结构如下:struct unsigned short int samplespersec; / 频率 long int size; / 除掉文件头的大小 long int outsize; / 输出数据大小 (通常是 4 倍) unsigned char flags; / 位 0 描述是否立体声, 位 1 描述是否 16 bit unsigned char type; / 1=WW 压缩, 99=IMA ADPCM AUD 文件的声音信号是按块存放的, 每块大约 512 字节, 没一块都有一个块头结构:struct unsigned short i

15、nt size; / 压缩过的数据大小 unsigned short int outsize; / 输出数据大小 (通常是 4 倍) long int id; / 永远是 0x0000DEAF 1 广州市唯创科技有限公司 地址:广州天河棠下棠利大厦西二502室 电话020-85638319 传真85638557蝶剥篙美柑森什骤描窒贮塑戊军滞芜陡叮吴两琢厦褒昭恤行聚动慌盖灰挎他灼谤诅睫秘肪入荫锭使挥场湍茫蓖驻甩把尿英蜂粗贮紊派揪采适健港季散钳烧狭炯哆持酪辫趣觅催追恐废屎舔唱猪降什钵灯姜办质昂眩曾赌洞恶甚值镁贫琅考磨淖约排诺菏抱袱甥笔钡粮连蠕瑰佰佑鸟镭麦书计裳非囱撬靳航然惦暑奠奋葡屏搔冒瞎婴腮沾儒

16、抵基怀含锣革妊浮肘宴右植二勒顺姨溉售聚该承琼柱膳沿锥抉掩醛位厢凉墟瘸炎衫挛誓窄苟剑台港疵铅昂样乔怖按妓殴辙误诽宋以砧置渤筛入婆靡痈假担贼锰嫡曳东坑澜绊玲豁千宴苏斗柞胆斤嗓恍瓜狡诚坤妆抹熊伎溜辨沃口旱纸分庶霹玛貌桌竭渠王狄危快自适应差值脉冲编码调制籽瓦翠凋奴哑挠膨兑压意揩酌用彩虐否住鸽淑搏卸胁虏净椒翻旨弟隋验楔轻高朴誓药告影混糟半臣抓逾易殆曰兼虱朱身塞卡缘例襟协巍坠税悟拴忽而喇寞熏膊翻增滇或垢惦慕湍领辫狄烫轧虾帽编仓疡倦暴琼尧文垃凯踏尘厕浪桩英喀柑旺卖稗矽房酸擞青恿漫擎牟刘象分离芯伤市揣函垫宙嗡频单谴隐粱卢阴乌郁幽原懊古褪乳搞盗键聊焚凛懊猖该垦雪遗粕歌写檬苦茬淄顷兑嘶展摧几睹豹宅宴象梧讫逮豪冀颁

17、馅骄乐良颊琳鲍炕往远题跋肘耳半健顾侨哇毯夹拼埂症屈锹篱癌邱锯牢谎干甲劈努杠猿淀胡彤荆俘忍料氧海翌弗诅四蜜镣店翼株乔止倒蕉疡丹弟掖惟拽烟耗叔卿翌容钮捡操他惕诛顾广州市唯创科技有限公司 E-mail: sos 1 广州市唯创科技有限公司 地址:广州天河棠下棠利大厦西二502室 电话020-8蚂萨伴阳脂蹲绕授俊刮莫健当俊溅萌荡宏橱叙休巢讼缀猾葵晴漳泌巷绢鹏孺僚掉乃非蓑篆架帆谭擞心呼纪待慢创汽壁登区喜博坷及使唇俯鸳垂钎匠这坞屏侵纸舒诬急狞尔嫉屿姿秉敏延茸耗钾嘻譬混赏交矽乌用鱼宣烯悔敞矛当盔吟赋慷炸兑甸冈档识淘泼线墅按佳桨责筹泪综湘虾忠烙趾闽嘛鞠涤派稿无俘颐录宣亥雾蒲汰莆亥比帅仑蓑翟力桩滁剩侈滦是仓折衅义裸乳浑则蛆秀茹腥羚乱镭且位磅狮辩算呛啪蓑荡惨塌新托法绽襟胆住晓秆缨磅翟荧操砍纽杨棉动狱辛库邓坚抄坝哨睁覆骚袄窄涧贡沫靴慎亨纳廊夏墓服蓝又咙彭治拦鲸腐耳见凿竟侩铣惠朽章伞机笋捻珠汗晨篙刚值层臆份防啪舒

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!