(57)【特許請求の範囲】
【請求項１】
それぞれ所定の画素値を有する複数の画素を所定ピッチで配列した一次元画素配列に基づいて、２つの隣接画素を両端点とする補間区間内の任意の位置ｘに定義された新画素Ｑについての画素値ｆ（ｘ）を、前記位置ｘに関する三次多項式「ｆ（ｘ）＝Ａｘ３＋Ｂｘ２＋Ｃｘ＋Ｄ」を用いた補間演算を行って求める補間演算装置であって、
前記２つの隣接画素を区間端画素とし、前記補間区間の左側に隣接して連続配置された「補間に利用する所定数の画素」を左側補間用画素とし、前記補間区間の右側に隣接して連続配置された「補間に利用する所定数の画素」を右側補間用画素とし、前記区間端画素、前記左側補間用画素、前記右側補間用画素からなる合計Ｓ個（Ｓ≧４）の画素をサンプル画素と定義したときに、各サンプル画素の画素値および前記新画素Ｑの位置ｘを入力するデータ入力部と、
前記各サンプル画素について、前記補間区間からの距離に応じた重みづけを示す重み係数を格納した重み係数格納部と、
前記左側補間用画素の各画素値が前記三次多項式の係数に影響を与える左側影響ファクターを、前記左側補間用画素の各画素値と前記重み係数とに基づいて演算する左側影響ファクター演算部と、
前記右側補間用画素の各画素値が前記三次多項式の係数に影響を与える右側影響ファクターを、前記右側補間用画素の各画素値と前記重み係数とに基づいて演算する右側影響ファクター演算部と、
前記区間端画素の各画素値と、前記左側影響ファクターと、前記右側影響ファクターと、前記重み係数と、を用いて、前記三次多項式の各係数Ａ，Ｂ，Ｃ，Ｄを決定し、前記位置ｘを前記三次多項式に代入した演算により画素値ｆ（ｘ）を求める補間値演算部と、
を備えることを特徴とする補間演算装置。
【請求項２】
請求項１に記載の補間演算装置において、
補間値演算部が、
位置ｘの平方値ｘ２および立方値ｘ３を演算する平方・立方演算器と、
区間端画素の各画素値と、左側影響ファクターと、右側影響ファクターと、重み係数と、に基づいて、三次多項式の三次係数Ａを演算する三次係数演算器と、
区間端画素の各画素値と、左側影響ファクターと、右側影響ファクターと、重み係数と、に基づいて、三次多項式の二次係数Ｂを演算する二次係数演算器と、
区間端画素の各画素値と、左側影響ファクターと、右側影響ファクターと、重み係数と、に基づいて、三次多項式の一次係数Ｃを演算する一次係数演算器と、
前記三次係数Ａと前記立方値ｘ３との乗算を行い、Ａｘ３を求める三次係数乗算器と、
前記二次係数Ｂと前記平方値ｘ２との乗算を行い、Ｂｘ２を求める二次係数乗算器と、
前記一次係数Ｃと前記位置ｘとの乗算を行い、Ｃｘを求める一次係数乗算器と、
一方の区間端画素の画素値を係数Ｄとして、Ａｘ３＋Ｂｘ２＋Ｃｘ＋Ｄなる加算を行う加算器と、
を有することを特徴とする補間演算装置。
【請求項３】
請求項１または２に記載の補間演算装置において、
一次元画素配列において隣接する第０番目の画素Ｐ０と第１番目の画素Ｐ１とを区間端画素とし、所定の整数ｉ（ｉ≧１）について、第（−ｉ）番目の画素Ｐ−ｉから第（−１）番目の画素Ｐ−１までの合計ｉ個の画素を左側補間用画素とし、第２番目の画素Ｐ２から第（ｉ＋１）番目の画素Ｐｉ＋１までの合計ｉ個の画素を右側補間用画素とし、Ｓ＝２（ｉ＋１）個のサンプル画素を定義し、前記区間端画素Ｐ０の位置を０，前記区間端画素Ｐ１の位置を１として、新画素Ｑの位置ｘを０≦ｘ＜１の範囲で定義したときに、
データ入力部が、前記区間端画素Ｐ０，Ｐ１の画素値ｆ０，ｆ１と、前記左側補間用画素Ｐ−ｉ〜Ｐ−１の画素値ｆ−ｉ〜ｆ−１と、前記右側補間用画素Ｐ２〜Ｐｉ＋１の画素値ｆ２〜ｆｉ＋１と、新画素Ｑの位置ｘと、を入力し、
重み係数格納部が、ｗｉ＝４−（１／ｗｉ−１）なる漸化式（但し、ｗ０＝２）で示される各重み係数ｗ１，ｗ２，ｗ３，…，ｗｉの値を格納しており、
左側影響ファクター演算部が、
ｇ−１＝−１／ｗｉ−１（…（−１／ｗ２（−１／ｗ１（−１／４・ｆ−１＋ｆ−ｉ＋１）＋ｆ−ｉ＋２）…）＋ｆ−ｉ＋（ｉ−２））＋ｆ−ｉ＋（ｉ−１）
なる演算式に基づいて左側影響ファクターｇ−１を求め、
右側影響ファクター演算部が、
ｇ２＝−１／ｗｉ−１（…（−１／ｗ２（−１／ｗ１（−１／４・ｆｉ＋１＋ｆｉ）＋ｆｉ−１）…）＋ｆｉ＋（３−ｉ））＋ｆｉ＋（２−ｉ）
なる演算式に基づいて右側影響ファクターｇ２を求め、
補間値演算部が、
ｆ（ｘ）＝
１／（３ｗ−１）｛−６ｇ−１＋（３ｗ＋１）（ｆ０−ｆ１）＋６ｇ２｝ｘ３
＋３／（（５ｗ−１）（３ｗ−１））｛６（４ｗ−１）ｇ−１−（９ｗ２＋２ｗ−１）ｆ０＋６ｗ２ｆ１−６ｗｇ２｝ｘ２
＋３／（（５ｗ−１）（３ｗ−１））｛−２（７ｗ−２）ｇ−１−（ｗ２−４ｗ＋１）ｆ０＋２ｗ（２ｗ−１）ｆ１−２（２ｗ−１）ｇ２｝ｘ
＋ｆ０
なる演算式（但し、ｗ＝ｗｉ−１）に基づいて画素値ｆ（ｘ）を求めることを特徴とする補間演算装置。
【請求項４】
請求項１に記載の補間演算装置において、
補間値演算部が、区間端画素の各画素値と、左側影響ファクターと、右側影響ファクターと、重み係数と、を用いて、係数Ａ，Ｂ，Ｃ，Ｄの代わりに、Ａ＝（ａ−ｂ），Ｂ＝（ｂ−ｃ），Ｃ＝（ｃ−ｄ），Ｄ＝ｄとなるように定義された補助係数ａ，ｂ，ｃ，ｄを決定し、三次多項式「ｆ（ｘ）＝Ａｘ３＋Ｂｘ２＋Ｃｘ＋Ｄ」の代わりに、三次多項式「ｆ（ｘ）＝［｛ａｘ＋ｂ（１−ｘ）｝ｘ＋ｃ（１−ｘ）］ｘ＋ｄ（１−ｘ）」に位置ｘを代入した演算により画素値ｆ（ｘ）を求めることを特徴とする補間演算装置。
【請求項５】
請求項４に記載の補間演算装置において、
補間値演算部が、
区間端画素の各画素値と、左側影響ファクターと、右側影響ファクターと、重み係数と、に基づいて、補助係数ｂを演算する第一補助係数演算器と、
区間端画素の各画素値と、左側影響ファクターと、右側影響ファクターと、重み係数と、に基づいて、補助係数ｃを演算する第二補助係数演算器と、
一方の区間端画素の画素値を補助係数ａとして入力し、補助係数ａ，補助係数ｂ，位置ｘに基づく線形補間演算を行うことにより｛ａｘ＋ｂ（１−ｘ）｝の値を求める第一段線形補間演算器と、
前記｛ａｘ＋ｂ（１−ｘ）｝の値，補助係数ｃ，位置ｘに基づく線形補間演算を行うことにより［｛ａｘ＋ｂ（１−ｘ）｝ｘ＋ｃ（１−ｘ）］の値を求める第二段線形補間演算器と、
他方の区間端画素の画素値を補助係数ｄとして入力し、前記［｛ａｘ＋ｂ（１−ｘ）｝ｘ＋ｃ（１−ｘ）］の値，補助係数ｄ，位置ｘに基づく線形補間演算を行うことによりｆ（ｘ）＝［｛ａｘ＋ｂ（１−ｘ）｝ｘ＋ｃ（１−ｘ）］ｘ＋ｄ（１−ｘ）の値を求める第三段線形補間演算器と、
を有することを特徴とする補間演算装置。
【請求項６】
請求項４または５に記載の補間演算装置において、
一次元画素配列において隣接する第０番目の画素Ｐ０と第１番目の画素Ｐ１とを区間端画素とし、所定の整数ｉ（ｉ≧１）について、第（−ｉ）番目の画素Ｐ−ｉから第（−１）番目の画素Ｐ−１までの合計ｉ個の画素を左側補間用画素とし、第２番目の画素Ｐ２から第（ｉ＋１）番目の画素Ｐｉ＋１までの合計ｉ個の画素を右側補間用画素とし、Ｓ＝２（ｉ＋１）個のサンプル画素を定義し、前記区間端画素Ｐ０の位置を０，前記区間端画素Ｐ１の位置を１として、新画素Ｑの位置ｘを０≦ｘ＜１の範囲で定義したときに、
データ入力部が、前記区間端画素Ｐ０，Ｐ１の画素値ｆ０，ｆ１と、前記左側補間用画素Ｐ−ｉ〜Ｐ−１の画素値ｆ−ｉ〜ｆ−１と、前記右側補間用画素Ｐ２〜Ｐｉ＋１の画素値ｆ２〜ｆｉ＋１と、新画素Ｑの位置ｘと、を入力し、
重み係数格納部が、ｗｉ＝４−（１／ｗｉ−１）なる漸化式（但し、ｗ０＝２）で示される各重み係数ｗ１，ｗ２，ｗ３，…，ｗｉの値を格納しており、
左側影響ファクター演算部が、
ｇ−１＝−１／ｗｉ−１（…（−１／ｗ２（−１／ｗ１（−１／４・ｆ−１＋ｆ−ｉ＋１）＋ｆ−ｉ＋２）…）＋ｆ−ｉ＋（ｉ−２））＋ｆ−ｉ＋（ｉ−１）
なる演算式に基づいて左側影響ファクターｇ−１を求め、
右側影響ファクター演算部が、
ｇ２＝−１／ｗｉ−１（…（−１／ｗ２（−１／ｗ１（−１／４・ｆｉ＋１＋ｆｉ）＋ｆｉ−１）…）＋ｆｉ＋（３−ｉ））＋ｆｉ＋（２−ｉ）
なる演算式に基づいて右側影響ファクターｇ２を求め、
補間値演算部が、
ａ＝ｆ１，
ｂ＝（６ｇ−１−（３ｗ＋１）ｆ０＋６ｗｆ１−６ｇ２）／（３ｗ−１），
ｃ＝１／（（３ｗ−１）（５ｗ−１））（−６（７ｗ−２）ｇ−１
＋２（６ｗ２＋２ｗ−１）ｆ０＋６ｗ（２ｗ−１）ｆ１−６（２ｗ−１）ｇ２），
ｄ＝ｆ０
なる演算式（但し、ｗ＝ｗｉ−１）により、補助係数ａ，ｂ，ｃ，ｄを決定することを特徴とする補間演算装置。
【請求項７】
請求項１〜６のいずれかに記載の補間演算装置に、
所定ピッチで平行に並んだ行ラインおよびこれらに直交する列ラインの交点位置に、それぞれ所定の画素値を有する複数の画素を配列してなる二次元画素配列を入力する画像入力部と、
前記二次元画素配列を格納する画像格納部と、
前記二次元画素配列上の各画素とは異なる位置に定義される新画素Ｔの位置を入力する新画素位置入力部と、
前記新画素Ｔの位置を通り、列ラインに平行な参照線Ｒを定義し、この参照線Ｒと各行ラインとの交点のうち、前記新画素Ｔの近傍の所定個の交点を補間対象交点として決定する補間対象交点決定部と、
前記各補間対象交点の所属する行ライン上の一次元画素配列を前記補間演算装置に与えることにより、前記各補間対象交点の画素値を演算させる行方向演算制御部と、
前記参照線Ｒ上に配置された各補間対象交点からなる一次元画素配列を前記補間演算装置に与えることにより、前記新画素Ｔの画素値を演算させる列方向演算制御部と、
を更に設け、二次元画像に対する補間演算を実行するようにしたことを特徴とする補間演算装置。
【請求項８】
請求項１〜７のいずれかに記載の補間演算装置において、
左側影響ファクター演算部、右側影響ファクター演算部、補間値演算部のうちの１つもしくは複数を、複数段の演算ユニットにより構成し、途中段の演算ユニットが、桁上げ伝播の処理を行うことなしに得られた各ビットの演算結果と、各ビットの桁上げ情報とを求め、これら双方を後段の演算ユニットに与え、最終段の演算ユニットにおいて、桁上げ情報を考慮した桁上げ伝播の処理が実行されるようにしたことを特徴とする補間演算装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、補間演算装置に関し、特に、画像を拡大・縮小して、スケーリング表示を行う場合に、キュービック・スプライン補間法により画素の補間を行う補間演算装置に関する。
【背景技術】
【０００２】
デジタル画像を表示する際に、拡大や縮小のスケーリングが必要になることが少なくない。デジタルデータとして与えられた画像は、所定の画素値を有する複数の画素を所定ピッチで配列した二次元画素配列であるので、拡大や縮小を行う場合、新たな画素を補間によって求めてやる必要がある。このような画像の拡大・縮小スケーリングに従来からよく用いられている補間計算方式として、最近傍(ニアレスト・ネイバー)選択法と双線形(バイリニア)補間法が知られている。
【０００３】
最近傍選択法は、補間点において、最も近くに位置するサンプル画素を選択する方法であるため、縮小時においては、一種の画素の間引き法になり、スケーリング表示後の画像がぼけることはない。逆に拡大時においては、最近傍の同じ画像を何個か連続して敷き詰めるため、平坦なモザイク状画像表示となる。
【０００４】
一方、双線形補間法は、補間区間の両端にあるサンプル画素の画素値を用いて線形補間するため、縮小時は元画素値とは異なるものとなり、潰れた画像表示になることがある。逆に拡大時には、線形補間された画素値で埋められるため、ぼけたような画像表示になることがある。このように最近傍選択と双線形補間法は補間精度が悪いため、これらの欠点があると考えられる。
【０００５】
このため、より精度を向上させた補間法として、たとえば、下記の非特許文献１には、キュービック・コンボルーション法の基本概念が示されている。デジタルテレビの画像スケーリング表示などでは、精度を更に向上させた双三次式の画像補間計算法として、バイキュービック(双三次)コンボルーション法が使われている。また、たとえば、医療用画像では、更に高精細なスケール表示が要求される。そこで、補間式としてもっと精度のよいものを採用しようということで、バイキュービック・スプライン補間法が提案されている。下記の非特許文献２，３には、その基本になるキュービック・スプライン補間法の基本概念が示されている。
【非特許文献１】Robert G. Keys, 「Cubic Convolution Interpolation for Digital Images Processing,」 IEEE Trans. on ASSP-29, No. 6, Dec. 1981, pp.1153-1160
【非特許文献２】Hsieh S. Hou and Harry C. Andrews, 「Cubic Splines for Image Interpolation and Digital Filtering ,」 IEEE Trans. on ASSP-26, No. 6, Dec. 1978, pp.508-517
【非特許文献３】Michael Unser, 「Splines A Perfect Fit for Signal and Image Processing,」 IEEE Signal Processing Magazine, November 1999, pp.22-38
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述したバイキュービック・コンボルーション法では、(水平４)×(垂直４)=１６個のサンプル画素の画素値を用いて、水平方向４画素補間のあとに垂直方向４画素補間を行い、求める１画素につき合計２回の３次式補間計算を行うことになる。このように、コンボルーション法では、４個の３次曲線式を用い、それらを互いの境界で滑らかに接続している。実は、この未定係数方程式は完全には解けておらず、１係数が未定のまま残っている。このため、未定係数値に−１とか−１／２とかが経験的に使われており、補間式としての意味と精度があいまいになっている。
【０００７】
一方、キュービック・スプライン補間法では、補間区間で、コンボルーション法と同様に４個の３次曲線が使われているが、これらの曲線をブレンドすることで忠実に近似しようとしている点で、コンボルーション法とは式の意味と構成が異なる。また、補間に用いるサンプル画素の個数は、必ずしも４個である必要がなく、４個より多くとることも可能である。すなわち、補間区間で４個のＢ−スプラインと呼ばれる３次曲線式をブレンドするときの重み係数が４個あるということになる。このため、キュービック・スプライン補間法は、コンボルーション法よりも近似精度がよいが、３次補間式が複雑な過程を経て求められることになる。特に、補間のために参照する合計Ｓ個（Ｓ≧４）のサンプル画素の各画素値から、各キュービック・スプライン係数を求める計算過程や、補間点の位置を与えてバイキュービック・スプライン補間計算を行い、補間点の画素値を求める過程が極めて複雑であり、現在のところ、画像の拡大・縮小スケーリング表示を行う場合に、商業的利用に適した実用的なキュービック・スプライン補間演算を行うことが可能な装置は実現されていない。
【０００８】
そこで本発明は、キュービック・スプライン補間演算を効率的に行うことが可能な補間演算装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
(1)   本発明の第１の態様は、それぞれ所定の画素値を有する複数の画素を所定ピッチで配列した一次元画素配列に基づいて、２つの隣接画素を両端点とする補間区間内の任意の位置ｘに定義された新画素Ｑについての画素値ｆ（ｘ）を、位置ｘに関する三次多項式「ｆ（ｘ）＝Ａｘ３＋Ｂｘ２＋Ｃｘ＋Ｄ」を用いた補間演算を行って求める補間演算装置において、
補間区間を挟む２つの隣接画素を区間端画素とし、補間区間の左側に隣接して連続配置された「補間に利用する所定数の画素」を左側補間用画素とし、補間区間の右側に隣接して連続配置された「補間に利用する所定数の画素」を右側補間用画素とし、区間端画素、左側補間用画素、右側補間用画素からなる合計Ｓ個（Ｓ≧４）の画素をサンプル画素と定義したときに、各サンプル画素の画素値および新画素Ｑの位置ｘを入力するデータ入力部と、
各サンプル画素について、補間区間からの距離に応じた重みづけを示す重み係数を格納した重み係数格納部と、
左側補間用画素の各画素値が三次多項式の係数に影響を与える左側影響ファクターを、左側補間用画素の各画素値と重み係数とに基づいて演算する左側影響ファクター演算部と、
右側補間用画素の各画素値が三次多項式の係数に影響を与える右側影響ファクターを、右側補間用画素の各画素値と重み係数とに基づいて演算する右側影響ファクター演算部と、
区間端画素の各画素値と、左側影響ファクターと、右側影響ファクターと、重み係数と、を用いて、三次多項式の各係数Ａ，Ｂ，Ｃ，Ｄを決定し、位置ｘを三次多項式に代入した演算により画素値ｆ（ｘ）を求める補間値演算部と、
を設けるようにしたものである。
【００１０】
(2)   本発明の第２の態様は、上述の第１の態様に係る補間演算装置において、
補間値演算部を、
位置ｘの平方値ｘ２および立方値ｘ３を演算する平方・立方演算器と、
区間端画素の各画素値と、左側影響ファクターと、右側影響ファクターと、重み係数と、に基づいて、三次多項式の三次係数Ａを演算する三次係数演算器と、
区間端画素の各画素値と、左側影響ファクターと、右側影響ファクターと、重み係数と、に基づいて、三次多項式の二次係数Ｂを演算する二次係数演算器と、
区間端画素の各画素値と、左側影響ファクターと、右側影響ファクターと、重み係数と、に基づいて、三次多項式の一次係数Ｃを演算する一次係数演算器と、
三次係数Ａと立方値ｘ３との乗算を行い、Ａｘ３を求める三次係数乗算器と、
二次係数Ｂと平方値ｘ２との乗算を行い、Ｂｘ２を求める二次係数乗算器と、
一次係数Ｃと位置ｘとの乗算を行い、Ｃｘを求める一次係数乗算器と、
一方の区間端画素の画素値を係数Ｄとして、Ａｘ３＋Ｂｘ２＋Ｃｘ＋Ｄなる加算を行う加算器と、
によって構成するようにしたものである。
【００１１】
(3)   本発明の第３の態様は、上述の第１または第２の態様に係る補間演算装置において、
一次元画素配列において隣接する第０番目の画素Ｐ０と第１番目の画素Ｐ１とを区間端画素とし、所定の整数ｉ（ｉ≧１）について、第（−ｉ）番目の画素Ｐ−ｉから第（−１）番目の画素Ｐ−１までの合計ｉ個の画素を左側補間用画素とし、第２番目の画素Ｐ２から第（ｉ＋１）番目の画素Ｐｉ＋１までの合計ｉ個の画素を右側補間用画素とし、Ｓ＝２（ｉ＋１）個のサンプル画素を定義し、区間端画素Ｐ０の位置を０，区間端画素Ｐ１の位置を１として、新画素Ｑの位置ｘを０≦ｘ＜１の範囲で定義したときに、
データ入力部が、区間端画素Ｐ０，Ｐ１の画素値ｆ０，ｆ１と、左側補間用画素Ｐ−ｉ〜Ｐ−１の画素値ｆ−ｉ〜ｆ−１と、右側補間用画素Ｐ２〜Ｐｉ＋１の画素値ｆ２〜ｆｉ＋１と、新画素Ｑの位置ｘと、を入力し、
重み係数格納部が、ｗｉ＝４−（１／ｗｉ−１）なる漸化式（但し、ｗ０＝２）で示される各重み係数ｗ１，ｗ２，ｗ３，…，ｗｉの値を格納しており、
左側影響ファクター演算部が、
ｇ−１＝−１／ｗｉ−１（…（−１／ｗ２（−１／ｗ１（−１／４・ｆ−１＋ｆ−ｉ＋１）＋ｆ−ｉ＋２）…）＋ｆ−ｉ＋（ｉ−２））＋ｆ−ｉ＋（ｉ−１）
なる演算式に基づいて左側影響ファクターｇ−１を求め、
右側影響ファクター演算部が、
ｇ２＝−１／ｗｉ−１（…（−１／ｗ２（−１／ｗ１（−１／４・ｆｉ＋１＋ｆｉ）＋ｆｉ−１）…）＋ｆｉ＋（３−ｉ））＋ｆｉ＋（２−ｉ）
なる演算式に基づいて右側影響ファクターｇ２を求め、
補間値演算部が、
ｆ（ｘ）＝
１／（３ｗ−１）｛−６ｇ−１＋（３ｗ＋１）（ｆ０−ｆ１）＋６ｇ２｝ｘ３
＋３／（（５ｗ−１）（３ｗ−１））｛６（４ｗ−１）ｇ−１−（９ｗ２＋２ｗ−１）ｆ０＋６ｗ２ｆ１−６ｗｇ２｝ｘ２
＋３／（（５ｗ−１）（３ｗ−１））｛−２（７ｗ−２）ｇ−１−（ｗ２−４ｗ＋１）ｆ０＋２ｗ（２ｗ−１）ｆ１−２（２ｗ−１）ｇ２｝ｘ
＋ｆ０
なる演算式（但し、ｗ＝ｗｉ）に基づいて画素値ｆ（ｘ）を求めるようにしたものである。
【００１２】
(4)   本発明の第４の態様は、上述の第１の態様に係る補間演算装置において、
補間値演算部が、区間端画素の各画素値と、左側影響ファクターと、右側影響ファクターと、重み係数と、を用いて、係数Ａ，Ｂ，Ｃ，Ｄの代わりに、Ａ＝（ａ−ｂ），Ｂ＝（ｂ−ｃ），Ｃ＝（ｃ−ｄ），Ｄ＝ｄとなるように定義された補助係数ａ，ｂ，ｃ，ｄを決定し、三次多項式「ｆ（ｘ）＝Ａｘ３＋Ｂｘ２＋Ｃｘ＋Ｄ」の代わりに、三次多項式「ｆ（ｘ）＝［｛ａｘ＋ｂ（１−ｘ）｝ｘ＋ｃ（１−ｘ）］ｘ＋ｄ（１−ｘ）」に位置ｘを代入した演算により画素値ｆ（ｘ）を求めるようにしたものである。
【００１３】
(5)   本発明の第５の態様は、上述の第４の態様に係る補間演算装置において、
補間値演算部を、
区間端画素の各画素値と、左側影響ファクターと、右側影響ファクターと、重み係数と、に基づいて、補助係数ｂを演算する第一補助係数演算器と、
区間端画素の各画素値と、左側影響ファクターと、右側影響ファクターと、重み係数と、に基づいて、補助係数ｃを演算する第二補助係数演算器と、
一方の区間端画素の画素値を補助係数ａとして入力し、補助係数ａ，補助係数ｂ，位置ｘに基づく線形補間演算を行うことにより｛ａｘ＋ｂ（１−ｘ）｝の値を求める第一段線形補間演算器と、
｛ａｘ＋ｂ（１−ｘ）｝の値，補助係数ｃ，位置ｘに基づく線形補間演算を行うことにより［｛ａｘ＋ｂ（１−ｘ）｝ｘ＋ｃ（１−ｘ）］の値を求める第二段線形補間演算器と、
他方の区間端画素の画素値を補助係数ｄとして入力し、［｛ａｘ＋ｂ（１−ｘ）｝ｘ＋ｃ（１−ｘ）］の値，補助係数ｄ，位置ｘに基づく線形補間演算を行うことによりｆ（ｘ）＝［｛ａｘ＋ｂ（１−ｘ）｝ｘ＋ｃ（１−ｘ）］ｘ＋ｄ（１−ｘ）の値を求める第三段線形補間演算器と、
によって構成したものである。
【００１４】
(6)   本発明の第６の態様は、上述の第４または第５の態様に係る補間演算装置において、
一次元画素配列において隣接する第０番目の画素Ｐ０と第１番目の画素Ｐ１とを区間端画素とし、所定の整数ｉ（ｉ≧１）について、第（−ｉ）番目の画素Ｐ−ｉから第（−１）番目の画素Ｐ−１までの合計ｉ個の画素を左側補間用画素とし、第２番目の画素Ｐ２から第（ｉ＋１）番目の画素Ｐｉ＋１までの合計ｉ個の画素を右側補間用画素とし、Ｓ＝２（ｉ＋１）個のサンプル画素を定義し、区間端画素Ｐ０の位置を０，区間端画素Ｐ１の位置を１として、新画素Ｑの位置ｘを０≦ｘ＜１の範囲で定義したときに、
データ入力部が、区間端画素Ｐ０，Ｐ１の画素値ｆ０，ｆ１と、左側補間用画素Ｐ−ｉ〜Ｐ−１の画素値ｆ−ｉ〜ｆ−１と、右側補間用画素Ｐ２〜Ｐｉ＋１の画素値ｆ２〜ｆｉ＋１と、新画素Ｑの位置ｘと、を入力し、
重み係数格納部が、ｗｉ＝４−（１／ｗｉ−１）なる漸化式（但し、ｗ０＝２）で示される各重み係数ｗ１，ｗ２，ｗ３，…，ｗｉの値を格納しており、
左側影響ファクター演算部が、
ｇ−１＝−１／ｗｉ−１（…（−１／ｗ２（−１／ｗ１（−１／４・ｆ−１＋ｆ−ｉ＋１）＋ｆ−ｉ＋２）…）＋ｆ−ｉ＋（ｉ−２））＋ｆ−ｉ＋（ｉ−１）
なる演算式に基づいて左側影響ファクターｇ−１を求め、
右側影響ファクター演算部が、
ｇ２＝−１／ｗｉ−１（…（−１／ｗ２（−１／ｗ１（−１／４・ｆｉ＋１＋ｆｉ）＋ｆｉ−１）…）＋ｆｉ＋（３−ｉ））＋ｆｉ＋（２−ｉ）
なる演算式に基づいて右側影響ファクターｇ２を求め、
補間値演算部が、
ａ＝ｆ１，
ｂ＝（６ｇ−１−（３ｗ＋１）ｆ０＋６ｗｆ１−６ｇ２）／（３ｗ−１），
ｃ＝１／（（３ｗ−１）（５ｗ−１））（−６（７ｗ−２）ｇ−１
＋２（６ｗ２＋２ｗ−１）ｆ０＋６ｗ（２ｗ−１）ｆ１−６（２ｗ−１）ｇ２），
ｄ＝ｆ０
なる演算式（但し、ｗ＝ｗｉ−１）により、補助係数ａ，ｂ，ｃ，ｄを決定するようにしたものである。
【００１５】
(7)   本発明の第７の態様は、上述の第１〜第６の態様に係る補間演算装置において、
所定ピッチで平行に並んだ行ラインおよびこれらに直交する列ラインの交点位置に、それぞれ所定の画素値を有する複数の画素を配列してなる二次元画素配列を入力する画像入力部と、
二次元画素配列を格納する画像格納部と、
二次元画素配列上の各画素とは異なる位置に定義される新画素Ｔの位置を入力する新画素位置入力部と、
新画素Ｔの位置を通り、列ラインに平行な参照線Ｒを定義し、この参照線Ｒと各行ラインとの交点のうち、新画素Ｔの近傍の所定個の交点を補間対象交点として決定する補間対象交点決定部と、
各補間対象交点の所属する行ライン上の一次元画素配列を補間演算装置に与えることにより、各補間対象交点の画素値を演算させる行方向演算制御部と、
参照線Ｒ上に配置された各補間対象交点からなる一次元画素配列を補間演算装置に与えることにより、新画素Ｔの画素値を演算させる列方向演算制御部と、
を更に設け、二次元画像に対する補間演算を実行するようにしたものである。
【００１６】
(8)   本発明の第８の態様は、上述の第１〜第７の態様に係る補間演算装置において、
左側影響ファクター演算部、右側影響ファクター演算部、補間値演算部のうちの１つもしくは複数を、複数段の演算ユニットにより構成し、途中段の演算ユニットが、桁上げ伝播の処理を行うことなしに得られた各ビットの演算結果と、各ビットの桁上げ情報とを求め、これら双方を後段の演算ユニットに与え、最終段の演算ユニットにおいて、桁上げ情報を考慮した桁上げ伝播の処理が実行されるようにしたものである。
【発明の効果】
【００１７】
本発明によれば、キュービック・スプライン補間演算を効率的に行うことが可能になり、画像の拡大・縮小スケーリング表示に適した補間演算装置を提供することが可能になる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明を図示する実施形態に基づいて説明する。
【００１９】
＜＜＜  §１．  キュービック・スプライン補間法の基本概念  ＞＞＞
既に述べたように、キュービック・スプライン補間法自体は公知の手法であるが、ここでは、便宜上、この補間法の基本概念を前掲の非特許文献２の記載に基づいて簡単に説明しておく。なお、ここでは、一次元画素配列に対する補間法を述べるが、この一次元の補間法を縦と横について繰り返し実施すれば、二次元画素配列についても同様に適用が可能になる（詳しくは、§５で述べる）。
【００２０】
はじめに、図１を参照しながら、線形補間法の概念を説明する。いま、図示のとおり、ｘ軸上に一次元画素配列が定義されているものとする。すなわち、ｘ軸上に、それぞれ所定の画素値を有する複数の画素が所定ピッチで配列されている。本願の図では、与えられた既存の画素を白丸で示すことにする。ここで、画素番号ｋを定義すると、図１には、ｘ軸上に、第０番目（ｋ＝０）の画素Ｐ０と、第１番目（ｋ＝１）の画素Ｐ１が配置されている状態が示されている。便宜上、画素Ｐ０はｘ＝０，画素Ｐ１はｘ＝１の各座標位置に配置されているものとし、これら両画素を両端とする区間「０≦ｘ＜１」を補間区間と定義する。そして、この補間区間の任意の位置ｘに補間点Ｑ（ここでは、新画素Ｑとも呼ぶことにする）を定義したときに、この新画素Ｑに与える画素値ｆ（ｘ）を求めることを考えてみる。別言すれば、隣接する２つの画素Ｐ０，Ｐ１間の任意の補間点Ｑについての補間値を求めることになる。
【００２１】
このような補間を行う最も単純な方法は、２つの画素Ｐ０，Ｐ１の画素値を用いた線形補間法である。ここでは、補間に利用する画素をサンプル画素と呼ぶことにする。図１の例では、２つのサンプル画素Ｐ０，Ｐ１の画素値に基づいて、補間区間内の任意の位置ｘに定義された新画素Ｑの画素値ｆ（ｘ）が決定される。すなわち、サンプル画素Ｐ０，Ｐ１の画素値をそれぞれｆ０，ｆ１とすれば、新画素Ｑの画素値は、ｆ（ｘ）＝ｆ０・（１−ｘ）＋ｆ１・ｘという単純な演算式によって求めることができる。
【００２２】
この線形補間法は、補間点Ｑの両側に位置する一対のサンプル画素Ｐ０，Ｐ１の画素値を用いた単純な積和演算によって補間点Ｑの画素値を求めることができるので、演算負担は非常に軽いものになる。しかしながら、補間精度は非常に低いため、滑らかに連続した画素値を得ることができない。
【００２３】
一方、精度をより高めた補間法であるキュービック・コンボルーション補間法やキュービック・スプライン補間法では、より多数のサンプル画素を用いた補間が行われる。たとえば、図２に示す例は、合計４個のサンプル画素の画素値に基づく補間方法を示しており、現在提案されているキュービック・コンボルーション補間法やキュービック・スプライン補間法では、このように４個のサンプル画素を用いた補間が行われている。すなわち、第（−１）番目（ｋ＝−１）の画素Ｐ−１，第０番目（ｋ＝０）の画素Ｐ０，第１番目（ｋ＝１）の画素Ｐ１，第２番目（ｋ＝２）の画素Ｐ２の４個のサンプル画素についての画素値ｆ−１，ｆ０，ｆ１，ｆ２を用いて、補間区間（画素Ｐ０とＰ１との間の区間）内の任意の位置ｘに定義された新画素Ｑについての画素値ｆ（ｘ）を求めることになる。
【００２４】
キュービック・スプライン補間法では、位置ｘに関する三次多項式「ｆ（ｘ）＝Ａｘ３＋Ｂｘ２＋Ｃｘ＋Ｄ」を求め、この多項式に新画素Ｑの座標値ｘを代入した演算を行うことにより、画素値ｆ（ｘ）を算出することになる。ここで、三次多項式「ｆ（ｘ）＝Ａｘ３＋Ｂｘ２＋Ｃｘ＋Ｄ」は
【数１】
0004672499.tif 000002
によって求めることができる。この（数式１）は、ｋ＝−１，０，１，２のそれぞれについて定義された４つの関数の和として、ｆ（ｘ）を表現したものである。ここで、ｃｋは補間係数、β３（ｘ−ｋ）はキュービックＢ−スプライン関数と呼ばれている。
【００２５】
この関数β３（ｘ−ｋ）は、次のようにして定義される。すなわち、
【数２】
0004672499.tif 000003
【数３】
0004672499.tif 000004
なる関数を定義すれば、関数β３（ｘ−ｋ）は、
【数４】
0004672499.tif 000005
として求められる。
【００２６】
この（数式４）のｉに、ｉ＝ｋ−２，ｋ−１，ｋ，ｋ＋１，ｋ＋２を入れて和の形式になおすと、
【数５】
0004672499.tif 000006
が得られる。ここで、（数式２）の定義と、０≦ｘ＜１という条件を考慮して、この（数式５）を（数式１）に代入すると、
【数６】
0004672499.tif 000007
が得られる。
【００２７】
この（数式６）で、ｘ＝０とすると、ｆ（０）＝（ｃ−１＋４ｃ０＋ｃ１）であるから、第ｋ番目の画素の画素値をｆｋとして一般化すれば、
【数７】
0004672499.tif 000008
になる。ここで、4個の補間係数ｃ−１，ｃ０，ｃ１，ｃ２の外にある係数ｃ−２とｃ３について、ｃ−２＝ｃ０，ｃ３＝ｃ１として取り扱うことにすれば、
【数８】
0004672499.tif 000009
なる関係式が得られる。
【００２８】
これは、４個のサンプル画素の画素値ｆ−１，ｆ０，ｆ１，ｆ２と４個の補間係数ｃ−１，ｃ０，ｃ１，ｃ２との関係を示す式である。したがって、４個のサンプル画素の画素値ｆ−１，ｆ０，ｆ１，ｆ２に基づいて、４個の補間係数ｃ−１，ｃ０，ｃ１，ｃ２を求めるためには、この（数式８）をｃ−１，ｃ０，ｃ１，ｃ２について解いてやればよい。この解法は、比較的複雑な演算になるため、途中経過は省略し、演算結果のみを示せば、
【数９】
0004672499.tif 000010
のようになる。この（数式９）を（数式６）に代入すれば、
【数１０】
0004672499.tif 000011
が得られる。
【００２９】
この（数式１０）は、位置ｘに関する三次多項式「ｆ（ｘ）＝Ａｘ３＋Ｂｘ２＋Ｃｘ＋Ｄ」の形式になっており、各係数Ａ，Ｂ，Ｃ，Ｄは、４個のサンプル画素の画素値ｆ−１，ｆ０，ｆ１，ｆ２によって与えられている。したがって、図２に示す４個のサンプル画素Ｐ−１，Ｐ０，Ｐ１，Ｐ２の画素値ｆ−１，ｆ０，ｆ１，ｆ２と、新画素Ｑの位置ｘ（０≦ｘ＜１、すなわち、新画素Ｑは、サンプル画素Ｐ０，Ｐ１の間に位置する）とが与えられれば、新画素Ｑの画素値ｆ（ｘ）を算出することができる。以上が、４個のサンプル画素を用いたキュービック・スプライン補間法の基本概念であり、既に公知の事項である。
【００３０】
＜＜＜  §２．  本発明に固有のアプローチ  ＞＞＞
このように、４個のサンプル画素を用いたキュービック・スプライン補間法は、（数式１０）を用いた演算により実現することができる。しかしながら、サンプル画素の数が４を超えると、（数式１０）に相当する式は、非常に複雑になり、場合によっては、そのような式自体を求めることが、現実的には非常に困難になる。
【００３１】
たとえば、図３に示すように、第（−２）番目（ｋ＝−２）から第３番目（ｋ＝３）までの合計６個のサンプル画素Ｐ−２，Ｐ−１，Ｐ０，Ｐ１，Ｐ２，Ｐ３を用いたキュービック・スプライン補間法を考えてみる。この場合も、補間区間はあくまでも０≦ｘ＜１であり、補間値を求める対象となる新画素Ｑ（位置は座標値ｘ）は、サンプル画素Ｐ０，Ｐ１の間に定義されていなければならない。このように合計６個のサンプル画素を用いた補間を行う場合、（数式１０）の代わりに、６個のサンプル画素の画素値ｆ−２，ｆ−１，ｆ０，ｆ１，ｆ２，ｆ３を含んだ補間式を導く必要がある。次に示す
【数１１】
0004672499.tif 000012
は、６個の画素値ｆ−２，ｆ−１，ｆ０，ｆ１，ｆ２，ｆ３と、６個の補間係数ｃ−２，ｃ−１，ｃ０，ｃ１，ｃ２，ｃ３との関係を示す式であり、４個のサンプル画素を用いた補間の場合に示した（数式８）に相当するものである。６個のサンプル画素の画素値ｆ−２，ｆ−１，ｆ０，ｆ１，ｆ２，ｆ３に基づいて、６個の補間係数ｃ−２，ｃ−１，ｃ０，ｃ１，ｃ２，ｃ３を求めるためには、この（数式１１）をｃ−２，ｃ−１，ｃ０，ｃ１，ｃ２，ｃ３について解いてやる必要がある。この計算はかなり複雑なものになる。
【００３２】
このように、キュービック・スプライン補間、特に、サンプル画素数を６以上に設定したキュービック・スプライン補間は、非常に複雑な演算が必要になり、従来、この演算を効率的に実行することは困難であった。このような課題を解決するために、本願発明者は、次のような固有のアプローチを思いついた。以下、この固有のアプローチについて、数式を参照しながら、その概念を説明する。
【００３３】
本願発明者は、（数式１１）の６行６列の行列式において、半分以上の値が「０」となっている点に着目して、（数式１１）に対応する６本の多項式を整理することにより、補間係数ｃ−２，ｃ３を削除してみることにした。そして、この（数式１１）を、
【数１２】
0004672499.tif 000013
のような形に解くことにより、残りの補間係数ｃ−１，ｃ０，ｃ１，ｃ２を決定することができるのではないかと考えた。この（数式１２）には、新たに、ｇ−１，ｇ２，ｗなる変数が用いられているが、これらの変数は、
【数１３】
0004672499.tif 000014
で定義される値となる。この（数式１３）に示されているとおり、ｇ−１は、図３において、左側の２つの画素Ｐ−２，Ｐ−１についての画素値ｆ−２，ｆ−１から求まるファクターであり、ｇ２は、図３において、右側の２つの画素Ｐ２，Ｐ３についての画素値ｆ２，ｆ３から求まるファクターである。また、（数式１２）の行列式に見られるように、ｗは、ｇ−１，ｇ２を求める上での重み係数ということができる。
【００３４】
ここで、（数式１２）を、ｃ−１，ｃ０，ｃ１，ｃ２について解いてやると、
【数１４】
0004672499.tif 000015
が導かれる。補間係数は、ｃ−１，ｃ０，ｃ１，ｃ２の４個だけであるので、これらを（数式６）に代入してやれば、
【数１５】
0004672499.tif 000016
が得られる。この（数式１５）は、位置ｘに関する三次多項式「ｆ（ｘ）＝Ａｘ３＋Ｂｘ２＋Ｃｘ＋Ｄ」の形式になっており、各係数Ａ，Ｂ，Ｃ，Ｄは、画素値ｆ−１，ｆ０と、（数式１３）に示す２つのファクターｇ−１，ｇ２および重み係数ｗによって求めることができる。（数式１３）に示すとおり、ファクターｇ−１は、２つの画素値ｆ−２，ｆ−１から求まる値であり、ファクターｇ２は、２つの画素値ｆ２，ｆ３から求まる値であるので、結局、（数式１５）における各係数Ａ，Ｂ，Ｃ，Ｄは、６個の画素値ｆ−２，ｆ−１，ｆ０，ｆ１，ｆ２，ｆ３と、重み係数ｗによって求めることができる。したがって、新画素Ｑの位置ｘ（０≦ｘ＜１）を与えれば、その画素値ｆ（ｘ）を算出することができる。
【００３５】
この６個のサンプル画素を用いた例についてのアプローチは、サンプル画素の個数を更に増やした場合にも適用可能であり、より一般化した式に拡張することができる。すなわち、これまでの説明では、サンプル画素を４個とした場合として（数式８）、サンプル画素を６個とした場合として（数式１１）を示したが、サンプル画素を「２（ｉ＋１）」個とした場合（但し、ｉは１以上の整数）の一般式として、
【数１６】
0004672499.tif 000017
の形の式が知られている（たとえば、前掲の非特許文献２など）。
【００３６】
この（数式１６）は、図４に示すように、第（−ｉ）番目（ｋ＝−ｉ）から第（ｉ＋１）番目（ｋ＝ｉ＋１）までの合計「２（ｉ＋１）」個のサンプル画素Ｐ−ｉ，Ｐ−ｉ＋１，…，Ｐ−１，Ｐ０，Ｐ１，Ｐ２，…，Ｐｉ，Ｐｉ＋１を用いたキュービック・スプライン補間法に適用するための式ということになる。この場合も、補間区間はあくまでも０≦ｘ＜１であり、補間値を求める対象となる新画素Ｑ（位置は座標値ｘ）は、サンプル画素Ｐ０，Ｐ１の間に定義されていなければならない。このように合計「２（ｉ＋１）」個のサンプル画素を用いた補間を行う場合、（数式１６）に示すように、「２（ｉ＋１）」個の画素値ｆ−ｉ，ｆ−ｉ＋１，…，ｆ−１，ｆ０，ｆ１，ｆ２，…，ｆｉ，ｆｉ＋１と、「２（ｉ＋１）」個の補間係数ｃ−ｉ，ｃ−ｉ＋１，…，ｃ−１，ｃ０，ｃ１，ｃ２，…，ｃｉ，ｃｉ＋１と、を含む式が定義されることになる。
【００３７】
この（数式１６）のような一般式を、補間係数ｃ−ｉ，ｃ−ｉ＋１，…，ｃ−１，ｃ０，ｃ１，ｃ２，…，ｃｉ，ｃｉ＋１について解いた結果は、本願発明者が知る限り、いずれの文献にも示されていない。しかし、本願発明者の着想に係る上記アプローチは、この（数式１６）に示す一般式に対しても適用可能である。すなわち、この（数式１６）の「２（ｉ＋１）」行「２（ｉ＋１）」列の行列式についても、（数式１１）を（数式１２）の形に還元したのと同様の手法により、「２（ｉ＋１）−１」行「２（ｉ＋１）−１」列の行列式に還元することができる。この場合、たとえば、画素値ｆ−ｉ，ｆ−ｉ＋１は、
【数１７】
0004672499.tif 000018
のような値をもつファクターに置き換えられることになる。この（数式１７）は、（数式１３）のファクターｇ−１に関する式に相当する。したがって、（数式１１）の画素値ｆ−２，ｆ−１を、（数式１２）では、ファクターｇ−１に置き換えたのと同様に、（数式１６）の画素値ｆ−ｉ，ｆ−ｉ＋１を、（数式１７）に示すファクターに置き換えることができ、また、（数式１６）の画素値ｆｉ，ｆｉ＋１も同様のファクターに置き換えることができる。
【００３８】
このような処理を順に繰り返してゆけば、結局、（数式１６）は（数式１２）に示す形まで還元することができる。別言すれば、（数式１２）は、（数式１１）に示すような６個のサンプル画素を用いた補間式の還元形だけではなく、（数式１６）に示すような「２（ｉ＋１）個」のサンプル画素を用いた一般化した補間式の還元形にもなっている。
【００３９】
もっとも、この場合、重み係数ｗについても、ｉを用いた一般化が必要になる。具体的には、ｉ＝０の場合に相当する重み係数の初期値をｗ０＝２と定義し、
【数１８】
0004672499.tif 000019
なる漸化式により、任意のｉの値に関する重み係数ｗｉを定義する。具体的には、ｗ０＝２，ｗ１＝７／２，ｗ２＝２６／７，…となる。そして、（数式１２）に示されているファクターｇ−１，ｇ２およびｗを、
【数１９】
0004672499.tif 000020
のように定義すれば、（数式１２）を、「２（ｉ＋１）個」のサンプル画素を用いた一般化した補間式の還元形として取り扱うことができる。
【００４０】
たとえば、（数式１３）に示されているｇ−１，ｇ２，ｗは、ｉ＝２に設定した場合（すなわち、６個のサンプル画素を用いて補間を行う場合）の各ファクターおよび重み係数に相当し、（数式１９）にｉ＝２を代入することによって得られることになる。
【００４１】
前述したとおり、（数式１２）を、ｃ−１，ｃ０，ｃ１，ｃ２について解いてやると、（数式１４）が得られ、補間係数は、ｃ−１，ｃ０，ｃ１，ｃ２の４個だけになる。そして、これらを（数式６）に代入してやれば、（数式１５）が得られる。結局、サンプル画素を「２（ｉ＋１）個」用いる一般化した場合も、（数式１５）をそのまま適用することが可能であり、その際に、ｇ−１，ｇ２，ｗの値を、（数式１９）を用いて計算すればよいことになる。
【００４２】
（数式１５）は、位置ｘに関する三次多項式「ｆ（ｘ）＝Ａｘ３＋Ｂｘ２＋Ｃｘ＋Ｄ」の形式になっており、各係数Ａ，Ｂ，Ｃ，Ｄは、画素値ｆ−１，ｆ０と、（数式１９）に示す２つのファクターｇ−１，ｇ２および重み係数ｗによって求めることができる。
【００４３】
ここで、（数式１９）の上段の式に示すとおり、ファクターｇ−１は、合計ｉ個の画素値ｆ−ｉ，ｆ−ｉ＋１，ｆ−ｉ＋２，…，ｆ−ｉ＋（ｉ−２），ｆ−ｉ＋（ｉ−１）と重み係数ｗ１，ｗ２，…，ｗｉ−１とによって求まるファクターである。これらｉ個の画素値は、結局、図４に示すように、第（−ｉ）番目（ｋ＝−ｉ）から第（−１）番目（ｋ＝−１）までのサンプル画素Ｐ−ｉ，…，Ｐ−１、すなわち、補間区間の左側に隣接して連続配置されたｉ個の画素の画素値ということになる。本願では、便宜上、このサンプル画素Ｐ−ｉ，…，Ｐ−１のように、補間区間の左側に隣接して連続配置された「補間に利用する所定数の画素」を左側補間用画素と呼ぶことにし、ｇ−１を左側影響ファクターと呼ぶことにする。もちろん、図４の更に左側に、たとえば、第（−ｉ−１）番目（ｋ＝−ｉ−１）の画素が配置されていても、補間に利用されない画素であれば、それはサンプル画素ではなく、左側補間用画素には該当しない。
【００４４】
一方、（数式１９）の中段の式に示すとおり、ファクターｇ２は、合計ｉ個の画素値ｆｉ＋１，ｆｉ，ｆｉ−１，…，ｆｉ＋（３−ｉ），ｆｉ＋（２−ｉ）と重み係数ｗ１，ｗ２，…，ｗｉ−１とによって求まるファクターである。これらｉ個の画素値は、結局、図４に示すように、第（ｉ＋１）番目（ｋ＝ｉ＋１）から第２番目（ｋ＝２）までのサンプル画素Ｐｉ＋１，…，Ｐ２、すなわち、補間区間の右側に隣接して連続配置されたｉ個の画素の画素値ということになる。本願では、便宜上、このサンプル画素Ｐｉ＋１，…，Ｐ２のように、補間区間の右側に隣接して連続配置された「補間に利用する所定数の画素」を右側補間用画素と呼ぶことにし、ｇ２を右側影響ファクターと呼ぶことにする。もちろん、図４の更に右側に、たとえば、第（ｉ＋２）番目（ｋ＝ｉ＋２）の画素が配置されていても、補間に利用されない画素であれば、それはサンプル画素ではなく、右側補間用画素には該当しない。
【００４５】
なお、図４に示すように、本願では、補間区間の左右の区間端に位置する２つの画素Ｐ０，Ｐ１を、区間端画素と呼ぶことにする。結局、サンプル画素を「２（ｉ＋１）個」だけ用いる一般論に拡張した場合、区間端画素Ｐ０，Ｐ１の画素値ｆ０，ｆ１と、ｉ個の左側補間用画素Ｐ−ｉ，…，Ｐ−１の画素値ｆ−ｉ，…，ｆ−１と、ｉ個の右側補間用画素Ｐｉ＋１，…，Ｐ２の画素値ｆｉ＋１，…，ｆ２と、新画素Ｑの位置ｘと、が与えられれば、（数式１５）および（数式１９）に基づいて、新画素Ｑの画素値ｆ（ｘ）を求めることができる。これが、本発明に係る補間演算装置の基本となる原理である。
【００４６】
図５は、この基本原理に用いられる数式の相互関係を示す図である。図の上段に示す（数式１５）は、画素値ｆ（ｘ）を求めるための基本式であり、位置ｘに関する三次多項式「ｆ（ｘ）＝Ａｘ３＋Ｂｘ２＋Ｃｘ＋Ｄ」の形式になっている。この（数式１５）における変数は、図の右脇に示したとおり、新画素Ｑの位置ｘ、区間端画素の画素値ｆ０，ｆ１、左側影響ファクターｇ−１、右側影響ファクターｇ２、重み係数ｗである。
【００４７】
図の中段に示す（数式１９）は、上段の（数式１５）に変数として用いられる左側影響ファクターｇ−１、右側影響ファクターｇ２、重み係数ｗの計算式である。この（数式１９）における変数は、図の右脇に示したとおり、左側補間用画素の画素値ｆ−ｉ〜ｆ−１、右側補間用画素の画素値ｆ２〜ｆｉ＋１、重み係数ｗｉ（ｉ＝１，２，３，…）である。
ここで、重み係数ｗｉは、各サンプル画素について、補間区間からの距離に応じた重みづけを示す係数ということができる。もっとも、「第ｊ番目の重み係数ｗｊが、第ｊ番目のサンプル画素Ｐｊの重みを示す」というような単純な重みづけを示す係数にはなっておらず、１つの重み係数は、多数のサンプル画素の重みづけに影響を与えることになる。
【００４８】
たとえば、図５の中段に示す（数式１９）の第１式は、左側影響ファクターｇ−１を求める式であるが、最初の項として記述されている第（−ｉ）番目の画素値ｆ−ｉに着目すると、重み係数ｗ１，ｗ２，…，ｗｉ−１の逆数が順次乗じられてゆくことになるが、最後の項として記述されている第（−１）番目の画素値ｆ−１（図では、説明の便宜上、ｆ−ｉ＋（ｉ−１）と記述されている）に着目すると、重み係数は全く乗じられておらず、その１つ手前の項として記述されている第（−２）番目の画素値ｆ−２（図では、説明の便宜上、ｆ−ｉ＋（ｉ−２）と記述されている）に着目すると、重み係数ｗｉ−１の逆数のみが乗じられている。これは、補間区間から遠い画素の画素値ほど、重み係数の逆数が多数回乗じられることを意味しており、結局、本発明における重み係数は、各サンプル画素について、補間区間からの距離に応じた重みづけを示すパラメータということになる。
【００４９】
図５の下段に示す（数式１８）は、この重み係数ｗｉの計算式であり、ｗ０＝２を初期値とした漸化式の形式で与えられている。この漸化式を用いることにより、重み係数は、ｗ１＝７／２，ｗ２＝２６／７，…のように、必要な数だけ予め計算して求めておくことができ、求めた値をテーブルに格納しておくことができる。したがって、実際の補間演算では、この（数式１８）に基づく計算を行う必要はなく、このテーブルから必要な重み係数を読み出す処理を行えばよい。
【００５０】
結局、補間区間内の任意の位置ｘに定義された新画素Ｑの画素値を求めるには、まず、補間に用いるサンプル画素の合計を示すパラメータｉを決め、図４に示すように、合計ｉ個の左側補間用画素Ｐ−ｉ〜Ｐ−１の画素値ｆ−ｉ〜ｆ−１と、合計ｉ個の右側補間用画素Ｐ２〜Ｐｉ＋１の画素値ｆ２〜ｆｉ＋１とを求め、上記テーブルから必要な重み係数ｗ１，ｗ２，…，ｗｉ−１を読み出し、図５の（数式１９）に基づいて、左側影響ファクターｇ−１、右側影響ファクターｇ２、重み係数ｗを求める処理を行えばよい。そして、その後、区間端画素Ｐ０，Ｐ１の画素値ｆ０，ｆ１と、新画素Ｑの位置ｘと、既に求められているファクターｇ−１，ｇ２と、重み係数ｗと、を用いて、図５の（数式１５）に基づいて、画素値ｆ（ｘ）を計算すればよい。
【００５１】
このように、本発明に固有のアプローチによれば、まず、前段階として、図４に示すように、左側補間用画素Ｐ−ｉ〜Ｐ−１の画素値ｆ−ｉ〜ｆ−１によって、これらの画素値が三次多項式「ｆ（ｘ）＝Ａｘ３＋Ｂｘ２＋Ｃｘ＋Ｄ」の各係数に与える影響を示す左側影響ファクターｇ−１を計算し、同様に、右側補間用画素Ｐ２〜Ｐｉ＋１の画素値ｆ２〜ｆｉ＋１によって、これらの画素値が三次多項式「ｆ（ｘ）＝Ａｘ３＋Ｂｘ２＋Ｃｘ＋Ｄ」の各係数に与える影響を示す右側影響ファクターｇ２を計算する。そして、後段階として、この前段階の演算結果と、図４に示す区間端画素Ｐ０〜Ｐ１の画素値ｆ０〜ｆ１および位置ｘを用いて、画素値ｆ（ｘ）を計算する、というプロセスを経ることになる。
【００５２】
このようなプロセスに基づくキュービック・スプライン補間処理は、補間に用いるサンプル画素数を任意に設定した場合にも適用可能であり、しかも非常に効率的な演算が可能になる。特に、上記前段階の演算および後段階の演算の双方に利用される重み係数は、予めテーブルの形式で格納された定数として用意しておくことができるので、補間演算を行う際には、このテーブルから読み出す処理を行うだけですむ。
【００５３】
＜＜＜  §３．  基本的実施形態に係る補間演算装置  ＞＞＞
続いて、本発明の基本的な実施形態に係る補間演算装置１００の構成を、図６のブロック図を参照しながら説明する。図示のとおり、この装置は、データ入力部１０、左側影響ファクター演算部２０、右側影響ファクター演算部３０、補間値演算部４０、重み係数格納部５０によって構成されている。
【００５４】
この補間演算装置１００は、それぞれ所定の画素値を有する複数の画素を所定ピッチで配列した一次元画素配列に基づいて、２つの隣接画素Ｐ０，Ｐ１を両端点とする補間区間内の任意の位置ｘに定義された新画素Ｑについての画素値ｆ（ｘ）を、位置ｘに関する三次多項式「ｆ（ｘ）＝Ａｘ３＋Ｂｘ２＋Ｃｘ＋Ｄ」を用いた補間演算を行って求める機能をもった装置である。
【００５５】
図６の上段には、この補間演算の対象となる一次元画素配列の概念図が示されている。この一次元画素配列は、図４に示すものと全く同じものであり、ｘ軸上の「０≦ｘ＜１」なる補間区間上の位置ｘに新たに定義された新画素Ｑの画素値ｆ（ｘ）を、「２（ｉ＋１）」個のサンプル画素の画素値に基づいて求めるキュービック・スプライン補間処理が行われることになる。
【００５６】
すなわち、一次元画素配列において隣接する第０番目の画素Ｐ０と第１番目の画素Ｐ１とを区間端画素とし、所定の整数ｉ（ｉ≧１）について、第（−ｉ）番目の画素Ｐ−ｉから第（−１）番目の画素Ｐ−１までの合計ｉ個の画素が左側補間用画素として定義され、第２番目の画素Ｐ２から第（ｉ＋１）番目の画素Ｐｉ＋１までの合計ｉ個の画素が左側補間用画素として定義されている。そして、Ｓ＝２（ｉ＋１）個のサンプル画素が定義され、区間端画素Ｐ０の位置を０，区間端画素Ｐ１の位置を１として、０≦ｘ＜１の範囲内の位置ｘに新画素Ｑが定義されることになる。
【００５７】
データ入力部１０は、補間区間の両端にある区間端画素Ｐ０，Ｐ１の画素値ｆ０，ｆ１と、補間区間の左側に隣接して連続配置された「補間に利用する所定数の画素」（図示の例ではｉ個の画素）である左側補間用画素Ｐ−ｉ〜Ｐ−１の画素値ｆ−ｉ〜ｆ−１と、補間区間の右側に隣接して連続配置された「補間に利用する所定数の画素」（図示の例ではｉ個の画素）である右側補間用画素Ｐ２〜Ｐｉ＋１の画素値ｆ２〜ｆｉ＋１と、新画素Ｑの位置ｘと、を入力する機能を有する。実際には、これらの各データを取り込んで、一時的に保持するバッファ回路によって、データ入力部１０を構成することができる。
【００５８】
一方、重み係数格納部５０は、各サンプル画素について、補間区間からの距離に応じた重みづけを示す重み係数を格納する機能をもった構成要素である。すなわち、（数式１８）に示したｗｉ＝４−（１／ｗｉ−１）なる漸化式（但し、ｗ０＝２）で示される各重み係数ｗ１，ｗ２，ｗ３，…，ｗｉの値が格納されている。具体的には、前述したとおり、この漸化式によって予め計算して求めた重み係数ｗ１＝７／２，ｗ２＝２６／７，…などの値をテーブルとして格納したレジスタ回路によって、重み係数格納部５０を構成することができる。
【００５９】
左側影響ファクター演算部２０は、データ入力部１０によって入力された左側補間用画素の各画素値ｆ−ｉ〜ｆ−１と、重み係数格納部５０内のテーブルから読み出した重み係数ｗ１〜ｗｉ−１とに基づいて、左側影響ファクターｇ−１を演算する機能をもった構成要素である。この左側影響ファクターｇ−１は、左側補間用画素の各画素値ｆ−ｉ〜ｆ−１が三次多項式「ｆ（ｘ）＝Ａｘ３＋Ｂｘ２＋Ｃｘ＋Ｄ」の係数に与える影響を示すファクターであり、前述したとおり、図５の（数式１９）の第１式、すなわち、
ｇ−１＝−１／ｗｉ−１（…（−１／ｗ２（−１／ｗ１（−１／４・ｆ−１＋ｆ−ｉ＋１）＋ｆ−ｉ＋２）…）＋ｆ−ｉ＋（ｉ−２））＋ｆ−ｉ＋（ｉ−１）
なる演算式に基づいて求めることができる。
【００６０】
また、右側影響ファクター演算部３０は、データ入力部１０によって入力された右側補間用画素の各画素値ｆ２〜ｆｉ＋１と、重み係数格納部５０内のテーブルから読み出した重み係数ｗ１〜ｗｉ−１とに基づいて、右側影響ファクターｇ２を演算する機能をもった構成要素である。この右側影響ファクターｇ２は、右側補間用画素の各画素値ｆ２〜ｆｉ＋１が三次多項式「ｆ（ｘ）＝Ａｘ３＋Ｂｘ２＋Ｃｘ＋Ｄ」の係数に与える影響を示すファクターであり、前述したとおり、図５の（数式１９）の第２式、すなわち、
ｇ２＝−１／ｗｉ−１（…（−１／ｗ２（−１／ｗ１（−１／４・ｆｉ＋１＋ｆｉ）＋ｆｉ−１）…）＋ｆｉ＋（３−ｉ））＋ｆｉ＋（２−ｉ）なる演算式に基づいて求めることができる。
【００６１】
ここで、左側影響ファクター演算部２０および右側影響ファクター演算部３０で実行される演算は、図５の（数式１９）に示されているとおり、積和演算の繰り返しであるから、これら演算部２０，３０は、一般的な乗算器と加算器との組み合わせにより実現することができる。
【００６２】
一方、補間値演算部４０は、データ入力部１０によって入力された区間端画素の各画素値ｆ０，ｆ１と、左側影響ファクター演算部２０で演算された左側影響ファクターｇ−１と、右側影響ファクター演算部３０で演算された右側影響ファクターｇ２と、重み係数格納部５０内のテーブルから読み出した重み係数ｗｉとに基づいて、三次多項式「ｆ（ｘ）＝Ａｘ３＋Ｂｘ２＋Ｃｘ＋Ｄ」の各係数Ａ，Ｂ，Ｃ，Ｄを決定し、データ入力部１０によって入力された位置ｘを、この三次多項式に代入した演算を行うことにより、画素値ｆ（ｘ）を求める機能をもった構成要素である。前述したとおり、この演算は、図５の（数式１５）に基づいて実行される。なお、この（数式１５）に示されているとおり、係数Ｄは、一方の区間端画素の画素値ｆ０に等しくなるので、実際には、何ら演算を行うことなく決定することができる。
【００６３】
図７は、図６に示す補間演算装置１００における補間値演算部４０の構成例を示すブロック図である。ここで、三次係数演算器４１Ａは、三次係数Ａを求める演算を行い、二次係数演算器４１Ｂは、二次係数Ｂを求める演算を行い、一次係数演算器４１Ｃは、一次係数Ｃを求める演算を行う。いずれも、区間端画素の各画素値ｆ０，ｆ１と、左側影響ファクターｇ−１と、右側影響ファクターｇ２と、重み係数ｗと、に基づいて、各係数を求める演算を実行する。
【００６４】
具体的には、図５の（数式１５）に示すとおり、三次係数演算器４１Ａは、Ａ＝１／（３ｗ−１）｛−６ｇ−１＋（３ｗ＋１）（ｆ０−ｆ１）＋６ｇ２｝なる演算を行い、二次係数演算器４１Ｂは、Ｂ＝３／（（５ｗ−１）（３ｗ−１））｛６（４ｗ−１）ｇ−１−（９ｗ２＋２ｗ−１）ｆ０＋６ｗ２ｆ１−６ｗｇ２｝なる演算を行い、一次係数演算器４１Ｃは、３／（（５ｗ−１）（３ｗ−１））｛−２（７ｗ−２）ｇ−１−（ｗ２＋４ｗ＋１）ｆ０＋２ｗ（２ｗ−１）ｆ１−２（２ｗ−１）ｇ２｝なる演算を行う。前述したとおり、係数Ｄについては、Ｄ＝ｆ０になるため、演算は不要である。
【００６５】
一方、平方・立方演算器４２は、与えられた位置ｘの平方値ｘ２および立方値ｘ３を演算する構成要素である。また、三次係数乗算器４３Ａは、三次係数演算器４１Ａで求められた三次係数Ａと平方・立方演算器４２で求められた立方値ｘ３との乗算を行い、Ａｘ３を求める。そして、二次係数乗算器４３Ｂは、二次係数演算器４１Ｂで求められた二次係数Ｂと平方・立方演算器４２で求められた平方値ｘ２との乗算を行い、Ｂｘ２を求める。更に、一次係数乗算器４３Ｃは、一次係数演算器４１Ｃで求められた一次係数Ｃと与えられた位置ｘとの乗算を行い、Ｃｘを求める。
【００６６】
最後に、加算器４４によって、Ａｘ３＋Ｂｘ２＋Ｃｘ＋Ｄなる加算が行われ、画素値ｆ（ｘ）が求められる。
【００６７】
＜＜＜  §４．  より効率的な実施形態  ＞＞＞
図７に示す補間値演算部４０は、結局、三次多項式「ｆ（ｘ）＝Ａｘ３＋Ｂｘ２＋Ｃｘ＋Ｄ」をこの式のとおりに演算することにより、画素値ｆ（ｘ）を求める処理を行っている。そのため、ｘの３乗、２乗、１乗の各係数ともに各々乗算する必要があり、演算器の個数が多くならざるを得ない。そこで、ここでは、より効率的な演算が可能な補間値演算部４０の実施形態を述べる。
【００６８】
既に述べたとおり、補間値演算部４０は、図５の（数式１５）に基づいて、「ｆ（ｘ）＝Ａｘ３＋Ｂｘ２＋Ｃｘ＋Ｄ」の形をした三次多項式の演算を行う構成要素であるが、ｆ（ｘ）を計算するのに、必ずしもこの４つの係数Ａ，Ｂ，Ｃ，Ｄを直接示す値を算出する必要はない。
【００６９】
いま、
【数２０】
0004672499.tif 000021
のような式を考える。この（数式２０）の第１式、第２式、第３式は、いずれも全く等価な式である。ここで、第３式に注目すると、これは、「ｆ（ｘ）＝Ａｘ３＋Ｂｘ２＋Ｃｘ＋Ｄ」の形をした三次多項式について、大文字で示す係数Ａ，Ｂ，Ｃ，Ｄの代わりに、Ａ＝（ａ−ｂ），Ｂ＝（ｂ−ｃ），Ｃ＝（ｃ−ｄ），Ｄ＝ｄとなるように定義された小文字で示す係数ａ，ｂ，ｃ，ｄを用いて表現した式ということがわかる。ここでは、これら小文字で示す係数ａ，ｂ，ｃ，ｄを補助係数と呼ぶことにする。
【００７０】
さて、Ａ＝（ａ−ｂ），Ｂ＝（ｂ−ｃ），Ｃ＝（ｃ−ｄ），Ｄ＝ｄという関係を定義すれば、結局、上記（数式２０）は、三次多項式「ｆ（ｘ）＝Ａｘ３＋Ｂｘ２＋Ｃｘ＋Ｄ」と全く等価な式ということになるので、図６に示す補間値演算部４０では、この（数式２０）を用いて、画素値ｆ（ｘ）の計算を行ってもかまわないことになる。もちろん、補助係数ａ，ｂ，ｃ，ｄの値は、係数Ａ，Ｂ，Ｃ，Ｄの値とは異なるので、補助係数ａ，ｂ，ｃ，ｄを求めるための演算式が必要になる。上述したＡ＝（ａ−ｂ），Ｂ＝（ｂ−ｃ），Ｃ＝（ｃ−ｄ），Ｄ＝ｄという関係を考慮すると、補助係数ａ，ｂ，ｃ，ｄの値は、区間端画素の各画素値ｆ０，ｆ１と、左側影響ファクターｇ−１と、右側影響ファクターｇ２と、重み係数ｗと、を用いることにより、
【数２１】
0004672499.tif 000022
なる式で求めることができる。
【００７１】
かくして、補間値演算部４０では、係数Ａ，Ｂ，Ｃ，Ｄの代わりに、Ａ＝（ａ−ｂ），Ｂ＝（ｂ−ｃ），Ｃ＝（ｃ−ｄ），Ｄ＝ｄとなるように定義された補助係数ａ，ｂ，ｃ，ｄを上記（数式２１）に基づいて決定し、三次多項式「ｆ（ｘ）＝Ａｘ３＋Ｂｘ２＋Ｃｘ＋Ｄ」の代わりに、（数式２０）の第１式として示す三次多項式「ｆ（ｘ）＝［｛ａｘ＋ｂ（１−ｘ）｝ｘ＋ｃ（１−ｘ）］ｘ＋ｄ（１−ｘ）」に位置ｘを代入した演算により画素値ｆ（ｘ）を求めることができる。このように、係数Ａ，Ｂ，Ｃ，Ｄの代わりに補助係数ａ，ｂ，ｃ，ｄを用いる演算を採用すると、次の２つのメリットが得られる。
【００７２】
第１のメリットは、係数の演算を効率化できる点である。上記（数式２１）をよく見ると、補助係数ａ＝ｆ１、補助係数ｄ＝ｆ０となっていることがわかる。すなわち、補助係数ａ，ｄは、区間端画素の画素値ｆ１，ｆ０そのままであり、何ら演算を行う必要はない。結局、補助係数の演算プロセスでは、補助係数ｂ，ｃを求める演算と、この演算に必要なファクターｇ−１，ｇ２および重み係数ｗを求める演算とを実行すれば足りる。たとえば、パラメータｉ＝４に設定した場合、合計１０個のサンプル画素（画素値ｆ−４〜ｆ５）を用いた補間を行うことになるが、実際の演算は、
【数２２】
0004672499.tif 000023
のような演算を行えばよい。この（数式２２）において、ｈ−１＝−ｆ−４＋４ｆ−３−１４ｆ−２＋５２ｆ−１とおき、ｈ２＝ｆ５−４ｆ４＋１４ｆ３−５２ｆ２とおけば、
【数２３】
0004672499.tif 000024
のような形式で演算を行うことにより、ｈ−１，ｈ２を求め、更に、補助係数ｂ，ｃを求めることができる。これは、単なるシフト演算と積和の演算により、補助係数ｂ，ｃを算出できることを意味している。
【００７３】
そして、第２のメリットは、補助係数ａ，ｂ，ｃ，ｄを用いてｆ（ｘ）を求める演算も効率化できる点である。これは、ｆ（ｘ）についての三次多項式が、（数式２０）の第１式として示すように、「ｆ（ｘ）＝［｛ａｘ＋ｂ（１−ｘ）｝ｘ＋ｃ（１−ｘ）］ｘ＋ｄ（１−ｘ）」なる形になっているためである。この多項式は、上述したとおり、「ｆ（ｘ）＝Ａｘ３＋Ｂｘ２＋Ｃｘ＋Ｄ」と等価であるが、一見したところ、かなり複雑な式になっているように見える。しかしながら、この形の式にすれば、既存の線形補間演算器を３段階直列に接続することにより、ｆ（ｘ）の値を算出することができる、という特有のメリットが得られるのである。以下に、その理由を述べる。
【００７４】
いま、ｘ軸上に２つの画素Ｐａ，Ｐｂが存在し、これら両画素の間に、新画素Ｐを定義する場合を考える。ここで、画素Ｐａは座標値ｘ＝０の位置に配置されており、画素Ｐｂは座標値ｘ＝１の位置に配置されており、新画素Ｐは座標値α（但し、０≦α≦１）の位置に配置されているものとする。また、各画素Ｐａ，Ｐｂ，Ｐの画素値を、同じ記号Ｐａ，Ｐｂ，Ｐで表すものとする。
【００７５】
この場合、新画素Ｐの画素値Ｐを単純な線形補間によって求めると、
【数２４】
0004672499.tif 000025
なる式で求めることができる。ここで、（１−α）とαとは、画素値Ｐａ，Ｐｂに対する重み係数であり、この（数式２４）の第２式は、二進演算としての式を示している。すなわち、ｍは小数点以下の最下位桁位置を表しており、また、αが
【数２５】
0004672499.tif 000026
のようなビット列であったとすると、αのバーは、
【数２６】
0004672499.tif 000027
のように各ビットを反転させた値を示している。また、各画素値Ｐａ，Ｐｂ，Ｐも、二進数により、
【数２７】
0004672499.tif 000028
のようなビット列で示される。このような式に基づく補間演算を行う演算器は、比較的単純な構成で実現することが可能である。なお、画素値ＰａとＰｂとは、αによって排他的に表されるから、セレクタ論理が適用でき、桁上げ処理が削減できるメリットが得られる。
【００７６】
さて、このように、「Ｐ＝（１−α）Ｐａ＋αＰｂ」なる演算が、比較的単純な構成をもった線形補間演算器によって実行できることを考えると、前掲の式「ｆ（ｘ）＝［｛ａｘ＋ｂ（１−ｘ）｝ｘ＋ｃ（１−ｘ）］ｘ＋ｄ（１−ｘ）」が、線形補間演算器を３段階接続することにより演算可能であることが理解できよう。すなわち、「ａｘ＋ｂ（１−ｘ）」の部分に着目して、ａ＝Ｐｂ，ｂ＝Ｐａ，α＝ｘに置き換えてみれば、この演算は、上記線形補間演算器による「Ｐ＝（１−α）Ｐａ＋αＰｂ」なる演算と同じである。したがって、「ａｘ＋ｂ（１−ｘ）」の部分は、第１段目の線形補間演算器によって演算することができる。次に、「｛ａｘ＋ｂ（１−ｘ）｝ｘ＋ｃ（１−ｘ）」の部分に着目して、｛ａｘ＋ｂ（１−ｘ）｝＝Ｐｂ，ｃ＝Ｐａ，α＝ｘに置き換えてみれば、この演算も、上記線形補間演算器による「Ｐ＝（１−α）Ｐａ＋αＰｂ」なる演算と同じである。したがって、この部分は、第２段目の線形補間演算器によって演算することができる。最後に、全体の式［｛ａｘ＋ｂ（１−ｘ）｝ｘ＋ｃ（１−ｘ）］ｘ＋ｄ（１−ｘ）に着目して、［｛ａｘ＋ｂ（１−ｘ）｝ｘ＋ｃ（１−ｘ）］＝Ｐｂ，ｄ＝Ｐａ，α＝ｘに置き換えてみれば、この演算も、上記線形補間演算器による「Ｐ＝（１−α）Ｐａ＋αＰｂ」なる演算と同じである。したがって、この部分は、第３段目の線形補間演算器によって演算することができる。
【００７７】
このように、補間値演算部４０による演算として、係数Ａ，Ｂ，Ｃ，Ｄの代わりに、補助係数ａ，ｂ，ｃ，ｄを決定し、三次多項式「ｆ（ｘ）＝Ａｘ３＋Ｂｘ２＋Ｃｘ＋Ｄ」の代わりに、三次多項式「ｆ（ｘ）＝［｛ａｘ＋ｂ（１−ｘ）｝ｘ＋ｃ（１−ｘ）］ｘ＋ｄ（１−ｘ）」を用いた演算を行うと、実用上、極めて効率的な演算処理が可能になる。図８は、このような演算処理を実行するための補間値演算部４０の構成例を示すブロック図である。
【００７８】
図示のとおり、この図８に示す補間値演算部４０は、第一補助係数演算器４５、第二補助係数演算器４６、第一段線形補間演算器４７、第二段線形補間演算器４８、第三段線形補間演算器４９によって構成されている。
【００７９】
ここで、第一補助係数演算器４５は、区間端画素の各画素値ｆ０，ｆ１と、左側影響ファクターｇ−１と、右側影響ファクターｇ２と、重み係数ｗと、を用いて、補助係数ｂを、図示のとおり、ｂ＝（６ｇ−１−（３ｗ＋１）ｆ０＋６ｗｆ１−６ｇ２）／（３ｗ−１）なる式（前掲の数式２１に示す式）により算出する機能を有する。また、第二補助係数演算器４６は、区間端画素の各画素値ｆ０，ｆ１と、左側影響ファクターｇ−１と、右側影響ファクターｇ２と、重み係数ｗと、を用いて、補助係数ｃを、図示のとおり、ｃ＝１／（（３ｗ−１）（５ｗ−１））（−６（７ｗ−２）ｇ−１＋２（６ｗ２＋２ｗ−１）ｆ０＋６ｗ（２ｗ−１）ｆ１−６（２ｗ−１）ｇ２）なる式（前掲の数式２１に示す式）により算出する機能を有する。
【００８０】
これに対して、各段の線形補間演算器４７，４８，４９は、いずれも前述した「Ｐ＝（１−α）Ｐａ＋αＰｂ」なる演算機能をもった線形補間演算器である。ここで、第一段線形補間演算器４７には、第一補助係数演算器４５の演算結果としての補助係数ｂが与えられ、第二段線形補間演算器４８には、第二補助係数演算器４６の演算結果としての補助係数ｃが与えられる。そして、第一段線形補間演算器４７は、一方の区間端画素Ｐ１の画素値ｆ１を補助係数ａとして入力し、補助係数ａ，ｂと位置ｘとに基づく線形補間演算を行うことにより｛ａｘ＋ｂ（１−ｘ）｝の値を求める。また、第二段線形補間演算器４８は、この｛ａｘ＋ｂ（１−ｘ）｝の値，補助係数ｃ，位置ｘに基づく線形補間演算を行うことにより［｛ａｘ＋ｂ（１−ｘ）｝ｘ＋ｃ（１−ｘ）］の値を求める。そして、最後の第三段線形補間演算器４９は、他方の区間端画素Ｐ０の画素値ｆ０を補助係数ｄとして入力し、［｛ａｘ＋ｂ（１−ｘ）｝ｘ＋ｃ（１−ｘ）］の値，補助係数ｄ，位置ｘに基づく線形補間演算を行うことによりｆ（ｘ）＝［｛ａｘ＋ｂ（１−ｘ）｝ｘ＋ｃ（１−ｘ）］ｘ＋ｄ（１−ｘ）の値を求める。
【００８１】
このように、図８に示す補間値演算部は、図７に示す補間値演算部と同等の機能を果たすことができ、しかも回路構成は非常に単純になるので、より効率的な演算が可能になる。
【００８２】
＜＜＜  §５．  二次元画像の補間演算  ＞＞＞
これまで、本発明を一次元画素配列に対する補間演算を行う実施形態について述べてきたが、画像を拡大・縮小してスケーリング表示を行うという用途では、二次元画像、すなわち、二次元画素配列に対する補間演算を行う必要がある。そこで、ここでは、二次元画素配列に対する補間演算を行う機能をもった補間演算装置の構成例を、図９のブロック図を参照しながら説明する。
【００８３】
この図９に示す補間演算装置は、二次元画素配列用の補間演算装置であるが、これまでの実施形態で述べてきた一次元画素配列用の補間演算装置をそっくり含んでいる。すなわち、図９に示す補間演算装置１００は、これまで述べてきた一次元画素配列用の補間演算装置（たとえば、図６に示す構成を有する装置）である。この図９に示す二次元画素配列用の補間演算装置は、この補間演算装置１００に、更に、画像入力部６１、画像格納部６２、新画素位置入力部６３、補間対象交点決定部６４、行方向演算制御部６５、列方向演算制御部６６を付加することによって構成される。
【００８４】
まず、画像入力部６１は、一般的な二次元画像を入力する機能をもった構成要素であり、画像格納部６２は、入力した二次元画像を格納する機能をもった構成要素である。実際には、画像格納部６２は、画像用のバッファメモリなどにより構成され、画像入力部６１は、このバッファメモリへデータを書き込む装置によって構成される。ここでは、画像格納部６２に格納される二次元画像を、所定ピッチで平行に並んだ行ラインおよびこれらに直交する列ラインの交点位置に、それぞれ所定の画素値を有する複数の画素を配列してなる二次元画素配列として捉え、以下の説明を行うことにする。
【００８５】
図１０は、このような二次元画素配列の一例を示す平面図である。図に示されている９本の水平線が行ライン、９本の垂直線が列ラインであり、各交点位置に描かれている白丸が、それぞれ所定の画素値を有する画素である。ここでは、説明の便宜上、９行９列の画素配列を示すが、もちろん、実際には、より大きな画素配列が二次元画像として取り込まれることになる。
【００８６】
新画素位置入力部６３は、この画像格納部６２に格納されている二次元画像上に定義すべき新画素Ｔ（補間点）の位置を入力する機能を有する。当然、この新画素Ｔは、画像格納部６２に格納されている二次元画素配列上の各画素とは異なる位置に定義される。ここでは、説明の便宜上、図１０に示すような位置に新画素Ｔが定義されたものとしよう。なお、新画素Ｔの位置は、画像の拡大や縮小表示を行う別な装置から指定されることになる。通常は、多数の点が新画素Ｔの位置として指定されることになるが、ここでは、図１０に示すように、第ｍ行目と第（ｍ＋１）行目の間、かつ、第ｎ列目と第（ｎ＋１）列目の間に、１つの新画素Ｔが指定されたものとし、この新画素Ｔについての画素値を補間演算によって決定する処理を述べることにする。
【００８７】
補間対象交点決定部６４は、新画素Ｔの位置が入力されたら、まず、画像格納部６２に格納されている二次元画像上において、当該新画素Ｔの位置を通り、列ラインに平行な参照線Ｒを定義する処理を行う。図１１には、このような参照線Ｒを破線で示した。続いて、この参照線Ｒと各行ラインとの交点のうち、新画素Ｔの近傍の所定個の交点を補間対象交点として決定する。ここで、補間対象交点とすべき交点の数は、補間に用いる画素の数に相当するので、予め定めておくようにする。図１１には、黒丸で描かれた６個の交点Ｕ１〜Ｕ６を補間対象交点として決定した例が示されている。
【００８８】
もちろん、この６個の補間対象交点Ｕ１〜Ｕ６は、この時点では単なる交点であり、何ら画素値は定義されていない。そこで、これら補間対象交点Ｕ１〜Ｕ６に画素としての機能をもたせるために、それぞれに画素値を与える処理を行う。行方向演算制御部６５は、この処理を行う構成要素である。すなわち、この行方向演算制御部６５は、各補間対象交点Ｕ１〜Ｕ６のそれぞれについて、その所属する行ライン上の一次元画素配列を補間演算装置１００に与えることにより、当該補間対象交点の画素値を演算させる処理を行う。
【００８９】
たとえば、図１１に示す例の場合、まず、第（ｍ−２）行目に所属している補間対象交点Ｕ１について、当該行ライン上の一次元画素配列を、補間演算装置１００に与えることにより、補間対象交点Ｕ１についての画素値を補間させる。前述したとおり、補間演算装置１００は、一次元画素配列用の補間演算装置であり、これまで述べた方法で、補間対象交点Ｕ１についての画素値を求めることができる。ここでは、便宜上、第（ｍ−２）行目に×印を記した６個の画素をサンプル画素として、一次元画素配列用の補間演算が実施されたものとしよう。
【００９０】
行方向演算制御部６５は、補間対象交点Ｕ１〜Ｕ６のそれぞれについて、補間演算装置１００を利用して、画素値を演算させる処理を順次行う。その結果、補間対象交点Ｕ１〜Ｕ６には、それぞれ補間値として所定の画素値が与えられ、画素としての機能が与えられることになる。
【００９１】
列方向演算制御部６６は、こうして、参照線Ｒ上に配置された各補間対象交点からなる一次元画素配列を、補間演算装置１００に与えることにより、新画素Ｔの画素値を演算させる処理を行う。図示の例の場合、補間対象交点Ｕ１〜Ｕ６がそれぞれサンプル画素として補間演算装置１００に与えられ、その結果、新画素Ｔに対する画素値が決定される。
【００９２】
結局、図１１に示す例の場合、新画素Ｔの画素値は、第（ｎ−２）列目〜第（ｎ＋３）列目、かつ、第（ｍ−２）行目〜第（ｍ＋３）行目に所属する合計３６個のサンプル画素の画素値を考慮した演算によって決定されることになり、二次元画像に対する補間演算が実行されたことになる。
【００９３】
＜＜＜  §６．  桁上げ保存を行う実施例  ＞＞＞
本発明に係る補間演算装置は、図６に示すように、左側影響ファクター演算部２０、右側影響ファクター演算部３０、補間値演算部４０を備えており、これらの各演算部は、
複数段の演算ユニットにより構成されることになる。この場合、途中段の演算ユニットが、桁上げ伝播の処理を行うことなしに演算を実行できるように構成しておくと、演算を更に効率化することが可能である。
【００９４】
一般に、二進データ同士の演算で、各桁ごとの桁上げを伝播させてゆく処理を行うと、演算処理が複雑になり、効率が低下する。そこで、個々の演算ユニットでは、桁上げ伝播の処理を行うことなしに演算を実行し、これを演算結果として後段の演算ユニットに出力するようにする。このとき、各ビットの桁上げ情報も併せて、後段の演算ユニットに出力する。このような処理を各段の演算ユニットで行うようにし、最終段の演算ユニットにおいて、桁上げ情報を考慮した桁上げ伝播の処理が実行されるようにすれば、より効率的な演算が可能になる。
【産業上の利用可能性】
【００９５】
本発明によれば、Ｓ個×Ｓ個のサンプル画素を用いたバイキュービック・スプライン補間方式の複雑な演算を効率的に実行することが可能なコンパクトなハードウェアからなる補間演算装置を実現することができる。しかも、用いるサンプル画素の個数Ｓ（Ｓ≧４）を選択することができ、精度よく高速に直接補間演算が実行されるので、動画の拡大・縮小スケーリングにおいてリアルタイムに最良な表示を選択して実現できる。このため、産業上、デジタル・テレビのスケーリング表示、デジタル・カメラのデジタル・ズーム表示、医療用画像の高精細ズーム表示、監視カメラの目標物のズーム検出などに利用することができる。
【図面の簡単な説明】
【００９６】
【図１】補間区間の両端に位置する２つのサンプル画素の画素値に基づく単純な線形補間法の概念を示す図である。
【図２】合計４個のサンプル画素の画素値に基づく補間方法の概念を示す図である。
【図３】合計６個のサンプル画素の画素値に基づく補間方法の概念を示す図である。
【図４】合計「２（ｉ＋１）」個のサンプル画素の画素値に基づく補間方法の概念を示す図である。
【図５】本発明に係る補間演算装置の基本原理として用いられる数式の相互関係を示す図である。
【図６】本発明の基本的実施形態に係る補間演算装置の構成を示すブロック図である。
【図７】図６に示す補間演算装置における補間値演算部４０の構成例を示すブロック図である。
【図８】図６に示す補間演算装置における補間値演算部４０の別な構成例を示すブロック図である。
【図９】二次元画像についての補間演算を行う機能をもった補間演算装置の構成を示すブロック図である。
【図１０】図９に示す補間演算装置の動作を説明するための二次元画素配列を示す平面図である。
【図１１】図９に示す補間演算装置の動作を説明するための二次元画素配列を示す別な平面図である。
【符号の説明】
【００９７】
１０…データ入力部
２０…左側影響ファクター演算部
３０…右側影響ファクター演算部
４０…補間値演算部
４１Ａ…三次係数演算器
４１Ｂ…二次係数演算器
４１Ｃ…一次係数演算器
４２…平方・立方演算器
４３Ａ…三次係数乗算器
４３Ｂ…二次係数乗算器
４３Ｃ…一次係数乗算器
４４…加算器
４５…第一補助係数演算器
４６…第二補助係数演算器
４７…第一段線形補間演算器
４８…第二段線形補間演算器
４９…第三段線形補間演算器
５０…重み係数格納部
６１…画像入力部
６２…画像格納部
６３…新画素位置入力部
６４…補間対象交点決定部
６５…行方向演算制御部
６６…列方向演算制御部
１００…補間演算装置
Ａ，Ｂ，Ｃ，Ｄ…三次多項式の各係数
ａ，ｂ，ｃ，ｄ…補助係数
ｆ−ｉ〜ｆｉ＋１…各サンプル画素の画素値
ｆ（ｘ）…新画素Ｑの画素値
ｇ−１…左側影響ファクター
ｇ２…右側影響ファクター
ｉ…補間に用いるサンプル画素の合計Ｓを示すパラメータ（Ｓ＝２（ｉ＋１））
ｋ…画素番号
ｍ…行番号
ｎ…列番号
Ｐ−ｉ〜Ｐｉ＋１…サンプル画素
Ｑ…新画素（補間点）
Ｒ…参照線
Ｓ…サンプル画素の数
Ｔ…新画素（補間点）
Ｕ１〜Ｕ６…補間対象交点
ｗ，ｗ０〜ｗｉ…重み係数
ｘ…新画素の位置（ｘ座標値）
【図１】
0004672499.tif 000029
【図２】
0004672499.tif 000030
【図３】
0004672499.tif 000031
【図４】
0004672499.tif 000032
【図５】
0004672499.tif 000033
【図６】
0004672499.tif 000034
【図７】
0004672499.tif 000035
【図８】
0004672499.tif 000036
【図９】
0004672499.tif 000037
【図１０】
0004672499.tif 000038
【図１１】
0004672499.tif 000039