(58)【調査した分野】(Int.Cl.,DB名)
前記複数の画素は、前記補間位置と同一の直線上に並んでおり、該画素間の距離を1とし、前記複数の画素の1つから前記補間位置までの距離をtとすると、前記パラメータはt・(1−t)と表されることを特徴とする請求項2記載の画像処理装置。
【背景技術】
【0002】
撮像装置は、被写体からの光を光学レンズを用いてイメージセンサ上に結像させ、イメージセンサにて電気信号に変換する。しかし、レンズの設計時の許容精度や製造時のばらつき精度といった要因により、得られた画像の周辺部において幾何学的な歪み(以下、幾何歪みと省略する)発生しやすい。そして、撮像画素数が数千万画素へ増加することにより、この歪みが無視できないものになってきている。
【0003】
一方、撮像した画像を処理・編集して観賞する時に、テレビなどのディスプレイに表示する際には特に問題にならないが、プロジェクタでスクリーンへ投影する際には、次の要因により、またもや幾何学的な歪みが発生することがある。
【0004】
ディスプレイとスクリーンとが厳密に正対していないと、長方形が台形や不等辺四角形に変形されて投影されたりする。また、ディスプレイの光学系には、取り付け時の機械精度や、前述の光学レンズに関する精度があり、該精度に起因する画像歪みが発生する。このように、撮像時や投射時における種々の要因で、画像に様々な幾何歪みが重畳していく。
【0005】
画像はディスプレイで見る場合とプロジェクタで見る場合の両方が想定されるため、撮像時の幾何歪みは撮像時に補正し、プロジェクタ投影時の幾何歪みは投影時に補正する必要がある。各々の幾何歪みは、デジタル的な画像処理によって軽減することが可能である。
【0006】
幾何歪みの補正に必要なデータやパラメータの一部は、設計段階のシミュレーションなどから得ることが出来るが、一般的にはキャリブレーションと称する工程から得る。キャリブレーションには様々な手法があり、一つの技術領域となっている。例えば、プロジェクタ投影時の台形歪み補正は、オリジナルの矩形画像を補正無しで投影した時の歪んだ四角形の4つの頂点(四隅)座標を獲得し、該情報から、補正用のホモグラフィ行列を計算することによって、幾何補正に必要なパラメータを得る。
【0007】
本明細書は、幾何歪み補正に必要なデータやパラメータが、キャリブレーション等によって、既に得られていることを前提とする。つまり、先に説明したようにキャリブレーションには様々な手法があり、そのいずれであるかについては問わない。
【0008】
図1に示す幾何歪み補正処理のブロック図において、補正に必要なデータやパラメータは、キャリブレーションにより既に得られており、変換パラメータ保持部101に格納されているものとする。
【0009】
キャリブレーションがどのような手法であるにせよ、それによる幾何歪み補正は2つの主要な要素で構成される。1つは画像を幾何学的に変形するための座標変換に係る構成要素、もう1つは該構成で発生した小数点以下の座標位置の画素値を補間によって計算するための、座標補間に係る構成要素である。各々は
図1の座標変換部103と画素補間部112にて行われる。そして、幾何歪みの補正は
図1のブロック図において概略以下のように処理される。
(A1)画像を規則的にスキャンした際の整数座標102を座標変換部103にて変換し、変換座標104を計算する。
(A2)該変換座標に対する補間画素値を画素補間部112にて生成する。
(A3)生成した補間画素値を、前記整数座標102の画素値として画像メモリ113へ格納する。
【0010】
変換座標104は一般的に小数部を有する座標データになるため、周辺の整数座標の画素値を画像メモリ111から読み出して参照し補間処理で生成する必要がある。
【0011】
代表的な補間方法として、ニアレストネイバー、バイリニア補間、バイキュービック補間などがある。これらを多項式補間の次数という観点で見ると各々、0次補間、1次補間、3次補間に分類される。次数が高いほど補間精度がよくなり画質が向上する。
【0012】
3次補間に分類される他の補間方法として、キュービック・スプライン補間と称する方法があるが、これは名称が示すようにスプライン関数をベースとした補間法である。補間処理時に参照する画素数は、次数に1を加えた値を二乗した、1画素、4画素、16画素となり、概算で該参照画素数に比例した演算量・回路規模となる。
【0013】
実際に使われる補間処理としては、バイリニア補間またはバイキュービック補間がほとんどであり、画質と回路規模のどちらを優先するかによって、どちらかを選択するケースが多い。すなわち、画質的にはバイキュービック補間を使いたいが、回路規模の制約からバイリニア補間するというケースが少なくない。
【0014】
特許文献1は、1つの補間回路で、バイリニア補間と、バイキュービック補間との両方の機能を実現することで、回路規模の削減を図っているが、バイキュービック補間の回路規模そのものが小さくなるわけではない。
【0015】
また、特許文献2は、3次補間の1つであるキュービック・スプライン補間を、線形補間演算器を3段縦続に接続した構成で実現できることを示している。しかし、該キュービック・スプライン補間は、参照する4×4画素の重み付け係数を調整する機能が無く、補間回路が使われているシステムに合せて画質を調整することが出来ない。
【0016】
バイキュービック補間には、画質調整が可能なパラメータが存在し、システムに適した画作りが可能である。先行技術のキュービック・スプライン補間の構成法は、バイキュービック補間へ適用することが出来ない。
【発明を実施するための形態】
【0023】
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。本実施形態では、小数点以下の値をとる座標位置の画素値を、その周辺の2N個の整数座標の画素値から補間計算する画素補間回路に適用した例を説明する。
【0024】
具体的には、画素補間回路に、複数の画素のうち1対の画素の画素値から線形補間によって補間位置の補間画素値を生成する第1の線形補間演算器を設ける。そして、複数の画素の画素値間の複数の差分値のうち、それぞれが1対の差分値から線形補間することで複数の補正値を生成する複数の第2の線形補間演算器を設ける。更に、補間画素値及び複数の補正値に基づいて補間位置の画素値を生成する演算器を設けるものである。
【0025】
[第1実施形態]
本第1実施形態は、周辺n×n画素の画素値を参照して補間画素を生成する際の補間演算に適用されるものでる。具体的には、垂直または水平軸方向の同一の直線上のn画素単位でn回行う1段目のキュービック補間と、該n個の補間結果を参照して行う2段目のキュービック補間に適用されるものである。
【0026】
一般的な4×4画素を参照するバイキュービック補間では、式(1)に基づいて小数点以下の座標位置に対し、参照する画素への荷重係数を各軸方向に4つ、合計8つの係数を計算する。
【数1】
ここで、パラメータsは、補間画素の座標から周辺参照画素までの符号付き距離を表している。座標が増加する方向は+の符号で、減少する方向は−の符号が付く。また、パラメータaは、補間特性を調整するもので、本文中では「第1の画質調整パラメータ」と呼んでいる。
【0027】
このように計算すると、|s|
2や|s|
3の計算に計16回の乗算が必要で、パラメータaに関する乗算も20回あり、8つの係数を計算するだけで合計36回の乗算が必要である。但し、パラメータaのビット数は一般的に少ないため、この乗算の回路規模は小さい。
【0028】
該係数を参照画素へ乗算する時、各軸方向に分けて2段階で行う場合、1段階目の係数乗算に16回、2段階目の係数乗算に4回で計20回の乗算が必要になる。
【0029】
トータルで、回路規模の大きな乗算が16+20=36回、回路規模の小さな乗算が20回必要である。
【0030】
本実施形態は、式(1)に基づくキュービック補間と同等の補間画素を、上記説明とは異なる方法にて計算することにより、乗算回数を減らし回路規模を小さくするものである。
【0031】
本実施形態のキュービック補間演算では、変換座標(x,y)から整数部を除いた小数部を1次パラメータ(tx,ty)とおき、該パラメータに対して、tx・(1−tx)とty・(1−ty)という2次多項式に基づく2次多項式パラメータを計算する。
【0032】
計算するパラメータは該2つのみであり、それ以外の主要な演算は前記1次パラメータtxまたはtyに基づく線形補間の並列演算である。
【0033】
該2次パラメータの計算と、1次パラメータに基づく線形補間の並列演算は、この明細書に記述される全実施形態に共通する演算である。また、以下に説明する各実施形態において、2次パラメータは計算済みのパラメータとして利用し、その生成方法に関しては省略する。
【0034】
最初である第1の実施形態では、1次パラメータに基づく線形補間の並列演算により、3つの成分信号を生成する。この第1の実施形態の構成を
図2に示す。
【0035】
本第1の実施形態で参照する4画素や後述する他の実施形態で参照する6画素及び8画素の並び順と、補間位置を表す1次パラメータt(補間位置情報)の関係を
図11に示す。ここで画素間の単位距離は“1”とする。よって、1次パラメータtは0≦t≦1の関係にあると言える。全実施形態において補間位置はP
3とP
4の間に定めており、該補間位置に対応する画素値を補間演算により生成する。一般的には、連続して並んだ2N個の画素におけるN番目の画素とN+1番目の画素との間の補間区間内の指定された位置における画素値を補間する。
【0036】
図2に示すキュービック補間演算器の演算内容をまず式で表現する。1次パラメータ“t”と、2入力{P
i,P
j}を入力とする線形補間演算器の演算を式(2)で表した時、
図2に示すキュービック補間演算器の出力P
outは式(3)のように表現できる。
【数2】
【数3】
【0037】
ここで参照符号201、202、203は、1次パラメータtに基づいて、1画素離れた2つの画素間(入力信号間)の線形補間演算を行う線形補間演算器であり、各々で1つの成分を生成する。1次パラメータtには、txまたはtyが入力される。
【0038】
線形補間演算器201は、入力P
3、P
4に対して、(1−t)・P
3+t・P
4を計算して出力する。これは、P
3とP
4を結ぶ直線補間である。実際の演算は乗算が1回で済むよう、線形補間演算器201は、P
3+t・(P
4−P
3)という計算式に基づき演算する。
【0039】
線形補間演算器202,203も図示した入力信号に対し、線形補間演算器201と同様、乗算回数が1回で済むように計算を行う。なお、図示では、「P
3-P
5」等の、線形補間演算器202、203への入力信号を生成するための減算器は省略している点に注意されたい。
【0040】
補間処理前は、整数座標にのみ画素値が定義された離散的な状態であるとすると、線形補間演算器201は、離散値P
3とP
4を直線的につなぐ成分を生成する。すなわち、線形補間演算器201は離散的な画素値を連続化する成分を生成すると解釈できる。それに対して、線形補間演算器202や203は次のように解釈できる。
【0041】
隣接する画素値を次々と直線的につないでいくと、その波形はデコボコしたものになり、波形の一次微分が整数座標位置で不連続な波形になる。その一次微分を連続化する成分が、線形補間演算器202で第2の成分として生成される。
【0042】
隣接画素間距離を1とすると、P
3からP
4方向を見た時の第1成分波形の傾きは「P
4−P
3」であり、その傾きを打消す信号は「−(P
4−P
3)」である。同様に、P
4からP
3方向を見た時の該波形の傾きは「P
3−P
4」であり、その傾きを打消す信号は「−(P
3−P
4)」である。
【0043】
P
3における傾き打消し信号とP
4における傾き打消し信号を入力とし、それを1次パラメータtに基づいて直線的に切換えるのが線形補間演算器202である。
【0044】
該切換えた信号を直接、線形補間演算器201の出力に加えると、整数座標における値P
3,P
4が変わってしまうため、t=0,1において、第2の成分が第1の成分に影響を与えないようにする必要がある。これを以下では、実施形態における「境界条件」と表現する。該境界条件を満たすには、第2の成分に前記2次パラメータを乗算するのが必要十分で合理的な方法である。
図1における参照符号231は該乗算を行う乗算器である。
【0045】
さて、パラメータtに基づく線形補間信号にtに関する2次パラメータを乗算すると、tの3次多項式で表現された信号となる。この特徴は、線形補間演算器203で生成される信号にも共通して言える。よって、線形補間演算器203で生成した信号にも2次パラメータを乗算するよう、加算器221にて第2の成分と第3の成分とを足し合わせ、その後に乗算器231で2次パラメータを乗算する構成にした。
【0046】
ところで、一次微分を連続化しても二次微分はまだ不連続であり、一次微分の連続化の次は二次微分の連続化が期待される。しかし、4画素を参照するだけで二次微分を連続化する成分を生成することは困難である。だが、二次微分の不連続性を緩和することは可能である。線形補間演算器203は二次微分の不連続性を緩和する第3の成分を生成するものである。
【0047】
線形補間演算器203における入力信号の特徴は、P
4を基点に左右へ1画素ずつ離れたP
3とP
5の差分信号と、P
3を基点に右左へ1画素ずつ離れたP
4とP
2の差分信号である。
【0048】
第1の成分と第2の成分の和は、必ず補間区間の両端の画素値P
3とP
4の範囲内に収まる性質があるが、第3の成分を加えると該範囲を超えることがある。すなわち、第3の成分は、該成分の振幅を調整することにより階調差を強調したり、その逆の効果を出すことができ、画質を調整することが出来る。該第3成分の振幅を調整するために乗算器211にて前記第1の画質調整パラメータKaを乗算する。このパラメータの値は、8/16〜31/16の範囲で十分であり、5ビット程度の係数の乗算器でよい。
【0049】
本第1の実施形態のキュービック補間演算が、式(1)に基づくキュービック補間と数学的に等価になることは、Ka=−aと置いて式を変形すれば確認できる。
【0050】
以上に説明した4画素参照のキュービック補間演算器を5つ使って、4行×4列の16画素(P
00〜P
33)をバイキュービック補間処理する構成を
図3に示す。ここで画素P
ijの座標を(x
i,y
j)、補間画素の座標を(x,y)とする。
図3に示す構成は、4列の画素データの各列を4つのキュービック補間演算器301〜304で並列に処理する。そして、得られた4つの補間結果をキュービック補間演算器305にて行方向にキュービック補間して、座標(x,y)の補間結果を得る構成である。並列処理する4つのキュービック補間演算器301〜304には、それぞれ同じパラメータ(図示のty、ty・(1−ty)、Ka)が供給される。該構成でパイプライン処理すれば、1サイクル毎にバイキュービック補間演算した画素を生成することが出来る。また、4行×4列の16画素の各行を並列に処理し、補間画素と同じ水平位置である4つの座標位置の補間結果を得て、得られた結果を列方向に補間するようにしてもよい。
【0051】
[第2の実施形態]
基本周期のsinc関数(補間関数ともいう)に超周期のsinc関数を窓関数として掛けた補間フィルタがある。Lanczos補間と言われているフィルタである。キュービック補間は、このLanczos補間の近似と言われている。
【0052】
Lanczosフィルタで拡大補間処理する場合、一軸方向の参照画素数を2nとすると、Lanczos−nのフィルタを用いる。一般的に使われるのは6画素を参照するLanczos−3である。それに対しキュービック補間は4画素参照が基本である。
【0053】
キュービック補間の参照画素数を6画素へ拡張するための前記式(1)の荷重係数の計算に対応する式が論文には発表されており、原理的には6画素へ拡張することは可能である。しかしながら、具体的な回路構成を示した資料は今のところ見当たらない。4画素参照に比べ、6つの荷重係数の計算がさらに複雑になるため、あまり実用的ではないと考えられる。
【0054】
ところが、本実施形態は、一軸方向のキュービック補間の参照画素数を6画素、8画素へと容易に拡張することが出来る。6画素参照のキュービック補間の回路構成を
図4に、8画素参照のキュービック補間の回路構成を
図5に示す。
【0055】
本実施形態による拡張の妥当性は、キュービック補間がLanczos補間の近似であるということを根拠として、本実施形態のキュービック補間がLanczos補間にどれだけ近い特性を実現できているかという点で判断できる。
【0056】
まずは、拡張の考え方を説明し、その後に、Lanczos補間の特性にどれだけ近いかを示す。拡張にあたっての3つの基本的な考え方を(1)乃至(3)に示す。
(1)新たな信号成分は、前記境界条件を満たすように前記2次パラメータを乗算する。
(2)新たな信号成分は、3次多項式となるよう初段に線形補間演算を行う。
(3)第3の線形補間演算器の入力信号の形態を踏襲し、P
3及びP
4を基点に左右に等距離だけ離れた2画素間の差分信号を、上記線形補間演算へ入力する。
【0057】
図4に示す6画素参照のキュービック補間演算器では、並列に動作する第4の線形補間演算器204を設け、該演算器へ入力する2つの画素間差分信号を次のように計算する。
【0058】
1つは、P
4画素を基点に左右へ2画素分離れた2つの画素間の差分「P
2−P
6」であり、もう1つは、P
3画素を基点に右左へ2画素分離れた2つの画素間の差分「P
5−P
1」である。これらを第4の線形補間演算器204に入力して線形補間演算し、該出力に第2の画質調整パラメータKbを乗算して、加算器222にて他の信号と合算した後に前記2次パラメータを乗算する。
【0059】
また、
図5に示す8画素参照のキュービック補間演算器では、
図4の6画素参照のキュービック補間演算器へ、さらに並列に動作する第5の線形補間演算器205を設け、該線形補間演算器205へ入力する2つの画素間差分信号を次のように計算する。
【0060】
1つは、P
4画素を基点に左右へ3画素分離れた2つの画素間の差分「P
1−P
7」であり、もう1つは、P
3画素を基点に右左へ3画素分離れた2つの画素間の差分「P
6−P
0」である。これらを第5の線形補間演算器205に入力して線形補間演算し、該出力に第3の画質調整パラメータKcを乗算して、加算器223にて他の信号と合算した後に前記2次パラメータを乗算する。同様に、基点から左右に同じ画素数だけ離れた、2,4,…,2・(N−1)画素だけ離れた画素の画素値間の差分を用いて、参照する画素を更に拡張することも容易にできる。
【0061】
以上で説明した
図4及び
図5に示すキュービック補間演算器の各々の出力P
outを数式で表現すると、式(4)、式(5)のようになる。
【数4】
【数5】
【0062】
図4に示す6画素参照のキュービック補間において、2つの画質調整パラメータを、Ka=14/16,Kb=−3/16に設定した時のインパルス応答を、Lanczos−3と比較したのが
図6に示す波形である。
【0063】
また、
図5に示す8画素参照のキュービック補間において、3つの画質調整パラメータを、Ka=31/32,Kb=−12/32,Kc=3/32に設定した時のインパルス応答を、Lanczos−4と比較したのが
図7に示す波形である。
【0064】
画質調整パラメータ群を適切に設定すると、Lanczos−3、Lanczos−4に近い補間フィルタ特性を実現できることが分かる。さらに、実際の使用にあたっては、該パラメータ値を基にして、画質を確認しながらパラメータを調整してシステムに最適化することが可能である。
【0065】
Lanczos補間フィルタは参照画素数に対応してフィルタ係数が一意に決まり、画質調整を行うことが出来ないのに対して、本第2の実施形態のキュービック補間なら容易に画質調整が可能であり、これは大きな利点である。
【0066】
[第3の実施形態]
上記第1の実施形態は、画素補間演算の基本的な考え方を直接回路化したものであるため、最も分かり易い構成になっている。
【0067】
第3の実施形態は、第1の実施形態の計算式を少し変形して、第1の実施形態と等価な演算を、より少ない乗算器で実現するものである。
【0068】
具体的には、第1の線形補間演算器201の内部演算結果を利用することによって、第2の線形補間演算器202を使わずに、第2の成分を生成する。具体的な構成を
図8に示す。
【0069】
図2における第2の線形補間演算器202は、「−(P
4−P
3)」と「−(P
3−P
4)」をパラメータtに基づいて線形補間するもので、その演算結果は、「(2t−1)・(P
4−P
3)」と表せる。
【0070】
第1実施形態にて、第1の線形補間演算器201の実際の演算は、乗算が1回で済むよう、「t・(P
4−P
3)+P
3」という計算式で演算する、と述べた。
【0071】
該演算の過程で、第1の線形補間演算器201が「(P
4−P
3)」と「t・(P
4−P
3)」を計算するのは明らかであり、この内部演算の信号を利用することができる。シフト演算器301により、後者「t・(P
4−P
3)」を2倍、すなわち左へ1ビットシフトして、減算器302により「(P
4−P
3)」を減算すれば、「(2t−1)・(P
4−P
3)」を得ることができる。よって、乗算器を有する第2の線形補間演算器を使わなくても済む。
【0072】
本第3の実施形態で示した構成は、第2の実施形態や次に説明する第4の実施形態にも適用できる。
【0073】
[第4の実施形態]
前記第1、第2の実施形態における、第3の線形補間演算器203の入力は、2画素離れた画素間の差分値であり、第4の線形補間演算器204の入力は、4画素離れた画素間の差分値であった。これらは、いずれも画素間差分、すなわち一次微分をとる2画素の距離を変えただけであると言える。
【0074】
このような構成は、n画素参照のキュービック補間演算器をn+2画素参照のキュービック補間演算器に拡張する際に、その構成上の差分を最小にするのに適している。しかし、各線形補間演算器の入力は、第1、第2の実施形態の形態に限定されるものではない。
【0075】
例えば、第2の線形補間演算器の入力を参照画素値の一次微分信号と解釈し、第3の線形補間演算器へ参照画素値の二次微分信号を入力し、第4の線形補間演算器へ参照画素値の三次微分信号を入力することも可能である。そうすると、各線形補間演算器で生成する信号成分の意味付けも変わってくる。
【0076】
具体的には、
図9に示すように第3の線形補間演算器203に、二次微分信号として、(P
4−P
5)−(P
3−P
4)=2・P
4−P
3−P
5と、(P
3−P
2)−(P
4−P
3)=2・P
3−P
4−P
2とを入力する。
【0077】
そして、第4の線形補間演算器204に、三次微分信号として、(2・P
5−P
6−P
4)−(2・P
3−P
4−P
2)=P
2−2・(P
3−P
5)−P
6と、(2・P
2−P
1−P
3)−(2・P
4−P
3−P
5)=P
5−2・(P
4−P
2)−P
1とを入力する。
【0078】
この場合、各成分の振幅を調整するパラメータは、第1、第2の実施形態とは異なる別のパラメータR
1,R
2,R
3を乗算する。具体的な値として、R
1=0,R
2=8/16,R
3=−3/16に設定すると
図6に示すインパルス応答特性、すなわちLanczos−3に近い特性になる。
【0079】
[第5の実施形態]
図4の構成では、前記二次パラメータを乗算する前の線形補間演算器は3つあるが、これらは1つにまとめることができる。
【0080】
パラメータtに基づく線形補間演算、画質調整パラメータの乗算、加算処理は、どれも線形演算であるため、演算順序を交換することができる。そこで、線形補間演算を加算処理の後に移動し、処理順序を、画質調整パラメータの乗算、加算処理、線形補間演算に変更する。
【0081】
これにより、複数の線形補間演算を1つにまとめることができ、
図10に示す構成にすることが可能である。
図10において、演算器501と502は、入力信号に重み付けをして加算する重み付け加算器であり、演算器503が1つにまとめた線形補間演算器である。それ以外は、第2の実施形態の
図4と同じである。
【0082】
入力信号に対する重み付けは、第2の実施形態の
図4における画質調整パラメータKa,Kbを反映したもので、
図10の構成は、
図4の構成と機能的に等価である。
【0083】
また、
図5に示す8画素参照キュービック補間にも、本第5の実施形態の手法を適用することができる。すなわち、重み付け加算器501と502を、8画素入力に拡張し、画質調整パラメータKcを反映した重み付けを行えばよい。
【0084】
[第6の実施形態]
これまでに説明した3つのキュービック補間式、式(3)〜(5)における、画素間の差分信号の線形補間演算は、差分演算と線形補間演算の順序を入れ替えることで、画素間の線形補間信号の差分演算に置き換えることができる。この時、線形補間は画素の添え字の和が7となる2画素をペアとした画素間で行うようにする。これは補間区間(実施形態では画素P3とP4の間)を中心に対称位置関係にある2画素間で線形補間演算を行うためである。
【0085】
上記の演算順序の入れ替えを、式(3)、式(4)、式(5)に適用すると、これらは次式(6)、式(7)、式(8)のように変形できる。
【数6】
【数7】
【数8】
【0086】
式(6)と(7)は、式(8)の一部を切り出した形になっている。そこで、代表して式(8)の演算回路の構成を
図12に示す。同図において、参照符号601〜607は線形補間演算器、参照符号611〜617は減算器であり、それ以外の構成要素は、第2の実施形態の
図5における同一参照符号の構成要素と同じである。
【0087】
式(8)をそのまま単純に演算回路化すると、線形補間演算器の数が4個から7個へ2倍弱に増加してしまうことが
図12の構成から分かる。この構成のままでは、線形補間演算器で使う乗算器の数が増加することになるため、回路規模も大きくなってしまう。
【0088】
ところで、画素P
4とP
3を入力とする線形補間と、該入力を相互に交換したP
3とP
4の線形補間とを加算した結果は、補間位置に依らずP
3+P
4に一定という関係がある。この関係を利用して乗算器を削減したキュービック補間演算の回路構成を以下に示す。
【0089】
ここで、線形補間演算器の2入力を相互に交換する前と交換した後の2つの線形補間値を線形補間対と表現し、該線形補間対を演算する演算部を線形補間対演算部と表現する。
【0090】
図12において、線形補間演算器601と602、603と604、605と606の3対が線形補間対演算部となっている。
【0091】
各線形補間対演算部は、次に示す式(9)のように演算すると乗算を2回から1回に減らすことができる。また、2つの式の右辺を加算するとP
i+P
jになることが分かる。
【数9】
【0092】
上記のように計算すると、tを乗算した項の演算までを共通化でき、その後に加算と減算を各々1回行うだけで、該線形補間対を演算することができる。そして、通常の線形補間演算器に減算器を1つ追加しただけの回路規模で線形補間対を演算し生成することができるため大変効率的である。
該演算部を線形補間対演算器という1つの演算器として表現し直したのが
図13に示す構成である。同図における、参照符号621,622,623の3つは、式(9)の演算を行う線形補間対演算器である。
【0093】
上記式(9)は次に示す式(10)のように計算してもよい。
【数10】
この場合、2つ目の式の符号が式(9)と反転した関係になる。式(10)の演算を行う線形補間対演算器を用いた場合は、減算器611〜614を加算器に置き換えれば、
図13の構成と等価になる。
【0094】
さらに、画質調整パラメータ乗算器211〜213で乗算するパラメータの符号を反転した場合、減算器615〜617も加算器に置き換える必要がある。
【0095】
このように減算器611〜617は、前段の演算やパラメータの符号の取り方によって、加算器に置き換える類のものであり、演算回路全体がキュービック補間演算として機能するように演算器の種類を定める必要がある。
【0096】
一例として、式(10)の演算を行う線形補間対演算器631を用いて式(6)の補間演算を行う4画素参照のキュービック補間演算回路の構成を
図14に示す。同図において、加算器641,642は
図13における減算器611,612を置き換えたものである。
【0097】
第1、第2の実施形態の構成では、線形補間演算に要する乗算器の数をさらに減らすには、第3の実施形態の技術を併用する必要があった。一方、式(8)と式(9)に基づく本第6の実施形態の
図13の構成は、第2の実施形態に第3の実施形態を併用した時の乗算器の数と同じになる。
【0098】
以上では、キュービック補間、それを2次元画素に適用したバイキュービック補間を、ハードウェアによる実現方法について詳しく説明したが、全ての演算はソフトウェア処理に置き換えることが可能である。この場合、情報処理装置などの装置の制御を司るプロセッサは、そのソフトウェアを実行した場合、各実施形態で示したブロック図における演算器等を関数やプロシージャとして実行することになる。従って、本発明は、ソフトウェアの演算によるキュービック補間演算方法としても利用できる。
【0099】
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。