(57)【特許請求の範囲】
【請求項１】
直交するＸ，Ｙ座標軸に沿ってマトリクス状に配置された複数の原画素からなる原画像について、所望の画素位置から所定範囲内に位置する複数の原画素からなる補間原画素の画素値とこれら補間原画素に対応する補間係数とを用いた補間演算により前記所望の画素位置における新たな画素値を算出することによって、前記原画像を画像処理した新たな画像を生成する画像処理方法において、
隣接する２×２個の原画素からなる正方形のサブマトリクスをＸおよびＹ座標軸方向にそれぞれ複数個に等分割して小さな正方形の領域を生成するとともに、これら領域の各頂点に近似点を配置し、任意の近似点を中心として所定範囲内に位置する各近似点での離散した補間係数を所定の補間関数に基づきそれぞれ導出し、さらにこれら補間係数のうち１回の補間演算に用いる各補間係数の係数値の合計が２k（ｋは正整数）となるように正規化した補間係数をそれぞれ求めて予め係数バッファに格納しておき、
入力された原画像を一時的に原画像バッファに記憶し、
前記原画像に対するＸおよびＹ座標軸方向での拡大・縮小率を示す倍率に応じて、新たな画像を構成する各画素の新たな画素位置を算出し、
その新たな画素位置が属するサブマトリクスに配置されている各近似点のうち、前記新たな画素位置に最も近い近似点をその新たな画素位置の近似点として選択し、
選択した前記近似点とこの近似点から所定範囲内に位置する各補間原画素との位置関係に基づいて、これら補間原画素に対応する補間係数を前記係数バッファから読み出し、
前記原画像バッファから読み出した前記各補間原画素の画素値と前記係数バッファから読み出した前記各補間係数とをそれぞれ積和演算して補間演算を行うことにより、前記近似点における画素値を算出し、
算出した前記画素値を２kで除算することにより、前記新たな画素位置における画素値として出力することを特徴とする画像処理方法。
【請求項２】
請求項１記載の画像処理方法において、
前記係数バッファに格納しておく補間係数を正規化する際、前記補間関数から実数で導出した各補間係数をそれぞれ２k倍するとともに、各補間係数の係数値の小数部が所定桁数以内となるように正規化することを特徴とする画像処理方法。
【請求項３】
請求項１記載の画像処理方法において、
前記係数バッファに格納しておく補間係数を正規化する際、前記補間関数から実数で導出した各補間係数をそれぞれ２k倍するとともに、各補間係数が整数となるように整数化することを特徴とする画像処理方法。
【請求項４】
請求項３記載の画像処理方法において、
前記係数バッファに格納しておく補間係数を整数化する際、整数化した各補間係数のうち、１回の補間演算に用いる各補間係数の係数値の合計が２kとならない場合は、前記合計が２kとなるように整数化前の各補間係数のうちのいずれかを増減し、増減する補間係数としてその増減率の最も小さいものから順に増減することを特徴とする画像処理方法。
【請求項５】
請求項１記載の画像処理方法において、
前記サブマトリクスをＸおよびＹ座標軸方向にそれぞれ分割する数として、２n（ｎは２以上の整数）を用いることを特徴とする画像処理方法。
【請求項６】
請求項１記載の画像処理方法において、
前記係数バッファには、前記近似点と前記各補間原画素との位置関係のうち、ＸまたはＹ座標軸方向のいずれか一方向における位置関係に応じた補間係数を格納しておき、
前記補間演算時には、前記一方向における補間係数をＸおよびＹ座標軸方向で兼用し、Ｘ座標軸方向における前記近似点と前記各補間原画素との位置関係に応じた補間係数を前記係数バッファからそれぞれ読み出すとともに、Ｙ座標軸方向における前記近似点と前記補間原画素との位置関係に応じた補間係数を前記係数バッファからそれぞれ読み出し、同一補間原画素に関するＸおよびＹ座標軸方向での２つの補間係数を積算することにより、前記各補間原画素に対する補間係数を得ることを特徴とする画像処理方法。
【請求項７】
請求項１記載の画像処理方法において、
前記係数バッファには、前記近似点と前記各補間原画素との位置関係のうち、Ｘ座標軸方向の位置関係に応じたＸ補間係数と、Ｙ座標軸方向の位置関係に応じたＹ補間係数とを個別に格納しておき、
前記補間演算時には、Ｘ座標軸方向における前記位置関係に応じた補間係数を前記係数バッファからそれぞれ読み出すとともに、Ｙ座標軸方向における前記位置関係に応じた補間係数を前記係数バッファからそれぞれ読み出し、同一補間原画素に関するＸおよびＹ座標軸方向での２つの補間係数を積算することにより、前記各補間原画素に対する補間係数を得ることを特徴とする画像処理方法。
【請求項８】
請求項１記載の画像処理方法において、
前記係数バッファに格納しておく補間係数として、前記近似点を中心とする対称な前記補間関数を用いて算出された補間係数のうち、その近似点からいずれか片側方向の補間係数のみを格納しておき、
前記補間演算時には、前記近似点から前記片側方向の補間係数については、前記近似点と前記各補間係数との位置関係に応じて、前記係数バッファに格納されている前記補間係数から選択し、前記片側方向とは反対方向の補間係数については、前記近似点と前記各補間係数との位置関係を符号反転した位置関係に応じて、前記係数バッファに格納されている前記補間係数から選択することを特徴とする画像処理方法。
【請求項９】
請求項１記載の画像処理方法において、
前記係数バッファに格納しておく補間係数として、前記近似点が任意の補間原画素の位置と一致した場合に、その他の補間原画素に対応する補間係数がすべてゼロとなる補間係数を用いることを特徴とする画像処理方法。
【請求項１０】
請求項１記載の画像処理方法において、
前記原画素間の距離を１と見なして求めた前記近似点の位置の整数部に基づき、前記近似点が属するサブマトリクスを構成する４つの原画素のうちの基準となる基準原画素を特定し、前記基準原画素を元にして前記原画像バッファから１回の補間演算に用いる各補間原画素の画素値を読み出すことを特徴とする画像処理方法。
【請求項１１】
請求項１０記載の画像処理方法において、
前記原画素間の距離を１と見なして求めた前記近似点の位置の小数部に基づき、前記近似点と前記基準原画素との位置関係を算出し、その位置関係を元にして前記係数バッファから１回の補間演算に用いる各補間係数の係数値を読み出すことを特徴とする画像処理方法。
【請求項１２】
請求項１記載の画像処理方法において、
新たな画像を構成する各画素の新たな画素位置を算出する際、ＸおよびＹ座標軸方向のうちいずれか一方の座標軸方向における倍率に応じて、前記新たな画素位置に関する前記一方の座標軸方向での座標値を算出し、その座標値をパラメータとする所定の関数を用いて前記新たな画素位置に関する他方の座標軸方向での座標値を算出することを特徴とする画像処理方法。
【請求項１３】
直交するＸ，Ｙ座標軸に沿ってマトリクス状に配置された複数の原画素からなる原画像について、所望の画素位置から所定範囲内に位置する複数の原画素からなる補間原画素の画素値とこれら補間原画素に対応する補間係数とを用いた補間演算により前記所望の画素位置における新たな画素値を算出することによって、前記原画像を画像処理した新たな画像を生成する画像処理装置において、
隣接する２×２個の原画素からなる正方形のサブマトリクスをＸおよびＹ座標軸方向にそれぞれ複数個に等分割して小さな正方形の領域を生成するとともに、これら領域の各頂点に近似点を配置し、任意の近似点を中心として所定範囲内に位置する各近似点での離散した補間係数を所定の補間関数に基づきそれぞれ導出し、さらにこれら補間係数のうち１回の補間演算に用いる各補間係数の係数値の合計が２k（ｋは正整数）となるように正規化した補間係数をそれぞれ求めて予め格納する係数バッファと、
入力された原画像を一時的に記憶する原画像バッファと、
前記原画像に対するＸおよびＹ座標軸方向での拡大・縮小率を示す倍率に応じて、新たな画像を構成する各画素の新たな画素位置を算出し、その新たな画素位置が属するサブマトリクスに配置されている各近似点のうち、前記新たな画素位置に最も近い近似点をその新たな画素位置の近似点として選択し、選択した前記近似点とこの近似点から所定範囲内に位置する各補間原画素との位置関係に基づいて、これら補間原画素に対応する補間係数を前記係数バッファから読み出す補間位置演算手段と、
前記原画像バッファから読み出した前記各補間原画素の画素値と前記係数バッファから読み出した前記各補間係数とをそれぞれ積和演算して補間演算を行うことにより、前記近似点における画素値を算出し、算出した前記画素値を２kで除算することにより、前記新たな画素位置における画素値として出力する補間演算手段とを備えることを特徴とする画像処理装置。
【請求項１４】
請求項１３記載の画像処理装置において、
前記係数バッファは、前記補間係数として、前記補間関数から実数で導出した各補間係数をそれぞれ２k倍するとともに、各補間係数の係数値の小数部が所定桁数以内となるように正規化した補間係数を予め格納することを特徴とする画像処理装置。
【請求項１５】
請求項１３記載の画像処理装置において、
前記係数バッファは、前記補間係数として、前記補間関数から実数で導出した各補間係数をそれぞれ２k倍するとともに、各補間係数が整数となるように整数化した補間係数を予め格納することを特徴とする画像処理装置。
【請求項１６】
請求項１５記載の画像処理装置において、
前記係数バッファは、前記補間係数として、整数化した各補間係数のうち、１回の補間演算に用いる各補間係数の係数値の合計が２kとならない場合は、前記合計が２kとなるように整数化前の各補間係数のうちのいずれかを増減し、増減する補間係数としてその増減率の最も小さいものから順に増減して得られた補間係数を予め格納することを特徴とする画像処理装置。
【請求項１７】
請求項１３記載の画像処理装置において、
前記係数バッファは、前記補間係数として、前記サブマトリクスをＸおよびＹ座標軸方向にそれぞれ２n（ｎは２以上の整数）で分割して得られた補間係数を予め格納することを特徴とする画像処理装置。
【請求項１８】
請求項１３記載の画像処理装置において、
前記係数バッファは、前記補間係数として、前記近似点と前記各補間原画素との位置関係のうち、ＸまたはＹ座標軸方向のいずれか一方向における位置関係に応じた補間係数を予め格納して、前記一方向における補間係数をＸおよびＹ座標軸方向で兼用し、Ｘ座標軸方向における前記近似点と前記各補間原画素との位置関係に応じた補間係数を出力するとともに、Ｙ座標軸方向における前記近似点と前記補間原画素との位置関係に応じた補間係数を出力し、
前記補間演算部は、同一補間原画素に関するＸおよびＹ座標軸方向での前記２つの補間係数を積算することにより、前記各補間原画素に対する補間係数を得ることを特徴とする画像処理装置。
【請求項１９】
請求項１３記載の画像処理装置において、
前記係数バッファは、前記補間係数として、前記近似点と前記各補間原画素との位置関係のうち、Ｘ座標軸方向の位置関係に応じたＸ補間係数と、Ｙ座標軸方向の位置関係に応じたＹ補間係数とを予め個別に格納し、Ｘ座標軸方向における前記位置関係に応じた補間係数を出力するとともに、Ｙ座標軸方向における前記位置関係に応じた補間係数を出力し、同一補間原画素に関するＸおよびＹ座標軸方向での前記２つの補間係数を積算することにより、前記各補間原画素に対する補間係数を得ることを特徴とする画像処理装置。
【請求項２０】
請求項１３記載の画像処理装置において、
前記係数バッファは、前記補間係数として、前記近似点を中心とする対称な前記補間関数を用いて算出された補間係数のうち、その近似点からいずれか片側方向の補間係数のみを予め格納しておき、前記近似点から前記片側方向の補間係数については、前記近似点と前記各補間係数との位置関係に応じて、前記係数バッファに格納されている前記補間係数から選択し、前記片側方向と反対方向の補間係数については、前記近似点と前記各補間係数との位置関係を符号反転した位置関係に応じて、前記係数バッファに格納されている前記補間係数から選択することを特徴とする画像処理装置。
【請求項２１】
請求項１３記載の画像処理装置において、
前記係数バッファは、前記補間係数として、前記近似点が任意の補間原画素の位置と一致した場合に、その他の補間原画素に対応する補間係数がすべてゼロとなる補間係数を予め格納することを特徴とする画像処理装置。
【請求項２２】
請求項１３記載の画像処理装置において、
前記補間位置演算部は、前記原画素間の距離を１と見なして求めた前記近似点の位置の整数部に基づき、前記近似点が属するサブマトリクスを構成する４つの原画素のうちの基準となる基準原画素を特定し、前記基準原画素を元にして前記原画像バッファから１回の補間演算に用いる各補間原画素の画素値を読み出すことを特徴とする画像処理装置。
【請求項２３】
請求項２２記載の画像処理装置において、
前記補間位置演算部は、前記原画素間の距離を１と見なして求めた前記近似点の位置の小数部に基づき、前記近似点と前記基準原画素との位置関係を算出し、その位置関係を元にして前記係数バッファから１回の補間演算に用いる各補間係数の係数値を読み出すことを特徴とする画像処理装置。
【請求項２４】
請求項１３記載の画像処理装置において、
前記補間位置演算部は、新たな画像を構成する各画素の新たな画素位置を算出する際、ＸおよびＹ座標軸方向のうちいずれか一方の座標軸方向における倍率に応じて、前記新たな画素位置に関する前記一方の座標軸方向での座標値を算出し、その座標値をパラメータとする所定の関数を用いて前記新たな画素位置に関する他方の座標軸方向での座標値を算出することを特徴とする画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理方法および装置に関し、特に電子カメラなどの撮像装置で撮像された２次元画像について補間演算を行うことにより、所望の画像を得る画像処理方法および装置に関するものである。
【０００２】
【従来の技術】
電子カメラなどの撮像装置で撮像された２次元画像について、拡大や縮小などの画像処理を高画質で行う際には、補間演算として多数の画素と高次の補間係数による積和演算（コンボリューション演算）を行う必要がある。さらにこの際、用いる原画素の数を増やしたり補間係数の精度を上げたりするほど、補間演算に要する時間が増大する。特に、原画像の画素位置とは異なる新しい画素位置すなわち補間位置における補間係数を、その都度、計算によって求める場合には、さらに複雑な演算が増えるため、相当な時間を要する。
【０００３】
撮像した画像の後処理として、このような補間演算をパソコンを用いて行う場合は、単にその処理に時間がかかるだけである。しかし、電子カメラなどの撮像装置では、補間演算に長時間かかっていては撮像した画像をすぐに確認できないし、ビデオカメラのようにリアルタイムで画像が必要な撮像装置の場合、実際には使い物にならない。
また、ＡＣ電源など十分な動作電源が供給される設置型の画像処理装置では、消費電力と引き換えに、あるいは高速動作するチップやメモリなどを用意するためのコストと引き換えに、高速の演算装置を使用して補間演算にかかる時間を短縮することも可能である。しかし、限られた動作電源しか供給されない携帯型装置の場合、このような解決法は適用できない。
【０００４】
従来、このような問題を解決するため、補間演算を簡単にするためのさまざまな方法が提案されている。例えば、特開平１１−２５０６７号公報などには、補間係数の算出を高速で行うような工夫が提案されているし、特許第２８０７２３１号などには、拡大後の画素位置が属する部分領域ごとに、原画素の画素値と原画素位置における補間係数とを予め掛け合わせた値を、事前に算出してテーブルに格納しておく方法が提案されている。
【０００５】
【発明が解決しようとする課題】
しかしながら、このような従来の画像処理方法では、前者のように補間位置ごとに補間係数を計算していては処理効率が悪いという問題点があった。また、後者のような場合には、近似誤差の低減を図るため、補間位置を近似する領域を小さくしたり、より高次の補間演算を行うため演算に使用する原画素の数を増やしたりすると、事前に算出するデータ数が膨大となり、参照テーブルを格納するためのメモリ領域が増えてしまうという問題点があった。
【０００６】
特に後者の場合、図１３に示すように、隣接する４つの原画素間を分割して設定した近似点を用いて補間演算をする場合、隣接する４つの原画素ｐ（ｉ，ｊ）〜ｐ（ｉ＋１，ｊ＋１）で囲まれる領域１００と、これら４つの原画素を補間演算に用いる補間位置範囲１０１とにずれがある。
このため、例えば補間位置Ｐ（ｘ，ｙ）のように、その補間位置に近い原画素ｐ（ｉ−１，ｊ），ｐ（ｉ−１，ｊ＋１）ではなく、より離れた原画素ｐ（ｉ＋１，ｊ），ｐ（ｉ＋１，ｊ＋１）を補間演算に用いる場合もあり、原画素値によっては補間演算より得られた画素値に大きな誤差を生じる場合がある。また、これを解消するには補間位置の演算ごとにオフセットを加算（または減算）する必要があるため、演算量が増えてしまう。
【０００７】
本発明はこのような課題を解決するためのものであり、補間位置ごとに補間係数を演算することなく、また高い精度を要求しても回路規模の増大を伴わずに、原画像に対する拡大・縮小などの画像処理を高速・高画質で行うことができる画像処理方法および装置を提供することを目的としている。
【０００８】
【課題を解決するための手段】
このような目的を達成するために、本発明にかかる画像処理方法は、直交するＸ，Ｙ座標軸に沿ってマトリクス状に配置された複数の原画素からなる原画像について、所望の画素位置から所定範囲内に位置する複数の原画素からなる補間原画素の画素値とこれら補間原画素に対応する補間係数とを用いた補間演算により所望の画素位置における新たな画素値を算出することによって、原画像を画像処理した新たな画像を生成する画像処理方法において、特に、隣接する２×２個の原画素からなる正方形のサブマトリクスをＸおよびＹ座標軸方向にそれぞれ複数個に等分割して小さな正方形の領域を生成するとともに、これら領域の各頂点に近似点を配置し、任意の近似点を中心として所定範囲内に位置する各近似点での離散した補間係数を所定の補間関数に基づきそれぞれ導出し、さらにこれら補間係数のうち１回の補間演算に用いる各補間係数の係数値の合計が２k（ｋは正整数）となるように正規化した補間係数をそれぞれ求めて予め係数バッファに格納しておき、入力された原画像を一時的に原画像バッファに記憶し、原画像に対するＸおよびＹ座標軸方向での拡大・縮小率を示す倍率に応じて、新たな画像を構成する各画素の新たな画素位置を算出し、その新たな画素位置が属するサブマトリクスに配置されている各近似点のうち、新たな画素位置に最も近い近似点をその新たな画素位置の近似点として選択し、選択した近似点とこの近似点から所定範囲内に位置する各補間原画素との位置関係に基づいて、これら補間原画素に対応する補間係数を係数バッファから読み出し、原画像バッファから読み出した各補間原画素の画素値と係数バッファから読み出した各補間係数とをそれぞれ積和演算して補間演算を行うことにより、近似点における画素値を算出し、算出した画素値を２kで除算することにより、新たな画素位置における画素値として出力するようにしたものである。
【０００９】
係数バッファに格納しておく補間係数を正規化する際、補間関数から実数で導出した各補間係数をそれぞれ２k倍するとともに、各補間係数の係数値の小数部が所定桁数以内となるように正規化するようにしてもよい。
また、補間関数から実数で導出した各補間係数をそれぞれ２k倍するとともに、各補間係数が整数となるように整数化するようにしてもよい。ここで、係数バッファに格納しておく補間係数を整数化する際、整数化した各補間係数のうち、１回の補間演算に用いる各補間係数の係数値の合計が２kとならない場合は、合計が２kとなるように整数化前の各補間係数のうちのいずれかを増減し、増減する補間係数としてその増減率の最も小さいものから順に増減するようにしてもよい。
また、サブマトリクスをＸおよびＹ座標軸方向にそれぞれ分割する数として、２n（ｎは２以上の整数）を用いるようにしてもよい。
【００１０】
各補間原画素に対する補間係数を得る場合、係数バッファに、近似点と各補間原画素との位置関係のうち、ＸまたはＹ座標軸方向のいずれか一方向における位置関係に応じた補間係数を格納しておき、補間演算時には、一方向における補間係数をＸおよびＹ座標軸方向で兼用し、Ｘ座標軸方向における近似点と各補間原画素との位置関係に応じた補間係数を係数バッファからそれぞれ読み出すとともに、Ｙ座標軸方向における近似点と補間原画素との位置関係に応じた補間係数を係数バッファからそれぞれ読み出し、同一補間原画素に関するＸおよびＹ座標軸方向での２つの補間係数を積算することにより、各補間原画素に対する補間係数を得るようにしてもよい。
【００１１】
あるいは、係数バッファに、近似点と各補間原画素との位置関係のうち、Ｘ座標軸方向の位置関係に応じたＸ補間係数と、Ｙ座標軸方向の位置関係に応じたＹ補間係数とを個別に格納しておき、補間演算時には、Ｘ座標軸方向における位置関係に応じた補間係数を係数バッファからそれぞれ読み出すとともに、Ｙ座標軸方向における位置関係に応じた補間係数を係数バッファからそれぞれ読み出し、同一補間原画素に関するＸおよびＹ座標軸方向での２つの補間係数を積算することにより、各補間原画素に対する補間係数を得るようにしてもよい。
【００１２】
この他、各補間原画素に対する補間係数を得る場合、係数バッファに格納しておく補間係数として、近似点を中心とする対称な補間関数を用いて算出された補間係数のうち、その近似点からいずれか片側方向の補間係数のみを格納しておき、補間演算時には、近似点から片側方向の補間係数については、近似点と各補間係数との位置関係に応じて、係数バッファに格納されている補間係数から選択し、片側方向と反対方向の補間係数については、近似点と各補間係数との位置関係を符号反転した位置関係に応じて、係数バッファに格納されている補間係数から選択して用いるようにしてもよい。
係数バッファに格納しておく補間係数としては、近似点が任意の補間原画素の位置と一致した場合に、その他の補間原画素に対応する補間係数がすべてゼロとなる補間係数を用いるようにしてもよい。
【００１３】
原画像バッファから各補間原画素の画素値を読み出す場合、原画素間の距離を１と見なして求めた近似点の位置の整数部に基づき、近似点が属するサブマトリクスを構成する４つの原画素のうちの基準となる基準原画素を特定し、基準原画素を元にして原画像バッファから１回の補間演算に用いる各補間原画素の画素値を読み出すようにしてもよい。
さらに、係数バッファから各補間係数を読み出す場合、原画素間の距離を１と見なして求めた近似点の位置の小数部に基づき、近似点と基準原画素との位置関係を算出し、その位置関係を元にして係数バッファから１回の補間演算に用いる各補間係数の係数値を読み出すようにしてもよい。
【００１４】
新たな画像を構成する各画素の新たな画素位置を算出する際、ＸおよびＹ座標軸方向のうちいずれか一方の座標軸方向における倍率に応じて、新たな画素位置に関する一方の座標軸方向での座標値を算出し、その座標値をパラメータとする所定の関数を用いて新たな画素位置に関する他方の座標軸方向での座標値を算出するようにしてもよい。
【００１５】
また、本発明にかかる画像処理装置は、直交するＸ，Ｙ座標軸に沿ってマトリクス状に配置された複数の原画素からなる原画像について、所望の画素位置から所定範囲内に位置する複数の原画素からなる補間原画素の画素値とこれら補間原画素に対応する補間係数とを用いた補間演算により所望の画素位置における新たな画素値を算出することによって、原画像を画像処理した新たな画像を生成する画像処理装置において、特に、隣接する２×２個の原画素からなる正方形のサブマトリクスをＸおよびＹ座標軸方向にそれぞれ複数個に等分割して小さな正方形の領域を生成するとともに、これら領域の各頂点に近似点を配置し、任意の近似点を中心として所定範囲内に位置する各近似点での離散した補間係数を所定の補間関数に基づきそれぞれ導出し、さらにこれら補間係数のうち１回の補間演算に用いる各補間係数の係数値の合計が２k（ｋは正整数）となるように正規化した補間係数をそれぞれ求めて予め格納する係数バッファと、入力された原画像を一時的に記憶する原画像バッファと、原画像に対するＸおよびＹ座標軸方向での拡大・縮小率を示す倍率に応じて、新たな画像を構成する各画素の新たな画素位置を算出し、その新たな画素位置が属するサブマトリクスに配置されている各近似点のうち、新たな画素位置に最も近い近似点をその新たな画素位置の近似点として選択し、選択した近似点とこの近似点から所定範囲内に位置する各補間原画素との位置関係に基づいて、これら補間原画素に対応する補間係数を係数バッファから読み出す補間位置演算手段と、原画像バッファから読み出した各補間原画素の画素値と係数バッファから読み出した各補間係数とをそれぞれ積和演算して補間演算を行うことにより、近似点における画素値を算出し、算出した画素値を２kで除算することにより、新たな画素位置における画素値として出力する補間演算手段とを備えるものである。
【００１６】
係数バッファでは、補間係数として、補間関数から実数で導出した各補間係数をそれぞれ２k倍するとともに、各補間係数の係数値の小数部が所定桁数以内となるように正規化した補間係数を予め格納するようにしてもよい。
また補間関数から実数で導出した各補間係数をそれぞれ２k倍するとともに、各補間係数が整数となるように整数化した補間係数を予め格納するようにしてもよい。ここで、整数化した各補間係数のうち、１回の補間演算に用いる各補間係数の係数値の合計が２kとならない場合は、合計が２kとなるように整数化前の各補間係数のうちのいずれかを増減し、増減する補間係数としてその増減率の最も小さいものから順に増減して得られた補間係数を予め格納するようにしてもよい。
また、係数バッファでは、補間係数として、サブマトリクスをＸおよびＹ座標軸方向にそれぞれ２n（ｎは２以上の整数）で分割して得られた補間係数を予め格納するようにしてもよい。
【００１７】
各補間原画素に対する補間係数を得る場合、係数バッファで、補間係数として、近似点と各補間原画素との位置関係のうち、ＸまたはＹ座標軸方向のいずれか一方向における位置関係に応じた補間係数を予め格納して、一方向における補間係数をＸおよびＹ座標軸方向で兼用し、Ｘ座標軸方向における近似点と各補間原画素との位置関係に応じた補間係数を出力するとともに、Ｙ座標軸方向における近似点と補間原画素との位置関係に応じた補間係数を出力し、補間演算部では、同一補間原画素に関するＸおよびＹ座標軸方向での２つの補間係数を積算することにより、各補間原画素に対する補間係数を得るようにしてもよい。
【００１８】
あるいは、係数バッファで、補間係数として、近似点と各補間原画素との位置関係のうち、Ｘ座標軸方向の位置関係に応じたＸ補間係数と、Ｙ座標軸方向の位置関係に応じたＹ補間係数とを予め個別に格納し、Ｘ座標軸方向における位置関係に応じた補間係数を出力するとともに、Ｙ座標軸方向における位置関係に応じた補間係数を出力し、同一補間原画素に関するＸおよびＹ座標軸方向での２つの補間係数を積算することにより、各補間原画素に対する補間係数を得るようにしてもよい。
【００１９】
この他、係数バッファで、補間係数として、近似点を中心とする対称な補間関数を用いて算出された補間係数のうち、その近似点からいずれか片側方向の補間係数のみを予め格納しておき、近似点から片側方向の補間係数については、近似点と各補間係数との位置関係に応じて、係数バッファに格納されている補間係数から選択し、片側方向と反対方向の補間係数については、近似点と各補間係数との位置関係を符号反転した位置関係に応じて、係数バッファに格納されている補間係数から選択するようにしてもよい。
また、係数バッファでは、補間係数として、近似点が任意の補間原画素の位置と一致した場合に、その他の補間原画素に対応する補間係数がすべてゼロとなる補間係数を予め格納するようにしてもよい。
【００２０】
原画像バッファから各補間原画素の画素値を読み出す場合、補間位置演算手段で、原画素間の距離を１と見なして求めた近似点の位置の整数部に基づき、近似点が属するサブマトリクスを構成する４つの原画素のうちの基準となる基準原画素を特定し、基準原画素を元にして原画像バッファから１回の補間演算に用いる各補間原画素の画素値を読み出すようにしてもよい。
さらに、係数バッファから各補間係数を読み出す場合、補間位置演算手段で、原画素間の距離を１と見なして求めた近似点の位置の小数部に基づき、近似点と基準原画素との位置関係を算出し、その位置関係を元にして係数バッファから１回の補間演算に用いる各補間係数の係数値を読み出すようにしてもよい。
【００２１】
補間位置演算手段では、新たな画像を構成する各画素の新たな画素位置を算出する際、ＸおよびＹ座標軸方向のうちいずれか一方の座標軸方向における倍率に応じて、新たな画素位置に関する一方の座標軸方向での座標値を算出し、その座標値をパラメータとする所定の関数を用いて新たな画素位置に関する他方の座標軸方向での座標値を算出するようにしてもよい。
【００２２】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して説明する。
図１は本発明の一実施の形態にかかる画像処理装置を示すブロック図である。画像処理装置１０は、電子カメラなどの撮像装置で撮像された２次元の原画像１について、原画像１の直交するＸおよびＹ座標軸方向での拡大・縮小率を示す倍率２に基づき画像処理することにより新たな画像８を出力する装置である。
この画像処理装置１０には、原画像バッファ１１、補間位置演算部１２、係数バッファ１３および補間演算部１４が設けられている。
【００２３】
補間位置演算部１２では、指定された倍率２に基づいて、新たな画像８を構成する各画素の新たな画素位置すなわち補間位置を算出する。
原画像バッファ１１には、処理対象となる原画像１が入力されて一時的に記憶され、補間位置演算部１２で算出された補間位置を示すＸ，Ｙ座標値の整数部３に基づき、補間位置における新たな画素値を算出するのに用いられる原画素すなわち補間原画素が選択出力される。
係数バッファ１３では、予め入力された係数データ９を、補間位置と補間原画素との位置関係に応じて各補間原画素に対応する補間係数として記憶しており、補間位置演算部１２で算出された補間位置を示すＸ，Ｙ座標値の小数部４に基づき、補間原画素に対応する補間係数６が選択出力される。
【００２４】
補間演算部１４には、コンボルーバー（積和演算器）１５とビットシフタ１６とが設けられている。
コンボルーバー１５では、原画像バッファ１１から選択出力された補間原画素５の画素値と、係数バッファ１３から選択出力された補間係数６とを、それぞれ対応させて積和演算を行うことにより、補間位置における画素値７を算出する。ビットシフタ１６では、コンボルーバー１５で算出された画素値７を下位ビット方向へビットシフトすることにより除算し、得られた画素値を補間位置における新たな画素値として出力し、結果として原画像１を倍率２で画像処理した新たな画像８が生成される。
【００２５】
次に、図２を参照して、補間演算を用いた画像処理の概要について、画像拡大処理を例として説明する。図２は拡大処理を示す説明図である。
原画像１は、Ｘ，Ｙ座標軸に沿ってマトリクス状に配置された複数の原画素から構成されている。互いに隣接する４つの原画素ｐ（ｉ，ｊ）、ｐ（ｉ，ｊ＋１）、ｐ（ｉ＋１，ｊ）およびｐ（ｉ＋１，ｊ＋１）の間の論理的な距離を「１」とする。
ここで、原画素１をＸ，Ｙ座標軸方向へそれぞれ１．５倍だけ拡大する処理は、Ｘ，Ｙ座標軸方向の画素数を１．５倍だけ増やす処理に等しい。したがって、新たな画像を構成する各画素間は１／１．５だけ狭くなり、原画素が元々存在しない新たな画素位置、例えば点Ｐでの画素値が必要となる。
【００２６】
新たな画素位置すなわち補間位置の画素値は、その補間位置から所定距離範囲内に位置する補間原画素の画素値を用いて、補間演算により算出される。例えば、図２の点Ｐの画素値については、その点Ｐを囲む４つの補間原画素ｐ（ｉ，ｊ）、ｐ（ｉ，ｊ＋１）、ｐ（ｉ＋１，ｊ）およびｐ（ｉ＋１，ｊ＋１）から算出してもよい。
本実施の形態では、補間位置ＰからＸ座標軸に沿って両方向に同数の補間原画素を用いて補間し、Ｙ座標軸についても同様とする。このとき、補間位置Ｐから片側方向に位置する補間原画素数をｍ（ｍは正整数）とすると、１回の補間演算で４ｍ2個の補間原画素を用いることになる。上記の例では、ｍ＝１に相当する。
【００２７】
ここで、Ｘ，Ｙ座標軸方向において隣接する原画素間の距離を「１」とし、Ｘ，Ｙ座標軸方向における倍率をＥｘ，Ｅｙとした場合、補間位置Ｐの座標値Ｐｘ，Ｐｙは、
Ｐｘ＝ｑ／Ｅｘ，Ｐｙ＝ｑ／Ｅｙ
で求められる。但し、ｑは０以上の整数をとる。
このＰｘ，Ｐｙを実数「Ｘ．ｘ」，「Ｙ．ｙ」で表現した場合、原画素間の距離が「１」であることから、整数部「Ｘ」，「Ｙ」は、ｐ（ｉ，ｊ）の座標値ｉ，ｊに相当し、小数部「ｘ」，「ｙ」は、ｐ（ｉ，ｊ）から補間位置Ｐまでの座標値に相当する。
【００２８】
したがって、図１の補間位置演算部１２では、指定された倍率２に基づいて、新たな画像８を構成する各画素の新たな画素位置すなわち補間位置を算出し、その整数部「Ｘ」，「Ｙ」に基づき原画素ｐ（ｉ，ｊ）を特定するとともに、この原画素ｐ（ｉ，ｊ）を基準として補間位置Ｐのための補間演算に用いる各補間原画素を選択している。
具体的には、片方向に位置する補間原画素数をｍとした場合、ｐ（ｉ−ｍ＋１，ｊ−ｍ＋１），ｐ（ｉ−ｍ＋１，ｊ＋ｍ），ｐ（ｉ＋ｍ，ｊ−ｍ＋１），ｐ（ｉ＋ｍ，ｊ＋ｍ）で囲まれる正方形の領域内に存在するすべての原画素が補間原画素として選択される。
【００２９】
図３に補間位置演算部の構成例を示す。補間位置演算部１２には、Ｘ補間位置算出部２１、分離部２３、近似部２４、Ｙ補間位置算出部２５、分離部２７および近似部２８が設けられている。
Ｘ補間位置算出部２１では、Ｘ座標軸方向の倍率すなわちＸ倍率２Ｘに基づき、新たな画像８を構成する各画素の新たな画素位置すなわち補間位置を示すＸ座標値２２が算出される。分離部２３では、実数「Ｘ．ｘ」で表現されＸ座標値２２が、整数部「Ｘ」と小数部「ｘ」に分離され、その整数部「Ｘ」が、原画素選択アドレス３Ｘとして原画像バッファ１１からの補間原画素選択に使用される。
【００３０】
また、Ｙ補間位置算出部２５についても、上記と同様にして、Ｙ座標軸方向の倍率を示すＹ倍率２Ｙに基づき、補間位置を示すＹ座標値２６が算出される。
分離部２７では、実数「Ｙ．ｙ」で表現されるＹ座標値２６が、整数部「Ｙ」と小数部「ｙ」に分離され、その整数部「Ｙ」は、原画素選択アドレス３Ｙとして原画像バッファ１１からの補間原画素選択に使用される。
【００３１】
一方、補間位置を示す座標値の小数部「ｘ」，「ｙ」は、ｐ（ｉ，ｊ）から補間位置Ｐまでの座標値すなわち距離に相当していることから、これら小数部に基づき、各補間画素値に対応する補間係数を特定できる。
図４に補間係数選択処理の一例を示す。ここでは、理解を容易とするためＸ座標軸方向にだけ着目し、Ｘ座標軸上に並ぶ４つの原画像ｐ（ｉ−１），ｐ（ｉ），ｐ（ｉ＋１）およびｐ（ｉ＋２）を用いて補間位置Ｐの画素値を求める場合（ｍ＝２）が例として示されている。
【００３２】
補間位置Ｐは原画素ｐ（ｉ）とｐ（ｉ＋１）との間に位置している。ここで、補間位置ＰのＸ座標値が実数「Ｘ．ｘ」である場合、上記のように、整数部「Ｘ」は原画素ｐ（ｉ）の座標値ｉに相当し、小数部「ｘ」はｐ（ｉ）から補間位置Ｐ間での距離ｘに相当する。
補間係数は、補間演算に用いる各補間原画素の画素値に対する重みであり、一般的には、各補間原画素と補間位置との位置関係によって変化し、この位置関係をパラメータとする関数すなわち補間関数で表現される。
例えば、図４の補間関数は、補間位置Ｐを中心として左右対称な特性を有しており、補間位置Ｐと補間原画素との位置関係に応じた関数値ｗが補間係数として用いられる。
【００３３】
補間位置Ｐを基準とした場合、原画像ｐ（ｉ−１），ｐ（ｉ），ｐ（ｉ＋１）およびｐ（ｉ＋２）の相対座標値は、それぞれ−１−ｘ，−ｘ，１−ｘおよび２−ｘとなり、各原画素の補間係数は、それぞれｗ（−１−ｘ），ｗ（−ｘ），ｗ（１−ｗ），ｗ（２−ｘ）と表現できる。
したがって、原画像ｐ（ｉ−１），ｐ（ｉ），ｐ（ｉ＋１）およびｐ（ｉ＋２）の画素値をｇ（ｉ−１），ｇ（ｉ），ｇ（ｉ＋１）およびｇ（ｉ＋２）とすると、ｐ（ｉ）から距離ｘに位置する補間位置Ｐの画素値Ｇは、
Ｇ＝Σ｛ｇ（ｈ）×ｗ（ｈ−ｉ−ｘ）｝
で求められる。但し、ｈはｉ−１〜ｉ＋２（ｍ＝２の場合）の整数であり、補間位置Ｐの片側方向に位置する補間原画素数をｍとした場合、ｈはｉ−ｍ＋１〜ｉ＋ｍの整数となる。
【００３４】
図５は補間位置の近似処理を示す説明図である。図５では、原画像ｐ（ｉ，ｊ），ｐ（ｉ＋１，ｊ），ｐ（ｉ，ｊ＋１）およびｐ（ｉ＋１，ｊ＋１）で形成されるサブマトリクス１Ａを、Ｘ，Ｙ座標軸方向に２n（ｎは２以上の整数）で等分割して２n+1個の正方形の領域１Ｂを生成し、各領域１Ｂの頂点に近似点１Ｃを設けてある。そして、近似範囲１Ｄ内の補間位置を、その中央の近似点へ近似する。例えばｎ＝２とした場合、サブマトリクス１Ａは１６個に等分割され、２１個の近似点１Ｃが設けられる。そして補間位置Ｐは、その補間位置Ｐを囲む近似範囲１Ｄの中央に位置する近似点１Ｃへ近似される。
【００３５】
このような補間位置を示す座標値の小数部に対する近似処理は、図３の補間位置演算部１２の近似部２４，２８で行われる。
すなわち、分離部２３で分離されたＸ座標値２２の小数部「ｘ」が近似部２４で近似処理され、Ｘ係数選択アドレス４Ｘとして係数バッファ１３からの補間係数選択に使用される。また、分離部２７で分離されたＹ座標値２６の小数部「ｙ」が近似部２８で近似処理され、Ｙ係数選択アドレス４Ｙとして係数バッファ１３からの補間係数選択に使用される。
【００３６】
係数バッファ１３では、これらＸ係数選択アドレス４ＸおよびＹ係数選択アドレス４Ｙに基づき、各補間原画素に対応する補間係数を選択する。図６に係数バッファ１３の構成例を示す。
係数バッファ１３には、切替部３１、ルックアップテーブル（ＬＵＴ）３２およびＹ係数ラッチ３３が設けられている。
切替部３１では、Ｘ係数選択アドレス４ＸとＹ係数選択アドレス４Ｙのうちのいずれか一方が選択される。ルックアップテーブル３２には、補間位置と補間原画素との距離に応じた補間係数からなる係数データ９が予め設定されており、切替部３１で選択されたアドレスに基づき各補間原画素に対応する補間係数が選択され読み出される。
【００３７】
切替部３１は、補間位置演算部１２で算出された補間位置のＹ座標値が変化した場合に切り替えられる。
補間位置演算部１２では、まず新たな画像を構成する最上列の画素列についてＸ座標方向に補間位置を順次算出し、所望の画素数だけ算出した場合は、Ｙ座標方向に１画素分移行してＸ座標方向に補間位置を順次算出し、これを最下列まで順次繰り返すことにより、新たな画像を構成する各画素すなわち補間位置を算出する。
したがって、Ｙ座標方向へ１画素分移行する際に、移行先のＹ座標値が必要となるため、切替部３１を切り替えてＹ係数選択アドレス４Ｙをルックアップテーブル３２へ入力し、Ｙ係数を得る。
【００３８】
Ｙ係数ラッチ３３では、切替部３１でＹ係数選択アドレス４Ｙが選択された場合にのみ、ルックアップテーブル３２の出力を記憶保持する。
これにより、切替部３１でＸ係数選択アドレス４Ｘが選択されている状態では、ルックアップテーブル３２からＸ係数６Ｘが出力され、これと並列してＹ係数ラッチ３３からＹ係数６Ｙが出力される。
【００３９】
図７に近似処理を用いた補間係数選択処理を示す。ここでは、切替部３１においてＸ係数選択アドレスが選択された場合の補間係数選択処理が示されているが、Ｙ係数選択アドレスが選択された場合も同様である。
図３で示したように、Ｘ座標値２２およびＹ座標値２６の小数部を用いて近似処理しているため、各近似点１Ｃ（図５参照）に近似される補間位置の範囲は、サブマトリクス１Ａの内側に限定される。
したがって、図１３で述べた従来の近似範囲の設定と比較して、近似範囲と補間原画素とのズレが発生せず、このズレに起因する画素値の誤差が抑止される。これにより補間位置の演算ごとにオフセットを加算（または減算）する必要がなく、余分な演算量を削減できる。
【００４０】
補間関数については、所望の特性を用いればよく、例えば補間位置Ｐを挟む２つの補間原画素ｐ（ｉ），ｐ（ｉ＋１）を用いる直線補間を行う場合、補間位置Ｐに対する補間原画素ｐ（ｉ）の相対的な距離をｘとすれば、ｐ（ｉ），ｐ（ｉ＋１）での補間係数ｗは、次のようになる。
０≦ｄのとき
ｗ＝１−ｄ
ｄ＜０のとき
ｗ＝ｄ＋１
【００４１】
また、拡大・縮小後の画像に対する高域空間周波数の強調・減衰する程度を示す強調係数ａを考慮して、次のような式から補間原画素に対応する補間係数ｗを算出してもよい。なお、ｄは補間位置Ｐから補間原画素までの距離の絶対値、ａは強調係数を示す。
０≦ｄ＜１のとき
ｗ＝（ａ＋２）ｄ3＋（ａ＋３）ｄ2＋１
１≦ｄ＜２のとき
ｗ＝ａｄ3＋５ａｄ2＋８ａｄ−４ａ
【００４２】
このようにして算出した補間係数は実数値であるため、補間演算（積和演算）を精度よく行おうとすると浮動小数点演算を行う必要があり、有効桁数もその係数値に応じた桁数だけ必要となる。
また、補間点の近似点を増やして近似誤差を減らそうとしてもやはり有効桁数を増やす必要がある。これは有効桁数を増やさなければ近似点を増やした意味がなくなってしまうからである。
【００４３】
上記のような不具合を解決する方法として、補間係数の正規化を考える。図８に補間係数の正規化例を示す。
図８に示すように、各補間係数ｗを所定の正規化係数で定数倍して正規化補間係数Ｗへ正規化することにより、小数部の桁数が削減され、浮動小数点演算より処理負担が少ない固定小数点演算を用いることができ、また有効桁数をも削減できる。
したがって、係数バッファ１３には、このようにして予め正規化した係数データ９を補間係数として格納しておけばよい。
【００４４】
図１の補間演算部１４では、このようにして補間位置Ｐに応じて選択された各補間原画素とこれに対応する補間係数とを用いて、コンボルーバー１５において積和演算することにより、補間位置Ｐにおける新たな画素値７が算出される。
このとき、係数バッファ１３からＸ係数６ＸとＹ係数６Ｙとが渡されるため、コンボルーバー１５では、当該補間原画素ごとに、その補間原画素の画素値とこれら対応するＸ係数６ＸとＹ係数６Ｙとを積算し、その和を画素値７として出力する。
【００４５】
ここで、補間係数として正規化係数で定数倍されたものを用いた場合、積和演算で得られる画素値７としては、実際の画素値の定数倍された値が算出される。このとき、補間演算時にこのゲインを調整する方法も考えられるが、毎回、補間係数の合計とそれによる除算が必要となってしまう。
そこで、図８のセットＡ〜Ｄで示してある２n個おきに存在する補間係数、すなわち１回の補間演算で用いる複数の補間係数について、各補間係数の合計が正規化係数と同一となるように予め調整しておけばよい。
このような正規化された補間係数を使用することによって、補間演算を極めて簡素化することができる。すなわち各補間原画素値、および補間原画素と補間点の相対位置によって決まる各補間係数との積和演算の結果を、正規化係数で除算すればよい。
【００４６】
本実施の形態では、補間係数を正規化する場合、１回の補間演算で用いられる各補間係数の係数値の合計が２k（ｋは正整数）となるように正規化しておく。これにより、係数が大きくなって小数部が減るため、固定小数点の演算器で構成できコンボルーバー１５も大幅に簡素化できる。さらに、各補間係数が２kという正規化係数を用いて予め正規化されているので、ビットシフタ１６における除算では、どの係数が選択されるかに関係なく、すべて同一のシフト演算で実行できる。
このとき、画素値７を除算する演算処理としては、画素値７の各ビットを下位ビット方向へｋビットだけシフトする演算機能すなわちビットシフタ１６で実現でき、浮動小数点演算を行う場合と比較して極めて短い時間で除算できる。さらに、常に同じ正規化係数の使用を前提とする装置でれば配線のみで構成できる。
【００４７】
このように、補間位置を近似点へ近似し、さらには補間係数をその合計が２kとなるように正規化しているため、高次の補間による２次元画像の拡大・縮小を行ったり、それに伴って補間演算に使用する原画素数を増やしても、演算を複雑にしたり回路規模を増大させることなく、高速で処理をに行うことができる。
これにより、高次の補間が容易に実行できるため、例えば単純間引きによる縮小時のようにエイリアスがでることもない。また、拡大時にも高域の空間周波数を強調することも容易で、単純補間による拡大時のようにぼけた画像になることもない。
さらに、原画素に囲まれた範囲内では同じ原画素を補間演算に使用するようにしているので、従来（図１３参照）と比較して、近似点の算出は単純に補間位置の小数部を用いることができ容易である。また、ハードウェアとの親和性がよく、回路規模を削減できる。
【００４８】
補間係数の正規化については、小数部の桁数を削減するにとどまらず、図８に示すように、正規化補間係数の各係数値を整数化した整数化補間係数Ｗｉを用いてもよい。この整数化については、整数への丸め処理（例えば、四捨五入など）が行われる。
この整数への丸め処理に起因して、整数化後の全補間係数の合計が２kとならない場合、そのままでは補間後の画素値にゲインがかかってしまい、画素位置によって補間後の画像の明るさが変わってしまう（例えば、一様な画像がまだらになってしまう）。
【００４９】
このため、整数化前の補間係数のいずれかを選択して増減することによりその整数化後の補間係数を「１」だけ増減し、整数化後の全補間係数の合計が２kとなるまでいずれかの補間係数を順次選択して増減する。
増減する補間係数としては、その増減率が最も小さい補間係数から順に選択する。これにより整数化前後の補間係数間での誤差を最小限に抑えることができる。
【００５０】
このような整数化処理では多少の誤差は生じるが、結局は演算時に使用する桁数の問題といえる。係数値として必要な桁数が同じであれば、このような固定小数点演算の方が浮動小数点演算に比較して、ハードウェアによる場合でもソフトウェアによる演算でもずっと容易となる。
演算処理装置（ＣＰＵ）においては、補間係数の桁数がビット数とみなされるので、上記の正規化さらには整数化による固定小数点化と相まって、汎用の演算処理装置を使用したソフトウェアによる演算においても高速化が実現可能であるし、また、最適化した演算装置（ハードウェア）を設計する上ではその回路規模を大幅に削減できる。
【００５１】
整数化補間係数については、図８に示したように、補間位置を中心として対称となるように構成してもよい。すなわち、補間位置（近似点）から片側方向の補間係数については、補間位置と各補間係数との位置関係に応じて、係数バッファ１３に格納されている片側の補間係数から選択し、片側方向とは反対方向の補間係数については、補間位置と各補間係数との位置関係を符号反転した位置関係に応じて、係数バッファに格納されている補間係数から選択すればよい。
これにより、補間位置から片側の補間係数から反対側の補間係数を選択できることから、ルックアップテーブルに格納する補間係数は約半分まで削減することができ、ルックアップテーブルで必要な記憶容量を大幅に削減できる。
【００５２】
また、図６に示したように、ＸおよびＹ座標軸方向について同一のルックアップテーブル３２を用いて、２次元の近似点での補間係数をＸ，Ｙ座標軸方向ごとにテーブル参照して求めたＸ係数およびＹ係数を、コンボルーバー１５により乗算して求めるようにしたので、２次元の近似点についてすべての補間係数を格納しておく場合に比べて、ルックアップテーブルの大きさを大幅に削減することができる。
これにより近似点をより細かく、補間に用いる原画素の数を増やして精度の向上を図ってもルックアップテーブルに格納するデータの数を大幅に増やすことなく演算することができる。
【００５３】
補間位置演算部１２において、例えば補間位置をＸ座標軸方向に沿ってＸ座標値を連続して算出していく場合、その１列分が終わるまで他方のＹ座標値は同じ係数値となる。したがって、Ｘ座標値が変化するごとにＹ座標値を毎回算出してテーブル参照する必要はなく、図６に示したように、Ｙ係数ラッチ３３でＹ係数値を保持しておけば、Ｘ，Ｙ座標方向で同じ補間係数を共用しても演算速度への影響はほとんどない。
【００５４】
係数バッファ１３については、図９に示すように、Ｘ，Ｙ係数ごとに別の係数データを使ってもよい。図９に係数バッファの他の構成例を示す。
この係数バッファ１３には、Ｘ軸方向におけるＸ係数データ９Ｘを記憶するＸ係数バッファ３５と、Ｙ軸方向におけるＹ係数データ９Ｙを記憶するＹ係数バッファ３６とが設けられている。さらに、Ｘ係数バッファ３５には、補間位置演算部１２からのＸ係数選択アドレス４Ｘが入力されてＸ係数６Ｘが出力され、Ｙ係数バッファ３６には、補間位置演算部１２からのＹ係数選択アドレス４Ｙが入力されてＹ係数６Ｙが出力される。
このように、係数バッファ１３内にＸ，Ｙ係数バッファを独立して設けることにより、原画像１のアスペクト比を変えたり表示系の特性に合わせた画素数変換を行うことが可能となる。
【００５５】
また、図８に示したように、補間位置Ｐが原画素位置と一致した場合は、他の補間原画素に対応する補間係数を「０（ゼロ）」となる補間係数を用いる。これにより、原画素位置付近に補間位置Ｐがある場合、例えば補間位置Ｐが同一原画素を挟んで存在し、これら２つの補間位置における補間演算で用いる２ｍ個の補間原画素の組が異なる場合でも、両補間位置での新たな画素値に差が生じることがなくなり、新たな画像上における画素値の不連続性は現れない。
さらに、補間係数の数も、上記より両端の補間係数の係数値は必ず「０」となり、これを係数として格納しないようにすれば、補間係数テーブルのメモリサイズをさらに小さくすることができる。
【００５６】
係数データ９については、原画像や所望する拡大・縮小後の画像に合わせて書き換えられるようにしてもよい。
さらに、図９に示したようにＸ，Ｙ座標軸方向ごとに独立して係数バッファを設ける場合は、Ｘ，Ｙ座標方向について別々の特性を与えることも可能である。すなわち、人間の目の特性上、分解能の高い水平方向(Ｘ座標軸方向)については、高い空間周波数部分がより強調される特性の補間係数を利用するといったことが可能である。
【００５７】
また前述の図６では、係数バッファ１３として、Ｘ，Ｙ座標軸方向でルックアップテーブル３２を兼用するようにした場合について説明したが、図１０に示すように、補間位置演算部１２でもＸ，Ｙ座標軸方向で補間位置演算部２１ほかを兼用できる。図１０では、切替部２０を補間位置演算部２１の前段に設けてＸ倍率２ＸおよびＹ倍率２Ｙのいずれか一方を選択する。Ｘ倍率２Ｘを選択した場合は、前述（図３参照）と同様にして、補間演算部２１でＸ座標軸方向での補間位置が算出され、その整数部が分離部２３から原画素選択アドレス３Ｘとして出力される。また小数部は近似部２４で近似されＸ座標軸方向でのアドレスを示す係数選択アドレス４ＸＹが出力される。
【００５８】
一方、Ｙ座標方向へ１画素分移行する際には、移行先のＹ座標値が必要となるため、切替部２０を切り替えてＹ倍率２Ｙを選択する。これにより、補間演算部２１でＹ座標軸方向での補間位置が算出され、分離部２３で分離された整数部がＹアドレスラッチ２９でラッチされて、原画素選択アドレス３Ｙとして出力される。また小数部は近似部２４で近似されＹ座標軸方向でのアドレスを示す係数選択アドレス４ＸＹが出力される。これにより、補間位置演算部１２において、Ｘ，Ｙ座標軸方向で補間位置演算部２１ほかを兼用でき、回路規模を削減できる。
図１０の補間位置演算部１２では、同一の信号ラインを用いてＸ，Ｙ座標軸方向における係数選択アドレス４ＸＹを切り替え出力している。したがって、係数バッファ１３では、前述した図６のうち切替部３１が不要となり、図１１に示すような構成となり、回路規模を削減できる。
【００５９】
また、図１２のように、例えば補間位置のＹ座標値が、そのＸ座標値をパラメータとする関数から算出できるような構成にすれば、拡大・縮小に加えて、画像を回転させることも可能である。図１２に補間位置演算部の他の構成例を示す。
ここでは、Ｙ補間位置算出部２５において、Ｘ補間位置算出部２１で算出された補間位置のＸ座標値２２と、予め設定されるＹ位置関数２Ｆとを用いて、
Ｙ．ｙ＝ｆ（Ｘ．ｘ）
から、補間位置のＹ座標値２６を算出している。
【００６０】
これによれば、このような画像の変換を行っても、装置の構成上はＹ補間位置算出部２５での演算がほんの少し複雑になるだけであり、多少複雑な関数を使えばさまざまな画像変形を行うこともできる。例えば、出力画像の１ライン(あるいは数ライン)ごとに関数を書き換えるなどすれば、レンズなどの光学系のひずみを補正することなども可能となる。
また、倍率を画像処理途中で切り替えることももちろん可能である。内部に複数の倍率を保管し、切り替えるようにしてもよい。このような処理を組み合わせれば、画像の一部分だけを拡大したような出力画像を得ることも可能である。
【００６１】
【発明の効果】
以上説明したように、本発明は、隣接する２×２個の原画素からなる正方形のサブマトリクスをＸおよびＹ座標軸方向にそれぞれ複数個に等分割して小さな正方形の領域を生成するとともに、これら領域の各頂点に近似点を配置し、任意の近似点を中心として所定範囲内に位置する各近似点での離散した補間係数を所定の補間関数に基づきそれぞれ導出し、さらにこれら補間係数のうち１回の補間演算に用いる各補間係数の係数値の合計が２k（ｋは正整数）となるように正規化した補間係数をそれぞれ求めて予め係数バッファに格納しておき、入力された原画像を一時的に原画像バッファに記憶し、原画像に対するＸおよびＹ座標軸方向での拡大・縮小率を示す倍率に応じて、新たな画像を構成する各画素の新たな画素位置を算出し、その新たな画素位置が属するサブマトリクスに配置されている各近似点のうち、新たな画素位置に最も近い近似点をその新たな画素位置の近似点として選択し、選択した近似点とこの近似点から所定範囲内に位置する各補間原画素との位置関係に基づいて、これら補間原画素に対応する補間係数を係数バッファから読み出し、原画像バッファから読み出した各補間原画素の画素値と係数バッファから読み出した各補間係数とをそれぞれ積和演算して補間演算を行うことにより、近似点における画素値を算出し、算出した画素値を２kで除算することにより、新たな画素位置における画素値として出力するようにしたものである。
したがって、従来のように、補間位置ごとに補間係数を演算することなく、また高い精度を要求しても回路規模の増大を伴わずに、原画像に対する拡大・縮小などの画像処理を高速・高画質で行うことができる。また、補間位置を近似点へ近似する場合、補間位置を囲む原画素と補間演算に用いる補間原画素とにずれがなく、そのずれに起因して発生する画素値の誤差を抑止でき、高精度な補間処理を実現できる。
【図面の簡単な説明】
【図１】  本発明の一実施の形態にかかる画像処理装置を示すブロック図である。
【図２】  拡大処理を示す説明図である。
【図３】  補間位置演算部の構成例である。
【図４】  補間係数選択処理の一例である。
【図５】  補間位置の近似処理を示す説明図である。
【図６】  係数バッファの構成例である。
【図７】  近似処理を用いた補間係数選択処理例である。
【図８】  補間係数の正規化例である。
【図９】  係数バッファの他の構成例である。
【図１０】  補間位置演算部の他の構成例である。
【図１１】  係数バッファの他の構成例である。
【図１２】  補間位置演算部の他の構成例である。
【図１３】  従来の画像処理装置における近似処理例である。
【符号の説明】
１…原画像、２…倍率、３…整数部（補間位置座標値）、４…小数部（補間位置座標値）、５…補間原画素、６…補間係数、７…画素値、８…新たな画像、９…係数データ、１０…画像処理装置、１１…原画像バッファ、１２…補間位置演算部、１３…係数バッファ、１４…補間演算部、１５…コンボルーバー、１６…ビットシフタ、Ｐ…補間位置、ｐ…原画素、ｗ…補間係数。
【図１】
0004231620.tif 000002
【図２】
0004231620.tif 000003
【図３】
0004231620.tif 000004
【図４】
0004231620.tif 000005
【図５】
0004231620.tif 000006
【図６】
0004231620.tif 000007
【図７】
0004231620.tif 000008
【図８】
0004231620.tif 000009
【図９】
0004231620.tif 000010
【図１０】
0004231620.tif 000011
【図１１】
0004231620.tif 000012
【図１２】
0004231620.tif 000013
【図１３】
0004231620.tif 000014