以下、図面を参照し、本発明を実施するための最良の形態について説明する。図1は、本発明の第1の実施形態による通信システムの構成を示すブロック図である。端末1Aおよび1Bは共に、携帯電話端末や、PDA(Personal Digital Assistance)装置のような携帯情報端末等の、無線通信機能を備えた端末装置である。AP21および22は共に、無線LANにおける中継局である。AP21および22は、バックボーンネットワーク30を介して互いに接続されている。バックボーンネットワーク30は、有線あるいは無線のLAN(Local Area Network)等の小ネットワークの接続点どうしを結ぶ基幹ネットワークである。
端末1Aは、AP21と無線通信が可能なエリア210内に位置し、端末1Bは、AP22と無線通信が可能なエリア220内に位置している。図1において、端末1AはAP21に接続しており、端末1BはAP22に接続しているものとする。また、端末1Aおよび1Bは、AP21、22、およびバックボーンネットワーク30を介して、VoIP(Voice over IP)を用いて音声通信を行っているものとする。端末1Aおよび1Bは共に、コーデックa,b,c,dという4種類のコーデックに対応した符号化および復号化の処理手段を有しており、コーデックa,b,c,dの順に品質が良く、所要通信帯域が広いものとする。本実施形態におけるコーデックa〜dは、例えばG.711(通信速度64Kbps)やG.726(同32Kbps)、G.729(同8Kbps)、G.723.1(同6.3K/5.3Kbps)等である。
端末1Aおよび1Bは同一の構成を有している。図2は、端末1Aおよび1Bの構成を示すブロック図である。図2においては、本実施形態において特徴的な構成のみが図示されており、他の構成については図示が省略されている。以下、図中の各構成について説明する。アンテナ101は、AP21または22と、音声データに基づいた電波の送受信を行う。ネットワークインタフェース部102は、例えば無線LANやセルラーに対応したインタフェースであり、送信信号の変調処理および受信信号の復調処理等を行う。パケット処理部103は、送信および受信される音声データのパケットに付加される宛先ヘッダの処理等、パケットに係る処理を行う。
マイク104は、音声入力装置としての機能を有し、入力されたユーザの音声をアナログ信号に変換してADC(Analog−Digital Converter)105へ出力する。ADC105は、マイク104から出力されたアナログ信号をデジタルデータに変換してエンコーダ106へ出力する。エンコーダ106は、ADC105から出力されたデータに対して符号化処理を施し、送信データとしてパケット処理部103へ出力する。デコーダ107は、パケット処理部103から出力された受信データに対して復号化処理を施し、DAC(Digital−Analog Converter)108へ出力する。
DAC108は、デコーダ107から出力されたデジタル信号をアナログ信号に変換し、スピーカー109へ出力する。スピーカー109は、DAC108から出力されたアナログ信号に基づいて、通話相手の音声を発生する。エンコーダ変更通知処理部110は、エンコーダ106のコーデックを変更したことを通信相手の端末に通知するためのメッセージであるエンコーダ変更通知を生成すると共に、通信相手の端末から受信されたエンコーダ変更通知を処理する。デコーダ変更通知処理部111は、デコーダ107のコーデックを変更したことを通信相手の端末に通知するためのメッセージであるデコーダ変更通知を生成すると共に、通信相手の端末から受信されたデコーダ変更通知を処理する。通信状態計測部112は、電波状況(電波の受信強度等)や通信伝送速度等によって示される通信状態を測定する。
制御部113は端末内部の各構成を制御する。制御部113は、特に、コーデックの変更に係る処理を行う電圧レベル計測部113a、コーデック選択部113b、およびコーデック変更決定部113cを有している。電圧レベル計測部113aは、ADC105の入力および出力、エンコーダ106の入力および出力、DAC108の入力および出力、デコーダ107の入力および出力等の信号の電圧レベルを計測することにより、送信信号および受信信号中の無音部と有音部の検出を行う。コーデック選択部113bは、エンコーダ106およびデコーダ107におけるコーデックを変更する。コーデック変更決定部113cは、電波状況が悪くなったり、通信伝送速度が悪くなったりしたことが通信状態計測部112から通知された場合に、電圧レベル計測部113aによって計測された無音部と有音部の状態に基づいて、コーデックを変更するか否かを決定する。
図3は、エンコーダ106の構成を示すブロック図である。エンコーダ106は、コーデックa〜dの各コーデックに対応して符号化処理を行うコーデック部106a〜106dを備えている。エンコーダ106は、コーデック部106a〜106dの中から、制御部113のコーデック選択部113bによって選択されたコーデック部により、符号化処理を行う。図4は、デコーダ107の構成を示すブロック図である。デコーダ107は、コーデックa〜dの各コーデックに対応して復号化処理を行うコーデック部107a〜107dを備えている。デコーダ107は、コーデック部107a〜107dの中から、制御部113のコーデック選択部113bによって選択されたコーデック部により、復号化処理を行う。
次に、本実施形態による通信システムの動作について説明する。通話中に、使用しているコーデックを変更する必要が生じるのには様々な場合が想定されるが、本実施形態においては、端末の移動によって電波状況が悪くなり、通信伝送速度が落ちる場合を想定する。図1において、端末1Aは初めLの位置にあり、端末1BとVoIPにより音声通信を行っているものとする。また、端末1AがLの位置にある場合、端末1Aと端末1Bは、共にコーデックaを用いて通話をしているものとする。
ここで、端末1AがLの位置からL’の位置へ移動したため、端末1Aの電波受信状況が悪くなり、通信伝送速度が減少したとする。通信状態計測部112は、ネットワークインタフェース部102を介して送信または受信されるデータの通信伝送速度を測定し、その測定値(通信伝送速度の瞬時値または移動平均値)をコーデック変更決定部113cに通知する。コーデック変更決定部113cは、現時点でのコーデックで必要な通信帯域を考慮して予め設定した所定の通信速度を測定値が下回るか否かを判定することにより、コーデックを変更するか否かを決定する。
通信状態計測部112によって測定された通信伝送速度が所定の通信速度を下回った場合には、コーデックaによる通信が困難になることが予想される。この場合、コーデック変更決定部113cは、電圧レベル計測部113aに対して、入力信号(バックボーンネットワーク30から到達する信号)および出力信号(マイク104からバックボーンネットワーク30へ向けて出力される信号)の有音および無音の検知の開始を指示する。指示を受けた電圧レベル計測部113aは、入力信号および出力信号の有音/無音の検知を開始し、検知結果をコーデック変更決定部113cに通知する。
例えば、端末1Aを使用しているユーザ(ユーザAとする)が話していて、端末1Bを使用しているユーザ(ユーザBとする)がユーザAの話を聞いている場合、端末1Aにおいて、入力信号は無音を示し、出力信号は有音を示している。この場合、ユーザAが、予め設定されたしきい値であるt時間連続で話をし(t時間連続で端末1Aにおける出力信号が有音状態となる)、かつ、予め設定されたしきい値であるt’時間連続でユーザBが話をしなかった(t’時間連続で端末1Aにおける入力信号が無音状態となる)時点で、端末1Aは、デコーダ107で用いられているコーデックを、現在の通信伝送速度に適したコーデックbに変更する。また、これと共に端末1Aは、端末1Bに対して、コーデックbへの変更を通知するためのデコーダ変更通知を送信する。なお、継続時間の単位を説明の便宜上、「時間」としているが、「分」「秒」「ms」等としても、本実施形態には何ら影響はない。
以下、端末1Aが、デコーダ107で用いられているコーデックを変更する際の具体的な動作について説明する。コーデック変更決定部113cは、電圧レベル計測部113aによって通知された入力/出力信号の有音/無音の検知結果に基づいて、出力信号がt時間連続で有音状態であったか否か、および入力信号がt’時間連続で無音状態であったか否かを判定する。出力信号がt時間連続で有音状態であり、かつ入力信号がt’時間連続で無音状態であった場合、コーデック変更決定部113cは、コーデックを変更することを決定し、コーデック選択部113bに対してコーデックの変更を指示する。
指示を受けたコーデック選択部113bは、変更後のコーデックとしてコーデックbを選択し、デコーダ107のコーデック部をコーデック部107bに切り替える。以後、デコーダ107は、コーデック部107bにより受信データを復号化する。デコーダ107のコーデック部が切り替えられた後、制御部113は、デコーダ変更通知処理部111に対して、コーデックbへの切り替えを通知すると共に、デコーダ変更通知の生成を指示する。指示を受けたデコーダ変更通知処理部111は、コーデックbの情報を含むデコーダ変更通知を生成し、パケット処理部103へ出力する。パケット処理部103は、デコーダ変更通知に対して所定の処理を行い、ネットワークインタフェース部102へ出力する。ネットワークインタフェース部102は、デコーダ変更通知を変調し、アンテナ101を介してAP21へ送信する。
図5は、デコーダ変更通知に含まれるメッセージ部の一例を示している。メッセージ部には、種別がデコーダ変更通知であることを示す情報と、変更後のコーデックを示す情報とが含まれている。
端末1Aによって送信されたデコーダ変更通知は、AP21、バックボーンネットワーク30、およびAP22を介して端末1Bによって受信される。端末1Bは、受信したデコーダ変更通知に基づいて、自身のエンコーダ106で用いられているコーデックをコーデックbに変更する。以下、端末1Bがコーデックを変更する際の具体的な動作について説明する。
端末1Bにおいて、ネットワークインタフェース部102は、アンテナ101を介してデコーダ変更通知を受信し、復調処理を行って、パケット処理部103へ出力する。パケット処理部103は、受信されたデコーダ変更通知に対して所定の処理を行い、デコーダ変更通知処理部111へ出力する。デコーダ変更通知処理部111は、デコーダ変更通知の内容をコーデック変更決定部113cに通知する。コーデック変更決定部113cは、デコーダ変更通知の内容に基づいて、コーデック選択部113bに対して、エンコーダ106のコーデックをコーデックbへ変更することを指示する。指示を受けたコーデック選択部113bは、エンコーダ106のコーデック部をコーデック部106bに切り替える。ここで、端末1Bは、デコーダ変更通知に対する確認応答を端末1Aへ送信してもよい。
一方、ユーザBが話していて、ユーザAがユーザBの話を聞いている場合には、端末1Aにおいて、入力信号は有音を示し、出力信号は無音を示している。この場合、ユーザBが、予め設定されたしきい値であるt時間連続で話をし(t時間連続で端末1Aにおける入力信号が有音状態となる)、かつ、予め設定されたしきい値であるt’時間連続でユーザAが話をしなかった(t’時間連続で端末1Aにおける出力信号が無音状態となる)時点で、端末1Aは、エンコーダ106で用いられているコーデックを、現在の通信伝送速度に適したコーデックbに変更する。また、これと共に端末1Aは、端末1Bに対して、コーデックbへの変更を通知するためのエンコーダ変更通知を送信する。
エンコーダ106で用いられているコーデックを変更する際の端末1Aの動作は、前述した動作と同様である。コーデック変更決定部113cは、電圧レベル計測部113aによって通知された入力/出力信号の有音/無音の検知結果に基づいて、入力信号がt時間連続で有音状態であり、かつ出力信号がt’時間連続で無音状態であることを検出した場合、コーデックを変更することを決定し、コーデック選択部113bに対してコーデックの変更を指示する。
指示を受けたコーデック選択部113bは、変更後のコーデックとしてコーデックbを選択し、エンコーダ106のコーデック部をコーデック部106bに切り替える。以後、エンコーダ106は、コーデック部106bにより送信データを符号化する。エンコーダ106のコーデック部が切り替えられた後、制御部113は、エンコーダ変更通知処理部110に対して、コーデックbへの切り替えを通知すると共に、エンコーダ変更通知の生成を指示する。指示を受けたエンコーダ変更通知処理部110は、コーデックbの情報を含むエンコーダ変更通知を生成し、パケット処理部103へ出力する。パケット処理部103は、エンコーダ変更通知に対して所定の処理を行い、ネットワークインタフェース部102へ出力する。ネットワークインタフェース部102は、エンコーダ変更通知を変調し、アンテナ101を介してAP21へ送信する。
図6は、エンコーダ変更通知に含まれるメッセージ部の一例を示している。メッセージ部には、種別がエンコーダ変更通知であることを示す情報と、変更後のコーデックを示す情報とが含まれている。
端末1Aによって送信されたエンコーダ変更通知は、AP21、バックボーンネットワーク30、およびAP22を介して端末1Bによって受信される。端末1Bにおいて、ネットワークインタフェース部102は、アンテナ101を介してエンコーダ変更通知を受信し、復調処理を行って、パケット処理部103へ出力する。パケット処理部103は、受信されたエンコーダ変更通知に対して所定の処理を行い、エンコーダ変更通知処理部110へ出力する。
エンコーダ変更通知処理部110は、エンコーダ変更通知の内容をコーデック変更決定部113cに通知する。コーデック変更決定部113cは、エンコーダ変更通知の内容に基づいて、コーデック選択部113bに対して、デコーダ107のコーデックをコーデックbへ変更することを指示する。指示を受けたコーデック選択部113bは、デコーダ107のコーデック部をコーデック部107bに切り替える。ここで、端末1Bは、エンコーダ変更通知に対する確認応答を端末1Aへ送信してもよい。
図7は、上述した動作に基づいて行われるコーデックの変更シーケンスを示している。図7においては、t=t’としている。端末1Aは、自身の電波受信状況が悪くなり、通信伝送速度が減少した時点以後、出力信号がt時間連続で有音状態であり、かつ入力信号がt時間連続で無音状態であった場合に、デコーダ107のコーデックをコーデックaからコーデックbに変更し(ステップS701)、端末1Bへデコーダ変更通知を送信する(ステップS702)。端末1Bはデコーダ変更通知を受信し、デコーダ変更通知の内容に基づいて、エンコーダ106のコーデックをコーデックaからコーデックbに変更する(ステップS703)。
続いて、端末1Aは、入力信号がt時間連続で有音状態であり、かつ出力信号がt時間連続で無音状態であった場合に、エンコーダ106のコーデックをコーデックaからコーデックbに変更し(ステップS704)、端末1Bへエンコーダ変更通知を送信する(ステップS705)。端末1Bはエンコーダ変更通知を受信し、エンコーダ変更通知の内容に基づいて、デコーダ107のコーデックをコーデックaからコーデックbに変更する(ステップS706)。
図8は、上述した端末1Aの動作を示すフローチャートである。以下、図8を用いて、端末1Aの動作を説明する。通信状態計測部112によって測定された通信伝送速度が所定の通信速度を下回った場合に、コーデック変更決定部113cは、有音/無音の継続時間判定用の内部タイマーをリセットし、以後、図8で示される処理を実行する。コーデック変更決定部113cは、コーデック変更が未完了であるか否かを判定する(ステップS801)。コーデック変更が完了している場合、処理を終了する。一方、コーデック変更が完了していない場合には、コーデック変更決定部113cは、電圧レベル計測部113aに対して入力/出力信号の有音/無音の検出を指示し、電圧レベル計測部113aによる有音/無音の検知の結果を解析する。コーデック変更決定部113cは、この電圧レベル計測部113aによる有音/無音の検知の結果に基づいて、入力信号または出力信号が無音状態であるか否かを判定する(ステップS802)。
入力信号および出力信号が共に有音状態であった場合には、ステップS801に戻る。入力信号が無音状態であった場合、コーデック変更決定部113cは、デコーダ107のコーデックが未変更であるか否かを判定する(ステップS803)。デコーダ107のコーデックが変更済みであった場合には、ステップS801に戻る。一方、デコーダ107のコーデックが未変更であった場合には、コーデック変更決定部113cは、内部タイマーによるカウントに基づいて、現時点において、出力信号がt時間連続で有音状態であり、かつ入力信号がt’時間連続で無音状態であるか否かを判定する(ステップS804)。
出力信号がt時間連続で有音状態でなかった場合、または入力信号がt’時間連続で無音状態でなかった場合には、ステップS801に戻る。一方、出力信号がt時間連続で有音状態であり、かつ入力信号がt’時間連続で無音状態であった場合には、コーデック変更決定部113cは、コーデック選択部113bに対してコーデックの変更を指示する。指示を受けたコーデック選択部113bは、前述したように、デコーダ107のコーデック部を切り替える(ステップS805)。
続いて、コーデック変更決定部113cは、デコーダ変更通知処理部111に対して、コーデックの切り替えを通知すると共に、デコーダ変更通知の生成を指示する。指示を受けたデコーダ変更通知処理部111は、前述したように、デコーダ変更通知を生成する。このデコーダ変更通知は端末1Bへ送信される(ステップS806)。続いて、内部タイマーをリセットし、処理はステップS801に戻る。
また、ステップS802において、出力信号が無音状態であった場合、コーデック変更決定部113cは、エンコーダ106のコーデックが未変更であるか否かを判定する(ステップS807)。エンコーダ106のコーデックが変更済みであった場合には、ステップS801に戻る。一方、エンコーダ106のコーデックが未変更であった場合には、コーデック変更決定部113cは、内部タイマーによるカウントに基づいて、現時点において、入力信号がt時間連続で有音状態であり、かつ出力信号がt’時間連続で無音状態であるか否かを判定する(ステップS808)。
入力信号がt時間連続で有音状態でなかった場合、または出力信号がt’時間連続で無音状態でなかった場合には、ステップS801に戻る。一方、入力信号がt時間連続で有音状態であり、かつ出力信号がt’時間連続で無音状態であった場合には、コーデック変更決定部113cは、コーデック選択部113bに対してコーデックの変更を指示する。指示を受けたコーデック選択部113bは、前述したように、エンコーダ106のコーデック部を切り替える(ステップS809)。
続いて、コーデック変更決定部113cは、エンコーダ変更通知処理部110に対して、コーデックの切り替えを通知すると共に、エンコーダ変更通知の生成を指示する。指示を受けたエンコーダ変更通知処理部110は、前述したように、エンコーダ変更通知を生成する。このエンコーダ変更通知は端末1Bへ送信される(ステップS810)。続いて、内部タイマーをリセットし、処理はステップS801に戻る。
なお、ステップS802において、入力信号および出力信号が共に無音状態であった場合には、ステップS803とS807のうちのいずれか一方に進むように予め設定しておけばよい。
図2においては、1つのネットワークインタフェース部しか図示されていないが、複数のネットワークインタフェース部を設けてもよい。また、コーデック変更決定部113cが、コーデックを変更するか否かを決定するための指標として、通信状態計測部112によって計測された電波状況や通信伝送速度が挙げられているが、例えばパケットロス率やビットエラー率等、他の指標を用いてもよい。また、電圧レベル計測部113aは、コーデック変更決定部113cから指示を受けた場合だけでなく、入力信号および出力信号の有音および無音の検出を常時行ってもよい。
また、端末1Bが端末1Aからデコーダ変更通知を受信してエンコーダ106のコーデックを変更する際に、出力信号が無音状態であることを確認してからコーデックを変更してもよい。同様に、端末1Bが端末1Aからエンコーダ変更通知を受信してデコーダ107のコーデックを変更する際に、入力信号が無音状態であることを確認してからコーデックを変更してもよい。また、各端末は、エンコーダ106およびデコーダ107のうちの一方のコーデックを変更した後、もう一方のコーデックを変更する場合に、入力信号および出力信号が所定時間連続で無音状態であった場合に、コーデックを変更するようにしてもよい。
上述したように、本実施形態による通信端末は、自端末が送信する音声データが有音状態であり、かつ通信相手の端末から受信した音声データが無音状態であるときに、復号化で用いるコーデックを切り替え、また、自端末が送信する音声データが無音状態であり、かつ通信相手の端末から受信した音声データが有音状態であるときに、符号化で用いるコーデックを切り替える。これにより、コーデックの切り替え時の音声の途切れや異音の発生を防止することができる。また、コーデックを切り替える際には、余分な帯域が必要とならない。さらに、コーデックを変更した端末がデコーダ変更通知およびエンコーダ変更通知を通信相手の端末へ送信し、それを受信した通信相手の端末がコーデックを変更することにより、通信を行う端末どうしが確実にコーデックを変更することができる。
また、コーデックを切り替える際に、出力信号が所定時間連続で有音状態かつ入力信号が所定時間連続で無音状態であった場合、または入力信号が所定時間連続で有音状態かつ出力信号が所定時間連続で無音状態であった場合には、その後もそれらの状態が続く可能性が高いので、それらの状態を検出した時点でコーデックを切り替えることにより、コーデックの切り替え時の音声の途切れや異音の発生をより確実に防止することができる。
次に、本発明の第2の実施形態について説明する。本実施形態においては、エンコーダ106またはデコーダ107のコーデックを最初に変更した端末から送信されたエンコーダ変更通知またはデコーダ変更通知を受信した端末が主体となって、コーデック変換を継続する。以下、図9を用いて各端末の動作を説明する。
端末1Aは、自身の電波受信状況が悪くなり、通信伝送速度が減少した時点以後、出力信号がt時間連続で有音状態であり、かつ入力信号がt’時間連続で無音状態であった場合に(図9においてはt=t’としている)、デコーダ107のコーデックをコーデックaからコーデックbに変更し(ステップS901)、端末1Bへデコーダ変更通知を送信する(ステップS902)。端末1Bはデコーダ変更通知を受信し、デコーダ変更通知の内容に基づいて、エンコーダ106のコーデックをコーデックaからコーデックbに変更する(ステップS903)。
続いて、端末1Bは、出力信号がt時間連続で有音状態であり、かつ入力信号がt’時間連続で無音状態であった場合に、デコーダ107のコーデックをコーデックaからコーデックbに変更し(ステップS904)、端末1Aへデコーダ変更通知を送信する(ステップS905)。端末1Aはデコーダ変更通知を受信し、デコーダ変更通知の内容に基づいて、エンコーダ106のコーデックをコーデックaからコーデックbに変更する(ステップS906)。
図10は、上述した端末1Bの動作を示すフローチャートである。以下、図10を用いて、端末1Bの動作を説明する。端末1Bにおいて、端末1Aから送信されたデコーダ変更通知が受信されると、受信されたデコーダ変更通知はデコーダ変更通知処理部111へ出力される。デコーダ変更通知処理部111は、デコーダ変更通知の内容をコーデック変更決定部113cに通知する(ステップS1001)。
コーデック変更決定部113cは、コーデック選択部113bに対して、デコーダ変更通知の内容を通知すると共に、コーデックの変更を指示する。指示を受けたコーデック選択部113bは、エンコーダ106のコーデック部をコーデック部106bに切り替える(ステップS1002)。続いて、コーデック変更決定部113cは、有音/無音の継続時間判定用の内部タイマーをリセットすると共に、デコーダ107のコーデックが未変更であるか否かを判定する(ステップS1003)。デコーダ107のコーデックが変更済みであった場合には、処理を終了する。一方、デコーダ107のコーデックが未変更であった場合には、コーデック変更決定部113cは、電圧レベル計測部113aによる有音/無音の検知の結果に基づいて、入力信号が無音状態であるか否かを判定する(ステップS1004)。
入力信号が有音状態であった場合には、ステップS1004に戻る。一方、入力信号が無音状態であった場合、コーデック変更決定部113cは、内部タイマーによるカウントに基づいて、現時点において、出力信号がt時間連続で有音状態であり、かつ入力信号がt’時間連続で無音状態であるか否かを判定する(ステップS1005)。出力信号がt時間連続で有音状態でなかった場合、または入力信号がt’時間連続で無音状態でなかった場合には、ステップS1004に戻る。一方、出力信号がt時間連続で有音状態であり、かつ入力信号がt’時間連続で無音状態であった場合には、コーデック変更決定部113cは、コーデック選択部113bに対してコーデックの変更を指示する。指示を受けたコーデック選択部113bは、エンコーダ106と同じコーデックになるように、デコーダ107のコーデック部を切り替える(ステップS1006)。
続いて、コーデック変更決定部113cは、デコーダ変更通知処理部111に対して、コーデックの切り替えを通知すると共に、デコーダ変更通知の生成を指示する。指示を受けたデコーダ変更通知処理部111は、デコーダ変更通知を生成する。このデコーダ変更通知は端末1Aへ送信される(ステップS1007)。続いて、処理が終了する。上述した本実施形態によれば、第1の実施形態と同様に、コーデックを切り替える際に余分な帯域を必要とせずに、コーデックの切り替え時の音声の途切れや異音の発生を防止することができる等の効果が得られる。
次に、本発明の第3の実施形態について説明する。図11は、本実施形態による端末1Aおよび1Bの構成を示すブロック図である。図2と同一の構成には同一の符号を付与し、説明を省略する。本実施形態においては、コーデックの切り替えを通信相手の端末に通知するためのメッセージであるコーデック変更通知を処理するコーデック変更通知処理部114が設けられている。図12は、コーデック変更通知に含まれるメッセージ部の一例を示している。メッセージ部には、変更後のコーデックを示す情報が含まれている。
次に、本実施形態による通信システムの動作について説明する。第1および第2の実施形態と同様に、端末1AがLの位置にある場合、端末1Aと端末1Bは、共にコーデックaを用いて通話をしているものとする。また、端末1AがLの位置からL’の位置へ移動したため、端末1Aの電波受信状況が悪くなり、通信伝送速度が減少したとする。以後の端末1Aおよび端末1Bの動作は以下のようになる(図13参照)。通信伝送速度が所定の通信速度を下回った場合には、コーデックaによる通信が困難になることが予想される。通信伝送速度が所定の通信速度を下回ったことを検出した時点において、端末1Aは、現在の通信伝送速度に適したコーデックbを選択し、デコーダ107のコーデックをコーデックbに変更することを通知するためのコーデック変更通知を端末1Bへ送信する(ステップS1301)。
例えば、端末1Aを使用しているユーザAが話していて、端末1Bを使用しているユーザBがユーザAの話を聞いている場合、端末1Aにおいて、入力信号は無音を示し、出力信号は有音を示している。この場合、ユーザAが、予め設定されたしきい値であるt時間連続で話をし(t時間連続で端末1Aにおける出力信号が有音状態となる)、かつ、予め設定されたしきい値であるt’時間連続でユーザBが話をしなかった(t’時間連続で端末1Aにおける入力信号が無音状態となる)時点で、端末1Aは、デコーダ107で用いられているコーデックをコーデックbに変更する(ステップS1302)。
端末1Bは、端末1Aから送信されたコーデック変更通知を受信し、入力/出力信号の有音/無音の検出を開始する。ユーザAが、予め設定されたしきい値であるt時間連続で話をし(t時間連続で端末1Bにおける入力信号が有音状態となる)、かつ、予め設定されたしきい値であるt’時間連続でユーザBが話をしなかった(t’時間連続で端末1Bにおける出力信号が無音状態となる)時点で、端末1Bは、エンコーダ106で用いられているコーデックを、コーデック変更通知が示すコーデックbに変更する(ステップS1303)。
続いて、ユーザBが話していて、ユーザAがユーザBの話を聞いている場合には、端末1Aにおいて、入力信号は有音を示し、出力信号は無音を示している。この場合、ユーザBが、予め設定されたしきい値であるt時間連続で話をし(t時間連続で端末1Aにおける入力信号が有音状態となる)、かつ、予め設定されたしきい値であるt’時間連続でユーザAが話をしなかった(t’時間連続で端末1Aにおける出力信号が無音状態となる)時点で、端末1Aは、エンコーダ106で用いられているコーデックを、現在の通信伝送速度に適したコーデックbに変更する(ステップS1304)。
また、端末1Bにおいては、出力信号は有音を示し、入力信号は無音を示している。この場合、ユーザBが、予め設定されたしきい値であるt時間連続で話をし(t時間連続で端末1Bにおける出力信号が有音状態となる)、かつ、予め設定されたしきい値であるt’時間連続でユーザAが話をしなかった(t’時間連続で端末1Bにおける入力信号が無音状態となる)時点で、端末1Bは、デコーダ107で用いられているコーデックをコーデックbに変更する(ステップS1305)。
なお、上記においては、最初にユーザAが話していて、ユーザBがユーザAの話を聞いている場合について説明したが、最初にユーザBが話していて、ユーザAがユーザBの話を聞いている場合についても同様である。
図14は、上述した端末1Aの動作を示すフローチャートである。以下、図14を用いて、端末1Aの動作を説明する。通信状態計測部112によって測定された通信伝送速度が所定の通信速度を下回った場合に、コーデック変更決定部113cは有音/無音の継続時間判定用の内部タイマーをリセットし、以後、図14で示される処理を実行する。コーデック変更決定部113cは、コーデック選択部113bに対してコーデックの選択を指示する。指示を受けたコーデック選択部113bは、現在の通信伝送速度に適したコーデックを選択し、コーデック変更決定部113cに通知する。コーデック変更決定部113cは、コーデック変更通知処理部114に対して、コーデックの切り替えを通知すると共に、コーデック変更通知の生成を指示する。指示を受けたコーデック変更通知処理部114はコーデック変更通知を生成し、パケット処理部103へ出力する。このデコーダ変更通知は端末1Bへ送信される(ステップS1401)。
続いて、コーデック変更決定部113cは、コーデック変更が未完了であるか否かを判定する(ステップS1402)。コーデック変更が完了している場合、処理を終了する。一方、コーデック変更が完了していない場合には、コーデック変更決定部113cは、電圧レベル計測部113aに対して入力/出力信号の有音/無音の検出を指示し、電圧レベル計測部113aによる有音/無音の検知の結果を解析する。コーデック変更決定部113cは、この電圧レベル計測部113aによる有音/無音の検知の結果に基づいて、入力信号または出力信号が無音状態であるか否かを判定する(ステップS1403)。
入力信号および出力信号が共に有音状態であった場合には、ステップS1402に戻る。入力信号が無音状態であった場合、コーデック変更決定部113cは、デコーダ107のコーデックが未変更であるか否かを判定する(ステップS1404)。デコーダ107のコーデックが変更済みであった場合には、ステップS1402に戻る。一方、デコーダ107のコーデックが未変更であった場合には、コーデック変更決定部113cは、内部タイマーによるカウントに基づいて、現時点において、出力信号がt時間連続で有音状態であり、かつ入力信号がt’時間連続で無音状態であるか否かを判定する(ステップS1405)。
出力信号がt時間連続で有音状態でなかった場合、または入力信号がt’時間連続で無音状態でなかった場合には、ステップS1402に戻る。一方、出力信号がt時間連続で有音状態であり、かつ入力信号がt’時間連続で無音状態であった場合には、コーデック変更決定部113cは、コーデック選択部113bに対してコーデックの変更を指示する。指示を受けたコーデック選択部113bは、前述したように、デコーダ107のコーデック部を切り替える(ステップS1406)。続いて、内部タイマーをリセットし、処理はステップS1402に戻る。
また、ステップS1403において、出力信号が無音状態であった場合、コーデック変更決定部113cは、有音/無音の継続時間判定用の内部タイマーを起動し、エンコーダ106のコーデックが未変更であるか否かを判定する(ステップS1407)。エンコーダ106のコーデックが変更済みであった場合には、ステップS1402に戻る。一方、エンコーダ106のコーデックが未変更であった場合には、コーデック変更決定部113cは、内部タイマーによるカウントに基づいて、現時点において、入力信号がt時間連続で有音状態であり、かつ出力信号がt’時間連続で無音状態であるか否かを判定する(ステップS1408)。
入力信号がt時間連続で有音状態でなかった場合、または出力信号がt’時間連続で無音状態でなかった場合には、ステップS1402に戻る。一方、入力信号がt時間連続で有音状態であり、かつ出力信号がt’時間連続で無音状態であった場合には、コーデック変更決定部113cは、コーデック選択部113bに対してコーデックの変更を指示する。指示を受けたコーデック選択部113bは、前述したように、エンコーダ106のコーデック部を切り替える(ステップS1409)。続いて、内部タイマーをリセットし、処理はステップS1402に戻る。
なお、ステップS1403において、入力信号および出力信号が共に無音状態であった場合には、ステップS1404とS1407のうちのいずれか一方に進むように予め設定しておけばよい。
図15は、端末1Bの動作を示すフローチャートである。以下、図15を用いて、端末1Bの動作を説明する。図15は、端末1Aからのコーデック変更通知を受信した場合に行う動作を示している。端末1Bにおいて、ネットワークインタフェース部102は、アンテナ101を介してコーデック変更通知を受信し、復調処理を行って、パケット処理部103へ出力する。パケット処理部103は、受信されたコーデック変更通知に対して所定の処理を行い、コーデック変更通知処理部114へ出力する。コーデック変更通知処理部114は、コーデック変更通知の内容をコーデック変更決定部113cに通知する。コーデック変更決定部113cは、有音/無音の継続時間判定用の内部タイマーをリセットする。
以後、端末1Bは、図15で示される動作を行う。コーデック変更決定部113cは、コーデック変更が未完了であるか否かを判定する(ステップS1501)。コーデック変更が完了している場合、処理を終了する。一方、コーデック変更が完了していない場合には、コーデック変更決定部113cは、電圧レベル計測部113aに対して入力/出力信号の有音/無音の検出を指示し、電圧レベル計測部113aによる有音/無音の検知の結果を解析する。コーデック変更決定部113cは、この電圧レベル計測部113aによる有音/無音の検知の結果に基づいて、入力信号または出力信号が無音状態であるか否かを判定する(ステップS1502)。
入力信号および出力信号が共に有音状態であった場合には、ステップS1501に戻る。入力信号が無音状態であった場合、コーデック変更決定部113cは、デコーダ107のコーデックが未変更であるか否かを判定する(ステップS1503)。デコーダ107のコーデックが変更済みであった場合には、ステップS1501に戻る。一方、デコーダ107のコーデックが未変更であった場合には、コーデック変更決定部113cは、内部タイマーによるカウントに基づいて、現時点において、出力信号がt時間連続で有音状態であり、かつ入力信号がt’時間連続で無音状態であるか否かを判定する(ステップS1504)。
出力信号がt時間連続で有音状態でなかった場合、または入力信号がt’時間連続で無音状態でなかった場合には、ステップS1501に戻る。一方、出力信号がt時間連続で有音状態であり、かつ入力信号がt’時間連続で無音状態であった場合には、コーデック変更決定部113cは、コーデック選択部113bに対して、コーデック変更通知の内容を通知すると共に、コーデックの変更を指示する。指示を受けたコーデック選択部113bは、コーデック変更通知の内容に基づいてコーデックを選択し、デコーダ107のコーデック部を切り替える(ステップS1505)。続いて、内部タイマーをリセットし、処理はステップS1501に戻る。
また、ステップS1502において、出力信号が無音状態であった場合、コーデック変更決定部113cは、有音/無音の継続時間判定用の内部タイマーを起動し、エンコーダ106のコーデックが未変更であるか否かを判定する(ステップS1506)。エンコーダ106のコーデックが変更済みであった場合には、ステップS1501に戻る。一方、エンコーダ106のコーデックが未変更であった場合には、コーデック変更決定部113cは、内部タイマーによるカウントに基づいて、現時点において、入力信号がt時間連続で有音状態であり、かつ出力信号がt’時間連続で無音状態であるか否かを判定する(ステップS1507)。
入力信号がt時間連続で有音状態でなかった場合、または出力信号がt’時間連続で無音状態でなかった場合には、ステップS1501に戻る。一方、入力信号がt時間連続で有音状態であり、かつ出力信号がt’時間連続で無音状態であった場合には、コーデック変更決定部113cは、コーデック選択部113bに対して、コーデック変更通知の内容を通知すると共に、コーデックの変更を指示する。指示を受けたコーデック選択部113bは、コーデック変更通知の内容に基づいてコーデックを選択し、エンコーダ106のコーデック部を切り替える(ステップS1508)。続いて、内部タイマーをリセットし、処理はステップS1501に戻る。
なお、端末1Bは、コーデック変更通知に対する確認応答を端末1Aへ送信してもよい。上述した本実施形態によれば、第1および第2の実施形態と同様に、コーデックを切り替える際に余分な帯域を必要とせずに、コーデックの切り替え時の音声の途切れや異音の発生を防止することができる等の効果が得られる。また、コーデックの変更動作に入ろうとする端末がコーデック変更通知を通信相手の端末へ送信し、それを受信した通信相手の端末も同様にコーデックの変更動作に入るので、各端末が同一タイミングでコーデックを変更することになり、送信側の端末のエンコーダ106で用いられているコーデックと、受信側の端末のデコーダ107で用いられているコーデックが異なるという状態が発生せず、確実に通信を継続することができる。
次に、本発明の第4の実施形態について説明する。図16は、本実施形態による通信システムの構成を示すブロック図である。第1〜第3の実施形態においては、端末1Aおよび端末1Bが1対1の通信を行うものとしていたが、本実施形態においては、端末1A,1B,1Cが、AP21,22,23および各APを結ぶバックボーンネットワーク30を介して、VoIPを用いてグループコールをしているものとする。その他の条件は、第1の実施形態と同様であるものとする。
図17は、本実施形態による端末1A〜1Cの構成を示すブロック図である。図2と同一の構成には同一の符号を付与し、説明を省略する。本実施形態においては、制御部113に利用モード判断部113dが設けられている。利用モード判断部113dは、アプリケーション115から定期的に通知される通信の種類の情報に基づいて、現在の通信の利用モード、すなわち1対1で通信を行っているのか、それとも3以上の端末でグループコールを行っているのかを判断し、判断結果を図示せぬレジスタ等に格納する。
次に、本実施形態による通信システムの動作について説明する。端末1AがLの位置にある場合、端末1A〜1Cは、共にコーデックaを用いて通話をしているものとする。ここで、端末1AがLの位置からL’の位置へ移動したため、端末1Aの電波受信状況が悪くなり、通信伝送速度が減少したとする。通信伝送速度が所定の通信速度を下回った場合には、コーデックaによる通信が困難になることが予想される。以後の端末1Aおよび端末1Bの動作は以下のようになる(図18参照)。
例えば、端末1Aを使用しているユーザAが話していて、端末1Bを使用しているユーザB、および端末1Cを使用しているユーザCがユーザAの話を聞いている場合、端末1Aにおいて、入力信号は無音を示し、出力信号は有音を示している。この場合、第1の実施形態と同様に、ユーザAが、予め設定されたしきい値であるt時間連続で話をし(t時間連続で端末1Aにおける出力信号が有音状態となる)、かつ、予め設定されたしきい値であるt’時間連続でユーザBおよびユーザCが話をしなかった(t’時間連続で端末1Aにおける端末1Bおよび1Cからの入力信号が無音状態となる)時点で、端末1Aは、デコーダ107で用いられているコーデックを、現在の通信伝送速度に適したコーデックbに変更する(ステップS1801)。
続いて、端末1Aは、端末1Bおよび1Cに対して、コーデックbへの変更を通知するためのデコーダ変更通知を送信する(ステップS1802)。端末1Bおよび1Cはデコーダ変更通知を受信し、デコーダ変更通知の内容に基づいて、エンコーダ106で用いられているコーデックをコーデックbへ変更する(ステップS1803,S1804)(以上、図18(a)参照)。なお、デコーダ変更通知を受信した端末1Bおよび1Cが、デコーダ変更通知に対する確認応答を端末1Aへ送信してもよい。
また、端末1A以外、すなわち端末1Bまたは1Cを使用しているユーザBまたはユーザCが話していて、端末1Aを使用しているユーザAがユーザBまたはユーザCの話を聞いている場合、端末1Aにおいて、端末1Bまたは1Cからの入力信号は有音を示し、出力信号は無音を示している。この場合、ユーザBまたはユーザCが、予め設定されたしきい値であるt時間連続で話をし(t時間連続で端末1Aにおける端末1Bまたは端末1Cからの入力信号が有音状態となる)、かつ、予め設定されたしきい値であるt’時間連続でユーザAが話をしなかった(t’時間連続で端末1Aにおける出力信号が無音状態となる)時点で、端末1Aは、エンコーダ106で用いられているコーデックを、現在の通信伝送速度に適したコーデックbに変更する(ステップS1805)。
続いて、端末1Aは、端末1Bおよび1Cに対して、コーデックbへの変更を通知するためのエンコーダ変更通知を送信する(ステップS1806)。端末1Bおよび1Cはエンコーダ変更通知を受信し、以下の動作を行う。端末1Bおよび端末1Cは、自端末における入力信号および出力信号の有音/無音を検知する。端末1Bは、出力信号が有音状態であり、かつ入力信号が無音状態であることを検出し、デコーダ107で用いられているコーデックをコーデックbに変更する(ステップS1807)。また、端末1Cは、入力信号が有音状態であり、かつ出力信号が無音状態であることを検出し、エンコーダ106で用いられているコーデックをコーデックbに変更する(ステップS1808)(以上、図18(b)参照)。
図18(a)の場合に、端末1Bおよび1Cは、入力信号および出力信号の有音/無音を検知することなく、コーデックの変更を行っている。端末1Aがデコーダ107のコーデックを変更したということは、ユーザAのみが話していて、他のユーザがユーザAの話を聞いているということであり、端末1Aからのデコーダ変更通知を受信することによって、端末1Bおよび1Cは、自端末のエンコーダ106のコーデックを変更すればよいことを認識することができるからである。ただし、図18(b)の場合の動作と統一した動作を行うため、図18(a)の場合にも、端末1Bおよび1Cが入力信号および出力信号の有音/無音を検知し、入力信号が有音状態であり、かつ出力信号が無音状態であった場合に、エンコーダ106で用いられているコーデックを変更するようにしてもよい。
また、本実施形態においては、図18(a)(b)いずれの場合においても、各端末は、コーデックを変更してから、予め設定されたt’’時間だけ入力信号および出力信号が共に無音状態となった場合に、まだ切り替えを完了していないエンコーダ106またはデコーダ107のコーデックを、送信/受信したエンコーダ/デコーダ変更通知に記載されたコーデックに変更する。上述した動作によって、各端末は、エンコーダ106およびデコーダ107のコーデックの変更を完了する。なお、t’’はtやt’に比べて十分小さい方が望ましい。
なお、グループモードにおけるコーデックの変更シーケンスは、1対1の通信の場合のコーデックの変更シーケンスと同一としてもよいし、異なっていてもよい。第1〜第3の実施形態および本実施形態において説明した手法を適宜組み合わせることにより、グループモードにおけるコーデックの変更シーケンスと1対1の通信の場合のコーデックの変更シーケンスを同一とすることも異ならしめることもできる。本実施形態においては、両者が異なる場合を想定して、通信の利用モードを判断する利用モード判断部113dが設けられている。
コーデックの変更が必要なことを検知した時点(電波受信状況の変化が検出された時点や、エンコーダ/デコーダ変更通知が受信された時点等)で、コーデック変更決定部113cは、利用モード判断部113dに対して、利用モードの通知を指示する。指示を受けた利用モード判断部113dは、図示せぬレジスタ等から利用モードの判断結果を読み出し、コーデック変更決定部113cに通知する。コーデック変更決定部113cは、利用モード判断部113dによって通知された利用モードに応じて、以後の動作を決定し、上述したようなコーデックの変更動作を行う。
図19および図20は、上述した動作に基づいて行われるコーデックの変更シーケンスを示している。図19および図20においては、t=t’としている。以下、各端末の具体的な動作について説明する。ただし、上述したように、利用モードの判断に係る動作を行うか否かは任意であるので、以下では説明を省略する。まず、図19の場合(ユーザAが話していて、ユーザBおよびユーザCがユーザAの話を聞いている場合)について説明する。通信状態計測部112は、ネットワークインタフェース部102を介して送信または受信されるデータの通信伝送速度を測定し、その測定値をコーデック変更決定部113cに通知する。コーデック変更決定部113cは、測定値が所定の通信速度を下回るか否かを判定することにより、コーデックを変更するか否かを決定する。
通信状態計測部112によって測定された通信伝送速度が所定の通信速度を下回った場合、コーデック変更決定部113cは、電圧レベル計測部113aに対して、入力信号および出力信号の有音および無音の検知の開始を指示する。指示を受けた電圧レベル計測部113aは、入力信号および出力信号の有音/無音の検知を開始し、検知結果をコーデック変更決定部113cに通知する。コーデック変更決定部113cは、この電圧レベル計測部113aによる有音/無音の検知の結果に基づいて、入力信号および出力信号の状態を監視する。出力信号がt時間連続で有音状態であり、かつ入力信号がt時間連続で無音状態であった場合、コーデック変更決定部113cは、コーデックを変更することを決定し、コーデック選択部113bに対してコーデックの変更を指示する。
指示を受けたコーデック選択部113bは、変更後のコーデックとしてコーデックbを選択し、デコーダ107のコーデック部をコーデック部107bに切り替える(ステップS1901)。以後、デコーダ107は、コーデック部107bにより受信データを復号化する。デコーダ107のコーデック部が切り替えられた後、制御部113は、デコーダ変更通知処理部111に対して、コーデックbへの切り替えを通知すると共に、デコーダ変更通知の生成を指示する。指示を受けたデコーダ変更通知処理部111は、コーデックbの情報を含むデコーダ変更通知を生成し、パケット処理部103へ出力する。デコーダ変更通知は、端末1Bおよび1Cへ送信される(ステップS1902)。
端末1Bおよび1Cにおいて、受信されたデコーダ変更通知はデコーダ変更通知処理部111へ出力される。デコーダ変更通知処理部111は、デコーダ変更通知の内容をコーデック変更決定部113cに通知する。コーデック変更決定部113cは、コーデック選択部113bに対して、デコーダ変更通知の内容を通知すると共に、コーデックの変更を指示する。指示を受けたコーデック選択部113bは、エンコーダ106のコーデック部をコーデック部106bに切り替える(ステップS1903,1904)。なお、前述したように、出力信号が無音状態であり、かつ入力信号が有音状態であることを検出してから、エンコーダ106のコーデック部をコーデック部106bに切り替えるようにしてもよい。
続いて、各端末において、コーデック変更決定部113cは、予め設定されたt’’時間だけ入力信号および出力信号が共に無音状態と判断した場合に、まだ切り替えを完了していないエンコーダ106またはデコーダ107のコーデックの変更をコーデック選択部113bに指示する。指示を受けたコーデック選択部113bは、まだ切り替えを完了していないエンコーダ106またはデコーダ107のコーデック部を、送信または受信したデコーダ変更通知に記載された、コーデックbに対応したコーデック部に切り替える(ステップS1905〜1907)。
次に、図20の場合(ユーザBが話していて、ユーザAおよびユーザCがユーザBの話を聞いている場合)について説明する。前述した動作と同様にして、コーデック変更決定部113cは、電圧レベル計測部113aによる有音/無音の検知の結果に基づいて、入力信号および出力信号の状態を監視する。出力信号がt時間連続で無音状態であり、かつ入力信号がt時間連続で有音状態であった場合、コーデック変更決定部113cは、コーデックを変更することを決定し、コーデック選択部113bに対してコーデックの変更を指示する。
指示を受けたコーデック選択部113bは、変更後のコーデックとしてコーデックbを選択し、エンコーダ106のコーデック部をコーデック部106bに切り替える(ステップS2001)。以後、エンコーダ106は、コーデック部106bにより送信データを符号化する。エンコーダ106のコーデック部が切り替えられた後、制御部113は、エンコーダ変更通知処理部110に対して、コーデックbへの切り替えを通知すると共に、エンコーダ変更通知の生成を指示する。指示を受けたエンコーダ変更通知処理部110は、コーデックbの情報を含むエンコーダ変更通知を生成し、パケット処理部103へ出力する。エンコーダ変更通知は、端末1Bおよび1Cへ送信される(ステップS2002)。
端末1Bおよび1Cにおいて、受信されたエンコーダ変更通知はエンコーダ変更通知処理部110へ出力される。エンコーダ変更通知処理部110は、エンコーダ変更通知の内容をコーデック変更決定部113cに通知する。コーデック変更決定部113cは、電圧レベル計測部113aによる有音/無音の検知の結果に基づいて、入力信号および出力信号の状態を監視する。
端末1Bにおいて、コーデック変更決定部113cは、出力信号が有音状態であり、かつ入力信号が無音状態であると判断し、デコーダ107で用いられているコーデックを変更するため、コーデック選択部113bに対して、エンコーダ変更通知の内容を通知すると共に、デコーダ107のコーデックの変更を指示する。指示を受けたコーデック選択部113bは、エンコーダ変更通知の内容に基づいてコーデックbを選択し、デコーダ107のコーデック部をコーデック部107bに切り替える(ステップS2003)。
また、端末1Cにおいて、コーデック変更決定部113cは、出力信号が無音状態であり、かつ入力信号が有音状態であると判断し、エンコーダ106で用いられているコーデックを変更するため、コーデック選択部113bに対して、エンコーダ変更通知の内容を通知すると共に、エンコーダ106のコーデックの変更を指示する。指示を受けたコーデック選択部113bは、エンコーダ変更通知の内容に基づいてコーデックbを選択し、エンコーダ106のコーデック部をコーデック部106bに切り替える(ステップS2004)。
続いて、図19の場合と同様に、各端末は、まだ切り替えを完了していないエンコーダ106またはデコーダ107のコーデック部を、送信または受信したエンコーダ変更通知に記載されたコーデックbに対応したコーデック部に切り替える(ステップS2005〜S2007)。上述した本実施形態によれば、第1〜第3の実施形態と同様に、コーデックを切り替える際に余分な帯域を必要とせずに、コーデックの切り替え時の音声の途切れや異音の発生を防止することができる等の効果が得られる。
次に、本発明の第5の実施形態について説明する。本実施形態による通信システムは図16と同一であるとする。図21は、本実施形態による端末1A〜1Cの構成を示すブロック図である。図17と同一の構成には同一の符号を付与し、説明を省略する。本実施形態においては、エンコーダ変更通知処理部110およびデコーダ変更通知処理部111に代えて、コーデック変更通知処理部114が設けられている。本実施形態においても、第4の実施形態と同様に、利用モード判断部113dを設けるか否かは任意である。
端末1AがLの位置にある場合、端末1A〜1Cは、共にVoIPを用いてコーデックaによりグループコールをしているものとする。ここで、端末1AがLの位置からL’の位置へ移動したため、端末1Aの電波受信状況が悪くなり、通信伝送速度が減少したとする。通信伝送速度が所定の通信速度を下回った場合には、コーデックaによる通信が困難になることが予想される。以後の各端末の動作は以下のようになる(図22参照)。通信伝送速度が所定の通信速度を下回ったことを検出した時点において、第3の実施形態と同様に、端末1Aはコーデック変更通知を端末1Bおよび1Cへ送信する(ステップS2201)。
端末1Aを使用しているユーザAが話していて、端末1Bを使用しているユーザBおよびユーザCがユーザAの話を聞いている場合、端末1Aにおいて、入力信号は無音を示し、出力信号は有音を示している。この場合、ユーザAが、予め設定されたしきい値であるt時間連続で話をし(t時間連続で端末1Aにおける出力信号が有音状態となる)、かつ、予め設定されたしきい値であるt’時間連続でユーザBおよびユーザCが話をしなかった(t’時間連続で端末1Aにおける端末1Bおよび1Cからの入力信号が無音状態となる)時点で、端末1Aは、デコーダ107で用いられているコーデックを、現在の通信伝送速度に適したコーデックbに変更する(ステップS2202)。
また、端末1Bは、端末1Aから送信されたコーデック変更通知を受信し、入力/出力信号の有音/無音の検出を開始する。第3の実施形態と同様にして、ユーザAが、予め設定されたしきい値であるt時間連続で話をし(t時間連続で端末1Bにおける入力信号が有音状態となる)、かつ、予め設定されたしきい値であるt’時間連続でユーザBが話をしなかった(t’時間連続で端末1Bにおける出力信号が無音状態となる)時点で、端末1Bは、エンコーダ106で用いられているコーデックを、コーデック変更通知が示すコーデックbに変更する(ステップS2203)。端末1Cも端末1Bと同様にして、エンコーダ106で用いられているコーデックを、コーデック変更通知が示すコーデックbに変更する(ステップS2204)。
続いて、第4の実施形態と同様に、各端末は、コーデックを変更してから、予め設定されたt’’時間だけ入力信号および出力信号が共に無音状態となった場合に、まだ切り替えを完了していないエンコーダ106またはデコーダ107のコーデックを、送信/受信したエンコーダ/デコーダ変更通知に記載されたコーデックに変更する(ステップS2205〜2207)。
また、図示していないが、ユーザBが話していて、ユーザAおよびユーザCがユーザBの話を聞いている場合には、各端末の動作は以下のようになる。通信伝送速度が所定の通信速度を下回ったことを検出した時点において、第3の実施形態と同様に、端末1Aは、現在の通信伝送速度に適したコーデックbを選択し、デコーダ107のコーデックをコーデックbに変更することを通知するためのコーデック変更通知を端末1Bおよび1Cへ送信する。
コーデック変更通知の送信後、端末1Aは、入力/出力信号の有音/無音の検出を開始する。この場合、ユーザBが、予め設定されたしきい値であるt時間連続で話をし(t時間連続で端末1Aにおける端末1Bからの入力信号が有音状態となる)、かつ、予め設定されたしきい値であるt’時間連続でユーザAが話をしなかった(t’時間連続で端末1Aにおける出力信号が無音状態となる)時点で、端末1Aは、エンコーダ106で用いられているコーデックを、現在の通信伝送速度に適したコーデックbに変更する。
端末1Bは、端末1Aから送信されたコーデック変更通知を受信し、入力/出力信号の有音/無音の検出を開始する。この場合、ユーザBが、予め設定されたしきい値であるt時間連続で話をし(t時間連続で端末1Bにおける出力信号が有音状態となる)、かつ、予め設定されたしきい値であるt’時間連続でユーザAおよびユーザCが話をしなかった(t’時間連続で端末1Bにおける入力信号が無音状態となる)時点で、端末1Bは、デコーダ107で用いられているコーデックを、現在の通信伝送速度に適したコーデックbに変更する。
また、端末1Cは、端末1Aから送信されたコーデック変更通知を受信し、入力/出力信号の有音/無音の検出を開始する。この場合、ユーザBが、予め設定されたしきい値であるt時間連続で話をし(t時間連続で端末1Cにおける入力信号が有音状態となる)、かつ、予め設定されたしきい値であるt’時間連続でユーザCが話をしなかった(t’時間連続で端末1Cにおける出力信号が無音状態となる)時点で、端末1Cは、エンコーダ106で用いられているコーデックを、現在の通信伝送速度に適したコーデックbに変更する。
上述した本実施形態によれば、第1〜第4の実施形態と同様に、コーデックを切り替える際に余分な帯域を必要とせずに、コーデックの切り替え時の音声の途切れや異音の発生を防止することができる等の効果が得られる。
なお、上述した全ての実施形態において、端末1Aにおいて電波受信状況が悪くなった場合を例として説明したが、電波受信状況が良くなった場合も同様である。また、コーデックaからコーデックbへ変更する場合を例として説明したが、コーデックの変更はこれに限られない。
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成はこれらの実施の形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
1A,1B・・・端末、21,22,23・・・AP、30・・・バックボーンネットワーク、101・・・アンテナ、102・・・ネットワークインタフェース部、103・・・パケット処理部、104・・・マイク、105・・・ADC、106・・・エンコーダ、107・・・デコーダ、108・・・DAC、109・・・スピーカー、110・・・エンコーダ変更通知処理部、111・・・デコーダ変更通知処理部、112・・・通信状態計測部、113・・・制御部、113a・・・電圧レベル計測部、113b・・・コーデック選択部、113c・・・コーデック変更決定部、113d・・・利用モード判断部、114・・・コーデック変更通知処理部、115・・・アプリケーション、210,220,230・・・エリア。