(57)【要約】      （修正有）【課題】ソフトウェアの実行時にＰＣの描画性能を判断して、ＧＰＵを備える場合と備えない場合で自動的にユーザーインターフェースを切り替えて表示することで、各々の環境で最適な操作系を提供する。【解決手段】高速描画ハードウェアの有無を判断する判断手段と、高速描画向けの第１の任意角度回転ユーザーインターフェースと、低速描画向けの第２の任意角度回転ユーザーインターフェースとを備え、判断手段の結果に応じて二つのユーザーインターフェースを切り替えてユーザーに提示する。【選択図】図１
2007328693.tif 000002
【特許請求の範囲】
【請求項１】
画像データを記憶する記憶手段と、
該画像を表示する表示手段と、
該画像を回転する画像回転手段と、
画像描画を高速化する高速描画手段を備えているか否かを検出する検出手段と、
第一の画像回転角度入力手段と、
上記第一の画像回転角度入力手段と比較して相対的に処理負荷の軽い第二の画像回転角度入力手段と、
を備え、上記検出手段の検出結果に基づいて、高速描画手段を備えている場合は第一の画像回転角度入力手段を、備えていない場合は第二の画像回転角度入力手段を操作者に提示する、
ことを特徴とする画像回転装置。
【請求項２】
上記第一の画像回転角度入力手段は、回転角度に従って画像全体を回転して表示することを特徴とする請求項１に記載の画像回転装置。
【請求項３】
上記第二の画像回転角度入力手段は、画像を回転しないで水平に表示し、回転角度に従って回転した枠を画像上に重畳して表示することを特徴とする請求項１に記載の画像回転装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像回転方法、画像回転装置およびメディアに関する。
【背景技術】
【０００２】
画像データの水平を補正する等の目的で画像の任意角回転を行なう場合、まず画像を画面表示し、操作者が対話的に回転角度を指定することで画像回転を行い、回転後の画像を再度画面表示するという対話的な画像回転調整が従来行われてきた。
【０００３】
又、別の従来例としては、特許文献１をあげることが出来る。
【特許文献１】特開2004-171448 号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
画像の任意角度回転は非常に処理が重いという問題があった。特許文献１など、これを高速化するハードウェアが種々提案されているが、汎用PCは必ずしもこのようなハードウェアを備えているわけではなく、CPUによるソフト処理も広く行われている。
【０００５】
市場では高速描画ハードウェア（GPU）を備えているPCと備えていないPCが混在している。GPUを備えるPCを前提としてソフトウェアの操作インターフェースを設計すると、GPUのないPCでは実用に耐えないくらい低速な動作になってしまうのが一般的である。そこで、3次元CADソフトやゲームソフトなど特殊用途のソフトウェアを例外として、通常はGPUのないPCを前提としてUIを設計することになり、GPUを備えたPCの性能を活用できないのが現状である。
【０００６】
本発明は以上を鑑みてなされたものであり、ソフトウェアの実行時にPCの描画性能を判断して、GPUを備える場合と備えない場合で自動的にユーザーインターフェースを切り替えて表示することで、各々の環境で最適な操作系を提供しようとするものである。
【課題を解決するための手段】
【０００７】
上記課題を解決するため本発明においては、高速描画ハードウェアの有無を判断する判断手段と、高速描画向けの第１の任意角度回転UIと、低速描画向けの第2の任意角度回転UIとを備え、判断手段の結果に応じて二つのUIを切り替えてユーザーに提示する。
【発明の効果】
【０００８】
以上説明したように本発明によれば、画像の対話的な回転操作を効率化することができる。
【発明を実施するための最良の形態】
【０００９】
次に、本発明の詳細を実施例の記述に従って説明する。
【００１０】
［第１の実施例］
図1は、本発明が実行されるコンピュータシステムの構成を示すブロック図である。図1において、１０１はCPUで、システム全体の制御を行なっている。１０２はキーボードで、１０２aのマウスとともにシステムに入力するために使用される。１０３は表示装置で、CRTや液晶等で構成されている。１０４はROM、１０５はRAMで、システムの記憶装置を構成し、システムが実行するプログラムやシステムが利用するデータを記憶する。１０６はハードディスク装置、１０７はフロッピー（登録商標）ディスク装置で、システムのファイルシステムに使用される外部記憶装置を構成している。１０８はGPUであり、画像回転処理などを高速化するハードウェアである。１０８はコンピュータシステムの構成によっては備えていない場合があるため、点線で示している。１０８を備えていない場合は、負荷の高い画像回転処理をCPUによりソフトウェアで処理することになる。
【００１１】
図2のフローチャートを用いて、本発明による画像回転処理全体の流れを説明する。
【００１２】
ステップS201で、HDD106に格納された画像データをデコードし、RAM105に展開する。
【００１３】
ステップS202で、システム上にGPU108が存在するかどうかのチェックを行なう。コンピュータシステムの構成はハードウェアの追加、変更等により変化するため、ソフトウェアが実行されるたびにこのチェックを行なうことで、最適な動作を決定できる。存在すればS203へ、そうでなければS204へ進む。
【００１４】
ステップS203で、後述する第一の画像回転処理を行い、S205に進む。第一の画像回転処理においては、高速な描画ハードウェアを前提とした高度なユーザーインターフェースを使用する。
【００１５】
ステップS204で、後述する第二の画像回転処理を行い、S205に進む。第二の画像回転処理においては、ソフトウェアによる描画を前提とした負荷の軽いユーザーインターフェースを使用する。
【００１６】
ステップS205で、RAM105上の画像データを、周知のアフィン変換を用いて回転して処理を終了する。
【００１７】
以上の処理により、実行時のハードウェアの状態に応じて最適な操作インターフェースを使用することで、作業効率を向上することが可能となる。
【００１８】
［第一の画像回転処理の説明］
図３に、第一の画像回転処理における、アプリケーションソフトウェアの画面構成例を示す。31は画像表示領域、32は角度調整スライダー、33は角度表示領域である。
【００１９】
HDD106に格納された画像データがデコードされ、領域31に表示される。スライダー32は、0を中心に±180度の範囲で調整量を指定でき、操作者が調整量を指定すると領域31に画像を回転表示する。
【００２０】
回転表示は、業界標準であるOpenGLを初めとする3D-CGのインターフェースを用いてGPU108を制御して表示装置103に対する描画を行なう。以下、図５に示すフローチャートに従い対話的な画像回転処理の流れを説明する。
【００２１】
ステップS501で、HDD106に格納した画像データをデコードしてRAM105上にテクスチャメモリとして読み込む。
【００２２】
ステップS502で、操作者がスライダ32を用いて対話的に入力した回転角度に従って、OpenGLの座標系を、画面に垂直な軸の回りに回転する。また、回転角度を角度表示領域33に表示する。
【００２３】
ステップS503で、GPU108を用いて、上記テクスチャを貼り付けたポリゴンデータを領域31に書き込む。図5にポリゴンデータの例を示す。通常OpenGLは直接四角形を描画することができないため、図5に示すようにふたつの三角形を組み合わせて矩形を表現する。ポリゴンの各頂点はテクスチャメモリと関連付けられており、ポリゴンを描画することで表示装置103上の画像表示領域31に画像が表示される。このとき、座標系が回転されていない場合は画像データは水平のまま表示される。ステップS502において0度以外の角度が設定されて座標系が回転している場合は、図3に示すように画像が回転して表示される。
【００２４】
ステップS504で、ポインティングデバイス102aを用いて操作者がスライダ32の目盛りを調整したかどうかの判断を行なう。スライダ値が変化していればステップS502に戻り、そうでなければステップS505 に進む。
【００２５】
ステップS505で、処理を終了するかどうかの判断を行う。例えば操作者がポインティングデバイス102aのマウスボタンをリリースするなどして操作の完了をシステムに伝えたとき処理を終了する。そうでなければステップS504に戻る。すなわちステップS504とS505は、操作者のマウス操作を監視するループを形成しており、少しでもスライダ値が変化すると即座に画像描画を更新する。操作者からは、スライダ32の操作に連動して画像がリアルタイムで回転するように見える。
【００２６】
以上説明したように、高速描画のためのGPU108を備えたシステムにおいては、画像の回転の様子を把握しながら画像回転処理を行うことができ、効率的に作業を進めることができる。
【００２７】
［第二の画像回転処理の説明］
図４に、第二の画像回転処理における、アプリケーションソフトウェアの画面構成例を示す。41は画像表示領域、42は角度調整スライダー、43は角度表示領域である。
【００２８】
HDD106に格納された画像データがデコードされ、領域41に表示される。スライダー42は、0を中心に±180度の範囲で調整量を指定でき、操作者が調整量を指定すると領域41に切り出し矩形を回転表示する。
【００２９】
以下、図７に示すフローチャートに従い対話的な画像回転処理の流れを説明する。
【００３０】
ステップS701で、HDD106に格納した画像データをデコードしてRAM105上に読み込む。
【００３１】
ステップS702で、上記画像を表示領域41に表示する。また、回転角度を角度表示領域43に表示する。
【００３２】
ステップS703で、操作者がスライダ42を用いて対話的に入力した回転角度に従って切り出し枠を回転表示する。枠表示の座標の詳細は後述する。
【００３３】
ステップS704で、ポインティングデバイス102aを用いて操作者がスライダ42の目盛りを調整したかどうかの判断を行なう。スライダ値が変化していればステップS702に戻り、そうでなければステップS705 に進む。
【００３４】
ステップS705で、処理を終了するかどうかの判断を行う。例えば操作者がポインティングデバイス102aのマウスボタンをリリースするなどして操作の完了をシステムに伝えたとき処理を終了する。そうでなければステップS704に戻る。すなわちステップS704とS705は、操作者のマウス操作を監視するループを形成しており、少しでもスライダ値が変化すると即座に画像描画を更新する。操作者からは、スライダ42の操作に連動して切り出し枠が回転するように見える。
【００３５】
以上説明したように、高速描画のためのGPU108を備えていないシステムにおいては、処理の重い画像回転処理を行わず、単に切り出し枠だけを回転描画するようにしてレスポンスを向上する。画像自体を回転する場合と比較すると回転後の状態を直感的に把握するのが困難で作業の効率が低下するのは避けられないが、GPU108を備えないシステムで上記第一の画像回転処理のようなユーザーインターフェースを呈示すると極端な速度低下で著しく操作性を損ねてしまう。
【００３６】
本実施例で説明したように、処理を行うシステム毎に最適なユーザーインターフェースを呈示することで、常に操作者が快適に効率よく操作を行なうことが可能となる。
【００３７】
［切り出し枠表示の説明］
切り出し枠回転表示の座標を詳細に説明する。
【００３８】
図８は、画像表示領域41の座標を説明する図である。領域の左上を原点(0,0)、右下を（W,H）とする。このとき領域41の中心Oは（w/2,H/2）である。Oを中心として、幅w画素、高さh画素の矩形を表示するものとする。図8は回転角度が0の場合を示しており、このとき切り出し矩形の4隅の点A,B,C,Dの座標はそれぞれ
A （-w/2+W/2、-h/2+H/2）
B （ w/2+W/2、-h/2+H/2）
C （ w/2+W/2、 h/2+H/2）
D （-w/2+W/2、 h/2+H/2）
となる。この順で４つの点を直線で結ぶことで矩形を描画する。
【００３９】
回転角度θが与えられたとき、各点の座標は以下の式に基づいて計算する。
【００４０】
A (-w/2*cosθ+h/2*sinθ +W/2, -w/2*sinθ -h/2*cosθ +H/2)
B (-w/2*cosθ+h/2*sinθ +W/2, -w/2*sinθ -h/2*cosθ +H/2)
C (-w/2*cosθ+h/2*sinθ +W/2, -w/2*sinθ -h/2*cosθ +H/2)
D (-w/2*cosθ+h/2*sinθ +W/2, -w/2*sinθ -h/2*cosθ +H/2)
この順で４つの点を直線で結ぶことで矩形を描画する。
【００４１】
［その他の実施形態］
第二の画像回転処理において、切り出し枠の表示は点線で描画したがこれに限られるものではない。実線表示してもよいし、α値を持たせて画像上に半透明表示してもよい。
【００４２】
また、操作者がスライダ42を操作すると画像の上で連続的に枠が回転するようにしたが、システムの処理能力が低い場合は実用上十分な速度でこれを描画できない場合がある。このような場合は、スライダ42の操作中はステップS702をスキップして画像データ表示を行なわず、単に枠だけを回転表示するようにする。そして、ポインティングデバイス102aのマウスボタンをリリースして回転操作を完了するタイミングで画像データを表示して枠を回転表示する。このようにすれば処理の負荷をさらに低減することができ、レスポンスを向上することができる。
【図面の簡単な説明】
【００４３】
【図１】画像処理装置の構成を示すブロック図である。
【図２】第一実施例の回転角度指定処理の流れを説明するフローチャートである。
【図３】第一実施例の画像処理装置の、第一の画像回転処理における画面構成例を説明する図である。
【図４】第一実施例の画像処理装置の、第二の画像回転処理における画面構成例を説明する図である。
【図５】第一実施例の第一の回転角度指定処理の流れを説明するフローチャートである。
【図６】ポリゴンの様子を説明する図である。
【図７】第一実施例の第二の回転角度指定処理の流れを説明するフローチャートである。
【図８】切り出し枠表示の座標を説明する図である。
【符号の説明】
【００４４】
101  CPU
102  キーボード
103  表示部
104  ROM
105  RAM
106  ハードディスク
107  フロッピー（登録商標）ディスク
108  GPU
【図１】
2007328693.tif 000003
【図２】
2007328693.tif 000004
【図３】
2007328693.tif 000005
【図４】
2007328693.tif 000006
【図５】
2007328693.tif 000007
【図６】
2007328693.tif 000008
【図７】
2007328693.tif 000009
【図８】
2007328693.tif 000010