音频编码-G.711
G.711是一种窄带音频编解码器,最初设计用于提供 64 kbit/s 的长途质量音频的电话。G.711 传递 300–3400 Hz 范围内的音频信号,并以每秒 8,000 个样本的速率对其进行采样,该速率的容差为百万分之 50 (ppm)。使用 8 位的非均匀(对数)量化来表示每个样本,从而产生 64 kbit/s 的比特率。有两个略有不同的版本:主要用于北美和日本的μ-law和在北美以外的大多数其他国家/地区使用的A-law。 G.711 是用于音频压扩的ITU-T标准(推荐),标题为 1972 年发布的语音频率脉冲编码调制 (PCM)。它是许多技术的必需标准,例如H.320和H. .323标准。它也可用于IP 网络上的传真通信(如T.38规范中所定义)。 已发布 G.711 的两项增强功能:G.711.0利用无损数据压缩来减少带宽使用,而G.711.1通过增加带宽来提高音频质量。
特点
8 kHz 采样频率
64 kbit/s 比特率(8 kHz 采样频率 × 8 比特/样本)
典型的算法延迟为 0.125 ms,无前瞻延迟
G.711是一种波形语音编码器
G.711 附录 I 定义了分组丢失隐藏(PLC) 算法,以帮助隐藏分组网络中的传输丢失
G.711 附录 II 定义了一种不连续传输(DTX) 算法,该算法使用语音活动检测(VAD) 和舒适噪声生成(CNG) 来减少静音期间的带宽使用
理想条件下的PSQM测试产生 G.711 μ-law 的平均意见分数为 4.45,G.711 A-law 的平均意见分数为 4.45
网络压力下的 PSQM 测试对 G.711 μ-law 产生的平均意见得分为 4.13,对于 G.711 A-law 产生 4.11
类型
G.711 定义了两种主要的压扩算法,μ-law 算法和A-law 算法。两者都是对数的,但 A-law 专门设计用于更简单的计算机处理。该标准还定义了一系列重复代码值,定义了 0 dB的功率电平。 μ-law 和 A-law 算法将 14 位和 13 位有符号线性 PCM 样本(分别)编码为对数 8 位样本。因此,G.711编码器将为以 8 kHz 采样的信号创建 64 kbit/s 比特流。 G.711 μ-law 倾向于为较高范围的信号提供更高的分辨率,而 G.711 A-law 在较低的信号电平下提供更多的量化电平。 使用术语 PCMU、G711u 或 G711MU 表示 G711 μ-law,使用 PCMA 或 G711A 表示 G711 A-law。
A-law
A-law 编码将 13 位有符号线性音频样本作为输入,并将其转换为 8 位值,如下所示:
线性输入码 |
压缩码 异或 01010101 |
线性输出代码 |
---|---|---|
s0000000abcdx
|
s000abcd
|
s0000000abcd1
|
s0000001abcdx
|
s001abcd
|
s0000001abcd1
|
s000001abcdxx
|
s010abcd
|
s000001abcd10
|
s00001abcdxxx
|
s011abcd
|
s00001abcd100
|
s0001abcdxxxx
|
s100abcd
|
s0001abcd1000
|
s001abcdxxxxx
|
s101abcd
|
s001abcd10000
|
s01abcdxxxxxx
|
s110abcd
|
s01abcd100000
|
s1abcdxxxxxxx
|
s111abcd
|
s1abcd1000000
|
1.该值是通过取输入值的二进制补码表示形式产生的,如果值为负数,则将符号位之后的所有位取反。
2.^ 有符号的幅度表示
s符号位在哪里,s是它的倒数(即正值用MSB = s = 1 编码),标记的位x被丢弃。请注意,表的第一列使用与第三列不同的负值表示。因此,例如,输入的十进制值 -21 在位反转后以二进制表示为 1000000010100,它映射到 00001010(根据表的第一行)。解码时,这映射回 1000000010101,它被解释为十进制的输出值 -21。输入值 +52(二进制的 0000000110100)映射到 10011010(根据第二行),它映射回 0000000110101(十进制的 +53)。 这可以看作是一个浮点数,具有 4 位尾数 m(相当于 5 位精度)、3 位指数 e和 1 个符号位s,其格式与公式给出 seeemmmm的解码线性值y一样 这是一个 13 位有符号整数,范围为 ±1 到 ±(2 12 − 2 6 )。请注意,由于添加了 0.5(量化步长的一半),因此没有压缩代码解码为零。 此外,该标准规定在传输八位字节之前将所有结果偶数位(LSB为偶数)反转。这是为了提供大量的 0/1 转换,以促进 PCM 接收器中的时钟恢复过程。因此,无声 A 律编码的 PCM 通道的 8 位样本在八位字节中编码为 0xD5 而不是 0x80。 当通过 E0 ( G.703 ) 发送数据时,首先发送 MSB(符号),最后发送 LSB。 ITU-T STL [3]将解码算法定义如下(它将解码值放在 16 位输出数据类型的 13 个最高有效位中)。
void alaw_expand(lseg, logbuf, linbuf)long lseg;short *linbuf;short *logbuf;
{short ix, mant, iexp;long n;for (n = 0; n < lseg; n++){ix = logbuf[n] ^ (0x0055); /* re-toggle toggled bits */ix &= (0x007F); /* remove sign bit */iexp = ix >> 4; /* extract exponent */mant = ix & (0x000F); /* now get mantissa */if (iexp > 0)mant = mant + 16; /* add leading '1', if exponent > 0 */mant = (mant << 4) + (0x0008); /* now mantissa left justified and *//* 1/2 quantization step added */if (iexp > 1) /* now left shift according exponent */mant = mant << (iexp - 1);linbuf[n] = logbuf[n] > 127 /* invert, if negative sample */? mant: -mant;}
}
μ-law
μ-law(有时称为 ulaw、G.711Mu 或 G.711μ)编码采用二进制补码表示的 14 位有符号线性音频样本作为输入,如果值为负,则反转符号位之后的所有位,添加 33(二进制 100001)并将其转换为 8 位值,如下所示:
线性输入值 |
压缩代码 XOR 11111111 |
线性输出值 |
---|---|---|
s00000001abcdx
|
s000abcd
|
s00000001abcd1
|
s0000001abcdxx
|
s001abcd
|
s0000001abcd10
|
s000001abcdxxx
|
s010abcd
|
s000001abcd100
|
s00001abcdxxxx
|
s011abcd
|
s00001abcd1000
|
s0001abcdxxxxx
|
s100abcd
|
s0001abcd10000
|
s001abcdxxxxxx
|
s101abcd
|
s001abcd100000
|
s01abcdxxxxxxx
|
s110abcd
|
s01abcd1000000
|
s1abcdxxxxxxxx
|
s111abcd
|
s1abcd10000000
|
1.此值是通过取输入值的二进制补码表示,如果值为负数则反转符号位之后的所有位,然后加上 33。
2.^ 有符号的幅度表示。最终结果是通过将该值的大小减少 33 来产生的。
s符号位在哪里,标记的位x被丢弃。 此外,该标准规定在传输八位字节之前将编码位反转。因此,无声 μ 律编码的 PCM 通道具有 8 位样本传输的 0xFF 而不是八位字节中的 0x00。 添加 33 是必要的,以便所有值都落入一个压缩组,并在解码时将其减去。 将格式化为 as 的编码值seeemmmm分解为 4 位尾数m、3 位指数e和 1 位符号位s,解码后的线性值y由公式给出 这是一个 14 位有符号整数,范围为 ±0 到 ±8031。 请注意,0 以 0xFF 传输,-1 以 0x7F 传输,但在两种情况下接收到的结果都是 0。
G.711.0
G.711.0,也称为 G.711 LLC,利用无损数据压缩将带宽使用量减少多达 50%。 G.711脉冲编码调制标准的无损压缩于2009年9月获得ITU-T批准。
G.711.1
G.711.1 是 G.711 的扩展,于 2008 年 3 月作为 ITU-T Recommendation G.711.1 发布。其正式名称为Wideband Embedded extension for G.711 脉冲编码调制。 G.711.1,允许添加窄带和/或宽带(16000 个样本/秒)增强功能,每个增强功能都以(包含的)基本 G.711 比特流比特率的 25%,导致数据速率为 64、80 或 96 kbit /秒。 G.711.1 在 64 kbit/s 下与 G.711 兼容,因此可以预见在现有的基于 G.711 的 IP 语音 ( VoIP ) 基础设施中的有效部署。G.711.1 编码器可以在 80 和 96 kbit/s 下以 50-7000 Hz 的带宽对 16 kHz 的信号进行编码,对于 8-kHz 采样,输出可以产生带宽从 50 到 4000 Hz 的信号,运行64 和 80 kbit/s。 G.711.1 编码器创建一个嵌入式比特流,其结构分为三层,对应于三种可用比特率:64、80 和 96 kbit/s。比特流不包含关于包含哪些层的任何信息,实现将需要关于哪些层可用的带外信令。G.711.1 的三个层是:低频段的对数压扩脉冲编码调制 (PCM),包括噪声反馈、具有自适应比特分配的嵌入式 PCM 扩展,用于提高低频段基础层的质量,以及加权矢量量化编码基于修正离散余弦变换(MDCT) 的较高频带。 2010 年计划对 G.711.1 进行两项扩展:超宽带扩展(带宽至 14000 Hz)和无损比特流压缩。
许可
1972 年发布的 G.711 专利已过期,因此无需许可证即可使用。
音频编码-G.711相关推荐
- G.711 音频编码
目录 参考 概述 G.711原理 总结 1. 参考 [1] wikipedia/A-law_algorithm [2] github.com/quatanium/foscam-ios-sdk [3] ...
- G.711是一种由国际电信联盟(ITU-T)制定的音频编码方式
http://zh.wikipedia.org/zh-cn/G.711 ITU-T G.711 page ITU-T G.191 software tools for speech and audio ...
- G.7xx的音频编码方式与带宽计算
本文转之"weixin_30527551"作者的[WebRTC]术语 G.711 G.722 G.711 G.722是G系列的语音编码中宽带的编码方式. G.711 由国际电信 ...
- 音频编解码标准G.711与G.729
G.711和G.729协议是两对用于语音压缩的编码方案,两者具有一些相似之处,但不同于完全自由使用的G.711,使用G.729是需要付费的,而且,对于使用G.729的情况,CPU占有时间大约为G.71 ...
- Android G.711音频编解码
需求背景: 博主目前所在的公司是一家做视频通讯的公司,所以对音频,视频这一块对编码方式都有一定的要求,由于之前一直没有接触JNI这一块,突然让我去做音频的转码还是有一定的苦难的.一开始对于JNI编程我 ...
- 音频编解码G.711 G.729 G.723带宽问题
1.分包发送,G.711每20ms打包一次,G.729每20ms,G.723每30ms 2.每个包由包头和有效载荷组成,有效载荷即音频数据 3.包头由以下组成,共66 Byte,528 bit Eth ...
- 音频编码标准发展现状
一.概述 音频信号数字化之后所面临的一个问题是巨大的数据量,这为存储和传输带来了压力.例如,对于CD音质的数字音频,所用的采样频率为44.1 kHz,量化精度为16bit:采用双声道立体声时,其数码率 ...
- 音频编码(三)——音频编解码标准
PCMU(G.711U) 类型:Audio 制定者:ITU-T 所需频宽:64Kbps(90.4) 特性:PCMU和PCMA都能提供较好的语音质量,但是它们占用的带宽较高,需要64kbps. 优点:语 ...
- 常用的ITU Speech Codec大全(G.711,G.722.1,G.722.2,G.723.1,G.726,G.728,G.729,G.729.1)
转自 http://blog.csdn.net/wanggp_2007/archive/2009/12/24/5070517.aspx 总结了常用的ITU Speech Codec,谨供大家学习参考: ...
最新文章
- Jupyter 在线python编辑器
- linux虚拟网桥配置nat,使用NAT在Proxmox VE 6上创建专用网桥的方法
- python的socks5全局代理_Python写的Socks5协议代理服务器
- 重叠面积_重叠面积——动点产生的重叠面积问题
- 华为手机短息没有声音解决方案
- 基于JAVA+Servlet+JSP+MYSQL的保险管理系统
- vue中使用ts后,父组件获取执行子组件方法报错问题
- C语言——指针详解(必收藏)
- 制作U盘DOS启动盘详细教程及工具,及DOS下升级BIOS方法,传统BIOS升级为UEFI
- linux设备开发详解宋宝华,[Linux设备驱动开发详解(第2版)].宋宝华.pdf
- python低通滤波器设计(FIR, IIR)
- 幼儿python编程书籍_少儿Python编程入门书籍分享
- 网页链接如何做成html,html网页的超链接怎么添加?
- 顺丰控股2019财报解读
- Centos MySQL5.7开机自启动
- 前端开发:Vue项目中解决Emitted value instead of an instance of Error问题
- 一个 SAP 开发工程师在 SAP 德国总部出差的见闻系列 1:出差 ≠ 公费旅游
- 计算机组成原理笔记(7)---定、浮点运算、算术逻辑单元
- excel文件如何取消打开密码
- 这恐怕是学习Frida最详细的笔记了
热门文章
- 张良(?—前189年)
- 常用传输术语OC/STM_SDH/SONET
- 成长型思维和固定型思维
- 深度学习:GCN(图卷积神经网络)理论学习总结
- 【Github上有趣的项目】Deep-Flow-Guided-Video-Inpainting 从视频中抹去一个人(或消除马赛克)
- 计算机公式加法A C,概率公式c怎么计算
- 《矩阵理论与方法》lambda矩阵及Jordan标准形
- java文本框双击可编辑_JS实现双击内容变为可编辑状态
- 超详细!!vue、vue-cli脚手架项目使用prerender-spa-plugin,解决SEO并为其添加title,keyWords,descript
- AutoCAD.NET实现CAD截图