(57)【特許請求の範囲】
【請求項１】
入力画像に対して変形処理を行い、該変形された変形画像に対してフィルタ処理を行うことによって出力画像を生成する画像処理装置であって、
前記変形画像内の座標のうち前記入力画像内の座標に対応する有効座標が、前記入力画像内と前記入力画像外との境界領域の座標であるか否かを判定する判定手段と、
前記変形画像内の前記有効座標が前記境界領域の座標であると前記判定手段により判定された場合よりも、前記変形画像内の前記有効座標が前記境界領域の座標でないと前記判定手段により判定された場合のほうが、前記変形画像内の広い範囲の座標に対応する画像データで前記有効座標の画像データに対するフィルタ処理が行われるように、前記変形画像に対する前記フィルタ処理のためのフィルタ係数を決定する決定手段と、
前記決定手段により決定されたフィルタ係数を用いて前記変形画像に対するフィルタ処理を実行する処理手段とを有することを特徴とする画像処理装置。
【請求項２】
前記決定手段は、前記変形画像内の座標である第１変形座標に対応する前記入力画像内の座標である第１入力座標と、前記第１変形座標に隣接する第２変形座標に対応する前記入力画像内の座標である第２入力座標との距離に応じて前記第１変形座標の画像データに対するフィルタ処理のためのフィルタ係数を決定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記決定手段は、前記第１及び第２入力座標の距離が所定距離未満の場合、前記所定距離以上の場合よりも、広い範囲の座標に対応する画像データで前記第１変形座標の画像データに対するフィルタ処理が行われるようにフィルタ係数を決定することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記入力画像のサイズ情報を取得する取得手段をさらに有し、
前記判定手段は、前記変形画像の座標の変形前に対応する座標を、前記変形処理のパラメータに基づいて特定し、前記特定された前記変形前に対応する座標が前記入力画像内の座標であるか否か、及び、前記変形前に対応する座標が前記境界領域の座標であるか否かを前記サイズ情報に基づいて判定することを特徴とする請求項１乃至３のうち何れか１項に記載の画像処理装置。
【請求項５】
前記変形前に対応する座標が前記入力画像内の座標でないと前記判定手段により判定された場合、前記決定手段は、前記変形前に対応する座標に対するフィルタ処理後の画像データが黒画像に対応する画像データとなるように前記フィルタ係数を決定することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記判定手段は、前記有効座標が前記境界領域から所定範囲内に位置する座標であるか否かに基づいて、当該有効座標が前記境界領域の座標であるか否かを判定し、
前記決定手段は、前記変形画像内の前記有効座標が前記境界領域の座標であると前記判定手段により判定された場合、前記有効座標の画像データに対するフィルタ処理によって画像データが変化しないように前記有効座標の画像データに対するフィルタ処理のためのフィルタ係数を決定することを特徴とする請求項１に記載の画像処理装置。
【請求項７】
前記フィルタ処理は、前記有効座標の画像データを、当該有効座標の周囲の座標の画像データを用いて平滑化する処理であることを特徴とする請求項１乃至６のうち何れか１項に記載の画像処理装置。
【請求項８】
前記入力画像は動画であり、
入力動画フレームに対して複数の変形処理済みの出力動画フレームを生成する手段を有し、
前記処理手段は、前記生成された複数の出力動画フレームのうち第１出力動画フレームの低周波成分を強調するためのフィルタ処理と、第２出力動画フレームの高周波成分を強調するためのフィルタ処理とのうち、少なくとも一方のフィルタ処理を実行することを特徴とする請求項１乃至７のうちいずれか１項に記載の画像処理装置。
【請求項９】
前記変形処理は、台形補正であることを特徴とする請求項１乃至８のうち何れか１項に記載の画像処理装置。
【請求項１０】
入力画像に対して変形処理を行い、該変形された変形画像に対してフィルタ処理を行うことによって出力画像を生成する画像処理方法であって、
前記変形画像内の座標のうち前記入力画像内の座標に対応する有効座標が、前記入力画像内と前記入力画像外との境界領域の座標であるか否かを判定する判定工程と、
前記変形画像内の前記有効座標が前記境界領域の座標であると前記判定工程により判定された場合よりも、前記変形画像内の前記有効座標が前記境界領域の座標でないと前記判定工程により判定された場合のほうが、前記変形画像内の広い範囲の座標に対応する画像データで前記有効座標の画像データに対するフィルタ処理が行われるように、前記変形画像に対する前記フィルタ処理のためのフィルタ係数を決定する決定工程と、
前記決定工程により決定されたフィルタ係数を用いて前記変形画像に対するフィルタ処理を実行する処理工程とを有することを特徴とする画像処理方法。
【請求項１１】
前記決定工程は、前記変形画像内の座標である第１変形座標に対応する前記入力画像内の座標である第１入力座標と、前記第１変形座標に隣接する第２変形座標に対応する前記入力画像内の座標である第２入力座標との距離に応じて前記第１変形座標の画像データに対するフィルタ処理のためのフィルタ係数を決定することを特徴とする請求項１０に記載の画像処理方法。
【請求項１２】
前記決定工程は、前記第１及び第２入力座標の距離が所定距離未満の場合、前記所定距離以上の場合よりも、広い範囲の座標に対応する画像データで前記第１変形座標の画像データに対するフィルタ処理が行われるようにフィルタ係数を決定することを特徴とする請求項１１に記載の画像処理方法。
【請求項１３】
コンピュータを請求項１乃至９のうちいずれか１項に記載の画像処理装置として動作させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理技術に関する。
【背景技術】
【０００２】
従来より、画像を変形する技術と、画像に対してフィルタ処理を行う技術とが、それぞれ独立に知られている。例えば画像変形技術の一例として、歪み補正処理、キーストーン補正処理、又は幾何補正処理等と呼ばれる技術（以降、まとめて歪み補正処理と呼ぶ）がある。歪み補正技術は例えば、プロジェクタにおいて用いられる。図１はプロジェクタ１００がスクリーン１０１上に画像を表示する様子を示す。プロジェクタ１００の投射光学系の光学軸とスクリーン１０１とのなす角度が９０度の場合には、投射画像１０２はスクリーン１０１上に正規の形状（例えば長方形）に表示される。一方、この角度が９０度以外の場合には、投射画像１０３は歪んだ形状（例えば台形）で表示される。この歪みを補正するために、歪み補正処理が行われる。図２は、歪み補正処理の例を示す。歪み補正処理によって、入力画像２００は歪み補正画像２０１に変換される。ここで歪み補正画像２０１には、台形形状の有効領域２０５と、有効領域外のブランキング領域２０４とが含まれる。歪み補正画像２０１がスクリーン１０１に投影されると、有効領域はスクリーン上で長方形に表示される（２０３）。
【０００３】
また、画像に対してフィルタ処理を行う様々な技術が知られている。フィルタ処理の一例として、空間フィルタ処理を用いた視認性向上処理が挙げられる。この視認性向上処理には、動画を表示する際のフレームレートを向上させることが含まれる（例えば、図２の２０２）。このような処理の例としては、例えば特許文献１に記載の技術が挙げられる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−４４４６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
歪み補正処理と、フィルタ処理とを組み合わせる場合に、以下のような課題が生じることを発明者は発見した。まず第１の課題について、図３（Ａ）を参照して説明する。図３（Ａ）においてスクリーンに投射されている投射画像３０４は、歪み補正画像３０３に対してフィルタ処理を行ってからスクリーンに投影することによって得られる。歪み補正画像３０３における領域３０１は、投射画像３０４における領域３０５に対応する。また、歪み補正画像３０３における領域３０２は、投射画像３０４における領域３０６に対応する。ここで、領域３０１と領域３０２とは同じ大きさであるが、領域３０５と領域３０６との大きさは異なる。すなわち、歪み補正画像３０３に対して領域３０１を参照領域とするフィルタ処理を行った場合、投射画像３０４の観察者にとっては、領域３０５を参照領域とするフィルタ処理が行われたかのように見える。同様に、歪み補正画像３０３に対して領域３０２を参照領域とするフィルタ処理を行った場合、投射画像３０４の観察者にとっては、領域３０６を参照領域とするフィルタ処理が行われたかのように見える。このように、観察者には投射画像３０４において一様でないフィルタ処理が行われているように見え、このことは画質の低下として認識されることがある。例えばフィルタ処理によって平滑化を行う場合、領域３０６と比べて、領域３０５においては画像の鮮鋭度がより大きく低下する。
【０００６】
次に第２の課題について、図３（Ｂ）を参照して説明する。歪み補正画像３０３において、ブランキング領域３０７と有効領域３０８の境界にある領域３００を参照してフィルタ処理を行うと、境界付近の鮮鋭度が低下することがある。通常、ブランキング領域３０７内の画素値は所定の値、例えば（Ｒ，Ｇ，Ｂ）＝（０，０，０）（黒色）を持つ。ところで、領域３１０の中心画素は、ブランキング領域３０７内に位置するが、この画素の画素値は領域３１０を参照したフィルタ処理によって得られる。ところが領域３１０内には有効領域３０８が含まれるため、フィルタ処理によって得られる画素値は、上記の所定の値とは異なるものとなる。
【０００７】
一方で領域３０９の中心画素は、有効領域３０８内に位置するが、この画素の画素値は領域３０９を参照したフィルタ処理によって得られる。ところが領域３０９内にはブランキング領域３０７が含まれるため、フィルタ処理によって得られる画素値は、ブランキング領域の画素値の影響を受けてしまう。すなわち、上述のようにブランキング領域の画素が黒色であれば、ブランキング領域３０７と有効領域３０８との境界において、ブランキング領域３０７の画素値は大きくなり、有効領域３０８の画素値は小さくなってしまう。
【０００８】
本発明は、画像変形処理とフィルタ処理とを連続して行う際に、画質の低下を防ぐことを目的とする。
【課題を解決するための手段】
【０００９】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。すなわち、
入力画像に対して変形処理を行い、該変形された変形画像に対してフィルタ処理を行うことによって出力画像を生成する画像処理装置であって、
前記変形画像内の座標のうち前記入力画像内の座標に対応する有効座標が、前記入力画像内と前記入力画像外との境界領域の座標であるか否かを判定する判定手段と、
前記変形画像内の前記有効座標が前記境界領域の座標であると前記判定手段により判定された場合よりも、前記変形画像内の前記有効座標が前記境界領域の座標でないと前記判定手段により判定された場合のほうが、前記変形画像内の広い範囲の座標に対応する画像データで前記有効座標の画像データに対するフィルタ処理が行われるように、前記変形画像に対する前記フィルタ処理のためのフィルタ係数を決定する決定手段と、
前記決定手段により決定されたフィルタ係数を用いて前記変形画像に対するフィルタ処理を実行する処理手段とを有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、画像変形処理とフィルタ処理とを連続して行う際に、画質の低下を防ぐことができる。
【図面の簡単な説明】
【００１１】
【図１】プロジェクタ１００を用いてスクリーン１０１上に画像を表示する例。
【図２】歪み補正処理について説明するための説明図。
【図３】歪み補正処理とフィルタ処理とを組み合わせた際の問題を説明する図。
【図４】実施例１に係るコンピュータの物理的構成例。
【図５】実施例１の係る画像処理装置の機能的構成例。
【図６】領域判定部５０５が行う処理を説明するための図。
【図７】入力画像データ５４２のデータ構造の一例。
【図８】フィルタ選択情報５４８とフィルタ５５６との対応の一例を示す図。
【図９】カウンタ５０６が行う処理のフローチャートの一例。
【図１０】領域判定部５０５が行う処理のフローチャートの一例。
【図１１】参照画素取得部５１０が行う処理のフローチャートの一例。
【図１２】入力画素取得部５０４が行う処理のフローチャートの一例。
【図１３】画像蓄積部５０２が行う処理のフローチャートの一例。
【図１４】実施例１に係る画像処理装置が行う処理のフローチャートの一例。
【発明を実施するための形態】
【００１２】
以下、添付の図面を参照して、本発明をその好適な実施例に基づいて詳細に説明する。なお、以下の実施例において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【００１３】
［実施例１］
図５は実施例１に係る画像処理装置の機能的構成の一例を表す。以下、図５を参照して、本実施例に係る画像処理装置が備える各部について詳しく説明する。図５に示されるように、本実施例に係る画像処理装置は、歪み補正部５００とフィルタ部５０１とを備える。
【００１４】
まず、歪み補正部５００について説明する。本実施例において歪み補正部５００は、入力画像に対して変形処理（歪み補正処理）を行う。そして歪み補正部５００は、歪み補正された画像を画像領域内に含む歪み補正画像（変形画像）を出力する。しかしながら歪み補正部５００が行う処理は歪み補正処理に限られず、歪み補正部５００は任意の画像変形処理を行うことができる。例えば、水平垂直補正、レンズ歪み補正、幾何変形、全方位画像変形などであってもよい。全方位画像変形とは、魚眼レンズ等の光学系によって取得した３６０度画像を長方形画像に展開する変形処理を指す。
【００１５】
歪み補正部５００は処理部として、画像蓄積部５０２、入力画素取得部５０４、領域判定部５０５、及びカウンタ５０６を備える。さらに歪み補正部５００は記憶部として、フレームメモリ５０３、バッファ５０７、及び座標変換テーブル５１５を備える。フレームメモリ５０３及びバッファ５０７は、例えば後述のＲＡＭ４００によって実現されうる。また座標変換テーブル５１５は、後述のＲＯＭ４０１によって実現されうる。本実施例においてバッファ５０７は、ＦＩＦＯバッファとして動作するものとする。
【００１６】
歪み補正部５００には、入力画像及び画像サイズ情報５４０が入力される。歪み補正部５００には動画が入力されてもよく、この場合歪み補正部５００には複数の入力画像（フレーム画像）が入力される。入力画像は、複数の画素で構成されている。具体的には歪み補正部５００には、入力画像のそれぞれの画素についてのデータが入力される。以下で、入力画像のそれぞれの画素についてのデータを入力画像データ５４２と呼ぶ。入力画像データ５４２のデータ構造の一例を図７に示す。入力画像データ５４２は、図７に示されるように、Ｖｓｙｎｃフラグ、Ｈｓｙｎｃフラグ、Ｒコンポーネント、Ｇコンポーネント、及びＢコンポーネントを含む。
【００１７】
Ｖｓｙｎｃフラグは垂直同期信号である。１つのフレーム画像を構成する入力画像データ５４２のうち、最初に入力される入力画像データ５４２のＶｓｙｎｃフラグは１となる。また、その他の入力画像データ５４２のＶｓｙｎｃフラグは０となる。通常、最初に入力される入力画像データ５４２は、フレーム画像の先頭画素についての情報を示す。
【００１８】
Ｈｓｙｎｃフラグは水平同期信号である。フレーム画像内の１つのラインを構成する入力画像データ５４２のうち、最初に入力される入力画像データ５４２のＨｓｙｎｃフラグは１となる。また、その他の入力画像データ５４２のＨｓｙｎｃフラグは０となる。通常、最初に入力される入力画像データ５４２は、ライン先頭画素についての情報を示す。
【００１９】
Ｒコンポーネント、Ｇコンポーネント、及びＢコンポーネントは、それぞれの画素についてのＲ画素値、Ｇ画素値、及びＢ画素値を示す。もっとも、本実施例に係る入力画像データ５４２の構造は図７に示されるものには限られない。例えば、入力画像データ５４２はＲＧＢとは異なる色空間に基づく画素値を有してもよい。また入力画像データ５４２は、Ｈｓｙｎｃフラグ及びＶｓｙｎｃフラグを有さなくてもよく、例えば座標情報を有していてもよい。
【００２０】
画像サイズ情報５４０は、入力画像のサイズを示す情報である。例えば画像サイズ情報５４０は、Ｘ方向のピクセル数を示すｘＰｉｘｅｌＮｕｍと、Ｙ方向のピクセル数を示すｙＰｉｘｅｌＮｕｍとを含んでいてもよい。
【００２１】
画像蓄積部５０２は、入力画像データ５４２と画像サイズ情報５４０とを取得する（入力手段）。そして画像蓄積部５０２は、入力画像データ５４２をフレームメモリ５０３に書き込む。ここで、画像蓄積部５０２が行う処理について、図１３のフローチャートを参照して説明する。
【００２２】
ステップＳ１３０２で画像蓄積部５０２は、新しいフレーム画像の入力が開始するのを待つ。例えば画像蓄積部５０２は入力画像データ５４２を取得し、入力画像データ５４２のＶｓｙｎｃフラグが０であるか１であるかを判定する。Ｖｓｙｎｃフラグが１である場合、処理はステップＳ１３０４に進む。Ｖｓｙｎｃフラグが０である場合、Ｖｓｙｎｃフラグが１である入力画像データ５４２を取得するまで、画像蓄積部５０２は入力画像データ５４２の取得とＶｓｙｎｃフラグの判定を繰り返す。
【００２３】
ステップＳ１３０４で画像蓄積部５０２は、取得した入力画像データ５４２をフレームメモリ５０３に書き込む。具体的には画像蓄積部５０２は、フレームメモリ５０３の指定アドレスに、入力画像データ５４２を書き込む。この指定アドレスは、画像サイズ情報５４０に従って、画像蓄積部５０２が計算することができる。具体的には画像蓄積部５０２は、Ｖｓｙｎｃフラグが１である入力画像データ５４２の後に入力された入力画像データ５４２の数をカウントする。そして画像蓄積部５０２は、入力画像のサイズとカウントとに従って、フレームメモリ５０３における対応アドレスを計算することができる。
【００２４】
ステップＳ１３０６で画像蓄積部５０２は、１フレーム分の入力画像データ５４２を処理したか否かを判定する。この判定は例えば、画像サイズ情報５４０が示す入力画像のサイズと、上述のカウントとに従って、画像蓄積部５０２が行うことができる。別の実施形態において画像蓄積部５０２は、入力画像データのＶｓｙｎｃフラグに従って、１フレーム分の入力画像データ５４２を処理したか否かを判定してもよい。１フレーム分の入力画像データ５４２の処理が終わっていない場合、処理はステップＳ１３０２に戻る。１フレーム分の入力画像データ５４２の処理が終了した場合、処理はステップＳ１３０８に進む。
【００２５】
ステップＳ１３０８において画像蓄積部５０２は、画像入力処理を終了するか否かを判定する。この判定は例えばユーザ指示に従って行われてもよいし、入力画像データ５４２と共に歪み補正部５００（例えば画像蓄積部５０２）に入力される制御信号に従って行われてもよい。画像入力処理を終了しない場合、処理はステップＳ１３０２に戻る。画像入力処理を終了する場合、図１３の処理は終了する。
【００２６】
カウンタ５０６は、歪み補正画像６０１中（変形画像中）のそれぞれの画素についての座標値を順次出力する。例えばカウンタ５０６は、歪み補正画像６０１のそれぞれの画素を走査し、走査されている画素の座標を出力画素位置５４４として出力する。カウンタ５０６が行う処理について、図６を参照して説明する。図６において入力画像６００は、歪み補正部５００に入力される画像データの有効領域を示す。また歪み補正画像６０１は、歪み補正部５００から出力される画像データを示す。歪み補正画像６０１のうち、ハッチングされていない部分が有効領域である。具体的にはハッチングされていない部分は、入力画像６００に対応する。カウンタ５０６は歪み補正画像６０１における走査線６０４上のそれぞれの画素の画素位置、例えば画素Ｄａを示す出力画素位置６０５を、出力画素位置５４４として出力する。
【００２７】
ここで、カウンタ５０６が行う処理について、図９のフローチャートを参照して説明する。以下の説明においては、Ｘ方向にＸＰｉｘｅｌＮｕｍ画素、Ｙ方向にＹＰｉｘｅｌＮｕｍ画素の大きさを有する歪み補正画像６０１において、各画素の座標値は（１，１）から（ＸＰｉｘｅｌＮｕｍ，ＹＰｉｘｅｌＮｕｍ）までの値をとるものとする。もっとも、座標値の設定方法は当業者が任意に選択可能であり、選択された座標値の設定方法に従って以下の処理を修正することは当業者には容易だろう。
【００２８】
ステップＳ９０１でカウンタ５０６は、画像サイズ情報５４０を取得する。この画像サイズ情報５４０が示すサイズの歪み補正画像６０１が、歪み補正部５００からは出力される。またカウンタ５０６は、Ｘ座標を０に、Ｙ座標を０にセットする。ステップＳ９０２においてカウンタ５０６は、次のＹ座標を決定する。例えばカウンタ５０６は、Ｙに１を加えればよい。ステップＳ９０３においてカウンタ５０６は、次のＸ座標を決定する。例えばカウンタ５０６は、Ｘに１を加えればよい。
【００２９】
ステップＳ９０４においてカウンタ５０６は、Ｘ座標とＹ座標との組を、出力画素位置５４４として出力する。ステップＳ９０５においてカウンタ５０６は、出力画素位置５４４が走査線の末端に位置するか否かを判定する。例えばカウンタ５０６は、ＸがＸＰｉｘｅｌＮｕｍに一致する場合に、出力画素位置５４４が走査線の末端に位置するものと判定することができる。ＸがＸＰｉｘｅｌＮｕｍに一致しない場合（または、ＸがＸＰｉｘｅｌＮｕｍよりも小さい場合）、処理はステップＳ９０３に戻る。ＸがＸＰｉｘｅｌＮｕｍに一致する場合（または、ＸがＸＰｉｘｅｌＮｕｍ以上である場合）、処理はステップＳ９０６に進む。
【００３０】
ステップＳ９０６においてカウンタ５０６は、出力画素位置５４４が歪み補正画像６０１の末端に位置するか否かを判定する。例えばカウンタ５０６は、ＹがＹＰｉｘｅｌＮｕｍに一致する場合に、出力画素位置５４４が歪み補正画像６０１の末端に位置するものと判定することができる。ＹがＹＰｉｘｅｌＮｕｍに一致しない場合（または、ＹがＹＰｉｘｅｌＮｕｍよりも小さい場合）、カウンタ５０６はＸに０をセットし、そして処理はステップＳ９０２に戻る。ＹがＹＰｉｘｅｌＮｕｍに一致する場合（または、ＹがＹＰｉｘｅｌＮｕｍ以上である場合）、処理はステップＳ９０７に進む。
【００３１】
ステップＳ９０７においてカウンタ５０６は、出力画素位置の出力処理を終了するか否かを判定する。この判定は例えばユーザ指示に従って行われてもよいし、まだ歪み補正画像へと変換されていない入力画像が存在するか否かに従って行われてもよい。出力処理を終了しない場合、カウンタ５０６はＸ及びＹに０をセットし、そして処理はステップＳ９０１に戻る。画像入力処理を終了する場合、図９の処理は終了する。
【００３２】
領域判定部５０５は、出力画素位置５４４のそれぞれについて、出力画素位置５４４に対応する入力画素位置５５８を取得する。また領域判定部５０５は、出力画素位置５４４が示す画素に隣接する画素の位置に対応する入力画素位置５５９を取得する。これらの処理は、領域判定部５０５が備える座標変換部（不図示）が行うことができる。さらに領域判定部５０５は、入力画素位置５５８と入力画素位置５５９とに従って、出力画素位置５４４に適用するフィルタを選択する。具体的には領域判定部５０５は、フィルタを特定するフィルタ選択情報５４８を出力する。このフィルタ選択情報５４８は、フィルタ部５０１がフィルタ処理を行う際に用いられる。これらの処理は、領域判定部５０５が備える係数選択部（不図示）が行うことができる。
【００３３】
ここで、出力画素位置５４４と、入力画素位置５５８と、入力画素位置５５９との関係を図６を参照して説明する。出力画素位置５４４は、図６の出力画素位置６０５に相当する。ここで、出力画素位置６０５に位置する画素をＤａとする。また、入力画素位置５５８は、図６の入力画素位置６０２に対応する。さらに、入力画素位置６０２に位置する画素をＳａとする。
【００３４】
ここで、入力画像６００を歪み補正画像６０１へと補正すると、画素Ｓａは画素Ｄａへと移動するものとする。出力画素位置と入力画素位置との関係は、座標変換テーブル５１５に規定されている。すなわち、出力画素位置６０５（画素Ｄａの位置）と入力画素位置６０２（画素Ｓａの位置）との関係は、座標変換テーブル５１５に規定されている。言い換えれば座標変換テーブル５１５は、歪み補正画像６０１中の着目画素位置に写像される、入力画像６００中の画素位置を規定している。したがって領域判定部５０５は、出力画素位置５４４（出力画素位置６０５）から、入力画素位置５５８（入力画素位置６０２）を求めることができる。
【００３５】
また出力画素位置６０６は、画素Ｄａに隣接する画素の画素位置である。この出力位置６０６が、ここで、出力画素位置６０６に位置する画素をＤｂとする。本実施例において出力画素位置６０６（近隣画素位置）は、出力画素位置６０５のＸ座標に１を加えることによって得られる座標とする。すなわち、画素Ｄｂは画素ＤａのＸ軸正方向に隣接する画素である。Ｄａの座標を（Ｘｄａ，Ｙｄａ）とし、Ｄｂの座標を（Ｘｄｂ，Ｙｄｂ）とすると、Ｘｄｂ＝Ｘｄａ＋１、Ｙｄｂ＝Ｙｄａとなる。
【００３６】
入力画素位置５５９は、図６の入力画素位置６０３に対応する。ここで、入力画素位置６０３に対応する画素をＳｂとする。ここで、入力画像６００を歪み補正画像６０１へと補正すると、画素Ｓｂは画素Ｄｂへと移動するものとする。すなわち、座標変換テーブル５１５を参照することにより、領域判定部５０５は、出力画素位置５４４（出力画素位置６０５）から、入力画素位置５５９（入力画素位置６０３）を求めることができる。
【００３７】
次に、領域判定部５０５が行う処理の詳細について、図１０のフローチャートを参照して説明する。ステップＳ１００１において領域判定部５０５は、カウンタ５０６から出力画素位置５４４を取得する。ステップＳ１００２において領域判定部５０５は、上述のように出力画素位置５４４の画素に隣接する画素の画素位置５４５を算出する。ステップＳ１００３において領域判定部５０５は上述のように、座標変換テーブル５１５を参照して、出力画素位置５４４に対応する入力画素位置５５８と、出力画素位置５４５に対応する入力画素位置５５９とを取得する。ステップＳ１００４において領域判定部５０５は、出力画素位置５４４と入力画素位置５５８との組を入力画素取得部５０４へと出力する。
【００３８】
ステップＳ１００５において領域判定部５０５は、入力画素位置５５８が示す画素が、入力画像の有効領域内にあるか否かを判定する（判定手段）。入力画像の有効領域は、画像サイズ情報５４０によって示される。上述のように本実施例においては、Ｘ方向にＸＰｉｘｅｌＮｕｍ画素、Ｙ方向にＹＰｉｘｅｌＮｕｍ画素の大きさを有する歪み補正画像６０１において、各画素の座標値は（１，１）から（ＸＰｉｘｅｌＮｕｍ，ＹＰｉｘｅｌＮｕｍ）までの値をとる。また、入力画素位置５５８が示す画素Ｓａの座標を（Ｘｓａ，Ｙｓａ）とする。この場合、Ｘｓａが１より小さいか又はＸＰｉｘｅｌＮｕｍより大きい場合、入力画素位置５５８が示す画素は入力画像の有効領域内にないものと判定することができる。また、Ｙｓａが１より小さいか又はＹＰｉｘｅｌＮｕｍより大きい場合、入力画素位置５５８が示す画素は入力画像の有効領域内にないものと判定することができる。
【００３９】
入力画素位置５５８が示す画素が入力画像の有効領域内にない場合、処理はステップＳ１０１０に進む。ステップＳ１０１０において領域判定部５０５は、出力画素位置５４４に関連付けられたフィルタ選択情報５４８として０を出力し、その後処理はステップＳ１０１０に進む。一方で入力画素位置５５８が示す画素が入力画像の有効領域内にある場合、処理はステップＳ１００６に進む。
【００４０】
ステップＳ１００６で領域判定部５０５は、入力画素位置５５８が示す画素が、入力画像の有効領域の境界に位置するか否かを判定する。具体的には、Ｘｓａが１又はＸＰｉｘｅｌＮｕｍに等しい場合、入力画素位置５５８が示す画素が入力画像の有効領域の境界に位置すると判定することができる。また、Ｙｓａが１又はＹＰｉｘｅｌＮｕｍに等しい場合も、入力画素位置５５８が示す画素が入力画像の有効領域の境界に位置すると判定することができる。入力画素位置５５８が示す画素が入力画像の有効領域の境界に位置する場合、処理はステップＳ１０１１に進む。ステップＳ１０１１において領域判定部５０５は、出力画素位置５４４に関連付けられたフィルタ選択情報５４８として１を出力し、その後処理はステップＳ１０１０に進む。入力画素位置５５８が示す画素が入力画像の有効領域の境界に位置しない場合、処理はステップＳ１００７に進む。
【００４１】
ステップＳ１００７，Ｓ１００８，及び１０１２で領域判定部５０５は、入力画素位置５５８と入力画素位置５５９とに従ってフィルタ選択情報５４８を決定する。例えば領域判定部５０５は、入力画素位置５５８にある画素Ｓａと、入力画素位置５５９にある画素Ｓｂとの間の距離に従って、フィルタ選択情報５４８を決定することができる。
【００４２】
本実施例においては、ステップＳ１００７において領域判定部５０５は、入力画素位置５５８と入力画素位置５５９とに従って画素Ｓａと画素Ｓｂとの間の距離を算出する。画素Ｓｂの座標を（Ｘｓｂ，Ｙｓｂ）とすると、画素Ｓａと画素Ｓｂとの間の距離は√（（Ｘｓａ−Ｘｓｂ）２＋（Ｙｓａ−Ｙｓｂ）２）となる。そして領域判定部５０５は、算出された距離が所定の閾値以下であるか否かを判定する。算出された距離が所定の閾値以上である場合、処理はステップＳ１０１２に進む。算出された距離が所定の閾値以上ではない場合、処理はステップＳ１００８に進む。
【００４３】
ステップＳ１０１２において領域判定部５０５は、出力画素位置５４４に関連付けられたフィルタ選択情報５４８として２を出力し、その後処理はステップＳ１０１０に進む。ステップＳ１００８において領域判定部５０５は、出力画素位置５４４に関連付けられたフィルタ選択情報として３を出力し、その後処理はステップＳ１０１０に進む。
【００４４】
ステップＳ１０１０において領域判定部５０５は、入力画素位置の出力処理及びフィルタ選択情報の出力処理を終了するか否かを判定する。例えば、カウンタ５０６から次の出力画素位置５４４が入力されている場合には、領域判定部５０５は処理を終了しないことを決定することができる。処理を終了しない場合、処理はステップＳ１００１に戻る。処理を終了する場合、図１０の処理は終了する。
【００４５】
領域判定部５０５が出力したフィルタ選択情報５４８は、上述のように、フィルタ部５０１がフィルタ処理を行う際に用いられる。具体的にはフィルタ部５０１は、フィルタ選択情報５４８に従ってフィルタを選択する。ここで、フィルタ選択情報５４８と、フィルタ部５０１が選択するフィルタとの関係について、図８に示されるフィルタの例を参照して説明する。上述のように本実施例において、フィルタ選択情報５４８は０，１，２，３のいずれかの値を持つ。図８には、それぞれの値に対応するフィルタが示されている。すなわち、フィルタ選択情報５４８が０である場合にはフィルタ８００が用いられる。フィルタ選択情報５４８が１である場合にはフィルタ８０１が用いられる。フィルタ選択情報５４８が２である場合にはフィルタ８０２が用いられる。また、フィルタ選択情報５４８が３である場合にはフィルタ８０３が用いられる。図８においては、ハッチングされている係数がフィルタの中心に相当する。
【００４６】
フィルタ処理部５１２は、画像内の着目画素に対してフィルタ８００を用いた空間フィルタ処理を行うことができる。例えばフィルタ処理部５１２は、空間フィルタ処理によって加重平均値を求めることができる。すなわちフィルタ処理部５１２は、歪み補正画像における出力画素位置５５４近傍（処理画素位置近傍）の画素群の画素値と、フィルタ係数群との畳み込み演算によって、出力画像における出力画素位置５５４の画素値を算出することができる。
【００４７】
フィルタ８００の係数は全て０である。したがって、画像内の着目画素に対してフィルタ８００を用いた空間フィルタ処理を行うと、出力値は０となる。もっとも、ブランキング領域と有効領域との間の滲みを防止するという観点からは、フィルタ８００における中心のフィルタ係数は１であってもよい。この場合、フィルタ８００を用いたフィルタ処理を行うと、着目画素の画素値と出力値とは一致する。すなわちフィルタ８００を用いる場合、歪み補正画像における処理画素位置の画素の画素値又は予め定められた画素値が、出力画像における処理画素位置における画素の画素値として設定される。
【００４８】
一方でフィルタ８０１においては、フィルタ中心の係数が１で残りの係数は０である。したがってフィルタ８０１を用いたフィルタ処理を行うと、着目画素の画素値と出力値とは一致する。フィルタ８０２を用いたフィルタ処理を行う場合には、着目画素に隣接する画素値を考慮して出力値が算出される。さらに、フィルタ８０３を用いたフィルタ処理を行う場合には、フィルタ８０２を用いる場合よりも広い範囲の画素値を考慮して出力値が算出される。すなわち、フィルタ８０１、８０２、８０３の順に、フィルタ処理における参照領域は広くなる。
【００４９】
ところで、入力画像６００を歪み補正画像６０１へと補正した場合に、画素Ｄａ周辺における縮小率は、（ＳａとＳｂとの間の距離）／（ＤａとＤｂとの間の距離）として近似的に表すことができる。本実施例においては歪み補正画像６０１内の画素Ｄａと画素Ｄｂとの間の距離は一定（１画素）である。したがって、画素Ｓａと画素Ｓｂとの間の距離は、縮小率に相関する値となる。本実施例においては画素Ｓａと画素Ｓｂとの間の距離が所定の閾値以上である場合にフィルタ８０２が選択される。言い換えれば、歪み補正画像６０１の出力画素位置６０５（Ｄａ）における縮小率がより大きい場合に、より狭い範囲の画素を参照するフィルタが選択される。
【００５０】
次に、入力画素取得部５０４について詳しく説明する。入力画素取得部５０４は、歪み補正画像を生成する。入力画素取得部５０４が行う処理について、図１２のフローチャートを参照して説明する。ステップＳ１２０１において入力画素取得部５０４は、領域判定部５０５から、入力画素位置５５８、出力画素位置５４４、及びフィルタ選択情報５４８を取得する。
【００５１】
ステップＳ１２０２において入力画素取得部５０４は、入力画素位置５５８に対応する入力画像データ５４３をフレームメモリ５０３から取得する（変形手段）。この際入力画素取得部５０４は、画像サイズ情報５４０を参照して、入力画素位置５５８に対応する入力画像データ５４３が格納されているアドレスを計算することができる。ところで、入力画素位置５５８に対応する入力画像データ５４３が存在しないことがある。例えば、入力画素位置５５８が入力画像領域外に位置する場合である。この場合、すなわち出力画素位置５４４に写像される入力画素位置５５８が存在しないと判定した場合には、入力画素取得部５０４は、所定の画素値（所定値）を示す入力画像データを、入力画素位置５５８に対応する入力画像データとする。この所定の画素値は通常は黒画素（Ｒ，Ｇ，Ｂ＝０，０，０）である。しかしながら、この所定の画素値は任意の画素値でありうる。
【００５２】
ステップＳ１２０３において入力画素取得部５０４は、ステップＳ１２０２で取得した入力画像データ５４３と、ステップＳ１２０１で取得した出力画素位置５４４と、ステップＳ１２０１で取得したフィルタ選択情報５４８とをバッファ５０７に出力する。出力画素位置５４４と入力画像データ５４３との組によって、歪み補正画像は表される。
【００５３】
ステップＳ１２０５において入力画素取得部５０４は、出力処理を終了するか否かを判定する。例えば、領域判定部５０５から次の出力画素位置５４４が入力されている場合には、入力画素取得部５０４は処理を終了しないことを決定することができる。処理を終了しない場合、処理はステップＳ１２０１に戻る。処理を終了する場合、図１２の処理は終了する。
【００５４】
上述のように、出力画素位置５４４、入力画像データ５４３、及びフィルタ選択情報５４８の組が、バッファ５０７に出力される。これらの情報は一旦バッファ５０７に格納された後、歪み補正部５００から出力される。このようにバッファ５０７に格納され、歪み補正部５００から出力される入力画像データ５４３を、以降で補正画像データ５４９と呼ぶ。本実施例においてはバッファ５０７に出力画素位置５４４が格納されるものとした。しかしながら出力画素位置５４４は通常ラスタ順に順次選択され、この場合それぞれの入力画像データ５４３に対応する出力画素位置５４４は、出力画素位置５４４を用いずに知ることができる。また入力画素取得部５０４は、補正画像データ５４９を出力する際に、Ｖｓｙｎｃフラグ及びＨＳｙｎｃフラグを、歪み補正画像内における補正画像データ５４９が示す画素の位置に従って書き換えてもよい。このように、バッファ５０７に出力画素位置５４４を格納することは必須ではない。
【００５５】
次にフィルタ部５０１について詳しく説明する。フィルタ部５０１は、歪み補正部５００から入力された歪み補正画像に対してフィルタ処理を行う。具体的にはフィルタ部５０１は、補正画像データ５４９とフィルタ選択情報５４８とを用いて、出力画像データ５５３を生成する。フィルタ部５０１は処理部として、画像蓄積部５０８、参照画素取得部５１０、カウンタ５１１、及びフィルタ処理部５１２を備える。さらにフィルタ部５０１は記憶部として、フレームメモリ５０９、バッファ５１４、及びフィルタ保持テーブル５１３を備える。フレームメモリ５０９及びバッファ５１４は、歪み補正部５００が備えるフレームメモリ５０３及びバッファ５０７と同様のものでありうる。またフィルタ保持テーブル５１３は、後述のＲＯＭ４０１によって実現されうる。
【００５６】
以下に、フィルタ部５０１が備える各部について説明する。画像蓄積部５０８の動作は画像蓄積部５０２と同様であるが、画像蓄積部５０８は補正画像データ５４９に加えてフィルタ選択情報５４８を歪み補正部５００から取得する。そして画像蓄積部５０８は、補正画像データ５４９及びフィルタ選択情報５４８をフレームメモリ５０９に格納する。画像蓄積部５０８は、画像蓄積部５０２と同様の方法で補正画像データ５４９及びフィルタ選択情報５４８をフレームメモリ５０９に格納することができる。カウンタ５１１は、カウンタ５０６と同様に、画像サイズ情報５４０を参照して出力画素位置５５４を順次出力する。
【００５７】
フィルタ処理部５１２は、カウンタ５１１から入力された出力画素位置５５４の画素値を算出する（演算手段）。フィルタ処理部５１２が行う具体的な処理の一例について、図１１のフローチャートを参照して説明する。ステップＳ１１０１においてフィルタ処理部５１２は、出力画素位置５５４を取得する。ステップＳ１１０２においてフィルタ処理部５１２は、出力画素位置５５４に対応するフィルタ選択情報５４８をフレームメモリ５０９から取得する。具体的にはフィルタ処理部５１２は、出力画素位置５５４を参照画素取得部５１０に送る。参照画素取得部５１０は、送られた画素位置についてのフィルタ選択情報５４８をフレームメモリ５０９から取得し、フィルタ処理部５１２に返す。
【００５８】
ステップＳ１１０３においてフィルタ処理部５１２は、ステップＳ１１０２で取得したフィルタ選択情報５４８に対応するフィルタ５５６を、フィルタ保持テーブル５１３から取得する。より正確にはフィルタ処理部５１２は、各フィルタ係数と、各フィルタ係数を用いた演算の対象となる画素の相対位置と、をフィルタ保持テーブル５１３から取得する。フィルタ保持テーブル５１３は、フィルタ選択情報５４８とフィルタ５５６とを関連付けて保持している。フィルタ選択情報５４８と選択されるフィルタ５５６との関係は、前に説明した通りである。
【００５９】
ステップＳ１１０４においてフィルタ処理部５１２は、出力画素位置５５４の画素値を算出するために用いられる画素（以降で参照画素と呼ぶ）についての補正画像データ５４９を取得する。参照画素は、ステップＳ１１０２で取得されたフィルタ５５６によって特定される。すなわちフィルタ処理部５１２は、フィルタ係数を用いた演算の対象となる画素についての補正画像データ５４９を取得する。具体的にはフィルタ処理部５１２は、参照画素のそれぞれについて、参照画素位置５５５を参照画素取得部５１０に送る。参照画素取得部５１０は、送られた画素位置についての補正画像データ５４９をフレームメモリ５０９から取得し、フィルタ処理部５１２に返す。参照画素取得部５１０は、画素位置と画像サイズ情報５４０とを参照して、送られた画素位置についての補正画像データ５４９が格納されているフレームメモリ５０９内のアドレスを計算する。こうして参照画素取得部５１０は、出力画素位置５５４の近傍についての補正画像データ５４９をフレームメモリ５０９から取得できる。もっともフィルタ処理部５１２は、ステップＳ１１０２において、出力画素位置５５４の近傍についての補正画像データ５４９及びフィルタ選択情報５４８をフレームメモリ５０９から取得してもよい。
【００６０】
ステップＳ１１０５においてフィルタ処理部５１２は、ステップＳ１１０３で取得したフィルタ５５６と、参照画素についてステップＳ１１０４で取得した補正画像データ５４９と、を用いて出力画素位置５５４の画素値を算出する。例えばフィルタ処理部５１２は、参照画素に対してフィルタ５５６に基づく空間フィルタ処理を適用し、出力画像データ５５３を生成することができる。ここで空間フィルタ処理としては、例えばフィルタ５５６に基づく加重平均処理が例として挙げられる。フィルタ処理部５１２は、このようにして得られた出力画像データ５５３を、一旦バッファ５１４に格納する。バッファ５１４に格納された出力画像データは、その後フィルタ部５０１から出力される。
【００６１】
ステップＳ１１０６においてフィルタ処理部５１２は、フィルタ処理を終了するか否かを判定する。例えば、カウンタ５１１から次の出力画素位置５５４が入力されている場合には、フィルタ処理部５１２は処理を終了しないことを決定することができる。処理を終了しない場合、処理はステップＳ１１０１に戻る。処理を終了する場合、図１１の処理は終了する。
【００６２】
ここまで、本実施例に係る画像処理装置が備える各部の動作について、それぞれ説明した。次に、本実施例に係る画像処理装置が行う動作の流れを、図１４のフローチャートを参照して説明する。ステップＳ１４０５において画像蓄積部５０２は、複数の入力画像データ５４２によって表される入力画像を取得する。この処理は、図１３のフローチャートに従って行うことができる。
【００６３】
ステップＳ１４１０において入力画素取得部５０４は、カウンタ５０６及び座標変換テーブル５１５を用いて、歪み補正画像を構成する画素のそれぞれについて対応する入力画像データ５４２を取得する。こうして入力画素取得部５０４は歪み補正画像を生成し、この歪み補正画像内には変形された入力画像が含まれている。この処理は、図９及び図１２のフローチャートに従って行うことができる。
【００６４】
ステップＳ１４１５において領域判定部５０５は、歪み補正画像を構成する画素のそれぞれについて、適用するフィルタを特定するフィルタ選択情報５４８を生成する。この処理は、図１０のフローチャートに従って行うことができる。
【００６５】
ステップＳ１４２０においてフィルタ処理部５１２は、歪み補正画像を構成する画素のそれぞれについて、フィルタ選択情報５４８によって特定されたフィルタを用いたフィルタ処理を行う。こうしてフィルタ処理部５１２は、歪み補正画像に対してフィルタ処理を行い、出力画像を生成する。この処理は、図１１のフローチャートに従って行うことができる。ステップＳ１４２５においてフィルタ処理部５１２は、生成された出力画像を出力する。
【００６６】
最後に、本実施例に係る画像処理装置の物理的構成について説明する。本実施例に係る画像処理装置は、ソフトウェアによって、ハードウェアによって、又はソフトウェアとハードウェアとの組み合わせによって実現されうる。例えば、図５に示されている各部のうち１以上の機能を実現するハードウェアの組み合わせによって、本実施例に係る画像処理装置を実現することができる。
【００６７】
また、本実施例に係る画像処理装置はパーソナルコンピュータのようなコンピュータによっても実現されうる。図４は、本実施例に係る画像処理装置を実現するコンピュータの物理的構成の一例を示す。このコンピュータにおいて本実施例に係る画像処理装置の機能を実行するためには、各機能構成をプログラムにより表現し、このコンピュータに読み込まればよい。こうして、このコンピュータで本実施例に係る全ての機能を実現することができる。この場合、図５をはじめとする構成要素の各々は関数、若しくはＣＰＵが実行するサブルーチンで機能させればよい。
【００６８】
また、コンピュータプログラムは通常、ＣＤ−ＲＯＭ等のコンピュータが読み取り可能な記憶媒体に格納されている。この記憶媒体を、コンピュータが有する読み取り装置（ＣＤ−ＲＯＭドライブ等）にセットし、システムにコピー若しくはインストールすることで実行可能になる。従って、係るコンピュータが読み取り可能な記憶媒体も本発明の範疇にあることは明らかである。
【００６９】
図４においてＣＰＵ４０２は、コンピュータ全体の動作をコントロールする。例えばＣＰＵ４０２は、ＲＡＭ４００に格納されたプログラムの実行等を行う。ＲＡＭ４００は、ハードディスク４０５等の記憶媒体に記憶されたプログラム等を読み込んで格納する。このコンピュータにおいては、図５に示す各部の処理手順を実現するプログラムをハードディスク４０５が格納する。プログラム実行時にはプログラムはＲＡＭ４００に読み込まれ、ＣＰＵ４０２によって実行される。ＲＡＭ４００、ＲＯＭ４０１、ＣＰＵ４０２、及びディスクコントローラ４０３は、バス４０７を介して互いに通信できるように接続されている。また、ハードディスク４０５には、ディスクコントローラ４０３を介してアクセスすることができる。バス４０７には、マウス及びキーボードなどのコンピュータに情報を入力するデバイスをさらに接続することができる。さらにバス４０７には、モニタ及びプリンタなど、コンピュータが情報を出力するために用いられるデバイスを接続することもできる。
【００７０】
特に、画像蓄積部５０２、カウンタ５０６、領域判定部５０５、入力画素取得部５０４、画像蓄積部５０８、カウンタ５１１、参照画素取得部５１０、及びフィルタ処理部５１２は、ＣＰＵ４０２によって実行されるソフトウェアとして実現されうる。また、フレームメモリ５０３、バッファ５０７、フレームメモリ５０９、及びバッファ５１４は、ＲＡＭ４００によって実現されうる。さらに、座標変換テーブル５１５及びフィルタ保持テーブル５１３は、ＲＯＭ４０１によって実現されうる。
【００７１】
［実施例２］
実施例１においては、フィルタ部５０１は歪み補正画像に対してフィルタ処理を行って出力画像を生成し、この出力画像を出力した。実施例２に係る画像処理装置は、動画像に対して画像変形を行い、さらに動画像のフレームレートを向上させる。すなわち実施例２に係る画像処理装置は、それぞれのフレーム画像から複数のフレーム画像を生成する。動画像のフレームレートを増加させる場合に、フレーム画像に対してフィルタ処理を行うことにより画質を向上させる技術が知られている。実施例２に係る画像処理装置もまた、１つのフレーム画像から複数のフレーム画像を生成する際に、フィルタ処理を行う。
【００７２】
本実施例において、歪み補正部５００には連続するフレーム画像で構成される動画像が入力される。歪み補正部５００は、それぞれのフレーム画像に対して変形処理を行うことにより、連続する歪み補正画像で構成される動画像を生成する。フィルタ部５０１は、それぞれの歪み補正画像に対してフィルタ処理を行うことにより、複数の出力画像を生成する。そしてフィルタ部５０１は、それぞれの出力画像で構成される動画像を出力する。すなわち、フィルタ部５０１が出力する動画像のフレームレートは、フィルタ部５０１に入力された動画像のフレームレートよりも高い。フィルタ部５０１がフレームレート向上処理を行ってから歪み補正部５００が変形処理を行う構成も考えられるが、この場合歪み補正部５００が処理する画像の数が増えてしまうため、処理負荷が増大する。従って、歪み補正部５００が変形処理を行ってからフィルタ部５０１がフレームレート向上処理を行うことは有利である。
【００７３】
本実施例に係る画像処理装置の具体的な構成について以下に説明する。本実施例に係る画像処理装置は、図５に示す実施例１に係る画像処理装置と同様の構成を有する。本実施例の構成を実現するためには、カウンタ５１１はステップＳ９０１〜ステップＳ９０６の処理を繰り返せばよい。具体的には、フレームレートをＮ倍にする場合、カウンタ５１１はステップＳ９０１〜ステップＳ９０６の処理を、フィルタ部５０１に１枚の歪み補正画像が入力される毎にＮ回行えばよい。
【００７４】
本実施例に係る画像処理装置によれば、１枚の歪み補正画像からＮ枚の出力画像（サブフレーム画像）が生成される。ここで、それぞれのサブフレーム画像を生成するために用いられるフィルタはそれぞれ異なっていてもよい。具体的には、１番目のサブフレーム画像を生成するために低周波強調フィルタを用いるフィルタ演算が行われ、２番目のサブフレーム画像を生成するために高周波強調フィルタを用いるフィルタ演算が行われてもよい。本実施例に係る画像処理装置は、複数のフィルタ保持テーブル５１３を備えていてもよい。すなわちそれぞれのサブフレーム画像を生成する際に、異なるフィルタ保持テーブル５１３が参照されてもよい。
【００７５】
［その他の実施例］
上述の実施例においては、フィルタ８００，８０１，８０２，８０３のうちから、１つのフィルタが選択された。しかしながらフィルタの選択方法は上述の方法に限られるわけではない。例えば上述の実施例においては、入力画素位置５５８（Ｓａ）と入力画素位置５５９（Ｓｂ）との間の距離に応じてフィルタ８０２又はフィルタ８０３が選択された。しかしながら、入力画素位置５５８（Ｓａ）と入力画素位置５５９（Ｓｂ）との間の距離と、複数の閾値とを比較することにより、３つ以上のフィルタから１つが選択されてもよい。
【００７６】
また、入力画素位置５５８が入力画像の領域外にある場合にはフィルタ８００を選択し、入力画素位置５５８が入力画像の領域内にある場合にはフィルタ８０２を選択するという構成によっても、画質の改善は達成されうる。すなわち、変形後の画像にブランキング領域を有する変形処理において、ブランキング領域と有効領域の境界部分において空間フィルタ処理を適切に行うことができる。このように、入力画素位置５５８（Ｓａ）と入力画素位置５５９（Ｓｂ）との間の距離に基づいてフィルタを選択することは必須ではない。
【００７７】
一方で、入力画素位置５５８が入力画像の領域外にあるか否かを判定せずに、入力画素位置５５８が入力画像領域の境界上に位置するか否か、又は境界付近に位置するか否かのみに従ってフィルタを選択することのみによっても、画質の改善は達成されうる。すなわち、入力画素位置５５８が入力画像領域の境界部付近に位置する場合に、より参照範囲の狭いフィルタを用いればよい。
【００７８】
一方で、入力画素位置５５８が入力画像の領域外にあるか否かを判定せずに、入力画素位置５５８（Ｓａ）と入力画素位置５５９（Ｓｂ）との間の距離に基づいてフィルタを選択することのみによっても、画質の改善は達成されうる。すなわち、領域毎に拡大・縮小率が異なる変形処理において、均一な効果の空間フィルタ処理を行うことができる。このような修正は、ステップＳ１００５〜Ｓ１００７を修正することにより達成されうる。
【００７９】
１つの実施例において、歪み補正画像中の着目画素位置に写像される入力画像中の画素位置が存在し、かつ入力画素位置５５８（Ｓａ）が入力画像における一辺から所定距離内に位置する場合に、第１のフィルタ係数群が選択されうる。第１のフィルタ係数群とは、例えばフィルタ８０１でありうる。一方で歪み補正画像中の着目画素位置に写像される入力画像中の画素位置が存在し、かつ入力画素位置５５８（Ｓａ）が入力画像における一辺から所定距離内に位置する場合に、第２のフィルタ係数群が選択されうる。第２のフィルタ係数群とは、例えばフィルタ８０３でありうる。ここで、第２のフィルタ係数群に含まれる係数の数は、第１のフィルタ係数群に含まれる係数の数よりも多い。すなわち、第２のフィルタ係数群を用いてフィルタ処理を行う際に参照される第２の画素群の画素数は、第１のフィルタ係数群を用いてフィルタ処理を行う際に参照される第１の画素群の画素数よりも多い。
【００８０】
他の実施例において、歪み補正画像中の着目画素位置に写像される入力画像中の画素位置が存在し、かつ入力画素位置５５８（Ｓａ）と入力画素位置５５９（Ｓｂ）との間の距離が閾値以上である場合に、第１のフィルタ係数群が選択されうる。第１のフィルタ係数群とは、例えばフィルタ８０２でありうる。一方で歪み補正画像中の着目画素位置に写像される入力画像中の画素位置が存在し、かつ入力画素位置５５８（Ｓａ）と入力画素位置５５９（Ｓｂ）との間の距離が閾値以上ではない場合に、第２のフィルタ係数群が選択されうる。第２のフィルタ係数群とは、例えばフィルタ８０３でありうる。ここで、第２のフィルタ係数群に含まれる係数の数は、第１のフィルタ係数群に含まれる係数の数よりも多い。すなわち、第２のフィルタ係数群を用いてフィルタ処理を行う際に参照される第２の画素群の画素数は、第１のフィルタ係数群を用いてフィルタ処理を行う際に参照される第１の画素群の画素数よりも多い。
【００８１】
上述の実施例においては、出力画素位置５４４に基づきフィルタ選択情報５４８が決定され、その後フィルタ保持テーブル５１３を参照してフィルタ選択情報５４８に対応するフィルタ５５６が取得された。しかしながらフィルタ保持テーブル５１３は、出力画素位置５４４とフィルタ５５６との組を格納していてもよい。この場合フィルタ処理部５１２は、フィルタ選択情報５４８を用いずに、出力画素位置５４４に対応するフィルタ５５６を取得することができる。また、フィルタ保持テーブル５１３の代わりに、任意の変換式に基づいて、出力画素位置５４４からフィルタ５５６を算出してもよい。
【００８２】
フィルタ処理で用いられるフィルタ５５６の決定は、領域判定部５０５以外の構成要素が行ってもよい。例えばフィルタ処理部５１２が、入力画素位置５５８に基づいてフィルタ処理で用いられるフィルタ５５６を決定してもよい。さらにフィルタ処理部５１２は、入力画素位置５５８（Ｓａ）及び入力画素位置５５９（Ｓｂ）に基づいてフィルタ５５６を算出してもよい。例えばフィルタ処理部５１２は、入力画素位置５５８が入力画像領域外にある場合、フィルタ８００を用いる。一方でフィルタ処理部５１２、入力画素位置５５８が入力画像領域内にある場合、入力画素位置５５８（Ｓａ）と入力画素位置５５９（Ｓｂ）とを用いて、所定の計算式に従ってフィルタ係数を算出する。具体的には、入力画素位置５５８（Ｓａ）と入力画素位置５５９（Ｓｂ）との間の距離が小さいほど、フィルタ中心の係数がより大きくかつ周辺部の係数がより小さくなるような計算式を用いて、フィルタ係数を算出すればよい。
【００８３】
上述の実施例においては、座標変換テーブル５１５に従って、出力画素位置５４４（Ｄａ）が入力画素位置５５８（Ｓａ）へと変換された。同様に、出力画素位置５４５（Ｄｂ）は入力画素位置５５９（Ｓｂ）へと変換された。しかしながらこの変換は、変換式に従って行われてもよい。この場合にも上述の実施例と同様、入力画素位置５５９が入力画像領域内にあるか否かは判定されうる。また、入力画素位置５５８と入力画素位置５５９との距離も算出されうる。
【００８４】
上述の実施例において領域判定部５０５は、画素Ｄａに隣接する画素として、画素ＤａのＸ軸正方向に隣接する画素Ｄｂを選択した。しかしながら、画素Ｄｂは任意の方法で選択できる。そもそも画素Ｄｂは、画素Ｄａに隣接していなくてもよい。すなわち領域判定部５０５は、画素Ｄａの近傍にある画素、例えば画素Ｄａに対して所定の相対位置にある画素を、画素Ｄｂとして選択してもよい。
【００８５】
さらに領域判定部５０５は、画素Ｄａの近傍にある複数の画素を選択してもよい。例えば領域判定部５０５は、画素Ｄａに対してＸ軸正方向に隣接する画素Ｄｂ１と、Ｘ軸負方向に隣接する画素Ｄｂ２と、Ｙ軸正方向に隣接する画素Ｄｂ３と、Ｙ軸負方向に隣接する画素Ｄｂ４とを選択してもよい。この場合領域判定部５０５は、画素Ｄａに対応する入力画像中の画素Ｓａと、画素Ｄｂ１〜４に対応する入力画像中の画素Ｓｂ１〜４と間の距離に従って、フィルタ選択情報５４８を決定できる。例えば、画素Ｓａと画素Ｓｂ１との間の距離、画素Ｓａと画素Ｓｂ２との間の距離、画素Ｓａと画素Ｓｂ３との間の距離、及び画素Ｓａと画素Ｓｂ４との間の距離の合計（又は平均）を求めてもよい。そして領域判定部５０５は、求められた合計と所定の閾値とを上述の実施例のように比較することにより、フィルタ選択情報５４８を決定してもよい。
【００８６】
別の実施例において領域判定部５０５は、画素Ｄａに対応する入力画像中の画素Ｓａが入力画像の境界に位置するか否かを判定するのに加えて、又はこの代わりに、画素Ｓａが入力画像の境界付近に位置するか否かを判定してもよい。例えば領域判定部５０５は、上述のように画素Ｄａの近傍にある複数の画素Ｄｂを選択し、それぞれの画素Ｄｂに対応する入力画像中の画素Ｓｂが、入力画像領域内にあるか否かを判定してもよい。１つ以上の画素Ｓｂが入力画像領域内にない場合、領域判定部５０５は、画素Ｄａが有効領域の境界付近にあると判定することができる。この場合領域判定部は、画素Ｄａに対しては参照範囲の狭いフィルタが用いられるように、例えばフィルタ８０１が用いられるように、フィルタ選択情報５４８を決定してもよい。
【００８７】
さらには、画素Ｄａに対応する入力画像中の画素Ｓａの位置（すなわち入力画素位置５５８）と、入力画像の境界との間の距離に応じて、領域判定部５０５はフィルタ選択情報５４８を決定してもよい。例えば、用いられるフィルタ５５６の参照範囲が、画素Ｓａと入力画像の境界との間の距離を半径とする円よりも狭くなるように、フィルタ選択情報５４８が決定されてもよい。
【００８８】
（他の実施形態）
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムコードを読み出して実行する。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【図１】
0005746556.tif 000002
【図２】
0005746556.tif 000003
【図３】
0005746556.tif 000004
【図４】
0005746556.tif 000005
【図５】
0005746556.tif 000006
【図６】
0005746556.tif 000007
【図７】
0005746556.tif 000008
【図８】
0005746556.tif 000009
【図９】
0005746556.tif 000010
【図１０】
0005746556.tif 000011
【図１１】
0005746556.tif 000012
【図１２】
0005746556.tif 000013
【図１３】
0005746556.tif 000014
【図１４】
0005746556.tif 000015