(57)【特許請求の範囲】
【請求項１】
画像ファイルを生成する画像処理装置であって、
画像データの取得指示を受け付ける受付部と、
前記受付部が取得指示を受け付けた場合に、画像データを取得する取得部と、
加速度センサの検出値を用いて、当該画像処理装置の姿勢を特定する姿勢特定部と、
地磁気センサの検出値と、前記姿勢特定部により特定された姿勢情報とを用いて、当該画像処理装置の向きを特定する方向特定部と、
前記方向特定部により特定された方向情報を、前記画像データに関連づけた画像ファイルを生成するファイル生成部と、を備え、
前記姿勢特定部は、当該画像処理装置にかかる重力加速度ベクトルとレンズ光軸方向のなす角度が第１角度以下である場合に、当該画像処理装置が水平姿勢にあることを特定し、重力加速度ベクトルとレンズ光軸方向のなす角度が第１角度よりも大きい第２角度以上である場合に、当該画像処理装置が傾斜姿勢にあることを特定し、
前記姿勢特定部は、特定した姿勢を、直前の姿勢情報としてメモリに記憶させるものであって、
前記姿勢特定部は、重力加速度ベクトルとレンズ光軸方向のなす角度が第１角度よりも大きく、第２角度よりも小さい場合に、直前の姿勢情報が水平姿勢であることを示していれば、当該画像処理装置が水平姿勢にあることを特定する、
ことを特徴とする画像処理装置。
【請求項２】
当該画像処理装置が傾斜姿勢にある場合に、前記方向特定部は、地磁気センサの検出値とレンズ光軸方向に基づいて、当該画像処理装置の向きを特定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
当該画像処理装置が水平姿勢にある場合に、前記方向特定部は、地磁気センサの検出値と当該画像処理装置におけるレンズ光軸方向に垂直な所定の方向に基づいて、当該画像処理装置の向きを特定することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記姿勢特定部は、当該画像処理装置の姿勢が傾斜姿勢から水平姿勢に変化した場合、水平姿勢になる前の傾斜姿勢情報をメモリに保持しておき、
当該画像処理装置が水平姿勢にある場合に、前記方向特定部は、メモリに保持された傾斜姿勢情報を用いて、当該画像処理装置の向きを特定することを特徴とする請求項２または３に記載の画像処理装置。
【請求項５】
前記方向特定部は、メモリに保持された傾斜姿勢情報により特定されるディスプレイの上辺に垂直な方向に基づいて、当該画像処理装置の向きを特定することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記姿勢特定部は、当該画像処理装置の姿勢が水平姿勢から傾斜姿勢に変化するまで、傾斜姿勢情報を変更しないことを特徴とする請求項４または５に記載の画像処理装置。
【請求項７】
前記方向特定部は、当該画像処理装置の姿勢に変化があっても、水平姿勢を維持している間は、メモリに保持された傾斜姿勢情報を用いて、当該画像処理装置の向きを特定することを特徴とする請求項４から６のいずれかに記載の画像処理装置。
【請求項８】
筐体に搭載されたコンピュータに、
画像データの取得指示を受け付ける機能と、
取得指示を受け付けた場合に、画像データを取得する機能と、
加速度センサの検出値を用いて、筐体の姿勢を特定する機能と、
地磁気センサの検出値と、特定された姿勢情報とを用いて、筐体の向きを特定する機能と、
特定された方向情報を、画像データに関連づけた画像ファイルを生成する機能と、を実現させるためのプログラムであって、
姿勢を特定する機能は、筐体にかかる重力加速度ベクトルとレンズ光軸方向のなす角度が第１角度以下である場合に、筐体が水平姿勢にあることを特定し、重力加速度ベクトルとレンズ光軸方向のなす角度が第１角度よりも大きい第２角度以上である場合に、筐体が傾斜姿勢にあることを特定する機能を含み、
姿勢を特定する機能は、特定した姿勢を、直前の姿勢情報としてメモリに記憶させる機能を含み、重力加速度ベクトルとレンズ光軸方向のなす角度が第１角度よりも大きく、第２角度よりも小さい場合に、直前の姿勢情報が水平姿勢であることを示していれば、筐体が水平姿勢にあることを特定する機能を含む、
ことを特徴とするプログラム。
【請求項９】
請求項８に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像ファイルを生成する技術に関する。
【背景技術】
【０００２】
スマートフォンや携帯型ゲーム機などの小型電子機器が普及している。近年の電子機器は撮像制御部を搭載して、いわゆるデジタルカメラの機能を備えたものも多い。一般に、デジタルカメラで撮影された画像は、ＪＰＥＧ（Joint Photographic Experts Group）ファイルフォーマットで圧縮されて記録される。デジタルカメラは、撮像データを記録する際、撮影時の様々な付属情報を含むＥｘｉｆ（Exchangeable Image File Format）ファイルを、撮像データとともに画像ファイルに含める。ビューワは、Ｅｘｉｆファイルに含まれる付属情報を解析して、画像を表示部に表示する。Ｅｘｉｆ規格は、デジタルカメラ用の画像ファイルフォーマットとして策定された経緯をもっている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】「Exchangeabe image file format for digital still cameras: Exif Unified Version 2.3」、Japan Electronics and Information Technology Industries Association (JEITA) and Camera & Imaging Products Association、２０１０年４月、インターネット＜URL : http://www.jeita.or.jp/cgi-bin/standard_e/pdfpage.cgi?jk_n=47＞
【発明の概要】
【発明が解決しようとする課題】
【０００４】
Ｅｘｉｆファイルフォーマットには、画像データの構成に関する情報として、ＧＰＳ（Global Positioning System）の測定情報を格納する領域（GPSInfoIFD）が設けられている。この領域には、レンズの光軸が向いている方向（方位角）を示す撮影方向（GPSImgDirection）のタグが規定されており、このタグには、北を基準（０度）としたときの撮影方向が０〜３６０度の範囲で入力される。
【０００５】
撮影時に、レンズの光軸が略鉛直方向を向いている場合、撮影方向のタグに入力される値（撮影方向情報）は、地磁気センサの精度により、ばらつきが生じる。そのため、デジタルカメラの姿勢にほとんど変化がなくても、複数枚の写真を撮影したとき、それぞれの撮影方向のタグに異なる撮影方向情報が入力されることがあり、撮影方向情報を精度よく入力できる技術の登場が望まれている。
【０００６】
また電子機器の中には、表示部の全面または一部に表示された画像を撮影する、いわゆる「スクリーンショット」撮影機能を有するものがある。たとえば、ゲーム画面をスクリーンショットで撮影して記録しておくことで、ユーザは、後から、そのゲームシーンを見返すことができる。スクリーンショットで撮影された画像データは、再生時に撮影条件などの情報を必要としないことが多く、これまでＥｘｉｆファイルが生成される必要性に乏しいとされてきた。またＥｘｉｆファイルが生成されても、タグには基準値の情報が入力されていた。そのためビューワが、適切な状態でスクリーンショットを再生することができない場合も生じていた。
【０００７】
そこで本発明は、適切に画像ファイルを生成する技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明のある態様の画像処理装置は、画像ファイルを生成する画像処理装置であって、画像データの取得指示を受け付ける受付部と、受付部が取得指示を受け付けた場合に、画像データを取得する取得部と、加速度センサの検出値を用いて、当該画像処理装置の姿勢を特定する姿勢特定部と、地磁気センサの検出値と、姿勢特定部により特定された姿勢情報とを用いて、当該画像処理装置の向きを特定する方向特定部と、方向特定部により特定された方向情報を、画像データに関連づけた画像ファイルを生成するファイル生成部と、を備える。
【０００９】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１０】
本発明の画像処理技術によると、適切に画像ファイルを生成することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】実施例にかかる画像処理装置の外観の一例を示す図である。
【図２】画像処理装置の機能ブロック図である。
【図３】画像処理装置における画像ファイル生成機能を実現するための機能ブロックを示す図である。
【図４】画像処理装置の姿勢を説明するための図である。
【図５】姿勢特定部による姿勢特定処理を説明するための図である。
【図６】姿勢特定部が実行する姿勢特定処理のフローチャートである。
【発明を実施するための形態】
【００１２】
図１は、実施例にかかる画像処理装置１０の外観の一例を示す。画像処理装置１０は、横長および薄厚で、略四辺形の外郭形状の筐体をもつ。画像処理装置１０の表面には、指示入力ボタン２１、方向キー２２、Ｒボタン２３、Ｌボタン２４などの入力装置２０と、表示部６８が備えられている。表示部６８には、ユーザの指やスタイラスペンなどによる接触を検知するためのタッチパネル６９が併設されている。また画像処理装置１０の裏面にも、タッチパネルが備えられる。画像処理装置１０の側面には、メモリカードなどの記録メディアを装着するための第１スロットと、ゲームプログラムを記録したゲームカートリッジを装着するための第２スロットとが設けられる。画像処理装置１０の内部には、画像処理装置１０の動きを検知するモーションセンサ２５が備えられる。
【００１３】
ユーザは、画像処理装置１０を両手で把持した状態で、例えば、右手親指で指示入力ボタン２１を操作し、左手親指で方向キー２２を操作し、右手人差し指又は中指でＲボタン２３を操作し、左手人差し指又は中指でＬボタン２４を操作することができる。またタッチパネル６９を操作する場合には、画像処理装置１０を両手で把持した状態で、それぞれの親指でタッチパネル６９を操作してもよく、また画像処理装置１０を左手で把持した状態で、右手でタッチパネル６９を操作してもよい。
【００１４】
本実施例の画像処理装置１０は撮像制御部を備え、被写体を撮影するカメラ機能を有する。画像処理装置１０の裏面に、被写体を撮影するための撮像部のレンズが設けられ、画像処理装置１０が撮影モードにある場合、表示部６８には被写体が表示され、入力装置２０の所定のボタン（たとえば、Ｒボタン２３）には、シャッタボタンの機能が割り当てられる。なお撮像部は、画像処理装置１０の表面にも設けられてよい。ユーザがＲボタン２３を押すと、撮像部が被写体を撮像し、撮像部により撮像された画像データは、撮影時の様々な付属情報を含むＥｘｉｆファイルとともに、１つの画像ファイルとして、第１スロットに装着された記録メディアに記録される。
【００１５】
また本実施例の画像処理装置１０は、第２スロットに装着されたゲームカートリッジからゲームプログラムを読み出して実行する機能を有する。ユーザが、ゲームをプレイしている際、ＨＯＭＥボタンを押すと、「スクリーンショット」の項目を含むメニューが表示部６８に表示される。ユーザにより「スクリーンショット」の項目がタップされると、ゲーム画面のスクリーンショットが撮影される。なお、たとえば指示入力ボタン２１の２つのボタンにシャッタボタンの機能が割り当てられ、２つのボタンが同時に押された場合に、ゲーム画面のスクリーンショットが撮影されるようにしてもよい。
【００１６】
図２は、画像処理装置１０の機能ブロック図である。各機能ブロックはバス９０によって互いに接続されている。表示部６８は、液晶表示装置であってもよいし、有機ＥＬ表示装置であってもよい。タッチパネル６９は、表示部６８の上に重ね合わせて設けられ、ユーザの指やペンなどによる接触を検知する。タッチパネル６９は、抵抗膜方式、表面型静電容量方式、投影型静電容量方式など、いずれの方式のものであってもよい。表示部６８およびタッチパネル６９は、四辺形のディスプレイを構成する。
【００１７】
無線通信モジュール３０はＩＥＥＥ８０２．１１ｂ／ｇ等の通信規格に準拠した無線ＬＡＮモジュールによって構成され、ＡＰ（アクセスポイント）２を介して、外部ネットワークに接続する。携帯電話モジュール３２は、ＩＴＵ（International Telecommunication Union；国際電気通信連合）によって定められたＩＭＴ−２０００（International Mobile Telecommunication 2000）規格に準拠した第３世代（3rd Generation）デジタル携帯電話方式に対応し、携帯電話網６に接続する。携帯電話モジュール３２には、携帯電話の電話番号を特定するための固有のＩＤ番号が記録されたＳＩＭカードが挿入される。
【００１８】
インタフェース５０において、ＬＥＤ（Light Emitting Diode）５１は、無線通信モジュール３０や携帯電話モジュール３２などがデータの送受信をしている際に点滅する。モーションセンサ２５は、画像処理装置１０の動きを検出し、地磁気センサ２６は、３軸方向の地磁気を検出する。マイク５２は、画像処理装置１０の周辺の音声を入力する。スピーカ５３は、画像処理装置１０の各機能により生成される音声を出力する。ステレオ入出力端子５４は、外部のマイクからステレオ音声を入力し、外部のヘッドフォンなどへステレオ音声を出力する。入力装置２０は、前述した操作キーなどを含み、ユーザの操作入力を受け付ける。
【００１９】
ＣＰＵ（Central Processing Unit）４０は、メインメモリ４４にロードされたプログラムなどを実行し、本実施例では写真撮影アプリケーションや、スクリーンショット撮影アプリケーション、ゲームなどを実行する。ＧＰＵ（Graphics Processing Unit）４２は、画像処理に必要な計算を実行する。メインメモリ４４は、ＲＡＭ（Random Access Memory）などにより構成され、ＣＰＵ４０が使用するプログラムやデータなどを記憶する。ストレージ４６は、ＮＡＮＤ型フラッシュメモリ（NAND-type flash memory）などにより構成され、内蔵型の補助記憶装置として利用される。
【００２０】
ＧＰＳ制御部６０は、ＧＰＳ衛星からの信号を受信し、現在位置を算出する。ＵＳＢ制御部６１は、ＵＳＢ（Universal Serial Bus）で接続された周辺装置との間の通信を制御する。ビデオ出力制御部６４は、ＨＤＭＩなどの規格に基づいて、外部表示装置へビデオ信号を出力する。メモリカード制御部６２は、第１スロットに装着されたフラッシュメモリなどの記録メディア８０との間のデータの読み書きを制御する。リムーバブルな記録メディア８０が第１スロットに装着されると、記録メディア８０は、外付け型の補助記憶装置として利用される。メディアドライブ６３は、ゲームファイルを記録したゲームカートリッジ７０が装着される第２スロットに設けられ、ゲームカートリッジ７０との間のデータの読み書きを制御する。撮像制御部６５は被写体を撮像して、デジタル画像データを生成する。
【００２１】
図３は、画像処理装置１０における画像ファイル生成機能を実現するための機能ブロックを示す。図３に示す構成は、ハードウエアコンポーネントでいえば、任意のコンピュータのＣＰＵ、メモリ、メモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【００２２】
画像処理装置１０は、表示部６８に表示する画像を生成するための構成として、撮像制御部６５およびアプリケーション実行部１００を備える。撮影モードが設定されている場合、撮像制御部６５が、カメラ機能を実現し、画像処理装置１０がデジタルカメラとして動作する。またアプリケーションモードが設定されている場合、アプリケーション実行部１００がゲームなどのアプリケーションを実行する。メモリ部１３０は、メインメモリ４４およびフレームバッファ１１２を有する。表示制御部１１０は、フレームバッファ１１２にバッファされた画像データを表示部６８に出力する。
【００２３】
撮像制御部６５は、レンズ、光量を調節する絞り、ＣＣＤやＣＭＯＳ等から構成される撮像素子を含む撮像部を備える。撮像素子の受光面にはフォトセンサが平面的に配列されており、撮像素子の受光面に結像された被写体像は、各フォトセンサによって入射光量に応じた量の信号電荷に変換される。撮像素子は、蓄積した信号電荷をアナログ信号処理部に出力し、アナログ信号処理部は、Ｒ，Ｇ，Ｂの各色信号の画像データを生成して、Ａ／Ｄ変換器に出力する。Ａ／Ｄ変換器でデジタル信号に変換された画像データは、ガンマ補正等のデジタル処理を施された後、メインメモリ４４に記憶される。撮像制御部６５は、メインメモリ４４に記憶された画像データから、表示用の画像データを生成してフレームバッファ１１２に供給する。フレームバッファ１１２に記憶された画像データは、表示制御部１１０から表示部６８に出力され表示される。
【００２４】
撮像制御部６５は、以上の処理を、所定の周期で実行する。表示用の画像データが所定の周期で表示部６８に供給されることで、撮像部で撮像した被写体像が、動画像として表示部６８に表示されることになる。このとき、ユーザが所定のシャッタボタンを押すと、画像データ取得部１０４が、メインメモリ４４上に展開されている画像データを取得し、たとえばＪＰＥＧの形式にしたがって圧縮する。なお画像データ取得部１０４は、フレームバッファ１１２上に展開されている画像データを取得して圧縮してもよい。画像データ取得部１０４は、撮像制御部６５の一機能として構成されてもよい。
【００２５】
アプリケーション実行部１００は、ゲームプログラムを実行して、ユーザの操作入力に応じたゲーム画像を生成する。具体的にアプリケーション実行部１００は、仮想３次元ゲーム空間内に仮想カメラを設置して、ユーザの操作入力にしたがって仮想カメラを動かし、仮想カメラから仮想スクリーンに投影されるゲーム画像を生成する。生成されたゲーム画像データは、フレームバッファ１１２に供給されて、表示制御部１１０から表示部６８に出力され、動画像としてユーザに提供される。このとき、ユーザが「スクリーンショット」の項目を含むメニューを表示部６８に表示させて、「スクリーンショット」の項目をタップすると、画像データ取得部１０４が、フレームバッファ１１２上に展開されている画像データを取得し、ＪＰＥＧの形式にしたがって圧縮する。
【００２６】
センサ情報処理部１２０は、各種センサの検出値をもとに、画像処理装置１０の姿勢や、撮像部の撮影方向（レンズ光軸方向の方位角）を特定する。センサ情報処理部１２０は、画像処理装置１０の姿勢を特定する姿勢特定部１２２と、撮像部の撮影方向を特定する方向特定部１２４とを少なくとも備える。姿勢特定部１２２は、写真撮影モードまたはスクリーンショット撮影モードにおいて、モーションセンサ２５に含まれる３軸加速度センサの検出値を用いて、画像処理装置１０の姿勢を特定する。
【００２７】
図４（ａ）〜図４（ｆ）は、画像処理装置１０の６つの基本姿勢を示す。図中、下から上に向かう方向が、鉛直上方向を示す。姿勢特定部１２２は、加速度センサの検出値を用いて、画像処理装置１０の姿勢を、図４（ａ）〜図４（ｆ）に示す６つの姿勢のいずれかに特定する。図４（ａ）は、横向き（LANDSCAPE）姿勢を示し、図４（ｂ）は、横向き天地逆（LANDSCAPE_UPSIDE_DOWN）姿勢を示し、図４（ｃ）は、縦向き左下（PORTRAIT_LEFT_DOWN）姿勢を示し、図４（ｄ）は、縦向き右下（PORTRAIT_RIGHT_DOWN）姿勢を示す。通常の使用状態では、ユーザは、画像処理装置１０を図４（ａ）に示す横向き姿勢で把持して操作する。姿勢特定部１２２は、図４（ａ）〜図４（ｄ）に示す姿勢を、「傾斜姿勢」として判定する。なお傾斜姿勢は、筐体表面に垂直な方向が鉛直方向に直交する直立姿勢も含んでいる。
【００２８】
また図４（ｅ）は、表向き（FACE_UP）姿勢を示し、図４（ｆ）は、裏向き（FACE_DOWN）姿勢を示す。たとえば、画像処理装置１０がテーブルに置かれた状態では、画像処理装置１０は、表向き姿勢または裏向き姿勢をとることになる。姿勢特定部１２２は、図４（ｅ）、図４（ｆ）に示す姿勢を、「水平姿勢」として判定する。
【００２９】
姿勢特定部１２２は、３軸加速度センサの検出値を用いて、画像処理装置１０が水平姿勢にあるか、または傾斜姿勢にあるか判定する。姿勢特定部１２２は、画像処理装置１０が水平姿勢にあることを判定すると、水平姿勢のうち、表向き姿勢であるか、または裏向き姿勢であるかを特定する。また姿勢特定部１２２は、画像処理装置１０が傾斜姿勢にあることを判定すると、傾斜姿勢のうち、横向き姿勢であるか、横向き天地逆姿勢であるか、縦向き左下姿勢であるか、または縦向き右下姿勢であるかを特定する。
【００３０】
図５は、姿勢特定部１２２による姿勢特定処理を説明するための図である。図５（ａ）は、画像処理装置１０に対して設定されるＸＹＺ軸を示し、この例では、画像処理装置１０の長手方向にＸ軸、短手方向にＹ軸、表面に垂直な方向にＺ軸が設定されている。Ｘ軸の正方向は、画像処理装置１０の左辺から右辺に向かう方向、Ｙ軸の正方向は、画像処理装置１０の下辺から上辺へ向かう方向、Ｚ軸の正方向は、画像処理装置１０の表から裏へ向かう方向に設定される。なおＺ軸は、撮像部（レンズ）の光軸に平行である。
【００３１】
図５（ａ）に示すＧは、画像処理装置１０にかかる重力加速度ベクトルを示す。重力加速度ベクトルは鉛直下方向を向いており、モーションセンサ２５の３軸加速度センサは、重力加速度ベクトルＧのＸ軸成分、Ｙ軸成分、Ｚ軸成分を検出する。以下、重力加速度ベクトルＧの３軸成分を、（ｇｘ，ｇｙ，ｇｚ）と表現する。また、重力加速度ベクトルＧと、Ｚ軸とのなす角度を、（ａｎｇｌｅ＿ｚ）と表現し、また重力加速度ベクトルＧをＸＹ平面に写像したベクトルａｃｃｅｌ＿ｘｙとＸ軸とのなす角度を、（ａｎｇｌｅ＿ｘ）、ベクトルａｃｃｅｌ＿ｘｙとＹ軸とのなす角度を、（ａｎｇｌｅ＿ｙ）と表現する。なお、ａｎｇｌｅ＿ｘ、ａｎｇｌｅ＿ｙ、ａｎｇｌｅ＿ｚは、それぞれ０度以上、９０度以下の値をとる。
【００３２】
図６は、姿勢特定部１２２が実行する姿勢特定処理のフローチャートである。姿勢特定部１２２は、２段階の姿勢判定を行う。第１段階では、画像処理装置１０の姿勢が、水平姿勢であるか判定される。画像処理装置１０の姿勢が、水平姿勢でなければ、第２段階に進む。第２段階では、画像処理装置１０の姿勢が、傾斜姿勢のうち、図４（ａ）に示す横向き（LANDSCAPE）姿勢、図４（ｂ）に示す横向き天地逆（LANDSCAPE_UPSIDE_DOWN）姿勢、図４（ｃ）に示す縦向き左下（PORTRAIT_LEFT_DOWN）姿勢、または図４（ｄ）に示す縦向き右下（PORTRAIT_RIGHT_DOWN）姿勢のどれであるか判定される。図６に示すフローチャートにおいて、横向き天地逆（LANDSCAPE_UPSIDE_DOWN）姿勢を「UPSIDE_DOWN」、縦向き左下（PORTRAIT_LEFT_DOWN）姿勢を「LEFT_DOWN」、縦向き右下（PORTRAIT_RIGHT_DOWN）姿勢を「RIGHT_DOWN」と表記している。姿勢特定処理は、所定の周期で繰り返し実行される。
【００３３】
図５（ｂ）は、第１段階の判定処理を説明するための図である。第１段階において、姿勢特定部１２２は、ベクトルＧとＺ軸のなす角度（ａｎｇｌｅ＿ｚ）が角度Ｂ以下であるか判定する（Ｓ１０）。角度Ｂは、たとえば１０度に設定されている。ａｎｇｌｅ＿ｚが角度Ｂ以下であれば（Ｓ１０のＹ）、画像処理装置１０が水平姿勢にあることが特定される。続いて姿勢特定部１２２は、ベクトルＧのＺ軸成分（ｇｚ）の正負を判定し（Ｓ１２）、ｇｚが正であれば（Ｓ１２のＹ）、現在の姿勢（ｏｒｉ）が表向き（FACE_UP）姿勢であることを特定し（Ｓ１４）、ｇｚが負であれば（Ｓ１２のＮ）、現在の姿勢（ｏｒｉ）が裏向き（FACE_DOWN）姿勢であることを特定する（Ｓ１６）。特定された姿勢（ｏｒｉ）は、次回の姿勢特定処理のために、直前の姿勢（ｐｒｅｖ＿ｏｒｉ）として記憶される（Ｓ５０）。この場合、第１段階で当回の姿勢特定処理は終了し、次回の姿勢特定処理がＳ１０から開始される。
【００３４】
ａｎｇｌｅ＿ｚが角度Ｂより大きい場合（Ｓ１０のＮ）、第２段階の判定処理に移行する。図５（ｂ）には、ａｎｇｌｅ＿ｚが角度Ｂよりも大きい様子が示されている。図５（ｃ）は、第２段階の判定処理を説明するための図である。
【００３５】
第２段階において、姿勢特定部１２２が、ａｎｇｌｅ＿ｚが角度Ｅ以上であるか判定する（Ｓ１８）。角度Ｅは、たとえば２０度に設定されている（角度Ａは７０度）。ａｎｇｌｅ＿ｚが角度Ｅ以上であれば（Ｓ１８のＹ）、画像処理装置１０が傾斜姿勢にあることが特定される。続いて姿勢特定部１２２は、ベクトルａｃｃｅｌ＿ｘｙとＹ軸とのなす角度（ａｎｇｌｅ＿ｙ）が角度Ｄ以下であるか判定する（Ｓ２０）。角度Ｄは、たとえば２５度に設定されている。ａｎｇｌｅ＿ｙが角度Ｄ以下であれば（Ｓ２０のＹ）、ベクトルＧのＹ軸成分（ｇｙ）の正負を判定し（Ｓ２２）、ｇｙが正であれば（Ｓ２２のＹ）、現在の姿勢（ｏｒｉ）が横向き天地逆（LANDSCAPE_UPSIDE_DOWN）姿勢であることを特定し（Ｓ２４）、ｇｙが負であれば（Ｓ２２のＮ）、現在の姿勢（ｏｒｉ）が横向き（LANDSCAPE）姿勢であることを特定する（Ｓ２６）。特定された姿勢（ｏｒｉ）は、次回の姿勢特定処理のために、直前の姿勢（ｐｒｅｖ＿ｏｒｉ）として記憶される（Ｓ５０）。
【００３６】
一方で、ａｎｇｌｅ＿ｙが角度Ｄより大きい場合（Ｓ２０のＮ）、ベクトルａｃｃｅｌ＿ｘｙとＸ軸とのなす角度（ａｎｇｌｅ＿ｘ）が角度Ｃ以下であるか判定する（Ｓ２８）。角度Ｃは、たとえば２５度に設定されている。ａｎｇｌｅ＿ｘが角度Ｃ以下であれば（Ｓ２８のＹ）、ベクトルＧのＸ軸成分（ｇｘ）の正負を判定し（Ｓ３０）、ｇｙが正であれば（Ｓ３０のＹ）、現在の姿勢（ｏｒｉ）が縦向き右下（PORTRAIT_RIGHT_DOWN）姿勢であることを特定し（Ｓ３２）、ｇｘが負であれば（Ｓ３０のＮ）、現在の姿勢（ｏｒｉ）が縦向き左下（PORTRAIT_LEFT_DOWN）姿勢であることを特定する（Ｓ３４）。特定された姿勢（ｏｒｉ）は、次回の姿勢特定処理のために、直前の姿勢（ｐｒｅｖ＿ｏｒｉ）として記憶される（Ｓ５０）。
【００３７】
図５（ｂ）を参照して、ａｎｇｌｅ＿ｚが角度Ｂよりも大きく、角度Ｅよりも小さい場合（Ｓ１８のＮ）、直前の姿勢（ｐｒｅｖ＿ｏｒｉ）が、水平姿勢であったか判定される（Ｓ３６）。つまりＳ３６では、ａｎｇｌｅ＿ｚが角度Ｂ以下であった状態から、角度Ｅに到達する過程にあるか否かが判定される。直前の姿勢が水平姿勢であった場合（Ｓ３６のＹ）、現在の姿勢（ｏｒｉ）は、引き続き、直前の姿勢（ｐｒｅｖ＿ｏｒｉ）に設定される（Ｓ３８）。したがって、ａｎｇｌｅ＿ｚが角度Ｂ以下であった状態から、角度Ｂより大きくなったが、まだ角度Ｅよりも小さければ、現在の姿勢は、直前の姿勢と同一であると特定される。このように、角度Ｂから角度Ｅの間に中立区域を形成し、Ｓ１０とＳ１８における判定の境界を連続させないことで、特定される姿勢が水平姿勢と傾斜姿勢の間で頻繁に入れ替わる事態を回避できる。一方、直前の姿勢（ｐｒｅｖ＿ｏｒｉ）が、水平姿勢でなかった場合（Ｓ３６のＮ）、Ｓ２０からの第２段階の判定処理が実行される。
【００３８】
図５（ｃ）を参照して、ａｎｇｌｅ＿ｙが角度Ｄよりも大きく、ａｎｇｌｅ＿ｘが角度Ｃよりも大きい場合（Ｓ２８のＮ）、直前の姿勢（ｐｒｅｖ＿ｏｒｉ）が、水平姿勢であったか判定される（Ｓ４０）。直前の姿勢（ｐｒｅｖ＿ｏｒｉ）が、水平姿勢でなかった場合（Ｓ４０のＮ）、現在の姿勢（ｏｒｉ）は、引き続き、直前の姿勢（ｐｒｅｖ＿ｏｒｉ）に設定される（Ｓ３８）。したがって、ａｎｇｌｅ＿ｙが角度Ｄ以下であった直前の状態（横向き天地逆（LANDSCAPE_UPSIDE_DOWN）姿勢または横向き（LANDSCAPE）姿勢）から、角度Ｄよりも大きくなった場合には、現在の姿勢は、直前の姿勢と同一であると特定される。同じく、ａｎｇｌｅ＿ｘが角度Ｃ以下であった直前の状態（縦向き右下（PORTRAIT_RIGHT_DOWN）姿勢または縦向き左下（PORTRAIT_LEFT_DOWN）姿勢）から、角度Ｃよりも大きくなった場合には、現在の姿勢は、直前の姿勢と同一であると特定される。このように、中立区域を形成し、Ｓ２０とＳ２８における判定の境界を連続させないことで、特定される姿勢が頻繁に入れ替わる事態を回避できる。
【００３９】
一方で、直前の姿勢（ｐｒｅｖ＿ｏｒｉ）が、水平姿勢であった場合（Ｓ４０のＹ）、現在の姿勢が水平姿勢でないことは既に判明しているため、姿勢特定部１２２は、画像処理装置１０の姿勢を傾斜姿勢のいずれかに特定する必要がある。そのため、Ｓ２０とＳ２８における判定の境界を連続させ、つまり角度Ｃおよび角度Ｄを、それぞれ一時的に４５度に設定して、Ｓ２０からのステップを再実行する。これにより、姿勢特定部１２２は、現在の姿勢を特定する。なお姿勢を特定した後、角度Ｃおよび角度Ｄは、元の値（２５度）に戻される。
【００４０】
以上のようにして、姿勢特定部１２２は、画像処理装置１０の姿勢を特定する。なお、姿勢特定部１２２は、画像処理装置１０が傾斜姿勢から水平姿勢に変化したとき、水平姿勢に変化する直前の傾斜姿勢情報を、メインメモリ４４に保持する。直前傾斜姿勢情報は、傾斜姿勢のうち、横向き姿勢、横向き天地逆姿勢、縦向き左下姿勢、または縦向き右下姿勢のいずれかを特定する情報である。たとえば、水平姿勢に変化する直前の傾斜姿勢が横向き姿勢であれば、姿勢特定部１２２は、水平姿勢が維持される間、直前の傾斜姿勢が横向き姿勢であったことを示す情報（直前傾斜姿勢情報）をメインメモリ４４に保持し続ける。画像処理装置１０が水平姿勢から傾斜姿勢に変化すると、姿勢特定部１２２は、直前傾斜姿勢情報を、メインメモリ４４から削除する。なお、カメラ起動時には、横向き姿勢が、直前傾斜姿勢情報の初期値として設定される。
【００４１】
方向特定部１２４は、地磁気センサ２６の検出値を用いて、画像処理装置１０の向きを特定し、具体的には撮像部の撮影方向、すなわち撮像部の光軸と北方向とのなす角度を特定する。地磁気センサ２６は、３軸の磁気ベクトルを検出し、各軸は加速度センサの各軸と同じである。方向特定部１２４は、地磁気センサ２６の検出値から北方向を導出し、北方向を基準としたレンズ光軸の方向（方位角）を特定する。具体的に方向特定部１２４は、北を基準（０度）としたときのレンズ光軸の方位角（撮影方向）を、０〜３６０度の範囲で特定する。レンズ光軸は、地磁気センサ２６（加速度センサ）のＺ軸方向に対応する。
【００４２】
このとき、レンズ光軸が略鉛直方向を向いていると、導出した基準方向（北）と、レンズ光軸とが略垂直となるため、方向特定部１２４が、レンズ光軸方向の方位角を安定して特定することが難しい。この場合、方向特定部１２４が地磁気センサ２６の検出値のみからレンズ光軸の方位角を特定すると、画像処理装置１０の姿勢がほとんど変化しなくても、地磁気センサ２６の検出値ばらつきにより、あるタイミングでは西であると特定し、また次のタイミングでは東であると特定することも生じうる。そこで方向特定部１２４は、姿勢特定部１２２により特定された姿勢情報も用いて、レンズ光軸方向の方位角を特定する。
【００４３】
具体的に方向特定部１２４は、画像処理装置１０が水平姿勢にあるか、または傾斜姿勢にあるかに応じて、基準方向（北）に対する方位角を定めるための方向を設定する。画像処理装置１０が傾斜姿勢にある場合、加速度センサで検出されるＺ軸成分は、水平方向成分を含んでいるため、Ｚ軸方向を用いてレンズ光軸の方位角を特定する。
【００４４】
一方で、画像処理装置１０が水平姿勢にある場合、方向特定部１２４は、Ｚ軸方向を用いずに、姿勢特定部１２２によりメインメモリ４４に保持されている直前の傾斜姿勢情報を用いて、レンズ光軸の方位角を特定する。以下、図４（ａ）に示す横向き姿勢において、ディスプレイの四辺を定義すると、ディスプレイは、上側長辺、右側短辺、下側長辺、左側短辺で囲まれている。
【００４５】
たとえば、直前傾斜姿勢情報が、横向き姿勢または横向き天地逆姿勢であることを示す場合、方向特定部１２４は、図５に示すＹ軸方向を、レンズ光軸に代用して、Ｙ軸と北とのなす角度を導出する。画像処理装置１０が横向き姿勢にある場合（図４（ａ）参照）、ディスプレイの上側長辺が上辺となる。そのため、画像処理装置１０が水平姿勢になる前に、横向き姿勢をとっていた場合には、ディスプレイの上側長辺から垂直に延びる方向（Ｙ軸正方向）を方位角の基準として設定する。また画像処理装置１０が横向き天地逆姿勢にある場合（図４（ｂ）参照）、ディスプレイの下側長辺が上辺となる。そのため、画像処理装置１０が水平姿勢になる前に、横向き天地逆姿勢をとっていた場合には、ディスプレイの下側長辺に垂直から延びる方向（Ｙ軸負方向）を方位角の基準として設定する。以上のように、水平姿勢になる前に、横向き姿勢または横向き天地逆姿勢をとっていた場合には、ディスプレイの長辺に垂直な方向（Ｙ軸方向）を方位角導出の基準として設定することで、方向特定部１２４は、安定してレンズ光軸の方位角を特定できる。
【００４６】
また直前傾斜姿勢情報が、縦向き左下姿勢または縦向き右下姿勢であることを示す場合、方向特定部１２４は、図５に示すＸ軸を、レンズ光軸に代用して、Ｘ軸と北とのなす角度を導出する。画像処理装置１０が縦向き左下姿勢にある場合（図４（ｃ）参照）、ディスプレイの右側短辺が上辺となる。そのため、画像処理装置１０が水平姿勢になる前に、縦向き左下姿勢をとっていた場合には、ディスプレイの右側短辺から垂直に延びる方向（Ｘ軸正方向）を方位角の基準として設定する。また画像処理装置１０が縦向き右下姿勢にある場合（図４（ｄ）参照）、ディスプレイの左側短辺が上辺となる。そのため、画像処理装置１０が水平姿勢になる前に、縦向き右下姿勢をとっていた場合には、ディスプレイの左側短辺から垂直に延びる方向（Ｘ軸負方向）を方位角の基準として設定する。以上のように、水平姿勢になる前に、縦向き左下姿勢または縦向き右下姿勢をとっていた場合には、ディスプレイの短辺に垂直な方向（Ｘ軸方向）を方位角導出の基準として設定することで、方向特定部１２４は、安定してレンズ光軸の方位角を特定できる。
【００４７】
以上のように、画像処理装置１０が水平姿勢にある場合、方向特定部１２４が、メインメモリ４４に保持された直前傾斜姿勢情報を用いて、画像処理装置１０の向きを特定する。具体的に方向特定部１２４は、直前傾斜姿勢情報により特定されるディスプレイの上辺に垂直な方向に基づいて、画像処理装置１０の向きを特定する。直前傾斜姿勢情報はメインメモリ４４に保持されると、画像処理装置１０の姿勢が水平姿勢から傾斜姿勢に変化するまで、変更されない。そのため、水平姿勢にある間は、方位角導出の基準が変更されないため、レンズ光軸の方位角を安定して特定できるようになる。したがって、画像処理装置１０の姿勢に多少の変化があったとしても、水平姿勢を維持している間は、方位角導出の基準方向に変更がないため、信頼性が高く、また写真閲覧時にユーザが納得感を持てる方位角を導出できる。
【００４８】
撮影モードにおいて、受付部１０２が、入力装置２０およびタッチパネル６９から入力されるユーザによる画像データの取得指示を受け付けると、画像データ取得部１０４およびセンサ情報処理部１２０に、動作指示を発行する。動作指示を受けて、画像データ取得部１０４は、メインメモリ４４上に展開されている画像データを取得して、ＪＰＥＧ形式で圧縮する。
【００４９】
撮影モードにおいて、姿勢特定部１２２は、３軸加速度センサの検出値を用いて、姿勢特定処理を周期的に実行する。姿勢特定部１２２は、画像処理装置１０の所定の周期で姿勢を特定し、動作指示を受けた時点の姿勢情報を付属情報生成部１０８に供給する。なお、特定した姿勢が水平姿勢を示す場合には、メインメモリ４４に保持している直前傾斜姿勢情報を付属情報生成部１０８に供給する。
【００５０】
また、方向特定部１２４は、地磁気センサ２６の検出値と、姿勢特定部１２２により特定された姿勢情報とを用いて、画像処理装置１０の向きを特定し、特定した方向情報を、付属情報生成部１０８に供給する。
【００５１】
付属情報生成部１０８は、センサ情報処理部１２０から供給される姿勢情報、方向情報や、ＧＰＳ制御部６０で測定されたＧＰＳ測定情報などを用いて、Ｅｘｉｆファイルを生成する。Ｅｘｉｆファイルフォーマットには、画像データの構成に関するタグの１つとして、画像方向（Orientation）が規定されている。画像方向は、画像データがどこを起点として、どの向きで記録されているかを示す情報である。付属情報生成部１０８は、姿勢情報または直前傾斜姿勢情報をもとに、画像方向のタグ値を設定する。また付属情報生成部１０８は、方向情報をもとに、撮影方向（GPSImgDirection）のタグ値を設定する。
【００５２】
画像ファイル生成部１０６は、画像データ取得部１０４で圧縮された画像データと、付属情報生成部１０８で生成されたＥｘｉｆファイルとまとめて、１つの画像ファイルを生成する。これにより、姿勢特定部１２２で特定された姿勢情報、および方向特定部１２４で特定された方向情報が画像データに関連付けられた画像ファイルが生成される。画像ファイル生成部１０６は、生成した画像ファイルを、記録メディア８０に記録する。
【００５３】
以上は、撮影モードにおける画像ファイルの生成処理であるが、以下、アプリケーションモードにおける画像ファイルの生成処理を説明する。
【００５４】
アプリケーションモードにおいて、アプリケーション実行部１００がゲームプログラムを実行し、表示制御部１１０がフレームバッファ１１２にバッファされるゲーム画像データを表示部６８に表示させる。受付部１０２が、ユーザからスクリーンショットの生成指示を受け付けると、画像データ取得部１０４およびセンサ情報処理部１２０に、動作指示を発行する。動作指示を受けて、画像データ取得部１０４は、フレームバッファ１１２上に展開されている画像データを取得して、ＪＰＥＧ形式で圧縮する。
【００５５】
センサ情報処理部１２０において、姿勢特定部１２２は、３軸加速度センサの検出値を用いて、姿勢特定処理を実行する。姿勢特定部１２２は、画像処理装置１０の姿勢を特定し、特定した姿勢情報を付属情報生成部１０８に供給する。なお、特定した姿勢が水平姿勢を示す場合には、メインメモリ４４に保持している直前傾斜姿勢情報を付属情報生成部１０８に供給する。
【００５６】
また、方向特定部１２４は、地磁気センサ２６の検出値と、姿勢特定部１２２により特定された姿勢情報とを用いて、画像処理装置１０の向きを特定し、特定した方向情報を、付属情報生成部１０８に供給する。
【００５７】
付属情報生成部１０８は、センサ情報処理部１２０から供給される姿勢情報、方向情報や、ＧＰＳ制御部６０で測定されたＧＰＳ測定情報などを用いて、Ｅｘｉｆファイルを生成する。画像ファイル生成部１０６は、画像データ取得部１０４で圧縮された画像データと、付属情報生成部１０８で生成されたＥｘｉｆファイルとまとめて、１つの画像ファイルを生成する。これにより、姿勢特定部１２２で特定された姿勢情報、および方向特定部１２４で特定された方向情報が画像データに関連付けられた画像ファイルが生成される。画像ファイル生成部１０６は、生成した画像ファイルを、記録メディア８０に記録する。
【００５８】
従来、スクリーンショットの画像データには、スクリーンショット撮影時の付属情報が関連付けられていなかった。特にゲーム機のような電子機器は、ユーザにより把持される姿勢がほぼ固定されているため、スクリーンショットに、Ｅｘｉｆファイルの画像方向（Orientation）を含ませる必要性も乏しかった。しかしながら、本実施例の画像処理装置１０は、スクリーンショットのＥｘｉｆファイルに、姿勢特定部１２２で特定される姿勢情報を含ませることで、ユーザが画像処理装置１０を縦持ちしてプレイするゲームが登場した場合でも、ビューワは、スクリーンショット撮影時の画像方向で、スクリーンショットの画像データを適切に再生することが可能となる。
【００５９】
以上、本発明を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００６０】
実施例において姿勢特定部１２２は、図６に示す手順で画像処理装置１０が水平姿勢にあるか、または傾斜姿勢にあるか特定した。変形例では、姿勢特定部１２２は、単純に、Ｓ１０の判定ステップの結果のみに基づいて、水平姿勢であるか否かを判定してもよい。
【符号の説明】
【００６１】
１０・・・画像処理装置、２５・・・モーションセンサ、２６・・・地磁気センサ、４４・・・メインメモリ、６５・・・撮像制御部、６８・・・表示部、６９・・・タッチパネル、８０・・・記録メディア、１００・・・アプリケーション実行部、１０２・・・受付部、１０４・・・画像データ取得部、１０６・・・画像ファイル生成部、１０８・・・付属情報生成部、１１０・・・表示制御部、１１２・・・フレームバッファ、１２０・・・センサ情報処理部、１２２・・・姿勢特定部、１２４・・・方向特定部、１３０・・・メモリ部。
【図１】
0005920863.tif 000002
【図２】
0005920863.tif 000003
【図３】
0005920863.tif 000004
【図４】
0005920863.tif 000005
【図５】
0005920863.tif 000006
【図６】
0005920863.tif 000007