(57)【要約】【課題】サーバ装置とクライアント装置間あるいは通信端末同士でデータを転送する際、データ転送レートは利用可能な帯域幅やそのデータの用途などに応じて、ネットワークに無駄を生じないように設定する。【解決手段】制御部は、データの転送にあたり生じるパケットロスを検出し、パケットロスが検出された場合には、データ転送レートの低い圧縮態様を選択する。一方、パケットロスが発生していない状況においても、データの転送に必要とされた時間（往復遅延時間）を測定し、該往復遅延時間が十分小さい場合には、データ転送レートの高い圧縮態様を選択する。上記圧縮態様の選択方法として、例えば別のコーデックへ切り替えたり、コーデックに設定された圧縮率を変更したりする方法を用いる。【選択図】図５
2008099261.tif 000002
【特許請求の範囲】
【請求項１】
通信網を介して相手装置と通信する通信装置であって、
第１の圧縮態様でデータを圧縮する制御手段と、
前記圧縮されたデータを、前記通信網を介して前記相手装置へ送信する送信手段と、
前記圧縮されたデータを受信した旨を示す応答メッセージを前記相手装置が送信すると、前記応答メッセージを前記通信網を介して受信する受信手段とを備え、
前記制御手段は、前記受信手段により受信された応答メッセージの状態に基づいて前記第１の圧縮態様を継続するか否かを判定し、継続しないと判定した場合には第２の圧縮態様を選択して当該第２の圧縮態様でデータを圧縮することを特徴とする通信装置。
【請求項２】
通信網を介して相手装置と通信する通信装置であって、
第１のコーデックでデータを圧縮する制御手段と、
前記圧縮されたデータを、前記通信網を介して前記相手装置へ送信する送信手段と、
前記圧縮されたデータを受信した旨を示す応答メッセージを前記相手装置が送信すると、前記応答メッセージを前記通信網を介して受信する受信手段とを備え、
前記制御手段は、前記受信手段により受信された応答メッセージの状態に基づいて前記第１のコーデックによるデータの圧縮を継続するか否かを判定し、継続しないと判定した場合には第２のコーデックを選択して当該第２のコーデックでデータを圧縮することを特徴とする通信装置。
【請求項３】
コーデックと、該コーデックに設定する転送レートとを対応付けるテーブルを記憶する記憶手段を備え、
前記制御手段は、前記受信手段により前記応答メッセージが受信されない場合に、前記テーブルにおいて前記第１のコーデックより低い転送レートと対応付けられたコーデックを前記第２のコーデックとして選択し、該第２のコーデックでデータを圧縮することを特徴とする請求項２に記載の通信装置。
【請求項４】
コーデックと、該コーデックに設定する転送レートとを対応付けるテーブルを記憶する記憶手段を備え、
前記制御手段は、前記受信手段により前記応答メッセージが所定の時間よりも早く受信された場合に、前記テーブルにおいて前記第１のコーデックより高い転送レートと対応付けられたコーデックを前記第２のコーデックとして選択し、該第２のコーデックでデータを圧縮することを特徴とする請求項２または３に記載の通信装置。
【請求項５】
通信網を介して相手装置と通信する通信装置であって、
複数のデータ転送レートが設定可能なコーデックであって、第１のデータ転送レートを満たす圧縮率が設定されたコーデックによりデータを圧縮する制御手段と、
前記コーデックにより圧縮されたデータを、前記通信網を介して前記相手装置へ送信する送信手段と、
前記圧縮されたデータを受信した旨を示す応答メッセージを前記相手装置が送信すると、前記応答メッセージを前記通信網を介して受信する受信手段とを備え、
前記制御手段は、前記受信手段により受信された応答メッセージの状態に基づいて第２のデータ転送レートを選択し、該第２のデータ転送レートを満たす圧縮率が設定された前記コーデックによりデータを圧縮することを特徴とする通信装置。
【請求項６】
前記制御手段は、前記受信手段により前記応答メッセージが受信されない場合に、前記第２のデータ転送レートとして、前記第１のデータ転送レートより低いデータ転送レートを選択し、該選択されたデータ転送レートを満たす圧縮率が設定された前記コーデックによりデータを圧縮することを特徴とする請求項５に記載の通信装置。
【請求項７】
前記制御手段は、前記受信手段により前記応答メッセージが所定の時間よりも早く受信された場合に、前記第２のデータ転送レートとして、前記第１のデータ転送レートより高いデータ転送レートを選択し、該選択されたデータ転送レートを満たす圧縮率が設定された前記コーデックによりデータを圧縮することを特徴とする請求項５または６に記載の通信装置。
【請求項８】
コンピュータを、
第１の圧縮態様でデータを圧縮する制御手段と、
前記圧縮されたデータを、前記通信網を介して前記相手装置へ送信する送信手段と、
前記圧縮されたデータを受信した旨を示す応答メッセージを前記相手装置が送信すると、前記応答メッセージを前記通信網を介して受信する受信手段
として機能させると共に、
前記制御手段を、前記受信手段により受信された応答メッセージの状態に基づいて前記第１の圧縮態様を継続するか否かを判定し、継続しないと判定した場合には第２の圧縮態様を選択して当該第２の圧縮態様でデータを圧縮するように機能させる
ことを特徴とするプログラム。
【請求項９】
コンピュータを、
第１のコーデックでデータを圧縮する制御手段と、
前記圧縮されたデータを、前記通信網を介して前記相手装置へ送信する送信手段と、
前記圧縮されたデータを受信した旨を示す応答メッセージを前記相手装置が送信すると、前記応答メッセージを前記通信網を介して受信する受信手段
として機能させると共に、
前記制御手段を、前記受信手段により受信された応答メッセージの状態に基づいて前記第１のコーデックによるデータの圧縮を継続するか否かを判定し、継続しないと判定した場合には第２のコーデックを選択して当該第２のコーデックでデータを圧縮するように機能させる
ことを特徴とするプログラム。
【請求項１０】
コンピュータを、
複数のデータ転送レートが設定可能なコーデックであって、第１のデータ転送レートを満たす圧縮率が設定されたコーデックによりデータを圧縮する制御手段と、
前記コーデックにより圧縮されたデータを、前記通信網を介して前記相手装置へ送信する送信手段と、
前記圧縮されたデータを受信した旨を示す応答メッセージを前記相手装置が送信すると、前記応答メッセージを前記通信網を介して受信する受信手段
として機能させると共に、
前記制御手段は、前記受信手段により受信された応答メッセージの状態に基づいて第２のデータ転送レートを選択し、該第２のデータ転送レートを満たす圧縮率が設定された前記コーデックによりデータを圧縮するように機能させる
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置およびプログラムに関する。
【背景技術】
【０００２】
楽曲や動画のストリーミング配信のように、楽曲データや動画データを通信網経由で、パーソナルコンピュータなどのクライアント装置へ配信し、それらデータに応じた楽曲や動画をそのクライアント装置において再生させる技術が一般に普及している（非特許文献１）。
この種のデータ通信においては、サーバ装置はデータを所定サイズに分割したパケットを所定のタイミングで送信することが一般的であるから、クライアント装置に例えば動画を支障なく（途切れたり、画質の劣化を生じさせたりすること無く）再生させるためには、単位時間あたりの送信データ量（以後、データ転送レート）を一定以上確保することが必要となる。
【非特許文献１】ＲＦＣ１８８９：[online]インターネット＜ＵＲＬ：http://www.ietf.org/rfc/rfc1889.txt＞
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ネットワークにより利用可能な帯域幅（単位時間あたりの送信データ量）には限界があることから、個々のクライアント装置に対するデータ転送レートは、利用可能な帯域幅やそのデータの用途などに応じて、ネットワークに無駄を生じないように設定する技術が必要とされていた。
本発明は、上記の需要に応じてなされたものであり、サーバ装置からクライアント装置へのデータ転送あるいは通信端末間のデータ転送に利用するネットワークの帯域幅を検出することにより、データを支障なく、またネットワークの無駄を生じることなく送信する技術を提供することを目的とする。
【課題を解決するための手段】
【０００４】
本発明に係る通信装置は、通信網を介して相手装置と通信する通信装置であって、第１の圧縮態様でデータを圧縮する制御手段と、前記圧縮されたデータを、前記通信網を介して前記相手装置へ送信する送信手段と、前記圧縮されたデータを受信した旨を示す応答メッセージを前記相手装置が送信すると、前記応答メッセージを前記通信網を介して受信する受信手段とを備え、前記制御手段は、前記受信手段により受信された応答メッセージの状態に基づいて前記第１の圧縮態様を継続するか否かを判定し、継続しないと判定した場合には第２の圧縮態様を選択して当該第２の圧縮態様でデータを圧縮することを特徴とする。
【０００５】
本発明に係る別の通信装置は、通信網を介して相手装置と通信する通信装置であって、第１のコーデックでデータを圧縮する制御手段と、前記圧縮されたデータを、前記通信網を介して前記相手装置へ送信する送信手段と、前記圧縮されたデータを受信した旨を示す応答メッセージを前記相手装置が送信すると、前記応答メッセージを前記通信網を介して受信する受信手段とを備え、前記制御手段は、前記受信手段により受信された応答メッセージの状態に基づいて前記第１のコーデックによるデータの圧縮を継続するか否かを判定し、継続しないと判定した場合には第２のコーデックを選択して当該第２のコーデックでデータを圧縮することを特徴とする。
【０００６】
本発明に係る通信装置は、上記の構成において、コーデックと、該コーデックに設定する転送レートとを対応付けるテーブルを記憶する記憶手段を備え、前記制御手段は、前記受信手段により前記応答メッセージが受信されない場合に、前記テーブルにおいて前記第１のコーデックより低い転送レートと対応付けられたコーデックを前記第２のコーデックとして選択し、該第２のコーデックでデータを圧縮しても良い。
また、上記の構成において、コーデックと、該コーデックに設定する転送レートとを対応付けるテーブルを記憶する記憶手段を備え、前記制御手段は、前記受信手段により前記応答メッセージが所定の時間よりも早く受信された場合に、前記テーブルにおいて前記第１のコーデックより高い転送レートと対応付けられたコーデックを前記第２のコーデックとして選択し、該第２のコーデックでデータを圧縮しても良い。
【０００７】
本発明に係る通信装置は、通信網を介して相手装置と通信する通信装置であって、複数のデータ転送レートが設定可能なコーデックであって、第１のデータ転送レートを満たす圧縮率が設定されたコーデックによりデータを圧縮する制御手段と、前記コーデックにより圧縮されたデータを、前記通信網を介して前記相手装置へ送信する送信手段と、前記圧縮されたデータを受信した旨を示す応答メッセージを前記相手装置が送信すると、前記応答メッセージを前記通信網を介して受信する受信手段とを備え、前記制御手段は、前記受信手段により受信された応答メッセージの状態に基づいて第２のデータ転送レートを選択し、該第２のデータ転送レートを満たす圧縮率が設定された前記コーデックによりデータを圧縮することを特徴とする。
【０００８】
本発明に係る通信装置は、上記の構成において、前記制御手段は、前記受信手段により前記応答メッセージが受信されない場合に、前記第２のデータ転送レートとして、前記第１のデータ転送レートより低いデータ転送レートを選択し、該選択されたデータ転送レートを満たす圧縮率が設定された前記コーデックによりデータを圧縮しても良い。
また、上記の構成において、前記制御手段は、前記受信手段により前記応答メッセージが所定の時間よりも早く受信された場合に、前記第２のデータ転送レートとして、前記第１のデータ転送レートより高いデータ転送レートを選択し、該選択されたデータ転送レートを満たす圧縮率が設定された前記コーデックによりデータを圧縮しても良い。
【０００９】
本発明に係るプログラムは、コンピュータを、第１の圧縮態様でデータを圧縮する制御手段と、前記圧縮されたデータを、前記通信網を介して前記相手装置へ送信する送信手段と、前記圧縮されたデータを受信した旨を示す応答メッセージを前記相手装置が送信すると、前記応答メッセージを前記通信網を介して受信する受信手段として機能させると共に、前記制御手段を、前記受信手段により受信された応答メッセージの状態に基づいて前記第１の圧縮態様を継続するか否かを判定し、継続しないと判定した場合には第２の圧縮態様を選択して当該第２の圧縮態様でデータを圧縮するように機能させることを特徴とする。
【００１０】
本発明に係るプログラムの別の態様は、コンピュータを、第１のコーデックでデータを圧縮する制御手段と、前記圧縮されたデータを、前記通信網を介して前記相手装置へ送信する送信手段と、前記圧縮されたデータを受信した旨を示す応答メッセージを前記相手装置が送信すると、前記応答メッセージを前記通信網を介して受信する受信手段として機能させると共に、前記制御手段を、前記受信手段により受信された応答メッセージの状態に基づいて前記第１のコーデックによるデータの圧縮を継続するか否かを判定し、継続しないと判定した場合には第２のコーデックを選択して当該第２のコーデックでデータを圧縮するように機能させることを特徴とする。
【００１１】
本発明に係るプログラムの別の態様は、コンピュータを、複数のデータ転送レートが設定可能なコーデックであって、第１のデータ転送レートを満たす圧縮率が設定されたコーデックによりデータを圧縮する制御手段と、前記コーデックにより圧縮されたデータを、前記通信網を介して前記相手装置へ送信する送信手段と、前記圧縮されたデータを受信した旨を示す応答メッセージを前記相手装置が送信すると、前記応答メッセージを前記通信網を介して受信する受信手段として機能させると共に、前記制御手段は、前記受信手段により受信された応答メッセージの状態に基づいて第２のデータ転送レートを選択し、該第２のデータ転送レートを満たす圧縮率が設定された前記コーデックによりデータを圧縮するように機能させることを特徴とする。
【発明の効果】
【００１２】
本発明に係る通信システムおよび通信端末によれば、サーバ装置からクライアント装置へのデータ転送あるいは通信端末間のデータ転送に利用するネットワークの帯域幅を検出することにより、データを支障なく、またネットワークの無駄を生じることなく送信することが可能になる、といった効果を奏する。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照しつつ本発明の一実施形態である通信端末について説明する。
（Ａ：構成）
図１は、本発明の一実施形態である通信端末１００Ａおよび通信端末１００Ｂを含む通信システム１０の構成例を示すブロック図である。図１に示すように、この通信システム１０において通信網２００には、通信端末１００Ａおよび通信端末１００Ｂが有線接続されている。なお、本実施形態では、通信網２００に２台の通信端末が接続されている場合について例示されているが、３台以上の通信端末が接続されているとしても良いことは勿論である。
なお、通信端末１００Ａおよび通信端末１００Ｂは互いに同じ構成からなり、以下では通信端末１００Ａと通信端末１００Ｂを区別する必要が無いときには、両者を通信端末１００と総称する。
【００１４】
通信網２００は例えばインターネットであり、詳細な図示は省略したがルータなどのネットワーク機器を多数含んでいる。この通信網２００は、通信端末１００Ａと通信端末１００Ｂとの間で所定の通信プロトコルにしたがって行われるデータ通信を仲介するためのものである。
【００１５】
本実施形態では、通信プロトコルとして以下に述べる各通信プロトコルが用いられている。すなわち、アプリケーション層の通信プロトコルとしては、Real-time Transport Protocol（以下、「ＲＴＰ」）が用いられており、トランスポート層の通信プロトコルとしては、ＵＤＰが用いられており、ネットワーク層の通信プロトコルとしてはＩＰが用いられている。上記の通信端末１００Ａおよび通信端末１００Ｂには、それぞれにＩＰアドレスが割り振られており、ネットワーク上で一元的に識別される。
なお、本実施形態ではトランスポート層の通信プロトコルとしてＵＤＰを用いる場合について説明するが、ＴＣＰを用いるとしても勿論良い。ＵＤＰとＩＰについては、一般に広く用いられている通信プロトコルであるため説明を省略し、以下ＲＴＰについて説明する。
【００１６】
ＲＴＰとは、リアルタイム特性のある音声データや映像データを end-to-end で送受信する通信サービスを提供するための通信プロトコルであり、その詳細はＲＦＣ１８８９に規定されている。ＲＴＰにおいては、ＲＴＰパケットを生成し送受信することにより通信端末同士でデータの授受が行われる。図３に示すように、ＲＴＰパケットは、ＩＰにおけるデータ転送単位であるパケットやＴＣＰにおけるデータ転送単位であるセグメントと同様に、ヘッダ部とペイロード部とで構成されている。
【００１７】
ヘッダ部には、タイムスタンプ、ペイロードタイプ、およびシーケンス番号の３種類のデータがセットされる。ここで、タイムスタンプとは、時刻（音声通信の開始を指示されてから経過した時間）を示すデータである。ペイロードタイプとは、通信メッセージの種別をその通信メッセージの宛先に識別させるためのデータであり、本実施形態では、“１”、“２”の２種類の数字の何れかが書き込まれる。具体的には、データ送信メッセージについてはメッセージ種別に“１”が書き込まれ、受信通知メッセージについてはメッセージ種別に“２”が書き込まれる。シーケンス番号とは、各パケットを一意に識別するための識別子であり、例えば１つの音声データが複数のＲＴＰパケットに分割されて送信される場合に、各パケットに対して１、２、３…のようにシーケンス番号が付与される。
【００１８】
ペイロード部には、例えばデータ送信メッセージにおいては、所定時間（本実施形態では２０ミリ秒）分の音声データが書き込まれる。また、受信通知メッセージにおいては、受取ったデータ送信メッセージのシーケンス番号および、それぞれのＲＴＰパケットに書き込まれていたタイムスタンプがシーケンス番号と対応付けて書き込まれる。
【００１９】
次に、通信端末１００のハードウェア構成について説明する。
図２は、通信端末１００のハードウェア構成の一例を示すブロック図である。同図に示すように、通信端末１００は、通信ＩＦ部１２と、制御部１３と、記憶部１４と、操作部１５と、表示部１６と、計時部１７と、音声入力部１８と、バス１９と、音声出力部２２とを備えている。
なお以下の説明において、通信端末１００の構成についていずれの通信端末に属するものであるかを区別する必要があるときには、例えば通信端末１００Ａの制御部１３を制御部１３Ａなどのようにアルファベットを付して表す。
【００２０】
制御部１３は、例えばＣＰＵ（Central Processing Unit）であり、後述する記憶部１４に格納されている各種プログラムを実行することにより、本発明に特徴的な動作を行ったり、通信端末１００の各部の動作を制御したりする。
【００２１】
通信ＩＦ部１２は、例えばＮＩＣ（Network Interface Card）であり、通信網２００に有線接続されている。この通信ＩＦ部１２は、制御部１３から引渡されたＲＴＰパケットを下位層の通信プロトコルにしたがって順次カプセル化することにより得られるＩＰパケットを通信網２００へ送出する。なお、カプセル化とは、上記ＲＴＰパケットをペイロード部に書き込んだＵＤＰセグメントを生成し、さらに、そのＵＤＰセグメントをペイロード部に書き込んだＩＰパケットを生成することである。また、通信ＩＦ部１２は、通信網２００を介してＩＰパケットを受信し、上記カプセル化とは逆の処理を行うことにより、そのＩＰパケットにカプセル化されているＲＴＰパケットを読み出して制御部１３へ引渡す。
【００２２】
記憶部１４は、ＲＯＭ（Read Only Memory）１４ａおよびＲＡＭ（Random Access Memory）１４ｂからなる。
ＲＯＭ１４ａは、本発明に特徴的な機能を制御部１３に実現させるためのデータや制御プログラムを格納している。上記制御プログラムの一例として、データの圧縮・伸張を行うソフトウェアであるコーデック（Codec）が挙げられる。コーデックは複数種類（コーデックＡ、Ｂ、Ｃ、およびＤを含む）格納されており、それぞれのコーデックは所定の圧縮率でデータを圧縮すると共に該圧縮率に対応するビットレートでデータを送受信する。また上記データの一例としては、各コーデックとビットレートとの対応づけが書き込まれたリストが挙げられる。図４には、本実施形態におけるリストが示されている。
ＲＡＭ１４ｂは、各種プログラムにしたがって作動している制御部１３によってワークエリアとして利用されたり、音声入力部１８から受取った音声データを記憶したりする。
【００２３】
操作部１５は、たとえばキーボードやマウスなどであり、通信端末１００の操作者が操作部１５を操作して何らかの入力を行った場合に、その操作内容を表すデータを制御部１３へと伝達するためのものである。
表示部１６は、たとえばモニタなどであり、制御部１３による制御下で通信端末１００が有する各種のデータを表示する。
計時部１７は、通信端末１００が音声通信を開始した旨の信号を制御部１３から受信すると経過時間をカウントすると共に、制御部１３からの要求に応じて経過時間を制御部１３に提供する。
【００２４】
音声入力部１８は、マイクロホン２０とアナログ／デジタル（以下、「Ａ／Ｄ」と略記する）変換部２１とを含んでいる。マイクロホン２０は、ユーザの音声を収音しその音声に応じて音声信号（アナログ信号）を生成し、Ａ／Ｄ変換部２１へ出力する。Ａ／Ｄ変換部２１は、マイクロホン２０から引渡された音声信号にＡ／Ｄ変換を施し、その変換結果であるデジタルデータ（以下、音声データ）を制御部１３へ引渡す。
【００２５】
音声出力部２２は、制御部１３から引渡される音声データに応じた音声の再生制御を行うものであり、Ｄ／Ａ変換部２３とスピーカ２４とを含んでいる。Ｄ／Ａ変換部２３は、制御部１３から引渡される音声データのデータ列に対して、Ａ／Ｄ変換部２１と逆の処理（すなわち、Ｄ／Ａ変換）を施すことによって音声信号へ変換しスピーカ２４へ引渡すものである。そして、スピーカ２４は、Ｄ／Ａ変換部２３から引渡された音声信号に応じた音声を放音する。
以上が、通信端末１００のハードウェア構成である。
【００２６】
以上に説明したように、本実施形態に係る通信端末１００の構成は、一般的なコンピュータ装置のハードウェア構成と同一であり、本発明に係る通信端末１００に特徴的な機能は、以下に説明するソフトウェアモジュールにより実現されている。
【００２７】
制御部１３がＲＯＭ１４ａに格納されている制御プログラムを実行することにより通信端末１００に付与される機能は、大きく分けて、（１）往復遅延時間測定機能、（２）データ圧縮率制御機能、（３）ＲＴＰパケット生成機能、（４）ＲＴＰパケット送受信機能、の４つである。以下では通信端末１００Ａが通信端末１００Ｂに音声データの送信を行う場合を例にとって、これらの機能について説明する。
【００２８】
往復遅延時間測定機能とは、制御部１３Ａが相手端末に対してデータを転送してから相手端末から該データを受信した旨のメッセージを受信するのに要した時間（往復遅延時間）を測定する機能である。往復遅延時間を測定する場合はＲＴＣＰ（RTP Control Protocol）のパケットを利用する。
【００２９】
すなわち、通信端末１００Ａは送信者レポート（ＳＲ）にタイムスタンプを書き込んで通信端末１００ＢにＳＲを送信する。通信端末１００Ｂは通信端末１００Ａから受信したＳＲに対して、受信者レポート（ＲＲ）を通信端末１００Ａに返送する。このとき、通信端末１００Ｂは、ＳＲを受取ってからＲＲを返信するまでの時間を計測しその値をＲＲに書き込む。通信端末１００ＡはＲＲを受取ると、ＳＲを送った時間とＲＲを受取った時間の差を計算し、その値からＲＲに書き込まれているＳＲを受取ってからＲＲを返信するまでの時間を差し引いた時間を往復遅延時間として算出する。
【００３０】
次に、データ圧縮率制御機能について説明する。
制御部１３Ａは通信端末１００Ａにインストールされたコーデックを実行することにより、自装置の有する音声データの圧縮を行い、所定の転送レート（ビットレート）でデータを出力する。制御部１３Ａが所定の規則に従って自動的にビットレートを制御する自動モードと、ユーザが手動で制御する手動モードのいずれかを、ユーザは選択することができる。
【００３１】
ユーザが自動モードを選択した場合、制御部１３Ａは以下に説明する規則に従い音声データのビットレートを制御する。
制御部１３Ａは、データ通信を開始する際、ＲＯＭ１４ａＡに格納されたリストを参照して最大のビットレートのコーデックを選択する。ビットレートが大きいということは即ち、通信データの品位が高いことを意味し、通信網２００の条件が許す限り最も望ましい状態であるからである。
【００３２】
次に、このときのビットレートの値をＲＡＭ１４ｂＡに記憶するとともに、ＲＡＭ１４ｂＡに往復遅延時間の初期値を設定する。往復遅延時間の初期値は実際に前述の往復遅延時間測定機能を用いて測定してもよいし、予めＲＯＭ１４ａＡに所定の値を記憶しておき、これを読み出してもよい。
そして、後述するＲＴＰパケット生成機能およびＲＴＰパケット送受信機能を用いて、ＲＴＰパケットによる通常の音声データの通信を行う。
【００３３】
通常のデータ通信において、もしＲＴＰパケットが相手側の端末に到達しない状態（パケットロス）が発生した場合は、制御部１３Ａは、ＲＡＭ１４ｂＡに記憶されたビットレートよりも１段階低いビットレートに切り替える。本実施形態においては、ＲＯＭ１４ａに格納されると共に現在用いられているコーデックよりもビットレートが１段階低いコーデックに切り替えることによって行う。
そして、コーデックを切り替えた後の往復遅延時間を測定し、ＲＡＭ１４ｂＡの往復遅延時間の値を測定値で書き換える。
【００３４】
一方、パケットロスが発生していない場合は、前述の往復遅延時間測定機能を用いて往復遅延時間を測定する。測定した往復遅延時間がＲＡＭ１４ｂＡに記憶してある往復遅延時間よりも所定の割合以上小さかった場合は、１段階高いビットレートに切り替える。本実施形態においては、ＲＯＭ１４ａに格納されると共に現在用いられているコーデックよりもビットレートが１段階高いコーデックに切り替えることによって行う。
そして、コーデックを切り替えた後の往復遅延時間を測定し、ＲＡＭ１４ｂＡの往復遅延時間の値を測定値で書き換える。
【００３５】
なお、ユーザが手動モードを選択した場合には、表示部１６Ａに表示された利用可能な帯域幅の値を参照するなどして、ユーザは操作部１５Ａから音声データのビットレートを指定する数字を入力する。
以上がデータ圧縮率制御機能である。
【００３６】
次に、ＲＴＰパケット生成機能について説明する。
マイクロホン２０Ａは、ユーザの音声からアナログ方式の音声信号を生成する。該音声信号は、Ａ／Ｄ変換部２１によりデジタル方式の音声データに変換され、変換された音声データはＲＡＭ１４ｂＡに書き込まれる。制御部１３Ａは、ＲＡＭ１４ｂＡに書き込まれた音声データを所定時間（本実施形態においては２０ミリ秒）分ずつ順次読み出し、上記所定時間分の音声データについて、以上に述べた音声データの圧縮を行う。圧縮が施された所定時間分の音声データは図３に示されるようにＲＴＰヘッダを付与され、ＲＴＰパケットが生成される。生成されたＲＴＰパケットは、通信ＩＦ部１２に受け渡される。
以上が、ＲＴＰパケット生成機能である。
【００３７】
最後に、ＲＴＰパケットの送受信機能について説明する。
生成されたＲＴＰパケットを制御部１３Ａから受取った通信ＩＦ部１２Ａは、ＲＴＰパケットを下位層の通信プロトコルへ引渡すことによってＲＴＰパケットの送信を行う。一方、ＲＴＰパケットを受取った通信端末１００Ｂにおいて、制御部１３Ｂは下位層から受取ったＲＴＰパケットのペイロード部を切り出す。
以上がＲＴＰパケット送受信機能である。
【００３８】
（Ｂ：動作）
次に、通信端末１００が行う動作について図面を参照しつつ説明する。
以下では、通信端末１００Ａのユーザ（以下、「ユーザＡ」と呼ぶ）と通信端末１００Ｂのユーザ（以下、「ユーザＢ」と呼ぶ）とが双方向に音声データ通信を行い、遠隔会議を行っている状況下で、ユーザＡが発言し、ユーザＢがユーザＡの発言を聴く場合に通信端末１００が行う動作を説明する。
【００３９】
通信端末１００Ａは、本動作の開始時には、まず利用可能な最大の帯域幅で音声データの送信を行っているものとする。
また、通信網２００は図示せぬ複数の通信端末により利用されていることから、通信端末１００Ａが通信端末１００Ｂとの間で音声データの送受信に利用するネットワーク回線の利用可能な帯域幅は時々刻々と変動しているものとする。
【００４０】
まず、通信端末１００Ａから通信端末１００Ｂへ音声データの送信が支障なく（パケットロスやタイムアウトが生じることなく）行われている場合について、図５を参照して説明する。
マイクロホン２０Ａは、ユーザＡにより音声を吹き込まれると、該音声を表す音声信号を生成し、Ａ／Ｄ変換部２１Ａは該音声信号を音声データに変換する。制御部１３Ａは、ＲＴＰパケット生成機能により該音声データからＲＴＰパケットを生成し、通信端末１００Ｂに対して転送する（ステップＳＡ１００）。このとき制御部１３Ａは、全てのパケットに対して送信時刻を表すタイムスタンプを付与する。また制御部１３Ａは、各パケットを送信後、送信したパケットのシーケンス番号をＲＡＭ１４ｂに書き込む。このようにして、音声データは通信端末１００Ａから通信網２００を介して通信端末１００Ｂへ到達する。
通信端末１００Ｂは該パケットを受信する。制御部１３Ｂは受信したパケットのシーケンス番号およびそれぞれのパケットに対し付与されていたタイムスタンプに関するデータを含む受信通知メッセージを通信端末１００Ａに対して返信する。受信通知メッセージは、通信端末１００Ｂから通信網２００を介して通信端末１００Ａへ到達する。
【００４１】
制御部１３Ａは、上記受信通知メッセージを受信すると（ステップＳＡ２００）、ペイロード部に書き込まれたシーケンス番号と、送信したＲＴＰパケットのシーケンス番号を比較することにより、パケットロスが発生したかどうか判定する（ステップＳＡ３００）。パケットロスが発生した場合（ステップＳＡ３００；“Ｙｅｓ”）、ステップＳＡ８００においてデータ欠損対応処理を行う。このデータ欠損処理については、後に詳細に説明する。一方、パケットロスが発生していない場合（ステップＳＡ３００；“Ｎｏ）、ステップＳＡ４００以降の動作を行う。音声データの送信が支障なく実行されている場合には、ステップＳＡ３００の判定結果は“Ｎｏ”となり、ステップＳＡ４００以降の処理が実行される。ステップＳＡ４００において、制御部１３Ａは、往復遅延時間測定機能により往復遅延時間を測定する。制御部１３Ａは、測定された往復遅延時間がＲＡＭ１４ｂＡに記憶されたコーデック切り替え直後の往復遅延時間に対して、予め決められた規定値以下であるかどうか判定を行う（ステップＳＡ５００）。この規定値は例えば、ＲＡＭ１４ｂＡに記憶されたコーデック切り替え直後の往復遅延時間の６０％とする。
【００４２】
ステップＳＡ５００の判定結果が“Ｙｅｓ”の場合、制御部１３Ａは通信最適化処理を行い（ステップＳＡ６００）、その後ステップＳＡ７００へ進む。なお、ステップＳＡ６００の通信最適化処理については、後に詳細に説明する。一方、ステップＳＡ５００の判定結果が“Ｎｏ”の場合には、そのままステップＳＡ７００へ進む。ステップＳＡ７００では、制御部１３Ａは、データ通信が完了したかどうかを判定する。データ送信が完了していない場合（ステップＳＡ７００；“Ｎｏ”）には、制御部１３Ａは、ステップＳＡ１００に戻ることにより、未送信データの送信を引き続き行う。一方、データ通信が完了した場合（ステップＳＡ７００；“Ｙｅｓ”）には、制御部１３Ａは処理を終了する。
【００４３】
ここで、ステップＳＡ６００の通信最適化処理の詳細について、図６に示すフローチャートを参照して説明する。まずステップＳＡ６１０において、現時点で用いられているコーデックより高いビットレートに対応するコーデックがあるか否かを、リストを参照して判定する。ステップＳＡ６１０の判定結果が“Ｙｅｓ”の場合には、制御部１３Ａはコーデックを切り替えて音声データの転送レートを増大させ（ステップＳＡ６２０）、続いて往復遅延時間を測定し（ステップＳＡ６３０）、コーデック切り替え直後の転送レート（ビットレート）と測定した往復遅延時間をＲＡＭ１４ｂＡに記憶させ（ステップＳＡ６４０），処理を終了する。一方ステップＳＡ６１０の判定結果が“Ｎｏ”の場合には、制御部１３Ａは処理を終了する。
【００４４】
データ欠損が発生していない状況においても、往復遅延時間が十分小さいときには利用可能な帯域幅を有効に利用していない可能性があるが、上記の通信最適化処理により検出されたネットワーク状況に合わせてデータ通信を行うことができる。
なお制御部１３Ａはデータ通信を行う度に通信最適化処理を行うが、データ通信を行わない場合にも以上に説明した通信最適化処理を一定時間置きに実行する。その結果、時々刻々と状況が変化するネットワークを無駄なく利用してデータの転送を行うことが可能になる。
【００４５】
次いで、データの送信の際にデータ欠損（パケットロスなど）が発生した場合の通信端末１００Ａの動作、すなわち図５におけるステップＳＡ８００のデータ欠損対応処理について図７に示すフローチャートを用いて説明する。
【００４６】
まず制御部１３Ａは、ＲＡＭ１４ｂＡおよびリストを参照して、現時点で用いられているコーデックより低いビットレートに対応するコーデックがあるか否かを判定する（ステップＳＡ８１０）。ステップＳＡ８１０の判定結果が“Ｙｅｓ”場合には、制御部１３Ａは、一段階低いビットレートのコーデックに切り替えてデータ転送レートを減少させる（ステップＳＡ８２０）。次に制御部１３Ａは、コーデック切り替え直後の往復遅延時間を測定する（ステップＳＡ８３０）。さらに制御部１３Ａは、測定した往復遅延時間とコーデック切り替え直後のビットレートの値をＲＡＭ１４ｂＡに記憶して（ステップＳＡ８４０）、データ欠損対応処理を終了する。ステップＳＡ８１０の判定結果が“Ｎｏ”場合には、制御部１３Ａはデータ欠損対応処理を終了する。
【００４７】
制御部１３Ａは、パケットロスが発生したときにデータ欠損対応処理を実行することにより、適切なデータ転送率を適宜設定し支障なくデータの転送を行うことが可能になる。
【００４８】
（Ｃ：変形）
以上、本発明の実施形態について説明したが、本発明は以下に述べる種々の形態で実施することができる。
【００４９】
（１）上記実施例において、往復遅延時間測定機能、データ圧縮率制御機能、ＲＴＰパケット生成機能、ＲＴＰパケットの送受信機能の各機能は、通信端末に対して設けられていたが、設置対象はもちろん通信端末に限定されない。たとえば、音声データや映像データのストリーミング配信を行うデータ配信サーバに本発明を適用するとしても良い。要は、データ通信を行う電子機器であればよい。そのような場合には、電子機器において、音声入力部１８に代えて音声データや映像データが記憶されている記憶装置を設置しそれらのデータを適宜読み出すようにすればよい。
【００５０】
（２）上記実施例においては、本発明に係る通信端末に特徴的な機能をソフトウェアモジュールで実現する場合について説明したが、上記各機能を担っているハードウェアモジュールを組み合わせて本発明に係る通信端末を構成するようにしても良い。
【００５１】
（３）上述した実施形態では、アプリケーション層の通信プロトコルとしてＲＴＰを用いる場合について説明したが、他の通信プロトコルを用いても良いことは勿論である。要は、所定のヘッダ部とペイロード部とを有するデータブロックのペイロード部に、音声データを所定時間分ずつ書き込んで送信する通信プロトコルであれば、どのような通信プロトコルであっても良い。また、上述した実施形態では、トランスポート層の通信プロトコルとしてＵＤＰを用いる場合について説明したが、ＴＣＰを用いるようにしても良い。同様にネットワーク層の通信プロトコルがＩＰに限定されるものではない。
【００５２】
（４）上述した実施形態では、音声データの送受信を行う場合について説明したが、データの種類は音声データに限られるものではなく、動画データなど、どのような種類のデータでも良い。
【００５３】
（５）上記実施形態では、通信端末１００Ａおよび通信端末１００Ｂが通信網２００に有線接続されている場合について説明したが、通信網２００が例えば無線ＬＡＮ（Local Area Network）などの無線パケット通信網であり、通信端末１００Ａおよび通信端末１００Ｂが、この無線パケット通信網に接続されていても勿論良い。また、上記実施形態では通信網２００がインターネットである場合について説明したが、ＬＡＮであっても良いことは勿論である。要は、所定の通信プロトコルにしたがって行われる通信を仲介する機能を備えた通信網であれば、どのような通信網であっても良い。
【００５４】
（６）上記実施形態では、本発明に係る通信装置に特徴的な機能を制御部１３に実現させるための制御プログラムをＲＯＭ１４ａに予め書き込んでおく場合について説明したが、ＣＤ−ＲＯＭやＤＶＤなどのコンピュータ装置読み取り可能な記録媒体に上記制御プログラムを記録して配布するとしても良く、インターネットなどの電気通信回線経由のダウンロードにより上記制御プログラムを配布するようにしても勿論良い。
【００５５】
（７）上記実施形態では、パケットのロスが発生したか否かを検出する場合について説明したが、データ欠損の検出対象となるデータブロックはパケットに限定されず、セグメントや、フレームでもよい。
【００５６】
（８）上記実施形態では、図４に示すように、ＲＯＭ１４ａに格納されるリストにおいては、複数種類のコーデックと、該コーデックの各々が実現可能なビットレートの値とが対応づけられている場合について説明した。しかし、該リストに代えて、ビットレートの値によりコーデックを序列化したデータが格納されていても良い。そのようにした場合でも、ステップＳＡ６１０およびステップＳＡ８１０においては、現在用いられているコーデックよりも高い、または低いビットレートのコーデックがあるか否かを判定することが可能である。そして、ステップＳＡ６２０およびステップＳＡ８２０においては、現在用いられているコーデックよりも１段階高い、または１段階低いビットレートのコーデックを選択することが可能である。
【００５７】
（９）上記実施形態では、用いられるコーデックを切り替えることによりビットレートの切り替えを行う場合について説明した（ステップＳＡ６２０、ステップＳＡ８２０）。しかし、コーデックの種類を変更することなく、ビットレートに係る設定を変更することによってビットレートの切り替えを行っても良い。
その場合、複数のビットレートの設定が可能なコーデックプログラムをＲＯＭ１４ａに格納しておき用いれば良い。そして、ステップＳＡ６１０での判定内容を、「現時点で用いられているコーデックにおいて、より高いビットレートを設定することは可能か」としても良い。その場合、ステップＳＡ６１０の判定結果が“Ｙｅｓ”の場合には、ステップＳＡ６２０において、制御部１３Ａは、その時点で用いられているコーデックのビットレートに係る設定を切り替えてビットレートを増大させる。すなわち、コーデックに設定されている圧縮率を低くする。また、ステップＳＡ８１０での判定内容を、「現時点で用いられているコーデックにおいて、より低いビットレートを設定することは可能か」としても良い。その場合、ステップＳＡ８１０の判定結果が“Ｙｅｓ”の場合には、ステップＳＡ８２０において、制御部１３Ａは、その時点で用いられているコーデックのビットレートに係る設定を切り替えてビットレートを減少させる。すなわち、コーデックに設定される圧縮率を高くする。
以上に説明したように、ビットレートを切り替えるために、用いられるコーデックを切り替えても良いし、コーデックの種類を変更することなくビットレートに係る設定を変更しても良い。要はデータの圧縮態様を変えることによりビットレートを制御すれば良い。
【００５８】
（１０）上記実施形態においては、音声データを圧縮・展開（エンコード/デコード）するプログラムとしてコーデックを用いる場合について説明したが、プログラムの種類はコーデックに限られるものではない。例えば、音声データの圧縮のみを実行するプログラムなど、コーデック以外の圧縮プログラムを用いても良い。
【図面の簡単な説明】
【００５９】
【図１】本発明の１実施形態に係る通信端末が接続された通信システムの構成を示すブロック図である。
【図２】通信端末１００の構成を示すブロック図である。
【図３】ＲＴＰパケットの構成を示す図である。
【図４】コーデックとデータ転送レート（ビットレート）を対応付けるリストである。
【図５】データ転送の流れを示すフローチャートである。
【図６】通信最適化処理の流れを示すフローチャートである。
【図７】データ欠損対応処理の流れを示すフローチャートである。
【符号の説明】
【００６０】
１０…通信システム、１２…通信ＩＦ部、１３…制御部、１４…記憶部（１４ａ；ＲＯＭ、１４ｂ；ＲＡＭ）、１５…操作部、１６…表示部、１７…計時部、１８…音声入力部、１９…バス、２０…マイクロホン、２１…Ａ／Ｄ変換部、２２…音声出力部、２３…Ｄ／Ａ変換部、２４…スピーカ、１００，１００Ａ，１００Ｂ…通信端末、２００…通信網
【図１】
2008099261.tif 000003
【図２】
2008099261.tif 000004
【図３】
2008099261.tif 000005
【図４】
2008099261.tif 000006
【図５】
2008099261.tif 000007
【図６】
2008099261.tif 000008
【図７】
2008099261.tif 000009