(57)【要約】【課題】複数のプロセッサを有する共有メモリ型の装置において、プロセッサのストール期間を短くし、画像処理に要する時間を短くすること。【解決手段】演算処理手段６，７は、テーブル１４，１５，１６を使用して、一連の画像データに対して画像処理を順次施す。第１のメモリアクセス手段ＭＡ１−１，ＭＡ１−２は、演算処理手段６，７とは独立に動作し演算処理手段６，７の画像処理と並行して、バスを介してメモリ８から画像データを取得しバスを介さずに演算処理手段６，７に供給する。第２のメモリアクセス手段ＭＡ２，ＭＡ３−１，ＭＡ３−２は、演算処理手段６，７とは独立に動作し演算処理手段６，７の画像処理と並行して、バスを介してメモリ８からテーブル１４，１５，１６を取得しバスを介さずに演算処理手段６，７に供給する。【選択図】図２
2007287072.tif 000002
【特許請求の範囲】
【請求項１】
複数の演算処理手段と、メモリと、上記複数の演算処理手段のそれぞれと上記メモリと
を接続するバスとを備える画像処理装置において、
上記複数の演算処理手段のうちのいずれか１つの演算処理手段であって、テーブルを使
用して、一連の画像データに対して画像処理を順次施す演算処理手段と、
上記演算処理手段とは独立に動作し上記演算処理手段の画像処理と並行して、上記バス
を介して上記メモリから上記画像データを取得し上記バスを介さずに上記演算処理手段に
供給する第１のメモリアクセス手段と、
上記演算処理手段とは独立に動作し上記演算処理手段の画像処理と並行して、上記バス
を介して上記メモリから上記テーブルを取得し上記バスを介さずに上記演算処理手段に供
給する第２のメモリアクセス手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記第２のメモリアクセス手段は、前記バスを介して前記メモリからルックアップテー
ブルを取得して前記バスを介さずに前記演算処理手段に供給し、
前記演算処理手段は、そのルックアップテーブルを使用して、画像データに対して色変
換処理を施すこと、
を特徴とする請求項１記載の画像処理装置。
【請求項３】
前記第２のメモリアクセス手段は、ハーフトーン処理に使用するテーブルを前記バスを
介して前記メモリから取得して、前記バスを介さずに前記演算処理手段に供給し、
前記演算処理手段は、そのテーブルを使用して、画像データに対してハーフトーン処理
を施すこと、
を特徴とする請求項１記載の画像処理装置。
【請求項４】
前記第１のメモリアクセス手段は、前記演算処理手段が前記バスを介さずに読み取り可
能なデータキューと、前記演算処理手段から先頭アドレスを取得すると、その先頭アドレ
スから順番に画像データを前記メモリから前記バスを介して取得し上記データキューに格
納する制御回路とを有することを特徴とする請求項１記載の画像処理装置。
【請求項５】
前記第２のメモリアクセス手段は、前記演算処理手段が前記バスを介さずに書き込み可
能なアドレスキューと、前記演算処理手段が前記バスを介さずに読み取り可能なデータキ
ューと、前記アドレスキューに格納されたアドレスを取得し、前記テーブルのうち、その
アドレスのデータを前記メモリから前記バスを介して取得し上記データキューに格納する
制御回路とを有することを特徴とする請求項１から請求項３のうちのいずれか１項記載の
画像処理装置。
【請求項６】
前記演算処理手段は、少なくとも２つのバンクを有する内部メモリを有し、
前記第２のメモリアクセス手段は、前記演算処理手段から先頭アドレスを取得すると、
その先頭アドレスから所定長のデータを前記メモリから前記バスを介して取得し、上記内
部メモリの一方のバンクおよび他方のバンクのいずれかに交互に格納すること、
を特徴とする請求項１または請求項３記載の画像処理装置。
【請求項７】
請求項１から請求項６のうちのいずれか１項記載の画像処理装置を備え、その画像処理
装置により画像処理を施されて得られたデータに基づいて印刷処理を行うことを特徴とす
る印刷装置。
【請求項８】
複数の演算処理手段と、メモリと、上記複数の演算処理手段のそれぞれと上記メモリと
を接続するバスとを備える画像処理装置を使用する画像処理方法において、
上記複数の演算処理手段のうちのいずれか１つの演算処理手段により、テーブルを使用
して、一連の画像データに対して画像処理を順次施すステップと、
上記演算処理手段の画像処理と並行して、上記バスを介して上記メモリから上記画像デ
ータを取得して上記バスを介さずに上記演算処理手段に供給するステップと、
上記演算処理手段の画像処理と並行して、上記バスを介して上記メモリから上記テーブ
ルを取得して上記バスを介さずに上記演算処理手段に供給するステップと、
を備えることを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、印刷装置および画像処理方法に関するものである。
【背景技術】
【０００２】
複数のプロセッサを使用し並列処理により画像処理を行う装置が提案されている（例え
ば特許文献１参照）。
【０００３】
通常、プロセッサから、プロセッサの外部にあるＲＡＭ（ランダムアクセスメモリ）に
アクセスする場合、プロセッサの１命令あたりの所要時間に対比して大きなレイテンシが
発生する。それに起因して、メモリアクセス命令に基づき外部ＲＡＭに対するアクセス要
求が発行されてからアクセス処理が完了するまでの期間、プロセッサはストールし次の処
理に進まない。したがって、共有メモリ型の装置の場合には、外部ＲＡＭに接続するバス
が複数のプロセッサに対して共通であるため、１プロセッサの場合に比べ、プロセッサが
多いほど、レイテンシが増大する傾向にある。
【０００４】
このような問題に対して、ライト処理に関しては、キャッシュ、ライトバッファ（スト
アバッファ）などがあれば、キャッシュ、ライトバッファなどにデータを書き込んだ時点
でプロセッサはライト処理を完了し次の処理が開始されるため、比較的問題は少ない。
【０００５】
一方、リード処理に関しては、キャッシュを設けることで、レイテンシに起因するプロ
セッサのストールをある程度低減することが可能である。例えば、キャッシュのラインサ
イズが１２８ビットであり、キャッシュへの１回のアクセス単位が３２ビットである場合
には、外部ＲＡＭへの１回のアクセスで１２８ビット分キャッシュに読み出すことで、連
続した領域からデータを読み出す際のアクセス回数が減るため、プロセッサのストール期
間が短くなる。
【０００６】
【特許文献１】特開２００５−２６０４２４号公報（明細書等）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、複数のプロセッサを有する共有メモリ型の装置の場合、そのようにキャ
ッシュを使用しても、リード処理時のプロセッサのストール期間は発生する。特に、外部
ＲＡＭから、プロセッサのキャッシュや内部ＲＡＭのサイズより大きいサイズのテーブル
を適宜読み込んで画像処理を行う場合には、この問題は顕著になる。また、特に、処理対
象となる画像データがプロセッサのキャッシュや内部ＲＡＭのサイズより大きいサイズの
場合、外部ＲＡＭからデータを繰り返し読み込む動作が必要になるため、レイテンシに起
因したプロセッサのストールが発生しやすい。
【０００８】
本発明は、上記の問題に鑑みてなされたものであり、複数のプロセッサを有する共有メ
モリ型の装置において、プロセッサのストール期間を短くし、画像処理に要する時間を短
くすることができる画像処理装置および画像処理方法、並びにそれを利用した印刷装置を
得ることを目的とする。
【課題を解決するための手段】
【０００９】
上記の課題を解決するために、本発明では以下のようにした。
【００１０】
本発明に係る画像処理装置は、複数の演算処理手段と、メモリと、複数の演算処理手段
のそれぞれとメモリとを接続するバスとを備える画像処理装置であって、複数の演算処理
手段のうちのいずれか１つの演算処理手段であって、テーブルを使用して、一連の画像デ
ータに対して画像処理を順次施す演算処理手段と、演算処理手段とは独立に動作し演算処
理手段の画像処理と並行して、バスを介してメモリから画像データを取得しバスを介さず
に演算処理手段に供給する第１のメモリアクセス手段と、演算処理手段とは独立に動作し
演算処理手段の画像処理と並行して、バスを介してメモリからテーブルを取得しバスを介
さずに演算処理手段に供給する第２のメモリアクセス手段とを備える。
【００１１】
これにより、共有メモリからのデータリードをメモリアクセス手段が実行するため、複
数のプロセッサを有する共有メモリ型の装置にも拘わらず、プロセッサのストール期間を
短くし、画像処理に要する時間を短くすることができる。
【００１２】
また、本発明に係る画像処理装置は、上記の画像処理装置に加え、次のようにしてもよ
い。つまり、その場合、第２のメモリアクセス手段は、バスを介してメモリからルックア
ップテーブルを取得してバスを介さずに演算処理手段に供給し、演算処理手段は、そのル
ックアップテーブルを使用して、画像データに対して色変換処理を施す。
【００１３】
これにより、共有メモリからのデータリードをメモリアクセス手段が実行するため、複
数のプロセッサを有する共有メモリ型の装置にも拘わらず、プロセッサのストール期間を
短くし、色変換処理に要する時間を短くすることができる。
【００１４】
また、本発明に係る画像処理装置は、上記の画像処理装置のいずれかに加え、次のよう
にしてもよい。つまり、その場合、第２のメモリアクセス手段は、ハーフトーン処理に使
用するテーブルをバスを介してメモリから取得して、バスを介さずに演算処理手段に供給
し、演算処理手段は、そのテーブルを使用して、画像データに対してハーフトーン処理を
施す。
【００１５】
これにより、共有メモリからのデータリードをメモリアクセス手段が実行するため、複
数のプロセッサを有する共有メモリ型の装置にも拘わらず、プロセッサのストール期間を
短くし、ハーフトーン処理に要する時間を短くすることができる。
【００１６】
また、本発明に係る画像処理装置は、上記の画像処理装置のいずれかに加え、次のよう
にしてもよい。つまり、その場合、第１のメモリアクセス手段は、演算処理手段がバスを
介さずに読み取り可能なデータキューと、演算処理手段から先頭アドレスを取得すると、
その先頭アドレスから順番に画像データをメモリからバスを介して取得しデータキューに
格納する制御回路とを有する。
【００１７】
これにより、共有メモリからの入力データの読み込みを第１のメモリアクセス手段が実
行するため、複数のプロセッサを有する共有メモリ型の装置にも拘わらず、プロセッサの
ストール期間を短くし、画像処理に要する時間を短くすることができる。
【００１８】
また、本発明に係る画像処理装置は、上記の画像処理装置のいずれかに加え、次のよう
にしてもよい。つまり、その場合、第２のメモリアクセス手段は、演算処理手段がバスを
介さずに書き込み可能なアドレスキューと、演算処理手段がバスを介さずに読み取り可能
なデータキューと、アドレスキューに格納されたアドレスを取得し、テーブルのうち、そ
のアドレスのデータをメモリからバスを介して取得しデータキューに格納する制御回路と
を有する。
【００１９】
これにより、共有メモリからテーブルをランダムに読み込む処理を第２のメモリアクセ
ス手段が実行するため、複数のプロセッサを有する共有メモリ型の装置にも拘わらず、プ
ロセッサのストール期間を短くし、画像処理に要する時間を短くすることができる。
【００２０】
また、本発明に係る画像処理装置は、上記の画像処理装置のいずれかに加え、次のよう
にしてもよい。つまり、その場合、演算処理手段は、少なくとも２つのバンクを有する内
部メモリを有する。そして、第２のメモリアクセス手段は、演算処理手段から先頭アドレ
スを取得すると、その先頭アドレスから所定長のデータをメモリからバスを介して取得し
、内部メモリの一方のバンクおよび他方のバンクのいずれかに交互に格納する。
【００２１】
これにより、共有メモリからテーブルを逐次的に読み込む処理を第２のメモリアクセス
手段が実行するため、複数のプロセッサを有する共有メモリ型の装置にも拘わらず、プロ
セッサのストール期間を短くし、画像処理に要する時間を短くすることができる。
【００２２】
本発明に係る印刷装置は、上記の画像処理装置のいずれかを備え、その画像処理装置に
より画像処理を施されて得られたデータに基づいて印刷処理を行う。
【００２３】
これにより、共有メモリからのデータリードをメモリアクセス手段が実行するため、複
数のプロセッサを有する共有メモリ型の装置にも拘わらず、プロセッサのストール期間を
短くし、画像処理に要する時間、ひいては印刷時間を短くすることができる。
【００２４】
本発明に係る画像処理方法は、複数の演算処理手段と、メモリと、複数の演算処理手段
のそれぞれとメモリとを接続するバスとを備える画像処理装置を使用する画像処理方法で
あって、複数の演算処理手段のうちのいずれか１つの演算処理手段により、テーブルを使
用して、一連の画像データに対して画像処理を順次施すステップと、演算処理手段の画像
処理と並行して、バスを介してメモリから画像データを取得してバスを介さずに演算処理
手段に供給するステップと、演算処理手段の画像処理と並行して、バスを介してメモリか
らテーブルを取得してバスを介さずに演算処理手段に供給するステップとを備える。
【００２５】
これにより、共有メモリからのデータリードをプロセッサとは独立に実行するため、複
数のプロセッサを有する共有メモリ型の装置にも拘わらず、プロセッサのストール期間を
短くし、画像処理に要する時間を短くすることができる。
【発明を実施するための最良の形態】
【００２６】
以下、図に基づいて本発明の実施の形態を説明する。
【００２７】
実施の形態１．
図１は、本発明の実施の形態１に係る画像処理装置のハードウェア構成を示すブロック
図である。この画像処理装置は、インクジェットプリンタなどの印刷装置に内蔵されるも
のであって、ＲＧＢデータなどの画像データから２値化データを生成する共有メモリ型の
並列処理装置である。
【００２８】
図１において、プロセッサ１は、プロセッサ２，６，７を制御し、画像処理の流れを制
御する演算処理器である。プロセッサ２は、プロセッサ３，４，５を制御して画像データ
のデコード処理および画像補正処理を実行させるとともに、リサイズ処理およびレイアウ
ト処理を実行する演算処理器である。デコード処理は、ＪＰＥＧ（Joint Picture Expert
s Group ）データなどの符号化された画像データをデコードしＲＧＢデータを生成する処
理である。リサイズ処理は、ＲＧＢデータの解像度を変換する処理である。レイアウト処
理は、リサイズ後のＲＧＢデータによる画像を印刷用紙に合わせて配置するようにしたＲ
ＧＢデータを生成する処理である。プロセッサ３は、デコード処理の前段を実行する演算
処理器であり、プロセッサ４は、デコード処理の後段を実行する演算処理器である。プロ
セッサ５は、画像補正処理を実行する演算処理器である。
【００２９】
また、プロセッサ６は、色変換処理、およびハーフトーン処理のうちのエンコーディン
グ処理を実行する演算処理手段としての演算処理器である。ＣＰＵ６ａは、プロセッサ６
に内蔵される演算処理回路である。内部ＲＡＭ６ｂは、プロセッサ６に内蔵されバス９を
介さずにＣＰＵ６ａに接続された内部メモリである。内部ＲＡＭ６ｂには、スタティック
ＲＡＭなどの高速なメモリが使用される。
【００３０】
実施の形態１では、ハーフトーン処理として、例えば特開２００４−２９７４５１号公
報に開示されている方式の処理が実行される。この処理では、例えば４×２などの画素ブ
ロック毎にエンコードテーブルを使用して、その画素ブロックを、その画素ブロック内の
２値化後の２値の一方の値の数（以下、ドット数という）にエンコードする。エンコード
されたデータは、各画素ブロックにつき、画素ブロックの位置とその画素ブロックでのド
ット数を有する。エンコード後のデータは、各画素ブロックに対応するデコードテーブル
を使用して、その画素ブロックでのドット数に対応するドットパターンデータにデコード
される。なお、エンコードテーブルのデータは、エンコード時に使用する閾値のテーブル
である。
【００３１】
また、プロセッサ７は、ハーフトーン処理のうちのデコード処理、および２値化データ
の並び替え処理を実行する演算処理手段としての演算処理器である。ＣＰＵ７ａは、プロ
セッサ７に内蔵される演算処理回路である。内部ＲＡＭ７ｂは、プロセッサ７に内蔵され
バス９を介さずにＣＰＵ７ａに接続された内部メモリである。内部ＲＡＭ７ｂには、スタ
ティックＲＡＭなどの高速なメモリが使用される。
【００３２】
なお、プロセッサ１〜７は、それぞれ、図示せぬＲＯＭなどの記録媒体に予め格納され
ＤＲＡＭ８にロードされたプログラムを順次読み出して実行し、上述の処理を行う。
【００３３】
また、ダイナミックＲＡＭ（ＤＲＡＭ）８は、バス９を介してプロセッサ１〜７に接続
され、各種データおよびプログラムを格納する外部メモリである。ＤＲＡＭ８の容量は、
内部ＲＡＭ６ｂ，７ｂの容量より大きい。ＤＲＡＭ８には、ＲＧＢデータバッファ１１、
中間データバッファ１２、イメージバッファ１３などの記憶領域が設けられる。ＲＧＢデ
ータバッファ１１は、プロセッサ３〜５の処理により生成されたＲＧＢデータであってプ
ロセッサ６の入力データとなるＲＧＢデータを一時的に格納する記憶領域である。中間デ
ータバッファ１２は、プロセッサ６の出力データでありかつプロセッサ７の入力データと
なる中間データ（実施の形態１では、ハーフトーン処理のエンコード処理後のデータ、以
下、エンコードデータという）を一時的に格納する記憶領域である。イメージバッファ１
３は、プロセッサ７の出力データとなる２値化データを一時的に格納する記憶領域である
。
【００３４】
また、バス９は、データバスおよびプログラムバスを含み、プロセッサ１〜７のそれぞ
れとＤＲＡＭ８とを接続する信号路である。
【００３５】
次に、メモリアクセス回路ＭＡ１−１は、プロセッサ１〜７とは独立に動作しプロセッ
サ６の画像処理と並行して、バス９を介してＤＲＡＭ８から入力データを取得しバス９を
介さずにプロセッサ６に供給する第１のメモリアクセス手段としての回路である。また、
メモリアクセス回路ＭＡ２は、プロセッサ１〜７とは独立に動作しプロセッサ６の画像処
理と並行して、バス９を介してＤＲＡＭ８から第１のテーブルのデータを取得しバス９を
介さずにプロセッサ６に供給する第２のメモリアクセス手段としての回路である。また、
メモリアクセス回路ＭＡ３−１は、プロセッサ１〜７とは独立に動作しプロセッサ６の画
像処理と並行して、バス９を介してＤＲＡＭ８から第２のテーブルのデータを取得しバス
９を介さずにプロセッサ６に供給する第２のメモリアクセス手段としての回路である。
【００３６】
また、メモリアクセス回路ＭＡ１−２は、プロセッサ１〜７とは独立に動作しプロセッ
サ７の画像処理と並行して、バス９を介してＤＲＡＭ８から入力データを取得しバス９を
介さずにプロセッサ７に供給する第１のメモリアクセス手段としての回路である。また、
メモリアクセス回路ＭＡ３−２は、プロセッサ１〜７とは独立に動作しプロセッサ７の画
像処理と並行して、バス９を介してＤＲＡＭ８から第３のテーブルのデータを取得しバス
９を介さずにプロセッサ７に供給する第２のメモリアクセス手段としての回路である。
【００３７】
これらのメモリアクセス回路ＭＡ１−１，ＭＡ１−２は、一連の画像データのように、
サイズが大きい一連の入力データを逐次的に読み込む場合に使用される。また、メモリア
クセス回路ＭＡ２は、アクセスするテーブルの箇所がランダムである場合に使用される。
実施の形態１では、このメモリアクセス回路ＭＡ２は、ルックアップテーブル（ＬＵＴ）
のデータ読み込みに使用される。また、メモリアクセス回路ＭＡ３−１，ＭＡ３−２は、
アクセスするテーブルの箇所が連続しており所定のサイズごとにデータが読み込まれる場
合に使用される。実施の形態１では、メモリアクセス回路ＭＡ３−１は、エンコードテー
ブルのデータ読み込みに使用され、メモリアクセス回路ＭＡ３−２は、デコードテーブル
のデータ読み込みに使用される。
【００３８】
図２は、実施の形態１に係る画像処理装置のうち、プロセッサ６，７によるデータ処理
に関連する構成を示すブロック図である。図２に示すように、プロセッサ６の内部ＲＡＭ
６ｂには、色変換前に階調解像度を変換する際に使用されるプレ変換テーブル２１が記憶
されるともに、エンコードテーブルバッファ２２が設けられる。エンコードテーブルバッ
ファ２２は、画像データ１ライン分に対応するエンコードテーブルのデータを一時的に格
納する記憶領域である。また、プロセッサ７の内部ＲＡＭ７ｂには、デコードテーブルバ
ッファ２３および作業バッファ２４が設けられる。デコードテーブルバッファ２３は、画
像データ１ライン分に対応するデコードテーブルのデータを一時的に格納する記憶領域で
ある。作業バッファ２４は、並び替え処理の際に使用される記憶領域である。
【００３９】
ここで、各メモリアクセス回路ＭＡ１−１，ＭＡ１−２，ＭＡ２，ＭＡ３−１，ＭＡ３
−２の詳細について説明する。
【００４０】
図３は、メモリアクセス回路ＭＡ１−１，ＭＡ１−２およびその周辺の構成を示すブロ
ック図である。図３に示すように、各メモリアクセス回路ＭＡ１−１，１−２は、データ
キュー４１および制御回路４２を有する。データキュー４１は、ＣＰＵ６ａまたはＣＰＵ
７ａに接続され、制御回路４２から順次供給されるデータを順番に保持する記憶回路であ
る。ＣＰＵ６ａまたはＣＰＵ７ａは、データキュー４１にバス９を介さずにアクセス可能
であり、データキュー４１の先頭データを読み出す。データキュー４１の先頭データは、
ＣＰＵ６ａまたはＣＰＵ７ａにより読み出されると、データキュー４１から消去される。
制御回路４２は、ＣＰＵ６ａまたはＣＰＵ７ａから先頭アドレスおよびデータ数を供給さ
れると、動作を開始し、その先頭アドレスから順番にアドレスを指定してバス９を介して
ＤＲＡＭ８から指定されたデータ数のデータを順番に読み出し、データキュー４１に格納
する回路である。
【００４１】
図４は、メモリアクセス回路ＭＡ１−１，ＭＡ１−２使用時のプロセッサ６，７の動作
を説明するフローチャートである。図４（Ａ）は、メモリアクセス回路ＭＡ１−１，ＭＡ
１−２を使用しない場合の処理の流れを示す図である。図４（Ｂ）は、メモリアクセス回
路ＭＡ１−１，ＭＡ１−２を使用する場合の処理の流れを示す図である。
【００４２】
メモリアクセス回路ＭＡ１−１，ＭＡ１−２を使用しない場合（図４（Ａ））、入力バ
ッファの先頭アドレスが特定されると（ステップＳ１）、まずそのアドレスからデータが
バスを介してプロセッサへ直接読み込まれる（ステップＳ２）。そして、そのデータに対
する処理が実行される（ステップＳ３）。その処理の終了後、次のデータがあるか否かが
判定され（ステップＳ４）、次のデータがある場合、次のデータのアドレスが計算され、
そのアドレスからデータがバスを介してプロセッサへ直接読み込まれる（ステップＳ２）
。このようにして、所定の数のデータが読み込まれつつ処理が施される。
【００４３】
一方、メモリアクセス回路ＭＡ１−１，ＭＡ１−２を使用する場合（図４（Ｂ））、入
力バッファ（ＲＧＢデータバッファ１１または中間データバッファ１２）の先頭アドレス
が特定されると、ＣＰＵ６ａ，７ａは、その先頭アドレスと例えば１ライン分のデータ数
をメモリアクセス回路ＭＡ１−１，ＭＡ１−２に供給する（ステップＳ１１）。メモリア
クセス回路ＭＡ１−１，ＭＡ１−２は、その先頭アドレスからそのデータ数のデータを順
番に読み出し、データキュー４１に格納する。ＣＰＵ６ａ，７ａは、データキュー４１の
先頭データを読み出し（ステップＳ１２）、そのデータに対する処理を実行する（ステッ
プＳ１３）。データキュー４１の先頭データは、読み出しＣＰＵ６ａまたはＣＰＵ７ａに
読み出されると消去される。ＣＰＵ６ａ，７ａは、その処理の終了後、所定のデータ数の
データに対する処理が完了したか否かを判定し（ステップＳ１４）、所定のデータ数のデ
ータに対する処理が完了するまで、ステップＳ１２〜ステップＳ１４の処理を繰り返し実
行する。
【００４４】
図５は、メモリアクセス回路ＭＡ１−１，１−２を使用した場合のＣＰＵ６ａ，７ａの
処理スケジュールの一例を示す図である。図５に示すように、メモリアクセス回路ＭＡ１
−１，ＭＡ１−２は、一旦起動すると、ＣＰＵ６ａ，７ａのデータ処理（ステップＳ１３
）の期間に、並行して、ＤＲＡＭ８からデータを取得する。このため、データ待ち、すな
わちレイテンシに起因したＣＰＵ６ａ，７ａのストールの頻度を低減することができる。
なお、図５では、メモリアクセス回路ＭＡ１−１，ＭＡ１−２の起動時間が比較的長く表
現されているが、実際には、データ処理時間に比べ非常に短い。
【００４５】
図６は、メモリアクセス回路ＭＡ２およびその周辺の構成を示すブロック図である。図
６に示すように、メモリアクセス回路ＭＡ２は、アドレスキュー５１、データキュー５２
および制御回路５３を有する。アドレスキュー５１は、ＣＰＵ６ａに接続され、ＣＰＵ６
ａから順次供給されるアドレスを順番に保持する記憶回路である。アドレスキュー５１の
先頭データは、制御回路５３により読み出されると、アドレスキュー５１から消去される
。データキュー５２は、ＣＰＵ６ａに接続され、制御回路５３から順次供給されるデータ
を順番に保持する記憶回路である。ＣＰＵ６ａは、データキュー５２にバス９を介さずに
アクセス可能であり、データキュー５２の先頭データを読み出す。データキュー５２の先
頭データは、ＣＰＵ６ａにより読み出されると、データキュー５２から消去される。制御
回路５３は、アドレスキュー５１を監視し、アドレスキュー５１の先頭データであるアド
レスを読み出し、そのアドレスを指定してバス９を介してＤＲＡＭ８からデータを読み出
し、データキュー５２に格納する回路である。
【００４６】
図７は、メモリアクセス回路ＭＡ２使用時のプロセッサ６の動作を説明するフローチャ
ートである。図７（Ａ）は、メモリアクセス回路ＭＡ２を使用しない場合の処理の流れを
示す図である。図７（Ｂ）は、メモリアクセス回路ＭＡ２を使用する場合の処理の流れを
示す図である。
【００４７】
処理全体が前段処理と後段処理に分離でき、後段処理にてＤＲＡＭ８から読み出したデ
ータを使用する場合にメモリアクセス回路ＭＡ２の使用が効果的であるため、ここでもそ
のような用途に使用される。
【００４８】
メモリアクセス回路ＭＡ２を使用しない場合（図７（Ａ））、カウンタｉが０にリセッ
トされた後（ステップＳ２１）、第ｉの前段処理が実行され（ステップＳ２２）、その後
、第ｉのデータがＤＲＡＭからバスを介してプロセッサに読み込まれ（ステップＳ２３）
、第ｉの後段処理が実行される（ステップＳ２４）。その後、カウンタｉが１だけインク
リメントされ（ステップＳ２５）、ｎ回の前段処理および後段処理が実行されたか否かが
判定される（ステップＳ２６）。ｎ回の前段処理および後段処理が完了するまで、ステッ
プＳ２２〜ステップＳ２６の処理が実行される。
【００４９】
一方、メモリアクセス回路ＭＡ２を使用する場合（図７（Ｂ））、まず、ＣＰＵ６ａは
、第０の前段処理を実行する（ステップＳ３１）。次に、ＣＰＵ６ａは、アドレスキュー
５１に対して、第０のデータのアドレスを発行する（ステップＳ３２）。そして、カウン
タｉが０にリセットされる（ステップＳ３３）。次に、ＣＰＵ６ａは、第（ｉ＋１）の前
段処理を実行する（ステップＳ３４）。その後、ＣＰＵ６ａは、第ｉのデータをデータキ
ュー５２から読み出し（ステップＳ３５）、第（ｉ＋１）のデータのアドレスをアドレス
キュー５１に発行してから（ステップＳ３６）、第ｉの後段処理を実行する（ステップＳ
３７）。そして、ＣＰＵ６ａは、カウンタｉを１だけインクリメントし（ステップＳ３８
）、ｎ回の前段処理および後段処理が実行されたか否かを判定する（ステップＳ３９）。
ｎ回の前段処理および後段処理が完了するまで、ステップＳ３４〜ステップＳ３９の処理
が実行される。ｎ回の前段処理および後段処理が完了すると、ＣＰＵ６ａは、第（ｎ−１
）のデータをデータキュー５２から読み出し（ステップＳ４０）、第（ｎ−１）の後段処
理を実行する（ステップＳ４１）。
【００５０】
図８は、メモリアクセス回路ＭＡ２を使用した場合のＣＰＵ６ａの処理スケジュールの
一例を示す図である。なお、図８では、データ処理（前段処理と後段処理）が４回だけ実
行される場合を示しているが、通常、データ処理の回数は非常に多くなる。図８に示すよ
うに、メモリアクセス回路ＭＡ２は、ＣＰＵ６ａの前段処理（ステップＳ３４）および／
または後段処理（ステップＳ３７）の期間に、並行して、ＤＲＡＭ８からデータを取得す
る。このため、データ待ち、すなわちレイテンシに起因したＣＰＵ６ａのストールの頻度
を低減することができる。
【００５１】
図９は、メモリアクセス回路ＭＡ３−１，ＭＡ３−２の周辺の構成を示すブロック図で
ある。図９に示すように、メモリアクセス回路ＭＡ３−１，ＭＡ３−２は、プロセッサ６
の内部ＲＡＭ６ｂまたはプロセッサ７の内部ＲＡＭ７ｂにアクセス可能であって、先頭ア
ドレスおよびデータサイズが供給されると、その先頭アドレスからデータサイズ分のデー
タを、バス９を介してＤＲＡＭ８から読み出し、バンクフラグ６１の値に応じて、第１バ
ンク６２および第２バンク６３のいずれかに書き込む。バンクフラグ６１の値は、１ビッ
トの値であり、一定の処理が完了するごとにＣＰＵ６ａ，７ａにより０または１に切り替
えられる。また、第１バンク６２および第２バンク６３は、それぞれ、ＣＰＵ６ａ，７ａ
により要求されるデータサイズより大きい容量を有する記憶領域である。メモリアクセス
回路ＭＡ３−１，ＭＡ３−２は、テーブル全体を内部ＲＡＭ６ｂ，７ｂに格納することが
できないが１ラインの画像データに対する処理に使用するテーブルデータが１つのバンク
６２，６３に格納可能な場合に、使用される。
【００５２】
図１０は、メモリアクセス回路ＭＡ３−１，ＭＡ３−２使用時のプロセッサ６，７の動
作を説明するフローチャートである。図１０（Ａ）は、メモリアクセス回路ＭＡ３−１，
ＭＡ３−２を使用しない場合の処理の流れを示す図である。図１０（Ｂ）は、メモリアク
セス回路ＭＡ３−１，ＭＡ３−２を使用する場合の処理の流れを示す図である。
【００５３】
メモリアクセス回路ＭＡ３−１，ＭＡ３−２を使用しない場合（図１０（Ａ））、カウ
ンタｉが０にリセットされた後（ステップＳ５１）、画像データの第ｉラインのためのテ
ーブルのデータがプロセッサによりバスを介してＤＲＡＭから読み出され内部ＲＡＭに書
き込まれる（ステップＳ５２）。その後、第ｉラインのデータに対する処理が実行される
（ステップＳ５３）。その後、カウンタｉが１だけインクリメントされ（ステップＳ５４
）、ｎライン分のデータ処理が実行されたか否かが判定される（ステップＳ５５）。ｎラ
イン分のデータ処理が完了するまで、ステップＳ５２〜ステップＳ５５の処理が実行され
る。
【００５４】
一方、メモリアクセス回路ＭＡ３−１，ＭＡ３−２を使用する場合（図１０（Ｂ））、
まず、ＣＰＵ６ａ，７ａは、第０ラインの画像データ用のテーブルデータの先頭アドレス
とそのデータのデータ長をメモリアクセス回路ＭＡ３−１，ＭＡ３−２に供給する（ステ
ップＳ６１）。ＣＰＵ６ａ，７ａは、カウンタｉを０にリセットした後（ステップＳ６２
）、第０ライン用のテーブルデータが内部ＲＡＭ６ｂ，７ｂへ読み出されるまで待機する
（ステップＳ６３）。その後、ＣＰＵ６ａ，７ａは、第（ｉ＋１）ラインの画像データ用
のテーブルデータの先頭アドレスとデータ長をメモリアクセス回路ＭＡ３−１，ＭＡ３−
２に供給してから（ステップＳ６４）、第ｉラインに対する処理を実行する（ステップＳ
６５）。その後、ＣＰＵ６ａ，７ａは、カウンタｉを１だけインクリメントし（ステップ
Ｓ６６）、ｎライン分のデータ処理が実行されたか否かを判定する（ステップＳ６７）。
ｎライン分のデータ処理が完了するまで、ステップＳ６４〜ステップＳ６７の処理が実行
される。
【００５５】
図１１は、メモリアクセス回路ＭＡ３−１，ＭＡ３−２を使用した場合のＣＰＵ６ａ，
７ａの処理スケジュールの一例を示す図である。なお、図１１では、データ処理が４回だ
け実行される場合を示しているが、通常、データ処理の回数は非常に多くなる。また、図
１１では、メモリアクセス回路ＭＡ３−１，ＭＡ３−２の起動時間が比較的長く表現され
ているが、実際には、データ処理時間に比べ非常に短い。図１１に示すように、メモリア
クセス回路ＭＡ３−１，ＭＡ３−２は、ＣＰＵ６ａ，７ａのデータ処理（ステップＳ６５
）の期間に並行して、ＤＲＡＭ８からテーブルデータを取得し内部ＲＡＭ６ｂ，７ｂに書
き込む。このため、データ待ち、すなわちレイテンシに起因したＣＰＵ６ａ，７ａのスト
ールの頻度を低減することができる。
【００５６】
上述のようなアーキテクチャは、例えばＴｅｎｓｉｌｉｃａ社のＸｔｅｎｓａＬＸとい
った、設計段階で命令やプロセッサのインタフェースを容易に拡張可能なアーキテクチャ
により実現可能である。例えば、ＸｔｅｎｓａＬＸでは、プロセッサに接続したキューに
対するアクセス制御を行えるインタフェースをＣＰＵの命令として追加できる。また、上
述のアドレスキューやデータキューにはＸｔｅｎｓａＬＸのＬＸキュー機能を利用でき、
これにより、ＣＰＵがプロセッサ外部の回路とデータ転送を直接行うことができる。
【００５７】
次に、上記装置の動作について説明する。
【００５８】
まず、プロセッサ６における画像処理について説明する。プロセッサ６は、画像データ
を１ラインごと処理する。図１２は、プロセッサ６での１ライン分の画像データに対する
画像処理を説明するフローチャートである。図１３は、図１２の画像処理のデータフロー
を説明する図である。まず、最初のＲＧＢデータが取得され（ステップＳ１０１）、その
ＲＧＢデータに対して、エッジ判定（ステップＳ１０２）、色変換処理（ステップＳ１０
３）、スムージング（ステップＳ１０４）、およびハーフトーン処理のエンコード処理（
ステップＳ１０５）が実行される。そして、１ラインの全データが処理されたか否かが判
定され（ステップＳ１０６）、１ラインに処理されていないＲＧＢデータがある場合には
、次のＲＧＢデータが取得され（ステップＳ１０７）、同様の処理（ステップＳ１０２〜
Ｓ１０６）が実行される。図１３に示すように、エッジ判定では、エッジ情報が検出され
、色変換処理では、画像データの色空間がＲＧＢからＣＭＹＫへ変換される。そして、ス
ムージングでは、エッジ情報に基づいてＣＭＹＫデータが補正され、エンコード処理では
、エンコードテーブルを参照して、ＣＭＹＫ各色のデータが別々にエンコードされる。
【００５９】
次に、実施の形態１におけるプロセッサ６の動作について説明する。図１４は、実施の
形態１におけるプロセッサ６の動作を説明するフローチャートである。図１５は、図１４
に示すプロセッサ６の動作時のデータフローを説明する図である。プロセッサ６へのデー
タ供給には、３つのメモリアクセス回路ＭＡ１−１，ＭＡ２，ＭＡ３−１が使用される。
したがって、プロセッサ６は、メモリアクセス回路ＭＡ１−１に対しては図４（Ｂ）の処
理手順で動作し、メモリアクセス回路ＭＡ２に対しては図７（Ｂ）の処理手順で動作し、
メモリアクセス回路ＭＡ３−１に対しては図１０（Ｂ）の処理手順で動作する。つまり、
図１４のステップＳ２１１〜Ｓ２２５の処理が、図１０（Ｂ）のステップＳ６５の処理に
相当する。また、図１４のステップＳ２１５〜Ｓ２１７の処理が図７（Ｂ）のステップＳ
３４の処理に相当し、図１４のステップＳ２２１〜Ｓ２２４の処理が図７（Ｂ）のステッ
プＳ３７の処理に相当する。また、図１４のステップＳ２１６〜Ｓ２２４の処理が、図４
（Ｂ）のステップＳ１３の処理に相当する。
【００６０】
プロセッサ６のＣＰＵ６ａは、メモリアクセス回路ＭＡ３−１に対し、第０のライン用
のエンコードテーブルデータを内部ＲＡＭ６ｂにコピーさせるために、その先頭アドレス
とデータ長を供給する（ステップＳ２０１）。そして、ＣＰＵ６ａは、カウンタｉを０に
リセットした後（ステップＳ２０２）、第０ライン用のテーブルデータが内部ＲＡＭ６ｂ
へ読み出されるまで待機する（ステップＳ２０３）。その後、ＣＰＵ６ａは、第（ｉ＋１
）ラインの画像データ用のテーブルデータの先頭アドレスとデータ長をメモリアクセス回
路ＭＡ３−１に供給してから（ステップＳ２０４）、第ｉラインに対する処理として、ス
テップＳ２１１〜Ｓ２２５の処理を実行する。
【００６１】
一方、メモリアクセス回路ＭＡ３−１は、プロセッサ６とは独立に、エンコードテーブ
ル１５のうちの指定されたデータをＤＲＡＭ８から読み出し、内部ＲＡＭ６ｂの第１バン
ク６２または第２バンク６３に書き込む。１ライン分のテーブルデータは、ラインごとに
交互に、第１バンク６２および第２バンク６３に格納される。このメモリアクセス回路Ｍ
Ａ３−１の処理は、第（ｉ＋１）のラインに対するハーフトーン処理のエンコード処理（
ステップＳ２２３）が開始されるまでに完了するのが好ましい。
【００６２】
ステップＳ２０４の処理の後、ＣＰＵ６ａは、ＲＧＢデータバッファ１１における処理
対象のラインの先頭アドレスを特定し、その先頭アドレスと１ライン分のデータ数をメモ
リアクセス回路ＭＡ１−１に供給する（ステップＳ２１１）。ＣＰＵ６ａは、カウンタｊ
を０にリセットする（ステップＳ２１２）。その後、ＣＰＵ６ａは、カウンタｊの値がｎ
より大きいか否かを判断する（ステップＳ２１３）。カウンタｊの値がｎ以下である場合
、ＣＰＵ６ａは、ステップＳ２１４〜Ｓ２２５の処理を実行する。
【００６３】
ステップＳ２１４〜Ｓ２２４の処理は、カウンタｊの値が０からｎになるまでに（ｎ＋
１）回繰り返して実行される。ただし、１回目の処理（ｊ＝０）では、図７（Ｂ）のステ
ップＳ３１，Ｓ３２に相当する処理がステップＳ２１５〜Ｓ２１８で実行され、ステップ
Ｓ２２０〜２２４の処理はスキップされる（ステップＳ２１９）。また、（ｎ＋１）回目
の処理（ｊ＝ｎ）では、図７（Ｂ）のステップＳ４０，Ｓ４１に相当する処理がステップ
Ｓ２２０〜Ｓ２２４で実行され、ステップＳ２１５〜Ｓ２１８の処理はスキップされる（
ステップＳ２１４）。
【００６４】
まず、ＣＰＵ６ａは、図１５に示すように、１ライン内の第０（すなわち、１ライン内
の最初）のＲＧＢデータをメモリアクセス回路ＭＡ１−１のデータキュー４１から読み出
し（ステップＳ２１５）、そのＲＧＢデータに対してエッジ判定を行う（ステップＳ２１
６）。その後、ＣＰＵ６ａは、第０のＲＧＢデータの色変換に必要なＬＵＴデータの格納
場所のアドレスを計算し（ステップＳ２１７）、そのアドレスをメモリアクセス回路ＭＡ
２のアドレスキュー５１に書き込む（ステップＳ２１８）。その後、ＣＰＵ６ａは、カウ
ンタｊの値をインクリメントして１（ｊ＝１）とする（ステップＳ２２５）。
【００６５】
次に、ＣＰＵ６ａは、図１５に示すように、１ライン内の第１（すなわち、２番目）の
ＲＧＢデータをデータキュー４１から読み出し（ステップＳ２１５）、そのＲＧＢデータ
に対してエッジ判定を行う（ステップＳ２１６）。その後、ＣＰＵ６ａは、第２のＲＧＢ
データの色変換に必要なＬＵＴデータの格納場所のアドレスを計算し（ステップＳ２１７
）、そのアドレスをメモリアクセス回路ＭＡ２のアドレスキュー５１に書き込む（ステッ
プＳ２１８）。その後、ＣＰＵ６ａは、図１５に示すように、第０（すなわち、１ライン
内の最初）のＬＵＴデータを、メモリアクセス回路ＭＡ２のデータキュー５２から読み出
し、そのＬＵＴデータに基づいて、第０のＲＧＢデータを第０のＣＹＭＫデータへ色変換
する（ステップＳ２２１）。なお、ＣＰＵ６ａは、色変換処理を行う前に、プレ変換テー
ブル２１を参照してプレ変換を行い、ＲＧＢデータの階調を２５６階調から３２階調へ変
換する。また、ＣＰＵ６ａは、色変換後のＣＹＭＫデータに対して、エッジ判定（ステッ
プＳ２１６）により得られたエッジ情報に基づいてスムージングを施す（ステップＳ２２
２）。さらに、ＣＰＵ６ａは、図１５に示すように、内部ＲＡＭ６ｂからエンコードテー
ブルデータを読み出し、そのエンコードテーブルデータに基づいて、第０のＣＹＭＫデー
タをエンコードし（ステップＳ２２３）、エンコード後のデータを中間データとして中間
データバッファ１２に格納する（ステップＳ２２４）。
【００６６】
その後、ＣＰＵ６ａは、カウンタｊの値をインクリメントして２（ｊ＝２）とする（ス
テップＳ２２５）。以下、同様にして、カウンタｊの値がｎになるまで、上述のステップ
Ｓ２１５〜Ｓ２１８，Ｓ２２０〜Ｓ２２４の処理が繰り返される。
【００６７】
そして、カウンタｊの値がｎになると、ＣＰＵ６ａは、第（ｎ−１）（すなわち、１ラ
イン内の最後）のＬＵＴデータを、メモリアクセス回路ＭＡ２のデータキュー５２から読
み出し、そのＬＵＴデータに基づいて、第（ｎ−１）のＲＧＢデータを第（ｎ−１）のＣ
ＹＭＫデータへ色変換する（ステップＳ２２１）。また、ＣＰＵ６ａは、色変換後のＣＹ
ＭＫデータに対して、エッジ判定（ステップＳ２１６）により得られたエッジ情報に基づ
いてスムージングを施す（ステップＳ２２２）。さらに、ＣＰＵ６ａは、内部ＲＡＭ６ｂ
からエンコードテーブルデータを読み出し、そのエンコードテーブルデータに基づいて、
第（ｎ−１）のＣＹＭＫデータをエンコードし（ステップＳ２２３）、エンコード後のデ
ータを中間データバッファ１２に格納する（ステップＳ２２４）。
【００６８】
その後、ＣＰＵ６ａは、カウンタｊの値をインクリメントして（ｎ＋１）（ｊ＝ｎ＋１
）とする（ステップＳ２２５）。このため、ＣＰＵ６ａは、ステップＳ２１３において、
カウンタｊの値がｎより大きいと判定し、１ライン分の処理（ステップＳ２０４，Ｓ２１
１〜Ｓ２２５）を完了する。
【００６９】
このようにして、メモリアクセス回路ＭＡ１−１，ＭＡ２，ＭＡ３−１は、処理に必要
なデータ（ＲＧＢデータ、ＬＵＴテーブルデータおよびエンコードテーブルデータ）を、
プロセッサ６とは独立に、かつプロセッサ６の処理と並行してバス９を介してＤＲＡＭ８
から読み出し、バス９を介さずにプロセッサ６に提供する。
【００７０】
次に、プロセッサ７における画像処理について説明する。プロセッサ７は、画像データ
を１ラインごと処理する。ただし、画像データの単位は、ブロック（つまり、１エンコー
ドデータ）とされる。図１６は、プロセッサ７での１ライン分の画像データに対する画像
処理を説明するフローチャートである。図１７は、イメージバッファ１３の各領域を示す
図である。図１８は、図１６の画像処理のデータフローを説明する図である。図１７に示
すように、イメージバッファ１３には、画像に対応してインクを印刷ヘッドのノズルから
吐出する有効ノズル領域が存在する。そして、印刷ヘッドの位置によっては、ＮＵＬＬ領
域が存在する。ＮＵＬＬ領域は、印刷用紙のない領域や余白領域に対応する領域で、印刷
ヘッドのインクノズル配列のうち、インクを吐出しないノズル領域である。イメージバッ
ファ１３には、印刷ヘッドの１回の走査に必要な２値化データが格納される。つまり、１
回の走査に使用するノズル数と走査方向におけるドット位置の数との積の２値化データが
イメージバッファ１３に格納される。なお、インタレース処理によりインク吐出が行われ
る場合には、１回の走査に必要な２値化データが選択されてイメージバッファ１３に格納
される。インタレース処理としては、例えば特許第３３７１３０２号明細書に開示されて
いる処理がある。なお、ＮＵＬＬ領域の有無や位置の情報はプロセッサ１から供給される
。
【００７１】
図１６に示すように、まず、処理すべき上端ＮＵＬＬ領域があるか否かが判定され（ス
テップＳ３０１）、処理すべき上端ＮＵＬＬ領域がある場合、１ライン分のＮＵＬＬデー
タ（つまりインクを吐出しないためのデータ）が８ラインバッファに書き込まれる（ステ
ップＳ３０２）。８ラインバッファへの書き込みが完了すると、８ラインバッファに８ラ
イン分のデータが格納されているか否かが判定され（ステップＳ３０３）、８ラインバッ
ファに８ライン分のデータが格納されている場合には、８ラインバッファに格納されてい
るデータは、行と列を交換されて回転された後、イメージバッファ１３に格納される（ス
テップＳ３０４）。図１９は、２値化データの並べ替えについて説明する図である。印刷
ヘッドに供給されるデータは、印刷ヘッドの走査方向に沿って配置されている必要がある
。つまり、最初のインク吐出に必要なデータがイメージバッファ１３の先頭に配置され、
印刷ヘッドが移動した後の次のインク吐出に必要なデータがその次に配置されている必要
がある。一方、通常の画像データは、画像ファイル内で、画像の左から右へ向かって１ラ
インずつ配列している。このため、画像データを回転させる。
【００７２】
そして、処理すべき上端ＮＵＬＬ領域がなくなるまで、ステップＳ３０２〜Ｓ３０４の
処理が繰り返し実行される。
【００７３】
処理すべき上端ＮＵＬＬ領域がないと、次に、処理すべき有効ノズル領域があるか否か
が判定される（ステップＳ３０５）。処理すべき有効ノズル領域がある場合、１ライン分
の中間データがデコードされて２値化データが生成され、１ライン分の２値化データが８
ラインバッファに格納される（ステップＳ３０６）。８ラインバッファへの書き込みが完
了すると、８ラインバッファに８ライン分のデータが格納されているか否かが判定され（
ステップＳ３０７）、８ラインバッファに８ライン分のデータが格納されている場合には
、８ラインバッファに格納されているデータは、行と列を交換されて回転された後、イメ
ージバッファ１３に格納される（ステップＳ３０８）。そして、処理すべき有効ノズル領
域がなくなるまで、ステップＳ３０６〜Ｓ３０８の処理が繰り返し実行される。
【００７４】
処理すべき有効ノズル領域がなくなると、次に、処理すべき残りの領域（つまり、下端
ＮＵＬＬ領域）があるか否かが判定される（ステップＳ３０９）。処理すべき下端ＮＵＬ
Ｌ領域がある場合、１ライン分のＮＵＬＬデータが８ラインバッファに書き込まれる（ス
テップＳ３１０）。８ラインバッファへの書き込みが完了すると、８ラインバッファに８
ライン分のデータが格納されているか否かが判定され（ステップＳ３１１）、８ラインバ
ッファに８ライン分のデータが格納されている場合には、８ラインバッファに格納されて
いるデータは、行と列を交換されて回転された後、イメージバッファ１３に格納される（
ステップＳ３１２）。そして、処理すべき下端ＮＵＬＬ領域がなくなるまで、ステップＳ
３１０〜Ｓ３１２の処理が繰り返し実行される。
【００７５】
このようにして、イメージバッファ１３の高さ分の２値化データが生成される。そのデ
ータは、印刷ヘッドの１回の走査で使用された後、消去され、次の走査で必要な２値化デ
ータが生成される。
【００７６】
図２０は、実施の形態１におけるプロセッサ７の動作を説明するフローチャートである
。図２１は、図２０のステップＳ４１１の処理の詳細を説明するフローチャートである。
図２２は、図２０および図２１に示すプロセッサ７の動作時のデータフローを説明する図
である。プロセッサ７へのデータ供給には、２つのメモリアクセス回路ＭＡ１−２，ＭＡ
３−２が使用される。したがって、プロセッサ７は、メモリアクセス回路ＭＡ１−２に対
しては図４（Ｂ）の処理手順で動作し、メモリアクセス回路ＭＡ３−２に対しては図１０
（Ｂ）の処理手順で動作する。つまり、図２０のステップＳ４１０，Ｓ４１１の処理が、
図１０（Ｂ）のステップＳ６５の処理に相当する。また、図２１のステップＳ４２３〜Ｓ
４２５の処理が、図４（Ｂ）のステップＳ１３の処理に相当する。
【００７７】
上端ＮＵＬＬ領域についての処理（ステップＳ４０１〜Ｓ４０４）は、上述の上端ＮＵ
ＬＬ領域についての処理（ステップＳ３０１〜Ｓ３０４）と同様であるので、その説明を
省略する。また、下端ＮＵＬＬ領域についての処理（ステップＳ４１４〜Ｓ４１７）も、
上述の下端ＮＵＬＬ領域についての処理（ステップＳ３０９〜Ｓ３１２）と同様であるの
で、その説明を省略する。
【００７８】
処理すべき上端ＮＵＬＬ領域がないと、まず、ＣＰＵ７ａは、処理すべき有効ノズル領
域があるか否かを判定する（ステップＳ４０５）。処理すべき有効ノズル領域があると、
ＣＰＵ７ａは、最初のラインについてのみ（ステップＳ４０６）、メモリアクセス回路Ｍ
Ａ３−２に、最初のライン用のデコードテーブルデータの先頭アドレスとデータ長を供給
して最初のライン用のデコードテーブルデータをＤＲＡＭ８から読み出し内部ＲＡＭ７ｂ
に書き込ませ（ステップＳ４０７）、デコードテーブルデータが内部ＲＡＭ７ｂに書き込
まれるまで待機する（ステップＳ４０８）。
【００７９】
デコードテーブルデータが内部ＲＡＭ７ｂに書き込まれると、ＣＰＵ７ａは、メモリア
クセス回路ＭＡ３−２に、次のライン用のデコードテーブルデータの先頭アドレスとデー
タ長を供給する（ステップＳ４０９）。また、ＣＰＵ７ａは、中間データバッファ１２の
先頭アドレスと１ライン分のデータ数をメモリアクセス回路ＭＡ１−２に供給する（ステ
ップＳ４１０）。
【００８０】
メモリアクセス回路ＭＡ３−２は、アドレスとデータ長を供給されると、動作を開始し
、そのデコードテーブルデータをＤＲＡＭ８から読み出し内部ＲＡＭ７ｂに書き込む。ま
た、メモリアクセス回路ＭＡ１−２は、アドレスとデータ数を供給されると、動作を開始
し、エンコードデータ（すなわち、入力データ）をＤＲＡＭ８から読み出しデータキュー
４１に格納する。
【００８１】
その後、ＣＰＵ７ａは、メモリアクセス回路ＭＡ１−２のデータキュー４１からエンコ
ードデータを順次読み出し、内部ＲＡＭ７ｂに格納されているデコードテーブルデータに
基づいて１ライン分のデコード処理を行い、デコード処理で生成された１ライン分の２値
化データを８ラインバッファ１７に格納する（ステップＳ４１１）。
【００８２】
エンコードデータは、図２２に示すように、メモリアクセス回路ＭＡ１−２のデータキ
ュー４１からＣＰＵ７ａ内の入力レジスタ７１へ読み込まれる（ステップＳ４２１）。次
に、ＣＰＵ７ａは、入力レジスタ７１から１要素データ（１エンコードデータ）を取得し
、図２２に示すように内部ＲＡＭ７ｂのデコードテーブルバッファ２３に格納されている
デコードテーブルデータに基づいてデコードする。そして、ＣＰＵ７ａは、１ブロック分
の２値化データを生成し（ステップＳ４２３）、その１ブロック分の２値化データから、
処理対象ラインの２値化データのみを抽出し（ステップＳ４２４）、出力レジスタ７２に
格納する（ステップＳ４２５）。入力レジスタ７１内のデータが順次選択され処理されて
いき（ステップＳ４３１）、出力レジスタ７２がデータで埋まると（ステップＳ４２６）
、ＣＰＵ７ａは、２値化データを８ラインバッファ１７へ格納する（ステップＳ４２７）
。また、入力レジスタ７１内の全要素データを処理したら（ステップＳ４２８）、後続の
データがデータキュー４１から入力レジスタ７１に読み込まれる（ステップＳ４２９）。
そして、１ラインの全要素について処理が完了すると（ステップＳ４３０）、ステップＳ
４１０の処理が完了する。なお、入力レジスタ７１および出力レジスタ７２は、ＣＰＵ７
ａ内に設けられた１２８ビットのレジスタである。
【００８３】
このようにして８ラインバッファ１７への１ライン分の２値化データの書き込みが完了
すると、ＣＰＵ７ａは、８ラインバッファ１７に８ライン分のデータが格納されているか
否かを判定する（ステップＳ４１２）。８ラインバッファ１７に８ライン分のデータが格
納されている場合には、ＣＰＵ７ａは、８ラインバッファ１７に格納されているデータを
、内部ＲＡＭ７ｂにおける作業バッファ２４を使用して行と列を交換して、イメージバッ
ファ１３に格納する（ステップＳ４１３）。図２３は、プロセッサ７による２値化データ
の並べ替え動作について説明する図である。図２３に示すように、８ラインバッファ１７
から読み出されたデータは、そのまま作業バッファ２４に格納される。そして、作業バッ
ファ２４に格納されたデータは、一定間隔で読み出されて、イメージバッファ１３に格納
される。なお、ＤＲＡＭ８に対する直接のアクセス回数を減らすために、作業バッファ２
４の列および行のビット数分の連続データが、１回のアクセスでＤＲＡＭ８内の連続する
記憶領域に対して読み書きされる。例えば、１ビットの２値化データを使用し８ノズル分
ごとに印刷ヘッドへデータを供給する場合、８ビットを単位として並べ替えが行われる。
また、作業バッファ２４の列および行のビット数は、ＤＲＡＭ８へのデータアクセス時の
単位（例えば１２８ビット）と同一とされる。
【００８４】
そして、処理すべき有効ノズル領域がなくなるまで、ステップＳ４０８〜Ｓ４１２の処
理が繰り返し実行される。
【００８５】
このようにして、メモリアクセス回路ＭＡ１−２，ＭＡ３−２は、処理に必要なデータ
（エンコードデータおよびデコードテーブルデータ）を、プロセッサ７とは独立に、かつ
プロセッサ７の処理と並行してバス９を介してＤＲＡＭ８から読み出し、バス９を介さず
にプロセッサ７に提供する。
【００８６】
実施の形態２．
本発明の実施の形態２に係る画像処理装置は、ハーフトーン処理の方式としてディザ方
式を使用するものである。実施の形態１では、プロセッサ６およびプロセッサ７の２つの
プロセッサによりハーフトーン処理が実行されるが、実施の形態２では、１つのプロセッ
サ６によりディザ方式のハーフトーン処理が実行される。図２４は、実施の形態２に係る
画像処理装置のうち、プロセッサ６，７によるデータ処理に関連する構成を示すブロック
図である。実施の形態２では、エンコードテーブル１５およびエンコードテーブルバッフ
ァ２２の代わりに、ディザマトリクスデータ８１およびディザマトリクスバッファ８２が
設けられる。ＤＲＡＭ８にディザマトリクスデータ８１が格納され、メモリアクセス回路
ＭＡ３−１は、ディザマトリクスデータ８１を読み出し、内部ＲＡＭ６ｂにおけるディザ
マトリクスバッファ８２に格納する。また、実施の形態２には、デコードテーブル１６、
メモリアクセス回路ＭＡ３−２およびデコードテーブルバッファ２３は存在しない。実施
の形態２では、プロセッサ６は、ディザ方式のハーフトーン処理を実行し、プロセッサ７
は、ハーフトーン処理を行わない。なお、図２４におけるその他の構成については、実施
の形態１（図２）のものと同様であるので、その説明を省略する。
【００８７】
次に、上記装置の動作について説明する。まず、実施の形態２におけるプロセッサ６の
動作について説明する。図２５は、実施の形態２におけるプロセッサ６の動作を説明する
フローチャートである。図２６は、図２５に示すプロセッサ６の動作時のデータフローを
説明する図である。図２５に示すように、実施の形態２におけるプロセッサ６のＣＰＵ６
ａは、各ライン用のエンコードテーブルデータの代わりにディザマトリクスデータをメモ
リアクセス回路ＭＡ３−１に要求する（ステップＳ２０１ａ，Ｓ２０４ａ）。メモリアク
セス回路ＭＡ３−１は、指定されたディザマトリクスデータ８１をＤＲＡＭ８から読み出
し、内部ＲＡＭ６ｂに格納する。そして、ＣＰＵ６ａは、図２６に示すように、内部ＲＡ
Ｍ６ｂのディザマトリクスバッファ８２からディザマトリクスデータを読み出し、ハーフ
トーン処理を実行し（ステップＳ２２３ａ）、２値化されたデータを中間データとして中
間データバッファ１２に格納する（ステップＳ２２４）。
【００８８】
なお、実施の形態２におけるプロセッサ６のその他の動作については、実施の形態１の
ものと同様であるので、その説明を省略する。
【００８９】
次に、実施の形態２におけるプロセッサ７の動作について説明する。図２７は、実施の
形態２におけるプロセッサ７の動作を説明するフローチャートである。図２８は、図２７
のステップＳ５０２の処理の詳細を説明するフローチャートである。図２９は、図２７お
よび図２８に示すプロセッサ７の動作時のデータフローを説明する図である。図２７に示
すように、上端ＮＵＬＬ領域に関する処理（ステップＳ４０１〜Ｓ４０４）および下端Ｎ
ＵＬＬ領域に関する処理（ステップＳ４１４〜Ｓ４１７）については、実施の形態１の場
合と同様であるので、その説明を省略し、ここでは、有効ノズル領域に関する処理につい
て説明する。
【００９０】
実施の形態２では、プロセッサ６によりハーフトーン処理が実行され、中間データとし
て２値化後のデータが中間データバッファ１２に格納される。したがって、プロセッサ７
の入力データは、既に２値化されている。そのため、プロセッサ７は、データの抽出およ
び並べ替えを行って、イメージバッファ１７用の２値化データを生成する。
【００９１】
プロセッサ７のＣＰＵ７ａは、処理すべき有効ノズル領域があるか否かを判定する（ス
テップＳ５０１）。処理すべき有効ノズル領域がある場合、ＣＰＵ７ａは、メモリアクセ
ス回路ＭＡ１−２のデータバッファ４１から中間データを読み込み、１ラインの２値化デ
ータに必要な２値化データを８ラインバッファ１７に格納する（ステップＳ５０２）。な
お、ディザ方式においても、ブロック単位で２値化が行われるため、ブロック単位で中間
データは配列されている。このため、各ブロックの２値化データから、１ラインに必要な
２値化データが抽出される。
【００９２】
その際、図２９に示すように、中間データが入力レジスタ７１へロードされ（ステップ
Ｓ５１１）、ＣＰＵ７ａは、入力レジスタ７１にロードされた中間データから１ラインの
２値化データに必要なデータを抽出し（ステップＳ５１２）、出力レジスタ７２に格納す
る（ステップＳ５１３）。入力レジスタ７１にロードされた全データが処理されると後続
のデータが入力レジスタ７１に読み出される。また、出力レジスタ７２がデータで埋まる
と、出力レジスタ７２内のデータは、８ラインバッファ１７に格納され（ステップＳ５１
４）、その後、消去される。ステップＳ５１１〜Ｓ５１４の処理は、１ラインの２値化デ
ータが生成されるまで（ステップＳ５１５）、繰り返し実行される。
【００９３】
８ラインバッファ１７への書き込みが完了すると、ＣＰＵ７ａは、８ラインバッファ１
７に８ライン分のデータが格納されているか否かを判定し（ステップＳ５０３）、８ライ
ンバッファ１７に８ライン分のデータが格納されている場合には、８ラインバッファ１７
に格納されているデータを、行と列を交換した後、イメージバッファ１３に格納する（ス
テップＳ５０４）。
【００９４】
実施の形態３．
本発明の実施の形態３に係る画像処理装置は、ハーフトーン処理の方式として誤差拡散
方式を使用するものである。実施の形態１では、プロセッサ６およびプロセッサ７の２つ
のプロセッサによりハーフトーン処理が実行されるが、実施の形態３では、プロセッサ６
により誤差拡散方式のハーフトーン処理が実行される。実施の形態３におけるハーフトー
ン処理の誤差拡散方式は、例えば特開２００２−１９９２２０号公報に開示されているも
のであり、誤差データを逐次的に読み込んで１ライン分のハーフトーン処理を実行可能な
ものである。
【００９５】
図３０は、実施の形態３に係る画像処理装置のうち、プロセッサ６，７によるデータ処
理に関連する構成を示すブロック図である。実施の形態３では、実施の形態１のエンコー
ドテーブル１５、メモリアクセス回路ＭＡ３−１およびエンコードテーブルバッファ２２
の代わりに、誤差バッファ９１およびメモリアクセス回路ＭＡ１−３が設けられる。ＤＲ
ＡＭ８には誤差バッファ９１が設けられ、ＣＰＵ６ａによるハーフトーン処理時の誤差デ
ータが格納される。メモリアクセス回路ＭＡ１−３は、メモリアクセス回路ＭＡ１−１，
ＭＡ１−２と同様のものであり、ＤＲＡＭ８の誤差バッファ９１から誤差データを順次読
み出し、データキュー４１に格納する。
【００９６】
なお、図３０におけるその他の構成については、実施の形態１または実施の形態２のも
のと同様であるので、その説明を省略する。実施の形態３におけるプロセッサ７およびメ
モリアクセス回路ＭＡ１−２の構成および動作については、実施の形態２のものと同様で
あるので、その説明を省略する。
【００９７】
次に、上記装置の動作について説明する。図３１は、実施の形態３におけるプロセッサ
６の動作を説明するフローチャートである。実施の形態３では、メモリアクセス回路ＭＡ
１−１，ＭＡ１−３により、プロセッサ６に、ＲＧＢデータおよび誤差データが提供され
る。各ラインの処理の最初に、ＣＰＵ６ａは、誤差バッファの先頭アドレスおよびデータ
数を指定してメモリアクセス回路ＭＡ１−３を起動し（ステップＳ６０１）、ＲＧＢデー
タバッファ１１の先頭アドレスおよびデータ数を指定してメモリアクセス回路ＭＡ１−１
を起動する（ステップＳ２１１）。そして、ハーフトーン処理時には、ＣＰＵ６ａは、内
部ＲＡＭ６ｂに格納されている誤差データを参照しつつ誤差拡散方式の処理を行い、発生
した誤差データを誤差バッファ９１に格納する（ステップＳ２２３ｂ）。そして、ＣＰＵ
６ａは、２値化されたデータを中間データとして中間データバッファ１２に格納する（ス
テップＳ２２４）。
【００９８】
なお、実施の形態３におけるプロセッサ６のその他の動作については、実施の形態１ま
たは実施の形態２のものと同様であるので、その説明を省略する。
【００９９】
なお、上述の各実施の形態は、本発明の好適な例であるが、本発明は、これらに限定さ
れるものではなく、本発明の要旨を逸脱しない範囲において、種々の変形、変更が可能で
ある。例えば、上記各実施の形態のハーフトーン処理において、２値化データではなく４
値化データを生成するようにしてもよい。４値化データはドットの有無とドットのサイズ
を２ビットで表すデータである。したがって、印刷ヘッドへ８要素ごとにデータを供給す
る場合には、１６ビット単位でデータが供給される。また、８ラインバッファ１７および
イメージバッファ１３のサイズも、印刷ヘッドに供給されるデータ単位のサイズに応じて
変更してもよい。また、上記各実施の形態におけるカウンタには、ＣＰＵ６ａ，７ａ内部
のレジスタまたは内部ＲＡＭ６ｂ，７ｂの記憶領域が使用される。
【産業上の利用可能性】
【０１００】
本発明は、例えば、複数のプロセッサを有するプリンタに適用可能である。
【図面の簡単な説明】
【０１０１】
【図１】本発明の実施の形態１に係る画像処理装置の構成図である。
【図２】実施の形態１におけるプロセッサ６，７周辺の構成図である。
【図３】メモリアクセス回路ＭＡ１およびその周辺の構成図である。
【図４】メモリアクセス回路ＭＡ１使用時のプロセッサ動作を説明する図である。
【図５】メモリアクセス回路ＭＡ１使用時の処理スケジュール例を示す図である。
【図６】メモリアクセス回路ＭＡ２およびその周辺の構成図である。
【図７】メモリアクセス回路ＭＡ２使用時のプロセッサ動作を説明する図である。
【図８】メモリアクセス回路ＭＡ２使用時の処理スケジュール例を示す図である。
【図９】メモリアクセス回路ＭＡ３の周辺の構成を示すブロック図である。
【図１０】メモリアクセス回路ＭＡ３使用時のプロセッサ動作を説明する図である。
【図１１】メモリアクセス回路ＭＡ３使用時の処理スケジュール例を示す図である。
【図１２】プロセッサ６での画像処理を説明するフローチャートである。
【図１３】図１２の画像処理のデータフローを説明する図である。
【図１４】実施の形態１におけるプロセッサ６の動作を説明する図である。
【図１５】図１４に示すプロセッサ動作時のデータフローを説明する図である。
【図１６】プロセッサ７での画像処理を説明するフローチャートである。
【図１７】イメージバッファの各領域を示す図である。
【図１８】図１６の画像処理のデータフローを説明する図である。
【図１９】２値化データの並べ替えについて説明する図である。
【図２０】実施の形態１におけるプロセッサ７の動作を説明する図である。
【図２１】図２０のステップＳ４１１の処理の詳細を説明する図である。
【図２２】図２０に示すプロセッサ動作時のデータフローを説明する図である。
【図２３】プロセッサ７による２値化データの並べ替え動作を説明する図である。
【図２４】実施の形態２におけるプロセッサ６，７周辺の構成図である。
【図２５】実施の形態２におけるプロセッサ６の動作を説明する図である。
【図２６】図２５に示すプロセッサ動作時のデータフローを説明する図である。
【図２７】実施の形態２におけるプロセッサ７の動作を説明する図である。
【図２８】図２７のステップＳ５０２の処理の詳細を説明する図である。
【図２９】図２７に示すプロセッサ動作時のデータフローを説明する図である。
【図３０】実施の形態３におけるプロセッサ６，７周辺の構成図である。
【図３１】実施の形態３におけるプロセッサ６の動作を説明する図である。
【符号の説明】
【０１０２】
６，７  プロセッサ（演算処理手段）、６ｂ，７ｂ  内部ＲＡＭ（内部メモリ）、８  
ＤＲＡＭ（メモリ）、９  バス、１４  ＬＵＴ（テーブル）、１５  エンコードテーブル
（テーブル）、１６  デコードテーブル（テーブル）、４１  データキュー、４２  制御
回路、５１  アドレスキュー、５２  データキュー、５３  制御回路、ＭＡ１−１，ＭＡ
１−２  メモリアクセス回路（第１のメモリアクセス手段）、ＭＡ２，ＭＡ３−１，ＭＡ
３−２，ＭＡ１−３  メモリアクセス回路（第２のメモリアクセス手段）。
【図１】
2007287072.tif 000003
【図２】
2007287072.tif 000004
【図３】
2007287072.tif 000005
【図４】
2007287072.tif 000006
【図５】
2007287072.tif 000007
【図６】
2007287072.tif 000008
【図７】
2007287072.tif 000009
【図８】
2007287072.tif 000010
【図９】
2007287072.tif 000011
【図１０】
2007287072.tif 000012
【図１１】
2007287072.tif 000013
【図１２】
2007287072.tif 000014
【図１３】
2007287072.tif 000015
【図１４】
2007287072.tif 000016
【図１５】
2007287072.tif 000017
【図１６】
2007287072.tif 000018
【図１７】
2007287072.tif 000019
【図１８】
2007287072.tif 000020
【図１９】
2007287072.tif 000021
【図２０】
2007287072.tif 000022
【図２１】
2007287072.tif 000023
【図２２】
2007287072.tif 000024
【図２３】
2007287072.tif 000025
【図２４】
2007287072.tif 000026
【図２５】
2007287072.tif 000027
【図２６】
2007287072.tif 000028
【図２７】
2007287072.tif 000029
【図２８】
2007287072.tif 000030
【図２９】
2007287072.tif 000031
【図３０】
2007287072.tif 000032
【図３１】
2007287072.tif 000033