(57)【要約】【課題】メモリアクセスを少なくして高速に処理をする。【解決手段】色情報を表す画像データを画素単位で記憶する第１記憶部と、隣接する複数の画素を含むブロック単位で色情報を表すブロック画像データを記憶する第２記憶部と、ブロック画像データに含まれるそれぞれのブロックが有効または無効を示すブロック状態情報を記憶する第３記憶部と、ソース画像に基づき画像データを描画して第１記憶部に記憶させるとともに、ソース画像に基づきブロック画像データを描画して第２記憶部に記憶させ、ソース画像に基づきブロック状態情報を生成して第３記憶部に記憶させる描画部と、を備える画像処理装置を提供する。【選択図】図１
2014165545.tif 000002
【特許請求の範囲】
【請求項１】
色情報を表す画像データを画素単位で記憶する第１記憶部と、
隣接する複数の画素を含むブロック単位で色情報を表すブロック画像データを記憶する第２記憶部と、
ソース画像に基づき前記画像データを描画して前記第１記憶部に記憶させるとともに、前記ソース画像に基づき前記ブロック画像データを描画して前記第２記憶部に記憶させる描画部と、
を備える画像処理装置。
【請求項２】
前記ブロック画像データに含まれるそれぞれのブロックが有効または無効を示すブロック状態情報を記憶する第３記憶部をさらに備え、
前記描画部は、前記ソース画像に基づき前記ブロック状態情報を生成して前記第３記憶部に記憶させる
請求項１に記載の画像処理装置。
【請求項３】
前記第２記憶部は、水平方向のラインを予め定められた数の画素で区切ったブロック単位で色情報を表すブロック画像データを記憶する
請求項２に記載の画像処理装置。
【請求項４】
前記描画部は、前記ソース画像の画素を含まない空白が存在するブロックに対して、前記ブロックにおけるソース画像の画素を含まない部分の画素を前記第２記憶部の対応するブロックの色とした前記画像データを描画し、前記ブロックを無効とした前記ブロック状態情報を生成する
請求項２または３に記載の画像処理装置。
【請求項５】
前記描画部は、ブロック内の複数の画素が全て同一の色である場合には、対応するブロックを有効とした前記ブロック状態情報を生成し、異なる色の画素が含まれる場合には、対応するブロックを無効とした前記ブロック状態情報を生成する
請求項２から４の何れか１項に記載の画像処理装置。
【請求項６】
前記描画部は、前記ソース画像が写真を元とした画像である場合には、全てのブロックを無効とした前記ブロック状態情報を生成する
請求項２から５の何れか１項に記載の画像処理装置。
【請求項７】
前記描画部は、初期化において、全てのブロックが予め定められた色情報とされたブロック画像データを前記第２記憶部に記憶させるとともに、全てのブロックを有効としたブロック状態情報を前記第３記憶部に記憶させる
請求項２から６の何れか１項に記載の画像処理装置。
【請求項８】
前記ブロック画像データにおける前記ブロック状態情報に有効と示されたブロックの色情報、および、前記画像データにおける前記ブロック状態情報に無効と示されたブロックのそれぞれの画素の色情報に基づき、画像処理を実行する画像処理部をさらに備える
請求項２から７の何れか１項に記載の画像処理装置。
【請求項９】
前記画像処理部は、階調処理を実行する
請求項８に記載の画像処理装置。
【請求項１０】
前記画像処理部は、前記描画部とバスを介して接続される
請求項８または９に記載の画像処理装置。
【請求項１１】
色情報を表す画像データを画素単位で第１記憶部に記憶させるステップと、
隣接する複数の画素を含むブロック単位で色情報を表すブロック画像データを第２記憶部に記憶させるステップと、
ソース画像に基づき前記画像データを描画して前記第１記憶部に記憶させるとともに、前記ソース画像に基づき前記ブロック画像データを描画して前記第２記憶部に記憶させるステップと、
を含む画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および画像処理方法に関する。
【背景技術】
【０００２】
従来、ページプリンタなどにおいて、解像度の増加と高速の要求から、ＣＰＵ（Central  Processing  Unit）の性能のみではこの要求を満たすことが難しくなってきた。特に、カラープリンタでは、Ｃ、Ｍ、Ｙ、Ｋ版の画像の描画処理、色変換処理、および、階調処理等多くの処理をしなければならない。
【０００３】
従来のプリンタにおける処理の流れは、つぎのとおりである。まず、ネットワークから受け取ったＰＤＬ（ページ記述言語）を解析し、描画装置が実行可能な中間言語を生成し、描画装置により中間言語を解析し、バンドメモリへＲＧＢの画像を描画し、生成されたバンド画像を色変換および階調処理により階調処理後の画像を生成し、圧縮アルゴリズム（ＪＢＩＧなど）により符号化し、その符号をメモリに格納する。その後、プリントアウト時に、Ｃ、Ｍ、Ｙ、Ｋの版ごと遅延させて、メモリから符号データを読み込み、圧縮アルゴリズムにより復号化し、その後、Ｃ、Ｍ、Ｙ、Ｋの各版に対応するデータのプリンタエンジンに転送し、印字する。
【０００４】
６０ＰＰＭ（Page  Per  Minute）の印刷スピードを有する高速機では、６００ｄｐｉ／１２００ｄｐｉの高い解像度のＡ４サイズのＲＧＢ画像を１秒以下で描画する必要があり、高速なメモリのアクセスを要求されてきた。
【０００５】
近年、ＣＰＵはＧＨｚの高速な周波数で、動作するようになってきた。しかし、このような描画処理は、メインメモリへのメモリアクセスが多く、ＣＰＵが高速化しても、内部のキャッシュメモリにヒットすれば良いが、外部のメモリとのアクセスが遅い場合は大きな効果がなく、特に１２００ｄｐｉ／Ａ４もの大きなメモリをアクセスする場合、キャッシュのヒットも難しい。
【０００６】
このため、従来のキャッシュの方式ではなく、特許文献３、４のように描画したデータを大きなキャッシュに退避して、再度、描画する時にキャッシュに蓄えた描画データをバンドメモリへ展開するように、意図的に使用頻度の高い描画データをキャッシュに蓄える方法が知られている。
【０００７】
また、メモリアクセスを減らす方法としては、マスクメモリを使用する方法が知られており、特許文献１においては、３次元グラフィックス描画を行う場合に、描画するポリゴンをソート法で手前の方から描画する時に、マスクメモリを使用し、マスクバッファにマスク値を描画しながら、実際のポリゴンをフレームメモリへ描画する方法が知られている。
【０００８】
そして、特許文献２においては、プリンタでのバンドメモリの初期化を行わずにマスクメモリの初期化を行うことで、メモリアクセス量を低減させる方法が知られていた。
【０００９】
また、近年の半導体プロセスの発達により、メインメモリのＤＲＡＭ（Dynamic  Random  Access  Memory）は高速化され、また、それに伴いＣＰＵとメモリコントローラ間の転送レートも高速化されてきた。このため、高速化を実現するための設計に多くのノウハウと多くのコストを必要とし始めた。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
例えば特許文献１のようにマスクバッファを使用すれば、マスクバッファを読み込み、マスクバッファが“１”であれば、その画素を描画しない方法が知られている。しかし、一般的にマスクバッファをプリンタ画像の１２００ｄｐｉで実現するには、大きなメモリを必要とする。外部にメモリを持つ構成により大きなマスクバッファを実現することが考えられるが、その場合、描画するメモリアクセスとは別にマスクメモリをアクセスする必要があり、高速化は見込めない。
【００１１】
また、特許文献２も同様にマスクバッファを使用し初期化を行わずに高速化することが可能であるが、初期化以降のメモリアクセスの低下の効果はない。
【００１２】
例えば、プレゼンテーション用のアプリケーションにより作成された画像は、水平方向に同じ色が並ぶ背景画像の上に、グラフ等のグラフィックス画像が重なった画像である場合が多い。このような画像を描画する場合、重なりの描画部分の処理が無駄になってしまう場合が多い。
【００１３】
特許文献１のように描画する順番を逆に描画し、上に残るものから、描画し、マスクメモリに描画された部分をフラグで残しながら、マスクメモリに描画したフラグがあれば、その部分を描画しないようにすることで、メモリアクセスを小さくすることができる。しかし、プリンタ描画においては、描画する順番を逆に描画することが難しく、かつ、解像度が高いために、画素／１ｂｉｔのマスクメモリであっても、ＡＳＩＣ（Application  Specific  Integrated  Circuit）等に内蔵させることが難しい。また、外部にマスクメモリを設けると、バンドメモリとマスクメモリの両方をアクセスする必要があるので処理の高速化が望めない。
【００１４】
また、プレゼンテーション用のアプリケーションにより作成された画像は、大きな描画面積を占有するのは、背景画像である。このため、特許文献３、４のようにキャッシュを設けて高速化する場合には、１ページ以上の大きさの大きなメモリを有さないといけない。しかし、このような大きなメモリはＡＳＩＣまたはＣＰＵに内蔵させるのは困難である。
【００１５】
本発明は、上記に鑑みてなされたものであって、メモリアクセスを少なくして高速に処理をすることができる画像処理装置および画像処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１６】
上述した課題を解決し、目的を達成するために、本発明は、色情報を表す画像データを画素単位で記憶する第１記憶部と、隣接する複数の画素を含むブロック単位で色情報を表すブロック画像データを記憶する第２記憶部と、ソース画像に基づき前記画像データを描画して前記第１記憶部に記憶させるとともに、前記ソース画像に基づき前記ブロック画像データを描画して前記第２記憶部に記憶させる描画部と、を備える画像処理装置を提供する。
【００１７】
また、本発明は、色情報を表す画像データを画素単位で第１記憶部に記憶させるステップと、隣接する複数の画素を含むブロック単位で色情報を表すブロック画像データを第２記憶部に記憶させるステップと、ソース画像に基づき前記画像データを描画して前記第１記憶部に記憶させるとともに、前記ソース画像に基づき前記ブロック画像データを描画して前記第２記憶部に記憶させるステップと、を含む画像処理方法を提供する。
【発明の効果】
【００１８】
本発明によれば、メモリアクセスを少なくして高速に処理をすることができる。
【図面の簡単な説明】
【００１９】
【図１】図１は、第１実施形態に係る画像処理装置１００の構成を示す図である。
【図２】図２は、ブロックと画素との関係を示す図である。
【図３】図３は、バンドメモリ領域１２３、ブロックメモリ１２１およびブロック状態メモリ１２２に対して描画された画像の第１例を示す図である。
【図４】図４は、バンドメモリ領域１２３、ブロックメモリ１２１およびブロック状態メモリ１２２に対して描画された画像の第２例を示す図である。
【図５】図５は、描画部１０５が処理するコードの一例を示す図である。
【図６】図６は、コマンドの構成を示す図である。
【図７】図７は、描画部１０５の構成を示す図である。
【図８】図８は、グラフィックス描画部２０３の構成を示す図である。
【図９】図９は、写真画像描画部２０４の構成を示す図である。
【図１０】図１０は、ブロックメモリ制御部２０５の構成を示す図である。
【図１１】図１１は、画像処理部２０８の構成を示す図である。
【図１２】図１２は、描画処理の全体フローを示す図である。
【図１３】図１３は、図１２のステップＳ１１０６のグラフィックス描画処理のフローを示す図である。
【図１４】図１４は、描画タイプの具体例を示す図である。
【図１５】図１５は、左辺処理のフローを示す図である。
【図１６】図１６は、右辺処理のフローを示す図である。
【図１７】図１７は、ブロック描画処理のフローを示す図である。
【図１８】図１８は、左右辺処理のフローを示す図である。
【図１９】図１９は、図１２のステップＳ１１０５の写真描画処理のフローを示す図である。
【図２０】図２０は、左辺写真描画処理のフローを示す図である。
【図２１】図２１は、右辺写真描画処理のフローを示す図である。
【図２２】図２２は、ブロック写真描画処理のフローを示す図である。
【図２３】図２３は、図１２のステップＳ１１０９の画像処理のフローを示す図である。
【図２４】図２４は、第２実施形態に係る画像処理装置５００の構成を示す図である。
【図２５】図２５は、第２実施形態に係る画像処理装置５００の処理の流れを示す図である。
【図２６】図２６は、メインメモリ５３２内の領域を示す図である。
【図２７】図２７は、画像処理装置５００内でのデータの流れを示す図である。
【図２８】図２８は、画像処理部５６２の構成を示す図である。
【図２９】図２９は、画像処理部５６２の処理フローを示す図である。
【発明を実施するための形態】
【００２０】
（第１実施形態）
以下に、本発明に係る実施形態を図面に基づいて詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。
【００２１】
図１は、第１実施形態に係る画像処理装置１００の構成を示す。画像処理装置１００は、スキャナおよびプリンタを備える複合機等に用いられる制御装置である。画像処理装置１００は、例えば、スキャナからソース画像を取得して、プリンタにより用紙に画像を印刷する。
【００２２】
画像処理装置１００は、ＣＰＵ１０１と、ＣＰＵＩ／Ｆ１０２と、ＡＸＩ（Advanced  eXtensible  Interface）バス１０３と、メモリコントローラ１０４と、描画部１０５と、ＤＭＡ（Direct  Memory  Access）１０６と、エンジンコントローラ１０７と、プリンタエンジン１０８と、通信コントローラ１０９と、ローカルＩ／Ｆ１１０と、ＲＯＭ（Read  Only  Memory）１１１と、パネルコントローラ１１２と、パネル１１３と、メインメモリ１１４とを備える。
【００２３】
なお、図１の点線で囲んだ部材（ＣＰＵ１０１、ＣＰＵＩ／Ｆ１０２、ＡＸＩバス１０３、メモリコントローラ１０４、描画部１０５、ＤＭＡ１０６、エンジンコントローラ１０７、通信コントローラ１０９、ローカルＩ／Ｆ１１０、ＲＯＭ１１１、パネルコントローラ１１２）は、例えば１つのチップ上に形成されている。
【００２４】
ＣＰＵ１０１は、システム全体の制御をする。また、ＣＰＵ１０１は、ネットワークを介して外部のコンピュータから送られてきたＰＤＬを解析して描画部１０５のパラメータ等を生成する。
【００２５】
ＣＰＵＩ／Ｆ１０２は、ＡＸＩバス１０３を介してメモリコントローラ１０４に接続される。ＣＰＵＩ／Ｆ１０２は、ＣＰＵ１０１とメモリコントローラ１０４との間のデータ転送処理をする。
【００２６】
ＡＸＩバス１０３は、ＣＰＵ１０１、ＤＭＡ１０６、描画部１０５、通信コントローラ１０９およびローカルＩ／Ｆ１１０と、メモリコントローラ１０４との間で入出力されるデータを転送する。メモリコントローラ１０４は、メインメモリ１１４に対するアクセスを制御する。
【００２７】
描画部１０５は、メインメモリ１１４から描画コードを読み込み、読み込んだ描画コードに応じて描画処理をしてバンド画像を生成し、生成したバンド画像をメインメモリ１１４に書き込む。また、描画部１０５は、メインメモリ１１４からバンド画像を読み込んで画像処理を行い、画像処理後のページパターンを生成して、メインメモリ１１４に書き込む。また、描画部１０５は、内部に、ブロック画像データを記憶するブロックメモリ１２１、および、ブロック状態情報を記憶するブロック状態メモリ１２２を有する。
【００２８】
ここで、バンド画像は、印刷対象となる画素単位の色情報（例えばＲ、Ｇ、Ｂ）を有する画像データである。また、ブロック画像データは、隣接する複数の画素を含むブロック単位で色情報（例えばＲ、Ｇ、Ｂ）を表す画像データである。また、ブロック状態情報は、ブロック画像データに含まれるそれぞれのブロックの色情報が有効であるか無効であるかを示す情報である。画像処理後のページパターンは、Ｃ、Ｍ、Ｙ、Ｋの各版の画像データを所定の方式で圧縮符号化したデータである。
【００２９】
ブロックは、例えば、図２に示されるような、水平方向のラインを予め定められた数の画素で区切った単位である。本例においては、水平方向のラインを８画素ずつ区切った単位をブロックとしている。
【００３０】
ＤＭＡ１０６は、プリンタエンジン１０８に同期して、画像処理された後のページパターンをメインメモリ１１４から読み込み、エンジンコントローラ１０７へ転送する。
【００３１】
エンジンコントローラ１０７は、プリンタエンジン１０８を制御する。プリンタエンジン１０８は、エンジンコントローラ１０７の制御に応じて、画像処理された後のページパターンに応じた画像を用紙に印刷する。
【００３２】
通信コントローラ１０９は、ネットワークを介して外部のコンピュータからＰＤＬを受け取り、メインメモリ１１４に記憶させる。
【００３３】
ローカルＩ／Ｆ１１０は、ＲＯＭ１１１およびパネルコントローラ１１２とＣＰＵ１０１との間のデータ転送、並びに、ＲＯＭ１１１およびパネルコントローラ１１２とメインメモリ１１４との間のデータ転送処理をする。
【００３４】
ＲＯＭ１１１は、文字等のフォント情報、および、ＣＰＵ１０１により実行されるプログラムを記憶する。パネルコントローラ１１２は、パネル１１３を制御する。パネル１１３は、情報の表示およびユーザからの操作情報の入力をする。
【００３５】
メインメモリ１１４は、例えばＤＲＡＭであって、各種の情報を記憶する。メインメモリ１１４は、バンド画像を記憶する領域であるバンドメモリ領域１２３、描画部１０５による画像処理後のページパターンを記憶する画像処理後ページメモリ領域１２４、および、描画コードを記憶する描画コードメモリ領域１２５を有する。
【００３６】
図３は、バンドメモリ領域１２３、ブロックメモリ１２１およびブロック状態メモリ１２２に対して描画された画像の第１例を示す図である。
【００３７】
図３（Ａ）には、描画の元となるソース画像の第１例が示されている。図３（Ｂ）には、バンドメモリ領域１２３に記憶される、図３（Ａ）のソース画像に基づき描画部１０５により描画されたバンド画像が示されている。図３（Ｃ）には、ブロックメモリ１２１に記憶される、図３（Ａ）のソース画像に基づき描画部１０５により描画されたブロック画像が示されている。図３（Ｄ）には、ブロック状態メモリ１２２に記憶される、図３（Ａ）のソース画像に基づき描画部１０５により生成されたブロック状態情報が示されている。
【００３８】
描画部１０５は、ソース画像の複数のブロックのそれぞれに対して、全ての画素が同一の描画色となっているか否かを判断する。そして、描画部１０５は、描画色が同一であるブロックについては、そのブロックの色情報をその描画色としたブロック画像を描画して、ブロックメモリ１２１に書き込む。さらに、描画部１０５は、描画色が同一であるブロックについては、そのブロックの値を有効（色あり）としたブロック状態情報を生成して、ブロック状態メモリ１２２に書き込む。
【００３９】
また、描画部１０５は、異なる色の画素が含まれたブロックについては、全ての画素の色情報をバンド画像に描画して、バンドメモリ領域１２３に書き込む。また、この場合において、ソース画像における右側または左側の境界部分が含まれるブロックについては、そのブロックの全ての画素の色情報をバンド画像に描画して、ブロック状態情報の対応するブロックの値を無効（色なし）とする。
【００４０】
図３の例は、１ライン毎に８画素を１つのブロックとした場合を示している。例えば、図３（Ａ）には、四角形のソース画像１５０が示されている。
【００４１】
このようなソース画像から、ブロック画像を描画した場合、描画部１０５は、例えば、図３（Ｃ）に示されるような、４角形の領域に色情報が書き込まれたブロック画像を描画する。描画部１０５は、図３（Ｄ）に示されるような、４角形の領域を有効（色あり）とし、他の領域を無効（色なし）としたブロック状態情報を生成する。
【００４２】
そして、描画部１０５は、図３（Ｂ）に示されるように、ソース画像からブロック画像により色情報が書き込まれた領域を除いた部分の画素位置に、ソース画像における対応する色情報（色値）を書き込んだバンド画像を描画する。
【００４３】
図４は、バンドメモリ領域１２３、ブロックメモリ１２１およびブロック状態メモリ１２２に対して描画された画像の第２例を示す図である。
【００４４】
図４（Ａ）に示す第２例のソース画像は、同一色の背景画像１５１上に、三角形の第１グラフィックス画像１５２、写真画像１５３および四角形の第２グラフィックス画像１５４が重ねられている。
【００４５】
描画部１０５は、図４（Ｃ）に示されるようなブロック画像を描画する。このブロック画像は、背景画像１５１および四角形の第２グラフィックス画像１５４の中心部分の色情報が書き込まれる。
【００４６】
また、描画部１０５は、図４（Ｄ）に示されるようなブロック状態情報を生成する。このブロック状態情報は、三角形の第１グラフィックス画像１５２を含むブロック、写真画像１５３を含む領域、四角形の第２グラフィックス画像１５４の左右の辺部分を含むブロックを無効（色なし）とし、他の部分を有効（色あり）としている。
【００４７】
また、描画部１０５は、図４（Ｂ）に示されるようなバンド画像を描画する。このバンド画像は、三角形の第１グラフィックス画像１５２を含むブロック、写真画像１５３を含むブロック、および、四角形の第２グラフィックス画像１５４の左右の辺部分を含むブロック内の、全ての画素の色情報が書き込まれる。
【００４８】
図５は、描画部１０５が処理するコードの一例を示す図である。描画部１０５は、ネットワークを介して取得したＰＤＬを解析して、例えば図５に示されるような複数のコマンドを順次に実行する。
【００４９】
図６は、コマンドの構成を示す図である。描画部１０５が実行するコマンドには、設定コマンドおよび描画コマンドがある。設定コマンドには、バンド初期化コマンド（図６（Ａ））およびバンド終了コマンド（図６（Ｂ））がある。また、描画コマンドには、グラフィックス描画コマンド（図６（Ｃ））、および、写真画像描画コマンド（図６（Ｄ））がある。
【００５０】
バンド初期化コマンド（図６（Ａ））は、処理の開始の指示、メインメモリ１１４のバンドメモリ領域１２３、ブロックメモリ１２１およびブロック状態メモリ１２２等を初期化の指示、および、各種のパラメータの設定をするコマンドである。例えば、バンド初期化コマンドは、バンド画像の先頭アドレス、バンド画像の高さおよび幅を設定する。描画部１０５は、このコマンドを受け取るとバンド画像の先頭アドレス、バンド画像の高さおよび幅を記憶する。
【００５１】
バンド終了コマンド（図６（Ｂ））は、バンド画像の描画の終了を指示する。描画部１０５は、このコマンドを受け取るとそのバンド画像の処理を終了する。
【００５２】
グラフィックス描画コマンド（図６（Ｃ））は、グラフィックス描画を実行させるためのコマンドである。描画部１０５は、このコマンドを受け取ると、例えば、指定された四角形の左上の座標から右下の座標までの、指定された描画色（カラー値）の四角形を描画する。
【００５３】
写真画像描画コマンド（図６（Ｄ））は、写真画像描画を実行させるためのコマンドである。描画部１０５は、このコマンドを受け取ると、指定されたＸ、Ｙサイズの写真画像を指定されたソースアドレスから読み込んで、指定されたＸ、Ｙ座標に描画する。
【００５４】
図７は、描画部１０５の構成を示す図である。描画部１０５は、ブロックメモリ１２１と、ブロック状態メモリ１２２と、第１ＡＸＩバスＩ／Ｆ２０１と、コマンド解析部２０２と、グラフィックス描画部２０３と、写真画像描画部２０４と、ブロックメモリ制御部２０５と、画像処理部２０８と、第２ＡＸＩバスＩ／Ｆ２０９とを有する。
【００５５】
第１ＡＸＩバスＩ／Ｆ２０１は、ＡＸＩバス１０３との入出力インターフェースである。第１ＡＸＩバスＩ／Ｆ２０１は、コマンド解析部２０２、グラフィックス描画部２０３、写真画像描画部２０４および画像処理部２０８と、ＡＸＩバス１０３との間で、メモリリクエスト、メモリアック、メモリアドレス、リードデータおよびライトデータ等のやり取りをする。
【００５６】
コマンド解析部２０２は、例えば図５に示されるようなコマンドを、メインメモリ１１４内の描画コードメモリ領域１２５から読み込み、１ずつ順次に解析および実行する。コマンド解析部２０２は、実行対象のコマンドがグラフィックス描画コマンドであれば、グラフィックス描画部２０３にパラメータを転送するとともに、起動信号を送信して、起動させる。コマンド解析部２０２は、実行対象のコマンドが写真画像描画コマンドであれば、写真画像描画部２０４にパラメータを転送するとともに、起動信号を送信して、起動させる。
【００５７】
コマンド解析部２０２は、グラフィックス描画部２０３および写真画像描画部２０４が描画終了後に終了信号を受け取り、次のコマンドを解析する。そして、コマンド解析部２０２は、バンド終了コマンドを受け取ると、ブロックメモリ制御部２０５に終了信号を送る。
【００５８】
グラフィックス描画部２０３は、コマンド解析部２０２からグラフィックス描画コマンドのパラメータを受け取り、メインメモリ１１４のバンドメモリ領域１２３に指定されたグラフィックス画像を描画するための描画色および描画アドレス等を生成する。そして、グラフィックス描画部２０３は、描画する単位毎に描画色および描画アドレス等をブロックメモリ制御部２０５へ転送する。なお、図８でグラフィックス描画部２０３の詳細な構成を説明する。
【００５９】
写真画像描画部２０４は、コマンド解析部２０２から写真画像描画コマンドのパラメータを受け取り、メインメモリ１１４のバンドメモリ領域１２３に写真画像を描画するための描画色および描画アドレス等を生成する。そして、写真画像描画部２０４は、描画する単位毎に描画色および描画アドレス等をブロックメモリ制御部２０５へ転送する。なお、図９で写真画像描画部２０４の詳細な構成を説明する。
【００６０】
ブロックメモリ制御部２０５は、グラフィックス描画部２０３および写真画像描画部２０４から描画色および描画アドレス等を受け取る。ブロックメモリ制御部２０５は、受け取った描画色および描画アドレス等に基づき、ブロック画像をブロックメモリ１２１上に描画するともに、ブロック状態情報をブロック状態メモリ１２２上に生成する。これともに、ブロックメモリ制御部２０５は、受け取った描画色および描画アドレス等に基づき、ＡＸＩバス１０３を介して、メインメモリ１１４のバンドメモリ領域１２３にバンド画像を描画する。
【００６１】
そして、ブロックメモリ制御部２０５は、コマンド解析部２０２から終了信号を受け取ると、バンドメモリ領域１２３からバンド画像、ブロックメモリ１２１からブロック画像、および、ブロック状態メモリ１２２からブロック状態情報を読み込み、ブロック毎に各画素の色情報を生成し、画像処理部２０８へ転送する。なお、図１０でブロックメモリ制御部２０５の詳細な構成を説明する。
【００６２】
画像処理部２０８は、ブロックメモリ制御部２０５から色情報を受け取り、色変換処理および階調処理等の画像処理を行う。そして、画像処理部２０８は、画像処理後の色値を表すページパターンを生成して、ＡＸＩバス１０３を介してメインメモリ１１４の画像処理後ページメモリ領域１２４に書き込む。なお、図１１でブロックメモリ制御部２０５の詳細な構成を説明する。
【００６３】
第２ＡＸＩバスＩ／Ｆ２０９は、ＡＸＩバス１０３との入出力インターフェースである。第２ＡＸＩバスＩ／Ｆ２０９は、ブロックメモリ制御部２０５とＡＸＩバス１０３との間で、メモリリクエスト、メモリアック、メモリアドレス、リードデータおよびライトデータ等のやり取りをする。
【００６４】
図８は、グラフィックス描画部２０３の構成を示す図である。グラフィックス描画部２０３は、水平ライン変換部２５１と、水平ライン描画部２５２と、グラフィックス描画部内コントローラ２５３とを含む。
【００６５】
水平ライン変換部２５１は、コマンド解析部２０２からパラメータを受けとり、水平ラインデータ（水平ラインＹ値、水平ライン始点値および水平ライン終点値）へ変換し、水平ライン描画部２５２へと転送する。水平ライン描画部２５２は、受け取った水平ラインデータに基づき、水平ラインの各画素の描画色（描画色Ａ）および描画アドレス（描画Ｙ座標Ａ、描画アドレスＡおよび描画レングスＡ）等を生成し、ブロックメモリ制御部２０５へ送信する。
【００６６】
グラフィックス描画部内コントローラ２５３は、コマンド解析部２０２から起動信号を受け取り、グラフィックス描画部２０３の全体を制御する。グラフィックス描画部内コントローラ２５３は、制御が終了すると、終了信号をコマンド解析部２０２に送信する。
【００６７】
図９は、写真画像描画部２０４の構成を示す図である。写真画像描画部２０４は、ソース画像読込部２６１と、ラインメモリ２６２と、描画パターン生成部２６３と、写真画像描画部内コントローラ２６４とを含む。
【００６８】
ソース画像読込部２６１は、コマンド解析部２０２からパラメータを受けとり、受け取ったパラメータに含まれるアドレスから写真画像を読み込み、ライン毎にラインメモリ２６２に書き込む。ラインメモリ２６２は、写真画像をライン毎に格納する。描画パターン生成部２６３は、ラインメモリ２６２に格納されたライン毎の画像データから、水平ラインの各画素の描画色（描画色Ｂ）および描画アドレス（描画Ｙ座標Ｂ、描画アドレスＢおよび描画レングスＢ）等を生成し、ブロックメモリ制御部２０５へ送信する。
【００６９】
写真画像描画部内コントローラ２６４は、コマンド解析部２０２から起動信号を受け取り、写真画像描画部２０４の全体を制御する。写真画像描画部内コントローラ２６４は、制御が終了すると、終了信号をコマンド解析部２０２に送信する。
【００７０】
図１０は、ブロックメモリ制御部２０５の構成を示す図である。ブロックメモリ制御部２０５は、ＭＵＸ３０１と、描画アドレスレジスタ３０２と、レングスレジスタ３０３と、描画色バッファ３０４と、ブロックメモリアドレス生成部３０５と、ブロック色合成部３０６と、ＭＵＸ３０７と、ライトバッファ３０８と、ブロック状態メモリアドレス生成部３０９と、制御部３１０と、バンド合成部３１１と、リード制御部３１２と、ライト制御部３１３とを含む。
【００７１】
ＭＵＸ３０１は、グラフィックス描画部２０３および写真画像描画部２０４から描画アドレス、描画レングスおよび描画色等を受け取る。ＭＵＸ３０１は、コマンド解析部２０２からの切り替えＳＷ信号に応じて、グラフィックス描画部２０３および写真画像描画部２０４のうち一方から描画色、描画アドレスおよび描画レングスを受け取る。
【００７２】
描画アドレスレジスタ３０２は、ＭＵＸ３０１が受け取った描画アドレスを記憶して、ライト制御部３１３に転送する。レングスレジスタ３０３は、ＭＵＸ３０１が受け取った描画レングスを記憶して、レングスレジスタ３０３に転送する。描画色バッファ３０４は、ＭＵＸ３０１が受け取った描画色を記憶して、ブロック色合成部３０６、ＭＵＸ３０７およびブロックメモリ１２１に転送する。
【００７３】
ブロックメモリアドレス生成部３０５は、ＭＵＸ３０１が受け取った描画アドレスを受け取り、ブロックメモリ１２１のアドレスに変換して、ブロックメモリ１２１に転送する。ブロック色合成部３０６は、ブロックメモリ１２１から読み出した描画色と、描画色バッファ３０４に記憶された描画色とを合成して、ＭＵＸ３０７に転送する。
【００７４】
ＭＵＸ３０７は、描画色バッファ３０４およびブロック色合成部３０６の一方を選択して、選択した側から受け取った描画色をライトバッファ３０８に転送する。ライトバッファ３０８は、ＭＵＸ３０７から受け取った描画色をメインメモリ１１４のバンドメモリ領域１２３へ書き込む色情報として記憶する。
【００７５】
ブロック状態メモリアドレス生成部３０９は、ＭＵＸ３０１が受け取った描画アドレスを受け取り、ブロック状態メモリ１２２のアドレスへ変換して、ブロック状態メモリ１２２に転送する。
【００７６】
制御部３１０は、ブロックメモリ制御部２０５の全体を制御する。例えば、制御部３１０は、ブロックメモリ１２１およびブロック状態メモリ１２２に対する描画色の書き込みを制御する。すなわち、制御部３１０は、ブロックメモリ１２１上へのブロック画像の描画を制御する。また、制御部３１０は、ブロック状態メモリ１２２上へのブロック状態情報の生成を制御する。
【００７７】
ライト制御部３１３は、描画中に、メインメモリ１１４のバンドメモリ領域１２３に色情報を書き込む。より具体的には、ライト制御部３１３は、受け取った描画アドレスおよび描画レングスに基づき、メインメモリ１１４に対してライト描画アドレスおよびライト描画レングスを指定して、ライトバッファ３０８に記憶された描画色をメインメモリ１１４のバンドメモリ領域１２３に書き込む。これにより、ライト制御部３１３は、メインメモリ１１４のバンドメモリ領域１２３上にバンド画像を描画することができる。
【００７８】
リード制御部３１２は、ライト制御部３１３による描画終了後に、メインメモリ１１４のバンドメモリ領域１２３から色情報を読み込む。より具体的には、リード制御部３１２は、メインメモリ１１４に対してリード描画アドレスおよびリード描画レングスを指定して、メインメモリ１１４から色情報を読み出す。
【００７９】
バンド合成部３１１は、描画終了後に、メインメモリ１１４のバンドメモリ領域１２３に描画されたバンド画像の色情報とブロックメモリ１２１に描画されたブロック画像の色情報とを、ブロック状態メモリ１２２に記憶されたブロック状態情報に基づき合成する。そして、バンド合成部３１１は、合成後の色情報を画像処理部２０８へ転送する。
【００８０】
図１１は、画像処理部２０８の構成を示す図である。画像処理部２０８は、色変換処理部４２１と、階調処理部４２２と、画像処理後ページパターン生成部４２３と、画像処理パラメータ記憶部４２４とを含む。
【００８１】
色変換処理部４２１は、ブロックメモリ制御部２０５からの色情報を読み込み、色変換処理（例えば、ＲＧＢからＣＭＹＫへの変換）等をする。階調処理部４２２は、色変換処理部４２１で色変換処理がされた色情報を階調処理する。
【００８２】
画像処理後ページパターン生成部４２３は、階調処理部４２２で階調処理されたデータを、メインメモリ１１４の画像処理後ページメモリ領域１２４に転送する。画像処理パラメータ記憶部４２４は、色変換処理部４２１、階調処理部４２２および画像処理後ページパターン生成部４２３で用いられるパラメータを記憶する。
【００８３】
図１２は、描画部１０５の描画処理の全体フローを示す図である。描画部１０５は、描画処理を実行する場合、図１２に示す処理を実行する。
【００８４】
まず、ステップＳ１１０１において、描画部１０５は、コマンドを読み込む。続いて、ステップＳ１１０２、Ｓ１１０３およびステップＳ１１０４において、描画部１０５は、読み込んだコマンドが、バンド初期化コマンド、バンド終了コマンド、グラフィックス画像描画コマンドおよび写真画像描画コマンドの何れであるかを判断する。
【００８５】
描画部１０５は、読み込んだコマンドが写真画像描画コマンドであれば（ステップＳ１１０２のＮｏ且つステップＳ１１０３のＹｅｓ）、ステップＳ１１０５で写真描画処理を実行する。ステップＳ１１０５の写真描画処理の詳細については、図１９のフローでさらに説明する。そして、描画部１０５は、写真描画処理を終了すると、ステップＳ１１０１に戻り、次のコマンドの処理を実行する。
【００８６】
描画部１０５は、読み込んだコマンドがグラフィックス画像描画コマンドであれば（ステップＳ１１０２のＮｏ且つステップＳ１１０３のＮｏ）、ステップＳ１１０６でグラフィックス描画処理を実行する。ステップＳ１１０６のグラフィックス描画処理の詳細については、図１３のフローでさらに説明する。そして、描画部１０５は、グラフィックス描画処理を終了すると、ステップＳ１１０１に戻り、次のコマンドの処理を実行する。
【００８７】
描画部１０５は、読み込んだコマンドがバンド初期化コマンドであれば（ステップＳ１１０２のＹｅｓ且つステップＳ１１０４のＮｏ）、ステップＳ１１０７において、パラメータ等の設定処理を行う。続いて、ステップＳ１１０８において、描画部１０５は、ブロック状態メモリ１２２の初期化処理を行う。例えば、描画部１０５は、ブロックメモリ１２１の全てのブロックに“白色”を設定し、ブロック状態メモリ１２２の全てのブロックを“有効（色あり）”に設定する。このように設定することにより、描画部１０５は、メインメモリ１１４のバンドメモリ領域１２３に書き込みをしないでよいので、初期化処理を高速化することができる。そして、描画部１０５は、初期化処理を終了すると、ステップＳ１１０１に戻り、次のコマンドの処理を実行する。
【００８８】
描画部１０５は、読み込んだコマンドがバンド終了コマンドであれば（ステップＳ１１０２のＹｅｓ且つステップＳ１１０４のＹｅｓ）、ステップＳ１１０９において、画像処理を実行する。ステップＳ１１０９の画像処理の詳細については、図２３のフローでさらに説明する。そして、描画部１０５は、画像処理を終了すると、本フローを終了する。
【００８９】
図１３は、図１２のステップＳ１１０６のグラフィックス描画処理のフローを示す図である。描画部１０５のグラフィックス描画部２０３は、図１２のステップＳ１１０６において、図１３に示す処理を実行する。
【００９０】
まず、ステップＳ１２０１において、グラフィックス描画部２０３は、ライン毎に描画タイプの検出処理を実行する。具体的には、図１４に示される６つのタイプの何れに該当するかを検出する。なお、図１４は、１ライン分のグラフィックス画像とブロックの位置関係を示しており、ハッチング部分がグラフィックス画像を示す。
【００９１】
描画ＴＹＰＥ＝０は、グラフィックス画像の左辺の画素が含まれるブロックに空白の画素が含まれ、グラフィックス画像の右辺の画素が含まれるブロックに空白の画素が含まれ、さらに、左辺のブロックと右辺のブロックとの間にグラフィックス画像を含む中間のブロックが存在するラインである。
【００９２】
描画ＴＹＰＥ＝１は、グラフィックス画像の左辺の画素が含まれるブロックに空白の画素が含まれ、グラフィックス画像の右辺の画素が含まれるブロックに空白の画素が含まれないラインである。
【００９３】
描画ＴＹＰＥ＝２は、グラフィックス画像の左辺の画素が含まれるブロックに空白の画素が含まれず、グラフィックス画像の右辺の画素が含まれるブロックに空白の画素が含まれるラインである。
【００９４】
描画ＴＹＰＥ＝３は、グラフィックス画像の左辺の画素が含まれるブロックに空白の画素が含まれ、グラフィックス画像の右辺の画素が含まれるブロックに空白の画素が含まれ、さらに、左辺のブロックと右辺のブロックとの間にブロックが存在しないラインである。
【００９５】
描画ＴＹＰＥ＝４は、グラフィックス画像の左辺の画素が含まれるブロックに空白の画素が含まれず、グラフィックス画像の右辺の画素が含まれるブロックに空白の画素が含まれないラインである。
【００９６】
描画ＴＹＰＥ＝５は、１つのブロック内にグラフィックス画像の左辺の画素および右辺の画素が含まれ、左辺の画素より左側および右辺の画素より右側のそれぞれに空白の画素が含まれるラインである。
【００９７】
続いて、ステップＳ１２０２〜Ｓ１２０６において、グラフィックス描画部２０３は、そのラインの描画タイプが、描画ＴＹＰＥ＝０〜描画ＴＹＰＥ＝５の何れであるかを判断する。
【００９８】
描画タイプが描画ＴＹＰＥ＝０の場合には（ステップＳ１２０２のＹｅｓ）、グラフィックス描画部２０３は、まず、ステップＳ１２０７において左辺処理を実行し、続いて、ステップＳ１２０８においてブロック描画処理を実行し、続いて、ステップＳ１２０９において右辺処理を実行する。そして、グラフィックス描画部２０３は、ステップＳ１２０９の処理後に、処理をステップＳ１２１８に進める。
【００９９】
また、描画タイプが描画ＴＹＰＥ＝１の場合には（ステップＳ１２０３のＹｅｓ）、グラフィックス描画部２０３は、まず、ステップＳ１２１０において左辺処理を実行し、続いて、ステップＳ１２１１においてブロック描画処理を実行する。そして、グラフィックス描画部２０３は、ステップＳ１２１１の処理後に、処理をステップＳ１２１８に進める。
【０１００】
また、描画タイプが描画ＴＹＰＥ＝２の場合には（ステップＳ１２０４のＹｅｓ）、グラフィックス描画部２０３は、まず、ステップＳ１２１２においてブロック描画処理を実行し、続いて、ステップＳ１２１３において右辺処理を実行する。そして、グラフィックス描画部２０３は、ステップＳ１２１３の処理後に、処理をステップＳ１２１８に進める。
【０１０１】
また、描画タイプが描画ＴＹＰＥ＝３の場合には（ステップＳ１２０５のＹｅｓ）、グラフィックス描画部２０３は、まず、ステップＳ１２１４において左辺処理を実行し、続いて、ステップＳ１２１５において右辺処理を実行する。そして、グラフィックス描画部２０３は、ステップＳ１２１５の処理後に、処理をステップＳ１２１８に進める。
【０１０２】
また、描画タイプが描画ＴＹＰＥ＝４の場合には（ステップＳ１２０６のＹｅｓ）、グラフィックス描画部２０３は、ステップＳ１２１６においてブロック描画処理を実行する。そして、グラフィックス描画部２０３は、ステップＳ１２１６の処理後に、処理をステップＳ１２１８に進める。
【０１０３】
また、描画タイプが描画ＴＹＰＥ＝５の場合には（ステップＳ１２０６のＮｏ）、グラフィックス描画部２０３は、ステップＳ１２１７において左右辺処理を実行する。そして、グラフィックス描画部２０３は、ステップＳ１２１７の処理後に、処理をステップＳ１２１８に進める。
【０１０４】
ステップＳ１２１８において、グラフィックス描画部２０３は、全てのラインの描画をしたか否かを判断する。グラフィックス描画部２０３は、全てのラインの描画をしていない場合には（ステップＳ１２１８のＮｏ）、処理をステップＳ１２０１に戻して、次のラインについて処理を繰り返す。グラフィックス描画部２０３は、全てのラインの描画をした場合には（ステップＳ１２１８のＹｅｓ）、処理を図１２のフローに戻す。
【０１０５】
図１５は、左辺処理のフローを示す図である。グラフィックス描画部２０３は、左辺処理において、グラフィックス画像の左辺のブロックに対して図１５に示す処理を実行する。
【０１０６】
まず、ステップＳ１３０１において、グラフィックス描画部２０３は、ブロック状態情報が色あり（即ち、有効）であるか否かを判断する。色なしの場合（ステップＳ１３０１のＮｏ）、すなわち、グラフィックス画像の背面に背景色等が無い場合には、ステップＳ１３０２において、グラフィックス描画部２０３は、左辺の空白の始点からブロック内の左側の終点のそれぞれの画素の描画色を色情報としてバンドメモリ領域１２３に描画する。そして、グラフィックス描画部２０３は、処理をステップＳ１３０５に進める。
【０１０７】
色ありの場合（ステップＳ１３０１のＹｅｓ）、すなわち、グラフィックス画像の背面に背景色等がある場合には、ステップＳ１３０３において、グラフィックス描画部２０３は、グラフィックス画像の存在する部分の画素はグラフィックス画像の描画色、空白の画素はブロックメモリ１２１の描画色（すなわち、背景色）を読み出して合成する。続いて、ステップＳ１３０４において、グラフィックス描画部２０３は、合成したブロックの各画素の描画色を色情報としてバンドメモリ領域１２３に描画する。そして、グラフィックス描画部２０３は、処理をステップＳ１３０５に進める。
【０１０８】
ステップＳ１３０５において、グラフィックス描画部２０３は、ブロック状態情報を色無し（無効）に変更する。そして、グラフィックス描画部２０３は、処理を図１３のフローに戻す。
【０１０９】
図１６は、右辺処理のフローを示す図である。グラフィックス描画部２０３は、右辺処理において、グラフィックス画像の右辺のブロックに対して図１６に示す処理を実行する。
【０１１０】
まず、ステップＳ１４０１において、グラフィックス描画部２０３は、ブロック状態情報が色あり（即ち、有効）であるか否かを判断する。色なしの場合（ステップＳ１４０１のＮｏ）、ステップＳ１４０２において、グラフィックス描画部２０３は、右辺の空白の始点からブロック内の右側の終点のそれぞれの画素の描画色を生成して、バンドメモリ領域１２３に描画する。そして、グラフィックス描画部２０３は、処理をステップＳ１４０５に進める。
【０１１１】
色ありの場合（ステップＳ１４０１のＹｅｓ）、ステップＳ１４０３において、グラフィックス描画部２０３は、グラフィックス画像の存在する部分の画素は描画色、空白の画素はブロックメモリ１２１の描画色を読み出して合成する。続いて、ステップＳ１４０４において、グラフィックス描画部２０３は、合成したブロックの各画素の描画色を色情報としてバンドメモリ領域１２３に描画する。そして、グラフィックス描画部２０３は、処理をステップＳ１４０５に進める。
【０１１２】
ステップＳ１４０５において、グラフィックス描画部２０３は、ブロック状態情報を色無し（無効）に変更する。そして、グラフィックス描画部２０３は、処理を図１３のフローに戻す。
【０１１３】
図１７は、ブロック描画処理のフローを示す図である。グラフィックス描画部２０３は、ブロック描画処理において、ブロック内の全ての画素がグラフィックス画像となっているそれぞれのブロックに対して図１７に示す処理を実行する。
【０１１４】
まず、ステップＳ１５０１において、グラフィックス描画部２０３は、ブロックメモリ１２１に描画色を書き込む。続いて、ステップＳ１５０２において、グラフィックス描画部２０３は、ブロック状態情報を色あり（有効）とする。
【０１１５】
続いて、ステップＳ１５０３において、グラフィックス描画部２０３は、対応する全てのブロックの処理を終えたか否かを判断する。対応する全てのブロックの処理を終えてない場合には（ステップＳ１５０３のＮｏ）、グラフィックス描画部２０３は、処理をステップＳ１５０１に戻して次のブロックについて処理を繰り返す。対応する全てのブロックの処理を終えた場合には（ステップＳ１５０３のＹｅｓ）、グラフィックス描画部２０３は、処理を図１３のフローに戻す。
【０１１６】
図１８は、左右辺処理のフローを示す図である。グラフィックス描画部２０３は、左右辺処理において、グラフィックス画像の左辺および右辺を含むブロックに対して図１８に示す処理を実行する。
【０１１７】
まず、ステップＳ１６０１において、グラフィックス描画部２０３は、ブロック状態情報が色あり（即ち、有効）であるか否かを判断する。色なしの場合（ステップＳ１６０１のＮｏ）、ステップＳ１６０２において、グラフィックス描画部２０３は、左辺の空白の始点からブロック内の左側の終点のそれぞれの画素の描画色および右辺の空白の始点からブロック内の右側の終点のそれぞれの画素の描画色を生成して、バンドメモリ領域１２３に描画する。そして、グラフィックス描画部２０３は、処理をステップＳ１６０５に進める。
【０１１８】
色ありの場合（ステップＳ１６０１のＹｅｓ）、ステップＳ１６０３において、グラフィックス描画部２０３は、グラフィックス画像の存在する部分の画素は描画色、空白の画素はブロックメモリ１２１の描画色を読み出して合成する。続いて、ステップＳ１６０４において、グラフィックス描画部２０３は、合成したブロックの各画素の描画色を色情報としてバンドメモリ領域１２３に描画する。そして、グラフィックス描画部２０３は、処理をステップＳ１６０５に進める。
【０１１９】
ステップＳ１６０５において、グラフィックス描画部２０３は、ブロック状態情報を色無し（無効）に変更する。そして、グラフィックス描画部２０３は、処理を図１３のフローに戻す。
【０１２０】
図１９は、図１２のステップＳ１１０５の写真描画処理のフローを示す図である。描画部１０５の写真画像描画部２０４は、図１２のステップＳ１１０５において、図１９に示す処理を実行する。
【０１２１】
まず、ステップＳ１８０１において、写真画像描画部２０４は、ライン番号を指定するＹ方向のアドレスを“０”に初期化する。続いて、ステップＳ１８０２において、写真画像描画部２０４は、ライン内のブロックを指定するブロックアドレスＸを“０”に初期化する。
【０１２２】
続いて、ステップＳ１８０３において、写真画像描画部２０４は、ソース画像の対応するブロックの１ライン分の描画色をラインメモリ２６２に書き込む。続いて、ステップＳ１８０４において、写真画像描画部２０４は、左辺写真画描画処理を実行する。続いて、ステップＳ１８０５において、写真画像描画部２０４は、ブロック写真描画処理を実行する。続いて、ステップＳ１８０６において、写真画像描画部２０４は、右辺写真描画処理を実行する。
【０１２３】
続いて、ステップＳ１８０７において、写真画像描画部２０４は、１ライン分の全てのブロックを処理したか否か判断する。１ライン分の全てのブロックを処理していない場合には（ステップＳ１８０７のＮｏ）、ステップＳ１８０８において、写真画像描画部２０４は、ブロックアドレスＸを１インクリメントして、処理をステップＳ１８０３に戻す。
【０１２４】
１ライン分の全てのブロックを処理した場合には（ステップＳ１８０７のＹｅｓ）、ステップＳ１８０９において、写真画像描画部２０４は、全てのラインに対して処理をしたか否か判断する。全てのラインに対して処理をしていない場合には（ステップＳ１８０９のＮｏ）、ステップＳ１８１０において、写真画像描画部２０４は、ライン番号を指定するアドレスＹを１インクリメントして、処理をステップＳ１８０２に戻す。
【０１２５】
そして、写真画像描画部２０４は、全てのラインの処理をした場合には（ステップＳ１８０９のＹｅｓ）、処理を図１２のフローに戻す。
【０１２６】
図２０は、左辺写真描画処理のフローを示す図である。写真画像描画部２０４は、左辺写真描画処理において、写真画像の左辺のブロックに対して図２０に示す処理を実行する。
【０１２７】
まず、ステップＳ１９０１において、写真画像描画部２０４は、ブロック状態情報が色あり（即ち、有効）であるか否かを判断する。色なしの場合（ステップＳ１９０１のＮｏ）、すなわち、写真画像の背面に背景色等が無い場合には、ステップＳ１９０２において、写真画像描画部２０４は、左辺の空白の始点からブロック内の左側の終点のそれぞれの画素の描画色を、色情報としてバンドメモリ領域１２３に描画する。そして、写真画像描画部２０４は、処理をステップＳ１９０５に進める。
【０１２８】
色ありの場合（ステップＳ１９０１のＹｅｓ）、すなわち、写真画像の背面に背景色等がある場合には、ステップＳ１９０３において、写真画像描画部２０４は、ラインメモリ２６２の画素が存在する画素はラインメモリ２６２に記憶された描画色、ラインメモリ２６２の画素が存在しない画素はブロックメモリ１２１の描画色を読み出して合成する。続いて、ステップＳ１９０４において、写真画像描画部２０４は、合成したブロックの各画素の描画色を色情報としてバンドメモリ領域１２３に描画する。そして、写真画像描画部２０４は、処理をステップＳ１９０５に進める。
【０１２９】
ステップＳ１９０５において、写真画像描画部２０４は、ブロック状態情報を色無し（無効）に変更する。そして、写真画像描画部２０４は、処理を図１９のフローに戻す。
【０１３０】
図２１は、右辺写真描画処理のフローを示す図である。写真画像描画部２０４は、右辺写真描画処理において、写真画像の右辺のブロックに対して図２１に示す処理を実行する。
【０１３１】
まず、ステップＳ２００１において、写真画像描画部２０４は、ブロック状態情報が色あり（即ち、有効）であるか否かを判断する。色なしの場合（ステップＳ２００１のＮｏ）、ステップＳ２００２において、写真画像描画部２０４は、右辺の空白の始点からブロック内の右側の終点のそれぞれの画素の描画色を、色情報としてバンドメモリ領域１２３に描画する。そして、写真画像描画部２０４は、処理をステップＳ２００５に進める。
【０１３２】
色ありの場合（ステップＳ２００１のＹｅｓ）、ステップＳ２００３において、写真画像描画部２０４は、ラインメモリ２６２の画素が存在する画素はラインメモリ２６２に記憶された描画色、ラインメモリ２６２の画素が存在しない画素はブロックメモリ１２１の描画色を読み出して合成する。続いて、ステップＳ２００４において、写真画像描画部２０４は、合成したブロックの各画素の描画色を色情報としてバンドメモリ領域１２３に描画する。そして、写真画像描画部２０４は、処理をステップＳ２００５に進める。
【０１３３】
ステップＳ２００５において、写真画像描画部２０４は、ブロック状態情報を色無し（無効）に変更する。そして、写真画像描画部２０４は、処理を図１９のフローに戻す。
【０１３４】
図２２は、ブロック写真描画処理のフローを示す図である。写真画像描画部２０４は、ブロック写真描画処理において、ブロック内の全ての画素が写真画像となっているそれぞれのブロックに対して図２２に示す処理を実行する。
【０１３５】
まず、ステップＳ２１０１において、写真画像描画部２０４は、対応するブロックのそれぞれの画素の描画色を色情報として、バンドメモリ領域１２３に書き込む。続いて、ステップＳ２１０２において、写真画像描画部２０４は、ブロック状態情報を色なし（無効）とする。
【０１３６】
続いて、ステップＳ２１０３において、写真画像描画部２０４は、対応する全てのブロックの処理を終えたか否かを判断する。対応する全てのブロックの処理を終えてない場合には（ステップＳ２１０３のＮｏ）、写真画像描画部２０４は、処理をステップＳ２１０１に戻して次のブロックについて処理を繰り返す。対応する全てのブロックの処理を終えた場合には（ステップＳ２１０３のＹｅｓ）、写真画像描画部２０４は、処理を図１９のフローに戻す。
【０１３７】
図２３は、図１２のステップＳ１１０９の画像処理のフローを示す図である。描画部１０５の画像処理部２０８は、図１２のステップＳ１１０９において、図２３に示す処理を実行する。
【０１３８】
まず、ステップＳ２２０１において、画像処理部２０８は、ライン番号を指定するＹ方向のアドレスを“０”に初期化する。続いて、ステップＳ２２０２において、画像処理部２０８は、ライン内のブロックを指定するブロックアドレスＸを“０”に初期化する。
【０１３９】
続いて、ステップＳ２２０３において、画像処理部２０８は、Ｘ、Ｙで指定されるブロック状態メモリ１２２のブロック状態情報、ブロックメモリ１２１の色情報、および、メインメモリ１１４のバンドメモリ領域１２３の対応するそれぞれの画素の色情報を読み込む。続いて、ステップＳ２２０４において、画像処理部２０８は、ブロック状態情報が色あり（有効）であるか否かを判断する。
【０１４０】
ブロック状態情報が色あり（有効）である場合（ステップＳ２２０４のＹｅｓ）、ステップＳ２２０５において、画像処理部２０８は、ブロックメモリ１２１の色情報を画像処理対象となる複数の画素の全ての色値に割り当てる。また、ブロック状態情報が色なし（無効）である場合（ステップＳ２２０４のＮｏ）、ステップＳ２２０６において、画像処理部２０８は、バンドメモリ領域１２３の複数の画素の色情報を画像処理対象となる複数の画素のそれぞれの色値に割り当てる。
【０１４１】
続いて、ステップＳ２２０７において、画像処理部２０８は、複数の画素の色値に対して色変換および階調処理を行ってページパターンを生成し、画像処理後の色をメインメモリ１１４の画像処理後ページメモリ領域１２４に書き込む。
【０１４２】
続いて、ステップＳ２２０８において、画像処理部２０８は、１ライン分の全てのブロックを処理したか否か判断する。１ライン分の全てのブロックを処理していない場合には（ステップＳ２２０８のＮｏ）、ステップＳ２２０９において、画像処理部２０８は、ブロックアドレスＸを１インクリメントして、処理をステップＳ２２０３に戻す。
【０１４３】
１ライン分の全てのブロックを処理した場合には（ステップＳ２２０８のＹｅｓ）、ステップＳ２２１０において、画像処理部２０８は、全てのラインに対して処理をしたか否か判断する。全てのラインに対して処理をしていない場合には（ステップＳ２２１０のＮｏ）、ステップＳ２２１１において、画像処理部２０８は、ライン番号を指定するアドレスＹを１インクリメントして、処理をステップＳ２２０２に戻す。
【０１４４】
そして、画像処理部２０８は、全てのラインの処理をした場合には（ステップＳ２２１０のＹｅｓ）、処理を図１２のフローに戻す。
【０１４５】
以上のように、本実施形態に係る画像処理装置１００では、複数画素の色情報を格納するブロックメモリ１２１およびブロックメモリ１２１の色情報が有効であるか否かを示すブロック状態メモリ１２２を有することで、メインメモリ１１４のバンドメモリ領域１２３の初期化をしなくてよくなる。すなわち、画像処理装置１００では、初期化において、ブロックメモリ１２１の全部に“白値”を描画し、ブロック状態メモリ１２２の全部を“有効”にすればよい。これにより、画像処理装置１００は、バンドメモリ領域１２３の初期化を高速化することができる。
【０１４６】
また、画像処理装置１００では、背景の描画がブロックの単位で単色であれば、ブロック単位でブロックメモリ１２１を描画し、ブロック状態メモリ１２２を”有効”とし、バンドメモリ領域１２３への描画をしなくてよい。すなわち、画像処理装置１００では、ブロックに複数の色を有する部分のみをバンドメモリ領域１２３に描画すればよい。これにより、画像処理装置１００によれば、メモリへのアクセスを低減することができる。また、ブロックメモリ１２１は、例えば、１ブロックが８画素で構成されている場合には、容量をバンドメモリ領域１２３の１／８とすることができるので、ＡＳＩＣに内蔵することが容易となる。このため、画像処理装置１００によれば、複数画素を並列にアクセスすることが可能であり、高速に描画処理をすることができる。特に、画像処理装置１００では、プレゼンテーションアプリケーションの背景画像等はほとんどブロックメモリ１２１に描画すればよいので、メモリへのアクセスを低減して高速に描画することができる。
【０１４７】
（第２実施形態）
図２４は、第２実施形態に係る画像処理装置５００の構成を示す図である。第２実施形態に係る画像処理装置５００は、第１実施形態に係る画像処理装置１００と略同一の構成および機能を有するので、以下相違点を中心に説明する。
【０１４８】
第２実施形態に係る画像処理装置５００は、第１実施形態に係る画像処理装置１００と比較して、色変換および階調処理等の画像処理を行う部分がハードウェア化され、描画処理と並列に実行することが可能となっている。これにより、画像処理装置５００は、描画処理を汎用ＣＰＵ等により実行させることができ、全体としてコストを低くすることができる。
【０１４９】
画像処理装置５００は、制御装置５２２と、プリンタエンジン５２３とを備える。プリンタエンジン５２３は、第１実施形態のプリンタエンジン１０８と同様の構成および機能を有する。制御装置５２２は、バス５３０と、ＲＯＭ５３１と、メインメモリ５３２と、コントローラ内蔵ＣＰＵ５３３と、パネル５３４と、表示制御部５３５と、出力部５３６とを備える。
【０１５０】
バス５３０は、コントローラ内蔵ＣＰＵ５３３、表示制御部５３５および出力部５３６の間で相互に入出力されるデータを転送する。ＲＯＭ５３１は、文字等のフォント情報、および、ＣＰＵ５４１により実行されるプログラムを記憶する。
【０１５１】
メインメモリ５３２は、例えばＤＲＡＭであって、各種の情報を記憶する。メインメモリ５３２は、第１実施形態のメインメモリ１１４と同様の構成および機能を有し、同様の情報を記憶する。さらに、メインメモリ５３２は、第１実施形態のブロックメモリ１２１およびブロック状態メモリ１２２と同様の機能および情報を有し、ブロック画像およびブロック状態情報を記憶する。
【０１５２】
コントローラ内蔵ＣＰＵ５３３は、ＣＰＵ５４１と、ＣＰＵＩ／Ｆ５４２と、メモリアービタ５４３と、メモリコントローラ５４４と、ＤＭＡ５４５と、バスコントローラ５４６と、通信コントローラ５４７とを有する。
【０１５３】
ＣＰＵ５４１は、システム全体の制御をする。また、ＣＰＵ５４１は、ネットワークを介して外部のコンピュータから送られてきたＰＤＬを解析してパラメータ等を生成する。
【０１５４】
さらに、ＣＰＵ５４１は、プログラムを実行することにより、第１実施形態の描画部１０５における、画像処理部２０８、ブロックメモリ１２１およびブロック状態メモリ１２２の機能を除いた機能を実行する。すなわち、ＣＰＵ５４１は、第１実施形態における、コマンド解析部２０２、グラフィックス描画部２０３、写真画像描画部２０４およびブロックメモリ制御部２０５と同様の機能を実行する。
【０１５５】
ＣＰＵＩ／Ｆ５４２は、ＣＰＵ５４１を、メモリアービタ５４３を介してメモリコントローラ５４４および通信コントローラ５４７等との間のデータ転送処理をする。
【０１５６】
メモリアービタ５４３は、メインメモリ５３２へのアクセスを調停する。メモリコントローラ５４４は、メインメモリ５３２に対するアクセスを制御する。ＤＭＡ５４５は、ＣＰＵ５４１等からの要求に応じて、メインメモリ５３２に対してダイレクトメモリアクセスを行う。
【０１５７】
バスコントローラ５４６は、バス５３０と接続された各部材とのデータの転送を制御する。通信コントローラ５４７は、ネットワークを介して外部のコンピュータからＰＤＬを受け取り、メインメモリ５３２に記憶させる。
【０１５８】
パネル５３４は、情報の表示およびユーザからの操作情報の入力をする。表示制御部５３５は、バスＩ／Ｆ５５１と、パネルコントローラ５５２とを有する。バスＩ／Ｆ５５１は、バス５３０と接続された各部材とのデータの転送を制御する。パネルコントローラ５５２は、パネル５３４を制御する。
【０１５９】
出力部５３６は、バスＩ／Ｆ５６１と、画像処理部５６２と、復号部５６３と、エンジンコントローラ５６４とを有する。バスＩ／Ｆ５６１は、バス５３０と接続された各部材とのデータの転送を制御する。
【０１６０】
画像処理部５６２は、第１実施形態の描画部１０５における画像処理部２０８と同様の機能を実現する。ただし、画像処理部５６２は、ブロックメモリ１２１およびブロック状態メモリ１２２に代えて、メインメモリ５３２にブロック画像およびブロック状態情報を記憶させる。また、画像処理部５６２は、ハードウェアにより構成される。画像処理部５６２の詳細な構成については、図２８を参照してさらに説明する。
【０１６１】
復号部５６３は、メインメモリ５３２に記憶された符号を読み出して復号し、エンジンコントローラ５６４に転送する。エンジンコントローラ５６４は、プリンタエンジン５２３を制御して、復号部５６３から転送された符号に応じた画像を用紙上に印刷させる。
【０１６２】
図２５は、第２実施形態に係る画像処理装置５００の処理の流れを示す図である。まず、ステップＳ３１０１において、通信コントローラ５４７がネットワークを介して受信したＰＤＬデータをメインメモリ５３２が記憶する。続いて、ステップＳ３１０２において、ＣＰＵ５４１がＰＤＬデータを解析する。
【０１６３】
続いて、ステップＳ３１０３において、ＣＰＵ５４１が、描画処理を実行する。これにより、ＣＰＵ５４１は、バンド画像、ブロック画像およびブロック状態情報を生成することができる。
【０１６４】
続いて、ステップＳ３１０４において、メインメモリ５３２は、バンド画像を記憶する。また、ステップＳ３１０５において、メインメモリ５３２は、ブロック画像を記憶する。また、ステップＳ３１０６において、メインメモリ５３２は、ブロック状態情報を記憶する。
【０１６５】
続いて、ステップＳ３１０７において、画像処理部５６２は、バス５３０を介して、メインメモリ５３２から、バンド画像、ブロック画像およびブロック状態情報を読み込む。そして、画像処理部５６２は、それぞれのブロックのそれぞれの画素についてブロック状態情報が有効であればブロック画像の色情報を色値として割り当て、無効であれば、バンド画像の色情報を色値として割り当てて画像を合成する。
【０１６６】
続いて、ステップＳ３１０８において、画像処理部５６２は、合成した画像に対して色変換処理を実行する。例えば、画像処理部５６２は、ＲＧＢ画像からＣＭＹＫ画像への色変換を実行する。
【０１６７】
続いて、ステップＳ３１０９において、画像処理部５６２は、色変換された画像に対して階調処理を実行する。続いて、ステップＳ３１１０において、画像処理部５６２は、階調処理がされた画像をプリンタ用のページ単位の符号データに変換して、バス５３０を介してメインメモリ５３２に転送する。
【０１６８】
続いて、ステップＳ３１１１において、メインメモリ５３２は、転送されたページ単位の符号データを記憶する。続いて、ステップＳ３１１２において、復号部５６３は、バス５３０を介してメインメモリ５３２からページ単位の符号データを取得して復号し、復号したデータをプリンタエンジン５２３に転送する。そして、ステップＳ３１１３において、プリンタエンジン５２３は、復号部５６３から転送されたデータに基づき印刷をする。
【０１６９】
図２６は、メインメモリ５３２内の領域を示す図である。メインメモリ５３２には、ＰＤＬメモリ領域５８１、プログラム領域５８２、バンドメモリ領域５８３、ブロックメモリ領域５８４、ブロック状態メモリ領域５８５、パラメータ領域５８６、画像処理後ページメモリ領域５８７、および、その他の領域５８８が含まれる。
【０１７０】
ＰＤＬメモリ領域５８１は、ＰＤＬデータを記憶する。プログラム領域５８２は、ＣＰＵ５４１により実行されるプログラムを記憶する。
【０１７１】
バンドメモリ領域５８３は、バンド画像を記憶する。バンドメモリ領域５８３は、第１実施形態のバンドメモリ領域１２３と同様の機能を有する。
【０１７２】
ブロックメモリ領域５８４は、ブロック画像を記憶する。ブロックメモリ領域５８４は、第１実施形態のブロックメモリ１２１と同様の機能を有する。
【０１７３】
ブロック状態メモリ領域５８５は、ブロック状態情報を記憶する。ブロック状態メモリ領域５８５は、第１実施形態のブロック状態メモリ１２２と同様の機能を有する。
【０１７４】
パラメータ領域５８６は、格子点データ格納領域、ガンマデータ格納領域およびしきい値データ格納領域を有する。格子点データ格納領域は、格子点データを記憶する。ガンマデータ格納領域は、ガンマデータを記憶する。しきい値データ格納領域は、しきい値を記憶する。さらに、パラメータ領域５８６は、描画に必要な描画コード等も記憶する。
【０１７５】
画像処理後ページメモリ領域５８７は、画像処理部５６２により画像処理がされた後のページパターンを記憶する。画像処理後ページメモリ領域５８７は、第１実施形態の画像処理後ページメモリ領域１２４と同様の機能を有する。画像処理後ページメモリ領域５８７は、Ｃ版ページ符号格納領域、Ｍ版ページ符号格納領域、Ｙ版ページ符号格納領域およびＹ版ページ符号格納領域を有する。
【０１７６】
その他の領域５８８は、その他の各種の制御データ等を記憶する。
【０１７７】
図２７は、画像処理装置５００内でのメインメモリ５３２に対するデータの流れを示す図である。
【０１７８】
まず、通信コントローラ５４７は、矢印Ａに示されるように、ネットワークを介して取得されたＰＤＬデータをＰＤＬメモリ領域５８１に書き込む。
【０１７９】
続いて、描画部として機能するＣＰＵ５４１は、矢印Ｂに示されるように、ＰＤＬメモリ領域５８１からＰＤＬデータを読み出して、解析する。続いて、ＣＰＵ５４１は、矢印Ｃに示されるように、ＰＤＬデータを解析して得られたパラメータをパラメータ領域５８６に書き込む。
【０１８０】
続いて、ＣＰＵ５４１は、描画処理を実行して、バンド画像、ブロック画像およびブロック状態情報を生成する。ＣＰＵ５４１は、矢印Ｄに示されるようにバンド画像をバンドメモリ領域５８３に書き込む。また、ＣＰＵ５４１は、矢印Ｅに示されるようにブロック画像をブロックメモリ領域５８４に書き込む。また、ＣＰＵ５４１は、矢印Ｆに示されるようにブロック状態情報をブロック状態メモリ領域５８５に書き込む。
【０１８１】
続いて、画像処理部５６２は、矢印Ｇに示されるようにパラメータをパラメータ領域５８６から読み出す。また、画像処理部５６２は、矢印Ｈに示されるようにバンド画像をバンドメモリ領域５８３から読み出す。また、画像処理部５６２は、矢印Ｉに示されるようにブロック画像をブロックメモリ領域５８４から読み出す。また、画像処理部５６２は、矢印Ｊに示されるようにブロック状態情報をブロック状態メモリ領域５８５から読み出す。
【０１８２】
続いて、画像処理部５６２は、パラメータ、バンド画像、ブロック画像およびブロック状態情報に基づき画像を合成して、合成した画像に色変換処理、階調処理および符号化処理を実行する。そして、画像処理部５６２は、矢印Ｋに示されるように、符号化データを画像処理後ページメモリ領域５８７に書き込む。
【０１８３】
続いて、復号部５６３は、矢印Ｌに示されるように画像処理後ページメモリ領域５８７から符号化データを読み出して復号し、矢印Ｍに示されるようにエンジンコントローラ５６４に転送する。続いて、エンジンコントローラ５６４は、矢印Ｎに示されるように復号されたデータをプリンタエンジン５２３に転送して、印刷をさせる。
【０１８４】
図２８は、画像処理部５６２の構成を示す図である。画像処理部５６２は、バスアービタＩ／Ｆ６０１と、画像処理パラメータ読込部６０２と、パラメータアドレス生成部６０３と、ＤＭＡパラメータ記憶部６０４と、格子点データ記憶部６０５と、ガンマテーブル記憶部６０６と、ハーフトンパラメータ記憶部６０７と、しきい値記憶部６０８とを備える。さらに、画像処理部５６２は、バンド画像読込部６０９と、バンド画像アドレス生成部６１０と、ブロック画像読込部６１１と、ブロックアドレス生成部６１２と、ブロック状態情報読込部６１３と、ブロック状態アドレス生成部６１４とを備える。さらに、画像処理部５６２は、画素選択部６１５と、色変換処理部６１６と、階調処理部６１７と、ラインメモリ６１８と、符号化部６１９と、符号バッファ６２０と、画像処理後画像書込部６２１と、画像処理後画像アドレス生成部６２２とを備える。
【０１８５】
バスアービタＩ／Ｆ６０１は、画像処理パラメータ読込部６０２、バンド画像読込部６０９、ブロック画像読込部６１１、ブロック状態情報読込部６１３および画像処理後画像書込部６２１によるバスＩ／Ｆ５６１に対するアクセスを調停する。
【０１８６】
画像処理パラメータ読込部６０２は、バスＩ／Ｆ５６１を介してメインメモリ５３２にアドレスおよび読出要求を送信して、メインメモリ５３２のパラメータ領域５８６から格子点データ、ガンマデータ、しきい値データおよびその他の描画コード等のパラメータを読み込む。パラメータアドレス生成部６０３は、メインメモリ５３２からパラメータを読み出すためのアドレスを生成して画像処理パラメータ読込部６０２に与える。
【０１８７】
ＤＭＡパラメータ記憶部６０４は、画像処理パラメータ読込部６０２が読み込んだ、バンド幅、バンド高さ、開始アドレス、階調処理後バンド幅、階調処理後バンド高さおよび階調処理後開始アドレス等を記憶する。格子点データ記憶部６０５は、画像処理パラメータ読込部６０２が読み込んだ格子点データを記憶する。ガンマテーブル記憶部６０６は、画像処理パラメータ読込部６０２が読み込んだガンマデータを記憶する。ハーフトンパラメータ記憶部６０７は、画像処理パラメータ読込部６０２が読み込んだハーフトン処理のためのパラメータを記憶する。しきい値記憶部６０８は、画像処理パラメータ読込部６０２が読み込んだしきい値データを記憶する。
【０１８８】
バンド画像読込部６０９は、バスＩ／Ｆ５６１を介してメインメモリ５３２にアドレスおよび読出要求を送信して、メインメモリ５３２のバンドメモリ領域５８３からバンド画像を読み込む。バンド画像読込部６０９は、読み込んだバンド画像のデータを画素選択部６１５に転送する。バンド画像アドレス生成部６１０は、ＤＭＡパラメータ記憶部６０４に記憶されたパラメータに基づき、メインメモリ５３２からバンド画像を読み出すためのアドレスを生成してバンド画像読込部６０９に与える。
【０１８９】
ブロック画像読込部６１１は、バスＩ／Ｆ５６１を介してメインメモリ５３２にアドレスおよび読出要求を送信して、メインメモリ５３２のブロックメモリ領域５８４からブロック画像を読み込む。ブロック画像読込部６１１は、読み込んだブロック画像のデータを画素選択部６１５に転送する。ブロックアドレス生成部６１２は、ＤＭＡパラメータ記憶部６０４に記憶されたパラメータに基づき、メインメモリ５３２からブロック画像を読み出すためのアドレスを生成してブロック画像読込部６１１に与える。
【０１９０】
ブロック状態情報読込部６１３は、バスＩ／Ｆ５６１を介してメインメモリ５３２にアドレスおよび読出要求を送信して、メインメモリ５３２のブロック状態メモリ領域５８５からブロック状態情報を読み込む。ブロック画像読込部６１１は、読み込んだブロック状態情報のデータを画素選択部６１５に転送する。ブロック状態アドレス生成部６１４は、ＤＭＡパラメータ記憶部６０４に記憶されたパラメータに基づき、メインメモリ５３２からブロック状態情報を読み出すためのアドレスを生成してブロック状態情報読込部６１３に与える。
【０１９１】
画素選択部６１５は、ブロック毎に画素を選択して画像合成をする。より具体的には、画素選択部６１５は、それぞれのブロックについて、ブロック状態情報が色あり（有効）である場合、ブロック画像の色情報をそのブロックに含まれる全ての画素の色値とする。また、画素選択部６１５は、ブロック状態情報が色なし（無効）である場合、バンド画像の複数の画素のそれぞれの色情報をそのブロックに含まれる複数の画素のそれぞれの色値とする。
【０１９２】
色変換処理部６１６は、画素選択部６１５により合成された画像データに対して色変換処理を実行する。本例においては、色変換処理部６１６は、格子点データ記憶部６０５に記憶されている格子点データおよびガンマテーブル記憶部６０６に記憶されているガンマデータに基づいて、ＲＧＢ画像をＣＭＹＫ画像に変換する処理を実行する。
【０１９３】
階調処理部６１７は、色変換処理がされた画像に対して階調処理を実行する。本例においては、階調処理部６１７は、ハーフトンパラメータ記憶部６０７に記憶されたハーフトン処理のためのパラメータおよびしきい値記憶部６０８に記憶されたしきい値に基づき、ハーフトン処理を実行する。
【０１９４】
ラインメモリ６１８は、階調処理部６１７により階調処理がされた画像データを１ライン単位でバッファリングする。符号化部６１９は、ラインメモリ６１８に記憶された階調処理後の画像データをプリンタ用のページ単位の符号データに変換して、符号バッファ６２０に記憶させる。符号バッファ６２０は、符号データを一時的に記憶する。
【０１９５】
画像処理後画像書込部６２１は、バスＩ／Ｆ５６１を介してメインメモリ５３２にアドレスおよび書込要求を送信して、符号バッファ６２０にバッファリングされた符号データをメインメモリ５３２の画像処理後ページメモリ領域５８７に書き込む。画像処理後画像アドレス生成部６２２は、ＤＭＡパラメータ記憶部６０４に記憶されたパラメータに基づき、メインメモリ５３２に符号データを書き込むためのアドレスを生成して画像処理後画像書込部６２１に与える。
【０１９６】
図２９は、画像処理部５６２の処理フローを示す図である。画像処理部５６２は、図２９に示す処理を実行する。
【０１９７】
まず、ステップＳ３３０１において、画像処理部５６２は、ライン番号を指定するラインカウンタを“０”に初期化する。続いて、ステップＳ３３０２において、画像処理部５６２は、バンド画像のラインカウンタに対応するラインに含まれる複数の画素の色情報、ブロック画像の対応するラインに含まれる複数のブロックの色情報、および、ブロック状態情報の対応するラインに含まれる値のそれぞれを、メインメモリ５３２からバス５３０を介して読み込む。
【０１９８】
続いて、ステップＳ３３０３において、画像処理部５６２は、ライン内のブロックについて、ブロック状態情報が色あり（有効）であるか否かを判断する。
【０１９９】
ブロック状態情報が色あり（有効）である場合（ステップＳ３３０３のＹｅｓ）、ステップＳ３３０４において、画像処理部５６２は、ブロックメモリ１２１の色情報を画像処理対象となるブロックの複数の画素の色値にする。また、ブロック状態情報が色なし（無効）である場合（ステップＳ３３０３のＮｏ）、ステップＳ３３０５において、画像処理部５６２は、バンド画像の複数の画素の色情報を画像処理対象となるブロックの複数の画素の色値にする。
【０２００】
続いて、ステップＳ３３０６において、画像処理部５６２は、複数の画素の色値に対して色変換処理を行う。続いて、ステップＳ３３０７において、画像処理部５６２は、階調処理を行い、階調処理後のデータをラインメモリ６１８に記憶させる。
【０２０１】
続いて、ステップＳ３３０８において、画像処理部５６２は、ラインメモリ６１８に記憶された階調処理後の画像データをプリンタ用のページ単位の符号データに変換する。そして、画像処理部５６２は、符号化したデータをバス５３０を介してメインメモリ５３２に転送する。
【０２０２】
続いて、ステップＳ３３０９において、画像処理部５６２は、１ライン分の全てのブロックを処理したか否か判断する。１ライン分の全てのブロックを処理していない場合には（ステップＳ３３０９のＮｏ）、処理をステップＳ３３０２に戻して次のブロックについて処理を実行する。
【０２０３】
１ライン分の全てのブロックを処理した場合には（ステップＳ３３０９のＹｅｓ）、ステップＳ３３１０において、画像処理部５６２は、全てのラインに対して処理をしたか否か判断する。全てのラインに対して処理をしていない場合には（ステップＳ３３１０のＮｏ）、ステップＳ３３１１において、画像処理部５６２は、ラインカウンタを１インクリメントして、処理をステップＳ３３０２に戻して、次のラインについて処理を繰り返す。
【０２０４】
そして、画像処理部５６２は、全てのラインの処理をした場合には（ステップＳ３３１０のＹｅｓ）、処理を終了する。
【０２０５】
以上のように、本実施形態に係る画像処理装置５００では、画像処理部５６２をハードウェア化することで、描画処理と画像処理とを並列に実行できる。これにより、画像処理装置５００は、処理を高速化することができる。また、画像処理装置５００は、描画処理を汎用のプロセッサにより実行させることができるので、全体のコストを小さくすることができる。
【０２０６】
なお、本実施の形態の画像処理装置５００で実行されるプログラムは、ＲＯＭ等に予め組み込まれて提供される。本実施の形態の画像処理装置５００で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
【０２０７】
さらに、本実施の形態の画像処理装置５００で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施の形態の画像処理装置１００および画像処理装置５００で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【０２０８】
本実施の形態の画像処理装置５００で実行されるプログラムは、上述した描画部を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ５４１（プロセッサ）が上記ＲＯＭからプログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、描画部が主記憶装置上に生成されるようになっている。
【０２０９】
なお、上記実施の形態では、本発明の画像形成装置を、コピー機能、プリンタ機能、スキャナ機能およびファクシミリ機能のうち少なくとも２つの機能を有する複合機に適用した例を挙げて説明したが、複写機、プリンタ、スキャナ装置、ファクシミリ装置等の画像形成装置であればいずれにも適用することができる。
【符号の説明】
【０２１０】
１００  画像処理装置
１０１  ＣＰＵ
１０２  ＣＰＵＩ／Ｆ
１０３  ＡＸＩバス
１０４  メモリコントローラ
１０５  描画部
１０６  ＤＭＡ
１０７  エンジンコントローラ
１０８  プリンタエンジン
１０９  通信コントローラ
１１０  ローカルＩ／Ｆ
１１１  ＲＯＭ
１１２  パネルコントローラ
１１３  パネル
１１４  メインメモリ
１２１  ブロックメモリ
１２２  ブロック状態メモリ
１２３  バンドメモリ領域
１２４  画像処理後ページメモリ領域
１２５  描画コードメモリ領域
５００  画像処理装置
５２２  制御装置
５２３  プリンタエンジン
５３０  バス
５３１  ＲＯＭ
５３２  メインメモリ
５３３  コントローラ内蔵ＣＰＵ
５３４  パネル
５３５  表示制御部
５３６  出力部
５４１  ＣＰＵ
５４２  ＣＰＵＩ／Ｆ
５４３  メモリアービタ
５４４  メモリコントローラ
５４５  ＤＭＡ
５４６  バスコントローラ
５４７  通信コントローラ
５５１  バスＩ／Ｆ
５５２  パネルコントローラ
５６１  バスＩ／Ｆ
５６２  画像処理部
５６３  復号部
５６４  エンジンコントローラ
【先行技術文献】
【特許文献】
【０２１１】
【特許文献１】特許第３３３２１６５号公報
【特許文献２】特開２００９−２６９３４１号公報
【特許文献３】特許第４７５３１０５号公報
【特許文献４】特開２０１２−１１８７４５号公報
【図１】
2014165545.tif 000003
【図２】
2014165545.tif 000004
【図３】
2014165545.tif 000005
【図４】
2014165545.tif 000006
【図５】
2014165545.tif 000007
【図６】
2014165545.tif 000008
【図７】
2014165545.tif 000009
【図８】
2014165545.tif 000010
【図９】
2014165545.tif 000011
【図１０】
2014165545.tif 000012
【図１１】
2014165545.tif 000013
【図１２】
2014165545.tif 000014
【図１３】
2014165545.tif 000015
【図１４】
2014165545.tif 000016
【図１５】
2014165545.tif 000017
【図１６】
2014165545.tif 000018
【図１７】
2014165545.tif 000019
【図１８】
2014165545.tif 000020
【図１９】
2014165545.tif 000021
【図２０】
2014165545.tif 000022
【図２１】
2014165545.tif 000023
【図２２】
2014165545.tif 000024
【図２３】
2014165545.tif 000025
【図２４】
2014165545.tif 000026
【図２５】
2014165545.tif 000027
【図２６】
2014165545.tif 000028
【図２７】
2014165545.tif 000029
【図２８】
2014165545.tif 000030
【図２９】
2014165545.tif 000031