(57)【特許請求の範囲】
【請求項１】
入力画像の中心座標を特定する特定手段と、
前記入力画像に対する変形パラメータに基づく変形処理により得られる変形画像の中心座標と、前記特定手段により特定された前記入力画像の中心座標と、の差を取得する取得手段と、
前記取得手段により取得された差が小さくなるように前記変形画像の中心座標をシフトさせるシフト手段であって、前記取得手段により取得された差が大きいほど前記変形画像の中心座標を大きくシフトさせるシフト手段と、
前記シフト手段により中心座標がシフトされた変形画像の第１部分領域を前記入力画像と前記変形パラメータとに基づいて生成する第１処理手段と、前記変形画像の第２部分領域を前記入力画像と前記変形パラメータとに基づいて生成する第２処理手段と、を含む複数の処理手段と
を有することを特徴とする画像処理装置。
【請求項２】
前記入力画像を複数の分割画像に分割する分割手段を有し、
前記第１処理手段は、前記複数の分割画像のうちの第１分割画像に対する変形処理によって前記第１部分領域を生成し、前記第２処理手段は、前記複数の分割画像のうち第２分割画像に対する変形処理によって前記第２部分領域を生成することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記分割手段は前記入力画像を、前記シフト手段によるシフト後の中心座標に基づいて特定される前記第１部分領域を生成するために用いられる前記第１分割画像と、前記シフト手段によるシフト後の中心座標に基づいて特定される前記第２部分領域を生成するために用いられる前記第２分割画像と、に分割することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記複数の処理手段による変形処理によって得られた複数の変形画像に対する結合処理を実行して出力画像を生成する結合手段と、
前記結合手段により生成された出力画像を出力する出力手段と
を有することを特徴とする請求項１乃至３の何れか１項に記載の画像処理装置。
【請求項５】
前記画像処理装置は、プロジェクタであり、
前記変形パラメータは、前記プロジェクタの縦傾き角、横傾き角、レンズ状態、及び前記プロジェクタとスクリーンとの間の距離、のうち少なくとも１つを含む光学パラメータに基づいて決定されることを特徴とする請求項１乃至４の何れか１項に記載の画像処理装置。
【請求項６】
入力画像の中心座標を特定する特定工程と、
前記入力画像に対する変形パラメータに基づく変形処理により得られる変形画像の中心座標と、前記特定工程で特定された前記入力画像の中心座標と、の差を取得する取得工程と、
前記取得工程で取得された差が小さくなるように前記変形画像の中心座標をシフトさせるシフト工程であって、前記取得工程で取得された差が大きいほど前記変形画像の中心座標を大きくシフトさせるシフト工程と、
前記シフト工程で中心座標がシフトされた変形画像の第１部分領域を前記入力画像と前記変形パラメータとに基づいて生成する第１処理工程と、前記変形画像の第２部分領域を前記入力画像と前記変形パラメータとに基づいて生成する第２処理工程と、を含む複数の処理工程と
を有することを特徴とする画像処理方法。
【請求項７】
前記入力画像を複数の分割画像に分割する分割工程を有し、
前記第１処理工程では、前記複数の分割画像のうちの第１分割画像に対する変形処理によって前記第１部分領域を生成し、前記第２処理工程では、前記複数の分割画像のうち第２分割画像に対する変形処理によって前記第２部分領域を生成することを特徴とする請求項６に記載の画像処理方法。
【請求項８】
前記分割工程では前記入力画像を、前記シフト工程によるシフト後の中心座標に基づいて特定される前記第１部分領域を生成するために用いられる前記第１分割画像と、前記シフト工程によるシフト後の中心座標に基づいて特定される前記第２部分領域を生成するために用いられる前記第２分割画像と、に分割することを特徴とする請求項７に記載の画像処理方法。
【請求項９】
前記複数の処理工程での変形処理によって得られた複数の変形画像に対する結合処理を実行して出力画像を生成する結合工程と、
前記結合工程で生成された出力画像を出力する出力工程と
を有することを特徴とする請求項６乃至８の何れか１項に記載の画像処理方法。
【請求項１０】
前記画像処理方法は、プロジェクタが実行し、
前記変形パラメータは、前記プロジェクタの縦傾き角、横傾き角、レンズ状態、及び前記プロジェクタとスクリーンとの間の距離、のうち少なくとも１つを含む光学パラメータに基づいて決定されることを特徴とする請求項６乃至９の何れか１項に記載の画像処理方法。
【請求項１１】
コンピュータを、請求項１乃至５の何れか１項に記載の画像処理装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像変形処理を含む画像処理技術に関するものである。
【背景技術】
【０００２】
プロジェクタなどの製品において、プロジェクタの出力光がスクリーンに投影されると、スクリーン上に投影される有効領域は、プロジェクタの設置傾き角や、光学的なレンズシフトなどに起因して台形状に歪みが生じる。この台形状の歪みがあるままではユーザにとって見づらいため、スクリーン上に投影される有効領域が矩形状になるように、逆台形状に有効領域を画像変形する処理が一般に行われている。この画像変形処理はキーストーン補正処理、台形補正処理などの名称で知られている。
【０００３】
ところで近年、映像の高解像度化が進み、上述の画像変形処理においても、より大きな解像度の映像を処理することが求められている。しかしながら通常、画像変形処理装置には処理可能な解像度に上限があり、単体では要求される解像度を処理できない場合がある。前述の処理可能な解像度の上限は、画像変形処理装置の動作周波数に起因する処理スループットや、構成要素として有する内部バッファのラインバッファ水平方向サイズや、構成要素として有するフレームメモリのＤＲＡＭの転送帯域によって決まる。
【０００４】
上述の問題を解決するため、例として特許文献１や特許文献２などの先行技術が提案されている。これらの方式では、解像度の高い入力映像を複数に切り出し、それぞれ複数の画像変形処理装置で分担して処理することで、上述の問題を解決している。
【０００５】
より詳細には、特許文献１に記載の方式では、プロジェクタ上で合成した各分割画像の境界に画素欠損が発生しない範囲の各分割画像をそれぞれ原画像から切り出す複数の画像切り出し部を備える。また、スクリーンの投影面の３次元形状に応じて投影画像が歪まないように、複数の画像切り出し部のそれぞれにより切り出された各分割画像を変形して補正し、プロジェクタに出力する複数の画像変形部を備える。なお、ここでは説明の簡略化のために、特徴的な要素を抜粋して記載した。
【０００６】
また、特許文献２に記載のシステムは、複数のプロジェクタからの投影像を互いにオーバーラップさせながら並べ、入力される高精細画像データに応じた１つの高精細画像をスクリーン上に表示する画像投影システムである。このシステムは、上記各プロジェクタに基準画像データを入力してスクリーン上に投影された基準画像を撮像する撮像部を備える。また、上記撮像部により撮像された基準画像撮像データに基づき算出・記憶された各プロジェクタの投影領域の上記スクリーンに対する位置に関するパラメータを参照する。次に、上記高精細画像データから上記参照されたパラメータに基づき各投影領域の位置に対応する画像領域を切り出して各プロジェクタに出力する画像処理部を備える。
【０００７】
このように、特許文献１、特許文献２のいずれに記載の先行技術も、処理の分担を実現し、上述の問題を解決している。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−３１２０９９号公報
【特許文献２】特許第３７３５１５８号
【発明の概要】
【発明が解決しようとする課題】
【０００９】
画像変形処理では、画像の有効領域のサイズが入力／出力で変化する。このため、複数の画像変形部から成る画像変形装置の場合、個々の画像変形部において出力画像サイズよりも入力画像サイズを大きくしなければならない場合がある。
【００１０】
この様子を図１に示す。図１では、水平サイズｉｎ＿ｗ＿ａｌｌ（＝ｏｔ＿ｗ＿ａｌｌ）、垂直サイズｉｎ＿ｈ＿ａｌｌ（＝ｏｔ＿ｈ＿ａｌｌ）の入力画像（Ａｌｌ  ｉｎｐｕｔ  ａｒｅａ）１００の左側領域を左用の画像変形部、右側領域を右用の画像変形部にて画像変形させている。これにより、結果として、入力画像１００を変形させた出力画像（Ａｌｌ  ｏｕｔｐｕｔ  ａｒｅａ）１０１を得ている。
【００１１】
出力画像１０１の変形形状は、プロジェクタ製品のキーストーン補正処理であれば、プロジェクタからスクリーンまでの投影距離、縦／横設置角度、縦／横レンズシフトなどのパラメータで決定される。
【００１２】
それぞれの画像変形部の水平出力サイズは等しく、ｏｔ＿ｗ＿ｌｅｆｔ＝ｏｔ＿ｗ＿ｒｉｇｈｔ＝（ｏｔ＿ｗ＿ａｌｌ／２）であり、垂直入力／出力サイズも等しく、ｉｎ＿ｈ＿ａｌｌ＝ｏｔ＿ｈ＿ａｌｌである。
【００１３】
左用の画像変形部に着目すると、該画像変形部が水平出力サイズｏｔ＿ｗ＿ｌｅｆｔを出力するためには、ｌｅｆｔ  ｏｕｔｐｕｔ  ａｒｅａに白色で図示される台形領域１０３を出力する必要がある。この台形領域１０３は、ｌｅｆｔ  ｉｎｐｕｔ  ａｒｅａに白色で図示される矩形領域１０２に対応するので、該画像変形部で必要となる水平入力サイズｉｎ＿ｗ＿ｌｅｆｔ（＞ｉｎ＿ｗ＿ｒｉｇｈｔ）が算出できる。これは右用の画像変形部についても同様である。この結果、個々の画像変形部に入力すべき水平入力サイズｉｎ＿ｗ＿ｌｅｆｔ、ｉｎ＿ｗ＿ｒｉｇｈｔが明らかになる。
【００１４】
ところで、個々の画像変形部で処理可能な入力サイズには通常、上限がある。この上限は、画像変形処理装置の動作周波数に起因する処理スループットや、構成要素として有する内部バッファ（例えばラインバッファの水平方向サイズ）や、構成要素として有するフレームメモリ（例えばＤＲＡＭの転送帯域）などによって決まる。
【００１５】
このため、個々の画像変形処理への水平入力サイズｉｎ＿ｗ＿ｌｅｆｔ、ｉｎ＿ｗ＿ｒｉｇｈｔは、水平入力サイズの上限値以下にする必要がある。しかしながら、出力画像の有効領域に偏りのある変形の場合、個々の画像変形部への水平入力サイズｉｎ＿ｗ＿ｌｅｆｔ、ｉｎ＿ｗ＿ｒｉｇｈｔにも偏りが生じ、結果として変形の度合いが小さい場合にも水平入力サイズの上限値を超えてしまうという問題がある。
【００１６】
次に、背景技術で挙げた先行技術について上記の問題が起こりえるかを説明する。まず、特許文献１には、出力画像の有効領域を決める方法が記載されておらず、出力画像の有効領域が任意の形状であった場合を例として説明がなされている。しかしながらこの方法では、個々の画像変形部の制限に応じて、出力画像の有効領域の位置を補正する構成を持たない。このため出力画像の有効領域の偏りを平均化することが出来ず、結果として変形の度合いが小さい場合にも水平入力サイズの上限値を超えてしまうという前述の問題が起こりえると言える。
【００１７】
また、特許文献２では、出力画像の有効領域を決める方法として、スクリーン上に投影した４角形の頂点のうち、最も角度の大きな頂点を基準点として出力画像の有効領域を決める方法が示されている。具体的には特許文献２の”図４（ａ）投影画像”に示す投影画像の最大範囲を示す４角形の頂点のうち、最も角度の大きな”Ｐ０”を基準点としている。しかしながら、この方法では、出力画像の有効領域の偏りを平均化することができず、結果として変形の度合いが小さい場合にも水平入力サイズの上限値を超えてしまうという前述の問題が起こりえると言える。
【００１８】
またこの他にも、分割前の入力画像を全て表示できない場合があるという問題がある。具体的には、特許文献２の”図３（ｄ）スクリーンに投影した画像”の左側画像の下部や、右側画像の上部が表示されないという現象がある。この現象があると、そもそも要件仕様を満たせない可能性があるという問題がある。
【００１９】
このように、先行技術では、出力画像の有効領域の偏りに起因する変形度合いの大幅な制限という課題がある。本発明は、このような問題に鑑みてなされたものであり、入力矩形画像を分割し、それぞれの分割画像を複数の画像変形部にて画像変形させる場合に、それぞれの分割画像の水平サイズを平均化するための技術を提供することを目的とする。
【課題を解決するための手段】
【００２０】
本発明の目的を達成するために、例えば、本発明の画像処理装置は、入力画像の中心座標を特定する特定手段と、
前記入力画像に対する変形パラメータに基づく変形処理により得られる変形画像の中心座標と、前記特定手段により特定された前記入力画像の中心座標と、の差を取得する取得手段と、
前記取得手段により取得された差が小さくなるように前記変形画像の中心座標をシフトさせるシフト手段であって、前記取得手段により取得された差が大きいほど前記変形画像の中心座標を大きくシフトさせるシフト手段と、
前記シフト手段により中心座標がシフトされた変形画像の第１部分領域を前記入力画像と前記変形パラメータとに基づいて生成する第１処理手段と、前記変形画像の第２部分領域を前記入力画像と前記変形パラメータとに基づいて生成する第２処理手段と、を含む複数の処理手段と
を有することを特徴とする。
【発明の効果】
【００２１】
本発明の構成によれば、入力矩形画像を分割し、それぞれの分割画像を複数の画像変形部にて画像変形させる場合に、それぞれの分割画像の水平サイズを平均化することができる。
【図面の簡単な説明】
【００２２】
【図１】画像変形の例を示す図。
【図２】実施形態の効果を説明する図。
【図３】画像変形の例を示す図。
【図４】画像処理装置の機能構成例を示すブロック図。
【図５】画像変形部４０６及び画像変形部４０７の機能構成例を示すブロック図。
【図６】変形後オフセット計算部４０３が行う処理のフローチャート。
【図７】入力画像サイズ計算部４０４が行う処理のフローチャート。
【発明を実施するための形態】
【００２３】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載の構成の具体的な実施例の１つである。
【００２４】
本実施形態に係る画像処理装置は、入力された入力矩形画像（静止画でも良いし、動画像中の各フレームの画像でも良い）を変形させてスクリーンなどの平面に対して投影する装置若しくは該装置に組み込まれる画像処理ユニットである。
【００２５】
本実施形態に係る画像処理装置の機能構成例について、図４のブロック図を用いて説明する。図４には、入力矩形画像から変形画像を生成するための主要な構成のみを記しており、画像投影を行う構成などについては省略している。
【００２６】
変形後形状決定部４０１は、入力矩形画像の形状を変形させる為の変形パラメータを用いて該入力矩形画像を変形させた場合に、該入力矩形画像の四隅の座標が写像される座標を、変形後形状として求める。
【００２７】
ここで、変形パラメータとは、入力矩形画像と出力画像との対応関係を決める情報で、例えばプロジェクタ製品のキーストーン補正処理であれば、プロジェクタからスクリーンまでの投影距離、縦／横設置角度、縦／横レンズシフトから成るパラメータを含む。
【００２８】
変形パラメータと変形後形状との関係は、入力矩形画像を変形後形状の４つの頂点で示される４角形に変形すると、変形パラメータで示されるプロジェクタの設置条件において、スクリーン上の投影領域は矩形になる。
【００２９】
変形演算部４０２は、入力矩形画像の四隅の座標と、変形後形状と、を用いて、変形パラメータが表す３×３の写像行列（変形行列）を求める。この写像行列は、入力矩形画像の四隅の座標を、変形後形状の４つの頂点の座標に写像するための行列である。なお、変形パラメータが予めこの写像行列として与えられているのであれば、この写像行列を求める構成は省くことができる。以下では、この写像行列＝変形パラメータとして説明する。
【００３０】
変形後オフセット計算部４０３は、入力矩形画像中の中心座標を求める。そして、変形パラメータを用いて入力矩形画像を変形させた場合に、該中心座標が写像される座標（写像座標）を求め、該求めた座標と該中心座標との差分を、「変形後画像の中心を出力画像の中心に移動させるためのオフセット量」として求める。
【００３１】
入力画像サイズ計算部４０４は、このオフセット量を元に、入力矩形画像を左右２つの画像に分割する場合の、個々の分割画像のサイズを求め、該求めたサイズを入力画像分割部４０５に入力する。
【００３２】
入力画像分割部４０５は、入力画像サイズ計算部４０４が求めたサイズに基づいて入力矩形画像を２つの分割画像に分割し、分割した一方の分割画像を画像変形部４０６に入力し、他方の分割画像を画像変形部４０７に入力する。
【００３３】
画像変形部４０６及び画像変形部４０７は、入力された分割画像に対して変形処理を行い、変形後の画像を出力画像結合部４０８に対して出力する。出力画像結合部４０８は、画像変形部４０６及び画像変形部４０７から出力された変形後の画像を結合して１つの出力画像を形成してから変形後オフセット量だけ移動させ、出力同期信号と、出力画像とを装置外に出力する。ここでのオフセット方向は、後述の変形後オフセット量を求めた方向とは逆方向とする。出力先は画像投影を行う為の機能部（例えばプロジェクタ）であっても良いし、メモリであっても良い。また、ネットワークを介して他の機器であっても良い。
【００３４】
次に、変形後オフセット計算部４０３が行う処理について、同処理のフローチャートを示す図６を用いて説明する。ステップＳ６０１では、入力矩形画像（ｓｒｃ画像）の中心点の座標（中心座標）を求める。図３では、入力矩形画像３００の水平方向のサイズがｉｎ＿ｗ＿ａｌｌ、垂直方向のサイズがｉｎ＿ｈ＿ａｌｌであるため、この場合は、以下の式に従って、入力矩形画像３００の中心点３０７の座標（ｓｒｃ＿ｘ、ｓｒｃ＿ｙ）を求める。
【００３５】
ｓｒｃ＿ｘ  ＝  ｉｎ＿ｗ＿ａｌｌ／２−１
ｓｒｃ＿ｙ  ＝  ｉｎ＿ｈ＿ａｌｌ／２−１
以下では、何れの画像であっても、左上隅の座標を（０，０）としている。
【００３６】
次に、ステップＳ６０２では、上記変形パラメータを用いて入力矩形画像を変形させた場合に、中心座標が写像される座標を求める。図３の場合、変形パラメータを用いて入力矩形画像３００を変形させた変形画像（ｄｓｔ画像）３０１の中心点３０８の座標を求めることになる。
【００３７】
具体的には、中心座標（ｓｒｃ＿ｘ，ｓｒｃ＿ｙ）を有する入力矩形画像３００中の中心点３０７に対応する、変形画像３０１中の中心点３０８の座標ＤＳＴ＿ＰＯＩＮＴ（ｄｓｔ＿ｘ，ｄｓｔ＿ｙ）は、以下の式に従って求められる。
【００３８】
【数１】
0006000613.tif 000002
【００３９】
なおこの式において、ｓ２ｄ＿ｏｆｆｓ＿ｘ＿ｐｒｅ、ｓ２ｄ＿ｏｆｆｓ＿ｙ＿ｐｒｅ、ｓ２ｄ＿ｏｆｆｓ＿ｘ＿ｐｓｔ、ｓ２ｄ＿ｏｆｆｓ＿ｙ＿ｐｓｔ、ｍ００〜ｍ２２の各係数は何れも、変形パラメータである。これらの変形パラメータは、ｓｒｃ画像とｄｓｔ画像との間の座標の関係から求められる。ｍ００〜ｍ２２を算出する方法は公知のため、これに係る説明は省略する。ｓ２ｄ＿ｏｆｆｓ＿ｘ＿ｐｒｅ、ｓ２ｄ＿ｏｆｆｓ＿ｙ＿ｐｒｅは変形前に付加するオフセットであり、入力矩形画像にオフセットを付けて変形を行う場合に使用する。また、ｓ２ｄ＿ｏｆｆｓ＿ｘ＿ｐｓｔ、ｓ２ｄ＿ｏｆｆｓ＿ｙ＿ｐｓｔは変形後に付加するオフセットであり、出力画像にオフセットを付けて変形を行う場合に使用する。これらの係数は変形形状を面内で移動する場合に使用するものであるが、本実施形態ではその必要はないため、いずれも０として説明を進める。
【００４０】
次に、ステップＳ６０３では、ステップＳ６０１で求めた中心座標と、ステップＳ６０２で求めた座標と、の差分（変形後オフセット）ｄｉｆｆ＿ｘを、以下の式に従って求める。
【００４１】
ｄｉｆｆ＿ｘ  ＝  ｒｏｕｎｄｄｏｗｎ（ｓｒｃ＿ｘ−ｄｓｔ＿ｘ）
この計算は具体的には、ＤＳＴ＿ＰＯＩＮＴとしてｄｓｔ＿ｘが求まったのち、この式で変形後オフセット：ｄｉｆｆ＿ｘを求める。ここで、ｒｏｕｎｄｄｏｗｎ（）は、小数点以下を切り捨て、整数を返す関数である。
【００４２】
ここで求めた変形後オフセット：ｄｉｆｆ＿ｘは、変形後形状を出力画像の中心に移動するためのオフセット量である。このオフセットを適用すると、変形画像３０１に適用すると、図３に示す如く、変形画像３０１は、このオフセット分３１０だけ移動して変形画像３０２となり、中心点３０８も、このオフセット分３１０だけ移動して中心点３０９となる。これにより、出力画像中の中心点３０９の座標（写像中心座標）と、入力矩形画像３００中の中心点３０７の座標と、は同じになる。
【００４３】
次に、入力画像サイズ計算部４０４が行う処理について、同処理のフローチャートを示す図７を用いて説明する。
【００４４】
ステップＳ７０１では、ｓｒｃ画像を変形させた画像であるｄｓｔ画像の各頂点の座標を求める。図３の場合、入力矩形画像３００の４頂点の座標ＳＲＣ＿ＰＯＩＮＴ０〜３を下記の通り定義すれば、変形画像３０１の各頂点の座標ＤＳＴ＿ＰＯＩＮＴ０〜３は下記の式に従って計算することができる。
【００４５】
【数２】
0006000613.tif 000003
【００４６】
次に、ステップＳ７０２では、ステップＳ７０１で求めた変形画像３０１の各頂点の座標ＤＳＴ＿ＰＯＩＮＴ０〜３に、上記のオフセットを加えることで、下記の式の如く、座標ｄｓｔ＿ｘ０〜３を求める。
【００４７】
ｄｓｔ＿ｘ０〜３＝ｄｓｔ＿ｘ０〜３＋ｄｉｆｆ＿ｘ
この処理は、変形パラメータを用いて入力矩形画像を変形させた場合に、該入力矩形画像の四隅の座標が写像される座標を求め、該求めた座標に上記のオフセットを加算することで得られる座標を、写像四隅座標として求める処理である。
【００４８】
次に、ステップＳ７０３では、ステップＳ７０２求めたｄｓｔ＿ｘ０〜３を用いて、出力可能なマージン量を計算する。具体的には下記の計算で求める。下記のｏｔ＿ｘ＿ｍａｒｇｉｎ０〜３の示す箇所を図３の３０３に示す。また、式中のＭＩＮ（）は最小の値を返す関数である。
【００４９】
ｏｔ＿ｘ＿ｍａｒｇｉｎ０＝（ｉｎ＿ｗ＿ａｌｌ／２−１）−ｄｓｔ＿ｘ０
ｏｔ＿ｘ＿ｍａｒｇｉｎ１＝ｄｓｔ＿ｘ１−（ｉｎ＿ｗ＿ａｌｌ／２＋１）
ｏｔ＿ｘ＿ｍａｒｇｉｎ２＝ｄｓｔ＿ｘ２−（ｉｎ＿ｗ＿ａｌｌ／２＋１）
ｏｔ＿ｘ＿ｍａｒｇｉｎ３＝（ｉｎ＿ｗ＿ａｌｌ／２−１）−ｄｓｔ＿ｘ３
ｍｉｎ＿ｏｔ＿ｘ＿ｍａｒｇｉｎ＝ＭＩＮ（ｏｔ＿ｘ＿ｍａｒｇｉｎ０，ｏｔ＿ｘ＿ｍａｒｇｉｎ１，ｏｔ＿ｘ＿ｍａｒｇｉｎ２，ｏｔ＿ｘ＿ｍａｒｇｉｎ３）
この処理は、上記四隅のそれぞれの写像四隅座標と写像中心座標との間の、入力矩形画像の一辺（ここではｘ軸方向に沿った辺）に沿った方向の距離を求め、該求めた距離のうち最小の距離を求める処理である。
【００５０】
ステップＳ７０４では、出力可能なマージン量（ｍｉｎ＿ｏｔ＿ｘ＿ｍａｒｇｉｎ）と、後段で必要とされる出力マージン量（ｒｅｑ＿ｏｔ＿ｘ＿ｍａｒｇｉｎ）と、メモリパッキング情報と、を用いて、出力マージン量（ｏｔ＿ｘ＿ｍａｒｇｉｎ）を計算する。
【００５１】
なお、メモリパッキング情報は、ＤＲＡＭなどのフレームメモリ上にピクセルデータを配置する際の情報であり、以下の式中では３２Ｂｙｔｅに８ｐｉｘｅｌを配置する例を示している。具体的には下記の２つの関係式を満たし、かつ最小の値となる出力マージン量（ｏｔ＿ｘ＿ｍａｒｇｉｎ）を求める。
【００５２】
ｍｉｎ＿ｏｔ＿ｘ＿ｍａｒｇｉｎ≧ｏｔ＿ｘ＿ｍａｒｇｉｎ≧ｒｅｑ＿ｏｔ＿ｘ＿ｍａｒｇｉｎ
（ｏｔ＿ｗ＿ａｌｌ／２）−ｏｔ＿ｘ＿ｍａｒｇｉｎ−１＝８×Ｎ  （Ｎは自然数）
次に、ステップＳ７０５では、出力マージン量（ｏｔ＿ｘ＿ｍａｒｇｉｎ）と、入力矩形画像の水平方向のサイズ（ｉｎ＿ｗ＿ａｌｌ）と、を用いて、入力マージン量（ｉｎ＿ｘ＿ｍａｒｇｉｎ）を計算する。
【００５３】
この処理の概要を示すと、図３の入力矩形画像３０６における点３２１〜３２４の座標（ｓｒｃ＿ｘ０〜３，ｓｒｃ＿ｙ０〜３）を、変形画像３０５における点３１７〜３２０の座標（ｄｓｔ＿ｘ０〜３，ｄｓｔ＿ｙ０〜３）に変換する式を作る。ここで、点３２１〜３２４はそれぞれ点３１７〜３２０に対応する点であり、入力マージン量ｉｎ＿ｘ＿ｍａｒｇｉｎを算出するために用いる。次に、その式で表わされるｄｓｔ＿ｘ０〜３と、変形画像３０５の点３１７〜３２０の４点とが等しくなるという関係式を、ｓｒｃ＿ｘ０〜３について解き、ｉｎ＿ｘ＿ｍａｒｇｉｎ０〜３を算出する。具体的には、まず以下のとおり変数をとる。
【００５４】
ｓｒｃ＿ｘ０＿ｍａｒｇｉｎ＝（ｉｎ＿ｗ＿ａｌｌ／２）−ｏｔ＿ｘ＿ｍａｒｇｉｎ
ｓｒｃ＿ｘ１＿ｍａｒｇｉｎ＝（（ｉｎ＿ｗ＿ａｌｌ／２）−１）＋ｏｔ＿ｘ＿ｍａｒｇｉｎ
ｓｒｃ＿ｘ２＿ｍａｒｇｉｎ＝（（ｉｎ＿ｗ＿ａｌｌ／２）−１）＋ｏｔ＿ｘ＿ｍａｒｇｉｎ
ｓｒｃ＿ｘ３＿ｍａｒｇｉｎ＝（ｉｎ＿ｗ＿ａｌｌ／２）  −ｏｔ＿ｘ＿ｍａｒｇｉｎ
ｓｒｃ＿ｙ０＝０
ｓｒｃ＿ｙ１＝０
ｓｒｃ＿ｙ２＝ｉｎ＿ｈ＿ａｌｌ−１
ｓｒｃ＿ｙ３＝ｉｎ＿ｈ＿ａｌｌ−１
次に以下の式でｓｒｃ＿ｘ［０〜３］を計算する。
【００５５】
ｓｒｃ＿ｘ［０〜３］＝−（（ｍ２１＊ｓｒｃ＿ｘ［０〜３］＿ｍａｒｇｉｎ−ｍ２１＊ｓ２ｄ＿ｏｆｆｓ＿ｘ＿ｐｓｔ−ｄｉｆｆ＿ｘ＊ｍ２１−ｍ０１）＊ｓｒｃ＿ｙ［０〜３］
＋（ｍ２１＊ｓ２ｄ＿ｏｆｆｓ＿ｙ＿ｐｒｅ＋ｍ２０＊ｓ２ｄ＿ｏｆｆｓ＿ｘ＿ｐｒｅ＋ｍ２２）＊ｓｒｃ＿ｘ［０〜３］＿ｍａｒｇｉｎ
＋（−ｍ２１＊ｓ２ｄ＿ｏｆｆｓ＿ｘ＿ｐｓｔ−ｄｉｆｆ＿ｘ＊ｍ２１−ｍ０１）＊ｓ２ｄ＿ｏｆｆｓ＿ｙ＿ｐｒｅ
＋（−ｍ２０＊ｓ２ｄ＿ｏｆｆｓ＿ｘ＿ｐｒｅ−ｍ２２）＊ｓ２ｄ＿ｏｆｆｓ＿ｘ＿ｐｓｔ
＋（−ｄｉｆｆ＿ｘ＊ｍ２０−ｍ００）＊ｓ２ｄ＿ｏｆｆｓ＿ｘ＿ｐｒｅ−ｄｉｆｆ＿ｘ＊ｍ２２−ｍ０２）
／（ｍ２０＊ｓｒｃ＿ｘ［０〜３］＿ｍａｒｇｉｎ−ｍ２０＊ｓ２ｄ＿ｏｆｆｓ＿ｘ＿ｐｓｔ−ｄｉｆｆ＿ｘ＊ｍ２０−ｍ００）
この処理では、ようは、上記四隅のそれぞれの写像四隅座標と、写像中心座標と、の間の、水平方向の距離を求め、該求めた距離のうち最小の距離よりも小さい距離を出力マージン距離として決定している。そして、変形パラメータを用いて入力矩形画像を変形させた場合に、水平方向において写像中心座標から出力マージン距離だけ離間している座標に写像される写像元の座標を、写像元座標として求めている。
【００５６】
図３の場合、変形画像３０５における中心点から３１５，３１６で示す出力マージン距離だけ水平方向に離間した位置の点３１７〜３２０の座標に写像される写像元の点３２１〜３２４の座標を、写像元座標として求めている。
【００５７】
次に以下の式でｉｎ＿ｘ＿ｍａｒｇｉｎ［０〜３］を計算する。式中のＦＬＯＯＲ（）は小数点を切り捨てて整数を返す関数、ＣＥＩＬＩＮＧ（）は小数切り上げで整数を返す関数である。
【００５８】
ｉｎ＿ｘ＿ｍａｒｇｉｎ０＝１＋（ｉｎ＿ｗ＿ａｌｌ／２）  −ＦＬＯＯＲ（ｓｒｃ＿ｘ０）
ｉｎ＿ｘ＿ｍａｒｇｉｎ１＝１−（ｉｎ＿ｗ＿ａｌｌ／２−１）  ＋ＣＥＩＬＩＮＧ（ｓｒｃ＿ｘ１）
ｉｎ＿ｘ＿ｍａｒｇｉｎ２＝１−（ｉｎ＿ｗ＿ａｌｌ／２−１）  ＋ＣＥＩＬＩＮＧ（ｓｒｃ＿ｘ２）
ｉｎ＿ｘ＿ｍａｒｇｉｎ３＝１＋（ｉｎ＿ｗ＿ａｌｌ／２）  −ＦＬＯＯＲ（ｓｒｃ＿ｘ３）
そして、以下の式を計算することで、入力マージン（ｉｎ＿ｘ＿ｍａｒｇｉｎ）を求める。
【００５９】
ｉｎ＿ｘ＿ｍａｒｇｉｎ＝ＭＡＸ（ｉｎ＿ｘ＿ｍａｒｇｉｎ０，  ｉｎ＿ｘ＿ｍａｒｇｉｎ１，  ｉｎ＿ｘ＿ｍａｒｇｉｎ２，  ｉｎ＿ｘ＿ｍａｒｇｉｎ３）
入力マージン（ｉｎ＿ｘ＿ｍａｒｇｉｎ）が決定すると、画像変形部４０６及び画像変形部４０７のそれぞれに入力する分割画像の水平方向のサイズは、下記の通り決定する。
【００６０】
（ｉｎ＿ｗ＿ａｌｌ／２）＋ｉｎ＿ｘ＿ｍａｒｇｉｎ
この処理では、それぞれの写像元座標と写像中心座標との間の水平方向における距離を求め、該求めた距離のうち最大の距離を入力マージン距離として決定している。そして、入力矩形画像の水平方向におけるサイズの半分に入力マージン距離を加えた結果を、分割画像水平サイズとして求めている。
【００６１】
画像変形部４０６には、入力矩形画像において座標（０，０）を左上隅、座標（（ｉｎ＿ｗ＿ａｌｌ／２）＋ｉｎ＿ｘ＿ｍａｒｇｉｎ−１，ｉｎ＿ｈ＿ａｌｌ−１）を右下隅とする領域内の画像を入力することになる。また、画像変形部４０７には、入力矩形画像において座標（（ｉｎ＿ｗ＿ａｌｌ／２）−ｉｎ＿ｘ＿ｍａｒｇｉｎ，０）を左上隅、座標（ｉｎ＿ｗ＿ａｌｌ−１，ｉｎ＿ｈ＿ａｌｌ−１）を右下隅とする領域内の画像を入力することになる。
【００６２】
即ち、入力矩形画像の左辺からの距離が該分割画像水平サイズ以内となる領域内の画像、入力矩形画像の右辺からの距離が該分割画像水平サイズ以内となる領域内の画像、のそれぞれの形状を変形させてから出力することになる。
【００６３】
次に、画像変形部４０６及び画像変形部４０７の機能構成例について、図５のブロック図を用いて説明する。画像変形部４０６及び画像変形部４０７の何れも同様の構成を有しているため、図５では、画像変形部４０６及び画像変形部４０７を画像変形部５１５として示している。
【００６４】
画像変形部５１５は、入力同期信号と入力矩形画像とに対して、変形後オフセットと変形パラメータにもとづいて変形処理を行い、出力同期信号と変形画像を出力する。画像変形を行うための構成として、本実施形態ではフレームメモリの前段でランダムアクセスを行い、後段で順次アクセスを行う構成をとっている。なお、以下では変形前のｓｒｃ画像中の座標をｓｒｃ座標、ｄｓｔ画像中の座標をｄｓｔ座標と呼ぶ。
【００６５】
入力同期信号はｓｒｃ座標カウンタ５００に入力され、内部カウンタで座標をカウントしてｓｒｃ座標の整数部を出力する。座標変換部５０１は、ｓｒｃ座標の整数部をｄｓｔ座標に変換して、３ｘ３周辺座標生成部５０２に入力する。
【００６６】
座標変換部５０１が行う処理をより詳細に説明すると、上記の処理で算出した変形後オフセットｄｉｆｆ＿ｘと、変形パラメータと、にもとづいて、入力矩形画像の各座標ＳＲＣ＿ＰＯＩＮＴに対応する出力画像の座標ＤＳＴ＿ＰＯＩＮＴを計算する。この処理は以下の式で表わされる。この処理により、変形後オフセットと変形パラメータにもとづいて変形処理が行われる。
【００６７】
【数３】
0006000613.tif 000004
【００６８】
３ｘ３周辺座標生成部５０２は、入力されたｄｓｔ座標を中心とした周辺３×３画素のｄｓｔ座標を生成して出力する。逆座標変換部５０３は９つ配置され、ｄｓｔ座標整数部を逆変換して９つのｓｒｃ座標を出力する。
【００６９】
このｓｒｃ座標は３ｘ３出力座標判定部５０４に入力され、ｓｒｃ座標カウンタ５００から入力されるｓｒｃ座標の整数部と比較され、ｖａｌｉｄ信号３ｘ３分とｓｒｃ座標の小数部３ｘ３分が出力される。
【００７０】
一方、画像変形部５１５に入力された入力矩形画像は、ラインバッファ５０７に一旦保持された後、４×４画素の１６画素分のピクセルデータが出力される。本実施形態では、ピクセル補間方式をバイキュービック方式と仮定したため、４×４画素のピクセルデータを出力するようにしたが、補間方式が異なれば参照範囲は４×４画素でなくてもよい。
【００７１】
ピクセル補間処理部５０５は、ｖａｌｉｄ信号３×３と、ｓｒｃ座標の小数部３×３と、ピクセルデータ４×４を入力とし、ｖａｌｉｄ信号３×３と補間ピクセルデータ３×３を出力する。Ｖａｌｉｄ信号３×３は入力をそのまま出力し、補間ピクセルデータ３×３は、入力されたピクセルデータ４×４を参照して、バイキュービック補間方式でピクセル補間したデータ３×３点分を出力する。
【００７２】
次に、ライトＤＭＡＣ５０６にて、補間ピクセルデータ３×３点分のデータは、ｖａｌｉｄ信号３×３が有効なもののみｄｓｔ座標の整数部３×３で指定されるアドレスにメモリライトされる。出力された補間ピクセルデータはフレームメモリ５０８に保持される。
【００７３】
次に図５の画像変形部５１５のメモリリードより後段の部分を説明する。入力同期信号は、同期信号の遅延部５１１に入力され、出力同期信号が生成される。画像変形部５１５の後段部分は、上記の、遅延して生成された出力同期信号によって駆動される。
【００７４】
出力同期信号はｄｓｔ座標カウンタ５１０に入力され、ｄｓｔ座標の整数部が内部カウンタで生成されて出力される。リードＤＭＡＣ５０９は、ｄｓｔ座標の整数部で指定されるアドレスの補間ピクセルデータをフレームメモリ５０８から取得する。
【００７５】
逆座標変換部５１２は、ｄｓｔ座標の整数部を入力とし、ｓｒｃ座標を生成する。ｓｒｃ座標は有効領域判定部５１３に入力され、該当のｓｒｃ座標が有効な領域にあるか、無効な領域にあるかを判定し、ｖａｌｉｄ信号を出力する。ここでｓｒｃ座標が入力矩形画像の領域外（負の領域または、正の方向にｉｎ＿ｗ＿ａｌｌ、ｉｎ＿ｈ＿ａｌｌ以上の領域）となった場合は、ｄｓｔ座標カウンタ５１０で生成されたｄｓｔ座標に対応するｓｒｃ座標は無いため、ｖａｌｉｄ信号は０が出力される。一方、その逆の場合は有効な領域にあることを示しているのでｖａｌｉｄ信号は１が出力される。
【００７６】
最後にＭＵＸ５１４は、入力される補間ピクセルデータと固定色をｖａｌｉｄ信号にもとづいて選択し、変形画像として出力する。固定色はプロジェクタの例では台形外の領域であり、一般には黒色が出力される。
【００７７】
次に、上記の処理による効果について、図２を用いて説明する。図２は、図１に対応させた、本実施形態の画像変形例を示したものである。図１および図２の各分割画像の水平入力サイズ（ｉｎ＿ｗ＿ｌｅｆｔ、ｉｎ＿ｗ＿ｒｉｇｈｔ）より、本実施形態の構成により水平入力サイズが平均化されていることがわかる。より具体的には、図２において左右にそれぞれ入力すべき画像は、左側入力画像が画像２０３、右側入力画像が画像２０５となり、これは図１の左側の矩形領域１０２および右側の矩形領域１０４と比較すると水平サイズが平均化されている。このことにより、左側出力画像２０４と右側出力画像２０６の有効領域の偏りを軽減することができ、結果として同じハードウエアリソースで、より広い変形度合いをサポートすることが可能となる。
【００７８】
なお、上記の説明では、入力矩形画像を左右２つに分割する構成を示したが、分割の方法はこれに限ったものではなく、上下２分割や、それらを組み合わせた田の字型の分割などであってもよい。
【００７９】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0006000613.tif 000005
【図２】
0006000613.tif 000006
【図３】
0006000613.tif 000007
【図４】
0006000613.tif 000008
【図５】
0006000613.tif 000009
【図６】
0006000613.tif 000010
【図７】
0006000613.tif 000011