(57)【特許請求の範囲】
【請求項１】
送信装置と、前記送信装置にＩＰネットワークを介して接続された受信装置とを備える通話システムによる伝送遅延制御方法であって、
前記受信装置は、前記送信装置から送信されたパケットを蓄積することで、当該パケットの伝送遅延の揺らぎを吸収する揺らぎ吸収バッファを備え、
前記送信装置が、連続再生対象となる音声信号又は映像信号をパケット化して所定の第１の周期で前記受信装置に送信する送信ステップと、
前記受信装置が、前記送信ステップにより送信されたパケットを前記揺らぎ吸収バッファに格納する受信ステップと、
前記受信装置が、前記第１の周期以下の所定の第２の周期で、前記揺らぎ吸収バッファに蓄積されている蓄積パケット数をカウントすることでパケットカウント値を算出するカウントステップと、
前記カウントステップにより算出されたパケットカウント値に基づいて、前記揺らぎ吸収バッファにパケットを挿入又は削除するバッファサイズ変更ステップとを備え、
前記バッファサイズ変更ステップは、前記パケットカウント値の過去の履歴を基に、パケットカウント値の代表値を算出し、算出した代表値が所定の基準値より大きい場合、前記揺らぎ吸収バッファからパケットを削除し、前記代表値が前記基準値より小さい場合、前記揺らぎ吸収バッファにパケットを挿入することを特徴とする伝送遅延制御方法。
【請求項２】
送信装置と、前記送信装置にＩＰネットワークを介して接続された受信装置とを備える通話システムによる伝送遅延制御方法であって、
前記受信装置は、前記送信装置から送信されたパケットを蓄積することで、当該パケットの伝送遅延の揺らぎを吸収する揺らぎ吸収バッファを備え、
前記送信装置が、連続再生対象となる音声信号又は映像信号をパケット化して所定の第１の周期で前記受信装置に送信する送信ステップと、
前記受信装置が、前記送信ステップにより送信されたパケットを前記揺らぎ吸収バッファに格納する受信ステップと、
前記受信装置が、前記第１の周期以下の所定の第２の周期で、前記揺らぎ吸収バッファに蓄積されている蓄積パケット数をカウントすることでパケットカウント値を算出するカウントステップと、
前記カウントステップにより算出されたパケットカウント値に基づいて、前記揺らぎ吸収バッファにパケットを挿入又は削除するバッファサイズ変更ステップとを備え、
前記カウントステップは、前記パケットカウント値の算出タイミングである算出時刻から、過去、前記第１の周期内に受信したパケットについては、カウント値を前記算出時刻及び受信時刻の差分／前記第１の周期による得られる値に設定し、前記算出時刻から、過去、前記第１の周期以前に受信したパケットについては、カウント値を１に設定することで前記パケットカウント値を算出することを特徴とする伝送遅延制御方法。
【請求項３】
前記受信ステップは、受信したパケットの受信時刻を受信時刻記録部に記録し、
前記カウントステップは、前記パケットカウント値の算出処理が終了すると、算出時刻から、過去、第１の周期と第２の周期との差分以前に受信されたパケットについては、受信時刻を前記受信時刻記録部から削除することを特徴とする請求項２記載の伝送遅延制御方法。
【請求項４】
送信装置と、前記送信装置にＩＰネットワークを介して接続された受信装置とを備える通話システムによる伝送遅延制御方法であって、
前記受信装置は、前記送信装置から送信されたパケットを蓄積することで、当該パケットの伝送遅延の揺らぎを吸収する揺らぎ吸収バッファを備え、
前記送信装置が、連続再生対象となる音声信号又は映像信号をパケット化して所定の第１の周期で前記受信装置に送信する送信ステップと、
前記受信装置が、前記送信ステップにより送信されたパケットを前記揺らぎ吸収バッファに格納する受信ステップと、
前記受信装置が、前記第１の周期以下の所定の第２の周期で、前記揺らぎ吸収バッファに蓄積されている蓄積パケット数をカウントすることでパケットカウント値を算出するカウントステップと、
前記カウントステップにより算出されたパケットカウント値に基づいて、前記揺らぎ吸収バッファにパケットを挿入又は削除するバッファサイズ変更ステップとを備え、
前記受信ステップは、最新のパケットのみ受信時刻を記録し、
前記カウントステップは、前記最新のパケットについては、カウント値を前記差分／前記第１の周期により得られる値に設定し、それ以外のパケットはカウント値を１に設定して前記パケットカウント値を算出することを特徴とする伝送遅延制御方法。
【請求項５】
前記カウントステップは、過去Ｎ（Ｎは正の整数値）回のパケットカウント値を観測履歴保持部に保持し、
前記バッファサイズ変更ステップは、過去Ｎ回のパケットカウント値のうち、ｎ（ｎはＮ未満の正の整数値）番目に小さいパケットカウント値を前記代表値とすることを特徴とする請求項１記載の伝送遅延制御方法。
【請求項６】
前記カウントステップは、前記観測履歴保持部に保持された過去Ｎ回のパケットカウント値に基づいて、スパイク遅延の有無を判定し、スパイク遅延が発生していると判定した場合は、過去Ｎ回のパケットカウント値のうち、過去Ｍ（Ｍ＜Ｎ）回のパケットカウント値を抽出し、
前記バッファサイズ変更ステップは、前記カウントステップにより抽出された過去Ｍ回のパケットカウント値のうち、ｍ（ｍはＭ未満の整数）番目に小さいパケットカウント値を前記代表値として算出することを特徴とする請求項５記載の伝送遅延制御方法。
【請求項７】
送信装置と、前記送信装置にＩＰネットワークを介して接続された受信装置とを備える通話システムによる伝送遅延制御方法であって、
前記受信装置は、前記送信装置から送信されたパケットを蓄積することで、当該パケットの伝送遅延の揺らぎを吸収する揺らぎ吸収バッファを備え、
前記送信装置が、連続再生対象となる音声信号又は映像信号をパケット化して所定の第１の周期で前記受信装置に送信する送信ステップと、
前記受信装置が、前記送信ステップにより送信されたパケットを前記揺らぎ吸収バッファに格納する受信ステップと、
前記受信装置が、前記第１の周期以下の所定の第２の周期で、前記揺らぎ吸収バッファに蓄積されている蓄積パケット数をカウントすることでパケットカウント値を算出するカウントステップと、
前記カウントステップにより算出されたパケットカウント値に基づいて、前記揺らぎ吸収バッファにパケットを挿入又は削除するバッファサイズ変更ステップとを備え、
前記カウントステップは、０の蓄積パケット数が連続して発生した場合、０の蓄積パケット数が連続した回数が増大するにつれて絶対値が増大する負の値を前記パケットカウント値として算出することを特徴とする伝送遅延制御方法。
【請求項８】
送信装置と、前記送信装置にＩＰネットワークを介して接続された受信装置とを備える通話システムによる伝送遅延制御方法であって、
前記受信装置は、前記送信装置から送信されたパケットを蓄積することで、当該パケットの伝送遅延の揺らぎを吸収する揺らぎ吸収バッファを備え、
前記送信装置が、連続再生対象となる音声信号又は映像信号をパケット化して所定の第１の周期で前記受信装置に送信する送信ステップと、
前記受信装置が、前記送信ステップにより送信されたパケットを前記揺らぎ吸収バッファに格納する受信ステップと、
前記受信装置が、前記第１の周期以下の所定の第２の周期で、前記揺らぎ吸収バッファに蓄積されている蓄積パケット数をカウントすることでパケットカウント値を算出するカウントステップと、
前記カウントステップにより算出されたパケットカウント値に基づいて、前記揺らぎ吸収バッファにパケットを挿入又は削除するバッファサイズ変更ステップとを備え、
前記バッファサイズ変更ステップは、前記パケットカウント値の過去の履歴を基に、パケットカウント値の代表値を算出し、算出した代表値が所定の第１の基準値より大きい場合、前記揺らぎ吸収バッファからパケットを削除し、前記代表値が前記第１の基準値より小さな第２の基準値より小さい場合、前記揺らぎ吸収バッファにパケットを挿入することを特徴とする伝送遅延制御方法。
【請求項９】
連続再生対象となる音声信号又は映像信号をパケット化して所定の第１の周期で送信する送信装置にＩＰネットワークを介して接続された受信装置であって、
前記送信装置から送信されたパケットを蓄積することで、当該パケットの伝送遅延の揺らぎを吸収する揺らぎ吸収バッファと、
前記送信装置により送信されたパケットを前記揺らぎ吸収バッファに格納する受信手段と、
前記第１の周期以下の所定の第２の周期で、前記揺らぎ吸収バッファに蓄積されている蓄積パケット数をカウントすることでパケットカウント値を算出するカウント手段と、
前記カウント手段により算出されたパケットカウント値に基づいて、前記揺らぎ吸収バッファにパケットを挿入又は削除するバッファサイズ変更手段とを備え、
前記バッファサイズ変更手段は、前記パケットカウント値の過去の履歴を基に、パケットカウント値の代表値を算出し、算出した代表値が所定の基準値より大きい場合、前記揺らぎ吸収バッファからパケットを削除し、前記代表値が前記基準値より小さい場合、前記揺らぎ吸収バッファにパケットを挿入することを特徴とする受信装置。
【請求項１０】
連続再生対象となる音声信号又は映像信号をパケット化して所定の第１の周期で送信する送信装置にＩＰネットワークを介して接続された受信装置であって、
前記送信装置から送信されたパケットを蓄積することで、当該パケットの伝送遅延の揺らぎを吸収する揺らぎ吸収バッファと、
前記送信装置により送信されたパケットを前記揺らぎ吸収バッファに格納する受信手段と、
前記第１の周期以下の所定の第２の周期で、前記揺らぎ吸収バッファに蓄積されている蓄積パケット数をカウントすることでパケットカウント値を算出するカウント手段と、
前記カウント手段により算出されたパケットカウント値に基づいて、前記揺らぎ吸収バッファにパケットを挿入又は削除するバッファサイズ変更手段とを備え、
前記カウント手段は、前記パケットカウント値の算出タイミングである算出時刻から、過去、前記第１の周期内に受信したパケットについては、カウント値を前記算出時刻及び受信時刻の差分／前記第１の周期による得られる値に設定し、前記算出時刻から、過去、前記第１の周期以前に受信したパケットについては、カウント値を１に設定することで前記パケットカウント値を算出することを特徴とする受信装置。
【請求項１１】
連続再生対象となる音声信号又は映像信号をパケット化して所定の第１の周期で送信する送信装置にＩＰネットワークを介して接続された受信装置であって、
前記送信装置から送信されたパケットを蓄積することで、当該パケットの伝送遅延の揺らぎを吸収する揺らぎ吸収バッファと、
前記送信装置により送信されたパケットを前記揺らぎ吸収バッファに格納する受信手段と、
前記第１の周期以下の所定の第２の周期で、前記揺らぎ吸収バッファに蓄積されている蓄積パケット数をカウントすることでパケットカウント値を算出するカウント手段と、
前記カウント手段により算出されたパケットカウント値に基づいて、前記揺らぎ吸収バッファにパケットを挿入又は削除するバッファサイズ変更手段とを備え、
前記受信手段は、最新のパケットのみ受信時刻を記録し、
前記カウント手段は、前記最新のパケットについては、カウント値を前記差分／前記第１の周期により得られる値に設定し、それ以外のパケットはカウント値を１に設定して前記パケットカウント値を算出することを特徴とする受信装置。
【請求項１２】
連続再生対象となる音声信号又は映像信号をパケット化して所定の第１の周期で送信する送信装置にＩＰネットワークを介して接続された受信装置であって、
前記送信装置から送信されたパケットを蓄積することで、当該パケットの伝送遅延の揺らぎを吸収する揺らぎ吸収バッファと、
前記送信装置により送信されたパケットを前記揺らぎ吸収バッファに格納する受信手段と、
前記第１の周期以下の所定の第２の周期で、前記揺らぎ吸収バッファに蓄積されている蓄積パケット数をカウントすることでパケットカウント値を算出するカウント手段と、
前記カウント手段により算出されたパケットカウント値に基づいて、前記揺らぎ吸収バッファにパケットを挿入又は削除するバッファサイズ変更手段とを備え、
前記カウント手段は、０の蓄積パケット数が連続して発生した場合、０の蓄積パケット数が連続した回数が増大するにつれて絶対値が増大する負の値を前記パケットカウント値として算出することを特徴とする受信装置。
【請求項１３】
連続再生対象となる音声信号又は映像信号をパケット化して所定の第１の周期で送信する送信装置にＩＰネットワークを介して接続された受信装置であって、
前記送信装置から送信されたパケットを蓄積することで、当該パケットの伝送遅延の揺らぎを吸収する揺らぎ吸収バッファと、
前記送信装置により送信されたパケットを前記揺らぎ吸収バッファに格納する受信手段と、
前記第１の周期以下の所定の第２の周期で、前記揺らぎ吸収バッファに蓄積されている蓄積パケット数をカウントすることでパケットカウント値を算出するカウント手段と、
前記カウント手段により算出されたパケットカウント値に基づいて、前記揺らぎ吸収バッファにパケットを挿入又は削除するバッファサイズ変更手段とを備え、
前記バッファサイズ変更手段は、前記パケットカウント値の過去の履歴を基に、パケットカウント値の代表値を算出し、算出した代表値が所定の第１の基準値より大きい場合、前記揺らぎ吸収バッファからパケットを削除し、前記代表値が前記第１の基準値より小さな第２の基準値より小さい場合、前記揺らぎ吸収バッファにパケットを挿入することを特徴とする受信装置。
【請求項１４】
送信装置と、
請求項９〜１３のいずれか１項に記載の受信装置とを備えることを特徴とする通話システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、揺らぎ吸収バッファのバッファサイズを調節する技術に関するものである。
【背景技術】
【０００２】
近年、ＶｏＩＰ等、音声パケットをリアルタイムで伝送するシステムが知られている。このようなシステムにおいて、送信側の端末装置は、１０ｍｓｅｃ〜４０ｍｓｅｃ程度の一定の周期でパケットを送信する。そして、受信側の端末装置も送信側の端末装置と同一の周期でパケットに含まれる音声信号を再生する。これにより、音声が連続再生される。
【０００３】
しかしながら、ネットワーク上でのパケットの衝突、無線区間での伝送状態の悪化、ルータやブリッジの輻輳等により、パケットに伝送遅延の揺らぎが生じると、受信側の端末装置は、一定の周期でパケットを受信することができなくなる。そこで、伝送遅延の揺らぎを吸収し、一定の周期で音声を再生するために、受信側の端末装置には、揺らぎ吸収バッファが設けられているのが一般的である。つまり、揺らぎ吸収バッファに、一定数のパケットを蓄積させることで、パケットの枯渇を防止して、音声信号の連続再生を実現しているのである。
【０００４】
特許文献１には、揺らぎ吸収バッファの蓄積パケット数が開始蓄積パケット数になった場合に、受信パケットの読み出しを開始する揺らぎ吸収バッファの制御方法において、開始蓄積パケット数よりも大きな受信パケットの到着タイミングの揺らぎが発生した場合、開始蓄積パケット数及び最大蓄積パケット数を増加変更し、一方、前記揺らぎが開始蓄積パケット数より低い値で安定している場合、開始蓄積パケット数及び最大蓄積パケット数を減少変更させる技術が開示されている。
【０００５】
また、特許文献２には、受信パケット数が基準値を超えた時に受信パケットの再生を開始させ、予め定められた時間間隔で受信バッファ（揺らぎ吸収バッファ）内のパケットの個数を監視し、パケットの個数が時間と共に増大又は減少しているかに応じて、基準値を変更するパケット処理装置が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第３８７４１１２号公報
【特許文献２】特許第３５０６９６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１、２の技術は、いずれも揺らぎ吸収バッファからパケットの読み出しを開始する際に必要な蓄積パケット数を設定してパケットの枯渇の防止を図ることを主目的とするものであり、揺らぎ吸収バッファから出力されるパケットの出力遅延については何ら考慮されていない。
【０００８】
本発明の目的は、揺らぎ吸収バッファにおけるパケットの枯渇を防止すると同時に、揺らぎ吸収バッファに蓄積されているパケットの出力遅延を防止することである。
【課題を解決するための手段】
【０００９】
（１）本発明の一局面による伝送遅延制御方法は、送信装置と、前記送信装置にＩＰネットワークを介して接続された受信装置とを備える通話システムによる伝送遅延制御方法であって、前記受信装置は、前記送信装置から送信されたパケットを蓄積することで、当該パケットの伝送遅延の揺らぎを吸収する揺らぎ吸収バッファを備え、前記送信装置が、連続再生対象となる音声信号又は映像信号をパケット化して所定の第１の周期で前記受信装置に送信する送信ステップと、前記受信装置が、前記送信ステップにより送信されたパケットを前記揺らぎ吸収バッファに格納する受信ステップと、前記受信装置が、前記第１の周期以下の所定の第２の周期で、前記揺らぎ吸収バッファに蓄積されている蓄積パケット数をカウントすることでパケットカウント値を算出するカウントステップと、前記カウントステップにより算出されたパケットカウント値に基づいて、前記揺らぎ吸収バッファにパケットを挿入又は削除するバッファサイズ変更ステップとを備えている。
【００１０】
また、本発明の別の一局面による通話システムは、送信装置と、前記送信装置にＩＰネットワークを介して接続された受信装置とを備える通話システムであって、前記受信装置は、前記送信装置から送信されたパケットを蓄積することで、当該パケットの伝送遅延の揺らぎを吸収する揺らぎ吸収バッファを備え、前記送信装置は、連続再生対象となる音声信号又は映像信号をパケット化して所定の第１の周期で前記受信装置に送信する送信手段を備え、前記受信装置は、前記送信手段により送信されたパケットを前記揺らぎ吸収バッファに格納する受信手段と、前記受信装置が、前記第１の周期以下の所定の第２の周期で、前記揺らぎ吸収バッファに蓄積されている蓄積パケット数をカウントすることでパケットカウント値を算出するカウント手段と、前記カウント手段により算出されたパケットカウント値に基づいて、前記揺らぎ吸収バッファにパケットを挿入又は削除するバッファサイズ変更手段とを備えている。
【００１１】
この構成によれば、送信装置は、第１の周期毎に音声信号又は映像信号をパケット化して送信し、受信装置は、受信したパケットを揺らぎ吸収バッファに格納する。一方、受信装置は、第１の周期毎に揺らぎ吸収バッファからパケットを読み出して、音声信号又は映像信号を再生する。そして、受信装置は、第２の周期毎に、揺らぎ吸収バッファの蓄積パケット数をカウントし、パケットカウント値を算出する。そして、パケットカウント値が大きければ、揺らぎ吸収バッファからパケットが削除され、パケットカウント値が小さければ、揺らぎ吸収バッファにパケットが挿入される。
【００１２】
そのため、揺らぎ吸収バッファの蓄積パケット数が過大となった場合、揺らぎ吸収バッファからパケットが削除されるため、揺らぎ吸収バッファにおいて出力待ちのパケット数が減少する結果、出力遅延を防止することができる。一方、揺らぎ吸収バッファの蓄積パケット数が少なく、揺らぎ吸収バッファにおいて、パケットの枯渇が発生する可能性が高い場合は、揺らぎ吸収バッファにパケットが挿入されるため、パケットの枯渇を防止することができる。
【００１３】
（２）前記バッファサイズ変更ステップは、前記パケットカウント値の過去の履歴を基に、パケットカウント値の代表値を算出し、算出した代表値が所定の基準値より大きい場合、前記揺らぎ吸収バッファからパケットを削除し、前記代表値が前記基準値より小さい場合、前記揺らぎ吸収バッファにパケットを挿入することが好ましい。
【００１４】
この構成によれば、パケットカウント値の過去の履歴から、パケットカウント値の代表値が算出され、この代表値が基準値より大きい場合、揺らぎ吸収バッファからパケットが削除され、この代表値が基準値より小さい場合、揺らぎ吸収バッファにパケットが挿入される。つまり、パケットカウント値の過去の履歴を考慮して、揺らぎ吸収バッファへのパケットの挿入又は削除が行われているため、揺らぎ吸収バッファからのパケットの出力遅延及び揺らぎ吸収バッファのパケットの枯渇をより精度良く防止することができる。
【００１５】
（３）前記カウントステップは、前記パケットカウント値の算出タイミングである算出時刻から、過去、前記第１の周期内に受信したパケットについては、カウント値を前記算出時刻及び受信時刻の差分／前記第１の周期による得られる値に設定し、前記算出時刻から、過去、前記第１の周期以前に受信したパケットについては、カウント値を１に設定することで前記パケットカウント値を算出することが好ましい。
【００１６】
この構成によれば、パケットカウント値の算出タイミングから、過去、第１の周期内に受信したパケットは、算出時刻と受信時刻との差分が算出され、差分／第１の周期がカウント値として設定される。つまり、受信時刻が算出時刻に近づくにつれてカウント値が小さくされる。一方、算出時刻から、過去、第１の周期以前に受信したパケットは、１がカウント値として設定される。
【００１７】
これにより、同じ第１の周期内に受信したパケットであっても、算出時刻の直前に受信したパケットと、算出時刻から第１の周期分前の直後に受信したパケットとを区別して、パケットカウント値を算出することができる。
【００１８】
つまり、送信装置からは第１の周期でパケットが送信されるため、受信装置では、平均すれば第１の周期毎に１つのパケットを受信することが想定される。この想定の下、ネットワークの状態から受信装置が算出時刻の直前にパケットを受信するような場合においては、伝送遅延が少しでも増大するとパケットの枯渇が発生する可能性が高くなる。一方、ネットワークの状態から受信装置が算出時刻から第１の周期分前の直後にパケットを受信するような場合においては、伝送遅延が多少増大してもパケットの枯渇が発生する可能性は低い。
【００１９】
ここで、算出時刻の直前に受信したパケットと、算出時刻から第１周期分前の直後に受信したパケットとを共にカウント値を１に設定してしまうと、両ネットワークの状態において算出されるパケットカウント値は同一となってしまう。そうすると、ネットワークの状態が算出時刻の直前にパケットを受信するような状態である場合、パケットカウント値が基準値を超える可能性が高まり、揺らぎ吸収バッファからパケットが削除される可能性が高くなり、結果、パケットの枯渇が発生する可能性が高まってしまう。
【００２０】
そこで、受信時刻が算出時刻に近づくにつれてパケットカウント値が小さくなるように設定することで、ネットワークの状態が算出時刻の直前にパケットを受信するような状態である場合、パケットカウント値が基準値を超える可能性が低下し、揺らぎ吸収バッファからパケットが削除される可能性が低くなり、パケットの枯渇が発生する可能性を低くすることができる。
【００２１】
（４）前記受信ステップは、受信したパケットの受信時刻を受信時刻記録部に記録し、前記カウントステップは、前記パケットカウント値の算出処理が終了すると、算出時刻から、過去、第１の周期と第２の周期との差分以前に受信されたパケットについては、受信時刻を前記受信時刻記録部から削除することが好ましい。
【００２２】
この構成によれば、算出時刻から、過去、第１の周期内に受信したパケットについてのみ、受信時刻を記録すればよくなり、受信時刻を記録するための受信時刻記録部の容量を節約することができる。なお、算出時刻から、過去、第１の周期以前に受信したパケットについては、カウント値が１に設定されており、受信時刻を用いてカウント値を算出する必要がないため、受信時刻を記録する必要はない。
【００２３】
（５）前記受信ステップは、最新のパケットのみ受信時刻を記録し、前記カウントステップは、前記最新のパケットについては、カウント値を前記差分／前記第１の周期により得られる値に設定し、それ以外のパケットはカウント値を１に設定して前記パケットカウント値を算出することが好ましい。
【００２４】
この構成によれば、最新のパケットのみ受信時刻を用いてカウント値が算出されるため、最新のパケットのみ受信時刻を記録すれば良くなる結果、受信時刻記録部の容量を大幅に節約することができる。また、最新のパケットのみ受信時刻を用いてカウント値が算出されているため、（４）のように過去、第１の周期以前に受信したパケットであるか否かの判断をする必要がなくなり、処理の簡略化を図ることができる。
【００２５】
（６）前記カウントステップは、過去Ｎ（Ｎは正の整数値）回のパケットカウント値を観測履歴保持部に保持し、前記バッファサイズ変更ステップは、過去Ｎ回のパケットカウント値のうち、ｎ（ｎはＮ未満の正の整数値）番目に小さいパケットカウント値を前記代表値とすることが好ましい。
【００２６】
この構成によれば、過去Ｎ回のパケットカウント値の中からｎ番目に小さいパケットカウント値が基準値と比較されて揺らぎ吸収バッファへのパケット挿入又は削除が行われている。ここで、ｎ番目に小さいパケットカウント値が基準値より小さい場合は、揺らぎ吸収バッファの蓄積パケット数が基準値以下になる確率が、α（＝ｎ／Ｎ）％より低くなる。
【００２７】
よって、この場合、蓄積パケット数が基準値となるように揺らぎ吸収バッファにパケットを挿入すれば、揺らぎ吸収バッファの蓄積パケット数が基準値以下になる確率を、α％になるように調整することができる。
【００２８】
また、ｎ番目に小さいパケットカウント値が基準値より大きい場合は、揺らぎ吸収バッファの蓄積パケット数が基準値より大きくなる確率が、α（＝ｎ／Ｎ）％より高くなる。
【００２９】
よって、この場合、蓄積パケット数が基準値となるように揺らぎ吸収バッファからパケットを削除しても、揺らぎ吸収バッファの蓄積パケット数が基準値以下になる確率が、α％以下になることを防止すると同時に、蓄積パケット数の減少によって、揺らぎ吸収バッファからのパケットの出力遅延を防止することができる。
【００３０】
（７）前記カウントステップは、前記観測履歴保持部に保持された過去Ｎ回のパケットカウント値に基づいて、スパイク遅延の有無を判定し、スパイク遅延が発生していると判定した場合は、過去Ｎ回のパケットカウント値のうち、過去Ｍ（Ｍ＜Ｎ）回のパケットカウント値を抽出し、前記バッファサイズ変更ステップは、前記カウントステップにより抽出された過去Ｍ回のパケットカウント値のうち、ｍ（ｍはＭ未満の整数）番目に小さいパケットカウント値を前記代表値として算出することが好ましい。
【００３１】
この構成によれば、スパイク遅延が発生した場合、参照する過去のパケットカウント値のウインドウ幅が狭められて揺らぎ吸収バッファにパケットの挿入又は削除が行われる。そのため、稀にしか発生しないスパイク遅延が排除されるようにして、代表値を算出することができる。
【００３２】
（８）前記カウントステップは、０の蓄積パケット数が連続して発生した場合、０の蓄積パケット数が連続した回数が増大するにつれて絶対値が増大する負の値を前記パケットカウント値として算出することが好ましい。
【００３３】
この構成によれば、パケットを第１の周期で定期的に受信できているが、算出時刻において、揺らぎ吸収バッファからパケットが出力済であるために、蓄積パケット数が０になっている場合と、パケットが長期間受信されず、蓄積パケット数が０になっている場合とを区別して、パケットカウント値を算出することができる。
【発明の効果】
【００３４】
本発明によれば、揺らぎ吸収バッファの蓄積パケット数が過大となった場合、揺らぎ吸収バッファからパケットが削除されるため、揺らぎ吸収バッファにおいて出力待ちのパケット数が減少する結果、出力遅延を低減することができる。一方、揺らぎ吸収バッファの蓄積パケット数が少なく、揺らぎ吸収バッファにおいて、パケットの枯渇が発生する可能性が高い場合は、揺らぎ吸収バッファにパケットが挿入されるため、パケットの枯渇を防止することができる。
【図面の簡単な説明】
【００３５】
【図１】本発明の実施の形態１による通話システムのネットワーク構成図を示している。
【図２】図１に示す受信装置のブロック図を示している。
【図３】図２に示すカウント部によるパケットカウント値の算出処理の説明図である。
【図４】揺らぎ吸収バッファの役割を説明するための図である。
【図５】伝送遅延と発生頻度との関係を示す伝送遅延特性のグラフの一例を示している。
【図６】揺らぎ吸収バッファの最適なバッファサイズを説明するための図である。
【図７】図１に示す受信装置の処理を示すフローチャートである。
【図８】パケットカウント値の算出処理の詳細を示すフローチャートである。
【図９】パケットカウント値と、パケットカウント値の算出時刻との関係を示したグラフである。
【図１０】（ａ）はバッファサイズ変更部によるパケット挿入時の処理を示した模式図であり、（ｂ）はバッファサイズ変更部によるパケット削除時の処理を示した模式図である。
【図１１】本発明の実施の形態２におけるパケットカウント値の算出手法の説明図である。
【図１２】本発明の実施の形態２による通話システムのパケットカウント値の算出処理を示すフローチャートである。
【図１３】スパイク遅延の有無の判定処理を説明するためのグラフである。
【図１４】スパイク遅延が発生している場合のパケットカウント値とインデックスとの関係を示すグラフである。
【図１５】本発明の実施の形態４におけるカウント部の処理を説明する図である。
【発明を実施するための形態】
【００３６】
（実施の形態１）
図１は、本発明の実施の形態１による通話システムのネットワーク構成図を示している。図１に示す通話システムは、送信装置１及び受信装置２を備えている。送信装置１及び受信装置２は、ＩＰネットワークを介して接続されている。ここで、ＩＰネットワークは、インターネットプロトコル技術を利用して相互接続されたネットワークであり、ＴＣＰ（Transmission Control Protocol）／ＩＰ（Internet Protocol）の通信プロトコルを用いて、種々のデータが送受信される。
【００３７】
送信装置１は、例えば、ＶｏＩＰ（Voice over Internet Protocol）による通話機能を備える通信装置であり、SIP(Session Initiation Protocol)、Ｈ．３２３、ＩＰｖ４、又はＩＰｖ６等の通信プロトコルを用いて受信装置２との間で通信を行う。そして、送信装置１は、音声及び映像をストリーム伝送するための所定のプロトコルであるＲＴＰ（Real-time Transport Protocol）を用いて音声又は映像をパケット化し、受信装置２に送信する。
【００３８】
本実施の形態では、送信装置１は、音声信号をＲＴＰによりパケット化して、所定の第１の周期（例えば２０ｍｓｅｃ）で受信装置２に送信するものとする。よって、送信装置１が送信するパケットは、２０ｍｓｅｃのデジタルの音声信号を含む。なお、音声信号としては、例えば、ＰＣＭμ−Ｌａｗ等により８ｋＨｚのサンプリング周波数でサンプリングされた信号を採用することができる。なお、送信装置１は映像信号をパケット化してもよい。
【００３９】
受信装置２は、送信装置１と同一構成の通信装置から構成されている。なお、図１では、説明の便宜上、送信装置１及び受信装置２と記述しているが、両装置とも、相互にパケットを送受信することができる。
【００４０】
図２は、図１に示す受信装置２のブロック図を示している。受信装置２は、パケット送受信部２１、揺らぎ吸収バッファ２２、カウント部２３、バッファサイズ変更部２４、受信時刻記録部２５、基準値記憶部２６、隠蔽処理部２７、再生部２８、観測履歴保持部２９、スピーカ３０、表示部３１、マイク３３、及びパケット生成部３４を備えている。
【００４１】
パケット送受信部２１は、送信装置１から第１の周期で送信されるパケットを受信し、このパケットを揺らぎ吸収バッファ２２に蓄積する。このパケットは、上述したようにＲＴＰに準拠したパケットであるため、ＲＴＰヘッダを含んでいる。よって、パケット送受信部２１は、ＲＴＰヘッダに含まれるシーケンス番号に従って、受信したパケットを時系列順に揺らぎ吸収バッファ２２に蓄積させる。
【００４２】
なお、ＲＴＰヘッダには、シーケンス番号が含まれている。シーケンス番号は、音声パケットの送信順序を示す。
【００４３】
また、パケット送受信部２１は、パケット生成部３４により生成されたパケットを第１の周期ＴａでＩＰネットワークに送信する。
【００４４】
また、パケット送受信部２１は、受信したパケットの受信時刻を受信時刻記録部２５に記録する。この場合、パケット送受信部２１は、受信したパケットのシーケンス番号を受信時刻と対応付けて受信時刻記録部２５に記録すればよい。
【００４５】
揺らぎ吸収バッファ２２は、例えばリングバッファにより構成され、パケット送受信部２１により受信されたパケットを時系列順で蓄積する。これにより、送信装置１から送信されたパケットの伝送遅延の揺らぎが吸収される。なお、揺らぎ吸収バッファ２２のサイズとしては、後述する基準値よりも大きなサイズが採用されている。
【００４６】
カウント部２３は、第１の周期以下の所定の第２の周期で、揺らぎ吸収バッファ２２に蓄積されている蓄積パケット数をカウントすることでパケットカウント値を算出し、算出したパケットカウント値を観測履歴保持部２９に保持させる。観測履歴保持部２９は、例えば、揮発性の記憶装置により構成され、カウント部２３により算出された過去Ｎ（Ｎは正の整数）回のパケットカウント値を保持する。
【００４７】
図３は、カウント部２３によるパケットカウント値の算出処理の説明図である。図３に示すように、カウント部２３は、第２の周期Ｔｂでパケットカウント値を算出している。
【００４８】
ここで、カウント部２３は、パケットカウント値の算出タイミングである算出時刻Ｔｋから、過去、第１の周期Ｔａ内に受信したパケットＰＳについては、カウント値をΔＴ／Ｔａにより得られる値に設定し、算出時刻Ｔｋから、過去、第１の周期Ｔａ以前に受信したパケットＰＬについては、カウント値を１に設定することでパケットカウント値を算出する。つまり、パケットＰＳのパケットカウント値は、受信時刻が算出時刻Ｔｋに近づくにつれて差分ΔＴが小さくなるため、値が小さくなる。
【００４９】
ここで、パケットＰＳについては、パケットカウント値を算出するにあたり受信時刻が用いられているため、受信時刻を保持しておく必要がある。一方、パケットＰＬについては、パケットカウント値を算出するにあたり、受信時刻が不要であるため、受信時刻を記録しておく必要はない。
【００５０】
そこで、カウント部２３は、パケットカウント値の算出処理が終了すると、算出時刻Ｔｋから、過去、第１の周期Ｔａと第２の周期Ｔｂとの差分（＝Ｔａ−Ｔｂ）以前に受信したパケットについては、受信時刻を受信時刻記録部２５から削除する。
【００５１】
これにより、パケットカウント値の次の算出時刻である時刻Ｔｋ＋１において、過去、第１の周期Ｔａに受信したパケットの受信時刻が受信時刻記録部２５に保持されている結果、カウント部２３は、時刻Ｔｋ＋１において、過去、第１の周期Ｔａに受信したパケットの受信時刻を取得することができる。こうすることで、受信時刻記録部２５の容量を節約することが可能となる。
【００５２】
バッファサイズ変更部２４は、カウント部２３により算出されたパケットカウント値の過去のＮ回のパケットカウント値を観測履歴保持部２９から読み出し、読み出したＮ回のパケットカウント値から、ｎ番目に小さいパケットカウント値をパケットカウント値の代表値として算出し、算出した代表値が所定の基準値より大きければ、揺らぎ吸収バッファ２２に蓄積されているパケットを削除し、代表値が基準値より小さければ、揺らぎ吸収バッファ２２にパケットを挿入する。
【００５３】
ここで、バッファサイズ変更部２４は、代表値が基準値より小さい場合は、代表値が、基準値以上かつ基準値＋１未満となるように、揺らぎ吸収バッファ２２にパケットを挿入すればよい。
【００５４】
例えば、代表値が２．１、基準値が４の場合、代表値が４．１となるように２つのパケットが揺らぎ吸収バッファ２２に挿入される。
【００５５】
また、バッファサイズ変更部２４は、代表値が基準値より大きい場合は、代表値が基準値以上かつ基準値＋１未満となるように、揺らぎ吸収バッファ２２からパケットを削除すればよい。
【００５６】
例えば、代表値が４．２、基準値が２の場合、代表値が２．２となるように２つのパケットが揺らぎ吸収バッファ２２から削除される。
【００５７】
なお、ｎとしては、Ｎ×αにより整数値に丸め込んだ値を採用することが好ましい。また、基準値としては、送信装置１と受信装置２とが双方向通信する場合において、通話システムが許容する通話遅延時間に基づいて予め定められた値が採用されている。つまり、揺らぎ吸収バッファ２２の蓄積パケット数が基準値よりも大きければ、揺らぎ吸収バッファ２２において、出力待ちのパケット数が増大するため、通話遅延が発生する。そこで、本通話システムでは、ｎ番目のパケットカウント値である代表値が基準値よりも大きい場合は、揺らぎ吸収バッファ２２からパケットを削除している。これにより、通話遅延を防止することができる。
【００５８】
一方、ｎ番目のパケットカウント値である代表値が基準値よりも小さい場合は、揺らぎ吸収バッファ２２にパケットを挿入している。これにより、蓄積パケット数が基準値以下になる確率を、α（＝ｎ／Ｎ）％にすることができる。
【００５９】
受信時刻記録部２５は、例えば揮発性の記憶装置により構成され、パケット送受信部２１により受信されたパケットの受信時刻を記録する。基準値記憶部２６は、例えば不揮発性の記憶装置により構成され、基準値を記憶する。
【００６０】
隠蔽処理部２７は、揺らぎ吸収バッファ２２に挿入された無効パケットに対して、パケットロス隠蔽処理を行うと共に、揺らぎ吸収バッファ２２においてパケットが枯渇した場合にパケットロス隠蔽処理を行う。ここで、パケットロス隠蔽処理としては、例えば、無効パケットより過去の音声信号から音声信号の基本周期を検出し、無効パケットの直前の有効パケットの音声信号において、終端から基本周期分前の区間の音声波形を取り出し、この音声波形を２０ｍｓの期間、繰り返すことで得られる音声波形を無効パケットの音声信号として生成する手法を採用すればよい。
【００６１】
また、基本周期を検出する手法としては、現時点から過去に向けてある時間幅の音声信号を基準信号として設定し、基準信号を音声信号に対して現時点から過去に向けてスライドさせ、基準信号と音声信号との相関を求めることで基本周期を検出する手法であって、基準信号のスライド量が増大するにつれて、基準信号の時間幅を増大させる手法を採用すればよい。また、基本周期を検出する手法としては、上記の手法に代えて、特許第３２１９８６８号公報に記載された手法を採用してもよい。なお、無効パケットには音声信号が含まれていない。また、有効パケットには音声信号が含まれている。
【００６２】
再生部２８は、揺らぎ吸収バッファ２２の蓄積パケット数が基準値以上となった場合、揺らぎ吸収バッファ２２からパケットを第１の周期Ｔａで時系列順に読み出し、読み出したパケットから音声信号を取り出し、取り出した音声信号を逆符号化処理及びデジタルアナログ変換処理した後、スピーカ３０に出力する。ここで、再生部２８は、揺らぎ吸収バッファ２２から取り出したパケットが音声信号を含まない無効パケットである場合、隠蔽処理部２７にパケットロス隠蔽処理を実行させ、実行処理後の音声信号をスピーカ３０に出力する。
【００６３】
観測履歴保持部２９は、例えば不揮発性の記憶装置により構成され、カウント部２３により算出された過去Ｎ回のパケットカウント値を保持する。
【００６４】
スピーカ３０は再生部２８から出力される音声信号に従って、音声を出力する。表示部３１は、例えば液晶表示パネルにより構成され、再生部２８から出力される映像信号に従って、映像を表示する。
【００６５】
マイク３３は、通話者の音声を電気信号である音声信号に変換する。パケット生成部３４は、マイク３３から出力される音声信号を２０ｍｓ毎に分割し、分割した音声信号をＲＴＰに従ってパケット化してパケット送受信部２１に出力する。
【００６６】
図４は、揺らぎ吸収バッファ２２の役割を説明するための図である。図４に示すように、送信装置１は、音声信号ＶＳを符号化処理及びアナログデジタル変換処理した後、パケット化して、２０ｍｓの周期で送信する。図４では、１〜８の番号が付された８個のパケットが送信装置１から２０ｍｓの間隔で出力されていることが分かる。
【００６７】
送信装置１から送信されたパケットはＩＰネットワークを介して受信装置２で受信されることになるが、ＩＰネットワークを構成する各伝送路の特性の相違や、時々刻々変動するＩＰネットワークのトラフィック状況により、送信装置１から２０ｍｓの周期で送信されたパケットが受信装置２にまで到達するまでの時間である伝送遅延は、パケット毎に大きく相違し、伝送遅延揺らぎが発生する。よって、受信装置２によるパケットの受信間隔は不等間隔になる。
【００６８】
そこで、この遅延揺らぎを吸収するために、揺らぎ吸収バッファ２２が設けられている。図４においては、揺らぎ吸収バッファ２２のバッファサイズはパケット３個分とされている。また、受信装置２は、１番目のパケットを受信してから、遅延時間Ｔｄ経過した時刻Ｔ１において、１番目のパケットに復号化処理及びデジタルアナログ変換処理施して再生を開始している。
【００６９】
図４の場合、時刻Ｔ１から２０ｍｓ経過後の２番目のパケットの再生時刻である時刻Ｔ２において、揺らぎ吸収バッファ２２は、２番目のパケットを蓄積している。よって、受信装置２は、時刻Ｔ２において、２番目のパケットを再生することができる。
【００７０】
一方、３番目のパケットは、伝送遅延が極端に大きいため、時刻Ｔ３において、受信装置２に到達しておらず、揺らぎ吸収バッファ２２において、パケットの枯渇が生じている。そのため、受信装置２は、時刻Ｔ３において、３番目のパケットを再生することができず、音抜けが発生する。
【００７１】
また、３〜７番目のパケットは輻輳解消後に短時間で連続して受信装置２に到達しており、７番目のパケットが受信装置２に到達したとき、揺らぎ吸収バッファ２２には、５、６番目のパケットが存在するが、揺らぎ吸収バッファ２２に空きがあるため、７番目のパケットは破棄されず、揺らぎ吸収バッファ２２に格納される。よって、時刻Ｔ７において、７番目のパケットが再生される。
【００７２】
このように、伝送遅延揺らぎの特性は動的に変化するため、揺らぎ吸収バッファ２２のバッファサイズを固定サイズにすると、想定される伝送遅延揺らぎよりも充分に長くせざるを得ない。また、揺らぎ吸収バッファ２２のバッファサイズを充分に長くし、かつ、遅延時間Ｔｄを充分に長くすれば、音抜けの発生は防止できるが、遅延時間Ｔｄが長いと、揺らぎ吸収バッファ２２において、出力待ちのパケットが増大し、通話遅延が発生してしまう。
【００７３】
図５は、伝送遅延と伝送遅延の発生頻度との関係を示す伝送遅延特性のグラフの一例を示している。なお、図５において、縦軸は、発生頻度を示し、横軸は伝送遅延を示している。また、図６は、揺らぎ吸収バッファ２２の最適なバッファサイズを説明するための図である。図５において、ｄｍｉｎは最小の伝送遅延を示し、ｄｍａｘは最大の伝送遅延を示している。図６では、ｋ−１番目のパケットの伝送遅延はｄｍｉｎであり、ｋ番目のパケットの伝送遅延はｄであり、ｋ＋１番目のパケットの伝送遅延はｄｍａｘである。
【００７４】
この場合、受信装置２による最適な出力の待ち時間は下記のようになる。ｉ）ｄｍａｘで届いたパケットは直ちに出力する。ｉｉ）ｄｍｉｎで届いたパケットは、ｄｍａｘ−ｄｍｉｎ待ってから出力する。ｉｉｉ）ｄで届いたパケットはｄｍａｘ−ｄ待ってから出力する。
【００７５】
よって、揺らぎ吸収バッファ２２におけるパケットの枯渇を回避するためには、揺らぎ吸収バッファ２２のバッファサイズｂｕｆをｂｕｆ≧ｄｍａｘ−ｄｍｉｎとすればよいが、伝送遅延特性のｄｍａｘが極端に大きくなると、つまり、図５のグラフの右端の尾が極端に長くなると、バッファサイズｂｕｆの値が大きくなってしまう。
【００７６】
また、図５のグラフに示すように、伝送遅延が増大するにつれて発生頻度が低下しているため、真のｄｍａｘを観測するには、膨大な数のパケットの伝送遅延を観測する必要がある。
【００７７】
そのため、図５のグラフでは、真のｄｍａｘではなく、伝送特性の分布の上位数％を切り捨てる値がｄｍａｘとみなされている。この場合、ｄｍａｘとみなす値以上の伝送遅延が発生するとパケットの枯渇が発生する。
【００７８】
したがって、パケットの枯渇を防止するためには、ｄｍａｘとみなす値を大きく設定することが好ましいが、逆にｄｍａｘとみなす値が大きすぎるとバッファサイズｂｕｆが増大し、揺らぎ吸収バッファ２２において、出力待ちの待ちパケットが増大する結果、出力遅延が生じてしまう。このような出力遅延は、ＩＰ電話では通話遅延となって現れるため、極力低く抑える方が好ましい。そこで、本通話システムでは、上述の処理を実行することで、パケットの枯渇を防止すると同時に、通話遅延の防止を図っているのである。
【００７９】
図７は、図１に示す受信装置２の処理を示すフローチャートである。なお、図２に示す送信装置１は、受信装置２に対して第１の周期Ｔａでパケットを送信しているものとする。まず、ステップＳ１において、カウント部２３は、前回、パケットカウント値の算出タイミングを算出してから、第２の周期Ｔｂが経過して、パケットカウント値の算出タイミングとなったか否かを判定する。そして、カウント部２３は、パケットカウント値の算出タイミングになったと判定すると（ステップＳ１でＹＥＳ）、現在、揺らぎ吸収バッファ２２に蓄積されているパケット数である蓄積パケット数をカウントする（ステップＳ２）。一方、カウント部２３は、パケットカウント値の算出タイミングになっていないと判定すると（ステップＳ１でＮＯ）、処理をステップＳ１に戻す。
【００８０】
次に、カウント部２３は、パケットカウント値の算出処理を実行して、パケットカウント値を算出する（ステップＳ３）。
【００８１】
図８は、パケットカウント値の算出処理の詳細を示すフローチャートである。まず、カウント部２３は、現在時刻をパケットカウント値の算出時刻として特定する（ステップＳ２１）。ここで、受信装置２は時計を有しているため、この時計を用いて算出時刻が特定される。
【００８２】
次に、カウント部２３は、揺らぎ吸収バッファ２２に蓄積されているパケットのうち、図３に示すように算出時刻Ｔｋから、過去、第１の周期Ｔａ内に受信された各パケットの受信時刻を特定する（ステップＳ２２）。この場合、カウント部２３は、受信時刻記録部２５に記録された受信時刻に対応付けられたシーケンス番号を特定することで、各パケットの受信時刻を特定する。
【００８３】
次に、カウント部２３は、算出時刻Ｔｋから、過去、第１の周期Ｔａ内に受信された各パケットについて、算出時刻Ｔｋと受信時刻との差分ΔＴを算出する（ステップＳ２３）。次に、カウント部２３は、過去、第１の周期Ｔａ内に受信された各パケットについて、ΔＴ／Ｔａを算出し、このΔＴ／Ｔａを、各パケットのカウント値として設定する（ステップＳ２４）。
【００８４】
次に、カウント部２３は、揺らぎ吸収バッファ２２に蓄積されているパケットのうち、算出時刻Ｔｋから、過去、第１の周期Ｔａ以前に受信されたパケットについては、カウント値を１として設定する（ステップＳ２５）。
【００８５】
次に、カウント部２３は、ステップＳ２４，Ｓ２５で設定したカウント値を用いて、揺らぎ吸収バッファ２２の蓄積パケット数をカウントすることで、パケットカウント値を算出する（ステップＳ２６）。例えば、算出時刻Ｔｋから、過去、第１の周期Ｔａ以前に受信されたパケット数が１個、算出時刻Ｔｋから、過去、第１の周期Ｔａ内に受信されたパケット数が２個であり、この２個のパケットの受信時刻がＴｉ、Ｔｊとすると、パケットカウント値は、１＋（Ｔｋ−Ｔｉ）／Ｔａ＋（Ｔｋ−Ｔｊ）／Ｔａとなる。
【００８６】
次に、カウント部２３は、算出時刻Ｔｋから、過去、Ｔａ−Ｔｂ以前に受信したパケットについては、受信時刻記録部２５から受信時刻を削除する（ステップＳ２７）。
【００８７】
図７に戻り、ステップＳ４において、カウント部２３は、算出時刻Ｔｋにおけるパケットカウント値を観測履歴保持部２９に保持させる。この場合、カウント部２３は、観測履歴保持部２９に保持されているパケットカウント値の個数がＮ個となるように、最古のパケットカウント値を観測履歴保持部２９から削除する。
【００８８】
次に、バッファサイズ変更部２４は、観測履歴保持部２９に記憶されているＮ個のパケットカウント値のうち、ｎ番目に小さいパケットカウント値を代表値として特定する（ステップＳ５）。
【００８９】
図９は、パケットカウント値と、パケットカウント値の算出時刻との関係を示した模式図であり、縦軸がパケットカウント値を示し、横軸がパケットカウント値の算出時刻を示している。図９では、Ｎ＝９、ｎ＝３とされている。したがって、バッファサイズ変更部２４は、図９で示す左端から２番目の時刻Ｔｋ−７のパケットカウント値が、３番目に小さいため、時刻Ｔｋ−７のパケットカウント値を代表値として特定する。
【００９０】
次に、バッファサイズ変更部２４は、代表値が基準値より大きいか否かを判定し、代表値≧基準値＋１の場合（ステップＳ６でＹＥＳ）、代表値が基準値以上かつ基準値＋１未満となる個数のパケットを揺らぎ吸収バッファ２２から削除する（ステップＳ７）。
【００９１】
次に、バッファサイズ変更部２４は、観測履歴保持部２９に保持されているＮ個のパケットカウント値のそれぞれから、ステップＳ７で削除したパケット数を差し引き、Ｎ個のパケットカウント値を更新し、観測履歴を更新する（ステップＳ８）。例えば、削除したパケット数が１個であるとすると、Ｎ個のパケットカウント値の全てから１が減算される。これにより、揺らぎ吸収バッファ２２からパケットを削除した事実が観測履歴に反映される。
【００９２】
一方、ステップＳ６において、代表値が基準値＋１未満であり（ステップＳ６でＮＯ）、かつ、代表値が基準値以上（ステップＳ９でＮＯ）の場合、バッファサイズ変更部２４は、揺らぎ吸収バッファ２２に対してパケットの削除及び挿入を行わない（ステップＳ１０）。
【００９３】
一方、代表値＜基準値の場合（ステップＳ９でＹＥＳ）、バッファサイズ変更部２４は、代表値が基準値以上かつ基準値＋１未満となる個数のパケットを揺らぎ吸収バッファ２２に挿入する（ステップＳ１１）。
【００９４】
次に、バッファサイズ変更部２４は、観測履歴保持部２９に保持されているＮ個のパケットカウント値のそれぞれに対し、ステップＳ１１で挿入したパケット数を加算し、Ｎ個のパケットカウント値を更新し、観測履歴を更新する（ステップＳ１２）。例えば、挿入したパケット数が１個であるとすると、Ｎ個のパケットカウント値の全てに１が加算される。これにより、揺らぎ吸収バッファ２２にパケットを挿入した事実が観測履歴に反映される。
【００９５】
そして、ステップＳ８、Ｓ１０、又はＳ１２の処理が終了されると、処理がステップＳ１に戻され、次のパケットカウント値の算出時刻が到来すると、ステップＳ２以降の処理が実行される。
【００９６】
図１０（ａ）はバッファサイズ変更部２４によるパケット挿入時の処理を示した模式図であり、図１０（ｂ）はバッファサイズ変更部２４によるパケット削除時の処理を示した模式図である。図１０（ａ）の例では、バッファサイズ変更部２４は、有効パケットである４番目のパケットと５番目のパケットとの間に無効パケットを挿入している。図１０（ｂ）の例では、バッファサイズ変更部２４は、有効パケットである４番目のパケットと５番目のパケットとをオーバーラップ加算して２つのパケット長を１つのパケット長にすることで、１つのパケットを削除している。
【００９７】
このように、実施の形態１による通話システムによれば、送信装置１は、揺らぎ吸収バッファ２２の蓄積パケット数からパケットカウント値が算出され、過去Ｎ回のパケットカウント値のうち、ｎ番目に小さいパケットカウント値が代表値として特定される。そして、特定した代表値が基準値よりも大きければ揺らぎ吸収バッファ２２からパケットが削除される。そのため、パケットカウント値の過去の履歴から揺らぎ吸収バッファ２２の蓄積パケット数が基準値と比べて大きい傾向にあり、出力遅延が生じる場合は、揺らぎ吸収バッファ２２からパケットが削除されるため、出力遅延が低減される。一方、パケットカウント値の過去の履歴から揺らぎ吸収バッファ２２の蓄積パケット数が基準値に比べて小さい傾向にあり、パケットの枯渇が発生する可能性が高い場合は、揺らぎ吸収バッファ２２にパケットが挿入されるため、パケットの枯渇を防止することができる。
【００９８】
（実施の形態２）
実施の形態２による通話システムは、実施の形態１の通話システムに対して、パケットカウント値の算出手法が相違する点を特徴としている。なお、本実施の形態において、実施の形態１と同一のものは同一の符号を付して説明を省略する。また、本実施の形態においてブロック図は実施の形態１と同一であるため、図２を用いる。また、本実施の形態において、メインルーチンとなるフローチャートは実施の形態１と同一であるため、図７を用いる。
【００９９】
本実施の形態２おいて、図２に示すパケット送受信部２１は、最新のパケットについてのみ受信時刻を受信時刻記録部に記録する。
【０１００】
カウント部２３は、最新のパケットについては、カウント値を、算出時刻Ｔｋと最新のパケットの受信時刻との差分ΔＴ／第１の周期Ｔａにより得られる値に設定し、それ以外のパケットはカウント値を１に設定してパケットカウント値を算出する。
【０１０１】
図１１は、実施の形態２におけるパケットカウント値の算出手法の説明図である。図１１に示すように、カウント部２３は、揺らぎ吸収バッファ２２において、算出時刻Ｔｋから、過去、第１の周期Ｔａ内に受信されたパケットが蓄積されている場合、第１の周期内に受信されたパケットの中から受信時刻が最新のパケットＰＳを特定し、最新のパケットＰＳのカウント値をΔＴ／Ｔａに設定する。
【０１０２】
一方、カウント部２３は、揺らぎ吸収バッファ２２に蓄積されたパケットのうち、最新のパケットＰＳ以外のパケットＰＬ１，ＰＬ２については、カウント値を一律に１に設定する。
【０１０３】
この場合、カウント部２３は、算出時刻Ｔｋから、過去、第１の周期Ｔａ内に受信されたパケットであって、最新のパケットＰＳの受信時刻のみが分かればよいので、パケットカウント値の算出処理が終了した後、受信時刻記録部２５に記録されている受信記録を削除する。
【０１０４】
次に、実施の形態２による通話システムの動作について説明する。メインルーチンは、図７と同一であるため、説明を省く。相違点は、ステップＳ３のパケットカウント値の算出処理にある。図１２は、実施の形態２による通話システムのパケットカウント値の算出処理を示すフローチャートである。
【０１０５】
ステップＳ３１、Ｓ３３、Ｓ３４、Ｓ３６は、図８のステップＳ２１、Ｓ２３、Ｓ２４、Ｓ２６と同一であるため、説明を省く。ステップＳ３２において、カウント部２３は、揺らぎ吸収バッファ２２において、算出時刻Ｔｋから、過去、第１の周期Ｔａ内に受信したパケットのうち最新のパケットの受信時刻を特定する。
【０１０６】
また、カウント部２３は、算出時刻Ｔｋから、最新のパケット以外のパケットについては、カウント値を一律に１に設定する（ステップＳ３５）。
【０１０７】
そして、ステップＳ３７において、カウント部２３は、最新のパケットの受信時刻を受信時刻記録部２５から削除する。
【０１０８】
このように、本実施の形態による通話システムによれば、最新のパケットについてのみ、受信時刻を記録しておけばよいため、受信時刻記録部２５の容量を更に節約することができる。
【０１０９】
（実施の形態３）
本実施の形態における通話システムは、スパイク遅延の発生の有無を判定し、スパイク遅延が発生している場合は、参照する過去のパケットカウント値のウインドウ幅を短くし、短くしたウインドウ幅内のパケットカウント値から代表値を算出することを特徴としている。
【０１１０】
なお、本実施の形態において、実施の形態１、２と同一のものは同一の符号を付して説明を省略する。また、本実施の形態においてブロック図は実施の形態１と同一であるため、図２を用いる。
【０１１１】
本実施の形態において図２示すカウント部２３は、算出したパケットカウント値を、各パケットカウント値の時系列順序を示すためのインデックスと対応づけて観測履歴保持部２９に保持させる。
【０１１２】
具体的には、観測履歴保持部２９は過去Ｎ回のパケットカウント値を保持するため、カウント部２３は、最新のパケットカウント値のインデックスがＮ、最古のパケットカウント値のインデックスが１となるように、算出時刻が新しくなるにつれてインデックスが増大するように過去Ｎ回のパケットカウント値にインデックスを付す。
【０１１３】
また、本実施の形態において、カウント部２３は、観測履歴保持部２９に保持された過去Ｎ回のパケットカウント値に基づいて、スパイク遅延の有無を判定し、スパイク遅延が発生していると判定した場合は、過去Ｎ回のパケットカウント値のうち、過去Ｍ（Ｍ＜Ｎ）回のパケットカウント値を抽出する。
【０１１４】
ここで、カウント部２３は、下記のようにしてスパイク遅延の有無を判定する。図１３は、スパイク遅延の有無の判定処理を説明するためのグラフである。図１３において、縦軸はパケットカウント値を示し、横軸はインデックスを示している。図１３においては、Ｎ＝１００とされている。
【０１１５】
まず、カウント部２３は、基準値以下のパケットカウント値を特定する。図１３の例では点ＰＰ１〜ＰＰ６のパケットカウント値が基準値以下となっている。
【０１１６】
次に、カウント部２３は、基準値以下のパケットカウント値のうち、インデックスが最小、つまり最古の点と、インデックスが最大、つまり最新の点とを特定する。
【０１１７】
図１３の例では、カウント部２３は、点ＰＰ１と点ＰＰ６とを特定する。
【０１１８】
次に、カウント部２３は、最小のインデックスと最大のインデックスとの差分ΔＩを求める。そして、カウント部２３は、この差分ΔＩが予め定められた閾値より小さければ、スパイク遅延が発生したと判定し、この差分ΔＩが閾値より大きければスパイク遅延が発生していないと判定する。
【０１１９】
図１４は、スパイク遅延が発生している場合のパケットカウント値とインデックスとの関係を示すグラフである。図１４において縦軸はパケットカウント値を示し、横軸はインデックスを示している。
【０１２０】
図１４の例では、点ＰＰ１〜点ＰＰ５のパケットカウント値が基準値以下である。そして、点ＰＰ１はインデックスが最小であり、点ＰＰ５はインデックスが最大である。そして、点ＰＰ１のインデックスと点ＰＰ５のインデックスとの差分ΔＩが閾値より小さい。そのため、カウント部２３は、スパイク遅延が発生していると判定する。
【０１２１】
そして、カウント部２３は、図１４に示すように、スパイク遅延が発生していると判定すると、算出時刻Ｔｋから過去Ｍ個のパケットカウント値を抽出する。ここで、Ｍとしては、ΔＩに所定の係数β（０＜β≦１）を乗じた値（＝β・ΔＩ）を、整数で丸め込んだ値を採用することができる。
【０１２２】
そして、バッファサイズ変更部２４は、過去Ｍ個のパケットカウント値のうち、ｍ番目に小さなパケットカウント値を代表値として算出する。以下、バッファサイズ変更部２４は、実施の形態１、２と同様にして、代表値を基準値と比較して、揺らぎ吸収バッファ２２にパケットを挿入又は削除する。ここで、ｍとしては、Ｍ×αを整数で丸め込んだ値を採用することができる。
【０１２３】
このように、本実施の形態による通話システムによれば、スパイク遅延が発生した場合、参照する過去のパケットカウント値のウインドウ幅が狭められて揺らぎ吸収バッファ２２にパケットの挿入又は削除が行われる。そのため、稀にしか発生しないスパイク遅延が排除されるようにして、代表値を算出することができる。
【０１２４】
（実施の形態４）
実施の形態４による通話システムは、０の蓄積パケット数が連続して発生した場合におけるパケットカウント値の算出手法に特徴がある。なお、本実施の形態において、実施の形態１〜３と同一のものは同一の符号を付して説明を省略する。また、本実施の形態においてブロック図は実施の形態１と同一であるため、図２を用いる。
【０１２５】
本実施の形態において、図２に示すカウント部２３は、０の蓄積パケット数が連続して発生した場合、０の蓄積パケット数が連続した回数が増大するにつれて絶対値が増大する負の値を前記パケットカウント値として算出する。
【０１２６】
図１５は、実施の形態４におけるカウント部２３の処理を説明する図である。図１５（ａ）においては、第２周期Ｔｂの各区間において、パケットカウント値の算出時刻Ｔｋ−４〜Ｔｋの直後にパケットが受信されている。また、再生部２８は、各区間において、パケットを受信してから、次のパケットカウント値の算出時刻Ｔｋ−４〜Ｔｋが経過するまでに、揺らぎ吸収バッファ２２からパケットを読み出している。そのため、各算出時刻Ｔｋ−４〜Ｔｋにおいて、揺らぎ吸収バッファ２２における蓄積パケット数は０となっている。そのため、カウント部２３は、算出時刻Ｔｋ−４〜Ｔｋのそれぞれにおいてパケットカウント値を０と算出してしまう。
【０１２７】
一方、図１５（ｂ）においては、算出時刻Ｔｋ−４の少し前に１つのパケットを受信してから以降、パケットは受信されていない。この場合においても、各算出時刻Ｔｋ−３〜Ｔｋにおける蓄積パケット数は０となっているため、カウント部２３は、算出時刻Ｔｋ−３〜Ｔｋのそれぞれにおいてパケットカウント値を０と算出してしまう。
【０１２８】
しかしながら、図１５（ａ）と（ｂ）とでは、ネットワークの状況が大きく異なっている。すなわち、図１５（ａ）においては、パケットは定期的に受信装置２に到達しており、再生部２８は連続再生を行うことが可能となるが、図１５（ｂ）においては、パケットは定期的に受信装置２に到達していないため、再生部２８は連続再生を行うことができない。
【０１２９】
これを区別するため、カウント部２３は、下記の処理を行う。算出時刻（現在時刻）と最新のパケットの受信時刻との差がＴｂよりも大きい場合は、前回の算出時刻以後、パケット受信がなかったと考えられ、すなわち図１５（ｂ）の状況であると判断し、一方、算出時刻（現在時刻）と最新のパケットの受信時刻との差がＴｂよりも小さい場合は、図１５（ａ）の状況だと判断する。ここで、図１５（ｂ）の状況であると判断した場合、以下の処理を行う。つまり、図１５（ｂ）に示すように、算出時刻Ｔｋ−３で蓄積パケット数が０であり、算出時刻Ｔｋ−２でも蓄積パケット数が０となっており、算出時刻Ｔｋ−２において、０の蓄積パケット数の連続回数が１回となっている。この場合、カウント部２３は、０を算出時刻Ｔｋ−２におけるパケットカウント値として算出する。
【０１３０】
また、算出時刻Ｔｋ−１においては、０の蓄積パケット数の連続回数が２回となっている。そこで、カウント部２３は、連続回数である２回から１を差し引いた値に−１を乗じた値である−１を、算出時刻Ｔｋ−１におけるパケットカウント値として算出する。
【０１３１】
算出時刻Ｔｋにおいて、０の蓄積パケット数の連続回数は３であるため、カウント部２３は、連続回数である３回から１を差し引いた値に−１を乗じた値である−２を算出時刻Ｔｋにおけるパケットカウント値として算出する。
【０１３２】
ゆえに、カウント部２３は、（連続回数−１）・（−１）をパケットカウント値として算出する。
【０１３３】
これにより、図１５（ａ）のように、パケットは定期的に受信できているものの、算出時刻において、蓄積パケット数がたまたま０になっている場合と、図１５（ｂ）のように、パケットを定期的に受信できていない場合との差を考慮してパケットカウント値を算出することが可能となる。
【０１３４】
したがって、図１５（ｂ）の場合は、図１５（ａ）の場合よりも揺らぎ吸収バッファ２２からパケットが削除され難くなる。
【符号の説明】
【０１３５】
１  送信装置
２  受信装置
２１  パケット送受信部
２２  揺らぎ吸収バッファ
２３  カウント部
２４  バッファサイズ変更部
２５  受信時刻記録部
２６  基準値記憶部
２７  隠蔽処理部
２８  再生部
２９  観測履歴保持部
３０  スピーカ
３１  表示部
３３  マイク
３４  パケット生成部
【図１】
0005563406.tif 000002
【図２】
0005563406.tif 000003
【図３】
0005563406.tif 000004
【図４】
0005563406.tif 000005
【図５】
0005563406.tif 000006
【図６】
0005563406.tif 000007
【図７】
0005563406.tif 000008
【図８】
0005563406.tif 000009
【図９】
0005563406.tif 000010
【図１０】
0005563406.tif 000011
【図１１】
0005563406.tif 000012
【図１２】
0005563406.tif 000013
【図１３】
0005563406.tif 000014
【図１４】
0005563406.tif 000015
【図１５】
0005563406.tif 000016