以下、本発明を実施するための形態について実施例を挙げながら説明する。
<グローバルシーケンスの採番>
まず、図1を用いてグローバルシーケンスの採番について説明する。図1は、グローバルシーケンスの採番を模式的に説明する図である。
(1) 電子黒板2aにユーザが手書きデータを追加した(第一の操作)。まず、手書きデータが追加されたことを電子黒板2aからネットワーク上の情報処理装置8に通知する。
(2) 情報処理装置8は電子黒板2aから通知を受け取ると、通知された操作に対して操作の順番を表すグローバルシーケンスを採番する。
(3) 情報処理装置8は、各電子黒板2a~2cに対してグローバルシーケンスを通知する。このグローバルシーケンスと共に、手書きデータの座標など操作データも送信される。
(4) 各電子黒板2a~2cは情報処理装置8から通知されたグローバルシーケンスの順番通りに操作内容を電子黒板2a~2cの画面に反映させる。
次に、手書きデータが移動された(第二の操作)。電子黒板2aにグローバルシーケンスが通知される前に手書きデータが移動されると(状態t1)、グローバルシーケンスが通知された時に移動前の手書きデータが移動前の場所に表示される(状態t2)。したがって、移動元と移動先にそれぞれ手書きデータが表示される場合がある。その後、移動操作のグローバルシーケンスにしたがって移動元の手書きデータは消去される。
このように、表示されるデータにユーザの操作が適切に反映されない場合があった。ユーザからは意図していない表示となるように見える。なお、電子黒板2b、2cはグローバルシーケンスの順番にしたがって操作内容を反映させるので、手書きデータの表示と移動が順番通りに行われる。
<本実施形態の手書きデータの表示方法>
そこで、本実施形態では、グローバルシーケンスが通知されるまで、電子黒板2は手書きデータを未確定状態として扱う。
図2は、未確定状態となった手書きデータの一例を説明する図である。図2(a)は手書き直後の手書きデータを示す。
ユーザが手書きデータを入力したことを電子黒板2が検知すると、図2(b)に示すように、電子黒板2は入力された手書きデータを未確定状態にする。未確定状態とは、手書きデータについてユーザが更なる操作を行うことを制限することをいう。したがって、ユーザは手書きデータの移動だけでなく、削除や色などを変更することができなくなる。また、未確定状態の手書きデータは低輝度など、未確定であることを示す態様で表示される。
その後、電子黒板2が情報処理装置8からグローバルシーケンスの通知を受けると、図2(c)に示すように、手書きデータを確定状態にする。低輝度であった手書きデータは通常の輝度で表示される。したがって、電子黒板は、グローバルシーケンスを受信するまでと、受信した後で異なる態様で表示データを表示する。
確定状態とは、手書きデータについてユーザが操作を行うことが制限されないことをいう。未確定状態を設けることで、電子黒板2は、グローバルシーケンスの通りに操作内容を手書きデータに反映することができる。
このように、本実施形態の電子黒板2は、未確定状態を設けることで、グローバルシーケンスの通りに操作内容を手書きデータに反映することができる。したがって、ユーザの操作を手書きデータに適切に反映させることができる。また、ユーザが意図しない表示とならないようにすることができる。
<用語について>
表示データは、電子黒板のディスプレイに表示されるデータである。本実施形態では主に手書きデータであるが、ファイルから読み出されたイメージ(画像)等が表示データとなる場合もある。表示データには、手書きデータそのものだけでなく、手書きデータが文字認識して変換されたテキストデータ、「済」「秘」などの決まった文字やマークとして表示されるスタンプ、円や星などの図形、直線等、ユーザの操作に基づいて表示されたデータも含まれてよい。
手書きデータとは、ディスプレイ上でユーザが入力手段を連続的に移動させた座標点列を軌跡として表示したデータである。また、ユーザがディスプレイに入力手段を押しつけてから連続的に移動させた後、ディスプレイから離すという一連の操作をストロークといい、ストロークにより手書きされたデータをストロークデータという。手書きデータは1つ以上のストロークデータを有する。
サーバ装置はグローバルシーケンスを採番する装置であればよい。本実施形態では情報処理装置8又はサーバ部90が相当する。サーバ装置はインターネット又はオンプレミスのどちらにあってもよい。
<システム構成例>
図3は、本実施形態の通信システムの全体構成図である。なお、図3では、説明を簡略化するために、2台の電子黒板2a,2b及びこれに付随する電子ペン4a,4b等を示しているだけであって、3台以上の電子黒板2や電子ペン等を利用してもよい。
図3に示されているように、通信システム1は、複数の電子黒板2a,2b、複数の電子ペン4a,4b、USBメモリ5a,5b、ノートPC(Personal Computer)6a,6b、テレビ(ビデオ)会議端末7a,7b、及びPC8を有する。また、電子黒板2a,2b、及びPC8は、通信ネットワーク9を介して通信可能に接続されている。更に、複数の電子黒板2a,2bには、それぞれディスプレイ3a,3bが設けられている。
また、電子黒板2aには、電子ペン4aによって生じたイベント(ディスプレイ3aに電子ペン4aのペン先、又は、電子ペン4aのペン尻のタッチ)による描画された画像を、ディスプレイ3aに表示させることができる。なお、電子ペン4aだけでなく、ユーザの手Ha等によって生じたイベント(拡大、縮小、ページめくり等のジェスチャ)に基づいて、ディスプレイ3a上に表示されている画像を変更させることもできる。
また、電子黒板2aには、USBメモリ5aが接続可能であり、電子黒板2aはUSBメモリ5aからPDF等の電子ファイルを読み出したり、電子黒板2aはUSBメモリ5aに電子ファイルを記録したりすることができる。また、電子黒板2aには、DisplayPort、DVI(Digital Visual Interface)、HDMI(High-Definition Multimedia Interface。登録商標)及びVGA(Video Graphics Array)等の規格による通信が可能なケーブル10a1を介して、ノートPC6aが接続されている。そして、電子黒板2aは、ディスプレイ3aに対する接触によってイベントを発生させ、このイベントを示すイベント情報を、マウスやキーボード等の入力装置からのイベントと同様に、ノートPC6aに送信する。同じく、電子黒板2aには、上記規格による通信が可能なケーブル10a2を介して、テレビ(ビデオ)会議端末7aが接続されている。なお、ノートPC6a、及びテレビ会議端末7aは、Bluetooth(登録商標)等の各種無線通信プロトコルに準拠した無線通信により、電子黒板2aと通信してもよい。
一方、電子黒板2bが設置されている他の拠点では、上記と同様に、ディスプレイ3bを備えた電子黒板2b、電子ペン4b、USBメモリ5b、ノートPC6b、テレビ会議端末7b、ケーブル10b1、ケーブル10b2が利用される。更に、ユーザの手Hb等によって生じたイベントに基づいて、ディスプレイ3b上に表示されている画像を変更させることもできる。
これにより、一の拠点で電子黒板2aのディスプレイ3a上に描画された画像は、他の拠点で電子黒板2bのディスプレイ3b上にも表示され、逆に他の拠点で電子黒板2bのディスプレイ3b上に描画された画像は、一の拠点で電子黒板2aのディスプレイ3a上に表示される。このように、通信システム1では、遠隔地において同じ画像を共有する遠隔共有処理を行うことができるため、遠隔地での会議等に用いると、非常に便利である。
なお、以下では、複数の電子黒板2のうち任意の電子黒板2を示す場合には「電子黒板2」と示す。複数のディスプレイのうち任意のディスプレイを示す場合には「ディスプレイ3」と示す。複数の電子ペンのうち任意の電子ペンを示す場合には「電子ペン4」と示す。複数のUSBメモリのうち任意のUSBメモリを示す場合には「USBメモリ5」と示す。複数のノートPCのうち任意のノートPCを示す場合には「ノートPC6」と示す。複数のテレビ会議端末のうち任意のテレビ会議端末を示す場合には「テレビ会議端末7」と示す。また、複数のユーザの手のうち任意の手を示す場合には「手H」と示す。複数のケーブルのうち任意のケーブルを示す場合には「ケーブル10」と示す。
また、本実施形態では、表示装置の一例として、電子黒板2を説明するが、これに限るものではなく、表示装置の他の例として、電子看板(デジタルサイネージ)、スポーツや天気予報等で利用されるテレストレータ、又は、遠隔画像(映像)診断装置等であってもよい。また、情報処理端末の一例として、ノートPC6を説明するが、これに限るものではなく、情報処理端末の他の例として、デスクトップ型PCやタブレット型PC、PDA、デジタルビデオカメラ、デジタルカメラ、ゲーム機等の画像フレームを供給可能な端末であってもよい。更に、通信ネットワークには、インターネット、LAN(Local Area Network)、携帯電話通信網等が含まれる。また、本実施形態では、記録媒体の一例として、USBメモリを説明するが、これに限るものではなく、記録媒体の他の例として、SDカード等の各種記録メディアであってもよい。
また、図3では情報処理装置8が示されていないが、本実施形態では情報処理装置8の機能を主催装置の電子黒板2が保持している場合(後述するサーバ部)を説明する。情報処理装置8が電子黒板2とは別に通信ネットワーク9に接続されいてもよい。なお、このような情報処理装置8をサーバといい、特定ハードウェア資源が意識されずにネットワーク上のリソースが利用される利用形態をクラウドシステムという。情報処理装置8はインターネット上にあってもオンプレミスにあってもよい。
<電子黒板のハードウェア構成>
続いて、図4を用いて、本実施形態の電子黒板2のハードウェア構成を説明する。なお、図4は、電子黒板2のハードウェア構成図である。
図4に示されているように、電子黒板2は、電子黒板2全体の動作を制御するCPU101、IPL等のCPU101の駆動に用いられるプログラムを記憶したROM102、CPU101のワークエリアとして使用されるRAM103、電子黒板2用のプログラム等の各種データを記憶するSSD204、通信ネットワーク9との通信を制御するネットワークコントローラ105、及び、USBメモリ5との通信を制御する外部記憶コントローラ106を備えている。
また、電子黒板2は、ノートPC6のディスプレイに対して映像情報を静止画又は動画として表示させるキャプチャデバイス111、グラフィクスを専門に扱うGPU(Graphics Processing Unit)112、及び、GPUからの出力画像をディスプレイ3やテレビ会議端末7へ出力するために画面表示の制御及び管理を行うディスプレイコントローラ113を備えている。
更に、電子黒板2は、接触センサ115の処理を制御するセンサコントローラ114、ディスプレイ3上に電子ペン4やユーザの手H等が接触したことを検知する接触センサ115を備えている。この接触センサ115は、赤外線遮断方式による座標の入力及び座標の検出を行う。この座標の入力及び座標の検出する方法は、ディスプレイ3の上側両端部に設置された2つ受発光装置が、ディスプレイ3に平行して複数の赤外線を放射し、ディスプレイ3の周囲に設けられた反射部材によって反射されて、受光素子が放射した光の光路と同一の光路上を戻って来る光を受光する方法である。接触センサ115は、物体によって遮断された2つの受発光装置が放射した赤外線のID(Identification)をセンサコントローラ114に出力し、センサコントローラ114が、物体の接触位置である座標位置を特定する。なお、以下に示す全ての各IDは、識別情報の一例である。
また、接触センサ115としては、赤外線遮断方式に限らず、静電容量の変化を検知することにより接触位置を特定する静電容量方式のタッチパネル、対向する2の抵抗膜の電圧変化によって接触位置を特定する抵抗膜方式のタッチパネル、接触物体が表示部に接触することによって生じる電磁誘導を検知して接触位置を特定する電磁誘導方式のタッチパネルなどの種々の検出手段を用いてもよい。
また、電子黒板2は、電子ペンコントローラ116を備えている。この電子ペンコントローラ116は、電子ペン4と通信することで、ディスプレイ3へのペン先のタッチやペン尻のタッチの有無を判断する。なお、電子ペンコントローラ116が、電子ペン4のペン先及びペン尻だけでなく、電子ペン4のユーザが握る部分や、その他の電子ペンの部分のタッチの有無を判断するようにしてもよい。
更に、電子黒板2は、CPU101、ROM102、RAM103、SSD104、ネットワークコントローラ105、外部記憶コントローラ106、キャプチャデバイス111、GPU112、センサコントローラ114、及び電子ペンコントローラ116を、図4に示されているように電気的に接続するためのアドレスバスやデータバス等のバスライン120を備えている。
なお、電子黒板2用のプログラムは、CD-ROM等のコンピュータで読み取り可能な記録媒体に記録して流通させるようにしてもよい。
<電子黒板の機能構成>
続いて、図5乃至図18を用いて、電子黒板2の機能構成について説明する。なお、先ずは、図5を用いて、電子黒板2の全体的な機能構成について説明する。図5は、電子黒板2の機能ブロック図である。
電子黒板2は、図4に示されているハードウェア構成及びプログラムによって、図5にされている各機能構成を有する。電子黒板2は、最初に遠隔共有処理を開始する「主催装置」となり得ると共に、既に開始されている遠隔共有処理に後から参加する「参加装置」にもなり得る。また、電子黒板2は、大きく分けて、クライアント部20及びサーバ部90の両方によって構成されている。クライアント部20及びサーバ部90は、電子黒板2の1台の筐体内で実現される機能である。そして、電子黒板2が主催装置となる場合には、この電子黒板2では、クライアント部20とサーバ部90が実現される。また、電子黒板2が参加装置となる場合には、この電子黒板2では、クライアント部20は実現されるが、サーバ部90は実現されない。即ち、図3において、電子黒板2aが主催装置で、電子黒板2bが参加装置となる場合、電子黒板2aのクライアント部20は、同じ電子黒板2a内に実現されたサーバ部90を介して、他の電子黒板2bのクライアント部20と通信を行う。一方、電子黒板2bのクライアント部20は、他の電子黒板2a内に実現されたサーバ部90を介して、他の電子黒板2aのクライアント部と通信を行う。
<<クライアント部の機能構成>>
続いて、主に図5乃至図7を用いて、クライアント部20の機能構成について説明する。クライアント部20は、映像取得部21、座標検知部22、自動調整部23、接触検知部24、イベント振分部25、操作処理部26、ジェスチャ処理部27、映像重畳部28、画像処理部30、及び通信制御部60を有する。
このうち、映像取得部21は、ケーブル10に接続された映像出力機器の出力映像を取得する。映像取得部21は、映像出力機器から画像信号を受信すると、この画像信号を解析して、この画像信号によって形成される映像出力機器の表示画像である画像フレームの解像度や、この画像フレームの更新頻度などの画像情報を導出し、画像取得部31に出力する。
座標検知部22は、ディスプレイ3上でユーザによって生じたイベント(ディスプレイ3上にユーザの手Hがタッチされた動作等)の座標位置を検出する。また、座標検知部22は、タッチされた面積も検出する。
自動調整部23は、電子黒板2の起動時に起動され、接触センサ115が座標検知部22に適切な値を出力できるように、接触センサ115の光センサ方式におけるセンサーカメラの画像処理のパラメータを調整する。
接触検知部24は、ユーザによって生じたイベント(ディスプレイ3上に電子ペン4のペン先又は電子ペン4のペン尻が押下(タッチ)された動作等)を検出する。
イベント振分部25は、座標検知部22によって検知されたイベントの座標位置と接触検知部24によって検出された検出結果を、ストローク描画、UI操作、及びジェスチャ操作の各イベントに振り分ける。
ここで、「ストローク描画」は、ディスプレイ3上に図18に示されている後述のストローク画像(B)が表示されている場合に、ユーザがディスプレイ3上で電子ペン4を押下し、この押下した状態で電子ペン4を移動させ、最終的にディスプレイ3上から電子ペン4を離すまでのイベントである。このストローク描画により、例えば、アルファベット「S」や「T」等がディスプレイ3上に描画される。なお、この「ストローク描画」には、画像を描画するだけでなく、既に描画された画像を削除したり、描画された画像を編集したりするイベントも含まれる。
「UI操作」は、ディスプレイ3上に図18に示されている後述のUI画像(A)が表示されている場合に、ユーザが電子ペン4又は手Hによって所定の位置を押下したイベントである。このUI操作により、例えば、電子ペン4により描画される線の色や幅等が設定される。
「ジェスチャ操作」は、ディスプレイ3上に図18に示されている後述のストローク画像(B)が表示されている場合に、ユーザが手Hでディスプレイ3上をタッチしたり移動したりさせるイベントである。このジェスチャ操作により、例えば、ユーザがディスプレイ3に手Hをタッチさせた状態で手Hを移動させることで、画像の拡大(若しくは縮小)、表示領域の変更、又は、ページ切り換え等を行うことができる。
操作処理部26は、イベント振分部25によってUI操作と判断されたものから、イベントが発生されたUIの要素にしたがって、各種操作を実行する。このUIの要素としては、例えば、ボタン、リスト、チェックボックス、テキストボックスが挙げられる。
ジェスチャ処理部27は、イベント振分部25によってジェスチャ操作と判断されたものに対応した操作を実行する。
イベント振分部25、操作処理部26、ジェスチャ処理部27、及び、ストローク処理部32は、ユーザの操作を受け付ける操作受付部99となる。
映像重畳部28は、後述の表示重畳部36で重畳された画像を映像として映像出力機器(ディスプレイ3等)に対して表示する。また、映像重畳部28は、映像出力機器(ノートPC6等)からの映像に対して、他の映像出力機器(テレビ会議端末7等)から送られて来た映像をピクチャ・イン・ピクチャする。更に、映像重畳部28は、ピクチャ・イン・ピクチャされてディスプレイ3の一部に表示された映像を、ディスプレイ3の全体に表示させるための切り替えを行う。
画像処理部30は、図18に示されているような各画像レイヤの重畳処理等を行う。この画像処理部30は、画像取得部31、ストローク処理部32、UI画像生成部33、背景生成部34、レイアウト管理部35、表示重畳部36、ページ処理部37、ファイル処理部40、ページデータ記憶部300、及び遠隔ライセンス管理テーブル310を有している。
このうち、画像取得部31は、映像取得部21で取得された映像から、各フレームを画像として取得する。画像取得部31は、この画像のデータを、ページ処理部37に出力する。この画像は、図18に示されている映像出力機器(ノートPC6等)からの出力画像(C)に相当する。
ストローク処理部32は、イベント振分部25によって割り振られたストローク描画に係るイベントに基づいて、画像を描画したり、描画された画像を削除したり、描画された画像を編集する。このストローク描画による画像は、図18に示されているストローク画像(B)に相当する。また、このストローク描画に基づいた画像の描画、削除、編集の各結果は、後述の操作データとして、操作データ記憶部840に記憶される。
UI画像生成部33は、電子黒板2に予め設定されているUI(ユーザインターフェース)画像を生成する。このUI画像は、図18に示されているUI画像(A)に相当する。
背景生成部34は、ページ処理部37がページデータ記憶部300から読み出したページデータのうちのメディアデータを、ページ処理部37から受信する。背景生成部34は、この受信したメディアデータを表示重畳部36に出力する。また、このメディアデータによる画像は、図18に示されている背景画像(D)に相当する。背景画像(D)のパターンは、無地、グリッド表示等である。
レイアウト管理部35は、表示重畳部36に対して、画像取得部31、ストローク処理部32、及びUI画像生成部33(又は背景生成部34)から出力された各画像のレイアウトを示すレイアウト情報を管理している。これにより、レイアウト管理部35は、表示重畳部36に対して、出力画像(C)及びストローク画像(B)を、UI画像(A)及び背景画像(D)中のどの位置に表示させるか又は非表示にさせるかを指示することができる。
表示重畳部36は、レイアウト管理部35から出力されたレイアウト情報に基づき、画像取得部31、ストローク処理部32、及びUI画像生成部33(背景生成部34)から出力された各画像のレイアウトを行う。
ページ処理部37は、ストローク画像(B)のデータと出力画像(C)のデータを、1つのページデータにまとめてページデータ記憶部300に記憶する。ストローク画像(B)のデータは、図8に示されているストローク配列データIDで示されるストローク配列データ(各ストロークデータ)として、ページデータの一部を成す。出力画像(C)のデータは、図8に示されているメディアデータIDで示されているメディアデータとして、ページデータの一部を成す。そして、このメディアデータは、ページデータ記憶部300から読み出されると、背景画像(D)のデータとして取り扱われる。
また、ページ処理部37は、一旦記憶されたページデータのうちのメディアデータを、背景生成部34を介して表示重畳部36に送信することで、映像重畳部28が背景画像(D)をディスプレイ3に再表示させることができる。また、ページ処理部37は、ページデータのうちのストローク配列データ(各ストロークデータ)を、ストローク処理部32に戻すことで、ストロークの再編集ができる状態にすることができる。更に、ページ処理部37は、ページデータを削除したり複製したりすることもできる。
即ち、ページ処理部37がページデータ記憶部300にページデータを記憶する時点でディスプレイ3上に表示されている出力画像(C)のデータは、一旦、ページデータ記憶部300に記憶され、その後にページデータ記憶部300から読み出される際には、背景画像(D)を示すメディアデータとして読みされる。そして、ページ処理部37は、ページデータ記憶部300から読み出したページデータのうち、ストローク画像(B)を示すストローク配列データを、ストローク処理部32に出力する。また、ページ処理部37は、ページデータ記憶部300から読み出したページデータのうち、背景画像(D)を示すメディアデータを、背景生成部34に出力する。
表示重畳部36は、 画像取得部31からの出力画像(C)、ストローク処理部32からのストローク画像(B)、UI画像生成部33からのUI画像(A)、及び、背景生成部34からの背景画像(D)を、レイアウト管理部35によって指定されたレイアウトにしたがって重畳する。これにより、図18に示されているように、各画像が重なってもユーザが見える順に、UI画像(A)、ストローク画像(B)、出力画像(C)、及び背景画像(D)の各レイアの構成となっている。
また、表示重畳部36は、図18に示されている画像(C)と画像(D)を切り替えて、画像(A)及び画像(B)に対して排他的に重畳することも可能である。例えば、当初、画像(A)、画像(B)及び画像(C)が表示されている状態で、電子黒板2と映像出力機器(ノートPC6等)との間のケーブル10が抜かれた場合には、レイアウト管理部35の指定によって、画像(C)を重畳対象から外し、画像(D)を表示させることができる。この場合に、また、表示重畳部36は、表示の拡大、表示の縮小、表示領域の移動処理も行う。
ページデータ記憶部300は、図8に示されているようなページデータを記憶する。図8は、ページデータを示す概念図である。ページデータは、ディスプレイ3に表示される1ページ分のデータ(ストローク配列データ(各ストロークデータ)及びメディアデータ)である。なお、ページデータに含まれるパラメータの種類が多いため、ここでは、図8乃至図11に分けて、ページデータの内容を説明する。
ページデータは、図8に示されているように、任意の1ページを識別するためのページデータID、このページの表示を開始した時刻を示す開始時刻、ストロークやジェスチャ等によるページの内容の書き換えが行われなくなった時刻を示す終了時刻、電子ペン4やユーザの手Hによるストロークによって生じたストローク配列データを識別するためのストローク配列データID、及びメディアデータを識別するためのメディアデータIDが関連付けて記憶されている。ストローク配列データは、後述の図18に示されているストローク画像(B)がディスプレイ3上に表示されるためのデータである。メディアデータは、後述の16に示されている背景画像(D)がディスプレイ3上に表示されるためのデータである。
このようなページデータにより、例えば、ユーザが電子ペン4によってアルファベット「S」を描く場合は一筆書きとなるため、ストロークデータIDが1つで一文字のアルファベット[S]が示される。ところが、ユーザが電子ペン4によってアルファベット「T」を描く場合、二筆書きとなるため、ストロークデータIDが2つで一文字のアルファベット「T」が示されることになる。
また、ストローク配列データは、図9に示されているように詳細な情報を示している。図9は、ストローク配列データを示す概念図である。図9に示されているように、1つのストローク配列データは、複数のストロークデータによって表される。そして、1つのストロークデータは、このストロークデータを識別するためのストロークデータID、1つのストロークの書き始めの時刻を示す開始時刻、1つのストロークの書き終わりの時刻を示す終了時刻、ストロークの色、ストロークの幅、及び、ストロークの通過点の配列を識別するための座標配列データIDを示している。
更に、この座標配列データは、図10に示されているように詳細な情報を示している。図10は、座標配列データを示す概念図である。図10に示されているように、座標配列データは、ディスプレイ3上の1点(X座標値、Y座標値)、この1点を通過したときのストロークの開始時刻からの差分の時刻(ms)、及び、この1点における電子ペン4の筆圧の各情報を示している。即ち、図10に示されている1点の集まりが、図9に示されている1つの座標配列データで示されている。例えば、ユーザが電子ペン4によってアルファベット「S」を描く場合、一筆書きとなるが、「S」を描き終えるまでに、複数の通過点を通過するため、座標配列データは、これら複数の通過点の情報を示している。
また、図8に示されているページデータのうちのメディアデータは、図11に示されているように詳細な情報を示している。図11は、メディアデータを示す概念図である。図11に示されているように、メディアデータは、図8に示されているページデータにおけるメディアデータID、メディアデータのデータ種類、ページ処理部37からページデータ記憶部300にページデータが記憶された記録時刻、ページデータによってディスプレイ3上に表示される画像の位置(X座標値、Y座標値)及び画像のサイズ(幅、高さ)、並びにメディアデータの内容を示すデータが関連付けられて示されている。このうち、ページデータによってディスプレイ3上に表示される画像の位置は、ディスプレイ3の左上端の座標を(X座標値,Y座標値)=(0,0)とした場合に、ページデータによって表示される画像の左上端の位置を示している。
また、図5に戻り、遠隔ライセンス管理テーブル310は、遠隔共有処理を実行するために必要なライセンスデータを管理する。この遠隔ライセンス管理テーブル310では、図12に示されているように、電子黒板2のプロダクトID、認証に用いられるライセンスID、及びライセンスの有効期限が関連付けて管理されている。
<<ファイル処理部の機能構成>>
続いて、図6を用いて、図5に示されているファイル処理部40の機能構成を説明する。なお、図6は、ファイル処理部の機能ブロック図である。
ファイル処理部40は、リカバリ処理部41、ファイル入力部42a、ファイル出力部42b、ファイル変換部43、ファイル送信部44、アドレス帳入力部45、バックアップ処理部46、バックアップ出力部47、設定管理部48、設定ファイル入力部49a、及び設定ファイル出力部49bを有している。更に、ファイル処理部40は、アドレス帳管理テーブル410、バックアップデータ記憶部420、設定ファイル記憶部430、及び接続先管理テーブル440を有している。
このうち、リカバリ処理部41は、電子黒板2が異常終了した後に、異常終了を検知し、未保存のページデータを復旧する。例えば、正常終了の場合は、ページデータがPDFファイルとしてファイル処理部40を介してUSB5に記録されるが、電源がダウンした等の異常終了の場合は、ページデータがページデータ記憶部300に記録されたままになっている。そのため、再び、電源オンになった際に、リカバリ処理部41は、ページデータ記憶部300からページデータを読み出すことで復旧させる。
ファイル入力部42aは、USBメモリ5から、PDFファイルを読み込み、各ページをページデータとしてページデータ記憶部300に記憶する。
ファイル変換部43は、ページデータ記憶部300に記憶されているページデータを、PDF形式のファイルに変換する。
ファイル出力部42bは、ファイル変換部42によって出力されたPDFファイルをUSBメモリ5に記録する。
ファイル送信部44は、ファイル変換部43によって生成されたPDFファイルを、電子メールに添付して送信する。このファイルの送信先は、表示重畳部36によってディスプレイ3上にアドレス帳管理テーブル410の内容を表示し、ファイル送信部44がユーザによるタッチパネル等の入力装置の操作により、宛先の選択を受け付けることによって決定される。アドレス帳管理テーブル410には、図13に示されているように、宛先の名前及び宛先の電子メールのメールアドレスが関連付けて管理されている。また、ファイル送信部44が、ユーザによるタッチパネル等の入力装置の操作により、宛先としてのメールアドレスの入力を受け付けることもできる。
アドレス帳入力部45は、USBメモリ5から電子メールアドレスの一覧ファイルを読み込み、アドレス帳管理テーブル410に管理する。
バックアップ処理部46は、ファイル出力部42bによって出力されたファイルや、ファイル送信部44によって送信されたファイルを、バックアップデータ記憶部420に記憶することでバックアップする。なお、ユーザがバックアップ設定しない場合は、バックアップの処理は行われない。バックアップデータは、図14に示されているように、PDF形式で記憶される。
バックアップ出力部47は、バックアップされたファイルをUSBメモリ5に記憶する。この記憶の際には、ユーザによるタッチパネル等の入力装置の操作により、セキュリティーのためにパスワードが入力される。
設定管理部48は、電子黒板2の各種設定情報を設定ファイル記憶部430に記憶したり読み出したりして管理する。この各種設定情報としては、例えば、ネットワーク設定、日付や時刻の設定、地域や言語の設定、メールの設定、アドレス帳の設定、接続先リストの設定、バックアップに関する設定が挙げられる。なお、ネットワーク設定は、例えば、電子黒板2のIPアドレスの設定、ネットマスクの設定、デフォルトゲートウェイの設定、又はDNS(Domain Name System)の設定等である。
設定ファイル出力部49bは、電子黒板2の各種設定情報を、設定ファイルとしてUSBメモリ5に記録させる。なお、設定ファイルはセキュリティーによって、ユーザは中身を見ることができない。
設定ファイル入力部49aは、USBメモリ5に記憶されている設定ファイルを読み込み、各種設定情報を電子黒板2の各種設定に反映させる。
接続先リスト入力部50は、USBメモリ5から遠隔共有処理の接続先IPアドレスの一覧ファイルを読み込み、接続先管理テーブル440に管理する。なお、図15に示されているように、接続先管理テーブル440は、電子黒板2が遠隔共有処理に参加しようとする参加装置である場合、この参加装置のユーザが主催装置としての役割を果たす電子黒板2のIPアドレスを入力する手間を削減するために、予め管理しておくためのテーブルである。この接続先管理テーブル440では、参加されることが可能な主催装置としての電子黒板2が設置されている拠点の名称、及び主催装置としての電子黒板2のIPアドレスが関連付けて管理されている。
なお、接続先管理テーブル440は、無くてもよい。但し、この場合には、参加装置のユーザは、主催装置との間で遠隔要求処理の開始するために、タッチパネル等の入力装置によって、主催装置のIPアドレスを入力する必要がある。そのため、参加装置のユーザは、電話や電子メール等によって、主催装置のユーザから、主催装置のIPアドレスを知得する。
<<通信制御部の機能構成>>
次に、図7を用いて、通信制御部60の機能構成について説明する。通信制御部60は、通信ネットワーク9を介して、他の電子黒板2と行う通信や、サーバ部90における後述の通信制御部70と行う通信を制御する。そのため、通信制御部60は、遠隔開始処理部61、遠隔参加処理部62、遠隔画像送信部63、遠隔画像受信部64、遠隔操作送信部65、遠隔操作受信部66、及び参加拠点管理テーブル610を有している。
このうち、遠隔開始処理部61は、同じ電子黒板2のサーバ部90に対して、新たに遠隔共有処理を開始する要求を行い、サーバ部90から要求の結果を受信する。この場合、遠隔開始処理部61は、遠隔ライセンス管理テーブル310を参照し、ライセンス情報(プロダクトID、ライセンスID、及び有効期限)が管理されている場合には、遠隔共有処理を開始する要求を行うことができる。但し、ライセンス情報が管理されていない場合には遠隔共有処理を開始する要求を行うことができない。
参加拠点管理テーブル610は、電子黒板2が主催装置である場合、現在、遠隔共有処理に参加している参加装置としての電子黒板2を管理するテーブルである。この参加拠点管理テーブル610では、図16に示されているように、参加中の電子黒板2が設置されている拠点の名称及び当該電子黒板2のIPアドレスが関連付けて管理されている。
遠隔参加処理部62は、通信ネットワーク9を介して、既に遠隔共有処理を開始している主催装置としての電子黒板2のサーバ部90における遠隔接続要求受信部71に対して、遠隔共有処理への参加要求を行う。この場合も、遠隔参加処理部62は、遠隔ライセンス管理テーブル310を参照する。また、遠隔参加処理部62が、既に開始されている遠隔共有処理に参加する場合には、接続先管理テーブル440を参照して、参加先の電子黒板2のIPアドレスを取得する。なお、遠隔参加処理部62によって接続先管理テーブルが参照されず、ユーザによるタッチパネル等の入力装置の操作により参加先の電子黒板2のIPアドレスが入力されてもよい。
遠隔画像送信部63は、映像取得部21から画像取得部31を介して送られて来た出力画像(C)を、サーバ部90に送信する。
遠隔画像受信部64は、サーバ部90から、他の電子黒板2に接続された映像出力機器からの画像データを受信し、表示重畳部36に出力することで、遠隔共有処理を可能にする。
遠隔操作送信部65は、遠隔共有処理に必要な各種操作データをサーバ部90に送信する。この各種操作データとしては、例えば、ストロークの追加、ストロークの削除、ストロークの編集(拡大、縮小、移動)、ページデータの記憶、ページデータの作成、ページデータの複製、ページデータの削除、表示されているページの切り替え等に関するデータが挙げられる。また、遠隔操作受信部66は、サーバ部90から、他の電子黒板2で入力された操作データを受信し、画像処理部30に出力することで、遠隔共有処理を行う。
<サーバ部の機能構成>
続いて、図7を用いて、サーバ部90の機能構成について説明する。サーバ部90は、各電子黒板2に設けられており、いずれの電子黒板2であっても、サーバ部90としての役割を果たすことができる。そのため、サーバ部90は、通信制御部70、及びデータ管理部80を有している。
<<通信制御部の機能構成>>
次に、図7を用いて、通信制御部70の機能構成について説明する。通信制御部70は、同じ電子黒板2内のクライアント部20における通信制御部60、及び通信ネットワーク9を介して他の電子黒板2内のクライアント部20における通信制御部60との通信を制御する。データ管理部80は、操作データや画像データ等を管理する。
更に詳細に説明すると、通信制御部70は、遠隔接続要求受信部71、遠隔接続結果送信部72、遠隔画像受信部73、遠隔画像送信部74、遠隔操作受信部75、及び遠隔操作送信部76を有している。
このうち、遠隔接続要求受信部71は、遠隔開始処理部61からの遠隔共有処理の開始要求を受信し、遠隔参加処理部62からの遠隔共有処理に対する参加要求を受信する。遠隔接続結果送信部72は、遠隔開始処理部61へ遠隔共有処理の開始要求の結果を送信し、遠隔参加処理部62へ遠隔共有処理に対する参加要求の結果を送信する。
遠隔画像受信部73は、遠隔画像送信部63からの画像データ(出力画像(C)のデータ)を受信し、後述の遠隔画像処理部82に送信する。遠隔画像送信部74は、遠隔画像処理部82から画像データを受信し、遠隔画像受信部64に対して、この画像データを送信する。
遠隔操作受信部75は、遠隔操作送信部65からの操作データ(ストローク画像(B)等のデータ)を受信し、後述の遠隔操作処理部83に送信する。遠隔操作送信部76は、遠隔操作処理部83から操作データを受信し、遠隔操作受信部66に対して、この操作データを送信する。
<<データ管理部の機能構成>>
次に、図7を用いて、データ管理部80の機能構成について説明する。データ管理部80は、遠隔接続処理部81、遠隔画像処理部82、遠隔操作処理部83、操作合成処理部84、及びページ処理部85を有している。更に、サーバ部90は、パスコード管理部810、参加拠点管理テーブル820、画像データ記憶部830、操作データ記憶部840、及びページデータ記憶部850を有している。
このうち、遠隔接続処理部81は、遠隔共有処理の開始、及び遠隔共有処理の終了を行う。また、遠隔接続処理部81は、遠隔接続要求受信部71が、遠隔開始処理部61から遠隔共有処理の開始要求と共に受信したライセンス情報、又は、遠隔参加処理部62から遠隔共有処理の参加要求と共に受信したライセンス情報に基づいて、ライセンスの有無やライセンスの期間内であるかを確認する。更に、遠隔接続処理部81は、クライアント部としての他の電子黒板2からの参加要求が予め定められた参加可能数を超えていないかを確認する。
更に、遠隔接続処理部81は、他の電子黒板2から遠隔共有処理に対する参加要求があった際に送られて来たパスコードが、パスコード管理部810で管理されているパスコードと同じであるか否かを判断し、同じである場合には、遠隔共有処理の参加を許可する。なお、このパスコードは、新たに遠隔共有処理を開始する際に、遠隔接続処理部81によって発行され、遠隔共有処理に参加しようとする参加装置としての電子黒板2のユーザが、主催装置としての電子黒板2のユーザから、電話や電子メール等により伝えられる。これにより、遠隔共有処理に参加しようとする参加装置のユーザが、タッチパネル等の入力装置によって参加装置にパスコードを入力して参加要求することで、参加が許可されることになる。なお、セキュリティーよりもユーザの使い勝手を優先して、ライセンス状況の確認だけで、パスコードの確認を省略してもよい。
また、電子黒板2が主催装置の場合、遠隔接続処理部81は、参加装置の遠隔参加処理部62から通信ネットワーク9を介して送られて来た参加要求に含まれる参加拠点情報を、サーバ部90の参加拠点管理テーブル820に記憶する。そして、遠隔接続処理部81は、参加拠点管理テーブル820に記憶されている遠隔拠点情報を読み出し、遠隔接続結果送信部72に送信する。遠隔接続結果送信部72は、同じ主催装置のクライアント部20における遠隔開始処理部61に遠隔拠点情報を送信する。遠隔開始処理部61は、参加拠点管理テーブルに610に、遠隔拠点情報を記憶する。これにより、主催装置では、クライアント部20及びサーバ部90の両方で、遠隔拠点情報を管理することになる。
遠隔画像処理部82は、遠隔共有処理中の各電子黒板2のクライアント部(主催装置である自己の電子黒板2のクライアント部を含む)に接続された映像出力機器(ノートPC6等)からの画像データ(出力画像(C))を受信して画像データ記憶部830に記憶すると共に、主催装置である自己の電子黒板2のサーバ部90に届いた時間順で遠隔共有処理すべき画像データの表示順を判断する。また、遠隔画像処理部82は、参加拠点管理テーブル820を参照し、遠隔共有処理に参加中の全ての電子黒板2のクライアント部20(主催装置である自己の電子黒板2のクライアント部を含む)に、通信制御部70(遠隔画像送信部74)を介して、上記判断した順番で画像データを送信する。
遠隔操作処理部83は、遠隔共有処理中の各電子黒板2のクライアント部(主催装置である自己の電子黒板2のクライアント部を含む)で描画されたストローク画像等の各種操作データ(ストローク画像(B)等)を受信し、主催装置である自己の電子黒板2のサーバ部90に届いた時間順で遠隔共有処理すべき画像の表示順を判断する。なお、各種操作データは、上記の各種操作データと同じである。また、遠隔操作処理部83は、参加拠点管理テーブル820を参照し、遠隔共有処理中の全ての電子黒板2のクライアント部20(主催装置である自己の電子黒板2のクライアント部を含む)に操作データを送信する。
操作合成処理部84は、遠隔操作処理部83から出力された各電子黒板2の操作データにグローバルシーケンスを付与し、操作データを操作データ記憶部840に記憶すると共に遠隔操作処理部83に戻す。この操作データは、遠隔操作送信部76から、主催装置である電子黒板2のクライアント部、及び参加装置である電子黒板2のクライアント部のそれぞれに送信されることで、各電子黒板2で同じ操作データに係る画像が表示される。したがって、操作データ記憶部840は各電子黒板2のクライアント部も共有する。
ページ処理部85は、クライアント部20の画像処理部30におけるページ処理部37と同様の機能を有し、サーバ部90でも、図8乃至図10に示されているページデータを、ページデータ記憶部850に記憶する。なお、ページデータ記憶部850は、画像処理部30におけるページデータ記憶部300と同じ内容であるため、その説明を省略する。
図17は、実施形態に係る操作データ記憶部840に記憶される操作データ管理テーブルの一例を示す概念図である。操作データ管理テーブルには、同じ会議に参加している各電子黒板2の間で相互通信を行うためのセッションを識別するためのセッションID毎に、電子黒板2の間で共有される操作データと画像データに情報が記憶されて管理されている。
操作データ管理テーブルに示されているデータには、各データを識別するためのID、各データの発生順序を示すシーケンス番号(グローバルシーケンス番号)、データの内容を示す情報(body)、並びに親となるデータを特定するための情報(parent)が含まれている。例えば、複数の電子黒板2によって実行されている遠隔会議を示す会議情報の場合、操作データ管理テーブルには、実行されている会議を識別するための会議ID(セッションID)、会議によって生成されたページを示す情報(children)並びに電子黒板2に現在表示されている画面を構成するページを示す情報(Current Page)が含まれている。また、例えば、ページデータの場合、操作データ管理テーブルには、ページ(ページデータ)を識別するためのページID、該当するページを構成する背景画像データの保存位置を示すURL(Uniform Resource Locator)が含まれている。
更に、例えば、ストロークデータの場合、操作データ管理テーブルには、「ストローク描画」イベントによって生成されたストロークデータを識別するためのストロークID、ストロークデータの内容を示す情報、及び、親となるページ(ページデータ)を特定するための情報(parent)が含まれている。この場合、ストロークデータの内容を示す情報(body)には、描画されたストロークの色、描画されたストロークの線の太さを示す幅、及び、描画されたストロークの頂点(x,y)の情報が含まれている。この操作データ管理テーブルにより、電子黒板2は、特定の通信セッションを用いたビデオ会議等によって発生したストロークデータを含む共有画面に関する各種データを管理することができる。
<実施形態の処理又は動作>
続いて、図19及び図20を用いて、本実施形態の処理又は動作について説明する。なお、図19及び図20は、各電子黒板2の処理を示したシーケンス図である。
図19及び図20に示す実施形態では、電子黒板2aが遠隔共有処理を主催する主催装置(サーバ部及びクライアント部)としての役割を果たしており、電子黒板2b,2cが遠隔共有処理に参加する参加装置(クライアント部)としての役割を果たす場合について説明する。また、ここでは、電子黒板2a,2b,2cには、それぞれディスプレイ3a,3b,3cが接続され、更に、それぞれノートPC6a,6b,6cが接続されている。また、電子黒板2a,2b,2cでは、それぞれ電子ペン4a,4b,4cが使用される。
(参加の処理)
まずは、図19を用いて、電子黒板2b,2cが遠隔共有処理に参加するための処理について説明する。
ユーザが電子黒板2aの電源スイッチをオンにすると、電子黒板2aのクライアント部20が起動する。そして、ユーザがタッチパネル等の入力装置によってサーバ部90を起動させる操作をすると、クライアント部20の遠隔開始処理部61から同じ電子黒板2aのサーバ部90における遠隔接続要求受信部71に、サーバ部90の処理を開始させる指示を出力する。これにより、電子黒板2aでは、クライアント部20だけでなくサーバ部90も各種処理を開始可能となる(ステップS21)。
次に、電子黒板2aのクライアント部20におけるUI画像生成部33が電子黒板2aとの接続を確立するための接続情報を生成し、映像重畳部28が、UI画像生成部33から表示重畳部36を介して得た接続情報をディスプレイ3aに表示させる(ステップS22)。この接続情報には、主催装置のIPアドレス、及び今回の遠隔共有処理のために生成されたパスコードが含まれている。この場合、パスコード管理部810に記憶されているパスコードは、図7に示されている遠隔接続処理部81によって読み出され、遠隔接続結果送信部72、遠隔開始処理部61の順に送信される。更に、パスコードは、遠隔開始処理部61を含む通信制御部60から、図5に示されている画像処理部30に送信され、最終的にUI画像生成部33に入力される。これにより、接続情報には、パスコードが含まれる。そして、接続情報は、電子黒板2aのユーザによって、電話や電子メールにより、電子黒板2b,2cのユーザに伝えられる。なお、接続先管理テーブル440があれば、接続情報には、主催装置のIPアドレスが含まれていなくても、参加装置は参加要求を行うことができる。
次に、電子黒板2b,2cでは、各ユーザによるタッチパネル等の入力装置の操作によって接続情報の入力を受け付けると、各電子黒板2a,2bのクライアント部20における遠隔参加処理部62が、接続情報のIPアドレスに基づき、通信ネットワーク9を介して、電子黒板2aのサーバ部90における通信制御部70に対してパスコードを送信して参加要求を行う(ステップS23,S24)。これにより、通信制御部70の遠隔接続要求受信部71は、各電子黒板2b,2cから、参加要求(パスコードを含む)を受信し、このパスコードを遠隔接続処理部81に出力する。
次に、遠隔接続処理部81は、各電子黒板2b,2cから受信したパスコードに対し、パスコード管理部810で管理されているパスコードを用いて認証する(ステップS25)。そして、遠隔接続結果送信部72が、各電子黒板2b,2cのクライアント部20に認証結果を通知する(ステップS26,S27)。ステップS25の認証により、各電子黒板2b,2cが正当な電子黒板2であると判断されていた場合には、主催装置である電子黒板2aと、参加装置である電子黒板2b,2cとの遠隔共有処理の通信が確立され、各電子黒板2b,2cのクライアント部20における遠隔参加処理部62が、それぞれ他の電子黒板2との間の遠隔共有処理の開始を可能にする(ステップS28,S29)。
(出力画像の表示)
続いて、図19を用いて、遠隔共有処理における出力画像(C)が表示される処理について説明する。
まず、電子黒板2bは、ディスプレイ3bに出力画像(C)を表示する(ステップS30)。具体的には、電子黒板2bの画像取得部31が、ノートPC6bから映像取得部21を介して、ノートPC6bで表示されている出力画像(C)のデータを受信し、表示重畳部36及び映像重畳部28を介してディスプレイ3bに送信することで、ディスプレイ3bは出力画像(C)を表示する。
次に、電子黒板2bの画像取得部31を含む画像処理部30が、遠隔画像送信部63に出力画像(C)のデータを送信することで、遠隔画像送信部63を含む通信制御部60が通信ネットワーク9を介して、主催装置である電子黒板2aの通信制御部70に出力画像(C)のデータを送信する(ステップS31)。これにより、電子黒板2aの遠隔画像受信部73は、出力画像(C)のデータを受信し、遠隔画像処理部82に出力することで、遠隔画像処理部82が画像データ記憶部830に出力画像(C)のデータを記憶する。
次に、主催装置である電子黒板2aは、ディスプレイ3aに出力画像(C)を表示する(ステップS32)。具体的には、電子黒板2aの遠隔画像処理部82は、遠隔画像受信部73から受信した出力画像(C)のデータを、遠隔画像送信部74に出力する。遠隔画像送信部74は、同じ主催装置である電子黒板2aのクライアント部20における遠隔画像受信部64に、出力画像(C)のデータを出力する。遠隔画像受信部64は、表示重畳部36に出力画像(C)のデータを出力する。表示重畳部36は、映像重畳部28に出力画像(C)のデータを出力する。映像重畳部28はディスプレイ3aに出力画像(C)のデータを出力する。これにより、ディスプレイ3aは、出力画像(C)を表示する。
次に、主催装置としての電子黒板2aのサーバ部90における遠隔画像送信部74を含む通信制御部70は、通信ネットワーク9を介して、出力画像(C)のデータの送信元である電子黒板2b以外の電子黒板2cの通信制御部60に出力画像(C)のデータを送信する(ステップS33)。これにより、参加装置である電子黒板2cの遠隔画像受信部64は、出力画像(C)のデータを受信する。
次に、電子黒板2cは、ディスプレイ3cに出力画像(C)を表示する(ステップS34)。具体的には、電子黒板2cの遠隔画像受信部64が、上記ステップS33によって受信された出力画像(C)のデータを、電子黒板2cの表示重畳部36に出力する。表示重畳部36は、映像重畳部28に出力画像(C)のデータを出力する。映像重畳部28はディスプレイ3cに出力画像(C)のデータを出力する。これにより、ディスプレイ3cは、出力画像(C)を表示する。
なお、出力画像(C)のデータだけでなく、UI画像(A)、及びストローク画像(B)の各データが、表示重畳部36に入力されている場合には、表示重畳部36により、重畳画像(A,B,C)が生成され、映像重畳部28はディスプレイ3cに重畳画像(A,B,C)のデータを出力する。また、テレビ会議端末7から映像重畳部28に、テレビ会議用の映像(E)のデータが送られて来ている場合には、映像重畳部28は、重畳画像(A,B,C)にピクチャ・イン・ピクチャによりテレビ会議用の映像(E)のデータを重畳して、ディスプレイ3cに出力する。
(重畳画像の表示)
続いて、図20を用いて、共有処理における重畳画像が表示される処理について説明する。
まず、電子黒板2bは、ユーザが電子ペン4bを用いて電子黒板2bにストローク画像(B)を描画する(ステップS41)。
次に、電子黒板2bの表示重畳部36は、図18に示されているように、UI画像(A)、及び出力画像(C)に対して、ストローク画像(B)を重畳し、映像重畳部28が電子黒板2bのディスプレイ3b上に、重畳された重畳画像(A,B,C)を表示させる(ステップS42)。具体的には、電子黒板2bのストローク処理部32が座標検知部22及び接触検知部24からイベント振分部25を介して、操作データとしてのストローク画像(B)のデータを受信し、表示重畳部36に送信する。これにより、表示重畳部36は、UI画像(A)、及び出力画像(C)に対して、ストローク画像(B)を重畳することができ、映像重畳部28が電子黒板2bのディスプレイ3b上に重畳画像(A,B,C)を表示させることができる。
次に、電子黒板2bのストローク処理部32を含む画像処理部30が、遠隔操作送信部65にストローク画像(B)のデータを送信することで、電子黒板2bの遠隔操作送信部65は、通信ネットワーク9を介して、主催装置である電子黒板2aの通信制御部70にストローク画像(B)のデータを送信する(ステップS43)。これにより、電子黒板2aの遠隔操作受信部75は、ストローク画像(B)のデータを受信し、遠隔操作処理部83に出力することで、遠隔操作処理部83が操作合成処理部84にストローク画像(B)のデータを出力する。このようにして、電子黒板2bで描画されたストローク画像(B)のデータは、描画される度に、主催装置である電子黒板2aの遠隔操作処理部83に順次送信される。このストローク画像(B)のデータは、図9に示されているストロークデータID毎に示されるデータである。よって、例えば、上記したように、ユーザが電子ペン4によってアルファベット「T」を描く場合は二筆書きとなるため、2つのストロークデータIDのそれぞれで示されるストローク画像(B)のデータが順次送信される。
次に、主催装置である電子黒板2aは、ディスプレイ3aに、電子黒板2bから送られて来たストローク画像(B)のデータが含まれた重畳画像(A,B,C)を表示する(ステップS44)。具体的には、電子黒板2aの操作合成処理部84は、遠隔操作処理部83を介して順次送られて来た複数のストローク画像(B)のデータを合成して、操作データ記憶部840に記憶すると共に遠隔操作処理部83に戻す。これにより、遠隔操作処理部83は、操作合成処理部84から受信した、合成後のストローク画像(B)のデータを、遠隔操作送信部76に出力する。遠隔操作送信部76は、同じ主催装置である電子黒板2aのクライアント部20における遠隔操作受信部66に、合成後のストローク画像(B)のデータを出力する。遠隔操作受信部66は、画像処理部30における表示重畳部36に、合成後のストローク画像(B)のデータを出力する。よって、表示重畳部36は、UI画像(A)、及び出力画像(C)に対して、合成後のストローク画像(B)を重畳する。最後に、映像重畳部28が、表示重畳部36によって重畳された重畳画像(A,B,C)をディスプレイ3a上に表示させる。
次に、主催装置としての電子黒板2aのサーバ部90における遠隔操作送信部76を含む通信制御部70は、通信ネットワーク9を介して、ストローク画像(B)のデータの送信元である電子黒板2b以外の電子黒板2cの通信制御部60に、合成後のストローク画像(B)のデータを送信する(ステップS45)。これにより、参加装置である電子黒板2cの遠隔操作受信部66は、合成後のストローク画像(B)のデータを受信する。
次に、電子黒板2cは、ディスプレイ3cに重畳画像(A,B,C)を表示する(ステップS34)。具体的には、電子黒板2cの遠隔操作受信部66が、上記ステップS45によって受信された合成後のストローク画像(B)のデータを、電子黒板2cの画像処理部30に出力する。画像処理部30の表示重畳部36は、UI画像(A)、及び出力画像(C)の各データと、合成後のストローク画像(B)のデータを重畳し、映像重畳部28に重畳画像(A,B,C)のデータを出力する。映像重畳部28は、ディスプレイ3cに重畳画像(A,B,C)のデータを出力する。これにより、ディスプレイ3cは、重畳画像(A,B,C)を表示する。
なお、上記処理では、ディスプレイ3上に出力画像(C)が表示されているが、この出力画像(C)に代えて、背景画像(D)を表示してもよい。また、出力画像(C)と背景画像(D)との排他的な関係をやめて、出力画像(C)と背景画像(D)との両方を同時にディスプレイ3上に表示させてもよい。
(参加の終了)
続いて、図20を用いて、参加装置が遠隔共有処理への参加を終了する処理について説明する。図20に示す実施形態では、電子黒板2cが参加を終了する処理が示されている。
まず、電子黒板2cでは、ユーザによるタッチパネル等の入力装置の操作によって参加の終了要求を受け付けると、遠隔参加処理部62は、主催装置としての電子黒板2aのサーバ部90における通信制御部70に、参加の終了要求を行う(ステップS47)。これにより、通信制御部70の遠隔接続要求受信部71は、電子黒板2cから、参加の終了要求を受信し、遠隔接続処理部81に、電子黒板2cのIPアドレスと共に参加の終了要求を出力する。そして、電子黒板2aの遠隔接続処理部81は、遠隔接続要求受信部71から送られて来たIPアドレスに基づいて、参加拠点管理テーブル820から、参加の終了要求を行った電子黒板2cのIPアドレス及び電子黒板2cが設置されている拠点の名称を削除し、遠隔接続結果送信部72に、電子黒板2cのIPアドレス及び削除した旨の通知を出力する。
次に、遠隔接続結果送信部72を含んだ通信制御部70が、通信ネットワーク9を介して、電子黒板2cのクライアント部20における通信制御部60に、参加の終了を指示する(ステップS48)。これにより、電子黒板2cにおける通信制御部60の遠隔参加処理部62が、遠隔共有処理の通信を切断することで、参加の終了処理を行うことで、参加が終了する(ステップS49)。
<グローバルシーケンスの採番に関する処理>
図21は、グローバルシーケンスの採番と通知を説明するシーケンス図の一例である。
S1:まず、ユーザは手書きデータを電子黒板2に入力する。
S2:電子黒板2のイベント振分部25は手書きデータの入力のイベントを検出して、ストローク処理部32に振り分ける。ストローク処理部32はストローク画像(B)に未確定状態のストロークを描画する。
S3:ストローク処理部32は未確定状態の手書きデータに対する操作を制限する。例えば、イベント振分部25から移動などの操作が通知されても、未確定状態が対応付けられているため操作を破棄する。
S4:通信制御部60はサーバ部90に手書きデータが入力されたこと(手書きデータに関する座標などの操作データを含む)を通知する。
S5:サーバ部90の通信制御部70は手書きデータを受信し、操作合成処理部84はグローバルシーケンスを採番する。操作データは操作データ記憶部840に記憶される。
S6:遠隔操作処理部83はグローバルシーケンスと操作データを電子黒板2に送信する。
S7:電子黒板2の通信制御部60はグローバルシーケンスが付与された操作データを受信するので、ストローク処理部32は手書きデータを未確定状態から確定状態に変更する。
S8:ストローク処理部32はグローバルシーケンスの順番で、手書きデータに操作を反映させる。ここでは1つの手書き入力が行われているが、例えば、手書き入力に続いて移動操作が入力されれば、グローバルシーケンスの順番にしたがって、手書きデータの確定後、移動する。
図22は、電子黒板2が手書きデータを検出した場合の処理手順を説明するフローチャート図の一例である。
まず、ストローク処理部32が手書きデータを検知してページデータ記憶部300に記憶させる(S101)。ストローク処理部32は、ストローク画像(B)に未確定状態のストロークを描画するが、輝度や彩度を低減して描画するとよい。ユーザは未確定状態であることを把握することができる。
次に、ページ処理部37はこのストロークデータに未確定状態を設定する(S102)。この未確定状態のストロークデータの一例を図23に示す。
通信制御部60は操作データをサーバ部90に送信する(S103)。操作データには、他の拠点でストロークを再現するための情報が含まれる。
送信後、電子黒板2は次のストロークの手書きなど、他の操作を受け付けながら、通信制御部60がグローバルシーケンスを受信したか否かを、ページ処理部37が判断する(S104)。
グローバルシーケンスを受信した場合、ページ処理部37は、ストロークデータIDで特定されるストロークデータを未確定状態から確定状態に変更する(S105)。
そして、ストローク処理部32はグローバルシーケンスの順番で、ストロークデータIDで特定される操作対象のデータに操作種類の操作を反映させる(S106)。例えば、ストローク処理部32はグローバルシーケンスがより若い操作が画面に反映されていれば、グローバルシーケンスが次の操作を画面に反映する。未確定状態だったためにストロークデータがすでに低輝度等で表示されている場合、グローバルシーケンスを受け取ることで確定状態になったので、ストローク処理部32はグローバルシーケンスにしたがって予め設定されている輝度や彩度でストロークを表示する。
図23は、未確定状態のストロークデータの一例を示す。図23のストロークデータはストロークごとに確定/未確定の項目を有している。確定/未確定の項目はTRUE(確定)、未確定(FALSE)の値を取る。図23(a)ではストロークデータIDがs003のストロークデータが未確定であるが、図23(b)では確定していることが分かる。電子黒板2は、確定/未確定の項目を参照して移動、拡大、削除などのジェスチャ操作を受け付けるかどうかを判断できる。
図24は、サーバ部90が操作内容を受信した場合の処理を示すフローチャート図の一例である。
まず、通信制御部70の遠隔操作受信部75が電子黒板2から操作内容を受信する(S301)。
操作合成処理部84はグローバルシーケンスを採番し、操作データ記憶部840に操作データを記憶させる(S302)。
遠隔操作送信部76はグローバルシーケンスを含む操作データ(ストロークの色、描画されたストロークの線の太さを示す幅、及び、描画されたストロークの頂点(x,y))を各電子黒板2に送信する(S303)。
図25は、手書きデータに対する操作の処理を説明するフローチャート図の一例である。ユーザがすでに表示されている手書きデータに対する操作を行う場合がある。例えば、ストロークの削除、ストロークの拡大、移動などである。
ジェスチャ処理部27は手書きデータにするジェスチャ操作を検出した場合(S201のYes)、ページ処理部37を介して、ジェスチャ操作されたストロークが未確定状態か否かを判断する(S202)。
未確定状態であった場合(S202のYes)、ジェスチャ処理部27はユーザのジェスチャ操作を破棄する(S203)。破棄するので操作制限される。破棄するのでなく、操作データを記録しておき、確定後に反映させてもよい。
未確定状態でない場合(S202のNo)、ジェスチャ処理部27はジェスチャ操作を手書きデータに反映させる(S204)。
なお、確定状態の手書きデータに対する操作について補足する。ユーザが移動する操作を確定状態の手書きデータに対し入力したものとする。この場合もサーバ部90がグローバルシーケンスを移動の操作に与えるが、電子黒板2はグローバルシーケンスを受信するまでの間、手書きデータを仮に移動しておき、ストロークの追加の場合と同様に低い輝度などで移動先に表示する(未確定状態で表示)。そして、電子黒板2がグローバルシーケンスを受信すると、グローバルシーケンスにしたがって(グローバルシーケンスがより若い操作がすべて表示に反映されると)、低輝度の手書きデータを通常の輝度の手書きデータで表示する。
あるいは、未確定状態であっても、電子黒板2は移動先の手書きデータを通常と同じ輝度で表示してもよい。移動に関しては情報処理装置8からグローバルシーケンスが到達した時に、手書きデータの追加のような不都合が生じないためである。
<ストロークの手書き以外の操作>
手書きデータは入力される場合だけでなく、ファイルの読み込みにより追加される場合もある。電子黒板2は画面に手書きされた手書きデータをPDFファイルなどで保存することができる。このPDFファイルには手書きデータ(座標データ)が含まれているため、ファイルの読み込みにより手書きデータが追加される。
また、マーカー(ペンでなく手で手書きした場合に表示される。手書きデータのようにストロークを表示するが、一定時間の経過で消える。)の入力の場合も、手書きデータと同様に扱うことができる。
また、図26に示すように、例えば、PCなどの端末装置を経由してユーザが電子黒板2に手書きデータを入力する場合もある。図26は、電子黒板2とPCが通信するシステム構成の一例を示す。図26では、電子黒板2に直接、ユーザが手書きするだけでなく、端末装置200にユーザが手書きした手書きデータが電子黒板2に送信され、手書きデータを追加することができる。この場合もグローバルシーケンスが付与されるので、電子黒板2に直接、ユーザが手書きした場合と同様に扱うことができる。
また、手書きデータでなく、ユーザがページを追加した場合、電子黒板2はページに対して操作の制限をすることもできる。電子黒板2はページごとに操作データを管理している。ユーザがページを追加すると白紙が表示されるが、このページは未確定状態となる。グローバルシーケンスが情報処理装置8から通知されるまで、ユーザは更なるページの追加が制限される。一方、手書きデータについてはページの追加が未確定状態でも手書きデータが追加で表示される。ページの追加については手書きデータとページの追加の順番が前後しないためである。このような処理は、ページに対し未確定状態が対応付けられている場合、次の操作がページの追加か又はストロークの追加かを判断することで実現できる。
<主な効果>
以上説明したように、本実施形態の電子黒板2は、未確定状態を設けることで、グローバルシーケンスの通りに操作内容を手書きデータに反映することができる。したがって、ユーザの操作を手書きデータに適切に反映させることができる。また、ユーザが意図しない表示とならないようにすることができる。
<その他の適用例>
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
例えば、本実施形態では、電子黒板として使用できる表示装置を説明したが、表示装置は画像を表示できればよく、例えばデジタルサイネージなどでもよい。
また、本実施形態では電子黒板を一例として説明したが、タッチパネルを有する情報処理装置であれば好適に適用できる。電子黒板と同様の機能を有する装置を、電子ホワイトボード、電子情報ボード、インタラクティブボードなどともいう。タッチパネルを搭載した情報処理装置としては、例えば、PJ(Projector:プロジェクター)、デジタルサイネージ等の出力装置、HUD(Head Up Display)装置、産業機械、撮像装置、集音装置、医療機器、ネットワーク家電、ノートPC(Personal Computer)、携帯電話、スマートフォン、タブレット端末、ゲーム機、PDA(Personal Digital Assistant)、デジタルカメラ、ウェアラブルPC又はデスクトップPC等であってもよい。
また、本実施形態ではペン先の座標をタッチパネルで検知する方法でペンの座標を検出したが、ペン先の座標を超音波により検出してもよい。ペンは発光と共に超音波を発信しており、電子黒板2は超音波の到達時間により距離を算出する。方向と距離によりペンの位置を特定できる。ペンの軌跡をストロークとしてプロジェクターが描画(投影)する。
また、図6などの構成例は、電子黒板2による処理の理解を容易にするために、主な機能に応じて分割したものである。処理単位の分割の仕方や名称によって本願発明が制限されることはない。電子黒板2の処理は、処理内容に応じて更に多くの処理単位に分割することもできる。また、1つの処理単位が更に多くの処理を含むように分割することもできる。
また、上記で説明した実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(digital signal processor)、FPGA(field programmable gate array)や従来の回路モジュール等のデバイスを含むものとする。