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