(57)【要約】【課題】コンピュータ側において画像データを高速でかつ高い圧縮率で圧縮することができ、プリンタ側においては小規模なハードウェアで高速に復元すること。【解決手段】  コンピュータ１１とプリンタ１３とを有し、ディザパターンＤＰを用いて擬似階調化された画像データＤ１をプリンタ１３によってプリントするためのシステムであって、コンピュータ１１は、画像データを所定の領域ごとに区画し、各領域内における画像データのドットの配列パターンが擬似階調化に用いられたディザパターンＤＰと一致するか否かを判別し、一致する場合にその領域における画像データの濃度に関する代表値ａを求め、求めた代表値ａに関連した圧縮データＤ２をプリンタ１３に送り、プリンタ１３は、コンピュータ１１から送られてきた圧縮データＤ２から各領域の代表値ａを取得し、取得した代表値ａとディザパターンＤＰとを比較してドットパターンを再現する。【選択図】図２４
2006100977.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータとプリンタとを有し、ディザパターンを用いて擬似階調化された画像データを前記プリンタによってプリントするためのシステムであって、
前記コンピュータは、前記画像データを所定の領域ごとに区画し、各領域内における画像データのドットの配列パターンが擬似階調化に用いられたディザパターンと一致するか否かを判別し、一致する場合にその領域における画像データの濃度に関する代表値を求め、求めた代表値に関連するデータを前記プリンタに送り、
前記プリンタは、コンピュータから送られてきたデータから各領域の代表値を取得し、取得した代表値と前記ディザパターンとを比較してドットパターンを再現する、
ことを特徴とするプリントシステム。
【請求項２】
前記コンピュータは、前記代表値として、前記領域内における画像データの各画素の濃度値と前記ディザパターンの各画素の濃度値とをそれぞれ比較して前記画像データの各画素の濃度値が小さい場合に予め用意されたパターン領域にドットを打った場合に、前記領域内において打たれたドットに対応する前記ディザパターンの画素の濃度値の最小値Ｊと打たれなかったドットに対応する前記ディザパターンの画素の濃度値の最大値Ｋとの間で    Ｊ≧ａ≧Ｋ
の条件を満たす値ａを求める、
請求項１記載のプリントシステム。
【請求項３】
前記コンピュータは、前記代表値として、前記領域内における画像データの各画素の濃度値と前記ディザパターンの各画素の濃度値とをそれぞれ比較して前記画像データの各画素の濃度値が小さい場合に予め用意されたパターン領域にドットを打った場合に、前記領域内において打たれたまたは打たれなかったドットの個数を求める、
請求項１記載のプリントシステム。
【請求項４】
前記コンピュータは、各領域において他の領域との代表値の差分を求め、求めた差分を符号化して前記プリンタに送るべきデータとする、
請求項１ないし３のいずれかに記載のプリントシステム。
【請求項５】
前記コンピュータは、前記領域内における画像データのドットの配列パターンが擬似階調化に用いられたディザパターンと一致しない場合に、当該領域をさらに複数の小領域に区画し、各小領域内における画像データのドットの配列パターンが前記ディザパターンと一致するか否かを判別し、これによって一致する場合に、前記小領域における代表値として、前記領域内において打たれたまたは打たれなかったドットの個数を求める、
請求項１ないし４のいずれかに記載のプリントシステム。
【請求項６】
前記コンピュータは、前記領域内または前記小領域内における画像データのドットの配列パターンが擬似階調化に用いられたディザパターンと一致しない場合に、当該領域内または前記小領域内において打たれたまたは打たれなかったドットの配列を符号化して前記プリンタに送るべきデータとする、
請求項５記載のプリントシステム。
【請求項７】
前記コンピュータおよび前記プリンタには、それぞれ、前記ディザパターンが設けられている、
請求項１ないし６のいずれかに記載のプリントシステム。
【請求項８】
ディザパターンを用いて擬似階調化された画像データを所定の領域ごとに区画し、各領域内における画像データのドットの配列パターンが前記ディザパターンと一致する場合にその領域における画像データの濃度に関する代表値をコンピュータが圧縮データとして求めて送ってきた当該圧縮データを受信し且つ復元して画像をプリントするプリンタであって、
前記プリンタは、前記コンピュータに設けられたディザパターンと同じディザパターンを保持しており、前記コンピュータから受信した前記代表値と前記ディザパターンとを比較してドットパターンを生成し、再現したドットパターンを展開することによって圧縮前の擬似階調化された画像データを再現する、
ことを特徴とするプリンタ。
【請求項９】
前記ドットパターンを、前記コンピュータから受信することによって保持する、
請求項８記載のプリンタ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディザパターンを用いて擬似階調化された画像データをコンピュータで圧縮して送信し、それをプリンタで受信して復元してプリントアウトするプリンタシステム、およびプリンタに関する。
【背景技術】
【０００２】
一般に、コンピュータとプリンタなどから構成されるプリントシステムが用いられている。このようなプリントシステムにおいては、プリントすべき画像データに対して、擬似階調化などの画像処理をコンピュータ側で行い、プリンタ側ではコンピュータから送信される画像データに対して特別な処理を行うことなく、そのまま出力して用紙にプリントするという方式がある。
【０００３】
従来より、この方式に使用されるプリンタとしてラスタプリンタが知られている。ラスタプリンタは、プリンタ側で特別な画像処理を行わないため、小規模なハードウェアを用いて安価に実現できる。しかし、その反面、そのまま用紙にプリント可能な画像データをプリンタに送信するため、送信するデータ量が大きくなってしまうという欠点がある。また、画像データに文字データを含む場合に、文字を鮮明にプリントするために解像度を上げなければならず、その結果、プリンタに送信するデータ量がさらに大きくなってしまう。そのため、コンピュータからプリンタへの画像データの送信に多くの時間を要することとなる。
【０００４】
この問題を解消するために、コンピュータ側において画像データを圧縮する必要がある。しかし、圧縮のための処理が複雑であった場合には、圧縮処理自体に時間を要してしまい、プリンタ側においても展開処理に時間を要したりそのためのハードウェアの規模が大きくなって高価となる。
【０００５】
したがって、安価なプリンタの使用を可能とし、全体として処理を高速に行えるプリントシステムを実現するために、圧縮時の処理が軽く、小規模なハードウェアで展開でき、かつ高い圧縮率を実現できる圧縮技術が望まれる。
【０００６】
ところで、多階調の画像データをプリンタでプリントするには、多くの場合、その画像データを擬似階調化しなければならない。擬似階調化の方法として、ディザ法が従来からよく知られている。ディザ法では、ディザパターンを用い、ディザパターンの各しきい値と画像データの各画素の値とを比較して２値化する。
【０００７】
ディザパターンに着目した圧縮技術として、特許文献１に開示された方法がある。特許文献１に示された方法によると、２値化された画像データを所定の大きさのブロックに分割する。任意の画像ブロックに含まれるドットの個数に対応する基準パターンと当該画像ブロックとの比較を行い、画像ブロックと基準パターンとが一致した場合は基準パターンを示す符号を割当て、そうでない場合は比較結果を符号化する。
【０００８】
また、２値化された画像データのための圧縮技術として、ＩＴＵ（国際電気通信連合）−Ｔ勧告により採用が認められたＪＢＩＧ方式が知られている。
【特許文献１】特開平６−１５２９８６
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかし、上に述べた前者である特許文献１の方法では、指定した画像ブロックと基準パターンが一致した場合に、基準パターンを符号化するため、基準パターンの符号の分だけ送信するデータ量が増大してしまう。
【００１０】
これに対して、後者のＪＢＩＧ方式では、圧縮処理が比較的軽く、コンピュータ上でも高速に圧縮処理を行うことができる。しかし、ＪＢＩＧ方式によると、ＬＺＳ方式またはＬＺＷ方式などの他の方式に比べて圧縮率があまり高くなく、特に中間調のデータが増えた場合に圧縮率が低下する。
【００１１】
本発明は、上述の問題に鑑みてなされたもので、コンピュータ側において画像データを高速でかつ高い圧縮率で圧縮することができ、プリンタ側においては小規模なハードウェアで高速に復元することができるプリントシステム、およびそのためのプリンタを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明に係るプリントシステムでは、図２４に示すように、ディザパターンＤＰを用いて擬似階調化された画像データＤ１をプリンタ１３によってプリントする。コンピュータ１１は、ディザパターンＤＰを用いて、画像データＤ１からその濃度に関する代表値ａを取得する。この代表値ａに関するデータを符号化し圧縮データＤ２としてプリンタ１３に送る。プリンタ１３は、圧縮データＤ２から代表値ａを抽出し、その代表値ａとディザパターンＤＰを用いてドットパターンを再現し、擬似階調化された画像データ（ハーフトーン画像）Ｄ１を復元する。そしてそれを用紙などにプリントアウトする。
【００１３】
すなわち、本発明に係るプリントシステムは、コンピュータとプリンタとを有し、ディザパターンを用いて擬似階調化された画像データを前記プリンタによってプリントするためのシステムであって、前記コンピュータは、前記画像データを所定の領域ごとに区画し、各領域内における画像データのドットの配列パターンが擬似階調化に用いられたディザパターンと一致するか否かを判別し、一致する場合にその領域における画像データの濃度に関する代表値を求め、求めた代表値に関連するデータを前記プリンタに送り、前記プリンタは、コンピュータから送られてきたデータから各領域の代表値を取得し、取得した代表値と前記ディザパターンとを比較してドットパターンを再現する。
【００１４】
好ましくは、前記コンピュータは、前記代表値として、前記領域内における画像データの各画素の濃度値と前記ディザパターンの各画素の濃度値とをそれぞれ比較して前記画像データの各画素の濃度値が小さい場合に予め用意されたパターン領域にドットを打った場合に、前記領域内において打たれたドットに対応する前記ディザパターンの画素の濃度値の最小値Ｊと打たれなかったドットに対応する前記ディザパターンの画素の濃度値の最大値Ｋとの間で
Ｊ≧ａ≧Ｋ
の条件を満たす値ａを求める。
【００１５】
なお、前記画像データの各画素の濃度値が大きい場合にドットを打った場合には、前記領域内において打たれなかったドットに対応する前記ディザパターンの画素の濃度値の最小値Ｊと打たれたドットに対応する前記ディザパターンの画素の濃度値の最大値Ｋとの間で条件を満たすように代表値ａを求めればよい。このように、本発明においては、階調性、濃度、および、それらとドットを打つ打たないこととの関係などは、種々の組み合わせを行って適用することが可能である。
【００１６】
また、前記コンピュータは、前記代表値として、前記領域内における画像データの各画素の濃度値と前記ディザパターンの各画素の濃度値とをそれぞれ比較して前記画像データの各画素の濃度値が小さい場合に予め用意されたパターン領域にドットを打った場合に、前記領域内において打たれたまたは打たれなかったドットの個数を求める。
【００１７】
また、前記コンピュータは、各領域において他の領域との代表値の差分を求め、求めた差分を符号化して前記プリンタに送るべきデータとする。
【００１８】
また、前記コンピュータは、前記領域内における画像データのドットの配列パターンが擬似階調化に用いられたディザパターンと一致しない場合に、当該領域をさらに複数の小領域に区画し、各小領域内における画像データのドットの配列パターンが前記ディザパターンと一致するか否かを判別し、これによって一致する場合に、前記小領域における代表値として、前記領域内において打たれたまたは打たれなかったドットの個数を求める。
【００１９】
また、前記コンピュータは、前記領域内または前記小領域内における画像データのドットの配列パターンが擬似階調化に用いられたディザパターンと一致しない場合に、当該領域内または前記小領域内において打たれたまたは打たれなかったドットの配列を符号化して前記プリンタに送るべきデータとする。
【００２０】
また、前記コンピュータおよび前記プリンタには、それぞれ、前記ディザパターンが設けられている。
【００２１】
本発明に係るプリンタは、コンピュータに設けられたディザパターンと同じディザパターンを保持しており、前記コンピュータから受信した前記代表値と前記ディザパターンとを比較してドットパターンを生成し、再現したドットパターンを展開することによって圧縮前の擬似階調化された画像データを再現する。
【００２２】
好ましくは、前記プリンタは、前記ドットパターンを、前記コンピュータから受信することによって保持する。
【発明の効果】
【００２３】
本発明によると、コンピュータ側において画像データを高速でかつ高い圧縮率で圧縮することができ、プリンタ側においては小規模なハードウェアで高速に復元することができる。これにより、安価なプリンタを使用しつつ、システム全体の処理を短時間で行うことが可能となる。
【発明を実施するための最良の形態】
【００２４】
〔システム全体の構成〕
図１は本発明に係るプリントシステム１の全体構成を示す図である。
【００２５】
図１において、プリントシステム１は、コンピュータ本体１１、ディスプレイ１２、プリンタ１３、キーボード１４、およびマウス１５などから構成される。
【００２６】
コンピュータ本体１１は、外部から入力された画像データまたは内部で生成した画像データなど（原画像データ）を、ディザ法によりディザパターンを用いて擬似階調化する。本実施形態においては、擬似階調化として２値化を行い、２値画像データＤ１を生成する。そして、生成した２値画像データＤ１を圧縮して圧縮データＤ２を生成し、生成した圧縮データＤ２をプリンタ１３に送信する。プリンタ１３は、受信した圧縮データＤ２について、２値化に用いたディザパターンなどを参照して２値画像データ（ハーフトーン画像）を復元し、用紙などにプリントアウトする。
【００２７】
本実施形態において、圧縮処理に際しては、２値画像データＤ１をディザパターン情報成分と画像情報成分とに分離する。そして、画像情報成分のみを取り出し、ハフマン法による符号化処理を行って圧縮データＤ２とする。ディザパターン情報成分は圧縮データＤ２に含めない。因みに、従来においては、ディザパターン情報成分と画像情報成分の両方をまとめて圧縮処理を行っていた。
【００２８】
より詳しくは、本実施形態の圧縮処理の過程において、２値画像データＤ１を所定の領域（後述する低解像度領域ＴＬ）ごとに区画し、各領域内における画像データのドットの配列パターンが２値化に用いられたディザパターンと一致するか否かを判別し、一致する場合にその領域における画像データの濃度に関する代表値ａを求める。そして、隣り合う領域間の代表値ａの差分情報を求め、求めた差分情報をハフマン法で符号化することによって圧縮データＤ２を得る。２値化に用いられたディザパターンがディザパターン情報成分であり、代表値ａが画像情報成分である。
【００２９】
２値化処理に際して、文字領域または画像領域など、領域の種類に応じて複数のディザパターンが切り換えられて用いられるので、圧縮処理の際にも、それら複数のディザパターンを切り換えて各領域内における画像データのドットの配列パターンと一致するか否かを判別する。
【００３０】
いずれのディザパターンにも一致しない場合には、その領域をさらに複数の小領域（後述する中解像度領域ＴＭ）に区画し、各小領域内における画像データのドットの配列パターンがディザパターンと一致するか否かを判別する。ここで一致した場合は、小領域に打たれたドット数を代表値とする。ここでも一致しなかた場合には、それら領域または小領域のドットの配列を符号化して圧縮データＤ２を得る。
【００３１】
コンピュータ本体１１は、得られた圧縮データＤ２をプリンタ１３に送信する。コンピュータ本体１１は、また、ディザパターンに関する情報、および、ハフマン法による復元（復号）のためのテーブルであるデコード表ＤＣを、プリンタ１３に予め送信する。なお、デコード表ＤＣとして、低解像度領域、中解像度領域、および高解像度領域のそれぞれに対するデコード表ＤＣ１〜３が存在する。詳しくは後述する。
【００３２】
プリンタ１３では、コンピュータ本体１１から送信された圧縮データＤ２から、各領域の代表値ａを取得し、取得した代表値ａと該当するディザパターンとを比較し、元の２値画像データＤ１と同じドットパターン（ドットの配列パターン）を再現する。そのような復元処理（復号処理）において、ハフマン法による復元のためにデコード表ＤＣが用いられる。
【００３３】
コンピュータ本体１１として、パーソナルコンピュータ、ワークステーション、その他の種々のコンピュータが用いられ、プリンタ１３として、ラスタプリンタ、ＧＤＩプリンタ、その他の種々のプリンタが用いられる。
〔圧縮処理〕
次に、コンピュータ本体１１における圧縮処理についてさらに詳しく説明する。
【００３４】
図２はコンピュータ本体１１の機能的な構成を示すブロック図、図３はコンピュータ本体１１の圧縮データ作成部１００を機能的に示すブロック図、図４はプリンタ１３の機能的な構成を示すブロック図、図５は区画された低解像度領域ＴＬを説明するための図、図６は低解像度領域ＴＬとディザパターンＤＰの例を示す図、図７は互いにサイズの異なる低解像度領域ＴＬとディザパターンＤＰの例を示す図である。
【００３５】
図２に示すように、コンピュータ本体１１は、画像データベース１５０、ディザパターン記憶部１６０、擬似階調化部１７０、および圧縮データ作成部１００などから構成される。
【００３６】
画像データベース１５０は、階調性を有した多数の画像データ（原画像データ）ＦＤ１、ＦＤ２、…ＦＤｎを保持する。画像データＦＤ１〜ｎの全部または一部を「画像データＦＤ」と記載することがある。なお、画像データＦＤの多くはカラー画像であり、その場合に、１つの画像データＦＤが、Ｃ（シアン）、Ｍ（マジェンタ）、Ｙ（イエロー）、Ｋ（ブラック）の各色の画像データによって構成される。画像データＦＤは、例えば、スキャナ、デジタルカメラ、その他外部から入力し、または内部で編集したり生成することによって得られる。
【００３７】
ディザパターン記憶部１６０は、複数種類のディザパターンＤＰ１１〜１３、ＤＰ２１〜２３、ＤＰ３１〜３３、ＤＰ４１〜４３を保持する。これらの全部または一部を「ディザパターンＤＰ」と記載することがある。
【００３８】
ディザパターンＤＰは、Ｃ、Ｍ、Ｙ、Ｋの各色について、文字領域用ディザパターンＤＰ１１、２１、３１、４１、画像領域用ディザパターンＤＰ１２、２２、３２、４２、およびチャート領域用ディザパターンＤＰ１３、２３、３３、４３などがそれぞれ設けられている。
【００３９】
擬似階調化部１７０は、画像データベース１５０に格納された画像データＦＤに対し、ディザパターン記憶部１６０から選択したディザパターンＤＰを用いて２値化処理を行い、得られた２値画像データＤ１を圧縮データ作成部１００に送る。２値画像データＤ１についても、Ｃ、Ｍ、Ｙ、Ｋの各色の２値画像データによって構成される。
【００４０】
圧縮データ作成部１００は、２値画像データＤ１を圧縮して圧縮データＤ２を生成するとともに、生成した圧縮データＤ２、ディザパターンＤＰ、およびデコード表ＤＣを出力してプリンタ１３に送信する。
【００４１】
図３において、圧縮データ作成部１００は、低解像度領域区画部１０１、低解像度比較部１０２、低解像度代表値算出部１０３、中解像度領域区画部１０４、中解像度比較部１０５、中解像度代表値算出部１０６、ドットパターン抽出部１０７、符号化部１０８、およびデータ送信部１０９などから構成される。
〔低解像度領域の処理〕
低解像度領域区画部１０１は、擬似階調化部１７０から送られてきた２値画像データＤ１を、多数の小さな領域である低解像度領域ＴＬに区画する。低解像度領域ＴＬは、例えば図５に示すように、９６個（６×１６個）の画素ＴＰからなる矩形の領域である。図５の例では、２値画像データＤ１の全体の領域が、左上から順に、低解像度領域ＴＬ１、ＴＬ２、ＴＬ３、…というようにＴＬｎまで区画されている。
【００４２】
低解像度比較部１０２は、各低解像度領域ＴＬのドットパターンとディザパターンＤＰとを比較し、これらが互いに一致しているか否かを判別する。一致しているか否かの判別は次のようにして行う。
【００４３】
すなわち、全ての画素がある１つの濃度値（または階調値）を有した均一な画像データを仮想する。仮想した画像データを当該ディザパターンＤＰによって２値化したときに得られるドットパターンが、低解像度領域ＴＬのドットパターンと等しい場合に、その低解像度領域ＴＬのドットパターンは当該ディザパターンＤＰと一致すると判別する。判別に用いる濃度値としてはどの様な値であってもよい。つまり、換言すれば、ディザパターンＤＰを用いてドットパターンを生成したときにドットパターンが互いに等しくなるような濃度値が存在する場合に、一致すると判別する、といえる。したがって、そのような濃度値は特定の１つの値の場合もあり、またある範囲における複数の値をとり得る場合もある。この濃度値が、上に述べた代表値ａである。これらの関係について、後においても説明する。
【００４４】
低解像度比較部１０２において、低解像度領域ＴＬのドットパターンとディザパターンＤＰとの比較は、２値画像データＤ１について、その左からにかつ上から下に、１つの領域ごとに順番に行われる。例えば、上にある複数の単位行（ライン）について、左端から右方向にむかって１つの領域ごとに行われ、１つの単位行が終わればその下にある単位行の左端に戻り、再度右方向に１つの領域ごとに順番に行われ、右下端の領域で終わる。
【００４５】
比較に用いられるディザパターンＤＰは、２値画像データＤ１の各色に対応したディザパターンＤＰが用いられる。そして、各色に対応して、最初に文字領域用ディザパターンＤＰが用いられる。文字領域用ディザパターンＤＰが一致しなかった場合に、次に画像領域用ディザパターンＤＰが用いられ、これも一致しなかった場合にチャート領域用ディザパターンＤＰが用いられる。このように、一致しなかった場合に、ディザパターンＤＰが順に切り換えられる。ディザパターンＤＰの切り換えを行ったという情報は、用いたディザパターンＤＰを特定するための情報として符号化の際に用いられる。いずれのディザパターンＤＰでも一致しなかった場合には、「一致しない」という判別結果を出力する。
【００４６】
低解像度代表値算出部１０３は、低解像度比較部１０２での判別結果が一致した場合に、代表値ａを求める。代表値ａの求め方は次のとおりである。
〔代表値ａの求め方〕
図６（ａ）に示す低解像度領域ＴＬにおいて、黒の画素が、ドットが打たれた画素である。ここで、２値化が行われる前の階調性のある画像データＦＤのうち、低解像度領域ＴＬに対応する領域の画像データＦＤについて考える。そのような画像データＦＤを、ここでは「画像データＦＤＬ」とする。そして、画像データＦＤＬの各画素の濃度値が、図６（ｂ）に示すディザパターンＤＰの対応する画素の閾値未満であったときに、その画素にドットが打たれたものとする。つまり、ここでは濃度値が小さいほど濃度が高いものと仮定する。
【００４７】
その場合に、ある画素でドットが打たれているときは、その画素の濃度値がディザパターンＤＰの対応する画素のしきい値未満であったということができる。これは、その画素の濃度の上限値が、ディザパターンＤＰ対応する画素のしきい値より「１」だけ小さい値であった、と言い換えることができる。逆に、ドットが打たれていないときは、その画素の濃度値はディザパターンＤＰの対応する画素のしきい値以上であったということになる。これは、その画素の濃度の下限値が、ディザパターンＤＰの対応する画素のしきい値であったと言い換えることができる。
【００４８】
そこで、低解像度領域ＴＬとディザパターンＤＰとにおいて、各画素の上限値および下限値を集計し、上限値の最小値Ｊおよび下限値の最大値Ｋを求める。これら上限値の最小値Ｊと下限値の最大値Ｋについて、
Ｊ≧Ｋ      ……（１）
の関係が成り立つならば、
Ｊ≧ａ≧Ｋ  ……（２）
を満たす「ａ」が存在する。この「ａ」が代表値ａである。換言すれば、上の（１）式が成り立つときには、低解像度領域ＴＬのドットパターンとディザパターンＤＰとが一致し、代表値ａが存在する。代表値ａが分かれば、ディザパターンＤＰから低解像度領域ＴＬのドットパターンを復元することが可能である。つまり、画像情報成分として各領域におけるただ１つの代表値ａを求めるだけで、当該低解像度領域ＴＬに一致するディザパターンＤＰを用いてその領域の２値画像データＤ１を再現することが可能となるのである。
【００４９】
したがって、この代表値ａをプリンタ１３に伝えることによって、プリンタ１３において、２値画像データＤ１を得たときと同じ適当なディザパターンＤＰを用いて、２値画像データＤ１のドットパターンを再現できるのである。
【００５０】
画像データＦＤが各色について２５６階調であるとすると、代表値ａは、８ビットの情報量を持つことになる。本実施形態において、低解像度領域ＴＬは６×１６＝９６ビットの情報量を持っており、これを８ビットで表現できるので、情報量を概ね１０分の１に圧縮できることになる。また、ほとんどの画像データＦＤについて、近隣の低解像度領域ＴＬにおいては代表値ａが互いに接近している。つまり、近隣の領域では濃度の差分が小さく、そのため代表値ａの差が小さい、という性質がある。したがって、ある低解像度領域ＴＬの代表値ａについて、その直前に求めた低解像度領域ＴＬの代表値ａとの差をとると、多くの場合に差が「０」となり、差の統計的な頻度の偏りが大きくなる。つまり、代表値ａそれ自体に代えて、代表値ａの差分を用いることにより、ハフマン法の符号化でさらに高い圧縮率で圧縮することが可能となる。これにより、符号化において例えばさらに数分の１に圧縮することが可能である。
【００５１】
なお、図６の例では、低解像度領域ＴＬのサイズがディザパターンＤＰのサイズと同じとなるように区画した例を示したが、これらのサイズが互いに異なってもよい。
【００５２】
例えば、図７に示すように、低解像度領域ＴＬｂのサイズがディザパターンＤＰｂのサイズよりも小さい場合でもよい。この場合に、複数の低解像度領域ＴＬｂn 、ＴＬｂn+1 が、ディザパターンＤＰｂにおけるそれぞれ異なる部分と比較される。この場合に、２値画像データＤ１の最初の低解像度領域ＴＬｂに対して適用するディザパターンＤＰｂの座標位置を決めておき、後はディザパターンＤＰｂを順にずらせることにより、全ての低解像度領域ＴＬｂに対して、適用すべきディザパターンＤＰｂの座標位置は一意に決定される。
【００５３】
図７の例とは逆に、低解像度領域ＴＬのサイズがディザパターンＤＰのサイズよりも大きい場合でもよい。                                                                    
【００５４】
さて、上に述べた代表値ａは、上の説明で明らかなように、種々の方法で求めることが可能である。次に、その１つの例として、予め作成したテーブルを参照して代表値ａを求める方法について説明する。
【００５５】
上に述べたように、代表値ａを求めるのに必要なものは、ある領域のドットパターンに対応する各画素値の上限値の最小値Ｊと下限値の最大値Ｋである。これらは、ディザパターンＤＰが与えられると、そのディザパターンＤＰ内における位置と領域のドットパターンとによって決まってくる。ディザパターンＤＰ内の位置は、領域の先頭画素の座標として２変数で表すことができる。ドットパターンは、８画素ごとに１つのブロックと考えてこれを数値化すると、１ブロック当たり０〜２５５の整数値で表すことができる（図１４参照）。この場合に、８画素のドットパターンをそのまま数値と解釈するだけで整数値が得られるので、何らの変換も不要である。したがって、ディザパターンＤＰの各画素について、それぞれ０〜２５５の２５６個のドットパターンに対応して上限値の最小値Ｊと下限値の最大値Ｋとを記述したテーブルがあればよい。つまり、ディザパターンＤＰの画素数×２５６個のデータを変換するテーブルがあれば全てを記述することができる。そのようなテーブルがあれば、ディザパターンＤＰ内の位置座標とドットパターンの整数値とから、その位置に記述された値（最小値Ｊおよび最大値Ｋ）を容易に高速で取り出すことができる。本実施形態では、そのようなテーブルを上下限テーブルＴＪＫとして作成しておく。
【００５６】
図８は上下限テーブルＴＪＫの例を示す図である。
【００５７】
図８に示す上下限テーブルＴＪＫには、あるディザパターンＤＰについて、そのディザパターンＤＰ内の座標およびドットパターンと、上限値の最小値Ｊと下限値の最大値Ｋとの対応関係が示されている。
【００５８】
そこで、上に述べた低解像度領域ＴＬを、８画素ごとの１２のブロックに区画し、各ブロックごとに最小値Ｊと最大値Ｋを求める。例えば、あるブロックのディザパターンＤＰ内の座標が（０，２）であり、ドットパターンの整数値が「０」である場合には、上下限テーブルＴＪＫから、最小値Ｊが「２５５」、最大値Ｋが「１４１」であることが分かる。
【００５９】
このようにして得られた１２個のブロックの最小値Ｊと最大値Ｋに基づいて、低解像度領域ＴＬの全体の最小値Ｊと最大値Ｋを求める。つまり、低解像度領域ＴＬの最小値Ｊは、１２個の最小値Ｊの内の最も小さいものであり、低解像度領域ＴＬの最大値Ｋは、１２個の最大値Ｋの内の最も大きなものである。
【００６０】
このように、上下限テーブルＴＪＫを用いることによって、代表値ａの算出のための処理を、高々２Ｍバイト程度の上下限テーブルＴＪＫからデータを読み出す作業によって実現することができる。テーブルからの読み出しは高速で行えるので、代表値ａを高速に求めることができ、しかも、この処理は圧縮処理全体の中でも大きな負荷であるので、全体の処理時間を大幅に短縮することができる。
【００６１】
なお、上下限テーブルＴＪＫは、８画素のブロックがディザパターンＤＰと一致しているか否かを判別するためにも用いることができる。
【００６２】
上に述べたように、得られた最小値Ｊと最大値Ｋから代表値ａが得られる。代表値ａは、特定の１つの値の場合もあり、ある範囲に広がった複数の値をとり得る場合もある。しかし、プリンタ１３において２値画像データＤ１のドットパターンを再現するには、代表値ａは１つの値のみで十分である。そこで、得られた代表値ａがある範囲に広がった場合に、それを特定の１つの値に絞り込む方法について説明する。
【００６３】
図９は複数の低解像度領域ＴＬについての代表値の推移の例を示す図である。
【００６４】
図９において、横軸は低解像度領域ＴＬの番号、縦軸は代表値を示す。図９に示すように、代表値はある範囲ＥＴを持っている。そこで、代表値ａの変化ができるだけ少なくなるように、つまり隣合う低解像度領域ＴＬの代表値ａの差分ができるだけ「０」となるように、代表値ａを決める。
【００６５】
すなわち、図９の最も左側である最初の低解像度領域ＴＬの代表値ａを、その範囲内における中央の値と決め、その右隣である２番目の低解像度領域ＴＬの代表値ａを、最初の代表値ａと同じ値とする。３番目の低解像度領域ＴＬの代表値ａは、２番目の代表値ａと同じ値とすると範囲から出てしまうので、範囲内に入るように代表値ａを決める。４番目についても、３番目と同様に、範囲内に入るように代表値ａを決める。５番目の代表値ａは、４番目の代表値ａと同じ値とする。このようにして決めた代表値ａについて、その差分が図の下方に示されている。代表値ａの差分として「０」が多くなることで、頻度の偏りが大きくなり、ハフマン法の符号化において高い圧縮率が得られる。
【００６６】
ところで、代表値ａの取り得る値の範囲は０〜２５５であるから、単純な引き算を行った場合には、差分の範囲は−２５５〜＋２５５となり、これを表すのに必要な情報量は９ビットとなる。しかし、本実施形態では、差分を単純な引き算によって求めるのではなく、代表値ａが０〜２５５の循環整数であるとして差分を求める。これによって、差分は、全て０〜２５５の整数で表され、これを表すのに必要な情報量は８ビットとなり、半分に減少する。
【００６７】
次に、循環整数であるとして差分を求める方法について説明する。説明を簡単化するため、０〜８の循環整数について説明する。
【００６８】
図１０は０〜８の循環整数を示す図である。
【００６９】
図１０において、ある数Ａを基準とし、これとある数Ｂとの差分Ｃを求めるには、循環整数の中の数Ａの示す位置から、数Ｂに相当する位置数を左方向に回転し、止まった位置の数値を差分Ｃとする。例えば、「５」と「３」の差分は、循環整数の「５」の位置から３つ左方向に回転して得られる「２」が答である。他の例では、「０」と「８」の差分は、循環整数の「０」の位置から８つ左方向に回転して得られる「１」が答である。さらに他の例では、「３」と「５」の差分は、循環整数の「３」の位置から５つ左方向に回転して得られる「７」が答である。このようにして、差分が０〜８の範囲内の整数値として得られる。
【００７０】
また、ある数Ｂに差分Ｃを加算することによってある数Ａが求まる。この場合には、循環整数のある数Ｂの示す位置から、差分Ｃに相当する位置数を右方向に回転し、止まった位置の数値を数Ａとする。このようにして完全に復元することができる。
【００７１】
図１１は画像における代表値ａの差分の出現頻度の分布を表す図である。
【００７２】
図１１に示すように、差分が「０」〜「２０」程度および「２３０」〜「２５５」程度の範囲で出現頻度が高い。このような分布は、画像の種類によらずほぼ同じであり、且つ偏りが非常に大きいので、差分を用いることによって大抵の画像をハフマン法によって大幅に圧縮することができる。
【００７３】
画像にもよるが、１つの低解像度領域ＴＬをｌ〜２ビット程度に圧縮できる。また、６×１６画素の低解像度領域ＴＬのドットパターンがディザパターンＤＰと一致する確率は、大抵の画像において９５％程度になる。つまり、画像全体の概ね９５％の領域で、元々９６ビットであったデータが１〜２ビットで表現できることとなり、この時点において数十倍という高い圧縮率で圧縮を行えることとなる。
【００７４】
なお、図１１において、代表値ａの差分である０〜２５５の後に、「２５６」「２５７」「２５８」の３つの値についての出現頻度が示されている。これは、所定の状態が生じたときにその状態を特定の３つの数値で示し、これによって情報量をさらに低減し、圧縮率をさらに高めるためのものである。
【００７５】
例えば、画像において同じ濃度の画素が長く続くことも頻繁に起こるので、後述するように同じ濃度が５０領域にわたって続いた場合、つまり差分「０」が５０回続いた場合に、それを「２５７」という１つの属性コードで表すのである。「２５６」は、ある低解像度領域ＴＬがいずれのディザパターンＤＰとも一致しなかったことを表す属性コード、「２５８」は、ディザパターンＤＰの切り換えを行ったこと、つまりある低解像度領域ＴＬが切り換えられた他のディザパターンＤＰに一致したことを表す属性コードである。２回切り換えられたときは、「２５８」が２回出力される。
【００７６】
上に述べたように、低解像度代表値算出部１０３においては、低解像度領域ＴＬについて、順に代表値ａが求められ、隣合う領域との間の差分が求められる。差分および属性値などによって、符号化部１０８に送るデータが作成される。
【００７７】
例えば、差分として「０」が５０回連続した場合に、属性値「２５７」が符号化部１０８に出力される。差分「０」の値は出力されない。差分「０」が５０回連続しなかった場合は、それまで連続していた個数だけ「０」が出力され、その後に、「０」でない差分が出力される。ディザパターンＤＰの切り換えが行われた場合には、属性コード「２５８」が切り換え回数分出力される。低解像度領域ＴＬがいずれのディザパターンＤＰとも一致しなかった場合には、属性コード「２５６」が出力される。この場合には、その低解像度領域ＴＬは、次に説明する中解像度領域区画部１０４によって処理される。
〔中解像度領域および高解像度領域の処理〕
図１２は低解像度領域ＴＬおよび中解像度領域ＴＭを示す図、図１３は画像におけるドット数の差分の出現頻度の分布を表す図、図１４はドットパターンの数値化を説明するための図、図１５は各ドットパターンの出現頻度の分布を表す図である。
【００７８】
中解像度領域区画部１０４では、低解像度領域ＴＬを、さらに図１２に示すような３×８画素の４つの中解像度領域ＴＭに区画する。
【００７９】
中解像度比較部１０５では、各中解像度領域ＴＭにおいて、それぞれのドットパターンがディザパターンＤＰの一部と一致するか否かを、低解像度領域ＴＬの場合と同様な方法で判別する。つまり、中解像度領域ＴＭは、８画素の３つの高解像度領域ＴＳから構成されているので、上に述べた上下限テーブルＴＪＫから最小値Ｊおよび最大値Ｋを３回読み出して集計することによって、ディザパターンＤＰと一致するか否かを判別することができる。なお、ディザパターンＤＰと一致するか否かの判別を中解像度領域ＴＭで行うのは、領域が小さくなれば一致の頻度が高くなるからである。
【００８０】
中解像度代表値算出部１０６では、中解像度領域ＴＭがディザパターンＤＰと一致した場合に、中解像度領域ＴＭに打たれているドットの個数、例えば黒ドットの個数を、代表値として求める。中解像度領域ＴＭでは、全部で２４ドットであるので、ドット数を代表値としても情報量はそれほど多くなく、またドット数をカウントする処理も速い。ドット数から元のドットパターンを復元することが可能である。そして、得られた代表値に基づいて、隣合う中解像度領域ＴＭの間の代表値の差分が、上に述べた低解像度領域ＴＬの場合と同様にして算出される。ここでの差分は、上に述べた循環整数を用いるので、０〜２４の範囲となる。
【００８１】
図１３に示すように、差分が「０」〜「３」程度および「２１」〜「２４」程度の範囲で出現頻度が高い。このような分布は、画像の種類よらずほぼ同じであり、且つ偏りが非常に大きいので、差分を用いることによって高い圧縮率を得ることができる。例えば十倍程度の圧縮率を得ることができる。
【００８２】
なお、図１３において、差分である０〜２４の後に、「２５」の値についての出現頻度が示されている。これの趣旨は低解像度領域ＴＬの場合の属性コードと同様であり、「２５」は、ある中解像度領域ＴＭがいずれのディザパターンＤＰとも一致しなかったことを表す属性コードである。
【００８３】
なお、１つの低解像度領域ＴＬについての４つの中解像度領域ＴＭの処理が終わると、再度、低解像度領域ＴＬについての処理に戻る。
【００８４】
ドットパターン抽出部１０７は、中解像度領域ＴＭにおいても一致しなかった場合に、中解像度領域ＴＭをさらに８画素の３つの高解像度領域ＴＳに区画し、この高解像度領域ＴＳのドットパターンを数値化する。ドットパターンの数値化においては、例えば、図１４に示すように、ドットの打たれている画素を「１」、打たれていない画素を「０」として２進数で表し、これを１０進数に変換し、これを属性コードとして出力する。
【００８５】
図１５に示すように、特定の値に集中するかなり偏った分布であることが分かる。したがって、この場合においても、ハフマン法の符号化によって高い圧縮率を得ることができる。例えば２倍程度の圧縮率を得ることができる。
【００８６】
なお、１つの中解像度領域ＴＭについての３つの高解像度領域ＴＳの処理が終わると、再度、中解像度領域ＴＭについての処理に戻る。
【００８７】
符号化部１０８では、入力されるデータ、つまり、代表値ａの差分、ドット数の差分、および属性コードなどを、ハフマン法によって符号化する。ハフマン法による圧縮は、信号の頻度分布が大きく変化しない対象に対して非常に有効である。ハフマン法それ自体については公知であるのでここでの詳しい説明は省略する。
〔ハフマンコード表の説明〕
本実施形態においては、低解像度領域ＴＬについての代表値ａの差分および属性コード、中解像度領域ＴＭについてのドット数の差分および属性コード、高解像度領域ＴＳについての属性コードを、それぞれ別個独立したコード１〜３によって符号化する。そのために、それぞれに専用の３つのハフマンコード表ＦＨ１〜３が設けられている。
【００８８】
図１６はハフマンコード表ＦＨ１〜３の例を示す図である。図１６（ａ）は低解像度領域用であるコード１のハフマンコード表ＦＨ１、図１６（ｂ）は中解像度領域用であるコード２のハフマンコード表ＦＨ２、図１６（ｃ）は高解像度領域用であるコード３のハフマンコード表ＦＨ３をそれぞれ示す。これらについて簡単に説明する。
【００８９】
図１６（ａ）において、ハフマンコード表ＦＨ１には、入力、出力コード、出力桁数などの項目が設けられている。入力と出力コードとの関係は、各データの出現頻度に基づき、ハフマン法による符号化によって予め決められている。出力コードは、実際には、例えば４バイトのデータとしてメモリに格納されており、実質上４バイトに満たない符号は、上位の桁が「０」で埋まっている。
【００９０】
入力されたデータに対して、それに一致する入力の項に対応する出力コードの項のデータを、その最下位桁から出力桁数の項で示される桁数分を読み出す。例えば、入力が「３」のときには、出力コード「…０００１０００１００」の７桁分である「１０００１００」が読み出される。読み出された「１０００１００」が圧縮データＤ２となる。
【００９１】
図１６（ｂ）（ｃ）に示すハフマンコード表ＦＨ２，３についても、同様に、入力、出力コード、出力桁数などの項目が設けられている。これら入力と出力コードとの関係は、３つのハフマンコード表ＦＨ１〜３について互いに独立して、ハフマン法による符号化によって予め決められている。
【００９２】
例えば、ハフマンコード表ＦＨ２において、入力が「１」のときには、出力コード「…０００１０１０」の４桁分である「１０１０」が読み出される。ハフマンコード表ＦＨ３において、入力が「１」のときには、出力コード「…０００１０１０」の４桁分である「１０１０」が読み出される。
【００９３】
なお、これらのハフマンコード表ＦＨ１〜３によって同じ符号に変換される場合があるが、いずれのコード１〜３に対応して変換されたか、つまり高中低のいずれの解像度領域に対して圧縮が行われたかが認識可能になっているので、それに応じたデコード表ＤＣが選択されることとなり、完全な復元が可能である。
【００９４】
例えば、符号化に際しては、データに「２５６」が現れるまでは、低解像度領域用のハフマンコード表ＦＨ１を用いたコード１の符号化が行われる。「２５６」が現れると、「２５６」がコード１で符号化された後、中解像度領域用のハフマンコード表ＦＨ２に切り換えられ、４つの中解像度領域ＴＭの符号化が完了するまでコード２の符号化が続行される。コード２の符号化を行っているときに「２５」が現れると、「２５」がコード２で符号化された後、高解像度領域用のハフマンコード表ＦＨ３に切り換えられ、３つの高解像度領域ＴＳの符号化が完了するまでコード３の符号化が続行される。３つの高解像度領域ＴＳの符号化が完了すれば、コード２の符号化に戻り、４つの中解像度領域ＴＭの符号化が完了すれば、再びコード１の符号化に戻る。以下、このルールにしたがって、入力されるデータが順次符号化され、圧縮データＤ２が作成される。
【００９５】
また、圧縮データ作成部１００において、ハフマンコード表ＦＨ１〜３で符号化した圧縮データＤ２を復元するためのデコード表ＤＣ１〜３が作成される。
【００９６】
データ送信部１０９は、符号化部１０８で作成した圧縮データＤ２をプリンタ１３に送信する。また、データ送信部１０９は、全てのディザパターンＤＰおよびデコード表ＤＣをプリンタ１３に予め送信する。
【００９７】
なお、デコード表ＤＣは、データの出現頻度に基づいて作成される。各データの出現頻度は、本実施形態におけるアルゴリズムを実際に実行して求めることも可能である。例えば、そのような頻度表として、ＣＭＹＫの各色ごとに、文字領域用、画像領域用、およびチャート領域用の各ディザパターンＤＰについて求めた各頻度を全て合計して作成した表を用いることができる。頻度表は、圧縮する画像それぞれについて求めるのが理想的であるが、そのようにしなくとも、上記のように合計して作成した頻度表に基づいて、十分な圧縮性能を得ることができる。同様の理由で、ＣＭＹＫの各色に対して、文字領域、画像領域、チャート領域などの各領域に対しても、上記のようにして作成した同じ頻度表を用いることができる。
〔復元処理〕
次に、プリンタ１３における復元処理について説明する。
【００９８】
図４において、プリンタ１３は、ディザパターン記憶部３６０、データ復元部３００、デコード表記憶部３７０、およびラインバッファ３８０などから構成される。
【００９９】
ディザパターン記憶部３６０は、コンピュータ本体１１のディザパターン記憶部１６０に記憶されているディザパターンＤＰと同様のものを保持している。このディザパターンＤＰは、コンピュータ本体１１から予め送信されたものであるが、同じディザパターンＤＰを適当なメモリに格納したものを予めプリンタ１３に内蔵しておいてもよい。
【０１００】
デコード表記憶部３６０は、コンピュータ１１から送信されたデコード表ＤＣを格納する。
【０１０１】
データ復元部３００は、所定のディザパターンＤＰおよびデコード表ＤＣを参照して、コンピュータ１１から受信した圧縮データＤ２を復元し、ドットパターンを再現する。圧縮データＤ２の復元に際して、最初に低解像度領域用のデコード表ＤＣ１を用いてデコード１による復元処理が行われ、条件に応じて、中解像度領域用のデコード表ＤＣ２を用いたデコード２による復元処理、または高解像度領域用のデコード表ＤＣ３を用いたデコード３による復元処理がそれぞれ行われる。つまり、コード１，２，３で符号化した圧縮データＤ２に対して、それぞれ、デコード１，２，３で復元することとなる。
【０１０２】
図１７はデコード表ＤＣ２の例を示す図である。
【０１０３】
図１７において、デコード表ＤＣ２は、記号数、Ｒｏｏｔ、子０、子１などの項目を有する。入力されるデータをもとに、Ｒｏｏｔ＝２４の位置から表を順にたどることで元のデータを得ることができる。例えば、入力されたデータが「０１１０１１」であった場合に、データの先頭が「０」であるから、まず、Ｒｏｏｔ＝２４の子０より始める。Ｒｏｏｔ＝２４の子０の値が「２３」であり、データの次の値が「１」であるので、次は、Ｒｏｏｔ＝２３の子１を見る。Ｒｏｏｔ＝２３の子１の値が「２２」であり、データの次の値が「１」であるので、次は、Ｒｏｏｔ＝２２の子１を見る。以下同様の作業を繰り返し、子０または子１の値が負になった時点で終了する。最後に得られた値（負の値）と記号数（この場合「２６」）との和が、元のデータである。以下、データの次の値から同様の処理を行い、データの展開が完了するまで繰り返す。
【０１０４】
ドットパターンの再現においては、まずデコード１によって復元処理が行われる。デコード表ＤＣ１によって復元された値が「２５８」であった場合は、ディザパターンＤＰが切り換えられたことを示している。「２５８」が複数続く場合は、続いた回数分だけディザパターンＤＰが順に切り換えられ、切り換えた後のディザパターンＤＰが、以降使用するディザパターン（カレントディザパターン）ＤＰとして設定される。
【０１０５】
復元した値が「２５６」であった場合は、以降の処理が中解像度領域用のデコード表ＤＣ２を用いたデコード２による復元処理に切り換えられる。復元した値が「２５７」であった場合は、代表値の差分について「０」が５０回続いたことを表しているので、カレントディザパターンＤＰにより、５０領域分、前回算出した低解像度領域ＴＬの代表値と同じ値でドットパターンが再現され、ラインバッファ３８０に送られる。５０領域分の処理が完了する前に行末に達したときは、その残りが次の行のデータとしてラインバッファ３８０に送られる。復元した値がこれいずれでもない場合は、その値は代表値の差分である。この場合は、前回算出した低解像度領域ＴＬの代表値ａを初期値とし、初期値に差分を加算することによって今回の代表値ａを得る。このように、差分を累計することによって全ての低解像度領域ＴＬの代表値ａが得られる。今回が初回であった場合は、初期値を「０」として代表値ａを得る。そして、得られた代表値ａとカレントディザパターンＤＰとからドットパターンが再現され、ラインバッファ３８０に送られる。
【０１０６】
デコード２による復元処理では、中解像度領域用のデコード表ＤＣ２によって復元が行われる。デコード２によって復元された値が「２５」であった場合は、以降の処理が高解像度領域用のデコード３の復元処理に切り換えられる。復元した値が「２５」でない場合は、その値は中解像度領域ＴＭの代表値（ドット数）の差分である。この場合は、低解像度領域の場合と同様に累計によって代表値を求める。得られた代表値とカレントディザパターンＤＰとから、中解像度領域ＴＭのドットパターンが再現される。４つの中解像度領域ＴＭについての処理が終わると、デコード１に戻る。
【０１０７】
デコード３による復元処理では、高解像度領域用のデコード表ＤＣ３によって復元が行われる。デコード３によって復元された結果は、８画素分のドットの並びを表わしている。３つの高解像度領域ＴＳについての復元が繰り返され、これによって１つの中解像度領域ＴＭのドットパターンが再現される。これにより、中解像度領域ＴＭの復元処理が１つ完了したことがカウントされ、呼び出し元の処理のデコード２へ戻る。
【０１０８】
このように、属性コード「２５６」「２５」は、領域間におけるコード切り換え信号として機能し、これらの属性コードが現れることによって、間違いなくコード１からコード２へまたはコード２からコード３へ切り換えることができる。
【０１０９】
ラインバッファ３８０では、データ復元部３００より送られた２値画像データが一時的に格納される。ラインバッファ３８０に格納された２値画像データは、例えば６行分ごとに出力され、用紙にプリントアウトされる。
〔フローチャートによる説明〕
次に、コンピュータ本体１１およびプリンタ１３における処理について、フローチャートを参照して説明する。
【０１１０】
図１８はコンピュータ本体１１における圧縮処理の大まかな流れを示すフローチャート、図１９はプリンタ１３における復元処理の大まかな流れを示すフローチャートである。
【０１１１】
図１８において、準備としてディザパターンＤＰを読み込んだ後（＃１１）、２値画像データＤ１を読み込む（＃１２）。２値画像データＤ１を低解像度領域ＴＬに区画し（＃１３）、１つの低解像度領域ＴＬについて、ディザパターンＤＰと一致するか否かを判別する（＃１４）。ディザパターンＤＰが複数ある場合には、一致するまでディザパターンＤＰを切り換える。一致すれば（＃１４でイエス）、代表値ａを求め（＃１５）、その差分をとり（＃１６）、符号化する（＃１７）。
【０１１２】
ステップ＃１４でパターンが一致しない場合は、中解像度領域ＴＭに区画し（＃１９）、１つの中解像度領域ＴＭについて、ディザパターンＤＰと一致するか否かを判別する（＃２０）。一致すれば、ドットの個数を求め（＃２１）、その差分をとり（＃２２）、符号化する（＃２３）。ステップ＃２０でパターンが一致しない場合は、高解像度領域ＴＳに区画し（＃２５）、１つの高解像度領域ＴＳについて、ドット配列を得て（＃２６）、それを符号化する（＃２７）。
【０１１３】
このような処理を、読み込まれた２値画像データＤ１の全部について終了するまで行う（＃１８、２４、２８）。
【０１１４】
図１９において、準備としてディザパターンＤＰおよびデコード表ＤＣを読み込む（＃３１、３２）。圧縮データＤ２を読み込んで（＃３３）、代表値ａを取得し（＃３４）、ディザパターンＤＰを参照してドットパターンを得る（＃３５、３６）。なお、中解像度領域ＴＭおよび高解像度領域ＴＳの復元処理については説明を省略した。
【０１１５】
次に、さらに詳しいフローチャートを用いて説明する。
【０１１６】
図２０および図２１は圧縮データ作成部１００における圧縮処理のフローチャート、図２２および図２３はデータ復元部３００における復元処理のフローチャートである。なお、これらのフローチャートは、ＣＭＹＫの内の１つの色成分についての処理を示す。
【０１１７】
図２０および図２１において、まず、ディザパターンＤＰおよびデコード表ＤＣを読み込む（＃１０１，１０２）。また、これらディザパターンＤＰおよびデコード表ＤＣをプリンタ１３に送信しておく。上下限テーブルＴＪＫを作成する（＃１０３）。２値画像データＤ１の内の６ライン分を入力し（＃１０４）、その左端から１つの低解像度領域ＴＬの分についてディザパターンＤＰと一致するか否かを判別する（＃１０５）。一致する場合に、上下限テーブルＴＪＫを参照して代表値ａを取得し（＃１０６）、代表値差分を算出する（＃１０７）。
【０１１８】
代表値差分が「０」であれば（＃１０８でイエス）、連続回数を示す変数ｎを１つ加算する（＃１０９）。変数ｎが「５０」になった場合に（＃１１０でイエス）、代表値差分「０」が５０回続いたことを示す属性コード「２５７」をコード１で符号化して圧縮データＤ２として出力し（＃１１１）、変数ｎを「０」に初期化する（＃１１２）。
【０１１９】
ステップ＃１０５でノーの場合、つまりディザパターンＤＰと一致しない場合には、代表値差分「０」をコード１でそれまでの回数分符号化して出力し（＃１２０）、変数ｎを「０」に初期化する（＃１２１）。そして、他のディザパターンＤＰと一致するか否かをチェックする（＃１２２）。一致するディザパターンＤＰがあれば（＃１２２でイエス）、そのディザパターンＤＰに切り換え（＃１２３）、ディザパターンＤＰを切り換えたことを示す属性コード「２５８」をコード１で切り換え回数分符号化して出力し（＃１２４）、代表値ａを取得し（＃２２５）、ステップ＃１０７に移行する。
【０１２０】
ステップ＃１０８でノーの場合、つまり代表値差分が「０」でなければ（＃１０８でノー）、代表値差分「０」をコード１でそれまでの回数分符号化して出力し（＃１２６）、変数ｎを「０」に初期化する（＃１２７）。そして、その代表値差分をコード１で符号化して出力し（＃１２８）、ステップ＃１１３に戻る。
【０１２１】
入力した６ラインの右端まで処理が済んでいなければ（＃１１３でノー）、同じ６ラインについて順次右隣の低解像度領域ＴＬの処理を行うために、ステップ＃１０５以降を繰り返す。６ラインについての処理が終わり（＃１１３でイエス）、未処理のラインがあれば（＃１１４でノー）、２値画像データＤ１の次の６ライン分を入力し（＃１０４）、これを２値画像データＤ１の全部の処理が終了するまで繰り返す（＃１１４）。
【０１２２】
ステップ＃１２２でノー、つまり一致するディザパターンＤＰがない場合には、低解像度領域ＴＬがいずれのディザパターンＤＰとも一致しなかったことを示す属性コード「２５６」をコード１で符号化して出力し（＃１２９）、中解像度領域ＴＭの処理であるステップ＃１３１以降に移行する。
【０１２３】
中解像度領域ＴＭの処理では、低解像度領域ＴＬを４つに区画した１つの中解像度領域ＴＭについて、いずれかのディザパターンＤＰと一致するか否かを判別する（＃１３１）。一致する場合は（＃１３１でイエス）、その中解像度領域ＴＭのドット数を取得してその差分を算出し（＃１３２）、ドット数差分をコード２で符号化して出力する（＃１３３）。これを４回繰り返してステップ＃１１３の低解像度領域ＴＬの処理に戻る。
【０１２４】
ステップ＃１３１でノー、つまり中解像度領域ＴＭがいずれのディザパターンＤＰとも一致しなかった場合には、一致しなかったことを表す属性コード「２５」をコード２で符号化して出力し（＃１３５）、高解像度領域ＴＳの処理であるステップ＃１４１以降に移行する。
【０１２５】
高解像度領域ＴＳの処理では、中解像度領域ＴＭを３つに区画した１つの高解像度領域ＴＳについて、そのドットパターンを数値化し（＃１４１）、その数値をコード３で符号化して出力する（＃１４２）。これを３回繰り返し（＃１４３）、ステップ＃１３４の中解像度領域ＴＭの処理に戻る。
【０１２６】
図２２および図２３において、まず、ディザパターンＤＰおよびデコード表ＤＣを読み込む（＃２０１，２０２）。そして、コンピュータ本体１１から送信されてきた圧縮データＤ２を受信し、その先頭から順に復元のための処理を行う。最初はデコード１によって復元する（＃２０３）。
【０１２７】
復元によって得られた値ｄｃ１が属性コード「２５８」「２５６」「２５７」でない場合には（＃２０４〜２０６でノー）、値ｄｃ１は代表値ａの差分であるので、それまでの累計値ｋ１に値ｄｃ１を加算し、得られた値を新たな累計値ｋ１とする（＃２０６）。累計値ｋ１が「２５５」を超えた場合には（＃２０８でイエス）、代表値ａの最大値を超えているので、累計値ｋ１から「２５６」を差し引く（＃２０９）。そして、累計値ｋ１を代表値ａとして、パターン番号ｐｎで特定されるディザパターンＤＰを用いてドットパターンを復元する（＃２１０）。そのドットパターンをラインバッファに転送し（＃２１１）、領域番号ｎｂに１を加算する（＃２１２）。なお、領域番号ｎｂは、処理対象の低解像度領域ＴＬの６ライン内における位置を示す番号である。
【０１２８】
同じ６ライン分についての展開が終了するまで（＃２１３でノー）、ステップ＃２０３以降を繰り返す。６ライン分についての展開が終了すると（＃２１３でイエス）、領域番号ｎｂを「０」に初期化し（＃２１４）、展開した６ライン分のデータ（２値画像データ）をプリントアウトする（＃２１５）。全ての圧縮データＤ２についての処理が済むまで繰り返す（＃２１６）。
【０１２９】
ステップ＃２０４でイエス、つまり復元によって得られた値ｄｃ１が「２５８」である場合には、パターン番号ｐｎに「１」を加算する（＃２２１）。パターン番号ｐｎが「３」であった場合は（＃２２２でイエス）、パターン番号ｐｎから「３」を差し引く。つまり、パターン番号ｐｎは、「０」「１」「２」のいずれかの値となり、これによって３種類のディザパターンＤＰのいずれかが特定される。
【０１３０】
ステップ＃２０６でイエス、つまり値ｄｃ１が「２５７」である場合には、累計値ｋ１を代表値ａとして、パターン番号ｐｎで特定されるディザパターンＤＰを用いてドットパターンを復元する（＃２３１）。そのドットパターンをラインバッファに転送し（＃２３２）、領域番号ｎｂに１を加算する（＃２３３）。これを５０回繰り返す（＃２３４）。これによって、差分「０」が５０回続いたときの代表値ａに基づいて５０個の低解像度領域ＴＬの２値画像データが再現される。なお、この処理中においてラインの右端まできたときは、一旦処理を中断し、ステップ＃２１４以降の処理を行い、新たに次のラインの先頭からドットパターンを書き込むようにする。
【０１３１】
ステップ＃２０５でイエス、つまり値ｄｃ１が「２５６」である場合には、中解像度領域ＴＭの処理であるステップ＃２５１に移行する。ステップ＃２５１において、データをデコード２によって復元する。デコード２によって得られた値ｄｃ２が「２５」でなければ（＃２５２でノー）、値ｄｃ２はドット数の差分であるので、それまでの累計値ｋ２に値ｄｃ２を加算し、得られた値を新たな累計値ｋ２とする（＃２５３）。累計値ｋ２が「２４」を超えた場合には（＃２５４でイエス）、ドット数の最大値を超えているので、累計値ｋ２から「２５」を差し引く（＃２５５）。そして、累計値ｋ２をドット数として、パターン番号ｐｎで特定されるディザパターンＤＰを用いてドットパターンを再現する（＃２５６）。これを４回繰り返す（＃２５７）。４回分のドットパターンをラインバッファに転送し（＃２５８）、領域番号ｎｂに１を加算する（＃２５９）。
【０１３２】
ステップ＃２５２でイエス、つまり値ｄｃ２が「２５」である場合には、高解像度領域ＴＳの処理であるステップ＃２６１に移行する。ステップ＃２６１において、データをデコード３によって復元する（＃２６１）。復元された値から、高解像度領域ＴＳの８ドットのパターンを再現する（＃２６２）。これを３回繰り返す（＃２６３）。
【０１３３】
上に述べたように、圧縮処理に際して、２値画像データＤ１をディザパターン情報成分と画像情報成分とに分離する。そして、画像情報成分のみを取り出し、ハフマン法による符号化の処理を行って圧縮データＤ２とする。圧縮データＤ２にはディザパターン情報成分を含めないので、高い圧縮率と高速処理を実現することができる。
【０１３４】
また、代表値ａの算出のための処理を上下限テーブルＴＪＫからデータを読み出すことで高速に行うことができ、全体の処理時間の短縮に大きく寄与する。また、高解像度領域ＴＳの処理においては、８画素の画像データを１つの数値で読み替えるので、アドレス指示が速い。これによっても全体の処理時間の短縮が図られる。
【０１３５】
プリンタ１３において、圧縮データＤ２の復元のために用いるＡＳＩＣのコストは、オンチップメモリーの作業領域の大きさによって大きく左右される。データの展開処理を行うための作業領域としては、読み込んだディザパターンＤＰおよびデコード表ＤＣの格納領域、処理対象領域のデータの格納領域が必要である。これらのデータ量は、例えば、ディザパターンＤＰが数百バイト〜数Ｋバイト程度、デコード表ＤＣが２Ｋバイト程度であり、その他のバッファなどを含めても全体で３〜４Ｋバイト程度あれば十分である。したがって、３〜４Ｋバイト程度の小規模なＡＳＩＣをプリンタ１３に備えることによって、圧縮データＤ２の復元処理を高速で行うことができる。また、デコード表ＤＣをＲＯＭに格納することにより、さらに容量を小さくすることができる。このように、プリンタ１３において、小規模なハードウェアで圧縮データＤ２を高速に展開することができる。これにより、安価なプリンタ１３を使用しつつ、全体の処理を短時間で行うことが可能となる。
【０１３６】
上に述べた実施形態において、図３に示す低解像度領域区画部１０１は、２値画像データＤ１を低解像度領域ＴＬに区画するものであるが、その区画の仕方については、種々の方法を採用することが可能である。つまり、区画は仮想的なものでもよいので、２値画像データＤ１を領域ごとに実際に分割する必要はない。例えば、低解像度比較部１０２が比較すべき位置を指し示すためのアドレス指定を行うことでもよい。図３に示す圧縮データ作成部１００の構成は一例であり、種々の構成によって上に述べた機能を実現することが可能である。
【０１３７】
上に述べた実施形態においては、コンピュータ本体１１に擬似階調化部１７０が設けられ、ここで画像データＦＤの２値化処理を行ったが、コンピュータ本体１１の内部で２値化処理を行うことなく、外部から２値画像データＤ１を入力するようにしてもよい。その場合に、２値化処理に用いられたディザパターンＤＰなどの情報を取得しておけばよい。上の実施形態では、擬似階調化として２値化を行ったが、３値化、４値化などの多値化を行うことも可能である。                                                                
【０１３８】
上に述べた実施形態において、２値画像データＤ１は、それを構成する各画素にドットを打つか打たないかをフラグのあるなしで表現することが可能である。濃度の高い画素に対してドットを打つようにしてもよいし、濃度の低い画素に対してドットを打つようにしてもよい。代表値ａを求めるための画素の濃度値の最小値Ｊと最大値Ｋについても、濃度の低い画素に対してドットを打った場合を想定して求めてもよいし、濃度の高い画素に対してドットを打った場合を想定して求めてもよい。このように、階調性、濃度値、輝度値、および、それらとドットを打つ打たないことについて、種々の組み合わせを行うことが可能である。
【０１３９】
その他、コンピュータ本体１１、プリンタ１３、およびプリントシステム１の全体または各部の構成、機能、個数、ビット数、処理の内容または順序などは、本発明の趣旨に沿って適宜変更することができる。
【産業上の利用可能性】
【０１４０】
本発明は、ラスタプリンタやＧＤＩプリンタなどによって擬似階調化された画像データをプリントアウトするプリントシステムとして利用可能である。
【図面の簡単な説明】
【０１４１】
【図１】本発明に係るプリントシステムの全体構成を示す図である。
【図２】コンピュータ本体の機能的な構成を示すブロック図である。
【図３】コンピュータ本体の圧縮データ作成部を機能的に示すブロック図である。
【図４】プリンタの機能的な構成を示すブロック図である。
【図５】区画された低解像度領域を説明するための図である。
【図６】低解像度領域とディザパターンの例を示す図である。
【図７】サイズの異なる低解像度領域とディザパターンの例を示す図である。
【図８】上下限テーブルの例を示す図である。
【図９】複数の低解像度領域についての代表値の推移の例を示す図である。
【図１０】循環整数の例を示す図である。
【図１１】画像における代表値の差分の出現頻度の分布を表す図である。
【図１２】低解像度領域および中解像度領域を示す図である。
【図１３】画像におけるドット数の差分の出現頻度の分布を表す図である。
【図１４】ドットパターンの数値化を説明するための図である。
【図１５】各ドットパターンの出現頻度の分布を表す図である。
【図１６】ハフマンコード表の例を示す図である。
【図１７】デコード表の例を示す図である。
【図１８】圧縮処理の大まかな流れを示すフローチャートである。
【図１９】復元処理の大まかな流れを示すフローチャートである。
【図２０】圧縮データ作成部における圧縮処理のフローチャートである。
【図２１】圧縮データ作成部における圧縮処理のフローチャートである。
【図２２】データ復元部における復元処理のフローチャートである。
【図２３】データ復元部における復元処理のフローチャートである。
【図２４】本発明に係るプリントシステムの処理の概要を説明する図である。
【符号の説明】
【０１４２】
１  プリントシステム
１１  コンピュータ本体
１３  プリンタ
１００  圧縮データ作成部
１０１  低解像度領域区画部
１０２  低解像度比較部
１０３  低解像度代表値算出部
１０４  中解像度領域区画部
１０５  中解像度比較部
１０６  中解像度代表値算出部
１０７  ドットパターン抽出部
１０８  符号化部
１０９  データ送信部
３００  データ復元部
Ｄ１  ２値画像データ（擬似階調化された画像データ）
Ｄ２  圧縮データ
ＤＰ  ディザパターン
ＴＬ  低解像度領域（所定の領域）
ＴＭ  中解像度領域（所定の領域）
ＴＳ  高解像度領域（所定の領域）
【図１】
2006100977.tif 000003
【図２】
2006100977.tif 000004
【図３】
2006100977.tif 000005
【図４】
2006100977.tif 000006
【図５】
2006100977.tif 000007
【図６】
2006100977.tif 000008
【図７】
2006100977.tif 000009
【図８】
2006100977.tif 000010
【図９】
2006100977.tif 000011
【図１０】
2006100977.tif 000012
【図１１】
2006100977.tif 000013
【図１２】
2006100977.tif 000014
【図１３】
2006100977.tif 000015
【図１４】
2006100977.tif 000016
【図１５】
2006100977.tif 000017
【図１６】
2006100977.tif 000018
【図１７】
2006100977.tif 000019
【図１８】
2006100977.tif 000020
【図１９】
2006100977.tif 000021
【図２０】
2006100977.tif 000022
【図２１】
2006100977.tif 000023
【図２２】
2006100977.tif 000024
【図２３】
2006100977.tif 000025
【図２４】
2006100977.tif 000026