(57)【要約】【課題】印刷装置における動作の停滞を防ぎ、処理能力を向上させる。【解決手段】印刷領域で使用される色データと色データを参照するための参照データとの対応関係を記述した印刷領域毎のパレットを生成し、印刷領域毎の中間コードに基づき、パレットに記述された色データに対応する参照データをビットマップ画像データとして展開する制御部と、展開されたビットマップ画像データを取得して所定の処理を実行する処理部とを備えた印刷装置であって、制御部は、印刷領域毎のビットマップ画像データに関する所定の情報からなる処理要求を処理部からの所定の通知を待つことなく処理部に対して設定し、印刷領域毎のパレットを処理部からの所定の通知を待つことなく処理部に提供し、処理部は、設定された処理要求をキューにより管理し、提供された印刷領域毎のパレットを所定のメモリーに複数記憶する。【選択図】図２
2011152764.tif 000002
【特許請求の範囲】
【請求項１】
印刷コマンドを有する印刷データを所定の印刷領域毎に中間コードに変換するとともに、印刷領域で使用される色データと色データを参照するための参照データとの対応関係を記述した印刷領域毎のパレットを生成し、印刷領域毎の中間コードに基づき、パレットに記述された色データに対応する参照データをビットマップ画像データとして展開する制御部と、当該展開されたビットマップ画像データを取得して所定の処理を実行する処理部とを備えた印刷装置であって、
上記制御部は、上記印刷領域毎のビットマップ画像データに関する所定の情報からなる処理要求を上記処理部からの所定の通知を待つことなく処理部に対して設定する要求設定部と、上記印刷領域毎のパレットを上記処理部からの所定の通知を待つことなく処理部に提供するパレット提供部とを備え、
上記処理部は、上記設定された処理要求をキューにより管理するキュー管理部と、上記提供された印刷領域毎のパレットを所定のメモリーに複数記憶可能なパレット記憶部とを備えることを特徴とする印刷装置。
【請求項２】
上記要求設定部は、印刷領域毎のビットマップ画像データが生成されたときに、上記処理部に設定済みの処理要求にかかる情報に基づいて、当該生成されたビットマップ画像データに対応するパレットを記憶させる上記メモリー内のアドレスを指定するためのオフセット値を決定し、当該決定したオフセット値を当該生成されたビットマップ画像データに関する上記処理要求に含ませ、上記パレット記憶部は、当該生成されたビットマップ画像データに対応するパレットを当該オフセット値に応じた上記メモリー内のアドレスに記憶することを特徴とする請求項１に記載の印刷装置。
【請求項３】
上記処理部は、ビットマップ画像データ毎の処理要求の上記キューにおける順序に従って各ビットマップ画像データを上記所定の処理の対象とする場合、処理対象としたビットマップ画像データに対応する処理要求に含まれている上記オフセット値に応じた上記メモリー内のアドレスから、当該処理対象としたビットマップ画像データに対応するパレットを読み出すとともに、当該処理対象としたビットマップ画像データを構成する各参照データと当該読み出したパレットとに基づいて、ビットマップ画像データの各画素を色データに変換することを特徴とする請求項２に記載の印刷装置。
【請求項４】
上記制御部は、使用される色データの数が所定の制限数を超える印刷領域については、当該印刷領域の中間コードに基づき画素毎に色データを有するビットマップ画像データを展開し、上記要求設定部は、上記参照データとしてのビットマップ画像データについての処理要求と上記色データとしてのビットマップ画像データについての処理要求とを上記処理部に対して設定し、上記パレット提供部は、上記参照データとしてのビットマップ画像データに対応するパレットのみを上記処理部に提供し、上記処理部は、ビットマップ画像データ毎の処理要求の上記キューにおける順序に従って各ビットマップ画像データを上記所定の処理の対象とする場合、上記参照データとしてのビットマップ画像データについてのみ上記パレットに基づいた変換を実行することを特徴とする請求項３に記載の印刷装置。
【請求項５】
上記制御部は、印刷領域で使用される色データの数に応じて参照データの数が異なる印刷領域毎の上記パレットを生成し、上記パレット記憶部は、参照データの数が異なる複数のパレットを上記メモリーに記憶することを特徴とする請求項１〜請求項４のいずれかに記載の印刷装置。
【請求項６】
上記要求設定部は、上記処理部による上記所定の処理の結果がエラーとなった場合に上記処理部に当該処理を再実行させる旨を示す再実行情報を上記処理要求に含ませることが可能であり、上記処理部は、ビットマップ画像データ毎の処理要求の上記キューにおける順序に従って一のビットマップ画像データを上記所定の処理の対象とし、処理の結果がエラーとなった場合に、当該一のビットマップ画像データにかかる処理要求に上記再実行情報が含まれていれば、当該一のビットマップ画像データを対象として上記所定の処理を、処理内容を少なくとも一部変更した上で再実行することを特徴とする請求項１〜請求項５のいずれかに記載の印刷装置。
【請求項７】
印刷コマンドを有する印刷データを所定の印刷領域毎に中間コードに変換するとともに、印刷領域で使用される色データと色データを参照するための参照データとの対応関係を記述した印刷領域毎のパレットを生成し、印刷領域毎の中間コードに基づき、パレットに記述された色データに対応する参照データをビットマップ画像データとして展開する制御部と、当該展開されたビットマップ画像データを取得して所定の処理を実行する処理部とによる制御方法であって、
上記制御部は、上記印刷領域毎のビットマップ画像データに関する所定の情報からなる処理要求を上記処理部からの所定の通知を待つことなく処理部に対して設定し、上記印刷領域毎のパレットを上記処理部からの所定の通知を待つことなく処理部に提供し、
上記処理部は、上記設定された処理要求をキューにより管理し、上記提供された印刷領域毎のパレットを所定のメモリーに複数記憶することを特徴とする制御方法。
【請求項８】
印刷コマンドを有する印刷データを所定の印刷領域毎に中間コードに変換するとともに、印刷領域で使用される色データと色データを参照するための参照データとの対応関係を記述した印刷領域毎のパレットを生成し、印刷領域毎の中間コードに基づき、パレットに記述された色データに対応する参照データをビットマップ画像データとして展開する制御部と、当該展開されたビットマップ画像データを取得して所定の処理を実行する処理部とを機能させる制御プログラムであって、
上記制御部に、上記印刷領域毎のビットマップ画像データに関する所定の情報からなる処理要求を上記処理部からの所定の通知を待つことなく処理部に対して設定し、上記印刷領域毎のパレットを上記処理部からの所定の通知を待つことなく処理部に提供する機能を実行させ、
上記処理部に、上記設定された処理要求をキューにより管理し、上記提供された印刷領域毎のパレットを所定のメモリーに複数記憶する機能を実行させることを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置、印刷装置についての制御方法および制御プログラムに関する。
【背景技術】
【０００２】
１ページ毎に画像オブジェクトの印刷コマンドを有する印刷データを、ページ画像の一部であるバンド領域毎に中間コードに変換し、バンドで使用される色データを有するパレットを生成し、バンド毎の中間コードに基づきパレットの色データを参照する参照データをビットマップ画像データとして展開するプリンターが知られている（特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７‐２１６６７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述したようなプリンターの一種では、ＣＰＵが所定のソフトウェアに従った処理として、上記印刷データからバンド毎の中間コードへの変換、バンド毎のパレットの生成、およびバンド毎の中間コードからビットマップ画像データの展開、を実行する。また、このようなプリンターは、画像データに対する所定処理を実行するためのＡＳＩＣを備える。そしてＣＰＵは、上記生成した一バンド分のビットマップ画像データをＡＳＩＣに処理させるために必要なモード設定（処理対象となるビットマップ画像データの種類や、データサイズ等の設定）をＡＳＩＣに対して行なう。このモード設定を受けて、ＡＳＩＣは起動し、当該バンドに対応するビットマップ画像データを入力し、また必要に応じて当該バンドに対応するパレットをＡＳＩＣ内のメモリーに読み込み、ビットマップ画像データに対する変換処理や、表色系の変換（色変換）処理や、圧縮処理等といった一連の処理を実行する。
【０００５】
このような構成においては、ＡＳＩＣは、一つのバンドに対応するビットマップ画像データについて上記一連の処理を終えた後、処理が完了した旨をＣＰＵへ割込み通知していた。そして、ＣＰＵでは、当該割込み通知を受けたことを契機として、次のバンドにかかるビットマップ画像データをＡＳＩＣに処理させるために必要なモード設定をＡＳＩＣに対して行なっていた。そのため、ＣＰＵは、ＡＳＩＣによる上記一連の処理中に、次のバンドにかかるパレットの生成やビットマップ画像データの展開を終えていても、ＡＳＩＣからの割込み通知を待つ間は、当該次のバンドにかかるパレットやビットマップ画像データをＡＳＩＣに提供することができず、そのためソフトウェアによるＣＰＵの動作が滞ってしまう（プリンター内におけるパイプライン動作がストールする）ことがあった。
【０００６】
また上記のように、ＣＰＵからのモード設定を受けて、ＡＳＩＣが一バンド分のパレットをＡＳＩＣ内のメモリーに読み込む構成では、当該メモリーに未使用領域が残ることがあったため、当該メモリーを有効に活用できているとは言い難かった。
【０００７】
本発明は上記課題を解決するためになされたものであり、印刷装置における動作の停滞を防ぎ、処理能力を向上させることが可能な印刷装置、制御方法および制御プログラムを提供する。
【課題を解決するための手段】
【０００８】
本発明の態様の一つは、印刷コマンドを有する印刷データを所定の印刷領域毎に中間コードに変換するとともに、印刷領域で使用される色データと色データを参照するための参照データとの対応関係を記述した印刷領域毎のパレットを生成し、印刷領域毎の中間コードに基づき、パレットに記述された色データに対応する参照データをビットマップ画像データとして展開する制御部と、当該展開されたビットマップ画像データを取得して所定の処理を実行する処理部とを備えた印刷装置であって、上記制御部は、上記印刷領域毎のビットマップ画像データに関する所定の情報からなる処理要求を上記処理部からの所定の通知を待つことなく処理部に対して設定する要求設定部と、上記印刷領域毎のパレットを上記処理部からの所定の通知を待つことなく処理部に提供するパレット提供部とを備え、上記処理部は、上記設定された処理要求をキューにより管理するキュー管理部と、上記提供された印刷領域毎のパレットを所定のメモリーに複数記憶可能なパレット記憶部とを備える構成としてある。
【０００９】
本発明によれば、制御部は、印刷領域毎のビットマップ画像データを所定数展開する毎に、従来のような処理部からの通知（割込み通知）を待つことなく処理要求を処理部に設定するとともに、印刷領域毎のパレットを、処理部からの通知（割込み通知）を待つことなく処理部に提供して処理部内の所定のメモリーに記憶させる。このため、当該メモリーには、複数の印刷領域にそれぞれ対応する複数のパレットが記憶される。そして処理部は、印刷領域毎の処理要求をキュー（待ち行列）により管理することで、従来のように制御部に対して割込み通知を行なうことなく、各処理要求にかかるビットマップ画像データに対する処理を次々行なうことができる。よって、従来のような割込み通知を待っていたことで生じていた制御部の動作の停滞が防止され、装置全体のスループットが向上する。また、処理部内のメモリーの記憶領域が有効に利用される。
【００１０】
上記要求設定部は、印刷領域毎のビットマップ画像データが生成されたときに、上記処理部に設定済みの処理要求にかかる情報に基づいて、当該生成されたビットマップ画像データに対応するパレットを記憶させる上記メモリー内のアドレスを指定するためのオフセット値を決定し、当該決定したオフセット値を当該生成されたビットマップ画像データに関する上記処理要求に含ませ、上記パレット記憶部は、当該生成されたビットマップ画像データに対応するパレットを当該オフセット値に応じた上記メモリー内のアドレスに記憶するとしてもよい。当該構成によれば、制御部が印刷領域毎に次々に生成する各パレットを、上記メモリー内の使用可能領域に適切に格納することができる。
【００１１】
上記処理部は、ビットマップ画像データ毎の処理要求の上記キューにおける順序に従って各ビットマップ画像データを上記所定の処理の対象とする場合、処理対象としたビットマップ画像データに対応する処理要求に含まれている上記オフセット値に応じた上記メモリー内のアドレスから、当該処理対象としたビットマップ画像データに対応するパレットを読み出すとともに、当該処理対象としたビットマップ画像データを構成する各参照データと当該読み出したパレットとに基づいて、ビットマップ画像データの各画素を色データに変換するとしてもよい。つまり、上記のようにオフセット値を処理要求の一情報とすることにより、処理部はキューで管理する処理要求を処理する際に、オフセット値を参照して上記メモリーから所要のパレットを容易に読み出すことができる。そして、読み出したパレットに基づいて、上記参照データとしてのビットマップ画像データの各画素を、色データに変換することができる。
【００１２】
なお、上記制御部は、使用される色データの数が所定の制限数を超える印刷領域については、当該印刷領域の中間コードに基づき画素毎に色データを有するビットマップ画像データを展開する。そして、上記要求設定部は、上記参照データとしてのビットマップ画像データについての処理要求と上記色データとしてのビットマップ画像データについての処理要求とを上記処理部に対して設定し、上記パレット提供部は、上記参照データとしてのビットマップ画像データに対応するパレットのみを上記処理部に提供し、上記処理部は、ビットマップ画像データ毎の処理要求の上記キューにおける順序に従って各ビットマップ画像データを上記所定の処理の対象とする場合、上記参照データとしてのビットマップ画像データについてのみ上記パレットに基づいた変換を実行する。当該構成とすれば、印刷領域単位の中間コードから展開された結果として、参照データとしてのビットマップ画像データと、色データとしてのビットマップ画像データとが混在する場合であっても、それぞれの処理要求をキューで管理することで、処理要求毎の各ビットマップ画像データを適切に処理することができる。
【００１３】
上記制御部は、印刷領域で使用される色データの数に応じて参照データの数が異なる印刷領域毎の上記パレットを生成し、上記パレット記憶部は、参照データの数が異なる複数のパレットを上記メモリーに記憶するとしてもよい。当該構成によれば、複数の印刷領域にそれぞれ対応する複数のパレットであって参照データの数が印刷領域で使用される色データの数に応じて異なる複数のパレットが、上記メモリーに記憶されることにより、当該メモリーの記憶領域が有効に利用される。
【００１４】
上記要求設定部は、上記処理部による上記所定の処理の結果がエラーとなった場合に上記処理部に当該処理を再実行させる旨を示す再実行情報を上記処理要求に含ませることが可能であり、上記処理部は、ビットマップ画像データ毎の処理要求の上記キューにおける順序に従って一のビットマップ画像データを上記所定の処理の対象とし、処理の結果がエラーとなった場合に、当該一のビットマップ画像データにかかる処理要求に上記再実行情報が含まれていれば、当該一のビットマップ画像データを対象として上記所定の処理を、処理内容を少なくとも一部変更した上で再実行するとしてもよい。当該構成によれば、処理部は、一のビットマップ画像データを上記所定の処理対象とし処理結果がエラーとなった場合に、制御部に対して、当該所定の処理の再実行を通知したり当該所定の処理の再実行に必要な設定を要求したりすることなく、自ら当該所定の処理を、処理内容を少なくとも一部変更した上で再実行することができる。
【００１５】
本発明の技術的思想は、印刷装置以外によっても実現可能である。例えば、上述した印刷装置の各部が実行する処理工程を有する方法（制御方法）の発明や、上述した印刷装置の各部が実行する機能を所定のハードウェア（例えば、印刷装置が内蔵するコンピューター等）に実行させるプログラム（制御プログラム）の発明をも把握可能である。また、印刷装置は、単一の装置であってもよいし、複数の装置からなるシステムであってもよい。
【図面の簡単な説明】
【００１６】
【図１】プリンターの概略構成を示すブロック図である。
【図２】ＣＰＵがプログラムに従って実行する処理を示すフローチャートである。
【図３】一つのバンドについてのパレットを例示する図である。
【図４】バンドでの使用色数、参照データのビット数及びパレットの要素数の対応関係を示す図である。
【図５】アクセラレーターを中心とした画像処理ＡＳＩＣの一部構成などを示すブロック図である。
【図６】キューの一例を示す図である。
【図７】一バンドに対応するパレットがＲＡＭに格納される様子を例示する図である。
【図８】複数のパレットがＲＡＭに格納される様子を例示する図である。
【図９】ＲＡＭにパレットの色データが格納された状況においてインデックスバンドデータを色データに変換する様子を例示する図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施形態を図面を参照しながら説明する。
図１は、本実施形態にかかるプリンター１０の概略構成をブロック図により示している。プリンター１０は、印刷装置の一種に該当する。プリンター１０は、例えば、Ｉ／Ｏ制御ＡＳＩＣ（Application Specific Integrated Circuit）１１、画像処理ＡＳＩＣ１２、印刷エンジン１３、ＣＰＵ１４、ＲＯＭ１５、ＲＡＭ１６等を備えたページプリンターである。プリンター１０は、外部のホストコンピューターと通信可能に接続されており、Ｉ／Ｏ制御ＡＳＩＣ１１は、ホストコンピューターから画像オブジェクトの印刷コマンドからなる印刷データを受信するインターフェイスとして機能する。印刷データは、所定のページ記述言語の形式で表現されたＰＤＬデータである。
【００１８】
ＣＰＵ１４は、ＲＡＭ（ＤＲＡＭ）１６をメインメモリーとして使用し、ＲＯＭ１５に記憶されたプログラムに従った処理を実行することにより、プリンター１０の各部を制御する。また後述するように、ＣＰＵ１４は当該プログラムに従った処理の一部としてバンド毎のビットマップ画像データの展開等を行なう。このようにプログラムに従って処理を実行するＣＰＵ１４は、本発明における制御部に該当する。画像処理ＡＳＩＣ１２は、当該展開されたビットマップ画像データに対して所定の画像処理を施すハードウェアであり、アクセラレーター１２ａ、メモリーコピー（ＭＣＰＹ）ユニット１２ｂ、階調変換ユニット１２ｃ、パルス幅変調（ＰＷＭ）ユニット１２ｄ等を有する。なお、画像処理ＡＳＩＣ１２とＩ／Ｏ制御ＡＳＩＣ１１とは、それらを合せて一つのＡＳＩＣとして構成してもよい。
【００１９】
アクセラレーター１２ａは、バンド毎のビットマップ画像データに対する画像処理（各種変換処理や圧縮処理など）を実行する回路であり、本発明における処理部の主要な働きをする（図５参照）。ＭＣＰＹユニット１２ｂは、アクセラレーター１２ｂによる圧縮後の画像データをＲＡＭ１６上で詰めて整理する処理を実行する。階調変換ユニット１２ｃは、当該整理後の１ページ分の画像データを伸張するとともに階調値変換（スクリーン処理あるいはハーフトーン処理とも言う。）を実行する。ＰＷＭユニット１２ｄは、階調値変換されたビットマップ画像データを画像再生信号であるパルス信号に変換し、当該画像再生信号を印刷エンジン１３に供給する。印刷エンジン１３は、当該供給された画像再生信号に基づいてページ単位で用紙上に印刷を行う。
【００２０】
図２は、本実施形態においてＣＰＵ１４が上記プログラムに従って実行する処理をフローチャートにより示している。ステップＳ１００では、ＣＰＵ１４は、Ｉ／Ｏ制御ＡＳＩＣ１１を制御して、ホストコンピューターから印刷データを受信し、印刷データをＲＡＭ１６に格納する。印刷データは、例えば、写真等のビットマップ形式のイメージの描画コマンドや、ＣＧ等のベクターグラフィックス形式のデータについての描画コマンドや、文字コード（テキスト）形式のデータで記述された文字の描画コマンド等を含む。
【００２１】
ステップＳ１１０では、ＣＰＵ１４は、印刷データを構成する各コマンドを順次解析してどのような種類のコマンドであるか判定し、改ページコマンドであると判定した場合（Ｙｅｓ）には、ステップＳ１３０に進む。一方、解析対象のコマンドが改ページコマンド以外の種類のコマンドであると判定した場合（Ｎｏ）には、ステップＳ１２０に進む。改ページコマンドとは、１ページ分の画像を表すコマンド群の終了（改ページ位置）を意味するコマンドであり、ＣＰＵ１４が改ページコマンドを認識した時点で、１ページ分のステップＳ１２０の処理が終了したことになる。
【００２２】
ステップＳ１２０では、ＣＰＵ１４は、そのとき解析対象としているコマンドを中間コードに変換するとともに、当該中間コードをＲＡＭ１６に登録する。つまりＣＰＵ１４は、コマンドにおける描画関数等を解釈することにより中間コードを生成する。ＣＰＵ１４は、１ページ分の画像を所定数のラスター（例えば６４ラスター）単位で分割した場合に得られる各バンド（印刷領域）と中間コードとを対応付けて中間コードを登録する。従って、ステップＳ１２０を複数回繰り返した結果、一つのバンドに対して複数の中間コードが対応付けられて登録されることもある。さらに、ＣＰＵ１４は、ステップＳ１２０を繰り返す中で、バンドで使用される色データと色データを参照するための参照データとの対応関係を記述したバンド毎のパレットを生成し、バンド毎のパレットもＲＡＭ１６に格納する。ステップＳ１２０の終了後は、ステップＳ１１０に戻る。なお、印刷コマンドを中間コードに変換して登録する処理や、パレットを生成する処理については、特開２００７‐２１６６７５号公報に詳述されているため、当該公報を適宜参照するものとし、ここでは記載を省略する。
【００２３】
図３は、ある一つのバンドについてのパレットＰＬＴを例示している。パレットＰＬＴには、参照データに相当するインデックス番号０，１，２，３，４と、各インデックス番号に一対一で対応づけられた色データ（ＲＧＢ階調値）が登録される。インデックスの括弧内はインデックス番号を４ビットの２進数で表現したものである。一つの色（色データ）を構成するＲＧＢは各々２５６階調（８ビット）であり、従って、一つの色データは２４ビットとなる。図３ではＲＧＢをそれぞれ１６進数で表記している。図３では、白色（ffffff）と、赤色（ff0000）と、緑色（00ff00）と、青色（0000ff）と、黒色（000000）という計５色が使用されているバンドについてのパレットＰＬＴを示している。
【００２４】
図４は、バンドで使用される色数、パレットにおける参照データ（インデックス番号）を表現するビット数及びパレットの要素数（色数）を対応づけた表である。バンド毎のパレットにおいては、参照データのビット数は、そのバンドで使用される色数を表現することのできるビット数である必要がある。よって、図３に示したパレットＰＬＴが対応するバンドで使用される色数は５色であるので、図３に示したパレットＰＬＴにおける参照データは、４色超１６色以下に対応する４ビットで表現されている。仮に、パレットＰＬＴが対応するバンドで使用される色数が２色以下であれば、パレットＰＬＴにおける参照データは１ビットで表現され、パレットＰＬＴが対応するバンドで使用される色数が２色超４色以下であれば、パレットＰＬＴにおける参照データは２ビットで表現され、パレットＰＬＴが対応するバンドで使用される色数が１６色超２５６色以下であれば、パレットＰＬＴにおける参照データは８ビットで表現される。
【００２５】
なお本実施形態では、バンドで使用される色数が制限数である２５６色を超える場合には、基本的に、そのバンドについてはパレットを用いない。これは、パレットの要素数が増加すればパレット自体を格納するためにより多くのメモリー資源が必要となり、かつ、後述のステップＳ１４０において展開される参照データとしてのビットマップ画像データのデプス（一画素あたりのビット数）も大きな数値となり、全体としてメモリー資源の節約効果が減少してしまうからである。ＣＰＵ１４は、使用される色数が上記制限数を超えるバンドについては、例えば、色数が制限数を超えることを示す所定の情報を、そのバンドの中間コードに関連付けて記憶するなどして、後述のステップＳ１４０で当該所定の情報を参照して色数が制限数を超えているか否か判定できるようにしておく。
【００２６】
なお上記では、ステップＳ１００においてホストコンピューターから印刷データを受信するとしたが、ホストコンピューターから中間コードを受信するとしてもよい。つまり、ホストコンピューターの側で所定のプリンタードライバーの機能により印刷データから中間コードへの変換が行なわれ、プリンター１０は、バンド毎の中間コードをＩ／Ｏ制御ＡＳＩＣ１１を介してホストコンピューターから受信する。ホストコンピューターから中間コードを受信した場合も、ＣＰＵ１４はバンド毎のパレットを生成する。
【００２７】
ステップＳ１３０では、ＣＰＵ１４は、中間コードを展開する対象となるバンドの番号（バンド番号ＢＮ）を所定数設定する。本実施形態では、１ページを構成する各バンドにページ先頭から順に１，２，３，４…というようにバンド番号ＢＮが付与されているものとする。例えば、バンド番号ＢＮを一回のステップＳ１３０で一つ設定する場合は、最初のステップＳ１３０ではバンド番号ＢＮ＝１と設定し、次回のステップＳ１３０以降、バンド番号ＢＮを１ずつ増加させていく。あるいは、バンド番号ＢＮを一回のステップＳ１３０で複数（例えば三つ）設定する場合は、最初のステップＳ１３０ではバンド番号ＢＮ＝１，２，３と設定し、次回のステップＳ１３０以降もバンド番号ＢＮを三つずつ設定する。ここでは、ＣＰＵ１４は、中間コードを展開する対象としてのバンド番号ＢＮを、一回のステップＳ１３０毎に三つ設定するものとして説明を行なう。
【００２８】
ステップＳ１４０では、ＣＰＵ１４は、直近のステップＳ１３０で設定したバンド番号ＢＮにかかるバンドの中間コードをＲＡＭ１６上に展開することにより、バンド単位のビットマップ画像データを生成する。例えば、ステップＳ１３０でバンド番号ＢＮ＝１，２，３が設定されている場合、ステップＳ１４０では、これら三つのバンドそれぞれのビットマップ画像データを並列処理により生成する。この場合、ＣＰＵ１４は、使用される色数が上記制限数以下であるバンドについては、その中間コードに基づき、パレットに記述された色データに対応する参照データをビットマップ画像データとして展開する。
【００２９】
すなわち、バンドを構成する画素毎に、中間コードで定義されている色に対応するインデックス番号を、当該バンドに対応するパレットを参照することで特定し、当該特定したインデックス番号としての参照データ（最大でも８ビット）を画素値とする。このように生成された参照データとしてのビットマップ画像データは、各画素がパレットのインデックス番号を有しており、ＲＧＢ階調値は有していない。以下では、参照データとしてのビットマップ画像データを、「インデックスバンドデータ」とも呼ぶ。一方、使用される色数が上記制限数（２５６）を超えるバンドについては、ＣＰＵ１４は、そのバンドの中間コードに基づいて、ＲＧＢ各２５６階調（８ビット）で表現される色データ（２４ビット）を画素毎に有するビットマップ画像データを生成する。以下では、このような色データとしてのビットマップ画像データを、「ＲＧＢバンドデータ」とも呼ぶ。なお、このように中間コードをビットマップ画像データに展開する処理についても、適宜、特開２００７‐２１６６７５号公報を参照するものとする。
【００３０】
ステップＳ１５０では、ＣＰＵ１４は、直近のステップＳ１３０で設定したバンド番号ＢＮにかかるバンド毎（ビットマップ画像データ毎）の処理要求を、バンド番号ＢＮ順に画像処理ＡＳＩＣ１２に対して設定する。ステップＳ１５０を実行する点で、ＣＰＵ１４は、要求設定部として機能すると言える。処理要求は、ビットマップ画像データに関する各種情報を含むものであり、処理要求を受け取った画像処理ＡＳＩＣ１２は、受け取った処理要求に対応するビットマップ画像データに対する画像処理を実行することができる。
【００３１】
図５は、ＲＡＭ１６上の各種データと、アクセラレーター１２ａを中心とした画像処理ＡＳＩＣ１２の構成の一部と、ＣＰＵ１４との関係を、簡易的に示したブロック図である。アクセラレーター１２ａは、ＲＡＭ（ＳＲＡＭ）２０、色補正部２１、色変換部２２、圧縮処理部２３、監視部２４、キュー管理部２５等を有する。ＣＰＵ１４は、バンド毎の処理要求を、キュー管理部２５に対して設定する。ＲＡＭ２０は、後述するように、インデックスバンドデータが対応するバンドにかかるパレットを、インデックスバンドデータの変換処理に用いるために記憶するメモリーである。
【００３２】
図６は、キュー管理部２５が管理するキュー２５ａを例示している。キュー２５ａは、ＣＰＵ１４によって設定されたバンド毎の処理要求の待ち行列であり、待ち行列の先頭側から、設定された順番が早いもの順に処理要求が配列される。キュー２５ａを構成する処理要求は各々「Ｓｔａｔｕｓ」、「Ｍｏｄｅ」、「Ｓｏｕｒｃｅ  Ａｄｄｒｅｓｓ」、「Ｄｉｓｔｉｎａｔｉｏｎ  Ａｄｄｒｅｓｓ」、「Ｓｏｒｃｅ  Ｄａｔａ  Ｓｉｚｅ」、「Ｏｕｔｐｕｔ  Ｄａｔａ  Ｓｉｚｅ」、「Ｒｅｔｒｙ」、「Ａｄｄｒｅｓｓ  Ｏｆｆｓｅｔ」等といった各種情報を含み得る。つまりＣＰＵ１４は、これら各種情報の内容を決定し、当該決定した各種情報からなる処理要求をキュー管理部２５に対して設定する。「Ｓｔａｔｕｓ」は、処理要求にかかるビットマップ画像データに関する処理状態を意味し、具体的には「完了」、「エラー」、「未実行」、「実行中」のいずれかである。ＣＰＵ１４が処理要求を設定した直後においては「Ｓｔａｔｕｓ」は「未実行」に設定されている。キュー管理部２５は、処理要求に対するアクセラレーター１２ａによる処理の進捗状況に応じて「Ｓｔａｔｕｓ」の設定を変更（書き換え）可能である。
【００３３】
「Ｍｏｄｅ」は、処理要求が対応するビットマップ画像データが、インデックスバンドデータであるかＲＧＢバンドデータであるかを示す情報であり、インデックスバンドデータであれば更に、そのデプス（１ビット又は２ビット又は４ビット又は８ビットのいずれか）や、バンドにおける使用色数（対応するパレットに登録された色数）の情報が設定されている。「Ｓｏｕｒｃｅ  Ａｄｄｒｅｓｓ」は、処理要求が対応するビットマップ画像データのＲＡＭ１６における現在の保存場所（保存元）を指定する情報である。「Ｄｉｓｔｉｎａｔｉｏｎ  Ａｄｄｒｅｓｓ」は、アクセラレーター１２ａによる画像処理を施した後のデータについてのＲＡＭ１６における保存場所（保存先）を指定する情報である。「Ｓｏｒｃｅ  Ｄａｔａ  Ｓｉｚｅ」は、処理要求が対応するビットマップ画像データのデータサイズを示す情報である。「Ｏｕｔｐｕｔ  Ｄａｔａ  Ｓｉｚｅ」は、アクセラレーター１２ａによる画像処理を施した後のデータのデータサイズに対する上限値を示す情報である。
【００３４】
「Ｒｅｔｒｙ」は、アクセラレーター１２ａによる画像処理の結果がエラーとなった場合に当該画像処理（の一部）を再実行させる旨を示す情報（再実行情報）である。「Ａｄｄｒｅｓｓ  Ｏｆｆｓｅｔ」は、処理要求が対応するビットマップ画像データに対応するパレットを記憶させるＲＡＭ２０内のアドレスを指定するためのオフセット値である。ＣＰＵ１４は、あるインデックスバンドデータにかかる処理要求内の「Ａｄｄｒｅｓｓ  Ｏｆｆｓｅｔ」を決定する場合、キュー管理部２５に設定済みの他のバンドの処理要求にかかる情報に基づいて、当該「Ａｄｄｒｅｓｓ  Ｏｆｆｓｅｔ」を決定する。詳細については後述する。なお、ビットマップ画像データがＲＧＢバンドデータである場合には、パレットをＲＡＭ２０に記憶する必要がないため、その処理要求に「Ａｄｄｒｅｓｓ  Ｏｆｆｓｅｔ」は含まれない。
【００３５】
図７は、一つのバンドに対応するパレットＰＬＴ１がＲＡＭ２０に記憶された様子を例示している。パレットＰＬＴ１は、バンド番号ＢＮ＝１のバンドに対応するパレットであり、そのため最初にＲＡＭ２０に記憶されるパレットである。また、パレットＰＬＴ１は、使用色数が１６色であるバンドに対応するパレットであり、そのため１６個のインデックス番号と、１６個のインデックス番号に一対一で対応付けられた色データ（２４ビット）１６個と有している。また、ＲＡＭ２０は、０〜２５５の２５６個のメモリーアドレスを持ち、各アドレスに対応してインデックス番号を表わす情報と２４ビットの情報とを格納可能なサイズである。従って、パレットＰＬＴ１は、アドレス番号“０”から“１５”までの領域に格納される。かかる状態においては、アドレス番号“１６”から“２５５”までの領域は、未使用領域である。また、バンド番号ＢＮ＝１のバンドにかかるインデックスバンドデータについてのアクセラレーター１２ａによる画像処理が完了（「Ｓｔａｔｕｓ」＝「完了」）した後は、パレットＰＬＴ１を格納した領域も、他のパレットの記憶のために使用可能（上書き可能）な領域となる。
【００３６】
ここで、ＣＰＵ１４による、あるインデックスバンドデータにかかる処理要求内の「Ａｄｄｒｅｓｓ  Ｏｆｆｓｅｔ」の決定方法について説明する。ＣＰＵ１４は、「Ａｄｄｒｅｓｓ  Ｏｆｆｓｅｔ」を決定しようとしているインデックスバンドデータよりも一つ前のインデックスバンドデータの処理要求における「Ｓｔａｔｕｓ」と「Ｍｏｄｅ」に規定されている使用色数と「Ａｄｄｒｅｓｓ  Ｏｆｆｓｅｔ」とに基づいて、目的の「Ａｄｄｒｅｓｓ  Ｏｆｆｓｅｔ」を決定する。例えば、上述したバンド番号ＢＮ＝１のバンドにかかるインデックスバンドデータの場合、一つ前のインデックスバンドデータは存在しないため、一つ前のインデックスバンドデータの「Ｓｔａｔｕｓ」は無し、一つ前のインデックスバンドデータの使用色数は０、一つ前のインデックスバンドデータの「Ａｄｄｒｅｓｓ  Ｏｆｆｓｅｔ」も０、となる。そこで、バンド番号ＢＮ＝１のバンドにかかるインデックスバンドデータの「Ａｄｄｒｅｓｓ  Ｏｆｆｓｅｔ」は、一つ前のインデックスバンドデータの「Ａｄｄｒｅｓｓ  Ｏｆｆｓｅｔ」に、一つ前のインデックスバンドデータの使用色数を加えた結果、すなわち０となる。
【００３７】
次に、バンド番号ＢＮ＝２のバンドのビットマップ画像データもインデックスバンドデータである場合、一つ前のインデックスバンドデータ（バンド番号ＢＮ＝１のバンドのインデックスバンドデータ）の「Ｓｔａｔｕｓ」が「完了」以外であれば、当該一つ前のインデックスバンドデータの「Ａｄｄｒｅｓｓ  Ｏｆｆｓｅｔ」である０に、当該一つ前のインデックスバンドデータの使用色数である１６を加えた結果、すなわち１６が、バンド番号ＢＮ＝２のバンドにかかるインデックスバンドデータの「Ａｄｄｒｅｓｓ  Ｏｆｆｓｅｔ」となる。また、バンド番号ＢＮ＝４のバンドのビットマップ画像データがインデックスバンドデータである場合（バンド番号ＢＮ＝３のバンドのビットマップ画像データはＲＧＢバンドデータであるとする）、一つ前のインデックスバンドデータ（バンド番号ＢＮ＝２のバンドのインデックスバンドデータ）の「Ｓｔａｔｕｓ」が「完了」以外であれば、当該一つ前のインデックスバンドデータの「Ａｄｄｒｅｓｓ  Ｏｆｆｓｅｔ」である１６に、当該一つ前のインデックスバンドデータの使用色数（例えば、４）を加えた結果、すなわち２０が、バンド番号ＢＮ＝４のバンドにかかるインデックスバンドデータの「Ａｄｄｒｅｓｓ  Ｏｆｆｓｅｔ」となる。
【００３８】
このように決定される「Ａｄｄｒｅｓｓ  Ｏｆｆｓｅｔ」は、その処理要求にかかるインデックスバンドデータに対応するパレットをＲＡＭ２０に格納する際の先頭アドレスとなる。つまり、一つ前のインデックスバンドデータの「Ａｄｄｒｅｓｓ  Ｏｆｆｓｅｔ」に、当該一つ前のインデックスバンドデータの使用色数を加えることで、ＲＡＭ２０におけるどこのアドレスから新たなパレットを格納すればよいかが分かる。なお、ＲＡＭ２０は、先に書き込まれた情報が先に読み出されるＦＩＦＯ（First In First Out）構造のメモリーである。そのため、「Ａｄｄｒｅｓｓ  Ｏｆｆｓｅｔ」を決定しようとしている新たなインデックスバンドデータより一つ前のインデックスバンドデータの「Ｓｔａｔｕｓ」が「完了」である場合は、それよりも前のインデックスバンドデータについても全て「Ｓｔａｔｕｓ」は「完了」となっていると言える。そのような場合には、上記バンド番号ＢＮ＝１のバンドにかかるインデックスバンドデータの「Ａｄｄｒｅｓｓ  Ｏｆｆｓｅｔ」と同様に、当該新たなインデックスバンドデータの処理要求における「Ａｄｄｒｅｓｓ  Ｏｆｆｓｅｔ」も０となる。
【００３９】
ステップＳ１６０では、ＣＰＵ１４は、直近のステップＳ１４０で展開により生成したビットマップ画像データにインデックスバンドデータが含まれていれば、そのインデックスバンドデータに対応するパレットをＲＡＭ１６から画像処理ＡＳＩＣ１２側に提供し、アクセラレーター１２ａのＲＡＭ２０に記憶させる（図５参照）。ステップＳ１６０を実行する点で、ＣＰＵ１４は、パレット提供部として機能すると言える。
【００４０】
図８は、ステップＳ１６０において、複数のパレットＰＬＴ１，ＰＬＴ２，ＰＬＴ３がＲＡＭ２０に記憶される様子を例示している。パレットＰＬＴ１は上述したようにバンド番号ＢＮ＝１のバンドに対応するパレットであり、パレットＰＬＴ２，ＰＬＴ３はそれぞれ、バンド番号ＢＮ＝２，３のバンドに対応するパレットである。図８の説明では、便宜上、バンド番号ＢＮ＝１〜３の各バンドのビットマップ画像データはいずれもインデックスバンドデータであるとしている。画像処理ＡＳＩＣ１２は、ＣＰＵ１４によって上記提供されたパレットを、当該パレットが対応するインデックスバンドデータの処理要求内の「Ａｄｄｒｅｓｓ  Ｏｆｆｓｅｔ」に応じたＲＡＭ２０内のアドレスに記憶する。具体的には、パレットＰＬＴ１が対応する処理要求内の「Ａｄｄｒｅｓｓ  Ｏｆｆｓｅｔ」は上述したように０であるため、ＲＡＭ２０におけるアドレス番号“０”から始まる領域に、パレットＰＬＴ１を格納する。上述したようにパレットＰＬＴ１の色数は１６色であるため、パレットＰＬＴ１は、アドレス番号“０”から“１５”までの領域に格納される。
【００４１】
パレットＰＬＴ２が対応する処理要求内の「Ａｄｄｒｅｓｓ  Ｏｆｆｓｅｔ」は上述したように１６であるため、ＲＡＭ２０におけるアドレス番号“１６”から始まる領域に、パレットＰＬＴ２を格納する。上述したようにパレットＰＬＴ２の色数は４色であるため、パレットＰＬＴ２は、アドレス番号“１６”から“１９”までの領域に格納される。パレットＰＬＴ３が対応する処理要求内の「Ａｄｄｒｅｓｓ  Ｏｆｆｓｅｔ」は、パレットＰＬＴ２が対応する処理要求内の「Ａｄｄｒｅｓｓ  Ｏｆｆｓｅｔ」（１６）に、パレットＰＬＴ２の色数（４）を加えた結果の２０である（バンド番号ＢＮ＝３のビットマップ画像データがインデックスバンドデータである場合、キュー管理部２５が管理するキュー２５ａには、そのインデックスバンドデータに対応する処理要求に「Ａｄｄｒｅｓｓ  Ｏｆｆｓｅｔ」として２０が設定されている）ため、パレットＰＬＴ３は、アドレス番号“２０”から始まる領域に記憶される。仮に、パレットＰＬＴ３の色数が１６色であれば、パレットＰＬＴ３は、アドレス番号“２０”から“３５”までの領域に格納される。
【００４２】
なお、上記ステップＳ１６０において、あるパレットをＲＡＭ２０に記憶させようとするとき、当該パレットにおける色数によっては、その時点で使用可能なＲＡＭ２０内の領域に、当該パレットを格納できない場合がある。例えば、図８で説明に用いたパレットＰＬＴ３が、仮に２５６色を登録したパレットである場合、ＲＡＭ２０におけるアドレス番号“２０”から“２５５”までの領域に、かかるパレットＰＬＴ３を格納することはできない。そのため本実施形態では、ＣＰＵ１４は、上記ステップＳ１６０において、あるパレットをＲＡＭ２０に記憶させようとするとき、キュー管理部２５が管理するキュー２５ａを参照して当該パレットが対応する処理要求内の「Ａｄｄｒｅｓｓ  Ｏｆｆｓｅｔ」を確認することにより、ＲＡＭ２０における使用可能な領域のアドレス数を特定する。そして、当該特定したアドレス数よりも、当該パレットの色数の方が多い場合には、当該パレットが対応する処理要求よりも前の処理要求（ただしインデックスバンドデータにかかる処理要求）における「Ｓｔａｔｕｓ」が「完了」となり当該パレットを格納できる領域がＲＡＭ２０内に確保されるまでは、当該パレットを画像処理ＡＳＩＣ１２側に提供することを待機する。そして、当該パレットを格納できる領域がＲＡＭ２０内に確保されたタイミングで当該パレットを画像処理ＡＳＩＣ１２側に提供し、ＲＡＭ２０に記憶させる。そのため本実施形態では、キュー２５ａにおいて「Ｓｔａｔｕｓ」が「完了」ではない状態の処理要求の数と、ＲＡＭ２０に格納されているパレット数とが異なる状況も発生し得る。
【００４３】
ステップＳ１７０では、ＣＰＵ１４は、１ページを構成する全てのバンドについて、上記ステップＳ１３０でバンド番号ＢＮを設定し終えたか否か判定し、終えている場合には当該フローチャートを終了し、終えていない場合にはステップＳ１３０に戻り、新たに中間コードを展開する対象とするバンド番号ＢＮを所定数設定する。
なお上記では、アクセラレーター１２ａのＲＡＭ２０について、０〜２５５の２５６個のアドレスを持つサイズとしたが、倍の５１２個のアドレスを持つサイズとしてもよい。このようにＲＡＭ２０を倍のサイズとすれば、ＲＡＭ２０において、２５６色という最大の色データ数を有するパレットを同時に２つ格納することができる。
【００４４】
次に、ＣＰＵ１４による上記のような処理要求の設定およびパレットの提供を受けて画像処理ＡＳＩＣ１２側（特にアクセラレーター１２ａ）で実行する処理について説明する（図５を適宜参照）。アクセラレーター１２ａでは、キュー管理部２５がＣＰＵ１４によってバンド毎の処理要求が設定されるキュー２５ａを随時監視し、「Ｓｔａｔｕｓ」が「未実行」である処理要求のうち、設定された順番が早い処理要求から優先して処理対象とする（処理対象とした処理要求における「Ｓｔａｔｕｓ」を「実行中」に変更）。アクセラレーター１２ａは、キュー管理部２５が処理対象とした処理要求における「Ｍｏｄｅ」を判別する。ここで、「Ｍｏｄｅ」がインデックスバンドデータを示している場合、アクセラレーター１２ａは、当該処理要求における「Ｓｏｕｒｃｅ  Ａｄｄｒｅｓｓ」で示されているＲＡＭ１６内のアドレスからビットマップ画像データ（インデックスバンドデータ）を読み出し、入力する（図５参照）。そして、当該処理要求における「Ｍｏｄｅ」に規定されている使用色数および「Ａｄｄｒｅｓｓ  Ｏｆｆｓｅｔ」に基づいて、パレットを読み出すべきＲＡＭ２０内のアドレスを特定し、当該特定したアドレスからパレットを読み出す。例えば、「Ａｄｄｒｅｓｓ  Ｏｆｆｓｅｔ」が１６であり、使用色数が４であれば、ＲＡＭ２０のアドレス番号“１６”から“１９”までの領域から、そこに格納されているパレットを読み出せばよい。
【００４５】
そして、アクセラレーター１２ａは、上記ＲＡＭ１６から入力したインデックスバンドデータの各画素について、参照データ（インデックス番号）を、上記ＲＡＭ２０から読み出したパレットにおける参照データと色データとの対応関係を参照することにより、ＲＧＢ各２５６階調（８ビット）で表現される色データ（２４ビット）に変換する。このようにパレットを用いて変換されたビットマップ画像データは、色補正部２１に入力される。
一方、アクセラレーター１２ａは、キュー管理部２５が処理対象とした処理要求における「Ｍｏｄｅ」がＲＧＢバンドデータを示している場合は、当該処理要求における「Ｓｏｕｒｃｅ  Ａｄｄｒｅｓｓ」で示されているＲＡＭ１６内のアドレスからビットマップ画像データ（ＲＧＢバンドデータ）を読み出し、それをそのまま色補正部２１に入力する（図５参照）。
【００４６】
色補正部２１は、例えば、所定の１次元ルックアップテーブル（ＬＵＴ）を有しており、入力されたビットマップ画像データの画素毎のＲＧＢ階調値を、当該１次元ＬＵＴによって色補正（例えば、明度や彩度の補正）を行う。色補正部２１によって補正された後のビットマップ画像データは、色変換部２２に入力される。色変換部２２は、ＲＧＢとプリンター１０が使用する記録材（トナー）の色であるＣＭＹＫとの対応関係を複数の格子点に関して規定した色変換ＬＵＴを有しており、入力されたビットマップ画像データの画素毎のＲＧＢ階調値を、ＣＭＹＫ階調値に変換する。色変換部２２によって色変換された後のビットマップ画像データは、圧縮処理部２３に入力される。
【００４７】
圧縮処理部２３は、入力されたビットマップ画像データを所定の圧縮方式（可逆圧縮）かつ所定の圧縮率にて圧縮する。監視部２４は、圧縮処理部２３により圧縮された後のデータサイズと、処理要求における「Ｏｕｔｐｕｔ  Ｄａｔａ  Ｓｉｚｅ」に設定されているデータサイズの上限値とを比較し、圧縮後のデータサイズが当該上限値を超える場合には、エラー（圧縮失敗）と判断する（「Ｓｔａｔｕｓ」を「エラー」に変更）。そして、このように監視部２４がエラーと判断した場合であって、キュー管理部２５が処理対象としている処理要求に「Ｒｅｔｒｙ」が設定されている場合には、色変換部２２によって色変換された後のビットマップ画像データに対する圧縮処理部２３による圧縮処理を再実行する。ただし、再実行の場合には、アクセラレーター１２ａは、圧縮処理部２３による圧縮方式を可逆圧縮から非可逆圧縮に変更したり、圧縮率等のパラメーターを変更させた上で、再実行させる。そして、圧縮処理部２３により圧縮された後のデータサイズが当該上限値以下となった場合に、アクセラレーター１２ａは、当該圧縮後の画像データを、処理要求における「Ｄｉｓｔｉｎａｔｉｏｎ  Ａｄｄｒｅｓｓ」で示されているＲＡＭ１６内のアドレスへ記録する。このように、アクセラレーター１２ａは、一つの処理要求にかかるビットマップ画像データについての一連の処理を終えたら、その処理要求における「Ｓｔａｔｕｓ」を「完了」に変更する。そして、キュー２５ａにける設定順が次に早い処理要求を対象として、上述した一連の処理を繰り返す。
【００４８】
ＭＣＰＹユニット１２ｂは、図５に示すように、ＲＡＭ１６に記録されたアクセラレーター１２ｂによる圧縮後の画像データを一旦コピーし、当該圧縮後の画像データを構成するＣＭＹＫ毎の画像データをバンド単位でＲＡＭ１６上で詰めて整理する。そして、ＣＰＵ１４は、当該整理後の画像データが１ページ分貯まったら、当該１ページ分の画像データを階調変換ユニット１２ｃに出力する。
【００４９】
このように本実施形態によれば、ＣＰＵ１４は所定のプログラムに従って、バンド単位で中間コードを展開する場合に、使用色数が制限数以下のバンドについては、中間コードに基づいて、そのバンドに対応するパレットに記述された参照データを各画素値として有するビットマップ画像データ（インデックスバンドデータ）をＲＡＭ１６に展開する。一方、使用色数が制限数を超えるバンドについては、中間コードに基づいて、各画素がＲＧＢ階調値を有するビットマップ画像データ（ＲＧＢバンドデータ）をＲＡＭ１６に展開する。そして、このようなバンド単位のビットマップ画像データを所定数（一つあるいは複数）展開する度に、画像処理ＡＳＩＣ１２側からの要請（割込み通知）を特に待つことなく、バンド単位のビットマップ画像データにかかる処理要求を画像処理ＡＳＩＣ１２側に設定する。この結果、画像処理ＡＳＩＣ１２側では、各処理要求をキューにより管理することが可能となる。また、ＣＰＵ１４は、インデックスバンドデータに対応するバンドにかかるパレットについても画像処理ＡＳＩＣ１２側からの要請（割込み通知）を待つことなく、上記処理要求の設定とともに、画像処理ＡＳＩＣ１２側に次々に提供し、画像処理ＡＳＩＣ１２内のＲＡＭ２０内にパレットを複数記憶させることが可能であれば複数記憶させる。そして、画像処理ＡＳＩＣ１２側では、キュー管理部２５が管理するキュー２５ａにおける各処理要求を、キュー２５ａにおける順序に従って一つ一つ処理していく。
【００５０】
すなわちＣＰＵ１４は、画像処理ＡＳＩＣ１２側のバンド単位での処理の進捗状況とは別に、自らの側で生成したビットマップ画像データについての処理要求やパレットを、次々に画像処理ＡＳＩＣ１２側に設定することができる。よって、ＡＳＩＣ側で一つのバンドにかかるデータに対して一連の処理を終えたときにＣＰＵ側に割込み通知を行い、ＣＰＵは当該割込み通知を受けたことを契機として、次のバンドにかかるデータをＡＳＩＣに処理させるために必要なモード設定をＡＳＩＣに対して行なっていた、という従来の構成と比較して、ＣＰＵ１４の動作の停滞が防止され、プリンター１０全体のスループットが飛躍的に向上する。また、画像処理ＡＳＩＣ１２内のＲＡＭ２０の記憶領域が有効に利用される。さらに本実施形態では、上述したように、ビットマップ画像データに対する圧縮処理の結果がエラーである場合には、エラーに対応して画像処理ＡＳＩＣ１２（アクセラレーター１２ａ）内で自動的に圧縮処理を再実行（圧縮方式や所定のパラメーターを変更して再実行）するので、かかる再実行も効率化される。
【００５１】
さらに本実施形態では以下の構成を採用してもよい。上記では、ステップＳ１６０の処理の結果、画像処理ＡＳＩＣ１２内のＲＡＭ２０にはパレット全体が格納されることを前提として説明を行なったが、ＲＡＭ２０には、パレットにおける色データのみを格納し、インデックス番号は格納しないとしてもよい。この場合、ＲＡＭ２０は、２５６個（あるいはそれ以上）のメモリーアドレスを持ち、各アドレスに対応して２４ビットの情報を格納可能なサイズとする。そして、例えば、バンド番号ＢＮ＝２のバンドに対応する上記パレットＰＬＴ２であれば、アドレス番号“１６”から“２０”の領域（図８参照）に、パレットＰＬＴ２における４個の色データ（一つの色データは２４ビット）を、それら色データに対応するインデックス番号（０，１，２，３）順に格納する。この結果、パレットＰＬＴ２においてインデックス番号“０”に対応していた色データは、ＲＡＭ２０のアドレス番号“１６”に対応する領域に記憶される。同様に、パレットＰＬＴ２において他のインデックス番号１，２，３にそれぞれ対応していた色データは、ＲＡＭ２０のアドレス番号１７，１８，１９に対応する各領域にそれぞれ記憶される。
【００５２】
図９は、このようにＲＡＭ２０に各パレットの色データのみが格納された状況において、アクセラレーター１２ａが、パレットを用いてインデックスバンドデータを色データに変換する様子を例示している。ここでは、バンド番号ＢＮ＝２のバンドに対応する処理要求が処理対象とされているものとする。図９においては、アクセラレーター１２ａが、現在対象としている処理要求における「Ｓｏｕｒｃｅ  Ａｄｄｒｅｓｓ」で示されたＲＡＭ１６内のアドレスから読み出したインデックスバンドデータ（バンド番号ＢＮ＝２のバンドに対応するインデックスバンドデータ）と、当該処理要求における「Ａｄｄｒｅｓｓ  Ｏｆｆｓｅｔ」とを加算している。つまり、インデックスバンドデータは、各画素がインデックス番号を有するデータであるため、画素毎のインデックス番号に対して「Ａｄｄｒｅｓｓ  Ｏｆｆｓｅｔ」を加算している。バンド番号ＢＮ＝２のバンドに対応する処理要求における「Ａｄｄｒｅｓｓ  Ｏｆｆｓｅｔ」は１６であるため、この場合、インデックスバンドデータ内の各画素のインデックス番号が、一律に１６だけ増加する。
【００５３】
そして、アクセラレーター１２ａは、このように「Ａｄｄｒｅｓｓ  Ｏｆｆｓｅｔ」の加算によって値が増加したインデックス番号と数値が一致するＲＡＭ２０のアドレスを読みに行き、当該読みに行ったアドレスに対応して記憶されている色データを、インデックスバンドデータの画素毎の変換結果として取得する。このように、画像処理ＡＳＩＣ１２内のＲＡＭ２０にパレットの色データのみを格納する構成においても、各パレットの「Ａｄｄｒｅｓｓ  Ｏｆｆｓｅｔ」を用いることにより、各バンドのインデックスバンドデータを色データに的確に変換することができる。また、ＲＡＭ２０にパレットの色データのみを格納すればよいため、ＲＡＭ２０を小サイズ化してプリンター１０のコストダウンに貢献することができる。
【符号の説明】
【００５４】
１０…プリンター、１１…Ｉ／Ｏ制御ＡＳＩＣ、１２…画像処理ＡＳＩＣ、１２ａ…アクセラレーター、１３…印刷エンジン、１４…ＣＰＵ、１５…ＲＯＭ、１６…ＲＡＭ、２０…ＲＡＭ、２１…色補正部、２２…色変換部、２３…圧縮処理部、２４…監視部、２５…キュー管理部、２５ａ…キュー
【図１】
2011152764.tif 000003
【図２】
2011152764.tif 000004
【図３】
2011152764.tif 000005
【図４】
2011152764.tif 000006
【図５】
2011152764.tif 000007
【図６】
2011152764.tif 000008
【図７】
2011152764.tif 000009
【図８】
2011152764.tif 000010
【図９】
2011152764.tif 000011