以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加される発明の存在を否定するものではない。
請求項1に記載の表示装置は、画像を表示する表示画面が設けられた筐体を、表示画面をユーザに向けて把持しているユーザが、肩か、または、肘と手首を中心として腕を振ったときの角速度を検出する角速度検出手段(例えば、図6の角速度センサ71)と、人間の腕の長さに相当する半径と、検出された角速度との積により、半径の円の円弧上の移動距離を演算し、演算結果の移動距離に応じた量だけ、表示画面に表示された画像をスクロールさせる制御を行うスクロール制御手段(例えば、図6のCPU52)と、ユーザの手首が、ユーザ側から見て、筺体よりも外側に位置するか、または筺体よりも内側に位置するかを検出する位置検出手段(例えば、図18の圧力センサ151)とを備え、角速度検出手段は、位置検出手段においてユーザの手首が筺体よりも内側に位置すると検出された場合、表示画面からユーザ側に存在する点を中心として筺体が円弧状に移動したときの角速度を検出するとともに、位置検出手段においてユーザの手首が筺体よりも外側に位置すると検出された場合、表示画面に対してユーザ側とは反対側の表示画面より外側に存在する点を中心として筺体が円弧状に移動したときの角速度を検出し、スクロール制御手段は、位置検出手段においてユーザの手首が筺体よりも外側に位置すると検出された場合、角速度検出手段で検出された角速度の符号を反転させることを特徴とする。
請求項3に記載の表示装置は、前記人間の腕の長さに相当する半径として、前記ユーザの腕の長さを入力する入力手段をさらに備えることを特徴とする。
請求項6に記載の表示装置は、前記スクロール制御手段がスクロールを制御する画像の元画像となるコンテンツ画像をメッシュ状に区切る情報を定義する定義手段(例えば、図22のHABインタラクションモジュール217)をさらに備え、前記表示画面に表示された画像が、前記定義手段で定義されてメッシュ状に区切られた前記コンテンツ画像のどの部分かによって、処理が異なることを特徴とする。
請求項7に記載の表示装置は、前記表示画面において、前記画像を表示する表示領域を制限する表示領域制限手段(例えば、図24のHAB_crop関数)をさらに備えることを特徴とする。
請求項8に記載の表示装置は、前記筐体の加速度を検出する加速度検出手段(例えば、図6の加速度センサ72)をさらに備え、前記スクロール制御手段は、検出された前記角速度によりスクロールする方向を制御し、検出された前記加速度によりスクロール量を制御することを特徴とする。
請求項10に記載の表示制御方法は、画像を表示する表示画面が設けられた筐体を、前記表示画面をユーザに向けて把持しているユーザが、肩か、または、肘と手首を中心として腕を振ったときの角速度を検出する角速度検出ステップ(例えば、図10のステップS2)と、人間の腕の長さに相当する半径と、検出された前記角速度との積により、前記半径の円の円弧上の移動距離を演算し、演算結果の移動距離に応じた量だけ、前記表示画面に表示された画像をスクロールさせる制御を行うスクロール制御ステップ(例えば、図10のステップS3)と、前記ユーザの手首が、前記ユーザ側から見て、前記筺体よりも外側に位置するか、または前記筺体よりも内側に位置するかを検出する位置検出ステップ(例えば、図21のステップS43)とを含み、前記角速度検出ステップでは、前記位置検出ステップにおいて前記ユーザの手首が前記筺体よりも内側に位置すると検出された場合、前記表示画面から前記ユーザ側に存在する点を中心として前記筺体が円弧状に移動したときの前記角速度を検出するとともに、前記位置検出ステップにおいて前記ユーザの手首が前記筺体よりも外側に位置すると検出された場合、前記表示画面に対して前記ユーザ側とは反対側の前記表示画面より外側に存在する点を中心として前記筺体が円弧状に移動したときの前記角速度を検出し、前記スクロール制御ステップでは、前記位置検出ステップにおいて前記ユーザの手首が前記筺体よりも外側に位置すると検出された場合、前記角速度検出ステップで検出された前記角速度の符号を反転させることを特徴とする。
請求項11に記載の記録媒体のプログラム、請求項12に記載のプログラムの各ステップの具体例も、請求項10に記載の表示制御方法の各ステップの発明の実施の形態における具体例と同様である。
図1と図2は、本発明を適用した一実施の形態である表示装置1の斜視図である(第1実施の形態)。
図1の表示装置1は、表示装置1の内部に記憶してある所定の画像を画面に表示させる装置である。表示装置1は、所定の画像を表示する本体(筐体)11と、例えば、ユーザ(人間)が手で表示装置1を把持する部分であるグリップ部12とで構成される。
本体11は、板状の(薄型の)略直方体とされる。本体11を構成する各面のうち面積が最大となる2面の一方の面には、LCD13が配設されている。LCD13は、例えば、2インチ程度の画面サイズを有し、画像を表示する。LCD13が表示する画像は、本来の画像のサイズが画面サイズよりも大きい画像(高解像度の画像)の一部分の画像である。LCD13に表示される画像としては、例えば、「地図」や「キーボード」等の画像があり、これらの画像は、予め表示装置1の内部に記憶されているものである。また、LCD13が配設されている面と同一の面には、ユーザが、LCD13に表示される画像に対して所定の動作を指示するときに操作(押下)する操作ボタン14も設けられている。
なお、以下では、「地図」や「キーボード」等の画像のような、LCD13に表示するための(元画像となる)画像をコンテンツ画像、または単にコンテンツと称する。また、表示装置1(の内部)に記憶されているコンテンツ画像であって、LCD13に表示するようにユーザに操作(指定)された画像を所定画像と称する。本実施の形態において、この所定画像のサイズは、表示画面サイズよりも大きいものとし、LCD13に表示される所定画像の一部分の画像を部分画像と称する。
操作ボタン14には、3つの操作ボタン14a乃至14cがある。操作ボタン14a乃至14cは、ユーザが表示装置1に対してLCD13への所定画像の表示等の各種の指示を行うときにユーザにより操作される。
なお、操作ボタン14a乃至14cそれぞれには、その他の任意のファンクションを割り当てることができる。
ここで、以下において、操作ボタン14a乃至14c全てを意味する場合や、操作ボタン14a乃至14cのいずれのボタンで操作するようにしてもよい場合には、操作ボタン14と称する。
操作ボタン14は、本体11のなかのグリップ部12の上側に配置されている。これにより、例えば、ユーザがグリップ部12を右手で把持した場合に親指で操作ボタン14を操作できる、即ち、片手で手軽に操作することができるようになされている。また、グリップ部12にはラバー部材15および16が取り付けられている。これにより、ユーザがグリップ部12を手で把持したときに、すべり止めの効果を奏する。
本体11とグリップ部12とは、図2に示すように軸部17で回転自在に連結されている。また、例えば、本体11とグリップ部12とは、所定の角度間隔で、回転が固定されるようにすることもできる。このような構成とすることで、ユーザがグリップ部12を把持するときのグリップ部12の角度を自由に調整できるので便利であり、操作時の手首等にかかる疲労や負担を軽減できる。さらに、グリップ部12は、本体11に対して着脱可能となされている。
表示装置1は、上述したように、部分画像をLCD13に表示する。ユーザは、表示装置1自体を略上下左右方向に動かすことによって、LCD13に表示されている部分画像をスクロールさせ、所定画像を全体にわたってLCD13に表示させることができる。即ち、ユーザは、表示装置1自体を略上下左右方向に動かすことによって、LCD13の画面サイズよりサイズの大きい所定画像全体をLCD13で見ることができる。
そこで、表示装置1の上下左右の移動と、その移動によってスクロールする、LCD13(の表示画面)に表示される画像の具体的な例を、図3乃至図5を参照して説明する。なお、図3乃至図5において、対応する部分については、同一の符号を付してある。
図3において、画像31は、ユーザによってLCD13に表示するように操作(指示)された所定画像であって、キーボードの配列を示す画像(以下、キーボード配列画像31とも称する)である。ユーザがキーボード配列画像31をLCD13に表示するように操作したとき、表示装置1は、最初の表示として、キーボード配列画像31の中央部であるHキー(の表示)がLCD13の画面中央に配置されるように、キーボード配列画像31の部分画像をLCD13に表示する。このときの表示装置1の空間上の位置を、LCD13の画面中心を基準として、位置Aとする。
なお、図3において、表示装置1より外側に図示されている画像31は、表示装置1内の作業用メモリに展開されているものを、便宜的に示したものである(図4と図5も同様)。
ハイライトマーク表示32は、LCD13の画面中央に表示されているHキーを丸で囲むことにより、部分画像のなかのHキーが選択されていることを表している。例えば、ユーザは、所定の(文字)キーがハイライトマーク表示されている状態(ハイライトマーク表示32によって囲まれている状態)で、操作ボタン14を操作することにより、そのハイライトマーク表示されている文字を入力文字として表示装置1に指示し、文章を作成することができる。
次にユーザは、表示装置1を、図3に示した位置Aから図4に示すような図面左方向の位置Bになるように、所定の移動量D1だけ動かしたとする。
このとき、表示装置1のLCD13に表示される部分画像は、表示装置1の移動に従い右方向にスクロールされる。そして、位置Bにある表示装置1がLCD13に表示する部分画像は、キーボード配列画像31のなかのAキーを画面中心とする部分画像となる。
また、例えば、ユーザは、表示装置1を、図3に示した位置Aから図5に示すような図面下方向の位置Cになるように、所定の移動量D2だけ動かしたとする。
このとき、表示装置1のLCD13に表示される部分画像は、表示装置1の移動に従い上方向にスクロールされる。そして、位置Cにある表示装置1がLCD13に表示する部分画像は、キーボード配列画像31のなかのBキーを画面中心とする部分画像となる。なお、厳密に言えば、キーボード配列画像31のHキーとBキーとの配置関係によれば、LCD13に表示される部分画像が、Bキーを画面中心とする部分画像になるためには、図面左方向にも表示装置1を若干移動させる必要がある。
以上のように、ユーザは、表示装置1を略上下左右方向に移動させることにより、LCD13の画面サイズより大きなキーボード配列画像31を全体にわたって見ることができる。
また、ユーザは、表示装置1を上下左右に移動させたときでもLCD13に表示される部分画像をスクロールさせたくない場合には、例えば、操作ボタン14cを長押しすることにより、LCD13に表示されている部分画像のスクロールをロックさせる(禁止する)ことができる。
上述した例で言えば、図3のHキーが画面中央に表示されている状態で、ユーザにより操作ボタン14cが長押しされ、部分画像のスクロールのロックが指示されたとする。その場合、ユーザが表示装置1を上下左右に移動しても、LCD13に表示される画像は、図3のHキーが画面中央に表示されている画像のままとなる。
このような部分画像のスクロールのロックは、例えば、ユーザが操作ボタン14cを再度長押しすることにより解除することができる。この場合、Hキーが画面中央に表示されている画像が、再び表示装置1の移動に応じてスクロールするようになる。
なお、LCD13に表示される画像のスクロールのロックまたはロックの解除を指示するユーザの操作は、上述した操作ボタン14cを長押しする操作に代えて、ユーザが操作ボタン14cを半押ししている間だけ、画像のスクロールがロックされるような操作とすることもできる。
また、スクロールのロックが解除された後、LCD13では、上述したようにスクロールのロックが指示されたときの画像(上述の例ではHキーが画面中央に表示されている画像)から部分画像の表示(スクロール)を再開するようにしてもよいし、スクロールをロックしている間の表示装置1の動きの履歴を記憶しておいて、その履歴から認識することができるロック解除直後の表示装置1の位置に対応する画像から部分画像の表示を再開するようにしてもよい。後者の場合、例えば、図3に示すHキーが画面中央に表示されている状態(位置A)で、ユーザがスクロールのロックを指示した後、図4に示す位置Bにおいてスクロールのロック解除を指示すると、表示装置1は、スクロールのロック解除後にLCD13に表示される部分画像が図4に示すAキーを画面中央に配置した部分画像となるようにする。
図6は、図1の表示装置1の電気的な構成例を示している。なお、図1と対応する部分については、同一の符号を付してある。
表示装置1では、メインバス51に、CPU(Central Processing Unit)52、ROM(Read Only Memory)53、記憶部54、RAM(Random Access Memory)55、記録媒体用インタフェース56、センサインタフェース57、VGAボード(Video Graphics Array Board)58、および操作部59が接続されている。
CPU52は、ROM53に記憶されているプログラムやRAM55にロードされたプログラムに従い、表示装置1の動作を制御する。ROM53は、表示装置1の起動直後に実行されるシステムプログラムを記憶している。記憶部54は、フラッシュメモリやハードディスク等で構成され、LCD13に表示するための所定画像を記憶する。また、記憶部54は、表示装置1の動作を記述したプログラムや、ユーザが表示装置1を手で把持して移動させたときに、その移動する表示装置1が描くと想定される軌跡としての円(円弧)の半径rを記憶している。従って、半径rは、後述するように人間の平均的な腕の長さに相当する値であり、例えば、日本人の成人の腕の長さの平均値としての、42cm程度とされる。RAM55は、表示装置1の動作に必要な各種のデータ等を一時的に記憶する作業用のメモリである。記憶部54に記憶された表示装置1の制御を行うプログラムは、RAM55にロードされて実行される。
記録媒体用インタフェース56には、装着部62が接続されている。装着部62には、記録媒体61を装着することができる。記録媒体61に記録されたプログラムや画像のデータが、装着部62、および記録媒体用インタフェース56を介して、表示装置1の記憶部54にインストールされる。
センサインタフェース57には、A/D(Analog/Digital)コンバータ74、ローパスフィルタ73を介して、角速度センサ71が接続されている。角速度センサ71は、ユーザが表示装置1を把持した状態で空間を移動させたときの、ヨー方向(LCD13の表示画面の垂直方向の軸を中心とする回転方向)とピッチ方向(LCD13の表示画面の水平方向の軸を中心とする回転方向)の2軸方向それぞれの角速度を検出する。なお、ユーザによる表示装置1の空間の移動(運動)と、ヨー方向とピッチ方向の2軸方向の角速度との関係については、図7乃至図9を参照して後述する。
角速度センサ71は、ヨー方向とピッチ方向の2軸方向の角速度を検出し、ローパスフィルタ73に供給する。ローパスフィルタ73は、角速度センサ71から供給される角速度の高周波成分を除去して、A/Dコンバータ74に供給する。A/Dコンバータ74は、ローパスフィルタ73から供給される角速度のアナログ信号をデジタル信号に変換し、センサインタフェース57に供給する。センサインタフェース57に供給されたデジタル信号の角速度は、メインバス51を介して、CPU52に供給される。
角速度センサ71がローパスフィルタ73、A/Dコンバータ74、センサインタフェース57、およびメインバス51を介して供給する角速度を用いて、CPU52は、図3乃至図5で説明したような、表示装置1の移動に応じた画像のスクロールを行う。換言すれば、LCD13に表示される部分画像が、表示装置1がヨー方向とピッチ方向に移動したときに検出される角速度に応じてスクロールされる。
なお、ローパスフィルタ73には、角速度センサ71の他に、表示装置1が空間上を移動したときの3軸方向(LCD13の表示画面の水平方向、垂直方向、および奥行き方向)の加速度を検出する加速度センサ72を接続するようにすることもできる。この場合、CPU52は、角速度センサ71が出力する2軸方向の角速度により画像をスクロールする方向を制御し、加速度センサ72が出力する3軸方向の加速度により画像のスクロール量(スクロールの変化量)を制御するようにして、LCD13に表示される部分画像のスクロールを制御する。ただし、本実施の形態においては、表示装置1は、角速度センサ71のみを有しているものとする。
また、角速度センサ71の代わりに、角加速度センサを採用することができる。角加速度は、微小時間の角速度と考えることができるので、角加速度を検出することは、角速度を検出することと等価と考えることができる。
VGAボード58は、LCD13と接続している。VGAボード58には、部分画像の画像データがCPU52の制御によってRAM55から供給される。VGAボード58は、RAM55から供給された画像データを所定の画像信号に変換してLCD13に供給する。これにより、LCD13では、部分画像が表示される。
操作部59は、操作ボタン14a,14b,および14cがユーザにより操作された場合、それぞれのボタンに対応する操作信号を、メインバス51を介してCPU52に供給する。
以上のように構成される表示装置1では、CPU52の制御により、記憶部54に記憶(保存)されている所定画像がロード(展開)されて、RAM55に記憶される。そして、所定画像の一部で、LCD13の画面サイズと同一のサイズを有する部分画像が、LCD13に表示される。さらに、部分画像の表示が、角速度センサ71から供給される角速度に応じてスクロールされる。換言すれば、部分画像の表示が、ユーザが表示装置1を把持して動かした動きに応じてスクロールされる。
次に、図7乃至図9を参照して、ユーザが表示装置1を把持して移動させたときの、表示装置1の移動と角速度センサ71が検出する角速度との関係について説明する。なお、図7乃至図9では、ユーザは、表示装置1を右手で把持するものとする。
図7は、ユーザが手を左右に振ったときのユーザの(右)腕の動きを頭上から見た図である。
ユーザが腕を伸ばして手を左右方向に動かした場合、ユーザの手は、図7に示すように、肩(の関節)81を中心として、腕の長さを半径rとする円の円弧を描くような動きをする。このような、手を左右方向に動かしたときの地面に平行な面上における、腕の長さを半径rとする円弧上の動きをヨー方向の動きということにする。
なお、実際のヨー方向の動きでは、ユーザの手首(の関節)82を中心とする円弧上の動きも同時に発生するが、本実施の形態では、その動きも含めて、ユーザの手の動きが半径rの円弧を描くような動きになるものとする。
図8は、ユーザが手を上下に振ったときのユーザの(右)腕の動きをユーザの右(腕)側から見た図である。
ユーザが腕を伸ばして手を上下方向に動かした場合、ユーザの手は、図8に示すように、肩(の関節)81を中心として、腕の長さを半径rとする円の円弧を描くような動きをする。このような、手を上下方向に動かしたときの地面に垂直な面上における、腕の長さを半径rとする円弧上の動きをピッチ方向の動きということにする。
なお、実際のピッチ方向の動きでは、図7に示したヨー方向の手の動きの場合と同様に、ユーザの手首(の関節)82を中心とする円弧上の動きも同時に発生するが、本実施の形態では、その動きも含めて、ユーザの手の動きがピッチ方向に半径rの円弧を描くような動きになるものとする。
以上のように、ユーザの手の動きは、表示画面側に中心(肩81)がある円で、腕の長さを半径rとする、ヨー方向とピッチ方向の2軸方向の円弧上の動きとして表す(近似する)ことができる。従って、ユーザが把持している表示装置1も同様に、表示画面側に中心があり、腕の長さを半径rとする円の円弧上の動きをする。
そこで、表示装置1の角速度センサ71は、ヨー方向とピッチ方向それぞれについて、半径rの円弧上を移動する本体11の角速度を検出する。
本来、角速度センサ71は、自分自身を中心(軸)とする回転の角速度を検出するものであるが、本実施の形態において角速度センサ71が検出する角速度は、図9を参照して説明するように、ユーザの肩81を中心として半径(腕の長さ)rの円弧上を移動する本体11の角速度と同一となる。
角速度センサ71は、例えば、図9上側に示すような、表示装置1の上面である長方形の中心(重心)Qを中心(回転軸)とする回転の角速度を検出する。いま、表示装置1Cの位置から表示装置1Rまたは1Lの位置まで回転したときの角速度を、それぞれωaまたはωbとする。角速度ωは、単位時間当たりの角度θ(の変化量)であるから、この単位時間をいま1とすると、ω=θとみなせる。そこで、図9では、角速度ωの代わりに角度θで考えることにして、表示装置1が表示装置1の上面の中心Qを中心(軸)として表示装置1Cの位置から表示装置1Rまたは1Lの位置まで回転したときの、角速度ωaまたはωbに対応する回転角をそれぞれθaおよびθbとする。
表示装置1が、上述したように、ユーザの肩81を中心として半径rの円弧上を移動する場合、図9下側に示すように、表示装置1Cの位置から表示装置1Rの位置までユーザが腕を振ったときの腕の振り角度(腕の回転角度)は、角速度ωaに対応する角度θaに等しい。同様に、ユーザが肩81を中心として表示装置1Cの位置から表示装置1Lの位置まで腕を振ったときの腕の振り角度(腕の回転角度)は、角速度ωbに対応する角度θaに等しい。
図9上側の表示装置1の上面の中心Qを中心とする表示装置1の回転の回転角θaまたはθbと、図9下側のユーザの肩81を中心とする腕の回転の回転角θaとθbとは、それぞれ等しいので、角速度センサ71が検出する、図9上側の表示装置1の上面の中心Qを中心とする回転の角速度ωaまたはωbは、図9下側のユーザの肩81を中心とする表示装置1の回転の角速度ωaまたはωbに、それぞれ等しい。従って、角速度センサ71は、ユーザの肩81を中心とする半径(腕の長さ)rの円弧上を移動する本体11の、肩81周りの回転の角速度を検出しているということができる。
なお、図9では、ヨー方向の回転について説明したが、ピッチ方向の回転についても同様のことが言える。
図10のフローチャートを参照して、表示装置1が、角速度センサ71から供給される角速度に応じて、即ち、ユーザが表示装置1を把持してヨー方向またはピッチ方向に動かしたときの移動に応じて、LCD13に表示される部分画像をスクロールするスクロール表示処理について説明する。この処理は、例えば、所定画像のLCD13への表示がユーザにより指示(操作)されたときに開始される。
初めに、ステップS1において、CPU52は、記憶部54に記憶されているコンテンツ画像のなかの、ユーザによって指示された所定画像をRAM55にコピー(展開)して、ステップS2に進む。
ステップS2において、CPU52は、ローパスフィルタ73、A/Dコンバータ74、センサインタフェース57、およびメインバス51を介して、角速度センサ71が検出するヨー方向とピッチ方向の角速度を取得して、ステップS3に進む。
ステップS3において、CPU52は、ステップS2で取得した角速度と記憶部54に記憶されている、人間の腕の長さを表す半径rとに基づいて、RAM55に記憶している所定画像の中から所定の領域(部分画像)を切り出し、メインバス51、およびVGAボード58を介して、LCD13に供給し、ステップS4に進む。
ステップS4において、LCD13は、VGAボード58から供給された部分画像を表示して、ステップS5に進む。
ステップS5において、CPU52は、LCD13への所定画像の表示を終了する操作がユーザにより行われたか否か、即ち、LCD13への所定画像の表示を終了する操作を表す操作信号が操作部59からCPU52に供給されたか否かを判定する。
ステップS5において、LCD13への所定画像の表示を終了する操作が行われていないと判定された場合、ステップS2に戻り、ステップS2乃至S5の処理が繰り返される。ステップS2乃至S5の処理では、角速度センサ71が検出した角速度に応じて、所定画像のなかのLCD13に表示する部分画像の位置(領域)が変化するので、LCD13に表示される部分画像がスクロールされる。
ステップS5において、LCD13への所定画像の表示を終了する操作が行われたと判定された場合、スクロール表示処理を終了する。
図11乃至図14を参照して、ユーザが図7と図8に示した要領で表示装置1を動かしたときに検出される角速度と、その角速度がCPU52に供給されることによりLCD13に表示される部分画像について、さらに説明する。
図11は、ビル群の背景画像91(以下、単に背景画像91と称する)を示している。
背景画像91は、LCD13の画面サイズの16倍のサイズを有する画像である。従って、背景画像91を、図11に示すように領域G1乃至G16に16分割したとき、領域G1乃至G16それぞれのサイズは、LCD13の画面サイズと同等のサイズとなっている。
初めに、図12に示す表示装置1Cのように、表示装置1がユーザの正面に位置している状態で、図10で説明したスクロール表示処理が開始されたものとする。このとき、図11に示す背景画像91が、ユーザが見たいと所望して選択された画像である。即ち、背景画像91が、表示装置1において、所定画像として記憶部54からRAM55にコピー(展開)された画像である。また、スクロール表示処理の開始時点では、図11の背景画像91のうちの、点線で示される領域G7が部分画像として切り出され、LCD13に表示されたものとする。
次に、ユーザは、肩81を中心として角速度ω1でヨー方向に腕を動かすことにより、図12の表示装置1Rや1Lで示す位置に表示装置1を移動させたとする。換言すれば、ユーザが表示装置1Cの位置から表示装置1Rや1Lの位置に表示装置1を移動させたときに、表示装置1の角速度センサ71は、角速度ω1を検出したとする。
表示装置1は、表示装置1Lで示す位置に移動したときには、背景画像91の領域G6を切り出し、部分画像としてLCD13に表示する。即ち、CPU52は、角速度センサ71から供給されるヨー方向の角速度ω1に応じて、LCD13に表示させている画像を徐々に右方向にスクロールさせる。最終的に表示装置1Lの位置では、領域G6の部分画像がLCD13に表示される。
一方、表示装置1は、表示装置1Rで示す位置に移動したときには、背景画像91の領域G8を切り出し、部分画像としてLCD13に表示する。即ち、CPU52は、角速度センサ71から供給されるピッチ方向の角速度ω1に応じて、LCD13に表示させている画像を徐々に左方向にスクロールさせる。最終的に表示装置1Rの位置では、領域G8の部分画像がLCD13に表示される。
ここで、表示装置1が表示装置1Cの位置から表示装置1Rや1Lの位置まで移動したときの移動距離DXと、そのとき角速度センサ71が検出した角速度ω1との関係を考える。表示装置1が、上述したように、腕の長さrを半径とする円弧上を動くこととなることから、移動距離DXは、
DX=rθ・・・・・・・・・・・・・・・・・・(1)
と表すことができる。ここで、θは、図12に示すように、表示装置1Cの位置から表示装置1Rまたは1Lの位置にユーザが(ヨー方向に)腕を振ったときの、肩81を中心とする腕の回転角度である。
ところで、角速度ωは、単位時間当たりの角度θ(の変化量)を表すので、角度θを時間tで微分した式ω=dθ/dtで表すことができるが、この単位時間を、例えば、1とすると、ω=θと考えることができる。従って、(1)式は、(2)式のように書き換えることができる。
DX=rω1・・・・・・・・・・・・・・・・・・(2)
(2)式より、ユーザが表示装置1を表示装置1Cの位置から表示装置1Rまたは1Lの位置に移動させたときの移動距離(移動量)DXは、表示装置1の角速度センサ71が検出する角速度ω1と、記憶部54に予め記憶されているユーザの(平均的な)腕の長さrとによって得ることができる。そこで、CPU52は、肩81を中心とする円の半径(人間の腕の長さ)rと角速度センサ71が検出する角速度ωとに基づいて、LCD13に表示された画像のスクロールを制御する。なお、記憶部54に記憶されている腕の長さrは、必要に応じて、ユーザが最適な値に設定することができるようになされている。例えば、ユーザが年齢や性別を入力することにより、記憶部54では、その年齢等に合わせた腕の長さrが設定される。
図13は、図12で説明したユーザのヨー方向の腕の振りによる表示装置1の動きを、表示装置1の動きだけに着目して図示したものである。
ユーザが、図12に示したように腕を振ることにより、表示装置1を表示装置1Cの位置から表示装置1Rまたは1Lの位置に移動させたとき、表示装置1は、図13に示すような(上側から見たときの)表示装置1の上面である長方形の中心(重心)Qを中心(軸)とする回転の動きとなる。
例えば、時計回りの回転方向を正方向とすると、表示装置1が表示装置1Cの位置から表示装置1Rの位置に回転したとき、角速度センサ71は角速度+ω1を検出することになる。一方、表示装置1が表示装置1Cの位置から表示装置1Lの位置に回転したとき、角速度センサ71は角速度−ω1を検出することになる。
角速度+ω1が検出された場合、図11の領域G7を表示している表示装置1は、その角速度+ω1に基づき、部分画像をスクロールさせ、領域G7の右側の領域G8の画像を表示する。また、角速度−ω1が検出された場合、領域G7を表示している表示装置1は、その角速度−ω1に基づき部分画像をスクロールさせ、領域G7の左側の領域G6の画像を表示する。
図14は、表示装置1のピッチ方向の振りについて説明する図である。即ち、ユーザが肩81を中心として角速度ω1(特に正負の符号を付していない場合の角速度は絶対値とする)でピッチ方向に腕を動かすことにより、表示装置1Cの位置から表示装置1Uや1Dの位置に表示装置1を移動させたとする。換言すれば、ユーザが表示装置1を表示装置1Cの位置から表示装置1Uや1Dで示す位置に移動させたときに、表示装置1の角速度センサ71は、角速度ω1を検出したとする。
表示装置1は、表示装置1Uで示す位置に移動したときには、角速度センサ71で検出された角速度ω1に基づき背景画像91の領域G3を切り出し、部分画像としてLCD13に表示する。即ち、CPU52は、角速度センサ71から供給されるピッチ方向の角速度ω1に応じて、(2)式と同様に表示装置1を表示装置1Cの位置から表示装置1Uの位置に移動させたときの移動距離(移動量)DY=rω1を得て、LCD13に表示させている画像を徐々に下方向にスクロールさせる。最終的に領域G3の部分画像がLCD13に表示される。
一方、表示装置1は、表示装置1Dで示す位置に移動したときには、角速度センサ71で検出された角速度ω1に基づき背景画像91の領域G11を切り出し、部分画像としてLCD13に表示する。即ち、CPU52は、角速度センサ71から供給されるピッチ方向の角速度ω1に応じて、(2)式と同様に表示装置1を表示装置1Cの位置から表示装置1Dの位置に移動させたときの移動距離(移動量)DY=rω1を得て、LCD13に表示させている画像を徐々に上方向にスクロールさせる。最終的に領域G11の部分画像がLCD13に表示される。
図11乃至図14に示したように、ユーザは、表示装置1のグリップ部12を把持し、肩81を中心として、ヨー方向またはピッチ方向に腕を振ることにより、背景画像91のうちのLCD13に表示される部分画像をスクロールさせ、背景画像91全体を見ることができる。表示装置1は、ヨー方向とピッチ方向の2軸方向それぞれの角速度を検出し、その検出した角速度と腕の長さとされる半径rとに基づいて、背景画像91のうちの所定の領域を、部分画像としてLCD13に表示する。
なお、図11では、背景画像91(所定画像)のなかの部分画像を、背景画像91を16分割した領域G1乃至G16のいずれかの画像として説明したが、部分画像は、LCD13の画面サイズと同等のサイズを有する、背景画像91の任意の画像とすることができる。また、背景画像91(所定画像)のサイズは、必ずしもLCD13の画面サイズの倍数となる必要はない。
さて、上述したように、ユーザがグリップ部12を把持して上下左右方向に表示装置1を移動させるときは、表示装置1は肩81を中心とするヨー方向またはピッチ方向の動きをするものとして表示装置1の移動距離DX(DY)((2)式)を求めているが、もしユーザが手首82を中心としてヨー方向またはピッチ方向に表示装置1を移動させた場合、表示装置1の角速度センサ71が検出する角速度は、極端に大きな値となる。
即ち、ユーザが、腕を振らずに、手首82を中心として表示装置1を、例えばヨー方向に回転させた場合、ユーザがわずかに手首を動かしただけで、表示装置1は、例えば、図13に示した表示装置1L(または1R)から表示装置1R(または1L)の状態に回転する。この回転は、ユーザが肩81を中心として表示装置1をヨー方向に大きく腕を振った場合の肩81周りの回転に等価である。
このため、ユーザが手首を動かすことのみによって、表示装置1を回転させた場合、角速度センサ71では、ユーザが腕を大きく振って表示装置1を肩81周りに回転させた場合と同様の大きな角速度が検出される。
従って、角速度センサ71により検出された角速度を使用して計算される(2)式の移動距離DX(DYも同様)も極端に大きな値となってしまう。その結果、ユーザが手首を動かすことのみによって表示装置1を回転させた場合、LCD13に表示される部分画像のスクロールが、ユーザが意図する速さよりも極端に速くなり、ユーザが所定画像のなかの所望の画像(場所)をLCD13に表示させるのが困難となってしまう。
そこで、CPU52では、角速度センサ71から供給される角速度ωのうち、ユーザが手首82を中心として表示装置1を移動させていると推定されるものについては、画像のスクロールに反映させないようにする処理(以下、この処理を手首振り防止処理と称する)を行うようにすることができる。
図15は、表示装置1の手首振り防止処理を説明する図(グラフ)である。
はじめに、手首82のみを動かすことによって表示装置1を移動させた場合に検出されると推定される角速度の範囲を調べる。一般的には、その範囲は、角速度がある値(図15に示す閾値ωT)より大である範囲となる。
従って、図15に示すように、角速度センサ71で検出される角速度ωが所定の閾値ωTより大である(または、以上である)場合、CPU52は、その角速度ωに対応する表示装置1の動きは、ユーザが手首82のみを動かした表示装置1の移動によるものとして、LCD13に表示している部分画像のスクロールを禁止する(スクロールしない)。
ここで、図15のグラフの横軸は、角速度センサ71が検出する角速度ωを表しており、縦軸は、その角速度ωがCPU52に供給されたときにCPU52がLCD13に表示されている部分画像をスクロールさせるスクロール量(スクロールの変化量)sを表している。部分画像のスクロール量sは、上述の(2)式の移動距離DX(DY)に対応するものである。
図15に示すように、CPU52は、閾値ωTより大の角速度ωが検出された場合、スクロール量sを0とする。
従って、表示装置1の表示は、手首のみ動かしたのではスクロールせず、腕を振らないとスクロールしないので、手首振り防止処理によれば、ユーザに対して、表示装置1の操作方法(動かし方)をレクチャすることができる。
なお、角速度センサ71の他に加速度センサ72も有している表示装置1では、加速度センサ72で検出される加速度aが所定の閾値aTより大である(または、以上である)場合、CPU52は、その加速度aに対応する表示装置1の動きは、ユーザが手首82のみを動かした表示装置1の移動によるものとして、LCD13に表示している部分画像のスクロールを禁止する。
図16のフローチャートを参照して、手首振り防止処理を行うようにした表示装置1のスクロール表示処理について説明する。
図16のステップS21乃至S26のうち、ステップS23を除くステップS21,S22、またはS24乃至S26は、図10のステップS1乃至S5にそれぞれ対応するので、その説明は省略する。
ステップS23では、ステップS22でCPU52が取得した角速度、即ち、角速度センサ71からセンサインタフェース57等を介して供給される角速度ωが、所定の閾値ωTより大であるか否かが、CPU52により判定される。
ステップS23において、角速度ωが閾値ωTより大であると判定された場合、何も処理を行わずステップS22に戻る。
一方、ステップS23において、角速度ωが閾値ωTより大ではない、即ち角速度ωが閾値ωT以下であると判定された場合、ステップS24乃至S26に順次進み、以下、図10のステップS3乃至S5における場合とそれぞれ同様の処理が行われる。
従って、図16のスクロール表示処理では、CPU52が取得した角速度ωが所定の閾値ωT以下である場合には、その角速度ωに応じてLCD13に表示される部分画像がスクロールする。一方、CPU52が取得した角速度ωが所定の閾値ωTより大である場合には、LCD13に表示される部分画像がそのまま(スクロールしない)とされる。
図17は、本発明を適用したその他の実施の形態である表示装置1の斜視図である(第2実施の形態)。なお、図1と対応する部分については、同一の符号を付してあり、その説明を適宜省略する。また、図17は、表示装置1をLCD13が設けられている面と反対の背面側から見た図となっている。
図17では、表示装置1のLCD13が設けられている面と反対側の面の中央部に、ユーザが手で把持する部分であるグリップ部131(以下では、グリップ部12と区別しやすいように背面グリップ131と称する)が装着されている。
背面グリップ131には、図1の操作ボタン14a乃至14cと同様の機能を有する操作ボタン14d乃至14fが設けられ、また、すべり止めの効果を奏するラバー部材132も取り付けられている。これにより、ユーザは、背面グリップ131を片手で把持し、必要に応じて、操作ボタン14d乃至14fを操作することができる。また、表示装置1を上下左右(ヨー方向とピッチ方向)に動かすことができる。
背面グリップ131は、本体11と着脱可能となされ、背面グリップ131が取り外された状態が、第1実施の形態の表示装置1となる。
図18は、図17の表示装置1の電気的な構成例を示している。なお、図6と対応する部分については、同一の符号を付してあり、その説明を省略する。
図18の表示装置1は、圧力センサ151、A/Dコンバータ152、およびセンサインタフェース153が新たに設けられている他は、図6の表示装置1と同様に構成されている。
圧力センサ151は、例えば、表示装置1のグリップ部12と背面グリップ131のそれぞれに設けられており、グリップ部12と背面グリップ131のそれぞれで検出された圧力値を、A/Dコンバータ152、センサインタフェース153、メインバス51を介して、CPU52に供給する。
A/Dコンバータ152は、圧力センサ151から供給されるアナログの圧力値を、デジタルの値に変換して、センサインタフェース153に供給する。センサインタフェース153は、A/Dコンバータ152から供給されたデジタルの圧力値をメインバス51を介してCPU52に供給する。
CPU52は、圧力センサ151から供給される圧力値により、ユーザが、グリップ部12と背面グリップ131のうちのどちらのグリップ部で表示装置1を把持しているかを判定する。例えば、CPU52は、圧力センサ151から供給される、グリップ部12に加わっている圧力による圧力値と背面グリップ131に加わっている圧力による圧力値とを比較することにより、圧力値の大きい方のグリップ部が、ユーザが把持しているグリップ部であると認識(判定)する。
また、CPU52は、ユーザがグリップ部12と背面グリップ131のどちらのグリップ部を把持しているかによって、角速度センサ71から供給される角速度に応じた画像のスクロールの方向を制御する。なぜなら、ユーザがグリップ部12と背面グリップ131のどちらのグリップ部を把持しているかによって、角速度センサ71が検出する角速度の方向(符号)が反転してしまうためである。
図19と図20を参照して、ユーザがグリップ部12を把持したときと、背面グリップ131を把持したときの角速度の方向(符号)の違いを説明する。
図19は、ユーザが背面グリップ131を把持して表示装置1をヨー方向に動かしたときの、表示装置1の動きを示している。
ユーザが背面グリップ131を把持して表示装置1をヨー方向に動かした場合、ユーザの肘142と手首(の関節)82を中心として腕を振ることになり、表示装置1は、空間上の仮想点141を中心とする円の円弧上を移動する。ここで、仮想点141と手首82との距離は、腕の長さrにほぼ等しい。即ち、表示装置1は、仮想点141を中心とする半径rの円の円弧上を動く。
なお、実際には、ユーザの肩81を中心とする(上)腕の動きも発生するが、その動きも含めて、表示装置1は、仮想点141を中心とする半径rの円の円弧上を動くものとする。
図19に示すように、図12の表示装置1Cの位置に対応する表示装置1の位置を表示装置1C’とする。また、図12における場合と同様に、ユーザが角速度ω1でヨー方向に表示装置1を動かすものとして、表示装置1が表示装置1C’の位置から仮想点141を中心として角度θだけ反時計回りに回転した図12の表示装置1Rに対応する位置を表示装置1R’とするとともに、時計回りに回転した図12の表示装置1Lに対応する位置を表示装置1L’とする。
図20は、図12の表示装置1C、1R、1Lと、図19の表示装置1C’、1R’、1L’とを抜き出して図示したものである。
図20上側は、ユーザがグリップ部12を把持してヨー方向に移動させたときの図12に示した表示装置1の姿勢を表しており、表示装置1は、図13で説明したように、表示装置1Cの位置を基準として、表示装置1Rの位置に角速度+ω1、表示装置1Lの位置に角速度−ω1で、それぞれ回転されている。
一方、図20下側は、ユーザが背面グリップ131を把持してヨー方向に移動させたときの図19に示した表示装置1の姿勢を表している。
ユーザが背面グリップ131を把持して表示装置1を右方向に移動させた場合において、ユーザに対する表示装置1の位置が、図20上側(図12)の表示装置1Rの場合と同様となる表示装置1R’の位置まで移動(回転)したときには、角速度センサ71が検出する角速度は、図20上側(図12)の表示装置1Lの位置で検出される角速度と同様の−ω1となる。
一方、ユーザが背面グリップ131を把持して表示装置1を左方向に移動させた場合において、ユーザに対する表示装置1の位置が、図20上側(図12)の表示装置1Lの場合と同様となる表示装置1L’の位置まで移動(回転)したときには、角速度センサ71が検出する角速度は、図20上側(図12)の表示装置1Rの位置で検出される角速度と同様の+ω1となる。
即ち、ユーザは、表示装置1をグリップ部12と背面グリップ131のどちらで把持している場合においても、ヨー方向の右側あるいは左側というように、同様の方向感覚で表示装置1を動かす。しかしながら、角速度センサ71が検出する角速度の符号(表示装置1の回転の方向)は、ユーザがグリップ部12を把持している場合と背面グリップ131を把持している場合とでは、反対となる。
その結果、例えば、グリップ部12で表示装置1を把持している場合を基準にすると、背面グリップ131で表示装置1を把持している場合のスクロールの方向は、部分画像を移動させたい方向(表示させたい方向)と逆になってしまう(逆方向にスクロールしてしまう)。
例えば、図20上側の、グリップ部12で表示装置1を把持している状態で、ユーザが表示装置1を表示装置1R,1C、および1Lの順に、右から左方向に移動させた場合、部分画像は、表示装置1の移動方向(表示装置1R,1C、および1Lの順)と同様の左側の画像が見える方向にスクロールされる。
一方、図20下側の背面グリップ131で表示装置1を把持している状態で、ユーザが表示装置1を表示装置1R’,1C’、および1L’の順に、右から左方向に移動させた場合、部分画像は、表示装置1の移動方向(表示装置1R’,1C’、および1L’の順)と反対方向の右側の画像が見える方向にスクロールされる。
即ち、この場合、表示装置1を右から左方向に移動させているのだから、本来、左側の画像が見えるようにスクロールされるべきであるが、角速度センサ71が検出する角速度の符号(表示装置1の回転の方向)は、ユーザがグリップ部12を把持している場合と背面グリップ131を把持している場合とでは、反対となるため、逆の右側の画像が見えるようにスクロールされる。この場合、ユーザに違和感を感じさせることになる。
そこで、CPU52は、圧力センサ151から供給される圧力値により、ユーザがグリップ部12と背面グリップ131のどちらのグリップ部を把持しているかによって、スクロールの方向を制御する。例えば、ユーザがグリップ部12を把持している場合を基準とすると、CPU52は、ユーザが背面グリップ131を把持していると判定した場合、角速度センサ71から供給される角速度の符号を反転させ、その反転させた角速度に応じて部分画像をスクロールさせる。これにより、ユーザがグリップ部12と背面グリップ131のどちらのグリップ部を把持して表示装置1を移動させても、同様の方向感覚で画像がスクロールされる。
表示装置1が図19に示したような仮想点141を中心とする半径rの円の円弧を描く動きをする場合は、表示装置1を把持しているユーザの手首82が、ユーザ側から見て、表示装置1よりも外側にオフセットされている(位置している)場合である。一方、表示装置1が図12(図14)に示したような肩81を中心とする半径rの円の円弧を描く動きをするような場合は、表示装置1を把持しているユーザの手首82が、ユーザ側から見て、表示装置1よりも内側(ユーザ側)にオフセットされている(位置している)場合である。従って、圧力センサ151は、グリップ部12の圧力値と背面グリップ131の圧力値を検出することによって、表示装置1を把持しているユーザの手首が、表示装置1よりも外側にオフセットされている(位置する)か、または表示装置1よりも内側にオフセットされている(位置する)かを検出するとも言える。
図21のフローチャートを参照して、図17の表示装置1のスクロール表示処理について説明する。
図21のステップS43とS44を除くステップS41,S42またはS45乃至S47は、図10のステップS1乃至S5のそれぞれに対応するので、その説明は省略する。
ステップS43では、CPU52は、圧力センサ151から供給される圧力値により、ユーザがグリップ部12と背面グリップ131のどちらのグリップ部を把持しているかを判定する。ステップS43において、ユーザが背面グリップ131を把持していないと判定された場合、即ち、ユーザがグリップ部12を把持している場合、ステップS44をスキップして、ステップS45乃至S47に順次進み、以下、図10のステップS3乃至S5における場合とそれぞれ同様の処理が行われる。
一方、ステップS43において、ユーザが背面グリップ131を把持していると判定された場合、ステップS44に進み、CPU52は、ステップS42で取得した角速度の符号を反転させて、ステップS45乃至S47に順次進み、以下、図10のステップS3乃至S5における場合とそれぞれ同様の処理が行われる。
以上のように、第2実施の形態においては、ユーザがヨー方向およびピッチ方向に表示装置1を移動させる方法は、グリップ部12を把持して行う場合と背面グリップ131を把持して行う場合とがある。CPU52は、圧力センサ151から供給される圧力値に基づいて、ユーザがグリップ部12と背面グリップ131のうちのどちらのグリップ部で表示装置1を把持しているかを判定し、その判定結果によって部分画像のスクロールの方向を制御する。
なお、上述した例では、ユーザがグリップ部12と背面グリップ131のうちのどちらのグリップ部で表示装置1を把持しているかを判定する方法として、グリップ部12と背面グリップ131に設けられた圧力センサ151から供給される圧力値を用いることとしたが、その他ユーザがグリップ部12と背面グリップ131のうちのどちらのグリップ部で表示装置1を把持しているかを判定する方法としては、例えば、ユーザが操作ボタン14を操作することにより、グリップ部12または背面グリップ131で表示装置1を把持していることを入力する方法や、本体11の操作ボタン14a乃至14cまたは背面グリップ131の操作ボタン14d乃至14fの操作に応じてユーザがグリップ部12または背面グリップ131を把持していると判定する方法などがある。また、圧力センサ以外のセンサを用いて、ユーザが把持しているグリップ部12または背面グリップ131を判定するようにすることもできる。
また、図21のスクロール表示処理にも、図16で説明した手首振り防止処理を行うようにすることができる。
図22は、表示装置1のCPU52が図10、図16、および図21のスクロール表示処理を行うときの機能モジュールの構成例を示している。なお、図10、図16、および図21で説明したスクロール表示処理のことをHAB(Human Augmented Browser)機能とも称し、さらに、HAB機能を有する表示装置1をHAB(登録商標)とも称する。
システム管理ソフトウエア201は、表示装置1全体を管理するソフトウエアであり、操作ボタン14の操作や角速度センサ71からの角速度検出結果の入力などの外部イベントに応じて、HABソフトウエアコアモジュール203に対してAPI(Application Programming Interfaces)関数をコールする(呼び出す)ことにより、HAB機能を実行させる。システム管理ソフトウエア201は、API関数をコールする際に、必要に応じてHAB信号処理ソフトウエア202から供給される角速度等の値を引数としてHABソフトウエアコアモジュール203に供給する。また、システム管理ソフトウエア201は、HABソフトウエアコアモジュール203から、処理結果及び状態、データの伝達を、コールしたAPI関数の戻り値として受け取る。
HAB信号処理ソフトウエア202は、角速度センサ71等によって検出される装置(表示装置1)の運動情報をディスプレイ表示のタテ軸、ヨコ軸移動処理のソースとして扱うために適切な信号処理を行うソフトウエアである。また、HAB信号処理ソフトウエア202は、使用分品の個体差や環境の変化にともなう特性の変化などに起因する表示装置1の静止状態でのドリフトや、操作を行う人間の手ぶれなどの影響を防ぎ、HABのよりスムーズな画面描画処理を達成するために適切な信号処理を行うソフトウエアである。このHAB信号処理ソフトウエア202にはセンサシステム回路が静止状態のときに出力する信号の自動補正機能が含まれるため、システム(装置)起動中は常に動作させるように設計される。
HABソフトウエアコアモジュール203は、システム管理ソフトウエア201からコールされたAPI関数に応じて、HABソフトウエア群204の各HABアプリケーション層モジュールへ指令を出す。システム管理ソフトウエア201からHABソフトウエアコアモジュール203にコールされるAPI関数の詳細については、図24を参照して後述する。
HABソフトウエア群204は、HAB座標処理モジュール211、HAB画像表示処理モジュール212、HAB各種情報記憶領域213、HABコンテンツ記憶領域214、HAB設定情報/個体情報記憶領域215、HABコンテンツ解析モジュール216、HABインタラクションモジュール217、HABコンテンツ情報編集モジュール218、HAB画像編集/画像生成処理モジュール219で構成される。
HAB座標処理モジュール211は、HAB信号処理ソフトウエア202からの出力を受け、その出力を現在の設定と照らし合わせて演算し、ディスプレイ表示におけるスクロール量および方向を決定する。また、HAB座標処理モジュール211は、コンテンツに対してディスプレイに表示している部分の位置関係の座標管理を行う。
HAB画像表示処理モジュール212は、コンテンツ画像の任意の一部分(部分画像)をディスプレイデバイスに出力する。即ち、HAB画像表示処理モジュール212は、HAB座標処理モジュール211によるスクロール量および方向を受け、HAB用に展開されたコンテンツ画像の任意の一部分を表示するために切り出した情報をディスプレイデバイス(ドライバ)に供給する。また、HAB画像表示処理モジュール212は、ディスプレイデバイス(ドライバ)や、HABが適用されるターゲットシステム、使用するHABアプリケーションの仕様によってはコンテンツ画像の切り出しのみならず、ディスプレイ内の任意の箇所に補助的な視覚情報を表示するための情報をディスプレイデバイス(ドライバ)に供給することも可能である。
HAB各種情報記憶領域213は、HABを動作させる際のプログラムファイルの格納や動作中の各種処理が用いる記憶領域として使用される、ターゲットシステムのメインメモリの一部の領域である。HAB各種情報記憶領域213の大きさは、ターゲットシステムの仕様ならびに使用するHABアプリケーションによって異なる。
HABコンテンツ記憶領域214は、HABで扱うコンテンツを展開しておくために使用される、ターゲットシステムのメインメモリ領域である。HABコンテンツ記憶領域214の大きさは、ターゲットシステムの仕様および開くコンテンツの種類や大きさ、すばやいコンテンツ間の切り替えを行うための保持コンテンツ数に依存し、例えば、数MB乃至数十MBとなる。
HAB設定情報/個体情報記憶領域215は、ターゲットシステム各個体ごとに異なるセンサの状態やHABソフトウエアの継続的設定を保存するために使用される、ターゲットシステムの不揮発メモリの一部の領域である。HAB設定情報/個体情報記憶領域215の大きさは、ターゲットシステムの仕様ならびに使用するHABの構成によって異なる。
HABコンテンツ解析モジュール216は、単一の静止画像など、もっとも単純なHABコンテンツのみを扱う場合には、その画像ファイルに付随するヘッダ情報のみを解析する。このHABコンテンツ解析モジュール216の機能を拡張した拡張版コンテンツ解析モジュール(オプション)を使用することで、装置はHABコンテンツ情報ファイルを用い、コンテンツに関するさらなる追加情報を扱えるようになる。
例えば、装置は、複数のコンテンツソースファイルを併せたひとつのコンテンツを扱うことが可能となる。つまり、単一ファイルのコンテンツでは伝えきれない内容を伝えることが出来るようになり、HABコンテンツの世界が広がる。また、HABコンテンツ情報の内容次第では、装置は与えられるコンテンツ情報に応じて様々なアプリケーションソフトウエアとして動作する。そのため、このオプションによって得られるアプリケーションソフトウエアは、コンテンツ情報ファイルの違いによるアプリケーション群として幅広い用途を持つことが可能となる。
HABインタラクションモジュール217により、装置およびシステム管理ソフトウエア201は、現在ディスプレイに表示中のコンテンツに関する位置情報を取得することが可能となる。例えば、HABインタラクションモジュール217と上述した拡張版コンテンツ解析モジュールを組み込み、コンテンツ画像をメッシュ状に区切る追加情報(後述する図25参照)をコンテンツ情報ファイルで定義することにより、それぞれの領域が表示された場合ごとに適応したプログラム動作が可能となる。
また、このメッシュの大きさを調整することで、ディスプレイデバイスに表示されている情報の一部分がディスプレイデバイス内の中央部分など、特定の位置に表示中のときにのみ何らかのアクションを起こすようなアプリケーションも実装可能となる。その場合に、この機能を呼ぶトリガとしてボタンなどの補助入力を利用することも有効である。HABインタラクションモジュール217を使用することで、装置は単に情報を表示するだけでなく、ユーザとシステムとの間の対話にも新たな可能性をもたらすことができる。
HABコンテンツ情報編集モジュール218は、開いているHABコンテンツ情報ファイルに対して変更を加える。また、HABコンテンツ情報編集モジュール218は、予めHABコンテンツ情報ファイルを用意できないような動的コンテンツを扱う場合に、状況ごとに定めたルールに従ってコンテンツ情報を生成することができる。例えば、開いているコンテンツ内に、その場で記録した情報を追加する編集を行う場合や、特定のディレクトリにあるファイルをリスト表示し、それぞれの元ファイルに対するリンク構造を生成するようなアプリケーションに適用することができる。
HAB画像編集/画像生成処理モジュール219は、複数のファイルからなるコンテンツをHABコンテンツ情報ファイルやHABコンテンツ情報編集モジュール218からの情報・処理結果をもとにレイアウトし、一つのコンテンツ画像を生成する。また、HAB画像編集/画像生成処理モジュール219は、開いているコンテンツに対して視覚情報を追加したり、コンテンツ画像に対して画像処理を行い、一時的な視覚効果を生成することもできる。
図23は、ディスプレイデバイスを備える装置(ターゲットシステム)に図22のHAB機能(モジュール)を組み込んだ際の構成例を示している。
センサ回路231において装置の移動(角速度)が検出され、アナログデジタル変換デバイスであるADC(A/Dコンバータ)232に供給される。ADCドライバソフトウエア233は、ADC232でデジタル変換されたセンサ回路231の検出情報をHAB信号処理ソフトウエア202に供給する。
HAB信号処理ソフトウエア202は、HABソフトウエアコアモジュール203からの指令に基づいて、ADCドライバソフトウエア233から供給される検出情報を装置の移動情報234として、OS(Operating System)等のハードウエア管理ソフトウエア235を介して、システム管理ソフトウエア201に供給する。
一方、HAB画像表示処理モジュール212から出力される画像データ241は、ハードウエア管理ソフトウエア235に供給される。
また、その他のアプリケーションソフトウエア242が画像を表示する必要がある場合も、表示するための画像データ243が、その他のアプリケーションソフトウエア242からハードウエア管理ソフトウエア235に供給される。ここで、装置にインストールされたHAB機能以外のその他のアプリケーションが使用される場合には、システム管理ソフトウエア201により、その他のアプリケーションソフトウエア242は起動される。
ハードウエア管理ソフトウエア235は、供給された画像データを、グラフィックコントローラドライバ244、およびグラフィックコントローラデバイス245を介して、LCDディスプレイ246に供給する。これにより、LCDディスプレイ246では、画像データに対応する情報が表示される。
また、ユーザが操作ボタンやスイッチなどの補助入力装置251を操作すると、マイコンなどの入力管理デバイス252が、補助入力装置251の操作を表す操作信号を生成する。その操作信号は、入力管理デバイスドライバあるいはファームウエア253、およびハードウエア管理ソフトウエア235を介して、システム管理ソフトウエア201に供給される。
また、コンテンツ画像などを記録メディア(媒体)261からHABコンテンツ記憶領域215にコピーする場合や、HABコンテンツ記憶領域215に記憶されているコンテンツ画像を記録メディア261に取り出す場合には、画像ファイルなどの画像データ264は、外部入出力制御デバイス262、外部入出力ドライバ263、ハードウエア管理ソフトウエア235を介して、システム管理ソフトウエア201と記録メディア261との間で授受される。
図24は、上述した表示装置1またはHAB機能が組み込まれたターゲットシステムにおいて、システム管理ソフトウエア201からHABソフトウエアコアモジュール203にコールされるAPI関数の一覧を示している。
HAB_init関数は、引数がなく、戻り値を処理の成否とする、HAB初期化処理を行う関数である。HAB_init関数は、HABを動作させる際に必要となる履歴や座標系、変数などの各種初期化処理を行う。HAB_init関数は、システムの起動時、あるいはHABの起動前に使用される。
HAB_free関数は、引数がなく、戻り値を処理の成否とする、HAB終了処理を行う関数である。HAB_free関数は、メッセージバー(画面表示)の表示停止やHABが使用しているメモリ領域の開放をし、HABを終了させる。HAB_free関数は、システムの終了時、あるいはHABの終了時に使用される。
HAB_dsp_on関数は、引数と戻り値をともになしとする、HAB信号処理を開始させる関数である。HAB_dsp_on関数は、装置の移動をセンサシステムによって検出し、HABによる画面スクロールの駆動力となる出力を行う、信号処理タスクを開始する。HAB_dsp_on関数は、システムの起動時に使用される。
HAB_dsp_off関数は、引数と戻り値をともになしとする、HAB信号処理を終了させる関数である。HAB_dsp_off関数は、HAB信号処理タスクを終了させる。HAB_dsp_off関数は、システムの終了時に使用される。
HAB_lockscroll関数は、引数がなく、戻り値を処理の成否とする、画面スクロールのロックを行う関数である。HAB_lockscroll関数は、装置の移動が発生しても、HABが画面スクロールを行わない状態にする。HAB_lockscroll関数は、次のようなHABによる画面再描画を行いたくないときに使用される。即ち、例えば、HABを使用しないとき、新たなコンテンツを読み込むとき、ユーザによるボタンなどの補助入力動作があったとき、ユーザによる画面スクロールロックをするための明確な指示があったとき、などである。
HAB_freescroll関数は、引数がなく、戻り値を処理の成否とする、画面スクロールのロック解除を行う関数である。HAB_freescroll関数は、スクロールのロックを解除し、装置の移動によりHABが画面スクロールを行える状態にする。HAB_freescroll関数は、HABのロック状態を解除する際に使用される。
HAB_scroll関数は、引数を装置の各方向への移動量とし、戻り値をハイライトマーク表示しているホットスポットが変化したか否かを表す情報とする、HAB画面のスクロールを行う関数である。ここで、ホットスポットとは、HAB上で画面中央に移動させるとハイライトマーク表示される、付加情報を持つ領域であり、下絵(センサに動きを加えることで操作可能な画像;上述の所定画像)を仮想矩形で区分けして領域が定義される。基本的には、HABコンテンツ情報ファイルによってその大きさや役割、付加情報が定義される。コンテンツ情報ファイルは、単一の画像のみだけでなく、複数のコンテンツソースファイルを合わせてひとつのコンテンツとして扱うための、下絵とホットスポットの配置に必要なレイアウト情報や各ホットスポットの役割を定義したファイルである。
HAB_scroll関数は、装置の各方向への移動を出力するHAB信号処理タスクの値を受け、HAB画面のスクロール表示を行う。また、HAB_scroll関数は、ハイライトすべきホットスポットを検出し、ハイライト処理を行う。その際に、HAB_scroll関数は、ハイライトしているホットスポットが変化したかどうかを戻り値として返す。HAB_scroll関数は、装置の移動を信号処理タスクによって検出し、HABによる画面スクロールを行いたいときに使用する。
HAB_drawbar関数は、引数をメッセージの種類とし、戻り値を処理の成否とする、メッセージバー表示を行う(画面表示)関数である。HAB_drawbar関数は、ディスプレイデバイスにHAB表示以外の画面表示、例えばシステムの状態を示すメッセージなどを表示する。ただし、このメッセージなどの表示については、システム側の他の関数などでの代用も可能である。
HAB_crop関数は、引数を表示領域の四隅の座標とし、戻り値をなしとする、HAB表示領域の制限を行う関数である。HAB_crop関数は、HABによって描画する領域(表示画面の中で、下絵が随時更新され表示される領域)を指定した領域内に制限する。HAB_crop関数は、システムメッセージ(画面表示)などを表示するための専用の領域がある場合など、HABが特定の領域内に描画を行うことを望まない場合に使用される。
HAB_plainpic関数は、引数を画像ファイル名あるいは格納アドレス、表示倍率とし、戻り値を処理の成否とする、単一静止画像のHAB表示を行う関数である。HAB_plainpic関数は、単一の静止画像を下絵として、HAB表示する。HAB_plainpic関数は、写真など、単一のファイルのみをブラウズする時に使用される。
HAB_habfile関数は、引数をHABコンテンツ情報ファイル名あるいは格納アドレス、起動時にハイライトマーク表示するホットスポットID(ホットスポットを区別するための識別子)とし、戻り値を処理の成否とする、HABコンテンツ情報ファイルからのコンテンツ表示を行う関数である。HAB_habfile関数は、HABコンテンツ情報ファイルを読み込み解析し、複数のコンテンツソースファイルを合わせたひとつのコンテンツのHAB表示を行う。HAB_habfile関数は、複数画像へのリンク構造をもつなど、複雑なHABコンテンツを読み込む際に使用される。また、HAB_habfile関数は、HABをGUIアプリケーションとして利用する際にも使用される。
HAB_get_hotspot関数は、引数がなく、戻り値を現在ハイライトマーク表示しているホットスポット番号(ホットスポットを区別するために用いる、下絵内での仮想矩形の番地)とする、ハイライト中のホットスポット情報取得を行う関数である。HAB_get_hotspot関数は、HABが現在ハイライトマーク表示しているホットスポットの情報を取得するための関数である。HAB_get_hotspot関数は、特定のホットスポットから現在表示中でないコンテンツやシステム動作へのリンクなどがある場合、HAB_scroll関数においてハイライト中のホットスポットの変化が報告された時などに使用される。
HAB_get_filetype関数は、引数がなく、戻り値を現在表示しているコンテンツの種類とする、現在のHABコンテンツの種類取得を行う関数である。HAB_get_filetype関数は、現在HABが表示しているコンテンツの種類を取得するための関数であり、コンテンツの種類によってシステム側の対応を変える際に使用される。
HAB_delete_hotspot関数は、引数を削除対象のホットスポットIDとし、戻り値を処理の成否とする、特定ホットスポットの削除を行う関数である。HAB_delete_hotspot関数は、削除対象のホットスポットを指定することで、そのホットスポットにある追加情報を削除し、HABコンテンツ情報ファイルを更新する。HAB_delete_hotspot関数は、HABコンテンツをターゲットシステム内で編集する時に使用される。
HAB_delete_allhotspot関数は、引数がなく、戻り値を処理の成否とする、すべてのホットスポットの削除を行う関数である。HAB_delete_allhotspot関数は、現在開いているHABコンテンツ内の、特別に保護されていないホットスポットにある追加情報をすべて削除し、HABコンテンツ情報ファイルを更新する。HAB_delete_allhotspot関数は、HABコンテンツ情報ファイルの初期化を行う時に使用される。
HAB_insert_image関数は、引数を挿入対象の静止画像のファイル名あるいはアドレスとし、戻り値を処理の成否とする、HABコンテンツへの静止画像ホットスポット挿入を行う関数である。HAB_insert_image関数は、引数で指定される静止画像をHABコンテンツに挿入する。挿入時には挿入対象の静止画像が縮小して表示され、新たな有効ホットスポットによるリンク先として元画像が参照可能とされる。HAB_insert_image関数は、ターゲットシステム内でHABコンテンツを編集する際に使用される。
HAB_screenshot関数は、引数を下絵画像を保存するファイルパスとし、戻り値を処理の成否とする、下絵画像の保存を行う関数である。HAB_screenshot関数は、現在表示中の下絵画像をまるごと画像ファイルとして保存する。HAB_screenshot関数は、HABを搭載していない他プラットフォームへのコンテンツの出力などに使用される。
HAB_reloadstate関数は、引数がなく、戻り値を処理の成否とする、HABコンテンツの再読込を行う関数である。HAB_reloadstate関数は、HABコンテンツに対して編集を行った際に、必要に応じて使用される。
HAB_storestate関数は、引数がなく、戻り値を処理の成否とする、HAB状態のキャッシュ保存を行う関数である。HAB_storestate関数は、現在のHABのコンテンツそのものを含む各種状態をキャッシュに保存する。HAB_storestate関数は、ターゲットシステム内の他のアプリケーションや他のHABコンテンツに一旦切り替える際などに、現状に高速で復帰するために使用される。
HAB_restorestate関数は、引数がなく、戻り値を処理の成否とする、HAB状態のキャッシュ読み出しを行う関数である。HAB_restorestate関数は、キャッシュに保存してあるHAB状態に復帰し、表示しなおす。HAB_restorestate関数は、ターゲットシステム内の他のアプリケーションや他のHABコンテンツに一旦切り替える際などに、保存してある状態に高速で復帰するために使用される。
HAB_flushstate関数は、引数がなく、戻り値なしとする、HABの状態保持領域の開放を行う関数である。HAB_flushstate関数は、HAB状態を保持するためのメモリ領域を開放する。HAB_flushstate関数は、ターゲットシステム内の他のアプリケーションに切り替える際などに、保存されたHABコンテンツの情報を放棄する際に使用される。
HAB_flushstate_all関数は、引数がなく、戻り値なしとする、HABの各種メモリ領域の開放を行う関数である。HAB_flushstate_all関数は、HABが確保し、使用している各種メモリ領域を開放する。HAB_flushstate_all関数は、ターゲットシステム内の他のアプリケーションに切り替える際やシステム終了時などに、保存されたHABの各種状態を破棄する際に使用される。
図25は、コンテンツ情報ファイルにコンテンツ画像をメッシュ状に区切る追加情報を定義することによりメッシュ状に区切られたコンテンツ画像の例(区切り例)を示している。
図25では、(コンテンツ画像である)所定画像91を縦方向と横方向それぞれ均等に4分割することにより16分割されたメッシュ状(図25上段)、所定画像91を縦方向と横方向それぞれ均等に2分割することにより4分割されたメッシュ状(図25中段)、および、所定画像91を横方向に2分割し、その左側をさらに6分割したメッシュ状(図25下段)の例が示されている。
コンテンツ情報ファイルにコンテンツ画像をメッシュ状に区切る追加情報を変更することにより、図25に示すような様々なメッシュの大きさを設定(調整)することが可能である。
図26は、上述したHAB_crop関数により、HAB表示領域を制限した表示画面の例を示している。
図26上段の表示例では、表示画面のうちの、上側の一部がメニュー領域301に、メニュー領域301以外の部分がHAB描画領域302に、それぞれなっている。図26下段の表示例では、表示画面のうちの、左半分がメニュー領域301に、右半分がHAB描画領域302に、それぞれなっている。
図26に示す2つの表示例それぞれにおいて、HABによって描画が行われる領域は、HAB_crop関数により、HAB描画領域302に制限されている。即ち、メニュー領域301は、HABによって描画されない固定領域であり、HAB描画領域302が、HABによって描画される領域として、HAB_crop関数により定義される。このようにHAB_crop関数は、LCD13の表示画面において、HABによって描画する領域(画像をスクロール表示する領域)を制限する。
図27乃至図32を参照して、ターゲットシステムにHAB機能を組み込んだ際の、各種のイベントに対応するAPI関数のコールと処理の流れ(APIコールによるHAB機能の使用例)について説明する。
図27は、ターゲットシステムへの電源投入など、装置の起動が行われる際のAPI関数のコールと処理の流れを示している。
外部イベント(トリガ)として、電源オンを意味する入力がなされると、システム起動シーケンスが開始される。システム起動シーケンスでは、HAB起動API関数が呼び出され、HABの初期化が行われる。次に、補助デバイス起動シーケンスが開始される。補助デバイス起動シーケンスでは、HABセンサ初期化API(例えば、HAB_dsp_on関数など)が呼び出され、信号処理初期化が行われる。そして、センサ情報を含む各種設定が読み込まれ、センサ情報を渡す等のHABの初期化が開始される。HABの初期化では、HAB初期化API関数(例えば、HAB_init関数など)が呼び出され、HAB内部データの初期化、および信号処理タスクの起動が行われる。信号処理タスクは、これ以降常駐する。
図28は、HABアプリケーションの起動時におけるAPI関数のコールと処理の流れを示している。すべてのHABアプリケーションは、呼び出し時のコンテンツ情報が指定されたとき、あるいは特定モードHAB起動APIがコールされたときに開始される。
外部イベントとして、HAB使用アプリケーションの起動操作が行われると、システムは、状態を保持するため、HABスクロールロックAPI関数(例えば、HAB_lockscroll関数など)を呼び出す。これにより信号処理タスクが移動情報の出力を停止する。次に、アプリケーションの起動が開始される。アプリケーションの起動が開始されると、特定モードHAB起動API関数が呼び出され、コンテンツなど、データの読み込みが行われた後、HABアプリケーションが起動される。
また、状況に応じて追加設定が必要な場合には、特定モード時追加設定API関数が呼び出され、データまたは動作の再設定が行われる。その後、アプリケーション画面の表示が開始される。ここでは、HAB描画API関数(例えば、HAB_habfile関数など)が呼び出され、ディスプレイ表示データが生成される。
さらに、アプリケーション動作が開始される。アプリケーションの動作が開始されると、スクロールロック解除API関数(例えば、HAB_freescroll関数など)が呼び出され、HABスクロールロックの解除が行われた後、信号処理タスクが移動情報の出力を開始する。
図29は、ユーザが装置を動かして画像をスクロール移動させる際の、API関数のコールと処理の流れを示している。
装置が移動することを外部イベントとして、信号処理タスクが移動情報を出力する。システムは、移動情報に対応する画像のスクロールを指示するため、HAB描画API関数(例えば、HAB_habfile関数など)を呼び出す。これにより画像のスクロールが行われる。
図30は、操作ボタンの操作などの補助入力操作を行った際の、API関数のコールと処理の流れを示している。
ユーザの操作ボタンの押下などの特定のアクションを起こす入力が外部イベントとして発生すると、システムは、状態を保持するため、HABスクロールロックAPI関数(例えば、HAB_lockscroll関数など)を呼び出す。これにより信号処理タスクが移動情報の出力を停止する。また、必要に応じて、表示中の位置を確認するため、HABで表示中の位置情報を取得するためのAPI関数が呼び出され、位置情報が算出される。そして、その位置情報や入力の種類に応じた処理が行われる。
図31は、他ソフトウエアを動作させるためのメモリ領域を確保するときなど、HABのサスペンドを行う際の、API関数のコールと処理の流れを示している。
外部イベントとして、HABを使用しない状態に入ることを意味する入力がなされると、システムは、状態を保持するため、HABスクロールロックAPI関数(例えば、HAB_lockscroll関数など)を呼び出す。これにより信号処理タスクが移動情報の出力を停止する。その後、HABのサスペンドが実行される。即ち、HABメモリ領域開放API関数(例えば、HAB_flushstate_all関数など)が呼び出され、HABコンテンツ用メモリ領域が開放される。
図32は、ターゲットシステムのシステム終了など、装置の動作を停止する際の、API関数のコールと処理の流れを示している。
外部イベントとして、システム終了を意味する入力がなされると、システム終了処理が開始される。システム終了処理では、HABの終了API関数(例えば、HAB_free関数など)が呼び出され、現在の設定やセンサ情報の出力がなされる。そして、不揮発メモリにその現在の設定などを保存して、電源オフ処理が行われる。
以上のように、本実施の形態においては、表示装置1は、ユーザが表示装置1を把持してヨー方向およびピッチ方向に移動させたときの移動量に応じて、LCD13に表示する画像をスクロールさせる。これにより、ユーザは、LCD13の画面サイズよりもサイズの大きい画像全体を見ることができる。
また、表示装置1は、自身の移動量としてヨー方向およびピッチ方向の角速度を検出する。従って、ユーザは、肩を中心とし、腕の長さを半径とする円弧を描くような人間の腕部の関節構造に適した動作で表示装置1を動かすことができ、表示装置1は、その動きを適切に検出して、LCD13に表示する画像をスクロールすることができる。
即ち、表示装置1では、表示画面サイズより大きなサイズの画像を、人の特性に応じた操作で視認することができる。
また、表示装置1を壁や机などの面に直接触れさせる必要がなく、空間上を動かすことになるので、ユーザは片手で簡単に表示装置1の操作をすることができる。
さらに、表示装置1によれば、画像の視認性を向上させることができる。
即ち、図33は、従来の特許文献1で提案されている方法と比較した表示装置1の効果を説明する図である。
特許文献1で提案されている方法では、図33上側に示すように、表示装置401を表示画面に平行な仮想平面上を動かす必要があるので、表示装置401を上下左右方向に動かしたときのユーザ正面位置からの移動量が大きくなるにしたがい、表示装置1とユーザとの距離は遠くなる。また、表示装置401を上下左右方向に動かしたときのユーザ正面位置からの移動量が大きくなると、ユーザは、表示装置401の表示画面を斜めに見ることになる。
一方、表示装置1は、ユーザの肩81を中心として移動させるので、表示装置401とユーザとの距離は、図33下側に示すように、半径(腕の長さ)rでほぼ一定であり、かつ、どの位置に表示装置1を移動させても、表示装置1の表示画面は、常にユーザの視線方向に垂直となっている(表示画面は正面を向いている)。
ディスプレイデバイスとして一般的に採用されるLCDでは、CRT(Cathode Ray Tube)に比較して視野角が狭いという問題があり、特許文献1で提案されている方法では、表示装置401の移動量が大きくなるほど画面の視認性が低下してしまう。
これに対して、表示装置1では、表示装置1の表示画面は、常にユーザに向いているため、上述の視認性の低下を防止(軽減)することができる。
本発明は、図1に示したような表示装置の他、角速度センサとHAB機能モジュール(ソフトウエアプログラム)を備えることにより、デジタルカメラ、デジタルビデオカメラ、携帯電話機、PDA(Personal Digital Assistant)、小型の(携帯用の)PC(Personal Computer)などのディスプレイを有する電子機器に適用することができる。
上述した例では、LCD13に表示される画像を静止画像として説明したが、本発明は、静止画像に限らず、動画像についても適用することができる。
また、操作ボタン14a乃至14cそれぞれは、上述した操作の他に、例えば、次のような操作を行う場合にも使用することができる。即ち、操作ボタン14aは、LCD13に表示されている部分画像に、表示装置1が内部に記憶しているキャプチャ画像(他の装置でキャプチャされ、表示装置1の内部に記憶されている、LCD13の画面サイズよりサイズの小さい画像)を貼り付ける操作を指示するときに、ユーザにより操作される。操作ボタン14bは、部分画像に貼り付けたキャプチャ画像をLCD13の画面サイズと同等サイズに拡大表示するときに、ユーザによって操作される。操作ボタン14cは、ユーザが操作ボタン14bを操作することによって拡大表示されたキャプチャ画像を元に戻す(拡大表示を解除する)ときに、ユーザによって操作される。
なお、本明細書において、フローチャートに記述されたステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
1 表示装置, 13 LCD, 52 CPU, 53 ROM, 54 記憶部, 55 RAM, 71 角速度センサ, 72 加速度センサ