(57)【要約】【課題】立体映像上で視差を有するカーソルを操作可能な立体映像表示装置においてカーソルを移動させた場合にユーザがカーソルを見失うことを極力防ぐ。【解決手段】視差を有する画像の組からなる立体映像と、ユーザの操作入力に応じて移動するカーソル画像を立体視可能なように生成し、立体映像に合成して表示させることが可能な立体映像表示装置は、カーソル画像が立体映像に合成されて表示されている位置における立体映像の視差量を取得するとともに、カーソル画像の移動速度を算出する。そして、算出された移動速度に基づいてカーソル画像が移動中か否かを判定し、移動中と判定された場合には、カーソル画像の視差量を一定の所定値としてカーソル画像を生成する。またカーソル画像が移動中でないと判定された場合は、カーソル画像の視差量を、上記取得された立体映像の視差量としてカーソル画像を生成する。【選択図】  図６
2011134295.tif 000002
【特許請求の範囲】
【請求項１】
視差を有する画像の組からなる立体映像に、ユーザの操作入力に応じて移動するカーソル画像を合成して表示させることが可能な立体映像表示装置であって、
前記カーソル画像を生成する生成手段と、
前記生成手段により生成された前記カーソル画像が合成されて表示される位置における立体映像の視差量を取得する取得手段と、
前記カーソル画像が合成されて表示される位置における前記カーソル画像の移動速度を検出する検出手段と、
前記検出手段により検出された前記カーソル画像の移動速度に基づいて、前記カーソル画像が移動しているか否かを判定する判定手段と、を有し、
前記判定手段により前記カーソル画像が移動していると判定された場合、前記生成手段は前記カーソル画像の視差量を一定の所定値として前記カーソル画像を生成し、前記判定手段により前記カーソル画像が移動していないと判定された場合、前記生成手段は前記カーソル画像の視差量を、前記取得手段により取得された立体映像の視差量に基づいた視差量とすることを特徴とする立体映像表示装置。
【請求項２】
前記判定手段により前記カーソル画像が移動していると判定された場合、前記生成手段は前記一定の所定値を前記取得手段により取得された前記立体映像の視差量に基づいて決定することを特徴とする請求項１に記載の立体映像表示装置。
【請求項３】
前記判定手段により前記カーソル画像が移動していると判定された場合、前記生成手段は前記カーソル画像の視差量をゼロとすることを特徴とする請求項１に記載の立体映像表示装置。
【請求項４】
前記判定手段により前記カーソル画像が移動していないと判定された後に前記カーソル画像が移動していると判定された場合、前記生成手段は、前記判定手段により前記カーソル画像が移動していないと判定されていたときに生成されたカーソル画像の視差量を前記一定の所定値として用いて、移動中の前記カーソル画像を生成することを特徴とする請求項１に記載の立体映像表示装置。
【請求項５】
前記検出手段は、前記カーソル画像の移動速度と移動方向とを検出し、
前記立体映像表示装置は前記検出手段により検出された前記カーソル画像の移動速度と移動方向とに基づいて前記カーソル画像の移動先位置を予測する予測手段を更に有し、
前記取得手段は、前記予測手段で予測された前記カーソル画像の移動先位置の立体映像の視差量を取得し、
前記生成手段は、前記カーソル画像が合成される前記立体映像の視差量と前記予測された移動先位置の前記立体映像の視差量との差に基づいて前記カーソル画像の形状を変更することを特徴とする請求項１乃至４のいずれか１項に記載の立体映像表示装置。
【請求項６】
前記カーソル画像が特定の方向を指し示す形状を有し、前記生成手段は、前記カーソル画像が前記予測手段により予測された移動先位置の前記立体映像を指し示す形状の画像とすることを特徴とする請求項５に記載の立体映像表示装置。
【請求項７】
視差を有する画像の組からなる立体映像に、ユーザの操作入力に応じて移動するカーソル画像を合成して表示させることが可能な立体映像表示装置によるカーソル表示方法であって、
生成手段が、前記カーソル画像を生成する生成工程と、
取得手段が、前記生成手段により生成された前記カーソル画像が合成されて表示される位置における立体映像の視差量を取得する取得工程と、
検出手段が、前記カーソル画像が合成されて表示される位置における前記カーソル画像の移動速度を検出する検出工程と、
判定手段が、前記検出工程で検出された前記カーソル画像の移動速度に基づいて、前記カーソル画像が移動しているか否かを判定する判定工程と、を有し、
前記判定工程で前記カーソル画像が移動していると判定された場合、前記生成工程では前記カーソル画像の視差量を一定の所定値として前記カーソル画像を生成し、前記判定工程で前記カーソル画像が移動していないと判定された場合、前記生成工程では前記カーソル画像の視差量を、前記取得手段により取得された立体映像の視差量に基づいた視差量とすることを特徴とするカーソル表示方法。
【請求項８】
請求項７に記載されたカーソル表示方法の各工程をコンピュータに実行させるプログラム。
【請求項９】
請求項７に記載されたカーソル表示方法の各工程をコンピュータに実行させるプログラムを格納したコンピュータで読み取りが可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、立体映像表示装置およびカーソル表示方法に関する。
【背景技術】
【０００２】
近年、デジタル技術の進歩に伴い、３次元映像製作環境が整備され、３次元（以下、３Ｄ）放送が開始されている。３Ｄ放送を受信し表示する立体映像表示装置では、表示パネル上に偏向特性を有するフィルムを貼り、左目用、右目用映像をインターレース表示する。観察者は、偏向メガネを通して、左目用表示ラインを左目により、右目用表示ラインを右目により観察することで、立体的に映像を観察することができる。また、左目用、右目用の映像を交互に表示し、液晶シャッターを有するメガネを使用して左目用、右目用の映像をそれぞれ観察者の左目、右目のみに入るように制御することにより、観察者によって立体的に見えるよう構成された立体表示装置も存在する。
【０００３】
一方、高度衛星デジタル放送規格において、従来の十字キーを用いた押しボタン型のリモコンキーによる操作以外に、例えばマウスのような入力デバイスを用いて、カーソル操作する方法が検討されている。この場合、ユーザは、カーソル操作により映像中のオブジェクトを指し示すことが可能である。しかし、３Ｄ放送のような立体映像に対しては、２次元平面のカーソル画像を単に重畳表示しただけでは、カーソルがどのオブジェクトを指し示しているのか分かり難いという課題がある。
【０００４】
特許文献１には、立体映像上でカーソル表示する際に、映像と同じ視差量をカーソルに付加することにより、立体映像上においても、どのオブジェクトを指し示しているのか分かりやすくする技術が記載されている。また、特許文献２では、立体表示されるオブジェクトとカーソルの重なりを判断し、重なりがある場合には、カーソルが前記オブジェクト以上に手前側に立体視されるように表示することが記載されている。特許文献２も、カーソルがどのオブジェクトを指し示しているのか分かりやすく表示することを課題としたものである。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−３２６９４７号公報
【特許文献２】特開２００４−３５４５４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１、２に記載の技術は、常にカーソル位置にある立体映像の視差量をカーソル画像に適用しているため、カーソルの移動中にカーソルがユーザの意図しない動きをしてしまうことがあった。図１１は、従来技術における、カーソルの移動時の軌跡を説明する図である。ユーザは、視差量０（Ｚ＝０）のクロスポイント面１３０１に対して手前方向に飛び出した面１３０２と、奥行き方向に引っ込んだ面１３０３を認識できる。この状態で、ユーザがマウスを操作してカーソルを球オブジェクト１３０４から球オブジェクト１３０５へ移動させようとすると、移動軌跡１３０６に示すように、マウスの横スライド操作に対して、カーソルは奥行き方向であるＺ軸に対しても移動する。カーソル位置にある立体映像の視差量をカーソル画像に適用しているためである。その結果、ユーザにとっては操作意図に反した表示となり、カーソルを見失ってしまうという課題があった。
【０００７】
本発明は、上述した課題に鑑みてなされたものであり、立体映像上で視差を有するカーソルを操作可能な立体映像表示装置においてカーソルを移動させた場合に、ユーザがカーソルを見失うことを極力防ぐことを目的とする。
【課題を解決するための手段】
【０００８】
上記の目的を達成するための本発明の一態様による立体映像表示装置は以下の構成を有する。すなわち、視差を有する画像の組からなる立体映像に、ユーザの操作入力に応じて移動するカーソル画像を合成して表示させることが可能な立体映像表示装置であって、前記カーソル画像を生成する生成手段と、前記生成手段により生成された前記カーソル画像が合成されて表示される位置における立体映像の視差量を取得する取得手段と、前記カーソル画像が合成されて表示される位置における前記カーソル画像の移動速度を検出する検出手段と、前記検出手段により検出された前記カーソル画像の移動速度に基づいて、前記カーソル画像が移動しているか否かを判定する判定手段と、を有し、前記判定手段により前記カーソル画像が移動していると判定された場合、前記生成手段は前記カーソル画像の視差量を一定の所定値として前記カーソル画像を生成し、前記判定手段により前記カーソル画像が移動していないと判定された場合、前記生成手段は前記カーソル画像の視差量を、前記取得手段により取得された立体映像の視差量に基づいた視差量とすることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、立体映像上で視差を有するカーソルを操作可能な立体映像表示装置においてカーソルを移動させた場合に、ユーザがカーソルを見失うことを極力防ぐことができる。
【図面の簡単な説明】
【００１０】
【図１】実施形態による立体映像観察システムの構成を示す図。
【図２】実施形態に係る放送受信装置の構成例を示すブロック図。
【図３】第１実施形態に係るデータフローを説明する図。
【図４】実施形態に係るカーソル画像の生成処理を説明するフローチャート。
【図５】カーソル視差量決定動作を説明する図。
【図６】第１実施形態に係るカーソル移動軌跡を示す図。
【図７】第２実施形態に係るデータフローを説明する図。
【図８】ユーザが観察する立体映像を真上から見た場合の模式図。
【図９】第２実施形態に係るカーソル移動軌跡を示した図。
【図１０】カーソルの向きを切替えた際の表示例を説明した図。
【図１１】従来技術における、カーソルの移動時軌跡を説明する図。
【発明を実施するための形態】
【００１１】
以下、図面を参照して、本発明を実施するための形態を例示的に詳しく説明する。ただし、実施形態に記載されている構成部品の機能、相対配置などは特定的な記載がない限り、本発明の範囲をそれらのみに限定する趣旨のものではない。また、以下の説明で一度説明した構成や部品についての機能、形状などは特に改めて記載しない限り初めの説明と同様のものとする。
【００１２】
［第１実施形態］
図１は、本発明を適用可能な立体映像観察システムの構成を示す概略図である。放送受信装置１００、表示パネル１０１及びマウス１０２を含んで構成される立体映像表示装置と、立体観察用の専用メガネ１０３とにより本実施形態の立体映像観察システムが構成される。なお、マウス１０２は、操作入力部としてポインティングデバイスを適用した場合の一例である。立体映像表示におけるカーソルの操作が可能な操作入力部はこのような例示に限られるものではなく、トラックボール、座標入力装置、十字キーなど種々の構成を採用することができる。
【００１３】
放送受信装置１００は、本実施形態による立体映像観察システムにおける放送受信機能を司る装置である。放送受信装置１００には、例えば、ＵＳＢ規格に準拠した接続線を介してマウス１０２が接続される。表示パネル１０１は放送受信装置１００から出力される映像を受信して表示するものである。表示パネルは液晶方式、プラズマ方式などの方式によらず、適用することが可能である。なお、表示パネル１０１上には偏光フィルタ（不図示）が貼り付けられており、視差のある映像がそれぞれ異なる振動方向の光で表示される。表示パネル１０１上に表示された映像をそれぞれ異なる方向の偏光フィルタを有する専用メガネ１０３を介して観察することで、ユーザは表示パネル１０１上の映像を３Ｄ映像として認識することができる。
【００１４】
図２は、第１実施形態に係る放送受信装置１００の概略構成を示すブロック図である。なお、カーソル画像切替部７０１は第２実施形態で用いられる構成であり、第１実施形態では省略可能である。
【００１５】
図２において、ＣＰＵ２０１はＲＯＭ２０２に格納されたプログラムに従って放送受信装置の制御を司る。ＲＡＭ２０３は揮発性メモリであり、ＣＰＵ２０１のワークメモリとして使用されると同時に、各種データの一時記憶エリアとしても使用される。チューナ部２０４はアンテナ２０５から受信した放送波を復調し、ビデオ・オーディオのベースバンドデータを出力する。デマルチプレクサ部２０６はチューナ部２０４から受信したデータのフレーム分解を行い、ビデオデータ、オーディオデータ、及び番組情報データを分離する。デマルチプレクサ部２０６で分離されたビデオデータおよびオーディオデータは、デコーダ部２０７に入力される。
【００１６】
デコーダ部２０７は、ＭＰＥＧ２符号化されたビデオデータを復号化処理し、映像コンポーネント種別が３Ｄ映像の場合は３Ｄ映像生成部２１０へ、２Ｄ映像の場合は映像処理部２１２へビデオデータを出力する。映像コンポーネント種別については後述する。また、デコーダ部２０７は、ＭＰＥＧ２−ＡＡＣ符号化されたオーディオデータを復号化処理してリニアＰＣＭ形式に変換し音声処理部２０８に出力する。
【００１７】
デマルチプレクサ部２０６で分離された番組情報データは、映像判定部２０９に入力される。番組情報データは、（社）電波産業会（ＡＲＩＢ）における標準規格「デジタル放送に使用する番組配列情報」等で規定されるデータ構造で伝送される。このデータ構造には、主な構成データとして、ＳＤＴ（Service Description Table）やＥＩＴ（Event Information Table）が含まれる。ここで、ＳＤＴは編成チャンネルに関する情報を伝送するためのテーブルであり、ＥＩＴは番組の名称や放送時間、伝送されるコンポーネント種別など、番組に関する情報を伝送するためのテーブルである。本実施形態においては、これらのテーブルのうち、ＥＩＴに挿入されるコンポーネント種別（component_type）を用いてビデオデータのフォーマットを取得する。また、本実施形態では、現在規格化されている映像コンポーネント種別にフォーマット情報として３Ｄ映像を追加定義する。
【００１８】
映像判定部２０９は、復号処理中のビデオデータのフォーマットが２Ｄ映像であるか３Ｄ映像であるかを前述のコンポーネント情報に基づいて判定し、その結果を３Ｄ映像生成部へ通知する。３Ｄ映像生成部２１０は、映像判定部２０９から映像フォーマットの通知を受信し、それが３Ｄ映像である場合には立体視可能にするべく、左目用、右目用の視差画像をオーバーラップさせる立体視化処理を施す。例えば、表示パネルの奇数ラインが左目用映像、偶数ラインが右目用映像となるフレーム画像を生成する。そして、生成したフレーム画像を映像処理部２１２へ入力する。
【００１９】
視差測定部２１１は、３Ｄ映像である場合に、カーソル情報取得部２１３から取得したカーソル位置に対応する映像の視差量を左目用、右目用の視差画像から測定し、カーソル画像生成部２１４へ通知する。カーソル画像生成部２１４は、カーソル情報取得部２１３から取得したカーソルの移動状態と、視差測定部２１１から通知された視差に基づきカーソル画像を生成し、映像処理部２１２へ入力する。映像処理部２１２は、映像信号に対してγ処理、スケーリング処理等の高画質化処理を施す。そして、映像処理部２１２は、生成したカーソル画像をカーソル情報取得部２１３から取得した位置に重畳して合成した後、例えばＬＶＤＳ信号等、表示パネルに合わせた映像データに変換して出力する。
【００２０】
音声処理部２０８は、Ｄ／Ａ変換処理を施し、音声出力部２１５に出力する。リモコン２１６は、ユーザ操作に応じて制御信号を赤外線信号として送信する。マウス１０２は、ユーザ操作に応じて制御信号、および、割り込み信号を、接続線を介して外部インタフェース部２１８へ送信する。ＣＰＵ２０１は、リモコン受光部２１７で受光された赤外線信号や、外部インタフェース部２１８から入力された割り込み信号から、放送受信装置１００を制御するための各種コマンドや制御信号を生成し、出力する。なお、上述した各部についてその一部もしくは全てをＣＰＵ２０１がプログラムを実行することにより実現するようにしてよい。
【００２１】
図３の（ａ）は、視差測定部２１１、カーソル情報取得部２１３、カーソル画像生成部２１４のデータフローを説明する図である。前述の３Ｄ映像生成部２１０は、３Ｄ映像を構成する左目用の視差画像（Ｌ画像）を測定ブロック設定部３０１、右目用画像（Ｒ画像）を探索範囲設定部３０２にそれぞれ入力する。もちろん、Ｌ画像を探索範囲設定部３０２に入力し、Ｒ画像を測定ブロック設定部３０１に入力するようにしても良い。
【００２２】
測定ブロック設定部３０１では、図３の（ｂ）に示すように、カーソル情報取得部２１３により取得した現在のカーソル位置３５０に基づいて左目用の視差画像上に所定数の測定ブロック３５１を設定し、該測定ブロックの画像データを基準データとして出力する。本実施形態では、例えば、カーソル位置３５０を中心とした１つの測定ブロック３５１（Ｍ×Ｎ画素（Ｍ＝Ｎ＝４））を設定するものとする。
【００２３】
探索範囲設定部３０２は、右目用画像上に測定ブロック３５１と同じ座標（x,y）を中心とする探索範囲３５２と、その探索範囲３５２内で測定ブロック３５１と同じ大きさの参照ブロック３５３を設定する。そして、探索範囲設定部３０２は、参照ブロック３５３の画像データを参照データとして出力する。本実施形態では、例えば、測定ブロック３５１に対し、上下左右の一方向にｎ画素（上下方向の場合は１≦ｎ＜Ｍ、左右方向の場合は１≦ｎ＜Ｎ（本実施形態では１≦ｎ＜４））シフトしたブロックを参照ブロック３５３とする。従って、探索範囲３５２の大きさは、（３Ｍ−２）画素×（３Ｎ−２）画素となる。また、参照ブロック３５３は、１つの測定ブロック３５１に対して複数個設定されることになる。
【００２４】
視差量算出部３０３は、入力された基準データと参照データに対してマッチング演算処理を行い、基準データに対する視差量（Δx,Δy）を算出する。すなわち、視差量算出部３０３は、探索範囲３５２内で測定ブロック３５１とマッチング度の最も高い参照ブロック３５３を検出し、測定ブロック３５１と検出された参照ブロック３５３の位置関係によりカーソル位置３５０における映像の視差量を得る。カーソル画像生成部２１４は、カーソル情報取得部２１３により取得したカーソルの移動状態、視差測定部２１１により取得した視差量、および後述するプログラム処理の結果に基づき、視差量を有するカーソル画像を生成して出力する。
【００２５】
図４は、上述した本実施形態におけるカーソル画像生成の動作を説明するフローチャートである。ＣＰＵ２０１は、ユーザのマウス１０２に対する操作による割り込み信号発生時、および、予め定めてある任意のポーリング周期で図４のフローチャートに示す処理を実行する。本実施形態では、例えば、５０msec周期のポーリング処理を実行する。なお、ユーザがマウス１０２を操作してカーソル移動した場合、外部インタフェース部２１８が割り込み要求をＣＰＵ２０１へ通知する。ＣＰＵ２０１は、割り込み要求を受け付けたとき、または、各ポーリング周期において、カーソルイベント処理用のプログラムをＲＯＭ２０２から読み出し実行する。カーソルイベント処理用のプログラム（以下、ユーザプログラム）が実行されると、ＣＰＵ２０１は、視差測定部２１１、カーソル情報取得部２１３、カーソル画像生成部２１４によりカーソル表示を制御する。
【００２６】
まず、カーソル情報取得部２１３は、現在のカーソル位置（x,y）を取得する（ステップＳ４０１）。なお、高度衛星デジタル放送規格におけるＡＲＩＢ−Ｊアプリケーションでは、ユーザプログラムは、ＨＩＤ（HumanInterface Device）Listenerインタフェースをインプリメントすることで、HIDEventクラスを用いてカーソルイベントの詳細情報を取得することができる。ユーザプログラムは、HIDEventクラスのメソッドであるgetData()を利用してマウスから受信したデータを取得し、カーソル画像が合成される現在のカーソル位置を求める。なお、カーソル情報取得部２１３は、取得したカーソル位置（x,y）を視差測定部２１１とカーソル画像生成部２１４に通知する。
【００２７】
次に、カーソル情報取得部２１３は、取得したカーソル位置から、カーソル画像が合成されるカーソル位置でのカーソル移動速度を求める（ステップＳ４０２）。ここで、カーソル画像が合成されるカーソル位置でのカーソル移動速度とは、前回の割り込み、もしくはポーリングで取得したカーソル位置とカーソル画像が合成される現在のカーソル位置、および、カーソル位置取得時の時間差分を用いて算出されるとする。そして、カーソル移動速度が、ユーザプログラム内で予め定めている閾値以上になると、カーソル情報取得部２１３はカーソル移動中であると判断し、「カーソル移動」イベントを発生する（ステップＳ４０３（ＹＥＳ），Ｓ４０４）。他方、カーソル速度が、予め定めている閾値未満になると、カーソル情報取得部２１３はカーソル停止中もしくは停止状態に近いと判断し、「カーソル停止」イベントを発生する（Ｓ４０３（ＮＯ），ステップＳ４０５）。なお、上記の閾値を０とすると、上記イベントは、単純なカーソル移動開始、停止に対応することになる。
【００２８】
カーソル画像生成部２１４は、前述のイベントを受信すると、図５に示す状態遷移表に基づいて、カーソルに適用する視差量を決定し（ステップＳ４０６）、プログラムの内部状態を変更する（ステップＳ４０７）。そして、カーソル画像生成部２１４は、前述の決定結果に従ってカーソル画像を生成する（ステップＳ４０８）。即ち、カーソル画像生成部２１４は、カーソル表示の視差量を変更すると決定された場合には視差測定部２１１により測定された当該カーソル位置（x,y）における映像の視差量に追従するようにカーソル表示の視差量を変更する。他方、カーソル表示の視差量を変更しないように決定された場合には、カーソル表示の視差量を変更せず、それまでの視差量を用いてカーソル表示を行う。なお、カーソル画像生成部２１４が生成するカーソルの表示位置はカーソル情報取得部２１３から受信した現在のカーソル位置（x,y）である。
【００２９】
図５は、図４のステップＳ４０６における、カーソル視差量決定動作を説明する図である。ユーザプログラムは、カーソルの視差量に対する処理動作を、図５の状態遷移表により定義している。縦軸はカーソルの現在の状態を示し、横軸はユーザプログラム内部で発生したイベントを示す。交差する箇所の各マスは、各状態において、前述のイベントが発生した場合の処理動作と遷移先を示している。
【００３０】
まずは図５（ａ）の場合について説明する。図５（ａ）において、ユーザプログラムの現在の内部状態を「停止」とする。このとき、「カーソル移動」イベントが発生すると、ユーザプログラムは「カーソル移動」イベントが発生したカーソル速度を算出した時の映像視差量に基づきカーソル視差量を更新する。本動作により、ユーザプログラムは、後述するカーソル移動処理直前のカーソル視差量の最終更新を行う。そして、ユーザプログラムの内部状態を「移動」に変更する（図５（ａ）の動作５０１）。
【００３１】
ユーザプログラムの現在の内部状態が「移動」において、「カーソル移動」イベントが発生すると、ユーザプログラムはカーソル視差量を更新しない（動作５０２）。つまり、動作５０１において、「カーソル移動」イベントが発生するカーソル速度を算出した時の映像視差量に基づきカーソル視差量を更新するので、カーソル移動中のカーソルの視差量は、「カーソル移動」イベントが発生した時に更新した視差量が保持される。動作５０２では、ユーザプログラムの内部状態は「移動」のままとなる。また、ユーザプログラムの現在の内部状態が「移動」において、「カーソル停止」イベントが発生すると、ユーザプログラムは現在の映像視差量を最終的なカーソル視差量として、段階的に視差量を更新する。そして、ユーザプログラムの内部状態は「停止中」に変更される（動作５０５）。
【００３２】
ユーザプログラムの現在の内部状態が「停止中」において、「カーソル停止」イベントが発生すると、ユーザプログラムは、動作５０５と同様にして段階的にカーソル視差量を更新する（動作５０６）。そして、前述の通りカーソル視差量を段階的に更新している間は内部状態を「停止中」のまま継続し、前述の最終的なカーソル視差量と段階的に更新した結果の視差量が一致すると、ユーザプログラムの内部状態を「停止」に変更する（動作５０６）。本処理により、カーソル停止後、急にカーソルが飛び出したり、奥行き方向へ移動したりすることによって、ユーザがカーソルを見失う問題を防ぐ効果がある。
【００３３】
ユーザプログラムの現在の内部状態が「停止中」において、「カーソル移動」イベントが発生すると、ユーザプログラムは段階的な視差量更新をやめる。そして、内部状態を「移動」に変更する（動作５０３）。また、ユーザプログラムの現在の内部状態が「停止」において、「カーソル停止」イベントが発生すると、ユーザプログラムは現在の映像視差量に基づきカーソル視差量を更新する。即ち、カーソル停止状態において、カーソル画像は常に映像視差量と同じ視差量で表示される。ユーザプログラムの内部状態は「停止」のままとする（動作５０４）。
【００３４】
なお、上記説明ではユーザプログラムの内部状態が「停止」において、「カーソル移動」イベントが発生すると、「カーソル移動」イベントが発生した時の映像視差量に基づきカーソル視差量を更新するとした。これは、「カーソル移動」イベントが発生した時においてカーソルの表示の視差量を更新し、カーソル移動中はその更新後の視差量が維持されることを意味する。ここで図５（ｂ）に示すように、図５（ａ）の動作５０１に変えて動作５１１の処理を行ってもよい。図５（ｂ）の動作５１１では、ユーザプログラムの内部状態が「停止」のときに「カーソル移動」イベントが発生した場合、カーソルの視差量は、「カーソル移動」イベントが発生する直前に発生した「カーソル停止」イベントの時に更新したカーソル視差量のまま更新しない。現在のカーソル位置と前回のカーソル位置との差分によりカーソル速度が算出されるため、「カーソル移動」イベントが発生する直前に発生した「カーソル停止」イベントの時にカーソルの移動が開始されているとみなすことができる。つまり、図５（ｂ）の場合、カーソルが移動を開始した時の視差量のままカーソルを表示することになる。図５（ｂ）の動作５１１では図５（ａ）の動作５０１と同様に、ユーザプログラムの内部状態を「移動」に変更する。図５（ｂ）の動作５０２乃至動作５０６は、図５（ａ）の動作５０２乃至動作５０６と同様である。このように、図５（ａ）及び図５（ｂ）のいずれも、カーソル移動中においては、カーソル表示の視差量は変化しない。なお、図５（ａ）の動作５０１において、「カーソル移動」イベントの発生時にカーソル表示の視差量を０（ゼロ）に更新し、カーソル移動中はこれを維持するようにしても良い。重要なことは、カーソル移動中の視差量の変更を禁止し、一定の所定値に固定することであり、これにより本実施形態の効果（カーソルの移動中にカーソルを見失うことを低減すること）が得られる。
【００３５】
図６は、第１実施形態によるカーソル移動時のカーソル移動軌跡を示した図である。ユーザがマウス１０２を横方向にスライド操作した場合には、スライド開始時の視差量にカーソル６００の表示の視差量が固定され、カーソル６００は横方向に移動する。従って、カーソル６００は移動軌跡６０１上を移動するようになる。ユーザが操作を停止すると、カーソル位置の映像オブジェクト（図６の例では球オブジェクト１３０５）の視差量で重畳表示されていることが確認できる。
【００３６】
以上の構成によれば、立体映像上におけるカーソル表示において、カーソルが所定の速度以上で移動している間はカーソルの表示に適用される視差量が固定される。また、カーソルの移動速度が所定の速度未満ではカーソル位置にある立体映像の視差量に追従するようにカーソル表示に視差量が適用される。その結果、カーソル移動中は、視差量が変化しないので、ユーザのスライド操作に応じたカーソル移動動作となり、カーソルを見失う問題を防ぐ効果がある。さらに、カーソル移動停止後、カーソルに適用する視差量を段階的に更新するので、カーソルの視差が急に変化することによってカーソルを見失う問題を極力防ぐ効果がある。また、カーソル停止もしくは選択時には映像オブジェクトと同じ視差をカーソルに付加するようにしたので、従来通り、カーソルがどのオブジェクトを指し示しているのか分かりやすく表示できる。
【００３７】
［第２実施形態］
次に、本発明の第２実施形態における処理について説明する。第２実施形態における立体映像観察システムの全体の構成は第１実施形態（図１、図２）と同様である。なお、第２実施形態の説明において、上述した第１実施形態と共通する部分については、適宜、説明を省略する。
【００３８】
第２実施形態では、第１実施形態の構成（図３）にカーソル画像切替部７０１が加わる（図７）。また、第２実施系のカーソル情報取得部２１３は、現在のカーソル位置を取得する処理に加え、カーソルの移動方向、および、移動速度から次の割り込みタイミングでのカーソルの移動先位置（以下、次のカーソル位置と記載する）を予測する機能を備える。更に、第２実施形態の視差測定部２１１は、現在のカーソル位置と、次のカーソル位置それぞれについて、該カーソル位置に対応する映像の視差量を測定する。カーソル画像切替部７０１は、カーソルの移動開始位置における映像の視差量と、次のカーソル位置における映像の視差量とから位置関係を比較、判断し、表示すべきカーソル画像を選択して、カーソル画像生成部２１４に設定する。
【００３９】
次に、図７および図８を用いて第２実施形態によるカーソル画像生成処理について説明する。図７は、第２実施形態におけるカーソル画像生成処理に係り、視差測定部２１１、カーソル情報取得部２１３、カーソル画像生成部２１４、カーソル画像切替部７０１の間のデータフローを説明する図である。また、図８は、ユーザが観察する立体映像を真上から見た場合のイメージを模式的に示した図である。
【００４０】
３Ｄ映像生成部２１０は、３Ｄ映像を構成する左目用の視差画像（Ｌ画像）を視差測定部２１１の測定ブロック設定部３０１に、右目用の画像（Ｒ画像）を探索範囲設定部３０２にそれぞれ入力する。もちろん、Ｌ画像を探索範囲設定部３０２に入力し、Ｒ画像を測定ブロック設定部３０１に入力するようにしても良い。カーソル情報取得部２１３は、現在のカーソル位置と次のカーソル位置を測定ブロック設定部３０１、および、探索範囲設定部３０２に通知する。
【００４１】
以下、カーソル位置の予測について、単純化したモデルについて図８を参照して概略の説明を行う。例えば、カーソルの移動開始位置を（x0,y0）として（図８の位置９０１）、最初の割り込みから次の割り込みまでの時間の間に（x1,y1）までカーソルを移動させたとする（図８の位置９０２）。この場合、現在のカーソル位置（x1,y1）に対し、次の割り込み時点でのカーソル位置（x2,y2）は、（x0,y0）から（x1,y1）から求められる座標平面上でのベクトル方向に、当該座標間の距離だけ進んだ位置であると予測する（図８の位置９０３）。より一般化して言えば、たとえば、（x1-x0,y1-y0）の方向へ、現在の位置（x1,y1）から√（(x1-x0)2+(y1-y0)2）の距離だけ離れた位置を予測位置（x2,y2）とする。なお、カーソル位置の予測方法はこれに限られるものではない。
【００４２】
なお、カーソルが（x2,y2）まで進むと、次のカーソル位置は前回のカーソル位置(x1,y1)と現在のカーソル位置（x2,y2）とから同様にして予測する。ユーザがカーソル操作をやめて座標（x1,y1）で移動を停止した場合、次のカーソル移動開始位置（x0,y0）は（x1,y1）となる。
【００４３】
カーソル情報取得部２１３は、カーソル移動開始位置としての第１のカーソル位置（x0,y0）と、予測したカーソル位置としての第２のカーソル位置（x2,y2）を測定ブロック設定部３０１、および、探索範囲設定部３０２に入力する。
【００４４】
測定ブロック設定部３０１は、カーソル情報取得部２１３より通知された第１のカーソル位置（x0,y0）および第２のカーソル位置（x2,y2）に基づいて、左目用の視差画像上に所定数（１または複数）の測定ブロックと予測測定ブロックを設定する。そして、測定ブロック設定部３０１は、設定した測定ブロックおよび予測測定ブロック内のそれぞれの映像データを基準データとして出力する。本実施形態では、例えば、測定ブロック、及び予測測定ブロックをＭ×Ｎ画素（Ｍ＝Ｎ＝４）とする。
【００４５】
探索範囲設定部３０２では、右目用画像上に測定ブロックと同じ座標（x0,y0）を中心とする探索範囲を設定して、その探索範囲内で測定ブロックと同じ大きさの参照ブロックを設定する。同様に、探索範囲設定部３０２は、予測測定ブロック（x2,y2）を中心とする探索範囲を設定して、その探索範囲内で予測参照ブロックを設定する。そして、参照ブロック、および、予測参照ブロック内のそれぞれの映像データを参照データとして出力する。なお、本実施形態では、例えば、前記測定ブロックに対し、上下左右の一方向にｎ画素（1≦ｎ＜４）シフトしたブロックを参照ブロック、および、予測参照ブロックとする。各ブロックの詳細は、図３の（ｂ）で説明したとおりであり、ここでは詳細な説明を省略する。
【００４６】
視差量算出部３０３は、入力されたそれぞれの基準データと参照データに対してマッチング演算処理を行い、基準データに対する視差量（Δx0,Δy0）、及び予測ブロックの視差量（Δx2,Δy2）を算出する。図８の例では位置９０４の視差量が算出されることになる。カーソル画像切替部７０１は、カーソル移動開始位置の視差量と予測ブロックとの視差量の差を求める。そして、カーソル画像切替部７０１は、カーソル移動開始位置に対してカーソル移動先のオブジェクトが手前方向にあるか、もしくは、奥行き方向にあるかを判定する。
【００４７】
以上のように、本実施形態では、基準データに対する視差量（Δx0,Δy0）、および、予測ブロックの視差量（Δx2,Δy2）を比較し、予測されるカーソル位置が現在のカーソル位置から手前方向か奥行き方向か、もしくは一致するかを判定する。なお、基準データに対する視差量（Δx0,Δy0）は、カーソル移動中（カーソルが停止するまで）は変更されないので、繰り返し計算しないようにしてもよい。また、基準データに対する視差量（Δx0,Δy0）は、移動中に固定されているカーソル表示の視差量とほぼ一致するため、移動中のカーソルの視差量を上記（Δx0,Δy0）として用いても良い。なお、カーソルの表示の視差量を（Δx0,Δy0）として用いた場合、カーソルの「停止中」においてカーソルの視差量を段階的に変更する際、カーソルと映像の視差量が近づくにつれてカーソルの表示も段階的に変化するような表示を実現できる。
【００４８】
そして、カーソル画像切替部７０１は、予測されるカーソル位置が現在のカーソル位置より手前の場合は手前方向のカーソル画像、奥行き方向の場合は奥行き方向の画像、一致した場合には通常の指示形状としての横向きの画像をＲＯＭ２０２から読み出す。続けてカーソル画像生成部２１４は、前述のＲＯＭ２０２から読み出した画像に対して、第１実施形態と同様にしてカーソルの表示の視差量を決定し、カーソル画像を生成する。
【００４９】
なお、カーソル画像生成部２１４は、第１実施形態の状態遷移（図５）において、「停止中」状態にあるときにのみ、カーソル位置を予測するように処理することも可能である。この場合、ユーザのマウス操作によってカーソルが移動している最中は通常の指示形状としての横向きの画像を表示し、カーソル移動を停止すると、段階的に視差量を更新すると共に、常にオブジェクトを指し示すようなカーソル形状に変更して表示する動作となる。
【００５０】
図９は、第２実施形態によるカーソル移動軌跡の一例を示す図である。第１実施形態と同様に、ユーザがマウス１０２をスライド操作した場合には、スライド開始時の視差量に固定された状態でカーソルが横方向に移動する。そして、ユーザが操作を停止すると、カーソルの表示の視差量はカーソルの現在位置における映像の視差量に追従するように更新される。このとき、第２実施形態では、さらに、カーソル位置を予測し、現在のカーソル位置またはその直前のカーソル位置における映像の視差量と予測されたカーソル位置における映像の視差量に基づいてカーソルの表示形状を切替える。本実施形態では、例えば、カーソル画像の指し示す向きを切替えており、これにより、ユーザがマウス操作を停止した後のＺ軸方向（奥行き方向）に対するカーソル移動方向を視認することができる（図９のカーソル１００１）。
【００５１】
図１０の（ａ）および（ｂ）は、第２実施形態における、カーソルの表示形状の変更の一例を示す図であり、表示形状の変更の例としてカーソルの向きを切替えた際の表示例を説明した図である。視差量“０”のクロスポイント面を現在のカーソル位置とすると、奥行き方向および手前方向を示すカーソルの表示形状はそれぞれカーソル画像１１０１、カーソル画像１１０２のようになる。なお、カーソル画像１１０３は視差量の変化が所定値未満の場合の表示形状である。また、球オブジェクト１１２０はクロスポイント面よりも手前にあるオブジェクト、球オブジェクト１１２１はクロスポイント面よりも奥にあるオブジェクトである。図１０の（ｂ）に示すように、カーソル位置が位置１２００→位置１２０１→位置１２０２→位置１２０３のように移動して、位置１２０３で停止した場合を考える。この場合、位置１２００〜１２０３における各位置のカーソルの表示形状は、カーソル画像１１０３→カーソル画像１１０１→カーソル画像１１０２→カーソル画像１１０３のようになる。位置１２０３では、クロスポイント面よりも手前にある球オブジェクト１１２０の視差量にカーソルの表示の視差量が追従した結果、現在のカーソル表示の視差量と映像の視差量とが一致し、カーソル画像１１０３が選択されている。なお、図１０の（ａ），（ｂ）では３種類のカーソルの表示形状を示したが、より多くの表示形状を用意しておき、視差量の差の大きさに応じて更に細かくカーソル表示を切り替えるようにしても良い。
【００５２】
以上の構成によれば、立体映像上におけるカーソル表示において、カーソルが所定の速度以上で移動している間は、カーソルに適用する視差量が固定される。また、所定の速度未満ではカーソル位置にある立体映像の視差量に追従するようにカーソルの表示の視差量が変更される。そして、これに加えて、カーソルの、奥行き方向を加味した進行方向を視認できるように、予測されたカーソル位置の映像の視差量に基づいてカーソル画像が切替えて表示される。その結果、第１実施形態に加え、ユーザがカーソル移動を停止した場合の、Ｚ軸へのカーソル移動方向が予測しやすくなり、更にカーソルを見失う問題を防ぐ効果を得られる。
【００５３】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2011134295.tif 000003
【図２】
2011134295.tif 000004
【図３】
2011134295.tif 000005
【図４】
2011134295.tif 000006
【図５】
2011134295.tif 000007
【図６】
2011134295.tif 000008
【図７】
2011134295.tif 000009
【図８】
2011134295.tif 000010
【図９】
2011134295.tif 000011
【図１０】
2011134295.tif 000012
【図１１】
2011134295.tif 000013