G.726音频编解码原理介绍
一、PCM
脉冲编码调制(Pulse-code modulation,PCM)是一种模拟信号的数码化方法。PCM将信号的强度依照同样的间距分成数段,然后用独特的数码记号(通常是二进制)来量化。PCM常被用于数码电信系统上,也是计算机和红皮书(数字音乐光盘(Compact Disc Digital Audio, CDDA)规格由飞利浦和Sony制订,规格文件书由于封面红色而称红皮书)中的标准形式。
在数码视频中PCM也是标准,例如使用 ITU-R BT.601。但是PCM并不流行于诸如DVD或DVR的消费性商品上,因为它需要相当大的比特率(DVD格式虽然支持PCM,不过很少使用,不过,许多蓝光光盘使用PCM作音频编码)。
模拟信号转换至4-bit PCM的取样和量化(来自维基百科)
关于采样取样细节可通过“调制(analog-to-digital converter,ADC)”、 “解调(digital-to-analog converters, DAC)”相关的基本知识了解,可参照数字电路相关的基础教材,建议先看维基百科。
信息损害来源:
在任何PCM系统中,本质上有两种损害的来源:
- 在量化时,取样必须迫于选择接近哪一个整数值(即量化误差)。
- 在样本与样本之间没有任何数据,根据取样原理,这代表任何频率大于或等于(fs即采样率)的信号,会产生有损,或者完全消失(aliasing error)。这又称作奈奎斯特频率(Nyquist frequency)。
采样取样限制:
由于所有样本都依据时间取样,重制时至关重要的便是一个准确的振荡器。如果编码或解码时,任何一方的振荡器不稳定,频率漂移就会使输出设备的质量降低。如果两方的频率具有些微的差异,稳定的误差对于质量而言并非巨大的问题。但一旦振荡器并非稳定的(即脉动的间距不相等),不论是音频或者视频上,都将造成巨大的有损。
数字化技术:
在电话学中,电话的音频编码标准采样频率是8kHz(每秒8000个模拟样本),每个样本8位,比特率为64 kbit/s,即DS0。
G.7 11国际标准描述的系统提供 A-law(除美国和日本以外的世界其他地方)与 µ-law(美国和日本)压缩编码实现方法,可采用非线性量化把 128kbit/s采样数据(8kHz,每样本16-bit或16 kHz,每样本8-bit)压缩为 64kbit/s A-law或µ-law数据,压缩比为2:1。采用G.7 11 标准编码MOS评分较高(参考Annex A),适用于综合业务网和大多数数字电话链路。
Differential(差异)或Delta PCM(DPCM)纪录的是目前的值与前一个值的差异值。DPCM对信号的差值进行量化,可以进一步减少量化比特数。与相等的PCM比较,这种编码只需要25%的比特数。
Adaptive DPCM(ADPCM)是DPCM的变形,给定一个信噪比,以节省量化密度的方式,允许更大程度的节省带宽。ADPCM采用自适应量化以及高阶自适应预测技术,可根据信号差值的均方动态调整量化阶。通常,人们把低于64kbps数码率的语音编码方法称为语音压缩编码技术,语音压缩编码方法很多,自适应差值脉冲调制(ADPCM)是语音压缩编码中复杂程度较低的一种方法。
G.726 encoder 输入一般都是G.711 encoder的输出:64kbit/s 的A-law或µ-law;G.726算法实质就是一个ADPCM, 自适应量化算法。
二、G.726
简介
G.726是ITU-T定义的音频编码算法。1990年 CCITT(ITU前身)在G.721和G.723标准的基础上提出。
ADPCM编/解码器框图
如上图a)所示,ADPCM编码首先将输入的A率或mu率PCM 信号转换成14位线性PCM码,然后与预测信号相减产生差分信号,再对差分信号进行自适应量化,产生2~5比特ADPCM 码;一方面将产生的ADPCM 码送至解码器,另一方面利用ADPCM 码进行本地解码以获得量化后的差分信号,编码器将量化之后的差分信号与预测信号相加得到本地重建信号。
G.726语音编码器首先将输入的8位PCM码转换成14位线性码,然后同预测信号相减产生差分信号,再对差分信号进行自适应量化,产生2到5比特ADPCM码;如上图b)所示,一方面要把ADPCM码送至解码器,另一方面利用ADPCM码进行本地解码得到量化后的差分信号,将量化之后的差分信号与预测信号相加得到本地重建信号。
G.726编码算法可以扩展阅读ITU指定的G.726编码标准,也可参考《G.726标准ADPCM编码方法研究与仿真》一文。
工程应用
G.726编码器通常需要知道
1. 码率:G726 编码器输出码率(简称编码码率)应与RFC 3551 中 4.5.4 小节规范一致:
"The G726 data rates of 40, 32, 24, and 16 kbit/s have codewords of 5, 4, 3, and 2 bits, respectively." 从这里知道,若采用16kbps编码码率, G.726编码后的ADPCM码字应该占2- bit。
G.726编解码器把 128kbit/s 线性数据(64kbit/s PCM数据)压缩为 16kbit/s、24kbit/s、32kbit/s、40kbit/s 数据压缩比分别为8:1、16:3、4:1和16:5,码字分别为2、3、4和5 bits。采用越高压缩比,码率越小,质量越差。
2.PCM帧长:
附录
Annex A 音频质量评测标准
l MOS -- Mean Opinion Score 平均意见值
MOS值常以衡量通信系统语音质量的重要指标。常用的MOS分评价方法包括主观MOS分评价和客观MOS分评价。
主观MOS分采用ITU-T P.800和P.830建议书,由不同的人分别对原始语料和经过系统处理后有衰退的语料进行主观感觉对比,得出MOS分,最后求平均值。
而客观MOS评价则采用ITU-T P.862建议书提供的PESQ(perceptual evaluation of speech quality)方法,由专门的仪器(如Agilent的VQT测试仪)或软件进行测试。
在MOS方法中,0分代表最差的质量,5分为最高分。标准PCM的质量约为4.4分,G.711的质量约为4.8,G.726的质量约为4.2。
l MSE -- mean square error 均方误差
作为一种客观标准,MSE通过计算原始语音输入波形与解码端语音重构输出波形之间的差别程度,可以量化语音信号波形编码器的质量。 公式如下:
MSE =
其中x(n)和y(n)分别代表原始语言波形样点和重构语音波形样点的电平值
Annex B 编码器选择:
Codec 选择主要考虑以下因素:
1) 音频的采样率,如语音的一般是8KHz,或16KHz,这时往往选G7XX,或AMR_NB/WB, QCELP, 或EVRC等Voice codec; 音频一般是44.1KHz, 这个往往要用AAC, MP3。
2) 对码率的要求也就是带宽, 你应该对现有的codec,码率是多少应该要用全面的了解。
3) Codec算法复杂度,这个主要考虑CPU loading,如在PC上的应用,这一点可能不需要考虑,但在嵌入式平台上这个就不得不考虑。
Annex C 开源软件
ffmpeg
开源多媒体应用framework:FAAC
逆向工程:
Tom's lossless Audio Kompressor(TAK)是一种无损音质的优秀音乐解码器,虽然原作者尚未公开源代码(计划未来是要以C++开放源代码),但FFmpeg开发者已通过反向工程实现了一个开源的TAK解码器,并已入到FFmpeg中。
G.726音频编解码原理介绍相关推荐
- Android G.711音频编解码
需求背景: 博主目前所在的公司是一家做视频通讯的公司,所以对音频,视频这一块对编码方式都有一定的要求,由于之前一直没有接触JNI这一块,突然让我去做音频的转码还是有一定的苦难的.一开始对于JNI编程我 ...
- ITU-T H.264/MPEG-4 AVC编解码原理介绍
本文档适合基本了解数字图像处理的初学者,仅用于研究交流,由于资料来源较多,只能尽量在相关章节注明出处. 转载本文请注明出处http://blog.csdn.net/chinadragon76/arti ...
- G711(PCM/PCMA/PCMU),G721,G723,G729等 音频编解码
G711,G721,G723音频编解码,G729音频库,Android G711(PCMA/PCMU).G726.PCM音频转码到AAC,ffmpeg接收g723音频流,Android G726语音编 ...
- 详解音频编解码的原理、演进和应用选型等
本文来自网易云音乐音视频实验室负责人刘华平在LiveVideoStackCon 2017大会上的分享,并由LiveVideoStack根据演讲内容整理而成(本次演讲PPT文稿,请从文末附件下载). 1 ...
- 即时通讯音视频开发(十八):详解音频编解码的原理、演进和应用选型
1.引言 大家好,我是刘华平,从毕业到现在我一直在从事音视频领域相关工作,也有一些自己的创业项目,曾为早期Google Android SDK多媒体架构的构建作出贡献. 就音频而言,无论是算法多样性, ...
- 音频编解码标准G.711与G.729
G.711和G.729协议是两对用于语音压缩的编码方案,两者具有一些相似之处,但不同于完全自由使用的G.711,使用G.729是需要付费的,而且,对于使用G.729的情况,CPU占有时间大约为G.71 ...
- 视音频编解码学习工程:FLV封装格式分析器
===================================================== 视音频编解码学习工程系列文章列表: 视音频编解码学习工程:H.264分析器 视音频编解码学习 ...
- [总结]视音频编解码技术零基础学习方法
原文地址:http://blog.csdn.net/leixiaohua1020/article/details/18893769 一直想把视音频编解码技术做一个简单的总结,可是苦于时间不充裕,一直没 ...
- 视音频编解码技术零基础学习方法(向雷神致敬)
一直想把视音频编解码技术做一个简单的总结,可是苦于时间不充裕,一直没能完成.今天有着很大的空闲,终于可以总结一个有关视音频技术的入门教程,可以方便更多的人学习从零开始学习视音频技术.需要注意的是,本文 ...
最新文章
- FBI再度要求苹果协助为波士顿黑帮成员的iPhone解锁
- 传输层端口号的范围是多少?被分为哪两部分_Cu2ZnSnS4纳米晶做空穴传输层经配体改性将低温可喷涂碳电极基钙钛矿太阳能电池的性能提高到17.71...
- Vupsen, Pupsen and 0 思维,凑系数
- 科研实习 | 中国科学院深圳先进技术研究院徐坤老师课题组招聘客座实习生
- 小智机器人江苏赞_智能机器人小智
- JAVA学习笔记--初识容器类库
- 软件测试为什么需要学习Linux的知识?Linux学到什么程度?-log5
- Android 实现圆角头像(使用第三方开源库)
- GPUGraphicsGame tools
- DDA算法--计算机图形学
- VM12 虚拟机使用桥接模式却连不上网的解决办法
- UPC 黑熊过河(基本状态转移)
- 第七课 实战文件注册机制
- 你真的了解Franka吗?一文带你揭秘Franka常见问题,你想知道的都在这里!
- Unity隐藏目录和隐藏文件
- 通过powershell安装360安全卫士
- 怎么查找iphone测试的软件,iphone怎么测试跑分 iphone跑分软件使用教程
- Z-score 与 Fisher-Z 的区别
- 软件实验室 计算机配置,《软件测试实验室》管理规定
- 5G支持下,人工智能除了AI换脸,还能干什么?