JP2016052724A - 画像処理装置、画像処理方法、およびプログラム - Google Patents
画像処理装置、画像処理方法、およびプログラム Download PDFInfo
- Publication number
- JP2016052724A JP2016052724A JP2014178558A JP2014178558A JP2016052724A JP 2016052724 A JP2016052724 A JP 2016052724A JP 2014178558 A JP2014178558 A JP 2014178558A JP 2014178558 A JP2014178558 A JP 2014178558A JP 2016052724 A JP2016052724 A JP 2016052724A
- Authority
- JP
- Japan
- Prior art keywords
- tile
- data
- image
- tiles
- image processing
- 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)
Abstract
【課題】 PDLデータに基づいて印刷データを生成する際に、スキップ可能な領域を効率的に検出可能にする。【解決手段】 ページ記述言語で記述されたPDLデータに基づいて、タイルごとの中間データを生成する中間データ生成手段と、前記タイルごとの中間データに対して無効であるか有効であるかを判定し、スキップ情報を生成するスキップ情報生成手段と、前記スキップ情報に基づいて、前記タイルごとの中間データのうち有効と判定されたタイルの中間データに対してレンダリング処理を実行し、タイルごとの画像データを生成するレンダリング処理手段と、前記スキップ情報に基づいて、前前記スキップ情報に基づいてバンドに含まれる有効と判定されたタイルの数を検出し、前記レンダリング処理手段が生成した画像データに対して前記バンドごとに画像処理を実行する画像処理手段を有することを特徴とする画像処理装置。【選択図】 図2
Description
本発明は、ページ記述言語によって記述されたデータに基づいて、画像データを生成する画像処理技術に関する。
ページ記述言語(PDL:Page Description Laguage)によって記述されたデータに基づいて画像処理装置が印刷データを生成し、印刷データに基づいて印刷装置が印刷するページプリンタが広く知られている。PDLにより記述されたデータ(以降、PDLデータ)にはページごとに、文字や図形の位置情報や書式情報等が記述されている。画像処理装置は、PDLデータをネットワーク等の通信媒体を介して受信し、PDLデータの言語を解釈してラスタ画像データを生成するRIP処理を行う。PDLデータのRIP処理においては、PDLデータを解釈できるインタプリタ(以降、PDLインタプリタ)により、PDLデータを中間データに変換する場合が多い。中間データはレンダリング処理部によってレンダリング処理が実行され、ラスタ画像データに変換される。さらに画像処理装置は、ラスタ画像データに対して所定の画像処理を実施することにより印刷データを生成、印刷装置へ出力する。印刷装置は、受け取った印刷データに基づいて、印刷ヘッドを駆動し、記録媒体上に画像を形成する。
以上のようなPDLデータに基づいて画像を印刷するまでの動作には、データの転送効率向上や高速化が望まれている。そこで処理対象とするデータのうち、無色部をスキップする方法がある。特許文献1には、印刷ヘッドを主走査方向に往復移動させることにより印刷する記録装置において、高速化する方法を開示している。画像データにおける主走査方向の1ラインが空白ドットである白ラインを検出し、空白ライン分記録媒体を搬送することで、印刷動作を一部スキップする。
特許文献2には、画像処理部が生成した印刷データをメモリに一時保存し、画像形成装置に印刷データを転送する際に、無色部を転送対象から除外することにより、転送効率を上げる方法について開示している。
画像を印刷するまでに実行されるRIP処理、画像処理、印刷動作はそれぞれ、処理対象とする単位が異なる。例えば、主走査方向に印刷ヘッドを走査させ、記録媒体を副走査方向に搬送しながら画像を形成する印刷動作において、各記録素子が走査により印刷する印刷データを受け取るため、画像処理部から受け取る印刷データは、ライン単位であることが望ましい。また、各種画像処理は、フィルタ処理など注目画素の処理をするために近傍画素を参照する場合が多く、複数ラインからなるバンド単位で処理される。
そのため、画像印刷するまでに実行されるRIP処理、画像処理、印刷それぞれは、前段の工程から入力されたデータに対して、それぞれの処理単位でスキップ可能な領域を検出する必要があった。そこで本発明は、PDLデータに基づいて印刷データを生成する際に、スキップ可能な領域を効率的に検出可能にすることを目的とする。
上記課題を解決するため本発明に係る画像処理装置は、ページ記述言語で記述されたPDLデータに基づいて、タイルごとの中間データを生成する中間データ生成手段と、前記タイルごとの中間データに対して無効であるか有効であるかを判定し、スキップ情報を生成するスキップ情報生成手段と、前記スキップ情報に基づいて、前記タイルごとの中間データのうち有効と判定されたタイルの中間データに対してレンダリング処理を実行し、タイルごとの画像データを生成するレンダリング処理手段と、前記スキップ情報に基づいてバンドに含まれる有効と判定されたタイルの数を検出し、前記レンダリング処理手段が生成した画像データに対して前記バンドごとに画像処理を実行する画像処理手段と、を有することを特徴とする。
本発明によれば、PDLデータに基づいて印刷データを生成する際に、スキップ可能な領域を効率的に検出することができる。
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下の実施形態において示す構成は一例にすぎず、本発明は図示された構成に限定されるものではない。
<第1実施形態>
図1は、第1実施形態に適用可能な画像形成システムのハードウェア構成を示すブロック図である。CPU100は、入力されたデータや後述のRAM101やROM102に格納されているコンピュータプログラムを用いて、画像形成システム全体の構成を制御する。CPU100が後述のROM102に記憶されているプログラムをRAM101に展開し、実行することで、CPU100は複数の処理部として機能することができる。なお、ここではCPU100が装置全体を制御する場合を例に説明するが、複数のハードウェアが処理を分担することにより、装置全体を制御するようにしてもよい。
図1は、第1実施形態に適用可能な画像形成システムのハードウェア構成を示すブロック図である。CPU100は、入力されたデータや後述のRAM101やROM102に格納されているコンピュータプログラムを用いて、画像形成システム全体の構成を制御する。CPU100が後述のROM102に記憶されているプログラムをRAM101に展開し、実行することで、CPU100は複数の処理部として機能することができる。なお、ここではCPU100が装置全体を制御する場合を例に説明するが、複数のハードウェアが処理を分担することにより、装置全体を制御するようにしてもよい。
RAM101は、外部記憶装置であるハードディスクドライブ(HDD)105から読み取ったコンピュータプログラムやデータ、I/F部108を介して外部から受信したデータを一時的に記憶する記憶領域を有する。またRAM101は、CPU100が各種の処理を実行するために用いる記憶領域や画像処理部106が画像処理を実施する際に用いる記憶領域として使用される。ROM102には、画像形成システムにおける各部の設定を行う設定パタメータやブートプログラムなどが格納されている。
操作部103は、キーボードやマウスなどにより構成されており、操作者による操作を介して操作者の指示を受け付ける。これにより操作者は、各種の指示をCPU100に対して入力することができる。
表示部104は、CRTや液晶画面などにより構成されており、CPU100による処理結果を画像や文字などで表示することができる。なお表示部104がタッチ操作を検知可能なタッチパネルである場合、表示部104が操作部103の一部として機能してもよい。
HDD105は、大容量情報記憶装置である。HDD105には、OS(オペレーティングシステム)やCPU100に処理を実行させるためのコンピュータプログラムやデータなどが保存されている。また、各部の処理によって生成される一時的なデータ(入出力される画像データや画像処理部で使われる閾値マトリクスなど)を保持している。HDD105に保存されているコンピュータプログラムやデータは、CPU100による制御に従って適宜読み取られ、RAM101に記憶されてCPU100による処理対象となる。
画像処理コントローラ106は、1ページ分のオブジェクトを含むページ記述言語で記述されたPDLデータを受信し、印刷部107が印刷可能な印刷データに変換する。画像処理コントローラ106は、コンピュータプログラムを実行可能なプロセッサや、専用回路として実現される。
印刷部107は、画像処理コントローラ106から受け取った出力画像データに基づいて、記録媒体上に記録剤を用いて画像を形成する。画像形成部107は、インクをノズルから記録媒体上に吐出することにより画像を形成するインクジェット方式でもよいし、帯電した像担持体に露光しトナーで現像し、そのトナー像を記録媒体上に転写することで画像を形成する電子写真方式でもよい。
I/F部108は、本実施形態における画像形成システムと外部機器と接続するためのインターフェースとして機能する。さらに、I/F部108は、赤外線通信や無線LAN等を用いて通信装置とデータのやりとりを行うためインターネットに接続するためのインターフェースとしても機能する。上記の各部はいずれも、バス109に接続され、バス109を介してデータの授受を行う。
図2に、本実施形態における画像処理コントローラ106の概要構成を示す。本実施形態における画像処理コントローラ106は、各構成が物理的な専用回路として実現する場合を例に説明する。なお、専用回路を搭載していない画像処理コントローラ106の場合は、CPU100または各処理部が内部に保持するCPUが、後述する処理の動作に相当するフローチャートを実現可能なプログラムを実行することにより、実現できる。
PDLインタプリタ201は不図示の外部装置から、印刷指示を受けたPDLデータを受け取る。PDLデータは、1ページ分の画像形成命令を含む。PDLインタプリタ201において、PDL解釈部202がPDLデータの画像形成命令を解釈し、中間データ生成部203が画像形成命令に従って、描画するオブジェクトを示すディスプレイリスト(DL)等の中間データを生成する。中間データ生成部203によって生成された中間データは、RAM01に一時的に保存される。
スキップ情報生成部204は、中間データ生成部203から受け取った中間データに基づいてスキップ情報を生成する。スキップ情報は、中間データ生成部203より後段の処理部において処理する必要のない領域をスキップするために必要となる情報である。詳細は後述する。
レンダリング処理部205は、RAM101に格納された中間データを読み出し、ビットマップ形式のラスタ画像データに変換する。画像処理部206は、レンダリング処理部205から受け取る画像データに対して、所定の画像処理を実行し、印刷部107が出力可能な印刷データを生成する。生成した印刷データはRAM101に保存する。なお本実施形態では、中間データと印刷データは、RAM101において異なる領域に保存する構成する。しかしながら、RAM101が複数のメモリにより構成され、中間データと印刷データはそれぞれのメモリに格納するようにしてもよい。
ここで、画像処理コントローラ106における各構成の処理単位について説明する。図3(a)に、1ページ分の画像データを示す。印刷命令を受けて入力されたPDLデータは、図3(a)に示す1ページ分の画像形成命令からなる。中間データ生成部203は、図3(b)に示すタイルごとに中間データを出力する。1ページ分の画像データの幅をW,高さをHとすると、タイルは、タイル幅m(m<W)×タイル高さn(n<H)の領域に相当する。なお、タイルを画像データの幅分並べた領域(幅W×高さn)をタイルラインと呼ぶ。中間データ生成部203は、タイルごとに描画すべきオブジェクト情報を表す中間データとタイルの位置情報とを対応づけて、RAM101に格納する。
レンダリング処理部205は、タイルごとに中間データにレンダリング処理を実行する。レンダリング処理部205から出力されるタイルごとのラスタ画像データ(以降、画像データと呼ぶ)は、複数の画素それぞれに画素値が格納された画像データである。
画像処理部206は、図3(c)に示すように、バンド毎の画像データに対して画像処理を実行する。バンドとは、バンド幅W、バンド高さh(h<H)の領域である。また、画像処理部206により生成される印刷データは、印刷データにおける各画素が、印刷部107における印刷ヘッドのノズル(不図示)が記録剤を吐出する解像度に対応する。ここでは1つのノズルが主走査方向に走査するデータは、印刷データにおける1ラインに相当する。なお1ラインは、高さ1画素分×画像データ幅Wからなる領域である。従って印刷データは、少なくとも1ライン単位で印刷部107に転送される。
画像処理部206における処理は、フィルタ処理等、注目画素に対して所定の処理をする際に注目画素の近傍画素を参照する処理がある。このような処理においては、処理対象領域の境界における画素を処理する際には近傍画素を参照できないため、領域間の境界が不自然になってしまうことがある。また生成した印刷データは、1ページ分の画像処理が全て完了する前に、印刷部107に順次転送される。従って画像処理部206は、タイル単位より領域間の境界が少なく、かつ1ライン分のデータを効率的に生成するため、バンド単位で処理するように設定されている。なお本実施形態では、タイル幅m×12が画像データの幅Wである(1タイルラインには12タイルが含まれる)とする。また、タイルの高さn=バンドの高さhである場合を例に説明する。つまり画像処理部206の処理単位であるバンドは、1タイルラインに相当する。
本実施形態におけるスキップ情報生成部204は、上述のようにそれぞれ処理単位の異なるレンダリング処理部205、画像処理部206、印刷部107が効率的に処理をスキップするためのスキップ情報を生成する。図4は、スキップ情報生成部204の詳細なハード構成を示すブロック図である。また、スキップ情報生成部204における処理の動作を、図5に示す。スキップ情報生成部204は、1タイルラインに含まれるタイル数や、画像処理部206が処理単位とする1バンドに相当するタイルライン数に関する情報を予め記憶している。これらの情報は、処理動作を開始するまでにCPU100により設定される。なお、スキップ情報生成部204における処理をソフトウェアによって実現する場合は、CPU100が、図5に示す動作に相当するフローチャートのプログラムをROM102から読み込み実行すればよい。
判定部400はステップS500において、中間データ生成部203から注目タイルの中間データを読み込み、中間データに基づいて注目タイルが有効か無効かを判定する。注目タイルに描画すべきオブジェクトがない、あるいは白情報のみ(無色)の場合は、無効タイルと判定し、それ以外の場合は有効タイルと判定する。注目タイルが有効と判定されると、カウンタ401は、ステップS502において直前に処理したタイルも同じく有効であったかを判定する。直前のタイルも有効であれば、ステップS503においてカウンタ401はカウンタ値に1を加算する。直前のタイルが無効であれは、ステップS504においてカウンタ401は、保持しているカウンタ値を、無効タイルの連続数として出力部402に出力し、カウント値を1に初期化する。
注目タイルが無効と判定された場合も同様に、ステップS505においてカウント601は、直前のタイルも同じく無効であったかを判定する。直前のタイルも無効であれば、ステップS506においてカウント601はカウンタ値に1を加算する。直前のタイルが有効であれば、ステップS507においてカウンタ401は、保持しているカウンタ値を有効タイルの連続数として出力部402に出力し、カウント値を1に初期化する。
ステップS508において出力部402は、カウンタ401から新たに受け取った有効タイルの連続数または無効タイルの連続数をスキップ情報に変換し、スキップ情報を更新する。図6に、処理対象のタイルラインとスキップ情報の一例を示す。図6(a)に示すタイルライン(バンド領域に相当)は、主走査方向に、有効タイルが3タイル連続し、無効タイルが7タイル連続し、有効タイルが2タイル連続する。出力部402は図3(b)に示すように、カウンタ401から出力される連続数に基づいて、有効タイルが3つ連続することを示す1_0011、無効タイルが7つ連続することを示す0_0111、有効タイルが2つ連続することを示す1_0010を生成する。1タイルライン(1バンド)分の有効タイル及び無効タイルの連続数を示す情報を1つのセットとして、スキップ情報が生成される。なお連続数は、最大で、1タイルラインに含まれるタイル数(一度も有効タイル、無効タイルが連続せず、交互である場合)になる。本実施形態の場合、最大の連続数は12であるため、連続数は4ビットで表すことができる。1タイルラインに含まれるタイル数に応じて、スキップ情報のビット数を設定すればよい。
ステップS509において、処理対象のタイルラインに対する処理が完了したかどうかを判定し、処理対象のタイルラインの処理が完了するとステップS510において出力部402は、スキップ情報を出力する。ここでは、出力部402は注目タイルの位置情報を参照し、もっとも右端に位置するタイルが検出されると、タイルラインの処理が完了したと判定する。またステップS511においてカウンタ401はカウント値を1に初期化する。ステップS509においてタイルラインが完了したと判定されない場合、ステップS500に戻り、次のタイルを注目タイルとして処理を繰り返す。
ステップS512において出力部402が、1ページ分のタイルラインに対してスキップ情報を生成したと判定する。1ページ分のタイルラインの処理が完了していなければ、ステップS500に戻り、完了していれば、スキップ情報生成処理を完了する。
次に、レンダリング処理部205におけるレンダリング処理について説明する。図7に、レンダリング処理部205によるハードウェア構成を示す。スキップ信号出力部700が、スキップ情報生成部204によって生成されたスキップ情報を取得する。スキップ信号出力部700は、処理対象のタイルラインに対応するスキップ情報を参照し、タイルごとにスキップ信号を生成する。スキップ信号1は中間データの読み出しをしない(スキップする)ことを示し、スキップ信号0はスキップしないことを示す。スキップ信号出力部700が図6(b)に示すスキップ情報を取得した場合、処理対象のタイルラインに対して、スキップ信号を0、0、0、1、1、1、1、1、1、1、1、0、0の順に出力することになる。
中間データ読み出し部701は、RAM101に格納された中間データをタイルごとに読み出す。ただし中間データ読み出し部701は、スキップ信号出力700からスキップ信号0を受け取った場合のみ中間データを読み出し、スキップ信号1を受け取ったタイルの中間データはスキップして、読み出しを行わない。中間データ読み出し部701は、読み出した順に中間データをレンダラ702に出力する。
レンダラ702は、タイルごとに受け取る中間データをビットマップ形式のラスタ画像データに変換する。レンダラ702は、処理対象のタイルラインのうち、有効タイルの中間データのみ受け取る。図6(a)に示すタイルラインに場合、レンダラ702からは図6(c)に示すラスタ画像データが生成される。無効タイルの中間データはスキップされてレンダリング処理されないため、有効タイルのみがラスタ画像データとして生成されていることがわかる。
次に、画像処理部206における処理の詳細を説明する。図8は、画像処理部206のハード詳細な構成を示すブロック図である。また、画像処理部206における処理の動作を図9に示す。本実施形態において画像処理部206は、ASICや電子回路等の専用のハードウェアとして説明する。画像処理部206はRAM101に一時保存された画像データを順に読み出し、読み出した画像データに対して処理を進める。なお図8に示す動作に相当するプログラムをROM102からCPU101が読み込み実行することによって、画像処理部206を実現することもできる。あるいは、図8に示す処理部の一部のみがハードウェアによって構成され、CPUによるソフトウェア処理と組み合わせることで、各処理部における処理を並列化することもできる。
画像処理部206において、印刷データ生成部803が、画像データに所定の画像処理を実行する。前述の通り印刷データ生成部803は、バンド単位で処理を実行する。そこで画像処理部206はRAM101に格納されたタイル単位の画像データを順に読み出した後、バンドバッファ802にバンド分の画像データを保存する必要がある。印刷データ生成部803は、バンドバッファ802から1バンド分の画像データを取得して画像処理を実行し、バンドごとに印刷データを出力する。ただし画像処理部206がRAM101から読み出す画像データは、図6(c)に示す通り、有効タイルの画像データのみである。
まず有効タイルカウンタ800が、ステップS900においてRAM101からスキップ情報をタイルごとに取得する。ステップS901において有効タイルカウンタ800は、スキップ情報に基づいて1タイルライン(1バンドに相当)に含まれる有効タイルの数をカウントし、有効タイル数を比較部804に出力する。例えば図6(b)に示すスキップ情報を参照する場合、有効タイル数として5が出力される。
一方ステップS902において、RAM101に格納されたタイルごとの画像データが画像処理部206に順に入力されると、バンドバッファ802に格納される。さらに入力タイルカウンタ801は、ステップS903において入力された画像データのタイル数をカウントし、入力タイル数として比較部804に出力する。
ステップS904において比較部804は、有効タイル数と入力タイル数とを比較する。入力タイル数が、処理対象のタイルラインに対応する有効タイル数以上である場合、バンドバッファ802には処理対象の1タイルライン(1バンド)分の画像データが格納されていることを意味する。従って、有効タイル数≧入力タイル数であれば、比較部804は印刷データ生成部803に読出し開始信号を出力する。ステップS905において印刷データ生成部803は、読出し開始信号を検知すると、バンドバッファ802から有効タイル数分の画像データを取得する。
ステップS906において印刷データ生成部803は、ステップS905において取得した画像データに対して所定の画像処理を実行する。画像データは、印刷データ生成部803によって印刷データに変換され、RAM101に保存される。ステップS907において印刷データ生成部803は、1ページ分のバンド数の処理が完了したかを判定する。本実施形態では印刷データ生成部803は予め1ページ分のバンド数を記憶し、処理済みのバンド数と1ページ分のバンド数とを比較することで、処理の完了を判定することができる。未処理のバンドがある場合はステップS900に戻り、次のタイルラインに対して処理を繰り返す。なお、1ページ分のスキップ情報のうち最下端のタイルラインに対応するスキップ情報に最終スキップ情報であることを示すフラグを付加し、有効タイルカウンタ800がフラグを検知するまで画像処理部206における処理を続けるように構成することもできる。
1ページ分に対する処理が完了したと判定されると、以上の画像処理は終了する。なおステップS900およびステップS901による処理と、ステップ902およびステップS903による処理は、並行に動作してもよいし、ステップS902およびステップS903による処理を先に動作してもよい。
以上の処理において印刷データ生成部803は、処理対象とするバンド領域のうち有効と判定されたタイルのみからなる画像データに対して画像処理を実行している。すなわち印刷データ生成部803は、バンド領域のうち無効と判定されたタイル領域に対する処理をスキップしている。また、画像処理部206がバンドバッファ802を含む構成としているため、レンダリング処理部205は生成したタイルごとの画像データを順次、直接画像処理部206に出力することができる。そのためレンダリング処理部205と画像処理部206間において、RAM101を介したデータ転送を省略することができる。もちろん、レンダリング処理部205は、生成した画像データを一時的にRAM101に保存し、画像処理部206がRAM101から画像データをタイルごとに読みだす構成であってもよい。この場合においても、無効と判定されたタイルの画像データは、RAM101への転送、読出しは行われないため、無効タイルの分データ転送を省略することができる。
次に、印刷部107におけるスキップ情報を用いた印刷動作について説明する。印刷部107は、印刷部107の詳細なハードウェア構成を示すブロック図である。本実施形態において印刷部107は、インクジェット方式を用いて記録媒体上に画像を印刷する。印刷部107において、複数の記録素子からなる記録素子列を有する印刷ヘッド1006を主走査方向に走査させて各記録素子(不図示)が印刷データに基づいて記録媒体上に記録剤を吐出する。印刷ヘッド1006を走査した後、搬送部1007が記録媒体を副走査方向に所定の搬送量分搬送することにより、1ページ分の画像を印刷するよう制御する。
印刷制御部1000は、印刷を実行するための印刷ヘッド1006および搬送部10007を制御する。スキップ情報取得部1001は、RAM101から1タイルライン(1バンド相当)ごとのスキップ情報を取得する。また印刷データ取得部1002は、RAM101から印刷データを1タイルラインごとに取得する。印刷ヘッド制御部1005は、1つの記録素子に対して、1ライン分の印刷データに基づいて記録素子を駆動し、記録剤の吐出を制御する。このときスキップ情報に基づいて、記録素子の印刷駆動を制御する。図6(c)に示す処理対象のタイルラインに対応する印刷データを、印刷データ取得部1002が取得したとする。印刷ヘッド制御部1005は、有効タイルの印刷データのみ駆動制御し、無効タイルの領域は駆動制御しない。つまり図6(c)に示すタイルラインに対応する印刷データの場合、スキップ情報を参照して、3タイル分の印刷データに基づいて印刷ヘッドにおける記録素子を駆動した後、5タイル分の期間については駆動制御しない。10タイル目の領域の走査に記録素子が到達すると、印刷ヘッド制御部1005は印刷データに基づいて再び記録素子の駆動を制御する。
また搬送量設定部1003は、スキップ情報に基づいて記録媒体の搬送量を決定する。搬送量設定部1003は、予め所定の搬送量を記憶している。搬送量設定部1003はスキップ情報を参照して、1タイルラインに含まれる全てのタイルが無効である(スキップ情報が無効タイルの連続数12を示す0_1100)である場合、タイル高さに相当する搬送量を所定の搬送量に加算する。搬送制御部1004は、搬送量設定部1003により設定された搬送量に従って搬送部1007を制御し、搬送部1007は記録媒体を搬送量分、搬送する。
以上本実施形態によれば、中間データに基づいてタイルごとに無効か有効かを示す情報を、レンダリング処理部205、画像処理部206、印刷部107が共有し効率的に処理することができる。本実施形態におけるスキップ情報は、タイルごとの有効/無効の判定結果と、1タイルライン(1バンド)に含まれる有効タイル数を検出可能な情報である。レンダリング処理部205は、スキップ情報を参照してタイル毎の有効/無効の判定結果に応じて有効タイルの中間データのみを読み出し、レンダリング処理をする。レンダリング処理部205は、無効タイルの中間データの読み出し、レンダリング処理ともにスキップすることで、入出力に必要なデータの転送量を削減し、かつ1ページ分におけるレンダリング処理を高速化することができる。画像処理部206は、スキップ情報を参照してバンドンい含まれる有効タイル数分の画像データを取得することで、バンドいおける有効タイルの画像データに対してのみ画像処理をする。取得する画像データはタイル毎のデータであるが、スキップ情報を参照することにより、バンド単位で画像処理を実行することができる。印刷部107は、有効タイルの印刷データのみを受け取り、スキップ情報を参照して印刷ヘッドにおける記録素子の駆動、記録媒体の搬送量を制御することで、印刷動作を高速化することができる。
<第2実施形態>
第2実施形態では、レンダリング処理部205が複数のレンダラを有し、中間データに対するレンダリング処理を並列化する構成について説明する。なお第1の実施形態と同一の構成については同じ符号を付し、詳細な説明は省略する。
第2実施形態では、レンダリング処理部205が複数のレンダラを有し、中間データに対するレンダリング処理を並列化する構成について説明する。なお第1の実施形態と同一の構成については同じ符号を付し、詳細な説明は省略する。
図11は、第2実施形態におけるレンダリング処理部205の詳細なハード構成を示すブロック図である。図11(a)に示すように、レンダリング処理部205内部には、4つのレンダラ1,2,3,4が構成されている。レンダラ制御部703は、RAM101からタイルごとの中間データを位置情報と一緒に取得し、中間データと対応する位置情報をレンダラ1〜4のうちいずれかのレンダラに送る。各レンダラ1〜4は、受け取った中間データに対してレンダラを実行して画像データに変換すると、画像データと位置情報を画像処理部206に出力する。また各レンダラ1〜4は、受け取った中間データに対するレンダラを完了すると、レンダラ制御部703に向けて終了通知信号を出力する。
図11(b)は、レンダラ制御部703の詳細なハード構成を示すブロック図である。選択部1104は、レンダラ1〜4それぞれからの終了通知信号に応じて、レンダラ1〜4のうち処理が完了している検出し、処理可能なレンダラを選択する。選択部1104は、選択したレンダラの番号を出力部1105に送る。出力部1105は、中間データ読み出し部701から受け取った中間データおよび位置情報がある場合、選択部1104から受け取るレンダラ番号に中間データおよび位置情報を出力する。
図12は、第2実施形態における画像処理部206の詳細なハード構成を示すブロック図である。レンダリング処理には、中間データによって処理時間が異なるため、レンダリング処理部205における各レンダラから出力される画像データは、必ずしも配置されている順に出力されるわけではない。そこで位置制御部1200は、レンダラ1〜4それぞれから受け取る中間データと対応する位置情報に基づいて、画像データをバンドバッファ802に格納する。位置制御部1200、タイルごと画像データを、画像データ全体において配置されるべき位置に並び変えてバンドバッファ802に保存する。また位置制御部1200は、入力された画像データに対応する位置情報を入力タイルカウンタ801に出力する。
入力タイルカウンタ801は、タイルラインごとに入力されたタイル数をカウントする。入力タイルカウンタ801は、位置制御部1200から位置情報が入力されると、副走査方向における位置を参照して、対応するタイルラインのカウント値に1を加算する。
比較部804は、処理対象タイルラインの有効タイル数と入力タイル数とを比較する。比較部804は、入力タイル数が有効タイル数を上回ったら、印刷データ生成部803に処理対象タイルラインの読み出し開始信号を出力する。そして比較部804は、次のタイルラインについて入力タイル数と有効タイル数を比較する。
以上のように本実施形態によれば、タイルごとのレンダリング処理を並列化することにより、レンダリング処理をより高速化することができる。
<第3実施形態>
第1および第2の実施形態では、画像処理部206が処理単位とするバンドの高さと、中間データ生成部203やレンダリング処理部205が処理単位とするラインの高さが同じである場合を例に説明した。第3実施形態では、バンド高さwの方がライン高さnよりも大きい場合を例に説明する。前述の実施形態と同一の構成については同じ符号を付し、詳細な説明は省略する。図13(a)に示すように、バンド高さw=ライン高さn×2とする。つまり、2タイルラインが1バンドに相当する。
第1および第2の実施形態では、画像処理部206が処理単位とするバンドの高さと、中間データ生成部203やレンダリング処理部205が処理単位とするラインの高さが同じである場合を例に説明した。第3実施形態では、バンド高さwの方がライン高さnよりも大きい場合を例に説明する。前述の実施形態と同一の構成については同じ符号を付し、詳細な説明は省略する。図13(a)に示すように、バンド高さw=ライン高さn×2とする。つまり、2タイルラインが1バンドに相当する。
図14は、第3実施形態におけるスキップ情報生成部204の詳細なハード構成を示すブロック図である。第3実施形態におけるスキップ情報生成部204は、内部にバッファ1300を有する。スキップ情報生成部204は、画像処理部205の処理単位であるバンド高さの単位で有効か無効かを判定する。図13(a)における点線枠が示すように、副走査方向において同じ位置に配置された複数のタイル(以降、タイル群とする)をまとめて、有効か無効かを判定する。そのためバッファ1400は、タイルごとの中間データを順に保存し、バンド分のタイルラインを保持する。
判定部400は、副走査方向における同じ位置に配置されたタイル群について、中間データを解析して有効か無効かを判定する。判定部400は、タイル群に含まれるすべてのタイルにおいて、白情報のみ、または描画するオブジェクトがない場合のみ、無効のタイル群と判定し、それ以外の場合は有効と判定する。つまり判定部400は、1つのバンドにつき、副走査方向のタイル数分(この場合12回)有効か無効かを判定する。
カウンタ401は、前述の実施形態と同様に判定部400によるタイル群の判定結果に基づいて、有効タイル群の連続数、無効タイル群の連続数をカウントする。カウンタ401は、バンド分のカウントが完了すると、スキップ情報として出力する。図13(a)に示すバンドの場合、図13(b)に示す通り、カウンタ401は有効タイル群の連続数3、無効タイルの連続数4、有効タイルの連続数5をスキップ情報として出力する。
以上のように生成されたスキップ情報は、前述の実施形態と同様に、レンダリング処理部205、画像処理部206、印刷部107において共有することができる。レンダリング処理部205におけるスキップ信号出力部700は、バンドの含まれるタイルライン数分、同じスキップ信号を繰り返し出力する。すなわち、図13(b)に示すスキップ情報基づいてスキップ信号出力部700は、1つめのタイルラインに対してスキップ信号を0、0、0、1、1、1、1、0、0、0、0の通りに順に出力する。その後2つめのタイルラインに対して、再度同じスキップ信号0、0、0、1、1、1、1、0、0、0、0を出力する。
中間データ読み出し部701は、スキップ信号0を検知するとRAM101に格納された中間データを読み出し、スキップ信号1を検知すると中間データの読み出しをスキップする。レンダラ702は、受け取った中間データに対して順にレンダリング処理を実行し、生成した画像データを画像処理部206に出力する。図13(c)に、レンダリング処理部205から出力される画像データを示す。
画像処理部206においては、バンドバッファ802に画像データが保存されていく。有効タイルカウンタ800は、スキップ情報が示す有効タイルに対応する連続数を、バンド高さに含まれるタイル数分、乗算する。ここでは、バンド高さに含まれるタイル数は2なので、有効タイル数8(=3+5)を2倍して、バンドに対応する有効タイル数を16と算出する。有効タイルカウンタは、バンドに対応する行こうタイル数として16を出力する。
比較部804による読み出し開始信号を検知すると、印刷データ生成部803は、バンドバッファ802から有効タイル数分の画像データを取得し、所定の画像処理を実行する。図13(c)に、第3実施形態における印刷データ生成部803が取得する画像データを示す。印刷データ生成部803は、無効と判定されるタイルを既に省略した画像データを取得することになる。
以上のようにバンド高さとタイル高さが異なる場合、スキップ情報生成部204は、より領域の大きいバンド高さごとに有効か無効かを判定し、バンド単位のスキップ情報を生成する。これにより、レンダラ205および画像処理部206それぞれにおいてスキップ可能な領域を検出する必要なく、スキップ情報を共有することができる。
<第4実施形態>
第2実施形態における画像処理部206内部バンドバッファ802には、図6(c)に示すようにスキップした無効タイルを挟む有効タイルの2つを、隙間なく隣接するようにバンドバッファ802に格納する構成とした。しかしながら前述の通り、印刷データ処理部803は、注目画素に対する処理の際に、注目画素の近傍画素を参照する場合がある。このとき図6(c)に示す左から3つめのタイルと4つめのタイルの境界に位置する画素では、本来相関のない画素であるにも関わらず、所定の画像処理によって相関をもってしまう場合がある。
第2実施形態における画像処理部206内部バンドバッファ802には、図6(c)に示すようにスキップした無効タイルを挟む有効タイルの2つを、隙間なく隣接するようにバンドバッファ802に格納する構成とした。しかしながら前述の通り、印刷データ処理部803は、注目画素に対する処理の際に、注目画素の近傍画素を参照する場合がある。このとき図6(c)に示す左から3つめのタイルと4つめのタイルの境界に位置する画素では、本来相関のない画素であるにも関わらず、所定の画像処理によって相関をもってしまう場合がある。
そこで第2実施形態における位置制御部1200は、予め印刷データ処理部803における処理を考慮して、スキップした無効タイルを挟む2つの有効タイルの間には、所定サイズの画像データを挟むようにしてもよい。例えば、印刷データ生成部803において3画素×3画素サイズのフィルタを用いたフィルタ処理を実行する場合を例に説明する。図6(c)に示す左から3つめのタイルの画像データにおいて最右に位置する画素を処理する場合には、さらに右隣2画素の画素値が必要となる。そこで位置制御部1200は、図6(c)に示す左から3つめのタイルの画像データを格納した後、次に入力された画像データに対応する位置情報に基づいて、直前の画像データと隣接するタイルであるかを検出する。位置制御部1200は、入力された画像データが直前に入力された画像データに隣接しないタイルではあることを検出すると、タイル高さ分の画素×幅2画素の画像データを格納してから、入力された画像データをバンドバッファ802に格納する。ここでタイル高さ分の画素×幅2画素の画像データを構成する画素の画素値は、白画素(オブジェクトが描画されていない画素)を示す値であることが望ましい。
以上のような実施形態によれば、印刷データ処理部803が画像処理を実行した結果、スキップした領域を挟む境界において不自然さが生じてしまうのを低減することができる。
<その他の実施形態>
前述の実施形態では、スキップ情報生成部204においてカウンタ401が有効タイルまたは無効タイルの連続数をカウントするように構成した。スキップ情報のフォーマットはこれに限らない。例えば、図15(a)に示すように、有効タイルを1、無効タイルを0として、タイルラインにおける有効タイルと無効タイルの判定結果を羅列した表現によりスキップ情報を生成してもよい。また、スキップ情報生成部204における出力部402は、1バンド分のスキップ情報生成処理が完了するごとにスキップ情報を出力するように構成したが、これに限らない。スキップ情報生成部204は、有効タイルまたは無効タイルの連続数が算出されるたびに、その連続数を表すスキップ情報を作成、出力してもよい。ただしスキップ情報生成部204は、画像処理部206において1バンド分の有効タイル数がわかるようにスキップ情報を出力する必要がある。例えば、画像データの最も右端の位置に配置されたタイルの判定結果には、右端のタイルの判定結果であることがわかるようにフラグを付加しておけばよい。このようにすることで、画像処理部206における有効タイルカウンタ800は、1バンドに含まれる有効タイル数を算出することができる。
前述の実施形態では、スキップ情報生成部204においてカウンタ401が有効タイルまたは無効タイルの連続数をカウントするように構成した。スキップ情報のフォーマットはこれに限らない。例えば、図15(a)に示すように、有効タイルを1、無効タイルを0として、タイルラインにおける有効タイルと無効タイルの判定結果を羅列した表現によりスキップ情報を生成してもよい。また、スキップ情報生成部204における出力部402は、1バンド分のスキップ情報生成処理が完了するごとにスキップ情報を出力するように構成したが、これに限らない。スキップ情報生成部204は、有効タイルまたは無効タイルの連続数が算出されるたびに、その連続数を表すスキップ情報を作成、出力してもよい。ただしスキップ情報生成部204は、画像処理部206において1バンド分の有効タイル数がわかるようにスキップ情報を出力する必要がある。例えば、画像データの最も右端の位置に配置されたタイルの判定結果には、右端のタイルの判定結果であることがわかるようにフラグを付加しておけばよい。このようにすることで、画像処理部206における有効タイルカウンタ800は、1バンドに含まれる有効タイル数を算出することができる。
またスキップ情報は、公知の符号化技術を用いて符号化された符号化データでRAM101に格納される構成であってもよい。スキップ情報生成部204の後段で符号化部を構成し、スキップ情報の符号化データを出力する。スキップ情報が符号化データである場合、レンダリング処理部205、画像処理部206、印刷部107は符号化データを復号化した後にスキップ情報を参照する。
なお本発明は、上述の通り実施形態における各処理部の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステムに供給し、CPU100や各処理部が内部に保有するプロセッサがプログラムを読み出し実行する処理によっても実現可能である。
Claims (11)
- ページ記述言語で記述されたPDLデータに基づいて、タイルごとの中間データを生成する中間データ生成手段と、
前記タイルごとの中間データに対して無効であるか有効であるかを判定し、スキップ情報を生成するスキップ情報生成手段と、
前記スキップ情報に基づいて、前記タイルごとの中間データのうち有効と判定されたタイルの中間データに対してレンダリング処理を実行し、タイルごとの画像データを生成するレンダリング処理手段と、
前記スキップ情報に基づいてバンドに含まれる有効と判定されたタイルの数を検出し、前記レンダリング処理手段が生成した画像データに対して前記バンドごとに画像処理を実行する画像処理手段とを有することを特徴とする画像処理装置。 - 前記スキップ情報生成手段は、描画すべきオブジェクトを含まないまたは白情報のみであることを中間データが示す場合に、無効であると判定することを特徴とする請求項1に記載の画像処理装置。
- 前記スキップ情報生成手段は、有効タイルの連続数および無効タイルの連続数をスキップ情報として生成することを特徴とする請求項1または2に記載の画像処理装置。
- 前記画像処理手段は、
前記スキップ情報に基づいて、処理対象とするバンドに含まれる有効と判定されたタイルの数をカウントし、有効タイル数を出力する第一の出力手段と、
前記レンダリング処理手段から入力されたタイルごとの画像データを保存する保存手段と、
前記保存手段から前記処理対象とするバンドの画像データを取得し、所定の画像処理を実行することにより前記画像データに基づいて印刷データを生成する生成手段とを有し、
前記生成手段は、前記処理対象とするバンドに対応する有効タイル数の画像データを前記保存手段から取得することを特徴とする請求項1乃至3のいずれか一項に記載の画像処理装置。 - 前記画像処理手段はさらに、前記レンダリング処理手段から入力された画像データのタイル数をカウントし、入力タイル数として出力する第二の出力手段を有し、
前記生成手段は、前記入力タイル数が前記有効タイル数以上になったら、前記処理対象とするバンドに対応する有効タイル数の画像データを前記保存手段から取得することを特徴とする請求項4に記載の画像処理装置。 - さらに、前記印刷データに基づいて、印刷ヘッドにおける記録素子の駆動を制御する印刷ヘッド制御手段と、
前記スキップ情報に基づいて、記録媒体の搬送量を設定する設定手段を有することを特徴とする請求項4または5に記載の画像処理装置。 - 前記バンドの高さが前記タイルの高さより高い場合、
前記スキップ情報生成手段は、前記バンドにおいて副走査方向に同じ位置の複数のタイルをタイル群として有効か無効かを判定することを特徴とする請求項1乃至6のいずれか一項に記載の画像処理装置。 - 請求項1乃至7のいずれか一項に記載の画像処理装置を含み、
記録媒体上に画像を印刷することを特徴とする印刷装置。 - インクジェット方式により印刷することを特徴とする請求項8に記載の印刷装置。
- コンピュータに読み込み込ませ実行させることで、前記コンピュータを請求項1乃至7の何れか一項に記載された画像処理装置として機能させることを特徴とするコンピュータプログラム。
- ページ記述言語で記述されたPDLデータに基づいて、タイルごとの中間データを生成し、
前記タイルごとの中間データに対して無効であるか有効であるかを判定し、スキップ情報を生成し、
前記スキップ情報に基づいて、前記タイルごとの中間データのうち有効と判定されたタイルの中間データに対してレンダリング処理を実行し、タイルごとの画像データを生成し、
前記スキップ情報に基づいてバンドに含まれる有効と判定されたタイルの数を検出し、前記レンダリング処理手段が生成した画像データに対して前記バンドごとに画像処理を実行することを特徴とする画像処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014178558A JP2016052724A (ja) | 2014-09-02 | 2014-09-02 | 画像処理装置、画像処理方法、およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014178558A JP2016052724A (ja) | 2014-09-02 | 2014-09-02 | 画像処理装置、画像処理方法、およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016052724A true JP2016052724A (ja) | 2016-04-14 |
Family
ID=55744501
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014178558A Pending JP2016052724A (ja) | 2014-09-02 | 2014-09-02 | 画像処理装置、画像処理方法、およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2016052724A (ja) |
-
2014
- 2014-09-02 JP JP2014178558A patent/JP2016052724A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9477914B2 (en) | Image processing apparatus, method, and medium for converting page image data | |
JP4458176B2 (ja) | 印刷制御装置、印刷装置およびプログラム | |
US10762401B2 (en) | Image processing apparatus controlling the order of storing decompressed data, and method thereof | |
JP6445899B2 (ja) | 画像形成装置及びその制御方法 | |
US9672450B2 (en) | Image recording apparatus and control method therefor | |
JP2017024321A (ja) | 画像処理装置、画像形成装置及び画像処理時間予測方法及びプログラム | |
JP6904717B2 (ja) | 画像処理装置、その制御方法、およびプログラム | |
CN107203354B (zh) | 图像处理设备及其控制方法 | |
JP6544905B2 (ja) | 画像処理装置、画像処理方法、プログラム | |
JP2016052724A (ja) | 画像処理装置、画像処理方法、およびプログラム | |
JP2007083556A (ja) | 画像処理装置および画像処理方法 | |
US9305249B2 (en) | Image forming apparatus, image forming method, and computer-readable medium for rasterizing scan line using intermediate data | |
JP6507809B2 (ja) | 印刷指示装置、印刷システム及びプログラム | |
US10182178B2 (en) | Parallel fast drawing of unrotated delta row encoded images | |
US9729756B2 (en) | Image forming system that restrains increase of print data amount, image forming apparatus, and recording medium | |
JP6821926B2 (ja) | 描画データ作成装置 | |
US9824305B2 (en) | Printing control device, image processing method, and storage medium | |
JP5826147B2 (ja) | 画像形成装置 | |
JP2009154546A (ja) | 画像処理装置及び画像処理方法 | |
JP2006031086A (ja) | 印刷処理方法 | |
JP2015196296A (ja) | 画像形成装置、画像形成方法、プログラム | |
JP2011042110A (ja) | 画像形成装置 | |
JP2016143315A (ja) | 情報処理装置、情報処理装置の制御方法、及びプログラム | |
JP2014035672A (ja) | 画像処理装置及び画像処理方法 | |
JP2006171976A (ja) | 印刷処理方法 |