(57)【要約】【課題】ＰＤＬデータに基づく印刷処理を効率的に制御することのできるインクジェットプリンタ、印刷方法、印刷プログラム、及び記録媒体の提供を目的とする。【解決手段】ＰＤＬデータに基づいてスキャンデータを生成し、該スキャンデータに基づいてノズルヘッドを制御することで印刷処理を実行するインクジェットプリンタであって、前記ＰＤＬデータを解析してバンド単位で画像データを生成するＰＤＬ解析手段と、前記バンド単位の画像データに基づいて、当該バンド分の前記スキャンデータを生成するスキャンデータ生成手段とを有し、前記バンド単位で生成された複数の前記スキャンデータに基づいて、ノズルヘッドの１スキャン分に対応する前記スキャンデータを生成することにより上記課題を解決する。【選択図】図５
2007261096.tif 000002
【特許請求の範囲】
【請求項１】
ＰＤＬデータに基づいてスキャンデータを生成し、該スキャンデータに基づいてノズルヘッドを制御することで印刷処理を実行するインクジェットプリンタであって、
前記ＰＤＬデータを解析してバンド単位で画像データを生成するＰＤＬ解析手段と、
前記バンド単位の画像データに基づいて、当該バンド分の前記スキャンデータを生成するスキャンデータ生成手段とを有し、
前記バンド単位で生成された複数の前記スキャンデータに基づいて、ノズルヘッドの１スキャン分に対応する前記スキャンデータを生成することを特徴とするインクジェットプリンタ。
【請求項２】
前記１スキャン分に対応するスキャンデータに基づいて、主走査方向における有効範囲を判定することを特徴とする請求項１記載のインクジェットプリンタ。
【請求項３】
前記バンド単位の画像データに基づいて、当該画像データにおいて描画要素が最初に現れるラインを検出することで副走査方向における有効範囲を判定することを特徴とする請求項１又は２記載のインクジェットプリンタ。
【請求項４】
前記バンド分の前記スキャンデータが生成される度に、前記バンド単位の画像データを格納するメモリ領域を開放することを特徴とする請求項１乃至３いずれか一項記載のインクジェットプリンタ。
【請求項５】
ＰＤＬデータに基づいてスキャンデータを生成し、該スキャンデータに基づいてノズルヘッドを制御することで印刷処理を実行するインクジェットプリンタにおける印刷方法であって、
前記ＰＤＬデータを解析してバンド単位で画像データを生成するＰＤＬ解析手順と、
前記バンド単位の画像データに基づいて、当該バンド分の前記スキャンデータを生成するスキャンデータ生成手順と、
前記バンド単位で生成された複数の前記スキャンデータに基づいて、ノズルヘッドの１スキャン分に対応する前記スキャンデータを生成するスキャンデータ合成手順とを有することを特徴とする印刷方法。
【請求項６】
前記１スキャン分に対応するスキャンデータに基づいて、主走査方向における有効範囲を判定する主走査有効範囲判定手順を有することを特徴とする請求項５記載の印刷方法。
【請求項７】
前記バンド単位の画像データに基づいて、当該画像データにおいて描画要素が最初に現れるラインを検出することで副走査方向における有効範囲を判定する副走査有効範囲判定手順を有することを特徴とする請求項５又は６記載の印刷方法。
【請求項８】
前記バンド分の前記スキャンデータが生成される度に、前記バンド単位の画像データを格納するメモリ領域を開放することを特徴とする請求項５乃至７いずれか一項記載の印刷方法。
【請求項９】
請求項５乃至８いずれか一項記載の印刷方法をインクジェットプリンタに実行させるための印刷プログラム。
【請求項１０】
請求項９記載の印刷プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インクジェットプリンタ、印刷方法、印刷プログラム、及び記録媒体に関し、特にＰＤＬデータに基づいてスキャンデータを生成し、該スキャンデータに基づいてノズルヘッドを制御することで印刷処理を実行するインクジェットプリンタ、印刷方法、印刷プログラム、及び記録媒体に関する。
【背景技術】
【０００２】
従来、インクジェットプリンタにおいて、ネットワーク等を介してホストコンピュータ等より受信されたＰＤＬ（Page Description Language）データは、ＰＤＬインタプリタによって解釈され、画像データが描画される。更に、描画された画像データは、各種の画像処理等が施され、最終的にノズルヘッド（インクヘッド）からのインクの発射を制御するためのデータに変換される。なお、ノズルヘッドによる主走査方向への印字動作を「スキャン」といい、１回のスキャンにおいて、ノズルヘッドからのインクの発射を制御するためのデータを「スキャンデータ」という。
【０００３】
ところで、ＰＤＬデータから画像データが描画される際、一度に１ページ分のイメージをメモリ上に展開したのではメモリ効率が悪い。したがって、通常、１ページを副走査方向にｎ分割したバンド単位で描画が行われる。なお、バンド単位の画像データ（以下「バンドデータ」という。）が描画されるバッファをバンドバッファという。
【０００４】
ここで、ノズルヘッドの副走査方向における幅（以下「ノズルヘッド幅」という。）は、一般的に、複数バンド分に相当する（なお、ノズルヘッド幅は、スキャンデータの副走査方向における幅に相当する。）。
【０００５】
また、一般的に１スキャンにおける有効範囲（描画要素が存在する範囲）を検出し、有効範囲外においては、ノズルヘッドを高速に移動させる等により、印字性能の向上が図られているが、従来、有効範囲の検出は、バンドデータに基づいて行われていた。そのため、従来、ハンドデータからスキャンデータへの変換は、１スキャンデータに対応する複数のバンドデータが生成されるのを待って行われていた。
【０００６】
図１は、スキャンデータとバンドデータとの関係を示す図である。図１において、２００は、ノズルヘッドを示す。また、３００は１ページ分の画像データを示す。また、ｂ１０１、ｂ１０２、ｂ１０３のそれぞれは、バンドデータを示す。更に、三角形ｅ１０１は、画像データ３００における一つの描画要素を示す。なお、矢印Ａ１は主走査方向を示し、矢印Ａ２は、副走査方向を示す。
【０００７】
図１では、ノズルヘッド２００の幅Ｗ１０１は、３つのバンドデータの幅と等しい場合を例としている。したがって、一つのスキャンデータｓ１０１を生成するためには、３つのバンドデータｂ１０１、ｂ１０２、及びｂ１０３が必要となる。また、スキャンデータｓ１０１における主走査方向の有効範囲はｗ１０２によって示されるが、有効範囲ｗ１０２は、バンドデータｂ１０１、ｂ１０２、及びｂ１０３が揃わなければ判定することはできない。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、複数バンド単位でのスキャンデータへの変換は、当該複数バンド分のバンドバッファを必要とするため、メモリ効率の観点から、また、処理効率の観点から好ましくないという問題がある。
【０００９】
本発明は、上記の点に鑑みてなされたものであって、ＰＤＬデータに基づく印刷処理を効率的に制御することのできるインクジェットプリンタ、印刷方法、印刷プログラム、及び記録媒体の提供を目的とする。
【課題を解決するための手段】
【００１０】
そこで上記課題を解決するため、本発明は、ＰＤＬデータに基づいてスキャンデータを生成し、該スキャンデータに基づいてノズルヘッドを制御することで印刷処理を実行するインクジェットプリンタであって、前記ＰＤＬデータを解析してバンド単位で画像データを生成するＰＤＬ解析手段と、前記バンド単位の画像データに基づいて、当該バンド分の前記スキャンデータを生成するスキャンデータ生成手段とを有し、前記バンド単位で生成された複数の前記スキャンデータに基づいて、ノズルヘッドの１スキャン分に対応する前記スキャンデータを生成することを特徴とする。
【００１１】
このようなインクジェットプリンタでは、ＰＤＬデータに基づく印刷処理を効率的に制御することができる。
【００１２】
また、上記課題を解決するため、本発明は、上記インクジェットプリンタにおける印刷方法、前記印刷方法を前記インクジェットプリンタに実行させるための印刷プログラム、又は前記印刷プログラムを記録した記録媒体としてもよい。
【発明の効果】
【００１３】
本発明によれば、ＰＤＬデータに基づく印刷処理を効率的に制御することのできるインクジェットプリンタ、印刷方法、印刷プログラム、及び記録媒体を提供することができる。
【発明を実施するための最良の形態】
【００１４】
以下、図面に基づいて本発明の実施の形態を説明する。
【００１５】
図２は、本発明の実施の形態におけるインクジェットプリンタのハードウェアの概略構成例を示す図である。図２において、インクジェットプリンタ１０は、ＲＯＭ１１、ＲＡＭ１２、ＣＰＵ１３、及び印刷部１４等を有する。
【００１６】
ＲＯＭ１１は、インクジェットプリンタ１０において動作する各種プログラム等を格納する記録媒体である。ＲＡＭ１２は、各種プログラムによる作業領域等として用いられる記録媒体である。ＣＰＵ１３は、ＲＯＭ１１に格納された各種プログラムを実行することによりインクジェットプリンタ１０の機能を制御する。印刷部１４は、印刷用紙に対して印字を行うためのハードウェア一式を示し、ノズルヘッド１４１等を含む。
【００１７】
図３は、ノズルヘッドの概略図である。図３において、ノズルヘッド１４１は、ＣＫＭＹの各色ごとに、ノズルヘッド１４１ｃ、ノズルヘッド１４１ｋ、ノズルヘッド１４１ｍ、ノズルヘッド１４１ｙを有し、各ノズルヘッドは、発射口Ｈより、当該ノズルヘッドに対応する色のインクを発射する。
【００１８】
なお、矢印Ａ１は、主走査方向を示し、矢印Ａ２は、副走査方向を示す。矢印Ａ１及びＡ２の意味は、以降の図面でも同様である。また、ＳＷは、ノズルヘッド１４１の副走査方向の幅（以下「ノズルヘッド幅ＳＷ」という。）を示す。
【００１９】
図４は、本発明の実施の形態におけるインクジェットプリンタの機能構成例を示す図である。図４において、インクジェットプリンタ１０は、ＰＤＬ（Page Description Language）解析部１１１、スキャンデータ生成部１１２、バンドバッファ１１３、及びスキャンバッファ１１４等より構成される。
【００２０】
ＰＤＬ解析部１１１は、ホストコンピュータ等より送信されるＰＤＬデータｄ１のコマンド等を解釈することにより、印刷イメージを示す画像データを生成するプログラムである。ＰＤＬ解析部１１１は、ページ単位で処理を実行し、確定したバンド単位のデータを出力する。ここで「バンド」とは、１ページを副走査方向にｎ分割した単位をいう。以下、バンド単位の画像データを「バンドデータ」という。したがって、ＰＤＬ解析部１１１は、解析処理によって一つのバンドデータｄ２を生成する。
【００２１】
バンドバッファ１１３は、ＰＤＬ解析部１１１によって生成されたバンドデータを保持するためのメモリ領域であり、例えば、ＲＡＭ１２上に実現される。
【００２２】
スキャンデータ生成部１１２は、バンドバッファ１１３に生成されたバンドデータｄ２をスキャンデータに変換するプログラムである。本実施の形態において、ノズルヘッドによる主走査方向への印字動作を「スキャン」といい、１回のスキャンにおいて、ノズルヘッド１４１のノズルからのインクの発射を制御するためのデータを「スキャンデータ」という。したがって、スキャンデータの副走査方向における幅は、ノズルヘッド幅ＳＷに依存（又は相当）する。
【００２３】
以下、本実施の形態におけるインクジェットプリンタ１０の処理手順について説明する。図５は、本発明の実施の形態におけるインクジェットプリンタの１ページ分の処理手順を説明するためのフローチャートである。図５の処理は、ＲＯＭ１１に格納されたプログラムに基づいてＣＰＵ１３が制御する。
【００２４】
まず、ノズルヘッド１４１の副走査方向における基準位置（ホームポジション）を算出する（Ｓ１０１）。続いて、ステップＳ１０２からＳ１１２は、１ページ内の全バンドに対する処理が完了するまで繰り返されるループ処理である。
【００２５】
まず、スキャンデータ生成部１１２は、処理対象となるバンドと、ノズルヘッド１４１の基準位置との相対位置を算出する（Ｓ１０２）。続いて、スキャンデータ生成部１１２は、ＰＤＬ解析部１１１よりＲＡＭ１２上に生成されたバンドデータ分のバンドバッファ１１３を取得する（Ｓ１０３）。取得に失敗した場合、ＰＤＬ解析部１１１と待ち合わせをする。
【００２６】
続いて、スキャンデータ生成部１１２は、バンドデータｄ２の画像（以下「バンド画像」という。）において、最初に描画要素が現れるライン（以下、「バンド画像先頭ライン」という。）を検出する（Ｓ１０４）。ここで、ラインとは、副走査方向における１画素を高さとして主走査方向にわたって伸びる行をいう。
【００２７】
図６は、バンド画像先頭ラインを説明するための図である。図６において、ｂ１、ｂ２、およびｂ３は、それぞれ１つのバンドデータを示す。また、三角形ｅ１は、これら３つのバンドデータの画像にわたる描画要素を示す。ここで、バンドデータｂ１が処理対象である場合を考えると、ステップＳ１０４では、Ｌ１で示される位置がバンド画像先頭ラインとして検出される。
【００２８】
バンド画像先頭ラインを検出しておくことで、当該バンド画像先頭ラインまでは副走査方向に印刷用紙を高速に送る等の最適化を行うことができる。
【００２９】
続いて、スキャンデータ生成部１１２は、１スキャンデータ分のスキャンバッファ１１４をＲＡＭ１２上に確保する（Ｓ１０５）。
【００３０】
続いて、ステップＳ１０６からＳ１０９までは、１スキャンデータに対応するバンドデータ分だけ繰り返されるループ処理である。
【００３１】
まず、スキャンデータ生成部１１２は、バンドバッファ１１３に格納されている１バンド分のバンドデータｄ１をスキャンデータに変換する（Ｓ１０６）。但し、ここでは、１スキャン分のスキャンデータは生成されないことに注意を要する。例えば、３バンドで１スキャンに対応する場合、３分の１の幅のスキャンデータしか生成されない。かかる意味を明確にするため、ステップＳ１０６で生成される１バンド分のスキャンデータを「サブスキャンデータ」という。
【００３２】
図７は、１バンドデータからサブスキャンデータへの変換によるビットの並び順の変更を概念的に示す図である。
【００３３】
図７において、ｂ１は１バンド分のバンドデータを示し、ｓｂ１は、バンドデータｂ１に基づいて生成されるサブスキャンンデータを示す。バンドデータｂ１及びサブスキャンデータｓｂ１における各セルは、所定単位の画素（例えば、１画素）を示し、各画素内におけるアルファベットと数字との組み合わせからなる符号は、各画素を識別するための符号を示す。また、括弧で囲まれた数字は、バンドデータｂ１又はサブスキャンデータｓｂ１内を示すビット配列における画素の順番を示す。なお、図中において（Ａ）は往路側のスキャンデータを示し、（Ｂ）は復路側のスキャンデータを示す。
【００３４】
すなわち、図７では、バンドデータｂ１のビット配列は、主走査方向順であったのに対し、サブスキャンデータｓｂ１では、副走査方向順に変更されることが示されている。例えば、バンドデータｂ１では、Ａ１、Ｂ１、Ｃ１、Ｄ１・・の画素の順で、ビットが並んでいるのに対し、往路側のサブスキャンデータｓｂ１では、Ａ１、Ｅ１、Ｉ１、Ｍ１、・・の画素の順で、復路側のサブスキャンデータｓｂ１では、Ｄ１、Ｈ１、Ｌ１、Ｐ１の順ビットが並んでいる。
【００３５】
これは、ノズルヘッド１４１が、副走査方向に並んでいる発射口からインクを発射しつつ主走査方向に移動することで印字を行うことに関係する。かかるノズルヘッド１４１の動作特性上、ビット配列は副走査方向に順番である方が都合がいいからである。
【００３６】
続いて、スキャンデータ生成部１１２は、１つのバンドデータに基づいて、カラープレーン数分のサブスキャンデータが生成されたか否かを判定する（Ｓ１０７）。すなわち、Ｓ１０６の処理は、画像データが白黒であれば１回だけ行われ、カラーであれば、例えば、４回行われる。
【００３７】
カラープレーン数分だけサブスキャンデータが生成されると（Ｓ１０７でＹｅｓ）、スキャンデータ生成部１１２は、バンドバッファ１１３の領域を開放する（Ｓ１０８）。すなわち、１スキャンデータに対応する全バンドデータは展開されることなく、１バンドずつバンドバッファ１１３が開放される。
【００３８】
続いて、スキャンデータ生成部１１２は、１スキャンデータ分のサブスキャンデータが生成されたか否かを判定する（Ｓ１０９）。１スキャンデータ分生成されていない場合（Ｓ１０９でＮｏ）、ステップＳ１１０に進み、スキャンデータ生成部１１２は、ＰＤＬ解析部１１１よりＲＡＭ１２上に生成されたバンドデータ分のバンドバッファ１１３を取得する（Ｓ１１０）。取得に失敗した場合、ＰＤＬ解析部１１１と待ち合わせをする。更に、ステップＳ１０６以降において、当該バンドデータｄ２に基づいて、次のサブスキャンデータが生成される。
【００３９】
一方、１スキャンデータ分のサブスキャンデータが生成された場合（Ｓ１０９でＹｅｓ）、スキャンデータ生成部１１４は、１スキャン分のスキャンデータ（以下、「スキャンデータＳ１」という。）に基づいて主走査方向における有効範囲を検出する（Ｓ１１１）。
【００４０】
図８は、スキャンデータに基づく主走査方向の有効範囲の検出結果の例を示す図である。図８において、（Ａ）は往路側のスキャンデータＳ１を示し、（Ｂ）は復路側のスキャンデータＳ１を示す。図８では、ＡＷで示される部分が主走査方向の有効範囲であるとして検出された例が示されている。ここで注目すべき点は、主走査方向の有効範囲ＡＷを検出するためには、スキャンデータＳ１に基づけば、ビット配列順に各画素を走査すればよく処理効率が高められるということである。すなわち、図８の場合、ビット配列順が（１）〜（１２）までを順番に走査することで、この範囲には描画要素が存在しないことを検出することができる。また、メモリアクセスがシーケンシャルになることでキャッシュメモリのヒット率を高めることが出来、かかる点による処理効率の向上も見込まれる。一方、バンドデータに基づく場合、ビット配列が副走査方向に順番とされているため、主走査方向の有効範囲を検出するには、より複雑な処理が要求される。
【００４１】
続いて、１ページ分の全てのバンドが処理されたか否かが判定され（Ｓ１１２）、１ページ分の処理が完了していれば、図５の処理を終了させる。
【００４２】
上述したように、本発明の実施の形態におけるインクジェットプリンタ１０によれば、１バンドデータずつサブスキャンデータへの変換が行われる。したがって、１スキャンデータを生成するために複数バンド分のバンドバッファを確保する必要はなく、メモリ消費量を抑制することができる。
【００４３】
また、１バンドデータごとにスキャンデータへの変換処理を行うことで、ＣＰＵ１３の稼働率を高めることができ、処理速度の向上を図ることができる。この点については図を用いて説明する。図９は、ＰＤＬ解析部とスキャンデータ生成部とによるＣＰＵの使用分布を示す図である。
【００４４】
図９において、（Ａ）は、１スキャンデータ分のバンドデータが生成された後にスキャンデータを生成する場合（従来方式）を示し、（Ｂ）は、１バンドデータごとにサブスキャンデータを生成する場合を示す。
【００４５】
（Ａ）において、ｓ１、ｓ２、及びｓ３は、ＰＤＬ解析部１１１によるバンドデータの生成処理がなされている時間帯を示す。この間ＣＰＵ１３は稼動している。一方、ｓ１、ｓ２及びｓ３の前における空白部分は、ＰＤＬデータｄ１における１バンド分のデータがメモリ上に読み込まれている時間帯に相当する。この読み込み処理は、一般的にＤＭＡ（Direct Memory Access）によって行われるためＣＰＵは稼動していない。スキャンデータ生成部１２による処理は、時間ｔ１より開始され、ｓ４で示される時間帯においてｎバンド分のバンドデータに基づいて１スキャンデータが生成される。その結果、処理全体として時間ｔ２を要する。
【００４６】
一方、（Ｂ）によれば、ＤＭＡと並行してバンドデータごとのサブスキャンデータの生成が行われるため、ｓ１、ｓ２、及びｓ３の間においてＣＰＵ１３を当該サブスキャンデータの生成処理（ｓ４１、ｓ４２、ｓ４３）に用いることができる。その結果時間ｔ２より少ない時間ｔ３で処理全体を終了させることができる。
【００４７】
以上、本発明の実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【００４８】
【図１】スキャンデータとバンドデータとの関係を示す図である。
【図２】本発明の実施の形態におけるインクジェットプリンタのハードウェアの概略構成例を示す図である。
【図３】ノズルヘッドの概略図である。
【図４】本発明の実施の形態におけるインクジェットプリンタの機能構成例を示す図である。
【図５】本発明の実施の形態におけるインクジェットプリンタの１ページ分の処理手順を説明するためのフローチャートである。
【図６】バンド画像先頭ラインを説明するための図である。
【図７】１バンドデータからサブスキャンデータへの変換によるビットの並び順の変更を概念的に示す図である。
【図８】スキャンデータに基づく主走査方向の有効範囲の検出結果の例を示す図である。
【図９】ＰＤＬ解析部とスキャンデータ生成部とによるＣＰＵの使用分布を示す図である。
【符号の説明】
【００４９】
１０        インクジェットプリンタ
１１        ＲＯＭ
１２        ＲＡＭ
１３        ＣＰＵ
１４        印刷部
１１１      ＰＤＬ解析部
１１２      スキャンデータ生成部
１１３      バンドバッファ
１１４      スキャンバッファ
１４１      ノズルヘッド
【図１】
2007261096.tif 000003
【図２】
2007261096.tif 000004
【図３】
2007261096.tif 000005
【図４】
2007261096.tif 000006
【図５】
2007261096.tif 000007
【図６】
2007261096.tif 000008
【図７】
2007261096.tif 000009
【図８】
2007261096.tif 000010
【図９】
2007261096.tif 000011