流行的音频编码标准

 

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.mzph.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.内部样式 当单个文档需要特殊的样式时&#…