(57)【要約】【課題】複数の処理を行う場合でも、処理の高速化を図る画像処理装置を提供する。【解決手段】ホストコンピュータ１からの中間コード（基本コード）がＳＤＲＡＭ２２４の基本コード領域２２４Ａに格納される。制御部３１の制御により、基本コードは基本コードバッファ３０２に、共通データは共通データバッファ３０４に、そして印刷データは印刷データリードバッファ３０３に格納される。中間コードの制御コードに基づいて制御部３１は、各バッファ３０２〜３０４から適宜画像データを読出しＲＯＰ演算部３３にて演算処理を行わせる。印刷データは印刷データ領域２２４Ｃ（バンドメモリ）に展開され、このデータに基づいてその後の印刷処理が行われる。【選択図】図２
2005165720.tif 000002
【特許請求の範囲】
【請求項１】
画像データを含むデータを記憶する記憶手段と、
前記記憶手段から読み出された前記データから印刷データを作成する印刷データ作成手段と、
前記印刷データ作成手段に対して印刷データを作成する制御命令を出力する第１の制御部と、を備え、
前記印刷データ作成手段には、前記記憶手段に記憶されたデータの種別に応じて前記データを一時記憶する複数のバッファと、前記複数のバッファに記憶されたデータに基づいて演算を行うことで前記印刷データを生成する演算手段と、前記第１の制御部からの制御命令に基づいて前記記憶手段に記憶された前記データを前記各バッファに記憶させ、前記演算手段から出力された前記印刷データを前記記憶手段に記憶させる第２の制御部と、
を備えることを特徴とする画像処理装置。
【請求項２】
請求項１記載の画像処理装置において、
前記複数のバッファには、前記データのうち中間コードが記憶される中間コードバッファを含み、前記中間コードに基づいて前記印刷データは前記記憶手段に記憶される、ことを特徴とする画像処理装置。
【請求項３】
請求項２記載の画像処理装置において、
前記第２の制御手段は、前記中間コードバッファに記憶された中間コードのうち前記画像データに対する演算コードに基づいて、前記中間コードバッファから読み出された中間コードのうち前記画像データから前記印刷データが生成されるよう前記演算手段を制御する、ことを特徴とする画像処理装置。
【請求項４】
請求項２記載の画像処理装置において、
前記第２の制御手段は、前記記憶手段に記憶された前記中間コードを最後まで連続して前記中間コードを前記中間コードバッファに記憶させる、ことを特徴とする画像処理装置。
【請求項５】
請求項２記載の画像処理装置において、
前記複数のバッファには、前記印刷データが記憶される印刷データリードバッファを含み、前記第２の制御手段は、前記中間コードバッファから読み出された前記画像データと前記印刷データリードバッファから読み出された前記印刷データとで再び前記印刷データが生成されるよう前記演算手段を制御する、ことを特徴とする画像処理装置。
【請求項６】
請求項２記載の画像処理装置において、
前記複数のバッファには、前記データのうち文字データを含む共通データが記憶される共通データリードバッファを含み、前記共通データリードバッファから読み出された共通データと前記中間コードバッファから読み出された前記中間コードのうちの前記画像データとで前記印刷データが生成されるよう前記演算手段を制御する、ことを特徴とする画像処理装置。
【請求項７】
請求項６記載の画像処理装置において、
前記印刷データ作成手段は、前記共通リードバッファから読み出された共通データを記憶する共通データ記憶手段を有し、前記記憶手段から再び前記共通データを読み出すときは前記共通データ記憶手段から前記共通データを読み出して前記演算手段に出力する、ことを特徴とする画像処理装置。
【請求項８】
請求項１記載の画像処理装置において、
前記複数のバッファには、前記演算手段から出力される印刷データを格納する印刷データライトバッファを含み、当該印刷データライトバッファから前記印刷データが読み出されて前記記憶手段に記憶される、ことを特徴とする画像処理装置。
【請求項９】
第１の制御手段からの制御命令に基づいて記憶手段に記憶されたデータを読み出し印刷データを生成する画像処理装置において、
前記記憶手段に記憶されたデータの種別に応じて前記データを記憶する複数のバッファと、
前記複数のバッファに記憶された各データに基づいて演算を行うことで前記印刷データを作成する演算手段と、
前記第１の制御部からの制御命令に基づいて前記記憶手段に記憶された前記データを前記各バッファに記憶させ、前記演算手段から出力された前記印刷データを前記記憶手段に記憶させる第２の制御部と、
を備えることを特徴とする印刷データ生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタなどの画像処理装置に関する。詳しくは、メモリに格納された中間コードに対するＤＭＡ（ダイレクトメモリアクセス）制御により、印刷のための印刷データを生成する画像処理装置に関する。
【背景技術】
【０００２】
従来から、カラープリンタ等の画像処理装置は、ホスト側から入力されたＲＧＢ（レッド、グリーン、ブルー）画像データをバンドメモリに展開して印刷媒体上の位置等を決定し、その後ＣＭＹＫ（シアン、マゼンダ、イエロー、ブラック）の画像データに変換する色変換処理や、濃淡画像の中間階調を表現するためにハーフトーン処理が行われ、印刷媒体上にホスト側で作成した画像が形成される。
【０００３】
ここでＲＧＢの画像データのバンドメモリへの展開は、中間コードに基づいて行われる。すなわち、中間コードには画像の種別（イメージ、グラフィックス、文字など）に応じてバンドメモリ上での位置座標等が表現されており、画像データはこの中間コードに基づいてバンドメモリに展開される。その際に複数のオブジェクト画像（画像の種別ごとの１つ１つの画像）が重なり合っているときには、バンドメモリにＲＧＢ画像データを展開しつつＲＯＰ（Raster OPeration）と呼ばれる演算処理を行うことで、例えばイメージ画像が背景であるときグラフィックス画像を上書きするような印刷データを生成していた（例えば特許文献１）。
【０００４】
一方、ＲＯＰ演算を含めた色変換処理やハーフトーン処理は、かかる処理を実行するためのプログラムを画像処理装置内のＣＰＵで読み出し実行するようにしていた。
【特許文献１】特開２００２−２４８４０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、すべてソフトウェアとして以上のような処理をＣＰＵで実行すると、例えば色変換処理の最中にＲＯＰ演算を行う必要があるとき、色変換処理が終了した後でなければＲＯＰ演算を行うことができない。また、データ量自体が大きくなると処理に時間がかかり、他の処理が実行されず、待ち状態となる。このように、ソフトウェアですべて処理するとすると、処理に時間がかかることがあり、印刷までの開始時間が遅くなってしまう。
【０００６】
そこで、複数の処理を行う場合でも、処理の高速化を図る画像処理装置を提供することを目的とするものである。
【課題を解決するための手段】
【０００７】
上記目的を達成するために本発明は、画像データを含むデータを記憶する記憶手段と、記憶手段から読み出されたデータから印刷データを作成する印刷データ作成手段と、印刷データ作成手段に対して印刷データを作成する制御命令を出力する第１の制御部とを備え、印刷データ作成手段には、記憶手段に記憶されたデータの種別に応じてデータを一時記憶する複数のバッファと、複数のバッファに記憶されたデータに基づいて演算を行うことで印刷データを生成する演算手段と、第１の制御部からの制御命令に基づいて記憶手段に記憶されたデータを各バッファに記憶させ、演算手段から出力された印刷データを記憶手段に記憶させる第２の制御部と、  を備えることを特徴としている。これにより、例えば、印刷データを作成するための構成をハードウェアとして構成し、第１の制御部からの命令だけで印刷データが作成されるため、他の処理を含めた全体の処理の高速化を図ることができる。さらに、複数のバッファを備えているのでバッファへの書き込みや読出しのための処理時間を少なくして同様に処理の高速化を図ることができる。
【０００８】
また、本発明は上記画像処理装置において、前記複数のバッファには、データのうち中間コードが記憶される中間コードバッファを含み、中間コードに基づいて印刷データは記憶手段に記憶されることを特徴としている。これにより、例えば、中間コードのバッファへの書き込みや読出しには専用のバッファが設けられているので、他のデータの書き込みや読出しがあったとしても中間コードの書き込み等が妨げられることなく行うことができる。
【０００９】
さらに、本発明は上記画像処理装置において、上記第２の制御手段は、中間コードバッファに記憶された中間コードのうち画像データに対する演算コードに基づいて、中間コードバッファから読み出された中間コードのうち画像データから印刷データが生成されるよう演算手段を制御することを特徴としている。これにより、中間コードの記述に基づいて印刷データが生成される。
【００１０】
さらに、本発明は上記画像処理装置において、上記第２の制御手段は、記憶手段に記憶された中間コードを最後まで連続して前記中間コードを前記中間コードバッファに記憶させることを特徴としている。これにより、例えば、データが記憶された記憶手段とのアクセス効率が高まり他のデータの読出し等によりかかる処理が妨げられることがなくなる。
【００１１】
さらに、本発明は上記画像処理装置において、上記複数のバッファには、印刷データが記憶される印刷データリードバッファを含み、第２の制御手段は、中間コードバッファから読み出された画像データと印刷データリードバッファから読み出された印刷データとで再び印刷データが生成されるよう演算手段を制御することを特徴としている。これにより、例えば、イメージ画像に上書きしてグラフィックス画像が構成される印刷データを生成することができる。
【００１２】
さらに、本発明は上記画像処理装置において、上記複数のバッファには、データのうち文字データを含む共通データが記憶される共通データリードバッファを含み、共通データリードバッファから読み出された共通データと中間コードバッファから読み出された中間コードのうちの画像データとで印刷データが生成されるよう演算手段を制御することを特徴としている。これにより、例えば、イメージ画像の上に文字が上書きされた印刷データを生成することができる。
【００１３】
さらに、本発明は上記画像処理装置において、上記印刷データ作成手段は、共通リードバッファから読み出された共通データを記憶する共通データ記憶手段を有し、記憶手段から再び共通データを読み出すときは共通データ記憶手段から共通データを読み出して演算手段に出力することを特徴としている。これにより、例えば、以前記憶手段から読み出した文字と同じ文字を読み出すとき、記憶手段からではなく共通データ記憶手段から読み出せばよいので記憶手段とのアクセス効率が高まり、処理の高速化を図ることができる。
【００１４】
さらに、本発明は上記画像処理装置において、上記複数のバッファには、演算手段から出力される印刷データを格納する印刷データライトバッファを含み、印刷データライトバッファから印刷データが読み出されて記憶手段に記憶されることを特徴としている。これにより、例えば、バッファ前後の転送速度の相違を吸収して効率的に印刷データを記憶手段に記憶することができる。
【００１５】
また、上記目的を達成するために本発明は、第１の制御手段からの制御命令に基づいて記憶手段に記憶されたデータを読み出し印刷データを生成する画像処理装置において、記憶手段に記憶されたデータの種別に応じて各データを記憶する複数のバッファと、複数のバッファに記憶された各データに基づいて演算を行うことで印刷データを作成する演算手段と、第１の制御部からの制御命令に基づいて記憶手段に記憶されたデータを各バッファに記憶させ、演算手段から出力された印刷データを記憶手段に記憶させる第２の制御部と、を備えることを特徴としている。これにより、例えば、第１の制御部からの制御命令だけで印刷データが作成されるため、第１の制御部で行われる他の処理が待たされることなく処理が行われ、全体の処理の高速化を図ることができる。さらに、データの種別に応じて複数のバッファを備えているため、印刷データ生成装置自体も処理の高速化を図ることができる。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照して本発明を実施するための最良の形態を説明する。図１は、本発明が適用される印刷装置２の全体構成を示す図である。図１に示すように印刷装置２は、コントローラ２２と印刷エンジン２３とから構成される。
【００１７】
コントローラ２２は、ホストコンピュータ１及び印刷エンジン２３に接続される。コントローラ２２は、ホストコンピュータ１から出力されるＲＧＢ画像データが入力され、ＲＯＰの演算処理やＣＭＹＫ画像データに変換する色変換処理、濃淡画像の中間階調を表現した再生画像データを生成するハーフトーン処理、さらに再生画像データからドットごとのパルス幅を示すパルス幅変調処理などの各種処理を行う。
【００１８】
生成されたデータは印刷エンジン２３に出力され、印刷エンジン２３において印刷媒体にホストコンピュータ１で生成した画像が形成される。すなわち、印刷エンジン２３において、コントローラ２２から出力されたデータに基づいてレーザダイオードから感光体ドラムにドットごとのレーザ光を照射して潜像を形成し、ＣＭＹＫの各色が収容されたトナーがドラムに付着することで現像が行われ、転写ベルトやローラ等を介して印刷媒体に画像が形成される。
【００１９】
コントローラ２２は、図１に示すようにＣＰＵ２２０と、ＣＰＵインターフェース（Ｉ／Ｆ）２２１と、外部インターフェース（Ｉ／Ｆ）２２２と、ＳＤＲＡＭコントローラ２２３と、ＳＤＲＡＭ２２４と、印刷データ生成部２２５、及びビデオインターフェース（Ｉ／Ｆ）２２６とから構成される。なお、このうちＣＰＵＩ／Ｆ２２１と、外部Ｉ／Ｆ２２２と、ＳＤＲＡＭコントローラ２２３と、ＳＤＲＡＭ２２４、及び印刷データ生成部２２５で描画用のＡＳＩＣ（Application Specific Integrated Circuit）が構成される。
【００２０】
ＣＰＵ２２０は、コントローラ２２全体を制御するためのものである。ＣＰＵ  Ｉ／Ｆ２２１は、ＣＰＵ２２０に接続されるとともに、外部Ｉ／Ｆ２２２、ＳＤＲＡＭコントローラ２２３、印刷データ生成部２２５、及びビデオＩ／Ｆ２２６に接続される。ＣＰＵ  Ｉ／Ｆ２２１は、ＣＰＵ２２０からの各種制御命令を受け取り、外部Ｉ／Ｆ２２２、ＳＤＲＡＭコントローラ２２３、印刷データ生成部２２５、及びビデオＩ／Ｆ２２６に制御命令を出力する。これにより外部Ｉ／Ｆ２２２等で各種処理が実行される。
【００２１】
外部Ｉ／Ｆ２２２は、ホストコンピュータ１と接続され、所定の伝送フォーマットで伝送された画像データが入力される。外部Ｉ／Ｆ２２２は、ＣＰＵ  Ｉ／Ｆ２２１からの制御命令に基づいて伝送された画像データをコントローラ２２内部で処理できるデータに変換する。ここで、ホストコンピュータ１からは中間コードと呼ばれるデータが入力され、この中間コードにかかる画像データが含まれている。外部Ｉ／Ｆ２２２は、ＣＰＵ  Ｉ／Ｆ２２１からの制御命令に基づいて外部Ｉ／Ｆ２２２からＳＤＲＡＭコントローラ２２３に対し画像データを含む中間コードを出力する。中間コードの詳細は後述する。
【００２２】
ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）コントローラ２２３は、ＳＤＲＡＭ２２５と接続され、ＣＰＵ  Ｉ／Ｆ２２１からの制御命令に基づいて外部Ｉ／Ｆ２２２からの画像データを含む中間コードをＳＤＲＡＭ２２４の所定領域にかかる格納させる。また、ＳＤＲＡＭコントローラ２２３は印刷データ生成部２２５からの制御命令により、ＳＤＲＡＭ２２４に格納された画像データを含む中間コードを読み出して印刷データ生成部２２５に出力する。
【００２３】
ＳＤＲＡＭ２２４は、印刷のための種々のデータを記憶するためのメモリである。図２の左側にその一例を示す。この図に示すようにＳＤＲＡＭ２２４は、中間コードが記憶される領域（以下、基本コード領域）２２４Ａと、共通データが格納される共通データ領域２２４Ｂ、及び印刷データが格納される印刷データ領域２２４Ｃの３つの領域を有する。共通データとは、ホストコンピュータ１で生成されるオブジェクト画像が文字であるとき、その文字自体のデータのことをいう。共通データ領域２２４Ｂには予め文字のデータそのものが記憶されており、かかる領域２２４Ｂから文字のデータを読み出すことで、バンドメモリに文字のデータが展開される。そして、中間コードには、読み出すべき文字のメモリ番号（アドレス番号）が記述され、この番号に基づいて共通データ領域２２４Ｂから文字が読み出されるのである。印刷データ領域２２４Ｃとはいわゆるバンドメモリのことで、この領域２２４Ｃに格納された印刷データに基づいて印刷が行われる。印刷データ領域２２４Ｃは、メモリ容量を削減するため、印刷画像を複数のバンド幅に区切り、かかる幅分のデータを蓄積できる量の領域を有している。
【００２４】
図１に戻り、印刷データ生成部２２５は、ＣＰＵ  Ｉ／Ｆ２２１の制御命令に基づいてＲＯＰの演算を行うことにより印刷データを生成する。すなわち、コントローラ２２のＣＰＵ２２０は、ＣＰＵ  Ｉ／Ｆ２２１を介して印刷データ生成部２２５に対して印刷データ生成のための制御命令を出力し、これを受けた印刷データ生成部２２５は、ＳＤＲＡＭコントローラ２２３に対して基本コードや共通データ、さらに印刷データを読み出すための各制御命令を必要に応じて出力する。ＳＤＲＡＭコントローラ２２３は、この印刷データ生成部２２５からの読出し命令に基づいて、ＳＤＲＡＭ２２４の所定領域にアクセスし、基本コード領域２２４Ａに格納された基本コードや、共通データ領域２２４Ｂに格納された共通データ、さらに印刷データ領域２２４Ｃに格納された印刷データを読み出して印刷データ生成部２２５に出力する。そして、印刷データ生成部２２５は、読み出されたこれらのデータに基づいてＲＯＰ演算の処理を行い印刷データが生成される。印刷データ生成部２２５はＳＤＲＡＭコントローラ２２３に対して演算後の印刷データをＳＤＲＡＭ２２４の印刷データ領域２２４Ｃに格納するよう制御命令を出力し、ＳＤＲＡＭコントローラ２２３の制御により印刷データ領域２２４Ｃに印刷データが格納される。印刷データ領域２２４Ｃに格納された印刷データは、ＲＯＰ演算のたびに読み出され印刷データ生成部２２５で演算処理が行われることになる。印刷データ生成部２５５の詳細は後述する。
【００２５】
ビデオＩ／Ｆ２２６は、ＣＰＵ  Ｉ／Ｆ２２１からの制御命令により、ＳＤＲＡＭ２２４の印刷データ領域２２４Ｃに格納された印刷データを読み出して、ＣＭＹＫの画像データに変換する色変換処理や、濃淡画像の中間階調を表現した再生画像データを生成するハーフトーン処理が行われる。また、この再生画像データからドットごとにパルス幅を示す駆動データ又はドットごとにパルス有り無しを示す駆動データを生成するパルス幅変調処理も行う。生成された駆動データは印刷エンジン２３に出力される。この駆動データに基づいて印刷エンジン２３において上述した印刷媒体への画像が形成されることになる。
【００２６】
図２は、印刷データ生成部２２５の具体的構成の例を示す。図２の左側は上述したＳＤＲＡＭ２２４の具体的構成の一例である。印刷データ生成部２２５は、図２に示すようにＤＭＡ制御部３０と、制御部３１と、ＳＲＡＭ（Static Random Access Memory）３２と、ＲＯＰ演算部３３、及びインターフェース（Ｉ／Ｆ）３４とから構成される。
【００２７】
ＤＭＡ制御部３０は、制御部３１とＳＲＡＭ３２、及びＲＯＰ演算部３３と接続されるともに、ＳＤＲＡＭコントローラ２２３を介してＳＤＲＡＭ２２４に接続される。制御部３１の制御命令によりＳＤＲＡＭ２２４から読み出された基本コードや印刷データ、共通データなどが入力されて、制御部３１、ＳＲＡＭ３２、及びＲＯＰ演算部３３に出力する。
【００２８】
図２に示すようにＤＭＡ制御部３０は、第１のセレクタ３０１と、基本コードバッファ３０２と、印刷データリードバッファ３０３と、共通データバッファ３０４と、印刷データライトバッファ３０５、及び第２のセレクタ３０６とから構成される。第１のセレクタ３０１は、ＳＤＲＡＭ２２４から読み出された、基本コード、印刷データ、共通データそれぞれを基本コードバッファ３０２、印刷データリードバッファ３０３、共通データバッファ３０４に選択的に出力する。各バッファ３０２、３０３、３０４にデータやコードが出力されるよう、制御部３１の制御により選択出力されるようになされている。
【００２９】
基本コードバッファ３０２は、第１のセレクタ３０１に接続されるとともに、第２のセレクタ３０６に接続され、上述したように第１のセレクタ３０１から出力された基本コードを記憶し、記憶した基本コードをセレクタ３０６に出力する。なお、ＳＤＲＡＭ２２４から読み出された基本コードは、ＳＤＲＡＭ２２４の基本コードが記憶された先頭領域から、コードの終了を示す“ＥＮＤ”まで連続して読み出されてバッファ３０２に記憶される。このような読出しをバーストリードという。このようにバーストリードを行う理由は、できるだけＳＤＲＡＭ２２４へのアクセス回数を少なくすることで制御部３１において他の処理を行うときに基本コードの読み出しができなくなってしまうことを防止するためである。なお、ＳＤＲＡＭ２２４の基本コード領域２２４Ａに基本コードが格納されているとき、その領域の先頭アドレスを示す情報がＣＰＵ２２０からＣＰＵＩ／Ｆ２２１を経由して印刷データ生成部２２５に入力される。その情報がＩ／Ｆ３４を介して制御部３１に入力され、制御部３１はＳＤＲＡＭ２２４に対してその先頭アドレスから読み出す、読出し命令を出力する。これにより、基本コード領域２２４Ａから基本コードがバーストリードにより読み出されることになる。また、制御部３１は基本コード読出しの制御命令を第１のセレクタ３０１に対しても出力し、第１のセレクタ３０１は出力経路を基本コードバッファ３０２に切替わるようにする。これにより、ＳＤＲＡＭ２２４から読み出された基本コードは基本コードバッファ３０２に記憶される。
【００３０】
印刷データリードバッファ３０３は、第１のセレクタ３０１に接続されるとともに後述するＲＯＰ演算部３３に接続される。ＳＤＲＡＭ２２４の印刷データ領域２２４Ｃに格納された印刷データは、ＳＤＲＡＭコントローラ２２３、及び第１のセレクタ３０１を介してバッファ３０３に出力されて記憶されるようになされている。印刷データ領域２２４ＣからＲＯＰ演算を行うべく印刷データを読み出す必要があるときに、制御部３１は第１のセレクタ３０１とＳＤＲＡＭコントローラ２２３に対して印刷データを読み出す制御命令を出力する。これにより、第１のセレクタ３０１は、印刷データを印刷データリードバッファ３０３に出力するように出力経路が切替わる。一方、この読出し命令を受けたＳＤＲＡＭコントローラ２２３は、ＳＤＲＡＭ２２４の印刷データ領域２２４Ｃにアクセスして印刷データを読出し、第１のセレクタ３０１に出力する。そして、印刷データが印刷データリードバッファ３０３に記憶される。なお、このように印刷データを領域２２４Ｃから読み出しているのは、最終的に印刷すべき印刷データを作成するためにＲＯＰの演算を行う必要があるからである。後ほど、具体例で説明する。
【００３１】
共通データバッファ３０４は、第１のセレクタ３０１に接続されるとともに、第２のセレクタ３０６に接続される。ＳＤＲＡＭ２２４の共通データ領域２２４Ｂに格納された共通データが記憶される。上述したように、基本コードには共通データ領域２２４Ｂのどのアドレスにアクセスすべきかを示すメモリ番号（アドレス番号）が記述されており、ＳＤＲＡＭコントローラ２２４によって参照すべきアドレスにアクセスして共通データ領域２２４Ｂから共通データが読み出されて、ＳＤＲＡＭコントローラ２２３及び第１のセレクタを介してこの共通データバッファ３０４に記憶されるようになされている。ここで、第１のセレクタ３０１に共通データが入力されたときの共通データバッファ３０４への出力経路の切り替えは、例えば、ＳＤＲＡＭコントローラ２２３から共通データ領域２２４Ｂにアクセスしたことを示す情報が制御部３１に出力されこの情報をもとに制御部３１が第１のセレクタ３０１の経路を共通データバッファ３０３に切替えるように制御することで行われる。
【００３２】
印刷データライトバッファ３０５は、ＲＯＰ演算部３３と接続されるとともに第１のセレクタ３０１に接続される。ＲＯＰ演算部３３からＲＯＰ演算後の印刷データが入力され、第１のセレクタ３０１に出力する。なお、第１のセレクタ３０１は、制御部３１からの制御命令により印刷データライトバッファ３０５から出力された印刷データをＳＤＲＡＭコントローラ２２３に出力できるように選択出力される。そして、制御部３１からの制御命令がＳＤＲＡＭコントローラ２２３にも入力され、第１のセレクタ３０１から出力された印刷データがＳＤＲＡＭコントローラ２２３の制御により印刷データ領域２２４Ｃに格納されるようになされている。
【００３３】
このようにバッファ３０２〜３０５があるのは、バッファ３０２〜３０５の前後におけるデータの転送速度を吸収するためである。第１のセレクタ３０１とバッファ３０２〜３０５との間のデータの転送速度は、バッファ３０２、３０４と第２のセレクタ３０６、及びバッファ３０３、３０５とＲＯＰ演算部３３との間のデータの転送速度よりも遅いからである。
【００３４】
また、バッファ３０２〜３０５に関して、ハードウェア上のコスト削減等の観点から１つのバッファにより構成することも考えられる。しかし、１つのバッファでは基本コードの読出しや共通データの読出しなどを連続して行うときに、処理中の基本コードの退避やバッファのアドレスの再計算等によりバッファの読出しや書き込みの処理が煩雑になるとともに、かかる処理に時間がかかってしまう。これでは、印刷データ生成部２２５での印刷データの生成に時間がかかり印刷装置２全体での処理の高速化を図ることができない。そこで、ＳＤＲＡＭ２２４に格納されたデータの種別に応じてバッファを複数備えることで、処理を行っているデータやコードの退避、アドレスの再計算を行う必要がないために処理の高速化を図ることができるのである。
【００３５】
第２のセレクタ３０６は、基本コードバッファ３０２及び共通データバッファ３０４に接続されるとともに、制御部３１及びＳＲＡＭ３２に接続される。基本コードバッファ３０２から基本コード、及び共通データバッファ３０４から共通データが入力され、制御部３１の制御命令により、基本コード中の制御コード（後述）を制御部３１に出力するとともに、基本コード中のデータ（ここではＲＧＢの画像データ）や共通データをＳＲＡＭ３２に出力する。
【００３６】
制御部３１は、ＤＭＡ制御部３０と、ＳＲＡＭ３２、ＲＯＰ演算部３３、及びＩ／Ｆ３４と接続される。制御部３１は上述したようにＤＭＡ制御部３０の各セレクタ３０１、３０６を制御して適宜データやコードをバッファ３０２〜３０５やＳＲＡＭ３２、ＲＯＰ演算部３３に出力する。また制御部３１は、Ｉ／Ｆ３４を介してコントローラ２２のＣＰＵ  Ｉ／Ｆ２２１と接続され、ＣＰＵ２０からの制御命令に基づいて印刷データを生成すべく、上述したＳＤＲＡＭ２２４に対するデータ等の読出しや書き込みの制御を行う。さらに、制御部３１は、第２のセレクタ３０６から中間コードのうちの制御コードが入力されて、第２のセレクタ３０６に入力されたデータがＳＲＡＭ３２への格納やＲＯＰ演算が行われるようＳＲＡＭ３２、ＲＯＰ演算部３３に対して制御命令を出力する。処理の詳細は後述する。
【００３７】
ＳＲＡＭ３２は、第２のセレクタ３０６に接続されるとともにＲＯＰ演算部３３に接続され、さらに制御部３１とも接続される。上述したように制御部３１からの制御命令により第２のセレクタ３０６から出力されたデータを記憶しＲＯＰ演算部３３に出力する。このようにメモリを設けているのは、共通データを何度もＳＤＲＡＭ２２４から読み出す必要があるとき一時的にＳＲＡＭ３２に記憶させておくことで、ＳＤＲＡＭ２２４へのアクセス回数を少なくして処理の高速化を図るためである。
【００３８】
ＲＯＰ演算部３３は、ＳＲＡＭ３２に接続されるとともに印刷データリードバッファ３０３、印刷データライトバッファ３０５、さらに制御部３１と接続されている。ＲＯＰ演算とは、例えばイメージのオブジェクト画像に対してグラフィックスのオブジェクト画像が上書きされているような画像に対して、イメージとグラフィックスの２つのソースに対して論理演算を施すことで、かかる上書きされた印刷画像（デスティネーション）を生成する演算である。一般に、複数のオブジェクト画像が１ページ全体の画像に含まれているとき、中間コードで表現すると、すべてのオブジェクト画像に対するＲＧＢの画像データが含まれているだけで、中間コードには、上述した上書き等が施された画像データまでは表現されていない。そこで、かかる演算を行うことで実際の印刷画像を生成するのである。なお、オブジェクト画像がイメージのみのときでも、基本コード領域２２４Ａから読み出したイメージのデータに印刷データ領域２２４Ｃのデータを上書きするというＲＯＰ演算を行うことになる。ただし、このときに印刷データ領域２２４Ｃからデータを読み出すことは行われない。そして、ＲＯＰ演算後のデータ（印刷データ）は、ＳＤＲＡＭ２２４の印刷データ領域２２４Ｃに格納される。さらに、そのイメージの上にグラフィックスのオブジェクト画像があり、かつイメージとの論理演算が必要な場合には、領域２２４Ｃに格納された印刷データを読み出して、その画像とグラフィックス画像の、ディスティネーションとソースによるＲＯＰ演算を行い、再び印刷データを生成して領域２２４Ｃに格納される。このようなＲＯＰ演算を繰り返すことで最終的な印刷データを生成するのである。
【００３９】
このように印刷データを生成するための印刷データ生成部２２５をハードウェアとして各部を設け、制御部３１からの制御命令によりＳＤＲＡＭ２２４からデータを読出し印刷データを生成するようにしたので、コントローラ２２のＣＰＵ２２０は印刷データ生成部２２５に印刷データを生成するための制御命令を出力するだけである。したがって、コントローラ２２のＣＰＵ２２０は、印刷データ生成以外の他の処理を行うことができ、印刷装置２全体の処理の高速化を図ることができるのである。
【００４０】
以上のように構成された印刷データ生成部２２５の動作について図３のフローチャート、及び図４、図５の具体例を示しながら詳細に説明する。図４（ａ）は、ホストコンピュータ１で生成された印刷対象の画像である。背景が山の風景からなるイメージ画像で、画像のほぼ中央に矩形状のグラフィックス画像１がある。このグラフィックス画像１はイメージ画像の上に上書きされている。さらにグラフィックス１に上書きされるように円状のグラフィックス２がある。そして、そのグラフィックス２に文字“Ａ”が上書きされている。この印刷画像は、イメージと２つのグラフィックスと文字の計４つのオブジェクト画像から構成されている。この印刷画像はホストコンピュータ１のアプリケーションプログラムを実行することで生成されるものとする。
【００４１】
上述したように、ＳＤＲＡＭ２２４の印刷データ領域２２４Ｃは１ページ分の画像データを蓄積できるようにすると容量が非常に大きくなってしまうので、１ページ分の画像を所定の幅を有するバンド幅に区切って各バンドごとに画像データ（印刷データ）を蓄積できるようになっている。図４（Ｂ）に示すように本実施例では１ページ分の画像を４つのバンドに区切って各バンドに含まれる画像データを蓄積できるように印刷データ領域２２４Ｃが構成される。
【００４２】
そして、ホストコンピュータ１で生成した画像データについては上述したように、バンドメモリ（ＳＤＲＡＭ２２４の印刷データ領域２２４Ｃ）の所定位置等に格納されるよう中間コードとして表現されている。図４（Ａ）の印刷画像を中間コードとして表現した例を図５（Ｂ）に示す。
【００４３】
中間コードは、オブジェクト画像ごとにどのような画像の種別（イメージ、グラフィックス、文字など）からなるＲＧＢの階調画像データを印刷データ領域２２４Ｃのどの領域に格納すべきかを示す描画コードと、その画像の幅やＲＯＰ演算の指定等を示す制御コードとから構成される。そして、この描画コードと制御コードとはバンドごとに生成される。
【００４４】
図５（Ｂ）に示すようにバンド１の描画コードは、“ＩＭＡＧＥ、（０，０）、Ｈ１０、Ｗ１、（Ｒ０、Ｂ０、Ｇ０、…）”と表現される。“ＩＭＡＧＥ”は、オブジェクト画像の種別がイメージであることを示す。“（０，０）”は、イメージの開始位置の座標を示す。この場合に、座標位置はバンドメモリ上（印刷データ領域２２４Ｃ上）最も左上の位置を原点（０，０）とした場合の相対位置である。この例では原点から開始すべきことを示している。“Ｈ１０”はそのイメージの高さ（縦幅）を示す。この図４の画像の場合、バンド１全体にわたりイメージが存在するのでその高さはハンドの高さと同じである。また“Ｗ１”はイメージの幅を示す。この場合もバンド１全体に存在するのでバンド１の幅と同じである。さらに“（Ｒ０、Ｇ０、Ｂ０、…）”は、イメージ各画素の階調値を示す。イメージを構成する全画素分の階調値が示される。
【００４５】
またバンド１の制御コードは、“ＰＡＧＥＷＩＤＴＨ（Ｗ１）”と“ＲＯＰ（１）”として生成される。“ＰＡＧＥＷＩＤＴＨ（Ｗ１）”は、描画するページの幅がＷ１であることを示す。“ＲＯＰ（１）”は、ＲＯＰの演算は演算コード“１”により演算すべきことを示す。この場合、何もないソースに対して描画コードで示されたソースとで論理演算を行って何もないソースの上にイメージを上書きすべきことを示している。
【００４６】
バンド２には、図４（Ｂ）に示すようにイメージ、グラフィックス１とがある。描画コードは、イメージについては“ＩＭＡＧＥ、（０，０）、Ｈ１０、Ｗ１、（Ｒ０、Ｂ０、Ｇ０、…）”、グラフィックス１は、“ＣＯＬＯＲ（ＲＧＢ）、ＲＥＣＴＡＮＧＬＥ、（Ｘ１，０）、Ｗ２、Ｈ１０”となる。イメージについてはバンド１とほぼ同様である。ただし、開始位置はバンド２上の最も左上を原点にした相対位置となっている。“ＣＯＬＯＲ（ＲＧＢ）”は、グラフィックス１の色を示す。“ＲＥＣＴＡＮＧＬＥ”は、グラフィックス１が矩形であることを示す。“（Ｘ１，０）”は、グラフィックス１の開始点の座標で、同様にバンド２上の最も左上を原点とした相対位置である。“Ｗ２”、と“Ｈ１１”はそれぞれグラフィックス１の幅と高さを示す。
【００４７】
このバンド２における制御コードは、“ＰＡＧＥＷＩＤＴＨ（Ｗ１）”と、“ＲＯＰ（２）”となっている。この場合のＲＯＰの演算は演算コード“２”を示すものである。すなわち、イメージとグラフィックス１との論理演算をとって、イメージの上にグラフィックス１が上書きされるように印刷データを生成すべきことを示す。
【００４８】
バンド３には、イメージを背景にしてグラフィックス１とグラフィックス２、さらに文字“Ａ”がある。各オブジェクト画像ごとにそれぞれ“ＩＭＡＧＥ、（０，０）、Ｈ１０、Ｗ１、（Ｒ０、Ｂ０、Ｇ０、…）”、“｛ＣＯＬＯＲ（ＲＧＢ）｝、ＲＥＣＴＡＮＧＬＥ、（Ｘ２，０）、Ｗ２、Ｈ１１”、“ＣＯＬＯＲ（ＲＧＢ）、ＬＩＮＥ、Ｎ、（Ｘ３，０）、Ｗ３”、“ＰＵＴＣＨＡＲＣＡＣＨＥ、（メモリ番号）、（Ｘ４，Ｙ４）、Ｗ４、Ｈ４”となる。イメージについては、上述したものと同様である。グラフィックス１についてバンド２のみならずバンド３にも存在するため、描画コードを生成することになるが、このバンド３の領域のみバンド２と異なる色となるときは“ＣＯＬＯＲ”で色を指定することになるが、バンド２と同じ色ならば省略されるため“｛｝”書きにしている。開始位置座標“（Ｘ２，０）”は、バンド３上の開始位置を示す。また、円は水平線が複数個あって構成されているものと考えることができるため、円のグラフィックス２は水平線であることを示す“ＬＩＮＥ”とその個数を示す“Ｎ”により表現される。開始位置は“（Ｘ３，０）”からとなる。また、文字は上述したように、文字自体のデータがＳＤＲＡＭ２２４の共通データ領域２２４Ｂに格納されているので、印刷すべき文字が格納されたメモリ番号を指定することで描画コードが表現される。事前登録された文字を描画するために“ＰＵＴＣＨＡＲＣＡＣＨＥ”、そして“（メモリ番号）”で文字“Ａ”が格納された共通データ領域２２４Ｂのメモリ番号（アドレス番号）を指定する。“（Ｘ４，Ｙ４）”は文字“Ａ”の開始位置、文字の幅と高さは“Ｗ４”、“Ｈ４”で示される。これら開始位置座標はバンド３の最も左上を原点とした相対位置であることはバンド１等と同様である。
【００４９】
また、バンド３の制御コードは、“ＰＡＧＥＷＩＤＴＨ（Ｗ１）”、と“ＲＯＰ（３）”となっている。“ＲＯＰ（３）”はＲＯＰの演算を演算コード“３”により演算すべきことを示す。ここでは、イメージの上にグラフィックス１を上書きし、さらにグラフィックス１の上にグラフィックス２を上書きし、さらにグラフィックス２の上に文字“Ａ”を上書きすべき演算を行うことを示している。
【００５０】
バンド４はイメージだけなので、描画コードは“ＩＭＡＧＥ、（０，０）、Ｈ１０、Ｗ１、（Ｒ０、Ｇ０、Ｂ０、…）”となる。また制御コードはバンド１と同様に“ＰＡＧＥＷＩＤＴＨ（Ｗ１）”、“ＲＯＰ（１）”となる。
【００５１】
かかる中間コードがホストコンピュータ１上で生成されて、ＣＰＵ２２０の制御により外部Ｉ／Ｆ２２２からＳＤＲＡＭ２２３を介してＳＤＲＡＭ２２４に格納される。格納された中間コードは、基本コード領域２２４Ａに図２の示すように格納される。この図で“コード”は、図５（Ｂ）の中間コードのうちのＲＧＢの階調画像データ以外の部分（例えば画像の種別であることを示す“ＩＭＡＧＥ”やグラフィックスの形状を示す“ＲＥＣＴＡＮＧＬＥ”、“ＬＩＮＥ”、座標位置等）で、“データ”はＲＧＢの階調画像データを示す。そして、図３に示す処理が開始されることになる。
【００５２】
図３に示すようにまず制御部３１は、コントローラ２２のＣＰＵ２２０からＣＰＵ  Ｉ／Ｆ２２１を介して印刷データ生成のための制御命令が入力される。そして、処理が開始される（ステップＳ１０）。次いで制御部３１は、ＳＤＲＡＭ２２４に格納された基本コードの読出しを行う（ステップＳ１１）。上述したように、制御部３１はＤＭＡ制御部３０、さらにＳＤＲＡＭコントローラ２２３に対して基本コード読出しのための制御命令を出力する。このとき制御部３１は、第１のセレクタでＳＤＲＡＭ２２４から出力された基本コードが基本コードバッファ３０２に出力されるように第１のセレクタ３０１を制御する。また、第２のセレクタ３０６に対して基本コードバッファ３０２から出力された基本コードのうち制御コードが制御部３１に出力され、データ（ＲＧＢの画像データ）がＳＲＡＭ３２に出力されるように制御命令を出力する。ＳＤＲＡＭコントローラ２２３は、制御部３１からの基本コード読出しのための制御命令を受け取るとＳＤＲＡＭ２２４の基本コードが格納された基本コード領域２２４の先頭アドレスから、“ＥＮＤ”コードを検出するまでバーストリードにより基本コードを読み出す。そして、読み出された基本コードはＳＤＲＡＭコントローラ２２３から第１のセレクタ３０１を介して基本コードバッファ３０２に入力される。その後、基本コードバッファ３０２から第２のセレクタ３０６を介して制御コードが制御部３１に出力される。
【００５３】
次いで制御部３１は、第２のセレクタ３０６から出力された中間コード（基本コード）のうちの制御コードを解釈する（ステップＳ１２）。すなわち、制御コードの“ＲＯＰ”からどのようなＲＯＰ演算を行うかを判断する。例えば、演算コードに対応した演算の種別を示すテーブルが制御部３１にあり、かかるテーブルを検索してＲＯＰ演算部３３で演算すべき論理演算の種別を指定することができる。また、共通データの読出しについては上述したように基本コード中に参照すべきメモリ番号が記述されているため、制御部３１がＤＭＡ制御部３０に対して第１のセレクタ３０１でＳＤＲＡＭ２２４から読み出された共通データを共通データバッファ３０４に出力されるように制御することで行われる。
【００５４】
次いで制御部３１は、第２のセレクタ３０６から出力された基本コードのうちのデータ部分（ＲＧＢの画像データ）をＳＲＡＭ３２に記憶されるようＳＲＡＭ３２に制御命令を出力する（ステップＳ１３）。また共通データについでも第２のセレクタ３０６からＳＲＡＭ３２に記憶される第２のセレクタ３０６に対して制御部３１が制御命令を出力する。これにより、ＳＲＡＭ３２に基本コードや共通データが記憶される。
【００５５】
次いで制御部３１は、制御コードのうちのＲＯＰ演算コードに基づいてＲＯＰ演算が行われるようにＲＯＰ演算部３３を制御する（ステップＳ１４）。これによりＲＯＰ演算部３３にてＲＯＰ演算が行われる
次いで制御部３１は、ＲＯＰ演算後の印刷データが印刷データ領域２２４Ｃに書き込まれるようにＤＭＡ制御部３０、そしてＳＤＲＡＭコントローラ２２３に制御命令を出力する（ステップＳ１５）。この制御命令に基づいて、ＲＯＰ演算部３３から出力された画像データが印刷対象の印刷データとしてライトバッファ３０５に記憶され、さらにその出力が第１のセレクタ３０１からＳＤＲＡＭコントローラ２３３に出力されるようにセレクタ３０１が制御される。そして、制御部３１からのかかる制御命令によりＳＤＲＡＭコントローラ２２３は、第１のセレクタ３０１から出力された印刷データをＳＤＲＡＭ２２４の印刷データ領域２２４Ｃに格納させる。
【００５６】
各バンドごとにすべての画像データに対する処理が終了すると制御部３１における上述の処理が終了することになる（ステップＳ１６）。
【００５７】
なお、ＲＯＰ演算に際してすでに印刷データ領域２２４Ｃに格納された印刷データを用いてＲＯＰ演算を行うとき、例えば図４のバンド２でイメージの画像に対してグラフィック１の画像を論理演算するとき、上述の処理によりイメージの画像データが印刷データ領域２２４Ｃに格納され、再度制御部３１からの制御命令により基本コード領域２２４Ａからグラフィック１の描画コードが読み出されて、グラフィックス画像の画像データが印刷データとして第１のセレクタ３０１から基本コードバッファ３０２、第２のセレクタ３０６、ＳＲＡＭ３２を介してＲＯＰ演算部３３に出力される。また、すでに印刷データ領域２２４Ｃに格納されたイメージの印刷データが読み出されて第２のセレクタ３０１、印刷データリードバッファ３０３を介してＲＯＰ演算部３３に出力される。そして、この２つのソースをもとに制御コードに記述された演算コードによりＲＯＰ演算が行なわれ、ライトバッファ３０５から第１のセレクタ３０１を介して、上書きされた印刷データが印刷データ領域２２４Ｃに格納されることになる。バンド３ではイメージ、グラフィックス１、グラフィックス２、さらに文字が上書きされるので、論理演算が必要な場合上述した印刷データ領域２２４Ｃの読み出しや書き込みが最大４回繰り返されて、印刷データが生成されることになる。そして、最終的に図５（Ａ）に示す画像が印刷データ領域２２４Ｃに各バンドごとに生成されることになる。この場合に、描画コードの位置情報が制御部３１からＳＤＲＡＭコントローラ２２３に、印刷データの書き込み命令とともに出力されるため、ＳＤＲＡＭコントローラ２２３はＳＤＲＡＭ２２４の印刷データ領域２２４Ｃの所定の位置にかかる画像データが格納されることになる。
【００５８】
その後、この領域２２４Ｃに格納された印刷データがＣＰＵ２２０の制御により読み出されて、ビデオＩ／Ｆ２２６に出力されて、色変換やハーフトーン処理等が行われて印刷エンジン２３に出力される。そして、印刷エンジン２３にて印刷画像が印刷用紙等の印刷媒体に形成されることになる。
【００５９】
以上説明してきたように、本発明によれば印刷データを生成する処理をコントローラ２２のＣＰＵ２２０ですべて行わせるようなソフトウェアによる処理ではなく、印刷データ生成部２２５によるハードウェアによるＤＭＡ制御により行うようにしたので、ＣＰＵ２２０の処理の負担が減り、コントローラ２２で行う処理の高速化を図ることができる。また、ＤＭＡ制御部３０内でＳＤＲＡＭ２２４に格納されるデータやコードの種別に応じてリードバッファを設けたので、ＳＤＲＡＭ２２４からのデータやコードの読出し処理の高速化を図ることができる。
【００６０】
上述の例では、印刷装置２としてレーザプリンタの例で説明したが、ヘッドから各色のインクを吐出させて印刷を行うインクジェットプリンタやさらにはバブルジェット（登録商標）プリンタ等のプリンタであってもよい。また、印刷装置２としてプリンタ以外にも複写機やファクシミリ、またはこれらの機能を備えた複合機であっても本発明を適用でき同様の効果を奏する。
【００６１】
また、ホストコンピュータ１の例として、例えばパーソナルコンピュータ、さらには携帯電話やＰＤＡ（Personal Digital Assistance）などの情報携帯端末であってもよい。
【図面の簡単な説明】
【００６２】
【図１】本発明が適用される印刷装置２の全体構成の例を示す図である。
【図２】印刷データ生成部２２５の構成の例を示す図である。
【図３】制御部３１で行われる処理の動作を示すフローチャートである。
【図４】ホストコンピュータ１で生成される印刷画像の一例を示す図である。
【図５】中間コードの例と、印刷データ領域２２４Ｃに格納された画像の例を示す図である。
【符号の説明】
【００６３】
１  ホストコンピュータ    ２  印刷装置    ２２  コントローラ    ２３  印刷エンジン    ３０  ＤＭＡ制御部    ３１  制御部    ３３  ＲＯＰ演算部    ２２０  ＣＰＵ    ２２３  ＳＤＲＡＭコントローラ    ２２４  ＳＤＲＡＭ    ２２５  印刷データ生成部    ３０１  第１のセレクタ    ３０２  基本コードバッファ    ３０３  印刷データリードバッファ    ３０４  共通データバッファ    ３０５  印刷データリードバッファ    ３０６  第２のセレクタ
【図１】
2005165720.tif 000003
【図２】
2005165720.tif 000004
【図３】
2005165720.tif 000005
【図４】
2005165720.tif 000006
【図５】
2005165720.tif 000007