CN101335796A - 解码调度方法和装置 - Google Patents
解码调度方法和装置 Download PDFInfo
- Publication number
- CN101335796A CN101335796A CNA2008101332668A CN200810133266A CN101335796A CN 101335796 A CN101335796 A CN 101335796A CN A2008101332668 A CNA2008101332668 A CN A2008101332668A CN 200810133266 A CN200810133266 A CN 200810133266A CN 101335796 A CN101335796 A CN 101335796A
- Authority
- CN
- China
- Prior art keywords
- packet
- time
- decoding
- grain size
- small grain
- 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.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了解码调度方法和装置,属于网络电话领域。该方法包括:接收多个数据包;获得所述多个数据包的每个数据包的解码时刻,所述解码时刻包括广域时间和小粒度时间;根据所述广域时间将所述多个数据包保存于抖动缓存中的相应的时间域中;读取所述抖动缓存,提取到时的数据包,其中,所述到时的数据包是指保存于所述抖动缓存中的时间已经达到所述解码时刻的数据包;对所述到时的数据包进行解码。该装置包括:接收模块、获取模块、保存模块、读取模块和解码模块。通过引入小粒度时间,减小了接收端接收处理带来的调度时间延时、改善了语音传送整个链路的端到端延时,保证了语音质量。
Description
技术领域
本发明涉及网络电话领域,特别涉及解码调度方法和装置。
背景技术
网络电话(VoIP,Voice Over IP)是把话音或传真转换成数据,在IP网络中传输的技术。随着VoIP的发展,由于其具有带宽利用率高,接入成本小,可以和数据业务很好地结合等特点,正在成为语音通话领域当中的一支潜在力量。在VoIP系统中,每个语音封包到达目的端的时间会因为网络延迟(Network Delay)的变化而产生抖动(Jitter)。因此在目的端通常会使用抖动缓存(JB,Jitter Buffer)来调整封包的顺序,并调整语音播放延迟的时间,来提高语音的质量。对于语音质量而言,播放延迟的长短是个相当关键的因素。
如图1所示,是现有技术对收到的数据包进行JB处理和解码处理的装置示意图,其中收包缓冲区、JB数据空间、TDM(Time Division Multiplex,时分复用)数据输出空间三大部分表示了所用到的数据缓存空间,而收包功能模块、JB处理模块、解码功能模块为执行单元。VoIP处理流程包括:从网络端收包,对收到的数据包进行JB处理和解码处理,然后到TDM端播放。JB处理模块和解码功能模块各自按照自己的调度顺序去执行,总延时依赖于各模块的调度程序。
解码功能模块和JB处理模块的关系可以是同步的也可以是异步的。当前VoIP大部分的解码算法都是以10ms作为最小帧长的,所有解码功能模块都是采用以10ms为调度粒度的,即10ms调度一次。解码时所有的报文在10ms中会根据解码函数自己的调度顺序做一次解码,因而现有技术中解码的时间不完全受JB处理模块控制,而是由调度算法本身决定。如图2所示,是现有技术的10ms调度粒度的解码情况示意图。以在某两个通道分别在2ms时和8ms时收到包1和包2为例,假设当前通道JB判断两个数据包都需要至少延时3ms再播放,这样包1和包2实际要求数据被解码的时间分别为5ms和11ms。但是由于解码函数被调用的时间是根据自身调度时刻进行解码的,即解码函数只在10ms、20ms、30ms等时刻被调用,这样必然导致解码时间要等到距5ms和11ms最近的一次10ms或其倍数处对齐,这时解码程序才能被调度。在本例中,包1和包2的实际解码时间分别是10ms、20ms。
在对现有技术进行分析后,发明人发现:上述现有技术的JB处理和解码调度方法造成即使JB处理模块能计算出精确到ms级的延时,但由于解码调度的时间粒度为10ms,实际延时还是以10ms作为调整单位,造成从收包到数据解码的延时比较大。
发明内容
为了解决VoIP接收端延时较大的问题,保证电话链路端到端的延时,本发明实施例提供了解码调度方法和装置,所述技术方案如下:
一方面,提供了一种解码调度方法,包括以下步骤:
接收多个数据包;
获得所述多个数据包的每个数据包的解码时刻,所述解码时刻包括广域时间和小粒度时间;
根据所述广域时间将所述多个数据包保存于抖动缓存中的相应的时间域中;
读取所述抖动缓存,提取到时的数据包,其中,所述到时的数据包是指保存于所述抖动缓存中的时间已经达到所述解码时刻的数据包;
对所述到时的数据包进行解码。
另一方面,提供了一种解码调度装置,包括:
接收模块,用于接收多个数据包;
获取模块,用于获得所述接收模块接收到的多个数据包的每个数据包的解码时刻,所述解码时刻包括广域时间和小粒度时间;
保存模块,根据所述广域时间将所述多个数据包保存于抖动缓存中的相应的时间域中;
读取模块,用于读取所述抖动缓存,提取到时的数据包,其中,所述到时的数据包是指保存于所述抖动缓存中的时间已经达到所述解码时刻的数据包;
解码模块,用于对所述读取模块读取的到时的数据包进行解码。
本发明实施例提供的技术方案的有益效果是:
通过引入小粒度时间和广域时间,减小了接收端接收处理带来的调度时间延时,改善了语音传送整个链路的端到端延时。
附图说明
图1是现有技术提供的JB处理和解码处理的装置示意图;
图2是现有技术提供的10ms调度粒度的解码情况示意图;
图3是本发明实施例1提供的解码调度方法流程图;
图4是本发明实施例1提供的单通道JB存储空间示意图;
图5是本发明实施例1提供的小时间粒度播放表的示意图;
图6是本发明实施例1提供的实现解码调度方法的装置结构示意图;
图7是本发明实施例2提供的改进的解码调度方法流程图;
图8是本发明实施例2提供的向后调整示意图;
图9是本发明实施例2提供的优化的小时间粒度播放表示意图;
图10是本发明实施例2提供的JB深度变换的调整示意图;
图11是本发明实施例3提供的解码调度装置的示意图;
图12是本发明实施例3提供的解码调度装置的详细示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
为了减小接收端接收处理带来的调度时间延时,改善语音传送整个链路的端到端延时,本发明实施例提供了一种解码调度方法,该方法内容如下:接收多个数据包;获得多个数据包的每个数据包的解码时刻,其中,解码时刻包括广域时间和小粒度时间;根据广域时间将多个数据包保存于抖动缓存中的相应的时间域中;读取抖动缓存,提取到时的数据包,其中,到时的数据包是指保存于抖动缓存中的时间已经达到解码时刻的数据包;对到时的数据包进行解码。为了对本发明实施例提供的解码调度方法进行详细说明,请参见下述实施例:
实施例1
参见图3,本发明实施例提供了一种解码调度方法,该方法内容如下:
101:获取当前数据包的解码时刻。
当处理从网络端收到的数据包包文时,需要将包文根据其所携带的时间信息放置到Jitter Buffer当中相应的存储单元当中,JB对收到的数据包按时间顺序进行排序,同时计算出每个数据包解码需要的延时,根据数据包的收包时刻和该数据包的要求被延迟时间信息,获取到该数据包的解码时刻,例如,假设在第16ms时刻接收到一个数据包X,从JB中读出其要求被延时8ms,可以获知,该数据包X的解码的时刻为第24ms,即在第24ms开始对该数据包X执行解码操作。
102:根据解码时刻,获取数据包的广域时间和小粒度时间。
其中,由于在处理同种业务时,VoIP的解码算法是以固定时长为调度粒度的,本发明实施例不限制调度粒度的具体取值,可以根据具体的需要设定该调度粒度的取值大小,为了便于说明,本发明实施例中以调度粒度为10ms为例进行说明,也就是说解码的时间间隔为10ms,相应地,在本发明实施例中,将JB存储空间以10ms数据为单元均匀划分。一般一个数据包都是一段10ms长度的数据,假设这里接收到的一段语音信息是连贯的,那么数据包与上述划分得到JB存储空间的数据单元就是一一映射的关系。
其中,为了使解码的调度时间更为精确,比如说精确到1ms,根据解码时刻需要计算获取两个值:一个是该数据包的广域时间,另一个是在广域时间下的小粒度时间(即广域时间内具体的解码时间点)。其中,通过如下方式,获取上述数据包的广域时间和小粒度时间:
首先,获取数据包的解码时刻信息和广域时间的划分单位;
然后,将解码时刻信息和广域时间的划分单位相除得到的商值和余数值;其中,得到的商值即为获取到的该数据包的广域时间的取值,余数值即为获取到的该数据包的解码时刻的小粒度时间。
在描述小粒度时间时,引入小时间粒度播放表,该小时间粒度播放表精确描述了需要做解码的时刻,例如,仍以上述解码时刻信息为24ms的数据包X为例,需要将被解码的净核放置到20ms空间当中,并将小时间粒度播放表中代表第4ms时刻取包的标志置为有效,具体实现内容如下:
参见图4,如图所示该JB的以10ms为广域时间的划分单位,其中,该JB的深度为N*10ms,首先,将上述数据包X的解码时刻信息24ms除以该划分单位10ms得到商值整数2,余数为4;然后,根据该商值得到该数据包的广域时间的取值,如图4阴影所示,将该数据包X放置到JB的20ms单元当中保存;根据该余数值,得到该数据包的广域时间的小粒度时间,即余数值4就是在该广域时间下的具体的解码时刻时间点。如图5提供的小时间粒度播放表所示的,将该表中对应的4ms位置处设置为有效,从而指示出数据包在一个广域时间内具体的解码时间点。
103:根据获取的数据包的广域时间和小粒度时间,对数据包进行解码调度。
参见图6,提供了实现本发明实施例提供的解码调度方法的装置示意图,解码模块以时间顺序按照广域时间划分单位依次从JB存储空间的广域时间的数据单元(即时间域)中提取数据,特别需要注意的是,在每一个广域时间划分单元内提取数据时,提取的具体时刻需要参考其对应的小粒度时间的有效标识来确定,从而实现达到更小时间单位读取数据的控制目的。例如,解码模块以10ms的时间间隔,依次从JB存储空间时间域0ms,10ms,20ms…数据单元当中取出数据,每一个10ms当中具体取出数据的时间需要根据小时间粒度播放表当中的有效标识来决定,以小粒度时间设置的最小时间间隔为1ms为例,解码模块在每个时间域10ms中的每1ms都去搜索小时间粒度播放表,判断其当前1ms的标识是否有效,如果有效,则从当前JB的10ms存储单元中取出数据;否则,如果为无效,则认为当前1ms不需要取数据。其中,上述1ms的触发可以通过硬件或者软件定时器的方式实现。
综上所述,本发明实施例提供的解码调度方法,通过引入广域时间和小粒度时间,提高了解码调度的时间的精度(例如,由现有的10ms精确到了1ms),大幅度地减小了接收端接收处理带来的调度时间延时,对于语音传送整个链路的端到端延时都有非常可观的改善,本发明实施例提供的方法还可以解决在解码持续进行的时候,解码初期存在的不合理延时的问题。
综上论述了如何通过引入的小粒度时间实现解码调度方法,发明人在实现本发明时还发现,当小粒度时间出现了调整,会导致调整时的语音质量受到影响,因此,为了更有效地判断是否出现了小粒度时间的调整,进而保证调整时的语音质量,参见实施例2,本发明实施例2还提供了一种解码调度方法,详见下文:
实施例2
参见图7,本发明实施例提供了一种解码调度方法,通过在小时间粒度播放表的基础上,引入历史播放表,从而更有效地判断是否出现了小粒度时间的调整,进而保证调整时的语音质量,该方法内容如下:
201:获取当前数据包的解码时刻。
202:根据解码时刻,计算数据包的广域时间和小粒度时间。
203:根据获取的数据包的广域时间和小粒度时间,对数据包进行解码。
其中,上述201至203具体的实现可以参照实施例1中所涉及到101至103所述内容,不再赘述。
204:根据历史播放表和小时间粒度播放表,执行相应的删减/补偿处理。具体内容如下:
由于前后两个被解码的数据包的播放时间不一定连贯,也就是说,它们播放的时间可能会有重叠或者是中间留有空白,所以为了更有效保证数据包播放时的语音质量,还需要在播放之前,通过删减/补偿处理,以实现达到平滑断开的数据流或填补数据流中的空缺的目的。为了对比前后两个被解码的数据包的播放时间之间的关系,本发明实施例提供了一种历史播放表,其中,该历史播放表用于存储当前通道上一次被解码的数据包的小粒度时间播放表的播放时刻。解码模块每一次在小时间粒度播放表当中搜索有效位时,需要参照历史播放表当中的此时刻的情况。具体情况如下:
如果历史播放表和小时间粒度播放表中,同一个时刻均为“无效”,则不需要从JB取数据解码;
如果历史播放表和小时间粒度播放表中,同一个时刻均为“有效”,则表示需要从JB取数据,并且,说明了小粒度时间播放表没有出现过调整;
如果历史播放表和小时间粒度播放表中,同一个时刻出现小时间粒度播放表当中为“有效”,但是历史播放表中为“无效”,则表示出现了小粒度时间的调整,此时需要取出数据进行解包,并且根据小粒度时间播放表更新历史播放表。
例如:针对解码时刻信息为24ms的数据包X而言,该数据包X之前最近一个被解码的数据包是数据包Y,数据包Y的解码时刻为16ms,即数据包Y保存于广域时间为10ms-20ms的数据单元中,数据包Y在小粒度时间播放表中的有效位是6ms,其中,对于数据包X而言为数据包Y的小时间粒度播放表即为数据包X的历史播放表,由于对于数据包而言通常携带10ms长度的播放数据,换言之,数据包Y的实际播放时间为16ms到26ms。而数据包X要求播放的时间是24ms到34ms(假设对于一个数据包而言,其解码和播放之间不存在延迟),所以在24ms时刻数据包Y尚未播放完毕,而数据包X需要进行解码播放,导致出现数据重叠,影响语音质量,这时的处理办法是对数据包X进行删减处理,减去2ms长度的数据,使得数据包X在26ms时刻到34ms时刻之间进行播放,以避免出现的数据重叠的问题,从而保证语音质量。
同理,假设针对解码时刻信息为24ms的数据包X而言,其之前最近一个被解码的数据包是数据包Z,数据包Z的解码时刻为12ms,即数据包Z保存于广域时间为10ms-20ms的数据单元中,数据包Z在小时间粒度播放表中的有效位是2ms,也就是说数据包Z的实际播放时间为12ms到22ms,而数据包X要求播放的时间是24ms到34ms,显而易见,在数据包Z播放完毕的22ms时刻和数据包X开始播放时刻24ms之间,存在2ms的空白时间段,即出现了数据的播放间断,这时的处理办法是对数据包X进行补偿处理,增加2ms长度的数据,以填补在22ms时刻到24ms时刻的空白,避免出现的数据间断的问题,从而保证语音质量。
参见图8,提供了小粒度时间范围向后调整示意图,JB出现小时间粒度范围内向后调整的情况下,如图所示,阴影部分为利用ms级精度的补偿处理增加的数据,其中,该图中每一次解码数据具体为10ms长度数据,且该图示意了解码和播放之间存在系统固定延迟(以2ms为例)的情况,具体说明如下:
12ms处收到包1,且包1需要延迟时间JB=4ms,即该包1在16ms处进行解码,且解码和播放之间需要固定2ms延迟,则该包1真正在18ms处被播放,由于该包1的播放长度为10ms,,所以如图所示,18ms至28ms为该包1的真实播放时间;同理可知,包2的真实播放时间为28ms至38ms;由于对于在32ms收到包3而言,其延长时间JB由4ms调整为7ms,则其被解码时刻为39ms,由于解码开始和播放开始之间需要的2ms延迟,所以对于该包3而言,其被真实播放时间为41ms至51ms,即出现了当播放时刻向后调整情况下,显而易见,包2播放完毕和包3开始播放之间存在3ms数据空白,因此利用上述本发明实施例提供的补偿处理,通过对包3添加3ms长度数据,以填补在38ms时刻到41ms时刻的空白,从而避免数据间断,平滑输出的数据。
上述示例论述了播放时刻向后调整情况下的补偿数据示意图,同理,本领域技术人员可以获知,当播放时刻向前调整情况下,删除数据的处理情况与之类似,不再赘述。由于人类听觉能力的限制,对上述毫秒级的语音数据的删减或补偿几乎感觉不出来。
综上,本发明实施例通过引入小粒度时间播放表,使解码调度的时间由现有的10ms精确到了1ms,大幅度地减小了接收端接收处理带来的调度时间延时,对于语音传送整个链路的端到端延时都有非常可观的改善。本发明实施例还引入历史播放表,实现当小时间粒度播放表出现调整时,参照历史播放表,通过对数据包执行删减、补偿处理操作,保证输出的数据更为平滑顺畅,语音效果质量更好。
进一步地,上述本实施例提供的方法中的小时间粒度播放表和历史播放表也可以合二为一,优化上述小时间粒度播放表,参见图9,提供了优化的小时间粒度播放表的示意图。该优化的小时间粒度播放表,包含如下两类信息:(1)广域时间下的小粒度时间(即当前具体的播放时刻);(2)是删减补偿处理需要调整的时间。其中,上述两个信息都是直接写入实现,由于JB本身会维护历史播放信息,该表利用从JB得到的历史播放信息和当前播放信息,可以计算出一个时间差值,这个时间差值就是删减补偿处理需要调整的时间。具体为:
如果当前值减去历史值为负时,即当前收到的数据包的小粒度时间小于该数据包之前最近收到数据包的小粒度时间时,则对该当前数据包进行删减处理;
如果当前值减去历史值为正时,即当前收到的数据包的小粒度时间大于该数据包之前最近收到的数据包的小粒度时间时,则对该当前数据包进行补偿处理。
具体实现总结如下:在抖动缓存JB的相邻时间域中依次提取第一数据包和第二数据包,依次对所述第一数据包和所述第二数据包进行解码,其中,该第二数据包即为当前数据包,第一数据包即为该当前数据包之间的最近收到的数据包:
其中,如果第一数据包的小粒度时间大于第二数据包的小粒度时间,且差值为t个时间单位(假如为tms),则对所述第二数据包进行删减处理,即删除第二数据包t个时间单位长度的数据。
如果第一数据包的小粒度时间小于第二数据包的小粒度时间,且差值为t个时间单位,则对所述第二数据包进行补偿处理,即补偿第二数据包t个时间单位长度的数据。
参见图10,其中,N表示第N个报文进行解码后的数据,当前JB深度在1ms精度下为5ms(即需要延迟的时间为5ms),其中,
数据正常播放的情况如图中最后一行所示,此时,报文N、N+1、N+2连续播放;
深度提前的情况如图中中间一行所示,如果JB深度由5ms调整到2ms,则在该通道的优化的小时间粒度播放表中指示标志改为2,此时可以通过将调整的时间通知解码器实现数据截断,如中间一行阴影所示,数据播放同样是每帧10ms数据,但是播放时刻已经提前到了2ms时刻;
深度延后的情况如图中第一行所示,第一行指示了JB深度由5ms调整到8ms,则可以由ms级精度的补偿算法,产生3ms的填充数据,这样最终可以延长播放时间,使以后每次解码播放时刻到达8ms时刻。
本发明实施例解码的时间精度是1ms,在小时间粒度播放表的设计当中,以1ms为最小粒度,本领域技术人员可以获知,在具体实现时,所述最小粒度还可以选择其他的数值,但要保证选取的数值小于广域时间的划分单位。针对本实施例,该最小粒度要保证小于10ms,可以选择0.5ms、2ms、2.5ms等,相应地,从JB取数据的时间间隔需要改成当前设计的最小时间粒度。
综上所述,本发明实施例提供的解码调度方法,通过在小时间粒度播放表的基础上,引入历史播放表,从而更有效地判断是否出现了小粒度时间的调整,进而保证调整时的语音质量。本发明实施例不仅适用于IP网络,只要是分组交换的网络或者说以包为形式传输的网络上都适用。
实施例三
参见图11,本发明实施例提供了一种解码调度装置,该装置包括:
接收模块301,用于接收多个数据包;
获取模块302,用于获得接收模块301接收到的多个数据包的每个数据包的解码时刻,解码时刻包括广域时间和小粒度时间;
保存模块303,根据广域时间将多个数据包保存于抖动缓存中的相应的时间域中;
读取模块304,用于读取抖动缓存,提取到时的数据包,其中,到时的数据包是指保存于抖动缓存中的时间已经达到解码时刻的数据包;
解码模块305,用于对读取模块304读取的到时的数据包进行解码。
进一步地,读取模块304还包括:
提取单元3041,用于在抖动缓存的相邻时间域中依次提取第一数据包和第二数据包;
相应地,解码模块305,为:
解码单元3051,用于依次对提取单元3041提取的第一数据包和第二数据包进行解码;
装置还包括:
调整模块306,用于当解码单元3051解码时,如果第一数据包的小粒度时间小于第二数据包的小粒度时间,则执行补偿处理;如果第一数据包的小粒度时间大于第二数据包的小粒度时间,则执行删减处理。
其中,调整模块306具体包括:补偿单元3061和删减单元3062;
补偿单元3061,用于当解码单元3051解码时,如果第一数据包的小粒度时间小于第二数据包的小粒度时间,且差值为t个时间单位,则在第一数据包和第二数据包之间,补偿t个时间单位长度的填充数据。
删减单元3062,用于当解码单元3051解码时,如果第一数据包的小粒度时间大于第二数据包的小粒度时间,且差值为t个时间单位,则将第二数据包截断,对第二数据包删减t个时间单位长度的数据。
本发明实施例提供的解码调度装置,通引入小粒度时间,减小了接收端接收处理带来的调度时间延时、改善了语音传送整个链路的端到端延时,保证了语音质量。进一步地,通过在小粒度时间的基础上,引入调整模块,从而更有效地判断是否出现了小粒度时间的调整,进而保证调整时的语音质量。
综上所述,本发明实施例提供的技术方案,有效地减小了VoIP中接收端的延时问题,从而减小了整个话路端到端的延时。以本发明中所举的两个包文为例,通过表1,提供了解码时间节省情况比较表。
表1解码时间节省情况比较表
包文 | 应该解码时刻(ms) | 现有技术解码时刻(ms) | 本发明解码时刻(ms) |
1 | 5 | 10 | 5 |
2 | 11 | 20 | 11 |
通过上表,可以获知本发明实施例提供的技术方案,带来的时间节约情况是非常显著的。本领域技术人员可以获知本发明实施例不仅适用于IP网络,只要是分组交换的网络或以包为形式传输的网络上都适用。
本发明实施例中的“接收”一词可以理解为主动从其他模块获取也可以是接收其他模块发送来的信息。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本发明实施例中的部分步骤,可以利用软件实现,相应的软件程序可以存储在可读取的存储介质中,如光盘或硬盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1、一种解码调度方法,其特征在于,所述解码调度方法包括如下步骤:
接收多个数据包;
获得所述多个数据包的每个数据包的解码时刻,所述解码时刻包括广域时间和小粒度时间;
根据所述广域时间将所述多个数据包保存于抖动缓存中的相应的时间域中,并记录所述多个数据包的小粒度时间;
读取所述抖动缓存,提取到时的数据包,其中,所述到时的数据包是指保存于所述抖动缓存中的时间已经达到所述解码时刻的数据包;
对所述到时的数据包进行解码。
2、如权利要求1所述的解码调度方法,其特征在于,步骤“获得每个数据包的解码时刻”具体包括:
根据当前数据包的收包时间和延迟时间,获取所述当前数据包的解码时刻。
3、如权利要求1所述的解码调度方法,其特征在于,步骤“读取所述抖动缓存,提取到时的数据包”还包括:
在所述抖动缓存的相邻时间域中依次提取第一数据包和第二数据包;
依次对所述第一数据包和所述第二数据包进行解码,其中,如果第一数据包的小粒度时间小于第二数据包的小粒度时间,则执行补偿处理;如果第一数据包的小粒度时间大于第二数据包的小粒度时间,则对执行删减处理。
4、如权利要求3所述的解码调度方法,其特征在于,
所述补偿处理具体为:如果所述第一数据包的小粒度时间小于所述第一数据包的小粒度时间,且差值为t个时间单位,则在所述第一数据包和所述第二数据包之间,补偿所述t个时间单位长度的填充数据;
所述删减处理具体为:如果所述第一数据包的小粒度时间大于所述第二数据包的小粒度时间,且差值为t个时间单位,则将所述第二数据包截断,对所述第二数据包删减所述t个时间单位长度的数据。
5、如权利要求4所述的解码调度方法,其特征在于,所述t个时间单位的取值具体为:0至广域时间中任一数值。
6、一种解码调度装置,其特征在于,所述解码调度装置包括:
接收模块,用于接收多个数据包;
获取模块,用于获得所述接收模块接收到的多个数据包的每个数据包的解码时刻,所述解码时刻包括广域时间和小粒度时间;
保存模块,根据所述广域时间将所述多个数据包保存于抖动缓存中的相应的时间域中;
读取模块,用于读取所述抖动缓存,提取到时的数据包,其中,所述到时的数据包是指保存于所述抖动缓存中的时间已经达到所述解码时刻的数据包;
解码模块,用于对所述读取模块读取的到时的数据包进行解码。
7、如权利要求6所述的解码调度装置,其特征在于,所述读取模块还包括:
提取单元,用于在所述抖动缓存的相邻时间域中依次提取第一数据包和第二数据包;
相应地,所述解码模块,为:
解码单元,用于依次对所述提取单元提取的第一数据包和所述第二数据包进行解码;
所述装置还包括:
调整模块,用于当所述解码单元解码时,如果第一数据包的小粒度时间小于第二数据包的小粒度时间,则执行补偿处理;如果第一数据包的小粒度时间大于第二数据包的小粒度时间,则执行删减处理。
8、如权利要求7所述的解码调度装置,其特征在于,所述调整模块具体包括:补偿单元和删减单元;
所述补偿单元,用于当所述解码单元解码时,如果所述第一数据包的小粒度时间小于所述第二数据包的小粒度时间,且差值为t个时间单位,则在所述第一数据包和所述第二数据包之间,补偿所述t个时间单位长度的填充数据。
所述删减单元,用于当所述解码单元解码时,如果所述第一数据包的小粒度时间大于所述第二数据包的小粒度时间,且差值为t个时间单位,则将所述第二数据包截断,对所述第二数据包删减所述t个时间单位长度的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101332668A CN101335796B (zh) | 2008-07-25 | 2008-07-25 | 解码调度方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101332668A CN101335796B (zh) | 2008-07-25 | 2008-07-25 | 解码调度方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101335796A true CN101335796A (zh) | 2008-12-31 |
CN101335796B CN101335796B (zh) | 2011-01-19 |
Family
ID=40198096
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101332668A Expired - Fee Related CN101335796B (zh) | 2008-07-25 | 2008-07-25 | 解码调度方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101335796B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104934040A (zh) * | 2014-03-17 | 2015-09-23 | 华为技术有限公司 | 音频信号的时长调整方法和装置 |
CN105207955A (zh) * | 2014-06-30 | 2015-12-30 | 华为技术有限公司 | 数据帧的处理方法和装置 |
CN105450467A (zh) * | 2015-11-11 | 2016-03-30 | 腾讯科技(深圳)有限公司 | 监控方法、接入机以及业务服务器 |
CN110017848A (zh) * | 2019-04-11 | 2019-07-16 | 北京三快在线科技有限公司 | 语音导航方法、装置、电子设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100550821C (zh) * | 2003-03-13 | 2009-10-14 | 华为技术有限公司 | 用于消除ip语音数据抖动的自适应抖动缓存实现方法 |
CN100525281C (zh) * | 2003-12-09 | 2009-08-05 | 华为技术有限公司 | 语音传输过程中实现动态调整抖动缓存的方法 |
-
2008
- 2008-07-25 CN CN2008101332668A patent/CN101335796B/zh not_active Expired - Fee Related
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104934040A (zh) * | 2014-03-17 | 2015-09-23 | 华为技术有限公司 | 音频信号的时长调整方法和装置 |
CN105207955A (zh) * | 2014-06-30 | 2015-12-30 | 华为技术有限公司 | 数据帧的处理方法和装置 |
CN105207955B (zh) * | 2014-06-30 | 2019-02-05 | 华为技术有限公司 | 数据帧的处理方法和装置 |
CN105450467A (zh) * | 2015-11-11 | 2016-03-30 | 腾讯科技(深圳)有限公司 | 监控方法、接入机以及业务服务器 |
CN105450467B (zh) * | 2015-11-11 | 2020-06-12 | 腾讯科技(深圳)有限公司 | 监控方法、接入机以及业务服务器 |
CN110017848A (zh) * | 2019-04-11 | 2019-07-16 | 北京三快在线科技有限公司 | 语音导航方法、装置、电子设备及存储介质 |
CN110017848B (zh) * | 2019-04-11 | 2020-09-29 | 北京三快在线科技有限公司 | 语音导航方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN101335796B (zh) | 2011-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100334571C (zh) | 网络媒体播放 | |
JP5174182B2 (ja) | 再生遅延推定 | |
US20040076191A1 (en) | Method and a communiction apparatus in a communication system | |
US8160112B2 (en) | Buffering a media stream | |
CN107534589B (zh) | 去抖动缓冲器更新 | |
JP4744444B2 (ja) | ストリームデータ受信再生装置、通信システムおよびストリームデータ受信再生方法 | |
CN101335796B (zh) | 解码调度方法和装置 | |
CN101175104B (zh) | 一种抖动缓存装置和抖动缓存管理方法 | |
CN101427539A (zh) | 自适应流播缓冲 | |
GB2382266A (en) | Data transmission during periods of low traffic | |
US7142551B2 (en) | Hardware implementation of Voice-over-IP playback with support for comfort noise insertion | |
JPH0439942B2 (zh) | ||
US8243721B2 (en) | Jitter buffer and jitter buffer controlling method | |
US20040062260A1 (en) | Multi-level jitter control | |
CN100512423C (zh) | 补偿报文分组时延变化的系统和方法 | |
CN104168218A (zh) | 抖动缓冲方法及装置 | |
US20060074681A1 (en) | Method and apparatus for enhancing voice intelligibility in voice-over-IP network applications with late arriving packets | |
EP2070294B1 (en) | Supporting a decoding of frames | |
CN109327724B (zh) | 音视频同步播放方法和装置 | |
CN101076163B (zh) | Td-scdma/3g/4g终端的dsp固件系统 | |
JPH0630043A (ja) | 音声パケット通信方式 | |
US9137051B2 (en) | Method and apparatus for reducing rendering latency for audio streaming applications using internet protocol communications networks | |
JP4983054B2 (ja) | サーバ装置及び同装置におけるバッファ制御方法 | |
CN101316153B (zh) | 用于缓冲通过准同步信号传输的数据分组的方法和设备 | |
CN101350776A (zh) | 调节抖动缓冲的填充的程度 |
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: 20110119 Termination date: 20170725 |