(57)【特許請求の範囲】
【請求項１】
上位装置より入力された１ページ分の印字データを複数のブロックに分割しそれぞれの印字データを圧縮して記憶させるページメモリと、前記ページメモリに圧縮して記憶された１ブロック分の印字データを伸張する伸張手段と、前記伸張手段により伸張された前記印字データと前記上位装置より入力された他の入力データとを合成する合成手段と、前記合成手段により合成された合成データを圧縮して前記ページメモリの元のブロックに記憶させる圧縮手段と、印字指示命令に従い、圧縮して記憶されている前記合成データを伸張して印字エンジンへ転送する出力手段と、前記入力データを合成する際に前記伸張手段において伸張された前記印字データを一時的に記憶させる第１イメージメモリと、前記圧縮手段において前記合成データを圧縮して元のブロックに記憶させる際に、圧縮された前記合成データを一時的に記憶させる第２イメージメモリとを備えた印字装置であって、
前記出力手段において伸張された前記合成データを前記印字エンジンへ転送する際には、第１イメージメモリ及び第２イメージメモリの一方に１ブロック分の前記合成データを伸張して記憶した後、印字エンジンの動作のタイミングにあわせて転送すると共に、転送中に次の１ブロック分の前記合成データを第１イメージメモリ及び第２イメージメモリの他方に伸張して記憶し、前記一方のイメージメモリの転送終了後、他方のイメージメモリに記憶された前記合成データの転送を行うという処理を順に繰り返すことを特徴とする印字装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、１ページを単位として印字する印字装置に関し、更に詳しくは、印字データを記憶する複数のブロックからなるページメモリを持つ印字装置に関するものである。
【０００２】
【従来の技術】
１ページを単位として印字する印字装置は、従来、コンピュータ等の上位装置から送られてきた文字・制御コード及び図形データを１ページ分のビットマップイメージとページメモリにおいて合成して保持し、印字する際にページメモリのデータを印字エンジンに転送する方式のものであった。この方式では、１ページ分のビットマップイメージに応じたページメモリが必要であるので、印字装置を安価に提供することができなかった。
【０００３】
そこで、１ページを複数のブロックに分割し、それぞれを圧縮して保持するページメモリを有し、上位装置から送られてきた文字・制御コード及び図形データを、ページメモリにおいて各ブロックごとに伸張されたビットマップイメージと合成し、再び圧縮する一連の合成処理を行い、印字する際に、各ブロックごとにページメモリとは別に設けられた印字エンジンにデータ転送を行うためのメモリで伸張して印字する方式を採用した印字装置が提案されている。この方式では、１ページを複数のブロックに分割したそれぞれのビットマップイメージを圧縮して保持するページメモリと、１ブロック分のデータを伸張したビットマップイメージと同じ大きさの印字エンジンに転送するためのメモリとを有していればよいので、大きなメモリを必要とせず、印字装置をより安価に提供することができるようになった。
【０００４】
【発明が解決しようとする課題】
しかしながら、上述の方式を採用している印字装置では、上位装置から送られてきた文字・制御コード及び図形データ等の入力データに応じて、圧縮して保持しているページメモリの使用サイズが増減するので、残メモリ容量が少なくなってくると、合成したデータを圧縮してブロックに記憶する際に、圧縮データを一時的に記憶するメモリエリアや、入力データと合成を行うために該当するページメモリのブロックを伸張しビットマップイメージにして保持するときのメモリエリアが確保できなくなり、印字ができなくなる問題点があった。
【０００５】
本発明は、上述した問題点を解決するためになされたものであり、残メモリ容量が少なくなっても印字を行うことができる印字装置を提供することを目的とする。
【０００６】
【課題を解決するための手段】
上記目的を達成するために、本発明の印字装置は、上位装置より入力された１ページ分の印字データを複数のブロックに分割しそれぞれの印字データを圧縮して記憶させるページメモリと、前記ページメモリに圧縮して記憶された１ブロック分の印字データを伸張する伸張手段と、前記伸張手段により伸張された前記印字データと前記上位装置より入力された他の入力データとを合成する合成手段と、前記合成手段により合成された合成データを圧縮して前記ページメモリの元のブロックに記憶させる圧縮手段と、印字指示命令に従い、圧縮して記憶されている前記合成データを伸張して印字エンジンへ転送する出力手段と、前記入力データを合成する際に前記伸張手段において伸張された前記印字データを一時的に記憶させる第１イメージメモリと、前記圧縮手段において前記合成データを圧縮して元のブロックに記憶させる際に、圧縮された前記合成データを一時的に記憶させる第２イメージメモリとを備えたものであって、前記出力手段において伸張された前記合成データを前記印字エンジンへ転送する際には、第１イメージメモリ及び第２イメージメモリの一方に１ブロック分の前記合成データを伸張して記憶した後、印字エンジンの動作のタイミングにあわせて転送すると共に、転送中に次の１ブロック分の前記合成データを第１イメージメモリ及び第２イメージメモリの他方に伸張して記憶し、前記一方のイメージメモリの転送終了後、他方のイメージメモリに記憶された前記合成データの転送を行うという処理を順に繰り返すものである。
【０００７】
【０００８】
【０００９】
本発明の印字装置は、出力手段において印字エンジンに転送する際に、ページメモリに記憶されている合成データを伸張して一時的に記憶させることができ、また、複数のブロックで構成された上記ページメモリから、１ブロック分の印字データを伸張し、その伸張された印字データと上位装置より入力された他の入力データとを合成し、その合成データを圧縮する一連のデータ処理を行う際に、伸張された印字データを一時的に記憶させることができるイメージメモリを有しているので、残メモリ容量が小さくなっても印字を行うことができる。
【００１０】
本発明の印字装置は、出力手段において印字エンジンに転送する際に、ページメモリに記憶されている合成データを伸張して一時的に記憶させることができ、また、複数のブロックで構成された上記ページメモリから、１ブロック分の印字データを伸張し、その伸張された印字データと上位装置によ入力された他の入力データとを合成し、その合成データを圧縮する一連のデータ処理を行う際に、圧縮する合成データを一時的に記憶させることができるイメージメモリを有しているので、残メモリ容量が小さくなっても印字を行うことができる。
【００１１】
更に、本発明の印字装置は、印字装置のイメージメモリが、上記入力データを合成する際に、上記伸張手段において伸張された印字データを一時的に記憶させることもできるので、残メモリ容量が小さくなっても印字を行うことができる。
【００１２】
【発明の実施の形態】
以下、本発明の一実施形態である印字装置について、図面を参照して説明する。なお、本発明の印字装置は、レーザプリンタとして使用することができ、また、インクジェット式プリンタとしても使用することができる。図１のブロック図に示すように、プリンタ１０のＣＰＵ１２０は、上位装置１００とホストインターフェース１１０を経由して接続され、印字エンジン１４０とは、エンジンインターフェース１３０を経由して接続されている。ＲＡＭ１５０は、ＣＰＵ１２０に接続されており、ページを複数のブロックに分割圧縮して記憶するページメモリ１５１と、ページメモリ１５１の１ブロックのサイズのメモリ領域を２つ持つイメージメモリ１５２が格納されている。
【００１３】
ＲＯＭ１６０は、ＣＰＵ１２０に接続されており、上位装置１００から入力される印字データを処理する印字データ処理プログラム１６１、イメージメモリ１５２のメモリ領域の１つに格納されているデータを圧縮するブロック圧縮プログラム１６２、イメージメモリ１５２のメモリ領域の１つに格納されているデータに上位装置１００から入力される入力データを合成する印字データ合成プログラム１６３、ページを複数のブロックに分割圧縮して記憶するページメモリ１５１に圧縮して記憶されているブロックの１つを伸長する伸張プログラム１６４、ページメモリ１５１に記憶されているデータを印字エンジン１４０へのデータ転送するページメモリ印字プログラム１６５が格納されている。
【００１４】
図２にページメモリ１５１とイメージメモリ１５２の構成を示す。左上を原点とし、１画素を１ビットで表す幅Ｗ、高さＨのページ２０１をラスタ方向にＮ個に分割したものが、幅Ｗ、高さＨ／Ｎのブロック群２０２である。２０３は、ブロック群２０２の各ブロックを圧縮してデータサイズが不定となったＰＭ１〜ＰＭＮからなるページメモリ１５１の構成を表す。ブロック群２０２のブロックサイズと同じ大きさのＩＭ１、ＩＭ２の２ブロック２０４でイメージメモリ１５２が構成されている。
【００１５】
図３は、上位装置１００から入力される印字データを示す。この印字データには、形状指定データと印字指示データとがある。形状指定データは、データの種類をあらわすＩＤ３０１と、Ｘ座標３０２、Ｙ座標３０３、幅３０４、高さ３０５の矩型を表す情報データとからなり、それぞれ順に１、２５０、５００、３５０、４００の値をとる。印字指示データは、ＩＤ３０６のみからなり、２の値をとる。
【００１６】
図４のフローチャートを用いて印字データ処理プログラム１６１の処理を説明する。この印字データ処理プログラムは、電源投入時に起動され電源オフまで実行される。初期設定４０１において、ページメモリ１５１のゼロクリア等の初期化が行われ、４０２において、上位装置１００からの印字データを読み込む。４０３において、この印字データが形状データであるかどうかをＩＤの値で調べる。ＩＤ値が１（形状データ）であれば、４０４において、ページメモリ１５１の構成ブロックのなかからこの形状データを書き込むべき該当ブロックを見つける。例えば、該当ブロックがＰＭ１であるとすると、４０５において、ＰＭ１をイメージメモリ１５２の１ブロックであるＩＭ１に伸長するようにブロック伸長プログラムを実行する。そして、４０６において、形状データをＩＭ１で合成する処理を行うための印字データ合成プログラムを実行する。
【００１７】
更に、４０７において、合成の終了したＩＭ１からＰＭ１に合成データを圧縮して記憶し直すためのブロック圧縮プログラムを実行し、４０４に戻って別の該当ブロックを繰り返し探す。４０４において、形状データを合成する該当ブロックがなくなったら、４０２に戻り次の印字データの処理を行う。４０３において、読み込んだ印字データが形状データでないと判断されたならば、４０８において、印字データが印字指示データであるかどうかをＩＤの値で判断し、２（印字指示データ）であれば、４０９において、ページメモリ１５１を印字するためにページメモリ印字処理プログラムを実行し、４０２に戻る。４０８において、印字データが印字指示データでなければ、４０２に戻る。
【００１８】
次に、図４の４０４から４０７までの処理を図５及び図6を参照して詳細に説明する。図５に示す幅１０００、高さ２０００、分割ブロック数１０、ブロック幅１０００、ブロック高さ２００のページメモリ１５１の構成を例にとって説明する。４０４において、ブロック番号１から１０までを順に形状指定データの領域５０１と重なっているものであるかどうかを調べる。まず、ブロック番号３が該当ブロックとして判断され、処理が行われる。４０５において、２０３のＰＭ３がブロック伸張プログラム１６４にかけられ、２０４のＩＭ１に書き込まれる。このとき、ＲＡＭ１５０のメモリマップは６０１になる。６０１は、ＰＭ１からＰＭＮまでのページメモリ１５１とＩＭ１とＩＭ２のイメージメモリ１５２とそれ以外の空きメモリＷＯＲＫとからなる。６０１の空きメモリＷＯＲＫは、ブロックサイズよりも小さいのでＰＭ３を伸張することができないが、ブロックと同じ大きさのＩＭ１には伸張することができる。
【００１９】
４０６において、印字データ合成プログラム１６３が実行され、領域５０１とブロック３の重なった部分がＩＭ１でビットマップ合成され、白（ビット値０）から黒（ビット値１）に書き換えられる。４０７において、ＩＭ１でのデータがブロック圧縮プログラム１６２によってＩＭ２に圧縮して記憶される。このとき、ＲＡＭ１５０のメモリマップは６０２である。ＩＭ１を圧縮して記憶するエリアは、少なくともブロックと同じ大きさを必要とする。空きメモリＷＯＲＫでは、６０１のＰＭ３の領域を解放して移してもその大きさを確保できるかどうかは分からないが、ＩＭ２はブロックと同じ大きさであるので、ＩＭ２には圧縮して記憶することができる。ＩＭ２に記憶したデータ分のメモリを６０２のＷＯＲＫから６０３のＰＭ３として確保した後、ＩＭ２に記憶したデータをコピーする処理を行う。
【００２０】
次に、ページメモリ印字プログラム１６５の処理を説明する。まず、ページメモリ１５１のＰＭ１をブロック伸張プログラム１６４を使ってＩＭ１に伸張して記憶する。記憶終了後、エンジンインターフェース１３０を介して印字エンジン１４０を起動し、印字エンジン１４０の動作のタイミングにあわせてＩＭ１のビットマップデータを転送して印字を行う。この印字エンジン１４０の動作のタイミングの待ち時間に次のページメモリ１５１のＰＭ２のデータをブロック伸張プログラム１６４を使ってＩＭ２に伸張して記憶する。この伸張処理をＩＭ１の転送終了時までに行い、転送終了後、ＩＭ２の転送を行う。これらの処理を順に繰り返すことによって、ＰＭＮまでの処理を行う。
【００２１】
ページメモリ印字プログラム１６５の処理と、図４の４０４から４０７の処理は、同時に実行することがないので、どちらの処理の場合でもイメージメモリ１５２を使用することができる。
【００２２】
最後に、ブロックの圧縮、伸張アルゴリズムとして２値のビットマップの場合のランレングス圧縮方法を例にとって、ブロック圧縮プログラム１６２とブロック伸張プログラム１６４の処理について説明する。この方法は、データ列を１ビットずつ順に読み込み、白（ビット値０）か黒（ビット値１）の連続したビットをまとめて符号化する方法である。ビットの値の変わるまで読み込んだビットの数をカウントすることにより連続ビットの値（０か１）と連続ビット数をカウントした値のペアで出力することによって符号化を行う。この符号化データを復号化するときには、符号化データを順に読み、連続ビットの値を連続ビットの数だけ繰り返し出力することにより行う。
【００２３】
【発明の効果】
以上説明したように、本発明の印字装置によれば、印字エンジンへ転送する際に一時的に合成データを記憶させるとともに、入力データを合成する際に伸張された印字データを記憶させることができるイメージメモリを備えているので、装置内のメモリ容量を増やすことなく、残メモリ容量が少なくなっても印字を行うことができる。
【００２４】
本発明の印字装置によれば、印字エンジンへ転送する際に一時的に合成データを記憶させるとともに、合成データを圧縮して元のブロックに記憶させる際に圧縮された合成データを一時的に記憶させるイメージメモリを備えているので、装置内のメモリ容量を増やすことなく、残メモリ容量が少なくなっても印字を行うことができる。
【００２５】
本発明の印字装置によれば、印字装置のイメージメモリに、更に入力データを合成する際に伸張された印字データを記憶させることができるので、装置内のメモリ容量を増やすことなく、残メモリ容量が少なくなっても印字を行うことができる。
【図面の簡単な説明】
【図１】  本発明の一実施形態である印字装置のブロック図である。
【図２】  本発明の一実施形態である印字プログラム１５１のフローチャート図である。
【図３】  本発明の一実施形態である印字装置に上位装置から入力される印字データの説明である。
【図４】  本発明の一実施形態である印字データ処理プログラム１６１のフローチャート図である。
【図５】  本発明の一実施形態である印字データ合成プログラム１６３のフローチャート図である。
【図６】  本発明の一実施形態であるＲＡＭ１５０のメモリマップである。
【符号の説明】
１５１ ページメモリ
１５２ イメージメモリ
１６１ 印字データ処理プログラム
１６２ ブロック圧縮プログラム
１６３ 印字データ合成プログラム
１６４ ブロック伸張プログラム
１６５ ページメモリ印字プログラム
【図１】
0003757297.tif 000002
【図２】
0003757297.tif 000003
【図３】
0003757297.tif 000004
【図４】
0003757297.tif 000005
【図５】
0003757297.tif 000006
【図６】
0003757297.tif 000007