(57)【要約】【課題】画像表示装置に個数データを出力して画像を表示させる場合に、個数データを効率よく出力する。【解決手段】画素を所定の複数個ずつ画素群にまとめ、画素群内に形成するドットの個数を決定した後、個数データに変換する。個数データは、画素群内に形成され得るドット個数の種類よりも、単一のデータでは表示可能な状態数の少ないデータ形式で表現されている。こうすれば個数データのサイズを小さくすることができる。次いで、必要に応じて個数データを解釈してドットの個数のデータに復元して、画素群内でドットを形成する画素位置を決定し、決定した画素位置にドットを形成することで画像を表示する。こうすれば、画素数の多い画像であっても、画素群内に形成するドットの個数についてのデータを迅速に取り扱うことができ、画像を迅速に表示させることが可能となる。【選択図】  図１
2005039491.tif 000002
【特許請求の範囲】
【請求項１】
画像データに所定の画像処理を施す画像処理装置と、該画像処理の結果に基づいてドットを形成することにより表示媒体上に画像を表示する画像表示装置と、を備える画像表示システムであって、
前記画像処理装置は、
前記画像を構成する複数の画素が所定の複数個ずつまとめられた画素群について、該画素群内に形成されるドットの個数を前記画像データに基づいて決定するドット個数決定手段と、
前記画素群毎に決定したドット個数を、該画素群内に形成され得るドット個数の種類よりも、単一のデータでは表示可能な状態数が少ない所定のデータ形式を用いて表現された個数データに変換して、前記画像表示装置に出力する個数データ出力手段と
を備え、
前記画像表示装置は、
前記出力された個数データを受け取って解釈することにより、前記画素群毎に決定されたドットの個数を取得する個数データ取得手段と、
前記取得したドット個数に基づいて、前記画素群内でドットが形成される画素位置を該画素群毎に決定する画素位置決定手段と、
前記決定した画素位置に基づいて前記表示媒体上にドットを形成するドット形成手段と
を備えており、
前記個数データ出力手段は、
前記画素群内に形成可能なドットの個数を前記個数データが表示するそれぞれの状態に対応付けた対応表であって、該個数データが表示する各状態から少なくとも１つの状態を除いた残余の状態の各々に、該画素群内に形成され得るドット個数を対応付けるとともに、対応付けられていないドット個数については、該除いた状態の個数データと該残余の状態の個数データとの組合せに、該ドット個数を対応付けた対応表を記憶している対応表記憶手段を備えるとともに、
前記画素群毎に決定された前記ドット個数を、前記対応表に基づいて前記個数データに変換した後、前記画像表示装置に出力する手段であり、
前記個数データ受取手段は、前記対応表に従って前記個数データを解釈することにより、前記画素群毎に決定されたドット個数を取得する手段である画像表示システム。
【請求項２】
請求項１記載の画像表示システムであって、
前記個数データ出力手段は、前記画素群毎に決定したドット個数を、２のｎ乗個の状態を表示可能なデータ形式の個数データに変換して、前記画像表示装置に出力する手段である画像表示システム。
【請求項３】
請求項１記載の画像表示システムであって、
前記ドット個数決定手段は、表現する階調値の異なる複数種類のドットについて、前記画素群内に形成されるドットの個数を決定することにより、各種ドットの個数を決定する手段であり、
前記個数データ出力手段は、前記画素群内に形成される前記各種ドットの個数の組合せの種類よりも、単一のデータでは表現可能な状態数が少ない前記個数データに、前記決定された各種ドットの個数を変換して前記個数データとして出力する手段であり、
前記個数データ取得手段は、前記個数データを解釈することにより、前記画素群内に形成される各種ドットの個数を取得する手段であり、
前記画素位置決定手段は、前記画素群内でドットが形成される画素位置を、前記取得した各種ドットの個数に基づいて該各種ドット毎に決定する手段であり、
前記ドット形成手段は、前記表示媒体上に前記各種のドットを形成する手段であり、
前記対応表記憶手段は、前記対応表として、前記画素群内に形成可能な各種ドットの個数と、前記個数データが表示する各状態とを対応付けた対応表を記憶している手段である画像表示システム。
【請求項４】
請求項３記載の画像表示システムであって、
前記対応表記憶手段は、前記対応表として、前記画像表示装置が画像を表示するに際して前記画素群内に形成する各種ドットの個数の組合せと、前記個数データが表示する各状態とを対応付けた対応表を記憶している手段である画像表示システム。
【請求項５】
請求項１ないし請求項３のいずれかに記載の画像表示システムであって、
前記対応表は、前記除いた状態の個数データと前記残余の状態の個数データとの組合せには、前記画素群内に形成される頻度の低いドット個数が対応付けられている表である画像表示システム。
【請求項６】
請求項５記載の画像表示システムであって、
前記画素群内に形成される頻度の低いドット個数として、該画素群を構成する画素数の半分より数値の大きな整数が選択されている画像表示システム。
【請求項７】
請求項６記載の画像表示システムであって、
前記画素群内に形成される頻度の低いドット個数として、該画素群を構成する画素数の半分より数値の大きな整数の中から、少なくとも一部に連続しない部分を含むように複数の数値が選択されている画像表示システム。
【請求項８】
所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、表示媒体上に画像を表示する画像表示装置であって、
前記画像を構成する複数の画素が所定の複数個ずつまとめられた画素群毎に、該画素群内に形成すべきドットの個数を表す個数データを前記画像データとして受け取る個数データ受取手段と、
前記画素群内でドットが形成される画素位置を、前記ドットの個数に基づいて該画素群毎に決定する画素位置決定手段と、
前記決定した画素位置に基づいて前記表示媒体上にドットを形成するドット形成手段と
を備え、
前記個数データは、前記画素群内に形成され得るドット個数の種類よりも、単一のデータでは表示可能な状態数が少ない所定のデータ形式を用いて表現されたデータであり、
前記個数データ受取手段は、
前記画素群内に形成可能なドットの個数を前記個数データが表示するそれぞれの状態に対応付けた対応表であって、該個数データが表示する各状態から少なくとも１つの状態を除いた残余の状態の各々に、該画素群内に形成され得るドット個数を対応付けるとともに、対応付けられていないドット個数については、該除いた状態の個数データと該残余の状態の個数データとの組合せに、該ドット個数を対応付けた対応表を記憶している対応表記憶手段と、
前記受け取った個数データを前記対応表に基づいて解釈することにより、前記画素群内に形成すべきドットの個数を取得するドット個数取得手段と
を備えている画像表示装置。
【請求項９】
請求項８記載の画像表示装置であって、
前記個数データ受取手段は、前記個数データとして、２のｎ乗個の状態を表示可能なデータ形式で表現されたデータを受け取る手段である画像表示装置。
【請求項１０】
請求項８または請求項９記載の画像表示装置であって、
前記対応表は、前記除いた状態の個数データと前記残余の状態の個数データとの組合せには、前記画素群内に形成される頻度の低いドット個数が対応付けられている表である画像表示装置。
【請求項１１】
ドットを形成して画像を表示する画像表示装置において該ドットの形成を制御するために用いられる制御データを、該画像を表す画像データに所定の画像処理を加えて生成する画像処理装置であって、
前記画像を構成する複数の画素が所定の複数個ずつまとめられた画素群について、該画素群内に形成されるドットの個数を前記画像データに基づいて決定するドット個数決定手段と、
前記画素群毎に決定したドット個数を、該画素群内に形成され得るドット個数の種類よりも、単一のデータでは表示可能な状態数が少ない所定のデータ形式を用いて表現された個数データに変換し、前記制御データとして出力する個数データ出力手段と
を備え、
前記個数データ出力手段は、
前記画素群内に形成可能なドットの個数を前記個数データが表示するそれぞれの状態に対応付けた対応表であって、該個数データが表示する各状態から少なくとも１つの状態を除いた残余の状態の各々に、該画素群内に形成され得るドット個数を対応付けるとともに、対応付けられていないドット個数については、該除いた状態を示す個数データと該残余の状態の個数データとの組合せに、該ドット個数を対応付けた対応表を記憶している対応表記憶手段を備えるとともに、
前記画素群毎に決定されたドット個数を前記対応表に基づいて前記個数データに変換した後、前記制御データとして出力する手段である画像処理装置。
【請求項１２】
請求項１１記載の画像処理装置であって、
前記個数データ出力手段は、前記画素群毎に決定したドット個数を、２のｎ乗個の状態を表示可能なデータ形式の個数データに変換して、前記制御データとして出力する手段である画像処理装置。
【請求項１３】
請求項１１または請求項１２記載の画像処理装置であって、
前記対応表は、前記除いた状態の個数データと前記残余の状態の個数データとの組合せには、前記画素群内に形成される頻度の低いドット個数が対応付けられている表である画像処理装置。
【請求項１４】
画像データに所定の画像処理を施して、得られた結果に基づき表示媒体上にドットを形成することによって、画像を表示する画像表示方法であって、
前記画像を構成する複数の画素が所定の複数個ずつまとめられた画素群について、該画素群内に形成されるドットの個数を前記画像データに基づいて決定する第１の工程と、
前記画素群毎に決定したドット個数を、該画素群内に形成され得るドット個数の種類よりも、単一のデータでは表示可能な状態数が少ない所定のデータ形式を用いて表現された個数データに変換する第２の工程と、
前記変換された個数データを受け取って解釈することにより、前記画素群毎に決定されたドットの個数を取得する第３の工程と、
前記取得したドット個数に基づいて、前記画素群内でドットが形成される画素位置を該画素群毎に決定する第４の工程と、
前記決定した画素位置に基づいて前記表示媒体上にドットを形成する第５の工程と
を備えており、
前記第２の工程は、
前記画素群内に形成可能なドットの個数を前記個数データが表示するそれぞれの状態に対応付けた対応表であって、該個数データが表示する各状態から少なくとも１つの状態を除いた残余の状態の各々に、該画素群内に形成され得るドット個数を対応付けるとともに、対応付けられていないドット個数については、該除いた状態の個数データと該残余の状態の個数データとの組合せに、該ドット個数を対応付けた対応表を予め記憶しておき、
前記画素群毎に決定された前記ドット個数を、前記対応表に基づいて前記個数データに変換する工程であり、
前記第３の工程は、前記対応表に従って前記個数データを解釈することにより、前記画素群毎に決定されたドット個数を取得する工程である画像表示方法。
【請求項１５】
所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、表示媒体上に画像を表示する画像表示方法であって、
前記画像を構成する複数の画素が所定の複数個ずつまとめられた画素群毎に、該画素群内に形成すべきドットの個数を表す個数データを前記画像データとして受け取る工程（Ａ）と、
前記画素群内でドットが形成される画素位置を、前記ドットの個数に基づいて該画素群毎に決定する工程（Ｂ）と、
前記決定した画素位置に基づいて前記表示媒体上にドットを形成する工程（Ｃ）と
を備え、
前記工程（Ａ）は、
前記個数データとして、前記画素群内に形成され得るドット個数の種類よりも、単一のデータでは表示可能な状態数が少ない所定のデータ形式を用いて表現されたデータを受け取るとともに、
前記画素群内に形成可能なドットの個数を前記個数データが表示するそれぞれの状態に対応付けた対応表であって、該個数データが表示する各状態から少なくとも１つの状態を除いた残余の状態の各々に、該画素群内に形成され得るドット個数を対応付けるとともに、対応付けられていないドット個数については、該除いた状態の個数データと該残余の状態の個数データとの組合せに、該ドット個数を対応付けた対応表を予め記憶しておき、
前記受け取った個数データを前記対応表に基づいて解釈することにより、前記画素群内に形成すべきドットの個数を取得する工程である画像表示方法。
【請求項１６】
ドットを形成して画像を表示する画像表示装置が該ドットの形成を制御するために用いられる制御データを、該画像を表す画像データに所定の画像処理を加えて生成する画像処理方法であって、
前記画像を構成する複数の画素が所定の複数個ずつまとめられた画素群について、該画素群内に形成されるドットの個数を前記画像データに基づいて決定する工程（イ）と、
前記画素群毎に決定したドット個数を、該画素群内に形成され得るドット個数の種類よりも、単一のデータでは表示可能な状態数が少ない所定のデータ形式を用いて表現された個数データに変換し、前記制御データとして出力する工程（ロ）と
を備え、
前記工程（ロ）は、
前記画素群内に形成可能なドットの個数を前記個数データが表示するそれぞれの状態に対応付けた対応表であって、該個数データが表示する各状態から少なくとも１つの状態を除いた残余の状態の各々に、該画素群内に形成され得るドット個数を対応付けるとともに、対応付けられていないドット個数については、該除いた状態を示す個数データと該残余の状態の個数データとの組合せに、該ドット個数を対応付けた対応表を予め記憶しておき、
前記画素群毎に決定されたドット個数を前記対応表に基づいて前記個数データに変換した後、前記制御データとして出力する工程である画像処理方法。
【請求項１７】
画像データに所定の画像処理を施して、得られた結果に基づき表示媒体上にドットを形成することによって、画像を表示する方法をコンピュータを用いて実現するためのプログラムであって、
前記画像を構成する複数の画素が所定の複数個ずつまとめられた画素群について、該画素群内に形成されるドットの個数を前記画像データに基づいて決定する第１の機能と、
前記画素群毎に決定したドット個数を、該画素群内に形成され得るドット個数の種類よりも、単一のデータでは表示可能な状態数が少ない所定のデータ形式を用いて表現された個数データに変換する第２の機能と、
前記変換された個数データを受け取って解釈することにより、前記画素群毎に決定されたドットの個数を取得する第３の機能と、
前記取得したドット個数に基づいて、前記画素群内でドットが形成される画素位置を該画素群毎に決定する第４の機能と、
前記決定した画素位置に基づいて前記表示媒体上にドットを形成する第５の機能と
をコンピュータを用いて実現するとともに、
前記第２の機能は、
前記画素群内に形成可能なドットの個数を前記個数データが表示するそれぞれの状態に対応付けた対応表であって、該個数データが表示する各状態から少なくとも１つの状態を除いた残余の状態の各々に、該画素群内に形成され得るドット個数を対応付けるとともに、対応付けられていないドット個数については、該除いた状態の個数データと該残余の状態の個数データとの組合せに、該ドット個数を対応付けた対応表を予め記憶しておき、
前記画素群毎に決定された前記ドット個数を、前記対応表に基づいて前記個数データに変換する機能であり、
前記第３の機能は、前記対応表に従って前記個数データを解釈することにより、前記画素群毎に決定されたドット個数を取得する機能であるプログラム。
【請求項１８】
所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、表示媒体上に画像を表示する方法をコンピュータを用いて実現するためのプログラムであって、
前記画像を構成する複数の画素が所定の複数個ずつまとめられた画素群毎に、該画素群内に形成すべきドットの個数を表す個数データを前記画像データとして受け取る機能（Ａ）と、
前記画素群内でドットが形成される画素位置を、前記ドットの個数に基づいて該画素群毎に決定する機能（Ｂ）と、
前記決定した画素位置に基づいて前記表示媒体上にドットを形成する機能（Ｃ）と
をコンピュータを用いて実現するとともに、
前記機能（Ａ）は、
前記個数データとして、前記画素群内に形成され得るドット個数の種類よりも、単一のデータでは表示可能な状態数が少ない所定のデータ形式を用いて表現されたデータを受け取るとともに、
前記画素群内に形成可能なドットの個数を前記個数データが表示するそれぞれの状態に対応付けた対応表であって、該個数データが表示する各状態から少なくとも１つの状態を除いた残余の状態の各々に、該画素群内に形成され得るドット個数を対応付けるとともに、対応付けられていないドット個数については、該除いた状態の個数データと該残余の状態の個数データとの組合せに、該ドット個数を対応付けた対応表を予め記憶しておき、
前記受け取った個数データを前記対応表に基づいて解釈することにより、前記画素群内に形成すべきドットの個数を取得する機能であるプログラム。
【請求項１９】
ドットを形成して画像を表示する画像表示装置が該ドットの形成を制御するために用いられる制御データを、該画像を表す画像データに所定の画像処理を加えて生成する方法をコンピュータを用いて実現するためのプログラムであって、
前記画像を構成する複数の画素が所定の複数個ずつまとめられた画素群について、該画素群内に形成されるドットの個数を前記画像データに基づいて決定する機能（イ）と、
前記画素群毎に決定したドット個数を、該画素群内に形成され得るドット個数の種類よりも、単一のデータでは表示可能な状態数が少ない所定のデータ形式を用いて表現された個数データに変換し、前記制御データとして出力する機能（ロ）と
をコンピュータを用いて実現するとともに、
前記機能（ロ）は、
前記画素群内に形成可能なドットの個数を前記個数データが表示するそれぞれの状態に対応付けた対応表であって、該個数データが表示する各状態から少なくとも１つの状態を除いた残余の状態の各々に、該画素群内に形成され得るドット個数を対応付けるとともに、対応付けられていないドット個数については、該除いた状態を示す個数データと該残余の状態の個数データとの組合せに、該ドット個数を対応付けた対応表を予め記憶しておき、
前記画素群毎に決定されたドット個数を前記対応表に基づいて前記個数データに変換した後、前記制御データとして出力する機能であるプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、画像データに所定の画像処理を施して画像を表示する技術に関し、詳しくは、画像処理が施された画像データを画像表示装置に迅速に転送することによって、画像の表示を迅速化する技術に関する。
【０００２】
【従来の技術】
印刷媒体や液晶画面といった各種の表示媒体上にドットを形成することで画像を表現する画像表示装置は、各種画像機器の出力装置として広く使用されている。これら画像表示装置では、画像は画素と呼ばれる小さな領域に細分された状態で扱われており、ドットはこれら画素に形成される。個々の画素については、ドットを形成するか否かのいずれかの状態しか表現し得ないが、画像全体としてみれば、ドットが密に形成されている領域や、まばらに形成されている領域を生じさせることが可能であり、表現しようとする画像の階調値に合わせてドットの形成密度を適切に制御することで、多階調の画像を表示することが可能となる。例えば、印刷用紙上に黒いインクのドットを形成する場合、ドットが密に形成されている領域は暗く見えるし、逆にドットがまばらに形成されている領域は明るく見える。また、液晶画面に輝点のドットを形成する場合、ドットが密に形成された領域は明るく見えるし、まばらに形成された領域は暗く見えることになる。従って、ドットの形成密度を適切に制御してやれば、多階調の画像を表示させることが可能である。
【０００３】
こうした画像表示装置では、画像の階調値に応じて適切な密度でドットを形成するために、通常、次のような方法が用いられている。先ず、表示しようとする画像に所定の画像処理を施して、画像データを画素毎にドット形成の有無を示したデータに変換する。次いで、得られたドット形成の有無を示すデータを画像処理装置から画像表示装置に向かって出力する。画像表示装置では、こうして送られてきたデータに従って、それぞれの画素にドットを形成することにより画像を表示している。
【０００４】
近年では、こうした画像表示装置には、表示画像の高画質化や大画像化が要請されるようになってきた。高画質化の要請に対しては、画像をより細かな画素で構成することが効果的である。画像を構成している画素が細かくなれば、画素に形成されるドットが目立たなくなるので、表示画質を向上させることができる（例えば、特許文献１）。また、大画像化の要請に対しては、画像を構成する画素数を増やすことによって対応することが可能である。もちろん、画素数を増やすのではなく、個々の画素の大きさを大きくすることによっても表示画像を大きくすることはできるが、これでは画質の悪化を招いてしまうおそれがあるので、大画像化の要請に対しては画素数を増加させることが効果的なのである。
【０００５】
とは言え、前述したように画像表示装置では、画素毎にドット形成の有無を表すデータを画像処理装置から受け取って画像を表示しているので、画像を構成する画素数があまりに多くなると、データを受け取るために時間がかかってしまい、画像を迅速に表示することが困難となる。こうした問題を解決するために、本願の発明者は、複数個の画素を画素群にまとめて、画素群内に形成するドット個数を求め、画素毎にドット形成の有無を表すデータの代わりにドット個数のデータ（以下では、個数データと呼ぶことがあるものとする）を画像表示装置に出力する技術を開発して、既に出願済みである（特願２００３−８７１７６号）。かかる出願済みの技術では、画像表示装置は画素群毎にドット個数のデータを受け取ると、画素群内でドットを形成する画素位置を決定した後、これらの画素にドットを形成して画像を表示する。画素毎のドット形成の有無を表すデータの代わりに、ドット個数のデータを画像処理装置から画像表示装置に出力することとすれば、画素数が多くなっても迅速にデータを出力することができるので、画像を迅速に表示させることが可能となる。
【０００６】
【特許文献１】
特開２０００−１１５７１６号公報
【０００７】
【発明が解決しようとする課題】
こうした出願済みの技術において画像を迅速に表示するためには、画素群内に形成されるドット個数のデータを、画像表示装置にできるだけ効率よく出力することが望ましい。しかし実際には、ドット個数のデータを常に効率よく出力できるわけではなく、出力効率が低下して個数データの出力に時間がかかってしまい、画像を迅速に表示するという効果が減殺されてしまう場合がある。
【０００８】
ここでは画素群が８個の画素から構成されている場合を例にとって、こうした課題について説明する。この場合は、画素群内に形成されるドット個数は０個〜８個の９通りの値を取り得る。個数データを３ビットのデータとしたのでは８通りのドット個数しか表現できないから、１ビット増やして４ビットのデータとする必要がある。すなわち、取り得るドット個数が１通り少なければ、個数データを３ビットで出力すればよいところを、３ビットでは１通りだけ不足するために、全ての画素群について４ビットのデータを出力する必要が生じる。画素群あたり３ビットのデータを４ビットのデータに変更すると、データ量にして約３０％以上も増加する。同じ内容を出力するのに、データ量が増加すると言うことは、データの出力効率が低下していることになる。従って、このような場合にも画像を迅速に表示するためには、個数データを効率よく出力することが可能な技術の開発が必要とされている。
【０００９】
この発明は上述した課題を解決するためになされたものであり、画像表示装置に個数データを出力して画像を表示させる場合に、個数データを効率よく出力可能な技術の提供を目的とする。
【００１０】
【課題を解決するための手段およびその作用・効果】
上述した課題の少なくとも一部を解決するために、本発明の画像表示システムは、次の構成を採用した。すなわち、
画像データに所定の画像処理を施す画像処理装置と、該画像処理の結果に基づいてドットを形成することにより表示媒体上に画像を表示する画像表示装置と、を備える画像表示システムであって、
前記画像処理装置は、
前記画像を構成する複数の画素が所定の複数個ずつまとめられた画素群について、該画素群内に形成されるドットの個数を前記画像データに基づいて決定するドット個数決定手段と、
前記画素群毎に決定したドット個数を、該画素群内に形成され得るドット個数の種類よりも、単一のデータでは表示可能な状態数が少ない所定のデータ形式を用いて表現された個数データに変換して、前記画像表示装置に出力する個数データ出力手段と
を備え、
前記画像表示装置は、
前記出力された個数データを受け取って解釈することにより、前記画素群毎に決定されたドットの個数を取得する個数データ取得手段と、
前記取得したドット個数に基づいて、前記画素群内でドットが形成される画素位置を該画素群毎に決定する画素位置決定手段と、
前記決定した画素位置に基づいて前記表示媒体上にドットを形成するドット形成手段と
を備えており、
前記個数データ出力手段は、
前記画素群内に形成可能なドットの個数を前記個数データが表示するそれぞれの状態に対応付けた対応表であって、該個数データが表示する各状態から少なくとも１つの状態を除いた残余の状態の各々に、該画素群内に形成され得るドット個数を対応付けるとともに、対応付けられていないドット個数については、該除いた状態の個数データと該残余の状態の個数データとの組合せに、該ドット個数を対応付けた対応表を記憶している対応表記憶手段を備えるとともに、
前記画素群毎に決定された前記ドット個数を、前記対応表に基づいて前記個数データに変換した後、前記画像表示装置に出力する手段であり、
前記個数データ受取手段は、前記対応表に従って前記個数データを解釈することにより、前記画素群毎に決定されたドット個数を取得する手段であることを要旨とする。
【００１１】
また、上記の画像表示システムに対応する本発明の画像表示方法は、
画像データに所定の画像処理を施して、得られた結果に基づき表示媒体上にドットを形成することによって、画像を表示する画像表示方法であって、
前記画像を構成する複数の画素が所定の複数個ずつまとめられた画素群について、該画素群内に形成されるドットの個数を前記画像データに基づいて決定する第１の工程と、
前記画素群毎に決定したドット個数を、該画素群内に形成され得るドット個数の種類よりも、単一のデータでは表示可能な状態数が少ない所定のデータ形式を用いて表現された個数データに変換する第２の工程と、
前記変換された個数データを受け取って解釈することにより、前記画素群毎に決定されたドットの個数を取得する第３の工程と、
前記取得したドット個数に基づいて、前記画素群内でドットが形成される画素位置を該画素群毎に決定する第４の工程と、
前記決定した画素位置に基づいて前記表示媒体上にドットを形成する第５の工程と
を備えており、
前記第２の工程は、
前記画素群内に形成可能なドットの個数を前記個数データが表示するそれぞれの状態に対応付けた対応表であって、該個数データが表示する各状態から少なくとも１つの状態を除いた残余の状態の各々に、該画素群内に形成され得るドット個数を対応付けるとともに、対応付けられていないドット個数については、該除いた状態の個数データと該残余の状態の個数データとの組合せに、該ドット個数を対応付けた対応表を予め記憶しておき、
前記画素群毎に決定された前記ドット個数を、前記対応表に基づいて前記個数データに変換する工程であり、
前記第３の工程は、前記対応表に従って前記個数データを解釈することにより、前記画素群毎に決定されたドット個数を取得する工程であることを要旨とする。
【００１２】
かかる本発明の画像表示システムおよび画像表示方法においては、画素を所定の複数個ずつ画素群としてまとめ、該画素群内に形成するドットの個数を決定する。次いで、ドットの個数のデータを個数データに変換する。ここで、個数データは、画素群内に形成され得るドット個数の種類よりも、単一のデータでは表示可能な状態数が少ないデータ形式を用いて表現されている。こうして個数データを、表示可能な状態数が少ないデータ形式で表現してやれば、データ量を小さくすることができるので、データを効率よく取り扱うことができる。そして、必要に応じて個数データを解釈し、画素群内に形成するドットの個数のデータを取得して、得られたドット個数に基づいて画素群内でドットを形成する画素位置を決定する。こうして決定した画素位置にドットを形成することによって画像を表示する。
【００１３】
このような方法によって画像を表示すれば、たとえ画素数の多い画像であっても、画素群内に形成するドットの個数についてのデータを効率よく取り扱うことができるので、その分だけ、画像を迅速に表示させることが可能となる。
【００１４】
こうした画像表示システムにおいては、個数データのデータ形式を、２のｎ乗個の状態を表示可能なデータ形式とすることができる。
【００１５】
データは一般的に、２進数表示されることが多い。従って、個数データのデータ形式を、２のｎ乗個の状態を表示可能なデータ形式としておけば、個数データを２進数表示のデータでちょうど表現することができ、その分だけデータ量を少なくすることができるので好適である。
【００１６】
あるいは、こうした画像表示システムは、表現する階調値の異なる複数種類のドットを形成して画像を表示する表示システムにも好適に適用することができる。すなわち、所定の複数の画素を画素群としてまとめ、画素群内に形成される各種ドットの個数を決定し、決定した各種ドットの個数のデータを、所定のデータ形式で表現された個数データに変換する。ここで、個数データのデータ形式は、画素群内に形成される各種ドットの個数の組合せの種類よりも、単一のデータでは表現可能な状態数が少ないデータ形式を採用する。次いで、必要に応じて、この個数データを解釈することにより、画素群内に形成される各種ドットの個数を取得して、各種ドット毎に画素群内でドットを形成する画素位置を決定する。こうして決定した画素位置に、各種ドットを形成することによって画像を表示することとしてもよい。
【００１７】
こうすれば、各種のドットを形成して画像を表示する場合でも、画素群内に形成するドットの個数のデータを効率よく取り扱うことが可能となり、延いては画像を迅速に表示することが可能となるので好ましい。
【００１８】
こうした画像表示システムにおいては、次のような前記対応表を記憶しておくこととしても良い。すなわち、前記除いた状態の個数データと前記残余の状態の個数データとの組合せには、前記画素群内に形成される頻度の低いドット個数が対応付けられている対応表を記憶しておくこととしても良い。
【００１９】
ドット個数を、前記除いた状態の個数データと前記残余の状態の個数データとを組み合わせて表現した場合、そのドット個数についてはデータ量が増加してしまう。つまり、このように複数の個数データを組み合わせて表現するドット個数は、出現頻度が低いほどデータ量を小さくすることができる。このことから、前記除いた状態の個数データと前記残余の状態の個数データとの組合せには、前記画素群内に形成される頻度の低いドット個数が対応付けられている対応表を記憶しておけば、データ量が小さくなる分だけ効率よくデータを取り扱うことが可能となるので好ましい。
【００２０】
こうした画像表示システムでは、前記画素群内に形成される頻度の低いドット個数として、該画素群を構成する画素数の半分より数値の大きな整数を選択することとしてもよい。
【００２１】
表示媒体上にドットを形成して画像を表示する方式では、形成するドット数を増やすに従って、画像上での濃度も増加する。しかし、ドットの個数を同じように１つ増やした場合でも、多くのドットが形成されている場合と、ドットがあまり形成されていない場合とでは、画像に現れる濃度の変化度合いが異なっており、ドットがあまり形成されていない場合の方が濃度の変化度合いが大きくなる傾向にある。このことを逆から見れば、画素群の半分以上の画素にドットが形成されている状態が表現する濃度範囲は、半分以下の画素にしかドットが形成されていない状態が表現する濃度範囲よりも狭くなる傾向があると言うことができる。このことから、ドット個数として、画素群を構成する画素数の半分よりも大きな整数を選択しておけば、画素群内に形成される頻度の比較的低いドット個数を選択することができ、これによりドット個数のデータを効率よく取り扱うことが可能となるので好適である。
【００２２】
更に、頻度の低いドット個数として複数の整数値を選択する場合は、画素群を構成する画素数の半分より数値の大きな整数の中から、少なくとも一部に連続しない部分を含むように複数の数値を選択することとしても良い。
【００２３】
使用される頻度が低いものとして選択されると、そのドット個数のデータは、前述したように、複数の個数データを組み合わせて表現されることになる。入力される画像データが、画素群にこのような個数のドットを形成するようなデータであった場合、連続した値のドット個数を選択していると、複数の個数データを組み合わせてドット個数を表現する画素群が、画像の広い範囲にわたって連続して発生することが起こり得る。このようなことが生じた場合は、ドット個数のデータを取り扱う効率が低下してしまうことは避け難い。しかし、少なくとも一部に連続しない部分を含むように、換言すれば、選択した複数個の整数の間に少なくとも１つは選択しない整数が含まれるような状態で選択しておけば、複数の個数データを組み合わせて表現される画素群の間に、単独の個数データで表現される画素群が混ざることになるので、効率の低下を抑制することが可能となる。
【００２４】
また、従来技術の有する前述した課題の少なくとも一部を解決するために、本発明の画像表示装置は次の構成を採用した。すなわち、
所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、表示媒体上に画像を表示する画像表示装置であって、
前記画像を構成する複数の画素が所定の複数個ずつまとめられた画素群毎に、該画素群内に形成すべきドットの個数を表す個数データを前記画像データとして受け取る個数データ受取手段と、
前記画素群内でドットが形成される画素位置を、前記ドットの個数に基づいて該画素群毎に決定する画素位置決定手段と、
前記決定した画素位置に基づいて前記表示媒体上にドットを形成するドット形成手段と
を備え、
前記個数データは、前記画素群内に形成され得るドット個数の種類よりも、単一のデータでは表示可能な状態数が少ない所定のデータ形式を用いて表現されたデータであり、
前記個数データ受取手段は、
前記画素群内に形成可能なドットの個数を前記個数データが表示するそれぞれの状態に対応付けた対応表であって、該個数データが表示する各状態から少なくとも１つの状態を除いた残余の状態の各々に、該画素群内に形成され得るドット個数を対応付けるとともに、対応付けられていないドット個数については、該除いた状態の個数データと該残余の状態の個数データとの組合せに、該ドット個数を対応付けた対応表を記憶している対応表記憶手段と、
前記受け取った個数データを前記対応表に基づいて解釈することにより、前記画素群内に形成すべきドットの個数を取得するドット個数取得手段と
を備えることを要旨とする。
【００２５】
更に、上記の画像表示装置に対応する本発明の画像表示方法は、
所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、表示媒体上に画像を表示する画像表示方法であって、
前記画像を構成する複数の画素が所定の複数個ずつまとめられた画素群毎に、該画素群内に形成すべきドットの個数を表す個数データを前記画像データとして受け取る工程（Ａ）と、
前記画素群内でドットが形成される画素位置を、前記ドットの個数に基づいて該画素群毎に決定する工程（Ｂ）と、
前記決定した画素位置に基づいて前記表示媒体上にドットを形成する工程（Ｃ）と
を備え、
前記工程（Ａ）は、
前記個数データとして、前記画素群内に形成され得るドット個数の種類よりも、単一のデータでは表示可能な状態数が少ない所定のデータ形式を用いて表現されたデータを受け取るとともに、
前記画素群内に形成可能なドットの個数を前記個数データが表示するそれぞれの状態に対応付けた対応表であって、該個数データが表示する各状態から少なくとも１つの状態を除いた残余の状態の各々に、該画素群内に形成され得るドット個数を対応付けるとともに、対応付けられていないドット個数については、該除いた状態の個数データと該残余の状態の個数データとの組合せに、該ドット個数を対応付けた対応表を予め記憶しておき、
前記受け取った個数データを前記対応表に基づいて解釈することにより、前記画素群内に形成すべきドットの個数を取得する工程であることを要旨とする。
【００２６】
こうした画像表示装置および画像表示方法においては、画素群内に形成するドットの個数を表す個数データを受け取り、個数データに示されたドットの個数に基づいて画素群内でドットを形成する画素位置を決定した後、かかる画素位置にドットを形成することによって画像を表示する。ここで個数データは、画素群内に形成され得るドット個数の種類よりも、単一のデータでは表示可能な状態数が少ないデータ形式で表現されている。
【００２７】
このように個数データを、表現可能な状態数の少ないデータ形式で表現することとすれば、データ量を少なくすることができるので、個数データを効率よくに受け取ることができ、その分だけ画像を迅速に表示することが可能となる。
【００２８】
こうした画像表示装置においては、２のｎ乗個の状態を表示可能なデータ形式で表現された個数データを受け取ることとしてもよい。
【００２９】
データは一般に２進数表示されることが多い。従って、個数データが２のｎ乗個の状態を表示可能なデータ形式で表示されていれば、受け取った個数データを２進数表示でちょうど表示することができ、その分だけデータ量をすることが可能となるので好適である。
【００３０】
こうした画像表示装置では、前記除いた状態の個数データと前記残余の状態の個数データとの組合せには、前記画素群内に形成される頻度の低いドット個数が対応付けられているような対応表を記憶しておくこととしても良い。
【００３１】
このように複数の個数データを組み合わせて表現するドット個数を、出現頻度が低いドット個数としておけば、全体としてのデータ量を小さくすることができるので、効率よくデータを取り扱うことが可能となって好ましい。
【００３２】
更に、従来技術が有する前述した課題の少なくとも一部を解決するために、本発明の画像処理装置は、次の構成を採用した。すなわち、
ドットを形成して画像を表示する画像表示装置において該ドットの形成を制御するために用いられる制御データを、該画像を表す画像データに所定の画像処理を加えて生成する画像処理装置であって、
前記画像を構成する複数の画素が所定の複数個ずつまとめられた画素群について、該画素群内に形成されるドットの個数を前記画像データに基づいて決定するドット個数決定手段と、
前記画素群毎に決定したドット個数を、該画素群内に形成され得るドット個数の種類よりも、単一のデータでは表示可能な状態数が少ない所定のデータ形式を用いて表現された個数データに変換し、前記制御データとして出力する個数データ出力手段と
を備え、
前記個数データ出力手段は、
前記画素群内に形成可能なドットの個数を前記個数データが表示するそれぞれの状態に対応付けた対応表であって、該個数データが表示する各状態から少なくとも１つの状態を除いた残余の状態の各々に、該画素群内に形成され得るドット個数を対応付けるとともに、対応付けられていないドット個数については、該除いた状態を示す個数データと該残余の状態の個数データとの組合せに、該ドット個数を対応付けた対応表を記憶している対応表記憶手段を備えるとともに、
前記画素群毎に決定されたドット個数を前記対応表に基づいて前記個数データに変換した後、前記制御データとして出力する手段であることを要旨とする。
【００３３】
また、上述した画像処理装置に対応する本発明の画像処理方法は、
ドットを形成して画像を表示する画像表示装置が該ドットの形成を制御するために用いられる制御データを、該画像を表す画像データに所定の画像処理を加えて生成する画像処理方法であって、
前記画像を構成する複数の画素が所定の複数個ずつまとめられた画素群について、該画素群内に形成されるドットの個数を前記画像データに基づいて決定する工程（イ）と、
前記画素群毎に決定したドット個数を、該画素群内に形成され得るドット個数の種類よりも、単一のデータでは表示可能な状態数が少ない所定のデータ形式を用いて表現された個数データに変換し、前記制御データとして出力する工程（ロ）と
を備え、
前記工程（ロ）は、
前記画素群内に形成可能なドットの個数を前記個数データが表示するそれぞれの状態に対応付けた対応表であって、該個数データが表示する各状態から少なくとも１つの状態を除いた残余の状態の各々に、該画素群内に形成され得るドット個数を対応付けるとともに、対応付けられていないドット個数については、該除いた状態を示す個数データと該残余の状態の個数データとの組合せに、該ドット個数を対応付けた対応表を予め記憶しておき、
前記画素群毎に決定されたドット個数を前記対応表に基づいて前記個数データに変換した後、前記制御データとして出力する工程であることを要旨とする。
【００３４】
かかる本発明の画像処理装置および画像処理方法においては、所定の複数個ずつの画素を画素群としてまとめ、画素群内に形成するドットの個数を決定した後、所定のデータ形式に変換して個数データとして出力する。ここで、個数データは、画素群内に形成され得るドット個数の種類よりも、単一のデータでは表示可能な状態数の少ないデータ形式で表現されている。
【００３５】
単一のデータでは表現可能な状態数が少なくなるほど、データ量は少なくなる傾向がある。従って、画素群に形成するドット個数のデータを、表現可能な状態数の少ないデータ形式に変換してやれば、個数データのデータ量を少なくすることができるので、データを効率よく出力することができ、延いては、画像を迅速に表示させることが可能となるので好ましい。
【００３６】
こうした画像処理装置においては、画素群に形成するドット個数を、２のｎ乗個の状態を表示可能なデータ形式の個数データに変換して出力することとしてもよい。
【００３７】
データは一般に２進数表示されることが多いので、個数データのデータ形式を２のｎ乗個の状態を表示可能な形式としておけば、個数データを２進数表示でちょうど表示することが可能となる。このように、ちょうど２進数表示で表すことができれば、個数データのデータ量を小さくすることが可能となるので好適である。
【００３８】
また、こうした画像処理装置では、前記除いた状態の個数データと前記残余の状態の個数データとの組合せには、前記画素群内に形成される頻度の低いドット個数が対応付けられているような対応表を記憶しておくこととしても良い。
【００３９】
こうすれば、出願頻度の低いドット個数を、複数の個数データを組み合わせて表現することになり、効率よくデータを取り扱うことが可能となる。
【００４０】
更に本発明は、上述した画像表示方法あるいは画像処理方法を実現するためのプログラムをコンピュータに読み込ませ、コンピュータを用いて実現することも可能である。従って、本発明は次のようなプログラム、あるいは該プログラムを記録した記録媒体としての態様も含んでいる。すなわち、上述した画像表示方法に対応する本発明のプログラムは、
画像データに所定の画像処理を施して、得られた結果に基づき表示媒体上にドットを形成することによって、画像を表示する方法をコンピュータを用いて実現するためのプログラムであって、
前記画像を構成する複数の画素が所定の複数個ずつまとめられた画素群について、該画素群内に形成されるドットの個数を前記画像データに基づいて決定する第１の機能と、
前記画素群毎に決定したドット個数を、該画素群内に形成され得るドット個数の種類よりも、単一のデータでは表示可能な状態数が少ない所定のデータ形式を用いて表現された個数データに変換する第２の機能と、
前記変換された個数データを受け取って解釈することにより、前記画素群毎に決定されたドットの個数を取得する第３の機能と、
前記取得したドット個数に基づいて、前記画素群内でドットが形成される画素位置を該画素群毎に決定する第４の機能と、
前記決定した画素位置に基づいて前記表示媒体上にドットを形成する第５の機能と
をコンピュータを用いて実現するとともに、
前記第２の機能は、
前記画素群内に形成可能なドットの個数を前記個数データが表示するそれぞれの状態に対応付けた対応表であって、該個数データが表示する各状態から少なくとも１つの状態を除いた残余の状態の各々に、該画素群内に形成され得るドット個数を対応付けるとともに、対応付けられていないドット個数については、該除いた状態の個数データと該残余の状態の個数データとの組合せに、該ドット個数を対応付けた対応表を予め記憶しておき、
前記画素群毎に決定された前記ドット個数を、前記対応表に基づいて前記個数データに変換する機能であり、
前記第３の機能は、前記対応表に従って前記個数データを解釈することにより、前記画素群毎に決定されたドット個数を取得する機能であることを要旨とする。
【００４１】
また、上述した画像表示方法に対応する本発明のプログラムは、
所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、表示媒体上に画像を表示する方法をコンピュータを用いて実現するためのプログラムであって、
前記画像を構成する複数の画素が所定の複数個ずつまとめられた画素群毎に、該画素群内に形成すべきドットの個数を表す個数データを前記画像データとして受け取る機能（Ａ）と、
前記画素群内でドットが形成される画素位置を、前記ドットの個数に基づいて該画素群毎に決定する機能（Ｂ）と、
前記決定した画素位置に基づいて前記表示媒体上にドットを形成する機能（Ｃ）と
をコンピュータを用いて実現するとともに、
前記機能（Ａ）は、
前記個数データとして、前記画素群内に形成され得るドット個数の種類よりも、単一のデータでは表示可能な状態数が少ない所定のデータ形式を用いて表現されたデータを受け取るとともに、
前記画素群内に形成可能なドットの個数を前記個数データが表示するそれぞれの状態に対応付けた対応表であって、該個数データが表示する各状態から少なくとも１つの状態を除いた残余の状態の各々に、該画素群内に形成され得るドット個数を対応付けるとともに、対応付けられていないドット個数については、該除いた状態の個数データと該残余の状態の個数データとの組合せに、該ドット個数を対応付けた対応表を予め記憶しておき、
前記受け取った個数データを前記対応表に基づいて解釈することにより、前記画素群内に形成すべきドットの個数を取得する機能であることを要旨とする。
【００４２】
更に、上述した画像処理方法に対応する本発明のプログラムは、
ドットを形成して画像を表示する画像表示装置が該ドットの形成を制御するために用いられる制御データを、該画像を表す画像データに所定の画像処理を加えて生成する方法をコンピュータを用いて実現するためのプログラムであって、
前記画像を構成する複数の画素が所定の複数個ずつまとめられた画素群について、該画素群内に形成されるドットの個数を前記画像データに基づいて決定する機能（イ）と、
前記画素群毎に決定したドット個数を、該画素群内に形成され得るドット個数の種類よりも、単一のデータでは表示可能な状態数が少ない所定のデータ形式を用いて表現された個数データに変換し、前記制御データとして出力する機能（ロ）と
をコンピュータを用いて実現するとともに、
前記機能（ロ）は、
前記画素群内に形成可能なドットの個数を前記個数データが表示するそれぞれの状態に対応付けた対応表であって、該個数データが表示する各状態から少なくとも１つの状態を除いた残余の状態の各々に、該画素群内に形成され得るドット個数を対応付けるとともに、対応付けられていないドット個数については、該除いた状態を示す個数データと該残余の状態の個数データとの組合せに、該ドット個数を対応付けた対応表を予め記憶しておき、
前記画素群毎に決定されたドット個数を前記対応表に基づいて前記個数データに変換した後、前記制御データとして出力する機能であることを要旨とする。
【００４３】
加えて、本発明は、こうした各種のプログラムがコンピュータに読み取り可能に記録された記録媒体として把握することも可能である。
【００４４】
こうしたプログラム、あるいは記録媒体に記録されているプログラムをコンピュータに読み込ませ、該コンピュータを用いて上述の各種機能を実現すれば、例え画素数の多い画像であっても、迅速に画像を表示させることが可能となる。
【００４５】
【発明の実施の形態】
本発明の作用・効果をより明確に説明するために、本発明の実施の形態を、次のような順序に従って以下に説明する。
Ａ．発明の概要：
Ｂ．第１実施例：
Ｂ−１．装置構成：
Ｂ−２．画像印刷処理の概要：
Ｂ−３．第１実施例の個数データ生成処理：
Ｂ−４．第１実施例の個数データデコード処理：
Ｂ−５．第１実施例の画素位置決定処理：
Ｃ．第２実施例：
Ｃ−１．第２実施例の画像印刷処理の概要：
Ｃ−２．第２実施例の個数データ生成処理：
Ｃ−３．第２実施例の個数データデコード処理：
Ｃ−４．第２実施例の画素位置決定処理：
【００４６】
Ａ．発明の概要：
実施例についての詳細な説明に入る前に、図１を参照しながら、本発明の概要について説明しておく。図１は、印刷システムを例にとって、本発明の概要を説明するための説明図である。本印刷システムは、画像処理装置としてのコンピュータ１０と、画像表示装置としてのプリンタ２０等から構成されており、コンピュータ１０に所定のプログラムがロードされて実行されると、コンピュータ１０およびプリンタ２０などが全体として一体の印刷システムとして機能する。プリンタ２０は、印刷媒体上にドットを形成することによって画像を印刷する。コンピュータ１０は、印刷しようとする画像の画像データに所定の画像処理を施すことによって、プリンタ２０が画素毎にドットの形成を制御するためのデータを生成して、該プリンタ２０に供給する。
【００４７】
ここで、通常の印刷システムでは、コンピュータは画像データを、画像を構成する画素毎にドットの形成有無を表したデータに変換してプリンタに供給し、このデータに基づいてドットを形成することにより、画像を印刷している。ここで、印刷しようとする画像の画素数が多くなると、それに伴って、画素毎にドットの形成有無を表したデータのデータ量も増加するので、コンピュータからプリンタにデータを出力するために長い時間が必要となり、延いては印刷に要する時間も増加してしまう。こうした点を考慮して、図１に示したコンピュータ１０には、ドット個数決定モジュールと個数データ出力モジュールとが設けられており、次のような処理を行う。
【００４８】
ドット個数決定モジュールは、画像を構成する複数の画素が所定の複数個ずつまとめられた画素群について、該画素群内に形成されるドットの個数を、画像データに基づいて決定する。ここで画素群毎の個数データは、画像データを画素群にまとめた後、画素群毎にドット形成の有無を判断することによって生成することができる。あるいは、初めに画像をドット形成の有無による表現形式に変換した後、画素を所定の複数個ずつまとめて画素群を生成して、各画素群内に形成されるドットの個数を決定しても良い。図１に破線で示した部分には、互いに隣接する画素を４つずつ画素群としてまとめた場合を示している。図中に示した小さな正方形は画素を示しており、画素中に表された黒丸は、その画素にはドットを形成すると判断されたことを示している。尚、画素群としてまとめる画素の数は必ずしも４つである必要はなく、更には、画素群としてまとめられる画素は、必ずしも互いに隣接した画素でなくても構わない。
【００４９】
個数データ出力モジュールは、画素群内に形成されるドットの個数を表すデータをプリンタ２０に向かって出力する。このとき、ドットの個数を表すデータは、所定のデータ形式で表現された個数データに変換されて出力される。ここで、個数データのデータ形式は、画素群内に形成され得るドットの個数の種類よりも、１つのデータで表示可能な状態数の少ないデータ形式となっている。図１の例示に即して説明すると、画素群は４つの画素から構成されているものとしているから、画素群内に形成されるドットの個数は、０個から４個までの５つの状態を取ることができる。これに対して個数データは、１つのデータでは４つの状態しか表示できないデータ形式が使用されている。今、１つの個数データが採り得る４つの状態を、それぞれ「状態１」、「状態２」、「状態３」、「状態４」とする。そして例えば、個数データの「状態１」はドット個数０個を表し、個数データの「状態２」はドット個数１個を表し、「状態３」はドット個数２個を表すものとする。個数データが「状態４」の場合は、その個数データと次の個数データとでドットの個数を表すものとして、「状態４」と「状態１」とでドット個数３個を表し、「状態４」と「状態２」とでドット個数４個を表すものとする。こうしたドット個数と個数データとの対応関係は、対応表として予め記憶されており、個数データ出力モジュールは、かかる対応表を参照することにより、ドットの個数を個数データに変換してプリンタ２０に出力する。
【００５０】
プリンタ２０には、画素位置決定モジュールとドット形成モジュールなどが設けられている。画素位置決定モジュールは、コンピュータ１０から供給された個数データを解釈して画素群毎のドットの個数を取得した後、取得したドットの個数に基づいて画素群内でドットが形成される画素位置を決定する。個数データの解釈は、ドット個数と個数データとの対応関係を記述した対応表を参照することによって実行される。かかる対応表は、プリンタ２０内に予め記憶しておくこともできるし、コンピュータ１０内に記憶されている対応表を参照することとしてもよい。次いで、画素群内でドットを形成する画素位置を、ドット個数に基づいて決定する。画素位置はドット個数に応じて予め定めておくこともできるし、あるいは、ドット個数に相当する数の画素位置を画素群毎にランダムに選択するなど、種々の方法を適用することができる。
【００５１】
ドット形成モジュールでは、こうした決定した画素位置に基づいて、印刷媒体上にドットを形成する。その結果、印刷しようとする画像データに応じた画像が印刷媒体上に印刷されることになる。
【００５２】
このように、図１に示した印刷システムでは、コンピュータ１０からプリンタ２０に向かって、画素群内に形成されるドットの個数を表す個数データを出力しており、しかも、個数データのデータ形式としては、画素群内に形成されるドット個数の種類よりも、１つの個数データで表現可能な状態数の少ないデータ形式が採用されている。
【００５３】
一般にデータの大きさは、表現可能な状態数が多くなるほど大きくなる傾向にある。従って、個数データのデータ形式として、画素群内に形成するドットの個数を全て表現可能なデータ形式を採用したのでは、画素群１つあたりのデータが大きくなって、全体としての個数データのデータ量が増加してしまうことが生じ得る。これに対して、画素群内に形成するドット個数の種類よりも表現可能な状態数の少ないデータ形式を採用してやれば、画素群１つあたりのデータを小さなものとすることができるので、全体としての個数データのデータ量を抑制することが可能となる。
【００５４】
もちろん、このように、必要な状態数よりも表現可能な状態数が少ないデータ形式を採用した場合、画素群内に形成するドット個数を１つの個数データでは表現できず、複数の個数データを組合せて表さなければならない場合も生じ、特定のドット個数については逆にデータが大きくなってしまうことも生じ得る。しかし、こうした特定のドット個数を除いて他のドット個数については、画素群１つあたりのデータが小さくなるので、個数データ全体としてのデータ量を減少させることができ、従って、コンピュータ１０からプリンタ２０に向かって個数データを効率よく出力して、画像を迅速に表示することが可能となる。以下では、こうした印刷システムを例にとって、本発明の各種実施例について詳細に説明する。
【００５５】
Ｂ．第１実施例：
Ｂ−１．装置構成：
図２は、本実施例の画像処理装置としてのコンピュータ１００の構成を示す説明図である。コンピュータ１００は、ＣＰＵ１０２を中心に、ＲＯＭ１０４やＲＡＭ１０６などを、バス１１６で互いに接続して構成された周知のコンピュータである。
【００５６】
コンピュータ１００には、フレキシブルディスク１２４やコンパクトディスク１２６等のデータを読み込むためのディスクコントローラＤＤＣ１０９や、周辺機器とデータの授受を行うための周辺機器インターフェースＰＩＦ１０８、ＣＲＴ１１４を駆動するためのビデオインターフェースＶＩＦ１１２等が接続されている。ＰＩＦ１０８には、後述するカラープリンタ２００や、ハードディスク１１８等が接続されている。また、デジタルカメラ１２０や、カラースキャナ１２２等をＰＩＦ１０８に接続すれば、デジタルカメラ１２０やカラースキャナ１２２で取り込んだ画像を印刷することも可能である。また、ネットワークインターフェースカードＮＩＣ１１０を装着すれば、コンピュータ１００を通信回線３００に接続して、通信回線に接続された記憶装置３１０に記憶されているデータを取得することもできる。
【００５７】
図３は、本実施例のカラープリンタ２００の概略構成を示す説明図である。カラープリンタ２００はシアン，マゼンタ，イエロ，ブラックの４色インクのドットを形成可能なインクジェットプリンタである。もちろん、これら４色のインクに加えて、染料濃度の低いシアン（淡シアン）インクと染料濃度の低いマゼンタ（淡マゼンタ）インクとを含めた合計６色のインクドットを形成可能なインクジェットプリンタを用いることもできる。尚、以下では場合によって、シアンインク，マゼンタインク，イエロインク，ブラックインク，淡シアンインク，短マゼンタインクのそれぞれを、Ｃインク，Ｍインク，Ｙインク，Ｋインク，ＬＣインク，ＬＭインクと略称することがあるものとする。
【００５８】
カラープリンタ２００は、図示するように、キャリッジ２４０に搭載された印字ヘッド２４１を駆動してインクの吐出およびドット形成を行う機構と、このキャリッジ２４０をキャリッジモータ２３０によってプラテン２３６の軸方向に往復動させる機構と、紙送りモータ２３５によって印刷用紙Ｐを搬送する機構と、ドットの形成やキャリッジ２４０の移動および印刷用紙の搬送を制御する制御回路２６０とから構成されている。
【００５９】
キャリッジ２４０には、Ｋインクを収納するインクカートリッジ２４２と、Ｃインク，Ｍインク，Ｙインクの各種インクを収納するインクカートリッジ２４３とが装着されている。キャリッジ２４０にインクカートリッジ２４２，２４３を装着すると、カートリッジ内の各インクは図示しない導入管を通じて、印字ヘッド２４１の下面に設けられた各色毎のインク吐出用ヘッド２４４ないし２４７に供給される。
【００６０】
図４は、インク吐出用ヘッド２４４ないし２４７におけるインクジェットノズルＮｚの配列を示す説明図である。図示するように、インク吐出用ヘッドの底面には、Ｃ，Ｍ，Ｙ，Ｋの各色のインクを吐出する４組のノズル列が形成されており、１組のノズル列あたり４８個のノズルＮｚが、一定のノズルピッチｋで配列されている。
【００６１】
制御回路２６０は、ＣＰＵや、ＲＯＭ、ＲＡＭ等がバスで相互に接続された構成となっている。制御回路２６０は、キャリッジモータ２３０および紙送りモータ２３５の動作を制御することによってキャリッジ２４０の主走査動作および副走査動作を制御するとともに、コンピュータ１００から供給されるデータに基づいて、各ノズルから適切なタイミングでインク滴を吐出する制御を行う。こうして、制御回路２６０の制御の下、印刷媒体上の適切な位置に各色のインクドットを形成することによって、カラープリンタ２００はカラー画像を印刷することができる。
【００６２】
尚、各色のインク吐出ヘッドからインク滴を吐出する方法には、種々の方法を適用することができる。すなわち、ピエゾ素子を用いてインクを吐出する方式や、インク通路に配置したヒータでインク通路内に泡（バブル）を発生させてインク滴を吐出する方法などを用いることができる。また、インクを吐出する代わりに、熱転写などの現象を利用して印刷用紙上にインクドットを形成する方式や、静電気を利用して各色のトナー粉を印刷媒体上に付着させる方式のプリンタを使用することも可能である。
【００６３】
以上のようなハードウェア構成を有するカラープリンタ２００は、キャリッジモータ２３０を駆動することによって、各色のインク吐出用ヘッド２４４ないし２４７を印刷用紙Ｐに対して主走査方向に移動させ、また紙送りモータ２３５を駆動することによって、印刷用紙Ｐを副走査方向に移動させる。制御回路２６０は、印刷データに従って、キャリッジ２４０の主走査および副走査を繰り返しながら、適切なタイミングでノズルを駆動してインク滴を吐出することによって、カラープリンタ２００は印刷用紙上にカラー画像を印刷している。
【００６４】
Ｂ−２．画像印刷処理の概要：
図５は、本実施例のコンピュータ１００およびプリンタ２００が、画像データに所定の画像処理を加えて、印刷媒体上に画像を印刷する処理の流れを示すフローチャートである。かかる画像印刷処理は、後述するように前半部分はコンピュータ１００に内蔵されたＣＰＵの機能を利用して、また、処理の後半部分はプリンタ２００の制御回路２６０に内蔵されたＣＰＵの機能を利用して実行される。以下、図５に従って、本実施例の画像印刷処理について説明する。
【００６５】
コンピュータ１００は、画像印刷処理を開始すると、先ず初めに、変換すべき画像データの読み込みを開始する（ステップＳ１００）。ここでは画像データはＲＧＢカラー画像データであるものとして説明するが、カラー画像データに限らず、モノクロ画像データについても同様に適用することができる。
【００６６】
カラー画像データの読み込みに続いて、色変換処理を行う（ステップＳ１０２）。色変換処理とは、Ｒ，Ｇ，Ｂの階調値の組合せによって表現されているＲＧＢカラー画像データを、印刷のために使用される各色の階調値の組合せによって表現された画像データに変換する処理である。前述したように、プリンタ２０はＣ，Ｍ，Ｙ，Ｋの４色のインクを用いて画像を印刷している。そこで、本実施例の色変換処理ではＲＧＢ各色によって表現された画像データを、Ｃ，Ｍ，Ｙ，Ｋの各色の階調値によって表現されたデータに変換する。色変換処理は、色変換テーブル（ＬＵＴ）と呼ばれる３次元の数表を参照することで行う。ＬＵＴには、ＲＧＢカラー画像データに対して、色変換によって得られるＣ，Ｍ，Ｙ，Ｋ各色の階調値が予め記憶されており、このＬＵＴを参照しながら変換することで迅速に色変換することが可能となる。
【００６７】
色変換処理を終了すると、解像度変換処理を開始する（ステップＳ１０４）。解像度変換処理とは、画像データの解像度を、プリンタ２００が印刷を行う解像度（印刷解像度）に変換する処理である。前述したように、印刷画質を向上させるためには、画素の大きさを小さくして、より高い解像度で印刷することが効果的である。しかし、印刷解像度を高くすることに合わせて、必ずしも、元の画像データの解像度も高くする必要があるわけではない。何故なら、ドットを形成して画像を印刷する場合は、個々の画素ではドットを形成するか否かの２通りしか取り得ず、例えドットの大きさやインクの濃さを変えたとしても、画素あたりに表現可能な階調数は高々数階調に過ぎない。これに対して、読み込む画像データは、仮に１バイトのデータとしても、画素あたりに２５６階調を表現することができる。このように、画素あたりに表現可能な階調が大きく異なっているので、印刷解像度を、読み込む画像データの解像度よりも高解像度に設定することで、印刷画質を向上させることが可能である。このような理由から、図５のステップＳ１０４では、画像データの解像度を、より高解像度の印刷解像度に変換する処理を行うのである。
【００６８】
尚、より大きな画像を印刷しようとする場合には、解像度を保ったまま画素数を増加させる処理が行われることがある。この様な処理も、１つの画素から同じ画像データを有する複数の画素を生成している点で、上述した解像度変換処理と全く同様である。以下の説明では、画像の解像度を高くする場合について説明するが、解像度を高くする処理を、画素数を増加させる処理と読み替えてやれば、大きな画像を印刷する場合にも以下の説明を同様に適用することが可能である。
【００６９】
図６は、第１実施例において行われる解像度変換の様子を示す説明図である。尚、前述したようにＲＧＢ画像データを色変換することによってＣ，Ｍ，Ｙ，Ｋの各色毎の画像データが得られるが、以降に説明する処理は、これら各色の画像データのいずれに対しても同様に行われる。そこで、説明の煩雑化を避けるために、以下では色を特定せずに説明する。
【００７０】
図６（ａ）は、色変換後の画像データの一部を拡大して模式的に表したものである。図示するように、画像データは、格子状に配列された画素の各々に階調値が割り当てられたデータである。図６（ａ）中に示した複数の矩形は、それぞれが画素を模式的に表しており、矩形の中に表示された数値は、各画素に割り当てられた階調値を表している。こうした画像データの解像度をより高い解像度に変換するためには、画素間で補間演算を行うことによって新たな画素を生成しても良いが、本実施例では最も簡便な手法として、画素をより小さな画素に分割することで解像度変換を行う。
【００７１】
図６（ｂ）は、画素を分割することで解像度を変換している様子を示す説明図である。図示した例では、それぞれの画素を、主走査方向（図上で左右方向）に４分割し、副走査方向（図上で上下方向）に２分割することで、１つの画素を８つの画素に分割している。図６（ｂ）中に示した破線は、画素が分割されていることを表したものである。こうして生成した小さな画素には、分割前の元の画素の階調値と同じ階調値が割り当てられている。以上のような処理を施すことにより、画像データの解像度は、主走査方向には４倍の解像度に、副走査方向には２倍の解像度に変換されることになる。もちろん、解像度の増加割合は必要に応じて種々の割合に設定することが可能である。
【００７２】
以上のようにして解像度を印刷解像度に変換したら、コンピュータ１００は、個数データ生成処理を開始する（ステップＳ１０６）。ここでは、次のような処理を行う。色変換後の画像データは、画素毎に階調値が割り当てられた階調データである。これに対して、プリンタ２００は画素位置に適切な密度でドットを形成することによって画像を印刷する。従って、階調データを、画素毎のドット形成の有無によって表現されたデータに変換した後、プリンタ２００に転送する必要がある。また、ドット形成の有無を示すデータを、プリンタ２００に画素単位で転送したのでは、画素数が多くなるに従って転送に要する時間が増加してしまうので、画像を迅速に印刷することが困難となる。そこで、本実施例の画像印刷処理では、画素を所定の複数個ずつ画素群としてまとめ、画素群内に形成されるドット個数のデータをプリンタ２００に転送している。
【００７３】
加えて、詳細には後述するが、本実施例の画像印刷処理ではデータの転送効率をより一層向上させるために、ドット個数のデータをコード化した状態でプリンタ２００に転送している。尚、画素群内に形成されるドット個数のデータは、予め画像データを、画素毎のドット形成の有無を示すデータに変換した後に、複数の画素を画素群としてまとめることによって取得することができる。あるいは、後述するように、初めに複数の画素を画素群にまとめた後、画素群内の各画素に形成されるドットの個数を決定することも可能である。ステップＳ１０６の個数データ生成処理では、こうして画素群内で形成されるドット個数のデータをコード化して個数データを生成し、プリンタ２００に転送する処理を行う。個数データ生成処理の詳細については後述する。
【００７４】
プリンタ２００の制御回路２６０に内蔵されたＣＰＵは、コンピュータ１００から出力された個数データを受け取ると、個数データをデコードする処理を開始する（ステップＳ１０８）。すなわち、受け取った個数データはコード化されているので、このデータを解釈して、画素群内に形成されるドットの個数のデータを取得する処理を行う。かかる処理の詳細については後述する。
【００７５】
次いで、取得したドット個数のデータに基づいて、画素群内でドットを形成する画素位置を画素群毎に決定する処理を行う（ステップＳ１１０）。画素位置決定処理の詳細についても後述する。
【００７６】
以上のようにして、ドットを形成すべき画素位置を決定したら、決定した画素位置にドットを形成する処理を行う（ステップＳ１１２）。すなわち、図３を用いて説明したように、キャリッジ２４０の主走査および副走査を繰り返しながらインク吐出用ヘッドを駆動してインク滴を吐出することにより、印刷用紙上にインクのドットを形成する。こうしてドットを形成することにより、画像データに対応した画像が印刷されることになる。
【００７７】
Ｂ−３．第１実施例の個数データ生成処理：
図７は、第１実施例の個数データ生成処理の流れを示すフローチャートである。以下では、フローチャートを参照しながら、個数データ生成処理の内容について詳細に説明する。
【００７８】
個数データ生成処理を開始すると、先ず初めに所定の複数個の画素をまとめて画素群を生成する（ステップＳ２００）。ここでは、解像度変換処理において１つの画素を８つの画素に分割していることから、同一の画素を分割して得られた８つの画素を画素群としてまとめることとする。例えば、図６（ａ）中で左上隅の画素は、図６（ｂ）中では、左上方にある縦２列横４列の８つ画素に分割されているから、これらの画素をまとめて画素群を生成する。尚、画素群としてまとめる画素は、互いに隣接する画素である必要はなく、所定の位置関係にあればどのような画素でも画素群としてまとめることができる。
【００７９】
また、このように同一の画素から分割された画素を画素群としてまとめる場合は、図５の解像度変換処理（図６参照）を省略することも可能である。この場合は、以下の説明中で、「画素群」とある部分を、「解像度変換を行う前の画素」と読み替えることにより、ほぼ同様な処理を行うことができる。
【００８０】
次いで、画素群としてまとめた画素の中から、ドット形成の有無を判断するために着目する画素（着目画素）を１つ設定する（ステップＳ２０２）。そして、着目画素に割り当てられた階調値とディザマトリックスの閾値とを比較することにより、着目画素についてのドット形成の有無を判断する（ステップＳ２０４）。ここでディザマトリックスとは、複数の閾値が格子状に記憶された２次元の数表である。ディザマトリックスを用いてドット形成の有無を判断する処理について、図８および図９を参照しながら説明する。
【００８１】
図８は、ディザマトリックスの一部を例示した説明図である。図示したマトリックスには、縦横それぞれ６４画素、合計４０９６個の画素に、階調値０〜２５５の範囲から万遍なく選択された閾値がランダムに記憶されている。ここで、閾値の階調値が０〜２５５の範囲から選択されているのは、本実施例では画像データが１バイトデータであり、画素に割り当てられる階調値が０〜２５５の値を取り得ることに対応するものである。尚、ディザマトリックスの大きさは、図８に例示したように縦横６４画素分に限られるものではなく、縦と横の画素数が異なるものも含めて種々の大きさとすることができる。
【００８２】
図９は、ディザマトリックスを参照しながら、着目画素についてのドット形成の有無を判断している様子を概念的に示した説明図である。ドット形成有無の判断に際しては、先ず、着目画素の階調値とディザマトリックス中の対応する位置に記憶されている閾値と比較する。図中に示した細い破線の矢印は、着目画素の階調値を、ディザマトリックス中の対応する位置に記憶されている閾値と比較していることを模式的に表したものである。そして、ディザマトリックスの閾値よりも着目画素の階調値の方が大きい場合には、その画素にはドットを形成するものと判断する。逆に、ディザマトリックスの閾値の方が大きい場合には、その画素にはドットを形成しないものと判断する。図９に示した例では、画像データの左上隅の画素の画像データは階調値９７であり、ディザマトリックス上でこの画素に対応する位置に記憶されている閾値は１である。従って、左上隅の画素については、画像データの階調値９７の方がディザマトリックスの閾値１よりも大きいから、この画素にはドットを形成すると判断する。図９中に実線で示した矢印は、この画素にはドットを形成すると判断して、判断結果をメモリに書き込んでいる様子を模式的に表したものである。一方、この画素の右隣の画素については、画像データの階調値は９７、ディザマトリックスの閾値は１７７であり、閾値の方が大きいので、この画素についてはドットを形成しないものと判断する。図７のステップＳ２０４では、こうしてディザマトリックスを参照しながら、着目画素にドットを形成するか否かを判断する処理を行う。
【００８３】
次いで、画素群内の全ての画素について以上のような処理を行ったか否かを判断し（ステップＳ２０６）、画素群中に未処理の画素が残っている場合は（ステップＳ２０６：ｎｏ）、ステップＳ２０２に戻って続く一連の処理を行う。こうして画素群内の全ての画素について、ドット形成有無の判断を終了したら（ステップＳ２０６：ｙｅｓ）、画素群内に形成するドットの個数を検出し、検出したドット個数をコード化してメモリに記憶する（ステップＳ２０８）。図９に示した例では、画像の左上隅の画素群については、３つの画素にドットを形成すると判断されているから、この画素群については、ドット個数は「３」である。そこで、この値をコード化してメモリに記憶するのである。ドット個数をコード化する処理については後述する。
【００８４】
以上のようにして、１つの画素群についての処理を終了したら、全画素について処理を終了したか否かを判断し（ステップＳ２１０）、未処理の画素が残っていれば、ステップＳ２００に戻って新たな画素群を生成した後、続く一連の処理を行い、その画素群に形成されるドットの個数をコード化した状態で記憶する（ステップＳ２０８）。こうした処理を繰り返して行い、画像中の全ての画素についての処理を終了したら（ステップＳ２１０：ｙｅｓ）、コード化した状態で画素群毎に記憶しておいたドット個数のデータを、個数データとしてプリンタ２００に向かって出力する（ステップＳ２１２）。こうして個数データを出力したら、図７に示した個数データ生成処理を終了する。
【００８５】
図１０は、画像データに個数データ生成処理を施すことで個数データが生成される様子を概念的に示した説明図である。図中に示した大きな矩形は画素群を表しており、画素群を縦２つ横４つに分割する小さな矩形は画素を表している。図１０（ａ）は、画素群内の各画素についてドット形成の有無が判断された様子を概念的に表したものである。図１０（ａ）では、ドットを形成すると判断された画素は斜線を付して表示されている。図１０（ｂ）は、それぞれの画素群について、画素群内に形成するドットの個数を検出した様子を概念的に示した説明図である。画素群内に表示された数字は、各画素群内に形成すべきドットの個数を表している。こうして得られたドットの個数のデータを、図１０（ｃ）に示すようなデータにコード化した後、個数データとしてプリンタ２００に出力する。
【００８６】
ここで、ドット個数のデータをコード化して個数データに変換する処理について説明する。個数データは、画素群内に形成するドットの個数を１つのコードによって、あるいは複数のコードの組合せることによって表現される。ドットの個数のデータを個数データに変換する処理は、図１１（ａ）に示すような対応表を参照することによって行われる。また図１１（ｂ）は、個数データを構成する各コードが表す内容をまとめた説明図である。理解の便宜のために、先ず図１１（ｂ）を参照しながら、コードの意味する内容について説明する。
【００８７】
先ず、前述したように画素群は８つの画素で構成されているものとしているから、画素群に形成されるドット個数は、０個から８個までの９通りの値を取ることができる。このようにドット個数は９通りの値を取り得るにも関わらず、本実施例ではこれを、単一のコードでは８通りの状態しか表現し得ないコードを用いて表現する。コードを２進数で表示した場合、８通りの状態であれば、３ビットのデータ長があれば表現することができる。図１１（ｂ）には、２進数表示の３ビットのコードが表現し得る状態と、それぞれの状態のコードが表す内容とが示されている。図示されているように、２進数表示の３ビットのデータは、ビット表示で「０００」の状態からビット表示で「１１１」までの８つの状態を表現することができる。尚、図１１（ｂ）では、ビット表示の他に８進数表示も併記されている。図中で数字に添えられた（ｏ）  という表示は、８進数で表示されていることを示している。これら表示可能な８つの状態の内、０００（８進数表示では０（ｏ）  ）から「１１０」（８進数表示では６（ｏ）  ）はドットの個数を表すものとする。一方、「１１１」（８進数表示では７（ｏ）  ）については、ドット個数ではなく特別な意味を持った拡張コードを表すものとする。
【００８８】
ドットの個数のデータをコード化する処理中で参照される対応表には、図１１（ａ）に示したように、画素群内に形成するドットの個数と、これらのコードとが対応付けて記憶されている。図１１（ａ）の例では、８進数表示で０（ｏ）  のコードにはドット個数０が対応付けられており、同様に、８進数表示で１（ｏ）  から６（ｏ）  のコードにはドット個数１からドット個数６がそれぞれ対応付けられている。また、８進数表示で７（ｏ）  のコードは拡張コードであって、このコードはドットの個数ではなく、そのコード７（ｏ）  と次のコードとの組合せによってドット個数を表示するという特別な意味を持っている。図１１（ａ）に示した例では、拡張コード７（ｏ）  にコード０（ｏ）  が続く場合はドット個数７を表しており、拡張コード７（ｏ）  にコード１（ｏ）  が続く場合はドット個数８を表している。
【００８９】
図７に示した個数データ変換処理のステップＳ２０８では、このように、ドットの個数とコード化されたデータ（エンコードデータ）とを対応付けた対応表を参照しながら、画素群内に形成されるドットの個数のデータをコード化して、個数データに変換する処理を行う。
【００９０】
尚、ここでは、８進数表示で７（ｏ）  のコードが拡張コードに設定されているものとして説明するが、拡張コードとして設定するコードは７（ｏ）  に限られるものではなく、いずれのコードを拡張コードとして設定することも可能である。また、異なる意味を持った複数の拡張コードを設定することも可能である。例えば、画素群内に形成するドット個数を出力する出力方式の他に、各画素についてのドット形成の有無を直接出力する出力方式も備え、画素群毎に適切な出力方式を選択してプリンタ２００に出力することとして、いずれの出力方式のデータであるかを表示するために拡張コードの１つを使用することも可能である。
【００９１】
プリンタ２００には、こうしてコンピュータ１００内で生成された個数データが供給される。個数データはコード化されているので、プリンタ２００は個数データを受け取ると、このデータをデコードすることによって画素群内に形成するドットの個数を取得する。そして、取得したドットの個数に基づいて、画素群内でドットを形成する画素位置を決定し、決定した画素位置にドットを形成することによって画像を印刷する。以下、プリンタ２００内で行われる処理について詳しく説明する。
【００９２】
Ｂ−４．第１実施例の個数データデコード処理：
プリンタ２００は、個数データを受け取ると先ず初めに、個数データをデコードしてドットの個数を取得する処理を行う。図１２は、かかる個数データデコード処理の流れを示すフローチャートである。この個数データデコード処理は、プリンタ２００の制御回路２６０に内蔵されたＣＰＵの機能によって実行される。以下、フローチャートに従って説明する。
【００９３】
個数データデコード処理を開始すると、制御回路２６０のＣＰＵは先ず初めに、コード１つ分の個数データを読み込む（ステップＳ３００）。ここでは、コードは（２進数表示した場合）３ビットのデータで表示されているから、ステップＳ３００では、３ビット分の個数データを読み込む処理を行う。
【００９４】
次いで、読み込んだコードが拡張コードであるか否かを判断する（ステップＳ３０２）。図１１に示したように、ここでは８進数表示の７（ｏ）  のコードが拡張コードに設定されているから、ステップＳ３００で読み込んだコードが７（ｏ）  であるか否かを判断する。そして、読み込んだコードが拡張コードでない場合は（ステップＳ３０２：ｎｏ）、図１１（ａ）に示した対応表を参照しながら、読み込んだコードをドットの個数のデータに変換する（ステップＳ３０６）。
【００９５】
一方、読み込んだコードが拡張コードである場合は（ステップＳ３０２：ｙｅｓ）、ドットの個数は、読み込んだ拡張コードと次のコードとによって表現されていると考えられる。そこで、もう１つ分のコードを読み込んでやる（ステップＳ３０４）。そして、図１１（ａ）に示した対応表を参照することにより、先に読み込んだ拡張コードとこの度読み込んだコードとの組合せを、ドットの個数に変換する（ステップＳ３０６）。
【００９６】
以上のような処理を行うことで、１つの画素群の個数データがデコードされて、ドットの個数に変換されたことになる。こうして１つの画素群についてのデコードが終了したら、全画素群についてのデコードが終了したか否かを判断する（ステップＳ３０８）。そして、未処理の画素群が残っている場合は（ステップＳ３０８：ｎｏ）、ステップＳ３００に戻って、個数データから新たな１つ分のコードを読み込んで、続く一連の処理を行う。こうした操作を繰り返し、全画素群についてのデコードが終了したら（ステップＳ３０８：ｙｅｓ）、プリンタ２００の制御回路２６０に内蔵されたＣＰＵは、図１２に示した個数データデコード処理を終了して、今度は画素群内でドットを形成する画素位置を決定する処理（図５の画像印刷処理）を開始する。
【００９７】
Ｂ−５．第１実施例の画素位置決定処理：
図１３は、第１実施例においてプリンタ２００が行う画素位置決定処理の流れを示すフローチャートである。また図１４は、画素群のドットの個数に基づいて、画素群内でドットを形成する画素の位置が決定される様子を概念的に示した説明図である。以下、図１３のフローチャートおよび図１４の説明図を参照しながら、画素位置決定処理について説明する。
【００９８】
画素位置決定処理を開始すると、先ず初めに、画素位置を決定しようとする画素群を１つ選択し（図１３のステップＳ４００）、その画素群のドット個数を取得する（ステップＳ４０２）。ここで取得するドット個数は、図１２を用いて説明した個数データデコード処理により、個数データをデコードすることによって得られたドットの個数である。
【００９９】
図１４（ａ）は、個数データをデコードすることにより取得された画素群毎のドットの個数を概念的に示した説明図である。ここでは、画素位置を決定する画素群として、図中で左上隅にある画素群を選択したものとする。図１４（ａ）に示されているように、左上隅の画素群についてのドット個数は３個であるから、図１３のステップＳ３０２では、選択した画素群に形成されるドット個数として「３」を取得する。
【０１００】
次いで、ディザマトリックスを参照することにより、画素群内でドットを形成する画素位置を決定する処理を行う（ステップＳ４０４）。ディザマトリックスの各画素に設定された閾値は、ドットの形成され易さを表していると考えることができる。なぜなら、ディザマトリックスを参照してドットの形成有無を判断する場合、画像データの階調値とディザマトリックスの閾値とを比較して、階調値の方が大きい画素にはドットを形成すると判断する。すなわち、ディザマトリックスの閾値が小さい画素ほどドットが形成され易くなり、逆に閾値が大きくなるほどドットが形成され難くなる。このことから、ディザマトリックスに設定された閾値は、ドットの形成され易さを表していると考えることができるのである。
【０１０１】
ディザマトリックスを参照すれば、画素群内のどの画素が最もドットが形成され易いかを知ることができるから、画素群内に形成するドットの個数に基づいて画素位置を決定することができる。この処理の内容について、再び図１４を参照しながら詳しく説明する。ここでは処理対象の画素群として、図１４（ａ）中の左上隅の画素群が選択されているものとしているから、図８に示したディザマトリックス上で、この画素群の対応する位置に記憶されているそれぞれの閾値を取得する。図１４（ｂ）は、こうして取得されたディザマトリックスの閾値を模式的に表した説明図である。処理対象の画素群には、こうして読み出した閾値が小さい画素から順番にドットが形成されることになる。図１４（ａ）に示すように、処理中の画素群には形成されるドット個数は３個だから、各画素の閾値に従って図１４（ｃ）に示すように画素位置を決定することができる。すなわち、図１４（ｃ）中に実線で囲った最も閾値の小さい画素と、破線で囲った２番目に閾値の小さい画素と、一点鎖線で囲った３番目に閾値の小さい画素の３つの画素を、ドットが形成される画素として決定することができる。
【０１０２】
以上のようにして、処理対象の画素群についてドットを形成する画素位置を決定したら、全ての画素群についての処理を終了したか否かを判断する（図１３のステップＳ４０６）。未処理の画素群が残っていれば（ステップＳ４０６：ｎｏ）、ステップＳ４００に戻って新たな画素群を選択し、続く一連の処理を行う。こうした処理を繰り返すことにより、図１４（ａ）に例示した画素群毎にドット個数を示すデータは、図１４（ｄ）に示すような、画素毎にドット形成の有無を表すデータに変換されていく。尚、図１４（ｄ）中で斜線が付された画素は、ドットが形成される画素を示している。そして、全ての画素群について処理が終了したら（ステップＳ４０６：ｙｅｓ）、図１３に示した画素位置決定処理を終了し、図５の画像印刷処理に復帰する。
【０１０３】
以上、第１実施例の画像印刷処理および、かかる処理中で行われる個数データ生成処理、画素位置決定処理について詳しく説明した。このように第１実施例の画像印刷処理では、画像処理が施されたデータをコンピュータ１００からプリンタ２００に向かって出力するに際して、画素毎にドット形成の有無を示すデータの代わりに、画素群内に形成されるドット個数を示すデータを出力する。こうすれば、画素毎にドット形成の有無を表すデータを出力するよりも、データ量を大幅に減少させることができるので、コンピュータ１００からプリンタ２００に効率よくデータを出力することができ、延いては、画像を迅速に印刷することが可能となる。
【０１０４】
加えて、本実施例では、画素群内に形成されるドットの個数のデータは、上述したようにコード化された状態でプリンタ２００に出力される。こうしてコード化することで、更にデータ量を減少させることができるので、画像をより一層迅速に印刷することが可能となる。以下、この理由について説明する。
【０１０５】
ここでは、画素群は８つの画素で構成されるものとしているから、前述したように画素群内に形成されるドットの個数は、０個から８個までの９通りの値を取ることができる。従って、画素群内に形成されるドットの個数を１つのデータで表示するためには、（データを２進数表示した場合）４ビットのデータ長が必要となる。今、１つの画像にＮ個の画素群が含まれているものとすれば、１つの画像を表示するためにプリンタ２００に出力すべきドット個数のデータ量は、４Ｎビットのデータとなる。
【０１０６】
次に、ドットの個数のデータをコード化して出力する場合について考える。コード化に際しては、図１１（ａ）に示した対応表に従って、ドットの個数が、コード化されたデータに変換される。図１１（ａ）に示されているように、コード化されたデータは、ドットの個数が０個から６個の場合は１つのコードで表現され、ドットの個数が７個あるいは８個の場合は２つのコードで表現される。今、１つの画像がＮ個の画素群から構成されているとして、その中で、ドットが７個あるいは８個形成される画素群がｎ個あるとすると、Ｎ−ｎ個の画素群については１つのコードで表現され、ｎ個の画素群については２つのコードで表現されることになる。１つのコードのデータ長は３ビットであるから、結局、コード化されたドット個数のデータは、
３（Ｎ−ｎ）＋２・３ｎ＝３（Ｎ＋ｎ）
ビットのデータとなる。
【０１０７】
図１５は、このような関係、すなわち、ドットの個数のデータをコード化した時のデータ量の変化をまとめて示した説明図である。コード化しない場合は、ドットの個数は４ビットのデータで表され、全体のデータ量は４Ｎビットとなる。ドット個数のデータをコード化した場合は、４ビットよりも１つ少ない３ビットのコードを用いて表され、全体のデータ量は３（Ｎ＋ｎ）ビットとなる。ここで、Ｎは画像に含まれる画素群の数であり、ｎはドットの個数が２コードで表現される画素群（すなわち、ドットが７個あるいは８個形成される画素群）の数である。今、画素群に形成されるドットの個数は、０個から８個までの９通りの値を取り得るが、いずれの状態も均等に取り得るものとすれば、
ｎ＝（２／９）Ｎ
となり、コード化したドット個数のデータ量は、約３．６７Ｎビットとなる。コード化しない場合のデータ量が４Ｎビットであるから、この場合はコード化することで、データ量が約１割弱程度、減少することになる。特に、画素数の多い画像を印刷する場合は、データ量を減少させることでコンピュータ１００からプリンタ２００に効率よくデータを出力することができ、画像を迅速に印刷することが可能となる。
【０１０８】
以上の説明では、画素群に形成されるドットの個数は、０個から８個までの９通りの値を均等に取るものとしたが、実際には、これら９通りの値を均等に取るわけではない。従って、使用される頻度の低いドットの個数を、拡張コードを用いて表すこととすれば、更にデータ量を減少させることが可能である。図１５の例示に即して説明すると、例えば、拡張コードを用いて表すドットの個数（７個および８個）となる画素群が、全画素群の中の５％しか存在せず、他の９５％の画素群は、拡張コードを用いずに表現可能なドット個数（０個〜６個）であったとする。この場合は、
ｎ＝０．０５Ｎ
となるので、コード化したドット個数のデータ量は、３．０５Ｎビットとなる。コード化しない場合のデータ量は４Ｎであるから、結局、コード化することで約２４％もデータ量を減少させることが可能となる。
【０１０９】
実際、図１１の例示では、９通りの値を取り得るドット個数の中で、ドット個数７個および８個と、大きな数値のデータを拡張コードを用いて表しているが、これは、このようなデータの出現頻度が、次の理由から、小さな数値のデータよりも低くなっていることを考慮したものである。
【０１１０】
本実施例のプリンタ２００のように、印刷媒体上にインクドットを形成して画像を印刷する場合、形成するドットの個数と、これにより印刷媒体上に表現される濃度とは、リニアな関係とはなっていない。これは、インクが滲むために、ドットの形成密度が高い領域では、ドットの個数を増やしても表現される濃度がそれに見合って増加しないためである。従って、画素群に形成されるドットの個数が０個〜８個の９通りの値を取り得るとしても、例えば０〜２個の範囲で表現可能な濃度範囲より、６〜８個の範囲で表現可能な濃度範囲の方が狭くなっている。換言すれば、小さな値のドット個数が分担して表現する濃度範囲よりも、大きな値のドット個数が分担して表現する濃度範囲の方が狭く、このため、大きな値のドット個数は、小さな値のドット個数よりも使用頻度が低くなっているのである。
【０１１１】
また、一般に印刷媒体には、画質上の要請から、単位面積当たりに使用可能なインク量の許容限界値が設定されている。Ｃ，Ｍ，Ｙなど多色のインクドットを形成することでカラー画像を印刷可能なプリンタでは、このようなインク量の許容値が設定されていることも、大きな値のドット個数の使用頻度が低くなる要因として作用する。例えば、ある色のインクで多くのドットを形成した場合、インク使用量を許容範囲に抑制するために、他色のインクで形成されるドット個数は小さな個数に抑制されることが多い。すなわち、ある画素群について、各インクについてのドット個数が同時に大きな値となることはまれであり、このため、全インクについて見れば、大きな値のドット個数が出現する頻度が低くなるのである。
【０１１２】
以上のような理由から、拡張コードを用いて表現するデータを、取り得る数値の中で大きな値のデータに割り当てておけば、コンピュータ１００からプリンタ２００に出力すべきデータ量を効果的に抑制することが可能となる。ここで、「大きな値」とは、少なくとも過半以上の値であればよく、例えば、０〜８の値を取り得るのであれば、拡張コードを用いて表現する値を５以上の値から選択しておけば、データ量を抑制する効果を得ることができる。また、経験によれば、拡張コードを用いて表現する値は、取り得る範囲で値の大きい側から１／３ないしは１／４の範囲（図１１の例では、６〜８の範囲、あるいは７〜８の範囲）から選択しておけば、より効果的にデータ量を抑制することが可能である。
【０１１３】
更に、拡張コードを用いて表現するデータを、大きな値の複数のデータに割り当てる場合は、これら複数の値は互いに連続しない値としておくこととしてもよい。図１６は、このようにして拡張データが割り当てられている様子を例示した説明図である。ここでは、１つの画素群に１６個の画素が含まれているものとする。この場合、１つの画素群に形成されるドットの個数は、０個〜１６個の１７通りの値を取ることができるが、ドット個数のデータを、１６通りの状態を表現可能な４ビットのコードで表現するものとする。図１６（ａ）は、４ビットの各コードが表す内容をまとめて示した説明図である。尚、図中にある（ｈ）  という表示は、１６進数で表示されていることを示しており、例えばＤ（ｈ）  という表示は、１０進数表示したときの１３を、またＦ（ｈ）  という表示は１０進数表示の１５を示している。
【０１１４】
図１６（ａ）に示されているように、０（ｈ）  〜Ｄ（ｈ）  のコードはドットの個数を示し、Ｅ（ｈ）  は拡張コードを、またＦ（ｈ）  を予備の拡張コードを示しているものとする。予備の拡張コードとは、例えば、画素群内に形成するドット個数ではなく、各画素についてドット形成の有無を示すデータ形式で出力することを表す拡張コードとして使用する場合などを考慮して、予備に確保しておいたコードである。
【０１１５】
図１６（ｂ）は、画素群内に形成されるドットの個数に、コード化されたデータ（エンコードデータ）を対応付けた対応表を示している。図示されているように、拡張コード（Ｅ（ｈ）  ）と組み合わせて表現する個数は、「１２」よりも大きな値の個数から選択されている。前述したように、大きな個数は出現頻度が低いので、このような個数を拡張コードを用いて表現することで、コンピュータ１００から出力すべきデータ量を効果的に抑制することができる。
【０１１６】
但し、拡張コードを用いて表現する個数は、１４個、１５個、１６個といったように完全に連続した個数ではなく、１２個、１４個、１５個と、少なくとも一部に連続していない部分を含むように選択されている。これは、次のような理由によるものである。拡張コードを用いて表現されるような大きな値のドット個数が、たまたま広い範囲に連続して出現したような場合、すべてのデータが拡張コードを用いて表現されていると、プリンタに出力すべきデータ量が却って増えてしまうことになる。そこで、こうした危険の分散を図るべく、連続した値ではなく、少なくとも一部に不連続部分を含むように選択しているのである。
【０１１７】
Ｃ．第２実施例：
以上に説明した第１実施例では、個々の画素では、ドットを形成するか形成しないかの２つの状態しか表現し得ないものとして説明した。しかし、プリンタの中には、形成するドットの大きさを制御したり、あるいはドットを形成するために用いるインクの濃さを変更することで、個々の画素単独でも、より多くの階調値を表現可能としたプリンタも存在する。本発明は、こうしたいわゆる多値プリンタに対しても有効に適用することができる。以下では、本発明を多値プリンタに適用した第２実施例について説明する。
【０１１８】
Ｃ−１．第２実施例の画像印刷処理の概要：
図１７は、第２実施例の画像印刷処理の流れを示すフローチャートである。第３実施例の画像印刷処理は、図５を用いて説明した第１実施例の画像印刷処理に対して、色変換処理後のデータを大中小ドットのデータに変換する点が大きく異なっている。以下では、この相違点を中心に、第２実施例の画像印刷処理について説明する。尚、ここでは、プリンタ２００はドットの大きさを変更可能な多値プリンタであるものとして説明するが、もちろん以下の説明は、ドットの大きさではなくインクの濃度を変更するプリンタや、更にはドットの大きさとインクの濃度とを同時に変更可能な多値プリンタにも適用することが可能である。
【０１１９】
第２実施例の画像印刷処理においても、第１実施例の画像印刷処理と同様に、先ず初めに、変換すべき画像データを読み込んで（ステップＳ５００）、読み込んだデータに対して色変換処理を行う（ステップＳ５０２）。画像データは、色変換処理を行うことにより、Ｃ，Ｍ，Ｙ，Ｋ各色の階調値によって表現された階調データに変換される。
【０１２０】
ここで、前述した第１実施例のプリンタ２００では、ドットの大きさを変えることはできず、各色毎にドットを形成するか形成しないかのいずれかの状態しか取り得ない。このため、色変換後のデータに基づいて直ちに、画素毎のドット形成の有無を判断した。これに対して第２実施例のプリンタ２００では、ドットの大きさを変えて大ドット、中ドット、小ドットの３種類のドットを形成することが可能である。そこで、色変換処理によって得られた階調データを、一旦、大ドット用のデータ、中ドット用のデータ、小ドット用のデータに各色毎に変換する処理を行う（ステップＳ５０４）。
【０１２１】
階調データから、大ドット、中ドット、小ドットのそれぞれのドットデータへの変換は、図１８に示す変換テーブルを参照することによって行う。図示するように、変換テーブルには、大ドットデータ、中ドットデータ、小ドットデータが階調データに対応付けて記憶されており、かかる変換テーブルを参照することによって、色変換後の階調データを変換する。
【０１２２】
次いで、大ドットデータ、中ドットデータ、小ドットデータのそれぞれのデータに対して解像度変換処理を行う（ステップＳ５０６）。解像度変換には種々の方法を適用することができるが、説明を簡便にするために、ここでは第１実施例と同様に、画素を分割して解像度を変換するものとする。分割して生成された新たな画素には、元の画素の階調値と同じ階調値が設定される。
【０１２３】
こうして解像度を印刷解像度に変換した後、個数データ生成処理を行う（ステップＳ５０８）。第２実施例では、プリンタ２００は大ドット、中ドット、小ドットの３種類のドットを形成可能なことから、個数データ生成処理では、これら各種ドットについてドットの個数を決定した後、各種ドットの個数を示すデータをコード化してプリンタ２００に出力する。
【０１２４】
図１９は、第２実施例の個数データ生成処理において、ドットデータから画素群内に形成するドットの個数を決定する様子を示した説明図である。図１９（ａ）は、画素群としてまとめられる各画素に、大中小の各種ドットについてのドットデータが設定されている様子を模式的に表している。図中に示した実線の矩形の各々は画素群を表している。画素群は複数の画素から構成されており、ドットデータは各画素に設定されているが、ここでは図示が煩雑となることを避けるために、個々の画素の表示は省略し、その代わりにドットデータが画素群に設定されているものとして表示している。例えば、図１９（ａ）の左上隅の画素群に、Ｄａｔａ（Ｌ，Ｍ，Ｓ）＝（２，９０，３２）と表示されているのは、この画素群内の各画素に、大ドットのドットデータ「２」、中ドットのドットデータ「９０」、小ドットのドットデータ「３２」が設定されていることを表している。もちろん、第１実施例においても説明したように、画素群を構成する全ての画素が同じ階調値を有する場合は、解像度変換処理を行わず、個数データ生成処理の中で実質的に解像度変換を行うこととしても良い。
【０１２５】
第２実施例の個数データ生成処理では、こうした各種ドットについてのドットデータに後述する処理を施すことにより、画素群内に形成される各種ドットの個数を表すデータを生成する。図１９（ｂ）は、各種ドットの個数を表すデータがそれぞれの画素群毎に生成されている様子を概念的に表している。例えば、図１９（ｂ）の左上隅の画素郡中に、Ｄｏｔ（Ｌ，Ｍ，Ｓ）＝（１，２，１）と表示されているのは、この画素群には、大ドットを１個、中ドットを２個、小ドットを１個形成することを表している。このように画素群毎に求められた各種ドットの個数を表すデータはコード化された後、個数データとしてプリンタ２００に出力される。第２実施例の個数データ生成処理の内容については後述する。
【０１２６】
プリンタ２００は、コンピュータ１００から出力された個数データを受け取ると、このデータを解釈することにより、各種ドットの個数を表すデータにデコードする処理を行う（ステップＳ５１０）。個数データをデコードする処理の詳細については後述する。
【０１２７】
次いで、デコードして取得した各種ドットの個数を表すデータに基づいて、画素群内でドットを形成する画素位置を各種ドット毎に決定する処理を行う（ステップＳ５１２）。すなわち、前述した第１実施例においては形成可能なドットの種類は１種類だけであったのに対して、第２実施例では大中小の各種ドットを形成可能であることから、これら各種ドットについてドットを形成する画素位置を決定する処理を行う。第２実施例の画素位置決定処理の内容については後述する。
【０１２８】
こうして画素位置を決定したら、プリンタ２００はキャリッジ２４０の主走査と副走査とを繰り返しながらインク吐出用ヘッドを駆動することにより、印刷用紙上に大中小の各ドットを形成する（ステップＳ５１４）。この結果、画像データに対応した画像が印刷されることになる。
【０１２９】
Ｃ−２．第２実施例の個数データ生成処理：
以下、第２実施例の個数データ生成処理の内容について説明する。図２０は、第２実施例の個数データ生成処理の流れを示したフローチャートである。かかる処理も、コンピュータ１００に内蔵されたＣＰＵによって実行される。
【０１３０】
第２実施例の個数データ生成処理を開始すると、ＣＰＵは先ず初めに、画像データの中から所定の複数個の画素をまとめて画素群を生成する（ステップＳ６００）。個数データ生成処理に先立って行われる解像度変換処理（図１７のステップＳ５０６）において、第１実施例と同様に、画素を分割して新たな画素を生成することとしているから、ここでも、同じ画素から分割された複数の画素を画素群としてまとめるものとする。
【０１３１】
次いで、画素群内の各画素について、大ドット、中ドット、小ドットのドットデータを読み込む（ステップＳ６０２）。すなわち、図１９（ａ）を用いて説明したように、画素群内の画素毎に、各種ドットのドットデータを読み込む処理を行う。尚、ここでは、画素群を構成する画素は、いずれも同じ画素から分割されて同じ階調値を有するから、画素毎にドットデータを読み込むのではなく、画素群毎に１画素分だけ読み込むこととしても良い。
【０１３２】
こうして各種ドットのドットデータを読み込んだら、ディザマトリックスを参照することにより、大ドット、中ドット、小ドットについての形成有無を判断する処理を行う（ステップＳ６０４）。かかる処理について、図２１を参照しながら詳しく説明する。
【０１３３】
図２１は、ディザマトリックスを参照しながら、着目画素に大ドット、中ドット、小ドットのいずれのドットを形成するべきかを判断する方法を示した説明図である。尚、図２１では、ドットデータとして図１９（ａ）に示すデータを使用し、ディザマトリックスとしては、図８に示すマトリックスを使用する場合について想定している。
【０１３４】
図２１は、画像の左上隅にある画素群について、各種ドットの形成有無を判断する様子を示している。図中で、太い実線の矩形は画素群を表している。画素群が細い破線で区分されているのは、画素群が複数の画素によって構成されていることを表している。また、画素の中に表された数値は、ディザマトリックスの対応する位置に設定されている閾値の値を表している。
【０１３５】
ドット形成有無の判断を開始すると、先ず初めに、大ドットのドットデータと、ディザマトリックスに設定されている閾値とを比較して、ドットデータの方が大きい画素については大ドットを形成するものと判断する。図２１（ａ）は、こうして、画素群内の各画素について大ドットの形成有無を判断している様子を示している。具体的に説明すると、大ドットのドットデータは「２」であるから、一番左上隅にある階調値「１」の画素についてだけ、ドットデータの方が大きく、他の画素については全てディザマトリックスの閾値の方が大きくなっている。そこで、この画素群では、大ドットは１つだけ形成される。図２１（ａ）中で、ディザマトリックスの閾値が「１」の画素に細かい斜線が付されているのは、この画素に大ドットを形成すると判断されたことを表したものである。
【０１３６】
大ドットについての形成有無を判断したら、今度は中ドットについての形成有無を判断する。中ドットについての判断に際しては、大ドットのドットデータに中ドットのドットデータを加算して、中ドット用の中間データを算出し、この中間データとディザマトリックスの閾値とを比較する。そして、中間データの方が閾値よりも大きな画素については、中ドットを形成するものと判断する。このとき、既に大ドットを形成することとした画素については、中ドットの形成有無の判断は行わない。図２１（ｂ）に即して具体的に説明すると、大ドットのドットデータは「２」であり、中ドットのドットデータは「９０」であるから、中ドット用の中間データは「９２」と算出される。この中間データを、各画素についてのディザマトリックスの閾値と比較する。但し、画素群中で一番左上隅にある画素については、既に大ドットを形成することとしているので、かかる比較からは除外しておく。その結果、ディザマトリックスの閾値が「４２」の画素と「５８」の画素については、中間データの方が大きくなるので、中ドットの形成個数は２個であると判断する。図２１（ｂ）中で、これらの画素に斜線が付されているのは、これらの画素については、中間データの方が大きいと判断されたことを表している。
【０１３７】
中ドットの形成有無を判断したら、最後に小ドットの形成有無を判断する。小ドットの判断に際しては、中ドット用の中間データに小ドットのドットデータを加算して、小ドット用の中間データを算出し、未だドットを形成すると判断されていない画素について、この中間データとディザマトリックスの閾値とを比較する。そして、中間データの方が大きい画素については、小ドットを形成するものと判断する。図２１（ｃ）に即して具体的に説明すると、中ドット用の中間データは「９２」であるから、小ドットのドットデータ「３２」を加算して、小ドット用の中間データは「１２４」と算出される。この中間データと、ディザマトリックスの閾値とを比較する。その結果、ディザマトリックスの閾値よりも中間データの方が大きくなるのは、閾値が「１０９」の画素だけなので、この画素群については小ドットを１個だけ形成すると判断する。図２１（ｃ）中で、粗い斜線が付された画素は、この画素については、閾値よりも中間データの方が大きいと判断されたことを表したものである。図２０のステップＳ６０４では、以上のようにして画素群内の各画素について、大ドット、中ドット、小ドットの形成有無を判断する。
【０１３８】
以上のようにして各種ドットの形成有無を判断したら、その画素群に形成すべき各種ドットの個数をコード化して記憶する（ステップＳ６０６）。図２１に示した例では、画素群内に形成される各種ドットの個数は、大ドットが１個、中ドットが２個、小ドットが１個であるから、このドット個数の組をコード化した状態で記憶するのである。コード化する処理については後述する。
【０１３９】
こうして画素群内に形成する各種ドットの個数を決定し、コード化した状態で画素群毎に記憶したら記憶したら、画像データに含まれる全画素についての処理を終了したか否かを判断する（ステップＳ６０８）。そして、未処理の画素が残っている場合は（ステップＳ６０８：ｎｏ）、ステップＳ６００に戻って新たな画素群を生成した後、続く一連の処理を繰り返す。こうして、全ての画素についての処理を終了したら（ステップＳ６０８：ｙｅｓ）、コード化した状態で画素群毎に記憶しておいた各種ドットの個数を表すデータを、プリンタ２００に向かって、個数データとして出力する（ステップＳ６１０）。
【０１４０】
ここで、ステップＳ６０６において、各種ドットの個数を示すデータをコード化する処理について説明する。画素群は８つの画素で構成されており、各画素は、大中小のいずれかのドットを形成するかあるいはドットを形成しないかの４つの状態を取り得る。従って、画素群内に形成される各種ドットの個数の組合せは、これら４種類の状態の中から重複を許して８回選択したときの組合せの数に等しくなるから、
４Ｈ８  （＝  ４＋８−１Ｃ８  ）
によって求められ、結局、１６５通りの組合せが存在していることになる。ここで  ｎＨｒ  は、ｎ個の物の中から重複を許してｒ回選択するときの重複組合せ数を求める演算子である。また、ｎＣｒ  は、ｎ個の物の中から（重複を許さず）ｒ回選択するときの組合せ数を求める演算子である。
【０１４１】
図２２（ａ）は、１６５通り存在する各種ドットの組合せを示した説明図である。データ長が７ビットのデータは、図２２（ｂ）に示すように、全ビットが０の状態から全ビットが１の状態までの、合計１２８通りの状態しか表現することができない。従って１６５通りの組合せを全部表すためには、図２２（ｃ）に示すように、８ビットのデータとする必要がある。尚、以下では７ビットのデータを簡便に表示可能とするために、上位３ビットと下位４ビットの２つに分け、８進数表示と１６進数表示とを組み合わせて表現するものとする。例えば、全てのビットが０のデータは、０（ｏ）  ０（ｈ）  と表現するものとする。ここで、（ｏ）  は８進数表示されていることを表し、（ｈ）  は１６進数表示されていることを表しているものとする。また、８ビットのデータについても同様に、上位４ビットと下位４ビットの２つに分けて表現するものとする。
【０１４２】
このようにデータ長を８ビットとすれば各種ドットの個数を表すデータを表現することは可能となるものの、８ビットのデータは２５６通りの状態を表現可能である。７ビットのデータ長では表現可能な状態が３７通りだけ不足するために、全ての画素群について２５６通りもの状態を表現可能な８ビットデータとしたのでは、プリンタ２００に出力するデータ量の増加を招いてしまうので好ましいことではない。そこで、図２０のステップＳ６０６では、１６５通りの組合せを取り得る各種ドットの個数をコード化して、データ長が７ビットのコードを用いて表現する。
【０１４３】
各種ドットについての個数のデータをコード化する処理は、前述した第１実施例と同様に対応表を参照することによって行われる。図２３は、コード化に際して参照される対応表を概念的に示した説明図である。図示するように、対応表には、各種ドットの個数の組合せと、コード化されたデータ（エンコードデータ）とが対応付けて記憶されている。そして、それぞれのエンコードデータは、データ長が７ビットのコードが、１つあるいは複数個、組み合わされて構成されている。ここで理解の便宜を図るため、対応表について説明する前に各コードが表す内容について説明する。
【０１４４】
図２４は、対応表に記憶されている各コードが表す内容を示した説明図である。コードはデータ長が７ビットのデータであるから、０（ｏ）  ０（ｏ）  から７（ｏ）  Ｆ（ｏ）  までの１２８通りの状態を表現し得る。このうち、７（ｏ）  Ｆ（ｏ）  のコードは拡張コードを表しており、他の１２７種類のコードは、各種ドットの個数の組合せを表している。換言すれば、０（ｏ）  ０（ｏ）  から７（ｏ）  Ｅ（ｏ）  の各コードはそのまま各種ドットの個数の組合せをそれぞれ表しており、一方、拡張コード７（ｏ）  Ｆ（ｏ）  は、そのコードと他のコードとを組み合せることによって各種ドットの個数を表すことになる。
【０１４５】
図２３に示した対応表には、このようにして各種ドットの個数の組合せと、エンコードデータとが対応付けられて記憶されている。例えば、小ドット、中ドット、大ドットのいずれの個数も０個である組合せには、０（ｏ）  ０（ｈ）  のコードが対応付けて記憶されている。また、小ドットの個数１個、中ドットおよび大ドットの個数は０個である組合せには、０（ｏ）  １（ｈ）  のコードが対応付けて記憶されている。このように、０（ｏ）  ０（ｈ）  から７（ｏ）  Ｅ（ｈ）  の各コードに、各種ドットの個数を表す１２７通りの組合せ（図２３に示した通し番号では０番から１２６番までの組合せ）がそれぞれ対応付けられている。そして、通し番号で１２７番から１６４番までの組合せは、拡張コードである７（ｏ）  Ｆ（ｈ）  と他のコードとを組み合わせたコードに対応付けられている。
【０１４６】
図２０に示した個数データ生成処理中のステップＳ６０６においては、図２３に示す対応表を参照しながら、各種ドットの個数を表すデータを、データ長７ビットのコードを用いて表現されたデータに変換するのである。
【０１４７】
尚、以上の説明では、拡張コードは７（ｏ）  Ｆ（ｈ）  のコードに設定されているものとしたが、これに限らず、７ビットのコードの中のいずれのコードを拡張コードに設定することも可能である。
【０１４８】
プリンタ２００には、画素群内に形成される各種ドットの個数を表すデータが、このようにコード化された状態で供給される。プリンタ２００は、こうした個数データを受け取ると、個数データをデコードした後（図１７のステップＳ５１０）、画素群内で各種ドットを形成する画素位置を決定する処理（図１７のステップＳ５１２）を行って画像を印刷する。以下、これら処理の内容について詳しく説明する。
【０１４９】
Ｃ−３．第２実施例の個数データデコード処理：
第２実施例の個数データデコード処理は、図１２を用いて説明した第１実施例における個数データデコード処理とほぼ同様である。そこで、以下では、図１２のフローチャートを流用しながら、第２実施例の個数データデコード処理について説明する。
【０１５０】
第２実施例においても、第１実施例と同様に、個数データデコード処理を開始すると先ず初めに、コード１つ分の個数データを読み込む（ステップＳ３００相当）。ただし、第１実施例では１つのコードは３ビットであるとしたが、第２実施例では７ビットであるから、ここでは７ビットのデータを読み込むことになる。
【０１５１】
次いで、読み込んだコードが拡張コードであるか否かを判断する（ステップＳ３０２相当）。第２実施例では、拡張コードは７（ｏ）  Ｆ（ｈ）  に設定されているから、ステップＳ３０２相当の処理では、先に読み込んだコードが７（ｏ）  Ｆ（ｈ）  と一致するか否かを判断する。そして、読み込んだコードが拡張コードでない場合は（ステップＳ３０２相当：ｎｏ）、図２３に示した対応表を参照しながら、読み込んだコードをドットの個数のデータに変換する（ステップＳ３０６相当）。
【０１５２】
一方、読み込んだコードが拡張コードである場合は（ステップＳ３０２相当：ｙｅｓ）、もう１つ分のコードを読み込んだ後（ステップＳ３０４相当）、図２３の対応表を参照することにより、２つのコードの組合せを、各種ドットの個数を表すデータに変換する（ステップＳ３０６相当）。
【０１５３】
以上のようにして、１つの画素群の個数データをデコードしたら、全画素群についてのデコードが終了したか否かを判断する（ステップＳ３０８相当）。そして、未処理の画素群が残っている場合は、処理の初めに戻って、個数データから新たな１つ分のコードを読み込み、続く一連の処理を行う。こうした操作を繰り返し、全画素群についてのデコードが終了したら、第２実施例の個数データデコード処理を終了する。第２実施例においては、こうして個数データをデコードすることにより、画素群内に形成する各種ドットの個数を表すデータを得ることができる。そこで、次の画素位置決定処理を行うことにより、画素群内に各種ドットを形成する画素位置を決定する。以下、第２実施例において、画素群内に各種ドットを形成する画素位置を決定する処理について説明する。
【０１５４】
Ｃ−４．第２実施例の画素位置決定処理：
図２５は、第２実施例の画素位置決定処理の流れを示したフローチャートである。以下、フローチャートに従って説明する。
【０１５５】
第２実施例の画素位置決定処理を開始すると、先ず初めに、画素位置を決定しようとする画素群を１つ選択する（ステップＳ７００）。次いで、選択した画素群内に形成される各種ドットの個数を表すデータを取得する（ステップＳ７０２）。画素群内に形成される各種ドットの個数を表すデータは、コンピュータ１００からコード化された状態で供給されるが、前述した個数データデコード処理においてデコードされて、画素群毎に記憶されている。ステップＳ７０２では、こうしてデコードされて記憶されている個数のデータの中から、画素位置を決定しようとする画素群についてのデータを取得する。
【０１５６】
次いで、ディザマトリックスを参照しながら、各種ドットを形成する画素位置を決定する処理を行う（ステップＳ７０４）。かかる処理について、図２６を参照しながら説明する。
【０１５７】
図２６は、ある画素群について、各種ドットのドット個数が与えられたときに、ディザマトリックスを参照しながら、これらドットを形成する画素位置を決定する様子を示した説明図である。図中に示した太い実線の矩形は画素群を表している。画素群を区分する細い破線は、画素群が複数の画素から構成されていることを表している。また、画素中に示された数値は、ディザマトリックスの対応する位置に設定されている閾値を示している。尚、ディザマトリックスは、ドット個数を求めるために用いたマトリックスと同じマトリックスを使用するものとする。
【０１５８】
今、画素位置を決定しようとする画素群には、大ドット１個、中ドット２個、小ドット１個を形成するものとする。画素位置を決定するに際しては、先ず初めに大ドットを形成する画素位置を決定する。前述したように、ディザマトリックスの閾値は、ドットの形成され易さを表していると考えることができるから、大ドットを１個だけ形成されるとすれば、最も小さな閾値が設定された画素に形成されるはずである。従って、大ドットを形成する画素位置は、閾値「１」の画素であると決定することができる。
【０１５９】
大ドットの画素位置に続いて、中ドットを形成する画素位置を決定する。中ドットは２個形成することになっており、また、最も小さな閾値の画素には既に大ドットが形成されている。従って中ドットは、閾値が２番目に小さな画素と３番目に小さな画素の２つの画素に形成されるはずである。従って、中ドットを形成する画素位置は、閾値「４２」の画素と閾値「５８」の画素であると決定することができる。小ドットについても、同様にして画素位置を決定することができる。すなわち、小ドットは１個だけ形成することになっており、また、閾値の最も小さな画素から３番目に小さな画素までは、既に大ドットあるいは中ドットが形成されているから、小ドットは、閾値が４番目に小さな画素に形成されるはずである。従って、小ドットを形成する画素位置は、閾値「１０９」の画素であると決定することができる。
【０１６０】
図２６は、こうして大ドット、中ドット、小ドットの順番で、ドットを形成する画素を決定している様子を表しており、図中で、細かい斜線が付された画素は大ドットを形成すると判断された画素を、中間の斜線が付された画素は中ドットを形成すると判断された画素を、粗い斜線が付された画素は小ドットを形成すると判断された画素を、それぞれ表している。図２５のステップＳ７０４では、このようにして、ディザマトリックスを参照しながら、各種ドットを形成する画素位置を決定する処理を行う。
【０１６１】
以上のようにして、１つの画素群について、各種ドットを形成する画素位置を決定したら、全画素群のデータについて、画素位置を決定する処理を終了したか否かを判断する（図２５のステップＳ７０６）。そして、未処理の画素群が残っている場合は（ステップＳ７０６：ｎｏ）、ステップＳ７００に戻って、新たな画素群について続く一連の処理を繰り返す。こうして全ての画素群について画素位置を決定したと判断されたら（ステップＳ７０６：ｙｅｓ）、図２５に示す画素位置決定処理を抜けて、画像印刷処理に復帰した後、印刷用紙上に各種ドットを形成する。この結果、画像データに対応した画像が印刷されることになる。
【０１６２】
プリンタ２００がいわゆる多値プリンタである場合には、以上に説明した第２実施例の画像印刷処理を行うことにより、コンピュータ１００からプリンタ２００に各種ドットのドット個数を転送しながら画像を印刷することができる。こうすれば、画素毎にドット形成の有無を示すデータを供給するよりも、効率よく供給することができるので、たとえ、画素数の多い画像でも、迅速に画像を印刷することが可能となる。
【０１６３】
加えて、前述した第１実施例と同様に、第２実施例においても画素群内に形成される各種ドットの個数を表すデータは、コード化された状態でプリンタ２００に出力される。こうしてコード化することで、更にデータ量を減少させることができるので、画像をより一層迅速に印刷することが可能となる。
【０１６４】
また、以上の説明では、各画素が４つの状態を取り得るときに、考えられる全ての組合せにコードを割り当てるものとした。しかし画像を印刷する場合に、考えられる全ての組合せが現れるわけではない。例えば、画素群の中に１つだけ大ドットを形成した場合、ドットが目立って画質を悪化させるので、こうした組合せは使用されておらず、代わりに、小ドットあるいは中ドットが複数個、形成されるような組合せが用いられる。このような、使用されない組合せにはコードを割り当てずに、実際に使用される組合せにのみコードを割り当てることとすれば、プリンタ２００に出力すべきデータ量を更に減少させることができる。これについて、図２３に示した例を用いて補足して説明する。
【０１６５】
図２３に示した対応表では、各種ドットの個数を表す１６５通りの組合せに対して、それぞれコードが割り当てられている。コードのデータ長は７ビットであり、コード１つ分では１２８通りの状態しか表現できず、表現可能な状態数が不足する。そこで、コード７（ｏ）  Ｆ（ｈ）  を拡張コードに設定し、１２７通りの組合せは１つのコードで表現し、残りの３８通りの組合せについては２つのコードを組み合わせて表現している。ここで、実際には使用されない組合せにはコードを割り当てないこととすれば、コードを割り当てるべき総数が減少するので、２つのコードを用いて表現しなければならない組合せの数が減少する。その結果、プリンタ２００に出力すべきデータ量を減少させることができ、延いては画像を迅速に表示することが可能となるのである。
【０１６６】
また、全く使用されないわけではないものの、使用頻度の低い組合せが存在する場合、このような組合せを拡張コードを用いて表すこととしてもよい。例えば、中ドットは形成されずに大ドットと小ドットだけが形成されるような組合せは、大ドットと中ドットの組合せ、あるいは中ドットと小ドットの組合せの方がより自然であるため、滅多に出現しない組合せと考えることができる。また、大ドット、中ドット、小ドットが全て出現する組合せも、同様な理由から滅多に出現しない組合せと考えられる。更に、本実施例のプリンタ２００のように、インク滴を吐出してインクドットを形成するプリンタでは、ほとんど全ての画素に小ドットだけが形成されるような組合せも使用されないことが多い。これは、インク滴の吐出方向が僅かにずれただけで、バンディングと呼ばれる筋が発生して画質を悪化させることがあるので、このような組合せの使用は避けられる傾向にあるためである。
【０１６７】
拡張コードと他のコードとを用いて表現する組合せを、このように使用頻度の低い組合せに割り当てておけば、コンピュータ１００からプリンタ２００に出力すべきデータ量を効果的に抑制することが可能となる。
【０１６８】
以上、各種の実施例について説明してきたが、本発明は上記すべての実施例に限られるものではなく、その要旨を逸脱しない範囲において種々の態様で実施することができる。例えば、上述の機能を実現するソフトウェアプログラム（アプリケーションプログラム）を、通信回線を介してコンピュータシステムのメインメモリまたは外部記憶装置に供給し実行するものであってもよい。もちろん、ＣＤ−ＲＯＭやフレキシブルディスクに記憶されたソフトウェアプログラムを読み込んで実行するものであっても構わない。
【０１６９】
また、以上の実施例では、印刷用紙上にドットを形成して画像を印刷するプリンタに本発明を適用した場合について説明したが、本発明の適用範囲はプリンタに限られるものではなく、例えば、液晶表示画面上で輝点を適切な密度で分散させることにより、階調が連続的に変化する画像を表現する液晶表示装置などにも、本発明を好適に適用することができる。
【図面の簡単な説明】
【図１】印刷システムを例にとって本発明の概要を説明するための説明図である。
【図２】本実施例の画像処理装置としてのコンピュータの構成を示す説明図である。
【図３】本実施例のカラープリンタの概略構成を示す説明図である。
【図４】インク吐出用ヘッドにおけるインクジェットノズルの配列を示す説明図である。
【図５】コンピュータおよびプリンタが画像データに所定の画像処理を加えて印刷媒体上に画像を印刷する処理の流れを示すフローチャートである。
【図６】第１実施例において行われる解像度変換の様子を示す説明図である。
【図７】第１実施例の個数データ生成処理の流れを示すフローチャートである。
【図８】ディザマトリックスの一部を例示した説明図である。
【図９】ディザマトリックスを参照しながら着目画素についてのドット形成の有無を判断している様子を概念的に示した説明図である。
【図１０】画像データに個数データ生成処理を施すことで個数データが生成される様子を概念的に示した説明図である。
【図１１】ドット個数のデータをコード化する処理において参照される対応表および対応表に設定されている各コードの内容を示した説明図である。
【図１２】個数データデコード処理の流れを示すフローチャートである。
【図１３】第１実施例においてプリンタが行う画素位置決定処理の流れを示すフローチャートである。
【図１４】画素群のドットの個数に基づいて画素群内でドットを形成する画素の位置が決定される様子を概念的に示した説明図である。
【図１５】ドットの個数のデータをコード化することにより、データ量が減少する様子を示す説明図である。
【図１６】少なくとも一部が不連続となるようなドット個数に拡張データが割り当てられている様子を例示した説明図である。
【図１７】第２実施例の画像印刷処理の流れを示すフローチャートである。
【図１８】色変換後の画像データを大中小ドットについてのドットデータに変換する際に参照する変換テーブルを概念的に示した説明図である。
【図１９】第２実施例の個数データ生成処理においてドットデータから画素群内に形成するドットの個数を決定する様子を示した説明図である。
【図２０】第２実施例の個数データ生成処理の流れを示したフローチャートである。
【図２１】ディザマトリックスを参照しながら着目画素に大ドット中ドット小ドットのいずれのドットを形成するべきかを判断する方法を示した説明図である。
【図２２】画素群内に形成され得る各種ドットの組合せと、７ビットデータが表示可能な状態数、および８ビットデータが表示可能な状態数とを比較した説明図である。
【図２３】コード化に際して参照される対応表を概念的に示した説明図である。
【図２４】対応表に記憶されている各コードが表す内容を示した説明図である。
【図２５】第２実施例の画素位置決定処理の流れを示したフローチャートである。
【図２６】ある画素群について各種ドットのドット個数が与えられたときにディザマトリックスを参照しながらこれらドットを形成する画素位置を決定する様子を示した説明図である。
【符号の説明】
１０…コンピュータ
２０…プリンタ
１００…コンピュータ
１０８…周辺機器インターフェースＰＩＦ
１０９…ディスクコントローラＤＤＣ
１１０…ネットワークインターフェースカードＮＩＣ
１１２…ビデオインターフェースＶＩＦ
１１６…バス
１１８…ハードディスク
１２０…デジタルカメラ
１２２…カラースキャナ
１２４…フレキシブルディスク
１２６…コンパクトディスク
２００…プリンタ
２３０…キャリッジモータ
２３６…プラテン
２３５…モータ
２４０…キャリッジ
２４１…印字ヘッド
２４２…インクカートリッジ
２４３…インクカートリッジ
２４４…インク吐出用ヘッド
２６０…制御回路
３００…通信回線
３１０…記憶装置
【図１】
2005039491.tif 000003
【図２】
2005039491.tif 000004
【図３】
2005039491.tif 000005
【図４】
2005039491.tif 000006
【図５】
2005039491.tif 000007
【図６】
2005039491.tif 000008
【図７】
2005039491.tif 000009
【図８】
2005039491.tif 000010
【図９】
2005039491.tif 000011
【図１０】
2005039491.tif 000012
【図１１】
2005039491.tif 000013
【図１２】
2005039491.tif 000014
【図１３】
2005039491.tif 000015
【図１４】
2005039491.tif 000016
【図１５】
2005039491.tif 000017
【図１６】
2005039491.tif 000018
【図１７】
2005039491.tif 000019
【図１８】
2005039491.tif 000020
【図１９】
2005039491.tif 000021
【図２０】
2005039491.tif 000022
【図２１】
2005039491.tif 000023
【図２２】
2005039491.tif 000024
【図２３】
2005039491.tif 000025
【図２４】
2005039491.tif 000026
【図２５】
2005039491.tif 000027
【図２６】
2005039491.tif 000028