DIY编程器网

标题: 实现嵌入的基于DSP的VoP系统 [打印本页]

作者: liyf    时间: 2012-1-27 20:17
标题: 实现嵌入的基于DSP的VoP系统

  
         
        话音包(VoP)系统的一件艰巨任务是桥接常比特率的电话网络与可变比特率的数据网络。VoP系统有三个典型的部件(参见附图):
  PCM接口处理常比特率电话网上的往返数据流,包括脉码调制(PCM)的话音、传真,以及modem数据流。
  VoP部件处理PCM与分组数据之间转换,以及语音压缩、回音抑制之类的话音处理算法。
协议处理部件管理传输数据进入可变比特率网络时的协议处理。
  由于话音处理涉及大量的数学运算,数字信号处理器(DSP)在VoP部件中比通用的处理器效率要高得多。采用DSP的系统还是更加经济和灵活的,对于高密度嵌入式话音网关系统更是如此。
  在这些系统中,用主处理器做协议模块,用多个DSP分别处理多个PCM通道。但是,无论一个DSP必须处理几个通道,尽量减少DSP的数量而且保证服务质量(QoS)才是问题的关键所在。

服务质量
  衡量带有实时话音的包网络的服务质量与衡量只有数据的包网络的服务质量,二者有显著差别。数据网络唯一关注的是使数据差错率最小。
  但是,话音通道有赖于所产生的话音的质量。由于公共交换电话网络的用户已经习惯于期待高的通话质量和服务可靠性,因此,在大多数应用中,VoP系统不降低话音质量或不引起长的延迟是很重要的。
延时和回音
  通话是进行相互的实时交流,因此,延时是确定话音质量的一项重要指标。虽然没有表征延时影响的一种大众认可的评分,但是经验已经表明,通道的总延时超过200毫秒时会严重损害双方通话的进行。



图:VoP系统有三个典型的主要部件:PCM接口、VoP部件和协议处理部位。
除了话音质量外,单向总延时为20毫秒或更多时还会影响到实现回音消除所需的处理能力。在连接用户电话的两线模拟环路与四线网络连接之间有一个线路混合装置。
  这个装置中的阻抗失配几乎都会产生一种“讲话人的回音”,它是通过沿着到达远端通话人的传输路径而回到近端通话人的所接收模拟信号的反射。如果系统的延时越长,为了避免对通话人产生干扰,回音的幅度必须越小。
  由于几乎所有的VoP系统都会使延时增大,因此,回音消除就是必不可少的。根据制定线路回音消减器要求的ITU-T建议G.168,实现回音消减的复杂性(从而,处理器的性能及存储器需求)很大程度上依赖于必须被消减的回音的持续时间或尾长。
  影响服务质量的另一个因素是系统处理通话间歇的方法。通过检测到通话人不在讲话的那些时段,并且用无声或者某种熟悉的背景噪音去代替话音,可以显著地降低系统的平均位码率。
丢包
  偶尔会出现包含了话音数据的包在谈话过程中没有出现的情况。出现的原因很多,例如信道传输误差,或者传输等待的时间过长。
  使用TCP/IP之类的可靠传输协议无法避免信道误差。即使包最终传送到了对方,其中的话音数据也已经过时了。为了保持通话的实时性,宁可使用不可靠的传输协议。
  很多语音编码算法,特别是使用长分组的高压缩算法,丢包时都会产生明显的人为痕迹,因为丢包影响了整个帧。这种人为的变化所产生的影响随着应用的情况而不同。
  当进行简短的相互通话时,偶尔丢包不会产生严重的影响。但是,连续的讲话和音乐中出现这种人为改变的情况就影响显著。
为了减轻丢失产生的影响,DSP必须提供一种办法来替代丢失的数据。一种办法是缩短上一帧,用它取代丢失的包。
  另外的办法还有从前面的帧进行外插,或者对于丢失的数据替换背景滤波器系数。可能系统也需要检测何时出现了大范围的丢包,之后放弃替换的作法,仅仅用无声播放。每种方法都需要付出MIPS和存储器的代价。
  另一种存储器的消耗来源于处理延时变异:主要是由于网络现象而引起声音信号延时的变化,例如包排队以及不同的包采取不同的路由。当一个完整的话音数据包已经准备好但不能马上传输时,常常会出现这种延时。这种延时可能是由于出现与其他具有同等优先级的数据包的竞争,或者由于一个低优先级的数据包已经开始了传输,而且必须允许其完成。
  延时变异与下列几种因素有关,包括最小数据包长,能够同时生成包的其他话音信道的个数,以及网络的总体阻塞情况。系统必须有足够大的延时缓冲器,一般对于数字用户环路上的话音(VoDSL)为10毫秒,但是对于VoIP可能要100毫秒以上,才能防止在接收端出现数据不足的状况。延时缓冲器的需求与通信的类型有关,例如话音或传真/modem通信等,因此,系统可能有动态调整的缓冲器大小。

系统问题
  很多VoP系统的实现采用一个或多个DSP进行语音处理,采用一个RISC主处理器处理协议。这种方法对于同时处理四个以上语音信道的系统特别有效。
  位操作和协议管理之类的数据处理任务并没有充分有效地利用DSP的处理能力。对于VoIP应用而言,其堆栈相当大。如果VoIP通过DSL实现,堆栈包含一个异步传输模式(ATM)点对点协议下的用户数据电报协议(UDP)。
  因此,除了语音处理以外,DSP至少还应该提供7个协议(见表)。但是,对于VoDSL应用的堆栈就小得多。
  DSL论坛在VoDSL规范中推荐使用ATM适配层2(AAL2)协议。AAL2为延时敏感的应用(如话音)提供低速率、短和变长包的带宽高效的传输。
  当为VoP应用选择DSP时,软件也是需要重点考虑的方面,它对于极小化系统成本特别起作用。以最有效的方式利用所有的处理资源、MIPS和存储器具有重要的意义。
  对软件而言,这意味着进行认真的编程。尽管当今的C编译程序已经大为改善,严格的系统性能与成本要求迫使人们还得采用周密思考和优化的手工方式进行汇编语言编程。DSP专用的高质量库是必不可少的。
  类似地,进行系统的处理调度和操作内核等高级函数也必须高效。合理的I/O管理减低对缓冲存储器的需求。
  通过内核管理带高速缓存的处理器中算法启动的次序,可以减小高速缓存的频繁使用。而且,内核还应该避免出现“峰值”的MIPS和内存需求大大超过正常工作指标这种状况。最坏情况下的系统需求应该尽可能接近典型情况下的系统需求,使过量设计造成的浪费达到最低。[1]
         
          [/td]
        [/tr]
      




欢迎光临 DIY编程器网 (http://diybcq.com/) Powered by Discuz! X3.2