JP5330183B2 - Packet insertion / deletion method and call system - Google Patents
Packet insertion / deletion method and call system Download PDFInfo
- Publication number
- JP5330183B2 JP5330183B2 JP2009231961A JP2009231961A JP5330183B2 JP 5330183 B2 JP5330183 B2 JP 5330183B2 JP 2009231961 A JP2009231961 A JP 2009231961A JP 2009231961 A JP2009231961 A JP 2009231961A JP 5330183 B2 JP5330183 B2 JP 5330183B2
- Authority
- JP
- Japan
- Prior art keywords
- packet
- packets
- valid
- fluctuation absorbing
- buffer
- 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.)
- Active
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
- Telephone Function (AREA)
Abstract
Description
本発明は、揺らぎ吸収バッファのバッファサイズを調節する技術に関するものである。 The present invention relates to a technique for adjusting the buffer size of a fluctuation absorbing buffer.
近年、VoIP等、音声パケットをリアルタイムで伝送するシステムが知られている。このようなシステムにおいて、送信側の端末装置は、10msec〜40msec程度の一定の周期でパケットを送信する。そして、受信側の端末装置も送信側の端末装置と同一の周期でパケットに含まれる音声信号を再生する。これにより、音声が連続再生される。 In recent years, systems such as VoIP that transmit voice packets in real time are known. In such a system, the terminal device on the transmission side transmits packets at a constant period of about 10 msec to 40 msec. The reception-side terminal device also reproduces the audio signal included in the packet at the same cycle as the transmission-side terminal device. Thereby, the sound is continuously reproduced.
しかしながら、ネットワーク上でのパケットの衝突、無線区間での伝送状態の悪化、ルータやブリッジの輻輳等により、パケットに伝送遅延の揺らぎが生じると、受信側の端末装置は、一定の周期でパケットを受信することができなくなる。そこで、伝送遅延の揺らぎを吸収し、一定の周期で音声を再生するために、受信側の端末装置には、揺らぎ吸収バッファが設けられているのが一般的である。つまり、揺らぎ吸収バッファに、一定数のパケットを蓄積させることで、パケットの枯渇を防止して、音声信号の連続再生を実現しているのである。 However, if packet fluctuations occur due to packet collisions on the network, deterioration of transmission conditions in the wireless section, congestion of routers and bridges, etc., the terminal device on the receiving side sends the packets at a fixed period. It becomes impossible to receive. Therefore, in order to absorb fluctuations in transmission delay and reproduce voices at a constant period, a terminal device on the receiving side is generally provided with a fluctuation absorbing buffer. That is, by accumulating a certain number of packets in the fluctuation absorbing buffer, the exhaustion of packets is prevented and continuous reproduction of audio signals is realized.
特許文献1には、揺らぎ吸収バッファの蓄積パケット数が開始蓄積パケット数になった場合に、受信パケットの読み出しを開始する揺らぎ吸収バッファの制御方法において、開始蓄積パケット数よりも大きな受信パケットの到着タイミングの揺らぎが発生した場合、開始蓄積パケット数及び最大蓄積パケット数を増加変更し、一方、前記揺らぎが開始蓄積パケット数より低い値で安定している場合、開始蓄積パケット数及び最大蓄積パケット数を減少変更させる技術が開示されている。
In
また、特許文献2には、受信パケット数が基準値を超えた時に受信パケットの再生を開始させ、予め定められた時間間隔で受信バッファ(揺らぎ吸収バッファ)内のパケットの個数を監視し、パケットの個数が時間と共に増大又は減少しているかに応じて、基準値を変更するパケット処理装置が開示されている。
Further,
しかしながら、特許文献1、2の技術は、いずれも、開始蓄積パケット数等の基準値自体を調整するものであり、揺らぎ吸収バッファのバッファサイズを調整するために、揺らぎ吸収バッファにパケットを挿入したり、揺らぎ吸収バッファからパケットを削除したりするものではない。
However, the techniques of
本発明の目的は、揺らぎ吸収バッファの蓄積パケット数のバッファサイズを調整するために、揺らぎ吸収バッファにパケットを挿入又は削除するにあたり、映像又は音声の品質劣化を低減させることができる技術を提供することである。 An object of the present invention is to provide a technique capable of reducing deterioration in video or audio quality when a packet is inserted into or deleted from a fluctuation absorbing buffer in order to adjust the buffer size of the number of accumulated packets in the fluctuation absorbing buffer. That is.
(1)本発明の一局面によるパケット挿入削除方法は、IPネットワークを介して接続された送信装置から連続再生対象となる音声又は映像パケットを受信して揺らぎ吸収バッファに格納する受信装置が、前記揺らぎ吸収バッファに蓄積されているパケットを挿入又は削除するパケット挿入削除方法であって、前記揺らぎ吸収バッファに格納されているパケットの蓄積パケット数をカウントするカウントステップと、前記カウントステップによるカウント結果に基づいて、前記揺らぎ吸収バッファにパケットを挿入又は削除するバッファサイズ変更ステップとを備え、前記バッファサイズ変更ステップは、前記揺らぎ吸収バッファから1つのパケットを削除する場合、音声又は映像を含む有効パケットが連続して2つ以上存在すれば、これら連続する有効パケットのうち、中央に位置する有効パケットと、当該有効パケットに連続して位置する有効パケットとの2つの有効パケットをオーバーラップ加算して削除することを特徴とする。
(1) In the packet insertion / deletion method according to one aspect of the present invention, the receiving device that receives an audio or video packet to be continuously reproduced from a transmitting device connected via an IP network and stores the packet in a fluctuation absorbing buffer is provided. A packet insertion / deletion method for inserting or deleting a packet accumulated in a fluctuation absorbing buffer, the counting step counting the number of accumulated packets of the packet stored in the fluctuation absorbing buffer, and a count result by the counting step And a buffer size changing step for inserting or deleting a packet in the fluctuation absorbing buffer. When the buffer size changing step deletes one packet from the fluctuation absorbing buffer, an effective packet including audio or video is included. If there are two or more in succession, these Of the effective packets continue, the effective packet located in the center, and deletes two valid packets overlap-add to the effective packet positioned consecutively to the valid packet.
また、本発明の別の一局面による通話システムは、IPネットワークを介して接続された送信装置及び受信装置を備える通話システムであって、前記受信装置は、前記送信装置から連続再生対象となる音声又は映像パケットを格納する揺らぎ吸収バッファと、前記揺らぎ吸収バッファに格納されているパケットの蓄積パケット数をカウントするカウント手段と、前記カウント手段によるカウント結果に基づいて、前記揺らぎ吸収バッファにパケットを挿入又は削除するバッファサイズ変更手段とを備え、前記バッファサイズ変更手段は、前記揺らぎ吸収バッファから1つのパケットを削除する場合、音声又は映像を含む有効パケットが連続して2つ以上存在すれば、これら連続する有効パケットのうち、中央に位置する有効パケットと、当該有効パケットに連続して位置する有効パケットとの2つの有効パケットをオーバーラップ加算して削除することを特徴とする。
A call system according to another aspect of the present invention is a call system including a transmission device and a reception device connected via an IP network, and the reception device receives audio to be continuously reproduced from the transmission device. Alternatively, a fluctuation absorbing buffer for storing video packets, a counting means for counting the number of packets stored in the fluctuation absorbing buffer, and a packet inserted into the fluctuation absorbing buffer based on a count result by the counting means Or a buffer size changing means for deleting, and when the buffer size changing means deletes one packet from the fluctuation absorbing buffer, if there are two or more valid packets containing audio or video in succession, these buffer size changing means of the effective consecutive packets, the effective packet positioned in the center, the And deletes the two valid packets between the effective packet positioned continuously in effect packets overlap-add to.
この構成によれば、揺らぎ吸収バッファから1つのパケットを削除する場合、有効パケットが2つ以上連続する区間の中間(真ん中)に位置する2つのパケットをオーバーラップ加算して1つのパケットを生成することで削除されるため、音声及び映像の品質劣化を低減させることができる。 According to this configuration, when one packet is deleted from the fluctuation absorbing buffer, one packet is generated by overlapping and adding two packets located in the middle (middle) of a section where two or more valid packets are continuous. Therefore, it is possible to reduce the deterioration of audio and video quality.
(2)前記バッファサイズ変更ステップは、前記揺らぎ吸収バッファにパケットを挿入する場合、音声又は映像を含まない無効パケットを挿入するものであり、前記揺らぎ吸収バッファからパケットを削除する場合、過去に挿入した無効パケットがあれば、当該無効パケットを削除することが好ましい。 (2) The buffer size changing step inserts an invalid packet that does not include audio or video when inserting a packet into the fluctuation absorbing buffer, and inserts a past packet when deleting a packet from the fluctuation absorbing buffer. If there is an invalid packet, it is preferable to delete the invalid packet.
この構成によれば、揺らぎ吸収バッファからパケットを削除する場合、過去に挿入された無効パケットがあれば、その無効パケットが削除される。これにより、有効パケットの削除が防止され、有効パケットを削除する場合に比べて、音声及び映像の品質劣化を低減させることができる。 According to this configuration, when a packet is deleted from the fluctuation absorbing buffer, if there is an invalid packet inserted in the past, the invalid packet is deleted. As a result, deletion of valid packets is prevented, and quality degradation of audio and video can be reduced as compared with the case of deleting valid packets.
(3)前記バッファサイズ変更ステップは、前記揺らぎ吸収バッファにパケットを挿入する場合、連続する2つの有効パケットが存在すれば、これら2つの有効パケットの間に無効パケットを挿入することが好ましい。 (3) When inserting a packet into the fluctuation absorbing buffer, the buffer size changing step preferably inserts an invalid packet between these two valid packets if there are two consecutive valid packets.
この構成によれば、無効パケットは、2つの有効パケットの間に挟まれるため、この無効パケットに対してパケットロス隠蔽処理を実行した場合、前後の有効パケットから無効パケットが隠蔽できるため、音声及び映像の連続性が保たれ、音声及び映像を滑らかに再生することが出来る。 According to this configuration, since the invalid packet is sandwiched between two valid packets, when the packet loss concealment process is performed on the invalid packet, the invalid packet can be concealed from the preceding and succeeding valid packets. The continuity of the video is maintained, and the audio and video can be reproduced smoothly.
(4)前記バッファサイズ変更ステップにおいて、一度に挿入又は削除することができるパケット数の上限値が予め定められていることが好ましい。 (4) In the buffer size changing step, an upper limit value of the number of packets that can be inserted or deleted at a time is preferably determined in advance.
この構成によれば、挿入される無効パケットの個数及びオーバーラップ加算されたパケットの個数数が上限値以内に収まり、音声及び映像の品質劣化を低減することができる。 According to this configuration, the number of invalid packets to be inserted and the number of overlap-added packets are within the upper limit value, and quality degradation of audio and video can be reduced.
(5)前記バッファサイズ変更ステップにより挿入された無効パケットに対してパケットロス隠蔽処理を実行する隠蔽処理ステップを更に備えることが好ましい。 (5) It is preferable to further include a concealment processing step for executing packet loss concealment processing on the invalid packet inserted by the buffer size changing step.
この構成によれば、挿入された無効パケットに対してパケットロス隠蔽処理が実行されるため、音声劣化及び映像劣化を低減できる。 According to this configuration, since the packet loss concealment process is executed for the inserted invalid packet, it is possible to reduce audio degradation and video degradation.
(6)前記バッファサイズ変更ステップは、無効パケットを削除した場合において、削除した無効パケットに対応する有効パケットを後から受信した場合、削除した無効パケットの次に無効パケットが存在すれば、当該次の無効パケットと、受信した有効パケットとを入れ換えることが好ましい。 (6) In the buffer size changing step, when an invalid packet is deleted, when a valid packet corresponding to the deleted invalid packet is received later, if there is an invalid packet next to the deleted invalid packet , the next step It is preferable to replace the invalid packet and the received valid packet.
この構成によれば、無効パケットを挿入した後に、当該無効パケットに対応する有効パケットを受信した場合、当該有効パケットが復活されるため、音声及び映像の品質劣化を低減することができる。 According to this configuration, when an invalid packet is inserted and then a valid packet corresponding to the invalid packet is received, the valid packet is restored, so that quality degradation of audio and video can be reduced.
(7)前記パケットは、音声パケットであり、前記バッファサイズ変更ステップは、母音の音声を格納する連続する2つのパケットの間に、無効パケットを挿入することが好ましい。 (7) Preferably, the packet is a voice packet, and the buffer size changing step inserts an invalid packet between two consecutive packets storing vowel voice.
この構成によれば、無効パケットは、母音の音声を含む連続した2つパケットの間に挿入されるため、挿入した無効パケットに対してパケットロス隠蔽処理を実行することで生成された音声が前後のパケットに含まれる音声と連続的に繋げられ、音声の品質劣化を低減させることができる。 According to this configuration, since the invalid packet is inserted between two consecutive packets including the vowel voice, the voice generated by executing the packet loss concealment process on the inserted invalid packet is Can be continuously connected to the voice included in the packet, and quality degradation of the voice can be reduced.
本発明によれば、音声及び映像の品質劣化が低減されるように、揺らぎ吸収バッファのサイズであるジッタバッファサイズを変更することができる。 According to the present invention, it is possible to change the jitter buffer size, which is the size of the fluctuation absorbing buffer, so that the quality degradation of audio and video is reduced.
図1は、本発明の実施の形態による通話システムのネットワーク構成図を示している。図1に示す通話システムは、送信装置1及び受信装置2を備えている。送信装置1及び受信装置2は、IPネットワークを介して接続されている。ここで、IPネットワークは、インターネットプロトコル技術を利用して相互接続されたネットワークであり、TCP(Transmission Control Protocol)/IP(Internet Protocol)の通信プロトコルを用いて、種々のデータが送受信される。
FIG. 1 shows a network configuration diagram of a call system according to an embodiment of the present invention. The call system shown in FIG. 1 includes a
送信装置1は、例えば、VoIP(Voice over Internet Protocol)による通話機能を備える通信装置であり、SIP(Session Initiation Protocol)、H.323、IPv4、又はIPv6等の通信プロトコルを用いて受信装置2との間で通信を行う。そして、送信装置1は、音声及び映像をストリーム伝送するための所定のプロトコルであるRTP(Real-time Transport Protocol)を用いて音声又は映像をパケット化し、受信装置2に送信する。
The
本実施の形態では、送信装置1は、音声信号をRTPによりパケット化して、所定の第1の周期(例えば20msec)で受信装置2に送信するものとする。よって、送信装置1が送信するパケットは、20msecのデジタルの音声信号を含む。なお、音声信号としては、例えば、PCMμ−Law等により8kHzのサンプリング周波数でサンプリングされた信号を採用することができる。なお、送信装置1は映像信号をパケット化してもよい。
In the present embodiment, it is assumed that the
受信装置2は、送信装置1と同一構成の通信装置から構成されている。なお、図1では、説明の便宜上、送信装置1及び受信装置2と記述しているが、両装置とも、相互にパケットを送受信することができる。
The receiving
図2は、図1に示す受信装置2のブロック図を示している。受信装置2は、パケット送受信部21、揺らぎ吸収バッファ22、カウント部23、バッファサイズ変更部24、受信時刻記録部25、基準値記憶部26、隠蔽処理部27、再生部28、観測履歴保持部29、スピーカ30、表示部31、マイク33、及びパケット生成部34を備えている。
FIG. 2 shows a block diagram of the receiving
パケット送受信部21は、送信装置1から第1の周期で送信されるパケットを受信し、このパケットを揺らぎ吸収バッファ22に蓄積する。このパケットは、上述したようにRTPに準拠したパケットであるため、RTPヘッダを含んでいる。よって、パケット送受信部21は、RTPヘッダに含まれるシーケンス番号に従って、受信したパケットを時系列順に揺らぎ吸収バッファ22に蓄積させる。
The packet transmission /
なお、RTPヘッダには、シーケンス番号等が含まれている。シーケンス番号は、音声パケットの送信順序を示す。 Note that the RTP header includes a sequence number and the like. The sequence number indicates the transmission order of voice packets.
また、パケット送受信部21は、パケット生成部34により生成されたパケットを第1の周期TaでIPネットワークに送信する。
Further, the packet transmitting / receiving
また、パケット送受信部21は、受信したパケットの受信時刻を受信時刻記録部25に記録する。この場合、パケット送受信部21は、受信したパケットのシーケンス番号を受信時刻と対応付けて受信時刻記録部25に記録すればよい。
The packet transmitting / receiving
揺らぎ吸収バッファ22は、例えばリングバッファにより構成され、パケット送受信部21により受信されたパケットを時系列順で蓄積する。これにより、送信装置1から送信されたパケットの伝送遅延の揺らぎが吸収される。なお、揺らぎ吸収バッファ22のサイズとしては、後述する基準値よりも大きなサイズが採用されている。
The
カウント部23は、第1の周期以下の所定の第2の周期で、揺らぎ吸収バッファ22に蓄積されている蓄積パケット数をカウントすることでパケットカウント値を算出し、算出したパケットカウント値を観測履歴保持部29に保持させる。観測履歴保持部29は、例えば、揮発性の記憶装置により構成され、カウント部23により算出された過去N(Nは正の整数)回のパケットカウント値を保持する。
The
図3は、カウント部23によるパケットカウント値の算出処理の説明図である。図3に示すように、カウント部23は、第2の周期Tbでパケットカウント値を算出している。
FIG. 3 is an explanatory diagram of packet count value calculation processing by the
ここで、カウント部23は、パケットカウント値の算出タイミングである算出時刻Tkから、過去、第1の周期Ta内に受信したパケットPSについては、カウント値をΔT/Taにより得られる値に設定し、算出時刻Tkから、過去、第1の周期Ta以前に受信したパケットPLについては、カウント値を1に設定することでパケットカウント値を算出する。つまり、パケットPSのパケットカウント値は、受信時刻が算出時刻Tkに近づくにつれて差分ΔTが小さくなるため、値が小さくなる。
Here, the
ここで、パケットPSについては、パケットカウント値を算出するにあたり受信時刻が用いられているため、受信時刻を保持しておく必要がある。一方、パケットPLについては、パケットカウント値を算出するにあたり、受信時刻が不要であるため、受信時刻を記録しておく必要はない。 Here, for the packet PS, since the reception time is used to calculate the packet count value, it is necessary to hold the reception time. On the other hand, for the packet PL, when calculating the packet count value, the reception time is not necessary, so it is not necessary to record the reception time.
そこで、カウント部23は、パケットカウント値の算出処理が終了すると、算出時刻Tkから、過去、第1の周期Taと第2の周期Tbとの差分(=Ta−Tb)以前に受信したパケットについては、受信時刻を受信時刻記録部25から削除する。
Therefore, when the calculation process of the packet count value is completed, the
これにより、パケットカウント値の次の算出時刻である時刻Tk+1において、過去、第1の周期Taに受信したパケットの受信時刻が受信時刻記録部25に保持されている結果、カウント部23は、時刻Tk+1において、過去、第1の周期Taに受信したパケットの受信時刻を取得することができる。こうすることで、受信時刻記録部25の容量を節約することが可能となる。
Thereby, at the time Tk + 1 which is the next calculation time of the packet count value, the reception time of the packet received in the first period Ta in the past is held in the reception
バッファサイズ変更部24は、カウント部23により算出されたパケットカウント値の過去のN回のパケットカウント値を観測履歴保持部29から読み出し、読み出したN回のパケットカウント値から、n番目に小さいパケットカウント値をパケットカウント値の代表値として算出し、算出した代表値が所定の基準値より大きければ、揺らぎ吸収バッファ22に蓄積されているパケットを削除し、代表値が基準値より小さければ、揺らぎ吸収バッファ22にパケットを挿入する。
The buffer
ここで、バッファサイズ変更部24は、代表値が基準値より小さい場合は、代表値が、基準値以上かつ基準値+1未満となるように、揺らぎ吸収バッファ22にパケットを挿入すればよい。
Here, when the representative value is smaller than the reference value, the buffer
例えば、代表値が2.1、基準値が4の場合、代表値が4.1となるように2つのパケットが揺らぎ吸収バッファ22に挿入される。
For example, when the representative value is 2.1 and the reference value is 4, two packets are inserted into the
また、バッファサイズ変更部24は、代表値が基準値より大きい場合は、代表値が基準値以上かつ基準値+1未満となるように、揺らぎ吸収バッファ22からパケットを削除すればよい。
In addition, when the representative value is larger than the reference value, the buffer
例えば、代表値が4.2、基準値が2の場合、代表値が2.2となるように2つのパケットが揺らぎ吸収バッファ22から削除される。
For example, when the representative value is 4.2 and the reference value is 2, two packets are deleted from the
なお、nとしては、N×αにより整数値に丸め込んだ値を採用することが好ましい。また、基準値としては、送信装置1と受信装置2とが双方向通信する場合において、通話システムが許容する通話遅延時間に基づいて予め定められた値が採用されている。つまり、揺らぎ吸収バッファ22の蓄積パケット数が基準値よりも大きければ、揺らぎ吸収バッファ22において、出力待ちのパケット数が増大するため、通話遅延が発生する。そこで、本通話システムでは、n番目のパケットカウント値である代表値が基準値よりも大きい場合(具体的には基準値+1よりも大きい場合)、揺らぎ吸収バッファ22からパケットを削除している。これにより、通話遅延を防止することができる。
As n, it is preferable to adopt a value rounded to an integer value by N × α. Further, as the reference value, a value determined in advance based on the call delay time allowed by the call system when the transmitting
一方、n番目のパケットカウント値である代表値が基準値よりも小さい場合は、揺らぎ吸収バッファ22にパケットを挿入している。これにより、蓄積パケット数が基準値以下になる確率を、α(=n/N)%にすることができる。
On the other hand, when the representative value that is the nth packet count value is smaller than the reference value, the packet is inserted into the
受信時刻記録部25は、例えば揮発性の記憶装置により構成され、パケット送受信部21により受信されたパケットの受信時刻を記録する。基準値記憶部26は、例えば不揮発性の記憶装置により構成され、基準値を記憶する。
The reception
隠蔽処理部27は、揺らぎ吸収バッファ22に挿入された無効パケットに対して、パケットロス隠蔽処理を行うと共に、揺らぎ吸収バッファ22においてパケットが枯渇した場合にパケットロス隠蔽処理を行う。ここで、パケットロス隠蔽処理としては、例えば、無効パケットより過去の音声信号から音声信号の基本周期を検出し、無効パケットの直前の有効パケットの音声信号において、終端から基本周期分前の区間の音声波形を取り出し、この音声波形を20msの期間、繰り返すことで得られる音声波形を無効パケットの音声信号として生成する手法を採用すればよい。
The
また、基本周期を検出する手法としては、現時点から過去に向けてある時間幅の音声信号を基準信号として設定し、基準信号を音声信号に対して現時点から過去に向けてスライドさせ、基準信号と音声信号との相関を求めることで基本周期を検出する手法であって、基準信号のスライド量が増大するにつれて、基準信号の時間幅を増大させる手法を採用すればよい。また、基本周期を検出する手法としては、上記の手法に代えて、特許第3219868号公報に記載された手法を採用してもよい。なお、無効パケットには音声信号が含まれていない。また、有効パケットには音声信号が含まれている。 In addition, as a method for detecting the basic period, an audio signal having a time width from the current time to the past is set as a reference signal, the reference signal is slid from the current time to the past, and the reference signal and A method of detecting the basic period by obtaining a correlation with the audio signal, and a method of increasing the time width of the reference signal as the slide amount of the reference signal increases may be adopted. Further, as a technique for detecting the fundamental period, a technique described in Japanese Patent No. 3321868 may be employed instead of the above technique. The invalid packet does not include a voice signal. The valid packet includes a voice signal.
再生部28は、揺らぎ吸収バッファ22の蓄積パケット数が基準値以上となった場合、揺らぎ吸収バッファ22からパケットを第1の周期Taで時系列順に読み出し、読み出したパケットから音声信号を取り出し、取り出した音声信号を逆符号化処理及びデジタルアナログ変換処理した後、スピーカ30に出力する。ここで、再生部28は、揺らぎ吸収バッファ22から取り出したパケットが音声信号を含まない無効パケットである場合、隠蔽処理部27にパケットロス隠蔽処理を実行させ、実行処理後の音声信号をスピーカ30に出力する。
When the number of packets stored in the
観測履歴保持部29は、例えば不揮発性の記憶装置により構成され、カウント部23により算出された過去N回のパケットカウント値を保持する。
The observation
スピーカ30は再生部28から出力される音声信号に従って、音声を出力する。表示部31は、例えば液晶表示パネルにより構成され、再生部28から出力される映像信号に従って、映像を表示する。
The
マイク33は、通話者の音声を電気信号である音声信号に変換する。パケット生成部34は、マイク33から出力される音声信号を20ms毎に分割し、分割した音声信号をRTPに従ってパケット化してパケット送受信部21に出力する。
The
図4は、揺らぎ吸収バッファ22の役割を説明するための図である。図4に示すように、送信装置1は、音声信号VSを符号化処理及びアナログデジタル変換処理した後、パケット化して、20msの周期で送信する。図4では、1〜8の番号が付された8個のパケットが送信装置1から20msの間隔で出力されていることが分かる。
FIG. 4 is a diagram for explaining the role of the
送信装置1から送信されたパケットはIPネットワークを介して受信装置2で受信されることになるが、IPネットワークを構成する各伝送路の特性の相違や、時々刻々変動するIPネットワークのトラフィック状況により、送信装置1から20msの周期で送信されたパケットが受信装置2にまで到達するまでの時間である伝送遅延は、パケット毎に大きく相違し、伝送遅延揺らぎが発生する。よって、受信装置2によるパケットの受信間隔は不等間隔になる。
A packet transmitted from the
そこで、この遅延揺らぎを吸収するために、揺らぎ吸収バッファ22が設けられている。図4においては、揺らぎ吸収バッファ22のバッファサイズはパケット3個分とされている。また、受信装置2は、1番目のパケットを受信してから、遅延時間Td経過した時刻T1において、1番目のパケットに復号化処理及びデジタルアナログ変換処理施して再生を開始している。
In order to absorb this delay fluctuation, a
図4の場合、時刻T1から20ms経過後の2番目のパケットの再生時刻である時刻T2において、揺らぎ吸収バッファ22は、2番目のパケットを蓄積している。よって、受信装置2は、時刻T2において、2番目のパケットを再生することができる。
In the case of FIG. 4, the
一方、3番目のパケットは、伝送遅延が極端に大きいため、時刻T3において、受信装置2に到達しておらず、揺らぎ吸収バッファ22において、パケットの枯渇が生じている。そのため、受信装置2は、時刻T3において、3番目のパケットを再生することができず、音抜けが発生する。
On the other hand, since the third packet has an extremely large transmission delay, it does not reach the receiving
また、3〜7番目のパケットは輻輳解消後に短時間で連続して受信装置2に到達しており、7番目のパケットが受信装置2に到達したとき、揺らぎ吸収バッファ22には、5、6番目のパケットが存在するが、揺らぎ吸収バッファ22に空きがあるため、7番目のパケットは破棄されず、揺らぎ吸収バッファ22に格納される。よって、時刻T7において、7番目のパケットが再生される。
Further, the third to seventh packets reach the receiving
よって、時刻T7において、揺らぎ吸収バッファ22に7番目のパケットが蓄積されていないため、音抜けが発生する。
Therefore, at time T7, since the seventh packet is not accumulated in the
このように、伝送遅延揺らぎの特性は動的に変化するため、揺らぎ吸収バッファ22のバッファサイズを固定サイズにすると、想定される伝送遅延揺らぎよりも充分に長くせざるを得ない。また、揺らぎ吸収バッファ22のバッファサイズを充分に長くし、かつ、遅延時間Tdを充分に長くすれば、音抜けの発生は防止できるが、遅延時間Tdが長いと、揺らぎ吸収バッファ22において、出力待ちのパケットが増大し、通話遅延が発生してしまう。
As described above, since the characteristics of the transmission delay fluctuation dynamically change, if the buffer size of the
図5は、伝送遅延と伝送遅延の発生頻度との関係を示す伝送遅延特性のグラフの一例を示している。なお、図5において、縦軸は、発生頻度を示し、横軸は伝送遅延を示している。また、図6は、揺らぎ吸収バッファ22の最適なバッファサイズを説明するための図である。図5において、dminは最小の伝送遅延を示し、dmaxは最大の伝送遅延を示している。図6では、k−1番目のパケットの伝送遅延はdminであり、k番目のパケットの伝送遅延はdであり、k+1番目のパケットの伝送遅延はdmaxである。
FIG. 5 shows an example of a transmission delay characteristic graph showing the relationship between the transmission delay and the frequency of occurrence of the transmission delay. In FIG. 5, the vertical axis represents the occurrence frequency, and the horizontal axis represents the transmission delay. FIG. 6 is a diagram for explaining the optimum buffer size of the
この場合、受信装置2による最適な出力の待ち時間は下記のようになる。i)dmaxで届いたパケットは直ちに出力する。ii)dminで届いたパケットは、dmax−dmin待ってから出力する。iii)dで届いたパケットはdmax−d待ってから出力する。
In this case, the optimum output waiting time by the receiving
よって、揺らぎ吸収バッファ22におけるパケットの枯渇を回避するためには、揺らぎ吸収バッファ22のバッファサイズbufをbuf≧dmax−dminとすればよいが、伝送遅延特性のdmaxが極端に大きくなると、つまり、図5のグラフの右端の尾が極端に長くなると、バッファサイズbufの値が大きくなってしまう。
Therefore, in order to avoid packet depletion in the
また、図5のグラフに示すように、伝送遅延が増大するにつれて発生頻度が低下しているため、真のdmaxを観測するには、膨大な数のパケットの伝送遅延を観測する必要がある。 Further, as shown in the graph of FIG. 5, since the frequency of occurrence decreases as the transmission delay increases, in order to observe the true dmax, it is necessary to observe the transmission delay of a huge number of packets.
そのため、図5のグラフでは、真のdmaxではなく、伝送特性の分布の上位数%を切り捨てる値がdmaxとみなされている。この場合、dmax以上の伝送遅延が発生するとパケットの枯渇が発生する。 Therefore, in the graph of FIG. 5, not the true dmax, but a value that rounds down the top few percent of the distribution of transmission characteristics is regarded as dmax. In this case, when a transmission delay of dmax or more occurs, packet depletion occurs.
したがって、パケットの枯渇を防止するためにはバッファサイズbufをdmaxより大きく設定することが好ましいが、そうると、dmaxが大きい場合、揺らぎ吸収バッファ22において、出力待ちの待ちパケットが増大する結果、出力遅延が生じてしまう。このような出力遅延は、IP電話では通話遅延となって現れるため、極力低く抑える方が好ましい。そこで、本通話システムでは、上述の処理を実行することで、パケットの枯渇を防止すると同時に、通話遅延の防止を図っているのである。
Therefore, in order to prevent packet depletion, it is preferable to set the buffer size buf to be larger than dmax. However, when dmax is large, as a result, the number of waiting packets to be output in the
図7は、図1に示す受信装置2の処理を示すフローチャートである。なお、図2に示す送信装置1は、受信装置2に対して第1の周期Taでパケットを送信しているものとする。まず、ステップS1において、カウント部23は、前回、パケットカウント値の算出タイミングを算出してから、第2の周期Tbが経過して、パケットカウント値の算出タイミングとなったか否かを判定する。そして、カウント部23は、パケットカウント値の算出タイミングになったと判定すると(ステップS1でYES)、現在、揺らぎ吸収バッファ22に蓄積されているパケット数である蓄積パケット数をカウントする(ステップS2)。一方、カウント部23は、パケットカウント値の算出タイミングになっていないと判定すると(ステップS1でNO)、処理をステップS1に戻す。
FIG. 7 is a flowchart showing processing of the receiving
次に、カウント部23は、パケットカウント値の算出処理を実行して、パケットカウント値を算出する(ステップS3)。
Next, the
図8は、パケットカウント値の算出処理の詳細を示すフローチャートである。まず、カウント部23は、現在時刻をパケットカウント値の算出時刻として特定する(ステップS21)。ここで、受信装置2は時計を有しているため、この時計を用いて算出時刻が特定される。
FIG. 8 is a flowchart showing details of the packet count value calculation process. First, the
次に、カウント部23は、揺らぎ吸収バッファ22に蓄積されているパケットのうち、図3に示すように算出時刻Tkから、過去、第1の周期Ta内に受信された各パケットの受信時刻を特定する(ステップS22)。この場合、カウント部23は、受信時刻記録部25に記録された受信時刻に対応付けられたシーケンス番号を特定することで、各パケットの受信時刻を特定する。
Next, the
次に、カウント部23は、算出時刻Tkから、過去、第1の周期Ta内に受信された各パケットについて、算出時刻Tkと受信時刻との差分ΔTを算出する(ステップS23)。次に、カウント部23は、過去、第1の周期Ta内に受信された各パケットについて、ΔT/Taを算出し、このΔT/Taを、各パケットのカウント値として設定する(ステップS24)。
Next, the
次に、カウント部23は、揺らぎ吸収バッファ22に蓄積されているパケットのうち、算出時刻Tkから、過去、第1の周期Ta以前に受信されたパケットについては、カウント値を1として設定する(ステップS25)。
Next, the
次に、カウント部23は、ステップS24,S25で設定したカウント値を用いて、揺らぎ吸収バッファ22の蓄積パケット数をカウントすることで、パケットカウント値を算出する(ステップS26)。例えば、算出時刻Tkから、過去、第1の周期Ta以前に受信されたパケット数が1個、算出時刻Tkから、過去、第1の周期Ta内に受信されたパケット数が2個であり、この2個のパケットの受信時刻がTi、Tjとすると、パケットカウント値は、1+(Tk−Ti)/Ta+(Tk−Tj)/Taとなる。
Next, the
次に、カウント部23は、算出時刻Tkから、過去、Ta−Tb以前に受信したパケットについては、受信時刻記録部25から受信時刻を削除する(ステップS27)。
Next, the
図7に戻り、ステップS4において、カウント部23は、算出時刻Tkにおけるパケットカウント値を観測履歴保持部29に保持させる。この場合、カウント部23は、観測履歴保持部29に保持されているパケットカウント値の個数がN個となるように、最古のパケットカウント値を観測履歴保持部29から削除する。
Returning to FIG. 7, in step S <b> 4, the
次に、バッファサイズ変更部24は、観測履歴保持部29に記憶されているN個のパケットカウント値のうち、n番目に小さいパケットカウント値を代表値として特定する(ステップS5)。
Next, the buffer
図9は、パケットカウント値と、パケットカウント値の算出時刻との関係を示した模式図であり、縦軸がパケットカウント値を示し、横軸がパケットカウント値の算出時刻を示している。図9では、N=9、n=3とされている。したがって、バッファサイズ変更部24は、図9で示す左端から2番目の時刻Tk−7のパケットカウント値が、3番目に小さいため、時刻Tk−7のパケットカウント値を代表値として特定する。
FIG. 9 is a schematic diagram showing the relationship between the packet count value and the calculation time of the packet count value. The vertical axis shows the packet count value, and the horizontal axis shows the calculation time of the packet count value. In FIG. 9, N = 9 and n = 3. Accordingly, the buffer
次に、バッファサイズ変更部24は、代表値が基準値より大きいか否かを判定し、代表値≧基準値+1の場合(ステップS6でYES)、代表値が基準値以上かつ基準値+1未満となる個数のパケットを揺らぎ吸収バッファ22から削除する(ステップS7)。
Next, the buffer
次に、バッファサイズ変更部24は、観測履歴保持部29に保持されているN個のパケットカウント値のそれぞれから、ステップS7で削除したパケット数を差し引き、N個のパケットカウント値を更新し、観測履歴を更新する(ステップS8)。例えば、削除したパケット数が1個であるとすると、N個のパケットカウント値の全てから1が減算される。これにより、揺らぎ吸収バッファ22からパケットを削除した事実が観測履歴に反映される。
Next, the buffer
一方、ステップS6において、代表値が基準値+1未満であり(ステップS6でNO)、かつ、代表値が基準値以上(ステップS9でNO)の場合、バッファサイズ変更部24は、揺らぎ吸収バッファ22に対してパケットの削除及び挿入を行わない(ステップS10)。
On the other hand, in step S6, when the representative value is less than the reference value +1 (NO in step S6) and the representative value is greater than or equal to the reference value (NO in step S9), the buffer
一方、代表値<基準値の場合(ステップS9でYES)、バッファサイズ変更部24は、代表値が基準値以上かつ基準値+1未満となる個数のパケットを揺らぎ吸収バッファ22に挿入する(ステップS11)。
On the other hand, if the representative value is smaller than the reference value (YES in step S9), the buffer
次に、バッファサイズ変更部24は、観測履歴保持部29に保持されているN個のパケットカウント値のそれぞれに対し、ステップS11で挿入したパケット数を加算し、N個のパケットカウント値を更新し、観測履歴を更新する(ステップS12)。例えば、挿入したパケット数が1個であるとすると、N個のパケットカウント値の全てに1が加算される。これにより、揺らぎ吸収バッファ22にパケットを挿入した事実が観測履歴に反映される。
Next, the buffer
そして、ステップS8、S10、又はS12の処理が終了されると、処理がステップS1に戻され、次のパケットカウント値の算出時刻が到来すると、ステップS2以降の処理が実行される。 When the process of step S8, S10, or S12 is completed, the process returns to step S1, and when the next packet count value calculation time arrives, the processes after step S2 are executed.
図10(a)はバッファサイズ変更部24によるパケット挿入時の処理を示した模式図であり、図10(b)はバッファサイズ変更部24によるパケット削除時の処理を示した模式図である。図10(a)の例では、バッファサイズ変更部24は、有効パケットである4番目のパケットと5番目のパケットとの間に無効パケットを挿入している。図10(b)の例では、バッファサイズ変更部24は、有効パケットである4番目のパケットと5番目のパケットとをオーバーラップ加算して2つのパケット長を1つのパケット長にすることで、1つのパケットを削除している。
FIG. 10A is a schematic diagram showing processing at the time of packet insertion by the buffer
次に、揺らぎ吸収バッファ22にパケットを挿入又は削除を行う処理を具体的に説明する。図2に示すバッファサイズ変更部24は、揺らぎ吸収バッファ22から1つのパケットを削除する場合、音声信号又は映像信号を含む有効パケットが連続して2つ以上存在すれば、これら連続する有効パケットのうち、中間に位置する連続する2つの有効パケットをオーバーラップ加算して削除する。
Next, a process for inserting or deleting a packet in the
図11は、バッファサイズ変更部24がオーバーラップ加算により1つのパケットを削除する処理の説明図であり、(a)は削除前の揺らぎ吸収バッファ22を示し、(b)は削除後の揺らぎ吸収バッファ22を示している。
FIG. 11 is an explanatory diagram of a process in which the buffer
図11に示すリードポインタRPは、リングバッファ構造を有する揺らぎ吸収バッファ22の開始アドレスを示し、ライトポインタWPは、揺らぎ吸収バッファ22の終了アドレスを示している。また、図11において、各升は1つのパケットを示しており、升内の数字はパケットの時系列の順序を示している。また、内部が白色の升は無効パケットを示し、内部がグレーの升は有効パケットを示している。
The read pointer RP shown in FIG. 11 indicates the start address of the
図11(a)の場合、1番目〜2番目の有効パケットの区間ではなく、4番目〜7番目の有効パケットの区間に位置する5番目と6番目との有効パケットが、図11(b)に示すようにオーバーラップ加算により1つのパケットに纏められ、1つのパケットが削除されている。 In the case of FIG. 11A, the fifth and sixth valid packets located in the fourth to seventh valid packet sections are not the first to second valid packet sections. As shown in FIG. 5, one packet is collected by overlapping addition, and one packet is deleted.
ここで、図11(a)に示す1番目〜2番目の有効パケットの区間でオーバーラップ加算を行うと、オーバーラップ加算により生成された1つのパケットの次に無効パケットが存在することになるため、パケットロス隠蔽処理を行った場合の音声劣化が大きくなる可能性がある。一方、5番目の有効パケットと6番目の有効パケットとをオーバーラップ加算すると、オーバーラップ加算により生成された1つのパケットの前後のパケットは有効パケットであるため、パケットロス隠蔽処理による音声劣化を小さくすることができる。 Here, if overlap addition is performed in the interval of the first to second valid packets shown in FIG. 11A, an invalid packet exists after one packet generated by overlap addition. There is a possibility that voice degradation will increase when packet loss concealment processing is performed. On the other hand, if the fifth valid packet and the sixth valid packet are overlap-added, the packets before and after one packet generated by overlap addition are valid packets, so that the voice deterioration due to the packet loss concealment process is reduced. can do.
つまり、有効パケットが2つ以上連続していれば、オーバーラップ加算により1つのパケットを削除することができるが、有効パケットの連続数が多い区間でオーバーラップ加算した方がパケットロス隠蔽処理を行ったときの音声劣化を少なくすることができる。 In other words, if two or more valid packets are consecutive, one packet can be deleted by overlap addition, but packet loss concealment processing is performed when overlap addition is performed in a section where there are many consecutive valid packets. It is possible to reduce voice deterioration when
よって、揺らぎ吸収バッファ22において、有効パケットが連続する区間が複数存在する場合、有効パケットの連続数が多い区間の中間の有効パケットを用いてオーバーラップ加算を行うようにしている。
Therefore, in the
ここで、オーバーラップ加算としては、図11(c)に示すように、三角窓関数RF1,RF2を用いたオーバーラップ加算を採用することができる。具体的には、バッファサイズ変更部24は、5番目のパケットの音声信号に対して、三角窓関数RF1を用いた窓関数処理を行い、6番目のパケットの音声信号に対しては、三角窓関数RF2を用いた窓関数処理を行い、窓関数処理後の両音声信号を加算して1つの音声信号を生成し、これを1つにパケット化することで、オーバーラップ加算を行えばよい。
Here, as the overlap addition, overlap addition using triangular window functions RF1 and RF2 can be adopted as shown in FIG. Specifically, the buffer
ここで、三角窓関数RF1としては、時間幅が20ms、最大値が1、最小値が0であり、時間が経過するにつれて値が減少する一次関数を採用することができる。また、三角窓関数RF2としては、時間幅が20ms、最大値が1、最小値が0であり、時間が経過するにつれて値が増大する一次関数を採用することができる。 Here, as the triangular window function RF1, a linear function having a time width of 20 ms, a maximum value of 1, a minimum value of 0, and a value that decreases as time passes can be employed. As the triangular window function RF2, a linear function having a time width of 20 ms, a maximum value of 1 and a minimum value of 0 and increasing in value as time passes can be employed.
また、バッファサイズ変更部24は、揺らぎ吸収バッファ22からパケットを削除する場合、過去に挿入した無効パケットがあれば、当該無効パケットを削除する。
Further, when deleting a packet from the
図12は、バッファサイズ変更部24が1つの無効パケットを削除する処理の説明図であり、(a)は削除前の揺らぎ吸収バッファ22を示し、(b)は削除後の揺らぎ吸収バッファ22を示している。
FIG. 12 is an explanatory diagram of a process in which the buffer
図12(a)においては、3番目と4番目とのパケットが無効パケットである。そのため、バッファサイズ変更部24は、3番目又は4番目のパケットのいずれかを削除することで、1つのパケットを削除する。ここで、揺らぎ吸収バッファ22に複数の無効パケットが存在する場合は、例えば、ランダムに1つの無効パケットを選択し、選択した無効パケットを削除するようにしてもよい。或いは、バッファサイズ変更部24は、無効パケットが2つ以上連続して存在する場合は、連続している領域の無効パケットを優先して抽出し、抽出した無効パケットのうち、ランダムに1つの無効パケットを選択して削除するようにしてもよい。
In FIG. 12A, the third and fourth packets are invalid packets. Therefore, the buffer
また、バッファサイズ変更部24は、揺らぎ吸収バッファ22にパケットを挿入する場合、連続する2つの有効パケットが存在すれば、これら2つの有効パケットの間に無効パケットを挿入する。
Further, when inserting a packet into the
図13は、バッファサイズ変更部24が1つのパケットを挿入する処理の説明図であり、(a)は挿入前の揺らぎ吸収バッファ22を示し、(b)は挿入後の揺らぎ吸収バッファ22を示している。
FIG. 13 is an explanatory diagram of processing in which the buffer
図13(a)、(b)に示すように、5番目の有効パケットと6番目の有効パケットとの間に1つの無効パケットが挿入されている。これは、5番目の有効パケットと6番目の有効パケットとの間に1つの無効パケットを挿入するのが、連続する有効パケットの個数がより多くなるためである。 As shown in FIGS. 13A and 13B, one invalid packet is inserted between the fifth valid packet and the sixth valid packet. This is because inserting one invalid packet between the fifth valid packet and the sixth valid packet increases the number of consecutive valid packets.
例えば、1番目の有効パケットと2番目の有効パケットとの間に無効パケットを挿入したとしても、挿入した無効パケットの前後に有効パケットが存在するため、パケット隠蔽処理を行うことは可能である。 For example, even if an invalid packet is inserted between the first valid packet and the second valid packet, the packet concealing process can be performed because the valid packet exists before and after the inserted invalid packet.
しかしながら、2番目の有効パケットの前後が無効パケットとなってしまうため、有効パケットの連続数が小さくなってしまう。一方、5番目の有効パケットと6番目の有効パケットとの間に、無効パケットを挿入すると、全ての有効パケットが連続することになる。ここで、パケットロス隠蔽処理を行う場合、有効パケットの連続数が多い方が音声劣化を小さくすることができる。そこで、バッファサイズ変更部24は、揺らぎ吸収バッファ22において有効パケットが連続する区間が複数存在する場合、有効パケットの連続数が多い区間の中間に無効パケットを挿入している。
However, before and after the second valid packet become invalid packets, the number of consecutive valid packets becomes small. On the other hand, if an invalid packet is inserted between the fifth valid packet and the sixth valid packet, all the valid packets are continuous. Here, when packet loss concealment processing is performed, voice deterioration can be reduced as the number of consecutive valid packets increases. Therefore, when there are a plurality of sections where valid packets continue in the
また、バッファサイズ変更部24は、一度に挿入又は削除することができるパケット数の上限値が予め定められている。
The buffer
図14は、揺らぎ吸収バッファ22に5つのパケットを一度に挿入する場合の処理を説明するための図であり、(a)は挿入前の揺らぎ吸収バッファ22を示し、(b)は挿入後の揺らぎ吸収バッファ22を示している。図14(a)、(b)においては、1番目の有効パケットと2番目の有効パケットとの間に5つの無効パケットが挿入されている。この場合、無効パケットが連続して存在しているため、音声劣化が増大する虞がある。そこで、本実施の形態では、無効パケットの挿入個数に上限値が設けられている。ここで、「1度に」とは、上述した第2の周期Tbが到達した時に実行される1回の処理を指している。
FIG. 14 is a diagram for explaining processing when five packets are inserted into the
例えば、図14(a)において、上限値=3に設定されていたとすると、5つの無効パケットを挿入する必要がある場合であっても、3個の無効パケットしか挿入されなくなる。 For example, in FIG. 14A, if the upper limit value is set to 3, even if it is necessary to insert five invalid packets, only three invalid packets are inserted.
これにより、無効パケットの連続数が一定個数以上になることが防止され、パケットロス隠蔽処理による音声劣化を小さくすることができる。 As a result, the number of consecutive invalid packets is prevented from exceeding a certain number, and voice degradation due to packet loss concealment processing can be reduced.
また、バッファサイズ変更部24は、無効パケットを削除した場合において、削除した無効パケットに対応する有効パケットを後から受信した場合、削除した無効パケットの他に無効パケットが存在すれば、他の無効パケットと受信した有効パケットとを入れ換える。
Further, when the invalid packet is deleted, the buffer
図15は、無効パケットを削除した後に、削除した無効パケットに対応する有効パケットを受信した場合の処理を説明する図であり、(a)は削除前の揺らぎ吸収バッファ22を示し、(b)は削除後の揺らぎ吸収バッファ22を示し、(c)は入れ換え後の揺らぎ吸収バッファ22を示している。
FIG. 15 is a diagram for explaining processing when a valid packet corresponding to a deleted invalid packet is received after deleting the invalid packet. FIG. 15A shows the
図15(a)、(b)に示すように3番目の無効パケットが削除されている。その後、図15(c)に示すように3番目の無効パケットに対応する3番目の有効パケットが受信されている。 As shown in FIGS. 15A and 15B, the third invalid packet is deleted. Thereafter, as shown in FIG. 15C, the third valid packet corresponding to the third invalid packet is received.
この場合、バッファサイズ変更部24は、3番目の無効パケットの次の4番目のパケットが無効パケットであるため、この4番目の無効パケットを受信した3番目の有効パケットに入れ換える。これにより、3番目の有効パケットを復活させることができ、音声劣化を低減させることができる。
In this case, since the fourth packet next to the third invalid packet is an invalid packet, the buffer
ここで、バッファサイズ変更部24は、揺らぎ吸収バッファ22にパケットが蓄積されると蓄積されたパケットに対応する無効パケットが揺らぎ吸収バッファ22に蓄積されているか否かを判定する。そして、バッファサイズ変更部24は、対応する無効パケットが揺らぎ吸収バッファ22に蓄積されている場合は、当該無効パケットの次に無効パケットが格納されているか否かを判定し、無効パケットが格納されている場合は、次の無効パケットを削除し、削除した箇所に受信した有効パケットを挿入することで、次の無効パケットと受信した有効パケットとを入れ換えればよい。
Here, when a packet is accumulated in the
一方、バッファサイズ変更部24は、揺らぎ吸収バッファ22に蓄積されたパケットに対応する無効パケットが揺らぎ吸収バッファ22に蓄積されていない場合、或いは、対応する無効パケットの次に無効パケットが格納されていない場合、上記の入れ換えを行わない。なお、バッファサイズ変更部24は、無効パケットのシーケンス番号と同じシーケンス番号を有するパケットが揺らぎ吸収バッファ22に蓄積された場合、無効パケットに対応する有効パケットが受信されたと判断すればよい。
On the other hand, when the invalid packet corresponding to the packet accumulated in the
また、バッファサイズ変更部24は、連続する2つの有効パケットの間にパケットを挿入する場合、隠蔽処理部27に対して、前に位置する有効パケットを用いてパケットロス隠蔽処理を実行させ、隠蔽処理されたパケットを生成させ、このパケットを揺らぎ吸収バッファ22に挿入するようにしてもよい。
In addition, when inserting a packet between two consecutive valid packets, the buffer
図16は、バッファサイズ変更部24が無効パケットに代えて隠蔽処理されたパケットを揺らぎ吸収バッファ22に挿入させる場合の処理を説明する図であり、(a)は挿入前の揺らぎ吸収バッファ22を示し、(b)は挿入後の揺らぎ吸収バッファ22を示している。
FIG. 16 is a diagram for explaining processing when the buffer
図16(a)、(b)に示すように、3番目の有効パケットと4番目の有効パケットとの間に隠蔽処理されたパケットが挿入されている。 As shown in FIGS. 16A and 16B, a concealed packet is inserted between the third valid packet and the fourth valid packet.
これにより、再生部28が揺らぎ吸収バッファ22からパケットを読み出す際に、パケットロス隠蔽処理を実行する必要がなくなり、再生時におけるパケットロス隠蔽処理の処理遅延を低減することができる。
Thereby, when the reproducing
なお、バッファサイズ変更部24は、無効パケットを挿入する場合、母音の音声を含む連続する2つのパケットの間に、無効パケットを挿入することが好ましい。これにより、挿入した無効パケットに対してパケットロス隠蔽処理を実行することで生成された音声が、前後のパケットに含まれる音声と連続的に繋げられ、音声劣化を低減させることができる。
In addition, when inserting an invalid packet, the buffer
図17は、バッファサイズ変更部24による削除処理を示したフローチャートである。
FIG. 17 is a flowchart showing the deletion process by the buffer
まず、ステップS51において、バッファサイズ変更部24は、パケットの削除要求数が予め定められたパケット最大削除数(上限値)以下であるか否かを判定し、削除要求数が上限値以下である場合(ステップS51でYES)、削除カウント値DNを削除要求数に設定する(ステップS52)。一方、削除要求数が上限値より大きい場合(ステップS51でNO)、削除カウント値DNを上限値に設定する(ステップS53)。
First, in step S51, the buffer
次に、バッファサイズ変更部24は、揺らぎ吸収バッファ22において、連続する有効パケットの最大連続数が2以上の場合(ステップS54で2以上)、最大連続数が削除カウント値DNの2倍以上であるか否かを判定する(ステップS55)。ここで、最大連続数が削除カウント値DNの2倍であるか否かを判定するのは、1つのパケットを削除する場合は、2つのパケットがオーバーラップ加算されるため、有効パケットが削除カウント値DNの2倍必要になるからである。
Next, when the maximum number of consecutive valid packets is 2 or more in the fluctuation absorbing buffer 22 (2 or more in step S54), the buffer
そして、バッファサイズ変更部24は、最大連続数が削除カウント値DNの2倍以上であると判定すると(ステップS55でYES)、オーバーラップ加算により削除カウント値DN分のパケットを削除し、削除カウント値DNから削除したパケット数を減じ、削除カウント値DNを更新する(ステップS58)。
If the buffer
一方、ステップS55において、最大連続数が削除カウント値DNの2倍未満である場合(ステップS55でNO)、バッファサイズ変更部24は、削除可能なパケットをオーバーラップ加算によって削除し、削除カウント値DNから削除したパケット数を減じ、削除カウント値DNを更新し(ステップS56)、処理をステップS54に戻す。
On the other hand, when the maximum continuous number is less than twice the deletion count value DN in step S55 (NO in step S55), the buffer
例えば、最大連続数が7、削除カウント値DN(=4)×2が8の場合、連続する7個の有効パケットのうち、6個の有効パケットを2個ずつオーバーラップ加算して、3個のパケットを削除する。そして、削除カウント値DNを、DN=1(=4−3)に更新する。 For example, when the maximum consecutive number is 7 and the deletion count value DN (= 4) × 2 is 8, 6 valid packets are overlapped and added out of 7 consecutive valid packets. Delete the packet. Then, the deletion count value DN is updated to DN = 1 (= 4-3).
一方、ステップS54において、連続する有効パケットの最大連続数が1以下である場合(ステップS54で1以下)、無効パケットを削除し、削除カウント値DNから削除したパケット数を減じ、削除カウント値DNを更新する(ステップS57)。 On the other hand, in step S54, when the maximum number of consecutive valid packets is 1 or less (1 or less in step S54), invalid packets are deleted, and the deleted count value DN is subtracted from the deleted count value DN. Is updated (step S57).
例えば、削除カウント値DNが4、無効パケットの個数が3とすると、3個の無効パケットが削除され、DN=1(=4−3)に更新される。 For example, if the deletion count value DN is 4 and the number of invalid packets is 3, three invalid packets are deleted and updated to DN = 1 (= 4-3).
ステップS59において、バッファサイズ変更部24は、削除カウント値DNが0となったか否かを判定し、削除カウント値DNが0である場合(ステップS59でYES)、処理を終了する。
In step S59, the buffer
一方、ステップS59において、バッファサイズ変更部24は、削除カウント値DNが0になっていない場合(ステップS59でNO)、有効パケットがあれば(ステップS60でYES)、有効パケットを削除して処理を終了する(ステップS61)。この場合、削除される有効パケットは他の有効パケットと連続していないため、オーバーラップ加算によらず、単純に削除される。一方、有効パケットが無ければ(ステップS60でNO)、そのまま処理が終了される。
On the other hand, in step S59, if the deletion count value DN is not 0 (NO in step S59), the buffer
図18は、バッファサイズ変更部24による挿入処理を示したフローチャートである。
FIG. 18 is a flowchart showing insertion processing by the buffer
まず、ステップS71において、バッファサイズ変更部24は、パケットの挿入要求数が予め定められたパケット最大挿入数(上限値)以下であるか否かを判定し、削除要求数が最大挿入数以下である場合(ステップS71でYES)、挿入数を挿入要求数に設定する(ステップS72)。一方、挿入要求数が最大挿入数より大きい場合(ステップS71でNO)、挿入数を最大挿入数に設定する(ステップS73)。
First, in step S71, the buffer
次に、バッファサイズ変更部24は、揺らぎ吸収バッファ22において、連続する有効パケットの最大連続数が0の場合(ステップS74で0)、揺らぎ吸収バッファ22の先頭から挿入数分の無効パケットを挿入し(ステップS75)、処理を終了する。
Next, when the maximum number of consecutive valid packets in the
また、バッファサイズ変更部24は、揺らぎ吸収バッファ22において、連続する有効パケットの最大連続数が2以上の場合(ステップS74で2以上)、連続する有効パケットの区間の真ん中に挿入数分、無効パケットを挿入し(ステップS76)、処理を終了する。
In addition, when the maximum number of consecutive valid packets is 2 or more in the fluctuation absorbing buffer 22 (2 or more in step S74), the buffer
また、バッファサイズ変更部24は、揺らぎ吸収バッファ22において、連続する有効パケットの最大連続数が1の場合(ステップS74で1)、有効パケットの直後に挿入数分、無効パケットを挿入し(ステップS77)、処理を終了する。
When the maximum number of consecutive valid packets is 1 in the fluctuation absorbing buffer 22 (1 in step S74), the buffer
このように、本実施の形態による通話システムによれば、揺らぎ吸収バッファから1つのパケットを削除する場合、有効パケットが2つ以上連続する区間の真ん中に位置する2つのパケットをオーバーラップ加算して1つのパケットを生成することにより1つのパケットを削除しているため、音声及び映像の品質劣化を低減させることができる。 As described above, according to the call system according to the present embodiment, when one packet is deleted from the fluctuation absorbing buffer, two packets positioned in the middle of a section where two or more valid packets are continuous are overlap-added. Since one packet is deleted by generating one packet, it is possible to reduce quality degradation of audio and video.
また、揺らぎ吸収バッファ22にパケットを挿入する場合、連続する2つの有効パケットが存在すれば、これら2つの有効パケットの間に無効パケットが挿入されるため、無効パケットは、2つの有効パケットの間に挟まれることになり、この無効パケットに対してパケットロス隠蔽処理を実行した場合、前後の有効パケットから無効パケットが隠蔽でき、音声及び映像の連続性が保たれ、音声及び映像を滑らかに再生することが出来る。
Further, when a packet is inserted into the
1 送信装置
2 受信装置
21 パケット送受信部
22 揺らぎ吸収バッファ
23 カウント部
24 バッファサイズ変更部
25 受信時刻記録部
26 基準値記憶部
27 隠蔽処理部
28 再生部
29 観測履歴保持部
30 スピーカ
31 表示部
33 マイク
34 パケット生成部
DESCRIPTION OF
Claims (8)
前記揺らぎ吸収バッファに格納されているパケットの蓄積パケット数をカウントするカウントステップと、
前記カウントステップによるカウント結果に基づいて、前記揺らぎ吸収バッファにパケットを挿入又は削除するバッファサイズ変更ステップとを備え、
前記バッファサイズ変更ステップは、前記揺らぎ吸収バッファから1つのパケットを削除する場合、音声又は映像を含む有効パケットが連続して2つ以上存在すれば、これら連続する有効パケットのうち、中央に位置する有効パケットと、当該有効パケットに連続して位置する有効パケットとの2つの有効パケットをオーバーラップ加算して削除するものであり、有効パケットが連続する区間が複数存在する場合、有効パケットの連続数が多い区間において、中央に位置する有効パケットと、当該有効パケットに連続して位置する有効パケットとの2つの有効パケットを用いてオーバーラップ加算することを特徴とするパケット挿入削除方法。 A packet in which a receiving device that receives audio or video packets to be continuously reproduced from a transmitting device connected via an IP network and stores it in a fluctuation absorbing buffer inserts or deletes a packet accumulated in the fluctuation absorbing buffer. An insertion and deletion method,
A counting step of counting the number of accumulated packets of the packets stored in the fluctuation absorbing buffer;
A buffer size changing step for inserting or deleting packets in the fluctuation absorbing buffer based on the counting result of the counting step;
In the buffer size changing step, when one packet is deleted from the fluctuation absorbing buffer, if there are two or more valid packets including audio or video in succession, the buffer size changing step is located at the center of the successive valid packets. If two valid packets, a valid packet and a valid packet positioned consecutively with the valid packet, are overlapped and deleted , and there are multiple consecutive valid packets, the number of consecutive valid packets A packet insertion / deletion method characterized in that overlap addition is performed using two valid packets, ie, a valid packet located in the center and valid packets consecutively located in the valid packet in a section with a large amount of data .
前記バッファサイズ変更ステップは、母音の音声を格納する連続する2つのパケットの間に、無効パケットを挿入することを特徴とする請求項3記載のパケット挿入削除方法。 The packet is a voice packet;
4. The packet insertion / deletion method according to claim 3, wherein the buffer size changing step inserts an invalid packet between two consecutive packets storing vowel sounds.
前記受信装置は、
前記送信装置から連続再生対象となる音声又は映像パケットを格納する揺らぎ吸収バッファと、
前記揺らぎ吸収バッファに格納されているパケットの蓄積パケット数をカウントするカウント手段と、
前記カウント手段によるカウント結果に基づいて、前記揺らぎ吸収バッファにパケットを挿入又は削除するバッファサイズ変更手段とを備え、
前記バッファサイズ変更手段は、前記揺らぎ吸収バッファから1つのパケットを削除する場合、音声又は映像を含む有効パケットが連続して2つ以上存在すれば、これら連続する有効パケットのうち、中央に位置する有効パケットと、当該有効パケットに連続して位置する有効パケットとの2つの有効パケットをオーバーラップ加算して削除するものであり、有効パケットが連続する区間が複数存在する場合、有効パケットの連続数が多い区間において、中央に位置する有効パケットと、当該有効パケットに連続して位置する有効パケットとの2つの有効パケットを用いてオーバーラップ加算することを特徴とする通話システム。
A call system comprising a transmission device and a reception device connected via an IP network,
The receiving device is:
A fluctuation absorbing buffer for storing audio or video packets to be continuously reproduced from the transmission device;
Counting means for counting the number of accumulated packets of the packets stored in the fluctuation absorbing buffer;
Buffer size changing means for inserting or deleting packets in the fluctuation absorbing buffer based on the count result by the counting means,
When the buffer size changing unit deletes one packet from the fluctuation absorbing buffer, if there are two or more valid packets including audio or video in succession, the buffer size changing unit is located at the center of the successive valid packets. If two valid packets, a valid packet and a valid packet positioned consecutively with the valid packet, are overlapped and deleted , and there are multiple consecutive valid packets, the number of consecutive valid packets A call system characterized in that overlap addition is performed using two effective packets, ie, an effective packet located in the center and an effective packet positioned consecutively in the effective packet in a section with a large amount of data.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2009231961A JP5330183B2 (en) | 2009-10-05 | 2009-10-05 | Packet insertion / deletion method and call system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2009231961A JP5330183B2 (en) | 2009-10-05 | 2009-10-05 | Packet insertion / deletion method and call system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2011082708A JP2011082708A (en) | 2011-04-21 |
| JP5330183B2 true JP5330183B2 (en) | 2013-10-30 |
Family
ID=44076324
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2009231961A Active JP5330183B2 (en) | 2009-10-05 | 2009-10-05 | Packet insertion / deletion method and call system |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP5330183B2 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR102050911B1 (en) * | 2018-08-20 | 2019-12-02 | 주식회사 썬즈 | Method for removing audio output delay of full duplex audio transmission and reception system |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2023281805A1 (en) * | 2021-07-07 | 2023-01-12 | 株式会社安川電機 | Communication system, control system, and communication method |
| JP7765745B2 (en) * | 2022-04-01 | 2025-11-07 | オムロン株式会社 | Control system, control device, control method, and control program |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2002271391A (en) * | 2001-03-08 | 2002-09-20 | Nec Eng Ltd | Dynamic jitter buffer control method |
| JP2006171353A (en) * | 2004-12-15 | 2006-06-29 | Nec Engineering Ltd | Voice decoding system |
| JP4774255B2 (en) * | 2005-08-31 | 2011-09-14 | 隆行 荒井 | Audio signal processing method, apparatus and program |
| JP4514161B2 (en) * | 2007-06-14 | 2010-07-28 | Necアクセステクニカ株式会社 | Audio signal receiving apparatus, audio signal communication apparatus, and audio signal receiving method |
-
2009
- 2009-10-05 JP JP2009231961A patent/JP5330183B2/en active Active
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR102050911B1 (en) * | 2018-08-20 | 2019-12-02 | 주식회사 썬즈 | Method for removing audio output delay of full duplex audio transmission and reception system |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2011082708A (en) | 2011-04-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP1143671B1 (en) | Device and method for reducing delay jitter in data transmission | |
| KR101877699B1 (en) | De-jitter buffer update | |
| JP4933605B2 (en) | Method and apparatus for adaptive dejitter buffer | |
| JP2002077233A (en) | Real-time information receiver | |
| JP2005269632A (en) | Communication terminal device, telephone data receiving method, communication system, and gateway | |
| TW200849842A (en) | Method of regulating the transmission jitter within a reception terminal | |
| JPWO2004068098A1 (en) | Voice packet loss concealment device, voice packet loss concealment method, receiving terminal, and voice communication system | |
| JP5330183B2 (en) | Packet insertion / deletion method and call system | |
| JP4076981B2 (en) | Communication terminal apparatus and buffer control method | |
| JP3833490B2 (en) | Apparatus and method for absorbing delay jitter generated in data transmission | |
| KR101516113B1 (en) | Voice decoding apparatus | |
| CN107770124A (en) | A kind of dynamic control method and device of ip voice buffering area | |
| JP6031752B2 (en) | Voice communication apparatus and program | |
| CN102932673A (en) | Video signal and audio signal transmission and synthesis method, system and device | |
| JP5563406B2 (en) | Transmission delay control method, receiver, and call system | |
| JP2007235221A (en) | Fluctuation absorption buffer device | |
| JP4174017B2 (en) | Jitter buffer control method and IP telephone | |
| JP5074749B2 (en) | Voice signal receiving apparatus, voice packet loss compensation method used therefor, program for implementing the method, and recording medium recording the program | |
| JP5691721B2 (en) | Audio data processing device | |
| JP3669660B2 (en) | Call system | |
| JP4684247B2 (en) | Voice communication method and voice communication apparatus | |
| JP5806719B2 (en) | Voice packet reproducing apparatus, method and program thereof | |
| JP2006100933A (en) | Voice communication device | |
| JPH03220835A (en) | Delay fluctuation absorption control system | |
| JP4260123B2 (en) | Output method, output device, communication system, and computer program |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20120116 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120806 |
|
| RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20120925 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130408 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130416 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130611 |
|
| 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: 20130716 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130725 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 5330183 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |