(57)【特許請求の範囲】
【請求項１】
複数の要素プロセッサに画素データを供給し、前記複数の要素プロセッサをＳＩＭＤ制御して、各要素プロセッサで、周辺の要素プロセッサが有する画素データを利用して、画像の拡大または縮小に伴う画素データの補間の処理を並列に行う画像処理装置で、
所定の分割数で元の画像の画素間隔を分割したときの各位相に対応するフィルタ係数セットのうち、前記位相が、処理される画素データの位相に最も近いフィルタ係数セットであって、かつ、前記周辺の要素プロセッサと前記所定の要素プロセッサとの位置関係のパターンの種類が最小になるフィルタ係数セットを、前記要素プロセッサにそれぞれ供給し、
前記要素プロセッサが、前記フィルタ係数セットを利用して、前記画素データの補間の処理をそれぞれ行う
ことを特徴とする画像処理装置。
【請求項２】
前記分割数は、２のベキ乗である
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記要素プロセッサは、データを１ビットずつ処理する１ビットプロセッサである
ことを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記フィルタ係数セットは、前記画素データが供給されるときに利用される回路を介して、前記要素プロセッサに供給される
ことを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記要素プロセッサに接続され、前記フィルタ係数セットを記憶する記憶手段をさらに備える
ことを特徴とする請求項１に記載の画像処理装置。
【請求項６】
前記記憶手段は、前記フィルタ係数セットを、前記フィルタ係数セットに対応する位相の順番に従って記憶する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項７】
前記要素プロセッサは、前記フィルタ係数セットを記憶する記憶部と、演算を行うＡＬＵ部を備え、
各要素プロセッサに割り当てられる画素データの位相情報に対応した前記フィルタ係数セットが、前記ＡＬＵ部を介して前記記憶部に供給される
ことを特徴とする請求項１に記載の画像処理装置。
【請求項８】
前記要素プロセッサが前記位相情報をそれぞれ算出する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項９】
前記ＡＬＵ部に接続され、前記フィルタ係数セットを記憶する記憶手段をさらに備え、
前記記憶手段は、前記フィルタ係数セットを、前記フィルタ係数セットに対応する位相の順番に従って記憶する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項１０】
前記要素プロセッサは、その要素プロセッサに割り当てられる画素データの位相情報に対応して、補間に利用されるフィルタ係数セットをそれぞれ算出する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項１１】
前記要素プロセッサが前記位相情報をそれぞれ算出する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項１２】
前記補間演算は、Ｃｕｂｉｃ近似に対応する演算である
ことを特徴とする請求項１に記載の画像処理装置。
【請求項１３】
前記補間演算として、第１の補間方式に従って第１の分割数で第１の補間演算を行った後、前記第１の補間演算の演算結果に対して、第２の補間方式に従って第２の分割数で第２の補間演算を行う
ことを特徴とする請求項１に記載の画像処理装置。
【請求項１４】
前記画素データは、輝度データと色データで構成され、
前記色データは、前記輝度データの補間を行うときに利用されるフィルタ係数セットに対応する前記分割数より少ない分割数で元の画像の画素間隔を分割したときの各位相に対応するフィルタ係数セットを利用して補間される
ことを特徴とする請求項１に記載の画像処理装置。
【請求項１５】
複数の要素プロセッサに画素データを供給し、前記複数の要素プロセッサをＳＩＭＤ制御して、各要素プロセッサで、周辺の要素プロセッサが有する画素データを利用して、画像の拡大または縮小に伴う画素データの補間の処理を並列に行う画像処理方法で、
所定の分割数で元の画像の画素間隔を分割したときの各位相に対応するフィルタ係数セットのうち、前記位相が、処理される画素データの位相に最も近いフィルタ係数セットであって、かつ、前記周辺の要素プロセッサと前記所定の要素プロセッサとの位置関係のパターンの種類が最小になるフィルタ係数セットを、前記要素プロセッサにそれぞれ供給し、
前記要素プロセッサが、前記フィルタ係数セットを利用して、前記画素データの補間の処理をそれぞれ行う
ことを特徴とする画像処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理装置および方法に関し、特に、所定の分割数で元の画像の画素間隔を分割したときの各位相に対応するフィルタ係数セットのうち、位相が、補間演算される画素の位相に最も近いフィルタ係数セットを利用して、画素データの補間演算を行うことにより、任意の倍率の画像の拡大または縮小を行う画像処理装置および方法に関する。
【０００２】
【従来の技術】
テレビジョン受像機などの画像表示器（ディスプレイ）は、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）を使用しているものが多い。このようなディスプレイにおいて、各種画像方式に対応してアナログ的に画像信号を取り扱い、画像を表示する場合、水平走査周波数を変えて対応することが多い。
【０００３】
一方、デジタル的に画像信号を取り扱う場合、ＮＴＳＣやＰＡＬなどの放送伝送方式に応じて、画像の解像度が異なるので、それらの方式でデジタル化された画像の縦方向と横方向の画素数は、放送伝送方式毎に異なる。また、放送伝送方式としては、ＨＤＴＶまで含めていろいろな方式があり、その画素数（解像度）の規格は多様である。そのため、画像データに対してデジタル処理を行うシステムにおいては、これらのすべての伝送方式に対応させる場合、画素数を「補間フィルタ」で変換する必要がある。
【０００４】
さらに、最近普及している液晶ディスプレイやプラズマディスプレイにおいては、表示画像の画素数が所定の数に固定されているため、このようなディスプレイを利用する場合においても、原画像の画素数を、これらのディスプレイに対応する画素数に変換するために補間フィルタが必要となる。
【０００５】
次に、画像の画素数を変換するための補間フィルタの一例について説明する。
【０００６】
まず、画像の拡大または縮小、および、標本化周波数（画素数）の変換について説明する。
【０００７】
画像の拡大または縮小と、画像の標本化周波数（画素数）の変換（解像度の異なる画像規格間の変換）は、どちらも、原画像の各画素位置に対して、元の画像において存在しなかった画素のデータを求める演算を行うことにより実現される。従って、同様の演算操作を行う補間フィルタを利用することにより、上述の２つの処理を行うことが可能である。
【０００８】
図２１は、原画像の一部分の一例を示している。図中の丸印は画素の位置を表している。この部分においては、横方向に８画素、縦方向に６画素が含まれている（便宜上、ここでは画素数を小さい値に設定している）。
【０００９】
次に、この原画像を例えば（１０／７）倍に拡大する場合について説明する。なお、倍率は面積ではなく長さの比で表現するものとする。図２１の画像を拡大する場合、表示画像規格は変えずに、画素の配列（即ち画素間隔など）を、図２１と同一に保つ。そのようにして、拡大の処理を行った場合、その結果の画像は、図２２のようになる。この場合、倍率は、１．４２９（＝１０／７）であるので、画像の１辺の長さは、１．４２９倍され、画素数は、約１．４２９２倍に増加する。
【００１０】
例えば水平方向（水平走査の方向）に対して、原画像においては画素数が８であるが、拡大後には、１１または１２（８×１０／７＝１１．４２９に近い整数）画素になる。従って、拡大後の相似画像における画像の同じ部分に対応する各画素の位置関係は、原画像における位置関係とは異なるので、拡大後の各画素のデータ（輝度や色を表現する）の値は、原画像のそれとは異なることになる。
【００１１】
図２３は、（１０／７）倍の倍率で、画像の拡大した場合における、原画像と拡大後の画像における水平方向の画素の位置関係について示している。
【００１２】
図中、上側のＲｉ（ｉ＝１，２，・・・）は、原画像の画素を表しており、下側のＱｉ（ｉ＝１，２，・・・）は、拡大後の補間画素のデータを表している。Ｒｉに対応する画素は、Ｑｉに対応する画素の間隔の（１０／７）倍の間隔で配置されている。なお、図２３は、水平方向の拡大の様子だけを示しているが、垂直方向についても同様であるので、その説明は省略する。
【００１３】
拡大後の各画素のデータの値は、図２３に示すような原画像の各画素の位置との対応関係に応じて、周辺のいくつかの原画像の画素の値から、補間フィルタ演算、即ち補間関数の畳み込み演算を行うことにより算出する（後述）。
【００１４】
次に、画像の大きさを変化させずに、標本化周波数を例えば（１０／７）倍にする場合を考える。この標本化周波数変換は、解像度が（１０／７）倍だけ高い画像規格に変換することと等価である。即ち、水平方向の画素数は、（１０／７）倍に変更される。この場合、図２１の原画像は、図２４に示すように、１次元的には約１．４２９倍の画素数、即ち１．４２９２倍の面密度を有する画像に変換される。
【００１５】
図２１の各画素と図２２の各画素との対応関係と、図２１の各画素と図２４の各画素との対応関係は、両者とも、図２３に示すようになり、同一であるので、画素数の多い画像規格に変換する演算操作は、上述の画像の拡大の演算操作と同様に行われる。
【００１６】
次に、図２１の原画像を例えば（１０／１３）倍に縮小する場合について説明する。
【００１７】
画像の縮小を行う場合、画像の規格は変えないので、縮小後の画像における画素の配列、即ち画素間隔などは、図２１に示す原画像と同一になる。
【００１８】
図２５は、図２１の原画像を、（１０／１３）倍に縮小した画像を示している。この場合、倍率は、０．７６９（＝１０／１３）であるので、画像の１辺の長さは、０．７６９倍に縮小し、縮小画面を構成する画素数は、約０．７６９２に減少する。
【００１９】
例えば、原画像においては水平方向の画素数が８であるが、縮小後の画像においては、水平方向の画素数は、６または７（８×１０／１３＝６．１５４に近い整数）になる。従って、縮小後の相似画像における画像の同じ部分に対応する各画素の位置関係は、原画像における各画素の位置関係とは異なるので、縮小後の各画素のデータ（輝度や色を表現する）の値は、原画像のそれとは異なる。
【００２０】
図２６は、（１０／１３）倍の倍率で、画像を縮小した場合における、原画像と縮小後の画像における水平方向の画素の位置関係について示している。
【００２１】
図中、上側のＲｉ（ｉ＝１，２，・・・）は、原画像の画素を表しており、下側のＱｉ（ｉ＝１，２，・・・）は、縮小後の補間画素のデータを表している。Ｒｉに対応する画素は、Ｑｉに対応する画素の間隔の（１０／１３）倍の間隔で配置されている。なお、図２６は、水平方向の縮小の様子だけを示しているが、垂直方向についても同様であるので、その説明は省略する。
【００２２】
縮小後の各画素のデータの値は、図２６に示すような原画像の各画素との対応関係に応じて、周辺のいくつかの原画像の画素の値から、補間フィルタ演算、即ち補間関数の畳み込み演算を行うことにより算出する。
【００２３】
次に、画像の大きさを変化させずに、標本化周波数を例えば（１０／１３）倍にする場合を考える。この標本化周波数変換は、解像度が（１０／１３）倍だけ低い画像規格に変換することと等価である。即ち、画素数は、（１０／１３）倍に変更される。この場合、図２１の原画像は、図２７に示すように、１次元的には約０．７６９倍の画素数、即ち０．７６９２倍の面密度を有する画像に変換される。
【００２４】
図２１の各画素と図２５の各画素との対応関係と、図２１の各画素と図２７の各画素との対応関係は、いずれも図２６に示すようになり、同一であるので、解像度が低い画像規格に変換する演算操作は、上述の画像の縮小の演算操作と同様に行われる。
【００２５】
以上のように、画像の拡大または縮小、および、標本化周波数（画素数）の変換を行う場合、原画像には存在しなかった位置の画素データを算出する補間フィルタが必要となる。
【００２６】
次に、補間フィルタにおいて行われる演算について説明する。
【００２７】
図２８に示すように、原画像の標本化間隔をＳとし、原画像の画素Ｒの位置から距離（位相）Ｐだけ離れた位置を、補間により生成する画素Ｑｉの位置（補間点）とすると、画素Ｑｉの値は、その周辺の原画像の画素の値Ｒに対する畳み込み演算により算出される。
【００２８】
「標本化定理」によれば、理想的な「補間」を行う場合、式（１）および図２９（Ａ）に示すようなｓｉｎｃ関数を補間関数ｆ（ｘ）として、無限時間過去の画素から無限時間将来の画素までの畳み込み演算を行う。
ｆ（ｘ）＝ｓｉｎｃ（π×ｘ）＝ｓｉｎ（π×ｘ）／（π×ｘ）      （１）
【００２９】
ここで、πは、円周率を表す。
【００３０】
しかしながら、実際には、有限時間内に補間値を算出する必要があるので、ｓｉｎｃ関数を、有限の範囲で近似した補間関数を利用する。
【００３１】
近似の方法としては、最近傍近似法、双一次近似法、Ｃｕｂｉｃ近似法などが知られている。
【００３２】
最近傍近似法においては、式（２）および図２９（Ｂ）に示すような補間関数を利用して、原画像の１画素のデータから、補間後の１画素のデータを演算する。なお、式（２）および図２９（Ｂ）の変数ｘは、原画像の画素位置からの水平方向の変位を、原画像の標本間隔で正規化した量を表すものとする。
【数１】
0003596194.tif 000002
【００３３】
双一次近似法においては、式（３）および図２９（Ｃ）に示すような補間関数を利用して、原画像の２画素のデータから、補間後の１画素のデータを演算する。なお、式（３）および図２９（Ｃ）の変数ｘは、原画像の画素位置からの水平方向の変位を、原画像の標本間隔で正規化した量を表すものとする。また、双一次近似法は、線形補間として良く知られており、加重平均が算出される。
【数２】
0003596194.tif 000003
【００３４】
Ｃｕｂｉｃ近似法においては、式（４）および図２９（Ｄ）に示すような補間関数を利用して、原画像の４画素のデータから、補間後の１画素のデータを演算する。なお、式（４）および図２９（Ｄ）の変数ｘは、原画像の画素位置からの水平方向の変位を、原画像の標本間隔で正規化した量を表すものとする。
【数３】
0003596194.tif 000004
【００３５】
これらの畳み込み演算は、所謂ＦＩＲデジタルフィルタを利用して行うことが可能である。その場合、補間関数の中心を補間点に合わせ、所定の画素数分だけ近傍の原画像の標本点で補間関数を標本化した値を補間フィルタ係数セットとして使う。
【００３６】
例えば、双一次近似法で補間の演算を行う場合、位相Ｐが０．０であるとき、フィルタ係数セットを構成する２つの重み（フィルタ係数）は、１．０と０．０となり、位置が一致する原画像の画素値をそのまま出力するような係数セットとなる。
【００３７】
また、位相Ｐが０．５であるとき、２つのフィルタ係数は、０．５と０．５となり、Ｐが０．３であるときにおいて、０．７と０．３となる。
【００３８】
Ｃｕｂｉｃ近似法で補間の演算を行う場合、位相Ｐが０．０であるとき、フィルタ係数セットを構成する４つの重み（フィルタ係数）は  ０．０、１．０、０．０、および、０．０となり、位置が一致する原画像画素のデータ値をそのまま出力するような係数セットとなる。
【００３９】
また、位相Ｐが０．５であるとき、４つのフィルタ係数は、−０．１２５、０．６２５、０．６２５、および、−０．１２５となり、Ｐが０．３であるときにおいては  −０．０６３、０．８４７、０．３６３、および、−０．１４７となる。
【００４０】
なお、このとき、データを算出する補間点毎に、原画像の画素との位相Ｐがそれぞれ異なるので、異なる位相に対応する複数のフィルタ係数のセットが必要となる。
【００４１】
次に、従来の補間フィルタ演算装置について説明する。
【００４２】
図３０は、補間の演算、即ち補間関数の畳み込み演算を行うＦＩＲデジタルフィルタを利用した演算装置の一構成例を示している。なお、図３０の演算装置は、Ｃｕｂｉｃ近似法を利用して畳み込み演算を行う。
【００４３】
係数メモリ１は、各補間点（または、各位相）に対応する複数のフィルタ係数を保持しており、所定の装置（図示せず）より供給されるフィルタ選択信号に対応した４つのフィルタ係数ＦＣ１，ＦＣ２，ＦＣ３，ＦＣ４を乗算器３−１乃至３−４にそれぞれ出力する。
【００４４】
レジスタ２−１は、所定の装置（図示せず）より供給されたデータを保持し、制御信号に対応してレジスタ２−２に出力する。レジスタ２−２，２−３は、レジスタ２−１，２−２よりそれぞれ供給されたデータを保持し、制御信号に対応してレジスタ２−３，２−４にそれぞれ出力する。レジスタ２−４は、レジスタ２−３より供給されたデータを保持する。
【００４５】
なお、レジスタ２−１乃至２−４は、直列接続されており、４段のシフトレジスタとして動作する。このシフトレジスタには、水平走査された入力画像データ系列が、ワード単位で順次入力され、連続する４つの原画像の画素データが記憶される。
【００４６】
また、Ｃｕｂｉｃ近似法においては、このように、４段のシフトレジスタを利用して、補間点を挟む左右２画素の合計４画素のデータから補間点のデータを算出する。
【００４７】
乗算器３−ｉ（ｉ＝１，・・・，４）は、レジスタ２−ｉに保持されている値と、係数メモリ１より供給された値（フィルタ係数）ＦＣｉを乗算し、その演算結果を加算器４に出力する。
【００４８】
加算器４は、乗算器３−１乃至３−４より供給された値の総和を演算し、補間値として出力する。
【００４９】
このようにして、レジスタ２−１に時系列に沿って入力されたデータとフィルタ係数は、乗算器３−１乃至３−４および加算器４において積和演算され、その演算結果である補間点のデータが時系列に沿って出力される。
【００５０】
次に、具体的に、原画像をＣｕｂｉｃ近似により（１０／７）倍に拡大するときの、図３０の演算装置の動作について説明する。
【００５１】
（１０／７）倍の画像拡大においては、上述したように、各補間点に対する各画素の位置関係を、図２８に示すように設定して、補間フィルタ演算をすればよい。
【００５２】
図３１は、各サイクルにおける、図３０の演算装置の各部が有する値を示している。
【００５３】
なお、図３０に示すようなハードウェア的に処理を行う装置では、その乗算や総和演算の部分におけるパイプライン処理により、通常、レイテンシ（高速演算実現のための遅延）が生じるが、便宜上、ここでは、レイテンシはないものと仮定する。
【００５４】
図３１の第１サイクルにおいては、原画像の１画素分の画像データである入力データＲ１が、所定の装置より供給される。このとき、レジスタ２−１乃至２−４は、入力データＲ１より１つ前のデータＲｍ０、入力データＲ１より２つ前のデータＲｍ１、入力データＲ１より３つ前のデータＲｍ２、および、入力データＲ１より４つ前のデータＲｍ３をそれぞれ保持している。
【００５５】
このとき、制御信号の値が「Ｈ」であるので、レジスタ２−１乃至２−４は、次のクロックの立ち上がりのタイミングで、データをそれぞれシフトする。
【００５６】
データがそれぞれシフトされるので、第２サイクルにおいては、レジスタ２−１乃至２−４は、Ｒ１、Ｒｍ０、Ｒｍ１、および、Ｒｍ２をそれぞれ保持する。このとき、制御信号の値が「Ｈ」であるので、レジスタ２−１乃至２−４は、次のクロックの立ち上がりのタイミングで、データをそれぞれシフトする。
【００５７】
データがそれぞれシフトされるので、第３サイクルにおいては、レジスタ２−１乃至２−４は、Ｒ２、Ｒ１、Ｒｍ０、および、Ｒｍ１をそれぞれ保持する。このとき、制御信号の値が「Ｈ」であるので、レジスタ２−１乃至２−４は、次のクロックの立ち上がりのタイミングで、データをそれぞれシフトする。
【００５８】
同様に、データがそれぞれシフトされるので、第４サイクルにおいては、レジスタ２−１乃至２−４は、Ｒ３、Ｒ２、Ｒ１、および、Ｒｍ０をそれぞれ保持する。また、図２３におけるＲｍ０，Ｒ１，Ｒ２，Ｒ３に対する補間値Ｑ１の位相を示すフィルタ選択信号Ｐ０が、係数メモリ１に供給される。このように、フィルタ選択信号は、出力信号Ｑｉの位相Ｐに対応して供給される。
【００５９】
なお、この場合、図２８のＲａがＲｍ０に、ＲｂがＲ１に、ＲｃがＲ２に、ＲｄがＲ３に対応し、図２８のＱが補間の値Ｑ１に対応する。
【００６０】
係数メモリ１は、図３２に示す１０種類のフィルタ係数セットを記憶し、供給されたフィルタ選択信号Ｐｉに応じて４つの係数ＦＣ１，ＦＣ２，ＦＣ３，ＦＣ４を選択し、出力する。（１０／７）倍の画像拡大の場合には、その補間演算における画素の位相は図２３に示すように１０種類だけであるので、係数メモリ１は、その位相の数だけのフィルタ係数セットを有している。
【００６１】
即ち、フィルタ選択信号Ｐｉは、図２８でＳを１０等分する各位置に対応する１０種類の位相のうちの、位相がｉ／１０であるときのフィルタ係数セットに対応している。なお、図３２の小数点表現係数（フィルタ係数）は、フィルタ選択信号Ｐｉに対応する位相をｘとして式（４）に代入して算出される値であり、８ビット表現係数は、その小数点表現係数を８ビットに語長制限して（ここでは最大振幅を１２８とした）算出される。
【００６２】
今の場合、係数メモリ１は、フィルタ選択信号がＰ０であるので、図３２の位相Ｐ０に対応するフィルタ係数セット（０．０，１．０，０．０，０．０）（８ビット表現の場合、（０，１２８，０，０））を、４つのフィルタ係数ＦＣ１，ＦＣ２，ＦＣ３，ＦＣ４として乗算器３−１乃至３−４にそれぞれ出力する。
【００６３】
そして、乗算器３−１乃至３−４および加算器４により、上述の積和演算が行われ、その演算結果が、出力データＱ１として出力される。
【００６４】
このとき（第４サイクルにおいて）、制御信号の値は「Ｌ」であるので、次のクロックにおいて、レジスタ２−１乃至２−４は、保持しているデータのシフトを行わない。
【００６５】
第５サイクルにおいては、レジスタ２−１乃至２−４は、第４サイクルにおいて保持していたデータを、継続して保持する。このとき、図２３におけるＲｍ０，Ｒ１，Ｒ２，Ｒ３に対する出力データＱ２の位相を示すフィルタ選択信号Ｐ７が、係数メモリ１に供給される。
【００６６】
なお、この場合、図２３に示すように、Ｒ１とＱ１が同位相であり、かつ、Ｑ１とＱ２との間隔が、Ｒ１とＲ２との間隔Ｓの７／１０であるので、位相は７／１０となり、フィルタ選択信号Ｐ７が供給される。
【００６７】
そして、係数メモリ１は、フィルタ選択信号がＰ７であるので、図３２の７／１０の位相に対応するフィルタ係数セット（−０．１４７，０．３６３，０．８４７，−０．０６３）（８ビット表現の場合、（−１９，４６，１０８，−８））を、４つのフィルタ係数ＦＣ１，ＦＣ２，ＦＣ３，ＦＣ４として乗算器３−１乃至３−４にそれぞれ出力する。
【００６８】
そして、乗算器３−１乃至３−４および加算器４により、上述の積和演算が行われ、その演算結果が、出力データＱ２として出力される。
【００６９】
なお、この場合のように、第４サイクルの出力データＱ１と第５サイクルの出力データＱ２の算出に使用される原画像の画素が同一である場合、第４サイクルにおける制御信号の値を「Ｌ」として、第４サイクルから第５サイクルに移行する時にレジスタ２−１乃至２−４をシフト動作させない。
【００７０】
このとき（第５サイクルにおいて）、制御信号の値は「Ｈ」であるので、レジスタ２−１乃至２−４は、次のクロックの立ち上がりのタイミングで、データをそれぞれシフトする。
【００７１】
次に、第６サイクルにおいては、レジスタ２−１乃至２−４は、Ｒ４、Ｒ３、Ｒ２、および、Ｒ１をそれぞれ保持する。また、図２３におけるＲ４，Ｒ３，Ｒ２，Ｒ１に対する出力データＱ３の位相を示すフィルタ選択信号Ｐ４が、係数メモリ１に供給される。
【００７２】
なお、今回の位相は、前回の位相７／１０に、７／１０が累加されて１４／１０となるが、原画像データ１個分に相当する位相（＝１０／１０）を減算するので、今回の位相は、４／１０（＝７／１０＋７／１０−１０／１０）となる。
【００７３】
即ち、１回のサイクル毎に、位相は、本来、７／１０ずつ変化する。そして、整数分はデータ遅延として扱われるので、結局、位相は、モジュロ演算されることになる。
【００７４】
係数メモリ１は、フィルタ選択信号がＰ４であるので、図３２のＰ４に対応するフィルタ係数セット（−０．０９６，０．７４４，０．４９６，−０．１４４）（８ビット表現の場合、（−１２，９５，６３，−１８））を、４つのフィルタ係数ＦＣ１，ＦＣ２，ＦＣ３，ＦＣ４として乗算器３−１乃至３−４に出力する。
【００７５】
そして、乗算器３−１乃至３−４および加算器４により、上述の積和演算が行われ、その演算結果が、出力データＱ３として出力される。
【００７６】
このとき、制御信号の値が「Ｈ」であるので、レジスタ２−１乃至２−４は、次のクロックの立ち上がりのタイミングで、データをそれぞれシフトする。
【００７７】
以下同様にして、図３１に示すように、処理が進められていき、出力データＱｉが、順次出力される。
【００７８】
なお、上述の装置を利用して画像の画素数変換などを施した場合、その入力のデータレートと出力のデータレートは画素数の変化に起因して変化してしまう。
【００７９】
例えば、上述のように画素数が増える変換においては、出力データのレートは一定になっているものの、入力データ列の供給は、図３１の第５サイクルのように、停止することがある。また、画素数が減る変換の場合においては、入力は一定であるものの、出力データの出力が停止することがある。
【００８０】
従って、実際には、図３０に示す演算装置の入出力データを一旦記憶するバッファメモリを設けることにより、データレートを一定に保つようにしている。
【００８１】
以上のようにして、（水平方向における）画像の拡大または縮小、および、解像度の変換が、ハードウェア的に（即ち、処理における各演算に対応して構成されている電子回路を利用して）行われている。
【００８２】
しかしながら、上述のようにハードウェア的に、画像の拡大または縮小、および、解像度の変換を行う装置を利用する場合、画像の変換時において、同時に行うことが所望される、各種画像処理、テレビジョン信号処理、ノイズ除去などを行うために、別途、各処理に対応する装置が必要となる。
【００８３】
そこで、例えば、先に提案した特願平７−２４６６２７号に記載されているように、ＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ  ｓｔｒｅａｍ）形式の並列プロセッサを利用して、ソフトウェア的に、上述の演算を行う方法が考えられている。
【００８４】
図３３は、そのような並列プロセッサの構成例を示している。この並列プロセッサは、入力ポインタ２１、入力ＳＡＭ（シリアルアクセスメモリ）部２２、データメモリ部２３、ＡＬＵアレイ部２４、出力ＳＡＭ部２５、出力ポインタ２６、および、プログラム制御部２７で構成されている。
【００８５】
入力ＳＡＭ部２２、データメモリ部２３、ＡＬＵアレイ部２４、および、出力ＳＡＭ部２５は、リニアアレイ（直線配列）型に並列化された要素プロセッサ群を構成している。これらの要素プロセッサ３１は、プログラム制御部２７が有する１つのプログラムに従って、連動して制御される（即ち、ＳＩＭＤ制御される）。プログラム制御部２７は、プログラムメモリや、そのプログラムを進行させるシーケンス制御回路などを有し、プログラムメモリに予め書き込まれたプログラムに従って、各種制御信号を発生して、各種回路を制御する。
【００８６】
なお、入力ＳＡＭ部２２、データメモリ部２３、出力ＳＡＭ部２５は、主にメモリで構成されている。詳細に説明しないが、図３３の装置においては、これらのメモリのための「ロウ（ＲＯＷ）」アドレスデコーダは、プログラム制御部２７に含まれているものとする。
【００８７】
並列化された要素プロセッサ３１（単一エレメント分）は、図３３において、斜線で示した部分に対応し、複数の要素プロセッサ３１が、図中において横方向に配列されている。即ち、図３３の斜線の部分だけで、１つのプロセッサに対応する構成要素を有している。
【００８８】
次に、図３３の画像処理用のリニアアレイ型並列プロセッサの動作について説明する。
【００８９】
入力端子ＤＩＮに与えられた入力データ（１画素分の画像データ）は、入力ＳＡＭ部２２に供給される。
【００９０】
入力ポインタ２１は、１つの入力データに対して１つの要素プロセッサ３１だけに、値「Ｈ」の１ビット信号、即ち入力ポインタ信号（ＳＩＰ）を出力する。そして、値「Ｈ」で指定された要素プロセッサ３１の入力ＳＡＭ部２２（入力ＳＡＭセル）に、その入力データが書き込まれる。
【００９１】
入力ポインタ信号による、データを供給する要素プロセッサ３１の指定は、入力データのクロックごとに図中の左端の要素プロセッサ３１から右端の要素プロセッサ３１に向けて順次移動するので、入力データは、左端の要素プロセッサ３１の入力ＳＡＭ部２２（入力ＳＡＭセル）から、右側の要素プロセッサ３１の入力ＳＡＭセルに順次供給される。
【００９２】
要素プロセッサ３１の数は画像信号の１水平走査期間の画素数Ｈ以上に設計されているので、画像信号の１水平走査期間分の画素データを、入力ＳＡＭ部２２に蓄積することができる。このような入力動作は、水平走査期間毎に繰り返される。
【００９３】
プログラム制御部２７は、このようにして画像信号の１水平走査期間のデータが入力ＳＡＭ部２２に蓄積されるごとに、プログラムに従って入力ＳＡＭ部２２、データメモリ部２３、ＡＬＵアレイ部２４、および、出力ＳＡＭ部２５を以下のようにＳＩＭＤ制御して処理を実行する。
【００９４】
なお、このプログラム制御は水平走査期間ごとに繰り返される。従って、水平走査期間に対応する時間を、このプロセッサの命令サイクル周期で割算して算出されるステップ数だけのプログラムを処理することができる。ＳＩＭＤ制御であるから、以下の動作は全ての要素プロセッサ３１において並行して同様に実行される。
【００９５】
入力ＳＡＭ部２２に蓄積された１水平走査期間分の入力データは、次の水平走査期間において、必要に応じて入力ＳＡＭ部２２からデータメモリ部２３へ転送され、その後の演算処理に使われる。
【００９６】
入力ＳＡＭ部２２からデータメモリ部２３へのデータの転送においては、プログラム制御部２７は、入力ＳＡＭ読み出し信号（ＳＩＲ）により入力ＳＡＭ部２２の所定のビットのデータを選択してアクセスした後、メモリアクセス信号（ＳＷＡ）を出して、そのデータを、データメモリ部２３の所定のメモリセル（後述）へ書き込んでいく。
【００９７】
次に、プログラム制御部２７は、プログラムに応じて、各要素プロセッサ３１のデータメモリ部２３に保持されているデータを、その要素プロセッサ３１のＡＬＵアレイ部２４に供給し、そのデータに対して算術演算あるいは論理演算を行わせる。そして、その演算結果は、データメモリ部２３の所定のアドレスに書き込まれる。
【００９８】
なお、ＡＬＵアレイ部２４における演算は、全てビット単位で行われるので、１サイクル当たり１ビットづつ処理が進行する。例えば、８ビットのデータ同士の論理演算を行う場合、少なくとも８サイクルかかることになる。また、８ビットのデータ同士の加算を行う場合、少なくとも９サイクルかかることになる。８ビットのデータ同士の乗算を行う場合、その乗算は６４回のビット加算と等価であるので、少なくとも６４サイクルかかることになる。
【００９９】
また、要素プロセッサ３１は、近傍の要素プロセッサ３１に接続されており、プロセッサ間通信を行うことができる。ただし、近傍の要素プロセッサ３１のデータメモリ部２３へのアクセスを行う場合、ＳＩＭＤ制御に起因して、例えば右隣りの要素プロセッサ３１のデータメモリ部をアクセスするときは、すべての要素プロセッサ３１が、右隣りの要素プロセッサ３１のデータメモリ部２３をアクセスすることになる。
【０１００】
なお、このように動作することは、ＦＩＲデジタルフィルタの実現には特に問題とはならない。また、直接接続されていない要素プロセッサ３１のデータを読み出す場合、プログラムステップは多少増えるが、近傍のプロセッサ間通信を繰り返すことにより、データを読み出す。
【０１０１】
このような通信を利用して、近傍の要素プロセッサ３１が保持するデータを利用して、画像の水平方向のＦＩＲデジタルフィルタ演算を実現することができる。
【０１０２】
なお、このような並列プロセッサにおいては、画面の水平方向の同じ位置の画素のデータは、すべての水平走査期間において、所定の１つの要素プロセッサ３１により処理されるので、データを入力ＳＡＭ部２２からデータメモリ部２３に転送するときに、水平走査期間ごとに、データを記憶するアドレスを変更することにより、過去の水平走査期間の入力データを、それ以降の水平走査期間まで、データメモリ部２３の内部に保持することができる。このようにすることにより、画像の垂直方向のＦＩＲデジタルフィルタについても、その演算に必要なデータをデータメモリ部２３に順次保持させていくことができる。
【０１０３】
このようにして、それぞれの要素プロセッサ３１は、垂直方向（水平走査方向に対して垂直な方向）の所定の連続数の画素データを、データメモリ部２３の内部に保持し、垂直方向のＦＩＲデジタルフィルタ演算を実現している。
【０１０４】
以上のようにして１水平走査期間に割り当てられている演算が終了すると、その水平走査期間のうちに、その水平走査期間に演算したデータは、出力ＳＡＭ部２５に転送される。
【０１０５】
このように、１水平走査期間のうちに、入力ＳＡＭ部２２に蓄積された入力データのデータメモリ部２３への転送、ＡＬＵアレイ部２４による演算、および、出力ＳＡＭ部２５へのデータの転送が、ビットを単位とするＳＩＭＤ制御プログラムに従って実行される。そして、これらの処理は、水平走査期間を単位として、順次繰り返される。
【０１０６】
そして、出力ＳＡＭ部２５に転送された出力データは、さらに次の水平走査期間において、出力ＳＡＭ部２５から出力される。
【０１０７】
以上のように、入力データを入力ＳＡＭ部２２に書き込む入力処理、プログラム制御部２７による、入力ＳＡＭ部２２に蓄積された入力データのデータメモリ部２３への転送、ＡＬＵアレイ部２４による演算、および、出力ＳＡＭ部２５への出力データの転送の演算処理、並びに、出力データを出力ＳＡＭ部２５から出力させる出力処理の３つの処理が、各水平走査入力データに対して行われる。なお、これらの３つの処理は、画像信号の１水平走査期間を単位とするパイプライン処理として実行される。
【０１０８】
１つの水平走査期間の入力データに注目すれば、その入力データに対する３つの処理には、各処理において１水平走査期間に対応する時間が経過するので、合計水平走査期間の３倍に対応する時間がかかるが、３つの処理がパイプライン処理として並行に実行されるので、平均して、１水平走査期間分の入力データあたり１水平走査期間に対応する時間で処理を行うことができる。
【０１０９】
【発明が解決しようとする課題】
しかしながら、上述の装置においては、所定の画像の変換比率をＫ：Ｌとすると、変換後の画素数であるＬ個のフィルタ係数セットが必要であり、変換比率が簡単な整数比ではない場合、多くのフィルタ係数セットが必要となり、フィルタ係数セットを記憶する記憶部に大容量のものを使用することになるため、装置のコストおよび回路規模を低減することが困難であるという問題を有している。
【０１１０】
また、例えばユーザによる操作などに応じて、変換比率を変化させるようにする場合、複数の変換比率に対応するフィルタ係数セットを使用することが考えられるが、その場合、変換比率の数と変換後の画素数の積に対応する数のフィルタ係数セットが必要となり、大容量の記憶部が必要となるので、装置のコストおよび回路規模を低減することが困難であるという問題を有している。
【０１１１】
さらに、上述の並列プロセッサのように一般的なＦＩＲデジタルフィルタの実現は可能であるが、補間の演算が必要とされる画像の拡大や縮小を行う場合（同様に、解像度の変換を行う場合）、補間の演算はＦＩＲデジタルフィルタの一種ではあるものの、入力ＳＡＭ部２２に保持されるデータの数と、出力ＳＡＭ部２５に出力されるデータの数が異なるので、入力ＳＡＭ部２２または出力ＳＡＭ部２５において、入力データＲｉまたは出力データＱｉは、密に配列されない。
【０１１２】
従って、要素プロセッサ３１が、補間の処理に必要な入力画素データを、所定の数の他の要素プロセッサ３１より獲得する場合、その要素プロセッサ３１と、他の要素プロセッサ３１との位置関係が、要素プロセッサ３１毎に異なるので、すべての要素プロセッサ３１が同様の動作を行うＳＩＭＤ形式の並列プロセッサでは、必要なデータを獲得することが困難であるという問題を有している。
【０１１３】
例えば、Ｃｕｂｉｃ近似では連続する入力データのうちの４つのデータに対する畳み込み演算が必要である。例えば、画像を（１０／７）倍に拡大する場合、図３４に示すように、入力データＲｉは、密に配列されないので、例えば出力データＱ３を算出するときに必要となる入力データＲ１，Ｒ２，Ｒ３，Ｒ４のうち、Ｒ１，Ｒ３，Ｒ４は、出力データＱ３を算出する要素プロセッサ３１を基点として、左２つ隣り、右１つ隣り、および、右３つ隣りの要素プロセッサ３１によってそれぞれ保持されている。
【０１１４】
一方、出力データＱ４の算出に必要な入力データＲ２，Ｒ３，Ｒ４，Ｒ５のうち、Ｒ２，Ｒ４，Ｒ５は、左１つ隣り、右２つ隣り、および、右３つ隣りの要素プロセッサ３１によってそれぞれ保持されている。また、出力データＱ５の算出に必要な入力データＲ２，Ｒ３，Ｒ４，Ｒ５は、基点となる要素プロセッサ３１の左２つ隣り、左１つ隣り、右１つ隣り、右２つ隣りの要素プロセッサ３１にそれぞれ保持されている。
【０１１５】
このように、各出力データの算出に必要な入力データを保持している要素プロセッサ３１と、その出力データを算出する要素プロセッサ３１との位置関係が、出力データ毎に変化する。
【０１１６】
図３５は、画像を（１０／７）倍に拡大する場合の、各出力データの算出に必要な入力データを保持している要素プロセッサ３１のパターンを示している。図３５に示すように、この場合、５つのパターンに分類される。
【０１１７】
また、上述のような並列プロセッサを利用する場合、各要素プロセッサ３１が、１画素に対応する出力データを算出するので、要素プロセッサ３１毎に、異なる上述のフィルタ係数を供給する必要があるという問題を有している。
【０１１８】
本発明は、このような状況に鑑みてなされたもので、所定の分割数で元の画像の画素間隔を分割したときの各位相に対応するフィルタ係数セットのうち、位相が、補間演算される画素の位相に最も近いフィルタ係数セットを利用して、画像データの補間演算を行うようにして、任意の変換比率の画像の拡大または縮小を行うことができるようにするものである。
【０１２１】
【課題を解決するための手段】
請求項１に記載の画像処理装置は、所定の分割数で元の画像の画素間隔を分割したときの各位相に対応するフィルタ係数セットのうち、位相が、処理される画素データの位相に最も近いフィルタ係数セットであって、かつ、周辺の要素プロセッサと所定の要素プロセッサとの位置関係のパターンの種類が最小になるフィルタ係数セットを、要素プロセッサにそれぞれ供給し、要素プロセッサが、フィルタ係数セットを利用して、画素データの補間の処理をそれぞれ行うことを特徴とする。
【０１２２】
請求項１５に記載の画像処理方法は、所定の分割数で元の画像の画素間隔を分割したときの各位相に対応するフィルタ係数セットのうち、位相が、処理される画素データの位相に最も近いフィルタ係数セットであって、かつ、周辺の要素プロセッサと所定の要素プロセッサとの位置関係のパターンの種類が最小になるフィルタ係数セットを、要素プロセッサにそれぞれ供給し、要素プロセッサが、フィルタ係数セットを利用して、画素データの補間の処理をそれぞれ行うことを特徴とする。
【０１２５】
請求項１に記載の画像処理装置においては、所定の分割数で元の画像の画素間隔を分割したときの各位相に対応するフィルタ係数セットのうち、位相が、処理される画素データの位相に最も近いフィルタ係数セットであって、かつ、周辺の要素プロセッサと所定の要素プロセッサとの位置関係のパターンの種類が最小になるフィルタ係数セットを、要素プロセッサにそれぞれ供給し、要素プロセッサが、フィルタ係数セットを利用して、画素データの補間の処理をそれぞれ行う。
【０１２６】
請求項１５に記載の画像処理方法においては、所定の分割数で元の画像の画素間隔を分割したときの各位相に対応するフィルタ係数セットのうち、位相が、処理される画素データの位相に最も近いフィルタ係数セットであって、かつ、周辺の要素プロセッサと所定の要素プロセッサとの位置関係のパターンの種類が最小になるフィルタ係数セットを、要素プロセッサにそれぞれ供給し、要素プロセッサが、フィルタ係数セットを利用して、画素データの補間の処理をそれぞれ行う。
【０１２７】
【発明の実施の形態】
図１は、本発明の画像処理装置の第１の実施の形態の構成例を示している。
【０１２８】
係数メモリ１Ａは、所定の分割数で元の画像の画素間隔を分割したときの各位相に対応するフィルタ係数セットを記憶するようになされている。
【０１２９】
例えば、分割数を１６に設定した場合、係数メモリ１Ａは、図２に示すように、正規化位相量ｘおよびフィルタ選択信号Ｐｉに対応する１６個のフィルタ係数セット（ＦＣ１，ＦＣ２，ＦＣ３，ＦＣ４）を予め記憶している。
【０１３０】
制御回路５は、画像の変換に伴う、補間後の画素間隔に対応する位相の変化分Ｐｄを所定の装置（図示せず）より供給され、その位相変化分Ｐｄに対応して、補間する画素に対応するフィルタ係数セットが選択されるようにフィルタ選択信号Ｐｉを発生して、そのフィルタ選択信号Ｐｉを係数メモリ１Ａに出力するようになされている。
【０１３１】
また、制御回路５は、位相変化分Ｐｄの累積値に対応して、レジスタ２−１乃至２−４に供給される制御信号を生成する。
【０１３２】
制御回路５の剰余回路１１は、レジスタ１２に記憶されている値と、位相変化分Ｐｄとの和を１で割算したときの剰余（即ち、和の小数部分）をレジスタ１２に出力するようになされている。また、剰余回路１１は、レジスタ１２に記憶されている値と、位相変化分Ｐｄとの和が１以上である場合、所定の信号を制御信号発生回路１４および調整回路１５に出力するようになされている。
【０１３３】
制御回路５のレジスタ１２は、剰余回路１１より供給された値を保持し、その値を剰余回路１１および近似回路１３に出力するようになされている。また、レジスタ１２は、１水平走査期間毎に供給されるクリア信号に対応して、保持する値を０にリセットする。
【０１３４】
制御回路５の近似回路１３は、レジスタ１２より供給された値に最も近い正規化位相量ｘ（図２）に対応するフィルタ選択信号Ｐｉを係数メモリ１Ａに出力するようになされている。
【０１３５】
制御回路５の制御信号発生回路１４は、剰余回路１１より所定の信号が供給された場合、値が「Ｌ」の制御信号をレジスタ２−１乃至２−４に出力し、剰余回路１１より所定の信号が供給されていない場合、値が「Ｈ」の制御信号を出力するようになされている。
【０１３６】
制御回路の調整回路１５は、バッファメモリ（図示せず）を内蔵し、供給される入力画素データを、所定のタイミングでレジスタ２−１に出力するようになされている。調整回路１５は、剰余回路１１より所定の信号が供給された場合、そのサイクルにおける画素データの出力を停止する。
【０１３７】
なお、レジスタ２−１乃至２−４、乗算器３−１乃至３−４、および加算器４は、図３０と同様に構成されているので、その説明を省略する。
【０１３８】
次に、図１の画像処理装置の動作について説明する。
【０１３９】
最初に、位相変化分Ｐｄが制御回路５の剰余回路１１に供給される。そして、剰余回路１１は、供給された値と、レジスタ１２の値の和の小数部分をレジスタ１２に出力する。なお、このとき、供給された値と、レジスタ１２の値の和が１以上である場合、剰余回路１１は、所定の信号を制御信号発生回路１４および調整回路１５に出力する。
【０１４０】
そして、近似回路１３は、位相ｘが、レジスタ１２の値に最も近い位相に対応するフィルタ係数セットに対応するフィルタ選択信号Ｐｉを係数メモリ１Ａに出力する。
【０１４１】
このようにして、所定の画素データの補間において、所定の数のフィルタ係数セットのうちの最適なフィルタ係数セットが選択される。
【０１４２】
なお、そのフィルタ係数セットを利用して補間値を算出する動作は、図３０の装置と同様であるので、その説明を省略する。
【０１４３】
次に、図３を参照して、例えば、予め係数メモリ１Ａに記憶されている１６個のフィルタ係数セットを利用して、（１０／７）倍に画像を拡大するときの制御回路５の動作を説明する。
【０１４４】
最初に、位相が０である第１番目の補間値Ｑ１（図２３）を算出する場合においては、レジスタ１２の値は初期値０に設定されており、その値が近似回路１３に供給され、近似回路１３は、図２に示すフィルタ選択信号Ｐｉのうち、位相ｘが、供給された値０に最も近いフィルタ選択信号Ｐ０（ｘ＝０．０）を選択し、そのフィルタ選択信号Ｐ０を係数メモリ１Ａに出力する。なお、このとき、フィルタ選択信号Ｐ０に対応する位相ｘが０．０であり、供給された値と同一であるので、位相に関する誤差は０である。
【０１４５】
また、このとき、剰余回路１１には、位相変化分Ｐｄ（この場合、Ｐｄ＝０．７）が供給され、レジスタ１２の値０と位相変化分０．７の和の小数部分、即ち、０．７が、レジスタ１２に出力される。
【０１４６】
次に、位相が０．７である第２番目の補間値Ｑ２（図２３）を算出する場合、このときのレジスタ１２の値は０．７に設定されており、その値が近似回路１３に供給され、近似回路１３は、図２に示すフィルタ選択信号Ｐｉのうち、位相ｘが、供給された値０．７に最も近いフィルタ選択信号Ｐ１１（ｘ＝０．６８７５）を選択し、そのフィルタ選択信号Ｐ１１を係数メモリ１Ａに出力する。なお、このとき、フィルタ選択信号Ｐ１１に対応する位相ｘが０．６８７５であり、供給された値０．７と異なるので、０．０１２５の位相に関する誤差が発生している。
【０１４７】
また、このとき、剰余回路１１には、位相変化分Ｐｄ（Ｐｄ＝０．７）が供給され、レジスタ１２の値０．７と位相変化分０．７の和の小数部分、即ち、０．４が、レジスタ１２に出力される。
【０１４８】
そして、位相が０．４である第３番目の補間値Ｑ３（図２３）を算出する場合、このときのレジスタ１２の値は０．４に設定されており、その値が近似回路１３に供給され、近似回路１３は、図２に示すフィルタ選択信号Ｐｉのうち、位相ｘが、供給された値０．４に最も近いフィルタ選択信号Ｐ６（ｘ＝０．３７５）を選択し、そのフィルタ選択信号Ｐ６を係数メモリ１Ａに出力する。なお、このとき、フィルタ選択信号Ｐ６に対応する位相ｘが０．３７５であり、供給された値０．４と異なるので、０．０２５の位相に関する誤差が発生している。
【０１４９】
また、このとき、剰余回路１１には、位相変化分Ｐｄ（Ｐｄ＝０．７）が供給され、レジスタ１２の値０．４と位相変化分０．７の和の小数部分、即ち、０．１が、レジスタ１２に出力される。
【０１５０】
以下同様にして、第４番目乃至第１０番目の補間値Ｑｉが算出されていく。第１１番目の補間値Ｑ１１を算出するとき、補間する画素の位相が０に戻るので、この場合においては、１６個のフィルタ係数セットのうち、合計１０個のフィルタ係数セットが利用される。
【０１５１】
位相変化分Ｐｄは変換比率Ｋ：ＬのＬによって決まるので、上述の位相変化分Ｐｄの値を変更するだけで、異なる変換比率の画像の拡大または縮小を行うことができる。
【０１５２】
なお、このように変換比率に拘わらず、所定の数のフィルタ係数セットを利用する場合、上述のように位相の誤差が発生するが、元々、補間関数として、ｓｉｎｃ関数を大幅に近似したものを利用しているので、この程度の位相の誤差は、ほとんど問題とはならない。なお、必要に応じて、画素間隔の分割数を大きくしてもよい。
【０１５３】
以上のように、第１の実施の形態においては、任意の変換比率で、ハードウェア的に画像の拡大または縮小を行うことができる。
【０１５４】
なお、上述の説明においては、画素間隔の分割数が１６に設定されているが、勿論、他の分割数でもよい。
【０１５５】
また、上述の位相変化分Ｐｄは、小数で表現されているが、画素間隔を分割数で除算して得られる単位位相量で、その小数を除算した整数値を位相変化分としてもよい。その場合、分割数を２のベキ乗にすることにより、剰余回路１１による剰余を算出する処理が簡単になる。即ち、その場合、剰余回路１１は、上位ビットを無視するようにした２進数の加算器で実現することができる。また、その場合、近似回路１３は、単なる語長制限のため四捨五入を行う回路でよい。
【０１５６】
さらに、上述のように、分割数に対応する数（今の場合、１６個）のフィルタ係数セットのうち、所定の数（今の場合、１０個）のフィルタ係数セットだけが使用される場合、係数メモリ１Ａが、使用されるフィルタ係数セットだけを記憶するようにしてもよい。その場合、係数メモリ１Ａの記憶領域を節約することができる。
【０１５７】
図４は、本発明の画像処理装置の第２の実施の形態の構成を示している。
【０１５８】
入力ポインタ２１は、要素プロセッサ３１毎に、入力ＳＡＭ部２２に、入力データを受け取るか否かを示す入力ポインタ信号を出力するようになされている。なお、この入力ポインタ２１は、例えば特開平８−１２３６８３号公報に記載されているものと同様に、入力データを選択的に要素プロセッサ３１に供給させることができる。
【０１５９】
入力ＳＡＭ部２２は、要素プロセッサ３１毎に、所定の入力データを保持する記憶部を有し、入力ポインタ２１より供給されるＳＩＰ信号に対応して、入力データを記憶するようになされている。また、入力ＳＡＭ部２２は、プログラム制御部２７Ａより、ＳＩＲ信号を受け取ると、保持しているデータを、データメモリ部２３に出力するようになされている。
【０１６０】
データメモリ部２３は、要素プロセッサ３１毎に、所定のデータを保持する記憶部を有し、プログラム制御部２７Ａより、ＳＷＡ信号を受け取ると、入力ＳＡＭ部２２またはＡＬＵアレイ部２４より供給されたデータを記憶部に記憶し、メモリ読み出しアクセス信号（ＳＲＡＡ，ＳＲＢＡ）を受け取ると、そのデータをＡＬＵアレイ部２４に出力するようになされている。
【０１６１】
ＡＬＵアレイ部２４は、要素プロセッサ３１毎に演算部（図６のＡＬＵ（Ａｒｉｔｈｍｅｔｉｃ  ａｎｄ  Ｌｏｇｉｃａｌ  Ｕｎｉｔ）８１）を有し、データメモリ部２３より供給されるデータに対して、プログラム制御部２７Ａより供給されるＡＬＵ制御信号（ＳＡＬＵ−ＣＯＮＴ）に対応する演算を行うようになされている。
【０１６２】
出力ＳＡＭ部２５は、要素プロセッサ３１毎に、所定の出力データを保持する記憶部を有し、プログラム制御部２７Ａより供給される出力ＳＡＭ書き込み信号（ＳＯＷ）を受け取ると、ＡＬＵアレイ部２４からの出力データをその記憶部に記憶するようになされている。また、出力ＳＡＭ部２５は、出力ポインタ２６より供給される出力ポインタ信号（ＳＯＰ）に対応して、保持しているデータを出力するようになされている。
【０１６３】
出力ポインタ２６は、要素プロセッサ３１毎に、出力ＳＡＭ部２５に、出力データを出力するか否かを示すＳＯＰ信号を出力するようになされている。なお、この出力ポインタ２６は、例えば特開平８−１２３６８３号公報に記載されているものと同様に、要素プロセッサ３１から選択的にデータを出力させることができる。
【０１６４】
プログラム制御部２７Ａは、所定のプログラムに従って各部を制御し、後述の各種動作を行わせるようになされている。
【０１６５】
図５は、要素プロセッサ３１の構成例を示している。図５の要素プロセッサ３１は、様々な用途に利用できる汎用的なプロセッサ形態として構成されている。入力バッファメモリ（ＩＱ）４１は、図４の入力ＳＡＭ部２２の１要素プロセッサ分に対応し、入力データを記憶する。データメモリ（ＲＦ）４２は、図４のデータメモリ部２３の１要素プロセッサ分に対応し、演算途中のデータなどを記憶する３ポートメモリである。出力バッファメモリ（ＯＱ）４４は、図４の出力ＳＡＭ部２５の１要素プロセッサ分に対応し、出力データを記憶する。
【０１６６】
演算部（ＡＬＵ）４３は、図４のＡＬＵアレイ部２４の１要素プロセッサ分に対応し、データメモリ４２より供給されるデータに対して各種演算を行い、その演算結果をデータメモリ４２または出力バッファメモリ４４に出力する。
【０１６７】
図５の要素プロセッサ３１においては、入力データは、入力バッファメモリ４１に一旦入力され、その後、データメモリ４２に転送される。演算部４３は、データメモリ４２より必要に応じて供給される、新たに記憶されたデータ、過去に記憶されたデータ、演算途中のデータなどに対して各種演算を行い、再びデータメモリ４２に書き込むという作業を、プログラムに対応して繰り返す。その演算結果は、出力バッファメモリ４４に転送され、所定の速度やフォーマットで出力される。
【０１６８】
なお、要素プロセッサ３１においては、入力ＳＡＭ部２２、データメモリ部２３、および、出力ＳＡＭ部２５が、メモリの「カラム」を構成している。また、ＡＬＵアレイ部２４は、１ビットＡＬＵであり、フルアダー（全加算器）を主体にした回路構成を有している。従って、普通の所謂パーソナルコンピュータなどに利用されているワード単位に処理を行うプロセッサとは異なり、この要素プロセッサ３１は、ビット処理プロセッサであり、ビットを単位として処理を行う。
【０１６９】
ビット処理プロセッサは、１プロセッサあたりのハードウェアの規模が小さいので、並列数を大きくすることができる。従って、画像処理用の並列プロセッサは、要素プロセッサ３１の直線配列の並列数が、画像信号の一水平走査期間分の画素数Ｈと同一もしくはそれより多く設計されている。
【０１７０】
図６は、上述の要素プロセッサ３１の詳細な回路構成の一例を示している。なお、図６の各セルの構造は、理解を容易にするために非常に一般的なものとして記述されている。また、同じ回路が複数並ぶ部分は、１つの回路（１ビット分の回路）で代表して記述されている。
【０１７１】
入力ＳＡＭ部２２の１つの要素プロセッサ３１に対応する部分は、入力ポインタ２１に制御され、入力データのビット数ＩＳＢに対応して、ＩＳＢ個の、１ビットを記憶する入力ＳＡＭセル２２−１乃至２２−ＩＳＢで構成されている。なお、図６においては、ＩＳＢ個の入力ＳＡＭセル２２−１乃至２２−ＩＳＢの代わりに、１つのセル２２−ｉが記載されている。
【０１７２】
入力ＳＡＭセル２２−ｉにおいては、トランジスタＴｒ１のゲート端子は、入力ポインタ２１に接続され、トランジスタＴｒ１の他の２つの端子は、入力データバス６５または１ビットのデータを記憶するコンデンサＣ１の一端に接続されている。
【０１７３】
また、トランジスタＴｒ２のゲート端子は、プログラム制御部２７Ａに接続されており、ＳＩＲ信号を供給され、トランジスタＴｒ２の他の２つの端子は、書き込みビット線６３およびコンデンサＣ１の一端にそれぞれ接続されている。
【０１７４】
コンデンサＣ１の一端は、トランジスタＴｒ１，Ｔｒ２に接続され、他端は、接地されている。
【０１７５】
データメモリ部２３の１つの要素プロセッサ３１に対応する部分は、作業メモリとして必要なビット数ＭＢに対応するＭＢ個のデータメモリセル２３−１乃至２３−ＭＢで構成されている。なお、図６においては、ＭＢ個のデータメモリセル２３−１乃至２３−ＭＢの代わりに、１つのセル２３−ｉが記載されている。
【０１７６】
データメモリ部２３のデータメモリセル２３−ｉ（ｉ＝１，・・・，ＭＢ）は、２本の読み出しビット線６１，６２と１本の書き込みビット線６３を有する３ポートメモリである。
【０１７７】
データメモリセル２３−ｉにおいては、トランジスタＴｒ１１のゲート端子は、プログラム制御部２７Ａに接続されており、ＳＷＡ信号を供給され、トランジスタＴｒ１１の他の２つの端子は、書き込みビット線６３および１ビットのデータを記憶するコンデンサＣ１１の一端にそれぞれ接続されている。
【０１７８】
コンデンサＣ１１の一端は、トランジスタＴｒ１２のゲート端子と、トランジスタＴｒ１１に接続され、他端は、接地されている。
【０１７９】
トランジスタＴｒ１２の残りの２つの端子は、接地点、および、抵抗Ｒを介して電源（図示せず）にそれぞれ接続されている。なお、抵抗Ｒは省略してもよい。
【０１８０】
トランジスタＴｒ１３のゲート端子は、プログラム制御部２７Ａに接続されており、ＳＲＡＡ信号を供給され、トランジスタＴｒ１３の残りの２つの端子は、トランジスタＴｒ１２と抵抗Ｒ、および、読み出しビット線６１にそれぞれ接続されている。
【０１８１】
トランジスタＴｒ１４のゲート端子は、プログラム制御部２７Ａに接続されており、ＳＲＢＡ信号を供給され、トランジスタＴｒ１４の残りの２つの端子は、トランジスタＴｒ１２と抵抗Ｒ、および、読み出しビット線６２にそれぞれ接続されている。
【０１８２】
ＡＬＵアレイ部２４の１つの要素プロセッサ３１に対応する部分は、図６におけるＡＬＵセル２４Ａ（ＡＬＵ部）である。ＡＬＵセル２４ＡのＡＬＵ８１は、１ビットＡＬＵであり、全加算器（フルアダー）などの回路構成を有し、フリップフロップ８２−１乃至８２−３より供給される１ビットの値に対して演算を行い、その演算結果をセレクタ８３に出力する。
【０１８３】
また、ＡＬＵセル２４Ａは、ＡＬＵ８１に入力される１ビットの値を保持するフリップフロップ８２−１乃至８２−３、フリップフロップ８２−１乃至８２−３に供給される値を選択するセレクタ（ＳＥＬ）８４−１乃至８４−３などを有している。
【０１８４】
出力ＳＡＭ部２５の１つの要素プロセッサ３１に対応する部分は、出力ポインタ２６に制御され、出力信号ビット数（ＯＳＢ）に対応して、ＯＳＢ個の出力ＳＡＭセル２５−１乃至２５−ＯＳＢで構成されている。なお、図６においては、出力ＳＡＭセル２５−１乃至２５−ＯＳＢの代わりに、１つのセル２５−ｉが記載されている。
【０１８５】
出力ＳＡＭセル２５−ｉにおいては、トランジスタＴｒ７のゲート端子は、プログラム制御部２７Ａに接続されており、ＳＯＷ信号を供給され、トランジスタＴｒ７の他の２つの端子は、書き込みビット線６３Ａ、および、１ビットのデータを記憶するコンデンサＣ４の一端にそれぞれ接続されている。
【０１８６】
コンデンサＣ４の一端は、トランジスタＴｒ７，Ｔｒ８に接続され、他端は、接地されている。
【０１８７】
トランジスタＴｒ８のゲート端子は、出力ポインタ２６に接続され、トランジスタＴｒ８の他の２つの端子のうちの一端は、コンデンサＣ４とトランジスタＴｒ７に接続され、残りの一端は、出力データバス６６に接続されている。
【０１８８】
要素プロセッサ３１に接続されているすべてのワード線は、それぞれ配列されている他の要素プロセッサ３１にも接続されており、ＳＩＲ信号、ＳＷＡ信号、メモリ読み出しアクセス信号（ＳＲＡＡ，ＳＲＢＡ）、ＳＯＷ信号などをすべての要素プロセッサ３１に伝送する。なお、これらのワード線は、図４のプログラム制御部２７Ａ内でアドレスデコードされている。
【０１８９】
また、入力データバス６５は、すべての要素プロセッサ３１の入力ＳＡＭセル２２−ｉに接続され、出力データバス６６は、すべての要素プロセッサ３１の出力ＳＡＭセル２５−ｉに接続されている。
【０１９０】
また、図４のメモリ２８（記憶手段）は、起動時、水平帰線期間、垂直帰線期間などに外部の制御用ＣＰＵ（図示せず）などより供給される、すべての要素プロセッサ３１におけるフィルタ演算に必要なすべての補間フィルタ係数のデータを、要素プロセッサ３１の番号順に保持するようになされている。即ち、メモリ２８は、第１の実施の形態の係数メモリ１Ａと同様に、予め設定された分割数だけのフィルタ係数セットを記憶している。
【０１９１】
次に、この要素プロセッサ３１におけるデータの転送および演算について説明する。
【０１９２】
入力ポインタ２１により指定された要素プロセッサ３１の入力ＳＡＭセル２２−ｉにおいては、トランジスタＴｒ１がオン状態になり、コンデンサＣ１の端子電圧が、入力データバス６５（およびバッファ７１）を介して供給される入力データに応じた電圧になる。
【０１９３】
このようにして、入力データが、指定された要素プロセッサ３１の入力ＳＡＭ部２２に記憶される。
【０１９４】
次に、プログラム制御部２７Ａより供給されるＳＩＲ信号により選択された入力ＳＡＭセル２２−ｉにおいては、トランジスタＴｒ２がオン状態となり、コンデンサＣ１の電圧に応じた転送データ信号が書き込みビット線６３に生じる。
【０１９５】
このとき、ＳＢＣ信号がバッファ７２に供給されるとともに、ＳＷＡ信号が、所定のデータメモリセル２３−ｉのトランジスタＴｒ１１に供給され、トランジスタＴｒ１１がオン状態になることにより、コンデンサＣ１１の端子電圧が、入力ＳＡＭセル２２−ｉのコンデンサＣ１に記憶されているデータに応じた電圧になる。
【０１９６】
なお、ＡＬＵセル２４Ａからのデータをデータメモリセル２３−ｉに書き込む場合は、ＳＢＣＡ信号が、バッファ７３に供給される。
【０１９７】
このデータ転送は、書き込みビット線６３を介して、１サイクルに１ビットずつ行われる。入力ＳＡＭ部２２の各入力ＳＡＭセル２２−ｉからデータを読み出すときに利用されるＳＩＲ信号と、データメモリ部２３の各データメモリセル２３−ｉへのデータの書き込みに利用されるＳＷＡ信号は、同じアドレス空間内のアドレスを示しており、それぞれロウデコーダでデコードされてワード線として与えられている。
【０１９８】
そして、ＡＬＵセル２４Ａは、データメモリ部２３に、上述のようにして書き込まれた入力データや演算途中のデータ、あるいは、フリップフロップ８２−１乃至８２−３に記憶されているデータを用いて、ビット単位の演算処理を順次進める。
【０１９９】
例えば、データメモリ部２３の所定のビットに対応するデータメモリセル２３−ｉのデータと、他のビットに対応するデータメモリセル２３−ｉのデータを加算して、さらに他のビットに対応するデータメモリセル２３−ｉに加算結果を書き込む場合は、次のように動作する。
【０２００】
プログラム制御部２７Ａは、データメモリ部２３の所定のビットに対応するデータメモリセル２３−ｉにＳＲＡＡ信号を供給し、そのセルのトランジスタＴｒ１３をオン状態にして、コンデンサＣ１１に記憶されていたデータを一方の読み出しビット線６１に出力させる。
【０２０１】
同時に、プログラム制御部２７Ａは、他のビットに対応するデータメモリセル２３−ｉにＳＲＢＡ信号を供給し、そのセルのトランジスタＴｒ１４をオン状態にして、コンデンサＣ１１に記憶されていたデータを、他方の読み出しビット線６２に出力される。
【０２０２】
これら２つの読み出されたデータは、ＡＬＵセル２４Ａのセレクタ８４−１乃至８４−３を介してＡＬＵ８１に供給される。そして、ＡＬＵ８１は、それらのデータに対して所定の演算を行い、その演算結果を、セレクタ８３を介してフリップフロップ８５に供給する。
【０２０３】
そして、プログラム制御部２７Ａは、ＳＢＣＡ信号を供給して、フリップフロップ８５から演算結果を書き込みビット線６３に出力させ、ＳＷＡ信号を、所定のビットに対応するデータメモリセル２３−ｉに供給して、そのセル２３−ｉのトランジスタＴｒ１１をオン状態にして、コンデンサＣ１１の端子電圧を、その演算結果に対応する電圧にする。
【０２０４】
なお、ＡＬＵセル２４Ａにおける演算動作は、プログラム制御部２７Ａより供給されるＡＬＵ制御信号（ＳＡＬＵ−ＣＯＮＴ）に従って行われる。ＡＬＵセル２４Ａにおける演算結果は、上述のようにデータメモリ部２３に書き込まれるか、あるいは、必要に応じてＡＬＵセル２４Ａのフリップフロップ８２−３に記憶される。また、ＡＬＵ８１における演算が加算の場合は、ＡＬＵセル２４Ａは、演算結果におけるキャリーをフリップフロップ８２−３に、サムをデータメモリ部２３に出力する。
【０２０５】
次に、データメモリセル２３−ｉよりデータを出力させる場合、プログラム制御部２７Ａは、出力するデータを記憶しているデータメモリセル２３−ｉに、メモリアクセス信号（ＳＲＡＡあるいはＳＲＢＡ）を供給して、そのセル２３−ｉのトランジスタＴｒ１３またはＴｒ１４をオン状態にして、コンデンサＣ１１に記憶されているデータを読み出しビット線６１または６２に出力する。
【０２０６】
そして、プログラム制御部２７Ａは、ＡＬＵセル２４Ａに、所定の制御信号を供給し、データメモリセル２３−ｉからのデータを、出力ＳＡＭセル２５−ｉに転送させる。このとき、プログラム制御部２７Ａは、その出力ＳＡＭセル２５−ｉのコンデンサＣ４にデータが供給されるように、ＳＯＷ信号を出力し、そのセルのトランジスタＴｒ１７をオン状態にして、コンデンサＣ４の端子電圧を、そのデータに応じた電圧にする。
【０２０７】
なお、データは、書き込みビット線６３を経由して、１ビットずつ転送される。このとき、データに対して、ＡＬＵ８１により何らかの処理を行ってもよい。
【０２０８】
また、出力ＳＡＭ部２５の各出力ＳＡＭセル２５−ｉにデータを記憶させるときに利用するＳＯＷ信号と、データメモリ部２３の各データメモリセル２３−ｉからデータを読み出すときに利用するメモリアクセス信号（ＳＲＡＡ，ＳＲＢＡ）は、同じアドレス空間内のアドレスであり、それぞれロウデコーダでデコードされてワード線を介して供給される。
【０２０９】
出力ポインタ２６が指定した要素プロセッサ３１の出力ＳＡＭセル２５−ｉにおいては、トランジスタＴｒ８が出力ポインタ信号に対応してオン状態になり、コンデンサＣ４の電位に応じた出力信号が出力データバス６６に出力される。
【０２１０】
そして、出力ポインタ２６は、値が「Ｈ」である出力ポインタ信号を、左端の要素プロセッサ３１から右端の要素プロセッサ３１まで、クロック信号に従って、順次供給することにより、各要素プロセッサ３１の出力ＳＡＭセル２５−ｉから、データを順次出力させる。
【０２１１】
このようにして、出力ＳＡＭセル２５−ｉに供給されたデータは、出力データバス６６を介して出力端子ＤＯＵＴに出力される。
【０２１２】
なお、要素プロセッサ３１は、画像信号の１水平走査期間の画素数Ｈ以上設けられているので、この動作を行うことにより、出力画像信号の１水平走査期間分のデータが、出力ＳＡＭ部２５より出力される。そして、この出力動作は水平走査期間毎に繰り返される。
【０２１３】
以上のようにして、各要素プロセッサ３１は、データの入力、データの転送、演算、データの出力などの処理を行う。
【０２１４】
なお、第２の実施の形態においては、起動時や、水平帰線期間または垂直帰線期間に、すべてのフィルタ係数セットが、すべての要素プロセッサ３１のデータメモリ部２３に供給される。このとき、フィルタ係数セットは、メモリ２８から、入力データバス６５の一部（所定のビット幅）を介して、入力ＳＡＭ部２２に供給され、データメモリ部２３に転送される。このときの動作は、次に説明する、データメモリ部２３への入力データＲｉの供給の動作と同様であるので、その説明を省略する。
【０２１５】
次に、図７のフローチャートを参照して、第２の実施の形態の動作について説明する。
【０２１６】
最初に、ステップＳ１において、１水平走査期間分の所定のＬビットの入力データＲｉ（＝｛ｒｉ０，・・・，ｒｉ（Ｌ−１）｝）が入力ＳＡＭ部２２に入力される。
【０２１７】
（１０／７）倍の画像の拡大を行う場合、上述のように、各出力データの算出に必要な入力データを保持している要素プロセッサ３１と、その出力データを算出する要素プロセッサ３１との位置関係が、出力データ毎に変化する。例えば、７画素の入力データに対応して１０画素の出力データを算出する場合、各出力データの算出に必要な入力データを保持している要素プロセッサ３１のパターンは、図３５に示すように５つのパターンに分類される。
【０２１８】
そこで、このとき、図８に示すように、７個の入力データのいずれかを重複させて、その７個の入力データを、１０個の要素プロセッサ３１に密に供給する。即ち、図３４に示す要素プロセッサ３１のうち、入力データが供給されないものに対して、その左隣りの要素プロセッサ３１と同一の入力データを供給する。
【０２１９】
この入力データの供給の手順は、図３０の装置におけるデータの入力と同様にして実現してもよいし、あるいは、特開平８−１２３６８３号公報に記載されている方法を利用して、疎な状態になるようにデータを一旦供給し、その後、プログラムに従って所定のデータをコピーするようにして実現してもよい。
【０２２０】
なお、図８においては、入力データＲｉおよび出力データＱｉは、実際は、８ビット程度であるが、便宜上、それぞれ４ビットで表されている。また、入力ＳＡＭ部２２、データメモリ部２３、および、出力ＳＡＭ部２５においては、説明に必要なメモリ容量だけを示している。
【０２２１】
このように入力データを供給することにより、図９に示すように、例えば、図９の種類１のパターンの場合、左２つ隣りの要素プロセッサ３１と、左隣りの要素プロセッサ３１に、同一の入力データが供給されるとともに、右隣りの要素プロセッサ３１と、右２つ隣りの要素プロセッサ３１に、同一の入力データが供給されるので、図９の種類１のパターンは、種類２のパターンと同様に取り扱うことができる。
【０２２２】
また、図９の種類３のパターンの場合、所定の要素プロセッサ３１と、その左隣りの要素プロセッサ３１に、同一の入力データが供給されるので、図９の種類３のパターンは、種類４のパターンと同様に取り扱うことができる。
【０２２３】
さらに、また、図９の種類５のパターンの場合、右隣りの要素プロセッサ３１と、右２つ隣りの要素プロセッサ３１に、同一の入力データが供給されるので、図９の種類５のパターンは、種類２のパターンと同様に取り扱うことができる。
【０２２４】
従って、図８に示すように入力データを供給することにより、上述の５つのパターンは、図１０に示す２つパターン（種類２と種類４）に縮退している。
【０２２５】
なお、（１０／７）以外の変換比率の場合も、予め、上述のパターンの数が最小になるような入力データの供給方式を算出しておくことにより、上述のように位置関係のパターンを縮退させることができる。
【０２２６】
そして、プログラム制御部２７Ａは、２つのパターンについて、要素プロセッサ３１に対応するパターンを示す１ビットの値（０または１）を、入力データとともに、各要素プロセッサ３１に供給する。
【０２２７】
次に、ステップＳ２乃至ステップＳ５において、プログラム制御部２７Ａは、各要素プロセッサ３１に供給された入力データＲｉを、入力ＳＡＭ部２２から、書き込みビット線６３を介して、データメモリ部２３に１ビットずつ転送させる。
【０２２８】
今の場合、入力データＲｉは、便宜上、４ビットに設定されており、入力ＳＡＭ部２２のアドレス０乃至４に記憶されている。従って、図８に示すように、入力ＳＡＭ部２２のアドレス０の内容が、データメモリ部２３のアドレス８に転送され、同様に、入力ＳＡＭ部２２のアドレス１乃至３の内容が、データメモリ部２３のアドレス９乃至１１にそれぞれ転送される。
【０２２９】
そして、ステップＳ６において、各要素プロセッサ３１は、後述の信号処理（補間演算）を行う。
【０２３０】
ステップＳ７乃至ステップＳ１０において、プログラム制御部２７Ａは、各要素プロセッサ３１において算出された演算結果（出力データＱｉ）を、データメモリ部２３から、読み出しビット線６１，６２、および、ＡＬＵセル２４Ａを介して出力ＳＡＭ部２５に１ビットずつ転送させる。
【０２３１】
今の場合、出力データＱｉ（＝ｑｉ０，・・・，ｑｉ３）は、便宜上、４ビットに設定されており、データメモリ部２３のアドレス１６乃至１９に記憶されている。従って、図８に示すように、データメモリ部２３のアドレス１６の内容が、出力ＳＡＭ部２５のアドレス２０に転送され、同様に、データメモリ部２３のアドレス１７乃至１９の内容が、出力ＳＡＭ部２５のアドレス２１乃至２３にそれぞれ転送される。
【０２３２】
次に、ステップＳ１１において、算出された１水平走査期間分の出力データＱｉが出力ＳＡＭ部２５から出力される。
【０２３３】
以上のようにして、各１水平走査期間分の画像データ毎に、フィルタ演算が行われる。なお、ステップＳ１の動作、ステップＳ２乃至ステップＳ１０の動作、および、ステップＳ１１の動作は並列に行われており、所定の１水平走査期間分の画像データに対してステップＳ２乃至ステップＳ１０の動作が行われているとき、１ライン前の１水平走査期間分の画像データに対してステップＳ１１の動作が行われ、１ライン後の１水平走査期間分画像データに対してステップＳ１の動作が行われる。
【０２３４】
次に、図１１および図１２のフローチャートを参照して、図７のステップＳ６における信号処理の詳細について説明する。
【０２３５】
最初にステップＳ２１において、各要素プロセッサ３１は、供給されたデータを保持するとともに、左隣りの要素プロセッサ３１にコピーする。なお、本実施の形態においては、要素プロセッサ３１は、左右１つ隣り、または、左右２つ隣りの要素プロセッサだけと通信を行うことが可能であるように構成されており、補間演算を行う場合、右３つ隣りの要素プロセッサ３１に供給されたデータが使用されるので、ステップＳ２１において、そのデータが、左隣りの要素プロセッサ３１に予めコピーされる。
【０２３６】
なお、以下、所定の要素プロセッサ３１に供給されたデータをＲ０とし、左隣りの要素プロセッサ３１に供給されたデータをＲ−１とし、左２つ隣りの要素プロセッサ３１に供給されたデータをＲ−２とする。また、右隣りの要素プロセッサ３１に供給されたデータをＲ＋１とし、右２つ隣りの要素プロセッサ３１に供給されたデータをＲ＋２とし、右３つ隣りの要素プロセッサ３１に供給されたデータをＲ＋３とする。
【０２３７】
次にステップＳ２２において、要素プロセッサ３１は、左隣りの要素プロセッサ３１のデータＲ−１と、予め供給されているフィルタ係数ＦＣ１の積を演算し、その演算結果をＹ１Ａに代入する。この積の演算は、所定の回数のビット演算を行うことにより実行される。
【０２３８】
なお、補間演算に利用されるフィルタ係数セット（ＦＣ１，ＦＣ２，ＦＣ３，ＦＣ４）には、そのフィルタ係数セットに対応する位相が、その要素プロセッサによって処理される画素の位相に最も近いものが選択される。
【０２３９】
このように、所定の数のフィルタ係数セットを用意しておき、処理される画素の位相に対応する最適なフィルタ係数セットを使用することにより、変換比率が変更されても、同様の動作で、最適なフィルタ係数セットが選択されることになる。
【０２４０】
ステップＳ２３において、要素プロセッサ３１は、自分に供給されたデータＲ０と、フィルタ係数ＦＣ２の積を演算し、その演算結果をＹ２Ａに代入する。
【０２４１】
そして、ステップＳ２４において、要素プロセッサ３１は、Ｙ１ＡとＹ２Ａの和を演算し、その演算結果をＹ１Ａに代入する。この和の演算は、所定の回数のビット演算を行うことにより実行される。
【０２４２】
次にステップＳ２５において、要素プロセッサ３１は、右２つ隣りの要素プロセッサ３１のデータＲ＋２と、フィルタ係数ＦＣ３の積を演算し、その演算結果をＹ２Ａに代入する。
【０２４３】
そして、ステップＳ２６において、要素プロセッサ３１は、Ｙ１ＡとＹ２Ａの和を演算し、その演算結果をＹ１Ａに代入する。
【０２４４】
次にステップＳ２７において、要素プロセッサ３１は、右２つ隣りの要素プロセッサ３１が有している、右３つ隣りの要素プロセッサ３１のデータＲ＋３と、フィルタ係数ＦＣ４の積を演算し、その演算結果をＹ２Ａに代入する。
【０２４５】
そして、ステップＳ２８において、要素プロセッサ３１は、Ｙ１ＡとＹ２Ａの和を演算し、その演算結果をＹ１Ａに代入する。このとき、Ｙ１Ａの値は、Ｒ−１×ＦＣ１＋Ｒ０×ＦＣ２＋Ｒ＋２×ＦＣ３＋Ｒ＋３×ＦＣ４であり、図１０の種類２のパターンに対応している。
【０２４６】
次に、ステップＳ２９において、要素プロセッサ３１は、左２つ隣りの要素プロセッサ３１のデータＲ−２と、フィルタ係数ＦＣ１の積を演算し、その演算結果をＹ１Ｂに代入する。
【０２４７】
ステップＳ３０において、要素プロセッサ３１は、自分に供給されたデータＲ０と、フィルタ係数ＦＣ２の積を演算し、その演算結果をＹ２Ｂに代入する。
【０２４８】
そして、ステップＳ３１において、要素プロセッサ３１は、Ｙ１ＢとＹ２Ｂの和を演算し、その演算結果をＹ１Ｂに代入する。
【０２４９】
次にステップＳ３２において、要素プロセッサ３１は、右隣りの要素プロセッサ３１のデータＲ＋１と、フィルタ係数ＦＣ３の積を演算し、その演算結果を、Ｙ２Ｂに代入する。
【０２５０】
そして、ステップＳ３３において、要素プロセッサ３１は、Ｙ１ＢとＹ２Ｂの和を演算し、その演算結果をＹ１Ｂに代入する。
【０２５１】
次にステップＳ３４において、要素プロセッサ３１は、右２つ隣りの要素プロセッサ３１のデータＲ＋２と、フィルタ係数ＦＣ４の積を演算し、その演算結果をＹ２Ｂに代入する。
【０２５２】
ステップＳ３５において、要素プロセッサ３１は、Ｙ１ＢとＹ２Ｂの和を演算し、その演算結果をＹ１Ｂに代入する。このとき、Ｙ１Ｂの値は、Ｒ−２×ＦＣ１＋Ｒ０×ＦＣ２＋Ｒ＋１×ＦＣ３＋Ｒ＋２×ＦＣ４であり、図１０の種類４のパターンに対応している。
【０２５３】
そして、ステップＳ３６において、要素プロセッサ３１は、入力データＲｉとともに供給された、上述の位置関係を示す値（０または１）を参照して、その値が、第１の値（図１０の種類２に対応する値）であるか否かを判断し、その値が第１の値であると判断した場合、ステップＳ３７に進み、ステップＳ２８のＹ１Ａを演算結果とし、上述の位置関係を示す値が、第１の値ではないと判断した場合（即ち、図１０の種類４に対応する値である場合）、ステップＳ３５のＹ１Ｂを演算結果とする。
【０２５４】
以上のようにして、２種類の位置関係に対応して近傍の要素プロセッサ３１のデータを利用してフィルタ演算（補間演算）が行われる。そして、上述のように位相の誤差が最小になるようにフィルタ係数セットを選択することにより、ＳＩＭＤ形式の並列プロセッサにおいても、任意の変換比率の画像処理を行うことができる。
【０２５５】
なお、セレクタを設けて、メモリ２８からのフィルタ係数セットおよび入力データのいずれか一方を、入力ＳＡＭ部２２に供給させるようにすることにより、例えば、垂直帰線期間などの入力ＳＡＭ部２２が入力データＲｉの供給に利用されていない期間に、フィルタ係数セットを入力データと同様に供給するようにしてもよい。
【０２５６】
このようにすることにより、入力データと同一のビット数のバス６５を利用して、フィルタ係数の供給を行うことができるので、ビット数の大きい（語長の長い）フィルタ係数を短時間で供給することができる。
【０２５７】
例えばフィルタ係数のビット数が１０である場合、４つのフィルタ係数のセットは合計４０ビットのデータであるので、例えば１６ビットの入力データバス６５および入力ＳＡＭ部２２を介してデータメモリ部２３に、垂直帰線期間内で、フィルタ係数を供給することが十分可能である。
【０２５８】
なお、第２の実施の形態においては、フィルタ係数セットは、入力データＲｉとは異なるパターンで入力ＳＡＭ部２２に供給されるので（フィルタ係数は、その順番通りに、各要素プロセッサ３１に供給されるので）、入力データと並行してフィルタ係数を供給する場合、２系統の入力ＳＡＭ部２２のポインタ制御用の回路を設け、入力データＲｉに対するポインタ制御と、フィルタ係数に対するポインタ制御が、独立に行われるようにする。
【０２５９】
また、この入力データの供給の手順は、図３０の装置におけるデータの入力と同様にして実現してもよいし、あるいは、特開平８−１２３６８３号公報に記載されている方法を利用して、疎な状態になるようにデータを一旦供給し、その後、プログラムに従って所定のデータをコピーするようにして実現してもよい。
【０２６０】
図１３は、本発明の第３の実施の形態の構成を示している。第３の実施の形態においては、メモリ２９（記憶手段）は、図４のメモリ２８と同様に、所定の分割数に対応するフィルタ係数セットのデータを保持するようになされている。また、メモリ２９は、プログラム制御部２７Ｂにより制御され、起動時、水平帰線期間、垂直帰線期間などにおいて、フィルタ係数セットを、そのフィルタ係数セットに対応する位相の画素の値を算出する要素プロセッサ３１のＡＬＵアレイ部２４を介してデータメモリ部２３に供給する。
【０２６１】
メモリ２８Ａは、各要素プロセッサ３１に対応して、その要素プロセッサ３１により算出される画素の位相に対応するフィルタ選択番号ｉ（即ち、位相ｘが、補間する画素の位相に最も近いフィルタ係数セットのフィルタ選択信号Ｐｉに対応する番号ｉ）を保持する。そのフィルタ選択番号ｉは、第２の実施の形態のフィルタ係数セットと同様に、入力データバス６５を介して、入力データＲｉとともにデータメモリ部２３に供給される。
【０２６２】
なお、メモリ２８Ａ，２９に記憶されているデータは、外部の制御用ＣＰＵにより、起動時などに予め供給されるものとする。
【０２６３】
プログラム制御部２７Ｂは、各部を制御し、後述の動作を行わせるようになされている。
【０２６４】
なお、その他の構成要素は、第２の実施の形態のものと同様であるので、その説明を省略する。
【０２６５】
なお、メモリ２８Ａに保持されているフィルタ選択番号ｉは、例えば起動時に、入力データバス６５および入力ＳＡＭ部２２を介してデータメモリ部２３に予め供給されているものとする。
【０２６６】
例えば、画素間隔の分割数（即ち、フィルタ係数セットの数）が１６である場合、メモリ２８Ａは、水平方向の画素数Ｈに関係なく、１６種類の位相に対応する１６個のフィルタ選択番号ｉを記憶していればよい。即ち、フィルタ選択番号ｉが１６個存在する場合、そのフィルタ選択番号は、４ビットの２進数で表現することができるので、メモリ２８Ａは、フィルタ選択番号ｉとして４ビットのデータを記憶する。
【０２６７】
また、フィルタ選択番号ｉが１，０００種類あったとしても、１０ビットの２進数で表現することができるので、第２の実施の形態のように、フィルタ係数を入力ＳＡＭ部２２を介して供給する場合より、メモリ２８Ａの容量を低減することができる。
【０２６８】
図１４は、各要素プロセッサ３１のデータメモリ部２３に記憶されているフィルタ選択番号ｉ（＝｛φｉ０，・・・，φｉ３｝）の一例を示している。図１４のデータメモリ部２３においては、１６種類のフィルタ選択番号のうち、１０種類のフィルタ選択番号ｉ（ｉ＝０，・・・，９）が、４ビットのデータとして記憶されている。例えば、番号が６である要素プロセッサ３１のデータメモリ部２３には、フィルタ選択番号ｉが３である４ビットのデータ｛φ３０，・・・，φ３３｝が記憶されている。
【０２６９】
次に、図１５のフローチャートを参照して、第３の実施の形態において、フィルタ係数セットを各要素プロセッサ３１のデータメモリ部２３に供給するときの各部の動作について説明する。
【０２７０】
最初にステップＳ４１において、プログラム制御部２７Ｂは、供給するフィルタ係数セットに対応するフィルタ選択番号ｉをカウントするカウンタｊの値を０に設定する。
【０２７１】
次に、ステップＳ４２において、プログラム制御部２７Ｂは、カウンタｊの値をビット単位で供給するときに利用するカウンタｍの値を１に設定する。
【０２７２】
そして、プログラム制御部２７Ｂは、すべての要素プロセッサ３１のＡＬＵセル２４Ａに、カウンタｊの値の第ｍ番目のビットの値を出力し、各要素プロセッサ３１のＡＬＵセル２４Ａは、そのビットの値を受け取る。
【０２７３】
ステップＳ４４において、プログラム制御部２７Ｂは、カウンタｍの値がカウンタｊのビット長以上であるか否かを判断し、カウンタｍの値がカウンタｊのビット長より小さいと判断した場合、ステップＳ４５において、カウンタｍの値を１だけ増加させた後、ステップＳ４３に戻り、次のビットの供給を行う。
【０２７４】
このようにして、カウンタｊの値は、１ビットずつ各要素プロセッサ３１に供給される。
【０２７５】
一方、ステップＳ４４においてカウンタｍの値がカウンタｊのビット長以上であると判断された場合、カウンタｊの値が供給されたことになるので、ステップＳ４６において、各要素プロセッサ３１は、受信したカウンタｊの値と、予めメモリ２８Ａより供給されたフィルタ選択番号ｉの値が同一であるか否かを判断し、同一である場合、例えば、その判断に対応してフラグを設定し、ステップＳ４７に進む。
【０２７６】
ステップＳ４７において、各要素プロセッサ３１は、そのフラグに対応して、供給されたフィルタ係数セットのビット数をカウントするカウンタｋの値を１に設定する。
【０２７７】
そして、ステップＳ４８において、各要素プロセッサ３１は、メモリ２９より出力された、フィルタ係数セットの第ｋ番目のビットの値をＡＬＵセル２４Ａで受け取り、データメモリ部２３に記憶させる。
【０２７８】
なお、メモリ２９においては、各位相（即ち、フィルタ選択番号ｉ）に対応するフィルタ係数セットが、係数毎に、最上位ビット（ＭＳＢ）または最下位ビット（ＬＳＢ）から順番に記憶されており、フィルタ係数セットは、上述のように１ビットの回線を介して、１ビットずつ要素プロセッサ３１のＡＬＵセル２４Ａに順次出力される。
【０２７９】
そして、ステップＳ４９において、各要素プロセッサ３１は、カウンタｋの値がフィルタ係数セットのビット長以上であるか否かを判断し、カウンタｋの値がフィルタ係数セットのビット長より小さいと判断した場合、ステップＳ５０において、カウンタｋの値を１だけ増加させた後、ステップＳ４８に戻り、フィルタ係数セットの次のビットの受信を行う。
【０２８０】
一方、ステップＳ４９においてカウンタｋの値がフィルタ係数セットのビット長以上であると判断された場合、カウンタｊの値に対応するフィルタ係数セットの供給が終了したことになるので、ステップＳ５１に進む。
【０２８１】
一方、ステップＳ４６において、要素プロセッサ３１が、カウンタｊの値と、予めメモリ２８Ａより供給されたフィルタ選択番号ｉの値が同一ではないと判断した場合（即ち、フラグが立っていない場合）、その要素プロセッサ３１は、メモリ２９より出力されたフィルタ係数セットを受け取らず、即ち、データメモリ部２３に記憶せず、ステップＳ４７乃至Ｓ５０をスキップする。なお、実際には、ＳＩＭＤ制御において処理のスキップを行うことは困難であるので、要素プロセッサ３１は、ステップＳ４７乃至Ｓ５０をスキップした場合と同一の結果になるように処理を行う。
【０２８２】
次に、ステップＳ５１において、プログラム制御部２７Ｂは、カウンタｊの値が、フィルタ係数セットの数Ｎより１だけ減算した値以上であるか否かを判断し、カウンタｊの値が、フィルタ係数セットの数Ｎより１だけ減算した値以上（ｊ≧Ｎ−１）であると判断した場合、Ｎ個のフィルタ係数セットのうちのいずれかが各要素プロセッサ３１に供給されたことになるので、フィルタ係数セットの供給の処理を終了する。
【０２８３】
一方、プログラム制御部２７Ｂは、カウンタｊの値が、フィルタ係数セットの数Ｎより１だけ減算した値より小さい（ｊ＜Ｎ−１）と判断した場合、ステップＳ５２において、カウンタｊの値を１だけ増加させて、ステップＳ４２に戻り、次のフィルタ選択番号ｉに対応するフィルタ係数セットの供給を行う。
【０２８４】
このようにして、各要素プロセッサ３１は、予め供給されているフィルタ選択番号ｉに対応するフィルタ係数をメモリ２９より受け取り、データメモリ部２３に記憶させる。
【０２８５】
このように、フィルタ係数セットを入力データＲｉとは別の経路で供給することにより、フィルタ係数セットを選択的に要素プロセッサ３１に供給することを、多くのプログラムステップを必要とすることなく、容易に実現することができる。
【０２８６】
メモリ２９に記憶されている例えば１６種類のフィルタ係数セットのうちのいずれかを各要素プロセッサ３１に供給する場合、１つのフィルタ係数セットが、すべての要素プロセッサ３１の約１６分の１の要素プロセッサ３１に同時に供給されるので、フィルタ係数セットが例えば４０ビットであるとき、要素プロセッサ３１の数に拘わらず、６４０（＝４０×１６）ステップの動作で、すべての要素プロセッサ３１にフィルタ係数セットを供給することができる。
【０２８７】
なお、画像データの処理を行うときの動作は、第２の実施の形態のものと同様であるので、その説明を省略する。
【０２８８】
以上のように、第３の実施の形態においては、フィルタ係数セットを、入力データとは別の経路で供給するので、入力ＳＡＭ部２２の稼働状況に拘わらずフィルタ係数セットを供給することができる。
【０２８９】
なお、第３の実施の形態においては、変換比率を変更させる場合、メモリ２８Ａに記憶されている、各要素プロセッサ３１に対応するフィルタ選択番号ｉを変更すればよい。
【０２９０】
次に、本発明の第４の実施の形態について説明する。第４の実施の形態においては、各要素プロセッサ３１が、フィルタ選択番号ｉに対応して、各要素プロセッサ３１で、フィルタ係数セットを算出するようになされている。
【０２９１】
なお、第４の実施の形態の構成およびフィルタ演算時の動作は、第２の実施の形態と同様であるので、その説明を省略する。ただし、メモリ２８は、第３の実施の形態のメモリ２８Ａと同様にフィルタ選択番号ｉを記憶しているものとする。
【０２９２】
従って、変換比率を変更させる場合、メモリ２８に記憶されている、各要素プロセッサ３１に対応するフィルタ選択番号ｉを変更すればよい。
【０２９３】
次に、図１６および図１７のフローチャートを参照して、第４の実施の形態において、フィルタ係数セットを算出するときの各部の動作について説明する。なお、ここでは、式（４）のＣｕｂｉｃ近似法におけるフィルタ係数セットを算出する。勿論、他の近似法におけるフィルタ係数セットを算出するようにしてもよい。
【０２９４】
最初に、ステップＳ６１において、要素プロセッサ３１は、画像の変換比率をＫ／Ｌ倍とすると、予め供給されているフィルタ選択番号ｉとＫより、値を算出する画素の位相ｉ／Ｋを算出し、Ｘ０として記憶する。なお、ＫおよびＬは、プログラム制御部２７Ａより供給される。
【０２９５】
次に、要素プロセッサ３１は、ステップＳ６２において、Ｘ０をＸに代入し、ステップＳ６３において、Ｘの２乗（Ｘ×Ｘ）を演算し、その演算結果をＸ２として記憶する。
【０２９６】
さらに、ステップＳ６４において、要素プロセッサ３１は、Ｘ２とＸの積（即ち、Ｘの３乗）を演算し、その演算結果をＸ３として記憶する。
【０２９７】
そして、ステップＳ６５において、要素プロセッサ３１は、式（４）を利用して、Ｘ、Ｘ２およびＸ３より、次式に従ってフィルタ係数ＦＣ３を算出する。
ＦＣ３＝−Ｘ３＋５Ｘ２−８Ｘ＋４      （５）
【０２９８】
次に、ステップＳ６６において、要素プロセッサ３１は、Ｘ０（＝ｉ／Ｋ）に１だけ加算した値を、Ｘに代入する。
【０２９９】
そして、要素プロセッサ３１は、ステップＳ６７において、Ｘの２乗（Ｘ×Ｘ）を演算し、その演算結果をＸ２に代入し、ステップＳ６８において、Ｘ２とＸの積（即ち、Ｘの３乗）を演算し、その演算結果をＸ３に代入する。
【０３００】
ステップＳ６９において、要素プロセッサ３１は、式（４）を利用して、Ｘ、Ｘ２およびＸ３より、次式に従ってフィルタ係数ＦＣ４を算出する。
ＦＣ４＝Ｘ３−２Ｘ２＋１      （６）
【０３０１】
次に、ステップＳ７０において、要素プロセッサ３１は、１からＸ０を減算した値をＸに代入する。
【０３０２】
そして、要素プロセッサ３１は、ステップＳ７１において、Ｘの２乗（Ｘ×Ｘ）を演算し、その演算結果をＸ２に代入し、ステップＳ７２において、Ｘ２とＸの積（即ち、Ｘの３乗）を演算し、その演算結果をＸ３に代入する。
【０３０３】
ステップＳ７３において、要素プロセッサ３１は、式（４）を利用して、Ｘ、Ｘ２およびＸ３より、次式に従ってフィルタ係数ＦＣ２を算出する。
ＦＣ２＝−Ｘ３＋５Ｘ２−８Ｘ＋４      （７）
【０３０４】
次に、ステップＳ７４において、要素プロセッサ３１は、Ｘに１だけ加算した値（２−ｉ／Ｋ）を演算し、その演算結果をＸに代入する。
【０３０５】
そして、要素プロセッサ３１は、ステップＳ７５において、Ｘの２乗（Ｘ×Ｘ）を演算し、その演算結果をＸ２に代入し、ステップＳ７６において、Ｘ２とＸの積（即ち、Ｘの３乗）を演算し、その演算結果をＸ３に代入する。
【０３０６】
ステップＳ７７において、要素プロセッサ３１は、式（４）を利用して、Ｘ、Ｘ２およびＸ３より、次式に従ってフィルタ係数ＦＣ１を算出する。
ＦＣ１＝Ｘ３−２Ｘ２＋１      （８）
【０３０７】
以上のようにして、第４の実施の形態においては、フィルタ選択番号ｉに対応して、各要素プロセッサ３１で、フィルタ係数セット（ＦＣ１，ＦＣ２，ＦＣ３，ＦＣ４）を算出する。
【０３０８】
このように、フィルタ係数セットを各要素プロセッサ３１で算出することにより、要素プロセッサ３１の外部のメモリ（メモリ２８，２９など）よりフィルタ係数セットを供給する必要がなく、フィルタ係数セットの供給のタイミングなどを考慮する必要がなくなる。
【０３０９】
図１８は、本発明の第５の実施の形態の構成を示している。
【０３１０】
第５の実施の形態は、第３の実施の形態のメモリ２８Ａを取り除いたもので、フィルタ選択番号ｉを、各要素プロセッサ３１で算出するようになされている。
【０３１１】
なお、プログラム制御部２７Ｃのプログラムは、後述の動作を行わせるように変更されているが、その他の構成要素、フィルタ係数の供給時の動作、および、フィルタ演算時の動作は、第３の実施の形態のものと同様であるので、その説明を省略する。
【０３１２】
次に、図１９のフローチャートを参照して、フィルタ選択番号ｉを演算するときの動作について説明する。
【０３１３】
最初にステップＳ８１において、要素プロセッサ３１は、作業空間としてレジスタＺＡ０，ＺＢ０，ＺＣ０をそれぞれ確保する。
【０３１４】
次に、ステップＳ８２において、各要素プロセッサ３１は、ＺＡ０、ＺＢ０、および、ＺＣ０に零をそれぞれ代入する。
【０３１５】
ステップＳ８３において、各要素プロセッサ３１は、左隣りの要素プロセッサ３１のＺＡ０の値ＺＡ−１と、変換比率をＫ／Ｌ倍（即ち、Ｋ：Ｌ）としたときのＬとの和を演算し、その演算結果を、ＺＡ０に記憶する。なお、最も左側の要素プロセッサ３１は、左隣りに要素プロセッサ３１がないので、ＺＡ−１を０として演算を行う。
【０３１６】
ステップＳ８４において、各要素プロセッサ３１は、ＺＡ０の値がＫより大きいか否かを判断し、ＺＡ０の値がＫより大きいと判断した場合、ステップＳ８５において、ＺＡ０の値をＫで割算したときの剰余を演算し、その演算結果をＺＡ０に代入する。
【０３１７】
一方、各要素プロセッサ３１は、ＺＡ０の値がＫ以下であると判断した場合、ステップＳ８５をスキップする。なお、実際には、ＳＩＭＤ制御において処理のスキップを行うことは困難であるので、要素プロセッサ３１は、ステップＳ８５をスキップした場合と同一の結果になるように処理を行う。
【０３１８】
そして、ステップＳ８６において、各要素プロセッサ３１は、ステップＳ８３乃至ステップＳ８５の動作を、現在取り扱っている画像フォーマットの水平方向の画素数より多く繰り返したか否かを判断し、ステップＳ８３乃至ステップＳ８５の動作を、現在取り扱っている画像フォーマットの水平方向の画素数以下しか繰り返していないと判断した場合、ステップＳ８３に戻り、ステップＳ８３乃至ステップＳ８５の動作を再度行う。
【０３１９】
一方、各要素プロセッサ３１は、ステップＳ８３乃至ステップＳ８５の動作を、現在取り扱っている画像フォーマットの水平方向の画素数より多く繰り返したと判断した場合、ステップＳ８７に進む。
【０３２０】
ステップＳ８７において、各要素プロセッサ３１は、左隣りの要素プロセッサ３１のＺＢ０の値ＺＢ−１とＬとの和を演算し、その演算結果をＺＣ０に記憶する。なお、最も左側の要素プロセッサ３１は、左隣りに要素プロセッサ３１がないので、ＺＢ−１を０として演算を行う。
【０３２１】
次に、ステップＳ８８において、要素プロセッサ３１は、ＺＣ０の値がＫの２倍の値より大きいか否かを判断し、ＺＣ０の値がＫの２倍の値より大きいと判断した場合、ステップＳ９０において、ＺＢ０の値からＫを減算した値をＺＢ０に代入する。
【０３２２】
一方、要素プロセッサ３１は、ＺＣ０の値がＫの２倍の値以下であると判断した場合、ステップＳ８９において、ＺＣ０の値からＫを減算した値をＺＢ０に代入する。
【０３２３】
そして、ステップＳ９１において、各要素プロセッサ３１は、ステップＳ８７乃至ステップＳ９０の動作を、現在取り扱っている画像フォーマットの水平方向の画素数より多く繰り返したか否かを判断し、ステップＳ８７乃至ステップＳ９０の動作を、現在取り扱っている画像フォーマットの水平方向の画素数以下しか繰り返していないと判断した場合、ステップＳ８７に戻り、ステップＳ８７乃至ステップＳ９０の動作を再度行う。
【０３２４】
一方、各要素プロセッサ３１は、ステップＳ８７乃至ステップＳ９０の動作を、現在取り扱っている画像フォーマットの水平方向の画素数より多く繰り返したと判断した場合、ステップＳ９２に進む。
【０３２５】
そして、ステップＳ９２において、各要素プロセッサ３１は、ＫがＬより大きい、即ち、画像の拡大の処理であるか否かを判断し、ＫがＬより大きいと判断した場合、ステップＳ９４において、フィルタ選択番号ｉとしてＺＡ０の値を利用し、ＫがＬ以下であると判断した場合、ステップＳ９３において、フィルタ選択番号ｉとしてＺＢ０の値を利用する。
【０３２６】
以上のようにして、フィルタ選択番号ｉを算出する。なお、ステップＳ８５において、割算（剰余の算出）を行っているが、実際には、減算を繰り返し実行している。なお、上述の処理は多くの処理ステップを有するが、リアルタイムの処理を行う前や、垂直帰線期間などにおいて処理を行うことにより特に問題は生じない。
【０３２７】
なお、ステップＳ８４およびステップＳ８８における判断に対応して、入力データまたは出力データと、要素プロセッサ３１との対応関係（図３４のＲｉの入力の仕方）を設定するようにしてもよい。即ち、ステップＳ８５は、上述の位相のモジュロ演算と同様の処理を行っているので、ステップＳ８４における判断に対応して、モジュロ演算が発生した要素プロセッサ３１が、図３４の入力データがない場所であると判断される。
【０３２８】
図２０は、本発明の第６の実施の形態の構成を示している。
【０３２９】
第６の実施の形態は、フィルタ選択番号ｉおよびそれに対応するフィルタ係数セットを、第４の実施の形態または第５の実施の形態と同様に、各要素プロセッサ３１で算出することにより、メモリ２８，２８Ａ，２９を不要としたものである。
【０３３０】
プログラム制御部２７Ｄは、各要素プロセッサ３１を制御し、第４の実施の形態または第５の実施の形態のプログラム制御部と同様に、フィルタ選択番号ｉおよびそれに対応するフィルタ係数セットを算出させるようになされている。
【０３３１】
その他の構成要素は、第５の実施の形態と同様であるので、その説明を省略する。また、フィルタ係数セットを算出するときの動作は、第４の実施の形態と同様であり、その他の動作は、第５の実施の形態と同様であるので、その説明を省略する。
【０３３２】
なお、上記実施の形態において、位相の誤差を低減するために分割数を大きくする場合、フィルタ演算を２段階にすることにより、処理を簡単にすることができる。
【０３３３】
例えば、分割数が１６であるＣｕｂｉｃ近似を分割数が２５６であるＣｕｂｉｃ近似に変更する代わりに、最初に、分割数が１６のＣｕｂｉｃ近似を行い、その演算結果である補間値のうちの近傍の２点から、分割数が１６の例えば双１次近似を行うことにより、全体の補間の処理が簡単になる。
【０３３４】
また、画素データは、通常、輝度情報を含む輝度データと、色情報を含む色データで構成されているので、精細度が要求される輝度データに対しては、色データより大きい分割数で補間の処理を行うようにしてもよい。
【０３３５】
なお、上記実施の形態においては、主に画像の拡大について説明しているが、画像の縮小を行うことも勿論可能である。また、画像の縮小の場合、入力ＳＡＭ部２２には、入力データが順番通りに密に供給され、出力ＳＡＭ部２５には、出力データが疎に出力されてくる。
【０３３６】
また、上記実施の形態の端部（右端、左端）周辺の要素プロセッサ３１においては、演算に利用する入力データを有する周辺の要素プロセッサ３１が存在しない場合があるので、その場合においては、その入力データの値を０として演算を行う。
【０３３７】
その他に、例えば、端のデータがその外側に連続している、あるいは、端を中心にしてデータが対称になっていると仮定するなど、画像端辺での処理には様々な方法が考えられる。これらの方法のうち、所定の方法に対応してプログラムを記述することにより、その方法を実現することができる。
【０３３８】
なお、上述のメモリ２８，２８Ａ，２９の容量は、画素の位相の種類や、変換比率に対応する分数の分子または分母に依存する量であり、それほど大きくないので、装置の規模が大きくなるようなことはない。
【０３４０】
【発明の効果】
以上のように、本発明によれば、所定の分割数で元の画像の画素間隔を分割したときの各位相に対応するフィルタ係数セットのうち、位相が、処理される画素データの位相に最も近いフィルタ係数セットであって、かつ、周辺の要素プロセッサと所定の要素プロセッサとの位置関係のパターンの種類が最小になるフィルタ係数セットを、要素プロセッサにそれぞれ供給し、要素プロセッサが、フィルタ係数セットを利用して、画素データの補間の処理をそれぞれ行うようにしたので、ＳＩＭＤ形式の並列プロセッサを利用して任意の変換比率の画像の拡大または縮小を行うことができる。
【図面の簡単な説明】
【図１】本発明の画像処理装置の第１の実施の形態の構成を示すブロック図である。
【図２】フィルタ選択信号Ｐｉおよび位相量ｘと、フィルタ係数セットとの対応関係の一例を示す図である。
【図３】図１の装置において行われるフィルタ演算の各サイクルにおける補間値Ｑｉと、フィルタ選択信号Ｐｉの対応関係の一例を示す図である。
【図４】本発明の画像処理装置の第２の実施の形態の構成を示すブロック図である。
【図５】要素プロセッサの構成例を示すブロック図である。
【図６】要素プロセッサの詳細な構成例を示す回路図である。
【図７】図４の画像処理装置の動作を説明するフローチャートである。
【図８】図４の画像処理装置の各部に記憶されるデータの一例を示す図である。
【図９】処理に必要なデータを有する要素プロセッサとの位置関係の例を示す図である。
【図１０】図９の位置関係を縮退させた位置関係の例を示す図である。
【図１１】図４の画像処理装置におけるフィルタ演算の処理を説明するフローチャートである。
【図１２】図４の画像処理装置におけるフィルタ演算の処理を説明するフローチャートである。
【図１３】本発明の画像処理装置の第３の実施の形態の構成を示すブロック図である。
【図１４】データメモリ部に記憶されているフィルタ選択番号の一例を示す図である。
【図１５】フィルタ係数セットを供給するときの図１３の画像処理装置の動作について説明するフローチャートである。
【図１６】第４の実施の形態において、各要素プロセッサがフィルタ係数セットを演算するときの動作について説明するフローチャートである。
【図１７】第４の実施の形態において、各要素プロセッサがフィルタ係数セットを演算するときの動作について説明するフローチャートである。
【図１８】本発明の画像処理装置の第５の実施の形態の構成を示すブロック図である。
【図１９】各要素プロセッサがフィルタ選択番号を演算するときの図１８の画像処理装置の動作について説明するフローチャートである。
【図２０】本発明の画像処理装置の第６の実施の形態の構成を示すブロック図である。
【図２１】原画像の一例を示す図である。
【図２２】原画像を拡大した画像の一例を示す図である。
【図２３】原画像の画素と、拡大した画像の画素の位置関係の一例を示す図である。
【図２４】原画像の解像度を高くした画像の一例を示す図である。
【図２５】原画像を縮小した画像の一例を示す図である。
【図２６】原画像の画素と、縮小した画像の画素の位置関係の一例を示す図である。
【図２７】原画像の解像度を低くした画像の一例を示す図である。
【図２８】原画像の画素と、補間により生成される画素の位置関係の一例を示す図である。
【図２９】補間関数の例を示す図である。
【図３０】ハードウェア的にフィルタ演算を行う装置の一構成例を示すブロック図である。
【図３１】図３０の装置において行われるフィルタ演算の各サイクルにおける各部の信号の一例を示す図である。
【図３２】フィルタ選択信号とフィルタ係数セットの対応関係の一例を示す図である。
【図３３】ソフトウェア的にフィルタ演算を行う装置の一構成例を示すブロック図である。
【図３４】図３３の装置において、画像の拡大を行う場合における入力データの供給のパターンの一例を示す図である。
【図３５】処理に必要なデータを有する要素プロセッサとの位置関係の例を示す図である。
【符号の説明】
５  制御回路，  １１  剰余回路，  １２  レジスタ，  １３  近似回路，  ２１  入力ポインタ，  ２２  入力ＳＡＭ部，  ２３  データメモリ部，  ２４ＡＬＵアレイ部，  ２５  出力ＳＡＭ部，  ２６  出力ポインタ，  ２７，２７Ａ，２７Ｂ，２７Ｃ，２７Ｄ  プログラム制御部，  ２８，２８Ａ，２９  メモリ
【図１】
0003596194.tif 000005
【図２】
0003596194.tif 000006
【図３】
0003596194.tif 000007
【図４】
0003596194.tif 000008
【図５】
0003596194.tif 000009
【図６】
0003596194.tif 000010
【図７】
0003596194.tif 000011
【図８】
0003596194.tif 000012
【図９】
0003596194.tif 000013
【図１０】
0003596194.tif 000014
【図１１】
0003596194.tif 000015
【図１２】
0003596194.tif 000016
【図１３】
0003596194.tif 000017
【図１４】
0003596194.tif 000018
【図１５】
0003596194.tif 000019
【図１６】
0003596194.tif 000020
【図１７】
0003596194.tif 000021
【図１８】
0003596194.tif 000022
【図１９】
0003596194.tif 000023
【図２０】
0003596194.tif 000024
【図２１】
0003596194.tif 000025
【図２２】
0003596194.tif 000026
【図２３】
0003596194.tif 000027
【図２４】
0003596194.tif 000028
【図２５】
0003596194.tif 000029
【図２６】
0003596194.tif 000030
【図２７】
0003596194.tif 000031
【図２８】
0003596194.tif 000032
【図２９】
0003596194.tif 000033
【図３０】
0003596194.tif 000034
【図３１】
0003596194.tif 000035
【図３２】
0003596194.tif 000036
【図３３】
0003596194.tif 000037
【図３４】
0003596194.tif 000038
【図３５】
0003596194.tif 000039