米国特許情報 | 欧州特許情報 | 国際公開(PCT)情報 | Google の米国特許検索
 
     特許分類
A 農業
B 衣類
C 家具
D 医学
E スポ−ツ;娯楽
F 加工処理操作
G 机上付属具
H 装飾
I 車両
J 包装;運搬
L 化学;冶金
M 繊維;紙;印刷
N 固定構造物
O 機械工学
P 武器
Q 照明
R 測定; 光学
S 写真;映画
T 計算機;電気通信
U 核技術
V 電気素子
W 発電
X 楽器;音響


  ホーム -> 繊維;紙;印刷 -> セイコーエプソン株式会社

発明の名称 データ処理装置、データ処理方法、データ処理プログラムおよびそのプログラムを記録した記録媒体
発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開2007−21730(P2007−21730A)
公開日 平成19年2月1日(2007.2.1)
出願番号 特願2005−202528(P2005−202528)
出願日 平成17年7月12日(2005.7.12)
代理人 【識別番号】100095728
【弁理士】
【氏名又は名称】上柳 雅誉
発明者 津久井 志信
要約 課題
画像をバンドごとに表す中間コードデータから印刷データを生成する処理時間を短くすることができるデータ処理装置、データ処理方法、データ処理プログラムおよびそのプログラムを記録した記録媒体を提供すること。

解決手段
データ処理装置100は、バンドが直接展開できるか否かを判定する展開処理判定部20と、直接展開不可能と判定したバンドを、直接展開可能な領域のバンドと直接展開不可能な領域のバンドとに分割するバンド分割部21と、直接展開可能な領域のバンドに従来の処理方法より処理時間が短い直接展開処理を行うことにより、バンドに対応する印刷データを生成する直接展開部22と、直接展開不可能な領域のバンドに、従来の処理方法である非直接展開処理を行うことにより、バンドに対応する印刷データを生成する非直接展開部23とを備えている。
特許請求の範囲
【請求項1】
複数の描画オブジェクトにより表現した画像を、所定の方向に分割した複数のバンドごとに表すバンドデータに基づいて、ドットを形成するための印刷データを生成するデータ処理装置であって、
前記描画オブジェクトをラスタデータに展開してから前記展開したラスタデータに対して行う処理を、前記バンドデータのバンドに含まれる複数の描画オブジェクトごとに順次行うことにより、前記バンドデータのバンドに対応する印刷データを生成する第1のデータ処理部と、
前記第1のデータ処理部が行う処理に先立ち、前記描画オブジェクト間の重なりをラスタデータに表現するための描画命令に基づいて、前記描画オブジェクトごとに前記第1のデータ処理部により処理することが可能であるか否かを判定する判定部と、
前記判定部の判定結果に基づいて、前記バンドデータのバンドを、前記第1のデータ処理部により処理することが可能な領域および前記第1のデータ処理部により処理することが不可能な領域に分割する分割部と、を備え、
第1のデータ処理部により処理することが可能な領域については前記第1のデータ処理部が処理することを特徴とするデータ処理装置。
【請求項2】
請求項1に記載のデータ処理装置において、
前記描画オブジェクトをラスタデータに展開し、前記展開したラスタデータをラスタデータ記憶部に書き込む処理を、前記バンドデータのバンドに含まれる複数の描画オブジェクトごとに順次行い、前記ラスタデータ記憶部に書き込まれたラスタデータに基づいて前記バンドデータのバンドに対応する印刷データを生成する第2のデータ処理部を、更に備え、
前記第1のデータ処理部により処理することが不可能な領域は前記第2のデータ処理部が処理することを特徴とするデータ処理装置。
【請求項3】
請求項2に記載のデータ処理装置において、
前記分割部は、前記判定部の判定結果に基づいて、前記バンドデータのバンドを、前記第1のデータ処理部により処理することが可能な描画オブジェクトのみを有する領域のバンド、および前記第1のデータ処理部により処理することが不可能な描画オブジェクトを有する領域のバンドに分割することを特徴とするデータ処理装置。
【請求項4】
請求項3に記載のデータ処理装置において、
前記分割部が分割した、前記第1のデータ処理部により処理することが可能なバンドについて生成した印刷データと、前記第1のデータ処理部により処理することが不可能なバンドについて生成した印刷データとを結合して、分割する前のバンドに対応する印刷データを復元する復元部を、更に備えることを特徴とするデータ処理装置。
【請求項5】
請求項1ないし4のいずれか一項に記載のデータ処理装置において、
前記判定部は、前記描画オブジェクトごとに行う判定結果に基づいて、前記バンドデータのバンドについて、前記第1のデータ処理部により処理することが可能か否かを更に判定し、
前記第1のデータ処理部により処理することが不可能と判定したバンドについては、前記分割部が分割する処理を行い、
前記第1のデータ処理部により処理することが可能と判定したバンドについては、前記第1のデータ処理部が処理を行うことを特徴とするデータ処理装置。
【請求項6】
請求項1ないし5のいずれか一項に記載のデータ処理装置において、
前記判定部は、前記描画オブジェクトをラスタデータに展開する処理において、既に展開されたラスタデータに影響を受けない描画命令を有する描画オブジェクトを、前記第1のデータ処理部により処理することが可能な描画オブジェクトと判定することを特徴とするデータ処理装置。
【請求項7】
請求項1ないし6のいずれか一項に記載のデータ処理装置において、
前記描画命令ごとに、既に展開されたラスタデータに影響を受けない条件を示したテーブルを有しており、
前記判定部は、前記テーブルの条件に基づいて、前記第1のデータ処理部による処理が可能な領域であるか否かを判定することを特徴とするデータ処理装置。
【請求項8】
請求項1ないし7のいずれか一項に記載のデータ処理装置において、
前記第1のデータ処理部は、前記描画オブジェクトをラスタデータに展開してから、前記展開したラスタデータを前記ドットに対応する色の色変換データに変換し、変換した色変換データを色変換データ記憶部に書き込む処理を、前記バンドデータのバンドに含まれる複数の描画オブジェクトごとに順次行い、前記色変換データ記憶部に書き込まれた色変換データに基づいて前記バンドデータのバンドに対応する印刷データを生成することを特徴とするデータ処理装置。
【請求項9】
請求項1ないし7のいずれか一項に記載のデータ処理装置において、
前記第1のデータ処理部は、前記描画オブジェクトをラスタデータに展開してから、前記展開したラスタデータを前記ドットに対応する色の色変換データに変換し、色変換データを前記ドットに対応する階調数の階調数変換データに変換し、変換した階調数変換データを階調数変換データ記憶部に書き込む処理を、前記バンドデータのバンドに含まれる複数の描画オブジェクトごとに順次行い、前記階調数変換データ記憶部に書き込まれた階調数変換データに基づいて前記バンドデータのバンドに対応する印刷データを生成することを特徴とするデータ処理装置。
【請求項10】
複数の描画オブジェクトにより表現した画像を、所定の方向に分割した複数のバンドごとに表すバンドデータに基づいて、ドットを形成するための印刷データを生成するデータ処理方法であって、
前記描画オブジェクトをラスタデータに展開してから前記展開したラスタデータに対して行う処理を、前記バンドデータのバンドに含まれる複数の描画オブジェクトごとに順次行うことにより、前記バンドデータのバンドに対応する印刷データを生成する第1のデータ処理工程と、
前記第1のデータ処理工程における処理に先立ち、前記描画オブジェクト間の重なりをラスタデータに表現するための描画命令に基づいて、前記描画オブジェクトごとに前記第1のデータ処理工程において処理することが可能であるか否かを判定する判定工程と、
前記判定工程における判定結果に基づいて、前記バンドデータのバンドを、前記第1のデータ処理工程において処理することが可能な領域および前記第1のデータ処理工程において処理することが不可能な領域に分割する分割工程と、を備え、
第1のデータ処理工程において処理することが可能な領域については前記第1のデータ処理工程において処理することを特徴とするデータ処理方法。
【請求項11】
複数の描画オブジェクトにより表現した画像を、所定の方向に分割した複数のバンドごとに表すバンドデータに基づいて、ドットを形成するための印刷データを生成するデータ処理プログラムであって、
コンピュータを、
前記描画オブジェクトをラスタデータに展開してから前記展開したラスタデータに対して行う処理を、前記バンドデータのバンドに含まれる複数の描画オブジェクトごとに順次行うことにより、前記バンドデータのバンドに対応する印刷データを生成する第1のデータ処理部、
前記第1のデータ処理部が行う処理に先立ち、前記バンドデータを記憶しているバンドデータ記憶部から、前記描画オブジェクト間の重なりをラスタデータに表現するための描画命令を読み出して、前記描画命令に基づいて、前記描画オブジェクトごとに前記第1のデータ処理部により処理することが可能であるか否かを判定する判定部、
前記判定部の判定結果に基づいて、前記バンドデータのバンドを、前記第1のデータ処理部により処理することが可能な領域および前記第1のデータ処理部により処理することが不可能な領域に分割する分割部、として機能させ、
第1のデータ処理部により処理することが可能な領域については前記第1のデータ処理部に処理させることを特徴とするデータ処理プログラム。
【請求項12】
請求項11に記載のデータ処理プログラムを記録したコンピュータ読取り可能な記録媒体。
発明の詳細な説明
【技術分野】
【0001】
印刷対象の画像をバンドごとにラスタライズすることにより、印刷データを生成するデータ処理装置、データ処理方法、データ処理プログラムおよびそのプログラムを記録した記録媒体に関する。
【背景技術】
【0002】
従来、プリンタなどの画像形成装置では、ホストコンピュータなどから送信された印刷対象データから、ドットを形成して印刷を行うための印刷データを生成している。印刷データに従って印刷することにより、印刷対象データに対応する画像を印刷することができる。ここで、印刷対象データはPDLなどのプリンタ制御言語で記述されているので、プリンタ内部ではラスタデータへの展開が容易な中間コードデータに変換して、処理を行っている。
【0003】
中間コードデータをラスタデータに展開する際には、ROP処理と呼ばれる演算を行うことによって、プリンタ制御言語で記述された描画オブジェクトの重なりを表現したラスタデータに変換している(例えば、特許文献1参照)。ROP処理では、新たに書き込む画像S(Source:書き込み対象画像)、書き込もうとしているパターンPと、既に書き込まれている画像D(Destination:元画像)の3つのオブジェクトを用いて演算するものであり、各オブジェクトに対して、処理の内容に応じた論理演算を行い、その結果を元画像Dに書き込むことにより、描画オブジェクトの重なりを表現することができる。ROP処理を行うことにより、複数の描画オブジェクトが重なる領域に、オブジェクト間の上下関係に加えて、「透かし」や「反転」など種々の効果を与えることができる。
【0004】
ここで、ある描画オブジェクトに対してROP処理を行うためには、以前に処理したラスタデータをメモリから読み出し、当該ラスタデータを元画像DとしてROP処理に用いる必要があった。そのため、ROP処理して得られたラスタデータはメモリに書き込んで保存し、元画像Dとして用いることができるようにしておく必要もあった。
【0005】
そこで、通常、ROP処理を施す際には、下層に描かれるべき描画オブジェクトから上層に描かれるべき描画オブジェクトの順に、それぞれの描画オブジェクトに対応するROP処理の内容に応じて論理演算し、得られた結果を順にメモリ上に上書きすることにより、全描画オブジェクトに対応するラスタデータに展開する。そして、全描画オブジェクトに対応するラスタデータから印刷データを生成している。なお、この手順に従って行う処理を、以下では、従来の処理方法と呼ぶ。
【0006】
また、ラスタデータを展開する際には、ラスタデータを記憶しておくメモリ容量が多く必要となるので、1つの画像を高さ方向に所定の間隔(以下、バンド高さという)で分割したバンドと呼ばれる領域ごとに処理を行っている(例えば、特許文献2参照)。特に、特許文献2に記載の技術では、使用するメモリ容量が異なる2つの処理に合わせて、バンド高さを切り替えることにより、使用する容量を一定にしている。
【0007】
【特許文献1】特開2003−271978号公報
【特許文献2】特開2000−335021号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
しかしながら、ラスタデータを展開する際には、各描画オブジェクトにROP処理を行うごとに処理結果のラスタデータをメモリに上書き、さらに、ROP処理を行うためにメモリから既に展開したラスタデータを元画像Dとして読み出す必要があるため、メモリへのアクセス回数が多くなってしまう。そのため、印刷データを生成するために要する処理時間が長くなってしまうという課題があった。
【0009】
そこで、本発明は、画像をバンドごとに表す中間コードデータから印刷データを生成する処理時間を短くすることができるデータ処理装置、データ処理方法、データ処理プログラムおよびそのプログラムを記録した記録媒体を提供することを目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成する本発明のデータ処理装置は、複数の描画オブジェクトにより表現した画像を、所定の方向に分割した複数のバンドごとに表すバンドデータに基づいて、ドットを形成するための印刷データを生成するデータ処理装置であって、描画オブジェクトをラスタデータに展開してから展開したラスタデータに対して行う処理を、バンドデータのバンドに含まれる複数の描画オブジェクトごとに順次行うことにより、バンドデータのバンドに対応する印刷データを生成する第1のデータ処理部と、第1のデータ処理部が行う処理に先立ち、描画オブジェクト間の重なりをラスタデータに表現するための描画命令に基づいて、描画オブジェクトごとに第1のデータ処理部により処理することが可能であるか否かを判定する判定部と、判定部の判定結果に基づいて、バンドデータのバンドを、第1のデータ処理部により処理することが可能な領域および第1のデータ処理部により処理することが不可能な領域に分割する分割部と、を備え、第1のデータ処理部により処理することが可能な領域については第1のデータ処理部が処理することを特徴とする。
【0011】
この構成によれば、バンドに含まれる複数の描画オブジェクトについて、描画オブジェクト間の重なりをラスタデータに表現するための描画命令に基づいて、描画オブジェクトごとに第1のデータ処理部により処理することが可能か否かを判定する。そして、判定結果に基づき、分割部は、第1のデータ処理部により処理することが可能な領域および第1のデータ処理部により処理することが不可能な領域に分割する。ここで、第1のデータ処理部は、描画オブジェクトをラスタデータに展開してから展開したラスタデータに対して行う処理を、バンドデータのバンドに含まれる複数の描画オブジェクトごとに順次行うことにより、バンドデータのバンドに対応する印刷データを生成しているので、展開したラスタデータを描画オブジェクトごとにメモリに書き込む処理を行っていない。第1のデータ処理部によれば、従来の処理方法に比べて、メモリへの書き込みやメモリからの読み出す処理の回数が少なくなるので、より高速に処理することができる。バンドを分割して得られた、第1のデータ処理部により処理することが可能な領域については、処理が高速な第1のデータ処理部が処理するので、印刷データを生成するための処理時間を短くすることができる。
【0012】
ここで、描画オブジェクトをラスタデータに展開し、展開したラスタデータをラスタデータ記憶部に書き込む処理を、バンドデータのバンドに含まれる複数の描画オブジェクトごとに順次行い、ラスタデータ記憶部に書き込まれたラスタデータに基づいてバンドデータのバンドに対応する印刷データを生成する第2のデータ処理部を、更に備え、第1のデータ処理部により処理することが不可能な領域は第2のデータ処理部が処理することが好ましい。
【0013】
このようにすれば、第2のデータ処理部は、描画オブジェクトをラスタデータに展開し、展開したラスタデータをラスタデータ記憶部に書き込む処理を、バンドデータのバンドに含まれる複数の描画オブジェクトごとに順次行い、ラスタデータ記憶部に書き込まれたラスタデータに基づいてバンドデータのバンドに対応する印刷データを生成する、従来の処理方法を行う。第2のデータ処理部によれば、既に展開された描画オブジェクトのラスタデータが記憶されているので、描画命令に関わらず描画オブジェクト間の重なりを表現したラスタデータを展開することができる。したがって、第2のデータ処理部は、第1のデータ処理部により処理することが不可能な描画オブジェクトでも処理することができる。また、データ処理装置としては、描画オブジェクトの判定結果に関わらず、全描画オブジェクトに対応する印刷データを生成することができる。
【0014】
ここで、分割部は、判定部の判定結果に基づいて、バンドデータのバンドを、第1のデータ処理部により処理することが可能な描画オブジェクトのみを有する領域のバンド、および第1のデータ処理部により処理することが不可能な描画オブジェクトを有する領域のバンドに分割することが好ましい。
【0015】
このようにすれば、第1のデータ処理部は、第1のデータ処理部により処理することが可能と判定された描画オブジェクトのみを有する領域のバンドを処理するので、第1のデータ処理部による処理を確実に行うことができる。
【0016】
ここで、分割部が分割した、第1のデータ処理部により処理することが可能なバンドについて生成した印刷データと、第1のデータ処理部により処理することが不可能なバンドについて生成した印刷データとを結合して、分割する前のバンドに対応する印刷データを復元する復元部を、更に備えることが好ましい。
【0017】
このようにすれば、互いに分割されたバンドに対応する印刷データを結合することによって、分割する前の所定の高さを有したバンドに対応する印刷データを得ることができる。分割したことによりバンドの高さが変化することに応じて、印刷データからドットを形成する処理を変更する必要がなくなるので、より簡単に処理することができるようになる。
【0018】
ここで、判定部は、描画オブジェクトごとに行う判定結果に基づいて、バンドデータのバンドについて、第1のデータ処理部により処理することが可能か否かを更に判定し、第1のデータ処理部により処理することが不可能と判定したバンドについては、分割部が分割する処理を行い、第1のデータ処理部により処理することが可能と判定したバンドについては、第1のデータ処理部が処理を行うことが好ましい。
【0019】
このようにすれば、第1のデータ処理部により処理することが不可能と判定されたバンドについては分割する処理を行い、第1のデータ処理部により処理することが可能と判定されたバンドについては、第1のデータ処理部が処理を行う。判定結果に基づき、第1のデータ処理部により処理することが可能なバンドについては分割する処理を行うことなく、第1のデータ処理部が処理するので、処理時間をより短くすることができる。
【0020】
ここで、判定部は、描画オブジェクトをラスタデータに展開する処理において、既に展開されたラスタデータに影響を受けない描画命令を有する描画オブジェクトを、第1のデータ処理部により処理することが可能な描画オブジェクトと判定することが好ましい。
【0021】
このようにすれば、既に展開されたラスタデータに影響を受けない描画命令を有する描画オブジェクトを、第1のデータ処理部により処理することが可能な描画オブジェクトと判定する。既に展開されたラスタデータに影響を受けない描画オブジェクトについては、既に展開されたラスタデータを参照する必要がないので、展開したラスタデータをメモリに記憶する処理を行わない第1のデータ処理部でも処理することができる。したがって、第1のデータ処理部により処理することが可能な描画オブジェクトを適切に判定することができる。
【0022】
ここで、描画命令ごとに、既に展開されたラスタデータに影響を受けない条件を示したテーブルを有しており、判定部は、テーブルの条件に基づいて、第1のデータ処理部による処理が可能な領域であるか否かを判定することが好ましい。
【0023】
このようにすれば、テーブルの条件に基づいて判定することにより、描画オブジェクトが第1のデータ処理部による処理が可能であるか否かを容易に判定することができる。
【0024】
ここで、第1のデータ処理部は、描画オブジェクトをラスタデータに展開してから、展開したラスタデータをドットに対応する色の色変換データに変換し、変換した色変換データを色変換データ記憶部に書き込む処理を、バンドデータのバンドに含まれる複数の描画オブジェクトごとに順次行い、色変換データ記憶部に書き込まれた色変換データに基づいてバンドデータのバンドに対応する印刷データを生成することが好ましい。
【0025】
このようにすれば、描画オブジェクトごとにラスタデータをメモリに書き出すことがなく印刷データを生成するので、従来の処理方法に比べて、より高速に処理を行うことができる。
【0026】
ここで、第1のデータ処理部は、描画オブジェクトをラスタデータに展開してから、展開したラスタデータをドットに対応する色の色変換データに変換し、色変換データをドットに対応する階調数の階調数変換データに変換し、変換した階調数変換データを階調数変換データ記憶部に書き込む処理を、バンドデータのバンドに含まれる複数の描画オブジェクトごとに順次行い、階調数変換データ記憶部に書き込まれた階調数変換データに基づいてバンドデータのバンドに対応する印刷データを生成することが好ましい。
【0027】
このようにすれば、描画オブジェクトごとにラスタデータをメモリに書き出すことがなく印刷データを生成するので、従来の処理方法に比べて、より高速に処理を行うことができる。また、描画オブジェクトごとに色変換データをメモリに書き出すことがなく印刷データを生成するので、さらに高速に処理を行うことができる。
【0028】
また、本発明は、方法の発明とすることもできる。すなわち、本発明のデータ処理方法は、複数の描画オブジェクトにより表現した画像を、所定の方向に分割した複数のバンドごとに表すバンドデータに基づいて、ドットを形成するための印刷データを生成するデータ処理方法であって、描画オブジェクトをラスタデータに展開してから展開したラスタデータに対して行う処理を、バンドデータのバンドに含まれる複数の描画オブジェクトごとに順次行うことにより、バンドデータのバンドに対応する印刷データを生成する第1のデータ処理工程と、第1のデータ処理工程における処理に先立ち、描画オブジェクト間の重なりをラスタデータに表現するための描画命令に基づいて、描画オブジェクトごとに第1のデータ処理工程において処理することが可能であるか否かを判定する判定工程と、判定工程における判定結果に基づいて、バンドデータのバンドを、第1のデータ処理工程において処理することが可能な領域および第1のデータ処理工程において処理することが不可能な領域に分割する分割工程と、を備え、第1のデータ処理工程において処理することが可能な領域については第1のデータ処理工程において処理することを特徴とする。
【0029】
さらに、本発明は、プログラムまたはそのプログラムを記憶した記録媒体とすることもできる。すなわち、本発明のデータ処理プログラムは、複数の描画オブジェクトにより表現した画像を、所定の方向に分割した複数のバンドごとに表すバンドデータに基づいて、ドットを形成するための印刷データを生成するデータ処理プログラムであって、コンピュータを、描画オブジェクトをラスタデータに展開してから展開したラスタデータに対して行う処理を、バンドデータのバンドに含まれる複数の描画オブジェクトごとに順次行うことにより、バンドデータのバンドに対応する印刷データを生成する第1のデータ処理部、第1のデータ処理部が行う処理に先立ち、バンドデータを記憶しているバンドデータ記憶部から、描画オブジェクト間の重なりをラスタデータに表現するための描画命令を読み出して、描画命令に基づいて、描画オブジェクトごとに第1のデータ処理部により処理することが可能であるか否かを判定する判定部、判定部の判定結果に基づいて、バンドデータのバンドを、第1のデータ処理部により処理することが可能な領域および第1のデータ処理部により処理することが不可能な領域に分割する分割部、として機能させ、第1のデータ処理部により処理することが可能な領域については第1のデータ処理部に処理させることを特徴とする。また、このプログラムを記録した記録媒体としては、フレキシブルディスクやCD−ROM、ICカード、パンチカードなど、コンピュータが読み取り可能な種々の媒体を利用することができる。
【発明を実施するための最良の形態】
【0030】
以下、本発明に係る一実施形態について図面を参照して説明する。
【0031】
図1は、本実施形態に係る印刷システムの構成を示した図である。ホストコンピュータ1は、PDLなどの所定のプリンタ制御言語で記述された印刷対象データを含む印刷ジョブデータをプリンタ2に送信する。印刷ジョブデータを送信するホストコンピュータ1としては、パーソナルコンピュータの他、デジタルスチルカメラ、携帯情報端末、携帯電話など様々な装置を挙げることができる。
【0032】
プリンタ2は、いわゆるプリンタページモードで印刷することができるカラーレーザプリンタである。プリンタ2は、データ処理装置100と、プリントエンジン200とを備えている。データ処理装置100は、印刷ジョブデータに含まれる印刷対象データを、印刷可能なCMYK(シアン、マゼンタ、イエロー、ブラック)の各色ドットを形成するための印刷データに変換し、プリントエンジン200に供給する。プリントエンジン200は、印刷データに従ってドットを形成することにより、印刷対象データが表す画像(以下、印刷対象画像という)を印刷する。
【0033】
データ処理装置100は、言語解釈部10と、中間コード登録部11と、中間コードデータメモリ12と、描画処理部13とを備えている。
【0034】
言語解釈部10は、ホストコンピュータ1から送信された印刷ジョブデータを解釈して、印刷ジョブデータに含まれる印刷対象データを取得する。
【0035】
中間コード登録部11は、印刷対象データを解釈することにより、印刷対象画像のどこの領域にどのような図形、文字、イメージを印刷すべきかを検出する。そして、1ページ分の印刷対象画像を高さ方向に所定の間隔(以下、バンド高さという)を有するバンドに分割して、バンドごとに印刷すべき図形、文字、イメージに対応する中間コードデータ(バンドデータ)を生成する。なお、本実施形態では、バンド高さを64ドット(1ドットは印刷の最小単位)としている。バンドごとの処理結果は中間コードデータとして、中間コードデータメモリ12に登録する。
【0036】
また、中間コード登録部11は、印刷対象画像に含まれている複数の描画オブジェクトについて、重ね合わせの最下層の描画オブジェクトから上層側の描画オブジェクトを順番に処理して中間コードデータを生成している。
【0037】
図2は、印刷対象データが表す印刷対象画像の一例を示した図である。図2では、描画オブジェクトBO1を網点の領域、描画オブジェクトBO2を縦線のハッチング領域、描画オブジェクトBO3を斜線のハッチング領域で示し、印刷対象画像は、3つの描画オブジェクトBO1〜BO3を下層側から上層側へ順番に重ね合わせた画像となっている。また、描画オブジェクトBO1および描画オブジェクトBO2の重なり領域には、縦線のハッチングで示す描画オブジェクトBO2のみが表示されているように、描画オブジェクトBO2は、描画オブジェクトBO1に対して単に上書きした図形である。一方、描画オブジェクトBO2および描画オブジェクトBO3の重なり領域には、描画オブジェクトBO2の縦線、および描画オブジェクトBO3の斜め線によるハッチングが両方とも表示されている。すなわち、描画オブジェクトBO3の図形は、下層側の描画オブジェクトBO2の影響を受けている。
【0038】
また、図2ではバンドに分割する領域を破線で示している。図2に示すように、印刷対象画像は4つのバンド0〜3に分割される。もっとも、1つの印刷対象画像ごとのバンド数はこれに限られるものではない。
【0039】
描画処理部13は、中間コードデータメモリ12に書き込まれている中間コードデータを順番に読み出して、読み出した中間コードデータから印刷データを生成する処理を行う。生成した印刷データは、プリントエンジン200に供給する。
【0040】
図3は、データ処理装置100の具体的ハードウェア構成を示した図である。データ処理装置100は、入力インターフェース(以下、入力I/F)50、CPU51、ROM52、ハードディスク53、RAM54、メモリカードスロット55および出力インターフェース(以下、出力I/F)56を備えており、それらはバスを介して互いに接続されている。
【0041】
入力I/F50は、ホストコンピュータ1とプリンタ2とのインターフェースである。すなわち、ホストコンピュータ1からプリンタ2に伝送された印刷ジョブデータは、入力I/F50に入力される。
【0042】
RAM54は、汎用のワーキングメモリとして機能する。なお、後述する中間コードデータメモリ12、RGBデータメモリ41、CMYKデータメモリ43、階調数変換データメモリ33,45および印刷データメモリ24は、実際にはRAM54の記憶領域上に確保される。
【0043】
CPU51は、ハードディスク53またはROM52に格納されたデータ処理プログラムを読み出して、実行することによりデータ処理装置100としての各種の画像処理を行う。すなわち、CPU51がデータ処理プログラムを実行することにより、データ処理装置100の各構成が機能するようにしている。このデータ処理プログラムは、予めハードディスク53やROM52に格納されていることとしてもよいし、例えば、メモリカード57などのコンピュータが読み取り可能な記録媒体によって外部から供給され、メモリカードスロット55を介してプリンタ2に備えられたROM52やハードディスク53に格納されるものとしてもよい。もっとも、インターネットなどのネットワーク手段を介して、プログラムを供給するサーバー等にアクセスし、データをダウンロードすることによって格納されるものとしてもよい。
【0044】
出力I/F56は、データ処理装置100とプリントエンジン200とのインターフェースである。データ処理装置100が各種の画像処理を施したデータは、出力I/F56を介してプリントエンジン200に出力される。
【0045】
プリントエンジン200は、データ処理装置100より供給された印刷データに従って、印刷用紙などの記録媒体にCMYK各色のドットを形成することによってカラー画像を印刷する。
【0046】
次に、描画処理部13の構成について説明する。描画処理部13は、展開処理判定部20と、バンド分割部21と、直接展開処理を行う直接展開部22と、非直接展開処理を行う非直接展開部23と、印刷データメモリ24と、バンド復元部25と、印刷データ出力部26とを備えている。
【0047】
展開処理判定部(判定部)20は、中間コードデータメモリ12から順番に読み出される中間コードデータに含まれる描画オブジェクトごとに、直接展開処理が可能であるか否かを判定する。さらに、展開処理判定部20は、描画オブジェクトごとに判定した結果に基づき、バンドごとに直接展開処理が可能であるか否かを判定する。
【0048】
バンド分割部(分割部)21は、展開処理判定部20が直接展開不可能と判断した描画オブジェクトを含むバンドを、直接展開可能な領域(以下、直接展開可能領域という)と直接展開不可能な領域(以下、直接展開不可能領域という)とに分割する。そして、直接展開可能領域のみを含むバンドの中間コードデータ、および直接展開不可能領域を含むバンドの中間コードデータを生成する。バンド分割部21は、直接展開可能な中間コードデータを直接展開部22に受け渡し、直接展開不可能な中間コードデータを非直接展開部23に受け渡す。
【0049】
直接展開部(第1のデータ処理部)22または非直接展開部(第2のデータ処理部)23は、受け取った中間コードデータを処理して印刷データを生成し、印刷データメモリ24に書き込む。
【0050】
印刷データメモリ24に書き込まれた印刷データは、バンド復元部(復元部)25が、印刷データメモリ24から読み出した印刷データを順番に読み出して、分割したバンド同士を結合するようにして、分割前のバンド高さを有するバンドに対応する印刷データに復元する。復元した印刷データを印刷データ出力部26に受け渡す。
【0051】
印刷データ出力部26は、バンド復元部25から受け取った印刷データをプリンタ2に出力して、プリントエンジン200に印刷データを供給する。
【0052】
次に直接展開処理について説明する。直接展開部22は、中間コードデータにROP処理を行ってRGBデータを生成するROP処理部30と、RGBデータをCMYKデータに変換する色変換部31と、CMYKデータをプリントエンジン200に対応する階調数に変換した階調数変換データに変換する階調数変換部32と、階調数変換データを記憶する階調数変換データメモリ33と、階調数変換データを圧縮した印刷データを生成する圧縮部34と、を有している。非直接展開部23は、ROP処理部40と、RGBデータメモリ41と、色変換部42と、CMYKデータメモリ43と、階調数変換部44と、階調数変換データメモリ45と、圧縮部46とを有している。
【0053】
直接展開処理では、バンド内の描画オブジェクトBOをラスタライズしたRGB形式のラスタデータであるRGBデータに色変換処理および階調数変換を施し、描画オブジェクトごとの階調数変換データを、階調数変換データメモリ33に次々に書き出すことによって、バンドに対応する階調数変換データを生成する。そして、階調数変換データを圧縮することにより、バンドに対応する印刷データを生成する。
【0054】
図4は、直接展開処理の具体例について示した図である。図4では、図2の印刷対象画像のバンド0について直接展開処理を行う場合を例に示している。図4に示すように、バンド0には、下層側から上層側の順番に描画オブジェクトBO1,BO2が含まれており、直接展開部22はこの順番に処理を行う。
【0055】
まず、描画オブジェクトBO1のデータが直接展開部22に供給されると、図4(a)に示すように、ROP処理部30は描画オブジェクトBO1のデータをRGBデータBO1(RGB)に展開し、次に色変換部31がRGBデータをCMYKデータに変換する。次に、階調数変換部32が、CMYKデータBO1(CMYK)に階調数変換を行い、階調数変換データBO1(CMYKd)を階調数変換データメモリ33の対応するバンド領域の位置に書き込む。描画オブジェクトBO1の階調数変換データを書き込むと、次に、図4(b)に示すように、描画オブジェクトBO2について、RGBデータBO2(RGB)への変換、CMYKデータBO2(CMYK)への変換、階調数変換データBO2(CMYKd)への変換を行い、変換した階調数変換データBO2(CMYKd)を階調数変換データメモリ33上の対応するバンド領域の位置に上書きする。このように、描画オブジェクトBOごとに変換した階調数変換データを次々に階調数変換データメモリ33に書き込むことによって、全描画オブジェクトBOを含んだバンドに対応する階調数変換データを生成する。そして、バンドに対応する階調数変換データが得られると、階調数変換データを圧縮した印刷データを印刷データメモリ24に書き込む。
【0056】
次に非直接展開処理について説明する。非直接展開処理では、バンド内の描画オブジェクトBOをラスタライズしたRGBデータを、RGBデータメモリ41に描画オブジェクトBOごとに順次書き出すようにして、全描画オブジェクトBOを含んだバンドに対応するRGBデータを生成する。そして、RGBデータに色変換処理、階調数変換処理を施すことによって印刷データを生成する。この非直接展開処理は、従来より行われている処理方法である。
【0057】
図5は、非直接展開処理の具体例について示した図である。図5は、図2の印刷対象画像のうちバンド0について非直接展開処理する場合を例に示している。非直接展開部23は、下層側から上層側に描画オブジェクトBO1,BO2の順番に処理を行う。
【0058】
まず、描画オブジェクトBO1が非直接展開部23に供給されると、図5(a)に示すように、ROP処理部40が描画オブジェクトBO1をRGBデータBO1(RGB)に変換し、RGBデータメモリ41上の対応するバンド領域の位置に書き込む。次に、描画オブジェクトBO2が非直接展開部23に供給されると、図5(b)に示すように、ROP処理部40は描画オブジェクトBO2をRGBデータBO2(RGB)に変換し、RGBデータメモリ41上の対応するバンド領域の位置に書き込む。このようにして、全描画オブジェクトBOのRGBデータを次々にRGBデータメモリ41に書き出すようにして、全描画オブジェクトBOを含んだバンドに対応するRGBデータを生成する。次に、色変換部42は、RGBデータメモリ41に書き込まれているRGBデータを読み出して変換したCMYKデータをCMYKデータメモリ43に書き込む。階調数変換部44は、CMYKデータメモリ43からCMYKデータを読み出して全描画オブジェクトBOに対応する階調数変換データを生成する。
【0059】
このように、非直接展開処理では、ROP処理においてRGBデータメモリ41に描画オブジェクトBOごとにRGBデータをRGBデータメモリ41に書き出すようにして中間コードデータを展開している。一方、直接展開処理では、ROP処理においてRGBデータメモリ41にデータを書き出すことなく展開しているので、非直接展開処理に比べてより高速に処理を行うことができる。
【0060】
ここで、ROP処理において、例えば「透かし」などの効果を与える場合には、描画オブジェクトBOをラスタライズする際に、処理しようとする描画オブジェクトBOに加えて既に処理された描画オブジェクトを合成する必要がある。例えば、図2の描画オブジェクトBO2および描画オブジェクトBO3が重なっている領域については、描画オブジェクトBO3が透けているので、描画オブジェクトBO3を書き込む際には描画オブジェクトBO2のデータを参照する必要がある。すなわち、既に処理された描画オブジェクトBOのRGBデータが必要となる。
【0061】
以上のことから、直接展開処理を行う際には、直接展開処理を行うことが可能な描画オブジェクトと、直接展開処理を行うことが不可能な描画オブジェクトとを、別々に処理する必要が生じる。そこで、展開処理判定部20は、バンドごとに行う描画処理において、当該バンドに、直接展開処理を行うことが可能な描画オブジェクトのみを有している場合に、直接展開可能であると判定する。直接展開処理を行うことが不可能な描画オブジェクトを1つでも有しているバンドを直接展開不可能であると判定する。そして、判定結果に応じて、直接展開処理、非直接展開処理を使い分けている。
【0062】
しかしながら、1つでも直接展開不可能な描画オブジェクトが含まれているバンドについては非直接展開処理を施すとすると、非直接展開処理に割り当てる領域が拡大してしまい、処理時間が長くなってしまう。そこで、本発明では、バンド分割部21が、直接展開不可能と判断されたバンドデータについて、バンド領域をさらに直接展開可能な領域と直接展開不可能な領域に分割し、分割した直接展開可能な領域については直接展開処理を行うことを特徴としている。
【0063】
図6に本実施形態のデータ処理装置100が行う処理の流れを示したフローチャートを示す。以下、フローチャートに従って、詳細に説明する。
【0064】
CPU51がデータ処理プログラムを実行し、ホストコンピュータ1からプリンタ2に印刷ジョブデータが送信されると、図6の処理を開始して、まず、ステップS10において、言語解釈部10は、入力I/F50を介して受け取った印刷ジョブデータの言語を解釈して印刷対象データを取得する。取得した印刷対象データは、中間コード登録部11に受け渡す。
【0065】
次に、ステップS20では、中間コード登録部11は、印刷対象データをバンドごとの中間コードデータに変換する。変換した中間コードデータは中間コードデータメモリ12に書き込む。
【0066】
図7は、中間コードデータの構造例を示した図である。バンドごとに分割された印刷対象データは、それぞれバンドごとの中間コードデータとして中間コードデータメモリ12に書き込まれている。図7に示すように、中間コードデータは、ヘッダ部分と中間コードデータ部分とで構成される。ヘッダ部分には、バンド番号、バンド高さ、当該バンドが直接展開できるかを示したバンド展開可能フラグなどが含まれる。バンド展開可能フラグには、バンドが展開可能であることを示す「0」または展開不可能であることを示す「1」を設定することができ、初期値としては「0」が設定されている。
【0067】
中間コードデータ部分には、そのバンドに含まれる描画オブジェクトのオブジェクトデータが描画オブジェクトごとに区分されて含まれる。1つのオブジェクトデータには、例えば、後述する描画処理で利用されるROPの種別を示す情報(ROP種別情報:ROP番号)、描画オブジェクトの種別を示す情報(オブジェクト種別情報:矩形等の図形情報)、座標、サイズ、色、オブジェクト展開可能フラグ、パターンP等の種々の情報が含まれる。オブジェクト展開可能フラグには、当該描画オブジェクトBOが直接展開可能であることを示す「0」または直接展開不可能であることを示す「1」を設定することができる。なお、中間コードデータ部分に含まれる描画オブジェクトBOとしては、矩形などの図形を表すオブジェクトに限られることなく、テキスト、イメージなどを表すオブジェクトであってもよい。
【0068】
図8は、オブジェクトデータのパラメータを説明するための図である。図8では、図2に示したバンド0の描画オブジェクトを示している。描画オブジェクトの座標は、バンドの左上を原点として、原点から右向きをx方向、下向きにy方向を定めた座標系に従って決められている。したがって、図8では、描画オブジェクトBO1の左上の座標(x1,y1)を描画オブジェクトBO1の座標としている。描画オブジェクトBO1のサイズとしては、図8に示すように、横方向の幅w1、縦方向の高さh1が記録される。そして、描画オブジェクトBO1の座標(x1,y1)、サイズ(w1,h1)の値が中間コードデータのオブジェクトデータとして記録される(図7参照)。同様に、描画オブジェクトBO2についても、座標(x2,y2)およびサイズ(w2,h2)が記録される。
【0069】
次に、ステップS30では、展開処理判定部20は、注目するバンドについて直接展開可能な領域を判定する直接展開判定処理を行う。
【0070】
ここで、直接展開判定処理における判定方法について説明するため、まずROP処理について説明する。図9は、直接展開処理または非直接展開処理において実行されるROP処理に用いるROP関数(描画命令)の関数テーブルを示した図である。図9に示すように、関数テーブルTFにはROP処理のために予め256種類のROP関数が用意されている。これらのROP関数は、逆ポーランド方式で記述され、Sは新たに書き込もうとする画像(ソース:書き込み対象画像)、Pは書き込もうとしている画像のパターン、Dは既に書き込まれている画像(デスト:元画像)を意味している。それぞれの画像は、上位8ビットのRの色情報、次の8ビットのGの色情報、さらに次の8ビットのBの色情報、および、下位8ビットのコントロール情報の32ビットで表される。コントロール情報は本実施形態の処理においては特に必要ではない。また、図9のROP関数の欄に示した、「o」は論理和(or)、「n」は否定(not)、「a」は論理積(and)を意味している。したがって、ROP番号「0xE0」で定義されているROP関数「PDSoa」は論理演算「P and(D or S)」を行うことを示している。
【0071】
図10は、ROP関数の一例を示した図であり、ROP番号が「0xE0」のROP関数「PDSoa」による処理について示している。ROP関数「PDSoa」は、論理演算「P and(S or D)」を意味しており、図10に示すように、処理結果では網点で示した領域に元画像Dの影響を受けている。このように、元画像Dが処理結果に影響を与える場合には、基本的に元画像Dの情報が必要となる。このとき、元画像D、すなわち既に書き込まれた描画オブジェクトに対応するRGBデータ、を参照する必要があるので、RGBデータをメモリに書き込まない直接展開処理ではROP処理を正しく行うことができない。
【0072】
以上のことから、印刷対象データを印刷データに変換処理する際の描画処理として直接展開処理が可能な場合の条件は、「ROP処理の結果が元画像Dの影響を受けないこと」である。この条件に該当する条件としては次に示す2つの条件が考えられる。
【0073】
1つの条件は、ROP関数のパラメータに、元画像Dが含まれていないことである(以下、条件(1)という)。もうひとつの条件は、書き込み対象画像SまたはパターンPが特定の条件を満たすことによって、ROP処理の結果が元画像Dの影響を受けないことである(以下、条件(2)という)。上記条件(1)については当然の条件であるのでその説明を省略し、以下に、上記条件(2)について説明することにする。
【0074】
条件(2)としては、書き込み対象画像SまたはパターンPが、以下で説明する3つのいずれかの条件に当てはまる場合に、処理の結果が元画像Dの影響を受けなくなり、直接展開可能であると判断する。
【0075】
図11(a)は、ROP関数「PDSoa」による処理において、処理結果が元画像Dの影響を受けない条件(2)の1つ目の条件を示している。図11(a)に示すように、書き込み対象画像Sの値が単色で「0xffffffff」、すなわち、R、G、B全ての値が「0xff」である白画像の場合には、「(S or D)」の処理結果は元画像Dに関わらず「0xffffffff」となる。したがって、論理演算「P and(S or D)」の処理結果は必ずパターンPと等しくなる。つまり、書き込み対象画像Sの値が単色で「0xffffffff」である場合、処理結果が元画像Dの影響を受けないため、直接展開可能であると判断できる。
【0076】
図11(b)は、ROP関数「PDSoa」による処理において、処理結果が元画像Dの影響を受けない条件(2)の2つ目の条件を示している。図11(b)に示すように、パターンPの値が単色で「0x00000000」、すなわち、R、G、B全ての値が「0x00」である黒画像の場合、論理演算「S or D」の結果に関わらず、論理演算「P and(S or D)」の結果は必ず「0x00000000」となる。すなわち、R、G、B全ての値が「0x00」である黒画像となり、結果としてパターンPと等しくなる。このように、パターンPの値が単色で「0x00000000」の場合も、処理結果が元画像Dの影響を受けないため、直接展開可能であると判断できる。
【0077】
図11(c)は、ROP関数「PDSoa」による処理において、処理結果が元画像Dの影響を受けない条件(2)の3つ目の条件を示している。図11(c)に示すように「P=S」、例えば、パターンPおよび書き込み対象画像Sが単色で共に「0xff00ff00」の画像の場合、論理演算「S or D」の結果に関わらず、論理演算「P and(S or D)」の結果は必ず「0xff00ff00」となる。すなわち、パターンPと等しくなる。つまり、パターンPおよび書き込み対象画像Sの値が等しい場合も、処理結果が元画像Dの影響を受けないため、直接展開可能であると判断できる。
【0078】
図11(a)〜(c)を用いて説明した3つの条件は、ROP関数「PDSoa」において、直接展開が可能な場合の条件であり、256種類のROP関数(図9参照)のそれぞれには、それぞれのROP関数に対応して書き込み対象画像SおよびパターンPの条件が存在する。このため、図9に示した関数テーブルには、ROP関数ごとに、直接展開可能な書き込み対象画像SおよびパターンPの条件に対応する条件番号が示されている。図9に示すように256種類のROP関数それぞれの条件は、条件番号「0」〜「19」の20種類に分類される。
【0079】
また、図11(a)〜(c)に示した3つの条件は、パターンPおよび書き込み対象画像Sが単色でない場合においても成立する。しかし、単色でない場合には全ての画素について3つの条件に当てはまるか否かを判定しなければならないので、判定に時間を要することになる。そこで、本実施形態では、パターンPおよび書き込み対象画像Sが単色である場合にのみ、パターンPおよび書き込み対象画像Sの値が該当するか否かを判定することにする。もっとも、全ての画素について判定するとすることもできる。
【0080】
図12は、条件番号に対応する直接展開が可能となる書き込み対象画像SおよびパターンPの条件を示した条件テーブルを示した図である。条件テーブルTCを参照して、ROP関数に対応する条件番号に対応する条件を読み出すことにより、直接展開可能な条件が定まる。例えば、図9の関数テーブルTFにおいて、ROP番号「E0」のROP関数「PDSoa」には、条件番号「13」が示されている。条件テーブルTCを参照して条件番号「13」に対応する条件を読み出すと、図11(a)〜(c)に示した3つの条件に相当する「(S=1)or(P=0)or(S=P)」の条件が得られる。なお、条件テーブルTCにおいて、条件番号「0」は、上述した条件(1)に相当し、無条件で直接展開可能であることを示している。条件番号「19」は、直接展開可能なパターンPおよび書き込み対象画像Sの条件に関わらず、常に直接展開不可能であることを示している。
【0081】
以上のことから、直接展開が可能であるか否かの判定は、図9に示した関数テーブルTFを参照して、判定対象のオブジェクトデータに含まれているROP番号に対応するROP関数、およびROP関数ごとに付与された条件番号を求めてから、図12に示した条件テーブルTCを参照して、その条件番号に対応する条件に従って行う。以下、直接展開判定処理について、図13のフローチャートに従って説明する。
【0082】
直接展開判定処理では、まず、ステップS300では、展開処理判定部20は、注目しているバンドにおいて判定対象とする描画オブジェクトBOを書き込み対象画像Sに設定する。
【0083】
次に、ステップS301では、展開処理判定部20は、中間コードデータメモリ12の中間コードデータから、判定対象の描画オブジェクトのROP関数、およびパターンPを取得し、RAM54に格納する。
【0084】
次に、ステップS302では、展開処理判定部20は、書き込み対象画像Sに用いるROP関数のパラメータとして元画像Dが含まれるか否か、すなわち、上述した条件(1)について判断する。具体的には、中間コードデータから取得した判定対象の描画オブジェクトのROP番号と、関数テーブルTFとを参照して、利用されるROP関数の条件番号が「0」ならばROP関数のパラメータとして元画像Dが含まれないとして判断している。ROP関数のパラメータとして元画像Dが含まれる場合(Yes)、ステップS303に進む。元画像Dが含まれない場合(No)、ステップS306に進み、当該書き込み対象画像Sは直接展開可能と判断する。
【0085】
ステップS303では、展開処理判定部20は、書き込み対象画像Sが単色であるか否かを判断する。書き込み対象画像Sが単色でない場合(No)にはステップS307に進み、当該書き込み対象画像Sは直接展開不可能と判定する。単色である場合(Yes)にはステップS304に進む。
【0086】
ステップS304では、展開処理判定部20は、中間コードデータから読み出した当該書き込み対象画像S(すなわち、描画オブジェクトBO)のパターンPが単色であるか否かを判断する。パターンPが単色でない場合(No)にはステップS307に進み、当該書き込み対象画像Sは直接展開不可能と判定する。単色である場合(Yes)にはステップS305に進む。
【0087】
ステップS305では、展開処理判定部20は、書き込み対象画像SおよびパターンPの値が所定の条件に当てはまるか否か、すなわち、上述した条件(2)について判断する。具体的には、CPU51がRAM54に記憶された関数テーブルTFを参照して、書き込み対象画像SのROP関数に対応する条件番号を求めてから、RAM54に記憶された条件テーブルTCを参照して、その条件番号に対応する条件を読み出す。そして、書き込み対象画像SおよびパターンPの値が、読み出した条件に当てはまるか否かを判断する。書き込み対象画像SおよびパターンPの値が得られた条件に当てはまる場合(Yes)にはステップS306に進み、当該書き込み対象画像SおよびパターンPが直接展開可能と判定する。所定の条件に当てはまらない場合(No)、ステップS307に進み、書き込み対象画像Sは直接展開不可能と判定する。
【0088】
ステップS306では、展開処理判定部20は、書き込み対象画像Sとした描画オブジェクトは直接展開可能であると判定して、中間コードデータメモリ12の中間コードデータに当該描画オブジェクトのオブジェクト展開可能フラグ「0」を書き込む。
【0089】
ステップS307では、展開処理判定部20は、書き込み対象画像Sとした描画オブジェクトは直接展開不可能であると判定する。また、直接展開不可能な描画オブジェクトを含む当該バンドについても直接展開不可能であると判定して、中間コードデータメモリ12の中間コードデータに当該描画オブジェクトを含むバンドのバンド展開可能フラグ「1」、および当該描画オブジェクトのオブジェクト展開可能フラグ「1」を書き込む。
【0090】
ステップS306において直接展開可能と判定、またはステップS307において直接展開不可能と判定すると、次に、ステップS308では、展開処理判定部20は、バンド内の全描画オブジェクトBOについて処理を終了したか否かを判断する。全描画オブジェクトBOについて、処理を終えていなかった場合(No)、バンド内で1つ上層の次の描画オブジェクトBOを判定対象として、ステップS300の処理へ戻る。全描画オブジェクトについて処理を終えると、ステップS309に進む。
【0091】
ステップS309では、展開処理判定部20は、中間コードデータの全バンドについて処理を終了したか否かを判断する。全バンドについて処理を終えていなかった場合(No)、次のバンドに注目して、ステップS300へ戻る。全バンドについて処理を終えた場合(Yes)、直接展開判定処理を終えて、ステップS40に進む。
【0092】
なお、直接展開判定処理は、バンドに分割する前の印刷対象画像について行うものとしてもよい。すなわち、印刷対象データには、描画オブジェクトごとにROP番号などの描画オブジェクトを描画するためのデータが含まれており、直接展開判定処理では、印刷対象画像に含まれる描画オブジェクトごとに、直接展開処理を行うことができるか否かを判定する。次に、印刷対象画像をバンドに分割する処理において、分割した描画オブジェクトは、分割前の描画オブジェクトの判定結果を受け継ぐようにして、図7に示した中間コードデータを登録する。
【0093】
図6のフローチャートに戻り、次に、ステップS40では、バンド分割部21がバンド分割処理を行う。図14はバンド分割処理の処理の流れを示したフローチャートである。バンド分割処理を開始すると、まず、ステップS400では、バンド分割部21は、注目するバンドが、直接展開不可能なバンドであるか否かを判断する。ここでは、中間コードデータのバンド展開可能フラグを参照して、バンド展開可能フラグが「0」、すなわち直接展開可能なバンドであれば(No)、当該バンドに対してはバンドを分割することなく、ステップS403に進む。バンド展開可能フラグが「1」、すなわち直接展開不可能なバンドであれば(Yes)、ステップS401に進む。
【0094】
ステップS401では、バンド分割部21は、直接展開不可能なバンドについて、中間コードデータメモリ12の中間コードデータを参照して、直接展開不可能な描画オブジェクトの範囲に基づいて直接展開不可能領域の範囲を特定する。
【0095】
図15は、直接展開可能領域および直接展開不可能領域を示した図である。まず、図15に示すバンド0については、描画オブジェクトBO2を書き込む際に元画像Dに影響を受けない。バンド3については重なり領域がないので、元画像Dに影響を受けない。したがって、バンド0およびバンド3についてはバンド展開可能フラグは「0」となり、その全領域が直接展開可能領域となる。
【0096】
バンド1については、描画オブジェクトBO2と描画オブジェクトBO3との重なり領域に「透かし」の効果があり、描画オブジェクトBO3を書き込む際に元画像Dの影響を受けるため、描画オブジェクトBO3のオブジェクト展開可能フラグは「1」となり、描画オブジェクトBO3は直接展開不可能である。このとき、バンド展開可能フラグも「1」となり、当該バンドは直接展開不可能となる。ここで、中間コードデータのオブジェクトデータより、バンド1において描画オブジェクトBO3のy座標の範囲が「y3〜64」であることから、y座標「y3〜64」の領域を直接展開不可能領域としている。一方、y座標「0〜y3」については、直接展開不可能な描画オブジェクトBO3が含まれないので、直接展開可能領域となる。同様に、バンド2について、描画オブジェクトBO3のy座標の範囲が「0〜64」であることから、y座標「0〜64」の領域が直接展開不可能領域となる。
【0097】
このように、展開処理判定部20は、直接展開不可能と判定された描画オブジェクトBOを含む範囲を直接展開不可能領域の範囲と判定している。
【0098】
次に、ステップS402では、バンド分割部21は、当該注目しているバンドの直接展開不可能な領域と直接展開可能な領域とを分割することにより、直接展開不可能なバンドおよび直接展開可能なバンドを生成する。図16は、バンドを分割した処理を示した図である。ここで、図15において説明したように、バンド1には、直接展開不可能な領域および直接展開可能な領域が含まれていた。そこで、図16に示すように、バンド1を直接展開可能な領域のバンド1−1と直接展開不可能な領域のバンド1−2とに分割して、バンド1−1およびバンド1−2について、それぞれ中間コードデータを生成する。例えば、バンド1―1については、バンド高さ「x3」、バンド展開可能フラグ「0」の中間コードデータを生成する。バンド1―2については、バンド高さ「64−x3」、バンド展開可能フラグ「1」の中間コードデータを生成する。生成した中間コードデータは、中間コードデータメモリ12に書き込んで、ステップS403に進む。
【0099】
ステップS403では、バンド分割部21は、全バンドについて処理を終えたか否かを判断する。全バンドについて処理を終えていなかった場合(No)、ステップS400に戻り、他のバンドに注目して処理を行う。全バンドについて処理を行っていた場合(Yes)、バンド分割処理を終了し、ステップS50に進む。
【0100】
図6のフローチャートに戻り、ステップS50〜S80では、バンド分割処理後のバンドごとに直接展開処理または非直接展開処理を行う。そのため、まず、ステップS50では、CPU51は中間コードデータに含まれているバンド展開可能フラグを参照して、注目するバンドが直接展開可能であるか否かを判断する。バンド展開可能フラグが「0」であり直接展開可能なバンドであれば(Yes)、バンドの中間コードデータを直接展開部22に受け渡し、ステップS60の直接展開処理に進む。バンド展開可能フラグが「1」であり直接展開不可能なバンドであれば(No)、バンドの中間コードデータを非直接展開部23に受け渡し、ステップS70の非直接展開処理に進む。
【0101】
ステップS60では、直接展開部22は、受け渡された中間コードデータに対して直接展開処理を実行する。図17は、直接展開部22における直接展開処理の処理の流れを示すフローチャートである。直接展開処理では、まず、ステップS600において、受け取った中間コードデータの描画オブジェクトに対して、ROP処理部30がROP条件に対応するROP処理を実行してRGB形式で表されるRGBデータ(ラスタデータ)に変換する。
【0102】
次に、ステップS601において、色変換部31は、ROP処理部30からRGBデータを受け取り、CMYK形式で表されるCMYKデータ(色変換データ)に色変換する。
【0103】
次に、ステップS602において、階調数変換部32は、色変換部31からCMYKデータを受け取り、CMYKそれぞれの色の階調数を変換する階調数変換を行うことにより、印刷可能な各色ドットの形成有無により表現された2値データである階調数変換データを生成する。生成した階調数変換データは階調数変換データメモリ33に記録する。もっとも、階調数変換データとしては2値のデータに限ることなく、印刷可能な各色ドットの階調に対応した多値データであってもよい。
【0104】
次に、ステップS603では、バンドの中間コードデータに含まれる全ての描画オブジェクトについて処理を行ったか否かを判断して、未処理の描画オブジェクトがあれば(No)、1つ上層の描画オブジェクトに注目してステップS600に戻り、全ての描画オブジェクトについて処理を行うまで、ステップS600〜S602の処理を繰り返す。全ての描画オブジェクトについて処理を行った場合(Yes)、階調数変換データメモリ33には注目しているバンドの全描画オブジェクトBOに対応するCMYKデータが記録されているので、ステップS604に進む。
【0105】
ステップS604では、圧縮部34は、階調数変換データメモリ33から階調数変換データを読み出し、階調数変換データのデータ量を圧縮することにより、印刷データを生成する。生成した印刷データは、印刷データメモリ24に記憶する。ステップS604の処理を終えると、当該バンドへの直接展開処理を終了し、ステップS80に進む。
【0106】
一方、ステップS50からステップS70に進むと、非直接展開部23は、受け渡された中間コードデータに対して非直接展開処理を実行する。
【0107】
図18は、非直接展開処理の処理の流れを示すフローチャートである。非直接展開処理では、まず、ステップS700において、ROP処理部40は、受け取った中間コードデータの描画オブジェクトにROP処理を実行してRGB形式で表されるRGBデータ(ラスタデータ)に変換する。変換したRGBデータはRGBデータメモリ41に格納する。
【0108】
次に、ステップS701では、非直接展開部23は、当該バンドの全ての描画オブジェクトについて処理を行ったか否かを判断して、未処理の描画オブジェクトがあれば(No)、1つ上層の描画オブジェクトBOに注目してステップS700に戻り、全ての描画オブジェクトBOについて処理を行うまで処理を繰り返す。全ての描画オブジェクトBOについて処理を行うと(Yes)、バンド内の全描画オブジェクトBOについてROP処理を行っているので、RGBデータメモリ41には、注目しているバンド全体のRGBデータが記憶された状態で、ステップS702に進む。
【0109】
ステップS702では、色変換部42は、RGBデータメモリ41に書き込まれているRGBデータを読み出してCMYKデータに色変換し、変換したCMYKデータをCMYKデータメモリ43に格納する。
【0110】
次に、ステップS703では、階調数変換部44は、RGBデータメモリ41に書き込まれているCMYKデータを読み出して、CMYKそれぞれの色の階調数を変換することにより階調数変換データに階調数変換し、変換した階調数変換データを階調数変換データメモリ45に書き込む。
【0111】
次に、ステップS704では、圧縮部46は、階調数変換データメモリ45から階調数変換データを読み出し、階調数変換データのデータ量を圧縮する処理を行うことにより印刷データを生成する。生成した印刷データは、印刷データメモリ24に記憶する。ステップS704の処理を終えると、当該バンドへの非直接展開処理を終了し、ステップS80に進む。
【0112】
注目したバンドの全描画オブジェクトについて直接展開処理または非直接展開処理を終えると、図6のフローチャートのステップS80に進んで、CPU51は中間コードデータの全バンドについて処理を行ったか否かを判断する。未処理のバンドがあれば(No)、次のバンドに注目してステップS50に戻り、全てのバンドについて処理を行うまでステップS50〜S70の処理を繰り返す。全てのバンドについて処理を行うと(Yes)、ステップS90に進む。
【0113】
ステップS90では、バンド復元部25がバンド復元処理を行う。ここでは、印刷データメモリ24に書き込まれている印刷データをバンドごとに順番に読み出して、ステップS40にて分割したバンドの印刷データを結合して、所定のバンド高さ(本実施形態では、64ドット)の印刷データに戻している。具体的には、中間コードデータのバンド高さ情報を参照して、バンド高さが「64」より小さいバンドについては、バンド高さが「64」となるまで次のバンド、すなわち分割されたもう一方のバンドの印刷データと結合するようにして、バンド幅が「64」のバンドに対応する印刷データに復元する。復元した印刷データは印刷データ出力部26に受け渡す。
【0114】
次に、ステップS100では、印刷データ出力部26は、バンド復元部25から受け取った印刷データにパルス幅変調を行ってプリントエンジン200に対応するパルス幅信号に変換する。そして、変換したパルス幅信号をCMYK各色について順番にプリントエンジン200に出力する。プリントエンジン200は、印刷データ出力部26から入力されたパルス幅信号に従って、各色の画像を順番に印刷することにより、カラー印刷を実行する。ステップS100の処理を終えると、図6のフローチャートに示した処理を終了する。
【0115】
なお、ステップS30が判定工程、ステップS40が分割工程、ステップS60が第1のデータ処理工程、ステップS70が第2のデータ処理工程、ステップS90が復元工程に相当する。
【0116】
以下、本実施形態における効果を記載する。
【0117】
(1)直接展開処理では、従来の処理方法である非直接展開処理に比べると、描画オブジェクトBOごとにRGBデータをメモリに記憶する処理を行っていないので、より高速に処理を行うことができる。また、描画オブジェクトBOごとにCMYKデータをメモリに記憶する処理も行っていないので、さらに高速に処理することができる。
【0118】
(2)直接展開不可能なバンドについて、バンドから直接展開可能な描画オブジェクトのみを含む直接展開可能領域を分割して、直接展開処理に割り当てているので、従来の処理方法より高速に処理することができる直接展開処理に割り当てる領域が拡大する。したがって、より高速に処理を行うことができる。
【0119】
(3)直接展開判定処理によって、直接展開可能な描画オブジェクトのみを有するバンドだけを直接展開処理に割り当てることができる。したがって、直接展開処理を適切に行うことができる。
【0120】
(4)関数テーブルTFおよび条件テーブルTCを参照することによって、中間コードデータのROP番号から直接展開可能な条件を取得しているので、簡単な処理で直接展開可能な描画オブジェクトを適切に判定することができる。
【0121】
以上、本発明の一実施形態について説明したが、本発明はこれに限られることなく、様々な形態とすることもできる。以下、本発明の変形例について説明する。
【0122】
(変形例1)前記実施形態では、バンドを直接展開可能な領域のバンドと直接展開不可能な領域のバンドとに分割することにより、直接展開可能な領域に直接展開処理、直接展開不可能な領域に非直接展開処理を行った。第1の変形例として、直接展開可能なバンドと直接展開不可能なバンドの高さを変更して、直接展開可能な領域に直接展開処理、直接展開不可能な領域に非直接展開処理を行うようにしてもよい。例えば、図16に示したバンド1−1およびバンド1−2の領域を分割する際に、図19に示すように、バンド0およびバンド1−1の領域を有するバンド0’、バンド1−1およびバンド2の領域を有するバンド1’のように、バンド高さを変更したバンドごとに直接展開処理または非直接展開処理を行う。このようにしても、直接展開可能な領域が拡大するので、処理時間をより短くすることができる。また、特許文献2に記載の技術と比べると、処理時間を短くすることができるという特有の効果を有している。
【0123】
(変形例2)前記実施形態では、描画オブジェクトBOごとに判定を行って、直接展開不可能な描画オブジェクトBOのy座標の全範囲を、直接展開不可能領域とした。第2の変形例では、直接展開できないと判定された描画オブジェクトBOについて、当該描画オブジェクトBOが重なりあっている領域の範囲のみを直接展開不可能領域とする。例えば、図20のバンド2に着目して、描画オブジェクトBO3が直接展開不可能なオブジェクトであれば、描画オブジェクトBO3と描画オブジェクトBO2が重なる領域だけを直接展開不可能領域とする。このときの重なり領域の範囲は、中間コードデータから描画オブジェクトBO2およびBO3の座標、サイズから求めることができる。例えば、バンド2についてはy座標「0〜h2」の範囲が重なり領域となるので、y座標「0〜h2」の範囲を直接展開不可能領域、y座標「h2〜64」の範囲を直接展開可能領域と判定する。このようにすれば、図15の例に比べて直接展開可能な領域がさらに拡大するので、直接展開処理に割り当てる領域が拡大し、処理時間をより短くすることができる。
【0124】
(変形例3)前記実施形態の直接展開処理では、描画オブジェクトごとにROP処理、色変換処理、階調数変換処理を順次行うことにより、全描画オブジェクトを含んだバンドに対応する階調数変換データを生成した。ここで、プリントエンジン200が、CMYKデータの階調数に対応するドットを形成することが可能な場合、直接展開処理では、描画オブジェクトごとにROP処理、色変換処理、を順次行うことにより、全描画オブジェクトを含んだバンドに対応するCMYKデータを生成し、当該CMYKデータを圧縮して印刷データとする。例えば、図21(a)に示すように、描画オブジェクトBO1について、ROP処理、色変換処理を行ったデータBO1(CMYK)を、CMYKデータメモリに書き込む。次に、図21(b)に示すように、描画オブジェクトBO2について、ROP処理、色変換処理を行ったデータBO2(CMYK)を、CMYKデータメモリに書き込む。こうして、全描画オブジェクトBOに対応するCMYKデータを生成すると、CMYKデータを圧縮した印刷データを印刷データメモリ24に書き込むことにより直接展開処理を行う。
【0125】
(変形例4)前記実施形態では、プリンタ2がカラー印刷を行う場合に、カラーデータを扱う処理の例について説明した。本発明は、モノクロデータを扱うモノクロ印刷を行う場合にも適用することもできる。
【0126】
(変形例5)前記実施形態では、CPU51がデータ処理プログラムを実行することにより、データ処理装置100としての機能を実現する例について説明した。第5の変形例として、上述したデータ処理装置100の機能を、ASICなどのハードウェア回路により実現するとしてもよい。もちろん、一部の機能をハードウェア回路にもたせて、ハードウェア回路がもたない機能をソフトウェアによって実現するようにしてもよい。
【0127】
(変形例6)第6の変形例としては、分割したバンドデータを並列に処理するようにしてもよい。例えば、直接展開部22および非直接展開部23としての処理を別々に実行することができる2つのCPU51、またはハードウェア回路を備えたデータ処理装置100の構成であれば、1つのバンドに対する処理を、直接展開可能な領域と不可能な領域とに分けて並列処理することができるので、処理時間をさらに短くすることができる。
【0128】
(変形例7)前記実施形態では、バンドをバンドの高さ方向に分割した。第7の変形例としては、図22(a)に示すように、バンドの幅方向に分割して、直接展開処理することが可能な領域のバンドおよび不可能な領域のバンドを生成してもよい。また、図22(b)に示すように、バンドの高さ方向および幅方向に分割してもよい。
【0129】
(変形例8)前記実施形態では、レーザプリンタに適用したデータ処理装置100の一例について説明した。本発明のデータ処理装置は、インクジェットプリンタ、複写機、ファックスなど様々な装置に適用することもできる。
【図面の簡単な説明】
【0130】
【図1】本発明に係る印刷システムの構成を示した図。
【図2】印刷対象データが表す印刷対象画像の一例を示した図。
【図3】データ処理装置の具体的ハードウェア構成を示した図。
【図4】直接展開処理の具体例について示した図。(a)、(b)は各描画オブジェクトに対する処理を示した図。
【図5】非直接展開処理の具体例について示した図。(a)、(b)は各描画オブジェクトに対する処理を示した図。
【図6】データ処理装置が行う処理の流れを示したフローチャート。
【図7】中間コードデータの構造例を示した図。
【図8】オブジェクトデータのパラメータを説明するための図。
【図9】関数テーブルを示した図。
【図10】ROP関数の一例を示した図。
【図11】ROP関数「PDSoa」による処理において、処理結果が元画像の影響を受けない条件を示した図。(a)〜(c)は各条件を示した図。
【図12】条件テーブルを示した図。
【図13】直接展開判定処理の処理の流れを示すフローチャート。
【図14】バンド分割処理の処理の流れを示したフローチャート。
【図15】直接展開可能領域および直接展開不可能領域を示した図。
【図16】分割したバンドを示した図。
【図17】直接展開処理の処理の流れを示したフローチャート。
【図18】非直接展開処理の処理の流れを示したフローチャート。
【図19】変形例1を説明する図。
【図20】変形例2を説明する図。
【図21】変形例3を説明する図。(a)、(b)は各描画オブジェクトに対する処理を示した図。
【図22】変形例7を説明する図。(a)はバンドの幅方向に分割した例を示した図、(b)はバンドの高さ方向および幅方向に分割した例を示した図。
【符号の説明】
【0131】
1…ホストコンピュータ、2…プリンタ、10…言語解釈部、11…中間コード登録部、12…バンドデータ記憶部としての中間コードデータメモリ、13…描画処理部、20…判定部としての展開処理判定部、21…分割部としてのバンド分割部、22…第1のデータ処理部としての直接展開部、23…第2のデータ処理部としての非直接展開部、24…印刷データメモリ、25…復元部としてのバンド復元部、26…印刷データ出力部、30…ROP処理部、31…色変換部、32…階調数変換部、33…階調数変換データメモリ、40…ROP処理部、41…ラスタデータ記憶部としてのRGBデータメモリ、42…色変換部、43…色変換データ記憶部としてのCMYKデータメモリ、44…階調数変換部、45…階調数変換データ記憶部としての階調数変換データメモリ、46…圧縮部、50…入力インターフェース、51…CPU、52…ROM、53…ハードディスク、54…RAM、55…メモリカードスロット、56…出力インターフェース、57…メモリカード、100…データ処理装置、200…プリントエンジン、BO…描画オブジェクト、P…パターン、S…書き込み対象画像、D…元画像、TF…関数テーブル、TC…テーブルとしての条件テーブル。




 

 


     NEWS
会社検索順位 特許の出願数の順位が発表

URL変更
平成6年
平成7年
平成8年
平成9年
平成10年
平成11年
平成12年
平成13年


 
   お問い合わせ info@patentjp.com patentjp.com   Copyright 2007-2013