(57)【要約】【課題】  リングバッファを用いて印刷データを格納する場合、枠線の印刷を容易に行うこと。【解決手段】  Ｐｒｉｎｔｉｎｇ  Ｍｅｃｈａｎｉｓｍ２６０で印刷させるべき画像をＩｍａｇｅ  Ｂｕｆｆｅｒ２３２に格納して印刷させるために、Ｉｍａｇｅ  Ｂｕｆｆｅｒ２３２を初期化する際、枠線用の画像を書き込み、その後、印刷対象の画像を書き込む。【選択図】  図４
2011126138.tif 000002
【特許請求の範囲】
【請求項１】
リングバッファを用いて印刷データを格納する印刷制御装置であって、
印刷対象の画像の外側に枠線を印刷させるために、前記リングバッファを初期化する際に、前記枠線の画像を当該リングバッファに書き込み、初期化終了後に前記印刷対象の画像を書き込む書込制御手段を有することを特徴とする印刷制御装置。
【請求項２】
前記書込制御手段は、前記枠線を印刷しない場合、前記リングバッファの画像格納領域の全ての領域を初期化することを特徴とする請求項１に記載の印刷制御装置。
【請求項３】
前記書込制御手段は、ふちなし印刷を行う場合、印刷対象の画像に重ねて枠線の画像を前記リングバッファに格納することを特徴とする請求項１または２に記載の印刷制御装置。
【請求項４】
リングバッファを用いて印刷データを格納する印刷制御装置による印刷制御方法であって、
印刷対象の画像の外側に枠線を印刷させるために、前記リングバッファを初期化する際に、前記枠線の画像を当該リングバッファに書き込み、初期化終了後に前記印刷対象の画像を書き込むことを特徴とする印刷制御方法。
【請求項５】
請求項１乃至３のいずれか１項に記載の印刷制御装置の手段をコンピュータにより実現することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リングバッファを用いて印刷データを格納する印刷制御装置、方法及びプログラムに関する。
【背景技術】
【０００２】
従来、印刷対象の画像の外側に切断位置を示す枠線を印刷するものが知られている（特許文献１参照）。このような印刷装置では、例えば、図１（ａ）のように印刷対象の画像のサイズと記録媒体の幅が同一であれば枠線を印刷しないが、図１（ｂ）のように印刷対象の画像よりも大きい記録媒体に印刷する場合、枠線を印刷する。ユーザがこの枠線に沿って記録媒体を切断することにより当初意図したサイズの印刷物を得ることができる。
【０００３】
このように印刷対象の画像を枠線とともに印刷する際に、リングバッファを用いてバンド毎に画像データの記憶と更新を繰り返す場合の処理について説明する。
【０００４】
図２はリングバッファを模式的に示した図である。Ｉｍａｇｅ  Ｂｕｆｆｅｒ２３２はバンド高さｎラインとして描画領域の幅を有したバッファ４０１を５つ（ＩｍｇＢ（０）からＩｍｇＢ（４））で構成されるリングバッファである。画像の印刷の際、このリングバッファを用いてバンド単位で画像データの記憶と更新を何度か繰り返すことによって１ページ分の印刷を行う。
【０００５】
このバッファを用いて、図３（ａ）のような画像を印刷する場合の処理について説明する。図３（ａ）において、外枠は印刷データにより指定した用紙の外形であり、内枠は印刷データにより指定した用紙の外形から指定した上下左右のマージンを除いた領域である。以下では、この内枠で囲まれた領域を描画領域とする。そして印刷の際、図３（ｂ）の右側に示したようにページ内の描画領域をバンド単位に分割して処理する。そして図３（ａ）に示す印刷データを処理する場合にはページ先頭のバンドからＩｍｇＢ（０）→  ＩｍｇＢ（１）→ＩｍｇＢ（２）…というように順にＩｍａｇｅ  Ｂｕｆｆｅｒ２３２を使用する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０００−１２７５３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
このとき、枠線の印刷に際し、横線は１バンド分で印刷が可能なので、描画領域を縦方向に大きくとれば容易に印刷できる。しかしながら、縦線の場合、描画対象の画像と離れた位置にあり、バッファを更新するたびに縦線分の画像をバッファに書き込む必要がある。また、印刷対象の画像とは異なる画像を書き込む必要があるため、何度も書き込みの処理が必要となり、そのための制御が煩雑となってしまう。
【０００８】
本発明は、上述の問題点に鑑みなされたもので、リングバッファを用いて印刷データを格納する場合、枠線の印刷を容易に行うことが可能な印刷制御装置、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明の印刷制御装置は、リングバッファを用いて印刷データを格納する印刷制御装置であって、印刷対象の画像の外側に枠線を印刷させるために、前記リングバッファを初期化する際に、前記枠線の画像を当該リングバッファに書き込み、初期化終了後に前記印刷対象の画像を書き込む書込制御手段を有する。
【発明の効果】
【００１０】
本発明によれば、リングバッファを用いて印刷データを格納する場合、枠線の印刷を効率的に行うことができる。
【図面の簡単な説明】
【００１１】
【図１】枠線付き印刷を説明する図である。
【図２】リングバッファを説明する図である。
【図３】枠線を説明するための図である。
【図４】実施形態のプリンタの構成を示すブロック図である。
【図５】実施形態のバッファを説明する図である。
【図６】本実施形態における処理の流れを示すフローチャートである。
【図７】バッファへの描画データの格納を示す図である。
【図８】ふちなし印刷の際の枠線を説明するための図である。
【図９】ふちなし印刷の際のバッファへの描画データの格納を示す図である。
【図１０】ふちなし印刷の際の処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための形態について図面を用いて説明する。
【００１３】
図４は、本実施形態における印刷制御装置の一例である大判インクジェットプリンタ（以下、単にプリンタという）の構成を示すブロック図である。
【００１４】
ＣＰＵ２１０は、プリンタ全体の制御を司るブロックである。
【００１５】
Ｉｎｔｅｒｆａｃｅ２２０は、外部装置（ホストコンピュータ等）と接続するためのＵＳＢやＮｅｔｗｏｒｋのＩ／Ｆである。プリンタは、Ｉｎｔｅｒｆａｃｅ２２０を介して外部装置から印刷データを受信したり、外部装置にプリンタの状態を通知したりできる。
【００１６】
ＲＡＭ２３０は、Ｐｒｉｎｔｅｒ２００を制御するプログラムのワーク領域として使用される。
【００１７】
ＲＯＭ２４０は不揮発メモリであり、プリンタの制御プログラムや制御データを記憶している。
【００１８】
ＩｍａｇｅＰｒｏｃ２５０は、画像データの処理を司るブロックである。圧縮された画像データの伸長処理や、Ｐｒｉｎｔｅｒ２００が印字するのに適した形式に画像データを加工する画像処理を行う。
【００１９】
Ｐｒｉｎｔｉｎｇ  Ｍｅｃｈａｎｉｓｍ２５０は、印字処理を司るブロックである。印字ヘッドを移動させるＣＲ（キャリッジ）、用紙を搬送する搬送ユニットなどを含み、用紙を搬送させながら印字ヘッドからのインク吐出制御などを行う。
【００２０】
ＲＡＭ２３０に確保されるＲｅｃｅｉｖｅ  Ｂｕｆｆｅｒ２３１は受信バッファである。Ｒｅｃｅｉｖｅ  Ｂｕｆｆｅｒ２３１には、Ｉｎｔｅｒｆａｃｅ２２０により受信した印刷データが格納される。
【００２１】
Ｉｍａｇｅ  Ｂｕｆｆｅｒ２３２は、レンダラにより処理された描画データと縦枠線データが格納される。
【００２２】
Ｐｒｉｎｔ  Ｂｕｆｆｅｒ２３３は印字ヘッドに送られる画像データを格納するバッファである。Ｉｍａｇｅ  Ｂｕｆｆｅｒ２３２の描画データと縦枠線データをＰｒｉｎｔｅｒ２００の印字特性に合わせて画像処理したデータが格納される。Ｉｍａｇｅ  Ｂｕｆｆｅｒ２３２はリングバッファとして使用される。
【００２３】
本実施の形態では、印刷対象の画像はプリンタに装着されたロール紙の左上に寄せて配置され、ロール紙の幅が指定された用紙のサイズの幅よりも大きい場合に指定された用紙の右端にあたる部分に縦枠線を描画する場合を想定する。
【００２４】
図５に本実施形態におけるバッファの構成を示す。Ｉｍａｇｅ  Ｂｕｆｆｅｒ２３２は、ｎラインを１バンドとして複数のバッファ（ＩｍｇＢ（０）〜ＩｍｇＢ（４））で構成される。図２のバッファとの相違点は、各バンドが描画領域６０１に加え、パターン描画領域６０２を備えることである。
【００２５】
描画領域６０１の幅はユーザが印刷指示時に指定した用紙の外形から、予め設定された左右マージンを除いた幅である。また、パターン描画領域６０２の幅は予め設定された右マージンの幅である。ただし、メモリアドレスのアライメントや縦線の幅を考慮して少し大きめな幅とする。
【００２６】
図６は、本実施形態における印刷処理の流れを示すフローチャートである。このフローチャートは、ＣＰＵ２１０が、ＲＯＭ２４０に格納されているプログラムを、ＲＡＭ２３０にロードし、そのプログラムを実行することによってなされる処理の流れを示す。
【００２７】
ＣＰＵ２１０はＰａｇｅ処理を開始すると（Ｓ７００）、印刷データの解析を行い、画像データの“フォーマット”、“用紙サイズ”、“上下左右マージン”、“レンダリング解像度”などを決定する（Ｓ７０１）。そして、“バンドの幅（Ｉｍａｇｅ  Ｗｉｄｔｈ）”、“バンドのライン数（ｎ  Ｌｉｎｅ）”を決定する（Ｓ７０２）。次にＣＰＵ２１０は決定した“バンドの幅”、“ライン数”によりＩｍａｇｅ  Ｂｕｆｆｅｒ２３２の初期化を行う。ここで初期化とは、先の図５に示したようにＩｍａｇｅ  Ｂｕｆｆｅｒ２３２をバンドに分割して（Ｓ７０３）、描画領域６０１とパターン領域６０２に区分して管理することである。また、描画領域６０１とパターン領域６０２に区分した後、パターン領域に縦枠線を描画する（Ｓ７０４）。パターン領域に縦枠線を描画するのはこの初期化時だけである。ただし、印刷データが指定した用紙幅がＰｒｉｎｔｅｒ２００に装着された用紙の幅以下の場合には、縦枠線描画をしないと判定し、縦枠線の印刷を行わない。すなわち、ＣＰＵ２１０はＳ７０３においてパターン描画領域６０２を確保せず、Ｓ７０４において縦枠線の描画を行わない。バッファの初期化は格納領域のうち、全ての領域に対して行う。
【００２８】
次にパターン描画（枠線の画像の描画）について説明する。Ｓ７０４において、バッファの初期化に際して“各バンドのバッファ先頭のメモリアドレス”と、“描画領域６０１のライン幅”、“パターン描画領域６０２のライン幅”からパターン領域６０２の各ラインの先頭アドレスを算出する。次に、描画領域は初期化する一方、白地に枠線部分が黒となるようにバッファに画素値を書き込むことでＣＰＵ２１０により縦枠線を描画する。このように、次のライン・次の色の先頭アドレスを算出して縦枠線を描画する処理を全バンド（全ライン・全色）に対して繰返し行う。
【００２９】
ここで、枠線の描画をＣＰＵ２１０により行うものとしたが、ハードウェアで代用できるものがあればそれを用いてもよい。また、枠線の色は白地に黒としたが他の色でもよい。
【００３０】
レンダラは、印刷対象のバンドがあることを検知する（Ｓ７０５）と、Ｉｍａｇｅ  Ｂｕｆｆｅｒ２３２の取得を行う（Ｓ７０６）。もし、Ｉｍａｇｅ  Ｂｕｆｆｅｒ２３２に空きがない場合にはレンダラはＩｍａｇｅ  Ｂｕｆｆｅｒ２３２を取得するまで待つ。そして、取得したＩｍａｇｅ  Ｂｕｆｆｅｒ（ＩｍｇＢ（ｉ））を出力としてレンダラは描画処理（レンダリング）を行う。ここで、描画処理は描画領域６０１だけに対して行われる。また、描画処理はＩｍａｇｅ  Ｐｒｏｃ２５０のデータ伸長機能を使用して高速に行われる。描画処理が完了するとＩｍａｇｅ  Ｂｕｆｆｅｒ（ＩｍｇＢ（ｉ））には描画データと縦枠線が格納されていることとなる（図７の左上）。ＣＰＵ２１０は処理するバンドがなくなったらＰｅｇｅ処理を終了する（Ｓ７０８）。
【００３１】
一方、並行して印刷データの解析結果を元にＣＰＵ２１０はＰｒｉｎｔ  Ｂｕｆｆｅｒの初期化を行う（Ｓ７１０）。そして、レンダラによりＩｍａｇｅ  Ｂｕｆｆｅｒ２３２に描画データが格納される（Ｓ７１１）と、ＣＰＵ２１０はＩｍａｇｅ  Ｂｕｆｆｅｒの描画領域にパターン領域を加えた全域に対して、Ｐｒｉｎｔｅｒ２００が印字するのに適した形式に画像データを加工する画像処理を行い、データをＰｒｉｎｔ  Ｂｕｆｆｅｒ２３３に格納する（Ｓ７１２）。ここで、画像処理はＩｍａｇｅ  Ｐｒｏｃ２５０の画像処理機能を使用して、高速に行われる。そして、ＣＰＵ２１０は使用し終わったＩｍａｇｅ  Ｂｕｆｆｅｒ２３２（ＩｍｇＢ（ｊ））を開放する（Ｓ７１３）。
【００３２】
Ｐｒｉｎｔ  Ｂｕｆｆｅｒ２３３に印字ヘッドが１スキャンする分の印刷データが格納されると、ＣＰＵ２１０はＰｒｉｎｔｉｎｇ  Ｍｅｃｈａｎｉｓｍ２６０を使用してＣＲ、搬送ユニット、印字ヘッド等を駆動して印字を行う。上記の処理の結果、描画領域とパターン領域の両方の画像データを印字し、縦枠線付きの画像の印刷が実現される。
【００３３】
以上のように、本実施形態によれば、ページ開始時（バッファ初期化時）に縦枠線を描画し、レンダリングの度に縦枠線の描画を行う必要がない。つまり、縦枠線を印刷しない場合と同様にレンダラの処理から画像処理まで一貫して印字ヘッドのスキャンが停止しないようにデータをＰｒｉｎｔ  Ｂｕｆｆｅｒ２３３に出力できる。すなわち、専用回路を搭載しなくとも印字画質などのプリンタの機能を低下させることなく縦枠線の印刷を実現できる。
【００３４】
次に、プリンタがふちなし印刷を行う場合の例について説明する。ここでも、印刷対象の画像はプリンタに装着されたロール紙の左上に寄せて配置され、ロール紙の幅が指定された用紙のサイズの幅よりも大きい場合に指定された用紙の右端にあたる部分に縦枠線を描画する場合を想定する。
【００３５】
プリンタは、通常の印刷時には指定した用紙の外形から指定したマージンを除いたサイズを描画領域として印刷する。一方、ふちなし印刷時には用紙が傾いて搬送されることも想定して用紙サイズ分のさらに外側に一定マージンを加えたサイズを描画領域として、プリンタは印刷する。そして、プリンタは原点座標を用紙の外形左上にずらして配置して用紙外形（図８（ａ）内枠）よりも一定マージンはみ出して印刷する（図８（ａ）外枠）。
【００３６】
この場合、描画領域が用紙の図上右端も含むため、前述の処理とは異なる処理で縦枠線を印刷する必要がある。
【００３７】
本実施形態では、ふちなし印刷時に縦枠線を示すために、レンダリング後にバンド上端のライン右側の用紙の外形からはみ出した部分に諧調反転した横線を描画することにより枠線位置を表現する。印刷結果は図９の下部の図のように右端に一定間隔にマーカ（短い横線）が印刷されたものとなり、このマーカの左端を結んだ線が縦枠線である。
【００３８】
Ｉｍａｇｅ  Ｂｕｆｆｅｒ２３２は、図５との相違点としてふちなし印刷であることを考慮して各バンドがパターン描画領域６０２を備えず描画領域６０１だけを備えるものとする。描画領域６０１の幅は指定した用紙の外形に一定マージン（ふちなし印刷のためのはみ出し量）を加えた幅である。すなわち、描画領域内に右端位置が含まれており、描画領域右端から３ｍｍ分が用紙の外側である。ここで、一定マージンを上下左右それぞれ３ｍｍとし、マージンとして”−３ｍｍ”を指定された場合にふちなし印刷と判定することとする。各バンドに対してレンダラが描画処理を終了すると、バンド上端ライン右側の３ｍｍ部分の画素を諧調反転するなどして原画像と区別できるようにして先述したマーカを描画する。
【００３９】
図１０は、ふちなし印刷の際の処理の流れを示すフローチャートである。このフローチャートは、ＣＰＵ２１０が、ＲＯＭ２４０に格納されているプログラムを、ＲＡＭ２３０にロードし、そのプログラムを実行することによってなされる処理の流れを示す。
【００４０】
ＣＰＵ２１０はＰａｇｅ処理を開始すると（Ｓ１２００）、印刷データの解析を行い、画像データの“フォーマット”、“用紙サイズ”、“上下左右マージン”、“レンダリング解像度”などを決定する（Ｓ１２０１）。また、“上下左右マージン”が負の値の場合にはふちなし印刷であると判定する。そして、“バンドの幅（Ｉｍａｇｅ  Ｗｉｄｔｈ）”、“バンドのライン数（ｎ  Ｌｉｎｅ）”を決定する（Ｓ１２０２）。次にＣＰＵ２１０は決定した“バンドの幅”、“ライン数”によりＩｍａｇｅ  Ｂｕｆｆｅｒ２３２の初期化を行う。ここで初期化とは、先の図５に示したようにＩｍａｇｅ  Ｂｕｆｆｅｒ２３２をバンドに分割して（Ｓ１２０３）、描画領域６０１を管理することである。Ｓ１２０１においてふちなし印刷であると判定した結果、Ｓ１２０３において通常印刷時のようなパターン描画領域の確保は行わない。
【００４１】
レンダラは、印刷対象のバンドがあることを検知する（Ｓ１２０４）と、Ｉｍａｇｅ  Ｂｕｆｆｅｒ２３２の取得を行う（Ｓ１２０５）。もし、Ｉｍａｇｅ  Ｂｕｆｆｅｒ２３２に空きがない場合にはレンダラはＩｍａｇｅ  Ｂｕｆｆｅｒ２３２を取得するまで待つ。そして、取得したＩｍａｇｅ  Ｂｕｆｆｅｒ（ＩｍｇＢ（ｉ））を出力としてレンダラは描画処理（レンダリング）を行う。また、描画処理はＩｍａｇｅ  Ｐｒｏｃ２５０のデータ伸長機能を使用して高速に行われる。描画処理が完了するとＣＰＵ２１０はＩｍａｇｅ  Ｂｕｆｆｅｒ（ＩｍｇＢ（ｉ））の１ライン目右側の用紙外形からはみ出る部分の画素値を諧調反転する（Ｓ１２０７）。
【００４２】
ＣＰＵ２１０は処理するバンドがなくなったらＰｅｇｅ処理を終了する（Ｓ１２０８）。一方、並行して印刷データの解析結果を元にＣＰＵ２１０はＰｒｉｎｔ  Ｂｕｆｆｅｒの初期化を行う（Ｓ１２１０）。そして、レンダラによりＩｍａｇｅ  Ｂｕｆｆｅｒ２３２に描画データが格納される（Ｓ１２１１）と、ＣＰＵ２１０はＩｍａｇｅ  Ｂｕｆｆｅｒの描画領域に対して、Ｐｒｉｎｔｅｒ２００が印字するのに適した形式に画像データを加工する画像処理を行い、データをＰｒｉｎｔ  Ｂｕｆｆｅｒ２３３に格納する（Ｓ１２１２）。ここで、画像処理はＩｍａｇｅ  Ｐｒｏｃ２５０の画像処理機能を使用して、高速に行われる。そして、ＣＰＵ２１０は使用し終わったＩｍａｇｅ  Ｂｕｆｆｅｒ２３２（ＩｍｇＢ（ｊ））を開放する（Ｓ１２１３）。
【００４３】
Ｐｒｉｎｔ  Ｂｕｆｆｅｒ２３３に印字ヘッドが１スキャンする分のデータが格納されると、ＣＰＵ２１０はＰｒｉｎｔｉｎｇ  Ｍｅｃｈａｎｉｓｍ２６０を使用してＣＲ、搬送ユニット、印字ヘッド等を駆動して印字を行う。上記の処理の結果、右端の画像に縦枠線の位置を示すマーカを印字した縦枠線の印刷が実現できる。
【００４４】
このように、以上の処理によれば、ふちなし印刷時にマーカを印字することで縦枠線の位置をユーザに示すことができる。プリンタは、レンダリングの度に縦枠線（実施にはマーカ）の描画を行うものの、ユーザに縦枠線を示すためのマーカを横線とすることで枠線の描画に要するメモリアクセス回数を削減することができる。つまり、縦枠線を印刷しない場合と同様にレンダラの処理から画像処理まで一貫して印字ヘッドのスキャンが停止しないようにデータをＰｒｉｎｔ  Ｂｕｆｆｅｒ２３３に出力できる。すなわち、専用回路を搭載しなくとも印字画質などのプリンタの機能を低下させることなく縦枠線の印刷を実現できる。
【００４５】
また、マーカが縦枠線に対して垂直であるため、使用者が切り取る際に失敗して多少枠線からずれて用紙を切ったとしてもマーカ（枠線）が目立たない効果もある。
【００４６】
以上のような実施形態によれば、印刷対象の画像に枠線を付けて印刷する際、処理の負荷を軽減し、容易に印刷できるとともに、不要な回路を削減できるので低コスト化を図れる。
【００４７】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施例の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。また、プログラムは、１つのコンピュータで実行させても、複数のコンピュータが連動して実行するようにしてもよい。また、上記した処理の全てをソフトウェアで実現する必要はなく、一部または全部をハードウェアによって実現するようにしてもよい。
【図１】
2011126138.tif 000003
【図２】
2011126138.tif 000004
【図３】
2011126138.tif 000005
【図４】
2011126138.tif 000006
【図５】
2011126138.tif 000007
【図６】
2011126138.tif 000008
【図７】
2011126138.tif 000009
【図８】
2011126138.tif 000010
【図９】
2011126138.tif 000011
【図１０】
2011126138.tif 000012