(57)【要約】【課題】分割されたバッファの先頭部分にＮＵＬＬ領域が配置された場合でも、バッファの記憶領域の節約処理を行なうことができるようにする。【解決手段】記録ヘッドの走査方向の記録領域を複数に分割した分割領域単位の画像データを格納する複数に分割されたバッファ１０２と、入力された画像データを、ラスタ方向に並んだ状態から、カラム方向に並んだ状態に変換する変換部１０１と、変換部の１回の変換容量毎に、変換容量内の全ての画像データがＮＵＬＬであるか否かを検出する検出部１０１と、変換容量内の全ての画像データがＮＵＬＬであった場合に、画像データがＮＵＬＬであることを示すデータとＮＵＬＬである画像データのデータ量を記憶する記憶部１０３と、変換部から出力されてバッファに記憶された、変換容量内の全てがＮＵＬＬである画像データの上に、次に変換部により変換された画像データを上書きする書き込み制御部１０３とを具備する。【選択図】      図１
2004291498.tif 000002
【特許請求の範囲】
【請求項１】
記録ヘッドを搭載したキャリッジを記録媒体に対して走査させて記録を行う記録装置において、
前記記録ヘッドの走査方向の記録領域を複数に分割した分割領域単位の画像データを格納する複数に分割されたバッファと、
外部から入力された画像データを、前記記録ヘッドの走査方向に平行なラスタ方向に並んだ状態から、前記走査方向に垂直なカラム方向に並んだ状態に変換する変換手段と、
該変換手段の１回の変換単位毎に、該変換単位の全ての画像データがＮＵＬＬであるか否かを検出する検出手段と、
前記変換単位の全ての画像データがＮＵＬＬであった場合に、該画像データがＮＵＬＬであることを示すデータと該ＮＵＬＬである画像データのデータ量を記憶する記憶手段と、
前記変換手段から出力されて前記バッファに記憶された、前記変換単位全てがＮＵＬＬである画像データの上に、次に前記変換手段により変換された画像データを上書きする書き込み制御手段と、
を具備することを特徴とする記録装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、シリアル記録装置における、バッファの記憶領域を節約する技術に関する。
【０００２】
【従来の技術】
キャリッジの１走査分の記憶領域を持たないシリアル記録装置では、記録ヘッドの走査方向の記録領域を複数の領域に分割したバッファを有し、分割されたバッファの幾つかが受信を完了したら印字動作を開始する。そして印字動作を終えたバッファは開放され、この開放された領域にはホストから新たに受信したデータが格納される。
【０００３】
キャリッジの１走査分の記憶領域を持たないので、分割されたバッファの所定数が受信を完了したら印字動作を開始する。所定数のバッファの受信が完了していればそのまま印字を続け、完了していなければ印字動作を中断する。
【０００４】
ところで、分割された各バッファへデータを格納する際、バッファ中にＮＵＬＬ（ヌルデータまたはデータ「０」）が格納される場合がある。実画像の例としては、文書を印字する場合の文字間がある。従来は、各バッファの後端にＮＵＬＬの領域が配置された場合には、ＮＵＬＬの領域の長さを他のレジスタ等に記憶するとともに、このバッファ中のＮＵＬＬの領域を削除して、次のブロックの先頭をＮＵＬＬ領域の前のデータの最後に接続し、ＮＵＬＬ領域の分だけ記憶領域を節約する（データをつめる）制御を行うことがある。
【０００５】
【発明が解決しようとする課題】
しかしながら、上記の従来例では次のような問題点があった。
（１）分割されたバッファの先頭部分にＮＵＬＬ領域が配置された場合は、上記のような記憶領域を節約する制御ができないため、記憶領域の利用効率は改善されない。
（２）分割されたバッファの先頭部分にＮＵＬＬ領域が配置された時に、その領域を削除する（その領域がＮＵＬＬであることを示すデータとその領域の長さとを他のレジスタ等に記憶しておく）処理をソフトで行う場合、ＮＵＬＬ領域の終わりを検出するために、バッファへのデータの受信状況を常時モニタする必要があり、ソフト的な負荷が大きい。
【０００６】
従って、本発明は上述した課題に鑑みてなされたものであり、その目的は、分割されたバッファの先頭部分にＮＵＬＬ領域が配置された場合でも、バッファの記憶領域の節約処理を行なうことができるようにすることである。
【０００７】
【課題を解決するための手段】
上述した課題を解決し、目的を達成するために、本発明に係わる記録装置は、記録ヘッドを搭載したキャリッジを記録媒体に対して走査させて記録を行う記録装置において、前記記録ヘッドの走査方向の記録領域を複数に分割した分割領域単位の画像データを格納する複数に分割されたバッファと、外部から入力された画像データを、前記記録ヘッドの走査方向に平行なラスタ方向に並んだ状態から、前記走査方向に垂直なカラム方向に並んだ状態に変換する変換手段と、該変換手段の１回の変換単位毎に、該変換単位の全ての画像データがＮＵＬＬであるか否かを検出する検出手段と、前記変換単位の全ての画像データがＮＵＬＬであった場合に、該画像データがＮＵＬＬであることを示すデータと該ＮＵＬＬである画像データのデータ量を記憶する記憶手段と、前記変換手段から出力されて前記バッファに記憶された、前記変換単位全てがＮＵＬＬである画像データの上に、次に前記変換手段により変換された画像データを上書きする書き込み制御手段と、を具備することを特徴とする。
【０００８】
【発明の実施の形態】
以下、本発明の好適な一実施形態について説明する。
【０００９】
まず、本発明の一実施形態の概要について説明する。
【００１０】
本実施形態の記録装置は、記録ヘッドを搭載したキャリッジを記録媒体に対して走査させて記録を行う記録装置において、前記記録ヘッドの走査方向の記録領域を複数に分割した分割領域単位の画像データを格納する複数に分割されたバッファと、外部から入力された画像データを、前記記録ヘッドの走査方向に平行なラスタ方向に並んだ状態から、前記走査方向に垂直なカラム方向に並んだ状態に変換する変換手段と、該変換手段の１回の変換単位毎に、該変換単位の全ての画像データがＮＵＬＬであるか否かを検出する検出手段と、前記変換単位の全ての画像データがＮＵＬＬであった場合に、該画像データがＮＵＬＬであることを示すデータと該ＮＵＬＬである画像データのデータ量を記憶する記憶手段と、前記変換手段から出力されて前記バッファに記憶された、前記変換単位全てがＮＵＬＬである画像データの上に、次に前記変換手段により変換された画像データを上書きする書き込み制御手段と、を具備することを特徴とする。
【００１１】
また、本実施形態の記録装置において、前記書き込み制御手段は、前記変換手段の所定回の変換単位分の画像データが前記バッファに記憶されたときに、前記バッファへの書き込みアドレスをインクリメントし、前記所定回の変換単位分の画像データが全てＮＵＬＬ（ヌルデータまたはデータ「０」）であった場合には、インクリメントした前記アドレスをインクリメントする前のアドレスに戻すことにより、前記全てがＮＵＬＬである画像データの上に次の画像データを上書きすることを特徴とする。
【００１２】
また、本実施形態の記録装置において、前記書き込み制御手段は、前記全てがＮＵＬＬである画像データへの次の画像データの上書きが発生した上書きアドレスを記憶しておくとともに、前記記録装置は、前記バッファからの画像データの読み出し時に、前記上書きアドレスの位置で、前記記憶手段に記憶されたデータ量のＮＵＬＬデータを出力する出力制御手段をさらに具備することを特徴とする。
【００１３】
以下、本発明の一実施形態について、図面を参照して具体的に説明する。
【００１４】
図１は、本実施形態の記録装置の基本構成を概念的に示すブロック図である。
【００１５】
１０１はホストから記録装置へ送られて来たデータをラスタからカラムへ変換するＨＶブロックであり、本実施形態の特徴的な部分であるＮＵＬＬデータ（ヌルデータまたはデータ「０」）の状態を調べる機能も有する。１０２はＨＶブロック１０１でカラムへ変換されたデータを格納するプリントバッファで、色ごとのバッファを有する。本実施形態ではブラック（Ｂｋ）、イエロー（Ｙ）、マゼンダ（Ｍ）、シアン（Ｃ）の４つのバッファを有する。１０３はプリントバッファ１０２内の各色のバッファのアドレスを管理するアドレスコントローラである。またこのブロックは、ＨＶブロック１０１で検出されたＮＵＬＬ領域のデータ受信によって進行したアドレスをクリアする機能を有し、更にはＮＵＬＬ領域のカラム数をカウントするＮＵＬＬカウンタを有する。１０４はプリントバッファ１０２から各色のデータをアドレスコントローラ１０３の指示に従って読み出し、記録ヘッドへデータを送信するリードブロックである。またこのリードブロック１０４は、アドレスコントローラ１０３内のＮＵＬＬカウンタ値に応じてプリントバッファ１０２に関わらずヘッドへＮＵＬＬデータを送信する機能を有する。
【００１６】
図２は、本実施形態の記録装置の構成を示すブロック図である。
【００１７】
２０１は動作の制御を行うＣＰＵである。２０２は各ブロック２０３〜２０９の連携動作を、ＣＰＵ２０１の命令と各ブロックの状態に応じて制御するコントローラである。このコントローラー２０２は、各「分割されたバッファ」に格納されているデータサイズ（カラム数）も管理している。２０３はホストからのデータを受信するＩ／Ｆである。２０４はＩ／Ｆで受信したデータを一時的に格納する受信バッファである。２０５はＨＶ変換を行うＨＶ変換部であり、２０６はＨＶ変換を行なったデータがＮＵＬＬか否かを判断するＮＵＬＬ検出部である。このＨＶ変換部２０５とＮＵＬＬ検出部２０６は、図１で説明したＨＶブロック１０１に該当する。２０７はＨＶ変換されたデータを格納するプリントバッファで、色ごとのバッファを有する。このプリントバッファ２０７は、図１におけるプリントバッファ１０２に相当する。２０８はプリントバッファ内のデータをヘッド２０９へ送信するリードブロックであり、図１におけるリードブロック１０４に相当する。
【００１８】
図３を用いてバッファ内の記憶領域を節約する動作について説明する。
【００１９】
本実施形態では、記録ヘッドの走査方向の記録領域を走査方向に複数の領域に分割し、分割された領域（以後、「分割されたバッファ」と表記する）単位に画像データを格納する。（このため、ホストは予めこの分割された領域単位の画像データを色毎に生成し、記録装置に送信する。）図３の上段は分割されたバッファの１つであり、斜線は分割されたバッファ内のうちデータが格納されている領域を示している。中段は上段で示したバッファと他の分割されたバッファ３つを単純に並べてあり、下段は従来方式及び本実施形態の方式でバッファを節約した状態を示している。即ち、中段では記憶領域を単純に４分割した状態で、分割された各バッファにデータが格納されている。下段はデータの状態に応じて詰め込む処理をしているため、分割された各バッファのサイズは一様ではない。
【００２０】
本実施形態ではカラー印字とする。そのためバッファ内にはブラック（Ｂｋ）、イエロー（Ｙ）、マゼンダ（Ｍ）、シアン（Ｃ）の各色に対応した個別バッファがある。バッファがＮＵＬＬであるということは、何れの色もＮＵＬＬであることを意味する。その領域を解放（その領域のＮＵＬＬデータを削除）し、記憶領域の使用効率を上げている。図の中段はこの様なバッファが４つあることを示し、上記処理を行ってＮＵＬＬ領域を詰めていくことにより、下段に示すように解放される領域は多いものとなる。
【００２１】
従来例を示す図３（ｂ）を用いて、従来の方法では記憶領域の使用効率が上がらない理由について説明する。図３（ｂ）上段に、その例を示す。
【００２２】
各色のバッファに格納されているデータ量は、本実施形態を示す図３（ａ）と同じであるが、データは各バッファの先頭部分にＮＵＬＬが存在する様に配置されている。このとき、従来は先頭部分においてはデータを詰める操作は行わないため、この部分はデータが有る場合と同様に処理される。そのため図３（ｂ）の中段及び下段に示すように、本実施形態を示す図３（ａ）の場合に比べて解放される領域が少ない。
【００２３】
図４に従来では行われなかったバッファの先頭部分のＮＵＬＬ領域をも詰めた場合の様子を示す。
【００２４】
本実施形態の場合も各色ともにＮＵＬＬデータの領域を解放する。先頭部分にＮＵＬＬ領域がある場合は、その量を他のレジスタ等に記憶しておけば、印字の際にその量分だけＮＵＬＬデータをヘッドへ送信することができ、少ないバッファ領域で印字動作が実現できる。本実施形態の方法を用いた場合のデータが詰まる様子を中段及び下段に示す。
【００２５】
図５を用いて、分割されたバッファの先頭部分にＮＵＬＬデータが存在することを検知する方法を説明する。
【００２６】
ホストコンピュータから記録装置へ印字データを送信する際、記録装置側にはラスタ方向、即ち記録ヘッドの走査方向で送られてくることが一般的である。更には、本実施形態のように記録ヘッドが１走査分の印字を行うために必要な記憶領域を有さないシリアル記録装置においては、先に述べた分割されたバッファに相当するサイズ以下だけラスタデータを送信したらカラム方向へ移動して同様にデータを送る。本実施形態ではラスタデータを１バイト送信したらカラム方向へ移動することとする。
【００２７】
このとき記録装置側では記録ヘッドでの印字を可能にするために、ヘッドノズル列と同じカラム方向のデータに変換する。
【００２８】
この様子を図５に示す。
【００２９】
即ち、ＨＶブロック１０１では、ラスタ方向のデータを８バイト受信して８ｂｉｔ×８ｂｉｔのレジスタが一杯になったら、次に縦方向にデータを取り出しプリントバッファへ格納する。更にこのとき、８ｂｉｔ×８ｂｉｔのレジスタの全ビットがＮＵＬＬならばａｌｌ＿ＮＵＬＬ＿ｆｌｕｇを立て、データをプリントバッファ１０２へ送信するとともにこのフラグの状態もプリントバッファと対応したレジスタに記憶させる。なお図５で説明したラスタからカラムへの変換を、以後はＨＶ変換と表現する。
【００３０】
図５でＨＶ変換されたデータは、一度色ごとに各々のバッファへ格納され、アドレスは予め設定されているｓｔａｒｔ＿ａｄｄｒｅｓｓからインクリメントされる。またａｌｌ＿ＮＵＬＬ＿ｆｌｕｇを各色ごとに、変換処理を行うたびにレジスタに格納する。この操作をＢｋ、Ｙ、Ｍ、Ｃの各色について行う。
【００３１】
図６は各色のプリントバッファと、図５で説明したａｌｌ＿ＮＵＬＬ＿ｆｌｕｇを色ごとに格納し、以下に示すＮＵＬＬフラグにより、プリントバッファのアドレスを操作する構成を示している。なお、各色について、走査方向に８つのブロック（分割されたバッファ）が設けられている。この１つのブロックでは、例えば、１６回（図８に示す１６個の領域について）の変換がなされるが、この変換処理に対応して１６個のａｌｌ＿ＮＵＬＬ＿ｆｌｕｇを設定できる。
【００３２】
図６と図８を用いて、図５に示すようにＨＶブロック１０１でＨＶ変換されたデータをプリントバッファ１０２に格納する手順と、ａｌｌ＿ＮＵＬＬ＿ｆｌｕｇを格納するレジスタについて説明する。図８（ａ）は、図６に示した分割されたバッファの１６個の領域（変換単位）の説明図である。図８（ａ）の数字は、変換処理が行われる順序をしめす。ＨＶ変換の処理は、図に示すように左上から横方向（１、２、・・・とラスター方向、言い換えるとブロックの幅方向に）に順に行われ、右下の１６番目まで順に行われる。このＨＶ変換処理を行いながらａｌｌ＿ＮＵＬＬ＿ｆｌａｇの設定処理が行われる。この同様の処理をＹ，Ｍ，Ｃの同じ分割されたバッファについて行う。
【００３３】
次に、この縦方向（カラム方向）に並んだ４つのＨＶ変換済みの領域（第１グループ）について、すべてａｌｌ＿ＮＵＬＬ＿ｆｌａｇが立っていれば（１カラムから８カラムにはすべてＮＵＬＬが格納されていれば）、フラグＮＵＬＬ＿Ｂｋをセットする。同様に、第２グループから第４グループの各グループについてａｌｌ＿ＮＵＬＬ＿ｆｌａｇが立っていれば、ＮＵＬＬ＿Ｂｋをセットする。同様の処理を第１の分割されたバッファのＹ，Ｍ，Ｃについて行う。なお、このカラム方向のデータの数（ここでは、３２ビット）は、記録ヘッドのノズル列のノズル数（例えば３２ノズル）に対応している。
【００３４】
そして、各色の第１グループについて、ＮＵＬＬ＿ＢＫ、ＮＵＬＬ＿Ｙ、ＮＵＬＬ＿Ｍ、ＮＵＬＬ＿Ｃの全てのフラグセットされているか、否かを判断し、もし、全てセットされていれば、ＮＵＬＬレジスタにＮＵＬＬフラグをセットする（いずれかの、フラグが１つでもセットされていなければ、ＮＵＬＬフラグはセットされない）。このフラグの設定とともに、ＮＵＬＬカウンタに８がセットされる。なお、この値は、仮にＨＶ変換の変換単位が１６ｂｉｔ×１６ｂｉｔであれば、１６がセットされる。以上の処理により、第１グループの処理が終了する。
【００３５】
次に、第２グループから第４グループについて、同様の処理を順に行う。そして、Ｂｋ、Ｙ、Ｍ、Ｃの第２グループについても判断し、ＮＵＬＬ＿フラグがセットされると、ＮＵＬＬカウンタは１６（先の処理で設定された８の値に８が加算されて）が格納される。その後の判断で、第３グループのＮＵＬＬフラグがセットされなければ、この値が保持される。そして、第４グループについてＮＵＬＬフラグがセットされていると判断しても、ＮＵＬＬカウンタは書き換えられない。これにより、図４の上段にしめす分割されたバッファの先頭部分のＮＵＬＬデータの量を保持することができる。
【００３６】
以下同様に、第２の分割されたバッファから、第８の分割されたバッファについて、ＨＶ変換処理と格納処理を行いながら、それぞれの分割されたバッファに対応するＮＵＬＬカウンタに値が設定される。これらのＮＵＬＬカウンタは、それぞれの分割されたバッファから読み出されるときに用いることができる。ここでは、分割されたバッファの数は８であるので、これに対応してＮＵＬＬカウンタの数は８である。
【００３７】
なお、第１の分割されたバッファにおいて、第１グループから第４グループについてＮＵＬＬフラグがセットされていれば、プリントバッファへの書き込みアドレスを示すライト（ｗｒｉｔｅ）ポインタをクリアする。ライトポインタをクリアすることにより次のブロック（第２の分割されたバッファ）に格納することが可能となる（全てＮＵＬＬのデータの上に上書きされる）。このことは、他の分割されたバッファについても同様である。
【００３８】
従って、図４の下段に示すように、記録データを詰めて格納することができ、記憶領域の使用効率を向上できる。
【００３９】
なおデータの読み出し時は、ＮＵＬＬレジスタにその領域がＮＵＬＬであることが示されていれば、その領域のデータの読み出しは行わず、ヘッドへはＮＵＬＬデータを送信する。すなわち、記憶領域を使用することなくＮＵＬＬデータを生成出来ることになり、記憶領域の使用効率を向上できる。
【００４０】
図７は、本実施形態の動作を示すフローチャートである。
【００４１】
ホストコンピュータからの受信を開始したら（ステップＳ７０１）、まず受信モードをＢｋモードにする（ステップＳ７０２）。受信したデータを先に説明したＨＶブロックによりラスタデータからカラムデータへ変換し、Ｂｋのプリントバッファへ記録する（ステップＳ７０３、ステップＳ７０４）。次に先に説明したａｌｌ＿ＮＵＬＬ＿ｆｌｕｇが立っている場合は（ステップＳ７０５）、現在の色モードを確認して（ステップＳ７１４）、そのＢｋ色のＮＵＬＬ＿Ｂｋフラグを立てる（「０」をセットする）（ステップＳ７１８）。その後Ｙ色へモードを切り替え（ステップＳ７０６、ステップＳ７１１）、同様に繰り返す（ステップＳ７０３〜７０５、ステップＳ７１５、ステップＳ７１９）。ステップＳ７０５においてＮＵＬＬでない場合は、そのまま次の色のモードへ切り替える。これをＭ色、Ｃ色についても行う。
【００４２】
全ての色データについてＨＶ変換、及びＮＵＬＬフラグの有無を終了したら、全ての色のＮＵＬＬフラグ（ＮＵＬＬ＿Ｂｋ、ＮＵＬＬ＿Ｙ、ＮＵＬＬ＿Ｍ、ＮＵＬＬ＿Ｃ）が立っているか否かを判定する。どれか１つでも否であればそのまま終了する。全てのＮＵＬＬフラグが立っていれば、即ち全ての色データがＮＵＬＬであれば、プリントバッファでのデータのライトでインクリメントしたアドレスを、初期値へ戻す（ステップＳ７１０）。これと同時にＮＵＬＬレジスタへ、その領域がＮＵＬＬであったことを示すＮＵＬＬフラグを立てる（ステップＳ７１１）。
【００４３】
アドレスを初期値へ戻すことにより、プリントバッファに書き込まれた全てＮＵＬＬのデータの上に次のブロックのデータを上書きすることが可能となる。
【００４４】
本実施形態では、分割されたバッファの走査方向の幅が４回のＨＶ変換で生成されるデータ幅であるものとして記載しているが、ｎ回（ｎ＝１以上の整数）であれば、他の値でもかまわない。また、分割されたバッファの縦の幅も、
同様である。
【００４５】
また、図８（ｂ）の数に示すように、左上から縦の方向にＨＶ変換処理を行ってもかまわない。この場合、分割されたバッファの幅が短い場合において（例えば、ＨＶ変換１回に相当するデータ幅）、１つの変換領域に着目すると、ＨＶ変換とＮＵＬＬフラグ設定処理の間隔を短くできる。
【００４６】
また、ＮＵＬＬカウンタではなく、ＮＵＬＬフラグをグループ毎に持ち（本実施形態の場合では４つ）、このフラグの値を判断しながら記録データの読出しを行ってもかまわない。例えば、上述した第３グループのみＮＵＬＬフラグを設定した（第１，２，４グループについてＮＵＬＬフラグを設定）場合でも、第４グループのＮＵＬＬデータを格納しなくてもすむことができ、より記録データを詰めて格納することができる。
【００４７】
また本実施形態では、全ての色がＮＵＬＬであった場合にのみプリントバッファへの書き込みアドレスを操作したが、各色ごとに操作しても同様に実現できる。
【００４８】
さらに本実施形態では４色として説明しているが、何色であっても同様である。
【００４９】
以上説明したように、本実施形態によれば、キャリッジの１走査分の記憶領域を持たないシリアル記録装置においても、ＮＵＬＬ領域を出来るだけプリントバッファに割当てない様に制御することで、記憶領域の使用効率を向上させることが可能となる。
【００５０】
【発明の効果】
以上説明したように、本発明によれば、分割されたバッファの先頭部分にＮＵＬＬ領域が配置された場合でも、バッファの記憶領域の節約処理を行なうことが可能となる。
【図面の簡単な説明】
【図１】一実施形態の記録装置の基本構成を概念的に示すブロック図である。
【図２】一実施形態の記録装置の構成を示すブロック図である。
【図３】一実施形態の記録装置のバッファ構成を示す図である。
【図４】一実施形態の記録装置のバッファ構成を示す図である。
【図５】一実施形態の記録装置のＨＶ変換の概略を示す図である。
【図６】一実施形態の記録装置のプリントバッファの概略を示す図である。
【図７】一実施形態の記録装置の動作を示すフローチャートである。
【図８】一実施形態の記録装置のＨＶ変換の概略を示す図である。
【符号の説明】
１０１  ＨＶブロック
１０２  プリントバッファ
１０３  アドレスコントローラ
１０４  リードブロック
２０１  ＣＰＵ
２０２  コントローラ
２０３  インターフェイス
２０４  受信バッファ
２０５  ＨＶ変換部
２０６  ＮＵＬＬ検出部
２０７  プリントバッファ
２０８  リードブロック
２０９  記録ヘッド
【図１】
2004291498.tif 000003
【図２】
2004291498.tif 000004
【図３】
2004291498.tif 000005
【図４】
2004291498.tif 000006
【図５】
2004291498.tif 000007
【図６】
2004291498.tif 000008
【図７】
2004291498.tif 000009
【図８】
2004291498.tif 000010