(57)【要約】【課題】有効画素数に依存せずにディザマトリクスのマトリクスサイズを設定することができる画像処理プロセッサの制御方法を提供すること。【解決手段】第１の特定レジスタから第２の特定レジスタまでの各レジスタよりなる第１の無効レジスタ列、第３の特定レジスタから第４の特定レジスタまでの各レジスタよりなる有効レジスタ列および第５の特定レジスタから第６の特定レジスタまでの各レジスタよりなる第２の無効レジスタ列よりなる閾値用レジスタ列の各レジスタに格納された閾値データが、各閾値データに基づいた処理が画素データ列の各画素データに施されるごとに、処理前に第５の特定レジスタに格納された閾値データと処理後に第３の特定レジスタに格納される閾値データとが一致するように各閾値データを移動させる。【選択図】　図８
2004133859.tif 000002
【特許請求の範囲】
【請求項１】
第１の特定レジスタから第２の特定レジスタまでの各レジスタよりなる第１の無効レジスタ列、第３の特定レジスタから第４の特定レジスタまでの各レジスタよりなる有効レジスタ列および第５の特定レジスタから第６の特定レジスタまでの各レジスタよりなる第２の無効レジスタ列よりなる閾値用レジスタ列の各レジスタに、所定の順番で並べられた所定の個数の閾値データよりなる閾値データ列の各閾値データを前記第１の特定レジスタから前記第６の特定レジスタまで前記所定の順番の通りに繰り返し格納する閾値格納工程と、
所定数の画素データよりなる画素データ列の各画素データを前記有効レジスタ列と対応する画素データ用レジスタ列の各レジスタに主操作方向へ順番に格納する画素データ格納工程と、
前記画素データ用レジスタ列の各レジスタに格納された各画素データと前記画素データ用レジスタ列の各レジスタのそれぞれに対応する前記閾値用レジスタ列の各レジスタに格納された各閾値データとを比較して、画素データごとに画素データが閾値データよりも大きいか否かを判定するデータ判定工程と、
前記閾値用レジスタ列の各レジスタに格納されている各閾値データを前記閾値用レジスタ列の他のレジスタにそれぞれ移動する閾値移動工程と、を備え、
前記閾値移動工程における閾値データの移動が、前記閾値移動工程の直前に前記第５の特定レジスタに格納された閾値データと前記閾値移動工程の直後に前記第３の特定レジスタに格納される閾値データとが一致し、かつ、各閾値データの並ぶ順番が維持されるように行われるようにしたことを特徴とする画像処理プロセッサの制御方法。
【請求項２】
前記閾値移動工程が、
前記閾値移動工程の行われた回数を表す工程回数値を計数する工程計数ステップと、
前記工程回数値に応じて各閾値データを、現在閾値データを格納しているレジスタから第１の特定レジスタ側に向かって予め定められた第１の所定数だけ隣に位置するレジスタに移動させる第１の移動ステップと、
前記工程回数値に応じて各閾値データを、現在閾値データを格納しているレジスタから第６の特定レジスタ側に向かって予め定められた第２の所定数だけ隣に位置するレジスタに移動させる第２の移動ステップと、を備え、
前記第１の所定数および前記第２の所定数が、前記閾値データ列の閾値データの個数に応じて前記工程回数値ごとに定められているようにしたことを特徴とする請求項１に記載の画像処理プロセッサの制御方法。
【請求項３】
前記閾値移動工程が、
前記閾値移動工程の行われた回数を表す工程回数値を計数する工程計数ステップと、
前記工程回数値に応じて各閾値データを移動させる移動量を表す移動量データを呼出す移動量データ呼出ステップと、
前記移動量データが負の数であるか正の数であるかを判定する移動量データ判定ステップと、
前記移動量データ判定ステップによって前記移動量データが正の数であると判定された場合に各閾値データを現在閾値データを格納しているレジスタから第１の特定レジスタ側に向かって１つ隣に位置するレジスタに移動させる第１の移動ステップと、
前記第１の移動ステップの直後に前記第１の移動ステップが行われた回数を表す第１の移動回数値を１デクリメントする第１の移動計数ステップと、
前記第１の移動回数値と前記移動量データとが一致しているか否かを判定する第１の移動回数値判定ステップと、
前記移動量データ判定ステップによって前記移動量データが正の数であると判定された場合に各閾値データを現在閾値データを格納しているレジスタから第６の特定レジスタ側に向かって１つ隣に位置するレジスタに移動させる第２の移動ステップと、
前記第２の移動ステップの直後に前記第２の移動ステップが行われた回数を表す第２の移動回数値を１インクリメントする第２の移動計数ステップと、
前記第２の移動回数値と前記移動量データとが一致しているか否かを判定する第２の移動回数値判定ステップと、を備え、
前記第１の移動回数値判定ステップによって前記第１の移動回数値と前記移動量データとが一致していると判定されるまで前記第１の移動ステップと前記第１の移動計数ステップとを繰り返し、
前記第２の移動回数値判定ステップによって前記第２の移動回数値と前記移動量データとが一致していると判定されるまで前記第２の移動ステップと前記第２の移動計数ステップとを繰り返し、
前記移動量データが、前記閾値データ列の閾値データの個数に応じて前記工程回数値ごとに定められているようにしたことを特徴とする請求項１に記載の画像処理プロセッサの制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ディザ処理を行う画像処理プロセッサの制御方法に関するものである。
【０００２】
【従来の技術】
従来、この種の画像処理プロセッサによるディザ処理の制御方法は、画像処理プロセッサにディザマトリクスと呼ばれる閾値データを格納し、画像データの各画素データとディザマトリクスの各閾値データとを比較することによって行われる。このとき、画像処理プロセッサにおいて、一回に処理することができる画素データの数は有効画素数と呼ばれ、ディザマトリクスのマトリクスサイズは、有効画素数の素因数となるように設定されていた（例えば、特許文献１の００９６項を参照）。
【０００３】
このように、ディザマトリクスのマトリクスサイズを有効画素数の素因数となるように設定することによって、各画素データにディザ処理を施すディザマトリクスの連続性が保たれ、ディザ処理演算が円滑に行われていた。
【０００４】
【特許文献１】
特開２００１−１２６０５７号公報
【０００５】
【発明が解決しようとする課題】
しかしながら、このような従来の画像処理プロセッサの制御方法では、上述した有効画素数はプロセッサの設計時に予め設定されるものであり、プログラム等で変更することができるものではないため、ディザマトリクスのマトリクスサイズを有効画素数の素因数とならないように設定すると、有効画素数分の画素データに処理されるディザマトリクスが、有効画素数分の画素データの切れ目ごとにその連続性に不整合が発生する。このため、ディザマトリクスを変更するときには、必ず、ディザマトリクスのマトリクスサイズを有効画素数の素因数となるように設定しなければならない。つまり、有効画素数に依存せずにディザマトリクスのマトリクスサイズを設定することができないという問題があった。
【０００６】
本発明はこのような問題を解決するためになされたもので、有効画素数に依存せずにディザマトリクスのマトリクスサイズを設定することができる画像処理プロセッサの制御方法を提供するものである。
【０００７】
【課題を解決するための手段】
本発明の画像処理プロセッサの制御方法は、第１の特定レジスタから第２の特定レジスタまでの各レジスタよりなる第１の無効レジスタ列、第３の特定レジスタから第４の特定レジスタまでの各レジスタよりなる有効レジスタ列および第５の特定レジスタから第６の特定レジスタまでの各レジスタよりなる第２の無効レジスタ列よりなる閾値用レジスタ列の各レジスタに、所定の順番で並べられた所定の個数の閾値データよりなる閾値データ列の各閾値データを前記第１の特定レジスタから前記第６の特定レジスタまで前記所定の順番の通りに繰り返し格納する閾値格納工程と、所定数の画素データよりなる画素データ列の各画素データを前記有効レジスタ列と対応する画素データ用レジスタ列の各レジスタに主操作方向へ順番に格納する画素データ格納工程と、前記画素データ用レジスタ列の各レジスタに格納された各画素データと前記画素データ用レジスタ列の各レジスタのそれぞれに対応する前記閾値用レジスタ列の各レジスタに格納された各閾値データとを比較して、画素データごとに画素データが閾値データよりも大きいか否かを判定するデータ判定工程と、前記閾値用レジスタ列の各レジスタに格納されている各閾値データを前記閾値用レジスタ列の他のレジスタにそれぞれ移動する閾値移動工程と、を備え、前記閾値移動工程における閾値データの移動が、前記閾値移動工程の直前に前記第５の特定レジスタに格納された閾値データと前記閾値移動工程の直後に前記第３の特定レジスタに格納される閾値データとが一致し、かつ、各閾値データの並ぶ順番が維持されるように行われるようにした構成を有している。
【０００８】
この構成により、ディザマトリクスのマトリクサイズが画像処理プロセッサでディザ処理を行うときに、ディザマトリクスのマトリクスサイズが有効画素数の素因数ではない場合に、プログラムＲＡＭにディザマトリクスのマトリクスサイズに応じた閾値データの移動の手順のプログラムを予め格納して、円滑に閾値データの移動を行うことができる。
【０００９】
また、本発明の画像処理プロセッサの制御方法は、請求項１において、前記閾値移動工程が、前記閾値移動工程の行われた回数を表す工程回数値を計数する工程計数ステップと、前記工程回数値に応じて各閾値データを、現在閾値データを格納しているレジスタから第１の特定レジスタ側に向かって予め定められた第１の所定数だけ隣に位置するレジスタに移動させる第１の移動ステップと、前記工程回数値に応じて各閾値データを、現在閾値データを格納しているレジスタから第６の特定レジスタ側に向かって予め定められた第２の所定数だけ隣に位置するレジスタに移動させる第２の移動ステップと、を備え、前記第１の所定数および前記第２の所定数が、前記閾値データ列の閾値データの個数に応じて前記工程回数値ごとに定められているようにした構成を有している。
【００１０】
この構成により、請求項１に記載の閾値移動工程において、ディザマトリクスのマトリクサイズが画像処理プロセッサでディザ処理を行うときに、ディザマトリクスのマトリクスサイズが有効画素数の素因数ではない場合に、プログラムＲＡＭにディザマトリクスのマトリクスサイズに応じた閾値データの移動の手順のプログラムを予め格納して、円滑に閾値データの移動を行うことができる。
【００１１】
また、本発明の画像処理プロセッサの制御方法は、請求項１において、前記閾値移動工程が、前記閾値移動工程の行われた回数を表す工程回数値を計数する工程計数ステップと、前記工程回数値に応じて各閾値データを移動させる移動量を表す移動量データを呼出す移動量データ呼出ステップと、前記移動量データが負の数であるか正の数であるかを判定する移動量データ判定ステップと、前記移動量データ判定ステップによって前記移動量データが正の数であると判定された場合に各閾値データを現在閾値データを格納しているレジスタから第１の特定レジスタ側に向かって１つ隣に位置するレジスタに移動させる第１の移動ステップと、前記第１の移動ステップの直後に前記第１の移動ステップが行われた回数を表す第１の移動回数値を１デクリメントする第１の移動計数ステップと、前記第１の移動回数値と前記移動量データとが一致しているか否かを判定する第１の移動回数値判定ステップと、前記移動量データ判定ステップによって前記移動量データが正の数であると判定された場合に各閾値データを現在閾値データを格納しているレジスタから第６の特定レジスタ側に向かって１つ隣に位置するレジスタに移動させる第２の移動ステップと、前記第２の移動ステップの直後に前記第２の移動ステップが行われた回数を表す第２の移動回数値を１インクリメントする第２の移動計数ステップと、前記第２の移動回数値と前記移動量データとが一致しているか否かを判定する第２の移動回数値判定ステップと、を備え、前記第１の移動回数値判定ステップによって前記第１の移動回数値と前記移動量データとが一致していると判定されるまで前記第１の移動ステップと前記第１の移動計数ステップとを繰り返し、前記第２の移動回数値判定ステップによって前記第２の移動回数値と前記移動量データとが一致していると判定されるまで前記第２の移動ステップと前記第２の移動計数ステップとを繰り返し、前記移動量データが、前記閾値データ列の閾値データの個数に応じて前記工程回数値ごとに定められているようにした構成を有している。
【００１２】
この構成により、請求項１に記載の閾値移動工程において、ディザマトリクスのマトリクサイズが画像処理プロセッサでディザ処理を行うときにディザ処理のプログラムとともに閾値データの移動の手順のプログラムをプログラムＲＡＭに予め格納しておき、ディザマトリクスのマトリクスサイズが有効画素数の素因数ではない場合には、ディザマトリクスのマトリクスサイズに応じた閾値データの移動のパタンだけをデータＲＡＭに格納すれば、円滑に閾値データの移動を行うことができる。
より具体的には、例えば、閾値データを３つ以上隣に位置するレジスタには移動させることができないなど、ＳＩＭＤ型プロセッサの動作に限界が存在する場合にでも、閾値データの移動を円滑に行うことができる。
【００１３】
【発明の実施の形態】
（第１の実施の形態）
以下、本発明の実施の形態について、図面を参照して説明する。
図１は、本発明の実施の形態の画像処理プロセッサ１００の構成を示すブロック図である。
画像処理プロセッサ１００は、入出力ポート１０１と、バススイッチおよびローカルメモリ１０２と、メモリ制御部１０３と、プロセッサアレー部１０４と、プログラムＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）１０５と、データＲＡＭ１０６と、ホストバッファ１０７と、シリアルインタフェイス１０８と、によって構成される。
【００１４】
なお、画像処理プロセッサ１００は、複写機、画像読取装置またはファクシミリ装置などの画像処理装置内に設置される画像処理ユニットの一部分である。
【００１５】
入出力ポート１０１には、外部から画像データが入力されるようになっており、入出力ポート１０１は、入力された画像データをバススイッチおよびローカルメモリ１０２に出力するようになっている。
また、入出力ポート１０１には、バススイッチおよびローカルメモリ１０２によって出力された外部に出力する処理後データが入力されるようになっており、入出力ポート１０１は入力された処理後データを外部に出力するようになっている。
【００１６】
バススイッチおよびローカルメモリ１０２には、入出力ポート１０１によって出力された画像データおよびプロセッサアレー部１０４によって出力された処理後データが入力されるようになっており、バススイッチおよびローカルメモリ１０２は、入力された画像データおよび処理後データを格納するようになっている。なお、バススイッチおよびローカルメモリ１０２によるデータの格納は、メモリ制御部１０３によって指定されたメモリ領域に行われるようになっている。
【００１７】
メモリ制御部１０３は、バススイッチおよびローカルメモリ１０２において何れのメモリ領域にデータを格納するかを指定するようになっている。
また、メモリ制御部１０３は、バススイッチおよびローカルメモリ１０２において入出力ポート１０１にデータを出力するときのデータパスの経路を指定するようになっている。
【００１８】
プロセッサアレー部１０４には、バススイッチおよびローカルメモリ１０２に格納された画像データが入力されるようになっており、プロセッサアレー部１０４は、入力された画像データに所定の処理を施し、所定の処理が施された処理後データをバススイッチおよびローカルメモリ１０２に出力するようになっている。
【００１９】
なお、プロセッサアレー部１０４には、ＳＩＭＤ（Ｓｉｎｇｌｅ　Ｉｎｓｔｒｕｃｔｉｏｎ　Ｍｕｌｔｉｐｌｅ　Ｄａｔａ　ｓｔｒｅａｍ）型のプロセッサが配設されている。
【００２０】
図２は、本発明の実施の形態のＳＩＭＤ型プロセッサ２００の構成を示すブロック図である。
ＳＩＭＤ型プロセッサ２００は、レジスタ群２０１と、マルチプレクサ２０２と、シフト演算器２０３と、論理演算器２０４と、アキュムレータ２０５と、テンポラリレジスタ２０６とによって構成される。
【００２１】
なお、図２において、マルチプレクサは、ＭＵＸと記載され、バレルシフタは、Ｓｈｉｆｔ　Ｅｘｐａｎｄと記載され、論理演算器は、ＡＬＵと記載され、アキュムレータは、Ａと記載され、テンポラリレジスタは、Ｆと記載される。
【００２２】
レジスタ群２０１は、アドレスバスおよびデータバスに接続され、処理を行う対象となる画像データの各画素データ、処理を行うための比較データなど、様々なデータを格納するようになっている。
マルチプレクサ２０２は、レジスタ群２０１とシフト演算器２０３、論理演算器２０４、アキュムレータ２０５およびテンポラリレジスタ２０６とのデータの入出力を中継するようになっている。
【００２３】
シフト演算器２０３は、レジスタ群２０１に格納されたデータに基づいてシフト演算を行うようになっている。
論理演算器２０４は、レジスタ群２０１に格納されたデータに基づいて論理演算を行うようになっている。
【００２４】
アキュムレータ２０５は、シフト演算器２０３および論理演算器２０４の演算結果を格納するようになっている。
テンポラリレジスタ２０６は、レジスタ群２０１に格納された各画素データに処理が施された後の各処理後データを格納し、外部からの処理後データの読出しに応じてデータを出力するようになっている。
【００２５】
プログラムＲＡＭ１０５およびデータＲＡＭ１０６は、プロセッサアレー部１０４における所定の処理を行うための処理手順およびプロセッサアレー部１０４における所定の処理を行うのためのパラメータなどを格納するようになっている。
【００２６】
ホストバッファ１０７には、プログラムＲＡＭ１０５およびデータＲＡＭ１０６に格納する処理手順およびパラメータなどがシリアルインタフェイス１０８を介して入力されるようになっている。
【００２７】
なお、画像処理プロセッサ１００の処理の内容および処理の形態が変更される場合には、プログラムＲＡＭ１０５およびデータＲＡＭ１０６に格納するプロセッサアレー部１０４における所定の処理を行うための処理手順およびプロセッサアレー部１０４における所定の処理を行うのためのパラメータなどを変更することによって対応される。
【００２８】
次に、画像処理プロセッサ１００を用いて行われる画像データに対するディザ処理の流れについて説明する。
【００２９】
図３は、画像データに施されるディザ処理の流れを示すフローチャートである。
なお、プログラムＲＡＭ１０５には、ディザ処理を行うための処理手順を表す情報が予め格納され、データＲＡＭ１０６には、ディザ処理を行うためのディザマトリクスのマトリクスデータが予め格納されているものとする。
【００３０】
図４は、ディザマトリクスの構成例を示す図である。
図４のディザマトリクスは、縦６個、横６個の計３６個の閾値データによって構成されている。以下の説明において、ディザマトリクスの縦および横の閾値データの個数のことを、マトリクスサイズと呼ぶ。
なお、本発明の実施の形態では、マトリクスサイズを６としたが、マトリクスサイズは、他の値で構成されてもよい。
【００３１】
また、以下の説明において、Ｔ００からＴ０５までのデータによって構成されるデータ列を第１の閾値データ列、Ｔ０６からＴ１１までのデータによって構成されるデータ列を第２の閾値データ列と呼び、以下同様に、第３、第４、第５および第６の閾値データ列と呼ぶものとする。
【００３２】
図５は、ディザ処理が施される画像データを模式的に表わした図である。
図５の画像データは、縦Ｘ画素、横Ｙ画素の画素データによって構成されている。以下の説明において、図５において主走査方向に並ぶ画素データを画素データ列と呼ぶ。
【００３３】
まず、画像データを走査する前に、データＲＡＭ１０６に格納されている第１の閾値データ列の各閾値データがレジスタ群２０１の各レジスタにＴ００からＴ０５までの順番で繰り返し格納される（Ｓ３０１）。このとき、閾値データを格納するレジスタ、すなわち閾値用レジスタ列は、予め割り当てられている。
【００３４】
なお、閾値用レジスタ列は、第１の特定レジスタから第２の特定レジスタまでの各レジスタよりなる第１の無効レジスタ列、第３の特定レジスタから第４の特定レジスタまでの各レジスタよりなる有効レジスタ列および第５の特定レジスタから第６の特定レジスタまでの各レジスタよりなる第２の無効レジスタ列によって構成される。
ここで、有効レジスタ列のレジスタの個数は、有効画素数と呼ばれ、プロセッサの設計段階で予め設定されているものである。
【００３５】
図６は、マトリクスサイズが有効画素数の素因数である場合に、各閾値データが閾値用レジスタ列に格納される様子を示す図である。
図６において、第３の特定レジスタに格納されている閾値データと第５の特定レジスタに格納されている閾値データとが一致している。
【００３６】
図７は、マトリクスサイズが有効画素数の素因数ではない場合に、各閾値データが閾値用レジスタ列に格納される様子を示す図である。
図７において、第３の特定レジスタに格納されている閾値データと第５の特定レジスタに格納されている閾値データとが一致していない。
【００３７】
次に、入出力ポート１０１を介してバススイッチおよびローカルメモリ１０２に外部から格納された画像データのうち主走査方向に有効画素数分の画素データ、すなわち有効画素列がレジスタ群２０１に格納される（Ｓ３０２）。このとき、画素データ列の起点となる画素データから主走査方向に順次格納されていくものとする。なお、画素データを格納するレジスタ、すなわち画素データ用レジスタ列は、予め割り当てられており、上述した閾値用レジスタ列の有効レジスタ列に対応するものである。
【００３８】
次に、閾値用レジスタ列に格納された各閾値データと画素データ用レジスタ列に格納された各画素データとが比較され、画素データごとに画素データが閾値データよりも大きいか否かが判定される（Ｓ３０３）。
【００３９】
次に、画素データごとに上述した判定結果を表す値が出力され、画素データが閾値データよりも大きい場合には１が、画素データが閾値データ以下である場合には０が出力される（Ｓ３０４）。
なお、出力された判定結果を表す値は、ローカルメモリ１０２に格納され、入出力ポート１０１を介して外部に出力される。
【００４０】
マトリクスサイズが有効画素数の素因数である場合には（Ｓ３０５）、ステップＳ３０２に戻って、ステップＳ３０３およびステップＳ３０４が、画素データ列の各画素データが全て処理されるまで繰り返される。
【００４１】
一方、マトリクスサイズが有効画素数の素因数ではない場合には（Ｓ３０５）、閾値用レジスタ列の各レジスタに格納されている各閾値データを閾値用レジスタ列の他のレジスタにそれぞれ移動し（Ｓ３０６）、ステップＳ３０２に戻って、ステップＳ３０３およびステップＳ３０４が、画素データ列の各画素データが全て処理されるまで繰り返される。
【００４２】
なお、閾値データの移動は、閾値の移動を行う直前に第５の特定レジスタに格納されていた閾値データと閾値の移動を行った直後に第３の特定レジスタに格納される閾値データとが一致し、かつ、各閾値データの並ぶ順番が維持されるように行われる。
【００４３】
図８は、閾値データの移動による各レジスタに格納される閾値データの変化を例示した図である。
図８では、マトリクスサイズが６であり、かつ、有効画素数をマトリクスサイズで除算を行ったときの剰余数が２である場合の各レジスタに格納される閾値データの変化が示されている。
【００４４】
この場合、状態Ａ、状態Ｂ、状態Ｃ、状態Ａの順で状態が変化し、繰り返される。なお、状態Ａに示した状態から状態Ｂに示した状態に移る場合には、各閾値データは２つ左隣に位置するレジスタに移動され、状態Ｂに示した状態から状態Ｃに示した状態に移る場合には、各閾値データは２つ左隣に位置するレジスタに移動され、状態Ｃに示した状態から状態Ａに示した状態に移る場合には、各閾値データは４つ右隣に位置するレジスタに移動されることになる。このとき、ＳＩＭＤ型プロセッサ２００においては、アキュムレータ２０５を介して各閾値データの移動が行われる。
【００４５】
ここで、左隣に位置するレジスタとは、第１の特定レジスタ側に位置するレジスタのことであり、右隣に位置するレジスタとは、第６の特定レジスタ側に位置するレジスタのことである。
【００４６】
なお、図８に示す状態の変化の様子は、ディザマトリクスのマトリクスサイズによって異なることはいうまでもない。
また、上述したような閾値データの移動を行うために、閾値用レジスタ列の各無効レジスタ列のレジスタの個数、Ｌ、とマトリクスサイズ、Ｓ、との関係は、Ｓ−１≦Ｌを満たすものである。
【００４７】
次に、画素データ列の全ての画素データに処理が施された後に（Ｓ３０７）、レジスタ群２０１に格納される閾値データ列が変更され（Ｓ３０１）、画像データの全ての画素データに処理が施されるまで、全ての処理が繰り返される（Ｓ３０８）。
なお、閾値データ列の変更は、第１の閾値データ列から順番に、第２、第３、第４、第５、第６の閾値データ列へと変更され、再び第１の閾値データ列に戻るようになっている。
【００４８】
このように、本発明の画像処理プロセッサの制御方法では、ディザマトリクスのマトリクスサイズが有効画素数の素因数ではない場合でも、有効画素数分の画素データがディザ処理を施されるごとにレジスタに格納された閾値データを移動させることによって、有効画素数分の画素データの切れ目ごとに発生するディザマトリクスの連続性の不整合を防止するため、有効画素数に依存せずにディザマトリクスのマトリクスサイズを設定することができる。
【００４９】
（第２の実施の形態）
上述した図３のフローチャートのステップＳ３０６で行われる閾値データの移動は、図９に示すような手順で実施されてもよいものとする。
【００５０】
図９は、閾値データの移動の手順の流れを示すフローチャートである。
画像処理プロセッサ１００でディザ処理を行う前に、ディザマトリクスのマトリクスサイズに応じて以下に説明するような手順を表すプログラムをプログラムＲＡＭ１０５に予め格納しておけばよい。
ここでは、図８で例示したものと同様に、マトリクスサイズが６であり、かつ、有効画素数をマトリクスサイズで除算を行ったときの剰余数が２である場合の手順について説明する。
【００５１】
説明に先立ち、データＲＡＭ１０６にはＳＩＭＤカウンタ値（工程回数値）を格納するメモリ領域が確保されているものとする。なお、ＳＩＭＤカウンタ値とは、１回の閾値データの移動が行われるごとに変化するものであり、閾値用レジスタ列の状態が、図８で示した状態Ａ、状態Ｂおよび状態Ｃの何れの状態であるかを管理するためのものである。
【００５２】
まず、データＲＡＭ１０６からＳＩＭＤカウンタ値を呼出し（Ｓ９０１）、呼出されたＳＩＭＤカウンタ値が２であるか否か、すなわち状態Ｃであるか否かを判定する（Ｓ９０２）。
【００５３】
呼出されたＳＩＭＤカウンタ値が２ではない、すなわち状態Ａまたは状態Ｂである場合に、各閾値データは２つ左隣に位置するレジスタに移動され（Ｓ９０３）、ＳＩＭＤカウンタ値が１インクリメントされ（Ｓ９０４）、閾値データの移動が終了される。
【００５４】
呼出されたＳＩＭＤカウンタ値が２である、すなわち状態Ｃである場合に、各閾値データは４つ左隣に位置するレジスタに移動され（Ｓ９０５）、ＳＩＭＤカウンタ値は０にリセットされ（Ｓ９０６）、閾値データの移動が終了される。
【００５５】
このように、本発明の画像処理プロセッサの制御方法によれば、ディザマトリクスのマトリクサイズが画像処理プロセッサでディザ処理を行うときに、ディザマトリクスのマトリクスサイズが有効画素数の素因数ではない場合に、プログラムＲＡＭにディザマトリクスのマトリクスサイズに応じた閾値データの移動の手順のプログラムを予め格納して、円滑に閾値データの移動を行うことができる。
【００５６】
（第３の実施の形態）
上述した図３のフローチャートのステップＳ３０６で行われる閾値データの移動は、図１０に示すような手順で実施されてもよいものとする。
【００５７】
図１０は、閾値データの移動の手順の流れを示すフローチャートである。
画像処理プロセッサ１００でディザ処理の実行プログラムとともに、以下に説明するような手順のプログラムをプログラムＲＡＭ１０５に予め格納しておけばよい。
【００５８】
図１１は、図１０に示したフローチャートの実行に用いるデータ群の例示図である。
画像処理プロセッサ１００でディザ処理を行う前に、図１１に示すようなデータをディザマトリクスのマトリクスサイズに応じてデータＲＡＭ１０６に予め格納しておけばよい。
【００５９】
図１１において、Ｐは、閾値データの移動パタンが何個格納されているかを表す値である。ｐ０、ｐ１、ｐ２、ｐ３、ｐ４、ｐ５、ｐ６、ｐ７、ｐ８、ｐ９、ｐ１０、ｐ１１、ｐ１２、ｐ１３、ｐ１４およびｐ１５は、各閾値データを何れの方向で何個隣に位置するレジストに移動させるかを表す移動量データのことである。例えば、ｐ０＝２であれば、各閾値データを２つ右隣に位置するレジスタに移動させることを表し、ｐ０＝−２であれば、各閾値データを２つ左隣に位置するレジスタに移動させることを表している。なお、移動量データが格納されているメモリ領域のことを、移動パタンメモリと呼ぶ。
【００６０】
また、以下の説明に先立ち、データＲＡＭ１０６には、ＳＩＭＤカウンタ値（工程回数値）を格納するメモリ領域が確保されているものとする。なお、ＳＩＭＤカウンタ値とは、１回の閾値データの移動が完了するごとに変化するものである。また、データＲＡＭ１０６には、移動カウンタ値を格納するメモリ領域が確保されているものとする。
【００６１】
まず、データＲＡＭ１０６からＳＩＭＤカウンタ値を呼出し（Ｓ１００１）、ＳＩＭＤカウンタ値に応じて移動パタンメモリから移動量データを呼出し（Ｓ１００２）、移動カウンタ値（移動回数値）を０にリセットする（Ｓ１００３）。ここで、例えば、ＳＩＭＤカウンタ値が０であればｐ０の移動量データを呼出し、ＳＩＭＤカウンタ値が１であればｐ１の移動量データを呼び出すようになっている。
【００６２】
次に、移動量データが正の数であるか負の数であるかが確認される（Ｓ１００４）。
移動量データが負の数であれば、各閾値データを１つ左隣に位置するレジスタに移動し（Ｓ１００５）、移動カウンタ値を１デクリメントし（Ｓ１００６）、移動量データと移動カウンタ値とが一致しているか否かが確認され（Ｓ１００７）、移動量データと移動カウンタ値とが一致するまでステップＳ１００５およびステップＳ１００６を繰り返す。
【００６３】
また、移動量データが正の数であれば、各閾値データを１つ右隣に位置するレジスタに移動し（Ｓ１００８）、移動カウンタ値を１インクリメントし（Ｓ１００９）、移動量データと移動カウンタ値とが一致しているか否かが確認され（Ｓ１０１０）、移動量データと移動カウンタ値とが一致するまでステップＳ１００８およびステップＳ１００９を繰り返す。
【００６４】
移動量データと移動カウンタ値とが一致した場合に（Ｓ１００７、Ｓ１０１０）、ＳＩＭＤカウンタ値が１インクリメントされ、ＳＩＭＤカウンタ値が確認され、ＳＩＭＤカウンタ値がＰと一致している場合には（Ｓ１０１２）、ＳＩＭＤカウンタ値が０にリセットされ（Ｓ１０１３）、ＳＩＭＤカウンタ値がＰと一致していない場合には（Ｓ１０１２）、閾値データの移動が終了される。
【００６５】
なお、図１０のフローチャートの説明では、ＳＩＭＤカウンタ値に基づいて移動パタンメモリから移動量データを呼出すようにしたが、図１１のようにメモリ内に、次に呼出す移動量データを移動パタンメモリの何れのアドレスから呼出すかを記憶しておくＲａｄｄを設定し、閾値データの移動が行われるごとに、Ｒａｄｄを変更するのでもよい。
【００６６】
このように、ディザマトリクスのマトリクサイズが画像処理プロセッサでディザ処理を行うときにディザ処理のプログラムとともに閾値データの移動の手順のプログラムをプログラムＲＡＭに予め格納しておき、ディザマトリクスのマトリクスサイズが有効画素数の素因数ではない場合には、ディザマトリクスのマトリクスサイズに応じた閾値データの移動のパタンだけをデータＲＡＭに格納すれば、円滑に閾値データの移動を行うことができる。
より具体的には、例えば、閾値データを３つ以上隣に位置するレジスタには移動させることができないなど、ＳＩＭＤ型プロセッサの動作に限界が存在する場合にでも、閾値データの移動を円滑に行うことができる。
【００６７】
【発明の効果】
以上説明したように、本発明は、有効画素数に依存せずにディザマトリクスのマトリクスサイズを設定することができる画像処理プロセッサの制御方法を提供することができる画像処理プロセッサの制御方法を提供することができるものである。
【図面の簡単な説明】
【図１】本発明の実施の形態の画像処理プロセッサの構成を示すブロック図である。
【図２】本発明の実施の形態のＳＩＭＤ型プロセッサの構成を示すブロック図である。
【図３】本発明の実施の形態の画像処理プロセッサの制御方法における画像データに施されるディザ処理の流れを示すフローチャートである。
【図４】ディザマトリクスの構成例を示す図である。
【図５】ディザ処理が施される画像データを模式的に表わした図である。
【図６】マトリクスサイズが有効画素数の素因数である場合に、各閾値データが閾値用レジスタ列に格納される様子を示す図である。
【図７】マトリクスサイズが有効画素数の素因数ではない場合に、各閾値データが閾値用レジスタ列に格納される様子を示す図である。
【図８】閾値データの移動による各レジスタに格納される閾値データの変化を例示した図である。
【図９】本発明の第２の実施の形態の画像処理プロセッサの制御方法における閾値データの移動の手順の流れを示すフローチャートである。
【図１０】本発明の第３の実施の形態の画像処理プロセッサの制御方法における閾値データの移動の手順の流れを示すフローチャートである。
【図１１】本発明の第３の実施の形態の画像処理プロセッサの制御方法における閾値データの移動の手順の実行に用いるデータ群の例示図である。
【符号の説明】
１００　画像処理プロセッサ
１０１　入出力ポート
１０２　バススイッチおよびローカルメモリ
１０３　メモリ制御部
１０４　プロセッサアレー部
１０５　プログラムＲＡＭ
１０６　データＲＡＭ
１０７　ホストバッファ
１０８　シリアルインタフェイス
２００　ＳＩＭＤ型プロセッサ
２０１　レジスタ群
２０２　マルチプレクサ
２０３　シフト演算器
２０４　論理演算器
２０５　アキュムレータ
２０６　テンポラリレジスタ
【図１】
2004133859.tif 000003
【図２】
2004133859.tif 000004
【図３】
2004133859.tif 000005
【図４】
2004133859.tif 000006
【図５】
2004133859.tif 000007
【図６】
2004133859.tif 000008
【図７】
2004133859.tif 000009
【図８】
2004133859.tif 000010
【図９】
2004133859.tif 000011
【図１０】
2004133859.tif 000012
【図１１】
2004133859.tif 000013