背景技术
例如,已经开发出了使用互联网进行声音通话的互联网电话。互联网电话利用了所谓的“VoIP”技术。VoIP(Voice over Internet Protocol)是能够在互联网以及内联网等TCP/IP网络上进行声音通话,即,发送接收声音数据的技术。
互联网电话与现有电话的区别在于,在压缩声音之后将其数据包化,然后通过IP网络进行通话。这种通话装置中,根据IP网络的状况,在数据包到达时产生偏移(抖动)的情况很多。即,通过IP网络到达的数据包的间隔大多不是一定的。但是,在数据包接收端,为了能连续输出解码声音,需要以一定的间隔将编码数据传递到解码器中。因此,如图1所示,在解码器102前端中设计用来吸收抖动的抖动吸收缓冲器101。
抖动吸收缓冲器101具有用来存储多个数据包的多个缓冲器单元(数据包存储单元)。在抖动吸收缓冲器101的缓冲器单元中,以数据包号码的顺序从左侧开始依次存储到达的数据包。每次以一定时间读出存储在最左侧缓冲器单元中的数据包,然后传送给解码器102。在解码器102中,一旦数据包被传到,就将抖动吸收缓冲器101内的其它数据包向左侧移位一个。解码器102解码从抖动吸收缓冲器101传送来的数据包(编码数据)然后输出。
如图2a所示,存储在抖动吸收缓冲器101最左端的数据包被传送到解码器中之时,使表示存储到达数据包的缓冲器单元位置的分布作为数据包到达时刻的分布。将这种分布称之为数据包到达时刻的分布的原因在于,在这种分布以抖动吸收缓冲器101的左端为原点,以右方向作为时刻,以上方向作为概率的情况下,表示存储到达数据包的时刻分布。在数据包到达时刻的分布为如图2a所示的S0情况下,抖动吸收缓冲器101高效率操作。如图2a所示的数据包到达时刻分布S0中,在从左开始的第5个号码的缓冲器单元中存储到达数据包的概率为最高。
通话过程中,IP网络中固定延迟减少的情况中,如图2b所示,到达抖动吸收缓冲器101中的数据包分布从S0移动到S1。此时,IP网络中的固定延迟尽管减少,但是在抖动吸收缓冲器101中,固定产生时间T的延迟,在顺滑通话中导致障碍。
通话中,IP网络中的固定延迟增加的情况下,到达抖动吸收缓冲器101的数据包分布如图2c所示从S0移动到S2。此时,到达脱离抖动吸收缓冲器101的部分的数据包不能输出到解码器102,与数据包损失相同,声音品质变坏。
通话中IP网络中的抖动量增加的情况下,到达抖动吸收缓冲器101的数据包分布如图2d所示,从S0移动到时S3。此时,到达脱离抖动吸收缓冲器101的部分的数据包不能输出到解码器102,与数据包损失相同,声音品质变坏。
通话过程中,IP网络中固定延迟减少的情况中,如图2e所示,到达抖动吸收缓冲器101中的数据包分布从S0移动到S4。此时,尽管吸收IP网络中抖动所需的缓冲器量减少,但是在抖动吸收缓冲器101中,固定产生时间T的延迟,抖动吸收缓冲器101中的利用效率恶化。
为了使数据包达到的时间分布为最佳分布,要考虑调整存储在抖动吸收缓冲器101中的数据包数量。例如,数据包到达时刻的分布在图2b或图2e的情况下,通过废弃(删除)存储在抖动吸收缓冲器101中的数据包,使数据包到达时刻的分布为最佳分布。此外,数据包到达时刻的分布在图2c或图2d的情况下,通过复制存储在抖动吸收缓冲器101中的数据包,使数据包到达时刻的分布为最佳分布。
但是,调整存储在抖动吸收缓冲器101中的数据包数(数据包存储量)的方法中,存在通过数据包的废弃或复制使输出声音品质恶化的问题。
判断是废弃(抛弃)还是复制存储在抖动吸收缓冲器101内的数据包,现有技术是算出多个数据包到达延迟偏差,然后根据算出的到达延迟偏差来进行判断。但是,这种判断方法中,为了算出可靠性高的到达延迟偏差(统计量),需要充分的数据量,因此存在在抖动吸收缓冲器101内的数据包存储量控制方面产生延迟的问题。
所谓控制从抖动吸收缓冲器101内的数据包存储量,换言之,是控制从将数据包存储在抖动吸收缓冲器中开始到解码出该数据包为止的延迟时间。
发明内容
本发明目的在于提供一种网络电话机以及声音解码装置,它不进行存储在抖动吸收缓冲器中的数据包的废弃或复制,就能将数据包的到达时刻分布调整为最佳分布。
本发明的目的在于提供一种网络电话机以及声音解码装置,在控制从将数据包存储在抖动吸收缓冲器中开始到解码出该数据包为止的延迟时间之时,能够减小控制延迟。
根据本发明的第1声音解码装置,其中具有用来存储接收数据包的抖动吸收缓冲器,和用来解码存储在抖动吸收缓冲器中的数据包的解码装置,其特征在于,带有:用来对通过解码装置得到的解码后的声音信号进行再现速度变换的再现速度变更装置,暂时存储从再现速度变更装置中输出的数字式声音信号的输出缓冲器,以规定时间间隔读出存储在输出缓冲器中的数字声音信号的装置,根据抖动吸收缓冲器的数据包存储量控制再现速度变更装置的再现速度控制装置,以及根据输出缓冲器的数据存储量控制由解码装置产生的解码定时的解码定时控制装置。
作为再现速度控制装置,例如,使用这样的控制装置:在抖动吸收缓冲器的数据包存储量比第1规定基准量少的情况下,控制再现速度变更装置以便延迟再现速度,抖动吸收缓冲器的数据包存储量比大于上述第1规定基准量的第2规定基准量多的状态持续一定时间的情况下,控制再现速度变更装置以便于加快再现速度。
作为解码定时控制装置,还可以使用这样的装置:例如,在输出缓冲器的数据存储量小于规定基准量时,在解码装置中需要进行数据包的解码。
根据本发明的第2声音解码装置,其中具有用来存储接收到数据包的抖动吸收缓冲器,和用来解码存储在抖动吸收缓冲器中的数据包的解码装置,其特征在于,带有:延迟时间控制装置,它在抖动吸收缓冲器的数据包存储量比第1规定基准量少的情况下,执行控制以便于延长从将数据包存储在抖动吸收缓冲器开始到解码该数据包为止的延迟时间,在抖动吸收缓冲器的数据包存储量比大于上述第1规定基准量的第2规定基准量多的状态持续一定时间的情况下,执行控制以便于缩短从将数据包存储在抖动吸收缓冲器开始到解码该数据包为止的延迟时间。
作为延迟时间控制装置,其特征在于,带有:用来对通过解码装置得到的解码后的声音信号进行再现速度变换的再现速度变更装置,暂时存储从再现速度变更装置中输出的数字式声音信号的输出缓冲器,以规定时间间隔读出存储在输出缓冲器中的数字声音信号的装置,在抖动吸收缓冲器的数据包存储量比第1规定基准量少的情况下,控制再现速度变更装置以便于延迟再现速度,在抖动吸收缓冲器的数据包存储量比大于上述第1规定基准量的第2规定基准量多的状态持续一定时间的情况下,控制再现速度变更装置以便于加快再现速度的装置,根据输出缓冲器的数据存储量,控制由解码装置产生的解码定时的解码定时控制装置。
作为延迟时间控制装置,可以使用这样的装置:例如,在抖动吸收缓冲器的数据包存储量比第1规定基准量少的情况下,控制从抖动吸收缓冲器的读出以及传送到解码装置的数据包,以便于在数据包读出的定时中,从抖动吸收缓冲器内读出的数据包在包含这次数据包的连续多次的数据包读出定时中被反复解码,并且在其间禁止从抖动吸收缓冲器中读出数据包,在抖动吸收缓冲器的数据包存储量比大于上述第1规定基准量的第2规定基准量多的状态持续一定时间的情况下,控制从抖动吸收缓冲器的读出以及传送到解码装置的数据包,以便于在数据包读出的定时中,一次读出存储在抖动吸收缓冲器内的多个数据包,仅解码其中一个,而舍弃其余的数据包。
根据本发明的第1网络电话机,其中具有用来存储接收数据包的抖动吸收缓冲器,和用来解码存储在抖动吸收缓冲器中的数据包的解码装置,其特征在于,带有:用来对通过解码装置得到的解码后的声音信号进行再现速度变换的再现速度变更装置,暂时存储从再现速度变更装置中输出的数字式声音信号的输出缓冲器,以规定时间间隔读出存储在输出缓冲器中的数字声音信号的装置,根据抖动吸收缓冲器的数据包存储量控制再现速度变更装置的再现速度控制装置,以及根据输出缓冲器的数据存储量控制由解码装置产生的解码定时的解码定时控制装置。
作为再现速度控制装置,例如,使用这样的控制装置:在抖动吸收缓冲器的数据包存储量比第1规定基准量少的情况下,控制再现速度变更装置以便延迟再现速度,抖动吸收缓冲器的数据包存储量比大于上述第1规定基准量的第2规定基准量多的状态持续一定时间的情况下,控制再现速度变更装置以便于加快再现速度。
作为解码定时控制装置,还可以使用这样的装置:例如,在输出缓冲器的数据存储量小于规定基准量时,在解码装置中需要进行数据包的解码。
根据本发明第2网络电话机,其中具有用来存储接收数据包的抖动吸收缓冲器,和用来解码存储在抖动吸收缓冲器中的数据包的解码装置,其特征在于,带有:延迟时间控制装置,它在抖动吸收缓冲器的数据包存储量比第1规定基准量少的情况下,执行控制以便于延长从将数据包存储在抖动吸收缓冲器开始到解码该数据包为止的延迟时间,在抖动吸收缓冲器的数据包存储量比大于上述第1规定基准量的第2规定基准量多的状态持续一定时间的情况下,执行控制以便于缩短从将数据包存储在抖动吸收缓冲器开始到解码该数据包为止的延迟时间。
作为延迟时间控制装置,其特征在于,带有:用来对通过解码装置得到的解码后的声音信号进行再现速度变换的再现速度变更装置,暂时存储从再现速度变更装置中输出的数字式声音信号的输出缓冲器,以规定时间间隔读出存储在输出缓冲器中的数字声音信号的装置,在抖动吸收缓冲器的数据包存储量比第1规定基准量少的情况下,控制再现速度变更装置以便于延迟再现速度,在抖动吸收缓冲器的数据包存储量比大于上述第1规定基准量的第2规定基准量多的状态持续一定时间的情况下,控制再现速度变更装置以便于加快再现速度的装置,根据输出缓冲器的数据存储量,控制由解码装置产生的解码定时的解码定时控制装置。
作为延迟时间控制装置,可以使用这样的装置:例如,在抖动吸收缓冲器的数据包存储量比第1规定基准量少的情况下,控制从抖动吸收缓冲器的读出以及传送到解码装置的数据包,以便于在数据包读出的定时中,从抖动吸收缓冲器内读出的数据包在包含这次数据包的连续多次的数据包读出定时中被反复解码,并且在其间禁止从抖动吸收缓冲器中读出数据包,在抖动吸收缓冲器的数据包存储量比大于上述第1规定基准量的第2规定基准量多的状态持续一定时间的情况下,控制从抖动吸收缓冲器的读出以及传送到解码装置的数据包,以便在数据包读出的定时中,一次读出存储在抖动吸收缓冲器内的多个数据包,以便于仅解码其中一个,而舍弃其余的数据包。
具体实施方式
以下,参照图3-图14说明将本发明适用于互联网电话情况下的实施形式。
(A)第1实施形式的说明
(1)互联网电话的结构说明
图3表示互联网电话结构。
互联网电话具有A/D转换器1、D/A转换器2、DSP(声音解码装置)3、微机4以及网络控制器5。
通过A/D转换器1将输入声音信号转换为数字声音信号后传送给DSP3。在DSP3中,将数字声音信号压缩后进行数据包化。通过DSP3得到的数据包通过微机4以及网络控制器5传送给IP网络。
通过IP网络传送来的数据包通过微机4以及网络控制器5传送给DSP3。在DSP3中解码数据包。通过D/A转换器2将通过DSP3得到的数字声音信号转换为模拟声音信号后输出。
图4示出了DSP3的详细结构。
DSP3具有用来生成传送数据包的装置,以及用来生成解码声音信号的装置。
用来生成传送数据包的装置具有用来压缩从A/D转换器1输入的输入声音信号的编码器31以及将通过编码器31得到的编码数据数据包化从而生成RTP数据包的RTP数据包化单元32。
用来生成解码声音信号的装置具有抖动吸收缓冲器33、解码器34、再现速度变更单元(以下,称之为可变速再现单元)35、输出缓冲器36、再现速度控制单元37以及解码定时控制单元38。再现速度控制单元37以及解码定时控制单元38实际上是通过1个控制单元构成的,但是为了便于说明将其分成2个控制单元。
抖动吸收缓冲器33与图1中的抖动吸收缓冲器101相同,具有多个缓冲器单元(数据包存储单元)。在抖动吸收缓冲器33的各个缓冲器单元中,以数据包号码的顺序从左侧开始依次存储到达的数据包。以规定定时读出存储在最左侧缓冲器单元中的数据包,然后传送给解码器34。一旦一个数据包传送到解码器34,在左侧逐个移动抖动吸收缓冲器33内的其它数据包。
解码器34解码从抖动吸收缓冲器33传送来的数据包(编码数据)。将通过解码器34得到的解码声音信号传送给可变速再现单元35,实施再现速度变更处理(话速变换处理)。从可变速再现单元35输出的数字声音信号被存储在输出缓冲器36中。在每个规定时间间隔1个数据一个数据地依次读出存储在输出缓冲器36中的数字声音信号,然后输出给D/A转换器2。
再现速度控制单元37根据抖动吸收缓冲器33的缓冲器量(数据包的存储量),控制可变速再现单元35。解码定时控制单元38根据输出缓冲器36的数据存储量控制由解码器34产生的解码定时。
用来生成上述解码声音信号的装置的特征在于,通过响应于抖动吸收缓冲器33的缓冲器量(数据包存储量)来控制解码声音信号的再现速度,控制来自抖动吸收缓冲器33的数据包输出定时(解码定时)。在输出缓冲器36中存储的数据量低于规定基准量时,执行来自抖动吸收缓冲器33的输出。
由此,不执行存储在抖动吸收缓冲器33内的数据包的废弃或复制,也可以调整抖动吸收缓冲器33内的缓冲器量,换言之,调整从将数据包存储在抖动吸收缓冲器33中开始到将该数据包解码为止的延迟时间,以便于数据包到达时刻的分布到达最合适的位置。再现声音的再现速度不改变间距幅度而仅改变再现速度。
(2)有关用来生成解码声音信号的装置的操作说明
以下,详细说明有关用来生成解码声音信号的装置的操作。
通话中,到达抖动吸收缓冲器33中的数据包的分布为如图5a中的虚线S1所示那样的分布,将分布移动到实线的分布S0的情况下,控制可变速再现单元35以便加快再现速度。可变速再现单元35在加快再现速度之时,例如,如图6所示,由3间距的波形生成2间距的波形。
即,首先,在原来波形内的3间距波形中,在前面2间距波形中加上用向右下降直线表示的权重,同时,在后面的2间距波形中加上用向右上升的直线表示的权重。然后,通过将这些2间距波形相加,产生2间距波形。
如此,如果加快再现速度,由于减少相对于1数据包的数据量,输出缓冲器36内存储的数据低于规定基准量的定时变快,来自抖动吸收缓冲器33的数据包输出定时(解码定时)变快。换言之,从将数据包存储在抖动吸收缓冲器33中开始到将其解码为止的延迟时间变短。其结果,数据包到达时刻的分布移动到最合适的位置S0。
通话中,到达抖动吸收缓冲器33的数据包分布为如图5b中虚线S2所示那样的分布,在将分布移动到如实线分布S0那样的情况下,控制可变速再现单元35以便于延迟再现速度。可变速再现单元35在延迟再现速度时,例如,如图7所示,从3间距波形中生成4间距波形。
即,首先,在原来波形内的3间距波形中,在前面2间距波形中加上用向右上升直线表示的权重,同时,在后面的2间距波形中加上用向右下降的直线表示的权重。然后,通过将这些2间距波形相加,产生2间距波形。然后,通过将得到的波形与原波形中央的1间距波形置换,生成4间距波形。
如此,如果延迟再现速度,由于增加相对于1数据包的数据量,输出缓冲器36内存储的数据低于规定基准量的定时变慢,来自抖动吸收缓冲器33的数据包输出定时(解码定时)也变慢。换言之,从将数据包存储在抖动吸收缓冲器33中开始到将其解码为止的延迟时间变长。其结果,数据包到达时刻的分布移动到最合适的位置S0。
通话中,IP网络中的抖动量增加的情况下,到达抖动吸收缓冲器33的数据包分布为如图5c中由虚线S3所示那样的分布,在将分布移动到如实线分布S0那样的情况下,通过控制可变速再现单元35以便于延迟再现速度,可以延迟来自抖动吸收缓冲器33的数据包输出定时。
通话中,IP网络中的抖动量减少的情况下,到达抖动吸收缓冲器33的数据包分布为如图5d中由虚线S4所示那样的分布,在将分布移动到如实线分布S0那样的情况下,通过控制可变速再现单元35以便于加快再现速度,可以加快来自抖动吸收缓冲器33的数据包输出定时。
(3)对于通过再现速度控制单元37进行的再现速度控制的说明
图8中,从抖动吸收缓冲器33左端缓冲器单元中读出数据包,是以S0为目标的数据包到达时刻的分布。将由抖动吸收缓冲器33左端的三个缓冲器单元组成的区域定义为A区域,将由与缓冲器区域A右侧相邻的1个缓冲器单元组成的区域定义为缓冲器区域B,将比缓冲器区域B更右侧的区域定义为缓冲器区域C。并且,各个区域A、B、C的缓冲器单元量可以根据设定而变化。
说明有关再现速度控制的基本考虑方面。如图9a所示,在实际数据包到达时刻的分布S2比作为目标的数据包到达时刻的分布S0更偏移左侧的情况下,将到达的数据包存储在抖动吸收缓冲器33的缓冲器区域A中。因此,在将到达的数据包存储在缓冲器区域A中的情况下,再现速度控制单元37控制可变速再现单元35以便延迟再现速度。其结果,到达解码器34中的数据包输出定时(解码定时)延迟。
换言之,在抖动吸收缓冲器33中的数据包存储量小于缓冲器区域A中规定的第1规定基准量的情况下,再现速度控制单元37控制可变速再现单元35以便延迟再现速度。
另一方面,如图9b所示,在实际数据包到达时刻的分布S1比作为目标的数据包到达时刻的分布S0更偏移右侧的情况下,在由抖动吸收缓冲器33的缓冲器区域A以及B组成的区域中在一定时间中不存储到达的数据包。即,一定时间中仅仅将到达的数据包存储在缓冲器区域C中。因此,一定时间中在由缓冲器区域A以及B组成的区域中不存储到达的数据包的情况下,再现速度控制单元37控制可变速再现单元35以便加快再现速度。其结果,到达解码器34中的数据包输出定时(解码定时)变快。
换言之,在抖动吸收缓冲器33中的数据包存储量以多于缓冲器区域B中规定的第2规定基准量的状态持续一定时间的情况下,再现速度控制单元37控制可变速再现单元35以便加快再现速度。
图10示出了初始化处理顺序。
在电源导通时进行的初始化处理中,在计数器b_cnt中设定规定值B_THL(例如100)(步骤1)。并且将提供给可变速再现单元35的再现速度控制内容设定为不改变再现速度的状态(步骤2)。
图11示出了再现速度控制处理顺序。
在每次到达抖动吸收缓冲器33的到达数据包的输入处理开始时进行再现速度的控制处理。
一旦开始数据包输入处理,判断进入抖动吸收缓冲器33的数据包输入位置是否是图8的缓冲器区域A(步骤11)。在数据包输入位置是缓冲器区域A的情况下,如图9a所示,判断出实际数据包到达时刻的分布S2比作为目标的数据包到达时刻的分布S0更偏移左侧,将规定值B_THL存储在计数器b_cnt中(步骤12),同时将再现速度控制内容设定为延迟再现速度的状态(步骤13)。然后,通过将数据包存储在抖动吸收缓冲器33中(步骤20),结束这次的数据包输入处理。
在上述步骤11中,在判断出数据包输入位置不是缓冲器区域A的情况下,判断数据包输入位置是否是缓冲器区域B(步骤14)。在数据包输入位置是缓冲器区域B的情况下,判断出实际数据包到达时刻的分布与作为目标的数据包到达时刻的分布一致的可能性高,将规定值B_THL存储在计数器b_cnt中(步骤15),同时将再现速度控制内容设定为不改变再现速度的状态(步骤16)。然后,通过将数据包存储在抖动吸收缓冲器33中(步骤20),结束这次的数据包输入处理。
在上述步骤14中,在判断出数据包输入位置不是缓冲器区域B的情况下,将计数器值b_cnt减1(-1)(步骤17)。然后,判断计数器值b_cnt是否变为小于0(步骤18)。在计数器值b_cnt比0大时,判断出实际数据包到达时刻的分布与作为目标的数据包到达时刻的分布一致的可能性高,将再现速度内容设定为不改变再现速度的状态(步骤16)。然后,通过将数据包存储在抖动吸收缓冲器33中(步骤20),结束这次的数据包输入处理。
在上述步骤18中,判断计数器值b_cnt是否变为小于0的情况下,如图9b所示,判断出实际数据包到达时刻的分布S1比作为目标的数据包到达时刻的分布S0更偏移右侧,将再现速度控制内容设定为加快再现速度的状态(步骤19)。然后,通过将数据包存储在抖动吸收缓冲器33中(步骤20),结束这次的数据包输入处理。
(4)解码定时控制处理顺序的说明
图12表示解码定时的控制处理顺序。
一旦开始对D/A转换器2的输出处理(D/A输出处理),就从输出缓冲器36中输出一个数据(步骤31)。然后,判断输出缓冲器36内的数据量是否小于规定基准量B-DATA-THL(步骤32)。在输出缓冲器36内的数据量大于规定基准量的情况下,结束这次D/A输出处理。
在上述步骤32中,在判断出输出缓冲器36内的数据量小于规定基准量B-DATA-THL的情况下,要求在解码器34中进行解码后(步骤33),结束这次D/A输出处理。
(B)第2实施形式的说明
第2实施形式中,互联网电话的所有结构与图3所示的结构相同,但是DSP3的结构不同于图4所示的结构。
图13示出了DSP3的详细结构。
DSP3具有用来生成传送数据包的装置,以及用来生成解码声音信号的装置。用来生成传送数据包的装置与图4相同,具有用来压缩从A/D转换器1输入的输入声音信号的编码器31以及将通过编码器31得到的编码数据数据包化从而生成RTP数据包的RTP数据包化单元32。
用来生成解码声音信号的装置与图4不同,具有抖动吸收缓冲器33、解码器34、输出缓冲器36以及延迟时间控制单元39。延迟时间控制单元39是抖动吸收缓冲器33的后端,将其设置在解码器34的前端,可以控制将数据包存储在抖动吸收缓冲33中开始到将该数据包解码为止的延迟时间。该实施形式中,从抖动吸收缓冲器33中读出数据包的定时(解码定时)每次在一定时间到来。
说明通过延迟时间控制单元39执行的延迟时间控制。
图8中,为从抖动吸收缓冲器33左端缓冲器单元中读出数据包,是以S0为目标的数据包到达时刻的分布。将由抖动吸收缓冲器33左端的三个缓冲器单元组成的区域定义为缓冲器区域A,将由与缓冲器区域A右侧相邻的1个缓冲器单元组成的区域定义为缓冲器区域B,将比缓冲器区域B更右侧的区域定义为缓冲器区域C。并且,各个区域A、B、C的缓冲器单元量可以根据设定而变化。
如图9a所示,在实际数据包到达时刻的分布S2比作为目标的数据包到达时刻的分布S0更偏移左侧的情况下,将到达的数据包存储在抖动吸收缓冲器33的缓冲器区域A中。在将到达的数据包存储在缓冲器区域A中的情况下,延迟时间控制单元39进行与复制存储在抖动吸收缓冲器33中的数据包等价的处理。
具体而言,控制从抖动吸收缓冲器33读出数据包以及传送给解码器34的数据包,以便于在某个解码定时中,将从抖动吸收缓冲器33中读出的1个数据包传送给解码器34,同时保持该数据包,在下一个解码定时中,不执行从抖动吸收缓冲器33中读出新的数据包,而是将所保持的数据包(在前次解码定时中读出的数据包)传送给解码器34。其结果,延长了将数据包存储在抖动吸收缓冲器33中开始到将该数据包解码为止的延迟时间。将这种通过延迟时间控制单元39进行控制的操作模式称为延迟时间延长模式。
另一方面,如图9b所示,在实际数据包到达时刻的分布S1比作为目标的数据包到达时刻的分布S0更偏移右侧的情况下,在由抖动吸收缓冲器33的缓冲器区域A以及B组成的区域中一定时间中不存储到达的数据包。即一定时间中仅仅将到达的数据包存储在缓冲器区域C中。在由缓冲器区域A以及B组成的区域中一定时间中不存储到达的数据包的情况下,延迟时间控制单元39进行与删去(抛弃)存储在抖动吸收缓冲器33中的数据包等同的处理。
具体而言,控制从抖动吸收缓冲器33读出数据包以及传送给解码器34的数据包,以便于在解码定时中,从抖动吸收缓冲器33中连续读出两个数据包,舍弃其中一个,仅将另一个传送给解码器34。其结果,缩短了将数据包存储在抖动吸收缓冲器33中开始到将该数据包解码为止的延长时间。将这种通过延迟时间控制单元39进行控制的操作模式称为延迟时间缩短模式。
延迟时间控制单元39在通常操作模式中进行这样的操作:在解码定时中,从抖动吸收缓冲器33中读出1个数据包,然后将该数据包传送给解码器34。
图14示出了延迟时间控制单元39进行的操作模式确定处理顺序。
在电源导通时进行的初始化处理中,在计数器b_cnt中设定规定值B b_cntTHL(例如100),同时,作为延迟时间控制单元39的操作模式,设定为通常操作模式。
在每次开始进行到达抖动缓冲器33的到达数据包输入处理时执行延长时间控制处理。
一旦开始数据包输入处理,判断进入抖动吸收缓冲器33的数据包输入位置是否是图8的缓冲器区域A(步骤111)。数据包输入位置是缓冲器区域A的情况下,如图9a所示,判断出实际数据包到达时刻的分布S2比作为目标的数据包到达时刻的分布S0更偏移左侧,将规定值B_THL存储在计数器b_cnt中(步骤112),同时将操作模式设定为延迟时间延长模式(步骤113)。然后,通过将数据包存储在抖动吸收缓冲器33中(步骤120),结束这次的数据包输入处理。
在上述步骤111中,在判断出数据包输入位置不是缓冲器区域A的情况下,判断数据包输入位置是否是缓冲器区域B(步骤114)。在数据包输入位置是缓冲器区域B的情况下,判断出实际数据包到达时刻的分布与作为目标的数据包到达时刻的分布一致的可能性高,同时将规定值B_THL存储在计数器b_cnt中(步骤115),将操作模式设定为通常操作模式(步骤116)。然后,通过将数据包存储在抖动吸收缓冲器33中(步骤120),结束这次的数据包输入处理。
在上述步骤114中,在判断出数据包输入位置不是缓冲器区域B的情况下,将计数器值b_cnt减1(-1)(步骤117)。然后,判断计数器值b_cnt是否变为小于0(步骤118)。在计数器值b_cnt比0大时,判断出实际数据包到达时刻的分布与作为目标的数据包到达时刻的分布一致的可能性高,将操作模式设定为通常操作模式(步骤116)。然后,通过将数据包存储在抖动吸收缓冲器33中(步骤120),结束这次的数据包输入处理。
在上述步骤118中,判断计数器值b_cnt是否变为小于0的情况下,如图9b所示,判断出实际数据包到达时刻的分布S1比作为目标的数据包到达时刻的分布S0更偏移右侧,将操作模式设定为延迟时间缩短模式(步骤119)。然后,通过将数据包存储在抖动吸收缓冲器33中(步骤120),结束这次的数据包输入处理。