(57)【要約】【課題】ＡＳＩＣを備えた画像処理装置において、高速な描画処理を、ＡＳＩＣに内蔵するメモリの容量を大きくせずに実現する。【解決手段】メインメモリ１８と、前記メインメモリ１８を制御するプリンタコントロール部１７と、ＡＳＩＣ２０とを備えた画像処理装置である。前記プリンタコントロール部１７は、描画コマンドを生成し、メインメモリ１８は、描画コマンドを格納すると共に、ＡＳＩＣ２０で描画され転送されるバンド画像をページ分蓄積して格納する。ＡＳＩＣ２０は、内蔵メモリ１２と、描画処理手段１１と、転送手段とを有する。描画処理手段１１は、内蔵メモリ１２に格納された１ページ分の描画コマンドを読み込み、１つのプレーンのバンド画像を内蔵メモリ１２に描画する。【選択図】    図１
2015013388.tif 000002
【特許請求の範囲】
【請求項１】
主記憶手段と、前記主記憶手段を制御するプリンタコントロール部と、画像処理回路部とを備えた画像処理装置であって、
前記プリンタコントロール部は、入力されたページ記述言語を解析して描画コマンドを生成する描画コマンド生成手段を有し、
前記主記憶手段は、前記描画コマンド生成手段により生成された描画コマンドを格納すると共に、前記画像処理回路部で描画され転送されるバンド画像を格納し、
前記画像処理回路部は、内蔵記憶手段と、描画処理手段と、転送手段を有し、
前記描画処理手段は、前記内蔵記憶手段に格納された１ページ分の描画コマンドを読み込み、１つのプレーンのバンド画像を前記内蔵記憶手段に描画し、
前記転送手段は、前記描画コマンドを前記主記憶手段から前記内蔵記憶手段に転送し、かつ前記１つのプレーンのバンド画像を、前記内蔵記憶手段から前記主記憶手段へ転送する、
ことを特徴とする画像処理装置。
【請求項２】
請求項１に記載された画像処理装置において、
前記描画処理手段は、前記内蔵記憶手段に前記１ページ分の描画コマンドを格納したときの残りの記憶領域を、バンド幅で割ったバンド高さの１つのプレーンの前記バンド画像を描画することを特徴とする画像処理装置。
【請求項３】
請求項２に記載された画像処理装置において、
前記主記憶手段は、前記転送手段で転送された前記バンド画像を蓄積して少なくとも１つのプレーンのページ分の画像を格納することを特徴とする画像処理装置。
【請求項４】
請求項１に記載された画像処理装置において、
前記描画処理手段は、前記転送手段により転送された描画コマンドが前記内蔵記憶手段の容量を超えるときは、描画処理を行わないことを特徴とする画像処理装置。
【請求項５】
請求項２ないし４のいずれかに記載された画像処理装置において、
前記画像処理回路部は、前記内蔵記憶手段への複数のカラープレーンのうちの１つのプレーンの前記バンド画像の描画と、生成された前記バンド画像の転送を繰り返し行うことを特徴とする画像処理装置。
【請求項６】
請求項１に記載された画像処理装置において、
前記画像処理回路部は、ＡＳＩＣであることを特徴とする画像処理装置。
【請求項７】
請求項１に記載された画像処理装置において、
前記プリンタコントロール部は、前記主記憶手段のメモリコントローラを備えたＣＰＵであることを特徴とする画像処理装置。
【請求項８】
主記憶手段と、前記主記憶手段を制御するプリンタコントロール部と、画像処理回路部とを備えた画像処理装置における画像処理方法であって、
前記プリンタコントロール部における、入力されたページ記述言語を解析して描画コマンドを生成する描画コマンド生成工程と、
前記描画コマンド生成工程において生成された描画コマンドを前記主記憶手段に格納する工程と、
前記画像処理回路部における、前記主記憶手段に格納された描画コマンドから１ページ分の描画コマンドを前記画像処理回路部の内蔵記憶手段に転送する工程と、
前記転送された１ページ分の描画コマンドを前記内蔵記憶手段に格納する工程と、
前記内蔵記憶手段に格納された１ページ分の描画コマンドを読み込み、１つのプレーンのバンド画像を前記内蔵記憶手段に描画する描画処理工程と、
前記内蔵記憶手段に描画された前記バンド画像を、前記主記憶手段に転送する画像転送工程と、
転送された前記バンド画像を前記主記憶手段に格納する工程と、
を有することを特徴とする画像処理装置における画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及び画像処理方法に関する。
【背景技術】
【０００２】
近年、ページプリンタなどにおいて、プリンタ描画処理などにおける解像度の増加と高速の要求に対し、ＣＰＵ（Central Processing Unit）の性能、つまり、ソフトウエアのみでこれらの要求を満たすことが難しくなってきた。そのため、プリンタ描画処理や画像処理をハードウエアで行うようになってきている。
このハードウエアで行うプリンタ描画処理では、高速化メモリアクセスが必要であり、例えば、図８に示すように専用のメモリ(ローカルメモリ２８)を有するものが知られている。
【０００３】
他方、プリンタ描画処理のコストダウンをはかる方法として、ＰＣ（Personal Computer）やゲームなどで画面サイズがＶＧＡ（Video Graphic Array）程度の場合は、フレームメモリが小さいために、フレームメモリのＳＲＡＭ（Static Random Access Memory）として、ＡＳＩＣ（Application Specific Integrated Circuit）にメモリを内蔵して描画処理することが知られている（図９参照）。
しかし、プリンタ描画処理の場合は、描画サイズが600dpiのＡ４サイズとすると、6800*4720画素程度の大きなメモリサイズが必要となる。しかし、このように大きなメモリをＡＳＩＣに内蔵することは出来ない。
【０００４】
また、近年の半導体プロセスの発達により、メインメモリのＤＲＡＭ（Dynamic Random Access Memory）は高速化されたが、それに伴いＣＰＵとメモリコントローラ間の高速な転送レートが要求されるようになった。そのために、汎用ＣＰＵを製造するメーカーは、図７に示すようなメモリコントローラ４を内蔵した汎用ＣＰＵ１７を製造し始めている。
このようなメモリコントローラ４を内蔵した汎用ＣＰＵ１７をプリンタコントローラとして使用する場合、図７に示すように汎用ＣＰＵ１７の標準バス１９に画像処理用ＡＳＩＣ２０Ａを接続することが考えられる。
【０００５】
例えば、図７に示すメモリコントローラ４を内蔵した汎用ＣＰＵ１７を使用し、ＡＳＩＣ２０Ａに描画装置１１Ａを有する場合は、描画処理は、メインメモリ１８のバンドメモリ１８ｂにバス１９を介してアクセスしながら行う必要がある。この場合、描画装置１１Ａからバンドメモリ１８ｂに細かなメモリアクセスが多発し、バス転送レートが本来の性能を発揮出来なくなる。また、バス１９を介して処理する他のハードウエアに対する影響も大きくなる。
その対策として、図８に示すようにＡＳＩＣ２０Ａにローカルメモリ２８を持たせる方法が考えられる。しかし、プリンタコントローラは、このローカルメモリ２８の分コストが高くなる。
【０００６】
また、図９に示すように、ＡＳＩＣ２０Ａにバンドメモリ１２Ａを内蔵させる方法も考えられる。しかし、描画サイズが、例えば600dpiのＡ４サイズでは、既に述べたように、6800*4720（ライン）画素程度の大きなメモリサイズが必要となる。そのメモリ容量は、128Mバイトもの大きさであるため、それをＡＳＩＣ２０Ａに内蔵させることは難しく、仮に内蔵させるとＡＳＩＣ２０Ａのコスト上昇を招く。
そのため、描画データをバンドで区切り、各バンド単位でＡＳＩＣ２０Ａに格納することも考えられる。しかし、例えばバンドの高さを256ラインにしても、７Ｍバイトものメモリを必要とする。そのため、やはり、内蔵は容易でなく、内蔵させるとＡＳＩＣのコスト上昇を招く。
【０００７】
そこで、バンド高さを更に低くすれば、バンド容量は小さくなり、図９に示すように、メインメモリ１８から描画コマンドを読み込みながらバンドを描画することが可能となる。しかし、この場合、バンドが小さいために読み込んだ描画コマンドがそのバンドに描画するコマンドでない場合が多くなる。そのため、バンド描画の度に１ページ分の描画コマンドを読み込むことになる。例えば、600dpiの場合に、Ａ４、1ページ分の描画データ、4720ラインの高さを128ライン単位のバンドで分割すると３７、つまり、１ページ分の描画コマンドを３７回メインメモリ１８から読み込む必要がある。
【０００８】
また、ＡＳＩＣ２０Ａの描画装置１１Ａからバス１９を介するメインメモリ１８のアクセスは、大きなレイテンシー（デバイスに対してデータ転送などを要求してから、その結果が返送されるまでの遅延時間）を必要とする。したがって、１ページ分の描画コマンドを読み込むために３７回も読み込みを行うことは、多くの時間を要し、他のデバイスのバスの転送を阻害することになる。
【０００９】
また、１ページの描画コマンドを128ラインの高さ毎の複数の描画コマンドに分割した場合、３７個のバンド単位の描画コマンドは、そのバンドのみに必要な描画コマンドのみであるため無駄な描画コマンドを読み込む必要がなくなる。つまり、メインメモリ１８から転送する描画コマンドは１ページ分の描画コマンドのみとなるため、バスの転送の問題は解決する。
しかし、３７個もの多くのバンド単位の描画コマンドを生成することは、ＣＰＵの処理負担が多くなり、描画コマンド生成の時間が長くなる。したがって、高速な描画処理を行うためには適さない。
【００１０】
なお、特許文献１には、低価格なＣＰＵで印字スピードを向上させることを目的に、プリンタの多値ＲＧＢ情報をソフトウエアでバンド画像に描画し、画像処理をハードウエアで実現する方法が開示されている（段落（００５５）−（００６７））。特許文献２には、画像を処理する本体装置と描画にかかる処理を行う描画装置を備えた画像処理システムにおいて、描画ボードは、自身が有するページメモリを利用して描画処理をすること、及びそれによって、ＣＰＵとのメモリの競合が起きることもなく、処理の効率化を図ると記載されている（段落（００６６））。また、特許文献３には、低価格なＣＰＵで印字スピードを向上させることを目的に、メモリが近い構成での描画処理部により、描画性能を高める方法が開示されている（段落（００７５）−（００７７））。
【００１１】
しかし、ＣＰＵで描画し、画像処理をハードウエアで処理しようとすると、ＣＰＵのコストが上昇するという問題や、ローカルメモリを用いて処理しようとするとコストが上昇するとの問題は解決されていない。
【発明の概要】
【発明が解決しようとする課題】
【００１２】
本発明は、前記従来の問題に鑑みてなされたものであって、その目的は、画像処理回路部を備えた画像処理装置において、高速な描画処理を、画像処理回路部に内蔵するメモリ容量を大きくせずに、低コストで実現することである。
【課題を解決するための手段】
【００１３】
本発明は、主記憶手段と、前記主記憶手段を制御するプリンタコントロール部と、画像処理回路部とを備えた画像処理装置であって、前記プリンタコントロール部は、入力されたページ記述言語を解析して描画コマンドを生成する描画コマンド生成手段を有し、前記主記憶手段は、前記描画コマンド生成手段により生成された描画コマンドを格納すると共に、前記画像処理回路部で描画され転送されるバンド画像を格納し、前記画像処理回路部は、内蔵記憶手段と、描画処理手段と、転送手段を有し、前記描画処理手段は、前記内蔵記憶手段に格納された１ページ分の描画コマンドを読み込み、１つのプレーンのバンド画像を前記内蔵記憶手段に描画し、前記転送手段は、前記描画コマンドを前記主記憶手段から前記内蔵記憶手段に転送し、かつ前記１つのプレーンのバンド画像を、前記内蔵記憶手段から前記主記憶手段へ転送する、ことを特徴とする画像処理装置である。
【発明の効果】
【００１４】
本発明によれば、画像処理回路部を備えた画像処理装置において、高速な描画処理を、画像処理回路部に内蔵するメモリ容量を大きくせずに、低コストで実現することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施形態に係る画像処理装置のプリンタコントロールボードのブロック図である。
【図２】図１に示すプリンタコントロールボードの処理を概略的に示す図である。
【図３】図１に示す内蔵メモリと図１のメインメモリの関係を示す図である。
【図４】描画処理部のブロック図である。
【図５】各コマンドのフォーマットを例示する図である。
【図６】描画処理部で行われる描画処理の手順を示すフロー図である。
【図７】従来の画像処理装置を示すブロック図である。
【図８】従来の他の画像処理装置を示すブロック図である。
【図９】従来のさらに他の画像処理装置を示すブロック図である。
【発明を実施するための形態】
【００１６】
本発明は、プリンタ描画処理を行うに際して、以下の特徴を有する。
即ち、本発明は、Ｃ（シアン）、Ｍ（マゼンタ）、Ｙ（イエロー）、Ｋ（ブラック）の１つのカラープレーンのバンド画像（データ）と、１ページ分の描画コマンドの小さなメモリを画像処理回路部（ＡＳＩＣ）に内蔵することで、ランダムなメモリアクセスを内蔵メモリで行い、繰り返し1ページ分の描画コマンドを読み込み、解析して描画することを特徴とする。
この本発明の特徴について、以下、その実施形態を図面を用いて説明する。
【００１７】
図１は、本発明の実施形態に係る画像処理装置のプリンタコントロールボード２４のブロック図である。
プリンタコントロールボード２４は、汎用ＣＰＵ（ここでは、プリンタコントロール部という）１７と、画像処理回路部（ここでは、ＡＳＩＣ２０）と、ＲＯＭ１６と、主記憶手段であるメインメモリ１８と、パネルコントロール部２１と、パネル２２を備えている。パネルコントロール部２１は、バスＩ／Ｆ（インタフェース）１４とパネルコントローラ１５を備えている。
【００１８】
プリンタコントロール部１７は、図１に示すように、ＣＰＵ１及び内蔵のメモリコントローラ４を含む各種コントローラなどで構成されている。
ここで、ＣＰＵ１は、プリンタコントロールボード２４全体を制御すると共に、ＰＣ（Personal Computer）２３から送られてくるＰＤＬ（ページ記述言語）データを解析し、本発明の描画処理手段に対応する描画処理部１１の描画コマンドを生成する。
ＣＰＵ＿Ｉ／Ｆ２は、ＣＰＵ１のインタフェースであり、メモリアービタ（メモリＡＲＢ）３を介してメモリコントローラ４や各種コントローラと接続されている。
メモリアービタ３は、メインメモリ１８と各種コントローラ間の調停を行う。
メモリコントローラ４は、メインメモリ１８をコントロール（制御）し、メモリアービタ３を介して、各種コントローラやＣＰＵ１と接続されている。
【００１９】
ＤＭＡ（Direct Memory Access）５は、メモリコントローラ４とバス１９に接続されたＡＳＩＣ２０のエンジンコントローラ９間のダイレクトメモリアクセスを行う。
バスコントローラ６は、バス１９とつながる各周辺コントローラに対するバスの調停を行う。
通信コントローラ７は、ネットワークに接続されており、ネットワークから各種データやコマンドなどを受け取り、メモリアービタ３を介して各種コントローラに接続されている。
【００２０】
ＲＯＭ１６は、各種プログラムや、文字などのフォント情報を格納している。
メインメモリ１８は、本発明の主記憶手段に対応し、描画コマンドや、描画データや描画されたＣＭＹＫの１ページ分の画像データや、ＣＰＵのプログラムなどを格納している。
【００２１】
ＡＳＩＣ２０は、メインメモリ１８に格納された画像データなどを、バス１９を介して読み込み画像処理を行い、バス１９を介してメインメモリ１８へ転送する。
バスＩ／Ｆ８は、バス１９のＩ／Ｆでありプリンタコントロール部１７と接続されている。
画像読み込み部１０は、メインメモリ１８に格納された画像データを、エンジンコントローラ９へ転送する。
【００２２】
エンジンコントローラ９は、プリンタエンジン２５を制御する。
描画処理部１１は、ＣＰＵ１により生成された描画コマンドを読み込み、ＡＳＩＣ２０に内蔵された本発明の内蔵メモリ１２のＣＭＹＫバンドメモリ領域１２ｂに描画処理を行い、描画処理結果をメインメモリ１８の指定された位置（描画データメモリ領域１８（３）；図２）へ書き込む。
【００２３】
ＡＳＩＣ２０に内蔵された本発明の内蔵記憶手段に対応する内蔵メモリ１２は、Ｃ、Ｍ、Ｙ、Ｋのうちの１つの版のプレーンのバンド画像と、１ページ分の描画コマンドを格納している。ここで、１つの版（の色）のバンド画像のみを格納する理由は、ＡＳＩＣ２０に搭載するメモリ容量が限られるためである。
また、１ページ分の描画コマンドを格納する理由は、バンドの高さ間隔が小さいために何度も同じ描画コマンドを読み込むことになるからである。なお、内蔵メモリ１２に１ページ分の描画コマンドが入らない場合は、図９に示したようにメインメモリから、バンド描画するたびに、１ページ分の描画コマンドを読み込む必要があり、コマンドの読み込みに多くの時間を費やし、内蔵メモリ１２を設けた効果が小さくなるためである。
【００２４】
プリンタエンジン２５は、プリントを実行するためのプリンタエンジンである。
パネルコントロール部２１のバスＩ／Ｆ１４は、パネルコントローラ１５のデータをメモリコントローラ４内蔵のプリンタコントロール部１７へ転送する。  
パネルコントローラ１５は、パネル２２をコントロールする。
パネル２２は、ユーザーからの操作を受け付け、操作内容をプリンタコントロール部１７に伝える。
ＰＣ２３は、ユーザーの印字操作を受け付けてＰＤＬを生成する。
プリンタコントロールボード２４は、プリンタをコントロールする。
【００２５】
本実施形態では、Ｃ、Ｍ、Ｙ、Ｋのうちの１つのプレーンの色のバンド画像のみ描画するために、図１に示すように内蔵メモリ１２をＡＳＩＣ２０に内蔵することが可能となる。また、図８に示すように、ＡＳＩＣ２０にローカルメモリ２８（外部メモリ）を有する必要がなく、内蔵メモリ１２のメモリ容量を大きくせず、高速な描画を実現することができる。また、ローカルメモリ２８を必要としない分コストを抑制することができる。
【００２６】
図２は、図１に示すプリンタコントロールボード２４の処理を概略的に示す図である。
ＰＣ２３は、ＰＤＬデータを生成し、ネットワークを介してプリンタコントロールボード２４のプリンタコントロール部１７へ転送する。
プリンタコントロール部１７の通信コントローラ７は、ＰＣ２３からのＰＤＬデータを受け取り、それをメインメモリ１８のＰＤＬメモリ領域１８（１）へ格納する。
【００２７】
メインメモリ１８は、ＰＤＬデータ、ＣＭＹＫのプレーンの画像データ、１ページ分の描画ページコマンド（グラフィックスコマンドや写真描画コマンドやバンド定義のコマンドなど）データ、描画データ（写真画像のソース画像など）などを格納する。
ＰＤＬメモリ領域１８（１）は、通信コントローラ７から転送されるＰＤＬデータを格納する。描画ページコマンドメモリ領域１８（２）は、ＣＰＵ１で生成された描画コマンドを格納する。描画データメモリ領域１８（３）は、ＣＰＵ１で生成された描画データを格納する。ＣＭＹＫページ画像メモリ（プレーンページ画像）領域１８（４）は描画処理部１１により描画された画像（データ）を格納する。
【００２８】
ＣＰＵ１は、本発明の描画コマンド生成手段に対応し、ＰＣ２３から転送されるＰＤＬデータを解析し、描画処理部１１へ転送する１ページ分の描画ページコマンドや、描画データを生成し、メインメモリ１８の描画ページコマンドメモリ領域１８（２）及び描画データメモリ（処理データ）領域１８（３）に書き込む。
【００２９】
描画処理部１１は、図示のように、コマンド＆バンドＤＭＡ部１１（２）と描画部１１（４）を備えている。
コマンド＆バンドＤＭＡ部１１（２）は、描画処理を行う最初に１回だけメインメモリ１８の１ページ分の描画ページコマンド（グラフィックスコマンドや写真描画コマンドやバンド定義のコマンドなど）を、内蔵メモリ１２の描画ページコマンドメモリ領域１２ａに転送する。
【００３０】
描画ページコマンドメモリ領域１２ａは、図１の内蔵メモリ（ＳＲＡＭ）１２にあり、コマンド＆バンドＤＭＡ部１１（２）で転送された描画ページコマンドを格納する。
描画部１１（４）は、描画ページコマンドメモリ領域１２ａのコマンドを読み込み、ＡＳＩＣ２０に内蔵されたＣＭＹＫバンドメモリ領域１２ｂにＣ、Ｍ、Ｙ、Ｋのうちの１つのプレーン（例えば、Ｃプレーンなど）のバンド画像を描画する。この時、ＣＭＹＫバンドメモリ領域１２ｂに描画する領域を、図３Ｂに示すメインメモリ１８（ＣＭＹＫページ画像メモリ領域１８（４））のように、Ｃ版バンド０〜Ｎ領域、次に、Ｍ版バンド０〜Ｎ領域というように、ＣＭＹＫのカラー毎に順次生成していき、そのバンド領域を、クリッピング処理を行いながら描画していく。その際、描画コマンドのバンド設定コマンドを認識するとＣＭＹＫバンドメモリ領域１２ｂの初期化を行う。
【００３１】
また、描画ページコマンドメモリ領域１２ａのコマンドは、１ページ分の描画コマンドを含むため、当該バンドに描画する領域以外の描画コマンドは順次スキップさせて、必要な描画コマンドのみ描画処理していく。
ＣＭＹＫバンドメモリ領域１２ｂは、描画部１１（４）で描画されたＣ、Ｍ、Ｙ、Ｋのうちの１つのプレーン（例えば、Ｃプレーンなど）のバンド画像を格納する。１版のプレーンのバンド画像（バンドプレーン画像）の描画処理が完了すると、コマンド＆バンドＤＭＡ部１１（２）は、ＣＭＹＫバンドメモリ領域１２ｂに描画されたＣ、Ｍ、Ｙ、Ｋのうちの１つのプレーン（例えば、Ｃプレーンなど）のバンド画像を、メインメモリ１８のＣＭＹＫページ画像メモリ領域１８（４）に、順次転送していく（つまり、バンド高さの小さいバンド画像を順次転送し、少なくとも１ページ分の画像を蓄積形成する）。
【００３２】
描画部１１（４）は、Ｃ、Ｍ、Ｙ、Ｋの版毎に、描画した後にコマンド＆バンドＤＭＡ部１１（２）で、描画画像をメインメモリ１８のＣＭＹＫページ画像メモリ領域１８（４）に転送し、次の版があればその描画を行う。全ての版の全てのバンドを描画し終わると、ＣＰＵ１に処理の終了を通知する。
画像読み込み部１０は、プリンタエンジン２５に同期してメインメモリ１８のＣＭＹＫページ画像メモリ領域１８（４）の描画処理画像を、エンジンコントローラ９へ転送する。
エンジンコントローラ９は、画像読み込み部１０から受け取った画像をプリンタエンジン２５へ転送する。プリンタエンジン２５は印字を行う。
【００３３】
図３は、図１に示す内蔵メモリ１２と図１のメインメモリ１８の関係を示す図である。ここで、図３Ａは、内蔵メモリ１２のフォーマット、図３Ｂは、メインメモリ１８のＣＭＹＫページ画像メモリ領域１８（４）フォーマットを示す。
図３Ａに示す内蔵メモリ１２は、例えば128ラインの小バンド高さを持ったＣ、Ｍ、Ｙ、Ｋの１版のバンドメモリ（ＣＭＹＫバンドメモリ領域１２ｂ）と、描画コマンドの領域（描画ページコマンドメモリ領域１２ａ）を持っている。
【００３４】
メインメモリ１８のＣＭＹＫページ画像メモリ領域１８（４）は、内蔵メモリ１２に一時格納された各版のバンドをページ分格納している。
即ち、メインメモリ１８のＣＭＹＫページ画像メモリ領域１８（４）は、Ｃ、Ｍ、Ｙ、Ｋの各版ごとに、小バンド高さの領域で区切った複数の版ページ領域、例えば、Ａ４、600dpiとすると、その場合のページの高さは4720ラインであるから、１色、例えばＣのバンド領域は、小バンド高さの３７個の領域（Ｃ版バンド０〜３６領域）となる。
【００３５】
図４は、描画処理部１１のブロック図である。
描画処理部１１は、バスアービタＩ／Ｆ１１（１）と、本発明の転送手段に対応するコマンド＆バンドＤＭＡ１１（２）と、コマンド解析部１１（３）と、描画部１１（４）と、内蔵メモリ制御部１１（５）を備えている。
バスアービタＩ／Ｆ１１（１）は、図１のバスＩ／Ｆ８との入力Ｉ／Ｆである。
【００３６】
コマンド＆バンドＤＭＡ部１１（２）は、内蔵メモリ１２の描画ページコマンドメモリ領域１２ａに描画コマンドを転送した、内蔵メモリ１２のＣＭＹＫバンド（画像）メモリ領域１２ｂからバンド画像を転送する。
コマンド解析部１１（３）は、描画コマンドを読み込み、描画コマンドを解析し、描画部１１（４）にパラメータを転送し、起動させる。
描画終了後に次のコマンドを解析する。
描画部１１（４）は、コマンド解析部１１（３）から描画コマンドのパラメータを受け取り、内蔵メモリ１２（ＣＭＹＫバンドメモリ領域１２ｂ）へＣ、Ｍ、Ｙ、Ｋのうちの１つのプレーンのバンド画像を描画する。
内蔵メモリ制御部１１（５）は、コマンド解析部１１（３）とコマンド＆バンドＤＭＡ部１１（２）と描画部１１（４）から要求されて、内蔵メモリ１２のリード／ライトを制御する。
【００３７】
内蔵メモリ１２は、図３Ａに示すように１版のバンド画像（ＣＭＹＫバンドメモリ領域１２ｂ）と描画ページコマンド（描画ページコマンドメモリ領域１２ａ）を格納している。即ち、内蔵メモリ１２（ＣＭＹＫバンドメモリ領域１２ｂ）は、図３に示すように、例えば128ラインという低い高さ（600dpiのＡ４のページの高さは4720ラインである）のバンド画像を格納する。
【００３８】
図５は、各コマンドのフォーマットを例示する図であり、図５Ａ、５Ｂは描画ハードパラメータ設定コマンドを示し、図５Ｃ、５Ｄは描画コマンドを示す。図示のようにコマンドは、ここでは全て３２ビット幅である。
これらのコマンドフォーマットは、ＣＰＵ１でＰＤＬデータから変換して、図２に示すメインメモリ１８に格納される各コマンドのフォーマットである。このコマンドは、図４のコマンド解析部１１（３）で解析され、描画部１１（４）で描画される。
各コマンドは、図５Ａ、５Ｂに示す描画ハードパラメータ設定コマンドと、図５Ｃに示すグラフィックス描画コマンド、図５Ｄに示す写真画像描画コマンドとに分けることができる。
【００３９】
図５Ａ、５Ｂの描画ハードパラメータ設定コマンドは、各種の描画パラメータのパラメータを設定するコマンドである。図５Ａはバンド初期化コマンドであり、バンドの先頭アドレスとバンドの高さと幅を定義する。このバンド初期化コマンドはバンドを初期値の“白”に初期化する。
図５Ｂは、バンド終了コマンドであり、定義したバンドの描画の終了を意味する。なお、コマンド解析部１１（３）は、このバンド終了コマンドを受け取ると描画処理を終了する。
【００４０】
図５Ｃのグラフィックス描画コマンドは、グラフィックス描画を実行するためのコマンドであり、指定された四角形の左上の座標から右下の座標までの四角形を描画する。即ち、グラフィック描画用四角形描画コマンドヘッダに続き、ＣＭＹＫカラー値、左上Ｘ座標、左上Ｙ座標、右下Ｘ座標、右下Ｙ座標のそれぞれの座標値が指定されている。
図５Ｄの写真画像描画コマンドは、写真画像描画を実行するためのコマンドである。即ち、写真描画用写真描画コマンドヘッダに続き、写真リソースを取り込むためのソースアドレス、左上Ｘ座標、左上Ｙ座標、写真画像幅、写真画像高さが指定されている。
【００４１】
図６は、描画処理部１１で行われる描画処理の手順を示すフロー図である。
描画処理部１１では、まず、１ページの描画コマンドが内蔵メモリ１２の容量よりも大きいか否か判断する（Ｓ１０１）。大きいときは（Ｓ１０１、ＹＥＳ）、従来のようにバスを介してのコマンド転送が多発するため、ソフトウエアで描画を行うこととし（Ｓ１０２）、この処理を終了する。即ち、描画処理部１１は、１ページの描画コマンドが内蔵メモリ１２の容量よりも大きい場合は処理を禁止する。
１ページの描画コマンドが内蔵メモリ１２の容量以下であるときは（Ｓ１０１、ＮＯ）、内蔵メモリ１２の描画ページコマンドメモリ領域１２ａ以外の領域（つまり、残りの領域）をバンド幅（例えば３２bit）で割り小バンド高さを求める（Ｓ１０３）。
【００４２】
次に、バンドの先頭と終点のＹ座標を初期化（つまり、バンド先頭Ｙ座標＝０、バンド終点Ｙ座標＝０に）する（Ｓ１０４）。次に、メインメモリ１８の描画ページコマンドメモリ領域１８（２）にある描画ページコマンドを、内蔵メモリ１２の描画ページコマンドメモリ領域１２ａに転送する。この転送は、既に説明したように、図４に示すコマンド＆バンドＤＭＡ１１部（２）で行う。
次に、描画する内蔵メモリ１２（ＣＭＹＫバンドメモリ領域１２ｂ）のバンド先頭のＹ座標と終点Ｙ座標を更新する（バンド先頭Ｙ座標＝バンド終点Ｙ座標、バンド終点Ｙ座標＝バンド終点Ｙ座標＋小バンド高さに更新する）。
【００４３】
次に、処理する版番号を初期化（版番号＝０）する（例えば版番号＝０でＣ版、１でＭ版、２でＹ版、３でＫ版など）（Ｓ１０７）。次に、読み込みコマンドのアドレスを初期化する（Ｓ１０８）。次に、コマンドアドレスの示す描画ページコマンドを読み込み（Ｓ１０９）、コマンド解析部１１（３）でコマンドを解析し、描画するコマンドか否か判断する（Ｓ１１０）。ここで、描画するコマンドであれば（Ｓ１１０、ＹＥＳ）、描画コマンドによる描画がバンド先頭のＹ座標と終点のＹ座標の間で描画できるか否か判断する（Ｓ１１１）。ここで、描画できないものであるときは（Ｓ１１１、ＮＯ）、ステップＳ１０９へ戻り次のコマンドを読み込む。
ステップＳ１１１で描画できるものであるときは（Ｓ１１１、ＹＥＳ）、バンド先頭Ｙ座標とバンド終点Ｙ座礁の間でクリッピング処理を行う（描画コマンドをクリッピングしてバンドに入る部分のコマンドに変換する）（Ｓ１１２）。
【００４４】
次に、描画コマンドがグラフィック描画用四角形描画コマンドあるか否か判断し（Ｓ１１３）、四角形描画であるときは（Ｓ１１３、ＹＥＳ）、指定された版に四角形の描画を行う（Ｓ１１４）。
ステップＳ１１３で、四角形描画でないときは（Ｓ１１３、ＮＯ）、ソースアドレスに基づき、指定された版にメインメモリ１８の描画データメモリ領域１８（３）から写真画像のソース画像を読み込み、写真画像を描画する（Ｓ１１５）。ステップＳ１１４、Ｓ１１５終了後は、ステップＳ１０９に戻って、描画ページコマンドメモリ領域１２ａからコマンドを読み込むところからの処理を繰り返す。
【００４５】
描画データメモリ領域１８（３）をメインメモリ１８に設けたのは、この描画データは一般的に容量が大きいことと、描画データの読み込みに際して、描画コマンドで指定された領域のみ読み込むためである。つまり、読み込みに無駄がなく、描画処理部１１がバス１９を介してメインメモリ１８にアクセスしても、アクセス回数が少なく、バス１９の帯域を圧迫しないという理由による。
【００４６】
ステップＳ１１０において、描画するコマンドでないと判断したときは（Ｓ１１０、ＮＯ）、次に、当該コマンドが終了コマンドか否か判断する（Ｓ１１６）。終了コマンドでなければ（Ｓ１１６、ＮＯ）バンド情報設定コマンドと判断してバンド情報を設定し（Ｓ１１７）、図１の内蔵メモリ１２のＣＭＹＫバンドメモリ領域１２ｂを初期化する（Ｓ１１８）。ＣＭＹＫバンドメモリ領域１２ｂを初期化した後は、ステップＳ１０９に戻り、以降の処理を繰り返す。
【００４７】
ステップＳ１１６で、終了コマンドであれば（Ｓ１１６、ＹＥＳ）、内蔵メモリ１２のＣＭＹＫバンドメモリ領域１２ｂのバンド画像をメインメモリ１８のＣＭＹＫページ画像メモリ領域１８（４）に転送する（Ｓ１１９）。なお、この処理は、図４のコマンド＆バンドＤＭＡ部１１（２）で行う。
次に、版番号を確認し、最後の番号のプレーンか否か（つまり版番号＝３か否か）判断する（Ｓ１２０）。なお、ＣＭＹＫの場合は４プレーンで全てである。
【００４８】
ステップＳ１２０で、最後のプレーンでなければ（Ｓ１２０、ＮＯ）、版番号を１カウントアップして（版番号＝版番号＋１）（Ｓ１２２）、ステップＳ１０８に戻り、全ての版の全てのバンド画像を描画するまで処理を繰り返す。
ステップＳ１２０で版番号が最後の版番号（ここでは版番号＝３）であるときは（Ｓ１２０、ＹＥＳ）、ページ高さで描画するまで、ステップＳ１０６からの処理を繰り返し（Ｓ１２１、ＮＯ）、ページ高さで描画したときは（Ｓ１２１、ＹＥＳ）、この処理を終了する。
【００４９】
既に述べたように、従来、メモリコントローラを内蔵したＣＰＵでは、図７に示すように、バスを介してメインメモリにアクセスする場合、データをシリアルに転送することが効率的にみてよい。しかし、描画処理では、色々な部分に細かなランダムなアクセスが多く発生し、効率よくメモリへのアクセスが出来ない。そのために、描画処理に多くの時間を費やしたり、バスの転送レートを低下させて、他のハードウエアのメモリアクセスを邪魔することが起こる。また、ソフトウエアのみで描画する場合は、多くのメモリアクセスが必要であるので、高価なＣＰＵを使用せざるを得ない。
また、図８に示すようなＡＳＩＣが描画用のメモリを占有する方式では、専用のメモリを必要とするためコストアップになる。
【００５０】
そのために、本実施形態では、ＡＳＩＣ内に、図３に示す、例えば128ラインの高さの低い小バンド画像メモリを有して、描画データを小バンド画像で区切って描画するようにしている。また、バンドメモリ領域と描画コマンドを同じ内蔵メモリ１２に格納することで、画像により１ページ分の描画ページコマンドメモリ領域１２ａが異なっても、ＣＭＹＫバンドメモリ領域１２ｂの大きさを調整して対応できるようにしている。つまり、必ず１ページ分の描画コマンドを内蔵メモリに格納し、その余りの部分にちょうど入るサイズのバンドの高さのバンドメモリ領域を持つようにしている。
【００５１】
これにより、１ページ分の描画コマンドを何度も読み込み、何度も、例えば128ラインのような小さいバンド高さの描画を行い、生成されたバンド画像を順次メインメモリに転送していくことで、１ページ分のページ画像を生成するようにした。
即ち、１ページの描画コマンドを、600dpiで128ラインの小さいバンド高さの画像メモリに適用して描画処理する場合、既に述べたように、１ページ分の処理を行うのに３７回繰り返し読み込み及び解析を行うことになる。しかし、描画コマンドは、ＡＳＩＣに内蔵されたメモリに格納されているため、メモリアクセスが速くこの程度の読み込み回数は問題にならない。もちろん、バスを使用しないので、他のデバイスの邪魔にならないとの利点が得られる。
【００５２】
以上、本実施形態によれば、Ｃ、Ｍ、Ｙ、Ｋのうちの１つのカラープレーンのバンド画像と、1ページ分の描画コマンドを格納する小さいメモリをＡＳＩＣに内蔵することで、ランダムなメモリアクセスを内蔵のメモリで行い、メモリ容量を増大させることなく、高速な描画処理を実現することができる。
【００５３】
即ち、本実施形態によれば、Ｃ、Ｍ、Ｙ、Ｋのうちの１つのプレーンバンド画像と１ページ分の描画コマンドを格納する内蔵メモリをＡＳＩＣに有して、バスの転送レートを落とし、ＡＳＩＣ内部でページ単位の描画コマンドでバンド画像を描画する。また、描画したバンド画像を、バスを介してメインメモリに戻す時は、シリアルなアクセスで行うようにしたため、バスの転送レートを最大限に生かすことができる。
【符号の説明】
【００５４】
１・・・ＣＰＵ、２・・・ＣＰＵ＿Ｉ／Ｆ、３・・・メモリＡＲＢ、４・・・メモリコントローラ、５・・・ＤＭＡ、６・・・バスコントローラ、７・・・通信コントローラ、８・・・バスＩ／Ｆ、９・・・エンジンコントローラ、１０・・・画像読み込み部、１１・・・描画処理部、１１（１）・・・バスアービタＩ／Ｆ、１１（２）・・・コマンド＆バンドＤＭＡ部、１１（３）・・・コマンド解析部、１１（４）・・・描画部、１１（５）・・・内蔵メモリ制御部、１２・・・内蔵メモリ、１２ａ・・・描画ページコマンドメモリ領域、１２ｂ・・・ＣＭＹＫバンドメモリ領域、１４・・・バスＩ／Ｆ、１５・・・パネルコントローラ、１８・・・メインメモリ、２０・・・ＡＳＩＣ、２２・・・パネル、２３・・・ＰＣ、２５・・・プリンタエンジン。
【先行技術文献】
【特許文献】
【００５５】
【特許文献１】特開２００８−０２３９５９号公報
【特許文献２】特許第４８３３７７０号公報
【特許文献３】特開２００５−３０９８６５号公報
【図１】
2015013388.tif 000003
【図２】
2015013388.tif 000004
【図３】
2015013388.tif 000005
【図４】
2015013388.tif 000006
【図５】
2015013388.tif 000007
【図６】
2015013388.tif 000008
【図７】
2015013388.tif 000009
【図８】
2015013388.tif 000010
【図９】
2015013388.tif 000011