以下、図面と共に本発明に係る通信装置、及びコーデック変換方法の好適な実施形態について詳細に説明する。なお、図面の説明においては同一要素には同一符号を付し、重複する説明を省略する。
(第1実施形態)
本実施形態においては、一のセッションが確保された通信装置間での通信中に、該通信に適用されている切替前コーデックを切替後コーデックに切替えるコーデック切替を行う通信制御装置の具体例として他の通信装置と通信を行う端末である通信端末20(なお、本明細書において、記載の便宜上、通信端末20a〜通信端末20dを区別する場合がある。通信端末20a〜通信端末20dを全て含める場合、或いは通信端末20a〜通信端末20dを特に区別する必要がない場合には「通信端末20」と称する)を用いる。
図1に本実施形態に係る通信端末(通信装置、又は通信制御装置)20を示す。通信端末20は、具体的には携帯電話機、簡易型携帯電話機(PHS:PersonalHandy-phone System)、通信機能を有する携帯型情報端末(PDA:Personal Digital Assistant)、パーソナルコンピュータ(PC:Personal Computer)、スマートフォン、ゲーム機器等に相当する。
通信端末20は、通信ネットワーク60を通じて他の通信装置と接続可能であり、該他の通信装置との間で、例えば、音声通信(第1の通信種別)、或いは、ストリーミング通信(第2の通信種別)等を行う。通信端末20は、所定のコーデック(すなわち、画像、音声、又はテキスト等のデータの圧縮及び伸張を含めた符号化及び復号処理)が適用された通信を行う機能を有している。「コーデックが適用された通信」とは、該コーデックに従って通信を行うことをいう。通信は、通信端末20と通信相手の他の通信端末20との間でセッションを確保した上で行われる。通信端末20は、コーデックとして圧縮率が高いものから低いものまで複数の種類のコーデックを利用することが可能となっている。
図1に示すように、通信端末20aは、具体的には、通信種別検知部11a、状態変化検知部12a、切替方法保持部13a、切替方法選択部14a、コーデック切替部15a、通信制御部16a、及び切替判断部18aを備えて構成されている。図1に示すように通信端末20aは、インターネット或いは通信事業者が設置しているネットワーク等の通信ネットワーク60に他の通信装置(例えば、他の通信端末20b及びサーバ10)と通信可能な状態で接続されている。図1における通信端末20a(通信装置、通信端末)、通信端末20b(他の通信端末)及びサーバ10は共に同様の後述する本発明に係る機能を備えている。後述のコーデック切替の要求を行う端末が通信端末20aであり、コーデック切替の要求を受信する端末が通信端末20bである。通信端末20a及び通信端末20bの両方を指す場合には、通信端末20と称する。なお、図1では通信端末20bの機能の記載を省略している。
通信種別検知部11aは、通信端末20aと、通信端末20b或いはサーバ10と、の間で現在行っている通信の種別である通信種別を検知する機能を有する。ここで通信種別とは、通信の種類を示し、ストリーミング通信、音声通信、或いはパケット通信などの別を指す。本実施形態においては説明のための例としてストリーミング通信及び音声通信を用いて説明する。但し通信種別をこれに限定する意図はなく、本発明の趣旨に合致するあらゆる通信種別に対して本発明を適用可能である。
本実施形態においては、寸断の許容範囲が狭い通信種別の例として音声通信を、寸断の許容範囲が広い通信種別の例としてストリーミング通信を、それぞれ用いている。
ここで、寸断とは、送受信される一連のデータの一部が何らかの原因で適正に処理されないことをいう。音声通信では、寸断が生じると直ちに音が途切れる。ストリーミング通信では、寸断が生じると以下に説明する理由によって、音声通信と比べれば直ちに音が途切れるなどの弊害が生じる可能性は低い。一般に寸断の原因としては様々な原因が考えられるが、本実施形態における寸断の原因は、コーデック切替時においてデータ送信側で使用されていたコーデック種別と、データ受信側で使用されていたコーデック種別が合致しないことによって適正に処理できなかったことによる。
寸断の許容範囲とは、通信種別によってどの程度寸断がユーザによって許容されているかのレベルを意味する。ここでは、許容範囲をあくまでも通信種別毎の相対的なものとして捕らえる。例えば、一般的に音声通信とストリーミング通信とでは、ストリーミング通信の場合受信側装置のメモリに一定量のデータを保持(バッファ)しているため少なくともある所定量以下の寸断は特に問題とならない。一方、音声通信の場合、寸断によって音が途切れてしまい、通話者にとって少しの寸断であっても耳障りである。そのため、音声通信とストリーミング通信とを比較した場合には音声通信の方が相対的に寸断に対して弱いといえる。従って、本実施形態においては、相対的に寸断に対して弱い(すなわち、寸断の許容範囲が狭い)通信種別の一例として音声通信を、相対的に寸断に対して強い(すなわち、寸断の許容範囲が広い)通信種別の一例としてストリーミング通信を用いる。
通信種別検知部11aが音声通信とストリーミング通信との別を検知することは、例えば、以下の方法によって実現可能である。
すなわち、通信の開始時に送信される通信制御用データにストリーミング通信であるか音声通信であるかに関する情報を含めることで実現可能である。具体的には、例えば、セッションを開始するためのプロトコルであるSIP(Session Initiation Protocol)の規定によって、通信要求を行いセッションを確保(開始、又は確立)するためのリクエストであるINVITEリクエストが規定されている。当該INVITEリクエストの一部分であって、通話に関する情報がSDP(Session Description Protocol)書式により記載されている部分であるボディ部分に“a=key-mgmt”の記載があるか否かを判断することによって判断できる。記載が存在した場合はストリーミング通信であることが検知できる。
又は、INVITEリクエストの一部分であるリクエストラインのuserinfo部にサービス名を記載することによって種別を判断できるように予め取り決めておくことも可能である。この場合、例えば、リクエストラインの記載が“INVITE audiocommunication@1.1.1.1”である場合には音声通信であり、“INVITE streaming@1.1.1.1”である場合にはストリーミング通信である等と取り決めておくことが可能である。
更に、INVITEリクエストのボディ部分におけるSDP書式において、属性に新たにパラメータを定義することも可能である。この場合、ストリーミング通信の場合は例えば“kind_of_application = streaming”等と定義及び記述することができる。
状態変化検知部12aは、通信状態の変化を検知する機能を有する。ここで、通信状態の変化とは、例えば電波状況の変化に伴い通信速度が低下した場合などが該当する。通信速度の測定については考え得るあらゆる技術を用いることが可能である。状態変化検知部12aは、通信状態の変化を検知すると通信状態が変化した旨の通知、及び通信状態変化後の通信状態に関する情報(具体的には、例えば、通信状態変化後における通信速度)を、後述の切替判断部18aに出力する。
使用可能コーデック保持部17aは、通信端末20aが使用可能であるコーデックに関する情報と、当該コーデックが適用されるべき場合に関する情報と、を保持している。
図2に使用可能コーデック保持部17aが保持している情報の例を示す。図2に示すように使用可能コーデック保持部17aは、「コーデック」、及び「コーデックが適用されるべき場合」の情報を含んで構成される。「コーデック」には、通信端末20aが現在利用可能であるコーデック種別を示す情報が保持されている。「コーデックが適用されるべき場合」には、当該コーデックが適用されるべき場合を、例えば状態変化検知部12aが測定する通信状態に関する情報(例えば通信速度)によって特定するための情報(例えば“Xbps〜Ybps”等の方法によってコーデックが適用されるべき場合を特定する)が保持されている。
切替判断部18aは、状態変化検知部12aから、通信状態が変化した旨の通知を入力した場合に、コーデック切替が必要であるか否かを判断し、コーデック切替が必要であると判断した場合には、当該判断をした旨の情報、及び切替後コーデックを後述の切替方法選択部14aへ出力する機能を有する。
具体的には、切替判断部18aは、状態変化検知部12aから通信状態変化後の通信状態に関する情報を入力し、当該情報と、使用可能コーデック保持部17aに保持されている「コーデックが適用されるべき場合」と、を比較することにより、通信状態変化後の通信状態において適用されるべきコーデック種別を検索する。該検索されたコーデック種別が、切替判断部18aが保持している切替前コーデックと同一である場合、切替判断部18aは、コーデック切替が不要であると判断する。
該検索されたコーデック種別が、切替判断部18aが保持している切替前コーデックと異なる場合、切替判断部18aは、コーデック切替が必要であると判断する。
切替判断部18aがコーデック切替が必要であると判断した場合には、その旨の情報と、切替後コーデックとして上記検索されたコーデックと、を切替方法選択部14aに出力する。切替判断部18aは、切替後コーデックを保持する。この保持された切替後コーデックは、次に切替判断部18aがコーデック切替が必要か否かを判断する場合には切替前コーデックとなる。
なお、切替判断部18aは、通信状態の変化ではなく、通信状態そのものからコーデック切替の必要を判断してもよい。その場合状態変化検知部12aは、通信状態そのものを検出する。
切替方法保持部13aには、コーデック切替方法が、通信種別検知部11が検知する通信種別と関連付けられて保持されている。図3に切替方法保持部13が保持する情報の例を示す。図3に示すように切替方法保持部13が保持する情報は「通信種別」及び「コーデック切替方法」が対応付けられて構成されている。「通信種別」は通信種別検知部11が検知する通信の種別のことであり、例えば“音声通話”或いは“ストリーミング通信”等の種別が保持されている。「コーデック切替方法」とは、通信種別毎にコーデックの切替方法に関する情報が保持されている。なお、図3の説明においては、「コーデック切替方法」とは、実際にはコーデック切替方法は後述する複数の方法をプログラムなどのコードで表現した情報等が該当する。
切替方法選択部14aは、切替判断部18aからコーデック切替が必要である旨の情報を入力すると、切替方法保持部13aを参照することによりコーデック切替方法を選択し、当該選択したコーデック切替方法、及び切替後コーデックをコーデック切替部15aに出力する機能を有する。
具体的には、切替方法選択部14aは、切替判断部18aから、コーデック切替が必要である旨の情報、切替後コーデックを切替判断部18aから入力し、当該入力があった場合に、通信端末20aが行っている通信の通信種別を通信種別検知部11aから入力する。切替方法選択部14aは、入力した通信種別と、切替方法保持部13aが保持している「通信種別」とを比較し、同一である通信種別と関連付けられた「コーデック切替方法」を参照することによって、通信端末20aが現在行っている通信種別に関連付けられたコーデック切替方法を得る。
切替方法選択部14aは、切替方法保持部13aを参照することにより当該入力した通信種別と関連付けられたコーデック切替方法を得る。切替方法選択部14aは当該切替方法保持部13aを参照することによって得られたコーデック切替方法を後述のコーデック切替部15aへ出力する。
コーデック切替部15aは、切替方法選択部14aから入力したコーデック切替方法に従って、通信端末20aが行っている通信に適用されるコーデックを切替前コーデックから切替後コーデックに切替える機能を有する。具体的なコーデック切替えの方法については後で詳述する。
通信制御部16aは、通信相手との間で通信の開始の際に信号の送受信をしたり、通信相手との間でユーザデータの送受信を行ったりする機能を有する。通信制御部16aは、ユーザ間で送受信するユーザデータに対して、通信相手との間で決定されたコーデックに従って、符号化及び復号を行う。また、コーデック切替部15aによってコーデック切替が行われる際に、コーデック切替部15aの制御を受けて、コーデック切替のための信号の送受信を行い、また、コーデック切替処理を行う。
(物理的構成について)
次に通信端末20の物理的構成について説明する。図4に、通信端末20のハードウェア構成を示す。図4に示すように通信端末20は、物理的には、CPU(Central Processing Unit)等の制御装置101、RAM(Random Access Memory)といった揮発性半導体等のメモリ102、アンテナ等の通信を制御する通信装置103、フラッシュメモリーなどの補助記憶部104、テンキーなどの入力装置105、及び、LCD(Liquid Crystal Display)や有機ELディスプレイなどの出力装置106を備える。
通信端末20における通信種別検知部11、状態変化検知部12、切替方法保持部13、切替方法選択部14、コーデック切替部15、通信制御部16、使用可能コーデック保持部17、及び切替判断部18の各機能は、制御装置101、メモリ102等のハードウェア上に所定のソフトウェアを読み込ませることにより、制御装置101の制御のもとで通信装置103、出力装置106、入力装置105を動作させると共に、メモリ102や補助記憶部104におけるデータの読み出し及び書き込みを行うことで実現される。なお、サーバ10の物理的構成も通信端末20と同様である。なお、通信種別検知部11、状態変化検知部12、切替方法保持部13、切替方法選択部14、コーデック切替部15、通信制御部16、使用可能コーデック保持部17、及び切替判断部18は、それぞれ、通信種別検知部11aと通信種別検知部11bと、状態変化検知部12aと状態変化検知部12bと状態変化検知部12cと、切替方法保持部13aと切替方法保持部13bと、切替方法選択部14aと切替方法選択部14bと、コーデック切替部15aとコーデック切替部15bと、通信制御部16aと通信制御部16bと通信制御部16cと、使用可能コーデック保持部17aと使用可能コーデック保持部17bと、及び切替判断部18aと切替判断部18bとを、含む。
(処理の流れについて)
次に図5を用いて本実施形態における通信端末20の処理の流れについて説明する。図5は、通信端末A(通信端末20a、又はサーバ10)と、通信端末B(通信端末20b、又はサーバ10)と、の間で通信を開始(セッションを確保)してからコーデックを切替えるまでの処理の流れを示す図である。通信装置Aと通信装置Bとの相違は、通信装置Aがコーデック切替の要求を送信する通信装置であり、通信装置Bがコーデック切替の要求を受信する通信装置である点である。なお、通信の開始は通信装置Aから始めても通信装置Bから始めてもどちらでもよい。
通信を開始するトリガ(図5の処理が始まるきっかけ)としては、例えば通信端末A及び通信端末Bの一方に対して他方から電話をかける、サーバに接続してストリーミング通信を始める、等が挙げられる。
通信装置A或いは通信装置Bのどちらか一方が他方に対してINVITEリクエストを送信し、セッションを確保する。通信装置Aの通信種別検知部11aは、当該INVITEリクエストを利用して上記説明した方法により通信の通信種別を検知する(ステップS101:通信種別検知ステップ)。この時、INVITEリクエストには使用可能であるコーデックに関する情報を含める。
ここで、使用可能であるコーデックを得る方法について図6を用いて説明する。図6に、使用可能コーデック保持部17が保持する使用可能であるコーデックについての情報の例を示す。このような情報は通信端末20が保持していても、サーバ10が保持していてもよい。図6に示すように使用可能コーデック保持部17は、「使用可能なコーデック」及び「現在適用しているコーデック」を「通信装置」と関連付けて保持している。「使用可能なコーデック」には、関連付けられた通信装置が使用可能であるコーデックの種別が保持されている。また、「現在適用しているコーデック」には、関連付けられている通信装置がおこなっている通信に適用されているコーデックが保持されている。通信制御部16はこの表を参照することによって、使用可能であるコーデックに関する情報を得てINVITEリクエストに含める。なお、通信端末20がこのような情報を保持している場合には、自己が使用可能であるコーデック、及び自己が行っている通信において適用されているコーデックの種別のみ保持していてもよい。
INVITEリクエストを受信した通信装置Bは、200OKレスポンスを送信する。なお、通信装置Bでは、INVITEリクエストに含まれる通信装置Aが使用可能であるコーデックの中から自装置Bが利用可能であるコーデックを、通信装置Aとの間で行う通信に適用すると決定する。上記の200OKレスポンスには、通信に適用されるものとして決定されたコーデックを示す情報が含められる。なお、通信装置A及び通信装置Bの両方において利用可能なコーデックが複数ある場合には、(通信装置Bにおいて)予め記憶されたルール(例えば、最も圧縮率が高いコーデックを適用する等のルール)に従ってコーデックが決定される。以上の処理によりセッションが確保され、当該セッションが用いられて通信が開始される。また、当該通信には、上記のように決定されたコーデックが適用される。通信が開始されると、使用可能コーデック保持部17は、当該通信に適用されているコーデックを示す情報を「現在適用しているコーデック」として記憶する。
通信装置Aの状態変化検知部12aは、通信速度を測定するなどして通信状態の変化を検知する(ステップS102)。なお、図5では、状態変化検知は、通信開始後1回のみ行われるように記載されているが、状態変化検知部12aは、例えば通信ネットワーク60に輻輳が発生した等によって通信状態に変化がないかを常に監視している。状態変化検知部12aが通信の状態変化を検知した場合にステップS103以降の処理が実行される。
切替判断部18aは、状態変化検知部12aから、通信状態が変化した旨の通知を入力した場合に、コーデック切替が必要であるか否かを判断し、コーデック切替が必要であると判断した場合には、当該判断をした旨の情報、及び切替後コーデックを切替方法選択部14aへ出力する(ステップS103)。
切替方法選択部14aは、切替判断部18aからコーデック切替が必要であると判断をした旨の情報を入力すると、切替方法保持部13aを参照することにより、コーデックの切替方法を選択し、当該選択したコーデック切替方法、及び切替後コーデックをコーデック切替部15aに出力する(ステップS104)。
コーデック切替部15aは、切替方法選択部14aから入力したコーデック切替方法に従って、通信装置Aと通信装置Bとの間で行われている通信に適用されているコーデックを切替前コーデックから切替後コーデックに切替える(ステップS105:コーデック切替ステップ)。
(コーデック切替方法について)
次に図7及び図8を用いて本実施形態におけるコーデック切替方法について説明する。図7及び図8は、図5に示した処理の流れの中でステップS105においてなされる処理の流れについて詳細に記載した流れ図である。図7は、通信端末20aにおける通信種別検知部11aが、通信端末20aが現在行っている通信としてストリーミング通信を検知した場合のコーデック切替方法(図3の「Re−INVITE」によって示される方法)を示し、図8は、通信端末20aにおける通信種別検知部11aが、通信端末20aが現在行っている通信として音声通信を検知した場合のコーデック切替方法(図3の「INVITE」によって示される方法)を示す。
図7及び図8では、通信端末Aと通信端末Bとの間で既にセッションが確保されている。以後、該セッションをセッション1(一のセッション)と称する。
図7から説明する。通信端末Aのコーデック切替部15aは、通信制御部16aを介して通信装置Bに対して、SIPに規定されており、既存のセッションに対するINVITEリクエストにあたるreINVITEリクエストを送信する(ステップS201)。このreINVITEリクエストには、通信端末Aが切替を要求するコーデックとしての切替後コーデックを特定する情報が含まれている。これにより、通信装置Aは、通信装置Bに対して、セッション1に切替後コーデックを適用することを提案したこととなる。
通信装置Aは、reINVITEリクエストを送信した時点で、通信制御部16aが通信を制御することにより切替前コーデック、及び切替後コーデックの両方のコーデックの受信が可能な状態となる。
通信装置Aから、reINVITEリクエストを受信した通信装置Bにおけるコーデック切替部15aは、200OKレスポンスを通信制御部16aを介して通信装置Aに対して送信する(ステップS202)。通信装置Bは、セッション1に対して切替後コーデックを適用する。通信端末Bから送信された200OKレスポンスを受信した通信装置Aは、通信制御部16aが通信を制御することにより、200OKレスポンスを受信した時点で、セッション1における切替前コーデックの適用を終了する。
切替前コーデックの適用を終了するとは、具体的には、切替前コーデックのデータの送受信を中止する、或いは、切替前コーデックのデータの処理(符号化及び復号処理)を中止する、等である。
寸断の許容範囲が広い通信中に、上記方法により、切替前コーデックを切替後コーデックに切替えることにより、他のセッションを新たに確保する必要が無いため通信ネットワークへの負荷をより少なくすることが可能となる。なお、本実施形態においては、寸断の許容範囲が広い通信としてストリーミング通信を例にして説明しているが、これに限る意図はない。相対的に寸断の許容範囲が広いあらゆる通信に対してこの方法を適用することができる。
本実施形態における通信装置Bは、ステップS202において、200OKレスポンスを、一つ確保しているセッション(一のセッション)における制御用のポートであるC-Plane用ポートを用いて送出する。一方、通信装置Bにおける通信制御部16aは、切替後コーデックが適用されたメディアを、一つ確保しているセッションにおけるデータ用ポートであるU-Plane用ポートを用いて送出する。その為、通信装置Bは、200OKレスポンスの送信時点においてコーデック切替を行っており、且つ、通信装置Aは、200OKレスポンスを受信した時点で切替前コーデックが適用されたメディアの受信を中断しているにも拘わらず、通信装置Aが、200OKレスポンスを受信した後に切替前コーデックが適用されたメディアを受信することがある。その場合は、通信装置Aは、当該200OKレスポンスを受信した後に受信した切替前コーデックが適用されたメディアを適切に処理することができず通信の寸断が生じることとなる。
なお、切替前コーデックが適用されたメディアの受信している時間を長く設定することによって、遅れて通信装置Aに届いたメディアも受信及び復号等の処理ができることとなり、より寸断の発生を少なくすることが可能である。
本実施形態における通信端末20は、音声通信の場合は別の方法でコーデック切替を行う。以下、図8を用いて説明する。
図8は、通信種別検知部11aが通信種別として音声通信を検知した場合(寸断の許容範囲が狭い通信種別を検知した場合)のコーデック切替方法の流れを示す図である。この処理の始めは、通信装置Aと通信装置Bとが、セッション1(一のセッション)を確保して既に通信を行っている状態で始める。通信装置Bにおけるコーデック切替部15aは、通信制御部16aを介して、通信装置Aに対してINVITEリクエストを送信する(ステップS301)。通信装置Bが送信するINVITEリクエストには通信装置Bにおける切替判断部18aが判断した切替後コーデックを示す情報が含まれている。
通信装置BからINVITEリクエストを受信すると、通信装置Aにおけるコーデック切替部15aは、通信制御部16aを介して通信装置Bに対して200OKレスポンスを送信する(ステップSS302)。通信装置Aが送信する200OKレスポンスには、通信装置Aから送信されたINVITEリクエストに含まれている切替後コーデックを示す情報が含まれている。その後、通信装置Aと通信装置Bとの間でセッション2(他のセッション)を確保して、切替後コーデックが適用された通信が行われる。
セッション2が確保された時刻から所定の時間経過後に、通信装置Bのコーデック切替部15aは、通信制御部16aを介して、セッション1を開放する要求であるBYEリクエストを通信装置Aに対して送信する(ステップS303)。
通信装置BからBYEリクエストを受信すると、通信装置Aのコーデック切替部15aは、通信制御部16aを介して200OKレスポンスを通信装置Bに対して送信する(ステップS304)。これらの処理により、セッション1が開放される。
上記方法によってコーデックを切替えることにより、セッション2が確保された時刻以降、セッション1が開放される時刻までは切替前コーデックが適用された通信、及び切替後コーデックが適用された通信共に処理できるため、コーデック切替によって生じる寸断を減少させることが可能となる。本実施形態においては通信装置Bが通信装置Aに対してBYEリクエストを送信する時刻に関しては通信装置Bにおける設定によって自由に、且つ多くのコストをかけることなく変更可能である。その為、セッション2を確保してから通信装置Bが通信装置Aに対してBYEリクエストを送信することによりセッション1を開放するまでの時間を長く設定することによってコーデック切替による寸断をなくす、又は問題とならないレベルに減少させることが可能となる。
(作用及び効果について)
次に本実施形態における作用及び効果について説明する。
本実施形態における通信端末20a、又はサーバ10は、通信種別検知部11aが、通信中の通信の種別としての通信種別を検知し、コーデック切替部15aが、通信種別検知部11aが検知した通信種別に応じてコーデック切替を行っている。その際、コーデック切替部15aは、通信種別検知部11aが音声通信(第1の通信種別)を検知した場合には新たなセッションを確保することで、寸断の少ない方法によってコーデック切替を行い、通信種別検知部11がストリーミング通信(第2の通信種別)を検知した場合には、新たなセッションを確保することなく、コーデック変換を行っている。
その為、通信の通信種別に応じてコーデックの切替方法を変更することとなり、寸断が許容されていない通信種別である場合に寸断が生じる方法によってコーデックを切替えてしまうことをなくすことが可能となる。
また、コーデック切替の要求を行う通信端末20aは、端末であるため、通信装置の都合によってコーデック切替方法を変更することが可能となる。
また、通信種別検知部11aがストリーミング通信を検知した場合に、コーデック切替部15aは、200OKレスポンスを受信した時刻から所定の時間経過後に、切替前コーデックによるデータ受信を終了してもよい。この場合、当該所定の時間に到着した切替前コーデックによるデータについて適切に受信することができるため、より寸断を減らすことができる。
また、通信端末20aは、通信状態を検知する状態変化検知部12aを更に備え、コーデック切替部15aは、状態変化検知部12aによって検知される通信状態に応じて、コーデック切替を行うため、通信状態が変化した場合にコーデック変更を行うことが可能となる。
例えば、通信状態が悪くなれば、圧縮率の大きいコーデックとし、通信状態が良ければ、圧縮率の小さいコーデックとする等、通信状態に適したコーデックを選択することが可能となる。
(第2実施形態)
上記第1実施形態においては、通信端末20aは、通信種別を検知し、通信の状態変化を検知し、コーデック切替の可否を判断し、コーデック切替方法に関する情報を保持し、コーデック切替方法を選択し、且つ、コーデックを切替えるためのリクエスト(すなわちINVITEリクエスト、或いはreINVITEリクエスト)を送信していた。
しかし、これらの機能は、通信ネットワーク60を通じて通信端末20と通信可能な状態で接続しているサーバ10が備えてもよい。以下詳述する。但し、上記実施形態と同様である部分については、ここでは説明を省略し、相違する部分を中心に説明する。
図9に第2実施形態におけるサーバ10及び通信端末20cの機能構成を示す。この図に示すように、本実施形態のサーバ10は、少なくとも2個の通信端末20と通信ネットワーク60を通じて接続している。通信端末20c及び通信端末20dは、お互いに通信を行っており、機能構成が同様である。
ここで、通信の形態について説明する。サーバが通信を制御する場合の通信形態には2種類ある。一つはサーバが介在される通信形態であり、通信端末20は、直接相手の通信端末20との間でセッションを確保することはなく、各通信端末20はサーバ10との間でセッションを確保する。他方は、通信端末20は、相手の通信端末20との間で直接セッションを確保する方法である。本発明はその両方の形態に適用可能である。
本実施形態におけるサーバ10は、具体的には、通信種別検知部11b、状態変化検知部12b、切替方法保持部13b、切替方法選択部14b、コーデック切替部15b、通信制御部16b、使用可能コーデック保持部17b、及び切替判断部18bを含んで構成されている。
通信種別検知部11bは、サーバ10に通信ネットワーク60を通じて接続している通信端末20cと通信端末20dとの間で行われている通信の通信種別を検知する機能を有する。
状態変化検知部12bは、通信ネットワーク60上の輻輳の情報等を用いて通信状態の変化を検知する機能を有する。また、本実施形態においては、後述するとおり通信端末20c及び通信端末20dは状態変化検知部12cを備えており、上記説明した第1実施形態と同様に通信速度等から通信状態変化を検知している。本実施形態においては、通信端末20における状態変化検知部12cが通信状態変化を検知した場合、状態変化検知部12cは、通信状態変化を検知した旨の情報をサーバ10へ送信している。それによって、本実施形態においては、通信端末20における状態変化検知部12cが通信状態変化を検知した場合も、サーバ10の状態変化検知部12bは通信状態変化を検知することができる。すなわち、サーバ10の状態変化検知部12bが通信状態変化を検知する場合には(1)通信ネットワーク60上の輻輳等を用いて通信状態の変化を検知する場合、及び(2)通信端末20における状態変化検知部12cが通信状態変化を検知した場合、が含まれる。以後、両者を特定する必要がある場合には(1)の場合を「ネットワーク上の通信状態変化」と称し、(2)の場合を「端末における通信状態の変化」と称する。状態変化検知部12bは、通信状態の変化を検知すると通信状態が変化した旨の通知、及び通信状態変化後の通信状態に関する情報(具体的には、例えば、通信状態変化後における通信速度)を、後述の切替判断部18bに出力する。
使用可能コーデック保持部17bは、サーバ10が使用可能であるコーデックに関する情報と、当該コーデックが適用されるべき場合に関する情報と、を保持している。
図2に使用可能コーデック保持部17bが保持している情報の例を示す。図2の内容については上記第1実施形態における説明と同様である。
切替判断部18bは、状態変化検知部12bから、通信状態が変化した旨の通知を入力した場合に、コーデック切替が必要であるか否かを判断し、コーデック切替が必要であると判断した場合には、当該判断をした旨の情報、及び切替後コーデックを後述の切替方法選択部14bへ出力する機能を有する。
具体的には、切替判断部18bは、状態変化検知部12bから通信状態変化後の通信状態に関する情報を入力し、当該情報と、使用可能コーデック保持部17bに保持されている「コーデックが適用されるべき場合」と、を比較することにより、通信状態変化後の通信状態において適用されるべきコーデック種別を検索する。該検索したコーデック種別が、切替判断部18bが保持している切替前コーデックと同一である場合、切替判断部18bは、コーデック切替が不要であると判断する。
該検索したコーデック種別が、切替判断部18bが保持している切替前コーデックと異なる場合、切替判断部18bは、コーデック切替が必要であると判断する。
切替判断部18bがコーデック切替が必要であると判断した場合には、その旨の情報と、切替後コーデックとして上記検索したコーデックと、を切替方法選択部14bに出力する。切替判断部18bは、切替後コーデックを保持する(これは次に切替判断部18bがコーデック切替が必要か否かを判断する場合には切替前コーデックとなる)。
切替方法保持部13bには、コーデック切替方法が、通信種別検知部11bが検知する通信種別と関連付けられて保持されている。図3に切替方法保持部13が保持する情報の例を示す。図3の説明は、上記第1実施形態の場合と同様である。
切替方法選択部14bは、切替判断部18bからコーデック切替が必要である旨の情報を入力すると、切替方法保持部13bを参照することによりコーデックの切替方法を選択し、当該選択したコーデック切替方法、及び切替後コーデックをコーデック切替部15bに出力する機能を有する。
具体的には、切替方法選択部14bは、切替判断部18bから、コーデック切替が必要である旨の情報、切替後コーデックを切替判断部18bから入力し、当該入力があった場合に、通信端末20cと通信端末20dとの間で行われている通信の通信種別を通信種別検知部11bから入力する。切替方法選択部14bは、入力した通信種別と、切替方法保持部13bが保持している「通信種別」とを比較し、同一である通信種別と関連付けられた「コーデック切替方法」を参照することによって、通信端末20cと通信端末20dとの間で現在行われている通信種別に関連付けられたコーデック切替方法を得る。
コーデック切替部15bは、切替方法選択部14bから入力したコーデック切替方法に従って、通信端末20cと通信端末20dとの間で行われている通信に適用されるコーデックを切替前コーデックから切替後コーデックに切替える機能を有する。具体的なコーデック切替えの方法については後で詳述する。
図9に示すように本実施形態における通信端末20c及び通信端末20dは、状態変化検知部12c、及び通信制御部16cを含んで構成される。
状態変化検知部12cは、通信状態の変化を検知する機能を有する。具体的には、状態変化検知部12cは、通信速度を測定し、当該測定した通信速度から通信状態の変化を検知する。状態変化検知部12cは、通信状態の変化を検知した場合には、検知した情報をサーバ10へ送信する。
(コーデック切替方法について)
次に図10〜13を用いて本実施形態におけるコーデック切替方法について説明する。図10〜13は、図5におけるステップS105における処理の流れを示したものである。
図10は、通信種別検知部11bが通信種別としてストリーミング通信を検知した場合(寸断の許容範囲が広い通信種別を検知した場合)のコーデック切替方法の流れを示す図である。なお、図10に示す処理は、図5のS101〜S104に相当する処理が既に行われており、コーデックを切り替えることを前提としたものである。
通信装置Aにおけるコーデック切替部15bは、通信制御部16bを介して通信装置Bに対して、SIPに規定されているreINVITEリクエストを送信する(ステップS401)。
reINVITEリクエストを受信したときに、通信装置Bにおける通信制御部16cは、更新後コーデックが適用されたメディアの受信を開始する。すなわちこの時点以降、通信装置Bは、切替前コーデックが適用されたメディアと切替後コーデックが適用されたメディアとの両方のメディアを受信可能となる。
次に、通信装置Bは、通信制御部16cを介して200OKレスポンスを通信装置Aに対して送信する(ステップS402)。200OKレスポンスを受信すると、通信装置Aにおけるコーデック切替部15bは、送信するメディアを更新後コーデックが適用されたメディアとする指示を通信制御部16bに出力する。
通信装置Bの通信制御部16cは、切替後コーデックが適用されたメディアを送信する(ステップS402)。
切替後コーデックが適用されたメディアを最初に受信した時点で、通信端末Bにおける通信制御部16cは切替前コーデックの受信を終了する。しかし、電波状況の変化など通信上の様々な理由により寸断の可能性がある。
次に図11を用いて、通信種別が音声通信(寸断の許容範囲が狭い通信種別)であった場合の処理の流れを説明する。図11の処理は、通信装置B同士(通信端末20c及び通信端末20d)が、通信装置A(サーバ10)を通じてセッション1を確保して既に通信を行っている状態で始める。なお、図11に示す処理は、図5のS101〜S104に相当する処理が既に行われており、コーデックを切り替えることを前提としたものである。
通信装置Aにおけるコーデック切替部15bは、通信制御部16bを介してINVITEリクエストを通信装置Bに対して送信する(ステップS501)。INVITEリクエストには、通信装置Aの切替判断部18bが判断した切替後コーデックを示す情報が含まれている。
INVITEリクエストを受信した通信装置Bは、200OKレスポンスを通信装置Aに対して送信する(ステップS502)。これらの処理により切替後コーデックが適用された通信のためのセッション2が確保される。
セッション2が確保された時刻から所定の時間経過後に、通信装置Aにおけるコーデック切替部15bは、セッションを終了するためのリクエストであるBYEリクエストを通信制御部16bを介して通信措置Bに対して送信する(ステップS504)。この送信は、セッション1において(セッション1を用いて)行われる。
BYEリクエストを受信すると、通信装置Bは、200OKレスポンスを通信装置Aに対して送信する(ステップS505)。
これらの処理により、セッション1が開放される。上記方法によれば、セッション2が確保された時刻からセッション1が開放される時刻までの間は切替前コーデックが適用されているメディア、及び切替後コーデックが適用されているメディアの両方を適切に処理することが可能となる。その為、コーデック切替時の寸断をより少なくすることが可能となる。
セッション2を確保してから、通信装置Bに対してBYEリクエストを送信してセッション1を開放するまでの時間を長く設定することによってコーデック切替による寸断をなくす、又は問題とならないレベルに減少させることが可能となる。
本実施形態においては、BYEリクエストを送信する(ステップS504)時刻(すなわち、セッション1を開放する時刻)は、通信装置Aにおいてソフトウェア的に設定することが可能である。その為、他の方法と比較してより簡易に(多くの費用を掛けることなく)コーデック切替時の寸断を減少又はなくすことが可能となる。
上記説明は、通信装置A(サーバ10)における状態変化検知部12bがネットワーク上の通信状態変化を検知した例を示した。通信装置A(サーバ10)における状態変化検知部12bが、端末における通信状態変化を検知する場合について以下説明する。
この場合、図11における通信装置Bにおける状態変化検知部12cは、通信状態変化を検知する。通信状態変化を検知した状態変化検知部12cは、通信状態変化を検知した旨の情報を通信制御部16cを介してサーバ10に対して送信する。サーバ10における状態変化検知部12bが通信状態変化を検知した旨の情報を受信すると、サーバ10におけるコーデック切替部15bは、通信制御部16bを介してINVITEリクエストを端末A及び端末Bに対して送信する(ステップS501)。ステップS501以下の処理は上記と同様である。
次に、図12を用いて、通信種別が音声通信(寸断の許容範囲が狭い通信種別)であった場合の別のコーデック変換方法を説明する。図11を用いて説明した処理との差は、通信を行っている第1の通信装置及び第2の通信装置B(通信端末20c及び通信端末20d)と、通信装置A(サーバ10)と、の間でそれぞれ行われている通信のコーデックを両方とも切替えるのではなく、通信を行っている二つの通信装置Bのなかの一方である第1の通信装置Bと、通信装置Aと、の間のコーデックのみを切替える点である。これは、例えば、第1の通信装置Bのみで通信状態の変化が検出されて、その旨の情報が第1の通信装置Bから通信装置Aに送信された場合に起こる。一方、図11を用いて説明した処理では、例えば、通信装置Aの状態変化検知部12bが(第1及び第2の通信装置Bからの通知でなく)通信状態の変化を検知した場合、及び第1及び第2の通信装置Bの両方から通信装置Aに通信状態の変化が通知された場合の何れかの処理である。
図11の場合と同様に、図12においても第1の通信装置Bと第2の通信装置Bとが、通信装置Aを通じてセッション1を確保して既に通信を行っている状態で始める。
通信装置Aにおけるコーデック切替部15bは、通信制御部16bを介して、コーデックの切替を行おうとしている第1の端末装置Bに対して、INVITEリクエストを送信する(ステップS601)。INVITEリクエストには、通信装置Aの切替判断部18bが判断した切替後コーデックを示す情報が含まれている。
INVITEリクエストを受信した第1の通信装置Bは、200OKレスポンスを通信装置Aに対して送信する(ステップS602)。これらの処理により、通信装置Aと、第1の通信装置Bと、の間に切替後コーデックが適用された通信のためのセッション2が確保される。
通信装置Aと、第1の通信装置Bと、の間にセッション2が確保された時刻から所定の時間経過後に、通信装置Aにおけるコーデック切替部15bは、セッションを終了するためのリクエストであるBYEリクエストを通信制御部16bを介して第1の通信措置Bに対して送信する(ステップS603)。この送信は、セッション1において(セッション1を用いて)行われる。
BYEリクエストを受信すると、第1の通信装置Bは、200OKレスポンスを通信装置Aに対して送信する(ステップS604)。これによって、第1の通信装置Bと、通信装置Aと、の間のセッション1が開放される。
以上説明した方法によって、第1の通信装置Bと通信装置Aとの間で行われる通信は更新後のコーデックが適用されることとなるが、第2の通信装置Bと通信装置Aとの間で行われる通信は更新前のコーデックが適用されたままとなる。そこで、通信装置Aは、更新前コーデックと更新後コーデックとを変換する処理であるトランスコーデックを行う。
すなわち、通信装置Aは、第1の通信装置Bとの間で、セッション2を用いて行われている更新後コーデックが適用された通信と、第2の通信装置Bとの間で、セッション1を用いて行われている更新前コーデックが適用された通信と、を相互に変換(トランスコーデック)することによって、第1の通信装置Bと第2の通信装置Bとの間で通信が行えるようにする。
図13には、サーバ10がコーデック切替を制御するが、セッションは通信端末20としての通信装置A及び通信装置Bの間で確保されている場合の処理を示す。この場合、サーバ10における切替判断部18がコーデック切替を判断し、通信装置A及び通信装置Bの少なくとも何れか一方に対してコーデック切替の指示(提案)を送信する(ステップS700:コーデック切替ステップ)。
指示には、判断したコーデックの切替え法を示す情報が含まれる。通信装置A及び通信装置Bの少なくともいずれかは、その情報に基づいてコーデック切替処理を行う。
即ち、その後の処理については、サーバ10の判断に応じて図7又は図8で示した処理と同様である。
なお、サーバ10による通信装置A及び通信装置Bの制御は、具体的には、通話の当事者(通信端末)以外の第三者が呼制御を行う第三者呼び制御(3rd Party Call Control:3pcc)の技術を用いることによって実現可能である。
(作用及び効果について)
次に本実施形態における作用及び効果について説明する。
また、コーデック切替を要求するサーバ10が、通信を行っている両方の通信端末20c及び通信端末20dが利用可能であるコーデックの種類を認識できるため、最適なコーデックに切替えることができる。
図3及び図6に示す情報のみサーバ10が保持していてもよい。すなわち図9に示す状態変化検知部12bを通信端末20が保持していてもよい。その場合、サーバ10が、最適なコーデックを判断することが可能である。また、この場合状態変化検知部12が検知する状態変化の種類が増えるという効果を得ることができる。すなわち、この場合電波レベル、ハンドオーバ端末がビジーであるか否か等の情報を状態変化を検出する情報として含めることが可能となる。
なお、状態変化検出部12をサーバ10が備えることにより、更に多くの情報を得ることができる。すなわち通信端末20c、及び通信端末20d両方の端末の状態、ネットワーク状態(輻輳、全体リソース、通信速度などを含む)、等を状態変化を検出する情報として含めることができる。また、状態変化検出部12bをサーバ10が備えることにより、状態が変化した旨の通知を通信ネットワーク60を通じて行う必要がないという効果を得ることができる。
また、通信端末20は、通信状態を検知する状態変化検知部12を更に備え、コーデック切替部は、状態変化検知部12によって検知される通信状態に応じて、コーデック切替を行うことが好適である。これにより、通信状態が変化した場合にコーデック変更を行うことが可能となる。
本実施形態におけるサーバ10のコーデック切替部15は、通信端末20が検知した通信状態の変化に関する情報を受信した場合にも、コーデック切替を行っているため、通信端末20における通信速度等が低下した場合等もコーデック切替を行うことが可能となる。