(57)【特許請求の範囲】
【請求項１】
入力画像が変形された変形画像の一の座標に対応する前記入力画像の複数座標を特定する特定手段と、
前記特定手段により特定された前記複数座標に対応する複数画素値のそれぞれを、予め定められたパターンに従って正の数と負の数に分類し、該分類後の複数画素値の加算結果の絶対値に基づいて、前記複数座標に適用されるべきエッジ強調の度合いを決定する第１決定手段と、
前記第１決定手段により決定されたエッジ強調の度合いに応じた画像処理を前記複数座標に対して実行する処理手段と、
前記処理手段による前記複数座標に対する画像処理により得られた画素値を前記一の座標の画素値とする変形画像を出力する出力手段と
を有することを特徴とする画像処理装置。
【請求項２】
前記処理手段は、前記第１決定手段により決定されたエッジ強調の度合いに応じて、前記複数座標に対して適用すべき画素補間処理のためのフィルタ係数を決定し、該決定されたフィルタ係数を用いて前記画像処理として画素補間処理を実行することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第１決定手段は、リンギングの発生しやすさに関する評価値として前記絶対値を用いることを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記エッジ強調の度合いを決定するための前記パターンは、前記複数座標に対して適用すべき画素補間処理のために前記複数画素値のそれぞれを正の数と負の数に分類するためのパターンと同じであることを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記処理手段は、前記複数座標に対する画素補間処理と、前記第１決定手段により決定されたエッジ強調の度合いに応じた平滑化処理と、を前記画像処理として実行することを特徴とする請求項１に記載の画像処理装置。
【請求項６】
前記処理手段は、前記複数座標に適用されるべきエッジ強調の度合いが閾値以上であると判定された場合は、前記複数座標に対して平滑化処理を実行してから画素補間処理を実行し、前記複数座標に適用されるべきエッジ強調の度合いが前記閾値未満であると判定された場合は、前記複数座標に対して平滑化処理を実行せずに画素補間処理を実行することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記特定手段は、前記変形画像の前記一の座標に対応する前記入力画像の座標を特定し、該特定された座標とその周辺の座標を前記複数座標として特定することを特徴とする請求項１乃至６の何れか１項に記載の画像処理装置。
【請求項８】
入力画像が変形された変形画像の一の座標に対応する前記入力画像の複数座標を特定し、
前記特定された前記複数座標に対応する複数画素値のそれぞれを、予め定められたパターンに従って正の数と負の数に分類し、該分類後の複数画素値の加算結果の絶対値に基づいて、前記複数座標に適用されるべきエッジ強調の度合いを決定し、
前記決定されたエッジ強調の度合いに応じた画像処理を前記複数座標に対して実行し、
前記複数座標に対する画像処理により得られた画素値を前記一の座標の画素値とする変形画像を出力する
ことを特徴とする画像処理方法。
【請求項９】
コンピュータを請求項１乃至７の何れか１項に記載の画像処理装置の各手段として動作させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像変形技術に関するものである。
【背景技術】
【０００２】
画像処理装置において画像変形処理が必要とされる場合が多々ある。例えば、プロジェクタ製品においては、キーストーン（台形）変形処理と呼ばれる画像変形処理が行われている。具体的には、プロジェクタの出力光がスクリーンに投影されると、スクリーン上に投影される有効領域は、プロジェクタの設置傾き角や光学的なレンズシフトなどに起因して、その台形状に歪みが生じる。この台形状の歪みがあるままではユーザにとって見づらいため、逆台形状に有効領域を画像変形し、スクリーン上に投影される有効領域が矩形状になるように画像変形する処理が行われている。この画像変形処理は、キーストーン（台形）変形処理として一般に知られている。
【０００３】
画像変形処理を行うためには、入力される変形前の画像の複数の画素を参照し、これらの画素を補間して変形後の画像の各画素を生成する処理が必要になる。この技術としては、例えばバイキュービック補間処理等が一般に知られている。バイキュービック補間処理では、変形前の画像の４×４の画素を参照し、各画素にバイキュービック補間処理で規定される重みづけ係数を乗じて総和を計算することで、変形後の各画素を算出する。バイキュービック補間処理には先鋭化の効果があり、処理後はエッジが強調された鮮明な画像になるという効果がある。しかしながら一方で、変形前の画像に元々エッジがあった場合には、そのエッジは過剰に強調されてしまうという好ましくない影響がある。この影響はリンギングとして一般に知られ、見え方としては、変形前の画像と比べて、過剰に強調された箇所は色味が変わって見えてしまう。この様に、リンギングは画像の平坦な領域よりも平坦でない領域（言い換えるとエッジのある領域）で発生しやすいという特徴がある。
【０００４】
リンギングを軽減するため、特許文献１では、画像の各領域の平坦性に応じて画素補間処理の参照画素数を変えるという方法が開示されている。具体的には、リンギングの発生しにくい平坦な領域には、先鋭化効果が高いがリンギングが発生しやすい、参照画素数の多い画素補間処理を適用する。一方、リンギングの発生しやすい平坦でない領域には、先鋭化効果が低いがリンギングが発生しにくい、参照画素数の少ない画素補間処理を適用している。この様に処理を切り替えることで特許文献１ではリンギングの発生を抑制している。
【０００５】
また、特許文献２では、画像の各領域の平坦性に応じて画素補間処理の参照画素の画素値を補正するという方法が開示されている。具体的には、リンギングの発生しにくい平坦な領域には、画素補間処理の参照画素の画素値を補正せずに画素補間処理を行う。一方、リンギングの発生しやすい平坦でない領域には、画素補間処理の参照画素の画素値を平坦化するように補正して画素補間処理を行う。この様に処理を切り替えることで特許文献２ではリンギングの発生を抑制している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第４７６２１１５号
【特許文献２】特許第３７０６２０６号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１では、画像の各領域の平坦性に応じて画素補間処理の参照画素数を変えるという方法が開示されているが、参照画素数の多い画素補間処理は、その処理量が参照画素数の一辺の二乗に比例して増大してしまうという課題がある。例えば、参照画素数を４×４画素から、特許文献１に例示されている８×８画素に変えた場合、処理量は参照画素数の一辺の二乗に比例して少なくとも４倍になってしまい、実装コストが増大するという課題がある。
【０００８】
特許文献２では、画像の各領域の平坦性に応じて画素補間処理の参照画素の画素値を補正するという方法が開示されている。しかしながらこの方法では、リンギングの発生しやすい平坦でない領域は、画素補間処理の前後でリンギングの影響以前に色味が変化してしまうという課題がある。
【０００９】
本発明はこのような問題に鑑みてなされたものであり、リンギングを抑制しつつ画像変形を行うための技術を提供する。
【課題を解決するための手段】
【００１０】
本発明の一様態は、入力画像が変形された変形画像の一の座標に対応する前記入力画像の複数座標を特定する特定手段と、
前記特定手段により特定された前記複数座標に対応する複数画素値のそれぞれを、予め定められたパターンに従って正の数と負の数に分類し、該分類後の複数画素値の加算結果の絶対値に基づいて、前記複数座標に適用されるべきエッジ強調の度合いを決定する第１決定手段と、
前記第１決定手段により決定されたエッジ強調の度合いに応じた画像処理を前記複数座標に対して実行する処理手段と、
前記処理手段による前記複数座標に対する画像処理により得られた画素値を前記一の座標の画素値とする変形画像を出力する出力手段と
を有することを特徴とする。
【発明の効果】
【００１１】
本発明の構成によれば、リンギングを抑制しつつ画像変形を行うことができる。
【図面の簡単な説明】
【００１２】
【図１】画像変形装置１００の機能構成例を示すブロック図。
【図２】変形制御部１０３が行う処理のフローチャート。
【図３】リンギング判定部１０４が行う処理のフローチャート。
【図４】画素補間部１０６が行う処理のフローチャート。
【図５】フィルタ係数算出部１０５が行う処理のフローチャート。
【図６】リンギング判定部１０４が行う処理の意義について説明する図。
【図７】画像変形装置７００の機能構成例を示すブロック図。
【図８】平滑化部７０５が行う処理のフローチャート。
【発明を実施するための形態】
【００１３】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施例の１つである。
【００１４】
［第１の実施形態］
本実施形態では、入力画像を変形した出力画像を生成する画像処理技術について説明する。先ず、このよう画像処理技術を実施する画像変形装置（画像処理装置）１００の機能構成例について、図１のブロック図を用いて説明する。
【００１５】
画像変形装置１００は、入力画像１０１と、上記変形の際の画素補間に用いるフィルタ係数（フィルタ係数群）１０７と、入力画像１０１と出力画像１０２との幾何的な対応関係を示す変形設定１０８と、を用いて出力画像１０２を生成して出力する。
【００１６】
変形制御部１０３は、変形設定１０８を用いて、出力画像１０２上の各画素位置（出力座標）について、上記変形によって該画素位置に写像される画素位置を入力画素位置（入力座標１０９）として求める。変形設定１０８は、入力画像１０１の４隅の座標位置と、出力画像１０２の４隅の座標位置と、の対応関係が記された情報である。このような情報を用いて、出力画像１０２上の各出力座標について、上記変形によって該出力座標に写像される入力座標１０９を求める技術は周知であるため、この技術に係る説明は省略する。変形制御部１０３が行う処理について、図２のフローチャートを用いて説明する。
【００１７】
図２に示す如く、変形制御部１０３は、出力画像１０２上の各出力座標についてステップＳ２０２の処理を行って、上記変形によって該出力座標に写像される入力座標１０９を求める。
【００１８】
より詳しくは、ステップＳ２０２では、変形制御部１０３は変形設定１０８を参照し、入力画像１０１の４隅座標と出力画像１０２の４隅座標とに基づき、各出力座標について、上記変形によって該出力座標に写像される入力座標１０９を射影補間して出力する。
【００１９】
図１に戻って、リンギング判定部１０４は、フィルタ係数１０７と、入力画像１０１と、入力座標１０９と、を入力する。そしてリンギング判定部１０４は、これらの情報を用いて、入力画像１０１において該入力座標１０９の周辺に位置する画素にリンギングが発生しやすいか否かを判定し、この判定結果を、リンギング発生レベル１１０として出力する。
【００２０】
本実施形態では、後述する画素補間部１０６は、４×４画素を参照するバイキュービック補間処理を行うものとするので、この場合、フィルタ係数１０７は各画素の重みづけを決定する、１６個（＝４×４画素分）の約−０．５〜＋１．０の係数から成る。バイキュービック補間処理およびこの処理で用いられる係数計算方法は公知のものである。
【００２１】
リンギング判定部１０４が行う処理について、図３のフローチャートを用いて説明する。図３に示す如く、リンギング判定部１０４は、変形制御部１０３が求めた入力座標１０９ごとに、該入力座標１０９に対するリンギング発生レベル１１０を求めて出力する。
【００２２】
ステップＳ３０２では、入力画像１０１において、入力座標１０９の周辺に位置する画素群を特定（参照）する。例えば、入力座標１０９を囲む４画素（２×２画素）及び該４画素を囲む１２画素の計１６画素（４×４画素）を特定する。
【００２３】
ステップＳ３０３では、ステップＳ３０２で特定した画素群と、フィルタ係数１０７と、を用いて、入力座標１０９に対するリンギングの発生しやすさを示す値ｄｉｆｆを求める。ｄｉｆｆの値が大きいほどリンギングが起きやすいことを意味する。本ステップにおける処理の詳細については、以下で詳細に説明する。
【００２４】
ステップＳ３０４では、ステップＳ３０３で求めたｄｉｆｆと、規定の閾値ｄｉｆｆ＿ｔｈｒｅｓｈｏｌｄと、の大小比較を行う。この大小比較の結果、ｄｉｆｆ≧ｄｉｆｆ＿ｔｈｒｅｓｈｏｌｄ（閾値以上）であれば、リンギング発生レベル１１０として「強」を示す値を出力する。一方、ｄｉｆｆ＜ｄｉｆｆ＿ｔｈｒｅｓｈｏｌｄ（閾値未満）であれば、リンギング発生レベル１１０として「弱」を示す値を出力する。なお、ここでは、ｄｉｆｆが１つの閾値以上か否かに応じて、リンギング発生レベル１１０として「強」「弱」の何れかを出力する例を説明したが、２以上の閾値を用いて、リンギング発生レベル１１０をより細かいレベルで表現しても構わない。
【００２５】
このように、図３のフローチャートに従った処理により、変形制御部１０３が求めたそれぞれの入力座標１０９について（出力画像１０２上の各出力座標について求めた入力座標１０９について）、リンギング発生レベル１１０を求めることができる。ここで、ステップＳ３０３における処理の詳細を含め、リンギング判定部１０４が行う処理の意義について、図６を用いて説明する。
【００２６】
３次元グラフ６００は、バイキュービック補間処理で用いるフィルタ係数１０７の係数値を示すものであり、画素補間処理において参照する４×４の各画素に対する重みづけの係数の値をＺ軸にプロットしたものである。この係数は公知のものであり、係数のカーブを変えることで出力画像１０２の先鋭さを調整することが可能である。先鋭化効果の低いフィルタ係数は、リンギングを発生しにくく、一方、先鋭化効果の高いフィルタ係数は、リンギングを発生しやすいという特徴がある。この係数は、バイキュービック補間処理で用いるフィルタ係数１０７の正負（６０１）に示すとおり、各画素に対して＋または−に作用する。仮に４×４の画素範囲の画素値が同一な、平坦部であった場合には、各係数と画素値の畳み込み演算結果は係数の＋−が相殺して元の画素値と等しくなる。しかし、４×４の各画素が、係数＋の画素値が高く、係数−の画素値が低いという、平坦でない部分の場合には、畳み込み演算結果は係数−の部分の引き下げ効果が減少してしまうので、係数＋の影響が強くなり、元の画素値に比べて大きい値が算出される。この現象が出力画像１０２のリンギングの原因となる。
【００２７】
このため、リンギング判定部１０４では、入力画像１０１の４×４の画素範囲の画素値とフィルタ係数１０７とがどの程度合致しているかということを根拠にリンギング発生レベル１１０を算出している。バイキュービック補間処理で参照する画素範囲の各画素に、６０２に示す如く番号を振ると、リンギング判定部１０４は、６０３に示すような式に従って、ｄｉｆｆを求める。６０３に示した式は、係数＋の画素値には加算を行い、係数−の画素値には減算を行い、それらの加減算の結果の絶対値をとる計算である。この計算の結果、ｄｉｆｆの値が小さければ、参照する画素範囲の各画素値とフィルタ係数１０７とは合致しておらず、リンギングが起きにくいと見なす。一方、計算結果ｄｉｆｆの値が大きければ、参照する画素範囲の各画素値とフィルタ係数１０７が合致しており、リンギングが起きやすいと見なす。この計算はエッジ検出処理の一種と考えることができるが、フィルタ係数１０７との合致度合いを判定するところに特徴がある。この特徴により、フィルタ係数１０７がバイキュービック補間処理でない場合にも、リンギングの起きやすさを適正に判定することが可能になる。
【００２８】
図１に戻って、フィルタ係数算出部１０５は、フィルタ係数１０７と、リンギング発生レベル１１０と、を入力し、フィルタ係数１０７をリンギング発生レベル１１０に応じてリンギングが起きにくいように補正した、補正後のフィルタ係数１１１を出力する。フィルタ係数算出部１０５が行う処理について、図５のフローチャートを用いて説明する。図５のフローチャートでは、リンギング判定部１０４からリンギング発生レベル１１０を受けると、入力画像１０１において、該リンギング発生レベル１１０に対応する入力座標１０９の周辺画素群に適用するフィルタ係数群を、ステップＳ５０２で決定している。
【００２９】
より詳しくはステップＳ５０２では、フィルタ係数１０７を、リンギング発生レベル１１０に応じて、リンギングを抑制する様に補正して、補正後のフィルタ係数１１１を生成して出力する。
【００３０】
例えば、ある入力座標１０９のリンギング発生レベル１１０が「弱」（リンギングが発生しにくい）であれば、フィルタ係数１０７をそのまま補正後のフィルタ係数１１１として出力する。一方、ある入力座標１０９のリンギング発生レベル１１０が「強」（リンギングが発生しやすい）であれば、フィルタ係数１０７を、先鋭化効果が弱くなるよう係数を調整して補正後（調整後）のフィルタ係数１１１として出力する。その結果、補正後のフィルタ係数１１１は、リンギングの発生しにくい場所には先鋭化効果の高いフィルタ係数となり、リンギングの発生しやすい場所には先鋭化効果の低いフィルタ係数となる。以上説明したフィルタ係数算出部１０５による処理によって、各入力座標１０９に対するフィルタ係数１１１が確定する。
【００３１】
図１に戻って、画素補間部１０６は、入力画像１０１と、補正後のフィルタ係数１１１と、入力座標１０９と、を入力する。そして画素補間部１０６は、入力画像１０１において入力座標１０９の周辺画素群に対し、該入力座標１０９に対応するフィルタ係数１１１を適用して画素補間を行って、該入力座標１０９に対応する、出力画像１０２上の出力座標における画素値を求める。画素補間部１０６が行う処理について、図４のフローチャートを用いて説明する。図４のフローチャートでは、入力座標１０９ごとに、入力画像１０１において該入力座標１０９の周辺画素群に対し、該入力座標１０９に対応する補正後のフィルタ係数１１１を用いた画素補間を行って、該入力座標１０９に対応する、出力画像１０２上の出力座標における画素値を求める。
【００３２】
ステップＳ４０２では、入力画像１０１において入力座標１０９を囲む４画素（２×２画素）及び該４画素を囲む１２画素から成る計１６画素の画素群を特定する。ステップＳ４０３では、ステップＳ４０２で特定した画素群に対し、補正後のフィルタ係数１１１を適用して畳み込み演算を行うことで画素補間処理を行い、対応する出力座標における画素値を求める。
【００３３】
そして、それぞれの入力座標１０９についてステップＳ４０２〜Ｓ４０３の処理を行うことで、該入力座標１０９に対応する出力座標の画素値を決定することができるので、結果として、出力画像１０２上の各画素位置における画素値が確定することになる。然るに、画素補間部１０６は、図４のフローチャートに従った処理の後、このようにして完成した出力画像１０２を出力する。出力先については特定の出力先に限るものではなく、本装置内のメモリや外部装置に対して出力して構わないし、適用な表示装置に対して出力して、そこで表示させても構わない。
【００３４】
このように、本実施形態によれば、入力画像１０１においてリンギングが起きにくい部分には、先鋭化効果の高いフィルタ係数が適用されて変形が行われる。一方、リンギングが起きやすい部分には、先鋭化効果は低いがリンギングの起きにくいフィルタ係数が適用されて変形が行われる。このように、画素ごとのリンギングの起き易さに応じて処理を変えるため、従来技術に比べて先鋭化効果を保ちつつ、リンギングを起こしにくいという効果がある。すなわち、画素ごとの色の変化の起き易さに応じて処理を変えるため、従来技術に比べて先鋭化効果を保ちつつ、色の変化を起こしにくいという効果がある。
【００３５】
［第２の実施形態］
以下では、第１の実施形態との差分について重点的に説明し、第１の実施形態と同様の部分については説明を省略する。すなわち、以下で特に触れない限りは、第１の実施形態と同様であるものとする。
【００３６】
本実施形態に係る画像変形装置７００の機能構成例について、図７のブロック図を用いて説明する。図７において、図１に示した機能部と同じ機能部には同じ参照番号を付しており、このような機能部に係る説明は省略する。図１の構成においてフィルタ係数算出部１０５を平滑化部７０５に置き換えたものが、図７に示した構成となる。然るに以下では、この平滑化部７０５について重点的に説明する。
【００３７】
平滑化部７０５は、フィルタ係数１０７と、リンギング発生レベル１１０と、入力画像１０１と、を入力し、リンギングの発生しやすい箇所には平滑化処理を適用してから、平滑化処理後の入力画像７１１として出力する。平滑化部７０５が行う処理について、図８のフローチャートを用いて説明する。図８のフローチャートでは、入力座標１０９ごとに、入力画像１０１において該入力座標１０９の周辺画素群の画素値を、該入力座標１０９について求めたリンギング発生レベル１１０に応じて、リンギングを抑制する様に平滑化処理する。
【００３８】
より詳しくはステップＳ８０２では、平滑化部７０５は、変形制御部１０３から入力座標１０９を受けると、入力画像１０１において該入力座標１０９の周辺画素を特定する。そして平滑化部７０５は、この入力座標１０９についてリンギング判定部１０４が求めたリンギング発生レベル１１０に基づき、リンギングを抑制する様に周辺画素の画素値を変えて平滑化処理する。例えば、入力画像１０１において、リンギング発生レベル１１０が「強」である入力座標１０９の周辺画素（領域）についてのみ上記平滑化処理を施し、リンギング発生レベル１１０が「弱」である入力座標１０９の周辺画素については何も処理を施さない。そして平滑化部７０５は、このような処理を行った入力画像１０１を、平滑化処理後の入力画像７１１として出力する。なお、本説明では４×４の画素範囲を参照するバイキュービック補間処理を例にとって説明したが、参照する画素範囲の異なる別の画素補間処理であっても良い。
【００３９】
以上説明した、第１，２の実施形態は、画像変形処理に適用が可能であり、例えば、プロジェクタのキーストーン（台形）／曲面／自由変形処理やディスプレイのスケーリング処理に適用できる。
【００４０】
［第３の実施形態］
図１，７に示した画像変形装置１００（７００）を構成する各機能部は何れもハードウェアで構成しても構わないし、ソフトウェア（コンピュータプログラム）で構成しても構わない。
【００４１】
前者の場合、それぞれの機能部は、別個の装置として構成しても構わないし、１つの装置内における専用のハードウェアで構成しても構わない。後者の場合、各機能部の機能をＣＰＵ等のプロセッサに実行させるためのコンピュータプログラムを実行可能な装置であれば、該画像変形装置に適用可能である。もちろん、各機能部を、ハードウェア若しくはソフトウェアの何れかのみで実装することに限るものではなく、一部の機能をハードウェア若しくはソフトウェアの何れかで実装しても構わない。
【００４２】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0006316010.tif 000002
【図２】
0006316010.tif 000003
【図３】
0006316010.tif 000004
【図４】
0006316010.tif 000005
【図５】
0006316010.tif 000006
【図６】
0006316010.tif 000007
【図７】
0006316010.tif 000008
【図８】
0006316010.tif 000009