(57)【特許請求の範囲】
【請求項１】
画像を入力する入力手段と、
前記入力手段により入力された入力画像に対する変形処理であって、除算を伴う変形処理のための複数の値で構成される変形パラメータを取得する取得手段と、
前記入力画像の座標情報に基づいて前記除算における除数の範囲を特定する特定手段と、
前記除算における許容誤差と、前記入力画像の座標情報に基づいて前記特定手段により特定される前記除算における除数の範囲とに応じて、前記取得手段により取得された変形パラメータを構成する複数の値のそれぞれを変更するためのパラメータを決定する決定手段と、
前記決定手段により決定された前記パラメータを、前記変形パラメータを構成する前記複数の値のそれぞれに対して乗算することで、前記複数の値で構成される前記変形パラメータを変更する調整手段と、
前記調整手段による変更後の変形パラメータを用いて前記入力画像に対する変形処理を実行する処理手段とを有することを特徴とする画像処理装置。
【請求項２】
前記調整手段は、
前記入力画像を構成する画素の座標情報を用いて、前記除算における除数の最小値を算出する除数算出手段と、
前記除算における除数と誤差との関係から、当該除算の結果が許容誤差以下となるための除数の範囲を求め、前記範囲の最小値を前記除数算出手段で算出された前記除数の最小値で除算した結果を正規化パラメータとして算出する係数算出手段と、を有し、
前記取得手段により取得された変形パラメータに対して前記正規化パラメータを乗じることで前記変形パラメータを変更することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記処理手段は、前記変更後の変形パラメータを用いて前記入力画像の座標情報を変換処理し、当該変換処理によって得られた変換座標の画素値を補間処理によって求めることで、前記変形処理を実行することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記座標情報の変換には射影変換が含まれることを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記係数算出手段は、前記入力画像を構成する画素の座標情報に基づいて、前記除算における除数の最大値をさらに求めると共に、前記除算における除数の最大値に対して前記正規化パラメータを乗じた値が前記除数の範囲の最大値を超えるか否かを判定し、前記除数の範囲の最大値を超えない場合に、前記正規化パラメータを前記変形パラメータの変更のために用いることを特徴とする請求項２に記載の画像処理装置。
【請求項６】
画像を入力する入力工程と、
前記入力工程により入力された入力画像に対する変形処理であって、除算を伴う変形処理のための複数の値で構成される変形パラメータを取得する取得工程と、
前記入力画像の座標情報に基づいて前記除算における除数の範囲を特定する特定工程と、
前記除算における許容誤差と、前記入力画像の座標情報に基づいて前記特定工程により特定される前記除算における除数の範囲とに応じて、前記取得工程により取得された変形パラメータを構成する複数の値のそれぞれを変更するためのパラメータを決定する決定工程と、
前記決定工程により決定された前記パラメータを、前記変形パラメータを構成する前記複数の値のそれぞれに対して乗算することで、前記複数の値で構成される前記変形パラメータを変更する調整工程と、
前記調整工程による変更後の変形パラメータを用いて前記入力画像に対する変形処理を実行する処理工程とを有することを特徴とする画像処理方法。
【請求項７】
前記調整工程は、
前記入力画像を構成する画素の座標情報を用いて、前記除算における除数の最小値を算出する除数算出工程と、
前記除算における除数と誤差との関係から、当該除算の結果が許容誤差以下となるための除数の範囲を求め、前記範囲の最小値を前記除数算出工程で算出された前記除数の最小値で除算した結果を正規化パラメータとして算出する係数算出工程と、を有し、
前記取得工程により取得された変形パラメータに対して前記正規化パラメータを乗じることで前記変形パラメータを変更することを特徴とする請求項６に記載の画像処理方法。
【請求項８】
前記処理工程は、前記変更後の変形パラメータを用いて前記入力画像の座標情報を変換処理し、当該変換処理によって得られた変換座標の画素値を補間処理によって求めることで、前記変形処理を実行することを特徴とする請求項６に記載の画像処理方法。
【請求項９】
前記係数算出工程では、前記入力画像を構成する画素の座標情報に基づいて、前記除算における除数の最大値をさらに求めると共に、前記除算における除数の最大値に対して前記正規化パラメータを乗じた値が前記除数の範囲の最大値を超えるか否かを判定し、前記除数の範囲の最大値を超えない場合に、前記正規化パラメータを前記変形パラメータの変更のために用いることを特徴とする請求項７に記載の画像処理方法。
【請求項１０】
コンピュータを、請求項１乃至５のうち、何れか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法およびプログラムに関する。
【背景技術】
【０００２】
画像の変形処理を行う画像処理装置の多くは演算処理として、まず入力画素を１画面分メモリに記憶する。次に、出力画素の走査順に出力画素の座標値から入力画素での座標値を座標変換の逆変換によって算出する。さらに、逆変換で得られた入力画素の座標の整数部を用いて入力画素の近傍の画素をメモリから読み出し、近傍の画素と入力画素の座標の小数部とを用いて補間計算によって出力画素の値を決定する操作を繰り返す。これらの操作により画像変形を行う画像処理を実現している。
【０００３】
一方、必要なメモリ帯域のピーク値を減らすことができる画像変形を行う画像処理装置では、走査順に入力される入力画素に対して座標変換によって出力座標を算出する。次に、出力座標の整数部からメモリの格納先アドレスを算出する。さらに、出力座標の整数部を座標変換の逆変換により入力画像中の座標を求める。逆変換により求めた座標の整数部が元々の入力画素の座標に一致するときに、入力画素とその近傍の画素と、座標変換の逆変換によって求めた座標値の小数部とを用いて出力する画素値を補完計算によって求める。この画素値を先に求めた格納先アドレスに格納する。
【０００４】
上記の座標変換や、座標変換の逆変換（以降、これらをまとめて「座標計算」という）は、指定される変形形状に近くするため、また、補間計算のためになるべく高い演算精度で演算を行う方がよい。しかしながら、画像変形を行う際に射影変換を行うとすれば、座標計算で高い精度の加算、乗算、除算が必要である。このような座標計算を行う際、ハードウェアであれば回路量や動作周波数の問題、ソフトウェアであれば処理性能の問題で十分な演算精度が得られないことがある。
【０００５】
このような問題に対して、特許文献１では実施例２で高精度な座標計算を行う際に着目画素付近で近似計算する方法を開示している。また、除算を行う際に除数のＭＳＢ（Most Significant Bit）が１になるまで除数と被除数を共に２倍することが開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平６−１４９９９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１の方式では、近似計算であるために高解像度の画像や変形が大きい画像変形を高い精度で演算することが難しいという問題がある。また、除算を行う際に除数のＭＳＢが１になるまで除数と被除数を共に２倍にする方法は、座標演算での除算毎に行う必要があるため、演算量が増大し消費電力が大きくなるという問題がある。
【０００８】
本発明は上記課題を鑑みてなされたものであり、画像変形を行う際の座標変換の演算精度を高めることが可能な画像処理技術の提供を目的とする。
【課題を解決するための手段】
【０００９】
上記の目的を達成する本発明の一つの側面に係る画像処理装置は、
画像を入力する入力手段と、
前記入力手段により入力された入力画像に対する変形処理であって、除算を伴う変形処理のための複数の値で構成される変形パラメータを取得する取得手段と、
前記入力画像の座標情報に基づいて前記除算における除数の範囲を特定する特定手段と、
前記除算における許容誤差と、前記入力画像の座標情報に基づいて前記特定手段により特定される前記除算における除数の範囲とに応じて、前記取得手段により取得された変形パラメータを構成する複数の値のそれぞれを変更するためのパラメータを決定する決定手段と、
前記決定手段により決定された前記パラメータを、前記変形パラメータを構成する前記複数の値のそれぞれに対して乗算することで、前記複数の値で構成される前記変形パラメータを変更する調整手段と、
前記調整手段による変更後の変形パラメータを用いて前記入力画像に対する変形処理を実行する処理手段とを有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、画像変形を行う際の座標変換の演算精度を高めることが画像処理技術の提供が可能になる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態に係る画像処理装置の構成例を説明する図。
【図２】画像変形処理部の構成例を示す図。
【図３】変形パラメータ算出部の構成例を示す図。
【図４】固定小数点除算における除数と誤差の例を示す図。
【図５】除数算出部の処理を説明する図。
【図６】係数算出部の処理を説明する図。
【図７】パラメータ調整部の処理を説明する図。
【発明を実施するための形態】
【００１２】
（第１実施形態）
本実施形態では、画像処理装置は除算を含む演算により入力画像の画像変形処理として、入力画像の座標変換を行ない出力画像の画素座標を算出する構成を説明する。また、逆座標変換により出力画素座標に対応する入力画素座標を算出することで画像変形を行う方式にも適用することができる。
【００１３】
図１は本実施形態に係る画像処理装置の全体的な構成例を説明する図である。画像処理装置は、入力画像の画像変形処理を行うためのパラメータを算出する変形パラメータ算出部１０１と、算出されたパラメータを用いて画像変形処理を行う画像変形処理部１０２とを有する。変形パラメータ算出部１０１は高精度変形パラメータ１２１を入力として、画像変形処理部１０２に入力可能な適切なビット精度に変換した変形パラメータ１２２を出力する。画像変形処理部１０２は入力画像を構成する入力画素１２３と変形パラメータ１２２とを入力として、変形パラメータ１２２を用いた入力画素１２３の変形処理（座標変換）を行い、変形処理の結果を出力画素１２４（出力画像）として出力する。
【００１４】
図２に画像変形処理部１０２の構成例を示す。画像変形処理部１０２は画素座標生成部１０３、座標変換処理部１０４、および画素補間処理部１０５を有する。画素座標生成部１０３は、入力画素の座標列を生成する。例えば、入力画素が横３画素、縦２画素でのラスタスキャン順に入力するのであれば、画素座標生成部１０３は、（ｘ，ｙ）＝（０，０）,（１，０），（２，０），（０，１）,（１，１），（２，１）を順に生成する。画素座標生成部１０３は、これを画素座標１４１（座標情報）として出力する。出力画素座標に対応する入力画素座標を算出することで画像変形を行う方式であれば、画素座標生成部１０３では出力画素の座標列を生成する。
【００１５】
座標変換処理部１０４は、画素座標生成部１０３から出力された画素座標１４１と変形パラメータ１２２とを入力として射影変換を行い、画素座標１４１の射影変換の結果として変換画素座標１４２を出力する。本実施形態では、射影変換を例に説明するが除算を含む画像変形（座標変換処理）であれば射影変換以外の幾何変換にも適用することができる。
【００１６】
射影変換はｍiｊ（i＝１〜３、ｊ＝１〜３）をパラメータとする３×３の行列で表され、座標変換処理部１０４は、画素座標（ｘｉ，ｙｉ）に対して以下の演算を行って変換画素座標（ｘｏ，ｙｏ）を求める。変形パラメータ１２２（調整パラメータ）は、演算処理に用いるパラメータｍiｊ（i＝１〜３、ｊ＝１〜３）である。なお、画素座標生成部１０３と座標変換処理部１０４との処理をまとめて行うことで処理を簡略化することもできる。
【００１７】
ｘｏ０＝ｍ１１・ｘｉ＋ｍ１２・ｙｉ＋ｍ１３
ｙｏ０＝ｍ２１・ｘｉ＋ｍ２２・ｙｉ＋ｍ２３
ｚｏ０＝ｍ３１・ｘｉ＋ｍ３２・ｙｉ＋ｍ３３
ｘｏ＝ｘｏ０／ｚｏ０
ｙｏ＝ｙｏ０／ｚｏ０  
これらの演算を行う際、ハードウェアによる実装でも、ソフトウェアによる実装でも、演算のビット幅が規定される。特に、演算が複雑になる除算の回路量を削減するため、あるいは、除算の処理サイクル数を減らす為に、必要とされる出力演算精度以上でなるべく少ない除数のビット数で実装することが望ましい。除算器は除数の範囲によって得られる演算精度が異なる。例えば、図４はある固定小数点除算における除数と誤差を示している。図４の例において、許容される誤差を０．０００８以下とする場合、除数は０．８８〜１．７０の範囲になくてはならない。本実施形態では、変形パラメータ算出部１０１によって除数がこの範囲に収まるように除数と被除数とを定数倍する。
【００１８】
画素補間処理部１０５は、変換画素座標１４２（変換画素の座標情報）と入力画素１２３とを入力として、座標変換処理により得られた変換画素の座標情報に基づき変換画素の画素値の補間演算を行なう。補間演算の結果を出力画素１２４として出力する。例えば、２×２画素のバイリニア補間において、変換画素座標１４２の整数部を（ｘ，ｙ）とする。整数部（ｘ，ｙ）、（ｘ＋１，ｙ）、（ｘ，ｙ＋１）、（ｘ＋１，ｙ＋１）の４点の画素値に対して変換画素座標１４２の加重平均をとって出力画素値を算出する。
【００１９】
図３に変形パラメータ算出部１０１の構成例を示す。変形パラメータ算出部１０１は、除数算出部１１１と係数算出部１１２とパラメータ調整部１１３とを有する。変形パラメータ算出部１０１に入力される高精度変形パラメータ１２１は、例えば、倍精度で表現された射影変換のパラメータであるとする。また、変形パラメータ算出部１０１から出力される変形パラメータ１２２は座標変換処理部１０４の演算のビット幅を定めるパラメータである。本実施例では符号付の固定小数点形式で表現された射影変換のパラメータとして説明するが、パラメータの表現形式としては、この例に限定されるものではなく、他の形式でも実現可能である。変形パラメータ算出部１０１はハードウェアによる構成の他にＣＰＵとメモリとＩ／Ｏとメモリ上のプログラムにより構成することも可能である。
【００２０】
図５〜図７を参照して変形パラメータ算出部１０１の処理の流れを説明する。本実施例ではハードウェア実装で変形パラメータ算出部１０１を構成する例を説明するが、ＣＰＵとメモリとＩ／Ｏとメモリ上のプログラムにより変形パラメータ算出部１０１を実現する場合は、各フローのステップがメモリ上のプログラムのステップに相当する。
【００２１】
図５は除数算出部１１１の処理を説明する図である。まず、最大最小座標算出部１１４は除数が最小、もしくは最大になる可能性のある座標を出力する。射影変換では、除数が最大になる可能性があるのは入力画素１２３のｘ座標とｙ座標がそれぞれ最小、最大のどちらかになるときである（パラメータが負の場合もあるので、ｘ座標、ｙ座標が最小の時に除数が最大になることもある）。
【００２２】
次に、最大最小除数算出部１１５は、最大最小座標算出部１１４から出力された除数が最小、もしくは最大になる可能性のある座標について除数を求める。本実施例では、射影変換としているのでｘ座標、ｙ座標をそれぞれｘｉ，ｙｉとしたときに除数ｚｏは以下のようになる。高精度変形パラメータ１２１はｄiｊ（i=１〜３、ｊ＝１〜３：ｄ１１〜ｄ３３）からなるが、以下の式で用いるのはｄ３１〜ｄ３３のみを使用する。
【００２３】
ｚｏ０＝ｄ３１・ｘｉ＋ｄ３２・ｙｉ＋ｄ３３
除数が最小となる可能性のある座標、除数が最大となる可能性のある座標について、それぞれについて除数を求める。除数の最小値をｚｏｍｉｎ、除数の最大値をｚｏｍａｘとする。ｚｏｍａｘとｚｏｍｉｎとを最大最小除数算出部１１５の出力とする。
【００２４】
図６は係数算出部１１２の処理を説明する図である。係数算出部１１２は座標変換処理部１０４での除算演算における除数と誤差との関係を求め、許容誤差以下となる除数ｄの範囲（ｄｍiｎ（除数の最小値）≦ｄ≦ｄｍａｘ（除数の最大値））を設定する。倍率算出部１１６は、最大最小除数算出部１１５から出力されたｚｏｍｉｎと、除数ｄの範囲の最小値ｄｍiｎとの比ｋ（＝ｄｍｉｎ／ｚｏｍｉｎ：正規化パラメータ）を求めて出力とする。
【００２５】
次に、最小最大確認部１１７は、ｚｏｍａｘと倍率算出部１１６で算出された比ｋとの乗算結果が座標変換処理部１０４での除算演算における除数の最大値ｄｍａｘ以下、ｋ・ｚｏｍａｘ≦ｄｍａｘであるか否かを判定する。この不等式を満たさないときは、座標変換処理部１０４での除算演算における演算誤差が許容範囲を超えてしまうことになる。すなわち、入力された高精度変形パラメータ１２１が不適切であるか、座標変換処理部１０４の演算精度が不適切であることを示している。なお、想定する高精度変形パラメータ１２１が常に不等式（ｋ・ｚｏｍａｘ≦ｄｍａｘ）の関係を満たすことが保証できるときは最小最大確認部１１７の処理を省略することもできる。ｋ・ｚｏｍａｘ＞ｄｍａｘとなる場合、最小最大確認部１１７は高精度変形パラメータ１２１が不適切であること、及び座標変換処理部１０４の演算精度が不適切であることのうち少なくとも一方であることを報知可能である。
【００２６】
図７はパラメータ調整部１１３の処理を説明する図である。まず、パラメータ倍率乗算部１１８は、倍率算出部１１６で算出した比ｋ（正規化パラメータ）を高精度変形パラメータ１２１のｄ１１〜ｄ３３の全てに乗じる。例えば、パラメータｄ１１については、ｆ１１＝ｋ・ｄ１１となる。パラメータ調整部１１３は、正規化パラメータが乗算されたパラメータを、座標変換に用いる調整パラメータｆiｊ（i＝１〜３、ｊ＝１〜３：ｆ１１〜ｆ３３）として算出する。
【００２７】
パラメータ丸め処理部１１９は、パラメータｆ１１〜ｆ３３のビット精度を変形パラメータ１２２のビット精度に丸める処理を行う。例えば、固定小数点形式のデータにするのであれば、変形パラメータ１２２の小数部の桁数だけ左シフトを行い、四捨五入の為に０．５を加えて、整数部のみを取り出す。
【００２８】
以上の処理の終了後、変形パラメータ算出部１０１は、変形パラメータ１２２（調整パラメータ）（ｍiｊ（i＝１〜３、ｊ＝１〜３：ｍ１１〜ｍ３３）を画像変形処理部１０２に出力する。
【００２９】
このように、除算を含む画像変形を行う画像処理装置において、変形パラメータを計算する際に、まず、画像変形内の座標で除数の最小値と最大値とを算出する。次に、除算演算の際、許容誤差よりも誤差が小さくなるように、除数の最小値と最大値に乗じる係数（正規化パラメータ）を算出する。これを座標変換における除算の除数と被除数のパラメータに乗じる。
【００３０】
これにより、ハードウェア実装を変更することなく、回路数の増加や動作周波数を減少させることなく、座標計算の演算精度を向上させることができる。また、座標計算の演算精度を向上させるために、ソフトウェア実装の変更箇所を最小限に抑えることができる。
【００３１】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005997480.tif 000002
【図２】
0005997480.tif 000003
【図３】
0005997480.tif 000004
【図４】
0005997480.tif 000005
【図５】
0005997480.tif 000006
【図６】
0005997480.tif 000007
【図７】
0005997480.tif 000008