以下、図面を参照して、本発明の実施の形態の一例について説明する。
まず図1を参照して、本発明の実施形態における、情報処理システムの構成の一例について説明する。
本発明の情報処理システムは、複数の情報処理装置(複数のクライアント端末100及びサーバ200)が、ネットワーク101を介して通信可能に接続されて構成されている。
クライアント端末100(クライアント端末100A~100Dの総称)は、ユーザ情報の入力を受け付けて、ユーザを電子会議に参加させるための表示端末であり、マイクやスピーカ、カメラを備える。
マイクでの音声入力や、カメラによる画像撮影行う端末を入力端末と呼び、スピーカでの音声再生や、カメラで撮影した画像を再生出力する端末を出力端末と呼び、その両方を行う端末を入出力端末と呼ぶ。
サーバ200は、クライアント端末100より受信したユーザ情報や、カメラ画像、音声の情報を記憶し、必要なクライアント端末に配信して電子会議を行う機能を備える。
なお、本発明の説明においては、現実の会議室AにUser001、User002、User00X、User00Yが居り、現実の会議室BにUser003、User004が居るものとする。
また、クライアント端末100A~100Dの各端末は、仮想の会議室であるroom001に、サーバ200上で入室することで電子会議を行うことができる。以上が図1の説明である。
次に図2を参照して、本発明の実施形態における、各種装置のハードウェア構成の一例について説明する。
図2において、201はCPUで、システムバス204に接続される各デバイスやコントローラを統括的に制御する。また、ROM202あるいは外部メモリ211には、CPU201の制御プログラムであるBIOS(Basic Input / Output System)やオペレーティングシステムプログラム(以下、OS)や、各サーバ或いは各PCの実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。
203はRAMで、CPU201の主メモリ、ワークエリア等として機能する。CPU201は、処理の実行に際して必要なプログラム等をROM202あるいは外部メモリ211からRAM203にロードして、該ロードしたプログラムを実行することで各種動作を実現するものである。
また、205は入力コントローラで、キーボード(KB)や不図示のマウス等のポインティングデバイス、タッチパネル、カメラ等の入力装置209からの入力を制御する。
206はビデオコントローラで、ディスプレイ装置210(例:CRTディスプレイ)等の表示器(外部出力装置)への表示を制御する。なお、ディスプレイ装置210に示す表示機器はCRTディスプレイだけでなく、液晶ディスプレイや、マルチタッチスクリーン等の他の表示器であってもよい。また、例えばプロジェクタのような外部出力装置であってもよい。
なおビデオコントローラ206は、表示制御を行うためのビデオメモリ(VRAM)を制御することが可能で、ビデオメモリ領域としてRAM203の一部を利用することもできるし、別途専用のビデオメモリを設けることも可能である。本実施形態においては、各クライアント端末100は、クライアント端末100を通常する場合の表示に用いられる第1のビデオメモリ領域と、所定の画面が表示される場合に、第1のビデオメモリ領域の表示内容に重ねて別の表示をするために用いられる第2のビデオメモリ領域を有している。ビデオメモリ領域は2つに限ったものではなく、情報処理装置の資源が許す限り複数有することが可能なものとする。
212は、音声入出力コントローラで、マイク/スピーカ213(図1における102及び103)からの入出力を制御する。マイクから入力された音声を音声認識することが可能となっている。スピーカにはイヤホンを接続することも可能である。
207はメモリコントローラで、ブートプログラム,各種のアプリケーション,フォントデータ,ユーザファイル,編集ファイル,各種データ等を記憶するハードディスク(HD)や、フレキシブルディスク(FD)、或いはPCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)メモリ等の外部メモリ211へのアクセスを制御する。
208は通信I/Fコントローラで、ネットワーク(例えば、図1に示したネットワーク150(例:LAN等))を介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いた通信や、ISDNなどの電話回線、および携帯電話の3G回線を用いた通信等が可能である。
なお、CPU201は、例えばRAM203内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、ディスプレイ装置210上での表示を可能としている。また、CPU201は、ディスプレイ装置210上に表示される不図示のマウスカーソル等でのユーザ指示を可能とする。
また、外部メモリ211等の、情報を永続的に記憶するための記憶装置(記憶媒体)は、その形態をハードディスク等の記憶装置に限定するものではない。例えば、SSD(Solid State Drive)などの媒体であってもよい。
本発明を実現するための後述する各種プログラムは、外部メモリ211に記録されており、必要に応じてRAM203にロードされることによりCPU201によって実行されるものである。さらに、上記プログラムの実行時に用いられる定義ファイル及び各種情報テーブル等も、外部メモリ211に格納されており、これらについての詳細な説明も後述する。以上が図2の説明である。
次に図3を参照して、本発明の実施形態における、各種装置の機能構成の一例について説明する。
ユーザ情報入力受付部311は、ユーザ操作によるユーザ情報の入力を受け付ける。ユーザ情報とは、例えばユーザID及びパスワードである。ユーザ情報の一例を図8のユーザ情報800に示す。
なお、本実施形態の説明においては、ユーザID及びパスワードをユーザ情報としたが、ユーザを特定できる情報であればよいため、ユーザIDのみをユーザ情報として入力を受け付けてもよい。
ログイン要求部312は、ユーザ情報入力受付部311において入力を受け付けたユーザ情報に基づいて、自機のユーザ(自機において入力を受け付けたユーザ情報の示すユーザ)をサーバ200にログインさせる要求(サーバへの接続要求)を送信する。サーバ200の要求受付部321は、当該ログイン要求を受け付ける。
ログインユーザ判定部322は、ログイン要求されたユーザが、既にログイン済みのユーザか判定する。
既にログイン済みのユーザの場合、親機決定部323は、ログイン済みのユーザが既にログインに用いていたクライアント端末を、新たにログイン要求を送信してきたクライアント端末の親機とする(新たにログイン要求を送信してきたクライアント端末を子機)とすることを決定する。
つまり、どの端末を、新たにログイン要求を送信してきたクライアント端末の親機とするか決定する。
子機参加制御部324は、新たにログイン要求を送信してきたクライアント端末を、親機決定部323により決定された端末の子機として、親機のユーザの参加している電子会議に参加させる。
機能特定部325は、子機において実行する(動作させる)機能を特定する。動作制御部326は、機能特定部325において特定された機能を子機において実行させ、サーバ200が当該子機において実行された機能に応じて、入出力情報(伝達情報)の配信制御を行う。
ここでいう入出力情報(伝達情報)とは、例えば、画像や音声であり、カメラ、マイク、スピーカ等の機能によって入出力され、ユーザ間で伝達される情報である。
機能設定部313は、動作制御部326からの指示に従って、自機が動作・実行させるべき機能を自機に設定し、動作させる。以上が図3の説明である。
次に図4を参照して、従来のログイン及び入室処理の流れについて説明する。図4の説明においては、新たにログイン・会議室に入室する端末がクライアント端末100Aであり、既に当該会議室に入室済みのユーザの端末がクライアント端末100Cである場合を例として説明する。
クライアント端末100AのCPU201は、サーバ200の提供するウェブ会議サービスを享受するために、ブラウザソフト上におけるユーザ操作に応じて所定のURLにアクセスし、図9の900に示すようなログイン画面を表示する。
そして、当該ログイン画面においてユーザIDとパスワードの入力を受け付けて、「ログイン」ボタンの押下を受け付けることで、サーバ200へのログイン要求を送信する(ステップS401)。
サーバ200のCPU201は、当該ログイン要求を受け付け(ステップS402)、自装置の外部メモリに予め記憶されているユーザ情報(ユーザID及びパスワード/図8の800に例示)と突き合わせて認証処理(ログイン処理)を行う。
認証が成功した場合(受信したユーザIDを用いたサーバ200へのログインが成功した場合)、図9の910に示すようなメニュー画面の画面情報(例えばhtml情報)を生成して、クライアント端末100Aに送信する(ステップS403)。
なお、従来の処理においては、ログイン処理時に、当該ユーザIDのユーザが別の端末からログイン中かを、サーバ200に記憶されている不図示のログインユーザ一覧を参照して判定し、ログインユーザ一覧に新たに受信したログイン要求のユーザが含まれていない場合は未ログインのユーザとしてログイン処理を実行する。つまり、ログインユーザ一覧に当該ユーザのユーザIDを加えて記憶する。その後処理をステップS403に移行する。
ログインユーザ一覧に新たに受信したログイン要求のユーザが含まれている場合、つまり、既に他の端末で同じユーザがログイン中の場合は、他の端末でログイン中の当該ユーザを強制的にログアウトさせる。そして当該ユーザを再ログインさせ、新たに当該要求を送信してきた送信元の端末に対してステップS403の処理を実行する。
クライアント端末100AのCPU201は、当該画面情報を受信して、受信した画面情報に基づいてメニュー画面910を表示画面に表示する(ステップS404)。
クライアント端末100AのCPU201は、当該メニュー画面910に含まれる仮想の会議室であるルーム(ルームの端末ID)の選択部において、ログインユーザが入室するルームの選択操作を受け付け(ステップS405)、同画面に含まれる「入室」ボタンの押下を受け付けることで、選択中のルームへの、自機で入力を受け付けたユーザIDのユーザの入室要求をサーバ200に送信する(ステップS406)。
クライアント端末100AのCPU201は、当該入室要求に、入室の操作を受け付けたクライアント端末100Aでログイン中のログインユーザのユーザID、入室対象のルームの端末ID(ルームID)、クライアント端末100Aの端末ID(例えばIPアドレス)、クライアント端末100Aの端末種別報を含めて、当該要求をサーバ200に送信する。
端末種別とは、例えばクライアント端末100A自身が、PC(デスクトップPC、ノートPC)なのか携帯端末(例えばタブレットPC、携帯電話等)なのかを識別するための情報である。自装置がPCであれば端末種別=pcの値を送信し、自装置が携帯端末であれば端末種別=mobileの値を送信する。
各クライアント端末100は、自装置の端末種別の情報を、自装置の外部メモリ等の記憶領域に予め保持・記憶しており、その情報を取得して当該要求に埋め込むものとする。
なお、ここではクライアント端末100Aで選択を受け付けたルームを入室要求に含めることで、サーバ200が入室要求及び入室要求がされたルームのルームIDを取得するものとするが、例えば入室するルームの選択操作を受け付けた時点で当該ルームのIDを選択中のルームのIDとしてサーバ200に送信してサーバ200がこれを受け付け、「入室」ボタンの押下を受け付けることで、選択中のルームに、クライアント端末100Aでログイン中のユーザを入室させるよう要求し、サーバ200がこれを受け付けるようにしてもよい。
サーバ200のCPU201は当該入室要求を受け付けると(ステップS407)、要求されたルーム(会議室)にユーザを入室させる入室処理を実行する(ステップS408)。
ここでは、入室処理に際して、どのユーザが、どの会議室のどの会議に、どのような端末種別のどの端末で、どのような通信方法で通信をして入室しているかを登録・記憶する。
具体的には、図8の会議情報810の会議室811に入室するルームのルームIDを、参加者ID813に入室させるユーザのユーザIDを追加する。
本実施形態における説明では、会議室への入室=当該会議室に対応する会議への参加であるものとする。
また、当該ルームに入室中のユーザがいなかった場合は(無人のルームに入室した場合は)、会議を識別する会議IDを発行して会議ID812に挿入、記憶する。2人目以降の場合は、同ルームに入室中のユーザID(参加者)の参加している会議の会議ID(入室中のルームに対応する会議ID)を会議ID812に記憶するものとする。
また、ステップS407で受け付けた入室要求に含まれていたクライアント端末100Aの端末IDを端末ID814に挿入する。また、受信した端末種別の情報を端末種別815に記憶する。
入室通知816は、対応する行のユーザが会議室に入室したことを、同じ会議室内のどのユーザの端末に通知するかを示す情報であるが、従来の入室処理においては入室通知816は存在せず、その値を用いることはない。
入室処理が完了すると、サーバ200のCPU201は、図14の1400に示すような、各クライアント端末100のカメラにより撮像された会議画像を表示する会議画面の画面情報(例えばhtml情報)を、入室したユーザのユーザIDの送信元のクライアント端末100Aに送信する(ステップS409)。
会議画像とは、電子会議において送受信される、カメラで撮影されたカメラ画像であり、主にユーザの姿を撮影した画像である。
クライアント端末100AのCPU201は当該会議画面の画面情報を受信し(ステップS410)、受信した画面情報に基づいて会議画面1400を表示する(ステップS411)。
なお、この時点では会議画面1400に示すように、会議画像の表示領域には画像は表示されていないものとする。
サーバ200のCPU201は、会議画面の画面情報の送信と合わせて、ユーザが入室したルームの会議に参加中のユーザ一覧をクライアント端末100Aに送信し(ステップS409)、クライアント端末100AのCPU201はこれを受信して(ステップS410)、どのユーザの会議画像をどの表示領域に表示するかを割り当ててメモリ上に記憶する(ステップS412)。
また、カメラ機能がオンに設定されている場合は、サーバ200のCPU201は、自機で機能しているカメラ(例えば自機に搭載されているカメラ)で撮像された動画の1フレームごとの画像(フレーム画像)をメモリ上の画像キューに記憶する。クライアント端末上の画像キューの一例を図8の820に示す。
また、当該フレーム画像をサーバ200に順次送信する。サーバ200は当該動画のフレーム画像を受信して、メモリ上の画像キューに記憶する。サーバ上の画像キューの一例を図8の830に示す。
また、マイク機能がオンに設定されている場合は、サーバ200のCPU201は、自機で機能しているマイク(例えば自機に搭載されているマイク)に入力された音声情報を所定の間隔ごとのデータとして、メモリ上の音声キューに記憶する。クライアント端末上の音声キューの構成は、例えば図8の820における画像の代わりに音声情報が記憶されるものである。
また、当該音声情報をサーバ200に順次送信する。サーバ200は当該音声情報を受信して、メモリ上の音声キューに記憶する。サーバ上の音声キューの構成は、例えば図8の830における画像の代わりに音声情報が記憶されるものである。
また、サーバ200のCPU201は、クライアント端末100Aにより新たに会議室に入室したユーザ(例:User001)を、同じ会議室に入室している他のユーザのクライアント端末であるクライアント端末100Cに通知する(ステップS413)。
例えば会議情報810の中のUser001の811~815のデータをクライアント端末100Cに送信する。
なお、図4の説明ではクライアント端末100Cのユーザ(User003)が、クライアント端末100Aのユーザ(User001)と同じ会議に参加している(同じ会議室に入室している)ものとして説明しているが、図8の810に示すように、User003以外にもUser001と同じ会議に参加しているユーザがいる場合、それら同じ会議室に参加中のユーザにもクライアント端末100Aにより新たに会議室に入室したユーザ(例:User001)を、通知する。
クライアント端末100CのCPU201は、当該新たに会議室に入室したユーザの情報を受信して(ステップS414)、自機のメモリに記憶する(ステップS415)。例えば会議情報810と同じ構成で、会議に参加中のユーザの一覧を記憶・管理する。
実際には、会議室に新たなユーザが入室したり、退室したりする都度サーバ200から通知を受け、当該会議に参加中のユーザの一覧を更新する。以上が図4の説明である。
各クライアント端末100のCPU201は、サーバから通知を受けた、同じ会議に参加している他機のユーザ一覧に基づいて、他機のユーザの会議画像及び音声をサーバ200に要求し、サーバ200が要求に応じて画像や音声を送信することで、図14の1410のように会議画面を表示更新して音声を再生する。
次に図5を参照して、本発明の実施形態における入室処理の流れを説明する。
なお、本実施形態の説明においてサーバ200のCPU201は、図4のステップS402において、同じユーザが既にログイン済みであっても当該ユーザを強制ログアウトさせることなく、追加のログイン処理を行って処理をステップS403に移行する。
サーバ200のCPU201は、図4のステップS407において入室要求を受け付けると図5の処理を開始する。
サーバ200のCPU201は、ステップS407で受け付けた入室要求に含まれていたユーザIDを特定し(ステップS501)、同一のユーザが入室要求された会議室に入室中か、会議情報810を参照して判定する(ステップS502)。
同一ユーザが入室中でない場合、処理を図4のステップS408に移行する。同一ユーザが入室中である場合は処理をステップS503に移行する。
サーバ200のCPU201は、図9の920に示すような確認画面の画面情報(html情報)を生成して、入室要求の送信元のクライアント端末100Bに送信する(ステップS503)。
当該確認画面920は、既にログイン及び会議室に入室しているユーザの新たな入室要求を受け付けた場合に、新たな入室要求に基づいて、どのように当該ユーザを入室させるかを確認させる画面であり、また、当該新たな入室要求の送信元のクライアント端末を入室後の会議室の電子会議においてどのように機能させるか(どの機能を実行する端末として会議に参加させるか)を確認するための画面である。
チェックボックス922は、当該確認画面920を表示しているクライアント端末100Bを子機として会議室に入室させるための選択受付部である。
親機選択受付部923は、子機として入室するにあたり、自機をどの端末子機とするかの選択を受け付ける、つまり親機の選択を受け付ける選択受付部であり、クライアント端末100Bによりログイン要求・入室要求されたユーザIDと同じユーザIDでサーバ200にログインし、入室要求された会議室に同じユーザIDで入室中のクライアント端末を選択可能に表示する一覧表示部である。
本実施形態の説明においては、クライアント端末100AでUser001がサーバ200にログイン済み及びルーム001に入室中であり、クライアント端末100Bから新たにUser001のログイン要求及びルーム001への入室要求を受け付けたものとする。
よって、親機選択受付部923には、クライアント端末100Aが選択可能に表示される。
同じIDで既に入室しているクライアント端末が複数ある場合は、複数の当該クライアント端末が親機選択受付部923に一覧表示されるよう、画面情報を作成する。
チェックボックス921は、一般機として会議室に入室するための選択受付部である。一般機とは、親機でも子機でもない端末のことである。一般機として入室を実行した場合は、既に同じユーザIDで入室中のクライアント端末100Aからのユーザの入室及びログインが強制解除され、新たにクライアント端末100Bのユーザを会議室に入室させる。
クライアント端末100Bは当該確認画面920の画面情報を受信して表示画面に表示する(ステップS504)。そして、当該確認画面920においてユーザ操作を受け付ける(ステップS505)。
例えば、「一般機として入室する」の選択を受け付けた状態で「OK」ボタンの押下を受け付けることで、一般機としての入室要求の操作を受け付けたものとする。
例えば、「子機として入室する」の選択を受け付けた状態で、親機の選択を受け付け、「OK」ボタンの押下を受け付けることで、選択されている親機の子機としての入室要求の操作を受け付けたものとする。
クライアント端末100BのCPU201は、自機の備える機能(カメラ、マイク、スピーカ)の全てをオフに設定し(ステップS506)、ステップS505で受け付けた操作の内容をサーバ200に送信する(ステップS507)。
各クライアント端末100は、自機のカメラ、マイク、スピーカ機能のオン/オフを、自機のメモリ上に記憶されている、図8の機能設定850に示す設定テーブルで管理している。機能をオンにする場合、対象の機能名851のON/OFF852をONに設定する。機能をオフにする場合、対象の機能名851のON/OFF852をOFFに設定する。
サーバ200のCPU201は、ステップS505でクライアント端末100Bが受け付けた操作内容の情報を受信し、子機として会議室(例:room001)に入室する操作を受け付けたか判定する(ステップS508)。
一般機として入室する操作を受け付けた場合は、入室先の会議室内の、クライアント端末100Bのユーザ(例:User001)と同じユーザ(クライアント端末100AのUser001)をログアウトさせ、処理を図4のステップS408に移行する。
なお、一般機として入室処理を行った場合、サーバ200のCPU201は、会議情報810における当該入室したユーザのデータの入室通知816に「全機」を挿入して記憶する。
また、「キャンセル」ボタンの押下を受け付けた場合は、ステップS402においてログインしたユーザ(クライアント端末100BのUser001)をサーバ200からログアウトさせる。
入室通知816は、当該入室通知816のデータのユーザが入室したことを、会議に参加中のどの端末に通知するかを定めるデータである。
サーバ200のCPU201は、入室通知816に設定した内容に従って、一般機として入室したクライアント端末100の入室の通知を同じ会議に参加中の全機に送信する。
一方、子機として入室する操作を受け付けたと判定した場合は、処理をステップS509に移行する。
サーバ200のCPU201は、子機として入室する操作を受け付けたと判定した場合に、クライアント端末100Bを子機として対象の会議室に入室させることを決定し、クライアント端末100Bの端末IDをメモリ上に保持する(ステップS509)。
また、確認画面920において選択された親機をクライアント端末100Bの親機とすることを決定し、親機の端末IDをメモリ上に保持する。ここでは親機としてクライアント端末100Aが選択されたものとする(ステップS510)。
サーバ200のCPU201は、当該親機と子機の端末IDを対応付けてメモリ上に記憶する(ステップS511)。具体的には、図8の親子情報840の親機ID841にクライアント端末100Aの値を記録し、子機ID842にクライアント端末100Bの値を記録する。親子情報840は、会議ID作成時点において、会議IDごとに、サーバ200がメモリ上に作成するテーブルである。
子機機能843は、親機ID841と子機ID842の端末の関係において、子機が何の機能を実行する端末として指定されているかを示す。子機機能843には現時点では値は挿入されていない。
サーバ200のCPU201は、クライアント端末100のUser001を入室先の会議室であるroom001に入室させる(ステップS512)。入室後の会議情報の一例を図8の810に示す。
子機としての入室処理の場合、サーバ200のCPU201は、会議情報810における当該入室したユーザのデータの入室通知816に「親機のみ」を挿入して記憶する。
サーバ200のCPU201は、入室通知816に設定した内容に従って、クライアント端末100Aの子機として入室したクライアント端末100の入室の通知を、親機であるクライアント端末100Aにのみ送信する(ステップS513/非表示制御手段に該当)。
つまり、親機以外には、同じユーザが2つの端末から入室していることを通知しない。
入室が通知されていない他の端末は、新たにクライアント端末100BのUser001が入室したことが分からないため、後述する図7の処理でクライアント端末100BのUser001の画像及び音声の要求をすることがなく、また、そもそもクライアント端末100AのUser001の表示領域とクライアント端末100BのUser001の表示領域が個別に生成・会議画面に表示されることもなくなる。
なお、当該通知は図10に示す機能選択画面1000の表示指示を含むものとする。例えば、サーバ200のCPU201は、当該機能選択画面1000の画面情報(html)を作成してクライアント端末100Aに送信する。
機能選択画面1000は、子機として入室したクライアント端末100Bを、何の機能を実行する端末として動作させるかを、親機においてユーザに選択させる画面である。
1001、1002、1003は、それぞれカメラ、マイク、スピーカとして機能させる端末または自機に搭載・接続された専用のデバイス(カメラ、マイク、スピーカ)を選択するための領域である。
サーバ200は、1001、1002、1003において、それぞれプルダウンで子機、専用のデバイスを選択可能に表示できるよう画面を生成している。機能を実行するデバイスの選択の様子を1010及び1020に示す。
1004は、1001で選択されたカメラとして機能させる子機またはデバイスで撮影中の映像を表示する表示部である。
「OK」ボタン1005は、1001、1002、1003において選択された内容を確定するためのボタンである。つまり、どの端末をカメラ、マイク、スピーカの機能を実行する端末とするかを、親機の操作で決定するためのボタンである。
図5の説明に戻る。クライアント端末100AのCPU201は、自機と同じユーザで入室が実行された子機のIDの通知を受け付け、また、機能選択画面1000の表示指示を受け付ける(ステップS514)。
クライアント端末100AのCPU201は、受け付けた指示に含まれる画面情報に従って、機能選択画面1000を表示する(ステップS515)。
クライアント端末100AのCPU201は、機能選択画面1000において、どの端末・デバイスを、どの機能を実行する端末とするかの選択操作を受け付ける(ステップS516)。
例えば、本実施形態の説明においては、カメラとして機能させる端末として、子機のクライアント端末100Bの選択を受け付け、マイク及びスピーカとして機能させる端末としてクライアント端末100A自身(クライアント端末100Aに搭載されているマイク及びスピーカ)の選択を受け付けたものとする。
クライアント端末100AのCPU201は、子機で実行する機能として「カメラ」が指定された旨の情報を、子機においてカメラの機能を有効にするべく、サーバ200に送信する(ステップS517)。また、自機に搭載されているカメラの機能をオフに設定する。
サーバ200のCPU201は、子機で実行する機能として「カメラ」が指定された旨の情報を受け付け、親子情報840の子機機能843に「カメラ」の値を記憶する。(ステップS518)。
サーバ200のCPU201は、子機であるクライアント端末100Bに対して、「カメラ」の機能を有効にするよう通知する(ステップS519)。
クライアント端末100BのCPU201は当該通知を受け付け(ステップS520)、通知された機能を有効にする(ステップS521)。ここでは「カメラ」の機能をオンに設定する。
また、サーバ200のCPU201は、親機であるクライアント端末100Aに対して、画面の表示更新指示を送信する。例えば、図11の1100に示すように、子機となったクライアント端末100Bを識別表示し、クライアント端末100Aがその親機となったことを識別表示する会議画面の画面情報を生成してクライアント端末100Aに送信する(ステップS522)。
図11の調整ボタン1101は、子機のカメラ、マイク、スピーカの質を調整するための機能調整画面1201(図12に図示)を表示するためのボタンであり、当該画面を表示する端末が、他の端末の親機になっていることを示す識別情報である。
クライアント端末100Aは、会議画面1100を受信して表示画面に表示する(ステップS523)。
また、サーバ200のCPU201は、子機であるクライアント端末100Bに対して、画面の表示更新指示を送信する。例えば、図11の1120に示すように、親機となったクライアント端末100Aを識別表示し、クライアント端末100Bがその子機となったことを識別表示する会議画面の画面情報を生成してクライアント端末100Bに送信する(ステップS524)。
クライアント端末100Bは、会議画面1120を受信して表示画面に表示する(ステップS525)。
なお、親機にも子機にもなっていない他のクライアント端末100(例:100C,100D)には、1110のような、従来どおりの会議画面が表示されている。但し、User001の会議画像を撮影するカメラが、クライアント端末100Aからクライアント端末100Bに変更されている場合、User001の表示領域にはクライアント端末100Bのカメラで撮影された会議画像が表示されることとなる。以上が図5の説明である。
次に図6を参照して、本発明の実施形態における、画像及び音声のサーバへの送受信処理の流れについて説明する。
図6の処理は、クライアント端末100によるユーザの会議室への入室が完了したタイミングから開始・実行される。
図6の説明においては、クライアント端末100Bがクライアント端末100Aの子機であり、カメラ端末として動作する端末として入室していることを想定して説明する。
クライアント端末100AのCPU201は、自機で有効になっている機能を特定する。ここではマイク機能が有効になっていると特定する(ステップS601)。
クライアント端末100AのCPU201は、会議終了までの間、所定の時間間隔ごとにステップS603の処理を繰り返す(ステップS602)。例えば0.5秒毎に繰り返す。
クライアント端末100AのCPU201は、自機のマイクから入力されている音声情報を取得し、サーバ200に送信する(ステップS603)。
サーバ200のCPU201は音声情報を受信し(ステップS621)、音声の送受信に際して張られたセッションの情報から送信元の端末IDを特定する(ステップS622)。
サーバ200のCPU201は、親子情報840を参照して、特定された音声の送信元の端末が子機か判定する(ステップS623)。子機でない場合は処理をステップS626に移行し、受信した音声情報を、音声送信元の端末のユーザの音声キュー(不図示)に記憶する(ステップS626)。
音声キューは所定の時間間隔ごとの音声の情報を、シーケンス番号と、ユーザIDと、当該音声を配信した送信先のユーザを管理する情報である。つまり、図8の830に示す画像キューの画像833の代わりに音声情報を記憶・管理する情報である。音声キューは、会議に入室している端末ごとにサーバ200がメモリ上に作成・管理する。
音声の送信元の端末が子機である場合、サーバ200のCPU201は、当該送信元の端末が、マイク機能を実行する端末として指定されているか、子機機能843を参照して判定する(ステップS624)。
マイク機能を実行する端末として指定されている場合には、処理をステップS625に移行し、受信した音声情報を、クライアント端末100A(親機)のユーザの音声キューに記憶する(ステップS625)。マイク機能を実行する端末として指定されていない場合には、音声の記憶をすることなく処理を終了する。
クライアント端末100BのCPU201は、自機で有効になっている機能を特定する。ここではカメラ機能が有効になっていると特定する(ステップS611)。
クライアント端末100BのCPU201は、会議終了までの間、自機のカメラで撮像するカメラ画像1フレームごとにステップS613~S615の処理を繰り返す(ステップS612)。
クライアント端末100AのCPU201は、カメラからの入力画像(映像)を、ステップS613で会議画面に表示する一方で、映像コーデックによる画像(映像)の圧縮処理を行い、圧縮後の画像を、1フレームごとに、順々に自装置のメモリ上の画像キューに保存・記憶する(ステップS614)。
画像キューの一例を図8の画像キュー820に示す。画像キュー820は、各画像の識別番号(端末ID)であり、画像の順序を示すシーケンス番号821と、画像の実体(画像データ/映像の中の1フレームの画像)である画像822の項目から構成される。
クライアント端末100AのCPU201は、自機のカメラから取得した映像の各フレームの画像について、当該画像を取得した順にシーケンス番号を割り振って、画像キュー820に記憶する。
クライアント端末100AのCPU201は、画像キュー820に保存した画像を、サーバ200に、シーケンス番号と共に順次送信する(ステップS615)。つまり、画像キュー820に示す情報をサーバ200に送信する。
サーバ200のCPU201は、当該画像(圧縮データ)を受信し(ステップS627)、画像の送受信に際して張られたセッションの情報から送信元の端末IDを特定する(ステップS628)。
サーバ200のCPU201は、親子情報840を参照して、特定された画像の送信元の端末が子機か判定する(ステップS628)。
サーバ200のCPU201は、子機でない場合は処理をステップS632に移行する。ステップS632では、サーバ200のCPU201は、自装置のメモリ上に保持している、当該画像の送信元のクライアント端末100A(端末ID)での入室ユーザの画像キュー830に追加して記憶する(ステップS632)。
サーバ200のCPU201は、ユーザの会議室への入室処理が行われた場合に、当該ユーザの端末ごとに会議画像キューを生成してメモリ上に保持する。
当該サーバ200のメモリ上の画像キュー830には、クライアント端末100より受信した、画像キュー820のシーケンス番号821、画像822と同じ情報を対応付けて記憶する。
画像の送信元の端末が子機である場合、サーバ200のCPU201は、当該送信元の端末が、カメラ機能を実行する端末として指定されているか、子機機能843を参照して判定する(ステップS630)。
カメラ機能を実行する端末として指定されている場合には、処理をステップS631に移行し、受信した画像を、親機のユーザの画像キュー830に記憶する(ステップS631)。
カメラ機能を実行する端末として指定されていない場合には、画像の記憶をすることなく処理を終了する。以上が図6の説明である。
次に図7を参照して、本発明の実施形態における、サーバからの画像及び音声の取得処理の流れについて説明する。
図7のステップS701以下及びステップS711以下の処理は、サーバ200がユーザの入室処理を完了し、クライアント端末100がサーバ200から入室完了の通知を受け付けた時点から繰り返し実行する。入室完了の通知を受け付けた時点とは、例えば会議画像の受信時点である。
なお、ステップS711以下の処理は、クライアント端末100がサーバ200から受信した、当該クライアント端末100のユーザと同じ会議室に入室しているユーザ一覧に基づいて、当該一覧内のユーザを対象として実行される。
以下、音声の送受信及び再生処理について説明する。
クライアント端末100のCPU201は、自機のスピーカ機能が有効な場合には、ステップS701~S706の処理を繰り返し実行する。
クライアント端末100のCPU201は、他の会議参加者の音声(同じ会議室に入室している他の入室者のユーザIDの音声キューの音声)の取得要求をサーバ200に送信する(ステップS701)。当該要求には、クライアント端末100でサーバ200にログイン中のユーザIDを含めるものとする。
サーバ200のCPU201は当該取得要求を受け付け(ステップS702)、要求元のクライアント端末100でのログインユーザ以外の、当該ログインユーザと同じ会議室に入室中のユーザのユーザIDを、会議情報810を参照して特定する。
そして、特定した他の入室者の音声キューの音声のうち、画像の要求元のクライアント端末100に未送信の、最新のシーケンス番号(最も後ろの番号)の音声を取得して合成し(ステップS703)、合成した音声を要求元のクライアント端末100に送信する(ステップS704)。なお、同じユーザで子機と親機の音声キューが存在する場合、親機の音声キューに記憶されている音声を合成に用いる。
また、合成に用いた各音声に対応付けて、音声を送信した送信先のクライアント端末100で入室中のユーザIDを、送信済みユーザの情報として記憶する。
クライアント端末100のCPU201は、ステップS708で送信された音声情報を受信し(ステップS705)、スピーカで再生する(ステップS706)。
クライアント端末100のCPU201は、受信した音声情報を順次再生するものとする。
以下、画像の送受信及び表示処理について説明する。
クライアント端末100のCPU201は、他の会議参加者のうち所定のユーザを特定し、当該ユーザの会議画像の取得要求をサーバ200に送信する(ステップS711)。例えば、現在会議画面に表示されている表示領域を特定し、その表示領域に対応するユーザの会議画像をサーバに要求する。
当該画像の取得要求には、クライアント端末100でサーバ200にログイン中のユーザIDを含めるものとする。
サーバ200のCPU201は当該取得要求を受け付け(ステップS712)、要求元のクライアント端末100でのログインユーザ以外の、当該ログインユーザと同じ会議室に入室中のユーザのユーザIDであって、要求を受けたユーザのユーザIDを、会議情報810を参照して特定する。そして、取得要求を受け付けたユーザの会議画像を特定する。
特定した他の入室者の画像キューの画像のうち、画像の要求元のクライアント端末100に未送信の、最新のシーケンス番号(最も後ろの番号)の画像を取得し(ステップS713)、取得した会議画像を、当該画像に対応するユーザIDと共に要求元のクライアント端末100に送信する(ステップS714)。
なお、同じユーザで子機と親機の画像キューが存在する場合、親機の画像キューに記憶されている画像を取得し、送信するものとする。
また、画像を送信した送信先のクライアント端末100で入室中のユーザIDを、送信済みユーザ834に記憶する(ステップS715)。
クライアント端末100のCPU201は、ステップS715で送信された画像(圧縮データ)を受信し(ステップS716)、映像コーデックによる伸長処理を行って映像(画像)を復元して、表示中の会議画面に表示する(ステップS717)。
例えば、各ユーザの会議画像を対応する表示領域の番号に割り当ててメモリ上に記憶し、図14の会議画面1410のように表示する。どの表示領域にどのユーザの画像を表示するかの対応付け情報(表示領域のIDとユーザIDを対応付けた情報)は、クライアント端末100のメモリに記憶されているものとする。
クライアント端末100のCPU201は、受信した各ユーザの画像(会議画像)を、それぞれの画像のユーザに対応する表示領域に順次表示・更新し、動画像(映像)として再生・表示する。
ウェブ会議を行う場合、実際には、複数のクライアント端末100が存在する場合があるため、サーバ200のCPU201は、ステップS712~S715を会議室に入室中の、カメラ機能が有効なクライアント端末100の数だけ実行することとなる。以上が図7の説明である。
なお、親機であるクライアント端末100Aにおいては、図11の1101の選択操作を受け付けることで、図12の1200に示す、機能調整画面1201を表示し、スライドバーに対する操作に応じて、各デバイスの機能を実行している端末にサーバ200を介して音量や画質の変更指示を送信する。当該指示を受け付けた端末(例えばクライアント端末100B)が、指示に応じて音量・画質を変更することができる。
「詳細設定」ボタン1202の押下を受け付けた場合は、機能選択画面1000を表示するものとする。
つまり、子機の機能に関して操作可能な画面を生成して親機に送信して表示させる(操作制御手段に該当)。
また、上述した実施形態においては、どの端末を親機とするかを選択させるものとしたが、例えばサーバ200が自動で親機を選択するようにしてもよい。具体的には、入室要求を受け付けたユーザが入室先の会議室に入室している場合、入室中の当該同じユーザIDのユーザの端末のうち、最初に会議室に入室している(データの保存日時が最も古い)ユーザのクライアント端末100を親機としてステップS509で決定する。
また、既に複数の同一IDのユーザが1つの会議室に入室している場合、親子情報840を参照し、親機となっているクライアント端末100を、新たに入室要求を受け付けたユーザのクライアント端末の親機として決定するようにしてもよい。例えば、クライアント端末100Aが親機、クライアント端末100Bが子機であり、User001として入室している会議室に対し、クライアント端末100CからUser001の入室要求を受け付けた場合、クライアント端末100Cをクライアント端末100Aの子機として決定する。
また、上述した説明においては、子機としてログイン・入室したクライアント端末100Bをどの機能を実行する端末とするかを選択させるものとしたが、例えば、図13の確認画面1300を確認画面920の代わりとし、クライアント端末100Bにおいて、自機をどの機能を実行する子機として会議に参加させるかを選択させるようにしてもよい。
具体的には、図5のステップS503でサーバ200のCPU201が確認画面1300の画面情報を生成してクライアント端末100Bに送信する。
クライアント端末100Bは当該確認画面1300を表示画面に表示し、ステップS505で、前述した子機として入室する操作に加えて、1301に示す機能選択受付部に対する、自機をどの機能の端末として会議室に入室させるかの選択操作を受け付ける。そして操作内容をサーバ200に送信する。
サーバ200のCPU201は、ステップS508~S512の処理を実行し、ステップS513及びS518の処理をスキップして、ステップS519で、子機として入室したクライアント端末100Bに対して、機能選択受付部1301で選択を受け付けていた機能を有効にするよう通知(指示)する。
クライアント端末100Bは当該通知を受け付けて、当該通知に応じて、機能選択受付部1301で選択を受け付けていた機能を有効にする。
これにより、会議に新たに参加する端末からの操作により、当該端末を所定の機能を実行する機器として容易に利用可能な仕組みを提供することができる。
また、機能選択画面1000において、確認画面1300の機能選択受付部1301で選択を受け付けていた機能の端末の子機としてのみ、クライアント端末100Bを選択可能に表示するようにしてもよい。
例えば、1301の選択状態に従えば、ステップS513において、機能選択画面1000の1001のプルダウンにクライアント端末100Bを選択可能なように設定し、1002及び1003には設定せずに機能選択画面1000の画面情報を生成し、クライアント端末100A(親機)に送信する。
当該機能選択画面1000を受信して表示するクライアント端末100Aでは、1001のプルダウンにはクライアント端末100Bが選択可能に表示されるが、1002と1003のプルダウンには表示されない。つまり、子機で指定・選択された機能以外選択できない。
また、子機となるクライアント端末100Bがカメラ機能を備えていない場合、自機がカメラ機能を備えず、マイクとスピーカ機能を備えることをサーバ200に通知することで、サーバ200が、機能選択画面1000の1001においてはクライアント端末100Bを選択不可とし、1002及び1003においてはクライアント端末100Bを選択可能にプルダウンに設定するようにしてもよい。
これにより、端末の実行可能な機能を絞り込むことで、ユーザによる機能の選択を容易にし、当該端末を所定の機能を実行する機器として容易に利用可能な仕組みを提供することができる。
また、上述した実施形態においては、音声キュー及び画像キューを、当該音声及び画像の送信元のクライアント端末100ごとに、サーバが生成して管理しているものとしたが、例えば、ユーザごとに音声キュー及び画像キューをメモリ上に生成・記憶して管理してもよい。
この場合、図6のステップS625及びS626の代わりに、音声の受信元の端末のユーザに対応する音声キューに音声を記憶する処理を実行する。また、図6のステップS631及びS632の代わりに、会議画像の受信元の端末のユーザに対応する画像キューに画像を記憶する処理を実行する。
また、上述した実施形態においては、1度同一ユーザによるサーバ200への2重ログインを許容し、会議室への入室要求を受け付けたタイミングで図5の処理を実行しているが、別のタイミングで実行してもよい。
例えば既にサーバ200にログインしているログインユーザと同じユーザIDによるログイン要求を受け付けた場合に、当該ログインユーザの参加している会議(入室している会議室)を特定し、当該会議の会議室への入室要求を受け付けたものと判断して、ステップS501の処理を実行するようにしてもよい。例えば確認画面920において「キャンセル」ボタンの押下を受け付けた場合、当該ログイン要求によるログインは行われず、要求は破棄される。これにより、1度ログインを行うことによる処理リソースの消費を防止できる。
また、例えばクライアント端末を会議室の中央において専用のマイク・スピーカの代わりとしたり、会議室の端に設置して専用のカメラの代わりとしたりする場合、大型のPCに比べて、持ち運び・設置のし易い携帯端末を用いることが多い。
よって、例えば、ログイン要求を受け付けた時点で、ログイン要求の要求元のクライアント端末100が携帯端末かを当該クライアント端末100に問合せ、携帯端末であった場合に図4のログイン処理及び図5の子機としての入室処理を実行するようにしてもよい。
以上説明したように、本発明によれば、会議に参加する端末を、ある機能を実行する機器として容易に利用可能な仕組みを提供することができる。
尚、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、1つの機器からなる装置に適用してもよい。
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD-ROM、CD-R、CD-RWなどがある。また、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD-ROM,DVD-R)などもある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、本発明のプログラムを暗号化してCD-ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
尚、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。
即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。