您的位置:首页 > 其它

VoIP技术(2)--语音编码算法-2

2010-08-16 15:31 260 查看
常见的编码算法及其属性:
人的话音频率大约在0.3kHz~3.8KHz,根据采样定理,8kHz的采样速率可满足要求,这就是常说的窄带,宽带的采样速率是16kHz,后面的G.722就是这种情况。
语音编码器的主要功能就是把用户语音的PCM(脉冲编码调制)样值编码成少量的比特(帧)。这种方法使得语音在连路产生误码、网络抖动和突发传输时具有健壮性(Robustness)。在接收端,语音帧先被解码为PCM语音样值,然后再转换成语音波形。
常见的编码类型有:PCM=脉冲编码调制,ADPCM=Adaptive Differential Pulse Code Modulation,ADPCM=适应性差分脉冲编码调制,AMR=自适应多速率-宽带,DPCM=差分脉冲编码调制,LDCELP=低延迟编码激励线性预测,LPC=线性预测编码,CS-ACLEP=共轭结构代数代码激励线性预测,MP-MLQ=多重脉冲,多层量子化,ACELP=代数编码激励线性预测。
在了解具体编码技术之前,参考下图,看看哪些算法是收费的:



图20
表1列出了常见算法的性能比较,具体各个参数的意义,可参阅下面的讲述。





表1
用于电信和语音包的最常见的编码标准有ITU-T 的G系列建议:
G.711:64kbps PCM语音编码技术。
G.723.1:一种压缩技术,它以较低的位速率压缩声音或音频信号,它是H.324系列标准的一部分。编解码有两种位速率与之相关:5.3和6.3kbps。较高的位速率基于ML-MLQ技术,提供某种程度上较高的声音质量。较低的位速率基于CELP,为系统设计人员提供更多的灵活性。该种编码算法的许可是收钱的。
G.726:描述以40kbps、32kbps、24kbps和16kbps速率进行的ADPCM编码。如果PBX网络配置成支持ADPCM,那么ADPCM编码的语音可以在数据语音网络、PSTN和PBX网络之间互换。
G.728:描述CELP语音压缩的16kbps低速延迟变种。CELP语音编码必须转化成公共电信格式才能通过PSTN传输或传输到PSTN。
G.729:描述把语音编码成8kbps 流的CELP 压缩技术。该标准有两种变种(G.729和G.729 Annex A, Annex B),它们主要的区别在于计算复杂度,它们都提供类似于32kbps ADPCM的声音质量。该种编码算法的许可是收钱的。
G.722:是支持比特率为64, 56和48kbps多频率语音编码算法。在G.722中,语音信号的取样率为每秒16000个样本。与3.6kHz的频率语音编码相比较,G.722可以处理频率达7kHz音频信号宽带。G.722 编码器是基于子带自适应差分脉冲编码(SB-ADPCM)原理的。信号被分为两个子带,并且采用 ADPCM 技术对两个子带的样本进行编码。G.722是G系列的语音编码中一种宽带的编码方式。
G.722.1:G.722.1的压缩率约为G.722的两倍,亦即输入采样同样是16KHz,输出却是24或32kbps。 G.722.1发表於1999年,是目前视讯会议最大量使用的语音编码压缩标准。
G.722.2:G.722.2宽带语音编码器是单个的集成语音编码器,也叫自适应多速率宽带编码(AMR-WB:Adaptive Multi-Rate Wideband)由9种速率模式组成,位速率分别为:23.85、23.05、19.85、18.25、15.85、14.25、12.65、8.85和6.6kbps。
G.727: G.727 是速率为40, 32, 24和16 kbit/s 的嵌入自适式差分脉冲编码调制(ADPCM)的运算法。G.727定义了当原信号是脉冲率为64 kbit/s 脉冲编码调制信号。
iLBC:iLBC 即internet Low Bitrate Codec,是一种免费的编码算法,是为专为提供稳健的 IP 语音通信而开发的语音 codec,以窄带语音为设计基础,具有 8 kHz 的采样率。iLBC codec 支持两种基本的帧长度:13.3 kbps 比特率下编码帧长度为 30 ms;而 15.2 kbps比特率下编码帧长度则为 20 ms。采用 iLBC 算法可以获得一个具有丢包响应控制的语音编码系统。iLBC 对每一个数据包的处理都能够独立于其它数据包来进行,是数据包通信的理想选择。即使 IP 丢包和/或延迟现象的恶化,这种 codec 的语音质量下降情况也不会太差。这与基于 CEIP 模型的一般 codec 的行为不同,这类 codec 最先是为交换电路网络或无线网络而设计的,是设计来恢复位错误而非丢包的。总而言之,iLBC 算法为数据包网络实现了尖端的固定比特率编码,在质量与比特率之间取得了非常出色的平衡。
Speex: Speex是免费的压缩编码方法,它的输出速率是2~44kbps,采样速率支持Narrow band的8kHz,Wide-Band的16kHz以及ultra-wideband的32 kHz。它的帧大小是30ms(Narrow-Band)和34ms(Wide-Band)。

关于视频编码部分,ITU-T 与ISO/IEC 是制定视频编码标准的两大组织,ITU-T 的标准包括H.261、H.262、H.263、H.264,主要应用于实时视频通信领域,如会议电视;MPEG 系列标准是由ISO/IEC制定的,主要应用于视频存储(DVD)、广播电视、因特网或无线网上的流媒体等。两个组织也共同制定了一些标准,H.262 标准等同于MPEG-2 的视频编码标准,而目前最热门的H.264 标准则是MPEG-4 的第10 部分。
H.261:H.261 是ITU-T 为在综合业务数字网(ISDN)上开展双向声像业务(可视电话、视频会议)而制定的,速率为64kb/s的整数倍。H.261 只对CIF 和QCIF 两种图像格式进行处理,每帧图像分成图像层、宏块组(GOB)层、宏块(MB)层、块(Block)层来处理。H.261 是最早的运动图像压缩标准,它详细制定了视频编码的各个部分,包括运动补偿的帧间预测、DCT 变换、量化、熵编码,以及与固定速率的信道相适配的速率控制等部分。
H.263:H.263 是最早用于低码率视频编码的ITU-T 标准,是ITU-T 为低于64kb/s 的窄带通信信道制定的视频编码标准。它是在H.261 基础上发展起来的,其标准输入图像格式可以是S-QCIF、QCIF、CIF、4CIF 或者16CIF 的彩色4∶2∶0 亚取样图像。H.263 与H.261 相比采用了半象素的运动补偿,并增加了4 种有效的压缩编码模式。随后出现的第二版(H.263+)及H.263++增加了许多选项,使其具有更广泛的适用性。
H.262:由MPEG-1 扩充而来,支持隔行扫描。使用十分广泛,几乎用于所有的数字电视系统,适合标清和高清电视,适合各种媒体传输,包括卫星、有线、地面等,都能有效地传输。
H.264:H.264 是由ISO/IEC 与ITU-T 组成的联合视频组(JVT)制定的新一代视频压缩编码标准。1996 年制定H.263标准后,ITU-T 的视频编码专家组(VCEG)开始了两个方面的研究:一个是短期研究计划,在H.263 基础上增加选项(之后产生了H.263+与H.263++);另一个是长期研究计划,制定一种新标准以支持低码率的视频通信。长期研究计划产生了H.26L 标准草案,其目标是研制出新的压缩标准,与以前的任何标准相比,效率要提高一倍,同时具有简单、直观的视频编码技术,网络友好的视频描述,适合交互和非交互式应用(广播、存储、流煤体)。2001 年,ISO 的MPEG 组织认识到H.26L 潜在的优势,随后ISO 与ITU 开始组建包括来自ISO/IEC MPEG与ITU-T VCEG 的联合视频组(JVT),JVT 的主要任务就是将H.26L 草案发展为一个国际性标准。于是,在ISO/IEC中该标准命名为AVC(Advanced Video Coding),作为MPEG-4 标准的第10 个选项;在ITU-T 中正式命名为H.264标准。该标准在2003 年3 月正式获得批准。

编码算法的性能评估:
评估编码器的性能时要考虑几个重要因素。这些因素如下提示:
<1>:帧长度:也就是帧字节数,这个值表示经编码处理后的字节数(不包括帧头)。
<2>:处理时延:它表示在编码器中对一帧语音做编码算法处理所需时间。处理时延也称为算法时延,通常可以等效为用时间作为衡量单位的帧长。
<3>:前视时延:编码器为了对当前帧的编码提供帮助而检查下一帧的一定长度,此长度就称为前视时延。前视的想法是为了利用相邻语音帧之间的密切相关性。
处理时延和前视时延总和统称为算法时延。典型值为:10~30ms,如常用的ITU-T G.729算法和ITU-T G.723.1算法的算法时延分别为15ms和37.5ms;一般来说,帧长越大,越有利于降低比特率。
<4>:计算时延:编码器分析时间和解码器重建时间,其值取决于算法的复杂度和硬件的处理速度;计算时延必须小于帧长,以确保下一帧到来时,当前帧已处理完毕。
<5>:比特率:当编解码器的输入是标准脉冲编码调制的语音码流(比特率为64 kbit/s)时,编解码器的输出速率。
<6>:DSP MIPS:以百万指令/秒(MIPS)为计量单位,此值是指支持特定编码器的DSP处理器的最低速度。值的注意的是DSP MISP与其它处理器的MISP速率无关。编码算法的复杂度决定了硬件的成本和功耗。复杂度越高,所选用的硬件的处理能力越强,以保证编码的计算时延小于某一设计值。VoIP系统通常选用中低复杂度的编码。通常来说,<15MIPS的编码算法为低复杂度,>30MIPS的算法为高复杂度。常用的ITU-T G.729算法和ITU-T G.723.1算法的复杂度分别为18MIPS和16MIPS。
<7>:RAM需求:它描述了支持特定的编码过程所需要RAM的大小。
关于话音延迟的详细描述,会在第5节介绍。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: