(57)【要約】【課題】データ転送の遅延およびこれに伴う印刷速度の低下を防止しかつ印刷品質の低下を防止する。【解決手段】多値画像データを圧縮し、圧縮後の多値画像データを転送する多値画像データ処理部と、転送された圧縮後の多値画像データを伸長し、伸長後の多値画像データに基づいて印刷を行なう印刷処理部とを備える印刷装置であって、多値画像データ処理部は、圧縮後の多値画像データのデータサイズが所定のしきい値より大きい場合には、多値画像データに対して所定の擬似階調処理を行なうことにより多値画像データのビット数を低減するとともに、低減により無効化されたビットを除去し有効なビットを詰めて所定の記録領域に記録し、ビットを詰めて記録した画像データを印刷処理部に転送し、印刷処理部は、転送されたビットを詰めた画像データのビット数を多値画像データのビット数に復元し、復元後の多値画像データに基づいて印刷を行なう。【選択図】図２
2010221518.tif 000002
【特許請求の範囲】
【請求項１】
対象画像を表す多値画像データを所定の圧縮方式で圧縮し、圧縮後の多値画像データを転送する多値画像データ処理部と、多値画像データ処理部から転送された圧縮後の多値画像データを伸長し、伸長後の多値画像データを二値化し、二値化後の画像データに基づいて印刷を行なう印刷処理部とを備える印刷装置であって、
上記多値画像データ処理部は、上記圧縮後の多値画像データのデータサイズが所定のしきい値より大きい場合には、上記多値画像データに対して所定の擬似階調処理を行なうことにより多値画像データのビット数を低減するとともに、当該低減により無効化されたビットを除去し有効なビットを詰めて所定の記録領域に記録し、当該ビットを詰めて記録した画像データを上記印刷処理部に転送し、
上記印刷処理部は、上記転送された上記ビットを詰めた画像データのビット数を上記多値画像データのビット数に復元し、当該復元後の多値画像データを二値化した後の画像データに基づいて印刷を行なうことを特徴とする印刷装置。
【請求項２】
上記多値画像データ処理部は、１ページ分の対象画像を所定数のラスター単位で分割した場合のバンド毎の多値画像データを対象として上記圧縮を実行する際に、少なくとも一つのバンドにかかる多値画像データの圧縮後のデータサイズが所定のしきい値より大きい場合には、圧縮済みのバンド毎の多値画像データについては伸張した上で、上記１ページを構成する全てのバンドにかかる各多値画像データについて、上記ビット数の低減および上記有効なビットを詰めることによる記録と当該ビットを詰めた画像データの転送とを実行することを特徴とする請求項１に記載の印刷装置。
【請求項３】
上記多値画像データ処理部は、印刷装置における印刷モードの設定に応じて上記しきい値を変更することを特徴とする請求項１または請求項２に記載の印刷装置。
【請求項４】
上記多値画像データ処理部は、印刷装置における印刷モードの設定に応じて、上記ビット数を低減する際の低減数を変更することを特徴とする請求項１〜請求項３のいずれかに記載の印刷装置。
【請求項５】
上記多値画像データ処理部は、上記多値画像データに対し多値ディザ処理を適用することによって多値画像データのビット数を低減することを特徴とする請求項１〜請求項４のいずれかに記載の印刷装置。
【請求項６】
上記多値画像データ処理部は、上記多値画像データに対し多値誤差拡散処理を適用することによって多値画像データのビット数を低減することを特徴とする請求項１〜請求項４のいずれかに記載の印刷装置。
【請求項７】
上記印刷処理部は、上記ビットを詰めた画像データの上位ビット側から、上記多値画像データのビット数と上記ビットを詰めた画像データのビット数との差に対応するビット数分のビットをコピーし、当該コピーしたビットを上記ビットを詰めた画像データの下位ビットとして付加することにより上記復元を行うことを特徴とする請求項１〜請求項６のいずれかに記載の印刷装置。
【請求項８】
対象画像を表す多値画像データを所定の圧縮方式で圧縮し、圧縮後の多値画像データを転送する多値画像データ処理工程と、多値画像データ処理工程から転送された圧縮後の多値画像データを伸長し、伸長後の多値画像データを二値化し、二値化後の画像データに基づいて印刷を行なう印刷処理工程とを有する印刷方法であって、
上記多値画像データ処理工程では、上記圧縮後の多値画像データのデータサイズが所定のしきい値より大きい場合には、上記多値画像データに対して所定の擬似階調処理を行なうことにより多値画像データのビット数を低減するとともに、当該低減により無効化されたビットを除去し有効なビットを詰めて所定の記録領域に記録し、当該ビットを詰めて記録した画像データを転送し、
上記印刷処理工程では、上記転送された上記ビットを詰めた画像データのビット数を上記多値画像データのビット数に復元し、当該復元後の多値画像データを二値化した後の画像データに基づいて印刷を行なうことを特徴とする印刷方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置および印刷方法に関する。
【背景技術】
【０００２】
ページプリンターにおいては、印刷の高解像度化に伴い、印刷エンジン側へ転送される１ページ分の画像データのサイズ（容量）が増大している。ページプリンターでは、印刷エンジンの印刷速度に同期した印刷エンジン側へのデータ転送が求められるが、上記高解像度化や印刷高速化の要請に伴い、データ転送用のバスにおける処理負担が増大している。このような状況に鑑みて、印刷エンジン側に、圧縮された画像データを伸長（解凍あるいは展開とも言う）する機能を設けるとともに、印刷エンジン側に画像データを転送する前段部は、画像データを圧縮した上で転送することにより、印刷エンジン側へのデータ転送の高速化、効率化を図っている。
【０００３】
また、ページ記述言語による印刷データを中間データに変換し、中間データをラスターデータに展開してプリンターに転送することにより印刷を行なう際に、中間データからラスターデータへの展開処理時間を予測してプリンターの印字速度を変更するプリンターコントローラーが知られている（特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１‐２３２０６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、上記のように転送前に画像データを圧縮して転送を受けた側で画像データを伸長する構成においては、圧縮後のデータサイズが所定サイズ（データ転送用のバスによる転送能力の下で印刷エンジンの印刷速度を低下させない程の速さで転送可能な程のデータサイズ）以下とならない場合には、印刷エンジンの印刷速度に同期したデータ転送が実現されず、結果、期待されるスピードでの印刷が実行されなくなる。このような弊害への対策として、これまでは、画像データの低解像度化や、画質劣化はあるが圧縮率が高い圧縮方式（例えば、ＪＰＥＧ方式などの非可逆圧縮）による画像データの圧縮により、転送速度を確保したり、或いは、印刷エンジンの印刷速度を低下（データ転送が間に合うように印刷速度を低下）させたりしていた。
【０００６】
上記のような低解像度化や印刷速度低下は、高解像度印刷や高速印刷という印刷エンジンが本来備える能力を発揮させないものであるから適切な処置とは言い難い。また、上述したような高い圧縮率の圧縮方式を採用すると、印刷結果にノイズ（いわゆるブロックノイズやモスキートノイズ）やトーンジャンプが発生し得るため、高解像度印刷という高い品質が求められる印刷においては適切ではなかった。なお、上記バスをより転送能力の高い製品とすることで上記弊害は低減できるが、プリンターを構成するハードウェアのコストアップを必要とするため最適な方法とは言えない。
【０００７】
本発明は上記課題に鑑みてなされたもので、データ転送の遅延およびこれに伴う印刷速度の低下を防止し、かつ印刷品質の低下を防止することが可能な印刷装置および印刷方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明は、対象画像を表す多値画像データを所定の圧縮方式で圧縮し、圧縮後の多値画像データを転送する多値画像データ処理部と、多値画像データ処理部から転送された圧縮後の多値画像データを伸長し、伸長後の多値画像データを二値化し、二値化後の画像データに基づいて印刷を行なう印刷処理部とを備える印刷装置であって、上記多値画像データ処理部は、上記圧縮後の多値画像データのデータサイズが所定のしきい値より大きい場合には、上記多値画像データに対して所定の擬似階調処理を行なうことにより多値画像データのビット数を低減するとともに、当該低減により無効化されたビットを除去し有効なビットを詰めて所定の記録領域に記録し、当該ビットを詰めて記録した画像データを上記印刷処理部に転送し、上記印刷処理部は、上記転送された上記ビットを詰めた画像データのビット数を上記多値画像データのビット数に復元し、当該復元後の多値画像データを二値化した後の画像データに基づいて印刷を行なう。
本発明によれば、上記圧縮後の多値画像データのサイズがしきい値より大きい場合は上記ビットを詰めた画像データが印刷処理部に転送される。そのため、上記圧縮後の多値画像データのサイズがしきい値以下である場合もそうでない場合も、画像データの転送遅延が防止される。また、上記ビットを詰めた画像データは、多値画像データに所定の擬似階調処理を行なうことで生成されているため画像の劣化が少なく、結果、これを復元した多値画像データに基づく印刷画像は画質が良好なものとなる。
【０００９】
上記多値画像データ処理部は、１ページ分の対象画像を所定数のラスター単位で分割した場合のバンド毎の多値画像データを対象として上記圧縮を実行する際に、少なくとも一つのバンドにかかる多値画像データの圧縮後のデータサイズが所定のしきい値より大きい場合には、圧縮済みのバンド毎の多値画像データについては伸張した上で、上記１ページを構成する全てのバンドにかかる各多値画像データについて、上記ビット数の低減および上記有効なビットを詰めることによる記録と当該ビットを詰めた画像データの転送とを実行するとしてもよい。当該構成によれば、１ページを構成する全バンドが上記伸長後の多値画像データに基づいて印刷されるか、全バンドが上記復元後の多値画像データに基づいて印刷されるかのどちらかとなるため、ページ内の印刷結果の画質にばらつきが生じない。
【００１０】
上記多値画像データ処理部は、印刷装置における印刷モードの設定に応じて上記しきい値を変更するとしてもよい。また、上記多値画像データ処理部は、印刷装置における印刷モードの設定に応じて、上記ビット数を低減する際の低減数を変更するとしてもよい。印刷モードの設定に応じて上記しきい値やビット低減数を変更することで、高速印刷や高画質印刷などといった、ユーザーの種々の要請に応えることができる。
【００１１】
上記多値画像データ処理部は、上記多値画像データに対し多値ディザ処理を適用することによって多値画像データのビット数を低減する。あるいは上記多値画像データ処理部は、上記多値画像データに対し多値誤差拡散処理を適用することによって多値画像データのビット数を低減する。ビット数低減を多値ディザ処理や多値誤差拡散処理で行なうことにより、転送するデータサイズを確実に低減させながらも画質の劣化を最小限に抑えることができる。
【００１２】
上記印刷処理部は、上記ビットを詰めた画像データの上位ビット側から、上記多値画像データのビット数と上記ビットを詰めた画像データのビット数との差に対応するビット数分のビットをコピーし、当該コピーしたビットを上記ビットを詰めた画像データの下位ビットとして付加することにより上記復元を行うとしてもよい。当該構成によれば、ビット数低減前の多値画像データの色が黒や白である場合に、このような黒や白を正確に復元することができ、画質劣化が少ない良好な印刷結果が得られる。
【００１３】
本発明の技術的思想は、印刷装置以外によっても実現可能である。例えば、印刷装置の多値画像データ処理部および印刷処理部が実行する処理工程を有する印刷方法の発明や、多値画像データ処理部および印刷処理部が実行する機能をコンピューターに実行させるコンピューター読取可能なプログラムの発明をも把握可能である。
【図面の簡単な説明】
【００１４】
【図１】プリンター等の概略構成を示したブロック図である。
【図２】プリンターコントローラーが実行する処理を示したフローチャートである。
【図３】しきい値マトリクスを例示した図である。
【図４】しきい値テーブルを例示した図である。
【図５】ビット数低減処理およびビット詰め処理を説明する図である。
【図６】ビット数の復元処理を説明する図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態を図面を参照しながら説明する。
図１は、本実施形態にかかるプリンター２０等の概略構成をブロック図により示している。プリンター２０は、本発明の印刷装置の一例に該当する。プリンター２０は印刷機能のみを備える装置であってもよいし、印刷機能以外にもスキャン機能やコピー機能を備えた複合機であってもよい。プリンター２０には、プリンター２０に対する制御装置としてのホストコンピューター１０が通信可能に接続している。
【００１６】
プリンター２０は、操作パネル２１とプリンターコントローラー（以下、コントローラーと表記）２２と印刷エンジン３４と有し、ページプリンターとして機能する。操作パネル２１は、ユーザーから各種の指示を受付けるため及びプリンター２０の状態をユーザーに提示するためのユニットである。操作パネル２１は、例えば、液晶ディスプレー、ＬＥＤ、押しボタンスイッチ等から構成されている。コントローラー２２は、インターフェース（Ｉ／Ｆ）２３や、プリンター２０の各部を制御するためのＣＰＵ２４、ＲＯＭ２５、ＲＡＭ２６、さらには圧縮処理ユニット２７、ビット詰め処理ユニット２８、伸長処理ユニット２９、ビット復元処理ユニット３０、二値化処理ユニット３１、パルス幅変調ユニット（ＰＷＭ）３２等を備える回路である。コントローラー２２のこれら各要素や操作パネル２１はバス３３によって通信可能に接続されている。
【００１７】
コントローラー２２においては、印刷対象画像の印刷を指示する印刷コマンドを入力した場合等に、ＣＰＵ２４がＲＡＭ２６をメインメモリーとして使用しながら、ＲＯＭ２５に記憶された所定のプログラムに従った制御処理を実行する。また、圧縮処理ユニット２７、ビット詰め処理ユニット２８、伸長処理ユニット２９、ビット復元処理ユニット３０、二値化処理ユニット３１、ＰＷＭ３２もそれぞれに後述する特定の処理を実行する。Ｉ／Ｆ２３は、例えばケーブルを介してホストコンピューター１０と接続している。ホストコンピューター１０には、プリンター２０の駆動を制御するためのプリンタードライバー１１がインストールされており、プリンタードライバー１１の機能によって印刷コマンドを生成しプリンター２０に送信する。印刷エンジン３４は、コントローラー２２による制御に応じて印刷用紙上に印刷を行うためのユニットである。
【００１８】
プリンター２０においては、例えば、Ｉ／Ｆ２３、ＣＰＵ２４、ＲＯＭ２５、ＲＡＭ２６、圧縮処理ユニット２７およびビット詰め処理ユニット２８が多値画像データ処理部に該当し、伸長処理ユニット２９、ビット復元処理ユニット３０、二値化処理ユニット３１、ＰＷＭ３２および印刷エンジン３４が印刷処理部に該当する。
【００１９】
図２は、コントローラー２２が実行する処理をフローチャートによって示している。ただし、当該フローチャートは、コントローラー２２のうち多値画像データ処理部に該当する構成によって実行されるものとする。
ステップＳ（以下、“ステップ”の表記を省略）１００では、コントローラー２２は、Ｉ／Ｆ２３を介して、ホストコンピューター１０（プリンタードライバー１１）からの印刷コマンドの受信を開始する。印刷コマンドは、所定のページ記述言語（ＰＤＬデータ）で表されたコマンドである。各コマンドとしては、例えば、写真等のビットマップ形式のイメージの描画コマンドや、ＣＧ等のベクターグラフィックス形式のデータについての描画コマンドや、文字コード（テキスト）形式のデータで記述された文字の描画コマンド等が該当する。
【００２０】
Ｓ１１０では、コントローラー２２は、受信したコマンドがどのような種類のコマンドであるか判定し、改ページコマンドであると判定した場合（Ｙｅｓ）にはＳ１３０に進む。一方、受信したコマンドが改ページコマンド以外の種類のコマンドであると判定した場合（Ｎｏ）にはＳ１２０に進む。改ページコマンドとは、１ページ分の印刷対象画像を表すコマンド群の終了（改ページ位置）を意味するコマンドであり、コントローラー２２が改ページコマンドを認識した時点で、１ページ分の中間コードの生成および保存（Ｓ１２０）が終了したことになる。
【００２１】
Ｓ１２０では、コントローラー２２は、上記受信したコマンドの解析を行い、中間コードの生成および当該中間コードのＲＡＭ２６への保存を行う。つまりコントローラー２２は、コマンドにおける描画関数等を解釈することにより中間コードを生成する。コントローラー２２は、１ページを所定数のラスター（例えば６４ラスター）単位で分割した場合に得られる複数のバンド（帯状領域）毎に、各バンドの画像に対応した中間コードを生成し、バンド番号に対応付けて保存する。本実施形態では、１ページを構成する各バンドにページ先頭から順に０〜Ｐ番までのバンド番号が付与されているものとする。Ｓ１２０の終了後は、Ｓ１００に戻り、印刷コマンドの受信を継続する。
【００２２】
Ｓ１３０では、コントローラー２２は、所定のフラグの設定を“ＦＡＬＳＥ（０）”とする。フラグの設定内容は、ＲＡＭ２６の所定領域に記録する。本実施形態においてフラグ＝“ＦＡＬＳＥ（０）”である場合は、多値画像データについて後述のビット数低減処理およびビット詰め処理を実行しないことを意味する。
Ｓ１４０では、コントローラー２２は、処理対象とするバンド番号ＢＮを一つ設定する。当該フローチャートにおける最初のＳ１４０では、コントローラー２２はバンド番号ＢＮ＝０、と設定する。
【００２３】
Ｓ１５０では、コントローラー２２は、直近のＳ１４０で設定したバンド番号ＢＮにかかるバンドの中間コードをＲＡＭ２６上に展開することにより、バンド単位のラスターデータを生成する。ここで生成されるラスターデータは、各画素がＲＧＢ（レッド、グリーン、ブルー）等の階調値を有するデータであり、多値画像データの一例に該当する。
Ｓ１６０では、コントローラー２２は、フラグ＝“ＴＲＵＥ（１）”であるか否か判定する。上記Ｓ１３０でフラグ＝“ＦＡＬＳＥ（０）”に設定しているため、Ｓ１３０後の最初のＳ１６０の判断では必ず“Ｎｏ”の判定となる。Ｓ１６０において“Ｎｏ”と判定した場合にはＳ１７０に進み、“Ｙｅｓ”と判定した場合にはＳ２４０に進む。
【００２４】
Ｓ１７０では、コントローラー２２は、直近のＳ１５０で生成したラスターデータ（ＲＧＢデータ）を対象として所定の圧縮方式で圧縮し、圧縮後のデータをバンド番号と対応付けてＲＡＭ２６に保存する。当該Ｓ１７０の処理は、圧縮処理ユニット２７が実行する。本実施形態では、まずコントローラー２２は、圧縮処理の前にＲＧＢデータの表色系を印刷エンジン３４が使用する記録材の色（例えば、シアン（Ｃ）、マゼンダ（Ｍ）、イエロー（Ｙ）、ブラック（Ｋ））の表色系に色変換する。コントローラー２２は、予め備えた所定の色変換ルックアップテーブル（ＲＧＢ表色系とＣＭＹＫ表色系との対応関係を規定したテーブル）等を参照することにより色変換を実行する。色変換によって、各画素がＣＭＹＫの階調値で表されたラスターデータ（ＣＭＹＫデータ）が得られる。本実施形態では、ＣＭＹＫデータは、各画素が各色ＣＭＹＫを２５６階調（８ビット）で表現したデータとしている。ＣＭＹＫデータは多値画像データの一例に該当する。圧縮処理ユニット２７は、例えば、モディファイドハフマン（ＭＨ）方式による可逆圧縮を適用してＣＭＹＫデータを圧縮し、圧縮後のＣＭＹＫデータ（圧縮ＣＭＹＫデータ）をＲＡＭ２６に保存する。
【００２５】
Ｓ１８０では、コントローラー２２は、直近のＳ１７０で保存した圧縮ＣＭＹＫデータのデータサイズが所定のしきい値（サイズしきい値）より大きいか否か判定し、サイズしきい値より大きい（Ｙｅｓ）と判定した場合にはＳ１９０に進み、サイズしきい値以下である（Ｎｏ）と判定した場合にはＳ２５０に進む。Ｓ１８０で用いるサイズしきい値は、バンド単位の圧縮ＣＭＹＫデータをバス３３を介してＲＡＭ２６から伸長処理ユニット２９へ転送する際の転送時間をある一定時間以内に保障する圧縮ＣＭＹＫデータのサイズを意味しており、これは、印刷コマンドの受信開始から印刷エンジン３４による１ページの印刷が終了するまでに要する時間を所定時間内に収めるためのしきい値とも言える。このようなサイズしきい値は、例えばＲＯＭ２５に予め記憶されている。
【００２６】
Ｓ２５０では、コントローラー２２は、０〜Ｐまでのバンド番号の全てをバンド番号ＢＮとして設定し終えたか否か判定し、未設定のバンド番号がある場合（Ｎｏ）にはＳ１４０に戻って未設定の番号のうち最も若い番号をバンド番号ＢＮとして設定しＳ１５０以下の処理を繰り返す。一方、０〜Ｐまでのバンド番号の全てをバンド番号ＢＮとして設定し終えていると判断した場合（Ｙｅｓ）にはＳ２６０に進む。つまり、上記Ｓ１８０で圧縮ＣＭＹＫデータのサイズがサイズしきい値より大きいと判定されない限りは、フラグ＝“ＦＡＬＳＥ（０）”の設定は変わらない（フラグの設定はＳ１９０においてのみ変更可能）。この場合、コントローラー２２は、Ｓ１４０〜Ｓ１８０，Ｓ２５０の処理サイクルを各バンドについて繰り返し実行し、その結果、全バンドそれぞれに対応する圧縮ＣＭＹＫデータをＲＡＭ２６に保存する。
【００２７】
Ｓ１９０では、コントローラー２２は、ＲＡＭ２６の所定領域に記録済みの上記フラグの設定を“ＴＲＵＥ（１）”へ変更する。
Ｓ２００では、コントローラー２２は、ビット数低減処理およびビット詰め処理の対象とするバンド番号ＴＢＮを一つ設定する。設定し得るバンド番号ＴＢＮは、０から直近のＳ１４０で設定したバンド番号ＢＮの値（ここではｑと表現する。ただし０≦ｑ≦Ｐ。）までとなる。つまりＳ２００の時点で、０〜ｑまでの番号にかかる各バンドについて圧縮ＣＭＹＫデータが生成・保存されているため、このような圧縮ＣＭＹＫデータのバンド番号を一つずつバンド番号ＴＢＮとして設定するのである。当該フローチャートにおける最初のＳ２００では、コントローラー２２はバンド番号ＴＢＮ＝０、と設定する。
【００２８】
Ｓ２１０では、直近のＳ２００で設定したバンド番号ＴＢＮにかかるバンドの圧縮ＣＭＹＫデータをＲＡＭ２６から読み出すとともに、当該読み出した圧縮ＣＭＹＫデータを所定の伸張方式によって伸張し、Ｓ１７０における可逆圧縮が施される前のＣＭＹＫデータへと戻す。当該Ｓ２１０における伸張処理は、伸長処理ユニット２９によって行われるのではなく、コントローラー２２における多値画像データ処理部に属する構成、例えばＣＰＵによって実行される。
【００２９】
Ｓ２２０では、コントローラー２２は、直近のＳ２１０で伸張したＣＭＹＫデータを対象として多値ディザ処理によるビット数低減処理を行うとともに、ビット数を低減した後のデータに対するビット詰め処理を行い、ビット詰め後のＣＭＹＫデータをバンド番号と対応付けてＲＡＭ２６に保存する。つまり、圧縮ではない、ビット数低減処理およびビット詰め処理という手法により、画像データのサイズを小さくする。多値ディザ処理は、擬似階調処理の一種である。当該Ｓ２２０はビット詰め処理ユニット２８が実行する。
【００３０】
図３は、多値ディザ処理に用いるしきい値マトリクス２８ａを例示している。しきい値マトリクス２８ａは、マトリクス内の画素位置にそれぞれしきい値テーブルＶ１，Ｖ２…を割り当てたものである。
図４は、しきい値テーブルＶｎ（しきい値テーブルＶ１，Ｖ２…のいずれか一つ）を例示している。しきい値テーブルＶｎは、入力される８ビット（２５６階調）のデータを、例えば、５ビット（３２階調）のデータに変換するためのテーブルであり、しきい値ｔ１〜ｔ３１を有する階段状のテーブルとなっている。しきい値テーブルＶｎでは、入力データの階調がしきい値ｔ１を越えると、出力データとしての階調を０から１階調上昇させ、同様に、入力データの階調がしきい値ｔ２〜 ｔ３１を越えるたびに、出力データの階調レベルを上昇させる。このようなしきい値テーブルＶｎにおけるしきい値ｔ１〜ｔ３１の設定は、しきい値テーブルＶ１，Ｖ２…毎に異なる。
【００３１】
ビット詰め処理ユニット２８は、しきい値マトリクス２８ａおよびマトリクス内の各画素位置に対応する複数のしきい値テーブルＶ１，Ｖ２…を予め有しており、処理対象のＣＭＹＫデータにしきい値マトリクス２８ａを適用する。つまり、ＣＹＭＫデータの各画素のＣＭＹＫ毎の階調値を、しきい値マトリクス２８ａにおける対応する画素位置のしきい値テーブルＶｎで階調変換することにより、ＣＭＹＫデータの各画素のＣＭＹＫ毎のビット数を８ビットから５ビットへ減らす。このような多値ディザ処理では、注目する画素毎に適用するしきい値テーブルＶｎが異なるため、所定広さの領域について見れば、ビット数低減前のＣＭＹＫデータの濃度がほぼ正しく反映されるようになっている。
【００３２】
図５は、ビット詰め処理ユニット２８による処理が適用されたＣＭＹＫデータの一部における変化を、模式的に示している。図５の上段では、ＣＭＹＫデータを構成する各画素のＣＭＹＫの各色を８ビットで表現している。つまり、ｕ７〜ｕ０，ｖ７〜ｖ０…はＣＭＹＫの各色を構成するビットを表している。図５の中段では、上記多値ディザ処理を適用したビット数低減処理によって８ビットから５ビットに変換された後のデータを示しており、無効化された（意味を有さない）ビットには斜線を付し、データとして有効なビットを符号ｘ４〜ｘ０，ｙ４〜ｙ０…によって表している。
【００３３】
ビット詰め処理ユニット２８は、図５の中段に示したような、ビット数低減後のデータを対象として、無効化されたビットを除去（削除）し、各画素の色を表現する有効なビットのみを互いの隙間を詰めることによりリパックする。図５の下段には、かかるビット詰めによって構築されたビット詰め後のＣＹＭＫデータを示している。ビット詰め処理ユニット２８は、このように構築したビット詰め後のＣＭＹＫデータを、ＲＡＭ２６において、直近のＳ２００で設定したバンド番号ＴＢＮにかかるバンドの圧縮ＣＭＹＫデータに上書きして保存する。
【００３４】
Ｓ２３０では、コントローラー２２は、０〜ｑまでのバンド番号の全てをバンド番号ＴＢＮとして設定し終えたか否か判定し、未設定のバンド番号がある場合にはＳ２００に戻って未設定の番号のうち最も若い番号をバンド番号ＴＢＮとして設定し、Ｓ２１０以下の処理を繰り返す。一方、０〜ｑまでのバンド番号の全てをバンド番号ＴＢＮとして設定し終えていると判断した場合にはＳ２５０に進む。Ｓ２３０を経た後のＳ２５０において“Ｎｏ”の判定を行った場合、その直後のＳ１４０では、コントローラー２２は、バンド番号ＢＮ＝ｑ＋１、と設定する。また、Ｓ２３０，Ｓ２５０を経てＳ１４０以下の処理を繰り返す場合、Ｓ１６０におけるフラグ判定では、必ず“Ｙｅｓ”の判定となり、Ｓ２４０に進むことになる。
【００３５】
Ｓ２４０では、コントローラー２２は、直近のＳ１５０で生成されたラスターデータ（ＲＧＢデータ）を対象として多値ディザ処理によるビット数低減処理を行うとともに、ビット数を低減した後のデータに対するビット詰め処理を行い、ビット詰め後のデータをバンド番号と対応付けてＲＡＭ２６に保存する。ただしコントローラー２２は、ビット数低減処理に先立って、Ｓ１７０と同様に、ＲＧＢデータからＣＭＹＫデータへの色変換を行なう。そしてＣＭＹＫデータを対象として、ビット詰め処理ユニット２８がビット数低減処理およびビット詰め処理を実行する。ビット数低減処理およびビット詰め処理の手法はＳ２２０と同じである。なお、Ｓ２４０では、処理対象としているデータにかかるバンドについて圧縮ＣＹＭＫデータが既にＲＡＭ２６に保存されているということはないため、ビット詰め処理ユニット２８は、ビット詰め後のＣＭＹＫデータをＲＡＭ２６にそのまま保存する。
【００３６】
このように、Ｓ１９０においてフラグの設定が“ＴＲＵＥ（１）”に変更された場合（１ページ分の印刷対象画像を構成するバンド毎の多値画像データのうち、一つでもその圧縮（Ｓ１７０）後のデータサイズが上記サイズしきい値より大きい場合）には、それまでに圧縮済みのバンド毎の多値画像データについては伸張した上でビット数低減処理およびビット詰め処理の対象とし、未圧縮のバンド毎の多値画像データについても、ビット数低減処理およびビット詰め処理の対象とする。つまり本実施形態では、Ｓ１４０〜Ｓ２５０のサイクルが全てのバンドについて終了した時点で、ＲＡＭ２６に、全バンドにかかる圧縮ＣＭＹＫデータが保存された状況か、全バンドにかかるビット詰め後のＣＭＹＫデータが保存された状況かのいずれか一方となる。なおＳ２２０，Ｓ２４０でバンド単位で生成されるビット詰め後のＣＭＹＫデータのデータサイズは、上記サイズしきい値を下回るものとする。
【００３７】
Ｓ２６０では、Ｓ１４０と同様に、コントローラー２２は、処理対象とするバンド番号ＢＮを一つ設定する。基本的には、当該フローチャートにおける最初のＳ２６０では、コントローラー２２はバンド番号ＢＮ＝０を設定する。
Ｓ２７０では、コントローラー２２は、直近のＳ２６０で設定したバンド番号ＢＮに対応してＲＡＭ２６に保存されている圧縮ＣＭＹＫデータまたはビット詰め後のＣＭＹＫデータを、印刷処理部側にバス３３を介して転送する。具体的には、保存されているデータが圧縮ＣＭＹＫデータであれば伸長処理ユニット２９に転送し、保存されているデータがビット詰め後のＣＭＹＫデータであればビット復元処理ユニット３０に転送する。
【００３８】
Ｓ２８０では、コントローラー２２は、０〜Ｐまでのバンド番号の全てをＳ２６０においてバンド番号ＢＮとして設定し終えたか否か判定し、未設定のバンド番号がある場合にはＳ２６０に戻って未設定の番号のうち最も若い番号をバンド番号ＢＮとして設定し、Ｓ２７０以下の処理を繰り返す。一方、０〜Ｐまでのバンド番号の全てをＳ２６０においてバンド番号ＢＮとして設定し終えていると判断した場合には、当該フローチャートを終了する。つまりＳ２６０〜Ｓ２８０の処理によって、全バンドにかかる圧縮ＣＭＹＫデータが伸長処理ユニット２９に転送されるか、或いは、全バンドにかかるビット詰め後のＣＭＹＫデータがビット復元処理ユニット３０に転送される。
【００３９】
伸長処理ユニット２９は、圧縮ＣＭＹＫデータの転送を受けた場合、圧縮ＣＭＹＫデータを所定の伸張方式によって伸張し、上記可逆圧縮が施される前の状態のＣＭＹＫデータへと戻し、当該伸長したＣＭＹＫデータを二値化処理ユニット３１に送信する。
ビット復元処理ユニット３０は、ビット詰め後のＣＭＹＫデータの転送を受けた場合、当該ビット詰め後のＣＭＹＫデータのビット数を上記ビット数低減処理前のビット数に復元する。
【００４０】
図６は、ビット復元処理ユニット３０によるビット数の復元処理の様子を、模式的に示している。図６の上段では、図５の下段と同様に、ビット詰め後のＣＹＭＫデータを構成する各画素のビット（ＣＭＹＫの１つの色あたり５ビット）を示している。ビット復元処理ユニット３０は、かかる５ビットのデータを８ビットのデータに復元する。復元方法は特に限られないが、一例として、ビット復元ユニット３０は、ビット詰め後のＣＭＹＫデータの上位ビット側から、上記ビット数低減処理前のビット数（８ビット）とビット詰め後のビット数（５ビット）との差に対応するビット数（３ビット）分のビットをコピーし、当該コピーしたビットをビット詰め後のＣＭＹＫデータに下位ビットとして付加する。つまり図６の下段に示すように、ビット詰め後にビットｘ４〜ｘ０からなるデータについては、復元すべき３ビットを上位ビット側からコピーし、当該コピーした３ビット（ビットｘ４，ｘ３，ｘ２）を、下位ビット側に付加することで８ビットに復元する。同様に、ビット詰め後にビットｙ４〜ｙ０からなるデータについては、上位ビット側からコピーした３ビット（ビットｙ４，ｙ３，ｙ２）を、下位ビット側に付加する。
【００４１】
このように、ビット数低減後のデータについて必要な復元分のビットを上位ビット側からコピーして補填することにより、ビット数低減前のデータの濃度、特にビット数低減前のデータが表現し得る最高濃度（１１１１１１１１）および最低濃度（００００００００）は、ビット数の低減およびビット数の復元を経ても基本的に保持されるため、印刷品質を保つ上で非常に好適である。
【００４２】
ビット復元処理ユニット３０は、転送を受けたビット詰め後のＣＭＹＫデータの全画素のビット数を復元し、当該復元したＣＭＹＫデータを二値化処理ユニット３１に送信する。二値化処理ユニット３１は、伸長処理ユニット２９またはビット復元処理ユニット３０から送信されたＣＭＹＫデータの全画素のＣＭＹＫ毎の階調値について二値化することにより、画素毎かつＣＭＹＫ毎のドットのオン・オフを規定した二値化データを生成する。二値化処理ユニット３１は、二値化データをＰＷＭ３２に送信する。ＰＷＭ３２は、二値化データをパルス幅変調して駆動パルス信号を生成し、この駆動パルス信号を印刷エンジン３４に供給する。印刷エンジン３４は、例えば、駆動パルス信号により駆動されるレーザー光により感光体ドラム上の潜像を形成し、ＣＭＹＫの現像トナーにより現像し、現像した画像を印刷用紙に転写する。以上により、プリンター２０による１ページ分の印刷対象画像の印刷が完了する。
【００４３】
なお上記では、Ｓ２２０，Ｓ２４０におけるビット数の低減を多値ディザ処理によって実現するとしたが、ビット数低減の際に採用する擬似階調処理は多値ディザ処理に限られず、例えば、多値誤差拡散処理を採用してもよい。多値誤差拡散処理でビット数の低減を行なう場合、コントローラー２２は、例えば上述したようなしきい値テーブルＶｎを用意し、ＣＭＹＫデータにおける注目画素の階調値をしきい値テーブルＶｎに入力して階調変換（８ビットから５ビットへのビット数低減）を行なう。そして注目画素について、ビット数低減後の階調値が決定されると、当該決定した階調値が示す濃度と、本来その注目画素において表現すべきであった濃度（ビット数低減前の階調値が示す濃度）との差を濃度誤差として取り出し、この濃度誤差を注目画素の周辺画素に所定割合で拡散させる。注目画素を順次更新しながらこのようなビット数低減と濃度誤差の拡散とを繰り返すことにより、ビット数低減後の画像全体の濃度を、ビット数低減前の画像の濃度に近づけることができる。
【００４４】
さらに本実施形態では、Ｓ１８０で用いるサイズしきい値や、Ｓ２２０，Ｓ２４０のビット数低減処理におけるビットの低減数（上述した例では低減数＝３ビット）を、プリンター２０における印刷モードの設定に応じて変更するとしてもよい。例えば、コントローラー２２は、操作パネル２１やホストコンピューター１０を介してユーザーからの印刷モードの設定を受付けるとともに、それまで用いていたサイズしきい値やビット低減数を、当該受け付けた設定に対応して予め定められているサイズしきい値やビット低減数に変更する。例えば、ユーザーは「高速印刷モード」や「高画質印刷モード」などを操作パネル２１等を介して選択し、設定することができる。
【００４５】
コントローラー２２は、例えば「高速印刷モード」が設定された場合には、サイズしきい値をより小さな値に設定し、またはビットの低減数をより大きくする（例えば、低減数を５ビットとし、８ビットデータを３ビットデータに変換するようにする）。このようにサイズしきい値を低くすれば、圧縮後ＣＭＹＫデータの転送よりも、ビット詰め後のＣＭＹＫデータの転送が行なわれ易くなるため、プリンター２０による１ページの印刷速度がより向上する。また上記のようにビットの低減数をより大きくすれば、転送されるビット詰め後のＣＭＹＫデータの量が低減するため、印刷速度がより向上する。あるいは、コントローラー２２は、「高速印刷モード」が設定された場合に、サイズしきい値をより小さな値に設定し、かつビットの低減数をより大きくするとしてもよい。
【００４６】
一方、「高画質印刷モード」が設定された場合には、コントローラー２２は、サイズしきい値をより大きな値に設定し、またはビットの低減数をより小さくする（例えば、低減数を２ビットとし、８ビットデータを６ビットデータに変換するようにする）。このようにサイズしきい値を高くすれば、ビット詰め後のＣＭＹＫデータの転送よりも、圧縮後ＣＭＹＫデータの転送が行なわれ易くなるため、可逆圧縮された画像を伸長処理ユニット２９で伸長することにより、画質劣化が全く無い良好な印刷結果を得ることができる。また上記のようにビットの低減数を小さくすれば、ビット詰め後のＣＭＹＫデータを復元したときの画像の劣化がより少なくなり、印刷品質が向上する。あるいは、コントローラー２２は、「高画質印刷モード」が設定された場合に、サイズしきい値をより大きな値に設定し、かつビットの低減数をより小さくするとしてもよい。このように印刷モードの設定に応じてサイズしきい値やビット低減数を可変とすることで、ユーザーの印刷品質や効率性に対する要望に適切に応えることができる。
【００４７】
また上記では、多値画像データの圧縮処理前あるいはビット数低減処理前に、中間コードから展開したＲＧＢデータを印刷エンジン３４が用いる表色系のＣＭＹＫデータに色変換するとしたが、かかる色変換は、上記データの転送後に行なってもよい。つまりコントローラー２２は、ＲＧＢデータを対象として、上記圧縮処理や、ビット数低減処理（およびビット詰め処理）を実行し、圧縮されたＲＧＢデータまたはビット詰め後のＲＧＢデータの転送を受けた印刷処理部側で、二値化処理をするまでにＲＧＢデータからＣＭＹＫデータへの色変換を行なうとしてもよい。
【００４８】
このように本実施形態によれば、コントローラー２２は、１ページの印刷対象画像を構成するバンド単位で、多値画像データを圧縮し、圧縮後のデータを二値化処理ユニット３１やＰＷＭ３２や印刷エンジン３４を備える印刷処理部側に転送する構成において、いずれか一つのバンドにかかる多値画像データでも、その圧縮後のデータサイズがサイズしきい値を越えた場合には、全てのバンドにかかる多値画像データについてそれぞれビット数低減処理およびビット詰め処理を行なうことにより、上記サイズしきい値よりもデータサイズが小さいビット詰め後のデータをバンド単位で生成し、このビット詰め後のデータを印刷処理部側に転送するとした。つまり、バンド単位の多値画像データを圧縮したときに、バス転送上適切なサイズ以下のデータが得られなかった場合でも、画像の解像度の低減や印刷エンジン３４の印刷スピードの低減を行なうことなく、一定以上の転送速度を確保することができ、結果、印刷速度の低下を確実に防止できる。
【００４９】
また、ビット数低減処理においては、多値ディザ処理あるいは多値誤差拡散処理を適用している。そのため、転送するデータサイズを確実に低減させるとともに画質の劣化を最小限に抑えることができ、ノイズやトーンジャンプの発生が抑制された質の高い印刷結果を得ることができる。また本実施形態では、１ページの印刷画像内に、圧縮および伸長された多値画像データに基づいて印刷されたバンドと、ビット数低減およびビット数復元が施された多値画像データに基づいて印刷されたバンドとが混在しないようにしているため、ページ内においてバンド毎に画質がばらつくことが防止され、高画質な印刷結果を得ることができる。
【００５０】
なお上記ではプリンター２０の例として、レーザープリンターとしてのページプリンターを挙げたが、プリンター２０の具体的な印刷機構はレーザーに限られることはない。例えば、プリンター２０は、一定方向に搬送される印刷用紙に対して、固定されたラインヘッドタイプの印刷ヘッドによってインクドットを吐出して印刷を実行するインクジェットプリンターであってもよく、かかるインクジェットプリンター内において画像データの転送を行なう構成に対し、本発明を適用するとしてもよい。
【符号の説明】
【００５１】
１０…ホストコンピューター、１１…プリンタードライバー、２０…プリンター、２１…操作パネル、２２…プリンターコントローラー、２３…Ｉ／Ｆ、２４…ＣＰＵ、２５…ＲＯＭ、２６…ＲＡＭ、２７…圧縮処理ユニット、２８…ビット詰め処理ユニット、２９…伸長処理ユニット、３０…ビット復元処理ユニット、３１…二値化処理ユニット、３２…ＰＷＭ、３３…バス、３４…印刷エンジン
【図１】
2010221518.tif 000003
【図２】
2010221518.tif 000004
【図３】
2010221518.tif 000005
【図４】
2010221518.tif 000006
【図５】
2010221518.tif 000007
【図６】
2010221518.tif 000008