(57)【要約】【課題】ホストコンピュータ等の情報処理装置から印刷装置に各記録色成分のデータを圧縮符号化して送信する場合において、印刷装置が有する受信バッファメモリを有効に機能させることが可能になる。【解決手段】プリンタドライバは、上位処理から印刷に関する描画データを受信し、描画を行う（Ｓ２）ことを繰り返す。そして、１ページ終了命令を受信した場合には、描画したイメージデータを記録色成分に変換し、各記録色成分のイメージデータを圧縮した場合の予測符号量に基づいて、各記録色成分のデータ量の比率を印刷装置に通知し（Ｓ６）し、印刷装置に対し、受信バッファメモリの各色成分毎に割り当てるリングバッファサイズを決定させる。そして、各記録色成分の符号化データを出力する（Ｓ１３）。【選択図】  図４
2004235992.tif 000002
【特許請求の範囲】
【請求項１】
印刷データを出力する情報処理装置及び当該情報処理装置からの印刷データを受信して、カラー画像を所定の記憶媒体上に記録する印刷装置で構成される印刷システムであって、
前記情報処理装置は、
上位処理から渡された印刷すべきデータに基づいて、記録色成分毎の
イメージデータを生成する生成手段と、
該生成手段で生成された各記録色成分毎のイメージデータを圧縮符号
化する符号化手段と、
該符号化手段による各記録色成分の符号化データ量の比率に基づき、
メモリ割り当て比率情報を生成し、前記印刷装置に通知する通知手段と、
前記符号化手段で符号化した各色成分のイメージデータを前記印刷装
置に向けて出力する出力手段とを備え、
前記印刷装置は、
前記出力手段で出力された各色成分の圧縮符号化したイメージデータを一時的に格納する受信バッファと、
各色成分毎に独立し、符号化データをイメージデータに復号する複数の復号手段と、
前記受信バッファの各色成分毎に割り当てるサイズを、前記メモリ割り当て比率情報に従って設定する手段とを備える
ことを特徴とする印刷システム。
【請求項２】
各色成分に割り当てられる前記受信バッファの各領域は、リングバッファとして利用されることを特徴とする請求項１に記載の印刷システム。
【請求項３】
前記生成手段は、１記録色成分の１画素当たり８ビットのイメージデータを、８ビットより少ないビット数に量子化するためのディザ処理手段を含むことを特徴とする請求項１又は２に記載の印刷システム。
【請求項４】
更に、文字線画領域用、中間調領域用のディザマトリクスパターンの組を各色成分毎に定義したテーブルを複数有し、いずれのテーブルを用いるかを指定する指定手段を備えることを特徴とする請求項３に記載の印刷システム。
【請求項５】
前記通知手段は、使用するテーブル、及び、各記録色成分毎の中間調領域、文字線画領域のサイズに基づいて、各色成分毎の符号化データ量を予測演算することを特徴とする請求項４に記載の印刷システム。
【請求項６】
前記通知手段は、使用するテーブルに従って、各記録色成分毎の中間調領域、文字線画領域を量子化して得たデータ量を計数することで、各色成分毎の符号化データ量を算出することを特徴とする請求項４に記載の印刷システム。
【請求項７】
更に、前記情報処理装置は、前記印刷装置に対し、前記受信バッファの状態情報を要求する要求手段と、
該要求手段によって取得した状態情報に基づき、各記録色成分の受信バッファの空きエリアに、次ページの前記録色成分の圧縮データを格納できるか否かを判定する判定手段と、
該判定手段によって格納できると判定した場合、前記通知手段で通知しようとしているメモリ割り当て比率情報を削除し、前記出力手段を行わせる制御手段と
を備えることを特徴とする請求項６に記載の印刷システム。
【請求項８】
外部からの指示情報に従って、受信バッファメモリの各色成分毎に割り当てるサイズを変更する印刷装置を接続可能とし、前記印刷装置に印刷データを出力する情報処理装置であって、
上位処理から渡された印刷すべきデータに基づいて、記録色成分毎のイメージデータを生成する生成手段と、
該生成手段で生成された各記録色成分毎のイメージデータを圧縮符号化する符号化手段と、
該符号化手段による各記録色成分の符号化データ量の比率に基づき、メモリ割り当て比率情報を生成し、前記印刷装置に前記指示情報として通知する通知手段と、
前記符号化手段で符号化した各色成分のイメージデータを前記印刷装置に向けて出力する出力手段と
を備えることを特徴とする情報処理装置。
【請求項９】
前記生成手段は、１記録色成分の１画素当たり８ビットのイメージデータを、８ビットより少ないビット数に量子化するためのディザ処理手段を含むことを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
更に、文字線画領域用、中間調領域用のディザマトリクスパターンの組を各色成分毎に定義したテーブルを複数有し、いずれのテーブルを用いるかを指定する指定手段を備えることを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記通知手段は、使用するテーブル、及び、各記録色成分毎の中間調領域、文字線画領域のサイズに基づいて、各色成分毎の符号化データ量を予測演算することを特徴とする請求項１０に記載の情報処理装置。
【請求項１２】
前記通知手段は、使用するテーブルに従って、各記録色成分毎の中間調領域、文字線画領域を量子化して得たデータ量を計数することで、各色成分毎の符号化データ量を算出することを特徴とする請求項１０に記載の印刷システム。
【請求項１３】
更に、前記情報処理装置は、前記印刷装置に対し、前記受信バッファの状態情報を要求する要求手段と、
該要求手段によって取得した状態情報に基づき、各記録色成分の受信バッファの空きエリアに、次ページの前記録色成分の圧縮データを格納できるか否かを判定する判定手段と、
該判定手段によって格納できると判定した場合、前記通知手段で通知しようとしているメモリ割り当て比率情報を削除し、前記出力手段を行わせる制御手段と
を備えることを特徴とする請求項１２に記載の情報処理装置。
【請求項１４】
外部からの指示情報に従って、受信バッファメモリの各色成分毎に割り当てるサイズを変更する印刷装置を接続可能とし、前記印刷装置に印刷データを出力する情報処理装置の制御方法であって、
上位処理から渡された印刷すべきデータに基づいて、記録色成分毎のイメージデータを生成する生成工程と、
該生成工程で生成された各記録色成分毎のイメージデータを圧縮符号化する符号化工程と、
該符号化工程による各記録色成分の符号化データ量の比率に基づき、メモリ割り当て比率情報を生成し、前記印刷装置に前記指示情報として通知する通知工程と、
前記符号化工程で符号化した各色成分のイメージデータを前記印刷装置に向けて出力する出力工程と
を備えることを特徴とする情報処理装置の制御方法。
【請求項１５】
外部からの指示情報に従って受信バッファメモリの各色成分毎に割り当てるサイズを変更する印刷装置を接続可能とし、前記印刷装置に印刷データを出力する情報処理装置用のプリンタドライバプログラムであって、
上位処理から渡された印刷すべきデータに基づいて、記録色成分毎のイメージデータを生成する生成手段と、
該生成手段で生成された各記録色成分毎のイメージデータを圧縮符号化する符号化手段と、
該符号化手段による各記録色成分の符号化データ量の比率に基づき、メモリ割り当て比率情報を生成し、前記印刷装置に前記指示情報として通知する通知手段と、
前記符号化手段で符号化した各色成分のイメージデータを前記印刷装置に向けて出力する出力手段
として機能することを特徴とするプリンタドライバプログラム。
【請求項１６】
請求項１５に記載のプリンタドライバプログラムを格納することを特徴とするコンピュータ可読記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はカラー画像を印刷する技術に関するものである。
【０００２】
【従来の技術】
ホストコンピュータからの印刷データを受信し、印刷を行うプリンタにおいて、各記録色成分毎のバッファメモリをリングバッファとして使用する技術がある（例えば特許文献１）。
【０００３】
かかる技術によれば、各記録色成分毎の情報量に応じたリングバッファを決定できるので、限られたメモリ容量を有効活用することができるようになる。
【０００４】
【特許文献１】
特許第３２９６２２６号公報
【０００５】
【発明が解決しようとする課題】
ところで、現在のプリンタの記録解像度は高まる一方で、必然、ホストコンピュータからプリンタへ転送されるデータ量も膨大なサイズになる。そこで、この転送を効率良く行うため、印刷すべきイメージデータを圧縮してデータ量を減らすことが考えられるが、各色成分の情報量は一律同じ比率とはならない。すなわち、上記のような各記録色成分毎のリングバッファが有効に機能しずらくなる。
【０００６】
本発明はかかる問題点に鑑みなされたものであり、ホストコンピュータ等の情報処理装置から印刷装置に各記録色成分のデータを圧縮符号化して送信する場合において、印刷装置が有する受信バッファメモリを有効に機能させる技術を提供しようとするものである。
【０００７】
【課題を解決するための手段】
この課題を解決するため、例えば本発明の印刷システムは下のような構成を備える。すなわち、
印刷データを出力する情報処理装置及び当該情報処理装置からの印刷データを受信して、カラー画像を所定の記憶媒体上に記録する印刷装置で構成される印刷システムであって、
前記情報処理装置は、
上位処理から渡された印刷すべきデータに基づいて、記録色成分毎の
イメージデータを生成する生成手段と、
該生成手段で生成された各記録色成分毎のイメージデータを圧縮符号
化する符号化手段と、
該符号化手段による各記録色成分の符号化データ量の比率に基づき、
メモリ割り当て比率情報を生成し、前記印刷装置に通知する通知手段と、
前記符号化手段で符号化した各色成分のイメージデータを前記印刷装
置に向けて出力する出力手段とを備え、
前記印刷装置は、
前記出力手段で出力された各色成分の圧縮符号化したイメージデータを一時的に格納する受信バッファと、
各色成分毎に独立し、符号化データをイメージデータに復号する複数の復号手段と、
前記受信バッファの各色成分毎に割り当てるサイズを、前記メモリ割り当て比率情報に従って設定する手段とを備える。
【０００８】
【発明の実施の形態】
以下、添付図面に従って本発明に係る実施形態を説明する。
【０００９】
図１は実施形態におけるシステムブロック図である。図中、１は印刷データ発生源であるパーソナルコンピュータ等の汎用情報処理装置（ホストコンピュータ）であり、ＣＰＵ、メモリ、ハードディスク、フロッピー（登録商標）ディスクドライブ、キーボード、マウス（登録商標）等のポインティングデバイス、モニタ、ＵＳＢポート等のハードウェア（不図示）を備える。
【００１０】
２はオペレーティングシステム（ＯＳ）であり、コンピュータ１が備えるハードウェア、およびアプリケーション３、プリンタドライバ４、ランゲージモニタ５、ＵＳＢポートドライバ６などのソフトウェアを管理する。アプリケーション３は、例えばワードプロセッサのようなアプリケーションソフトウェアであり、操作者の指示に従って文書の作成・印刷などを行う。４はプリンタドライバであり、アプリケーション３が発行した印刷指令をオペレーティングシステム２を経て受け取り、該印刷指令をランゲージモニタ５およびプリンタ７が解釈可能なプリンタコマンドに変換する。５はランゲージモニタであり、プリンタドライバ４が出力したプリンタコマンドを受け取り、ＵＳＢポートドライバ６を経由してプリンタ７に送信する。６はＵＳＢポートドライバであり、ランゲージモニタ５が出力したプリンタコマンドをＵＳＢポートを経てプリンタ７に送信するとともに、プリンタ７からステータスを受信した場合にはランゲージモニタ５に出力する。７はプリンタであり、ＵＳＢポートドライバ６から受信したプリンタコマンドに従って印刷を行う。なお、図示の場合、プリンタ７とホストコンピュータ１とはＵＳＢインタフェースを介して接続する例を示しているが、他のインタフェースであっても構わない。場合によっては、ネットワークを介しても構わない。
【００１１】
図２はプリンタ７の構成を示すブロック図である。図中、１１はＵＳＢポートであり、コンピュータ１から印刷データ（プリンタコマンドを含む）を受信する。なお、先に説明したように、ホストコンピュータ１と接続するインタフェースはＵＳＢに限らないし、ネットワークインタフェースでも構わない。
【００１２】
１２はＤＭＡコントローラであり、ＵＳＢポート１１を介して受信した画像データをメモリ１３に格納するとともに、メモリ１３から読み出した画像データを各記録色成分毎に用意された復号回路１４Ｙ、Ｍ、Ｃ、Ｋ（それぞれイエロー、マゼンタ、シアン、ブラックに対応する）に出力する際の転送制御を司るものである。ＤＭＡコントローラ１２はまた、後述するようにメモリ１３を４組のリングメモリを利用することになる。１３はメモリであり、例えば１６Ｍバイトの容量を有し、ＤＭＡコントローラ１２の制御にしたがって画像データの格納あるいは出力を行う。メモリ１３は論理的に４つのチャネルに分割され、各々独立した例えば４Ｍバイトの容量を有するＦＩＦＯ（ファーストインファーストアウト）メモリとして動作する。復号回路１４Ｙ、Ｍ、Ｃ、Ｋは、メモリ１３に記憶された圧縮画像データをそれぞれ復号し、プリンタエンジン１５に出力する。各復号回路は、それぞれ独立した回路であるため、各チャネルの画像データを同時に復号することが出来る。プリンタエンジン１５は、レーザビームプリンタエンジンであり、制御回路１６の指示により、復号回路１４Ｙ、Ｍ、Ｃ、Ｋが出力した画像データに従って印刷を行う。プリンタエンジン１５は、４つのドラムを有するため、各チャネルの画像データをシアン、マゼンタ、黄、黒の４色の画像データとして、同時に印刷することが出来る。１６は制御回路であり、例えば１チップＣＰＵで構成され、ＵＳＢポート１１、ＤＭＡコントローラ１２、メモリ１３、復号回路１４およびプリンタエンジン１５をはじめとする、装置全体の制御を行う。
【００１３】
図７は、実施形態におけるプリンタ７のプリンタエンジン１５の具体的な構成例を示すための装置断面図である。図２で示した制御回路１６をはじめとするメモリや回路は、図示の符号１００で示されるプリント基板にプリンタコントローラとして搭載されることになる。
【００１４】
以下、プリンタエンジン部１５の構成を更に詳しく説明する。
【００１５】
レーザドライバ３１７はレーザ発光部３１３、３１４、３１５、３１６を駆動するものであり、プリンタ画像処理部３５２から出力された画像データに応じたレーザ光をレーザ発光部３１３、３１４、３１５、３１６を発光させる（それぞれ記録色成分の画像を形成するためのものであって、図２の各復号回路１４Ｙ、Ｍ、Ｃ、Ｋからの信号に基づいて駆動される）。このレーザ光はミラー３４０、３４１、３４２、３４３、３４４、３４５、３４６、３４７、３４８、３４９、３５０、３５１によって感光ドラム３２５、３２６、３２７、３２８に照射され、感光ドラム３２５、３２６、３２７、３２８にはレーザ光に応じた潜像が形成される。３２１、３２２、３２３、３２４は、それぞれブラック（Ｂｋ）、イエロー（Ｙ）、シアン（Ｃ）、マゼンダ（Ｍ）のトナーによって、潜像を現像するための現像器であり、現像された各色のトナーは、用紙に転写されフルカラーのプリントアウトがなされる。なお、各色成分毎の感光ドラム３２５乃至３２８は、所定ｄの間隔を置いて設けられている。つまり、その距離ｄと記録紙の搬送速度に見合ったタイミングだけずれたオフセットを設けて、図２の復号回路１４Ｙ，Ｍ，Ｃ，Ｋが駆動される。従って、各復号回路は、厳密には異なる印刷位置のイメージデータを同時に復号することになる。
【００１６】
用紙カセット３６０、３６１及び手差しトレイ３６２のいずれかより、レーザ光の照射開始と同期したタイミングで給紙された記録紙（ＯＨＰシートも含む）は、レジストローラ３３３を経て、転写ベルト３３４上に吸着され、図示矢印方向に搬送される。そして、感光ドラム３２５、３２６、３２７、３２８に付着された現像剤を記録紙に転写する。現像剤の乗った記録紙は定着部３３５に搬送され、定着部３３５の熱と圧力により現像剤は記像紙に定着される。定着部３３５を通過した記録紙は排出ローラ３３８によって排出され、排紙ユニット３７０は排出された記録紙を束ねて記録紙の仕分けをしたり、仕分けされた記録紙のステイプルを行う。
【００１７】
また、両面記録が設定されている場合は、排出ローラ３３８のところまで記録紙を搬送した後、排出ローラ３３８の回転方向を逆転させると共に、フラッパ３３７の回動角を制御することで、再給紙搬送路３３８へ導く。再給紙搬送路３３８へ導かれた記録紙は上述したタイミングで転写ベルト３３４へ給紙される。
【００１８】
なお、上記構成において、実施形態におけるプリンタエンジン１５は、各色成分とも１画素２ビット、すなわち、４階調の画像を記録することができるものとする。階調記録を行う１つの手段としては、ＰＷＭ（パルス幅変調）方法によるものとする。また、４階調で自然画を再現するため、ホストコンピュータ側ではディザ処理を行い、１画素２ビットの画像データを生成するものとした。詳細は以下に説明する。
【００１９】
以上、実施形態におけるシステムの構成を説明した。以下、実施形態における特徴となる点を説明する。
【００２０】
図３はプリンタ７におけるＤＭＡコントローラ１２およびメモリ１３により構成されるリングバッファを示すブロック図である。図に示すように、メモリ１３は、メモリブロック１、メモリブロック２、メモリブロック３およびメモリブロック４の４つのメモリブロックに分割される。２００から２０４はＤＭＡコントローラ１２に内蔵された境界レジスタであり、各メモリブロックの境界を指定する。すなわち境界レジスタ２００はメモリブロック１の先頭を、境界レジスタ２０１はメモリブロック１の末尾とメモリブロック２の先頭を、境界レジスタ２０２はメモリブロック２の末尾とメモリブロック３の先頭を、境界レジスタ２０３はメモリブロック３の末尾とメモリブロック４の先頭を、境界レジスタ２０４はメモリブロック４の末尾を、それぞれ指定する。
【００２１】
２１１から２１４はＤＭＡコントローラ１２に内蔵されたリードポインタであり、それぞれメモリブロック１からメモリブロック４までのメモリブロックからデータを、各復号回路１４Ｙ，Ｍ，Ｃ，Ｋに読み出すアドレスを保持するとともに、ＤＭＡコントローラ１２によって、読み出されたデータサイズに応じて次のデータを読み出すアドレスを保持するように更新される。
【００２２】
２２１から２２４はＤＭＡコントローラ１２に内蔵されたライトポインタであり、それぞれメモリブロック１からメモリブロック４までのメモリブロックにホストコンピュータ１からの印刷データを書き込むアドレスを保持するとともに、ＤＭＡコントローラ１２によって、書き込まれたデータサイズに応じて次のデータを書き込むアドレスを保持するように更新される。
【００２３】
メモリブロック１からメモリブロック４までの各メモリブロックは、それぞれリングメモリを更新し、２１１から２１４までのリードポインタ、あるいは２２１から２２４までのライトポインタが該当するメモリブロックの末尾に達した場合には、ＤＭＡコントローラ１２によって、メモリブロックの先頭のアドレスを保持するように更新される。
【００２４】
以下、実施形態における印刷動作について説明する。
【００２５】
操作者がホストコンピュータ１上で動作しているアプリケーション３（如何なるものでも構わない）を操作して印刷データを生成し、これを印刷指示すると、アプリケーション３からオペレーティングシステム２を経由してプリンタドライバ４に印刷指令が渡される。プリンタドライバ４はアプリケーション３から発行された印刷指令に基づき、画像データに変換して圧縮し、圧縮した画像データを、用紙サイズ、ビットマップデータのラインの長さとライン数などを指定する印刷条件指定コマンド、ページ終了を示すページ終了コマンドとともに出力する。
【００２６】
出力されたプリンタコマンドは、オペレーティングシステム２を経由してランゲージモニタ５に渡される。ランゲージモニタ５は、受け取ったプリンタコマンドをプリンタ７に転送する。プリンタ７は、印刷条件指定コマンドを受信すると、プリンタエンジン１５に対して印刷の開始を指示する。プリンタ７はまた、画像データコマンドを受信すると、各記録色成分毎の画像データをメモリ１３中の該当するメモリブロックにライトポインタに従って格納しては、そのライトポインタを更新する。プリンタエンジン１５は印刷の指示を受けると給紙を開始し、給紙した用紙が所定の位置に達すると画像データの出力を要求する。画像データの出力が要求されると、各復号回路１４はＤＭＡコントローラ１２を経てメモリ１３のメモリブロックの一つに格納された画像データを読み取りを指示する。ＤＭＡコントローラ１２は、この要求を受け付け、該当するメモリブロックのリードポインタで示されるデータから読出し、それを要求元の復号回路に出力する。このとき、リードポインタを更新することになるが、既に読み出されたデータを格納していたアドレス空間は、後続する画像データを格納することができる空き領域となる。復号回路１４はＤＭＡコントローラ１２によって転送されてきたデータを復号し、プリンタエンジン１５に出力することになる。
【００２７】
次に、図４に示すフローチャートを参照し、ホストコンピュータ１におけるプリンタドライバ（コンピュータプログラム）４の処理の詳細を説明する。
【００２８】
図４はオペレーティングシステム２（プリンタドライバから見れば上位処理）から１つの印刷対象のデータを受信した場合の処理を示している。従って、同図の処理は、普通の文書の印刷であれば、何回も繰り返し実行されるものであることに注意されたい。
【００２９】
先ず、ステップＳ１にて、オペレーティングシステムから渡されたデータ種類が描画指令であるか判定する。呼び出しの種類が描画指令であった場合は、ステップＳ２にて描画処理を行う。例えば、フォント種別、フォントサイズ、文字コードを受信した場合には、それに応じた文字パターンを生成してはそのイメージデータを描画するし、中間調画像の場合には、指定された位置に受信したイメージデータを描画する。
【００３０】
次いで、ステップＳ１６に進んで、ステップＳ２で描画したイメージの領域位置及び、その領域の属性、すなわち、文字・線画の描画であるか、中間調イメージであるかを示す像域属性テーブルを更新する。文字パターンイメージが連続して展開される場合には、像域属性テーブルの領域サイズを変更することで行う。なお、この像域属性テーブルは１ページの開始時にリセットされる。そして、１ページの終了を示す情報をオペレーティングシステム２より受信したとき、このテーブルを参照することで、どの領域が文字線画であるか、どの領域が中間調画像領域から判明するようにする。
【００３１】
図８はこの像域属性テーブルの一例を示している。図示に示す如く、１レコードは像域の座標位置（例えば左上隅位置と幅、高さ情報の矩形領域とする）と、その像域が文字・線画であるか、中間調イメージであるかを示す情報で構成される。ＥＯＴはそれ以上の領域が存在しないことを示すマークである。通常の文章の如く、文字パターンのイメージデータの展開は、座標位置的に連続することが多いので、文字パターンイメージデータを連続して展開する場合には、「領域位置」を更新することでテーブルサイズが大きくなることを防ぐ。また、中間調画像は、個々に独立したものであるので、１つの中間調画像につき、１つのレコードを割り当てる。ただし、中間調画像と言えども、隣接させることもあり得るので、連続する場合には、領域位置を更新することでレコード数増加を抑制するようにしてもよい。
【００３２】
以上のようにして、１つの描画単位のデータをオペレーティングシステムより受けとることに、その描画を行ない、像域属性テーブルを更新することになる。
【００３３】
一方、ステップＳ３にて、呼び出しの種類が描画指令でなかった場合は、ステップＳ３に進み、呼び出しの種類がページ終了指令であるか判定する。呼び出しの種類がページ終了指令であった場合には、ステップＳ４にて、色変換処理及び量子化数削減処理を行う。
【００３４】
具体的には、先ず、ステップＳ２にて記録された赤（Ｒ）、緑（Ｇ）、青（Ｂ）の３色を用いた各色８ビットの画像を、公知の変換処理によって記録色成分シアン（Ｃ）、マゼンタ（Ｍ）、黄（Ｙ）、黒（Ｋ）（各色成分とも８ビット／画素）を生成し、各記録色成分の画像データを２ビット（４値化）する。４値化する処理は、ディザ処理を行うことで生成する。なお、色変換処理及び量子化処理を高速なものとするため、ＬＵＴ（ルックアップテーブル）による処理で実現しても良い。
【００３５】
このとき、用いるディザマトリクスは、ユーザが印刷時に指定したモードに応じて決定される。図９は、プリンタドライバ４が予め保持する複数のディザマトリクステーブルを示している。使用するテーブルは、ユーザが印刷指示する際に設定するモードによって決定される。各テーブル間の相違は、主に文章用、写真印刷用、図形等のグラフィック用のものであるが、更に、画質を優先するもの、圧縮率を優先させるもの等がある。
【００３６】
また、文字線画と中間調画像について考察すると、前者は先鋭度が優先されることが望ましいし、後者は階調を優先することが望ましい。従って、文字線画と中間調とでは異なるディザマトリクスパターンを用いる。文字線画の場合には、ドット集中型のディザマトリクスを用いたり、サイズの小さなディザマトリクスを用いる。一方、中間調画像の場合には、ドットが分散するタイプのディザマトリクスを用いたり、サイズの大きめのディザマトリクスを用いることが基本となるであろう。かかる点を考慮するため、実施形態では、図９に示すようにユーザが指定し得るモードの数分のテーブルを用意し、それぞれの色成分の文字線画、中間調画像用のディザマトリクスパターンを定義するようにした。
【００３７】
また、各テーブル内の右側のフィールドのＡｘｘは、そのディザマトリクスで４値化した場合における画像の圧縮率である。この圧縮率は予め複数のサンプル画像について実験的に求めたものである。
【００３８】
また、４値化する際には、描画時に更新した領域属性テーブル（図８参照）を参照すれば、どの位置が文字線画領域であったのか、中間調画像領域であったのかがわかるので、それぞれの領域に応じたディザマトリクスパターンを用いて４値化する。例えば、画質１のテーブルが選択され、４値化しようとする領域が文字線画領域であって、その記録色成分がイエローである場合には、それ専用のディザマトリクスパターンを用いて４値化（２ビット化）する。
【００３９】
図２の説明に戻る。上記のようにして、ステップＳ４において、記録色空間への変換、及び、４値化が行われると、処理はステップＳ５に進んで、例えば用紙サイズ、給紙元の選択、解像度、階調数、１ラインのバイト数、１ページのライン数など印刷に必要な条件を指定する、印刷条件指定コマンドを出力する。
【００４０】
次にステップＳ６にて、ステップＳ４にて使用された各色成分の圧縮比率を計算し、それに基づいてメモリ比率指定コマンドを出力する。
【００４１】
圧縮比率は、各色成分毎に、どの領域に対して如何なるディザマトリクスを用いたかが、図８に示した領域属性テーブルから判明しているので、それに基づいて圧縮率を予測する。
【００４２】
例えば、イエロー成分に、２つの領域ＡＲＥＡ１、２があって、それぞれの面積をＷ１、Ｗ２とし、領域ＡＲＥＡ１は文字線画、ＡＲＥＡ２は中間調画像領域であった場合、イエロー成分の予測圧縮符号化量Ｙｒａｔｉｏは、
Ｙｒａｔｉｏ＝Ｗ１×Ａ１＋Ｗ２×Ａ２
として計算できる。これを他の色成分についても行う。
【００４３】
そして、演算によって予測した各色成分シアン、マゼンタ、イエロー、ブラックの予測符号化データ量の比率が、例えば、
５：６：３：２
であった場合には、その比率を指定するコマンドを発行する。
【００４４】
この後、処理はステップＳ１１乃至１３において、シアン、マゼンタ、イエロー、ブラックの各色ごとに、圧縮符号化した画像データをコマンドと共に出力する。
【００４５】
まずステップＳ１１にて、所定の圧縮手順に従い、画像データを圧縮符号化する。次にステップＳ１２にて、Ｓ１１にて符号化された画像データの色およびサイズを指定する画像データコマンドヘッダを出力する。次にステップＳ１３にて、Ｓ１１にて符号化された画像データを出力する。次にＳ１４にて、シアン、マゼンタ、黄、黒の各プレーンの処理が全て終了したか判定する。否の場合、すなわち、全色成分のプレーンの処理が全て終了していないと判断した場合には、ステップＳ１１に戻り、色を変えて次のプレーンの処理を行う。こうしてシアン、マゼンタ、イエロー、ブラックの各プレーンの処理が全て終了すると、ステップＳ１４からステップＳ１５に進み、ページの終了を指定する改ページコマンドを出力して処理を終了する（ただし、最後のページの出力が行われた場合には、ジョブエンドコマンドを発行することになる）。
【００４６】
一方、ステップＳ１において、呼び出しの種類がページ終了指令でなかった場合には、ステップＳ７にて、呼び出しの種類に応じたその他の処理、例えばページ開始指令あるいはプリンタ能力問い合わせ指令等に対応する処理を行い、終了する。
【００４７】
このようにして作成された一連のコマンドは、オペレーティングシステム２を経てランゲージモニタ５に渡される。ランゲージモニタ５からプリンタ７にいたる通信路は、論理的に１つのコマンドチャネルと、シアン、マゼンタ、黄、黒の各色に対応する４つのデータチャネルによって構成される。各々のチャネルでデータ転送が可能であるかどうかは、ステータス取得コマンドのレスポンスであるステータスによって示される。ランゲージモニタ５はコマンドを受け取ると、ＵＳＢポートドライバ６を経てプリンタ７にステータス要求コマンドを送信する。プリンタ７はステータス要求コマンドを受信するとステータスを送信する。送信されたステータスはＵＳＢポートドライバ６を経てランゲージモニタ５に渡される。ランゲージモニタ５は渡されたステータスを調べ、送信が許可されているチャネルで送信すべきコマンド（データ）を送信する。例えば、コマンドチャネルでの送信が許可されていて、印刷条件指定コマンドなど画像データコマンド以外のコマンドで未送信のものがあればそれを送信する。また、ブラックの画像に対応するデータチャネルでの送信が許可されていて、ブラックの画像データコマンドで未送信のものがあればそれを送信する。このようにしてランゲージモニタ５はステータスを確認しながらコマンドの送信を行い、渡された一連のコマンドを全て送信し終えるまで送信を続ける。
【００４８】
注意したい点は、或る１つの色成分について全て出力してから、次の色成分のデータを送信することはしない。すなわち、複数の色成分のデータを適当なデータ量単位に順次送信する。
【００４９】
実施形態におけるランゲージモニタ５の処理手順の具体例を図５のフローチャートに示し、以下説明する。
【００５０】
先ず、ステップＳ３１で、１ページを構成する一連のコマンド（圧縮イメージデータを含む）全体を受信したか判定する。１ページを構成する一連のコマンド全体を受信していない場合には、Ｓ３２にてジョブ終了したか、すなわちそのジョブのコマンドを全て受信し終えたか判定する。そのジョブのコマンドを全て受信し終えた場合には処理を終了し、そうでない場合にはＳ３１に戻って１ページを構成する一連のコマンド全体の受信を待つ。
【００５１】
ステップＳ３１にて、１ページを構成する一連のコマンド全体を受信したと判断した場合には、ステップＳ３３に進み、プリンタ７のステータスを要求し取得する。プリンタのステータスには、現在の各メモリブロックの容量、および各メモリブロックに格納されている画像データのサイズが含まれる。
【００５２】
次にステップＳ３４にて、いずれかのメモリブロックに未処理の印刷データが存在するか否かを判断する。もし、存在すると判断した場合には、未処理の印刷データが無くなるまで待つ。未処理の印刷データがなくなったと判断した場合には、ステップＳ３５に進み、メモリ比率指定コマンドを送信し、次いで、ステップＳ３６で各色成分の圧縮符号化データを送信する。このステップＳ３６内では、各色成分について送信できる圧縮データについては送信してしまい、バッファーフルになった以降については、空きエリアができ次第、各色成分のデータを細切れにし、平均的に送信することを行う。
【００５３】
以上、ホストコンピュータ側における処理内容を説明した。次に、実施形態におけるプリンタ７側の処理について説明する。
【００５４】
図６はプリンタ７における制御回路１６の処理手順（主に受信処理）を示すフローチャートである。以下、同図に従って印刷処理について説明する。
【００５５】
先ず、ステップＳ２１にて、コマンドを受信したか判定し、受信するのを待つ。コマンドを受信したと判断した場合には、ステップＳ２２にて、受信したコマンドがステータス要求コマンドであるか判定する。受信したコマンドがステータス要求コマンドであった場合には、ステップＳ２３にてステータスを送信し、ステップＳ２１に戻る。
【００５６】
また、ステップＳ２２にて、受信したコマンドがステータス要求コマンドでなはないと判断した場合には、ステップＳ２４に進んで、受信したコマンドが印刷条件指定コマンドであるか判定する。受信したコマンドが印刷条件指定コマンドであった場合には、ステップＳ２５にて、指定された印刷条件に従ってプリンタエンジン１５に対し印刷の開始を指示し、ステップＳ２１に戻る。この印刷条件には、記録解像度や給紙元を指定する等が含まれる。
【００５７】
ステップＳ２４にて、受信したコマンドが印刷条件指定コマンドでもないと判断した場合には、ステップＳ２６に進み、受信したコマンドがメモリ比率指定コマンドであるか判定する。受信したコマンドがメモリ比率指定コマンドであった場合には、ステップＳ２７に進んで、受信したメモリ比率指定コマンドに従って、各色成分毎のメモリ領域を確保し、ステップＳ２１に戻る。ステップＳ２７における領域確保の処理は、２００から２０４までの５つの境界レジスタを設定することで実現する。また、２１１から２１４までの４つのリードポインタ、および２２１から２２４までの４つのライトポインタを初期化する。
【００５８】
例えば、メモリ１３の容量が１６メガバイトであって、受信したメモリ比率指定コマンドによってシアン、マゼンタ、イエロー、ブラックの各色のメモリ比率が５：６：３：２であるように指定された場合には、シアン、マゼンタ、イエロー、ブラックの各記録色のメモリブロックサイズがそれぞれ５（＝１６×５／（５＋６＋３＋２）メガバイト、６メガバイト、３メガバイトおよび２メガバイトになるように、境界レジスタ２００には０Ｈを、境界レジスタ２０１には５０００００Ｈを、境界レジスタ２０２には０Ｂ０００００Ｈを、境界レジスタ２０３には０Ｅ０００００Ｈを、境界レジスタ２０４には１００００００Ｈを、それぞれ設定する（Ｈは１６進数を示す）。また２１１から２１４までの４つのリードポインタ、および２２１から２２４までの４つのライトポインタには、それぞれ対応するメモリブロックの先頭アドレスを初期値として設定する。
【００５９】
また、ステップＳ２６にて、受信したコマンドがメモリ比率指定コマンドでなかった場合には、ステップＳ２８にて、受信したコマンドが画像データコマンドのヘッダ部分であるか判定する。受信したコマンドが画像データコマンドのヘッダ部分であった場合には、ステップＳ２９にて、画像データコマンドのヘッダ部分に引き続く画像データを、画像データコマンドのヘッダ部分が示す画像の色に応じたメモリブロックに格納するように、ＤＭＡコントローラ１２を設定して転送を行わせステップＳ２１に戻る。ＤＭＡコントローラ１２は、画像データコマンドのヘッダ部分に引き続く画像データを読み込むと、指定されたメモリブロックに格納する。一回の転送が完了した場合には、ライトポインタを更新するのは勿論である。
【００６０】
なお、ステップＳ２８にて、受信したコマンドが画像データコマンドのヘッダ部分でなかった場合には、ステップＳ３０にて、その他のコマンドの処理を行い、Ｓ２１に戻る。
【００６１】
以上のようにして、各記録色成分のデータの転送が行われると、制御回路１６は、所定のタイミング（記録紙が所定位置まで搬送されるタイミング）で、各復号回路１４Ｙ、Ｍ，Ｃ、Ｋを記録順とドラムの間隔ｄに見合った時間だけずれたタイミングで復号処理を開始させる。これにより、処理済みとなった空きエリアが各色成分のメモリブロックに発生するので、ホストコンピュータ１は未転送のデータが存在すればそのデータを転送することが可能になる。
【００６２】
以上説明したように本実施形態によれば、プリンタ内部のメモリ１３を、各色成分のデータ量に応じた比率で割り当てるので、各記録色成分がそれぞれ実質的に同じ格納状況を維持しながら印刷処理が行えるようになる。これは、各色成分の復号処理が同時に進行する場合に特に有益となる。なぜなら、或る１つの記録色成分について十分すぎるメモリ量を確保してしまい、他の１つの色成分のメモリ量が極端に少なってしまった場合、メモリの割り当ての少ない復号処理に供給するデータが無くなって正常な記録が行えないことが発生する可能性が高いからである。
【００６３】
かかる点、本実施形態のように、各記録色成分の符号化データのサイズ比に従ってメモリを確保することで、復号処理していく課程で各色成分とも、時間的にバッファアンダーランとなる十分に前のタイミングでメモリに空きが発生することになり、その都度、未転送のデータを転送すれば良くなり、限られたメモリを有効利用することが可能になる。
【００６４】
［第２実施形態］
上記実施形態では、ホストコンピュータにおけるプリンタドライバが、各記録色成分の１ページの符号量を予め用意された予測係数を用いて予測し、それに応じてメモリ比率指定コマンドを送出するものであった。すなわち、あくまで予測の範囲であるので、現実の比率に近くなることは望めても、精度上の改善の余地がある。そこで、以下では、現実に生成された符号化データ量に基づいて、メモリ比率指定コマンドを生成する例を第２の実施形態として説明する。
【００６５】
装置構成について、第１の実施形態と同様であるものとし、ここではホストコンピュータ１におけるプリンタドライバ４、プリンタ７における制御回路１６の処理手順について説明することとする。
【００６６】
図１０は第２の実施形態におけるホストコンピュータ１上で動作するプリンタドライバの処理手順を示すフローチャートである。
【００６７】
図４と異なる点は、ステップＳ１３において、圧縮符号化データを出力する際に、各記録色成分毎のカウンタを更新する処理（出力済みデータ量を計数することになる）を行う点と、メモリ比率指定コマンドを出力する処理（Ｓ１６）が、各色成分の圧縮符号化データの出力が完了した後になっている点、及び、その際のメモリ比率コマンドに、各色成分の実際のデータ量（バイト数）を含ませている点である。
【００６８】
全記録色成分の圧縮符号化データの出力が完了して、ステップＳ１６に処理が進んだ場合、各記録色毎に設けたカウンタが保持する値に基づき、メモリ比率を演算し、メモリ比率指定コマンドを出力する。上記以外は、図４と実質同じであるものとし、ここでの詳述は省略する。
【００６９】
次に、第２の実施形態におけるランゲージモニタ５の処理の詳細を図１１のフローチャートに従って説明する。図５との相違点は、複数箇所に亙るので、初めから説明する。
【００７０】
ジョブが開始されると、まずステップＳ４１にて１ページを構成する一連のコマンド全体を受信したか判定する。１ページを構成する一連のコマンド全体を受信していない場合には、ステップＳ４２にてジョブ終了したか、すなわちそのジョブのコマンドを全て受信し終えたか判定する。そのジョブのコマンドを全て受信し終えた場合には処理を終了し、そうでない場合にはステップＳ４１に戻って１ページを構成する一連のコマンド全体の受信を待つ。
【００７１】
また、ステップＳ４１にて、１ページを構成する一連のコマンド全体を受信したと判断した場合には、ステップＳ４３にてプリンタのステータスを取得する。プリンタのステータスには、現在の各メモリブロックの容量、および各メモリブロックに格納されている画像データのサイズが含まれる。
【００７２】
次にステップＳ４４にて、全ての色の画像データが現在の各メモリブロックに格納しきれるか否かを取得したステータスに基づいて判定する。具体的には、上記プリンタドライバが指定したメモリサイズ指定コマンドで指定されている各色成分の画像データサイズが、プリンタステータスが示す各色成分の空き領域（記録済みとなって空いている領域も含む）より小さいか否かで判断する。
【００７３】
全色成分のデータが格納しきれると判断した場合には、プリンタ７のメモリ１３の現在の割り当て比率を維持したままでも（変更せずとも）、これから送出しようするデータの格納が約束されていることを意味する。換言すれば、現在、プリント中で未処理のデータがメモリ１３内に残っていても、次ページのデータの転送が行えることが約束されているわけであるから、ステップＳ４４からステップＳ４８に進み（ステップＳ４５〜Ｓ４７の処理をスキップする）、メモリサイズ指定コマンドを削除して、ステップＳ４９で各色成分の圧縮画像データを含むコマンドを送信する。
【００７４】
一方、ステップＳ４４にて、全色成分のデータを送るには空エリアが足りないと判断した場合には、ステップＳ４５、Ｓ４６で、未印刷データ無しのステータスを取得するのを待つ。そして、未印刷データ無しのステータスを受信した場合、ステップＳ４７に進んで、メモリ比率指定コマンドを送信し、ステップＳ３９にて各記録色成分の圧縮符号化データを含むコマンドを送信する。
【００７５】
なお、第２の実施形態を採用する場合、プリンタ７におけるメモリ１３に対する各リードポインタ、各ライトポインタは、メモリ比率指定コマンドを受信した場合にのみリセットするようにするだけで良いであろう。
【００７６】
以上説明したように第２の実施形態によれば、第１の実施形態と同様の作用効果を奏することに成功すると共に、以下に示す更なる作用効果が期待できるようになる。
１．プリンタ７のメモリ１３を、高い精度で各色成分毎に割り当てることが可能となり、メモリ利用効率を高めることができる。
２．或るページを印刷中で、未処理のデータ（未復号データ）がメモリに存在していても、次ページのデータがメモリ１３に入りきる場合には、メモリの割り当てを行わず、次ページのデータを送出することで、スループットをあげることができる。
【００７７】
なお、上記第２の実施形態では、メモリ比率をホストコンピュータ側で決定したが、各色成分のデータ量情報をプリンタに通知することで、プリンタがそれに応じてメモリ比率を決定しても良い。また、画像データを出力するタイミングとして、未復号のデータが存在しないことをトリガにして、次のデータの送信を行うものであったが、前ページの画像データの復号完了（出力終了）をトリガにしてもよい。
【００７８】
また、ホストコンピュータ側で各記録色成分８ビットを、より少ないビット数にする際にディザ法を利用する例を示したが、ディザに限らず、誤差拡散法を利用してもよいし。誤差拡散する場合には、誤差拡散に利用する誤差拡散係数並びにマトリクスサイズを変更することで、ディザマトリクスと同等に扱うことができる。
【００７９】
また、実施形態におけるプリンタ７は、４階調（１画素２ビット）の階調画像を記録する例を説明したが、印刷可能な階調数はこれに限らないし、如何なるものでも良い。また、ホストコンピュータ１側での量子化する４値化も同様であるし、必ずしも少ビット化を必要とするものではない。但し、最近のプリンタの記録解像度は非常に高くなってきているので、１ドットを多段階の濃度で再現するというよりは、複数のドットで面積階調で再現することが効率良く、しかもデータ量を削減できるので、望ましくは上記実施形態の如く、１記録色成分のビット数を減らすようにすることが望ましい。
【００８０】
また、実施形態では、プリンタエンジンとして、レーザビームプリンタを例にして説明したが、インク液滴を吐出するタイプのプリンタにも適用できる。例えば、１走査ライン分の吐出ノズルが並んだフルラインヘッドを、記録色成分の数だけ用意した装置にも適用できるのは明らかである。
【００８１】
また上述の第２実施形態では、メモリ比率指定コマンドを出力する前に、ランゲージモニタがメモリ内に画像データがないことを確認していたが、これに代えて例えばランゲージモニタは確認せずにプリンタに出力し、プリンタはメモリ内に画像データがなくなるまでメモリブロックの容量の変更を保留し、保留している間は画像データの送信を禁止するステータスを通知するようにしてもよい。
【００８２】
また、上記実施形態での説明からも分かるように、本実施形態でのプリンタドライバ４及びランゲージモニタ５の処理は本願発明を構成している。ランゲージモニタ５に相当するコンピュータプログラムは、広義のプリンタドライバの一部でもあるので、プリンタドライバ４及びランゲージモニタ５の両方から構成されるコンピュータプログラムを、プリンタドライバプログラムとして見ることもできよう。また、プリンタドライバは、通常、ＣＤＲＯＭ等の可搬性のコンピュータ記憶媒体をコンピュータにセットしてシステムにコピーもしくはインストールして機能するものであるから、本発明はコンピュータ並びにコンピュータ可読記憶媒体をもその範疇とするのは明らかである。
【００８３】
【発明の効果】
以上に説明したように本発明によれば、ホストコンピュータ等の情報処理装置から印刷装置に各記録色成分のデータを圧縮符号化して送信する場合において、印刷装置が有する受信バッファメモリを有効に機能させることが可能になる。
【図面の簡単な説明】
【図１】実施形態におけるシステム構成図である。
【図２】実施形態におけるプリンタのブロック構成図である。
【図３】実施形態におけるプリンタのリングメモリの構成の詳細を示す図である。
【図４】実施形態におけるホストコンピュータ上で動作するプリンタドライバの処理手順を示すフローチャートである。
【図５】実施形態におけるホストコンピュータ上で動作するランゲージモニタの処理手順を示すフローチャートである。
【図６】実施形態におけるプリンタの受信処理手順を示すフローチャートである。
【図７】実施形態におけるプリンタのエンジン部を説明するための装置断面図である。
【図８】プリンタドライバが生成する領域属性テーブルの一例を示す図である。
【図９】実施形態におけるプリンタドライバが有するモード毎の処理テーブルを示す図である。
【図１０】第２の実施形態におけるホストコンピュータ上で動作するプリンタドライバの処理手順を示すフローチャートである。
【図１１】第２の実施形態におけるホストコンピュータ上で動作するランゲージモニタの処理手順を示すフローチャートである。
【図１】
2004235992.tif 000003
【図２】
2004235992.tif 000004
【図３】
2004235992.tif 000005
【図４】
2004235992.tif 000006
【図５】
2004235992.tif 000007
【図６】
2004235992.tif 000008
【図７】
2004235992.tif 000009
【図８】
2004235992.tif 000010
【図９】
2004235992.tif 000011
【図１０】
2004235992.tif 000012
【図１１】
2004235992.tif 000013