(57)【要約】【課題】画像の変形処理において、入力画像バッファのサイズを小さくする。【解決手段】画像変形方法は、変形前画像の走査線方向に第１ピッチで、且つ垂直走査方向に第２ピッチで配置された領域隅点によって囲まれた複数の領域を設定する工程と、複数の領域の各々に対して０個以上のサンプリングポイントを設定する工程と、サンプリングポイントの個数と、各サンプリングポイントを特定する識別子と、変形後画像において各サンプリングポイントに対応する画素とを対応づける変形データを生成する工程と、変形前画像の画像データを読み込んで入力バッファに格納する工程と、変形データに基づいて画像データを変更することにより変形後画像を生成する工程とを備える。【選択図】図５
2013009232.tif 000002
【特許請求の範囲】
【請求項１】
変形前画像の走査線方向に第１ピッチで、且つ垂直走査方向に第２ピッチで配置された領域隅点によって囲まれた複数の領域を設定する工程と、
前記複数の領域の各々に対して０個以上のサンプリングポイントを設定する工程と、
前記サンプリングポイントの個数と、各サンプリングポイントを特定する識別子と、変形後画像において各サンプリングポイントに対応する画素とを対応づける変形データを生成する工程と、
前記変形前画像の画像データを読み込んで入力バッファに格納する工程と、
前記変形データに基づいて前記画像データを変更することにより前記変形後画像を生成する工程とを具備する
画像変形方法。
【請求項２】
前記画像データは、前記変形前画像を構成する複数の画素の各々の画素値を示し、
前記変形後画像を生成する工程は、
所定の補間方法に基づいて前記画像データから前記サンプリングポイントの各々の画素値である補間画素値を計算する工程と、
前記補間画素値を前記変形データにおいて対応する前記変形後画像の画素値とすることにより前記変形後画像を生成する工程とを具備する
画像変形方法。
【請求項３】
前記複数の領域の各々は２行２列の画素の各々の中心によって囲まれた領域であり、
前記画像データを読み込む工程は、
前記画像データのうち、走査順に、第１走査線の第１画素から前記第１走査線の次に走査される第２走査線の第２画素までのｍ個の画素のデータを前記入力バッファに読み込んで保存する工程とを具備し、
前記ｍ個は、少なくとも（ｐｘ＋２）個（ｐｘは１走査線の画素数）であり、
前記画像データを読み込む工程は更に、
前記第２走査線の第２画素の次の画素の前記画像データを前記入力バッファに読み込む工程と、
前記入力バッファの前記第１画素のデータを破棄する工程とを具備し、
前記変形後画像を生成する工程は、前記入力バッファに保存された前記画像データに対して実行される
請求項２に記載された画像変形方法。
【請求項４】
前記変形データを生成する工程において、前記変形データは所定の圧縮方法により圧縮して前記入力バッファに保存される
請求項１から３のいずれかに記載された画像変形方法。
【請求項５】
変形前画像の走査線方向に第１ピッチで、且つ垂直走査方向に第２ピッチで配置された領域隅点によって囲まれた複数の領域を設定する領域設定部と、
前記複数の領域の各々に対して０個以上のサンプリングポイントを設定するサンプリングポイント設定部と、
前記サンプリングポイントの個数と、各サンプリングポイントを特定する識別子と、変形後画像において各サンプリングポイントに対応する画素とを対応づける変形データを生成する変形データ生成部と、
前記変形前画像の画像データを読み込んで入力バッファに格納する画像データ読込部と、
前記変形データに基づいて前記画像データを変更することにより前記変形後画像を生成する変形後画像生成部とを具備する
画像変形装置。
【請求項６】
前記画像データは、前記変形前画像を構成する複数の画素の各々の画素値を示し、
前記変形後画像生成部は、
所定の補間方法に基づいて前記画像データから前記サンプリングポイントの各々の画素値である補間画素値を計算し、
前記補間画素値を前記変形データにおいて対応する前記変形後画像の画素値とすることにより前記変形後画像を生成する
請求項５に記載された画像変形装置。
【請求項７】
前記複数の領域の各々は２行２列の画素の各々の中心によって囲まれた領域であり、
前記画像データ読込部は、
前記画像データのうち、走査順に、第１走査線の第１画素から前記第１走査線の次に走査される第２走査線の第２画素までのｍ個の画素のデータを前記入力バッファに読み込んで保存し、
前記ｍ個は、少なくとも（ｐｘ＋２）個（ｐｘは１走査線の画素数）であり、
前記画像データ読込部は更に、
前記第２走査線の第２画素の次の画素の前記画像データを前記入力バッファに読み込み、
前記入力バッファの前記第１画素のデータを破棄し、
前記変形後画像生成部は、前記入力バッファに保存された前記画像データから前記変形後画像を生成する
請求項６に記載された画像変形装置。
【請求項８】
前記変形データ生成部は、前記変形データを所定の圧縮方法により圧縮して前記入力バッファに保存する
請求項５から７のいずれかに記載された画像変形装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像を変形する技術に関する。本発明は特に、画像の歪みを補正するのに適した画像変形技術に関する。
【背景技術】
【０００２】
車載カメラ、監視カメラ、デジタルカメラ等によって撮影した画像を処理する様々な技術が開発されている。例えば、車載カメラの映像をカーナビゲーションシステムのＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）によって画像処理を行う技術が開発されている。画像処理により、運転支援のための車載カメラの視点変換や広角カメラの歪み補正が可能である。
【０００３】
カメラ等からリアルタイムで入力される映像の歪み補正等の変形を行う場合、通常は、入力画像を一時フレームメモリに格納し、フレームメモリ上の画像に対して処理を行う。しかしながら、例えば４つの入力画像をそれぞれ１／４に縮小し、１つのフレームバッファに合成するなどの場合、４つの入力それぞれに対して一時メモリが必要であり、必要なメモリの容量とメモリアクセスが大きくなってしまうという問題がある。
【０００４】
特許文献１には、画像処理装置の一例が記載されている。この技術では、画像の入力画素が、座標アドレス毎に、補正後画像の対応する出力画素座標（格納するメモリのアドレス）に変換される。このアドレス変換は入力画像の歪みを補正するように実行される。
【０００５】
この技術では、各入力画素アドレスと出力画素アドレスは１対１の変換になる。そのため、例えば画像の拡大時には、対応する入力画素が存在しない出力画素が生じる。対応する入力画素が存在しない出力座標は、あらかじめキャリブレーションテーブルに設定しておく。該当画素は、その周囲の画素値に基づいて補間される。
【０００６】
特許文献２には、画像補正に関する技術が記載されている。この技術では、入力画素の輝度をスキャン順に読み込み、１つの入力画素値について、対応づけられた全ての出力画素（補正後画素）に対し順次重み付け演算を行う。１つの出力画素に対するｎ個の重み付けされた画素値を加算することにより、出力画素値を得る。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−３３８１３７号公報
【特許文献２】特開２００２−５６３８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１の手法においては、補正後の画素値を得るために参照する画素は、対応付けられた１つの補正前画素である。さらに、対応する補正前画素が存在しない補正後画素値については、あらかじめ用意されたキャリブレーションテーブルにそのアドレスを格納しておき、該当アドレスの画素に着いては、（対応する補正前画素が存在する）周辺の補正後画素値に基づいて補間する。
【０００９】
当該方法では、多くの補正前画素と補正後画素のアドレスは１対１の関係にある。すなわち、一部の補間によって得られた補正後画素を除くと、ポイントサンプリング手法による変形と同じような出力画像となる。例えば車載カメラの歪み補正等の用途では、その補正後画像の品質が十分ではない。
【００１０】
特許文献２の手法では、補正後の画素値を得るために、例えばバイリニア法等、補正後画像の品質が比較的高い手法をとることが可能である。しかしながら、この手法では、各入力画素に、対応するすべての出力画素の数だけ重み演算をし、その結果をバッファに一時保持しなければならない。そのためバッファサイズが大きくなってしまう。あるいはバッファを共有する場合でも、メモリアクセスの頻度が非常に多くなってしまうという問題がある。
【課題を解決するための手段】
【００１１】
本発明の一側面において、画像変形方法は、変形前画像の走査線方向に第１ピッチで、且つ垂直走査方向に第２ピッチで配置された領域隅点によって囲まれた複数の領域を設定する工程と、複数の領域の各々に対して０個以上のサンプリングポイントを設定する工程と、サンプリングポイントの個数と、各サンプリングポイントを特定する識別子と、変形後画像において各サンプリングポイントに対応する画素とを対応づける変形データを生成する工程と、変形前画像の画像データを読み込んで入力バッファに格納する工程と、変形データに基づいて画像データを変更することにより変形後画像を生成する工程とを備える。
【００１２】
本発明の他の側面において、画像変形装置は、変形前画像の走査線方向に第１ピッチで、且つ垂直走査方向に第２ピッチで配置された領域隅点によって囲まれた複数の領域を設定する領域設定部と、複数の領域の各々に対して０個以上のサンプリングポイントを設定するサンプリングポイント設定部と、サンプリングポイントの個数と、各サンプリングポイントを特定する識別子と、変形後画像において各サンプリングポイントに対応する画素とを対応づける変形データを生成する変形データ生成部と、変形前画像の画像データを読み込んで入力バッファに格納する画像データ読込部と、変形データに基づいて画像データを変更することにより変形後画像を生成する変形後画像生成部とを備える。
【発明の効果】
【００１３】
本発明により、画像の変形処理において、入力画像バッファのサイズを小さくすることができる。
【図面の簡単な説明】
【００１４】
【図１】図１は、本発明の第１実施形態における画像変形装置の構成を示す。
【図２】図２は、変形処理部の構成を示す。
【図３】図３は、補間演算部の構成を示す。
【図４】図４は、入力画像の画素Ｐと領域Ｒの関係を示す。
【図５】図５は、変形前画像と変形後画像の関係を示す。
【図６】図６は、変形データを示す。
【図７】図７は、変形処理のフローを示す。
【図８】図８は、画像座標系と画素の入力順序とを示す。
【図９】図９は、入力バッファに格納されるデータを示す。
【図１０】図１０は、読み出しデータを示す。
【図１１】図１１は、補間方法の一例を示す。
【図１２】図１２は、本発明の第２実施形態における画像変形装置の構成を示す。
【図１３】図１３は、符号化の一例を示す。
【図１４】図１４は、変形処理のフローを示す。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態を説明する。ラスタスキャン順に入力される画素を一時記憶メモリに格納する。この一時記憶メモリは、補間演算に必要な分のみ用意すればよい。例えばバイリニア補間を用いる場合は１走査線＋２ピクセル分のデータを格納する容量を持つバッファを用意する。バイキュービック補間を用いる場合は３走査線＋４ピクセル分のバッファを用意する。補間演算方法は、変形後の画像の品質要求に応じ、適切なものを採用できる。
【００１６】
変形の演算は、あらかじめ定められた変形データを参照して行う。この変形データには、各画素の近傍領域内に対応する変形後画素の数、領域内にサンプリングポイントをもつ変形後画像の画素の座標および、そのサンプリングポイントの領域内における相対位置を示す情報が含まれる。
【００１７】
次に、添付図面を参照して、本発明の第１実施形態について説明する。図１は、本実施形態における画像変形装置の構成を示す。画像変形装置は、ビデオ入力部１、入力画像バッファ２、変形処理部３、ビデオ出力部４、及び出力画像・変形データバッファ６を備える。これらの各部はバス５で互いに接続される。
【００１８】
ビデオ入力部１は、カメラ等によって撮影された映像データをそのラスタスキャン順に取り込む。映像データは、入力の時系列順にリアルタイムに入力画像バッファ２に書き込まれる。映像データには、具体的には、変形対象の画像を構成する画素の座標を特定する情報と、画素値（輝度など）を示す情報とが含まれる。
【００１９】
入力画像バッファ２は、映像データをビデオ入力部１から取り込んだ順に格納する。入力画像バッファ２は、例えばＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）によって構成することができる。入力画像バッファ２は、ＳＲＡＭ以外に、一部あるいは全部をフリップフロップ等を用いた汎用あるいは専用レジスタを用いて構成することができる。また入力画像バッファ２と出力画像・変形データバッファ６とが物理的に同一のメモリを共有している構成であってもよい。
【００２０】
変形処理部３は、予め出力画像・変形データバッファ６に格納されている変形データを読み込む。入力した変形前画像は、この変形データに基づいて変形後画像に変形される。変形後画像は出力画像・変形データバッファ６のＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）に格納される。
【００２１】
出力画像・変形データバッファ６は、ＤＲＡＭによって構成することができ、変形データと変形後データ（変形処理後の画像データ）とを格納する。出力画像・変形データバッファ６は必ずしもＤＲＡＭである必要はない。例えばその一部あるいは全部がＳＲＡＭやその他の記憶素子であってもよい。また出力画像・変形データバッファ６と入力画像バッファ２が物理的に同一のメモリを共有する構成であってもよい。図１では出力画像・変形データバッファ６は、変形処理を行うために参照される変形データと、出力する変形後画像とを共に格納している。しかし変形データを格納する変形データバッファと、変形後画像を格納する出力画像バッファとを物理的に別のメモリで構成してもよい。ビデオ出力部４は、出力画像・変形データバッファ６に格納された変形後画像を外部装置に出力する。
【００２２】
次に、変形処理部３の内部構成を示す。制御部１４は、各モジュールの処理タイミング等を制御する。変形データ読み出し部１３は、ＤＲＡＭ（出力画像・変形データバッファ６）に格納されている変形データを読み出し、各モジュールに、以下のようにデータを送信する。制御部１４に対しては、現在の処理対象の変形前画像領域に含まれる処理対象点の数を送信する。補間演算部１１に対しては、現在の処理対象画素のサンプリングポイント座標を送信する。変形後画像書き込み部１２に対しては、現在の処理対象画素の変形後の座標（メモリアドレス）を送信する。
【００２３】
補間演算部１１は、変形の補間演算を行う。補間演算のためのパラメータ（補間対象座標の周辺画素値の重み係数）としては、変形データ読み出し部１３より得たサンプリングポイント座標が用いられる。変形後画像書き込み部１２は、変形後画像の画素値のデータを出力画像・変形データバッファ６に書き込む。書き込みアドレスは変形データ読み出し部１３より得る。
【００２４】
図３は、補間演算部１１が備える機能ブロックを示す。補間演算部１１は、領域設定部Ａ１、サンプリングポイント設定部Ａ２、変形データ生成部Ａ３、画像データ読込部Ａ４、及び変形後画像生成部Ａ５として機能する。これらの機能は、変形処理装置が備える演算制御装置が、記憶装置に予め格納されたプログラムを読み出し、そのプログラムの記述に従って動作することによって実現される。
【００２５】
図４は、変形処理の対象となる変形前画像を示す。変形前画像は、縦横にマトリクス状に並んだ画素Ｐによって形成される。２行２列の互いに隣接する４画素のそれぞれの中心点Ｃを結ぶことによって矩形領域が形成される。
【００２６】
この矩形の領域Ｒの設定について説明する。補間演算部１１が備える領域設定部Ａ１は、変形前画像に対して予め、走査線方向と垂直走査線方向に縦横に並んだ複数の領域Ｒを設定する。この領域Ｒは、次のようにして設定することができる。変形前画像の走査線方向に第１ピッチで、且つ垂直走査線方向に第２ピッチで配置された領域隅点を設定する。第１ピッチは、変形前画像の走査線方向の画素のピッチの整数倍であり、好ましくは同一である。第２ピッチは、変形前画像の垂直走査線方向の画素のピッチの整数倍であり、後述する入力バッファの節約のためには同一であることが特に好ましい。この領域隅点を四隅とする矩形が、領域Ｒとして設定される。以下の説明では、領域Ｒは２行２列の画素の中心によって囲まれた領域であるとする。領域設定部Ａ１によって予め設定される領域Ｒと、各変形前画素との位置関係が、後に説明する補間演算に用いられる。
【００２７】
サンプリングポイント設定部Ａ２は、各領域Ｒ内に、画像変形のために用いられるサンプリングポイントを０個以上、設定する。０個以上というのは、サンプリングポイントが１つも設定されない領域もあり得るという意味である。領域設定部Ａ１とサンプリングポイント設定部Ａ２は、以上の領域Ｒとサンプリングポイントを、処理対象の映像データが入力される前に、オペレータの入力作業に応じて、あるいは所定のアルゴリズムによりコンピュータが生成したデータによって設定し保存する。
【００２８】
変形データ生成部Ａ３は、変形前画像から変形後画像を生成するための処理を定義する画像フィルタとして機能する変形データを生成する。変形データは、各領域Ｒについて、サンプリングポイントの個数と、各サンプリングポイントを特定する識別子と、変形後画像において各サンプリングポイントに対応する画素とを対応づける。
【００２９】
具体的には、変形データは、以下のデータを含む。
（１）矩形領域Ｒ内のサンプリングポイント数（以下Ｎとする）。
領域Ｒ内にサンプリングポイントが無い場合は、Ｎ＝０である。
（２）Ｎ！＝０（Ｎが０でない）の場合
それぞれのサンプリングポイントに対応する変形後画像の画素の座標（以下Ｄとする）。Ｄが演算出力の格納先アドレスとなる。
（３）Ｎ！＝０の場合
それぞれのサンプリングポイントの領域Ｒ内の相対座標（以下Ｓとする）。例えば各領域Ｒの左上を原点とする。Ｓが補間演算のパラメータとなる。
【００３０】
画像データ読込部Ａ４は、ビデオ入力部１からの入力画像バッファ２への入力画像データのバッファリングと、入力画像バッファ２から変形処理部３へのバッファされたデータの読み出しとを制御する。
【００３１】
図５は、画像変形処理の例を示す。変形前画像の各サンプリングポイントの座標Ｓｘ（ｘは各サンプリングポイントを特定する識別子）は、変形後画像の画素の座標Ｄｘ（ｘは各画素を特定する識別子）に対応する。変形前画像２０の矩形は、２行２列の画素の中心点で囲まれた領域を示す（以降領域Ｒｘ）。すなわち、変形前の各画素の中心は、矩形の頂点位置となる。変形後の画像の矩形は、画素そのものを表す。
【００３２】
図６に変形データの例を示す。変形データ２２には、領域Ｒ０、Ｒ１、Ｒ２・・・と、各領域Ｒに関する変形データがラスタスキャン順に含まれる。各領域Ｒｘの変形データには、変形後画素（変形後画像において当該領域に対応する画素）の数Ｎ、Ｎ個の変形後画素の座標Ｄｘ（ｘは０からＮ−１までの整数）、および変形後画素に対応する変形前矩形領域Ｒ内のサンプリングポイントの位置Ｓｘが含まれる。
【００３３】
次に、図５の変形を例にとり、図６の変形データがどのように決定されるかを示す。変形前画像の最初の２つの領域（Ｒ０で示される左上の領域とＲ１で示されるその右隣の領域）には、対応する変形後の画素が存在しない。そのため、変形データ２２の変形後画素の数Ｎは、（ａ）に示されるように０である。Ｒ２で示される３番目の領域は、サンプリングポイントＳ０、Ｓ１が２つ、それぞれに対応する変形後の画素Ｄ０、Ｄ１が２つある。そのため変形データ２２のＮは２である。Ｒ２の変形データ２２には更に、変形後の画素の変形後画像内での座標Ｄ０、Ｄ１および、変形前の領域の相対位置Ｓ０、Ｓ１がそれぞれ格納される。
【００３４】
変形処理は、あらかじめ用意された上記の変形データに基づいて行われる。画像データは、画素のスキャン順に入力される。画素のデータが入力される毎に、対応する変形データが参照される。
【００３５】
変形データはＲ０、Ｒ１、Ｒ２・・・と画素の入力順（ラスタスキャン順）に格納されている。そのため、フレームの処理開始時より、順次に入力される画素データに対応する変形データを先頭から順次読み込む。変形データがＮ＝０である場合、対応する変形後の画素は存在しない。そのため、何も処理を行わない。変形データがＮ！＝０である場合、Ｎの数だけ補間演算を行う。具体的には、Ｓの値を用いて補間演算を行う。画素を格納するメモリアドレスは、Ｄの値を用いて決定される。
【００３６】
変形処理のフローチャートを図７に示す。このフローチャートに従って、変形処理を説明する。入力画像２３の座標系を図８に示す。画像の左上を原点として、右方向（走査線方向）にｘ座標、下方向（垂直走査線方向）にｙ座標が設定される。ラスタスキャンの画素入力順２４は、走査線をｘ方向として、走査線に沿って左から右、且つ上の走査線から下の走査線に向かう方向である。ビデオ入力部１によって処理対象の映像データを取り込む前に、予め変形データが準備され、出力画像・変形データバッファ６に格納される。
【００３７】
ステップＳ１
ビデオ入力部１がカメラ等からの画像データ（画素データ）を入力し、入力画像バッファ２に取り込む。入力画像バッファ２は、補間演算に必要な分のサイズを持つ。例えばバイリニア補間の場合、補間対象領域の近傍４点の画素値が必要である。そのため、図９に示すように１ライン＋２ピクセル分のバッファが必要である。補間演算に不要となった画素データは破棄される。
【００３８】
この入力バッファの動作をより一般的に説明する。画像データ読込部Ａ４は、画像データのうち、走査順に、各々の走査線（図９の前ラインの画素データ３１、仮に第１走査線と呼ぶ）の第１画素から第１走査線の次に走査される走査線（現ラインの画素データ３２、第２走査線と呼ぶ）の第２画素までのｍ個の画素のデータを入力画像バッファ２に読み込んで保存する。ｍ個は、少なくとも（ｐｘ＋２）個（ｐｘは１走査線の画素数）である。図９の例では、ｍ＝ｐｘ＋２である。この場合、領域Ｒｎは２行２列の領域となる。この例が最も入力バッファが小さくて済む点で好ましい。
【００３９】
画像データ読込部は更に、第２走査線の第２画素の次の画素の入力画素データ３４を入力バッファに読み込む。その際、入力バッファの以前に入力したデータ３３のうち、第１画素のデータを破棄データ３５として破棄する。変形後画像生成部Ａ５は、入力バッファ３０に保存された画像データから変形後画像を生成する。
【００４０】
ステップＳ２
入力画素の座標が、ｘ＝０あるいはｙ＝０（入力画像の左端あるいは上端）の場合、補間処理を行わない。入力画像の左端あるいは上端画素を入力する時点では、対応する領域Ｒｘ（入力画素を右下とした２行２列の４画素の中心点で囲まれる領域）が存在しないためである。
【００４１】
以降、各入力画素を右下とする領域（入力画素の座標が（ｍ，ｎ）の場合、（ｍ−１，ｎ−１），（ｍ，ｎ−１），（ｍ−１，ｎ），（ｍ，ｎ）で囲まれた領域）をＲｍｎとする。
【００４２】
ステップＳ３
領域Ｒｍｎ内で変形データを参照してＮ＝＝０（Ｎの値が０）である場合、補間処理を行わない。Ｒｍｎ内に処理対象の画素が存在しないためである。
【００４３】
ステップＳ４
画像データ読込部Ａ４は、補間に必要な画素データを、入力画像バッファより読み出す。例えば、バイリニア補間を行う場合、処理対象の近傍４画素の画素値が必要であるため、座標（ｍ−１，ｎ−１），（ｍ，ｎ−１），（ｍ−１，ｎ），（ｍ，ｎ）の画素値を読み出す。図１０は、画像データ読込部Ａ４が読み出す読み出しデータ４０を示す。図９の入力バッファ３０に格納された前ラインの画素データ３１、現ラインの画素データ３２がそれぞれ前ラインの画素データ４１、現ラインの画素データ４２として読み出される。その結果、領域Ｒｎに対する変形処理が可能となる。
【００４４】
ステップＳ５
変形後画像生成部Ａ５は、ステップＳ５〜Ｓ１０において変形後画像を生成する。まず変形後画像生成部Ａ５は、変形データを変形データバッファより読み出す。ステップＳ６以降で必要な変形パラメータを読み出す。
【００４５】
ステップＳ６
所定の補間方法に基づいて、変形前画像の画像データ（ステップＳ４で読み出した画素値）から、サンプリングポイントＳｘの各々の画素値である補間画素値を計算する補間演算を行う。バイリニア補間の場合、ここでＳｘは、領域Ｒｍｎの左上を原点とする相対座標（ｕ，ｖ）（０＜＝ｕ，ｖ＜１）とする。図１１のように、補間対象点Ｓｘの近傍の画素値をそれぞれＰ（ｍ−１，ｎ−１），Ｐ（ｍ，ｎ−１），Ｐ（ｍ−１，ｎ），Ｐ（ｍ，ｎ）とすると、補間演算は下式により行われる。
【数１】
2013009232.tif 000003
ここで、Ｓ´ｘが補間後の画素値である。カラー画像の場合は、各色値に関してそれぞれの演算を行う。この演算は、バイリニア補間と呼ばれる一般的な補間演算である。
【００４６】
ステップＳ７
補間結果を出力バッファに書き込む。ステップＳ５で求めた画素値Ｓ´ｘを出力バッファのＤが示すアドレスに格納する。この処理によって、補間画素値を変形データにおいて対応する変形後画像の画素値とすることにより、変形後画像が生成される。
【００４７】
ステップＳ８
領域Ｒｍｎ内に残りの処理対象画素が存在する場合はステップＳ５に戻り、処理を行う。
【００４８】
ステップＳ９
フレーム最終画素である場合には処理を終了する。以上の一連の処理が各フレームに対して実行される。
【００４９】
上記のように、変形処理は画像データの入力順に行うことが可能となる。そのため、変形の補間演算に必要な入力画像バッファのサイズを小さくすることができ、かつ、メモリアクセスも従来技術に比較して少なくすることが可能となる。
【００５０】
本実施形態の画像変形方法によれば、変形対象画素の入力順に、対応する領域Ｒ単位に含まれる変形情報をあらかじめ用意しておくことにより、変形処理を画素の入力順に行うことが可能となる。そのため入力バッファのサイズを小さくすることが出来る。さらに、この変形情報は各領域Ｒ内に複数の対象画素を持つことが可能であり、また、バイリニア補間等に適用することが可能であるため、特許文献１の技術に比べて画質を向上することが可能である。
【００５１】
また、特許文献２記載の技術では、入力された各画素に対して、対応する変形後画素の数だけ重み演算を行い、一時バッファに保存しておく必要がある。そのため、メモリアクセスが非常に多くなるという問題があった。本実施形態では、図７のフローチャートからわかるように、各領域単位での処理において、入力バッファからの近傍画素値の読み出し（ステップＳ４）は１回のみである。そのため、メモリアクセスは必要最低限となり、処理速度の高速化と消費電力の低減が可能である。
【００５２】
次に、本発明の第２実施形態を説明する。図１２は、第２実施形態における画像変形装置の構成を示す。第１実施形態との差異は、変形データ伸張部５４が追加されていることである。変形データ伸張部５４は、あらかじめ圧縮され、バッファに格納されている変形データを伸張する。変形データ伸張部５４以外の構成は、第１実施形態と同様である
【００５３】
本実施形態においては、第１実施形態における変形データをあらかじめデータ圧縮しておく。以下に圧縮方法の一例を示す。しかし、圧縮対象データ（Ｎ，Ｓ，Ｄ）および圧縮方法としては、他の手段を採用することも可能である。
【００５４】
ここでは、以下のような変形データの特徴を利用し、サンプリングポイントの個数Ｎおよび変形後画像の画素の座標Ｄを圧縮する例を説明する。
（１）通常の変形では多くの場合、Ｎの値の出現頻度に偏りが生じる。例えば単純な２×２拡大の場合、常にＮ＝４である。
（２）多くの変形処理では、隣接するＤの値は連続する。例えば図６の変形データ（図５の画像変形の例）では、出現順に見た場合、Ｄの値のｘ，ｙいずれかが不連続になるのはＤ２−Ｄ３，Ｄ５−Ｄ６の場合のみである。
【００５５】
上記（１）の性質より、Ｎの圧縮のためにＵｎａｒｙ符号化を採用する。本来は、Ｎ値の偏りに最適化したエントロピー符号化を行うことが望ましいが、ここでは簡単のために図１３に示すようなＵｎａｒｙ符号化をベースにしたエントロピー符号化を用いる。
【００５６】
上記（２）の性質より、Ｄの圧縮のために、その変形データ内での出現順で、直前のＤとの差分をとり、その差分をＵｎａｒｙ符号化する。
【００５７】
図１４は、第２実施形態における画像変形方法の処理フローを示す。第１実施形態との差異は、ステップＳ５ａの処理のみである。ステップＳ５ａにおいて、読み出す変形データのうち、ＮとＤは圧縮済みである（本例ではＳは非圧縮）。そのため、この工程でＮとＤを伸張し、以降は第１実施形態と同様の処理を行う。
【００５８】
本実施形態では、第１実施形態に比べて変形データのデータサイズが小さく、消費するメモリサイズおよびメモリアクセスを低減することができる。そのため、より低コスト、低消費電力となる。
【符号の説明】
【００５９】
１  ビデオ入力部
２  入力画像バッファ
３  変形処理部
４  ビデオ出力部
５  バス
６  出力画像・変形データバッファ
１０  変形前画像読み出し部
１１  補間演算部
１２  変形後画像書き込み部
１３  変形データ読み出し部
１４  制御部
２０  変形前画像
２１  変形後画像
２２  変形データ
２３  入力画像
２４  画素入力順
３０  入力バッファ
３１  前ラインの画素データ
３２  現ラインの画素データ
３３  以前に入力したデータ
３４  入力画素データ
３５  破棄データ
４０  読み出しデータ
４１  前ラインの画素データ
４２  現ラインの画素データ
５１  入力画像バッファ
５２  ビデオ入力部
５３  変形処理部
５４  変形データ伸張部
５５  ビデオ出力部
５６  バス
５７  出力画像・変形データバッファ
Ａ１  領域設定部
Ａ２  サンプリングポイント設定部
Ａ３  変形データ生成部
Ａ４  画像データ読込部
Ａ５  変形後画像生成部
Ｃ  中心点
Ｄ  画素の座標
Ｐ  画素
Ｒ  領域
Ｓ  サンプリングポイントの座標
【図１】
2013009232.tif 000004
【図２】
2013009232.tif 000005
【図３】
2013009232.tif 000006
【図４】
2013009232.tif 000007
【図５】
2013009232.tif 000008
【図６】
2013009232.tif 000009
【図７】
2013009232.tif 000010
【図８】
2013009232.tif 000011
【図９】
2013009232.tif 000012
【図１０】
2013009232.tif 000013
【図１１】
2013009232.tif 000014
【図１２】
2013009232.tif 000015
【図１３】
2013009232.tif 000016
【図１４】
2013009232.tif 000017