(57)【特許請求の範囲】
【請求項１】
入力画像に対して並列に処理を行う複数のプロセッサエレメントを有するＳＩＭＤ型プロセッサを用いて拡大・縮小処理を行う画像処理装置であって、
拡縮率に応じて前記ＳＩＭＤ型プロセッサへの画像データ入力のタイミングを決定するタイミング決定手段と、
前記タイミング決定手段によって決定されたタイミングに応じて前記入力画像の画像データを前記ＳＩＭＤ型プロセッサに入力するデータ入力制御手段とを備え、
前記タイミング決定手段は、前記データ入力制御手段から画像データが、１ラインを複数に分割し、その分割したラインの副走査線方向の集合体をブロックとしてそのブロック単位で入力されるとき、１ブロックを認識する同期信号に基づいて前記ＳＩＭＤ型プロセッサへの画像データ入力のタイミングを決定し、
前記ＳＩＭＤ型プロセッサは、前記データ入力制御手段から入力された画像データに対して拡大・縮小処理を並列に行う
ことを特徴とする画像処理装置。
【請求項２】
前記タイミング決定手段は、前記ＳＩＭＤ型プロセッサ自体である
ことを特徴とする請求項１記載の画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理装置に関し、特に拡大・縮小処理が可能な複写機やプリンタなどの画像処理装置に関する。
【０００２】
【従来の技術】
複写機やプリンタなどの画像処理装置における拡大・縮小処理は、ユーザニーズによる拡大・縮小のみならず、スキャナやパーソナルコンピュータなどの画像生成装置と、複写機のプリント・エンジンやプリンタなどの画像出力装置との間での解像度変換の場合に多用されている。例えば、４００ｄｐｉのスキャナで読み取った画像を６００ｄｐｉのプリンタで出力する場合に拡大処理が行われ、逆の場合に縮小処理が行われる。
【０００３】
拡大処理における主な拡大法としては、単純拡大法、補間拡大（ｂｉ-ｌｉｎｅａｒ）法、ｃｕｂｉｃ  ｃｏｎｖｏｌｕｔｉｏｎ法などが知られている。これらの拡大法はいずれも隣接画素を使用した補間方式を採っている。そして、この補間方式の違いが拡大処理後の画像データの画質を決定する。例えば、特公平６−１８４３３号公報には、ｂｉ-ｌｉｎｅａｒ法をハードウェアで構成した例が開示されている。
【０００４】
特公平６−１８４３３号公報に記載された画像処理装置では、拡大法としてｂｉ-ｌｉｎｅａｒ法のみを用いている。しかしながら、最適画質を得るためには単一の拡大処理方式のみでは難しい場合がある。したがって、画像処理装置に複数の拡大処理方式（補間方式）を同時に採用することが望ましいが、ハードウェアで構成したのではコスト高となってしまう。
【０００５】
一方、汎用プロセッサを使用した拡大処理では、プリント・エンジンに画素を連続して供給するパイプライン処理ができない。例えば、６００ｄｐｉ／４０ｐｐｍ／４タンデムのプリント・エンジンでは、タンデム・ギャップを無視した場合、ビデオ周波数として約２０ＭＨｚ必要である。ここに、５００ＭＨｚの汎用プロセッサを適用した場合、１ビデオ・サイクルに僅か２５インストラクションしか実行できない。
【０００６】
そこで、デジタルビデオなどの映像信号処理プロセッサとして使用されるＳＩＭＤ(Single Instruction Multiple Data)型プロセッサを利用して拡大処理を行うデータ処理装置が提案されている（例えば、特開２０００−１８２０３７号公報参照）。このＳＩＭＤ型プロセッサは、複数のプロセッサエレメント（ＰＥ）を有し、入力画像データに対して並列に処理を行うことによって高速処理を実現する。
【０００７】
【発明が解決しようとする課題】
しかしながら、映像信号処理に使用されるＳＩＭＤ型プロセッサをそのまま、画像処理装置における拡大処理に利用したのでは次のような問題が発生する。すなわち、第１に、現行のＳＩＭＤ型プロセッサはＡ（アドバンス）ＴＶのフォーマットに準拠しているため、１水平走査線の画素数（例えば、１０２４画素）が複写機やプリンタで扱うドキュメントのライン（例えば、４００ｄｐｉで約５０００画素）に比べて少ないため、１ラインを分割して入力する必要がある。しかし、単純に分割入力しただけでは拡大処理後には画素数が増加することから、ＳＩＭＤ型プロセッサのＰＥ(Processor Element)数をオーバーする可能性があるばかりか、オーバーしなくとも非同期処理を余儀なくされる。
【０００８】
第２に、前述したように、補間処理を行うためには隣接画素の画素情報を参照することになるが、この処理は拡大処理後、即ち画像データを拡大処理した後に行う必要がある。ところが、ＳＩＭＤ型プロセッサでは、隣接画素の参照範囲に制限があるばかりか、任意倍率での拡大（例えば、１４１％など）処理を行う場合には隣接画素までの距離が固定ではなくなる、という隣接画素を参照する際の問題がある。
【０００９】
第３に、高画質化、高生産性を追求する観点から、ビデオ周波数は今後も高速化の一途をたどることにある。例えば、前述のプリント・エンジンにおいて、解像度が１２００ｄｐｉになるとビデオ周波数は８０ＭＨｚにもなる。この観点からも、容易に高速化できる手法が望まれる。
【００１０】
本発明は、上記課題に鑑みてなされたものであり、その目的とするところは、ＳＩＭＤ型プロセッサを利用して拡大・縮小処理を行っても非同期とならず、任意解像度（倍率）の拡大・縮小処理を行っても補間時に隣接画素を参照するのに何ら支障をきたすことなく、処理の高速化を容易に実現可能な画像処理装置を提供することにある。
【００１１】
【課題を解決するための手段】
本発明による画像処理装置は、ＳＩＭＤ型プロセッサを用いて拡大・縮小処理を行う画像処理装置であって、拡縮率に応じてＳＩＭＤ型プロセッサへの画像データ入力のタイミングを決定するタイミング決定手段と、このタイミング決定手段によって決定されたタイミングに応じて前記入力画像の画像データをＳＩＭＤ型プロセッサに入力するデータ入力制御手段とを備え、前記タイミング決定手段が、前記データ入力制御手段から画像データが、１ラインを複数に分割し、その分割したラインの副走査線方向の集合体をブロックとしてそのブロック単位で入力されるとき、１ブロックを認識する同期信号に基づいて前記ＳＩＭＤ型プロセッサへの画像データ入力のタイミングを決定し、前記ＳＩＭＤ型プロセッサが、前記データ入力制御手段から入力された画像データに対して拡大・縮小処理を並列に行う構成となっている。
【００１２】
上記構成の画像処理装置において、タイミング決定手段がＳＩＭＤ型プロセッサへの画像データ入力のタイミングを拡縮率に応じて決定すると、データ入力制御手段はこの決定されたタイミングに応じて入力画像の画像データを入力する。すると、ＳＩＭＤ型プロセッサは、この入力された画像データに対して拡大・縮小処理を並列に行う。
【００１７】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【００１８】
［第１実施形態］
図１は、本発明の第１実施形態に係る画像処理装置の構成例を示すブロック図である。図１から明らかなように、本実施形態に係る画像処理装置は、画像入力部（画像生成部）１１、ライン分割＆ギャップ生成部１２、補間補助部１３、ＳＩＭＤ型プロセッサ１４、ライン復元部１５および画像出力部（画素形成部）１６を有する構成となっている。
【００１９】
画像入力部１１は、スキャナやパーソナルコンピュータなどからなり、原稿から読み取ったり、あるいは独自に生成して得た画像データをライン分割＆ギャップ生成部１２に入力する。ライン分割＆ギャップ生成部１２は、画像入力部１１から入力される画像データに基づく入力画像を、後段のＳＩＭＤ型プロセッサ１４で拡大・縮小処理しても非同期処理とならないようにするとともに、ＳＩＭＤ型プロセッサ１４のＰＥ数をオーバーしないようにする作用をなす。その具体的な構成および動作については後述する。
【００２０】
ライン分割＆ギャップ生成部１２から出力された画像データは、補間補助部１３を経由してＳＩＭＤ型プロセッサ１４に供給される。補間補助部１３は、ＳＩＭＤ型プロセッサ１４における隣接画素の参照がたとえ任意倍率であっても容易にその処理を行えるようにする作用をなす。ＳＩＭＤ型プロセッサ１４は、先述したように、入力画像に対する拡大・縮小処理を行う。補間補助部１３およびＳＩＭＤ型プロセッサ１４の具体的な構成および動作については後述する。
【００２１】
ＳＩＭＤ型プロセッサ１４から出力される画像データは、ライン復元部１５を経由して画像出力部１６に供給される。ライン復元部１５は、ライン分割＆ギャップ生成部１２で分割され、ＳＩＭＤ型プロセッサ１４で拡大・縮小処理されたラインを復元する作用をなす。画像出力部１６は、複写機のプリント・エンジンやプリンタなどからなり、ライン復元部１５を経由して入力される画像データに基づく拡大・縮小処理後の画像を紙などの記録媒体に出力する。
【００２２】
次に、上記構成の本実施形態に係る画像処理装置の各部の具体的な構成および動作について説明する。ここでは、ＳＩＭＤ型プロセッサ１４の内蔵プロセッサ数（ＰＥ数）を１０００、１ライン（１水平走査線）の画素数を５０００、拡大率２５０％、縮小率２５％とした場合を例に採って説明するものとする。
【００２３】
図２に、ライン分割および分割したラインの各々（以下、これをセグメントと称す）とセグメントの副走査方向の集合体であるブロックのＳＩＭＤ型プロセッサ１４への入力順序を示す。
【００２４】
等倍（１００％）処理であれば、ＳＩＭＤ型プロセッサ１４へ入力するセグメント長は１０００画素で良い。また、入力順序は１セグメントを副走査方向へ１ブロックだけ読み込む。ここでは、一例として、１ブロックを５１２セグメントとする。つまり、ブロック単位で主走査方向へ読み進む。これは拡大・縮小処理では、後述するように、１ブロック内では１度生成した読み出し／書き込みイネーブル制御信号ＲＷＥを繰り返し使用できるためである。また、ブロックが存在するのは、入力画像をライン分割するメモリ容量の削減を目的としてピンポンバッファとするためである。
【００２５】
次に、ライン分割＆ギャップ生成部１２で生成される各種の同期信号について説明する。図３は、各種の同期信号の説明図である。
【００２６】
ライン分割＆ギャップ生成部１２では、１セグメントを認識するセグメント同期信号ＳＳ、１ブロックを認識するブロック同期信号ＢＳ、１ラインを構成するブロックの集合に対するライン同期信号ＬＳ、１ページを構成するブロックの集合に対するページ同期信号ＰＳが生成される。また、画素オーバーラップ読み出し機能におけるセグメント内のオーバーラップ画素と実画素とを区別するため、バァリッド（Ｖａｌｉｄ）同期信号Ｖ＿ＳＳも生成される。このバァリッド同期信号Ｖ＿ＳＳは、オーバーラップ画素ではＬｏｗレベルとなる。
【００２７】
図４は、ライン分割＆ギャップ生成部１２の構成の一例を示すブロック図である。図４から明らかなように、本例に係るライン分割＆ギャップ生成部１２は、同期信号生成部▲１▼２１、同期信号生成部▲２▼２２、アドレス生成部２３およびメモリ２４を有する構成となっている。
【００２８】
同期信号生成部▲１▼２１は、ギャップを考慮したセグメント同期信号ＳＳを、外部から与えられるマスタークロックＭＣＬＫに基づいて生成する。同期信号生成部▲２▼２２は、実際にメモリ２４に供給するアドレス生成のためのセグメント同期信号ＳＳをはじめ、先述したブロック同期信号ＢＳ、ライン同期信号ＬＳおよびページ同期信号ＰＳ、さらにはビデオクロックＶＣＬＫを、外部から与えられるスタート信号Ｓｔａｒｔに応答して、マスタークロックＭＣＬＫに基づいて生成する。
【００２９】
図５に、同期信号生成部▲２▼２２におけるセグメント同期信号ＳＳの生成部（以下、ＳＳ生成部と称す）の具体的な回路例を示す。このＳＳ生成部は、アップカウンタ３１、２つの比較器３２，３３およびＡＮＤ回路３４を有する構成となっている。
【００３０】
アップカウンタ３１は、マスタークロックＭＣＬＫをクロック（ＣＫ）入力、スタート信号Ｓｔａｒｔをカウントイネーブル（ＣＥ）入力、比較器３３の比較結果をリセット（ＲＳＴ）入力としている。このアップカウンタ３１のカウント結果は、比較器３２，３３に各比較入力Ａとして与えられる。比較器３２にはその比較基準入力ＢとしてＨｉｇｈ期間値が与えられ、比較器３３にはその比較基準入力Ｂとしては終了値が与えられている。
【００３１】
比較器３２はアップカウンタ３１のカウント値ＡとＨｉｇｈ期間値Ｂとを比較し、Ａ≦ＢのときにＨｉｇｈレベルの比較結果を出力する。このＡ≦Ｂの比較結果はＡＮＤ回路３４でスタート信号Ｓｔａｒｔと論理積がとられることで、セグメント同期信号ＳＳとして出力される。比較器３３はアップカウンタ３１のカウント値Ａと終了値Ｂとを比較し、Ａ＞ＢのときにＨｉｇｈレベルの比較結果を出力する。このＡ＞Ｂの比較結果は、アップカウンタ３１にそのリセット信号として与えられる。
【００３２】
上述した構成の回路は、同期信号生成部▲２▼２２におけるＳＳ生成部の回路例として示したものであるが、他の同期信号の生成部および同期信号生成部▲１▼２１もこの回路例に準ずるものとする。
【００３３】
再び図４において、アドレス生成部２３は、メモリ２４のＸ方向のアドレスを指定するＸアドレス信号Ａｄｒ＿Ｘ、Ｙ方向のアドレスを指定するＹアドレス信号Ａｄｒ＿Ｙおよび図３に示すＸ，Ｙ方向の各スタート位置を示すＸ，Ｙスタート信号Ｘｓｔａｒｔ，Ｙｓｔａｒｔを生成する。このアドレス生成部２３の具体的な構成例を図６に示す。
【００３４】
図６において、Ｘスタート信号Ｘｓｔａｒｔの生成回路４０Ａは、アップカウンタ４１および乗算器４２によって構成されている。アップカウンタ４１は、ブロック同期信号ＢＳをＣＫ（クロック）入力、ライン同期信号ＬＳをＣＥ（カウントイネーブル）入力、ライン同期信号ＬＳの反転信号をＬＤ（ロード）入力とし、“−１”をリセット値としてライン同期信号ＬＳ間でリセットされる構成となっている。このアップカウンタ４１のカウント値は乗算器４２に供給され、当該乗算器４２において乗算係数Ｘ＿Ｒｅｇと乗算される。ここで、乗算係数Ｘ＿Ｒｅｇは、１ブロックを構成する主走査方向の画素数であり、本例では１０００がセットされることになる。そして、その乗算出力がＸスタート信号Ｘｓｔａｒｔとなる。
【００３５】
Ｙスタート信号Ｙｓｔａｒｔの生成回路４０Ｂは、アップカウンタ４３および乗算器４４によって構成されている。アップカウンタ４３は、ライン同期信号ＬＳをＣＫ入力、ページ同期信号ＰＳをＣＥ入力、ページ同期信号ＰＳの反転信号をＬＤ入力とし、“−１”をリセット値としてページ同期信号ＰＳ間でリセットされる構成となっている。このアップカウンタ４３のカウント値は乗算器４４に供給され、当該乗算器４４において乗算係数Ｙ＿Ｒｅｇと乗算される。ここで、乗算係数Ｙ＿Ｒｅｇは、１ブロックを構成する副走査方向の画素数であり、本例では５１２がセットされることになる。そして、その乗算出力がＹスタート信号Ｙｓｔａｒｔとなる。つまり、Ｘスタート信号Ｘｓｔａｒｔ／Ｙスタート信号Ｙｓｔａｒｔの値は、常にアドレスしようとするブロックの先頭番地を示すことになる。
【００３６】
Ｘアドレス信号Ａｄｒ＿Ｘの生成回路４０Ｃは、アップカウンタ４５によって構成されている。このアップカウンタ４５は、マスタークロックＭＣＬＫをＣＫ入力、セグメント同期信号ＳＳをＣＥ入力、セグメント同期信号ＳＳの反転信号をＬＤ入力とし、Ｘスタート信号Ｘｓｔａｒｔをリロード値としてセグメント同期信号ＳＳ間でリロードが行われる構成となっている。そして、アップカウンタ４５のカウント出力（カウント値）がＸアドレス信号Ａｄｒ＿Ｘとなる。
【００３７】
Ｙアドレス信号Ａｄｒ＿Ｙの生成回路４０Ｄは、アップカウンタ４６によって構成されている。このアップカウンタ４６は、セグメント同期信号をＣＫ入力、ブロック同期信号ＢＳをＣＥ入力、ブロック同期信号ＢＳの反転信号をＬＤ入力とし、Ｙスタート信号Ｘｓｔａｒｔをリロード値としてブロック同期信号ＢＳ間でリロードが行われる構成となっている。そして、アップカウンタ４６のカウント出力（カウント値）がＹアドレス信号Ａｄｒ＿Ｙとなる。
【００３８】
ここで、上記構成のライン分割＆ギャップ生成部１２の動作について、図７を用いて説明する。図７は、ライン分割＆ギャップ生成部１２によって生成される同期信号ＬＳ，ＢＳ，ＳＳと画像データとのタイミング関係の一例を示すタイミングチャートである。
【００３９】
本画像処理装置での拡大処理時には画素が増加するので、等倍処理時とは考え方を変えなければならない。すなわち、拡大処理対象の画素数を
拡大処理対象画素数＝１ラインの画素数÷拡大率／１００  ……（１）
とし、またＳＩＭＤ型プロセッサ１４への１回の入力画素数を
入力画素数＝ＰＥ数÷拡大率／１００                    ……（２）
とする。
【００４０】
一般の複写機やプリンタでは原稿サイズに制限があるため、拡大処理後の画素数は１ラインの画素数を越えることはできない。したがって、（１）式に示すように、拡大処理対象の画素数は、１ラインの画素数を拡大率／１００で割った値となる。本例の場合、１ラインの画素数が５０００、拡大率２５０％であることから、拡大処理対象の画素数は２０００画素となる。
【００４１】
また、ＳＩＭＤ型プロセッサ１４への１回の入力画素数は、拡大処理後の画素数がＰＥ数の範囲内になるように（ＰＥ数をオーバーフローしないように）、ＰＥ数を拡大率／１００で割った値に設定しておく。本例の場合、ＰＥ数が１０００であることから、ＳＩＭＤ型プロセッサ１４への１回の入力画素数は４００画素となる。つまり、１ラインを処理するのにＳＩＭＤ型プロセッサ１４へ５（＝２０００／４００）ブロックの入力を行う。
【００４２】
ただし、セグメント同期信号ＳＳにはそのアクティブ期間として、図７のタイミングチャートに示すように、等倍処理時と同じ１０００画素分の長さの期間を持たせるようにする。つまり、４００画素の後に６００画素分のギャップを持たせるようにする。このギャップ生成を行うことにより、ＳＩＭＤ型プロセッサ１４における入出力の非同期処理を避ける、換言すれば入出力の同期処理を行うことができる。
【００４３】
すなわち、図４に示した同期信号生成部▲１▼２１におけるセグメント同期信号ＳＳの生成部（図５の回路例）では、Ｈｉｇｈ期間＝１０００クロック、Ｌｏｗ期間＝Ｘクロック、同期信号生成部▲２▼２２におけるセグメント同期信号ＳＳの生成部（図５の回路例）では、Ｈｉｇｈ期間＝４００クロック、Ｌｏｗ期間＝６００＋Ｘクロックを定義すれば良い。ここで、「Ｘ」は同期信号の非アクティブ期間を示す。
【００４４】
なお、上記構成のアドレス生成部２３において、Ｘスタート信号Ｘｓｔａｒｔの生成回路４０Ａとしては、図８に示す他の回路例を採ることも可能である。すなわち、本回路例に係る生成回路４０Ａ′において、乗算器４２の後段に、当該乗算器４２の乗算出力を一方の加算入力とする加算器４８と、この加算器４８の他方の加算入力として−Ｏｖｌ(Overlap)または０を択一的に与えるマルチプレクサ（ＭＵＸ）４９とを設けるようにする。
【００４５】
上記構成の回路は、ブロック境界で画素を重複読み出しするための機構で、フィルタ処理等を行うために必要となる。その詳細については、特開２０００−２５１０６５号公報を参照されたい。
【００４６】
次に、図１の補間補助部１３について説明する。この補間補助部１３は、ＳＩＭＤ型プロセッサ１４における隣接画素の参照がたとえ任意倍率であっても容易に処理が行えるようにするために設けられている。その具体的な構成の一例を図９に示す。
【００４７】
図９から明らかなように、本構成例に係る補間補助部１３は、デマルチプレクサ（ＤＥＭＵＸ）５１、拡大・縮小判定レジスタ５２、ＡＮＤ回路５３，５４、ＯＲ回路５５，５６、シフトレジスタ５７、ＦＩＦＯ（first-in first-out）レジスタ５８、フリップフロップ（ＦＦ）５９および遅延回路６０を有する構成となっている。
【００４８】
デマルチプレクサ（ＤＥＭＵＸ）５１には、ＳＩＭＤ型プロセッサ１４で生成される後述する読み出し／書き込みイネーブル制御信号ＲＷＥが入力される。デマルチプレクサ５１は、拡大・縮小判定レジスタ５２の内容（拡大時“１”、縮小時“０”）に応じて、読み出し／書き込みイネーブル制御信号ＲＷＥを縮小時はＦＩＦＯメモリ５８の書き込みイネーブル信号ＷＥとし、拡大時はＦＩＦＯメモリ５８の読み出しイネーブル信号ＲＥとして出力する。このとき、選択されない方にはＬｏｗレベルが出力されるものとする。
【００４９】
フリップフロップ５９は、ＦＩＦＯメモリ５８の入口に設けられ、画素をパッキングする作用をなす。したがって、セグメント同期信号ＳＳも画像データと同期がとられている必要があるため、セグメント同期信号ＳＳは遅延回路６０においてフリップフロップ５９の段数分だけ遅延される。この遅延されたセグメント同期信号ＳＳＯは、ＡＮＤ回路５３，５４の各一方の入力となる。
【００５０】
ＡＮＤ回路５３にはその他方の入力として拡大・縮小判定レジスタ５２の内容が与えられる。これにより、ＡＮＤ回路５３は、拡大・縮小判定レジスタ５２の内容が拡大のときにセグメント同期信号ＳＳＯを通過させ、ＯＲ回路５５にその一方の入力として供給する。ＯＲ回路５５にはその他方の入力として、先述した書き込みイネーブル信号ＷＥが供給される。このＯＲ回路５５を通過したセグメント同期信号ＳＳＯまたは書き込みイネーブル信号ＷＥはＦＩＦＯメモリ５８に供給される。
【００５１】
ＡＮＤ回路５４はその他方の入力が負論理となっており、その他方の入力として拡大・縮小判定レジスタ５２の内容が与えられる。これにより、ＡＮＤ回路５４は、拡大・縮小判定レジスタ５２の内容が縮小のときにセグメント同期信号ＳＳＯを通過させ、ＯＲ回路５６にその一方の入力として供給する。ＯＲ回路５５にはその他方の入力として、シフトレジスタ５７で遅延された読み出しイネーブル信号ＲＥが供給される。
【００５２】
シフトレジスタ５７は、拡大時読み出しイネーブル信号ＲＥがＦＩＦＯメモリ５８の出口で制御されることから、読み出しイネーブル信号ＲＥに対して画像データのＦＩＦＯメモリ５８での遅延と同様の遅延を発生させるために設けられた遅延手段である。このシフトレジスタ５７としては、１セグメント分のレジスタ段が必要となる。このシフトレジスタ５７で遅延された読み出しイネーブル信号ＲＥがＯＲ回路５６にその他方の入力として供給される。このＯＲ回路５６を通過したセグメント同期信号ＳＳＯまたは読み出しイネーブル信号ＲＥはＦＩＦＯメモリ５８に供給される。
【００５３】
図１０に、ＳＩＭＤ型プロセッサ１４の構造の一例を示す。このＳＩＭＤ型プロセッサ１４は、複数個のＰＥからなるプロセッサエレメント群６１と、ＰＥ数と同じ段数の転送段からなるデータ入力レジスタ（ＤＩＲ）６２と、同様にＰＥ数と同じ段数の転送段からなるデータ出力レジスタ（ＤＯＲ）６３とを有する構造となっている。
【００５４】
上記構造のＳＩＭＤ型プロセッサ１４において、データ入力レジスタ６２には補間補助部１３からパッキング済みの画像データおよびバァリッド同期信号Ｖ＿ＳＳが入力されるとともに、セグメント同期信号ＳＳＯがＷＥ信号として、ビデオクロックＶＣＬＫがクロック信号として与えられる。また、データ出力レジスタ６３にはセグメント同期信号ＳＳＯがＲＥ信号として、ビデオクロックＶＣＬＫがクロック信号として与えられるとともに、このデータ出力レジスタ６３からは画像データ、バァリッド同期信号Ｖ＿ＳＳおよび読み出し／書き込みイネーブル制御信号ＲＷＥが出力される。
【００５５】
続いて、補間補助部１３での拡大処理時および縮小処理時の動作について、読み出し／書き込みイネーブル制御信号ＲＷＥおよび画像データの様子を示す図１１の動作説明図を用いて説明する。
【００５６】
拡大処理時は、ライン分割＆ギャップ生成部１２から入力されたセグメントである現画素データが補間補助部１３のＦＩＦＯメモリ５８に、セグメント同期信号ＳＳＯをＷＥ信号に使用して入力される。一方、ＳＩＭＤ型プロセッサ１４で生成された読み出し／書き込みイネーブル制御信号ＲＷＥに基づく読み出しイネーブル信号ＲＥは、セグメント同期信号ＳＳの１サイクル、即ち１セグメントサイクルだけシフトレジスタ５７で遅延されて、ＦＩＦＯメモリ５８の出力時に画素を増加（＝拡大処理）するのに使用される。
【００５７】
最後に、ＦＩＦＯメモリ５８の次段にあるフリップフロップ５９で隣接画素とパッキングされてＳＩＭＤ型プロセッサ１４のデータ入力レジスタ６２に入力される。なお、データ入力レジスタ６２での画像データは単純拡大された状態、つまり補間前の状態にある。
【００５８】
一方、縮小処理時は、同じく現画素データが補間補助部１３のＦＩＦＯメモリ５８に、ＳＩＭＤ型プロセッサ１４で生成された読み出し／書き込みイネーブル制御信号ＲＷＥに基づく書き込みイネーブル信号ＷＥをＷＥ信号に使用して入力される。このＦＩＦＯメモリ５８への画像データの入力時に画素の間引き（＝縮小処理）が行われる。一方、ＦＩＦＯメモリ５８からの出力時は、セグメント同期信号ＳＳのＨｉｇｈレベルの期間に亘って常時画像データが読み出される。
【００５９】
ＦＩＦＯメモリ５８の構成の一例を図１２に示す。本例に係るＦＩＦＯメモリ５８は、２つのメモリ６４，６５およびそれらのアドレス・デコーダ６６，６７を有するピンポン方式（一方が書き込み状態のとき、他方が読み出し状態）の構成となっている。また、メモリ６４，６５に対して書き込みイネーブル信号ＷＥおよび読み出しイネーブル信号ＲＥを与えるＲＷＥ制御部６８と、メモリ６４，６５それぞれに対応する読み出し／書き込み兼用ポインタ６９，７０とを有している。
【００６０】
ＲＷＥ制御部６８は、アップカウンタ６８１、インバータ６８２および４個のＡＮＤ回路６８３〜６８６を有する回路構成となっている。アップカウンタ６８１は、マスタークロックＭＣＬＫをＣＫ入力、セグメント同期信号ＳＳをＣＥ入力、セグメント同期信号ＳＳの反転信号をＬＤ入力、“−１”をリセット値としている。このアップカウンタ６８１のカウント出力は読み出し／書き込み制御信号ＲＷとして直接ＡＮＤ回路６８３，６８４の各一方の入力になるとともに、インバータ６８２で反転されてＡＮＤ回路６８５，６８６の各一方の入力になる。なお、ＡＮＤ回路６８４，６８６は各一方の入力が負論理入力となっている。
【００６１】
ＡＮＤ回路６８３，６８５にはそれぞれ、各他方の入力としてバァリッド同期信号Ｖ＿ＳＳが与えられる。そして、ＡＮＤ回路６８３，６８５の各出力は書き込みイネーブル信号ＷＥ▲１▼，▲２▼としてメモリ６４，６５に与えられる。また、ＡＮＤ回路６８４，６８６にはそれぞれ、各他方の入力としてセグメント同期信号ＳＳが与えられる。そして、ＡＮＤ回路６８４，６８６の各出力は読み出しイネーブル信号ＲＥ▲１▼，▲２▼としてメモリ６４，６５に与えられる。
【００６２】
読み出し／書き込み兼用ポインタ６９は、マルチプレクサ（ＭＵＸ）６９１およびアップカウンタ６９２を有する回路構成となっている。マルチプレクサ６９１は、読み出しイネーブル信号ＲＥおよび書き込みイネーブル信号ＷＥを２入力とし、読み出し／書き込み制御信号ＲＷが“０”のときに読み出しイネーブル信号ＲＥを、読み出し／書き込み制御信号ＲＷが“１”のときに書き込みイネーブル信号ＷＥをそれぞれ選択して出力する。
【００６３】
このマルチプレクサ６９１で選択された読み出しイネーブル信号ＲＥ／書き込みイネーブル信号ＷＥは、アップカウンタ６９２にそのＣＥ入力として与えられる。アップカウンタ６９２は、マスタークロックＭＣＬＫをＣＫ入力、セグメント同期信号ＳＳの反転信号をＬＤ入力、“−１”をリセット値としている。このアップダウンカウンタ６９２のカウント出力は、アドレス・デコーダ▲１▼６６に供給される。
【００６４】
読み出し／書き込み兼用ポインタ７０は、マルチプレクサ７０１およびアップカウンタ７０２を有する回路構成となっている。マルチプレクサ７０１は、書き込みイネーブル信号ＷＥおよび読み出しイネーブル信号ＲＥを２入力とし、読み出し／書き込み制御信号ＲＷが“０”のときに書き込みイネーブル信号ＷＥを、読み出し／書き込み制御信号ＲＷが“１”のときに読み出しイネーブル信号ＲＥをそれぞれ選択して出力する。
【００６５】
このマルチプレクサ７０１で選択された書き込みイネーブル信号ＷＥ／読み出しイネーブル信号ＲＥは、アップカウンタ７０２にそのＣＥ入力として与えられる。アップカウンタ７０２は、マスタークロックＭＣＬＫをＣＫ入力、セグメント同期信号ＳＳの反転信号をＬＤ入力、“−１”をリセット値としている。このアップダウンカウンタ７０２のカウント出力は、アドレス・デコーダ▲２▼６７に供給される。
【００６６】
上記構成のＦＩＦＯメモリ５８において、２つのメモリ６４，６５の各ＲＳＴ（リセット）入力には、セグメント同期信号ＳＳの反転信号が与えられる。これにより、各メモリ６４，６５は、セグメントのギャップで毎回リセット（ゼロクリア）され、また各ポインタも先頭アドレスであるゼロにリセットされる。したがって、入力される画像データは必ず先頭アドレスから読み出し／書き込みが行われる。
【００６７】
本例に係るＦＩＦＯメモリ５８を設ける目的は、特に縮小処理時には、バァリッド同期信号Ｖ＿ＳＳがＨｉｇｈレベルで示される有効画素のみで構成されることによる。また、セグメント長がＳＩＭＤ型プロセッサ１４のデータ入力レジスタ６２（図１０を参照）に比べて短くなるため、通常のＦＩＦＯメモリを使用して縮小セグメントをデータ入力レジスタに入力してしまうと、バァリッド同期信号Ｖ＿ＳＳがＬｏｗレベルの無効画素に対しても有効画素という判断になってしまうことを避けるためである。
【００６８】
さらに、後述するように、縮小されたセグメントをデータ入力レジスタの一番奥（セルフＰＥ＃＝０に該当する位置）までシフトしてしまう方が、補間係数の再計算がし易いことにもよる。
【００６９】
次に、ＳＩＭＤ型プロセッサ１４における読み出し／書き込みイネーブル制御信号ＲＷＥの生成処理の手順について、図１３のフローチャートを用いて説明する。
【００７０】
先ず、ページ同期信号ＰＳがＨｉｇｈレベルであるか否かを判断し（ステップＳ１１）、ＰＳ＝Ｈであれば続いて、拡大処理であるか否かを判断する（ステップＳ１２）。このとき、拡大処理であれば、倍率による係数１（＝１００／拡大率）を計算する（ステップＳ１３）。また、縮小処理であれば、係数１（＝縮小率／１００）を計算し（ステップＳ１４）、続いて係数２（＝１００／縮小率）を計算する（ステップＳ１５）。以上により、ページ同期信号ＰＳの立ち上がり時、即ちページ開始時に倍率による係数計算が行われる。
【００７１】
係数の計算が終わったら再度、ページ同期信号ＰＳがＨｉｇｈレベルであるか否かを判断し（ステップＳ１６）、ＰＳ＝Ｈであれば、ライン同期信号ＬＳがＨｉｇｈレベルであるか否かを判断する（ステップＳ１７）。このとき、ＬＳ＝Ｈであれば、ブロック同期信号ＢＳのアクティブ（Ｈｉｇｈ）になる回数をカウントするブロック・カウンタのカウント値をゼロにする（ステップＳ１８）。これにより、ブロック・カウンタはライン同期信号ＬＳの立ち上がり時、即ちライン開始時にリセットされる。
【００７２】
その後再度ライン同期信号ＬＳがＨｉｇｈレベルであるか否かを判断し（ステップＳ１９）、ＬＳ＝Ｈであれば続いて、ブロック同期信号ＢＳがＨｉｇｈレベルであるか否かを判断する（ステップＳ２０）。そして、ＢＳ＝Ｈであれば、絶対画素位置（１ライン中の画素の位置）を示す絶対ＰＥ＃を計算する（ステップＳ２１）。この絶対ＰＥ＃は、ブロック・カウンタのカウント値をＮとすると、
絶対ＰＥ＃＝セルフＰＥ＃＋Ｎ×１０００
なる計算式から求められる。ここで、セルフＰＥ＃はＳＩＭＤ型プロセッサ１４の内蔵プロセッサ番号であり、ＳＩＭＤ型プロセッサ内における画素の相対画素位置を示す。
【００７３】
次に、補間係数Ｗ（ｎ）について計算する（ステップＳ２２）。この補間係数Ｗ（ｎ）は、
Ｗ（ｎ）＝係数１×絶対ＰＥ＃
なる計算式から求められる。次いで、読み出し／書き込みイネーブル制御信号ＲＷＥ（ｎ）を計算する（ステップＳ２３）。この読み出し／書き込みイネーブル制御信号ＲＷＥ（ｎ）は、
ＲＷＥ（ｎ）＝ｉｎｔ（絶対ＰＥ＃×係数１）
なる計算式から求められる。ここで、関数ｉｎｔは、上記式の計算結果の整数部分を抽出することを意味する。
【００７４】
読み出し／書き込みイネーブル制御信号ＲＷＥ（ｎ）が求まったら続いて、ＲＷＥ（ｎ）＞ＲＷＥ（ｎ−１）の判断、即ち隣接ＰＥ（図１０中では、左隣のＰＥ）よりも１大きいか否かの判断を行う（ステップＳ２４）。このとき、ＲＷＥ（ｎ）＞ＲＷＥ（ｎ−１）であればＲＷＥ（ｎ）＝１とし（ステップＳ２５）、ＲＷＥ（ｎ）≦ＲＷＥ（ｎ−１）であればＲＷＥ（ｎ）＝０とし（ステップＳ２６）、これらをＳＩＭＤ型プロセッサ１４内のデータ出力レジスタ６３（図１０を参照）にセットする（ステップＳ２７）。
【００７５】
続いて、縮小処理であるか否かを判断し（ステップＳ２８）、縮小処理であれば、補間係数Ｗ（ｎ）′について計算する（ステップＳ２９）。この補間係数Ｗ（ｎ）′は、
Ｗ（ｎ）′＝絶対ＰＥ＃×ｉｎｔ（係数２＋１）
なる計算式から求められる。なお、ステップＳ２８の判断結果が縮小処理でない場合には、ステップＳ２９の処理は実行されない。
【００７６】
その後、ブロック・カウンタのカウント値Ｎをインクリメント（Ｎ＝Ｎ＋１）し（ステップＳ３０）、続いてブロック同期信号ＢＳがＬｏｗレベルになったか否かを判断する（ステップＳ３１）。そして、ＢＳ＝Ｌならば、ステップＳ１９に戻って上述したステップＳ１９からステップＳ３０までの各処理を繰り返して実行する。但し、絶対ＰＥ＃０番では読み出し／書き込みイネーブル制御信号ＲＷＥとして常に１をたてることとする。
【００７７】
ＳＩＭＤ型プロセッサ１４における上述した一連の処理により、読み出し／書き込みイネーブル制御信号ＲＷＥが生成される。この読み出し／書き込みイネーブル制御信号ＲＷＥは拡大・縮小率（拡縮率）によって決定され、絶対画素位置（１ライン中の画素の位置）によって異なる。すなわち、１ラインをセグメントに分割しても絶対画素位置を把握する必要がある。このために、上述した処理手順に示すように、ブロック同期信号ＢＳを使用するのである。
【００７８】
そして、ライン同期信号ＬＳがアクティブ（Ｈｉｇｈ）である間は、ブロック同期信号ＢＳのアクティブになる回数をブロック・カウンタでカウントすることで、ＳＩＭＤ型プロセッサ１４内における画素の相対画素位置に乗じて絶対位置を計算する。例えば、ブロック・カウンタのカウント値ＮがＮ＝２で、ＳＩＭＤ型プロセッサ１４の内蔵プロセッサ番号（セルフＰＥ＃）がセルフＰＥ＃＝１０に着目すれば、このＳＩＭＤ型プロセッサ１４は相対画素位置「１０」、絶対画素位置「１０１０」を処理していることになる。
【００７９】
図１３のフローチャートに示す手順によって生成される読み出し／書き込みイネーブル制御信号ＲＷＥの様子を図１４に示す。
【００８０】
拡大処理時は、補間補助部１３でパッキングされた現画素用出力と隣接画素用出力とが、読み出し／書き込みイネーブル制御信号ＲＷＥ（この場合は、ＦＩＦＯメモリ５８の出口におけるＲＥ信号が読み出しイネーブル信号ＲＥとなる）で制御され、ＲＥ時（ＲＥ＝１）には画素の読み出しが、非ＲＥ時（ＲＥ＝０）には直前のＲＥ信号で読み出された画素が繰り返して読み出される。つまり、画素がコピーされる。
【００８１】
また、縮小処理時は、補間補助部１３の現画素用ＦＩＦＯメモリと隣接画素用ＦＩＦＯメモリとが、読み出し／書き込みイネーブル制御信号ＲＷＥ（この場合は、ＦＩＦＯメモリ５８の入口におけるＷＥ信号が書き込みイネーブル信号ＷＥとなる）で制御され、ＷＥ時（ＷＥ＝１）には画素の書き込みが、非ＷＥ時（ＷＥ＝０）には画素の間引きが行われる。
【００８２】
続いて、補間係数Ｗ（ｎ）について説明する。補間係数Ｗ（ｎ）は、絶対画素位置に対応している。すなわち、絶対画素位置ｎには補間係数Ｗ（ｎ）が対応する。図１４において、拡大処理時は絶対画素位置ｎには補間係数Ｗ（ｎ）が対応しているが、縮小処理時は画素が間引かれることによってこの対応関係がずれているため、再計算を行う必要がある。この再計算の処理が、図１３のフローチャートにおけるステップＳ２９の処理である。
【００８３】
次に、ＳＩＭＤ型プロセッサ１４における補間方法について説明する。
【００８４】
今、ある注目画素において現画素値をＰ（ｎ）、隣接画素値をＰ（ｎ＋１）とすると、例えばｂｉ-ｌｉｎｅａｒ法の補正画素値Ｐ（ｎ）′は、
Ｐ（ｎ）′＝［Ｐ（ｎ＋１）−Ｐ（ｎ）］×
［Ｗ（ｎ）−ｉｎｔ（Ｗ（ｎ））］＋Ｐ（ｎ）
となる。
【００８５】
また、ｃｕｂｉｃ  ｃｏｎｖｏｌｕｔｉｏｎ法のように、４点（注目画素を中心として、前後２画素）を参照する場合は、補間補助部１３を図１５に示すように拡張する。すなわち、図１５において、ＦＩＦＯメモリ５８の入口に画素をパッキングするために、４個のフリップフロップ５９−１〜５９−４を直列に接続し、２段目のフリップフロップ５９−２の出力を現画素用出力とし、１段目のフリップフロップ５９−１の入力および出力と、３段目，４段目のフリップフロップ５９−３，５９−４の各出力とを隣接画素用出力とする。このとき、セグメント同期信号ＳＳに対しても、２段のフリップフロップ５９−１，５９−２に対応して２段の遅延回路６０−１，６０−２によって遅延を行うようにする。
【００８６】
［第２実施形態］
図１６は、本発明の第２実施形態に係る画像処理装置の要部の構成例を示すブロック図であり、図中、図１と同等部分には同一符号を付して示している。本実施形態に係る画像処理装置は、拡大・縮小処理の高速化に対応した画像処理装置である。この画像処理装置では、補間補助部の数を増やす、例えば２個の補間補助部１３−１，１３−２を設けることによって拡大・縮小処理の高速化を容易に実現している。
【００８７】
すなわち、図１６において、ライン分割＆ギャップ生成部１２より奇数ブロックのセグメントと偶数ブロックのセグメントとを同時に出力し、奇数ブロックのセグメントを補間補助部１３−１に、偶数ブロックのセグメントを補間補助部１３−２にそれぞれ入力する。ＳＩＭＤ型プロセッサ１４からは、各セグメントに応じた２ビットの読み出し／書き込みイネーブル制御信号ＲＷＥを生成して補間補助部１３−１，１３−２にそれぞれ供給するようにする。これにより、同一のクロックスピードで倍の拡大処理を行うことができる。
【００８８】
例えば縮小処理時は、ＳＩＭＤ型プロセッサ１４におけるデータ入力レジスタ６３（図１０を参照）のＷＥ信号をコントロールすることにより、画素を間引くことができるが、高速化するためには異なるブロックのセグメントを取り扱うことから、ＷＥ信号も複数必要となるため、別に補間補助部としてＦＩＦＯメモリを複数設けるのが良い。
【００８９】
ただし、例えば奇数セグメントはバンク１、偶数セグメントはバンク２というように、同一ブロック内のセグメントを別バンクにしておき、同一ブロックを同時読み出しすることにより、1つのＷＥ信号（拡大の場合、ＲＥ信号）で済ませることもできる。この場合、補間補助部のＦＩＦＯメモリは異なるセグメントを同時拡大（あるいは、縮小）するため複数個必要となる。
【００９０】
なお、上記各実施形態では、ＳＩＭＤ型プロセッサ１４への画像データ入力のタイミングを決定するための読み出し／書き込みイネーブル制御信号ＲＷＥをＳＩＭＤ型プロセッサ１４自身が拡縮率に応じて生成するとしたが、これに限られるものではなく、ＳＩＭＤ型プロセッサ１４以外に汎用プロセッサを設けて、この汎用プロセッサによって読み出し／書き込みイネーブル制御信号ＲＷＥを生成するようにすることも可能である。
【００９１】
【発明の効果】
以上説明したように、本発明によれば、ＳＩＭＤ型プロセッサを利用して拡大・縮小処理を行っても非同期処理とならず、また任意解像度（倍率）の拡大・縮小処理を行っても補間時に隣接画素を参照するのに何ら支障をきたすことなく、処理の高速化を容易に実現できる画像処理装置を提供できる。
【図面の簡単な説明】
【図１】  本発明の第１実施形態に係る画像処理装置の構成例を示すブロック図である。
【図２】  ライン分割およびセグメントとセグメントの集合体であるブロックのＳＩＭＤ型プロセッサへの入力順序を示す図である。
【図３】  ライン分割＆ギャップ生成部で生成される各種の同期信号の説明図である。
【図４】  ライン分割＆ギャップ生成部の構成例を示すブロック図である。
【図５】  同期信号生成部▲２▼におけるＳＳ生成部の具体的な回路例を示すブロック図である。
【図６】  アドレス生成部の具体的な構成例を示すブロック図である。
【図７】  同期信号ＬＳ，ＢＳ，ＳＳと画像データとのタイミング関係の一例を示すタイミングチャートである。
【図８】  Ｘｓｔａｒｔ生成回路の他の回路例を示すブロック図である。
【図９】  補間補助の具体的な構成例を示すブロック図である。
【図１０】  ＳＩＭＤ型プロセッサの構造の一例を示すブロック図である。
【図１１】  補間補助部での拡大処理時および縮小処理時の動作説明図である。
【図１２】  ＦＩＦＯメモリの構成例を示すブロック図である。
【図１３】  ＳＩＭＤ型プロセッサにおける読み出し／書き込みイネーブル制御信号ＲＷＥの生成処理の手順を示すフローチャートである。
【図１４】  読み出し／書き込みイネーブル制御信号ＲＷＥの様子を示す図である。
【図１５】  補間補助部の拡張例を示すブロック図である。
【図１６】  本発明の第２実施形態に係る画像処理装置の要部の構成例を示すブロック図である。
【符号の説明】
１１…画像入力部、１２…ライン分割＆ギャップ生成部、１３，１３−１，１３−２…補間補助部、１４…ＳＩＭＤ型プロセッサ、１５…ライン復元部、１６…画像出力部、２１…同期信号生成部▲１▼、２２…同期信号生成部▲２▼、２３…アドレス生成部、２４…メモリ、５１…デマルチプレクサ（ＤＥＭＵＸ）、５２…拡大・縮小判定レジスタ、５８…ＦＩＦＯメモリ、５７シフトレジスタ、６１…プロセッサエレメント（ＰＥ）群、６２…データ入力レジスタ（ＤＩＲ）、６３…データ出力レジスタ（ＤＯＲ）
【図１】
0003932813.tif 000002
【図２】
0003932813.tif 000003
【図３】
0003932813.tif 000004
【図４】
0003932813.tif 000005
【図５】
0003932813.tif 000006
【図６】
0003932813.tif 000007
【図７】
0003932813.tif 000008
【図８】
0003932813.tif 000009
【図９】
0003932813.tif 000010
【図１０】
0003932813.tif 000011
【図１１】
0003932813.tif 000012
【図１２】
0003932813.tif 000013
【図１３】
0003932813.tif 000014
【図１４】
0003932813.tif 000015
【図１５】
0003932813.tif 000016
【図１６】
0003932813.tif 000017