(57)【要約】【課題】中間コードから画素毎の画像データを生成して印刷を実行する印刷装置であって、画像データに適したバッファリングにより、画像データへのアクセスを高速化することのできる印刷装置を提供する。【解決手段】中間コードから画素毎の画像データを生成し当該画像データに基づいて印刷を実行する印刷装置が、前記生成される画像データを格納するＤＲＡＭであるデータ格納手段７と、前記中間コードから画像データを生成する処理を実行する制御手段１３と、ＳＲＡＭであるバッファを備え、前記制御手段がアクセスする前記データ格納手段に格納された画像データを前記バッファに読み込み、当該読み込んだ画像データに対して前記制御手段にアクセスさせるデータ保持手段１６とを有し、前記データ保持手段１６から前記データ格納手段７に対して一度にアクセスできるデータ容量が、前記制御手段１３から前記データ格納手段７に対して一度にアクセスできるデータ容量よりも大きい。【選択図】  図２
2005285074.tif 000002
【特許請求の範囲】
【請求項１】
中間コードから画素毎の画像データを生成し当該画像データに基づいて印刷を実行する印刷装置であって、
前記生成される画像データを格納するＤＲＡＭであるデータ格納手段と、
前記中間コードから画像データを生成する処理を実行する制御手段と、
ＳＲＡＭであるバッファを備え、前記制御手段がアクセスする前記データ格納手段に格納された画像データを前記バッファに読み込み、当該読み込んだ画像データに対して前記制御手段にアクセスさせるデータ保持手段と、を有し、
前記データ保持手段から前記データ格納手段に対して一度にアクセスできるデータ容量が、前記制御手段から前記データ格納手段に対して一度にアクセスできるデータ容量よりも大きい
ことを特徴とする印刷装置。
【請求項２】
請求項１において、
前記データ保持手段のバッファが２つのＳＲＡＭから構成されており、
前記制御手段がアクセスする前記データ格納手段に格納された画像データを前記バッファに読み込む際には、前記２つのＳＲＡＭのうちの、前記制御手段から最後にアクセスされたＳＲＡＭではない方に前記画像データを読み込む
ことを特徴とする印刷装置。
【請求項３】
請求項２において、
前記制御手段がアクセスするＳＲＡＭが、前記２つのＳＲＡＭのうちの一方から他の一方へ切り換わった場合には、切り換わる前に前記制御手段がアクセスしたＳＲＡＭに保持されているデータを前記データ格納手段に書き込む
ことを特徴とする印刷装置。
【請求項４】
請求項１乃至請求項３のいずれかにおいて、
前記制御手段がアクセスする前記データ格納手段に格納された画像データを前記バッファに読み込む際に、前記制御手段がアクセスする画像データを含む、当該画像データが前記データ格納手段で占める範囲よりも広い範囲の画像データを前記バッファに読み込む
ことを特徴とする印刷装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、中間コードから画素毎の画像データを生成して印刷を実行する印刷装置に関し、特に、前記画像データへのアクセスを高速化することのできる印刷装置に関する。
【背景技術】
【０００２】
一般に、プリンタでは、ホスト装置から送信される印刷データに基づいて印刷を行うが、印刷を実行するまでの間に、前記印刷データから中間コードを生成する処理、当該中間コードから画素毎の画像データに展開する処理、当該画像データの色変換を行って圧縮する処理、圧縮後のデータを解凍してドットのイメージにする処理等を行っている。そして、それらの処理の過程で生成される、中間コード、画像データ、圧縮後の画像データ等は、通常、プリンタ内のメモリに格納される。
【０００３】
このプリンタ内のメモリは、通常、ＤＲＡＭであり、前述した中間コードから画素毎の画像データに展開する処理は、ＣＰＵがこのＤＲＡＭに繰り返しアクセスして処理を行う。かかる処理は、ＣＰＵがＤＲＡＭから読み書き（リード、ライト）する画像データの容量が大きいことから、前述したプリンタにおける処理の中で最も時間を要する処理となっている。
【０００４】
一方、一般に、効率の良いメモリアクセスのため、ＤＲＡＭからのデータをバッファリングする技術等が、従来からいくつか提案されている（例えば、下記特許文献１に記載の装置など）。
【特許文献１】特開平５−２１０６２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述の通り、従来のプリンタでは、上記中間コードから画像データへの展開処理に時間がかかり、プリンタにおけるスループットの向上にとって一つのボトルネックとなっていた。従って、かかる処理に必要なＣＰＵからＤＲＡＭへのアクセスを高速化することが望まれている。
【０００６】
また、上記特許文献１に記載のバッファリングは、データの連続性を判断材料として、一度に大容量をアクセスする所謂バーストアクセス行うか否かを判断するが、上記プリンタにおける画像展開の処理においては、その殆どにデータ連続性があり、上記課題に適したバッファリング手法であるとはいえない。
【０００７】
そこで、本発明の目的は、中間コードから画素毎の画像データを生成して印刷を実行する印刷装置であって、画像データに適したバッファリングにより、画像データへのアクセスを高速化することのできる印刷装置を提供することである。
【課題を解決するための手段】
【０００８】
上記の目的を達成するために、本発明の一つの側面は、中間コードから画素毎の画像データを生成し当該画像データに基づいて印刷を実行する印刷装置が、前記生成される画像データを格納するＤＲＡＭであるデータ格納手段と、前記中間コードから画像データを生成する処理を実行する制御手段と、ＳＲＡＭであるバッファを備え、前記制御手段がアクセスする前記データ格納手段に格納された画像データを前記バッファに読み込み、当該読み込んだ画像データに対して前記制御手段にアクセスさせるデータ保持手段と、を有し、前記データ保持手段から前記データ格納手段に対して一度にアクセスできるデータ容量が、前記制御手段から前記データ格納手段に対して一度にアクセスできるデータ容量よりも大きいことである。従って、本発明によれば、制御手段が中間コードから画像データに展開する処理を行う際に必要となる、データ格納手段に格納された画像データへのアクセスが、高速のデータアクセスが可能であるデータ保持手段によって中継され、当該アクセスが高速に行われるようになる。
【０００９】
更に、上記の発明において、その好ましい態様は、前記データ保持手段のバッファが２つのＳＲＡＭから構成されており、前記制御手段がアクセスする前記データ格納手段に格納された画像データを前記バッファに読み込む際には、前記２つのＳＲＡＭのうちの、前記制御手段から最後にアクセスされたＳＲＡＭではない方に前記画像データを読み込むことを特徴とする。これにより、制御手段にアクセスされ更新されたバッファ内のデータをデータ格納手段に書き戻す処理を、次の制御手段からのアクセスの間に並行して行うことができ、処理時間をより短縮することができる。
【００１０】
更に、上記の発明において、好ましい態様は、前記制御手段がアクセスするＳＲＡＭが、前記２つのＳＲＡＭのうちの一方から他の一方へ切り換わった場合には、切り換わる前に前記制御手段がアクセスしたＳＲＡＭに保持されているデータを前記データ格納手段に書き込むことを特徴とする。
【００１１】
また、上記の発明において、好ましい態様は、前記制御手段がアクセスする前記データ格納手段に格納された画像データを前記バッファに読み込む際に、前記制御手段がアクセスする画像データを含む、当該画像データが前記データ格納手段で占める範囲よりも広い範囲の画像データを前記バッファに読み込むことを特徴とする。これにより、データ格納手段からバッファへデータを読み込む回数を減らすことができ、処理時間を更に短縮することができる。
【００１２】
本発明の更なる目的及び、特徴は、以下に説明する発明の実施の形態から明らかになる。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照して本発明の実施の形態例を説明する。しかしながら、かかる実施の形態例が、本発明の技術的範囲を限定するものではない。なお、図において、同一又は類似のものには同一の参照番号又は参照記号を付して説明する。
【００１４】
図１は、本発明を適用した印刷装置の実施の形態例に係る構成図である。図１のプリンタ２が、本実施の形態例に係る印刷装置であり、ホストコンピュータ１から送信される印刷データに基づいて印刷処理を実行するが、メモリ（ＤＲＡＭ）７（データ格納手段）とは別に描画バッファ（図１には図示せず）なるものを備え、メモリ７へのアクセスを高速に行おうとするものである。
【００１５】
図１に示すホストコンピュータ１は、プリンタ２に対して印刷要求を行うホスト装置である。ホストコンピュータ１内には印刷指示元のアプリケーション３と、その指示に基づいてプリンタ２に送信する印刷データを生成するプリンタドライバ４がある。
【００１６】
プリンタ２は、図１に示すような各部から構成される。なお、図１に示すプリンタ２は、概ね機能ブロックとし表現されている。まず、Ｉ／Ｆ部５は、前記ホストコンピュータ１から送信される印刷データを受信し、中間コードを生成する部分である。生成された中間コードは、メモリ（ＤＲＡＭ）７に保存される。
【００１７】
展開部６は、生成された中間コードから画素毎のデータである画像データを生成する部分である。この画像データは、Ｒ（レッド）Ｇ（グリーン）Ｂ（ブルー）の各濃度値のデータから構成され、以下、ＲＧＢデータと呼ぶこととする。生成されたＲＧＢデータは、メモリ（ＤＲＡＭ）７に保存される。この展開部６は、具体的には、後述するＣＰＵ１３（制御手段）、描画バッファ１６（データ保持手段）を含むＡＳＩＣ１７等で構成され、展開部６が処理を行う際のＲＧＢデータへのアクセスに本プリンタ２の特徴がある。
【００１８】
次に、色変換部８は、生成されたＲＧＢデータを印刷時に使用するＣ（シアン）Ｍ（マゼンダ）Ｙ（イエロー）Ｋ（ブラック）のデータに変換する部分であり、圧縮部９は、そのデータを圧縮してメモリ７に格納する部分である。また、解凍部１０、スクリーン処理部１１は、エンジン１２に同期して処理を実行する後段の処理部であり、所定のタイミングで前記圧縮されたＣＭＹＫデータをメモリ７から読み出し、順次、解凍処理、スクリーン処理を行って、処理後のデータをエンジン１２に引き渡す。エンジン１２は、スクリーン処理後のデータに基づいて、印刷媒体に対する印刷を実行する。
【００１９】
図２は、前記展開処理を司る部分のハードウェア構成図である。前述した中間コードから画像データ（ＲＧＢデータ）への展開処理は、ＣＰＵ１３が行う。また、前述の通り、当該展開処理に用いられる中間コードとＲＧＢデータは、メモリ（ＤＲＡＭ）７に格納される。また、ＣＰＵ１３とメモリ７をつなぐＡＳＩＣ１７には、ＣＰＵＩ／Ｆ部１４、メモリＩ／Ｆ部１５、及び描画バッファ１６が備えられる。ＣＰＵＩ／Ｆ部１４及びメモリＩ／Ｆ部１５は、それぞれ、ＣＰＵ１３がメモリ７にアクセスする際の、ＣＰＵ１３側、メモリ７側のインターフェースを司る部分である。また、描画バッファ１６は、ＣＰＵ１３が、メモリ７のＲＧＢデータの格納されている領域（以下、描画領域と呼ぶ）にアクセスする際のデータのバッファリングを行う部分であり、当該描画バッファ１６を有することが本プリンタ２の特徴である。
【００２０】
ＣＰＵ１３が、メモリ７の前記描画領域以外にアクセスする場合には、上記ＣＰＵＩ／Ｆ部１４及びメモリＩ／Ｆ部１５を経由した通常の方法で、データのリード、ライトが行われる。本ＣＰＵ１３は、一般的に流通しているアーキテクチャを有しており、ＤＲＡＭへのアクセスでは、最大４バーストアクセス（一度に３２バイトのアクセス）となっている。従って、ＣＰＵ１３からメモリ７へのアクセスは、４バーストアクセスとなる。
【００２１】
ＣＰＵ１３が中間コードからＲＧＢデータを生成する前記展開処理を行う際には、順次、メモリ７の中間コードを取り出して対応するＲＧＢデータを生成していくが、ＲＧＢデータの各画素の値は、一回の処理で最終的な値が確定するとは限らず、複数回の処理の結果確定する画素（領域）もある。従って、かかる展開処理をする際に、ＣＰＵ１３は、中間コードだけでなく処理対象の領域のＲＧＢデータもメモリ７からリードし、処理後のデータを再び、メモリ７の元の位置にライトするという処理を行う。
【００２２】
このように、前記展開処理では、ＣＰＵ１３からメモリ７の描画領域へのアクセスが行われることになるが、かかる描画領域へのアクセスの場合には、前記通常のアクセス方法とは異なり、前記描画バッファ１６を経由したアクセスが行われる。具体的なアクセス方法については後述するが、描画バッファ１６からメモリ７へのアクセスは、前記ＣＰＵ１３の制限がないので、４バースト以上のアクセス、例えば、８バーストアクセス、１６バーストアクセスが可能に設計されている。
【００２３】
図３は、本プリンタ２の特徴である描画バッファ１６の構成を示した図である。前述のように、描画バッファ１６は、ＣＰＵ１３がメモリ７の描画領域にアクセスする際に、当該描画領域に格納されているＲＧＢデータを適宜メモリ７からリードし、そのデータに対するＣＰＵ１３からのリード、ライトが行われた後に、再び、メモリ７へライトする処理を行う。そして、これらＣＰＵ１３及びメモリ７とのアクセスは、図２に示したとおり、メモリＩ／Ｆ部１５を経由して行われる。
【００２４】
図３に示すように、描画バッファ１６は、ＣＰＵ側制御部１８、メモリ側制御部１９、及び２つのデータバッファであるＳＲＡＭ（Ａ）２０とＳＲＡＭ（Ｂ）２１を備えている。ＣＰＵ側制御部１８は、ＣＰＵ１３とのタイミング調整とＳＲＡＭ（Ａ）２０及びＳＲＡＭ（Ｂ）２１の制御を行う部分であり、メモリ側制御部１９は、メモリ７へのアクセスとのタイミング調整を行う部分である。ＳＲＡＭ（Ａ）２０及びＳＲＡＭ（Ｂ）２１は、バッファ本体であり、メモリ７との前述したバーストアクセスに都合の良いサイズ、例えば、６４ビット×１６、６４ビット×３２等のバッファ容量を有している。このように、描画バッファ１６において、バッファとしてＳＲＡＭを採用していること、メモリ７との間で４バーストを超えるアクセスが可能であることが、メモリアクセスを高速化しようとする本プリンタ２の特徴である。
【００２５】
図４は、ＣＰＵ１３からメモリ７へのアクセスがあった際の処理手順を例示した図である。以下、図４に基づいて、本プリンタ２の特徴部分である描画バッファ１６を用いたＣＰＵ１３からメモリ７へのアクセスについて具体的に説明する。まず、ＣＰＵ１３からメモリ７へのアクセスリクエストがあると、当該リクエストを受け取ったメモリＩ／Ｆ部１５は、当該リクエストが前述した描画領域へのアクセスであるか否かをチェックする（ステップＳ１）。そして、描画領域へのアクセスでない場合には（ステップＳ１のＮｏ）、通常のアクセス方法にてメモリ７へのアクセスを実行する（ステップＳ２）。即ち、描画バッファ１６を経由しないでメモリ７に格納されているデータへのリード、ライトを行う。
【００２６】
一方、描画領域へのアクセスである場合には（ステップＳ１のＹｅｓ）、当該アクセスリクエスト、アクセス先のアドレス等が描画バッファ１６に渡され、当該リクエストによりアクセスする領域のデータが、描画バッファ１６内に存在しているか否かがチェックされる（ステップＳ３）。なお、描画領域は、メモリ（ＤＲＡＭ）７の所定の位置に確保されており、そのアドレスは固定である。
【００２７】
かかる判断において、アクセスする領域が描画バッファ１６内に存在していなかった場合には（ステップＳ３のＮｏ）、当該領域のデータ（ＲＧＢデータ）をメモリ７から描画バッファ１６へ読み込む（ステップＳ４）。この際、二つあるＳＲＡＭのうち、前回使われたＳＲＡＭではない方のＳＲＡＭへ当該領域のデータが読み込まれる。また、読み込むデータは、当該リクエストのあった領域だけでなく、当該領域を含むＳＲＡＭの容量分のデータを読み込む。例えば、当該領域の先頭のアドレスからＳＲＡＭの容量分のデータを読み込む。
【００２８】
一方、アクセスする領域が描画バッファ１６内に存在する場合には（ステップＳ３のＹｅｓ）、上記メモリ７からのデータのリードは行わない。
【００２９】
その後、上記いずれの場合にも、アクセスする領域のデータが描画バッファ１６内に存在する状態となったので、当該アクセスが当該領域へのリードであるかライトであるかを判断する（ステップＳ５）。そして、当該アクセスがライトである場合には、当該リクエスト内容に従って、描画バッファ１６が有する当該領域のデータにライトの処理を行う（ステップＳ６）。即ち、当該領域のデータを中間コードの解釈結果に基づいて更新する。一方、当該アクセスがリードである場合には、当該リクエスト内容に従って、描画バッファ１６が有する当該領域のデータにリードの処理を行う（ステップＳ７）。即ち、当該領域のデータを、ＣＰＵ１３における前記展開処理に用いるためＣＰＵ１３へ引き渡す。
【００３０】
また、かかるリードあるいはライトの処理の間に並行して、今回のリードあるいはライトの処理によって使用されるＳＲＡＭが切り換ったか否かが判断され（ステップＳ８）、切り換った場合には（ステップＳ８のＹｅｓ）、今回使用されるＳＲＡＭでない方のＳＲＡＭのデータをメモリ７にライトする（ステップＳ９）。即ち、前回ＳＲＡＭ（Ａ）２０に対してリードあるいはライトの処理があり、今回ＳＲＡＭ（Ｂ）２１に対してリードあるいはライトの処理がある場合には、ＳＲＡＭ（Ａ）２０に格納されているデータをメモリ７の当該データの位置に書き戻す。従って、アクセスする領域が描画バッファ１６内に存在せず当該領域を含むデータをＳＲＡＭに読み込んだ場合（ステップＳ４）にも、当然に使用するＳＲＡＭが切り換わるので、前回使用されたＳＲＡＭのデータが書き戻される。一方、使用されるＳＲＡＭが切り換らなかった場合には（ステップＳ８のＮｏ）、上記データの書き戻しは行わない。
【００３１】
このように、ＣＰＵ１３からメモリ７への一つのアクセスリクエストが処理されると、次のメモリ７へのアクセスリクエストがあるか否かが判断され（ステップＳ１０）、リクエストがある場合には（ステップＳ１０のＹｅｓ）、前記ステップＳ１からの処理が繰り返し行われる。そして、リクエストがなくなりＣＰＵ１３における前記展開処理が終了すれば（ステップＳ１０のＮｏ）、前回使用したＳＲＡＭのデータをメモリ７の所定の位置に書き戻して（ステップＳ１１）一連の処理を終了する。ここで、前回使用したＳＲＡＭとは、当該一連の処理において最後に使用されたＳＲＡＭのことを意味する。
【００３２】
図５は、描画バッファ１６を用いたメモリアクセスを具体的に説明するための図である。以下、図５を用いて、図４に基づいて説明した処理の一つの具体例を説明する。図に示すように、メモリ７には、中間コード、ＲＧＢデータ等が格納されており、ＲＧＢデータが格納されている描画領域のｘで示す領域に対してＣＰＵ１３からアクセスがあったとする。この段階で、描画バッファ１６の２つのＳＲＡＭ（Ａ）２０及びＳＲＡＭ（Ｂ）２１には、ｘの領域のデータが格納されていないものとすると、例えば、ＳＲＡＭ（Ａ）２０にｘの領域を含むＳＲＡＭ（Ａ）２０の容量に相当するＸで示すデータが読み込まれる（図５の（１））。そして、ＳＲＡＭ（Ａ）２０内のｘのデータに対してＣＰＵ１３からのライトの処理が行われる（図５の（２））。
【００３３】
その後、ＣＰＵ１３から次のアクセスリクエストがあり、それが描画領域のｙで示す領域に対するものであり、その領域のデータがＳＲＡＭ（Ｂ）２１に存在しないとすると、ｙの領域を含むＹで示すデータが、前回の処理（（２））で使われなかったＳＲＡＭ（Ｂ）に読み込まれる（図５の(３)）。そして、ＳＲＡＭ（Ｂ）２１内のｙのデータに対してＣＰＵ１３からのライトの処理が行われる（図５の（４））。これと並行して、使用するＳＲＡＭが、ＳＲＡＭ（Ａ）２０からＳＲＡＭ（Ｂ）２１に切り換るので、前回使用したＳＲＡＭ（Ａ）２０のデータがメモリ７に書き戻される（図５の（５））。
【００３４】
その後、ＳＲＡＭ（Ａ）２０に格納されている領域に対するＣＰＵ１３からのアクセスがあったとすると、ＳＲＡＭへのメモリ７からのデータ読み込みは行われず、ＳＲＡＭ（Ａ）２０に格納されている領域に対してＣＰＵ１３からのライトの処理が行われる（図５の（６））。そして、今回も使用するＳＲＡＭが、ＳＲＡＭ（Ｂ）２１からＳＲＡＭ（Ａ）２０に切り換るので、前回使用したＳＲＡＭ（Ｂ）２１のデータがメモリ７に書き戻される（図５の（７））。
【００３５】
このように、本プリンタ２では、描画バッファ１６に備える２つのＳＲＡＭを切り換えて使用し、ＣＰＵ１３からのライトあるいはリードが片方のＳＲＡＭになされている間に、もう片方のＳＲＡＭの更新されたデータがメモリ７に書き戻される。
【００３６】
以上説明したように、本プリンタ２では、描画バッファ１６を設け、描画領域へのアクセスがあった場合に、本描画バッファ１６によるバッファリングが行われる。そして、当該バッファとメモリ７の間が、ＣＰＵ１３とメモリ７間の制限である４バーストを超える数のバーストでアクセス可能であり、また、描画バッファ１６のバッファがＳＲＡＭであることから、従来の、バッファリングを行わない場合よりも高速なアクセスが可能になる。図６は、メモリアクセスに要する時間を例示したタイムチャートである。図に示す例は、ＣＰＵ１３が３２バイト×４のデータをメモリ（ＤＲＡＭ）７からリードする場合にかかる時間を示しており、図６の（ａ）は、描画バッファ１６を使用しない従来の方法で行った場合を示し、図６の（ｂ）は、描画バッファ１６を用いた本プリンタ２の方法で行った場合を示している。
【００３７】
まず、図６の（ａ）の場合には、ＣＰＵ１３からメモリ７へのアクセスとなるので、前述したように、ＣＰＵ１３の制限から最大４バーストアクセスとなり、３２バイト×４のデータを４回に分けてリードすることになる。また、４バーストのデータをリードすること自体に４ｃｌｋ（クロック）を要するとすると、読む先がＤＲＡＭであることから、その前後にアドレス情報等の読み出しとして９ｃｌｋ程度の時間を要し、図に示すように、３２バイトのデータを１回リードするのに１３ｃｌｋを要することとなる（図のＲ１）。      
【００３８】
従って、この場合には、３２バイト×４のデータをリードするのに、１３ｃｌｋ×４（５２ｃｌｋ）を要することになる（図のＲ１〜Ｒ４）。
【００３９】
一方、図６の（ｂ）に示す本プリンタ２の場合には、まず、３２バイト×４のデータをメモリ７から描画バッファ１６（ＳＲＡＭ（Ａ）２０、ＳＲＡＭ（Ｂ）２１）に読み込むが、前述のように、この間のアクセスは例えば１６バーストアクセスが可能であるので、３２バイト×４のデータを１回でリードすることになる。この場合、やはりメモリ７がＤＲＡＭであることから、実際のデータリードのほかに９ｃｌｋ程度の時間を要するので、この描画バッファ１６への読み込みに要する時間は、４ｃｌｋ×４＋９＝２５ｃｌｋとなる（図のＲ０）。その後、描画バッファ１６に読み込まれたデータをＣＰＵ１３がリードするが、ここでは、ＣＰＵ１３の前記制限により、４バーストずつ４回のリードが行われる。しかし、リードする先がＳＲＡＭであるので、ＤＲＡＭから読む場合よりも時間がかからず、４バーストを読むのに要する全体の時間は５ｃｌｋ程度となる（図６の（ｂ）のＲ１）。従って、メモリ１３への４回のリードに要する時間は、５ｃｌｋ×４＝２０ｃｌｋとなり（図６の（ｂ）のＲ１〜Ｒ４）、３２バイト×４のデータをメモリ７からＣＰＵ１３に読み込むまでに要する全体の時間は、２５ｃｌｋ＋２０ｃｌｋ＝４５ｃｌｋとなる。
【００４０】
従って、本プリンタ２における描画バッファ１６を用いた方法により、ＣＰＵ１３からメモリ７へのアクセスに要する時間が短縮されることになる。
【００４１】
以上説明したように、本実施の形態例に係るプリンタ２では、中間コードを展開した画像データを格納するメモリ７とは別に描画バッファ１６が設けられ、ＣＰＵ１３から前記画像データへのアクセスにおいては、当該描画バッファ１６を経由してデータのリード、ライトが行われる。また、当該描画バッファ１６とメモリ７との間では１回のアクセスで扱えるデータ容量がＣＰＵ１３とメモリ７との間よりも大きく設計され、描画バッファ１６のバッファ自体はＳＲＡＭで構成される。
【００４２】
従って、データ量の多い前記画像データにアクセスする際に要する時間を、前述の通り短縮することができ、プリンタの処理において一つのボトルネックとなっていた前記展開処理の高速化を図ることができる。
【００４３】
また、描画バッファ１６は２つのＳＲＡＭを備えており、それらを切り換えて使用することによって、ＣＰＵ１３からのアクセスとメモリ７への書き戻しを並行して実行でき、さらに処理の高速化を図ることができる。また、ＣＰＵ１３のアクセス先のデータよりも広い範囲のデータを描画バッファ１６に読み込むため、メモリ７から描画バッファ１６へのデータの読み込み回数を減らすことができ、これによっても処理が高速化される。更に、当該描画バッファ１６がＡＳＩＣ１７に一体に組み込まれ、その動作がＡＳＩＣ１７内で閉じているので、ＣＰＵ１３からは、描画バッファ１６が用いられる場合にも通常のメモリアクセスと同等の扱いとなる。
【００４４】
本発明の保護範囲は、上記の実施の形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶものである。
【図面の簡単な説明】
【００４５】
【図１】本発明を適用した印刷装置の実施の形態例に係る構成図である。
【図２】展開処理を司る部分のハードウェア構成図である。
【図３】描画バッファ１６の構成を示した図である。
【図４】ＣＰＵ１３からメモリ７へのアクセスがあった際の処理手順を示した図である。
【図５】描画バッファ１６を用いたメモリアクセスを具体的に説明するための図である。
【図６】メモリアクセスに要する時間を例示したタイムチャートである。
【符号の説明】
【００４６】
１  ホストコンピュータ、  ２  プリンタ、  ３  アプリケーション、  ４  プリンタドライバ、  ５  Ｉ／Ｆ部、  ６  展開部、  ７  メモリ（データ格納手段）、  ８  色変換部、  ９  圧縮部、  １０  解凍部、  １１  スクリーン処理部、  １２  エンジン、  １３  ＣＰＵ（制御手段）、  １４  ＣＰＵＩ／Ｆ部、  １５  メモリＩ／Ｆ部、  １６  描画バッファ（データ保持手段）、  １７  ＡＳＩＣ、  １８  ＣＰＵ側制御部、  １９  メモリ側制御部、  ２０  ＳＲＡＭ（Ａ）、  ２１  ＳＲＡＭ（Ｂ）
【図１】
2005285074.tif 000003
【図２】
2005285074.tif 000004
【図３】
2005285074.tif 000005
【図４】
2005285074.tif 000006
【図５】
2005285074.tif 000007
【図６】
2005285074.tif 000008