(57)【要約】【課題】描画の制約がある場合であってもよりきれいな合成画像を表示させることができるようにする。【解決手段】画像出力装置１においては、合成画像の生成時、合成元の画像の領域全体のうちの、合成先の画像上に表示させる領域と、その領域の表示領域となる合成先の画像上の領域が決定され、後者の領域の補正に合わせて前者の領域が補正される。例えば合成先の画像上の領域の選択には描画をする上での制約があり、その制約に応じて、合成先の画像上の領域と、合成元の画像上の領域を補正する必要がある。合成元の画像から切り出された領域が合成画像上で移動したり、回転したり、拡大縮小するような場合であっても、合成画像を表示したときに、合成元の画像から切り出された領域が振動して見えてしまうのを防ぐことができる。本発明は、画像を処理する装置に適用することができる。【選択図】図１
2009237454.tif 000002
【特許請求の範囲】
【請求項１】
合成元になる画像の領域全体のうちの、合成先の画像である合成画像上に表示させる第１の領域と、前記第１の領域の表示領域となる、前記合成画像の領域全体のうちの第２の領域が設定された場合、前記第２の領域を描画の制約に応じて補正し、前記第２の領域の補正に合わせて、前記第１の領域を補正する補正手段と、
前記補正手段により補正された補正後の前記第１の領域が補正後の前記第２の領域に表示されるように前記合成画像を表示させる表示制御手段と
を備える画像処理装置。
【請求項２】
前記補正手段は、補正前の前記第２の領域の一定方向の長さを、補正後の最大の前記第２の領域の前記一定方向の長さで除算して得られた値を、補正前の前記第１の領域の前記一定方向の長さに乗算することによって、前記第１の領域の前記一定方向の長さを補正する
請求項１に記載の画像処理装置。
【請求項３】
前記補正手段は、補正前の前記第２の領域の位置を表す所定の軸上の値から、補正後の最大の前記第２の領域の位置を表す前記所定の軸上の値を減算して得られた値に対して、補正前の前記第１の領域の一定方向の長さを、補正前の前記第２の領域の前記一定方向の長さで除算して得られた値と、補正前の前記第２の領域の前記一定方向の長さを、補正後の最大の前記第２の領域の前記一定方向の長さで除算して得られた値とを乗算し、乗算して得られた値を補正前の前記第１の領域の位置を表す前記所定の軸上の値に加算することによって、前記第１の領域の前記所定の軸上の位置を補正する
請求項１に記載の画像処理装置。
【請求項４】
合成元になる画像の領域全体のうちの、合成先の画像である合成画像上に表示させる第１の領域と、前記第１の領域の表示領域となる、前記合成画像の領域全体のうちの第２の領域が設定された場合、前記第２の領域を描画の制約に応じて補正し、前記第２の領域の補正に合わせて、前記第１の領域を補正し、
補正した補正後の前記第１の領域が補正後の前記第２の領域に表示されるように前記合成画像を表示させる
ステップを含む画像処理方法。
【請求項５】
合成元になる画像の領域全体のうちの、合成先の画像である合成画像上に表示させる第１の領域と、前記第１の領域の表示領域となる、前記合成画像の領域全体のうちの第２の領域が設定された場合、前記第２の領域を描画の制約に応じて補正し、前記第２の領域の補正に合わせて、前記第１の領域を補正し、
補正した補正後の前記第１の領域が補正後の前記第２の領域に表示されるように前記合成画像を表示させる
ステップを含む処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、およびプログラムに関し、特に、描画の制約がある場合であってもよりきれいな合成画像を表示させることができるようにした画像処理装置、画像処理方法、およびプログラムに関する。
【背景技術】
【０００２】
近年、デジタルカメラの周辺機器として、ハードディスクなどの記憶媒体を内蔵し、HDMI(High Definition Multimedia Interface)ケーブルなどを介してテレビジョン受像機に接続されるフォトストレージ機器が商品化されている。
【０００３】
ユーザは、フォトストレージ機器に取り込ませておいた画像をリモートコントローラなどを操作して再生させることによって、画像をテレビジョン受像機に表示させ、それを閲覧することができる。
【０００４】
このようなフォトストレージ機器の中には、アルバム内の画像を単純にスライドショー再生するのではなく、音楽に合わせて、合成したり、拡大縮小したり、回転させたりしてアルバム内の画像を再生する機能が搭載されているものがある。ユーザは、複数の画像をまとめる単位であるアルバム（フォルダ）のリストから所定のアルバムを指定するだけで、そのようなコンテンツを視聴することができる。
【０００５】
特許文献１には、画像の挿入位置、大きさを、挿入する画像が重なる画像の形状に基づいて決定する技術が開示されている。
【特許文献１】特開２００１−１８８５２５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
組込み機器であるこのようなフォトストレージ機器には、一般的に、画像処理デバイスとして比較的安価なデバイスが利用されることが多い。パーソナルコンピュータなどで利用されるCPUやグラフィックチップなどと較べて能力が劣ることから、画像の合成に際して各種の制約が課せられる。例えば、合成元の画像については、合成元の画像から切り出す領域の位置や大きさの制約が課せられ、合成先の画像については、合成元の画像から切り出した領域の表示領域となる合成先の画像上の領域の位置や大きさの制約が課せられる。
【０００７】
このような制約があることにより、例えば、合成元の画像から切り出した一部の領域を、大きさを変えながら合成先の画像（合成画像）上で移動させるような演出をしたとき、合成画像を表示する画面上では、その移動している領域が振動しているように見えることがあった。
【０００８】
本発明はこのような状況に鑑みてなされたものであり、描画の制約がある場合であってもよりきれいな合成画像を表示させることができるようにするものである。
【課題を解決するための手段】
【０００９】
本発明の一側面の画像処理装置は、合成元になる画像の領域全体のうちの、合成先の画像である合成画像上に表示させる第１の領域と、前記第１の領域の表示領域となる、前記合成画像の領域全体のうちの第２の領域が設定された場合、前記第２の領域を描画の制約に応じて補正し、前記第２の領域の補正に合わせて、前記第１の領域を補正する補正手段と、前記補正手段により補正された補正後の前記第１の領域が補正後の前記第２の領域に表示されるように前記合成画像を表示させる表示制御手段とを備える。
【００１０】
画像には、静止画、動画が含まれる。画像は、デジタルスチルカメラやビデオカメラで撮影された画像であってもよいし、CG(Computer Graphics)により作成された画像であってもよい。
【００１１】
前記補正手段には、補正前の前記第２の領域の一定方向の長さを、補正後の最大の前記第２の領域の前記一定方向の長さで除算して得られた値を、補正前の前記第１の領域の前記一定方向の長さに乗算することによって、前記第１の領域の前記一定方向の長さを補正させることができる。
【００１２】
前記補正手段には、補正前の前記第２の領域の位置を表す所定の軸上の値から、補正後の最大の前記第２の領域の位置を表す前記所定の軸上の値を減算して得られた値に対して、補正前の前記第１の領域の一定方向の長さを、補正前の前記第２の領域の前記一定方向の長さで除算して得られた値と、補正前の前記第２の領域の前記一定方向の長さを、補正後の最大の前記第２の領域の前記一定方向の長さで除算して得られた値とを乗算し、乗算して得られた値を補正前の前記第１の領域の位置を表す前記所定の軸上の値に加算することによって、前記第１の領域の前記所定の軸上の位置を補正させることができる。
【００１３】
本発明の一側面の画像処理方法またはプログラムは、合成元になる画像の領域全体のうちの、合成先の画像である合成画像上に表示させる第１の領域と、前記第１の領域の表示領域となる、前記合成画像の領域全体のうちの第２の領域が設定された場合、前記第２の領域を描画の制約に応じて補正し、前記第２の領域の補正に合わせて、前記第１の領域を補正し、補正した補正後の前記第１の領域が補正後の前記第２の領域に表示されるように前記合成画像を表示させるステップを含む。
【００１４】
本発明の一側面においては、合成元になる画像の領域全体のうちの、合成先の画像である合成画像上に表示させる第１の領域と、前記第１の領域の表示領域となる、前記合成画像の領域全体のうちの第２の領域が設定された場合、前記第２の領域が描画の制約に応じて補正され、前記第２の領域の補正に合わせて、前記第１の領域が補正される。また、補正された補正後の前記第１の領域が補正後の前記第２の領域に表示されるように前記合成画像の表示が行われる。
【発明の効果】
【００１５】
本発明の一側面によれば、描画の制約がある場合であってもよりきれいな合成画像を表示させることができる。
【発明を実施するための最良の形態】
【００１６】
図１は、本発明の一実施形態に係る画像処理装置としての画像出力装置１を含む構成の例を示す図である。
【００１７】
画像出力装置１は、内部にハードディスクなどの記憶媒体を有する装置であり、メモリカード３を介して、または、ネットワーク４を介して取り込んだ画像を内部の記憶媒体に記憶させる。画像の取り込みは、USB(Universal Serial Bus)ケーブルや近距離の無線通信を介した形でも行われる。画像出力装置１が扱う画像には、静止画、動画が含まれる。画像は、デジタルスチルカメラやビデオカメラで撮影された画像であってもよいし、CG(Computer Graphics)により作成された画像であってもよい。
【００１８】
例えば、メモリカード３を記憶媒体として用いるデジタルカメラで撮影が行われ、画像が記憶されたメモリカード３が画像出力装置１の筐体に形成されたスロットに挿入されたとき、画像の取り込みが開始され、内部の記憶媒体に画像が記憶される。画像出力装置１においては、例えば、アルバム単位で画像が管理される。
【００１９】
画像出力装置１は、取り込んだ画像をそのままスライドショー再生させるだけでなく、単数、または複数の画像の一部の領域を合成画像（合成先の画像）上で移動、回転、拡大縮小させたりするようにして画像を加工し、再生する機能を有する。画像出力装置１により再生された合成画像の映像信号は、HDMIケーブルなどを介して音声信号とともに表示装置２に供給される。
【００２０】
表示装置２は、画像出力装置１から供給された映像信号に基づいて合成画像を表示し、音声信号に基づいて音楽などをスピーカから出力させる。ユーザは、画像出力装置１により加工された複数の合成画像が連続して表示される動画コンテンツを視聴することができる。
【００２１】
後に詳述するように、画像出力装置１においては、合成画像の生成時、合成元の画像の領域全体のうちの、合成先の画像上に表示させる領域と、その領域の表示領域となる合成先の画像上の領域が決定され、後者の領域の補正に合わせて前者の領域が補正される。例えば合成先の画像上の領域の選択には描画をする上での制約があり、その制約に応じて、合成先の画像上の領域と、合成元の画像上の領域を補正する必要がある。
【００２２】
これにより、合成元の画像から切り出された領域が合成画像上で移動したり、回転したり、拡大縮小するような場合であっても、合成画像を表示したときに、合成元の画像から切り出された領域が振動して見えてしまうのを防ぐことができる。
【００２３】
このような補正を行う画像出力装置１の処理については後述する。以下、適宜、合成元の画像をソース画像、合成先の画像をデスティネーション画像という。また、合成先の画像に合成する領域として合成元の画像から切り出される領域をソース側選択領域（第１の領域）といい、合成元の画像から切り出された領域の表示領域となる合成先の画像の領域をデスティネーション側選択領域（第２の領域）という。
【００２４】
図２は、画像出力装置１のハードウエア構成例を示すブロック図である。
【００２５】
図２に示されるように、画像出力装置１は、読出・変換・スケーリング部１１Ａ乃至１１Ｃ、合成部１２、ネットワークインタフェース１４、補助記憶装置１５、ROM(Read Only Memory)１９、CPU(Central Processing Unit)２０、主記憶装置２１から構成される。各構成はバス１３を介して接続される。補助記憶装置１５は、HDD(Hard Disk Drive)１６、フラッシュメモリ１７、光ディスク１８、メモリカード３などにより構成される。
【００２６】
読出・変換・スケーリング部１１Ａは、補助記憶装置１５から読み出され、主記憶装置２１に一時的に記憶されたソース画像を読み出し、読み出したソース画像に対して、変換、スケーリングなどの加工をCPU２０による制御に従って施す。例えば、CPU２０からは、ソース側選択領域の位置、大きさなどが指定される。読出・変換・スケーリング部１１Ａは、ソース画像から切り出すなどの加工を施すことによって得られたソース側選択領域のデータを合成部１２に出力する。
【００２７】
読出・変換・スケーリング部１１Ｂ、読出・変換・スケーリング部１１Ｃも同様に、それぞれ、補助記憶装置１５から読み出され、主記憶装置２１に一時的に記憶されたソース画像を読み出し、読み出したソース画像に対して、変換、スケーリングなどの加工を施す。読出・変換・スケーリング部１１Ｂ、読出・変換・スケーリング部１１Ｃは、加工を施すことによって得られたソース側選択領域のデータを合成部１２に出力する。
【００２８】
すなわち、画像出力装置１においては、同時に３つの画像をソース画像として処理することができるようになされている。例えば、３つのソース画像からそれぞれ切り出されたソース側選択領域が１つの合成画像上に表示されるような合成が行われる。読出・変換・スケーリング部が４つ以上設けられ、４つ以上の画像をソース画像として同時に処理を行うことができるようにしてもよい。
【００２９】
図３は、ソース側選択領域の例を示す図である。
【００３０】
図３は、ソース画像＃１，＃２の２つのソース画像が選択されている場合の例を示している。ソース画像＃１，＃２のそれぞれから切り出されたソース側選択領域を所定の位置に貼り付けたデスティネーション画像が合成画像として生成される。
【００３１】
図３の例においては、時間の経過に伴って、白抜き矢印ａ1に示されるように左から右に移動するような領域がソース側選択領域Ａ1としてソース画像＃１に設定されている。合成画像上では、はじめにソース画像＃１の左側の部分の内容が表示され、時間が経過する毎に、右側の部分の内容が表示されるようになる。
【００３２】
また、図３の例においては、時間の経過に伴って、白抜き矢印ａ2に示されるように下から上に、縮小しながら移動するような領域がソース側選択領域Ａ2としてソース画像＃２に設定されている。合成画像上では、はじめにソース画像＃２の下側の広い部分の内容が表示され、時間が経過する毎に、上側の狭い部分の内容が表示されるようになる。
【００３３】
このようにして設定されるソース側選択領域のデータが、順次、合成部１２に供給される。
【００３４】
合成部１２は、CPU２０による制御に従って、読出・変換・スケーリング部１１Ａ乃至１１Ｃからデータが供給されたソース側選択領域をデスティネーション側選択領域に貼り付けることによって合成し、デスティネーション画像を生成する。合成部１２は、生成したデスティネーション画像を表示装置２に順次出力し、表示させる。
【００３５】
図４は、デスティネーション側選択領域の例を示す図である。
【００３６】
図４の例においては、時間の経過に伴って、白抜き矢印ａ11に示されるようにデスティネーション画像の左上の所定の位置を基準として右下に移動するような領域がデスティネーション側選択領域Ａ11として設定されている。デスティネーション側選択領域Ａ11には、例えば、図３のソース画像＃１から切り出されたソース側選択領域Ａ1が貼り付けられる。デスティネーション側選択領域Ａ11が、ソース側選択領域Ａ1の表示領域になる。合成画像上では、そのときソース画像＃１に設定されているソース側選択領域Ａ1の内容が、時間が経過する毎に、左上から右下に移動しながら表示されるようになる。なお、デスティネーション側選択領域Ａ11に貼り付けられたソース側選択領域Ａ1のうち、デスティネーション画像全体の領域の外に出ている部分については表示されない。
【００３７】
また、図４の例においては、時間の経過に伴って、白抜き矢印ａ12に示されるようにデスティネーション画像の左下の所定の位置を基準として右下に移動するような領域がデスティネーション側選択領域Ａ12として設定されている。デスティネーション側選択領域Ａ12には、例えば、図３のソース画像＃２から切り出されたソース側選択領域Ａ2が貼り付けられる。デスティネーション側選択領域Ａ12が、ソース側選択領域Ａ2の表示領域になる。合成画像上では、そのときソース画像＃２に設定されているソース側選択領域Ａ2の内容が、時間が経過する毎に、左下から右下に移動しながら表示されるようになる。
【００３８】
このように、表現力豊かな効果を得るために、ソース側選択領域とデスティネーション側選択領域の大きさと位置を同時に変化させるようなアニメーション処理（合成画像を表示させる処理）を行うことが可能である。また、大きさと位置を変化させるだけでなく、色を変化させたり、画像が重なる部分の透明度を規定するパラメータであるα値を同時に変化させたりするなどの効果を取り入れることも可能である。
【００３９】
図２の説明に戻り、ネットワークインタフェース１４は、ネットワーク４を介して他の機器と通信を行い、他の機器から取り込んだ画像を、バス１３を介して補助記憶装置１５に供給する。
【００４０】
補助記憶装置１５は、メモリカード３から取り込んだ画像やバス１３を介してネットワークインタフェース１４から供給された画像をHDD１６などに記憶させる。HDD１６などに記憶された画像の中からソース画像として選択された画像は、バス１３を介して主記憶装置２１に供給され、一時的に記憶される。HDD１６には、CPU２０が実行するアプリケーションなども記憶される。
【００４１】
CPU２０は、ROM１９やHDD１６に記憶されているプログラムをバス１３を介して主記憶装置２１にロードして実行し、画像出力装置１の全体の動作を制御する。
【００４２】
主記憶装置２１は例えばRAM(Random Access Memory)により構成され、バス１３を介して供給されたソース画像やプログラムを記憶する。主記憶装置２１に記憶されたソース画像は読出・変換・スケーリング部１１Ａ乃至１１Ｃにより適宜読み出される。
【００４３】
図５は、画像出力装置１のソフトウェア構成例を示す図である。
【００４４】
画像出力装置１には、合成表示アプリケーション３１、アニメーションモジュール３２、補正計算モジュール３３、描画モジュール３４、ネットワーク制御モジュール３５、記憶管理モジュール３６、およびシステム制御モジュール３７が用意される。
【００４５】
合成表示アプリケーション３１は、ソース画像を合成して得られた合成画像を表示装置２に表示させるための機能を実現する基本的なソフトウェアである。
【００４６】
例えば、合成表示アプリケーション３１は、合成画像を表示させることが指示され、続けて、アルバムを選択するなどして、ソース画像として用いる画像がユーザにより指示されたとき、記憶管理モジュール３６に対してソース画像の読み出しを指示する。また、合成表示アプリケーション３１は、読み出されたソース画像を用いたアニメーション処理を開始することをアニメーションモジュール３２に指示し、生成された合成画像を描画することを描画モジュール３４に指示する。
【００４７】
合成表示アプリケーション３１は、画像の取り込みがユーザにより指示されたとき、ネットワーク制御モジュール３５を制御して画像を取り込ませたり、取り込まれた画像を記憶管理モジュール３６に管理させたりすることも行う。
【００４８】
アニメーションモジュール３２は、合成表示アプリケーション３１からの指示に応じて、読出・変換・スケーリング部１１Ａ乃至１１Ｃ、合成部１２を制御するなどして、合成画像を生成するアニメーション処理を開始する。また、アニメーションモジュール３２は、ソース側選択領域とデスティネーション側選択領域のそれぞれの位置、大きさを決定し、決定した位置、大きさを補正計算モジュール３３に補正させる。アニメーションモジュール３２は、アニメーション処理により生成した合成画像を描画モジュール３４に描画させ、表示装置２に表示させる。
【００４９】
補正計算モジュール３３は、アニメーションモジュール３２により決定されたソース側選択領域とデスティネーション側選択領域のそれぞれの位置、大きさを、描画の制約に応じて補正する。例えば、補正計算モジュール３３は、デスティネーション側選択領域を制約に応じて先に補正し、デスティネーション側選択領域の補正に合わせて、ソース側選択領域を補正する。デスティネーション側選択領域の一定方向の長さ（幅、高さ）を指定するには所定の単位の長さの偶数倍の長さで指定しなければならない、デスティネーション側選択領域の位置（座標）を指定するには偶数番目の画素で指定しなければならない、などの制約がある。
【００５０】
描画モジュール３４は、合成表示アプリケーション３１による指示に従ってアプリケーションのメイン画面を表示装置２に表示させたり、アニメーションモジュール３２により生成された合成画像を表示装置２に表示させたりする。
【００５１】
ネットワーク制御モジュール３５は、ネットワークインタフェース１４を制御して、ネットワーク４を介して行われる他の機器との通信を制御する。
【００５２】
記憶管理モジュール３６は、画像の取り込みを行い、取り込まれた画像を補助記憶装置１５に記憶させて管理する。また、記憶管理モジュール３６は、管理している画像の中から選択されたソース画像を主記憶装置２１に転送する。
【００５３】
システム制御モジュール３７は、画像出力装置１の起動・終了などの、システムの全体の動作を制御する。
【００５４】
ここで、以上のような構成を有する画像出力装置１の処理について説明する。
【００５５】
はじめに、図６のフローチャートを参照して、アニメーションモジュール３２により行われるアニメーション処理について説明する。
【００５６】
この処理は、アニメーション処理を開始することが合成表示アプリケーション３１から指示されたときに開始される。合成画像を表示させることがユーザにより指示されたとき、記憶管理モジュール３６により管理されているソース画像が主記憶装置２１に一時的に記憶され、読出・変換・スケーリング部１１Ａ乃至１１Ｃにより読み出される。
【００５７】
ステップＳ１において、アニメーションモジュール３２は、合成画像を構成するオブジェクト１〜ｎのうちの１つのオブジェクトに注目する。オブジェクトには、ソース画像に設定されたソース側選択領域や、ソース側選択領域を合成画像上に表示させたときにその周りを装飾する模様などのCG画像が含まれる。図４を参照して説明したように、ソース画像＃１から切り出されたソース側選択領域Ａ1とソース画像＃２から切り出されたソース側選択領域Ａ2が貼り付けられた合成画像を生成する場合、ｎの値は２になる。
【００５８】
ステップＳ２において、アニメーションモジュール３２は、現在時刻ｔを基準として、各時刻におけるオブジェクトのソース位置・大きさ、デスティネーション位置、大きさを算出する。オブジェクトがソース側選択領域である場合、その位置と大きさ、および、ソース側選択領域の表示領域になるデスティネーション側選択領域の位置と大きさが算出される。図３、図４を参照して説明したように、ソース側選択領域とデスティネーション側選択領域の位置と大きさは時間の経過に伴って変化するため、その変化を表すように各時刻における位置と大きさが算出される。
【００５９】
アニメーションモジュール３２によっては、描画の制約を考慮することなく、デザインの都合などにより決められた位置と大きさが算出される。例えば、領域の位置は、Ｘ軸上、Ｙ軸上における領域の四隅の位置を表す値として算出される。また、領域の大きさは、幅、高さなどの所定の方向の長さを、画素などの所定の単位で表す値として算出される。
【００６０】
アニメーションモジュール３２により算出されたソース側選択領域の位置と大きさ、デスティネーション側選択領域の位置と大きさの情報は補正計算モジュール３３に通知される。
【００６１】
ステップＳ３において、補正計算モジュール３３は、アニメーションモジュール３２により算出されたソース側選択領域の位置と大きさ、デスティネーション側選択領域の位置と大きさを、制約を満たすようなものに補正する補正処理を行う。補正処理の詳細については図７のフローチャートを参照して後述する。ソース側選択領域とデスティネーション側選択領域の補正後の位置と大きさを表す情報はアニメーションモジュール３２に通知される。
【００６２】
ステップＳ４において、アニメーションモジュール３２は、α値等の、ソース画像の合成に用いる他のパラメータを算出する。アニメーションモジュール３２により算出されたパラメータの情報は、ソース側選択領域とデスティネーション側選択領域の補正後の位置と大きさを表す情報とともに描画モジュール３４に供給される。
【００６３】
ステップＳ５において、描画モジュール３４は、オブジェクトの各パラメータを設定し、描画する。例えば、描画モジュール３４は、補正後の位置、大きさのソース側選択領域が切り出されるように読出・変換・スケーリング部１１Ａ乃至１１Ｃを制御する。また、描画モジュール３４は、読出・変換・スケーリング部１１Ａ乃至１１Ｃにより切り出されたソース側選択領域を、補正後の位置、大きさのデスティネーション側選択領域に表示させるように合成部１２を制御する。
【００６４】
ステップＳ６において、アニメーションモジュール３２は、オブジェクト１〜ｎの全てに注目したか否かを判定する。
【００６５】
オブジェクト１〜ｎの全てに注目していないとステップＳ６において判定した場合、ステップＳ１に戻り、アニメーションモジュール３２は、他のオブジェクトに注目して以降の処理を繰り返す。
【００６６】
一方、オブジェクト１〜ｎの全てに注目したとステップＳ６において判定した場合、ステップＳ７において、アニメーションモジュール３２は、アニメーション処理を終了するか否かを判定する。
【００６７】
アニメーション処理を終了しないとステップＳ７において判定した場合、ステップＳ１に戻り、アニメーションモジュール３２は以降の処理を繰り返す。一方、合成画像の表示が全て終わったなどの所定の終了条件を満たすことから、アニメーション処理を終了するとステップＳ７において判定した場合、アニメーションモジュール３２は処理を終了させる。
【００６８】
次に、図７のフローチャートを参照して、図６のステップＳ３において行われる補正処理について説明する。
【００６９】
ここでは、デスティネーション側選択領域の制約として、デスティネーション側選択領域の辺の位置を表す座標は偶数番目の画素で指定しなければならず、縦方向、横方向の長さも偶数個の画素の長さで指定しなければならいとする制約があるものとする。
【００７０】
ステップＳ１１において、補正計算モジュール３３は、デスティネーション側選択領域のＸ座標Ｘｄ、幅Ｗｄを、制約に合わせて補正し、補正後のＸ座標Ｘｄ’、幅Ｗｄ’を算出する。Ｘ座標Ｘｄは、四隅などのデスティネーション側選択領域の基準となる所定の位置のＸ軸上の位置を表す値であり、幅Ｗｄは横方向の長さを表す値である。
【００７１】
図８は、デスティネーション側選択領域の補正の例を示す図である。
【００７２】
図８の黒丸は、例えばデスティネーション画像の左上端の１画素を基準として、Ｘ座標、Ｙ座標が偶数の値で特定される画素を表す。実線は補正前のデスティネーション側選択領域を表し、この例においては、左上の位置Ｐ1と左下の位置Ｐ2を結ぶ左辺のＸ座標が、画素ｐ01とｐ11のＸ座標の値の間の値で指定されている。また、デスティネーション側選択領域の右上の位置Ｐ3と右下の位置Ｐ4を結ぶ右辺のＸ座標が、画素ｐ41とｐ51のＸ座標の値の間の値で指定されている。このようなデスティネーション側選択領域の座標位置が図６のステップＳ２においてアニメーションモジュール３２により算出される。
【００７３】
この場合、例えば、白抜き矢印ａ21に示されるように、左辺のＸ座標の値が、補正前の位置に最も近い偶数番目の画素である画素ｐ00乃至ｐ05のＸ座標の値と同じ値になるように補正される。同様に、白抜き矢印ａ22に示されるように、右辺のＸ座標の値が、補正前の位置に最も近い偶数番目の画素である画素ｐ50乃至ｐ55のＸ座標の値と同じ値になるように補正される。これにより、幅Ｗｄも、制約を満たすようなものに補正されることになる。点線は補正後のデスティネーション側選択領域を表す。
【００７４】
補正前のＸ座標Ｘｄ、幅Ｗｄと、補正後のＸ座標Ｘｄ’、幅Ｗｄ’の関係はそれぞれ下式（１）、（２）で示される。
（Ｘｄ−１）＜Ｘｄ’≦（Ｘｄ＋１）    ・・・（１）
（Ｗｄ−２）＜Ｗｄ’≦（Ｗｄ＋２）    ・・・（２）
【００７５】
Ｗｄ’の範囲の最小値（Ｗｄ−２）は左辺と右辺がともに補正前の位置から内側に補正された場合の値であり、最大値（Ｗｄ＋２）は左辺と右辺がともに補正前の位置から外側に補正された場合の値である。
【００７６】
ステップＳ１２において、補正計算モジュール３３は、ソース側選択領域の幅Ｗｓを補正する。
【００７７】
図９は、ソース側選択領域の補正の例を示す図である。
【００７８】
図９の上側に示される太線Ｌ1はソース画像を表し、下側に示される太線Ｌ2はデスティネーション画像を表す。太線Ｌ1で表されるソース画像の中の実線Ｌ11は補正前のソース側選択領域を表す。
【００７９】
太線Ｌ2で表されるデスティネーション画像の中の実線Ｌ21は補正前のデスティネーション側選択領域を表し、点線Ｌ23は、図８を参照して説明したようにして補正された補正後のデスティネーション側選択領域を表す。点線Ｌ22は、Ｘ座標Ｘｄ’、幅Ｗｄ’の値として上式（１）、（２）の最小値を選択した場合の補正後のデスティネーション側選択領域を表す。補正後のデスティネーション側選択領域の最小幅Ｗｄminはここでは（Ｗｄ−２）になる。点線Ｌ24は、Ｘ座標Ｘｄ’、幅Ｗｄ’の値として上式（１）、（２）の最大値を選択した場合の補正後のデスティネーション側選択領域を表す。補正後のデスティネーション側選択領域の最大幅Ｗｄmaxはここでは（Ｗｄ＋２）になる。
【００８０】
このような状態において、ソース側選択領域の幅Ｗｓは、デスティネーション側選択領域の補正に合わせて補正される。
【００８１】
例えば、Ｗｓ＝Ｗｓmaxとし、デスティネーション側選択領域の幅Ｗｄが最大幅Ｗｄmaxにするように補正された場合でも問題が生じないようにするための比率でソース側選択領域の幅Ｗｓが補正される。Ｗｓmaxはソース側選択領域の補正後の最大幅である。ソース側選択領域の補正後の幅Ｗｓ’は下式（３）により表される。
Ｗｓ’＝Ｗｓ×Ｗｄ／Ｗｄmax＝Ｗｓ×Ｗｄ／（Ｗｄ＋２）    ・・・（３）
【００８２】
補正前のソース側選択領域がソース画像全体と同じ大きさである場合に、そのソース側選択領域を拡大する方向に補正したとき、補正後のソース側選択領域がソース画像からはみ出してしまうことになり、問題になる。すなわち、はみ出した部分には画像データがないことから、デスティネーション側選択領域を合成画像上で移動するように表示させたときに不自然な動きが発生してしまう。そこで、補正後のソース側選択領域がソース画像からはみ出すことがないように、デスティネーション側選択領域の幅Ｗｄを最大幅Ｗｄmaxにする比率の逆数の比率でソース側選択領域の幅Ｗｓが補正される。
【００８３】
ステップＳ１３において、補正計算モジュール３３は、ソース側選択領域のＸ座標を補正する。ソース側選択領域のＸ座標についても、Ｘｓ＝Ｘｓmaxとし、デスティネーション側選択領域の補正に合わせて補正が行われる。
【００８４】
例えば、Ｘｄmaxを基準としたＸｄの補正量（Ｘｄ’−Ｘｄmax）に対してソース側選択領域の幅とデスティネーション側選択領域の幅の比率(Ｗｓ／Ｗｄ)を乗算し、さらに、補正後のＸ座標がソース画像からはみ出さないようにするための比率である(Ｗｄ／Ｗｄmax)を乗算するようにしてソース側選択領域のＸ座標が補正される。ソース側選択領域の補正後のＸ座標Ｘｓ’は下式（４）により表される。
Ｘｓ’＝Ｘｓ＋（Ｘｄ’−Ｘｄmax)×(Ｗｓ／Ｗｄ)×(Ｗｄ／Ｗｄmax)
＝Ｘｓ＋(Ｘｄ’−(Ｘｄ−１))×Ｗｓ／（Ｗｄ＋２）    ・・・（４）
【００８５】
デスティネーション側選択領域のＹ座標Ｙｄ、高さＨｄ、ソース側選択領域のＹ座標Ｙｓ、高さＨｓについても同様にして補正が行われる。
【００８６】
ステップＳ１４において、補正計算モジュール３３は、デスティネーション側選択領域のＹ座標Ｙｄ、高さＨｄを、制約に応じて補正し、補正後のＹ座標Ｙｄ’、高さＨｄ’を求める。補正前のＹ座標Ｙｄ、高さＨｄと、補正後のＹ座標Ｙｄ’、高さＨｄ’の関係はそれぞれ下式（５）、（６）で示される。
（Ｙｄ−１）＜Ｙｄ’≦（Ｙｄ＋１）    ・・・（５）
（Ｈｄ−２）＜Ｈｄ’≦（Ｈｄ＋２）    ・・・（６）
【００８７】
ステップＳ１５において、補正計算モジュール３３は、Ｈｓ＝Ｈｓmaxとし、デスティネーション側選択領域の高さＨｄが最大高さＨｄmaxにするように補正された場合でも問題が生じないようにするための比率でソース側選択領域の高さＨｓを補正する。ソース側選択領域の補正後の高さＨｓ’は下式（７）により表される。
Ｈｓ’＝Ｈｓ×Ｈｄ／Ｈｄmax＝Ｈｓ×Ｈｄ／（Ｈｄ＋２）    ・・・（７）
【００８８】
ステップＳ１６において、補正計算モジュール３３は、ソース側選択領域のＹ座標を補正する。ソース側選択領域のＹ座標についても、Ｙｓ＝Ｙｓmaxとし、デスティネーション側選択領域の補正に合わせて補正が行われる。ソース側選択領域の補正後のＹ座標Ｙｓ’は下式（８）により表される。
Ｙｓ’＝Ｙｓ＋（Ｙｄ’−Ｙｄmax)×(Ｙｓ／Ｙｄ)×(Ｙｄ／Ｙｄmax)
＝Ｙｓ＋(Ｙｄ’−(Ｙｄ−１))×Ｙｓ／（Ｙｄ＋２）    ・・・（８）
【００８９】
その後、図６のステップＳ３に戻り、それ以降の処理が行われる。
【００９０】
以上のように、制約がある場合であっても、デスティネーション側選択領域だけではなく、ソース側選択領域もデスティネーション側選択領域の補正に合わせて補正するようにしたため、よりきれいな合成画像を表示させることができる。
【００９１】
図１０は、画像出力装置１の他のハードウエア構成例を示すブロック図である。図２に示される構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
【００９２】
図１０の例においては、図２の読出・変換・スケーリング部１１Ａ乃至１１Ｃに替えてブリッタ（Blitter）５１が設けられている。また、図２の合成部１２に替えて読出部５２が設けられている。
【００９３】
ブリッタ５１は、画像データをメモリのある領域から他の領域にコピーするDMA(Direct Memory Access)の機能を有すると共に、読出・変換・スケーリング部１１Ａ乃至１１Ｃと同様に、画像を加工する機能を有する。ブリッタ５１により得られたソース側選択領域のデータはバス１３を介して主記憶装置２１に供給され、記憶される。
【００９４】
読出部５２は、ブリッタ５１の処理結果であるソース側選択領域のデータを主記憶装置２１から読み出し、読み出したデータに基づいて合成画像を生成する。読出部５２は、生成した合成画像を表示装置２に順次出力し、表示させる。
【００９５】
図１１は、画像出力装置１のさらに他のハードウエア構成例を示すブロック図である。図２に示される構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
【００９６】
図１１の例においては、図２の読出・変換・スケーリング部１１Ａ乃至１１Ｃの前段に、それぞれ、読出・デコード部６１Ａ乃至６１Ｃが設けられている。読出・デコード部６１Ａ乃至６１Ｃは、ソース画像を主記憶装置２１から読み出してデコードし、デコードして得られたソース画像のデータを読出・変換・スケーリング部１１Ａ乃至１１Ｃにそれぞれ出力する。
【００９７】
このような構成によっても、上述したような補正処理等が行われるようにすることが可能である。
【００９８】
なお、以上の処理は、デジタルカメラやテレビジョン受像機、パーソナルコンピュータなどの、画像を扱う各種の装置において行われるようにすることが可能である。
【００９９】
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な汎用のパーソナルコンピュータなどに、プログラム記憶媒体からインストールされる。
【０１００】
インストールされるプログラムは、図２のメモリカード３や光ディスク１８（CD-ROM(Compact Disc-Read Only Memory)，DVD(Digital Versatile Disc)等）に記憶して、あるいは、ローカルエリアネットワーク、インターネット、デジタル放送といった、有線または無線の伝送媒体を介して提供される。プログラムは、ROM１９や補助記憶装置１５のHDD１６などに、あらかじめインストールしておくことができる。
【０１０１】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０１０２】
本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０１０３】
【図１】本発明の一実施形態に係る画像出力装置を含む構成の例を示す図である。
【図２】画像出力装置のハードウエア構成例を示すブロック図である。
【図３】ソース側選択領域の例を示す図である。
【図４】デスティネーション側選択領域の例を示す図である。
【図５】画像出力装置のソフトウェア構成例を示す図である。
【図６】アニメーション処理について説明するフローチャートである。
【図７】図６のステップＳ３において行われる補正処理について説明するフローチャートである。
【図８】デスティネーション側選択領域の補正の例を示す図である。
【図９】ソース側選択領域の補正の例を示す図である。
【図１０】画像出力装置の他のハードウエア構成例を示すブロック図である。
【図１１】画像出力装置のさらに他のハードウエア構成例を示すブロック図である。
【符号の説明】
【０１０４】
１  画像出力装置，  １１Ａ乃至１１Ｃ  読出・変換・スケーリング部，  １２  合成部，  ３１  合成表示アプリケーション，  ３２  アニメーションモジュール，  ３３  補正計算モジュール，  ３４  描画モジュール，  ３５  ネットワーク制御モジュール，  ３６  記憶管理モジュール，  ３７  システム制御モジュール
【図１】
2009237454.tif 000003
【図２】
2009237454.tif 000004
【図３】
2009237454.tif 000005
【図４】
2009237454.tif 000006
【図５】
2009237454.tif 000007
【図６】
2009237454.tif 000008
【図７】
2009237454.tif 000009
【図８】
2009237454.tif 000010
【図９】
2009237454.tif 000011
【図１０】
2009237454.tif 000012
【図１１】
2009237454.tif 000013