CN1329825C - 基于数字信号处理器的多任务处理方法 - Google Patents
基于数字信号处理器的多任务处理方法 Download PDFInfo
- Publication number
- CN1329825C CN1329825C CNB2004100807483A CN200410080748A CN1329825C CN 1329825 C CN1329825 C CN 1329825C CN B2004100807483 A CNB2004100807483 A CN B2004100807483A CN 200410080748 A CN200410080748 A CN 200410080748A CN 1329825 C CN1329825 C CN 1329825C
- Authority
- CN
- China
- Prior art keywords
- task
- digital signal
- flow process
- signal processor
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种基于数字信号处理器的多任务处理方法,所述数字信号处理器包括多个处理通道,每种任务至少占用一个处理通道,设置主循环流程,将优先级低的任务置于主循环处理;设置中断流程,将优先级高的任务置于中断流程,且中断流程的时间间隔小于或等于优先级高的任务的最小处理时间间隔;将大于中断流程时间间隔的实时任务所占用的处理通道分割成通道分组分布在各个中断流程中处理。通过本发明解决向各个处理任务平均分配时间而造成任务阻塞、漏处理问题。
Description
技术领域
本发明涉及网络通信领域中的语音通信技术,尤指一种基于数字信号处理器(DSP,Digital Signal Processing)的多任务处理方法。
背景技术
DSP是专门为快速实现各种数字信号处理算法而设计的、具有特殊结构的微处理器,其处理速度已高达2000MIPS(Million Instruction Per Second,每秒百万条指令),比最快的CPU还快10-50倍,因此可以处理多任务并且可以处理实时任务。例如,互联网协议的语音(VoIP,Voice Over Internet Protocol)的语音业务测试中,由于语音的测试分析主要就是一个数字信号处理过程,进行语音数字信号的频域分析,所以特别适合用DSP处理。
VoIP语音测试工具的主要目的是测试VoIP网络传送语音业务的质量,即通过一些测试数据来分析IP电话的声音质量,主要测试项目有:
1)语音消息包的传送质量的测试,语音在Internet网上是以一个个的数据消息包的形式传送,承载这些数据消息包的协议是RTP协议(实时传输协议),测试工具通过内置RTP模块来测试VoIP网络传送语音业务的质量,测试项目包括丢消息包率、延时、抖动、乱序等QoS(服务质量Quality Of Service)指标。
2)DTMF/单音指标测试,测试项目包括检测DTMF/单音的频率值、频偏、电平等参数,其中DTMF(Dual Tone Multiple Frequency)指双音多频,即普通电话机拨出的电话音。
3)语音质量感知评估(PESQ,Perceptual Evaluation of Speech Quality)语音质量测试。PESQ是一种通过客观数据来评估语音质量的方法,它的测试过程如下,将放音数据存成一个语音文件,然后将该文件放音到VoIP网络,通过VoIP网络环回后再用测试工具接收,存成录音文件,这个文件一般称为降级后的语音文件,将放音、录音文件同时输入PESQ模型,通过PESQ算法计算,可以得到VoIP网络的语音质量。
4)音频指标分析测试,在语音放音、录音功能的基础上,同时在每个话音通道能够针对单音、特定语音文件进行频谱分析:频率响应(FR)、噪声(SNR)、总谐波失真(THD)及互调失真(IMD)。
5)语音监听测试,即直接用人耳进行放音、接收音的监听。
请参照图1所示,通常VoIP网络语音测试过程包括以下步骤:
测试工具将语音文件下发到DSP;
DSP为了提高语音消息包在网络上的传送效率,需要对语音文件有一个编码的过程,经过编码压缩后,数据得到高效率的传送,在接收端为了恢复原来的语音,存在一个解码的过程;
通过信令交互,建立语音信道;
将编码后的语音文件或DTMF(语音文件一般不包含DTMF,但也可以包含DTMF)封装成RTP消息包发送到VoIP网络;
DSP从VoIP网络上接收RTP消息包;
处理RTP消息包输出RTP消息包指标;
解码,获得DTMF/单音、语音检测文件,输出DTMF、单音频率、电平、时长等指标;并将降级后的语音文件保存在内存进行PESQ语音质量分析和音频指标分析,输出语音质量指标和音频质量指标。
在VoIP业务中存在G.711/G.723/G.726/G.729等编解码算法,它们的语音打消息包间隔有5ms、10ms、30ms几种,因此对应于DSP软件模块,将存在5ms、10ms、30ms的消息包。
由上述可见,VoIP语音测试处理任务消息包括编解码、RTP消息包处理、DTMF/单音检测、PESQ计算、音频指标分析等任务,其中RTP消息包处理为实时任务消息包括有5ms、10ms、30ms消息包。
请参照图2所示,现有技术的DSP处理多任务时组成一个大循环进行处理,各个任务模块(PESQ计算、RTP消息包处理、DTMF/单音检测、音频指标分析)按照次序顺序执行,各个任务之间不存在优先级。这样的解决方案存在以下缺点:只适用各个任务需要使用DSP时间比较平均的情况,如果某一任务模块执行时间过长,将导致一些任务模块得不到DSP使用时间,进而导致任务阻塞;不适用于任务需要实时处理的情况,如上述5ms消息包需要5ms处理一次,如果按照该技术方案则可能导致没有及时处理,从而导致5ms的语音消息包被丢掉;不适用多个语音通道需要同时处理的情况,因为通道多将导致每个任务的执行时间加长,从而导致某个需要实时处理的任务没来得及进行。
请参照图3所示,VoIP语音测试工具中的需要DSP处理实时任务有RTP消息包中的5ms、10ms、30ms三种消息包,第二种技术方案中有一个计时标志,当5ms到时,将所有5ms的消息处理完,当10ms到时,将所有5ms、10ms的消息处理完,当30ms到时,将所有5ms、10ms、30ms的消息处理完。该技术方案没有考虑DSP处理的负荷分担问题,造成30ms时刻到来时要处理所有的消息,10ms时刻也负担较重,当DSP同时要处理的语音通道很多时,将造成某一时刻负荷过重,处理不过来。
发明内容
本发明提出一种基于数字信号处理器的多任务处理方法,解决向各个处理任务平均分配时间而造成任务阻塞、漏处理问题。
本发明进一步解决数字信号处理器负荷平均分配的问题。
为解决上述问题,本发明基于数字信号处理器的多任务处理方法,所述数字信号处理器包括多个处理通道,每种任务至少占用一个处理通道,设置主循环流程,将优先级低的任务置于主循环处理;设置中断流程,将优先级高的任务置于中断流程,且中断流程的时间间隔小于或等于优先级高的任务的最小处理时间间隔;将大于中断流程时间间隔的实时任务所占用的处理通道分割成通道分组分布在各个中断流程中处理。
所述优先级高的任务包括不同处理时间间隔的实时任务。
所述实时任务所占用的处理通道平均分割且依次分布在各个中断流程中。
实时任务处理时间间隔与中断流程时间间隔的比值取整为N时,则将该实时任务所占用的处理通道最多分割成N组。
添加处理通道时,将该处理通道添加至相应实时任务的负荷最少处理通道分组的中断流程中。
所述处理通道分组的负荷等于该处理通道分组的通道数量与其任务负荷权值的乘积加上所有与该处理通道分组同在一个中断流程中其他处理通道分组的通道数量与其任务负荷权值的乘积之和。
所述基于数字信号处理器的多任务处理方法用于语音测试,优先级低的任务包括:语音文件预处理任务、语音质量感知评估计算任务及音频指标计算任务;所述优先级高的任务包括:实时传输协议消息包处理任务、双音多频检测任务、单音检测任务及监听放音任务。
与现有技术相比,本发明具有以下优点:
由于将多任务分优先级,保证重要任务优先处理,例如将不需实时处理、占用DSP资源多、不方便分时间片处理的任务置于低优先级的主循环处理,反之实时处理任务被分配为高优先级且放在中断流程中断中处理,保证需要实时处理的任务得到及时的处理。同时避免现有技术中将某些重要任务(实时任务)漏掉处理。
由于采取了DSP负荷加权算法,能够保证DSP在每个不同的中断流程的负荷分担是均匀的,这样就不会出现在某一时刻DSP忙不过来负荷过重的情况。
附图说明
图1是采用DSP进行VoIP网络中语音测试流程图。
图2是现有技术中多任务处理方法一实施例流程图。
图3是现有技术中多任务处理方法另一实施例流程图。
图4是本发明基于数字信号处理器的多任务处理方法实施例中主循环流程图。
图5是基于数字信号处理器的多任务处理方法实施例中中断流程图。
图6、7是任务负荷分配示意图。
具体实施方式
请参照图4、5所示,本发明基于数字信号处理器的多任务处理方法,所述数字信号处理器包括多个处理通道,每种任务至少占用一个处理通道(例如占有64个处理通道),设置主循环流程,将优先级低的任务置于主循环处理;设置中断流程,将优先级高的任务置于中断流程,且中断流程的时间间隔小于或等于优先级高的任务的最小处理时间间隔。
处理任务的优先级根据需要或任务特性而设定,例如应用在VoIP网络的语音测试中,待发送的语音文件的预处理(包含DTMF产生、单音产生、语音文件的编码等)、PESQ计算、音频指标计算等部分会占用DSP较大的资源,并且PESQ和音频指标算法不方便分时间片实现,而语音消息的接收发送、语音文件的解码、DTMF检测、单音检测、播放需监听的语音等是分时间片实现的,并且规定在确定的时间内必须处理完毕,所以将发送语音消息(发送RTP消息包)、接收语音消息(接收RTP消息包)和解码、DTMF/单音检测等部分作为高优先级的任务,而对于发送语音文件的预处理工作、PESQ计算、音频指标计算则作为低优先级的任务,将低优先级任务放在DSP的主循环流程处理,而高优先级的任务放在5ms中断中处理(因为RTP消息包中5ms、10ms、30ms三种消息包,最小处理时间间隔为5ms)保证了实时任务处理的实时性。
由于优先级高的任务包括不同处理时间间隔的实时任务,处理时间间隔小于或等于中断流程时间间隔的实时任务在每次中断都会处理一次;将大于中断流程时间间隔的实时任务所占用的处理通道分割成通道分组分布在各个中断流程中处理。实际处理中,可以将所述实时任务所占用的处理通道平均分割且依次分布在各个中断流程中。实时任务处理时间间隔与中断流程时间间隔的比值取整为N,则将该实时任务所占用的处理通道最多分割成N组。
请参照图6、7所示,同样以VoIP网络语音测试为例,在5ms中断流程中进行解码处理时,为了兼顾不同时间间隔的编解码类型处理需要,同时避免每次5ms中断的处理时间发生大的变化,所以按照编解码器的处理时间间隔把语音通道分成不同的处理时间间隔消息包(5ms、10ms、30ms消息包),将各消息包平均分布在各个5ms中断流程中进行处理。这样能够保证5ms中断处理时间不会太长,并且每个语音通道在规定的时间内都能够得到处理。因为5ms消息包在每次5ms中断流程中都会处理,所以排除5ms消息包对DSP负荷的占用;只考虑10ms、30ms两个消息包的负荷。首先判断将10ms消息包与中断流程时间间隔比值为2,如果10ms消息包占用的语音通道数量超过2则将语音通道最多分成2组,如果只占用一个语音通道则需要1组就可以;30ms消息包与中断流程时间间隔比值为6,所以将30ms的消息包占用通道最多分为6组。
为了使每个5ms中断流程处理的负荷都尽量均匀,在添加处理通道(本实施例为语音通道)时,将该处理通道添加至相应实时任务的负荷最少处理通道分组的中断流程中。所述处理通道分组的负荷等于该处理通道分组的通道数量与其任务负荷权值的乘积加上所有与该处理通道分组同在一个中断流程中其他处理通道分组的通道数量与其任务负荷权值的乘积之和。
本实施例中,10ms通道对DSP负荷的权值是10,30ms对DSP负荷的权值是30,这是因为对于30ms消息包DSP需要处理30ms的语音数据(DSP处理时间较长),而对于10ms的消息包则只需处理10ms的语音数据(DSP处理时间较短)。这样,在添加一个通道时,根据过去已有通道在各5ms中断分组中的处理负荷权值,将新的通道添加到负荷权值最小的5ms中断处理分组中。
10ms通道添加只有两种可能,即通道分组1、通道分组2,分别用A1、A2表示这两个通道分组已有通道的负荷权值,则计算公式为:
A1=X1*10+(Y1+Y3+Y5)*30
A2=X2*10+(Y2+Y4+Y6)*30
其中X1、X2表示10ms通道分组1、分组2中已有的通道个数,Y1-Y6表示30ms分组1-6中已有的通道个数。
30ms通道的添加有六种可能,即分组1-分组6,因此分别计算六个分组的负荷权值B1-B6,计算公式为:
B1=X1*10+Y1*30
B2=X2*10+Y2*30
B3=X1*10+Y3*30
B4=X2*10+Y4*30
B5=X1*10+Y5*30
B6=X2*10+Y6*30
其中X1、X2表示10ms通道分组1、分组2中已有的通道个数,Y1-Y6表示30ms通道分组1-6中已有的通道个数。
每一个处理时间消息包都分配64个单元,10ms消息包平均分成两组,30ms的消息包平均分成6组。每个单元里面的内容是实际的通道号,无通道则填充0xff(一片DSP最大只支持64个通道),这样每6次5ms中断流程是一个负荷周期,每添加一个通道则计算6次中断中哪一个负荷权值最小,把新通道添加到该相应任务通道分组中。
综上所述,本发明与现有技术第二种技术方案比较,技术方案二中10ms消息包是每隔10ms处理一次,而在本发明中10ms消息包实际上是每隔5ms处理一次,只是每次处理10ms消息包的不同分组,对每个通道而言还是每10ms处理一次;同理对于30ms消息包,也是5ms处理一次,这样就保证了每个5ms的DSP负荷是均匀的。技术方案二中往消息包中添加新的通道时,不用考虑以前的消息包状态,而本发明在添加新的通道时,需要计算消息包分组的状态权值,将通道添加到负荷权值最小的相应任务通道分组中,这样也是为了使每个5ms中断流程的DSP负荷均匀。
Claims (7)
1.一种基于数字信号处理器的多任务处理方法,所述数字信号处理器包括多个处理通道,每种任务至少占用一个处理通道,其特征在于,设置主循环流程,将优先级低的任务置于主循环处理;设置中断流程,将优先级高的任务置于中断流程,且中断流程的时间间隔小于或等于优先级高的任务的最小处理时间间隔;将大于中断流程时间间隔的实时任务所占用的处理通道分割成通道分组分布在各个中断流程中处理。
2.如权利要求1所述的基于数字信号处理器的多任务处理方法,其特征在于,所述优先级高的任务包括不同处理时间间隔的实时任务。
3.如权利要求2所述的基于数字信号处理器的多任务处理方法,其特征在于,所述实时任务所占用的处理通道平均分割且依次分布在各个中断流程中。
4.如权利要求3所述的基于数字信号处理器的多任务处理方法,其特征在于,实时任务处理时间间隔与中断流程时间间隔的比值取整为N时,则将该实时任务所占用的处理通道最多分割成N组。
5.如权利要求3所述的基于数字信号处理器的多任务处理方法,其特征在于,添加处理通道时,将该处理通道添加至相应实时任务的负荷最少处理通道分组的中断流程中。
6.如权利要求5所述的基于数字信号处理器的多任务处理方法,其特征在于,所述处理通道分组的负荷等于该处理通道分组的通道数量与其任务负荷权值的乘积加上所有与该处理通道分组同在一个中断流程中其他处理通道分组的通道数量与其任务负荷权值的乘积之和。
7.如权利要求1-6任意一项所述的基于数字信号处理器的多任务处理方法,其特征在于,所述基于数字信号处理器的多任务处理方法用于语音测试,优先级低的任务包括:语音文件预处理任务、语音质量感知评估计算任务及音频指标计算任务;所述优先级高的任务包括:实时传输协议消息包处理任务、双音多频检测任务、单音检测任务及监听放音任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100807483A CN1329825C (zh) | 2004-10-08 | 2004-10-08 | 基于数字信号处理器的多任务处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100807483A CN1329825C (zh) | 2004-10-08 | 2004-10-08 | 基于数字信号处理器的多任务处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1758223A CN1758223A (zh) | 2006-04-12 |
CN1329825C true CN1329825C (zh) | 2007-08-01 |
Family
ID=36703611
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100807483A Expired - Fee Related CN1329825C (zh) | 2004-10-08 | 2004-10-08 | 基于数字信号处理器的多任务处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1329825C (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101494699B (zh) * | 2008-12-23 | 2011-12-07 | 中兴通讯股份有限公司 | 一种voip接入网关及其利用dsp资源的方法 |
WO2017070900A1 (zh) * | 2015-10-29 | 2017-05-04 | 华为技术有限公司 | 多核数字信号处理系统中处理任务的方法和装置 |
CN106911599A (zh) * | 2015-12-23 | 2017-06-30 | 大唐半导体设计有限公司 | 一种处理基带信号的方法和装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4145735A (en) * | 1977-02-02 | 1979-03-20 | Nippon Steel Corporation | Monitor for priority level of task in information processing system |
US5142675A (en) * | 1989-03-08 | 1992-08-25 | Fuji Xerox., Ltd. | Monitor channel system in use with a recording apparatus |
JPH10177489A (ja) * | 1996-12-17 | 1998-06-30 | Matsushita Electric Ind Co Ltd | タスクのスケジュール方法 |
US6421702B1 (en) * | 1998-06-09 | 2002-07-16 | Advanced Micro Devices, Inc. | Interrupt driven isochronous task scheduler system |
US20020178209A1 (en) * | 2001-03-05 | 2002-11-28 | Jens Boettcher | Method and device for determining the load of a computing element |
EP1286264A2 (en) * | 2001-08-09 | 2003-02-26 | Matsushita Electric Industrial Co., Ltd. | Device for task scheduling with priority levels |
DE10140675A1 (de) * | 2001-08-18 | 2003-03-06 | Wolf Dieter Herf | Echtzeit-Betriebsystem und Prozessorkarte mit einem solchen Echtzeit-Betriebsystem |
-
2004
- 2004-10-08 CN CNB2004100807483A patent/CN1329825C/zh not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4145735A (en) * | 1977-02-02 | 1979-03-20 | Nippon Steel Corporation | Monitor for priority level of task in information processing system |
US5142675A (en) * | 1989-03-08 | 1992-08-25 | Fuji Xerox., Ltd. | Monitor channel system in use with a recording apparatus |
JPH10177489A (ja) * | 1996-12-17 | 1998-06-30 | Matsushita Electric Ind Co Ltd | タスクのスケジュール方法 |
US6421702B1 (en) * | 1998-06-09 | 2002-07-16 | Advanced Micro Devices, Inc. | Interrupt driven isochronous task scheduler system |
US20020178209A1 (en) * | 2001-03-05 | 2002-11-28 | Jens Boettcher | Method and device for determining the load of a computing element |
EP1286264A2 (en) * | 2001-08-09 | 2003-02-26 | Matsushita Electric Industrial Co., Ltd. | Device for task scheduling with priority levels |
DE10140675A1 (de) * | 2001-08-18 | 2003-03-06 | Wolf Dieter Herf | Echtzeit-Betriebsystem und Prozessorkarte mit einem solchen Echtzeit-Betriebsystem |
Also Published As
Publication number | Publication date |
---|---|
CN1758223A (zh) | 2006-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107864084B (zh) | 数据包的传输方法和装置 | |
US10652138B2 (en) | Link decision-making method and decision-making device | |
US10659380B2 (en) | Media buffering | |
US20040071084A1 (en) | Non-intrusive monitoring of quality levels for voice communications over a packet-based network | |
CN103763073B (zh) | 一种丢包重传的方法及终端 | |
US6930982B2 (en) | Devices, software and methods for measuring packet loss burstiness to determine quality of voice data transmission through a network | |
GB2386292A (en) | Improved calling service of a voip device in a vlan environment | |
Klymash et al. | Research and development the methods of quality of service provision in Mobile Cloud systems | |
CN102833159A (zh) | 报文拥塞处理方法及装置 | |
CN1329825C (zh) | 基于数字信号处理器的多任务处理方法 | |
CN109981482A (zh) | 音频处理方法及装置 | |
EP1978765A1 (en) | Power management scheme for mobile communication devices | |
US6888801B1 (en) | Devices, software and methods for determining a quality of service for a VoIP connection | |
Reguera et al. | On the impact of active queue management on VoIP quality of service | |
Narbutt et al. | Gauging VoIP call quality from 802.11 WLAN resource usage | |
EP3192303B1 (en) | Voip service state aware hand over execution | |
CN108259418A (zh) | 一种函数托管服务的系统和方法 | |
CN105744552A (zh) | 一种无线网络空口消息处理装置及方法 | |
JPS61240738A (ja) | ト−クンバス方式における論理リングの学習変換方式 | |
US20110044203A1 (en) | Communications network | |
CN115118473B (zh) | 数据处理方法、装置、设备及存储介质 | |
Zulu | Packet aggregation for voice over internet protocol on wireless mesh networks | |
Andersson et al. | Overload control of a Parlay X application server | |
Narbutt et al. | Experimental tuning of the AIFSN parameter to prioritize voice over data transmission in 802.11 E WLAN networks | |
Biswas et al. | On improving performance of network intrusion detection systems by efficient packet capturing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070801 Termination date: 20161008 |