(57)【特許請求の範囲】
【請求項１】
パケット受信部と、ＲＴＰ（Ｒｅａｌ−Ｔｉｍｅ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ）検出部と、揺らぎ検出部と、揺らぎ吸収バッファ制御部と、揺らぎ吸収バッファ部と、からなる、音声パケット遅延揺らぎを吸収する装置であって、
前記パケット受信部は、ネットワークに接続され、前記ネットワークを介して音声パケットを受信するとともに、受信した音声パケットのデータを前記ＲＴＰ検出部に送信し、
前記ＲＴＰ検出部は、前記音声パケットのデータから前記音声パケットのシーケンス番号を抽出し、そのシーケンス番号に基づいて、前記音声パケットの順序制御を行い、前記音声パケットの順序が揃う毎に、音声パケットが到着した旨の到着通知を前記揺らぎ検出部に送信し、
前記到着通知がなされた音声パケットを前記揺らぎ吸収バッファ部に出力し、
前記揺らぎ検出部は、前記到着通知に基づいて、前記音声パケットの到着時間間隔を計測し、前記音声パケットの到着の遅延時間を算出し、その遅延時間を前記音声パケットの遅延揺らぎ量として蓄積し、
前記遅延時間のうち最大遅延時間を前記揺らぎ吸収バッファ制御部に出力し、
前記揺らぎ吸収バッファ制御部は、前記最大遅延時間に基づいて、前記揺らぎ吸収バッファ部における前記音声パケットの廃棄の可否を規定する廃棄しきい値の演算を行い、
前記廃棄しきい値に基づいて、前記揺らぎ吸収バッファ部に保管されている前記音声パケットの廃棄管理を行い、
前記揺らぎ吸収バッファ部は、前記揺らぎ吸収バッファ制御部からの指示に従って、音声パケットを出力するものである音声パケット遅延揺らぎ吸収装置。
【請求項２】
前記パケット受信部は前記音声パケットのペイロード及びデータ長を前記ＲＴＰ検出部に送信するものであることを特徴とする請求項１に記載の音声パケット遅延揺らぎ吸収装置。
【請求項３】
前記ＲＴＰ検出部は、
前記ペイロードに含まれているＲＴＰヘッダに基づいて、前記シーケンス番号を抽出し、
抽出したシーケンス番号が次に来るべき音声パケットのシーケンス番号である場合には、前記到着通知を前記揺らぎ検出部に送信し、
その音声パケットのシーケンス番号、データ長及び到着通知を前記揺らぎ吸収バッファ制御部に送信することを特徴とする請求項２に記載の音声パケット遅延揺らぎ吸収装置。
【請求項４】
前記ＲＴＰ検出部は、
到着順序が逆転し、期待しているシーケンス番号の音声パケットが到着しない場合には、前記揺らぎ検出部からのタイムアウト通知信号を受けるまで、先に到着した音声パケットを保持し、前記タイムアウト通知信号を受信したときに、保持してあった音声パケットが到着したものと見なして、前記到着通知を前記揺らぎ検出部に送信することを特徴とする請求項３に記載の音声パケット遅延揺らぎ吸収装置。
【請求項５】
前記揺らぎ検出部は、演算制御部と、カウンタ部と、揺らぎ情報レジスタと、からなり、
前記演算制御部は、
前記ＲＴＰ検出部から前記到着通知を受信したときに、前記カウンタ部を起動させ、前記音声パケットの到着時間間隔を計測し、
前記演算制御部に予め設定されている到着予測時間に基づいて、前記音声パケットの遅延時間を算出し、その算出結果を前記揺らぎ情報レジスタに格納し、
前記カウンタ部におけるカウント値が予め設定されていた値に達したときには、前記ＲＴＰ検出部にタイムアウト通知信号を送信することを特徴とする請求項１乃至４の何れか一項に記載の音声パケット遅延揺らぎ吸収装置。
【請求項６】
前記揺らぎ吸収バッファ制御部は、制御部と、管理部とから構成されており、
前記制御部は、前記ＲＴＰ検出部から送られてくる前記到着通知、シーケンス番号及びデータ長を前記管理部に通知し、
前記管理部は、前記シーケンス番号と前記揺らぎ吸収バッファ部のアドレスとを関係付けたメモリマップと、現在のメモリの読み出しアドレスを示す読み出しアドレスカウンタと、書き込みアドレスを示す書き込みアドレスカウンタと、前記揺らぎ吸収バッファ部の廃棄しきい値を示すしきい値アドレスカウンタと、からなり、
前記制御部は、前記読み出しアドレスカウンタ、前記書き込みアドレスカウンタ及び前記しきい値アドレスカウンタに格納されるデータを更新するものであることを特徴とする請求項１乃至５の何れか一項に記載の音声パケット遅延揺らぎ吸収装置。
【請求項７】
前記揺らぎ吸収バッファ部は、書き込みタイミング部と、ＤＰＭ（Ｄｕａｌ  Ｐｏｒｔ  Ｍｅｍｏｒｙ）部と、読み出しタイミング部と、からなり、
前記ＤＰＭ部は、読み出しポインタ、書き込みポインタ及びしきい値ポインタの概念を有することにより、仮想的ＦＩＦＯバッファを構成しており、
前記書き込みタイミング部は、前記揺らぎ吸収バッファ制御部からの指示に従って、前記ＲＴＰ検出部から送られてきた音声パケットを前記ＤＰＭ部に書き込む際の書き込みタイミングの調整を行い、
前記読み出しタイミング部は、前記揺らぎ吸収バッファ制御部からの指示に従って、前記ＲＴＰ検出部から送られてきた音声パケットを前記ＤＰＭ部が読み出す際の読み出しタイミングの調整を行うものであることを特徴とする請求項１乃至６の何れか一項に記載の音声パケット遅延揺らぎ吸収装置。
【請求項８】
前記演算制御部は、前記到着通知に基づいて前記カウンタ部のタイマ値の読み出し及び起動を行うことにより、前記音声パケットの到着時間間隔ｔｂを計測し、この値と前記カウンタ部に設定されているタイムアウト時間ｔｄとを比較し、前記到着時間間隔ｔｂが前記タイムアウト時間ｔｄより大きい場合には、タイムアウト通知信号を前記ＲＴＰ検出部に送信するようになっていることを特徴とする請求項５に記載の音声パケット遅延揺らぎ吸収装置。
【請求項９】
前記演算制御部は、前記到着時間間隔ｔｂと、前記演算制御部内に予め設定されている到着予測時間との差を揺らぎ遅延時間として算出し、この揺らぎ遅延時間を前記揺らぎ情報レジスタに格納することを特徴とする請求項８に記載の音声パケット遅延揺らぎ吸収装置。
【請求項１０】
前記メモリマップは、前記音声パケットのシーケンス番号と、書き込まれたアドレス情報と、廃棄フラグとの組み合わせからなることを特徴とする請求項６に記載の音声パケット遅延揺らぎ吸収装置。
【請求項１１】
前記読み出しアドレスカウンタの値は読み出しポインタであり、前記書き込みアドレスカウンタの値は書き込みポインタであり、前記しきい値アドレスカウンタの値はしきい値ポインタであり、前記読み出しポインタ、前記書き込みポインタ及び前記しきい値ポインタは、現在の読み出しアドレス、現在の書き込みアドレス、現在のしきい値アドレスをそれぞれ示していることを特徴とする請求項６に記載の音声パケット遅延揺らぎ吸収装置。
【請求項１２】
前記しきい値ポインタは、前記演算制御部から前記制御部に通知された最大遅延量をメモリアドレスに換算したものであることを特徴とする請求項１１に記載の音声パケット遅延揺らぎ吸収装置。
【請求項１３】
前記しきい値ポインタと前記読み出しポインタとの差が前記揺らぎ吸収バッファ部の容量であり、前記制御部からの書きこみ要求信号により、書き込みポインタが更新され、前記制御部からの読み出し要求信号により、前記読み出しポインタと前記しきい値ポインタとが更新されるものであることを特徴とする１１または１２に記載の音声パケット遅延揺らぎ吸収装置。
【請求項１４】
前記到着予測時間は前記音声パケットの平均到着時間間隔に等しく設定されていることを特徴とする請求項９に記載の音声パケット遅延揺らぎ吸収装置。
【請求項１５】
前記平均到着時間間隔は、前記揺らぎ情報レジスタに蓄積されている遅延時間の度数分布に基づき、受信している音声パケットの到着予測時間の補正量を算出し、この補正量に基づいて求められるものであることを特徴とする請求項１４に記載の音声パケット遅延揺らぎ吸収装置。
【請求項１６】
音声パケットの遅延揺らぎを吸収する装置において、ネットワークを介して受信され、保持されている音声パケットの廃棄の可否を決定する廃棄しきい値を管理する方法であって、
前記音声パケットが前記廃棄しきい値を超えていない場合において、前記音声パケットの少なくとも１つが欠落しているときには、欠落した音声パケットの代わりにダミーデータを挿入し、順番制御された一連の音声パケットとして出力し、
前記音声パケットが前記廃棄しきい値を超えている場合には、メモリマップに格納されているシーケンス番号に廃棄フラグを立て、前記廃棄フラグが立てられたシーケンス番号に対応する音声パケットが格納されているメモリアドレスを出力しないようにする過程を備えることを特徴とする方法。
【請求項１７】
前記音声パケットが前記廃棄しきい値を超えている場合には、前記音声パケットのうち廃棄フラグが付加されている音声パケットを一連の音声パケットから排除し、順番制御された一連の音声パケットとして出力する過程を備えることを特徴とする請求項１６に記載の方法。
【請求項１８】
ネットワークを介して受信した音声パケットにおける遅延揺らぎを吸収する方法であって、
ネットワークを介して音声パケットを受信する第１の過程と、
前記音声パケットからそのシーケンス番号を抽出し、そのシーケンス番号に基づいて、前記音声パケットの順序制御を行い、前記音声パケットの順序が揃う毎に、音声パケットが到着した旨の到着通知を送信する第２の過程と、
前記到着通知に基づいて、前記音声パケットの到着時間間隔を計測し、前記音声パケットの到着の遅延時間を算出し、その遅延時間を前記音声パケットの遅延揺らぎ量として蓄積する第３の過程と、
前記遅延時間のうち最大遅延時間に基づいて、前記音声パケットの廃棄の可否を決定する廃棄しきい値の演算を行う第４の過程と、
前記廃棄しきい値に基づいて、保管されている前記音声パケットの廃棄管理を行う第５の過程と、
を備える音声パケット遅延揺らぎ吸収方法。
【請求項１９】
前記第２の過程は、
前記音声パケットのペイロードに含まれているＲＴＰヘッダに基づいて、前記シーケンス番号を抽出する過程と、
抽出したシーケンス番号が次に来るべき音声パケットのシーケンス番号である場合には、前記到着通知を送信する過程と、
を備えることを特徴とする請求項１８に記載の音声パケット遅延揺らぎ吸収方法。
【請求項２０】
前記第２の過程は、
到着順序が逆転し、期待しているシーケンス番号の音声パケットが到着しない場合には、タイムアウト通知信号を受けるまで、先に到着した音声パケットを保持し、前記タイムアウト通知信号を受信したときに、保持してあった音声パケットが到着したものと見なして、前記到着通知を送信する過程を備えることを特徴とする請求項１８に記載の音声パケット遅延揺らぎ吸収方法。
【請求項２１】
前記到着通知を受信したときに、カウンタを起動させ、前記音声パケットの到着時間間隔を計測する第６の過程と、
予め設定されている到着予測時間に基づいて、前記音声パケットの遅延時間を算出し、その算出結果を格納する第７の過程と、
前記カウンタにおけるカウント値が予め設定されていた値に達したときには、前記タイムアウト通知信号を送信する第８の過程と、
を備えることを特徴とする請求項２０に記載の音声パケット遅延揺らぎ吸収方法。
【請求項２２】
前記第７の過程は、
前記到着通知に基づいて前記カウンタのタイマ値の読み出し及び起動を行うことにより、前記音声パケットの到着時間間隔ｔｂを計測する過程と、
前記到着時間間隔ｔｂと前記カウンタに設定されているタイムアウト時間ｔｄとを比較し、前記到着時間間隔ｔｂが前記タイムアウト時間ｔｄより大きい場合には、前記タイムアウト通知信号を送信する過程と、
を備えることを特徴とする請求項２０に記載の音声パケット遅延揺らぎ吸収方法。
【請求項２３】
前記到着時間間隔ｔｂと、前記演算制御部内に予め設定されている到着予測時間との差を揺らぎ遅延時間として算出し、この揺らぎ遅延時間を格納する過程を備えることを特徴とする請求項２２に記載の音声パケット遅延揺らぎ吸収方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワークを介して音声パケット通信を行う際に発生する音声パケットの遅延揺らぎを吸収する装置及び方法に関する。より詳細には、本発明は、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ネットワークにおいて、音声データをパケット化し通信する場合に、音声パケットの到着間隔を監視し、これに基づいて遅延揺らぎ量を推測し、揺らぎ吸収バッファの廃棄しきい値を自動的に制御する音声パケット遅延揺らぎ吸収装置及び方法に関する。
【０００２】
【従来の技術】
ＩＰネットワークはこれまで文字データ通信に用いられてきたが、近年、インターネットの普及に伴い、ＩＰパケットに音声データをカプセリングしてパケット通信を行うＶＯＩＰ(Ｖｏｉｃｅ  Ｏｖｅｒ  ＩＰ)が注目されている。ＶＯＩＰは、一般的には、インターネットラジオ、インターネット電話などのようにＩＰを用いる音声通信に用いられる。インターネットでは単位時間あたりのデータ伝送量（帯域幅に相当）や伝達時間が保証されておらず、不安定に変動するため、音質の劣化や音飛びが発生しやすくなる。
【０００３】
ＩＰネットワークにおけるパケット通信において、個々のＩＰパケットは完全に独立したものとして扱われるため、必ずしも一連のパケットが同一のネットワーク経路を通過するとは限らない。また、インターネットでは様々な伝達速度を持つ経路を複数のユーザーで共有しており、情報を伝送するときに経路を随時決定し、パケットを中継している。
【０００４】
このようなパケット通信では、一般的に、通信帯域が広ければ伝送遅延は小さく、通信帯域が狭ければ伝送遅延が大きくなり、また、バースト的なトラフィックが発生した場合、その瞬間だけ伝送遅延が大きくなってしまうという特徴を持つ。
【０００５】
また、ＩＰパケットの通過経路の相違により、送信順とは異なる順序で受信されたり、ＩＰパケットが途中で失われることもある。
【０００６】
従って、音声パケットを伝送する場合、伝送揺らぎが生じてしまうことは避けられない。
【０００７】
一方、従来のラジオや電話は、一定の帯域幅を占有して使用でき、伝達時間も一定であるため、一定量の音声データを送受信することができるという特徴を有している。
【０００８】
従って、ＩＰネットワーク上を伝送されてきた音声データを電話機などの音声再生装置や音声通信網に出力する際には、ＩＰネットワークで発生する遅延揺らぎを吸収する機能が必要となる。
【０００９】
このような遅延揺らぎを吸収し、音声データをパケット化するためのプロトコルとして、多くのプロトコルが提案されている。
【００１０】
そのようなプロトコルの一つとしてＲＴＰ（Ｒｅａｌ−ｔｉｍｅ  ＴｒａｎｓｐｏＲＴＰｒｏｔｏｃｏｌ）がある。このＲＴＰは、ネットワークとは独立に、端末間でマルチメディアフローを適切に扱うために機能するプロトコルである。ＲＴＰは、音声データにシーケンス番号とパケット送信時刻とを付加して送信する。そして、音声パケット受信側では音声データに付加されたシーケンス番号及びパケット送信時刻に基づいて再生時間の同期をとり、遅延の大きいパケットを廃棄することにより、遅延揺らぎを吸収するようになっている。
【００１１】
また、ＩＰネットワークから音声データを受信し、音声通信網へ送出する装置においては、遅延揺らぎを吸収するため、一般的に、音声パケットを一時的に蓄積するＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ−Ｆｉｒｓｔ−Ｏｕｔ）方式のバッファが用いられる。大きな遅延揺らぎを吸収するためには、先頭音声パケットをＦＩＦＯ方式のバッファに入力して出力するまでの時間を大きく設定する。
【００１２】
【発明が解決しようとする課題】
すなわち、ＦＩＦＯ方式のバッファにおける遅延量を大きく設定する。必要以上に大きな遅延は、音声品質を劣化させ、音声のやり取りを不自然にし、さらには、音声通信での会話を行う場合の妨げになる。従って、この遅延量はこれまでネットワーク設計時に固定的に設定された値であったが、ネットワークの状態に合わせて遅延量を最小限にする必要がある。
【００１３】
また、バッファによる制御において音声データの廃棄が必要となった場合には、ＦＩＦＯ方式のバッファのリセットを行うことにより、音声データの廃棄を行う。このため、それまでＦＩＦＯバッファ内に蓄積された一連の音声データがなくなり、大きな音飛びとなって通話内容が阻害されてしまうことがあった。
【００１４】
そこで、このような問題を解決するための遅延揺らぎ吸収装置の一例が、例えば、特開２００１−１６０８２６公報に開示されている。
【００１５】
この公報に開示されている遅延揺らぎ吸収装置は、遅延量を増加させる場合には、無音部分を再生挿入し、遅延量を減少させる場合には、無音部分を廃棄して遅延量を必要最小限にすることを特徴とするものである。これにより、音声の再生音が不自然ではなく、会話の明瞭性を維持しようとするものである。
【００１６】
しかしながら、この遅延揺らぎ吸収装置においては、常にバッファ内にある程度の無音パケットを保有することになり、バッファ自身の持つ固定遅延量が大きくなるという問題を内包するものであった。
【００１７】
本発明は、上述したような従来の音声データ通信技術の問題点を回避するためになされたものであり、バッファ内部のデータを把握する仕組みを導入することにより、バッファによる遅延時間を最小にするように制御し、急激な音飛びを防ぎ、通話音質の劣化を防止し得る遅延揺らぎ吸収装置及び同方法を提供することを目的とする。
【００１８】
【課題を解決するための手段】
本発明は、特に、ＩＰプロトコルを用いて、音声データをパケット化し、通信するシステムの受信側に設けられる遅延揺らぎ吸収装置において、各パケットの到着時間間隔を監視し、これから得られた音声パケットの遅延揺らぎを定量的に処理し、これにより収集されたデータに基づいて揺らぎ吸収バッファ容量すなわち廃棄しきい値の制御を自動化し、また、トラフィックの状態にあわせて吸収バッファによる遅延時間を最小限にするものである。
【００１９】
また、本発明は、揺らぎ吸収バッファ部におけるしきい値の変動、あるいは、バースト的なパケットの到着によってパケット廃棄が必要になった場合、バッファに蓄積されるパケットを従来のようにバッファのリセットにより連続的に廃棄するのではなく、所定の間隔をあけてパケットを廃棄することにより急激な音飛びを緩和し、通話品質の劣化を防止している。
【００２０】
具体的には、本発明は、パケット受信部と、ＲＴＰ（Ｒｅａｌ−Ｔｉｍｅ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ）検出部と、揺らぎ検出部と、揺らぎ吸収バッファ制御部と、揺らぎ吸収バッファ部と、からなる、音声パケット遅延揺らぎを吸収する装置であって、前記パケット受信部は、ネットワークに接続され、前記ネットワークを介して音声パケットを受信するとともに、受信した音声パケットのデータを前記ＲＴＰ検出部に送信し、前記ＲＴＰ検出部は、前記音声パケットのデータから前記音声パケットのシーケンス番号を抽出し、そのシーケンス番号に基づいて、前記音声パケットの順序制御を行い、前記音声パケットの順序が揃う毎に、音声パケットが到着した旨の到着通知を前記揺らぎ検出部に送信し、前記到着通知がなされた音声パケットを前記揺らぎ吸収バッファ部に出力し、前記揺らぎ検出部は、前記到着通知に基づいて、前記音声パケットの到着時間間隔を計測し、前記音声パケットの到着の遅延時間を算出し、その遅延時間を前記音声パケットの遅延揺らぎ量として蓄積し、前記遅延時間のうち最大遅延時間を前記揺らぎ吸収バッファ制御部に出力し、前記揺らぎ吸収バッファ制御部は、前記最大遅延時間に基づいて、前記揺らぎ吸収バッファ部における前記音声パケットの廃棄の可否を規定する廃棄しきい値の演算を行い、前記廃棄しきい値に基づいて、前記揺らぎ吸収バッファ部に保管されている前記音声パケットの廃棄管理を行い、前記揺らぎ吸収バッファ部は、前記揺らぎ吸収バッファ制御部からの指示に従って、音声パケットを出力するものである音声パケット遅延揺らぎ吸収装置を提供する。
【００２１】
前記パケット受信部は前記音声パケットのペイロード及びデータ長を前記ＲＴＰ検出部に送信するものであることが好ましい。
【００２２】
前記ＲＴＰ検出部は、例えば、前記ペイロードに含まれているＲＴＰヘッダに基づいて、前記シーケンス番号を抽出し、抽出したシーケンス番号が次に来るべき音声パケットのシーケンス番号である場合には、前記到着通知を前記揺らぎ検出部に送信し、その音声パケットのシーケンス番号、データ長及び到着通知を前記揺らぎ吸収バッファ制御部に送信するように構成することができる。
【００２３】
前記ＲＴＰ検出部は、例えば、到着順序が逆転し、期待しているシーケンス番号の音声パケットが到着しない場合には、前記揺らぎ検出部からのタイムアウト通知信号を受けるまで、先に到着した音声パケットを保持し、前記タイムアウト通知信号を受信したときに、保持してあった音声パケットが到着したものと見なして、前記到着通知を前記揺らぎ検出部に送信するように構成することができる。
【００２４】
前記揺らぎ検出部は、例えば、演算制御部と、カウンタ部と、揺らぎ情報レジスタと、からなるものとすることができる。この場合、前記演算制御部は、前記ＲＴＰ検出部から前記到着通知を受信したときに、前記カウンタ部を起動させ、前記音声パケットの到着時間間隔を計測し、前記演算制御部に予め設定されている到着予測時間に基づいて、前記音声パケットの遅延時間を算出し、その算出結果を前記揺らぎ情報レジスタに格納し、前記カウンタ部におけるカウント値が予め設定されていた値に達したときには、前記ＲＴＰ検出部にタイムアウト通知信号を送信するものとして構成することができる。
【００２５】
また、前記揺らぎ吸収バッファ制御部は、例えば、制御部と、管理部とから構成することができる。この場合、前記制御部は、前記ＲＴＰ検出部から送られてくる前記到着通知、シーケンス番号及びデータ長を前記管理部に通知し、前記管理部は、前記シーケンス番号と前記揺らぎ吸収バッファ部のアドレスとを関係付けたメモリマップと、現在のメモリの読み出しアドレスを示す読み出しアドレスカウンタと、書き込みアドレスを示す書き込みアドレスカウンタと、前記揺らぎ吸収バッファ部の廃棄しきい値を示すしきい値アドレスカウンタと、からなり、前記制御部は、前記読み出しアドレスカウンタ、前記書き込みアドレスカウンタ及び前記しきい値アドレスカウンタに格納されるデータを更新するように構成することができる。
【００２６】
前記揺らぎ吸収バッファ部は、例えば、書き込みタイミング部と、ＤＰＭ（Ｄｕａｌ  Ｐｏｒｔ  Ｍｅｍｏｒｙ）部と、読み出しタイミング部と、からなるものとすることができる。この場合、前記ＤＰＭ部は、読み出しポインタ、書き込みポインタ及びしきい値ポインタの概念を有することにより、仮想的ＦＩＦＯバッファを構成しており、前記書き込みタイミング部は、前記揺らぎ吸収バッファ制御部からの指示に従って、前記ＲＴＰ検出部から送られてきた音声パケットを前記ＤＰＭ部に書き込む際の書き込みタイミングの調整を行い、前記読み出しタイミング部は、前記揺らぎ吸収バッファ制御部からの指示に従って、前記ＲＴＰ検出部から送られてきた音声パケットを前記ＤＰＭ部が読み出す際の読み出しタイミングの調整を行うものとして構成することができる。
【００２７】
前記演算制御部は、前記到着通知に基づいて前記カウンタ部のタイマ値の読み出し及び起動を行うことにより、前記音声パケットの到着時間間隔ｔｂを計測し、この値と前記カウンタ部に設定されているタイムアウト時間ｔｄとを比較し、前記到着時間間隔ｔｂが前記タイムアウト時間ｔｄより大きい場合には、タイムアウト通知信号を前記ＲＴＰ検出部に送信するようになっていることが好ましい。
【００２８】
また、前記演算制御部は、前記到着時間間隔ｔｂと、前記演算制御部内に予め設定されている到着予測時間との差を揺らぎ遅延時間として算出し、この揺らぎ遅延時間を前記揺らぎ情報レジスタに格納することが好ましい。
【００２９】
前記メモリマップは、例えば、前記音声パケットのシーケンス番号と、書き込まれたアドレス情報と、廃棄フラグとの組み合わせからなるものとすることができる。
【００３０】
前記読み出しアドレスカウンタの値は読み出しポインタであり、前記書き込みアドレスカウンタの値は書き込みポインタであり、前記しきい値アドレスカウンタの値はしきい値ポインタであり、前記読み出しポインタ、前記書き込みポインタ及び前記しきい値ポインタは、現在の読み出しアドレス、現在の書き込みアドレス、現在のしきい値アドレスをそれぞれ示しているものとすることができる。
【００３１】
前記しきい値ポインタは、例えば、前記演算制御部から前記制御部に通知された最大遅延量をメモリアドレスに換算したものであることが好ましい。
【００３２】
前記しきい値ポインタと前記読み出しポインタとの差が前記揺らぎ吸収バッファ部の容量であり、前記制御部からの書きこみ要求信号により、書き込みポインタが更新され、前記制御部からの読み出し要求信号により、前記読み出しポインタと前記しきい値ポインタとが更新されるものであることが好ましい。
【００３３】
前記到着予測時間は前記音声パケットの平均到着時間間隔に等しく設定されていることが好ましい。
【００３４】
前記平均到着時間間隔は、例えば、前記揺らぎ情報レジスタに蓄積されている遅延時間の度数分布に基づき、受信している音声パケットの到着予測時間の補正量を算出し、この補正量に基づいて求められる。
【００３５】
また、本発明は、音声パケットの遅延揺らぎを吸収する装置において、ネットワークを介して受信され、保持されている音声パケットの廃棄の可否を決定する廃棄しきい値を管理する方法であって、前記音声パケットが前記廃棄しきい値を超えていない場合において、前記音声パケットの少なくとも１つが欠落しているときには、欠落した音声パケットの代わりにダミーデータを挿入し、順番制御された一連の音声パケットとして出力し、前記音声パケットが前記廃棄しきい値を超えている場合には、メモリマップに格納されているシーケンス番号に廃棄フラグを立て、前記廃棄フラグが立てられたシーケンス番号に対応する音声パケットが格納されているメモリアドレスを出力しないようにする過程を備えることを特徴とする方法を提供する。
【００３６】
本方法は、前記音声パケットが前記廃棄しきい値を超えている場合には、前記音声パケットのうち廃棄フラグが付加されている音声パケットを一連の音声パケットから排除し、順番制御された一連の音声パケットとして出力する過程を備えることが好ましい。
【００３８】
さらに、本発明は、ネットワークを介して受信した音声パケットにおける遅延揺らぎを吸収する方法であって、ネットワークを介して音声パケットを受信する第１の過程と、前記音声パケットからそのシーケンス番号を抽出し、そのシーケンス番号に基づいて、前記音声パケットの順序制御を行い、前記音声パケットの順序が揃う毎に、音声パケットが到着した旨の到着通知を送信する第２の過程と、前記到着通知に基づいて、前記音声パケットの到着時間間隔を計測し、前記音声パケットの到着の遅延時間を算出し、その遅延時間を前記音声パケットの遅延揺らぎ量として蓄積する第３の過程と、前記遅延時間のうち最大遅延時間に基づいて、前記音声パケットの廃棄の可否を決定する廃棄しきい値の演算を行う第４の過程と、前記廃棄しきい値に基づいて、保管されている前記音声パケットの廃棄管理を行う第５の過程と、を備える音声パケット遅延揺らぎ吸収方法を提供する。
【００３９】
前記第２の過程は、例えば、前記音声パケットのペイロードに含まれているＲＴＰヘッダに基づいて、前記シーケンス番号を抽出する過程と、抽出したシーケンス番号が次に来るべき音声パケットのシーケンス番号である場合には、前記到着通知を送信する過程と、を備えることが好ましい。
【００４０】
前記第２の過程は、例えば、到着順序が逆転し、期待しているシーケンス番号の音声パケットが到着しない場合には、タイムアウト通知信号を受けるまで、先に到着した音声パケットを保持し、前記タイムアウト通知信号を受信したときに、保持してあった音声パケットが到着したものと見なして、前記到着通知を送信する過程を備えることが好ましい。
【００４１】
本方法は、前記到着通知を受信したときに、カウンタを起動させ、前記音声パケットの到着時間間隔を計測する第６の過程と、予め設定されている到着予測時間に基づいて、前記音声パケットの遅延時間を算出し、その算出結果を格納する第７の過程と、前記カウンタにおけるカウント値が予め設定されていた値に達したときには、前記タイムアウト通知信号を送信する第８の過程と、を備えることが好ましい。
【００４２】
前記第７の過程は、例えば、前記到着通知に基づいて前記カウンタのタイマ値の読み出し及び起動を行うことにより、前記音声パケットの到着時間間隔ｔｂを計測する過程と、前記到着時間間隔ｔｂと前記カウンタに設定されているタイムアウト時間ｔｄとを比較し、前記到着時間間隔ｔｂが前記タイムアウト時間ｔｄより大きい場合には、前記タイムアウト通知信号を送信する過程と、を備えることが好ましい。
【００４３】
本方法は、前記到着時間間隔ｔｂと、前記演算制御部内に予め設定されている到着予測時間との差を揺らぎ遅延時間として算出し、この揺らぎ遅延時間を格納する過程を備えることが好ましい。
【００４４】
【発明の実施の形態】
図１は、本発明の一実施形態に係る音声パケット遅延揺らぎ吸収装置１００の原理的な構造を示すブロック図である。
【００４５】
本実施形態に係る音声パケット遅延揺らぎ吸収装置１００は、ネットワークに接続されているＩＰパケット受信部１０と、ＲＴＰ検出部１１と、揺らぎ検出部１２と、揺らぎ吸収バッファ制御部１３と、揺らぎ吸収バッファ部１４と、から構成されている。
【００４６】
ＩＰパケット受信部１０は、インターネットに代表されるＩＰネットワークに接続されている。ＩＰパケット受信部１０はＩＰネットワークから送信される音声パケットを受信し、音声パケットに付加されたＩＰヘッダを受け取り、音声パケットに含まれるデータの確認をする。
【００４７】
次に、ＩＰパケット受信部１０は、ＵＤＰヘッダから、送信ポート番号及び宛先ポート番号、データフィールド、誤り検出などを行った後に、ＵＤＰデータフィールドのデータ長情報をＲＴＰ検出部１１に出力する。
【００４８】
ＲＴＰ検出部１１は、ＲＴＰヘッダを付加して送信されてきた音声データのシーケンス番号に基づいて順序制御を行う。ＲＴＰ検出部１１は、音声パケットの順序が揃うごとに、揺らぎ検出部１２に音声パケットが到着したことを知らせる到着通知を送信する。さらに、ＲＴＰ検出部１１は、音声パケットが到着した旨とシーケンス番号とを揺らぎ吸収バッファ制御部１３に通知するための機能を有する。このように音声パケットの到着通知が行われた音声データは、ＲＴＰ検出部１１から揺らぎ吸収バッファ部１４に出力される。
【００４９】
揺らぎ検出部１２は、音声パケットの到着通知により、音声データの揺らぎを各音声パケットの遅延量として度数分布の状態で蓄積する。また、揺らぎ検出部１２は、音声データの遅延時間のうちの最大遅延時間を揺らぎ吸収バッファ制御部１３に通知する。
【００５０】
揺らぎ吸収バッファ制御部１３は、ＲＴＰ検出部１１から音声パケット到着通知とシーケンス番号とを受信し、音声データを書込むためにバッファメモリの書き込みアドレスを生成し、音声データの書き込みのタイミング制御を行う。これと同時に、シーケンス番号と書き込みアドレス情報とがアドレステーブルに保持される。
【００５１】
さらに、揺らぎ吸収バッファ制御部１３は、揺らぎ検出部１２から送信された最大遅延時間から揺らぎ吸収バッファ部１４における廃棄しきい値を演算し、この結果得られた廃棄しきい値に基づいて、揺らぎ吸収バッファ部１４における音声データの廃棄管理を行うようになっている。
【００５２】
揺らぎ吸収バッファ部１４はＤＰＭ（Ｄｕａｌ  Ｐｏｒｔ  Ｍｅｍｏｒｙ）から構成されている。揺らぎ吸収バッファ部１４は、揺らぎ吸収バッファ制御部１３からの指示により音声データを一時保持し、これを符号伸張部に送るようになっている。
【００５３】
以上のような構成を有する本実施形態に係る音声パケット遅延揺らぎ吸収装置１００においては、音声パケットが到着する時間間隔を監視し、遅延揺らぎ量の度数分布を推測することにより、揺らぎ吸収バッファ部１４における廃棄しきい値を動的に、かつ、自動的に制御することになる。
【００５４】
また、音声データの遅延量を動的に最小限に制御できるので音声品質を損なうことがない。
【００５５】
図２は、本実施形態に係る音声パケット遅延揺らぎ吸収装置１００の具体的な構成を示すブロック図である。
【００５６】
以下、図２を参照して、本実施形態に係る音声パケット遅延揺らぎ吸収装置１００の構成を具体的に説明する。図２において、図１と同一の構成部分には同一の符号を付する。
【００５７】
ＩＰパケット受信部１０は、ネットワークからＩＰパケットを受信し、ＩＰヘッダの処理を行う。
【００５８】
次に、ＩＰパケット受信部１０は、ＵＤＰヘッダの終端処理、すなわち、アドレスの確認、ＵＤＰヘッダに付与された送信先及び宛先ポート番号、データ長、誤りのチェック等を行う。これが終了すると、ＩＰパケット受信部１０は、ＩＰパケットのペイロードとデータ長に関する情報をＲＴＰ検出部１１に送信する。
【００５９】
ＲＴＰ検出部１１は、ＩＰパケットのペイロードに含まれているＲＴＰヘッダを読み取り、そのＲＴＰヘッダからその音声パケットのシーケンス番号を検出し、この番号が次に来るべき音声パケットのシーケンス番号であるか否かを判断する。
【００６０】
ＲＴＰ検出部１１は、このシーケンス番号が、期待通りに次に来るべきシーケンス番号であれば、正しい音声パケットが到着したものと判断する。次いで、ＲＴＰ検出部１１は、正しい音声パケットが到着したことを揺らぎ検出部１２に通知すると同時に、音声パケットの到着、この音声パケットのシーケンス番号、データ長を揺らぎ吸収バッファ制御部１３に通知する。さらに、ＲＴＰ検出部１１は、音声パケットからＲＴＰヘッダを取り除いた部分、すなわち、音声データを揺らぎ吸収バッファ部１４に送信する。
【００６１】
一方、音声パケットの順序が中継途中に逆転し、次に来るべきパケットが到着しなかった場合、すなわち、期待通りのシーケンス番号が到着しなかった場合、ＲＴＰ検出部１１は、先に到着したとみなされた音声パケットを、後に説明する揺らぎ検出部１２からのタイムアウト通知信号を受け取るまで一時保持する。タイムアウト通知信号を受け取るまでに、期待した音声パケットが到着すれば、ＲＴＰ検出部１１は、上述したように、この音声パケットの到着通知を揺らぎ検出部１２に通知し、音声パケットの到着、音声パケットのシーケンス番号及びデータ長を揺らぎ吸収バッファ制御部１３に通知し、さらに、音声データを揺らぎ吸収バッファ部１４に送信する。
【００６２】
ＲＴＰ検出部１１は、タイムアウト通知信号を受け取るまでに期待した音声パケットが到着しなければ、先に保存してあった音声パケットが次に来るべき音声パケットであるとみなし、上述と同様に、音声パケットが到着したことを揺らぎ検出部１２に通知し、音声パケットの到着、音声パケットのシーケンス番号及びデータ長を揺らぎ吸収バッファ制御部１３に通知し、さらに、音声データを揺らぎ吸収バッファ部１４に送る。
【００６３】
揺らぎ検出部１２は、図２に示すように、演算制御部２０１と、カウンタ部２０２と、揺らぎ情報レジスタ２０３と、から構成されている。
【００６４】
まず、演算制御部２０１は、ＲＴＰ検出部１１から音声パケット到着通知を受け取るとカウンタ部２０２を読み出し、カウンタ部２０２を起動させる。
【００６５】
次に、カウンタ部２０２は音声パケットが到着する時間間隔を計測する。演算制御部２０１には、予め到着予測時間間隔が設定されている到着予測時間レジスタ２０４が含まれており、この到着予測時間間隔と計測された到着時間間隔の差を、音声パケットの遅延時間として算出する。算出された値は揺らぎ情報レジスタ２０３に格納される。
【００６６】
また、カウンタ部２０２が予め設定されていた到着予測時間間隔の値をカウントしきった場合には、演算制御部２０１は、上述したように、ＲＴＰ検出部１１にタイムアウト通知信号を送信する。また、演算制御部２０１は、揺らぎ情報レジスタ２０３に格納された情報を基づいて得られた揺らぎ吸収バッファ部１４の廃棄しきい値を揺らぎ吸収バッファ制御部１３に通知する。
【００６７】
揺らぎ吸収バッファ制御部１３は、制御部３０１と、管理部３０２とから構成されている。
【００６８】
制御部３０１は、ＲＴＰ検出部１１から音声パケット到着通知、音声パケットのシーケンス番号及びデータ長に関する情報を受信し、それらを管理部３０２に通知する。
【００６９】
管理部３０２は、メモリマップ３０３と、現在のメモリの読み出しアドレスを示すようになっている読み出しアドレスカウンタ３０４と、書き込みアドレスを示すようになっている書き込みアドレスカウンタ３０５と、揺らぎ吸収バッファ部１４の廃棄しきい値を表すしきい値アドレスカウンタ３０６と、から構成されている。
【００７０】
メモリマップ３０３は、音声パケットのシーケンス番号と、後に説明する揺らぎ吸収バッファ部１４内のＤＰＭ部４０２のアドレスとが関係付けて格納している。読み出しアドレスカウンタ３０４、書き込みアドレスカウンタ３０５及びしきい値アドレスカウンタ３０６の各々は制御部３０１により更新される。
【００７１】
揺らぎ吸収バッファ部１４は、書き込みタイミング部４０１と、ＤＰＭ（Ｄｕａｌ  Ｐｏｒｔ  Ｍｅｍｏｒｙ）部４０２と、読み出しタイミング部４０３と、から構成されている。
【００７２】
ＤＰＭ部４０２は複数のデュアルポートメモリで構成されており、後に記載するように、図７に示す読み出しポインタ５０１、書き込みポインタ５０２、しきい値ポインタ５０３の概念を持つことにより、ＦＩＦＯ方式のバッファを構成している。
【００７３】
書き込みタイミング部４０１は、揺らぎ吸収バッファ制御部１３からの指示に従って、ＲＴＰ検出部１１から送られてくる音声データのＤＰＭ部４０２への書き込みタイミングの調整を行う。
【００７４】
読み込みタイミング部４０３は、揺らぎ吸収バッファ制御部１３からの指示に従って、ＲＴＰ検出部１１から送られてくる音声データのＤＰＭ部４０２からの読み出しタイミングの調整を行う。
【００７５】
次に、本実施形態に係る音声パケット遅延揺らぎ吸収装置１００の動作を図２に従って説明する。
【００７６】
ＩＰパケット受信部１０は、ＩＰネットワークから音声パケットを受信する。
【００７７】
本実施形態においては、音声パケットは図３に示すようにＲＴＰ（Ｒｅａｌ−ｔｉｍｅ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ）に基づいてパケット化されているものとする。すなわち、本実施形態における音声パケットは、ＩＰヘッダと、ＵＤＰヘッダと、ＲＴＰパケットと、からなり、ＲＴＰパケット内のペイロードに音声データが含まれている。
【００７８】
ＩＰパケット受信部１０は、ＩＰヘッダの終端処理、すなわち、アドレスの確認、ＵＤＰヘッダからのポート番号及びデータ長の抽出、誤りチェック等を行い、受信したＵＤＰデータフィールドのデータ長情報とＲＴＰパケットをＲＴＰ検出部１１に送る。
【００７９】
ＲＴＰ検出部１１は、ＩＰパケット受信部１０からデータ長情報とＲＴＰパケットとを受け取ると、ＲＴＰヘッダ内のシーケンス番号をチェックする。上述したように、ＩＰネットワークから送られてくる音声パケットは、音声パケットが生成された順番通りに受信されるとは限らない。音声パケットの順序が中継途中に逆になることもある。従って、ＲＴＰ検出部１１はＲＴＰヘッダ内のシーケンス番号をチェックして並べ替えを行う機能を有するように構成されている。
【００８０】
ＲＴＰ検出部１１は、チェックしたシーケンス番号が期待した番号であれば正しい音声パケットが到着したと判断する。
【００８１】
一方、シーケンス番号が期待した番号でない場合には、ＲＴＰ検出部１１は、このＲＴＰパケットとデータ長情報とを一時的に保持し、次の音声パケットの到着を待つ。
【００８２】
所定の時間が経過しても、次に来るべきシーケンス番号を有する音声パケットが到着しない場合には、ＲＴＰ検出部１１は、揺らぎ検出部１２からのタイムアウト通知信号を受けたときに、音声パケットがＩＰネットワーク内で消失したものと判断し、シーケンス番号を更新する。この更新されたシーケンス番号を現在保持しているＲＴＰパケットから検索し、該当するシーケンス番号が存在すれば、音声パケットが到着したものと判断し、ＲＴＰ検出部１１は、音声パケット到着の通知を演算制御部２０１に送信する。
【００８３】
一方、ＲＴＰ検出部１１内に保持されている音声パケット内に該当するシーケンス番号が存在しない場合には、次の音声パケットの到着を待つ。そして、次に来るべき音声パケットが到着するまで、上述の手順を反復し、該当するシーケンス番号を有する音声パケットが到着すると、ＲＴＰ検出部１１は、音声パケットが到着したことを揺らぎ検出部１２内の演算制御部２０１に通知する。
【００８４】
さらに、ＲＴＰ検出部１１は、このようにして次に来るべき音声パケットが到着すると、音声パケットが到着したこと、その音声パケットのシーケンス番号及びデータ長情報を揺らぎ吸収バッファ制御部１３に通知するとともに、ＲＴＰパケットのペイロードに格納されている音声データを揺らぎ吸収バッファ部１４の書き込みタイミング部４０１に送る。
【００８５】
揺らぎ検出部１２において、演算制御部２０１は、ＲＴＰ検出部１１から音声パケット到着の通知を受けると、カウンタ部２０２のタイマーの読み出しと起動を行い、各音声パケットの実際の到着時間間隔を時間ｔｂとして計測する。
【００８６】
カウンタ部２０２にはタイムアウト時間ｔｄが予め設定されている。例えば、音声パケットの到着時間間隔ｔｂがｔｄより大きいとき、すなわち、ｔｂ＞ｔｄであれば、タイムアウトが発生する。この場合、揺らぎ検出部１２はこのタイムアウトを示すタイムアウト通知信号をＲＴＰ検出部１１に送る。
【００８７】
ここで、本実施形態におけるタイムアウト時間の値ｔｄは、本音声パケット遅延揺らぎ吸収装置を使用する際に音声品質として許容できる最大遅延時間であり、通話に支障をきたさない程度の時間に設定されることが好ましい。
【００８８】
一方、演算制御部２０１は到着予測時間レジスタ２０４を備えており、到着予測時間レジスタ２０４内には予想到着時間間隔の値ｔｃが予め設定されている。演算制御部２０１は、この予想到着時間間隔の値ｔｃと実際の到着時間間隔の値ｔｂとの差、すなわち、ｔ＝ｔｂ−ｔｃを揺らぎ遅延時間ｔとして算出する。
【００８９】
ここで、時間値ｔｃは音声パケットの到着に揺らぎが生じないと仮定した場合の時間である。すなわち、時間ｔｃは音声パケットの生成時間間隔を意味する。例えば、これに近似する値としては、ＩＰネットワークに接続される、音声パケット化装置内のルータのシェーピング速度が考えられる。
【００９０】
演算された結果として得られた遅延時間ｔは、揺らぎ情報レジスタ２０３に蓄積される。
【００９１】
図４は揺らぎ情報レジスタ２０３の構成を示す。遅延時間ｔは時間幅ｔａでグループ化されており、到着パケット数を度数分布として情報を蓄積するようになっている。つまり、遅延時間ｔが、時間（ｋｔａ‐（ｔａ／２)）から（ｋｔａ+(ｔａ／２)）の範囲にある場合（ｋは１以上の整数）、遅延時間ｋｔａで音声パケットが到着したとみなされる。
【００９２】
以下、図５を参照して、揺らぎ検出部１２の演算制御部２０１の動作を説明する。
【００９３】
図５は、音声パケットが到着するときの様々な状態を時間軸上に表したものである。ここで、到着予測時間ｔｃ＝４ｔａとする。
【００９４】
音声パケット（１）から（４）までは到着予測時間通りに到着している。このため、音声パケット（１）から（４）までの到着は揺らぎのない状態を示す。
【００９５】
これに対して、音声パケット（５）から（８）までは到着予定時間より遅延を生じて到着した状態を示す。具体的には、音声パケット（５）は到着予定時間よりも２ｔａだけ遅れて到着し、音声パケット（６）から（８）までは到着予定時間よりもｔａだけ遅れて到着している。
【００９６】
また、音声パケット（９）から（１２）までは到着予定時間よりも早く到着した状態、すなわち、バースト状態を示す。具体的には、音声パケット（９）、（１１）、（１２）は到着予定時間よりもｔａ早く到着し、音声パケット（１０）は到着予定時間よりも２ｔａ早く到着している。
【００９７】
ＲＴＰ検出部１１からの到着信号を受信すると、演算制御部２０１はカウンタ部２０２を制御し、各音声パケットの到着時間間隔を計測し、このように計測された実際の到着時間間隔ｔｂと、到着予測時間レジスタ２０４に設定されている予想到着時間間隔の値ｔｃとの差を演算し、揺らぎ量を算出する。このようにして得られた各音声パケットの揺らぎ量が揺らぎ情報レジスタ２０３内に格納される。
【００９８】
揺らぎ情報レジスタ２０３においては、図６に示すように、（２）から（１３）までの各音声パケットの遅延量が時間間隔ｔａで区切られており、−２ｔａ、−ｔａ、０、ｔａ、２ｔａを代表値とする度数分布で揺らぎ情報として蓄積されている。
【００９９】
揺らぎ情報レジスタ２０３は、このようにして揺らぎ情報を蓄積し続けることになるので、いずれカウンタがオーバーフローすることになる。しかし、オーバーフローが発生するようなことがある場合には、オーバーフローしてしまう前に、代表値それぞれの各度数を１／２にして、カウントし続けることにより現在まで蓄積された情報を継続して保持することができるように構成されている。
【０１００】
次に、演算制御部２０１は、揺らぎ情報レジスタ２０３を参照し、遅延量の度数分布で分布している最大遅延量ｎｔａを揺らぎ吸収バッファ制御部１３の制御部３０１に通知する。すなわち、演算制御部２０１は、例えば、図６の場合、２ｔａを最大遅延時間として制御部３０１に通知する。
【０１０１】
制御部３０１は、ＲＴＰ検出部１１から、音声パケット到着通知、シーケンス番号、データ長情報を受け取ると、これらの情報を管理部３０２に送る。
【０１０２】
次いで、制御部３０１は、ＲＴＰ検出部１１から揺らぎ吸収バッファ部１４内の書き込みタイミング部４０１に送られてくる音声データの書き込み要求を行う。この要求に応答して、管理部３０２から書き込みメモリアドレスが出力されるので、書き込みのタイミング信号を生成し、これを揺らぎ吸収バッファ部１４内の書き込みタイミング部４０１に出力する。
【０１０３】
また、制御部３０１は、読み出し要求を管理部３０２に出力すると、これに応じて、管理部３０２から読み出しメモリアドレスが出力されるので、読み出しタイミング信号を生成し、この読み出しタイミング信号を揺らぎ吸収バッファ部１４内の読み出しタイミング部４０３に出力する。
【０１０４】
また、制御部３０１は、演算制御部２０１から送られてくる音声パケットの最大遅延量ｎｔａを管理部３０２に通知する。
【０１０５】
管理部３０２は、メモリマップ３０３、読み出しアドレスカウンタ３０４、書き込みアドレスカウンタ３０５及びしきい値アドレスカウンタ３０６から構成されている。このように構成することにより、管理部３０２は、書き込み及び読み出しメモリの管理及びパケット廃棄しきい値の管理を行い、揺らぎ吸収バッファ部１４内のＤＰＭ部４０２をＦＩＦＯ方式メモリとして動作させることができるようになっている。
【０１０６】
制御部３０１から管理部３０２に対して書き込み要求があると、書き込みアドアレスカウンタ３０５は書き込みメモリアドレス情報を書き込みタイミング部４０１に出力する。次いで、管理部３０２は、制御部３０１から出力された音声パケットのシーケンス番号とデータ長情報とに基づいて、メモリマップ３０３にデータのアドレスを登録する。
【０１０７】
本実施形態においては、メモリマップ３０３は、音声パケットのシーケンス番号、書き込まれているアドレス情報及び廃棄フラグの組み合わせから構成されている。
【０１０８】
読み出しアドレスカウンタ３０４の値、すなわち、読み出しポインタ５０１は現在のメモリの読み出しアドレスを、書き込みアドレスカウンタ３０５の値、すなわち、書き込みポインタ５０２は現在の書き込みアドレスを、しきい値アドレスカウンタ３０６の値、すなわち、しきい値ポインタ５０３は現在のしきい値アドレスをそれぞれ示している。
【０１０９】
ここで、しきい値ポインタ５０３とは、演算制御部２０１から制御部３０１に通知された最大遅延量ｎｔａをメモリアドレスに換算したものである。
【０１１０】
上述したように、書き込みタイミング部４０１は、揺らぎ吸収バッファ制御部１３からの指示に従い、ＲＴＰ検出部１１から送られる音声データのＤＰＭ部４０２への書き込みタイミングの調整を行う。一方、読み込みタイミング部４０３は、揺らぎ吸収バッファ制御部１３からの指示に従って、ＤＰＭ部４０２からの音声データの読み出しタイミングの調整を行う。従って、読み出しポインタ５０１、書き込みポインタ５０２及びしきい値ポインタ５０３は、書き込みタイミング部４０１と読み出しタイミング部４０３とを介して、揺らぎ吸収バッファ制御部１３により制御可能となっている。
【０１１１】
図７に読み出しポインタ５０１、書き込みポインタ５０２及びしきい値ポインタ５０３のそれぞれを図示する。
【０１１２】
ここで、しきい値ポインタ５０３と読み出しポインタ５０１との差が、本実施形態に係る音声パケット遅延揺らぎ吸収装置１００における揺らぎ吸収バッファ部１４の現在の容量を示す。制御部３０１から書き込み要求信号が発せられると書き込みポインタ５０２が更新され、これに応じて、読み出し要求信号により読み出しポインタ５０１としきい値ポインタ５０３とが更新される。このようにして、ＦＩＦＯ方式のバッファを構築することができる。
【０１１３】
次に、図８を参照して、音声データの動作について説明する。
【０１１４】
図８(Ａ)は、音声データがデータ廃棄しきい値を超えていない場合の動作を示すものである。
【０１１５】
図８(Ａ)に示すように、ＤＰＭ部４０２に仮想的に作られているＦＩＦＯ方式のバッファメモリ５０４の内部に音声データ５０５が格納されている。音声データ５０５はＫ番から（Ｋ＋４）番までの５個の音声データから構成されているが、図８(Ａ)に示す例においては、（Ｋ＋３）番のデータが欠落しているものとする。バッファメモリ５０４の所定の場所、すなわち、ＤＰＭ部４０２の特定アドレスにはホワイトノイズがダミーデータ５０６として格納されている。バッファメモリ５０４からは音声データ５０７が出力される。
【０１１６】
音声データ５０７中のＫ番から（Ｋ＋４）番までの各データは順番通りに並んでいるが、欠落していた（Ｋ＋３）番のデータの代わりにダミーデータ５０６が挿入されている。
【０１１７】
管理部３０２は、音声パケットのシーケンス番号とＤＰＭ部４０２のアドレスとを関係付けたメモリマップ３０３を有しているので、揺らぎ吸収バッファ部１４のＤＰＭ部４０２のバッファにどのような音声データが存在するかを把握することができる。このため、上述のように、音声パケットが廃棄されてシーケンス番号が欠落している場合や、ＤＰＭ部４０２の音声データが空になっているような場合には、ダミーデータ５０６が補間される。
【０１１８】
上述したように、管理部３０２がダミーデータ５０６の補間の必要性を検出することができるので、管理部３０２は、ダミーデータ５０６の補間が必要であると判断した場合には、ダミーデータ５０６が予め格納されているメモリアドレスを揺らぎ吸収バッファ部１４に出力する。
【０１１９】
次に、図８(Ｂ)を参照して、音声データがデータの廃棄しきい値を超えている状態の動作について説明する。
【０１２０】
音声データが廃棄しきい値を超える現象は、ＩＰネットワークが比較的空いているときに音声パケットが安定的に到着し、揺らぎ検出部１２の演算による最大遅延量ｎｔａが小さくなった場合や、これとは逆にバースト的にデータが到着する場合に発生すると考えられる。
【０１２１】
バッファメモリ５０４の内部には、（Ｋ＋１）番から（Ｋ＋ｍ）番までのｍ個の音声データが格納されている。ここで、（Ｋ＋４）番の音声データには廃棄フラグが付加されているものとすると、バッファメモリ５０４から実際に出力される音声データ５０９においては、（Ｋ＋４）番の音声データが廃棄されていることがわかる。
【０１２２】
管理部３０２がしきい値を超えたことを検出した場合、メモリマップ３０３に格納されているシーケンス番号に数個置きに廃棄フラグを立てることにより、仮想的な廃棄処理とする。管理部３０２は、廃棄フラグが付与されたシーケンス番号に対応する音声データが格納されているアドレスは出力しない。
【０１２３】
上述の実施形態においては、到着時間間隔ｔｂと、揺らぎ検出部１２における演算制御部２０１内の到着予測時間レジスタ２０４に予め設定されている値ｔｃとの差から揺らぎ遅延時間ｔを求めている。
【０１２４】
しかしながら、送信側の音声パケット化の生成時間が未知である可能性もあるので、到着予測時間ｔｃは、音声パケットの平均到着時間間隔であることが望ましい。この平均到着時間間隔は、揺らぎ情報レジスタ２０３内に蓄積されている遅延量の度数分布に基づいて、受信している音声パケットの到着予測時間ｔｃの補正量を算出することにより得ることができる。
【０１２５】
例えば，図４に図示した構成を有する揺らぎ情報レジスタ２０３の場合、補正時間ｔｅは、次式（１）から求めることができる。
【０１２６】
【式１】
0003636348.tif 000002
【０１２７】
このように、音声パケットの平均到着時間間隔である新しい到着予測時間ｔｃはｔｃ＋ｔｅとして得ることができる。このような場合、当然、揺らぎ情報レジスタ２０３の内容は更新されることになる。例えば、代表値ｋｔａの値をｋｔａ＋ｔｅにすることにより、揺らぎ情報レジスタ２０３の内容を更新することが可能になる。この場合、パケット数はｊ（ｋ）のままでよい。
【０１２８】
このように、本実施形態に係る音声パケット遅延揺らぎ吸収装置１００によれば、パケットの平均到着時間は、実際に受信されたパケットから求めることができるので、一定時間ごとに到着予測時間ｔｃが妥当であるかどうかを監視することができる。従って、現在のデータのトラフィック状態に適した音声パケットの揺らぎ情報を得ることができるようになる。
【０１２９】
以上のように、本実施形態に係る音声パケット遅延揺らぎ吸収装置１００によれば、音声パケットの到着時間間隔を計測し、各音声パケットの遅延量を度数分布にして音声データの揺らぎを定量的に把握する。これにより、揺らぎ吸収バッファ部１４の廃棄しきい値を自動的に制御しながら、揺らぎ吸収バッファ部１４内における音声データの廃棄が必要になったときに連続的なデータ破棄を避けて、断片的な音声データを破棄する。この結果として、通話の内容を保護しながら、揺らぎ吸収バッファ部１４における遅延を最小限に保つことができる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る音声パケット遅延揺らぎ吸収装置の原理を表すブロック図である。
【図２】本発明の一実施形態に係る音声パケット遅延揺らぎ吸収装置の構成を表すブロック図である。
【図３】ＲＴＰによりパケット化された音声データの構造を表す概略図である。
【図４】揺らぎ情報レジスタの構成を表す概略図である。
【図５】音声パケットが到着する様々な状態を時間軸上で示した図である。
【図６】遅延量を度数分布で分布させた状態を表す概略図である。
【図７】読み出しポインタ、書き込みポインタ及びしきい値ポインタの関係を表す概略図である。
【図８】図８(Ａ)は、音声データがデータの廃棄しきい値を超えていない場合の音声データの動作を示すものであり、図８(Ｂ)は、音声データがデータの廃棄しきい値を超えている場合の音声データの動作を示す概略図である。
【符号の説明】
１０  ＩＰパケット受信部
１１  ＲＴＰ検出部
１２  揺らぎ検出部
１３  揺らぎ吸収バッファ制御部
１４  揺らぎ吸収バッファ部
２０１  演算制御部
２０２  カウンタ部
２０３  揺らぎ情報レジスタ
２０４  到着予測時間レジスタ
３０１  制御部
３０２  管理部
３０３  メモリマップ
３０４  読み出しアドレスカウンタ
３０５  書き込みアドレスカウンタ
３０６  しきい値アドレスカウンタ
４０１  書き込みタイミング部
４０２  ＤＰＭ部
４０３  読み出しタイミング部
【図１】
0003636348.tif 000003
【図２】
0003636348.tif 000004
【図３】
0003636348.tif 000005
【図４】
0003636348.tif 000006
【図５】
0003636348.tif 000007
【図６】
0003636348.tif 000008
【図７】
0003636348.tif 000009
【図８】
0003636348.tif 000010