(57)【要約】【課題】  入力デバイスからのデータの量が所定の周期で送信されるパケットで処理できる量を超えた場合であっても、パケットを正常に送信できることを可能とする。【解決手段】  データ群を入力する度に、パケット送信間隔から前回のデータ群入力時刻と今回のデータ群入力時刻との間隔を差し引いて得られる間隔差分を累積差分に加算し、該加算後の累積差分が第１所定値以下である場合には入力したデータ群をパケットとして送信し、該加算後の累積差分が前記第１所定値を超える場合には入力したデータ群を廃棄すると共に、前記累積差分を前記第１所定値から前記パケット送信間隔を差し引いて得られる値に初期化する。【選択図】        図４
2006042022.tif 000002
【特許請求の範囲】
【請求項１】
データ群を入力する度に、パケット送信間隔から前回のデータ群入力時刻と今回のデータ群入力時刻との間隔を差し引いて得られる間隔差分を累積差分に加算し、該加算後の累積差分が第１所定値以下である場合には入力したデータ群をパケットとして送信し、該加算後の累積差分が前記第１所定値を超える場合には入力したデータ群を廃棄すると共に、前記累積差分を前記第１所定値から前記パケット送信間隔を差し引いて得られる値に初期化することを特徴とするパケット送信制御方法。
【請求項２】
請求項１に記載のパケット送信制御方法において、
前記前回のデータ群入力時刻と前記今回のデータ群入力時刻との間隔が第２所定値を超える場合には、前記間隔差分を前記累積差分に加算する代わりに、前記累積差分を第３所定値に初期化することを特徴とするパケット送信制御方法。
【請求項３】
請求項２に記載のパケット送信制御方法において、
前記第３所定値は、前記第１所定値から前記パケット送信間隔を減じた値から前記第１所定値までの範囲にあることを特徴とするパケット送信制御方法。
【請求項４】
データ群を入力する度に、パケット送信間隔から前回のデータ群入力時刻と今回のデータ群入力時刻との間隔を差し引いて得られる間隔差分を累積差分に加算し、該加算後の累積差分が第１所定値以下である場合には入力したデータ群をパケットとして送信し、該加算後の累積差分が前記第１所定値を超える場合には入力したデータ群を廃棄すると共に、前記累積差分を前記第１所定値から前記パケット送信間隔を差し引いて得られる値に初期化する手段を備えることを特徴とするパケット送信制御装置。
【請求項５】
請求項４に記載のパケット送信制御装置において、
前記前回のデータ群入力時刻と前記今回のデータ群入力時刻との間隔が第２所定値を超える場合には、前記間隔差分を前記累積差分に加算する代わりに、前記累積差分を第３所定値に初期化することを特徴とするパケット送信制御装置。
【請求項６】
請求項５に記載のパケット送信制御装置において、
前記第３所定値は、前記第１所定値から前記パケット送信間隔を減じた値から前記第１所定値までの範囲にあることを特徴とするパケット送信制御装置。
【請求項７】
データ群を入力する度に、パケット送信間隔から前回のデータ群入力時刻と今回のデータ群入力時刻との間隔を差し引いて得られる間隔差分を累積差分に加算し、該加算後の累積差分が第１所定値以下である場合には入力したデータ群をパケットとして送信し、該加算後の累積差分が前記第１所定値を超える場合には入力したデータ群を廃棄すると共に、前記累積差分を前記第１所定値から前記パケット送信間隔を差し引いて得られる値に初期化することを特徴とするパケット送信制御方法をコンピュータに行わせるためのパケット送信制御プログラム。
【請求項８】
請求項７に記載のパケット送信制御プログラムにおいて、
前記前回のデータ群入力時刻と前記今回のデータ群入力時刻との間隔が第２所定値を超える場合には、前記間隔差分を前記累積差分に加算する代わりに、前記累積差分を第３所定値に初期化することを特徴とするパケット送信制御プログラム。
【請求項９】
請求項８に記載のパケット送信制御プログラムにおいて、
前記第３所定値は、前記第１所定値から前記パケット送信間隔を減じた値から前記第１所定値までの範囲にあることを特徴とするパケット送信制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットを送信するためのパケット送信制御方法、パケット送信制御装置及びパケット送信制御プログラムに関し、特に、時間的に一定間隔でパケットを送信するためのパケット送信制御方法、パケット送信制御装置及びパケット送信制御プログラムに関する。
【背景技術】
【０００２】
近年、インターネットを利用した音声通信が行われるようになってきている。この音声通信はコーデック信号をＩＰパケット化することにより行われ、ＶｏＩＰ(Voice over Internet Protocol)として知られている。
【特許文献１】特開平０１−１０１７４５号公報
【特許文献２】特開平１１−１５０５６２号公報
【特許文献３】特表２００２−５３２９５９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来、ＶｏＩＰ端末において音声入力デバイスからの音声データの量が所定の周期で送信される音声パケットで処理できる量を超える場合、送信パケットを周期的に送信することが出来ないため、受話側のＶｏＩＰ端末のバッファあふれなどによりノイズとなる場合があった。
【０００４】
特許文献１に記載の発明は、送信フローが安定するまで受信側でパケットを破棄することにより高品質なリアルタイム音声通信を実現するものである。
【０００５】
特許文献２に記載の発明は、ＡＤＰＣＭ符号化前にサンプル値を破棄し、フロー制御のためのパケット廃棄時でも正しく復号化するものである。
【０００６】
特許文献３に記載の発明は、ＷＬＬおよびワイヤレス情報の処理に関するものである。
【０００７】
本発明は、入力デバイスからのデータの量が所定の周期で送信されるパケットで処理できる量を超えた場合であっても、パケットを正常に送信できることを可能とするパケット送信制御方法、パケット送信制御装置及びパケット送信制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明によれば、データ群を入力する度に、パケット送信間隔から前回のデータ群入力時刻と今回のデータ群入力時刻との間隔を差し引いて得られる間隔差分を累積差分に加算し、該加算後の累積差分が第１所定値以下である場合には入力したデータ群をパケットとして送信し、該加算後の累積差分が前記第１所定値を超える場合には入力したデータ群を廃棄すると共に、前記累積差分を前記第１所定値から前記パケット送信間隔を差し引いて得られる値に初期化することを特徴とするパケット送信制御方法が提供される。
【０００９】
上記のパケット送信制御方法において、前記前回のデータ群入力時刻と前記今回のデータ群入力時刻との間隔が第２所定値を超える場合には、前記間隔差分を前記累積差分に加算する代わりに、前記累積差分を第３所定値に初期化してもよい。
【００１０】
上記のパケット送信制御方法において、前記第３所定値は、前記第１所定値から前記パケット送信間隔を減じた値から前記第１所定値までの範囲にあってもよい。
【発明の効果】
【００１１】
本発明によれば、所定の場合に入力データ群を廃棄するので、入力データ群の量がパケットとして送信しきれない量である場合であっても、入力データ群を正常なパケットとして送信することが可能となる。従って、受信側でバッファがオーバーフローし、受信側の動作が異常となることを防止することができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して本発明を実施するための最良の形態について詳細に説明する。
【００１３】
以下の説明は、データは音声データであるとして行うが、本発明は、これに限られるものではなく、データは映像データその他種々のデータであってもよい。
【００１４】
［実施形態１］
本発明の特徴は、ＶｏＩＰ端末において音声入力デバイスより受信した音声データをキャプチャする際、音声データの量が所定間隔で送信される音声パケットで送信できる量を超える場合でもデータ量を調整し、音声パケットを周期的に送信できるようにしたことにある。
【００１５】
図１において、音声入力デバイス１０１は第１ＶｏＩＰ端末１０２にＵＳＢ(Universal Serial Bus)やオーディオ入力端子経由で接続され、ＶｏＩＰ通話における音声を第１ＶｏＩＰ端末１０２に送信する。第１ＶｏＩＰ端末１０２はＶｏＩＰアプリケーション部１５１（図２参照）を有し、第２ＶｏＩＰ端末１０３とＶｏＩＰ通話を行うことができる。また、音声入力デバイス１０１より受信した音声データに実時間処理可能範囲を超える過不足がある場合にフロー制御を行い周期的に音声パケットを送信することができる。第２ＶｏＩＰ端末１０３は第１ＶｏＩＰ端末１０２と同様にＶｏＩＰアプリケーション部１５１を有し、互いにＶｏＩＰ通話を行うことができる。
【００１６】
このようにして本発明では、ＶｏＩＰ端末が音声キャプチャ処理の際に音声データのフロー制御を行うことにより音声パケットを周期的に送信できる。
【００１７】
図１を参照すると、本実施形態は、互いにＶｏＩＰ通話可能な第１ＶｏＩＰ端末１０２、第２ＶｏＩＰ端末１０３及び第１ＶｏＩＰ端末１０２に接続される音声入力デバイス１０１を含む。
【００１８】
図２を参照すると、第１ＶｏＩＰ端末１０２は、ＶｏＩＰアプリケーション部１５１、オペレーティングシステム１５２及びデバイスドライバ１８１を備える。なお、ＶｏＩＰアプリケーション部１５１、オペレーティングシステム１５２及びデバイスドライバ１８１は、ハードウェアによって実現してもよいが、通常は、ソフトウェアによって実現される。
【００１９】
デバイスドライバ１８１は、音声入力デバイス１０１を制御する。オペレーティングシステム１５２は、ＶｏＩＰアプリケーション部１５１からの指示によりデバイスドライバ１８１を制御して、音声データを取得し、ＶｏＩＰアプリケーション部１５１に音声データを転送する。また、オペレーティングシステム１５２は、実時間をカウントする内部タイマ１７１を有し、ＶｏＩＰアプリケーション部１５１の指示によりそのタイマ値を返す。
【００２０】
ＶｏＩＰアプリケーション部は音声キャプチャ部１６１、入力バッファ１６２、フロー制御部１６３、エンコード部１６４及びパケット送信部１６５を備える。音声キャプチャ部１６１は送信間隔分の音声データを定期的にオペレーティングシステム１５２に要求し、オペレーティングシステム１５２から転送されたデータを入力バッファ１６２に格納する。また、そのデータを入力バッファ１６２に格納したことをフロー制御部１６３に通知する。フロー制御部１６３はその通知をトリガとして、入力バッファ１６２にあるデータをエンコード部１６４に転送する。この転送の際に、パケット量の調整を行う。エンコード部１６４はフロー制御部１６３から転送された音声データをエンコードし、パケット送信部１６５は、エンコードされた音声データにＲＴＰヘッダを付与した後、第２ＶｏＩＰ端末１０３にパケット送信間隔のタイミングで音声パケットを送信する。
【００２１】
第１ＶｏＩＰ端末１０２と第２ＶｏＩＰ端末１０３が、例えば３０ミリ秒周期のコーデックを使用したＶｏＩＰ通話を行っているとき、音声キャプチャ部１６１はオペレーティングシステム１５２に対して３０ミリ秒分の音声データを要求する。オペレーティングシステム１５２はデバイスドライバ１８１を制御し、音声データを取得し、音声キャプチャ部１６１に渡す。音声キャプチャ部１６１は、受信した３０ミリ秒分の音声データを入力バッファ１６２に格納し、フロー制御部１６３に書込通知を行う。フロー制御部１６３は、書込通知を受信する度に音声データの受信間隔をチェックし、パケット量の調整を行った後、入力バッファ１６２に格納されている音声データをエンコード部１６４に渡す。エンコード部１６４は、受信した音声データをエンコードし、パケット送信部１６５は、エンコードされた音声データにＲＴＰヘッダを付与した後、第２ＶｏＩＰ端末１０３にパケット送信間隔のタイミングで音声パケットを送信する。
【００２２】
次に、フロー制御部１６３について説明する。図３は、フロー制御部１６３の構成及び関連部分を示すブロック図である。
【００２３】
図３を参照すると、フロー制御部１６３は、制御部１６３−１、ＣｕｒｒＴｉｍｅレジスタ１６３−３、ＰｒｅｖＴｉｍｅレジスタ１６３−４、減算器１６３−５、ＤｉｆｆＴｉｍｅレジスタ１６３−６、Ｎレジスタ１６３−７、減算器１６３−８、ＤｉｆｆＴｏｔａｌＴｉｍｅレジスタ１６３−９、加算器１６３−１０、ＴＨレジスタ１６３−１１、比較器１６３−１２、廃棄部１６３−１３及び減算器１６３−１４を備える。
【００２４】
制御部１６３−１は、フロー制御部１６３の各部の動作タイミングを制御する。ＣｕｒｒＴｉｍｅレジスタ１６３−３は、内部タイマ１７１が出力するタイマー値を書込通知がある度にサンプリングする。ＰｒｅｖＴｉｍｅレジスタ１６３−４は、ＣｕｒｒＴｉｍｅレジスタ１６３−３の出力値を書込通知がある度にサンプリングする。減算器１６３−５は、ＣｕｒｒＴｉｍｅレジスタ１６３−３の出力値からＰｒｅｖＴｉｍｅレジスタ１６３−４の出力値を減算する。ＤｉｆｆＴｉｍｅレジスタ１６３−６は、減算器１６３−５の出力値を書込通知がある度にサンプリングする。Ｎレジスタ１６３−７は、パケット送信間隔Ｎを保持する。減算器１６３−８は、Ｎレジスタ１６３−７の出力値からＤｉｆｆＴｉｍｅレジスタ１６３−６の出力値を減算する。ＤｉｆｆＴｏｔａｌＴｉｍｅレジスタ１６３−９は加算器１６３−１０の出力を書込通知がある度にサンプリングする。また、ＤｉｆｆＴｏｔａｌＴｉｍｅレジスタ１６３−９の出力値は、廃棄を行った場合に、減算器１６３−１４の出力値にリセットされる。加算器１６３−１０は、ＤｉｆｆＴｏｔａｌＴｉｍｅレジスタ１６３−９の出力値に減算器１６３−８の出力値を加算する。ＴＨ１レジスタ１６３−１１は、第１しきい値ＴＨ１を保持する。第１しきい値ＴＨ１は、任意の値で良く、例えばゼロであってもよい。比較器１６３−１２はＤｉｆｆＴｏｔａｌＴｉｍｅレジスタ１６３−９の出力値がＴＨ１レジスタ１６３−１１の出力値以下であるかを判断する。廃棄部１６３−１３は、ＤｉｆｆＴｏｔａｌＴｉｍｅレジスタ１６３−９の出力値がＴＨ１レジスタ１６３−１１の出力値を超える場合に、入力バッファ１６２から読み出したデータを廃棄する。減算器１６３−１４は、ＴＨ１レジスタ１６３−１１の出力値からＮレジスタ１６３−７の出力値を減算する。
【００２５】
次に、図３及び図４を参照してフロー制御部１６３の動作について説明する。
【００２６】
図４に示す動作は、書込通知がある度に行われる。
【００２７】
まず、ＣｕｒｒＴｉｍｅレジスタ１６３−３の出力値をＰｒｅｖＴｉｍｅレジスタ１６３−４に代入し、次いで、内部タイマ１７１の出力値である現在時刻をＣｕｒｒＴｉｍｅレジスタ１６３−３に代入する（ステップＳ２０１）。
【００２８】
次に、減算器１６３−５が出力するＣｕｒｒＴｉｍｅからＰｒｅｖＴｉｍｅを差し引いた値をＤｉｆｆＴｉｍｅレジスタ１６３−６に代入する（ステップＳ２０２）。
【００２９】
次に、加算器１６３−１０が出力する、Ｎレジスタ１６３−７の出力値からＤｉｆｆＴｉｍｅレジスタ１６３−６の出力値を減算した値をＤｉｆｆＴｏｔａｌＴｉｍｅレジスタ１６３−９の出力値に加算した値をＤｉｆｆＴｏｔａｌＴｉｍｅレジスタ１６３−９に代入する（ステップＳ２０３）。
【００３０】
次に、比較器１６３−１２は、ＤｉｆｆＴｏｔａｌＴｉｍｅレジスタ１６３−９の出力値がＴＨ１レジスタ１６３−１１の出力値以下であるか否かを判断する（ステップＳ２０４）。
【００３１】
ステップＳ２０４の判断結果が真である場合には、エンコード部１６４は入力バッファ１６２から読み出した音声データをエンコードし、パケット送信部１６５は、エンコードされた音声データを送信する。
【００３２】
ステップＳ２０４の判断結果が偽である場合には、廃棄部１６３−１３は、入力バッファ１６２から読み出した音声データを廃棄する（ステップＳ２０７）。次に、ＴＨ１レジスタ１６３−１１の出力値からＮレジスタ１６３−７の出力値を減算した値をＤｉｆｆＴｏｔａｌＴｉｍｅレジスタ１６３−９に代入する（ステップＳ２０８）。
【００３３】
図５に動作例を示す。図５の例では、パケット送信間隔Ｎの値は３０ミリ秒であり、第１しきい値ＴＨ１の値はゼロであり、書込通知の間隔は２０ミリ秒である。３回の書込通知につき１回データ廃棄を行うことにより、正常に３０ミリ秒間隔でパケットを送信することが可能となっている。
【００３４】
［実施形態２］
次に、実施形態２について説明する。実施形態２においては、ＤｉｆｆＴｉｍｅが大き過ぎるかどうか判別し、大き過ぎた場合は音声入力デバイスによるミュート（音声データ入力停止）またはＶｏＩＰ通話断と判断する。
【００３５】
図６は、実施形態２によるフロー制御部１６３の構成及び関連部分を示すブロック図である。
【００３６】
図６を図３と比較すると明らかなように、実施形態２によるフロー制御部１６３は、ＴＨ２レジスタ１６３−１５、比較器１６３−１６及びＩｎｉｔＤｉｆｆＴｏｔａｌＴｉｍｅレジスタ１６３−１７が追加されている点が実施形態１によるフロー制御部１６３と異なる。
【００３７】
ＴＨ２レジスタ１６３−１５は、ミュート等が行われているか否かを判断するためのしきい値ＴＨ２を保持する。しきい値ＴＨ２の値は例えば３００ミリ秒とする。比較器１６３−１５は、ＤｉｆｆＴｉｍｅレジスタ１６３−６の出力値とＴＨ２レジスタ１６３−１６の出力値を比較する。ＩｎｉｔＤｉｆｆＴｏｔａｌＴｉｍｅレジスタ１６３−１７は、ＤｉｆｆＴｏｔａｌＴｉｍｅを初期化する場合のその初期値を保持する。
【００３８】
図７は、実施形態２によるフロー制御部１６３の動作を示すフローチャートである。
【００３９】
図７を図４と比較すると明らかなように、実施形態２によるフロー制御部１６３の動作は、ステップＳ３０９及びステップＳ３１０が追加されている点が実施形態１によるフロー制御部１６３の動作と異なる。
【００４０】
ステップＳ３０９では、ＤｉｆｆＴｉｍｅレジスタ１６３−６の出力値がＴＨ２レジスタの出力値よりも少ないか否かを判断する（ステップＳ３０９）。
【００４１】
ステップＳ３０９の判断結果が真であれば、実施形態１と同様にステップＳ３０３に進む。
【００４２】
ステップＳ３０９の判断結果が偽であれば、ＤｉｆｆＴｏｔａｌＴｉｍｅをＩｎｉｔＤｉｆｆＴｏｔａｌＴｉｍｅに初期化し（ステップＳ３１０）、ステップＳ３０４に進む。ＩｎｉｔＤｉｆｆＴｏｔａｌＴｉｍｅは、ＴＨ１−Ｎ以上ＴＨ１以下の範囲の何れかの値に設定する。
【００４３】
実施形態２によれば、ミュートから通話状態に復帰した直後に確実に音声データを送信することができる。また、ＤｉｆｆＴｏｔａｌＴｉｍｅが絶対値の大きなマイナスの値になることを防止することができるので、ミュートから通話状態に復帰した直後から一定時間経過するまでの間、入力データが過剰であるにもかかわらず、データ廃棄が行われないという事態を防止することができる。
【産業上の利用可能性】
【００４４】
本発明は、データが過剰となった場合であっても、一定間隔でデータをパケット化して送信するために利用することができる。
【図面の簡単な説明】
【００４５】
【図１】本発明の実施形態によるＶｏＩＰ通話システムの構成を示すブロック図である。
【図２】本発明の実施形態による第１ＶｏＩＰ端末の構成を示すブロック図である。
【図３】本発明の実施形態１によるフロー制御部の構成及びその周辺部を示すブロック図である。
【図４】本発明の実施形態１によるフロー制御部の動作を示すフローチャートである。
【図５】本発明の実施形態による動作例を示すタイミングチャートである。
【図６】本発明の実施形態２によるフロー制御部の構成及びその周辺部を示すブロック図である。
【図７】本発明の実施形態２によるフロー制御部の動作を示すフローチャートである。
【符号の説明】
【００４６】
１０１  音声入力デバイス
１０２  第１ＶｏＩＰ端末
１０３  第２ＶｏＩＰ端末
１５１  ＶｏＩＰアプリケーション部
１５２  オペレーティングシステム
１６１  音声キャプチャ部
１６２  入力バッファ
１６３  フロー制御部
１６４  エンコード部
１６５  パケット送信部
１７１  内部タイマ
１８１  デバイスドライバ
１６３−１  制御部
１６３−３  ＣｕｒｒＴｉｍｅレジスタ
１６３−４  ＰｒｅｖＴｉｍｅレジスタ
１６３−５  減算器
１６３−６  ＤｉｆｆＴｉｍｅレジスタ
１６３−７  Ｎレジスタ
１６３−８  減算器
１６３−９  ＤｉｆｆＴｏｔａｌＴｉｍｅレジスタ
１６３−１０  加算器
１６３−１１  ＴＨレジスタ
１６３−１２  比較器
１６３−１３  廃棄部
１６３−１４  減算器
１６３−１５  ＴＨ２レジスタ
１６３−１６  比較器
【図１】
2006042022.tif 000003
【図２】
2006042022.tif 000004
【図３】
2006042022.tif 000005
【図４】
2006042022.tif 000006
【図５】
2006042022.tif 000007
【図６】
2006042022.tif 000008
【図７】
2006042022.tif 000009