(57)【要約】      （修正有）【課題】印刷データを格納するプリントバッファをＤＲＡＭの構造に応じた構造にしメモリアクセスの効率化、メモリ容量の削減を図ることができる印刷装置を提供する。【解決手段】複数の印刷カラムデータを一つのメモリページ内に配置し、印刷カラムデータを連続で読み出せるように、記録データ書き込み時に印刷カラムデータ同士のアドレスを入れ替えた場所に格納し、記録データ読み出し時に一つの印刷カラムデータを読み出す毎に読み出しアドレスにオフセットを加えて記録データを間引いて読み出す。【選択図】図１２
2014140992.tif 000002
【特許請求の範囲】
【請求項１】
複数の記録要素から成る記録ヘッドを備え、前記記録ヘッドを保持するキャリッジを往復走査しながら記録媒体に記録を行なう印刷装置であって、記録データを格納する記録データ格納手段と、記録データを前記記録データ格納手段に対して書き込み及び読み出しを行ない読み出した記録データを前記記録ヘッドへ転送する記録データ制御手段とを備え、前記記録データ格納手段は、複数のメモリページから構成されており、前記記録データ制御手段は、一つのメモリページ内でメモリページ終端の次はメモリページ先頭からアクセスするもので、複数の印刷カラムデータを一つのメモリページ内に配置し、印刷カラムデータを連続で読み出せるように、記録データ書き込み時に印刷カラムデータ同士のアドレスを入れ替えた場所に格納し、記録データ読み出し時に一つの印刷カラムデータを読み出す毎に読み出しアドレスにオフセットを加えて記録データを間引いて読み出すことを特徴とする印刷装置。
【請求項２】
前記記録データ制御手段は、一つのメモリページ内に印刷データの中の奇数番目の印刷カラム、偶数番目の印刷カラムを配置することを特徴とする請求項１に記載の印刷装置。
【請求項３】
前記記録データ制御手段は、一つのメモリページ内に複数色の印刷データを配置することを特徴とする請求項１又は請求項２に記載の印刷装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置において、記録ヘッドへ転送前に印刷データを一時格納する方法と、記録ヘッドへ印刷データを転送する方法に関する。
【背景技術】
【０００２】
シリアルプリンタは、記録ヘッドを備え、記録媒体上を記録ヘッドが画像を形成しながら移動（スキャン）を繰り返すことで、記録媒体上に画像を印刷する。画像データを記録ヘッドに転送する前に、記録ヘッドでの画像形成方法に適したフォーマットに画像データを変換して、一時バッファに格納しておく方式が一般的である。
【０００３】
特許文献１では、一時バッファとして使うＤＲＡＭの構造と、記録ヘッドの構造を考慮した、一時バッファへの画像データの書き込みと読み出しを行っている。これにより、タイミング制御を簡易化でき、効率化が図れる。
【０００４】
特許文献２では、前記一時バッファをスクロールバッファとし、水平方向のラスタデータを記録ヘッドによる画像形成に適した垂直方向のデータに変換して格納している。スクロールバッファとは、垂直方向に連続したデータを、バッファ上も常に連続したアドレスに書き込み、読み出しを行い、見かけ上スクロールしているように見えるバッファである。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−２４０２６１号公報
【特許文献２】特許第３３４７５４０号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１では、ＤＲＡＭの構造に依存して、バッファ構造が決定するので、バッファをメモリ上に自由に配置できない。そのため、必要なメモリ容量が大きくなる可能性がある。
【０００７】
特許文献２では、バッファをメモリ上に自由に配置できるが、画像データがスクロールすることを考慮して、印刷画像幅より幅の広いバッファを用意する必要がある。また、ＤＲＡＭの構造を意識していないので、ＤＲＡＭの構造を使ったメモリアクセスの効率化をすることができない。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、請求項１記載の印刷装置は、複数の記録要素から成る記録ヘッドを備え、前記記録ヘッドを保持するキャリッジを往復走査しながら記録媒体に記録を行なう印刷装置であって、記録データを格納する記録データ格納手段と、記録データを前記記録データ格納手段に対して書き込み及び読み出しを行ない読み出した記録データを前記記録ヘッドへ転送する記録データ制御手段とを備え、前記記録データ格納手段は、複数のメモリページから構成されており、前記記録データ制御手段は、一つのメモリページ内でメモリページ終端の次はメモリページ先頭からアクセスするもので、複数の印刷カラムデータを一つのメモリページ内に配置し、印刷カラムデータを連続で読み出せるように、記録データ書き込み時に印刷カラムデータ同士のアドレスを入れ替えた場所に格納し、記録データ読み出し時に一つの印刷カラムデータを読み出す毎に読み出しアドレスにオフセットを加えて記録データを間引いて読み出すことを特徴とする。
【０００９】
請求項２記載の印刷装置は、請求項１に記載の印刷装置で、前記記録データ制御手段は、一つのメモリページ内に印刷データの中の奇数番目の印刷カラム、偶数番目の印刷カラムを配置することを特徴とする。
【００１０】
請求項３記載の印刷装置は、請求項１に記載の印刷装置で、前記記録データ制御手段は、一つのメモリページ内に複数色の印刷データを配置することを特徴とする。
【発明の効果】
【００１１】
ＤＲＡＭの構造に応じたバッファにすることでメモリアクセスの効率化を図りつつ、バッファの高さをＤＲＡＭのメモリページのサイズより小さくすることで、バッファのメモリ配置の自由度が上がり、必要メモリ容量の削減が可能になる。また、スクロールバッファではなく、リングバッファ構造にすることで、スクロールバッファ構成時に必要な余分なメモリ領域が必要なくなる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施例に係わるインクジェット記録装置の斜視概略図
【図２】本発明の実施例に係わるインクジェット記録装置のシステム概略構成
【図３】記録ヘッド１のノズル構成を示す図
【図４】プリントバッファを確保するプリンタ記憶装置の構造を示す図
【図５】図４の構造のプリンタ記憶装置に配置するプリントバッファの構造の一例を説明する図
【図６】プリントバッファの高さをメモリプールのサイズと同じにした時にどのようにデータが格納されるか説明する図
【図７】プリントバッファの高さをメモリページのサイズの半分にした時のメモリアクセス順のイメージを示した図
【図８】プリントバッファの管理単位であるバンドを説明するための図
【図９】バンドに対する偶奇カラム入れ替えフラグの格納領域を示す図
【図１０】本実施例におけるプリントバッファへの書き込み方法を示すフローチャート
【図１１】実施例１でのプリントバッファへの印刷データの格納され方の変遷を説明する図
【図１２】スキャン毎のプリントバッファからの印刷データの読み出し方法を示すフローチャート
【図１３】図１１（ｂ）の状態のときに印刷データがどのように読み出されるかを示す図
【図１４】図１１（ｄ）の状態のときに印刷データがどのように読み出されるかを示す図
【図１５】図１１（ｆ）の状態のときに印刷データがどのように読み出されるかを示す図
【図１６】図１１（ｈ）の状態のときに印刷データがどのように読み出されるかを示す図
【図１７】４分の１カラム間引きで図１１（ｄ）の状態の時の印刷データの読み出し方を示す図
【図１８】４分の１カラム間引きで図１１（ｆ）の状態の時の印刷データの読み出し方を示す図
【図１９】実施例２における印刷データの格納され方の変遷を説明する図
【図２０】実施例２における印刷データの読み出し方を説明する図
【発明を実施するための形態】
【００１３】
以下、本発明を図面に基づいて詳しく説明する。
【実施例１】
【００１４】
以下、本発明の一実施例を、図を用いて詳細に説明する。
【００１５】
図１は、本発明の実施例に係わるインクジェット記録装置の斜視概略図である。記録ヘッド１はキャリッジ２上に搭載され、キャリッジ２はガイドシャフト３に沿って移動する。キャリッジ２の移動する方向を主走査方向と呼ぶ。印刷時には、記録媒体４をプラテン５で支持し、紙送りローラー６を使って断続的に搬送する。この記録媒体を搬送する方向を副走査方向と呼ぶ。シリアル型のインクジェット記録装置は、記録媒体４の副走査方向への搬送と、キャリッジ２を主走査方向に移動しながら記録ヘッド１からインク吐出する動作（スキャン）を繰り返して、記録媒体４上に画像を形成する。
【００１６】
図２は、本発明の実施例に係わるインクジェット記録装置のシステム概略構成を表すブロック図である。ホスト１０からプリンタ１１に対して印刷データを送信する。プリンタ制御部１３はプリンタ１１内の処理全体を制御する。Ｉ／Ｆ１２はホスト１０からの印刷データを受信する。ホストから送られる印刷データは水平方向のラスタデータなので、印刷制御部１４は印刷データを記録ヘッドから印刷が容易な垂直方向のデータ（カラムデータ）に変換して、プリンタ記憶装置１５内のプリントバッファに記憶する。また、印刷制御部１４はホストから送られる印刷データや印刷データに付随する情報より印刷方法を決定する。印刷制御部１４は決定した印刷方法に従って、搬送制御部１６とキャリッジ制御部１７を制御する。搬送制御部１６は搬送モータ１９を駆動して記録媒体を副走査方向に移動させ、キャリッジ制御部１７はキャリッジモータ２０を駆動してキャリッジを主走査方向に移動させる。ヘッド制御部１８は、キャリッジの動作に合わせて、プリンタ記憶装置１５より印刷データを読み出して、記録ヘッド１に転送する。これにより、記録媒体上の所望の位置に印刷することが可能である。
【００１７】
記録ヘッド１はインクを吐出するためのノズルが縦方向に配列されたインクジェットヘッドで、記録媒体に対して水平方向に走査されながらインク滴を吐出して記録媒体上への記録を行う。記録ヘッド１にはシアン（Ｃ）、マゼンタ（Ｍ）、イエロー（Ｙ）のインクを吐出するノズルが配置されている。図３に記録ヘッド１のノズル構成を示す。Ｃ，Ｍ，Ｙ用のノズルがそれぞれ縦方向に２５６個配置されている。これらのノズルから吐出するかしないかで画像形成を行う。つまり２５６個のノズルで縦方向２５６ドットの画像を形成できる。なお、これはヘッドの構成の一例で、上記以外にも様々な形態が考えられる。
【００１８】
図４は、プリントバッファを確保するプリンタ記憶装置の構造を示す図である。図４において、数値の付けられたそれぞれの枠が１ｂｙｔｅのデータを示している。１ｂｙｔｅで画像データ８ドット分を表現できる。中の数値（００００，０００１，…）が１６進数でアドレスを示している。プリンタ記憶装置はＤＲＡＭである。ＤＲＡＭの構造上、行アドレスを固定し、列アドレスだけを変える同一メモリページ内のアクセスは高速になる。図４ではメモリページのサイズが４Ｋｂｙｔｅである。メモリページの終端付近からの連続メモリアクセスに関して、行アドレスを変えずに、列アドレスをメモリページ先頭に戻すようにすれば、メモリアクセスの高速化が図れる。具体的に説明すると、アドレス０ＦＦＦの次にアドレス１０００ではなく００００をアクセスする。アドレス１ＦＦＦの次に１０００をアクセスする。なお、アドレスは００００から始まっているが、これは便宜上つけられた数値であり、実際には４Ｋｂｙｔｅの倍数の任意の値から始めることができる。
【００１９】
図５は、図４の構造のプリンタ記憶装置に配置するプリントバッファの構造の一例を説明する図である。プリントバッファはＣ，Ｍ，Ｙ用それぞれ一つ持ち、全色同じ構造である。プリントバッファには、印刷制御部１４が水平方向のラスタデータを記録ヘッドから印刷が容易な垂直方向のデータ（カラムデータ）に変換して格納する。１スキャンに必要な印刷画像横幅分の数（印刷カラム数）のカラムデータを格納できる必要がある。ラスタデータからカラムデータへの変換は縦方向１２８ドット毎に可能であるとすると、変換２回で記録ヘッドの縦方向のノズル数分のデータがそろい、１スキャンの印刷が可能な状態になる。１スキャンの印刷には２５６ドット（＝３２ｂｙｔｅ）×印刷カラム数のサイズのバッファがあれば良い。しかし、縦方向に２５６ドットより大きなバッファを使うことによって、１スキャンの印刷動作中に、ラスタデータをカラムデータへ変換してプリントバッファに格納する制御を並行で行える。これにより印刷速度の向上が可能である。以下、プリントバッファの縦方向のサイズをプリントバッファの高さと呼ぶ。ここでは、プリントバッファの高さをメモリページのサイズに合わせ４Ｋｂｙｔｅとし、１メモリページの中に画像データの１カラム分のデータを格納する。必要となるメモリサイズは４Ｋｂｙｔｅ×印刷カラム数×色数となる。Ｃ用プリントバッファの先頭アドレスを００００とする。Ｍ用プリントバッファをＣ用プリントバッファの直後に確保しているので、Ｍ用プリントバッファの先頭アドレスは４Ｋｂｙｔｅ×印刷カラム数となる。同様にＹ用プリントバッファの先頭アドレスは４Ｋｂｙｔｅ×印刷カラム数×２となる。プリントバッファの構造／制御は、アドレス以外はＣ，Ｍ，Ｙで同じになるので、以下の説明ではＣ用プリントバッファに関して説明する。
【００２０】
図６はプリントバッファの高さをメモリプールのサイズと同じにした時にどのようにデータが格納されるか説明する図である。図６（ａ）は、記録ヘッドで１スキャン分の印刷ができるデータが格納された状態である。この状態で、プリントバッファ内の印刷データを、キャリッジ動作に合わせて、カラム毎に記録ヘッドにバースト転送することで１スキャン分の印刷をする。具体的には、Ｃ用プリントバッファの先頭アドレスは００００なので、まずアドレス００００〜００１Ｆに格納されている２５６ドット分のデータを読み出しヘッドに転送する。次に読み出しアドレスに４Ｋｂｙｔｅのオフセットを加えて、アドレス１０００〜１０１Ｆのデータを読み出しヘッドに転送する。これを繰り返すことにより、縦方向２５６ドット、画像幅（＝印刷カラム数）分のデータをヘッドに転送する。１スキャンの印刷が終われば、その分の印刷データを格納していた領域は解放できる。ここで、複数スキャンで画像を完成するマルチパス印刷を行う場合がある。この場合、例えば、一つのスキャンが終わった後、記録ヘッドで印刷できる高さの半分だけ記録媒体を搬送して、次のスキャンの印刷を行う。この場合、図（ａ）の画像を印刷した後で、解放できる領域は、上半分だけになり、次のスキャンの印刷で転送されるデータは図（ｂ）のようになる。このようにデータの格納と、印刷の終わった領域の解放を繰り返していくと、図（ｃ）の状態になる。この次のデータの格納はプリントバッファの上端から行われ、次のスキャンでは、図（ｄ）の印刷データを読み出すことになる。このような、プリントバッファ下端を跨いだ読み出しは、格納するデータの単位と読み出すデータの単位／位置が一致していないことにより起こる。本実施例では図４のように、アドレス０ＦＦＦの次は００００，１ＦＦＦの次は１０００という循環的なメモリアクセスになっていることによって、図７のように印刷データを入れておけば、カラムデータを正常にバースト転送できる。スクロールバッファ構成の場合は、メモリを連続的にアクセスするため、図（ｄ）の上部の印刷データは１カラム右にずらして格納する。連続して印刷していくと、図６（ｃ）から（ｄ）の遷移が繰り返され、印刷データが右にずれていく。そのため、印刷カラム数を格納する領域だけでなく、ずれる分のカラムデータを格納する領域が余分に必要になる。
【００２１】
しかし、図６の構成では、プリントバッファの高さをメモリページのサイズに合わせる必要がある。プリントバッファとして使用可能なメモリの最大容量をプリントバッファの高さ（＝メモリページのサイズ）で割ったものが格納できる印刷カラム数の最大値となる。メモリ配置の自由度がなくなり、必要な印刷カラム数を格納しようとすると、多くのメモリ容量が必要になる可能性がある。ここで、プリントバッファの高さを小さくすれば、格納できる印刷カラム数の最大値を大きくすることができる。
【００２２】
そこで、本実施例では、プリントバッファの高さをメモリページのサイズの半分にする。図７がプリントバッファの高さをメモリページのサイズの半分にした時のメモリアクセス順のイメージを示した図である。アドレス００００〜０７ＦＦ，０８００〜０ＦＦＦ，１０００〜１７ＦＦ，…のそれぞれに印刷データの１カラム分を格納する。２カラム毎にアドレスが元に戻るイメージである。別の言い方をすると、１つのメモリページ内に印刷データの２カラム分を格納する。
【００２３】
図８はプリントバッファの管理単位であるバンドを説明するための図である。プリントバッファには水平方向のラスタデータを垂直方向に変換したデータを印刷画像幅分格納する。その格納単位をバンドと呼んでいる。バンドの縦方向高さは１２８ドットであり、高さ２Ｋｂｙｔｅのプリントバッファの中には１２８個のバンドを格納できる。バンド２つ分で記録ヘッド１の縦方向のノズル数分のデータがそろうことになる。
【００２４】
図９はバンドに対する偶奇カラム入れ替えフラグの格納領域を示す図である。偶奇カラム入れ替えフラグは０または１の値をとる。このフラグをプリントバッファのバンド数分用意しておく。初期値は、バンド１の偶奇カラム入れ替えフラグのみ１、他は０にする。これは以下で説明するシーケンスを簡単にするためである。以下で、奇数カラム、偶数カラムという用語を使うが、これは画像データの最も左のカラムから数えて奇数番目のカラムを奇数カラム、偶数番目のカラムを偶数カラムと呼んでいる。
【００２５】
図１０は本実施例におけるプリントバッファへの書き込み方法を示すフローチャートである。バンドに印刷データを書き込む毎にこの処理を行う。まず、プリントバッファへの書き込みバンド位置を取得する（Ｓ１０１）。これは、プリントバッファ上の空いているバンドを上から順に取得する。バンド１、バンド２、…の順に取得し、バンド１２８の次はバンド１を取得する。次に、Ｓ１０１で取得したバンド位置はプリントバッファ上端つまりバンド１かどうか判断する（Ｓ１０２）。Ｓ１０２の判断でＹｅｓならば、バンド１の偶奇カラム入れ替えフラグが１かどうか判断する（Ｓ１０３）。バンド１の偶奇カラム入れ替えフラグの初期値は１なので、初期状態ではＳ１０３の判断はＹｅｓになる。Ｓ１０３の判断でＹｅｓのときは、バンド１の偶奇カラム入れ替えフラグを０にする（Ｓ１０４）。Ｓ１０３の判断でＮｏのときは（つまりフラグが０のときは）、バンド１の偶数カラム入れ替えフラグを１にする（Ｓ１０５）。Ｓ１０２の判断でバンド１への書き込みでなければ、書き込みバンドの一つ上のバンドの偶奇カラム入れ替えフラグの値を書き込みバンドの偶奇カラム入れ替えフラグにコピーする。例えばバンド２への書き込みの場合、バンド１の偶奇カラム入れ替えフラグの値をバンド２の偶奇カラム入れ替えフラグにコピーする。これらの処理により書き込みバンドの偶奇カラム入れ替えフラグの値が決定する。次に、書き込みバンド位置の偶奇カラム入れ替えフラグが０かどうか判断する（Ｓ１０７）。Ｓ１０７でＹｅｓの場合、書き込みバンド位置に対応する印刷データを書き込む（Ｓ１０８）。Ｓ１０７の判断でＮｏの場合、書き込みバンド位置に対応する印刷データの奇数カラム目のデータを通常（つまり、偶奇カラム入れ替えフラグが０の場合）の偶数カラムの位置に書き込み（Ｓ１０９）、偶数カラム目のデータを通常の奇数カラムの位置に書き込む（Ｓ１１０）。つまり、偶奇カラム入れ替えフラグが１のバンドは印刷データの奇数カラムと偶数カラムが入れ替わった位置に格納されることになる。
【００２６】
図１１は図１０のフローチャートの制御を行った際のプリントバッファへの印刷データの格納され方の変遷を説明する図である。図１１（ａ）は初期状態から１スキャンの印刷が可能な縦方向２５６ドット分のデータが格納された状態である。バンド１、バンド２が格納された状態となる。バンド１の偶奇カラム入れ替えフラグの初期値は１なので、バンド１書き込み時の図１０のＳ１０３の判断はＹｅｓになる。Ｓ１０４の処理でバンド１の偶奇カラム入れ替えフラグが０になる。バンド２書き込み時には、Ｓ１０６の処理でバンド２の偶奇カラム入れ替えフラグは、バンド１の偶奇カラム入れ替えフラグの値がコピーされることにより、０になる。そのため、バンド１、バンド２ともにＳ１０８の処理で印刷データを偶数カラム奇数カラム入れ替えることなく、書き込むことになる。図１１（ｂ）は、図１１（ａ）の状態から記録ヘッドの印刷高さの半分だけ記録媒体を搬送して画像を印刷するときに必要な印刷データを表している。この場合、バンド２、バンド３のデータが必要で、バンド１の領域は必要ない。Ｓ１０６の処理でバンド３の偶奇カラム入れ替えフラグが０になる。図１１（ｃ）はプリントバッファの下端（バンド１２７、バンド１２８）に印刷データが格納された状態である。この状態ではバンド１〜１２８の偶奇カラム入れ替えフラグは全て０になっている。図１１（ｄ）はプリントバッファ下端を跨ぐ領域（バンド１２８、バンド１）に印刷データが格納された状態である。バンド１格納時に図１０のＳ１０３の判断でＮｏになり、Ｓ１０５でバンド１の偶奇カラム入れ替えフラグを１にする。図１０のＳ１０９，  Ｓ１１０の処理で、図１１（ｄ）の上部の印刷データのように、奇数カラム目と偶数カラム目が入れ替わった形で印刷データが格納される。図１１（ｅ）〜（ｇ）では、書き込みバンドの偶奇カラム入れ替えフラグを１にして、偶数カラム目、奇数カラム目の印刷データを入れ替えて印刷データを格納している。図１１（ｇ）の状態で、バンド１〜１２８の偶奇カラム入れ替えフラグは全て１になっている。図１１（ｈ）は再びプリントバッファの下端を跨ぐ領域（バンド１２８、バンド１）に印刷データが格納された状態である。この場合、バンド１格納時に図１０のＳ１０３の判断でＹｅｓになり、Ｓ１０４でバンド１の偶奇カラム入れ替えフラグを０にする。Ｓ１０４の処理でバンド１の領域に印刷データを奇数カラム、偶数カラム入れ替えることなく格納する。図１１（ｈ）の次は、図１１（ａ）の状態に戻る。
【００２７】
本実施例は、カラムを間引いて印刷する場合に適用できる。まずは、２分の１カラム間引きの場合について説明する。２分の１カラム間引きとは１つのスキャンでは印刷データの奇数カラムまたは偶数カラムのみ読みだして複数スキャンで１スキャン分の画像データを印刷する方法である。間引いて読み出す方法は、まず１カラム分２５６ドットのデータを読み出して、次の読み出しはアドレスにプリントバッファの高さの２倍のオフセットを加えたところから、２５６ドットのカラムデータを読み出す。これを繰り返せばよい。
【００２８】
図１２は、スキャン毎のプリントバッファからの印刷データの読み出し方法を示すフローチャートである。まず、プリントバッファの読み出し開始位置のバンドの偶奇カラム入れ替えフラグの値を取得する（Ｓ２０１）。Ｓ２０１で取得した偶奇カラム入れ替えフラグの値が０かどうか判断する（Ｓ２０２）。Ｓ２０２でＹｅｓの場合、このスキャンが偶数カラムの読み出しかどうか判断し（Ｓ２０３）、Ｓ２０３でＹｅｓならば１スキャン分の偶数カラムのデータを読み出し（Ｓ２０４）、Ｓ２０３でＮｏな１スキャン分の奇数カラムのデータを読み出す（Ｓ２０５）。Ｓ２０２でＮｏの場合、同様に偶数カラムの読み出しかどうか判断する（Ｓ２０６）。Ｓ２０６でＹｅｓであれば、１スキャン分の偶数カラムのデータを通常の奇数カラムの位置から読み出す。Ｓ２０６でＮｏであれば、１スキャン分の奇数カラムのデータを通常の偶数カラムの位置から読み出す。次に、１スキャン分の全データを読み出したか、つまり、奇数カラム、偶数カラムのデータを両方読み出したかどうか判断する（Ｓ２０９）。Ｓ２０９でＹｅｓであれば対応する位置のバンド領域を解放して利用できるようにする（Ｓ２１０）。
【００２９】
図１３〜図１６は図１２の制御を適用した時に印刷データがどのように読み出されるかを説明する図である。
【００３０】
図１３は図１１（ｂ）の状態のときに印刷データがどのように読み出されるかを示している。図１３（ａ）は奇数カラム読み出し時、図１３（ｂ）は偶数カラム読み出し時の読み出す印刷データを矢印で示している。この場合、読み出し位置の偶奇カラム入れ替えフラグは０なので、偶数カラム、奇数カラムを通常の位置より読み出している。
【００３１】
図１４は図１１（ｄ）の状態のときに印刷データがどのように読み出されるかを示している。図１４（ａ）は奇数カラム読み出し時のデータを矢印で示している。読み出し開始位置（バンド１２８）の偶奇カラム入れ替えフラグは０のため、通常の奇数カラムの位置から印刷データを読み出す。ここで、バンド１には奇数カラムの偶数カラムが入れ替わって印刷データが格納されているが、図７を見ればわかるように、偶数カラムの印刷データはメモリページ内の連続するアドレスに格納されているため、正常に読み出しができる。図１４（ｂ）は偶数カラム読み出し時の読み出し印刷データを矢印で示している。同様に通常の偶数カラムの位置から読み出す。ここで、バンド１２８の偶数カラムの下端は、図７を見ればわかるように、メモリページの終端アドレスになり、この次のメモリアクセスはメモリページ開始アドレスになる。そのためバンド１に奇数カラム偶数カラムが入れ替わって格納されていることで、偶数カラムのデータを連続して正常に読み出せる。
【００３２】
図１５は図１１（ｆ）の状態のときに印刷データがどのように読み出されるかを示している。図１５（ａ）は奇数カラム読み出し時の印刷データ、図１５（ｂ）は偶数カラム読み出し時の印刷データを矢印で示している。この場合、印刷データ読み出し開始位置の偶奇カラム入れ替えフラグは１になっているので、奇数カラムは通常の偶数カラムの位置から、偶数カラムは通常の奇数カラムの位置から読み出す。
【００３３】
図１６は図１１（ｈ）の状態のときに印刷データがどのように読み出されるかを示している。図１６（ａ）は奇数カラム読み出し時の印刷データ、図１６（ｂ）は偶数カラム読み出し時の印刷データを矢印で示している。図１４と同様に、図７のようなメモリアクセス順になっていることにより、奇数カラム、偶数カラムともに連続して正常に読み出せる。
【００３４】
これまでは、２分の１カラム間引きの場合の読み出し方を説明してきたが、４分の１カラム間引きの場合も本実施例は適用できる。４分の１カラム間引きとは、ある１回のスキャンでは全カラムの４分の１のカラムを印刷するモードである。例えば、１スキャン目では１，５，９，１３，…カラム目の印刷データ、２スキャン目では２，６，１０，１４，…カラム目の印刷データ、３スキャン目では３，７，１１，１５，…カラム目の印刷データ、４スキャン目では４，８，１２，１６，…カラム目の印刷データを印刷する。印刷データの格納の仕方はこれまでの説明と同じだが、読み出し方が変わる。
【００３５】
図１７は４分の１カラム間引きで図１１（ｄ）の状態の時の印刷データの読み出し方を示す図である。図１７（ａ）、（ｂ）、（ｃ）、（ｄ）がそれぞれ１，５，９，１３カラム目の印刷データ、２，６，１０，１４カラム目の印刷データ、３，７，１１，１５カラム目の印刷データ、４，８，１２，１６カラム目の印刷データの読み出し方を示している。上部のデータが偶数カラム、奇数カラムを入れ替えて格納されていることにより、２分の１カラム間引きの場合と同様に、印刷データを連続して正常に読み出せる。
【００３６】
図１８は４分の１カラム間引きで図１１（ｆ）の状態の時の印刷データの読み出し方を示す図である。図１８（ａ）が１，５，９，１３カラム目の印刷データの読み出し方を示している。この場合偶数カラム、奇数カラムが入れ替わっていることにより、通常の２，６，１０，１４カラム目の位置から読み出すことになる。図１８（ｂ）が２，６，１０，１４カラム目の印刷データの読み出し方で、通常の１，５，９，１３カラム目の位置から読み出している。図１８（ｃ）が３，７，１１，１５カラム目の印刷データの読み出し方で、通常の４，８，１２，１６カラム目の位置から読み出している。図１８（ｄ）が４，８，１２，１６カラム目の印刷データの読み出し方で、通常の３，７，１１，１５カラム目の位置から読み出している。
【００３７】
このように、２分の１カラム間引き、４分の１カラム間引きの場合に本実施例は適用できる。同様に６分の１カラム間引き、８分の１カラム間引きなど、２の倍数分の１カラム間引きの場合に本実施例は適用できる。
【００３８】
本実施例は偶数カラム、奇数カラムを入れ替えて格納することにより、メモリページのサイズの半分の高さのプリントバッファを実現した。同様に１，５，９，１３，…カラム目、２，６，１０，１４，…カラム目、３，７，１１，１５，…カラム目、４，８，１２，１６，…カラム目を格納時に入れ替えることによりメモリページのサイズの４分の１の高さのプリントバッファも実現できる。この場合、読み出し方は４分の１カラム間引き、８分の１カラム間引きなど、４の倍数分の１カラム間引きが可能である。このように格納時にカラムを入れ替えることにより、読み出し方に制約はできるものの、メモリページのサイズより小さい高さのプリントバッファを実現できる。
【実施例２】
【００３９】
第２の実施例は、プリントバッファの中に複数色の印刷データを配置するものである。制御方法は実施例１と同様である。以下では、印刷データのプリントバッファへの格納のされ方、印刷データのプリントバッファからの読み出し方を図で説明する。
【００４０】
図１９は実施例２における印刷データの格納され方の変遷を説明する図である。この例ではシアン（Ｃ）、マゼンタ（Ｍ）、イエロー（Ｙ）の印刷データを同じプリントバッファの中に格納している。図１９（ａ）は初期状態からＣ，Ｍ，Ｙの印刷データを格納した状態である。図１９（ｂ）はＹの印刷データがプリントバッファ下端を越した後で、プリントバッファ上部にＹの印刷データを奇数カラム、偶数カラムを入れ替えて格納している。図１９（ｃ）、（ｄ）はそれぞれ、Ｍ，Ｃの印刷データがプリントバッファ下端を越した後で、Ｍ，Ｃのプリントバッファ上部のデータに関して奇数カラム、偶数カラムを入れ替えている。図１９（ｅ）はＹの印刷データが再びプリントバッファ下端を越した後である。プリントバッファ上部のＹの印刷データに関しては、奇数カラム、偶数カラムを入れ替えず、通常の印刷データの格納方法になっている。同様に図１９（ｆ），（ｇ）はそれぞれ、Ｍ，Ｃの印刷データが再びプリントバッファ下端を越した後である。プリントバッファ上部のＭ，Ｃの印刷データに関しては、通常の印刷データの格納方法になっている。図１９（ｇ）の後は、図１９（ａ）の状態に戻る。
【００４１】
図２０は実施例２における印刷データの読み出し方を説明する図である。図１９（ｃ）の状態で、印刷データがどのように読み出されるかを示している。ここでは、２分の１カラム間引きの場合を説明しているが、実施例１と同様に４分の１カラム間引きなどの場合にも適用可能である。図２０（ａ）は奇数カラムの読み出しの場合を示している。印刷データのＣ，Ｍに関しては通常の奇数カラムの位置から読み出している。Ｍに関してはプリントバッファ下端を跨いだ読み出しになるが、プリントバッファ上部のＭの印刷データが奇数カラム、偶数カラムを入れ替えて格納されているため、データを連続して正常に読み出せる。Ｙに関しては奇数カラムの印刷データを通常の偶数カラムの位置から読み出す。図２０（ｂ）は偶数カラムの読み出しの場合を示している。印刷データのＣ，Ｍに関しては通常の偶数カラムの位置から読み出している。Ｍに関してはプリントバッファ下端を跨いだ読み出しになるが、プリントバッファ上部のＭの印刷データが奇数カラム、偶数カラムを入れ替えて格納されているため、データを連続して正常に読み出せる。Ｙに関しては偶数カラムの印刷データを通常の奇数カラムの位置から読み出す。
【００４２】
このように、プリントバッファに複数色の印刷データを格納する場合も、実施例１と同様の制御でメモリページのサイズより小さいプリントバッファ高さを実現できる。
【符号の説明】
【００４３】
１  記録ヘッド
２  キャリッジ
３  ガイドシャフト
４  記録媒体
５  プラテン
６  紙送りローラー
１０  ホスト
１１  プリンタ
１２  Ｉ／Ｆ
１３  プリンタ制御部
１４  印刷制御部
１５  プリンタ記憶装置
１６  搬送制御部
１７  キャリッジ制御部
１８  ヘッド制御部
１９  搬送モータ
２０  キャリッジモータ
【図１】
2014140992.tif 000003
【図２】
2014140992.tif 000004
【図３】
2014140992.tif 000005
【図４】
2014140992.tif 000006
【図５】
2014140992.tif 000007
【図６】
2014140992.tif 000008
【図７】
2014140992.tif 000009
【図８】
2014140992.tif 000010
【図９】
2014140992.tif 000011
【図１０】
2014140992.tif 000012
【図１１】
2014140992.tif 000013
【図１２】
2014140992.tif 000014
【図１３】
2014140992.tif 000015
【図１４】
2014140992.tif 000016
【図１５】
2014140992.tif 000017
【図１６】
2014140992.tif 000018
【図１７】
2014140992.tif 000019
【図１８】
2014140992.tif 000020
【図１９】
2014140992.tif 000021
【図２０】
2014140992.tif 000022