JP2010221518A - 印刷装置および印刷方法 - Google Patents
印刷装置および印刷方法 Download PDFInfo
- Publication number
- JP2010221518A JP2010221518A JP2009071295A JP2009071295A JP2010221518A JP 2010221518 A JP2010221518 A JP 2010221518A JP 2009071295 A JP2009071295 A JP 2009071295A JP 2009071295 A JP2009071295 A JP 2009071295A JP 2010221518 A JP2010221518 A JP 2010221518A
- Authority
- JP
- Japan
- Prior art keywords
- image data
- bits
- value
- value image
- processing unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Record Information Processing For Printing (AREA)
- Color, Gradation (AREA)
- Image Processing (AREA)
- Facsimile Image Signal Circuits (AREA)
Abstract
【課題】データ転送の遅延およびこれに伴う印刷速度の低下を防止しかつ印刷品質の低下を防止する。
【解決手段】多値画像データを圧縮し、圧縮後の多値画像データを転送する多値画像データ処理部と、転送された圧縮後の多値画像データを伸長し、伸長後の多値画像データに基づいて印刷を行なう印刷処理部とを備える印刷装置であって、多値画像データ処理部は、圧縮後の多値画像データのデータサイズが所定のしきい値より大きい場合には、多値画像データに対して所定の擬似階調処理を行なうことにより多値画像データのビット数を低減するとともに、低減により無効化されたビットを除去し有効なビットを詰めて所定の記録領域に記録し、ビットを詰めて記録した画像データを印刷処理部に転送し、印刷処理部は、転送されたビットを詰めた画像データのビット数を多値画像データのビット数に復元し、復元後の多値画像データに基づいて印刷を行なう。
【選択図】図2
【解決手段】多値画像データを圧縮し、圧縮後の多値画像データを転送する多値画像データ処理部と、転送された圧縮後の多値画像データを伸長し、伸長後の多値画像データに基づいて印刷を行なう印刷処理部とを備える印刷装置であって、多値画像データ処理部は、圧縮後の多値画像データのデータサイズが所定のしきい値より大きい場合には、多値画像データに対して所定の擬似階調処理を行なうことにより多値画像データのビット数を低減するとともに、低減により無効化されたビットを除去し有効なビットを詰めて所定の記録領域に記録し、ビットを詰めて記録した画像データを印刷処理部に転送し、印刷処理部は、転送されたビットを詰めた画像データのビット数を多値画像データのビット数に復元し、復元後の多値画像データに基づいて印刷を行なう。
【選択図】図2
Description
本発明は、印刷装置および印刷方法に関する。
ページプリンターにおいては、印刷の高解像度化に伴い、印刷エンジン側へ転送される1ページ分の画像データのサイズ(容量)が増大している。ページプリンターでは、印刷エンジンの印刷速度に同期した印刷エンジン側へのデータ転送が求められるが、上記高解像度化や印刷高速化の要請に伴い、データ転送用のバスにおける処理負担が増大している。このような状況に鑑みて、印刷エンジン側に、圧縮された画像データを伸長(解凍あるいは展開とも言う)する機能を設けるとともに、印刷エンジン側に画像データを転送する前段部は、画像データを圧縮した上で転送することにより、印刷エンジン側へのデータ転送の高速化、効率化を図っている。
また、ページ記述言語による印刷データを中間データに変換し、中間データをラスターデータに展開してプリンターに転送することにより印刷を行なう際に、中間データからラスターデータへの展開処理時間を予測してプリンターの印字速度を変更するプリンターコントローラーが知られている(特許文献1参照。)。
しかし、上記のように転送前に画像データを圧縮して転送を受けた側で画像データを伸長する構成においては、圧縮後のデータサイズが所定サイズ(データ転送用のバスによる転送能力の下で印刷エンジンの印刷速度を低下させない程の速さで転送可能な程のデータサイズ)以下とならない場合には、印刷エンジンの印刷速度に同期したデータ転送が実現されず、結果、期待されるスピードでの印刷が実行されなくなる。このような弊害への対策として、これまでは、画像データの低解像度化や、画質劣化はあるが圧縮率が高い圧縮方式(例えば、JPEG方式などの非可逆圧縮)による画像データの圧縮により、転送速度を確保したり、或いは、印刷エンジンの印刷速度を低下(データ転送が間に合うように印刷速度を低下)させたりしていた。
上記のような低解像度化や印刷速度低下は、高解像度印刷や高速印刷という印刷エンジンが本来備える能力を発揮させないものであるから適切な処置とは言い難い。また、上述したような高い圧縮率の圧縮方式を採用すると、印刷結果にノイズ(いわゆるブロックノイズやモスキートノイズ)やトーンジャンプが発生し得るため、高解像度印刷という高い品質が求められる印刷においては適切ではなかった。なお、上記バスをより転送能力の高い製品とすることで上記弊害は低減できるが、プリンターを構成するハードウェアのコストアップを必要とするため最適な方法とは言えない。
本発明は上記課題に鑑みてなされたもので、データ転送の遅延およびこれに伴う印刷速度の低下を防止し、かつ印刷品質の低下を防止することが可能な印刷装置および印刷方法を提供することを目的とする。
上記目的を達成するため、本発明は、対象画像を表す多値画像データを所定の圧縮方式で圧縮し、圧縮後の多値画像データを転送する多値画像データ処理部と、多値画像データ処理部から転送された圧縮後の多値画像データを伸長し、伸長後の多値画像データを二値化し、二値化後の画像データに基づいて印刷を行なう印刷処理部とを備える印刷装置であって、上記多値画像データ処理部は、上記圧縮後の多値画像データのデータサイズが所定のしきい値より大きい場合には、上記多値画像データに対して所定の擬似階調処理を行なうことにより多値画像データのビット数を低減するとともに、当該低減により無効化されたビットを除去し有効なビットを詰めて所定の記録領域に記録し、当該ビットを詰めて記録した画像データを上記印刷処理部に転送し、上記印刷処理部は、上記転送された上記ビットを詰めた画像データのビット数を上記多値画像データのビット数に復元し、当該復元後の多値画像データを二値化した後の画像データに基づいて印刷を行なう。
本発明によれば、上記圧縮後の多値画像データのサイズがしきい値より大きい場合は上記ビットを詰めた画像データが印刷処理部に転送される。そのため、上記圧縮後の多値画像データのサイズがしきい値以下である場合もそうでない場合も、画像データの転送遅延が防止される。また、上記ビットを詰めた画像データは、多値画像データに所定の擬似階調処理を行なうことで生成されているため画像の劣化が少なく、結果、これを復元した多値画像データに基づく印刷画像は画質が良好なものとなる。
本発明によれば、上記圧縮後の多値画像データのサイズがしきい値より大きい場合は上記ビットを詰めた画像データが印刷処理部に転送される。そのため、上記圧縮後の多値画像データのサイズがしきい値以下である場合もそうでない場合も、画像データの転送遅延が防止される。また、上記ビットを詰めた画像データは、多値画像データに所定の擬似階調処理を行なうことで生成されているため画像の劣化が少なく、結果、これを復元した多値画像データに基づく印刷画像は画質が良好なものとなる。
上記多値画像データ処理部は、1ページ分の対象画像を所定数のラスター単位で分割した場合のバンド毎の多値画像データを対象として上記圧縮を実行する際に、少なくとも一つのバンドにかかる多値画像データの圧縮後のデータサイズが所定のしきい値より大きい場合には、圧縮済みのバンド毎の多値画像データについては伸張した上で、上記1ページを構成する全てのバンドにかかる各多値画像データについて、上記ビット数の低減および上記有効なビットを詰めることによる記録と当該ビットを詰めた画像データの転送とを実行するとしてもよい。当該構成によれば、1ページを構成する全バンドが上記伸長後の多値画像データに基づいて印刷されるか、全バンドが上記復元後の多値画像データに基づいて印刷されるかのどちらかとなるため、ページ内の印刷結果の画質にばらつきが生じない。
上記多値画像データ処理部は、印刷装置における印刷モードの設定に応じて上記しきい値を変更するとしてもよい。また、上記多値画像データ処理部は、印刷装置における印刷モードの設定に応じて、上記ビット数を低減する際の低減数を変更するとしてもよい。印刷モードの設定に応じて上記しきい値やビット低減数を変更することで、高速印刷や高画質印刷などといった、ユーザーの種々の要請に応えることができる。
上記多値画像データ処理部は、上記多値画像データに対し多値ディザ処理を適用することによって多値画像データのビット数を低減する。あるいは上記多値画像データ処理部は、上記多値画像データに対し多値誤差拡散処理を適用することによって多値画像データのビット数を低減する。ビット数低減を多値ディザ処理や多値誤差拡散処理で行なうことにより、転送するデータサイズを確実に低減させながらも画質の劣化を最小限に抑えることができる。
上記印刷処理部は、上記ビットを詰めた画像データの上位ビット側から、上記多値画像データのビット数と上記ビットを詰めた画像データのビット数との差に対応するビット数分のビットをコピーし、当該コピーしたビットを上記ビットを詰めた画像データの下位ビットとして付加することにより上記復元を行うとしてもよい。当該構成によれば、ビット数低減前の多値画像データの色が黒や白である場合に、このような黒や白を正確に復元することができ、画質劣化が少ない良好な印刷結果が得られる。
本発明の技術的思想は、印刷装置以外によっても実現可能である。例えば、印刷装置の多値画像データ処理部および印刷処理部が実行する処理工程を有する印刷方法の発明や、多値画像データ処理部および印刷処理部が実行する機能をコンピューターに実行させるコンピューター読取可能なプログラムの発明をも把握可能である。
以下、本発明の実施形態を図面を参照しながら説明する。
図1は、本実施形態にかかるプリンター20等の概略構成をブロック図により示している。プリンター20は、本発明の印刷装置の一例に該当する。プリンター20は印刷機能のみを備える装置であってもよいし、印刷機能以外にもスキャン機能やコピー機能を備えた複合機であってもよい。プリンター20には、プリンター20に対する制御装置としてのホストコンピューター10が通信可能に接続している。
図1は、本実施形態にかかるプリンター20等の概略構成をブロック図により示している。プリンター20は、本発明の印刷装置の一例に該当する。プリンター20は印刷機能のみを備える装置であってもよいし、印刷機能以外にもスキャン機能やコピー機能を備えた複合機であってもよい。プリンター20には、プリンター20に対する制御装置としてのホストコンピューター10が通信可能に接続している。
プリンター20は、操作パネル21とプリンターコントローラー(以下、コントローラーと表記)22と印刷エンジン34と有し、ページプリンターとして機能する。操作パネル21は、ユーザーから各種の指示を受付けるため及びプリンター20の状態をユーザーに提示するためのユニットである。操作パネル21は、例えば、液晶ディスプレー、LED、押しボタンスイッチ等から構成されている。コントローラー22は、インターフェース(I/F)23や、プリンター20の各部を制御するためのCPU24、ROM25、RAM26、さらには圧縮処理ユニット27、ビット詰め処理ユニット28、伸長処理ユニット29、ビット復元処理ユニット30、二値化処理ユニット31、パルス幅変調ユニット(PWM)32等を備える回路である。コントローラー22のこれら各要素や操作パネル21はバス33によって通信可能に接続されている。
コントローラー22においては、印刷対象画像の印刷を指示する印刷コマンドを入力した場合等に、CPU24がRAM26をメインメモリーとして使用しながら、ROM25に記憶された所定のプログラムに従った制御処理を実行する。また、圧縮処理ユニット27、ビット詰め処理ユニット28、伸長処理ユニット29、ビット復元処理ユニット30、二値化処理ユニット31、PWM32もそれぞれに後述する特定の処理を実行する。I/F23は、例えばケーブルを介してホストコンピューター10と接続している。ホストコンピューター10には、プリンター20の駆動を制御するためのプリンタードライバー11がインストールされており、プリンタードライバー11の機能によって印刷コマンドを生成しプリンター20に送信する。印刷エンジン34は、コントローラー22による制御に応じて印刷用紙上に印刷を行うためのユニットである。
プリンター20においては、例えば、I/F23、CPU24、ROM25、RAM26、圧縮処理ユニット27およびビット詰め処理ユニット28が多値画像データ処理部に該当し、伸長処理ユニット29、ビット復元処理ユニット30、二値化処理ユニット31、PWM32および印刷エンジン34が印刷処理部に該当する。
図2は、コントローラー22が実行する処理をフローチャートによって示している。ただし、当該フローチャートは、コントローラー22のうち多値画像データ処理部に該当する構成によって実行されるものとする。
ステップS(以下、“ステップ”の表記を省略)100では、コントローラー22は、I/F23を介して、ホストコンピューター10(プリンタードライバー11)からの印刷コマンドの受信を開始する。印刷コマンドは、所定のページ記述言語(PDLデータ)で表されたコマンドである。各コマンドとしては、例えば、写真等のビットマップ形式のイメージの描画コマンドや、CG等のベクターグラフィックス形式のデータについての描画コマンドや、文字コード(テキスト)形式のデータで記述された文字の描画コマンド等が該当する。
ステップS(以下、“ステップ”の表記を省略)100では、コントローラー22は、I/F23を介して、ホストコンピューター10(プリンタードライバー11)からの印刷コマンドの受信を開始する。印刷コマンドは、所定のページ記述言語(PDLデータ)で表されたコマンドである。各コマンドとしては、例えば、写真等のビットマップ形式のイメージの描画コマンドや、CG等のベクターグラフィックス形式のデータについての描画コマンドや、文字コード(テキスト)形式のデータで記述された文字の描画コマンド等が該当する。
S110では、コントローラー22は、受信したコマンドがどのような種類のコマンドであるか判定し、改ページコマンドであると判定した場合(Yes)にはS130に進む。一方、受信したコマンドが改ページコマンド以外の種類のコマンドであると判定した場合(No)にはS120に進む。改ページコマンドとは、1ページ分の印刷対象画像を表すコマンド群の終了(改ページ位置)を意味するコマンドであり、コントローラー22が改ページコマンドを認識した時点で、1ページ分の中間コードの生成および保存(S120)が終了したことになる。
S120では、コントローラー22は、上記受信したコマンドの解析を行い、中間コードの生成および当該中間コードのRAM26への保存を行う。つまりコントローラー22は、コマンドにおける描画関数等を解釈することにより中間コードを生成する。コントローラー22は、1ページを所定数のラスター(例えば64ラスター)単位で分割した場合に得られる複数のバンド(帯状領域)毎に、各バンドの画像に対応した中間コードを生成し、バンド番号に対応付けて保存する。本実施形態では、1ページを構成する各バンドにページ先頭から順に0〜P番までのバンド番号が付与されているものとする。S120の終了後は、S100に戻り、印刷コマンドの受信を継続する。
S130では、コントローラー22は、所定のフラグの設定を“FALSE(0)”とする。フラグの設定内容は、RAM26の所定領域に記録する。本実施形態においてフラグ=“FALSE(0)”である場合は、多値画像データについて後述のビット数低減処理およびビット詰め処理を実行しないことを意味する。
S140では、コントローラー22は、処理対象とするバンド番号BNを一つ設定する。当該フローチャートにおける最初のS140では、コントローラー22はバンド番号BN=0、と設定する。
S140では、コントローラー22は、処理対象とするバンド番号BNを一つ設定する。当該フローチャートにおける最初のS140では、コントローラー22はバンド番号BN=0、と設定する。
S150では、コントローラー22は、直近のS140で設定したバンド番号BNにかかるバンドの中間コードをRAM26上に展開することにより、バンド単位のラスターデータを生成する。ここで生成されるラスターデータは、各画素がRGB(レッド、グリーン、ブルー)等の階調値を有するデータであり、多値画像データの一例に該当する。
S160では、コントローラー22は、フラグ=“TRUE(1)”であるか否か判定する。上記S130でフラグ=“FALSE(0)”に設定しているため、S130後の最初のS160の判断では必ず“No”の判定となる。S160において“No”と判定した場合にはS170に進み、“Yes”と判定した場合にはS240に進む。
S160では、コントローラー22は、フラグ=“TRUE(1)”であるか否か判定する。上記S130でフラグ=“FALSE(0)”に設定しているため、S130後の最初のS160の判断では必ず“No”の判定となる。S160において“No”と判定した場合にはS170に進み、“Yes”と判定した場合にはS240に進む。
S170では、コントローラー22は、直近のS150で生成したラスターデータ(RGBデータ)を対象として所定の圧縮方式で圧縮し、圧縮後のデータをバンド番号と対応付けてRAM26に保存する。当該S170の処理は、圧縮処理ユニット27が実行する。本実施形態では、まずコントローラー22は、圧縮処理の前にRGBデータの表色系を印刷エンジン34が使用する記録材の色(例えば、シアン(C)、マゼンダ(M)、イエロー(Y)、ブラック(K))の表色系に色変換する。コントローラー22は、予め備えた所定の色変換ルックアップテーブル(RGB表色系とCMYK表色系との対応関係を規定したテーブル)等を参照することにより色変換を実行する。色変換によって、各画素がCMYKの階調値で表されたラスターデータ(CMYKデータ)が得られる。本実施形態では、CMYKデータは、各画素が各色CMYKを256階調(8ビット)で表現したデータとしている。CMYKデータは多値画像データの一例に該当する。圧縮処理ユニット27は、例えば、モディファイドハフマン(MH)方式による可逆圧縮を適用してCMYKデータを圧縮し、圧縮後のCMYKデータ(圧縮CMYKデータ)をRAM26に保存する。
S180では、コントローラー22は、直近のS170で保存した圧縮CMYKデータのデータサイズが所定のしきい値(サイズしきい値)より大きいか否か判定し、サイズしきい値より大きい(Yes)と判定した場合にはS190に進み、サイズしきい値以下である(No)と判定した場合にはS250に進む。S180で用いるサイズしきい値は、バンド単位の圧縮CMYKデータをバス33を介してRAM26から伸長処理ユニット29へ転送する際の転送時間をある一定時間以内に保障する圧縮CMYKデータのサイズを意味しており、これは、印刷コマンドの受信開始から印刷エンジン34による1ページの印刷が終了するまでに要する時間を所定時間内に収めるためのしきい値とも言える。このようなサイズしきい値は、例えばROM25に予め記憶されている。
S250では、コントローラー22は、0〜Pまでのバンド番号の全てをバンド番号BNとして設定し終えたか否か判定し、未設定のバンド番号がある場合(No)にはS140に戻って未設定の番号のうち最も若い番号をバンド番号BNとして設定しS150以下の処理を繰り返す。一方、0〜Pまでのバンド番号の全てをバンド番号BNとして設定し終えていると判断した場合(Yes)にはS260に進む。つまり、上記S180で圧縮CMYKデータのサイズがサイズしきい値より大きいと判定されない限りは、フラグ=“FALSE(0)”の設定は変わらない(フラグの設定はS190においてのみ変更可能)。この場合、コントローラー22は、S140〜S180,S250の処理サイクルを各バンドについて繰り返し実行し、その結果、全バンドそれぞれに対応する圧縮CMYKデータをRAM26に保存する。
S190では、コントローラー22は、RAM26の所定領域に記録済みの上記フラグの設定を“TRUE(1)”へ変更する。
S200では、コントローラー22は、ビット数低減処理およびビット詰め処理の対象とするバンド番号TBNを一つ設定する。設定し得るバンド番号TBNは、0から直近のS140で設定したバンド番号BNの値(ここではqと表現する。ただし0≦q≦P。)までとなる。つまりS200の時点で、0〜qまでの番号にかかる各バンドについて圧縮CMYKデータが生成・保存されているため、このような圧縮CMYKデータのバンド番号を一つずつバンド番号TBNとして設定するのである。当該フローチャートにおける最初のS200では、コントローラー22はバンド番号TBN=0、と設定する。
S200では、コントローラー22は、ビット数低減処理およびビット詰め処理の対象とするバンド番号TBNを一つ設定する。設定し得るバンド番号TBNは、0から直近のS140で設定したバンド番号BNの値(ここではqと表現する。ただし0≦q≦P。)までとなる。つまりS200の時点で、0〜qまでの番号にかかる各バンドについて圧縮CMYKデータが生成・保存されているため、このような圧縮CMYKデータのバンド番号を一つずつバンド番号TBNとして設定するのである。当該フローチャートにおける最初のS200では、コントローラー22はバンド番号TBN=0、と設定する。
S210では、直近のS200で設定したバンド番号TBNにかかるバンドの圧縮CMYKデータをRAM26から読み出すとともに、当該読み出した圧縮CMYKデータを所定の伸張方式によって伸張し、S170における可逆圧縮が施される前のCMYKデータへと戻す。当該S210における伸張処理は、伸長処理ユニット29によって行われるのではなく、コントローラー22における多値画像データ処理部に属する構成、例えばCPUによって実行される。
S220では、コントローラー22は、直近のS210で伸張したCMYKデータを対象として多値ディザ処理によるビット数低減処理を行うとともに、ビット数を低減した後のデータに対するビット詰め処理を行い、ビット詰め後のCMYKデータをバンド番号と対応付けてRAM26に保存する。つまり、圧縮ではない、ビット数低減処理およびビット詰め処理という手法により、画像データのサイズを小さくする。多値ディザ処理は、擬似階調処理の一種である。当該S220はビット詰め処理ユニット28が実行する。
図3は、多値ディザ処理に用いるしきい値マトリクス28aを例示している。しきい値マトリクス28aは、マトリクス内の画素位置にそれぞれしきい値テーブルV1,V2…を割り当てたものである。
図4は、しきい値テーブルVn(しきい値テーブルV1,V2…のいずれか一つ)を例示している。しきい値テーブルVnは、入力される8ビット(256階調)のデータを、例えば、5ビット(32階調)のデータに変換するためのテーブルであり、しきい値t1〜t31を有する階段状のテーブルとなっている。しきい値テーブルVnでは、入力データの階調がしきい値t1を越えると、出力データとしての階調を0から1階調上昇させ、同様に、入力データの階調がしきい値t2〜 t31を越えるたびに、出力データの階調レベルを上昇させる。このようなしきい値テーブルVnにおけるしきい値t1〜t31の設定は、しきい値テーブルV1,V2…毎に異なる。
図4は、しきい値テーブルVn(しきい値テーブルV1,V2…のいずれか一つ)を例示している。しきい値テーブルVnは、入力される8ビット(256階調)のデータを、例えば、5ビット(32階調)のデータに変換するためのテーブルであり、しきい値t1〜t31を有する階段状のテーブルとなっている。しきい値テーブルVnでは、入力データの階調がしきい値t1を越えると、出力データとしての階調を0から1階調上昇させ、同様に、入力データの階調がしきい値t2〜 t31を越えるたびに、出力データの階調レベルを上昇させる。このようなしきい値テーブルVnにおけるしきい値t1〜t31の設定は、しきい値テーブルV1,V2…毎に異なる。
ビット詰め処理ユニット28は、しきい値マトリクス28aおよびマトリクス内の各画素位置に対応する複数のしきい値テーブルV1,V2…を予め有しており、処理対象のCMYKデータにしきい値マトリクス28aを適用する。つまり、CYMKデータの各画素のCMYK毎の階調値を、しきい値マトリクス28aにおける対応する画素位置のしきい値テーブルVnで階調変換することにより、CMYKデータの各画素のCMYK毎のビット数を8ビットから5ビットへ減らす。このような多値ディザ処理では、注目する画素毎に適用するしきい値テーブルVnが異なるため、所定広さの領域について見れば、ビット数低減前のCMYKデータの濃度がほぼ正しく反映されるようになっている。
図5は、ビット詰め処理ユニット28による処理が適用されたCMYKデータの一部における変化を、模式的に示している。図5の上段では、CMYKデータを構成する各画素のCMYKの各色を8ビットで表現している。つまり、u7〜u0,v7〜v0…はCMYKの各色を構成するビットを表している。図5の中段では、上記多値ディザ処理を適用したビット数低減処理によって8ビットから5ビットに変換された後のデータを示しており、無効化された(意味を有さない)ビットには斜線を付し、データとして有効なビットを符号x4〜x0,y4〜y0…によって表している。
ビット詰め処理ユニット28は、図5の中段に示したような、ビット数低減後のデータを対象として、無効化されたビットを除去(削除)し、各画素の色を表現する有効なビットのみを互いの隙間を詰めることによりリパックする。図5の下段には、かかるビット詰めによって構築されたビット詰め後のCYMKデータを示している。ビット詰め処理ユニット28は、このように構築したビット詰め後のCMYKデータを、RAM26において、直近のS200で設定したバンド番号TBNにかかるバンドの圧縮CMYKデータに上書きして保存する。
S230では、コントローラー22は、0〜qまでのバンド番号の全てをバンド番号TBNとして設定し終えたか否か判定し、未設定のバンド番号がある場合にはS200に戻って未設定の番号のうち最も若い番号をバンド番号TBNとして設定し、S210以下の処理を繰り返す。一方、0〜qまでのバンド番号の全てをバンド番号TBNとして設定し終えていると判断した場合にはS250に進む。S230を経た後のS250において“No”の判定を行った場合、その直後のS140では、コントローラー22は、バンド番号BN=q+1、と設定する。また、S230,S250を経てS140以下の処理を繰り返す場合、S160におけるフラグ判定では、必ず“Yes”の判定となり、S240に進むことになる。
S240では、コントローラー22は、直近のS150で生成されたラスターデータ(RGBデータ)を対象として多値ディザ処理によるビット数低減処理を行うとともに、ビット数を低減した後のデータに対するビット詰め処理を行い、ビット詰め後のデータをバンド番号と対応付けてRAM26に保存する。ただしコントローラー22は、ビット数低減処理に先立って、S170と同様に、RGBデータからCMYKデータへの色変換を行なう。そしてCMYKデータを対象として、ビット詰め処理ユニット28がビット数低減処理およびビット詰め処理を実行する。ビット数低減処理およびビット詰め処理の手法はS220と同じである。なお、S240では、処理対象としているデータにかかるバンドについて圧縮CYMKデータが既にRAM26に保存されているということはないため、ビット詰め処理ユニット28は、ビット詰め後のCMYKデータをRAM26にそのまま保存する。
このように、S190においてフラグの設定が“TRUE(1)”に変更された場合(1ページ分の印刷対象画像を構成するバンド毎の多値画像データのうち、一つでもその圧縮(S170)後のデータサイズが上記サイズしきい値より大きい場合)には、それまでに圧縮済みのバンド毎の多値画像データについては伸張した上でビット数低減処理およびビット詰め処理の対象とし、未圧縮のバンド毎の多値画像データについても、ビット数低減処理およびビット詰め処理の対象とする。つまり本実施形態では、S140〜S250のサイクルが全てのバンドについて終了した時点で、RAM26に、全バンドにかかる圧縮CMYKデータが保存された状況か、全バンドにかかるビット詰め後のCMYKデータが保存された状況かのいずれか一方となる。なおS220,S240でバンド単位で生成されるビット詰め後のCMYKデータのデータサイズは、上記サイズしきい値を下回るものとする。
S260では、S140と同様に、コントローラー22は、処理対象とするバンド番号BNを一つ設定する。基本的には、当該フローチャートにおける最初のS260では、コントローラー22はバンド番号BN=0を設定する。
S270では、コントローラー22は、直近のS260で設定したバンド番号BNに対応してRAM26に保存されている圧縮CMYKデータまたはビット詰め後のCMYKデータを、印刷処理部側にバス33を介して転送する。具体的には、保存されているデータが圧縮CMYKデータであれば伸長処理ユニット29に転送し、保存されているデータがビット詰め後のCMYKデータであればビット復元処理ユニット30に転送する。
S270では、コントローラー22は、直近のS260で設定したバンド番号BNに対応してRAM26に保存されている圧縮CMYKデータまたはビット詰め後のCMYKデータを、印刷処理部側にバス33を介して転送する。具体的には、保存されているデータが圧縮CMYKデータであれば伸長処理ユニット29に転送し、保存されているデータがビット詰め後のCMYKデータであればビット復元処理ユニット30に転送する。
S280では、コントローラー22は、0〜Pまでのバンド番号の全てをS260においてバンド番号BNとして設定し終えたか否か判定し、未設定のバンド番号がある場合にはS260に戻って未設定の番号のうち最も若い番号をバンド番号BNとして設定し、S270以下の処理を繰り返す。一方、0〜Pまでのバンド番号の全てをS260においてバンド番号BNとして設定し終えていると判断した場合には、当該フローチャートを終了する。つまりS260〜S280の処理によって、全バンドにかかる圧縮CMYKデータが伸長処理ユニット29に転送されるか、或いは、全バンドにかかるビット詰め後のCMYKデータがビット復元処理ユニット30に転送される。
伸長処理ユニット29は、圧縮CMYKデータの転送を受けた場合、圧縮CMYKデータを所定の伸張方式によって伸張し、上記可逆圧縮が施される前の状態のCMYKデータへと戻し、当該伸長したCMYKデータを二値化処理ユニット31に送信する。
ビット復元処理ユニット30は、ビット詰め後のCMYKデータの転送を受けた場合、当該ビット詰め後のCMYKデータのビット数を上記ビット数低減処理前のビット数に復元する。
ビット復元処理ユニット30は、ビット詰め後のCMYKデータの転送を受けた場合、当該ビット詰め後のCMYKデータのビット数を上記ビット数低減処理前のビット数に復元する。
図6は、ビット復元処理ユニット30によるビット数の復元処理の様子を、模式的に示している。図6の上段では、図5の下段と同様に、ビット詰め後のCYMKデータを構成する各画素のビット(CMYKの1つの色あたり5ビット)を示している。ビット復元処理ユニット30は、かかる5ビットのデータを8ビットのデータに復元する。復元方法は特に限られないが、一例として、ビット復元ユニット30は、ビット詰め後のCMYKデータの上位ビット側から、上記ビット数低減処理前のビット数(8ビット)とビット詰め後のビット数(5ビット)との差に対応するビット数(3ビット)分のビットをコピーし、当該コピーしたビットをビット詰め後のCMYKデータに下位ビットとして付加する。つまり図6の下段に示すように、ビット詰め後にビットx4〜x0からなるデータについては、復元すべき3ビットを上位ビット側からコピーし、当該コピーした3ビット(ビットx4,x3,x2)を、下位ビット側に付加することで8ビットに復元する。同様に、ビット詰め後にビットy4〜y0からなるデータについては、上位ビット側からコピーした3ビット(ビットy4,y3,y2)を、下位ビット側に付加する。
このように、ビット数低減後のデータについて必要な復元分のビットを上位ビット側からコピーして補填することにより、ビット数低減前のデータの濃度、特にビット数低減前のデータが表現し得る最高濃度(11111111)および最低濃度(00000000)は、ビット数の低減およびビット数の復元を経ても基本的に保持されるため、印刷品質を保つ上で非常に好適である。
ビット復元処理ユニット30は、転送を受けたビット詰め後のCMYKデータの全画素のビット数を復元し、当該復元したCMYKデータを二値化処理ユニット31に送信する。二値化処理ユニット31は、伸長処理ユニット29またはビット復元処理ユニット30から送信されたCMYKデータの全画素のCMYK毎の階調値について二値化することにより、画素毎かつCMYK毎のドットのオン・オフを規定した二値化データを生成する。二値化処理ユニット31は、二値化データをPWM32に送信する。PWM32は、二値化データをパルス幅変調して駆動パルス信号を生成し、この駆動パルス信号を印刷エンジン34に供給する。印刷エンジン34は、例えば、駆動パルス信号により駆動されるレーザー光により感光体ドラム上の潜像を形成し、CMYKの現像トナーにより現像し、現像した画像を印刷用紙に転写する。以上により、プリンター20による1ページ分の印刷対象画像の印刷が完了する。
なお上記では、S220,S240におけるビット数の低減を多値ディザ処理によって実現するとしたが、ビット数低減の際に採用する擬似階調処理は多値ディザ処理に限られず、例えば、多値誤差拡散処理を採用してもよい。多値誤差拡散処理でビット数の低減を行なう場合、コントローラー22は、例えば上述したようなしきい値テーブルVnを用意し、CMYKデータにおける注目画素の階調値をしきい値テーブルVnに入力して階調変換(8ビットから5ビットへのビット数低減)を行なう。そして注目画素について、ビット数低減後の階調値が決定されると、当該決定した階調値が示す濃度と、本来その注目画素において表現すべきであった濃度(ビット数低減前の階調値が示す濃度)との差を濃度誤差として取り出し、この濃度誤差を注目画素の周辺画素に所定割合で拡散させる。注目画素を順次更新しながらこのようなビット数低減と濃度誤差の拡散とを繰り返すことにより、ビット数低減後の画像全体の濃度を、ビット数低減前の画像の濃度に近づけることができる。
さらに本実施形態では、S180で用いるサイズしきい値や、S220,S240のビット数低減処理におけるビットの低減数(上述した例では低減数=3ビット)を、プリンター20における印刷モードの設定に応じて変更するとしてもよい。例えば、コントローラー22は、操作パネル21やホストコンピューター10を介してユーザーからの印刷モードの設定を受付けるとともに、それまで用いていたサイズしきい値やビット低減数を、当該受け付けた設定に対応して予め定められているサイズしきい値やビット低減数に変更する。例えば、ユーザーは「高速印刷モード」や「高画質印刷モード」などを操作パネル21等を介して選択し、設定することができる。
コントローラー22は、例えば「高速印刷モード」が設定された場合には、サイズしきい値をより小さな値に設定し、またはビットの低減数をより大きくする(例えば、低減数を5ビットとし、8ビットデータを3ビットデータに変換するようにする)。このようにサイズしきい値を低くすれば、圧縮後CMYKデータの転送よりも、ビット詰め後のCMYKデータの転送が行なわれ易くなるため、プリンター20による1ページの印刷速度がより向上する。また上記のようにビットの低減数をより大きくすれば、転送されるビット詰め後のCMYKデータの量が低減するため、印刷速度がより向上する。あるいは、コントローラー22は、「高速印刷モード」が設定された場合に、サイズしきい値をより小さな値に設定し、かつビットの低減数をより大きくするとしてもよい。
一方、「高画質印刷モード」が設定された場合には、コントローラー22は、サイズしきい値をより大きな値に設定し、またはビットの低減数をより小さくする(例えば、低減数を2ビットとし、8ビットデータを6ビットデータに変換するようにする)。このようにサイズしきい値を高くすれば、ビット詰め後のCMYKデータの転送よりも、圧縮後CMYKデータの転送が行なわれ易くなるため、可逆圧縮された画像を伸長処理ユニット29で伸長することにより、画質劣化が全く無い良好な印刷結果を得ることができる。また上記のようにビットの低減数を小さくすれば、ビット詰め後のCMYKデータを復元したときの画像の劣化がより少なくなり、印刷品質が向上する。あるいは、コントローラー22は、「高画質印刷モード」が設定された場合に、サイズしきい値をより大きな値に設定し、かつビットの低減数をより小さくするとしてもよい。このように印刷モードの設定に応じてサイズしきい値やビット低減数を可変とすることで、ユーザーの印刷品質や効率性に対する要望に適切に応えることができる。
また上記では、多値画像データの圧縮処理前あるいはビット数低減処理前に、中間コードから展開したRGBデータを印刷エンジン34が用いる表色系のCMYKデータに色変換するとしたが、かかる色変換は、上記データの転送後に行なってもよい。つまりコントローラー22は、RGBデータを対象として、上記圧縮処理や、ビット数低減処理(およびビット詰め処理)を実行し、圧縮されたRGBデータまたはビット詰め後のRGBデータの転送を受けた印刷処理部側で、二値化処理をするまでにRGBデータからCMYKデータへの色変換を行なうとしてもよい。
このように本実施形態によれば、コントローラー22は、1ページの印刷対象画像を構成するバンド単位で、多値画像データを圧縮し、圧縮後のデータを二値化処理ユニット31やPWM32や印刷エンジン34を備える印刷処理部側に転送する構成において、いずれか一つのバンドにかかる多値画像データでも、その圧縮後のデータサイズがサイズしきい値を越えた場合には、全てのバンドにかかる多値画像データについてそれぞれビット数低減処理およびビット詰め処理を行なうことにより、上記サイズしきい値よりもデータサイズが小さいビット詰め後のデータをバンド単位で生成し、このビット詰め後のデータを印刷処理部側に転送するとした。つまり、バンド単位の多値画像データを圧縮したときに、バス転送上適切なサイズ以下のデータが得られなかった場合でも、画像の解像度の低減や印刷エンジン34の印刷スピードの低減を行なうことなく、一定以上の転送速度を確保することができ、結果、印刷速度の低下を確実に防止できる。
また、ビット数低減処理においては、多値ディザ処理あるいは多値誤差拡散処理を適用している。そのため、転送するデータサイズを確実に低減させるとともに画質の劣化を最小限に抑えることができ、ノイズやトーンジャンプの発生が抑制された質の高い印刷結果を得ることができる。また本実施形態では、1ページの印刷画像内に、圧縮および伸長された多値画像データに基づいて印刷されたバンドと、ビット数低減およびビット数復元が施された多値画像データに基づいて印刷されたバンドとが混在しないようにしているため、ページ内においてバンド毎に画質がばらつくことが防止され、高画質な印刷結果を得ることができる。
なお上記ではプリンター20の例として、レーザープリンターとしてのページプリンターを挙げたが、プリンター20の具体的な印刷機構はレーザーに限られることはない。例えば、プリンター20は、一定方向に搬送される印刷用紙に対して、固定されたラインヘッドタイプの印刷ヘッドによってインクドットを吐出して印刷を実行するインクジェットプリンターであってもよく、かかるインクジェットプリンター内において画像データの転送を行なう構成に対し、本発明を適用するとしてもよい。
10…ホストコンピューター、11…プリンタードライバー、20…プリンター、21…操作パネル、22…プリンターコントローラー、23…I/F、24…CPU、25…ROM、26…RAM、27…圧縮処理ユニット、28…ビット詰め処理ユニット、29…伸長処理ユニット、30…ビット復元処理ユニット、31…二値化処理ユニット、32…PWM、33…バス、34…印刷エンジン
Claims (8)
- 対象画像を表す多値画像データを所定の圧縮方式で圧縮し、圧縮後の多値画像データを転送する多値画像データ処理部と、多値画像データ処理部から転送された圧縮後の多値画像データを伸長し、伸長後の多値画像データを二値化し、二値化後の画像データに基づいて印刷を行なう印刷処理部とを備える印刷装置であって、
上記多値画像データ処理部は、上記圧縮後の多値画像データのデータサイズが所定のしきい値より大きい場合には、上記多値画像データに対して所定の擬似階調処理を行なうことにより多値画像データのビット数を低減するとともに、当該低減により無効化されたビットを除去し有効なビットを詰めて所定の記録領域に記録し、当該ビットを詰めて記録した画像データを上記印刷処理部に転送し、
上記印刷処理部は、上記転送された上記ビットを詰めた画像データのビット数を上記多値画像データのビット数に復元し、当該復元後の多値画像データを二値化した後の画像データに基づいて印刷を行なうことを特徴とする印刷装置。 - 上記多値画像データ処理部は、1ページ分の対象画像を所定数のラスター単位で分割した場合のバンド毎の多値画像データを対象として上記圧縮を実行する際に、少なくとも一つのバンドにかかる多値画像データの圧縮後のデータサイズが所定のしきい値より大きい場合には、圧縮済みのバンド毎の多値画像データについては伸張した上で、上記1ページを構成する全てのバンドにかかる各多値画像データについて、上記ビット数の低減および上記有効なビットを詰めることによる記録と当該ビットを詰めた画像データの転送とを実行することを特徴とする請求項1に記載の印刷装置。
- 上記多値画像データ処理部は、印刷装置における印刷モードの設定に応じて上記しきい値を変更することを特徴とする請求項1または請求項2に記載の印刷装置。
- 上記多値画像データ処理部は、印刷装置における印刷モードの設定に応じて、上記ビット数を低減する際の低減数を変更することを特徴とする請求項1〜請求項3のいずれかに記載の印刷装置。
- 上記多値画像データ処理部は、上記多値画像データに対し多値ディザ処理を適用することによって多値画像データのビット数を低減することを特徴とする請求項1〜請求項4のいずれかに記載の印刷装置。
- 上記多値画像データ処理部は、上記多値画像データに対し多値誤差拡散処理を適用することによって多値画像データのビット数を低減することを特徴とする請求項1〜請求項4のいずれかに記載の印刷装置。
- 上記印刷処理部は、上記ビットを詰めた画像データの上位ビット側から、上記多値画像データのビット数と上記ビットを詰めた画像データのビット数との差に対応するビット数分のビットをコピーし、当該コピーしたビットを上記ビットを詰めた画像データの下位ビットとして付加することにより上記復元を行うことを特徴とする請求項1〜請求項6のいずれかに記載の印刷装置。
- 対象画像を表す多値画像データを所定の圧縮方式で圧縮し、圧縮後の多値画像データを転送する多値画像データ処理工程と、多値画像データ処理工程から転送された圧縮後の多値画像データを伸長し、伸長後の多値画像データを二値化し、二値化後の画像データに基づいて印刷を行なう印刷処理工程とを有する印刷方法であって、
上記多値画像データ処理工程では、上記圧縮後の多値画像データのデータサイズが所定のしきい値より大きい場合には、上記多値画像データに対して所定の擬似階調処理を行なうことにより多値画像データのビット数を低減するとともに、当該低減により無効化されたビットを除去し有効なビットを詰めて所定の記録領域に記録し、当該ビットを詰めて記録した画像データを転送し、
上記印刷処理工程では、上記転送された上記ビットを詰めた画像データのビット数を上記多値画像データのビット数に復元し、当該復元後の多値画像データを二値化した後の画像データに基づいて印刷を行なうことを特徴とする印刷方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009071295A JP2010221518A (ja) | 2009-03-24 | 2009-03-24 | 印刷装置および印刷方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009071295A JP2010221518A (ja) | 2009-03-24 | 2009-03-24 | 印刷装置および印刷方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010221518A true JP2010221518A (ja) | 2010-10-07 |
Family
ID=43039221
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009071295A Pending JP2010221518A (ja) | 2009-03-24 | 2009-03-24 | 印刷装置および印刷方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010221518A (ja) |
-
2009
- 2009-03-24 JP JP2009071295A patent/JP2010221518A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7697168B2 (en) | Image processing apparatus and method for generating bitmap data and attribute information from a raster data | |
JP2007082177A (ja) | 画像形成装置、画像形成方法、及び画像形成プログラム | |
US20060092475A1 (en) | Image processing apparatus and image processing method | |
JP5367142B2 (ja) | 制御装置、制御方法およびプログラム | |
US20060203280A1 (en) | Image printing apparatus and image printing method | |
JP2006262436A (ja) | 画像処理装置 | |
JP6249623B2 (ja) | 画像処理方法および画像処理システム | |
US9716809B2 (en) | Image processing method and image processing apparatus | |
US7460158B2 (en) | Recording material consumption control for an image forming apparatus | |
JP2004112695A (ja) | 画像処理装置及びその処理方法 | |
JP7077451B2 (ja) | 画像形成装置および画像形成装置の制御方法、ならびにプログラム | |
JP4115294B2 (ja) | 画像処理装置およびその方法 | |
US20100027037A1 (en) | Image Processing Controller and Image Processing Apparatus | |
WO2005109851A1 (ja) | 画像処理装置、画像処理方法、及びプログラム | |
JP2010221518A (ja) | 印刷装置および印刷方法 | |
JP4460093B2 (ja) | カラー印刷装置およびカラー印刷システム | |
US20060092439A1 (en) | Printer controller, image forming apparatus, image forming program | |
JP4404016B2 (ja) | ドライバプログラム | |
JP4428028B2 (ja) | 画像処理装置、及び画像処理のためのプログラム | |
JP4774914B2 (ja) | 画像処理装置、および画像処理方法 | |
JP2010193030A (ja) | 画像処理のための装置、システム、方法、プログラム | |
JP2007235430A (ja) | 画像処理装置、画像配信装置、画像形成装置、画像処理方法、プログラム及び記録媒体 | |
JP2007189275A (ja) | 画像処理装置 | |
JP2007088968A (ja) | 出力システム | |
JP4330685B2 (ja) | プリント装置 |