(57)【要約】      （修正有）【課題】カラム方向に連続したデータをメモリから読出す際にページミスが生じることなく読出すことが可能なようにデータを書込むメモリ制御装置及びメモリ制御方法とを提供する。【解決手段】所定のサイズのページ境界を有したメモリ１０３にデータの書込みを行うためのメモリ制御装置であって、前記メモリのカラム方向に連続したデータを書込む書込み手段と、前記書込み手段によりデータを書込む際、当該書込み位置が前記ページ境界を跨る場合、前記ページ境界以降に書込みを行わせるよう制御する制御手段とを有する。カラム方向に連続するデータを、ページ境界を跨がないように書込みアドレスを変更して、書込みを行なう。【選択図】図１３
2013120499.tif 000002
【特許請求の範囲】
【請求項１】
所定のサイズのページ境界を有したメモリにデータの書込みを行うためのメモリ制御装置であって、
前記メモリのカラム方向に連続したデータを書込む書込み手段と、
前記書込み手段によりデータを書込む際、当該書込み位置が前記ページ境界を跨る場合、前記ページ境界以降に書込みを行わせるよう制御する制御手段とを有することを特徴とするメモリ制御装置。
【請求項２】
前記メモリに前記所定のサイズより小さいサイズのリングバッファを設定する設定手段を有し、
前記書込み手段は、前記設定手段により設定されたリングバッファにデータを書込むことを特徴とする請求項１に記載のメモリ制御装置。
【請求項３】
前記制御手段は、前記書込み手段によるデータの書込み位置が前記ページ境界から遡って１回の読出しで読出すべき位置に到達した場合、前記ページ境界以降に同一データを書込ませることを特徴とする請求項１または２に記載のメモリ制御装置。
【請求項４】
所定のサイズのページ境界を有したメモリにデータの書込みを行うためのメモリ制御方法であって、
前記メモリのカラム方向に連続したデータを書込む際、当該書込み位置が前記ページ境界を跨る場合、前記ページ境界以降に書込みを行わせることを特徴とするメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はメモリ制御装置及びメモリ制御方法に関し、特に、所定サイズのページ境界を有したメモリにアクセスするためのメモリ制御装置及びメモリ制御方法に関する。
【背景技術】
【０００２】
インクジェット記録装置（以下、記録装置）による記録方法として、インクジェット記録ヘッド（以下、記録ヘッド）を記録媒体の同一領域について複数回走査することによりその領域の画像記録を完成させるマルチパス記録という方法がある。マルチパス記録では、記録媒体の同一画像領域に対し、記録ヘッドの異なる部分を用いて、複数回の記録走査を行う。マルチパス記録では、同一の画像領域は記録ヘッドの複数のノズル群によって記録が完成される。
【０００３】
図２４はマルチパス記録において２回の走査で画像を記録する場合の、各走査で記録される領域と、記録ヘッドの位置を示した図である。１回の走査動作毎に、記録ヘッドの高さ（２Ｌ）の１／２に相当する距離ずつ、記録媒体を搬送する。１回目の走査では、記録ヘッドの高さに相当する画像データのうちで、近接する画素について間引かれた画像データを記録する。そして、２回目の走査で、その記録ヘッドの高さの画像記録を完了させる。なお、図２４において、主走査方向とはキャリッジに搭載された記録ヘッドが移動する方向を示し、副走査方向とは主走査方向に直交する方向であり記録媒体を搬送する方向を示す。
【０００４】
さて、ホストから記録装置に送信される記録データは、一般にラスタ方向に連続であるが、記録ヘッドの各吐出口は副走査方向に整列しており、記録ヘッドに転送される記録データも、カラム方向に連続している必要がある。この為、記録装置内部では、記録データにラスタ・カラム変換を施し、ラスタ方向に連続している記録データをカラム方向に連続したものに変換する。ラスタ・カラム変換を行った記録データは一旦、プリントバッファに格納され、記録を行う適当なタイミングでプリントバッファから読出され、記録ヘッドに転送される。このときプリントバッファが所定サイズのページ境界を有し、プリントバッファに書き込まれた記録データがページ境界を跨いでいる場合、記録データを読出す際にページミスが発生し、読出しに時間がかかってしまう。
【０００５】
プリントバッファへの記録データの格納方法としては、例えば、特許文献１に示すような方法が知られている。即ち、プリントバッファ（特許文献１ではバッファメモリ）としてＳＤＲＡＭを使用し、同じタイミングで吐出するカラム方向の記録データを同一ローアドレス内に配置するのである。このように記録データを格納することで、同じタイミングで記録に用いられる記録データをページミスが発生することなく読出すことが可能となる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−２４０２６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら特許文献１ではカラム方向に連続した画像データを格納する方法については言及しておらず、例えばマルチパス記録のようにカラム方向に連続した画像データを、少しずつずらしながら記録ヘッドに転送する方法には対応できないという問題がある。そして、特許文献１のように連続して読み出す必要のある記録データを同一ローアドレス内に配置させるようにするために複雑な処理が必要となり、却って処理に時間がかかってしまうこともある。このような課題は上述のような記録に限らず、ページ境界に跨って書き込まれた一連のデータを続けて読出す必要がある場合に同様に生ずる。
【０００８】
本発明は上記従来例に鑑みてなされたもので、カラム方向に連続したデータをメモリから読出す際にページミスが生じることなく読出すことが可能なようにデータを書込むメモリ制御装置及びメモリ制御方法とを提供することを目的としている。
【課題を解決するための手段】
【０００９】
上記目的を達成するために本発明のメモリ制御装置は、次のような構成を有する。
【００１０】
即ち、所定のサイズのページ境界を有したメモリにデータの書込みを行うためのメモリ制御装置であって、前記メモリのカラム方向に連続したデータを書込む書込み手段と、前記書込み手段によりデータを書込む際、当該書込み位置が前記ページ境界を跨る場合、前記ページ境界以降に書込みを行わせるよう制御する制御手段とを有する。
【発明の効果】
【００１１】
従って本発明によれば、ページミスを起こすことなくカラム方向に連続したデータの読出しを行なうことが可能となり、メモリアクセスの効率を上げることができるという効果がある。
【図面の簡単な説明】
【００１２】
【図１】インクジェット記録装置の主に記録部の概略構成を示す斜視図である。
【図２】ヘッドカートリッジに配置された記録素子列の配置レイアウトを表す図である。
【図３】図１に示す記録装置の制御構成の概要を示すブロック図である。
【図４】メモリの内部構成を表した図である。
【図５】ラスタ・カラム変換回路で実行される記録データのラスタ・カラム変換処理を表した図である。
【図６】ラスタ・カラム変換回路によってカラム方向に連続となるように変換された記録データを分類し、分類された記録データがメモリのどの領域に割り当てられるかを表した図である。
【図７】ラスタ・カラム変換回路が１回目と２回目のラスタ・カラム変換処理を色１の記録データについて実行し、その変換により分離された偶数ビット３２ビットと奇数ビット３２ビットの記録データが書込まれるリングバッファ内の領域を表した図である。
【図８】ラスタ・カラム変換回路が２３６〜２３８回目のラスタ・カラム変換処理を色１の記録データについて実行し、その変換により分離された偶数ビット３２ビットと奇数ビット３２ビットの記録データが書込まれるリングバッファの領域を表した図である。
【図９】ラスタ・カラム変換回路が２５６〜２５７回目のラスタ・カラム変換処理を色１の記録データについて実行し、その変換により分離された偶数ビット３２ビットと奇数ビット３２ビットの記録データが書込まれるリングバッファの領域を表した図である。
【図１０】ラスタ・カラム変換回路が７４８〜７４９回目のラスタ・カラム変換処理を色１の記録データについて実行し、その変換により分離された偶数ビット３２ビットと奇数ビット３２ビットの記録データが書込まれるリングバッファの領域を表した図である。
【図１１】ヘッド転送回路が色１の１カラム目の偶数ノズル列のデータから記録紙のページ先頭部分にあたる部分をリングバッファから読出し、ヘッドカートリッジへ転送する領域を示した図である。
【図１２】ヘッドカートリッジのノズル０から吐出される色１の記録データがリングバッファのＲＢＡ＝２ＥＦｈからの領域に存在する場合の例を示した図である。
【図１３】リングバッファ内に存在するメモリのページ境界周辺部に対する、ヘッド転送回路の読出しアクセスについて示した図である。
【図１４】実施例１に従う、ホストI／Ｆが受信しメモリに格納された記録データをラスタ・カラム変換回路１０４が読出しラスタ・カラム変換を行ない、再度メモリへ格納する手順を示したフローチャートである。
【図１５】図１４のステップＳ１５０５のラスタ・カラムの詳細な処理手順を示したフローチャートである。
【図１６】実施例１に従うラスタ・カラム変換が行なわれた記録データをヘッド転送回路がメモリから読出して、ヘッドカートリッジへ転送し、記録媒体へ記録を行なうまでの手順を示したフローチャートである。
【図１７】図１６のステップＳ１７０５の処理の詳細な処理手順を示したフローチャートである。
【図１８】ラスタ・カラム変換回路が２３６〜２３８回目のラスタ・カラム変換処理を色１の記録データについて実行し、その変換により分離された偶数ビット３２ビットと奇数ビット３２ビットの記録データが書込まれるリングバッファの領域を表した図である。
【図１９】ラスタ・カラム変換回路が２５６〜２５７回目のラスタ・カラム変換処理を色１の記録データについて実行し、その変換により分離された偶数ビット３２ビットと奇数ビット３２ビットの記録データが書込まれるリングバッファの領域を表した図である。
【図２０】ラスタ・カラム変換回路が７２８〜７２９回目のラスタ・カラム変換処理を色１の記録データについて実行し、その変換により分離された偶数ビット３２ビットと奇数ビット３２ビットの記録データが書込まれるリングバッファの領域を表した図である。
【図２１】リングバッファ内に存在するメモリの１ＫＢ境界周辺部に対する、ヘッド転送回路の読出しアクセスについて示した図である。
【図２２】実施例２に従う図１４のステップＳ１５０５の詳細な処理を示すフローチャートである。
【図２３】実施例２に従う図１６のステップＳ１７０５の詳細な処理を示すフローチャートである。
【図２４】マルチパス記録において２回の走査で画像を記録する場合の、各走査で記録される領域と記録ヘッドの位置を示した図である。
【発明を実施するための形態】
【００１３】
以下添付図面を参照して本発明の実施例について、詳細に説明する。なお、既に説明した部分には同一符号を付し重複説明を省略する。
【００１４】
なお、この明細書において、「記録」（以下、「プリント」とも称する）とは、文字、図形等有意の情報を形成する場合のみならず、有意無意を問わず、広く記録媒体上に画像、模様、パターン等を形成する、又は媒体の加工を行う場合も表すものとする。また、人間が視覚で知覚し得るように顕在化したものであるか否かを問わない。
【００１５】
また、「記録媒体」とは、一般的な記録装置で用いられる紙のみならず、広く、布、プラスチック・フィルム、金属板、ガラス、セラミックス、木材、皮革等、インクを受容可能なものも表すものとする。
【００１６】
また、「インク」とは、上記「記録」の定義と同様広く解釈されるべきもので、記録媒体上に付与されることによって、画像、模様、パターン等の形成又は記録媒体の加工、或いはインクの処理に供され得る液体を表すものとする。インクの処理としては、例えば記録媒体に付与されるインク中の色剤の凝固又は不溶化させることが挙げられる。
【００１７】
またさらに、「記録要素」或いは「記録素子」とは、特にことわらない限り吐出口（ノズル）ないしこれに連通する液路およびインク吐出に利用されるエネルギーを発生する素子を総括して言うものとする。
【００１８】
図１は本発明の実施例であるインクジェット記録装置（以下、記録装置）の主に記録部の概略構成を示す斜視図である。
【００１９】
図１において、インクカートリッジ２０１は、ブラック(Ｂｋ)、シアン(Ｃ)、マゼンタ(Ｍ)、イエロ(Ｙ)４色のインクを個別に貯留するために、それぞれのインクに対応して貯留室が一体的に構成されている。ヘッドカートリッジ２０２にはインクカートリッジ２０１に貯留されるそれぞれのインクに対応した記録素子列（ノズル列）が１色あたり２つ、計８つ備えられている。ヘッドカートリッジはその全体を或いはその一部分を記録ヘッド（インクジェット記録ヘッド）として言及されることがある。インクカートリッジ２０１と複数の記録素子列を備えたヘッドカートリッジ２０２とキャリッジ２０３にそれぞれ着脱自在に装着される。キャリッジ２０３は、ガイド軸２１０と摺動自在に係合することによりガイド軸２１０に沿って移動することができる。
【００２０】
キャリッジ２０３に対向する面に設けられたエンコーダスケール２０４には、１５０ｌｐｉの間隔でスリットが設けられている。そして、エンコーダセンサ（不図示）が発光した光をエンコーダスケール２０４に照射して、キャリッジ２０３の走査位置に応じ、その透過光に基づいたＡ相及びＢ相のエンコーダ信号を出力する。Ｂ相信号はＡ相信号より９０度遅れた位相関係にある。
【００２１】
記録紙のような記録媒体２０９は搬送ローラ２０５と補助ローラ２０６とにより挟持され、これらのローラが図１の矢印の方向に回転することにより、図１のｙ方向に搬送される。一方、記録媒体２０９は一対の給紙ローラ２０７及び２０８によっても挟持され、その給紙が行われる。
【００２２】
図２はヘッドカートリッジ２０２に配置された記録素子列の配置レイアウトを表した図であり、ヘッドカートリッジのインク吐出面が示されている。図２において、左から、色１、色２のノズル列が配置されており、各色のノズル（記録素子）は同一の構造で並んでいる。各色のノズルは１２８０個の千鳥配列であり、偶数番目のノズルによる偶数ノズル列（ノズル番号０，２，……，１２７８）６４０個と奇数番目のノズルによる奇数ノズル列（ノズル番号１，３，……１２７９）６４０個との２列を構成している。なお、偶数ノズル列は偶数記録素子列、奇数ノズル列は奇数記録素子列とも呼ばれる。
【００２３】
ここで、図２に示す主走査方向とはキャリッジ２０３の移動方向であり、副走査方向とは主走査方向に直交し記録媒体を搬送する方向であって、ノズルが配列された方向でもある。なお、ノズル配列方向は必ずしも、副走査方向と同じ方向である必要はなく、主走査方向に交差する方向であれば良い。
【００２４】
図３は図１に示す記録装置の制御構成の概要を示すブロック図である。
【００２５】
図３において、ホストインタフェース（Ｉ／Ｆ）１０１は画像データ（記録データ）の受信や画像記録装置の状態についてホスト装置と通信を行ない、ホスト装置から受信した記録データを、バス１０２（後述）を経由してメモリ１０３（後述）に格納する。バス１０２は記録装置内の各ブロック間を接続し、メモリ１０３は、主に記録データを一時的に格納する。メモリ１０３はＳＤＲＡＭで構成されており、バス幅は３２ビットで、１ページ当たりの容量は４キロバイトである。つまり、メモリ１０３は４キロバイト毎にページ境界を有する。
【００２６】
ラスタ・カラム変換回路１０４は、メモリ１０３へ格納したラスタ方向に連続である受信記録データを読出し、その記録データを副走査方向に整列している記録ヘッドの吐出口（ノズル）の配列方向に合わせる為に、カラム方向に連続したものに変換する。ラスタ・カラム変換後の記録データは再度メモリ１０３へ書き戻される。また、ラスタ・カラム変換回路１０４は後述の実施例１〜３に示すメモリ１０３へのデータ格納方法を実現するためのアドレス制御回路を内部に備える。
【００２７】
ヘッド転送回路１０５は、エンコーダスケール２０４から得られた位置情報に基づいて、所定のタイミングでメモリ１０３より所定グループ単位で記録データを読出して、ヘッドカートリッジ２０２へデータを転送する。ヘッド転送回路１０５は後述の実施例１〜３に示すメモリ１０３へのデータ格納方法を実現するためのアドレス制御回路を内部に備える。
【００２８】
ＣＰＵ１０６は、ホストＩ／Ｆ１０１、ラスタ・カラム変換回路１０４、ヘッド転送回路１０５の各設定を行ない、記録装置全体の制御を行なう。
【００２９】
図４はメモリ１０３の内部構成を表した図である。
【００３０】
所定のロー（ＲＯＷ）アドレス及びカラム（ＣＯＬＵＭＮ）アドレスを指定することで、所定の領域に対する読出し／書込みが可能となる。前述のようにＳＤＲＡＭのバス幅が３２ビットである。また１つのローアドレスで示される領域は、カラムアドレスの範囲で０から３ＦＦｈの４ＫＢ（ページサイズ）となっており、１つのカラムアドレスに対して３２ビットのデータを格納することが可能となっている。メモリ１０３の１ビットのデータに対して１つのノズルからのインク吐出／非吐出が定められる。メモリ１０３を構成するＳＤＲＡＭデバイスのバス幅は３２ビットであるから、１アドレスあたりについては３２個のノズルからのインク吐出／非吐出が定められる。
【００３１】
図５はラスタ・カラム変換回路１０４で実行される記録データのラスタ・カラム変換処理を表した図である。
【００３２】
図５に示すようにラスタ・カラム変換回路１０４内には６４ラスタ×６４カラム（６４ビット×６４ビット）のレジスタ群が備えられている。ラスタ・カラム変換回路１０４は、メモリ１０３に格納されているラスタ方向に連続したある色の記録データについて、１ラスタあたり６４ビットずつ計６４ラスタ分をメモリ１０３から読出す。読出された記録データはレジスタ群に、図５に示す入力順序で示されるように格納されていく。６４ラスタ×６４カラム分のデータがレジスタ群に格納され終わると、カラム方向に連続した記録データについて１カラムあたり６４ビットずつ計６４カラム分をレジスタ群から図５に示す出力順序で示されるように出力し、メモリ１０３に書込む。
【００３３】
さて、図３に示したようにノズル列は偶数ノズルと奇数ノズルがそれぞれまとまって列をなしている。従って、ラスタ・カラム変換回路１０４はカラム方向に連続した記録データを偶数ビット３２ビットと奇数ビット３２ビットに分離した上でそれぞれ、レジスタ群から出力し、２度に分けてメモリ１０３に書込む。
【００３４】
次に以上のような構成の記録装置とヘッドカートリッジ（記録ヘッド）を用いて、記録データのプリントバッファへの格納方法に関するいくつかの実施例を説明する。
【実施例１】
【００３５】
以下の実施例では、実ページサイズが４ＫＢのメモリ１０３内に３ＫＢのリングバッファを設定する。そして、このようなメモリに、どのように記録データを格納するのかについて説明する。まず、この実施例に従う記録データをメモリ格納時の格納領域割当て方法（メモリ制御）について説明する。
【００３６】
図６は、ラスタ・カラム変換回路１０４によってカラム方向に連続となるように変換された記録データを分類し、分類された記録データがメモリ１０３のどの領域に割り当てられるかを表した図である。
【００３７】
図４と図６とを比較すると分かるように、この実施例では、実ページサイズが４ＫＢのメモリ１０３にサイズが３ＫＢのリングバッファを定義する。従って、リングバッファが４／３個分の大きさがメモリ１０３のページ境界に相当する。このため、図６には、そのページ境界を図示している。即ち、図４に示すメモリ１０３のローアドレスが０ｈで示される４キロバイト（ＫＢ）の１ページの領域の内の、カラムアドレス０ｈからから２ＦＦｈまでの３キロバイトの領域を用いてリングバッファを構成する。そして、この領域に対して、図６に示すように、各カラム各色各偶奇数ノズル列当り３ＫＢの記録データを順に割当てる。
【００３８】
即ち、記録データの中の左から１カラム目の色１の偶数ノズル列のデータは、メモリ１０３のアドレスで言えば、ローアドレス０ｈ、カラムアドレス０ｈから２ＦＦｈまでの領域に割り当てる。次に１カラム目の色１奇数ノズル列のデータは、メモリ１０３のアドレスで言えば、ローアドレスが０ｈ、カラムアドレス３００ｈから３ＦＦｈの領域とローアドレスが１ｈ、カラムアドレス０ｈから１ＦＦｈの領域とに割り当てる。
【００３９】
同様に、１カラム目の色２偶数ノズル列のデータは、メモリ１０３のアドレスで言えば、ローアドレスが１ｈ、カラムアドレス２００ｈから３ＦＦｈの領域とローアドレスが２ｈ、カラムアドレス０ｈからＦＦｈの領域とに割当てる。１カラム目の色２奇数ノズル列のデータは、メモリ１０３のアドレスで言えば、ローアドレスが２ｈ、カラムアドレス１００ｈから３ＦＦｈの領域に割当てる。２カラム目の色１偶数ノズル列のデータは、メモリ１０３のアドレスで言えば、ローアドレスが３ｈ、カラムアドレス０ｈから２ＦＦｈの領域に割当てる。２カラム目の色１奇数ノズル列のデータは、メモリ１０３のアドレスで言えば、ローアドレスが３ｈ、カラムアドレス３００ｈから３ＦＦｈの領域とローアドレスが４ｈ、カラムアドレス０ｈから１ＦＦｈの領域とに割当てる。２カラム目の色２偶数ノズル列のデータは、ローアドレスが４ｈ、カラムアドレス２００ｈから３ＦＦｈの領域とローアドレスが５ｈ、カラムアドレス０ｈからＦＦｈの領域とに割当てる。２カラム目の色２奇数ノズル列のデータはローアドレスが５ｈ、カラムアドレス１００ｈから３ＦＦｈの領域に割当てる。
【００４０】
上記の繰り返しで、記録幅がｎカラムであった場合には、１カラム目からｎカラム目までの何れかのカラムの何れかの色の偶数もしくは奇数列の記録データを３キロバイトのリングバッファ領域に格納する。
【００４１】
以下の説明では、ローアドレスを“ＲＡ”とカラムアドレスを“ＣＡ”と表記する。
【００４２】
図７はラスタ・カラム変換回路が１回目と２回目のラスタ・カラム変換処理を色１の記録データについて実行し、その変換により分離された偶数ビット３２ビットと奇数ビット３２ビットの記録データが書込まれるリングバッファ内の領域を表した図である。
【００４３】
図７に示すように、１回目にラスタ・カラム変換処理された色１の記録データは、色１の偶数／奇数ノズル列の画像データを格納する領域に書込まれる。即ち、メモリ１０３のアドレスで言えば、（ＲＡ＝０ｈ、ＣＡ＝０ｈ）、（ＲＡ＝０ｈ、ＣＡ＝３００ｈ）、（ＲＡ＝３ｈ、ＣＡ＝０ｈ）、（ＲＡ＝３ｈ、ＣＡ＝３００ｈ）……に書込む。
【００４４】
１回目のラスタ・カラム変換処理された６４カラム分の記録データに関し、ｉカラム目の偶数ノズル列のデータは（ＲＡ＝３×ｉｈ、ＣＡ＝０ｈ）に、奇数ノズル列のデータは（ＲＡ＝３×ｉｈ、ＣＡ＝３００ｈ）に書込む。２回目にラスタ・カラム変換処理された色１の記録データについては、１回目にラスタ・カラム変換処理されたデータが書込まれた箇所のカラムアドレスを１インクリメントした箇所に書込む。
【００４５】
一方、１回目のラスタ・カラム変換処理された６４カラム分の色２の記録データに関し、ｉカラム目の偶数ノズル列のデータは（ＲＡ＝（３×ｉ＋１）ｈ、ＣＡ＝２００ｈ）、奇数ノズル列のデータは（ＲＡ＝（３×ｉ＋２）ｈ、ＣＡ＝１００ｈ）に書込む。２回目にラスタ・カラム変換処理された色２の記録データについても、１回目にラスタ・カラム変換処理された記録データが書込まれた箇所のカラムアドレスを１インクリメントした箇所に書込む。
【００４６】
図８はラスタ・カラム変換回路が２３６〜２３８回目のラスタ・カラム変換処理を色１の記録データについて実行し、その変換により分離された偶数ビット３２ビットと奇数ビット３２ビットの記録データが書込まれるリングバッファの領域を表した図である。この図では、メモリ１０３のページ境界から遡って６４０ビット以内の領域に対する書込み処理について説明したものである。
【００４７】
２３６回目にラスタ・カラム変換処理された記録データは、２３５回目までの処理と同様にｉカラム目のデータを偶数ノズル列のデータは（ＲＡ＝３×ｉｈ、ＣＡ＝ＥＢｈ）、奇数ノズル列のデータは（ＲＡ＝３×ｉｈ、ＣＡ＝３ＥＢｈ）に書込む。
【００４８】
さらに、２３７回目にラスタ・カラム変換処理された記録データの偶数ノズル列のデータは（ＲＡ＝３×ｉｈ、ＣＡ＝ＥＣｈ）、奇数ノズル列のデータは（ＲＡ＝３×ｉｈ、ＣＡ＝３ＥＣｈ（以下ｉ：自然数））に書込む。ここで、奇数ノズル列のデータは、メモリ１０３のページ境界から記録素子列カートリッジ２０２のノズル列のノズル数分のビット、つまり６４０ビット以内の領域に対する書込みである。このため、（ＲＡ＝（３×ｉ＋１）ｈ、ＣＡ＝０ｈ）にも（ＲＡ＝３×ｉｈ、ＣＡ＝３ＥＣｈ）に書込んだ記録データと同じ記録データを書込む。即ち、ヘッド転送回路１０５が１回の読出しで読出す記録データが６４０ビット分であるため、ページ境界から遡って６４０ビット以内の領域に書込まれた記録データの読出しに際してはページミスが発生する。そこで記録データの書込みに際してページ境界から遡って６４０ビット以内の領域になった場合は、同一の記録データを後段のページ境界の先頭から書込む。これにより、読出しの際には後段のページ境界以降から読出すことによってページミスの発生を防止することができる。また、書込み対象のデータが１回の読出しに必要なデータ量に対応する書込み位置にかかったところで後段のページ境界以降に再び同一データを書込めばよいので書込みの際の処理負荷も高くはならない。
【００４９】
またさらに、２３８回目にラスタ・カラム変換処理された記録データの偶数ノズル列のデータは２３７回目にラスタ・カラム変換処理されたデータが書込まれた箇所のカラムアドレスを１インクリメントした箇所に書込む。一方、奇数ノズル列のデータは２３７回目のラスタ・カラム変換においてデータが書込まれた２か所のそれぞれＣＡを１インクリメントした箇所に書込む。
【００５０】
図９はラスタ・カラム変換回路が２５６〜２５７回目のラスタ・カラム変換処理を色１の記録データについて実行し、その変換により分離された偶数ビット３２ビットと奇数ビット３２ビットの記録データが書込まれるリングバッファの領域を表した図である。この図では、メモリ１０３のページ境界から進んで６４０ビット以内の領域に対する書込み処理について説明したものである。
【００５１】
図９に示すように、２５６回目のラスタ・カラム変換処理による記録データの書込み処理はメモリ１０３のページ境界から６４０ビット以内の領域に対する書込みである。従って、図８に示した２３７〜２３８回目のラスタ・カラム変換処理による記録データに対する処理と同様に、偶数ノズル列のデータは（ＲＡ＝３×ｉｈ、ＣＡ＝ＦＦｈ）、奇数ノズル列のデータは（ＲＡ＝３×ｉｈ、ＣＡ＝３ＦＦｈ）に書込む。これに加え、図８の場合と同様に（ＲＡ＝（３×ｉ＋１）ｈ、ＣＡ＝１３ｈ）にも（ＲＡ＝３×ｉｈ、ＣＡ＝３ＦＦｈ）に書込んだ記録データと同じ記録データを書込む。
【００５２】
２５７回目のラスタ・カラム変換処理で得られた記録データの偶数ノズル列のデータはこれまでと同様に（ＣＡ＝３×ｉｈ、ＣＡ＝１００ｈ）に書込む。一方、２５６回目のラスタ・カラム変換処理による記録データが書込まれた（ＲＡ＝３×ｉｈ、ＣＡ＝３ＦＦｈ）のＣＡを＋１した箇所である（ＲＡ＝（３×ｉ＋１）ｈ、ＣＡ＝０ｈ）には２３７回目にラスタ・カラム変換処理された記録データが書込み済である。このため奇数ノズル列のデータは、そこには書込まず、（ＲＡ＝（３×ｉ＋１）ｈ、ＣＡ＝１３ｈ）のＣＡを＋１した箇所、即ち、（ＲＡ＝（３×ｉ＋１）ｈ、ＣＡ＝１４ｈ）にのみ書込みを行なう。
【００５３】
図１０はラスタ・カラム変換回路が７４８〜７４９回目のラスタ・カラム変換処理を色１の記録データについて実行し、その変換により分離された偶数ビット３２ビットと奇数ビット３２ビットの記録データが書込まれるリングバッファの領域を表した図である。この図では、リングバッファの境界部の領域に対する書込み処理について説明したものである。
【００５４】
図１０に示すように、７４８回目のラスタ・カラム変換処理で得られた記録データのｉカラム目の偶数ノズル列のデータは（ＲＡ＝３×ｉｈ、ＣＡ＝２ＥＢｈ）に書込み、奇数ノズル列のデータは（ＲＡ＝（３×ｉ＋１）ｈ、ＣＡ＝１ＦＦｈ）に書込む。７４９回目のラスタ・カラム変換処理で得られた記録データの偶数ノズル列のデータは６４０回目にラスタ・カラム変換処理されたデータが書込まれた（ＲＡ＝３×ｉｈ、ＣＡ＝２ＥＢｈ）のＣＡを＋１した箇所、（ＲＡ＝３×ｉｈ、ＣＡ＝２ＥＣｈ）に書込む。一方、奇数ノズル列のデータは、６４０回目にラスタ・カラム変換処理されたデータが書込まれた箇所がリングバッファの境界部であったので、リングバッファの先頭部に戻って（ＲＡ＝３×ｉｈ、ＣＡ＝３００ｈ）に書込む。尚、この際、（ＲＡ＝３×ｉｈ、ＣＡ＝３００ｈ）には１回目にラスタ・カラム変換処理されたデータが書込み済であるので、このデータが既に記録済であり、上書きを行なっても問題が無い場合に限って７４９回目のラスタ・カラム変換処理が行なわれる。
【００５５】
図１１はヘッド転送回路が色１の１カラム目の偶数ノズル列のデータから記録紙のページ先頭部分にあたる部分をリングバッファから読出し、ヘッドカートリッジ２０２へ転送する領域を示した図である。
【００５６】
図２に示したようにある色の偶数又は奇数のノズル列は６４０個のノズルを備えている。従って、ヘッド転送回路１０５は図１１に示すようにノズルの個数に従ってリングバッファのアドレス（ＲＢＡ）ＲＢＡ＝０ｈ〜１３ｈまでの計６４０ビットの記録データを１グループとして連続して読出してヘッドカートリッジ２０２へ転送する。
【００５７】
記録動作が進み、主走査方向にキャリッジが移動していくとヘッド転送回路１０５がメモリ１０３から記録データを読出すアドレス値は大きな値になっていく。
【００５８】
図１２はヘッドカートリッジ２０２のノズル０から吐出される色１の記録データがリングバッファのＲＢＡ＝２ＥＦｈからの領域に存在する場合の例を示した図である。この図では、ＲＢＡ＝２ＥＦｈをスタートアドレスとして６４０ビットのデータを読出す場合を表している。この場合、２ＥＦｈからアドレスを１ずつインクリメントしてデータを読出していく。図７〜図１０からも示唆されるように、サイズが３ＫＢのリングバッファではカラム方向に連続する画像データは２ＦＦｈの次は０ｈに格納されている。このため、ヘッド転送回路１０５もこれに合わせてＲＢＡ＝２ＦＦｈの次はＲＢＡ＝０ｈのデータを読出し、２ｈまでデータ読出してヘッドカートリッジ２０２への転送を行なう。
【００５９】
このように１回の走査を行なう為に必要な記録データをメモリ１０３に設定されるリングバッファから読出す場合、読出しアドレスがリングバッファの境界部まで達した時には、先頭のアドレスに戻り読出しを続ける。
【００６０】
図１３は、リングバッファ内に存在するメモリ１０３のページ境界周辺部に対する、ヘッド転送回路１０５の読出しアクセスについて示した図である。この図では色１の１カラム目の奇数ノズル列のデータが格納されている領域、即ち、（ＲＡ＝０ｈ、ＣＡ＝３００ｈ〜３ＦＦｈ）及び（ＲＡ＝１ｈ、ＣＡ＝０ｈ〜１ＦＦｈ）の領域に対する読出しアクセスについて示している。
【００６１】
図１３において、（ｉ）、（ｉｉ）は夫々、（ＲＡ＝０ｈ、ＣＡ＝３ＤＡｈ〜３ＥＤｈ）と（ＲＡ＝０ｈ、ＣＡ＝３ＥＡｈ〜３ＦＤｈ）の連続読出しアクセスを示している。これらは、同一ＲＡ（ローアドレス）に対する連続読出しアクセスであり、メモリ１０３のページ境界を跨がずページミスの発生しない連続読出しアクセスである。
【００６２】
一方、図１３の（ｉｉｉ）では（ＲＡ＝１ｈ、ＣＡ＝１ｈ〜１４ｈ）の連続読出しアクセスを示している。さて、（ＲＡ＝１ｈ、ＣＡ＝１ｈ）と同じ記録データが格納されている（ＲＡ＝０ｈ、ＣＡ＝３ＥＤｈ）から連続読出しアクセスを行なった場合には、連続読出しアクセスの最終アドレスは（ＲＡ＝１ｈ、ＣＡ＝０ｈ）となる。仮に、（ＲＡ＝１ｈ、ＣＡ＝０ｈ）に連続した記録データが格納されていたとしても、この連続読出しアクセスは異なるローアドレスに対する連続読出しアクセスとなってしまう。このように、メモリ１０３のページ境界を跨ぐ読出し動作では、ページミスが発生し読出し効率が下がってしまうことが多い。
【００６３】
このような読出しの際のページミスの発生を防止するため、この実施例ではページ境界を跨ぐ読出しアクセスは行なわず、（ＲＡ＝１ｈ、ＣＡ＝１ｈ〜１４ｈ）の連続読出しアクセスを行なうようにアクセス制御している。これにより、メモリ１０３のページ境界を跨ぐことのない読出しアクセスが実行され、ページミスの発生を防止している。
【００６４】
さらに、図１３の（ｉｖ）は、（ＲＡ＝１ｈ、ＣＡ＝１１ｈ〜２４ｈ）への連続読出しアクセスを示している。この連続読出しは、（ｉ）、（ｉｉ）と同様に同一ＲＡ（ローアドレス）に対する連続読出しアクセスであり、メモリ１０３のページ境界を跨がないのでページミスが発生しない。
【００６５】
図１４は実施例１に従う、ホストI／Ｆが受信しメモリ１０３に格納された記録データをラスタ・カラム変換回路１０４が読出しラスタ・カラム変換を行ない、再度メモリ１０３へ格納する手順を示したフローチャートである。なお、ここでは、記録紙の１ページ分のデータを処理すると終了としている。
【００６６】
まず、ステップＳ１５０１では、ＣＰＵ１０６がホストＩ／Ｆ１０１及びラスタ・カラム変換回路１０４のレジスタ設定を行ない、各ブロックがメモリ１０３へ書込み／読出し先のアドレスを設定する。その設定が終了すると処理はステップＳ１５０２に進む。ステップＳ１５０２ではホストＩ／Ｆ１０１が記録データをホストから受信し、ステップＳ１５０１で設定されたアドレスに従いメモリ１０３へ記録データを格納する。
【００６７】
ステップＳ１５０３ではラスタ・カラム変換を行なうために必要な６４ラスタ×６４カラム分の記録データがメモリ１０３に存在するか否かを調べる。ここで、ラスタ・カラム変換を行なう為に必要な記録データがメモリ１０３に存在しなかった場合、処理はステップＳ１５０２に戻り、ホストＩ／Ｆ１０１が記録データをホストから受信し、メモリ１０３へ記録データを格納する。これに対して、ラスタ・カラム変換を行なうのに必要な記録データがメモリ１０３に存在した場合、処理はステップＳ１５０４に進む。
【００６８】
ステップＳ１５０４では、ラスタ・カラム変換処理を終えた記録データがメモリ１０３へ書き戻される領域が空き領域であるか、或いは、記録済みのデータが格納されている領域であるか否かを調べる。ここで、その領域が空き或いは記録済みデータが格納されている領域と判断された場合、処理はステップＳ１５０５に進む。これに対して、その領域が空きでも記録済みデータが格納されている領域でもないと判断された場合、処理はステップの判断を繰り返し、格納に必要な領域が利用可能になるのを待ち合わせる。
【００６９】
さて、ステップＳ１５０５では、ラスタ・カラム変換回路１０４が、メモリ１０３から画像データを読出し、ラスタ・カラム変換を行なった後に、図６に示した格納方法により画像データをメモリ１０３に書込む。なお。ステップＳ１５０５におけるラスタ・カラム変換の詳細な処理については図１５を参照して後述する。
【００７０】
最後に、ステップＳ１５０６では、記録紙の１ページ分の処理が終了したか否かを調べる。ここで、処理終了ではないと判断された場合、処理はステップＳ１５０３に戻り、引き続きラスタ・カラム変換を行なう為の処理を続ける。これに対して、記録紙の１ページ分の処理を終了したと判断された場合には、この処理を終了する。
【００７１】
図１５は図１４のステップＳ１５０５のラスタ・カラムの詳細な処理手順を示したフローチャートである。ここでは、例として１カラム目の色１の奇数ノズル列から吐出される記録データについての処理手順を説明している。
【００７２】
まず、ステップＳ１６０１では現在の処理が記録紙のページ先頭部の処理、即ち、そのページにおける最初の処理であるか否かを調べる。ここで、現在の処理が記録紙のページ先頭部の処理であると判断された場合、処理はステップＳ１６０２に進み、処理に必要な変数ｊに３００ｈをセットして初期化を行ない、処理はステップＳ１６０３に進む。これに対して、現在の処理が記録紙のページ先頭部の処理でないと判断された場合、処理はステップＳ１６０３に進む。
【００７３】
ステップＳ１６０３では図６に示す方法でラスタ・カラム変換を実行する。ステップＳ１６０４では、変数ｊについて、１ＦＦｈ＜ｊ＜３００ｈであるか否かを判断する。ここで、１ＦＦｈ＜ｊ＜３００ｈであった場合には、処理はステップＳ１６０５に進み、変数ｊに３００ｈをセットし、処理はステップＳ１６０６に進む。これに対して、ＲＡ≠１ｈ、もしくは、ｊ≦１ＦＦｈであった場合、処理はステップＳ１６０６に進む。さらに、ステップＳ１６０６では、変数ｊについて、３ＥＣｈ≦ｊ≦３ＦＦｈであるか否かを判断する。ここで、３ＥＣｈ≦ｊ≦３ＦＦｈである場合、処理はステップＳ１６０７に進む。
【００７４】
ステップＳ１６０７では（ＲＡ＝０ｈ、ＣＡ＝ｊｈ）の領域と、（ＲＡ＝１ｈ、ＣＡ＝（ｊ−３ＥＣ）ｈ）の領域の２箇所に記録データを書込む。その後、処理はステップＳ１６０８に進む。ステップＳ１６０８では変数ｊに関し、ｊ≧３ＦＦｈであるか否かを判断する。ここで、ｊ≧３ＦＦｈであった場合、処理はステップＳ１６０９に進み、変数ｊに１４ｈをセットして処理を終了する。これに対して、ｊ＜３ＦＦｈであった場合、処理はステップＳ１６１３に進み、変数ｊを＋１して処理を終了する。
【００７５】
さて、ステップＳ１６０６において、ｊ＜３ＥＣｈであるか、もしくは、ｊ＞３ＦＦであった場合、処理はステップＳ１６１０に進み、変数ｊについて、３００ｈ≦ｊ≦３ＥＢｈであるか否かを判断する。ここで、変数ｊに関し、３００ｈ≦ｊ≦３ＥＢであった場合、処理はステップＳ１６１１に進む。ステップＳ１６１１では（ＲＡ＝０ｈ、ＣＡ＝ｊｈ）の領域に記録データを書込み、その後、ステップＳ１６１３で、変数ｊを＋１し処理を終了する。
【００７６】
一方ステップＳ１６１０において、変数ｊに関し、ｊ＜３００ｈ、ｊ＞３ＥＢｈであった場合、処理はステップＳ１６１２に進む。ステップＳ１６１２では、変数ｊはステップＳ１６０６とＳ１６１０における判断から自動的に１４ｈ≦ｊ≦１ＦＦｈと判断され、（ＲＡ＝１ｈ、ＣＡ＝ｊｈ）の領域に記録データを書込む。その後、ステップＳ１６１３に進み、変数ｊを＋１して処理を終了する。
【００７７】
尚、図１５においては前述のように、ラスタ・カラム変換回路１０４における１カラム目の色１の奇数ノズル列から吐出されるデータについての処理手順について説明したものである。従って、図１４のステップＳ１５０５では、必要であればその他の記録データに対しても夫々の記録データが格納されるリングバッファ内において、同様の処理を行なわなければならない。
【００７８】
図１６は実施例１に従うラスタ・カラム変換が行なわれた記録データをヘッド転送回路１０５がメモリ１０３から読出して、ヘッドカートリッジ２０２へ転送し、記録媒体へ記録を行なうまでの手順を示したフローチャートである。この手順の処理も図１４と同様に記録紙の１ページ分のデータを処理するとしている。
【００７９】
まずステップＳ１７０１ではヘッド転送回路１０５のレジスタ設定を行ない、メモリ１０３から記録データの読出し先のアドレス設定を行なう。ステップＳ１７０２では、ラスタ・カラム変換が終了しメモリ１０３へ格納されている記録データが、ヘッドカートリッジ２０２を走査して記録を行なうのに十分な量存在するか否かを調べる。ここで、十分な記録データがメモリ１０３に存在しなかった場合、処理はステップＳ１７０２の判断を繰り返す。これにより、記録を行うのに十分な記録データがメモリ１０３に格納されるのを待ち合わせる。これに対して、記録を行うのに十分な量の記録データがメモリ１０３に存在すると判断した場合、処理はステップＳ１７０３に進む。
【００８０】
ステップＳ１７０３では、記録媒体への記録を行なうためキャリッジ２０３の駆動を開始し、さらにステップＳ１７０４では、記録位置へキャリッジ２０３が到達したか否かを判断する。ここで、記録位置へキャリッジ２０３が到達していなかった場合、処理はステップＳ１７０４へ戻り、同じ判断を繰り返す。これにより、記録位置にキャリッジ２０３が達するのを待ち合わせることができる。これに対して、記録位置へキャリッジ２０３が到達した場合には、処理はステップＳ１７０５へ進む。
【００８１】
ステップＳ１７０５では、ヘッド転送回路１０５がステップＳ１７０１で設定されたアドレスに従い、メモリ１０３から画像データを読出し、ヘッドカートリッジ２０２へ転送する。なお。この詳細な処理については図１７を参照して後述する。
【００８２】
ステップＳ１７０６ではヘッドカートリッジ２０２が受信した記録データに基づいてインクを記録媒体に吐出して、記録を行なう。その後、処理はステップＳ１７０７へ進む。ステップＳ１７０７ではキャリッジ２０３が１回の走査記録を終了したか否かを調べる。ここで、まだ１回の走査記録が終了していないと判断される場合、処理はステップＳ１７０４へ戻り、処理を継続する。これに対して、１回の走査記録が終了したと判断される場合、処理はステップＳ１７０８に進む。
【００８３】
ステップＳ１７０８では記録紙１ページ分の処理が終了したか否かを判断し、記録紙の１ページ分の処理が終了していない場合、処理はステップＳ１７０１に戻り、記録媒体への記録を行なう処理を続行する。これに対して、記録紙１ページ分の処理を終了した場合には、処理を終了する。
【００８４】
図１７は図１６のステップＳ１７０５の処理の詳細な処理手順を示したフローチャートであり、例として１カラム目の色１の奇数ノズル列から記録に用いられる記録データについての処理手順を説明したものである。
【００８５】
まず、ステップＳ１８０１では現在の処理が記録紙のページ先頭部の処理、即ち、そのページにおける最初の処理であるか否かを判断する。ここで、現在の処理が記録紙のページ先頭部の処理であった場合にはステップＳ１８０２に進み、処理に必要な変数であるｊに３００ｈをセットして初期化を行ない、処理はステップＳ１８０３に進む。これに対して、現在の処理が記録紙のページ先頭部の処理でなかった場合、処理はステップＳ１８０３に進む。
【００８６】
ステップＳ１８０３では処理に必要な変数であるｋに“０”をセットして初期化を行ない、処理はステップＳ１８０４に進む。ステップＳ１８０４では変数ｊに関し、１ＦＦｈ＜ｊ＜３００ｈであるか否かを判断する。ここで、１ＦＦｈ＜ｊ＜３００ｈである場合、処理はステップＳ１８０５に進み、変数ｊに３００ｈをセットした後、ステップＳ１８０６に進む。これに対して、ｊ≦１ＦＦｈである場合、処理はステップＳ１８０６に進む。
【００８７】
ステップＳ１８０６では、変数ｊに関しさらに、３ＥＣｈ≦ｊ≦３ＦＦｈであるか否かを判断する。ここで、３ＥＣｈ≦ｊ≦３ＦＦｈである場合には、処理はステップＳ１８０７に進み、ｊから３ＥＣｈを減じた値をｊにセットし、ステップＳ１８０９に進む。これに対して、ｊ＜３ＥＣｈであるか、もしくは、ｊ＞３ＦＦである場合、処理はステップＳ１８０８に進む。
【００８８】
ステップＳ１８０８では変数ｊに関してさらに、３００ｈ≦ｊ≦３ＥＢであるか否かを判断する。ここで、ｊ＜３００ｈであるか、もしくは、ｊ＞３ＥＢであった場合、処理はステップＳ１８０９に進む。ステップＳ１８０９では、変数ｊはステップＳ１８０６とＳ１８０８における判断から自動的に、０ｈ≦ｊ≦１ＦＦｈであると判断され、メモリ１１３の（ＲＡ＝１ｈ、ＣＡ＝ｊｈ）の領域から記録データを読出す。その後、ステップＳ１８１１に進む。
【００８９】
これに対して、ステップＳ１８０８において、３００ｈ≦ｊ≦３ＥＢである場合、処理はステップＳ１８１０に進み、メモリ１１３の（ＲＡ＝０ｈ、ＣＡ＝ｊｈ）の領域から記録データを読出す。その後、ステップＳ１８１１に進む。
【００９０】
ステップＳ１８１１では変数ｊ及び変数ｋをそれぞれ、＋１し、ステップＳ１８１２に進む。ステップＳ１８１２では変数ｋがｋ＞１９であるか否かを判断する。ここで、ｋ≦１９である場合、処理はステップＳ１８０４に戻り、処理を続ける。これに対して、ｋ＞１９である場合、処理を終了する。
【００９１】
なお、図１７では、前述の通りヘッド転送回路１０５における１カラム目の色１の奇数ノズル列からの記録に用いられる記録データについての処理手順についてのみ説明したものである。従って、図１６のステップＳ１７０５では、必要であれば異なるカラム、色の偶数／奇数ノズル列の画像データが格納されているメモリアドレスに対して同様の処理を行なわなければならない。
【００９２】
尚、図１４と図１６のフローチャートに示した処理はそれぞれ並列動作する。
【００９３】
従って以上説明した実施例によれば、メモリの実ページサイズとリングバッファのサイズが異なる場合に、リングバッファからの連続データ読み出しがページ境界を跨がないようにデータの書込みを行うようにできる。これにより、ラスタ・カラム変換したデータを連続的に読出して記録を行う場合にも、読出しエラーのないスムーズなデータ読出しを行うことができ、記録動作のパフォーマンスの向上に貢献する。
【００９４】
なお、この実施例ではリングバッファのサイズを３ＫＢとしているが、リングバッファのサイズについては特に制限は無く、メモリ１１３のページサイズである４ＫＢよりも大きく、例えば、５ＫＢであっても良い。いずれにせよ、メモリ１０３の総容量や記録ヘッドより吐出するインクの色数ノズル数等の実施形に対して最適であり、メモリ１０３のページ境界部及びリングバッファの境界部に対して上述の処理と同じ制御を行なうなら、リングバッファのサイズは任意で良い。
【実施例２】
【００９５】
ここでは、メモリ１０３の内部に４ＫＢのページ境界に加え、１ＫＢごとに境界がある構成のメモリに記録データの書込みと読出しを行う場合について説明する。
【００９６】
図１８はラスタ・カラム変換回路が２３６〜２３８回目のラスタ・カラム変換処理を色１の記録データについて実行し、その変換により分離された偶数ビット３２ビットと奇数ビット３２ビットの記録データが書込まれるリングバッファの領域を表した図である。この図では、メモリ１０３のページ境界から遡って６４０ビット以内の領域に対する書込み処理について説明したものである。
【００９７】
なお、ラスタ・カラム変換回路１０４によってカラム方向に連続となるように変換された記録データを分類し、それらの分類された記録データがメモリ１０３内においてどの領域に割り当てられるかについては実施例１と同じで図６に示すように割り当てられる。又、２３５回目までのラスタ・カラム変換処理を行なった記録データが書込まれるメモリ１０３内の領域は実施例１と同じである（図７を参照）。
【００９８】
２３６回目にラスタ・カラム変換処理して得られた記録データは、２３５回目までの処理と同様にｉカラム目の偶数ノズル列のデータを（ＲＡ＝３×ｉｈ、ＣＡ＝ＥＢｈ）に、奇数ノズル列のデータを（ＲＡ＝３×ｉｈ、ＣＡ＝３ＥＢｈ）に書込む。
【００９９】
さらに２３７回目にラスタ・カラム変換処理して得られた記録データは、偶数ノズル列のデータを（ＲＡ＝３×ｉｈ、ＣＡ＝ＥＣｈ）に、奇数ノズル列のデータを（ＲＡ＝３×ｉｈ、ＣＡ＝３ＥＣｈ）に書込む。これらの記録データについては、メモリ１０３のページ境界から記録素子列カートリッジ２０２のノズル列のノズル数分のビット、つまり６４０ビット以内の領域に対する書込みである。このため、偶数ノズル列のデータを（ＲＡ＝３×ｉｈ、ＣＡ＝１００ｈ）に、奇数ノズル列のデータを（ＲＡ＝（３×ｉ＋１）ｈ、ＣＡ＝０ｈ）にもそれぞれ前述のアドレスに対して書込んだデータと同じデータを書込む。
【０１００】
またさらに２３８回目にラスタ・カラム変換処理して得られた記録データは、偶数列、奇数列のデータについて２３７回目に記録データが書込まれた２か所それぞれのＣＡ（カラムアドレス）を＋１した箇所に書込む。
【０１０１】
図１９はラスタ・カラム変換回路が２５６〜２５７回目のラスタ・カラム変換処理を色１の記録データについて実行し、その変換により分離された偶数ビット３２ビットと奇数ビット３２ビットの記録データが書込まれるリングバッファの領域を表した図である。この図では、メモリ１０３のページ境界から進んで６４０ビット以内の領域に対する書込み処理について説明したものである。
【０１０２】
２５６回目にラスタ・カラム変換処理して得られた記録データの書込みは、メモリ１０３のページ境界から６４０ビット以内の領域に対する書込みである。このため、図１８に示した２３７，２３８回目にラスタ・カラム変換処理して得られた記録データに対する処理と同様である。即ち、偶数ノズル列のデータを（ＲＡ＝３×ｉｈ、ＣＡ＝ＦＦｈ）と（ＲＡ＝３×ｉｈ、ＣＡ＝１１３ｈ）に、奇数ノズル列のデータを（ＲＡ＝３×ｉｈ、ＣＡ＝３ＦＦｈ）と（ＲＡ＝（３×ｉ＋１）ｈ、ＣＡ＝１３ｈ）にそれぞれ同じデータを書込む。
【０１０３】
さて、２５６回目にラスタ・カラム変換されたデータが書込まれた（ＲＡ＝３×ｉｈ、ＣＡ＝ＦＦｈ）のカラムアドレスを＋１した箇所、即ち（ＲＡ＝３×ｉｈ、ＣＡ＝１００ｈ）には、２３７回目にラスタ・カラム変換されたデータが既に書込まれている。このため、２５７回目にラスタ・カラム変換処理して得られた記録データは、偶数ノズル列のデータをそこには書込まず、（ＲＡ＝３×ｉｈ、ＣＡ＝１１３ｈ）のカラムアドレスを＋１した箇所、即ち、（ＲＡ＝３×ｉｈ、ＣＡ＝１１４ｈ）にのみ書込む。同様に、奇数ノズル列のデータも、（ＲＡ＝（３×ｉ＋１）ｈ、ＣＡ＝０ｈ）には書込まず、（ＲＡ＝（３×ｉ＋１）ｈ、ＣＡ＝１４ｈ）にのみ書込みを行なう。
【０１０４】
図２０はラスタ・カラム変換回路が７２８〜７２９回目のラスタ・カラム変換処理を色１の記録データについて実行し、その変換により分離された偶数ビット３２ビットと奇数ビット３２ビットの記録データが書込まれるリングバッファの領域を表した図である。この図では、リングバッファの境界部の領域に対する書込み処理について説明したものである。
【０１０５】
７２８回目にラスタ・カラム変換処理して得られた記録データは、ｉカラム目の偶数ノズル列のデータを（ＲＡ＝３×ｉｈ、ＣＡ＝２ＦＦｈ）に書込み、奇数ノズル列のデータを（ＲＡ＝（３×ｉ＋１）ｈ、ＣＡ＝１ＦＦｈ）に書込む。
【０１０６】
さて、図２０に示すように、７２８回目にラスタ・カラム変換されたデータが書込まれた箇所がリングバッファ境界部となる。このため、７２９回目にラスタ・カラム変換処理して得られた記録データの偶数ノズル列のデータを、リングバッファの先頭部に戻り（ＲＡ＝３×ｉｈ、ＣＡ＝０ｈ）に書込む。同様に、奇数ノズル列のデータについても、７２８回目にラスタ・カラム変換処理された画像データが書込まれた箇所がリングバッファの境界部となる。このため、７２９回目にラスタ・カラム変換処理して得られた記録データの奇数ノズル列のデータも、リングバッファの先頭部に戻って（ＲＡ＝３×ｉｈ、ＣＡ＝３００ｈ）に書込む。
【０１０７】
なお、（ＲＡ＝３×ｉｈ、ＣＡ＝０ｈ）と（ＲＡ＝３×ｉｈ、ＣＡ＝３００ｈ）には夫々１回目にラスタ・カラム変換された偶数ノズル列、奇数ノズル列のデータが書込み済である。このため、これらデータが既に記録に使用されており、上書きを行なっても問題が無い場合に限って７２９回目のラスタ・カラム変換処理が行なわれる。
【０１０８】
図２１はリングバッファ内に存在するメモリ１０３の１ＫＢ境界周辺部に対する、ヘッド転送回路１０５の読出しアクセスについて示した図である。図中に示されるカラムアドレスは１ＫＢ境界部からのオフセットアドレスで示され、以下の図２１についての説明におけるカラムアドレスは全て１ＫＢ境界部からのオフセットアドレスで表記される。
【０１０９】
図２１において、（ｉ）、（ｉｉ）は夫々、（ＣＡ＝ＤＡｈ〜ＥＤｈ）と（ＣＡ＝ＥＡｈ〜ＦＤｈ）の連続読出しアクセスを示している。これらは、メモリ１０３の１ＫＢ境界を跨がずページミスの発生しない連続読出しアクセスである。
【０１１０】
図２１において、（ｉｉｉ）はＣＡ＝１ｈ〜１４ｈへの連続読出しアクセスを示している。ここで、ＣＡ＝１ｈと同じ記録データが格納されているＣＡ＝ＥＤｈから連続読出しアクセスを行なった場合、連続読出しアクセスの最終アドレスはＣＡ＝０ｈとなる。仮にＣＡ＝０ｈに連続した記録データが格納されていたとしても、この連続読出しアクセスが仮にメモリ１０３における異なるローアドレスに対する連続読出しアクセスであった場合、メモリ１０３のページ境界を跨ぐアクセスとなってしまう。このため、読出しのページミスが発生し読出し効率が下がってしまうことがある。従って、この実施例では、そのような読出しアクセスは行なわず、ＣＡ＝１ｈ〜１４ｈの連続読出しアクセスを行ない、メモリ１０３のページ境界を跨ぐことのない、ページミスが発生しないような読出しアクセスを行なう。
【０１１１】
図２１において、（ｉｖ）はＣＡ＝１１ｈ〜２４ｈへの連続読出しアクセスを示しており、（ｉ）、（ｉｉ）と同様に同一ＲＡ（ローアドレス）に対する連続読出しアクセスである。このため、（ｉＶ）はメモリ１０３の１ＫＢ境界を跨がずページミスが発生する可能性の無い連続読出しアクセスである。
【０１１２】
実施例２では、実施例１と同様に図１４、図１６のフローチャートに示す手順に従って処理が進められる。しかしながら、図１４のステップＳ１５０５の詳細な処理と図１６のステップＳ１７０５の詳細な処理が実施例１とは異なる。以下、この相違点について、図２２、図２３に示すフローチャートを用いて説明する。
【０１１３】
図２２は実施例２に従う図１４のステップＳ１５０５の詳細な処理を示すフローチャートである。ここでは、例として１カラム目の色１の奇数ノズル列から吐出される記録データについての処理手順を説明している。
【０１１４】
まず、ステップＳ２３０１では現在の処理が記録紙のページ先頭部の処理、即ち、そのページにおける最初の処理であるか否かを判断する。ここで、現在の処理が記録紙のページ先頭部の処理であった場合、処理はステップＳ２３０２に進み、処理に必要な変数であるｊに３００ｈをセットし初期化を行なう。これに対して、現在の処理が記録紙のページ先頭部の処理でなかった場合、処理はステップＳ２３０３に進む。
【０１１５】
ステップＳ２３０３では図５に示す方法でラスタ・カラム変換を実行する。ステップＳ２３０４では変数ｊに関し、１ＦＦｈ＜ｊ＜３００ｈか否かを判断する。ここで、１ＦＦｈ＜ｊ＜３００ｈであった場合、処理はステップＳ２３０５に進み、変数ｊに３００ｈをセットした後、ステップＳ２３０６に進む。これに対して、ＲＡ≠１ｈ、もしくは、ｊ≦１ＦＦｈであった場合、処理はステップＳ２３０６に進む。
【０１１６】
ステップＳ２３０６では変数ｊの下８桁に関して、ＥＣｈ≦ｊ≦ＦＦｈであるか否かを判断する。ここで、変数ｊの下８桁に関して、ＥＣｈ≦ｊ≦ＦＦｈであった場合、処理は、ステップＳ２３０７に進む。ステップＳ２３０７では変数ｊに関して、３ＥＣｈ≦ｊ≦３ＦＦｈであるか否かを判断する。ここで、３ＥＣｈ≦ｊ≦３ＦＦｈであった場合、処理はステップＳ２３０８に進む。
【０１１７】
ステップＳ２３０８では（ＲＡ＝０ｈ、ＣＡ＝ｊｈ）の領域と（ＲＡ＝１ｈ、ＣＡ＝（ｊ−３ＥＣ）ｈ）の領域の２箇所に記録データを書込み、その後、処理はステップＳ２３０９に進む。ステップＳ２３０９では変数ｊに関し、ｊ≧３ＦＦｈであるか否かを判断する。ここで、ｊ≧３ＦＦｈであった場合、処理はステップＳ２３１０に進み、変数ｊに１４ｈをセットして処理を終了する。これに対して、ｊ＜３ＦＦｈであった場合、処理はステップＳ２３１８に進み、変数ｊを＋１して処理を終了する。
【０１１８】
さて、ステップＳ２３０７において変数ｊに関し、ｊ＜３ＥＣｈ、もしくはｊ＞３ＦＦであった場合、処理はステップＳ２３１１に進む。ステップＳ２３１１では変数ｊはステップＳ２３０６〜Ｓ２３０７における判断から自動的に、ＥＣｈ≦ｊ≦ＦＦｈであると判断され、（ＲＡ＝１ｈ、ＣＡ＝ｊｈ）の領域と（ＲＡ＝１ｈ、ＣＡ＝（ｊ−ＥＣ）ｈ）の領域の２箇所に記録データを書込む。その後、処理はステップＳ２３１２に進む。
【０１１９】
ステップＳ２３１２ではｊ≧ＦＦｈであるか否かを判断する。ここで、ｊ≧ＦＦｈであった場合、処理はステップＳ２３１３に進み、変数ｊに１１４ｈをセットして処理を終了する。これに対して、ｊ＜ＦＦｈではあった場合、処理はステップＳ２３１４に進み、変数ｊを＋１して処理を終了する。
【０１２０】
またステップＳ２３０６において変数ｊに関し、ｊ＜ＥＣｈ、もしくはｊ＞ＦＦであった場合、処理はステップＳ２３１５に進む。ステップＳ２３１５では変数ｊが３００ｈ≦ｊ≦ＥＢｈであるか否かを判断する。ここで、３００ｈ≦ｊ≦３ＥＢｈであった場合、処理は、ステップＳ２３１６に進む。ステップＳ２３１６では（ＲＡ＝０ｈ、ＣＡ＝ｊｈ）の領域に画像データを書込む。その後、処理はステップＳ２３１８に進み、変数ｊを＋１して処理を終了する。これに対して、ｊ＜３００ｈ、もしくはｊ＞３ＥＢｈであった場合、処理はステップＳ２３１７に進む。
【０１２１】
ステップＳ２３１７では、変数ｊはステップＳ２３０６とＳ２３１５における判断から自動的に１４ｈ≦ｊ≦１ＦＦｈであると判断され、（ＲＡ＝１ｈ、ＣＡ＝ｊｈ）の領域に記録データを書込む。その後、処理はステップＳ２３１３に進み、変数ｊを＋１して処理を終了する。
【０１２２】
なお、図２２においては前述の通りラスタ・カラム変換回路における１カラム目の色１の奇数ノズル列から吐出される記録データについての処理手順について説明した。しかしながら、図１４のステップＳ１５０４では必要であればその他の記録データに対しても夫々の記録データが格納されるリングバッファ内において、同様の処理を行なわなければならないことは言うまでもない。
【０１２３】
図２３は実施例２に従う図１６のステップＳ１７０５の詳細な処理を示すフローチャートである。ここでは、例として、１カラム目の色１の奇数ノズル列から吐出される記録データについての処理手順を説明している。
【０１２４】
まず、ステップＳ２４０１では現在の処理が記録紙のページ先頭部の処理、即ち、そのページにおける最初の処理であるか否かを判断する。ここで、現在の処理が記録紙のページ先頭部の処理であった場合、処理はステップＳ２４０２に進み、処理に必要な変数であるｊに３００ｈをセットし初期化を行ない、その後、処理はステップＳ２４０３に進む。これに対して、現在の処理が記録紙のページ先頭部の処理でなかった場合、処理はステップＳ２４０３に進む。ステップＳ２４０３では処理に必要な変数であるｋに“０”をセットして初期化を行なう。
【０１２５】
ステップＳ２４０４では変数ｊに関し、１ＦＦｈ＜ｊ＜３００ｈであるか否かを判断する。ここで、１ＦＦｈ＜ｊ＜３００ｈであった場合、処理はステップＳ２４０５に進み、変数ｊに３００ｈをセットした後、ステップＳ２４０６に進む。これに対して、ｊ≦１ＦＦｈであった場合、処理はステップＳ２４０６に進む。
【０１２６】
ステップＳ２４０６では変数ｊに関し、３ＥＣｈ≦ｊ≦３ＦＦｈであるか否かを判断する。ここで、３ＥＣｈ≦ｊ≦３ＦＦｈであった場合、処理はステップＳ２４０７に進み、ｊから３ＥＣｈを減じた値をｊにセットし、その後、ステップＳ２４１１に進む。これに対して、ｊ＜３ＥＣｈ、もしくはｊ＞３ＦＦであった場合、処理はステップＳ２４０８に進み、３００ｈ≦ｊ≦３ＥＢｈであるか否かを判断する。
【０１２７】
ここで、ｊ＜３００ｈ、もしくはｊ＞３ＥＢであった場合、処理はステップＳ２４０９に進み、さらに、ＥＣｈ≦ｊ≦ＦＦｈであるか否かを判断する。ステップＳ２４０９において変数ｊがＥＣｈ≦ｊ≦ＦＦｈと判断された場合、処理はステップＳ２４１０に進み、ｊに１４ｈを加えた値をｊにセットして、その後、ステップＳ２４１１に進む。
【０１２８】
ステップＳ２４１１では、変数ｊはステップＳ２４０６と、ステップＳ２４０８〜Ｓ２４０９における判断から自動的に０ｈ≦ｊ≦１ＦＦｈと判断され、（ＲＡ＝１ｈ、ＣＡ＝ｊｈ）の領域から記録データを読出す。その後、処理はステップＳ２４１３に進む。
【０１２９】
これに対して、ステップＳ２４０８において、３００ｈ≦ｊ≦３ＥＢであると判断された場合、処理はステップＳ２４１２に進み、（ＲＡ＝０ｈ、ＣＡ＝ｊｈ）の領域から記録データを読出す。その後、処理はステップＳ２４１３に進み、変数ｊ、ｋをそれぞれ＋１してステップＳ２４１４に進む。
【０１３０】
ステップＳ２４１４では変数ｋについて、ｋ＞１９か否かを判断する。ここで、ｋ≦１９であった場合、処理はステップＳ２４０４に戻り、処理を続けるが、ｋ＞１９であった場合、処理を終了する。
【０１３１】
なお、図２３に示す処理は、前述の通りヘッド転送回路１０５における１カラム目の色１の奇数ノズル列から吐出される画像データについての処理手順についてのみ説明したものである。従って、図１６のステップＳ１７０５では必要であれば異なるカラム、色の偶数／奇数ノズル列の記録データが格納されているメモリアドレスに対して同様の処理を行なわなければならないことは言うまでもない。
【０１３２】
従って以上説明した実施例に従えば、メモリの実ページサイズとリングバッファのサイズが異なる場合に、リングバッファからの連続データ読み出しがページ境界を跨がないようにデータの書込みを行うようにできる。これにより、ラスタ・カラム変換したデータを連続的に読出して記録を行う場合にも、読出しエラーのないスムーズなデータ読出しを行うことができ、記録動作のパフォーマンスの向上に貢献する。また、以上の例ではページ境界を有するメモリのカラム方向に連続データを書込むとともにカラム方向にグループ単位で読出す記録装置を例に説明した。しかしながら、同様にカラム方向に連続データを書込んだ後、それを読出す処理を行うものであれば他の装置にも適用可能である。
【図２】
2013120499.tif 000003
【図３】
2013120499.tif 000004
【図５】
2013120499.tif 000005
【図６】
2013120499.tif 000006
【図７】
2013120499.tif 000007
【図８】
2013120499.tif 000008
【図９】
2013120499.tif 000009
【図１０】
2013120499.tif 000010
【図１１】
2013120499.tif 000011
【図１２】
2013120499.tif 000012
【図１３】
2013120499.tif 000013
【図１４】
2013120499.tif 000014
【図１５】
2013120499.tif 000015
【図１６】
2013120499.tif 000016
【図１７】
2013120499.tif 000017
【図１８】
2013120499.tif 000018
【図１９】
2013120499.tif 000019
【図２０】
2013120499.tif 000020
【図２１】
2013120499.tif 000021
【図２２】
2013120499.tif 000022
【図２３】
2013120499.tif 000023
【図２４】
2013120499.tif 000024
【図１】
2013120499.tif 000025
【図４】
2013120499.tif 000026