(57)【要約】【課題】  外部装置から複数ラスタを含んだ印刷用の圧縮データを入力しても、その圧縮データを解凍する際に１ラスタの切れ目を認識することができる圧縮データ解凍回路、圧縮データ解凍方法及び印刷装置を提供する。【解決手段】  印刷装置が圧縮された印刷データを受信した際には、解凍回路３８がその圧縮データＤcompを解凍して解凍データＤdep コントローラ３９に出力する。このとき、複数ラスタからなる圧縮データＤcompを受信すると、コントローラ３９内の制御回路４２は、解凍データＤdep のデータ数をカウンタ４３でカウントする。制御回路４２はカウンタ４３のカウントによって１ラスタデータの切れ目を発見すると、次の１ラスタデータの格納先アドレスを指定し、その指定アドレス先に次の１ラスタデータを格納する。制御回路４２は、格納先アドレス指定後、内部リセットを発行してカウンタ４３をリセットし、続く次の１ラスタデータの切れ目を監視する。【選択図】      図４
2006264274.tif 000002
【特許請求の範囲】
【請求項１】
複数ラスタからなる圧縮データを外部から入力して解凍する解凍手段と、
前記解凍手段が解凍した解凍データのデータ数が、１ラスタ分のデータ数になったか否かを計測するカウンタと、
前記カウンタが１ラスタデータを計測する度に、次の１ラスタデータをメモリに格納する際の格納先アドレスを指定し、当該格納先アドレスへ前記次の１ラスタデータを格納させる指定手段と、
前記格納先アドレスの指定後に前記カウンタをリセットするリセット手段と
を備えたことを特徴とする圧縮データ解凍回路。
【請求項２】
少なくとも前記指定手段が前記格納先アドレスを指定している際、前記解凍手段による前記圧縮データの解凍を待機させる待機手段を備えたことを特徴とする請求項１に記載の圧縮データ解凍回路。
【請求項３】
前記解凍手段は、一対のヘッダ情報及び単位データが複数組存在するデータを前記圧縮データとして入力し、前記ヘッダ情報内の繰返出力回数を自身の第２カウンタにセットして、前記単位データを前記繰返出力回数だけ出力することで前記圧縮データを解凍し、
前記解凍手段は、前記リセットに基づき前記待機から前記解凍に復帰する際、待機前の前記第２カウンタがカウントアップしていなければ、該カウンタのカウントを継続しつつ、前記待機前に出力していた前記単位データの繰返出力をすることを特徴とする請求項２に記載の圧縮データ解凍回路。
【請求項４】
前記解凍手段は、一対のヘッダ情報及び単位データが複数組存在するデータを前記圧縮データとして入力し、前記ヘッダ情報内の繰返出力回数を自身の第２カウンタにセットして、前記単位データを前記繰返出力回数だけ出力することで前記圧縮データを解凍し、
前記解凍手段は、前記リセットに基づき前記待機から前記解凍に復帰する際、前記第２カウンタがカウントアップしていれば、前記ヘッダ情報の解析に移行することを特徴とする請求項２又は３に記載の圧縮データ解凍回路。
【請求項５】
前記指定手段は、前記カウンタが１ラスタデータを計測した際に、中央演算処理装置に前記格納先アドレスの指定と前記次の１ラスタデータの格納とを行わせることを特徴とする請求項１〜４のうちいずれか一項に記載の圧縮データ解凍回路。
【請求項６】
前記指定手段は、前記カウンタが１ラスタデータを計測した際に、自身で前記格納先アドレスの指定を行うことを特徴とする請求項１〜４のうちいずれか一項に記載の圧縮データ解凍回路。
【請求項７】
複数ラスタからなる圧縮データを解凍手段が外部から入力して解凍し、前記解凍手段が解凍した解凍データのデータ数をカウンタにより計測し、当該カウンタの計測により前記解凍データのデータ数が１ラスタ分のデータ数になった際、次の１ラスタデータをメモリに格納する際の格納先アドレスを指定手段が指定して前記次の１ラスタデータを当該格納先アドレスへ格納させ、前記格納先アドレスの指定後にリセット手段によって前記カウンタをリセットすることを特徴とする圧縮データ解凍方法。
【請求項８】
請求項１〜６のうちいずれか一項に記載の圧縮データ解凍回路と、
前記圧縮データ解凍回路が解凍した前記解凍データを基に、用紙への印刷処理を行う印刷処理装置と
を備えたことを特徴とする印刷装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部装置から受信した圧縮データを解凍する圧縮データ解凍回路、圧縮データ解凍方法及び印刷装置に関する。
【背景技術】
【０００２】
近年、ホストコンピュータから送信した印刷データを印刷装置で印刷出力する際、例えば特許文献１に示すように、印刷データを圧縮して印刷装置に送信する技術が用いられている。印刷データを圧縮して印刷装置に送信すれば、例えば印刷文字（画像）の高密度化、表現可能な色数の増加、印刷形態の多様化等によって、ホストコンピュータから送信される印刷データのデータ容量が多くなっても、印刷データとして送るデータ容量を少なく済ませることが可能となり、データ送信の送信時間の短時間化が図られる。
【０００３】
この種の圧縮方法としては、例えばランレングス法という圧縮技法がある。このランレングス法は、データ内に同じ値が並んでいる場合に、データをその値と個数とで符号化する技法である。例えば、図８（ａ）に示すように印刷データのデータ列が、例えば「１」が３２個続くデータの場合、ランレングス法を用いれば、印刷データは「１が３２個」とういうデータに置き換えられることになり、印刷装置に送信される印刷データのデータ容量が少なく済む。
【特許文献１】特開２０００−１６８１６５号（第４−６頁、第１図）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、ホストコンピュータからの印刷データを印刷装置で印刷出力する場合、１つのコマンドで１ラスタ分（１パス分）の圧縮データを送信する送信方式であれば、その印刷データを印刷装置で正常に印刷出力することが可能である。しかし、ホストコンピュータ内のドライバと、印刷装置の機種とが一致していない場合、印刷データが複数ラスタの圧縮データで印刷装置に送信されることがある。この際の印刷データは、図８（ａ）及び図８（ｂ）に示すように１ラスタの切れ目を意識しないデータとして印刷装置に出力される。従って、印刷装置は、この印刷データを受け付けても印刷データの１ラスタの切れ目が分らず、印刷処理を行えない問題があった。
【０００５】
本発明の目的は、外部装置から複数ラスタを含んだ印刷用の圧縮データを入力しても、その圧縮データを解凍する際に１ラスタの切れ目を認識することができる圧縮データ解凍回路、圧縮データ解凍方法及び印刷装置を提供することにある。
【課題を解決するための手段】
【０００６】
上記問題点を解決するために、本発明では、複数ラスタからなる圧縮データを外部から入力して解凍する解凍手段と、前記解凍手段が解凍した解凍データのデータ数が、１ラスタ分のデータ数になったか否かを計測するカウンタと、前記カウンタが１ラスタデータを計測する度に、次の１ラスタデータをメモリに格納する際の格納先アドレスを指定し、当該格納先アドレスへ前記次の１ラスタデータを格納させる指定手段と、前記格納先アドレスの指定後に前記カウンタをリセットするリセット手段とを備えたことを要旨とする。
【０００７】
この構成によれば、複数ラスタからなる圧縮データを圧縮データ解凍回路が入力すると、解凍手段がその圧縮データを解凍し、このときの解凍データのデータ数をカウンタが計測する。続いて、カウンタが１ラスタデータを計測すると、次の１ラスタデータをメモリに格納する際の格納先アドレスを指定手段が指定して、その格納先アドレスに次の１ラスタデータを格納させる。格納先アドレスの指定後、リセット手段がカウンタをリセットし、カウンタは次の１ラスタデータの計測を行う。そして、カウンタが１ラスタデータを計測する度に、上記した格納先アドレス指定及びカウンタリセットが繰返し行われる。
【０００８】
ところで、圧縮データが１つのコマンドで１ラスタデータ分出力されるのであれば、１ラスタデータの切れ目が分っているため、圧縮データを解凍する際に何ら問題はないが、場合によっては、複数ラスタからなる圧縮データが１ラスタの切れ目の分らない状態で出力されることがある。しかし、このような場合であっても、本発明に記載の解凍手法を用いれば、圧縮データ解凍時にその解凍データの１ラスタの切れ目を認識することが可能となる。よって、１ラスタの切れ目が分らない複数ラスタからなる圧縮データについても取り扱えるようになり、圧縮データをラスタ方向に正常な並びの解凍データとして解凍することが可能となる。
【０００９】
本発明では、少なくとも前記指定手段が前記格納先アドレスを指定している際、前記解凍手段による前記圧縮データの解凍を待機させる待機手段を備えたことを要旨とする。
この構成によれば、少なくとも指定手段が格納先アドレスを指定している際には、解凍手段による圧縮データの解凍が待機手段によって待機状態をとる。ところで、カウンタが１ラスタデータを計測した際には、例えば次の１ラスタデータをメモリに格納する際の格納先アドレスの指定や、カウンタのリセット等の処理が、本発明の新たな処理として追加される。しかし、これら処理が実施される最中においては解凍作業が待機（中断）するので、新たに加えた処理が解凍作業に影響を及ぼす可能性が低く抑えられ、解凍作業に不具合が発生し難い。
【００１０】
本発明では、前記解凍手段は、一対のヘッダ情報及び単位データが複数組存在するデータを前記圧縮データとして入力し、前記ヘッダ情報内の繰返出力回数を自身の第２カウンタにセットして、前記単位データを前記繰返出力回数だけ出力することで前記圧縮データを解凍し、前記解凍手段は、前記リセットに基づき前記待機から前記解凍に復帰する際、待機前の前記第２カウンタがカウントアップしていなければ、該カウンタのカウントを継続しつつ、前記待機前に出力していた前記単位データの繰返出力をすることを要旨とする。
【００１１】
この構成によれば、解凍手段はヘッダ情報内の繰返出力回数を読み出してそれを第２カウンタにセットし、ヘッダ情報と組をなす単位データをその繰返出力回数分だけ出力する処理を、対をなすヘッダ情報及び単位データごとに行って圧縮データの解凍を行う。この解凍作業時、解凍データに１ラスタの切れ目が発見されると、解凍手段による解凍作業は待機状態となるが、リセットが発生するとそれを基に解凍作業に復帰する。このとき、待機前の第２カウンタがカウントアップしていなければ、待機前に行っていた解凍作業が継続されるので、解凍中に待機処理を加えても、リセット発生後に第２カウンタのカウント値を見るという簡単な処理で、続きの解凍作業に復帰するか否かを判断することが可能となる。
【００１２】
本発明では、前記解凍手段は、一対のヘッダ情報及び単位データが複数組存在するデータを前記圧縮データとして入力し、前記ヘッダ情報内の繰返出力回数を自身の第２カウンタにセットして、前記単位データを前記繰返出力回数だけ出力することで前記圧縮データを解凍し、前記解凍手段は、前記リセットに基づき前記待機から前記解凍に復帰する際、前記第２カウンタがカウントアップしていれば、前記ヘッダ情報の解析に移行することを要旨とする。
【００１３】
この構成によれば、解凍手段はヘッダ情報内の繰返出力回数を読み出してそれを第２カウンタにセットし、ヘッダ情報と組をなす単位データをその繰返出力回数分だけ出力する処理を、対をなすヘッダ情報及び単位データごとに行って圧縮データの解凍を行う。この解凍作業時、解凍データに１ラスタの切れ目が発見されると、解凍手段による解凍作業は待機状態となるが、リセットが発生するとそれを基に解凍作業に復帰する。このとき、待機前の第２カウンタがカウントアップしていればヘッダ情報の解析に移行するので、リセット発生後に第２カウンタのカウント値を見るという簡単な処理で、次組のヘッダ解析に移行するか否かを判断することが可能となる。
【００１４】
本発明では、前記指定手段は、前記カウンタが１ラスタデータを計測した際に、中央演算処理装置に前記格納先アドレスの指定と前記次の１ラスタデータの格納とを行わせることを要旨とする。
【００１５】
この構成によれば、カウンタが１ラスタデータを計測した際には、格納先アドレスの指定と次の１ラスタデータの格納とが行われるが、これら処理は中央演算処理装置が行う。従って、圧縮データ解凍回路にこれら機能を盛り込む必要がないため、圧縮データ解凍回路の回路構成が簡素化する。
【００１６】
本発明では、前記指定手段は、前記カウンタが１ラスタデータを計測した際に、自身で前記格納先アドレスの指定を行うことを要旨とする。
この構成によれば、カウンタが１ラスタデータを計測した際には、格納先アドレスの指定と次の１ラスタデータの格納とが行われるが、これら処理は圧縮データ解凍回路自体が行う。従って、これら機能が圧縮データ解凍回路に組み込まれることになり、例えば中央処理演算装置にこれら機能を任せずに済み、中央処理演算装置にかかる負荷が軽減される。
【００１７】
本発明では、複数ラスタからなる圧縮データを解凍手段が外部から入力して解凍し、前記解凍手段が解凍した解凍データのデータ数をカウンタにより計測し、当該カウンタの計測により前記解凍データのデータ数が１ラスタ分のデータ数になった際、次の１ラスタデータをメモリに格納する際の格納先アドレスを指定手段が指定して前記次の１ラスタデータを当該格納先アドレスへ格納させ、前記格納先アドレスの指定後にリセット手段によって前記カウンタをリセットすることを要旨とする。
【００１８】
本発明では、前記請求項のいずれか一項に記載の圧縮データ解凍回路と、前記圧縮データ解凍回路が解凍した前記解凍データを基に、用紙への印刷処理を行う印刷処理装置とを備えた印刷装置であることを要旨とする。
【発明を実施するための最良の形態】
【００１９】
以下、本発明を具体化した圧縮データ解凍回路、圧縮データ解凍方法及び印刷装置の一実施形態を図１〜図６に従って説明する。
図１は、印刷装置１の概略構成を示すブロック図である。本例の印刷装置１は、圧電素子を用いて用紙にインク（液体）を吹付けることで印刷を行うインクジェット式印刷装置であり、ノズル（吐出孔）からインクを吐出する印刷ヘッド２と、用紙を紙送りする紙送り機構３とを備えている。印刷ヘッド２は、インクカートリッジ４を乗せたキャリッジ５の下面に取り付けられ、キャリッジモータ６を駆動源にキャリッジ５を主走査方向に往復動させることで往復動する。紙送り機構３は、例えば給紙ローラ、排紙ローラ及び従動ローラ等からなり、紙送りモータ７を駆動源に用紙を給紙、印刷時の用紙搬送及び排紙を行う。
【００２０】
印刷装置１は、ホストコンピュータ８から送信される印刷データＤprntを印刷出力可能であり、この場合には印刷ヘッド２を往復動させつつ、その間に用紙を所定量紙送りする動作を繰り返すことで印刷処理を行う。なお、印刷装置１は、ホストコンピュータ８から送信される印刷データＤprntを印刷出力する構成のみに限らず、例えばメモリーカード等のメディア９に書き込まれた画像データを印刷出力したり、スキャナ機能を組み込んでスキャンデータを印刷出力（即ち、ローカルコピー）したりする機能を備えていてもよい。なお、部材２〜７が印刷処理装置を構成する。
【００２１】
印刷装置１は、ＣＰＵ(Central Processing Unit) １０と、ＲＯＭ(Read-Only Memory)１１と、ＳＤＲＡＭ(Synchronous DRAM)１２と、ＡＳＩＣ(Application Specific Integrated Circuit )１３とを備えている。ＣＰＵ１０は、印刷装置１を統括制御するＩＣ（素子）であり、ＲＯＭ１１内の制御プログラムを基にＳＤＲＡＭ１２を作業領域として動作することで印刷装置１を作動させる。ＡＳＩＣ１３は、ＣＰＵ１０からの指令を基に作動し、印刷処理に関する各種動作を実施する。ＣＰＵ１０、ＲＯＭ１１、ＳＤＲＡＭ１２及びＡＳＩＣ１３は、制御信号、アドレス信号及びデータの伝送路となるシステムバス１４に接続されている。なお、ＣＰＵ１０が中央演算処理装置に相当し、ＳＤＲＡＭ１２がメモリに相当する。
【００２２】
ＡＳＩＣ１３は、ホストコンピュータ８やメディア９の間でデータ通信をする際のデータ入出口となる複数のインターフェース１５と、圧縮データである印刷データを解凍してパス分解するデータ展開・パス分解部１７と、解凍分解後の印刷データを基に印字データＳＩを生成して印刷ヘッド２に転送する印字制御部１８とを備えている。また、本例のインターフェース１５は、ＵＳＢ用である第１インターフェース１５ａ、ネットワーク用である第２インターフェース１５ｂ、メディア用である第３インターフェース１５ｃの３つがある。これらインターフェース１５ａ〜１５ｃは、システムバス１４に接続されている。同様に、データ展開・パス分解部１７及び印字制御部１８もシステムバス１４に接続されている。
【００２３】
ＡＳＩＣ１３は、ＣＰＵ１０以外の他のデバイス（インターフェース１５、データ展開・パス分解部１７、印字制御部１８）が、ＳＤＲＡＭ１２に直接アクセス可能な機能（ＤＭＡ機能）を備えている。このＤＭＡ機能はバスマスタ（ＤＭＡコントローラ）１９が備えており、このバスマスタ１９がＤＭＡユニットに相当する。バスマスタ１９は、ＣＰＵ１０、インターフェース１５、データ展開・パス分解部１７及び印字制御部１８のＤＭＡ転送を管理すべくシステムバス１４に接続されている。
【００２４】
例えば、第１インターフェース１５ａがＳＤＲＡＭ１２へアクセスする場合、第１インターフェース１５ａはバスマスタ１９にリクエスト信号REQ を出力する。バスマスタ１９は、このリクエスト信号REQ を受けるとこの信号出力先つまり第１インターフェース１５ａがＳＤＲＡＭ１２へアクセスが可能か否かを判断し、アクセスが可能であるならば第１インターフェース１５ａにアック信号ACK を返信する。第１インターフェース１５ａは、このアック信号ACK がアクティブである期間中、システムバス１４を占有した状態となり、ＳＤＲＡＭ１２に直接アクセスすることが可能である。なお、第２及び第３インターフェース１５ｂ，１５ｃ、データ展開・パス分解部１７及び印字制御部１８がＤＭＡ通信する場合も同様の動作をとる。
【００２５】
また、バスマスタ１９は、複数のデバイスから同時にリクエストを受けると、予め設定された優先順位に沿って、これらデバイス間のバスアクセスを調停する。即ち、バスマスタ１９は、複数のデバイスから同時にリクエスト信号REQ を入力すると、最も優先順位が高いデバイスにのみアック信号ACK を返信する。そして、リクエストを出したデバイスのうち最も優先順位の高いデバイスがアック信号ACK を入力することから、このデバイスがアック信号ACK のアクティブ期間中、システムバス１４を占有してＳＤＲＡＭ１２に直接アクセスする。
【００２６】
印刷装置１は、キャリッジ５つまり印刷ヘッド２の移動速度を検出するリニアエンコーダ２０を備えている。リニアエンコーダ２０は、プリンタ内面の側壁に架設された長手方向に延びる半透明樹脂製の被検出用テープ２０ａと、キャリッジ５の背面に固着された検出センサ２０ｂとからなる。被検出用テープ２０ａには長手方向に沿って複数のスリットが一定ピッチで形成されている。検出センサ２０ｂは、キャリッジ５が移動した際にスリットを検出し、キャリッジ速度に応じたパルス信号Ｓｔを出力する。
【００２７】
ＡＳＩＣ１３は、リニアエンコーダ２０のパルス信号Ｓｔを基に基本印字周期Ｔａを生成する印字周期生成部２１と、この基本印字周期Ｔａを基に印刷シーケンスに合わせた印字周期ＴPTS を生成する印字シーケンス制御部（シーケンサ）２２と、その印字周期ＴPTS を基に駆動信号COM を生成する駆動波生成部２３とを備えている。印字周期ＴPTS （基本印字周期Ｔａ）は、印刷ヘッド２の移動速度に応じて決まる周期であり、圧電素子の駆動周期に相当する。また、ＡＳＩＣ１３は、印刷データＤprntを基にキャリッジモータ６を駆動制御するキャリッジモータ制御部２４と、印刷データＤprntを基に紙送りモータ７を駆動制御する紙送りモータ制御部２５とを備えている。
【００２８】
図２は、印刷データＤprntを印刷出力する際のフローを含んだ印刷装置１のブロック図である。ホストコンピュータ８から印刷データＤprntが印刷装置１に送信されると、印刷装置１はその印刷データＤprntをインターフェース１５で受信する。インターフェース１５は、印刷データＤprntを所定の伝送単位で順次受信し、その受信した印刷データＤprntをＳＤＲＡＭにＤＭＡ転送する。
【００２９】
データ展開・パス分解部１７は、ＳＤＲＡＭ１２に格納された印刷データＤprntをＤＭＡ転送によって読み込み、ランレングス方式等によって圧縮された印刷データＤprntを解凍する。データ解凍後、データ展開・パス分解部１７は、解凍後のデータをコマンド解析し、それを１パスデータサイズに分解してラスタ方向並びのデータ（即ち、ラスタ方向データ）に変換する。なお、このラスタ方向データは、高印刷画質を目的としてノズル列のノズルピッチ間に複数ドットを打つような並びのデータ、つまりマイクロウィーブ処理が施されたデータである。データ展開・パス分解部１７は、１パス分のラスタ方向データを生成すると同データをＳＤＲＡＭ１２に逐次ＤＭＡ転送する。ラスタ方向データをＳＤＲＡＭ１２にＤＭＡ転送して書き込む処理は、各色（ＣＭＹＫ）毎に行われる。
【００３０】
続いて、ＣＰＵ１０は、ＳＤＲＡＭ１２内のラスタ方向データを、ラスタ方向において所定ビット分、かつ所定段おきに読み出して、その読出データを内部のレジスタ１０ａに取り込む。例えば、ラスタ方向データがラスタ方向において３２ビットで３段おきに読み出される場合、ＣＰＵ１０のレジスタ１０ａには、図内の（ａ）に示すように１段、５段、９段、…の読出データが３２ビットずつ書き込まれる。ここで、ラスタ方向データが３段おきに読み出されるマイクロウィーブ処理は、副走査方向に隣接するノズルで印刷した２本のラスタライン間に、３本のラスタラインが印刷される処理となる。
【００３１】
ＣＰＵ１０は、レジスタ１０ａの読出データのうち各段の最初の単位データ、つまり縦方向に位置する最も左側１セル分のデータを、図内の（ｂ）に示すようにレジスタ１０ｂに書き込み、それを図内の（ｃ）に示すようにレジスタ１０ｃに書き込む。即ち、ＣＰＵ１０は、レジスタ１０ａに書き込まれた縦方向の読出データを横方向の読出データとしてマッピングすることによって、データ並びを縦方向と横方向とで変換する。ＣＰＵ１０は、この書込み処理を縦方向に位置する各々１セル分のデータについて行い、レジスタ１０ｃがフルになった時点でこのノズル列対データをＳＤＲＡＭ１２に書き込む。
【００３２】
印字制御部１８は、ノズル列対データを書込可能な一対のバッファ２６ａ，２６ｂと、一対のバッファ２６ａ，２６ｂのうち一方を指定してノズル列対データを書き込む書込先管理部２７と、一対のバッファ２６ａ，２７ｂのうち一方を選択して印刷ヘッド２に接続するセレクタ２８とを備えている。バッファ２６ａ，２６ｂは、高さ方向（図２の上下方向）がヘッド高さ分のビット幅を有し、幅方向（図２の左右方向）がデータ転送幅（本例は３２ビット）のビット幅を有している。この一対のバッファ２６ａ，２６ｂは、各色（ＣＭＹＫ）毎に配設されている。
【００３３】
印字制御部１８は、ＳＤＲＡＭ１２に格納されたノズル列対データをＤＭＡ転送によって読み込む。このとき、書込先管理部２７は、一対のバッファ２６ａ，２６ｂのうち一方（例えばバッファ２６ａ）にノズル列対データを書き込み、それがバッファフルになると、駆動波生成部２３から入力するデータ転送開始信号DTS を基に、そのデータを印字データSIとしてセレクタ２８を介して印刷ヘッド２に出力する。また、書込先管理部２７は、印刷ヘッド２に印字データSIを出力する際、バッファ２６ａ，２６ｂのうち空状態の方（例えばバッファ２６ｂ）に次のノズル列対データの書き込みを開始し、一方のバッファ２６ａからの印字データ出力と、他方のバッファ２６ｂへのデータ書き込みとを同時に行う。そして、書込先管理部２７は、一対のバッファ２６ａ，２６ｂに対して印字データ出力とデータ書き込みとを交互に行う。
【００３４】
印刷ヘッド２は、印字制御部１８からシリアル転送される印字データSIをシフトレジスタ２９で入力するとともに、データラッチ（ラッチ回路）３０でラッチする。印刷ヘッド２は、ラッチした印字データSIをレベルシフタ３１で所定電圧まで昇圧し、この昇圧された印字データSIを各アナログスイッチ３２，３２，…に各々印加する。このアナログスイッチ３２は、印刷ヘッド２の各ノズルごとに配設され、入力側には駆動信号COM が印加されるとともに、出力側には圧電素子３３が各々接続されている。
【００３５】
印字データSIは、アナログスイッチ３２の動作を制御する。例えば、アナログスイッチ３２に加わる印字データSIが「１」である期間中は、駆動信号COM が圧電素子３３に印加され、この信号に応じて圧電素子３３は伸縮を行う。その結果、圧力発生室のインクが加圧されて、ノズルからインクが吐出される。一方、アナログスイッチ３２に加わる印字データが「０」である期間中は、圧電素子３３への駆動信号COM の供給が遮断されるので、インクの吐出が行われない。    
【００３６】
図３は、印刷データＤprntのデータ構造を示すイメージ図である。印刷データＤprntは、通信時間（転送時間）の短縮化や使用記憶領域の節約のために、元データを所定量のデータサイズに圧縮した圧縮データＤcompとして、ホストコンピュータ８から印刷装置１に出力される。圧縮データＤcompは先頭にコマンド３４を有し、このコマンド３４の後にラスタデータ３５が続くデータ構造をなしている。
【００３７】
ここで、ホストコンピュータ８の印刷ドライバが印刷装置１の機種と異なる場合、１つのコマンド３４に対して複数ラスタを含んだ圧縮データＤcompが、ホストコンピュータ８から印刷装置１に出力されることがある。即ち、用紙横方向の１パス分データ（図８（ｂ）参照）が１ラスタデータＤras に相当し、この１ラスタデータＤras がラスタデータ３５の中に複数列存在するデータが、本例の圧縮データＤcompに相当する。この圧縮データＤcompは解凍した際に、その解凍データの１ラスタの切れ目が分らない状態で出力されるため、ラスタ方向に正常な並びで解凍するには、１ラスタの切れ目を認識する必要がある。
【００３８】
コマンド３４には、その後に続くラスタデータ３５をどのように処理するかを示す命令や、解凍後のラスタデータ３５のデータ量（即ち、ラスタサイズ）Ｋがどれだけであるかを示す情報が書き込まれている。ラスタサイズＫは、１ラスタのラスタサイズと、ラスタデータ３５内のラスタ数とを乗算した値（ラスタサイズ×ラスタ数）に相当する。ラスタデータ３５は、印刷文字や印刷画像を複数の点（ドット）で表現したビットマップデータ（印刷用イメージデータ）である。
【００３９】
本例の圧縮法は、同一データの連続を符号化するランレングス法（Run-Length法）が用いられている。このランレングス法は、例えば「Ａ」というデータが５０回繰返される場合、「Ａ」を５０回並べたデータとして扱うのではなく、「Ａを５０回書く」というデータとして処理する方式である。ランレングス法を用いた際の圧縮データＤcompは、同図に示すように一対のヘッダ３６及び１バイトデータ３７を複数組有するデータ構造をなしている。なお、ヘッダ３６がヘッダ情報に相当し、１バイトデータが単位データに相当する。
【００４０】
ヘッダ３６には、対をなす１バイトデータ３７を何回出力するかに相当する繰返出力回数Ｍが書き込まれている。１バイトデータ３７は、例えば印刷画像の１ドットが２ビットで表現される場合には４ドット分のデータに相当し、例えば印刷画像の１ドットが１ビットで表現される場合には８ドット分のデータに相当する。従って、例えば圧縮データＤcompが、ヘッダ３６に「４回」、１バイトデータ３７が「００１００１００」と書き込まれたデータである場合、この圧縮データＤcompを解凍した際には、「００１００１００」を４回出力したデータ群が解凍データＤdep として出力される。
【００４１】
図４は、圧縮データＤcompを解凍するデータ展開・パス分解部１７の詳細を示すブロック図である。データ展開・パス分解部１７は、圧縮データＤcompを解凍する解凍回路３８と、この解凍回路３８を制御するコントローラ３９とを備えている。ホストコンピュータ８から送信された圧縮データＤcompをデータ展開・パス分解部１７が入力すると、コントローラ３９は解凍回路３８に圧縮データＤcompを解凍する旨の制御信号（制御指令）を出力する。なお、解凍回路３８が解凍手段に相当する。
【００４２】
解凍回路３８は、１バイトデータ３７を格納可能なデータ格納レジスタ４０と、データ格納レジスタ４０に格納された１バイトデータ３７の出力回数をカウントするループカウンタ４１とを備えている。解凍回路３８は、対をなすヘッダ３６及び１バイトデータ３７を入力すると、その１バイトデータ３７をデータ格納レジスタ４０に格納し、ヘッダ３６内の繰返出力回数Ｍをループカウンタ４１にセットする。カウンタセット後、解凍回路３８はループカウンタ４１にセットされた繰返出力回数Ｍ分だけ、１バイトデータ３７を出力し、この処理を一対のヘッダ３６及び１バイトデータ３７を入力する度に行うことで圧縮データＤcompを解凍して、解凍データＤdep をコントローラ３９に出力する。なお、ループカウンタ４１が第２カウンタに相当する。
【００４３】
コントローラ３９は、解凍処理時に各種制御信号を出力する制御回路４２と、解凍回路３８から出力される解凍データＤdep のデータ数を計測するデータ数カウンタ４３とを備えている。制御回路４２は、解凍回路３８が解凍した解凍データＤdep を入力し、この解凍データＤdep にNullデータ挿入等の加工を施して出力データＤout を生成し、バスマスタ１９を介して出力データＤout をＳＤＲＡＭ１２にＤＭＡ転送する。即ち、制御回路４２は、リクエストに応答したバスマスタ１９からアック信号ACK を受けている期間中においてシステムバス１４を占有し、生成した出力データＤout をＳＤＲＡＭ１２に格納する。なお、制御回路４２が指定手段、リセット手段及び待機手段を構成する。
【００４４】
解凍回路３８は、複数ラスタからなる圧縮データＤcompを入力すると、制御信号としてその旨の通知を制御回路４２に出力する。制御回路４２はこの通知を入力すると、解凍回路３８から解凍データＤdep を入力する際に解凍データＤdep のデータ数をデータ数カウンタ４３でカウントする。制御回路４２は、データ数カウンタ４３のカウント値が１ラスタ分のラスタサイズになると、ラスタデータ３５が１ラスタの切れ目にあると認識する。制御回路４２は、解凍データＤdep の１ラスタの切れ目を認識すると、次の１ラスタデータＤras の格納先アドレスを新たに指定するために、ＣＰＵ１０に割込指令を出力する。
【００４５】
ＣＰＵ１０は、１ラスタデータＤras の格納先アドレスをバスマスタ１９に指示して、バスマスタ１９に１ラスタデータＤras の書き込み処理を行わせる。即ち、ＣＰＵ１０はコントローラ３９から割込指令を入力した場合、バスマスタ１９による１ラスタ分の書き込みが終了した後に、次の行に格納先アドレスを進める。例えば、前列の１ラスタデータＤras がＸ番地のアドレスに書き込まれたとすると、その書込作業が終了した後に、ＣＰＵ１０は割込指令を基に例えば（Ｘ＋１）番地に書き込むようにバスマスタ１９に指令を出力し、バスマスタ１９が（Ｘ＋１）番地に次列の１ラスタデータＤras を書き込む。
【００４６】
制御回路４２は、ＣＰＵ１０の割込み処理によって１ラスタデータＤras の格納先アドレスの指定が完了すると、内部リセットを発行してデータ数カウンタ４３をリセットする。リセット完了後、制御回路４２はデータ数カウンタ４３による解凍データＤdep のデータ数カウントを再度実施し、データ数カウンタ４３のカウント値が１ラスタ分のラスタサイズになると、同様の手順で次のラスタデータの格納先アドレスを新たに指定する。そして、制御回路４２は、解凍処理が完了するまでこの処理を繰返し行い、バスマスタ１９を介して出力データＤout をＳＤＲＡＭ１２にＤＭＡ転送する。
【００４７】
次に、本例の印刷装置１の作用を図５に示す状態遷移図に従って説明する。
印刷装置１がホストコンピュータ８から印刷データＤprnt（即ち、圧縮データＤcomp）を受信し、解凍回路３８が一組目のヘッダ３６及び１バイトデータ３７を入力すると、解凍回路３８のステータスがアイドル状態からヘッダ解析状態に移行し、解凍回路３８はその一組目のヘッダ３６を解析する。このとき、解凍回路３８はヘッダ３６に書き込まれた繰返出力回数Ｍをループカウンタ４１にセットし、そのヘッダ３６と対をなす１バイトデータ３７をデータ格納レジスタ４０に格納する。
【００４８】
続いて、解凍回路３８のステータスがヘッダ解析状態から圧縮データ解凍状態に移行する。このとき、解凍回路３８は、データ格納レジスタ４０に格納した１バイトデータ３７を１回出力する度にループカウンタ４１のカウント値をデクリメントし、ループカウンタ４１にセットした繰返出力回数Ｍ分だけ１バイトデータ３７のデータ出力を行う。解凍回路３８は、対をなすヘッダ３６及び１バイトデータ３７を入力する度にこの処理を行って、解凍データＤdep をコントローラ３９に出力する。
【００４９】
１バイトデータ３７が繰返出力回数Ｍ分だけ出力されてループカウンタ４１がカウントアップ（カウント値が「０」となる）すると、解凍回路３８のステータスが圧縮データ解凍状態からヘッダ解析状態に移行する。このとき、解凍回路３８は次組の１バイトデータ３７をデータ格納レジスタ４０に格納し、次組のヘッダ３６を解析してそのヘッダ３６内の繰返出力回数Ｍをループカウンタ４１にセットする。解凍回路３８は、前組の場合と同様に、ループカウンタ４１にセットした繰返出力回数Ｍ分だけ１バイトデータ３７のデータ出力を行い、新たな組のヘッダ３６及び１バイトデータ３７を入力する度に以上の処理を繰返し行う。
【００５０】
コントローラ３９は、解凍データＤdep 内のNullデータでない領域を検索する機能（即ち、ダーティエリア検索機能）を備えている。このダーティエリア検索機能は、解凍データＤdep のうちNullデータでない範囲の開始及び終了をデータ数カウンタ４３でカウントし、そのカウント値を値を保持することによって範囲指定を行い、データ出力時においてその範囲にNullデータを挿入する機能である。従って、コントローラ３９はダーティエリア検索機能により解凍データＤdep 内のNullデータのない領域を検索し、そこのNullデータを挿入したデータを出力データＤout としてバスマスタ１９に逐次出力する。
【００５１】
データ解凍時、コントローラ３９内の制御回路４２は、解凍データＤdep のデータ数をデータ数カウンタ４３でカウントしており、データ数カウンタ４３のカウント値がラスタサイズになると、解凍データＤdep のデータ数が１ラスタ分に到達したと判断する。制御回路４２は、このように解凍データＤdep の１ラスタの切れ目を発見すると、解凍回路３８の解凍処理を一時待機させる。従って、解凍回路３８のステータスが圧縮データ解凍状態から待機状態に移行し、解凍回路３８は解凍処理を一時中断する。このとき、解凍回路３８内のループカウンタ４１のカウント値は保持された状態を保つ。
【００５２】
制御回路４２は、解凍データＤdep の１ラスタの切れ目を発見するとＣＰＵ１０に割込指令を出力して、次の１ラスタデータＤras2（図６参照）の格納先アドレスの指定をＣＰＵ１０に行わせる。従って、ＣＰＵ１０は次の１ラスタデータＤras2の格納先アドレスを次の行に進め、図６に示すように次の１ラスタデータＤras2はＳＤＲＡＭ１２に格納される際、前列の１ラスタデータＤras1の下の行のアドレスに書き込まれる。
【００５３】
制御回路４２は、ＣＰＵ１０による格納先アドレス指定が終了すると内部リセットを発生し、この内部リセットによってデータ数カウンタ４３をリセットするとともに、ダーティエリア検索機能で保持した保持値もリセットする。従って、データ数カウンタ４３がリセットされるため、次の１ラスタデータＤras2のデータ数をカウントすることが可能となり、更には次の１ラスタデータＤras2にダーティ検索機能を働かせて、Nullデータのない範囲を検索する処理も同様に実施可能となる。
【００５４】
データ数カウンタ４３がリセットされた際、解凍回路３８は自身のループカウンタ４１のカウント値を確認する。このとき、解凍回路３８はループカウンタ４１がカウントアップしていない状態であれば、待機前に行っていた解凍処理を継続すべく、ステータスが待機状態から圧縮データ解凍状態に復帰する。従って、解凍回路３８は、ループカウンタ４１がカウントアップするまで、データ格納レジスタ４０に格納した１バイトデータ３７の出力を行い、残りの解凍処理を継続して実施する。
【００５５】
一方、解凍回路３８は、カウンタリセット時に自身のループカウンタ４１のカウント値を確認したとき、ループカウンタ４１がカウントアップした状態であれば、次組のヘッダ３６の解析を行うために、ステータスが待機状態からヘッダ解析状態に移行する。従って、解凍回路３８は、次組のヘッダ３６及び１バイトデータ３７について、同組の１バイトデータ３７をデータ格納レジスタ４０に格納し、ヘッダ３６から読み取った繰返出力回数Ｍをループカウンタ４１にセットして解凍処理を引き続き行う。
【００５６】
制御回路４２は、解凍データＤdep の１ラスタの切れ目を発見する度にＣＰＵ１０に割込指令を出力して、次の１ラスタデータＤras の格納先アドレスの指定をＣＰＵ１０に行わせる。ＣＰＵ１０はこの割込指令を入力すると、図６に示すように１ラスタデータＤras 単位で格納先アドレスが次の行に移るようにアドレスを指定する。よって、各１ラスタデータＤras は改行された状態、つまり各１ラスタデータＤras ごとに切り分けられた状態でＳＤＲＡＭ１２に順次格納される。なお、図６に示す例では、各１ラスタデータＤras の前後にNullデータが挿入されている。
【００５７】
ところで、印刷データＤprntは、全てが圧縮データＤcompとして送信されるわけではなく、圧縮効率の関係から、非圧縮データＤx で送信される場合がある。これは、印刷データＤprntに同一符号の連続がないデータ列が続く場合があり、このデータ列に圧縮をかけると逆にデータ量が多くなるため、このデータ列は非圧縮データＤx で出力することでデータ転送効率を確保するためである。この非圧縮データＤx についても、図５に示すように解凍回路３８のステータスがヘッダ解析状態、非圧縮データ出力状態及び待機状態の間で遷移する。
【００５８】
以上によれば、複数ラスタからなる圧縮データＤcompの受信時、データ数カウンタ４３で１ラスタ分のデータ数をカウントし、１ラスタデータＤras が識別される度に次の１ラスタデータＤras の格納先アドレスを指定し、アドレス指定後、データ数カウンタ４３をリセットして次の１ラスタデータＤras を再カウントする。従って、複数ラスタからなる圧縮データＤcompを印刷装置１が受信したとしても、その解凍データＤdep の１ラスタデータＤras の切れ目を認識することが可能となる。よって、１ラスタの切れ目が分らない複数ラスタからなる圧縮データＤcompについても取り扱えるようになり、圧縮データＤcompをラスタ方向に正常な並びで解凍することが可能となる。
【００５９】
また、本例においては複数ラスタからなる圧縮データＤcompであっても、その解凍データＤdep に関して１ラスタデータＤras の切れ目が分かるため、圧縮データＤcompの何処から何処までが１ラスタデータＤras であるかが認識可能となる。従って、ダーティエリア検索機能を用いて、圧縮データＤcompの中でNullデータのない範囲を検索する処理も行える。そして、内部リセットが発生した際にNull詰め動作を開始し、その後にラスタデータ展開処理を続けるように処理拡張することで、１ラスタデータＤras ごとにNullデータを挿入することが可能となる。
【００６０】
本実施形態の構成によれば、以下に記載の効果を得ることができる。
（１）複数ラスタからなる圧縮データＤcompがホストコンピュータ８から印刷装置１に送信されても、その解凍データＤdep の１ラスタの切れ目を認識することができる。従って、１ラスタの切れ目が分らない状態で印刷データＤprntが送信されても、その圧縮データＤcompをラスタ方向に正常な並びで解凍することができる。
【００６１】
（２）圧縮データＤcompの解凍時、解凍データＤdep に１ラスタの切れ目が発見された際には、解凍回路３８による解凍作業を一時中断する。従って、本例のように１ラスタの切れ目を認識する処理に伴って、ＣＰＵ１０の割込み処理や内部リセット発生処理等の各種処理を新たに加えたとしても、これら処理が解凍作業に影響を及ぼす可能性が低く抑えられることになり、解凍作業に不具合が生じ難い。
【００６２】
（３）内部リセット処理から解凍作業に復帰する際、解凍回路３８内のループカウンタ４１のカウント値を参照し、ループカウンタ４１がカウントアップしていなければ中断前の解凍作業を継続して行い、ループカウンタ４１がカウントアップしていれば次組のヘッダ解析を行う。従って、ループカウンタ４１のカウント値を参照するという比較的簡単な処理で、解凍回路３８の解凍作業の続きを行うのか、若しくは新たなヘッダ解析に移行するかを判断することができる。
【００６３】
（４）圧縮データＤcompの解凍時、その解凍データＤdep で１ラスタの切れ目を発見すると、次の１ラスタデータＤras の格納先アドレスが指定されるが、このアドレス指定はＣＰＵ１０が実施する。従って、この機能をコントローラ３９に盛り込む必要がないため、コントローラ３９の構造を簡素化することができる。
【００６４】
（５）複数ラスタを含んだ圧縮データＤcompを印刷装置１が受信しても、本例においては１ラスタの切れ目が分るので、複数ラスタからなる圧縮データＤcompであってもダーティエリア検索を実行できる。このように、ダーティエリア検索が実行できれば、各ラスタデータごとにNullデータを挿入することもできる。
【００６５】
（６）電源を再投入してシステムリセットする操作を行えば、解凍回路３８及びコントローラ３９を初期化することができる。
なお、本実施形態は前記構成に限定されず、以下の態様に変更してもよい。
【００６６】
（変形例１）１ラスタデータＤras の切れ目を発見した際、次の１ラスタデータＤras の格納先アドレスを指定するが、この指定処理はＣＰＵ１０が行うことに限定されない。例えば、図７に示すように、次の１ラスタデータＤras の格納先アドレスを指定可能な格納先アドレス指定回路４６をコントローラ３９に追加することで、格納先アドレス機能をコントローラ３９に盛り込み、コントローラ３９がメモリコントローラ４７を介して出力データＤout をＳＤＲＡＭ１２に格納する。この場合、ＣＰＵ１０に格納先アドレス指定機能を設けずに済み、ＣＰＵ１０の処理負担を軽減することができる。
【００６７】
（変形例２）ヘッダ３６と組をなすデータは１バイトデータ３７に限らず、そのバイト数（ビット数）は適宜変更してもよい。例えば、各ヘッダ３６に続くデータは１６ビットデータでもよい。
【００６８】
（変形例３）バスマスタ１９は、ＡＳＩＣ１３でのみ実現されることに限らず、ＣＰＵ１０及びＡＳＩＣ１３の協同によって成り立つものでもよい。
（変形例４）印刷装置１は、インクジェット式プリンタに限らず、例えばドットインパクト式、サーマル式、熱転写式、レーザ式等でもよい。
【００６９】
（変形例５）印刷装置１は、本例のようなプリンタに限らず、液晶ディスプレイ等のカラーフィルタ製造装置、有機ＥＬディスプレイやＦＥＤ（面発光ディスプレイ）等の電極形成装置、バイオチップ製造用の生体有機物を噴射する噴射装置、精密ピペット用の製造装置でもよい。
【００７０】
次に、上記実施形態及び別例から把握できる技術的思想について以下に追記する。
（１）請求項７において、前記カウンタが１ラスタデータを計測した際に、前記解凍手段による前記圧縮データの解凍を待機手段によって待機させる。
【図面の簡単な説明】
【００７１】
【図１】一実施形態における印刷装置の概略構成を示すブロック図。
【図２】印刷データを印刷出力する際のフローを含んだ印刷装置のブロック図。
【図３】印刷データのデータ構造を示すイメージ図。
【図４】圧縮データを解凍するデータ展開・パス分解部の詳細を示すブロック図。
【図５】圧縮データを解凍する際の印刷装置の状態遷移図。
【図６】圧縮データを解凍した際のデータイメージを示すイメージ図。
【図７】別例におけるデータ展開・パス分解部の詳細を示すブロック図。
【図８】（ａ）は従来における印刷データのデータ構造を示すイメージ図、（ｂ）は用紙の印刷状態を示す用紙の平面図。
【符号の説明】
【００７２】
１…印刷装置、１０…中央演算処理装置としてのＣＰＵ、１２…メモリとしてのＳＤＲＡＭ、３６…ヘッダ情報としてのヘッダ、３７…単位データとしての１バイトデータ、３８…解凍手段としての解凍回路、４１…第２カウンタとしてのループカウンタ、４２…指定手段、リセット手段及び待機手段を構成する制御回路、４３…カウンタとしてのデータ数カウンタ、Ｄcomp…圧縮データ、Ｄdep …解凍データ、Ｄras （Ｄras1〜Ｄras3）…１ラスタデータ、Ｍ…繰返出力回数。
【図１】
2006264274.tif 000003
【図２】
2006264274.tif 000004
【図３】
2006264274.tif 000005
【図４】
2006264274.tif 000006
【図５】
2006264274.tif 000007
【図６】
2006264274.tif 000008
【図７】
2006264274.tif 000009
【図８】
2006264274.tif 000010