Friday, October 15, 2010

G.726

G.726

G.276简介

回到顶部
    G.276是ITU-T定义的一种音频编码算法.主要基于以16-40kibt/s比特率运行的.

G.276的特色

回到顶部

    样品频率是 8 kHz

    信号可转换为16 kbit/s, 24 kbit/s, 32 kbit/s, 40 kbit/s 比特率(bit rates)

    G.726 是一种 waveform speech coder ,可使用 Adaptive Differential PULSE Code ModulatiON (ADPCM)

G.711,G.723, G.726, G.729以及iLBC编码算法的参数比较

回到顶部

    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:

    G729语音压缩编译码算法

    采用算法是共轭结构的代数码激励线性预测(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设备.

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/scarlettsp/archive/2009/03/13/3987284.aspx

G.726语音编解码器FPGA的SoPC上的实现

回到顶部

    G.726是ITU前身CCITT于1990年在G.721和G.723标准的基础上提出的关于把64kbps非线性PCM信号转换为40kbps、32kbps、24kbps、16kbps的ADPCM信号的标准.G.726标准算法简单,语音质量高,多次转换后语音质量有保证,能够在低比率上达到网络等级的话音质量,从而在语音存储和语音传输领域得到了广泛应用.

    G.726语音压缩算法已经能够在以DSP处理器为核心器件的DSP应用系统上实现.但开发以DSP处理器为核心的DSP应用系统所采用的开发方法是自底向上的设计流程,严重影响开发的效率和成功率.面对现代通信技术的发展,DSP处理器暴露出硬件结构的不可变性、处理速度比较慢等不足.现代大容量、高速度的FPGA及其相关开发技术,在可重配置的DSP应用领域、DSP数据大吞吐量和数据的纯硬件处理方面,有独特的优势.新的基于FPGA的DSP系统级开发工具以及完整的软件开发平台,使得设计者采用自顶向下的开发方法进行FPGA的DSP设计,设计效率大为提高.

    本文介绍了G.726标准,给出了基于FPGA的DSP设计开发流程,利用MATLAB/Simulink、ALTERA公司的DSP Builder和SOPC Builder工具设计了语音记录SoPC系统中的G.726语音编解码器,并实现了编解码器在该系统中的综合.采用基于FPGA的G.726语音编解码器的语音记录嵌入式系统具有运行速度快、体积小巧、开发周期短等优点.

    1 G.726语音编解码标准

    G.726编码器框图如图1所示.G.726语音编解码器首先将输入的A律或μ律的log-PCM信号S(k)转换成线性的PCM码Sl(k),然后与预测信号Se(k)相减产生差分信号d(k),再对差值信号进行自适应量化,产生2~5比ADPCM码I(k).一方面将I(k)送至解码器;另一方面逆自适应量化器利用I(k)产生量化差分信号dq(k).预测信号Se(k)和量化差分信号dq(k)相加产生本地重构信号Sr(k).自适应预测器是由二阶极点和六阶零点组成的滤波器,根据重构信号Sr(k)和量化差分信号dq(k)产生输入信号的预测信号Se(k).量化器比例因子自适应单元根据输入信号的特性计算量化器比例因子y(k),用来控制量化量和逆量化器,以获得自适应功能.量化器比例因子由快速因子和慢速因子两部分,以及速度控制因子al(k)对这两部分的加权组成.速度比例因子al(k)的计算由自适应速度控制单元与音调和传送检测检测单元完成.

    G.726语音解码器的解码过程实际上已经包含在编程器中,只是多了输出PCM格式转换单元和同步串行编码调整单元.输出PCM格式转换是将线性PCM码转换为A律或μ律PCM码;同步串行编码调整是为了防止多级传输、转换过程中的误差.

    2 基于FPGA的DSP设计开发流程

    利用传统的开发工具,基于FPGA的DSP开发者在算法确定后只能直接使用VHDL或VerilogHDL语音进行FPGA的DSP系统设计,开发需要较长的周期,且难度比较大.目前出现的基于FPGA的DSP开发工具,如DSP Builder、SOPC Builder、SYSTEM Generator等,使得设计者能遵循一条类似于软件设计流程的开发方法进行FPGA的DSP设计,设计效率大为提高.

    本文给出利用MATLAB/Simulink和Altear公司的开发工具进行基于FPGA的DSP设计的开发流程.DSP Builder的ALTERA公司推出的面向DSP开发的系统级工具.它作为MATLAB的一个Simulink工具箱(ToolBox)出现.MathWorks的MATLAB和Simulink系统级的设计工具具备了算法开发、仿真、验证能力,DSP Builder将这些工具与ALTERA的开发工具组合在一起,为用户提供了一个完整的DSP开发平台.

    基于FPGA的DSP设计系统级开发流程如图2所示.其步骤:(1)在MATLAB/Simulink中对DSP系统进行建模,用图形方式调用ALTERA DSP Builder和其他Simulink库的图像模块(Block),构成系统级和算法级设计框图,同时利用Simulink完成模型仿真.(2)利用DSP Buider将Simulink的模型文件(.mdl)转化成通用的硬件描述语言VHDL文件(.vhd),转换获得HDL文件是基于RTL级的VHDL描述.(3)对转换过程中产生的VHDL的RTL代码和仿真文件进行综合、编译适配以及仿真.所用工具可以是ALTERA和Quartus II软件,也可以是第三方软件工具.(4)在DSP Builder中直接下载到FPGA用户开发板上,也可通过Quartus II完成硬件的下载、测试.整个开发流程几乎可以在同一环境中完成,真正实现了自顶向下的设计流程,极大地缩短了DSP设计周期.

    3 G.726语音编解码器在SoPC中的实现

    3.1 G.726标准算法的简化

    本文设计的编解码器是在语音记录系统中实现G.726建议的速率为32kbps的ADPCM算法,根据实际情况对算法进行了一些简化和改进.

    具体简化如下:(1)由于此系统中编解码器的输入信号是线性PCM码,因此PCM码转换模块可以省略.(2)这个算法是用在单纯的语音存储中,可不进行单音/过渡音检测.(3)对量化器比例因子y(k)的更新进行简化.y(k)的更新计算为:

    y(k)=a1(k)yu(k-1)+[1-al(k)]yl(k-1) (1)

    一般情况下,只有语音信号时,al(k)是趋于1的;当输入为平稳信号时,al(k)的值则在0至1之间.对语音存储系统,在输入只有语音的情况下可以粗略地认为al(k)的值近似为1,从而将计算得到的快速比例因子yu(k)直接作为新的比例因子y(k),即y(k)=yu(k-1),降低了算法的复杂度.

    3.2 G.726算法在Simulink中的建模

    在Simulink中利用ALTERA DSP Builder库模块建立用于FPGA定点实现的模型.这里给出G.726编码器模型的设计.整个设计采用多层次结构,在顶层设计模型下包括多个子系统模型模型,如自适应量化器子系统模型、逆自适应量化器子系统模型、量化器比例因子自适应子系统模型等.下面重点分析编码器系统中的顶层设计模型及自适应量化器子系统模型.

    3.2.1 编码器的顶层设计模型

    顶层模型提供了对外的PCM语音接口,同时也提供了对AvalON总线的接口,使得所设计的编码器模型可通过SOPC Builder集成为Nios II系统的一个外围设备.模型中的自适应量化模型、逆自适应量化器模型、最化器比例因子自适应模块和自适应预测模块均为HDL SubSYSTEM.编码器的顶层设计模型如图3所示.

    其中SignalCompiler模块是DSP Builder的心脏.其主要完成的功能包括:(1)将Simulink设计转变成可综合的RTL级VHDL代码;(2)产生VHDL testbenches;(3)为LeonardoSpectrum、Synplify和Modelsim第三方EDA工具产生Tcl脚本文件;(4)为Quartus II的仿真产生仿真矢量文件(.vec);(5)产生PTF配置文件,用于将设计自动地输给SOPC Builder工具.SignalCompiler控制着设计系统的综合、编译和仿真的流程.

    根据G.726 语音算法的需求,系统需要两个时钟,分别为8kHz和120kHz,其中120kHz用于自适应预测器子系统.因此需要在模型中利用锁相环模块PLL实现多时钟设计,产生所需的两个时钟,DSP Builder根据PLL输出时钟的上升沿工作.在Simulink 设计图上不会显示时序模型的时钟引脚,而是当SignalCompiler将系统转化为VHDL文件时才自动地把时序模块的时钟引脚与相应时钟相连.

    3.2.2 编码器的自适应量化器子系统模型

    自适应量化器模型如图4所示.自适应量化在对数域内进行,在用量化比较因子对差分信号进行规格化处理后,通过查找量化器规格化输入/输出特性表,即得到ADPCM码.对数运算在Simulink 中的实现是借助于查找表的方式,使用DSP Builder子库中的LUT模块;规格化输入/输出特性表的实现是采用ROM查表法的方式,用ROM EAB模块实现.

    由于ADPCM语音编解码算法最终要在FPGA上实现,Simulink 中浮点值必须转换成定点值并能在目标硬件实现.硬件中表示定点值的位数以及小数点的位置不但会影响构成硬件系统的资源利用率,还影响系统的特性.本设计中根据信号的应用范围判定小数点的位置,并根据实际需要改变小数点右侧的位数,以节省硬件资源,灵活地应用总线控制库中的模块来对总数进行截位、增位、位提取或进行数据类型转换等操作,以达到所需求的精度.

    3.3 G.726 算法模型的仿真过程

    利用MATLAB/Simulink 和DSP Builder工具进行基于FPGA的DSP设计需要进行一系列的仿真.在Simulink 中设计的模型首先要在Simulink 中仿真,不仅是验证模型的正确性,而且因为用于ModelSim仿真的TestBench文件的输入信号激励是由SignalCompiler根据Simulink的仿真结构产生,并且只能仿真后利用SignalCompiler转换产生的VEC文件才有效.在Simulink中完成仿真验证后,使用SignalCompiler将模型进行设计转换.

    对于设计转换后产生的VHDL文件,必须进行RTL级仿真.因为Simulink 中模型仿真是算法级的,而生成的VHDL描述是RTL级的,两者描述的情况可以不完全符合,因此需要对生成的RTL级VHDL代码进行功能仿真.仿真可通过在Modelsim中运行转换过程所生成的Tcl脚本文件.最后可以利用转换过程生成的VEC文件,在Quartus II软件中进行时序仿真.

    本设计对上述建模的语音编码器完成了仿真,Simulink的仿真结果表明所设计的语音编码器达到了预期的结果.

    3.4 编解码器模型在SoPC系统中的综合

    编码器模型在Quartus II综合和编译后,可以使用SOPC Builder将其作为外围设备添加到Niso II系统中.SignalCompiler生成的 PTF配置文件可用于将设计自动地输出给SOPC Builder工具.所设计的编码器出现在SOPC Builder的模块池中,将其添加到所创建的系统中即可.所建SoPC系统元件页如图5所示,图5中只列出了语音记录系统的一部分组件.利用SOPC Builder即可生成一个完整的系统,最后生成编程文件,进行硬件的下载,完成G.726 语音编码器在SoPC中的设计.

    由于DSP Builder中的DSP基本模块以算法级的描述,而且采用Simulink图形化界面,因此设计非常直观,实现了自顶向下的开发流程.与传统的DSP开发相比,大大缩短了创建DSP设计的硬件的开发周期.设计的编解码器可作为Nios II系统的外围设备,通过SOPC Builder很方便地综合到SoPC系统中.同时,由于设计是在基于FPGA的SoPC上实现,因此可以根据实际需求更改设计,对系统进行重配置,具有很高的灵活性.本G.726语音编解码器的性能基本上达到了设计要求

G.726基于MCF5213及Zigbee技术实现无线对讲系统

回到顶部

    硬件架构

    MCF5213处理器

    MCF5213是FREESCALE半导体公司Coldfire系列嵌入式处理器中一款低成本、低功耗的32位微处理器.它提供了一个电路设计简单的单片式处理器解决方案,最高可配置256KB高性能、近乎单点接入、隔行扫描的可靠嵌入式闪存.MCF5213具有BGA和QFP两种封装,主频最高为 80MHz.

    MCF521X处理器内部集成乘加器 (MAC)完成类似DSP的功能,可以实现G.726格式的语音编解码软件,码流低、音效好.同时处理器具有低功耗特性,其内部的模块化时钟可以在所有运行模式下启用和停用,内部PLL电路可以对系统时钟进行灵活的设置,其最大电流通常不超过1mA/MHz.

    图1为MCF521X系列处理器内部架构图,MCF5213内置32KB SRAM、256KB FLASH.MCF521X处理器的FLASH 存储空间以及SRAM,可以容纳mC/OS-II操作系统在片内存储和运行,省去了一般嵌入式系统所需的外围存储芯片,简化了外围设计电路,也使得系统的整体成本大大降低.

    图1  MCF521X处理器内部架构

    除了处理器内置的存储器外,MCF521X系列处理器还集成了丰富的外设接口,以便于与其他系统的互连.外设包括:三个异步收发器(UART)、I2C、QSPI、GPIO、A/D、PWM、CAN总线等资源.如图2所示,可方便的扩展其他功能及和外部通讯.

    图2:MCF5213内置资源可扩展丰富外设

    HHCF5213对讲机

    基于MCF5213处理器丰富的片内资源及低功耗设计,华恒科技提供的HHCF5213-R1 Zigbee无线音频对讲系统架构如图3所示.

    图3  基于MCF5213及Zigbee无线技术的音频应用系统框图

    系统构成

    G.726实时音频编解码

    简单的音频采集回放过程:从麦克风输入的音频信号经AD转换,在CPU内进行G.726的压缩编码、解码后,从PWM口输出,再经一个积分电路、放大电路,输出音频信号.如图4所示.

    图4  音频回放流程图

    音频采集由M5213处理器内部的AD接口直接支持,无须额外的Codec芯片及复杂的电路.音频采样率设为8kHz,即每隔125us采样一次;而对一个数据点进行G.726的压缩编码、解码所需时间约为80us,所以系统可以实现实时的G.726压缩编解码.

    G.726编码简单来说就是把16bit的音频数据压缩为2bit的数据,解码则是把2bit的数据恢复成16bit的数据.目前我们提供的G.726编解码已经做成模块的形式,直接进行函数调用即可,在模块里进行音频数据的G.726压缩编解码.传入参数为一个指向音频数据的指针,传出参数编码、解码后的音频数据.将PWM用作D/A口解码输出音频时,需要一个由运放构成的积分放大电路.

    对讲系统软件采用mc/OS-II嵌入式实时操作系统实现编程,例程从略.

    Zigbee无线音频传输

    Zigbee于2004年底通过IEEE802.15.4标准,是一种新兴的近距离、低复杂度、低功耗、低数据速率、低成本的无线网络技术,它是一种介于无线标记技术和蓝牙之间的技术提案.主要用于近距离无线连接.它依据802.15.4标准,在数千个微小的传感器之间相互协调实现通信.这些传感器只需要很少的能量,以接力的方式通过无线传输将数据从一个传感器传到另一个传感器,所以它们的通信效率非常高.可以预计Zigbee将广泛应用到包括工业控制、消费性电子设备、汽车自动化、农业自动化和医用设备控制等领域.

    图5为FREESCALE提供的符合IEEE 802.15.4标准的MC13192射频数据调制解调器及系统框图.MC13192的特性包括:

    *根据IEEE 802.15.4标准的Zigbee技术;

    *全频谱编码和译码;

    *经济高效的CMOS设计几乎不需要外部元件;

    *可编程的时钟,供基带MCU使用;

    *标准的4线SPI接口(以4MHz或更高频率运行),7条GPIO线路;

    *可编程的输出功率,为0 dBm~3.6dBm;

    *在分组错误率为1%的情况下,其接收灵敏度达到-92dBm(典型值);

    *采用DSSS扩频通信技术,最大速率为250kbps,共有16个信道.

    图5:Zigbee系统结构框图

    Zigbee是以一个个独立的工作节点为依托,通过无线通信组成星状、片状或网状网络,因此,每个节点的功能并非都相同.为降低成本,系统中大部分的节点为子节点,从组网通信上,它只是其功能的一个子集,称为精简功能设备;而另外还有一些节点,负责与所控制的子节点通信、汇集数据和发布控制,或起到通信路由的作用,称之为全功能设备(也称为协调器).也就是说,基于HHCF5213-R1系统,可以实现点对点的直接音频双向传输,也可以通过Zigbee的网关来实现无线数据的中转和互传,如图6所示.

    图6  点对点音频无线传输系统功能框图

    结语

    基于MCF5213处理器和实时操作系统uC/OS-II,以及Zigbee无线技术的高可靠性、低功耗的无线连接功能,可用于低码流音频、数据传输.华恒科技可提供有关开发工具及技术支持.

No comments:

Post a Comment