(57)【要約】【課題】ＳＩＭＤ（Single Instruction Multi Data）単位で複数の入力画素データを処理するときに、従来技術に比較して高速で処理を行う。【解決手段】ＣＰＵ１０は、ＲＡＭ１１に格納されたライン画像データＤＬを用いて各印刷位置の濃度値を算出してＲＡＭ１１に格納し、算出された各印刷位置の濃度値である画素データに対して濃度変換処理を行うようにＳＩＭＤ処理部１４を制御する。ＳＩＭＤプロセッサ２０は、複数の画素データをＳＩＭＤ数Ｎｓ毎にレジスタＲ１に格納し、レジスタＲ１に格納された全ての画素データの濃度変換後の値が互いに同一であるときは、メモリコントローラ２２を動作させることなく、レジスタＲ３にＳＩＭＤ数Ｎｓ個の上記濃度変換後の値をセットする。そして、レジスタＲ３に格納された画素データをバス１７を介してＲＡＭ１１に出力するように、メモリコントローラ２３を制御する。【選択図】図１
2011065206.tif 000002
【特許請求の範囲】
【請求項１】
複数の入力画素データに基づいて複数の出力画素データを生成して外部回路に出力するＳＩＭＤ（Single Instruction Multi Data）型プロセッサにおいて、
所定のＳＩＭＤ数Ｎｓ毎の出力画素データに基づいて、上記ＳＩＭＤ型プロセッサの外部に設けられた外部制御手段を動作させるか否かを決定し、
上記外部制御手段を動作させるときは、上記複数の入力画素データを上記外部制御手段に出力して、上記外部制御手段に対して上記複数の入力画素データに対して所定の処理を行い上記複数の出力画素データを生成して上記ＳＩＭＤ数Ｎｓ単位で上記ＳＩＭＤ型プロセッサに出力するように制御し、上記外部制御手段から入力された複数の出力画素データを上記外部回路に出力し、
上記外部制御手段を動作させないときは、上記入力画素データを上記外部制御手段に出力することなく上記複数の出力画素データを生成して上記外部回路に出力する制御手段を備えたことを特徴とするＳＩＭＤ型プロセッサ。
【請求項２】
上記制御手段は、上記複数の入力画素データを上記ＳＩＭＤ数Ｎｓ単位で上記複数の出力画素データに変換したときの当該変換後の出力画素データが互いに同一であるときに上記外部制御手段を動作させないことを決定する一方、同一でないときに上記外部制御手段を動作させることを決定し、
上記所定の処理は、上記入力画素データと上記出力画素データとの関係を含むルックアップテーブルを参照して、上記複数の入力画素データを上記ＳＩＭＤ数Ｎｓ単位で上記複数の出力画素データに変換する変換処理であることを特徴とする請求項１記載のＳＩＭＤ型プロセッサ。
【請求項３】
上記複数の出力画素データは、上記ＳＩＭＤ数Ｎｓの整数Ｋｈ倍であるＱｈ個のゼロデータを含む第１の部分と、上記第１の部分に続きかつ上記ＳＩＭＤ数Ｎｓよりも少ないＪｈ個のゼロデータ及び当該Ｊｈ個のゼロデータに続く上記複数の入力画素データを含む第２の部分とを含み、
上記制御手段は、
上記複数の出力画素データのうち上記第１の部分を生成するときは、上記外部制御手段を動作させないことを決定し、上記複数の入力画素データを上記外部制御手段に出力することなく、上記Ｑｈ個のゼロデータを生成して上記複数の出力画素データの第１の部分として上記外部回路に出力する一方、
上記複数の出力画素データのうち上記第２の部分を生成するときは、上記外部制御手段を動作させることを決定し、上記複数の入力画素データを上記外部制御手段に出力し、上記外部制御手段に対して上記入力画素データの先頭に上記Ｊｈ個のゼロデータを挿入するゼロデータ挿入処理を行うことにより上記複数の出力画素データの第２の部分を生成して上記ＳＩＭＤ型プロセッサに出力するように制御することを特徴とする請求項１記載のＳＩＭＤ型プロセッサ。
【請求項４】
複数の入力画素データに基づいて複数の出力画素データを生成して外部回路に出力するＳＩＭＤ（Single Instruction Multi Data）型プロセッサの処理方法において、
所定のＳＩＭＤ数Ｎｓ毎の出力画素データに基づいて、上記ＳＩＭＤ型プロセッサの外部に設けられた外部制御手段を動作させるか否かを決定し、
上記外部制御手段を動作させるときは、上記複数の入力画素データを上記外部制御手段に出力して、上記外部制御手段に対して上記複数の入力画素データに対して所定の処理を行い上記複数の出力画素データを生成して上記ＳＩＭＤ数Ｎｓ単位で上記ＳＩＭＤ型プロセッサに出力するように制御し、上記外部制御手段から入力された複数の出力画素データを上記外部回路に出力し、
上記外部制御手段を動作させないときは、上記入力画素データを上記外部制御手段に出力することなく上記複数の出力画素データを生成して上記外部回路に出力する制御ステップを含むことを特徴とするＳＩＭＤ型プロセッサの処理方法。
【請求項５】
上記制御ステップは、上記複数の入力画素データを上記ＳＩＭＤ数Ｎｓ単位で上記複数の出力画素データに変換したときの当該変換後の出力画素データが互いに同一であるときに上記外部制御手段を動作させないことを決定する一方、同一でないときに上記外部制御手段を動作させることを決定することを含み、
上記所定の処理は、上記入力画素データと上記出力画素データとの関係を含むルックアップテーブルを参照して、上記複数の入力画素データを上記ＳＩＭＤ数Ｎｓ単位で上記複数の出力画素データに変換する変換処理であることを特徴とする請求項４記載のＳＩＭＤ型プロセッサの処理方法。
【請求項６】
上記複数の出力画素データは、上記ＳＩＭＤ数Ｎｓの整数Ｋｈ倍であるＱｈ個のゼロデータを含む第１の部分と、上記第１の部分に続きかつ上記ＳＩＭＤ数Ｎｓよりも少ないＪｈ個のゼロデータ及び当該Ｊｈ個のゼロデータに続く上記複数の入力画素データを含む第２の部分とを含み、
上記制御ステップは、
上記複数の出力画素データのうち上記第１の部分を生成するときは、上記外部制御手段を動作させないことを決定し、上記複数の入力画素データを上記外部制御手段に出力することなく、上記Ｑｈ個のゼロデータを生成して上記複数の出力画素データの第１の部分として上記外部回路に出力する一方、
上記複数の出力画素データのうち上記第２の部分を生成するときは、上記外部制御手段を動作させることを決定し、上記複数の入力画素データを上記外部制御手段に出力し、上記外部制御手段に対して上記入力画素データの先頭に上記Ｊｈ個のゼロデータを挿入するゼロデータ挿入処理を行うことにより上記複数の出力画素データの第２の部分を生成して上記ＳＩＭＤ型プロセッサに出力するように制御することを特徴とする請求項４記載のＳＩＭＤ型プロセッサ。
【請求項７】
請求項４乃至６のうちのいずれか１つに記載のＳＩＭＤ型プロセッサの処理方法の処理ステップを含むことを特徴とするコンピュータにより実行可能なプログラム。
【請求項８】
請求項７記載のプログラムを記録したことを特徴とするコンピュータにより読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＳＩＭＤ（Single Instruction Multi Data）単位で複数の入力画素データを処理するＳＩＭＤ型プロセッサ及び当該ＳＩＭＤ型プロセッサの処理方法、並びに当該処理方法を用いたプログラム及び当該プログラムを格納した記録媒体に関する。
【背景技術】
【０００２】
従来、画像処理装置において取り扱われる画像データは副走査方向に並んだ複数のライン画像データから成り、各ライン画像データは主走査方向に配列された複数の画素データから成る。そして、ライン画像データは、複数のＳＩＭＤから成る。ここで、「ＳＩＭＤ」とは、１つの処理単位として処理される所定数（以下、ＳＩＭＤ数という。）の画素データである。このようなＳＩＭＤを処理単位とする演算処理、つまりＳＩＭＤ単位処理では、ＳＩＭＤ単位を構成している複数の画素データを一度に入力し、入力した複数の画素データを並列的に処理するので、一度に大量のデータを処理することができ、演算処理を短時間で行うことができるという利点がある（例えば、特許文献２参照。）。
【０００３】
特許文献１に記載の画像処理装置は、第１の画像処理部の個々の画像処理モジュールで互いに並列に画像処理が行われるように制御する並列処理制御手段と、第２の画像処理部の個々の画像処理モジュールで画像処理が逐次行われるように制御する逐次処理制御手段と、並列処理制御手段と逐次処理制御手段とを選択的に動作させ、処理対象の画像に対する画像処理を第１の画像処理部又は第２の画像処理部によって行わせる選択手段とを備えて構成される。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に係る画像処理装置における並列処理の一例として、上述したＳＩＭＤ単位処理を挙げることができる。ＳＩＭＤ単位処理では、例えば、ルックアップテーブルを参照してＳＩＭＤ数個の画素データに対して濃度変換処理を行う。特許文献１に係る画像処理装置は、処理対象の画像に対する画像処理を第１の画像処理部によって行わせるときに、当該画像データの内容に関わらずルックアップテーブルを参照する濃度変換処理などの比較的長い処理時間を必要とする画像処理を行っていた。従って、さらに処理速度をさらに向上することができないという課題があった。
【０００５】
本発明の目的は以上の問題点を解決し、ＳＩＭＤ単位で複数の入力画素データを処理するときに、従来技術に比較して高速で処理を行うことができるＳＩＭＤ型プロセッサ及び当該ＳＩＭＤ型プロセッサの処理方法、並びに当該処理方法を用いたプログラム及び当該プログラムを格納した記録媒体を提供することにある。
【課題を解決するための手段】
【０００６】
第１の発明に係るＳＩＭＤ型プロセッサは、複数の入力画素データに基づいて複数の出力画素データを生成して外部回路に出力するＳＩＭＤ型プロセッサにおいて、
所定のＳＩＭＤ数Ｎｓ毎の出力画素データに基づいて、上記ＳＩＭＤ型プロセッサの外部に設けられた外部制御手段を動作させるか否かを決定し、
上記外部制御手段を動作させるときは、上記複数の入力画素データを上記外部制御手段に出力して、上記外部制御手段に対して上記複数の入力画素データに対して所定の処理を行い上記複数の出力画素データを生成して上記ＳＩＭＤ数Ｎｓ単位で上記ＳＩＭＤ型プロセッサに出力するように制御し、上記外部制御手段から入力された複数の出力画素データを上記外部回路に出力し、
上記外部制御手段を動作させないときは、上記入力画素データを上記外部制御手段に出力することなく上記複数の出力画素データを生成して上記外部回路に出力する制御手段を備えたことを特徴とする。
【０００７】
上記ＳＩＭＤ型プロセッサにおいて、上記制御手段は、上記複数の入力画素データを上記ＳＩＭＤ数Ｎｓ単位で上記複数の出力画素データに変換したときの当該変換後の出力画素データが互いに同一であるときに上記外部制御手段を動作させないことを決定する一方、同一でないときに上記外部制御手段を動作させることを決定し、
上記所定の処理は、上記入力画素データと上記出力画素データとの関係を含むルックアップテーブルを参照して、上記複数の入力画素データを上記ＳＩＭＤ数Ｎｓ単位で上記複数の出力画素データに変換する変換処理であることを特徴とする。
【０００８】
また、上記ＳＩＭＤ型プロセッサにおいて、上記複数の出力画素データは、上記ＳＩＭＤ数Ｎｓの整数Ｋｈ倍であるＱｈ個のゼロデータを含む第１の部分と、上記第１の部分に続きかつ上記ＳＩＭＤ数Ｎｓよりも少ないＪｈ個のゼロデータ及び当該Ｊｈ個のゼロデータに続く上記複数の入力画素データを含む第２の部分とを含み、
上記制御手段は、
上記複数の出力画素データのうち上記第１の部分を生成するときは、上記外部制御手段を動作させないことを決定し、上記複数の入力画素データを上記外部制御手段に出力することなく、上記Ｑｈ個のゼロデータを生成して上記複数の出力画素データの第１の部分として上記外部回路に出力する一方、
上記複数の出力画素データのうち上記第２の部分を生成するときは、上記外部制御手段を動作させることを決定し、上記複数の入力画素データを上記外部制御手段に出力し、上記外部制御手段に対して上記入力画素データの先頭に上記Ｊｈ個のゼロデータを挿入するゼロデータ挿入処理を行うことにより上記複数の出力画素データの第２の部分を生成して上記ＳＩＭＤ型プロセッサに出力するように制御することを特徴とする。
【０００９】
第２の発明に係るＳＩＭＤ型プロセッサの処理方法は、複数の入力画素データに基づいて複数の出力画素データを生成して外部回路に出力するＳＩＭＤ型プロセッサの処理方法において、
所定のＳＩＭＤ数Ｎｓ毎の出力画素データに基づいて、上記ＳＩＭＤ型プロセッサの外部に設けられた外部制御手段を動作させるか否かを決定し、
上記外部制御手段を動作させるときは、上記複数の入力画素データを上記外部制御手段に出力して、上記外部制御手段に対して上記複数の入力画素データに対して所定の処理を行い上記複数の出力画素データを生成して上記ＳＩＭＤ数Ｎｓ単位で上記ＳＩＭＤ型プロセッサに出力するように制御し、上記外部制御手段から入力された複数の出力画素データを上記外部回路に出力し、
上記外部制御手段を動作させないときは、上記入力画素データを上記外部制御手段に出力することなく上記複数の出力画素データを生成して上記外部回路に出力する制御ステップを含むことを特徴とする。
【００１０】
上記ＳＩＭＤ型プロセッサの処理方法において、上記制御ステップは、上記複数の入力画素データを上記ＳＩＭＤ数Ｎｓ単位で上記複数の出力画素データに変換したときの当該変換後の出力画素データが互いに同一であるときに上記外部制御手段を動作させないことを決定する一方、同一でないときに上記外部制御手段を動作させることを決定することを含み、
上記所定の処理は、上記入力画素データと上記出力画素データとの関係を含むルックアップテーブルを参照して、上記複数の入力画素データを上記ＳＩＭＤ数Ｎｓ単位で上記複数の出力画素データに変換する変換処理であることを特徴とする。
【００１１】
また、上記ＳＩＭＤ型プロセッサの処理方法において、上記複数の出力画素データは、上記ＳＩＭＤ数Ｎｓの整数Ｋｈ倍であるＱｈ個のゼロデータを含む第１の部分と、上記第１の部分に続きかつ上記ＳＩＭＤ数Ｎｓよりも少ないＪｈ個のゼロデータ及び当該Ｊｈ個のゼロデータに続く上記複数の入力画素データを含む第２の部分とを含み、
上記制御ステップは、
上記複数の出力画素データのうち上記第１の部分を生成するときは、上記外部制御手段を動作させないことを決定し、上記複数の入力画素データを上記外部制御手段に出力することなく、上記Ｑｈ個のゼロデータを生成して上記複数の出力画素データの第１の部分として上記外部回路に出力する一方、
上記複数の出力画素データのうち上記第２の部分を生成するときは、上記外部制御手段を動作させることを決定し、上記複数の入力画素データを上記外部制御手段に出力し、上記外部制御手段に対して上記入力画素データの先頭に上記Ｊｈ個のゼロデータを挿入するゼロデータ挿入処理を行うことにより上記複数の出力画素データの第２の部分を生成して上記ＳＩＭＤ型プロセッサに出力するように制御することを特徴とする。
【００１２】
第３の発明に係るプログラムは、上記ＳＩＭＤ型プロセッサの処理方法の処理ステップを含むことを特徴とする。
【００１３】
第４の発明に係るコンピュータにより読み取り可能な記録媒体は、上記プログラムを記録したことを特徴とする。
【発明の効果】
【００１４】
本発明に係るＳＩＭＤ型プロセッサとその処理方法、プログラム及び記録媒体によれば、所定のＳＩＭＤ数Ｎｓ毎の出力画素データに基づいて、ＳＩＭＤ型プロセッサの外部に設けられた外部制御手段を動作させるか否かを決定し、外部制御手段を動作させないときは、入力画素データを外部制御手段に出力することなく複数の出力画素データを生成して上記外部回路に出力するので、出力画素データを従来技術に比較して高速で生成できる。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１の実施形態に係るインクジェットプリンタ装置の構成を示すブロック図である。
【図２】図１のノズルヘッド部１６の構成を示す平面図である。
【図３】図１のインクジェットプリンタ装置１によって印刷される画像の印刷領域１００の構成を示す平面図である。
【図４】図１のルックアップテーブル３２ｔの一例を示す表である。
【図５】図１のＳＩＭＤプロセッサ２０によって実行される濃度変換処理を示すフローチャートである。
【図６】本発明の第２の実施形態に係る濃度変換処理を示すフローチャートである。
【図７】本発明の第３の実施形態に係るＳＩＭＤ処理部１４Ａの構成を示すブロック図である。
【図８】図９〜図１１のオフセットライン画像データ生成処理において生成される各ヘッド１６−１〜１６−６のノズルＨ１のオフセットライン画像データＤＬＯ１〜ＤＬＯ６を示す図である。
【図９】図７のＳＩＭＤプロセッサ２０Ａによって実行されるオフセットライン画像データ生成処理を示すフローチャートの第１の部分である。
【図１０】図７のＳＩＭＤプロセッサ２０Ａによって実行されるオフセットライン画像データ生成処理を示すフローチャートの第２の部分である。
【図１１】図７のＳＩＭＤプロセッサ２０Ａによって実行されるオフセットライン画像データ生成処理を示すフローチャートの第３の部分である。
【図１２】図７のＳＩＭＤプロセッサ２０Ａによって実行されるゼロデータ挿入処理を示すフローチャートである。
【図１３】図９〜図１１のオフセットライン画像データ生成処理における処理対象のライン画像データＤＬと、処理後のオフセットライン画像データＤＬＯとの関係を示す説明図である。
【図１４】図９のステップＳ２３におけるＳＩＭＤプロセッサ２０Ａの動作の一例を示すブロック図である。
【図１５】図９のステップＳ２５及びＳ２６におけるＳＩＭＤプロセッサ２０Ａの動作の一例を示すブロック図である。
【図１６】図９のステップＳ２９におけるＳＩＭＤプロセッサ２０Ａの動作の一例を示すブロック図である。
【図１７】図９のステップＳ３１及び図１０のステップＳ３３におけるＳＩＭＤプロセッサ２０Ａの動作の一例を示すブロック図である。
【発明を実施するための形態】
【００１６】
以下、本発明に係る実施形態について図面を参照して説明する。なお、以下の各実施形態において、同様の構成要素については同一の符号を付している。
【００１７】
第１の実施形態．
図１は本発明の第１の実施形態に係るインクジェットプリンタ装置の構成を示すブロック図であり、図２は図１のノズルヘッド部１６の構成を示す平面図である。また、図３は図１のインクジェットプリンタ装置１によって印刷される画像の印刷領域１００の構成を示す平面図であり、図４は図１のルックアップテーブル３２ｔの一例を示す表である。さらに、図５は図１のＳＩＭＤプロセッサ２０によって実行される濃度変換処理を示すフローチャートである。なお、図１のインクジェットプリンタ装置１の全体の構成、図２のノズルヘッド部１６の構成及び図３の印刷領域１００の構成は、以下の各実施形態及び変形例に適用される。また、ＳＩＭＤプロセッサ２０は当該ＳＩＭＤプロセッサの動作を制御する制御手段であるコントローラ（図示せず。）を含み、ＳＩＭＤプロセッサ２０の動作の主体は当該コントローラであるが、以下、当該コントローラの記載を省略する。
【００１８】
詳細後述するように、ＳＩＭＤプロセッサ２０は、所定のＳＩＭＤ数Ｎｓ毎の出力画素データに基づいて、ＳＩＭＤプロセッサ２０の外部に設けられた外部制御手段であるメモリコントローラ２２を動作させるか否かを決定し、メモリコントローラ２２を動作させるときは、上記複数の入力画素データをメモリコントローラ２２に出力して、メモリコントローラ２２に対して上記複数の入力画素データに対して所定の処理を行い上記複数の出力画素データを生成して上記ＳＩＭＤ数Ｎｓ単位でＳＩＭＤプロセッサ２０に出力するように制御し、メモリコントローラ２２から入力された複数の出力画素データをメモリコントローラ２３を介してバス１７に出力し、メモリコントローラ２２を動作させないときは、上記入力画素データをメモリコントローラ２２に出力することなく上記複数の出力画素データを生成してメモリコントローラ２２出力することを特徴としている。
【００１９】
さらに、ＳＩＭＤプロセッサ２０は、上記複数の入力画素データをＳＩＭＤ数Ｎｓ単位で上記複数の出力画素データに変換したときの当該変換後の出力画素データが互いに同一であるときにメモリコントローラ２２を動作させないことを決定する一方、同一でないときにメモリコントローラ２２を動作させることを決定し、上記所定の処理は、上記入力画素データと上記出力画素データとの関係を含むルックアップテーブル３２ｔを参照して、上記複数の入力画素データをＳＩＭＤ数Ｎｓ単位で上記複数の出力画素データに変換する変換処理であることを特徴としている。
【００２０】
図１において、インクジェットプリンタ装置１は、ＣＰＵ（Central Processing Unit）１０と、ＲＡＭ（Random Access Memory）１１と、ＲＯＭ（Read Only Memory）１２と、インターフェース回路１３と、印刷部１５と、ＳＩＭＤ処理部１４と、バス１７とを備えて構成される。
【００２１】
ＣＰＵ１０は、バス１７を介して、ＲＡＭ１１、ＲＯＭ１２、インターフェース回路１３、印刷部１５及びＳＩＭＤ単位で画像データを処理するＳＩＭＤ処理部１４と接続されていてそれらを制御するほか、種々のソフトウェアの機能を実行する。ＲＯＭ１２は、インクジェットプリンタ装置１の動作に必要であってＣＰＵ１０によって実行される第１又は第２の実施形態に係る濃度変換処理（図５及び図６を参照して詳細後述する。）及び第３の実施形態に係るオフセットライン画像データ生成処理（図９〜図１１を参照して詳細後述する。）の各プログラムなどの種々のソフトウェアのプログラムを予め格納する。また、ＲＡＭ１１は、ＳＲＡＭ（Static RAM）、ＤＲＡＭ（Dynamic RAM）、ＳＤＲＡＭ（Synchronous DRAM）などで構成され、ＣＰＵ１０のワーキングエリアとして使用されてプログラムの実行時に発生する一時的なデータを記憶する。インターフェース回路１３は、インクジェットプリンタ装置１の外部に設けられたパーソナルコンピュータなどの画像データ生成装置に接続されており、当該画像データ生成装置からの信号及びライン画像データＤＬ（詳細後述する。）を受信する一方、上記装置に対して信号及びデータを送信して信号変換及びプロトコル変換などのインターフェース処理を実行する。
【００２２】
図１において、印刷部１５は、印刷用紙（図示せず。）に対する画像データの印刷を行うためのハードウェアであり、ノズルヘッド部１６を備える。図２において、ノズルヘッド部１６は、ブラック（Ｋ）、イエロー（Ｙ）、シアン（Ｃ）、マゼンタ（Ｍ）、ライトシアン（ＬＣ）及びライトマゼンタ（ＬＭ）の各色版のインクをそれぞれ発射するためのヘッド１６−１〜１６−６を備える。ここで、ノズルヘッド部１６の副走査方向Ａ２に対するヘッド１６−１〜１６−６の各位置は互いに同一であり、主走査方向Ａ１に対するヘッド１６−１〜１６−６の各位置は互いに異なる。具体的には、ヘッド１６−２〜１６−６はそれぞれ、基準位置であるヘッド１６−１の位置から主走査方向Ａ１と逆方向にオフセット量Ｄｏ２〜Ｄｏ６だけオフセットした位置に設けられる。また、ヘッド１６−１〜１６−６はそれぞれ、副走査方向Ａ２に等間隔で配置された１９２個のノズルＨ１〜Ｈ１９２を有する。各ノズルＨ１〜Ｈ１９２は、所定の色版のインクを発射し又は発射しないように制御される。
【００２３】
図３において、印刷用紙上の画像の印刷領域１００は、主走査方向Ａ１の複数Ｍ個の画素と副走査方向Ａ２の複数Ｌ本のラインとを含む。図３において、第ｌ（ｌ＝１，２，…，Ｌ）のラインの第ｍ（ｍ＝１，２，…，Ｍ）の画素の印刷位置は、印刷位置Ｐ（ｌ−ｍ）のように示されている。
【００２４】
なお、図１において、インターフェース回路１３に入力される各ヘッド１６−１〜１６−６の各ノズルＨ１〜Ｈ１９２毎のライン画像データＤＬ（本明細書においてヘッド１６−１〜１６−６及びノズルＨ１〜Ｈ１９２を区別しない場合には、単に「ライン画像データＤＬ」と表記する。）、は、ノズルヘッド部１５の主走査方向Ａ１の１回の走査中の各印刷位置Ｐにおける画像データを含む。ここで、各画像データは、インクを発射する場合には１の値を有し発射しない場合には０の値を有する１ビットのデータである。インターフェース回路１３は、入力されるライン画像データＤＬに対して所定のインターフェース処理を行って、処理後のライン画像データをＲＡＭ１１に格納する。
【００２５】
本実施形態において、ＣＰＵ１０は、ＲＡＭ１１に格納されたライン画像データＤＬを用いて各印刷位置Ｐ（ｌ−ｍ）の濃度値を算出してＲＡＭ１１に格納し、算出された各印刷位置Ｐ（ｌ−ｍ）の濃度値である画素データに対して図５の濃度変換処理を行うようにＳＩＭＤ処理部１４を制御する。
【００２６】
図１においてＳＩＭＤ処理部１４は、ＳＩＭＤ型のプロセッサであるＳＩＭＤプロセッサ２０と、外部制御手段であるメモリコントローラ２１〜２３と、ＲＡＭである外部メモリ３１〜３３とを備えて構成され、図５の濃度変換処理を行う。ＳＩＭＤプロセッサ２０は、ＳＩＭＤ数Ｎｓ個の画素データをそれぞれ格納するためのレジスタＲ１〜Ｒ３を備え、メモリコントローラ２１〜２３からレジスタＲ１〜Ｒ３にそれぞれシリアル入力される画素データをＳＩＭＤ数Ｎｓ単位で処理する一方、レジスタＲ１〜Ｒ３に格納された画素データを、メモリコントローラ２１〜２３にそれぞれ出力する。メモリコントローラ２１は、バス１７から入力される画素データを外部メモリ３１に出力する一方、外部メモリ３１に格納された画素データをレジスタＲ１に出力するように、ＳＩＭＤプロセッサ２０によって制御される。また、メモリコントローラ２２は、レジスタＲ２に格納された画素データを読み出して、外部メモリ３２のルックアップテーブル３２ｔを参照して読み出された画素データの濃度を変換し、変換後の画素データをレジスタＲ２に出力するように、ＳＩＭＤプロセッサ２０によって制御される。ここで、図４に示すように、ルックアップテーブル３２ｔは、入力される画素データの濃度値と出力される画素データの濃度値との関係を示す。さらに、図１において、メモリコントローラ２３は、レジスタＲ３に格納された画素データを読み出して外部メモリ３３に出力する一方、外部メモリ３３に格納された画素データをバス１７を介してＲＡＭ１１に出力するように、ＳＩＭＤプロセッサ２０によって制御される。なお、本実施形態及び以下の各実施形態においてＳＩＭＤ数Ｎｓは３５２である。
【００２７】
次に、図５を参照してＳＩＭＤプロセッサ２０によって実行される濃度変換処理を説明する。ステップＳ１において、ＳＩＭＤプロセッサ２０は、ＲＡＭ１１から画素データを読み出して外部メモリ３１に格納し、外部メモリ３１に格納された画素データのうち、ＳＩＭＤ数Ｎｓ個の画素データを読み出してレジスタＲ１に出力するように、メモリコントローラ２１を制御する。そして、ステップＳ２において、レジスタＲ１に格納された全ての画素データの濃度値がゼロであるか否かを判断し、ＹＥＳのときはステップＳ３に進む一方、ＮＯのときはステップＳ５に進む。ここで、本実施形態において図４に示すように、入力される画素データの濃度値がゼロであるときには、出力される画素データの濃度値はゼロである。ＳＩＭＤプロセッサ２０は、レジスタＲ１に格納された入力画素データの濃度値がゼロであるときには、濃度変換後の画素データの濃度値はゼロであるという情報をＳＩＭＤプロセッサ２０の内部のメモリ（図示せず。）に予め記憶している。ステップＳ２における判断処理は、上記情報に基づいて、レジスタＲ１に格納された入力画素データの濃度値を濃度変換した後の画素データが全てゼロであるか否かを判断する判断処理である。そこで、ステップＳ３においてＳＩＭＤプロセッサ２０は、レジスタＲ１に格納された全ての画素データの濃度値がゼロであるときには、レジスタＲ３にＳＩＭＤ数Ｎｓ個のゼロデータをセットし、ステップＳ４に進む。
【００２８】
一方、ステップＳ２においてＮＯのときには、ステップＳ５において、レジスタＲ１に格納された画素データをレジスタＲ２にコピーする。そして、ステップＳ６において、ルックアップテーブル３２ｔを参照して、レジスタＲ２の画素データの濃度値を変換するように、メモリコントローラ２２を制御する。これに応答して、メモリコントローラ２２は、レジスタＲ２の画素データを読み出した後に当該画素データの濃度値を変換し、濃度変換後の画素データをレジスタＲ２に格納する。例えば、レジスタＲ２から読み出された画素データの濃度値が「２，１０，１２，１６，２０，…」であるときは、濃度変換後の画素データの濃度値は「０，２，２，３，４，…」のようになる。次に、ステップＳ７において、ＳＩＭＤプロセッサ２０は、レジスタＲ２に格納された濃度変換後の画素データをレジスタＲ３にコピーしてステップＳ４に進む。
【００２９】
最後に、ＳＩＭＤプロセッサ２０は、レジスタＲ３に格納された画素データをバス１７を介してＲＡＭ１１に出力するように、メモリコントローラ２３を制御して濃度変換処理を終了する。これに応答して、メモリコントローラ２３は、レジスタＲ３に格納された濃度変換後の画素データを読み出して外部メモリ３３に格納した後に、外部メモリ３３に格納された濃度変換後の画素データを読み出してバス１７を介してＲＡＭ１１に出力する。
【００３０】
従来技術に係るＳＩＭＤプロセッサ２０は、ステップＳ２における判断処理を行うことなく、ステップＳ５、Ｓ６、Ｓ７及びＳ４の各処理を行っていたので、ＳＩＭＤ数Ｎｓ個の画像データ毎にメモリコントローラ２２よる処理を行う必要があった。しかしながら、本実施形態に係るＳＩＭＤプロセッサ２０によれば、レジスタＲ１に格納された画像データの濃度値の値が全てゼロのときには、メモリコントローラ２２を動作させずに、濃度変換後の画素データ（全てゼロである。）をレジスタＲ３にセットするので、従来技術に比較して大幅に処理速度を向上できる。
【００３１】
第２の実施形態．
図６は、本発明の第２の実施形態に係る濃度変換処理を示すフローチャートである。図６の濃度変換処理は図１のＳＩＭＤプロセッサ２０によって実行され、図５の濃度変換処理のステップＳ２及びＳ３を、ステップＳ２Ａ及びＳ３Ａにそれぞれ置き換えたものである。ステップＳ２Ａにおいて、ＳＩＭＤプロセッサ２０は、レジスタＲ１に格納された全ての画素データの濃度変換後の値は互いに同一であるか否かを判断し、ＹＥＳのときはステップＳ３Ａに進む一方、ＮＯのときはステップＳ５に進む。そして、ステップＳ３Ａにおいて、レジスタＲ３にＳＩＭＤ数Ｎｓ個の上記濃度変換後の値をセットする。
【００３２】
本実施形態において、ＳＩＭＤプロセッサ２０は、濃度変換後の画素データの濃度値が互いに同一になる入力される画素データの濃度値の情報を、ＳＩＭＤプロセッサ２０の内部のメモリ（図示せず。）に予め記憶している。例えば、ＳＩＭＤプロセッサ２０は、入力される画素データの濃度値が０以上４以下の値であるときは濃度変換後の画素データの濃度値はゼロになり、入力される画素データの濃度値が５以上９以下の値であるときは濃度変換後の画素データの濃度値は１になり、入力される画素データの濃度値が１０以上１４以下の値であるときは濃度変換後の画素データの濃度値は２になり、入力される画素データの濃度値が１５以上２０以下の値であるときは濃度変換後の画素データの濃度値は３になり、…という情報を予め上記メモリに記憶している。ＳＩＭＤプロセッサ２０は、この情報に基づいて、ステップＳ２Ａにおける判断処理を行う。
【００３３】
例えば、レジスタＲ１に格納された画素データの濃度値が全て０以上４以下の値であるときは、図４に示すように、濃度変換後の値は全てゼロになる。そこで、ＳＩＭＤプロセッサ２０は、ステップＳ３Ａにおいて、ＳＩＭＤ数Ｎｓ個のゼロデータをレジスタＲ３にセットする。同様に、レジスタＲ１に格納された画素データの濃度値が全て５以上９以下のときは、ＳＩＭＤ数Ｎｓ個の「１」のデータをレジスタＲ３にセットし、レジスタＲ１に格納された画素データの濃度値が全て１０以上１４以下のときは、ＳＩＭＤ数Ｎｓ個の「２」のデータをレジスタＲ３にセットし、レジスタＲ１に格納された画素データの濃度値が全て１５以上１９以下のときは、ＳＩＭＤ数Ｎｓ個の「３」のデータをレジスタＲ３にセットし、レジスタＲ１に格納された画素データの濃度値が全て２０以上２３以下のときは、ＳＩＭＤ数Ｎｓ個の「４」のデータをレジスタＲ３にセットする。
【００３４】
従って、本実施形態によれば、レジスタＲ１に格納された全ての画素データの濃度変換後の値は互いに同一であるときには、メモリコントローラ２２を動作させずに、濃度変換後の画素データをレジスタＲ３にセットするので、第１の実施形態に比較してさらに処理速度を向上できる。
【００３５】
なお、第１及び第２の実施形態においてＳＩＭＤプロセッサ２０はメモリコントローラ２２を用いて図５の濃度変換処理を実行した。しかしながら、本発明はこれに限られず、外部メモリ３２内の所定のルックアップテーブルを参照して、γ変換処理、階調数変更処理、空間フィルター処理、シューティング補正処理又は色空間変換処理などの所定の処理を行うように、メモリコントローラ２２を制御してもよい。
【００３６】
第３の実施形態．
図７は、本発明の第３の実施形態に係るＳＩＭＤ処理部１４Ａの構成を示すブロック図であり、図９〜図１１は、図７のＳＩＭＤプロセッサ２０Ａによって実行されるオフセットライン画像データ生成処理を示すフローチャートである。そして、図８は、図９〜図１１のオフセットライン画像データ生成処理において生成される各ヘッド１６−１〜１６−６のノズルＨ１のオフセットライン画像データＤＬＯ１〜ＤＬＯ６を示す図である。また、図９〜図１１のオフセットライン画像データ生成処理における処理対象のライン画像データＤＬと、処理後のオフセットライン画像データＤＬＯとの関係を示す説明図である。なお、ＳＩＭＤプロセッサ２Ａ０は当該ＳＩＭＤプロセッサの動作を制御する制御手段であるコントローラ（図示せず。）を含み、ＳＩＭＤプロセッサ２０Ａの動作の主体は当該コントローラであるが、以下、当該コントローラの記載を省略する。
【００３７】
詳細後述するように、オフセットライン画像データＤＬＯは、ＳＩＭＤ数Ｎｓの整数Ｋｈ倍であるＱｈ個のゼロデータを含む第１の部分と、第１の部分に続きかつＳＩＭＤ数Ｎｓよりも少ないＪｈ個のゼロデータ及び当該Ｊｈ個のゼロデータに続くライン画像データＤＬを含む第２の部分とを含む。本実施形態に係るＳＩＭＤプロセッサ２０Ａは、オフセットライン画像データＤＬＯのうち上記第１の部分を生成するときは、メモリコントローラ２４を動作させないことを決定し、ライン画像データＤＬをメモリコントローラ２４に出力することなく、上記Ｑｈ個のゼロデータを生成してオフセットライン画像データＤＬＯの第１の部分としてメモリコントローラ２３を介してバス１７に出力する一方、オフセットライン画像データＤＬＯのうち上記第２の部分を生成するときは、メモリコントローラ２４を動作させることを決定し、ライン画像データＤＬをメモリコントローラ２４に出力し、メモリコントローラ２４に対してライン画像データＤＬの先頭に上記Ｊｈ個のゼロデータを挿入するゼロデータ挿入処理を行うことによりオフセットライン画像データＤＬＯの第２の部分を生成してＳＩＭＤ型プロセッサ２０Ａに出力するように制御することを特徴としている。
【００３８】
本実施形態において、ＣＰＵ１０（図１参照。）は、各ヘッド１６−１〜１６−６の各ノズルＨ１〜Ｈ１９２毎のライン画像データＤＬを、それぞれオフセットライン画像データＤＬＯ（本明細書においてヘッド１６−１〜１６−６及びノズルＨ１〜Ｈ１９２を区別しない場合には、単に「オフセットライン画像データＤＬＯ」と表記する。）に変換するように、ＳＩＭＤ処理部１４Ａを制御する。ここで、図８に示すように、ヘッド１６−１のノズルＨ１のオフセットライン画像データＤＬＯ１は、印刷位置Ｐ（１−１），Ｐ（１−２），…，Ｐ（１−Ｍ）においてブラックのインクをヘッド１６−１のノズルＨ１から発射するか否かを示すＭ個の１ビットの画素データを含むライン画像データＤＬ１と、ライン画像データＤＬ１に続くＰｔ１個のゼロデータとを含む。また、ヘッド１６−２のノズルＨ１のオフセットライン画像データＤＬＯ２は、オフセット画素数Ｐｈ２個のゼロデータと、当該ゼロデータに続き、印刷位置Ｐ（１−１），Ｐ（１−２），…，Ｐ（１−Ｍ）においてイエローのインクをヘッド１６−２のノズルＨ１から発射するか否かをそれぞれ示すＭ個の１ビットの画素データを含むライン画像データＤＬ２と、ライン画像データＤＬ２に続くＰｔ２個のゼロデータを含む。
【００３９】
さらに、ヘッド１６−３のノズルＨ１のオフセットライン画像データＤＬＯ３は、オフセット画素数Ｐｈ３個のゼロデータと、当該ゼロデータに続き、印刷位置Ｐ（１−１），Ｐ（１−２），…，Ｐ（１−Ｍ）においてシアンのインクをヘッド１６−３のノズルＨ１から発射するか否かをそれぞれ示すＭ個の１ビットの画素データを含むライン画像データＤＬ３と、ライン画像データＤＬ３に続くＰｔ３個のゼロデータを含む。またさらに、ヘッド１６−４のノズルＨ１のオフセットライン画像データＤＬＯ４は、オフセット画素数Ｐｈ４個のゼロデータと、当該ゼロデータに続き、印刷位置Ｐ（１−１），Ｐ（１−２），…，Ｐ（１−Ｍ）においてマゼンタのインクをヘッド１６−４のノズルＨ１から発射するか否かをそれぞれ示すＭ個の１ビットの画素データを含むライン画像データＤＬ４と、ライン画像データＤＬ４に続くＰｔ４個のゼロデータを含む。
【００４０】
また、ヘッド１６−５のノズルＨ１のオフセットライン画像データＤＬＯ５は、オフセット画素数Ｐｈ５個のゼロデータと、当該ゼロデータに続き、印刷位置Ｐ（１−１），Ｐ（１−２），…，Ｐ（１−Ｍ）においてライトシアンのインクをヘッド１６−５のノズルＨ１から発射するか否かをそれぞれ示すＭ個の１ビットの画素データを含むライン画像データＤＬ５と、ライン画像データＤＬ５に続くＰｔ５個のゼロデータを含む。さらに、ヘッド１６−６のノズルＨ１のオフセットライン画像データＤＬＯ６は、オフセット画素数Ｐｈ６個のゼロデータと、当該ゼロデータに続き、印刷位置Ｐ（１−１），Ｐ（１−２），…，Ｐ（１−Ｍ）においてライトマゼンタのインクをヘッド１６−６のノズルＨ１から発射するか否かをそれぞれ示すＭ個の１ビットの画素データとを含むライン画像データＤＬ６とを含む。ここで、ゼロデータの個数Ｐｔ１，Ｐｔ２，Ｐｔ３，Ｐｔ４，Ｐｔ５，Ｐｔ６（ゼロである。）はそれぞれ、オフセット画素数Ｐｈ６，Ｐｈ５，Ｐｈ４，Ｐｈ３，Ｐｈ２，Ｐｈ１（ゼロである。）に等しい。
【００４１】
図１において、ＣＰＵ１０は、各ヘッド１６−２〜１６−６のオフセット量Ｄｏ２〜Ｄｏ６（図２参照。）に基づいて、各ヘッド１６−２〜１６−６のオフセット画素数Ｐｈ２〜Ｐｈ６を算出する。また、ヘッド１６−１のオフセット画素数Ｐｈ１をゼロに設定する。ここで、例えば、オフセット画素数Ｐｈ２は、ヘッド１６−２のオフセット量Ｄｏ２を印刷領域１００（図３参照。）における主走査方向Ａ１の画素数に換算することによって算出される。オフセット画素数Ｐｈ３〜Ｐｈ６もまた、オフセット画素数Ｐｈ２と同様に算出される。以下、オフセット画素数Ｐｈ１〜Ｐｈ６を区別しない場合は、単に「オフセット画素数Ｐｈ」と表記し、ゼロデータの個数Ｐｔ１〜Ｐｔ６を区別しない場合は、単に「ゼロデータの個数Ｐｔ」と表記する。
【００４２】
図７において、ＳＩＭＤ単位で画像データを処理するＳＩＭＤ処理部１４Ａは、ＳＩＭＤ型のプロセッサであるＳＩＭＤプロセッサ２０Ａと、外部制御手段であるメモリコントローラ２１，２３，２４と、ＲＡＭである外部メモリ３１，３３，３４とを備えて構成され、図９〜図１１のオフセットライン画像データ生成処理を行う。ＳＩＭＤプロセッサ２０は、ＳＩＭＤ数Ｎｓ個のデータをそれぞれ格納するためのレジスタＲ１，Ｒ４，Ｒ３を備え、メモリコントローラ２１，２４，２３からレジスタＲ１，Ｒ４，Ｒ３にそれぞれシリアル入力されるデータをＳＩＭＤ数Ｎｓ単位で処理する一方、レジスタＲ１，Ｒ４，Ｒ３に格納されたデータを、メモリコントローラ２１，２４，２３にそれぞれ出力する。メモリコントローラ２１及び２３はそれぞれ、ＳＩＭＤプロセッサ２０Ａによって制御され第１の実施形態と同様に動作する。また、メモリコントローラ２４は、レジスタＲ４に格納されたデータを読み出して、詳細後述する所定の処理を行い、処理後のデータをレジスタＲ４に出力するように、ＳＩＭＤプロセッサ２０Ａによって制御される。
【００４３】
次に、図９〜図１３を参照して、オフセットライン画像データ生成処理を説明する。ＣＰＵ１０は、各ヘッド１６−１〜１６−６の各ノズルＨ１〜Ｈ１９２毎のライン画像データＤＬ毎に、オフセットライン画像データ生成処理を行ってオフセットライン画像データＤＬＯを生成するように、ＳＩＭＤプロセッサ２０Ａを制御する。ステップＳ２１において、ＳＩＭＤプロセッサ２０Ａは、ライン画像データＤＬの画素数Ｍ、先頭に挿入するゼロデータの個数（オフセット画素数）Ｐｈ及び末尾に挿入するゼロデータの個数ＰｔをＣＰＵ１０から受信する。そして、ステップＳ２２において、オフセット画素数ＰｈをＳＩＭＤ数Ｎｓで割ったときの剰余であるパラメータＪｈ（ｍｏｄ（Ｐｈ，Ｎｓ）である。ただし、「ｍｏｄ」は剰余演算子を表し、ｍｏｄ（ａ，ｂ）はａをｂで割った剰余を示す。）を算出する。そして、オフセット画素数ＰｈとパラメータＪｈとＳＩＭＤ数Ｎｓを用いて、Ｐｈ個の画素データをＳＩＭＤ単位で処理するときの処理回数を示すパラメータＫｈ（（Ｐｈ−Ｊｈ）／Ｎｓである。）を算出する（図１３参照。）。さらに、Ｍ個の画素データをＳＩＭＤ単位で処理するときの処理回数を示すパラメータＫｄ（（Ｍ−ｍｏｄ（Ｍ，Ｎｓ））／Ｎｓである。）を算出する。
【００４４】
次に、Ｓ２３において、レジスタＲ４にＳＩＭＤ数Ｎｓ個のゼロデータをセットし、当該ゼロデータをレジスタＲ４から読み出して外部メモリ３４内のライトポインタ３４ｗの所定のライトポインタ位置３４ｗ０から格納するように、メモリコントローラ２４を制御する。そして、ステップＳ２４において、外部メモリ３４のライトポインタ３４ｗの位置を（３４ｗ０＋Ｊｈ）に設定し、外部メモリ３４のリードポインタ３４ｒの位置を３４ｗ０に設定し、外部メモリ３３のライトポインタ３３ｗの位置を所定のライトポインタ位置３３ｗ０に設定する。さらに、ステップＳ２５において、１つのライン画像データＤＬを受信して外部メモリ３１に出力するように、メモリコントローラ２１を制御する。
【００４５】
次に、ステップＳ２６において、図１２の「ゼロデータ挿入処理」が行われ、外部メモリ３３内の所定のライトポインタ３３ｗ０の位置からＱｈ（＝Ｋｈ×Ｎｓ）個のゼロデータが格納される。具体的には、図１２において、始めにステップＳ７０において、パラメータｎを１に設定し、ステップＳ７１においてパラメータｎがゼロデータ挿入回数以下であるか否かが判断される。ここで、ゼロデータ挿入回数は、ステップＳ２２において算出されたパラメータＫｈである。ステップＳ７１においてＹＥＳのときはステップＳ７２に進む一方、ＮＯのときは図９のオフセットライン画像データ生成処理に戻る。ステップＳ７２において、ＳＩＭＤプロセッサ２０Ａは、レジスタＲ３にＳＩＭＤ数Ｎｓ個のゼロデータをセットし、ステップＳ７３において、レジスタＲ３に格納されたＮｓ個のゼロデータを読み出して、外部メモリ３３内のライトポインタ３３ｗの位置から外部メモリ３３に格納するように、メモリコントローラ２３を制御する。そして、ステップＳ７４において外部メモリ３３のライトポインタ３３ｗの位置にＳＩＭＤ数Ｎｓを加算した後に、ステップＳ７５においてパラメータｎに１を加算してステップＳ７１に戻る。これにより、外部メモリ３３にＱｈ（＝Ｋｈ×Ｎｓ）個のゼロデータが格納される。
【００４６】
図９に戻り、ステップＳ２６に引き続きステップＳ２７において、パラメータｎが１に設定される。そして、ステップＳ２８において、パラメータｎがステップＳ２２で算出されたパラメータＫｄ以下であるか否かが判断され、ＹＥＳのときはステップＳ２９に進む一方、ＮＯのときはステップＳ３５に進む。ステップＳ２９では、ＳＩＭＤプロセッサ２０Ａは、ステップＳ２５において外部メモリ３１に格納されたライン画像データＤＬのうち、ＳＩＭＤ数Ｎｓ個の画素データを読み出してレジスタＲ１に出力するように、メモリコントローラ２１を制御する。そして、ステップＳ３０において、レジスタＲ１の画素データをレジスタＲ４にコピーし、当該コピーされた画素データをレジスタＲ４から読み出して、外部メモリ３４内のライトポインタ３４ｗの位置から外部メモリ３４に格納するように、メモリコントローラ２４を制御する。さらに、ステップＳ３１において、外部メモリ３４に格納された画素データを、リードポインタ３４ｒの位置からＳＩＭＤ数Ｎｓ個だけ読み出してレジスタＲ４に出力するように、メモリコントローラ２４を制御する。次に、ステップＳ３２において、外部メモリ３４のライトポインタ３４ｗの位置にＳＩＭＤ数Ｎｓが加算され、外部メモリ３４のリードポインタ３４ｒの位置にＳＩＭＤ数Ｎｓが加算される。そして、ステップＳ３３において、ＳＩＭＤプロセッサ２０Ａは、レジスタＲ４の画素データをレジスタＲ３にコピーし、当該コピーされた画素データをレジスタＲ３から読み出して、外部メモリ３３内のライトポインタ３３ｗの位置から外部メモリ３３に格納するように、メモリコントローラ２３を制御する。さらに、ステップＳ３４においてパラメータｎに１を加算し、かつ外部メモリ３３のライトポインタ３３ｗの位置にＳＩＭＤ数Ｎｓを加算してステップＳ２８に戻る。ステップＳ３４までの処理により、外部メモリ３１からＮｓ×Ｋｄ個の画素データが順次読み出され、外部メモリ３３内のライトレジスタ３３ｗ０の位置から（Ｎｓ×Ｋｈ＋Ｊｈ）個のゼロデータと、（Ｎｓ×Ｋｄ−Ｊｈ）個の画素データとが格納される。
【００４７】
ステップＳ３５において、ＳＩＭＤプロセッサ２０Ａは、外部メモリ３１に格納されたライン画像データＤＬのうち、最後のｍｏｄ（Ｍ，Ｎｓ）個の画素データを読み出してレジスタＲ１に出力するように、メモリコントローラ２１を制御する。そして、ステップＳ３６において、レジスタＲ１のｍｏｄ（Ｍ，Ｎｓ）個の画素データをレジスタＲ４にコピーし、当該コピーされた画素データをレジスタＲ４から読み出して、外部メモリ３４内のライトポインタ３４ｗの位置から外部メモリ３４に格納するように、メモリコントローラ２４を制御する。これにより、ライン画像データＤＬを構成するＭ個の画素データの全てが外部メモリ３４に格納される。さらに、ステップＳ３７において、外部メモリ３４のライトポインタ３４ｗの位置にｍｏｄ（Ｍ，Ｎｓ）を加算する。引き続き、ステップＳ３８において、レジスタＲ４にＳＩＭＤ数Ｎｓ個のゼロデータをセットし、当該ゼロデータをレジスタＲ４から読み出して、外部メモリ３４内のライトポインタ３４ｗの位置から外部メモリ３４に格納するように、メモリコントローラ２４を制御する。これにより、ステップＳ３６において外部メモリ３４内に格納された画素データに引き続いて、ＳＩＭＤ数Ｎｓ個のゼロデータが格納される。
【００４８】
次に、ステップＳ３９において、これまでに外部メモリ３１から読み出されて外部メモリ３４に格納された画素データのうち、まだ外部メモリ３３に格納されていない画素データの個数を表すパラメータＪｄ（Ｊｈ＋ｍｏｄ（Ｍ，Ｎｓ）である。）を算出する。そして、ステップＳ４０において、パラメータＪｄがＳＩＭＤ数Ｎｓよりも大きいか否かが判断され、ＹＥＳのときはステップＳ４１に進む一方、ＮＯのときはステップＳ４５に進む。ステップＳ４２において、ＳＩＭＤプロセッサ２０Ａは、外部メモリ３４に格納された画素データを、リードポインタ３４ｒの位置からＳＩＭＤ数Ｎｓ個だけ読み出してレジスタＲ４に出力するように、メモリコントローラ２４を制御し、ステップＳ４３において、外部メモリ３４のリードポインタ３４ｒの位置にＳＩＭＤ数Ｎｓを加算する。そして、ステップＳ４３において、ＳＩＭＤプロセッサ２０Ａは、レジスタＲ４の画素データをレジスタＲ３にコピーし、当該コピーされた画素データをレジスタＲ３から読み出して、外部メモリ３３内のライトポインタ３３ｗの位置から外部メモリ３３に格納するように、メモリコントローラ２３を制御する。引き続き、ステップＳ４４においてパラメータＪｄからＳＩＭＤ数Ｎｓを減算してステップＳ４０に戻る。
【００４９】
次に、ステップＳ４５において、ＳＩＭＤプロセッサ２０Ａは、外部メモリ３４に格納されたデータを、リードポインタ３４ｒの位置からＳＩＭＤ数Ｎｓ個だけ読み出してレジスタＲ４に出力するように、メモリコントローラ２４を制御する。ここで、レジスタＲ４に出力されたデータは、Ｊｄ個の画素データとＪｔ１（Ｎｓ−Ｊｄである。）個のゼロデータとを含む（図１３参照。）。そして、ステップＳ４６において、ゼロデータの個数Ｊｔ１がライン画像データＤＬの末尾に挿入するゼロデータの個数Ｐｔよりも小さいか否かが判断され、ＹＥＳのときはステップＳ４７に進む一方、ＮＯのときはステップＳ５２に進む。ステップＳ４７において、ＳＩＭＤプロセッサ２０Ａは、レジスタＲ４のデータをレジスタＲ３にコピーし、当該コピーされたデータのうち（Ｊｄ＋Ｐｔ）個のデータをレジスタＲ３から読み出して外部メモリ３３内のライトポインタ３３ｗの位置から外部メモリ３３に格納するように、メモリコントローラ２３を制御して、ステップＳ５２に進む。
【００５０】
一方、ステップＳ４８において、ＳＩＭＤプロセッサ２０Ａは、レジスタＲ４のデータをレジスタＲ３にコピーし、当該コピーされたデータをレジスタＲ３から読み出して外部メモリ３３内のライトポインタ３３ｗの位置から外部メモリ３３に格納するように、メモリコントローラ２３を制御する。これにより、外部メモリ３３には、Ｍ個の画素データ（ライン画像データＤＬである。）に引き続いてＪｔ１個のゼロデータが格納される。そして、ステップＳ４９において、ライン画像データＤＬの末尾に挿入する残りのゼロデータの個数（Ｐｔ−Ｊｔ１）をＳＩＭＤ数Ｎｓで割ったときの剰余であるパラメータＪｔ２（ｍｏｄ（Ｐｔ−Ｊｔ１，Ｎｓ）である。）及び（Ｐｔ−Ｊｔ１）個のデータをＳＩＭＤ単位で処理するときの処理回数Ｋｔ（Ｐｔ−Ｊｔ１−Ｊｔ２）／Ｎｓである。）を算出する。そして、ステップＳ５０において、図１２の「ゼロデータ挿入処理」を行い、外部メモリ３３にＫｔ×Ｎｓ個のゼロデータを格納する。このとき、図１２のステップＳ７１における「ゼロデータの挿入回数」は上述した処理回数Ｋｔである。これにより、外部メモリ３３内に、Ｊｔ１個のゼロデータに引き続いてＮｓ×Ｋｔ個のゼロデータが格納される。次に、ＳＩＭＤプロセッサ２０Ａは、ステップＳ５１において、レジスタＲ３にＳＩＭＤ数Ｎｓ個のゼロデータをセットし、当該ゼロデータのうちのＪｔ２個のゼロデータをレジスタＲ３から読み出して外部メモリ３３内のライトポインタ３３ｗの位置から外部メモリ３３に格納するように、メモリコントローラ２３を制御する。以上の処理により、外部メモリ３３には、Ｐｈ個のゼロデータと、ライン画像データＤＬを構成するＭ個の画素データと、Ｐｔ個のゼロデータが格納され、これによりオフセットライン画像データＤＬＯが生成される。最後に、ステップＳ５２において、ＳＩＭＤプロセッサ２０Ａは、外部メモリ３３のオフセットライン画像データＤＬＯを、バス１７を介して出力するように、メモリコントローラ３３を制御する。
【００５１】
次に、図１４〜図１７を参照して、ＳＩＭＤ数Ｎｓが３５２であり、５０００個の画素データを含むライン画像データＤＬの先頭に５００個のゼロデータを挿入するとき（すなわち、図９〜図１２においてＭ＝５０００、Ｐｈ＝５００であるとき。）のＳＩＭＤプロセッサ２０Ａの動作の一例を説明する。このとき、図９のステップＳ２２において算出されるパラメータＪｈは１４８であり、パラメータＫｈは１である。図１４は、図９のステップＳ２３におけるＳＩＭＤプロセッサ２０Ａの動作の一例を示すブロック図である。図１４に示すように、ステップＳ２３において、３５２個のゼロデータがレジスタＲ４に格納された後、当該ゼロデータが外部メモリ３４内のライトポインタ３４ｗの位置３４ｗ０から外部メモリ３４に格納される。
【００５２】
図１５は、図９のステップＳ２５及びＳ２６におけるＳＩＭＤプロセッサ２０Ａの動作の一例を示すブロック図である。図１５において、１つのライン画像データＤＬを構成するＭ（５０００である。）個の画素データが外部メモリ３１に格納される。一方、図１２のゼロデータ挿入処理により、レジスタＲ３に３５２個のゼロデータが格納され、当該ゼロデータは外部メモリ３３内のライトポインタの位置３３ｗ０から外部メモリ３３に格納される。
【００５３】
図１６は、図９のステップＳ２９におけるＳＩＭＤプロセッサ２０Ａの動作の一例を示すブロック図である。図１６において、外部メモリ３１に格納された５０００個の画素データのうちの始めの３５２個の画素データがレジスタＲ１に出力され、当該出力された画素データはレジスタＲ４にコピーされる。そして、レジスタＲ４内の３５２個の画素データは、外部メモリ３４内のライトポインタ（３４ｗ０＋１４８）の位置から外部メモリ３４に格納される。これにより、外部メモリ３４には、１４８個のゼロデータに引き続いて３５２個の画素データが格納される。
【００５４】
図１７は、図９のステップＳ３１及び図１０のステップＳ３３におけるＳＩＭＤプロセッサ２０Ａの動作の一例を示すブロック図である。図１７において、外部メモリ３４のリードポインタ３４ｒの位置３４ｗ０から３５２個のデータが読み出されてレジスタＲ４に出力される。このとき、レジスタＲ４に格納されたデータは１４８個のゼロデータと２０４個の画素データとを含む。そして、レジスタＲ４内のデータはレジスタＲ３にコピーされた後、外部メモリ３３の３５２個のゼロデータに引き続いて外部メモリ３３に格納される。このようにして、オフセットライン画像データＤＬの先頭に５００個のゼロデータが挿入される。例えば、７０００ライン分のオフセットライン画像データに５００個のゼロデータを挿入するときは、図９〜図１１のオフセットライン画像データ生成処理は７０００回繰り返して実行される。
【００５５】
本実施形態によれば、ＳＩＭＤプロセッサ２０Ａは、ライン画像データＤＬの先頭にＰｈ個のゼロデータを挿入するときに、挿入するゼロデータの個数Ｐｈから、当該個数ＰｈをＳＩＭＤ数Ｎｓで割ったときの剰余Ｊｈを減算した個数Ｑｈのゼロデータ（図９のステップＳ２２及び図１３参照。）を、メモリコントローラ２４を動作させることなく外部メモリ３３に格納する。また、図１３に示すように、ライン画像データＤＬの末尾にＰｔ個のゼロデータを挿入するときに、Ｎｓ×Ｋｔ個のゼロデータを、メモリコントローラ２４を動作させることなく外部メモリ３３に格納する。従って、全てのゼロデータをメモリコントローラ２２を動作させて挿入する場合に比較して、高速にオフセットライン画像データＤＬＯを生成できる。
【００５６】
上記各実施形態では、インクジェットプリンタ装置１のＳＩＭＤプロセッサ２０及び２０Ａの動作を説明した。しかしながら、本発明はこれに限られず、複数の入力画素データに基づいて複数の出力画素データを生成して外部回路に出力するＳＩＭＤ型プロセッサを備えた複合機などの画像処理装置のためのＳＩＭＤ型プロセッサであってもよい。この場合、ＳＩＭＤ型プロセッサは、所定のＳＩＭＤ数Ｎｓ毎の出力画素データに基づいて、上記ＳＩＭＤ型プロセッサの外部に設けられた外部制御手段を動作させるか否かを決定し、上記外部制御手段を動作させるときは、上記複数の入力画素データを上記外部制御手段に出力して、上記外部制御手段に対して上記複数の入力画素データに対して所定の処理を行い上記複数の出力画素データを生成して上記ＳＩＭＤ数Ｎｓ単位で上記ＳＩＭＤ型プロセッサに出力するように制御し、上記外部制御手段から入力された複数の出力画素データを上記外部回路に出力し、上記外部制御手段を動作させないときは、上記入力画素データを上記外部制御手段に出力することなく上記複数の出力画素データを生成して上記外部回路に出力する制御手段を備える。
【００５７】
上記の各実施形態に係る濃度変換処理及びイン画像データ生成処理の処理ステップを含むプログラムはコンピュータにより実行可能であって、ＳＩＭＤ処理部１４又は１４Ａ内の内蔵メモリに格納されてＳＩＭＤ処理部１４又は１４Ａにより実行される。当該プログラムは例えばＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ、ＤＶＤ−Ｒなどのコンピュータにより読み取り可能な記録媒体に記録してもよい。
【産業上の利用可能性】
【００５８】
以上詳述したように、本発明に係るＳＩＭＤ型プロセッサとその処理方法、プログラム及び記録媒体によれば、所定のＳＩＭＤ数Ｎｓ毎の出力画素データに基づいて、ＳＩＭＤ型プロセッサの外部に設けられた外部制御手段を動作させるか否かを決定し、外部制御手段を動作させないときは、入力画素データを外部制御手段に出力することなく複数の出力画素データを生成して上記外部回路に出力するので、出力画素データを従来技術に比較して高速で生成できる。
【００５９】
本発明に係るＳＩＭＤ型プロセッサは、入力画素データをＳＩＭＤ数Ｎｓ単位で処理するＳＩＭＤ型プロセッサを備えたインクジェットプリンタ装置又は複合機などの画像処理装置のためのＳＩＭＤ型プロセッサとして有用である。
【符号の説明】
【００６０】
１…インクジェットプリンタ装置、
１０…ＣＰＵ、
１１…ＲＡＭ、
１２…ＲＯＭ、
１３…インターフェース回路、
１４，１４Ａ…ＳＩＭＤ処理部、
１５…印刷部、
１６…ノズルヘッド部、
１６−１〜１６−６…ヘッド、
１７…バス、
２０，２０Ａ…ＳＩＭＤプロセッサ、
２１〜２４…メモリコントローラ、
３１〜３４…外部メモリ、
３２ｔ…ルックアップテーブル、
Ａ１…主走査方向、
Ａ２…副走査方向、
Ｄｏ２〜Ｄｏ６…オフセット量、
ＤＬ，ＤＬ１〜ＤＬ６…ライン画像データ、
ＤＬＯ，ＤＬＯ１〜ＤＬＯ６…オフセットライン画像データ、
Ｈ１〜Ｈ１９２…ノズル、
Ｐｈ，Ｐｈ１〜Ｐｈ６…オフセット画素数、
Ｒ１〜Ｒ４…レジスタ。
【先行技術文献】
【特許文献】
【００６１】
【特許文献１】特開２００８−９６９７号公報。
【特許文献２】特開２００８−２５８９８０号公報。
【図１】
2011065206.tif 000003
【図２】
2011065206.tif 000004
【図３】
2011065206.tif 000005
【図４】
2011065206.tif 000006
【図５】
2011065206.tif 000007
【図６】
2011065206.tif 000008
【図７】
2011065206.tif 000009
【図８】
2011065206.tif 000010
【図９】
2011065206.tif 000011
【図１０】
2011065206.tif 000012
【図１１】
2011065206.tif 000013
【図１２】
2011065206.tif 000014
【図１３】
2011065206.tif 000015
【図１４】
2011065206.tif 000016
【図１５】
2011065206.tif 000017
【図１６】
2011065206.tif 000018
【図１７】
2011065206.tif 000019