本章综述在IP语音技术(VOIP)中常用的编码解码器(CODEC)。它们常被称为编码解解码器、语音编码器或者简称为编码器。有关这方面的知识很多。
本章首先简要介绍编码器的主要功能、编码器的分类,然后阐述以及用于VOIP的三种编码器:IUT-T G.723语音编者按码器、ITU-T G.729语音编码器。
一、 语音编码器的功能 语音编码器的主要功能就是把用户语音的PCM(脉冲编码调制)样值编码成少量的比特(帧)。这种方法使得语音在连路产生误码、网络抖动和突发传输时具有健壮性(Robustness)。在接收端,语音帧先被误码为PCM语音样值,然后再转换成语音波形。
二、 语音编器的分类 语音编码器分为三种类形:(a)波形编器;(b)声码器;(c)混合编码器。波形编码器会尽可能构出包括背景噪单在内的模拟波形。由于波形编码器作用于所有输入信号,因此会产生高质量的样值。然而,波形编码器工作在高比特率。例如:ITU-G.711规范(PCM)用的比特率为64Kbps。
声码器(vocoder)不会再生原始波形。这组编码器会提取一组参数,这组参数被送到接收端,用来导出语音产生模形。线性预测编码(LPC)用来获取一时变数字滤波器的参数。这个滤波器用来模拟说话人的声道输出[WEST96]。在电话系统中使用声码器,语音质量不够好。
图4-1 合成分析操作
图4-2 低比特率编码器的MOS得分--比特率关系曲线(WEST96)
在VOIP中常用的语音编码器是混合编码器,它融入了波形编码器和声器的长处,它的另一特点是它工作在非常低的比特率(4-6Kbps)。混合编码器采用合成分析(AbS)。
为了说明问题,考虑人的声道产生的一个语音模式:当人说话产生语音信号时就会发出浊音(如音素pa、da等)和清音(如音素sh、th)。激励信号就是由输入的语音信号导出的,其方法是使合成语音与输入语音的差别非常小。LPC的用法、激励的产生以及对合成分析(AbS)系统的误差检查均如图4-1所示。 长话质量编码器在比特率高于8Kbps时容易实现,如图4-2所示。长话质量的语音平均意见得分(MOS)必须在分或许分以上。传统的PCN语音在比特率小于32 Kbps,语音质量会严重恶化,在这里就不讨论PCN了。混合编码和声码器在比特率相当低的MOS上的得分是可接受的。在现阶段,大多数基于VOIP的编码器的工作范围在5.2~8kbps。研究表明,标准的编码器在比特率为4 Kbps时能提供可接受的NOS得分,一些分用系统在4.8 Kbps的MOS上的得分为3.8。
矢量量化和码激励线性预测 一种较好的方法就是用预测存储的最优参数(码元矢量)的码本对输入语音信号的表示矢量进行编码,这种技术称为矢量量化(VQ,vector quantization)。 将VQ和AbS技术结合在一起会进一步提高编码性能。AbS VQ是技术构成CELP的基础。VQ和AbS VQ的主要区别在于进行矢量量化码簿搜索时采用的量化失真测量定义的不同[WONG96]。
三、线性预测合成分析编码器 最常用的比特率在4.8kbps~16 kbps之间的语音编码器是基于模型编码器的,这些编码器都是线性预测合成分析(LPAS)方法。为了随着时间的变化模拟语音信号,线性预测语音产生模型必须用适当的信号来激励。每隔一段固定时间(如每隔20ms),语音模型参数和激励参数都必须做一次估计和更新,并用来控制语音模型。下面将介绍两种LPAS编码器:前向至应LPAS编码器和后向自适应LPAS编码器。 3.1 前向自适应LPAS编码器:8kbps G.729编码器和6.3kbps 与5.3kbps G.723.1编码器 在前向自适应的AbS编码器中,预测滤波器的系数和增益是显示传送的。为了提供长话质量的语音性能,这两种编码器都依赖于信源模型。激励信号(以语音基调周期的信息形式表示)也要传送。这种编码器所提供的模型对语音信号来说是比较好的,但对于一些噪音或者多数器来说并不合适。因此,在背景噪音和音乐环境下,LPAS编码器的质量比7.726和7.727的编码器的质量要差一些。
① G.723.1 ITU-T G.723.1编码器在6.4kbps提供长话质量语音。同时 G.723.1还包括一个工作在5.3kbps的低质量语音编码器。G.723.1是为低比特率可视电话而设计的。在这种适应中,由于视频编码时延通常大于语音编码时延,因此对时延的要求不是很严格。G.723.1编码器的帧长为30ms,还有7.5ms的前视。再加上编码器的处理时延,编码器的单向总时延为67.5ms。其它时延是由系统缓冲区和网络造成的。
G.723.1编码器首先对语音信号进行传统电话带宽的波滤(基于G.712),再对语音信号用传统的8000Hz速率进行抽样(基于G.711),并变换成位的线性PCM码作作为该编码器的输入。在编码器中对输出进行逆操作来重构语音信号。 G.723.1系统用LPAS编码方法将语音信号编码成帧。编码器能够产生两种速率的语音流量:(a)用于高速率的6.3kbps;
(b)用于低速率的5.3kbps。主速率编码器使用多脉冲最大自然量化(MP-MLQ),低速率编码器使用代数码激励线性预测(ACELP,Algebraic-Code-Excited Linear-Prediction)方法。编码器和解码器都必须支持两种速率,并通能够在帧间对两种速度进行转换,此系统同样能够对音乐和其它音频信号进行压缩和解压缩,但它对语音信号来说是最优的。
编码器对帧进行操作,每帧包括240个样点,采用速率为8000Hz。在进一步的处理(高通滤波器去直流分量)后把每帧分成4个子帧,每个子帧包括60个样点,其它的各种操作包括LPC滤波器以及LSP滤波器非量化系数的计算等,将会导致30ms的分组时延。对每个子帧,用未经处理的输入信号计算LPC滤波器。最后一个子帧的滤波器系数用来预测分裂矢量量化器(PSVQ,Predictive split Vector quantizer)进行量化。正如前面所介绍的,前视占有7.5ms,所以整个编码时延为37.5ms。这个时延在评介编码器,尤其是通过数据网络传输语音时是个很重要的因素,因为如果编码及解码时延比较小的话,就意味着处理互联网中的时延及其抖动时具有更大的自由度。解码器的处理也是基于帧的,解码过程如下(G.723.1算法摘要):
·对LPC的量化索引号进行解码。
·对构造LPC合成滤波器。
·对每个子帧,先对自适应码本激励和固定码本激励解码,然后再输入合成滤波器。
·激励信号经基音后置滤波器处理后,再送入合成滤波器。
·合成信号被输入到共振峰后置滤波器,该滤波器采用增益标度单元以使其输出能量维持在糨的输入水平。
静音压缩已运用多年,它运用了在总会话时间中静音时间占大约50%这一事实。其基本思路是在静音期间减少传送的比特数,从而节省了所需传输的总比特数。在电话网中,多年来对模拟语音信号都是用时间分配语音插值(TASI,Time-Assigned Speech Interpolation)主法进行处理。这一技术也就是将其它语音信号或者数据信号放置在谈话的静音期间内,从而为多信道链路提供附加容量。现今,TASI已运用数字信号中并被赋予新名称--其中的一个例子就是时分多址(TDMA,Time Division Multiple Access)。简要地讲,DTMA是将通常的信号划分成很小的、数字化片段(slots即时隙)。这些时隙和其它时隙一起在一个信道中进行时分复用。
G.723.1采用了执行不连续传输的静音压缩,这就意味着在静音期间的比特流中加入了人为的噪声。除了预留带宽之外,这种技术使发信机的调制解调器保持边续工作,并且避免了载波信号的时通时断。
② G.729编码器是为低时延应用设计的,它的帧长只有10ms,处理时延也是10ms,再加上5ms的前视,这就使得G.729产生的点到点的时延为25ms,比特率为8 kbps。这些时延性能在互联网中很重要,因为我们知道任何能减少时延的因素都是非常重要的。
G.729有两个版本:G.729和G.729A。G.729比G.723.1简单。这两个版本互相兼容但它们的性能有些不同,复杂性低的版本(G.729A)性能较差。两种编码器都提供了对帧丢失和分组丢失的隐藏处理机制,因此在因特网上传输语音时,这两种编码器都是很好的选择。Cox等[COX98]认为G.729在处理随机比特错误方面性能不好。建议在有随机比特错误的信道上不使用此编码器,除非利用信道编码(前向纠错码和卷积码,将在无线部份讨论)保护最敏感的比特。
3.2 后向自适应LPAS编码:16 kbps G.728低时延码激励线性预测 G.728是低比特线性预测合成分析编码器(G.729和G.723.1)和后向ADPCM编码器的混合体。G.728是LD-CELP编码器,它一次只处理5个样点。
CELP是上种语音编码技术,它的激励信号是从一个可能的激励信号集合中通过全搜索方法选出的。低速率语音编码吕器对样值预测滤波器采用前向自适应方案。而LD-CELP采用后向自适应滤波器并每隔2.5ms做一次更新。CELP中共有1024个可能的激励矢量。这些矢量可进一步分析为4种可能的增益,两种符号(+和-)与128种形状矢量。
对于低速率(56~128 kbps)的综合业务数字网(ISDN)可视电话,G.728是一种建议采用的语音编码器。由于其后向自适应特性,因此G.728是一种低时延编码器,但它比其它的编码器都复杂,这是因为在编码器中必须重复做50阶LPC分析。G.728还采用了自适应后置滤波器来提高其性能。
四、参数语音编码器:2.4 kbps混合激励线性预测编码 参数编码器采用简化激励信号的语音模型,因而能工作在最低比特率。前而讨论的所有语音编码器都可描述为波形跟踪,它们输出信号的波形和相位与输入信号很相似。
参数语音编码器却不同,它不呈现为波形跟踪。这类编码器是基于分析合成模型的,可用相当少的参数表示语音信号。这些参数通常是每隔20ms~40ms就会从语音信号中提取和量化。在接收端,这些参数用来生成合成语音信号。在理想条件下,合成语音听起来和原始语音相似。在背景噪音较大的情况下,由于输入的语音信号不能根据其内在的语音模型很好的建模,所以任何参数编码器都将失败。美国政府选择了2.4 kbps MELP用于保密电话。
对于我媒体应用,[COX98]的研究指出:当需要低比特率时,参数编码器是一种好的选择。例如,简单的用户游戏中经常用参数编码器。这会降低所需的存储空间。出于同样的原因,参数编码器对某些多媒体消息型业务也是一种好的选择。对所有类型的语音环境来说,参数编码器的绝对语音质量都较低,尤其是在噪声环境下。如果事先能对语音文件做仔细的编辑,那么这个缺点是能克服的。目前,多媒体应用中的大多数参数编码器都不是标准的。而是适用于这类专用编码器。
用于无线通信的G.723.1可变速率编码 G.723.1的附件C规定了一个信道编码规范,此规范可以和三倍速率的语音编码器一起使用。这个信道编码器的比特率的可变的,它作为整个H.324标准系列的一部份,是为移动多媒体应用设计的。
这个信道编码器支持的比特率范围从0.7 kbps到4.3 kbps。它也支持G.723.1的三个操作模式的编解码器,即高速率模式、低速率模式和不连续传送模式。这个信道编码器采用截短卷积码,根据每一类型信息比特主观重要性的不同,信道编码器的比特率可对不同的比特类型分进行优化。这种分配算法对编码器和解码器都是已知的。每次的系统控制信号无论是改变G.723.1的速率还是改变信道编码器的比特率,这个算法都会使信道编码器适应于新的语音业务配置。
如果信道编码器的可用速率较低,那么首先要保护主观上最敏感的比特位。当信道编码器的比特率增加时,多余的信道比特首先用来保护更多的信息比特位,然后再对已保护过的比特类型增强保护。在运用信道编码之前,语音参数要在信道适配层作部份的变化以提高对传输错误的健壮性。
五、编码器评价 评估编码器的性能时要考虑几个重要因素。这些因素如下提示:
·帧大小:帧的大小表示语音流量的时间长度,也称为帧时延。 帧是语音信号的分立部件,且每帧是根据语音样点更新的。本介绍的编码器都是一次处理一帧。每帧信息各放在各语音分组 中,并传送给接收端。
·处理时延:它表示在编码器中对一帧语音做编码算法处理所 需时间。它通常简单计入帧时延。处理时延好称为算法时延。
·前视时延:编码器为了对当前帧的编码提供帮助而检查下一 帧的一定长度,此长度就称为前视时延。前视的想法是为了利用相邻语音帧之间的密切相关性。 帧长度:这个值表示经编码处理后的字节数(不包括帧头)。
·语音比特率:当编解码器的输入是标准脉冲编码调制的语音码流(比特率为64 kbit/s)时,编解码器的输出速率。
·DSP MIPS:此值是指支持特定编码器的DSP处理器的最低 速度。值提注意的是DSP MISP与其它处理器的MISP速率无 关。与用在工作站和个人计算机上通用处理器不同,这些DSP 是为特定任务而专门设计的。因此,为实现上述的编解码器处理所需求MISP,通用处理器要比专用DSP处理器大。
·RAM需求:它描述了支持特定的编码过程所需要RAM的大 小。
评价编码器性能的关键因素是编码器工作所需时间。这个时间是指编码器的缓存及处理时间,称为单向系统时延。其值等于:帧大小+处理时延+前视时延。显然,解码时延也非常重要。实际上,解码时延大约是编码时延的一半。
六、语音编码器的比较 为了标准编码器的讨论作个总结,表4-1[RUDK97]对几种编码器的比特率、MOS、复杂性(以G .711为基准)和时延(帧大小及前视时间)作为比较。
表4-1 语音编码标准[RUDK97]
标准 | 编码类型 | 比特(kbps) | MOS | 复杂性 | 时延(ms) |
G.711 | PCM | 64 | 4.3 | 1 | 0.125 |
G.726 | ADPCM | 32 | 4.0 | 10 | 0.125 |
G.728 | LD-CELP | 16 | 4.0 | 50 | 0.625 |
GSM | RAE_LPT | 13 | 3.7 | 5 | 20 |
G.729 | CSA-CELP | 8 | 4.0 | 30 | 15 |
G.723.1 | ACELP | 6.3 | 3.8 | 25 | 37.5 |
US Dod | LPC-10 | 2.4 | 合成语音 | 10 | 22.5 |
七、小结语音编码器是建立和处理VOIP分组的发动机的。它由DSP驱动。原来的DS0、TMD G.711 64kbps编码器最终会被工业淘汰,并由低比特率编码器所替代。
文章评论(0条评论)
登录后参与讨论