(57)【要約】【課題】  逐次処理を行うための補助的な演算処理部を利用することなく、複数のプロセッサーエレメントを並列動作させながら、主走査変倍処理を行うことが可能な画像処理装置を提供することを目的とする。各プロセッサーエレメントそれぞれが、主走査変倍のための演算を並列に行うことが可能となり、高速な主走査変倍処理が実現可能となる。【解決手段】  １ラインがＸ画素からなる画像データＹライン分の入力画像データを処理する画像処理装置において、Ｎ（Ｘ＞Ｎ＞１、Ｙ＞Ｎ＞１）個の並列動作可能なプロセッサを有するＳＩＭＤ型演算手段を用いて主走査変倍処理を高速に行う際に、各プロセッサーエレメント（ＰＥ）それぞれに、演算パラメータを与え、それぞれのＰＥがパラメータを更新しながら、変倍処理を並列に行うことを特徴とする。【選択図】        図１
2005269502.tif 000002
【特許請求の範囲】
【請求項１】
１ラインがＸ画素からなる画像データＹライン分の入力画像データを処理する画像処理装置において、
Ｎ（Ｘ＞Ｎ＞１、Ｙ＞Ｎ＞１）個の並列動作可能な要素プロセッサを有する演算手段と、
入力画像データの１ラインをＮ画素毎に分割して、入力する入力手段と、
前記分割入力されたＮ画素データをＭ（Ｍは自然数）ライン分記憶する手段と、
前記記憶された画像データを前記要素プロセッサにそれぞれ供給する手段と、前記並列動作可能な要素プロセッサそれぞれに対して、入力画像データを処理する際に使用するパラメータを算出する手段とを有し、前記要素プロセッサは、前記算出されたパラメータに基づいて、同種の演算を並列に実行することを特徴とする画像処理装置。
【請求項２】
前記並列動作可能な要素プロセッサは、それぞれに対して算出されたパラメータを初期値とし、パラメータを更新しながら、入力画像データを処理することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記並列動作可能な要素プロセッサは、それぞれに対して算出されたパラメータを初期値として、それぞれの要素プロセッサに供給される複数画素を用いた、演算処理を行うことを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記並列動作可能な要素プロセッサそれぞれに対して算出されるパラメータは、各要素プロセッサが、入力画像データを処理した後の出力画像データの数に基づいて算出されることを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記各要素プロセッサが、入力画像データを処理した後の出力画像データの数に基づいて算出されたパラメータに基づいて行なわれる画像処理は、入力画像データの拡大処理であることを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記並列動作可能な要素プロセッサそれぞれに対して算出されるパラメータは、各要素プロセッサが、入力画像データを処理する際に参照する入力画像データの位置に基づいて算出されることを特徴とする請求項１に記載の画像処理装置。
【請求項７】
前記各要素プロセッサが、入力画像データを処理する際に参照する入力画像データの位置に基づいて算出されたパラメータに基づいて行なわれる画像処理は、入力画像データの縮小処理であることを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記要素プロセッサが、前記算出されたパラメータに基づいて、並列に行う同種の演算処理は、入力画像データの変倍処理であることを特徴とする請求項１に記載の画像処理装置。
【請求項９】
１ラインがＸ画素からなる画像データＹライン分の入力画像データを入力して、ライン方向の入力画像データの変倍処理を行う画像処理装置において、
Ｎ（Ｘ＞Ｎ＞１、Ｙ＞Ｎ＞１）個の並列動作可能な要素プロセッサを有する演算手段と、
入力画像データの１ラインをＮ画素毎に分割して、入力する入力手段と、
前記分割入力されたＮ画素データをＭ（Ｍは自然数）ライン分記憶する手段と、
前記記憶された画像データを前記要素プロセッサにそれぞれ供給する手段と、前記要素プロセッサに供給された画像データの配置を９０度回転させる手段と、前記並列動作可能な要素プロセッサそれぞれに対して、入力画像データの変倍処理を行う際に使用するパラメータを算出する手段と、前記算出されたパラメータに基づいて、前記要素プロセッサの画像データ配置を変更する手段と、前記要素プロセッサが、前記算出されたパラメータに基づいて、各要素プロセッサに配置された入力画像データを参照し、前記算出されたパラメータに基づいて決定された補間係数を用いた、変倍補間処理を並列に実行し、変倍処理後の画像データ生成する手段とを有し、前記各要素プロセッサが生成した変倍処理後の画像データを前記９０度回転させた方向と異なる方向に９０度回転させることにより、ライン方向に変倍処理された画像データを生成することを特徴とする画像処理装置。
【請求項１０】
１ラインがＸ画素からなる画像データＹライン分の入力画像データを処理する画像処理方法において、
Ｎ（Ｘ＞Ｎ＞１、Ｙ＞Ｎ＞１）個の並列動作可能な要素プロセッサを有する演算工程と、
入力画像データの１ラインをＮ画素毎に分割して、入力する入力工程と、
前記分割入力されたＮ画素データをＭ（Ｍは自然数）ライン分記憶する工程と、
前記記憶された画像データを前記要素プロセッサにそれぞれ供給する工程と、前記並列動作可能な要素プロセッサそれぞれに対して、入力画像データを処理する際に使用するパラメータを算出する工程とを有し、前記要素プロセッサは、前記算出されたパラメータに基づいて、同種の演算を並列に実行することを特徴とする画像処理方法。
【請求項１１】
前記並列動作可能な要素プロセッサは、それぞれに対して算出されたパラメータを初期値とし、パラメータを更新しながら、入力画像データを処理することを特徴とする請求項１０に記載の画像処理方法。
【請求項１２】
前記並列動作可能な要素プロセッサは、それぞれに対して算出されたパラメータを初期値として、それぞれの要素プロセッサに供給される複数画素を用いた、演算処理を行うことを特徴とする請求項１０に記載の画像処理方法。
【請求項１３】
前記並列動作可能な要素プロセッサそれぞれに対して算出されるパラメータは、各要素プロセッサが、入力画像データを処理した後の出力画像データの数に基づいて算出されることを特徴とする請求項１０に記載の画像処理方法。
【請求項１４】
前記各要素プロセッサが、入力画像データを処理した後の出力画像データの数に基づいて算出されたパラメータに基づいて行なわれる画像処理は、入力画像データの拡大処理であることを特徴とする請求項１３に記載の画像処理方法。
【請求項１５】
前記並列動作可能な要素プロセッサそれぞれに対して算出されるパラメータは、各要素プロセッサが、入力画像データを処理する際に参照する入力画像データの位置に基づいて算出されることを特徴とする請求項１０に記載の画像処理方法。
【請求項１６】
前記各要素プロセッサが、入力画像データを処理する際に参照する入力画像データの位置に基づいて算出されたパラメータに基づいて行なわれる画像処理は、入力画像データの縮小処理であることを特徴とする請求項１５に記載の画像処理方法。
【請求項１７】
前記要素プロセッサが、前記算出されたパラメータに基づいて、並列に行う同種の演算処理は、入力画像データの変倍処理であることを特徴とする請求項１０に記載の画像処理方法。
【請求項１８】
１ラインがＸ画素からなる画像データＹライン分の入力画像データを入力して、ライン方向の入力画像データの変倍処理を行う画像処理方法において、
Ｎ（Ｘ＞Ｎ＞１、Ｙ＞Ｎ＞１）個の並列動作可能な要素プロセッサを有する演算工程と、
入力画像データの１ラインをＮ画素毎に分割して、入力する入力工程と、
前記分割入力されたＮ画素データをＭ（Ｍは自然数）ライン分記憶する工程と、
前記記憶された画像データを前記要素プロセッサにそれぞれ供給する工程と、前記要素プロセッサに供給された画像データの配置を９０度回転させる工程と、前記並列動作可能な要素プロセッサそれぞれに対して、入力画像データの変倍処理を行う際に使用するパラメータを算出する工程と、前記算出されたパラメータに基づいて、前記要素プロセッサの画像データ配置を変更する工程と、前記要素プロセッサが、前記算出されたパラメータに基づいて、各要素プロセッサに配置された入力画像データを参照し、前記算出されたパラメータに基づいて決定された補間係数を用いた、変倍補間処理を並列に実行し、変倍処理後の画像データ生成する工程とを有し、前記各要素プロセッサが生成した変倍処理後の画像データを前記９０度回転させた方向と異なる方向に９０度回転させることにより、ライン方向に変倍処理された画像データを生成することを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ディジタル信号で表される画像データに基づいて形成された画像を出力する画像処理装置、画像処理方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体に関する。
【背景技術】
【０００２】
現在、コピー機、ファクシミリ、プリンタ、スキャナーといった画像処理装置の複合機として構成された、いわゆるＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｒｉｎｔｅｒ）と呼ばれる画像処理装置がある。このようなＭＦＰの画像処理部に、ＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  ｓｔｒｅａｍ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ  ｓｔｒｅａｍ）型のプロッセッサーを使用することにより、高速、かつプログラマブルに画像を処理する技術が例えば以下の特許文献１に記載されている。
【０００３】
また、従来、ＭＦＰでは、スキャナーにて読み取られた多値の原稿画像データを拡大または縮小して、プリンタに出力するものがある。
【特許文献１】特開平８−３１５１２６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のＭＦＰで行なわれている原稿画像データの変倍処理は、変倍処理を行う際の補間係数を逐次的に算出し、算出された補間係数を用いて、入力画像データを補間処理することにより行なわれている。従来、このような逐次処理を、複数の要素プロセッサを有し、複数のデータを並列に処理することが可能なＳＩＭＤ型プロセッサを用いて行う場合には、並列動作可能な要素プロセッサを有効に使用することが出来ず、ＳＩＭＤ型プロセッサの優位性を発揮させることが出来なかった。
【０００５】
上述した課題を解決し、目的を達成するため、本発明では、変倍処理のような逐次的な処理を行う場合であっても、ＳＩＭＤ型プロセッサが有する複数の要素プロセッサの並列動作性を損なうことなく、高速な処理を行うことが可能な画像処理装置を提供することを目的とし、さらには、ラスタースキャンによる入力画像データの１ライン画素数が、ＳＩＭＤ型プロセッサが有する演算処理部の個数以上の場合であっても、ＳＩＭＤ型プロセッサが有する複数の演算処理部を効率よく動作させながら、逐次処理が可能な画像処理装置の提供を目的とする。
【課題を解決するための手段】
【０００６】
この発明は下記の構成を備えることにより上記課題を解決できるものである。
【０００７】
（１）１ラインがＸ画素からなる画像データＹライン分の入力画像データを処理する画像処理装置において、Ｎ（Ｘ＞Ｎ＞１、Ｙ＞Ｎ＞１）個の並列動作可能な要素プロセッサを有する演算手段と、入力画像データの１ラインをＮ画素毎に分割して、入力する入力手段と、前記分割入力されたＮ画素データをＭ（Ｍは自然数）ライン分記憶する手段と、前記記憶された画像データを前記要素プロセッサにそれぞれ供給する手段と、前記並列動作可能な要素プロセッサそれぞれに対して、入力画像データを処理する際に使用するパラメータを算出する手段とを有し、前記要素プロセッサは、前記算出されたパラメータに基づいて、同種の演算を並列に実行することを特徴とする画像処理装置。
【０００８】
（２）前記並列動作可能な要素プロセッサは、それぞれに対して算出されたパラメータを初期値とし、パラメータを更新しながら、入力画像データを処理することを特徴とする前記（１）に記載の画像処理装置。
【０００９】
（３）前記並列動作可能な要素プロセッサは、それぞれに対して算出されたパラメータを初期値として、それぞれの要素プロセッサに供給される複数画素を用いた、演算処理を行うことを特徴とする前記（１）に記載の画像処理装置。
【００１０】
（４）前記並列動作可能な要素プロセッサそれぞれに対して算出されるパラメータは、各要素プロセッサが、入力画像データを処理した後の出力画像データの数に基づいて算出されることを特徴とする前記（１）に記載の画像処理装置。
【００１１】
（５）前記各要素プロセッサが、入力画像データを処理した後の出力画像データの数に基づいて算出されたパラメータに基づいて行なわれる画像処理は、入力画像データの拡大処理であることを特徴とする前記（４）に記載の画像処理装置。
【００１２】
（６）前記並列動作可能な要素プロセッサそれぞれに対して算出されるパラメータは、各要素プロセッサが、入力画像データを処理する際に参照する入力画像データの位置に基づいて算出されることを特徴とする前記（１）に記載の画像処理装置。
【００１３】
（７）前記各要素プロセッサが、入力画像データを処理する際に参照する入力画像データの位置に基づいて算出されたパラメータに基づいて行なわれる画像処理は、入力画像データの縮小処理であることを特徴とする前記（６）に記載の画像処理装置。
【００１４】
（８）前記要素プロセッサが、前記算出されたパラメータに基づいて、並列に行う同種の演算処理は、入力画像データの変倍処理であることを特徴とする前記（１）に記載の画像処理装置。
【００１５】
（９）１ラインがＸ画素からなる画像データＹライン分の入力画像データを入力して、ライン方向の入力画像データの変倍処理を行う画像処理装置において、Ｎ（Ｘ＞Ｎ＞１、Ｙ＞Ｎ＞１）個の並列動作可能な要素プロセッサを有する演算手段と、入力画像データの１ラインをＮ画素毎に分割して、入力する入力手段と、前記分割入力されたＮ画素データをＭ（Ｍは自然数）ライン分記憶する手段と、前記記憶された画像データを前記要素プロセッサにそれぞれ供給する手段と、前記要素プロセッサに供給された画像データの配置を９０度回転させる手段と、前記並列動作可能な要素プロセッサそれぞれに対して、入力画像データの変倍処理を行う際に使用するパラメータを算出する手段と、前記算出されたパラメータに基づいて、前記要素プロセッサの画像データ配置を変更する手段と、前記要素プロセッサが、前記算出されたパラメータに基づいて、各要素プロセッサに配置された入力画像データを参照し、前記算出されたパラメータに基づいて決定された補間係数を用いた、変倍補間処理を並列に実行し、変倍処理後の画像データ生成する手段とを有し、前記各要素プロセッサが生成した変倍処理後の画像データを前記９０度回転させた方向と異なる方向に９０度回転させることにより、ライン方向に変倍処理された画像データを生成することを特徴とする画像処理装置。
【００１６】
（１０）１ラインがＸ画素からなる画像データＹライン分の入力画像データを処理する画像処理方法において、Ｎ（Ｘ＞Ｎ＞１、Ｙ＞Ｎ＞１）個の並列動作可能な要素プロセッサを有する演算工程と、入力画像データの１ラインをＮ画素毎に分割して、入力する入力工程と、前記分割入力されたＮ画素データをＭ（Ｍは自然数）ライン分記憶する工程と、前記記憶された画像データを前記要素プロセッサにそれぞれ供給する工程と、前記並列動作可能な要素プロセッサそれぞれに対して、入力画像データを処理する際に使用するパラメータを算出する工程とを有し、前記要素プロセッサは、前記算出されたパラメータに基づいて、同種の演算を並列に実行することを特徴とする画像処理方法。
【００１７】
（１１）前記並列動作可能な要素プロセッサは、それぞれに対して算出されたパラメータを初期値とし、パラメータを更新しながら、入力画像データを処理することを特徴とする前記（１０）に記載の画像処理方法。
【００１８】
（１２）前記並列動作可能な要素プロセッサは、それぞれに対して算出されたパラメータを初期値として、それぞれの要素プロセッサに供給される複数画素を用いた、演算処理を行うことを特徴とする前記（１０）に記載の画像処理方法。
【００１９】
（１３）前記並列動作可能な要素プロセッサそれぞれに対して算出されるパラメータは、各要素プロセッサが、入力画像データを処理した後の出力画像データの数に基づいて算出されることを特徴とする前記（１０）に記載の画像処理方法。
【００２０】
（１４）前記各要素プロセッサが、入力画像データを処理した後の出力画像データの数に基づいて算出されたパラメータに基づいて行なわれる画像処理は、入力画像データの拡大処理であることを特徴とする前記（１３）に記載の画像処理方法。
【００２１】
（１５）前記並列動作可能な要素プロセッサそれぞれに対して算出されるパラメータは、各要素プロセッサが、入力画像データを処理する際に参照する入力画像データの位置に基づいて算出されることを特徴とする前記（１０）に記載の画像処理方法。
【００２２】
（１６）前記各要素プロセッサが、入力画像データを処理する際に参照する入力画像データの位置に基づいて算出されたパラメータに基づいて行なわれる画像処理は、入力画像データの縮小処理であることを特徴とする前記（１５）に記載の画像処理方法。
【００２３】
（１７）前記要素プロセッサが、前記算出されたパラメータに基づいて、並列に行う同種の演算処理は、入力画像データの変倍処理であることを特徴とする前記（１０）に記載の画像処理方法。
【００２４】
（１８）１ラインがＸ画素からなる画像データＹライン分の入力画像データを入力して、ライン方向の入力画像データの変倍処理を行う画像処理方法において、Ｎ（Ｘ＞Ｎ＞１、Ｙ＞Ｎ＞１）個の並列動作可能な要素プロセッサを有する演算工程と、入力画像データの１ラインをＮ画素毎に分割して、入力する入力工程と、前記分割入力されたＮ画素データをＭ（Ｍは自然数）ライン分記憶する工程と、前記記憶された画像データを前記要素プロセッサにそれぞれ供給する工程と、前記要素プロセッサに供給された画像データの配置を９０度回転させる工程と、前記並列動作可能な要素プロセッサそれぞれに対して、入力画像データの変倍処理を行う際に使用するパラメータを算出する工程と、前記算出されたパラメータに基づいて、前記要素プロセッサの画像データ配置を変更する工程と、前記要素プロセッサが、前記算出されたパラメータに基づいて、各要素プロセッサに配置された入力画像データを参照し、前記算出されたパラメータに基づいて決定された補間係数を用いた、変倍補間処理を並列に実行し、変倍処理後の画像データ生成する工程とを有し、前記各要素プロセッサが生成した変倍処理後の画像データを前記９０度回転させた方向と異なる方向に９０度回転させることにより、ライン方向に変倍処理された画像データを生成することを特徴とする画像処理方法。
【発明の効果】
【００２５】
本発明によれば、ＳＩＭＤ型演算処理部が有する複数の演算処理部を並列動作させ、高速処理性能を犠牲にすることなく、主走査方向の変倍処理を行うことが可能となる。特に、ラスタースキャンによる入力画像データの１ライン画素数が、ＳＩＭＤ型プロセッサが有する演算処理部の個数以上の場合であっても、ＳＩＭＤ型プロセッサが有する複数の演算処理部を効率よく動作させながら、画像処理を行うことが可能となる。
【発明を実施するための最良の形態】
【００２６】
以下本発明を実施するための最良の形態を、実施例により詳しく説明する。
【実施例】
【００２７】
まず、本実施の形態にかかる画像処理装置の原理について説明する。図１は、この発明の本実施の形態にかかる画像処理装置の構成を機能的に示すブロック図である。図１において、画像処理装置は、以下に示す５つのユニットを含む構成である。
【００２８】
上記５つのユニットとは、画像データ制御ユニット１００と、画像データを入力する画像データ入力ユニット１０１と、画像を蓄積する画像メモリを制御して画像データの書き込み／読み出しを行う画像メモリ制御ユニット１０２と、画像データに対し加工編集等の画像処理を施す画像処理ユニット１０３と、画像データを転写紙等に書き込む画像書込ユニット１０４と、である。
【００２９】
上記各ユニットは、画像データ制御ユニット１００を中心に構成されている。すなわち、画像データ入力ユニット１０１、画像メモリ制御ユニット１０２、画像処理ユニット１０３、画像書込ユニット１０４は、いずれも画像データ制御ユニット１００に接続されている。以下、この各ユニットについて、それぞれ説明する。
【００３０】
画像データ制御ユニット１００により行われる処理は以下である。
【００３１】
制御データバスインターフェース処理、全体システム制御、ローカルバス制御処理（システムコントローラを起動させるためのＲＯＭ、ＲＡＭ、アクセス制御処理）、画像データ入力ユニット１０１とのインターフェース処理、画像メモリ制御ユニット１０２とのインターフェース処理、画像処理ユニット１０３とのインターフェース処理、画像書込みユニット１０４とのインターフェース処理、ネットワーク制御処理、等である。
【００３２】
画像データ入力ユニット１０１により行われる処理は以下である。
【００３３】
システムコントローラとのインターフェース制御処理、光学系による原稿反射光の読み取り処理、ＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ：電荷結合素子）等を用いた電気信号への変換処理、Ａ／Ｄ変換器でのディジタル化処理、シェーディング補正処理（光源の照度分布ムラを補正する処理）、読み取り系の濃度特性を補正する処理、ネットワークを介して入力されるＰＤＬ画像データのラスタライズ処理、等である。
【００３４】
画像メモリ制御ユニット１０２により行われる処理は以下である。
【００３５】
システムコントローラとのインターフェース制御処理、メモリ部への書き込み・読み出し処理、メモリモジュールへのアクセス制御処理（複数のユニットからのメモリ・アクセス要求の調停処理）、等である。
【００３６】
画像処理ユニット１０３により行われる処理は以下である。
【００３７】
色変換処理、色補正処理、ＭＴＦ補正処理、平滑化処理、主走査方向の任意変倍処理、濃度変換（γ変換処理：濃度調整キーに対応）、単純二値化処理、各種擬似中間調処理、ドット配置位相制御処理（ジャギー補正）、像域分離処理（色判定、属性判定、適応処理）、密度変換処理、等である。
【００３８】
画像書込ユニット１０４により行われる処理は以下である。
【００３９】
画像信号のパルス制御処理、パラレルデータとシリアルデータのフォーマット変換処理、等である。
【００４０】
［ディジタル複合機のハードウエア構成］
次に、本実施の形態にかかる画像処理装置がディジタル複合機を構成する場合のハードウエア構成について説明する。図２は本実施の形態にかかる画像処理装置のハードウエア構成の一例を示すブロック図である。
【００４１】
図２のブロック図において、本実施の形態にかかる画像処理装置は、読取ユニット２０１と、ＰＤＬ処理ユニット２０２と、画像データ制御部２０３と、画像処理プロセッサ２０４と、作像ユニット２０５、メモリ制御部２０６、メモリモジュール２０７、ネットワーク制御部２１４、ワーキングメモリ２１６とを備える。また、本実施の形態にかかる画像処理装置は、制御用データバス２０８を介して、システムコントローラ２０９と、ＲＯＭ２１０と、ＲＡＭ２１１、操作パネル２１２とを備える。さらに、ネットワーク２１３を介して、パーソナルコンピュータ２１５に接続されている。
【００４２】
上記した構成のうち、画像処理プロセッサ２０４は、画像に基づいて作成されたディジタル信号である画像データを顕像として出力できるように処理し、複数の画像形成動作を実現できるプログラマブルな画像処理手段である。また、画像データ制御部２０３は、画像データを伝送するデータバスと画像処理プロセッサ２０４による画像処理に用いられる処理ユニット間の画像データ伝送を一括して管理する画像データ伝送管理手段であり、読取ユニット２０１、ＰＤＬ処理ユニット２０２、画像処理プロセッサ２０４、メモリ制御部２０６、作像ユニット２０５、ネットワーク制御部２１４間のデータ伝送管理を行う。尚、本発明は、画像処理プロセッサ２０４にかかるもので、画像処理プロセッサ２０４の構成については、図３以降の図面を用いて詳細に説明するものとする。
【００４３】
また、本実施の形態にかかる画像処理装置は、画像データ記憶管理手段として、画像メモリ制御部２０６に接続されるメモリモジュール２０７を備える。
【００４４】
ここで、上記各構成部と、図１に示した各ユニット１００〜１０４との関係について説明する。すなわち、読取ユニット２０１およびＰＤＬ処理ユニット２０２により、図１に示した画像データ入力ユニット１０１の機能を実現する。また同様に、画像データ制御部２０３、システムコントローラ２０９、ＲＯＭ２１０、ＲＡＭ２１１、操作パネル２１２、ネットワーク制御部２１４により、画像データ制御ユニット１００の機能を実現する。また同様に、画像処理プロセッサ２０４、ワーキングメモリ２１６により画像処理ユニット１０３の機能を実現する。
【００４５】
また同様に作像ユニット２０５により画像書込ユニット１０４を実現する。また同様に、メモリ制御部２０６およびメモリモジュール２０７により画像メモリ制御ユニット１０２を実現する。
【００４６】
尚、システムコントローラ２０９は、制御用データバス２０８を介して接続されたＲＯＭ２１０に記憶された制御プログラムに基づき動作するものであり、ＲＡＭ２１１をワーク用メモリとして使用している。また、読取ユニット２０１、ＰＤＬ処理ユニット２０２、画像データ制御部２０３、画像処理プロセッサ部２０４、作像ユニット２０５、メモリ制御部２０６、ネットワーク制御部２１４、操作パネル２１２は、制御用データバス２０８を介して、システムコントローラ２０９に動作が制御されるものである。
【００４７】
各構成部の内容について説明する。原稿を光学的に読み取る読取ユニット２０１は、ランプとミラーとレンズ、受光素子から構成され、原稿に対するランプ照射の反射光をミラーおよびレンズにより受光素子に集光する。
【００４８】
受光素子、例えばＣＣＤにおいて電気信号に変換された画像データはディジタル信号に変換された後、読取ユニット２０１より出力（送信）される。
【００４９】
ＰＤＬ処理ユニット２０２は、ネットワーク２１３に接続されたパーソナルコンピュータ２１５より出力されたＰＤＬ画像データをビットマップ画像へラスタライズするユニットである。ネットワーク２１３を介して入力されたＰＤＬ画像データがネットワーク制御部２１４を介して、ＰＤＬ処理ユニット２０２に入力されると、ＰＤＬ処理ユニット２０２は、入力されたＰＤＬ画像データに基づいたラスタライズを行い、ビットマップ画像データを出力（送信）する。以上のように、読取ユニット２０１、ＰＤＬ処理ユニット２０２より出力（送信）された画像データは画像データ制御部２０３に入力（受信）される。
【００５０】
読取ユニット２０１、ＰＤＬ処理ユニット２０２より画像データ制御部２０３が受信した画像データは、画像データ処理プロセッサ部２０４、または、メモリ制御部２０６に出力される。
【００５１】
まず、画像処理プロセッサ部２０４に出力される場合の動作について説明する。
【００５２】
画像処理プロセッサ部２０４に入力された画像データは、ワーキングメモリ２１６を用いながら画像処理プロセッサ部２０４にて処理が行なわれた後、再度画像データ制御部２０３に出力される。画像処理プロセッサ部２０４より、画像データ処理部２０３に入力された画像データは、メモリ制御部２０６に出力され、メモリ制御部２０６を介して、メモリモジュール２０７に記憶される。
【００５３】
画像処理プロセッサ部２０４による１画面分の画像データの処理が終了し、１画面分の処理済みデータが、メモリモジュールに記憶された後、メモリ制御部２０６は、メモリモジュール２０７に対する画像データの読み出しを行い読み出された画像データを画像データ制御部２０３を介して、作像ユニット２０５に出力し、プリント出力を得る。あるいは、メモリモジュール２０７より読み出された画像データを画像データ制御部２０３より、ネットワーク制御部２１４に出力し、ネットワーク２１３を介して、パーソナルコンピュータ２１５に出力するように動作する。
【００５４】
次に、読取ユニット２０１、ＰＤＬ処理ユニット２０２より画像データ制御部２０３が受信した画像データをメモリ制御部２０６に出力する場合の動作について説明する。画像データ制御部２０３より、メモリ制御部２０６に入力された画像データは、メモリモジュール２０７に記憶される。次に、メモリ制御部２０６は、メモリモジュール２０７より、記憶された画像データを読み出し、画像データ制御部２０３を介して、画像処理プロセッサ部２０４に出力する。画像処理プロセッサ部２０４では、入力された画像データを処理し、処理後の画像データを、再度画像データ制御部２０３、メモリ制御部２０６を介して、メモリモジュール２０７に記憶する。画像処理プロセッサ部２０４による１画面分の画像データの処理が終了し、１画面分の処理済みデータが、メモリモジュール２０７に記憶された後、メモリ制御部２０６は、メモリモジュール２０７に対する画像データの読み出しを行い読み出された画像データを画像データ制御部２０３を介して、作像ユニット２０５に出力し、プリント出力を得る。あるいは、メモリモジュール２０７より読み出された画像データを画像データ制御部２０３より、ネットワーク制御部２１４に出力し、ネットワーク２１３を介して、パーソナルコンピュータ２１５に出力するように動作する。
【００５５】
上記動作例は、読取ユニット２０１、ＰＤＬ処理ユニット２０２より出力された画像データに対する処理を画像処理プロセッサ部２０４により行い、１画面分の処理済み画像データがメモリモジュール２０７に記憶された後、メモリモジュール２０７より、処理済画像データの読み出しを行い、作像ユニット２０５、あるいは、ネットワーク制御部２１４に出力する例を示したが、処理済み画像データの記憶が１画面分終了する前に、処理済みの画像データをメモリモジュール２０７より読み出しを開始するように制御してもよい。
【００５６】
さらには、メモリモジュール２０７に画像データを記憶させない動作例について説明する。
【００５７】
読取ユニット２０１、ＰＤＬ処理ユニット２０２より画像データ制御部２０３が受信した画像データは、画像データ制御部２０３より、画像処理プロセッサ部２０４に出力される。画像処理プロセッサ部２０４では、入力された画像データに所定の処理を行い、画像データ制御部２０３に出力する。画像処理プロセッサ部２０４より、画像データ制御部２０３に入力された画像データは、画像データ制御部２０３を介して、作像ユニット２０５、ネットワーク制御部２１４に出力される。
【００５８】
メモリモジュール２０７に処理済みの画像データ１面分を記憶する場合の動作例としては、１枚の原稿について複数枚を複写する場合に、読取ユニット２０１を１回だけ動作させ、読取ユニット２０１により読み取った画像データをメモリモジュール２０７に記憶し、記憶された画像データを複数回読み出すという方法がある。
【００５９】
メモリモジュール２０７に画像データを記憶させない動作例としては、１枚の原稿を１枚だけ複写する場合がある。読み取り画像データに対する処理済みデータを直接作像ユニット２０５に出力すればよいので、メモリモジュール２０７へのアクセスを行う必要はない。
【００６０】
尚、本装置の全体の動作は、操作パネル２１２より入力された、画像処理装置が行うべき処理に基づいてシステムコントローラ２０９により制御される。操作パネル２１２からは、処理の種類（複写、送信、画像読込、プリント等）および処理の枚数等を入力することができる。
【００６１】
図３は、図２に示した本発明の画像処理プロセッサ部２０４の構成を説明するための図である。図示した画像処理プロセッサ部２０４は、ＦＩＦＯメモリ３０１、３０７と、演算処理ユニット３００から構成され、演算処理ユニット３００は、入力レジスタ３０２、出力レジスタ３０４、ＳＩＭＤ型のデータ演算処理部３０３からなるＳＩＭＤプロセッサ３０８と、制御プロセッサ部３０５、外部メモリインターフェース３０６を有している。尚、ＳＩＭＤとは、複数のデータに対し、単一の命令を並列に実行させるもので、本実施例では、１２８個のＰＥによりデータ演算処理部３０３が構成されている。ＦＩＦＯメモリ３０１は、読取ユニット２０１、または、ＰＤＬ処理ユニット２０２より入力される画像データ１ライン分（７１６８画素）の容量を有するファーストイン、ファーストアウトのメモリであり、書き込みと読み出しが独立に制御される。画像データ制御部２０３のデータバスＡより入力された画像データは、ＦＩＦＯメモリ３０１に入力され、データ演算処理部３０３が有するＰＥの数と等しいレジスタ数で構成された入力レジスタ３０２に１２８個分の画像データとして５６分割して入力される。ＦＩＦＯメモリ３０１より、入力レジスタ３０２に入力された画像データは、データ演算処理部３０３、外部メモリインターフェース３０６に出力される。データ演算処理部３０３に入力された画像データは、データ演算処理部３０３にて所定の処理が行なわれ、処理後の画像データが、出力レジスタ３０４、外部メモリインターフェース３０６に出力される。尚、外部メモリインターフェース３０６には、データ演算処理部３０３で処理された中間データを出力することも、可能な構成となっている。出力レジスタ３０４は、入力レジスタ３０２と同様に、データ演算処理部３０３が有するＰＥ数と等しいレジスタ数で構成されている。出力レジスタ３０４の出力画像データは、画像データ１ライン分の容量を有するＦＩＦＯメモリ３０７に入力される。ＦＩＦＯメモリ３０７は、書き込みと読み出しが独立に制御されるファーストイン、ファーストアウトのメモリである。ＦＩＦＯメモリ３０７より出力される画像データ信号は、データバスＢを介して画像データ制御部２０３に出力される。さらに、ＳＩＭＤプロセッサ３０８及び外部メモリインターフェース３０６は、図２に示した制御用データバス２０８に接続された制御プロセッサ部３０５と接続されている。制御プロセッサ部３０５は、データ演算処理部３０３のＰＥに対する命令の供給、各ＰＥのステータスの判断、各ＰＥに接続されたメモリ、レジスタへのデータの入出力等の制御及び外部メモリインターフェース部３０６を制御し、ＳＩＭＤプロセッサ３０８の内部メモリやレジスタとワーキングメモリ２１６間のデータ制御を行うものである。尚、制御プロセッサ３０５とＳＩＭＤプロセッサ３０８は互いに異なる処理を独立に実行することが可能である。
【００６２】
次に、ＳＩＭＤ型プロセッサを構成するデータ演算処理部３０３を含む演算処理ユニット３００の概略ブロックを図４に示し、説明する。
【００６３】
図４中、３０５は、図３に示した制御プロセッサ部を示し、制御プロセッサ４０１および、制御プロセッサ及びＳＩＭＤプロセッサの動作を制御するプログラムが格納されたプログラムメモリ４０２、データメモリ４０３より構成される。４０４は、ＳＩＭＤプロセッサ３０８を構成するひとつのＰＥを示し、前述したように、本実施例におけるＳＩＭＤプロセッサ３０８は１２８個のＰＥ（ＰＥ０〜ＰＥ１２７）により構成されている。
【００６４】
図４に示したように、それぞれのＰＥは、８ビットの演算ユニット（ＡＬＵ）４０５と、８ビットのレジスタ１６本から構成される汎用レジスタ４０６、ＡＬＵの演算動作を実施するか否かを制御するマスクレジスタ４０７、演算途中のデータを格納するＰＥレジスター４０８、出力レジスタ４０９、入力レジスタ４０８、２Ｋバイトの容量を有するメモリ４１１から構成される。ＡＬＵ４０５、ＰＥレジスタ４０８は、隣接するＰＥ間における同一構成要素との接続がなされており、データの入出力が可能な構成となっている。また、出力レジスタ４０９、入力レジスタ４１０も隣接するＰＥ間の同一構成要素との接続が行なわれており、１２８段のシフトレジスタとして動作する。尚、図３中の入力レジスタ３０２、出力レジスタ３０４に相当するブロックには同一符号を付して図４に示してある。
【００６５】
また、各ＰＥにおけるメモリ４１１は、外部メモリインターフェースを介して、データバスＣより、ワーキングメモリ２１６に接続される。
【００６６】
尚、同一ＰＥを構成するＡＬＵ４０５、汎用レジスタ４０６、マスクレジスタ４０７、ＰＥレジスタ４０８、出力レジスタ４０９、入力レジスタ４１０、メモリ４１３は、任意のブロック間におけるデータの入出力が可能な構成となっており、例えば、メモリ４１１から、ＰＥレジスタ４０８へのデータ入出力、ＰＥレジスタ４０８から外部メモリインターフェース３０６へのデータ入出力が可能な構成となっている。
【００６７】
各ＰＥに対する命令の供給は、制御プロセッサ４０１より、命令供給バス４１３を介して各ＰＥに同一内容で与えられ、全てのＰＥが同一の命令に従った動作を行うように制御されるが、各ＰＥに与える処理対象のデータを異ならせることにより、各ＰＥが、異なる処理対象データに対する演算処理を並列に行うように制御される。例えば、画像データ１ライン中の１２８画素の内容を各画素ごとにＰＥレジスタに配置し、同一の命令コードでＰＥレジスタに対する演算処理をさせれば、１画素ずつ逐次処理するよりも短時間で１２８画素分の処理結果が得られる。
【００６８】
各ＰＥのＡＬＵ４０５における演算結果、および、ＰＥレジスタ４０８の内容は、隣接するＰＥ間で入出力可能な構成となっていることにより、隣接ＰＥのＰＥレジスタ４０８、および、ＡＬＵ４０５の演算結果を参照した演算処理が各ＰＥで行うことも可能な構成となっている。さらに、各ＰＥのメモリ４１１および、入力レジスタ４１０、出力レジスタ４０９、ＰＥレジスタ４０８、マスクレジスタ４０７、汎用レジスタ４０６は、メモリ／レジスタアクセスバス４１４を介して制御プロセッサ４０１に接続され、メモリ、および、各レジスタデータの入出力が、制御プロセッサ４０１により制御される。
【００６９】
また、制御プロセッサ４０１は、制御用データバス２０８を介して、図２中のシステムコントローラ２０９と制御データの入出力が可能な構成となっている。さらに、制御プロセッサ４０１の動作を制御するプログラムメモリ４０２、および、データメモリ４０３は、制御用データバス２０８を介してシステムコントローラ２０９よりアクセス可能な構成となっており、システムコントローラ２０９により、画像処理ユニット３００で行う処理内容に応じて、制御プロセッサ４０１の動作を制御するプログラムメモリ４０２の書き換えが可能な構成となっている。
【００７０】
以下に、本発明を主走査方向の変倍処理に適用した第１の実施例を以下に詳細に説明する。
【００７１】
図５は、図２中の読取ユニット２０１より出力されるＡ４原稿画像データ配置を示す。図中の主走査方向が、読取ユニット２０１に設けられたＣＣＤの画素並び方向を表し、これをライン方向と呼ぶ。また、主走査（ライン）方向の読取領域を副走査方向に順次走査することにより、２次元的な原稿画像データの読取動作が行なわれる。尚、本実施例では、読取ユニット２０１の読取解像度は６００ｄｐｉと設定されており、Ａ４原稿画像は、主走査方向には、７１６８画素、副走査方向には、４９９２画素の２次元データとなる。上記は、読取ユニット２０１より出力される原稿画像データの例を示したが、ＰＤＬ処理ユニット２０２より出力される画像データが、Ａ４サイズのプリントデータに相当する場合には、図５に示した画像データと同一配置となる。以下では、読取ユニット２０１から出力された画像データを処理する例を説明するが、ＰＤＬ処理ユニット２０２からの出力画像データを処理する場合であっても、同様である。
【００７２】
読取ユニット２０１から出力されたＡ４原稿画像データは、画像データ制御部２０３に入力され、図３に示した、画像処理プロセッサ部２０４のＦＩＦＯメモリ３０１に入力される。図６にＦＩＦＯメモリ３０１の動作の概要を示す。
【００７３】
ＦＩＦＯメモリ３０１は、１ライン分（７１６８画素）の容量を有するラインメモリであり、読取ユニット２０１が出力する原稿画像データに同期したクロックにより、ＦＩＦＯメモリ３０１に入力画像データをライトする。リードクロックは、画像処理ユニット３００より出力されるクロックであり、ＦＩＦＯメモリに１２８画素分の画像データがライトされた後の、リード開始（０）のタイミングより、１２８画素分の画像データのリード動作が開始される。尚、本実施例では、ＦＩＦＯメモリ３０１へのライトクロックが２０ＭＨｚ、リードクロックは、１００ＭＨｚと設定されており、ライトクロックに対してリードクロックが高速なものとなっている。ＦＩＦＯメモリ３０１より読み出された画像データは、ＦＩＦＯ３０１のリードクロックと同期したシフトクロックにより図３中の入力レジスタ３０１に入力される。入力レジスタ３０１に１２８画素分の画像データが入力されると、入力レジスタに入力された１２８画素分の画像データは、図３中の外部メモリインターフェース３０６を介してワーキングメモリ２１６に記憶される。尚、この間も、連続的にＦＩＦＯ３０１には入力画像データのライト動作が行なわれている。さらに、ＦＩＦＯメモリに２５６画素分の画像データがライトされた後の、リード開始（１）のタイミングより、１２８画素分の画像データのリード動作が開始され、上述したのと同様の動作にて、１２８〜２５６画素目の画像データが、ワーキングメモリ２１６に記憶される。以上の動作を繰り返し、１ライン７１６８画素の画像データは、１２８画素づつ、５６回に分けてワーキングメモリ２１６に記憶される。さらに、連続するラインの画像データも同様にして、ワーキングメモリ２１６に、１２８画素単位で記憶される。尚、ＦＩＦＯメモリ３０１のライトクロックに対するリードクロックの速度は、ＦＩＦＯメモリに入力される画像データを取りこぼしなく、１２８画素単位で、入力レジスタに入力し、ワーキングメモリ２１６に転送することが可能な速度であれば、上記速度に限定されるものではない。
【００７４】
図７は、ワーキングメモリ２１６に記憶された画像データとワーキングメモリのアドレスとの関係を模式的に示した図である。ワーキングメモリのアドレスは、連続する１２８画素分のデータを１ラインとするデータブロック毎に０から割り振られているものであり、ワーキングメモリのラインアドレス０〜５５に記憶された画像データが、入力された画像データの先頭１ラインに相当するものである。尚、入力レジスタ３０２よりワーキングメモリ２１６へのデータ転送の起動および、ワーキングメモリのアドレス制御は、図３中の制御プロセッサ３０５により動作が制御されるものである。
【００７５】
本実施例では、入力画像データの１画素の間隔を８１９２分割し、変倍後の画素位置が、８１９２分割されたどの位相に位置するかを算出し、算出された位相情報に基づいて、変倍後の画素データを算出する。以下に、変倍率をＭ％とした場合の例を詳細に示す。
【００７６】
主走査方向の変倍後の画素位置をｎ（ｎ＝０、１、２、……７１６７）、変倍後の画像データの位相をＰＨ（ｎ）とすると、ＰＨ（ｎ）は、
ＰＨ（ｎ）＝ＡＤＤ×ｎ＋初期位相    ……    （式１）
ＡＤＤ＝（８１９２／Ｍ）×１００
初期位相：０〜８１９１の固定値
と表される。
【００７７】
図８にＭ＝２００％、初期位相＝０の場合に関して具体例を説明する。
【００７８】
変倍後の画素位置：ｎに応じて、変倍後の画像データの位相：ＰＨが、上記（式１）により算出される。前述したように入力画像データの１画素を８１９２分割していることより、算出された位相：ＰＨを８１９２で割り算した商：ｐ（ＰＨの１４ビット以上の部分）と、余り：α（ＰＨの下位１３ビット）を算出する。ここで、算出した商：ｐは、入力画像データの画素位置に相当する。例えば、変倍後画像データｎ＝０は、ｐ＝‘０’であることより、入力画像データの‘０’（ｐ）番目と‘１’（ｐ＋１）番目の画素間に位置し、余り：α＝‘０’であることより、‘０’番目と‘１’番目を８１９２分割した画素位置の‘０’（α）番目の画素位置、すなわち入力画像データの‘０’番目の画素位置と同一位置にあることを示している。
【００７９】
変倍後の画像データＸ”（ｎ）は、変倍前の画像データをＸ（ｐ）とすると、以下のように算出される。
Ｘ”（ｎ）＝｛Ｘ（ｐ）×（８１９２−α）＋Ｘ（ｐ＋１）×α｝／８１９２
……    （式２）
従って、
Ｘ”（０）＝｛Ｘ（０）×（８１９２−０）＋Ｘ（１）×０｝／８１９２
Ｘ”（１）＝｛Ｘ（０）×（８１９２−４０９６）＋Ｘ（１）×４０９６｝／８１９２
Ｘ”（２）＝｛Ｘ（１）×（８１９２−０）＋Ｘ（２）×０｝／８１９２
Ｘ”（３）＝｛Ｘ（１）×（８１９２−４０９６）＋Ｘ（２）×４０９６｝／８１９２
｜
Ｘ”（７１６６）＝｛Ｘ（３５８３）×（８１９２−０）＋Ｘ（３５８４）×０｝／８１９２
と算出される。
【００８０】
上記例では、ｎが偶数の変倍後画像データは、変倍前画像データのｎ／２の画素位置データがそのまま出力され、ｎが奇数の変倍後画像データは、変倍前画像データのｎ／２（切り捨て）画素位置と、（ｎ／２）＋１（切り捨て）画素位置データの平均値補間を行ったデータが出力されることになる。
【００８１】
また、図９にＭ＝２００％、初期位相＝２０４８の場合の具体例を示す。この場合の変倍後の画像データＸ”（ｎ）は以下のように算出される。
Ｘ”（０）＝｛Ｘ（０）×（８１９２−２０４８）＋Ｘ（１）×２０４８｝／８１９２
Ｘ”（１）＝｛Ｘ（０）×（８１９２−６１４４）＋Ｘ（１）×６１４４｝／８１９２
Ｘ”（２）＝｛Ｘ（１）×（８１９２−２０４８）＋Ｘ（２）×６１４４｝／８１９２
Ｘ”（３）＝｛Ｘ（１）×（８１９２−６１４４）＋Ｘ（２）×２０４８｝／８１９２
｜
Ｘ”（７１６６）＝｛Ｘ（３５８３）×（８１９２−２０４８）＋Ｘ（３５８４）×２０４８｝／８１９２
この場合には、変倍後画像データは、奇数、偶数画素位置とも、変倍前画像データの２画素を用いた重み付け平均演算より算出されることになる。
【００８２】
尚、重み付け平均の精度は、上記例に限定されるものではなく、例えば、上記算出された位相：ＰＨを８１９２で割り算した余りの上位４ビットを用いて行ってもよい。この場合には、補間演算の精度が劣化するが、実用上の問題はなく、乗算のビット数を削減することにより、高速な補間演算処理が可能となる。補間演算の精度を４ビットとした場合の補間係数を図８、図９中にＫとして示す。尚、この場合の変倍後の画像データＸ”（ｎ）は、次のように算出される。
Ｘ”（ｎ）＝｛Ｘ（ｐ）×（１６−Ｋ）＋Ｘ（ｐ＋１）×Ｋ｝／１６  ……  （式３）
また、変倍率Ｍ％は、上記値に限定されることはない。複写機の動作モードとして使用頻度の高い変倍率１４１％（Ａ４→Ａ３）の場合の例を図１０に示す。
【００８３】
次に、図３中のデータ演算処理部３０３を用いて、主走査方向の拡大変倍を行う場合の動作を図１１のフローを用いて説明する。
【００８４】
まず、ここで、演算ユニット３００が使用する変数に関して説明する。演算ユニット３００にて用いられる変数としては、データ演算処理部の各ＰＥが並列に持つ変数と、並列に持たない変数がある。各ＰＥが並列に持つ変数とは、各ＰＥそれぞれに割り当てられた変数でありこれをｓｅｐ型変数と呼ぶ。ｓｅｐ型変数は、各ＰＥ毎に異なる値として使用することが可能となっており、ｓｅｐ型で宣言された変数は、ひとつの変数につき、本実施例のデータ演算処理部３０３を構成するＰＥの個数と等しい１２８個が設けられることになる。各ＰＥが並列に持たない変数を用いた演算を、各ＰＥが並列に行う場合には、各ＰＥが共通の変数値を参照するのに対して、各ＰＥが並列に持つ変数を用いた演算を各ＰＥが並列に行う場合には、変数名が同一だが、各ＰＥがそれぞれ異なる変数値を参照することが可能となる。上記各ＰＥが並列にもつ変数をｓｅｐ型変数と呼ぶのに対して、ＰＥが並列に持たない変数をｎ型変数と呼ぶ。
【００８５】
Ｓｔｅｐ＿１にて、図３中の制御プロセッサ部は、変倍率Ｍ％に基づいて、上記式１に示した加算値：ＡＤＤ（ｎ型変数）を算出する。次にＳｔｅｐ＿２にて、初期位相：ＩＰＨＡＳＥ（ｎ型変数）を設定する。ＩＰＨＡＳＥの値は、変倍率によらず固定値としてもよいし、変倍率に応じて変化させるようにしてもよい。例えば、上述した２００％拡大時に、拡大後の画素データとして、入力画像データの補間平均値を使用する場合には、８１９２／２と設定するようにしてもよい。次に、Ｓｔｅｐ＿３にて各ＰＥが変倍後の画像データとして、ＰＥの総数に等しい１２８個の画像データを算出する際に、最初に参照される入力画像データの位相を表す：ＰＨ（ｓｅｐ型変数）を算出する。ＰＨの算出方法に関しては、後に詳細に述べる。次にＳｔｅｐ＿４にて、処理した主走査ライン数を計数するためのカウンタ変数：ＬＩＮＥ（ｎ型変数）を‘０’に初期化する。
【００８６】
次に、フローはＳｔｅｐ＿５に進む。Ｓｔｅｐ＿３では、ワーキングメモリ２１６に、取り込まれた入力画像データより、変数ＬＩＮＥで示される主走査ラインデータより２ライン分のデータをデータ演算処理部３０３の各ＰＥが有するメモリ４１１に転送する。図１２に各ＰＥが有する内部メモリに転送された入力画像データの配置を示す。次にＳｔｅｐ＿６にて各ＰＥが有する内部メモリのデータを９０度回転させる。内部メモリデータの９０度回転動作は、各ＰＥが有する内部メモリそれぞれにおけるデータの移動と、図４中に示したＰＥレジスタ４０８を使用したＰＥ間のデータ移動を繰り返すことにより行う。９０度回転後の入力画像データの配置を図１３に示す。図１３に示すように、ＰＥ０〜ＰＥ５５までには、０ライン目の入力画像データが記憶され、ＰＥ５６〜ＰＥ１１１には、１ライン目の入力画像データが配置され、各ＰＥそれぞれは、内部メモリアドレス：０〜１２７までに、１２８バイト分の入力データが配置される。
【００８７】
次に、Ｓｔｅｐ＿７にフローが進む。Ｓｔｅｐ＿７では、上述した、変数ＰＨを参照して、各ＰＥの内部メモリに配置されたデータ数を所定の数とする制御を行う。
【００８８】
ここで、Ｓｔｅｐ＿３にて行うｓｅｐ型変数ＰＨの算出方法に関して詳細に説明する。ＰＨは上記（式１）に示したように算出されるが、ここでは、（式１）において、ｎ＝１２８×（ＰＥ番号％５５）として以下のように算出する。
ＰＨ（ｎ）＝ＡＤＤ×（１２８×（ＰＥ番号％５５））＋ＩＰＨＡＳＥ  ……（式４）
ＡＤＤ＝（８１９２／Ｍ）×１００、
ＰＥ番号％５５は、ＰＥ番号を５５で割り算した余りを示す。
【００８９】
ここで、ＰＥ番号＝０に対して算出されたＰＨ（ｎ）は、ＰＥ０が有する変数ＰＨの値となり、ＰＥ番号＝１に対して算出されたＰＨ（ｎ）の値はＰＥ１が有するｓｅｐ型変数ＰＨの値となる。
【００９０】
Ｍを２００％、ＩＰＨＡＳＥ＝０とした場合に算出されたｓｅｐ型変数ＰＨ（ｎ）の例を図１４に示す。式４にて算出されるＰＨの値は、変倍後の画像データ１２８画素毎の位相情報を示すものとなる。さらに、上述したように、ＰＨの上位１４ビット以上で表される値が入力画素位置に相当することになる。図１５に、各ＰＥ毎に算出されたＰＨより求められた主走査方向の入力画素位置を示す。図１５に示したように、ＰＥ０は、‘０’番目、ＰＥ２は、‘６４’番目となる。これらは、各ＰＥが１２８画素分の変倍処理後データを算出するとした場合に、各ＰＥが変倍処理を行うために、最初に参照する入力画素位置を示している。さらに、ＰＥ０〜ＰＥ５５に対しては、０ライン目の入力画素位置、ＰＥ５６〜ＰＥ１１１に対しては１ライン目の入力画素位置に対応するＰＨが算出され、これらは等しい値となる。Ｓｔｅｐ＿７では、図１５に示した入力画素位置に基づいて、画像データの移動を行う。この動作に関して図１６−１、２、３、４、図１７を用いて以下に説明する。
【００９１】
図１６は、各ＰＥの内部メモリに記憶されたデータ配置を示し、各ＰＥの対応するアドレスには、図１３に示した入力画像データが、記憶されている。図１７のＳｔｅｐ＿１００において、Ｎ＝０に初期化する。Ｓｔｅｐ＿１０１にて、図１５に示した各ＰＥが変倍処理を行うために、ＰＥ（Ｎ＋１）とＰＥ（Ｎ）が最初に参照する入力画素位置の差分をＫとして算出する。ここでは、Ｎ＝０より、ＰＥ１とＰＥ０における値が参照され、Ｋ＝６４−０＝６４と算出される。次にＳｔｅｐ＿１０２にて、内部メモリのアドレスＡＤ＝ＫからＡＤ＝１２７までのデータを隣接ＰＥの内部メモリへシフト動作を行う。但し、データシフトが行われるＰＥには制限かかけられ、ＰＥ番号（０〜１２７）を５６で割り算した余りが、Ｎ以上のＰＥ番号のＰＥに関してシフト動作が行われる。さらに、異なる主走査ラインデータが記憶されているＰＥ５５からＰＥ５６に対するシフト動作は、常に、行わないように制御され、ＰＥ５５からＰＥ５６にシフトするべきデータに関しては破棄されるように制御されている。この場合には、Ｎ＝０であることより、ＰＥ５５からＰＥ５６へのシフト動作を除いたすべてのＰＥが、内部アドレス６４〜１２７までのデータを隣接ＰＥの内部メモリにシフトする動作を並列で行う。また、隣接画素よりデータシフトを受けたＰＥ１〜ＰＥ５５は、内部メモリ配置の更新を行うように制御される。さらに、ＰＥ５６〜ＰＥ１１１の各ＰＥの動作は、ＰＥ０〜ＰＥ５５の各ＰＥの動作とそれぞれ同一なものとなる。
【００９２】
データシフト前の内部メモリ配置を図１６−１、データシフト後の内部メモリ配置を図１６―２に示す。尚、ここでは、ＰＥ０〜ＰＥ５５までの動作を示しているが、ＰＥ５６〜ＰＥ１１１までの動作も同様に行われる。
【００９３】
図１６―２に示すように、ＰＥ０には、０ライン目の入力画像データの主走査先頭画素である０番目より６３番目までの６４画素分のデータが配置され、ＰＥ１には、６４番目（ＰＥ０：６４）から１９１番目（ＰＥ１：６３）までの１２８画素分のデータが配置される。ここで、ＰＥ１に配置されたＰＥ０：６４のデータは、ＰＥ１が、変倍処理を行う際に最初に参照される入力画素位置となっている。
【００９４】
次に、フローはＳｔｅｐ＿１０３に進み、ここで、Ｎが５４と等しいか否かが判別され、等しくない場合いは、Ｓｔｅｐ＿１０４に進み、Ｎに１を加算して、Ｓｔｅｐ＿１０１に分岐する。Ｓｔｅｐ＿１０１では、上述したのと同様にして、ＰＥ１とＰＥ２におけるＰＨ／８１９２の値が参照され、Ｋ＝１２８−６４＝６４と算出される。次に、Ｓｔｅｐ＿１０２にて、内部アドレス：ＡＤ（＝６４）から１２７までの６４データを隣接ＰＥにシフト移動する動作が行われる。シフト後のデータ配置を図１６−３に示す。以下同様にしてフローを繰り返し、Ｓｔｅｐ＿１０３にてＮ＝５４と等しくなった場合、Ｓｔｅｐ＿１０５にフローが進みフローを終了する。フローを終了した際の内部メモリに設定されたデータ配置を図１６−４に示す。
【００９５】
以上の動作により各ＰＥの内部メモリには、変倍処理を行う際に最初に使用される入力画像データを先頭として、変倍処理後の１２８画素分の画像データを算出するために必要な入力画像データが配置されることになる。
【００９６】
次にフローは、図１１のＳｔｅｐ＿８に進む。ここで、各ＰＥは、上式４に基づいて各ＰＥ毎に算出された初期位相：ＩＰＨＡＳＥと変倍率から算出されたＡＤＤ（４０９６）を使用し、さらに、上式１を用いてｎ＝０〜１２７とすることにより、１２８個の変倍後画像データを算出する。また、各ＰＥは、１２８画素分の変倍後画像データを算出する動作を並列に行い、ＰＥ０は、変倍後画像データの１番目〜１２８番目のデータを算出し、ＰＥ１は、変倍後画像データの１２９番目〜２５６番目のデータを算出するように動作する。図１８に各ＰＥが算出する位相：ＰＨ、および補間係数：αを示す。図１８に示した演算回数：ｎ＝０の場合には、ＰＥ０が変倍後画像データの０番目、ＰＥ１が、１２８×１＝１２８番目、ＰＥ２が、１２８×２＝２５６番目  ……  ＰＥ５５が、１２８×５５＝７０４０番目の算出を並列に算出する動作を同時に行う。さらに、前述したように、ＰＥ０〜ＰＥ５５の各ＰＥに対応するＰＥ５６〜ＰＥ１１１の各ＰＥは、同一のＰＨを算出することにより同一の補間係数を用いた補間演算が並列に行われることになる。また、各ＰＥが１２８回目の補間演算を行う際（図１８のｎ＝１２７）には、ＰＨの上位１４ビット以上で表される入力画像の位置は、各ＰＥの内部メモリに記憶された６４個の入力画像データの６４個番目のデータ位置を示していることより、上式２を用いた変倍後データの算出時には、各ＰＥに記憶された最後の入力画像データと隣接ＰＥに記憶された最初の入力画像データを用いた補間演算が行われることになる。尚、隣接ＰＥの内部メモリの内容をアクセスする際には、前述した図４中のＰＥレジスタが利用されるものである。具体例として、ＰＥ０の場合は、ＰＥ０の内部メモリに記憶された入力画像データの（０、６３）とＰＥ１の内部メモリに記憶された入力画像データの（０、６４）および、補間係数αを用いて以下のように算出される。
Ｘ”（１２７）＝｛Ｘ（６３）×（８１９２−４０９６）＋Ｘ（６４）×４０９６｝／８１９２
尚、前述したように、補間演算に関しては、簡略化して以下のようにしてもよい。
Ｘ”（１２７）＝｛Ｘ（６３）×（１６−８）＋Ｘ（６４）×８｝／１６
Ｓｔｅｐ＿８にて各ＰＥが１２８回の補間演算を行った後の各ＰＥの内部メモリに記憶された変倍後画像データの配置を（Ｘ、Ｙ）“として図１９に示す。図１９に示すように、各ＰＥは、１２８回の変倍補間演算を行い算出された１２８個の変倍後画像データが、各ＰＥの内部メモリに記憶されている。また、図１９に示すように、Ｎ番目のＰＥが１２８回目に算出した変倍後の画像データとＮ＋１番目のＰＥが最初に算出した変倍後画像データは、隣接する画像データとなっている。次にフローは、Ｓｔｅｐ＿９に進み、内部メモリの９０度回転動作を行う。ここの９０度回転動作は、Ｓｔｅｐ＿６にて行った９０度回転動作の逆方向への回転動作となる。図２０に９０度回転動作後の内部メモリ配置を示す。図２０に示すように、主走査方向に変倍された変倍後の画像データが、ＰＥの並び方向に順に配置されている。次にＳｔｅｐ＿１０にて、図２０に示した内部メモリ中の２ライン分の変倍後画像データを外部ワーキングメモリ２１６に転送する動作を行う。次にＳｔｅｐ＿１１にてＳｔｅｐ＿１０にて行ったデータ転送が完了するまで、待機し、転送終了後Ｓｔｅｐ＿１２に進む。本実施例では、主走査２ライン分データを１回のフローで処理していることより、Ｓｔｅｐ＿１２では、ＬＩＮＥに２を加算して、Ｓｔｅｐ＿１３に進む。Ｓｔｅｐ＿１３では、副走査の最終ラインまでの処理が終了した否かが判別され、終了していない場合には、Ｓｔｅｐ＿５に分岐しフローを繰り返す。Ｓｔｅｐ＿１３にて最終ラインまでの処理が終了していると判別さえた場合には、Ｓｔｅｐ＿１４に進み処理を終了する。Ｓｔｅｐ＿１４にフローが至った時のワーキングメモリ２１６のデータ配置を図２１に示す。ワーキングメモリのアドレス０〜２７９５５１には、主走査方向に変倍された０ライン〜４９９１ラインまでの画像データが配置される。
【００９７】
以上のようにして、Ａ４原稿画像１面分である７１６８×４９９２画素の主走査変倍後の画像データが、ワーキングメモリ２１６に記憶されることになる。
【００９８】
ワーキングメモリメモリ２１６に記憶された主走査変倍後の画像データは、図３に示した、演算ユニット３００の外部メモリインターフェース３０６を介して、出力レジスタ３０４に入力される。次ぎに、ワーキングメモリメモリ２１６より読み出された主走査変倍後の画像データは、出力レジスタ３０４からＦＩＦＯメモリ３０７に書き込まれる。ＦＩＦＯ３０７へのデータ書込みと読み出しの関係を図２２に示す。
【００９９】
ＦＩＦＯメモリ３０７は、１ライン分（７１６８画素）の容量を有するラインメモリであり画像処理ユニット３００より出力されるクロックにより、出力レジスタ３０４より出力された画像データをＦＩＦＯメモリ３０７にライトする。リードクロックは、作像エンジン２０５の動作に同期したクロックとなっている。尚、本実施例では、ＦＩＦＯメモリ３０７へのライトクロックが１００ＭＨｚ、リードクロックは、２０ＭＨｚと設定されており、リードクロックに対してライトクロックが高速なものとなっている。ＦＩＦＯメモリ３０７に０画素目の画像データがライトされた後の、リード開始（０）のタイミングより、０画素目の画像データの読み出しが開始される。図１３に示したように、ＦＩＦＯ３０７への主走査変倍後データの書き込みは、１２８画素単位で行われる。また、読み出しは、作像ユニット２０５動作に同期したクロックにより、１ライン毎に連続した画像データとなるように行われる。
【０１００】
ＦＩＦＯ３０７から読み出された主走査変倍後の画像データは、作像ユニット２０５に入力され、作像エンジン２０５入力データに応じたプリント処理を行われることになる。
【０１０１】
以上のようにして、読取ユニット２０１により読み取られたＡ４サイズの原稿画像データの主走査変倍処理が行なわれ、プリント出力が得られることになる。
【０１０２】
［第２の実施例］
第２の実施例では、変倍率として１４１％とした場合に関して説明する。
【０１０３】
上記４式を用いて、Ｍを１４１％（ＡＤＤ＝５８１０）、ＩＰＨＡＳＥ＝０とした場合に算出されたｓｅｐ型変数ＰＨ（ｎ）、および、ＰＨの上位１４ビット以上で表される値より算出した主走査方向の入力画素位置を図２３に示す。
【０１０４】
式４にて算出されるＰＨの値は、変倍後の画像データ１２８画素毎の位相情報を示すものであるが、本実施例では、図２３に示したように、ＰＥ０は、‘０’番目、ＰＥ２は、‘９０’番目、ＰＥ３は、’１８１’番目と示されるように、等間隔となっていない場合の動作を例に説明する。また、前記実施例と同様に、ＰＥ０〜ＰＥ５５に対しては、０ライン目の入力画素位置、ＰＥ５６〜ＰＥ１１１に対しては１ライン目の入力画素位置に対応するＰＨが算出され、これらはそれぞれ等しい値となることは、自明である。
【０１０５】
変倍率１４１％とした場合の動作においても、動作フローは、図１１に従い、図１１中のＳｔｅｐ＿１より、Ｓｔｅｐ＿６までの処理を行う。次にＳｔｅｐ＿７にフローは進む。本実施例では、図２４−１、２、３、４、図１７を用いて図１１中のＳｔｅｐ＿７における画像データの移動に関して説明する。
【０１０６】
図２４は、各ＰＥの内部メモリに記憶されたデータ配置を示し、各ＰＥの対応するアドレスには、図１３に示した入力画像データが記憶されている。図１７のＳｔｅｐ＿１００において、Ｎ＝０に初期化する。Ｓｔｅｐ＿１０１にて、図２３に示した各ＰＥが変倍処理を行うために、ＰＥ（Ｎ＋１）とＰＥ（Ｎ）が最初に参照する入力画素位置の差分をＫとして算出する。ここでは、Ｎ＝０より、ＰＥ１とＰＥ０における値が参照され、Ｋ＝９０−０＝９０と算出される。次にＳｔｅｐ＿１０２にて、内部メモリのアドレスＡＤ＝ＫからＡＤ＝１２７までのデータを隣接ＰＥの内部メモリへシフト動作を行う。この場合には、Ｎ＝０であることより、ＰＥ５５からＰＥ５６へのシフト動作を除いたすべてのＰＥが、内部アドレス９０〜１２７までのデータを隣接ＰＥの内部メモリにシフトする動作を並列で行う。また、隣接画素よりデータシフトを受けたＰＥ１〜ＰＥ５５は、内部メモリ配置の更新を行うように制御される。さらに、ＰＥ５６〜ＰＥ１１１の各ＰＥの動作は、ＰＥ０〜ＰＥ５５の各ＰＥの動作とそれぞれ同一なものとなる。
【０１０７】
データシフト前の内部メモリ配置を図２４−１、データシフト後の内部メモリ配置を図２４―２に示す。図２４―２に示すように、ＰＥ０には、０ライン目の入力画像データの主走査先頭画素である０番目より８９番目までの９０画素分のデータが配置され、ＰＥ１には、ＰＥ０：９０からＰＥ１：８９までの１２８画素分のデータが配置される。ここで、ＰＥ１に配置されたＰＥ０：９０のデータは、ＰＥ１が、変倍処理を行う際に最初に参照される入力画素位置となっている。
【０１０８】
次に、フローはＳｔｅｐ＿１０３に進み、ここで、Ｎが５４と等しいか否かが判別され、等しくない場合いは、Ｓｔｅｐ＿１０４に進み、Ｎに１を加算して、Ｓｔｅｐ＿１０１に分岐する。Ｓｔｅｐ＿１０１では、上述したのと同様にして、ＰＥ１とＰＥ２におけるＰＨ／８１９２の値が参照され、Ｋ＝１８１−９０＝９１と算出される。次に、Ｓｔｅｐ＿１０２にて、内部アドレス：ＡＤ（＝９１）から１２７までのデータを隣接ＰＥにシフト移動する動作が行われる。シフト後のデータ配置を図２４−３に示す。以下同様にしてフローを繰り返し、Ｓｔｅｐ＿１０３にてＮ＝５４と等しくなった場合、Ｓｔｅｐ＿１０５にフローが進みフローを終了する。フローを終了した際の内部メモリに設定されたデータ配置を図２４−４に示す。
【０１０９】
以上の動作により各ＰＥの内部メモリには変倍処理後の１２８画素分の画像データを算出するために必要な入力画像データが配置され、本実施例では、配置された入力画像データの数がＰＥにより異なっている例を示している。上述したように、各ＰＥに配置される入力画像データの数は、変倍率に応じて算出されるものであり、本実施例の変倍率とは、異なる変倍率を適用した場合であっても、上述したのと同様にして各ＰＥの内部メモリに、入力データの配置を行うことが可能なことは、自明である。
【０１１０】
次にフローは、図１１のＳｔｅｐ＿８に進み、各ＰＥが１２８回の補間演算を行い変倍処理後の画像データの算出を行うが、以下の動作は、前述した実施例と同様となることより、説明を省略する。
【０１１１】
［第３の実施例］
本実施例では、変倍率が１００％以下の縮小処理を行う場合の実施例に関して説明する。
【０１１２】
図２５にＭ＝５０％、初期位相＝４０９６の場合に関して具体例を説明する。
【０１１３】
図２５に示した値は、上記式１に基づいて、ＡＤＤ＝（８１９２／５０）×１００＝１６３８４、初期位相＝４０９６として算出されたものであり、変倍後の画素位置：ｎに対応した、変倍後の画像データの位相：ＰＨを示している。また、前述したのと同様にして、算出された位相：ＰＨを８１９２で割り算した商：ｐ（ＰＨの１４ビット以上の部分）は、入力画像データの画素位置に相当し、余り：α（ＰＨの下位１３ビット）は、１画素を８１９２分割した際の位相を示している。さらに、αの上位４ビットを補間係数Ｋとして示している。
【０１１４】
次に、図３中のデータ演算処理部３０３を用いて、主走査方向に５０％の縮小変倍を行う場合の動作を図２６のフローを用いて説明する。図１１のフローの説明と重複する部分に関しては説明を簡略化する。
【０１１５】
図２６中Ｓｔｅｐ＿２０１にて、図３中の制御プロセッサ部は、変倍率Ｍ％に基づいて、上記式１に示した加算値：ＡＤＤ（ｎ型変数）を算出する。本実施例では、Ｍ＝５０％とするため、ＡＤＤ＝（８１９２／５０）×１００＝１６３８４となる。次にＳｔｅｐ＿２０２にて、初期位相：ＩＰＨＡＳＥ（ｎ型変数）を設定する。本実施例では、ＩＰＨＡＳＥ＝４０９６とする。次に、Ｓｔｅｐ＿２０３にて各ＰＥが変倍後の画像データとして算出する出力画素数ＰＮおよび、各ＰＥが変倍補間処理を行う際に、最初に使用する初期位相：ＰＨを算出する。ＰＮ、ＰＨは、前述した各ＰＥが独立に有するｓｅｐ型変数となる。出力画素数ＰＮ、および、初期位相：ＰＨの算出方法に関しては、下記に詳述する。次にＳｔｅｐ＿２０４にて、処理した主走査ライン数を計数するためのカウンタ変数：ＬＩＮＥ（ｎ型変数）を‘０’に初期化する。
【０１１６】
次に、フローはＳｔｅｐ＿２０５に進み、変数ＬＩＮＥで示される主走査ラインデータより２ライン分のデータをデータ演算処理部３０３の各ＰＥが有するメモリ４１１に転送した後Ｓｔｅｐ＿２０６にて各ＰＥが有する内部メモリのデータを９０度回転させる。９０度回転後の入力画像データの配置は、図１３に示されているとおりである。
【０１１７】
ここで、上記Ｓｔｅｐ＿２０３における各ＰＥの出力画素数：ＰＮと初期位相ＰＨの算出方法に関して説明する。図１３に示すように、ＰＥ０〜ＰＥ５５までには、０ライン目の入力画像データが記憶され、ＰＥ５６〜ＰＥ１１１には、１ライン目の入力画像データが配置され、各ＰＥそれぞれは、内部メモリアドレス：０〜１２７までに、１２８バイト分の入力データが配置される。各ＰＥの内部メモリアドレス０に記憶された入力画像データを用いて算出される変倍後の画像データの位置：Ｐは、式１を変形して以下のように算出される。
Ｐ（ＰＥｎｏ）＝｛１２８×８１９２×（ＰＥＮｏ％５６）−初期位相（ＩＰＨＡＳＥ）｝／ＡＤＤ              ……    （式５）
少数点以下切り上げ、但し、マイナス時は、０とする。
ＰＥＮｏは、各ＰＥの番号を示し、０、１、２、〜１２７、
Ｘ％５６はＸを５６で割り算した余りを示す。
【０１１８】
また、上記で算出したＰを用いて、各ＰＥが算出する変倍後の出力画素数：ＰＮは以下のように算出される。
ＰＮ（ＰＥｎｏ）＝Ｐ（ＰＥｎｏ＋１）−Ｐ（ＰＥｎｏ）    ……    （式６）
但し、ＰＥＮｏ％５６＝５５の場合は、
ＰＮ（ＰＥｎｏ）＝（１２８×８１９２×５６−初期位相）／８１９２−Ｐ（ＰＥｎｏ）
さらに、各ＰＥが変倍処理を行う場合の初期位相：ＰＨは、以下のように算出される。
ＰＨ（ＰＥｎｏ）＝ＡＤＤ×Ｐ（ＰＥｎｏ）＋ＩＰＨＡＳＥ    ……    （式７）
式５、６、７を用いて算出した各ＰＥにおけるＰ、ＰＮ、ＰＨの値を各ＰＥ毎に図２７に示す。
【０１１９】
さらに、ＰＨの上位１４ビット以上の値として、ＰＨ／８１９２とした値を図２７に示す。
【０１２０】
これは、前述したように、変倍後データを算出する際に参照される入力画像データの位置を示す値である。さらに、補間係数として、ＰＨを８１９２で割り算した余りの上位４ビットを図２７に示す。尚、前述したように、ＰＥ５６〜ＰＥ１１１の各ＰＥの動作は、ＰＥ０〜ＰＥ５５の動作と同一となるため、説明を省略する。
【０１２１】
次にフローは、Ｓｔｅｐ＿２０７に進み、各ＰＥは、ＰＮ回の補間演算を行い、ＰＮ個の変倍後画像データを算出する。
【０１２２】
各ＰＥは図２７に示したＰＨの値を初期位相として、ＡＤＤ＝（８１９２／５０）×１００＝１６３８４として、上式１を用いてｎ＝０、２・・・・（ＰＮ−１）まで、変化させながらＰＨを算出し、参照する入力画像データの位置、および、補間係数を算出し、ＰＮ個の変倍後画像データの算出を行う。また、各ＰＥは、上記、ＰＮ画素分の変倍後画像データを算出する動作を並列に行い、ＰＥ０は、変倍後画像データの０番目〜６３番目のデータを算出し、ＰＥ１は、変倍後画像データの６４番目〜１２７番目のデータを算出するように動作する。
【０１２３】
図２８に各ＰＥが算出する位相：ＰＨ、および補間係数：αを示す。但し、補間係数は１画素間隔を８１９２分割した場合の位相で示されている。図２８に示した演算回数：ｎ＝０の場合には、ＰＥ０が変倍後画像データの０番目、ＰＥ１が、６４番目、ＰＥ２が、１２８番目  ……  ＰＥ５５が、３５２０番目を並列に算出する動作を行う。さらに、前述したように、ＰＥ０〜ＰＥ５５の各ＰＥに対応するＰＥ５６〜ＰＥ１１１の各ＰＥは、同一のＰＨを算出することにより同一の補間係数を用いた補間演算が並列に行われることになる。
【０１２４】
Ｓｔｅｐ＿２０７にて各ＰＥがＰＮ回の補間演算を行った後の各ＰＥの内部メモリに記憶された変倍後画像データの配置を（Ｘ、Ｙ）”として図２９に示す。図２９に示すように、各ＰＥが、ＰＮ回の変倍補間演算を行い算出したＰＮ個の変倍後画像データが、各ＰＥの内部メモリに記憶されている。
【０１２５】
次にフローはＳｔｅｐ＿２０８に進み、ここで、各ＰＥの変倍後データ量が、１２８個となるように、データの移動を行う。この動作を図３０−１、２、３、４、５と図３１に示す動作フローを用いて説明する。図３０−１は、Ｓｔｅｐ＿２０７終了時の各ＰＥの内部メモリに配置された変倍後のデータを示し、各ＰＥには、それぞれＰＮ個の変倍後データが記憶されている。図３１のＳｔｅｐ＿３００において、Ｎ＝０に初期化し、Ｓｔｅｐ＿３０１に進む。Ｓｔｅｐ＿３０１では、Ｎで指定されるＰＥが有する変倍後のデータ数をＰＮ（Ｎ）と１２８との差分であるＫを算出する。Ｎ＝０の場合には、ＰＥ０の変倍後のデータ数が、‘６４’であることより、Ｋ＝１２８−６４＝６４と算出される。
【０１２６】
次に、Ｓｔｅｐ＿３０２にて、Ｋが‘０’か否かが判別され、‘０’でない場合には、Ｓｔｅｐ＿３０３に進む。Ｓｔｅｐ＿３０３にて、隣接ＰＥが有する変倍後画像データの先頭アドレスデータの移動を行う。但し、ＰＥ番号（０〜１２７）がＮ％５６（Ｎを５６で割り算した余り）以上のＰＥに関してシフト動作が行われるように制御される。
【０１２７】
図３０−１に示すように、Ｎ＝０の場合には、ＰＥ１の内部メモリに記憶されているＰＥ１：０のデータが、ＰＥ０の内部メモリに記憶されている最終変倍後画像データであるＰＥ０：６３の次のアドレスに移動される。尚、この動作は、Ｎ％５６（Ｎを５６で割り算した余り）以上のＰＥ番号で示されるＰＥに対して並列に行われるように制御されることより、ＰＥ１の最終変倍後画像データであるＰＥ１：６３の次のアドレスに、ＰＥ２の変倍後先頭データであるＰＥ２：０の移動が行われ、同様に、ＰＥ２：６３の次には、ＰＥ３：０が移動し、ＰＥ５４：６３の次には、ＰＥ５５：０が移動する動作が同時に行われる。但し、異なる主走査ラインデータが記憶されているＰＥ５６からＰＥ５５に対するシフト動作は、常に行わないように制御されている。この場合には、Ｎ＝０であることより、ＰＥ５６からＰＥ５５へのシフト動作を除いたすべてのＰＥが、内部アドレス６４の位置に、隣接するＰＥの内部メモリアドレス０のデータの移動が行われることになる。また、隣接画素にデータシフトを行った、ＰＥ１〜ＰＥ５５、ＰＥ５７〜ＰＥ１１１は、内部メモリ配置の更新を行い、それぞれの内部メモリの内容をシフトし、ＰＥ１；１、ＰＥ２：１…ＰＥ５５：１、ＰＥ５７：１…ＰＥ１１１：１を各ＰＥの内部メモリの先頭アドレスデータとする。
【０１２８】
次に、Ｓｔｅｐ＿３０３は、変数Ｋの値を１減算して、Ｓｔｅｐ＿３０２に分岐し、フローを繰り返す。Ｓｔｅｐ＿３０２にて、Ｋ＝０と判別されると、フローは、Ｓｔｅｐ＿３０４に分岐する。図３０−２に、Ｓｔｅｐ＿３０４にフローが分岐した場合の各ＰＥの内部メモリ配置を示す。尚、ＰＥ５６〜ＰＥ１１１の動作は、ＰＥ０〜ＰＥ５５と同様の動作となるため、図示および、説明を省略する。図３０−２に示すとおり、ＰＥ０の内部メモリには、変倍後の画像データが、１２８画素分記憶され、ＰＥ１〜ＰＥ５４には、隣接ＰＥより移動した、変倍後画像データが、配置されている。
【０１２９】
次にＳｔｅｐ＿３０４にて、Ｎが、‘５４’か否かが判別され、‘５４’に等しくない場合には、Ｓｔｅｐ＿３０５に進み、Ｎに１を加算して、Ｓｔｅｐ＿３０１に分岐する。Ｓｔｅｐ＿３０１では、上述したのと同様にして、Ｋ＝１２８−ＰＮ（１）を算出する。この場合には、Ｐ１の変倍後のデータ数が、‘６４’であることより、ＰＮ（１）＝６４となり、Ｋ＝１２８−６４＝６４として算出される。以下同様にして、フローを繰り返す。図３０−３にＮ＝１の時に、Ｓｔｅｐ３０４にフローが至った場合の内部メモリ配置を示す。さらに、フローを繰り返し、Ｓｔｅｐ＿３０４にて、Ｎ＝５４と判別されると、Ｓｔｅｐ＿３０６にフローは至り処理を終了する。Ｓｔｅｐ＿３０６にフローが至った場合の内部メモリのデータ配置を図３０−４に示す。さらに、図３０−４では、内部メモリに配置された変倍後画像データの表示をその変倍後画像データを算出したＰＥ番号と、算出した順番（メモリアドレス）にて示しているが、これを、対応する変倍後画像データの位相として示した図を図３０−５に示す。図３０−５に示すとおり、図３１のフローが終了すると、各ＰＥの内部メモリには、それぞれ１２８個づつの変倍後画像データが、連続して配置されていることになる。尚、本実施例では、変倍率が５０％としていることより、変倍後の有効データは入力画像データ数の１／２となり、ＰＥ０〜ＰＥ２７、ＰＥ５６〜ＰＥ８３の内部メモリに記憶されている。以上のように、図２６におけるＳｔｅｐ＿２０８の動作を終了すると、フローは、図２６のＳｔｅｐ＿２０９に進む。
【０１３０】
Ｓｔｅｐ＿２０９では、内部メモリの９０度回転動作を行う。ここの９０度回転動作は、Ｓｔｅｐ＿２０６にて行った９０度回転動作の逆方向への回転動作となる。図３２に９０度回転動作後の内部メモリ配置を示す。次にＳｔｅｐ＿２１０にて、図３２に示した内部メモリ中の２ライン分の変倍後画像データを外ワーキングメモリ２１６に転送する動作を行う。次にＳｔｅｐ＿２１１にてＳｔｅｐ＿２１０にて行ったデータ転送が完了するまで、待機し、転送終了後Ｓｔｅｐ＿２１２に進む。本実施例では、主走査２ライン分データを１回のフローで処理していることより、Ｓｔｅｐ＿２１２では、ＬＩＮＥに２を加算して、Ｓｔｅｐ＿２１３に進む。Ｓｔｅｐ＿２１３では、副走査の最終ラインまでの処理が終了した否かが判別され、終了していない場合には、Ｓｔｅｐ＿２０５に分岐しフローを繰り返す。Ｓｔｅｐ＿２１３にて最終ラインまでの処理が終了していると判別さえた場合には、Ｓｔｅｐ＿２１４に進み処理を終了する。以上のようにして、Ａ４原稿画像１面分である７１６８×４９９２画素の主走査変倍後の画像データが、ワーキングメモリ２１６に記憶されることになる。以下の動作は、前記実施例と同様となるため、説明を省略する。
【０１３１】
［第４の実施例］
本実施例では、変倍率＝３３％、初期位相＝０の場合に関して具体例を説明する。
【０１３２】
第３の実施例と同様にして、ＡＤＤ＝（８１９２／３３）×１００＝２４８２４、初期位相＝０として、式５、６、７を用いて算出した各ＰＥにおけるＰ、ＰＮ、ＰＨおよび、ＰＨ／８１９２、補間係数の値を各ＰＥ毎に図３３に示す。
【０１３３】
前述したように、縮小変倍動作は、図２６のフローに従って、制御されるが、Ｓｔｅｐ＿２０７において、各ＰＥが、ＰＮ回の補間演算を行う。図３３に示したとおり、本実施例では、ＰＥ０は、４３回、ＰＥ１は、４２回の補間演算を行うことになる。
【０１３４】
また、Ｓｔｅｐ＿２０７では、各ＰＥは、ＰＮ回の補間演算を行い、ＰＮ個の変倍後画像データを算出する。
【０１３５】
各ＰＥは図３３に示したＰＨの値を初期位相として、ＡＤＤ＝（８１９２／５０）×１００＝１６３８４として、上式１を用いてｎ＝０、２・・・・（ＰＮ−１）まで、変化させながらＰＨを算出し、参照する入力画像データの位置、および、補間係数を算出し、ＰＮ個の変倍後画像データの算出を行う。また、各ＰＥは、上記、ＰＮ画素分の変倍後画像データを算出する動作を並列に行い、ＰＥ０は、変倍後画像データの０番目〜４２番目のデータを算出し、ＰＥ１は、変倍後画像データの４３番目〜８４番目のデータを算出するように動作する。
【０１３６】
図３３に示したように、各ＰＥが最初の変倍後データを算出する際には、ＰＥ０が変倍後画像データの０番目、ＰＥ１が、４３番目、ＰＥ２が、８５番目  ……  ＰＥ５５が、２３２４番目を並列に算出する動作を行う。また、このとき各ＰＥが参照する入力画像の位置（ＰＨ／８１９２）は、ＰＥ０が、‘０’番目に対して、ＰＥ１は、‘１３０’番目となる。これは、ＰＥ１の内部メモリのアドレス２番目の位置に記憶された入力データとなっている。
【０１３７】
このように、変倍率３３％の場合には、各ＰＥが補間演算を行う際の内部メモリのアクセス番地が、それぞれのＰＥで異なるように制御されているものである。さらに、補間係数に関しても同様に、各ＰＥで異なる値が用いられる。
【０１３８】
Ｓｔｅｐ＿２０７にて各ＰＥがＰＮ回の補間演算を行った後の各ＰＥの内部メモリに記憶された変倍後画像データの配置を図３４−１に示す。図３４−１に示すように、各ＰＥは、ＰＮ回の変倍補間演算を行い算出されたＰＮ個の変倍後画像データが、各ＰＥの内部メモリに記憶されている。次にフローはＳｔｅｐ＿２０８に進み、図３１に示したフローに従って、各ＰＥの変倍後データ量が、１２８個となるように、データの移動を行う。図３１のフローにおいて、Ｎ＝０の場合には、前述したのと同様にして、まず隣接ＰＥからＫ＝１２８−ＰＮ（０）＝１２８−４３＝８５個のデータ移動が行なわれる。図３４−２に隣接ＰＥから８５個のデータ移動を行った後の内部メモリ配置を示す。
【０１３９】
以下同様にして、各ＰＥの内部メモリのデータ量が１２８個になるように、データの移動が行なわれるように制御され、図２６のＳｔｅｐ＿２０９以降のフローに従って制御が行なわれる。以下の動作は、前述したもの同様となるため、説明を省略する。
【図面の簡単な説明】
【０１４０】
【図１】本実施の形態にかかる画像処理装置の構成を機能的に示すブロック図
【図２】本実施の形態にかかる画像処理装置のハードウエア構成の一例を示すブロック図
【図３】画像処理プロセッサ部２０４の構成を説明するための図
【図４】ＳＩＭＤ型プロセッサを構成するデータ演算処理部３０３を含む演算処理ユニット３００の概略ブロック
【図５】図２中の読取ユニット２０１より出力されるＡ４原稿画像データ配置を示す図
【図６】ＦＩＦＯメモリ３０１の動作の概要図
【図７】ワーキングメモリ２１６に記憶された画像データとワーキングメモリのアドレスとの関係を模式的に示した図
【図８】Ｍ＝２００％、初期位相＝０の場合の処理の一例を示した図
【図９】Ｍ＝２００％、初期位相＝２０４８の場合の処理の一例を示した図
【図１０】変倍率１４１％（Ａ４→Ａ３）の場合の処理の一例を示した図
【図１１】主走査方向の拡大変倍を行う場合の動作を示すフロー図
【図１２】ＰＥが有する内部メモリに転送された入力画像データの配置を示す図
【図１３】９０度回転後の入力画像データの配置を示す図
【図１４】Ｍを２００％、ＩＰＨＡＳＥ＝０とした場合に算出されたｓｅｐ型変数ＰＨ（ｎ）の例を示す図
【図１５】各ＰＥ毎に算出されたＰＨより求められた主走査方向の入力画素位置を示す図
【図１６−１】データシフト前の内部メモリ配置を示す図
【図１６−２】データシフト後の内部メモリ配置を示す図
【図１６−３】フローを終了した際の内部メモリに設定されたデータ配置を示す図
【図１６−４】隣接ＰＥにシフト後のデータ配置を示す図
【図１７】Ｓｔｅｐ＿１００において、Ｎ＝０に初期化した場合を示す図
【図１８】各ＰＥが算出する位相：ＰＨ、および補間係数：αを示す図
【図１９】各ＰＥが１２８回の補間演算を行った後の各ＰＥの内部メモリに記憶された変倍後画像データの配置を示す図
【図２０】９０度回転動作後の内部メモリ配置を示す図
【図２１】Ｓｔｅｐ＿１４にフローが至った時のワーキングメモリ２１６のデータ配置を示す図
【図２２】ＦＩＦＯ３０７へのデータ書込みと読み出しの関係を示す図
【図２３】第２の実施例における、Ｍを１４１％（ＡＤＤ＝５８１０）、ＩＰＨＡＳＥ＝０とした場合に算出されたｓｅｐ型変数ＰＨ（ｎ）、および、ＰＨの上位１４ビット以上で表される値より算出した主走査方向の入力画素位置を示す図
【図２４−１】第２の実施例における各ＰＥの内部メモリのデータシフト前の配置を示す図
【図２４−２】データシフト後の内部メモリ配置を示す図
【図２４−３】シフト後のデータ配置を示す図
【図２４−４】フローを終了した際の内部メモリに設定されたデータ配置を示す図
【図２５】第３の実施例における、Ｍ＝５０％、初期位相＝４０９６の場合を示す図
【図２６】第３の実施例における、主走査方向に５０％の縮小変倍を行う場合の動作フロー図
【図２７】第３の実施例における、補間係数として、ＰＨを８１９２で割り算した余りの上位４ビットを示す図
【図２８】第３の実施例における、各ＰＥが算出する位相：ＰＨ、および補間係数：αを示す図
【図２９】第３の実施例における、各ＰＥがＰＮ回の補間演算を行った後の各ＰＥの内部メモリに記憶された変倍後画像データの配置を示す図
【図３０−１】Ｓｔｅｐ＿２０７終了時の各ＰＥの内部メモリに配置された変倍後のデータを示す図
【図３０−２】Ｓｔｅｐ＿３０４にフローが分岐した場合の各ＰＥの内部メモリ配置を示す図
【図３０−３】Ｎ＝１の時に、Ｓｔｅｐ３０４にフローが至った場合の内部メモリ配置を示す図
【図３０−４】Ｓｔｅｐ＿３０６にフローが至った場合の内部メモリのデータ配置を示す図
【図３０−５】対応する変倍後画像データの位相として示した図
【図３１】第３の実施例における動作フローを示す図
【図３２】９０度回転動作後の内部メモリ配置を示す図
【図３３】第４の実施例における、各ＰＥにおけるＰ、ＰＮ、ＰＨおよび、ＰＨ／８１９２、補間係数の値を各ＰＥ毎に示した図
【図３４−１】Ｓｔｅｐ＿２０７にて各ＰＥがＰＮ回の補間演算を行った後の各ＰＥの内部メモリに記憶された変倍後画像データの配置を示す図
【図３４−２】隣接ＰＥから８５個のデータ移動を行った後の内部メモリ配置を示す図
【符号の説明】
【０１４１】
１００  画像データ制御ユニット
１０１  画像データ入力ユニット
１０２  画像メモリ制御ユニット
１０３  画像処理ユニット
１０４  画像書込ユニット
２０１  読取ユニット
２０２  ＰＤＬ処理ユニット
２０３  画像データ制御部
２０４  画像処理プロセッサ
２０５  作像ユニット
２０６  メモリ制御部
２０７  メモリモジュール
２０８  制御用データバス
２０９  システムコントローラ
２１０  ＲＯＭ
２１１  ＲＡＭ
２１２  操作パネル
２１３  ネットワーク
２１４  ネットワーク制御部
２１６  ワーキングメモリ
２１５  パーソナルコンピュータ
３００  演算処理ユニット
３０１、３０７  ＦＩＦＯメモリ
３０２  入力レジスタ
３０３  データ演算処理部
３０４  出力レジスタ
３０５  制御プロセッサ部
３０６  外部メモリインターフェース
３０８  ＳＩＭＤプロセッサ
４０１  制御プロセッサ
４０２  プログラムメモリ
４０３  データメモリ
４０５  演算ユニット（ＡＬＵ）
４０６  汎用レジスタ
４０７  マスクレジスタ
４０８  ＰＥレジスター
４０９  出力レジスタ
４１０  入力レジスタ
４１１  メモリ
４１３  命令供給バス
４１４  メモリ／レジスタアクセスバス
【図１】
2005269502.tif 000003
【図２】
2005269502.tif 000004
【図３】
2005269502.tif 000005
【図４】
2005269502.tif 000006
【図５】
2005269502.tif 000007
【図６】
2005269502.tif 000008
【図７】
2005269502.tif 000009
【図８】
2005269502.tif 000010
【図９】
2005269502.tif 000011
【図１０】
2005269502.tif 000012
【図１１】
2005269502.tif 000013
【図１２】
2005269502.tif 000014
【図１３】
2005269502.tif 000015
【図１４】
2005269502.tif 000016
【図１５】
2005269502.tif 000017
【図１７】
2005269502.tif 000018
【図１８】
2005269502.tif 000019
【図１９】
2005269502.tif 000020
【図２０】
2005269502.tif 000021
【図２１】
2005269502.tif 000022
【図２２】
2005269502.tif 000023
【図２３】
2005269502.tif 000024
【図２４−４】
2005269502.tif 000025
【図２５】
2005269502.tif 000026
【図２６】
2005269502.tif 000027
【図２７】
2005269502.tif 000028
【図２８】
2005269502.tif 000029
【図２９】
2005269502.tif 000030
【図３０−４】
2005269502.tif 000031
【図３０−５】
2005269502.tif 000032
【図３１】
2005269502.tif 000033
【図３２】
2005269502.tif 000034
【図３３】
2005269502.tif 000035
【図３４−１】
2005269502.tif 000036
【図３４−２】
2005269502.tif 000037
【図１６−１】
2005269502.tif 000038
【図１６−２】
2005269502.tif 000039
【図１６−３】
2005269502.tif 000040
【図１６−４】
2005269502.tif 000041
【図２４−１】
2005269502.tif 000042
【図２４−２】
2005269502.tif 000043
【図２４−３】
2005269502.tif 000044
【図３０−１】
2005269502.tif 000045
【図３０−２】
2005269502.tif 000046
【図３０−３】
2005269502.tif 000047