以下、本発明の実施形態について説明するが、本発明の実施形態は、以下に説明する実施形態に限定されるものではない。なお、以下では、複数の情報処理装置を含む情報処理システムとして、それぞれタッチパネル・ディスプレイ112およびコントローラ114を含み構成される複数の電子情報ボード110を含む、遠隔会議システム100を一例に説明する。
[第1の実施形態]
図1は、第1の実施形態による遠隔会議システム100の概略構成を示す図である。図1に示す遠隔会議システム100は、ネットワーク102を介して相互に接続される、複数の電子情報ボード110A,110Bを含み構成される。電子情報ボード110は、それぞれネットワーク102に接続されており、相互に通信が可能となっている。図1に示す電子情報ボード110Aおよび電子情報ボード110Bは、相互に通信を行うことにより、ネットワーク102を介した画面の共有を実現し、拠点間の遠隔会議を支援している。
電子情報ボード110は、それぞれ、タッチパネル・ディスプレイ112と、コントローラ114とを含み構成される。タッチパネル・ディスプレイ112は、上記コントローラ114の画面および手書きデータを表示する表示装置であり、かつ、上記コントローラ114に、画面上への文字、図形等の手書き入力を行ったり、操作情報を入力したりするための位置入力装置である。
コントローラ114は、典型的には、タッチパネル・ディスプレイ112とは別個の装置として提供されるが、タッチパネル・ディスプレイ112の背面等に配置される。そのため、タッチパネル・ディスプレイ112およびコントローラ114は、利用者からは一体の装置として動作しているように認識される。コントローラ114は、それ自体は、パーソナル・コンピュータやワークステーションといった汎用コンピュータを用いて構成され、電子黒板アプリケーションや遠隔会議アプリケーションなどの適切なアプリケーションを動作させている。
コントローラ114と、タッチパネル・ディスプレイ112との間は、VGA(Video Graphic Array)、DVI(Digital Visual Interface)、HDMI(High-Definition Multimedia Interface)、DisplayPort(登録商標)などの適切な映像インタフェース116およびUSB(Universal Serial Bus)やIEEE1394などの適切なデバイス・インタフェース118により接続されている。これにより、タッチパネル・ディスプレイ112は、コンピュータ画面(デスクトップ画面やアプリケーション画面)を表示するとともに、タッチ面を介してコンピュータ画面に手書きで書き込みを行うことができるように構成されている。
電子情報ボード110のコントローラ114は、さらに、外部コンピュータ120と接続されている。コントローラ114は、映像ケーブルで接続される外部コンピュータ120からの映像入力を受けて、外部コンピュータ120のコンピュータ画面を自らのディスプレイ画面上に表示させることができる。なお、図1では、外部コンピュータ120として、ラップトップ・コンピュータを例示しているが、外部コンピュータ120は、特に限定されるものではない。外部コンピュータ120としては、その他、タブレット端末やスマートフォン端末などの携帯情報端末を挙げることができる。
図2は、第1の実施形態による電子情報ボード110のハードウェア構成を示す図である。電子情報ボード110を構成するコントローラ114は、CPU(Central Processing Unit)12と、ハードディスクなどの記憶装置14と、RAM(Random Access Memory)などのメモリ16と、映像出力インタフェース18と、デバイス・インタフェース20とを含む。記憶装置14は、当該コントローラ114を制御するための各種のプログラム、電子黒板や遠隔会議用のアプリケーション・プログラム、ドキュメント・ファイルおよび書き込みデータを格納する。CPU12は、上記記憶装置14に格納される各種プログラムや書き込みデータを読み出し、メモリ16上に展開し、各種プログラムを実行し、これにより詳細を後述する各機能手段および各処理を実現する。
電子情報ボード110を構成するタッチパネル・ディスプレイ112は、ディスプレイ30と、タッチパネル・コントローラ32と、タッチパネル34とを含む。上記ディスプレイは、特に限定されるものではないが、好適には、液晶ディスプレイや有機ELディスプレイやプラズマ・ディスプレイなどのフラットパネル・ディスプレイとして構成される。ディスプレイ30は、映像出力インタフェース18でコントローラ114と接続されている。
タッチパネル34は、タッチパネル・コントローラ32を介して、デバイス・インタフェース20でコントローラ114と接続されている。タッチパネル34の位置入力方式は、特に限定されるものではないが、マトリクス・スイッチ方式、抵抗膜方式、表面弾性波方式、電磁誘導方式、静電容量方式、赤外線イメージセンサ方式などを挙げることができる。タッチパネル・コントローラ32は、ユーザが指先またはタッチペンでタッチ面をタッチ等したことに応答して、タッチされたスクリーン面上の座標位置の演算などを実行する。
コントローラ114は、さらに、NIC(Network Interface Card)22を含む。コントローラ114は、NIC22により、他の電子情報ボード110や外部サーバと通信し、上述した画面共有を実現することができる。コントローラ114は、さらに、映像入力ボード24を含むことができる。コントローラ114は、映像入力ボード24を介して接続された外部コンピュータ120からの映像入力を受けて、外部コンピュータ120のコンピュータ画面を自らのディスプレイ画面上に表示したり、この画面の画像をキャプチャしたりすることができる。画面共有においては、コントローラ114のコンピュータ画面の他、このような外部コンピュータ120から入力される画面も画面共有の対象となり得る。
なお、説明する実施形態では、タッチパネル・ディスプレイ112およびコントローラ114から構成されるシステムとして電子情報ボード110を説明しているが、この構成に限定されるものではない。例えば他の実施形態では、上記タッチパネル・ディスプレイ112およびコントローラ114が一体化された単一の装置として、電子情報ボードを構成してもよい。
また、説明する実施形態では、表示装置としてディスプレイ30を用い、位置入力装置として、ディスプレイ30に取り付けられたタッチパネル34を用いた例を説明するが、特に限定されるものではない。他の実施形態では、ディスプレイ30に代えて、プロジェクタ装置を用いて、位置入力装置を投影面に取り付ける構成としてもよい。
さらに、タッチパネル・ディスプレイ112も、一体化された単一の装置として構成されてもよいし、ディスプレイおよびタッチパネルは、それぞれ分離した装置として提供されてもよい。すなわち、電子情報ボード110自体の構成は、上述したものに特に限定されるものではなく、これまで知られた如何なる態様で構成することができる。
以下、図3〜図9を参照しながら、第1の実施形態による遠隔会議システム100における、電子情報ボード110間の画面共有機能について、より詳細に説明する。図3は、第1の実施形態による遠隔会議システム100における画面共有機能に関連する機能ブロック200を示す図である。
図1を参照して説明したように、2つの電子情報ボード110A,110Bは、ネットワーク102を介して画面共有を実現している。図3では、説明の便宜上、上記画面共有にかかる2つの電子情報ボード110A,110Bのうち、第1の情報処理装置として共有元(画面送信側)の電子情報ボードを符番「210」で参照し、図面上左側に配置して説明する。一方、第2の情報処理装置として共有先(画面受信側)の電子情報ボードについては、符番「250」で参照し、図面右側に配置して説明する。また、共有元の電子情報ボード210に接続される外部コンピュータを符番「240」で参照し、共有先に対応する外部コンピュータを符番「270」で参照する。そして、以下では、外部接続される外部コンピュータ240のコンピュータ画面を背景画像として、画面共有する場合について説明する。しかしながら、コントローラ114のコンピュータ画面など他の画像を背景画像としてもよいことは言うまでもない。
上記画面共有にかかる共有元および共有先の関係は、固定されておらず、画面共有における共有元および共有先の関係が逆転する場合は、反対の機能構成を有することになる。また、電子情報ボードが共有元(画面送信側)となるか共有先(画面受信側)となるかは、共有にかかる複数の電子情報ボード間でセッションを確立する際に、あるいはセッションの更新を行う際に、利用者の指示に従って決定することができる。したがって、電子情報ボードは、それぞれ送信端末の立場にも、受信端末の立場にもなり、いわゆるP2P型の構成となっている。
説明する実施形態では、共有対象となる画面は、複数のレイヤを含み構成されている。図4は、第1の実施形態において、共有対象となる画面の構成を説明する図である。電子情報ボード210,250間で共有される共有画面は、図4に示すように2レイヤ構成とされる。より具体的には、共有画面は、タッチパネルを介した手書きデータ(以下、ストロークと参照する。)が描画される描画レイヤとしてのストローク・レイヤと、共有元の外部コンピュータ240のコンピュータ画面が背景画像として書き込まれる画像レイヤとしての背景画像レイヤとを含む。
ストローク・レイヤは、背景が透明のウィンドウとして構成され、ストローク・レイヤに描画されるストロークは、画面表示上、背景画像に重畳(合成)して表示される。本実施形態において、ストローク・レイヤは、描画レイヤを構成し、背景画像レイヤは、画像レイヤを構成する。
なお、図4に示す共有画面の2レイヤ構成は、一例であり、特に限定されるものではない。他の実施形態では、例えば複数のストローク・レイヤを有するなど、3以上のレイヤから構成されてもよい。また、共有画面が複数レイヤで構成される場合は、例えばストローク・レイヤなどは双方向で共有されてもよい。また、画面共有は、1対1に限られず1対多で行われてもよい。以下の説明では、便宜上、複数のレイヤの両方について、1つの共有元(画面送信側)から1つの共有先(画面受信側)へ共有させる方向についてのみ説明するものとする。
上述のように異なる性質を有する複数レイヤで共有画面が構成される場合、各レイヤのデータ特性に起因して、一方のレイヤのデータ転送に許容できない遅延が生じる可能性がある。画素値の配列として構成される画像データは、一般に、ペンや手書きの経路に沿って生成されるストロークなどの座標値の集合として構成される描画データや、テキストなどのデータよりも、大きなデータサイズを有する。
上述のようなレイヤ構造においてレイヤ間で同期をとる場合、帯域幅が充分でなければ、背景画像レイヤのデータ転送がボトルネックとなり、画面更新に大きな遅延を発生させてしまう可能性がある。また、レイヤ間で敢えて同期をとらない手法も考えられるが、この場合、データサイズの小さなストローク・レイヤのデータが、従前の内容の背景画像レイヤに重畳して表示されてしまうことになる。これは、レイヤ間の内容の不一致を生じさせ、誤った内容を表示させてしまうことに繋がる。
そこで、第1の実施形態の遠隔会議システム100は、電子情報ボード110間の画面送受信処理に関して、以下に図3〜図9を参照して説明する特徴を備える。
図3は、遠隔会議システム100の機能ブロック200として、共有元の電子情報ボードおよび外部コンピュータ上で実現される機能ブロック(210,240)と、共有先の電子情報ボードおよび外部コンピュータ上で実現される機能ブロック(250,270)とを示す。
共有元の電子情報ボード210の機能ブロックは、通信部212と、通信制御部214と、映像入力部216と、映像入力検知部218と、映像処理部220と、画像表示部222と、タッチ検知部224と、ストローク管理部226と、ストローク表示部228と、画面表示制御部230と、画像情報取得部232と、フレーム生成部234とを含む。共有元の外部コンピュータ240上の機能ブロックは、映像出力部242を含む。
共有元の外部コンピュータ240上の映像出力部242は、外部接続される機器にコンピュータ画面を映像出力する。共有元の電子情報ボード210上の映像入力部216は、外部接続される機器からの映像入力を受け付ける。映像入力検知部218は、映像入力部216を監視しており、外部接続される機器からの映像入力を検知する。映像処理部220は、映像入力部216に入力される映像を取り込んで画像を処理する。画像表示部222は、背景画像レイヤの画面表示処理を行う。
タッチ検知部224は、タッチパネル34に対する入力を監視しており、ユーザによるタッチ操作を検出する。ストローク管理部226は、タッチ操作に応答して手書きされた内容を表すストローク・データの生成および管理を行う。ストローク表示部228は、ストローク・レイヤの画面表示処理を行う。画面表示制御部230は、上述した共有画面のレイヤを管理し、上記背景画像レイヤの画像表示と、ストローク・レイヤのストローク表示の表示状態を管理する。
共有元の外部コンピュータ240では、VGAケーブル等によって電子情報ボード210が接続されると、映像出力部242が、この接続を検知して、電子情報ボード210に対し、外部コンピュータ240のコンピュータ画面の出力を開始させる。外部コンピュータ240からの映像出力が開始されると、共有元の電子情報ボード210では、映像入力部216が、外部コンピュータ240からの映像を受信し、映像入力検知部218が、映像入力を検知する。映像入力が検知されると、映像処理部220は、入力される映像を取り込んで画像の処理を開始する。画像表示部222は、必要に応じて、外部コンピュータ240から取り込まれた画像を、背景画像レイヤの背景画像として、電子情報ボード110のアプリケーション画面上に画面表示する。
また、ユーザによるタッチ操作が行われると、タッチ検知部224が、このタッチ操作を検知し、検出したタッチ操作に関する情報をストローク管理部226に通知する。ストローク管理部226は、タッチ操作の通知を受けて、該タッチ操作に対応したストローク・データを生成し、保存する。ストローク表示部228は、生成されたストローク・データに従って、手書きされたストロークをストローク・レイヤの描画情報として、電子情報ボード110のアプリケーション画面上に画面表示処理する。ストロークは、背景画像に重畳して表示されることになる。
通信制御部214は、共有元および共有先の電子情報ボード間で確立される、画面共有にかかるセッション(画面共有セッションと参照する。)を管理する。ここで、画面共有セッションは、上記共有画面を構成する背景画像レイヤのデータが伝送される画像送受信メディアストリームと、上記共有画面を構成するストローク・レイヤのデータが伝送されるストローク送受信メディアストリームとを含み構成される。そして、画面共有セッションには、両端のどちらが共有元(画面送信側)として動作し、どちらが共有先(画面受信側)として動作するかが設定される。通信部212は、上記画像送受信メディアストリームおよびストローク送受信メディアストリームを介して、それぞれ、共有画面を構成するストローク・レイヤおよび背景画像レイヤのデータを送信する。
画像情報取得部232は、映像処理部220で処理される映像から、共有画面を構成する背景画像を取得する。フレーム生成部234は、画像情報取得部232で取得された背景画像に基づいて、所定フォーマットのフレームを生成する。ここで、フレームは、共有画面を連続する映像とした場合に、その映像を構成する静止画1枚分の単位をいう。
ユーザが、共有元の電子情報ボード210に対し、共有先を指定した画面共有の開始指示を行うと、通信制御部214は、ユーザからの指示に応答して、共有先の電子情報ボード250との間で、画面共有セッションを確立させる。映像入力検知部218は、外部コンピュータ240との接続を検知すると、その接続情報を通信制御部214に通知する。通信制御部214は、接続情報の通知を受けて、上記で確立されたセッション内で、電子情報ボード210を共有元(画面送信側)として設定し、通信部212は、メディアストリームを介したデータの送受信を開始させる。
データの送受信が開始されると、画像情報取得部232が、映像処理部220で処理される外部コンピュータ240のコンピュータ画面を背景画像としてキャプチャし、フレーム生成部234が、取得された背景画像からフレームを生成し、通信部212に渡す。通信部212は、フレームを受け取り、画像送受信メディアストリームを介し、背景画像レイヤのデータとして送信する。
ここで、フレームの生成は、キャプチャされたコンピュータ画面を、送信に適した形式に変換する処理をいう。図5(A)は、生成されるフレームのデータ構造を示す。図5(A)に示すように、フレーム300は、フレーム番号302と、画像サイズ304と、画像圧縮フォーマット306と、フレームの実体データである圧縮画像データ308とを含み構成される。画像データの圧縮方式は、特に限定されるものではなく、JPEG(Joint Photographic Experts Group)、JPEG2000、PNG(Portable Network Graphics)などの静止画の圧縮形式の他、MPEG(Moving Picture Experts Group)などのような、前フレームの画像との差分演算に基づく動画の圧縮形式でもよい。
フレーム番号302は、フレームを識別する識別情報であり、受信側で、フレームの順序、対応時間を識別するために、フレームに付属される。ここで、データに付属されるとは、該データと共に送受信されるか、該データと別に送受信されるかは問わず、該データに関連付けて送受信されることをいう。
再び図3を参照すると、タッチ操作が検出される場合、ストローク管理部226は、上述したストロークの表示処理と並行に、上記タッチ操作に対応したストローク・データを通信部212に渡す。通信部212は、ストローク・データを受け取り、ストローク送受信メディアストリームを介し、ストローク・レイヤのデータとして送信する。
図5(B)は、ストロークのデータ構造を示す。図5(B)に示すように、ストローク310は、フレーム番号322およびフレームサイズ324を含むストローク対応フレーム情報320と、ストロークの実体データであるストローク内容データ330を含む。ストローク対応フレーム情報320は、受信側で、ストロークが描画された対応フレームを識別するためにストロークに付属される。ここで、ストロークに対応付けられる対応フレームは、ストロークを送信する際にまさに画像送受信メディアストリームを介して現在送信中のフレームとすることができる。
また、フレーム送信に時間がかかる場合、フレーム送信中に表示内容が変わることがあり、現在のストロークは、現在送信中のフレームではなく、現在表示中のフレームに対応付けることが適切な場合がある。そこで、フレーム送信に時間がかかる場合には、対応フレームを、現在表示中のフレーム(現在送信中のフレームの次のフレーム)としてもよい。この場合、次のフレームのサイズは、現在表示している背景画像から推測するか、フレーム送信中に次のフレームを生成し、その準備されたフレームからそのサイズを取得することができる。さらに、説明する実施形態では、ストローク内容データと、ストローク対応フレーム情報とを1つのデータにまとめるものとして説明するが、上述したように、それぞれ別々に送信するように構成してもよい。
再び図3を参照すると、共有先の電子情報ボード250上の機能ブロックは、通信部252と、通信制御部254と、画像表示部256と、ストローク表示部258と、画面表示制御部260とを含む。
共有先の通信制御部254は、共有元の電子情報ボード210との間で確立される、上記画面共有セッションを管理する。通信部252は、上記画像送受信メディアストリームおよびストローク送受信メディアストリームを介して、それぞれ、共有元の電子情報ボード210から、共有画面を構成するストローク・レイヤおよび背景画像レイヤのデータを受信する。
画像表示部256は、共有先における背景画像レイヤの画面表示処理を行う。ストローク表示部258は、共有先におけるストローク・レイヤの画面表示処理を行う。画面表示制御部260は、共有先における上述した共有画面のレイヤを管理し、背景画像レイヤの画像表示と、ストローク・レイヤのストローク表示の表示状態を管理する。
共有元の電子情報ボード210からセッション確立の要求を受信すると、通信制御部254は、通信部252を通して、共有元の電子情報ボード210との間で、上記画面共有セッションを確立させる。通信部252は、共有元の電子情報ボード210から画像送受信メディアストリームを介して送られてきたフレームを受信し、画像表示部256に渡す。画像表示部256は、フレームを受け取ると、該フレームを展開して背景画像を取り出し、アプリケーション画面にその背景画像を画面表示する。
通信部252は、さらに、共有元の電子情報ボード210からストローク送受信メディアストリームを介して送られてきたストロークを受信し、ストローク表示部258に渡す。ストローク表示部258は、ストロークを受け取ると、受信したストロークに基づいて、アプリケーション画面にそのストロークを描画する。ストロークは、送信側と同様、背景画像に重畳して表示されることになる。
本実施形態によるストローク表示部258は、新しく受信されたストロークと、現在表示中の背景画像との内容の整合性を検証しており、ストローク・レイヤに対し遅れがある背景画像レイヤの画面表示を消去するかを判断する。ストローク表示部258は、ストロークが背景画像に先行し、不整合が生じると判断される場合は、当該ストロークについてはストローク・レイヤに画面表示させるが、背景画像レイヤで現在表示している背景画像の画面表示については消去させる。
上述した背景画像を消去するか否かの判断は、ユーザ操作に基づくストロークの描画イベントに応答して共有元から送信されたストロークに付属するストローク対応フレーム情報の受信に基づいて行うことができる。ストローク表示部258は、ストロークに対し付属されたフレーム番号と、当該共有先の電子情報ボード250で現在表示中のフレームのフレーム番号とを比較する。ストローク表示部258は、比較に基づき、ストロークが現在表示中のフレームに先行し、重畳して表示させることが適切ではないかを判断することができる。
また、上述した背景画像を消去するか否かの判断は、ストロークに対応付けられるフレームの受信完了までに要する時間を予測し、予測された時間に基づいて行うことができる。例えば、ストロークに対応するフレームの受信完了に要する時間が既定以上かかる場合は、重畳して表示させることが適切ではないと判断し、一方、既定未満である場合は、重畳して表示させても差し支えないと判断することができる。
説明する実施形態では、背景画像の画面表示の消去は、ユーザに背景画像の受信中であることを認識させ易いという観点からは、好適には、背景画像全体を対象として行われる。しかしながら、他の実施形態では、背景画像の一部の画面表示を消去するものとしてもよい。例えば、ストロークが内包される矩形領域の単位で消去するというような態様で行われてもよい。あるいは、背景画像が複数のブロックから構成される場合に、ストロークが重なるブロック群の単位で消去するというような態様で行われてもよい。少なくともストロークが重なる恐れのある範囲の画像が消去されるので、ユーザが、その背景画像が未だ受信中でることを認識しやすくなる。また、背景画像の消去は、背景画像を白色でクリアする形で行われても良いし、黒、灰色や他の色でベタ塗りする形で行われてもよい。
本実施形態による画像表示部256は、受信完了したフレームと、現在表示中のストロークとの内容の整合性を検証しており、先行して受信および表示されるストロークに対応するフレームについては、その受信の完了を待って画面表示する。画像表示部256は、対応するフレームの受信が完了した後に、対応するフレームから取得される背景画像を画面表示する。
現在表示中のストロークと、受信完了した背景画像との内容の整合性を検証は、現在受信完了したフレームに付属するフレーム番号と、現在表示中のストロークに付属されていたストローク対応フレーム情報中のフレーム番号を比較することにより行うことができる。
以下、図6〜図8を参照しながら、共有元および共有先の電子情報ボード間で行われる、画面共有にかかるストローク送受信処理および背景画像送受信処理の流れについて説明する。なお、画面共有セッションは、既に確立されているものとする。
図6は、第1の実施形態において、共有元および共有先の電子情報ボード間で行われる、ストローク送受信処理を示すフローチャートである。なお、図6において、左側が、共有元の電子情報ボード210が実行する処理を示し、右側が共有先の電子情報ボード250が実行する処理を示している。
図6に示す共有元側(画面送信側)の処理は、タッチ検知部224により、ユーザ操作に基づきストロークの描画イベントが検出されたことに応答して、ステップS100から開始される。ステップS101では、電子情報ボード210は、現在送信中であるフレームの情報(フレーム番号およびフレームサイズ)を取得する。ステップS102では、電子情報ボード210は、図5(B)に示したストロークのデータを構成して、ステップS103で、通信部212により、共有先の電子情報ボード250にストロークのデータを送信する。
一方、図6に示す共有先側(画面受信側)の処理は、ステップS103で送信されたストロークのデータを受信したことに応答して、ステップS200から開始される。ステップS201では、共有先電子情報ボード250は、ネットワーク102の帯域幅を測定する。帯域幅は、ネットワーク102における、共有元および共有先電子情報ボード間のデータ伝送速度であり、フレームの受信に要する時間を推定するために用いられる。
なお、帯域幅は、測定時刻により刻々と変化し得るが、セッション中に大幅に変動することは考えにくい。説明する実施形態では、ストローク受信毎に測定されるものとして説明するが、他の実施形態では、ストローク受信毎に測定せず、セッション開始時に1度測定し、セッションを通してその測定値を使用してもかまわない。
ステップS202では、共有先電子情報ボード250は、現在表示中の背景画像を消去すべきと判断するための所与の条件(以下、背景画像消去条件と参照する。)が成立したか否かを判定する。背景画像消去条件は、特定の実施形態では、当該共有先電子情報ボード250で現在表示中のフレームのフレーム番号が、受信したストロークに付随するストローク対応フレーム情報のフレーム番号より小さく(ストローク対応フレーム番号>現在表示中フレーム番号)、かつ、フレーム受信完了までにかかる時間が既定値より大きい(フレーム受信完了予測時間>既定値)ことを条件とすることができる。背景画像側のフレーム番号が小さいということは、受信したストロークの方が先行していることを意味する。
ここで、フレーム受信完了にかかる時間は、フレームサイズを帯域幅で割ることで算出することができる。受信時間にかかる既定値は、予め許容できるズレ量を試験し、ベンダ側で決定してもよいし、ユーザ側で設定してもよい。
ステップS202で、背景画像消去条件が成立すると判定された場合(YES)は、ステップS203へ処理が分岐される。ステップS203では、共有先電子情報ボード250は、背景画像レイヤで現在表示している背景画像の画面表示を消去する。ここで、単に背景画像を消去するだけでなく、図3に示すように、背景画像が未だ受信完了していないことを示す付加表示を含む、背景画像ロード中画面を表示することとしてもよい。
ステップS204では、共有先電子情報ボード250は、ストローク表示部258により、受信したストロークのストローク内容データに基づき、ストロークの画面表示を行い、ステップS205で本処理を終了させる。一方、ステップS202で、背景画像消去条件が成立しないと判定された場合(YES)は、ステップS204へ処理を直接分岐させる。
上述した背景画像消去条件の判断処理により、ストロークと背景画像とが一定時間以上ずれた状態で重畳表示されてしまうことが防止される。特に、帯域幅が狭く、ストロークの伝送にかかる時間と、背景画像の伝送にかかる時間との解離が大きい場合に有効である。
図7は、第1の実施形態において、共有元電子情報ボード210で行われる背景画像送信処理を示すフローチャートである。図7に示す処理は、共有元電子情報ボード210と外部コンピュータ240との接続状態が変更され、接続状態イベントが発生したことに応答して、ステップS300から開始される。
ステップS301では、共有元電子情報ボード210は、接続状態に応じて処理を分岐させる。ステップS301で、切断状態から接続状態への変更であると判定された場合(接続)は、ステップS302へ処理が分岐される。ステップS302では、共有元電子情報ボード210は、通信制御部214により、「画像送信」状態にセッションを更新する。ステップS303では、共有元電子情報ボード210は、通信制御部214により、画像情報送受信メディアストリームの送信者を「自身」に変更する。ステップS304では、共有元電子情報ボード210は、通信部212により、相手方の電子情報ボード250に対し、「画像受信」状態へのセッション更新リクエストを送信し、ステップS308で本処理を終了させる。
一方、ステップS301で、接続状態から切断状態への変更であると判定された場合(切断)は、ステップS305へ処理が分岐される。ステップS305では、共有元電子情報ボード210は、通信制御部214により、「画像送受信なし」状態にセッションを更新する。ステップS306では、電子情報ボード210は、通信制御部214により、画像情報送受信メディアストリームの送信者を「なし」に変更する。ステップS307では、共有元電子情報ボード210は、通信部212により、相手方の電子情報ボード250に対し、「画像送受信なし」状態へのセッション更新リクエストを送信し、ステップS308で本処理を終了させる。
ステップS302で「画像送信」状態にセッション更新されると、ステップS400からのルーチンが開始される。ステップS401では、共有元電子情報ボード210は、セッションが「画像送信」状態に維持されているか否かを確認する。ステップS401で、セッションが「画像送信」状態に維持されていることが確認された場合(YES)は、ステップS402へ処理が進められる。
ステップS402では、共有元電子情報ボード210は、画像情報取得部232により、外部コンピュータ240のコンピュータ画面を背景画像として取得する。ステップS403では、共有元電子情報ボード210は、フレーム生成部234により、取得された背景画像からフレームを生成する。ステップS404では、共有元電子情報ボード210は、通信部212により、生成されたフレームを共有先電子情報ボード250に送信し、ステップS401へ処理をループさせる。このフレーム送信処理は、セッションが更新され、「画像送信」状態から外れるまで継続されることになる。
ステップS305で、「画像送受信なし」状態にセッション更新されると、ステップS401では、セッションが「画像送信」状態から外れたと判定(NO)され、ステップS405へ処理が分岐され、本ルーチンを終了させる。これにより、フレームの送信が終了する。
上述した処理により、画面共有セッションが確立されている場合、電子情報ボード210に外部コンピュータ240が接続されると、外部コンピュータ240のコンピュータ画面が、自動的に共有先の電子情報ボード250に転送されるようになる。
図8は、第1の実施形態において、共有先の電子情報ボードで行われる背景画像受信処理を示すフローチャートである。図8に示す共有先側(画面受信側)の処理は、図7に示すステップS304またはS307で送信されたセッション更新リクエストを受信したことに応答して、ステップS500から開始される。
ステップS501では、共有先電子情報ボード250は、セッション更新に応じて処理を分岐させる。ステップS501で、「画像受信」状態へのセッション更新であると判定された場合(画像受信)は、ステップS502へ処理が分岐される。ステップS502では、共有先電子情報ボード250は、通信制御部254により、「画像受信」状態にセッションを更新し、ステップS504で、本処理を終了させる。
一方、ステップS501で、「画像送受信なし」状態へのセッション更新であると判定された場合(画像送受信なし)は、ステップS503へ処理が分岐される。ステップS503では、共有先電子情報ボード250は、通信制御部254により、「画像送受信なし」状態にセッションを更新し、ステップS504で、本処理を終了させる。
ステップS502で「画像受信」状態にセッション更新されると、ステップS600からのルーチンが開始される。ステップS601では、共有先電子情報ボード250は、セッションが「画像受信」状態に維持されているか否かを確認する。ステップS601で、セッションが「画像受信」状態に維持されていることが確認された場合(YES)は、ステップS602へ処理が進められる。
ステップS602では、共有先電子情報ボード250は、通信部252により、共有元電子情報ボード210からのフレームを受信し、ステップS603では、画像表示部256により、受信したフレームを展開し、背景画像を取り出す。ステップS604では、共有先電子情報ボード250は、先行して受信および画面表示されているストロークに対応したフレームの受信が完了され、新たに受信した背景画像を表示させてもよいかを判断するための所与の条件(以下、画像表示条件と参照する。)が成立したか否かを判定する。
ここで、画像表示条件は、特定の実施形態では、当該共有先電子情報ボード250で現在表示中のストロークのストローク対応フレーム情報のフレーム番号が、ステップS602で受信完了したフレームのフレーム番号以下である(現在表示中ストローク対応フレーム番号≦現在のフレーム番号)ことを条件とすることができる。現在表示中のストローク対応フレームのフレーム番号は、上述したストローク送受信フローで決定される。
ステップS604で、画像表示条件が成立したと判定された場合(YES)は、ステップS605へ処理を分岐させる。ステップS605では、共有先電子情報ボード250は、画像表示部256により、取り出された背景画像の画面表示を行い、ステップS601へ処理をループさせる。このフレーム受信処理は、セッションが更新され、画像受信状態から外れるまで継続されることになる。
ステップS503で、「画像送受信なし」状態にセッション更新されると、ステップS601では、セッションが「画像送信」状態から外れたと(NO)判定され、ステップS606へ処理が進められ、本ルーチンを終了させる。これにより、フレームの受信が終了する。
上述した処理により、電子情報ボード210から背景画像を受信した場合に、先行して受信および表示されたストロークに対応付けられる対応フレームが受信完了したことを待って、対応フレームの背景画像が表示されることになる。
図9は、第1の実施形態における共有元および共有先の電子情報ボード間の画面共有状態を示す図である。図9では、図9(A)から図9(D)へ時間が経過している。ここで、図9(A)に示すような、共有にかかる両者間で、共有画面が一致している初期状態を考える。図9(A)に示す状態において、共有元電子情報ボード210側の画面が切り替わると、帯域幅が不充分である場合、図9(B)に示すように、共有先側では、背景画像が従前のままとなり、両者間で遅延が生じる可能性がある。
上述した遅延がある状態において、図9(C)左図に示すように、共有元側で、ユーザが共有画面にストロークを書き始めると、ストロークのデータサイズが小さいため、共有先で新しい背景画像が伝達完了する前に、ストロークが先行して共有先に伝達される。
このとき、本実施形態による画面共有処理では、共有先電子情報ボード250では、一旦、図9(C)右図で示すように、従前の背景画像が消去されると共に、先行して受信したストロークのみが画面表示されるようになる。そして、共有先側で、先行して受信および画面表示されたストロークに対応するフレームが受信完了された段階で、図9(D)に示すように、対応する背景画像が表示される。
ストロークは、意思伝達においてより重要な情報を伝達するものであり、可能な限り相手方に伝達されることが望まれるところ、本実施形態による画面共有処理では、背景画像が遅延した場合でも背景画像に先行して相手方に伝達される。一方、先行するストロークが、従前のままの一致しない背景画像に重ね合わせられると、意図しないスライドに手書きされたようになり、誤った情報が伝達されるおそれがある。本実施形態では、従前の背景画像は消去されるため、共有先では、誤った情報が相手方に伝達されることが無い。また、ユーザは、消去された背景を見ることにより、背景画像が受信中であることが容易に認識できる。ひいては、遅延が遠隔会議に与える悪影響が低減される。このとき、表示されるストロークと背景画像との間に一定時間以上のズレが発生することが防止されるので、ストローク・レイヤおよび背景画像レイヤ間で一定の同期が維持されているといえる。
[第2の実施形態]
以下、図10〜図12と、第1の実施形態で示した図7および図8を参照しながら、第2の実施形態による遠隔会議システムにおける、電子情報ボード間の画面共有機能について説明する。図10は、第2の実施形態による遠隔会議システムにおける画面共有機能に関連する機能ブロック200を示す図である。
第2の実施形態では、共有元(画面送信)側で先立って、前後フレーム間の背景画像の差分情報を送信し、共有先(画像受信)側で、差分情報に基づいて現在表示中の背景画像を消去するか否かを判断することが特徴になっている。図10に示す第2の実施形態による共有元電子情報ボード210は、第1の実施形態で説明した機能部に加えて、さらに、画像差分情報生成部236を含み構成される。
画像差分情報生成部236は、上記ストロークに対応付けられる背景画像レイヤの前後フレーム間の画像差分を演算する。ここでいう前後フレームの画像とは、共有元で現在送信中のフレームに対応する画像と、現在表示中の画像とを含むことができる。第2の実施形態の通信部212は、画像差分情報生成部236から画像差分情報を受け取り、ストローク管理部226から受け取ったストローク・データに付属させ、ストローク送受信メディアストリームを介し、ストローク・レイヤのデータとして送信する。
図11は、ストロークに付属される画像差分情報のデータ構造を示す。図11に示すように、画像差分情報340は、フレーム番号352およびフレームサイズ354を含む対応するフレーム情報350と、差分領域サイズ360とを含む。差分領域サイズ360は、フレーム間の画像の変化量を評価する値であり、説明する実施形態では、フレーム間の画像演算で求められる差分画像における各差分が生じている領域のサイズ合計を表す。なお、差分領域の合計サイズとすることにより、簡便に画像差分を求めることができるが、さらに、色情報や画像特徴量などの画像間の変化を定量できる他の情報も含めてもよい。
なお、説明する実施形態では、差分領域サイズ360と、フレーム情報350とを1つのデータにまとめているが、上述したように、他の実施形態では、それぞれを別送するように構成してもよい。また、画像差分情報340は、ストローク310と共に送受信されてもよいし、ストローク310とは別に送受信されてもよい。
第2の実施形態による通信部252は、背景画像レイヤのデータの受信完了に先行して上記画像差分情報を受信することができる。第2の実施形態によるストローク表示部258は、この画像差分情報を利用して、ストローク・レイヤに対し遅れがある背景画像レイヤの画面表示を消去するかを判断する。ストローク表示部258は、画像差分情報に基づき、フレーム間で生じた差分が大きく、ストロークが背景画像に重畳されると、不整合が生じると判断される場合は、当該ストロークについてはストローク・レイヤに画面表示させるが、背景画像レイヤで現在表示している背景画像の画面表示については消去させる。
このとき、上述した背景画像を消去するか否かの判断は、第1の実施形態と同様に、対応するフレームの受信完了までに要する時間を予測し、予測された時間を加味して行ってもよい。
図12は、第2の実施形態において、共有元および共有先の電子情報ボード間で行われる、ストローク送受信処理を示すフローチャートである。なお、左右の関係は、図6と同様である。
図12に示す共有元側(画面送信側)の処理は、タッチ検知部224により、ストローク描画イベントが検出されたことに応答して、ステップS700から開始される。ステップS701では、共有元電子情報ボード210は、現在送信中であるフレームの情報(フレーム番号およびフレームサイズ)を取得する。ステップS702では、電子情報ボード210は、画像情報を取得し、ステップS703では、画像差分情報生成部236により、現在表示中の画像と、現在送信中のフレームに対応する画像との差分を演算し、図11に示した画像差分情報を生成する。ステップS704では、共有元電子情報ボード210は、通信部212により、共有先電子情報ボード250に画像差分情報を送信する。ステップS705では、共有元電子情報ボード210は、通信部212により、ストロークのデータ送信し、ステップ706で本処理を終了させる。
一方、図12に示す共有先側(画面受信側)の処理は、ステップS704で送信された画像差分情報を受信したことに応答して、ステップS800から開始される。ステップS801では、共有先電子情報ボード250は、ネットワーク102の帯域幅を測定する。ステップS802では、共有先電子情報ボード250は、現在表示中の背景画像を消去すべきと判断するための背景画像消去条件が成立したか否かを判定する。背景画像消去条件は、第2の実施形態では、上述した差分領域サイズが既定値より大きく(差分領域サイズ>既定値1)、かつ、フレーム受信完了までにかかる時間が既定値より大きい(フレーム受信完了予測時間>既定値2)ことを条件とすることができる。フレーム受信完了にかかる時間は、同様に、フレームサイズを帯域幅で割ることで算出することができる。
ステップS802で、背景画像消去条件が成立すると判定された場合(YES)は、ステップS803へ処理が分岐される。ステップS803では、共有先電子情報ボード250は、図11に示す画像差分情報に記載のフレーム番号の次のフレームをストローク対応フレームとして決定する。ステップS804では、共有先電子情報ボード250は、背景画像レイヤで現在表示している背景画像の画面表示を消去し、適宜、背景画像ロード中画面を表示する。
ステップS805では、共有先電子情報ボード250は、ステップS705で送信されたストロークを受信して、ステップS806では、ストローク表示部258により、受信したストロークの画面表示を行い、ステップS807で本処理を終了させる。一方、ステップS802で、背景画像消去条件が成立しないと判定された場合(YES)は、ステップS805へ処理を直接分岐させる。
なお、第2の実施形態における画像表示部256の役割および実行する処理は、第1の実施形態と同様であり、画像送受信処理も、図7および図8を参照して説明されたものと同様である。したがって、ストロークに対応する背景画像は、第1の実施形態と同様に、ストローク対応フレームが受信された段階で表示されることになる。
第2の実施形態では、上述したように、ストローク対応フレームは、差分領域のサイズが既定値よりも大きく、かつ、フレーム伝送にかかる時間が既定よりも大きい場合は、画像変化情報に記載のフレームの次のフレームとなる。差分領域のサイズが既定値よりも小さい場合、または、フレーム伝送にかかる時間が既定よりも小さい場合は、画像変化情報に記載のフレーム番号がストローク対応フレームのフレーム番号となる。これにより、差分領域が既定より小さい場合や、フレーム伝送にかかる時間が既定より短い場合に、背景画像は迅速に表示されることになる。したがって、第2の実施形態によれば、第1の実施形態の場合よりも、背景画像が消去されている期間を短縮することができ、特に帯域幅が狭く画像転送に時間がかかる場合に有効である。
[第3の実施形態]
以上説明した第1の実施形態および第2の実施形態では、共有にかかる電子情報ボードは、直接相互通信されるものとして説明した。しかしながら、遠隔会議システムの構成において、共有先の電子情報ボードが2台以上参加する場合は、共有先の複数の電子情報ボードに対し一括して画面配信を行う画面共有サーバを好適に設けると有効である。
図13は、そのような画像共有サーバを設けた第3の実施形態による遠隔会議システム400の概略構成を示す図である。図13に示す遠隔会議システム400は、ネットワーク402を介して相互に接続される、複数の電子情報ボード410A〜410Zと、それぞれ電子情報ボード410に接続される外部コンピュータ420A〜420Zとを含む。第3の実施形態による遠隔会議システム400は、さらに、メディアストリームのデータ伝送を中継する画面共有サーバ430が設けられている。また、画像送受信メディアストリームおよびストローク送受信メディアストリームのうちの、ストローク送受信メディアストリームのデータ中継を専ら担当するストローク共有サーバ432を設けて、ストロークの管理と配信を行うよう構成することができる。
上述した第3の実施形態においても、上述した第1および第2の実施形態と同様の手法を用いて画像およびストロークの同期的な画面共有を行うことができる。第3の実施形態では、画像の配信が、データ中継する画面共有サーバ430を経由して行われるので、帯域幅に応じて画像圧縮率およびフレームレートまたはこれらの一方を調整するような他の画像配信技術と組み合わせて実施することが容易となる。
以上説明した実施形態によれば、描画レイヤおよび画像レイヤを含み構成される画面を端末間で共有する場合において、画像レイヤのデータ転送が遅延した場合でも、先行して描画レイヤを画面表示できるとともに、レイヤ間の内容不一致の発生を低減し、レイヤ間の一定の同期を維持することができる、情報処理システム、情報処理装置およびプログラムを提供することができる。
なお、上記機能部は、アセンブラ、C、C++、C#、Java(登録商標)などのレガシープログラミング言語やオブジェクト指向プログラミング言語などで記述されたコンピュータ実行可能なプログラムにより実現でき、ROM、EEPROM、EPROM、フラッシュメモリ、フレキシブルディスク、CD−ROM、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、ブルーレイディスク、SDカード、MOなど装置可読な記録媒体に格納して、あるいは電気通信回線を通じて頒布することができる。
これまで本発明の実施形態について説明してきたが、本発明の実施形態は上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。