JP4269933B2 - IP telephone dynamic buffer control method and apparatus - Google Patents
IP telephone dynamic buffer control method and apparatus Download PDFInfo
- Publication number
- JP4269933B2 JP4269933B2 JP2003425993A JP2003425993A JP4269933B2 JP 4269933 B2 JP4269933 B2 JP 4269933B2 JP 2003425993 A JP2003425993 A JP 2003425993A JP 2003425993 A JP2003425993 A JP 2003425993A JP 4269933 B2 JP4269933 B2 JP 4269933B2
- Authority
- JP
- Japan
- Prior art keywords
- buffer
- received
- seq
- packet
- reception
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Description
本発明は、IP(インターネット・プロトコル)網を介して実行される音声通信に関する。より具体的には、IP電話のバッファをダイナミックに制御して、高品質の通話を可能にする方法と装置を提供せんとするものである。 The present invention relates to voice communication performed over an IP (Internet Protocol) network. More specifically, the present invention intends to provide a method and apparatus for dynamically controlling a buffer of an IP phone to enable high-quality calls.
IP(インターネット・プロトコル)網を介して実行される音声パケット伝送(以下、IP電話という)では、ネットワークにおける音声パケット(以下、パケットと略す)の伝搬時間のゆらぎが、音声通話品質に大きな影響を与えるため、受信側端末のバッファにおいてゆらぎを吸収させることで、一定の音声通話品質を確保している。 In voice packet transmission (hereinafter referred to as IP telephone) performed over an IP (Internet Protocol) network, fluctuations in the propagation time of voice packets (hereinafter referred to as packets) in the network have a significant effect on voice call quality. Therefore, a certain voice call quality is ensured by absorbing fluctuations in the buffer of the receiving terminal.
受信端末のバッファサイズを一定に保つ固定バッファ制御方式や、RTP(Real Time Protocol)のタイム・スタンプを利用してバッファサイズを動的に変化させるダイナミック・バッファ制御方式などがある。これらの受信端末では、IP網からパケットが到着すると、一旦バッファに格納し、正しい順序に整列してから音声を再生する仕組みになっている。しかしながら、IP網が輻輳してパケットロスが発生したり、パケットの遅延がゆらいだりすると、パケットをバッファに適正に受信することが困難になる。 There are a fixed buffer control system that keeps the buffer size of the receiving terminal constant, and a dynamic buffer control system that dynamically changes the buffer size using a RTP (Real Time Protocol) time stamp. In these receiving terminals, when a packet arrives from the IP network, it is temporarily stored in a buffer and arranged in the correct order to reproduce the voice. However, when the IP network is congested and packet loss occurs or the packet delay fluctuates, it becomes difficult to properly receive the packet in the buffer.
RTP(Real Time Protocol)のタイム・スタンプを利用したダイナミック・バッファ制御方式では、パケットの受信間隔のゆらぎ(以下、ジッタという)の情報に基づいて、突発的なジッタの変動にも瞬時に追随するようなバッファの増減処理が行われている。しかし、バッファの増減処理自体が音声通話品質低下の原因になるため、このようなバッファ増減処理の回数が多発するバッファ制御は、良好な通話品質を維持するためには不適切である。 In the dynamic buffer control method using a RTP (Real Time Protocol) time stamp, an abrupt change in jitter is instantaneously tracked based on information on fluctuations in packet reception intervals (hereinafter referred to as jitter). Such buffer increase / decrease processing is performed. However, since the buffer increase / decrease process itself causes a decrease in voice call quality, such buffer control in which the number of buffer increase / decrease processes frequently occurs is inappropriate for maintaining good call quality.
図23は、従来のバッファ部の正常受信時のバッファ動作を示している。(a)には、受信パケットの順序を示すSeq No.と、その受信タイミングが太線で示されている。(b)には、バッファ部に含まれたA〜Eの、たとえばバッファ・サイズ5のバッファ(FIFO:First In First Out)と、格納しているSeq No.が示されている。(c)には、音声データが出力されるタイミングとSeq No.が示されている。(d)には、音声の受信端末における周期T(例えば、10ms)の受信クロックが示されている。バッファ部では、受信したパケットのSeq No.に従って、正しい順序に並びかえて格納する。 FIG. 23 shows a buffer operation during normal reception of the conventional buffer unit. In (a), a Seq No. indicating the order of received packets and the reception timing thereof are indicated by bold lines. In (b), for example, a buffer having a buffer size of 5 (FIFO: First In First Out) of A to E included in the buffer unit and the stored Seq No. are shown. (C) shows the timing and Seq No. at which audio data is output. In (d), a reception clock having a period T (for example, 10 ms) in the voice receiving terminal is shown. The buffer unit stores the packets in the correct order according to the Seq No. of the received packet.
(a)の受信パケットと(d)の受信クロックのタイミングは、一致しており、受信パケットの受信順序に乱れ(前後に入れ代わる)もない(IP網における伝搬時間のゆらぎが許容範囲内である)。t=0においてSeq No.1の受信パケットを受けると、それを直ちにバッファAに格納する。同様に、t=Tにおいて、Seq No.2の受信パケットを受けると、それを直ちにバッファAに格納し、Seq No.1の音声データはバッファBにシフトされる。この格納およびシフト動作は、周期Tにくらべて十分に短時間(例えば、10ns)のうちに実行される。この動作を繰り返してt=4Tになると、5個のバッファA〜Eは満杯になる。その直後に、Seq No.1の音声データを出力する。以後、t=5TにおいてSeq No.6の受信パケットを受けると、その直後に、Seq No.2の音声データを出力する。 The timing of the received packet in (a) and the timing of the received clock in (d) are the same, and the reception order of the received packets is not disturbed (replaced before and after) (the fluctuation of the propagation time in the IP network is within the allowable range). ). When a received packet of Seq No. 1 is received at t = 0, it is immediately stored in the buffer A. Similarly, when a received packet of Seq No. 2 is received at t = T, it is immediately stored in buffer A, and the audio data of Seq No. 1 is shifted to buffer B. This storing and shifting operation is executed within a sufficiently short time (for example, 10 ns) compared to the period T. When this operation is repeated until t = 4T, the five buffers A to E become full. Immediately after that, Seq No. 1 audio data is output. Thereafter, when a received packet of Seq No. 6 is received at t = 5T, immediately after that, the audio data of Seq No. 2 is output.
図24は、従来のバッファ部のオーバーラン発生時のバッファ動作を示している。(a),(b),(c),(d)に示した記号は、図23に示したものに同じである。ただし、(b)のバッファに記された(xx)は、xxを格納するための未使用バッファであることを意味する。オーバーラン(又はアンダーラン)傾向の発生は、IP網のゆらぎの影響が十分に小さく無視できる場合には、送信端末のクロック周期が受信端末のクロック周期Tよりも若干短い(又は長い)場合に発生する。実際には、両クロック周期が長期間にわたり完全に一致することはあり得ない。図24では理解を容易にするために、(a)の受信パケットの周期は、(d)の受信クロック周期Tより誇張して短く表している。 FIG. 24 shows a buffer operation when an overrun of the conventional buffer unit occurs. The symbols shown in (a), (b), (c), and (d) are the same as those shown in FIG. However, (xx) written in the buffer (b) means an unused buffer for storing xx. The occurrence of the overrun (or underrun) tendency occurs when the influence of the fluctuation of the IP network is sufficiently small and can be ignored, when the clock period of the transmitting terminal is slightly shorter (or longer) than the clock period T of the receiving terminal. appear. In practice, it is impossible for both clock periods to coincide completely over a long period of time. In FIG. 24, for easy understanding, the period of the received packet (a) is exaggerated and shorter than the reception clock period T of (d).
図24(a)の受信パケットSeq No.9を受信する直前までは(b)のバッファA(B〜E)には、Seq No.8(7〜4)が格納されていたが、t=8Tでシフトされて、バッファAにはSeq No.9を書き込み可能となる。そこで受信パケットSeq No.9をt=8Tのタイミングで受けると、(b)のバッファAに書き込まれ(c)にSeq No.5の音声データ出力が得られる。(a)の受信パケットはオーバーラン傾向(受信パケットの時間間隔がTよりも小)にあり、そのSeq No.10の到来時点では、未だバッファAに受信パケットSeq No.10を書き込める状態になっていない。そのために、受信パケットSeq No.10は破棄される。 Until just before receiving the received packet Seq No. 9 in FIG. 24A, Seq No. 8 (7 to 4) is stored in the buffer A (B to E) in (b), but t = Shifted by 8T, Seq No. 9 can be written to buffer A. Therefore, when the received packet Seq No. 9 is received at the timing of t = 8T, it is written into the buffer A in (b) and the audio data output of Seq No. 5 is obtained in (c). The received packet in (a) has an overrun tendency (the time interval of the received packet is smaller than T), and when the Seq No. 10 arrives, the received packet Seq No. 10 can still be written to the buffer A. Not. Therefore, the received packet Seq No. 10 is discarded.
t=9Tのタイミングで(b)のバッファAは受信パケットSeq No.10を書き込み可能となるが、未使用のままとなり、Seq No.9〜6のデータはシフトされ、(c)にはSeq No.6の音声データ出力が得られる。受信パケットSeq No.11が到来した時点(9T<t<10T)では、バッファAは受信パケットSeq No.10を書き込み可能としており、Seq No.11は書き込みて゛きずに破棄され未使用のままとなる。同様にして、t=13Tになると、バッファA〜Eはすべて未使用のままとなり、(c)にはSeq No.10の音声データは得られず無音となる。したがって、t=13T以後は無音状態が継続する。このように、一度オーバーランが発生すると、その後の全てのパケットに対して受信不可能となる。 At time t = 9T, the buffer A in (b) can write the received packet Seq No. 10, but remains unused, the data in Seq No. 9 to 6 is shifted, and (c) contains Seq. No.6 audio data output is obtained. When the received packet Seq No. 11 arrives (9T <t <10T), the buffer A can write the received packet Seq No. 10, and the Seq No. 11 is written and discarded without being left unused. Become. Similarly, when t = 13T, all the buffers A to E remain unused, and the audio data of Seq No. 10 is not obtained in (c), and the sound becomes silent. Accordingly, the silent state continues after t = 13T. Thus, once an overrun occurs, it cannot be received for all subsequent packets.
この受信不可能な事態を回避するためには、未来(バッファAの上)側にバッファを付加すればよい。しかしながら、オーバーラン傾向が続くならば、更にバッファを未来側に付加しなければならなくなる。すなわち、オーバーラン傾向の半永久的な継続に対処するためには、最初から膨大な数のバッファを未来側に設けておくか、未来側にバッファを付加し続けなければならない。ただし、オーバーランの途中でパケットに大きな遅延が発生した場合には、受信機能を一時的に回復することもあり得るが、それは一時的な回復にすぎず、オーバーラン対策とはなり得ない。 In order to avoid this unreceivable situation, a buffer may be added to the future (above buffer A). However, if the overrun trend continues, more buffers must be added to the future side. That is, in order to cope with the semi-permanent continuation of the overrun tendency, it is necessary to provide a huge number of buffers on the future side from the beginning or to continue adding buffers to the future side. However, when a large delay occurs in the packet in the middle of overrun, the reception function may be temporarily recovered, but this is only temporary recovery and cannot be a countermeasure against overrun.
図25は、従来のバッファ部のアンダーラン発生時のバッファ動作を示している。(a),(b),(c),(d)に示した記号は、図23および24に示したものに同じである。図25(a)の受信パケットSeq No.9をt=8Tのタイミングで受けると、(b)のバッファAに書き込まれ(c)にSeq No.5の音声データ出力が得られる。t=9Tのタイミングではシフトされ、バッファB〜EにSeq No.9〜6が格納され、バッファAはSeq No.10の到来を待つ未使用バッファとなり、(c)にはSeq No.6の音声データ出力が得られる。(a)の受信パケットはアンダーラン傾向にあり、そのSeq No.10の到来時点では、すでにバッファAは受信パケットSeq No.10を書き込める状態になっており、Seq No.10はただちに書き込まれる(書き込まれた状態は図示せず)。 FIG. 25 shows a buffer operation when an underrun occurs in the conventional buffer unit. The symbols shown in (a), (b), (c), and (d) are the same as those shown in FIGS. When the received packet Seq No. 9 in FIG. 25A is received at the timing of t = 8T, it is written in the buffer A in (b), and the audio data output of Seq No. 5 is obtained in (c). Shifted at the timing of t = 9T, Seq Nos. 9 to 6 are stored in buffers B to E, buffer A becomes an unused buffer waiting for the arrival of Seq No. 10, and (c) shows Seq No. 6 Audio data output is obtained. The received packet in (a) tends to underrun, and when Seq No. 10 arrives, the buffer A is already ready to write the received packet Seq No. 10, and Seq No. 10 is immediately written ( (The written state is not shown).
同様にして、t=10Tのタイミングでシフトされ、バッファB〜EにSeq No.10〜7が格納され、バッファAはSeq No.11の到来を待つ未使用バッファとなり、(c)にはSeq No.7の音声データ出力が得られる。(a)の受信パケットSeq No.11の到来時点では、すでにバッファAは受信パケットSeq No.11を書き込める状態になっており、Seq No.11はただちに書き込まれる(書き込まれた状態は図示せず)。 Similarly, it is shifted at the timing of t = 10T, Seq Nos. 10 to 7 are stored in the buffers B to E, the buffer A becomes an unused buffer waiting for the arrival of Seq No. 11, and (c) includes Seq No.7 audio data output is obtained. When the received packet Seq No. 11 in (a) arrives, the buffer A is already in a state where the received packet Seq No. 11 can be written, and Seq No. 11 is written immediately (the written state is not shown). ).
このようにして、t=13Tのタイミングでシフトされると、バッファC〜EにSeq No.12〜10が格納され、バッファAとBはSeq No.14と13の到来を待つ未使用バッファとなり、(c)にはSeq No.10の音声データ出力が得られる。t=13Tのタイミングでは、未使用バッファはAとBの2個に増加している。時間の経過とともに未使用バッファの数は増えて、全バッファA〜Eが未使用となる。その後は、(c)の音声データ出力は全く得られなくなり、受信不能となる。
オーバーラン(又はアンダーラン)傾向の発生は、IP網の伝播時間のゆらぎの影響を無視すると、送信端末のクロック周期が受信端末のクロック周期よりも若干短い(又は長い)場合に発生する。実際には、送信端末と受信端末の両クロック周期が長期間にわたり完全に一致することはあり得ない。したがって、オーバーランまたはアンダーランは必ず発生する問題である。オーバーランまたはアンダーラン発生時の対策として、バッファの初期化が行われている。この場合の通話品質は、著しく劣化したものとなる。さらに、IP網の状況により突発的にパケットの受信間隔が変化するゆらぎが発生する場合があるが、このようなゆらぎに対して即時にバッファの増減をすることは、バッファ増減の頻度を増やすこととなり、バッファの増減処理自体が音声通話品質の著しい低下の原因となってしまう。 The occurrence of an overrun (or underrun) tendency occurs when the clock period of the transmitting terminal is slightly shorter (or longer) than the clock period of the receiving terminal, ignoring the influence of fluctuations in the propagation time of the IP network. Actually, the clock periods of both the transmitting terminal and the receiving terminal cannot coincide completely over a long period of time. Therefore, overrun or underrun is a problem that always occurs. The buffer is initialized as a countermeasure when an overrun or underrun occurs. In this case, the call quality is significantly deteriorated. Furthermore, there may occur fluctuations in which the packet reception interval suddenly changes depending on the situation of the IP network. Immediate increase / decrease of the buffer in response to such fluctuation increases the frequency of buffer increase / decrease. Thus, the buffer increase / decrease process itself causes a significant decrease in voice call quality.
そこで、オーバーランまたはアンダーラン発生時の対策として、バッファの初期化をせず、また、パケットの受信間隔が変動するゆらぎが発生しても即時にバッファの増減をすることもなく、あるいはバッファの初期化を行うこともなく、音声通話品質の著しい低下を防止することが解決すべき課題となっている。また、端末を移動した時や、通信量の大幅な変化があった時など、ネットワーク環境が大きく変化した場合でも、手動によるバッファサイズの変更をする必要がなく、人手による操作を加えずに安定した動作をする良好な保守性を得ることが望まれている。 Therefore, as a countermeasure when an overrun or underrun occurs, the buffer is not initialized, and even when fluctuations occur in the packet reception interval, the buffer is not immediately increased or decreased, or Preventing a significant drop in voice call quality without performing initialization is a problem to be solved. In addition, even when the network environment changes significantly, such as when the terminal is moved or when there is a significant change in traffic, there is no need to manually change the buffer size and it is stable without any manual operation. It is desired to obtain good maintainability for performing the above operation.
本発明は、上記の課題を解決することを最も主要な特徴とする。受信したパケットの受信データが格納される複数のバッファのうちに、受信パケットの受信データのオーバーランおよびアンダーランのラン傾向を検知するためのラン検知バッファを設定し、そにおける受信位置を解析することにより、ラン傾向を検知し、ラン傾向が検知されたときには、受信位置を補正する。突発的に発生するジッタに対しては、所定の期間における受信データの受信データロス率を測定し、それが大きい場合には、複数のバッファからなるバッファの数を増加せしめ、受信データの遅延パケット率を測定しそれが小さい場合には、前記複数のバッファからなるバッファの数を減少せしめ、受信から音声データ出力までの時間を短くするようにした。 The main feature of the present invention is to solve the above problems. Set up a run detection buffer to detect the tendency of overrun and underrun of the received data of the received packet among the multiple buffers that store the received data of the received packet, and analyze the reception position there Thus, the run tendency is detected, and when the run tendency is detected, the reception position is corrected. For sudden jitter, the received data loss rate of the received data in a predetermined period is measured, and if it is large, the number of buffers composed of a plurality of buffers is increased, and the received data delay packet When the rate was measured and it was small, the number of buffers consisting of the plurality of buffers was decreased to shorten the time from reception to audio data output.
本発明のIP電話のダイナミック・バッファ制御方法と装置によるならば、所定の期間、オーバーランとアンダーランの傾向を検知し、ラン傾向が続いたときに、それに合わせた受信位置および検知バッファの位置の補正をし、受信データロス率と遅延パケット率が所定の範囲外となったときにはバッファ数を増減するようにしたから、パケットの受信間隔の突発的なゆらぎに対して即応することもなくなり、バッファサイズ変更の頻度も大幅に減少し、突発的なゆらぎやオーバーランおよびアンダーランによる障害の発生を未然に防止し、音声通話品質を向上せしめると同時に高い保守性を得ることができた。 According to the dynamic buffer control method and apparatus of the IP telephone of the present invention, the tendency of overrun and underrun is detected for a predetermined period, and when the run tendency continues, the reception position and the position of the detection buffer are adjusted accordingly. Since the number of buffers was increased or decreased when the received data loss rate and the delayed packet rate were outside the predetermined range, there was no immediate response to sudden fluctuations in the packet reception interval, The frequency of buffer size changes has also been greatly reduced, preventing sudden fluctuations and failures due to overruns and underruns, improving voice call quality and at the same time achieving high maintainability.
所定の期間、受信データのロス率と遅延パケット率を確認するための受信データロス・遅延率確認器と、受信パケットのラン傾向を検出するためのラン傾向検知器と、それらの確認データやラン傾向にあわせてバッファの増減をし、受信位置とラン検知バッファの位置を補正するためのバッファ増減器と、受信・ラン検知位置補正器を設けることにより実現した。 A reception data loss / delay rate checker for confirming the loss rate and delay packet rate of received data for a predetermined period, a run tendency detector for detecting a run tendency of received packets, and the confirmation data and run This was realized by providing a buffer increase / decrease unit to correct the reception position and the position of the run detection buffer, and a reception / run detection position correction unit to increase / decrease the buffer according to the trend.
図1は、本発明の一実施例の構成図である。 パケット受信部5は、伝送路I/F部2を介してIP網に接続され、パケットを受信すると、受信パケット15をダイナミック・バッファ部6に送る。ダイナミック・バッファ部6は検知バッファを含んだ複数のバッファを含んでおり、受信パケット15がどのバッファに受信されたかを示す受信位置信号16と、検知バッファにおいて検知した検知バッファ信号17を、受信位置解析・制御部10に送る。
FIG. 1 is a block diagram of an embodiment of the present invention. The
受信位置解析・制御部10は受信位置信号16と検知バッファ信号17を受けて、受信パケット15の受信位置およびラン検知バッファの位置を解析し、制御するためのバッファ増減指示信号38と受信・ラン検知位置指示信号39をダイナミック・バッファ部6に送る。受信位置解析・制御部10の制御により、ダイナミック・バッファ部6は音声データ19を得て、それを音声符号化部7へ送る。音声符号化部7の出力は端末I/F部3を介して音声端末に印加される。音声端末からの音声信号は、端末I/F部3を介してパケット組立送信部8に印加され、その出力は伝送路I/F部2を介してIP網側に送られる。
The reception position analysis /
図2には、受信位置解析・制御部10の内部構成が、ダイナミック・バッファ部6と関係づけて示されている。受信位置解析・制御部10には、受信処理部20と再生処理部30が含まれている。受信処理部20には、位置計算用データ受信器21、受信データロス・遅延率確認器22およびラン傾向検知器23が含まれている。再生処理部30には、バッファ増減器31と受信・ラン検知位置補正器32が含まれている。受信位置信号16と検知バッファ信号17を受けた位置計算用データ受信器21は、受信位置信号16の時間的位置と検知バッファの位置を計算し、受信位置・ラン傾向信号27を受信データロス・遅延率確認器22およびラン傾向検知器23に送る。
FIG. 2 shows the internal configuration of the reception position analysis /
受信データロス・遅延率確認器22は、受信位置・ラン傾向信号27を受けて、受信したパケットのロスの割合である受信データロス率Lpと遅延パケットの割合である遅延パケット率DDを求める。受信データロス率Lpは式(1)で求める。ここで、Tpは所定の期間、Tは受信クロックの周期、NRは所定の期間Tpの間に受信したパケットの数である。
Lp=[{Tp/(TNR)}−1]×100[%] (1)
式(1)において、たとえば、Tp=100T、NR=99とすると、 Lpは1%となる。{Tp/(TNR)}<1ならばパケットロスが発生(たとえば、Tp=100T、NR=101)している。パケットロスは、正常時に期待した時点よりもIP網におけるゆらぎ(ジッタ)により早期に受信パケット15を受けたときに発生する。遅延パケットは、正常時に期待した時点よりもIP網におけるゆらぎ(ジッタ)により遅れた時点で受信パケット15を受けたときに発生する。
The reception data loss / delay rate checker 22 receives the reception position /
L p = [{T p / (TN R )} − 1] × 100 [%] (1)
In the formula (1), for example, when T p = 100T and N R = 99, L p is 1%. If {T p / (TN R )} <1, packet loss occurs (for example, T p = 100T, N R = 101). The packet loss occurs when the received
図3には、突発的に遅延パケットが発生し、その発生率である遅延パケット率が小さくなった場合に対処するためのバッファ減少処理の動作が示されている。(a)には、受信パケット15の順序を示すSeq No.と、その受信タイミングが太線で示されている。(b)には、ダイナミック・バッファ部6に含まれたA〜Eの、たとえばバッファ・サイズ5のバッファ(FIFO:First In First Out)と、格納しているパケットのSeq No.が示されている。チE,チDと記されているのは、遅延検知バッファであることを表している。(a)の受信パケット15が(d)の受信クロックよりも遅れてくることを、遅延検知バッファのSeq No.を監視することにより、検出することができる。(c)には、音声データ19が出力されるタイミングとパケットのSeq No.が示されている。(d)には、音声の受信端末における周期Tの受信クロックが示されている。
FIG. 3 shows an operation of buffer reduction processing to cope with a case where a delay packet is suddenly generated and the delay packet rate, which is the generation rate, is reduced. In (a), the Seq No. indicating the order of the received
遅延検知バッファは、音声再生に一番近い(最も遅延した)位置にあるバッファチE,チDに設定され、それ以外のバッファA〜DまたはA〜Cに受信されることなく、直接に、遅延検知バッファチE,チDに受信されるパケットを遅延検知パケットと定義する。したがって、バッファA〜DまたはA〜Cに受信されてからシフトダウンより遅延検知バッファチEまたはチDに格納されるパケットは、遅延検知パケットではない。所定の期間Tpにおいて受信した受信パケット数NRに対する遅延検知パケット数NDの割合である遅延パケット率DDは、式(2)のようになる。
DD=(ND/NR)×100[%] (2)
The delay detection buffer is set at the buffer positions E and D at the position closest to the audio reproduction (most delayed), and is directly received without being received by the other buffers A to D or A to C. A packet received by the detection buffers E and D is defined as a delay detection packet. Therefore, a packet that is received in the buffers A to D or A to C and then stored in the delay detection buffer E or D after the shift down is not a delay detection packet. Delayed packets ratio D D is the percentage of the delay detection packet number N D of the received packet number N R received in a predetermined period of time T p is as equation (2).
D D = (N D / N R ) × 100 [%] (2)
これを図3において説明すると、例えば、所定の期間Tpを9T〜11T(実際にはもっと長い期間)に設定したとき、この期間9T〜11Tにおいては、(a)の受信パケット15のSeq No.10〜12が受信され(Seq No.12はt=11Tに受信したのと等価)受信パケット数NR=2であり、t=9T、t=10T、t=11Tの各時点における遅延検知バッファはチE、チD、チDであり、A〜D(t=9T)またはA〜C(t=10T,11T)に受信することなく、直接に遅延検知バッファチE、チDに格納される受信パケットは存在しないから、遅延検知パケット数ND=0となる。遅延パケット率DDは0%を得る。 Referring to the FIG. 3 this, for example, when setting the predetermined time period T p in 9T~11T (actually longer period), in this period 9T~11T, Seq No of the received packet 15 (a) .10-12 are received (Seq No. 12 is equivalent to that received at t = 11T). The number of received packets is N R = 2, and delay detection at each time point of t = 9T, t = 10T, and t = 11T The buffers are Chi E, Chi D, Chi D, and are stored in the delay detection buffers Chi E, Chi D directly without being received by AD (t = 9T) or AC (t = 10T, 11T). Since there is no received packet, the number of delay detection packets N D = 0. Delayed packets rate D D get 0%.
この遅延パケット率DDは、受信データロス率LPと同様に受信データロス・遅延率確認器22において求める。この遅延パケット率DDは、遅延パケット率DDの値が所定の値である許容遅延パケット率DDthの値より小さい場合には、バッファ・サイズ(バッファの数)が適正サイズよりも長過ぎると判断し、遅延検知バッファであるチEをt=9T+ΔTにおいて削除し、すなわち、バッファの数を減少せしめ、音声再生に一番近いバッファをチDとして遅延検知バッファにする。ここでTは、たとえば10msであり、ΔTは、たとえば10ns程度の時間である。
This delay packet rate D D is determined in the received data loss deferral rate validator 22 similarly to the received data loss rate L P. This delay packet rate D D, if the value of the delay packet rate D D is less than the value of the allowable delay packet rate D Dth is a predetermined value, the buffer size (number of buffers) is too long than the appropriate size Therefore, the delay E buffer C is deleted at t = 9T + ΔT, that is, the number of buffers is reduced, and the buffer closest to the audio reproduction is set as D to be a delay detection buffer. Here, T is, for example, 10 ms, and ΔT is, for example, about 10 ns.
図4には、バッファ減少処理を説明した図3の一部の時間軸を拡大した図を示している。t=10Tにおいては、(b)のダイナミック・バッファ部6のバッファAは、(a)の受信パケット15のSeq No.11を受信してはいないから未使用バッファになっている。(a)の受信パケット15のSeq No.11を受信した時点で、バッファAはSeq No.11を格納する。t=11Tになると、(b)のダイナミック・バッファ部6のデータはシフトされ、バッファAは、(a)の受信パケット15のSeq No.12を受信してはいないから未使用バッファになる。(a)の受信パケット15のSeq No.12を受信した時点で、バッファAはSeq No.12を格納する。ここで(a)の受信パケット15のSeq No.11は、t=10Tとt=11Tの間で受信しているが、t=11Tの時点では、t=10Tの時点で受信した場合と同じ結果になっている。
FIG. 4 is an enlarged view of a part of the time axis of FIG. 3 illustrating the buffer reduction process. At t = 10T, the buffer A of the
図5には図3とは異なるタイミングで受信パケットを受信した場合のダイナミック・バッファ部6のバッファ減少処理における遅延パケット率算出の様子が説明されている。ダイナミック・バッファ部6は、バッファA〜Eから成り、Eは検知バッファになっている。t=T以前においては、(b)のダイナミック・バッファ部6のバッファA〜Eは空のままで、未使用バッファになっている。
FIG. 5 illustrates how the delay packet rate is calculated in the buffer reduction process of the
図5(a)の受信パケット15のSeq No.1をt=Tに受けるとバッファAに格納される。(a)の受信パケット15のSeq No.2〜5は、突発的ゆらぎ(ジッタ)のために正常な時点よりも遅れて受信している。(a)の受信パケット15のSeq No.6以降は正常なタイミングで受信している。たとえば、(a)の受信パケット15のSeq No.2は、正常ならばt=2Tで受信できる。それが、突発的ゆらぎにより3T≦t<4Tで受信したものであり、t=3Tで受信した場合と同じ結果となるので、t=3Tで受信したように図示している。同じく、(a)の受信パケット15のSeq No.3は5T≦t<6Tで、Seq No.4は5T≦t<6Tで、Seq No.5は9T≦t<10Tで受信した場合を表している。
When Seq No. 1 of the received
図5において、所定の期間Tpを1T〜10Tに設定したとき(Tp=10T)、この期間1T〜10Tにおいては(a)の受信パケット15のSeq No.1〜10が受信(受信パケット数NR=10)されている。(b)のダイナミック・バッファ部6の遅延検知バッファチEに、他のA〜Dを経由することなく、直接に格納したのは、t=9TにおけるSeq No.5のパケットのみである(遅延検知パケット数ND=1)。遅延パケット率DD=(ND/NR)×100[%]=10%となる。所定の遅延パケット率DDthよりも小さな遅延パケット率DDの値が所定の期間続いた場合には、バッファEは不要として、図3と4で説明したバッファ減少処理をする。ダイナミック・バッファ部6のバッファ数が減少することにより、受信から音声データ19の再生までの時間が短縮されて、音質が向上する。
In FIG. 5, when a predetermined period T p is set to 1T to 10T (T p = 10T), Seq Nos. 1 to 10 of the received
式(1)および(2)で求めた受信データロス率Lpおよび遅延パケット率DDは、ロス・遅延率信号28として受信データロス・遅延率確認器22から出力されて再生処理部30に含まれたバッファ増減器31に印加される。 ラン傾向検知器23は、受信位置・ラン傾向信号27を受けて、受信パケット15がダイナミック・バッファ部6に含まれた複数バッファのうちのラン検知バッファとして指定したバッファに受信されたかを検知し、それによりラン傾向を確認して、受信位置・ラン傾向確認信号29を出力する。
Receive data loss rate L p and the delay packet rate D D obtained by the formula (1) and (2), the Los
バッファ増減器31は、ロス・遅延率信号28を受けて、ダイナミック・バッファ部6に含まれた複数バッファの数を増加すべきか減少すべきかを判断し、必要に応じて検知バッファを設定し変更するべく、バッファ増減指示信号38をダイナミック・バッファ部6に送る。受信・ラン検知位置補正器32は受信位置・ラン傾向確認信号29を受けて、ダイナミック・バッファ部6に含まれた複数バッファのどのバッファに次の受信データ15を格納すべきか指示する受信・ラン検知位置指示信号39をダイナミック・バッファ部6に送る。
The buffer increase / decrease unit 31 receives the loss /
図6には、受信データロス率Lpが大きい場合に対処するためのバッファ増加処理の動作が示されている。(a)には、受信パケット15の順序を示すSeq No.と、その受信タイミングが太線で示されている。(b)には、ダイナミック・バッファ部6に含まれたA〜E(F)の、たとえばバッファ・サイズ5(6)のバッファ(FIFO:First In First Out)と、格納しているパケットのSeq No.が示されている。(c)には、音声データ19が出力されるタイミングとパケットのSeq No.が示されている。(d)には、受信端末における周期Tの受信クロックが示されている。
FIG. 6 shows an operation of buffer increase processing for coping with a case where the reception data loss rate L p is large. In (a), the Seq No. indicating the order of the received
同図(d)の受信クロックの時刻t=9T以前の所定の期間Tpにおいて受信データロス(パケットロス)率Lpの値が、所定の値Lpthよりも大きいと受信データロス・遅延率確認器22において判定され、時刻t=9Tの直後(t=9T+ΔT、ただし、0<ΔT<<T:例えばΔT=10ns、T=10ms)において、バッファEの過去側に無音データの書き込まれたバッファFを追加する増加処理を行う。時刻t=10Tにおいては、時刻9T<t<10Tの間に受けた(a)のSeq No.11の受信パケット15をバッファAに書き込み、以下順にシフトして、Bに10を、Cに9を、Dに8を、Eに7をシフトし、Fに無音を格納して、(c)の音声データ19として無音を出力する。このようにして、未使用バッファの発生は、防止される。
If the value of the reception data loss (packet loss) rate L p is larger than the predetermined value L pth in the predetermined period T p before the time t = 9T of the reception clock in FIG. Immediately after time t = 9T (t = 9T + ΔT, where 0 <ΔT << T: for example, ΔT = 10 ns, T = 10 ms), the silent data is written to the past side of the buffer E. Increase processing for adding the buffer F is performed. At time t = 10T, the received
図7には、バッファ増加処理を説明した図6の一部の時間軸を拡大した図を示している。t=9Tにおいて、(b)のダイナミック・バッファ部6のバッファAは、(a)の受信パケット15のSeq No.10を受信し格納する。その直後の時点91においてシフトダウンされて、バッファAはSeq No.11を書き込み可能な未使用バッファとなる。さらに、時点92において、無音データの書き込まれたバッファFを追加する増加処理を行う。この増加処理においてバッファAを未使用にしてSeq No.11の印加を待つ。(a)の受信パケット15のSeq No.11を受信した時点で、バッファAはSeq No.11を格納する。バッファFには、無音が格納されている。t=10Tになると、バッファFの無音のデータは、(c)の音声データ19として出力される。t=10Tの直後の時点101において格納データをシフトダウンしてバッファAを未使用にしてSeq No.12の印加を待つ。(a)の受信パケット15のSeq No.12を受信した時点で、バッファAはSeq No.12を格納する。
FIG. 7 is an enlarged view of a part of the time axis of FIG. 6 for explaining the buffer increase processing. At t = 9T, the buffer A of the
図8には、ダイナミック・バッファ部6のオーバーラン補正処理のバッファ動作が示されている。(a)には、受信パケット15の順序を示すSeq No.と、その受信タイミングが太線で示されている。(b)には、ダイナミック・バッファ部6に含まれたa,A〜Eの、たとえばバッファ・サイズ5+1のバッファ(FIFO:First In First Out)と、格納しているパケット(音声データ)のSeq No.が示されている。オaと記されているのは、オーバーラン検知バッファであることを表している。受信パケット15が受信クロックよりも短い周期である(オーバーラン傾向にある)ことを、オーバーラン検知バッファのSeq No.を監視することにより、検出することができる。(c)には、音声データ19が出力されるタイミングとパケットのSeq No.が示されている。(d)には、受信端末における周期Tの受信クロックが示されている。
FIG. 8 shows the buffer operation of the overrun correction process of the
オーバーラン対策用のバッファとして、バッファオaをバッファAの未来側(Aの上)に設けている。オーバーラン傾向にある(a)の受信パケット15のSeq No.10を受けても、それをオーバーラン対策用のバッファオaに格納することができる。バッファオaに格納されたことは、オーバーラン傾向にあることを意味するから、t=9T+ΔT(0<ΔT<<T)の時点で格納してあるデータを1バッファ分シフトダウンし、AにはSeq No.10のデータを格納し、BにはSeq No.9のデータを格納し、・・・EにはSeq No.6のデータを格納する。バッファオaはSeq No.11のデータを格納することが可能な状態になっている。(a)の受信パケット15のSeq No.11を受けると、バッファオaはSeq No.11のデータを格納する。
A buffer A is provided on the future side (above A) of the buffer A as a buffer for overrun countermeasures. Even if Seq No. 10 of the received
t=10Tになると1バッファ分シフトして、バッファAはSeq No.11のデータを格納して、Seq No.7の(c)音声データ19を出力し、バッファaにSeq No.12のデータを格納することができる状態(未使用バッファ)となる。未使用バッファであったオーバーラン検知バッファaに書き込みがあった(t=9T)ことを検出することにより、オーバーラン補正処理が可能となる。
When t = 10T, the data is shifted by one buffer, buffer A stores the data of Seq No. 11, outputs (c)
図9には、オーバーラン補正処理を説明した図8の一部の時間軸を拡大した図を示している。t=9Tにおいて、オーバーラン傾向にある(a)の受信パケット15のSeq No.10を受けて、オーバーラン対策用のバッファaに格納する。バッファオaに格納されたことは、オーバーラン傾向にあることを意味するから、t=9T+ΔT(0<ΔT<<T)の時点91で格納してあるデータを1バッファ分シフトダウンし、AにはSeq No.10のデータを格納し、BにはSeq No.9のデータを格納し、・・・EにはSeq No.6のデータを格納する。
FIG. 9 is an enlarged view of a part of the time axis of FIG. 8 illustrating the overrun correction process. At t = 9T, Seq No. 10 of the received
バッファオaはSeq No.11のデータを格納することが可能な状態になっている。(a)の受信パケット15のSeq No.11を受けると、バッファオaはSeq No.11のデータを格納する。t=10Tになると1バッファ分シフトして、バッファAはSeq No.11のデータを格納して、Seq No.7の(c)音声データ19を出力する。バッファオaはSeq No.12のデータを格納することができる状態(未使用バッファ)となる。(a)の受信パケット15のSeq No.12を受けると、バッファオaはSeq No.12のデータを格納する。かくして、未使用バッファであったオーバーラン検知バッファオaに書き込みがあった(t=9Tほか)ことを検出することにより、オーバーラン補正処理が可能となる。
The buffer a is in a state where the data of Seq No. 11 can be stored. Upon receipt of Seq No. 11 of the received
図10には、図8および図9に示したタイミングからかなり経過したタイミングで受信パケット15を受信した場合のオーバーラン補正処理時の時間軸拡大図を示している。ここでは、49T≦t<50Tの間に(a)の受信パケット15のSeq No.51と52の2個のパケットを受信した場合の補正処理を示している。(a)の受信パケット15のSeq No.50を受けると、それをバッファオaに格納する。t=49Tになると、シフトダウンして、バッファオaはSeq No.51を受信することのできる未使用バッファとなり、(c)の音声データ19としてSeq No.46のデータを出力する。(a)の受信パケット15のSeq No.51を受信すると、それを未使用のバッファオaに格納する。その直後の時点107においてシフトダウンしてバッファオaを(a)の受信パケット15のSeq No.52を受信可能とする未使用バッファとして設定する。
FIG. 10 shows an enlarged view of the time axis at the time of overrun correction processing when the received
さらに、すでにオーバーラン傾向を検知して所定の時間が経過しているために、時点107の動作に続いて時点108においてもシフトダウンしてバッファオaをSeq No.53を受信可能とする未使用バッファとして設定する。バッファAはSeq No.52を受信可能とする未使用バッファであり、バッファB〜EにはSeq No.51〜48のデータが格納され、Seq No.47のデータは破棄される。(a)の受信パケット15のSeq No.52を受信すると、未使用であったバッファAに格納する。その直後の時点t=50Tにおいて、Seq No.48のデータが(c)の音声データ19として出力される。
Furthermore, since a predetermined time has elapsed since the overrun tendency has already been detected, the buffer A is not used so that it can receive Seq No. 53 by shifting down at
図11には、ダイナミック・バッファ部6のアンダーラン補正処理のバッファ動作が示されている。(a)には、受信パケット15の順序を示すSeq No.と、その受信タイミングが太線で示されている。(b)には、ダイナミック・バッファ部6に含まれたA〜Eの、たとえばバッファ・サイズ5のバッファ(FIFO:First In First Out)と、格納しているパケット(音声データ)のSeq No.が示されている。アBと記されているのは、バッファBがアンダーラン検知バッファであることを表している。受信パケット15が受信クロックよりも長い周期で来る(アンダーラン傾向にある)ことを、アンダーラン検知バッファのSeq No.を監視することにより、検出することができる。(c)には、音声データ19が出力されるタイミングとパケット(音声データ)のSeq No.が示されている。(d)には、受信端末における周期Tの受信クロックが示されている。
FIG. 11 shows the buffer operation of the underrun correction process of the
アンダーラン対策用のバッファとして、バッファBをバッファAの過去側(Aの下)に設けている。アンダーラン傾向にある(a)の受信パケット15を続けて受けると、(d)の受信クロックの1周期Tの間に、(a)の受信パケット15を1個も受信することができない場合が発生するので、未使用バッファ(xx)が連続して発生することがある。それが所定の回数続いた時点t=10Tにおいては、バッファAとBが未使用になっている。その後Seq No.10をバッファAを経ることなくバッファBに直接受信し、バッファAはSeq No.11のデータを格納可能な未使用バッファとなり、バッファアBにはSeq No.10のデータを格納し、・・・Eには無音のデータを格納する。 t=11Tになると、(c)の音声データ19として無音を出力する。バッファAは、Seq No.11のデータを格納することができる未使用バッファのままである。その後Seq No.11の(a)の受信パケット15を受けてバッファAはSeq No.11のデータを格納することができる。このアンダーラン補正処理により未使用バッファの増加を防止することができる。
Buffer B is provided on the past side of buffer A (below A) as a buffer for countermeasures against underrun. When receiving the received
図12には、アンダーラン補正処理を説明した図11の一部の時間軸を拡大した図を示している。t=10T以前においてバッファAが常に未使用であることをウォッチし続け、アンダーラン傾向を検知している。t=10Tにおいて、バッファAとBは未使用であり、アンダーラン傾向は続いている。(a)の受信パケット15のSeq No.10を受けて、バッファAおよびアンダーラン検知バッファBを経ることなく、アンダーラン検知バッファBまたはそれよりも過去側(バッファC,D,E)のバッファCに直接格納する。バッファCに直接受信したことは、アンダーラン傾向が長い期間続いたことを意味するから、受信パケット15のSeq No.10を受けた直後の時点105において出力側に近いバッファEに無音のデータを格納する。 t=11Tになると、(c)音声データ19として無音を出力し、バッファAは、Seq No.11のデータを格納することができる未使用バッファとなる。その後Seq No.11の(a)の受信パケット15を受けてバッファAはSeq No.11のデータを格納する。このアンダーラン補正処理により未使用バッファの増加を防止する。
FIG. 12 is an enlarged view of a part of the time axis of FIG. 11 for explaining the underrun correction processing. Before t = 10T, it keeps monitoring that the buffer A is always unused, and detects an underrun tendency. At t = 10T, buffers A and B are unused and the underrun trend continues. In response to Seq No. 10 of the received
図13および図14は、受信位置解析・制御部10に含まれた受信処理部20の動作の流れを示している。動作が開始すると、ダイナミック・バッファ部6のバッファをすべて空にして、バッファAにSeq No.1の受信パケット15を受信できるようにする。すなわち、バッファAを未使用バッファ(1)にして仮初期化する(S11、図13)。バッファに受信パケット15を受けるのを待っており(S12)、受信パケット15を受けて受信割り込みを検知する(S13Y)。その受信割り込みが通話開始後最初の受信、あるいは、IP網における伝搬時間のゆらぎやラン傾向により受信パケット15の一部が欠落して通話が中断し、その後の通話開始後最初の受信であることを確認したときには(S14Y)、バッファを初期化して次に受信すべき受信パケット15のSeq No.に対して未使用バッファ(xx)を準備する(S15)。
13 and 14 show the flow of operations of the reception processing unit 20 included in the reception position analysis /
通話開始後最初の受信ではなく(S14N)、あるいは初期化した場合は(S15)、受信パケット15のSeq No.Nが、格納対象のSeq No.に対して、過去のものとなっているか、格納対象なのか、未だ格納対象となっていない未来のものであるかを判断する(S16、図14)。過去の場合は、すでに格納対象とはなっていないから、その受信データ(受信パケット15)の破棄をし(S17)、データ破棄数NAをカウントする(S18)。データ破棄数NAをカウントすることによって、処理不要なデータ数を知ることができる。
If Seq No. N of received
格納対象となっている場合は、ダイナミック・バッファ部6にデータを書き込んでSeq No.を更新する(S19)。受信パケット15のSeq No.が格納対象よりも未来のものである(受信パケットの一部が欠落した)場合は、ダイナミック・バッファ6を再構築して、以後のSeq No.の受信パケット15を格納できるように未使用バッファ(xx)を設定する(S20)。
If it is to be stored, the data is written in the
受信位置信号16により受けたデータが、位置計算用データであることを位置計算用データ受信器21において確認すると(S21Y)、受信パケット15の受信データロス率Lpを確認する処理をし(S22)、パケット受信位置の確認処理をしてステップS12(図13)の動作に戻る(S23)。
When the position
図15には、図14ステップS22のデータロス率確認処理のサブルーチンが示されている。データロス率確認処理が開始されると、受信データロス率Lpを分析するタイミングであれば(S31Y)、図10の時点108に示した受信データ破棄をしたデータ破棄数NAと受信パケット数NRとから受信データロス率Lpと遅延パケット率DDを式(1)および式(2)により計算する。
FIG. 15 shows a subroutine of the data loss rate confirmation processing in step S22 of FIG. When the data loss rate confirmation processing is started, the received data loss rate L p is the timing for analyzing the received data loss rate L p (S31Y), and the received data discard number N A and the received packet number shown at
受信データロス率Lpが所定の受信データロス率Lpthと比較され、Lp≧Lpthとなっていたときには(S33Y)、図6で示したバッファ増加処理をするためにバッファ増加ビット(Incbit)をオン(ON)にし(S34)、データ破棄数NAを0にリセットして(S35)、受信データロス率確認処理(S22、図14)は終了する。分析するタイミングでもなく(S31N)、Lp≧Lpthとなっていないときにも(S33N)、受信データロス率確認処理(S22、図14)は終了する。 When the reception data loss rate L p is compared with a predetermined reception data loss rate L pth and L p ≧ L pth is satisfied (S33Y), the buffer increase bit (Incbit) is used to perform the buffer increase processing shown in FIG. ) was turned on (oN) (S34), the data discard number N a is reset to 0 (S35), the received data loss rate confirmation process (S22, FIG. 14) ends. The reception data loss rate confirmation process (S22, FIG. 14) ends even when it is not time to analyze (S31N) and L p ≧ L pth is not satisfied (S33N).
図16および図17には、図14ステップS23のパケット受信位置確認処理のサブルーチンが示されている。パケット受信位置確認処理が開始されると、受信パケット15が、たとえば、図11のバッファのどの位置Xiに受信しているか(図11では、Xi=アB、)を、受信位置により計算する(S51、図16)。
FIGS. 16 and 17 show a subroutine of the packet reception position confirmation process in step S23 of FIG. When the packet reception position confirmation process is started, for example, at which position X i of the buffer in FIG. 11 the received
受信位置Xiにより、分析するタイミングであることを確認すると(S52Y)、バッファ減少判定処理係数β[%]を計算する。たとえば、図3(b)ダイナミック・バッファ部6のt=9Tにおいて、遅延検知バッファチEに他のバッファA〜Dを経ることなく、受信パケット15の100個のうちの何個が直接受信されるかを検出し、たとえば、2個が検出された場合は、β=2%と計算する。このバッファ減少判定処理係数βを所定のバッファ減少判定処理係数βth(たとえば、3%)と比較し、β<βthならば(S54Y)、図3で示したバッファ減少処理をするためにバッファ減少ビット(Decbit)をオン(ON)にし(S55)、オーバーラン検知ステップS56(図17)へと進む。ステップS54(図14)においてβ<βthでない場合も(S54N)、オーバーラン検知ステップS56(図17)へと進む。
By receiving the position X i, when confirming that it is time to analyze (S52Y), the buffer reduces determination processing coefficients β calculating a [%]. For example, at t = 9T of the
オーバーラン検知バッファ(図8参照)により、オーバーランを検知した場合には(S56Y、図17)、オーバービット(Overbit)をオン(ON)にする(図8のオaをAの上に付加する)(S57)。アンダーランを検知すると(S56N、S58Y)、アンダービット(Underbit)をオン(ON)にする(図11のt=10T+ΔTにおいて最も過去側に無音データを挿入する)(S59)。そこで、次回に備えて受信位置を解析する周期mをm+1にインクリメントし(S60)、受信位置の指標iをi+1にインクリメントして、パケット受信位置確認処理のサブルーチンは終了する(S61)。ここで、アンダーランを検知しなかった場合(S58N)も、ステップS60へと進む。分析するタイミングではなかった場合(S52N、図16)も、ステップS61へと進む。 When an overrun is detected by the overrun detection buffer (see FIG. 8) (S56Y, FIG. 17), the overbit (Overbit) is turned on (ON in FIG. 8 is added on A). (S57). When the underrun is detected (S56N, S58Y), the underbit (Underbit) is turned on (ON) (silence data is inserted on the most past side at t = 10T + ΔT in FIG. 11) (S59). Therefore, in preparation for the next time, the period m for analyzing the reception position is incremented to m + 1 (S60), the index i of the reception position is incremented to i + 1, and the packet reception position confirmation processing subroutine ends (S61). ). If no underrun is detected (S58N), the process proceeds to step S60. Even if it is not time to analyze (S52N, FIG. 16), the process proceeds to step S61.
図18には、受信位置解析・制御部10に含まれた再生処理部30の動作の流れを示している。再生割り込みを検知すると(S81Y)、バッファ内の最古格納データは、図3などの(c)の音声データ19として再生される(S82)。そこで、バッファに最新格納データのSeq No.に+1したSeq No.をもつBFI(仮番号)データを未使用バッファ(xx)としてセットする(S83)。
FIG. 18 shows a flow of operations of the
オーバーラン検知(S57、図17)およびアンダーラン検知(S59、図17)の結果により、受信パケットの位置補正の必要性を調べる(S84)。オーバーランが検知されOverbit ONになっている場合は、オーバーラン補正処理に入る(S85)。アンダーランが検知されUnderrbit ONになっている場合は、アンダーラン補正処理に入る(S86)。それぞれの補正処理を必要とする場合および必要としない場合に、バッファ増減処理の必要性を調べる(S87)。バッファ増加を必要とする場合は(図6)、バッファ増加処理をする(S88)。バッファ減少を必要とする場合は(図4)、バッファ減少処理をする(S89)。バッファ増減処理をした後、および同処理をする必要のない場合は、ステップS83の動作に戻る。 Based on the results of overrun detection (S57, FIG. 17) and underrun detection (S59, FIG. 17), the necessity of position correction of the received packet is examined (S84). When overrun is detected and Overbit is ON, the overrun correction process is started (S85). If underrun is detected and Underrbit ON, underrun correction processing is entered (S86). The necessity of buffer increase / decrease processing is examined when each correction processing is required and when it is not required (S87). If buffer increase is required (FIG. 6), buffer increase processing is performed (S88). If buffer reduction is required (FIG. 4), buffer reduction processing is performed (S89). After performing the buffer increase / decrease process and when it is not necessary to return to the operation in step S83.
図19にはオーバーラン補正処理(S85、図18)のサブルーチンが示されている。オーバーラン補正処理が開始されると、無音検出ビットがON(図11のt=10T+ΔTのバッファEに無音データを書き込む)になっているか、又はオーバーランあるいはアンダーランの傾向が所定の時間継続したことを示すタイマー・ビット1がONになっているかを調べる(S101)。いずれもONになっていない場合には、オーバーラン補正処理を必要とはしない(S101N)。
FIG. 19 shows a subroutine of overrun correction processing (S85, FIG. 18). When the overrun correction process is started, the silence detection bit is ON (silence data is written in the buffer E of t = 10T + ΔT in FIG. 11), or the tendency of overrun or underrun is a predetermined time. It is checked whether or not the
無音検出ビット又はタイマー・ビット1がONになっている場合には(S101Y)、バッファ内の最古パケット(図8、t=9TのバッファE)を破棄し、BFIデータに変換する(S102)。すなわち、図8のt=9Tのバッファa,A〜Eのデータ内容から、t=9T+ΔTのバッファa,A〜Eのデータ内容にする。そこで、BFIデータ変換後の最初のパケット(図8のSeq No.11の受信パケット15)を最適受信位置(図8のt=10TにおけるバッファA)に再配置し、その他の有音パケットも適正位置に再配置(図8のt=10TにおけるバッファB〜Eのように)する(S103)。再配置が終わると、無音検出ビットを0にし(図11のt=11Tの状態)、タイマー・ビット1を0にリセットし(ラン傾向監視期間のスタートにし)、オーバー・ビットを0(オーバーラン補正処理の前の図8のt=9Tの状態)にリセットして、オーバーラン補正処理のサブルーチンを終了する(S104)。
If the silence detection bit or
図20にはアンダーラン補正処理(S86、図18)のサブルーチンが示されている。アンダーラン補正処理が開始されると、無音検出ビットがON(図11のt=10T+ΔTのバッファEに無音データを書き込む)になっているか、又はオーバーランあるいはアンダーランの傾向が所定の時間継続したことを示すタイマー・ビット1がONになっているかを調べる(S111)。いずれもONになっていない場合には、アンダーラン補正処理を必要とはしない(S111N)。
FIG. 20 shows a subroutine of the underrun correction process (S86, FIG. 18). When the underrun correction process is started, the silence detection bit is ON (silence data is written in the buffer E of t = 10T + ΔT in FIG. 11), or the tendency of overrun or underrun is a predetermined time. It is checked whether or not the
無音検出ビット又はタイマー・ビット1がONになっている場合には(S111Y)、最初のパケット(図11のSeq No.10の受信パケット15)を最適受信位置(図11のt=10TにおけるバッファBからt=10T+ΔTにおけるバッファB)に再配置(位置補正)し、その他の有音および無音パケットも適正位置に再配置(図11のt=10T+ΔTにおけるバッファC〜Eのように)する(S112)。再配置(位置補正)が終わると、無音検出ビットを0にリセットし(図11のt=11Tの状態)、タイマー・ビット1を0にし(ラン傾向監視期間のスタートにし)、オーバー・ビットを0(オーバーラン補正処理の前の図11のt=9Tの状態)にリセットして、アンダーラン補正処理のサブルーチンを終了する(S113)。
When the silence detection bit or
図21にはバッファ増加処理(S88、図18)のサブルーチンが示されている。バッファ増加処理が開始されると、 無音検出ビット又はタイマー・ビット2がONになっているバッファ増加処理を必要とする場合には(S121Y)、図6のt=9T+ΔT(0<ΔT<<T)におけるバッファFに例示したように、バッファを1パケット分増加する(S122)。そこで、無音検出ビットを0にリセットし(図6のt=10Tの状態)、タイマー・ビット2を0にリセットし(ラン傾向監視期間のスタートにし)、オーバー・ビットを0(オーバーラン補正処理の前の図6のt=9Tの状態)にリセットして、バッファ増加処理のサブルーチンを終了する(S123)。バッファ増加処理を必要とはしない場合には(S121N)、ただちに、バッファ増加処理のサブルーチンを終了する。
FIG. 21 shows a subroutine of buffer increase processing (S88, FIG. 18). When the buffer increase process is started, when the buffer increase process in which the silence detection bit or the
図22にはバッファ減少処理(S89、図18)のサブルーチンが示されている。バッファ減少処理が開始されると、 無音検出ビット又はタイマー・ビット2がONになっており、バッファ減少処理を必要とする場合には(S131Y)、図3のt=9Tの+ΔTにおけるバッファEに例示したように、バッファを1パケット分減少する(S132)。そこで、無音検出ビットを0にリセットし、タイマー・ビット2を0にリセットし(ラン傾向監視期間のスタートにし)、オーバー・ビットを0にリセットして、バッファ減少処理のサブルーチンを終了する(S133)。バッファ減少処理を必要とはしない場合には(S131N)、ただちに、バッファ減少処理のサブルーチンを終了する。
FIG. 22 shows a subroutine of buffer reduction processing (S89, FIG. 18). When the buffer reduction process is started, if the silence detection bit or
2 伝送路I/F部
3 端末I/F部
5 パケット受信部
6 ダイナミック・バッファ部
7 音声復号化部
8 パケット組立送信部
10 受信位置解析制御部
15 受信パケット
16 受信位置信号
17 検知バッファ信号
19 音声データ
20 受信処理部
21 位置計算用データ受信器
22 受信データロス・遅延率確認器
23 ラン傾向検知器
27 受信位置・ラン傾向信号
28 ロス・遅延率信号
29 受信位置・ラン傾向確認信号
30 再生処理部
31 バッファ増減器
32 受信・ラン検知位置補正器
38 バッファ増減指示信号
39 受信・ラン検知位置指示信号
91,92,101,105,107,108 時点
β バッファ減少判定処理係数
DD 遅延パケット率
DDth 許容遅延パケット率
LP 受信データロス率
i バッファの番号
N 受信データのSeq No.(順序番号)
NA データ破棄数
ND 遅延検知パケット数
NR 受信パケット数
T 受信クロックの周期
TP 所定の期間
2 Transmission path I /
DESCRIPTION OF
91,92,101,105,107,108 point β buffer decrease determination processing coefficients D D Seq No. delay packet rate D Dth allowable delay packet index L P number N received data in the received data loss rate i buffer (sequence number)
N A Number of discarded data N D Number of delay detection packets N R Number of received packets T Period of received clock TP Predetermined period
Claims (5)
所定の期間(TP)における前記受信データの受信データロス率(LP)が大きい場合には、前記複数のバッファの数を増加せしめ、前記受信データの遅延パケット率(DD)が小さい場合には、前記複数のバッファの数を減少せしめるようにして音声データを再生可能にする再生処理(10,30)とを含む
IP電話のダイナミック・バッファ制御方法。 Reception processing (10, 20) for analyzing reception positions in a plurality of buffers in which received data of received packets are stored,
When the received data loss rate (L P ) of the received data in a predetermined period (T P ) is large, the number of the plurality of buffers is increased, and the delayed packet rate (D D ) of the received data is small Includes a reproduction process (10, 30) that enables reproduction of audio data by reducing the number of the plurality of buffers.
前記ラン傾向が検知されたときには、前記再生処理(10,30)において、前記受信位置を補正するための受信位置補正処理(32)をする、
請求項1のIP電話のダイナミック・バッファ制御方法。 In the reception process (10, 20), a run tendency detection process (23) for detecting at least one of the run tendency of the received data of the received packet from the reception position. And
When the run tendency is detected, in the reproduction process (10, 30), a reception position correction process (32) for correcting the reception position is performed.
2. The dynamic buffer control method for an IP phone according to claim 1.
請求項2のIP電話のダイナミック・バッファ制御方法。 3. The run detection buffer position correction process (32) for correcting a position of a run detection buffer for detecting the run tendency among the plurality of buffers in the reproduction process (10, 30). IP phone dynamic buffer control method.
所定の期間(TP)における前記受信データの受信データロス率(LP)が高い場合には、前記複数のバッファの数を増加せしめ、前記受信データの遅延パケット率(DD)が小さい場合には、前記複数のバッファの数を減少せしめるようにして音声データを再生可能にする再生手段(10,30)とを含む
IP電話のダイナミック・バッファ制御装置。 Receiving means (10, 20) for analyzing reception positions in a plurality of buffers in which received data of received packets are stored;
When the received data loss rate (L P ) of the received data in a predetermined period (T P ) is high, the number of the plurality of buffers is increased, and the delayed packet rate (D D ) of the received data is small Includes a reproducing means (10, 30) for reproducing audio data so as to reduce the number of the plurality of buffers.
前記ラン傾向が検知されたときには、前記再生手段(10,30)が、前記受信位置を補正するための受信位置補正手段(32)を含んでいる、
請求項4のIP電話のダイナミック・バッファ制御装置。 The receiving means (10, 20) includes a run tendency detecting means (23) for detecting at least one run tendency of the received data of the received packet from the reception position. Including
When the run tendency is detected, the reproduction means (10, 30) includes reception position correction means (32) for correcting the reception position.
5. The dynamic buffer control device for an IP telephone according to claim 4.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003425993A JP4269933B2 (en) | 2003-12-24 | 2003-12-24 | IP telephone dynamic buffer control method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003425993A JP4269933B2 (en) | 2003-12-24 | 2003-12-24 | IP telephone dynamic buffer control method and apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005184701A JP2005184701A (en) | 2005-07-07 |
JP4269933B2 true JP4269933B2 (en) | 2009-05-27 |
Family
ID=34785641
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003425993A Expired - Fee Related JP4269933B2 (en) | 2003-12-24 | 2003-12-24 | IP telephone dynamic buffer control method and apparatus |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4269933B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011077622A (en) * | 2009-09-29 | 2011-04-14 | Aiphone Co Ltd | Data transmission system |
JP2018007192A (en) * | 2016-07-08 | 2018-01-11 | シントレーディング株式会社 | Voice communication system, transmitter, receiver, transmission method, reception method, and program |
-
2003
- 2003-12-24 JP JP2003425993A patent/JP4269933B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2005184701A (en) | 2005-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220263423A9 (en) | Controlling a jitter buffer | |
EP1143671B1 (en) | Device and method for reducing delay jitter in data transmission | |
US7450601B2 (en) | Method and communication apparatus for controlling a jitter buffer | |
US6693921B1 (en) | System for use of packet statistics in de-jitter delay adaption in a packet network | |
US7336678B2 (en) | State-based jitter buffer and method of operation | |
CN101919214B (en) | System and method to adapt to network congestion | |
JP2006135974A (en) | Audio receiver having adaptive buffer delay | |
KR20030095995A (en) | Method for transporting media, transmitter and receiver therefor | |
US7349330B1 (en) | Packet receiver with the influence of jitter and packet losses reduced before a buffer becomes idle due to data delays and packet receiving method using the same | |
WO2021203829A1 (en) | Data transmission rate control method and system, and user equipment | |
US20040063466A1 (en) | Radio communication apparatus | |
US7650422B2 (en) | Audio playback apparatus for controlling pause and resume of audio | |
US20020136205A1 (en) | Packet data processing apparatus and packet data processing method | |
JP4076981B2 (en) | Communication terminal apparatus and buffer control method | |
US11601375B2 (en) | Electronic device and frame transmission method of electronic device | |
JP4269933B2 (en) | IP telephone dynamic buffer control method and apparatus | |
JP2005184383A (en) | System, apparatus and method for real-time data communication | |
US7586937B2 (en) | Receiving device and method | |
JP2008028490A (en) | Ip network terminal adapter and clock control method for use therein | |
JP2004214902A (en) | Streaming reproduction mobile terminal, streaming reproduction method, computer program, and computer-readable recording medium | |
US20100246608A1 (en) | Jitter buffering control for controlling storage locations of a jitter buffer, and a method therefor | |
JP2005197850A (en) | Jitter absorbing method and apparatus for voice ip terminal | |
WO2024093490A1 (en) | Method and apparatus for processing audio coding data packet | |
JP3165661B2 (en) | Audio synchronized playback device | |
JP2640598B2 (en) | Voice decoding device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060908 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080702 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080708 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080901 |
|
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: 20090203 |
|
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: 20090216 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120306 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4269933 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: 20120306 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130306 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140306 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |