(57)【要約】【課題】  ＰＤＬデータに基づいて印刷データを生成する際に、スキップ可能な領域を効率的に検出可能にする。【解決手段】  ページ記述言語で記述されたＰＤＬデータに基づいて、タイルごとの中間データを生成する中間データ生成手段と、前記タイルごとの中間データに対して無効であるか有効であるかを判定し、スキップ情報を生成するスキップ情報生成手段と、前記スキップ情報に基づいて、前記タイルごとの中間データのうち有効と判定されたタイルの中間データに対してレンダリング処理を実行し、タイルごとの画像データを生成するレンダリング処理手段と、前記スキップ情報に基づいて、前前記スキップ情報に基づいてバンドに含まれる有効と判定されたタイルの数を検出し、前記レンダリング処理手段が生成した画像データに対して前記バンドごとに画像処理を実行する画像処理手段を有することを特徴とする画像処理装置。【選択図】  図２
2016052724.tif 000002
【特許請求の範囲】
【請求項１】
ページ記述言語で記述されたＰＤＬデータに基づいて、タイルごとの中間データを生成する中間データ生成手段と、
前記タイルごとの中間データに対して無効であるか有効であるかを判定し、スキップ情報を生成するスキップ情報生成手段と、
前記スキップ情報に基づいて、前記タイルごとの中間データのうち有効と判定されたタイルの中間データに対してレンダリング処理を実行し、タイルごとの画像データを生成するレンダリング処理手段と、
前記スキップ情報に基づいてバンドに含まれる有効と判定されたタイルの数を検出し、前記レンダリング処理手段が生成した画像データに対して前記バンドごとに画像処理を実行する画像処理手段とを有することを特徴とする画像処理装置。
【請求項２】
前記スキップ情報生成手段は、描画すべきオブジェクトを含まないまたは白情報のみであることを中間データが示す場合に、無効であると判定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記スキップ情報生成手段は、有効タイルの連続数および無効タイルの連続数をスキップ情報として生成することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記画像処理手段は、
前記スキップ情報に基づいて、処理対象とするバンドに含まれる有効と判定されたタイルの数をカウントし、有効タイル数を出力する第一の出力手段と、
前記レンダリング処理手段から入力されたタイルごとの画像データを保存する保存手段と、
前記保存手段から前記処理対象とするバンドの画像データを取得し、所定の画像処理を実行することにより前記画像データに基づいて印刷データを生成する生成手段とを有し、
前記生成手段は、前記処理対象とするバンドに対応する有効タイル数の画像データを前記保存手段から取得することを特徴とする請求項１乃至３のいずれか一項に記載の画像処理装置。
【請求項５】
前記画像処理手段はさらに、前記レンダリング処理手段から入力された画像データのタイル数をカウントし、入力タイル数として出力する第二の出力手段を有し、
前記生成手段は、前記入力タイル数が前記有効タイル数以上になったら、前記処理対象とするバンドに対応する有効タイル数の画像データを前記保存手段から取得することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
さらに、前記印刷データに基づいて、印刷ヘッドにおける記録素子の駆動を制御する印刷ヘッド制御手段と、
前記スキップ情報に基づいて、記録媒体の搬送量を設定する設定手段を有することを特徴とする請求項４または５に記載の画像処理装置。
【請求項７】
前記バンドの高さが前記タイルの高さより高い場合、
前記スキップ情報生成手段は、前記バンドにおいて副走査方向に同じ位置の複数のタイルをタイル群として有効か無効かを判定することを特徴とする請求項１乃至６のいずれか一項に記載の画像処理装置。
【請求項８】
請求項１乃至７のいずれか一項に記載の画像処理装置を含み、
記録媒体上に画像を印刷することを特徴とする印刷装置。
【請求項９】
インクジェット方式により印刷することを特徴とする請求項８に記載の印刷装置。
【請求項１０】
コンピュータに読み込み込ませ実行させることで、前記コンピュータを請求項１乃至７の何れか一項に記載された画像処理装置として機能させることを特徴とするコンピュータプログラム。
【請求項１１】
ページ記述言語で記述されたＰＤＬデータに基づいて、タイルごとの中間データを生成し、
前記タイルごとの中間データに対して無効であるか有効であるかを判定し、スキップ情報を生成し、
前記スキップ情報に基づいて、前記タイルごとの中間データのうち有効と判定されたタイルの中間データに対してレンダリング処理を実行し、タイルごとの画像データを生成し、
前記スキップ情報に基づいてバンドに含まれる有効と判定されたタイルの数を検出し、前記レンダリング処理手段が生成した画像データに対して前記バンドごとに画像処理を実行することを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ページ記述言語によって記述されたデータに基づいて、画像データを生成する画像処理技術に関する。
【背景技術】
【０００２】
ページ記述言語（ＰＤＬ：Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｇｕａｇｅ）によって記述されたデータに基づいて画像処理装置が印刷データを生成し、印刷データに基づいて印刷装置が印刷するページプリンタが広く知られている。ＰＤＬにより記述されたデータ（以降、ＰＤＬデータ）にはページごとに、文字や図形の位置情報や書式情報等が記述されている。画像処理装置は、ＰＤＬデータをネットワーク等の通信媒体を介して受信し、ＰＤＬデータの言語を解釈してラスタ画像データを生成するＲＩＰ処理を行う。ＰＤＬデータのＲＩＰ処理においては、ＰＤＬデータを解釈できるインタプリタ（以降、ＰＤＬインタプリタ）により、ＰＤＬデータを中間データに変換する場合が多い。中間データはレンダリング処理部によってレンダリング処理が実行され、ラスタ画像データに変換される。さらに画像処理装置は、ラスタ画像データに対して所定の画像処理を実施することにより印刷データを生成、印刷装置へ出力する。印刷装置は、受け取った印刷データに基づいて、印刷ヘッドを駆動し、記録媒体上に画像を形成する。
【０００３】
以上のようなＰＤＬデータに基づいて画像を印刷するまでの動作には、データの転送効率向上や高速化が望まれている。そこで処理対象とするデータのうち、無色部をスキップする方法がある。特許文献１には、印刷ヘッドを主走査方向に往復移動させることにより印刷する記録装置において、高速化する方法を開示している。画像データにおける主走査方向の１ラインが空白ドットである白ラインを検出し、空白ライン分記録媒体を搬送することで、印刷動作を一部スキップする。
【０００４】
特許文献２には、画像処理部が生成した印刷データをメモリに一時保存し、画像形成装置に印刷データを転送する際に、無色部を転送対象から除外することにより、転送効率を上げる方法について開示している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−１９９３２６号公報
【特許文献２】特開２０１２−０６４０４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
画像を印刷するまでに実行されるＲＩＰ処理、画像処理、印刷動作はそれぞれ、処理対象とする単位が異なる。例えば、主走査方向に印刷ヘッドを走査させ、記録媒体を副走査方向に搬送しながら画像を形成する印刷動作において、各記録素子が走査により印刷する印刷データを受け取るため、画像処理部から受け取る印刷データは、ライン単位であることが望ましい。また、各種画像処理は、フィルタ処理など注目画素の処理をするために近傍画素を参照する場合が多く、複数ラインからなるバンド単位で処理される。
【０００７】
そのため、画像印刷するまでに実行されるＲＩＰ処理、画像処理、印刷それぞれは、前段の工程から入力されたデータに対して、それぞれの処理単位でスキップ可能な領域を検出する必要があった。そこで本発明は、ＰＤＬデータに基づいて印刷データを生成する際に、スキップ可能な領域を効率的に検出可能にすることを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するため本発明に係る画像処理装置は、ページ記述言語で記述されたＰＤＬデータに基づいて、タイルごとの中間データを生成する中間データ生成手段と、前記タイルごとの中間データに対して無効であるか有効であるかを判定し、スキップ情報を生成するスキップ情報生成手段と、前記スキップ情報に基づいて、前記タイルごとの中間データのうち有効と判定されたタイルの中間データに対してレンダリング処理を実行し、タイルごとの画像データを生成するレンダリング処理手段と、前記スキップ情報に基づいてバンドに含まれる有効と判定されたタイルの数を検出し、前記レンダリング処理手段が生成した画像データに対して前記バンドごとに画像処理を実行する画像処理手段と、を有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、ＰＤＬデータに基づいて印刷データを生成する際に、スキップ可能な領域を効率的に検出することができる。
【図面の簡単な説明】
【００１０】
【図１】画像形成システムのハードウェア構成を示す図
【図２】画像処理コントローラ１０６および印刷部１０７を示す図
【図３】各処理部における処理単位を説明する図
【図４】スキップ情報生成部２０４の詳細なハード構成を示すブロック図
【図５】スキップ情報生成部２０４における処理の動作を示す図
【図６】中間データの一例およびスキップ情報を説明する図
【図７】レンダリング処理部２０５の詳細なハード構成を示すブロック図
【図８】画像処理部２０６の詳細なハード構成を示すブロック図
【図９】画像処理部２０６における処理の動作を示す図
【図１０】印刷部１０７の詳細なハード構成を示すブロック図
【図１１】レンダリング処理部２０５の詳細なハード構成を示すブロック図
【図１２】画像処理部２０６の詳細なハード構成を示すブロック図
【図１３】中間データの一例およびスキップ情報を説明する図
【図１４】スキップ情報生成部２０４の詳細なハード構成を示すブロック図
【図１５】スキップ情報の一例を示す図
【発明を実施するための形態】
【００１１】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下の実施形態において示す構成は一例にすぎず、本発明は図示された構成に限定されるものではない。
【００１２】
＜第１実施形態＞
図１は、第１実施形態に適用可能な画像形成システムのハードウェア構成を示すブロック図である。ＣＰＵ１００は、入力されたデータや後述のＲＡＭ１０１やＲＯＭ１０２に格納されているコンピュータプログラムを用いて、画像形成システム全体の構成を制御する。ＣＰＵ１００が後述のＲＯＭ１０２に記憶されているプログラムをＲＡＭ１０１に展開し、実行することで、ＣＰＵ１００は複数の処理部として機能することができる。なお、ここではＣＰＵ１００が装置全体を制御する場合を例に説明するが、複数のハードウェアが処理を分担することにより、装置全体を制御するようにしてもよい。
【００１３】
ＲＡＭ１０１は、外部記憶装置であるハードディスクドライブ（ＨＤＤ）１０５から読み取ったコンピュータプログラムやデータ、Ｉ／Ｆ部１０８を介して外部から受信したデータを一時的に記憶する記憶領域を有する。またＲＡＭ１０１は、ＣＰＵ１００が各種の処理を実行するために用いる記憶領域や画像処理部１０６が画像処理を実施する際に用いる記憶領域として使用される。ＲＯＭ１０２には、画像形成システムにおける各部の設定を行う設定パタメータやブートプログラムなどが格納されている。
【００１４】
操作部１０３は、キーボードやマウスなどにより構成されており、操作者による操作を介して操作者の指示を受け付ける。これにより操作者は、各種の指示をＣＰＵ１００に対して入力することができる。
【００１５】
表示部１０４は、ＣＲＴや液晶画面などにより構成されており、ＣＰＵ１００による処理結果を画像や文字などで表示することができる。なお表示部１０４がタッチ操作を検知可能なタッチパネルである場合、表示部１０４が操作部１０３の一部として機能してもよい。
【００１６】
ＨＤＤ１０５は、大容量情報記憶装置である。ＨＤＤ１０５には、ＯＳ（オペレーティングシステム）やＣＰＵ１００に処理を実行させるためのコンピュータプログラムやデータなどが保存されている。また、各部の処理によって生成される一時的なデータ（入出力される画像データや画像処理部で使われる閾値マトリクスなど）を保持している。ＨＤＤ１０５に保存されているコンピュータプログラムやデータは、ＣＰＵ１００による制御に従って適宜読み取られ、ＲＡＭ１０１に記憶されてＣＰＵ１００による処理対象となる。
【００１７】
画像処理コントローラ１０６は、１ページ分のオブジェクトを含むページ記述言語で記述されたＰＤＬデータを受信し、印刷部１０７が印刷可能な印刷データに変換する。画像処理コントローラ１０６は、コンピュータプログラムを実行可能なプロセッサや、専用回路として実現される。
【００１８】
印刷部１０７は、画像処理コントローラ１０６から受け取った出力画像データに基づいて、記録媒体上に記録剤を用いて画像を形成する。画像形成部１０７は、インクをノズルから記録媒体上に吐出することにより画像を形成するインクジェット方式でもよいし、帯電した像担持体に露光しトナーで現像し、そのトナー像を記録媒体上に転写することで画像を形成する電子写真方式でもよい。
【００１９】
Ｉ／Ｆ部１０８は、本実施形態における画像形成システムと外部機器と接続するためのインターフェースとして機能する。さらに、Ｉ／Ｆ部１０８は、赤外線通信や無線ＬＡＮ等を用いて通信装置とデータのやりとりを行うためインターネットに接続するためのインターフェースとしても機能する。上記の各部はいずれも、バス１０９に接続され、バス１０９を介してデータの授受を行う。
【００２０】
図２に、本実施形態における画像処理コントローラ１０６の概要構成を示す。本実施形態における画像処理コントローラ１０６は、各構成が物理的な専用回路として実現する場合を例に説明する。なお、専用回路を搭載していない画像処理コントローラ１０６の場合は、ＣＰＵ１００または各処理部が内部に保持するＣＰＵが、後述する処理の動作に相当するフローチャートを実現可能なプログラムを実行することにより、実現できる。
【００２１】
ＰＤＬインタプリタ２０１は不図示の外部装置から、印刷指示を受けたＰＤＬデータを受け取る。ＰＤＬデータは、１ページ分の画像形成命令を含む。ＰＤＬインタプリタ２０１において、ＰＤＬ解釈部２０２がＰＤＬデータの画像形成命令を解釈し、中間データ生成部２０３が画像形成命令に従って、描画するオブジェクトを示すディスプレイリスト（ＤＬ）等の中間データを生成する。中間データ生成部２０３によって生成された中間データは、ＲＡＭ０１に一時的に保存される。
【００２２】
スキップ情報生成部２０４は、中間データ生成部２０３から受け取った中間データに基づいてスキップ情報を生成する。スキップ情報は、中間データ生成部２０３より後段の処理部において処理する必要のない領域をスキップするために必要となる情報である。詳細は後述する。
【００２３】
レンダリング処理部２０５は、ＲＡＭ１０１に格納された中間データを読み出し、ビットマップ形式のラスタ画像データに変換する。画像処理部２０６は、レンダリング処理部２０５から受け取る画像データに対して、所定の画像処理を実行し、印刷部１０７が出力可能な印刷データを生成する。生成した印刷データはＲＡＭ１０１に保存する。なお本実施形態では、中間データと印刷データは、ＲＡＭ１０１において異なる領域に保存する構成する。しかしながら、ＲＡＭ１０１が複数のメモリにより構成され、中間データと印刷データはそれぞれのメモリに格納するようにしてもよい。
【００２４】
ここで、画像処理コントローラ１０６における各構成の処理単位について説明する。図３（ａ）に、１ページ分の画像データを示す。印刷命令を受けて入力されたＰＤＬデータは、図３（ａ）に示す１ページ分の画像形成命令からなる。中間データ生成部２０３は、図３（ｂ）に示すタイルごとに中間データを出力する。１ページ分の画像データの幅をＷ，高さをＨとすると、タイルは、タイル幅ｍ（ｍ＜Ｗ）×タイル高さｎ（ｎ＜Ｈ）の領域に相当する。なお、タイルを画像データの幅分並べた領域（幅Ｗ×高さｎ）をタイルラインと呼ぶ。中間データ生成部２０３は、タイルごとに描画すべきオブジェクト情報を表す中間データとタイルの位置情報とを対応づけて、ＲＡＭ１０１に格納する。
【００２５】
レンダリング処理部２０５は、タイルごとに中間データにレンダリング処理を実行する。レンダリング処理部２０５から出力されるタイルごとのラスタ画像データ（以降、画像データと呼ぶ）は、複数の画素それぞれに画素値が格納された画像データである。
【００２６】
画像処理部２０６は、図３（ｃ）に示すように、バンド毎の画像データに対して画像処理を実行する。バンドとは、バンド幅Ｗ、バンド高さｈ（ｈ＜Ｈ）の領域である。また、画像処理部２０６により生成される印刷データは、印刷データにおける各画素が、印刷部１０７における印刷ヘッドのノズル（不図示）が記録剤を吐出する解像度に対応する。ここでは１つのノズルが主走査方向に走査するデータは、印刷データにおける１ラインに相当する。なお１ラインは、高さ１画素分×画像データ幅Ｗからなる領域である。従って印刷データは、少なくとも１ライン単位で印刷部１０７に転送される。
【００２７】
画像処理部２０６における処理は、フィルタ処理等、注目画素に対して所定の処理をする際に注目画素の近傍画素を参照する処理がある。このような処理においては、処理対象領域の境界における画素を処理する際には近傍画素を参照できないため、領域間の境界が不自然になってしまうことがある。また生成した印刷データは、１ページ分の画像処理が全て完了する前に、印刷部１０７に順次転送される。従って画像処理部２０６は、タイル単位より領域間の境界が少なく、かつ１ライン分のデータを効率的に生成するため、バンド単位で処理するように設定されている。なお本実施形態では、タイル幅ｍ×１２が画像データの幅Ｗである（１タイルラインには１２タイルが含まれる）とする。また、タイルの高さｎ＝バンドの高さｈである場合を例に説明する。つまり画像処理部２０６の処理単位であるバンドは、１タイルラインに相当する。
【００２８】
本実施形態におけるスキップ情報生成部２０４は、上述のようにそれぞれ処理単位の異なるレンダリング処理部２０５、画像処理部２０６、印刷部１０７が効率的に処理をスキップするためのスキップ情報を生成する。図４は、スキップ情報生成部２０４の詳細なハード構成を示すブロック図である。また、スキップ情報生成部２０４における処理の動作を、図５に示す。スキップ情報生成部２０４は、１タイルラインに含まれるタイル数や、画像処理部２０６が処理単位とする１バンドに相当するタイルライン数に関する情報を予め記憶している。これらの情報は、処理動作を開始するまでにＣＰＵ１００により設定される。なお、スキップ情報生成部２０４における処理をソフトウェアによって実現する場合は、ＣＰＵ１００が、図５に示す動作に相当するフローチャートのプログラムをＲＯＭ１０２から読み込み実行すればよい。
【００２９】
判定部４００はステップＳ５００において、中間データ生成部２０３から注目タイルの中間データを読み込み、中間データに基づいて注目タイルが有効か無効かを判定する。注目タイルに描画すべきオブジェクトがない、あるいは白情報のみ（無色）の場合は、無効タイルと判定し、それ以外の場合は有効タイルと判定する。注目タイルが有効と判定されると、カウンタ４０１は、ステップＳ５０２において直前に処理したタイルも同じく有効であったかを判定する。直前のタイルも有効であれば、ステップＳ５０３においてカウンタ４０１はカウンタ値に１を加算する。直前のタイルが無効であれは、ステップＳ５０４においてカウンタ４０１は、保持しているカウンタ値を、無効タイルの連続数として出力部４０２に出力し、カウント値を１に初期化する。
【００３０】
注目タイルが無効と判定された場合も同様に、ステップＳ５０５においてカウント６０１は、直前のタイルも同じく無効であったかを判定する。直前のタイルも無効であれば、ステップＳ５０６においてカウント６０１はカウンタ値に１を加算する。直前のタイルが有効であれば、ステップＳ５０７においてカウンタ４０１は、保持しているカウンタ値を有効タイルの連続数として出力部４０２に出力し、カウント値を１に初期化する。
【００３１】
ステップＳ５０８において出力部４０２は、カウンタ４０１から新たに受け取った有効タイルの連続数または無効タイルの連続数をスキップ情報に変換し、スキップ情報を更新する。図６に、処理対象のタイルラインとスキップ情報の一例を示す。図６（ａ）に示すタイルライン（バンド領域に相当）は、主走査方向に、有効タイルが３タイル連続し、無効タイルが７タイル連続し、有効タイルが２タイル連続する。出力部４０２は図３（ｂ）に示すように、カウンタ４０１から出力される連続数に基づいて、有効タイルが３つ連続することを示す１＿００１１、無効タイルが７つ連続することを示す０＿０１１１、有効タイルが２つ連続することを示す１＿００１０を生成する。１タイルライン（１バンド）分の有効タイル及び無効タイルの連続数を示す情報を１つのセットとして、スキップ情報が生成される。なお連続数は、最大で、１タイルラインに含まれるタイル数（一度も有効タイル、無効タイルが連続せず、交互である場合）になる。本実施形態の場合、最大の連続数は１２であるため、連続数は４ビットで表すことができる。１タイルラインに含まれるタイル数に応じて、スキップ情報のビット数を設定すればよい。
【００３２】
ステップＳ５０９において、処理対象のタイルラインに対する処理が完了したかどうかを判定し、処理対象のタイルラインの処理が完了するとステップＳ５１０において出力部４０２は、スキップ情報を出力する。ここでは、出力部４０２は注目タイルの位置情報を参照し、もっとも右端に位置するタイルが検出されると、タイルラインの処理が完了したと判定する。またステップＳ５１１においてカウンタ４０１はカウント値を１に初期化する。ステップＳ５０９においてタイルラインが完了したと判定されない場合、ステップＳ５００に戻り、次のタイルを注目タイルとして処理を繰り返す。
【００３３】
ステップＳ５１２において出力部４０２が、１ページ分のタイルラインに対してスキップ情報を生成したと判定する。１ページ分のタイルラインの処理が完了していなければ、ステップＳ５００に戻り、完了していれば、スキップ情報生成処理を完了する。
【００３４】
次に、レンダリング処理部２０５におけるレンダリング処理について説明する。図７に、レンダリング処理部２０５によるハードウェア構成を示す。スキップ信号出力部７００が、スキップ情報生成部２０４によって生成されたスキップ情報を取得する。スキップ信号出力部７００は、処理対象のタイルラインに対応するスキップ情報を参照し、タイルごとにスキップ信号を生成する。スキップ信号１は中間データの読み出しをしない（スキップする）ことを示し、スキップ信号０はスキップしないことを示す。スキップ信号出力部７００が図６（ｂ）に示すスキップ情報を取得した場合、処理対象のタイルラインに対して、スキップ信号を０、０、０、１、１、１、１、１、１、１、１、０、０の順に出力することになる。
【００３５】
中間データ読み出し部７０１は、ＲＡＭ１０１に格納された中間データをタイルごとに読み出す。ただし中間データ読み出し部７０１は、スキップ信号出力７００からスキップ信号０を受け取った場合のみ中間データを読み出し、スキップ信号１を受け取ったタイルの中間データはスキップして、読み出しを行わない。中間データ読み出し部７０１は、読み出した順に中間データをレンダラ７０２に出力する。
【００３６】
レンダラ７０２は、タイルごとに受け取る中間データをビットマップ形式のラスタ画像データに変換する。レンダラ７０２は、処理対象のタイルラインのうち、有効タイルの中間データのみ受け取る。図６（ａ）に示すタイルラインに場合、レンダラ７０２からは図６（ｃ）に示すラスタ画像データが生成される。無効タイルの中間データはスキップされてレンダリング処理されないため、有効タイルのみがラスタ画像データとして生成されていることがわかる。
【００３７】
次に、画像処理部２０６における処理の詳細を説明する。図８は、画像処理部２０６のハード詳細な構成を示すブロック図である。また、画像処理部２０６における処理の動作を図９に示す。本実施形態において画像処理部２０６は、ＡＳＩＣや電子回路等の専用のハードウェアとして説明する。画像処理部２０６はＲＡＭ１０１に一時保存された画像データを順に読み出し、読み出した画像データに対して処理を進める。なお図８に示す動作に相当するプログラムをＲＯＭ１０２からＣＰＵ１０１が読み込み実行することによって、画像処理部２０６を実現することもできる。あるいは、図８に示す処理部の一部のみがハードウェアによって構成され、ＣＰＵによるソフトウェア処理と組み合わせることで、各処理部における処理を並列化することもできる。
【００３８】
画像処理部２０６において、印刷データ生成部８０３が、画像データに所定の画像処理を実行する。前述の通り印刷データ生成部８０３は、バンド単位で処理を実行する。そこで画像処理部２０６はＲＡＭ１０１に格納されたタイル単位の画像データを順に読み出した後、バンドバッファ８０２にバンド分の画像データを保存する必要がある。印刷データ生成部８０３は、バンドバッファ８０２から１バンド分の画像データを取得して画像処理を実行し、バンドごとに印刷データを出力する。ただし画像処理部２０６がＲＡＭ１０１から読み出す画像データは、図６（ｃ）に示す通り、有効タイルの画像データのみである。
【００３９】
まず有効タイルカウンタ８００が、ステップＳ９００においてＲＡＭ１０１からスキップ情報をタイルごとに取得する。ステップＳ９０１において有効タイルカウンタ８００は、スキップ情報に基づいて１タイルライン（１バンドに相当）に含まれる有効タイルの数をカウントし、有効タイル数を比較部８０４に出力する。例えば図６（ｂ）に示すスキップ情報を参照する場合、有効タイル数として５が出力される。
【００４０】
一方ステップＳ９０２において、ＲＡＭ１０１に格納されたタイルごとの画像データが画像処理部２０６に順に入力されると、バンドバッファ８０２に格納される。さらに入力タイルカウンタ８０１は、ステップＳ９０３において入力された画像データのタイル数をカウントし、入力タイル数として比較部８０４に出力する。
【００４１】
ステップＳ９０４において比較部８０４は、有効タイル数と入力タイル数とを比較する。入力タイル数が、処理対象のタイルラインに対応する有効タイル数以上である場合、バンドバッファ８０２には処理対象の１タイルライン（１バンド）分の画像データが格納されていることを意味する。従って、有効タイル数≧入力タイル数であれば、比較部８０４は印刷データ生成部８０３に読出し開始信号を出力する。ステップＳ９０５において印刷データ生成部８０３は、読出し開始信号を検知すると、バンドバッファ８０２から有効タイル数分の画像データを取得する。
【００４２】
ステップＳ９０６において印刷データ生成部８０３は、ステップＳ９０５において取得した画像データに対して所定の画像処理を実行する。画像データは、印刷データ生成部８０３によって印刷データに変換され、ＲＡＭ１０１に保存される。ステップＳ９０７において印刷データ生成部８０３は、１ページ分のバンド数の処理が完了したかを判定する。本実施形態では印刷データ生成部８０３は予め１ページ分のバンド数を記憶し、処理済みのバンド数と１ページ分のバンド数とを比較することで、処理の完了を判定することができる。未処理のバンドがある場合はステップＳ９００に戻り、次のタイルラインに対して処理を繰り返す。なお、１ページ分のスキップ情報のうち最下端のタイルラインに対応するスキップ情報に最終スキップ情報であることを示すフラグを付加し、有効タイルカウンタ８００がフラグを検知するまで画像処理部２０６における処理を続けるように構成することもできる。
【００４３】
１ページ分に対する処理が完了したと判定されると、以上の画像処理は終了する。なおステップＳ９００およびステップＳ９０１による処理と、ステップ９０２およびステップＳ９０３による処理は、並行に動作してもよいし、ステップＳ９０２およびステップＳ９０３による処理を先に動作してもよい。
【００４４】
以上の処理において印刷データ生成部８０３は、処理対象とするバンド領域のうち有効と判定されたタイルのみからなる画像データに対して画像処理を実行している。すなわち印刷データ生成部８０３は、バンド領域のうち無効と判定されたタイル領域に対する処理をスキップしている。また、画像処理部２０６がバンドバッファ８０２を含む構成としているため、レンダリング処理部２０５は生成したタイルごとの画像データを順次、直接画像処理部２０６に出力することができる。そのためレンダリング処理部２０５と画像処理部２０６間において、ＲＡＭ１０１を介したデータ転送を省略することができる。もちろん、レンダリング処理部２０５は、生成した画像データを一時的にＲＡＭ１０１に保存し、画像処理部２０６がＲＡＭ１０１から画像データをタイルごとに読みだす構成であってもよい。この場合においても、無効と判定されたタイルの画像データは、ＲＡＭ１０１への転送、読出しは行われないため、無効タイルの分データ転送を省略することができる。
【００４５】
次に、印刷部１０７におけるスキップ情報を用いた印刷動作について説明する。印刷部１０７は、印刷部１０７の詳細なハードウェア構成を示すブロック図である。本実施形態において印刷部１０７は、インクジェット方式を用いて記録媒体上に画像を印刷する。印刷部１０７において、複数の記録素子からなる記録素子列を有する印刷ヘッド１００６を主走査方向に走査させて各記録素子（不図示）が印刷データに基づいて記録媒体上に記録剤を吐出する。印刷ヘッド１００６を走査した後、搬送部１００７が記録媒体を副走査方向に所定の搬送量分搬送することにより、１ページ分の画像を印刷するよう制御する。
【００４６】
印刷制御部１０００は、印刷を実行するための印刷ヘッド１００６および搬送部１０００７を制御する。スキップ情報取得部１００１は、ＲＡＭ１０１から１タイルライン（１バンド相当）ごとのスキップ情報を取得する。また印刷データ取得部１００２は、ＲＡＭ１０１から印刷データを１タイルラインごとに取得する。印刷ヘッド制御部１００５は、１つの記録素子に対して、１ライン分の印刷データに基づいて記録素子を駆動し、記録剤の吐出を制御する。このときスキップ情報に基づいて、記録素子の印刷駆動を制御する。図６（ｃ）に示す処理対象のタイルラインに対応する印刷データを、印刷データ取得部１００２が取得したとする。印刷ヘッド制御部１００５は、有効タイルの印刷データのみ駆動制御し、無効タイルの領域は駆動制御しない。つまり図６（ｃ）に示すタイルラインに対応する印刷データの場合、スキップ情報を参照して、３タイル分の印刷データに基づいて印刷ヘッドにおける記録素子を駆動した後、５タイル分の期間については駆動制御しない。１０タイル目の領域の走査に記録素子が到達すると、印刷ヘッド制御部１００５は印刷データに基づいて再び記録素子の駆動を制御する。
【００４７】
また搬送量設定部１００３は、スキップ情報に基づいて記録媒体の搬送量を決定する。搬送量設定部１００３は、予め所定の搬送量を記憶している。搬送量設定部１００３はスキップ情報を参照して、１タイルラインに含まれる全てのタイルが無効である（スキップ情報が無効タイルの連続数１２を示す０＿１１００）である場合、タイル高さに相当する搬送量を所定の搬送量に加算する。搬送制御部１００４は、搬送量設定部１００３により設定された搬送量に従って搬送部１００７を制御し、搬送部１００７は記録媒体を搬送量分、搬送する。
【００４８】
以上本実施形態によれば、中間データに基づいてタイルごとに無効か有効かを示す情報を、レンダリング処理部２０５、画像処理部２０６、印刷部１０７が共有し効率的に処理することができる。本実施形態におけるスキップ情報は、タイルごとの有効／無効の判定結果と、１タイルライン（１バンド）に含まれる有効タイル数を検出可能な情報である。レンダリング処理部２０５は、スキップ情報を参照してタイル毎の有効／無効の判定結果に応じて有効タイルの中間データのみを読み出し、レンダリング処理をする。レンダリング処理部２０５は、無効タイルの中間データの読み出し、レンダリング処理ともにスキップすることで、入出力に必要なデータの転送量を削減し、かつ１ページ分におけるレンダリング処理を高速化することができる。画像処理部２０６は、スキップ情報を参照してバンドンい含まれる有効タイル数分の画像データを取得することで、バンドいおける有効タイルの画像データに対してのみ画像処理をする。取得する画像データはタイル毎のデータであるが、スキップ情報を参照することにより、バンド単位で画像処理を実行することができる。印刷部１０７は、有効タイルの印刷データのみを受け取り、スキップ情報を参照して印刷ヘッドにおける記録素子の駆動、記録媒体の搬送量を制御することで、印刷動作を高速化することができる。
【００４９】
＜第２実施形態＞
第２実施形態では、レンダリング処理部２０５が複数のレンダラを有し、中間データに対するレンダリング処理を並列化する構成について説明する。なお第１の実施形態と同一の構成については同じ符号を付し、詳細な説明は省略する。
【００５０】
図１１は、第２実施形態におけるレンダリング処理部２０５の詳細なハード構成を示すブロック図である。図１１（ａ）に示すように、レンダリング処理部２０５内部には、４つのレンダラ１，２，３，４が構成されている。レンダラ制御部７０３は、ＲＡＭ１０１からタイルごとの中間データを位置情報と一緒に取得し、中間データと対応する位置情報をレンダラ１〜４のうちいずれかのレンダラに送る。各レンダラ１〜４は、受け取った中間データに対してレンダラを実行して画像データに変換すると、画像データと位置情報を画像処理部２０６に出力する。また各レンダラ１〜４は、受け取った中間データに対するレンダラを完了すると、レンダラ制御部７０３に向けて終了通知信号を出力する。
【００５１】
図１１（ｂ）は、レンダラ制御部７０３の詳細なハード構成を示すブロック図である。選択部１１０４は、レンダラ１〜４それぞれからの終了通知信号に応じて、レンダラ１〜４のうち処理が完了している検出し、処理可能なレンダラを選択する。選択部１１０４は、選択したレンダラの番号を出力部１１０５に送る。出力部１１０５は、中間データ読み出し部７０１から受け取った中間データおよび位置情報がある場合、選択部１１０４から受け取るレンダラ番号に中間データおよび位置情報を出力する。
【００５２】
図１２は、第２実施形態における画像処理部２０６の詳細なハード構成を示すブロック図である。レンダリング処理には、中間データによって処理時間が異なるため、レンダリング処理部２０５における各レンダラから出力される画像データは、必ずしも配置されている順に出力されるわけではない。そこで位置制御部１２００は、レンダラ１〜４それぞれから受け取る中間データと対応する位置情報に基づいて、画像データをバンドバッファ８０２に格納する。位置制御部１２００、タイルごと画像データを、画像データ全体において配置されるべき位置に並び変えてバンドバッファ８０２に保存する。また位置制御部１２００は、入力された画像データに対応する位置情報を入力タイルカウンタ８０１に出力する。
【００５３】
入力タイルカウンタ８０１は、タイルラインごとに入力されたタイル数をカウントする。入力タイルカウンタ８０１は、位置制御部１２００から位置情報が入力されると、副走査方向における位置を参照して、対応するタイルラインのカウント値に１を加算する。
【００５４】
比較部８０４は、処理対象タイルラインの有効タイル数と入力タイル数とを比較する。比較部８０４は、入力タイル数が有効タイル数を上回ったら、印刷データ生成部８０３に処理対象タイルラインの読み出し開始信号を出力する。そして比較部８０４は、次のタイルラインについて入力タイル数と有効タイル数を比較する。
【００５５】
以上のように本実施形態によれば、タイルごとのレンダリング処理を並列化することにより、レンダリング処理をより高速化することができる。
【００５６】
＜第３実施形態＞
第１および第２の実施形態では、画像処理部２０６が処理単位とするバンドの高さと、中間データ生成部２０３やレンダリング処理部２０５が処理単位とするラインの高さが同じである場合を例に説明した。第３実施形態では、バンド高さｗの方がライン高さｎよりも大きい場合を例に説明する。前述の実施形態と同一の構成については同じ符号を付し、詳細な説明は省略する。図１３（ａ）に示すように、バンド高さｗ＝ライン高さｎ×２とする。つまり、２タイルラインが１バンドに相当する。
【００５７】
図１４は、第３実施形態におけるスキップ情報生成部２０４の詳細なハード構成を示すブロック図である。第３実施形態におけるスキップ情報生成部２０４は、内部にバッファ１３００を有する。スキップ情報生成部２０４は、画像処理部２０５の処理単位であるバンド高さの単位で有効か無効かを判定する。図１３（ａ）における点線枠が示すように、副走査方向において同じ位置に配置された複数のタイル（以降、タイル群とする）をまとめて、有効か無効かを判定する。そのためバッファ１４００は、タイルごとの中間データを順に保存し、バンド分のタイルラインを保持する。
【００５８】
判定部４００は、副走査方向における同じ位置に配置されたタイル群について、中間データを解析して有効か無効かを判定する。判定部４００は、タイル群に含まれるすべてのタイルにおいて、白情報のみ、または描画するオブジェクトがない場合のみ、無効のタイル群と判定し、それ以外の場合は有効と判定する。つまり判定部４００は、１つのバンドにつき、副走査方向のタイル数分（この場合１２回）有効か無効かを判定する。
【００５９】
カウンタ４０１は、前述の実施形態と同様に判定部４００によるタイル群の判定結果に基づいて、有効タイル群の連続数、無効タイル群の連続数をカウントする。カウンタ４０１は、バンド分のカウントが完了すると、スキップ情報として出力する。図１３（ａ）に示すバンドの場合、図１３（ｂ）に示す通り、カウンタ４０１は有効タイル群の連続数３、無効タイルの連続数４、有効タイルの連続数５をスキップ情報として出力する。
【００６０】
以上のように生成されたスキップ情報は、前述の実施形態と同様に、レンダリング処理部２０５、画像処理部２０６、印刷部１０７において共有することができる。レンダリング処理部２０５におけるスキップ信号出力部７００は、バンドの含まれるタイルライン数分、同じスキップ信号を繰り返し出力する。すなわち、図１３（ｂ）に示すスキップ情報基づいてスキップ信号出力部７００は、１つめのタイルラインに対してスキップ信号を０、０、０、１、１、１、１、０、０、０、０の通りに順に出力する。その後２つめのタイルラインに対して、再度同じスキップ信号０、０、０、１、１、１、１、０、０、０、０を出力する。
【００６１】
中間データ読み出し部７０１は、スキップ信号０を検知するとＲＡＭ１０１に格納された中間データを読み出し、スキップ信号１を検知すると中間データの読み出しをスキップする。レンダラ７０２は、受け取った中間データに対して順にレンダリング処理を実行し、生成した画像データを画像処理部２０６に出力する。図１３（ｃ）に、レンダリング処理部２０５から出力される画像データを示す。
【００６２】
画像処理部２０６においては、バンドバッファ８０２に画像データが保存されていく。有効タイルカウンタ８００は、スキップ情報が示す有効タイルに対応する連続数を、バンド高さに含まれるタイル数分、乗算する。ここでは、バンド高さに含まれるタイル数は２なので、有効タイル数８（＝３＋５）を２倍して、バンドに対応する有効タイル数を１６と算出する。有効タイルカウンタは、バンドに対応する行こうタイル数として１６を出力する。
【００６３】
比較部８０４による読み出し開始信号を検知すると、印刷データ生成部８０３は、バンドバッファ８０２から有効タイル数分の画像データを取得し、所定の画像処理を実行する。図１３（ｃ）に、第３実施形態における印刷データ生成部８０３が取得する画像データを示す。印刷データ生成部８０３は、無効と判定されるタイルを既に省略した画像データを取得することになる。
【００６４】
以上のようにバンド高さとタイル高さが異なる場合、スキップ情報生成部２０４は、より領域の大きいバンド高さごとに有効か無効かを判定し、バンド単位のスキップ情報を生成する。これにより、レンダラ２０５および画像処理部２０６それぞれにおいてスキップ可能な領域を検出する必要なく、スキップ情報を共有することができる。
【００６５】
＜第４実施形態＞
第２実施形態における画像処理部２０６内部バンドバッファ８０２には、図６（ｃ）に示すようにスキップした無効タイルを挟む有効タイルの２つを、隙間なく隣接するようにバンドバッファ８０２に格納する構成とした。しかしながら前述の通り、印刷データ処理部８０３は、注目画素に対する処理の際に、注目画素の近傍画素を参照する場合がある。このとき図６（ｃ）に示す左から３つめのタイルと４つめのタイルの境界に位置する画素では、本来相関のない画素であるにも関わらず、所定の画像処理によって相関をもってしまう場合がある。
【００６６】
そこで第２実施形態における位置制御部１２００は、予め印刷データ処理部８０３における処理を考慮して、スキップした無効タイルを挟む２つの有効タイルの間には、所定サイズの画像データを挟むようにしてもよい。例えば、印刷データ生成部８０３において３画素×３画素サイズのフィルタを用いたフィルタ処理を実行する場合を例に説明する。図６（ｃ）に示す左から３つめのタイルの画像データにおいて最右に位置する画素を処理する場合には、さらに右隣２画素の画素値が必要となる。そこで位置制御部１２００は、図６（ｃ）に示す左から３つめのタイルの画像データを格納した後、次に入力された画像データに対応する位置情報に基づいて、直前の画像データと隣接するタイルであるかを検出する。位置制御部１２００は、入力された画像データが直前に入力された画像データに隣接しないタイルではあることを検出すると、タイル高さ分の画素×幅２画素の画像データを格納してから、入力された画像データをバンドバッファ８０２に格納する。ここでタイル高さ分の画素×幅２画素の画像データを構成する画素の画素値は、白画素（オブジェクトが描画されていない画素）を示す値であることが望ましい。
【００６７】
以上のような実施形態によれば、印刷データ処理部８０３が画像処理を実行した結果、スキップした領域を挟む境界において不自然さが生じてしまうのを低減することができる。
【００６８】
＜その他の実施形態＞
前述の実施形態では、スキップ情報生成部２０４においてカウンタ４０１が有効タイルまたは無効タイルの連続数をカウントするように構成した。スキップ情報のフォーマットはこれに限らない。例えば、図１５（ａ）に示すように、有効タイルを１、無効タイルを０として、タイルラインにおける有効タイルと無効タイルの判定結果を羅列した表現によりスキップ情報を生成してもよい。また、スキップ情報生成部２０４における出力部４０２は、１バンド分のスキップ情報生成処理が完了するごとにスキップ情報を出力するように構成したが、これに限らない。スキップ情報生成部２０４は、有効タイルまたは無効タイルの連続数が算出されるたびに、その連続数を表すスキップ情報を作成、出力してもよい。ただしスキップ情報生成部２０４は、画像処理部２０６において１バンド分の有効タイル数がわかるようにスキップ情報を出力する必要がある。例えば、画像データの最も右端の位置に配置されたタイルの判定結果には、右端のタイルの判定結果であることがわかるようにフラグを付加しておけばよい。このようにすることで、画像処理部２０６における有効タイルカウンタ８００は、１バンドに含まれる有効タイル数を算出することができる。
【００６９】
またスキップ情報は、公知の符号化技術を用いて符号化された符号化データでＲＡＭ１０１に格納される構成であってもよい。スキップ情報生成部２０４の後段で符号化部を構成し、スキップ情報の符号化データを出力する。スキップ情報が符号化データである場合、レンダリング処理部２０５、画像処理部２０６、印刷部１０７は符号化データを復号化した後にスキップ情報を参照する。
【００７０】
なお本発明は、上述の通り実施形態における各処理部の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステムに供給し、ＣＰＵ１００や各処理部が内部に保有するプロセッサがプログラムを読み出し実行する処理によっても実現可能である。
【図１】
2016052724.tif 000003
【図２】
2016052724.tif 000004
【図３】
2016052724.tif 000005
【図４】
2016052724.tif 000006
【図５】
2016052724.tif 000007
【図６】
2016052724.tif 000008
【図７】
2016052724.tif 000009
【図８】
2016052724.tif 000010
【図９】
2016052724.tif 000011
【図１０】
2016052724.tif 000012
【図１１】
2016052724.tif 000013
【図１２】
2016052724.tif 000014
【図１３】
2016052724.tif 000015
【図１４】
2016052724.tif 000016
【図１５】
2016052724.tif 000017