JP4232030B2 - Fluctuation absorption control method of voice packet - Google Patents

Fluctuation absorption control method of voice packet Download PDF

Info

Publication number
JP4232030B2
JP4232030B2 JP2004135437A JP2004135437A JP4232030B2 JP 4232030 B2 JP4232030 B2 JP 4232030B2 JP 2004135437 A JP2004135437 A JP 2004135437A JP 2004135437 A JP2004135437 A JP 2004135437A JP 4232030 B2 JP4232030 B2 JP 4232030B2
Authority
JP
Japan
Prior art keywords
voice
packet
fluctuation
buffer
data
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
Application number
JP2004135437A
Other languages
Japanese (ja)
Other versions
JP2005318379A (en
Inventor
耕二 山宮
豪 宮尾
Original Assignee
サクサ株式会社
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by サクサ株式会社 filed Critical サクサ株式会社
Priority to JP2004135437A priority Critical patent/JP4232030B2/en
Publication of JP2005318379A publication Critical patent/JP2005318379A/en
Application granted granted Critical
Publication of JP4232030B2 publication Critical patent/JP4232030B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

この発明は、例えば、VoIP(Voice over Internet Protocol)電話システムにおける音声パケットの授受の際に適用して好適な揺らぎ吸収制御方法に関する。   The present invention relates to a fluctuation absorption control method suitable for application when, for example, voice packets are exchanged in a VoIP (Voice over Internet Protocol) telephone system.

インターネットやイントラネットのようなIP(Internet Protocol)ネットワークを利用して音声信号を送る技術であるVoIPを用いて電話通信を行なうようにするVoIP電話システムが提供されている。このVoIP電話システムは、例えば、一般のLAN(Local Area Network)用の規格であるITU‐T勧告H.323が用いられて構成される。   There has been provided a VoIP telephone system that performs telephone communication using VoIP, which is a technology for transmitting an audio signal using an IP (Internet Protocol) network such as the Internet or an intranet. This VoIP telephone system is configured using, for example, ITU-T recommendation H.323, which is a standard for a general LAN (Local Area Network).

この場合、通話音声信号は所定時間長分毎にパケット化されてLAN上を順次に伝送されるもので、そのためのトランスポート層のプロトコルとしてはRTP(Real−time Transport Protocol)が用いられる。このRTPにおいては、送信側では、RTPヘッダの中にパケットの順序番号(シーケンス番号)やタイムスタンプ(時刻情報)を付けてパケットを送信し、受信側では、前記順序番号やタイムスタンプを基に、再生の同期をとることにより、実時間動作をすることができる。   In this case, the call voice signal is packetized every predetermined time length and sequentially transmitted on the LAN, and RTP (Real-time Transport Protocol) is used as a transport layer protocol for that purpose. In this RTP, on the transmitting side, a packet is transmitted with the sequence number (sequence number) and time stamp (time information) of the packet added to the RTP header, and on the receiving side, based on the sequence number and time stamp. By synchronizing the reproduction, real-time operation can be performed.

ところで、VoIP端末間での通話品質劣化の要因として、LANからの受信RTPパケット到着時間間隔の遅延、すなわち、揺らぎが挙げられる。この揺らぎの問題については、例えば、特許文献1(特開2004−48680公報参照)にも記載されているように、従来から対策が施されており、通常、受信開始時に、所定数のパケットを揺らぎ吸収バッファに蓄積して、音声の再生を遅れさせることにより、揺らぎの吸収を行っている。   By the way, as a factor of deterioration in call quality between VoIP terminals, there is a delay in arrival time interval of received RTP packets from the LAN, that is, fluctuation. For example, as described in Patent Document 1 (see Japanese Patent Application Laid-Open No. 2004-48680), countermeasures have been taken for this fluctuation problem. Usually, a predetermined number of packets are received at the start of reception. The fluctuation is absorbed by accumulating in the fluctuation absorbing buffer and delaying the reproduction of the sound.

揺らぎ吸収バッファのバッファサイズは、開始蓄積パケット数と、最大蓄積パケット数とにより決定される。開始蓄積パケット数は、RTPパケット受信開始時に、揺らぎ吸収バッファからのパケットの読み出しを遅らせて、音声再生開始を待たせる受信パケット数である。   The buffer size of the fluctuation absorbing buffer is determined by the starting accumulated packet number and the maximum accumulated packet number. The start accumulation packet number is the number of received packets that delays the reading of the packet from the fluctuation absorbing buffer and waits for the start of audio reproduction at the start of RTP packet reception.

すなわち、RTPパケット受信開始時には、揺らぎ吸収バッファに、開始蓄積パケット数の受信パケットが蓄積されるまで、揺らぎ吸収バッファからパケットデータは読み出さず、揺らぎ吸収バッファに開始蓄積パケット数の受信パケットが蓄積されたときには、次の受信パケットの到来のときに、蓄積している受信パケットの先頭のパケットを読み出すようにする。   That is, at the start of RTP packet reception, packet data is not read from the fluctuation absorbing buffer until the number of received packets of the starting accumulated packet is accumulated in the fluctuation absorbing buffer, and the number of received packets of the starting accumulated packet is accumulated in the fluctuation absorbing buffer. When the next received packet arrives, the head packet of the stored received packet is read out.

最大蓄積パケット数は、揺らぎ吸収バッファに蓄積可能な最大パケット数であり、音声再生の遅延の最大値に対応する。揺らぎ吸収バッファの蓄積パケット数が、この最大蓄積パケット数を越えた場合には、開始蓄積パケット数分のパケットをバッファ内に残して、それ以外の蓄積パケットを廃棄するようにする。これにより、音声再生の遅延を最大蓄積パケット数の範囲内に押さえるようにしている。   The maximum number of accumulated packets is the maximum number of packets that can be accumulated in the fluctuation absorbing buffer, and corresponds to the maximum value of the delay of audio reproduction. When the number of accumulated packets in the fluctuation absorbing buffer exceeds this maximum number of accumulated packets, the packets corresponding to the number of start accumulated packets are left in the buffer, and the other accumulated packets are discarded. As a result, the audio reproduction delay is kept within the maximum number of accumulated packets.

従来、一般的には、開始蓄積パケット数と最大蓄積パケット数の値、したがって、揺らぎ吸収バッファのバッファサイズは、使用環境に応じて設定された固定値とされるが、実際の揺らぎよりも揺らぎ吸収バッファのバッファサイズが小さすぎたり、大きすぎたりすると、次のような問題がある。   Conventionally, in general, the values of the starting accumulated packet number and the maximum accumulated packet number, and therefore the buffer size of the fluctuation absorbing buffer is a fixed value set according to the use environment, but the fluctuation is larger than the actual fluctuation. If the buffer size of the absorption buffer is too small or too large, there are the following problems.

すなわち、発生する揺らぎに対して、揺らぎ吸収バッファのサイズが小さい場合には、揺らぎによりパケット受信間隔が遅延している間に、揺らぎ吸収バッファに蓄積されていたパケット分の音声データを再生しきってしまうため、再生音声の音切れの問題が発生する。一方、発生する揺らぎに対して、揺らぎ吸収バッファのサイズが大きすぎる場合には、必要以上に音声再生が遅延してしまう問題がある。   In other words, if the fluctuation absorbing buffer is small in size against the fluctuations that occur, while the packet reception interval is delayed due to fluctuations, the voice data corresponding to the packets accumulated in the fluctuation absorbing buffer is completely reproduced. As a result, there is a problem that the reproduced sound is interrupted. On the other hand, if the size of the fluctuation absorbing buffer is too large with respect to the fluctuation that occurs, there is a problem that audio reproduction is delayed more than necessary.

上記の特許文献1の発明は、揺らぎ吸収バッファのサイズ、すなわち、開始蓄積パケット数および最大蓄積パケット数を、伝送系で発生する揺らぎの量の増減に応じて動的に変更することにより、上記の問題を解決している。そして、この特許文献1に記載の発明による揺らぎ吸収方法においては、パケットの単位でデータを廃棄したり、無音データや、直前に受信したパケットデータを繰り返し再生したりして、揺らぎ吸収バッファにおけるパケットの蓄積量を動的に変更している。   The invention of the above-mentioned Patent Document 1 dynamically changes the size of the fluctuation absorbing buffer, that is, the start accumulation packet number and the maximum accumulation packet number in accordance with the increase / decrease of the fluctuation amount generated in the transmission system. The problem is solved. In the fluctuation absorbing method according to the invention described in Patent Document 1, data is discarded in units of packets, silence data, packet data received immediately before is repeatedly reproduced, and the packet in the fluctuation absorbing buffer is The amount of storage is dynamically changed.

図34および図35は、特許文献1における揺らぎ吸収バッファのサイズの変更およびパケット単位のデータ処理を説明するための図である。この例は、送信端末から送られてくるパケット単位の音声1、音声2、音声3、・・・を、受信端末で受信して、リアルタイムで再生するときの処理例である。この例は、説明の簡単のため、揺らぎ吸収バッファの開始蓄積パケット数が「0」で、最大蓄積パケット数が「1」以上である場合である。図36は、そのときの受信端末での処理のフローチャートを示すものである。   FIG. 34 and FIG. 35 are diagrams for explaining the change in the size of the fluctuation absorbing buffer and the data processing in units of packets in Patent Document 1. In this example, voice 1, voice 2, voice 3,... Sent in units of packets sent from the transmitting terminal are received by the receiving terminal and reproduced in real time. In this example, for simplicity of explanation, the number of start accumulation packets in the fluctuation absorbing buffer is “0” and the maximum number of accumulation packets is “1” or more. FIG. 36 shows a flowchart of processing at the receiving terminal at that time.

図34では、送信端末から送出された音声1、音声2のパケットデータに関しては、伝送系では揺らぎがなく、受信端末では、それらを順次に受信してリアルタイムに再生することができる(図36のステップS1およびステップS2)。   In FIG. 34, the packet data of voice 1 and voice 2 sent from the transmitting terminal is not fluctuated in the transmission system, and the receiving terminal can receive them sequentially and reproduce them in real time (FIG. 36). Step S1 and step S2).

しかし、送信端末から送出された音声3のパケットは、伝送系で発生した揺らぎのため受信端末への到達が遅れ、このため、受信端末では、例えば音声2から生成した1パケット分の合成信号を生成して再生する(ステップS3)。   However, the voice 3 packet sent out from the transmitting terminal is delayed in reaching the receiving terminal due to fluctuations occurring in the transmission system. For this reason, the receiving terminal, for example, generates a synthesized signal for one packet generated from the voice 2. Generate and play back (step S3).

そして、受信端末では、遅れて到着する音声3のパケットデータを受信し、この音声3を再生するが、このとき、揺らぎの発生に合わせて揺らぎ吸収バッファの開始蓄積パケット数および最大蓄積パケット数を増加させる(ステップS4)。つまり、揺らぎ吸収バッファのバッファ量(蓄積パケット数)を増加する。そして、次に到来する音声4のパケットデータは、揺らぎ吸収バッファの開始蓄積パケット数が増加したことにより、受信して保存し、再生はしない(ステップS5)。   The receiving terminal receives the packet data of the voice 3 that arrives late and reproduces the voice 3. At this time, the start accumulated packet number and the maximum accumulated packet number of the fluctuation absorbing buffer are set in accordance with the occurrence of fluctuation. Increase (step S4). That is, the buffer amount (accumulated packet number) of the fluctuation absorbing buffer is increased. Then, the packet data of the next incoming voice 4 is received and stored, and is not reproduced (step S5), because the start accumulation packet number of the fluctuation absorbing buffer has increased.

次に、伝送系での揺らぎが収束して、音声5のパケットが到来したときには、受信端末では、揺らぎ収束に応じて、揺らぎ吸収バッファの開始蓄積パケット数および最大蓄積パケット数を減少させると共に、保存していた音声4のパケットは廃棄して、音声5のパケットを再生するようにする(ステップS6)。   Next, when the fluctuation in the transmission system converges and a packet of voice 5 arrives, the receiving terminal decreases the start accumulation packet number and the maximum accumulation packet number of the fluctuation absorption buffer according to the fluctuation convergence, The stored voice 4 packet is discarded and the voice 5 packet is reproduced (step S6).

その後の音声6および音声7のパケットデータは、伝送系での揺らぎがない状態であるので、受信端末では、それらを順次に受信してリアルタイムに再生することができる(ステップS7およびステップS8)。このときのパケット単位の音声データについての再生順序は、図35に示すようなものとなる。   Since the subsequent packet data of the voice 6 and voice 7 is in a state where there is no fluctuation in the transmission system, the receiving terminal can receive them sequentially and reproduce them in real time (steps S7 and S8). At this time, the reproduction order of the audio data in packet units is as shown in FIG.

上記の特許文献は、次の通りである。
特開2004−48680公報
The above-mentioned patent documents are as follows.
JP 2004-48680 A

上述したように、揺らぎ吸収バッファによる揺らぎ吸収制御方法においては、伝送系で発生する揺らぎに応じて、パケット単位で音声データを廃棄したり、無音データを追加したり、直前に受信したパケットデータから合成音声信号を生成して再生したりするようにしている。   As described above, in the fluctuation absorbing control method using the fluctuation absorbing buffer, the voice data is discarded in units of packets, silence data is added, or the packet data received immediately before is added according to the fluctuation generated in the transmission system. A synthesized voice signal is generated and reproduced.

しかしながら、パケット単位で音声データを廃棄したり、合成音声信号を生成したりしているため、パケット単位のデータの区切り位置で音声信号波形に不連続部分が生じ、音声信号の再生音においては、当該不連続部分が人間の耳には雑音として聞こえるという問題がある。   However, since the audio data is discarded in units of packets or a synthesized audio signal is generated, a discontinuous portion occurs in the audio signal waveform at the position where the data in units of packets is separated, and in the reproduced sound of the audio signal, There is a problem that the discontinuous portion can be heard as noise by the human ear.

この発明は、以上の点にかんがみ、揺らぎ吸収バッファを用いて、音声パケットの伝送における揺らぎを吸収するように制御する場合において、雑音の影響をできるだけ少なくすることができる音声パケットの揺らぎ吸収制御方法を提供することを目的とする。   In view of the above points, the present invention provides a voice packet fluctuation absorption control method capable of reducing the influence of noise as much as possible in the case of using a fluctuation absorption buffer to control fluctuations in voice packet transmission. The purpose is to provide.

上記の課題を解決するために、請求項1の発明は、
リアルタイムで再生されるべき音声信号が所定時間長分毎にパケット化されて順次に伝送されてくる音声パケットを、揺らぎ吸収バッファを通じて受信し、伝送系において発生する前記音声パケットの到着タイミングの揺らぎを、前記揺らぎ吸収バッファにより制御する方法であって、
受信開始時に、前記揺らぎ吸収バッファに、開始蓄積パケット数の音声パケットが蓄積されてから、前記揺らぎ吸収バッファからの前記音声パケットの読み出しを開始し、前記揺らぎ吸収バッファに蓄積される音声パケット数が最大蓄積パケット数を越えたときには、所定数の音声パケット分のデータを廃棄するようにする音声パケットの揺らぎ吸収制御方法において、
前記揺らぎ吸収バッファに蓄積されている音声パケットのデータについて、音声波形周期を検出しておき、前記所定数の音声パケット分のデータを廃棄する際には、前記検出された音声波形周期の単位で廃棄を行なうことにより、音声波形の連続性を保持するようにした
ことを特徴とする音声パケットの揺らぎ吸収制御方法を提供する。
In order to solve the above problems, the invention of claim 1
The voice signal that is to be reproduced in real time is packetized every predetermined time length and is sequentially transmitted through the fluctuation absorbing buffer, and fluctuation of arrival timing of the voice packet generated in the transmission system is received. , A method of controlling by the fluctuation absorbing buffer,
At the start of reception, after the number of voice packets stored in the fluctuation absorbing buffer is accumulated in the fluctuation absorbing buffer, reading of the voice packet from the fluctuation absorbing buffer is started, and the number of voice packets accumulated in the fluctuation absorbing buffer is In the voice packet fluctuation absorption control method that discards data for a predetermined number of voice packets when the maximum number of accumulated packets is exceeded,
For voice packet data stored in the fluctuation absorbing buffer, a voice waveform period is detected, and when discarding the data for the predetermined number of voice packets, the detected voice waveform period is used as a unit. Provided is a voice packet fluctuation absorption control method characterized in that the continuity of a voice waveform is maintained by discarding.

この請求項1の発明においては、揺らぎ吸収バッファに蓄積されていた音声パケットデータについて、データの廃棄が必要なときには、当該揺らぎ吸収バッファに蓄積されている音声パケットのデータについて検出された音声波形周期単位でデータが廃棄される。   In the first aspect of the present invention, when the voice packet data stored in the fluctuation absorbing buffer needs to be discarded, the voice waveform period detected for the voice packet data stored in the fluctuation absorbing buffer. Data is discarded in units.

音声波形周期単位で廃棄されるため、廃棄されたデータの前後のデータは、連続性が保たれると共に、廃棄されずに残ったパケットデータの最後の部分と、その次の音声パケットデータの先頭の部分とは、本来、連続性を保持しているデータであるので、全体として、波形的に不連続なつなぎ目が生じることは無く、雑音の発生を抑えることができる。   Since the data is discarded in units of speech waveform cycles, the data before and after the discarded data is maintained in continuity, and the last part of the packet data that remains without being discarded and the beginning of the next voice packet data. Since this part is originally data that maintains continuity, there is no continuous discontinuity in the waveform as a whole, and the generation of noise can be suppressed.

また、請求項2の発明は、
リアルタイムで再生されるべき音声信号が所定時間長分毎にパケット化されて順次に伝送されてくる音声パケットを、揺らぎ吸収バッファを通じて受信し、伝送系において発生する前記音声パケットの到着タイミングの揺らぎを、前記揺らぎ吸収バッファにより制御する方法であって、
受信開始時に、前記揺らぎ吸収バッファに、開始蓄積パケット数の音声パケットが蓄積されてから、前記揺らぎ吸収バッファからの前記音声パケットの読み出しを開始し、前記揺らぎ吸収バッファに蓄積される音声パケット数が前記開始蓄積パケット数よりも少なくなり、前記揺らぎ吸収バッファから前記リアルタイムで再生されるべき音声信号が読み出されなくなったときには、合成音声信号を前記リアルタイムで再生する音声信号とするようにする音声パケットの揺らぎ吸収制御方法において、
前記揺らぎ吸収バッファに蓄積されている音声パケットのデータについて、音声波形周期を検出しておき、前記合成音声信号は、前記揺らぎ吸収バッファに蓄積されている音声パケットのデータを用いて、前記検出された音声波形周期の単位で生成することにより、音声波形の連続性を保持するようにした
ことを特徴とする音声パケットの揺らぎ吸収制御方法を提供する。
The invention of claim 2
The voice signal that is to be reproduced in real time is packetized every predetermined time length and is sequentially transmitted through the fluctuation absorbing buffer, and fluctuation of arrival timing of the voice packet generated in the transmission system is received. , A method of controlling by the fluctuation absorbing buffer,
At the start of reception, after the number of voice packets stored in the fluctuation absorbing buffer is accumulated in the fluctuation absorbing buffer, reading of the voice packet from the fluctuation absorbing buffer is started, and the number of voice packets accumulated in the fluctuation absorbing buffer is An audio packet for reducing a synthesized audio signal to be an audio signal to be reproduced in real time when the audio signal to be reproduced in real time is no longer read from the fluctuation absorbing buffer when the number is less than the start accumulation packet number In the fluctuation absorption control method,
A voice waveform period is detected for the voice packet data stored in the fluctuation absorbing buffer, and the synthesized voice signal is detected using the voice packet data stored in the fluctuation absorbing buffer. The present invention provides a voice packet fluctuation absorption control method characterized in that the continuity of a voice waveform is maintained by generating the voice waveform period.

また、この請求項2の発明においては、伝送系における揺らぎのために、揺らぎ吸収バッファから前記リアルタイムで再生されるべき音声信号が読み出されなくなったときには、当該揺らぎ吸収バッファに蓄積されている音声パケットのデータについて検出された音声波形周期単位で生成された合成音声信号を用いて再生するようにする。   According to the second aspect of the present invention, when the audio signal to be reproduced in real time is not read from the fluctuation absorbing buffer due to fluctuations in the transmission system, the voice stored in the fluctuation absorbing buffer is not read. Playback is performed using a synthesized speech signal generated in units of speech waveform periods detected for packet data.

合成音声信号は、音声波形周期単位で生成されるため、生成された音声波形周期単位のデータは、連続性が保たれると共に、音声波形周期単位であるため、当該合成音声信号と、その次に到来する音声パケットデータとのつなぎ目においても、音声波形周期単位とすることができるので、波形的に不連続なつなぎ目が生じることを防止することができ、雑音の発生を抑えることができる。   Since the synthesized speech signal is generated in units of speech waveform periods, the generated speech waveform period unit data is maintained in continuity and is in units of speech waveform periods. Even at the joint with the voice packet data arriving at, the voice waveform cycle unit can be used, so that it is possible to prevent the joint between the waveforms being discontinuous and to suppress the generation of noise.

この発明によれば、音声信号の廃棄および合成は、揺らぎ吸収バッファに蓄積されている音声パケットのデータから検出された音声波形周期単位でなされるので、音声データのつなぎ目における波形の不連続性を防止して、再生音声における雑音の発生を抑えることができる。   According to the present invention, since discarding and synthesizing of the voice signal is performed in units of voice waveform periods detected from the voice packet data stored in the fluctuation absorbing buffer, the waveform discontinuity at the joint of the voice data is reduced. It is possible to prevent the occurrence of noise in the reproduced voice.

以下、この発明による音声パケットの揺らぎ吸収方法の実施形態を、VoIP電話システムにおける音声パケットの伝送に適用した場合を例にとって、図を参照しながら説明する。   Hereinafter, an embodiment of a voice packet fluctuation absorbing method according to the present invention will be described with reference to the drawings, taking as an example a case where the voice packet fluctuation absorbing method is applied to transmission of voice packets in a VoIP telephone system.

図1は、この実施形態におけるVoIP電話システムの全体の概要を示すブロック図である。この例のVoIP電話システムは、ゲートキーパー1と、電話端末(H.323端末)2の複数個と、LAN3と、VoIPゲートウエイ4とによって構成される。   FIG. 1 is a block diagram showing an overview of the entire VoIP telephone system in this embodiment. The VoIP telephone system in this example includes a gatekeeper 1, a plurality of telephone terminals (H.323 terminals) 2, a LAN 3, and a VoIP gateway 4.

電話端末2は、コンピュータの機能を備えると共に、ハンドセット2Hを備えている。そして、複数個の電話端末2のそれぞれは、IPネットワークを構成するLAN3に接続され、このLAN3を通じてゲートキーパー1に接続されている。   The telephone terminal 2 has a computer function and a handset 2H. Each of the plurality of telephone terminals 2 is connected to a LAN 3 that constitutes an IP network, and is connected to the gatekeeper 1 through the LAN 3.

VoIPゲートウエイ4は、複数回線分の電話回線6を介して、電話網5と接続されると共に、LAN3に接続される。電話回線6は、例えばISDN(Integrated Services Digital Network)回線、専用回線などを含む。このゲートウエイ4は、電話網5とIPネットワークとを接続するための機能を備える中継管理装置の役割を果たすもので、連続音声信号とIP音声パケットの相互変換や、IP音声パケットのゲートキーパー1とのやり取り、さらに、電話番号とIPアドレスとの相互変換を行なう。   The VoIP gateway 4 is connected to a telephone network 5 and a LAN 3 through telephone lines 6 for a plurality of lines. The telephone line 6 includes, for example, an ISDN (Integrated Services Digital Network) line and a dedicated line. The gateway 4 serves as a relay management device having a function for connecting the telephone network 5 and the IP network. The gateway 4 performs mutual conversion between continuous voice signals and IP voice packets, and the gatekeeper 1 for IP voice packets. Exchange, and mutual conversion between telephone number and IP address.

この場合、LAN3は、ITU−T勧告H.323の規格によるIPネットワークの構成とされている。   In this case, the LAN 3 is an ITU-T recommendation H.264. The IP network is configured according to the H.323 standard.

ゲートキーパー1は、ITU−T勧告H.323のシステム構成の中で中心的な管理機能を担当するもので、例えばパーソナルコンピュータで構成される。複数の電話端末2のそれぞれは、LAN3に接続されたときに、ゲートキーパー1に登録される。   The gatekeeper 1 is an ITU-T recommendation H.264. It is in charge of a central management function in the H.323 system configuration, and is configured by a personal computer, for example. Each of the plurality of telephone terminals 2 is registered in the gatekeeper 1 when connected to the LAN 3.

ゲートキーパー1は、システム内のゲートウエイ4や複数の電話端末2の交換管理、帯域幅の割り当て、電話番号とIPアドレスの対応付けなどを行ない、これに登録された複数個の電話端末による複数の電話回線6を利用した電話通信を管理する機能を有する交換管理装置の役割を果たす。   The gatekeeper 1 manages the exchange of gateways 4 and a plurality of telephone terminals 2 in the system, allocates bandwidth, associates telephone numbers with IP addresses, and performs a plurality of registrations by a plurality of registered telephone terminals. It plays the role of an exchange management device having a function of managing telephone communication using the telephone line 6.

[ゲートキーパー1のハードウエア構成例]
この実施の形態のシステムにおけるゲートキーパー1のハードウエア構成例を図2に示す。この実施の形態のゲートキーパー1は、例えばパーソナルコンピュータにより構成されるもので、CPU110に対して、システムバス111を介してROM112と、RAM113と、LANインターフェイス114と、パケット処理部115と、ネットワーク管理メモリ116とが接続されている。
[Hardware configuration example of gatekeeper 1]
An example of the hardware configuration of the gatekeeper 1 in the system of this embodiment is shown in FIG. The gate keeper 1 of this embodiment is constituted by, for example, a personal computer, and is connected to the CPU 110 via a system bus 111 with a ROM 112, a RAM 113, a LAN interface 114, a packet processing unit 115, and a network management. A memory 116 is connected.

ROM112には、電話番号情報とIPアドレスとの変換の処理プログラムなど、ゲートキーパー1が実行する処理プログラムが記憶されている。RAM113は、主としてROM112のプログラムがCPU110によって実行される際にワークエリアとして使用される。   The ROM 112 stores a processing program executed by the gatekeeper 1 such as a processing program for converting telephone number information and an IP address. The RAM 113 is mainly used as a work area when the program of the ROM 112 is executed by the CPU 110.

また、LANインターフェイス114は、LAN3を通じて送られてくるパケット化データを取り込み、また、LAN3にパケット化データを送出するための機能を備える。   The LAN interface 114 has a function for capturing packetized data sent through the LAN 3 and sending the packetized data to the LAN 3.

パケット処理部115は、LANインターフェイス114により取り込んだパケットが、制御データのパケットであった場合には、その制御データを解読するために、受信したパケットを分解し、また、送信する制御データのパケット化データを生成する機能を有する。   When the packet fetched by the LAN interface 114 is a control data packet, the packet processing unit 115 disassembles the received packet to decode the control data, and transmits the control data packet to be transmitted. Has a function of generating digitized data.

なお、音声データのパケットの場合には、一般的には、ゲートキーパー1を介さずに、ゲートウエイ4と電話端末2との間でやり取りする。ただし、ゲートキーパー1を介して音声データのパケットの転送を行なう場合もあり、その場合には、ゲートキーパー1は、ゲートウエイ4からのパケットは電話端末2に宛てて、電話端末2からのパケットはゲートウエイ4または他の電話端末2に宛てて、その音声パケットを転送するようにする。   In the case of a packet of voice data, generally, it is exchanged between the gateway 4 and the telephone terminal 2 without going through the gatekeeper 1. However, the voice data packet may be transferred via the gatekeeper 1. In this case, the gatekeeper 1 sends the packet from the gateway 4 to the telephone terminal 2, and the packet from the telephone terminal 2 does not The voice packet is transferred to the gateway 4 or another telephone terminal 2.

そして、パケット処理部115は、パケット化データを分解/生成したり、転送処理のために一時保存したりするためのバッファメモリを備える。   The packet processing unit 115 includes a buffer memory for decomposing / generating packetized data and temporarily storing the packetized data for transfer processing.

ネットワーク管理メモリ116は、ネットワーク内に存在するゲートウエイ4や複数の電話端末2の登録情報やそれらのIPアドレスおよび、電話端末2のIPアドレスと電話番号との対応などの情報を記憶している。CPU110は、それらの情報を用いて、パケットの行き先のIPアドレスを決定したり、受信先のIPアドレスを判別したりする。   The network management memory 116 stores information such as registration information of the gateway 4 and the plurality of telephone terminals 2 existing in the network, their IP addresses, and correspondence between the IP addresses of the telephone terminals 2 and telephone numbers. The CPU 110 determines the destination IP address of the packet or determines the destination IP address using the information.

[電話端末2のハードウエア構成例]
この実施形態のシステムにおける電話端末2は、図3に示すようなハードウエア構成例を示すものである。この実施形態の電話端末2は、端末本体200と、ハンドセット2Hとからなる。ハンドセット2Hは、図示を省略したが、送話器を構成するマイクロホンと、送話アンプと、受話器を構成するスピーカと、受話アンプとを備えている。
[Hardware configuration example of telephone terminal 2]
The telephone terminal 2 in the system of this embodiment shows a hardware configuration example as shown in FIG. The telephone terminal 2 of this embodiment includes a terminal body 200 and a handset 2H. Although not shown, the handset 2H includes a microphone that constitutes a transmitter, a transmitter amplifier, a speaker that constitutes a receiver, and a receiver amplifier.

端末本体200は、コンピュータにより構成されており、CPU210に対して、システムバス211を介してROM212と、RAM213と、ディスプレイコントローラ214と、操作入力インターフェイス(図ではインターフェイスはI/Fと記載する。以下同じ)216と、LANインターフェイス218と、パケット分解/生成部219と、音声データ入出力インターフェイス220と、揺らぎ吸収バッファを構成するRTP受信バッファ221と、RTP送信バッファ222とが接続されている。   The terminal main body 200 is configured by a computer, and with respect to the CPU 210, a ROM 212, a RAM 213, a display controller 214, and an operation input interface (in the figure, the interface is described as I / F) via a system bus 211. 216, a LAN interface 218, a packet decomposition / generation unit 219, an audio data input / output interface 220, an RTP reception buffer 221 constituting a fluctuation absorbing buffer, and an RTP transmission buffer 222 are connected.

さらに、システムバス211には、受話音声データや送話音声データについての音声波形周期を抽出演算する音声波形周期演算部223と、音声データ合成処理部224と、音声データ廃棄処理部225とが接続されている。   Furthermore, a speech waveform period calculation unit 223 that extracts and calculates a speech waveform period for received voice data and transmission voice data, a voice data synthesis processing unit 224, and a voice data discard processing unit 225 are connected to the system bus 211. Has been.

ディスプレイコントローラ214には、ディスプレイ215が接続されており、このディスプレイ215の表示画面には、CPU210の制御にしたがった表示が行われる。   A display 215 is connected to the display controller 214, and a display according to the control of the CPU 210 is performed on the display screen of the display 215.

また、操作入力インターフェイス216には、テンキー、カーソルキー、その他の操作キーを含む操作入力部217が接続されている。CPU210は、操作入力インターフェイス216を介して操作入力部217を通じて使用者がいずれの入力キーを操作したかを認識し、その認識結果に基づいて、キー入力操作に応じた処理をROM212のプログラムに従って実行する。   The operation input interface 216 is connected to an operation input unit 217 including a numeric keypad, a cursor key, and other operation keys. The CPU 210 recognizes which input key is operated by the user through the operation input unit 217 via the operation input interface 216, and executes processing corresponding to the key input operation according to the program in the ROM 212 based on the recognition result. To do.

ROM212には、電話端末2をゲートキーパー1に登録する際の処理シーケンスを実行するためのプログラムや揺らぎ吸収バッファを構成するRTP受信バッファ221のバッファサイズを、LAN3上で実際に発生する揺らぎに動的に対応して制御するためのプログラム、音声波形周期演算部223、音声データ合成処理部224および音声データ廃棄処理部225などを制御して、音声データの音声波形単位の合成または廃棄処理をするためのプログラムなどが記憶されている。   In the ROM 212, the program for executing the processing sequence when registering the telephone terminal 2 in the gatekeeper 1 and the buffer size of the RTP reception buffer 221 constituting the fluctuation absorbing buffer are moved according to fluctuations actually generated on the LAN 3. The control program, the voice waveform cycle calculation unit 223, the voice data synthesis processing unit 224, the voice data discard processing unit 225, and the like are controlled to synthesize or discard voice data in units of voice waveforms. A program for storing the program is stored.

RAM213は、主としてROM212のプログラムがCPU210によって実行される際にワークエリアとして使用される。   The RAM 213 is mainly used as a work area when the program of the ROM 212 is executed by the CPU 210.

LANインターフェイス218は、LAN3を通じて送られてくるパケット化データを取り込んでRTP受信バッファ221に順次に蓄積し、また、RTP送信バッファ222に蓄積されている音声データの送信パケットを、LAN3の空きを確認しながら、LAN3に順次に送出する機能を備える。   The LAN interface 218 captures packetized data sent through the LAN 3 and sequentially stores the packetized data in the RTP reception buffer 221, and checks the voice data transmission packets stored in the RTP transmission buffer 222 for the availability of the LAN 3. However, it has a function of sequentially sending to the LAN 3.

パケット分解/生成部219は、LANインターフェイス218により取り込まれ、RTP受信バッファ221から読み出されたパケット化データを分解して、制御データや音声データを得る機能と、送信する制御データや所定時間分毎の音声データをパケット化したパケット化データを生成し、RTP送信バッファ222に転送する機能を有する。このパケット分解/生成部219は、パケット化データを分解したり、生成したりするためのバッファメモリを備える。   The packet decomposing / generating unit 219 has a function of decomposing packetized data taken in by the LAN interface 218 and read out from the RTP reception buffer 221 to obtain control data and audio data, control data to be transmitted, and a predetermined time. It has a function of generating packetized data obtained by packetizing each voice data and transferring the packetized data to the RTP transmission buffer 222. The packet decomposition / generation unit 219 includes a buffer memory for decomposing and generating packetized data.

なお、このパケット分解/生成部219のパケット分解処理機能や生成処理機能は、DSP(Digital Signal Processor)により構成されるが、CPU210と、ROM212とにより、ソフトウエアとして実現することもできる。   Note that the packet decomposition processing function and the generation processing function of the packet decomposition / generation unit 219 are configured by a DSP (Digital Signal Processor), but may be realized as software by the CPU 210 and the ROM 212.

音声データ入出力インターフェイス220は、パケット分解されて得られた音声データをアナログ音声信号に変換してハンドセット2Hに供給し、また、ハンドセット2Hから入力されるアナログ音声信号をデジタル信号に変換して取り込む機能を備える。   The audio data input / output interface 220 converts the audio data obtained by the packet decomposition into an analog audio signal and supplies it to the handset 2H, and converts the analog audio signal input from the handset 2H into a digital signal and takes it in. It has a function.

音声波形周期演算部223は、揺らぎ吸収バッファを構成するRTP受信バッファ221に格納されている音声データから、当該音声データの音声波形周期を演算して求めるようにする。この音声波形周期演算部223は、例えばDSPで構成されるが、CPU210と、ROM212とにより、ソフトウエアとして実現することもできる。この音声波形周期演算部223における音声波形周期演算処理の詳細については、後で詳述する。   The voice waveform cycle calculation unit 223 calculates the voice waveform cycle of the voice data from the voice data stored in the RTP reception buffer 221 that constitutes the fluctuation absorbing buffer. The voice waveform cycle calculation unit 223 is configured by a DSP, for example, but can also be realized as software by the CPU 210 and the ROM 212. Details of the voice waveform cycle calculation processing in the voice waveform cycle calculation unit 223 will be described later.

音声データ合成処理部224は、音声パケットについての伝送揺らぎのために、揺らぎ吸収バッファとしてのRTP受信バッファ221から音声データが読み出されなくなる状態になったときに、RTP受信バッファ221に記憶されている音声データから合成音声信号を生成し、生成した合成音声信号を次のパケットの音声データとつなぎ合わせる処理を行なう。   The voice data synthesis processing unit 224 stores the voice data in the RTP reception buffer 221 when the voice data is not read from the RTP reception buffer 221 serving as a fluctuation absorbing buffer due to transmission fluctuation of the voice packet. A synthesized voice signal is generated from the existing voice data, and the generated synthesized voice signal is connected to the voice data of the next packet.

ここで、この実施形態では、音声データ合成処理部224では、音声波形周期演算部223で求められた音声波形周期に基づいて、音声波形周期単位で合成音声信号を生成し、つなぎ合わせの処理を行なうようにする。この音声データ合成処理部224における処理も、後で詳述する。   Here, in this embodiment, the voice data synthesis processing unit 224 generates a synthesized voice signal in units of voice waveform cycles based on the voice waveform cycle obtained by the voice waveform cycle calculation unit 223, and performs a process of joining. Do it. The processing in the voice data synthesis processing unit 224 will also be described in detail later.

音声データ廃棄処理部225は、後述するように、揺らぎ吸収バッファとしてのRTP受信バッファ221のバッファサイズを、音声パケットのデータの伝送揺らぎに応じて動的に変更制御する際において、音声データを廃棄する必要が生じたときに、音声波形周期演算部223で求められた音声波形周期に基づいて、音声波形周期単位で音声データの廃棄処理を行なう。   As will be described later, the voice data discard processing unit 225 discards voice data when dynamically changing the buffer size of the RTP reception buffer 221 as a fluctuation absorbing buffer according to transmission fluctuation of voice packet data. When it becomes necessary to perform this processing, voice data is discarded in units of voice waveform periods based on the voice waveform period obtained by the voice waveform period calculation unit 223.

なお、音声データ合成処理部224や音声データ廃棄処理部225も、例えばDSPで構成されるが、CPU210と、ROM212とにより、ソフトウエアとして実現することもできる。   Note that the voice data synthesis processing unit 224 and the voice data discard processing unit 225 are also configured by, for example, a DSP, but can also be realized as software by the CPU 210 and the ROM 212.

[ゲートウエイ4のハードウエア構成例]
この実施の形態のシステムにおけるゲートウエイ4のハードウエア構成例を図4に示す。この実施の形態のゲートウエイ4は、例えばパーソナルコンピュータにより構成されるもので、CPU410に対して、システムバス411を介してROM412と、RAM413と、LANインターフェイス414と、パケット処理部415と、揺らぎ吸収バッファを構成するRTP受信バッファ417と、RTP送信バッファ418とが接続されている。
[Hardware configuration example of Gateway 4]
An example of the hardware configuration of the gateway 4 in the system of this embodiment is shown in FIG. The gateway 4 of this embodiment is configured by a personal computer, for example, and is connected to the CPU 410 via a system bus 411, a ROM 412, a RAM 413, a LAN interface 414, a packet processing unit 415, and a fluctuation absorbing buffer. Are connected to an RTP reception buffer 417 and an RTP transmission buffer 418.

また、この実施形態のゲートウエイ4においては、システムバス411に対して、受話音声データや送話音声データについての音声波形周期を抽出演算する音声波形周期演算部419と、音声データ合成処理部420と、音声データ廃棄処理部421とが接続されている。   In the gateway 4 of this embodiment, a voice waveform cycle calculation unit 419 that extracts and calculates a voice waveform cycle of received voice data and transmitted voice data with respect to the system bus 411, a voice data synthesis processing unit 420, and the like. The audio data discard processing unit 421 is connected.

ROM412には、電話端末2からの音声パケットのデータを、RTP受信バッファ417を介して受け取り、電話回線6を通じて電話網5に送出するデータに変換するためのプログラム、また、逆に電話網5から取得したデータをLAN3を通じて電話端末2に送出するパケット化データに変換するためのプログラムや、揺らぎ吸収バッファを構成するRTP受信バッファ417のバッファサイズをLAN3上で実際に発生する揺らぎに動的に対応して制御するためのプログラム、音声波形周期演算部419、音声データ合成処理部420および音声データ廃棄処理部421などを制御して、音声データの音声波形単位の合成または廃棄処理をするためのプログラムなどが記憶されている。   The ROM 412 receives a voice packet data from the telephone terminal 2 through the RTP reception buffer 417 and converts it into data to be sent to the telephone network 5 through the telephone line 6, and conversely from the telephone network 5. A program for converting the acquired data into packetized data to be transmitted to the telephone terminal 2 via the LAN 3 and the buffer size of the RTP reception buffer 417 constituting the fluctuation absorbing buffer are dynamically supported for fluctuations actually generated on the LAN 3. , A speech waveform period calculation unit 419, a speech data synthesis processing unit 420, a speech data discard processing unit 421, and the like, and a program for performing speech waveform unit synthesis or discard processing of speech data Etc. are stored.

RAM413は、主としてROM412のプログラムがCPU410によって実行される際にワークエリアとして使用される。   The RAM 413 is mainly used as a work area when the program of the ROM 412 is executed by the CPU 410.

また、LANインターフェイス414は、LAN3を通じて送られてくるパケット化データを取り込み、また、LAN3にパケット化データを送出するための機能を備える。   The LAN interface 414 has a function for capturing packetized data sent through the LAN 3 and sending the packetized data to the LAN 3.

パケット処理部415は、LANインターフェイス414により取り込んだパケットを分解して、電話網5を伝送する形式のデータに変換し、また、電話網5から受信したデータをパケット化して、LANインターフェイス414を通じてLAN3に送出するパケット化データを生成する機能を有する。   The packet processing unit 415 disassembles the packet taken in by the LAN interface 414 and converts it into data of a format to be transmitted through the telephone network 5, packetizes the data received from the telephone network 5, and transmits the LAN 3 through the LAN interface 414. A function of generating packetized data to be transmitted to

RTP受信バッファ417とRTP送信バッファ418とは、前述した図3の電話端末のRTP受信バッファ221とRTP送信バッファ222と同様の働きをするものである。これらRTP受信バッファ417とRTP送信バッファ418とは、図4では、一つずつ示したが、実際には、複数本の電話回線6のそれぞれの電話回線に対して、一つずつ設けられるものである。   The RTP reception buffer 417 and the RTP transmission buffer 418 function in the same manner as the RTP reception buffer 221 and the RTP transmission buffer 222 of the telephone terminal shown in FIG. These RTP reception buffer 417 and RTP transmission buffer 418 are shown one by one in FIG. 4, but actually, one RTP reception buffer 417 and one RTP transmission buffer 418 are provided for each of the telephone lines of the plurality of telephone lines 6. is there.

音声波形周期演算部419と、音声データ合成処理部420と、音声データ廃棄処理部421とは、図3の音声波形周期演算部223と、音声データ合成処理部224と、音声データ廃棄処理部225と同様の処理動作をするものである。   The voice waveform cycle calculation unit 419, the voice data synthesis processing unit 420, and the voice data discard processing unit 421 are the voice waveform cycle calculation unit 223, the voice data synthesis processing unit 224, and the voice data discard processing unit 225 of FIG. The same processing operation is performed.

[揺らぎ吸収制御方法の実施形態の説明]
この実施形態の揺らぎ吸収制御方法は、電話端末のRTP受信バッファ221、また、ゲートウエイ4のRTP受信バッファ417の、いずれの制御にも適用される。この実施の形態においては、揺らぎ吸収バッファとしてのRTP受信バッファ221または417のバッファサイズを、LAN3において実際に発生する揺らぎに応じて動的(ダイナミック)に変更制御する。
[Description of Embodiment of Fluctuation Absorption Control Method]
The fluctuation absorption control method of this embodiment is applied to any control of the RTP reception buffer 221 of the telephone terminal and the RTP reception buffer 417 of the gateway 4. In this embodiment, the buffer size of the RTP reception buffer 221 or 417 as a fluctuation absorbing buffer is dynamically changed and controlled in accordance with fluctuations actually generated in the LAN 3.

そして、この実施形態では、揺らぎ吸収バッファとしてのRTP受信バッファ221または417のバッファサイズの変更制御に伴い、音声データの廃棄または追加(合成音声信号の追加)が必要であるときに、それら廃棄または追加を、音声パケット単位ではなく、音声波形周期単位で行なうようにする。   In this embodiment, the voice data is discarded or added (addition of the synthesized voice signal) when the buffer size change control of the RTP reception buffer 221 or 417 as the fluctuation absorbing buffer is required. The addition is performed not in units of voice packets but in units of voice waveform periods.

この実施形態のバッファサイズの制御方法を説明する前に、揺らぎ吸収バッファのバッファサイズを決定するためのパラメータの定義を、図5を参照して説明する。この図5は、揺らぎ吸収バッファとしてのRTP受信バッファ221または417のバッファサイズを決定するためのイメージを説明するためのものである。   Before describing the buffer size control method of this embodiment, the definition of parameters for determining the buffer size of the fluctuation absorbing buffer will be described with reference to FIG. FIG. 5 is an illustration for explaining an image for determining the buffer size of the RTP reception buffer 221 or 417 as the fluctuation absorbing buffer.

初期再生パケット数は、RTP受信バッファから読み出すパケット数であり、固定値であって、この例では、初期再生パケット数=1とされている。   The number of initial playback packets is the number of packets read from the RTP reception buffer, and is a fixed value. In this example, the number of initial playback packets = 1.

開始蓄積パケット数は、前述したように、パケット受信開始時に、RTP受信バッファからのパケットの読み出しを遅らせて、音声再生開始を待たせる受信パケット数である。前述したように、この開始蓄積パケット数は従来は固定値であったが、この実施形態では、後述するようにLAN3に発生する揺らぎ量に応じて動的に変化する。以下に説明する例では、開始蓄積パケット数の初期値は、開始蓄積パケット数の初期値=4とされている。   As described above, the start accumulation packet number is the number of received packets that delays the reading of the packet from the RTP reception buffer and waits for the start of audio reproduction at the start of packet reception. As described above, the number of starting accumulated packets has conventionally been a fixed value, but in this embodiment, it dynamically changes according to the amount of fluctuation generated in the LAN 3 as will be described later. In the example described below, the initial value of the starting accumulation packet number is set to 4 as the initial value of the starting accumulation packet number.

次に、最大蓄積パケット数は、前述したように、揺らぎ吸収バッファであるRTP受信バッファに蓄積可能な最大パケット数であり、RTP受信バッファに最大蓄積パケット数以上のパケットが蓄積されたときには、前述したように、開始蓄積パケット数分のパケットをRTP受信バッファ内に残して、それ以外の蓄積パケットを廃棄する。このときに廃棄するパケット数を、溢れバッファ廃棄数と呼び、この例では、溢れバッファ廃棄数=2とされる。ただし、後述するように、実際に廃棄する音声データは、音声波形周期単位のデータである。   Next, as described above, the maximum number of accumulated packets is the maximum number of packets that can be accumulated in the RTP reception buffer, which is a fluctuation absorbing buffer, and when more packets than the maximum number of accumulated packets are accumulated in the RTP reception buffer, As described above, packets corresponding to the number of start accumulation packets are left in the RTP reception buffer, and other accumulation packets are discarded. The number of packets discarded at this time is called the overflow buffer discard number, and in this example, the overflow buffer discard number = 2. However, as will be described later, the audio data that is actually discarded is data in units of audio waveform periods.

この最大蓄積パケット数は、
最大蓄積パケット数=開始蓄積パケット数+溢れバッファ廃棄数
と定義できるもので、音声再生の遅延の最大値に対応する。この実施形態では、上記の定義から、開始蓄積パケット数が動的変化値であるので、これも動的変化値である。
The maximum number of accumulated packets is
This can be defined as the maximum number of accumulated packets = the number of start accumulated packets + the number of overflow buffer discards, and corresponds to the maximum delay of audio reproduction. In this embodiment, since the number of start accumulation packets is a dynamic change value from the above definition, this is also a dynamic change value.

次に、最大開始蓄積パケット数は、動的変化値である開始蓄積パケット数の最大値(上限)であり、固定値である。   Next, the maximum start accumulation packet number is the maximum value (upper limit) of the start accumulation packet number which is a dynamic change value, and is a fixed value.

RTP受信バッファ221または417は、図5に示すように、最大開始蓄積パケット数以上のメモリセル(1つのパケットの蓄積メモリ部をこの明細書ではセルと呼ぶ)を備え、メモリアクセス上、最後のメモリセルの次には最初のメモリセルに戻るようにされたリング状のバッファ構成とされている。   As shown in FIG. 5, the RTP reception buffer 221 or 417 includes memory cells (a storage memory portion of one packet is referred to as a cell in this specification) equal to or more than the maximum start accumulation packet number. Next to the memory cell, a ring-shaped buffer configuration is made so as to return to the first memory cell.

そして、RTP受信バッファ221または417から読み出すパケット位置(メモリセル)は参照インデックスにより指定される。参照インデックスのメモリセルにパケットが蓄積されていないとき、または、RTP受信バッファ221または417に開始蓄積パケット数が蓄積されていないときには、パケットは読み出さずに、後述するように、その前の音声パケットのデータから合成音声信号のデータを生成して、その再生を行なう。このときは、参照インデックスはインクリメントしない。   A packet position (memory cell) to be read from the RTP reception buffer 221 or 417 is designated by a reference index. When no packet is accumulated in the memory cell of the reference index, or when the start accumulation packet number is not accumulated in the RTP reception buffer 221 or 417, the packet is not read out, and the previous audio packet as will be described later. The synthesized voice signal data is generated from the data and reproduced. At this time, the reference index is not incremented.

そして、開始蓄積パケット数分のパケットがRTP受信バッファ221または417に蓄積されていて、参照インデックスのセルのパケットの読み出しをしたときには、参照インデックスをインクリメントする。   Then, when the packets corresponding to the start accumulation packet number are accumulated in the RTP reception buffer 221 or 417 and the packet of the cell of the reference index is read, the reference index is incremented.

また、CPU210またはCPU410は、RTP受信バッファ221または417の各メモリセルに蓄積されているパケットのシーケンス番号を保持して管理している。シーケンス番号は、パケットのRTPヘッダに含まれており、パケットの受信時にRTPヘッダを解析して取得する。   In addition, the CPU 210 or the CPU 410 holds and manages the sequence number of the packet stored in each memory cell of the RTP reception buffer 221 or 417. The sequence number is included in the RTP header of the packet, and is obtained by analyzing the RTP header when the packet is received.

そして、検索開始インデックスが、
検索開始インデックス=参照インデックス+初期再生パケット数
として定義されている。CPU210またはCPU410は、パケットを受信したとき、受信したパケットのRTPヘッダからシーケンス番号を抽出して検知し、検索開始インデックスのメモリセルから、各メモリセルに格納されているパケットのシーケンス番号を検索し、受信パケットを格納するメモリセルを決定する。
And the search start index is
Search start index = reference index + number of initial playback packets
Is defined as When the CPU 210 or the CPU 410 receives a packet, it extracts and detects the sequence number from the RTP header of the received packet, and searches the sequence number of the packet stored in each memory cell from the memory cell of the search start index. The memory cell storing the received packet is determined.

図6は、揺らぎ吸収制御装置500の機能ブロック図である。この図6の揺らぎ吸収バッファの制御装置500は、電話端末2およびゲートウエイ4のいずれにも適用されるものであり、図3に示した電話端末2の端末本体200のハードウエアおよび図4に示したゲートウエイ4のハードウエアから、揺らぎ吸収バッファとしてのRTP受信バッファ221,417の制御および音声データの廃棄および追加に関する部分を抽出したものに相当する。   FIG. 6 is a functional block diagram of the fluctuation absorption control device 500. 6 is applied to both the telephone terminal 2 and the gateway 4. The hardware of the terminal main body 200 of the telephone terminal 2 shown in FIG. 3 and the control apparatus 500 of the fluctuation absorbing buffer shown in FIG. This corresponds to a part extracted from the hardware of the gateway 4 regarding the control of the RTP reception buffers 221 and 417 as the fluctuation absorbing buffer and the discard and addition of the voice data.

LAN3を通じて自分宛に送られてくるRTPパケットは、データ受信部501(LANインターフェイス218,414に対応)で受信され、揺らぎ吸収バッファ502(RTP受信バッファ221または417に対応)に蓄積される。データ受信部501で受信されたRTPパケットは、揺らぎ検出部503に供給されて、LAN3において発生しているRTPパケットについての揺らぎ量(単位は時間)が検出される。   The RTP packet sent to itself through the LAN 3 is received by the data receiving unit 501 (corresponding to the LAN interfaces 218 and 414) and accumulated in the fluctuation absorbing buffer 502 (corresponding to the RTP receiving buffer 221 or 417). The RTP packet received by the data reception unit 501 is supplied to the fluctuation detection unit 503, and the fluctuation amount (unit: time) of the RTP packet generated in the LAN 3 is detected.

ここで、揺らぎ量は、順次に受信される2つの受信RTPパケットの到着時間差と、パケットのRTPヘッダに含まれるタイムスタンプの差よりパケット受信毎に算出される。すなわち、シーケンス番号がiのパケットSのタイムスタンプをT、パケットSの到着時間をA、パケットSの受信時の揺らぎ量をDとしたとき、
=(A−Ai−1)−(T−Ti−1) ・・・(式1)
により、揺らぎ量Dが算出される。
Here, the fluctuation amount is calculated for each packet reception from the arrival time difference between two received RTP packets received sequentially and the difference between the time stamps included in the RTP header of the packet. That is, when the time stamp T i of a packet S i sequence number i, the arrival time of a packet S i A i, the amount of fluctuation in reception of packet S i was D i,
D i = (A i −A i−1 ) − (T i −T i−1 ) (Equation 1)
Thus, the fluctuation amount D i is calculated.

揺らぎ検出部503で検出された揺らぎ量Dは、揺らぎ吸収制御部504に供給される。揺らぎ吸収制御部504は、揺らぎ検出部503で検出された揺らぎ量Dに基づいて、後述するようにRTP受信バッファのバッファサイズの制御を行ない、揺らぎ吸収処理を行ないながら、揺らぎ吸収バッファ502から受信パケットを読み出し、バッファ出力データ処理制御部505に供給する。 The fluctuation amount D i detected by the fluctuation detection unit 503 is supplied to the fluctuation absorption control unit 504. Based on the fluctuation amount D i detected by the fluctuation detection unit 503, the fluctuation absorption control unit 504 controls the buffer size of the RTP reception buffer as will be described later, and performs the fluctuation absorption processing from the fluctuation absorption buffer 502. The received packet is read and supplied to the buffer output data processing control unit 505.

バッファ出力データ処理制御部505は、音声波形周期演算部5051と、音声データ合成処理部5052と、音声データ廃棄処理部5053とを備える。音声波形周期演算部5051、音声データ合成処理部5052および音声データ廃棄処理部5053は、図3の音声波形周期演算部223、音声データ合成処理部224および音声データ廃棄処理部225、または、図4の音声波形周期演算部419、音声データ合成処理部420および音声データ廃棄処理部421に対応する。   The buffer output data processing control unit 505 includes a speech waveform cycle calculation unit 5051, a speech data synthesis processing unit 5052, and a speech data discard processing unit 5053. The voice waveform cycle calculation unit 5051, the voice data synthesis processing unit 5052, and the voice data discard processing unit 5053 are the same as the voice waveform cycle calculation unit 223, the voice data synthesis processing unit 224, and the voice data discard processing unit 225 shown in FIG. Corresponds to the voice waveform period calculation unit 419, the voice data synthesis processing unit 420, and the voice data discard processing unit 421.

バッファ出力データ処理制御部505は、音声波形周期演算部5051で、出力済みの音声データから音声波形周期の算出を行なう。また、バッファ出力データ処理制御部505は、揺らぎ吸収制御部504からの制御情報に基づいて、音声データ合成処理部5052および音声データ廃棄処理部5053で、揺らぎ吸収制御部504による揺らぎ吸収バッファ502のバッファサイズの変更制御に伴い、音声データの廃棄または追加(合成音声信号の追加)が必要であるときに、それら廃棄または追加を、音声波形周期演算部5051で算出した音声波形周期単位で行なう。   The buffer output data processing control unit 505 is a voice waveform cycle calculation unit 5051 that calculates a voice waveform cycle from the outputted voice data. Further, the buffer output data processing control unit 505 is based on the control information from the fluctuation absorption control unit 504, and includes a voice data synthesis processing unit 5052 and a voice data discard processing unit 5053, and the fluctuation absorption control unit 504 uses the fluctuation absorption buffer 502. When discarding or adding speech data (adding a synthesized speech signal) is necessary in accordance with the buffer size change control, discarding or adding the speech data is performed in units of speech waveform periods calculated by the speech waveform period computing unit 5051.

そして、バッファ出力データ処理制御部505は、その出力音声データをデータデコード処理部506に供給する。   Then, the buffer output data processing control unit 505 supplies the output audio data to the data decoding processing unit 506.

データデコード処理部506は、受け取った音声データをデコードし、データ送信部507に供給する。データ送信部507は、電話端末2の場合であれば、音声データをアナログ音声信号に変換してハンドセット2Hに送る。また、データ送信部507は、ゲートウエイ4の場合であれば、音声データを空き回線を通じて電話網5に送出する。   The data decoding processing unit 506 decodes the received audio data and supplies it to the data transmission unit 507. In the case of the telephone terminal 2, the data transmission unit 507 converts the voice data into an analog voice signal and sends it to the handset 2H. In the case of the gateway 4, the data transmission unit 507 transmits the voice data to the telephone network 5 through an empty line.

なお、揺らぎ検出部503および揺らぎ吸収制御部504の動作は、CPU210または410により実行される。また、バッファ出力データ処理制御部505およびデータデコード処理部506は、DSP(Digital Signal Processor)により構成される。データ送信部507は、音声データ入出力インターフェイス220または回線インターフェイス416により構成される。   The operations of the fluctuation detection unit 503 and the fluctuation absorption control unit 504 are executed by the CPU 210 or 410. Further, the buffer output data processing control unit 505 and the data decoding processing unit 506 are configured by a DSP (Digital Signal Processor). The data transmission unit 507 is configured by the voice data input / output interface 220 or the line interface 416.

[揺らぎ吸収制御部504における開始蓄積量の制御動作]
この実施形態では、RTP受信バッファの開始蓄積量(開始蓄積パケット数に対応)は、LAN3上で発生する揺らぎ量に応じて動的に制御するが、この開始蓄積量の動的制御には、開始蓄積量の増加制御と、開始蓄積量の減少制御とがある。なお、この明細書において、蓄積量等における「量」は、時間の単位の値を示しており、蓄積パケット数等における「パケット数」は、前記「量」としての時間を、1パケット当たりの時間で割った値となるものである。
[Control operation of starting accumulation amount in fluctuation absorption control unit 504]
In this embodiment, the start accumulation amount (corresponding to the number of start accumulation packets) of the RTP reception buffer is dynamically controlled according to the fluctuation amount generated on the LAN 3, and the dynamic control of the start accumulation amount includes There are a start accumulation amount increase control and a start accumulation amount decrease control. In this specification, the “amount” in the accumulated amount or the like indicates a value in a unit of time, and the “number of packets” in the accumulated packet number or the like indicates the time as the “amount” per packet. It is the value divided by time.

〔開始蓄積量の増加手順〕
まず、開始蓄積量の増加制御手順について説明する。
この実施の形態においては、開始蓄積量より大きな揺らぎが、連続して、または周期的に、LAN3上に発生した場合、開始蓄積量を増やして、受信パケットを再蓄積するようにする。以下、その増加手順を説明する。
[Procedure for starting accumulation amount increase]
First, the start accumulation amount increase control procedure will be described.
In this embodiment, when fluctuations larger than the start accumulation amount occur on the LAN 3 continuously or periodically, the start accumulation amount is increased and the received packet is re-accumulated. Hereinafter, the increase procedure will be described.

(1)増加目標蓄積量の算出
パケットを受信する毎に、揺らぎ量を検出し、検出した揺らぎ量の増減から、増加目標蓄積量を算出する。増加目標蓄積量は、開始蓄積量を増加させるときの目標値である。すなわち、増加目標蓄積量をIBとし、その初期値をIBo、揺らぎ量をDとしたとき、以下のようにして、増加目標蓄積量IBを求める。なお、サフィックスiは、パケットのシーケンス番号に相当する。
(1) Calculation of increase target accumulation amount Every time a packet is received, the fluctuation amount is detected, and the increase target accumulation amount is calculated from the increase / decrease in the detected fluctuation amount. The increase target accumulation amount is a target value for increasing the starting accumulation amount. That is, an increase in the target storage amount and IB i, when IBo its initial value, the amount of fluctuation was D i, as follows, obtaining the increase target accumulation amount IB i. The suffix i corresponds to the sequence number of the packet.

IBo=開始蓄積量
IB=IBi−1+fa(D,IBi−1)/CI ・・・(式2)
ただし、
>IBi−1の場合、
fa(D,IBi−1)=D−IBi−1
≦IBi−1の場合、
fa(D,IBi−1)=0
・・・(式3)
ここで、CIは収束速度定数であり、CI≧1である。この収束速度定数CIにより、局所的に発生した揺らぎの影響を抑え、連続的に発生する揺らぎ量を得ることができる。fa()は、()内の変数に関する関数を意味している。
IBo = start accumulation amount IB i = IB i−1 + fa (D i , IB i−1 ) / CI (Expression 2)
However,
If D i > IB i−1 ,
fa (D i , IB i-1 ) = D i -IB i-1
If D i ≦ IB i−1 ,
fa (D i , IB i-1 ) = 0
... (Formula 3)
Here, CI is a convergence rate constant, and CI ≧ 1. With this convergence rate constant CI, it is possible to suppress the influence of locally occurring fluctuations and obtain a continuously occurring fluctuation amount. fa () means a function related to a variable in ().

(2)開始蓄積量の更新
揺らぎ遅延によりRTP受信バッファが空になったときに、開始蓄積量=増加目標蓄積量として、開始蓄積量を増加目標蓄積量に置き換えて増加させる。そして、更新された開始蓄積量になるまで、RTP受信バッファからのパケットの読み出しを停止して、RTP受信バッファに受信パケットを再蓄積する。なお、増加目標蓄積量>最大開始蓄積量のときには、増加目標蓄積量=最大開始蓄積量とされて制限される。
(2) Update of start accumulation amount When the RTP reception buffer becomes empty due to fluctuation delay, the start accumulation amount is increased by replacing the start accumulation amount with the increase target accumulation amount as start accumulation amount = increase target accumulation amount. Then, reading of packets from the RTP reception buffer is stopped until the updated start accumulation amount is reached, and the reception packets are reaccumulated in the RTP reception buffer. When the increase target accumulation amount> the maximum start accumulation amount, the increase target accumulation amount = the maximum start accumulation amount is limited.

以上のようにして、この実施の形態においては、揺らぎが連続的または周期的に発生する期間が十分に長ければ、揺らぎに対する蓄積量の不足分が増加目標蓄積量に累積されてゆき、増加目標蓄積量は適切な揺らぎ量(IB>D)で収束してゆくので、その収束した増加目標蓄積量に開始蓄積量を置き換えることにより、発生する揺らぎ量に対応した揺らぎ吸収を行なうことができる。 As described above, in this embodiment, if the period in which the fluctuation occurs continuously or periodically is sufficiently long, the shortage of the accumulated amount with respect to the fluctuation is accumulated in the increased target accumulated amount, and the increase target Since the accumulated amount converges with an appropriate amount of fluctuation (IB i > D i ), it is possible to perform fluctuation absorption corresponding to the generated fluctuation amount by substituting the starting accumulated amount for the converged increase target accumulated amount. it can.

〔開始蓄積量の減少手順〕
次に、開始蓄積量の減少制御手順について説明する。
上述のようにして開始蓄積量を増加させた後、揺らぎがより小さい値に収束することがあるが、そのように揺らぎ量が小さくなった場合にも、開始蓄積量を、増加したままの値に保持していた場合には、RTP受信バッファでの遅延(通話遅延)が大きくなる問題がある。
[Procedure for reducing the starting accumulation amount]
Next, the start accumulation amount reduction control procedure will be described.
After increasing the starting accumulation amount as described above, the fluctuation may converge to a smaller value, but even if the fluctuation amount becomes smaller in this way, the starting accumulation amount remains the increased value. If this is held, the delay (call delay) in the RTP reception buffer becomes large.

この実施形態では、揺らぎ量が、そのときの開始蓄積量よりも低い値で安定している場合には、通話遅延を減少させるために、適切な開始蓄積量にまで減少させるようにする。この実施の形態では、以下の手順で揺らぎが安定しているかどうかを判定し、適切な開始蓄積量の算出を行なう。   In this embodiment, when the fluctuation amount is stable at a value lower than the starting accumulation amount at that time, it is reduced to an appropriate starting accumulation amount in order to reduce the call delay. In this embodiment, it is determined whether the fluctuation is stable by the following procedure, and an appropriate starting accumulation amount is calculated.

(1)減少目標蓄積量の算出
パケットを受信する毎に、揺らぎ量を検出し、検出した揺らぎ量の増減から、開始蓄積量を減少させるときの目標値を求めるための減少目標蓄積量を算出する。すなわち、減少目標蓄積量をDBとし、その初期値をDBo、揺らぎ量をDとし、増加目標蓄積量をIBとし、収束速度定数をCDとしたとき、以下のようにして、減少目標蓄積量DBを求める。
(1) Calculation of the decrease target accumulation amount Every time a packet is received, the fluctuation amount is detected, and from the increase / decrease of the detected fluctuation amount, the decrease target accumulation amount is calculated to obtain the target value when the start accumulation amount is decreased. To do. That is, the decrease target accumulation amount is DB i, and DBo its initial value, the fluctuation amount of D i, the increase target accumulation amount and IB i, when the convergence rate constant was CD, as follows, reducing the target The accumulated amount DB i is obtained.

DBo=0
>IBi−1の場合、
DB=0
≦IBi−1の場合、
DB=DBi−1+fb(D,DBi−1)/CD
・・・(式4)
ただし、
>DBi−1の場合、
fb(D,DBi−1)=D−DBi−1
≦DBi−1の場合、
fb(D,DBi−1)=0
・・・(式5)
ここで、収束速度定数CDは、CD≧1である。
DBo = 0
If D i > IB i−1 ,
DB i = 0
If D i ≦ IB i−1 ,
DB i = DB i-1 + fb (D i , DB i-1 ) / CD
... (Formula 4)
However,
If D i > DB i−1 ,
fb (D i , DB i-1 ) = D i -DB i-1
If D i ≦ DB i−1 ,
fb (D i , DB i-1 ) = 0
... (Formula 5)
Here, the convergence rate constant CD is CD ≧ 1.

なお、式4において、減少目標蓄積量DBの更新判定に、増加目標蓄積量IBを用いるのは、前述の(式2),(式3)との同期のためである。fb()は、()内の変数に関する関数を意味している。 In Equation 4, the increase target accumulation amount IB i is used for the update determination of the decrease target accumulation amount DB i for the purpose of synchronization with the above-described (Equation 2) and (Equation 3). fb () means a function related to a variable in ().

(2)揺らぎ安定の判定
揺らぎが安定したかどうかは、減少目標蓄積量が変化しない期間の長さ(パケット受信回数)で判定する。この実施形態では、収束期間カウント値CNTを、以下の手順で更新し、揺らぎ安定判定を行なう。
(2) Determination of fluctuation stability Whether the fluctuation is stable is determined by the length of the period during which the decrease target accumulation amount does not change (number of packet receptions). In this embodiment, the convergence period count value CNT is updated by the following procedure, and fluctuation stability determination is performed.

すなわち、
>DBi−1の場合、
CNT=0
≦DBi−1の場合、
CNT=CNTi−1+1
・・・(式6)
とする。
That is,
If D i > DB i−1 ,
CNT = 0
If D i ≦ DB i−1 ,
CNT i = CNT i-1 +1
... (Formula 6)
And

そして、収束期間カウント値CNTが、予め定めた揺らぎ安定と認められるような収束期間カウント値である収束期間定数CNT−thよりも大きくなったかどうかを検査し、収束期間カウント値CNTが、収束期間定数CNT−thよりも大きくなったときには、揺らぎが安定したと判定する。   Then, it is checked whether or not the convergence period count value CNT is larger than a convergence period constant CNT-th that is a convergence period count value that is recognized as stable fluctuation, and the convergence period count value CNT is equal to the convergence period. When it becomes larger than the constant CNT-th, it is determined that the fluctuation is stable.

なお、収束期間定数CNT−thは、固定値でもよいし、また、受信パケットサイズにより変更するようにしてもよい。   The convergence period constant CNT-th may be a fixed value or may be changed according to the received packet size.

(3)バッファ更新判定およびバッファ更新処理
収束期間カウント値CNTが、収束期間定数CNT−thよりも大きくなって、揺らぎが安定したと判定したときには、RTP受信バッファのバッファサイズを変更するかどうかのバッファ更新判定を行なう。バッファ更新判定は、開始蓄積量と減少目標蓄積量との差が、予め定めた最小減少量よりも大きいかどうかにより行なう。最小減少量は、例えば1パケット分の時間とされる。
(3) Buffer update determination and buffer update processing When the convergence period count value CNT is larger than the convergence period constant CNT-th and it is determined that the fluctuation is stable, whether or not to change the buffer size of the RTP reception buffer. Perform buffer update determination. The buffer update determination is made based on whether or not the difference between the start accumulation amount and the reduction target accumulation amount is larger than a predetermined minimum reduction amount. The minimum decrease amount is, for example, a time for one packet.

バッファ更新判定の結果、開始蓄積量と減少目標蓄積量との差が、予め定めた最小減少量よりも小さい場合には、RTP受信バッファサイズは、減少処理する必要がないとして、収束期間カウント値CNTや減少目標蓄積量はゼロリセットされる。   If the difference between the start accumulation amount and the reduction target accumulation amount is smaller than the predetermined minimum reduction amount as a result of the buffer update determination, the RTP reception buffer size does not need to be reduced, and the convergence period count value CNT and the reduction target accumulation amount are reset to zero.

バッファ更新判定の結果、開始蓄積量と減少目標蓄積量との差が、予め定めた最小減少量よりも大きい場合には、バッファ更新処理を実行して、開始蓄積量=減少目標蓄積量とし、開始蓄積量を減少目標蓄積量まで減少させる。ただし、1度のバッファ更新手順で減少させる開始蓄積量は、予めパラメータとして設定された最大減少量により制限する。そして、収束期間カウント値CNTや減少目標蓄積量はゼロリセットすると共に、減少した分のバッファ内パケットを廃棄するようにする。   As a result of the buffer update determination, when the difference between the start accumulation amount and the decrease target accumulation amount is larger than the predetermined minimum decrease amount, the buffer update process is executed, and the start accumulation amount = the decrease target accumulation amount is set. Decrease the starting accumulation amount to the target reduction amount. However, the starting accumulation amount to be reduced in one buffer update procedure is limited by the maximum reduction amount set in advance as a parameter. Then, the convergence period count value CNT and the decrease target accumulation amount are reset to zero, and the decreased amount of packets in the buffer are discarded.

図7のフローチャートを参照して、以上のバッファ更新判定およびバッファ更新処理のルーチンを、さらに説明する。この図7の処理は、パケットを受信する毎に、電話端末2では、CPU210により、ゲートウエイ4では、CPU410により実行されるものである。   With reference to the flowchart of FIG. 7, the routine for the above buffer update determination and buffer update processing will be further described. The processing in FIG. 7 is executed by the CPU 210 in the telephone terminal 2 and by the CPU 410 in the gateway 4 every time a packet is received.

まず、収束期間カウント値CNTが、収束期間定数CNT−thよりも大きくなって、揺らぎが安定したかどうかを判定する(ステップS11)。揺らぎが安定していないと判定したときには、このルーチンを抜けて他の処理ステップに進む。   First, it is determined whether the convergence period count value CNT is larger than the convergence period constant CNT-th and the fluctuation is stable (step S11). When it is determined that the fluctuation is not stable, the routine exits and proceeds to another processing step.

また、揺らぎが安定したと判定したときには、その時点における開始蓄積量から減少目標蓄積量を減算して、その減算結果ΔSを求める(ステップS12)。そして、その減算結果ΔSが、予め設定された最小減少量よりも大きいかどうか判定する(ステップS13)。   When it is determined that the fluctuation is stable, the decrease target accumulation amount is subtracted from the starting accumulation amount at that time, and the subtraction result ΔS is obtained (step S12). Then, it is determined whether or not the subtraction result ΔS is larger than a preset minimum reduction amount (step S13).

ステップS3で、減算結果ΔSが、予め設定された最小減少量よりも小さいと判定された場合には、収束期間カウント値CNTを「0」にし(ステップS14)、また、減少目標蓄積量を「0」にする(ステップS15)。   If it is determined in step S3 that the subtraction result ΔS is smaller than the preset minimum decrease amount, the convergence period count value CNT is set to “0” (step S14), and the decrease target accumulation amount is set to “ 0 "(step S15).

ステップS13で、減算結果ΔSが、予め設定された最小減少量よりも大きいと判定されたときには、当該減算結果ΔSは、予め設定された最大減少量以下であるか否か判別する(ステップS16)。   When it is determined in step S13 that the subtraction result ΔS is larger than a preset minimum decrease amount, it is determined whether or not the subtraction result ΔS is equal to or less than a preset maximum decrease amount (step S16). .

このステップS16において、減算結果ΔSは、予め設定された最大減少量以下であると判別したときには、開始蓄積量=減少目標蓄積量として、開始蓄積量を減少させる(ステップS17)。また、ステップS16において、減算結果ΔSは、予め設定された最大減少量よりも大きいと判別したときには、開始蓄積量=そのときの開始蓄積量−最大減少量として、開始蓄積量を、最大減少量分だけ減少させる(ステップS18)。   In this step S16, when it is determined that the subtraction result ΔS is equal to or less than the preset maximum decrease amount, the start accumulation amount is decreased as start accumulation amount = decrease target accumulation amount (step S17). In Step S16, when it is determined that the subtraction result ΔS is larger than the preset maximum decrease amount, the start accumulation amount is set to the maximum decrease amount as Start accumulation amount = Start accumulation amount at that time−Maximum decrease amount. Decrease by the amount (step S18).

ステップS17およびステップS18の後は、ステップS19に進んで、増加目標蓄積量を、更新された開始蓄積量に置き換える。つまり、この時点から、増加目標蓄積量の初期値は、更新された開始蓄積量になる。   After step S17 and step S18, the process proceeds to step S19 to replace the increase target accumulation amount with the updated start accumulation amount. That is, from this time, the initial value of the increase target accumulation amount becomes the updated start accumulation amount.

次に、収束期間カウント値CNTを「0」にし(ステップS20)、また、減少目標蓄積量を「0」にする(ステップS21)。さらに、開始蓄積量を減少させたことにより溢れる分のパケットデータを、RTP受信バッファから廃棄する(ステップ22)。ここで、実際に廃棄する音声データは、パケット単位ではなく、音声波形周期単位とする。この場合の開始蓄積量の減少により廃棄するパケット数は、最大蓄積パケット数を越えて溢れたときに廃棄する溢れバッファ廃棄数のような固定値ではなく、動的なものとなる。以上で、バッファ更新処理は終了となる。   Next, the convergence period count value CNT is set to “0” (step S20), and the reduction target accumulation amount is set to “0” (step S21). Further, the excess packet data due to the reduction of the starting accumulation amount is discarded from the RTP reception buffer (step 22). Here, the audio data to be actually discarded is not a packet unit but a voice waveform cycle unit. In this case, the number of packets discarded due to a decrease in the starting accumulation amount is not a fixed value such as the number of overflow buffer discards when overflowing beyond the maximum accumulation packet number, but is dynamic. This is the end of the buffer update process.

[揺らぎ吸収バッファ制御の処理ルーチン]
次に、揺らぎ吸収バッファのバッファサイズの制御および読み出し処理動作の全体を、図8および図9のフローチャートを参照しながら説明する。
[Processing routine for fluctuation absorption buffer control]
Next, the overall control of the buffer size of the fluctuation absorbing buffer and the read processing operation will be described with reference to the flowcharts of FIGS.

RTPパケットを受信すると、電話端末2では、CPU210に、ゲートウエイ4ではCPU410に割り込みが発生して、図8および図9のフローチャートの処理ルーチンを開始し、まず、RTPヘッダを解析する(ステップS31)。次に、既にパケットの受信を開始しているかどうか判別する(ステップS32)。   When the RTP packet is received, an interruption occurs in the CPU 210 in the telephone terminal 2 and in the CPU 410 in the gateway 4, and the processing routines of the flowcharts of FIGS. 8 and 9 are started. First, the RTP header is analyzed (step S31). . Next, it is determined whether or not reception of a packet has already been started (step S32).

ステップS22で、未だ、パケット受信開始状態になっておらず、受信したパケットが受信開始のパケットであると判別したときには、パケットサイズ、つまり、音声データサイズを、予め決定されているパラメータに基づいて取得する(ステップS33)。   When it is determined in step S22 that the packet reception start state has not yet been reached and the received packet is a reception start packet, the packet size, that is, the audio data size is determined based on a predetermined parameter. Obtain (step S33).

すなわち、この例においては、送信側は、音声信号を所定時間長分毎にパケット化して、LAN3に送出するが、この場合のパケット化の際の所定時間長(音声データのサイズ)は、例えば10msec、20msec、30msecなどのいくつかのサイズの中から、選択することができる。そして、どのサイズでパケット化されているかの情報(パラメータ)は、音声データの送受信の前に制御信号をやり取りすることにより決定されており、その情報(パラメータ)により、音声データサイズを取得する。   That is, in this example, the transmission side packetizes the audio signal every predetermined time length and sends it to the LAN 3. In this case, the predetermined time length (size of the audio data) at the time of packetization is, for example, It can be selected from several sizes such as 10 msec, 20 msec, and 30 msec. The information (parameter) indicating what size is packetized is determined by exchanging control signals before transmission / reception of audio data, and the audio data size is acquired from the information (parameter).

音声データサイズを取得したら、初期再生パケット数、開始蓄積パケット数の初期値、バッファ廃棄数、最大開始蓄積パケット数等のバッファサイズ制御パラメータを算出する(ステップS34)。この例では、開始蓄積量の初期値、バッファ廃棄量、最大開始蓄積量は、時間単位で定められており、1パケット当たりの時間長である音声データサイズから、前記パラメータをパケット数単位に変換する。   When the audio data size is acquired, buffer size control parameters such as the number of initial playback packets, the initial value of the start accumulation packet number, the number of buffer discards, and the maximum number of start accumulation packets are calculated (step S34). In this example, the initial value of the start accumulation amount, the buffer discard amount, and the maximum start accumulation amount are determined in units of time, and the parameter is converted into units of packets from the audio data size that is the time length per packet. To do.

例えば、開始蓄積量の初期値が30msec、バッファ廃棄量が20msec、最大開始蓄積量が1000msecに設定されており、音声データサイズが、10msec/パケットであったときには、開始蓄積パケット数の初期値は「3」、バッファ廃棄数は「2」、最大開始蓄積パケット数は「100」となる。   For example, when the initial value of the start accumulation amount is set to 30 msec, the buffer discard amount is set to 20 msec, the maximum start accumulation amount is set to 1000 msec, and the audio data size is 10 msec / packet, the initial value of the start accumulation packet number is “3”, the number of buffer discards is “2”, and the maximum start accumulated packet number is “100”.

以上のパラメータの算出が終了したら、RTP受信バッファを受信開始状態にし、ステップS33で取得した音声データサイズに合わせて、図6のバッファ出力データ処理制御部505の制御側からの受信割り込み周期を設定する(ステップS35)。そして、前記受信割り込み周期は、バッファ出力データ処理制御部505が制御側から受信する割り込みに関するものであり、この割り込みは、LAN3側の音声データの受信で発生するものではない。   When the calculation of the above parameters is completed, the RTP reception buffer is set to the reception start state, and the reception interrupt cycle from the control side of the buffer output data processing control unit 505 in FIG. 6 is set in accordance with the audio data size acquired in step S33. (Step S35). The reception interrupt cycle relates to an interrupt received by the buffer output data processing control unit 505 from the control side, and this interrupt does not occur upon reception of voice data on the LAN 3 side.

電話端末2あるいはゲートウエイ4は、この受信割り込み周期で、RTP受信バッファからパケットの取り出しを行って、後述する音声送出処理を行なう。   The telephone terminal 2 or the gateway 4 takes out the packet from the RTP reception buffer at this reception interrupt cycle, and performs voice transmission processing described later.

次に、受信開始状態にしたら、到着したパケットについての揺らぎ量の算出を行なう。また、ステップS32で既に受信開始状態であると判別したときには、即座に、到着したパケットについての揺らぎ量の算出を行なう(ステップS36)。このステップS36における揺らぎ量の算出は、前述した(式1)によって行われる。   Next, when the reception is started, the fluctuation amount for the arrived packet is calculated. If it is determined in step S32 that the reception has already started, the amount of fluctuation for the arrived packet is immediately calculated (step S36). The calculation of the fluctuation amount in step S36 is performed by the above-described (Equation 1).

次に、算出した揺らぎ量に基づき、前述の(式2)、(式3)に基づき増加目標蓄積量IBの算出を行なうと共に、前述の(式4)、(式5)に基づき減少目標蓄積量DBの算出を行なう(ステップS37)。 Next, based on the calculated fluctuation amount, the increase target accumulation amount IB i is calculated based on the above-described (Expression 2) and (Expression 3), and the decrease target is determined based on the above-mentioned (Expression 4) and (Expression 5) The accumulation amount DB i is calculated (step S37).

次に、RTP受信バッファ内の蓄積パケット数が、初期再生パケット数より小さいかどうか判定する(ステップS38)。   Next, it is determined whether or not the number of stored packets in the RTP reception buffer is smaller than the number of initial reproduction packets (step S38).

RTP受信バッファ内の蓄積パケット数が、初期再生パケット数より小さいときには、再生するパケットがバッファ内にないため、RTP受信バッファからのパケットの読み出し時に用いるバッファ参照フラグを「FALSE」にして、バッファ参照を禁止させ、無音生成を指示する(ステップS39)。   When the number of packets stored in the RTP reception buffer is smaller than the initial number of packets to be reproduced, there are no packets to be reproduced, so the buffer reference flag used when reading the packet from the RTP reception buffer is set to “FALSE” and the buffer is referenced. Is prohibited, and silence generation is instructed (step S39).

次に、開始蓄積量を、そのときの増加目標蓄積量とする(ステップS40)。ただし、増加目標蓄積量が最大開始蓄積量よりも大きいとき(増加目標蓄積量>最大開始蓄積量)には、開始蓄積量=最大開始蓄積量に制限される。前述したように、増加目標蓄積量の初期値は、開始蓄積量の初期値である。   Next, the starting accumulation amount is set as an increase target accumulation amount at that time (step S40). However, when the increase target accumulation amount is larger than the maximum start accumulation amount (increase target accumulation amount> maximum start accumulation amount), the start accumulation amount is limited to the maximum start accumulation amount. As described above, the initial value of the increase target accumulation amount is the initial value of the start accumulation amount.

このステップS40においては、パケットの受信を開始したときには、前回のパケット受信時における揺らぎ量に応じたRTP受信バッファサイズとなるように、開始蓄積量が設定される。また、パケットの受信を開始している状態においては、RTP受信バッファ内の蓄積パケット数が、初期再生パケット数より小さいということは、揺らぎによる遅延のために、RTP受信バッファ内のパケットが空になったことを意味するため、開始蓄積量がそのときの増加目標蓄積量に増加変更される。   In this step S40, when the reception of the packet is started, the start accumulation amount is set so that the RTP reception buffer size corresponding to the fluctuation amount at the previous packet reception is obtained. In addition, in a state where reception of packets is started, the number of packets stored in the RTP reception buffer is smaller than the number of initial reproduction packets. This means that the packets in the RTP reception buffer are emptied due to delay due to fluctuations. This means that the starting accumulation amount is increased and changed to the increase target accumulation amount at that time.

次に、RTP受信バッファサイズを、
RTP受信バッファサイズ=開始蓄積パケット数
として算出する(ステップS41)。また、最大蓄積パケット数を、
最大蓄積パケット数=RTP受信バッファサイズ+溢れ時のバッファ廃棄数
として算出する(ステップS42)。次に、次回受信したときに、受信パケットをRTP受信バッファのいずれのメモリセルに蓄積するかを検索する際の開始インデックス(インデックスは、RTP受信バッファのメモリセルを指し示す指標である)である検索開始インデックスを、RTP受信バッファの先頭にセットする(ステップS43)。その後、RTP受信バッファへの受信パケット蓄積処理に進む(ステップS45)。
Next, set the RTP receive buffer size to
RTP reception buffer size = start accumulation packet number is calculated (step S41). Also, the maximum number of accumulated packets
The maximum accumulated packet number is calculated as RTP reception buffer size + buffer discard number at overflow (step S42). Next, a search that is a start index (index is an index indicating a memory cell of the RTP reception buffer) for searching in which memory cell of the RTP reception buffer the received packet is stored when received next time A start index is set at the head of the RTP reception buffer (step S43). Thereafter, the process proceeds to a process of storing received packets in the RTP reception buffer (step S45).

また、ステップ38で、蓄積パケット数が初期再生パケット数以上であると判別したときには、検索開始インデックスを、
検索開始インデックス=参照インデックス+初期再生パケット数
とする(ステップ44)。その後、ステップS45の受信パケット蓄積処理に進む。
If it is determined in step 38 that the number of accumulated packets is equal to or greater than the number of initially reproduced packets, the search start index is
Search start index = reference index + initial reproduction packet number (step 44). Thereafter, the process proceeds to a received packet accumulation process in step S45.

ステップ45の受信パケット蓄積処理においては、前述したように、検索開始インデックスで指し示されるメモリセルから順に、RTP受信バッファの各メモリセルに蓄積されているパケットのシーケンス番号を検索して、今回受信したパケットを格納すべきセルを検出し、検出されたセルに、受信パケットを格納する。   In the received packet storage process of step 45, as described above, the sequence number of the packet stored in each memory cell of the RTP reception buffer is searched in order from the memory cell indicated by the search start index, and received this time. The cell in which the received packet is to be stored is detected, and the received packet is stored in the detected cell.

以上のようにして、RTP受信バッファ内に受信パケットを蓄積したら、蓄積パケット数を1だけインクリメントする(図9のステップS51)。   When the received packet is accumulated in the RTP reception buffer as described above, the accumulated packet number is incremented by 1 (step S51 in FIG. 9).

次に、揺らぎが、収束したか否か判別する(ステップS52)。そして、揺らぎが収束したと判別したときには、前述した開始蓄積量の減少手順を実行する(ステップS53)。ステップS52の処理は、図7のステップS11の処理に対応し、また、ステップS53の処理は、図7のステップS12〜ステップS22に処理に対応する。   Next, it is determined whether or not the fluctuation has converged (step S52). When it is determined that the fluctuation has converged, the above-described start accumulation amount reduction procedure is executed (step S53). The processing in step S52 corresponds to the processing in step S11 in FIG. 7, and the processing in step S53 corresponds to the processing in steps S12 to S22 in FIG.

ステップS53での開始蓄積量の減少手順が終了した後と、ステップS52で、減少目標蓄積量が収束していないと判別したときには、RTP受信バッファの蓄積パケット数が、最大蓄積パケット数以上であるか否か判別する(ステップ54)。そして、蓄積パケット数が最大蓄積パケット数以上であると判別したときには、RTP受信バッファの先頭から、ステップS24で定められた溢れ時のバッファ廃棄数分のパケットを、RTP受信バッファから廃棄する(ステップS55)。なお、実際の音声データの廃棄は、後述するように音声波形周期単位である。   After the start accumulation amount reduction procedure in step S53 is completed, and when it is determined in step S52 that the reduction target accumulation amount has not converged, the number of accumulated packets in the RTP reception buffer is equal to or greater than the maximum accumulated packet number. Whether or not (step 54). When it is determined that the number of stored packets is equal to or greater than the maximum number of stored packets, packets corresponding to the number of buffer discards at the time of overflow determined in step S24 are discarded from the RTP reception buffer from the top of the RTP reception buffer (step S24). S55). Note that the actual discarding of audio data is in units of speech waveform periods as will be described later.

ステップS54で、蓄積パケット数が最大蓄積パケット数よりも少ないと判別されたとき、また、ステップ55でのパケットの廃棄処理が終了した後には、蓄積パケット数が、RTP受信バッファサイズ以上であるか否か判別する(ステップS56)。   If it is determined in step S54 that the accumulated packet number is smaller than the maximum accumulated packet number, or after the packet discard process in step 55 is completed, is the accumulated packet number greater than or equal to the RTP reception buffer size? It is determined whether or not (step S56).

ステップS56で、蓄積パケット数が、RTP受信バッファサイズ以上であると判別したときには、参照インデックスを、RTP受信バッファの先頭のセル番号とし(ステップS57)、検索開始インデックスは、
検索開始インデックス=参照インデックス+初期再生パケット数
とした後(ステップS58)、バッファ参照フラグを「TRUE」として、音声データ送出処理手順において、バッファ参照を許可し、音声データ再生開始を指示する(ステップS59)。
When it is determined in step S56 that the number of accumulated packets is equal to or larger than the RTP reception buffer size, the reference index is set to the first cell number of the RTP reception buffer (step S57), and the search start index is
After setting the search start index = reference index + the number of initial playback packets (step S58), the buffer reference flag is set to “TRUE”, buffer reference is permitted in the audio data transmission processing procedure, and audio data playback start is instructed (step S58). S59).

その後、このパケット受信時の処理ルーチンを終了する。また、ステップS56で、蓄積パケット数が、RTP受信バッファサイズ以上ではないと判別したときにも、このパケット受信時の処理ルーチンを終了する。   Thereafter, the processing routine at the time of receiving the packet is terminated. Further, when it is determined in step S56 that the number of accumulated packets is not equal to or larger than the RTP reception buffer size, the processing routine at the time of packet reception is ended.

[RTP受信バッファ内のパケット数の変化の具体例]
次に、図10〜図12を参照して、パケット到着時のRTP受信バッファ内のパケット数の変化の具体例について説明する。図10〜図12の各図において、BFはRTP受信バッファを模式的に示し、網掛けを付して示したメモリセルは、パケットが蓄積されていることを示しており、当該蓄積パケットの中に示した数字はシーケンス番号を示している。また、白抜き部分のセルは、空きを示している。
[Specific example of change in number of packets in RTP receive buffer]
Next, a specific example of the change in the number of packets in the RTP reception buffer when a packet arrives will be described with reference to FIGS. In each of FIGS. 10 to 12, BF schematically shows an RTP reception buffer, and the memory cells shown with shading indicate that packets are stored. The numbers shown in are the sequence numbers. In addition, white cells indicate empty spaces.

以下に説明する例では、初期再生パケット数=1、開始蓄積量の初期パケット数=3、最大蓄積パケット数の初期値=5、最大開始蓄積パケット数=10とした場合である。開始蓄積パケット数と、最大蓄積パケット数は動的に変化する。   In the example described below, the number of initial reproduction packets = 1, the initial number of packets of the starting accumulation amount = 3, the initial value of the maximum accumulation packet number = 5, and the maximum number of start accumulation packets = 10. The starting accumulated packet number and the maximum accumulated packet number dynamically change.

なお、図10〜図12の各図において、A〜Dは、A=開始蓄積量の初期パケット数、B=開始蓄積パケット数(動的変化)、C=最大蓄積パケット数(動的変化)、D=最大開始蓄積パケット数であり、各図において、上方に示したこれらA〜Dのうち、BおよびCの値は、その初期値を示している。また、図10〜図12において、網掛けを付して示したものは、蓄積パケットを示しており、当該蓄積パケットの中に示した数字はシーケンス番号を示している。   10 to 12, A to D are A = the number of initial packets of the starting accumulation amount, B = the number of starting accumulation packets (dynamic change), and C = the maximum number of accumulation packets (dynamic change). , D = maximum starting accumulated packet number, and in each figure, among these A to D shown above, the values of B and C indicate their initial values. In FIGS. 10 to 12, shaded portions indicate stored packets, and the numbers shown in the stored packets indicate sequence numbers.

図10は、パケットの受信開始からの処理と、揺らぎ発生による開始蓄積量および最大蓄積パケット数の変更および揺らぎ吸収処理を示すものである。この図10では、発生した揺らぎは、パケットを廃棄しなければならないほど大きいものではなかった場合である。   FIG. 10 shows the process from the start of packet reception, the change of the start accumulation amount and the maximum number of accumulated packets due to fluctuations, and the fluctuation absorption process. In FIG. 10, the fluctuation that has occurred is not so large that the packet must be discarded.

最初のパケットを受信すると、前述したように、音声データサイズ(パケットサイズ)が認識され、バッファサイズ制御パラメータの算出がなされて、受信開始状態とされ、以後、音声データサイズ(パケットサイズ)に基づいて設定された受信割り込み周期で、後述するような音声データ送出処理がなされる。そして、到着したパケットがRTP受信バッファBFに蓄積される。   When the first packet is received, as described above, the voice data size (packet size) is recognized, the buffer size control parameter is calculated, and reception is started. Thereafter, based on the voice data size (packet size). The audio data transmission process described later is performed at the reception interrupt period set in the above. Then, the arrived packet is accumulated in the RTP reception buffer BF.

そして、パケット受信開始から、RTP受信バッファBFに3個のパケットが蓄積されるまでは、RTP受信バッファBFからパケットは読み出されず、無音再生が行われる。   From the start of packet reception until the three packets are accumulated in the RTP reception buffer BF, no packets are read from the RTP reception buffer BF, and silent reproduction is performed.

4個目のパケットが到着すると、それが蓄積されると共に、前述した受信割り込み周期のタイミングで、RTP受信バッファBFの先頭のパケットが読み出されて、音声データの送出がなされる。以後は、受信割り込み周期のタイミングで、RTP受信バッファBFに蓄積されているパケットは、先頭から順次読み出されて音声データ送出される。したがって、揺らぎが発生しなければ、図10の例においては、RTP受信バッファBFには、常に3個のパケットが蓄積される状態になる。   When the fourth packet arrives, it is accumulated, and at the timing of the reception interrupt cycle described above, the head packet of the RTP reception buffer BF is read out and voice data is transmitted. Thereafter, packets stored in the RTP reception buffer BF are sequentially read from the head and transmitted as audio data at the timing of the reception interrupt cycle. Therefore, if fluctuation does not occur, in the example of FIG. 10, three packets are always stored in the RTP reception buffer BF.

ここで、遅延揺らぎが発生すると、受信パケットが到着しないにも関わらず、受信割り込み周期のタイミングで、RTP受信バッファに蓄積されているパケットは、先頭から順次、読み出されるので、新パケットが到着しない限り、RTP受信バッファBF内の蓄積パケット数は、徐々に減ってゆく。   Here, when delay fluctuation occurs, the packets stored in the RTP reception buffer are sequentially read from the beginning at the timing of the reception interrupt period even though the reception packet does not arrive, so that no new packet arrives. As long as the number of packets stored in the RTP reception buffer BF is gradually reduced.

そして、RTP受信バッファBF内の蓄積パケット数がゼロになると、揺らぎ吸収制御部504は、前述したように、開始蓄積パケット数Bを、増加目標蓄積パケット数に増加変更する。これに伴い、最大蓄積パケット数Cも増加変更される。図10の例では、開始蓄積パケット数は「5」に、最大蓄積パケット数は「7」にそれぞれ変更される。   When the number of accumulated packets in the RTP reception buffer BF becomes zero, the fluctuation absorption control unit 504 changes the start accumulated packet number B to the increased target accumulated packet number as described above. Accordingly, the maximum accumulated packet number C is also changed. In the example of FIG. 10, the starting accumulated packet number is changed to “5”, and the maximum accumulated packet number is changed to “7”.

その後、揺らぎの発生により遅れた3周期分と合わせて4個のパケットが到着すると、それがRTP受信バッファBFに蓄積される。この時点では、変更された開始蓄積パケット数「5」には満たないので、RTP受信バッファBFからパケットは読み出されず、無音再生が行われる。そして、次にパケットが到着してRTP受信バッファBFの蓄積パケット数が5になるまで、RTP受信バッファBFからパケットは読み出されず、バッファ出力データ処理制御部505で、音声信号がその直前の音声データから音声波形周期単位で合成され、それが出力音声信号とされる。   Thereafter, when four packets arrive together with the three periods delayed by the occurrence of fluctuation, they are accumulated in the RTP reception buffer BF. At this time, since the number of changed start accumulation packets “5” is not reached, the packets are not read from the RTP reception buffer BF, and silent reproduction is performed. Then, until the next packet arrives and the number of accumulated packets in the RTP reception buffer BF reaches 5, the packet is not read from the RTP reception buffer BF, and the buffer output data processing control unit 505 outputs the audio signal immediately before the audio data. Are synthesized in units of speech waveform periods, and are used as output speech signals.

そして、RTP受信バッファBFの蓄積パケット数が5になると、受信割り込み周期のタイミングで、RTP受信バッファBFに蓄積されているパケットは、先頭から順次読み出されて音声データの送出がなされる。こうして、発生した揺らぎの量に合わせて、開始蓄積パケット数が変更されるので、パケットが廃棄されることによる音切れが防止される。   When the number of accumulated packets in the RTP reception buffer BF becomes 5, the packets accumulated in the RTP reception buffer BF are sequentially read from the head and the audio data is transmitted at the timing of the reception interrupt cycle. In this way, since the number of start accumulation packets is changed in accordance with the amount of fluctuation that has occurred, sound interruption due to packet discard is prevented.

次に、大きな揺らぎが発生した場合におけるRTP受信バッファのバッファサイズの変更制御(増加制御)について、図11を参照して説明する。図11の例は、開始蓄積パケット数が3、最大蓄積パケット数が5である場合において、大きな揺らぎが発生した場合である。   Next, buffer size change control (increase control) of the RTP reception buffer when a large fluctuation occurs will be described with reference to FIG. The example of FIG. 11 is a case where a large fluctuation occurs when the number of start accumulation packets is 3 and the maximum number of accumulation packets is 5.

図11において、揺らぎが発生するまでは、受信割り込み周期のタイミングで、順次、RTP受信バッファBFの蓄積パケットの先頭のパケットが読み出されると共に、受信パケットが蓄積される。   In FIG. 11, until the fluctuation occurs, at the timing of the reception interrupt cycle, the leading packet of the accumulation packet of the RTP reception buffer BF is sequentially read and the reception packet is accumulated.

この状態で揺らぎが発生すると、前述と同様にして、受信パケットが到着しないにも関わらず、受信割り込み周期のタイミングで、RTP受信バッファに蓄積されているパケットは、先頭から順次、読み出されるので、RTP受信バッファBF内の蓄積パケット数は、徐々に減ってゆく。   When fluctuations occur in this state, the packets accumulated in the RTP reception buffer are sequentially read from the beginning at the timing of the reception interrupt cycle, even though the reception packet does not arrive, as described above. The number of accumulated packets in the RTP reception buffer BF gradually decreases.

そして、RTP受信バッファBF内の蓄積パケット数がゼロになると、前述と同様に、揺らぎ吸収制御部504により、開始蓄積パケット数Bは、増加目標蓄積パケット数に増加変更される。これに伴い、最大蓄積パケット数Cも増加変更される。図11の例では、開始蓄積パケット数は「4」に、最大蓄積パケット数は「6」にそれぞれ変更される。   Then, when the number of accumulated packets in the RTP reception buffer BF becomes zero, the fluctuation accumulation control unit 504 increases and changes the starting accumulated packet number B to the increase target accumulated packet number as described above. Accordingly, the maximum accumulated packet number C is also changed. In the example of FIG. 11, the start accumulation packet number is changed to “4”, and the maximum accumulation packet number is changed to “6”.

この図11の例では、このように開始蓄積パケット数の増加変更を行った後においても、揺らぎ量が大きいため、さらにパケットの到着が遅れる。このため、RTP受信バッファBFからパケットは読み出されず、バッファ出力データ処理制御部505で、音声信号がその直前の音声データから音声波形周期単位で合成され、それが出力音声信号とされる。このとき、後述するように、出力音声データは、音声信号がその直前の音声データから合成されたものとされる。   In the example of FIG. 11, the arrival of packets is further delayed because the amount of fluctuation is large even after the increase in the number of starting accumulated packets is changed. For this reason, the packet is not read from the RTP reception buffer BF, and the buffer output data processing control unit 505 synthesizes the audio signal from the immediately preceding audio data in units of the audio waveform period, and sets it as the output audio signal. At this time, as will be described later, the output audio data is obtained by synthesizing the audio signal from the immediately preceding audio data.

そして、到着が遅れていた複数個のパケットと共に、図11に示すように、最大蓄積パケット数を越える新たなパケットがまとめて到着する。すると、揺らぎ吸収制御部504は、予め定められている溢れバッファ廃棄数のパケット、この例では2パケットと、さらに1個のパケットを、RTP受信バッファBFの先頭から、順次、バッファ出力データ処理制御部505に送出して、バッファ出力データ処理制御部505に廃棄処理させるように指示する。   Then, new packets exceeding the maximum number of accumulated packets arrive together, as shown in FIG. 11, together with a plurality of packets whose arrival has been delayed. Then, the fluctuation absorption control unit 504 sequentially controls the buffer output data processing for packets of a predetermined number of overflow buffer discards, two packets in this example, and one more packet from the top of the RTP reception buffer BF. And instruct the buffer output data processing control unit 505 to discard the data.

なお、このときに、図示のように、RTP受信バッファBFからはパケット単位で読み出されるが、バッファ出力データ処理制御部505においては、廃棄処理のために送られてきたパケットデータの全てを廃棄するのではなく、後述するように、音声波形周期単位で廃棄して、音声波形の連続性を保持するようにする。   At this time, as shown in the figure, the packet is read from the RTP reception buffer BF in units of packets, but the buffer output data processing control unit 505 discards all the packet data sent for the discarding process. Instead, as described later, it is discarded in units of speech waveform cycles so as to maintain the continuity of the speech waveform.

RTP受信バッファBFからの前記パケットの廃棄処理のための送出の結果、RTP受信バッファBFの蓄積パケット数は5になるので、最大蓄積パケット数「6」以内に収まる。そして、受信割り込み周期のタイミングで、RTP受信バッファBFに蓄積されているパケットは、先頭から読み出されて再生される。   As a result of transmission for discarding the packet from the RTP reception buffer BF, the number of accumulated packets in the RTP reception buffer BF becomes 5, so that it falls within the maximum number of accumulated packets “6”. Then, at the timing of the reception interrupt cycle, the packet stored in the RTP reception buffer BF is read from the head and reproduced.

図11の例では、以上の処理により、RTP受信バッファBF内の蓄積パケット数は、開始蓄積パケット数になるので、その後は、揺らぎがなければ、先頭からのパケットの読み出しと、到着パケットの蓄積が行われる。   In the example of FIG. 11, the accumulated packet count in the RTP reception buffer BF becomes the start accumulated packet count by the above processing. After that, if there is no fluctuation, reading of the packet from the head and accumulation of the arrival packet are performed. Is done.

次に、揺らぎが停止してゆくときのRTP受信バッファのバッファサイズの変更制御(減少制御)について、図12を参照して説明する。図12の例は、開始蓄積パケット数Bが5に増加していて、このため、最大蓄積パケット数Cが7である場合において、揺らぎが収束して停止してゆく場合である。   Next, buffer size change control (decrease control) of the RTP reception buffer when fluctuations stop will be described with reference to FIG. The example of FIG. 12 is a case where the start accumulation packet number B has increased to 5, and therefore, when the maximum accumulation packet number C is 7, the fluctuation converges and stops.

すなわち、図12に示すように、揺らぎが発生している間は、開始蓄積パケット数Bは「5」とされて、揺らぎ吸収処理が行われるが、揺らぎが停止して収束してゆくと、揺らぎ吸収制御部504は、前述した収束期間カウント値CNTが、収束期間定数CNT−thよりも大きくなって、揺らぎが安定したと判定する。このときには、前述したように、揺らぎ吸収制御部504は、開始蓄積パケット数Bを減少目的蓄積量に減少変更し、減少させたパケット数分をRTP受信バッファBFの先頭から廃棄のためにバッファ出力データ処理制御部505に送出して、バッファ出力データ処理制御部505に廃棄処理させるように指示する。   That is, as shown in FIG. 12, while the fluctuation is occurring, the start accumulation packet number B is set to “5” and the fluctuation absorbing process is performed, but when the fluctuation stops and converges, The fluctuation absorption control unit 504 determines that the fluctuation is stable because the convergence period count value CNT described above becomes larger than the convergence period constant CNT-th. At this time, as described above, the fluctuation absorption control unit 504 changes the start accumulation packet number B to the reduction target accumulation amount, and outputs the reduced packet number from the head of the RTP reception buffer BF for discarding the buffer. The data is sent to the data processing control unit 505 and instructs the buffer output data processing control unit 505 to discard the data.

さらに、揺らぎが収束してゆくと、揺らぎ吸収制御部504は、収束期間カウント値CNTが、再び、収束期間定数CNT−thよりも大きくなって、揺らぎが安定したと判定する。そして、揺らぎ吸収制御部504は、開始蓄積パケット数Bを減少目的蓄積量に減少変更し、減少させたパケット数分をRTP受信バッファBFの先頭から廃棄のためにバッファ出力データ処理制御部505に送出して、バッファ出力データ処理制御部505に廃棄処理させるように指示する。   Further, when the fluctuation converges, the fluctuation absorption control unit 504 determines that the convergence period count value CNT becomes larger than the convergence period constant CNT-th again and the fluctuation is stable. Then, the fluctuation absorption control unit 504 changes the start accumulation packet number B to the reduction target accumulation amount and changes the reduced packet number from the head of the RTP reception buffer BF to the buffer output data processing control unit 505 for discarding. Send out and instruct the buffer output data processing control unit 505 to discard the data.

なお、このときにも、図11の場合と同様に、RTP受信バッファBFからは図示のようにパケット単位で読み出されるが、バッファ出力データ処理制御部505においては、廃棄処理のために送られてきたパケットデータの全てを廃棄するのではなく、後述するように、音声波形周期単位で廃棄して、音声波形の連続性を保持するようにする。   At this time, as in the case of FIG. 11, the packet is read from the RTP reception buffer BF in units of packets as shown in the figure, but the buffer output data processing control unit 505 sends it for discard processing. Instead of discarding all of the packet data, as will be described later, it is discarded in units of speech waveform periods to maintain the continuity of the speech waveform.

以上の処理を繰り返すことにより、揺らぎがなくなる方向に収束するにつれて、開始蓄積パケット数Bは、初期値にまで減少させられる。   By repeating the above processing, the start accumulation packet number B is reduced to the initial value as it converges in the direction in which the fluctuation is eliminated.

以上のようにして、この実施形態によれば、揺らぎの発生に合わせて、RTP受信バッファの開始蓄積パケット数を増加し、揺らぎが停止して減少収束するにつれて、開始蓄積パケット数を減少させるようにするので、RTP受信バッファサイズは揺らぎ量に合わせて動的に制御され、音切れが軽減されると共に、音の遅延も最小限に抑えられるものである。   As described above, according to this embodiment, the number of start accumulation packets in the RTP reception buffer is increased in accordance with the occurrence of fluctuations, and the number of start accumulation packets is reduced as fluctuations stop and converge. Therefore, the RTP reception buffer size is dynamically controlled in accordance with the fluctuation amount, so that sound interruption is reduced and sound delay is minimized.

なお、上述の実施形態においては、RTP受信バッファが空になったら、開始蓄積パケット数を増加目標蓄積量に変更するようにしたが、空ではなく、RTP受信バッファの蓄積パケット数が所定数以下、例えば1個以下になったときに、開始蓄積パケット数を増加目標蓄積量に変更するようにしてもよい。   In the above-described embodiment, when the RTP reception buffer becomes empty, the start accumulation packet number is changed to the increase target accumulation amount. However, it is not empty, and the accumulation packet number of the RTP reception buffer is equal to or less than a predetermined number. For example, when the number becomes one or less, the number of start accumulation packets may be changed to an increase target accumulation amount.

[バッファ出力データ処理制御部505での処理]
図13は、バッファ出力データ処理制御部505での処理をさらに説明するための機能ブロック図である。
[Processing in Buffer Output Data Processing Control Unit 505]
FIG. 13 is a functional block diagram for further explaining the processing in the buffer output data processing control unit 505.

すなわち、バッファ出力データ処理制御部505では、この例では、音声パケットサイズに合わせた周期で揺らぎ吸収バッファ502に対して受信パケットの取得を要求し、処理判断部5054で、受信パケットが得られたかどうかを判断する。   That is, in this example, the buffer output data processing control unit 505 requests the fluctuation absorbing buffer 502 to acquire a received packet at a cycle according to the voice packet size, and the processing determination unit 5054 obtains the received packet. Judge whether.

そして、処理判断部5054は、受信パケットの受信に成功したと判断したときには、当該受信パケットのデータをデータデコード処理部506に出力すると共に、履歴バッファHTBFに追加するようにする。   When it is determined that the received packet has been successfully received, the process determining unit 5054 outputs the received packet data to the data decode processing unit 506 and adds it to the history buffer HTBF.

履歴バッファHTBFは、所定時間分(複数パケット分以上)の音声データを保持することができるメモリで構成されており、常に、再生出力された最新の所定時間分の音声データを保持するようにする。すなわち、履歴バッファHTBFは再生した音声を前記所定時間分保持するもので、新たに履歴バッファHTBFに音声データが追加されるときには、当該履歴バッファHTBFに蓄積されている音声データの内の最も旧いデータが廃棄される。   The history buffer HTBF is composed of a memory that can hold audio data for a predetermined time (a plurality of packets or more), and always holds the audio data for the latest predetermined time that has been reproduced and output. . In other words, the history buffer HTBF holds the reproduced audio for the predetermined time, and when new audio data is added to the history buffer HTBF, the oldest data among the audio data stored in the history buffer HTBF. Is discarded.

音声波形周期演算部5051は、この履歴バッファHTBFに蓄積された音声データを用いて、最新の音声波形周期を算出する。この音声波形周期の算出処理方法については、後で詳述する。   The voice waveform cycle calculation unit 5051 calculates the latest voice waveform cycle using the voice data accumulated in the history buffer HTBF. A method for calculating the speech waveform period will be described in detail later.

また、処理判断部5054は、受信パケットを受信できなかったと判断したときには、音声データ合成処理部5052を制御して、出力した直近の音声データに基づいて音声信号を合成させる。   Also, when the process determining unit 5054 determines that the received packet has not been received, the process determining unit 5054 controls the audio data synthesizing unit 5052 to synthesize an audio signal based on the most recently output audio data.

音声データ合成処理部5052は、処理判断部5054からの制御指示により、ピッチバッファPiBFに記憶されている再生出力された最新の所定時間分の音声データに基づいて、その音声波形周期単位の合成音声信号を生成する。そして、音声データ合成処理部5052は、生成した合成音声信号をデータデコード処理部506に出力すると共に、履歴バッファHTBFに追加するようにする。   In response to a control instruction from the process determination unit 5054, the audio data synthesis processing unit 5052 is based on the latest audio data for a predetermined period of time reproduced and stored in the pitch buffer PiBF. Generate a signal. Then, the voice data synthesis processing unit 5052 outputs the generated synthesized voice signal to the data decoding processing unit 506 and adds it to the history buffer HTBF.

ピッチバッファPiBFには、合成音声信号の生成が必要となったときに、処理判断部5054からの制御指示により、履歴バッファHTBFに格納されている所定時間分の音声データがコピーされて書き込まれる。音声データ合成処理部5052は、履歴バッファHTBFの蓄積データを直接アクセスして合成音声信号の生成をすることもできるが、この例では、合成音声信号の生成処理作業を容易化するため、履歴バッファHTBFの内容を、ピッチバッファPiBFにコピーして、当該ピッチバッファPiBFを音声データ合成処理部5052がアクセスするようにしている。   When it is necessary to generate a synthesized audio signal, audio data for a predetermined time stored in the history buffer HTBF is copied and written to the pitch buffer PiBF in accordance with a control instruction from the processing determination unit 5054. The voice data synthesis processing unit 5052 can directly generate the synthesized voice signal by directly accessing the data stored in the history buffer HTBF. In this example, however, the history buffer HTBF is used to facilitate the synthesized voice signal generation process. Is copied to the pitch buffer PiBF, and the voice data synthesis processing unit 5052 accesses the pitch buffer PiBF.

<音声波形周期の算出処理>
図14〜図15は、音声波形周期の算出処理を説明するための図である。図14(A)は、履歴バッファHTBFの記憶データを説明するための図である。この例では、音声データはPCM信号であって、サンプリング周波数は例えば8kHzとされ、1音声パケットは80サンプルとされている。
<Sound waveform cycle calculation processing>
14-15 is a figure for demonstrating the calculation process of a speech waveform period. FIG. 14A is a diagram for explaining data stored in the history buffer HTBF. In this example, the voice data is a PCM signal, the sampling frequency is 8 kHz, for example, and one voice packet is 80 samples.

図14(A)に示すように、この例の履歴バッファHTBFは、音声データの390サンプル分を記憶可能な容量を有するものとされている。図14(A)において、0〜390の数値は、サンプルアドレスを示し、数値が小さいアドレスほど、旧い音声データが記憶されているものとする。   As shown in FIG. 14A, the history buffer HTBF in this example has a capacity capable of storing 390 samples of audio data. In FIG. 14A, numerical values from 0 to 390 indicate sample addresses, and it is assumed that older audio data is stored for addresses having a smaller numerical value.

音声波形周期は、この例では、履歴バッファHTBFに記憶データの最新の過去の20ミリ秒から求めるようにする。そのため、この例では、履歴バッファHTBFの最後(最新)の20ミリ秒の波形SA(アドレス230〜390までの160サンプル)と、最新時点から35ミリ秒までの過去の波形中の20ミリ秒分の波形SB(アドレス110〜390までの280サンプルのうちの160サンプル)とを比較し、最も近似した箇所を検出するようにする。当該近似した箇所の検出方法は、2つの波形SAとSBとの自己相関関数を計算し、その計算結果の値が大きいものほど近似しているという方法を用いるものである。   In this example, the voice waveform period is obtained from the latest past 20 milliseconds stored in the history buffer HTBF. Therefore, in this example, the last (latest) 20 ms waveform SA (160 samples from addresses 230 to 390) of the history buffer HTBF and 20 ms in the past waveform from the latest time to 35 ms. The waveform SB (160 samples out of 280 samples from addresses 110 to 390) is compared to detect the most approximate location. The approximate location detection method uses a method in which the autocorrelation function between the two waveforms SA and SB is calculated, and the larger the calculation result value is, the closer the approximation is.

すなわち、アドレス110〜390までの280サンプル中から、順次に160サンプル分を抽出したものを波形SBとして、この波形SBと波形SAとを比較する。このとき、波形SBの先頭アドレスのアドレス110に対する差をオフセット量と呼び、このオフセット量により、音声波形周期を算出するものである。   That is, the waveform SB is obtained by sequentially extracting 160 samples from 280 samples at addresses 110 to 390, and the waveform SB is compared with the waveform SA. At this time, the difference between the head address of the waveform SB and the address 110 is called an offset amount, and the speech waveform period is calculated based on the offset amount.

つまり、図14(B)、(C)、(D)に示すように、この例では、オフセット0から1づつ順次にオフセットを増加しながら、オフセット80まで、波形SBを更新し、波形SAと比較する(自己相関関数を演算する)。そして、自己相関関数の演算結果がピーク値を示すオフセット量から音声波形周期を算出する。ここで、オフセット80の波形SBまでしか繰り返さない理由は、求める音声波形周期の範囲が40〜120サンプル分であるためである。   That is, as shown in FIGS. 14B, 14C, and 14D, in this example, the waveform SB is updated up to the offset 80 while increasing the offset sequentially from the offset 0 one by one, and the waveform SA and Compare (calculate autocorrelation function). Then, the speech waveform period is calculated from the offset amount at which the calculation result of the autocorrelation function indicates the peak value. Here, the reason for repeating only up to the waveform SB of the offset 80 is that the range of the speech waveform period to be obtained is 40 to 120 samples.

図15は、音声波形周期の算出方法を説明するための図である。図15(A)は、オフセット0のときの相関関数値が最大ピークとなった場合であり、図15(B)は、オフセットが80のときの相関関数値が最大ピークになった場合である。   FIG. 15 is a diagram for explaining a method of calculating a speech waveform period. FIG. 15A shows a case where the correlation function value has a maximum peak when the offset is 0, and FIG. 15B shows a case where the correlation function value has a maximum peak when the offset is 80. .

図15(A)の場合には、履歴バッファHTBF(図15(A−1)参照)のアドレス230〜390の波形SAと、オフセット0の波形SB(アドレス110〜270の波形;図15(A−2)参照)とでは、両波形SA,SBにおいて斜線を付した部分と網点を付した部分も近似した波形となっていることが分かる。   In the case of FIG. 15A, the waveform SA of addresses 230 to 390 of the history buffer HTBF (see FIG. 15A-1) and the waveform SB of offset 0 (the waveforms of addresses 110 to 270; FIG. 15A 2))), it can be seen that both the waveforms SA and SB have a waveform that approximates the hatched portion and the half-dotted portion.

したがって、アドレス230〜390の波形SAにおいては、図15(A−3)で斜線を付して示すように、アドレス230〜270の部分と、アドレス350〜390の部分も近似している。このことから、図15(A)の例の音声波形周期は、図15(A−4)に示すように、アドレス270〜390までの15ミリ秒であることが分かる。   Therefore, in the waveform SA of the addresses 230 to 390, as shown by hatching in FIG. 15A-3, the address 230 to 270 portion and the address 350 to 390 portion are also approximated. From this, it can be seen that the speech waveform period in the example of FIG. 15A is 15 milliseconds from the address 270 to 390 as shown in FIG. 15A-4.

また、図15(B)の場合には、履歴バッファHTBF(図15(B−1)参照)のアドレス230〜390の160サンプル分の波形SAと、オフセット80の波形SB(アドレス190〜270の160サンプルの波形;図15(B−2)参照)とでは、40サンプル分ごとの部分においても近似した波形となっていることが分かる。   In the case of FIG. 15B, a waveform SA of 160 samples at addresses 230 to 390 of the history buffer HTBF (see FIG. 15B-1) and a waveform SB of offset 80 (addresses 190 to 270). 160 waveform (see FIG. 15B-2)), it can be seen that the waveform is also approximated in every 40 samples.

したがって、アドレス230〜390の波形SAにおいては、図15(B−3)で網点を付して示すように、アドレス230〜270の部分、アドレス270〜310の部分と、アドレス310〜350の部分およびアドレス350〜390の部分の4つは互いに近似していることになる。このことから、図15(B)の例の音声波形周期は、図15(B−4)に示すように、アドレス350〜390までの5ミリ秒であることが分かる。   Therefore, in the waveform SA of the addresses 230 to 390, as shown with halftone dots in FIG. 15B-3, the address 230 to 270, the address 270 to 310, and the addresses 310 to 350 are shown. The part and the four parts of the addresses 350 to 390 are approximate to each other. From this, it can be seen that the speech waveform period in the example of FIG. 15B is 5 milliseconds from addresses 350 to 390, as shown in FIG. 15B-4.

以上のことから、この実施形態では、音声波形周期の値は、(120−オフセット)サンプル分として求めることができる。   From the above, in this embodiment, the value of the speech waveform period can be obtained as (120−offset) samples.

図16に、この例の場合における音声波形周期の算出処理の一例のフローチャートを示す。   FIG. 16 shows a flowchart of an example of the calculation process of the speech waveform period in the case of this example.

先ず、オフセット0での音声信号エネルギーを算出する(ステップS61)。次に、オフセット0の波形SBと波形SAとの自己相関関数の値を算出する(ステップS62)。次に、ステップS61で求めたエネルギー値を元に正規化係数を算出する(ステップS63)。そして、ステップS63で求めた正規化係数により、ステップS62で求めたオフセット0のときの自己相関関数の値を、正規化する(ステップS64)。そして、そのときに得られた正規化された自己相関関数の値をピーク値として保持する(ステップS65)。   First, the audio signal energy at offset 0 is calculated (step S61). Next, the value of the autocorrelation function between the waveform SB with the offset 0 and the waveform SA is calculated (step S62). Next, a normalization coefficient is calculated based on the energy value obtained in step S61 (step S63). Then, the value of the autocorrelation function at the offset 0 obtained in step S62 is normalized by the normalization coefficient obtained in step S63 (step S64). Then, the value of the normalized autocorrelation function obtained at that time is held as a peak value (step S65).

次に、オフセットを2インクリメントして、上記ステップS61〜64を行なって、正規化された自己相関関数の値を求め、それまでのピーク値と比較して、それまでのピーク値よりも新たに求めた自己相関関数が大きい時には、当該新たに求めた自己相関関数の値をピーク値としてそのときのオフセットと共に保持する。この処理を、オフセット80まで繰り返す(ステップS66)。 Next, the offset is incremented by 2 and steps S61 to S64 are performed to obtain a normalized autocorrelation function value, which is compared with the previous peak value and more newly than the previous peak value. When the obtained autocorrelation function is large, the value of the newly obtained autocorrelation function is held as a peak value together with the offset at that time. This process is repeated up to offset 80 (step S66).

ステップS66の処理が終了したら、最後まで保持されていたピーク値のときのオフセットの前後±1のオフセットの範囲で、上記ステップS61〜64における自己相関関数の値を求める演算を行ない、値が最大となるオフセットを求める(ステップS67)。そして、ステップS67で求めたオフセットを、120から減算して、音声波形周期分のサンプル数を求める(ステップS68)。以上で、音声波形周期の演算処理を終了する。   When the process of step S66 is completed, the calculation for obtaining the value of the autocorrelation function in steps S61 to 64 is performed in the range of ± 1 offset before and after the offset at the peak value held until the end, and the value is the maximum. Is obtained (step S67). Then, the offset obtained in step S67 is subtracted from 120 to obtain the number of samples corresponding to the speech waveform period (step S68). Thus, the speech waveform cycle calculation processing is completed.

この音声波形周期の算出結果は、音声データ合成処理部5052および音声データ廃棄処理部5053に通知されて、音声データの合成処理および音声データの廃棄処理が、当該音声波形周期単位で実行されるようにされる。   The calculation result of the voice waveform cycle is notified to the voice data synthesis processing unit 5052 and the voice data discard processing unit 5053 so that the voice data synthesis processing and the voice data discard processing are executed in units of the voice waveform cycle. To be.

<正常再生音声データ出力処理および合成音声データ処理>
次に、バッファ出力データ処理制御部505が、揺らぎ吸収バッファ502(RTP受信バッファ)からのパケットを受信したときは、正常処理を行ない、受信できなかったときには、合成音声信号を生成する処理について説明する。この処理は、図8および図9に示した揺らぎ吸収バッファ502のバッファサイズ変更制御処理に併せて行なわれるのは、前述した通りである。
<Normal playback audio data output processing and synthesized audio data processing>
Next, when the buffer output data processing control unit 505 receives a packet from the fluctuation absorbing buffer 502 (RTP reception buffer), it performs normal processing, and when it cannot receive the packet, it generates a synthesized voice signal. To do. As described above, this processing is performed together with the buffer size change control processing of the fluctuation absorbing buffer 502 shown in FIGS.

図17は、バッファ出力データ処理制御部505における処理のメインルーチンを示すフローチャートである。この図17のバッファ出力処理制御部505における処理は、設定された割り込み周期で起動される。この例では、この割り込み周期は、音声パケットサイズに合わせたものとされている。なお、割り込み周期は、音声パケットサイズと一致させなくても勿論よい。   FIG. 17 is a flowchart showing a main routine of processing in the buffer output data processing control unit 505. The processing in the buffer output processing control unit 505 in FIG. 17 is started at the set interrupt cycle. In this example, this interrupt cycle is set to match the voice packet size. Of course, the interrupt period does not have to match the voice packet size.

まず、RTP受信バッファを検索する(ステップS71)。そして、バッファ参照フラグが「TRUE」であるか「FALSE」であるか判別する(ステップS72)。バッファ参照フラグが「TRUE」であった場合には、バッファ出力データ処理制御部505では後述する正常フレーム処理を行なう(ステップS73)。また、バッファ参照フラグが「FALSE」であった場合には、バッファ出力データ処理制御部505では、再生すべき音声データがないと判断して、後述する異常フレーム処理を行なう(ステップS74)。なお、ここで、フレームは、パケットと同義の意味として用いている。   First, the RTP reception buffer is searched (step S71). Then, it is determined whether the buffer reference flag is “TRUE” or “FALSE” (step S72). If the buffer reference flag is “TRUE”, the buffer output data processing control unit 505 performs normal frame processing described later (step S73). If the buffer reference flag is “FALSE”, the buffer output data processing control unit 505 determines that there is no audio data to be reproduced, and performs an abnormal frame process to be described later (step S74). Here, the frame is used as the same meaning as the packet.

そして、ステップS73およびステップS74の処理の後、これらステップS73、ステップS74での処理結果の音声データをデータデコード処理部506(コーデック部に相当)に渡す。そして、この例では、割り込み周期分である1パケット分の時間を待ち(ステップS76)、ステップS71に戻って、以上の処理を繰り返す。   Then, after the processing in step S73 and step S74, the audio data resulting from the processing in steps S73 and S74 is transferred to the data decoding processing unit 506 (corresponding to the codec unit). In this example, a time of one packet that is an interrupt cycle is waited (step S76), the process returns to step S71, and the above processing is repeated.

<ステップS73の正常フレーム処理>
ステップS73の正常フレーム処理について、図18および図19のフローチャートを参照して説明する。
<Normal Frame Processing in Step S73>
The normal frame processing in step S73 will be described with reference to the flowcharts in FIGS.

先ず、揺らぎ吸収バッファ502からの音声パケットデータを受信する(ステップS81)。次に、直前はデータロスのため、合成音声信号が出力されていたか否か判別する(ステップS82)。直前は、データロスではなかったときには、受信した音声パケットデータを、履歴バッファHTBFに追加すると共にデータデコード処理部506に送る(ステップS90)。また、このとき、揺らぎ吸収制御部504は、管理上、揺らぎ吸収バッファ502の蓄積パケット数をデクリメントすると共に、参照インデックスをインクリメントする。バッファ出力データ処理制御部505からのパケット取得要求があったときには、参照インデックスから音声パケットを読み出すものである。   First, voice packet data is received from the fluctuation absorbing buffer 502 (step S81). Next, because of data loss immediately before, it is determined whether or not a synthesized speech signal has been output (step S82). If there is no data loss immediately before, the received voice packet data is added to the history buffer HTBF and sent to the data decoding processing unit 506 (step S90). At this time, the fluctuation absorption control unit 504 decrements the number of accumulated packets in the fluctuation absorption buffer 502 and increments the reference index for management. When there is a packet acquisition request from the buffer output data processing control unit 505, the voice packet is read from the reference index.

なお、音声データは、オーディオポートに送られる前に、例えば30サンプル分遅延される。この遅延により、次フレーム(次パケット)が合成音声信号となった場合に、この遅延区間を波形合成することにより、波形が滑らかに遷移するようになる。   The audio data is delayed by, for example, 30 samples before being sent to the audio port. When the next frame (next packet) becomes a synthesized speech signal due to this delay, the waveform transitions smoothly by synthesizing the delay section.

ステップS82で、直前はデータロスであったため、合成音声信号が出力されていたと判別したときには、受信パケットのシーケンス番号が、合成音声信号が出力される前に受信されて出力された受信パケットのシーケンス番号に連続するシーケンス番号であるか、不連続のシーケンス番号であるかを判別する(ステップS83)。   In step S82, when it is determined that a synthesized voice signal has been output because there was a data loss immediately before, the sequence number of the received packet is received and output before the synthesized voice signal is output. It is determined whether the sequence number is a sequence number consecutive to the number or a discontinuous sequence number (step S83).

ステップS83で、連続するシーケンス番号であると判別したときには、合成音声信号が、前の受信パケットと波形的に連続するように、前の受信パケットから求められた音声周期に基づいて生成されたパケット単位データであることから、受信パケットは、そのまま波形的に連続するものと考えられるが、より波形を滑らかに遷移させるようにするため、この例では、先に出力された合成音声信号と受信パケットの音声データとは波形合成するようにする。   When it is determined in step S83 that the sequence numbers are consecutive, the packet generated based on the voice cycle obtained from the previous received packet so that the synthesized voice signal is continuous in waveform with the previous received packet Since it is unit data, the received packet is considered to be continuous as a waveform, but in this example, in order to make the waveform transition more smoothly, in this example, the synthesized speech signal and the received packet that were output first Waveform synthesis is performed with the audio data.

すなわち、先ず、先に出力された合成音声信号と受信パケットとについて波形合成範囲を算出する(ステップS88)。次に、先に出力された合成音声信号についての波形合成範囲を波形合成用バッファOLBFにコピーする(ステップS89)。そして、波形合成範囲において、先に出力された合成音声信号と受信パケットの音声データとを波形合成する(ステップS90)。そして、波形合成範囲において波形合成処理した1パケット分の受信データを履歴バッファHTBFに追加すると共に、データデコード処理部506に送る(ステップS91)。   That is, first, a waveform synthesis range is calculated for the synthesized speech signal and the received packet that have been output previously (step S88). Next, the waveform synthesis range for the synthesized speech signal output previously is copied to the waveform synthesis buffer OLBF (step S89). Then, in the waveform synthesis range, the synthesized voice signal output earlier and the voice data of the received packet are synthesized (step S90). Then, the received data for one packet subjected to the waveform synthesis processing in the waveform synthesis range is added to the history buffer HTBF and sent to the data decoding processing unit 506 (step S91).

また、ステップS83で、不連続のシーケンス番号であると判別したときには、音声波形周期演算部5051で算出された音声波形周期を取得する(ステップS84)。そして、音声波形周期は、パケットサイズである80サンプルに対してどのような値であるか判別する(ステップS85)。   If it is determined in step S83 that the sequence number is discontinuous, the voice waveform cycle calculated by the voice waveform cycle calculator 5051 is acquired (step S84). Then, it is determined what value the voice waveform cycle is for 80 samples which is the packet size (step S85).

ステップS85で、音声波形周期が丁度80サンプル分で、パケットサイズと等しいと判別されたときには、合成音声信号が音声周期単位で生成されていることから、そのまま波形的に連続するものと考えられるが、より波形を滑らかに遷移させるようにするため、この例では、先に出力された合成音声信号と受信パケットの音声データとは波形合成するようにする。   If it is determined in step S85 that the speech waveform period is exactly 80 samples and equal to the packet size, the synthesized speech signal is generated in units of speech cycles, so it is considered that the waveform continues as it is. In this example, the synthesized voice signal output earlier and the voice data of the received packet are subjected to waveform synthesis in order to make the waveform transition more smoothly.

すなわち、ステップS85からステップS88に飛び、前述したステップS88〜ステップS91の処理を行なうようにする。   That is, the process jumps from step S85 to step S88, and the processes of steps S88 to S91 described above are performed.

また、ステップS85で、音声波形周期が80サンプル分よりも短い周期であると判別したときには、図20に示すような処理を行なう。   If it is determined in step S85 that the speech waveform cycle is shorter than 80 samples, the processing shown in FIG. 20 is performed.

すなわち、図20(A)は、履歴バッファHTBFに格納されている過去の音声パケットデータを示すものであり、この例では、最新のパケットデータは合成音声信号となっている。この実施形態では、音声波形周期単位で合成音声信号を生成して、パケットのつなぎ目で再生音声波形が滑らかに遷移するようにしており、合成音声信号は、図20(B)に示すような状態で、音声波形周期単位で生成されているものである。   20A shows past voice packet data stored in the history buffer HTBF. In this example, the latest packet data is a synthesized voice signal. In this embodiment, a synthesized speech signal is generated in units of speech waveform cycles so that the reproduced speech waveform smoothly transitions at the joint of packets, and the synthesized speech signal is in a state as shown in FIG. Thus, it is generated in units of speech waveform periods.

受信パケットは、伝送系での揺らぎにより遅れて到着したものであり、図20の例であれば、「音声2」のパケットの次の「音声3」であって、合成音声信号が算出された音声波形周期分であれば、滑らかに繋がると予想できる。   The received packet arrives late due to fluctuations in the transmission system. In the example of FIG. 20, the synthesized voice signal is calculated for “voice 3” next to the packet of “voice 2”. It can be expected that the speech waveform period is connected smoothly.

しかし、合成音声信号のパケットサイズよりも音声波形周期が短いため、合成音声信号のパケットは、図20(B)に示すように、(1音声波形周期+残余部分)からなり、当該残余部分の存在により、そのまま「音声3」の受信パケットをつなげたのでは、波形は不連続になってしまう。   However, since the speech waveform cycle is shorter than the packet size of the synthesized speech signal, the packet of the synthesized speech signal is composed of (1 speech waveform cycle + residual portion) as shown in FIG. If the received packet of “voice 3” is connected as it is, the waveform becomes discontinuous.

そこで、この例においては、図20(C)に示すように、「音声3」の受信パケットは、その先頭の前記残余部分に相当する部分を削除した後、合成音声信号とつなげるようにすれば、図20(D)に示すように、音声波形周期単位で連続したものとなり、音声波形は連続性を維持することができる。ただし、合成音声信号と「音声3」の受信パケットとをより滑らかにつなげるため、この例では、合成音声信号と「音声3」の受信パケットとの間で後述するような波形合成処理を行なう。   Therefore, in this example, as shown in FIG. 20C, the received packet of “voice 3” can be connected to the synthesized voice signal after the portion corresponding to the remaining portion at the head is deleted. As shown in FIG. 20D, the speech waveform is continuous in units of speech waveform, and the speech waveform can maintain continuity. However, in order to connect the synthesized voice signal and the “voice 3” received packet more smoothly, in this example, a waveform synthesis process as described later is performed between the synthesized voice signal and the “voice 3” received packet.

以上のことを考慮して、ステップS85で、音声波形周期の値がパケットサイズである80よりも短いときには、図20(C)に示した残余部分に対応する削除部分ERの長さ(削除レングス)を算出する(ステップS86)。削除レングスは、(80−音声波形周期)として算出することができる。そして、算出した削除レングス分を、受信パケットの先頭から削除する(ステップS87)。   Considering the above, when the value of the speech waveform period is shorter than 80, which is the packet size, in step S85, the length (deletion length) of the deletion portion ER corresponding to the remaining portion shown in FIG. ) Is calculated (step S86). The deletion length can be calculated as (80−speech waveform period). Then, the calculated deletion length is deleted from the head of the received packet (step S87).

そして、合成音声信号と受信パケットとについて波形合成範囲を算出する(ステップS88)。次に、合成音声信号についての波形合成範囲を波形合成用バッファOLBFにコピーする(ステップS89)。そして、波形合成範囲において、波形合成用バッファOLBFの音声データと受信パケットの音声データとを波形合成する(ステップS90)。そして、波形合成範囲において波形合成処理した1パケット分の受信データを履歴バッファHTBFに追加すると共に、データデコード処理部506に送る(ステップS91)。   Then, a waveform synthesis range is calculated for the synthesized voice signal and the received packet (step S88). Next, the waveform synthesis range for the synthesized speech signal is copied to the waveform synthesis buffer OLBF (step S89). Then, in the waveform synthesis range, the waveform data is synthesized between the audio data of the waveform synthesis buffer OLBF and the audio data of the received packet (step S90). Then, the received data for one packet subjected to the waveform synthesis processing in the waveform synthesis range is added to the history buffer HTBF and sent to the data decoding processing unit 506 (step S91).

また、ステップS85で、音声波形周期が80サンプル分よりも長い周期であると判別したときには、図21に示すような処理を行なう。   If it is determined in step S85 that the speech waveform cycle is longer than 80 samples, processing as shown in FIG. 21 is performed.

すなわち、図21(A)は、履歴バッファHTBFに格納されている過去の音声パケットデータを示すものであり、この例では、最新のパケットデータは合成音声信号となっている。この実施形態では、音声波形周期単位で合成音声信号を生成して、パケットのつなぎ目で再生音声波形が滑らかに遷移するようにしており、合成音声信号は、図21(B)に示すような状態で、音声波形周期単位で生成されているものである。   That is, FIG. 21A shows past voice packet data stored in the history buffer HTBF. In this example, the latest packet data is a synthesized voice signal. In this embodiment, a synthesized speech signal is generated in units of speech waveform cycles so that the reproduced speech waveform smoothly transitions at the joint of packets, and the synthesized speech signal is in a state as shown in FIG. Thus, it is generated in units of speech waveform periods.

受信パケットは、伝送系での揺らぎにより遅れて到着したものであり、図21の例であれば、「音声2」のパケットの次の「音声3」であって、合成音声信号が算出された音声波形周期分であれば、滑らかに繋がると予想できる。   The received packet arrives with a delay due to fluctuations in the transmission system. In the example of FIG. 21, the synthesized voice signal is calculated for “voice 3” next to the packet of “voice 2”. It can be expected that the speech waveform period is connected smoothly.

しかし、合成音声信号のパケットサイズよりも音声波形周期が長いため、合成音声信号のパケットは、図21(B)に示すように、(1音声波形周期−不足部分)からなり、当該不足部分の存在により、そのまま「音声3」の受信パケットをつなげたのでは、波形は不連続になってしまう。   However, since the speech waveform cycle is longer than the packet size of the synthesized speech signal, the synthesized speech signal packet is composed of (1 speech waveform cycle-insufficient portion) as shown in FIG. If the received packet of “voice 3” is connected as it is, the waveform becomes discontinuous.

そこで、この例においては、図21(C)に示すように、「音声3」の受信パケットは、そのパケットの前に前記不足部分に相当する部分を追加した後、合成音声信号とつなげるようにすれば、図21(D)に示すように、音声波形周期単位で連続したものとなり、音声波形は連続性を維持することができる。ただし、合成音声信号と「音声3」の受信パケットとをより滑らかにつなげるため、この例では、合成音声信号と「音声3」の受信パケットとの間で後述するような波形合成処理を行なう。   Therefore, in this example, as shown in FIG. 21C, the received packet of “voice 3” is connected to the synthesized voice signal after adding a portion corresponding to the insufficient portion before the packet. Then, as shown in FIG. 21 (D), it becomes continuous in units of speech waveform cycles, and the speech waveform can maintain continuity. However, in order to connect the synthesized voice signal and the “voice 3” received packet more smoothly, in this example, a waveform synthesis process as described later is performed between the synthesized voice signal and the “voice 3” received packet.

以上のことを考慮して、ステップS85で、音声波形周期の値がパケットサイズである80よりも長いときには、図21(C)に示した不足部分に対応する追加部分の長さ(追加レングス)を算出する(図19のステップS101)。追加レングスは、(音声波形周期−80)として算出することができる。そして、算出した追加レングス分を、図21(C)に示すように、「音声2」のパケットの最後の相当分として抽出してコピーすることにより、受信パケットの先頭に追加する(ステップS102)。   In consideration of the above, when the value of the speech waveform period is longer than 80, which is the packet size, in step S85, the length of the additional portion (additional length) corresponding to the shortage portion shown in FIG. Is calculated (step S101 in FIG. 19). The additional length can be calculated as (speech waveform period-80). Then, as shown in FIG. 21C, the calculated additional length is extracted and copied as the last equivalent of the “voice 2” packet, and added to the head of the received packet (step S102). .

そして、追加したデータ部分を適当に波形減衰させ(ステップS103)、それを履歴バッファHTBFに追加する(ステップS104)。その後、追加部分と受信パケットとについて波形合成範囲を算出する(ステップS105)。次に、波形合成範囲を波形合成用バッファOLBFにコピーする(ステップS106)。そして、波形合成範囲において、波形合成用バッファの音声データと受信パケットの音声データとを波形合成する(ステップS107)。そして、波形合成範囲において波形合成処理した1パケット分の受信データを履歴バッファHTBFに追加すると共に、データデコード処理部506に送る(図18のステップS90)。   Then, the added data portion is appropriately waveform attenuated (step S103), and added to the history buffer HTBF (step S104). Thereafter, a waveform synthesis range is calculated for the additional portion and the received packet (step S105). Next, the waveform synthesis range is copied to the waveform synthesis buffer OLBF (step S106). Then, in the waveform synthesis range, the voice data of the waveform synthesis buffer and the voice data of the received packet are synthesized (step S107). Then, the received data for one packet subjected to the waveform synthesis processing in the waveform synthesis range is added to the history buffer HTBF and sent to the data decoding processing unit 506 (step S90 in FIG. 18).

図22は、この波形合成処理を説明するための図であり、この図22の例は、音声波形周期がパケットサイズである80よりも短い場合である。   FIG. 22 is a diagram for explaining this waveform synthesis processing, and the example of FIG. 22 is a case where the speech waveform cycle is shorter than 80 which is the packet size.

すなわち、図22(A)は、波形合成処理前の履歴バッファHTBFの記憶内容およびピッチバッファPiBFの記憶内容を説明するための図である。ピッチバッファPiBFの記憶内容は、後述する合成処理(図24〜図28参照)を行なった後の記憶内容であり、pistは、音声波形周期のデータのスタートアドレス、pofsは、スタートアドレスpistよりも(パケットサイズ−音声波形周期)分だけ離れたアドレス、pendは、ピッチバッファPiBFの終わりのアドレスである。   That is, FIG. 22A is a diagram for explaining the storage contents of the history buffer HTBF and the storage contents of the pitch buffer PiBF before the waveform synthesis processing. The content stored in the pitch buffer PiBF is the content stored after a synthesizing process (see FIGS. 24 to 28) described later, pist is the start address of the data of the speech waveform period, and pofs is more than the start address pist. An address separated by (packet size−voice waveform period), “pend”, is an end address of the pitch buffer PiBF.

履歴バッファHTBFの記憶内容である合成信号(1パケット分)は、ピッチバッファPiBFの1周期分の音声波形データを、スタートアドレスpistからエンドアドレスpendに向かって、その間を繰り返すことにより得られるもので、1周期分に対してpist−pofsだけの差分が追加あるいは削除されたものに等しい。つまり、履歴バッファHTBFの最後尾の音声データサンプルは、アドレスpofsのサンプルに等しい。   The synthesized signal (one packet) that is stored in the history buffer HTBF is obtained by repeating the sound waveform data for one cycle in the pitch buffer PiBF from the start address pist toward the end address pend. This is equivalent to adding or deleting a difference of only pist-pofs for one period. That is, the last audio data sample in the history buffer HTBF is equal to the sample at the address pofs.

したがって、波形合成範囲は、図22(B)に示すように、ピッチバッファPiBFのアドレスpofsから所定時間分(例えば、音声波形周期の1/4)とされる部分olapとされ、この部分olapが波形合成用バッファOLBFにコピーされる。   Therefore, as shown in FIG. 22 (B), the waveform synthesis range is a part lap that is a predetermined time (for example, 1/4 of the speech waveform period) from the address pofs of the pitch buffer PiBF. Copied to the waveform synthesis buffer OLBF.

そして、図22(C)に示すように、波形合成用バッファOLBFにコピーされた部分olapと、受信パケットの音声データの対応する範囲部分が波形合成され、その波形合成結果が、受信パケットの音声データの対応する範囲部分に書き戻される。   Then, as shown in FIG. 22 (C), the portion olap copied to the waveform synthesis buffer OLBF and the corresponding range portion of the voice data of the received packet are subjected to waveform synthesis, and the waveform synthesis result becomes the voice of the received packet. Written back to the corresponding range part of the data.

そして、このようにして、先頭の波形合成範囲のデータについて波形合成が行なわれた受信パケットが、図22(D)に示すようにして、履歴バッファHTBFに追加されるものである。   Then, the received packet that has been subjected to waveform synthesis for the data in the head waveform synthesis range in this way is added to the history buffer HTBF as shown in FIG. 22 (D).

波形合成処理は、図23に示すようにして行なわれる。すなわち、図23は、波形Aと波形Bとを合成する場合を示すものである。ここで、図23(A)に示す波形Aは、履歴バッファHTBFに記憶されている音声データ、図23(B)に示す波形Bは、受信パケットの音声データとする。   The waveform synthesis process is performed as shown in FIG. That is, FIG. 23 shows a case where the waveform A and the waveform B are synthesized. Here, the waveform A shown in FIG. 23A is audio data stored in the history buffer HTBF, and the waveform B shown in FIG. 23B is audio data of a received packet.

先ず、波形Aは、図23(C)に示すように、徐々に減衰するゲイン特性を掛け算して、図23(E)に示すように、徐々に振幅が減衰する波形の信号に変換する。また、波形Bは、図23(D)に示すように、徐々に上昇するゲイン特性を掛け算して、図23(F)に示すように、徐々に振幅が大きくなる波形の信号に変換する。そして、図23(E)おおび(F)の波形を掛け算することにより、両波形を合成して、図23(G)に示すような合成波形を得る。この合成波形は、波形Aの信号から波形Bの信号に連続性を保持して滑らかに変化するものとなる。   First, the waveform A is multiplied by a gain characteristic that gradually attenuates as shown in FIG. 23C, and is converted into a signal having a waveform that gradually decreases in amplitude as shown in FIG. Further, the waveform B is multiplied by a gain characteristic that gradually increases as shown in FIG. 23D, and converted into a waveform signal that gradually increases in amplitude as shown in FIG. Then, by multiplying the waveforms of FIGS. 23E and 23F, both waveforms are synthesized to obtain a synthesized waveform as shown in FIG. The synthesized waveform changes smoothly from the waveform A signal to the waveform B signal while maintaining continuity.

<ステップS74の異常フレーム処理>
図24および図25は、バッファ出力データ処理制御部505におけるステップS74の異常フレーム処理の詳細例を示すフローチャートである。また、図26〜図28は、その処理内容を説明するための図である。以下、これらの図を参照しながら、ステップS74の異常フレーム処理の例について説明する。
<Abnormal Frame Processing in Step S74>
24 and 25 are flowcharts showing a detailed example of the abnormal frame processing in step S74 in the buffer output data processing control unit 505. FIGS. 26 to 28 are diagrams for explaining the processing contents. Hereinafter, an example of the abnormal frame process in step S74 will be described with reference to these drawings.

先ず、揺らぎ吸収バッファ502から受信できなかったパケットが1個目であるか否か判別する(ステップS111)。1個目であると判別したときには、履歴バッファHTBFの内容をピッチバッファPiBFにコピーする(ステップS112;図26(A)参照)。そして、音声波形周期演算部5051から算出された音声波形周期を取得する(ステップS113)。   First, it is determined whether or not the packet that could not be received from the fluctuation absorbing buffer 502 is the first packet (step S111). When it is determined that it is the first one, the contents of the history buffer HTBF are copied to the pitch buffer PiBF (step S112; see FIG. 26A). Then, the voice waveform cycle calculated from the voice waveform cycle calculation unit 5051 is acquired (step S113).

次に、ピッチバッファPiBFにコピーされた音声データの最後の部分(最新部分)について、波形合成範囲部分povlを算出し(ステップS114)、算出した波形合成範囲部分povlをバッファlastqにコピーしておく(ステップS115;図26(B)参照)。この例では、波形合成範囲は、前述したように、音声波形周期の1/4とされている。   Next, the waveform synthesis range part povl is calculated for the last part (latest part) of the audio data copied to the pitch buffer PiBF (step S114), and the calculated waveform synthesis range part povl is copied to the buffer lastq. (Step S115; see FIG. 26B). In this example, the waveform synthesis range is ¼ of the speech waveform cycle as described above.

次に、図26(C)に示すように、ピッチバッファPiBFの最新の音声波形周期分よりも前の波形合成範囲分povlと、バッファlastqにコピーされた波形合成範囲povlとについて前述した波形合成処理を行ない、その波形合成結果を、ピッチバッファPiBFの最新の音声波形周期分のうちの最後尾の波形合成範囲分povlに書き戻す(ステップS116)。   Next, as shown in FIG. 26C, the waveform synthesis described above with respect to the waveform synthesis range portion povl before the latest speech waveform cycle of the pitch buffer PiBF and the waveform synthesis range povl copied to the buffer lastq. The processing is performed, and the waveform synthesis result is written back to the last waveform synthesis range povl of the latest speech waveform period of the pitch buffer PiBF (step S116).

次に、ステップS116で書き戻されたピッチバッファPiBFの最新の音声波形周期分のうちの最後尾の波形合成範囲分povlを、履歴バッファHTBFに追加すると共にデータデコード処理部506に送出する(ステップS117;図26(D)参照)。   Next, the last waveform synthesis range part povl of the latest voice waveform period of the pitch buffer PiBF written back in step S116 is added to the history buffer HTBF and sent to the data decoding processing unit 506 (step S116). S117; see FIG. 26 (D)).

次に、ピッチバッファPiBFの最新の音声波形周期分を、図26(E)に示すように、アドレスpistからpend(=390)までを繰り返し読み出すようにして、1パケット分をピッチバッファPiBFから読み出し(ステップS118)、読み出した1パケット分の合成音声信号を、1パケット分の容量の出力バッファOUTを介してデータデコード処理部506に送出すると共に、履歴バッファHTBFに追加する(ステップS119)。   Next, as shown in FIG. 26E, the latest voice waveform period of the pitch buffer PiBF is repeatedly read from the address pist to pend (= 390), and one packet is read from the pitch buffer PiBF. (Step S118) The read synthesized voice signal for one packet is sent to the data decoding processing unit 506 via the output buffer OUT having a capacity for one packet, and is added to the history buffer HTBF (Step S119).

次に、ステップS111で、パケットデータの受信を失敗したのは1回目ではないと判別したときには、パケットデータの受信を失敗したのは、連続した2回あるいは3回であるかどうか判別し(ステップS120)、そうであると判別したときには、ピッチバッファPiBFの最新の音声波形周期分から、波形合成範囲部分を算出して、それをバッファtmpにコピーしておく(ステップS121;図27(A)および(B)参照)。   Next, when it is determined in step S111 that the packet data reception has not been failed for the first time, it is determined whether the packet data reception has failed two or three times in succession (step If it is determined that this is the case, the waveform synthesis range portion is calculated from the latest speech waveform period of the pitch buffer PiBF and copied to the buffer tmp (step S121; FIG. 27A and FIG. 27). (See (B)).

すなわち、図27(A)は、このときの履歴バッファHTBFの記憶内容およびピッチバッファPiBFの記憶内容であり、連続した2回目の受信パケットの取得を失敗した場合である。このピッチバッファPiBFの記憶内容は、前述した1回目のパケット受信の失敗における処理を行なった後の記憶内容であり、pistは、音声波形周期のデータのスタートアドレス、pofsは、スタートアドレスpistよりも(パケットサイズ−音声波形周期)分だけ離れたアドレス、pendは、ピッチバッファPiBFの終わりのアドレス(=390)である。   That is, FIG. 27A shows the stored contents of the history buffer HTBF and the stored contents of the pitch buffer PiBF at this time, and is a case where acquisition of the second consecutive received packet has failed. The stored content of the pitch buffer PiBF is the stored content after the processing in the first packet reception failure described above, pist is the start address of the voice waveform cycle data, and pofs is more than the start address pist. An address separated by (packet size−voice waveform period), “pend”, is the address (= 390) at the end of the pitch buffer PiBF.

前述したように、履歴バッファHTBFの記憶内容である合成信号(1パケット分)は、ピッチバッファPiBFの1周期分の音声波形データを、スタートアドレスpistからエンドアドレスpendに向かって、その間を繰り返すことにより得られるもので、1周期分に対してpist−pofsだけの差分が追加あるいは削除されたものに等しく、履歴バッファHTBFの最後尾の音声データサンプルは、アドレスpofsのサンプルに等しい。   As described above, the synthesized signal (for one packet) that is the content stored in the history buffer HTBF repeats the sound waveform data for one cycle of the pitch buffer PiBF from the start address pist to the end address pend. And the difference of only pist-pofs for one period is added or deleted, and the last audio data sample of the history buffer HTBF is equal to the sample of the address pofs.

したがって、波形合成範囲は、図27(B)に示すように、ピッチバッファPiBFのアドレスpofsから所定時間分(例えば、音声波形周期の1/4)とされる部分povlとされ、この部分povlが一時バッファtmpにコピーされる。   Therefore, as shown in FIG. 27B, the waveform synthesis range is a portion povl that is a predetermined time (for example, ¼ of the speech waveform period) from the address pofs of the pitch buffer PiBF, and this portion povl is Copied to temporary buffer tmp.

次に、ピッチバッファPiBFの最終アドレスpendから、連続2回目の受信失敗の場合には2音声波形周期分前、連続3回目の受信失敗の場合には3音声波形周期分前、のアドレスを算出し、それをアドレスpistとすると共に、そのアドレスpistよりもさらに、所定時間分(例えば、音声波形周期の1/4)前までの部分を波形合成範囲povlとする(ステップS122)。連続2回目の受信失敗の場合を図27(C)の上側に示す。   Next, from the last address pend of the pitch buffer PiBF, the address of two voice waveform periods before the second consecutive reception failure and the address of three voice waveform periods before the third consecutive reception failure are calculated. Then, it is set as an address pist, and a portion up to a predetermined time (for example, 1/4 of the speech waveform period) before the address pist is set as a waveform synthesis range povl (step S122). The case of continuous second reception failure is shown on the upper side of FIG.

そして、図27(C)に示すように、ステップS122で求めた波形合成範囲povlと、1回目のパケット受信失敗の際にコピーして保存したバッファlastqの波形合成範囲povlとを、前述の図23を用いて説明したようにして波形合成し、当該波形合成結果を、ピッチバッファPiBFのアドレスpendの前の波形合成範囲povlの部分に書き戻す(ステップS123)。   Then, as shown in FIG. 27C, the waveform synthesis range povl obtained in step S122 and the waveform synthesis range povl of the buffer lastq copied and stored when the first packet reception failed are shown in the above-described diagram. The waveform synthesis is performed as described with reference to Fig. 23, and the waveform synthesis result is written back to the portion of the waveform synthesis range povl before the address pend of the pitch buffer PiBF (step S123).

次に、ピッチバッファPiBFから1パケット分の合成音声信号を読み出して、1パケット分の容量のバッファOUTに書き込む(ステップS124)。このとき、1パケット分の音声データのピッチバッファPiBFからの読み出しは、連続2回目の受信失敗の場合であれば、図27(D)に示すように、ピッチバッファPiBFのアドレスpofs(pendよりも波形合成範囲povl分手前のアドレス)から開始し、アドレスpendになったら、このアドレスpendから2音声波形周期前のアドレスpistに飛び、それ以降は、アドレスpendの方向に向かって順次行われる。   Next, a synthesized voice signal for one packet is read from the pitch buffer PiBF and written to the buffer OUT having a capacity for one packet (step S124). At this time, when the voice data for one packet is read from the pitch buffer PiBF in the case of the second consecutive reception failure, as shown in FIG. 27D, the address pofs (pend of the pitch buffer PiBF) (Address before the waveform synthesis range povl). When the address becomes the pend, the address pend jumps to the address pist two voice waveform cycles before, and thereafter, the process is sequentially performed in the direction of the address pend.

連続3回目の受信失敗の場合には、ピッチバッファPiBfにおける上記アドレスpistがアドレスpendから3音声波形周期前のアドレスになる点が異なるだけでその他は、同様である。   In the case of the third consecutive reception failure, the other points are the same except that the address pist in the pitch buffer PiBf becomes an address three speech waveform periods before the address pend.

次に、図27(E)に示すように、バッファOUTの先頭の波形合成範囲分povlのデータと、一時バッファtmpにコピーされた波形合成範囲分povlのデータとについて、前述の図23を用いて説明したようにして波形合成し、当該波形合成結果を、バッファOUTの先頭の波形合成範囲分povlに書き戻す(ステップS125)。そして、このバッファOUTの合成音声信号データを、例えば全体を20%減衰させた後(ステップS126)、履歴バッファHTBFに追加すると共に、データデコード処理部506に出力する(ステップS119)。   Next, as shown in FIG. 27E, the above-described FIG. 23 is used for the data of the waveform synthesis range povl at the head of the buffer OUT and the data of the waveform synthesis range povl copied to the temporary buffer tmp. The waveform synthesis is performed as described above, and the waveform synthesis result is written back to the first waveform synthesis range povl of the buffer OUT (step S125). The synthesized audio signal data in the buffer OUT is attenuated by 20%, for example (step S126), and then added to the history buffer HTBF and output to the data decode processing unit 506 (step S119).

また、ステップS120で、連続してパケットの受信を失敗したのは2〜3回目ではないと判別したときには、連続してパケットの受信を失敗したのは4〜5回目であるか否か判別し(図25のステップS131)、そうであれば、図28に示すように、そのときのピッチバッファPiBFに格納されている音声データのうちの、アドレスpendから3音声波形周期前までの音声データから、1パケット分の音声信号を読み出す(ステップS132)。   Further, when it is determined in step S120 that the packet reception has failed continuously for the second to third times, it is determined whether or not the packet reception has failed continuously for the fourth to fifth times. (Step S131 in FIG. 25), if so, as shown in FIG. 28, from the speech data stored in the pitch buffer PiBF at that time, from speech data from the address pend to three speech waveform periods before An audio signal for one packet is read (step S132).

このとき、1パケット分の音声データのピッチバッファPiBFからの読み出しは、図28に示すように、ピッチバッファPiBFのアドレスpofs(pendよりも波形合成範囲povl分手前のアドレス)から開始し、アドレスpendになったら、このアドレスpendから3音声波形周期前のアドレスpistに飛び、それ以降は、アドレスpendの方向に向かって順次行われる。   At this time, reading of audio data for one packet from the pitch buffer PiBF starts from the address pofs of the pitch buffer PiBF (an address before the waveform synthesis range povl before the pend), as shown in FIG. Then, it jumps from this address “pend” to the address “pist” three cycles before the speech waveform period, and thereafter, it is sequentially performed toward the address “pend”.

次に、ステップS132で読み出した1パケット分の音声データの全体を60%減衰した後(ステップS133)、履歴バッファHTBFに追加すると共に、データデコード処理部506に出力する(ステップS134)。   Next, the entire audio data for one packet read in step S132 is attenuated by 60% (step S133) and then added to the history buffer HTBF and output to the data decoding processing unit 506 (step S134).

また、ステップS131で、連続して受信パケットの受信を失敗したのは、4〜5回ではなく、6回以上であると判別したときには、1パケット分のデータとして全て「0」(無音)を出力バッファOUTに書き込み(ステップS135)、それを履歴バッファHTBFに追加すると共に、データデコード処理部506に出力する(ステップS134)。   If it is determined in step S131 that reception of consecutive received packets has failed six or more times, not four to five times, all “0” (silence) is set as one packet data. Write to the output buffer OUT (step S135), add it to the history buffer HTBF, and output it to the data decoding processing unit 506 (step S134).

上述のようにして、この実施形態では、合成音声信号は、音声波形周期単位で生成して、出力するようにしているので、音声波形は、連続性が保持される。また、この実施形態では、受信パケットの受信を2〜3回連続して失敗したときには、1回目の受信失敗の際に用いた音声波形周期のデータを、そのまま用いずに、ピッチバッファPiBFに格納されている2音声波形周期分の音声データ、3音声波形周期分の音声データをも用いるようにしたことにより、合成音声信号が人工音になってしまうことを防止している。   As described above, in this embodiment, since the synthesized speech signal is generated and output in units of speech waveform periods, the speech waveform maintains continuity. In this embodiment, when reception of a received packet fails two to three times consecutively, the voice waveform cycle data used at the time of the first reception failure is not used as it is, but stored in the pitch buffer PiBF. By using the voice data corresponding to two voice waveform periods and the voice data corresponding to three voice waveform periods, the synthesized voice signal is prevented from becoming an artificial sound.

[音声データの廃棄]
前述したように、バッファ出力データ処理制御部505は、揺らぎ吸収制御部504からの割り込みによる廃棄要求に基づいて、音声波形周期単位の音声データの廃棄処理を行なう。この廃棄処理は、音声データ廃棄処理部5053が行なうものである。
[Discard audio data]
As described above, the buffer output data processing control unit 505 performs voice data discarding processing in units of voice waveform periods based on the discarding request by the interruption from the fluctuation absorption control unit 504. This discarding process is performed by the voice data discarding processing unit 5053.

図29および図30、図31は、この音声波形周期単位の音声データの廃棄処理を説明するためのフローチャートである。また、図32および図33は、このときの廃棄処理の様子を説明するための図である。   FIG. 29, FIG. 30, and FIG. 31 are flowcharts for explaining the voice data discarding process in units of voice waveform periods. FIG. 32 and FIG. 33 are diagrams for explaining the state of the discarding process at this time.

バッファ出力データ処理制御部505では、まず、揺らぎ吸収制御部504からの廃棄要求に含まれる廃棄レングス(データ廃棄のために揺らぎ吸収バッファ502から強制送出されるパケット数に応じたデータ量)を受信し、それをバッファに保持する(ステップS141)。   First, the buffer output data processing control unit 505 receives the discard length included in the discard request from the fluctuation absorption control unit 504 (the amount of data corresponding to the number of packets forcibly transmitted from the fluctuation absorption buffer 502 for data discard). Then, it is held in the buffer (step S141).

次に、揺らぎ吸収バッファ502から送出されてくる音声パケットデータを受信し(ステップS142)、音声波形周期単位の音声データの廃棄処理を行なう(ステップS143)。そして、ステップS141で保持した廃棄レングス分の処理が終了したか否か判別し(ステップS144)、終了していなければ、ステップS142に戻って、ステップS142とステップS143を繰り返し行ない、終了したと判別したときには、この廃棄処理ルーチンを終了する。   Next, the voice packet data transmitted from the fluctuation absorbing buffer 502 is received (step S142), and the voice data is discarded in units of voice waveform periods (step S143). Then, it is determined whether or not the processing for the discard length held in step S141 has been completed (step S144). If not, the process returns to step S142, and steps S142 and S143 are repeated to determine that the process has ended. If so, the discard processing routine is terminated.

次に、ステップS143における音声波形周期単位の音声データの廃棄処理を、図30および図31のフローチャートおよび図32および図33を参照して説明する。図30および図31のフローチャートは、1パケット分ごとに実行されるものである。   Next, the audio data discarding process in units of audio waveform periods in step S143 will be described with reference to the flowcharts of FIGS. 30 and 31 and FIGS. 32 and 33. FIG. The flowcharts of FIGS. 30 and 31 are executed for each packet.

すなわち、先ず、音声データ廃棄処理部では、周期残余データがあるか否か判別する(ステップS151)。ここで、周期残余データは、音声波形周期単位でデータ廃棄を行なったときに、音声波形周期が1パケットよりも長い場合には、1パケット分の音声サンプルデータの廃棄では1音声波形周期分の廃棄とはならず、廃棄しなければならない部分が残るが、当該残った部分を指す。   That is, first, the audio data discard processing unit determines whether there is periodic residual data (step S151). Here, in the case where the voice waveform period is longer than one packet when the data is discarded in units of voice waveform periods, the period remaining data is equivalent to one voice waveform period when discarding voice sample data for one packet. It is not discarded, and there remains a portion that must be discarded, but it refers to the remaining portion.

このステップS151で、周期残余データが「0」であると判別したときには、廃棄カウンタが最大値であるか否か判別する(ステップS152)。ここで、廃棄カウンタは、毎回パケットデータを破棄してしまうと、早送り音声のように不自然な音声となってしまうので、それを避けるために、破棄するパケットの間隔を設定するためのものであり、廃棄カウンタのカウント値が、設定された最大値になったときに、廃棄を実行するようにするものである。この例では、廃棄カウンタの最大値は、例えば「1」に設定されている。なお、揺らぎ吸収制御部504において決定する廃棄パケット数は、設定される廃棄カウンタのカウント値の最大値に応じて決定されるものである。   If it is determined in this step S151 that the period residual data is “0”, it is determined whether or not the discard counter is the maximum value (step S152). Here, the discard counter is for setting the interval of discarded packets in order to avoid unnatural voice like fast-forward voice if packet data is discarded every time. Yes, discarding is executed when the count value of the discard counter reaches a set maximum value. In this example, the maximum value of the discard counter is set to “1”, for example. Note that the number of discarded packets determined by the fluctuation absorption control unit 504 is determined in accordance with the maximum count value of the set discard counter.

ステップS152で、廃棄カウンタのカウント値が最大値になっていると判別したときには、廃棄カウンタのカウント値をリセットして「0」にした後(ステップS153)、音声波形周期を音声波形周期演算部5051から取得する(ステップS154)。   If it is determined in step S152 that the count value of the discard counter has reached the maximum value, the count value of the discard counter is reset to “0” (step S153), and then the speech waveform period is converted to a speech waveform period calculation unit. It acquires from 5051 (step S154).

次に、波形合成のための波形合成範囲データを、履歴バッファHTBFの最後尾の(音声波形周期/4)分に更新しておく(ステップS155)。次に、音声波形周期の値を検知し、パケットサイズである80サンプル分未満か、あるいは、80サンプル分以上であるかを判別する(ステップS156)。   Next, the waveform synthesis range data for waveform synthesis is updated to the last (voice waveform cycle / 4) of the history buffer HTBF (step S155). Next, the value of the voice waveform cycle is detected, and it is determined whether the packet size is less than 80 samples or more than 80 samples (step S156).

ステップS156で、音声波形周期が80サンプル分未満であると判別したときには、受信パケットのデータの先頭から音声波形周期分を削除(廃棄)する(ステップS157)。そして、履歴バッファHTBFの最後のデータと、波形合成する波形合成範囲を算出する(ステップS158)。このとき、(80(1パケット分のサンプル数)−音声波形周期分のサンプル数)が、(音声波形周期/4)分よりも大きいときには、(音声波形周期/4)分を波形合成範囲とし、(音声波形周期/4)分よりも小さいときには、(80−音声波形周期分のサンプル数)分を波形合成範囲とする。   If it is determined in step S156 that the speech waveform period is less than 80 samples, the speech waveform period is deleted (discarded) from the beginning of the data of the received packet (step S157). Then, the last data in the history buffer HTBF and the waveform synthesis range for waveform synthesis are calculated (step S158). At this time, when (80 (number of samples for one packet) −number of samples for voice waveform cycle) is larger than (voice waveform cycle / 4), the waveform synthesis range is set to (voice waveform cycle / 4). , (Speech waveform period / 4), the waveform synthesis range is (80−the number of samples corresponding to the speech waveform period).

次に求めた波形合成範囲の音声データを履歴バッファHTBFから波形合成用バッファにコピーし(ステップS159)、コピーされた波形合成用バッファのデータと、受信パケットのうちの廃棄されずに残った(80−音声波形周期分のサンプル数)分とを、前述と同様にして波形合成する(ステップS160)。   Next, the audio data in the obtained waveform synthesis range is copied from the history buffer HTBF to the waveform synthesis buffer (step S159), and the copied waveform synthesis buffer data and the received packet remain without being discarded ( The waveform is synthesized in the same manner as described above (step S160).

そして、波形合成後の受信パケットのうちの廃棄されずに残った(80−音声波形周期分のサンプル数)分を履歴バッファHTBFに追加すると共に、データデコード処理部506に出力する(ステップS161)。そして、バッファに記憶された廃棄レングスの値から、廃棄した1音声波形周期分を減算する(ステップS162)。そして、この1パケット分の廃棄処理ルーチンを終了する。   Then, the remaining (80−number of samples corresponding to the speech waveform period) remaining in the received packet after waveform synthesis is added to the history buffer HTBF and output to the data decode processing unit 506 (step S161). . Then, the discarded one speech waveform cycle is subtracted from the discard length value stored in the buffer (step S162). Then, the discard processing routine for one packet is completed.

ステップS156で、音声波形周期の値が80以上であると判別したときには、(音声波形周期分のサンプル数−80(1パケット分のサンプル数))を、周期残余データとして保持する(ステップS163)。そして、バッファに記憶された廃棄レングスの値から、廃棄した1音声波形周期分を減算する(ステップS164)。そして、この1パケット分の廃棄処理ルーチンを終了する。   When it is determined in step S156 that the value of the voice waveform period is 80 or more, (number of samples for the voice waveform period−80 (number of samples for one packet)) is held as the remaining period data (step S163). . Then, the discarded one speech waveform period is subtracted from the discard length value stored in the buffer (step S164). Then, the discard processing routine for one packet is completed.

また、ステップS152で、破棄カウンタのカウント値は、最大値ではないと判別したときには、受信パケットは、廃棄対象とはしないので、廃棄カウンタを1だけインクリメントし(ステップS165)、受信パケットを履歴バッファHTBFに追加すると共にデータデコード処理部506に出力するようにする(ステップS166)。そして、この1パケット分の廃棄処理ルーチンを終了する。   If it is determined in step S152 that the count value of the discard counter is not the maximum value, the received packet is not targeted for discarding, so the discard counter is incremented by 1 (step S165), and the received packet is stored in the history buffer. In addition to the HTBF, the data is output to the data decoding processing unit 506 (step S166). Then, the discard processing routine for one packet is completed.

また、ステップS151で、周期残余データが「0」ではないと判別したときには、受信パケットの先頭から周期残余データ分のサンプルを削除(廃棄)する(図31のステップS171)。   If it is determined in step S151 that the period residual data is not “0”, samples corresponding to the period residual data are deleted (discarded) from the head of the received packet (step S171 in FIG. 31).

次に、周期残余分を削除した受信パケットのデータについて、波形合成範囲を算出し(ステップS172)、算出した波形合成範囲の音声データ分を履歴バッファHTBFから波形合成用バッファにコピーし(ステップS173)、コピーされた波形合成用バッファのデータと、受信パケットのうちの廃棄されずに残った(80−周期残余データサンプル数)分とを、前述と同様にして波形合成する(ステップS174)。   Next, a waveform synthesis range is calculated for the received packet data from which the period remainder is deleted (step S172), and the audio data in the calculated waveform synthesis range is copied from the history buffer HTBF to the waveform synthesis buffer (step S173). ) The copied waveform synthesis buffer data and the remaining (80-period residual data sample number) of the received packets that have not been discarded are synthesized in the same manner as described above (step S174).

そして、波形合成後の受信パケットのうちの廃棄されずに残った(80−周期残余データサンプル数)分を履歴バッファHTBFに追加すると共に、データデコード処理部506に出力する(ステップS175)。そして、バッファに記憶された廃棄レングスの値から、廃棄した周期残用データサンプル分を減算する(ステップS176)。そして、周期残余データの値を「0」にした後(ステップS177)、この1パケット分の廃棄処理ルーチンを終了する。   Then, the remaining (80-period remaining data sample number) of the received packets after waveform synthesis that have not been discarded are added to the history buffer HTBF and output to the data decode processing unit 506 (step S175). Then, the discarded period remaining data sample is subtracted from the discard length value stored in the buffer (step S176). Then, after the value of the cycle residual data is set to “0” (step S177), the discard processing routine for one packet is ended.

以上説明した音声データの廃棄処理を図32および図33を参照してさらに説明する。図32は、音声波形周期がパケットサイズ=80サンプルよりも短い場合の廃棄処理を説明するための図である。   The audio data discarding process described above will be further described with reference to FIGS. 32 and 33. FIG. FIG. 32 is a diagram for explaining the discarding process when the voice waveform cycle is shorter than the packet size = 80 samples.

すなわち、図32の例においては、図32(A)に示すように、音声2のパケットの受信処理の後、データ廃棄要求が到来した場合である。このときは、図32(C)に示すように、音声3のパケットの先頭から音声波形周期分の音声データを廃棄する。廃棄されずに残った音声3の部分は、図32(D)に示すように、履歴バッファHTBFに追加される。   That is, in the example of FIG. 32, as shown in FIG. 32A, a data discard request arrives after the reception process of the voice 2 packet. At this time, as shown in FIG. 32C, voice data corresponding to the voice waveform period is discarded from the head of the voice 3 packet. The part of the voice 3 remaining without being discarded is added to the history buffer HTBF as shown in FIG.

このとき、図32(B)と図32(C)とから分かるように、廃棄されたのが、音声波形周期分であるので、音声2と廃棄されずに残った音声3とは、音声波形周期でみると連続したものとなり、しかも、音声2と廃棄されずに残った音声3との間で波形合成処理がなされることにより、波形は、滑らかに連続するものとなる。   At this time, as can be seen from FIGS. 32 (B) and 32 (C), since it is the speech waveform period that has been discarded, the speech 2 and the speech 3 that remains without being discarded are the speech waveform. When viewed in terms of the period, the waveform is continuous, and the waveform is smoothly continuous by performing the waveform synthesis process between the speech 2 and the speech 3 remaining without being discarded.

そして、音声3のパケットについてデータ廃棄がなされたときに廃棄カウンタがリセットされるため、音声4のパケットは、データ廃棄の対象とはならず、図32(D)に示すように、そのまま履歴バッファHTBFに追加される。そして、図32(C)に示すように、次の音声5のパケットについて、音声3のパケットと同様の処理がなされる。以下、廃棄レングス分の処理が終了するまで、以上の処理が繰り返し行われる。   Since the discard counter is reset when data discard is performed for the voice 3 packet, the voice 4 packet is not subject to data discard, and as shown in FIG. Added to HTBF. Then, as shown in FIG. 32C, the same processing as that for the voice 3 packet is performed on the next voice 5 packet. Thereafter, the above processing is repeatedly performed until the processing for the discard length is completed.

次に、図33は、音声波形周期がパケットサイズ=80サンプル以上である場合の廃棄処理を説明するための図である。   Next, FIG. 33 is a diagram for explaining the discarding process when the voice waveform period is packet size = 80 samples or more.

すなわち、図33の例においても、図33(A)に示すように、音声2のパケットの受信処理の後、データ廃棄要求が到来した場合である。このときは、図33(C)に示すように、音声波形周期がパケットサイズ以上であるので、音声3のパケット全部の音声データを廃棄すると共に、次の音声4のパケットの先頭から、周期残余データ分を廃棄するようにする。   That is, also in the example of FIG. 33, as shown in FIG. 33A, a data discard request arrives after the reception process of the voice 2 packet. At this time, as shown in FIG. 33C, since the voice waveform cycle is equal to or larger than the packet size, the voice data of the whole voice 3 packet is discarded and the remaining period from the beginning of the next voice 4 packet. Discard the data.

そして、廃棄されずに残った音声4の部分は、図33(D)に示すように、履歴バッファHTBFに追加される。この場合、当該音声4の部分が音声2の後に追加されることになるが、音声波形周期単位の破棄であるので、波形の連続性が保持されると共に、音声2と廃棄されずに残った音声4との間で波形合成処理がなされることにより、波形は、滑らかに連続するものとなる。   The portion of the voice 4 that remains without being discarded is added to the history buffer HTBF, as shown in FIG. In this case, the portion of the voice 4 is added after the voice 2, but since the voice waveform cycle unit is discarded, the continuity of the waveform is maintained and the voice 2 remains without being discarded. By performing the waveform synthesis process with the voice 4, the waveform is smoothly continuous.

そして、以上の処理が廃棄レングス分の処理が終了するまで、繰り返し行われる。   The above processing is repeated until the processing for the discard length is completed.

以上説明したように、廃棄レングスが複数個の音声パケット分となる場合であっても、それら全ての音声パケットのデータが廃棄されるのではなく、音声波形周期単位の廃棄であるので、再生音は、ノイズが少なく、かつ、聞きやすいものとなる。   As described above, even when the discard length is for a plurality of voice packets, the data of all the voice packets is not discarded, but is discarded in units of voice waveform periods. Is less noise and easier to hear.

[その他の変形例]
以上説明した実施形態は、揺らぎ吸収バッファのバッファサイズを、発生する揺らぎに応じて動的に変更制御するようにする場合であるが、揺らぎ吸収バッファのバッファサイズが固定であって、揺らぎ吸収バッファに蓄積される音声パケット数が最大蓄積パケット数を越えたときには、所定数の音声パケット分のデータを廃棄するようにする場合にも、この発明は適用できる。
[Other variations]
In the embodiment described above, the buffer size of the fluctuation absorbing buffer is dynamically changed and controlled according to the fluctuation that occurs. However, the buffer size of the fluctuation absorbing buffer is fixed, and the fluctuation absorbing buffer The present invention can also be applied to a case where data for a predetermined number of voice packets is discarded when the number of voice packets stored in exceeds the maximum number of packets stored.

また、揺らぎ吸収バッファのバッファサイズが固定であって、揺らぎ吸収バッファに、開始蓄積パケット数の音声パケットが蓄積されてから、揺らぎ吸収バッファからの音声パケットの読み出しを開始し、揺らぎ吸収バッファに蓄積される音声パケット数が開始蓄積パケット数よりも少なくなり、揺らぎ吸収バッファからリアルタイムで再生されるべき音声信号が読み出されなくなったときには、合成音声信号をリアルタイムで再生する音声信号とするようにする場合にも、この発明は適用できる。   In addition, the buffer size of the fluctuation absorbing buffer is fixed, and after the number of voice packets starting to accumulate is accumulated in the fluctuation absorbing buffer, reading of the voice packets from the fluctuation absorbing buffer is started and accumulated in the fluctuation absorbing buffer. When the number of voice packets to be played is smaller than the number of start accumulation packets and the voice signal to be reproduced in real time is not read from the fluctuation absorbing buffer, the synthesized voice signal is made to be a voice signal to be reproduced in real time. Even in this case, the present invention can be applied.

また、この発明は、LANを通じてリアルタイム再生が必要なデータを伝送する際において、LAN上で発生する揺らぎについて適用可能であるので、上述の実施形態で説明したVoIP電話システムにのみ適用される場合のみに、この発明が限られるものではないことは言うまでもない。   In addition, since the present invention can be applied to fluctuations occurring on the LAN when transmitting data that requires real-time reproduction through the LAN, only when the present invention is applied only to the VoIP telephone system described in the above embodiment. Needless to say, the present invention is not limited.

この発明の適用例としてのVoIP電話システムの構成例を示す図である。It is a figure which shows the structural example of the VoIP telephone system as an example of application of this invention. 図1の例のVoIP電話システムを構成するゲートキーパーの構成例を示すブロック図である。It is a block diagram which shows the structural example of the gatekeeper which comprises the VoIP telephone system of the example of FIG. 図1の例のVOIP電話システムを構成する電話端末の構成例を示すブロック図である。It is a block diagram which shows the structural example of the telephone terminal which comprises the VOIP telephone system of the example of FIG. 図1の例のVOIP電話システムを構成するゲートウエイの構成例を示すブロック図である。It is a block diagram which shows the structural example of the gateway which comprises the VOIP telephone system of the example of FIG. この発明の実施の形態における揺らぎ吸収バッファの構成を説明するための図である。It is a figure for demonstrating the structure of the fluctuation | variation absorption buffer in embodiment of this invention. この発明の実施の形態における揺らぎ吸収制御装置の構成を説明するためのブロック図である。It is a block diagram for demonstrating the structure of the fluctuation absorption control apparatus in embodiment of this invention. この発明の実施の形態における揺らぎ吸収制御方法の一部を説明するためのフローチャートである。It is a flowchart for demonstrating a part of fluctuation absorption control method in embodiment of this invention. この発明の実施の形態における揺らぎ吸収制御方法を説明するためのフローチャートの一部である。It is a part of flowchart for demonstrating the fluctuation absorption control method in embodiment of this invention. この発明の実施の形態における揺らぎ吸収制御方法を説明するためのフローチャートの一部である。It is a part of flowchart for demonstrating the fluctuation absorption control method in embodiment of this invention. この発明の実施の形態が適用された揺らぎ吸収バッファにおける蓄積パケットの変化およびバッファサイズの変更制御を説明するための図である。It is a figure for demonstrating the change control of the accumulation | storage packet in the fluctuation absorption buffer to which embodiment of this invention was applied, and change of a buffer size. この発明の実施の形態が適用された揺らぎ吸収バッファにおける蓄積パケットの変化およびバッファサイズの変更制御を説明するための図である。It is a figure for demonstrating the change control of the accumulation | storage packet in the fluctuation absorption buffer to which embodiment of this invention was applied, and change of a buffer size. この発明の実施の形態が適用された揺らぎ吸収バッファにおける蓄積パケットの変化およびバッファサイズの変更制御を説明するための図である。It is a figure for demonstrating the change control of the accumulation | storage packet in the fluctuation absorption buffer to which embodiment of this invention was applied, and change of a buffer size. この発明の実施の形態における揺らぎ吸収制御装置の要部の構成を説明するためのブロック図である。It is a block diagram for demonstrating the structure of the principal part of the fluctuation absorption control apparatus in embodiment of this invention. この発明の実施の形態における音声波形周期算出処理を説明するための図である。It is a figure for demonstrating the audio | voice waveform period calculation process in embodiment of this invention. この発明の実施の形態における音声波形周期算出処理を説明するための図である。It is a figure for demonstrating the audio | voice waveform period calculation process in embodiment of this invention. この発明の実施の形態における音声波形周期算出処理を説明するためのフローチャートである。It is a flowchart for demonstrating the audio | voice waveform period calculation process in embodiment of this invention. この発明の実施の形態の揺らぎ吸収制御方法を説明するためのフローチャートである。It is a flowchart for demonstrating the fluctuation absorption control method of embodiment of this invention. この発明の実施の形態の揺らぎ吸収制御方法を説明するためのフローチャートである。It is a flowchart for demonstrating the fluctuation absorption control method of embodiment of this invention. この発明の実施の形態の揺らぎ吸収制御方法を説明するためのフローチャートである。It is a flowchart for demonstrating the fluctuation absorption control method of embodiment of this invention. この発明の実施の形態の揺らぎ吸収制御方法におけるパケットデータの処理手順を説明するための図である。It is a figure for demonstrating the process sequence of the packet data in the fluctuation absorption control method of embodiment of this invention. この発明の実施の形態の揺らぎ吸収制御方法におけるパケットデータの処理手順を説明するための図である。It is a figure for demonstrating the process sequence of the packet data in the fluctuation absorption control method of embodiment of this invention. この発明の実施の形態の揺らぎ吸収制御方法におけるパケットデータの処理手順を説明するための図である。It is a figure for demonstrating the process sequence of the packet data in the fluctuation absorption control method of embodiment of this invention. この発明の実施の形態の揺らぎ吸収制御方法における波形合成処理を説明するための図である。It is a figure for demonstrating the waveform synthesis process in the fluctuation absorption control method of embodiment of this invention. この発明の実施の形態の揺らぎ吸収制御方法を説明するためのフローチャートの一部である。It is a part of flowchart for demonstrating the fluctuation absorption control method of embodiment of this invention. この発明の実施の形態の揺らぎ吸収制御方法を説明するためのフローチャートの一部である。It is a part of flowchart for demonstrating the fluctuation absorption control method of embodiment of this invention. この発明の実施の形態の揺らぎ吸収制御方法におけるパケットデータの処理手順を説明するための図である。It is a figure for demonstrating the process sequence of the packet data in the fluctuation absorption control method of embodiment of this invention. この発明の実施の形態の揺らぎ吸収制御方法におけるパケットデータの処理手順を説明するための図である。It is a figure for demonstrating the process sequence of the packet data in the fluctuation absorption control method of embodiment of this invention. この発明の実施の形態の揺らぎ吸収制御方法におけるパケットデータの処理手順を説明するための図である。It is a figure for demonstrating the process sequence of the packet data in the fluctuation absorption control method of embodiment of this invention. この発明の実施の形態の揺らぎ吸収制御方法を説明するためのフローチャートである。It is a flowchart for demonstrating the fluctuation absorption control method of embodiment of this invention. この発明の実施の形態の揺らぎ吸収制御方法を説明するためのフローチャートの一部である。It is a part of flowchart for demonstrating the fluctuation absorption control method of embodiment of this invention. この発明の実施の形態の揺らぎ吸収制御方法を説明するためのフローチャートの一部である。It is a part of flowchart for demonstrating the fluctuation absorption control method of embodiment of this invention. この発明の実施の形態の揺らぎ吸収制御方法におけるパケットデータの処理手順を説明するための図である。It is a figure for demonstrating the process sequence of the packet data in the fluctuation absorption control method of embodiment of this invention. この発明の実施の形態の揺らぎ吸収制御方法におけるパケットデータの処理手順を説明するための図である。It is a figure for demonstrating the process sequence of the packet data in the fluctuation absorption control method of embodiment of this invention. 従来の揺らぎ吸収制御方法を説明するためのシーケンス図である。It is a sequence diagram for demonstrating the conventional fluctuation absorption control method. 従来の揺らぎ吸収制御方法を説明するための図である。It is a figure for demonstrating the conventional fluctuation absorption control method. 従来の揺らぎ吸収制御方法を説明するためのフローチャートである。It is a flowchart for demonstrating the conventional fluctuation absorption control method.

符号の説明Explanation of symbols

1 ゲートキーパー
2 電話端末
3 IPネットワークを構成するLAN
4 ゲートウエイ
210,410 CPU
221、417 揺らぎ吸収バッファを構成するRTP受信バッファ
502 揺らぎ吸収バッファ
503 揺らぎ検出部
504 揺らぎ吸収制御部
505 バッファ出力データ処理制御部
506 データデコード処理部
5051 音声波形周期演算部
5052 音声データ合成処理部
5053 音声データ廃棄処理部
5054 処理判断部
1 Gatekeeper 2 Telephone terminal 3 LAN constituting the IP network
4 Gateway 210, 410 CPU
221 and 417 RTP reception buffer 502 constituting the fluctuation absorbing buffer Fluctuation absorbing buffer 503 Fluctuation detecting section 504 Fluctuation absorbing control section 505 Buffer output data processing control section 506 Data decoding processing section 5051 Voice waveform period computing section 5052 Voice data synthesis processing section 5053 Audio data discard processing unit 5054 processing determination unit

Claims (7)

リアルタイムで再生されるべき音声信号が所定時間長分毎にパケット化されて順次に伝送されてくる音声パケットを、揺らぎ吸収バッファを通じて受信し、伝送系において発生する前記音声パケットの到着タイミングの揺らぎを、前記揺らぎ吸収バッファにより制御する方法であって、
受信開始時に、前記揺らぎ吸収バッファに、開始蓄積パケット数の音声パケットが蓄積されてから、前記揺らぎ吸収バッファからの前記音声パケットの読み出しを開始し、前記揺らぎ吸収バッファに蓄積される音声パケット数が最大蓄積パケット数を越えたときには、所定数の音声パケット分のデータを廃棄するようにする音声パケットの揺らぎ吸収制御方法において、
前記揺らぎ吸収バッファに蓄積されている音声パケットのデータについて、音声波形周期を検出しておき、前記所定数の音声パケット分のデータを廃棄する際には、前記検出された音声波形周期の単位で廃棄を行なうことにより、音声波形の連続性を保持するようにした
ことを特徴とする音声パケットの揺らぎ吸収制御方法。
The voice signal that is to be reproduced in real time is packetized every predetermined time length and is sequentially transmitted through the fluctuation absorbing buffer, and fluctuation of arrival timing of the voice packet generated in the transmission system is received. , A method of controlling by the fluctuation absorbing buffer,
At the start of reception, after the number of voice packets stored in the fluctuation absorbing buffer is accumulated in the fluctuation absorbing buffer, reading of the voice packet from the fluctuation absorbing buffer is started, and the number of voice packets accumulated in the fluctuation absorbing buffer is In the voice packet fluctuation absorption control method that discards data for a predetermined number of voice packets when the maximum number of accumulated packets is exceeded,
For voice packet data stored in the fluctuation absorbing buffer, a voice waveform period is detected, and when discarding the data for the predetermined number of voice packets, the detected voice waveform period is used as a unit. A voice packet fluctuation absorption control method characterized in that the continuity of a voice waveform is maintained by discarding.
リアルタイムで再生されるべき音声信号が所定時間長分毎にパケット化されて順次に伝送されてくる音声パケットを、揺らぎ吸収バッファを通じて受信し、伝送系において発生する前記音声パケットの到着タイミングの揺らぎを、前記揺らぎ吸収バッファにより制御する方法であって、
受信開始時に、前記揺らぎ吸収バッファに、開始蓄積パケット数の音声パケットが蓄積されてから、前記揺らぎ吸収バッファからの前記音声パケットの読み出しを開始し、前記揺らぎ吸収バッファに蓄積される音声パケット数が前記開始蓄積パケット数よりも少なくなり、前記揺らぎ吸収バッファから前記リアルタイムで再生されるべき音声信号が読み出されなくなったときには、合成音声信号を前記リアルタイムで再生する音声信号とするようにする音声パケットの揺らぎ吸収制御方法において、
前記揺らぎ吸収バッファに蓄積されている音声パケットのデータについて、音声波形周期を検出しておき、前記合成音声信号は、前記揺らぎ吸収バッファに蓄積されている音声パケットのデータを用いて、前記検出された音声波形周期の単位で生成することにより、音声波形の連続性を保持するようにした
ことを特徴とする音声パケットの揺らぎ吸収制御方法。
The voice signal that is to be reproduced in real time is packetized every predetermined time length and is sequentially transmitted through the fluctuation absorbing buffer, and fluctuation of arrival timing of the voice packet generated in the transmission system is received. , A method of controlling by the fluctuation absorbing buffer,
At the start of reception, after the number of voice packets stored in the fluctuation absorbing buffer is accumulated in the fluctuation absorbing buffer, reading of the voice packet from the fluctuation absorbing buffer is started, and the number of voice packets accumulated in the fluctuation absorbing buffer is An audio packet for reducing a synthesized audio signal to be an audio signal to be reproduced in real time when the audio signal to be reproduced in real time is no longer read from the fluctuation absorbing buffer when the number is less than the start accumulation packet number In the fluctuation absorption control method,
A voice waveform period is detected for the voice packet data stored in the fluctuation absorbing buffer, and the synthesized voice signal is detected using the voice packet data stored in the fluctuation absorbing buffer. The voice packet fluctuation absorption control method is characterized in that the continuity of the voice waveform is maintained by generating the voice waveform period.
請求項1または請求項2に記載の音声パケットの揺らぎ吸収制御方法において、
前記伝送系で発生する前記揺らぎの量の増減に応じて前記開始蓄積パケット数および前記最大蓄積パケット数を動的に変更することにより、前記揺らぎを吸収するようにする
ことを特徴とする音声パケットの揺らぎ吸収制御方法。
In the voice packet fluctuation absorption control method according to claim 1 or 2,
A voice packet characterized in that the fluctuation is absorbed by dynamically changing the number of start accumulation packets and the maximum number of accumulation packets in accordance with an increase or decrease in the amount of fluctuation occurring in the transmission system. Fluctuation absorption control method.
請求項1に記載の音声パケットの揺らぎ吸収制御方法において、
前記揺らぎ量が、そのときの前記開始蓄積パケット数より低い値で安定している場合に、前記開始蓄積パケット数および前記最大蓄積パケット数を、そのときの値よりも少ない値に変更すると共に、前記変更に伴って前記揺らぎ吸収バッファから溢れるパケット数分の音声データを、前記音声波形周期の単位で廃棄する
ことを特徴とする揺らぎ吸収制御方法。
In the voice packet fluctuation absorption control method according to claim 1,
When the fluctuation amount is stable at a value lower than the starting accumulated packet number at that time, the starting accumulated packet number and the maximum accumulated packet number are changed to a value smaller than the value at that time, The fluctuation absorption control method, wherein voice data corresponding to the number of packets overflowing from the fluctuation absorption buffer in accordance with the change is discarded in units of the voice waveform period.
請求項1に記載の音声パケットの揺らぎ吸収制御方法において、
前記音声波形周期単位の廃棄は、N個(N≧1)の音声パケットごとに、行なうようにしたことを特徴とする揺らぎ吸収制御方法。
In the voice packet fluctuation absorption control method according to claim 1,
The fluctuation absorption control method according to claim 1, wherein the discarding of the voice waveform period unit is performed every N (N ≧ 1) voice packets.
請求項1に記載の音声パケットの揺らぎ吸収制御方法において、
前記音声波形周期単位で音声データの廃棄を行なった前後のデータのつなぎ目においては、波形合成処理を行なうことを特徴とする揺らぎ吸収制御方法。
In the voice packet fluctuation absorption control method according to claim 1,
A fluctuation absorption control method comprising performing waveform synthesis processing at a joint between data before and after discarding voice data in units of the voice waveform period.
請求項2に記載の音声パケットの揺らぎ吸収制御方法において、
前記合成音声信号は、その前後のデータと波形合成処理を行なうことを特徴とする揺らぎ吸収制御方法。
In the voice packet fluctuation absorption control method according to claim 2,
A fluctuation absorption control method, wherein the synthesized voice signal is subjected to waveform synthesis processing with data before and after the synthesized voice signal.
JP2004135437A 2004-04-30 2004-04-30 Fluctuation absorption control method of voice packet Expired - Fee Related JP4232030B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004135437A JP4232030B2 (en) 2004-04-30 2004-04-30 Fluctuation absorption control method of voice packet

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004135437A JP4232030B2 (en) 2004-04-30 2004-04-30 Fluctuation absorption control method of voice packet

Publications (2)

Publication Number Publication Date
JP2005318379A JP2005318379A (en) 2005-11-10
JP4232030B2 true JP4232030B2 (en) 2009-03-04

Family

ID=35445331

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004135437A Expired - Fee Related JP4232030B2 (en) 2004-04-30 2004-04-30 Fluctuation absorption control method of voice packet

Country Status (1)

Country Link
JP (1) JP4232030B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4706593B2 (en) * 2006-08-15 2011-06-22 沖電気工業株式会社 Packet signal receiver
JP4730259B2 (en) * 2006-08-29 2011-07-20 三菱電機株式会社 Buffer control device and buffer control method
JP6919261B2 (en) 2017-03-24 2021-08-18 ヤマハ株式会社 Sound data processing device, sound data processing method and program

Also Published As

Publication number Publication date
JP2005318379A (en) 2005-11-10

Similar Documents

Publication Publication Date Title
KR100501324B1 (en) Call Routing Method based on MOS prediction value
US7773511B2 (en) Generic on-chip homing and resident, real-time bit exact tests
US7424026B2 (en) Method and apparatus providing continuous adaptive control of voice packet buffer at receiver terminal
JP3874112B2 (en) Method and apparatus for controlling fluctuation absorbing buffer
EP2140637B1 (en) Method of transmitting data in a communication system
JP2007511939A5 (en)
JP4744444B2 (en) STREAM DATA RECEIVING / REPRODUCING DEVICE, COMMUNICATION SYSTEM, AND STREAM DATA RECEIVING / REPRODUCING METHOD
JP5012009B2 (en) Transmission quality measuring device, transmission quality measuring method, and transmission quality measuring system
JP4232030B2 (en) Fluctuation absorption control method of voice packet
JP4272033B2 (en) Data playback device
JP2002185440A (en) Method and system for communication as well as recording medium with recorded communication program
US20090132244A1 (en) METHOD AND APPARATUS FOR CONTROLLING A VOICE OVER INTERNET PROTOCOL (VoIP) DECODER WITH AN ADAPTIVE JITTER BUFFER
JP3397191B2 (en) Delay fluctuation absorbing device, delay fluctuation absorbing method
JP2002271391A (en) Dynamic jitter buffer control method
JP3833490B2 (en) Apparatus and method for absorbing delay jitter generated in data transmission
JP2001168883A (en) Method for adjusting time stamp offset and packet- transmitting device using the same
JP2006135657A (en) Device and method for receiving data
US20050169245A1 (en) Arrangement and a method for handling an audio signal
JP2005266411A (en) Speech compressing method and telephone set
KR100847168B1 (en) Apparatus and method for rearranging packet sequence for processing jitter in network based on udp/rtp
JP3172774B2 (en) Variable silence suppression controller for voice
JP2005080036A (en) Streaming information transmission device and transmission method
JP4947295B2 (en) Transmission / reception device, data amount adjustment method, data amount adjustment program, and communication system
JPH118654A (en) Network system and data repeater
JP2005300765A (en) Voice transmission device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061030

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081023

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20081112

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081125

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111219

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4232030

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111219

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121219

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131219

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees