以下、本発明を実施するための形態の一例として、表示装置と表示装置が行う負荷制御方法について図面を参照しながら説明する。
<動作の概略>
4K(3840x2160)などの高解像度の外部入力映像が表示装置2に入力される場合が増えている。しかし、高解像度の映像はリソースを消費するため、表示装置2の負荷が大きく増大する。そこで、表示装置は以下のように性能値(フレームレート)を制御する。
図1は、表示装置が自機の負荷を制御する手順を示すフローチャート図の一例である。図1の処理を簡単に説明すると、
・CPU使用率が閾値を超えた場合、外部入力映像のフレームレートを段階的に下げる。
・CPU使用率が閾値以下の場合、外部入力映像のフレームレートを段階的に上げる。
というものである。
表示装置はCPU使用率を繰り返し測定している(S1)。CPU使用率が閾値を超えた場合(S2のYes)、フレームレート(FPS:frames per second)が最低値でなければ(S3のNo)、表示装置は外部入力映像のFPSを1段階下げる(S4)。
CPU使用率が閾値以下の場合(S2のNo)、フレームレートが最高値でなければ(S5のNo)、表示装置は外部入力映像のフレームレートを1段階上げる(S6)。
このように、CPU使用率に応じて外部入力映像のフレームレートを制御できる。フレームレートは表示装置の負荷に影響するので、表示装置の負荷を制御できる。また、プロセスを停止する必要もない。
<用語について>
負荷とは、処理すべき単位時間あたりの仕事量のことをいう。表示装置の負荷としては、映像の表示、通信、手書きデータの表示、アプリの実行などがある。これらは、CPU使用率、メモリ使用率、又は、通信速度などで測定される。
表示装置の性能値とは表示装置の能力を指定する値である。例えば、外部入力のフレームレート、映像サイズ、アプリのプロセス優先度などがある。パフォーマンスと称することもできる。
CPU使用率とはある単位時間のうち、オペレーティングシステム(OS)やアプリケーションソフトが何らかの処理を実行している時間の割合である。0〜100%の値を取る。
監視とは、監視タイミング時に、監視対象の情報の値を取得し、他の情報の値との整合性を確認することを指す。例えば、定期的にCPU使用率を取得して、予め設定した閾値より高いか否かを確認する。
<システム構成例>
図2は、本実施形態の通信システム1の全体構成図である。なお、図2では、説明を簡略化するために、2台の表示装置2a,2b及びこれに付随する電子ペン4a,4b等を示しているだけであって、3台以上の表示装置2や電子ペン等を利用してもよい。
図2に示されているように、通信システム1は、複数の表示装置2a,2b、複数の電子ペン4a,4b、USBメモリ5a,5b、ノートPC6(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には、Display Port(登録商標)、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と通信してもよい。なお、テレビ(ビデオ)会議端末7aはその機能が表示装置2aに内蔵される場合もある。この場合、表示装置2aは、マイク、スピーカ、及びカメラを有する。
一方、表示装置2bが設置されている他の拠点では、上記と同様に、ディスプレイ3bを備えた表示装置2b、電子ペン4b、USBメモリ5b、ノートPC6b、テレビ会議端末7b、ケーブル10b1、ケーブル10b2が利用される。更に、ユーザの手Hb等によって生じたイベントに基づいて、ディスプレイ3b上に表示されている画像を変更させることもできる。
これにより、一の拠点で表示装置2aのディスプレイ3a上に描画された画像は、他の拠点で表示装置2bのディスプレイ3b上にも表示され、逆に他の拠点で表示装置2bのディスプレイ3b上に描画された画像は、一の拠点で表示装置2aのディスプレイ3a上に表示される。このように、通信システム1では、遠隔地において同じ画像を共有する遠隔共有処理を行うことができるため、遠隔地での会議等に用いると、非常に便利である。ただし、本実施形態の説明に関して、表示装置2aは他拠点の表示装置2bと通信することは必須でない。
なお、以下では、複数の表示装置2のうち任意の表示装置2を示す場合には「表示装置2」と示す。複数のディスプレイ3のうち任意のディスプレイ3を示す場合には「ディスプレイ3」と示す。複数の電子ペンのうち任意の電子ペンを示す場合には「電子ペン4」と示す。複数のUSBメモリのうち任意のUSBメモリを示す場合には「USBメモリ5」と示す。複数のノートPC6のうち任意のノートPC6を示す場合には「ノートPC6」と示す。複数のテレビ会議端末のうち任意のテレビ会議端末を示す場合には「テレビ会議端末7」と示す。また、複数のユーザの手のうち任意の手を示す場合には「手H」と示す。複数のケーブルのうち任意のケーブルを示す場合には「ケーブル10」と示す。
また、本実施形態では、表示装置の一例として、表示装置2を説明するが、これに限るものではなく、表示装置の他の例として、電子看板(デジタルサイネージ)、スポーツや天気予報等で利用されるテレストレータ、又は、遠隔画像(映像)診断装置等であってもよい。また、情報処理端末の一例として、ノートPC6を説明するが、これに限るものではなく、情報処理端末の他の例として、デスクトップ型PCやタブレット型PC、スマートフォン、PDA(Personal Digital Assistant)、デジタルビデオカメラ、デジタルカメラ、ゲーム機等の画像フレームを供給可能な端末であってもよい。更に、通信ネットワークには、インターネット、LAN(Local Area Network)、携帯電話通信網等が含まれる。また、本実施形態では、記録媒体の一例として、USBメモリを説明するが、これに限るものではなく、記録媒体の他の例として、SDカード等の各種記録メディアであってもよい。
<表示装置のハードウェア構成>
続いて、図3を用いて、本実施形態の表示装置2のハードウェア構成を説明する。なお、図3は、表示装置2のハードウェア構成図である。図3では表示装置2の一例として電子黒板が想定されている。
表示装置2はコントローラー110、及び、ディスプレイ3を有している。また、使用時には、コントローラー110にキャプチャーデバイス111が装着される。キャプチャーデバイス111はコントローラー110と一体でもよい。コントローラー110は、コントローラー110全体の動作を制御するCPU101、IPL等のCPU101の駆動に用いられるプログラムを記憶したROM102、CPU101のワークエリアとして使用されるRAM103、表示装置2用のプログラム等の各種データを記憶するSSD104、通信ネットワーク9との通信を制御するネットワークコントローラー105、及び、USBメモリ5との通信を制御する外部記憶コントローラー106を備えている。
コントローラー110はグラフィクスを専門に扱うGPU(Graphics Processing Unit)112、及び、GPUからの出力画像をディスプレイ3やテレビ会議端末7へ出力するために画面表示の制御及び管理を行うディスプレイコントローラー113を備えている。
更に、コントローラー110は、接触センサ115の処理を制御するセンサコントローラー114、ディスプレイ3上に電子ペン4やユーザの手H等が接触したことを検知する接触センサ115を備えている。この接触センサ115は、赤外線遮断方式による座標の入力及び座標の検出を行う。この座標の入力及び座標の検出する方法は、ディスプレイ3の上側両端部に設置された2つ受発光装置が、ディスプレイ3に平行して複数の赤外線を放射し、ディスプレイ3の周囲に設けられた反射部材によって反射されて、受光素子が放射した光の光路と同一の光路上を戻って来る光を受光する方法である。接触センサ115は、物体によって遮断された2つの受発光装置が放射した赤外線のID(Identification)をセンサコントローラー114に出力し、センサコントローラー114が、物体の接触位置である座標位置を特定する。なお、以下に示す全ての各IDは、識別情報の一例である。
また、接触センサ115としては、赤外線遮断方式に限らず、静電容量の変化を検知することにより接触位置を特定する静電容量方式のタッチパネル、対向する2の抵抗膜の電圧変化によって接触位置を特定する抵抗膜方式のタッチパネル、接触物体が表示部に接触することによって生じる電磁誘導を検知して接触位置を特定する電磁誘導方式のタッチパネルなどの種々の検出手段を用いてもよい。
また、コントローラー110は、電子ペンコントローラー116を備えている。この電子ペンコントローラー116は、電子ペン4と通信することで、ディスプレイ3へのペン先のタッチやペン尻のタッチの有無を判断する。なお、電子ペンコントローラー116が、電子ペン4のペン先及びペン尻だけでなく、電子ペン4のユーザが握る部分や、その他の電子ペンの部分のタッチの有無を判断するようにしてもよい。
更に、コントローラー110は、CPU101、ROM102、RAM103、SSD104、ネットワークコントローラー105、外部記憶コントローラー106、キャプチャーデバイス111、GPU112、センサコントローラー114、及び電子ペンコントローラー116を、図3に示されているように電気的に接続するためのアドレスバスやデータバス等のバスライン120を備えている。
なお、コントローラー110用のプログラムは、CD−ROM等のコンピュータで読み取り可能な記録媒体に記録して流通させるようにして配布されてもよいし、プログラム配信サーバ(サーバの形態は、クラウドでもオンプレミスでも良い)からダウンロードされてもよい。
キャプチャーデバイス111はコントローラー110と例えばUSB3.0等のシリアルケーブルを介して接続することができる(受付装置の一例)。なお、HDMI(登録商標)、Display Port(登録商標)、又は、VGA等のディスプレイケーブルを介して接続してもよい。また、無線で通信してもよい。キャプチャーデバイス111は、ノートPC6が出力するコンテンツデータ(映像又は音声)を静止画又は動画(及び音声)として受け付ける。キャプチャーデバイス111は受け付けた静止画又は動画をコントローラー110に送信する。なお、静止画又は動画の送信は、コントローラー110からの要求に応じて行ってもよいし、要求がなくても送信してよい。
キャプチャーデバイス111はEEPROM(Electrically Erasable Programmable Read Only Memory)やPROM(Programmable ROM)などにEDIDを保持しており、コントローラー110だけでなく、ノートPC6からも取得できるようになっている。
なお、ノートPC6とキャプチャーデバイス111は、HDMI(登録商標)、Display Port(登録商標)、又は、VGA等のディスプレイケーブルを介して接続することができる。また、キャプチャーデバイス111とノートPC6は無線で映像信号を送信してもよい。
ディスプレイ3は、コントローラー110と例えばOPS I/F(Open Pluggable Specification)等のケーブルを介して接続することができる。なお、HDMI(登録商標)、Display Port(登録商標)、又は、VGA等のディスプレイケーブルを介して接続してもよい。また、無線で通信してもよい。ディスプレイ3は、ノートPC6が出力した静止画又は動画を表示する。また、手書きデータを表示することができる。また、他の拠点や自拠点の画像を表示することもできる。
なお、ディスプレイ3はいわゆる液晶や有機ELなどのフラットパネルディスプレイのほか、プロジェクタ、HUD(Head Up Display)などでもよい。
ディスプレイ3はEEPROM(Electrically Erasable Programmable Read Only Memory)やPROM(Programmable ROM)などにEDIDを保持しており、コントローラー110から取得できるようになっている。
続いて、図4乃至図17を用いて、表示装置2の機能構成について説明する。なお、先ずは、図4を用いて、表示装置2の全体的な機能構成について説明する。図4は、表示装置2の機能ブロック図である。
表示装置2は、図3に示されているハードウェア構成及びプログラムによって、図4にされている各機能構成を有する。表示装置2は、最初に遠隔共有処理を開始する「主催装置」となり得ると共に、既に開始されている遠隔共有処理に後から参加する「参加装置」にもなり得る。また、表示装置2は、大きく分けて、クライアント部20及びサーバ部90の両方によって構成されている。クライアント部20及びサーバ部90は、表示装置2の1台の筐体内で実現される機能である。そして、表示装置2が主催装置となる場合には、この表示装置2では、クライアント部20とサーバ部90が実現される。また、表示装置2が参加装置となる場合には、この表示装置2では、クライアント部20は実現されるが、サーバ部90は実現されない。即ち、図2において、表示装置2aが主催装置で、表示装置2bが参加装置となる場合、表示装置2aのクライアント部20は、同じ表示装置2a内に実現されたサーバ部90を介して、他の表示装置2bのクライアント部20と通信を行う。一方、表示装置2bのクライアント部20は、他の表示装置2a内に実現されたサーバ部90を介して、他の表示装置2aのクライアント部と通信を行う。
<<クライアント部の機能構成>>
続いて、主に図4乃至図6を用いて、クライアント部20の機能構成について説明する。クライアント部20は、映像取得部21、座標検知部22、自動調整部23、接触検知部24、イベント振分部25、操作処理部26、ジェスチャ処理部27、映像重畳部28、画像処理部30、及び通信制御部60を有する。
このうち、映像取得部21は、ケーブル10に接続されたノートPC6の出力映像を取得する(図4ではキャプチャーデバイス111が省略されているがキャプチャーデバイス111から取得する)。映像取得部21は、ノートPC6から画像信号を受信すると、この画像信号を解析して、この画像信号によって形成されるノートPC6の表示画像である画像フレームの解像度や、この画像フレームの更新頻度などの画像情報を導出し、画像取得部31に出力する。
座標検知部22は、ディスプレイ3上でユーザによって生じたイベント(ディスプレイ3上にユーザの手Hがタッチされた動作等)の座標位置を検出する。また、座標検知部22は、タッチされた面積も検出する。
自動調整部23は、表示装置2の起動時に起動され、接触センサ115が座標検知部22に適切な値を出力できるように、接触センサ115の光センサ方式におけるセンサーカメラの画像処理のパラメータを調整する。
接触検知部24は、ユーザによって生じたイベント(ディスプレイ3上に電子ペン4のペン先又は電子ペン4のペン尻が押下(タッチ)された動作等)を検出する。
イベント振分部25は、座標検知部22によって検知されたイベントの座標位置と接触検知部24によって検出された検出結果を、ストローク描画、UI操作、及びジェスチャ操作の各イベントに振り分ける。
ここで、「ストローク描画」は、ディスプレイ3上に図17に示されている後述のストローク画像(B)が表示されている場合に、ユーザがディスプレイ3上で電子ペン4を押下し、この押下した状態で電子ペン4を移動させ、最終的にディスプレイ3上から電子ペン4を離すまでのイベントである。このストローク描画により、例えば、アルファベット「S」や「T」等がディスプレイ3上に描画される。なお、この「ストローク描画」には、画像を描画するだけでなく、既に描画された画像を削除したり、描画された画像を編集したりするイベントも含まれる。
「UI操作」は、ディスプレイ3上に図17に示されている後述のUI画像(A)が表示されている場合に、ユーザが電子ペン4又は手Hによって所定の位置を押下したイベントである。このUI操作により、例えば、電子ペン4により描画される線の色や幅等が設定される。
「ジェスチャ操作」は、ディスプレイ3上に図17に示されている後述のストローク画像(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は、図17に示されているような各画像レイヤの重畳処理等を行う。この画像処理部30は、画像取得部31、ストローク処理部32、UI画像生成部33、背景生成部34、レイアウト管理部35、表示重畳部36、ページ処理部37、ファイル処理部40、ページデータ記憶部300、及び遠隔ライセンス管理テーブル310を有している。
このうち、画像取得部31は、映像取得部21で取得された映像から、各フレームを画像として取得する。画像取得部31は、この画像のデータを、ページ処理部37に出力する。この画像は、図17に示されているノートPC6等からの出力画像(C)に相当する。
ストローク処理部32は、イベント振分部25によって割り振られたストローク描画に係るイベントに基づいて、画像を描画したり、描画された画像を削除したり、描画された画像を編集する。このストローク描画による画像は、図17に示されているストローク画像(B)に相当する。また、このストローク描画に基づいた画像の描画、削除、編集の各結果は、後述の操作データとして、操作データ記憶部840に記憶される。
UI画像生成部33は、表示装置2に予め設定されているUI(ユーザインターフェース)画像を生成する。このUI画像は、図17に示されているUI画像(A)に相当する。
背景生成部34は、ページ処理部37がページデータ記憶部300から読み出したページデータのうちのメディアデータを、ページ処理部37から受信する。背景生成部34は、この受信したメディアデータを表示重畳部36に出力する。また、このメディアデータによる画像は、図17に示されている背景画像(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)のデータは、図7に示されているストローク配列データIDで示されるストローク配列データ(各ストロークデータ)として、ページデータの一部を成す。出力画像(C)のデータは、図7に示されているメディアデータ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によって指定されたレイアウトにしたがって重畳する。これにより、図17に示されているように、各画像が重なってもユーザが見える順に、UI画像(A)、ストローク画像(B)、出力画像(C)、及び背景画像(D)の各レイアの構成となっている。
また、表示重畳部36は、図17に示されている画像(C)と画像(D)を切り替えて、画像(A)及び画像(B)に対して排他的に重畳することも可能である。例えば、当初、画像(A)、画像(B)及び画像(C)が表示されている状態で、表示装置2とノートPC6等との間のケーブル10が抜かれた場合には、レイアウト管理部35の指定によって、画像(C)を重畳対象から外し、画像(D)を表示させることができる。この場合に、また、表示重畳部36は、表示の拡大、表示の縮小、表示領域の移動処理も行う。
ページデータ記憶部300は、図7に示されているようなページデータを記憶する。図7は、ページデータを示す概念図である。ページデータは、ディスプレイ3に表示される1ページ分のデータ(ストローク配列データ(各ストロークデータ)及びメディアデータ)である。なお、ページデータに含まれるパラメータの種類が多いため、ここでは、図7乃至図10に分けて、ページデータの内容を説明する。
ページデータは、図7に示されているように、任意の1ページを識別するためのページデータID、このページの表示を開始した時刻を示す開始時刻、ストロークやジェスチャ等によるページの内容の書き換えが行われなくなった時刻を示す終了時刻、電子ペン4やユーザの手Hによるストロークによって生じたストローク配列データを識別するためのストローク配列データID、及びメディアデータを識別するためのメディアデータIDが関連付けて記憶されている。ストローク配列データは、後述の図17に示されているストローク画像(B)がディスプレイ3上に表示されるためのデータである。メディアデータは、後述の16に示されている背景画像(D)がディスプレイ3上に表示されるためのデータである。
このようなページデータにより、例えば、ユーザが電子ペン4によってアルファベット「S」を描く場合は一筆書きとなるため、ストロークデータIDが1つで一文字のアルファベット[S]が示される。ところが、ユーザが電子ペン4によってアルファベット「T」を描く場合、二筆書きとなるため、ストロークデータIDが2つで一文字のアルファベット「T」が示されることになる。
また、ストローク配列データは、図8に示されているように詳細な情報を示している。図8は、ストローク配列データを示す概念図である。図8に示されているように、1つのストローク配列データは、複数のストロークデータによって表される。そして、1つのストロークデータは、このストロークデータを識別するためのストロークデータID、1つのストロークの書き始めの時刻を示す開始時刻、1つのストロークの書き終わりの時刻を示す終了時刻、ストロークの色、ストロークの幅、及び、ストロークの通過点の配列を識別するための座標配列データIDを示している。
更に、この座標配列データは、図9に示されているように詳細な情報を示している。図9は、座標配列データを示す概念図である。図9に示されているように、座標配列データは、ディスプレイ3上の1点(X座標値、Y座標値)、この1点を通過したときのストロークの開始時刻からの差分の時刻(ms)、及び、この1点における電子ペン4の筆圧の各情報を示している。即ち、図9に示されている1点の集まりが、図8に示されている1つの座標配列データで示されている。例えば、ユーザが電子ペン4によってアルファベット「S」を描く場合、一筆書きとなるが、「S」を描き終えるまでに、複数の通過点を通過するため、座標配列データは、これら複数の通過点の情報を示している。
また、図7に示されているページデータのうちのメディアデータは、図10に示されているように詳細な情報を示している。図10は、メディアデータを示す概念図である。図10に示されているように、メディアデータは、図7に示されているページデータにおけるメディアデータID、メディアデータのデータ種類、ページ処理部37からページデータ記憶部300にページデータが記憶された記録時刻、ページデータによってディスプレイ3上に表示される画像の位置(X座標値、Y座標値)及び画像のサイズ(幅、高さ)、並びにメディアデータの内容を示すデータが関連付けられて示されている。このうち、ページデータによってディスプレイ3上に表示される画像の位置は、ディスプレイ3の左上端の座標を(X座標値,Y座標値)=(0,0)とした場合に、ページデータによって表示される画像の左上端の位置を示している。
また、図4に戻り、遠隔ライセンス管理テーブル310は、遠隔共有処理を実行するために必要なライセンスデータを管理する。この遠隔ライセンス管理テーブル310では、図11に示されているように、表示装置2のプロダクトID、認証に用いられるライセンスID、及びライセンスの有効期限が関連付けて管理されている。
<<ファイル処理部の機能構成>>
続いて、図5を用いて、図4に示されているファイル処理部40の機能構成を説明する。なお、図5は、ファイル処理部の機能ブロック図である。
ファイル処理部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には、図12に示されているように、宛先の名前及び宛先の電子メールのメールアドレスが関連付けて管理されている。また、ファイル送信部44が、ユーザによるタッチパネル等の入力装置の操作により、宛先としてのメールアドレスの入力を受け付けることもできる。
アドレス帳入力部45は、USBメモリ5から電子メールアドレスの一覧ファイルを読み込み、アドレス帳管理テーブル410で管理する。
バックアップ処理部46は、ファイル出力部42bによって出力されたファイルや、ファイル送信部44によって送信されたファイルを、バックアップデータ記憶部420に記憶することでバックアップする。なお、ユーザがバックアップ設定しない場合は、バックアップの処理は行われない。バックアップデータは、図13に示されているように、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で管理する。なお、図14に示されているように、接続先管理テーブル440は、表示装置2が遠隔共有処理に参加しようとする参加装置である場合、この参加装置のユーザが主催装置としての役割を果たす表示装置2のIPアドレスを入力する手間を削減するために、予め管理しておくためのテーブルである。この接続先管理テーブル440では、参加されることが可能な主催装置としての表示装置2が設置されている拠点の名称、及び主催装置としての表示装置2のIPアドレスが関連付けて管理されている。
なお、接続先管理テーブル440は無くてもよい。但し、この場合には、参加装置のユーザは、主催装置との間で遠隔要求処理の開始するために、タッチパネル等の入力装置によって、主催装置のIPアドレスを入力する必要がある。そのため、参加装置のユーザは、電話や電子メール等によって、主催装置のユーザから、主催装置のIPアドレスを知得する。
<<通信制御部の機能構成>>
次に、図6を用いて、通信制御部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では、図15に示されているように、参加中の表示装置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に接続されたノートPC6からの画像データを受信し、表示重畳部36に出力することで、遠隔共有処理を可能にする。
遠隔操作送信部65は、遠隔共有処理に必要な各種操作データをサーバ部90に送信する。この各種操作データとしては、例えば、ストロークの追加、ストロークの削除、ストロークの編集(拡大、縮小、移動)、ページデータの記憶、ページデータの作成、ページデータの複製、ページデータの削除、表示されているページの切り替え等に関するデータが挙げられる。また、遠隔操作受信部66は、サーバ部90から、他の表示装置2で入力された操作データを受信し、画像処理部30に出力することで、遠隔共有処理を行う。
<サーバ部の機能構成>
続いて、図6を用いて、サーバ部90の機能構成について説明する。サーバ部90は、各表示装置2に設けられており、いずれの表示装置2であっても、サーバ部90としての役割を果たすことができる。そのため、サーバ部90は、通信制御部70、及びデータ管理部80を有している。
<<通信制御部の機能構成>>
通信制御部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に対して、この操作データを送信する。
<<データ管理部の機能構成>>
次に、図6を用いて、データ管理部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でも、図7乃至図10に示されているページデータを、ページデータ記憶部850に記憶する。なお、ページデータ記憶部850は、画像処理部30におけるページデータ記憶部300と同じ内容であるため、その説明を省略する。
図16は、実施形態に係る操作データ記憶部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は、特定の通信セッションを用いたビデオ会議等によって発生したストロークデータを含む共有画面に関する各種データを管理することができる。
<実施形態の処理又は動作>
続いて、図18及び図19を用いて、本実施形態の処理又は動作について説明する。なお、図18及び図19は、各表示装置2の処理を示したシーケンス図である。
図18及び図19に示す実施形態では、表示装置2aが遠隔共有処理を主催する主催装置(サーバ部及びクライアント部)としての役割を果たしており、表示装置2b,2cが遠隔共有処理に参加する参加装置(クライアント部)としての役割を果たす場合について説明する。また、ここでは、表示装置2a,2b,2cには、それぞれディスプレイ3a,3b,3cが接続され、更に、それぞれノートPC6a,6b,6cが接続されている。また、表示装置2a,2b,2cでは、それぞれ電子ペン4a,4b,4cが使用される。
(参加の処理)
まずは、図18を用いて、表示装置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に記憶されているパスコードは、図6に示されている遠隔接続処理部81によって読み出され、遠隔接続結果送信部72、遠隔開始処理部61の順に送信される。更に、パスコードは、遠隔開始処理部61を含む通信制御部60から、図4に示されている画像処理部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)。
(出力画像の表示)
続いて、図18を用いて、遠隔共有処理における出力画像(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に出力する。
(重畳画像の表示)
続いて、図19を用いて、共有処理における重畳画像が表示される処理について説明する。
まず、表示装置2bは、ユーザが電子ペン4bを用いて表示装置2bにストローク画像(B)を描画する(ステップS41)。
次に、表示装置2bの表示重畳部36は、図17に示されているように、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)のデータは、図8に示されているストロークデータ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上に表示させてもよい。
(参加の終了)
続いて、図19を用いて、参加装置が遠隔共有処理への参加を終了する処理について説明する。図19に示す実施形態では、表示装置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)。
<負荷の制御に関する表示装置の機能>
次に、図20を用いて負荷の制御に関する表示装置2の機能を説明する。図20は、表示装置2の機能をブロックに分けて説明する機能ブロック図の一例である。表示装置2は、負荷監視部201、性能値制御部202、出力部203、外部入力部204、遠隔コミュニケーション制御部205、アプリ制御部206、外部入力共有部207、及び、表示制御部208を有している。表示装置2が有する各機能は、図3に示されている各構成要素のいずれかが、SSD104からRAM103上に展開されたプログラムに従ったCPU101からの命令によって動作することで実現される機能又は手段である。
まず機能の全体を説明する。負荷監視部201はCPU使用率を監視してCPU使用率のレベル(高・低、又は、高・中・低)を性能値制御部202に通知する。性能値制御部202は、表示装置2に搭載されている各種の機能に関して性能値を設定できる。外部入力部204、遠隔コミュニケーション制御部205、アプリ制御部206、及び、外部入力共有部207は性能値が設定される機能の一例である。性能値制御部202は、負荷監視部201からCPU使用率のレベルを受信し、レベル高であれば性能値を小さくして性能を低下させる、レベル低であれば性能値を大きくして性能を増大させる。一例として、CPU使用率が0%〜33%であればレベル低、34%〜67%であればレベル中、68%〜100%であればレベル高、が挙げられる。ただレベルの閾値はこの例に限られずに0%〜100%の中にて複数段階で設定してよい。
以下、詳細に各機能ブロックを説明する。負荷監視部201は、例えば、CPU使用率を定期的に、又は、手書きデータなどに関するイベントの発生ごとに監視する。不定期に監視してもよい。なお、CPU使用率はオペレーティングシステムから取得できる。負荷監視部201はCPU使用率が閾値を超えた場合、CPU使用率のレベル高を性能値制御部202に通知する。閾値以下の場合にCPU使用率のレベル低を性能値制御部202に通知する。なお、負荷監視部201は、メモリ使用率、ネットワーク通信速度など表示装置2の負荷に影響しやすい情報を監視してもよい。
性能値制御部202は制御対象機能210とその機能に関する性能値を指定して、性能値を制御する。制御対象機能210は性能値により表示装置2の負荷に影響を与える機能である。性能値制御部202は、CPU使用率がレベル高かつ制御対象機能210の性能が最低値以外であれば、性能値を一段階下げる。CPU使用率がレベル低かつ制御対象機能210の性能値が最高値以外であれば、性能値を一段階上げる。
性能値制御部202は性能値を変更する優先度に関する性能値変更優先度を保持している。性能値変更優先度は性能値変更優先度記憶部211に予め記憶されている。性能値変更優先度については表1で説明する。
外部入力部204はノートPC6などの情報端末とHDMI(登録商標)などのケーブルで接続され、情報端末のデスクトップ映像をディスプレイ3に表示する。外部入力部204はその映像のフレームレートを変更できる。フレームレートが外部入力部204の性能値である。フレームレートの変更方法には、一例として、キャプチャーデバイス111のEDID(Extended Display Identification DATA)のリフレッシュレートを外部入力部204が書き換える方法、キャプチャーデバイス111が取得する映像をキャプチャーデバイス111が間引く方法、などがある。
遠隔コミュニケーション制御部205は、いわゆるテレビ会議のアプリケーションである。サーバに接続して、ユーザが指定した宛先端末を呼び出し、宛先端末とセッションを確立することで、映像音声通話が可能なビデオ会議を実現する。遠隔地にある各端末装置はカメラ、マイク、ディスプレイ、及び、スピーカを有している情報処理装置か又はテレビ会議端末7である。自拠点のテレビ会議端末7又は内蔵するカメラによって撮像された画像が他の拠点の端末装置のディスプレイに表示され、自拠点のテレビ会議端末7又は内蔵するマイクによって取得された音声が他の拠点の端末装置のスピーカから出力される。他の拠点についても同様である。したがって、遠隔地のユーザ同士が遠隔でコミュニケーションすることができる。遠隔コミュニケーション制御部205が他の拠点から受信した映像及び自拠点の映像は表示装置2がディスプレイ3に表示するビデオ会議の画面となる。この画面の画面サイズが性能値である。
表示制御部208は、外部入力部204に入力された映像をディスプレイ3に表示する。また、遠隔コミュニケーション制御部205が受信した映像及び自拠点のカメラが撮像した映像をディスプレイ3に表示する。
アプリ制御部206は表示装置2にインストールされた任意のアプリケーションを起動したり終了したりできる。また、そのアプリケーションのプロセス優先度を変更できる。起動、終了、及び、プロセス優先度の変更にはオペレーティングシステムのAPI(Application Interface)を使用する。なお、プロセス優先度は、オペレーティングシステムが参照して各アプリケーションに割り当てるリソース(CPU、メモリ)を調整するための制御値となる。例えば、プロセス優先度が高いほど、CPUが割り当てられる時間が長くなり、多くのメモリが割り当てられる。したがって、プロセス優先度が性能値である。
外部入力共有部207は、外部入力部204が受け付けた映像を、ネットワーク接続された他の拠点の表示装置2に送信することで、多拠点で映像を共有する。外部入力共有部207は他の拠点の表示装置2に転送する場合のフレームレートを変更できる。したがって、フレームレートが性能値である。外部入力部204が上記のようにフレームレートを変更する。外部入力部204が変更した後、又は、変更していない場合に、外部入力共有部207がフレームレートを変更する方法としては、映像を間引くなどの方法がある。
出力部203は、性能値が変更された旨をユーザに通知する。ユーザは表示装置2の性能値が低下したことや元に戻ったことなどを把握できる。なお、通知は表示又は音声出力のいずれで行われてもよい。なお、出力部203は性能値制御部202が兼ねてもよい。
表1は、性能値変更優先度記憶部211に記憶されている性能値変更優先度の一例を示す。まず表1(a)は、各機能の性能値の一例を示す。性能値の変更が可能な各機能べつに最高の性能値から最低の性能値までの一例が設定されている。例えば、外部入力部204では、フレームレートが高いほど性能値が高く、遠隔コミュニケーション制御部205では映像サイズが大きいほど性能値が高い。また、アプリ制御部206では、アプリA,アプリBのプロセス優先度が高いほど性能値が高い。表示装置2に必要なアプリケーション(図4〜図6で説明した機能を実現するアプリ)でない他のアプリケーションがアプリA,アプリBである。したがって、アプリA、アプリBのプロセス優先度を低にすることで負荷を低減できる。
表1(a)の性能値は一例であり、例えば外部入力部204の性能値として解像度を変更してもよい。また、各機能の性能値はより多段階に分けられていてもよい。
表1(b)は表1(a)の性能値に基づいて、開発者等が決定した性能値変更優先度の一例である。優先度に対応づけて、各機能の変更前及び変更後の性能値が登録されている。表示装置2は表1(a)の性能値が最も高い状態で起動する。この状態で、CPU使用率のレベルが悪化すると、性能値制御部202が優先度の順に一段階ずつ性能値を変更する。例えば、外部入力30fps→外部入力20fps、外部入力20fps→外部入力10fps、ビデオ映像サイズ大→ビデオ映像サイズ中、アプリA優先度高→アプリA優先度低、外部入力10fps→外部入力1fps、ビデオ映像サイズ中→ビデオ映像サイズ小、アプリB優先度高→アプリB優先度低の順に変更する。
CPU使用率のレベルが好転すると、性能値制御部202が優先度の逆順に一段階ずつ性能値を変更する。つまり、性能値制御部202は表1(b)の矢印の向きを逆方向にして性能値を変化させる。
表1(b)に示すように、同じ機能の性能値を続けて変更するのでなく、いろいろな機能の性能値に分散させて性能値を変更できる。性能値制御部202は1つの機能の性能値を最高から最低まで変化させる前に、他の機能の性能値を変更する。したがって、例えば、フレームレートだけが最低になる前に、映像サイズやアプリのプロセス優先度を変更できる。
また、表1(b)の優先度は機能間の依存関係が考慮されている。例えば、機能Aの設定値がαでないと機能Bの設定値をβに変更できない場合は、機能Aの設定値をαに変更してから機能Bの設定値をβに変更する。
<CPU使用率の測定方法>
次に、図21,図22を用いてCPU使用率を監視する方法を説明する。図21と図22はどちらもCPU使用率の監視方法であるが、図22ではCPU使用率を多段階に監視する。
図21は、負荷監視部201がCPU使用率を監視する手順を示すフローチャート図の一例である。図21の処理は、表示装置2の起動中、例えば一定間隔(1秒など)で実行される。図22ではCPU使用率の細かな変動でCPU使用率のレベルが変化し、性能値の乱高下が発生しないように、一定回数以上(例えば5回程度)連続してCPU使用率が閾値を超えていた(又は閾値以下になった)場合に、負荷監視部201がCPU使用率のレベルを性能値制御部202に通知する。
負荷監視部201はCPU使用率を測定する(S11)。例えばオペレーティングシステムからCPU使用率を取得する。
負荷監視部201はCPU使用率を保存しておく(S12)。一定回数のCPU使用率を監視するためである。
そして、負荷監視部201は直近の一定回数以上(例えば5回程度)連続してCPU使用率が閾値より大きいか否かを判断する(S13)。なお、5回は一例であり、5回未満又は6回以上でもよい。
ステップS13の判断がNoの場合、負荷監視部201はCPU使用率のレベル低を性能値制御部202に通知する(S14)。
ステップS13の判断がYesの場合、負荷監視部201はCPU使用率のレベル高を性能値制御部202に通知する(S15)。
図22は、負荷監視部201がCPU使用率を監視する手順を示すフローチャート図の一例である。図21との違いは、図22ではCPU使用率のレベルに中が追加されている点である。なお、図22の説明では主に図21との相違を説明する。また、図22におけるCPU使用率の監視方法の考え方を、図23を用いて説明する。
まず、ステップS21、S22は図21のステップS11、S12と同様でよい。
次に、負荷監視部201は現在のCPU使用率のレベルが高、中、低のいずれであるかを判断する(S23)。現在のCPU使用率のレベルはCPU使用率そのものでなく、最後に、性能値制御部202に通知したCPU使用率のレベルである。表示装置2の起動直後は、CPU使用率のレベルは低(デフォルト値)である。また、レベルを3段階に分けるためには2つの閾値が使用される。以下、閾値高(第一の閾値の一例)、閾値低(第二の閾値の一例)とする。なお、レベルはより多段階に分けてもよい。
・現在のCPU使用率のレベルが高の場合
負荷監視部201は、直近の一定回数(例えば5回程度)連続してCPU使用率が閾値高以下か否かを判断する(S24)。
ステップS24の判断がNoの場合、負荷監視部201はCPU使用率のレベル高を性能値制御部202に通知する(S26)。
ステップS24の判断がYesの場合、負荷監視部201は直近の一定回数(例えば5回程度)連続してCPU使用率が閾値低以下か否かを判断する(S25)。
ステップS25の判断がNoの場合、負荷監視部201はCPU使用率のレベル中を性能値制御部202に通知する(S27)。
ステップS25の判断がYesの場合、負荷監視部201はCPU使用率のレベル低を性能値制御部202に通知する(S28)。
・現在のCPU使用率のレベルが中の場合
負荷監視部201は、直近の一定回数(例えば5回程度)連続してCPU使用率が閾値高より大きいか否かを判断する(S29)。
ステップS29の判断がYesの場合、負荷監視部201はCPU使用率のレベル高を性能値制御部202に通知する(S31)。
ステップS29の判断がNoの場合、負荷監視部201は直近の一定回数(例えば5回程度)連続してCPU使用率が閾値低以下か否かを判断する(S30)。
ステップS30の判断がNoの場合、負荷監視部201はCPU使用率のレベル中を性能値制御部202に通知する(S32)。
ステップS30の判断がYesの場合、負荷監視部201はCPU使用率のレベル低を性能値制御部202に通知する(S33)。
・現在のCPU使用率のレベルが低の場合
負荷監視部201は、直近の一定回数(例えば5回程度)連続してCPU使用率が閾値低より大きいか否かを判断する(S34)。
ステップS34の判断がYesの場合、負荷監視部201は直近の一定回数(例えば5回程度)連続してCPU使用率が閾値高より大きいか否かを判断する(S35)。
ステップS35の判断がYesの場合、負荷監視部201はCPU使用率のレベル高を性能値制御部202に通知する(S36)。
ステップS35の判断がNoの場合、負荷監視部201はCPU使用率のレベル中を性能値制御部202に通知する(S37)。
ステップS34の判断がNoの場合、負荷監視部201はCPU使用率のレベル低を性能値制御部202に通知する(S38)。
図23は、CPU使用率のレベルの通知方法を説明する図である。図22で説明したように、負荷監視部201は例えば5回程度連続してCPU使用率が低、中、又は高である場合に、低、中、又は高と判断する。1回でもCPU使用率が低、中、又は高でない場合は現在のCPU使用率のレベルを維持する。なお、図23では現在のCPU使用率のレベルは低であるとする。
・期間AのCPU使用率は全てが中でも高でもないので、CPU使用率のレベルは低であると判断される。
・期間B〜Dにおいても、CPU使用率は全てが中でも高でもないので、CPU使用率のレベルは低であると判断される。
・期間EのCPU使用率は全てが中なので、CPU使用率のレベルは中であると判断される。
このように、1回でもCPU使用率が中又は高でないなら、CPU使用率のレベルは低を維持すると判断され、全てのCPU使用率が中又は高なら、CPU使用率のレベルが中又は高と判断される。この制御により、CPU使用率のレベルが頻繁に変わることを防止できる。
<性能値の変更>
図24は、CPU使用率のレベルに基づいて性能値制御部202が性能値を変更する手順を示すフローチャート図の一例である。
まず、性能値制御部202は負荷監視部201からCPU使用率のレベルを受信する(S41)。性能値制御部202はCPU使用率のレベルが高、中、低のいずれであるかを判断する(S42)。なお、図21のフローチャート図が実行される場合、中というCPU使用率のレベルは存在しないが、中というCPU使用率のレベルが受信されなくても図24の処理で対応できる。
通知されたCPU使用率のレベルが高の場合、性能値制御部202は現在設定されている性能値の優先度が最低か否かを判断する(S43)。すなわち、表1では優先度7の性能値で表示装置2が動作しているか判断する。
ステップS43の判断がYesの場合、それ以上性能値を下げられないので、図24の処理は終了する。
ステップS43の判断がNoの場合、性能値制御部202は優先度に基づいて性能値を一段階下げる(S44)。
通知されたCPU使用率のレベルが中の場合、性能値を変更しないでよいので、図24の処理は終了する。
通知されたCPU使用率のレベルが低の場合、性能値制御部202は現在設定されている性能値の優先度が最高か否かを判断する(S45)。すなわち、表1では優先度1の性能値で表示装置2が動作しているかを判断する。
ステップS45の判断がYesの場合、それ以上性能値を上げられないので、図24の処理は終了する。
ステップS45の判断がNoの場合、性能値制御部202は優先度に基づいて性能値を一段階上げる(S46)。
このように、性能値制御部202はCPU使用率のレベルだけ見て性能値を制御すればよく、CPU使用率のレベルの監視方法とは独立して性能値を制御できる。
<ユーザへの通知例>
性能値が変更された場合、ユーザの使用感に影響するので、表示装置2がユーザに通知することが好ましい。一方、性能値が変化するごとに通知すると、ユーザが煩わしく感じるおそれがある。そこで、出力部203は各機能の性能値が最高から下がったタイミングと、最高に戻ったタイミングでユーザに通知する。
図25は、出力部203が性能値の変化をユーザに通知する処理を説明するフローチャート図の一例である。
まず、出力部203は性能値制御部202から変更により変わった現在の性能値を受信する(S51)。例えば、表1(b)に規定される優先度と性能値(変更前又は変更後)を受信する。
出力部203は性能値が最高から下がったか否かを判断する(S52)。表1(b)では、優先度1、3、4の性能値の制御において変更後の性能値(矢印方向)に変更された場合、該当する機能において性能値が最高から下がったと判断する。
ステップS52の判断がYesの場合、出力部203は該当する機能が最高でないことを通知する(S53)。
ステップS52の判断がNoの場合、出力部203は性能値が最高に戻ったか否かを判断する(S54)。表1(b)では、優先度1、3、4の性能値の制御において変更前の性能値(矢印と逆方向)に変更された場合、性能値が最高に戻ったと判断する。
ステップS54の判断がYesの場合、出力部203は該当する機能が最高に戻ったことを通知する(S55)。
こうすることで、ユーザが煩わしく感じないように、性能値の変更をユーザに通知することができる。
図26は、出力部が表示するメッセージの出力例を示す図である。図26では画面の左上にメッセージが表示される。図26(a)は性能値が最高でなくなった場合に表示されるメッセージを示す。図26(a)では、「ビデオ会議又は遠隔ホワイトボードによりパフォーマンスが低下しているため、外部入力映像のフレームレートを落とします」と表示されている。
図26(b)は性能値が最高に戻った場合に表示されるメッセージを示す。図26(b)では、「外部入力映像のフレームレートが元に戻りました」と表示されている。この様に、性能値であるフレームレートが最高の状態から下がる場合に「フレームレートを落とします」との表示を行い、性能値であるフレームレートが最高の状態に戻る場合に「フレームレートが元に戻りました」との表示を行うことで、性能値の変更全ては通知されることがなくなり、ユーザに煩わしさを感じさせない。もちろん性能値が最高の状態から下がる場合のみを通知したり、性能値が最高の状態に戻る場合のみを通知したりしてもよい。
なお、画面上のメッセージの表示スペース901には制限があるので、メッセージはティッカーで表示してよい。ティッカーとは特定範囲内に文字列を移動させて全体を表示させる表示方式のことである。出力部203は音声でメッセージを読み上げてもよいし、性能値が最高でなくなった場合又は性能値が最高に戻った場合に対応する警告音で通知してもよい。
また、出力部203は、性能値の変更履歴をログとして保存するとよい。後日、管理者がログを確認できる。また、出力部203は、性能値が最高でなくなった場合又は性能値が最高に戻った場合に電子メールで管理者に通知してもよい。
<主な効果>
以上説明したように、本実施形態の表示装置2は、表示装置2の負荷に応じて負荷に影響する性能値を制御するので、表示装置2の負荷を制御できる。
<その他の適用例>
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
例えば、本実施形態では、CPU使用率に応じて性能値が変更されているが、表示装置の負荷としてメモリ使用率を使用してもよい。メモリ使用率を単体で使用してもよいし、CPU使用率とメモリ使用率に重み付けして合計した値を使用してもよい。
また、本実施形態では表示装置2の一例として電子黒板を用いて説明したが、電子黒板と同様の機能を有する装置は、電子ホワイトボード、電子情報ボード、インタラクティブボードなどともいう。
また、表示装置2は、PCなどの汎用的な情報処理装置がアプリを実行することでも実現できる。したがって、表示装置2は、PC、タブレット型PC、ウェアラブルPC、スマートフォン、PDA(Personal Digital Assistant)、カーナビ、ゲーム機、PJ(Projector:プロジェクタ)、デジタルサイネージ等の出力装置、HUD(Head Up Display)装置、産業機械、撮像装置、集音装置、医療機器、ネットワーク家電、自動車(Connected Car)、携帯電話、デジタルカメラなどでもよい。
また、図20などの構成例は、表示装置2による処理の理解を容易にするために、主な機能に応じて分割したものである。処理単位の分割の仕方や名称によって本願発明が制限されることはない。表示装置2の処理は、処理内容に応じて更に多くの処理単位に分割することもできる。また、1つの処理単位が更に多くの処理を含むように分割することもできる。
また、上記で説明した実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(digital signal processor)、FPGA(field programmable gate array)や従来の回路モジュール等のデバイスを含むものとする。