以下、図面を参照して本発明の例示的な実施形態を詳細に説明する。なお、本発明は説明する実施形態に限定されない。また、実施形態で説明される構成要素の全てが本発明に必須とは限らない。実施形態における個々の機能ブロックは、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアとの組み合わせによって実現することができる。また、1つの機能ブロックは複数のハードウェアで実現されてもよい。また、1つのハードウェアが複数の機能ブロックを実現してもよい。また、1つ以上の機能ブロックは、1つ以上のプログラマブルプロセッサ(CPU、MPUなど)がメモリに読み込まれたコンピュータプログラムを実行することにより実現されてもよい。1つ以上の機能ブロックをハードウェアで実現する場合、ディスクリート回路や、FPGA、ASICといった集積回路によって実現することができる。
なお、以下の実施形態では、スタンドアロンタイプの投写装置(プロジェクタ)に本発明を適用した構成について説明する。しかし、例えばパーソナルコンピュータ、スマートフォン、タブレット端末、ゲーム機、デジタル(ビデオ)カメラといった一般的な電子機器が内蔵するプロジェクタにも適用可能である。
[本実施形態のシステム構成]
図1は、本発明の実施形態に係る投写システムの一例を表す模式図である。投写システム10は、光学像のダイナミックレンジの拡大、輝度の向上、もしくは3D表示のために、複数の投写装置(以下、プロジェクタ)の投写面上での投写領域を合致させるスタック投写を行う。なお、図1では最小数(2台)のプロジェクタ100aおよび100bを有し、それぞれの投写領域A,Bを合致させる投写システムを示しているが、3台以上のプロジェクタを有してもよい。
投写システム10に含まれる全てのプロジェクタは、投写制御装置として機能するパーソナルコンピュータ(PC)200と相互に通信可能に接続される。なお、複数のプロジェクタと投写制御装置との間の通信は、有線通信であっても無線通信であってもよく、また通信プロトコルにも特に制限はない。本実施形態では一例として、TCP/IPを通信プロトコルとして用いるローカルエリアネットワーク(LAN)で装置間の通信が行われるものとする。また、PC200は、予め定められたコマンドをプロジェクタ100aおよび100bに送信することにより、プロジェクタ100aおよび100bの動作を制御することができる。プロジェクタ100aおよび100bはPC200から受信したコマンドに応じた動作を行い、動作の結果をPC200に送信する。
映像分配器300は、PC200が出力する映像信号をプロジェクタ100aおよび100bに分配する。映像分配器300は接続されている全てのプロジェクタに同一の映像信号を出力する。ここでは観賞用の投写を行う前の調整時の構成を示しており、観賞用に個々のプロジェクタが投写する映像は再生装置などから個々のプロジェクタに別途供給される。なお、PC200からプロジェクタ100aおよび100bに映像信号を直接供給してもよい。なお、映像信号は、一般的に用いられているディスプレイインタフェースの規格に準じて伝送することができる。使用可能な規格の例としては、HDMI(登録商標)、DVI、VGAなどがある。
投写システム10はさらに、例えばデジタルカメラである撮像装置400を有する。撮像装置400は投写面に正対する位置に、投写面の全体を撮影範囲として含むように設置されているものとする。撮像装置400は直接、あるいはLANを通じて、PC200と通信可能に接続される。PC200は、撮像装置400に予め定められたコマンドを送信することにより、撮像装置400の動作を制御することができる。例えば撮像装置400はPC200からの要求に応じて撮影を行い、得られた画像データをPC200に送信することができる。
図2は本発明の実施形態に係る投写システムの別の構成例を示す模式図であり、図1と同じ構成要素については同じ参照数字を付してある。投写システム11は、各々のプロジェクタが投写する光学像を投写面上で並べることにより、1台のプロジェクタで投写できない大きな解像度(画素数)の光学像を実現するマルチスクリーン投写を行う。図2の構成においても映像分配器300は接続されている全てのプロジェクタに同一の映像信号を出力する。観賞用に個々のプロジェクタが投写する映像は再生装置などから個々のプロジェクタに別途供給される。
なお、図2では4台のプロジェクタ100a~100dを有する投写システムを示しているが、より多くのプロジェクタを有してもよい。マルチスクリーン投写を行う場合、個々の光学像の繋ぎ目を目立たなくするため、プロジェクタ100a~100dの投写領域1~4のうち、隣接する投写領域を一部重複させる。また、重複部分の輝度上昇を目立たなくするため、減光処理(エッジブレンディング処理)を施す。なお、以下の説明において、「プロジェクタ100」は、複数のプロジェクタの全て、または任意の1つを表すものとする。
また、本明細書において用いる用語を以下の様に定義する。
「投写領域」 プロジェクタ100が投写する光学像が投写面上に占める領域
「投写画像」 投写領域に投写されている光学像
「投写用画像」 PC200が出力する映像信号または画像データが表す画像
「マルチ投写」 複数の投写装置を用いた投写
「スタック投写」 投写領域が合致、もしくは投写画像が完全に重畳するマルチ投写
「マルチスクリーン投写」 隣接する投写領域の一部が重複するように投写領域を並べたマルチ投写
「プロジェクタ(投写装置)」 光源からの光を投写用画像に基づいて変調して投写面に投写または投写面上で走査することによって投写画像を投写面上に形成する装置
[プロジェクタ100の構成]
図3は、投写システム10または11に含まれるプロジェクタ100およびPC200の機能構成例を示すブロック図である。プロジェクタ100は、CPU101、RAM102、ROM103、投写部104、投写制御部105、VRAM106、操作部107、ネットワークIF108、画像処理部109、映像入力部110を有する。これらの機能ブロックは内部バス111によって通信可能に接続されている。
CPU101は、プログラマブルプロセッサの一例であり、例えばROM103に記憶されているプログラムをRAM102に読み込んで実行することにより、プロジェクタ100の動作を実現する。
RAM102は、CPU101がプログラムを実行する際のワークメモリとして用いられる。RAM102には、プログラムやプログラムの実行に用いる変数などが記憶される。また、RAM102は、他の用途(例えばデータバッファとして)に用いられてもよい。
ROM103は書き換え可能であってよい。ROM103は、CPU101が実行するプログラム、メニュー画面などの表示に用いるためのGUIデータ、キーストーン補正や位置合わせ処理などで用いられるテストパターンのデータ、各種の設定値などが記憶される。
投写部104は、光源、投写光学系などを有し、投写制御部105から供給される投写用画像に基づいて光学像を投写する。本実施形態では液晶パネルを光学変調素子として用い、光源からの光の反射率もしくは透過率を投写用画像に従って制御することにより、投写用画像に基づく光学像を生成し、投写光学系によって投写面に投写する。
投写制御部105は、画像処理部109から供給される投写用画像のデータを投写部104に供給する。
VRAM106はPC200から受信した投写用画像のデータを格納するビデオメモリである。
操作部107は、キー、ボタン、スイッチ、タッチパネルなどの入力デバイスを有し、ユーザからプロジェクタ100への指示を受け付ける。CPU101は操作部107の操作を監視しており、操作部107の操作を検出すると、検出した操作に応じた処理を実行する。なお、プロジェクタ100がリモートコントローラを有する場合、操作部107はリモートコントローラから受信した操作信号をCPU101に通知する。
ネットワークIF108はプロジェクタ100を通信ネットワークに接続するインタフェースであり、サポートする通信ネットワークの規格に準拠した構成を有する。本実施形態においてプロジェクタ100は、ネットワークIF108を通じて、PC200と共通のローカルネットワークに接続される。したがって、プロジェクタ100とPC200との通信はネットワークIF108を通じて実行される。
画像処理部109は、映像入力部110に供給され、VRAM106に格納された映像信号に対して様々な画像処理を必要に応じて適用し、投写制御部105に供給する。画像処理部109は例えば画像処理用のマイクロプロセッサであってよい。あるいは、画像処理部109に相当する機能を、CPU101がROM103に記憶されたプログラムを実行することによって実現してもよい。
画像処理部109が適用可能な画像処理には、フレーム間引き処理、フレーム補間処理、解像度変換処理、メニュー画面などのOSDを重複させる処理、キーストーン補正処理、エッジブレンディング処理などが含まれるが、これらに限定されない。
映像入力部110は、外部装置(本実施形態ではPC200)が出力する映像信号を直接または間接的に受信するインタフェースであり、サポートする映像信号に応じた構成を有する。映像入力部110は例えば、コンポジット端子、S映像端子、D端子、コンポーネント端子、アナログRGB端子、DVI-I端子、DVI-D端子、HDMI(登録商標)端子の1つ以上を含む。映像入力部110はまた、アナログ映像信号を受信した場合、デジタル映像信号に変換してVRAM106に格納する。
[PC200の構成]
次に、PC200の機能構成について説明する。PC200は外部ディスプレイが接続可能な汎用コンピュータであってよく、したがって汎用コンピュータに準じた機能構成を有する。PC200は、CPU201、RAM202、ROM203、操作部204、表示部205、ネットワークIF206、映像出力部207、通信部208を有する。また、これの機能ブロックは内部バス209によって通信可能に接続されている。
CPU201は、プログラマブルプロセッサの一例であり、例えばROM203に記憶されているプログラム(OSやアプリケーションプログラム)をRAM202に読み込んで実行することにより、PC200の動作を実現する。
RAM202は、CPU201がプログラムを実行する際のワークメモリとして用いられる。RAM202には、プログラムやプログラムの実行に用いる変数などが記憶される。また、RAM202は、他の用途(例えばデータバッファとして)に用いられてもよい。
ROM203は書き換え可能であってよい。ROM203は、CPU201が実行するプログラム、メニュー画面などの表示に用いるためのGUIデータ、各種の設定値などが記憶される。なお、PC200はROM203よりも大容量の記憶装置(HDDやSSD)を有してもよく、この場合OSやアプリケーションプログラムといった容量の大きいプログラムは記憶装置に記憶してもよい。
操作部204は、キーボード、ポインティングデバイス(マウスなど)、タッチパネル、スイッチなどの入力デバイスを有し、ユーザからPC200への指示を受け付ける。なお、キーボードはソフトウェアキーボードであってもよい。CPU201は操作部204の操作を監視しており、操作部204の操作を検出すると、検出した操作に応じた処理を実行する。
表示部205は例えば液晶パネルや有機ELパネルである。表示部205は、OSやアプリケーションプログラムが提供する画面の表示を行う。なお、表示部205は外部装置であってもよい。また、表示部205はタッチディスプレイであってもよい。
ネットワークIF206はPC200を通信ネットワークに接続するインタフェースであり、サポートする通信ネットワークの規格に準拠した構成を有する。本実施形態においてPC200は、ネットワークIF206を通じて、プロジェクタ100と共通のローカルネットワークに接続される。したがって、PC200とプロジェクタ100との通信はネットワークIF206を通じて実行される。
映像出力部207は、外部装置(本実施形態ではプロジェクタ100または映像分配器300)に映像信号を送信するインタフェースであり、サポートする映像信号に応じた構成を有する。映像出力部207は例えば、コンポジット端子、S映像端子、D端子、コンポーネント端子、アナログRGB端子、DVI-I端子、DVI-D端子、HDMI(登録商標)端子の1つ以上を含む。
なお、本実施形態では、プロジェクタ100の投写領域の調整機能を有する投写制御アプリケーションプログラムのUI画面を表示部205に表示するものとするが、映像出力部207に接続された外部機器にUI画面を表示させてもよい。
通信部208は外部機器と例えばシリアル通信を行うための通信インタフェースであり、代表的にはUSBインタフェースであるが、RS-232Cなど他の規格に準じた構成を有しても良い。本実施形態では撮像装置400が通信部208に接続されるものとするが、撮像装置400とPC200との通信方法に特に制限はなく、両者がサポートしている任意の規格に準拠した通信を行うことができる。
[映像分配器300]
本実施形態において投写制御装置であるPC200は、観賞用画像をマルチ投写する前の個々のプロジェクタの位置合わせを実行する。したがって、PC200から個々のプロジェクタに送信される映像信号はテスト用の映像信号(テストパターン)である。観賞用に投写する映像信号は、個々のプロジェクタに別途供給される。本実施形態では映像分配器300は同一の映像信号を接続されている全てのプロジェクタに並列出力するものとする。
[キーストーン補正について]
次に、キーストーン補正について図4を用いて説明する。キーストーン補正は、投写面の法線方向と投写方向(一般的には投写光学系の光軸)とのずれに応じて投写画像に生じる台形歪みを相殺するように元画像を幾何学的変換(変形)させる補正(幾何補正)である。画像の幾何学的変換は射影変換によって実現できるため、キーストーン補正は幾何補正の補正量である射影変換のパラメータの決定に等しい。例えば、CPU101は、矩形状の元画像の各頂点の移動量と移動方向に基づいて射影変換のパラメータを決定し、画像処理部109に与えることができる。
例えば、元画像の座標を(xs,ys)とすると、射影変換による変形後の画像の座標(xd,yd)は以下の式1で表わされる。
ここで、Mは3×3行列で、元画像から変形後の画像への射影変換行列である。また、xso、ysoは、図4に実線で示す元画像の左上の頂点の座標であり、xdo、ydoは、図4に一点鎖線で示す変形後の画像において、元画像の頂点(xso,yso)に対応する頂点の座標値である。
CPU101は、式1の行列Mとその逆行列M
-1を、オフセット(xso,yso),(xdo,ydo)とともに、キーストーン補正のパラメータとして画像処理部109に与える。画像処理部109は、以下の式2に従い、キーストーン補正後の座標値(xd,yd)に対応する元画像の座標(xs,ys)を求めることができる。
式2で得られる元画像の座標xs,ysがいずれも整数であれば、画像処理部109は元画像座標(xs,ys)の画素値をそのままキーストーン補正後の画像の座標(xd,yd)の画素値とすることができる。一方、式2で得られる元画像の座標が整数にならない場合、画像処理部109は、元画像座標(xs,ys)に相当する画素値を、複数の周辺画素の値を用いた補間演算により求めることができる。補間演算は、例えばバイリニア、バイキュービックなど、公知の補間演算のいずれかを用いて行うことができる。なお、式2で得られる元画像の座標が、元画像の外部領域の座標である場合、画像処理部109は、キーストーン補正後の画像の座標(xd,yd)の画素値を黒(0)またはユーザが設定した背景色とする。このようにして、画像処理部109は、キーストーン補正後の画像の全座標についての画素値を求め、変換後画像を作成することができる。
ここでは、プロジェクタ100のCPU101から画像処理部109に、行列Mとその逆行列M-1の両方が供給されるものとしたが、いずれか一方の行列だけを供給し、他方の行列は画像処理部109が求めてもよい。
通常、キーストーン補正には画素補間を伴うため、変形量が大きい場合は特に、元の画像の画素情報(RGB値など)が失われる。そのため、キーストーン補正量(幾何補正の補正量)は小さい方が画質の点では有利である。
なお、キーストーン補正後の画像の頂点の座標は、例えば投写画像の個々の頂点について、頂点が所望の位置に投写されるように操作部107を通じてユーザから移動量を入力させることにより取得することができる。この際、移動量の入力を支援するため、CPU201は、投写制御アプリケーションプログラムの機能を用い、プロジェクタ100にテストパターンを投写させるようにしてもよい。
[自動位置合わせ処理の概要]
本実施形態のPC200が投写制御アプリケーションプログラムを実行することにより実現する、自動位置合わせ処理の概要を図5のフローチャートに示す。
S100でCPU201は、PC200が通信可能なプロジェクタ100の中から、自動位置合わせ処理の対象(調整対象)とする複数のプロジェクタを選択する。選択される複数のプロジェクタは、基準像を投写する1つのプロジェクタと、基準像に位置合わせする光学像を投写する1つ以上のプロジェクタである。例えば後述するように、通信可能なプロジェクタの一覧を選択可能に表示部205に表示し、自動位置合わせ処理の対象とする複数のプロジェクタをユーザに選択させるようにしてもよい。また、基準プロジェクタはユーザが明示的に選択してもよいし、自動的に選択してもよい。自動的に選択する場合、例えば選択されたプロジェクタのうち、一覧表示での表示位置が一番上のプロジェクタを基準プロジェクタすることが考えられる。例えば、ユーザから選択完了の指示が入力されると、CPU201は処理をS200に進める。
S200でCPU201は、予め定められたテストパターンを投写するように指示するコマンドを、ネットワークIF206を通じて、S100において選択された各々のプロジェクタ100に送信する。コマンドを受信したプロジェクタ100のCPU101は、ROM103からテストパターンデータを読み出し、投写制御部105を通じて投写部104によりテストパターンの光学像を投写させる。ここで投写するテストパターンは、個々のプロジェクタ100の投写領域の位置関係や投写画像の歪みなどユーザに把握させるためのテストパターンである。例えば、方眼(メッシュ)パターンなどであってよい。
ユーザは、投写されたテストパターンから、選択したプロジェクタ100の投写領域がおおよそ適切な位置にあるか否かを把握することができる。自動位置合わせ機能により調整可能な範囲には限りがあるため、この時点でユーザは個々のプロジェクタ100の投写領域がおおよそ所望の位置となるように、例えばプロジェクタ100の設置位置や投写倍率などを調整する。
一方、S300でCPU201は、表示部205に、ユーザに選択を促すメッセージとともに、PC200に接続されている撮像装置を選択可能に表示する。ここでは撮像装置400だけが使用可能であるため、撮像装置400が選択された状態で表示される。撮像装置が選択された状態で、操作部204を通じてテスト撮影指示を検出すると、CPU201は処理をS400に進める。
S400でCPU201は、S300において選択された撮像装置400についての撮影条件(画角、露出条件、ホワイトバランスなど)を設定する。露出条件やホワイトバランスの設定は手動または自動で行うことができる。ユーザは撮像装置400を操作したり、投写制御アプリケーションが提供するGUIを操作部204で操作したりすることにより、直接もしくはPC200から遠隔的に設定することができる。手動設定の場合、全てのプロジェクタに対して共通した露出条件およびホワイトバランスが用いられる。撮像装置400の画角の変更は、露出条件やホワイトバランスの手動設定と同様に行うことができる。S400の処理については後で詳細に説明する。
S500でCPU201は、表示部205に、自動位置合わせ処理の一覧を選択可能に表示する。詳細については後述する。投写制御アプリケーションが提供するGUI操作を通じて自動位置合わせ処理の実行指示が検出されると、CPU201は処理をS600に進める。
S600でCPU201は、選択された自動位置合わせ処理を実行する。CPU201は、例えば、スタック投写のために、S300で選択されたプロジェクタの投写領域を自動位置合わせする処理を実行する。S300で選択されたプロジェクタの投写領域を自動位置合わせする処理の詳細については後述する。
なお、上述したS100~S600の実行順序は図5とは異なっていてもよい。例えばプロジェクタの投写領域を自動位置合わせする処理については、自動位置合わせ処理の開始指示がなされる時点で、対象とするプロジェクタの選択と、撮像装置400の選択および撮影条件の設定が完了していればよい。例えば、撮像装置400に関する処理(S300、S400)行った後で、プロジェクタの設定(S100、S200)を行ってもよい。
図6は、CPU201が投写制御アプリケーションプログラムを実行することにより表示部205に表示されるGUI画面600の例を示す図である。ユーザはPC200の操作部204を通じてGUI画面600を操作する。なお、図6(a)と図6(b)は、GUI画面600の下側の一部でスタック投写に関する表示を行っている場合と、マルチスクリーン投写に関する表示を行っている場合とを示していること以外は共通である。
リストビュー601はPC200とネットワーク接続されたプロジェクタ100の情報を選択可能に一覧表示する領域である。本実施形態では、プロジェクタ名、IPアドレス、キーストーン補正を適用中か否かを、リストビュー601に一覧表示する。これらの情報はCPU201からプロジェクタ100のそれぞれに対して情報取得コマンドを送信することにより、プロジェクタ100から取得することができる。また、本実施形態ではキーストーン補正を適用中のプロジェクタについては「変形済」と表示し、未適用のプロジェクタについては「変形無」と表示するか、何も表示しない。
検索ボタン602の操作を検出すると、PC200のCPU201はネットワークIF206を介して、プロジェクタ名、IPアドレス、キーストーン補正の適用有無に関する情報を要求する所定のコマンドをネットワーク上にブロードキャストする。ネットワークに接続されている個々のプロジェクタ100のCPU101は、ネットワークIF108を介してコマンドを受信すると、自身のプロジェクタ名、IPアドレス、キーストーン補正の有無を示す情報を含んだデータを、PC200に対して送信する。PC200のCPU201はコマンドに応答して送信されたデータを受信し、データに含まれる情報を抽出してリストビュー601に一覧表示する。
リストビュー603は、リストビュー601に一覧表示されたプロジェクタのうち、自動位置合わせの対象として選択されたプロジェクタを一覧表示する領域である。例えば、ユーザがリストビュー601に一覧表示されている要素の1つ以上について、リストビュー603へドラッグアンドドロップする操作が検出されると、CPU201は、操作の対象とされた要素をリストビュー603に追加する。リストビュー603に表示されているプロジェクタの情報は、CPU201がRAM202上で管理する。なお、後述する追加ボタン605が操作された場合もCPU201はリストビュー603へ要素を追加する。
テキストボックス604および追加ボタン605は、ユーザが自動位置合わせの対象として追加したいプロジェクタを、IPアドレスで指定して追加するためのGUIである。CPU201は、追加ボタン605の操作が検出された際にテキストボックス604に入力されているIPアドレスを有するプロジェクタをリストビュー603およびRAM202で管理するプロジェクタのリストに追加する。リストビュー603への要素追加処理が、上述したS100の処理に相当する。
本実施形態においてCPU201は、リストビュー603に追加されたプロジェクタやリストビュー603で選択されたプロジェクタがキーストーン補正を適用中である場合、それをユーザに通知することができる。選択されたプロジェクタがキーストーン補正を適用中であることの通知は、例えば図7に示す警告画面700を表示部205に表示することによって行うことができる。つまり、警告画面700は、自動位置合わせの対象として選択されたプロジェクタにキーストーン補正等の幾何補正が適用されている場合に、当該幾何補正の適用を解除するか否かをユーザに選択させるための通知画面である。また、CPU201は通知を行う際、警告画面700の表示に加え、対応するプロジェクタに対し、所定のテストパターンを投写させるコマンドを送信してもよい。これにより、通知の対象であるプロジェクタ100から、テストパターンが投写される。ユーザは投写されたテストパターンにより、通知されたプロジェクタの投写領域の位置を確認できる。
警告画面700の「はい」ボタン701の操作が検出された場合、CPU201はネットワークIF206を介して、対応するプロジェクタ100に対し、適用中のキーストーン補正(幾何補正)の補正量を要求するコマンドを送信する。CPU101はコマンドに応答して現在適用しているキーストーン補正量を例えばRAM102から取得し、PC200に送信する。CPU201は、補正量を受信すると、RAM202で管理しているリストの、対応するプロジェクタの情報として補正量を記憶する。そして、CPU201はさらに、そのプロジェクタ100に対し、キーストーン補正の解除を指示するコマンドを送信する。プロジェクタ100のCPU101はキーストーン補正の解除を指示するコマンドを受信すると、画像処理部109にキーストーン補正を解除するよう指示する。CPU201はキーストーン補正の解除を指示するコマンドを送信すると、警告画面700を閉じる。そして、CPU201は、キーストーン補正を解除したプロジェクタについてリストビュー601および603に表示されていた「変形済」表示を中止する(あるいは、「変形無」表示に変更する)。また、CPU201は、RAM202で管理している、プロジェクタのリストについても、キーストーン補正の適用有無の情報を更新する。
一方、警告画面700の「いいえ」ボタン702の操作が検出された場合、CPU201は対応するプロジェクタ100との通信を行わずに警告画面700を閉じる。なお、警告画面700の「いいえ」ボタン702の操作が検出された場合、CPU201は、選択されているプロジェクタを基準プロジェクタ候補としてRAM202に記憶してもよい。したがって、リストビュー601、603の表示や、RAM202内のプロジェクタリストは変更されない。なお、リストビュー603へプロジェクタが追加された際の警告画面700の表示や、キーストーン補正の解除動作は必須ではない。
図6に戻り、「テストパターン表示」ボタン606の操作が検出されると、CPU201はリストビュー603に表示されているプロジェクタ100のそれぞれに対し、ネットワークIF206を通じてテストパターンの表示を指示するコマンドを送信する。これは、図5のS200における処理に相当する。ボタン606の操作に応じて表示させるテストパターンは、各プロジェクタ100の表示領域の大きさや位置を確認しやすくするためのテストパターンであり、例えば図8(a)や図8(b)に示すテストパターンであってよい。2つのテストパターンは、4隅の矩形部分801、802の表示(例えば色)が異なっている。
テストパターンはPC200から個々のプロジェクタ100にテストパターンの表示を指示するコマンドに関連づけて送信してもよいし、プロジェクタ100のCPU101が生成してもよい。
なお、個々のプロジェクタが表示するテストパターンの矩形部分801または802の大きさにより、そのプロジェクタにおけるキーストーン補正の上限値を表すようにテストパターンを生成することができる。例えば、あるプロジェクタ100のキーストーン補正の上限値がX方向に250画素、Y方向に200画素であったとする。この場合、そのプロジェクタ100で表示するテストパターンの矩形部分801の横幅が250画素、縦幅が200画素となるようにテストパターンを生成することができる。
このようなテストパターンをPC200で生成する場合、CPU201はリストビュー603に表示されている個々のプロジェクタ100から、キーストーン補正の上限値を取得する。なお、キーストーン補正の上限値を直接取得する代わりに、キーストーン補正量の上限値に変換可能な他の情報(例えばファームウェアのバージョンおよび機種名)を取得してもよい。この場合、取得する情報をキーストーン補正量の上限値に変換するための情報(例えばルックアップテーブル)をPC200のROM203に記憶しておく。そして、CPU201は取得したキーストーン補正の上限値に基づいて、上述したテストパターンを表す画像データを生成する。
一方、個々のプロジェクタ100でテストパターンを生成する場合、CPU101が例えばROM103に記憶されている自身の情報に基づいて、上述したテストパターンを表す画像データを生成する。なお、予め上述したテストパターンをROM103に記憶しておいてもよい。
例えば、個々のプロジェクタが投写するテストパターンにおける矩形部分の表現(例えば色や塗りつぶしパターンなど)を異ならせることで、投写されたテストパターンに基づいて、現在のプロジェクタの配置で自動位置合わせが可能か否かの判定を支援できる。例えば図8(a)のテストパターンの矩形部分801を赤色、図8(b)のテストパターンの矩形部分802を緑色とする。そして、プロジェクタ100aおよび100bで別々のテストパターンを投写するものとする。
この場合、2つのテストパターンが矩形部分で重なりを有する位置関係で投写された場合、矩形部分の重複領域は黄色に見える。テストパターンの矩形部分のうち、対応する位置の矩形部分の重複領域は、いずれのプロジェクタでもキーストーン補正によって頂点を移動可能な領域である。そのため、テストパターンの投写画像が同じ位置(左上、右上、左下、右下)の矩形部分の全てで重複領域を有していれば、それらテストパターンを投写したプロジェクタの投写領域を合わせることが可能(すなわち、スタック投写可能)であることが分かる。また、テストパターンの投写画像の矩形部分から、そのテストパターンを投写したプロジェクタのキーストーン補正の上限を把握することができる。
例えば、プロジェクタ100aおよび100bが投写したテストパターンの投写画像が図8(c)のような位置関係であれば、プロジェクタ100aおよび100bの投写領域を自動位置合わせ可能であることが分かる。しかし、テストパターンの投写画像が図8(d)のような位置関係の場合、現在のプロジェクタ100aおよび100bの配置では投写領域を自動位置合わせすることができない。この場合ユーザは、テストパターンの投写画像における、対応する矩形部分の全てが重複領域(黄色の領域)を有するように、プロジェクタ100aおよび100bの少なくとも一方を移動させることができる。また、ユーザは、テストパターンの投写画像における、対応する矩形部分の全てが重複領域(黄色の領域)を有するように、レンズシフト機能によってプロジェクタ100aおよび100bの少なくとも一方の投写位置を移動させることができる。
図6に戻り、GUI画面600のリストビュー607は、現在PC200に接続されている撮像装置の1つを選択可能に一覧表示する。ここで選択された撮像装置が自動位置合わせに用いられる。図6の例ではリストビュー607に4台の撮像装置が表示されているが、本実施形態では撮像装置400だけが接続されているため、撮像装置400が選択された状態(ハイライトされた状態)で表示される。
CPU201はリストビュー607で選択された撮像装置と、通信部208を通じて、PC200から撮像装置を遠隔制御するための通信を確立させる(S300での撮像装置の選択処理に相当)。これにより、選択された撮像装置から各種の情報を取得したり、撮影を指示したり、撮影で得られた画像データを取得したり、撮影条件を設定(変更)したりすることが可能になる。CPU201はまた、撮像装置から取得した情報をRAM202に格納する。
図6に戻って、「カメラ詳細設定」ボタン608の操作が検出されると、CPU201は、リストビュー607で選択されている撮像装置の撮影条件を遠隔的に設定するためのGUI画面を表示部205に表示する。図9は、撮像装置の遠隔操作用GUI画面910の例を示す。遠隔操作用GUI画面910には撮像装置の種類に応じた操作ボタンが含まれており、各操作ボタンには現在の設定値が表示されている。絞り値ボタン912、撮影感度ボタン913、シャッタスピードボタン914はそれぞれプルダウンリストを含んでおり、選択すると設定可能な値のリストが表示される。リストから値が選択されると、CPU201はボタンの種類に応じた露出条件を、選択された値に変更するコマンドを通信部208を通じて撮像装置に送信する。撮影指示ボタン911が操作されるとCPU201は撮影を指示するコマンドを通信部208を通じて撮像装置に送信する。
「撮影条件自動設定」ボタン609の操作が検出されると、CPU201はリストビュー607で選択されている撮像装置の撮影条件(絞り値、露出条件、ホワイトバランス)を自動位置合わせに適した値に自動設定する処理を実行する。この処理の詳細についてはテスト撮影動作の説明とともに後述する。
「テスト撮影」ボタン610の操作が検出されると、CPU201はリストビュー607で選択されている撮像装置によるテスト撮影処理を実行する。本実施形態では、撮像装置の画角確認を目的とした第1のテスト撮影と、各プロジェクタに対する撮影条件の確認もしくは自動設定を目的とした第2のテスト撮影とで異なる処理を実行する。
図10のフローチャートを用いて、テスト撮影処理について説明する。CPU201は、投写制御アプリケーションのGUI画面600の「テスト撮影」ボタン610の操作を検出するとテスト撮影処理を開始する。
S1501でCPU201は、画角確認を目的としたテスト撮影(第1のテスト撮影)であるか、撮影条件確認を目的としたテスト撮影(第2のテスト撮影)であるかを、ラジオボタン627および628の選択状態に基づいて判定する。具体的には、CPU201は、ラジオボタン627が選択されていればテスト撮影の目的が画角確認であると判定し、処理をS1003に進める。また、CPU201は、ラジオボタン628が選択されていればテスト撮影の目的が撮影条件確認であると判定し、処理をS1021に進める。なお、「撮影条件自動設定」ボタン609の操作を検出した際に実行する撮影条件自動設定処理は、S1021からの処理に相当する。
まず、画角確認を目的としたテスト撮影動作について説明する。
S1003でCPU201は、調整対象のプロジェクタ(リストビュー603に表示されているプロジェクタ)のそれぞれから、現在適用中のキーストーン補正量を取得する。なお、リストビュー601に接続されているプロジェクタの情報を表示する際にキーストーン補正量を取得済みであれば、RAM202に管理しているプロジェクタの情報からキーストーン補正量を得ることができる。この場合、S1003でプロジェクタに改めてキーストーン補正量を要求するコマンドを送信する必要はない。
S1005でCPU201は、ネットワークIF206を通じて、調整対象のプロジェクタのそれぞれに対し、キーストーン補正の解除を指示するコマンドを送信する。コマンドを受信したプロジェクタのCPU101は、画像処理部109に対してキーストーン補正の解除を指示する。以後、画像処理部109は投写用画像データにキーストーン補正を適用しない。
S1007でCPU201は、ネットワークIF206を通じて、調整対象のプロジェクタのそれぞれに対し、投写状態をオンにするように指示するコマンドを送信する。このコマンドは例えば光源を点灯状態にするコマンドや、ブランク(黒画面)の投写解除を指示するコマンドであってよい。
S1009でCPU201は、ネットワークIF206を通じて、調整対象のプロジェクタのそれぞれに対し、テストパターンの投写を指示するコマンドを送信する。テストパターンをPC200から供給する場合、CPU201はコマンドとともにテストパターンの画像データも例えばROM203から読み出してプロジェクタに送信する。各プロジェクタが有するテストパターンを用いる場合、コマンドにテストパターンを指定する情報またはテストパターンの目的を示す情報を含めることができる。画角確認用のテストパターンは少なくとも投写領域の外縁が投写画像で確認可能であればよい。全面を塗りつぶした画像であってもよいし、外縁を実線で示す枠状の画像であってもよい。また、例えば図8(a)や図8(b)に関して説明したような、各プロジェクタのキーストーン補正量の上限値を表す矩形領域を有するテストパターンを用いてもよい。これにより、ユーザは、調整対象のプロジェクタ全ての投写領域が画角(撮影範囲)内に収まっているか否かだけでなく、補正により位置合わせが可能であるか否かについても把握することができる。
コマンドを受信したプロジェクタのCPU101は、供給された、もしくはROM203から読み出したテストパターン画像をVRAM106に格納し、画像処理部109に対して投写を開始するように指示する。これにより、画像処理部109は投写制御部105にテストパターンの画像データの供給を開始する。投写制御部105はテストパターンの画像データに基づいて投写部104が有する光学変調素子の透過率または反射率を制御し、テストパターンの光学像を投写させる。
S1011でCPU201は、通信部208を通じて、撮像装置400に撮影の実行を指示する。これにより、撮像装置400は撮影を実行し、得られた画像データをPC200に送信する。
S1013でCPU201は、撮像装置400から取得した画像データを例えばRAM202に格納する。そして、CPU201は、撮影された画像を図6のGUI画面600の領域611に表示させる。ユーザは、領域611に表示された画像から、撮像装置400の画角内に、調整対象のプロジェクタの投写領域が全て収まっているかを確認することができる。なお、撮像装置400の画角内に調整対象のプロジェクタの投写領域が全て収まっているか否かの判定を、撮影で得られた画像データをCPU201が解析することによって自動的に実行してもよい。CPU201は、撮像装置400の画角内に投写領域が包含されていないプロジェクタがあると判定された場合には、警告画面などを表示して、ユーザにプロジェクタもしくは撮像装置の配置の変更を促してもよい。
CPU201は、S1013で領域611に画像を表示すると、S1015に処理を進める。S1015でCPU201は、ネットワークIF206を通じて、調整対象のプロジェクタのそれぞれに対し、キーストーン補正の適用を指示するコマンドを送信する。この際、CPU201は、コマンド送信先のプロジェクタごとに、先に取得したキーストーン補正量を指定したコマンドを送信する。これにより、各プロジェクタは、S1004でキーストーン補正を解除する前の投写状態に復帰する。なお、ここではプロジェクタがキーストーン補正量を保持する機能を有さない場合を想定している。しかし、プロジェクタがキーストーン補正量を保持する機能を有する場合、S1015では単にキーストーン補正を有効にするコマンドを送信すればよい。
以上で、画角確認を目的としたテスト撮影処理は終了する。なお、投写領域が撮像装置400の画角に収まらないプロジェクタが存在した場合、ユーザは、撮像装置400の画角およびプロジェクタの位置の少なくとも一方を調整したのち、画角確認を目的としたテスト撮影を再度実行する。そして、調整対象のプロジェクタ全ての投写領域が撮像装置400の画角に収まることが確認できるまで、調整とテスト撮影を繰り返し行う。
なお、自動位置合わせを正確に行うためには、調整対象のプロジェクタの投写領域がある程度の大きさで撮像装置400の画角に収まることが望ましい。したがって、ユーザは、例えば、投写面を撮影した画像に占める投写領域の大きさがおおよそ25%以上となるように撮像装置400の画角およびプロジェクタの位置を調整する。なお、25%というのは一例であり、自動位置合わせの精度などを考慮して適宜決定することができる。
次に、S1021以降の、撮影条件確認(または撮影条件の自動設定)を目的としたテスト撮影動作について説明する。
まず、S1021でCPU201は、ネットワークIF206を通じて、調整対象のプロジェクタのうち、撮影条件の確認を行っていない任意の1つに対し、投写状態をオンにするように指示するコマンドを送信する。このコマンドはS1007で送信するものと同じであってよい。撮影条件確認を目的としたテスト撮影では、プロジェクタごとの撮影条件を確認するため、1つのプロジェクタだけが投写している状態で撮影を行う必要がある。そのため、画角確認を目的としたテスト撮影とは異なり、調整対象のプロジェクタのうち、投写状態をオンにするのは撮影条件を確認する1つだけにする。
なお、ここでは調整対象のプロジェクタの全てについて1つずつ撮影条件を確認する場合について説明するが、調整対象のプロジェクタのうち、ユーザが選択した1つについてだけ撮影条件を確認できるようにしてもよい。この場合、調整対象のプロジェクタの1つを選択するためのGUI(例えば、リストビュー603に表示されているプロジェクタの1つを選択するGUI)を提供し、選択された1つのプロジェクタに対してのみ、S1021以降の処理を実行すればよい。
S1023でCPU201は、ネットワークIF206を通じて、S1021で投写状態をオンにしたプロジェクタに対し、テストパターンの投写を指示するコマンドを送信する。このコマンドはS1009で送信するコマンドと同じであってよい。ただし、テストパターンは自動位置合わせ時に投写するものと同じものとする。例えば、プロジェクタごとに異なるテストパターンを用いてもよいし、全面白の画像といった同じ画像をテストパターンとして用いてもよい。
S1025でCPU201は、通信部208を通じてコマンドを送信し、撮像装置400に撮影条件を設定する。例えば既に「撮影条件自動設定」ボタン609の操作により、調整対象のプロジェクタそれぞれについての撮影条件が決定されている場合、CPU201は該当する撮影条件をRAM202から読み出して設定することができる。あるいは、CPU201は、撮像装置400をシャッタスピード優先AEモードに設定し、さらに、シャッタスピードをプロジェクタのフレームレートに応じた値に設定してもよい。この場合、シャッタスピードは、例えば、フレームレート[フレーム/秒]の逆数に等しいシャッタスピード(1/フレームレート[秒])に設定することができる。
S1027でCPU201は、通信部208を通じて、撮像装置400に撮影の実行を指示する。これにより、撮像装置400は撮影を実行し、得られた画像データをPC200に送信する。
S1029でCPU201は、撮像装置400から取得した画像データを例えばRAM202に格納する。そして、CPU201は、撮影された画像を図6のGUI画面600の領域611に表示させ、処理をS1031に進める。なお、領域611に表示した画像上にマウスポインタやカーソルが位置していることが検出された場合、CPU201は対応する画素の輝度値などを表示してもよい。
S1031でCPU201は、画像データから投写領域に該当する画像領域を抽出する。そしてCPU201は、抽出した領域内の画像データから、撮影条件を決定するための情報(統計量データ)を生成し、RAM202に格納する。統計量データは例えば輝度のヒストグラムや平均輝度、白画素の値など、一般的に自動露出制御やオートホワイトバランス調整に用いられるものであってよい。また、CPU201は投写領域が画角(撮影範囲)に収まっているか否かを判定し、収まっていない判定される場合には警告してもよい。
S1033でCPU201は、撮影条件の自動設定を行うか否かを判定する。例えば、図6の「撮影条件自動設定」ボタン609が操作されたことの検出によってS1021からの処理を実行している場合、CPU201は撮影条件の自動設定を行うものと判定する。一方、撮影条件確認を目的としたテスト撮影を実行している場合、CPU201は撮影条件の自動設定は行わないと判定する。あるいは、CPU201は、現在投写状態がオン(投写中)のプロジェクタについて撮影条件を自動設定するか否かをユーザに問い合わせ、応答結果にしたがって処理を分岐させてもよい。例えば、自動設定をするかしないかを選択可能な問い合わせ画面を表示部205に表示することによってユーザに問い合わせることができる。また、撮影条件の自動設定を目的としたテスト撮影を実行している場合には、S1033でCPU201は、直近に決定した撮影条件を全てのプロジェクタに対して適用してテスト撮影を終了させるかどうかをユーザに問い合わせてもよい。全プロジェクタに共通の撮影条件を適用できる場合には、個々のプロジェクタについて別個に撮影条件の決定を行うほどの精度が要求されない場合があるからである。
CPU201は、自動設定を行うと判定(あるいはユーザから指示)された場合にはS1035へ、自動設定を行わないと判定(あるいはユーザから指示)された場合にはS1037へ、処理を進める。
S1035でCPU201は、S1031で生成した統計量データを用い、公知の方法で撮影条件(露出条件およびホワイトバランス)を決定する。そして、CPU201は、決定した撮影条件を通信部208を通じて撮像装置400に設定する。また、CPU201は、決定した撮影条件を、現在投写状態がオン(投写中)のプロジェクタに対する撮影条件としてRAM202に格納する。この際、CPU201は、過去に決定された撮影条件があれば、それを更新する。そして、CPU201は処理をS1039に進める。
一方、S1037でCPU201は、S1031で生成した統計量データをGUI画面600内もしくは別画面に表示し、処理をS1039に進める。なお、現在投写中のプロジェクタに対する処理を完了してもよいとの確認入力の検出に応じて処理をS1039に進めるようにしてもよい。ユーザはたとえば、S1037で表示される統計量データに基づいて、現在投写中のプロジェクタについての撮影条件を手動設定することができる。手動設定は上述したように撮像装置400を直接操作して行ってもよいし、表示部205に表示されるGUI画面を通じて遠隔的に行ってもよい。
S1039でCPU201は、調整対象のプロジェクタ全てについて撮影条件の確認(または撮影条件の決定および設定)が完了したか否かを判定し、完了したと判定されれば処理を終了し、完了したと判定されなければ処理をS1041に進める。
S1041でCPU201は、処理の終了指示が検出されたか否かを判定し、検出された判定されれば処理を終了し、検出されたと判定されなければ処理をS1021に戻して残りのプロジェクタの1つについての処理を行う。ここで、終了指示とは、操作部204を通じた処理の中断もしくは強制終了の指示であってよい。調整対象のプロジェクタが多数である場合、全てのプロジェクタに対する撮影条件の確認(または決定および設定)処理は時間を要する。そのため、処理の中断を受け付けるようにしている。
以上のテスト撮影処理は、S400における撮影条件の設定処理の一部として実行される。テスト撮影の目的が画角確認の場合と、撮影条件確認の場合とでは、同時に投写させるべきプロジェクタの数や投写させるタイミングが異なる。本実施形態では、テスト撮影の目的を指定してテスト撮影の実行を指示するだけで、それぞれの目的に適したテスト撮影が実行されるようにしたため、手間を省きつつ適切なテスト撮影を行うことができる。
図6に戻り、投写制御アプリケーションのGUI画面600の下半分について説明する。スタック投写(図1)とマルチスクリーン投写(図2)とでは自動位置合わせの内容が異なる。そのため、GUI画面600は、マルチ投写の種類に応じた設定領域を選択的に表示するように構成されている。具体的には、CPU201は、タブ613の選択操作が検出されるとスタック投写用の設定領域を、タブ614の選択操作が検出されるとマルチスクリーン投写用の設定領域を表示させる。図6(a)はスタック投写用の設定領域が、図6(b)はマルチスクリーン投写用の設定領域が、それぞれ表示された状態を示している。
[スタック投写用の設定領域]
図1に関して説明したようにスタック投写は、複数の投写領域が合致するように投写するマルチ投写である。複数の投写光学系を、光軸が同一になるように配置することはできないため、キーストーン補正が不要なプロジェクタは最大でも1つである。投写面に正対する位置にプロジェクタを配置することも容易でない場合が多いため、実際には全てのプロジェクタでキーストーン補正が行われることが多い。スタック投写での位置合わせは、投写領域が合致するように各プロジェクタのキーストーン補正量を自動で決定する処理である。
図6(a)に示すスタック投写用の設定領域において、615、616、617は自動位置合わせモードを排他的に選択するためのラジオボタンである。本実施形態では、スタック投写用の自動位置合わせモードとして「4点指定調整」、「自動形状決定」、「基準プロジェクタに合わせる」から1つを選択できる。
「4点指定調整」は予め定められた4点に個々の投写領域の頂点を合わせるようなキーストーン補正量を自動で決定するモードである。例えばCPU201は4点調整領域621上に、投写領域の左上、右上、右下、左下の頂点にそれぞれ対応する調整マーカ622、623、624、625を移動可能に表示する。ユーザは例えばドラッグアンドドロップ操作や、選択操作とカーソル操作との組み合わせなどにより、個々の調整マーカを移動させることにより、投写領域の各頂点の座標を指定することができる。4点指定調整は、例えば、投写面が枠付きのスクリーンである場合のように、投写目標位置が明確な場合に有用である。なお、座標を調整可能な点の数は4点より少なくてもよいし、頂点以外の座標を含む5点以上としてもよい。
「自動形状決定」は、個々の投写画像が矩形になるようなキーストーン補正量を自動で決定するモードである。このモードでは、位置合わせの目標となる4点を投写領域の撮影画像に基づいてCPU201が決定する。そして、CPU201は、決定した4点に個々の投写領域の頂点を合わせるようなキーストーン補正量を決定する。そのため、ユーザによる4点の指定操作は不要である。自動形状決定は、投写の目標位置が明確でないような場合(例えば広い壁面に対する投写)において有用である。
「4点指定調整」および「自動形状決定」は、ユーザやCPU201によって予め定められた投写領域に、全てのプロジェクタの投写領域を合致させるキーストーン補正量を自動で決定する処理である。これに対し、「基準プロジェクタに合わせる」は、1つのプロジェクタを基準プロジェクタとして、基準プロジェクタの投写領域に他のプロジェクタの投写領域を合致させるようなキーストーン補正量を自動で決定するモードである。このモードの自動位置合わせが実行されるのは、基準プロジェクタの投写領域の位置が、指定された位置に調整されている場合である。基準プロジェクタ以外のプロジェクタの投写領域を基準プロジェクタの投写領域に合致させるためのキーストーン補正量を自動的に決定する。
「基準プロジェクタに合わせる」のラジオボタン617の選択操作を検出すると、CPU201はリストビュー603に表示されているプロジェクタの情報を、リストビュー618にコピーする。基準プロジェクタの選択は自動的に行ってもよいし、ユーザが選択できるようにしてもよい。例えば、リストビュー618の先頭にリストされたプロジェクタを基準プロジェクタとし、リスト内の順序をユーザがドラッグアンドドロップ操作などによって変更可能に構成することができるが、他の任意の構成を採用しうる。また、CPU201がRAM202で管理するリストを参照し、キーストーン補正量が最も少ないプロジェクタを基準プロジェクタに自動設定することもできる。さらに、上述したように、リストビュー603において選択された際の警告に対して、キーストーン補正を解除しないとされたプロジェクタを基準プロジェクタとしてもよい。
なお、ユーザによる基準プロジェクタの選択を支援するため、例えばリストビュー618に表示されているプロジェクタについて、投写領域を示す投写を行わせてもよい。例えば、CPU201は、「テストパターン表示」ボタン619の操作を検出すると、リストビュー618に表示されているプロジェクタのうち、基準プロジェクタについて例えば図11(a)に示すようなパターン画像を投写させる。また、CPU201は、リストビュー618に表示されている残りのプロジェクタに関しては、例えば図11(b)に示すようなパターン画像を投写させる。基本的に、全てのプロジェクタの投写領域の外縁が把握可能で、かつ選択されている1つのプロジェクタの投写領域が特定可能であれば、任意のパターン画像を用いることができる。
図11(c)は、2台のプロジェクタがリストビュー618に表示されている状態で、一方のプロジェクタの情報が選択されている際の投写画像を模式的に示した図である。ユーザはこの投写画像から、現在選択中のプロジェクタの投写領域を容易に判別できる。また、現在選択中のプロジェクタの投写領域と、他のプロジェクタの投写領域との関係についても容易に把握できる。なお、パターン画像は、PC200からプロジェクタ100へ画像データとしてネットワークIF206を通じて送信してもよいし、映像信号として映像出力部207を通じて送信してもよい。
「自動調整開始」ボタン620の操作が検出されると、CPU201は選択されているラジオボタンに応じた自動位置合わせ処理を開始する。自動位置合わせ処理の詳細については後述する。
[マルチスクリーン投写用の設定領域]
図2に関して説明したようにマルチスクリーン投写は、複数の投写領域を並べて配置するマルチ投写である。マルチスクリーン投写での位置合わせは、隣接する投写領域の重複部分のずれが生じないように各プロジェクタのキーストーン補正量を自動で決定する処理である。
スタック投写と共通する事項の説明は省略し、マルチスクリーン投写に特有な事項について説明する。まず、マルチスクリーン投写の場合、自動位置合わせモードに「基準プロジェクタに合わせる」が存在しない。タブ614の選択操作を検出してCPU201がマルチスクリーン投写用の設定領域を表示させる際、リストビュー603に表示されているプロジェクタの情報を、リストビュー631にコピーして表示する。
リストビュー629はマルチスクリーン投写の投写領域の配置パターンの選択肢を提供する。ユーザは選択肢の中から1つを選択することができる。「2x2」は2行2列、「1x4」は1行4列、「4x1」は4行1列の配置をそれぞれ表す。選択可能な配置パターンの選択肢は、リストビュー631に表示されているプロジェクタの数によって変化する。
領域630は、リストビュー629でユーザが選択した配置パターンを模式的に示す表示である。CPU201は、リストビュー629で配置パターンが選択されると、選択された配置パターンに応じた画像を領域630に表示させる。配置パターンを可視化することによって、例えば1x4の配置を誤って4x1の配置とすることを防止できる。
リストビュー631は、配置パターンを構成する投写領域とプロジェクタとの対応関係を変更可能に表示する領域である。領域630に表示された配置パターンの画像に含まれる投写領域のID(図6(b)では1~4)と、リストビュー631において個々のプロジェクタの情報に関連づけて表示されているテキストボックス632の内容とから、ユーザは対応関係を把握できる。テキストボックス632の内容はユーザが変更可能であり、例えば、「プロジェクタA 192.168.254.1」で左上の領域を投写させる場合には対応するテキストボックス632に対して「1」を入力する。投写領域のIDは同じものが異なる投写領域に付与されなければ数字以外の任意の文字、記号、マークなどであってよい。CPU201は、配置パターンと、各プロジェクタが配置パターンのどの投写領域を受け持つかを示す情報とをRAM202に格納し、管理する。
テキストボックス633および634は、縦方向および横方向のエッジブレンド幅を画素数で入力する領域である。CPU201は、テキストボックス633および634に入力された値をRAM202にエッジブレンド幅情報として格納する。なお、テキストボックス633および634はデフォルト値が入力された状態で表示することもできる。
エッジブレンディング処理について図12を用いて説明する。ここでは、横方向におけるエッジブレンディング処理について説明するが、縦方向においても原理は同じである。
図12(a)および(b)に、1台目および2台目のプロジェクタの投写画像1100aおよび1100bを示す。投写画像1100aは、非重複領域1110aと重複領域1120aから構成される。投写画像1100bもまた、非重複領域1110bと重複領域1120bから構成される。重複領域1120a、1120bの横方向の大きさはテキストボックス634で指定するエッジブレンド横幅に相当する。
図12(c)は、エッジブレンディング処理によって制御されるゲインの大きさと、画像の横方向における位置との関係を示している。ゲイン1130a、1130bは、1台目のプロジェクタと2台目のプロジェクタのそれぞれの画像処理部109に適用するゲインである。非重複領域1110aおよび1110bについては画像合成による輝度の上昇は生じないため、ゲインを1.0倍とし、画像の輝度を変化させない。一方、重複領域1120aおよび1120bについてゲインを両方とも1.0倍にすると、輝度が上昇して投写画像の重複領域が目立ってしまう。そのため、重複領域1120aおよび1120bについては、画像の端部に向かって直線的にゲインを0まで下げる。この際、1130a=1.0-1130bという関係を満たすようにする。なお、重複領域におけるゲインを非線形に変化させてもよい。
図12(d)は、投写画像を示す。投写画像の重複領域1140には、重複領域1120aおよび1120bの両方が投写されている。例えば均一な画像を投写しているとき、重複領域1140の輝度は非重複領域1110a、1110bの輝度と同等になるため、2つの投写画像の境界が目立たなくなる。なお、隣接する投写領域を左右または上下の両方に有する投写領域に投写する画像については、左右(または上下)に存在する重複領域の両方についてエッジブレンディング処理を適用する。
以上説明した、スタック投写用の設定領域およびマルチスクリーン投写用の設定領域に対する操作に応じた動作は、S500の処理の一部として行われる。
[自動位置合わせ処理]
次に、図5の自動位置合わせ処理(S600)の詳細について、図13~図15を用いて説明する。自動位置合わせ処理は、CPU201が「自動調整開始」ボタン620の操作を検出したことに応じて開始される。
S601でCPU201は、基準プロジェクタの確認処理を行う。基準プロジェクタの確認処理は、「基準プロジェクタに合わせる」自動位置合わせ処理が設定されている際に、現在の基準プロジェクタについてS603以降の実体的な位置合わせ処理(調整処理)を実行することに関してユーザに確認を求めるための処理である。また、確認処理では、「基準プロジェクタに合わせる」自動位置合わせ処理が設定されている際には基準プロジェクタ以外のプロジェクタが現在適用中の幾何学補正を解除する。「基準プロジェクタに合わせる」以外の自動位置合わせ処理が設定されている場合には、各プロジェクタが現在適用中の幾何学補正を解除する。
S602でCPU201は、基準プロジェクタの確認処理の結果に応じてS603以降の調整処理を実行するかどうかを決定する。
ここで、S601における基準プロジェクタの確認処理について、図14のフローチャートを用いて説明する。
S1301でCPU201は、RAM202に格納されている自動位置合わせモードの設定が、「基準プロジェクタに合わせる」であるか否かを判定する。CPU201は、設定が「基準プロジェクタに合わせる」であると判定されればS1303に、判定されなければS1302に処理を進める。
S1302でCPU201は、ネットワークIF206を通じて、調整対象のプロジェクタ(図6のリストビュー603に表示されているプロジェクタ)全てに対し、キーストーン補正の解除を指示するコマンドを送信する。そして、CPU201は基準プロジェクタの確認処理を終了する。この場合、処理の戻り値は「処理開始」である。コマンドを受信したプロジェクタのCPU101は、画像処理部109に対してキーストーン補正の解除を指示する。
S1303でCPU201は、ネットワークIF206を通じて調整対象のプロジェクタ(リストビュー618に表示されているプロジェクタ)のそれぞれにコマンドを送信し、現在適用中のキーストーン補正量を取得する。なお、リストビュー601に接続されているプロジェクタの情報を表示する際や、テスト撮影時にキーストーン補正量を取得済みであれば、RAM202に管理しているプロジェクタの情報からキーストーン補正量を得ることができる。この場合、S1303でプロジェクタに改めてキーストーン補正量を要求するコマンドを送信する必要はない。
S1304でCPU201は、ネットワークIF206を通じ、調整対象のプロジェクタのうち、基準プロジェクタ以外のそれぞれに、キーストーン補正の解除を指示するコマンドを送信する。これにより、基準プロジェクタ以外の対象プロジェクタでは、キーストーン補正が解除される。なお、基準プロジェクタは上述したように、ユーザにより、あるいは自動的に選択されている。
S1305でCPU201は、基準プロジェクタには図11(a)に示したパターン画像を、他の対象プロジェクタのそれぞれには図11(b)に示したパターン画像を投写させる。これにより、ユーザは現在設定されている基準プロジェクタと、他の対象プロジェクタの投写領域を確認できる。なお、基準プロジェクタだけにパターン画像を投写させるようにしてもよい。
S1306でCPU201は、現在設定されている基準プロジェクタに合わせる自動位置合わせ処理を実行することの承認をユーザに求める。CPU201は例えば図15に示すようなダイアログメッセージを表示部205に表示することにより、承認を求めることができる。CPU201は、ダイアログメッセージに含まれる「はい」ボタン1401または「いいえ」ボタン1402の操作が検出されるまで待機する。
S1307でCPU201は、自動位置合わせ処理の実行を開始してもよいと、ユーザが指示したか否かを判定する。CPU201は「はい」ボタン1401の操作を検出すると、自動位置合わせ処理の実行を開始してもよいとユーザが指示したと判定し、基準プロジェクタの確認処理を終了する。この場合、処理の戻り値は「処理開始」である。
一方、CPU201は、「いいえ」ボタン1402の操作を検出すると、自動位置合わせ処理の実行が不可であるとユーザが指示したと判定し、処理をS1308に進める。S1308でCPU201は、ネットワークIF206を通じて、調整対象のプロジェクタのうち、基準プロジェクタ以外のプロジェクタのそれぞれに対し、キーストーン補正の適用を指示するコマンドを送信する。この際、CPU201は、コマンド送信先のプロジェクタごとに、先に取得したキーストーン補正量を指定したコマンドを送信する。これにより、各プロジェクタは、S1304でキーストーン補正を解除する前の投写状態に復帰する。なお、ここではプロジェクタがキーストーン補正量を保持する機能を有さない場合を想定している。しかし、プロジェクタがキーストーン補正量を保持する機能を有する場合、S1308では単にキーストーン補正を有効にするコマンドを送信すればよい。S1308を処理すると、CPU201は基準プロジェクタの確認処理を終了する。この場合、処理の戻り値は「処理終了」である。
なお、自動位置合わせ処理を実行してよいか否かについてのユーザへの問い合わせは、図15に示したダイアログメッセージを用いたものに限らない。また、S1307の終了後に、S1305で投写させたパターン画像の投写を終了させるようにしてもよい。
基準プロジェクタの確認処理により、基準プロジェクタの投写領域(または投写画像)に他のプロジェクタの投写領域(または投写画像)を合わせるための自動位置合わせ処理の実行前に、基準プロジェクタ以外のプロジェクタのキーストーン補正を解除する。そのため、厳密に投写位置を定めるために行った基準プロジェクタのキーストーン補正が解除されることによる、誤った投写位置への位置合わせや、基準プロジェクタに対する再度のキーストーン補正の手間を省くことができる。一方、4点指定調整や自動形状決定など、基準プロジェクタが設定されない自動位置合わせ処理を行う場合には、自動位置合わせ処理の実行前に、位置合わせの対象となる全てのプロジェクタのキーストーン補正を解除する。そのため、元画像に対するキーストーン補正量もしくは補正回数を最小限に抑えることができ、補正後の投写用画像の画質、ひいては投写画像の画質の劣化を抑制することができる。
また、自動位置合わせ処理の実行前に、基準プロジェクタの投写領域を表すテストパターンを投写させ、基準プロジェクタの設定をユーザに確認させるようにした。そのため、例えば基準プロジェクタが自動設定された場合など、ユーザの意図と異なるプロジェクタを基準プロジェクタとした位置合わせ処理が実行されることを防止できる。また、自動位置合わせ処理を開始する前に、意図した基準プロジェクタが設定されていることを確認することができる。
図13に戻って、S602でCPU201は、基準プロジェクタの確認処理の結果(戻り値)が、「処理開始」であるか「処理終了」であるかを判定し、「処理開始」と判定されれば処理をS603に進め、「処理終了」と判定されれば位置合わせ処理を終了する。このように、「基準プロジェクタに合わせる」位置合わせ処理は、現在の基準プロジェクタをユーザが承認しない場合には実行されない。
S603でCPU201は、実体的な自動位置合わせ処理(調整処理)を開始する。CPU201は、調整対象のプロジェクタ(基準プロジェクタがある場合はそれも含む)の全てについて、調整用テストパターンの投写および撮影を行ったか否かを判定し、行ったと判定されればS606に、判定されなければS604に、それぞれ処理を進める。
S604でCPU201は、調整対象のプロジェクタの1つに対し、位置合わせ用のテストパターンを投写させる。上述の通り、テストパターンの投写はネットワークIF206通じて送信するコマンドを用いて指示もよいし、映像出力部207および映像分配器300を通じて映像信号を供給することによって実現してもよい。なお、テストパターンを投写しているプロジェクタの投写領域を投写面の撮影画像から認識できるよう、CPU201は、テストパターンを投写させるプロジェクタ以外のプロジェクタに対して黒画像を投写させるか、投写をオフするコマンドを送信する。位置合わせ用のテストパターンは全てのプロジェクタに共通であってもなくてもよい。例えば、プロジェクタの設置位置や、マルチスクリーン投写におけるプロジェクタの投写位置などを考慮してテストパターンを異ならせてもよい。
S605でCPU201は、通信部208を通じて、位置合わせに用いる撮像装置400に対して撮影を指示するコマンドを送信する。撮像装置400はコマンドを受信すると撮影を行い、得られた画像データをPC200に送信する。なお、必要であれば、画像データをPC200に送信させるためのコマンドを別途CPU201から撮像装置400に送信してもよい。CPU201は受信した画像データをRAM202に格納する。
S606で認識手段としてのCPU201はRAM202に格納した画像データから、テストパターンを投写中のプロジェクタの投写領域の頂点とその座標を認識する。そして、制御手段としてのCPU201は、テストパターンを投写中のプロジェクタについてのキーストーン補正量を、自動位置合わせモードの設定に応じた方法で決定する。
例えば、CPU201は、スタック投写用の自動位置合わせ処理の場合は以下の様にキーストーン補正量を決定する。「4点指定調整」の場合、CPU201は、ユーザが指定した4頂点の座標に投写領域の頂点の座標を合わせるためのキーストーン補正量を決定する。また、「自動形状決定」の場合であれば、CPU201は、全てのプロジェクタでキーストーン補正可能な範囲に含まれる4頂点の座標を決定し、その座標に投写領域の頂点を合わせるためのキーストーン補正量を決定する。「基準プロジェクタに合わせる」の場合、CPU201は、基準プロジェクタに関しては投写領域の4頂点とその座標の認識を行い、キーストーン補正量は決定しない。基準プロジェクタ以外のプロジェクタについては、認識した投写領域の4頂点の座標を、基準プロジェクタの投写領域の4頂点の座標に合わせるためのキーストーン補正量を決定する。なお、キーストーン補正量は公知の方法で決定することができること、本発明はキーストーン補正量の決定方法には依存しないことから、決定方法の詳細については説明を省略する。
S607でCPU201は、ネットワークIF206を通じて、各プロジェクタ100に対して、キーストーン補正の適用を指示するコマンドを送信する。このコマンドは送信先のプロジェクタについて決定した、各頂点のキーストーン補正量を含む。なお、「基準プロジェクタに合わせる」場合、CPU201は基準プロジェクタに対してはキーストーン補正の適用を指示するコマンドを送信しない。
コマンドを受信したプロジェクタ100のCPU101は、コマンドからキーストーン補正量を抽出し、投写用画像に対してキーストーン補正を適用するように画像処理部109に指示する。
本実施形態では、基準プロジェクタの投写領域に他のプロジェクタの投写領域を合わせるための自動位置合わせ処理を行う場合、投写領域を認識するための撮影を行う前に、基準プロジェクタ以外のプロジェクタだけキーストーン補正を解除するようにした。そのため、厳密に投写位置を定めるために行った基準プロジェクタのキーストーン補正が解除されることによる、誤った投写位置への位置合わせや、基準プロジェクタに対する再度のキーストーン補正の手間を省くことができる。
また、本実施形態では、テスト撮影の目的に応じて適切なテスト撮影が実行されるように投写するプロジェクタや投写のタイミングを制御するようにした。そのため、ユーザは、テスト撮影の目的を指定して実行を指示するだけで適切なテスト撮影を実行することができ、手間を大幅に省くことができる。
[その他の実施形態]
上述の実施形態では、位置合わせ時に用いるテストパターンがプロジェクタに共通でない場合を想定して、個々のプロジェクタについて別個に撮影および撮影条件を決定した。しかし、全プロジェクタで同じテストパターンを用いる場合に、撮影条件を自動設定するためのテスト撮影を行う場合には、代表的に1つのプロジェクタに対してだけ撮影を行い、決定した撮影条件を全てのプロジェクタに適用するようにしても良い。また、上述の実施形態では、プロジェクタが適用する幾何補正として、台形歪みを補正するキーストーン補正についてのみ説明したが、樽型歪みや糸巻き型歪みを補正するための幾何補正が適用される場合についてもキーストーン補正と同様に扱うことができる。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又はコンピュータ読み取り可能な記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。