(57)【要約】【課題】通信相手端末の受信バッファのサイズに応じて、無駄なパケットを廃棄して送信を行わないとともに、廃棄するパケットの量を抑制する。【解決手段】通信時のパケットの送信時刻のゆらぎ、受信時刻のゆらぎ、受信レートおよび電界強度に基づき、通信相手端末の受信バッファのサイズを予測する予測手段と、予測した通信相手端末の受信バッファのサイズを保持する保持手段と、保持している通信相手端末の受信バッファのサイズに応じて、送信データの破棄と送信タイミングとを制御する制御手段とを備える。【選択図】図１
2008085823.tif 000002
【特許請求の範囲】
【請求項１】
パケットの送受信を行う送受信手段と、
前記送受信手段によるパケットの送受信状況に基づき、通信相手端末の受信バッファのサイズを予測する予測手段と、
前記予測手段で予測した前記通信相手端末の受信バッファのサイズを保持する保持手段と、
前記保持手段に保持している前記通信相手端末の受信バッファのサイズに応じて、送信パケットの破棄と送信タイミングとを制御する制御手段と、
を備えることを特徴とする通信端末装置。
【請求項２】
前記予測手段は、前記送受信手段におけるパケットの送信時刻のゆらぎ、受信時刻のゆらぎ、受信レートおよび電界強度に基づいて、前記通信相手端末の受信バッファのサイズを予測することを特徴とする請求項１に記載の通信端末装置。
【請求項３】
前記制御手段は、送信遅延時間と前記通信相手端末の受信バッファのサイズに基づき、廃棄する送信パケットを決めるとともに、送信パケットの送信ロス率を測定し、該送信ロス率が予め設定した許容送信ロス率以上となった場合は、廃棄対象となった送信パケットの廃棄を取り消して送信することを特徴とする請求項１に記載の通信端末装置。
【請求項４】
前記制御手段は、前記通信相手端末の受信バッファのサイズと自端末の送信バッファに保持されている送信パケット数とに基づき、該通信相手端末の受信バッファにおけるオーバーフロー発生の可能性を判定し、該通信相手端末の受信バッファにてオーバーフローが発生する可能性があると判定した場合、送信パケットの送信を遅延させることを特徴とする請求項１に記載の通信端末装置。
【請求項５】
パケット通信が可能な通信端末装置におけるパケット送信制御方法であって、
パケットの送信時刻のゆらぎ、受信時刻のゆらぎ、受信レートおよび電界強度に基づき、通信相手端末の受信バッファのサイズを予測し、
予測した通信相手端末の受信バッファのサイズを保持し、
保持している通信相手端末の受信バッファのサイズに応じて、送信パケットの破棄と送信タイミングとを制御することを特徴とするパケット送信制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信相手端末の受信バッファのサイズに応じてパケットを送信する通信端末装置およびバッファサイズ予測方法に関する。
【背景技術】
【０００２】
ＶｏＩＰなどのリアルタイムでのパケットの送信が要求される通信では、音声パケットをＲＴＰ（Ｒｅａｌ−ｔｉｍｅ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ）パケットとして送信し、受信側でＲＴＰパケットのヘッダ部分に含まれるタイムスタンプとシーケンス番号を参照して音声を再生している。しかし、ＲＴＰパケットは、一般にＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）で送信されるため、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）のような再送制御を行わない。このため、パケットロスが発生した際には、音声が途切れるという問題が発生する。
【０００３】
そこで、ＲＴＰでの通信中に生じるパケットロスに対してＴＣＰのように再送要求を行うことで、ＲＴＰパケットの欠落を抑制する技術がある（特許文献１参照）。
【特許文献１】特開２００３−１６９０４０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来技術では、パケットロスが発生した際に送信側にパケットの再送要求を行い、送信側では再送の際に、再生時刻に間に合わないパケットを再送せずに廃棄することで、不要なパケットを送信しない仕組みを備えている。しかしながら、無線環境では受信状態・送信状態に応じて適切なジッタ吸収バッファのサイズを与える必要があり、このようなジッタ吸収バッファのサイズが変化するような環境では、従来技術の方法は、ＲＴＰパケットの欠落を充分に抑制できない。
【０００５】
本発明は、このような問題点に鑑みてなされたものであり、本発明の目的は、ジッタ吸収バッファのサイズの変化に応じて、パケットの廃棄を制御し、廃棄するパケットの量を抑制することができる通信端末装置およびバッファサイズ変更方法を提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明の通信端末装置は、パケットの送受信を行う送受信手段と、前記送受信手段によるパケットの送受信状況に基づき、通信相手端末の受信バッファのサイズを予測する予測手段と、前記予測手段で予測した前記通信相手端末の受信バッファのサイズを保持する保持手段と、前記保持手段に保持している前記通信相手端末の受信バッファのサイズに応じて、送信パケットの破棄と送信タイミングとを制御する制御手段とを備えることを特徴とする。
【０００７】
前記予測手段は、前記送受信手段におけるパケットの送信時刻のゆらぎ、受信時刻のゆらぎ、受信レートおよび電界強度に基づいて、前記通信相手端末の受信バッファのサイズを予測することが好ましい。
【０００８】
前記制御手段は、送信遅延時間と前記通信相手端末の受信バッファのサイズに基づき、廃棄する送信パケットを決めるとともに、送信パケットの送信ロス率を測定し、該送信ロス率が予め設定した許容送信ロス率以上となった場合は、廃棄対象となった送信パケットの廃棄を取り消して送信することが好ましく、また、前記制御手段は、前記通信相手端末の受信バッファのサイズと自端末の送信バッファに保持されている送信パケット数とに基づき、該通信相手端末の受信バッファにおけるオーバーフロー発生の可能性を判定し、該通信相手端末の受信バッファにてオーバーフローが発生する可能性があると判定した場合、送信パケットの送信を遅延させることが好ましい。
【０００９】
また、本発明のパケット送信制御方法は、パケット通信が可能な通信端末装置におけるパケット送信制御方法であって、パケットの送信時刻のゆらぎ、受信時刻のゆらぎ、受信レートおよび電界強度に基づき、通信相手端末の受信バッファのサイズを予測し、予測した通信相手端末の受信バッファのサイズを保持し、保持している通信相手端末の受信バッファのサイズに応じて、送信パケットの破棄と送信タイミングとを制御することを特徴とする。
【発明の効果】
【００１０】
本発明は、通信相手端末に搭載されている受信バッファのサイズを予測することにより、受信バッファのサイズの変化に応じて、パケットの廃棄を制御し、廃棄するパケットの量を抑制することができる。
【発明を実施するための最良の形態】
【００１１】
本発明の通信端末装置の実施の形態について図面を参照して説明する。以下、通信端末装置の典型例として携帯電話端末に本発明を適用して説明する。図１は、本発明を適用した携帯電話端末の基本的な構成を示すブロック図である。図１に示す携帯電話端末１００は、マイク等の音声入力手段１と、音声入力手段１から入力した音をデジタルデータに変換するエンコード手段２と、エンコード手段２でデジタルデータに変換したデータからＲＴＰ（Ｒｅａｌ−ｔｉｍｅ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ）パケットを生成するパケット生成手段３と、パケット生成手段３で生成したＲＴＰパケットを一時的に保存する送信用バッファ４と、通信相手にデータを送信する送信手段５と、現在時刻を取得する時刻取得手段１２と、ＲＴＰのタイムスタンプから適切な送信時刻の算出とパケットの廃棄を行う理想送信時刻計算手段１１と、理想送信時刻計算手段１１の計算結果に基づいて送信パケットを廃棄するパケット廃棄手段１３と、パケットの廃棄を抑制する廃棄取り消し手段１４と、通信相手からパケットを受信する受信手段７と、受信したＲＴＰパケットを一時的に保存する受信用バッファ８と、受信した音声パケットをアナログデータに変換するデコード手段９と、デコード手段９でアナログに変換した音声を再生する音声出力手段１０と、受信用バッファ８のサイズを変更する受信用バッファサイズ変更手段１５と、パケットの受信状態に応じて通信相手端末の受信用バッファのサイズを推測する通信相手受信バッファサイズ推測手段１６と、送信開始時刻、送信開始タイムスタンプ、送信遅延時間、受信フレームカウント、通信相手受信バッファサイズ、送信遅延時間キュー、許容送信ロス率、送信ロス率、受信ゆらぎキュー、受信ゆらぎ算出値、送信ゆらぎキュー、送信ゆらぎ算出値、受信開始時刻、受信開始タイムスタンプ、受信バッファサイズ推測マトリックスの情報を記憶するメモリ１７とを備えている。
【００１２】
図２は、通信相手受信バッファサイズ推測手段の構成を示すブロック図である。通信相手受信バッファサイズ推測手段１６は、受信したパケットから受信時刻のゆらぎを算出する受信ゆらぎ算出手段２１と、実際に受信した時刻と理論値との誤差を計測する受信時刻誤差算出手段２２と、自端末の電界強度を計測する電界強度測定手段２３と、自端末の受信レートを測定する受信レート測定手段２４と、自端末が送信するパケットの送信時刻の理論値との差のゆらぎを算出する送信ゆらぎ算出手段２５と、受信ゆらぎ算出手段２１、受信時刻誤差算出手段２２、電界強度測定手段２３、受信レート測定手段２４、送信ゆらぎ算出手段２５の結果に基づいて通信相手の端末の受信用バッファのサイズを導出する通信相手受信バッファサイズ導出手段２６とを備えている。
【００１３】
図３は、理想送信時刻計算処理の手順を示すフローチャートである。理想送信時刻計算処理は、理想送信時刻計算手段１１が行う。理想送信時刻計算手段１１は、送信手段５から割り込みが発生したときに動作し（Ｓ１０１）、Ｓ１０２において、メモリ１７の送信開始時刻が値を保持するか否かを判定する。すなわち、通話開始時の最初のパケットを送信するときは送信開始時刻に値が保持されていないのでＳ１０３以降を実行し（「Ｎ」を選択）、２番目以降のパケットを送信する際には送信開始時刻に値が保持されているのでＳ１０８以降を実行する（「Ｙ」を選択）。Ｓ１０３では時刻取得手段１２から現在時刻を取得し、Ｓ１０４において、取得した現在時刻を送信開始時刻としてメモリ１７に保存する。Ｓ１０５では送信用バッファ４が保持している最初のＲＴＰパケット（一番最初に送信するパケット）のタイムスタンプを取得し（Ｓ１０５）、送信開始タイムスタンプとしてメモリ１７に保存し（Ｓ１０６）、送信手段５に「送信」を指示する（Ｓ１０７）。
【００１４】
２番目以降のパケットの送信の際は、メモリ１７に保存した送信開始時刻および送信開始タイムスタンプと、送信時の時刻を用いて、理論上の送信時刻と実際の送信時刻との誤差を求め、パケットの送信・廃棄を決定する。すなわち、Ｓ１０８において、送信用バッファ４が保持している一番古いＲＴＰパケットのタイムスタンプを取得し、取得したタイムスタンプを用いて、Ｓ１０９において、理論上の送信時刻を式（１）により求める。
【数１】
2008085823.tif 000003
例えば、送信開始時刻を９：００：００．０００（９時）、Ｓ１０８で取得したタイムスタンプを１０１６００、Ｓ１０６で取得した送信開始タイムスタンプを１０００００、クロックレートを８０００（８ＫＨｚの音声の場合）とした場合、理論上の送信時刻は、
【数２】
2008085823.tif 000004
となる。
さらに、式（２）により実際の送信時刻と理論上の送信時刻の誤差を算出し、算出した送信遅延時間をメモリ１７に保存する。
【数３】
2008085823.tif 000005
【００１５】
次に、Ｓ１０９で算出した送信遅延時間を基にパケット廃棄手段１３がパケット廃棄処理を実行し（Ｓ１０１０）、パケット廃棄処理の結果、理想送信時刻計算手段１１は、「送信保留」の指示が通知されたか否かを判定し（Ｓ１０１１）、Ｓ１０１１の結果が「Ｙ」であれば、送信手段５に「送信保留」を指示する（Ｓ１０１４）。Ｓ１０１１の結果が「Ｎ」であれば、次に、「送信」の指示が通知されたか否かを判定し（Ｓ１０１２）、Ｓ１０１２の結果が「Ｙ」であれば、送信手段５に「送信」を指示する（Ｓ１０１３）。Ｓ１０１２の結果が「Ｎ」であれば、Ｓ１０８に戻る。
【００１６】
図４は、パケット廃棄処理の手順を示すフローチャートである。パケット廃棄処理は、古くなったＲＴＰパケットを廃棄する処理であり、パケット廃棄手段１３が行う。パケット廃棄手段１３は、Ｓ１１１において、送信遅延時間が０以上か否かを判定し、０未満の場合は、受信側でアンダーフローが発生することを避けるために、「送信保留」を指示する（Ｓ１１２）。Ｓ１１１において送信遅延時間が０以上の場合は、Ｓ１１３において、送信遅延時間が通話相手受信バッファサイズよりも大きいか否かを判定し、送信遅延時間が通信相手受信用バッファのサイズ以下（Ｓ１１３の結果が「Ｎ」）であれば、「送信」を指示し（Ｓ１１４）、送信遅延時間をメモリ１７の送信遅延時間キューに追加する（Ｓ１１５）。Ｓ１１３の結果が「Ｙ」の場合は、廃棄取り消し処理（パケットを廃棄して次のパケットを送信するか、送信ロス率の増加を防ぐために廃棄対象のパケットの送信を許可するかを選択する処理）を実行する（Ｓ１１６）。
【００１７】
ここで、パケット廃棄処理は以下の結果を返す。
「送信」：パケットを送信しても問題が無い場合。
「送信保留」：パケットを送信するとオーバーフローが発生する可能性があるため未だ送信しない場合。
「次のパケットを送信」：送信バッファが保持している一番古いＲＴＰパケットを送信した場合に、受信側で再生されない可能性があるため、一番古いＲＴＰパケットを廃棄し、次に古いＲＴＰパケットの送信を試みる場合。
【００１８】
図５は、廃棄取り消し処理の手順を示すフローチャートである。廃棄取り消し処理では、送信ロス率の増加を抑制する。Ｓ１２１において、送信遅延時間を送信遅延時間キューに追加し、Ｓ１２２において、送信ロス率算出処理（送信遅延時間の履歴から送信に失敗した割合を算出）を実行して、Ｓ１２３において、送信ロス率が許容値（許容送信ロス率）以上か否かを判定する。送信ロス率が許容値（許容送信ロス率）より小さい場合（Ｓ１２３の結果が「Ｎ」の場合）は、送信用バッファ４から一番古いパケットを削除し（Ｓ１２４）、「次のパケットを送信」を指示する（Ｓ１２５）。送信ロス率が許容値以上の場合（Ｓ１２３の結果が「Ｙ」の場合）は、送信遅延時間が通信相手用受信用バッファサイズ＋β（送信を許可する時間）を上回るか否かを判定する（Ｓ１２６）。βは、０以上の実数を指定する。なお、βの値が大きすぎるときは送信ロス率を下げることが可能であるが、アンダーフローが多発し、βの値が小さすぎると送信ロス率を下げることができないため、適切な値を設定しなければならない。Ｓ１２６の結果が「Ｎ」の場合は「送信」を指示し（Ｓ１２７）、Ｓ１２６の結果が「Ｙ」の場合は、送信用バッファ４から一番古いパケットを削除し（Ｓ１２８）、「次のパケットを送信」を指示する（Ｓ１２９）。
【００１９】
図６は、送信ロス率算出処理の手順を示すフローチャートである。送信ロス率算出処理では、まず、カウンタｉに１を設定し（Ｓ１３１）、送信ロス率に０を設定する（Ｓ１３２）。次に、ループ１に入り（Ｓ１３３）、通信相手受信バッファサイズが、送信遅延時間キューのｉ番目の要素よりも小さいか否かを判定し（Ｓ１３４）、小さくなければ（結果が「Ｎ」であれば）、カウンタｉに１を加算し（Ｓ１３６）、小さければ（結果が「Ｙ」であれば）、送信ロス率に１を加算して（Ｓ１３５）、カウンタｉに１を加算する（Ｓ１３６）。次に、Ｓ１３３に戻り、カウンタｉが送賃遅延時間キューのサイズよりも大きいか否かを判定し、大きければ、ループ１を抜け出す。次に、送信ロス率を送賃遅延時間キューのサイズで割って送信ロス率を求め、求めた送信ロス率をメモリ１７に保存する（Ｓ１３７）。
【００２０】
図７は、受信用バッファサイズ変更処理の手順を示すフローチャートである。受信用バッファサイズ変更処理は、受信用バッファサイズ変更手段１５が行う。受信用バッファサイズ変更手段１５は、受信用バッファ８を監視し、アンダーフローが発生しているか否かを判定し（Ｓ１４１）、アンダーフローが発生した場合（結果が「Ｙ」の場合）は、受信用バッファのサイズを１フレーム分大きくし（Ｓ１４１０）、受信フレームカウントを０に設定する（Ｓ１４１１）。
【００２１】
Ｓ１４１において、アンダーフローが発生していない場合（結果が「Ｎ」の場合）は、オーバーフローが発生しているか否かを判定し（Ｓ１４２）、オーバーフローが発生した場合（結果が「Ｙ」の場合）は、受信用バッファのサイズを１フレーム分大きくし（Ｓ１４８）、受信フレームカウントを０に設定する（Ｓ１４９）。
【００２２】
Ｓ１４２において、オーバーーフローが発生していない場合（結果が「Ｎ」の場合）は、受信フレームカウントがＭＡＸ（１以上の実数）か否かを判定し（Ｓ１４３）、受信フレームカウントがＭＡＸでない場合（結果が「Ｎ」の場合）は、受信フレームカウントに１を加算する（Ｓ１４４）。受信フレームカウントがＭＡＸの場合（結果が「Ｙ」の場合）は、受信用バッファに無音のフレームを含むか否かを判定する（Ｓ１４５）。受信用バッファに無音のフレームを含む場合（結果が「Ｙ」の場合）は、通話に影響がないので無音の音声フレームを１フレーム削除して、受信用バッファのサイズを１フレーム分小さくし（Ｓ１４６）、受信フレームカウントを０に設定する（Ｓ１４８）。すなわち、アンダーフロー、オーバーフローが一定期間発生しない場合は、受信用バッファのサイズを小さくする。
【００２３】
図８は、送信ゆらぎ算出処理の手順を示すフローチャートである。送信ゆらぎ算出処理は、自端末のパケットの送信時刻と理論値との誤差より送信時刻のゆらぎを算出する処理であり、通信相手受信バッファサイズ推測手段１６の送信ゆらぎ算出手段２５が行う。送信遅延時間をメモリ１７の送信ゆらぎキューに追加し（Ｓ１５１）、送信ゆらぎキューの全要素の平均値を求め、メモリ１７の送信ゆらぎ算出値に保存する。図８では、平均値を算出しているが、最大値と最小値の差分、分散、標準偏差を送信ゆらぎ算出値としても良い。
【００２４】
図９は、受信ゆらぎ算出処理の手順を示すフローチャートである。受信ゆらぎ算出処理は、パケットの受信時刻と理論値との誤差より受信時刻のゆらぎを算出する処理であり、通信相手受信バッファサイズ推測手段１６の受信ゆらぎ算出手段２１が行う。後述する受信時刻誤差算出処理を行い（Ｓ１６１）、受信時刻誤差算出処理の戻り値を受信ゆらぎキューに追加し（Ｓ１６２）、受信ゆらぎキューの全要素の最大値と最小値の差を求め、メモリ１７の受信ゆらぎ算出値に保存する。図９では、最大値と最小値の差分を算出しているが、平均値、分散、標準偏差を受信ゆらぎ算出値としても良い。
【００２５】
図１０は、受信時刻誤差算出処理の手順を示すフローチャートである。受信時刻誤差算出処理は、パケットの受信時刻と理論値との誤差を算出する処理であり、通信相手受信バッファサイズ推測手段１６の受信時刻誤差算出手段２２が行う。まず、メモリ１７の受信開始時刻が値を保持するか否かを判定する（Ｓ１７１）。すなわち、通話開始時の最初のパケットを受信するときは受信開始時刻に値が保持されていないのでＳ１７２以降を実行し（「Ｎ」を選択）、２番目以降のパケットを受信する際には受信開始時刻に値が保持されているのでＳ１７７以降を実行する（「Ｙ」を選択）。Ｓ１７２では時刻取得手段１２から現在時刻を取得し、Ｓ１７３において、取得した現在時刻を受信開始時刻としてメモリ１７に保存する。Ｓ１７４では受信用バッファ８が保持している最初のＲＴＰパケット（一番最初に受信するパケット）のタイムスタンプを取得し（Ｓ１７４）、受信開始タイムスタンプとしてメモリ１７に保存し（Ｓ１７５）、０を返却する（Ｓ１７６）。
【００２６】
２番目以降のパケットの受信の際は、Ｓ１７７において、受信したＲＴＰパケットのタイムスタンプを取得し、取得したタイムスタンプを用いて、Ｓ１７８において、理論上の受信時刻を式（３）により求める。
【数４】
2008085823.tif 000006
さらに、式（４）により実際の受信時刻と理論上の受信時刻の誤差である受信遅延時間を算出し、受信遅延時間を返却する（Ｓ１７９）。
【数５】
2008085823.tif 000007
【００２７】
図１１は、通信相手受信バッファサイズ導出処理の手順を示すフローチャートである。通信相手受信バッファサイズ導出処理は、送信時刻のゆらぎ、受信時刻のゆらぎ、受信レート、電界強度を測定し、予め用意したマトリックス（受信バッファサイズ推測マトリックス）から通信相手の受信バッファのサイズを推測する処理であり、通信相手受信バッファサイズ推測手段１６が行う。受信ゆらぎ算出手段２１を用いて、図９に示した受信ゆらぎ算出処理を行い（Ｓ１８１）、受信レート測定手段２４を用いて、通信相手からのパケットの伝送速度を得る（Ｓ１８２）。次に、メモリ１７から送信ゆらぎ算出値を読み込み（Ｓ１８３）、電界強度測定手段２３を用いて、自端末の電界強度を得る（Ｓ１８４）。次に、通信相手受信バッファサイズ導出手段２６を用いて、受信バッファサイズ推測マトリックスから、通信相手の受信バッファのサイズを推測し（Ｓ１８５）、推測した通信相手受信バッファサイズをメモリ１７に保存する（Ｓ１８６）。
【００２８】
図１２は、受信バッファサイズ推測マトリックスを示す図である。この受信バッファサイズ推測マトリックスでは、左の列ほど送信状態が良好で右の列ほど送信状態が悪化し、受信バッファのサイズを大きく推測するように値を設定している。また、上の行ほど受信状態が良好で下の行ほど受信状態が悪化し、受信バッファのサイズを大きく推測するように値を設定している。図１２では、常に同じマトリックスを使用する例を示しているが、メモリ上にマトリックスをロードしてユーザが編集できるようにしても良い。送信ゆらぎの電界強度の値、受信ゆらぎの受信レートの値を３段階で表現しているがこの限りでない。また、受信バッファのサイズは一例である。
【００２９】
図１３は、音声入力から送信用バッファにＲＴＰパケットを一時保存するまでの手順を示すフローチャートである。通話が開始され（Ｓ３０１）、ループ１に入り（Ｓ３０２）、マイク等の音声入力手段１より音声が入力されると（Ｓ３０３）、エンコード手段２でデジタルデータにエンコードし（Ｓ３０４）、エンコードされたデータからパケット生成手段３でＲＴＰパケットを作成し（Ｓ３０５）、送信用バッファ４にＲＴＰパケットを追加し（Ｓ３０６）、通話が終了するまで、ループ１を繰り返す。
【００３０】
図１４は、送信用バッファに一時保存されているＲＴＰパケットを送信する処理の手順を示すフローチャートである。この処理では、パケットの送信が可能か否かを判定し（Ｓ３１３）、送信が可能な場合に処理を行う。送信が可能であるときは、送信用バッファ４にデータが存在するか否かを判定し（Ｓ３１４）、送信用バッファ４にデータが存在するときは、図３に示した理想送信時刻計算処理を実行する（Ｓ３１５）。次に、ＲＴＰパケットの送信を行うか否かを決定し（Ｓ３１６）、「送信」が指示されたとき（Ｓ３１６の結果が「Ｙ」のとき）に、送信時刻の理論値との誤差から送信時刻のゆらぎを算出する送信ゆらぎ算出処理を行い（Ｓ３１７）、パケットを送信し（Ｓ３１８）、送信用バッファ４から一番古いパケットを削除する（Ｓ３１９）。
【００３１】
図１５は、パケットの受信から受信用バッファに一時保存されるまでの処理の手順を示すフローチャートである。この処理では、パケットを受信したか否かを判定し（Ｓ３２３）、受信を行った場合に処理を行う。パケットを受信したときは、図１１に示した通信相手受信バッファサイズ導出処理を実行し、受信状態および送信状態より通信相手の受信用バッファのサイズを推測する（Ｓ３２４）。次に、受信したパケットに音声フレームを含むか否かを判定し（Ｓ３２５）、音声フレームを含む場合は受信バッファにパケットを追加する（Ｓ３２６）。次に、オーバーフローが発生したか否かを判定し（Ｓ３２７）、オーバーフローが発生した場合は、図７に示した受信用バッファサイズ変更処理を実行して受信用バッファのサイズを大きくする（Ｓ３２９）。オーバーフローが発生しない場合も受信用バッファサイズ変更処理を実行して受信用バッファのサイズの縮小を試みる（Ｓ３２８）。
【００３２】
図１６は、受信用バッファに保存されている音声データをデコードして出力する処理の手順を示すフローチャートである。この処理では、受信用バッファに再生するデータが存在するか否かを判定し（Ｓ３３３）、データが存在しない場合（結果が「Ｎ」の場合）は、アンダーフローが発生するため受信用バッファサイズ変更処理を実行して受信用バッファのサイズを大きくする（Ｓ３３４）。データが存在する場合（結果が「Ｙ」の場合）は、音声フレームをデコードする（Ｓ３３５）。
【００３３】
図１７は、送信側端末がパケットを送信可能な際には送信を行い、送信できない際には通信相手の受信用バッファのサイズ分だけ遅らせてパケットの送信を試みている例を示す図である。図１７でのパラメータは次の通りである。通信相手受信バッファサイズを６０ｍｓとし、廃棄取り消し処理で用いる許容送信ロス率を∞（考慮せず）とし、廃棄取り消し処理で用いるβ（遅延の上限）を０（考慮せず）とする。なお、音声は１フレームあたり２０ｍｓとする。
【００３４】
図１７では、♪０６０の音声パケットがＲＬＰ（Ｒａｄｉｏ  Ｌｉｎｋ  Ｐｒｏｔｏｃｏｌ）で送信可能となるまで、送信を遅延させている。また、♪２００の音声パケットが送信側で廃棄されている。送信側の送信環境が悪化したため、通信相手の受信バッファのサイズを推測して１００ｍｓに変更している。また、♪２２０の音声パケットをＲＬＰで送信可能な状態になったら送信する（送信側での遅延を考慮していない端末であれば、♪３２０のパケットが生成されてから送信を行う）。また、受信用バッファのサイズが８０ｍｓに対して♪２２０から♪３００までの１００ｍｓの音声パケットを受信したため、受信側でオーバーフロー発生し、そのため受信側の受信用バッファのサイズを８０ｍｓから１００ｍｓに拡大している。
【００３５】
図１８は、送信側端末がパケットを送信可能な際には送信を行い、送信できない際には通信相手の受信用バッファのサイズ分だけ遅らせてパケットの送信を試みている例を示す図であり、図１７の例と比較して、送信ロス率の低減を考慮している。図１８でのパラメータは次の通りである。通信相手受信バッファサイズを６０ｍｓとし、廃棄取り消し処理で用いる許容送信ロス率を３０％とし、廃棄取り消し処理で用いるβ（遅延の上限）を２０ｍｓとする。なお、音声は１フレームあたり２０ｍｓとする。
【００３６】
図１８では、♪１８０の音声パケットがＲＬＰで送信可能となるまで、送信を遅延させている。また、送信ロス率が３０％以上になることを避けるために、更に２０ｍｓ遅延させて送信を行っている（結果として、受信側でのアンダーフローを回避できた）。アンダーフローが頻繁に発生する環境では、受信用のバッファのサイズを大きく設定している可能性が高いため、送信側で制御を行ったためである。
【００３７】
図１９は、図１に示す構成に対して改良を加えた携帯電話端末の基本的な構成を示すブロック図である。図１９では、オーバーフローを防止するためのオーバーフロー防止手段１９を更に備えており、廃棄取り消し手段１８からの信号が加えられている。
【００３８】
図２０は、図１９に示す携帯電話端末のパケット廃棄処理の手順を示すフローチャートである。パケット廃棄手段１３は、Ｓ１９１において、メモリ１７に保存した送信遅延時間が０以上か否かを判定し、０未満の場合は、受信側でアンダーフローが発生することを避けるために、「送信保留」を指示する（Ｓ１９２）。Ｓ１９１において送信遅延時間が０以上の場合は、Ｓ１９３において、送信遅延時間が通話相手受信バッファサイズよりも大きいか否かを判定し、送信遅延時間が通信相手受信バッファサイズ以下（Ｓ１９３の結果が「Ｎ」）であれば、後述のオーバーフロー防止処理を実行し、受信側でのオーバーフローを回避する（Ｓ１９４）。Ｓ１７３の結果が「Ｙ」の場合には、廃棄取り消し処理を実行する（Ｓ１９５）。
【００３９】
図２１は、オーバーフロー防止処理の手順を示すフローチャートである。この処理では、送信時刻キューに送信した時間から、古い要素（現在の時刻から受信用バッファのサイズに係数αを乗算したものを引いた値）を削除する（Ｓ２０１）。ネットワーク上での遅延時間のゆらぎが大きい場合にはαを大きく、小さい場合にはαを小さくするので、遅延時間のゆらぎが大きいほど削除される要素が少なく、ゆらぎが小さいほど削除される要素が多くなる。次に、Ｓ２０２において、キューに新しい要素を追加可能か否かを判定し、オーバーフローが発生するかをシミュレーションしている。キューの大きさは、以下の式（５）で算出される値を用いる。
【数６】
2008085823.tif 000008
【００４０】
もし、Ｓ２０２において、キューに要素を追加不可能と判定した場合は、「送信保留」を指示する（Ｓ２０３）。キューに要素を追加可能と判定した場合は、「送信」を指示し（Ｓ２０４）、送信遅延時間を送信遅延時間キューに追加する（Ｓ２０５）。
【００４１】
図２２は、送信側でオーバーフローの制御を行っている例を示す図である。図２２でのパラメータは次の通りである。通信相手受信バッファサイズを６０ｍｓとし、廃棄取り消し処理で用いる許容送信ロス率を∞（考慮せず）とし、廃棄取り消し処理で用いるβ（遅延の上限）を０（考慮せず）とし、オーバーフロー防止処理で用いるαを５０％とする。なお、音声は１フレーム当たり２０ｍｓとする。♪２２０から♪３００までのパケットを送信した後に、♪３２０のパケットを送信するまでに３０ｍｓの遅延を設けている。αが５０％であるため、通信相手用受信バッファサイズの５０％＝５０ｍｓ以内に、６パケット以上の送信を行わないように制御しているためである。
【００４２】
本発明では、通信相手端末に搭載されている受信バッファのサイズを予測することにより、受信バッファのサイズの変化に応じて、無駄なパケットを廃棄して送信を行わないとともに、廃棄するパケットの量を抑制することができる。また、無線環境ではネットワークでの遅延時間のゆらぎが大きいため、受信側でオーバーフローを引き起こす可能性があり、本発明では送信側でパケットを送信するタイミングを調整することで、オーバーフローの可能性を減少させることができる。
【図面の簡単な説明】
【００４３】
【図１】本発明を適用した携帯電話端末の基本的な構成を示すブロック図である。
【図２】通信相手受信バッファサイズ推測手段の構成を示すブロック図である。
【図３】理想送信時刻計算処理の手順を示すフローチャートである。
【図４】パケット廃棄処理の手順を示すフローチャートである。
【図５】廃棄取り消し処理の手順を示すフローチャートである。
【図６】送信ロス率算出処理の手順を示すフローチャートである。
【図７】受信用バッファサイズ変更処理の手順を示すフローチャートである。
【図８】送信ゆらぎ算出処理の手順を示すフローチャートである。
【図９】受信ゆらぎ算出処理の手順を示すフローチャートである。
【図１０】受信時刻誤差算出処理の手順を示すフローチャートである。
【図１１】通信相手受信バッファサイズ導出処理の手順を示すフローチャートである。
【図１２】受信バッファサイズ推測マトリックスを示す図である。
【図１３】音声入力から送信用バッファにＲＴＰパケットを一時保存するまでの手順を示すフローチャートである。
【図１４】送信用バッファに一時保存されているＲＴＰパケットを送信する処理の手順を示すフローチャートである。
【図１５】パケットの受信から受信用バッファに一時保存されるまでの処理の手順を示すフローチャートである。
【図１６】受信用バッファに保存されている音声データをデコードして出力する処理の手順を示すフローチャートである。
【図１７】送信できない際には通信相手の受信用バッファのサイズ分だけ遅らせてパケットの送信を試みている例を示す図である。
【図１８】送信できない際には通信相手の受信用バッファのサイズ分だけ遅らせてパケットの送信を試みている例を示す図である。
【図１９】改良を加えた携帯電話端末の基本的な構成を示すブロック図である。
【図２０】パケット廃棄処理の手順を示すフローチャートである。
【図２１】オーバーフロー防止処理の手順を示すフローチャートである。
【図２２】送信側でオーバーフローの制御を行っている例を示す図である。
【符号の説明】
【００４４】
１  音声入力手段
２  エンコード手段
３  パケット生成手段
４  送信用バッファ
５  送信手段
７  受信手段
８  受信用バッファ
９  デコード手段
１０  音声出力手段
１１  理想送信時刻計算手段
１２  時刻取得手段
１３  パケット廃棄手段
１４，１８  廃棄取り消し手段
１５  受信用バッファサイズ変更手段
１６  通信相手受信バッファサイズ推測手段
１７  メモリ
１９  オーバーフロー防止手段
２１  受信ゆらぎ算出手段
２２  受信時刻誤差算出手段
２３  電界強度測定手段
２４  受信レート測定手段
２５  送信ゆらぎ算出手段
２６  通信相手受信バッファサイズ導出手段
【図１】
2008085823.tif 000009
【図２】
2008085823.tif 000010
【図３】
2008085823.tif 000011
【図４】
2008085823.tif 000012
【図５】
2008085823.tif 000013
【図６】
2008085823.tif 000014
【図７】
2008085823.tif 000015
【図８】
2008085823.tif 000016
【図９】
2008085823.tif 000017
【図１０】
2008085823.tif 000018
【図１１】
2008085823.tif 000019
【図１２】
2008085823.tif 000020
【図１３】
2008085823.tif 000021
【図１４】
2008085823.tif 000022
【図１５】
2008085823.tif 000023
【図１６】
2008085823.tif 000024
【図１７】
2008085823.tif 000025
【図１８】
2008085823.tif 000026
【図１９】
2008085823.tif 000027
【図２０】
2008085823.tif 000028
【図２１】
2008085823.tif 000029
【図２２】
2008085823.tif 000030