(57)【要約】【課題】画質の劣化とデータ量の増大との抑制。【解決手段】画像データに含まれるＮｂ個の画素によって構成されるブロックを対象に、最高の階調値の画素を含むグループと、最低の階調値の画素を含むグループとを含むＮｔ個のグループに分類する分類部と、Ｎｔ個のグループの少なくとも何れかについて、当該グループを構成する画素の位置を示す情報である位置情報を、圧縮データの一部として取得する位置情報作成部と、Ｎｔ個のグループそれぞれを対象に、Ｎｂ個の画素の階調値を表現するために要するデータ量よりも少ないデータ量による圧縮階調値を、各グループを構成する画素毎の階調値に基づき、圧縮データの一部として決定する圧縮階調値決定部と、を備え、圧縮階調値のデータ量と、位置情報のデータ量との合計データ量は、画像データのデータ量よりも小さいデータ圧縮システム。【選択図】図３
2018137497.tif 000002
【特許請求の範囲】
【請求項１】
画像データのハーフトーン処理における中間データとして、前記画像データを変換して圧縮データを作成するデータ圧縮システムであって、
前記画像データに含まれるＮｂ個の画素によって構成されるブロックを対象に、最高の階調値の画素を含むグループと、最低の階調値の画素を含むグループとを含むＮｔ（Ｎｔは２≦Ｎｔ＜Ｎｂを満たす整数）個のグループに分類する分類部と、
前記Ｎｔ個のグループの少なくとも何れかについて、当該グループを構成する画素の位置を示す情報である位置情報を作成する位置情報作成部と、
前記Ｎｔ個のグループそれぞれを対象に、前記Ｎｂ個の画素の階調値を表現するために要するデータ量よりも少ないデータ量による圧縮階調値を、各グループを構成する画素毎の階調値に基づき決定する圧縮階調値決定部と、を備え、
前記圧縮データは、前記位置情報と、前記圧縮階調値とを含み、
前記圧縮データのデータ量は、前記画像データのデータ量よりも小さく、
前記Ｎｔ個の圧縮階調値のそれぞれは、前記ブロックを構成する画素毎にドット形成の有無を決定するための情報である
データ圧縮システム。
【請求項２】
前記圧縮データのデータ量は、前記ハーフトーン処理によって得られるドットデータのデータ量よりも小さい
請求項１に記載のデータ圧縮システム。
【請求項３】
前記圧縮階調値決定部は、前記Ｎｔ個のグループそれぞれの前記圧縮階調値として、当該グループを構成する画素に格納された階調値の代表値であるグループ代表階調値を決定する
請求項１又は請求項２に記載のデータ圧縮システム。
【請求項４】
前記圧縮階調値決定部は、前記Ｎｔ個のグループそれぞれの前記圧縮階調値として、前記Ｎｔ個のグループそれぞれを対象に、前記画像データに含まれる１個の画素の階調値を表現するために要するデータ量よりも少ないデータ量によるブロック階調値を決定する
請求項１又は請求項２に記載のデータ圧縮システム。
【請求項５】
前記圧縮階調値決定部は、前記Ｎｔ個のグループそれぞれの前記圧縮階調値として、前記Ｎｔ個のグループそれぞれを対象に、当該グループを構成する画素に格納された階調値の代表値であるグループ代表階調値を、画素群を代表する画素群階調値であると仮定して、対応するブロック階調値を決定する
請求項１、請求項２又は請求項４に記載のデータ圧縮システム。
【請求項６】
画像データのハーフトーン処理における中間データとして、前記画像データを変換して圧縮データを作成するデータ圧縮装置であって、
前記画像データに含まれるＮｂ個の画素によって構成されるブロックを対象に、最高の階調値の画素を含むグループと、最低の階調値の画素を含むグループとを含むＮｔ（Ｎｔは２≦Ｎｔ＜Ｎｂを満たす整数）個のグループに分類する分類部と、
前記Ｎｔ個のグループの少なくとも何れかについて、当該グループを構成する画素の位置を示す情報である位置情報を作成する位置情報作成部と、
前記Ｎｔ個のグループそれぞれを対象に、前記Ｎｂ個の画素の階調値を表現するために要するデータ量よりも少ないデータ量による圧縮階調値を、各グループを構成する画素毎の階調値に基づき決定する圧縮階調値決定部と、を備え、
前記圧縮データは、前記位置情報と、前記圧縮階調値とを含み、
前記圧縮データのデータ量は、前記画像データのデータ量よりも小さく、
前記Ｎｔ個の圧縮階調値のそれぞれは、前記ブロックを構成する画素毎にドット形成の有無を決定するための情報である
データ圧縮装置。
【請求項７】
画像データのハーフトーン処理における中間データとして、前記画像データを変換して圧縮データを作成するデータ圧縮方法であって、
前記画像データに含まれるＮｂ個の画素によって構成されるブロックを対象に、最高の階調値の画素を含むグループと、最低の階調値の画素を含むグループとを含むＮｔ（Ｎｔは２≦Ｎｔ＜Ｎｂを満たす整数）個のグループに分類し、
前記Ｎｔ個のグループの少なくとも何れかについて、当該グループを構成する画素の位置を示す情報である位置情報を作成し、
前記Ｎｔ個のグループそれぞれを対象に、前記Ｎｂ個の画素の階調値を表現するために要するデータ量よりも少ないデータ量による圧縮階調値を、各グループを構成する画素毎の階調値に基づき決定し、
前記圧縮データは、前記位置情報と、前記圧縮階調値とを含み、
前記圧縮データのデータ量は、前記画像データのデータ量よりも小さく、
前記Ｎｔ個の圧縮階調値のそれぞれは、前記ブロックを構成する画素毎にドット形成の有無を決定するための情報である
データ圧縮方法。
【請求項８】
画像データのハーフトーン処理における中間データとして、前記画像データを変換して圧縮データを作成するために、
前記画像データに含まれるＮｂ個の画素によって構成されるブロックを対象に、最高の階調値の画素を含むグループと、最低の階調値の画素を含むグループとを含むＮｔ（Ｎｔは２≦Ｎｔ＜Ｎｂを満たす整数）個のグループに分類する分類部と、
前記Ｎｔ個のグループの少なくとも何れかについて、当該グループを構成する画素の位置を示す情報である位置情報を作成する位置情報作成部と、
前記Ｎｔ個のグループそれぞれを対象に、前記Ｎｂ個の画素の階調値を表現するために要するデータ量よりも少ないデータ量による圧縮階調値を、各グループを構成する画素毎の階調値に基づき決定する圧縮階調値決定部と、
としてコンピューターを機能させるためのプログラムであって、
前記圧縮データは、前記位置情報と、前記圧縮階調値とを含み、
前記圧縮データのデータ量は、前記画像データのデータ量よりも小さく、
前記Ｎｔ個の圧縮階調値のそれぞれは、前記ブロックを構成する画素毎にドット形成の有無を決定するための情報である
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、データの圧縮に関する。
【背景技術】
【０００２】
特許文献１には、何れの画素にドットを形成するかを決定する手法として、次の内容が開示されている。画素を所定の複数個ずつ画素群（ブロック）にまとめて、画素群を代表する階調値である画素群階調値を決定する。次いで、画素群階調値と、該画素群階調値を多値化することによって得られる多値化結果値（ブロック階調値）とが画素群毎に設定された対応関係を参照することにより、画素群階調値を多値化する。こうして画素群毎に得られた多値化結果値を画像出力装置の制御データとして供給する。画像出力装置では、供給された制御データに基づいて、画素群内の各画素についてドットの形成有無を決定した後、出力媒体上にドットを形成して画像を出力する。特許文献２，３にも同様な内容が開示されている。
【０００３】
上記におけるブロック階調値のデータ量は、通常、画像データのデータ量よりも小さい。このため、ブロック階調値の決定は、画像データの圧縮に該当する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４３７５３９８号公報
【特許文献２】特許第４３７５０５０号公報
【特許文献３】特許第４３７５０７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記先行技術の場合、ブロック毎に、１つのブロック階調値を決定する。このため、ブロック内にエッジが存在する場合、解像度低下により画質が劣化するおそれがある。一方で、エッジが存在するブロックについて、解像度低下を防ぐために画素単位で通常のディザー法を実施しようとすると、ブロック階調値ではなく、各画素の階調値が必要になるので、データ量が増大してしまう。
【０００６】
本開示は、上記を踏まえ、ブロック階調値を用いてハーフトーン処理する技術において、画質の劣化を抑制しつつ、データ量の増大を抑制することを解決課題とする。
【課題を解決するための手段】
【０００７】
本開示の一形態は、画像データのハーフトーン処理における中間データとして、前記画像データを変換して圧縮データを作成するデータ圧縮システムであって；前記画像データに含まれるＮｂ個の画素によって構成されるブロックを対象に、最高の階調値の画素を含むグループと、最低の階調値の画素を含むグループとを含むＮｔ（Ｎｔは２≦Ｎｔ＜Ｎｂを満たす整数）個のグループに分類する分類部と；前記Ｎｔ個のグループの少なくとも何れかについて、当該グループを構成する画素の位置を示す情報である位置情報を作成する位置情報作成部と；前記Ｎｔ個のグループそれぞれを対象に、前記Ｎｂ個の画素の階調値を表現するために要するデータ量よりも少ないデータ量による圧縮階調値を、各グループを構成する画素毎の階調値に基づき決定する圧縮階調値決定部と、を備え；前記圧縮データは、前記位置情報と、前記圧縮階調値とを含み；前記圧縮データのデータ量は、前記画像データのデータ量よりも小さく；前記Ｎｔ個の圧縮階調値のそれぞれは、前記ブロックを構成する画素毎にドット形成の有無を決定するための情報であるデータ圧縮システムである。
【０００８】
この形態によれば、画質の劣化を抑制しつつ、データ量の増大を抑制できる。画質の劣化が抑制されるのは、グループ毎に決定される圧縮階調値と、位置情報とが圧縮データに含まれるからである。圧縮階調値は、各グループを構成する画素毎の階調値に基づき決定される。このため、圧縮階調値と位置情報とを含む圧縮データを用いてドットデータを得れば、解像度低下による画質の劣化が抑制される。データ量の増大を抑制できるのは、圧縮データのデータ量が、画像データのデータ量よりも小さいからである。
【０００９】
上記形態において、前記圧縮データのデータ量は、前記ハーフトーン処理によって得られるドットデータのデータ量よりも小さくてもよい。この形態によれば、さらに、データ量の増大を抑制できる。
【００１０】
上記形態において、前記圧縮階調値決定部は、前記Ｎｔ個のグループそれぞれの前記圧縮階調値として、当該グループを構成する画素に格納された階調値の代表値であるグループ代表階調値を決定してもよい。この形態によれば、グループ代表階調値を、各グループ内画素の階調値を反映した値に決定できる。
【００１１】
上記形態において、前記圧縮階調値決定部は、前記Ｎｔ個のグループそれぞれの前記圧縮階調値として、前記Ｎｔ個のグループそれぞれを対象に、前記画像データに含まれる１個の画素の階調値を表現するために要するデータ量よりも少ないデータ量によるブロック階調値を決定してもよい。この形態によれば、さらに、データ量の増大を抑制できる。
【００１２】
上記形態において、前記圧縮階調値決定部は、前記Ｎｔ個のグループそれぞれの前記圧縮階調値として、前記Ｎｔ個のグループそれぞれを対象に、当該グループを構成する画素に格納された階調値の代表値であるグループ代表階調値を、画素群を代表する画素群階調値であると仮定して、対応するブロック階調値を決定してもよい。この形態によれば、ブロック階調値を、各グループ内画素の階調値を反映した値に決定できる。
【００１３】
本開示は、上記以外の種々の形態で実現できる。例えば、画像形成方法や、この方法を実現する画像形成装置、この方法を実現するためのプログラム、このプログラムを記憶した一時的でない記憶媒体等の形態で実現できる。
【図面の簡単な説明】
【００１４】
【図１】画像形成システムの概略図。
【図２】圧縮データ送信処理を示すフローチャート。
【図３】データ圧縮処理を示すフローチャート。
【図４】ブロックを示す図。
【図５】画像形成処理を示すフローチャート。
【図６】ハーフトーン処理を示すフローチャート。
【図７】大中小ドット密度変換テーブルをグラフで示した図。
【図８】代表値及びブロック階調値などの関係を示すテーブル。
【図９】着目ブロックの各画素に適用される閾値を例示する図。
【図１０】配置されたＨ値グループのドットの様子を示す図。
【図１１】Ｈ値グループのマスクの様子を示す図。
【図１２】配置されたＬ値グループのドットの様子を示す図。
【図１３】Ｌ値グループのマスクの様子を示す図。
【図１４】ドット配置の合成の様子を示す図。
【図１５】画像データにおける或るインク色の階調値を示す図（実施形態２）。
【図１６】階調値と、濃度パターンとの関係を示す図（実施形態２）。
【図１７】階調値が１の場合に発生するドットを示す図。
【図１８】階調値が２の場合に発生するドットを示す図。
【図１９】階調値が３の場合に発生するドットを示す図。
【図２０】階調値が１４の場合に発生するドットを示す図。
【図２１】階調値が１５の場合に発生するドットを示す図。
【図２２】階調値が１６の場合に発生するドットを示す図。
【図２３】ドット配置を合成の様子を示す図（実施形態２）。
【図２４】ドット配置の様子を示す図（比較例）。
【図２５】プリンターの概略図（実施形態３）。
【発明を実施するための形態】
【００１５】
実施形態１：
図１は、画像形成システム２０の概略を示す。画像形成システム２０は、データ圧縮装置１００と、プリンター２００とを備える。データ圧縮装置１００は、画像データを変換して圧縮データを作成する。圧縮データは、画像データのハーフトーン処理の過程において得られる中間データである。データ圧縮装置１００は、圧縮データをプリンター２００に送信する。画像形成システム２０は、このようなデータ圧縮装置１００を含むため、データ圧縮システムとしても機能する。
【００１６】
本実施形態におけるデータ圧縮装置１００は、パーソナルコンピューターである。データ圧縮装置１００は、ＣＰＵ１１０と、記憶媒体１２０とを備える。記憶媒体１２０には、圧縮用ＬＵＴと、プリンタードライバーとが記憶されている。記憶媒体１２０は、ＲＡＭを含み、プリンタードライバーの実行のための一時的な記憶を実行する。
【００１７】
プリンター２００は、画像形成装置である。プリンター２００は、ＣＰＵ２１０と、記憶媒体２２０と、画像形成機構２３０とを備える。記憶媒体２２０には、解凍用ＬＵＴと、ディザーマスクと、画像形成処理用プログラムが記憶されている。記憶媒体２２０は、ＲＡＭを含み、画像形成処理用プログラムの実行のための一時的な記憶を実行する。
【００１８】
画像形成機構２３０は、インクジェット方式による画像形成のためのハードウエアの総称である。画像形成機構２３０には、プリントヘッド等が含まれる。プリンター２００による画像形成の解像度は、１２００ｄｐｉである。プリンター２００が用いるインク色は、Ｃ（シアン）、Ｍ（マゼンタ）、Ｙ（イエロー）、Ｋ（ブラック）である。プリンター２００は、印刷媒体上に形成する各ドットのサイズを大、中、小の３種類の中から選ぶことができる。
【００１９】
図２は、圧縮データ送信処理を示すフローチャートである。データ圧縮装置１００が記憶しているプログラムをＣＰＵ１１０が実行することによって実現される。このプログラムは、プリンタードライバーである。
【００２０】
圧縮データは、ＲＧＢ値で表された画像データを元に作成される。本実施形態における画像データの解像度は、１２００ｄｐｉである。画像データは、各画素に階調値を示すデータが格納されている。本実施形態における階調値は、０〜２５５の整数値である。このため、画像データは、各画素について、ＲＧＢそれぞれに８ビットのデータ量、つまり２４ビットのデータ量を有する。
【００２１】
圧縮データ送信処理を開始すると、色変換を実行する（Ｓ３００）。つまり、ＲＧＢ値をインク色成分のＣＭＹＫ値に変換する。ＣＭＹＫ値それぞれも、０〜２５５の整数値を取る。以降はインク色成分毎に同様の処理を独立して行う。続いて、インク色成分毎にデータ圧縮処理を実行し（Ｓ４００）、圧縮データを送信して（Ｓ４９８）、圧縮データ送信処理を終える。
【００２２】
図３は、１色のインク色成分のデータ圧縮処理を示すフローチャートである。まず、未処理のブロックの何れか１つに着目する（Ｓ４１０）。
【００２３】
図４は、ブロックを示す。ブロックは、太線の長方形で囲われたＮｂ（本実施形態では８）個の正方形を一塊にしたものである。各正方形は、画素を示す。画素に格納された数字は、或るインク色（例えばブラック）の階調値を示す。
【００２４】
ブロックは、以降の処理において疑似画素として活用される。データの圧縮は、各インク色の各ブロックを１単位として実施する。
【００２５】
続いて、着目しているブロック（以下、着目ブロック）にエッジが含まれるかを判定する（Ｓ４２０）。本実施形態におけるＳ４２０は、次式が満たされるか否かによって実行される。
（最大階調値−最小階調値）≧閾値…（１）
閾値は、本実施形態では１００である。
【００２６】
図４に示されたブロックＢ１の場合、最大階調値が２４３、最小階調値が２４０である。よって、式（１）は満たされず、エッジは含まれないと判定されることになる。一方、ブロックＢ２の場合、最大階調値が２５５、最小階調値が３である。よって、式（１）は満たされて、エッジが含まれると判定されることになる。
【００２７】
エッジが含まれない場合（Ｓ４２０，ＮＯ）、フラグをＯＦＦに設定する（Ｓ４３０）。このフラグがＯＦＦであることは、エッジが含まれないことを示す。フラグのデータ量は、１ビットである。
【００２８】
続いて、ブロックの代表値を決定する（Ｓ４３５）。代表値は、グループ代表階調値とも言う。本実施形態における代表値は、ブロックに含まれる階調値の総和平均によって算出される。以下、単に平均という場合、総和平均のことを意味する。代表値は、平均が小数点以下を含む場合、小数点以下を四捨五入して整数値とする。例えば、ブロックＢ１の場合、平均が２４０．６２５なので、代表値は２４１である。このように、Ｎｂ個の画素の階調値を、１つの代表値で代表させることによって、１ブロック当たりの階調値を示すためのデータ量が８Ｎｂビットから８ビットに圧縮される。
【００２９】
続いて、代表値に基づき、ブロック階調値を決定する（Ｓ４４０）。代表値からブロック階調値への変換は、圧縮用ＬＵＴを参照することによって実現される。但し、圧縮用ＬＵＴは、ブロックの位置毎に用意されており、Ｓ４４０では、着目しているブロックの位置に応じた圧縮用ＬＵＴが用いられる。
【００３０】
ブロックの位置とは、ディザーマスクとの相対的な位置関係のことである。ディザーマスクの大きさを６４画素×６４画素とすると、通常の組織的ディザー法の場合、６４画素×６４画素の塊毎にディザーマスクに格納された閾値を適用することで、ドットの配置を決定する。このようにディザーマスクを適用すると仮定した場合、各ブロックは、ディザーマスク内の何れの位置に配置されるかが決まる。この位置を、ブロックの位置と呼ぶ。
【００３１】
ブロックの位置が決まれば、対応するディザーマスクの閾値が決まるので、代表値が０から２５５までの全ての場合について、ブロック内全画素の階調値が代表値の場合のハーフトーン結果を予め調査しておくことが可能となる。圧縮用ＬＵＴは、この調査結果に基づいて作成される。
【００３２】
以下に、圧縮用ＬＵＴの作成工程について述べる。０〜２５５の範囲の整数値のインク色成分：ＤＡＴＡは、大中小ドット密度変換テーブルを参照することで、大、中、小のドットサイズ別の密度データ：Ｌ＿ＤＡＴＡ，Ｍ＿ＤＡＴＡ，Ｓ＿ＤＡＴＡに変換される。図７は、上記の大中小ドット密度変換テーブルをグラフで示す。この変換を式で表すと、下記のようになる。
L_DATA = L_tbl(DATA)
M_DATA = M_tbl(DATA)
S_DATA = S_tbl(DATA)
【００３３】
大中小各密度データは、インク色データ同様、０〜２５５の範囲の整数値とする。このため、データ量は、８ビットになる。小ドットを１００％近くまで使用すると、ドット着弾位置のずれ等に対する耐性が低下するため、図７に示すように、小ドットの最大密度を６０％程度に抑えている。
【００３４】
調査対象画素のディザーマスク閾値（０〜２５４の範囲の整数）がTHiであるとする。この場合、入力データがDATAの場合のハーフトーン結果は、LM_DATA = L_DATA + M_DATA, T_DATA = LM_DATA + S_DATA とすると、以下の考え方によって、大、中、小、ＯＦＦの何れかに４値化できる。
【００３５】
(L_DATA > THi)ならば大ドットＯＮ
(L_DATA ≦ THi < LM_DATA)ならば中ドットＯＮ
(LM_DATA ≦ THi < T_DATA)ならば小ドットＯＮ
(T_DATA ≦ THi )ならばドットＯＦＦ
【００３６】
調査対象のブロックの位置の８画素のディザーマスク閾値：ＴＨ０〜ＴＨ７について、ＤＡＴＡ値が０から２５５までの全ての場合のハーフトーン結果を予め調査すると、ブロック内全画素が同一ＤＡＴＡ値の場合におけるブロック内のドット配置が全て明らかになる。
【００３７】
図９は、着目ブロックの各画素位置に適用される閾値を例示する。プリンター２００は、組織的ディザー法に用いられる一般的なディザーマスクを記憶している。図９に示された閾値は、ディザーマスクの一部であり、着目ブロックに適用される閾値を示す。なお、図９の内容は、解凍用ＬＵＴを用いたドット配置の決定の説明（後述）にも使用する。
【００３８】
図９の例では、調査対象ブロックの位置のディザーマスク閾値がＴＨ０＝２，ＴＨ１＝１６６，ＴＨ２＝２４１，ＴＨ３＝１９，ＴＨ４＝１０１，ＴＨ５＝１１４，ＴＨ６＝８，ＴＨ７＝５９となる。
【００３９】
この場合についての調査結果を元に、入力ＤＡＴＡが０から２５５まで１ずつ増加した場合に、ブロック内のドット配置、および、それに対応したブロック内の大中小各ドットの発生個数の組み合わせがどのように変化するかをテーブル化する。ブロック内のドット配置とは、ＴＨ０〜ＴＨ７の各画素位置についての大中小各ドットのＯＮ／ＯＦＦ結果である。さらにドット配置が、変化の何段階目にあたるかをブロック階調値としてカウントすると、このブロック位置に関して、図８に示すテーブルが作成できる。
【００４０】
図８に示されるテーブルの代表値からブロック階調値への対応部分が圧縮用ＬＵＴである。圧縮用ＬＵＴを参照することで、代表値をブロック階調値に変換することが可能となる。
【００４１】
図８は、代表値が０から２５５まで１ずつ増大していった場合に、ブロック階調値が０から２１までの２２段階に変化することを示す。この場合、代表値がａ（０〜２５５の何れか）であるということは、ブロック内全画素にａが入力されることを意味する。ブロック階調値が２２段階に変化することは、対象ブロックにおいて、大中小ドットの組み合わせが２２通り存在することを意味する。さらに、本実施形態の手法では、ブロック階調値に対応するブロック内ドット配置も１つに決まるので、ドット配置自体が２２段階に変化することになる。
【００４２】
図８に示されるテーブルは、ブロック階調値から、最終的なハーフトーン結果を得る目的に使用することもできる。最終的なハーフトーン結果とは、ブロック内のドット配置のことである。その場合は、ブロック階調値から、上下４画素ずつ、計４×２＝８画素の画素位置のドットＯＮ／ＯＦＦ結果への対応関係を参照すればよい。
【００４３】
本実施形態の圧縮用ＬＵＴは、ブロック内のディザーマスク閾値に依存するので、ブロックの位置毎に用意される。この場合、ブロック階調値の最大値も、ブロック内のディザーマスク閾値に依存するため、ブロック毎に異なった値を取りうる。
【００４４】
例えば、ＴＨ０＝２４０，ＴＨ１＝６５，ＴＨ２＝１２０，ＴＨ３＝９０，ＴＨ４＝１７，ＴＨ５＝１６８，ＴＨ６＝２１２，ＴＨ７＝３０の場合について同様に調査を行うと、ブロック階調値は０から１９までの２０段階に変化し、ブロック階調値１９の場合にブロック内８画素全てが大ドットＯＮとなる。
【００４５】
一方、図８のテーブルの例においてブロック階調値１９に対応するのは、大ドット６個、中ドット１個の組み合わせであった。このように、ブロック階調値に対応するドットの組み合わせは、ブロック内のディザーマスク閾値に依存するので、同じブロック階調値であってもブロックの位置によって、ハーフトーン結果は異なりうる。
【００４６】
ブロック階調値の最大値は、図７に示される大中小ドット密度変換テーブルにも依存し、複雑な特性の大中小ドット密度変換テーブルを用いた場合には、ブロック階調値の最大値が大きくなることがある。但し、実用的な特性の大中小ドット密度変換テーブルを使用する場合、１ブロックを構成する画素数が８画素であれば、ブロック階調値の最大値が３１を超えるケースはなかった。従って、ブロック階調値として５ビットを割り当てれば十分である。
【００４７】
仮にブロック階調値の最大値が３１を超えるケースが発生した場合は、結果としてブロック階調値の最大値が３１以下に収まるように、ディザーマスクまたは大中小ドット密度変換テーブルを修正することで対応できる。
【００４８】
以上のように本実施形態のブロック階調値は、５ビットのデータ量で表現できる。上記で決定された代表値のデータ量は８ビットなので、データ量が更に圧縮される。従って、ブロック階調値のデータ量は、Ｎｂ個の画素の階調値を表現するための８Ｎｂビットよりも小さい。さらに言えば、ブロック階調値のデータ量は、１つの画素の階調値を表現するためのデータ量（８ビット）よりも小さい。このように、エッジ無しのブロックの場合、フラグのデータ量と合計して、６ビットのデータ量になる。
【００４９】
このようにデータ量を圧縮しても、印刷物の画質が大きく劣化することは抑制される。このことについては、画像形成処理において後述する。
【００５０】
一方、エッジが含まれる場合（Ｓ４２０，ＹＥＳ）、フラグをＯＮに設定する（Ｓ４４２）。次に、着目ブロックに含まれる画素を、Ｈ値グループと、Ｌ値グループとに分類する（Ｓ４４５）。
【００５１】
Ｈ値グループとは、ブロックを構成する画素群の階調値を、高い値と低い値とに二分する場合に、高い値に分類される階調値を有する画素（以下、Ｈ値画素）によって構成されるグループである。一方、Ｌ値グループとは、低い値に分類される階調値を有する画素（以下、Ｌ値画素）によって構成されるグループである。
【００５２】
本実施形態では、Ｈ値グループとＬ値グループとの分類の基準に、最大階調値と最小階調値との平均を用いる。例えば図４に示したブロックＢ２の場合、最大階調値２５５と最小階調値３との平均は、１２９である。このため、階調値２５５の３つの画素は、Ｈ値グループに分類される。Ｈ値グループは、当然、最大階調値の画素を含む。一方、階調値３，５，１２，１５の画素は、Ｌ値グループに分類される。Ｌ値グループは、当然、最小階調値の画素を含む。平均に一致する場合は、本実施形態においてはＨ値グループに分類する。他の形態の場合、Ｌ値グループに分類してもよい。
【００５３】
次に、Ｈ値画素の位置を記憶する（Ｓ４５０）。Ｓ４５０で記憶される情報を、以下、位置情報と言う。位置情報は、画素毎にＨ値画素を示す１、又はＬ値画素を示す０が格納される。このため、位置情報のデータ量は、Ｎｂビットである。
【００５４】
次に、Ｈ値グループの代表値を決定する（Ｓ４６０）。本実施形態におけるＨ値グループの代表値は、Ｈ値画素の階調値の平均として算出される。
【００５５】
続いて、Ｈ値グループのブロック階調値を決定する（Ｓ４７０）。Ｓ４７０における決定の仕方は、Ｓ４４０と同じである。
【００５６】
次に、Ｌ値グループの代表値を決定する（Ｓ４８０）。本実施形態におけるＬ値グループの代表値は、Ｌ値画素の階調値の平均として算出される。
【００５７】
続いて、Ｌ値グループのブロック階調値を決定する（Ｓ４７０）。Ｓ４７０における決定の仕方は、Ｓ４４０と同じである。
【００５８】
このようにエッジ有りの場合、フラグと位置情報と２つのブロック階調値との情報が生成される。従って、合計（１＋２Ｄｂ＋Ｎｂ）ビットになる。Ｄｂはブロック階調値のデータ量を示す。本実施形態ではＤｂは５ビットなので、エッジ有りのブロックのデータ量は、１９ビットになる。
【００５９】
Ｓ４４０又はＳ４９０の後、全ブロックについて処理したかを判定する（Ｓ４９５）。未処理のブロックが有る場合（Ｓ４９５，ＮＯ）、Ｓ４１０に戻る。全ブロックについて処理した場合（Ｓ４９５，ＹＥＳ）、データ圧縮処理を終える。このようにして処理されたデータが圧縮データである。
【００６０】
圧縮データにおいて、Ｎｂ画素当たりのデータ量の平均Ｄｃ２は、次式で表される。
Ｄｃ２＝Ink｛（Ｄｂ＋１）×Ｅ＋（２Ｄｂ＋Ｎｂ＋１）（１−Ｅ）｝…（２）
Inkはインク色の数（本実施形態では４）、Ｅはエッジ無しのブロックの割合を示す。具体的な数字を例示するために、Ｅを９０％とすると、式（２）のＤｃ２は、２９．２ビットとなる。
【００６１】
画像データのデータ量は、８画素当たり、２４×８＝１９２ビットである。よって、データ圧縮処理による圧縮率は、約６．６である。圧縮率は、式（２）より、Ｄｂ，Ｅ，Ｎｂ，Inkの各値に依存する。Ｄｂ，Ｎｂ，Inkは、設計値である。Ｅは、画像データと、Ｎｂの値と、ブロックの形状と、エッジの有無の判定方法と、に依存する値である。
【００６２】
図３と共に説明したように、圧縮データは、代表値の決定と、ブロック階調値への変換との２段階の圧縮によって生成される。このため、代表値は第１の圧縮階調値であり，ブロック階調値は第２の圧縮階調値であると捉えることができる。そして、代表値と位置情報とを含むデータは第１の圧縮データであり、ブロック階調値と位置情報とを含むデータは第２の圧縮データであると捉えることができる。但し、本実施形態において単に圧縮データという場合、第２の圧縮データを指す。
【００６３】
ここで、第１の圧縮データによる圧縮率について検討する。第１の圧縮データにおいて、１ブロックを構成する画素群当たりのデータ量の平均値Ｄｃ１は、次式で表される。
Ｄｃ１＝Ink｛（８＋１）Ｅ＋（２×８＋Ｎｂ＋１）（１−Ｅ）｝…（３）
Ｅを９０％とすると、式（３）のＤｃ１は、４２．４ビットとなる。よって、第１の圧縮データによる圧縮率は、約４．５になる。１段階目の圧縮による圧縮率は、式（３）より、Ｅ，Ｎｂ，Inkの各値に依存する。
【００６４】
式（３）にＥ＝０を代入すると、Ｄｃ１＝１００ビットになる。よって、上記の平均Ｄｃ１は、Ｅ＝０であっても、１９６ビットより小さい。つまり、上記の平均Ｄｃ１は、Ｅ＝０であっても、画像データにおける１ブロックを構成する画素群当たりのデータ量よりも圧縮されている。
【００６５】
次に、図５を用いて、画像形成処理を説明する。画像形成処理は、圧縮データを受信したことを契機に、ＣＰＵ２１０によって実行される。
【００６６】
まず、ハーフトーン処理（後述）を実行する（Ｓ５００）。続いて、ハーフトーン処理によって得られたドットデータを対象にインターレース処理を実行し（Ｓ８００）、画像形成を実行する（Ｓ９００）。
【００６７】
図６は、ハーフトーン処理を示すフローチャートである。まず、未処理のブロックの何れか１つに着目する（Ｓ５１０）。Ｓ５１０は、Ｓ４１０と同様な処理である。
【００６８】
続いて、フラグがＯＮかを判定する（Ｓ５１５）。フラグがＯＦＦの場合（Ｓ５１５，ＮＯ）、着目ブロックのブロック階調値から、ドットサイズの組み合わせを取得する（Ｓ５２０）。
【００６９】
プリンター２００は、図８に示されたテーブルの内容のうち、ブロック階調値とドットサイズの組み合わせとの関係を、ブロックの位置毎に記憶している。これらをまとめ解凍用ＬＵＴと呼ぶ。
【００７０】
ブロック階調値とブロックの位置とが与えられれば、解凍用ＬＵＴを用いて、各サイズのドットの個数、つまりドットサイズの組み合わせを求めることができる。
【００７１】
次に、着目ブロックにおけるドット配置を決定し（Ｓ５３０）、Ｓ７００に進む。Ｓ５３０には、Ｓ５２０で取得したドットサイズの組み合わせと、ディザーマスクとを用いる。
【００７２】
例えば、ドットサイズの組み合わせが、大ドット３個、中ドット１個、小ドット１個である場合、閾値のうち、１〜３番目に値が小さい画素に対して大ドットを配置し、次に小さい値の画素に中ドットを配置し、次に小さい値の画素に小ドットを配置する。図９の例であれば、閾値２，８，１９の画素に大ドットを配置し、閾値５９の画素に中ドットを配置し、閾値１０１に小ドットを配置する。
【００７３】
本来、ディザーマスクは、格納された閾値と、画像データにおける各画素の階調値との比較によって、ドット形成の有無を決定するために用いられる。ディザーマスクに格納された閾値は、見方によっては、ドット形成の優先順位を示していると捉えることができる。つまり、組織的ディザー法は、ディザーマスクの閾値としての数値が低い画素ほど、優先的にドットを形成することを要請している手法であると捉えることができる。Ｓ５３０では、この特徴を利用している。
【００７４】
図１０は、このように配置されたドットの様子を示す。Ｌは大ドット、Ｍは中ドット、Ｓは小ドットを示す。なお、大ドット３個、中ドット１個、小ドット１個の組み合わせは、図８のテーブル中には存在しない。しかし、大中小が同時にＯＮとなる最も複雑な場合について説明するため、例として挙げた。
【００７５】
一方、着目ブロックのフラグがＯＮの場合（Ｓ５１５，ＹＥＳ）、Ｈ値グループのブロック階調値と、Ｌ値グループのブロック階調値のそれぞれについて、ドットサイズの組み合わせを取得する（Ｓ５４０）。取得の方法は、Ｓ５２０と同じである。
【００７６】
続いて、Ｈ値グループ、Ｌ値グループそれぞれについて、ドット配置を決定する（Ｓ５４５）。決定の仕方は、Ｓ５３０と同じである。
【００７７】
次に、Ｈ値グループのドット配置を、位置情報を用いてマスクする（Ｓ５５０）。マスクについて説明するために、図１０に示されたドット配置が、Ｈ値グループのドット配置であるとする。そして、Ｈ値グループの位置が、図４に示されたブロックＢ２に含まれる３つの階調値２５５の位置であるとする。図１０に示したＨ値グループのドット配置は、ドットサイズの組み合わせが大ドット２つ、中ドット１つ、小ドット１つである場合に、図９に示した閾値を用いて配置して得られた結果である。
【００７８】
図１１は、Ｈ値グループのマスクの様子を示す図である。図１１に示されるように、Ｈ値グループの場合、位置情報において１が格納されている画素のドットは残し、位置情報において０が格納されている画素のドットは削除する。この結果、大ドット１個と、小ドット１個が残る。この演算を、本実施形態ではマスクと呼ぶ。
【００７９】
次に、Ｌ値グループのドット配置を、位置情報を用いてマスクする（Ｓ５５５）。マスクについて説明するために、図１２に示されたドット配置が、Ｌ値グループのドット配置であるとする。そして、Ｌ値グループの位置が、図４に示されたブロックＢ２に含まれる階調値２５５以外の位置であるとする。図１２に示したＬ値グループのドット配置は、ドットサイズの組み合わせが大ドット無し、中ドット無し、小ドット３つである場合に、図９に示した閾値を用いて配置して得られた結果である。
【００８０】
図１３は、Ｌ値グループのマスクの様子を示す図である。図１３に示されるように、Ｌ値グループの場合、位置情報において０が格納されている画素のドットは残し、位置情報において１が格納されている画素のドットは削除する。この結果、小ドット２個が残る。
【００８１】
続いて、Ｈ値グループとＬ値グループとのドット配置を合成し（Ｓ５６０）、Ｓ７００に進む。図１４は、ドット配置の合成の様子を示す。
【００８２】
図１４に示すように、マスク後のＨ値グループのドット配置と、マスク後のＬ値グループのドット配置との何れか一方にドットが配置されている画素には、そのドットが合成後にもそのまま配置される。一方、マスク後のＨ値グループのドット配置と、マスク後のＬ値グループのドット配置との何れにもドットが配置されている画素には、ドットが配置されない。なお、マスク後のＨ値グループのドット配置と、マスク後のＬ値グループのドット配置との両方にドットが配置されている画素は、マスクの特性上、存在しない。
【００８３】
Ｓ７００では、全ブロックの処理が完了したかを判定する。未処理のブロックが有る場合（Ｓ７００，ＮＯ）、Ｓ５１０に戻る。全ブロックの処理が完了した場合（Ｓ７００，ＹＥＳ）、ハーフトーン処理を終える。このようにして、ハーフトーン処理により、全画素について各インク色のドット配置を示すドットデータが得られる。ドット配置は、画素毎にドット形成の有無を示す情報である。本実施形態におけるドット配置は、ドット形成の有りの場合には、ドットのサイズを示す情報である。
【００８４】
ドットデータにおいて、１ブロックを構成する画素群当たりのデータ量の平均Ｄｈは、次式で表される。下記式のＬｓは、log2Ｓの小数点以下を切り上げて整数化した演算結果を示す。
Ｄｈ＝Ink×Ｎｂ×Ｌｓ…（４）
本実施形態の場合、Ｄｈ＝４×８×２＝６４ビットとなる。このため、圧縮データのデータ量は、Ｅ値次第で、ドットデータのデータ量よりも小さくなる。なお通常は、画像データにおけるＥ値は９０％以上なので、圧縮データのデータ量はドットデータのデータ量よりも小さい。
【００８５】
本実施形態によれば、少なくとも以下の効果を得ることができる。
【００８６】
（ａ）画像データからドットデータを得るための処理負荷が小さい。これは、代表値を決定した後は、圧縮用ＬＵＴ、解凍用ＬＵＴ及びディザーマスクを参照するだけでドット配置を決定または仮決定できるからである。
【００８７】
（ｂ）ブロック内にエッジが有る場合には、２つの仮決定されたドット配置を合成して、ドット配置を決定するので、画質の劣化が抑制されている。
【００８８】
（ｃ）ブロック階調値の決定と、ブロック階調値を用いたドット配置の取得とを、データ圧縮装置１００とプリンター２００とで分担して実行できる。このため、データ圧縮装置１００の処理負荷を軽減できる。ひいては、画像形成速度が遅くなりにくくなる。
【００８９】
（ｄ）画像データよりもデータ量が小さい圧縮データを転送するので、転送速度が画像形成速度のボトルネックになる可能性が低くなる。転送速度が画像形成速度のボトルネックになっている場合には、画像形成速度が速くなる。
【００９０】
（ｅ）圧縮データを転送するので、転送されたデータを一旦スプールデータとして保存する場合にも、スプールに必要な記憶容量が少なくて済む。
【００９１】
実施形態２：
実施形態２の説明は、実施形態１と異なる点を主な対象とする。明示しない内容については、実施形態１と同じである。なお、後述する実施形態３以降の説明についても、実施形態１と異なる点を主な対象とし、明示しない内容については実施形態１と同じである。
【００９２】
実施形態２では、ドットサイズは１種類のみである。つまり、Ｓ＝２である。実施形態２では、ブロックの大きさを４画素×４画素＝１６画素とする。
【００９３】
実施形態２におけるデータ圧縮処理を説明する。実施形態２では、ブロック階調値を、０〜１６の１７階調とする。このため、ブロック階調値のデータ量は５ビットである。
【００９４】
図１５は、画像データにおける或るインク色の階調値を示す。図１５は、画像データ全体から、１ブロック分を抜粋して示している。
【００９５】
図１５に示す例の場合、最大階調値が２１０であり、最小階調値が１０であるので、エッジ有り（Ｓ４２０，ＹＥＳ）と判定される。最大階調値と最小階調値との平均は１１０である。Ｌ値画素には、ハッチングが施されている。Ｈ値グループの階調値の平均は２０６．２５である。Ｌ値グループの階調値の平均は１１．７５である。
【００９６】
なお、全画素の階調値の平均は１０９である。全画素の平均は、公知の手法との比較のために、後の説明で用いる。
【００９７】
Ｓ４７０及びＳ４９０において、上記の平均を０〜１６の１７階調のブロック階調値に変換するため、上記の平均の値に１６／２５５を乗じた後、整数化する。但し、単純に四捨五入等で整数化すると、１７階調しか再現できないことに起因する疑似輪郭が発生する。
【００９８】
本実施形態では、疑似輪郭をできるだけ抑制するために、ブロック毎に０以上１未満の乱数：ｒａｎｄ（）を発生させ、それを加えた上で小数点以下を切り捨てて整数化する。例えば、このブロックのｒａｎｄ（）値が０．３２４であるとする。小数点以下を切り捨てて整数化する演算子をＩＮＴ（）と表記すると、Ｈ値グループ及びＬ値グループは下記のように算出される。
Ｈ値グループ＝ＩＮＴ（２０６．２５×１６／２５５＋０．３２４）＝１３
Ｌ値グループ＝ＩＮＴ（１１．７５×１６／２５５＋０．３２４）＝１
【００９９】
なお、全画素の平均１０９を用いて、同様な計算を実施すると、下記のようになる。
ブロック全体の階調値＝ＩＮＴ（１０９×１６／２５５＋０．３２４）＝７
【０１００】
次に、本実施形態におけるハーフトーン処理を説明する。本実施形態では、Ｓ５２０及びＳ５４０の代わりに、濃度パターン法を用いてドット配置を取得する。
【０１０１】
プリンター２００の画像形成の解像度は１２００ｄｐｉであるので、ブロック階調値による１７階調が再現可能となる代わりに、解像度が縦横とも１／４に低下する。従って、３００ｄｐｉで１７階調の再現ができる画像形成が可能になる。
【０１０２】
図１６は、階調値と、濃度パターンとの関係を示す。ドットが形成される画素は、ブロック階調値以下の数字が格納されている画素である。つまり、小さい数字が格納されている画素ほど、優先的にドットが発生する。本実施形態では、ドット集中型を採用している。
【０１０３】
図１７は、ブロック階調値が１である場合に、ドットが１つ発生することを示す。ドットが発生する画素には、丸印が付されている。ドットが発生する画素は、閾値として１が格納された画素である。ドット集中型であるため、閾値として１〜４が格納された画素は、内部の画素である。内部の画素とは、他のブロックと隣接しない４つの画素のことである。
【０１０４】
図１８は、ブロック階調値が２である場合に、ドットが２つ発生することを示す。ドットが発生する画素は、閾値として２以下が格納された画素である。
【０１０５】
図１９は、ブロック階調値が３である場合に、ドットが３つ発生することを示す。ドットが発生する画素は、閾値として３以下が格納された画素である。
【０１０６】
図２０は、ブロック階調値が１４である場合に、ドットが１４個、発生することを示す。ドットが発生する画素は、閾値として１４以下が格納された画素である。
【０１０７】
図２１は、ブロック階調値が１５である場合に、ドットが１５個、発生することを示す。ドットが発生する画素は、閾値として１５以下が格納された画素である。
【０１０８】
図２２は、ブロック階調値が１６である場合に、ドットが１６個、発生することを示す。ドットが発生する画素は、閾値として１６以下が格納された画素である。つまり、全画素にドットが発生する。
【０１０９】
なお、図１６は、ブロック階調値が０である場合に、１つもドットが発生しないことを示す図であると捉えることができる。
【０１１０】
図２３は、Ｈ値グループとＬ値グループとのドット配置を合成（Ｓ５６０）の様子を示す。ドットが形成される画素には、丸印を付している。マスクされる画素には、ハッチングが施されている。
【０１１１】
図２４は、比較例として、ブロック全体の階調値を用いた場合のドット配置の様子を示す。図１５，図２３，図２４を比較すると、本実施形態によるドット配置の方が、比較例のドット配置よりも、画像の再現性が高いことが分かる。
【０１１２】
実施形態３：
図２５は、プリンター２０ａの概略を示す。プリンター２０ａは、色変換（Ｓ３００）及びデータ圧縮用プログラム（Ｓ４００）を実行することで、スタンドアローンで画像形成システム２０と同様に機能する。このため、プリンター２０ａは、広義の画像形成システムを構成する。さらに、プリンター２０ａは、データ圧縮装置またはデータ圧縮システムとして機能する。なお、データ圧縮処理用プログラムと、画像形成処理用プログラムとをまとめて、画像形成用プログラムとも呼ぶ。
【０１１３】
実施形態４：
本実施形態においては、位置情報のデータ量を（Ｎｂ−１）ビットとする。本実施形態の位置情報を用いても、実施形態１の場合と同じように画像形成を実行できる。
【０１１４】
本実施形態の位置情報の概略は、次の通りである。１ブロックをＨ値グループとＬ値グループとに分けた後、画素位置０と同じグループをＧ０グループ、画素位置０とは別のグループをＧ１グループとして取り扱う。画素位置０は、代表画素として、ブロック内の左上画素など、適当な画素位置に予め決めておく。画素位置０がＧ０グループに属することは、プリンター２００に予め記憶させておけば、画素位置０について位置情報に含める必要は無い。
【０１１５】
なお、本実施形態における位置情報は、Ｇ０グループ及びＧ１グループの何れがＨ値グループのもので、何れがＬ値グループのものであるかの情報（以下、識別情報）を、直接的には示さない。但し、識別情報が示されていなくても、ハーフトーン処理におけるドット配置の合成（Ｓ５６０）は、実行できる。具体的には、Ｇ０グループ及びＧ１グループの何れについても、実施形態１のＳ５５０として説明したように、他グループに属する画素をマスクすれば、実施形態１と同じ結果を得ることができる。
【０１１６】
実施形態１においては、位置情報に識別情報が含まれており、且つ、Ｌ値グループについてはマスクする必要が無いので、Ｌ値グループによるドット配置のマスクをするステップは無い。もちろん、実施形態１においても、Ｌ値グループについてマスクを実行してもよい。実施形態１の説明においては、位置情報はＨ値画素の位置を示すものとして説明したが、当然、位置情報はＬ値画素の位置を示す情報でもある。
【０１１７】
なお、本実施形態においても、Ｈ値グループとＬ値グループと区別し、異なる処理を実行してもよい。位置情報に識別情報が含まれていなくても、ブロック階調値から識別情報を得ることができる。つまり、本実施形態におけるブロック階調値と代表値との関係は、図８に示すように、広義の単調増加なので、Ｇ０のブロック階調値とＧ１のブロック階調値とを比較して前者が大きければ、Ｇ０グループがＨ値グループ、後者が大きければＧ１グループがＨ値グループと分かる。
【０１１８】
実施形態５：
本実施形態においては、ブロック内におけるエッジの有無を区別しない。つまり、データ圧縮処理において、Ｓ４２０の判定を廃止し、全ブロックについて、Ｓ４４５〜Ｓ４９０を実行する。このため、フラグが不要となる。そして、ハーフトーン処理において、Ｓ５１５の判定を廃止し、全ブロックについてＳ５４０〜Ｓ５６０を実行する。
【０１１９】
なお、ブロック内全画素が同一階調値の場合、Ｓ４４５において平均値以上をＨ値グループとした場合は、全画素がＨ値グループに分類されるので、以降のＬ値グループの処理は省略してもよい。省略しない場合は、Ｌ値グループのドット配置は合成時にどの画素にも反映されないため、Ｌ値グループの代表値は、例えば０などの適当な値として処理すればよい。
【０１２０】
本実施形態における圧縮データにおいて、１ブロックを構成する画素群当たりのデータ量の平均Ｄｃ２は、次式で表される。
Ｄｃ２＝Ink（２Ｄｂ＋Ｎｂ）…（５）
【０１２１】
実施形態１と同じ数値を代入すると、４×（２×５＋８）＝７２ビットになる。このように、画像データよりは圧縮されているものの、ドットデータについてのデータ量の平均Ｄｈである６４ビットよりも大きくなる。このため、実施形態５の変形例として、ドットデータの生成までをデータ圧縮装置１００で実行し、生成されたドットデータをプリンター２００に送信するようにしてもよい。
【０１２２】
但し、データ圧縮装置１００がドットデータの生成までを実行する場合、データ圧縮装置１００の処理負荷が大きくなり過ぎることによって、印刷物が得られるまでの時間が長くなることもあり得る。これに対し、本実施形態の場合、実施形態１と同様、圧縮データを転送することによる利点を享受できる。圧縮データを転送することによる利点は、主に、実施形態１で説明した（ｃ），（ｄ），（ｅ）である。
【０１２３】
なお、式（４），（５）から明らかなように、データ量Ｄｃ２，Ｄｈの大小関係は、Ｄｂ及びＮｂの値に依存する。次式を満たす場合には、実施形態１と同様、圧縮データは、ドットデータよりもデータ量が小さくなる。
ＮｂＬｓ＞２Ｄｂ＋Ｎｂ
⇔Ｌｓ−１＞２Ｄｂ／Ｎｂ…（６）
【０１２４】
式（６）より、Ｓ＝２の場合、つまりドットサイズが１種類の場合には、不等式が成立することは無い。Ｓ＞２の場合として例えばＳ＝４を式（６）に代入すると、Ｎｂ＞２Ｄｂになる。よって、例えば、Ｎｂが１２画素（例えば３画素×４画素）、Ｄｂが５ビットの場合に不等式が成立する。
【０１２５】
一方で、本実施形態における第１の圧縮データにおけるデータ量の平均Ｄｃ１と、データ量Ｄｈとの関係において、Ｄｈ＞Ｄｃ１となる条件は、次の式で表される。
ＮｂＬｓ＞２×８＋Ｎｂ
⇔Ｌｓ−１＞１６／Ｎｂ…（７）
【０１２６】
例えばＳ＝４を式（７）に代入すると、Ｎｂ＞１６になる。よって、例えば、Ｎｂが１８画素（例えば３画素×６画素）の場合に不等式が成立する。
【０１２７】
本実施形態の場合、実施形態１と比べ、全ブロックを同じように処理することによって、条件分岐が減って処理が簡略化されるという利点が有る。特に、処理をハードウエア化してＬ値グループとＨ値グループの処理を並列実行する場合などには速度低下もなく有効である。
【０１２８】
なお、データ圧縮処理は図３の、エッジ有りブロックとエッジ無しブロックとで異なる処理を行う実施形態１の方式、ハーフトーン処理は全てのブロックをエッジ有りブロックとして処理する実施形態５の方式の組み合わせで行うことも可能である。その場合エッジ無しブロックについては、ハーフトーン処理では全画素をＨ値グループとし、Ｌ値グループの代表値は０などの適当な値とすればよい。この方式では、実施形態１の高い圧縮率と、実施形態５のハードウエア化に適したシンプルな手法との両立ができる。
【０１２９】
本開示は、本明細書の実施形態や実施例、変形例に限られるものではなく、その趣旨を逸脱しない範囲において種々の構成で実現できる。例えば、発明の概要の欄に記載した各形態中の技術的特徴に対応する実施形態、実施例、変形例中の技術的特徴は、先述の課題の一部又は全部を解決するために、或いは、先述の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせができる。その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除できる。例えば、以下のものが例示される。
【０１３０】
同じブロックに対して、複数のブロック階調値を決定する場合に、決定する値の数は、Ｈ値グループおよびＬ値グループの２つより多くてもよい。但し、決定する値の数Ｎｔは、Ｎｂ（１ブロックを構成する画素の数）よりも少ないことが好ましい。つまり、Ｎｂ＞Ｎｔが好ましい。例えば、Ｎｂ＝８の場合に、Ｎｔ＝３に固定してもよいし、Ｎｔ＝２にする場合と、Ｎｔ＝３にする場合とを、ブロック内における画像データの階調値に応じて変更してもよい。
【０１３１】
上記のように、Ｎｔを３以上に変更する場合、式（２）は次のように一般化される。下記式のＬｎは、log2Ｎｔの小数点以下を切り上げて整数化した演算結果を示す。
Ｄｃ２＝Ink｛（Ｄｂ＋１）Ｅ＋（ＮｔＤｂ＋ＬｎＮｂ＋１）（１−Ｅ）｝…（２Ａ）
【０１３２】
同様に、式（３）は次のように一般化される。下記式では、インク色の階調を表現するためのデータ量（実施形態１では８ビット）をＤｉと表記する。
Ｄｃ１＝Ink｛（Ｄｉ＋１）Ｅ＋（ＮｔＤｉ＋ＬｎＮｂ＋１）（１−Ｅ）｝…（３Ａ）
【０１３３】
同様に、式（５）は次のように一般化される。
Ｄｃ２＝Ink（ＮｔＤｂ＋ＬｎＮｂ）…（５Ａ）
【０１３４】
同様に、式（６）は次のように一般化される。
ＮｂＬｓ＞ＮｔＤｂ＋ＬｎＮｂ
⇔Ｌｓ−Ｌｎ＞ＮｔＤｂ／Ｎｂ…（６Ａ）
【０１３５】
同様に、式（７）は次のように一般化される。
ＮｂＬｓ＞ＮｔＤｉ＋ＬｎＮｂ
⇔Ｌｓ−Ｌｎ＞ＮｔＤｉ／Ｎｂ…（７Ａ）
【０１３６】
画像データとの比較については、下記のようになる。画像データにおける１画素当たりのデータ量をＤｐ（実施形態では２４）ビットとすると、ブロック内におけるエッジの有無を区別しない場合に、次式を満たすとき、圧縮データは、画像データよりもデータ量が小さくなる。
ＤｐＮｂ＞Ink（ＮｔＤｂ＋ＬｎＮｂ）…（８）
【０１３７】
ブロック内におけるエッジの有無を区別しない場合に、次式を満たすとき、１段階目の圧縮によるデータは、画像データよりもデータ量が小さくなる。
ＤｐＮｂ＞Ink（ＮｔＤｂ＋ＬｎＮｂ）…（９）
【０１３８】
この他、他の変形例が挙げられる。
【０１３９】
１段階目の圧縮によって得られるデータを転送対象にしてもよい。つまり、Ｈ値グループおよびＬ値グループの代表値、並びに位置情報を転送するようにしてもよい。この変形例を実施形態４に適用した場合、当然、プリンター２００は、代表値を用いても識別情報を得ることができる。
【０１４０】
エッジの有無の判定方法や、Ｈ値グループとＬ値グループとの分類の方法は、適宜、変更してもよい。例えば、Ｈ値グループとＬ値グループとの分類の方法として、固定値（階調値１２８）を閾値としてもよい。
【０１４１】
代表値は、総和平均以外の手法で決定してもよい。例えば、相乗平均、中央値または最頻値を用いてもよい。或いは、ブロック内における最高の階調値をＨ値グループの代表値としてもよいし、ブロック内における最低の階調値をＬ値グループの代表値としてもよい。
【０１４２】
代表値を決定してから、ブロック階調値を決定する代わりに、複数の画素毎にブロック階調値を求め、複数個のブロック階調値の代表値を決定することで、Ｈ値グループおよびＬ値グループそれぞれのブロック階調値を決定してもよい。
【０１４３】
ドットの個数の組み合わせから、ドット配置を仮決定する（Ｓ５３０，Ｓ５４５）ために、ディザーマスクや濃度パターン法を利用しなくてもよい。例えば、ランダムに配置してもよい。
【０１４４】
ブロック階調値に基づき、ドット配置を仮決定する手法（実施形態ではＳ５４０，Ｓ５５０）を変更してもよい。例えば、ＬＵＴの１回の参照で、ブロック階調値からドット配置の仮決定を実施してもよい。このＬＵＴは、ブロックの位置毎に用意されており、図８では代表値から上４画素ドット配置および下４画素ドット配置への対応部に相当し、ブロック階調値と、ドット配置とが対応付けられている。この変形例では、解凍用ＬＵＴのデータ量が増大するものの、ドット配置のための処理が速くなる。
【０１４５】
ドット配置を仮決定する他の手法として、ＬＵＴを１回、参照することで、ブロック階調値を、大中小各ドットサイズのＯＮドット個数の組み合わせを示すＯＮドット個数対応データに変換し、ＯＮドット個数対応データから大中小各ドットサイズのＯＮドット個数を求めた上で、実施形態として説明したＳ５５０を実行してもよい。Ｎｂが８の場合は、大中小３種類のドットのＯＮドット個数の組み合わせは１６５通りある。０から１６４のＯＮドット個数対応データと１６５種類のＯＮドット個数の組み合わせを１対１で対応させるＯＮドット個数対応ＬＵＴを作成すれば、ＯＮドット個数対応ＬＵＴを参照することで、ＯＮドット個数対応データをＯＮドット個数データに戻せる。ＯＮドット個数対応データは８ビットで記憶できるので、大中小３種類のＯＮドット個数データを直接記述するよりもデータサイズを小さくできる。
【０１４６】
ブロック階調値のデータ量は、適宜、変更してもよい。例えば、ブロックを構成する画素数に応じて変更してもよい。１ブロック１６画素とした場合、殆どのケースでブロック階調値の最大値は、６３以下であった。この場合、ブロック階調値のデータ量は、６ビットで十分である。また、１ブロック４画素とした場合、殆どのケースでブロック階調値の最大値は、１５以下であった。この場合、ブロック階調値のデータ量は、４ビットで十分である。
【０１４７】
実施形態１では、全てのブロックを第２の圧縮データに変換後、最終的なドット配置を得るハーフトーン処理を実行したが、これらの処理単位はもっと少ないブロック数であってもよい。例えば、横方向は全ブロック、縦方向は１ブロックの単位で、第２の圧縮データへの変換後、ハーフトーン処理を実行してもよい。この場合も、実施形態１で説明した（ａ）〜（ｅ）の効果は有効である。
【０１４８】
１ブロック単位で、圧縮データへの変換およびハーフトーン処理を続けて実行してもよい。この場合（ｃ）〜（ｅ）の効果は失われるが、（ａ），（ｂ）の効果は残るので、十分に有用な技術となる。
【０１４９】
Ｌ値グループのマスクは、省略してもよい。この場合、マスク後のＨ値のドット配置と、マスクされていないＬ値グループのドット配置とが合成される。こうすれば、処理負荷が軽くなる。マスク後のＨ値のドット配置と、Ｌ値グループのドット配置との両方にドットが配置されている画素には、マスク後のＨ値のドットが配置される。但し、この手法は、ハーフトーン処理にＳ５３０に示したような、閾値の小さい画素位置にサイズの大きなドットが優先的に形成される手法を用いること、及び大中小ドットのトータル個数がブロック階調値に対して単調増加することが条件となる。
【０１５０】
上記実施形態において、ソフトウエアによって実現された機能及び処理の一部又は全部は、ハードウエアによって実現されてもよい。また、ハードウエアによって実現された機能及び処理の一部又は全部は、ソフトウエアによって実現されてもよい。ハードウエアとしては、例えば、集積回路、ディスクリート回路、または、それらの回路を組み合わせた回路モジュールなど、各種回路を用いてもよい。
【０１５１】
実施形態１で説明したように、ドット配置の決定の仕方をエッジの有無に基づき変更する形態において、全ブロックについて一旦、エッジ有りと見なしてＨ値グループ及びＬ値グループについてドット配置を仮決定した後、ブロック内の全画素がＨまたはＬの一方のグループに属する場合については、１画素も属さないグループについては仮決定結果を無視することでドット配置を決定してもよい。このような手法は、ハードウエアによって実現する場合に実用的である。
【符号の説明】
【０１５２】
２０…画像形成システム、２０ａ…プリンター、１００…データ圧縮装置、１１０…ＣＰＵ、１２０…記憶媒体、２００…プリンター、２１０…ＣＰＵ、２２０…記憶媒体、２３０…画像形成機構
【図１】
2018137497.tif 000003
【図２】
2018137497.tif 000004
【図３】
2018137497.tif 000005
【図４】
2018137497.tif 000006
【図５】
2018137497.tif 000007
【図６】
2018137497.tif 000008
【図７】
2018137497.tif 000009
【図８】
2018137497.tif 000010
【図９】
2018137497.tif 000011
【図１０】
2018137497.tif 000012
【図１１】
2018137497.tif 000013
【図１２】
2018137497.tif 000014
【図１３】
2018137497.tif 000015
【図１４】
2018137497.tif 000016
【図１５】
2018137497.tif 000017
【図１６】
2018137497.tif 000018
【図１７】
2018137497.tif 000019
【図１８】
2018137497.tif 000020
【図１９】
2018137497.tif 000021
【図２０】
2018137497.tif 000022
【図２１】
2018137497.tif 000023
【図２２】
2018137497.tif 000024
【図２３】
2018137497.tif 000025
【図２４】
2018137497.tif 000026
【図２５】
2018137497.tif 000027