以下、本発明を実施するための形態について図面を用いて説明する。
図1は、実施例1におけるネットワーク130で接続された印刷装置110と印刷データ処理装置120とのハードウェア構成の一例を示す図である。なお、印刷装置110と印刷データ処理装置120とは、印刷に用いられるデータを処理する装置という観点からどちらも広義の意味で「印刷データ処理装置」と呼ぶことができる。しかしながら、本明細書においては、説明の便宜上、PDL(page description language)などの印刷データを受信して、処理する装置を狭義の意味で「印刷データ処理装置」120として説明する。また、印刷データ処理装置120で処理されたデータを受信して当該受信したデータを用いて印刷処理する装置を印刷装置110として説明する。
CPU111は、印刷装置110のCPU(Central Processing Unit)である。後述する印刷装置のソフトウェア210はこのCPU111上で動作する。
メモリ113はCPU111がアクセスできるRAM(Ramdom Access Memory)である。メモリ113は後述する印刷装置のソフトウェア210の動作に必要なメモリの確保先として利用される。
ROM112は印刷装置110のROM(Read Only Memory)である。後述する印刷装置のソフトウェア210のプログラムはROM112に格納され、CPU111に読み込まれて実行される。
伸長処理機114は、可逆・非可逆を問わず圧縮データを伸長可能なハードウェアである。
ネットワークIF115は、ネットワーク130に接続して印刷データ処理装置120とデータの送受信を行うインタフェースである。
像域分離機116は、画像情報を入力として画像情報の各ピクセルの属性を抽出して属性情報を出力可能なハードウェアである。画像情報の詳細については後述する。
画像処理機117は、画像情報と属性情報とを入力として、属性情報を参照しながら画像情報の画像処理を行い、印刷用画像データを出力するハードウェアである。属性情報の詳細については後述する。
エンジン118は、画像処理機117が出力した印刷用画像データを印刷用紙に印刷する印刷エンジンである。
CPU121は印刷データ処理装置120のCPU(Central Processing Unit)である。後述する印刷データ処理装置のソフトウェア220はこのCPU121上で動作する。
メモリ122はCPU121がアクセスできるRAM(Ramdom Access Memory)である。メモリ122は後述する印刷データ処理装置のソフトウェア220の動作に必要なメモリの確保先として利用される。
ROM123はROM(Read Only Memory)である。後述する印刷データ処理装置のソフトウェア220のプログラムはROM123に格納され、CPU121に読み込まれて実行される。
ネットワークIF124は、ネットワーク130に接続して印刷装置110とデータの送受信を行うインタフェースである。
図2は、印刷装置110と印刷データ処理装置120とのソフトウェア構成の一例を示す図である。
印刷装置110のソフトウェア210は例えば6つのソフトウェアモジュールで構成される。管理部211は印刷装置の全体処理を管理するモジュールである。ネットワーク制御部212はネットワークの接続やデータの送受信を制御するモジュールである。像域分離機制御部213、画像処理機制御部214、伸長処理機制御部215は、それぞれ印刷装置110のハードウェアである、像域分離機116、画像処理機117、伸長処理機114を制御するモジュールである。伸長処理機制御部215はネットワーク制御部212で受信した圧縮された画像情報と属性情報とを伸長する。像域分離機制御部213は、伸長処理機制御部215で伸長された画像情報から属性情報を抽出する。画像処理機制御部214は、像域分離機制御部213で抽出された属性情報と、伸長処理機制御部215で伸長された画像情報および属性情報とを用いて画像処理を行い、印刷用画像データを出力する。エンジン制御部216は、印刷装置110のエンジン118を制御するモジュールである。エンジン制御部216は、画像処理機制御部214で出力された印刷用画像データを用いて印刷する。
一方、印刷データ処理装置120のソフトウェア220は、例えば5つのソフトウェアモジュールで構成される。管理部221は印刷データ処理装置の全体処理を管理するモジュールである。ネットワーク制御部222はネットワークの接続やデータの送受信を制御するモジュールである。解析部223は印刷データ処理装置が取得した印刷データの解析を行うモジュールである。描画部224は解析部223における印刷データの解析結果を入力にして画像情報と属性情報とを出力するモジュールである。圧縮部225は描画部224で出力された画像情報と属性情報とをそれぞれ圧縮可能なモジュールである。
実施例1における印刷データのデータ構造の一例を図3に、画像情報および属性情報の一例を図4にそれぞれ示す。
印刷データ300は以下のような複数のコマンドで構成される。印刷データ開始コマンド301aは印刷データの開始を示し、印刷データの終了を示す印刷データ終了コマンド301bと対になる。印刷データ開始コマンド301aに含まれる情報は、印刷データ終了コマンド301bまで有効となる。メディア開始コマンド302aは印刷用紙の種類を示す情報を含み、メディア終了コマンド302bと対になる。メディア開始コマンド302aの情報は、メディア終了コマンド302bまで有効となる。ページ開始コマンド303aはページの開始を示し、ページ終了コマンド303bと対になる。
描画コマンド304は描画対象のオブジェクトを描画するための描画命令である。例えば、文字を描画する文字描画命令、イメージを描画するイメージ描画命令というように、描画命令はオブジェクトの属性毎に存在する。解析部223はこの描画命令を解析することで描画対象のオブジェクトが、例えば文字なのか、イメージなのか、その属性を判定できる。そして、描画部224は、解析部223の解析結果を元に、オブジェクトの形状をビットマップ化した画像情報410とオブジェクトの属性をビットマップ化した属性情報420とを出力する。
実施例1では、画像情報410の1ピクセルは、RGB値を示すR/G/Bそれぞれ8ビット、合計24ビットで構成する。属性情報420の1ピクセルは、図5の510に示す4ビットで構成する。符号511のbit0、bit1は、その組み合わせでイメージ(00)、グラフィック(01)、線(10)、文字(11)という基本的なオブジェクトを示す。符号512のbit2が1の場合、オブジェクトが小さいオブジェクトや細いオブジェクトを示す。符号513のbit3が1の場合、それはそのピクセルがオブジェクトではなく、オブジェクトが描画される際の下地となる背景であることを示す。本実施例で利用するオブジェクトの全属性とビット列の関係は表520の通りである。なお、図5の例では、背景はbit3のみならず、他のbitも1である例について説明している。
属性情報420で“ISLAND”と描画された421の領域の値が“0x3”の場合、画像情報410で“ISLAND”と描画された領域411が文字属性であることを示す。同様に描画領域422、423がそれぞれ“0x0”、“0x1”だった場合、描画領域412はイメージ属性、描画領域413はグラフィック属性であることを示す。オブジェクトが描画されていない領域424の属性は背景属性を示す“0xF”となる。
図6は実施例1における印刷データ処理装置のソフトウェア220の処理の一例を示すフローチャート図である。図6に示す処理は、ROM123に記憶されたプログラムをCPU121が実行することによって実現される。
ステップS601において、印刷データ処理装置の管理部221はネットワーク制御部222を利用してネットワークIF124から印刷データを受信する。受信する印刷データは、印刷装置110から受信したものであってもよいし、印刷装置110に印刷させる制御命令とともに他の装置から受信したものであってもよい。
ステップS602において、解析部223は受信した印刷データを解析する。解析部223は、上述したように、印刷データを参照して解析結果を出力する。
ステップS603において、描画部224は解析部223の解析結果を入力にして、図4で説明したような画像情報と属性情報とを生成して出力する。
ステップS604において、圧縮部225は、描画部224で出力された画像情報と属性情報とをそれぞれ圧縮する。この時圧縮部225は、画像情報に対しては非可逆方式の圧縮を、属性情報に対しては可逆方式の圧縮を施す。属性情報は、上述したように領域における情報の違いをビット単位で明確に示すので、伸張時に情報の欠落が生じない可逆方式の圧縮を採用している。一方、画像情報は伸張時に情報の欠落が生じたとしても、周囲の画像情報および属性情報から欠落した情報を補間できるので、より圧縮率が高い非可逆方式の圧縮を採用している。転送時のパフォーマンスを考慮すると、画像情報は非可逆方式であることが好ましいが、運用に応じて画像情報を可逆方式で圧縮する方式を採用してもよい。
ステップS605において、管理部221は、転送条件を満たしているか、すなわち、転送パフォーマンスの問題をクリアしているかを判定する。ここで、転送パフォーマンスは、
60/印刷装置性能指標[ppm]*ネットワーク帯域[MB/sec] 式1
という式で求めることができる。印刷データ処理装置が画像情報と属性情報とを印刷装置へ転送する際、転送データのサイズがこの転送パフォーマンスの値より小さければ、印刷装置は性能指標を満たす印刷が可能である。すなわち、転送条件は、印刷装置の性能指標と、印刷装置との間のネットワーク帯域と、圧縮された画像情報のサイズと、圧縮された属性情報のサイズとに基づいて決定される。管理部221は、転送条件を満たすと判定する。転送条件を満たしていればステップS608へ、満たしていない場合はステップS606へ進む。
図14は印刷装置性能指標、ネットワーク帯域、転送パフォーマンス、および転送データサイズの関係について3つのケースの例を実値でまとめた表である。
上段1401のケースでは、印刷装置性能指標が30ppmでネットワーク帯域が5MBなので、転送パフォーマンスは10MBとなる。この時、転送データサイズが8MB(画像情報4.8MB+属性情報3.2MB)の場合、転送パフォーマンス>転送データサイズとなる。よって、管理部221は、転送条件を満たすと判定する。
中段1402のケースでは、印刷装置性能指標が40ppmでネットワーク帯域が5MBなので、転送パフォーマンスは7.5MBとなる。この時、転送データサイズが8MB(画像情報4.8MB+属性情報3.2MB)の場合、転送パフォーマンス<転送データサイズとなる。よって、管理部221は、転送条件を満たしていないと判定する。その場合は後述するように1回目の属性情報の変換を行う。しかし中段1402のケースでは、、それでも転送データサイズが7.7MB(画像情報4.8MB+属性情報2.9MB)となり、転送条件を満たしていない。さらに2回目の属性情報の変換を行うと、転送データサイズが7.4MB(画像情報4.8MB+属性情報2.6MB)となる。従って、この時点で、管理部221は、転送条件を満たすと判定する。
下段1403のケースでは、印刷装置性能指標が30ppmでネットワーク帯域が7MBなので、転送パフォーマンスは10.5MBとなる。この時、転送データサイズが8MB(画像情報4.8MB+属性情報3.2MB)だと、転送パフォーマンス>転送データサイズとなる。よって、管理部221は、転送条件を満たすと判定する。
ステップS605で管理部211が転送条件を満たしていないと判定した場合、ステップS606において、管理部221は描画部224が出力した属性情報に対して変換を行う。変換方法の詳細は後述する。
ステップS607において、圧縮部225は変換された属性情報を可逆圧縮方式で圧縮する。
ステップS608において、管理部221は、ネットワーク制御部222を利用してネットワークIF124から圧縮された画像情報と属性情報とを印刷装置に転送する。図12は転送するデータ1210の構造の一例を示す。圧縮された画像情報1213と属性情報1214は、ヘッダ1211とフッタ1215とに包まれている。変換履歴情報1212は、印刷データ処理装置が属性情報の各属性を変換したかどうかを示す情報である。ここでは文字属性、小文字属性、線属性、細線属性、グラフィック属性、イメージ属性の情報を、それぞれビット0からビット5に順に割り当て、変換した属性に対して“1”が設定される。例えば、印刷データ処理装置が文字属性を背景属性に変換した場合、ビット0に“1”が設定される。
次に、ステップS606の属性の変換方法について、図7のフローチャートを用いて詳細に説明する。一般的に、圧縮処理をする場合には、複雑な形状よりも単純な形状の方が、圧縮効率が高い。従って、本実施例では、圧縮効率が低い複雑な形状の属性を減らすことで圧縮効率を向上させる。
ステップS701において、管理部221は、属性情報の文字属性(0x3)と小文字属性(0x7)を全て背景属性(0xF)に変換する。一般的に電子文書に存在する文字は、文字属性か小文字属性である。文字は複雑な形状をしており、属性情報の圧縮効率を下げる要因になる。一方、電子文書で描画のない背景部分はまとまって多く存在している。そこで、本実施例では文字属性(0x3)と小文字属性(0x7)を背景属性(0xF)に変換し、属性情報の圧縮効率を向上させる。
ステップS702において、管理部221は、転送条件を満たすかを判定する。すなわち、文字属性と小文字属性を背景属性に変換した属性情報で印刷装置の性能指標を満たす転送パフォーマンスをクリアできるか確認する。確認方法は図6のS605からS607と同じなので、ここでは説明を省略する。管理部221が転送条件を満たさないと判定した場合はステップS703へ進み、管理部221が転送条件を満たすと判定した場合は属性の変換処理を終える。
ステップS703において、管理部221は、属性情報のグラフィック属性(0x1)、線属性(0x2)、細線属性(0x6)を全て背景属性(0xF)に変換する。一般的に電子文書に存在する図形、大小の点で構成された網点、罫線、破線などはグラフィック属性、線属性、細線属性のいずれかである。これらの属性のオブジェクトは、電子文書のページ内に点在し、複雑な形状をしていることもあり、まとまって存在する後述のイメージ属性のオブジェクトに比べて属性情報の圧縮効率が悪い。そこで、本実施例では文字属性(0x3)と小文字属性(0x7)の第1段の変換処理の次に、第2段の変換処理としてグラフィック属性(0x1)、線属性(0x2)、細線属性(0x6)を背景属性(0xF)に変換し、属性情報の圧縮効率を向上させる。
ステップS704において、管理部221は、転送条件を満たすかを再度判定する。すなわち、グラフィック属性、線属性、細線属性を背景属性に変換した属性情報によって印刷装置の性能指標を満たす転送パフォーマンスをクリアできるか確認する。管理部221が転送条件を満たさないと判定した場合はステップS705へ進み、管理部221が転送条件を満たすと判定した場合は属性の変換処理を終える。
ステップS703で管理部221が転送条件を満たしていないと判定した場合、ステップS705において、管理部221は、第3段の変換処理としてイメージ属性(0x1)を背景属性(0xF)に変換する。一般的に電子文書に存在する写真画像はイメージ属性である。イメージ属性はまとまった領域に存在することが多く、元々属性情報の圧縮効率が良い。そのため本実施例では背景属性に変換する最後の属性とした。
図13は本実施例における印刷装置のソフトウェア210の処理を示すフローチャート図である。図13における処理は、ROM112に記憶されたプログラムをCPU111が実行することによって実現される。
ステップS1301において、管理部211は、ネットワーク制御部212を利用し、印刷装置が受信した印刷データを、ネットワークIF115から印刷データ処理装置に転送する。なお、ステップS1301は必須な処理ではなく、ステップS1302から処理が開始してもよい。すなわち、印刷装置は、印刷データ処理装置に印刷データを送信することなく、印刷データ処理装置から送信されたデータを用いて以下で説明する処理を行っても良い。
ステップS1302において、管理部211はネットワーク制御部212を利用し、印刷データ処理装置が送信する転送データを受信する。転送データは例えば図12で示すようなデータである。
ステップS1302で受信した転送データに含まれる画像情報1213と属性情報1214は圧縮されているので、ステップS1303において、伸長処理機制御部215は伸長処理機114を使って圧縮された画像情報と属性情報とを伸長する。
ステップS1304において、管理部211は転送データに含まれる変換履歴情報1212を参照し、印刷データ処理装置による属性情報の変換の有無を判定する。管理部211が変換有りと判定した場合はステップS1305へ進み、管理部211が変換無しと判定した場合はステップS1307へ進む。
ステップS1305において、像域分離機制御部213は、ステップS1303で伸長された画像情報を像域分離機116に入力し、属性情報を出力する。以下、ステップS1305において像域分離機116が行う処理を図15を使って説明する。
図15は、像域分離機116の処理の一例を示す図である。画像情報は、RGBコントーン画像の為、網点等像域分離処理に必要な情報がないので、ハーフトーン処理部1500に入力される。ハーフトーン処理部1500は、RGBで表現される画像の連続諧調を様々なサイズの点に分割する事で網点を生成し色調を表現する処理を行う。ハーフトーン処理部1500で生成された画像情報を平均濃度演算部1501とエッジ強調処理部1502とに入力する。平均濃度演算部1501は、たとえば、縦5画素×横5画素などのエリアにて、25画素の平均濃度を算出する。
エッジ強調処理部1502は、たとえば、縦5画素×横5画素などのエリアにて、エッジ強調処理を実施する。本実施例ではエッジ強調用のフィルタ係数には、文字と網点のエッジを抽出するのに適した空間周波数特性を持つ微分フィルタを用いる。
平均濃度演算部1501で算出された平均濃度と、エッジ強調処理部1502でエッジ強調されたエッジ強調データとは、それぞれ網点判定部1503とエッジ判定部1504とに入力される。
網点判定部1503は、平均濃度演算部1501から出力される平均濃度データと、エッジ強調処理部1502から出力されるエッジ強調データとを参照し、平均濃度が高く、かつパターンマッチング処理で網点のパターンに一致する領域を網点として抽出する。
エッジ判定部1504は、平均濃度演算部1501から出力される平均濃度データと、エッジ強調処理部1502から出力されるエッジ強調データとを入力し、エッジを抽出する。
属性判定部1505は、網点領域をグラフィック属性と判定し、網点領域でなく、かつ、エッジ部分を文字属性と判定する。
ステップS1306において、管理部211はステップS1305で出力された属性情報のうち変換履歴情報1212で変換履歴のある属性を、ステップS1303で伸長された属性情報にマージして、新しい属性情報とする。すなわち、管理部211は、ステップS1303で伸長された属性情報を、ステップS1305で出力された属性情報を用いて更新する。
ステップS1307において、画像処理機制御部214は、ステップS1303で伸長された画像情報と、ステップS1303で伸長された属性情報またはステップS1306でマージされた属性情報とを入力にして、画像処理機117で画像処理を行う。
なお、ステップS1303からステップS1307までの処理は、必ず印刷装置の性能指標のPPMを満たす速度で行われるものとしている。尚、この一連の処理が印刷装置のパフォーマンスのボトルネックになる場合については、実施例5以降で説明する。
ステップS1308において、管理部211はステップS1307の画像処理結果をエンジン制御部216に渡し、エンジン制御部はエンジン118を使って印刷を行う。
なお、本実施例では簡単の為、変換する属性の背面は背景として説明したが、本来は属性情報の圧縮効率を高める為、背面にある属性と同じ属性に変換する。例えば、変換する属性が文字属性で、背面の属性がグラフィック属性の場合、文字属性は背景属性ではなく、グラフィック属性に変換される。背面にある属性への変換方法の詳細は実施例8で後述する。
本実施例の処理によれば、印刷データ処理装置が画像情報と属性情報とを印刷装置に転送する際、転送パフォーマンスに応じて属性情報を変換することで、印刷装置は性能指標のPPMを保った印刷が可能となる。
実施例2では、実施例1と異なる属性情報の変換方法を用いる例について説明する。なお、装置構成や処理の流れは、以下で説明する事項を除き、実施例1と同様とすることができる。
図8は、図6のステップS606の処理に関して、実施例1とは異なる属性情報の変換方法を示したフローチャート図である。実施例2では属性情報の中で領域面積の小さい属性は、領域面積の大きい属性に比べて重要ではないという考えの下、領域面積の小さい属性から順番に背景属性に変換する。
ステップS801において、印刷データ処理装置の管理部221は属性情報に含まれる各属性の領域面積を計算する。ここでの領域面積とは、その属性のピクセル数を指す。
ステップS802において、管理部221は属性情報のうち背景以外で最も領域面積が小さい属性を背景属性(0xF)に変換する。
ステップS803において、管理部221は、転送条件を満たすかを判定する。すなわち、管理部221は、最も領域面積が小さかった属性を背景属性に変換した属性情報で印刷装置の性能指標を満たす転送パフォーマンスをクリアできるか確認する。確認方法は実施例1で説明したものと同じなので、ここでは説明を省略する。管理部221が転送条件を満たすと判定した場合は属性を変換する処理を終え、転送条件を満たしていないと判定した場合はステップS804へ進む。
ステップS804において、管理部221は、現在の属性情報に背景属性以外の属性が存在するか判定する。管理部221が、現在の属性情報に背景属性以外の属性が存在すると判定した場合はステップS802へ進み、存在しないと判定した場合は属性情報の属性を変換する処理を終える。
実施例2は決まった順序で属性が変換される実施例1に比べ、印刷される領域面積が大きいオブジェクトの属性が残りやすい。少ない変換回数で転送パフォーマンスをクリアした場合、変換前と変換後の属性情報の差分も少なく、画像処理機117に対して印刷に有効な属性情報を多く入力できるため、品質の高い印刷結果を得られる。
実施例3では、実施例1および2の属性情報の変換処理とは異なる変換処理を行う例について説明する。なお、装置構成や処理の流れは、以下で説明する事項を除き、実施例1と同様とすることができる。
図9は、図6のステップS606の処理に関して、実施例1、2とは異なる属性情報の変換方法を示したフローチャート図である。関連性の強い属性のオブジェクトは、隣接していることが多く、本実施例では最初にそれらを1つ属性にまとめることで属性情報の圧縮効率を向上する。ここでの関連性の強い属性とは、1つのオブジェクト内、又は複数のオブジェクト間で同時に使われやすい属性を指す。例えば、グラフィック属性のオブジェクトは、その輪郭として線属性や細線属性のオブジェクトが使われる事が多い為、これらは関連性の強い属性であると言える。
ステップS901において、第1段の変換として、管理部221は、属性情報のうち線属性(0x2)と細線属性(0x6)とをグラフィック属性(0x1)に変換する。一般的な電子文書において、前述したようにグラフィック属性と線属性および細線属性とは関連性が強く、グラフィック属性のオブジェクトの輪郭が線属性や細線属性のオブジェクトで表現されることが多々ある。この場合、グラフィック属性と線属性又は細線属性とが複雑に隣接することで、属性情報の圧縮効率を下げる要因となっている。そこで本実施例では線属性と細線属性は、関連性の強いグラフィック属性とみなして、それぞれをグラフィック属性に変換することで、属性情報の圧縮効率を向上させる。
ステップS902において、管理部221は、転送条件を満たすかを判定する。すなわち、管理部221は、線属性と細線属性とをグラフィック属性に変換した属性情報で印刷装置の性能指標を満たす転送パフォーマンスをクリアできるか確認する。確認方法は実施例1で説明したものと同じなので、ここでは説明を省略する。管理部221が転送条件を満たすと判定した場合は属性を変換する処理を終え、転送条件を満たしていないと判定した場合はステップS903へ進む。
ステップS903において、管理部221は、第2段の変換として、属性情報のうち文字属性(0x3)と小文字属性(0x7)とを背景属性(0xF)に変換する。ここでは、実施例1で説明した図7のステップS701と同様に、複雑な形状をした文字の属性を、まとまって多く存在する背景属性に変換することで属性情報の圧縮効率を向上させる。
ステップS904において、管理部221は、転送条件を満たすかを再度判定する。すなわち、管理部221は、文字属性と小文字属性とを背景属性に変換した属性情報で印刷装置の性能指標を満たす転送パフォーマンスをクリアできるか確認する。管理部221が転送条件を満たすと判定した場合は属性を変換する処理を終え、転送条件を満たしていないと判定した場合はステップS905へ進む。
ステップS905において、管理部221は、第3段の変換として、属性情報のうちグラフィック属性(0x1)を背景(0xF)に変換する。実施例1のS703と同様、まとまって存在するイメージ属性に比べてグラフィック属性は圧縮効率が悪い。そこで、ステップS901で線属性や細線属性からグラフィック属性に変換されたものを含むグラフィック属性を背景属性に変換することで、属性情報の圧縮効率を向上させる。
ステップS906において、管理部221は、転送条件を満たすかを再度判定する。すなわち、管理部221は、グラフィック属性を背景属性に変換した属性情報で印刷装置の性能指標を満たす転送パフォーマンスをクリアできるか確認する。管理部221が転送条件を満たすと判定した場合は属性を変換する処理を終え、転送条件を満たしていないと判定した場合はステップS907へ進む。
ステップS907において、管理部221は、第4段の変換として、属性情報のうちイメージ属性(0x0)を背景(0xF)に変換する。実施例1のS705と同様、イメージ属性はまとまった領域に存在することが多く、元々圧縮効率が良いため、背景属性に変換する最後の属性とした。
実施例1では変換対象の属性は常に背景属性に変換され、属性情報からなくなってしまうが、本実施例では変換対象の属性は関連の深い属性に変換されるため、属性情報からいきなりなくなることはない。実施例3では、少ない変換回数で転送パフォーマンスをクリアした場合、より多くの属性情報を残すことができ、画像処理機117に対して印刷に有効な属性情報を多く入力できるため、品質の高い印刷結果を得られる。
実施例4は、実施例1から3で説明した属性情報の変換処理と異なる変換処理を行う例について説明する。なお、装置構成や処理の流れは、以下で説明する事項を除き、実施例1と同様とすることができる。
図10は、図6のステップS606の処理に関して、実施例1、2、3とは異なる属性情報の変換方法を示したフローチャート図である。本実施例では、圧縮しにくい属性の配列パターンに対して、その代替となる圧縮しやすい属性の配列パターンを予め用意しておく。そして、属性情報の中に圧縮しにくい属性の配列パターンを見つけた場合、代替の圧縮しやすい属性の配列パターンに変換する。
ステップS1001において、管理部221は、属性情報に対してパターンマッチングを行う。すなわち、管理部221は、圧縮しにくい属性の配列パターンが属性情報に含まれているかをパターンマッチングで検出する。図11の配列パターン1120と配列パターン1130は、それぞれ圧縮しにくい属性の配列パターンとそれに対して予め用意した圧縮しやすい代替の配列パターンの一例である。この圧縮しにくい属性の配列パターン1120は一般的な電子文書の印刷において発生する。例えばイメージオブジェクト1102の上に半透明のグラフィックオブジェクト1101を上書きすると、イメージ属性(0x0)とグラフィック属性(0x1)とが市松模様に並んだ属性情報となる。
ステップS1002において、管理部221は、属性情報の一領域が所定のパターンと一致するかを判定する。すなわち、管理部211は、属性情報の一領域と圧縮しにくい属性の配列パターンとが一致するかを判定する。管理部221が、属性情報の一領域と圧縮しにくい属性の配列パターン1120とが一致したと判定した場合はステップS1003へ、一致しないと判定した場合はステップS1006へ進む。
ステップS1003において、管理部221は、属性情報の中で圧縮しにくい属性の配列パターン1120と一致した領域を、代替の圧縮しやすい配列パターン1130に変換する。
ステップS1004において、管理部221は、属性情報の全領域のパターンマッチが終了したかを判定する。管理部221が終了したと判定した場合はステップS1005へ、終了していないと判定した場合はパターンマッチングを行う属性情報の位置をずらしてステップS1001を行う。
ステップS1005において、管理部221は、転送条件を満たすかを判定する。すなわち、管理部221は、属性の配列パターンを代替の属性の配列パターンに変換した属性情報で印刷装置の性能指標を満たす転送パフォーマンスをクリアできるか確認する。確認方法は実施例1と同じなので、ここでは説明を省略する。管理部221が転送条件を満たすと判定した場合は属性を変換する処理を終え、転送条件を満たしていないと判定した場合はステップS1006へ進む。
ステップS1006において、管理部221は属性を変換する処理を別のアルゴリズムに移行する。ここで、別のアルゴリズムとは、例えば実施例1から3で説明した各変換処理のいずれかとすることができる。
一般に、電子文書のページの全面あるいは一部の背景として利用されるオブジェクトが、圧縮しにくい属性の配列パターン1120のような属性情報を出力する場合がある。しかし、この場合、背景として利用されるオブジェクトは、印刷において重要ではない。
本実施例では先ず重要でないにも関わらず圧縮しにくい属性の配列パターンを圧縮しやすい属性の配列パターンに変換する。これによって文字・線・グラフィック・イメージなど単独で重要な属性を属性情報に残すことができ、画像処理機117に対して印刷に有効な属性情報を多く入力できるため、品質の高い印刷結果を得られる。
実施例5では、図13のS1303からS1307の処理が印刷装置の性能指標であるPPMを満たせず、パフォーマンスのボトルネックになる場合について説明する。本実施例では、実施例1から4で説明した画像情報等を圧縮して転送する過程において、変更履歴情報の代わりに、変換した属性情報の領域を示す領域情報を付加する例を説明する。そして、後に印刷装置において像域分離する際にその領域情報を利用する事により、より高速な像域分離処理を可能にする。又、本実施例では文字属性が変換される場合について説明するが、他の属性が変換される場合も同様とすることができる。なお、装置構成や処理の流れは、以下で説明する事項を除き、実施例1と同様とすることができる。
まず図3の描画コマンド304の詳細なデータ構造の一例を図16に示す。図16に示す描画コマンド304は以下の様な情報で構成される。オブジェクト情報1601はそのオブジェクトが文字オブジェクトなのか、グラフィックオブジェクトなのか等、オブジェクトの種類を示す情報が含まれている。尚、描画部224は、オブジェクト情報1601が描画コマンドに含まれていない場合は次に示すパス形状情報1602からオブジェクトを類推し、判定しても良い。
パス形状情報1602は、オブジェクトの描画範囲情報や、オブジェクトのアウトラインを点列で表現したパス点列情報等、オブジェクトの位置やアウトラインに関する情報で構成されている。描画部224はこのパス形状情報1602からそのオブジェクトの描画範囲情報やアウトライン情報を取得する。文字オブジェクトの場合、パス形状情報1602にはその文字が描画される範囲を開始位置座標と終端位置座標で示した情報と、その文字オブジェクトを表現するビットマップ形式のアウトラインに関する情報とが設定されている。
オペランド情報1603は、オブジェクトの描画に関する情報が含まれている。描画部224は例えばこのオブジェクトが単色塗りつぶしの場合、オペランド情報1603から何色で塗られているか等の情報をフィル情報として生成する。
オペレータ情報1604は、オブジェクトの階層に関連する情報が含まれている。描画部224はオペレータ情報1604から、このオブジェクトに指定されているROP(Raster Operation)やα値、Mask情報等を取得し、その情報からオブジェクトのレベル(階層)を決定しレベル情報として生成する。
なお、上記は描画コマンドに含まれる情報の一例を示すものであり、これ以外の情報が描画コマンドに含まれ得る。
図17は本実施例における印刷データ処理装置のソフトウェア220の処理の一例を示すフローチャート図である。図17に示す処理は図6と同様、ROM123に記憶されたプログラムをCPU121が実行することによって実現される。
ステップS1701において、印刷データ処理装置の管理部221はネットワーク制御部222を利用してネットワークIF124から印刷データを受信する。受信する印刷データは、印刷装置110から受信したものであってもよいし、印刷装置110に印刷させる制御命令とともに他の装置から受信したものであってもよい。
ステップS1702において、解析部223は受信した印刷データを解析する。解析部223は、上述したように、印刷データを参照して解析結果を出力する。
ステップS1703において、描画部224は解析部223の解析結果を入力にして、図4で説明したような画像情報と属性情報とを生成して出力する。図18はステップS1703の処理に関する詳細を示したフローチャート図である。このフローでは描画部224がステップS1702で解析した描画コマンド304からオブジェクトの描画範囲情報やアウトライン情報を取得し、例えば図19の様な構成の描画情報を生成する。図19の描画情報1900をオブジェクト数分生成し、それらをまとめたものをディスプレイリスト2000とする。尚、このディスプレイリスト2000の詳細は後述する。描画部224はこの描画情報1900から図4で説明したような画像情報と属性情報を出力する。尚、以下のフローは図17と同様、ROM123に記憶されたプログラムをCPU121が実行することによって実現される。
ステップS1801において、描画部224は、解析したコマンドが描画コマンドか否かを判定する。解析したコマンドが描画コマンドである場合はステップS1802へ、それ以外である場合はステップS1807へ移行する。ステップS1807では、例えばページ開始コマンド303aの場合、描画部224はページ情報生成に必要なモジュールのアクティベートやパラメータの初期化を行う。
ステップS1802において、描画部224は、描画コマンド304で設定されているオブジェクト情報1601からオブジェクトの種別を取得する。
ステップS1803において、描画部224は、パス形状情報1602からオブジェクトの描画範囲情報を取得する。文字オブジェクトの場合、描画部224は、パス形状情報1602から開始位置座標と終端位置座標で表現される描画範囲情報を取得する。
ステップS1804において、描画部224は、後述するステップS1806にて描画する為に必要なディスプレイリスト2000を構成する描画情報1900を生成する。
まず描画部224は、ステップS1802で取得したオブジェクトの種別をオブジェクト種別情報1901に格納する。文字オブジェクトの場合、図5で説明した文字オブジェクトを示すビット列“0011”をオブジェクト種別情報1901に格納する。
次に描画部224は、S1803で取得した描画範囲情報を開始位置座標1902、終端位置座標1903にそれぞれ格納する。
次に描画部224は、オペランド情報1603からフィル情報1905を生成する。尚、フィル情報1905には、オブジェクトに塗られている色やパターンに関する情報が格納される。
次に描画部224は、オペレータ情報1604からレベル情報1904を生成する。レベル情報1904は、ページ内のオブジェクトをZオーダーで表現したものであり、例えばレベル1のオブジェクトはレベル0のオブジェクトより上に書かれる事を示している。レベル情報1904は、オペレータ情報1604に含まれるROP情報等を考慮しながら、原則としてオブジェクトの受信順にレベルが決定される。今回の例では、描画部224は単純に、重なっているオブジェクトがないことを示す1つのレベルを生成し、レベル情報1904に格納する。
最後に描画部224は、パス形状情報1602からアウトライン情報1906を生成する。文字オブジェクトの場合、指定された描画範囲内にビットマップ形式で表現される。パス形状情報1602には、その文字オブジェクトのビットマップ情報と対応付けられたIDが設定されており、描画部224はそのIDを基に文字のビットマップ情報が登録されているDB等から所望のビットマップ情報を取得する。描画部224は、取得したビットマップ情報をアウトライン情報1906に格納する。
ステップS1805において、描画部224は、ステップS1804で生成した描画情報1900をディスプレイリスト2000に格納する。図20にディスプレイリスト2000の構成の一例を示す。ディスプレイリスト2000は生成した各描画情報がリンクされたリストである。ディスプレイリスト2000は各描画情報の開始位置座標1902を基にY−Xソートされている。描画部224は、ステップS1804で生成した描画情報1900の開始位置座標1902と各描画情報の座標の比較を行い、Y−X順となるように描画情報1900をディスプレイリスト2000に格納する。
ステップS1806において、描画部224は、ステップS1805で生成したディスプレイリストを基にレンダリング処理を行い、画像情報と属性情報を生成する。
ステップS1704において、圧縮部225は、描画部224で出力された画像情報と属性情報とをそれぞれ圧縮する。この時圧縮部225は、画像情報に対しては非可逆方式の圧縮を、属性情報に対しては可逆方式の圧縮を施す。属性情報は、上述したように領域における情報の違いをビット単位で明確に示すので、伸張時に情報の欠落が生じない可逆方式の圧縮を採用している。一方、画像情報は伸張時に情報の欠落が生じたとしても、周囲の画像情報および属性情報から欠落した情報を補間できるので、より圧縮率が高い非可逆方式の圧縮を採用している。転送時のパフォーマンスを考慮すると、画像情報は非可逆方式であることが好ましいが、運用に応じて画像情報を可逆方式で圧縮する方式を採用してもよい。
ステップS1705において、管理部221は、転送条件を満たしているか、すなわち、転送パフォーマンスの問題をクリアしているかを判定する。ここで、転送パフォーマンスは、実施例1と同様、式1で求めることができる。又、転送パフォーマンスの判定については、実施例1と同様の為、省略する。転送条件を満たしていればステップS1708へ、満たしていない場合はステップS1706へ進む。
ステップS1705で管理部211が転送条件を満たしていないと判定した場合、ステップS1706において、管理部221は描画部224が出力した属性情報を変換し、変換した属性の領域情報を示す像域ヒント情報を生成する。これら処理の詳細は後述する。
ステップS1707において、圧縮部225は変換された属性情報を可逆圧縮方式で圧縮する。
ステップS1708において、管理部221は、ネットワーク制御部222を利用してネットワークIF124から圧縮された画像情報と属性情報と、S1706で生成した像域ヒント情報がある場合、その像域ヒント情報とを印刷装置に転送する。図21は像域ヒント情報が含まれる転送データ1210の構造の一例を示す。圧縮された画像情報1213と属性情報1214と像域ヒント情報2100は、ヘッダ1211とフッタ1215とに包まれている。尚、像域ヒント情報の詳細については、図23を使って後述する。
次に、ステップS1706の属性の変換方法について、図22のフローチャートを用いて詳細に説明する。一般的に、圧縮処理をする場合には、複雑な形状よりも単純な形状の方が、圧縮効率が高い。従って、本実施例では、圧縮効率が低い複雑な形状の属性を減らすことで圧縮効率を向上させる。
ステップS2201において、管理部221は、属性情報の文字属性(0x3)と小文字属性(0x7)を全て背景属性(0xF)に変換する。一般的に電子文書に存在する文字は、文字属性か小文字属性である。文字は複雑な形状をしており、属性情報の圧縮効率を下げる要因になる。一方、電子文書で描画のない背景部分はまとまって多く存在している。そこで、本実施例では文字属性(0x3)と小文字属性(0x7)を背景属性(0xF)に変換し、属性情報の圧縮効率を向上させる。
ステップS2202において、管理部221は、変換した文字属性、小文字属性の領域に対応する像域ヒント情報を生成する。まず図23を使って像域ヒント情報について説明する。
図23は像域ヒント情報2100の構成の一例である。像域ヒント情報2100は変換した属性の属性種別情報2301a(文字、イメージ等)、属性の描画領域の矩形の頂点を示す開始位置座標2301b、終端位置座標2301cで構成される。像域ヒント情報は、管理部221がS2202で像域ヒント情報を生成する毎に、中段2302、下段2303のように、属性種別情報2301a、開始位置座標2301b、終端位置座標2301cが関連付けられたテーブルをそれぞれ追加する。例えば、S2202においては、管理部221は、ステップS2201で変換した属性の種別を属性種別情報2301aに追加する。すなわち、変換される前のオブジェクトの属性を属性ヒント情報の属性種別情報2301aに追加する。
管理部221は、S1703で画像生成する為に利用した描画情報から、変換した属性に対応する描画領域情報を取得する。例えば、変換した属性が文字属性であった場合、描画情報1900からオブジェクト種別情報1901が「文字」または「小文字」であるオブジェクトの描画情報をディスプレイリスト2000から抽出する。そして、その描画情報中の開始位置座標1902と終端位置座標1903を領域情報として取得する。取得した領域情報は像域ヒント情報として、図23aの中段2302のように設定される。ステップS2202において、管理部221は、この処理をディスプレイリスト2000内の描画情報1900のオブジェクト種別情報1901が文字または小文字である全てに対して繰り返す。
ステップS2203において、管理部221は、転送条件を満たすかを判定する。すなわち、文字属性と小文字属性を背景属性に変換した属性情報で印刷装置の性能指標を満たす転送パフォーマンスをクリアできるか確認する。確認方法は図17のS1705からS1707と同じなので、ここでは説明を省略する。管理部221が転送条件を満たさないと判定した場合はステップS2204へ進み、管理部221が転送条件を満たすと判定した場合は属性の変換処理を終える。
ステップS2204において、管理部221は、属性情報のグラフィック属性(0x1)、線属性(0x2)、細線属性(0x6)を全て背景属性(0xF)に変換する。一般的に電子文書に存在する図形、大小の点で構成された網点、罫線、破線などはグラフィック属性、線属性、細線属性のいずれかである。これらの属性のオブジェクトは、電子文書のページ内に点在し、複雑な形状をしていることもあり、まとまって存在する後述のイメージ属性のオブジェクトに比べて圧縮効率が悪い。そこで、本実施例では文字属性(0x3)と小文字属性(0x7)の第1段の変換処理の次に、第2段の変換処理としてグラフィック属性(0x1)、線属性(0x2)、細線属性(0x6)を背景属性(0xF)に変換し、属性情報の圧縮効率を向上させる。
ステップS2205において、管理部221は、変換したグラフィック属性、線属性、細線属性の領域に対応する像域ヒント情報を生成する。処理内容についてはS2202と同様である為、説明は省略する。
ステップS2206において、管理部221は、転送条件を満たすかを再度判定する。すなわち、グラフィック属性、線属性、細線属性を背景属性に変換した属性情報によって印刷装置の性能指標を満たす転送パフォーマンスをクリアできるか確認する。管理部221が転送条件を満たさないと判定した場合はステップS2207へ進み、管理部221が転送条件を満たすと判定した場合は属性の変換処理を終える。
ステップS2206で管理部221が転送条件を満たしていないと判定した場合、ステップS2207において、管理部221は、第3段の変換処理としてイメージ属性(0x1)を背景属性(0xF)に変換する。一般的に電子文書に存在する写真画像はイメージ属性である。イメージ属性はまとまった領域に存在することが多く、元々圧縮効率が良い。そのため本実施例では背景属性に変換する最後の属性とした。
ステップS2208において、管理部221は、変換したイメージ属性の領域に対応する像域ヒント情報を生成する。処理内容についてはS2202と同様である為、説明は省略する。
図24は本実施例における印刷装置のソフトウェア210の処理を示すフローチャート図である。図24における処理は、ROM112に記憶されたプログラムをCPU111が実行することによって実現される。
ステップS2401において、管理部211は、ネットワーク制御部212を利用し、印刷装置が受信した印刷データを、ネットワークIF115から印刷データ処理装置に転送する。なお、ステップS2401は必須な処理ではなく、ステップS2402から処理が開始してもよい。すなわち、印刷装置は、印刷データ処理装置に印刷データを送信することなく、印刷データ処理装置から送信されたデータを用いて以下で説明する処理を行っても良い。
ステップS2402において、管理部211はネットワーク制御部212を利用し、印刷データ処理装置が送信する転送データを受信する。本実施例の転送データは例えば図21で示すようなデータである。
ステップS2402で受信した転送データに含まれる画像情報1213と属性情報1214は圧縮されているので、ステップS2403において、伸長処理機制御部215は伸長処理機114を使って圧縮された画像情報と属性情報とを伸長する。
ステップS2404において、管理部211は受信した転送データに像域ヒント情報2100が付加されているかを判定し、印刷データ処理装置による属性情報の変換の有無を判定する。管理部211が属性ヒント情報2100が付加されていると判定した場合はステップS2405へ進み、付加されていないと判定した場合はステップS2408へ進む。
ステップS2405において、管理部211は像域ヒント情報2100から属性種別情報2301aと開始位置座標2301bと終端位置座標2301cとを取得する。
ステップS2406において、像域分離機制御部213は、ステップS2403で伸長された画像情報のうち、S2405で得られた開始位置座標2301bと終端位置座標2301c表現される矩形領域を、像域分離機116に対して入力する。像域分離機116は、該矩形領域に対する属性情報を出力する。ステップS2406において像域分離機116が行う処理は実施例1と同様の為、ここでは説明を省略する。
ステップS2407において、管理部211はステップS2406で出力された属性情報を、ステップS2403で伸長された属性情報にマージして、新しい属性情報とする。すなわち、管理部211は、ステップS2403で伸長された属性情報を、ステップS2406で出力された属性情報を用いて更新する。
ステップS2408において、画像処理機制御部214は、ステップS1303で伸長された画像情報と、ステップS2403で伸長された属性情報またはステップS2407でマージされた属性情報とを入力にして、画像処理機117で画像処理を行う。
ステップS2409において、管理部211はステップS2408の画像処理結果をエンジン制御部216に渡し、エンジン制御部はエンジン118を使って印刷を行う。
一般的に、像域分離処理のパフォーマンスは処理する面積に比例する。本実施例では、実施例1から4までに比べ、伸長した画像情報に対し像域分離処理を行う面積が小さくなる為、像域分離処理におけるパフォーマンスを向上させる事ができる。本実施例による効果を図25を使って説明する。
図25は、評価環境2500で示すように、印刷装置性能指標が30PPMの印刷装置において、ネットワーク帯域が5MB/sec、転送データサイズが全てのページが12MBの10ページデータを投入した場合の効果についてまとめたものである。尚、式1により、この環境における転送パフォーマンスは10MBであることが分かる。又、ページサイズの半分の領域に対して属性変換を行ったものとしている。又、図25におけるディスプレイリスト生成処理、画像転送処理、像域分離処理、印刷処理の各ステージはパイプラインで処理できるものとする。尚、印刷装置性能指標が30PPMを満たす為には、ディスプレイリスト生成処理、画像転送処理、像域分離処理、印刷処理のパイプラインの全ステージにおいて、2sec以内である必要がある。
上段2501は、本件における属性変換処理や像域ヒント情報付加をしない例を示している。上段2501では、ディスプレイリスト生成処理、像域分離処理、印刷処理はPPMを満たすが、画像転送処理において、転送パフォーマンス<転送データサイズとなり、1ページ当たりの平均印刷速度が3secとなる。その為、画像転送処理がパフォーマンスのボトルネックとなり、印刷装置性能指標を満たせない。
中段2502は、実施例1から4で説明した属性変換処理を行うが、本実施例で説明した像域ヒント情報を付加しない例である。中段2502では、ディスプレイリスト生成処理、印刷処理はPPMを満たし、属性変換処理により、画像転送処理もPPMを満たす。しかし、像域分離処理に3secを要することから、1枚当たりの平均印刷速度が3secとなる為、印刷装置性能指標を満たせない。
下段2503は、本実施例で説明した、属性変換処理を行い、更に変換した領域情報を示す像域ヒント情報を付加する例である。下段2503では、中段2502と同様、ディスプレイリスト生成処理、印刷処理はPPMを満たし、属性変換処理により、画像転送処理もPPMを満たす。更に像域分離処理に関して、像域分離処理面積に応じて中段2502の処理の半分の時間で済む為、1.5secとなる。以上から1枚当たりの平均印刷速度が2secとなるので、印刷装置性能指標を満たすことができる。
本実施例の処理によれば、印刷データ処理装置が、属性変換を行った領域を示す情報を付加して転送データを印刷装置に送信することにより、印刷装置側で像域分離を行う領域を特定することができる。これにより、印刷装置側で必要な領域のみに対して像域分離を行うことができるので、印刷装置は性能指標のPPMを保った印刷が可能となる。
実施例6では、実施例5における像域ヒント情報による処理の高速化について、実施例2において適用した場合について説明する。なお、装置構成や処理の流れは、以下で説明する事項を除き、実施例5と同様とすることができる。
図26は、図17のステップS1706の処理に関して、実施例5とは異なる属性情報の変換方法を示したフローチャート図である。実施例6では属性情報の中で領域面積の小さい属性は、領域面積の大きい属性に比べて重要ではないという考えの下、領域面積の小さい属性から順番に背景属性に変換する。
ステップS2601において、印刷データ処理装置の管理部221は属性情報に含まれる各属性の領域面積を計算する。
ステップS2602において、管理部221は、属性情報のうち背景以外で最も領域面積が小さい属性を背景属性(0xF)に変換する。
ステップS2603において、管理部221は、変換した最も領域面積が小さい属性の領域に対応する像域ヒント情報を生成する。像域ヒント情報の生成処理内容についてはS2202と同様である為、説明は省略する。
ステップS2604において、管理部221は、転送条件を満たすかを判定する。すなわち、管理部221は、最も領域が少なかった属性を背景属性に変換した属性情報で印刷装置の性能指標を満たす転送パフォーマンスをクリアできるか確認する。確認方法は実施例5で説明したものと同じなので、ここでは説明を省略する。管理部221が転送条件を満たすと判定した場合は属性を変換する処理を終え、転送条件を満たしていないと判定した場合はステップS2605へ進む。
ステップS2605において、管理部221は、現在の属性情報に背景属性以外の属性が存在するか判定する。管理部221が、現在の属性情報に背景属性以外の属性が存在すると判定した場合はステップS2602へ進み、存在しないと判定した場合は属性情報の属性を変換する処理を終える。
実施例6は決まった順序で属性が変換される実施例5に比べ、印刷される領域面積が大きいオブジェクトの属性が残りやすい。少ない変換回数で転送パフォーマンスをクリアした場合、変換前と変換後の属性情報の差分も少なく、画像処理機117に対して印刷に有効な属性情報を多く入力できるため、品質の高い印刷結果を得られる。また、本実施例においても、印刷データ処理装置が、属性変換を行った領域を示す情報を付加して転送データを印刷装置に送信することにより、印刷装置側で像域分離を行う領域を特定することができる。これにより、印刷装置側で必要な領域のみに対して像域分離を行うことができるので、印刷装置は性能指標のPPMを保った印刷が可能となる。
実施例7では、実施例5における像域ヒント情報による処理の高速化について、実施例3において適用した場合について説明する。なお、装置構成や処理の流れは、以下で説明する事項を除き、実施例5と同様とすることができる。
図27は、図17のステップS1706の処理に関して、実施例5、6とは異なる属性情報の変換方法を示したフローチャート図である。関連性の強い属性のオブジェクトは、隣接していることが多く、本実施例では最初にそれらを1つ属性にまとめることで属性情報の圧縮効率を向上する。
ステップS2701において、第1段の変換として、管理部221は、属性情報のうち線属性(0x2)と細線属性(0x6)とをグラフィック属性(0x1)に変換する。一般的な電子文書において、グラフィック属性と線属性および細線属性とは関連性が強く、グラフィック属性のオブジェクトの輪郭が線属性や細線属性のオブジェクトで表現されることが多々ある。この場合、グラフィック属性と線属性又は細線属性とが複雑に隣接することで、属性情報の圧縮効率を下げる要因となっている。そこで本実施例では線属性と細線属性は、関連性の強いグラフィック属性とみなして、それぞれをグラフィック属性に変換することで、属性情報の圧縮効率を向上させる。
ステップS2702において、管理部221は、変換した線属性、細線属性の領域に対応する像域ヒント情報を生成する。処理内容についてはS2202と同様である為、説明は省略する。
ステップS2703において、管理部221は、転送条件を満たすかを判定する。すなわち、管理部221は、線属性と細線属性とをグラフィック属性に変換した属性情報で印刷装置の性能指標を満たす転送パフォーマンスをクリアできるか確認する。確認方法は実施例5で説明したものと同じなので、ここでは説明を省略する。管理部221が転送条件を満たすと判定した場合は属性を変換する処理を終え、転送条件を満たしていないと判定した場合はステップS2704へ進む。
ステップS2703において、管理部221は、第2段の変換として、属性情報のうち文字属性(0x3)と小文字属性(0x7)とを背景属性(0xF)に変換する。ここでは、実施例5で説明した図22のステップS2201と同様に、複雑な形状をした文字の属性を、まとまって多く存在する背景属性に変換することで属性情報の圧縮効率を向上させる。
ステップS2705において、管理部221は、変換した文字属性の領域に対応する像域ヒント情報を生成する。処理内容についてはS2202と同様である為、説明は省略する。
ステップS2706において、管理部221は、転送条件を満たすかを再度判定する。すなわち、管理部221は、文字属性と小文字属性とを背景属性に変換した属性情報で印刷装置の性能指標を満たす転送パフォーマンスをクリアできるか確認する。管理部221が転送条件を満たすと判定した場合は属性を変換する処理を終え、転送条件を満たしていないと判定した場合はステップS2707へ進む。
ステップS2707において、管理部221は、第3段の変換として、属性情報のうちグラフィック属性(0x1)を背景(0xF)に変換する。実施例5のS2204と同様、まとまって存在するイメージ属性に比べてグラフィック属性は圧縮効率が悪い。そこで、ステップS2701で線属性や細線属性からグラフィック属性に変換されたものを含むグラフィック属性を背景属性に変換することで、属性情報の圧縮効率を向上させる。
ステップS2708において、管理部221は、変換したグラフィック属性の領域に対応する像域ヒント情報を生成する。処理内容についてはS2202と同様である為、説明は省略する。
ステップS2709において、管理部221は、転送条件を満たすかを再度判定する。すなわち、管理部221は、グラフィック属性を背景属性に変換した属性情報で印刷装置の性能指標を満たす転送パフォーマンスをクリアできるか確認する。管理部221が転送条件を満たすと判定した場合は属性を変換する処理を終え、転送条件を満たしていないと判定した場合はステップS2710へ進む。
ステップS2710において、管理部221は、第4段の変換として、属性情報のうちイメージ属性(0x0)を背景(0xF)に変換する。実施例5のS2207と同様、イメージ属性はまとまった領域に存在することが多く、元々圧縮効率が良いため、背景属性に変換する最後の属性とした。
ステップS2711において、管理部221は、変換したイメージ属性の領域に対応する像域ヒント情報を生成する。処理内容についてはS2202と同様である為、説明は省略する。
実施例5では変換対象の属性は常に背景属性に変換され、属性情報からなくなってしまうが、本実施例では変換対象の属性は関連の深い属性に変換されるため、属性情報からいきなりなくなることはない。実施例7では、少ない変換回数で転送パフォーマンスをクリアした場合、より多くの属性情報を残すことができ、画像処理機117に対して印刷に有効な属性情報を多く入力できるため、品質の高い印刷結果を得られる。また、本実施例においても、印刷データ処理装置が、属性変換を行った領域を示す情報を付加して転送データを印刷装置に送信することにより、印刷装置側で像域分離を行う領域を特定することができる。これにより、印刷装置側で必要な領域のみに対して像域分離を行うことができるので、印刷装置は性能指標のPPMを保った印刷が可能となる。
実施例1から実施例4では、伸長した画像情報全域に対して像域分離処理を行い、実施例5から実施例7では、像域ヒント情報で特定された領域全域に対して、像域分離処理を行う例について説明した。実施例8では、単一の属性(複数の異なる属性が重なっていない)領域に対しては像域分離処理を行わない例を説明する。単一の属性領域については、像域ヒント情報に含まれる属性種別情報に基づいて当該領域の属性を判定することができるからである。単一の属性領域に対して像域分離処理を行わないことにより、印刷装置側の処理をより高速に実現する。なお、本実施例では文字属性が変換される場合について説明するが、他の属性が変換される場合も同様とすることができる。なお、装置構成や処理の流れは、以下で説明する事項を除き、実施例5と同様とすることができる。
図28は、ある領域に単一の属性しかない場合と、複数の領域が重なる場合の例について説明した図である。単一の属性領域とは、ある領域に対し、その背面に別の属性がない領域を指す。
ページ2801において、矩形領域2801aの背面に属性はなく背景となる為、この領域は単一の属性であると言える。
ページ2802において、矩形領域2802aの背面に一部、矩形領域2802bが存在する。この場合、矩形領域2802aと矩形領域2802bのXOR領域(矩形領域2802aのうち、矩形領域2802bと重なっていない領域、及び、矩形領域2802bのうち、矩形領域2802aと重なっていない領域)は単一の属性しかない領域であると言える。矩形領域2802aと矩形領域2802bのAND領域(矩形領域2802aと矩形領域2802bが重なっている領域)は複数の属性が存在すると言える。尚、矩形領域2802cは前記AND領域を示している。
本実施例では、実施例5で説明した像域ヒント情報に更にその属性が単一の属性かを示す情報を追加する事で、その情報から印刷装置で像域分離処理する際に処理する範囲を削減し、更に高速な処理を実現するものである。
まず単一の属性かを示す情報を像域ヒント情報に付加する為のフローを図29に示す。図29は、ステップS1706の属性変換処理、及び像域ヒント情報生成処理の過程で、上述した単一の属性かどうかを判定する方法、及び、その情報を付加する方法について説明したフローチャートである。
ステップS2901において、管理部221は、属性情報の文字属性(0x3)と小文字属性(0x7)を全て背景属性(0xF)に変換する。一般的に電子文書に存在する文字は、文字属性か小文字属性である。文字は複雑な形状をしており、属性情報の圧縮効率を下げる要因になる。一方、電子文書で描画のない背景部分はまとまって多く存在している。そこで、本実施例では文字属性(0x3)と小文字属性(0x7)を背景属性(0xF)に変換し、属性情報の圧縮効率を向上させる。
次にステップS2902において、管理部221は、ステップS2901で変換した属性(変換属性)の背面に背景属性および変換属性の属性以外の属性があるかどうか判定する。ここでは変換属性は、文字属性および小文字属性である。管理部221は、判定方法として、変換する属性の画素の周囲の属性を取得し、その中で最も多い属性がその背面にある属性だと判定する。例として、図30を使って説明する。尚、図30において、白塗りの画素の属性を背景属性、黒塗りの画素の属性を文字属性とする。
管理部221は、文字属性を変換する過程において、座標(4,3)の画素の文字属性を変換する際に、左隣りの画素である座標(3,3)の画素の属性を取得する。この属性は背景属性である為、管理部221は、座標(4,3)の背面は背景属性であると判定する。又、座標(5,3)の画素を変換する際に、管理部221は、同じく左隣りの座標(4,3)の画素の属性を取得する。この属性は座標(5,3)と同じ文字属性である為、管理部221は、座標(5,3)の背面にある属性は座標(4,3)と同じ背景属性であると判定する。この例では、管理部221は左隣りの画素から背面の属性を判定しているが、精度を上げる為に、更に周囲の画素の属性から背面の画素を判定しても良い。
あるいは、管理部221は、単一の属性領域か否かについて、例えば図16のオペレータ情報1604に含まれる情報に基づいて生成される図19の描画情報1900のレベル情報1904を用いて単一の属性領域か否かについて判定してもよい。また、レベル情報1904と、上記の図30で説明する手法とを併せて適用してもよい。
ステップS2902において、変換した属性の背面に背景属性および変換属性の属性以外の属性があると判定した場合、管理部221は、ステップS2903に遷移する。そして、管理部221は、ステップS2903において、変換した文字属性、小文字属性の領域に対応する領域情報と、ONにした像域分離フラグとを含む属性ヒント情報を生成する。一方、ステップS2902において、変換した属性の背面に背景属性および変換属性の属性以外の属性がない、すなわち背面にあるのは背景属性または文字属性あるいは小文字属性に限られると判定した場合、管理部221は、ステップS2904に遷移する。そして、管理部221は、ステップS2904において、変換した文字属性、小文字属性の領域に対応する領域情報と、OFFにした像域分離フラグとを含む像域ヒント情報を生成する。あるいは、像域分離フラグ自体を付加しない形態の像域ヒント情報を生成してもよい。
図31は図23の像域ヒント情報に単一の属性かを示す情報を関連付けて追加した構成の一例である。像域ヒント情報3100は変換された属性の属性種別情報3101a(文字、イメージ等)、属性の描画領域の矩形の頂点を示す開始位置座標3101b、終端位置座標3101c、その属性に対して単一の属性かを示す像域分離フラグ3101dで構成される。像域分離フラグ3101dは変換した属性の背面の属性によって、単一の属性を示す場合、例えば背面が背景属性の場合はOFF、単一の属性を示さない場合、例えば背景属性以外の属性である場合はONが設定される。
管理部221は、S1703で画像生成する為に利用した描画情報から、変換した属性に対応する描画領域情報を取得する。例えば、変換した属性が文字属性であった場合、描画情報1900からオブジェクト種別情報1901が文字であるオブジェクトをディスプレイリスト2000から抽出し、その中の開始位置座標1902と終端位置座標1903を取得する。取得した情報は像域ヒント情報として、図31の中段のレコード3102のように設定される。管理部221は、この処理をディスプレイリスト2000内の描画情報1900のオブジェクト種別情報1901が文字である全てに対して繰り返す。また、管理部221は、ステップS2902で判定した背面の属性を基に、像域分離フラグ3101dに値を格納する。
ステップS2905において、管理部221は、転送条件を満たすかを判定する。すなわち、文字属性と小文字属性を背景属性に変換した属性情報で印刷装置の性能指標を満たす転送パフォーマンスをクリアできるか確認する。確認方法は図17のS1705からS1707と同じなので、ここでは説明を省略する。管理部221が転送条件を満たさないと判定した場合はステップS2906へ進み、管理部221が転送条件を満たすと判定した場合は属性の変換処理を終える。
ステップS2906において、管理部221は、属性情報のグラフィック属性(0x1)、線属性(0x2)、細線属性(0x6)を全て背景属性(0xF)に変換する。一般的に電子文書に存在する図形、大小の点で構成された網点、罫線、破線などはグラフィック属性、線属性、細線属性のいずれかである。これらの属性のオブジェクトは、電子文書のページ内に点在し、複雑な形状をしていることもあり、まとまって存在する後述のイメージ属性のオブジェクトに比べて圧縮効率が悪い。そこで、本実施例では文字属性(0x3)と小文字属性(0x7)の第1段の変換処理の次に、第2段の変換処理としてグラフィック属性(0x1)、線属性(0x2)、細線属性(0x6)を背景属性(0xF)に変換し、属性情報の圧縮効率を向上させる。
次に、ステップS2907において、管理部221は、変換した属性の背面に背景属性および変換属性(ここではグラフィック属性、線属性、細線属性)の属性以外の属性があるか否かを判定する。背面の属性の判定方法はステップS2902と同様の為、説明は省略する。ステップS2907において、背景属性および変換属性の属性以外の属性があると判定した場合、管理部221は、ステップS2908において、変換した属性に対応する領域情報と、ONにした像域分離フラグとを含む属性ヒント情報を生成する。一方、背景属性および変換属性の属性以外の属性がないと判定した場合、管理部221は、ステップS2909において、変換した属性の領域に対応する領域情報と、OFFにした像域分離フラグとを含む像域ヒント情報を生成する。処理内容についてはステップS2903、ステップS2904と同様である為、説明は省略する。
ステップS2910において、管理部221は、転送条件を満たすかを再度判定する。すなわち、グラフィック属性、線属性、細線属性を背景属性に変換した属性情報によって印刷装置の性能指標を満たす転送パフォーマンスをクリアできるか確認する。管理部221が転送条件を満たさないと判定した場合はステップS2911へ進み、管理部221が転送条件を満たすと判定した場合は属性の変換処理を終える。
ステップS2910で管理部221が転送条件を満たしていないと判定した場合、ステップS2911において、管理部221は、第3段の変換処理としてイメージ属性(0x1)を背景属性(0xF)に変換する。一般的に電子文書に存在する写真画像はイメージ属性である。イメージ属性はまとまった領域に存在することが多く、元々圧縮効率が良い。そのため本実施例では背景属性に変換する最後の属性とした。
次に、ステップS2912において、管理部221は、変換した属性の背面に背景属性および変換属性(ここではイメージ属性)の属性以外の属性があるか否かを判定する。背面の属性の判定方法はステップS2902と同様の為、説明は省略する。ステップS2912において、変換した属性の背面に背景属性および変換属性の属性以外の属性があると判定した場合、管理部221は、ステップS2913に遷移する。そして、管理部221は、ステップS2913において、変換した属性に対応する領域情報と、ONにした像域分離フラグとを含む属性ヒント情報を生成する。一方、変換した属性の背面に背景属性および変換属性の属性以外の属性がないと判定した場合、管理部221は、ステップS2914において、変換した属性の領域に対応する領域情報と、OFFにした像域分離フラグとを含む像域ヒント情報を生成する。処理内容についてはステップS2903、ステップS2904と同様である為、説明は省略する。
以上の処理により、像域ヒント情報にその属性が単一の属性であるかどうかを示す情報を付加した。次に、この情報を使って印刷装置で像域分離処理をする過程について、図32を用いて説明する。
図32は、本実施例における印刷装置のソフトウェア210の処理を示すフローチャート図である。図32における処理は図24と同様、ROM112に記憶されたプログラムをCPU111が実行することによって実現される。
ステップS3201において、管理部211は、ネットワーク制御部212を利用し、印刷装置が受信した印刷データを、ネットワークIF115から印刷データ処理装置に転送する。なお、ステップS3201は必須な処理ではなく、ステップS3202から処理が開始してもよい。すなわち、印刷装置は、印刷データ処理装置に印刷データを送信することなく、印刷データ処理装置から送信されたデータを用いて以下で説明する処理を行っても良い。
ステップS3202において、管理部211はネットワーク制御部212を利用し、印刷データ処理装置が送信する転送データを受信する。転送データは例えば図21で示すようなデータである。
ステップS3202で受信した転送データに含まれる画像情報1213と属性情報1214は圧縮されているので、ステップS3203において、伸長処理機制御部215は伸長処理機114を使って圧縮された画像情報と属性情報とを伸長する。
ステップS3204において、管理部211は受信した転送データに像域ヒント情報2100が付加されているか確認し、印刷データ処理装置による属性情報の変換の有無を判定する。管理部211が付加されていると判定した場合はステップS3205へ進み、付加されていないと判定した場合はステップS3208へ進む。
ステップS3205において、管理部211は像域ヒント情報2100から属性種別情報3101aと開始位置座標3101bと終端位置座標3101cと像域分離フラグ3101dとを取得する。
ステップS3206において、像域分離機制御部213は、ステップS3203で伸長された画像情報のうち、S3205で得られた矩形領域を像域分離機116に対して入力し、像域分離フラグ3101dの有無に応じて属性情報を出力する。この処理の詳細について、図33を使って説明する。
図33は、S3206の処理の詳細を示したフローチャート図であり、このフローはROM112に記憶されたプログラムをCPU111が実行することによって実現される。
ステップS3301において、像域分離機制御部213は、像域ヒント情報の像域分離フラグ3101dからその矩形領域が単一の属性のみで構成されているか判定する。この判定は、像域分離機制御部213が像域ヒント情報の像域分離フラグ3103dがONであるかOFFであるかを判定することによって行われる。単一の属性のみで構成されていない場合はS3302へ進み、そうでない場合は処理を終了する。
すなわち、像域分離機制御部213は、矩形領域に対応する像域分離フラグ3103dがOFFである場合にその矩形領域が単一の属性のみで構成されていると判定し、その矩形領域に対しての像域分離処理を行わない。代わりに、像域分離機制御部213は、属性情報としてその矩形領域に対応する属性種別情報3101aの属性を出力する。例えば図31に示される、像域分離フラグがOFFである像域ヒント情報のレコード3102では、開始位置座標(10、10)及び終端位置座標(40、20)で構成される矩形領域の属性として、文字属性が出力される。一方、矩形領域に対応する像域分離フラグ3103dがONである場合に、像域分離機制御部213は、矩形領域が重複する複数の属性で構成されると判定し、処理をS3302に進める。
ステップS3302において、像域分離機制御部213は、矩形領域内において単一属性領域と複数属性領域とを分離し、各領域の座標を取得する。例えば、図28のページ2802の場合、像域分離機制御部213は、単一属性領域として、矩形領域2802aのうち、矩形領域2802cを除いた領域の座標を取得する。また、像域分離機制御部213は、単一属性領域として、矩形領域2802bのうち、矩形領域2802cを除いた領域(矩形領域2802aと矩形領域2802bのXOR領域)の座標を取得する。また、像域分離機制御部213は、複数属性領域として矩形領域2802c(矩形領域2802aと矩形領域2802bのAND領域)の座標を取得する。
ステップS3303において、像域分離機制御部213は、属性種別情報3101aを参照し、S3302で取得した座標が示す単一属性領域内を全て属性種別情報3101aと同じ属性に変換する。例えば、矩形領域2802aに対応する属性領域の属性種別情報3101aに文字が設定されている場合、像域分離機制御部213は、像域分離機116による像域分離処理を行うことなく単一属性領域内の属性情報を全て文字属性として属性情報を出力する。
ステップS3304において、像域分離機制御部213は、S3203で伸長した画像情報を像域分離機116に入力し、S3302で取得した複数属性領域に対してのみ像域分離処理を行い、属性情報を出力する。像域分離機116が行う像域分離処理は実施例1と同様の為、ここでは説明を省略する。
図32のフローチャートの説明に戻る。ステップS3207において、管理部211はステップS3206で出力された属性情報を、ステップS3203で伸長された属性情報にマージして、新しい属性情報とする。すなわち、管理部211は、ステップS3203で伸長された属性情報を、ステップS3206で出力された属性情報を用いて更新する。
ステップS3208において、画像処理機制御部214は、ステップS3203で伸長された画像情報と、ステップS3203で伸長された属性情報またはステップS3207でマージされた属性情報とを入力にして、画像処理機117で画像処理を行う。
ステップS3209において、管理部211はステップS3208の画像処理結果をエンジン制御部216に渡し、画像エンジン制御部はエンジン118を使って印刷を行う。
以上説明したように、実施例8では、単一の属性(複数の異なる属性が重なっていない)領域に対しては像域分離処理を行わない事により、実施例5より更に像域分離処理を行う面積を削減する事で、印刷装置側の処理をより高速に実現することができる。
なお、実施例8は、実施例5に基づいた例を説明したが、実施例6及び7で説明した形態に単一の属性か否かの判定を行う処理を追加し、その結果に応じた処理を行ってもよい。
<その他の実施例>
以上の各実施例においては、印刷データ処理装置がネットワーク制御部222を利用してネットワークIF124から受信した印刷データを利用する例について説明した。しかしながら、印刷データ処理装置は、例えば可搬形の記憶媒体を装着可能に構成されており、可搬形の記憶媒体に記憶された印刷データを用いて上記例で説明した処理を行っても良い。
また、印刷データ処理装置は、ネットワーク制御部222を利用してネットワークIF124から受信して処理した画像情報と属性情報を直ちに印刷装置に送信することなく、一旦HDDなどの記憶媒体に格納してもよい。例えば、ネットワークの利用可能帯域が極めて低い場合や、ネットワーク自体が停止してしまっているような場合には、処理済みの画像情報と属性情報とを一旦HDDに格納しておき、ネットワークが利用可能になった場合に、それらの情報を送信してもよい。
また、実施例1では、図6のステップS607の処理で実際に属性情報を圧縮する処理を行っているが、ステップS607では圧縮した結果のデータサイズを算出する処理のみを行ってもよい。この場合、ステップS605で転送条件を満たすと判定された後に、ステップS608の処理の前に、実際に属性情報に対する圧縮処理を行ってもよい。
なお、属性情報の変換処理は、印刷データに含まれるページ単位で各実施例で説明した異なる変換処理を行っても良いし、印刷データ毎に各実施例で説明した異なる変換処理を行っても良い。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。