説明

印刷時のインク/トナー・カバレージの推定を行う方法、データ処理システムおよびプログラム

【課題】圧縮データ・ストリームの形で規定された印刷データを印刷するために必要なトナー・カバレージ量の推定値を計算するための方法、装置、およびプログラムを提供すること。
【解決手段】推定値は、部分的に解凍された形のデータ・ストリームからカバレージ・データを取得し、それを使用してカバレージ推定値を求めることによる、削減された処理によって得られる。したがって、データ・ストリームのフル解凍を実施する必要はない。例えば、カバレージ・データは、少なくとも1つの濃度レベルに対する有色画素の数である。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は印刷の分野に関し、より詳細には、データ・ストリームを印刷するために必要な、トナーやインクなどのマーキング材料の量の推定に関する。
【背景技術】
【0002】
プリンタや印刷の分野では、印刷ジョブの印刷のために必要なトナーやインクなどのマーキング材料の量を推定することは有用である。例えば、この推定は、ジョブのコストを推定するため、印刷時に印刷材料の供給を制御するため、またはマーキング材料の供給がいつ切れるかの予測をユーザに提供できるように使用量を追跡するため、あるいはそれらの任意の組み合わせのために使用することができる。さらに、プリンタによっては、例えば定着機構(fuser)またはインク乾燥問題のために、印刷に使用することができるマーキング材料の量に関する制限を有するものもある。このようなプリンタについては、インク/トナー使用量の推定は、あるプリンタが特定のジョブを印刷することができるか否かを判定するために使用することができる。
【0003】
この技術分野には、インク/トナー使用量の推定に使用される、いくつかの代替方法が存在する。具体的には、使用される一方法では、印刷ジョブによって必要とされる出力の有色(設定された)ペル(pel)/画素の数を求め、次いでその数の有色ペル/画素を出力するためにどのくらいの量のインク/トナーが必要になるかを計算する。実際に、このような推定方法が使用された、従来技術によるいくつかの例が存在する。
【0004】
例えば、ゼロックス社(Xerox Corp.)の米国特許第5,636,032号は、印刷ジョブで印刷される画素の数をカウントしてインク/トナーの使用量情報を推定する方法を開示している。次いで、そのインク/トナー使用量情報を使用して、インク/トナーの供給が継続されるページ数の詳細が提供される。この解決策では、画素の数は、印刷処理中の光学ラスタ出力スキャナまたはサーマル・インクジェット・カートリッジの起動信号シーケンスを監視することによって、印刷の間に得られる。
【0005】
例えば、レックスマーク・インターナショナル社(LexmarkInternational Inc.)の米国特許第5,802,240号は、印刷ジョブの各ページごとのペル数をカウントしてトナー使用量情報を推定する方法を開示している。トナー使用量情報は、様々な印刷ジョブによって使用されるトナーの量を比較するために使用される。この解決策では、ペルのカウント数は、やはりジョブの印刷中に得られるが、この場合は、上位ビット設定の出力信号をカウントすることによって得られる。
【0006】
例えば、ヒューレット・パッカード社(Hewlett-Packard Co.)の米国特許第6,456,802号もまた、印刷ジョブ中の画素の数をカウントしてトナー使用量情報を得るための方法を開示している。トナー使用量情報は、トナー・カートリッジ内のトナー残量を追跡するために使用される。この解決策では、画素の数は、印刷中に、印刷される各画素をカウントすることによって得られる。
【0007】
これらの各方法では、ペル/画素の数は実際の印刷処理中に得られるものであり、したがってこれらの方法が、インク/トナー使用量に関する事前の(印刷前の)知識を必要とする用途には適さないことに留意されたい。例えば、このような事前の知識は、プリンタが印刷ジョブを印刷できるかどうかを判定するときに有用である。
【0008】
しかし、例えば、IBM社(IBM Corp.)の米国特許第5,937,225号もまた、印刷ジョブ中の有色画素(tonedpixel)の数をカウントしてインク/トナー使用量情報を取得する方法を開示しているが、この解決策では、画素の数は、プリンタ固有のデータ・ストリームを画素数に変換することによって得られる。したがって、この方法は、印刷前または印刷中のどちらででも実行することができる。この方法により、インク/トナー使用量に関する事前の知識を取得することが可能になるが、この方法はまた、データ・ストリームを最初にラスタ化することを必要としている。ラスタ化には大きな計算量が必要であり、したがってジョブが印刷されない場合には、好ましくないものである。印刷ジョブに必要なマーキング材料の使用量を事前に推定することに関する1つの問題点は、一般に印刷ジョブが圧縮データを含むことであることに留意されたい。例えば、良く知られた圧縮方法には、バイレベル・データに対するITU−TSS T.6 Group4、バイレベル(bi-level)またはマルチビット・データに対するLZW(Lempel-Ziv-Welch)、連続階調(continuoustone)データに対するJPEGなどがある。このような圧縮データからペル/画素カウント数を求めることは不可能であり、また解凍処理には大きな計算量が必要になる。しかし、印刷のためには解凍が必要であり、したがってマーキング材料の使用量の推定値を求めることは、このような解凍が完了した後の、印刷処理の後の時点まで遅れることになる。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】米国特許第5,636,032号
【特許文献2】米国特許第5,802,240号
【特許文献3】米国特許第6,456.802号
【特許文献4】米国特許第5,937,225号
【非特許文献】
【0010】
【非特許文献1】"JPEG Still Image DataCompression Standard" by Pennebaker and Mitchell, Van Nostrand Reinhold,1993
【発明の概要】
【発明が解決しようとする課題】
【0011】
本発明の目的は、印刷ジョブに必要なトナーまたはインクなどのマーキング材料の使用量を推定する方法を提供することであり、印刷ジョブが印刷される前に実施することが可能であり、さらに圧縮データのフル解凍を必要としない方法を提供することである。
【課題を解決するための手段】
【0012】
この課題に関して、本発明者らは、印刷ジョブにおいて、印刷データの部分的に解凍されたバージョンから、圧縮された印刷データの有色ペル数を求めることが可能な方法を実現した。このような部分的な解凍は、フル解凍と比べて計算量が比較的少なくて済むものであり、したがって、マーキング材料の推定値は、従来技術よりも印刷処理のより早い時点で得られるようになる。
【0013】
したがって、第1の態様によれば、本発明は、Group4で圧縮された印刷データを含む、Group4圧縮データ・ストリームを受信するステップと、前記Group4圧縮データ・ストリームのラン・フォーマットを取得することによって、前記印刷データの部分的な解凍を実施するステップと、前記Group4圧縮データ・ストリームのラン・フォーマットから有色画素の数を求め、前記部分的に解凍されたデータ・ストリームを使用して前記印刷データのカバレージ・データを求めるステップと、前記求められたカバレージ・データを使用して、印刷データを印刷するためのマーキング材料の量を推定するステップとを含む方法を提供する。
【0014】
第2の態様によれば、本発明は、少なくとも1つのプロセッサと、前記少なくとも1つのプロセッサからアクセス可能なインターフェースおよびメモリとを含むデータ処理システムであって、前記インターフェースが、Group4で圧縮された印刷データを含む、Group4圧縮データ・ストリームを受信し、前記少なくとも1つのプロセッサが、前記Group4圧縮データ・ストリームのラン・フォーマットを取得することによって、前記印刷データの部分的な解凍を実施するサブプロセスと、前記Group4圧縮データ・ストリームのラン・フォーマットから有色画素の数を求め、前記部分的に解凍されたデータ・ストリームを使用して前記印刷データのカバレージ・データを求めるサブプロセスと、前記求められたカバレージ・データを使用して前記印刷データを印刷するためのマーキング材料の量を推定するサブプロセスとを実施する。
【0015】
例えば、カバレージ・データは、印刷データの有色画素/ペルの数としてもよく、またマーキング材料の推定は各有色画素/ペルごとの平均濃度(intensity)値を使用して実施される。
【0016】
別法として、例えば、印刷データを印刷するために使用される装置が複数の画素濃度をサポートしている場合は、有色画素の数のカウントは複数の各濃度レベルごとに実施することができ、推定は様々な画素の様々な濃度レベルを用いて実施することができる。任意選択で、このような各濃度レベルにおける有色画素のカウントでは、印刷装置に応じた他の印刷効果も考慮される。例えば、所与の濃度の2つの有色画素に対して、印刷装置は、画素が隣接している場合には、画素が隣接していない場合と比べて、より少ないマーキング材料を要求することができる。この場合、有色画素の濃度レベルは、その画素と少なくとも1つの隣接画素の濃度レベルとに基づいて決定される。
【0017】
例えば、印刷データは、単一のカラー・プレーン(モノクローム)または複数のカラー・プレーンを含むことができる。好ましくは、印刷データが複数のカラー・プレーンを含む場合は、有色画素の数は複数の各カラー・プレーンごとに求められる。
【0018】
任意選択で、複数のカラー・プレーンを含む印刷データはさらに、複数のハイライト・カラー・プレーンを含むことができる。任意選択で、有色画素の数はさらに、複数のハイライト・カラー・プレーンに対しても求めることができる。
【0019】
任意選択で、マーキング材料の量の推定値は、印刷データを印刷するコストを求めるために使用することができる。
【0020】
任意選択で、マーキング材料の量の推定値は、所定の印刷装置がその印刷データを印刷することができるかどうかを判定するために使用することができる。
【0021】
例えば、データ・ストリームがGroup4圧縮データ・ストリームの場合は、そのデータ・ストリームは、ラン・フォーマット(runs format)の形に部分的に解凍され、カバレージ・データは、そのラン・フォーマットから、有色画素の数の形で求めることができる。さらに、この技術は、中間ラン・フォーマットを使用する任意の圧縮アルゴリズムに対して使用することができる。
【0022】
例えば、データ・ストリームがLZW(Lempel-Ziv-Welch)圧縮データ・ストリームの場合は、そのデータ・ストリームは、そのデータ・ストリームのストリング・テーブルを少なくとも部分的に復元することによって部分的に解凍される。このストリング・テーブルは、各々が関連するストリングを含む複数のエントリ(entry)を含む。次に、ストリング・テーブル内の各ストリングに対する有色画素の数を求め、求められた各有色画素の数を使用してデータ・ストリームの有色画素の数を求めることによって、カバレージ・データが得られる。任意選択で、ストリングの有色画素の数は、複数の各濃度ごとの画素の数を含む。
【0023】
例えば、データ・ストリームがJPEG圧縮データ・ストリームの場合は、そのデータ・ストリームは、圧縮データ・ストリームから画素ブロックのDC係数を取得することによって部分的に解凍され、カバレージ・データはそのDC係数を使用して画素ブロックの平均濃度レベルを求めることによって得られる。
【0024】
ここまで、本発明の目的のいくつかについて述べてきたが、他の目的については、以下の説明を添付の図面と併せて読み進めることによって明らかになるはずである。
【図面の簡単な説明】
【0025】
【図1】本発明の好ましい実施形態が有利に適用される印刷システムを示す概略構成図である。
【図2】圧縮データ・ストリームからマーキング材料の推定値を求めるための流れ図である。
【図3】Group4圧縮データ・ストリームの部分的な解凍に使用される例示的なデータ・ストリームの内容を示す図である。
【図4】LZW(Lempel-Ziv Welch)圧縮データ・ストリームの部分的な解凍に使用される例示的なデータ・ストリームの内容を示す図である。
【図5】JPEG圧縮データ・ストリームの部分的な解凍に使用される例示的なデータ・ストリームの内容を示す図である。
【発明を実施するための形態】
【0026】
図1は、本発明の好ましい実施形態が有利に適用される印刷システムの概略構成図を示す。図は、プリント・サーバ100および印刷装置110を示す。プリント・サーバ100は、ネットワーク120にアクセスするためのネットワーク・インターフェース101と、揮発性メモリ103および不揮発性メモリ104にアクセス可能なプロセッサ102と、印刷装置110に印刷要求を送信するためのプリンタ・インターフェース105を備える。印刷装置110は、プリント・サーバ100からの印刷ジョブを受信するためのホスト・インターフェース111と、揮発性メモリ113および不揮発性メモリ114にアクセス可能なプロセッサ112と、印刷ジョブを印刷するためのプリント・ヘッド115と、印刷時にプリント・ヘッド115によって使用されるトナー・リザーバ116とを備える。
【0027】
例えば、従来技術の印刷ジョブの場合、プリント・サーバ100は、ネットワーク120およびネットワーク・インターフェース101を介して、印刷用の印刷データを含む圧縮データ・ストリームを受信する。プロセッサ102は、そのデータ・ストリームを揮発性メモリ103に維持するとともに、解凍して印刷データを取得するステップと、その印刷データをラスタ化してプリンタに送信するステップとを含むサブプロセスを実施する。このサブプロセスを実施する間に、プロセッサ102は、例えば、不揮発性メモリ104に格納されたフォント情報にアクセスすることができる。次に、ラスタ化された印刷データは、印刷用の印刷ジョブとして、プリンタ・インターフェース105を介して印刷装置110に送信される。印刷装置110は、ホスト・インターフェース111を介して印刷ジョブを受信する。次いで、プロセッサ112は、その印刷ジョブを揮発性メモリ113に維持し、そのジョブをプリント・ヘッド115によって印刷するための適切な形式で提供する。この処理を実施する間に、プロセッサ112は、不揮発メモリ114の、用紙サイズなどの情報にアクセスする。次に、プリント・ヘッド115は、トナー・リザーバ116からのトナーを使用して印刷データを印刷する。
【0028】
印刷システムについての多くの代替形態が使用可能であること、例えばプリント・サーバ100と印刷装置110を単一のユニットに組み込むことができることに留意されたい。さらに、例えば、印刷装置110は、ホスト・インターフェース111の代わりに、またはそれに追加してネットワーク・インターフェースを含み、ネットワークを介して印刷ジョブを受信することもできる。同様に、プリント・サーバ100は、ネットワーク・インターフェース101の代わりに、またはそれに追加してホスト・インターフェースを含み、ホスト・インターフェースを介して印刷ジョブを受信することもできる。さらに、例えば、どちらの装置も1つまたは複数の追加のプロセッサを含むことができる。
【0029】
本発明の好ましい実施形態によれば、プリント・サーバ102は図2に示された方法を実施する。ステップ201で、ターゲット装置で印刷するための印刷データを含む圧縮されたデータ・ストリームが、ネットワーク・インターフェース101を介して受信される。次に、ステップ202で、データ・ストリームが部分的に解凍される。ステップ203で、この解凍されたデータ・ストリームから、印刷データに対するカバレージ・データが求められる。カバレージ・データには、ターゲット装置によってサポートされるかまたは印刷データの形で提供される、あるいはその両方の、1つまたは複数の濃度レベルに対する有色画素の数が含まれる。ステップ204で、ターゲット装置で印刷データを印刷するために必要なトナーの推定値が、各画素の数にトナー値を乗算した結果の和をとることによって計算される。ここで、トナー値は、その画素の数に関する濃度で単一の画素を印刷するために必要なトナーの量を表す。推定値が計算された後で、ステップ205で、この値が所定の基準(クライテリア)を満たすか否かが判定される。例えば、推定値はトナーの量でもよく、基準は印刷ジョブに使用されるトナーの最大量を表すものでもよい。代わりに、例えば、推定値は必要なトナーのコストでもよく、基準は印刷ジョブを印刷するために使用可能な金額でもよい。所定の基準が満たされていない場合は、印刷ジョブの処理を終了する。一方、基準が満たされている場合は、ステップ206で、データ・ストリームの解凍を完了して印刷データを取得し、ステップ207で、印刷データがラスタ化され、印刷のためにターゲット装置に送信される。
【0030】
ある画素を印刷するために必要なトナーの量が、所与の印刷領域に印刷される画素の総数によって決まること、したがって使用されるトナー値は、その画素の総数と画素が印刷される領域の大きさによって決まることに留意されたい。
【0031】
画素の数を取得する対象となる濃度レベルの数は、データ・ストリームの印刷に使用される印刷装置で使用可能なトナー値、および必要な推定値の精度によって決まる。
【0032】
例えば、所与のプリンタに対して、画素を印刷するために使用されるトナーの平均量を表す単一のトナー値を使用することができる。この場合、推定値は、有色画素の数に平均トナー値を乗算したものとして計算される。しかし、この計算は比較的簡単な計算であるが、生成される推定値は比較的不正確なものになる。代わりに、複数のトナー値が使用可能な場合で、例えば、各トナー値が、異なる有色画素カバレージのページを印刷するために使用されるトナーの平均量を表している場合は、比較的正確な推定値が得られる。例えば、ある装置では、5%カバレージ(すなわち、ページ上の画素の5%が有色)で第1のトナー値が指定され、10%カバレージで第2のトナー値が指定され、以下同様に指定される。この場合、ページ上の画素のカバレージが計算され、適切なトナー値を使用して推定値が求められる。さらに、求められたカバレージが、トナー値が使用可能な2つのカバレージ量の間に存在する場合は、2つのトナー値の重み付き平均を計算することもできる。
【0033】
あるいは、例えば、5濃度レベル、すなわち20%、40%、60%、80%、および100%で印刷することが可能で、各濃度レベルに対するトナー値が既知であるプリンタを考える。比較的粗い推定の場合は、有色画素の単一のカウント数が求められ、平均濃度を表すトナー値、例えば60%濃度トナー値または5つのトナー値の平均が乗算される。より正確な推定の場合は、5濃度レベルのうちの最大5レベルまでの有色画素のカウント数が求められ、適切な濃度トナー値が乗算される。
【0034】
しかし、画素を印刷するために必要なトナーの量は、どの隣接画素およびいくつの隣接画素が同時に印刷されるのかに応じて決まることがある。例えば、3×3ブロックの画素が100%濃度で印刷される場合は、中心の画素は外側の画素ほどトナーを必要としない。さらに、外側の画素は、100%濃度で印刷されるが隣接する有色画素が存在しない単一の画素ほどにはトナーを必要としない。したがって、このような効果を考慮することによって、比較的正確な推定を得ることができるが、増大した、より複雑な計算要件を負担することになる。
【0035】
したがって、当業者ならば、様々な技術を使用して様々な精度の推定値を得ることができること、また選択される技術が、その推定値が使用される用途に必要な推定の精度とその計算に使用可能な計算リソースとの間のバランスで決まることが理解されよう。
【0036】
次に、画素の数を含むカバレージ・データを求めるための好ましい実施形態を、3つの周知の圧縮方式、すなわちバイレベル(2レベル)・データのためのITU−TSS T.6 Group4、バイレベルまたはマルチビット・データのためのLZW(Lempel-Ziv-Welch)、および連続階調データのためのJPEGに対して説明する。しかし、当業者ならば、本発明が、JBIG2、RLE(RunLength Encoding)、Packbits、JPEG2000など、他の圧縮方式にも同様に適用できることが理解されよう。
【0037】
ITU−TSS T6 Group4(以下、Group4)は、バイレベル圧縮アルゴリズムの例である。バイレベル圧縮アルゴリズムは、各画素が「0」または「1」を取ることができるバイレベル・データに対して使用される。したがって、単一濃度レベルの画素の数を求めることだけが可能であり、したがってバイレベル画像(2レベル・イメージ)のカバレージ・データを計算すること、例えば、「1」の画素の数をカウントし、画像(image)サイズと比較することだけが可能である。
【0038】
Group4アルゴリズムは、2段階方式として処理することができる。第1の段階で、画像のビットマップなどの印刷データがラン・フォーッマットに変換され、第2の段階で、そのラン・フォーマットが最終のGroup4形式に圧縮される。ラン・フォーマットは、すべてが0またはすべてが1である画素列を符号化(エンコード)し、ラン・レングスまたはラン・エンドとして格納することができる。解凍はこの処理の逆である。
【0039】
例えば、図3は単純な画像ビットマップ301と、そのビットマップの16進ラン・エンド形式302を示す。画像ビットマップ301は、右下隅に2×8の黒の領域を含む4×16のバイレベル画像を示す。ラン・エンド形式302は、各行が画像ビットマップ301の1ラインを表す2バイト・ショートの数値列からなる。所与のラインに対して、最初の2バイト・ショートはバイト単位での画像ラインの長さを表す。続く2バイト・ショートは交互に、それぞれ連続する「1」および「0」の数値列の終了位置を表す。ラインの終了は終了位置の繰り返しによって示される。例えば、ラン・エンド形式ビットマップ画像の4番目のラインは、16であることを指示する長さ「00 10」(310)と、そのラインが「1」で始まらないことを指示する「00 00」(311)によって示された最初の「1」の数値列の終了位置と、ラインが8個の「0」から始まることを指示する「00 08」(312)によって示された次の「0」の数値列の終了位置と、16であることを指示する「00 10」(313)によって示された次の「1」の数値列の終了位置と、ラインの終了を指示する前の位置の繰り返し「00 10」(314)とを含む。
【0040】
本発明の好ましい実施形態によれば、Group4圧縮画像に対する画素の数を求めるために、圧縮画像を部分的に解凍してビット列(run)の詳細を取得する。この詳細から、各「1」のビット列の長さを求め、加算して有色画素の数を求めることができる。この方法は、画像をフルに解凍してビットマップから画素の数を計算するよりも、計算は高速である。有色画素の数が得られた後で、トナー/インクの推定値が計算される。
【0041】
他のバイレベル圧縮アルゴリズムにおいても、部分的に解凍してビット列の詳細を求めることが可能であることに留意されたい。さらに、図3に示されたラン・エンド形式が一例であることにも留意されたい。当業者ならば、多くの異なるラン・フォーマットが可能であることが理解されよう。
【0042】
LZW(Lempel-Ziv-Welch)圧縮は、マルチレベル圧縮アルゴリズムである。したがって、様々な濃度の画素を含むことができる。LZW圧縮は、圧縮される印刷データからストリング・テーブルおよびコードワード(codeword)・ストリームを生成することを含む。ストリング・テーブル内の各エントリは印刷データからのストリングおよび関連するコードワードを含む。コードワード・ストリームは、圧縮された印刷データを定義する一連のコードワードを含む。したがって、圧縮の間に、バイト・ストリングは、各々が1つまたは複数のバイトのストリングを表すコードワードによって効果的に置き換えられる。例えば、圧縮の間に、バイト・ストリングの最初の出現がストリング・テーブルにコピーされ、コードワードと関連づけられる。次に、同じバイト・ストリングの後続の出現は、コードワードへの参照によって置き換えられる。さらに、新しいバイト・ストリングは、以前のコードワード(プレフィックス)への参照の後に追加のバイトを続けることによって置き換えることができる。結果として、ストリング・テーブル内に新しいコードワードと新しいエントリが生成される。データが解凍されるときは、ストリング・テーブルが復元され、コードワードへの参照は、それらが表すバイト・ストリングに置き換えられる。
【0043】
LZWアルゴリズムには多くの変形があり、それらは圧縮されるデータの形に従って変更することができる。次に、図4を参照して、このようなLZWアルゴリズムの一例について説明する。図4は、16進画像データ401を含む印刷データの例を示す。この画像データ401は、圧縮されたときにストリング・テーブル402とコード・ストリーム403によって表される。画像データ401は、画像データ中に「ff」で示された、右下隅にある黒の単一濃度の2×4領域を含む8×4の画像を表す。
【0044】
LZW圧縮の間に、ストリング・テーブルは、全ての可能な単一キャラクタ(character)値で初期化される。多くのアプリケーションでは、初期化によって各可能な単一のバイト値ごとに256のエントリが生じることになるが、簡単のために、この例では、可能な値の組は「00」と「ff」に制限する。したがって、ストリング・テーブル402の最初の2つのエントリはこれらの文字を含み、それぞれコードワードの00および01に関連づけられる。この例では、それらの文字が、この段階におけるストリング・テーブル402のただ2つのエントリである。多くのアプリケーションでは、次いで、ストリング・テーブルには1つまたは複数の予約エントリが続くが、この例では、予約エントリが使用されていないことに留意されたい。
【0045】
次に、画像データ401は、最初の文字である「00」を読み出し、それを検索ストリングとして使用してストリング・テーブルを検索することによって処理される。この文字はコードワード00で見つかる。したがって、画像データからの次の(2番目の)文字が検索ストリングに付加されて「00 00」が得られ、ストリング・テーブルが再検索される。今回はテーブル内にそのストリングが見つからないので、それはコードワード02としてテーブルに追加され、見つかった最後のストリングに対するコードワード00がコード・ストリーム403に追加され、前回の検索ストリングに追加された最後の文字と画像データ内の次の(3番目の)文字を含む新しい検索ストリングが生成される。この場合、新しい検索ストリングは「00 00」(画像データの2番目と3番目の文字)であり、これはテーブル内のコードワード02で見つかる。したがって、画像データからの次の(4番目の)文字が検索ストリングに付加されて「00 00 00」が得られ、ストリング・テーブルが再検索される。今回はテーブル内にそのストリングが見つからないので、コードワード03としてテーブルに追加され、見つかった最後のストリングのコードワード02がコード・ストリーム403に追加され、前回の検索ストリングに追加された最後の文字(画像データの4番目の文字)と、画像データ内の次の(5番目の)文字とを含む新しい検索ストリングが生成される。次に、このプロセスは、ストリング・テーブル内にその検索ストリングが見つからなくなるまで、画像データから検索ストリングへの新しい1バイトの追加を続ける。見つからなくなった時点で、検索ストリングがストリング・テーブルに追加され、直前に見つかったストリングのコードワードがコード・ストリームに追加され、検索ストリングに最後に追加されたバイトと画像データからの次のバイトとを用いた新しい検索が開始される。画像データ401に対するこのプロセスが終了すると、ストリング・テーブル402とコード・ストリーム403が生成され、これらから、コード・ストリーム403と、任意選択で、初期化された形のストリング・テーブル、すなわちコードワード00および01に対するエントリだけを含む形のストリング・テーブルを復元するのに十分な情報とを含むLZW圧縮データ・ストリームが生成される。
【0046】
LZW圧縮データ・ストリームの解凍には、ストリング・テーブルの復元と、その復元されたストリング・テーブルおよびコード・ストリームを使用した印刷データの復元とが含まれる。これら2つのタスクは並列に実施することができる。しかし、本発明の好ましい実施形態によれば、有色画素の数を含むカバレージ・データを求めるために、ストリング・テーブルの復元を含む部分的な解凍が実施される。ストリング・テーブルが生成された後で、カバレージ推定値は、有色画素の数および任意選択で複数の各濃度レベルごとの有色画素の数とストリング・テーブル内の各コードワードとを関連づけるとともに、これらの数を使用してコード・ストリームに対する有色画素の数を計算することによって求められる。
【0047】
ストリング・テーブルを復元する(recreate)ためには、ストリング・テーブルは最初に全ての可能な単一キャラクタ値で初期化されるが、この情報は、圧縮されたデータ・ストリームの形で受信されるか、または予め解凍部には既知である。最初のコードワードがコード・ストリームから読み取られ、ストリング・テーブル内で検索される。次いで、後続の各コードワードが読み取られ、順に処理される。取られるアクションは、そのコードワードがストリング・テーブル内に存在しているか否かによって決まる。ストリング・テーブル内にそのコードワードが存在している場合は、次のフリー(free)コードワードを使用して、ストリング・テーブルに新しいエントリが追加される。ストリング値は、前回処理されたコードワードの値に、処理されるコードワードの最初の文字が付加された値で構成される。ストリング・テーブル内にそのコードワードが存在しない場合は、そのコードワードがストリング・テーブルに追加され、ストリング値は、前回処理されたコードワードの値に、前回処理されたコードワードの最初の文字が付加された値で構成される。
【0048】
例えば、図4を参照すると、ストリング・テーブルは、最初に、文字「00」および「ff」を含めるようにストリング・テーブル402を初期化することによって生成される。したがって、ストリング・テーブル402の最初の2つのエントリはこれらの文字を含み、それぞれコードワード00および01に関連づけられる。次に、コード・ストリーム403は、各コードワードを順に読み出して処理することによって処理される。最初のコードワード00はストリング・テーブル中に存在するので、アクションは取られない。次のコードワード02はストリング・テーブル内には存在しない。したがって、そのコードワード02は、前回処理されたコードワード(00)の値(「00」)に前回処理されたコードワード(00)の最初の文字(「00」)を付加することで与えられる「00 00」としてストリング・テーブルに追加される。この処理は、まだストリング・テーブル内に存在していない各コードワード03、04、および05を、コード・ストリームからストリング・テーブル内に構成するように継続され、2番目の05コードワードが読み込まれるまで継続される。この場合、このコードワードはすでにストリング・テーブル内に存在している。したがって、次のフリー・コードワード、すなわち06を使用して、前回処理されたコードワード(05)の値(「00 00 00 00 00」)に処理されるコードワード(05)の最初の文字(「00」)を付加した値、すなわち「00 00 00 00 00 00」を有する新しいコードワードがストリング・テーブルに追加される。次に、残りのコードワードは、それらがすでにストリング・テーブルに存在しているかどうかに応じて前述のように処理され、完全なストリング・テーブル402が構成される。
【0049】
本発明の好ましい実施形態によれば、カバレージ・データは、1つまたは複数の各濃度レベルごとの有色画素の数を、再構成されたストリング・テーブル内の各コードワードと関連づけることによって得られる。有色画素の数が求められる濃度レベルの数は、印刷データに指定された濃度レベルの数またはターゲット装置によってサポートされる濃度レベルの数、あるいはその両方によって決まる。図4の例では、印刷データは、各「ff」が1画素である単一濃度レベルを含む。したがって、印刷データの有色画素の数は、印刷データを復元することを必要とせずに、コード・ストリームにおける各コードワードの有色画素の数を加算することによって計算することができる。例えば、図4のテーブル402では、コードワード01、07、および11は1画素を含み、コードワード08、09、および12は、それぞれ2、3、および4画素を含む。コード・ストリーム403は、合計3画素となる3つの01コードワードと、2画素を含む1つの08コードワードと、3画素を含む1つの09コードワードとを含む。したがって、圧縮されたデータ・ストリームをフルに解凍することなく、総画素数は8になることが求められる。
【0050】
テーブル402において、追加される各コードワードは、他のコードワードと追加の文字によって表すことができることに留意されたい。例えば、コードワード05は、コードワード04に追加の文字「00」を付加することによって表すことができる。同様に、あるコードワードの有色画素の数は、追加文字の有色画素の数と他のコードワードの有色画素の数の和となる。
【0051】
さらに、他の例では、画像データ401には追加の値を含めることができ、その各値により、例えばグレー・スケール画像やカラー画像に必要な、画素の濃度または色の様々なレベルを指示することができることに留意されたい。この場合、画素の数は様々な濃度の画素を考慮するように修正することができる。
【0052】
JPEGアルゴリズムは、2段階の圧縮および解凍処理に基づくものである。圧縮の場合は、第1の段階で、各8×8ブロックのデータが、各々が固有の周波数を表す64個のDCT係数を出力する離散コサイン変換(DCT:Discrete Cosine Transformation)を使用して圧縮される。第2の段階で、各DCT係数は量子化値およびエントロピ符号化を用いてスケール変更される。解凍の場合は、第1の段階で、エントロピ符号化を解除し、量子化値の逆数でスケール変換することによって、64個のDCT係数が求められる。第2の段階で、逆離散コサイン変換(IDCT:InverseDiscrete Cosine Transformation)を用いて、DCT係数から各8×8ブロックのデータが復元される。しかし、このアルゴリズムは「非可逆(lossy)」であり、したがって復元された8×8ブロックのデータはその元のデータとは正確にはマッチしていない可能性があることに留意されたい。このアルゴリズムは、"JPEGStill Image Data Compression Standard" by Pennebaker and Mitchell, VanNostrand Reinhold, 1993に詳述されている。
【0053】
圧縮の間に、画像の各8×8ブロックに対するDCT係数が計算された後で、それらの係数は、そのサイズを減少させるために量子化(ある整数で除算)される。また、この量子化により、いくつかの係数がゼロに還元(reduce)されることも多い。次に、量子化された係数はエントロピ符号化される。ハフマンおよび算術と呼ばれる2つのエントロピ方式が知られているが、どちらも同一のデータ構造を利用する。この構造では、各非ゼロ量子化DCT係数は、この係数の直前にあるゼロに量子化されたDCT係数の数を表す4ビットのゼロラン・フィールドと、DCT係数を格納するために必要なビット数を示すレングス(length)・フィールドと、DCT係数とを含む。
【0054】
この構造の例として、8個の量子化DCT係数501の場合の例が図5に示されている。この例では、DCT1、DCT3、およびDCT8はそれぞれ、5、8、および3の値を有し、他のすべての係数は0である。これらの値のエントロピ符号化502が2進表現で示されており、各行は破線で示されたようなDCT係数を含む。例えば、DCT8のエントロピ符号化は、この係数の直前のゼロ量子化DCT係数の数である4(すなわち、DCT4、5、6、および7)に設定された4ビットの値(503)と、DCT8を格納するために使用されるビット数である2に設定された4ビットの値(504)と、DCT8の値である2ビットの値(505)とが含まれる。
【0055】
8×8ブロックを表す64個のDCT係数の1つはDC係数と呼ばれており、8×8ブロックの平均濃度を表す。他の63の係数はAC係数と呼ばれており、8×8ブロックの実際の画素を計算するために使用することができる周波数項(frequency term)を規定する。
【0056】
本発明の好ましい実施形態では、カバレージ・データは、JPEG印刷データの各8×8ブロックごとに、そのDC係数を取得しそれを8×8ブロックの平均濃度として使用することによって求められる。次いで、全体の印刷データについてのカバレージ推定値は、求められた平均濃度に基づいて各ブロックごとのカバレージ推定値を計算し、その結果を加算することによって計算される。
【0057】
DC係数を取得するために、JPEGデータ・ストリームは部分的に解凍される。この部分的な解凍は、エントロピ符号化から量子化されたDC係数を求め、それらを量子化解除することによってなされる。例えば、DC係数は各ブロックの最初の係数であり、DC係数が検出された後で、エントロピ符号化から次のブロックが検出される。次のブロックは、各DCT係数のレングス・フィールドを繰り返し読み出し、次のブロックが検出されるまで、次の非ゼロ係数にスキップすることによって検出される。
【0058】
任意選択で、1つまたは複数のAC係数を考慮することもできる。DC係数は良好な近似を提供するが、ブロックのトナー使用量は8×8ブロックのパターンによって変化する。例えば、ブロックが中央に小さな矩形を含み、残りがブランクの場合は、DC推定値は実際の使用量を僅かに下回ることになる。したがって、AC係数を使用して、ブロック内のトナー配分を検出し、それによって推定値を修正することができる。
【0059】
画像が1つまたは複数のカラー・プレーンを含むことができることに留意されたい。したがって、本発明の好ましい実施形態は、スポットあたり1ビットの白黒画像から、32ビット(またはそれ以上の)フル処理カラー画像までの、あらゆる種類の画像に適用可能である。
【0060】
好ましい実施形態では、本発明を3つの非常に良く知られた圧縮アルゴリズムに関して説明しているが、例えばJBIG2など、他のいくつかの圧縮アルゴリズムが同じアプローチに適していることは、当業者には明らかであろう。
【0061】
本発明は、すべてがハードウェアの実施形態、すべてがソフトウェアの実施形態、またはハードウェアとソフトウェアの両方の要素を含む実施形態の形をとることができる。好ましい実施形態では、本発明はソフトウェアの形で実装されている。ソフトウェアには、ファームウェア、常駐ソフトウェア、マイクロコードなどが含まれるが、これらに限られるものではない。
【0062】
さらに、本発明は、コンピュータまたは任意の命令実行システムによって、またはそれらとともに使用されるプログラム・コードを提供する、コンピュータで使用可能なコンピュータ・プログラムの形をとることもできる。本明細書の目的では、コンピュータで使用可能な媒体、またはコンピュータ可読の媒体は、命令実行システム、装置、もしくはデバイスによって使用される、またはそれらとともに使用されるプログラムを、収容、格納、通信、伝播、または伝送することができる任意の装置であってよい。
【0063】
媒体は、電子的、磁気的、光学的、電磁的、赤外、または半導体システム(もしくは装置もしくはデバイス)、あるいは伝播媒体でもよい。コンピュータ可読の媒体の例には、半導体または固体メモリ、磁気テープ、リムーバブル・コンピュータ・ディスケット、RAM(ランダム・アクセス・メモリ)、ROM(読出し専用メモリ)、硬質磁気ディスク、光ディスクなどがある。光ディスクの現行の例には、CD−ROM(compact disk - read only memory)、CD−RW(compact disk - read/write)、DVDなどがある。
【0064】
プログラム・コードの格納または実行、あるいはその両方に適したデータ処理システムは、システム・バスを介してメモリ素子に直接または間接に結合された少なくとも1つのプロセッサを含む。メモリ素子は、プログラム・コードの実際の実行の間に使用されるローカル・メモリ、大容量記憶装置、および実行時に大容量記憶装置からコードを取り出さなければならない回数を削減するために、少なくともプログラム・コードの一部の一時的な記憶を提供するキャッシュ・メモリを含むことができる。
【0065】
入/出力またはI/O装置(これらに限られるものではないが、キーボード、ディスプレイ、ポインティング・デバイスなど)は、直接、または中間のI/Oコントローラを介してシステムに結合することができる。
【0066】
データ処理システムが、中間にあるプライベート・ネットワークまたはパブリック・ネットワークを介して、他のデータ処理システムまたはリモート・プリンタまたは記憶装置に結合できるようにするために、ネットワーク・アダプタをシステムに結合することもできる。モデム、ケーブル・モデム、およびイーサネット(登録商標)・カードは、現在使用可能な種類のネットワーク・アダプタのほんの一例である。
【0067】
要約すれば、本発明は、圧縮データ・ストリームの形で規定された印刷データを印刷するために必要なトナー・カバレージ量の推定値を計算するための方法、装置、およびプログラムを提供する。推定値は、部分的に解凍された形のデータ・ストリームからカバレージ・データを取得し、それを使用してカバレージ推定値を求めることによる、削減された処理によって得られる。したがって、データ・ストリームのフル解凍を実施する必要はない。例えば、カバレージ・データは、少なくとも1つの濃度レベルに対する有色画素の数である。
【符号の説明】
【0068】
100 プリント・サーバ
101 ネットワーク・インターフェース
102 プロセッサ
103 揮発性メモリ
104 不揮発性メモリ
105 プリンタ・インターフェース
110 印刷装置
111 ホスト・インターフェース
112 プロセッサ
113 揮発性メモリ
114 不揮発性メモリ
115 プリント・ヘッド
116 トナー・リザーバ
120 ネットワーク
301 画像ビットマップ
302 画像ビットマップの16進ラン・エンド形式
401 16進画像データ
402 ストリング・テーブル
403 コード・ストリーム
501 DCT係数
502 エントロピ符号化

【特許請求の範囲】
【請求項1】
Group4で圧縮された印刷データを含む、Group4圧縮データ・ストリームを受信するステップと、
前記Group4圧縮データ・ストリームのラン・フォーマットを取得することによって、前記印刷データの部分的な解凍を実施するステップと、
前記Group4圧縮データ・ストリームのラン・フォーマットから有色画素の数を求め、前記部分的に解凍されたデータ・ストリームを使用して前記印刷データのカバレージ・データを求めるステップと、
前記求められたカバレージ・データを使用して、印刷データを印刷するためのマーキング材料の量を推定するステップと
を含む方法。
【請求項2】
前記カバレージ・データが複数の各濃度レベルごとの画素の数を含む、請求項1に記載の方法。
【請求項3】
前記カバレージ・データが複数のカラー・プレーンに対して求められる、請求項1に記載の方法。
【請求項4】
マーキング材料の量についての前記推定を使用して、前記印刷データを印刷するためのコストを算出するステップをさらに含む、請求項1に記載の方法。
【請求項5】
マーキング材料の量についての前記推定を使用して、所定の印刷装置が前記印刷データを印刷することができるかどうかを判定するステップをさらに含む、請求項1に記載の方法。
【請求項6】
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサからアクセス可能なインターフェースおよびメモリと
を含むデータ処理システムであって、
前記インターフェースが、Group4で圧縮された印刷データを含む、Group4圧縮データ・ストリームを受信し、
前記少なくとも1つのプロセッサが、
前記Group4圧縮データ・ストリームのラン・フォーマットを取得することによって、前記印刷データの部分的な解凍を実施するサブプロセスと、
前記Group4圧縮データ・ストリームのラン・フォーマットから有色画素の数を求め、前記部分的に解凍されたデータ・ストリームを使用して前記印刷データのカバレージ・データを求めるサブプロセスと、
前記求められたカバレージ・データを使用して前記印刷データを印刷するためのマーキング材料の量を推定するサブプロセスと
を実施する、データ処理システム。
【請求項7】
カバレージ・データが、複数の各濃度レベルごとの画素の数を含む、請求項6に記載のデータ処理システム。
【請求項8】
前記カバレージ・データが複数のカラー・プレーンに対して求められる、請求項6に記載の方法。
【請求項9】
前記少なくとも1つのプロセッサが、
マーキング材料の量についての前記推定を使用して、前記データ・ストリームを印刷するためのコストを算出するサブプロセスをさらに実施する、請求項6に記載のデータ処理システム。
【請求項10】
前記少なくとも1つのプロセッサが、
マーキング材料の量についての前記推定を使用して、所定の印刷装置が前記データ・ストリームを印刷することができるかどうかを判定するサブプロセスをさらに実施する、請求項6に記載のデータ処理システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2012−236419(P2012−236419A)
【公開日】平成24年12月6日(2012.12.6)
【国際特許分類】
【出願番号】特願2012−150800(P2012−150800)
【出願日】平成24年7月4日(2012.7.4)
【分割の表示】特願2006−252178(P2006−252178)の分割
【原出願日】平成18年9月19日(2006.9.19)
【出願人】(509129277)インフォプリント・ソリューションズ・カンパニー・エルエルシイ (26)
【Fターム(参考)】