(57)【要約】【課題】演算に係る処理量を抑えて幾何変形を行うことができるようにする。【解決手段】結果更新部１１１は、入力画素の走査順と入力画素の座標と逆変換後の座標とから、後に座標逆変換部１０６で逆変換を行う出力座標系における座標を判定する。そして、対象となる座標について、逆変換結果記憶部１１０へ保持するよう出力画素の座標とその逆変換後の座標とを出力する。その後、座標逆変換部１０６は、逆変換を行う際に、保持している出力座標系の座標の中に一致する座標が存在するか否かを確認逆変換結果記憶部１１０に逆変換後の座標の結果が存在する場合は、該当分の逆変換の演算を省略し、逆変換結果としてこれらの座標を入力する。【選択図】図１
2015138403.tif 000002
【特許請求の範囲】
【請求項１】
入力画像に対して幾何変形を行って出力画像を生成する画像処理装置であって、
前記入力画像を構成する画素を走査順に入力する入力手段と、
前記入力手段によって入力された画素の座標を、前記入力画像の座標系から前記出力画像の座標系へ変換する座標変換手段と、
前記座標変換手段によって変換された座標を中心とした周辺画素の座標を生成する座標生成手段と、
前記座標生成手段によって生成された周辺画素の座標を前記入力画像の座標系へ逆変換する座標逆変換手段と、
前記座標逆変換手段によって逆変換された座標に基づいて画素補間を行い、前記出力画像を生成する出力手段と、
前記座標逆変換手段によって逆変換された座標の中から、前記走査順に従って後に前記座標生成手段によって生成される周辺画素の座標を逆変換した場合の結果と重複するものを判定する判定手段と、
前記判定手段によって重複すると判定された座標に係る情報を記憶する記憶手段とを有し、
前記座標逆変換手段は、前記周辺画素の座標のうち、逆変換した座標が前記記憶手段に記憶されている場合に、逆変換の結果として前記記憶手段に記憶された情報を代用することを特徴とする画像処理装置。
【請求項２】
前記座標生成手段は、前記座標変換手段によって変換された座標を含む９つの周辺画素の座標を生成することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記座標変換手段は、射影変換により前記入力画像の座標系から前記出力画像の座標系へ変換することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記判定手段は、前記走査順に従って次に前記座標生成手段によって生成される周辺画素の座標を逆変換した場合の結果と重複するものを判定することを特徴とする請求項１〜３の何れか１項に記載の画像処理装置。
【請求項５】
入力画像に対して幾何変形を行って出力画像を生成する画像処理方法であって、
前記入力画像を構成する画素を走査順に入力する入力工程と、
前記入力工程において入力された画素の座標を、前記入力画像の座標系から前記出力画像の座標系へ変換する座標変換工程と、
前記座標変換工程において変換された座標を中心とした周辺画素の座標を生成する座標生成工程と、
前記座標生成工程において生成された周辺画素の座標を前記入力画像の座標系へ逆変換する座標逆変換工程と、
前記座標逆変換工程において逆変換された座標に基づいて画素補間を行い、前記出力画像を生成する出力工程と、
前記座標逆変換工程において逆変換された座標の中から、前記走査順に従って後に前記座標生成工程において生成される周辺画素の座標を逆変換した場合の結果と重複するものを判定する判定工程と、
前記判定工程において重複すると判定された座標に係る情報を記憶手段に記憶する記憶工程とを有し、
前記座標逆変換工程においては、前記周辺画素の座標のうち、逆変換した座標が前記記憶手段に記憶されている場合に、逆変換の結果として前記記憶手段に記憶された情報を代用することを特徴とする画像処理方法。
【請求項６】
入力画像に対して幾何変形を行って出力画像を生成する画像処理装置を制御するためのプログラムであって、
前記入力画像を構成する画素を走査順に入力する入力工程と、
前記入力工程において入力された画素の座標を、前記入力画像の座標系から前記出力画像の座標系へ変換する座標変換工程と、
前記座標変換工程において変換された座標を中心とした周辺画素の座標を生成する座標生成工程と、
前記座標生成工程において生成された周辺画素の座標を前記入力画像の座標系へ逆変換する座標逆変換工程と、
前記座標逆変換工程において逆変換された座標に基づいて画素補間を行い、前記出力画像を生成する出力工程と、
前記座標逆変換工程において逆変換された座標の中から、前記走査順に従って後に前記座標生成工程において生成される周辺画素の座標を逆変換した場合の結果と重複するものを判定する判定工程と、
前記判定工程において重複すると判定された座標に係る情報を記憶手段に記憶する記憶工程とをコンピュータに実行させ、
前記座標逆変換工程においては、前記周辺画素の座標のうち、逆変換した座標が前記記憶手段に記憶されている場合に、逆変換の結果として前記記憶手段に記憶された情報を代用することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特に、画像の座標変換を行うために用いて好適な画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【０００２】
従来、カメラなどによって撮影された画像を台形補正したりレンズ補正したりする幾何変形を行う画像処理装置が知られている。このような幾何変形を行う画像処理装置では、まず、１画面分の入力画素をメモリに記憶する。次に、幾何変形に用いる座標変換の逆変換を行うことによって、出力画素の走査順に出力画素の座標値から入力画素における座標値を算出する。さらに、逆変換で得られた入力画素の座標の整数部を用いて入力画素の近傍の画素をメモリから読み出し、近傍の画素と入力画素の座標の小数部とを用いて補間計算し、出力画素の値を決定する操作を繰り返す。これらの操作は読み出し時座標変換と呼ばれており、このような操作によって幾何変形を行う画像処理を実現している。例えば特許文献１には、出力画像をタイルに分割して、それぞれの分割されたタイル毎に読み出し時座標変換を行う画像処理方法が開示されている。
【０００３】
フロントプロジェクタの台形補正やカメラのレンズ補正を行う場合、入力画像から出力画像へ変形する際の拡大率は最小で０．６倍程度であり最大で１．２５倍程度である。さらに、場合によっては映像の入出力をリアルタイムで実現しなくてはならないという制約がある。映像の入出力を１［ｐｉｘｅｌ／ｃｙｃ］で行う制約の下で前述した画像処理方法を行うと、必要なメモリ帯域のピーク値が書き込み時と読み出し時との合計で（１＋１／拡大率の最小値）［ｐｉｘｅｌ／ｃｙｃ］になってしまう。例えば拡大率の最小値が０．６倍である場合には、ピーク時に２．６７［ｐｉｘｅｌ／ｃｙｃ］のメモリ帯域が必要になってしまう。このように条件によってはメモリ帯域を多く必要とする問題点がある。
【０００４】
これに対して、書き込み時座標変換と呼ばれている幾何変形が知られている。この方法では、まず、走査順に入力される入力画素に対して、座標変換によって出力画素の座標を算出する。次に、出力画素の座標の整数部からメモリの格納先アドレスを算出する。さらに、出力画素の座標の整数部に対して座標変換の逆変換を行い、入力画像中の座標を求める。逆変換により求めた座標の整数部が元々の入力画素の座標に一致する場合は、入力画素とその近傍の画素と、座標変換の逆変換によって求めた座標値の小数部とを用いて出力する画素値を補完計算によって求める。そして、この画素値を先に求めた格納先アドレスに格納する。
【０００５】
書き込み時座標変換を行う場合に必要なメモリ帯域のピーク値は、書き込み時と読み出し時との合計で（１＋拡大率の最大値）［ｐｉｘｅｌ／ｃｙｃ］になる。例えば拡大率の最大値が１．２５倍であっても、必要なメモリ帯域は２．２５［ｐｉｘｅｌ／ｃｙｃ］に抑えることができる。このように想定する拡大率の範囲内では、読み出し時座標変換よりもメモリ帯域のピーク値を小さくすることができる。
【０００６】
一方、書き込み時座標変換を行うと、出力されない画素が発生する場合がある。そこで、その対策として例えば特許文献２には、入力画素の座標をサブピクセル単位で走査し、出力されない画素が発生することを防ぐ方法が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００５−１３５０９６号公報
【特許文献２】特開平６−１４９９９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献２に記載の方法では、サブピクセル単位の走査をＸ軸方向とＹ軸方向とで共に１／２ピクセルとした場合でも、座標変換の４点分と、逆変換の４点分との計８回の変換演算が必要になる。特に幾何変形の１つである射影変換の場合は、座標変換と逆変換とで演算量がほぼ同じであり、どちらの変換演算にも除算が含まれるため、１回の変換演算にかかる処理の負荷が大きい。このため、特許文献２に記載の方法では、回路規模が大きくなったり、演算の処理負荷が大きくなったりするという課題がある。
【０００９】
本発明は前述の問題点に鑑み、演算に係る処理量を抑えて幾何変形を行うことができるようにすることを目的としている。
【課題を解決するための手段】
【００１０】
本発明に係る画像処理装置は、入力画像に対して幾何変形を行って出力画像を生成する画像処理装置であって、前記入力画像を構成する画素を走査順に入力する入力手段と、前記入力手段によって入力された画素の座標を、前記入力画像の座標系から前記出力画像の座標系へ変換する座標変換手段と、前記座標変換手段によって変換された座標を中心とした周辺画素の座標を生成する座標生成手段と、前記座標生成手段によって生成された周辺画素の座標を前記入力画像の座標系へ逆変換する座標逆変換手段と、前記座標逆変換手段によって逆変換された座標に基づいて画素補間を行い、前記出力画像を生成する出力手段と、前記座標逆変換手段によって逆変換された座標の中から、前記走査順に従って後に前記座標生成手段によって生成される周辺画素の座標を逆変換した場合の結果と重複するものを判定する判定手段と、前記判定手段によって重複すると判定された座標に係る情報を記憶する記憶手段とを有し、前記座標逆変換手段は、前記周辺画素の座標のうち、逆変換した座標が前記記憶手段に記憶されている場合に、逆変換の結果として前記記憶手段に記憶された情報を代用することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、入力画像を幾何変形する際の逆変換処理において座標変換を行う演算回数を減らすことができる。
【図面の簡単な説明】
【００１２】
【図１】実施形態における画像処理装置の全体構成例を示すブロック図である。
【図２】実施形態における座標算出部の詳細な動作を説明するための図である。
【図３】実施形態において、結果更新部により保持する座標を決定する処理を説明するための図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態について、図面を参照しながら説明する。
図１は、本実施形態における画像処理装置１０１の全体構成例を示すブロック図である。
本実施形態の画像処理装置１０１は、入力画像である入力画素の値を走査順に入力し、幾何変形後、出力画像である出力画素の値とそれに対応する出力画素の座標とを出力するよう制御する。以下、走査順として順次走査を例にして説明する。
【００１４】
画素入力部１０２は、画像情報として入力画素の値を入力すると、入力画像の座標系におけるｘ座標とｙ座標とを取得する。以降、入力画像の座標系を、入力座標系と呼ぶ。入力画素は、順次走査で入力されるため、画素入力部１０２は、入力画素の値を受け取るたびにｘ座標を＋１とする。そして、ｘ座標が１水平期間分に達すると、ｘ座標を０に戻してｙ座標を＋１とする。また、ｘ座標が１水平期間分に達し、かつ、ｙ座標が１垂直期間分に達した場合は、ｘ座標及びｙ座標を０にする。画素入力部１０２は、入力画素の値と生成した入力画素の座標とを入力画素記憶部１０３へ出力し、入力画素の座標を座標算出部１１２へ出力する。
【００１５】
入力画素記憶部１０３は、入力画素の値と入力画素の座標とを記憶しており、画素補間処理部１０８で画素補間に必要となる画素の値（入力周辺画素の値）を、画素補間処理部１０８の要求に応じて出力する。
【００１６】
画素補間処理部１０８は、入力画素記憶部１０３から入力周辺画素の値を入力するとともに、座標算出部１１２の座標選択部１０７から逆変換後の座標の小数部を入力し、画素補間の処理結果として出力画素の値を出力する。例えば、バイリニア補間を行う場合には、画素補間処理部１０８は、入力された画素の値を含む２×２画素の値からバイリニア補間を行い、補間された出力画素の値を出力する。また、バイキュービック補間を行う場合には、画素補間処理部１０８は、入力された画素の値を含む４×４画素の値からバイキュービック補間を行い、補間された出力画素の値を出力する。
【００１７】
画素出力部１０９は、画素補間処理部１０８から出力画素の値を入力し、座標算出部１１２の座標選択部１０７から出力画像の座標系における出力画素の座標を入力する。そして、出力画素の値と対応する出力画素の座標とを出力する。以降、出力画像の座標系を、出力座標系と呼ぶ。
【００１８】
座標算出部１１２は、座標変換部１０４、出力画素周辺座標生成部１０５、座標逆変換部１０６、座標選択部１０７、逆変換結果記憶部１１０、及び結果更新部１１１を備えている。座標算出部１１２は、入力画素の座標を入力し、逆変換後の座標と出力画素の座標とを出力する。
【００１９】
図２は、座標算出部１１２の詳細な動作を説明するための図である。以下、座標算出部１１２の詳細な処理について説明する。
座標変換部１０４は、画素入力部１０２から入力座標系２０１における入力画素の座標（ｉｘ，ｉｙ）を入力して射影変換を行い、出力座標系２０２における出力画素の座標（ｏｘ，ｏｙ）を出力する。なお、順次走査によって画素が入力され、画像サイズはＸmax×Ｙmaxであるものとする。
【００２０】
射影変換は、ｍ11〜ｍ33からなる３×３の行列で表され、入力画素の座標（ｉｘ，ｉｙ）に対して以下の式（１）による演算を行って出力画素の座標（ｏｘ，ｏｙ）を求める。
ｏｘ0＝ｍ11・ｉｘ＋ｍ12・ｉｙ＋ｍ13
ｏｙ0＝ｍ21・ｉｘ＋ｍ22・ｉｙ＋ｍ23
ｏｚ0＝ｍ31・ｉｘ＋ｍ32・ｉｙ＋ｍ33
ｏｘ＝ｏｘ0／ｏｚ0
ｏｙ＝ｏｙ0／ｏｚ0                              ・・・（１）
【００２１】
出力画素周辺座標生成部１０５は、座標変換部１０４から出力画素の座標（ｏｘ，ｏｙ）を入力し、出力画素の座標の整数部を中心とする９点の周辺座標を生成する。そして、出力座標系２０２における出力画素周辺の座標として出力する。ここで、出力画素の座標（ｏｘ，ｏｙ）は小数部を含んでおり、ｉｎｔ（ｏｘ）をｘ座標ｏｘの整数部とし、ｉｎｔ（ｏｙ）をｙ座標ｏｙの整数部とした場合、出力座標系２０３における９点の出力画素周辺の画素は×印の箇所であり、座標は以下のようになる。
（ｉｎｔ（ｏｘ）−１，ｉｎｔ（ｏｙ）−１）
（ｉｎｔ（ｏｘ），ｉｎｔ（ｏｙ）−１）
（ｉｎｔ（ｏｘ）＋１，ｉｎｔ（ｏｙ）−１）
（ｉｎｔ（ｏｘ）−１，ｉｎｔ（ｏｙ））
（ｉｎｔ（ｏｘ），ｉｎｔ（ｏｙ））
（ｉｎｔ（ｏｘ）＋１，ｉｎｔ（ｏｙ））
（ｉｎｔ（ｏｘ）−１，ｉｎｔ（ｏｙ）＋１）
（ｉｎｔ（ｏｘ），ｉｎｔ（ｏｙ）＋１）
（ｉｎｔ（ｏｘ）＋１，ｉｎｔ（ｏｙ）＋１）
【００２２】
座標逆変換部１０６は、出力画素周辺座標生成部１０５から出力座標系における出力画素周辺の座標９点を入力する。そして、それぞれ９点を逆変換した入力座標系２０４における逆変換後の座標９点を出力する。
（ｒｉｘ−１，ｒｉｙ−１）
（ｒｉｘ，ｒｉｙ−１）
（ｒｉｘ＋１，ｒｉｙ−１）
（ｒｉｘ−１，ｒｉｙ）
（ｒｉｘ，ｒｉｙ）
（ｒｉｘ＋１，ｒｉｙ）
（ｒｉｘ−１，ｒｉｙ＋１）
（ｒｉｘ，ｒｉｙ＋１）
（ｒｉｘ＋１，ｒｉｙ＋１）
【００２３】
なお、入力座標系２０４における９点の逆変換後の位置は×印の箇所であり、座標は以下のようになる。また、逆変換の演算は、座標変換部１０４が行う射影変換と同様の演算である。
【００２４】
座標選択部１０７は、画素入力部１０２から入力座標系における入力画素の座標１点を入力し、出力画素周辺座標生成部１０５から出力座標系における出力画素周辺の座標９点を入力する。さらに、座標逆変換部１０６から入力座標系における逆変換後の座標９点を入力する。そして、入力座標系における逆変換後の座標９点の中から、入力座標系における入力画素の座標で補間可能な座標を選択し、逆変換後の座標として、画素補間処理部１０８へ出力する。また、出力座標系における出力画素周辺の座標９点の中から、選択された入力座標系における逆変換後の座標に対応する座標を出力画素の座標として画素出力部１０９へ出力する。
【００２５】
入力座標系２０５において、●印は入力画素の座標（ｉｘ，ｉｙ）を表している。ここで、入力画素の座標（ｉｘ，ｉｙ）で補間可能な点は、○印の座標２０８である。したがって、座標選択部１０７は、逆変換後の座標として座標（ｒｉｘ，ｒｉｙ）を出力し、出力画素の座標として座標（ｉｎｔ（ｏｘ），ｉｎｔ（ｏｙ））を出力する。
【００２６】
結果更新部１１１は、画素入力部１０２から入力座標系における入力画素の座標１点を入力し、出力画素周辺座標生成部１０５から出力座標系における出力画素周辺の座標９点を入力する。さらに、座標逆変換部１０６から入力座標系における逆変換後の座標９点を入力する。そして、入力画素の走査順と入力画素の座標と逆変換後の座標とから、後に座標逆変換部１０６で逆変換を行う出力座標系における座標を判定する。この判定の結果、対象となる座標について、逆変換結果記憶部１１０へ保持するよう出力画素の座標とその逆変換後の座標とを出力する。
【００２７】
逆変換結果記憶部１１０は、出力座標系における座標とその逆変換結果である入力座標系における座標を保持する。そして、出力画素周辺座標生成部１０５から出力画素周辺の座標９点を入力し、保持している出力座標系の座標の中に一致する座標が存在するか否かを確認する。そして、一致する座標が存在する場合は、その逆変換結果である入力座標系の座標を座標逆変換部１０６へ出力する。本実施形態では、座標逆変換部１０６は、逆変換後の座標９点を出力する必要があるが、逆変換結果記憶部１１０に逆変換後の座標の結果が存在する場合は、該当分の逆変換の演算を省略し、逆変換結果記憶部１１０に記憶されている結果を代用する。
【００２８】
図３は、本実施形態において、結果更新部１１１により保持する座標を決定する処理を説明するための図である。
図３（ａ）は、入力座標系を示しており、×印は入力画素の座標（ｉｘ＋２，ｉｙ＋２）を示している。図３（ｂ）は、出力座標系を示しており、×印は座標変換部１０４による変換結果である座標（ｏｘ＋２，ｏｙ＋２）を示している。ここで、出力画素周辺座標生成部１０５により生成される出力画素周辺の座標９点は、図３（ｂ）における（１）〜（９）の座標となる。また、この９点を入力して、座標逆変換部１０６が出力した結果が、図３（ｃ）に示す入力座標系における（１）〜（９）の座標となる。
【００２９】
入力画素の走査順から、次の入力画素は、図３（ｄ）に示すように座標（ｉｘ＋３，ｉｙ＋２）の画素となる。したがって、次の入力画素の座標変換を行う際に、図３（ｃ）に示す入力座標系における（４）〜（９）の座標の逆変換結果が重複し、必要となる。また、次ラインの入力画素として、例えば入力画素の座標（ｉｘ，ｉｙ＋３）の座標変換を行う際に、図３（ｃ）に示す入力座標系における（２）及び（３）の座標の逆変換結果が重複し、必要となる。そこで、結果更新部１１１は、図３（ｂ）に示す入力座標系の（２）〜（９）の座標逆変換結果と、それに対応する図３（ｂ）に示す出力座標系の（２）〜（９）の出力画素座標とを対にして、逆変換結果記憶部１１０へ保持するよう出力する。
【００３０】
図３（ｄ）は、時間的に次の画素入力タイミングでの入力座標系を示しており、×印は次の入力画素の座標（ｉｘ＋３，ｉｙ＋２）を示している。図３（ｅ）は、出力座標系を示しており、×印は座標変換部１０４による変換結果である座標（ｏｘ＋３，ｏｙ＋２）を示している。出力画素周辺座標生成部１０５により生成される出力画素周辺の座標９点は、図３（ｅ）における（４）〜（１２）の座標となる。また、この９点を入力して、座標逆変換部１０６が出力した結果が、図３（ｆ）に示す入力座標系における（４）〜（１２）の座標となる。
【００３１】
ここで、逆変換結果記憶部１１０には、出力座標系における（４）〜（９）の座標の逆変換結果を保持している。したがって、座標逆変換部１０６が逆変換を行う際に、（４）〜（９）の座標に関しては演算が不要であり、（１０）〜（１２）の座標のみ逆変換演算を行う。
【００３２】
以上のように本実施形態によれば、９点から３点に逆変換の演算を減らすことができる。また、次ラインの処理においては、前ラインでの逆変換の演算結果を用いることができるため、２点の逆変換のみに演算を減らすことができる。
【００３３】
なお、一般式を用いて保持する座標を決定する場合には、以下のようになる。１画面内において走査順で入力される入力座標系における最初の座標を（０、０）、最後の座標を（Ｘmax，Ｙmax）とする。また、入力座標系における現在の入力画素の座標を（ｉｘ，ｉｙ）と、出力画素周辺の座標９点を入力座標系に逆変換した座標を（ｒｉｘ1，ｒｉｙ1）〜（ｒｉｘ9，ｒｉｙ9）とする。ただし、０≦ｉｘ≦Ｘmax、０≦ｉｙ≦Ｙmax、０≦ｒｉｘ1，ｒｉｘ2，・・・，ｒｉｘ9≦Ｘmax、０≦ｒｉｙ1，ｒｉｙ2，・・・，ｒｉｙ9≦Ｙmaxとする。
【００３４】
この場合、結果更新部１１１は、（ｒｉｘ1，ｒｉｙ1）〜（ｒｉｘ9，ｒｉｙ9）のうち、ｒｉｘ1，ｒｉｘ2，・・・，ｒｉｘ9≦ｉｘ−１であって、かつｒｉｙ1，ｒｉｙ2，・・・，ｒｉｙ9≦ｉｙ−１を満たす座標を保持するよう判定する。以上説明したように、入力の走査順を考慮して、後に座標変換を行う変換結果を保持しておくことにより、平均座標変換回数を削減することができる。
【００３５】
本実施形態では、出力画素周辺座標生成部１０５において、座標変換部１０４が出力した出力画素の座標の中心を含む周辺９点の座標を生成している。ここで、周辺のどの領域までの座標を生成するかは、幾何変形における拡大縮小率に依存して変わる。また、生成する範囲、及び逆変換結果記憶部１１０の記憶容量によって、結果更新部１１１の判定方法を変えるようにしてもよい。また、本実施形態では射影変換を例に説明したが、座標変換及びその逆変換を行うのであれば、射影変換以外の幾何変形にも適用することができる。
【００３６】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００３７】
１０２  画素入力部
１０４  座標変換部
１０５  出力画素周辺座標生成部
１０６  座標逆変換部
１０７  座標選択部
１０９  画素出力部
１１０  逆変換結果記憶部
１１１  結果更新部
【図１】
2015138403.tif 000003
【図２】
2015138403.tif 000004
【図３】
2015138403.tif 000005