説明

通信装置およびプログラム

【課題】サーバ装置とクライアント装置間あるいは通信端末同士でデータを転送する際、データ転送レートは利用可能な帯域幅やそのデータの用途などに応じて、ネットワークに無駄を生じないように設定する。
【解決手段】制御部は、データの転送にあたり生じるパケットロスを検出し、パケットロスが検出された場合には、データ転送レートの低い圧縮態様を選択する。一方、パケットロスが発生していない状況においても、データの転送に必要とされた時間(往復遅延時間)を測定し、該往復遅延時間が十分小さい場合には、データ転送レートの高い圧縮態様を選択する。上記圧縮態様の選択方法として、例えば別のコーデックへ切り替えたり、コーデックに設定された圧縮率を変更したりする方法を用いる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信装置およびプログラムに関する。
【背景技術】
【0002】
楽曲や動画のストリーミング配信のように、楽曲データや動画データを通信網経由で、パーソナルコンピュータなどのクライアント装置へ配信し、それらデータに応じた楽曲や動画をそのクライアント装置において再生させる技術が一般に普及している(非特許文献1)。
この種のデータ通信においては、サーバ装置はデータを所定サイズに分割したパケットを所定のタイミングで送信することが一般的であるから、クライアント装置に例えば動画を支障なく(途切れたり、画質の劣化を生じさせたりすること無く)再生させるためには、単位時間あたりの送信データ量(以後、データ転送レート)を一定以上確保することが必要となる。
【非特許文献1】RFC1889:[online]インターネット<URL:http://www.ietf.org/rfc/rfc1889.txt>
【発明の開示】
【発明が解決しようとする課題】
【0003】
ネットワークにより利用可能な帯域幅(単位時間あたりの送信データ量)には限界があることから、個々のクライアント装置に対するデータ転送レートは、利用可能な帯域幅やそのデータの用途などに応じて、ネットワークに無駄を生じないように設定する技術が必要とされていた。
本発明は、上記の需要に応じてなされたものであり、サーバ装置からクライアント装置へのデータ転送あるいは通信端末間のデータ転送に利用するネットワークの帯域幅を検出することにより、データを支障なく、またネットワークの無駄を生じることなく送信する技術を提供することを目的とする。
【課題を解決するための手段】
【0004】
本発明に係る通信装置は、通信網を介して相手装置と通信する通信装置であって、第1の圧縮態様でデータを圧縮する制御手段と、前記圧縮されたデータを、前記通信網を介して前記相手装置へ送信する送信手段と、前記圧縮されたデータを受信した旨を示す応答メッセージを前記相手装置が送信すると、前記応答メッセージを前記通信網を介して受信する受信手段とを備え、前記制御手段は、前記受信手段により受信された応答メッセージの状態に基づいて前記第1の圧縮態様を継続するか否かを判定し、継続しないと判定した場合には第2の圧縮態様を選択して当該第2の圧縮態様でデータを圧縮することを特徴とする。
【0005】
本発明に係る別の通信装置は、通信網を介して相手装置と通信する通信装置であって、第1のコーデックでデータを圧縮する制御手段と、前記圧縮されたデータを、前記通信網を介して前記相手装置へ送信する送信手段と、前記圧縮されたデータを受信した旨を示す応答メッセージを前記相手装置が送信すると、前記応答メッセージを前記通信網を介して受信する受信手段とを備え、前記制御手段は、前記受信手段により受信された応答メッセージの状態に基づいて前記第1のコーデックによるデータの圧縮を継続するか否かを判定し、継続しないと判定した場合には第2のコーデックを選択して当該第2のコーデックでデータを圧縮することを特徴とする。
【0006】
本発明に係る通信装置は、上記の構成において、コーデックと、該コーデックに設定する転送レートとを対応付けるテーブルを記憶する記憶手段を備え、前記制御手段は、前記受信手段により前記応答メッセージが受信されない場合に、前記テーブルにおいて前記第1のコーデックより低い転送レートと対応付けられたコーデックを前記第2のコーデックとして選択し、該第2のコーデックでデータを圧縮しても良い。
また、上記の構成において、コーデックと、該コーデックに設定する転送レートとを対応付けるテーブルを記憶する記憶手段を備え、前記制御手段は、前記受信手段により前記応答メッセージが所定の時間よりも早く受信された場合に、前記テーブルにおいて前記第1のコーデックより高い転送レートと対応付けられたコーデックを前記第2のコーデックとして選択し、該第2のコーデックでデータを圧縮しても良い。
【0007】
本発明に係る通信装置は、通信網を介して相手装置と通信する通信装置であって、複数のデータ転送レートが設定可能なコーデックであって、第1のデータ転送レートを満たす圧縮率が設定されたコーデックによりデータを圧縮する制御手段と、前記コーデックにより圧縮されたデータを、前記通信網を介して前記相手装置へ送信する送信手段と、前記圧縮されたデータを受信した旨を示す応答メッセージを前記相手装置が送信すると、前記応答メッセージを前記通信網を介して受信する受信手段とを備え、前記制御手段は、前記受信手段により受信された応答メッセージの状態に基づいて第2のデータ転送レートを選択し、該第2のデータ転送レートを満たす圧縮率が設定された前記コーデックによりデータを圧縮することを特徴とする。
【0008】
本発明に係る通信装置は、上記の構成において、前記制御手段は、前記受信手段により前記応答メッセージが受信されない場合に、前記第2のデータ転送レートとして、前記第1のデータ転送レートより低いデータ転送レートを選択し、該選択されたデータ転送レートを満たす圧縮率が設定された前記コーデックによりデータを圧縮しても良い。
また、上記の構成において、前記制御手段は、前記受信手段により前記応答メッセージが所定の時間よりも早く受信された場合に、前記第2のデータ転送レートとして、前記第1のデータ転送レートより高いデータ転送レートを選択し、該選択されたデータ転送レートを満たす圧縮率が設定された前記コーデックによりデータを圧縮しても良い。
【0009】
本発明に係るプログラムは、コンピュータを、第1の圧縮態様でデータを圧縮する制御手段と、前記圧縮されたデータを、前記通信網を介して前記相手装置へ送信する送信手段と、前記圧縮されたデータを受信した旨を示す応答メッセージを前記相手装置が送信すると、前記応答メッセージを前記通信網を介して受信する受信手段として機能させると共に、前記制御手段を、前記受信手段により受信された応答メッセージの状態に基づいて前記第1の圧縮態様を継続するか否かを判定し、継続しないと判定した場合には第2の圧縮態様を選択して当該第2の圧縮態様でデータを圧縮するように機能させることを特徴とする。
【0010】
本発明に係るプログラムの別の態様は、コンピュータを、第1のコーデックでデータを圧縮する制御手段と、前記圧縮されたデータを、前記通信網を介して前記相手装置へ送信する送信手段と、前記圧縮されたデータを受信した旨を示す応答メッセージを前記相手装置が送信すると、前記応答メッセージを前記通信網を介して受信する受信手段として機能させると共に、前記制御手段を、前記受信手段により受信された応答メッセージの状態に基づいて前記第1のコーデックによるデータの圧縮を継続するか否かを判定し、継続しないと判定した場合には第2のコーデックを選択して当該第2のコーデックでデータを圧縮するように機能させることを特徴とする。
【0011】
本発明に係るプログラムの別の態様は、コンピュータを、複数のデータ転送レートが設定可能なコーデックであって、第1のデータ転送レートを満たす圧縮率が設定されたコーデックによりデータを圧縮する制御手段と、前記コーデックにより圧縮されたデータを、前記通信網を介して前記相手装置へ送信する送信手段と、前記圧縮されたデータを受信した旨を示す応答メッセージを前記相手装置が送信すると、前記応答メッセージを前記通信網を介して受信する受信手段として機能させると共に、前記制御手段は、前記受信手段により受信された応答メッセージの状態に基づいて第2のデータ転送レートを選択し、該第2のデータ転送レートを満たす圧縮率が設定された前記コーデックによりデータを圧縮するように機能させることを特徴とする。
【発明の効果】
【0012】
本発明に係る通信システムおよび通信端末によれば、サーバ装置からクライアント装置へのデータ転送あるいは通信端末間のデータ転送に利用するネットワークの帯域幅を検出することにより、データを支障なく、またネットワークの無駄を生じることなく送信することが可能になる、といった効果を奏する。
【発明を実施するための最良の形態】
【0013】
以下、図面を参照しつつ本発明の一実施形態である通信端末について説明する。
(A:構成)
図1は、本発明の一実施形態である通信端末100Aおよび通信端末100Bを含む通信システム10の構成例を示すブロック図である。図1に示すように、この通信システム10において通信網200には、通信端末100Aおよび通信端末100Bが有線接続されている。なお、本実施形態では、通信網200に2台の通信端末が接続されている場合について例示されているが、3台以上の通信端末が接続されているとしても良いことは勿論である。
なお、通信端末100Aおよび通信端末100Bは互いに同じ構成からなり、以下では通信端末100Aと通信端末100Bを区別する必要が無いときには、両者を通信端末100と総称する。
【0014】
通信網200は例えばインターネットであり、詳細な図示は省略したがルータなどのネットワーク機器を多数含んでいる。この通信網200は、通信端末100Aと通信端末100Bとの間で所定の通信プロトコルにしたがって行われるデータ通信を仲介するためのものである。
【0015】
本実施形態では、通信プロトコルとして以下に述べる各通信プロトコルが用いられている。すなわち、アプリケーション層の通信プロトコルとしては、Real-time Transport Protocol(以下、「RTP」)が用いられており、トランスポート層の通信プロトコルとしては、UDPが用いられており、ネットワーク層の通信プロトコルとしてはIPが用いられている。上記の通信端末100Aおよび通信端末100Bには、それぞれにIPアドレスが割り振られており、ネットワーク上で一元的に識別される。
なお、本実施形態ではトランスポート層の通信プロトコルとしてUDPを用いる場合について説明するが、TCPを用いるとしても勿論良い。UDPとIPについては、一般に広く用いられている通信プロトコルであるため説明を省略し、以下RTPについて説明する。
【0016】
RTPとは、リアルタイム特性のある音声データや映像データを end-to-end で送受信する通信サービスを提供するための通信プロトコルであり、その詳細はRFC1889に規定されている。RTPにおいては、RTPパケットを生成し送受信することにより通信端末同士でデータの授受が行われる。図3に示すように、RTPパケットは、IPにおけるデータ転送単位であるパケットやTCPにおけるデータ転送単位であるセグメントと同様に、ヘッダ部とペイロード部とで構成されている。
【0017】
ヘッダ部には、タイムスタンプ、ペイロードタイプ、およびシーケンス番号の3種類のデータがセットされる。ここで、タイムスタンプとは、時刻(音声通信の開始を指示されてから経過した時間)を示すデータである。ペイロードタイプとは、通信メッセージの種別をその通信メッセージの宛先に識別させるためのデータであり、本実施形態では、“1”、“2”の2種類の数字の何れかが書き込まれる。具体的には、データ送信メッセージについてはメッセージ種別に“1”が書き込まれ、受信通知メッセージについてはメッセージ種別に“2”が書き込まれる。シーケンス番号とは、各パケットを一意に識別するための識別子であり、例えば1つの音声データが複数のRTPパケットに分割されて送信される場合に、各パケットに対して1、2、3…のようにシーケンス番号が付与される。
【0018】
ペイロード部には、例えばデータ送信メッセージにおいては、所定時間(本実施形態では20ミリ秒)分の音声データが書き込まれる。また、受信通知メッセージにおいては、受取ったデータ送信メッセージのシーケンス番号および、それぞれのRTPパケットに書き込まれていたタイムスタンプがシーケンス番号と対応付けて書き込まれる。
【0019】
次に、通信端末100のハードウェア構成について説明する。
図2は、通信端末100のハードウェア構成の一例を示すブロック図である。同図に示すように、通信端末100は、通信IF部12と、制御部13と、記憶部14と、操作部15と、表示部16と、計時部17と、音声入力部18と、バス19と、音声出力部22とを備えている。
なお以下の説明において、通信端末100の構成についていずれの通信端末に属するものであるかを区別する必要があるときには、例えば通信端末100Aの制御部13を制御部13Aなどのようにアルファベットを付して表す。
【0020】
制御部13は、例えばCPU(Central Processing Unit)であり、後述する記憶部14に格納されている各種プログラムを実行することにより、本発明に特徴的な動作を行ったり、通信端末100の各部の動作を制御したりする。
【0021】
通信IF部12は、例えばNIC(Network Interface Card)であり、通信網200に有線接続されている。この通信IF部12は、制御部13から引渡されたRTPパケットを下位層の通信プロトコルにしたがって順次カプセル化することにより得られるIPパケットを通信網200へ送出する。なお、カプセル化とは、上記RTPパケットをペイロード部に書き込んだUDPセグメントを生成し、さらに、そのUDPセグメントをペイロード部に書き込んだIPパケットを生成することである。また、通信IF部12は、通信網200を介してIPパケットを受信し、上記カプセル化とは逆の処理を行うことにより、そのIPパケットにカプセル化されているRTPパケットを読み出して制御部13へ引渡す。
【0022】
記憶部14は、ROM(Read Only Memory)14aおよびRAM(Random Access Memory)14bからなる。
ROM14aは、本発明に特徴的な機能を制御部13に実現させるためのデータや制御プログラムを格納している。上記制御プログラムの一例として、データの圧縮・伸張を行うソフトウェアであるコーデック(Codec)が挙げられる。コーデックは複数種類(コーデックA、B、C、およびDを含む)格納されており、それぞれのコーデックは所定の圧縮率でデータを圧縮すると共に該圧縮率に対応するビットレートでデータを送受信する。また上記データの一例としては、各コーデックとビットレートとの対応づけが書き込まれたリストが挙げられる。図4には、本実施形態におけるリストが示されている。
RAM14bは、各種プログラムにしたがって作動している制御部13によってワークエリアとして利用されたり、音声入力部18から受取った音声データを記憶したりする。
【0023】
操作部15は、たとえばキーボードやマウスなどであり、通信端末100の操作者が操作部15を操作して何らかの入力を行った場合に、その操作内容を表すデータを制御部13へと伝達するためのものである。
表示部16は、たとえばモニタなどであり、制御部13による制御下で通信端末100が有する各種のデータを表示する。
計時部17は、通信端末100が音声通信を開始した旨の信号を制御部13から受信すると経過時間をカウントすると共に、制御部13からの要求に応じて経過時間を制御部13に提供する。
【0024】
音声入力部18は、マイクロホン20とアナログ/デジタル(以下、「A/D」と略記する)変換部21とを含んでいる。マイクロホン20は、ユーザの音声を収音しその音声に応じて音声信号(アナログ信号)を生成し、A/D変換部21へ出力する。A/D変換部21は、マイクロホン20から引渡された音声信号にA/D変換を施し、その変換結果であるデジタルデータ(以下、音声データ)を制御部13へ引渡す。
【0025】
音声出力部22は、制御部13から引渡される音声データに応じた音声の再生制御を行うものであり、D/A変換部23とスピーカ24とを含んでいる。D/A変換部23は、制御部13から引渡される音声データのデータ列に対して、A/D変換部21と逆の処理(すなわち、D/A変換)を施すことによって音声信号へ変換しスピーカ24へ引渡すものである。そして、スピーカ24は、D/A変換部23から引渡された音声信号に応じた音声を放音する。
以上が、通信端末100のハードウェア構成である。
【0026】
以上に説明したように、本実施形態に係る通信端末100の構成は、一般的なコンピュータ装置のハードウェア構成と同一であり、本発明に係る通信端末100に特徴的な機能は、以下に説明するソフトウェアモジュールにより実現されている。
【0027】
制御部13がROM14aに格納されている制御プログラムを実行することにより通信端末100に付与される機能は、大きく分けて、(1)往復遅延時間測定機能、(2)データ圧縮率制御機能、(3)RTPパケット生成機能、(4)RTPパケット送受信機能、の4つである。以下では通信端末100Aが通信端末100Bに音声データの送信を行う場合を例にとって、これらの機能について説明する。
【0028】
往復遅延時間測定機能とは、制御部13Aが相手端末に対してデータを転送してから相手端末から該データを受信した旨のメッセージを受信するのに要した時間(往復遅延時間)を測定する機能である。往復遅延時間を測定する場合はRTCP(RTP Control Protocol)のパケットを利用する。
【0029】
すなわち、通信端末100Aは送信者レポート(SR)にタイムスタンプを書き込んで通信端末100BにSRを送信する。通信端末100Bは通信端末100Aから受信したSRに対して、受信者レポート(RR)を通信端末100Aに返送する。このとき、通信端末100Bは、SRを受取ってからRRを返信するまでの時間を計測しその値をRRに書き込む。通信端末100AはRRを受取ると、SRを送った時間とRRを受取った時間の差を計算し、その値からRRに書き込まれているSRを受取ってからRRを返信するまでの時間を差し引いた時間を往復遅延時間として算出する。
【0030】
次に、データ圧縮率制御機能について説明する。
制御部13Aは通信端末100Aにインストールされたコーデックを実行することにより、自装置の有する音声データの圧縮を行い、所定の転送レート(ビットレート)でデータを出力する。制御部13Aが所定の規則に従って自動的にビットレートを制御する自動モードと、ユーザが手動で制御する手動モードのいずれかを、ユーザは選択することができる。
【0031】
ユーザが自動モードを選択した場合、制御部13Aは以下に説明する規則に従い音声データのビットレートを制御する。
制御部13Aは、データ通信を開始する際、ROM14aAに格納されたリストを参照して最大のビットレートのコーデックを選択する。ビットレートが大きいということは即ち、通信データの品位が高いことを意味し、通信網200の条件が許す限り最も望ましい状態であるからである。
【0032】
次に、このときのビットレートの値をRAM14bAに記憶するとともに、RAM14bAに往復遅延時間の初期値を設定する。往復遅延時間の初期値は実際に前述の往復遅延時間測定機能を用いて測定してもよいし、予めROM14aAに所定の値を記憶しておき、これを読み出してもよい。
そして、後述するRTPパケット生成機能およびRTPパケット送受信機能を用いて、RTPパケットによる通常の音声データの通信を行う。
【0033】
通常のデータ通信において、もしRTPパケットが相手側の端末に到達しない状態(パケットロス)が発生した場合は、制御部13Aは、RAM14bAに記憶されたビットレートよりも1段階低いビットレートに切り替える。本実施形態においては、ROM14aに格納されると共に現在用いられているコーデックよりもビットレートが1段階低いコーデックに切り替えることによって行う。
そして、コーデックを切り替えた後の往復遅延時間を測定し、RAM14bAの往復遅延時間の値を測定値で書き換える。
【0034】
一方、パケットロスが発生していない場合は、前述の往復遅延時間測定機能を用いて往復遅延時間を測定する。測定した往復遅延時間がRAM14bAに記憶してある往復遅延時間よりも所定の割合以上小さかった場合は、1段階高いビットレートに切り替える。本実施形態においては、ROM14aに格納されると共に現在用いられているコーデックよりもビットレートが1段階高いコーデックに切り替えることによって行う。
そして、コーデックを切り替えた後の往復遅延時間を測定し、RAM14bAの往復遅延時間の値を測定値で書き換える。
【0035】
なお、ユーザが手動モードを選択した場合には、表示部16Aに表示された利用可能な帯域幅の値を参照するなどして、ユーザは操作部15Aから音声データのビットレートを指定する数字を入力する。
以上がデータ圧縮率制御機能である。
【0036】
次に、RTPパケット生成機能について説明する。
マイクロホン20Aは、ユーザの音声からアナログ方式の音声信号を生成する。該音声信号は、A/D変換部21によりデジタル方式の音声データに変換され、変換された音声データはRAM14bAに書き込まれる。制御部13Aは、RAM14bAに書き込まれた音声データを所定時間(本実施形態においては20ミリ秒)分ずつ順次読み出し、上記所定時間分の音声データについて、以上に述べた音声データの圧縮を行う。圧縮が施された所定時間分の音声データは図3に示されるようにRTPヘッダを付与され、RTPパケットが生成される。生成されたRTPパケットは、通信IF部12に受け渡される。
以上が、RTPパケット生成機能である。
【0037】
最後に、RTPパケットの送受信機能について説明する。
生成されたRTPパケットを制御部13Aから受取った通信IF部12Aは、RTPパケットを下位層の通信プロトコルへ引渡すことによってRTPパケットの送信を行う。一方、RTPパケットを受取った通信端末100Bにおいて、制御部13Bは下位層から受取ったRTPパケットのペイロード部を切り出す。
以上がRTPパケット送受信機能である。
【0038】
(B:動作)
次に、通信端末100が行う動作について図面を参照しつつ説明する。
以下では、通信端末100Aのユーザ(以下、「ユーザA」と呼ぶ)と通信端末100Bのユーザ(以下、「ユーザB」と呼ぶ)とが双方向に音声データ通信を行い、遠隔会議を行っている状況下で、ユーザAが発言し、ユーザBがユーザAの発言を聴く場合に通信端末100が行う動作を説明する。
【0039】
通信端末100Aは、本動作の開始時には、まず利用可能な最大の帯域幅で音声データの送信を行っているものとする。
また、通信網200は図示せぬ複数の通信端末により利用されていることから、通信端末100Aが通信端末100Bとの間で音声データの送受信に利用するネットワーク回線の利用可能な帯域幅は時々刻々と変動しているものとする。
【0040】
まず、通信端末100Aから通信端末100Bへ音声データの送信が支障なく(パケットロスやタイムアウトが生じることなく)行われている場合について、図5を参照して説明する。
マイクロホン20Aは、ユーザAにより音声を吹き込まれると、該音声を表す音声信号を生成し、A/D変換部21Aは該音声信号を音声データに変換する。制御部13Aは、RTPパケット生成機能により該音声データからRTPパケットを生成し、通信端末100Bに対して転送する(ステップSA100)。このとき制御部13Aは、全てのパケットに対して送信時刻を表すタイムスタンプを付与する。また制御部13Aは、各パケットを送信後、送信したパケットのシーケンス番号をRAM14bに書き込む。このようにして、音声データは通信端末100Aから通信網200を介して通信端末100Bへ到達する。
通信端末100Bは該パケットを受信する。制御部13Bは受信したパケットのシーケンス番号およびそれぞれのパケットに対し付与されていたタイムスタンプに関するデータを含む受信通知メッセージを通信端末100Aに対して返信する。受信通知メッセージは、通信端末100Bから通信網200を介して通信端末100Aへ到達する。
【0041】
制御部13Aは、上記受信通知メッセージを受信すると(ステップSA200)、ペイロード部に書き込まれたシーケンス番号と、送信したRTPパケットのシーケンス番号を比較することにより、パケットロスが発生したかどうか判定する(ステップSA300)。パケットロスが発生した場合(ステップSA300;“Yes”)、ステップSA800においてデータ欠損対応処理を行う。このデータ欠損処理については、後に詳細に説明する。一方、パケットロスが発生していない場合(ステップSA300;“No)、ステップSA400以降の動作を行う。音声データの送信が支障なく実行されている場合には、ステップSA300の判定結果は“No”となり、ステップSA400以降の処理が実行される。ステップSA400において、制御部13Aは、往復遅延時間測定機能により往復遅延時間を測定する。制御部13Aは、測定された往復遅延時間がRAM14bAに記憶されたコーデック切り替え直後の往復遅延時間に対して、予め決められた規定値以下であるかどうか判定を行う(ステップSA500)。この規定値は例えば、RAM14bAに記憶されたコーデック切り替え直後の往復遅延時間の60%とする。
【0042】
ステップSA500の判定結果が“Yes”の場合、制御部13Aは通信最適化処理を行い(ステップSA600)、その後ステップSA700へ進む。なお、ステップSA600の通信最適化処理については、後に詳細に説明する。一方、ステップSA500の判定結果が“No”の場合には、そのままステップSA700へ進む。ステップSA700では、制御部13Aは、データ通信が完了したかどうかを判定する。データ送信が完了していない場合(ステップSA700;“No”)には、制御部13Aは、ステップSA100に戻ることにより、未送信データの送信を引き続き行う。一方、データ通信が完了した場合(ステップSA700;“Yes”)には、制御部13Aは処理を終了する。
【0043】
ここで、ステップSA600の通信最適化処理の詳細について、図6に示すフローチャートを参照して説明する。まずステップSA610において、現時点で用いられているコーデックより高いビットレートに対応するコーデックがあるか否かを、リストを参照して判定する。ステップSA610の判定結果が“Yes”の場合には、制御部13Aはコーデックを切り替えて音声データの転送レートを増大させ(ステップSA620)、続いて往復遅延時間を測定し(ステップSA630)、コーデック切り替え直後の転送レート(ビットレート)と測定した往復遅延時間をRAM14bAに記憶させ(ステップSA640),処理を終了する。一方ステップSA610の判定結果が“No”の場合には、制御部13Aは処理を終了する。
【0044】
データ欠損が発生していない状況においても、往復遅延時間が十分小さいときには利用可能な帯域幅を有効に利用していない可能性があるが、上記の通信最適化処理により検出されたネットワーク状況に合わせてデータ通信を行うことができる。
なお制御部13Aはデータ通信を行う度に通信最適化処理を行うが、データ通信を行わない場合にも以上に説明した通信最適化処理を一定時間置きに実行する。その結果、時々刻々と状況が変化するネットワークを無駄なく利用してデータの転送を行うことが可能になる。
【0045】
次いで、データの送信の際にデータ欠損(パケットロスなど)が発生した場合の通信端末100Aの動作、すなわち図5におけるステップSA800のデータ欠損対応処理について図7に示すフローチャートを用いて説明する。
【0046】
まず制御部13Aは、RAM14bAおよびリストを参照して、現時点で用いられているコーデックより低いビットレートに対応するコーデックがあるか否かを判定する(ステップSA810)。ステップSA810の判定結果が“Yes”場合には、制御部13Aは、一段階低いビットレートのコーデックに切り替えてデータ転送レートを減少させる(ステップSA820)。次に制御部13Aは、コーデック切り替え直後の往復遅延時間を測定する(ステップSA830)。さらに制御部13Aは、測定した往復遅延時間とコーデック切り替え直後のビットレートの値をRAM14bAに記憶して(ステップSA840)、データ欠損対応処理を終了する。ステップSA810の判定結果が“No”場合には、制御部13Aはデータ欠損対応処理を終了する。
【0047】
制御部13Aは、パケットロスが発生したときにデータ欠損対応処理を実行することにより、適切なデータ転送率を適宜設定し支障なくデータの転送を行うことが可能になる。
【0048】
(C:変形)
以上、本発明の実施形態について説明したが、本発明は以下に述べる種々の形態で実施することができる。
【0049】
(1)上記実施例において、往復遅延時間測定機能、データ圧縮率制御機能、RTPパケット生成機能、RTPパケットの送受信機能の各機能は、通信端末に対して設けられていたが、設置対象はもちろん通信端末に限定されない。たとえば、音声データや映像データのストリーミング配信を行うデータ配信サーバに本発明を適用するとしても良い。要は、データ通信を行う電子機器であればよい。そのような場合には、電子機器において、音声入力部18に代えて音声データや映像データが記憶されている記憶装置を設置しそれらのデータを適宜読み出すようにすればよい。
【0050】
(2)上記実施例においては、本発明に係る通信端末に特徴的な機能をソフトウェアモジュールで実現する場合について説明したが、上記各機能を担っているハードウェアモジュールを組み合わせて本発明に係る通信端末を構成するようにしても良い。
【0051】
(3)上述した実施形態では、アプリケーション層の通信プロトコルとしてRTPを用いる場合について説明したが、他の通信プロトコルを用いても良いことは勿論である。要は、所定のヘッダ部とペイロード部とを有するデータブロックのペイロード部に、音声データを所定時間分ずつ書き込んで送信する通信プロトコルであれば、どのような通信プロトコルであっても良い。また、上述した実施形態では、トランスポート層の通信プロトコルとしてUDPを用いる場合について説明したが、TCPを用いるようにしても良い。同様にネットワーク層の通信プロトコルがIPに限定されるものではない。
【0052】
(4)上述した実施形態では、音声データの送受信を行う場合について説明したが、データの種類は音声データに限られるものではなく、動画データなど、どのような種類のデータでも良い。
【0053】
(5)上記実施形態では、通信端末100Aおよび通信端末100Bが通信網200に有線接続されている場合について説明したが、通信網200が例えば無線LAN(Local Area Network)などの無線パケット通信網であり、通信端末100Aおよび通信端末100Bが、この無線パケット通信網に接続されていても勿論良い。また、上記実施形態では通信網200がインターネットである場合について説明したが、LANであっても良いことは勿論である。要は、所定の通信プロトコルにしたがって行われる通信を仲介する機能を備えた通信網であれば、どのような通信網であっても良い。
【0054】
(6)上記実施形態では、本発明に係る通信装置に特徴的な機能を制御部13に実現させるための制御プログラムをROM14aに予め書き込んでおく場合について説明したが、CD−ROMやDVDなどのコンピュータ装置読み取り可能な記録媒体に上記制御プログラムを記録して配布するとしても良く、インターネットなどの電気通信回線経由のダウンロードにより上記制御プログラムを配布するようにしても勿論良い。
【0055】
(7)上記実施形態では、パケットのロスが発生したか否かを検出する場合について説明したが、データ欠損の検出対象となるデータブロックはパケットに限定されず、セグメントや、フレームでもよい。
【0056】
(8)上記実施形態では、図4に示すように、ROM14aに格納されるリストにおいては、複数種類のコーデックと、該コーデックの各々が実現可能なビットレートの値とが対応づけられている場合について説明した。しかし、該リストに代えて、ビットレートの値によりコーデックを序列化したデータが格納されていても良い。そのようにした場合でも、ステップSA610およびステップSA810においては、現在用いられているコーデックよりも高い、または低いビットレートのコーデックがあるか否かを判定することが可能である。そして、ステップSA620およびステップSA820においては、現在用いられているコーデックよりも1段階高い、または1段階低いビットレートのコーデックを選択することが可能である。
【0057】
(9)上記実施形態では、用いられるコーデックを切り替えることによりビットレートの切り替えを行う場合について説明した(ステップSA620、ステップSA820)。しかし、コーデックの種類を変更することなく、ビットレートに係る設定を変更することによってビットレートの切り替えを行っても良い。
その場合、複数のビットレートの設定が可能なコーデックプログラムをROM14aに格納しておき用いれば良い。そして、ステップSA610での判定内容を、「現時点で用いられているコーデックにおいて、より高いビットレートを設定することは可能か」としても良い。その場合、ステップSA610の判定結果が“Yes”の場合には、ステップSA620において、制御部13Aは、その時点で用いられているコーデックのビットレートに係る設定を切り替えてビットレートを増大させる。すなわち、コーデックに設定されている圧縮率を低くする。また、ステップSA810での判定内容を、「現時点で用いられているコーデックにおいて、より低いビットレートを設定することは可能か」としても良い。その場合、ステップSA810の判定結果が“Yes”の場合には、ステップSA820において、制御部13Aは、その時点で用いられているコーデックのビットレートに係る設定を切り替えてビットレートを減少させる。すなわち、コーデックに設定される圧縮率を高くする。
以上に説明したように、ビットレートを切り替えるために、用いられるコーデックを切り替えても良いし、コーデックの種類を変更することなくビットレートに係る設定を変更しても良い。要はデータの圧縮態様を変えることによりビットレートを制御すれば良い。
【0058】
(10)上記実施形態においては、音声データを圧縮・展開(エンコード/デコード)するプログラムとしてコーデックを用いる場合について説明したが、プログラムの種類はコーデックに限られるものではない。例えば、音声データの圧縮のみを実行するプログラムなど、コーデック以外の圧縮プログラムを用いても良い。
【図面の簡単な説明】
【0059】
【図1】本発明の1実施形態に係る通信端末が接続された通信システムの構成を示すブロック図である。
【図2】通信端末100の構成を示すブロック図である。
【図3】RTPパケットの構成を示す図である。
【図4】コーデックとデータ転送レート(ビットレート)を対応付けるリストである。
【図5】データ転送の流れを示すフローチャートである。
【図6】通信最適化処理の流れを示すフローチャートである。
【図7】データ欠損対応処理の流れを示すフローチャートである。
【符号の説明】
【0060】
10…通信システム、12…通信IF部、13…制御部、14…記憶部(14a;ROM、14b;RAM)、15…操作部、16…表示部、17…計時部、18…音声入力部、19…バス、20…マイクロホン、21…A/D変換部、22…音声出力部、23…D/A変換部、24…スピーカ、100,100A,100B…通信端末、200…通信網

【特許請求の範囲】
【請求項1】
通信網を介して相手装置と通信する通信装置であって、
第1の圧縮態様でデータを圧縮する制御手段と、
前記圧縮されたデータを、前記通信網を介して前記相手装置へ送信する送信手段と、
前記圧縮されたデータを受信した旨を示す応答メッセージを前記相手装置が送信すると、前記応答メッセージを前記通信網を介して受信する受信手段とを備え、
前記制御手段は、前記受信手段により受信された応答メッセージの状態に基づいて前記第1の圧縮態様を継続するか否かを判定し、継続しないと判定した場合には第2の圧縮態様を選択して当該第2の圧縮態様でデータを圧縮することを特徴とする通信装置。
【請求項2】
通信網を介して相手装置と通信する通信装置であって、
第1のコーデックでデータを圧縮する制御手段と、
前記圧縮されたデータを、前記通信網を介して前記相手装置へ送信する送信手段と、
前記圧縮されたデータを受信した旨を示す応答メッセージを前記相手装置が送信すると、前記応答メッセージを前記通信網を介して受信する受信手段とを備え、
前記制御手段は、前記受信手段により受信された応答メッセージの状態に基づいて前記第1のコーデックによるデータの圧縮を継続するか否かを判定し、継続しないと判定した場合には第2のコーデックを選択して当該第2のコーデックでデータを圧縮することを特徴とする通信装置。
【請求項3】
コーデックと、該コーデックに設定する転送レートとを対応付けるテーブルを記憶する記憶手段を備え、
前記制御手段は、前記受信手段により前記応答メッセージが受信されない場合に、前記テーブルにおいて前記第1のコーデックより低い転送レートと対応付けられたコーデックを前記第2のコーデックとして選択し、該第2のコーデックでデータを圧縮することを特徴とする請求項2に記載の通信装置。
【請求項4】
コーデックと、該コーデックに設定する転送レートとを対応付けるテーブルを記憶する記憶手段を備え、
前記制御手段は、前記受信手段により前記応答メッセージが所定の時間よりも早く受信された場合に、前記テーブルにおいて前記第1のコーデックより高い転送レートと対応付けられたコーデックを前記第2のコーデックとして選択し、該第2のコーデックでデータを圧縮することを特徴とする請求項2または3に記載の通信装置。
【請求項5】
通信網を介して相手装置と通信する通信装置であって、
複数のデータ転送レートが設定可能なコーデックであって、第1のデータ転送レートを満たす圧縮率が設定されたコーデックによりデータを圧縮する制御手段と、
前記コーデックにより圧縮されたデータを、前記通信網を介して前記相手装置へ送信する送信手段と、
前記圧縮されたデータを受信した旨を示す応答メッセージを前記相手装置が送信すると、前記応答メッセージを前記通信網を介して受信する受信手段とを備え、
前記制御手段は、前記受信手段により受信された応答メッセージの状態に基づいて第2のデータ転送レートを選択し、該第2のデータ転送レートを満たす圧縮率が設定された前記コーデックによりデータを圧縮することを特徴とする通信装置。
【請求項6】
前記制御手段は、前記受信手段により前記応答メッセージが受信されない場合に、前記第2のデータ転送レートとして、前記第1のデータ転送レートより低いデータ転送レートを選択し、該選択されたデータ転送レートを満たす圧縮率が設定された前記コーデックによりデータを圧縮することを特徴とする請求項5に記載の通信装置。
【請求項7】
前記制御手段は、前記受信手段により前記応答メッセージが所定の時間よりも早く受信された場合に、前記第2のデータ転送レートとして、前記第1のデータ転送レートより高いデータ転送レートを選択し、該選択されたデータ転送レートを満たす圧縮率が設定された前記コーデックによりデータを圧縮することを特徴とする請求項5または6に記載の通信装置。
【請求項8】
コンピュータを、
第1の圧縮態様でデータを圧縮する制御手段と、
前記圧縮されたデータを、前記通信網を介して前記相手装置へ送信する送信手段と、
前記圧縮されたデータを受信した旨を示す応答メッセージを前記相手装置が送信すると、前記応答メッセージを前記通信網を介して受信する受信手段
として機能させると共に、
前記制御手段を、前記受信手段により受信された応答メッセージの状態に基づいて前記第1の圧縮態様を継続するか否かを判定し、継続しないと判定した場合には第2の圧縮態様を選択して当該第2の圧縮態様でデータを圧縮するように機能させる
ことを特徴とするプログラム。
【請求項9】
コンピュータを、
第1のコーデックでデータを圧縮する制御手段と、
前記圧縮されたデータを、前記通信網を介して前記相手装置へ送信する送信手段と、
前記圧縮されたデータを受信した旨を示す応答メッセージを前記相手装置が送信すると、前記応答メッセージを前記通信網を介して受信する受信手段
として機能させると共に、
前記制御手段を、前記受信手段により受信された応答メッセージの状態に基づいて前記第1のコーデックによるデータの圧縮を継続するか否かを判定し、継続しないと判定した場合には第2のコーデックを選択して当該第2のコーデックでデータを圧縮するように機能させる
ことを特徴とするプログラム。
【請求項10】
コンピュータを、
複数のデータ転送レートが設定可能なコーデックであって、第1のデータ転送レートを満たす圧縮率が設定されたコーデックによりデータを圧縮する制御手段と、
前記コーデックにより圧縮されたデータを、前記通信網を介して前記相手装置へ送信する送信手段と、
前記圧縮されたデータを受信した旨を示す応答メッセージを前記相手装置が送信すると、前記応答メッセージを前記通信網を介して受信する受信手段
として機能させると共に、
前記制御手段は、前記受信手段により受信された応答メッセージの状態に基づいて第2のデータ転送レートを選択し、該第2のデータ転送レートを満たす圧縮率が設定された前記コーデックによりデータを圧縮するように機能させる
ことを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2008−99261(P2008−99261A)
【公開日】平成20年4月24日(2008.4.24)
【国際特許分類】
【出願番号】特願2007−233810(P2007−233810)
【出願日】平成19年9月10日(2007.9.10)
【出願人】(000004075)ヤマハ株式会社 (5,930)
【Fターム(参考)】