JP4059121B2 - 所定領域内に形成されるドット個数の情報に基づいて画像を表示する画像表示システム - Google Patents
所定領域内に形成されるドット個数の情報に基づいて画像を表示する画像表示システム Download PDFInfo
- Publication number
- JP4059121B2 JP4059121B2 JP2003087198A JP2003087198A JP4059121B2 JP 4059121 B2 JP4059121 B2 JP 4059121B2 JP 2003087198 A JP2003087198 A JP 2003087198A JP 2003087198 A JP2003087198 A JP 2003087198A JP 4059121 B2 JP4059121 B2 JP 4059121B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- pixel group
- pixel
- dot
- dots
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 claims description 199
- 239000011159 matrix material Substances 0.000 claims description 159
- 238000012545 processing Methods 0.000 claims description 127
- 230000015572 biosynthetic process Effects 0.000 claims description 99
- 230000006870 function Effects 0.000 claims description 47
- 238000003672 processing method Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 description 151
- 238000007639 printing Methods 0.000 description 60
- 239000000976 ink Substances 0.000 description 59
- 238000010586 diagram Methods 0.000 description 48
- 238000006243 chemical reaction Methods 0.000 description 42
- 230000004048 modification Effects 0.000 description 24
- 238000012986 modification Methods 0.000 description 24
- 238000012546 transfer Methods 0.000 description 16
- 239000003086 colorant Substances 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 238000009792 diffusion process Methods 0.000 description 4
- 239000004973 liquid crystal related substance Substances 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 239000000843 powder Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/40—Picture signal circuits
- H04N1/405—Halftoning, i.e. converting the picture signal of a continuous-tone original into a corresponding signal showing only two levels
- H04N1/4055—Halftoning, i.e. converting the picture signal of a continuous-tone original into a corresponding signal showing only two levels producing a clustered dots or a size modulated halftone pattern
- H04N1/4057—Halftoning, i.e. converting the picture signal of a continuous-tone original into a corresponding signal showing only two levels producing a clustered dots or a size modulated halftone pattern the pattern being a mixture of differently sized sub-patterns, e.g. spots having only a few different diameters
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Image Processing (AREA)
- Facsimile Image Signal Circuits (AREA)
Description
【発明の属する技術分野】
この発明は、画像データに所定の画像処理を施して画像を表示する技術に関し、詳しくは、画像処理が施された画像データを画像表示装置に迅速に転送することによって、画像の表示を迅速化する技術に関する。
【0002】
【従来の技術】
印刷媒体や液晶画面といった各種の表示媒体上にドットを形成することで画像を表現する画像表示装置は、各種画像機器の出力装置として広く使用されている。これら画像表示装置では、画像は画素と呼ばれる小さな領域に細分された状態で扱われており、ドットはこれら画素に形成される。ドットを画素に形成した場合、もちろん個々の画素については、ドットが形成されているか、いないかのいずれかの状態しか取り得ない。しかし、画像全体として見れば、ドットが密に形成されている領域や、まばらに形成されている領域を生じさせることが可能であり、従って、ドットの形成密度を変えることによって画像を表示することが可能となる。例えば、印刷用紙上に黒いインクのドットを形成する場合、ドットが密に形成されている領域は暗く見えるし、逆にドットがまばらに形成されている領域は明るく見える。また、液晶画面に輝点のドットを形成する場合、ドットが密に形成された領域は明るく見え、まばらに形成された領域は暗く見える。従って、ドットの形成密度を適切に制御してやれば、多階調の画像を表示させることが可能となる。
【0003】
ドットの形成密度を制御するためのデータは、表示しようとしている画像のデータに対して、所定の画像処理を施すことによって発生させる。得られたデータは画像処理装置に供給され、画像処理装置では、供給されたデータに従って各画素にドットを形成する。この結果、表示媒体上に適切な密度でドットが形成され、画像が表示されることになる。
【0004】
近年では、これら画像表示装置には、表示画像の高画質化や大画像化が要請されるようになってきた。高画質化の要請に対しては、画像をより細かな画素に分割することが効果的である。こうして画素を小さくすれば、画素に形成されるドットが目立たなくなって画質を向上させることができる(例えば、特許文献1)。また、大画像化の要請に対しては、画素数の増加によって対応することができる。もちろん、個々の画素を大きくすることによっても表示画像を大きくすることはできるが、これでは画質の低下を招いてしまうので、大型化の要請に対しては画素数を増加させることが効果的である。
【0005】
【特許文献1】
特開2000−115716号公報
【0006】
【発明が解決しようとする課題】
しかし、表示画像の高画質化や大画像化の要請に応えようとすると、いきおい画像を迅速に表示することが困難になるという問題があった。すなわち、大画像化のために画素数を増加した場合はもちろんのこと、画像の高画質化のために個々の画素を小さくした場合も、結果として1つの画像に含まれる画素数が増加する。前述したように、画像表示装置は、ドットの形成を制御するデータの供給を受けて画像を表示するので、1つの画像に含まれる画素数が増加すると、データの供給に要する時間が増加してしまい、画像を迅速に表示することが困難となるのである。
【0007】
この発明は、従来技術における上述した課題を解決するためになされたものであり、ドットの形成を制御するためのデータを画像表示装置に迅速に供給することで、画像の表示を迅速化させることを可能とする技術の提供を目的とする。
【0008】
【課題を解決するための手段およびその作用・効果】
上述した課題の少なくとも一部を解決するために、本発明の画像表示システムは、次の構成を採用した。すなわち、
画像データに所定の画像処理を施す画像処理装置と、該画像処理の結果に基づいてドットを形成することにより画像を表示する画像表示装置と、を備える画像表示システムであって、
前記画像処理装置は、
前記画像データを構成する複数の画素を、複数個ずつまとめて画素群を生成する画素群生成手段と、
前記画素群内の画素間で前記画像データの階調差が所定値以上の場合に、該画素群はエッジを含むと判断し、前記階調差が前記所定値未満の場合に、該画素群はエッジを含まないと判断するエッジ有無判断手段と、
前記エッジを含まないと判断された画素群について、該画素群内に形成されるドットの個数を、前記画素群内の画像データに基づいて決定するドット個数決定手段と、
前記エッジを含むと判断された画素群について、該画素群内の画素毎にドット形成の有無を該画素の画像データに基づいて判断することにより、各画素についてのドット形成有無を表すドットデータを生成するドットデータ生成手段と、
前記エッジを含まないと判断された画素群についての前記ドット個数のデータと、前記エッジを含むと判断された画素群についての前記ドットデータとを、前記画像表示装置に出力する個数データ出力手段と
を備えており、
前記画像表示装置は、
前記画素群内の画素数を超える数の閾値を有するディザマトリックスが、前記画素群内の画素数に応じた数の閾値を有する複数の閾値群に区分され、該区分された閾値群内の前記閾値の大小関係に応じて、前記画素群を構成する画素間でのドットの形成され易さが規定された序列を複数記憶している序列記憶手段と、
前記ドット個数のデータと前記ドットデータとを受け取る個数データ受取手段と、
前記記憶されている複数の序列の中から、前記ドット個数のデータを受け取った画素群毎に、該画素群に対応する序列を選択する序列選択手段と、
前記ドット個数のデータと前記選択した序列とに基づいて、または、前記ドットデータに基づいて、前記画素群内でドットが形成される画素位置を該画素群毎に決定する画素位置決定手段と、
前記決定した画素位置にドットを形成するドット形成手段と を備えることを要旨とする。
【0009】
また、上記の画像表示システムに対応する本発明の画像表示制御方法は、
画像データに所定の画像処理を施して、得られた結果に基づきドットを形成することによって、画像を表示する画像表示制御方法であって、
前記画像を構成する複数の画素を、複数個ずつまとめて画素群を生成する第1の工程と、
前記画素群内の画素間で前記画像データの階調差が所定値以上の場合に、該画素群はエッジを含むと判断し、前記階調差が前記所定値未満の場合に、該画素群はエッジを含まないと判断する第2の工程と、
前記エッジを含まないと判断された画素群について、該画素群内に形成されるドットの個数を、前記画素群内の画像データに基づいて決定する第3の工程と、
前記エッジを含むと判断された画素群について、該画素群内の画素毎にドット形成の有無を該画素の画像データに基づいて判断することにより、各画素についてのドット形成有無を表すドットデータを生成する第4の工程と、
前記画素群内の画素数を超える数の閾値を有するディザマトリックスが、前記画素群内の画素数に応じた数の閾値を有する複数の閾値群に区分され、該区分された閾値群内の前記閾値の大小関係に応じて、前記画素群を構成する画素間でのドットの形成され易さが規定された序列が複数記憶されている中から、前記ドット個数が決定された画素群毎に、該画素群に対応する序列を選択する第5の工程と、
前記ドット個数のデータと前記選択した序列とに基づいて、または、前記ドットデータに基づいて、前記画素群内でドットが形成される画素位置を該画素群毎に決定する第6の工程と、
前記決定した画素位置にドットを形成する第7の工程と
を備えることを要旨とする。
【0010】
かかる本発明の画像表示システムおよび画像表示方法においては、画素群毎にエッジを含むか否かを判断し、エッジを含まない画素群については該画素群内に形成されるドット個数のデータを生成する。また、エッジを含む画素群については該画素群内の各画素についてのドットデータを生成する。画像を表示する際には、次のようにして表示媒体上にドットを形成する。先ず、ドット個数のデータに対しては、複数記憶されている序列の中から1の序列を選択し、該選択した序列と、画素群のドット個数のデータとに基づいて、該画素群内でドットが形成される画素位置を決定する。こうして決定した画素位置と、該ドットデータによって示されたドットを形成する画素位置とに基づいて、表示媒体上にドットを形成する。
【0011】
一般に、画素毎にドット形成の有無を判断した場合、画素群内でドットが形成される画素位置は、該画素群に含まれる画素間でドットが形成され易さを示す序列だけでなく、各画素の画像データによっても影響される。このことから、画素群内にドットを形成する画素位置を、該画素群に形成すべきドット個数と、画素間でのドットの形成され易さを示す序列とに基づいて決定した場合、画素群内の画素間で画像データの階調差が大きくなると、画素位置を適切に決定することが困難となる。本発明の画像表示システムおよび画像表示方法においては、こうした点に鑑みて、画素間で画像データの階調差が所定値以上の画素群はエッジを含んだ画素群であると判断し、エッジを含む画素群については各画素のドット形成の有無を判断してドットデータを生成する。また、エッジを含まない画素群については該画素群に形成するドット個数のデータを生成する。こうすれば、画素間の階調差が大きな画素群については、ドットデータに基づいて適切な画素位置にドットを形成することができるので、表示媒体上に画像を高い画質で表示することが可能となる。
【0012】
加えて、画素群内に形成するドットの個数は、画素群内の各画素についてのドット形成の有無よりも僅かなデータ量で表すことができる。従って、画像データを、画素群のドット個数のデータに一旦変換しておけば、データの転送量が減少して速やかに転送することができる。このため、例え画素数の多い画像であっても、僅かな時間でデータ転送が完了して、迅速に画像を表示することが可能となる。
【0013】
また、画素群内での画素位置を決定するに際しては、複数記憶されている序列の中から画素群毎に1の序列が選択され、この序列とドット個数のデータとに基づいて決定される。このため、例え、同じ個数のドットが形成される画素群が連続した場合でも、画素群毎に異なる画素位置にドットが形成されることになる。従って、規則的なパターンで形成されているドットが目立ってしまい、画質を悪化させるおそれを回避することができる。
【0014】
こうした画像表示システムにおいては、前記画像表示装置に向かって次のようなデータを出力することとしても良い。すなわち、前記ドット個数のデータと前記ドットデータとが前記画素群の並びに従って配列されているとともに、該ドットデータと該データに先立つデータとの間に、該画素群を構成する画素数より大きな値のデータが挿入された状態で、前記画像表示装置に該個数データとドットデータとを出力する。そして、該画像表示装置では、ドット個数のデータが前記画素群を構成する画素数よりも大きい場合には、該データはドット個数ではなく、続くデータが前記ドットデータであることを示していると解釈することとしてもよい。
【0015】
このように、直前に大きな値のデータを付加することでドットデータを識別してやれば、ドット個数のデータについては、特に識別のためのデータを付加することなく、そのまま出力することが可能である。このことから表示しようとする画像が、エッジを含む画素群の比率が低く、従って、ドット個数のデータで出力される比率が高い画像である場合には、こうすることで、出力するデータ量を減少させることができる。その結果、迅速に画像を表示することが可能となるので好適である。
【0016】
あるいは、次のようなデータを出力することとしても良い。すなわち、ドット個数のデータおよびドットデータとともに、データがこれらのいずれであるかを識別するための識別情報を、前記画像表示装置に向かって出力する。そして、該画像表示装置では、該識別情報に基づいて、ドット個数のデータとドットデータとを識別しながら受け取ることとしても良い。
【0017】
前述したように、画素群を構成する画素数よりも大きな値を挿入することでドットデータを識別する場合、エッジを含まない画素群の比率が高ければ出力するデータ量を減少させることができる。しかし、エッジを含まない画素群の比率が低くなり、ドットデータの比率が高くなると、ドットデータの識別のために挿入されるデータ量が増加するので、出力するデータ量も増加してしまう。これに対して、出力するデータがドット個数のデータであるかドットデータであるかを、識別情報によって区別する場合、全てのデータに識別情報を付与する必要があるものの、個々の識別情報自体のデータ量は僅かでよい。従って、エッジを含まない画素群の比率が高くない場合には、識別情報を用いて区別することで、データの出力量を減少させることができ、延いては画像を迅速に表示することが可能となるので好適である。
【0018】
また、従来技術の有する前述した課題の少なくとも一部を解決するために、本発明の画像表示装置は次の構成を採用した。すなわち、
所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより画像を表示する画像表示装置であって、
前記画像データを構成する複数の画素を複数個ずつまとめた各画素群について、該画素群内に形成すべきドットの個数のデータ、または該画素群内の画素毎にドット形成の有無を表したドットデータを、前記画像データとして受け取る画像データ受取手段と、
前記画素群内の画素数を超える数の閾値を有するディザマトリックスが、前記画素群内の画素数に応じた数の閾値を有する複数の閾値群に区分され、該区分された閾値群内の前記閾値の大小関係に応じて、前記画素群を構成する画素間でのドットの形成され易さが規定された序列を複数記憶している序列記憶手段と、
前記記憶されている複数の序列の中から、前記ドット個数のデータを受け取った画素群毎に、該画素群に対応する序列を選択する序列選択手段と、
前記ドット個数のデータと前記選択した序列とに基づいて、または、前記ドットデータに基づいて、前記画素群内でドットが形成される画素位置を該画素群毎に決定する画素位置決定手段と
前記決定した画素位置にドットを形成するドット形成手段と
を備えることを要旨とする。
【0019】
更に、上記の画像表示装置に対応する本発明の画像表示方法は、
所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより画像を表示する画像表示方法であって、
前記画像データを構成する複数の画素を複数個ずつまとめた各画素群について、該画素群内に形成すべきドットの個数のデータ、または、該画素群内の画素毎にドット形成の有無を表したドットデータを、前記画像データとして受け取る工程(A)と、
前記画素群内の画素数を超える数の閾値を有するディザマトリックスが、前記画素群内の画素数に応じた数の閾値を有する複数の閾値群に区分され、該区分された閾値群内の前記閾値の大小関係に応じて、前記画素群を構成する画素間でのドットの形成され易さが規定された序列が複数記憶されている中から、前記ドット個数のデータを受け取った画素群毎に、該画素群に対応する序列を選択する工程(B)と、
前記ドット個数のデータと前記選択した序列とに基づいて、または、前記ドットデータに基づいて、前記画素群内でドットが形成される画素位置を該画素群毎に決定する工程(C)と、
前記決定した画素位置にドットを形成する工程(D)と
を備えることを要旨とする。
【0020】
こうした画像表示装置および画像表示方法においては、エッジを含まない画素群についてはドット個数のデータを受け取っているので、画像処理が施されたデータを迅速に受け取って画像を表示することができる。また、エッジを含む画素群については、画素毎にドット形成の有無を示すドットデータを受け取ってドットを形成しているので、画像を高い画質で表示することが可能となる。
【0021】
かかる画像表示装置においては、画像処理が施されたデータを受け取るに際して、受け取ったドット個数のデータが前記画素群を構成する画素数よりも大きな値のデータである場合には、該データはドット個数ではなく、続くデータが前記ドットデータであることを示すものと解釈しながら、前記画像データを受け取ることとしてもよい。
【0022】
こうすれば、ドット個数のデータをドットデータとともに受け取っているにも関わらず、ドット個数のデータについては、特に識別のためのデータを付加することなく、そのまま受け取ることが可能である。このことから表示しようとする画像が、エッジを含む画素群の比率が低く、従って、ドット個数のデータで出力される比率が高い画像である場合には、データを迅速に受け取ることができ、延いては、迅速に画像を表示することが可能となる。
【0023】
更に、従来技術が有する前述した課題の少なくとも一部を解決するために、本発明の画像処理装置は、次の構成を採用した。すなわち、
ドットを形成して画像を表示する画像表示装置が該ドットの形成を制御するために用いる制御データを、該画像を表す画像データに所定の画像処理を施して生成する画像処理装置であって、
前記画像データを構成する複数の画素を、複数個ずつまとめて画素群を生成する画素群生成手段と、
前記画素群を構成する画素の数を超える閾値を有するディザマトリックスを記憶するディザマトリックス記憶手段と、
前記画素群内の画素間で前記画像データの階調差が所定値以上の場合に、該画素群はエッジを含むと判断し、前記階調差が前記所定値未満の場合に、該画素群はエッジを含まないと判断するエッジ有無判断手段と、
前記エッジを含まないと判断された画素群について、該画素群内に形成されるドットの個数を、該画素群内の各階調値と、前記ディザマトリックス内の該画素群に対応した位置に存在する各閾値とをそれぞれ比較して、前記階調値と前記閾値とが所定の大小関係となる画素の数を検出することにより決定するドット個数決定手段と、
前記エッジを含むと判断された画素群について、該画素群内の画素毎にドット形成の有無を該画素の画像データに基づいて判断することにより、各画素についてのドット形成有無を表すドットデータを生成するドットデータ生成手段と、
前記エッジを含まないと判断された画素群についての前記ドット個数のデータと、前記エッジを含むと判断された画素群についての前記ドットデータとを、前記制御データとして前記画像表示装置に出力する制御データ出力手段と
を備えることを要旨とする。
【0024】
また、上述した画像処理装置に対応する本発明の画像処理方法は、
ドットを形成して画像を表示する画像表示装置が該ドットの形成を制御するために用いる制御データを、該画像を表す画像データに所定の画像処理を施して生成する画像処理方法であって、
前記画像データを構成する複数の画素を、複数個ずつまとめて画素群を生成する工程(イ)と、
前記画素群内の画素間で前記画像データの階調差が所定値以上の場合に、該画素群はエッジを含むと判断し、前記階調差が前記所定値未満の場合に、該画素群はエッジを含まないと判断する工程(ロ)と、
前記画像表示装置は、前記画素群を構成する画素の数を超える閾値を有するディザマトリックスを記憶しており、前記エッジを含まないと判断された画素群について、該画素群内に形成されるドットの個数を、該画素群内の各階調値と、前記ディザマトリックス内の該画素群に対応した位置に存在する各閾値とをそれぞれ比較して、前記階調値と前記閾値とが所定の大小関係となる画素の数を検出することにより決定する工程(ハ)と、
前記エッジを含むと判断された画素群について、該画素群内の画素毎にドット形成の有無を該画素の画像データに基づいて判断することにより、各画素についてのドット形成有無を表すドットデータを生成する工程(ニ)と、
前記エッジを含まないと判断された画素群についての前記ドット個数のデータと、前記エッジを含むと判断された画素群についての前記ドットデータとを、前記制御データとして前記画像表示装置に出力する工程(ホ)と
を備えることを要旨とする。
【0025】
かかる本発明の画像処理装置および画像処理方法においては、画素群がエッジを含むか否かを判断して、エッジを含まない画素についてはドット個数のデータを出力する。前述したように、画素群内に形成するドット個数のデータは、各画素についてのドットデータよりも僅かなデータ量で表すことができる。このため、例え、表現しようとする画像が画素数の多いものであっても、画像表示装置に制御データを迅速に出力することができる。また、エッジを含む画素群については、各画素についてのドットデータを出力することとすれば、画像処理においてドット形成の有無を判断した通りの画素位置にドットを形成することができる。こうした理由により、高い画質を維持しながら迅速に画像を表示させることが可能となる。
【0026】
また、こうした画像処理装置においては、制御データとして、ドット個数のデータとドットデータとを次のような形態で出力することとしても良い。すなわち、ドット個数のデータとドットデータとが画素群の並びに従って配列されているとともに、該ドットデータと該データに先立つデータとの間に、該画素群を構成する画素数より大きな値のデータが挿入された形態で出力することとしてもよい。
【0027】
この様な形態で、制御データを画像表示装置に出力してやれば、ドット個数のデータについては、識別のために何ら特別なデータを付加することなく、そのまま出力することが可能である。従って、出力しようとする画像が、ドット個数のデータで出力される比率が高い画像である場合には、制御データを迅速に出力して、迅速に画像を表示することが可能となるので好ましい。
【0028】
更に本発明は、上述した画像表示制御方法、画像表示方法あるいは画像処理方法を実現するためのプログラムをコンピュータに読み込ませ、コンピュータを用いて実現することも可能である。従って、本発明は次のようなプログラム、あるいは該プログラムを記録した記録媒体としての態様も含んでいる。すなわち、上述した画像表示制御方法に対応する本発明のプログラムは、
画像データに所定の画像処理を施して、得られた結果に基づきドットを形成することによって、画像の表示を制御するためのプログラムであって、
前記画像データを構成する複数の画素を、複数個ずつまとめて画素群を生成する第1の機能と、
前記画素群内の画素間で前記画像データの階調差が所定値以上の場合に、該画素群はエッジを含むと判断し、前記階調差が前記所定値未満の場合に、該画素群はエッジを含まないと判断する第2の機能と、
前記エッジを含まないと判断された画素群について、該画素群内に形成されるドットの個数を、前記画素群内の画像データに基づいて決定する第3の機能と、
前記エッジを含むと判断された画素群について、該画素群内の画素毎にドット形成の有無を該画素の画像データに基づいて判断することにより、各画素についてのドット形成有無を表すドットデータを生成する第4の機能と、
前記画素群内の画素数を超える数の閾値を有するディザマトリックスが、前記画素群内の画素数に応じた数の閾値を有する複数の閾値群に区分され、該区分された閾値群内の前記閾値の大小関係に応じて、前記画素群を構成する画素間でのドットの形成され易さが規定された序列が複数記憶されている中から、前記ドット個数が決定された画素群毎に、該画素群に対応する序列を選択する第5の機能と、
前記ドット個数のデータと前記選択した序列とに基づいて、または、前記ドットデータに基づいて、前記画素群内でドットが形成される画素位置を該画素群毎に決定する第6の機能と、
前記決定した画素位置にドットを形成する第7の機能と
をコンピュータに実現させることを要旨とする。
【0029】
更には、これら機能に加えて、前記ドット個数のデータと前記ドットデータとを前記画素群の並びに従って配列するとともに、該ドットデータと該データに先立つデータとの間に、該画素群を構成する画素数より大きな値のデータを挿入した状態で、前記第5の機能に供給する第8の機能を備えるとともに、該第5の機能は、前記ドット個数のデータが前記画素群を構成する画素数よりも大きい場合には、該データはドット個数ではなく、続くデータが前記ドットデータであることを示していると解釈する第9の機能を更に備えているプログラムとすることもできる。
【0030】
また、上述した画像表示方法に対応する本発明のプログラムは、
所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより画像を表示するためのプログラムであって、
前記画像データを構成する複数の画素を複数個ずつまとめた各画素群について、該画素群内に形成すべきドットの個数のデータまたは、該画素群内の画素毎にドット形成の有無を表したドットデータを、前記画像データとして受け取る機能(A)と、
前記画素群内の画素数を超える数の閾値を有するディザマトリックスが、前記画素群内の画素数に応じた数の閾値を有する複数の閾値群に区分され、該区分された閾値群内の前記閾値の大小関係に応じて、前記画素群を構成する画素間でのドットの形成され易さが規定された序列が複数記憶されている中から、前記ドット個数のデータを受け取った画素群毎に、該画素群に対応する序列を選択する機能(B)と、
前記ドット個数のデータと前記選択した序列とに基づいて、または、前記ドットデータに基づいて、前記画素群内でドットが形成される画素位置を該画素群毎に決定する機能(C)と、
前記決定した画素位置にドットを形成する機能(D)と
をコンピュータに実現させることを要旨とする。
【0031】
更に、上述した画像処理方法に対応する本発明のプログラムは、
ドットを形成して画像を表示する画像表示装置が該ドットの形成を制御するために用いる制御データを、該画像を表す画像データに所定の画像処理を施して生成するためのプログラムであって、
前記画像データを構成する複数の画素を、複数個ずつまとめて画素群を生成する機能(イ)と、
前記画素群内の画素間で前記画像データの階調差が所定値以上の場合に、該画素群はエッジを含むと判断し、前記階調差が前記所定値未満の場合に、該画素群はエッジを含まないと判断する機能(ロ)と、
前記画像表示装置は、前記画素群を構成する画素の数を超える閾値を有するディザマトリックスを記憶しており、前記エッジを含まないと判断された画素群について、該画素群内に形成されるドットの個数を、該画素群内の各階調値と、前記ディザマトリックス内の該画素群に対応した位置に存在する各閾値とをそれぞれ比較して、前記階調値と前記閾値とが所定の大小関係となる画素の数を検出することにより決定する機能(ハ)と、
前記エッジを含むと判断された画素群について、該画素群内の画素毎にドット形成の有無を該画素の画像データに基づいて判断することにより、各画素についてのドット形成有無を表すドットデータを生成する機能(ニ)と、
前記エッジを含まないと判断された画素群についての前記ドット個数のデータと、前記エッジを含むと判断された画素群についての前記ドットデータとを、前記制御データとして前記画像表示装置に出力する機能(ホ)と
をコンピュータに実現させることを要旨とする。
【0032】
加えて、本発明は、こうした各種のプログラムがコンピュータに読み取り可能に記録された記録媒体として把握することも可能である。
【0033】
こうしたプログラム、あるいは記録媒体に記録されているプログラムをコンピュータに読み込ませ、該コンピュータを用いて上述の各種機能を実現すれば、例え画素数の多い画像であっても、迅速に画像を表示させることが可能となる。
【0034】
【発明の実施の形態】
本発明の作用・効果をより明確に説明するために、本発明の実施の形態を、次のような順序に従って以下に説明する。
A.発明の概要:
B.第1実施例:
B−1.装置構成:
B−2.画像印刷処理の概要:
B−3.第1実施例の個数データ生成処理:
B−4.第1実施例の画素位置決定処理:
B−5.変形例:
C.第2実施例:
C−1.第2実施例の個数データ生成処理:
C−2.第2実施例の画素位置決定処理:
D.第3実施例:
D−1.第3実施例の画像印刷処理の概要:
D−2.第3実施例の個数データ生成処理:
D−3.第3実施例の画素位置決定処理:
E.その他の変形例:
【0035】
A.発明の概要:
実施例についての詳細な説明に入る前に、図1を参照しながら、本発明の概要について説明しておく。図1は、印刷システムを例にとって、本発明の概要を説明するための説明図である。本印刷システムは、画像処理装置としてのコンピュータ10と、プリンタ20等から構成されており、コンピュータ10に所定のプログラムがロードされて実行されると、コンピュータ10およびプリンタ20などが全体として一体の印刷システムとして機能する。プリンタ20は、印刷媒体上にドットを形成することによって画像を印刷する。コンピュータ10は、印刷しようとする画像の画像データに所定の画像処理を施すことによって、プリンタ20が画素毎にドットの形成を制御するためのデータを生成して、該プリンタ20に供給する。
【0036】
ここで、通常の印刷システムでは、コンピュータは画像データを、画像を構成する画素毎にドットの形成有無を表したデータに変換してプリンタに供給し、このデータに基づいてドットを形成することにより、画像を印刷している。ここで、印刷しようとする画像の画素数が多くなると、それに伴って、画素毎にドットの形成有無を表したデータのデータ量も増加するので、コンピュータからプリンタにデータを出力するために長い時間が必要となり、延いては印刷に要する時間も増加してしまう。こうした点を考慮して、図1に示したコンピュータ10には、ドット個数決定モジュールと個数データ生成モジュールとが設けられており、次のような処理を行う。
【0037】
ドット個数決定モジュールは、画像を構成する複数の画素が所定の複数個ずつまとめられた画素群について、該画素群内に形成されるドットの個数を、画像データに基づいて決定する。ここで画素群毎の個数データは、画像データを画素群にまとめた後、画素群毎にドット形成の有無を判断することによって生成することができる。あるいは、初めに画像をドット形成の有無による表現形式に変換した後、画素を所定の複数個ずつまとめて画素群を生成して、各画素群内に形成されるドットの個数を決定しても良い。尚、画素群としてまとめられる複数の画素は、必ずしも、互いに隣接した画素でなくても構わない。また、個数データ生成モジュールは、画素群毎に決定されたドット個数のデータを、プリンタ20に向かって出力する。
【0038】
図1に示したプリンタ20には、序列記憶モジュールと、画素位置決定モジュールと、ドット形成モジュールとが設けられている。序列記憶モジュールには、画素群内で各画素にドットが形成される画素の序列が、複数通り記憶されている。画素位置決定モジュールは、序列記憶モジュールを参照しながら、画素群毎にドットを形成すべき画素位置を次のようにして決定する。先ず、画素群1つ分の個数データを受け取ると、序列記憶モジュールに記憶された複数の序列の中から序列を1つ選択する。そして選択した序列に従って、画素群を構成する複数の画素の中から、個数データによって指示された個数の画素を、ドットを形成すべき画素として選択する。こうして画素位置決定モジュールは、個数データを受け取ると、画素群毎に序列を選択して、ドットを形成する画素位置を決定していく。ドット形成モジュールは、こうして決定された画素にドットを形成する。その結果、印刷媒体上に画像が形成されることになる。
【0039】
このように、図1に示した印刷システムでは、コンピュータ10からプリンタ20に向かって、ドット形成の有無を表すデータを供給する際に、画素毎のデータではなく、画素群毎に形成されるドットの個数を表すデータを供給する。こうすれば、個々の画素についてのドット形成の有無を供給する場合よりも、供給するデータ量を少なくすることができる。このため、例え、画像に含まれる画素数が増加した場合でも、コンピュータ10からプリンタ20にデータを迅速に供給することができ、延いては、迅速に画像を印刷することが可能となる。以下では、こうした印刷システムを例にとって、本発明の各種実施例について詳細に説明する。
【0040】
B.第1実施例:
B−1.装置構成:
図2は、本実施例の画像処理装置としてのコンピュータ100の構成を示す説明図である。コンピュータ100は、CPU102を中心に、ROM104やRAM106などを、バス116で互いに接続して構成された周知のコンピュータである。
【0041】
コンピュータ100には、フレキシブルディスク124やコンパクトディスク126等のデータを読み込むためのディスクコントローラDDC109や、周辺機器とデータの授受を行うための周辺機器インターフェースPIF108、CRT114を駆動するためのビデオインターフェースVIF112等が接続されている。PIF108には、後述するカラープリンタ200や、ハードディスク118等が接続されている。また、デジタルカメラ120や、カラースキャナ122等をPIF108に接続すれば、デジタルカメラ120やカラースキャナ122で取り込んだ画像を印刷することも可能である。また、ネットワークインターフェースカードNIC110を装着すれば、コンピュータ100を通信回線300に接続して、通信回線に接続された記憶装置310に記憶されているデータを取得することもできる。
【0042】
図3は、本実施例のカラープリンタ200の概略構成を示す説明図である。カラープリンタ200はシアン,マゼンタ,イエロ,ブラックの4色インクのドットを形成可能なインクジェットプリンタである。もちろん、これら4色のインクに加えて、染料濃度の低いシアン(淡シアン)インクと染料濃度の低いマゼンタ(淡マゼンタ)インクとを含めた合計6色のインクドットを形成可能なインクジェットプリンタを用いることもできる。尚、以下では場合によって、シアンインク,マゼンタインク,イエロインク,ブラックインク,淡シアンインク,短マゼンタインクのそれぞれを、Cインク,Mインク,Yインク,Kインク,LCインク,LMインクと略称することがあるものとする。
【0043】
カラープリンタ200は、図示するように、キャリッジ240に搭載された印字ヘッド241を駆動してインクの吐出およびドット形成を行う機構と、このキャリッジ240をキャリッジモータ230によってプラテン236の軸方向に往復動させる機構と、紙送りモータ235によって印刷用紙Pを搬送する機構と、ドットの形成やキャリッジ240の移動および印刷用紙の搬送を制御する制御回路260とから構成されている。
【0044】
キャリッジ240には、Kインクを収納するインクカートリッジ242と、Cインク,Mインク,Yインクの各種インクを収納するインクカートリッジ243とが装着されている。キャリッジ240にインクカートリッジ242,243を装着すると、カートリッジ内の各インクは図示しない導入管を通じて、印字ヘッド241の下面に設けられた各色毎のインク吐出用ヘッド244ないし247に供給される。
【0045】
図4は、インク吐出用ヘッド244ないし247におけるインクジェットノズルNzの配列を示す説明図である。図示するように、インク吐出用ヘッドの底面には、C,M,Y,Kの各色のインクを吐出する4組のノズル列が形成されており、1組のノズル列あたり48個のノズルNzが、一定のノズルピッチkで配列されている。
【0046】
制御回路260は、CPUや、ROM、RAM等がバスで相互に接続された構成となっている。制御回路260は、キャリッジモータ230および紙送りモータ235の動作を制御することによってキャリッジ240の主走査動作および副走査動作を制御するとともに、コンピュータ100から供給される印刷データに基づいて、各ノズルから適切なタイミングでインク滴を吐出する制御を行う。こうして、制御回路260の制御の下、印刷媒体上の適切な位置に各色のインクドットを形成することによって、カラープリンタ200はカラー画像を印刷することができる。
【0047】
尚、各色のインク吐出ヘッドからインク滴を吐出する方法には、種々の方法を適用することができる。すなわち、ピエゾ素子を用いてインクを吐出する方式や、インク通路に配置したヒータでインク通路内に泡(バブル)を発生させてインク滴を吐出する方法などを用いることができる。また、インクを吐出する代わりに、熱転写などの現象を利用して印刷用紙上にインクドットを形成する方式や、静電気を利用して各色のトナー粉を印刷媒体上に付着させる方式のプリンタを使用することも可能である。
【0048】
以上のようなハードウェア構成を有するカラープリンタ200は、キャリッジモータ230を駆動することによって、各色のインク吐出用ヘッド244ないし247を印刷用紙Pに対して主走査方向に移動させ、また紙送りモータ235を駆動することによって、印刷用紙Pを副走査方向に移動させる。制御回路260は、印刷データに従って、キャリッジ240の主走査および副走査を繰り返しながら、適切なタイミングでノズルを駆動してインク滴を吐出することによって、カラープリンタ200は印刷用紙上にカラー画像を印刷している。
【0049】
B−2.画像印刷処理の概要:
図5は、本実施例のコンピュータ100およびプリンタ200が、画像データに所定の画像処理を加えて、印刷媒体上に画像を印刷する処理の流れを示すフローチャートである。かかる画像印刷処理は、後述するように前半部分はコンピュータ100に内蔵されたCPUの機能を利用して、また、処理の後半部分はプリンタ200の制御回路260に内蔵されたCPUの機能を利用して実行される。以下、図5に従って、本実施例の画像印刷処理について説明する。
【0050】
コンピュータ100は、画像印刷処理を開始すると、先ず初めに、変換すべき画像データの読み込みを開始する(ステップS100)。ここでは、画像データはRGBカラー画像データであるものとして説明するが、カラー画像データに限らず、モノクロ画像データについての同様に適用することができる。
【0051】
カラー画像データの読み込みに続いて、色変換処理を行う(ステップS102)。色変換処理とは、R,G,Bの階調値の組み合わせによって表現されているRGBカラー画像データを、印刷のために使用される各色の階調値の組合せによって表現された画像データに変換する処理である。前述したように、プリンタ20はC,M,Y,Kの4色のインクを用いて画像を印刷している。そこで、本実施例の色変換処理ではRGB各色によって表現された画像データを、C,M,Y,Kの各色の階調値によって表現されたデータに変換する。色変換処理は、色変換テーブル(LUT)と呼ばれる3次元の数表を参照することで行う。LUTには、RGBカラー画像データに対して、色変換によって得られるC,M,Y,K各色の階調値が予め記憶されているので、このLUTを参照しながら変換すれば、迅速に色変換することが可能である。
【0052】
色変換処理を終了すると、解像度変換処理を開始する(ステップS104)。解像度変換処理とは、画像データの解像度を、プリンタ200が印刷を行う解像度(印刷解像度)に変換する処理である。前述したように、印刷画質を向上させるためには、画素の大きさを小さくして、より高い解像度で印刷することが効果的である。しかし、印刷解像度を高くすることに合わせて、必ずしも、元の画像データの解像度も高くする必要があるわけではない。何故なら、ドットを形成して画像を印刷する場合は、個々の画素ではドットを形成するか否かの2通りしか取り得ず、例えドットの大きさなどを変えたとしても、画素あたりに表現可能な階調数は高々数階調に過ぎない。これに対して、読み込む画像データは、仮に1バイトのデータとしても、画素あたりに256階調を表現することができる。このように、画素あたりに表現可能な階調が大きく異なっているので、印刷解像度を、読み込む画像データの解像度よりも高解像度に設定することで、印刷画質を向上させることが可能である。このような理由から、図5のステップS104では、画像データの解像度を、より高解像度の印刷解像度に変換する処理を行うのである。尚、より大きな画像を印刷しようとする場合には、解像度を保ったまま画素数を増加させる処理が行われることがある。この様な処理も、1つの画素から同じ画像データを有する複数の画素を生成している点で、上述した解像度変換処理と全く同様である。以下の説明では、画像の解像度を高くする場合について説明するが、解像度を高くする処理を画素数を増加させる処理と読み替えてやれば、大きな画像を印刷する場合にも以下の説明を適用することが可能である。
【0053】
図6は、第1実施例において行われる解像度変換の様子を示す説明図である。尚、前述したように色変換によって、C,M,Y,Kの各色毎の画像データが得られるが、以降に説明する処理は、これら各色の画像データのいずれに対しても同様に行われる。そこで、説明の煩雑化を避けるために、以下では色を特定せずに説明する。
【0054】
図6(a)は、色変換後の画像データの一部を拡大して模式的に表したものである。図示するように、画像データは、格子状に配列された画素の各々に階調値が割り当てられたデータである。図6(a)中に示した複数の矩形は、それぞれが画素を模式的に表しており、矩形の中に表示された数値は、各画素に割り当てられた階調値を表している。こうした画像データの解像度をより高い解像度に変換するためには、画素間で補間演算を行うことによって新たな画素を生成しても良いが、本実施例では最も簡便な手法として、画素をより小さな画素に分割することで解像度変換を行う。
【0055】
図6(b)は、画素を分割することで解像度を変換している様子を示す説明図である。図示した例では、それぞれの画素を、主走査方向(図上で左右方向)に4分割し、副走査方向(図上で上下方向)に2分割することで、1つの画素を8つの画素に分割している。図6(b)中に示した破線は、画素が分割されていることを表したものである。こうして生成した小さな画素には、分割前の元の画素の階調値と同じ階調値が割り当てられている。以上のような処理を施すことにより、画像データの解像度は、主走査方向には4倍の解像度に、副走査方向には2倍の解像度に変換されることになる。もちろん、解像度の増加割合は必要に応じて種々の割合に設定することが可能である。
【0056】
以上のようにして解像度を印刷解像度に変換したら、コンピュータ100は、個数データ生成処理を開始する(ステップS106)。ここでは、次のような処理を行う。色変換後の画像データは、画素毎に階調値が割り当てられた階調データである。これに対して、プリンタ200は画素位置に適切な密度でドットを形成することによって画像を印刷する。従って、階調データを、画素毎のドット形成の有無によって表現されたデータに変換した後、プリンタ200に転送する必要がある。また、ドット形成の有無を示すデータを、プリンタ200に画素単位で転送したのでは、画素数が多くなるに従って転送に要する時間が増加してしまうので、画像を迅速に印刷することが困難となる。そこで、本実施例の画像印刷処理では、画素を所定の複数個ずつ画素群としてまとめ、画素群内に形成されるドット個数のデータをプリンタ20に転送している。ここで、画素群内に形成されるドット個数のデータは、予め画像データを、画素毎のドット形成の有無を示すデータに変換した後に、複数の画素を画素群としてまとめることで得ることができる。あるいは、後述するように、初めに複数の画素を画素群にまとめた後、画素群内の各画素に形成されるドットの個数を決定することも可能である。ステップS106の個数データ生成処理では、こうして画素群内で形成されるドット個数のデータを生成して、プリンタ20に転送する処理を行う。個数データ生成処理の詳細については後述する。
【0057】
プリンタ200の制御回路260に内蔵されたCPUは、コンピュータ100から出力されたドット個数のデータを受け取ると、画素位置決定処理を開始する(ステップS108)。ここでは、次のような処理を行う。上述したように、コンピュータ100は画素毎にドット形成の有無を示すデータの代わりに、画素群内に形成されるドット個数を示すデータを出力する。そこで、画素位置決定処理では、画素群毎に受け取ったドット個数のデータに基づいて、画素群内でドットが形成される画素位置を決定する処理を行う。画素位置決定処理の詳細については後述する。
【0058】
以上のようにして、ドットを形成すべき画素位置を決定したら、決定した画素位置にドットを形成する処理を行う(ステップS110)。すなわち、図3を用いて説明したように、キャリッジ240の主走査および副走査を繰り返しながらインク吐出用ヘッドを駆動してインク滴を吐出することにより、印刷用紙上にインクのドットを形成する。こうしてドットを形成することにより、画像データに対応した画像が印刷されることになる。
【0059】
B−3.第1実施例の個数データ生成処理:
図7は、第1実施例の個数データ生成処理の流れを示すフローチャートである。以下では、フローチャートを参照しながら、個数データ生成処理の内容について詳細に説明する。
【0060】
個数データ生成処理を開始すると、先ず初めに所定の複数個の画素をまとめて画素群を生成する(ステップS200)。ここでは、解像度変換処理において1つの画素を8つの画素に分割していることから、同一の画素を分割して得られた8つの画素を画素群としてまとめることとする。例えば、図6(a)中で左上隅の画素は、図6(b)中では、左上方にある縦2列横4列の8つ画素に分割されているから、これらの画素をまとめて画素群を生成する。尚、画素群としてまとめる画素は、互いに隣接する画素である必要はなく、所定の位置関係にあればどのような画素でも画素群としてまとめることができる。
【0061】
また、このように同一の画素から分割された画素を画素群としてまとめる場合は、図5の解像度変換処理(図6参照)を省略することも可能である。この場合は、以下の説明中で、「画素群」とある部分を、「解像度変換を行う前の画素」と読み替えることにより、ほぼ同様な処理を行うことができる。
【0062】
次いで、画素群としてまとめた画素の中から、ドット形成の有無を判断するための着目する画素(着目画素)を1つ設定する(ステップS202)。そして、着目画素に割り当てられた階調値とディザマトリックスの閾値とを比較することにより、着目画素についてのドット形成の有無を判断する(ステップS204)。ディザマトリックスとは、複数の閾値が格子状に記憶された2次元の数表である。ディザマトリックスを用いてドット形成の有無を判断する処理について、図8および図9を参照しながら説明する。図8は、ディザマトリックスの一部を例示した説明図である。図示したマトリックスには、縦横それぞれ64画素、合計4096個の画素に、階調値0〜255の範囲から万遍なく選択された閾値がランダムに記憶されている。ここで、閾値の階調値が0〜255の範囲から選択されているのは、本実施例では画像データが1バイトデータであり、画素に割り当てられる階調値が0〜255の値を取り得ることに対応するものである。尚、ディザマトリックスの大きさは、図8に例示したように縦横64画素分に限られるものではなく、縦と横の画素数が異なるものも含めて種々の大きさとすることができる。
【0063】
図9は、ディザマトリックスを参照しながら、着目画素についてのドット形成の有無を判断している様子を概念的に示した説明図である。ドット形成有無の判断に際しては、先ず、着目画素の階調値とディザマトリックス中の対応する位置に記憶されている閾値と比較する。図中に示した細い破線の矢印は、着目画素の階調値を、ディザマトリックス中の対応する位置に記憶されている閾値と比較していることを模式的に表したものである。そして、ディザマトリックスの閾値よりも着目画素の階調値の方が大きい場合には、その画素にはドットを形成すると判断する。逆に、ディザマトリックスの閾値の方が大きい場合には、その画素にはドットを形成しないと判断する。再び図9に即して説明すると、画像データの左上隅の画素については、画像データの階調値は97であり、ディザマトリックスの閾値は1であるから、この画素にはドットを形成すると判断する。図9中に実線で示した矢印は、この画素にはドットを形成すると判断して、判断結果をメモリに書き込んでいる様子を模式的に表したものである。一方、この画素の右隣の画素については、画像データの階調値は97、ディザマトリックスの閾値は177であり、閾値の方が大きいので、この画素についてはドットは形成しないと判断する。図7のステップS204では、こうしてディザマトリックスを参照しながら、着目画素にドットを形成するか否かを判断する処理を行う。
【0064】
次いで、画素群内の全ての画素について以上のような処理を行ったか否かを判断し(ステップS206)、画素群中に未処理の画素が残っている場合は(ステップS206:no)、ステップS202に戻って続く一連の処理を行う。こうして画素群内の全ての画素について、ドット形成有無の判断を終了したら(ステップS206:yes)、画素群内に形成するドットの個数を検出し、画素群に対応付けられた状態でメモリに記憶する(ステップS208)。図9に示した例では、画像の左上隅の画素群については、3つの画素にドットを形成すると判断されているから、この画素群についてはドット個数が「3」である旨を記憶する。
【0065】
以上のようにして、1つの画素群についての処理を終了したら、全画素について処理を終了したか否かを判断し(ステップS210)、未処理の画素が残っていれば、ステップS200に戻って新たな画素群を生成した後、続く一連の処理を行って、その画素群に形成されるドットの個数を記憶する(ステップS208)。こうした処理を繰り返して行くことにより、画像中の全ての画素についての処理を終了したら(ステップS210:yes)、画素群毎に記憶しておいたドット個数をプリンタ200に向かって出力して(ステップS212)、図7に示した個数データ生成処理を終了する。
【0066】
図10(a)は、画像データに上述した個数データ生成処理を施すことによって得られるデータを、概念的に表した説明図である。図中に示した複数の矩形は、それぞれ画素群を表しており、画素群内に表示された数値は、該画素群に形成されるドットの個数が記憶されている様子を表している。本実施例では、コンピュータ100は、色変換後の画像データを図10(a)に示すようなデータに変換した後、画素群毎に記憶された個数のデータのみをプリンタ200に向かって出力する。このように個数のデータのみを出力すれば、画素毎にドットの形成有無を示すデータを出力する場合よりも、データ量が減少するので迅速に出力することが可能となる。この点につき、補足して説明する。
【0067】
図10(b)は、画素群内の各画素について、ドット形成の有無を判断した様子を示す説明図である。図10(b)中に示した細い破線は、画素群が複数の画素から構成されていることを示しており、画素に付された斜線は、その画素にはドットを形成すると判断されていることを示している。
【0068】
今、コンピュータ100からプリンタ200に対して、図10(b)に示した状態のデータ、すなわち画素毎にドット形成の有無を示すデータを出力するものとする。ドットの種類は1種類であるとすれば、各画素はドットが形成されるかされないかの、いずれかの状態しか取り得ないから、1画素あたりのデータ量は1ビットで足りる。画素群は8つの画素で構成されているから、プリンタ200に出力すべきデータ量は、画素群あたり8ビットとなる。
【0069】
これに対して、本実施例のように画素群に形成されるドットの個数を出力する場合は、1つの画素群内に形成されるドットの個数は0〜8の値しか取り得ないから、画素群あたり4ビットあればドット個数を表現することができる。すなわち、画素毎にドット形成の有無を示すデータを出力する場合に比べて、データ量を半減させることができる。このため、画素群毎のドット個数を出力することによって、プリンタ200に迅速にデータを出力することが可能となるのである。こうしてコンピュータ100から転送されたドット個数のデータは、プリンタ200側で次に説明する画素位置決定処理が施されて、画素毎にドットの形成有無を示すデータに変換される。以下、画素位置決定処理について説明する。
【0070】
B−4.第1実施例の画素位置決定処理:
図11は、第1実施例の画像印刷処理中で行われる画素位置決定処理の流れを示すフローチャートである。かかる処理は、プリンタ200の制御回路260に内蔵されたCPUが、コンピュータ100から転送されてきた画素群毎のドット個数を示すデータを受け取って実行する。また、図12は、画素群毎のドット個数を示すデータが、画素位置決定処理を施されることによって、画素毎のドット形成の有無を示すデータに変換される様子を概念的に示した説明図である。以下、図11および図12を参照しながら、画素位置決定処理の内容について説明する。
【0071】
画素位置決定処理を開始すると、先ず初めに、処理の対象とする画素群を1つ選択し(図11のステップS300)、その画素群に形成されるドット個数を取得する(ステップS302)。図12(a)には、コンピュータ100から画素群毎に転送されてきたドット個数を示すデータが概念的に示されている。画素位置を決定する画素群として、ここでは、図中で左上隅にある画素群を選択したものとする。図11のステップS302では、選択した画素群に形成されるドット個数として「3」を取得する。
【0072】
次いで、画素群内の各画素にドットが形成される序列を参照することにより、ドットを形成する画素を決定する処理を行う(ステップS304)。ここでは、ディザマトリックスを、ドットが形成される序列として読み替えて利用する。図8を用いて説明したように、ディザマトリックスの各画素には閾値が設定されている。また、ある画素にドット形成の有無を判断する際には、画像データの階調値とディザマトリックスの閾値とを比較して、階調値の方が大きければ、その画素にはドットを形成すると判断する。すなわち、ディザマトリックスの閾値が小さい画素ほどドットが形成され易くなることから、ディザマトリックスはドットが形成される画素の序列を表していると考えることができる。本実施例では、ディザマトリックスの有するこうした性質に着目して、画素群内の各画素の序列としてディザマトリックスを利用するのである。
【0073】
再び図12を参照しながら、詳しく説明する。ここでは、対象とする画素群が図12(a)中の左上隅の画素群であるとしているから、ディザマトリックス上で、この画素群の各画素に対応する位置に記憶されている閾値を取得する。図12(b)は、図8に示したディザマトリックスから、対応する画素位置の閾値が読み出された様子を模式的に示したものである。こうして読み出した閾値が小さい画素から順番に、ドットが形成されることになる。図12(a)に示すように、処理中の画素群には形成されるドット個数は3個だから、各画素にドットが形成される序列に基づいて、図12(c)に示すように画素位置を決定することができる。すなわち、図12(c)中で実線で囲って示した最も閾値の小さい画素と、破線で囲った2番目に閾値の小さい画素と、一点鎖線で囲った3番目に閾値の小さい画素の3つの画素を、ドットが形成される画素として決定することができる。
【0074】
以上のような操作を行うことにより、処理対象として選択した画素群について画素位置を決定したら、全ての画素群についての処理を終了したか否かを判断する(図11のステップS306)。未処理の画素群が残っていれば(ステップS306:no)、ステップS300に戻って新たな画素群を選択し、続く一連の処理を行う。こうした処理を繰り返すことにより、図12(a)に例示の画素群毎にドット個数を示すデータは、図12(d)に示すような、画素毎にドット形成の有無を表すデータに変換されていく。尚、図12(d)中で斜線が付された画素は、ドットが形成される画素を示している。そして、全ての画素群について処理が終了したら(ステップS306:yes)、図11に示した画素位置決定処理を終了して、図5の画像印刷処理に復帰する。
【0075】
以上、第1実施例の画像印刷処理および、かかる処理中で行われる個数データ生成処理、画素位置決定処理について詳しく説明した。このように第1実施例の画像印刷処理では、画像処理が施されたデータをコンピュータ100からプリンタ200に向かって転送するに際して、画素毎にドット形成の有無を示すデータの代わりに、画素群に形成されるドット個数を示すデータを転送する。こうすれば、データの転送量を大幅に減少させることができるので、例え画像に含まれる画素数が増加したとしても、データの転送を速やかに完了して、迅速に画像を印刷することが可能となる。
【0076】
また、上述したように、コンピュータ100側の個数データ生成処理で参照するディザマトリックスを、プリンタ200側の画素位置決定処理で参照するディザマトリックスと同じマトリックスにしておけば、コンピュータ100からプリンタ200にドット個数の情報のみに圧縮して転送した場合でも、画素位置を完全に復元することができる。実際、図10(b)と図12(d)とを比較すれば明らかなように、コンピュータ100側で画素毎にドット形成有無を判断して得られた画素位置は、プリンタ200側で決定した画素位置と一致しており、画素位置が完全に復元されていることを示している。このため、コンピュータ100からドット個数のデータを迅速に転送しながら、プリンタ200側でドットを形成する画素位置を適切に決定することにより、高画質な画像を迅速に印刷することが可能となる。
【0077】
B−5.変形例:
上述した第1実施例には種々の変形例が存在する。以下、これら変形例について簡単に説明する。
【0078】
(1)第1の変形例:
図7ないし図10を用いて説明したように、第1実施例の個数データ生成処理では、画像データを、画素毎にドット形成有無を表すデータに一旦変換し、得られたデータを、画素群毎のドット個数を示すデータに変換してプリンタ200に転送している。すなわち、コンピュータ100内では、画素位置を特定した状態でドット形成の有無を判断しているものの、プリンタ200に転送する段階では、画素位置に関する情報は省略されてしまい、画素群毎のドット個数の情報のみが転送される。こうした点に鑑みて、第1の変形例では、個数データ生成処理において画素位置を特定することなく、画素群内に形成されるドット個数のみを生成する。
【0079】
図13は、第1の変形例において行われる個数データ生成処理の概要を示した説明図である。図13(a)は、第1の変形例の個数データ生成処理において参照される簡易ディザマトリックスを例示した説明図である。第1実施例において参照したような通常に用いられるディザマトリックスでは、画素毎に閾値が設定されている(図8を参照)。これに対して、第1の変形例で参照する簡易ディザマトリックスでは、閾値が画素毎に対応付けられておらず、画素群毎にひとまとまりの状態で、換言すれば、複数個の閾値が1組にまとめられて画素群毎に対応付けられた状態で記憶されている。また、各画素群に記憶されている閾値の個数は、画素群を構成する画素の数と同数となる。図13(a)に示した例では、簡易ディザマトリックスの左上隅の画素群には、{255,212,177,170,109,58,42,1}の8つの値からなる閾値の組が対応付けられて記憶されている様子が概念的に示されている。同様に、その右隣の画素群には、{242,223,186,161,79,70,48,5}の8つの値で構成される閾値の組が記憶されている。
【0080】
第1の変形例における個数データ生成処理では、画素群の画像データを、こうした閾値の組と比較することによって、画素位置を特定することなく、画素群内に形成すべきドット個数を決定する。ここで説明の便宜から、処理しようとする画像データが、第1実施例の説明中で用いたものと同じ画像データであったとする(図6参照)。画像データの左上隅の画素群について見ると、画素群内の全ての画素は階調値97となっている。一方、簡易ディザマトリックス上で対応する位置の画素群には、8つの閾値{255,212,177,170,109,58,42,1}が記憶されている。これら8つの閾値の中で、画素群の階調値97よりも小さな値は{58,42,1}の3つあるから、この画素群には3つのドットが形成されると判断する。図13(b)中で閾値の一部が破線で囲われているのは、これら閾値が画素群の階調値よりも小さいことを表したものである。このように、画素群毎に閾値の組を記憶しておき、画素群の階調値と比較してやれば、画素群内での画素位置を特定することなくドット個数を決定することができる。以上の操作を全ての画素群について行えば、図13(c)に示すように、画素群毎にドット個数を決定することができる。
【0081】
また、第1の変形例中で参照した簡易ディザマトリックスは、第1実施例の説明で用いた通常のディザマトリックスに対応したマトリックスとなっている。すなわち、図13の簡易ディザマトリックス中で画素群毎に記憶されている閾値の組は、図8のディザマトリックスの各画素に記憶されている閾値を、画素群毎にまとめて組にしたものとなっている。このように、簡易ディザマトリックスを通常のディザマトリックスに対応したものとしておけば、簡易ディザマトリックスを使用して画素位置を特定せずにドット個数を決定した場合でも、通常のディザマトリックスを用いて画素位置を特定しながら決定したドット個数とを全く同じ結果を得ることができる。実際、同じ画像データに対して、通常のディザマトリックスを用いて得られたドット個数のデータ(図10(a)参照)と、簡易ディザマトリックスを用いて得られたデータ(図13(c)参照)とは完全に一致したものとなっている。
【0082】
上述したように第1の変形例では、画素毎に記憶されている閾値の組と、画像データの階調値とを比較するだけで画素群に形成すべきドット個数を求めることができる。すなわち、閾値と画像データの階調値とを画素群内の画素毎に比較する必要がないので、画素群毎にドット個数を示すデータを迅速に得ることが可能となる。
【0083】
また、第1の変形例では、画像データの階調値よりも小さな閾値の個数のみを求めればよいから、それぞれの組内で閾値を大きさの順に並べて記憶しておけば、処理速度の更なる高速化を図ることができる。再び図13の例示を参照しながら説明すると、左上隅の画素群は、画像データの階調値97であり、閾値の組は{255,212,177,170,109,58,42,1}と大きさの順に記憶されている。画像データの階調値は0〜255の値を取り得るから、階調値97は比較的小さな値と言える。そこで、この階調値を小さい閾値から順に大きさを比較していく。すなわち、初めは一番小さな閾値「1」と比較する。当然、階調値「97」の方が大きいので、今度は、隣に記憶されている1つ大きな閾値「42」と比較する。ここでも階調値「97」の方が大きいから、その隣の閾値「58」と比較する。こうして、階調値を小さい側の閾値から順番に比較していく。そして、閾値「109」と比較する段階で、初めて階調値「97」の方が小さいと判断される。組内の閾値は大きさの順に記憶されていることから、一旦、階調値の方が小さいと判断されたら、それ以降の閾値についても階調値の方が小さいことは明らかであり、もはや一々比較する必要はない。従って、各画素群には8つの閾値が記憶されているにも関わらず、この画素群については4つの閾値と比較するだけでドット個数を決定することが可能となる。具体的には、予め所定の閾値(例えば100)を定めておき、画像データの階調値がこの閾値よりも小さければ、小さな閾値から比較していけばよい。
【0084】
もちろん、画像データの階調値が比較的大きな値である場合は、大きい側の閾値から比較していけばよい。例えば、上述の説明で仮に階調値が「200」であるとすれば、最も大きな閾値「255」から初めて、その隣の閾値「212」、更にその隣の閾値「177」の3つの閾値と比較するだけで、その画素群に形成すべきドット個数を決定することができる。具体的には、予め所定の閾値(例えば155)を定めておき、画像データの階調値がこの閾値よりも大きければ、大きな閾値から比較していけばよい。
【0085】
あるいは、画像データの階調値と比較する閾値を、直前に処理した画素群での処理結果に基づいて選択することとしても良い。再び図13の例示を参照しながら説明する。左上隅の画素群については、画像データの階調値より小さな閾値は3つ(すなわち、ドット個数は3個)である。そこで、該画素群の右隣の画素群については、先ず初めに、閾値の組の中で3番目に小さな閾値と画像データの階調値とを比較する。すなわち右隣の画素群に設定された8つの閾値{242,223,186,161,79,70,48,5}の中で3番目に小さな閾値「70」であるから、先ず初めにこの閾値と画像データの階調値「102」とを比較するのである。この場合は、画像データの階調値の方が閾値よりも大きいので、次は4番目に小さな閾値「79」、更にその次は5番目に小さな閾値「161」と比較する。5番目に小さな閾値「161」は画像データの階調値「102」よりも大きくなるので、この画素群についてはドット個数は4個であると決定することができる。結果として、画像データの階調値と閾値とを3回比較するだけでドット個数が決定できたことになる。尚、ここでは、先に処理した画素群のドット個数と同じ順番の3番目の閾値から比較を始めたが、必ずしも同じ順番である必要はなく、例えば、1つ大きな4番目の閾値から比較を開始したり、あるいは1つ小さな2番目の閾値から比較を開始することとしても良い。
【0086】
一般に、画像データの階調値は通常、緩やかに変化することが多いので、隣接する画素群間では、画素群内に形成されるドット個数も大きくは変わらないことが多い。従って、上述したように、画像データの階調値と比較する閾値を、先に処理した画素群のドット個数に基づいて選択してやれば、少ない比較回数でドット個数を決定することが可能となる。
【0087】
以上に説明したように、画素群に対応付けられた閾値を大きさの順に記憶しておけば、画素群内に形成すべきドット個数を迅速に決定することが可能となるのである。
【0088】
(2)第2の変形例:
前述した第1実施例の画素位置決定処理では、画素群毎のドット個数を示すデータを受け取ると、ディザマトリックスを参照しながら、それぞれの画素群内でドットが形成される画素位置を決定している(図12参照)。しかし、ドット個数からドットが形成される画素位置を決定するためには、必ずしも画素毎の閾値まで分かっている必要はなく、画素群内の各画素についてのドットが形成される画素の序列が分かっていればよい。こうした点に鑑みて、第2の変形例では、画素位置決定処理においてディザマトリックスの代わりに、画素の序列を記憶したマトリックス(以下では、こうしたマトリックスを序列マトリックスと呼ぶ)を参照しながら画素位置を決定する。
【0089】
図14は、第2の変形例の画素位置決定処理において、序列マトリックスを参照しながら画素位置を決定する様子を概念的に示した説明図である。図14(a)は、序列マトリックスを概念的に示した説明図である。図中で太い実線で囲われた矩形は画素群を表しており、各画素群は細い破線で示されているように、8つの画素に区分されている。また、各画素の中に表示されている数字は、画素群内でドットが形成される序列(換言すれば、ドットが形成される順番)を示している。
【0090】
こうした序列マトリックスを用いれば、ドット個数に基づいて画素位置を簡便に決定することができる。ここでは、ドット個数のデータが図12(a)に示したデータである場合を例にとって、具体的に説明する。尚、このデータは、前述の第1実施例の画素位置決定処理についての説明で用いたものと同じデータである。図12(a)に示したデータによれば、左上隅の画素群に形成されるドット個数は「3」となっている。そこで、図14(a)に示した序列マトリックスの左上隅の画素群の中から、序列が1番〜3番の3つの画素を選択して画素位置を決定する。図14(b)は、こうして3つの画素を選択して画素位置を決定している様子を模式的に示した説明図であり、画素中の数字を囲む実線は、その画素が選択されたことを表している。以上のような操作を全ての画素群に対して繰り返していけば、図14(c)に示すように、ドットを形成する画素位置を全て決定することができる。尚、図14(c)中で斜線が付された画素は、ドットが形成されることを表している。
【0091】
このように、画素群内で各画素にドットが形成される序列に基づいて画素位置を決定することとすれば、序列の数字がドット個数以下の画素を選択するだけで画素位置を決定することができる。すなわち、選択した画素の個数を計数しながら、ドット個数に示された数の画素を選択する必要がないので、画素位置を簡便に決定することが可能となる。
【0092】
また、序列マトリックスに記憶されている数値は、高々、1つの画素群に含まれる画素の数までしか取り得ず、ディザマトリックスに記憶される閾値よりも小さな数値である。従って、序列マトリックスはディザマトリックスよりも僅かな容量で記憶することができる。画素位置決定処理が行われるプリンタは、充分な記憶容量が搭載されていないことがあるので、序列マトリックスを用いて画素位置を決定すれば、プリンタの記憶容量を節約することができるという利点も得ることができる。
【0093】
尚、図14(a)に示した序列マトリックスは、個数データ生成処理中で画素毎にドット形成の有無を判断するために参照したディザマトリックスと対応したマトリックスとなっている。すなわち、第1実施例の画素位置決定処理についての説明の中で、ディザマトリックスに設定されている閾値は、ドットが形成される序列を表していると考えることができる旨を説明したが、図14(a)の序列マトリックスに設定されている序列は、画素群内の各画素についてディザマトリックスによって決まる序列と、同じ序列となっている。このように、序列マトリックスを、個数データ生成処理で参照したディザマトリックスに対応したマトリックスとしておけば、序列マトリックスを用いた場合でも、画素位置を適切に決定することができる。実際、図14(c)と図10(b)とを比較すれば明らかなように、序列マトリックスを参照して決定した画素位置は、画素毎にドット形成の有無を判断して求めた画素位置と一致しており、画素位置が適切に決定されていることが分かる。
【0094】
また、前述した簡易ディザマトリックス(図13参照)は図8のディザマトリックスを元にして生成され、図14に示した序列マトリックスは図8のディザマトリックスと対応するマトリックスとなっている。このように、同じディザマトリックスを介して、互いに対応付けられた簡易ディザマトリックスおよび序列マトリックスを使用すれば、画素位置を適切に決定することができる。もっとも、これらマトリックスが互いに対応付けられていない場合でも、マトリックスの大きさを揃えておくことが望ましい。ここで、2つのマトリックスの大きさが等しいとは、マトリックス間で行方向および列方向の画素数が等しいことを言う。
【0095】
マトリックスよりも大きな画像を処理する場合は、1つのマトリックスを画像上での位置をずらしながら繰り返し使用することになる。簡易ディザマトリックスおよび序列マトリックスの大きさが違っていると、位置をずらすたびに互いの位置関係が異なってしまうので、処理が不安定となり、結果として画質が悪化するおそれがある。従って、簡易ディザマトリックスおよび序列マトリックスを、同じ大きさのマトリックスとしておけば、互いの位置関係を常に一定に保つことができる。この結果、安定した処理を行うことができ、良好な画質を維持することができるという利点が得られる。
【0096】
C.第2実施例:
以上に説明した第1実施例では、1つの画素の複数の画素に分割し、同じ画素から分割された画素同士を画素群としてまとめる場合について説明した。1つの画素を複数の画素に分割することは、例えば、入力された画像データよりも高い解像度で画像を印刷しようとする場合などに起こり得る。こうした第1実施例においては、画素群としてまとめられた各画素は同じ階調値を有している。しかし、本発明は、画素群内の各画素が異なる階調値を有する場合にも適用することができる。例えば、印刷解像度が入力された画像データの解像度と同じ解像度に設定されていて、1つの画素群中に画像データの複数の画素が含まれている場合には、画素群内の各画素で階調値が異なる場合が生じ得る。また、画像データよりも高い解像度で画像を印刷するために新たな画素を生成する場合でも、新たに生成した画素の階調値を補間演算によって決定した場合には、画素群内の各画素で階調値は異なった値となる。更には、印刷解像度が画像データの解像度よりも少しだけ高いような場合は、例え1つの画素を分割して複数の新たな画素を生成したとしても、1つの画素群に異なる画素から生成された画素が含まれることが考えられる。こうした場合にも、画素群内の各画素が同じ階調値を有しているとは限らない。以下では、第2実施例として、この様な場合に本発明を適用した実施例について説明する。
【0097】
C−1.第2実施例の個数データ生成処理:
図15は、第2実施例の個数データ生成処理の流れを示すフローチャートである。かかる処理も前述した第1実施例の個数データ生成処理と同様に、図5に示した画像印刷処理中でコンピュータ100のCPUによって実行される処理である。
【0098】
第2実施例の個数データ生成処理においても、先ず初めに所定の複数個の画素をまとめて画素群を生成する(ステップS400)。ここでは、第1実施例にならって、縦2列横4列の8つの画素をまとめて画素群を生成するものとする。もちろん、画素群としてのまとめ方は、こうしたまとめ方に限定されるものではなく、種々の方法でまとめることができる。
【0099】
次いで、画素群内にエッジが含まれているか否かを判断する(ステップS402)。本実施例では、画素群に含まれる複数の画素の中で、最も大きな階調値と最も小さな階調値との階調差が所定値以上の場合に、その画素群にはエッジが含まれているものと判断する。もちろん、エッジの検出方法は、こうした方法に限らず種々の方法を適用することが可能である。
【0100】
そして、画素群にエッジが含まれていないと判断された場合は(ステップS402:no)、画素群の平均階調値を算出して各画素の階調値を平均階調値で置き換えてやる(ステップS404)。この結果、画素群内の各画素は同じ階調値となるので、前述した第1実施例と同様の方法を用いて、画素群内に形成されるドット個数を決定することができる。
【0101】
図16は、画素群内でのエッジの有無を判断して、エッジがないと判断した場合には、画素群内の各画素の階調値を平均階調値で置き換える様子を示した説明図である。図16(a)には、画素群内の各画素の階調値を示している。図上で左上隅にある画素群については、最大階調値および最小階調値はそれぞれ階調値100と階調値97であり、その階調差は3と、比較的小さな値となっている。これに対して、その画素群の右下にある画素群については、最大階調値は階調値132、最小階調値は階調値99と、階調差は33もある。そこで適当な閾値(例えば階調値20)を設定しておき、画素群内の階調差が閾値より大きければエッジが含まれていると判断する。逆に、画素群内の階調差が閾値より小さい場合はエッジは含まれていないと判断し、画素群内ので平均階調値を算出して、全ての画素の階調値を平均階調値で置き換えてやる。
【0102】
図16(b)は、こうして画素群にエッジが含まれていないと判断された場合に、画素群内の各画素の階調値が平均階調値で置き換えられた様子を表している。図示した例では、左上隅の画素群および、その右隣あるいは下の画素群についてはいずれも階調差が小さく、従って、画素群内の全ての画素が、それぞれ平均階調値99、103、94で置き換えられている。こうして画素の階調値が平均階調値で置き換えられた画素群については、画素群内の各画素は全て同じ階調値となっているので、前述した第1実施例と同様にして画素群に形成すべきドット個数を決定することができる(図15のステップS406)。これに対して、右下の画素群については階調差が33と大きく、エッジが含まれていると考えられるので、こうした階調値の置き換えは行わない。こうした画素群については、画素の階調値とディザマトリックスの閾値とを比較しながら画素毎にドット形成の有無を判断して(図9参照)、各画素についての判断結果を記憶しておく(図15のステップS408)。
【0103】
以上のようにして、1つの画素群についての処理を終了したら、画像データ中の全ての画素について処理を終了したか否かを判断する(ステップS410)。そして未処理の画素が残っていれば(ステップS410:no)、ステップS400に戻って新たな画素群を生成し、続く一連の処理を繰り返す。こうして全ての画素を画素群としてまとめて上述の処理を終了したら(ステップS410:yes)、エッジを含まない画素群についてはステップS406で記憶しておいたドット個数を、またエッジを含む画素群についてはステップS408で記憶しておいた画素毎にドット形成の有無を示すデータ(ドットデータ)を、プリンタ200に向かって出力する(ステップS412)。この結果、画素群のドット個数のデータと、画素群内の各画素についてのドットデータとが、混在した状態でプリンタ200に出力されることになる。第2実施例の個数データ生成処理では、ドット個数のデータと、各画素についてのドットデータとを区別しながら出力するために、これらデータを次のような形態で出力する。
【0104】
図17は、第2実施例においてコンピュータ100がプリンタ200に向かって出力するデータの形式を示した説明図である。画素群に形成するドット個数を出力する場合は、図17(a)に示すように、画素群あたり4ビットのデータとして出力する。ここでは、1つの画素群は8個の画素で構成されるものとしているから、ドット個数は0〜8の値しか取り得ず、4ビットあればドット個数を表現することができる。一方、ドット個数ではなく、各画素についてのドット形成の有無を示すドットデータを出力する場合は、図17(b)に示すような形式でデータを出力する。すなわち、初めの4ビットに9〜15のいずれかの値を設定し(図17(b)の例示では「9」が設定されている)、続く8ビット分のデータに、画素毎のドット形成の有無を設定する。ドット個数は0〜8の値しか取り得ないから、先頭の4ビットのデータが9以上の値となっている場合は、続く8ビット分のデータはドット個数ではなく画素毎のドット形成の有無を表していると解釈すればよい。そして、それぞれのビットを、例えば図17(c)に示すような順番で各画素に対応付けておけば、画素群内でのドット形成の有無を示すデータを出力することができる。このような図17に示した形式でデータを出力する場合、エッジを含まない画素群については4ビットのデータとしてプリンタ200に転送され、エッジを含む画素群については12ビットのドットデータとして転送されることになる。
【0105】
もちろん、ドット個数のデータと画素毎のドットデータとを混在させて出力する方法は、こうした方法に限定されるものではなく、例えば識別用のビットを付加してもよい。例えば、図18(a)に示すように、識別用のビットが「0」の場合は、続く4ビットのデータがドット個数を表しているものと判断する。また、図18(b)に示すように、識別用のビットが「1」の場合は、続く8ビットのデータが、ドットデータを表しているものと判断しても良い。このようにしてデータを出力した場合は、エッジを含まない画素群については5ビットのデータとしてプリンタ200に転送され、エッジを含む画素群については9ビットのデータとして転送されることになる。尚、図18では、識別用のビットは、ドット個数のデータ、あるいはドット形成の有無を示すドットデータの先頭に付加されて転送されるものとして説明した。しかし、これに限らず、ドット個数のデータやドットデータとは別に、識別用のビットだけを転送することとしても良い。
【0106】
図17の転送方法と図18の転送方法とについてデータの転送量を比較すれば明らかなように、エッジを含まない画素群については、図17の方法による方が、図18に示した方法よりもデータ転送量が少なくなる。しかし、エッジを含む画素群については、逆に、図18の方法による方がデータ転送量が少なくなる。このことから、画素群中にエッジの含まれる割合が高い場合は、識別用のビットを用いた図18の方法を用いてデータを転送し、逆に、エッジの含まれる割合が低い場合は、図17に示した方法を用いてデータを転送すればよい。通常は、画素群にエッジが含まれる割合はそれほど高くないので、図17の方法を用いた方が迅速にデータを転送することができる。
【0107】
図15のステップS412では、以上に説明したようにして、画素群のドット個数のデータと、画素毎のドット形成の有無を示すドットデータとを混在させた状態でプリンタ200に出力する。こうして、全ての画素群についてのデータを出力したら、図15に示した第2実施例の個数データ生成処理を終了して、画像印刷処理に復帰する。
【0108】
C−2.第2実施例の画素位置決定処理:
上述したように、第2実施例においては、ドット個数のデータと画素毎のドット形成の有無を示すデータとが、コンピュータ100から同時に送られてくるので、プリンタ200では次のようにしてドットを形成する画素位置を決定する。尚、以下の説明では、データは図17に示した方法で転送されるものとする。
【0109】
図19は、第2実施例において、ドットを形成する画素位置を決定する処理の流れを示すフローチャートである。処理を開始すると、先ず初めに4ビット分のデータを読み込む(ステップS500)。そして、読み込んだデータが9以上か否かを判断する(ステップS502)。前述したように、ここでは画素群に含まれる画素数は8個であり、ドット個数は0〜8の値しか取り得ない。このことから、読み込んだ値が9以上の値であれば、そのデータはドット個数を表しているのではなく、続くデータがドットデータであることを表していると考えることができる。逆に、読み込んだ値が0〜8の値であれば、そのデータは、画素群に形成されるドット個数を表すデータと考えることができる。
【0110】
そこで、読み込んだデータが9以上か否かを判断し、9以上でない場合は(ステップS502:no)、読み込んだデータをドット個数のデータと解釈し、前述した第1実施例と同様にして、画素群内でドットを形成する画素位置を決定する(ステップS504)。一方、読み込んだデータが9以上である場合は(ステップS502:yes)、続く8ビットのデータを読み込んで、このデータが画素毎にドット形成の有無を表すものと解釈することにより、ドットを形成する画素位置を決定する(ステップS506)。
【0111】
以上のようにして、画素群1つについて、ドットを形成する画素位置を決定したら、全ての画素群についての処理を終了したか否かを判断する(ステップS508)。そして、未処理の画素群が残っていればステップS500に戻って続く一連の処理を行う。こうして、全ての画素群について画素位置を決定するまで上述した処理を繰り返し、全ての画素群についての処理が終了したら、図19に示した第2実施例の画素位置決定処理を抜けて、画像印刷処理に復帰する。
【0112】
以上、図15ないし図18に示した個数データ生成処理および図19に示した画素位置決定処理を行う第2実施例の画像印刷処理によれば、画素群内で各画素の階調値が同じ値とならない場合でも、エッジを含まない画素群についてはドット個数を示すデータを転送することができるので、プリンタ200に迅速にデータを転送して画像を迅速に印刷することが可能となる。
【0113】
また、第2実施例の画像印刷処理では、エッジを含む画素群については画素毎にドット形成の有無を示すドットデータを転送しているので、エッジを含む画素群の割合が高くなるほど、プリンタ200へのデータ転送に要する時間が増加する。このことから、エッジの有無を検出するための判定基準を高くして、エッジが検出され難くするほどデータ転送に要する時間が短くなり、延いては画像の迅速な印刷が可能となる。
【0114】
その一方で、エッジが検出されなかった画素群については、画素群内の各画素の階調値を平均階調値によって置き換えてしまうので、データ転送時間の短縮化を図る余りエッジの判定基準を高くしすぎると(エッジが検出され難くすると)、印刷画質の低下が懸念される。しかし、高い印刷画質が要求される画像は、通常は印刷解像度が入力される画像データの解像度よりの高い値に設定されている。高解像度に変換するために、解像度変換処理(図5のステップS104)で画素を分割して新たな画素を生成した場合でも、あるいは補間演算を行って新たな画素を生成した場合でも、ほとんどの画素群では階調値は緩やかに変化することになる。このことから、高い印刷画質が要求される画像では、ほとんどの場合、エッジの判定基準を高くせずとも大部分の画素群ではエッジは検出されず、高い画質を維持したままデータを迅速に転送することができる。
【0115】
一方、印刷解像度が入力された画像データの解像度と同程度の低解像度である場合は、画素群にエッジが検出される割合が高くなる。従って、プリンタ200へのデータ転送に要する時間を短縮化するためには、判定基準を高くしてエッジが検出され難くする必要が生じる。しかし、このように印刷解像度が比較的低い値に設定されている場合は、画質よりも迅速な印刷が要求されないことが多いので、エッジの判定基準を高くしても画質の悪化が問題になることはない。
【0116】
D.第3実施例:
以上に説明した各種の実施例は、個々の画素では、ドットを形成した状態あるいは形成しない状態に対応した2つの階調値しか表現し得ないものとして説明した。しかし、プリンタの中には、形成するドットの大きさを変えたり、あるいはドットを形成するために用いるインクの濃さを変えることで、個々の画素単独で、より多くの階調値を表現可能としたプリンタも存在する。本発明は、こうしたいわゆる多値プリンタに対しても有効に適用することができる。以下では、本発明を多値プリンタに適用した第3実施例について説明する。
【0117】
D−1.第3実施例の画像印刷処理の概要:
図20は、第3実施例の画像印刷処理の流れを示すフローチャートである。第3実施例の画像印刷処理は、図5を用いて説明した第1実施例の画像印刷処理に対して、色変換処理後のデータを大中小ドットのデータに変換する点が大きく異なっている。以下では、この相違点を中心に、第3実施例の画像印刷処理について説明する。尚、ここでは、プリンタ200はドットの大きさを変更可能な多値プリンタであるものとして説明するが、もちろん以下の説明は、ドットの大きさではなくインクの濃度を変更するプリンタや、更にはドットの大きさとインクの濃度とを同時に変更可能な多値プリンタにも、同様に適用することができる。
【0118】
第3実施例の画像印刷処理においても、第1実施例の画像印刷処理と同様に、先ず初めに、変換すべき画像データを読み込んで(ステップS600)、読み込んだデータに対して色変換処理を行う(ステップS602)。色変換処理を行うことにより、画像データはC,M,Y,K各色の階調値によって表現された階調データに変換される。
【0119】
ここで、前述した第1実施例のプリンタ200では、ドットの大きさを変えることはできず、各色毎にドットを形成するか形成しないかのいずれかの状態しか取り得ない。このため、色変換後のデータに基づいて直ちに、画素毎のドット形成の有無を判断した。これに対して第3実施例のプリンタ200では、ドットの大きさを変えて大ドット、中ドット、小ドットの3種類のドットを形成することが可能である。そこで、色変換処理によって得られた階調データを、一旦、大ドット用のデータ、中ドット用のデータ、小ドット用のデータに各色毎に変換する(ステップS604)。
【0120】
階調データから、大ドット、中ドット、小ドットのそれぞれのドットデータへの変換は、図21に示す変換テーブルを参照することによって行う。図示するように、変換テーブルには、大ドットデータ、中ドットデータ、小ドットデータが階調データに対応付けて記憶されており、かかる変換テーブルを参照することによって、色変換後の階調データを変換する。
【0121】
次いで、大ドットデータ、中ドットデータ、小ドットデータのそれぞれのデータに対して解像度変換処理を行う(ステップS606)。解像度変換には種々の方法を適用することができるが、説明を簡便にするために、ここでは第1実施例と同様に、画素を分割して解像度を変換するものとする。分割して生成された新たな画素には、元の画素の階調値と同じ階調値が設定される。
【0122】
こうして解像度を印刷解像度に変換した後、個数データ生成処理を行う(ステップS608)。第3実施例ではプリンタ200が大ドット、中ドット、小ドットの3種類のドットを形成することが可能である。このことに対応して個数データ生成処理では、これら各種ドットについてのドット個数のデータを生成して、得られたドット個数のデータをプリンタ200に出力する。
【0123】
図22は、第3実施例の個数データ生成処理において、ドットデータからドット個数のデータを生成する様子を示した説明図である。図22(a)は、画素群としてまとめられる各画素に、大中小の各種ドットについてのドットデータが設定されている様子を模式的に表している。図中に示した実線の矩形の各々が画素群を表している。画素群は複数の画素から構成されており、各画素にドットデータが設定されているが、図示が煩雑となることを避けるために、図22では、個々の画素の表示は省略し、その代わりに画素群にドットデータが設定されているものとして表示している。例えば、図22(a)の左上隅の画素群に、Data(L,M,S)=(2,90,32)と表示されているのは、この画素群の各画素に、大ドットのドットデータ「2」、中ドットのドットデータ「90」、小ドットのドットデータ「32」が設定されていることを表している。もちろん、第1実施例においても説明したように、画素群を構成する全ての画素が同じ階調値を有する場合は、解像度変換処理を行わず、個数データ生成処理の中で実質的に解像度変換を行うこととしても良い。
【0124】
第3実施例の個数データ生成処理では、こうした各種ドットについてのドットデータに後述する処理を施すことにより、図22(b)に示すようなドット個数のデータを生成する。図22(b)においても図22(a)と同様に、実線の矩形は画素群を表している。画素群は複数の画素から構成されているが、各画素の表示は省略して、画素群毎にドット個数のデータが生成されているものとして表示している。例えば、図22(b)の左上隅の画素郡中に、Dot(L,M,S)=(1,2,1)と表示されているのは、この画素群を構成する各画素については、大ドット、中ドット、小ドットのドット個数として、それぞれ「1」、「2」、「1」が生成されたことを表している。第3実施例の個数データ生成処理の内容については後述する。
【0125】
プリンタ200は、コンピュータ100から出力されたドット個数のデータを受け取ると、画素位置決定処理を行う(ステップS610)。第3実施例では大ドット、中ドット、小ドットの3種類のドットを形成することから、画素位置決定処理では、これら各種ドットを形成する画素位置を決定する。第3実施例の画素位置決定処理の内容については後述する。
【0126】
こうして画素位置を決定したら、プリンタ200はキャリッジ240の主走査と副走査とを繰り返しながらインク吐出用ヘッドを駆動することにより、印刷用紙上に大中小の各ドットを形成する(ステップS612)。この結果、画像データに対応した画像が印刷されることになる。
【0127】
D−2.第3実施例の個数データ生成処理:
以下、第3実施例の個数データ生成処理の内容について説明する。図23は、第3実施例の個数データ生成処理の流れを示したフローチャートである。かかる処理も、コンピュータ100に内蔵されたCPUによって実行される。
【0128】
第3実施例の個数データ生成処理を開始すると、CPUは先ず初めに、画像データの中から所定の複数個の画素をまとめて画素群を生成する(ステップS700)。個数データ生成処理に先立って行われる解像度変換処理(図20のステップS606)において、第1実施例と同様に、画素を分割して新たな画素を生成することとしているから、ここでも、同じ画素から分割された複数の画素を画素群としてまとめるものとする。
【0129】
次いで、画素群内の各画素について、大ドット、中ドット、小ドットのドットデータを読み込む(ステップS702)。尚、ここでは、画素群を構成する画素は、いずれも同じ画素から分割されて同じ階調値を有するから、画素毎にドットデータを読み込むのではなく、画素群毎に1画素分だけ読み込むこととしても良い。
【0130】
こうして各種ドットのドットデータを読み込んだら、ディザマトリックスを参照することにより、大ドット、中ドット、小ドットについての形成有無を判断する(ステップS704)。図24は、ディザマトリックスを参照しながら、着目画素に大ドット、中ドット、小ドットのいずれのドットを形成するべきかを判断する方法を示した説明図である。尚、図24では、ドットデータとして図22(a)に示すデータを使用し、ディザマトリックスとしては、図8に示すマトリックスを使用する場合を想定している。
【0131】
図24は、画像の左上隅にある画素群について、各種ドットの形成有無を判断する様子を示している。図中で、太い実線の矩形は画素群を表しており、画素群が細い破線で区分されているのは、画素群が複数の画素によって構成されていることを表している。また、画素の中に表された数値は、ディザマトリックスの対応する位置に設定されている閾値の値を表している。
【0132】
ドット形成有無の判断を開始すると、先ず初めに、大ドットのドットデータと、ディザマトリックスに設定されている閾値とを比較して、ドットデータの方が大きい画素については大ドットを形成するものと判断する。図24(a)は、こうして、画素群内の各画素について大ドットの形成有無を判断している様子を示している。具体的には、大ドットのドットデータは「2」であるから、一番左上隅にある階調値「1」の画素についてだけ、ドットデータの方が大きく、他の画素については全てディザマトリックスの閾値の方が大きくなっている。そこで、この画素群では、大ドットは1つだけ形成される。図24(a)中で、ディザマトリックスの閾値が「1」の画素に細かい斜線が付されているのは、この画素に大ドットを形成すると判断されたことを表している。
【0133】
大ドットについての形成有無を判断したら、今度は中ドットについての形成有無を判断する。中ドットについての判断に際しては、大ドットのドットデータに中ドットのドットデータを加算して、中ドット用の中間データを算出し、この中間データとディザマトリックスの閾値とを比較する。そして、中間データの方が閾値よりも大きな画素については、中ドットを形成するものと判断する。このとき、既に大ドットを形成することとした画素については、中ドットの形成有無の判断は行わない。図24(b)に即して具体的に説明すると、大ドットのドットデータは「2」であり、中ドットのドットデータは「90」であるから、中ドット用の中間データは「92」と算出される。この中間データとディザマトリックスの閾値とを比較する。但し、画素群中で一番左上隅にある画素については、既に大ドットを形成することとしているので、かかる比較は行わない。そして、ディザマトリックスの閾値が「42」の画素と「58」の画素については、中間データの方が大きくなるので、中ドットを形成すると判断する。図24(b)中で、これらの画素に斜線が付されているのは、中ドットを形成すると判断されたことを表している。
【0134】
中ドットの形成有無を判断したら、最後に小ドットの形成有無を判断する。小ドットの判断に際しては、中ドット用の中間データに小ドットのドットデータを加算して、小ドット用の中間データを算出し、未だドットを形成すると判断されていない画素について、この中間データとディザマトリックスの閾値とを比較する。そして、中間データの方が大きい画素については、小ドットを形成するものと判断する。図24(c)に即して具体的に説明すると、中ドット用の中間データは「92」であるから、小ドットのドットデータ「32」を加算して、小ドット用の中間データは「124」と算出される。この中間データと、ディザマトリックスの閾値とを比較する。そして、ディザマトリックスの閾値が「109」の画素については中間データの方が大きいので、この画素には小ドットを形成すると判断する。図24(c)中で、この画素に粗い斜線が付されているのは、小ドットを形成すると判断されたことを表したものである。図23のステップS704では、以上のようにして画素群内の各画素について、大ドット、中ドット、小ドットの形成有無を判断する。
【0135】
各種ドットの形成有無を判断したら、その画素群に形成すべき各種ドットの個数を記憶する(ステップS706)。図24に示した例では、大ドット、中ドット、小ドットの個数として、それぞれ1個、2個、1個である旨を記憶する。
【0136】
こうして複数の画素を画素群にまとめて、画素群内に形成する各種ドットの個数を記憶したら、画像データに含まれる全画素についての処理を終了したか否かを判断し(ステップS708)、未処理の画素が残っている場合は(ステップS708:no)、ステップS700に戻って新たな画素群を生成した後、続く一連の処理を繰り返す。こうして、全ての画素についての処理を終了したら(ステップS708:yes)、画素群毎に記憶しておいた各種ドットの個数をプリンタ200に向かって出力する(ステップS710)。ここで、プリンタ200へ出力するデータ量を更に少なくするために、各種ドットについての個数のデータは、次のようにしてコード化した状態で出力する。
【0137】
図25は、各種ドットの個数のデータをコード化するために参照される変換テーブルを概念的に示した説明図である。変換テーブルには、大ドット、中ドット、小ドットの各種ドット個数の組合せ毎に、1つずつコード番号が設定されている。例えば、大ドット、中ドット、小ドットのいずれの個数も0個である組合せには、コード番号「0」が設定されている。また、大ドットと中ドットの個数が0個であり、小ドットの個数が1個である組合せには、コード番号「1」が設定されている。
【0138】
こうして、各種ドットの個数をコード番号に変換してからプリンタ200に出力することで、データ量を減らすことができる。この理由について若干説明する。ここでは画素群は8つの画素から構成されているものとしているから、各種ドットが取り得る最大個数は8個であり、従って、ドット個数のデータは、ドット種類毎に4ビットあれば足りる。ドットの種類は3種類だから、結局、画素群あたりに必要なデータ量は12ビットとなる。これに対して、図25に示すように、コード番号は0〜165の値しか取り得ないから、コード化すれば画素群あたり8ビットあれば充分となる。すなわち、これだけでデータ量を2/3に減らすことが可能である。
【0139】
更に、各種ドット個数の組合せの中には、実際の印刷では発生しない組合せも多く含まれており、当然、これらの組合せにはコード番号を設定する必要はない。従って、必要な組合せにだけコード番号を設定することとすれば、画素群あたりに必要なデータ量は8ビットよりも少なくなるので、更にデータ量を減少させることが可能となる。
【0140】
図23のステップS710では、以上のような理由から、各種ドットについての個数のデータをコード化してプリンタ200に出力するのである。こうして、各種ドットの個数を画素群毎にコード化した状態でプリンタ200に出力したら、第3実施例の個数データ生成処理を終了して、図20の画像印刷処理に復帰する。
【0141】
尚、以上に説明した第3実施例の個数データ生成処理では、画素を特定しながら各種ドットの形成有無を判断したが、プリンタ200に供給される情報はドット個数の情報のみであり、画素位置の情報までは供給していない。このことから、前述した第1実施例の第1の変形例と同様に(図13参照)、画素位置を特定することなくドット個数を求めることとしても良い。図26は、こうして画素位置を特定することなく、各種ドットのドット個数を求める様子を概念的に示した説明図である。
【0142】
図26は、図24での説明に用いた画素群を例に取って、画素位置を特定することなく各種ドットのドット個数を求める方法を示した説明図である。複数種類のドットについてドット個数を求める場合でも、単一のドットのドット個数を求める場合と同様に、簡易ディザマトリックスを使用する。前述したように簡易ディザマトリックスとは、ディザマトリックス中では画素群内の各画素に対応付けられている閾値が、各画素と対応付けられることなく画素群毎にひとまとまりの閾値の組として記憶されているマトリックスである。例えば図24に示した画素群には、画素群内の各画素に対応付けてディザマトリックスの閾値が設定されている。これに対して簡易ディザマトリックスを用いる図26では、これら閾値の組{255,212,177,170,109,58,42,1}が画素群に設定されている。以下、図26に従って、画素位置を特定することなく各種ドットのドット個数を求める方法について説明する。
【0143】
ドット個数は、先ず初めに大ドットのドット個数を求め、次に中ドット、最後に小ドットの順番で求めていく。図26(a)は大ドットのドット個数を求める様子を表しており、図26(b)は中ドットのドット個数を、図26(c)は小ドットのドット個数を求める様子を表している。大ドットのドット個数を求めるためには、大ドットのドットデータと、画素群に設定されている閾値の組とを比較する。そして、ドットデータより小さな閾値の個数だけ大ドットを形成すると判断する。図26(a)に示した例では、大ドットのドットデータは「2」であるから、ドットデータより小さな閾値は1つだけ存在しており、従って、大ドットのドット個数を1個と求めることができる。図26(a)中で閾値「1」に細かい斜線が施されているのは、この閾値については大ドットを形成すると判断されたことを模式的に表したものである。
【0144】
大ドットのドット個数を求めたら、大ドットのドットデータに中ドットのドットデータを加えて中ドット用の中間データを算出する。そして、この中間データと閾値の組とを比較して、中間データよりも小さな閾値の個数だけ中ドットを形成すると判断する。但し、既に大ドットを形成すると判断されている閾値との比較は行わない。図26(b)に示した例では、大ドットのドットデータは「2」であり、中ドットのドットデータは「90」であるから、中ドット用のドットデータは「92」と算出される。既に大ドットを形成すると判断した閾値「1」を除けば、この中間データ「92」よりも小さな閾値は2つ存在する。そこで、この画素群に形成する中ドットの個数は2個であると求めることができる。図26(b)中に、閾値「42」と閾値「58」に斜線が施されているのは、これら閾値については中ドットを形成すると判断されていることを模式的に表したものである。
【0145】
中ドットのドット個数を求めたら、中ドット用の中間データに小ドットのドットデータを加えて、小ドット用の中間データを算出する。そして、この中間データと閾値の組とを比較することにより、小ドットのドット個数を求めてやる。図26(c)に示した例では、中ドット用の中間データは「92」、小ドットのドットデータは「32」であるから、小ドット用の中間データは「124」となる。いずれのドットも形成されていない閾値の中で、この中間データよりも小さな閾値は1つだけあるから、この画素群に形成される小ドットの個数は1個だけであると判断することができる。図26(c)中で、閾値「109」に斜線が施されているのは、この閾値については小ドットを形成すると判断したことを模式的に表したものである。
【0146】
このように、簡易ディザマトリックスを参照しながら、各種ドットのドット個数を求めて行けば、画素位置を特定することなくドット個数を求めることが可能である。こうすれば、ドットデータあるいは中間データを、閾値の組と比較するだけでドット個数を求めることができ、画素毎に設定された閾値と比較する必要がないので、各種ドットについてのドット個数のデータを迅速に求めることが可能となる。
【0147】
D−3.第3実施例の画素位置決定処理:
以上に説明したように、第3実施例の個数データ生成処理では、画素群毎に各種ドットのドット個数が求められた後、ドット個数を示すデータがプリンタ200に転送される。プリンタ200では、転送されてきたデータを受け取って、各種ドットを形成する画素位置を決定した後、決定に従って印刷用紙上に各種ドットを形成することによって画像を印刷する。以下では、ドット個数を示すデータに基づいて各種ドットを形成する画素位置を決定する処理について説明する。
【0148】
図27は、第3実施例の画素位置決定処理の流れを示したフローチャートである。かかる処理は、プリンタ200の制御回路260に内蔵されたCPUによって実行される。
【0149】
第3実施例の画素位置決定処理を開始すると、先ず初めに、画素位置を決定しようとする画素群を選択し(ステップS800)、次いで、転送されてきたデータの中から、選択した画素群のデータを取得する(ステップS802)。ここでは、図25を用いて説明したように、ドット個数のデータはコード化された状態で転送されているものとする。そこで、コード化されたデータを、各種ドットのドット個数を示すデータに復号化する(ステップS804)。
【0150】
データの復号化は、図25に示した変換テーブルを、コード番号の側から参照することによって行う。例えば、コード化されたデータが「163」であれば、変換テーブル中でコード番号「163」に対応付けられているドット個数から、大ドット7個、中ドット0個、小ドット1個とドット個数のデータに復号することができる。
【0151】
こうして各種ドットのドット個数が得られたら、ディザマトリックスを参照することにより、各種ドットを形成する画素位置を決定する(ステップS806)。かかる処理について、図28を参照しながら説明する。
【0152】
図28は、ある画素群について、各種ドットのドット個数が与えられたときに、ディザマトリックスを参照しながら、これらドットを形成する画素位置を決定する様子を示した説明図である。図中に示した太い実線の矩形は画素群を表している。画素群を区分する細い破線は、画素群が複数の画素から構成されていることを表している。また、画素中に示された数値は、ディザマトリックスの対応する位置に設定されている閾値を示している。尚、ディザマトリックスは、ドット個数を求めるために用いたマトリックスと同じマトリックスを使用するものとする。
【0153】
今、この画素群に形成する各種ドットの個数が、大ドット1個、中ドット2個、小ドット1個であるものとして、初めに大ドットを形成する画素位置を決定する。前述したように、ディザマトリックスの閾値は、ドットの形成され易さを表していると考えることができるから、大ドットを1個だけ形成するとすれば、最も小さな閾値の設定された画素に形成されることになる。大ドットの画素位置を決定したら、続いて中ドットを形成する画素位置を決定する。中ドットは2個形成することになっており、また、最も小さな閾値の画素には既に大ドットが形成されているから、閾値が2番目に小さな画素と3番目に小さな画素の2つの画素に中ドットを形成すると判断する。中ドットに続いて小ドットの画素位置を決定する。小ドットは1個だけ形成することになっており、また、閾値の最も小さな画素から3番目に小さな画素までは、既に大ドットあるいは中ドットが形成されているから、4番目に閾値の小さな画素に小ドットを形成すると判断する。
【0154】
図28は、こうして大ドット、中ドット、小ドットの順番で、ドットを形成する画素を決定している様子を表しており、図中で、細かい斜線が付された画素は大ドットを形成すると判断された画素を、中間の斜線が付された画素は中ドットを形成すると判断された画素を、粗い斜線が付された画素は小ドットを形成すると判断された画素を、それぞれ表している。図27のステップS806では、このようにして、ディザマトリックスを参照しながら、各種ドットを形成する画素位置を決定する。
【0155】
尚、以上の説明では、コード化されたデータを復号化する際に、各種ドットのドット個数のデータに復号化するものとして説明した。しかし、上述したように、大ドット、中ドット、小ドットの順番で画素位置を決定することから、各種ドットのドット個数ではなく、大ドットの個数、大ドットと中ドットの合計個数、大ドットと中ドットと小ドットの合計個数に復号化することとしても良い。例えば、図28に示した例では、{大ドット:1個、中ドット:2個、小ドット:1個}と復号化する代わりに、{大ドット:1個、大ドット+中ドット:3個、大ドット+中ドット+小ドット:4個}と復号化するのである。
【0156】
図29は、このような復号化を行うために参照される復号化テーブルを概念的に表した説明図である。このように復号化しておけば、次のように画素位置を決定する処理を迅速化することができる。例えば、中ドットの画素位置を決定する場合について説明すると、大ドット+中ドットの個数は3個と復号化されているので、設定されている閾値が小さい方から3番目までの画素を選択する。そして、既に他のドット(大ドット)が形成されている画素を除いて、選択した画素に中ドットを形成すると判断することができる。こうすれば、既に他のドットを形成すると判断した画素数を考慮することなく、画素位置を決定することができるので、処理の迅速化を図ることが可能となる。
【0157】
以上のようにして、1つの画素群について、各種ドットを形成する画素位置を決定したら(図27のステップS806)、コンピュータ100から供給された全画素群のデータについて、画素位置を決定する処理を終了したか否かを判断する(ステップS808)。未処理の画素群が残っている場合は(ステップS808:no)、ステップS800に戻って、新たな画素群について続く一連の処理を繰り返す。こうして全ての画素群について画素位置を決定したと判断されたら(ステップS808:yes)、図27に示す画素位置決定処理を抜けて、画像印刷処理に復帰した後、印刷用紙上に各種ドットを形成する。この結果、画像データに対応した画像が印刷されることになる。
【0158】
プリンタ200がいわゆる多値プリンタである場合には、以上に説明した第3実施例の画像印刷処理を行うことにより、コンピュータ100からプリンタ200に各種ドットのドット個数を転送しながら画像を印刷することができる。こうすれば、画素毎にドット形成の有無を示すデータを供給するよりも、迅速に供給することができるので、たとえ、画素数の多い画像でも、迅速に画像を印刷することが可能となる。
【0159】
E.その他の変形例:
本発明には、上述した実施例の他にも、更に各種の変形例が存在する。以下では、これら変形例について簡単に説明する。
【0160】
(1)第1の変形例:
上述した各種の実施例の個数データ生成処理では、いわゆるディザ法を用いてドット形成の有無を判断している。しかし、画像データの階調値に応じて適切な密度となるようにドット個数を求めることができるのであれば、どのような手法を使用することもできる。
【0161】
例えば、図30に示した変形例の個数データ生成処理のように、画素群内の各画素の平均階調値を算出して、この平均階調値に基づいて、画素群内に形成するドット個数を一義的に求めることとしても良い。以下、図30のフローチャートに従って簡単に説明する。
【0162】
個数データ生成処理を開始すると、先ず初めに、所定の複数個の画素を画素群としてまとめて(ステップS900)、画素群内の各画素の平均階調値を算出し(ステップS902)、この平均階調値に基づいて画素群内に形成するドット個数を一義的に決定する。すなわち、図31に例示したように、画素群内に形成するドット個数を平均階調値に対応付けて予め定めておき、この対応関係に基づいて、画素群の平均階調値からドット個数を決定する。尚、図31では、ドット種類が3種類である場合について示しているが、ドット種類は3種類に限られるものではない。
【0163】
次いで、こうして決定したドット個数を画素群毎に記憶した後(ステップS906)、全画素についての処理が終了したか否かを判断する(ステップS908)。そして、未処理の画素が残っていれば、ステップS900に戻って続く一連の処理を繰り返す。全ての画素の処理を終了したと判断されたら、記憶しておいたドット個数の図29を用いて説明した方法によってコード化した後、コード化したドット個数のデータをプリンタ200に向かって出力する(ステップS910)。
【0164】
プリンタ200では、コンピュータ100から出力されたドット個数のデータを受け取った後、前述した画素位置決定処理を行って画像を印刷する。こうすれば、画素群毎のドット個数のデータを簡便に求めることができるので、ドット個数のデータを迅速に出力することができ、延いては、更に迅速に画像を印刷することが可能となる。
【0165】
(2)第2の変形例:
以上に説明した各種実施例の個数データ生成処理では、初めに、複数個の画素を画素群としてまとめた後、画素群内に形成するドット個数を決定している。しかし、初めに、画素毎のドット形成の有無を判断し、その後に、複数個の画素を画素群としてまとめることとしても良い。
【0166】
例えば、図32に示した変形例では、初めに、画像データにいわゆる誤差拡散法を適用して、全ての画素についてドット形成の有無を判断する(ステップS950)。その後、所定の複数個の画素を画素群としてまとめ(ステップS952)、形成するドット個数を画素群毎に数えて記憶する(ステップS954)。
【0167】
こうして1つの画素群についてドット個数を記憶したら、全ての画素についての処理を終了したか否かを判断し(ステップS956)、未処理の画素が残っている場合は、ステップS900に戻って続く一連の処理を繰り返す。全ての画素についての処理を終了したと判断されたら、画素群毎に記憶しておいたドット個数をプリンタ200に向かって出力する(ステップS958)。
【0168】
プリンタ200では、こうしてコンピュータ100からドット個数のデータを受け取ると、前述した画素位置決定処理を行って、ドットを形成する画素位置を画素群毎に決定する。尚、図32に示す変形例では誤差拡散法に基づいてドット個数を求めているが、このような場合でも、前述したようにディザマトリックスを参照しながら画素位置を決定することができる。
【0169】
また、一般に、誤差拡散法を用いてドット形成の有無を判断した場合、ドットの形成密度が低い領域でノイズの少ない良好な画質が得られることが知られている。このことから、例えば、ドットが1つも形成されない多くの画素群の中に、ドットの形成される画素群がまばらに分布しているようなドット密度の低い画像を印刷する場合、画素群のドット個数を誤差拡散法に基づいて求めてやれば、ドットを適切に分布させて、高画質な画像を得ることが可能となる。
【0170】
(3)第3の変形例:
以上に説明した各種実施例では、ディザマトリックスに基づいて画素位置を決定するものとして説明した。前述した序列マトリックスを参照しながら画素位置を決定する場合は、直接にはディザマトリックスを参照しているわけではないが、序列マトリックスはディザマトリックスに基づいて生成されていることから、間接的には、ディザマトリックスに基づいて画素位置を決定している考えることができる。しかし、画素群毎に、異なる序列を用いて画素位置を決定することができれば、必ずしもディザマトリックスに基づいて決定する必要はない。
【0171】
例えば、図33に示したように、複数の序列を記憶しておき、この中から画素毎に適当な序列を選択して画素位置を決定することとしても良い。以下、図33のフローチャートに従って簡単に説明する。
【0172】
プリンタ200の制御回路260に内蔵されたCPUは、変形例の画素位置決定処理を開始すると先ず初めに、画素位置を決定しようとする画素群を選択して、この画素群のドット個数のデータを取得する(ステップS970)。次いで、予め記憶しておいた複数の序列の中から、任意の序列を1つ選択する(ステップS972)。制御回路260のROMには、画素群内の各画素について複数通りの序列が予め記憶されている。図34は、ROMに記憶されている複数通りの序列を模式的に示した説明図である。ステップS972では、これら序列の中から序列を1つ選択する。
【0173】
そして、選択した序列を参照しながら、画素群内にドットを形成する画素位置を決定する(ステップS974)。こうして1つの画素群について画素位置を決定したら、全ての画素群についての処理を終了したか否かを判断し(ステップS976)、未処理の画素群が残っていれば、ステップS970に戻って続く一連の処理を行って、画素位置を決定する。そして、全ての画素群についての処理を終了するまで、上述した処理を繰り返す。
【0174】
この様にしても、画素群毎のドット個数のデータから、ドットを形成する画素位置を決定することができる。また、画素位置を決定するために参照する序列は、ほとんどの場合、画素群毎に異なる序列が選択されるので、同じパターンでドットが形成されて画質が悪化するおそれもない。
【0175】
以上、各種の実施例について説明してきたが、本発明は上記すべての実施例に限られるものではなく、その要旨を逸脱しない範囲において種々の態様で実施することができる。例えば、上述の機能を実現するソフトウェアプログラム(アプリケーションプログラム)を、通信回線を介してコンピュータシステムのメインメモリまたは外部記憶装置に供給し実行するものであってもよい。もちろん、CD−ROMやフレキシブルディスクに記憶されたソフトウェアプログラムを読み込んで実行するものであっても構わない。
【0176】
また、以上の実施例では、印刷用紙上にドットを形成して画像を印刷するプリンタに本発明を適用した場合について説明したが、本発明の適用範囲はプリンタに限られるものではなく、例えば、液晶表示画面上で輝点を適切な密度で分散させることにより、階調が連続的に変化する画像を表現する液晶表示装置などにも、本発明を好適に適用することができる。
【図面の簡単な説明】
【図1】 印刷システムを例にとって発明の概要を示した説明図である。
【図2】 本実施例の画像処理装置としてのコンピュータの構成を示す説明図である。
【図3】 本実施例の画像表示装置としてのプリンタの概略構成図である。
【図4】 インク吐出用ヘッドにおけるノズルNzの配列を示す説明図である。
【図5】 第1実施例の画像処理装置で行われる画像印刷処理の流れを示すフローチャートである。
【図6】 画像データの解像度変換を変換している様子を示す説明図である。
【図7】 第1実施例の個数データ生成処理の流れを示すフローチャートである。
【図8】 ディザマトリックスの一部を拡大して例示した説明図である。
【図9】 ディザマトリックスを参照しながら画素毎にドット形成の有無を判断する様子を示す説明図である。
【図10】 画素群毎にドット個数のデータが求められている様子を概念的に示した説明図である。
【図11】 第1実施例の画素位置決定処理の流れを示すフローチャートである。
【図12】 第1実施例の画素位置決定処理中でドット個数のデータに基づいて画素位置を決定する処理の様子を示す説明図である。
【図13】 第1の変形例の個数データ生成処理中でドット個数を求める様子を示す説明図である。
【図14】 第2の変形例の画素位置決定処理中でドット個数のデータに基づいて画素位置を決定する様子を示す説明図である。
【図15】 第2実施例の個数データ生成処理の流れを示すフローチャートである。
【図16】 画素群内でのエッジの有無に応じて、画素群内の各画素の階調値を平均階調値で置き換える様子を示した説明図である。
【図17】 第2実施例においてコンピュータが出力するデータのデータ形式を示す説明図である。
【図18】 第2実施例においてコンピュータが出力するデータ形式の他の態様を示す説明図である。
【図19】 第2実施例の画素位置決定処理の流れを示すフローチャートである。
【図20】 第3実施例の画像印刷処理の流れを示すフローチャートである。
【図21】 第3実施例の大中小ドットデータ変換処理中で参照される変換テーブルを概念的示した説明図である。
【図22】 第3実施例の個数データ生成処理中で、ドットデータからドット個数のデータを生成する様子を示した説明図である。
【図23】 第3実施例の個数データ生成処理の流れを示したフローチャートである。
【図24】 ディザマトリックスを参照しながら、各種ドットを形成する画素位置を決定する様子を示した説明図である。
【図25】 各種ドットの個数のデータをコード化するために参照される変換テーブルを概念的に示した説明図である。
【図26】 第3実施例の個数データ生成処理中で、画素位置を特定することなくドットの個数を求める様子を概念的に示した説明図である。
【図27】 第3実施例の画素位置決定処理の流れを示したフローチャートである。
【図28】 第3実施例の画素位置決定処理中で、ドット個数のデータから画素位置を決定する様子を示した説明図である。
【図29】 第3実施例の画素位置決定処理中で参照される復号化テーブルを概念的に表した説明図である。
【図30】 第1の変形例の画像印刷処理中で行われる個数データ生成処理の流れを示すフローチャートである。
【図31】 画素群内の平均階調値に基づいてドット個数が一義的に決定される様子を例示した説明図である。
【図32】 第2の変形例の画像印刷処理中で行われる個数データ生成処理の流れを示すフローチャートである。
【図33】 第3の変形例の画像印刷処理中で行われる画素位置決定処理の流れを示すフローチャートである。
【図34】 画素群内の画素の序列が複数通り記憶されている様子を模式的に示した説明図である。
【符号の説明】
10…コンピュータ
20…プリンタ
100…コンピュータ
102…CPU
104…ROM
106…RAM
108…周辺機器インターフェースPIF
109…ディスクコントローラDDC
110…ネットワークインターフェースカードNIC
112…ビデオインターフェースVIF
114…CRT
116…バス
118…ハードディスク
120…デジタルカメラ
122…カラースキャナ
124…フレキシブルディスク
126…コンパクトディスク
200…カラープリンタ
230…キャリッジモータ
235…紙送りモータ
236…プラテン
240…キャリッジ
241…印字ヘッド
242,243…インクカートリッジ
244…インク吐出用ヘッド
260…制御回路
300…通信回線
310…記憶装置
Claims (15)
- 画像データに所定の画像処理を施す画像処理装置と、該画像処理の結果に基づいてドットを形成することにより画像を表示する画像表示装置と、を備える画像表示システムであって、
前記画像処理装置は、
前記画像データを構成する複数の画素を、複数個ずつまとめて画素群を生成する画素群生成手段と、
前記画素群内の画素間で前記画像データの階調差が所定値以上の場合に、該画素群はエッジを含むと判断し、前記階調差が前記所定値未満の場合に、該画素群はエッジを含まないと判断するエッジ有無判断手段と、
前記エッジを含まないと判断された画素群について、該画素群内に形成されるドットの個数を、前記画素群内の画像データに基づいて決定するドット個数決定手段と、
前記エッジを含むと判断された画素群について、該画素群内の画素毎にドット形成の有無を該画素の画像データに基づいて判断することにより、各画素についてのドット形成有無を表すドットデータを生成するドットデータ生成手段と、
前記エッジを含まないと判断された画素群についての前記ドット個数のデータと、前記エッジを含むと判断された画素群についての前記ドットデータとを、前記画像表示装置に出力する個数データ出力手段と
を備えており、
前記画像表示装置は、
前記画素群内の画素数を超える数の閾値を有するディザマトリックスが、前記画素群内の画素数に応じた数の閾値を有する複数の閾値群に区分され、該区分された閾値群内の前記閾値の大小関係に応じて、前記画素群を構成する画素間でのドットの形成され易さが規定された序列を複数記憶している序列記憶手段と、
前記ドット個数のデータと前記ドットデータとを受け取る個数データ受取手段と、
前記記憶されている複数の序列の中から、前記ドット個数のデータを受け取った画素群毎に、該画素群に対応する序列を選択する序列選択手段と、
前記ドット個数のデータと前記選択した序列とに基づいて、または、前記ドットデータに基づいて、前記画素群内でドットが形成される画素位置を該画素群毎に決定する画素位置決定手段と、
前記決定した画素位置にドットを形成するドット形成手段と
を備える
画像表示システム。 - 請求項1記載の画像表示システムであって、
前記個数データ出力手段は、前記ドット個数のデータと前記ドットデータとが前記画素群の並びに従って配列されているとともに、該ドットデータと該データに先立つデータとの間に、該画素群を構成する画素数より大きな値のデータが挿入された状態で、該ドット個数のデータおよび該ドットデータを前記画像表示装置に出力する手段であり、
前記個数データ受取手段は、前記ドット個数のデータおよび前記ドットデータを、前記ドット個数のデータが前記画素群を構成する画素数よりも大きい場合には、該データはドット個数ではなく、続くデータが前記ドットデータであることを示すものと解釈しながら受け取る手段である
画像表示システム。 - 請求項1記載の画像表示システムであって、
前記個数データ出力手段は、前記ドット個数のデータおよび前記ドットデータとともに、これらデータが、該ドット個数のデータであるか該ドットデータであるかを識別するための識別情報を、前記画像表示装置に出力する手段であり、
前記個数データ受取手段は、前記ドット個数のデータと前記ドットデータとを、前記識別情報に基づいて識別しながら受け取る手段である
画像表示システム。 - 所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより画像を表示する画像表示装置であって、
前記画像データを構成する複数の画素を複数個ずつまとめた各画素群について、該画素群内に形成すべきドットの個数のデータ、または該画素群内の画素毎にドット形成の有無を表したドットデータを、前記画像データとして受け取る画像データ受取手段と、
前記画素群内の画素数を超える数の閾値を有するディザマトリックスが、前記画素群内の画素数に応じた数の閾値を有する複数の閾値群に区分され、該区分された閾値群内の前記閾値の大小関係に応じて、前記画素群を構成する画素間でのドットの形成され易さが規定された序列を複数記憶している序列記憶手段と、
前記記憶されている複数の序列の中から、前記ドット個数のデータを受け取った画素群毎に、該画素群に対応する序列を選択する序列選択手段と、
前記ドット個数のデータと前記選択した序列とに基づいて、または、前記ドットデータに基づいて、前記画素群内でドットが形成される画素位置を該画素群毎に決定する画素位置決定手段と
前記決定した画素位置にドットを形成するドット形成手段と
を備える画像表示装置。 - 請求項4記載の画像表示装置であって、
前記画像データ受取手段は、前記受け取ったドット個数のデータが前記画素群を構成する画素数よりも大きな値のデータである場合に、該データはドット個数ではなく、続くデータが前記ドットデータであることを示すものと解釈しながら、前記画像データを受け取る手段である
画像表示システム。 - ドットを形成して画像を表示する画像表示装置が該ドットの形成を制御するために用いる制御データを、該画像を表す画像データに所定の画像処理を施して生成する画像処理装置であって、
前記画像データを構成する複数の画素を、複数個ずつまとめて画素群を生成する画素群生成手段と、
前記画素群を構成する画素の数を超える閾値を有するディザマトリックスを記憶するディザマトリックス記憶手段と、
前記画素群内の画素間で前記画像データの階調差が所定値以上の場合に、該画素群はエッジを含むと判断し、前記階調差が前記所定値未満の場合に、該画素群はエッジを含まないと判断するエッジ有無判断手段と、
前記エッジを含まないと判断された画素群について、該画素群内に形成されるドットの個数を、該画素群内の各階調値と、前記ディザマトリックス内の該画素群に対応した位置に存在する各閾値とをそれぞれ比較して、前記階調値と前記閾値とが所定の大小関係となる画素の数を検出することにより決定するドット個数決定手段と、
前記エッジを含むと判断された画素群について、該画素群内の画素毎にドット形成の有無を該画素の画像データに基づいて判断することにより、各画素についてのドット形成有無を表すドットデータを生成するドットデータ生成手段と、
前記エッジを含まないと判断された画素群についての前記ドット個数のデータと、前記エッジを含むと判断された画素群についての前記ドットデータとを、前記制御データとして前記画像表示装置に出力する制御データ出力手段と
を備える画像処理装置。 - 請求項6記載の画像処理装置であって、
前記制御データ出力手段は、前記ドット個数のデータと前記ドットデータとが前記画素群の並びに従って配列されているとともに、該ドットデータと該データに先立つデータとの間に、該画素群を構成する画素数より大きな値のデータが挿入された状態で、前記制御データを出力する手段である
画像処理装置。 - 画像データに所定の画像処理を施して、得られた結果に基づきドットを形成することによって、画像を表示する画像表示制御方法であって、
前記画像を構成する複数の画素を、複数個ずつまとめて画素群を生成する第1の工程と、
前記画素群内の画素間で前記画像データの階調差が所定値以上の場合に、該画素群はエッジを含むと判断し、前記階調差が前記所定値未満の場合に、該画素群はエッジを含まないと判断する第2の工程と、
前記エッジを含まないと判断された画素群について、該画素群内に形成されるドットの個数を、前記画素群内の画像データに基づいて決定する第3の工程と、
前記エッジを含むと判断された画素群について、該画素群内の画素毎にドット形成の有無を該画素の画像データに基づいて判断することにより、各画素についてのドット形成有無を表すドットデータを生成する第4の工程と、
前記画素群内の画素数を超える数の閾値を有するディザマトリックスが、前記画素群内の画素数に応じた数の閾値を有する複数の閾値群に区分され、該区分された閾値群内の前記閾値の大小関係に応じて、前記画素群を構成する画素間でのドットの形成され易さが規定された序列が複数記憶されている中から、前記ドット個数が決定された画素群毎に、該画素群に対応する序列を選択する第5の工程と、
前記ドット個数のデータと前記選択した序列とに基づいて、または、前記ドットデータに基づいて、前記画素群内でドットが形成される画素位置を該画素群毎に決定する第6の工程と、
前記決定した画素位置にドットを形成する第7の工程と
を備える画像表示制御方法。 - 請求項8記載の画像表示制御方法であって、
前記ドット個数のデータと前記ドットデータとを前記画素群の並びに従って配列するとともに、該ドットデータと該データに先立つデータとの間に、該画素群を構成する画素数より大きな値のデータを挿入した状態で、前記第5の工程に供給する第8の工程を備えるとともに、
前記第5の工程は、前記ドット個数のデータが前記画素群を構成する画素数よりも大きい場合には、該データはドット個数ではなく、続くデータが前記ドットデータであることを示していると解釈する第9の工程を更に備えている
画像表示制御方法。 - 所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより画像を表示する画像表示方法であって、
前記画像データを構成する複数の画素を複数個ずつまとめた各画素群について、該画素群内に形成すべきドットの個数のデータ、または、該画素群内の画素毎にドット形成の有無を表したドットデータを、前記画像データとして受け取る工程(A)と、
前記画素群内の画素数を超える数の閾値を有するディザマトリックスが、前記画素群内の画素数に応じた数の閾値を有する複数の閾値群に区分され、該区分された閾値群内の前記閾値の大小関係に応じて、前記画素群を構成する画素間でのドットの形成され易さが規定された序列が複数記憶されている中から、前記ドット個数のデータを受け取った画素群毎に、該画素群に対応する序列を選択する工程(B)と、
前記ドット個数のデータと前記選択した序列とに基づいて、または、前記ドットデータに基づいて、前記画素群内でドットが形成される画素位置を該画素群毎に決定する工程(C)と、
前記決定した画素位置にドットを形成する工程(D)と
を備える画像表示方法。 - ドットを形成して画像を表示する画像表示装置が該ドットの形成を制御するために用いる制御データを、該画像を表す画像データに所定の画像処理を施して生成する画像処理方法であって、
前記画像データを構成する複数の画素を、複数個ずつまとめて画素群を生成する工程(イ)と、
前記画素群内の画素間で前記画像データの階調差が所定値以上の場合に、該画素群はエッジを含むと判断し、前記階調差が前記所定値未満の場合に、該画素群はエッジを含まないと判断する工程(ロ)と、
前記画像表示装置は、前記画素群を構成する画素の数を超える閾値を有するディザマトリックスを記憶しており、前記エッジを含まないと判断された画素群について、該画素群内に形成されるドットの個数を、該画素群内の各階調値と、前記ディザマトリックス内の該画素群に対応した位置に存在する各閾値とをそれぞれ比較して、前記階調値と前記閾値とが所定の大小関係となる画素の数を検出することにより決定する工程(ハ)と、
前記エッジを含むと判断された画素群について、該画素群内の画素毎にドット形成の有無を該画素の画像データに基づいて判断することにより、各画素についてのドット形成有無を表すドットデータを生成する工程(ニ)と、
前記エッジを含まないと判断された画素群についての前記ドット個数のデータと、前記エッジを含むと判断された画素群についての前記ドットデータとを、前記制御データとして前記画像表示装置に出力する工程(ホ)と
を備える画像処理方法。 - 画像データに所定の画像処理を施して、得られた結果に基づきドットを形成することによって、画像の表示を制御するためのプログラムであって、
前記画像データを構成する複数の画素を、複数個ずつまとめて画素群を生成する第1の機能と、
前記画素群内の画素間で前記画像データの階調差が所定値以上の場合に、該画素群はエッジを含むと判断し、前記階調差が前記所定値未満の場合に、該画素群はエッジを含まないと判断する第2の機能と、
前記エッジを含まないと判断された画素群について、該画素群内に形成されるドットの個数を、前記画素群内の画像データに基づいて決定する第3の機能と、
前記エッジを含むと判断された画素群について、該画素群内の画素毎にドット形成の有無を該画素の画像データに基づいて判断することにより、各画素についてのドット形成有無を表すドットデータを生成する第4の機能と、
前記画素群内の画素数を超える数の閾値を有するディザマトリックスが、前記画素群内の画素数に応じた数の閾値を有する複数の閾値群に区分され、該区分された閾値群内の前記閾値の大小関係に応じて、前記画素群を構成する画素間でのドットの形成され易さが規定された序列が複数記憶されている中から、前記ドット個数が決定された画素群毎に、該画素群に対応する序列を選択する第5の機能と、
前記ドット個数のデータと前記選択した序列とに基づいて、または、前記ドットデータに基づいて、前記画素群内でドットが形成される画素位置を該画素群毎に決定する第6の機能と、
前記決定した画素位置にドットを形成する第7の機能と
をコンピュータに実現させるためのプログラム。 - 請求項12記載のプログラムであって、
前記ドット個数のデータと前記ドットデータとを前記画素群の並びに従って配列するとともに、該ドットデータと該データに先立つデータとの間に、該画素群を構成する画素数より大きな値のデータを挿入した状態で、前記第5の機能に供給する第8の機能と、
前記第5の機能において、前記ドット個数のデータが前記画素群を構成する画素数よりも大きい場合には、該データはドット個数ではなく、続くデータが前記ドットデータであることを示していると解釈する第9の機能と
を更にコンピュータに実現させるためのプログラム。 - 所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより画像を表示するためのプログラムであって、
前記画像データを構成する複数の画素を複数個ずつまとめた各画素群について、該画素群内に形成すべきドットの個数のデータまたは、該画素群内の画素毎にドット形成の有無を表したドットデータを、前記画像データとして受け取る機能(A)と、
前記画素群内の画素数を超える数の閾値を有するディザマトリックスが、前記画素群内の画素数に応じた数の閾値を有する複数の閾値群に区分され、該区分された閾値群内の前記閾値の大小関係に応じて、前記画素群を構成する画素間でのドットの形成され易さが規定された序列が複数記憶されている中から、前記ドット個数のデータを受け取った画素群毎に、該画素群に対応する序列を選択する機能(B)と、
前記ドット個数のデータと前記選択した序列とに基づいて、または、前記ドットデータに基づいて、前記画素群内でドットが形成される画素位置を該画素群毎に決定する機能(C)と、
前記決定した画素位置にドットを形成する機能(D)と
をコンピュータに実現させるためのプログラム。 - ドットを形成して画像を表示する画像表示装置が該ドットの形成を制御するために用いる制御データを、該画像を表す画像データに所定の画像処理を施して生成するためのプログラムであって、
前記画像データを構成する複数の画素を、複数個ずつまとめて画素群を生成する機能(イ)と、
前記画素群内の画素間で前記画像データの階調差が所定値以上の場合に、該画素群はエッジを含むと判断し、前記階調差が前記所定値未満の場合に、該画素群はエッジを含まないと判断する機能(ロ)と、
前記画像表示装置は、前記画素群を構成する画素の数を超える閾値を有するディザマトリックスを記憶しており、前記エッジを含まないと判断された画素群について、該画素群内に形成されるドットの個数を、該画素群内の各階調値と、前記ディザマトリックス内の該画素群に対応した位置に存在する各閾値とをそれぞれ比較して、前記階調値と前記閾値とが所定の大小関係となる画素の数を検出することにより決定する機能(ハ)と、
前記エッジを含むと判断された画素群について、該画素群内の画素毎にドット形成の有無を該画素の画像データに基づいて判断することにより、各画素についてのドット形成有無を表すドットデータを生成する機能(ニ)と、
前記エッジを含まないと判断された画素群についての前記ドット個数のデータと、前記エッジを含むと判断された画素群についての前記ドットデータとを、前記制御データとして前記画像表示装置に出力する機能(ホ)と
をコンピュータに実現させるためのプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003087198A JP4059121B2 (ja) | 2003-03-27 | 2003-03-27 | 所定領域内に形成されるドット個数の情報に基づいて画像を表示する画像表示システム |
US10/810,062 US20060132849A1 (en) | 2003-03-27 | 2004-03-26 | Technique for image data recording |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003087198A JP4059121B2 (ja) | 2003-03-27 | 2003-03-27 | 所定領域内に形成されるドット個数の情報に基づいて画像を表示する画像表示システム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2004297451A JP2004297451A (ja) | 2004-10-21 |
JP2004297451A5 JP2004297451A5 (ja) | 2006-05-18 |
JP4059121B2 true JP4059121B2 (ja) | 2008-03-12 |
Family
ID=33401627
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003087198A Expired - Fee Related JP4059121B2 (ja) | 2003-03-27 | 2003-03-27 | 所定領域内に形成されるドット個数の情報に基づいて画像を表示する画像表示システム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20060132849A1 (ja) |
JP (1) | JP4059121B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4561049B2 (ja) * | 2003-06-20 | 2010-10-13 | セイコーエプソン株式会社 | 所定領域内に形成されるドット個数の情報に基づいて画像を印刷する印刷システム |
US7876477B2 (en) * | 2006-06-28 | 2011-01-25 | Panasonic Corporation | Image reading method and image expansion method |
JP4952627B2 (ja) * | 2008-03-21 | 2012-06-13 | 富士通株式会社 | 画像処理装置、画像処理方法および画像処理プログラム |
KR102415312B1 (ko) * | 2017-10-30 | 2022-07-01 | 삼성디스플레이 주식회사 | 색 변환 장치, 이를 포함하는 표시 장치, 및 색 변환 방법 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001308955A (ja) * | 2000-04-20 | 2001-11-02 | Sharp Corp | 伝送方法 |
JP4053345B2 (ja) * | 2002-04-25 | 2008-02-27 | シャープ株式会社 | 画像処理方法および画像処理装置、それを備える画像形成装置ならびにプログラムおよび記録媒体 |
JP2004350257A (ja) * | 2003-03-27 | 2004-12-09 | Seiko Epson Corp | 所定領域内に形成されるドット個数の情報に基づいて画像を表示する画像表示システム |
JP4297000B2 (ja) * | 2004-06-28 | 2009-07-15 | セイコーエプソン株式会社 | 複数画素ずつ多値化を行いながら画像を出力する画像出力システム |
JP4297006B2 (ja) * | 2004-07-29 | 2009-07-15 | セイコーエプソン株式会社 | 複数画素ずつ多値化を行いながら画像を出力する画像出力システム |
-
2003
- 2003-03-27 JP JP2003087198A patent/JP4059121B2/ja not_active Expired - Fee Related
-
2004
- 2004-03-26 US US10/810,062 patent/US20060132849A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
JP2004297451A (ja) | 2004-10-21 |
US20060132849A1 (en) | 2006-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4375235B2 (ja) | 複数画素ずつコード化しながら画像を出力する画像出力システム | |
JP3912055B2 (ja) | 画像処理装置、印刷制御装置、画像処理方法、および記録媒体 | |
JP4241823B2 (ja) | ドットデータ処理装置、画像出力システムおよびそれらの方法 | |
US20110149304A1 (en) | Image Output Control System, Image Processing Device, and Image Processing Method | |
CN100379250C (zh) | 进行彩色图像数据转换的图像处理装置和图像处理方法 | |
JP4375398B2 (ja) | 複数画素ずつ多値化を行う画像処理装置 | |
JP4534964B2 (ja) | 画像形成方法、画像形成装置、画像形成システム、印刷物の生成方法および画像形成装置を制御するためのコンピュータプログラム | |
JP2004350257A (ja) | 所定領域内に形成されるドット個数の情報に基づいて画像を表示する画像表示システム | |
JP4297033B2 (ja) | 複数画素ずつ多値化を行う画像処理装置 | |
JP4375050B2 (ja) | 所定領域内に形成されるドット個数の情報に基づいて画像を出力する画像出力システム | |
JP3666427B2 (ja) | 画像処理装置、印刷制御装置、画像処理方法、および記録媒体 | |
JP4059121B2 (ja) | 所定領域内に形成されるドット個数の情報に基づいて画像を表示する画像表示システム | |
JP4274030B2 (ja) | 画像出力システム、画像処理装置、画像出力装置およびそれらの方法 | |
JP4297006B2 (ja) | 複数画素ずつ多値化を行いながら画像を出力する画像出力システム | |
JP4375071B2 (ja) | 所定領域内に形成されるドット個数の情報に基づいて画像を出力する画像出力システム | |
JP4297000B2 (ja) | 複数画素ずつ多値化を行いながら画像を出力する画像出力システム | |
JP2005224983A (ja) | 所定領域内に形成されるドット個数の情報に基づいて画像を出力する画像出力システム | |
JP2006229810A (ja) | 複数画素ずつコード化しながら画像を出力する画像出力システム | |
JP4561049B2 (ja) | 所定領域内に形成されるドット個数の情報に基づいて画像を印刷する印刷システム | |
US20070041054A1 (en) | Image output control system, image output device, and image processing device | |
JP4225320B2 (ja) | 画像出力制御システム、画像出力装置、画像処理装置およびそれらの方法 | |
JP2011044821A (ja) | 画像処理装置 | |
JP3823859B2 (ja) | 複数画素単位で画像データを変換する画像処理装置 | |
JP2006191268A (ja) | 複数画素ずつ画像処理を行いながら画像を出力する画像出力装置 | |
JP2005039491A (ja) | 所定領域内に形成されるドット個数の情報に基づいて画像を表示する画像表示システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060323 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060323 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070619 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070626 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070821 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20071127 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071210 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101228 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101228 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111228 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111228 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121228 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121228 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131228 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |