JP4225320B2 - 画像出力制御システム、画像出力装置、画像処理装置およびそれらの方法 - Google Patents

画像出力制御システム、画像出力装置、画像処理装置およびそれらの方法 Download PDF

Info

Publication number
JP4225320B2
JP4225320B2 JP2005504135A JP2005504135A JP4225320B2 JP 4225320 B2 JP4225320 B2 JP 4225320B2 JP 2005504135 A JP2005504135 A JP 2005504135A JP 2005504135 A JP2005504135 A JP 2005504135A JP 4225320 B2 JP4225320 B2 JP 4225320B2
Authority
JP
Japan
Prior art keywords
pixel
pixel group
dots
data
image
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
Application number
JP2005504135A
Other languages
English (en)
Other versions
JPWO2004086750A1 (ja
Inventor
繁明 角谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Publication of JPWO2004086750A1 publication Critical patent/JPWO2004086750A1/ja
Application granted granted Critical
Publication of JP4225320B2 publication Critical patent/JP4225320B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/40Picture signal circuits
    • H04N1/405Halftoning, i.e. converting the picture signal of a continuous-tone original into a corresponding signal showing only two levels
    • H04N1/4051Halftoning, i.e. converting the picture signal of a continuous-tone original into a corresponding signal showing only two levels producing a dispersed dots halftone pattern, the dots having substantially the same size
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/40Picture signal circuits
    • H04N1/405Halftoning, i.e. converting the picture signal of a continuous-tone original into a corresponding signal showing only two levels
    • H04N1/4055Halftoning, 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/4057Halftoning, 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • H04N1/4105Bandwidth or redundancy reduction for halftone screened pictures

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Image Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)

Description

この発明は、画像データに所定の画像処理を施して画像を出力する技術に関し、詳しくは、画像処理が施された画像データを画像出力装置に迅速に転送することによって、画像の出力を迅速化する技術に関する。
印刷媒体や液晶画面といった各種の出力媒体上にドットを形成することで画像を表現する画像出力装置は、各種画像機器の出力装置として広く使用されている。これら画像出力装置では、画像は画素と呼ばれる小さな領域に細分された状態で扱われており、ドットはこれら画素に形成される。ドットを画素に形成した場合、もちろん個々の画素については、ドットが形成されているか、いないかのいずれかの状態しか取り得ない。しかし、画像全体として見れば、ドットが密に形成されている領域や、まばらに形成されている領域を生じさせることが可能であり、従って、ドットの形成密度を変えることによって画像を出力することが可能となる。例えば、印刷用紙上に黒いインクのドットを形成する場合、ドットが密に形成されている領域は暗く見えるし、逆にドットがまばらに形成されている領域は明るく見える。また、液晶画面に輝点のドットを形成する場合、ドットが密に形成された領域は明るく見え、まばらに形成された領域は暗く見える。従って、ドットの形成密度を適切に制御してやれば、多階調の画像を出力することが可能となる。
ドットの形成密度を制御するためのデータは、出力しようとしている画像のデータに対して、所定の画像処理を施すことによって発生させる。得られたデータは画像処理装置に供給され、画像処理装置では、供給されたデータに従って各画素にドットを形成する。この結果、出力媒体上に適切な密度でドットが形成され、画像が出力されることになる。
近年では、これら画像出力装置には、出力画像の高画質化や大画像化が要請されるようになってきた。高画質化の要請に対しては、画像をより細かな画素に分割することが効果的である。こうして画素を小さくすれば、画素に形成されるドットが目立たなくなって画質を向上させることができる(例えば、下記特許文献1)。また、大画像化の要請に対しては、画素数の増加によって対応する。もちろん、個々の画素を大きくすることによっても出力画像を大きくすることはできるが、これでは画質の低下を招いてしまうので、大型化の要請に対しては画素数を増加させることが効果的である。
特開2000−115716号公報
しかし、出力画像の高画質化や大画像化の要請に応えようとすると、いきおい画像を迅速に出力することが困難になるという問題があった。すなわち、大画像化のために画素数を増加した場合はもちろんのこと、画像の高画質化のために個々の画素を小さくした場合も、結果として1つの画像に含まれる画素数が増加する。前述したように、画像出力装置は、ドットの形成を制御するデータの供給を受けて画像を出力するので、1つの画像に含まれる画素数が増加すると、データの供給に要する時間が増加してしまい、画像を迅速に出力することが困難となるのである。
この発明は、従来技術における上述した課題を踏まえ、ドットの形成を制御するためのデータを画像出力装置に迅速に供給することで、画像の出力を迅速化させることを可能とすることを目的とする。
上述した目的を達成するために、本発明の第1の画像出力制御システムは、次の構成を採用した。すなわち、
画像を構成する画素毎の階調値からなる画像データに所定の画像処理を施す画像処理装置と、該画像処理の結果に基づいてドットを形成することにより画像を出力する画像出力装置と、を備える画像出力制御システムであって、
前記画像処理装置は、
前記画像から、該画像を構成する画素が複数個ずつまとめられた画素群を順次取り出す画素群生成手段と、
前記画素群を構成する各画素の階調値を、前記画素群に含まれる画素の数より多い数の閾値を二次元的に配列したディザマトリックスの対応する閾値と比較することにより、前記画素群内に形成されるドットの個数を決定するドット個数決定手段と、
前記画素群毎に決定したドット個数のデータを、前記画像出力装置に供給する個数データ供給手段と
を備えており、
前記画像出力装置は、
前記各画素群についてのドット個数のデータを受け取る個数データ受取手段と、
前記画素群内で各画素にドットが形成される画素の序列を前記画素群毎に特定する序列特定手段と、
前記ドット個数のデータと前記特定した序列とに基づいて、前記画素群内でドットが形成される画素位置を該画素群毎に決定する画素位置決定手段と、
前記決定した画素位置に基づいてドットを形成するドット形成手段と
を備えることを要旨とする。
また、上記の画像出力制御システムに対応する第1の本発明の画像出力制御方法は、
画像を構成する画素毎の階調値からなる画像データに所定の画像処理を施して、得られた結果に基づきドットを形成することによって、画像を出力する画像出力制御方法であって、
前記画像から、該画像を構成する画素が複数個ずつまとめられた画素群を順次取り出すと共に、前記画素群を構成する各画素の階調値を、前記画素群に含まれる画素の数より多い数の閾値を二次元的に配列したディザマトリックスの対応する閾値と比較することにより、前記画素群内に形成されるドットの個数を決定する第1の工程と、
前記画素群内で各画素にドットを形成する画素の序列を前記画素群毎に特定する第2の工程と、
前記決定したドットの個数と前記選択した序列とに基づいて、前記画素群内でドットが形成される画素位置を該画素群毎に決定する第3の工程と、
前記決定した画素位置に基づいてドットを形成する第4の工程と
を備えることを要旨とする。
かかる本発明の画像出力制御システムおよび画像出力制御方法においては、複数の画素から構成される画素群毎に、該画素群内に形成すべきドットの個数のデータを生成する。また、画素群内で各画素にドットが形成される画素の序列を特定する。そして、ドットを形成するに際しては、特定した序列と、画素群のドット個数のデータとに基づいて、該画素群内でドットが形成される画素位置を決定する。こうして決定した画素位置に基づいてドットを形成する。
画素群内に形成するドットの個数は、画素群内の各画素についてのドット形成の有無よりも僅かなデータ量で表すことができる。従って、画像データを、画素群のドット個数のデータに一旦変換しておけば、データの転送量が減少して速やかに転送することができる。このため、例え画素数の多い画像であっても、僅かな時間でデータ転送が完了して、迅速に画像を出力することが可能となる。
また、画素群内での画素位置は、ドット個数のデータと、画素の序列、すなわち、該画素群内で各画素にどのような順序でドットが形成されるかを表す序列とに基づいて決定される。ここで、画素位置の決定に際しては、画素群毎に特定された序列を用いて画素位置が決定される。このため、例え、同じ個数のドットが形成される画素群が連続した場合でも、画素群毎に異なる画素位置にドットが形成されることになる。従って、規則的なパターンで形成されているドットが目立つことがなく、画質を悪化させるおそれを回避することができる。
尚、ドット個数のデータを供給するに際しては、コード化した状態で供給することとしてもよい。そして、このデータを画素群内に形成すべきドットの個数に復号してから画素位置を決定してもよい。ドット個数のデータをコード化すれば、データ量を圧縮して効率よくデータを転送することが可能となり、延いては迅速に画像を出力することが可能となる。
こうした第1の画像処理システムおよび画像処理方法においては、次のようにしても良い。先ず、ドット個数を決定するに際しては、二次元的に配列された画素の各々に閾値を対応付けたディザマトリックスに基づいて、前記画素群内に形成すべきドットの個数を決定する。次に、画素位置を決定するに際しては、前記ドット個数の決定に用いたディザマトリックスを複数の画素群に分割し、該画素群内の各画素に対応付けられた閾値の大小関係に基づいて画素群毎に決定された画素の序列を特定する。そして、複数記憶しておいた該序列の中から、画像上での画素群の位置に対応した1の序列を選択し、選択した序列とドット個数とに基づいて画素位置を決定することとしてもよい。
ディザマトリックスを用いれば、ドット個数を迅速に決定することができる。また、ドット個数から画素位置を決定するために用いる序列を、ドット個数の決定に用いたディザマトリックスと同じマトリックスに基づいて設定しておけば、ドット個数を決定する処理と画素位置を決定する処理とが自ずから整合するので、画素位置を適切に決定することができ、延いては画像を高い画質で出力することが可能となる。ディザマトリックスとしては、分散型や密集型のものはもとより、ブルーノイズマトリックス、あるいはグリーノイズマトリックスなどの種々のマトリックスを用いることができる。こうしたディザマトリックスを用いれば、形成されるドットは、各マトリックスの有する特徴を備えたものとなる。
また、本発明の目的を達成するために、本発明の画像出力装置は、次の構成を採用した。すなわち、
複数の閾値を二次元的に配列したディザマトリックスを用いてハーフトーン処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、画像を出力する画像出力装置であって、
前記画像データとして、前記画像を構成する複数の画素が所定の複数個ずつ画素群としてまとめられた状態で、前記ハーフトーン処理の結果として得られた該画素群内に形成すべきドットの個数のデータを受け取る個数データ受取手段と、
前記ハーフトーン処理に用いた前記ディザマトリックスを前記画素群に対応した大きさに分割し、該分割されたディザマトリックス内の閾値の大小関係に基づいて前記分割されたディザマトリックス毎に決定された画素の序列を、複数の序列として記憶している手段と、
前記個数のデータを受け取った画素群毎に、該画素群内各画素にドット形成する序列を、前記記憶している複数種類の序列の中から特定する序列特定手段と、
前記受け取ったドット個数のデータと前記特定した序列とに基づいて、前記画素群内でドットが形成される画素位置を、該画素群毎に決定する画素位置決定手段と、
前記決定した画素位置に基づいて、ドットを形成するドット形成手段と
を備えることを要旨とする。
また、上記の画像出力装置に対応する本発明の画像出力方法は、
複数の閾値を二次元的に配列したディザマトリックスを用いてハーフトーン処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、画像を出力する画像出力方法であって、
前記画像データとして、前記画像を構成する複数の画素が所定の複数個ずつ画素群としてまとめられた状態で、前記ハーフトーン処理の結果として得られた該画素群内に形成すべきドットの個数のデータを受け取る工程(A)と、
前記ハーフトーン処理に用いた前記ディザマトリックスを前記画素群に対応した大きさに分割し、該分割されたディザマトリックス内の閾値の大小関係に基づいて前記分割されたディザマトリックス毎に決定された画素の序列を、複数の序列として記憶しておき、前記個数のデータを受け取った画素群毎に、該画素群内各画素にドット形成する序列を、前記記憶している複数種類の序列の中から特定する工程(B)と、
前記受け取ったドット個数のデータと前記選択した序列とに基づいて、前記画素群内でドットが形成される画素位置を、該画素群毎に決定する工程(C)と、
前記決定した画素位置に基づいて、ドットを形成する工程(D)
を備えることを要旨とする。
かかる本発明の画像出力装置および画像出力方法においては、画素群に形成すべきドット個数のデータを受け取り、このデータに基づいて画素群内でドットが形成される画素位置を決定し、決定した画素位置にドットを形成することによって画像を出力する。
前述したように、画素群内に形成するドットの個数は、画素群内の各画素についてのドット形成の有無よりも僅かなデータ量で表すことができる。このため、上述したようにして画像を出力することとすれば、例え画素数の多い画像であっても、データを迅速に受け取ることができるので、速やかに画像を出力することが可能となる。
また、画素群内での画素位置を決定するために用いられる画素の序列は、画素群毎に特定されるので、例え、同じ個数のドットが形成される画素群が連続した場合でも、画素群毎に異なる画素位置が決定される。このため、規則的なパターンで形成されたドットが目立って、画質を悪化させるおそれがない。
尚、ドット個数のデータを受け取るに際しては、コード化された状態のデータを受け取って、これを画素群内に形成すべきドットの個数を示すデータに復号化した後、画素位置を決定することとしても良い。ドット個数のデータをコード化すれば、データ量を圧縮することができるので、ドット個数のデータを効率よく受け取ることが可能となり、画像をより迅速に出力することが可能となる。
こうした画像出力装置および画像出力方法においては、互いに隣接し且つ所定の位置関係にある複数の画素を、前記画素群としてまとめることとしても良い。
画素群としてまとめられる画素は、必ずしも互いに隣接している必要はないが、互いに隣接し且つ所定の位置関係にある画素を画素群としてまとめておけば、ドット個数を決定したり、あるいは画素群内での画素位置を決定する処理が容易になるので好ましい。
更にこうした画像出力装置および画像出力方法においては、前記複数の序列を、該序列が所定の順序で二次元的に配列された序列マトリックスの形態で記憶しておき、画素位置を決定するに際しては、該序列マトリックスに記憶された複数の序列の中から、画像上での画素群の位置に対応した1の序列を選択して、画素位置を決定することとしても良い。
この様にした場合、序列マトリックスに記憶される複数の序列を適切な順序で配列しておくことで、複数の画素群間に亘って適切な画素位置が得られるようにすることができる。その結果、形成されるドットの分布が改善されて、画像を高い画質で出力することが可能となる。
また、こうした序列マトリックスは、次のようにして、ディザマトリックスに基づいて設定することができる。先ず、ディザマトリックスを複数の画素群に分割する。こうして得られた画素群は複数の画素が含まれており、各画素にはディザマトリックスの閾値が対応付けられている。これら閾値の大小関係に基づいて、画素群内の各画素の序列を画素群毎に設定してやる。
ディザマトリックスの閾値は、形成されるドットが適切な分布となるように設定されているので、こうしてディザマトリックスに基づいて設定した序列マトリックスを用いれば、ドットが適切に分布した高画質の画像を出力することが可能となる。
また、画素群内でドットを形成する画素位置を決定するに際しては、次のようにして決定しても良い。すなわち、画素群内の各画素にドットが形成される順番たる順序値を、選択した序列に基づいて画素毎に決定する。そして、画素群についてのドット個数のデータと、決定した順序値とを比較することにより、その画素群内でドットが形成される画素位置を検出することとしてもよい。
こうすれば、ある画素の順序値とドット個数とを比較するだけで、その画素にドットが形成されるか否かを直ちに判断することができる。例えば、ある画素群にN個のドットが形成されるものとして、順序値が小さいほどドットが形成され易いものとすれば、順序値が1番からN番までの画素にはドットが形成されると考えることができる。従って、この場合は、順序値がドット個数以下の画素を検出することで、ドットが形成される画素位置を迅速に決定することが可能となる。
あるいは、次のようにして画素位置を決定することとしても良い。先ず、画素群に含まれる画素数をNとして、該画素群に形成されるドット個数をMとしたときに、ドットを形成することを意味するM個の連続するデータと、ドットを形成しないことを意味するN−M個の連続するデータとからなる中間データを生成する。こうした中間データは、画素群に形成されるドット個数のデータから容易に生成することができる。次いで、該画素群内の各画素にドットが形成される順番たる順序値を、前記選択した序列に基づいて画素毎に決定する。そして、該順序値に基づいて前記中間データから該当するデータを読み出すことにより、該画素群内でドットが形成される画素位置を検出することとしてもよい。
こうすれば、中間データから順序値に該当する部分のデータを読み出すだけで、その画素にドットが形成されるか否かを直ちに判断することができるので、ドットが形成される画素位置を迅速に決定することが可能となる。
また、中間データから該当するデータを読み出す際には、次のようにしても良い。先ず、中間データを、ドットを形成することを意味するデータが割り当てられている方向に、前記順序値に相当する個数のデータだけシフトさせる。その後、該移動した側の端部にあるデータを該当するデータとして読み出すこととしても良い。
このように中間データをシフトさせれば、常に中間データの端部にあるデータを読み出せばよいので、該当するデータを簡便に読み出すことが可能となって好適である。
更に、本発明の目的を達成するために、本発明の第1の画像処理装置は、次の構成を採用した。すなわち、
ドットを形成して画像を出力する画像出力装置が該ドットの形成を制御するために用いる制御データを、該画像を表す画像データに所定の画像処理を施して生成する画像処理装置であって、
前記画像から、該画像を構成する画素が複数個ずつまとめられた画素群を順次取り出す画素群生成手段と、
前記画素群を構成する各画素の階調値を、前記画素群に含まれる画素の数より多い数の閾値を二次元的に配列したディザマトリックスの対応する閾値と比較することにより、画素群内に形成すべきドットの個数を求めるための対応関係を、少なくとも複数の該画素群について該画素群毎に異ならせた状態で決定するドット個数決定手段と、
前記画素群毎に決定したドット個数のデータを、前記制御データとして前記画像出力装置に供給する個数データ供給手段と
を備えたことを要旨とする。
また、上述した画像処理装置に対応する本発明の第1の画像処理方法は、
ドットを形成して画像を出力する画像出力装置が該ドットの形成を制御するために用いる制御データを、該画像を表す画像データに所定の画像処理を施して生成する画像処理方法であって、
前記画像から、該画像を構成する画素が複数個ずつまとめられた画素群を順次取り出す工程(a)と、
前記画素群を構成する各画素の階調値を、前記画素群に含まれる画素の数より多い数の閾値を二次元的に配列したディザマトリックスの対応する閾値と比較することにより、画素群内に形成すべきドットの個数を求めるための対応関係を、少なくとも複数の該画素群について該画素群毎に異ならせた状態で決定する工程(b)と、
前記画素群毎に決定したドット個数のデータを、前記制御データとして前記画像出力装置に供給する工程(c)と
を備えることを要旨とする。
かかる本発明の第1の画像処理装置および第1の画像処理方法においては、複数の画素群に亘って、同じ画像データが連続するような場合でも、異なる個数データを出力することができる。このため、画像出力装置では、複数の画素群に亘って同じ位置にドットが形成されることを回避することができるので、規則的なパターンでドットが形成されることによる画質の悪化を確実に回避することが可能となる。
また、画素群内に形成するドットの個数は、画素群内の各画素についてのドット形成の有無よりも僅かなデータ量で表すことができる。このため、こうすれば、例え画素数の多い画像であっても、画像出力装置に迅速にデータを供給して、迅速に画像を出力させることが可能となる。
また、ドットの個数を決定するに際しては、画素群にまとめられた画素の画像データと、該画素群にまとめられた画素数に相当する複数の閾値とを比較することによって、ドットの個数を決定することとしてもよい。ここで、複数の閾値は、画素群を構成する画素と同じ並びで閾値が配列されたマトリックスとすることもできるし、あるいは、単に複数の閾値からなる閾値の集合または数列とすることもできる。
こうすれば、複数組の閾値を設定しておくことで、画素群内に形成すべきドットの個数を、簡便に且つ適切に決定することが可能となる。
尚、制御データを供給するに際しては、ドット個数のデータを一旦、コード化してから供給することとしてもよい。ドット個数のデータをコード化すれば、データ量を圧縮することができるので、制御データを効率よく供給することが可能となる。
こうした画像処理装置および画像処理方法においては、画素を所定の複数個ずつまとめることによって、前記画像を分割する複数の画素群を生成するとともに、該画素群に形成すべきドットの個数を、該画素群にまとめられた画素の画像データに基づいて画素群毎に決定することとしてもよい。
画素群のドット個数を決定するに際しては、初めに、各画素についてドット形成の有無を判断して記憶しておき、次いで、判断結果に基づいて画素群毎にドット個数を決定することも可能である。しかし、初めに画像を複数の画素群に分割し、各画素群の画像データから画素群毎にドット個数を決定していけば、多数の画素についての判断結果を記憶しておく必要がなくなるので好ましい。
第1の画像処理装置および画像処理方法で、画素群にまとめられた画像データと画素群のドット個数との対応関係を、画素群毎に異ならせる態様としては、種々の態様を取ることができるが、次のようにしてもよい。すなわち、画素群に形成すべきドットの個数を決定することによって画素群にまとめられた画像データに対して発生する階調誤差が、少なくとも所定範囲内の画素群間では互いに相殺するようにしてもよい。こうしたことは、例えば、画像データにノイズを付加するなど、種々の方法を適用することができるが、前述したようにディザマトリックスに基づいてドット個数を決定することによっても実現することができる。
このように、画素群で生じた階調誤差が、少なくとも所定範囲内の画素群間で互いに相殺させれば、誤差を減少させることができるので、出力画質を改善することが可能となる。
また、本発明の目的を達成するために、本発明の第2の画像処理装置は、次の構成を採用した。すなわち、
ドットを形成して画像を出力する画像出力装置が該ドットの形成を制御するために用いる制御データを、該画像を表す画像データに所定の画像処理を施して生成する画像処理装置であって、
ハーフトーン処理を行なうための閾値であり、該閾値の取り得る範囲より大きな個数の閾値を二次元的に配列したディザマトリックスを記憶しておくディザマトリックス記憶手段と、
前記画像を構成する複数の画素を所定の複数個ずつまとめて画素群を生成する画素群生成手段と、
前記画素群にまとめられた各画素の階調値と、前記ディザマトリックス中の前記画素に対応する位置の前記閾値とを比較することによって、該画素群に形成すべきドット個数を決定するドット個数決定手段と、
前記画素群毎に決定したドット個数のデータを、前記制御データとして前記画像出力装置に供給する個数データ供給手段と
を備えたことを要旨としている。
こうしてディザマトリックスの閾値と比較することによって、各画素群のドット個数を決定してやれば、画像データに応じてドット個数を適切に決定することができ、延いては高い画質で画像を出力させることが可能となるので好ましい。
更に本発明は、コンピュータによって実行され、上述した画像出力制御方法、画像出力方法あるいは画像処理方法を実現するためのプログラムとして把握することも可能である。従って、本発明は次のようなプログラム、あるいは該プログラムを記録した記録媒体としての態様も含んでいる。すなわち、上述した画像出力制御方法に対応する本発明のプログラムは、
コンピュータにより実行され、画像を構成する画素毎の階調値からなる画像データに所定の画像処理を施して、得られた結果に基づきドットを形成することによって画像を出力するためのプログラムであって、
前記画像から、該画像を構成する画素が複数個ずつまとめられた画素群を順次取り出すと共に、前記画素群を構成する各画素の階調値を、前記画素群に含まれる画素の数より多い数の閾値を二次元的に配列したディザマトリックスの対応する閾値と比較することにより、前記画素群内に形成されるドットの個数を決定する第1の機能と、
前記画素群内で各画素にドットを形成する画素の序列を、画素群毎に特定する第2の機能と、
前記決定したドットの個数と前記選択した序列とに基づいて、前記画素群内でドットが形成される画素位置を該画素群毎に決定する第3の機能と、
前記決定した画素位置に基づいてドットを形成する第4の機能と
をコンピュータにより実現することを要旨とする。
こうしたプログラムが実現する前記第1の機能および前記第2の機能は、次のようなものとすることもできる。すなわち、該第1の機能は、二次元的に配列された画素の各々に閾値を対応付けたディザマトリックスに基づいて、前記画素群内に形成すべきドットの個数を決定する機能である。また、該第2の機能は、前記ドット個数の決定に用いたディザマトリックスを複数の画素群に分割し、該画素群内の各画素に対応付けられた閾値の大小関係に基づいて画素群毎に決定された画素の序列を特定する機能と、前記ディザマトリックスの画素群毎に記憶されている序列の中から、前記画像上での画素群の位置に対応した1の序列を選択する機能とを実現する機能とすることもできる。
あるいは、本発明のプログラムは、次のような態様としても把握することができる。すなわち、
複数の閾値を二次元的に配列したディザマトリックスを用いてハーフトーン処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、画像を出力するためのプログラムであって、
前記画像データとして、前記画像を構成する複数の画素が所定の複数個ずつ画素群としてまとめられた状態で、前記ハーフトーン処理の結果として得られた該画素群内に形成すべきドットの個数のデータを受け取る機能(A)と、
前記ハーフトーン処理に用いた前記ディザマトリックスを前記画素群に対応した大きさに分割し、該分割されたディザマトリックス内の閾値の大小関係に基づいて前記分割されたディザマトリックス毎に決定された画素の序列を、複数の序列として記憶しておき、前記個数のデータを受け取った画素群毎に、該画素群内の各画素にドットを形成する序列を、前記記憶している複数種類の序列の中から特定する機能(B)と、
前記受け取ったドット個数のデータと前記特定した序列とに基づいて、前記画素群内でドットが形成される画素位置を、該画素群毎に決定する機能(C)と、
前記決定した画素位置に基づいて、ドットを形成する機能(D)と
をコンピュータより実現する把握することもできる。
更に、上述した画像処理方法に対応する本発明のプログラムは、
コンピュータによって実行され、ドットを形成して画像を出力する画像出力装置が該ドットの形成を制御するために用いる制御データを、該画像を表す画像データに所定の画像処理を施して生成するためのプログラムであって、
前記画像から、該画像を構成する画素が複数個ずつまとめられた画素群を順次取り出す機能(a)と、
前記画素群を構成する各画素の階調値を、前記画素群に含まれる画素の数より多い数の閾値を二次元的に配列したディザマトリックスの対応する閾値と比較することにより、画素群内に形成すべきドットの個数を求めるための対応関係を、少なくとも複数の該画素群について該画素群毎に異ならせた状態で、前記画素群内に形成するドットの個数を決定する機能(b)と、
前記画素群毎に決定したドット個数のデータを、前記制御データとして前記画像出力装置に供給する機能(c)と
をコンピュータにより実現することを要旨とする。
加えて、本発明は、こうした各種のプログラムがコンピュータに読み取り可能に記録された記録媒体として把握することも可能である。
こうしたプログラム、あるいは記録媒体に記録されているプログラムをコンピュータに読み込ませ、該コンピュータを用いて上述の各種機能を実現すれば、例え画素数の多い画像であっても、迅速に画像を出力させることが可能となる。
本発明の作用・効果をより明確に説明するために、本発明の実施の形態を、次のような順序に従って以下に説明する。
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実施例の画素位置決定処理:
D−4.変形例:
E.その他の変形例:
A.発明の概要:
実施例についての詳細な説明に入る前に、図1を参照しながら、本発明の概要について説明しておく。図1は、印刷システムを例にとって、本発明の概要を説明するための説明図である。本印刷システムは、画像処理装置としてのコンピュータ10と、プリンタ20等から構成されており、コンピュータ10に所定のプログラムがロードされて実行されると、コンピュータ10およびプリンタ20などが全体として一体の印刷システムとして機能する。プリンタ20は、印刷媒体上にドットを形成することによって画像を印刷する。
コンピュータ10は、印刷しようとする画像の画像データに所定の画像処理を施すことによって、プリンタ20が画素毎にドットの形成を制御するためのデータを生成して、該プリンタ20に供給する。
ここで、通常の印刷システムでは、コンピュータは画像データを、画像を構成する画素毎にドットの形成有無を表したデータに変換してプリンタに供給し、このデータに基づいてドットを形成することにより、画像を印刷している。ここで、印刷しようとする画像の画素数が多くなると、それに伴って、画素毎にドットの形成有無を表したデータのデータ量も増加するので、コンピュータからプリンタにデータを供給するために長い時間が必要となり、延いては印刷に要する時間も増加してしまう。こうした点を考慮して、図1に示したコンピュータ10には、ドット個数決定モジュールと個数データ生成モジュールとが設けられており、次のような処理を行う。
ドット個数決定モジュールは、画像を構成する複数の画素が所定の複数個ずつまとめられた画素群について、該画素群内に形成されるドットの個数を、画像データに基づいて決定する。ここで画素群毎の個数データは、画像データを画素群にまとめた後、画素群毎にドット形成の有無を判断することによって生成することができる。あるいは、初めに画像をドット形成の有無による表現形式に変換した後、画素を所定の複数個ずつまとめて画素群を生成して、各画素群内に形成されるドットの個数を決定しても良い。尚、画素群としてまとめられる複数の画素は、必ずしも、互いに隣接した画素でなくても構わない。また、個数データ生成モジュールは、画素群毎に決定されたドット個数のデータを、プリンタ20に向かって供給する。
図1に示したプリンタ20には、序列記憶モジュールと、画素位置決定モジュールと、ドット形成モジュールとが設けられている。序列記憶モジュールには、画素群内で各画素にドットが形成される画素の序列が、複数通り記憶されている。画素位置決定モジュールは、序列記憶モジュールを参照しながら、画素群毎にドットを形成すべき画素位置を次のようにして決定する。先ず、画素群1つ分の個数データを受け取ると、序列記憶モジュールに記憶された複数の序列の中から序列を1つ選択する。そして選択した序列に従って、画素群を構成する複数の画素の中から、個数データによって指示された個数の画素を、ドットを形成すべき画素として選択する。こうして画素位置決定モジュールは、個数データを受け取ると、画素群毎に序列を選択して、ドットを形成する画素位置を決定していく。
ドット形成モジュールは、こうして決定された画素にドットを形成する。その結果、印刷媒体上に画像が形成されることになる。
このように、図1に示した印刷システムでは、コンピュータ10からプリンタ20に向かって、ドット形成の有無を表すデータを供給する際に、画素毎のデータではなく、画素群毎に形成されるドットの個数を表すデータを供給する。こうすれば、個々の画素についてのドット形成の有無を供給する場合よりも、供給するデータ量を少なくすることができる。このため、例え、画像に含まれる画素数が増加した場合でも、コンピュータ10からプリンタ20にデータを迅速に供給することができ、延いては、迅速に画像を印刷することが可能となる。以下では、こうした印刷システムを例にとって、本発明の各種実施例について詳細に説明する。
B.第1実施例:
B−1.装置構成:
図2は、本実施例の画像処理装置としてのコンピュータ100の構成を示す説明図である。コンピュータ100は、CPU102を中心に、ROM104やRAM106などを、バス116で互いに接続して構成された周知のコンピュータである。
コンピュータ100には、フレキシブルディスク124やコンパクトディスク126等のデータを読み込むためのディスクコントローラDDC109や、周辺機器とデータの授受を行うための周辺機器インターフェースPIF108、CRT114を駆動するためのビデオインターフェースVIF112等が接続されている。PIF108には、後述するカラープリンタ200や、ハードディスク118等が接続されている。また、デジタルカメラ120や、カラースキャナ122等をPIF108に接続すれば、デジタルカメラ120やカラースキャナ122で取り込んだ画像を印刷することも可能である。また、ネットワークインターフェースカードNIC110を装着すれば、コンピュータ100を通信回線300に接続して、通信回線に接続された記憶装置310に記憶されているデータを取得することもできる。
図3は、本実施例のカラープリンタ200の概略構成を示す説明図である。カラープリンタ200はシアン,マゼンタ,イエロ,ブラックの4色インクのドットを形成可能なインクジェットプリンタである。もちろん、これら4色のインクに加えて、染料濃度の低いシアン(淡シアン)インクと染料濃度の低いマゼンタ(淡マゼンタ)インクとを含めた合計6色のインクドットを形成可能なインクジェットプリンタを用いることもできる。尚、以下では場合によって、シアンインク,マゼンタインク,イエロインク,ブラックインク,淡シアンインク,短マゼンタインクのそれぞれを、Cインク,Mインク,Yインク,Kインク,LCインク,LMインクと略称することがあるものとする。
カラープリンタ200は、図示するように、キャリッジ240に搭載された印字ヘッド241を駆動してインクの吐出およびドット形成を行う機構と、このキャリッジ240をキャリッジモータ230によってプラテン236の軸方向に往復動させる機構と、紙送りモータ235によって印刷用紙Pを搬送する機構と、ドットの形成やキャリッジ240の移動および印刷用紙の搬送を制御する制御回路260とから構成されている。
キャリッジ240には、Kインクを収納するインクカートリッジ242と、Cインク,Mインク,Yインクの各種インクを収納するインクカートリッジ243とが装着されている。キャリッジ240にインクカートリッジ242,243を装着すると、カートリッジ内の各インクは図示しない導入管を通じて、印字ヘッド241の下面に設けられた各色毎のインク吐出用ヘッド244ないし247に供給される。
図4は、インク吐出用ヘッド244ないし247におけるインクジェットノズルNzの配列を示す説明図である。図示するように、インク吐出用ヘッドの底面には、C,M,Y,Kの各色のインクを吐出する4組のノズル列が形成されており、1組のノズル列あたり48個のノズルNzが、一定のノズルピッチkで配列されている。
制御回路260は、CPUや、ROM、RAM等がバスで相互に接続された構成となっている。制御回路260は、キャリッジモータ230および紙送りモータ235の動作を制御することによってキャリッジ240の主走査動作および副走査動作を制御するとともに、コンピュータ100から供給される印刷データに基づいて、各ノズルから適切なタイミングでインク滴を吐出する制御を行う。こうして、制御回路260の制御の下、印刷媒体上の適切な位置に各色のインクドットを形成することによって、カラープリンタ200はカラー画像を印刷することができる。
尚、各色のインク吐出ヘッドからインク滴を吐出する方法には、種々の方法を適用することができる。すなわち、ピエゾ素子を用いてインクを吐出する方式や、インク通路に配置したヒータでインク通路内に泡(バブル)を発生させてインク滴を吐出する方法などを用いることができる。また、インクを吐出する代わりに、熱転写などの現象を利用して印刷用紙上にインクドットを形成する方式や、静電気を利用して各色のトナー粉を印刷媒体上に付着させる方式のプリンタを使用することも可能である。
以上のようなハードウェア構成を有するカラープリンタ200は、キャリッジモータ230を駆動することによって、各色のインク吐出用ヘッド244ないし247を印刷用紙Pに対して主走査方向に移動させ、また紙送りモータ235を駆動することによって、印刷用紙Pを副走査方向に移動させる。制御回路260は、印刷データに従って、キャリッジ240の主走査および副走査を繰り返しながら、適切なタイミングでノズルを駆動してインク滴を吐出することによって、カラープリンタ200は印刷用紙上にカラー画像を印刷している。
B−2.画像印刷処理の概要:
図5は、本実施例のコンピュータ100およびプリンタ200が、画像データに所定の画像処理を加えて、印刷媒体上に画像を印刷する処理の流れを示すフローチャートである。かかる画像印刷処理は、後述するように前半部分はコンピュータ100に内蔵されたCPUの機能を利用して、また、処理の後半部分はプリンタ200の制御回路260に内蔵されたCPUの機能を利用して実行される。以下、図5に従って、本実施例の画像印刷処理について説明する。
コンピュータ100は、画像印刷処理を開始すると、先ず初めに、変換すべき画像データの読み込みを開始する(ステップS100)。ここでは、画像データはRGBカラー画像データであるものとして説明するが、カラー画像データに限らず、モノクロ画像データについての同様に適用することができる。
カラー画像データの読み込みに続いて、色変換処理を行う(ステップ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を参照しながら変換すれば、迅速に色変換することが可能である。
色変換処理を終了すると、解像度変換処理を開始する(ステップS104)。解像度変換処理とは、画像データの解像度を、プリンタ200が印刷を行う解像度(印刷解像度)に変換する処理である。前述したように、印刷画質を向上させるためには、画素の大きさを小さくして、より高い解像度で印刷することが効果的である。しかし、印刷解像度を高くすることに合わせて、必ずしも、元の画像データの解像度も高くする必要があるわけではない。何故なら、ドットを形成して画像を印刷する場合は、個々の画素ではドットを形成するか否かの2通りしか取り得ず、例えドットの大きさなどを変えたとしても、画素あたりに表現可能な階調数は高々数階調に過ぎない。これに対して、読み込む画像データは、仮に1バイトのデータとしても、画素あたりに256階調を表現することができる。このように、画素あたりに表現可能な階調が大きく異なっているので、印刷解像度を、読み込む画像データの解像度よりも高解像度に設定することで、印刷画質を向上させることが可能である。このような理由から、図5のステップS104では、画像データの解像度を、より高解像度の印刷解像度に変換する処理を行うのである。
図6(a)、図6(b)は、第1実施例において行われる解像度変換の様子を示す説明図である。尚、前述したように色変換によって、C,M,Y,Kの各色毎の画像データが得られるが、以降に説明する処理は、これら各色の画像データのいずれに対しても同様に行われる。そこで、説明の煩雑化を避けるために、以下では色を特定せずに説明する。
図6(a)は、色変換後の画像データの一部を拡大して模式的に表したものである。図示するように、画像データは、格子状に配列された画素の各々に階調値が割り当てられたデータである。図6(a)中に示した複数の矩形は、それぞれが画素を模式的に表しており、矩形の中に表示された数値は、各画素に割り当てられた階調値を表している。こうした画像データの解像度をより高い解像度に変換するためには、画素間で補間演算を行うことによって新たな画素を生成しても良いが、本実施例では最も簡便な手法として、画素をより小さな画素に分割することで解像度変換を行う。
図6(b)は、画素を分割することで解像度を変換している様子を示す説明図である。図示した例では、それぞれの画素を、主走査方向(図上で左右方向)に4分割し、副走査方向(図上で上下方向)に2分割することで、1つの画素を8つの画素に分割している。図6(b)中に示した破線は、画素が分割されていることを表したものである。こうして生成した小さな画素には、分割前の元の画素の階調値と同じ階調値が割り当てられている。以上のような処理を施すことにより、画像データの解像度は、主走査方向には4倍の解像度に、副走査方向には2倍の解像度に変換されることになる。もちろん、解像度の増加割合は必要に応じて種々の割合に設定することが可能である。
以上のようにして解像度を印刷解像度に変換したら、コンピュータ100は、個数データ生成処理を開始する(ステップS106)。ここでは、次のような処理を行う。色変換後の画像データは、画素毎に階調値が割り当てられた階調データである。これに対して、プリンタ200は画素位置に適切な密度でドットを形成することによって画像を印刷する。従って、階調データを、画素毎のドット形成の有無によって表現されたデータに変換した後、プリンタ200に転送する必要がある。また、ドット形成の有無を示すデータを、プリンタ200に画素単位で転送したのでは、画素数が多くなるに従って転送に要する時間が増加してしまうので、画像を迅速に印刷することが困難となる。そこで、本実施例の画像印刷処理では、画素を所定の複数個ずつ画素群としてまとめ、画素群内に形成されるドット個数のデータをプリンタ20に転送している。ここで、画素群内に形成されるドット個数のデータは、予め画像データを、画素毎のドット形成の有無を示すデータに変換した後に、複数の画素を画素群としてまとめることで得ることができる。あるいは、後述するように、初めに複数の画素を画素群にまとめた後、画素群内の各画素に形成されるドットの個数を決定することも可能である。ステップS106の個数データ生成処理では、こうして画素群内で形成されるドット個数のデータを生成して、プリンタ20に転送する処理を行う。個数データ生成処理の詳細については後述する。
プリンタ200の制御回路260に内蔵されたCPUは、コンピュータ100から供給されたドット個数のデータを受け取ると、画素位置決定処理を開始する(ステップS108)。ここでは、次のような処理を行う。上述したように、コンピュータ100は画素毎にドット形成の有無を示すデータの代わりに、画素群内に形成されるドット個数を示すデータを供給する。そこで、画素位置決定処理では、画素群毎に受け取ったドット個数のデータに基づいて、画素群内でドットが形成される画素位置を決定する処理を行う。画素位置決定処理の詳細については後述する。
以上のようにして、ドットを形成すべき画素位置を決定したら、決定した画素位置にドットを形成する処理を行う(ステップS110)。すなわち、図3を用いて説明したように、キャリッジ240の主走査および副走査を繰り返しながらインク吐出用ヘッドを駆動してインク滴を吐出することにより、印刷用紙上にインクのドットを形成する。こうしてドットを形成することにより、画像データに対応した画像が印刷されることになる。
B−3.第1実施例の個数データ生成処理:
図7は、第1実施例の個数データ生成処理の流れを示すフローチャートである。以下では、フローチャートを参照しながら、個数データ生成処理の内容について詳細に説明する。
個数データ生成処理を開始すると、先ず初めに所定の複数個の画素をまとめて画素群を生成する(ステップS200)。ここでは、解像度変換処理において1つの画素を8つの画素に分割していることから、同一の画素を分割して得られた8つの画素を画素群としてまとめることとする。例えば、図6(a)中で左上隅の画素は、図6(b)中では、左上方にある縦2列横4列の8つ画素に分割されているから、これらの画素をまとめて画素群を生成する。尚、画素群としてまとめる画素は、互いに隣接する画素である必要はなく、所定の位置関係にあればどのような画素でも画素群としてまとめることができる。
また、このように同一の画素から分割された画素を画素群としてまとめる場合は、図5の解像度変換処理を省略することも可能である。この場合は、以下の説明中で、「画素群」とある部分を、「解像度変換を行う前の画素」と読み替えることにより、ほぼ同様な処理を行うことができる。
次いで、画素群としてまとめた画素の中から、ドット形成の有無を判断するために着目する画素(着目画素)を1つ設定する(ステップS202)。そして、着目画素に割り当てられた階調値とディザマトリックスの閾値とを比較することにより、着目画素についてのドット形成の有無を判断する(ステップS204)。ディザマトリックスとは、複数の閾値が格子状に記憶された2次元の数表である。ディザマトリックスを用いてドット形成の有無を判断する処理について、図8および図9を参照しながら説明する。図8は、ディザマトリックスの一部を例示した説明図である。図示したマトリックスには、縦横それぞれ64画素、合計4096個の画素に、階調値1〜255の範囲から万遍なく選択された閾値がランダムに記憶されている。ここで、閾値の階調値が1〜255の範囲から選択されているのは、本実施例では画像データが1バイトデータであり、画素に割り当てられる階調値が0〜255の値を取り得ることに対応するものである。尚、ディザマトリックスの大きさは、図8に例示したように縦横64画素分に限られるものではなく、縦と横の画素数が異なるものも含めて種々の大きさとすることができる。
図9は、ディザマトリックスを参照しながら、着目画素についてのドット形成の有無を判断している様子を概念的に示した説明図である。ドット形成有無の判断に際しては、先ず、着目画素の階調値とディザマトリックス中の対応する位置に記憶されている閾値と比較する。図中に示した細い破線の矢印は、着目画素の階調値を、ディザマトリックス中の対応する位置に記憶されている閾値と比較していることを模式的に表したものである。そして、ディザマトリックスの閾値よりも着目画素の階調値の方が大きい場合には、その画素にはドットを形成すると判断する。逆に、ディザマトリックスの閾値の方が大きい場合には、その画素にはドットを形成しないと判断する。再び図9に即して説明すると、画像データの左上隅の画素については、画像データの階調値は97であり、ディザマトリックスの閾値は1であるから、この画素にはドットを形成すると判断する。図9中に実線で示した矢印は、この画素にはドットを形成すると判断して、判断結果をメモリに書き込んでいる様子を模式的に表したものである。一方、この画素の右隣の画素については、画像データの階調値は97、ディザマトリックスの閾値は177であり、閾値の方が大きいので、この画素についてはドットは形成しないと判断する。図7のステップS204では、こうしてディザマトリックスを参照しながら、着目画素にドットを形成するか否かを判断する処理を行う。
次いで、画素群内の全ての画素について以上のような処理を行ったか否かを判断し(ステップS206)、画素群中に未処理の画素が残っている場合は(ステップS206:no)、ステップS202に戻って続く一連の処理を行う。こうして画素群内の全ての画素について、ドット形成有無の判断を終了したら(ステップS206:yes)、画素群内に形成するドットの個数を検出し、画素群に対応付けられた状態でメモリに記憶する(ステップS208)。図9に示した例では、画像の左上隅の画素群については、3つの画素にドットを形成すると判断されているから、この画素群についてはドット個数が「3」である旨を記憶する。
以上のようにして、1つの画素群についての処理を終了したら、全画素について処理を終了したか否かを判断し(ステップS210)、未処理の画素が残っていれば、ステップS200に戻って新たな画素群を生成した後、続く一連の処理を行って、その画素群に形成されるドットの個数を記憶する(ステップS208)。こうした処理を繰り返して行くことにより、画像中の全ての画素についての処理を終了したら(ステップS210:yes)、画素群毎に記憶しておいたドット個数をプリンタ200に向かって出力して(ステップS212)、図7に示した個数データ生成処理を終了する。
図10(a)は、画像データに上述した個数データ生成処理を施すことによって得られるデータを、概念的に表した説明図である。図中に示した複数の矩形は、それぞれ画素群を表しており、画素群内に表示された数値は、該画素群に形成されるドットの個数が記憶されている様子を表している。本実施例では、コンピュータ100は、色変換後の画像データを図10(a)に示すようなデータに変換した後、画素群毎に記憶された個数のデータのみをプリンタ200に向かって出力する。このように個数のデータのみを出力すれば、画素毎にドットの形成有無を示すデータを出力する場合よりも、データ量が減少するので迅速に出力することが可能となる。この点につき、補足して説明する。
図10(b)は、画素群内の各画素について、ドット形成の有無を判断した様子を示す説明図である。図10(b)中に示した細い破線は、画素群が複数の画素から構成されていることを示しており、画素に付された斜線は、その画素にはドットを形成すると判断されていることを示している。
今、コンピュータ100からプリンタ200に対して、図10(b)に示した状態のデータ、すなわち画素毎にドット形成の有無を示すデータを出力するものとする。ドットの種類は1種類であるとすれば、各画素はドットが形成されるかされないかの、いずれかの状態しか取り得ないから、1画素あたりのデータ量は1ビットで足りる。画素群は8つの画素で構成されているから、プリンタ200に出力すべきデータ量は、画素群あたり8ビットとなる。
これに対して、本実施例のように画素群に形成されるドットの個数を出力する場合は、1つの画素群内に形成されるドットの個数は0〜8の値しか取り得ないから、画素群あたり4ビットあればドット個数を表現することができる。すなわち、画素毎にドット形成の有無を示すデータを出力する場合に比べて、データ量を半減させることができる。このため、画素群毎のドット個数を出力することによって、プリンタ200に迅速にデータを出力することが可能となるのである。こうしてコンピュータ100から転送されたドット個数のデータは、プリンタ200側で次に説明する画素位置決定処理が施されて、画素毎にドットの形成有無を示すデータに変換される。以下、画素位置決定処理について説明する。
B−4.第1実施例の画素位置決定処理:
図11は、第1実施例の画像印刷処理中で行われる画素位置決定処理の流れを示すフローチャートである。かかる処理は、プリンタ200の制御回路260に内蔵されたCPUが、コンピュータ100から転送されてきた画素群毎のドット個数を示すデータを受け取って実行する。また、図12は、画素群毎のドット個数を示すデータが、画素位置決定処理を施されることによって、画素毎のドット形成の有無を示すデータに変換される様子を概念的に示した説明図である。以下、図11および図12を参照しながら、画素位置決定処理の内容について説明する。
画素位置決定処理を開始すると、先ず初めに、処理の対象とする画素群を1つ選択し(図11のステップS300)、その画素群に形成されるドット個数を取得する(ステップS302)。図12(a)には、コンピュータ100から画素群毎に転送されてきたドット個数を示すデータが概念的に示されている。画素位置を決定する画素群として、ここでは、図中で左上隅にある画素群を選択したものとする。図11のステップS302では、選択した画素群に形成されるドット個数として「3」を取得する。
次いで、画素群内の各画素にドットが形成される序列を参照することにより、ドットを形成する画素を決定する処理を行う(ステップS304)。ここでは、ディザマトリックスを、ドットが形成される序列として読み替えて利用する。図8を用いて説明したように、ディザマトリックスの各画素には閾値が設定されている。また、ある画素にドット形成の有無を判断する際には、画像データの階調値とディザマトリックスの閾値とを比較して、階調値の方が大きければ、その画素にはドットを形成すると判断する。すなわち、ディザマトリックスの閾値が小さい画素ほどドットが形成され易くなることから、ディザマトリックスはドットが形成される画素の序列を表していると考えることができる。本実施例では、ディザマトリックスの有するこうした性質に着目して、画素群内の各画素の序列としてディザマトリックスを利用するのである。
再び図12を参照しながら、詳しく説明する。ここでは、対象とする画素群が図12(a)中の左上隅の画素群であるとしているから、ディザマトリックス上で、この画素群の各画素に対応する位置に記憶されている閾値を取得する。図12(b)は、図8に示したディザマトリックスから、対応する画素位置の閾値が読み出された様子を模式的に示したものである。こうして読み出した閾値が小さい画素から順番に、ドットが形成されることになる。図12(a)に示すように、処理中の画素群には形成されるドット個数は3個だから、各画素にドットが形成される序列に基づいて、図12(c)に示すように画素位置を決定することができる。すなわち、図12(c)中で実線で囲って示した最も閾値の小さい画素と、破線で囲った2番目に閾値の小さい画素と、一点鎖線で囲った3番目に閾値の小さい画素の3つの画素を、ドットが形成される画素として決定することができる。
以上のような操作を行うことにより、処理対象として選択した画素群について画素位置を決定したら、全ての画素群についての処理を終了したか否かを判断する(図11のステップS306)。未処理の画素群が残っていれば(ステップS306:no)、ステップS300に戻って新たな画素群を選択し、続く一連の処理を行う。こうした処理を繰り返すことにより、図12(a)に例示の画素群毎にドット個数を示すデータは、図12(d)に示すような、画素毎にドット形成の有無を表すデータに変換されていく。尚、図12(d)中で斜線が付された画素は、ドットが形成される画素を示している。そして、全ての画素群について処理が終了したら(ステップS306:yes)、図11に示した画素位置決定処理を終了して、図5の画像印刷処理に復帰する。
以上、第1実施例の画像印刷処理および、かかる処理中で行われる個数データ生成処理、画素位置決定処理について詳しく説明した。このように第1実施例の画像印刷処理では、画像処理が施されたデータをコンピュータ100からプリンタ200に向かって転送するに際して、画素毎にドット形成の有無を示すデータの代わりに、画素群に形成されるドット個数を示すデータを転送する。こうすれば、データの転送量を大幅に減少させることができるので、例え画像に含まれる画素数が増加したとしても、データの転送を速やかに完了して、迅速に画像を印刷することが可能となる。
また、上述したように、コンピュータ100側の個数データ生成処理で参照するディザマトリックスを、プリンタ200側の画素位置決定処理で参照するディザマトリックスと同じマトリックスにしておけば、コンピュータ100からプリンタ200にドット個数の情報のみに圧縮して転送した場合でも、画素位置を完全に復元することができる。実際、図10(b)と図12(d)とを比較すれば明らかなように、コンピュータ100側で画素毎にドット形成有無を判断して得られた画素位置は、プリンタ200側で決定した画素位置と一致しており、画素位置が完全に復元されていることを示している。このため、コンピュータ100からドット個数のデータを迅速に転送しながら、プリンタ200側でドットを形成する画素位置を適切に決定することにより、高画質な画像を迅速に印刷することが可能となる。
B−5.変形例:
上述した第1実施例には種々の変形例が存在する。以下、これら変形例について簡単に説明する。
(1)第1の変形例:
図7ないし図10を用いて説明したように、第1実施例の個数データ生成処理では、画像データを、画素毎にドット形成有無を表すデータに一旦変換し、得られたデータを、画素群毎のドット個数を示すデータに変換してプリンタ200に転送している。すなわち、コンピュータ100内では、画素位置を特定した状態でドット形成の有無を判断しているものの、プリンタ200に転送する段階では、画素位置に関する情報は省略されてしまい、画素群毎のドット個数の情報のみが転送される。こうした点に鑑みて、第1の変形例では、個数データ生成処理において画素位置を特定することなく、画素群内に形成されるドット個数のみを生成する。
図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つの値で構成される閾値の組が記憶されている。
第1の変形例における個数データ生成処理では、画素群の画像データを、こうした閾値の組と比較することによって、画素位置を特定することなく、画素群内に形成すべきドット個数を決定する。ここで説明の便宜から、処理しようとする画像データが、第1実施例の説明中で用いたものと同じ画像データであったとする(図6(b)参照)。画像データの左上隅の画素群について見ると、画素群内の全ての画素は階調値97となっている。一方、簡易ディザマトリックス上で対応する位置の画素群には、8つの閾値{255,212,177,170,109,58,42,1}が記憶されている。これら8つの閾値の中で、画素群の階調値97よりも小さな値は{58,42,1}の3つあるから、この画素群には3つのドットが形成されると判断する。図13(b)中で閾値の一部が破線で囲われているのは、これら閾値が画素群の階調値よりも小さいことを表したものである。このように、画素群毎に閾値の組を記憶しておき、画素群の階調値と比較してやれば、画素群内での画素位置を特定することなくドット個数を決定することができる。以上の操作を全ての画素群について行えば、図13(c)に示すように、画素群毎にドット個数を決定することができる。
また、第1の変形例中で参照した簡易ディザマトリックスは、第1実施例の説明で用いた通常のディザマトリックスに対応したマトリックスとなっている。すなわち、図13の簡易ディザマトリックス中で画素群毎に記憶されている閾値の組は、図8のディザマトリックスの各画素に記憶されている閾値を、画素群毎にまとめて組にしたものとなっている。このように、簡易ディザマトリックスを通常のディザマトリックスに対応したものとしておけば、簡易ディザマトリックスを使用して画素位置を特定せずにドット個数を決定した場合でも、通常のディザマトリックスを用いて画素位置を特定しながら決定したドット個数とを全く同じ結果を得ることができる。実際、同じ画像データに対して、通常のディザマトリックスを用いて得られたドット個数のデータ(図10(a)参照)と、簡易ディザマトリックスを用いて得られたデータ(図13(c)参照)とは完全に一致したものとなっている。
上述したように第1の変形例では、画素毎に記憶されている閾値の組と、画像データの階調値とを比較するだけで画素群に形成すべきドット個数を求めることができる。すなわち、閾値と画像データの階調値とを画素群内の画素毎に比較する必要がないので、画素群毎にドット個数を示すデータを迅速に得ることが可能となる。
また、第1の変形例では、画像データの階調値よりも小さな閾値の個数のみを求めればよいから、それぞれの組内で閾値を大きさの順に並べて記憶しておけば、処理速度の更なる高速化を図ることができる。再び図13の例示を参照しながら説明すると、左上隅の画素群は、画像データの階調値97であり、閾値の組は{255,212,177,170,109,58,42,1}と大きさの順に記憶されている。尚、これら閾値は大きな閾値から順に記憶されていても良いし、逆に小さな閾値から順に記憶されていても良い。画像データの階調値は0〜255の値を取り得るから、階調値97は比較的小さな値と言える。そこで、この階調値を小さい閾値から順に大きさを比較していく。すなわち、初めは一番小さな閾値「1」と比較する。当然、階調値「97」の方が大きいので、今度は、隣に記憶されている1つ大きな閾値「42」と比較する。ここでも階調値「97」の方が大きいから、その隣の閾値「58」と比較する。こうして、階調値を小さい側の閾値から順番に比較していく。そして、閾値「109」と比較する段階で、初めて階調値「97」の方が小さいと判断される。組内の閾値は大きさの順に記憶されていることから、一旦、階調値の方が小さいと判断されたら、それ以降の閾値についても階調値の方が小さいことは明らかであり、もはや一々比較する必要はない。従って、各画素群には8つの閾値が記憶されているにも関わらず、この画素群については4つの閾値と比較するだけでドット個数を決定することが可能となる。
もちろん、画像データの階調値が比較的大きな値である場合は、大きい側の閾値から比較していけばよい。例えば、上述の説明で仮に階調値が「200」であるとすれば、最も大きな閾値「255」から初めて、その隣の閾値「212」、更にその隣の閾値「177」の3つの閾値と比較するだけで、その画素群に形成すべきドット個数を決定することができる。このように、画素群に対応付けられた閾値を大きさの順に記憶しておけば、画素群内に形成すべきドット個数を迅速に決定することが可能となるのである。
(2)第2の変形例:
前述した第1実施例の画素位置決定処理では、画素群毎のドット個数を示すデータを受け取ると、ディザマトリックスを参照しながら、それぞれの画素群内でドットが形成される画素位置を決定している(図12参照)。しかし、ドット個数からドットが形成される画素位置を決定するためには、必ずしも画素毎の閾値まで分かっている必要はなく、画素群内の各画素についてのドットが形成される画素の序列が分かっていればよい。こうした点に鑑みて、第2の変形例では、画素位置決定処理においてディザマトリックスの代わりに、画素の序列を記憶したマトリックス(以下では、こうしたマトリックスを序列マトリックスと呼ぶ)を参照しながら画素位置を決定する。
図14は、第2の変形例の画素位置決定処理において、序列マトリックスを参照しながら画素位置を決定する様子を概念的に示した説明図である。図14(a)は、序列マトリックスを概念的に示した説明図である。図中で太い実線で囲われた矩形は画素群を表しており、各画素群は細い破線で示されているように、8つの画素に区分されている。また、各画素の中に表示されている数字は、画素群内でドットが形成される序列(換言すれば、ドットが形成される順番)を示している。
こうした序列マトリックスを用いれば、ドット個数に基づいて画素位置を簡便に決定することができる。ここでは、ドット個数のデータが図12(a)に示したデータである場合を例にとって、具体的に説明する。尚、このデータは、前述の第1実施例の画素位置決定処理についての説明で用いたものと同じデータである。図12(a)に示したデータによれば、左上隅の画素群に形成されるドット個数は「3」となっている。そこで、図14(a)に示した序列マトリックスの左上隅の画素群の中から、序列が1番〜3番の3つの画素を選択して画素位置を決定する。図14(b)は、こうして3つの画素を選択して画素位置を決定している様子を模式的に示した説明図であり、画素中の数字を囲む実線は、その画素が選択されたことを表している。以上のような操作を全ての画素群に対して繰り返していけば、図14(c)に示すように、ドットを形成する画素位置を全て決定することができる。尚、図14(c)中で斜線が付された画素は、ドットが形成されることを表している。
図15は、上述した第2の変形例の画素位置決定処理、すなわち序列マトリックスを参照しながら画素位置を決定する処理の流れを示したフローチャートである。以下、フローチャートに従って簡単に説明する。序列マトリックスを用いて画素位置を決定する場合も、先ず初めに画素位置を決定しようとする画素群を1つ選択する(ステップS350)。
次いで、選択した画素群についてのドット個数のデータを取得する(ステップS352)。ここでは、図14の説明に倣って左上隅の画素群を選択したものとし、画素群に形成されるドット個数として「3」を取得したものとする。
次いで、画素群の中から判断対象とする画素を1つ選択した後(ステップS354)、序列マトリックスを参照することにより、判断対象の画素にドットが形成される順番を取得する(ステップS356)。例えば、ここでは選択している画素群が画像中で左上隅にある画素群であるとしているから、判断対象とする画素が画素群中で左上隅の画素であるとすれば、図14(a)に示した序列マトリックスを参照することで、判断対象の画素は、画素群中で1番目にドットが形成されることがわかる。すなわち、この画素の順番は「1」番となる。また、その右隣の画素については、画素の順番は「6」番となる。図15のステップS356では、このように序列マトリックスを参照することにより、判断対象とする画素の順番を取得する。
次いで、取得した画素の順番と画素群のドット個数とを比較する(ステップS358)。そして、ドット個数の方が画素の順番よりも大きいと判断された場合は(ステップS358:yes)、判断対象としている画素にドットを形成すると判断する(ステップS360)。逆に、ドット個数よりも画素の順番の方が大きいと判断された場合は(捨て婦婦S358:no)、その画素にはドットを形成しないと判断する(ステップS362)。
こうして1つの画素についてドット形成の有無を判断したら、選択した画素群内の全画素について処理を終了したか否かを判断する(ステップS364)。そして、画素群内に未処理の画素が残っている場合は(ステップS364:no)、ステップS354に戻って新たな画素を選択した後、上述した続く一連の処理を行う。こうした処理を繰り返すうちに、画素群内の全画素についてドット形成の有無を判断すると(ステップS364:yes)、その画素群についてはドットを形成する画素位置が決定されたことになる。そこで今度は、全画素群についてドットを形成する画素位置を決定したか否かを判断する(ステップS366)。そして、未処理の画素群が残っていれば(ステップS366:no)、ステップS350に戻って新たな画素群を選択し、上述した続く一連の処理を行う。こうした処理を繰り返し、全画素群についての処理を終了したと判断されたら(ステップS366:yes)、図15に示す第2の変形例の画素位置決定処理を終了する。
このように、画素群内で各画素にドットが形成される序列に基づいて画素位置を決定することとすれば、画素の順番とドット個数とを比較して、画素の順番がドット個数よりも小さな画素を選択するだけで、ドットを形成する画素位置を決定することができる。すなわち、選択した画素の個数を計数しながら、ドット個数に示された数の画素を選択する必要がないので、画素位置を簡便に決定することが可能となる。
また、序列マトリックスに記憶されている数値(すなわち画素の順番)は、高々、1つの画素群に含まれる画素の数までしか取り得ず、ディザマトリックスに記憶される閾値よりも小さな数値である。従って、序列マトリックスはディザマトリックスよりも僅かな容量で記憶することができる。画素位置決定処理が行われるプリンタは、充分な記憶容量が搭載されていないことがあるので、序列マトリックスを用いて画素位置を決定すれば、プリンタの記憶容量を節約することができるという利点も得ることができる。
尚、図14(a)に示した序列マトリックスは、個数データ生成処理中で画素毎にドット形成の有無を判断するために参照したディザマトリックスと対応したマトリックスとなっている。すなわち、第1実施例の画素位置決定処理についての説明の中で、ディザマトリックスに設定されている閾値は、ドットが形成される序列を表していると考えることができる旨を説明したが、図14(a)の序列マトリックスに設定されている序列は、画素群内の各画素についてディザマトリックスによって決まる序列と、同じ序列となっている。このように、序列マトリックスを、個数データ生成処理で参照したディザマトリックスに対応したマトリックスとしておけば、序列マトリックスを用いた場合でも、画素位置を適切に決定することができる。実際、図14(c)と図10(b)とを比較すれば明らかなように、序列マトリックスを参照して決定した画素位置は、画素毎にドット形成の有無を判断して求めた画素位置と一致しており、画素位置が適切に決定されていることが分かる。
この点について、若干補足しておく。前述した個数データ生成処理では、画素群内に形成するドット個数が分かれば良く、画素位置の情報、すなわち、各ドットが画素群内のいずれの画素に形成されるかについての情報までは不要である。このことと対応して、個数データ生成処理では、ディザマトリックスの代わりに簡易ディザマトリックスを用いてドット個数を求めることができた。換言すれば、ディザマトリックスを用いれば、画素群内に形成するドット個数のみならず、各ドットを形成する画素位置まで決定することが可能であるところ、個数データ生成処理では画素位置の情報は不要であるため、ディザマトリックスから、画素位置を決定するための情報を省いて簡略化した簡易ディザマトリックスを用いることが可能であった。
一方、画素位置決定処理では、画素群に形成するドット個数の情報は与えられることを前提としており、これらドットを形成すべき画素位置のみを決定することができればよい。このことと対応して、画素位置決定処理では、ディザマトリックスの代わりに序列マトリックスを用いて画素位置を決定することができる。換言すれば、ディザマトリックスから、画素群内に形成するドット個数を決定するための情報を省いて簡略化した序列マトリックスを用いることが可能である。
そして、これら簡易ディザマトリックスおよび序列マトリックスは、単独ではディザマトリックスよりも少ない情報しか含んでいないが、これらを合わせることにより、ディザマトリックスと同等の情報が得られる関係にあるマトリックスとなっている。従って、どのような特性のディザマトリックスであっても、対応する簡易ディザマトリックスおよび序列マトリックスを生成することができ、簡易ディザマトリックスを用いて個数データを生成した後、序列マトリックスを用いて画素位置を決定してやることで、元のディザマトリックスを用いた場合と全く同じ特性で、ドットを発生させることが可能となるのである。
C.第2実施例:
以上に説明した第1実施例では、1つの画素を複数の画素に分割し、同じ画素から分割された画素同士を画素群としてまとめる場合について説明した。1つの画素を複数の画素に分割することは、例えば、入力された画像データよりも高い解像度で画像を印刷しようとする場合などに起こり得る。こうした第1実施例においては、画素群としてまとめられた各画素は同じ階調値を有している。しかし、本発明は、画素群内の各画素が異なる階調値を有する場合にも適用することができる。例えば、印刷解像度が入力された画像データの解像度と同じ解像度に設定されていて、1つの画素群中に画像データの複数の画素が含まれている場合には、画素群内の各画素で階調値が異なる場合が生じ得る。また、画像データよりも高い解像度で画像を印刷するために新たな画素を生成する場合でも、新たに生成した画素の階調値を補間演算によって決定した場合には、画素群内の各画素で階調値は異なった値となる。更には、印刷解像度が画像データの解像度よりも僅かに高いような場合は、例え1つの画素を分割して複数の新たな画素を生成したとしても、1つの画素群に異なる画素から生成された画素が含まれることが考えられる。こうした場合にも、画素群内の各画素が同じ階調値を有しているとは限らない。以下では、第2実施例として、この様な場合に本発明を適用した実施例について説明する。
C−1.第2実施例の個数データ生成処理:
図16は、第2実施例の個数データ生成処理の流れを示すフローチャートである。かかる処理も前述した第1実施例の個数データ生成処理と同様に、図5に示した画像印刷処理中でコンピュータ100のCPUによって実行される処理である。
第2実施例の個数データ生成処理においても、先ず初めに所定の複数個の画素をまとめて画素群を生成する(ステップS400)。ここでは、第1実施例にならって、縦2列横4列の8つの画素をまとめて画素群を生成するものとする。もちろん、画素群としてのまとめ方は、こうしたまとめ方に限定されるものではなく、種々の方法でまとめることができる。
次いで、画素群内にエッジが含まれているか否かを判断する(ステップS402)。本実施例では、画素群に含まれる複数の画素の中で、最も大きな階調値と最も小さな階調値との階調差が所定値以上の場合に、その画素群にはエッジが含まれているものと判断する。もちろん、エッジの検出方法は、こうした方法に限らず種々の方法を適用することが可能である。
そして、画素群にエッジが含まれていないと判断された場合は(ステップS402:no)、画素群の平均階調値を算出して各画素の階調値を平均階調値で置き換えてやる(ステップS404)。この結果、画素群内の各画素は同じ階調値となるので、前述した第1実施例と同様の方法を用いて、画素群内に形成されるドット個数を決定することができる。
図17は、画素群内でのエッジの有無を判断して、エッジがないと判断した場合には、画素群内の各画素の階調値を平均階調値で置き換える様子を示した説明図である。図17(a)には、画素群内の各画素の階調値を示している。図上で左上隅にある画素群については、最大階調値および最小階調値はそれぞれ階調値100と階調値97であり、その階調差は3と、比較的小さな値となっている。これに対して、その画素群の右下にある画素群については、最大階調値は階調値132、最小階調値は階調値99と、階調差は33もある。そこで適当な閾値(例えば階調値20)を設定しておき、画素群内の階調差が閾値より大きければエッジが含まれていると判断する。逆に、画素群内の階調差が閾値より小さい場合はエッジは含まれていないと判断し、画素群内ので平均階調値を算出して、全ての画素の階調値を平均階調値で置き換えてやる。
図17(b)は、こうして画素群にエッジが含まれていないと判断された場合に、画素群内の各画素の階調値が平均階調値で置き換えられた様子を表している。図示した例では、左上隅の画素群および、その右隣あるいは下の画素群についてはいずれも階調差が小さく、従って、画素群内の全ての画素が、それぞれ平均階調値99、103、94で置き換えられている。こうして画素の階調値が平均階調値で置き換えられた画素群については、画素群内の各画素は全て同じ階調値となっているので、前述した第1実施例と同様にして画素群に形成すべきドット個数を決定することができる(図16のステップS406)。
これに対して、右下の画素群については階調差が33と大きく、エッジが含まれていると考えられるので、こうした階調値の置き換えは行わない。こうした画素群については、画素の階調値とディザマトリックスの閾値とを比較しながら画素毎にドット形成の有無を判断して(図9参照)、各画素についての判断結果を記憶しておく(図16のステップS408)。
以上のようにして、1つの画素群についての処理を終了したら、画像データ中の全ての画素について処理を終了したか否かを判断する(ステップS410)。そして未処理の画素が残っていれば(ステップS410:no)、ステップS400に戻って新たな画素群を生成し、続く一連の処理を繰り返す。こうして全ての画素を画素群としてまとめて上述の処理を終了したら(ステップS410:yes)、エッジを含まない画素群についてはステップS406で記憶しておいたドット個数を、またエッジを含む画素群についてはステップS408で記憶しておいた画素毎のドット形成有無を、プリンタ200に向かって出力する(ステップS412)。この結果、画素群のドット個数のデータと、画素群内の各画素についてのドット形成有無を示すデータとが、混在した状態でプリンタ200に出力されることになる。第2実施例の個数データ生成処理では、ドット個数のデータと、各画素についてのドット形成の有無を示すデータとを区別しながら出力するために、これらデータを次のような形態で出力する。
図18は、第2実施例においてコンピュータ100がプリンタ200に向かって出力するデータの形式を示した説明図である。画素群に形成するドット個数を出力する場合は、図18(a)に示すように、画素群あたり4ビットのデータとして出力する。ここでは、1つの画素群は8個の画素で構成されるものとしているから、ドット個数は0〜8の値しか取り得ず、4ビットあればドット個数を表現することができる。一方、ドット個数ではなく、各画素についてのドット形成の有無を出力する場合は、図18(b)に示すような形式でデータを出力する。すなわち、初めの4ビットに9〜15のいずれかの値を設定し(図18(b)の例示では「9」が設定されている)、続く8ビット分のデータに、画素毎のドット形成の有無を設定する。ドット個数は0〜8の値しか取り得ないから、先頭の4ビットのデータが9以上の値となっている場合は、続く8ビット分のデータはドット個数ではなく画素毎のドット形成の有無を表していると解釈すればよい。そして、それぞれのビットを、例えば図18(c)に示すような順番で各画素に対応付けておけば、画素群内でのドット形成の有無を示すデータを出力することができる。このような図18に示した形式でデータを出力する場合、エッジを含まない画素群については4ビットのデータとしてプリンタ200に転送され、エッジを含む画素群については12ビットのデータとして転送されることになる。
もちろん、ドット個数のデータと画素毎のドット形成の有無を示すデータとを混在させて出力する方法は、こうした方法に限定されるものではなく、例えば識別用のビットを付加してもよい。例えば、図19に符号(a)として示すように、識別用のビットが「0」の場合は、続く4ビットのデータがドット個数を表しているものと判断する。また、図19に符号(b)として示すように、識別用のビットが「1」の場合は、続く8ビットのデータが、画素毎のドット形成の有無を表しているものと判断しても良い。このようにしてデータを出力した場合は、エッジを含まない画素群については5ビットのデータとしてプリンタ200に転送され、エッジを含む画素群については9ビットのデータとして転送されることになる。
図18の転送方法と図19の転送方法とについてデータの転送量を比較すれば明らかなように、エッジを含まない画素群については、図18の方法による方が、図19に示した方法よりもデータ転送量が少なくなる。しかし、エッジを含む画素群については、逆に、図19の方法による方がデータ転送量が少なくなる。このことから、画素群中にエッジの含まれる割合が高い場合は、識別用のビットを用いた図19の方法を用いてデータを転送し、逆に、エッジの含まれる割合が低い場合は、図18に示した方法を用いてデータを転送すればよい。通常は、画素群にエッジが含まれる割合はそれほど高くないので、図18の方法を用いた方が迅速にデータを転送することができる。
図16のステップS412では、以上に説明したようにして、画素群のドット個数のデータと、画素毎のドット形成の有無を示すデータとを混在させた状態でプリンタ200に出力する。こうして、全ての画素群についてのデータを出力したら、図16に示した第2実施例の個数データ生成処理を終了して、画像印刷処理に復帰する。
C−2.第2実施例の画素位置決定処理:
上述したように、第2実施例においては、ドット個数のデータと画素毎のドット形成の有無を示すデータとが、コンピュータ100から同時に送られてくるので、プリンタ200では次のようにしてドットを形成する画素位置を決定する。尚、以下の説明では、データは図18に示した方法で転送されるものとする。
図20は、第2実施例において、ドットを形成する画素位置を決定する処理の流れを示すフローチャートである。処理を開始すると、先ず初めに4ビット分のデータを読み込む(ステップS500)。そして、読み込んだデータが9以上か否かを判断する(ステップS502)。前述したように、ここでは画素群に含まれる画素数は8個であり、ドット個数は0〜8の値しか取り得ない。このことから、読み込んだ値が9以上の値であれば、そのデータはドット個数を表しているのではなく、続くデータが画素毎のドット形成の有無を示すデータであることを表していると考えることができる。逆に、読み込んだ値が0〜8の値であれば、そのデータは、画素群に形成されるドット個数を表すデータと考えることができる。
そこで、読み込んだデータが9以上か否かを判断し、9以上でない場合は(ステップS502:no)、読み込んだデータをドット個数のデータと解釈し、前述した第1実施例と同様にして、画素群内でドットを形成する画素位置を決定する(ステップS504)。
一方、読み込んだデータが9以上である場合は(ステップS502:yes)、続く8ビットのデータを読み込んで、このデータが画素毎にドット形成の有無を表すものと解釈することにより、ドットを形成する画素位置を決定する(ステップS506)。
以上のようにして、画素群1つについて、ドットを形成する画素位置を決定したら、全ての画素群についての処理を終了したか否かを判断する(ステップS508)。そして、未処理の画素群が残っていればステップS500に戻って続く一連の処理を行う。こうして、全ての画素群について画素位置を決定するまで上述した処理を繰り返し、全ての画素群についての処理が終了したら、図20に示した第2実施例の画素位置決定処理を抜けて、画像印刷処理に復帰する。
以上、図16ないし図19に示した個数データ生成処理および図20に示した画素位置決定処理を行う第2実施例の画像印刷処理によれば、画素群内で各画素の階調値が同じ値とならない場合でも、エッジを含まない画素群についてはドット個数を示すデータを転送することができるので、プリンタ200に迅速にデータを転送して画像を迅速に印刷することが可能となる。
また、第2実施例の画像印刷処理では、エッジを含む画素群については画素毎にドット形成の有無を示すデータを転送しているので、エッジを含む画素群の割合が高くなるほど、プリンタ200へのデータ転送に要する時間が増加する。このことから、エッジの有無を検出するための判定基準を高くして、エッジが検出され難くするほどデータ転送に要する時間が短くなり、延いては画像の迅速な印刷が可能となる。その一方で、エッジが検出されなかった画素群については、画素群内の各画素の階調値を平均階調値によって置き換えてしまうので、データ転送時間の短縮化を図る余りエッジの判定基準を高くしすぎると(エッジが検出され難くすると)、印刷画質の低下が懸念される。
しかし、高い印刷画質が要求される画像は、通常は印刷解像度が入力される画像データの解像度よりの高い値に設定されている。高解像度に変換するために、解像度変換処理(図5のステップS104)で画素を分割して新たな画素を生成した場合でも、あるいは補間演算を行って新たな画素を生成した場合でも、ほとんどの画素群では階調値は緩やかに変化することになる。このことから、高い印刷画質が要求される画像では、ほとんどの場合、エッジの判定基準を高くせずとも大部分の画素群ではエッジは検出されず、高い画質を維持したままデータを迅速に転送することができる。
一方、印刷解像度が入力された画像データの解像度と同程度の低解像度である場合は、画素群にエッジが検出される割合が高くなる。従って、プリンタ200へのデータ転送に要する時間を短縮化するためには、判定基準を高くしてエッジが検出され難くする必要が生じる。しかし、このように印刷解像度が比較的低い値に設定されている場合は、画質よりも迅速な印刷が要求されないことが多いので、エッジの判定基準を高くしても画質の悪化が問題になることはない。
D.第3実施例:
以上に説明した各種の実施例は、個々の画素では、ドットを形成した状態あるいは形成しない状態に対応した2つの階調値しか表現し得ないものとして説明した。しかし、プリンタの中には、形成するドットの大きさを変えたり、あるいはドットを形成するために用いるインクの濃さを変えることで、個々の画素単独で、より多くの階調値を表現可能としたプリンタも存在する。本発明は、こうしたいわゆる多値プリンタに対しても有効に適用することができる。以下では、本発明を多値プリンタに適用した第3実施例について説明する。
D−1.第3実施例の画像印刷処理の概要:
図21は、第3実施例の画像印刷処理の流れを示すフローチャートである。第3実施例の画像印刷処理は、図5を用いて説明した第1実施例の画像印刷処理に対して、色変換処理後のデータを大中小ドットのデータに変換する点が大きく異なっている。以下では、この相違点を中心に、第3実施例の画像印刷処理について説明する。尚、ここでは、プリンタ200はドットの大きさを変更可能な多値プリンタであるものとして説明するが、もちろん以下の説明は、ドットの大きさではなくインクの濃度を変更するプリンタや、更にはドットの大きさとインクの濃度とを同時に変更可能な多値プリンタにも、同様に適用することができる。
第3実施例の画像印刷処理においても、第1実施例の画像印刷処理と同様に、先ず初めに、変換すべき画像データを読み込んで(ステップS600)、読み込んだデータに対して色変換処理を行う(ステップS602)。色変換処理を行うことにより、画像データはC,M,Y,K各色の階調値によって表現された階調データに変換される。
ここで、前述した第1実施例のプリンタ200では、ドットの大きさを変えることはできず、各色毎にドットを形成するか形成しないかのいずれかの状態しか取り得ないものとした。このため、色変換後のデータに基づいて直ちに、画素毎のドット形成の有無を判断した。これに対して第3実施例のプリンタ200では、ドットの大きさを変えて大ドット、中ドット、小ドットの3種類のドットを形成することが可能である。そこで、色変換処理によって得られた階調データを、一旦、大ドット用のデータ、中ドット用のデータ、小ドット用のデータに各色毎に変換する(ステップS604)。
階調データから、大ドット、中ドット、小ドットのそれぞれのドットデータへの変換は、図22に示す変換テーブルを参照することによって行う。図示するように、変換テーブルには、大ドットデータ、中ドットデータ、小ドットデータが階調データに対応付けて記憶されており、かかる変換テーブルを参照することによって、色変換後の階調データを変換する。
次いで、大ドットデータ、中ドットデータ、小ドットデータのそれぞれのデータに対して解像度変換処理を行う(ステップS606)。解像度変換には種々の方法を適用することができるが、説明を簡便にするために、ここでは第1実施例と同様に、画素を分割して解像度を変換するものとする。分割して生成された新たな画素には、元の画素の階調値と同じ階調値が設定される。
こうして解像度を印刷解像度に変換した後、個数データ生成処理を行う(ステップS608)。第3実施例ではプリンタ200が大ドット、中ドット、小ドットの3種類のドットを形成することが可能である。このことに対応して個数データ生成処理では、これら各種ドットについてのドット個数のデータを生成して、得られたドット個数のデータをプリンタ200に出力する。
図23は、第3実施例の個数データ生成処理において、ドットデータからドット個数のデータを生成する様子を示した説明図である。図23(a)は、画素群としてまとめられる各画素に、大中小の各種ドットについてのドットデータが設定されている様子を模式的に表している。図中に示した実線の矩形の各々が画素群を表している。画素群は複数の画素から構成されており、各画素にドットデータが設定されているが、図示が煩雑となることを避けるために、図23では、個々の画素の表示は省略し、その代わりに画素群にドットデータが設定されているものとして表示している。例えば、図23(a)の左上隅の画素群に、Data(L,M,S)=(2,90,32)と表示されているのは、この画素群の各画素に、大ドットのドットデータ「2」、中ドットのドットデータ「90」、小ドットのドットデータ「32」が設定されていることを表している。もちろん、第1実施例においても説明したように、画素群を構成する全ての画素が同じ階調値を有する場合は、解像度変換処理を行わず、個数データ生成処理の中で実質的に解像度変換を行うこととしても良い。
第3実施例の個数データ生成処理では、こうした各種ドットについてのドットデータに後述する処理を施すことにより、図23(b)に示すようなドット個数のデータを生成する。図23(b)においても図23(a)と同様に、実線の矩形は画素群を表している。
画素群は複数の画素から構成されているが、各画素の表示は省略して、画素群毎にドット個数のデータが生成されているものとして表示している。例えば、図23(b)の左上隅の画素郡中に、Dot(L,M,S)=(1,2,1)と表示されているのは、この画素群を構成する各画素については、大ドット、中ドット、小ドットのドット個数として、それぞれ「1」、「2」、「1」が生成されたことを表している。第3実施例の個数データ生成処理の内容については後述する。
プリンタ200は、コンピュータ100から出力されたドット個数のデータを受け取ると、画素位置決定処理を行う(ステップS610)。第3実施例では大ドット、中ドット、小ドットの3種類のドットを形成することから、画素位置決定処理では、これら各種ドットを形成する画素位置を決定する。第3実施例の画素位置決定処理の内容については後述する。
こうして画素位置を決定したら、プリンタ200はキャリッジ240の主走査と副走査とを繰り返しながらインク吐出用ヘッドを駆動することにより、印刷用紙上に大中小の各ドットを形成する(ステップS612)。この結果、画像データに対応した画像が印刷されることになる。
D−2.第3実施例の個数データ生成処理:
以下、第3実施例の個数データ生成処理の内容について説明する。図24は、第3実施例の個数データ生成処理の流れを示したフローチャートである。かかる処理も、コンピュータ100に内蔵されたCPUによって実行される。
第3実施例の個数データ生成処理を開始すると、CPUは先ず初めに、画像データの中から所定の複数個の画素をまとめて画素群を生成する(ステップS700)。個数データ生成処理に先立って行われる解像度変換処理(図21のステップS606)において、第1実施例と同様に、画素を分割して新たな画素を生成することとしているから、ここでも、同じ画素から分割された複数の画素を画素群としてまとめるものとする。
次いで、画素群内の各画素について、大ドット、中ドット、小ドットのドットデータを読み込む(ステップS702)。尚、ここでは、画素群を構成する画素は、いずれも同じ画素から分割されて同じ階調値を有するから、画素毎にドットデータを読み込むのではなく、画素群毎に1画素分だけ読み込むこととしても良い。
こうして各種ドットのドットデータを読み込んだら、ディザマトリックスを参照することにより、大ドット、中ドット、小ドットについての形成有無を判断する(ステップS704)。図25は、ディザマトリックスを参照しながら、着目画素に大ドット、中ドット、小ドットのいずれのドットを形成するべきかを判断する方法を示した説明図である。尚、図25では、ドットデータとして図23(a)に示すデータを使用し、ディザマトリックスとしては、図8に示すマトリックスを使用する場合を想定している。
図25は、画像の左上隅にある画素群について、各種ドットの形成有無を判断する様子を示している。図中で、太い実線の矩形は画素群を表しており、画素群が細い破線で区分されているのは、画素群が複数の画素によって構成されていることを表している。また、画素の中に表された数値は、ディザマトリックスの対応する位置に設定されている閾値の値を表している。
ドット形成有無の判断を開始すると、先ず初めに、大ドットのドットデータと、ディザマトリックスに設定されている閾値とを比較して、ドットデータの方が大きい画素については大ドットを形成するものと判断する。図25の符号(a)は、こうして、画素群内の各画素について大ドットの形成有無を判断している様子を示している。具体的には、大ドットのドットデータは「2」であるから、一番左上隅にある階調値「1」の画素についてだけ、ドットデータの方が大きく、他の画素については全てディザマトリックスの閾値の方が大きくなっている。そこで、この画素群では、大ドットは1つだけ形成される。図25の符号(a)において、ディザマトリックスの閾値が「1」の画素に細かい斜線が付されているのは、この画素に大ドットを形成すると判断されたことを表している。
大ドットについての形成有無を判断したら、今度は中ドットについての形成有無を判断する。中ドットについての判断に際しては、大ドットのドットデータに中ドットのドットデータを加算して、中ドット用の中間データを算出し、この中間データとディザマトリックスの閾値とを比較する。そして、中間データの方が閾値よりも大きな画素については、中ドットを形成するものと判断する。このとき、既に大ドットを形成することとした画素については、中ドットの形成有無の判断は行わない。図25の符号(b)に即して具体的に説明すると、大ドットのドットデータは「2」であり、中ドットのドットデータは「90」であるから、中ドット用の中間データは「92」と算出される。この中間データとディザマトリックスの閾値とを比較する。但し、画素群中で一番左上隅にある画素については、既に大ドットを形成することとしているので、かかる比較は行わない。そして、ディザマトリックスの閾値が「42」の画素と「58」の画素については、中間データの方が大きくなるので、中ドットを形成すると判断する。図25の符号(b)中で、これらの画素に斜線が付されているのは、中ドットを形成すると判断されたことを表している。
中ドットの形成有無を判断したら、最後に小ドットの形成有無を判断する。小ドットの判断に際しては、中ドット用の中間データに小ドットのドットデータを加算して、小ドット用の中間データを算出し、未だドットを形成すると判断されていない画素について、この中間データとディザマトリックスの閾値とを比較する。そして、中間データの方が大きい画素については、小ドットを形成するものと判断する。図25の符号(c)に即して具体的に説明すると、中ドット用の中間データは「92」であるから、小ドットのドットデータ「32」を加算して、小ドット用の中間データは「124」と算出される。この中間データと、ディザマトリックスの閾値とを比較する。そして、ディザマトリックスの閾値が「109」の画素については中間データの方が大きいので、この画素には小ドットを形成すると判断する。図25の符号(c)中で、この画素に粗い斜線が付されているのは、小ドットを形成すると判断されたことを表したものである。図24のステップS704では、以上のようにして画素群内の各画素について、大ドット、中ドット、小ドットの形成有無を判断する。
各種ドットの形成有無を判断したら、その画素群に形成すべき各種ドットの個数を記憶する(ステップS706)。図25に示した例では、大ドット、中ドット、小ドットの個数として、それぞれ1個、2個、1個である旨を記憶する。
こうして複数の画素を画素群にまとめて、画素群内に形成する各種ドットの個数を記憶したら、画像データに含まれる全画素についての処理を終了したか否かを判断し(ステップS708)、未処理の画素が残っている場合は(ステップS708:no)、ステップS700に戻って新たな画素群を生成した後、続く一連の処理を繰り返す。こうして、全ての画素についての処理を終了したら(ステップS708:yes)、画素群毎に記憶しておいた各種ドットの個数をプリンタ200に向かって出力する(ステップS710)。
ここで、プリンタ200へ出力するデータ量を更に少なくするために、各種ドットについての個数のデータは、次のようにしてコード化した状態で出力する。
図26は、各種ドットの個数のデータをコード化するために参照される変換テーブルを概念的に示した説明図である。変換テーブルには、大ドット、中ドット、小ドットの各種ドット個数の組合せ毎に、1つずつコード番号が設定されている。例えば、大ドット、中ドット、小ドットのいずれの個数も0個である組合せには、コード番号「0」が設定されている。また、大ドットと中ドットの個数が0個であり、小ドットの個数が1個である組合せには、コード番号「1」が設定されている。
こうして、各種ドットの個数をコード番号に変換してからプリンタ200に出力することで、データ量を減らすことができる。この理由について若干説明する。ここでは画素群は8つの画素から構成されているものとしているから、各種ドットが取り得る最大個数は8個であり、従って、ドット個数のデータは、ドット種類毎に4ビットあれば足りる。ドットの種類は3種類だから、結局、画素群あたりに必要なデータ量は12ビットとなる。
これに対して、図26に示すように、コード番号は0〜164の値しか取り得ないから、コード化すれば画素群あたり8ビットあれば充分となる。すなわち、これだけでデータ量を2/3に減らすことが可能である。
更に、各種ドット個数の組合せの中には、実際の印刷では発生しない組合せも多く含まれており、当然、これらの組合せにはコード番号を設定する必要はない。従って、必要な組合せにだけコード番号を設定することとすれば、画素群あたりに必要なデータ量は8ビットよりも少なくなるので、更にデータ量を減少させることが可能となる。
図24のステップS710では、以上のような理由から、各種ドットについての個数のデータをコード化してプリンタ200に出力するのである。こうして、各種ドットの個数を画素群毎にコード化した状態でプリンタ200に出力したら、第3実施例の個数データ生成処理を終了して、図21の画像印刷処理に復帰する。
尚、以上に説明した第3実施例の個数データ生成処理では、画素を特定しながら各種ドットの形成有無を判断したが、プリンタ200に供給される情報はドット個数の情報のみであり、画素位置の情報までは供給していない。このことから、前述した第1実施例の第1の変形例と同様に(図13参照)、画素位置を特定することなくドット個数を求めることとしても良い。図27は、こうして画素位置を特定することなく、各種ドットのドット個数を求める様子を概念的に示した説明図である。
図27は、図25での説明に用いた画素群を例に取って、画素位置を特定することなく各種ドットのドット個数を求める方法を示した説明図である。複数種類のドットについてドット個数を求める場合でも、単一のドットのドット個数を求める場合と同様に、簡易ディザマトリックスを使用する。前述したように簡易ディザマトリックスとは、ディザマトリックス中では画素群内の各画素に対応付けられている閾値が、各画素と対応付けられることなく画素群毎にひとまとまりの閾値の組として記憶されているマトリックスである。
例えば図25に示した画素群には、画素群内の各画素に対応付けてディザマトリックスの閾値が設定されている。これに対して簡易ディザマトリックスを用いる図27では、これら閾値の組{255,212,177,170,109,58,42,1}が画素群に設定されている。以下、図27に従って、画素位置を特定することなく各種ドットのドット個数を求める方法について説明する。
ドット個数は、先ず初めに大ドットのドット個数を求め、次に中ドット、最後に小ドットの順番で求めていく。図27の符号(a)は大ドットのドット個数を求める様子を表しており、図27の符号(b)は中ドットのドット個数を、図27の符号(c)は小ドットのドット個数を求める様子を表している。大ドットのドット個数を求めるためには、大ドットのドットデータと、画素群に設定されている閾値の組とを比較する。そして、ドットデータより小さな閾値の個数だけ大ドットを形成すると判断する。図27の符号(a)に示した例では、大ドットのドットデータは「2」であるから、ドットデータより小さな閾値は1つだけ存在しており、従って、大ドットのドット個数を1個と求めることができる。図27の符号(a)中で閾値「1」に細かい斜線が施されているのは、この閾値については大ドットを形成すると判断されたことを模式的に表したものである。
大ドットのドット個数を求めたら、大ドットのドットデータに中ドットのドットデータを加えて中ドット用の中間データを算出する。そして、この中間データと閾値の組とを比較して、中間データよりも小さな閾値の個数だけ中ドットを形成すると判断する。但し、既に大ドットを形成すると判断されている閾値との比較は行わない。図27の符号(b)に示した例では、大ドットのドットデータは「2」であり、中ドットのドットデータは「90」であるから、中ドット用のドットデータは「92」と算出される。既に大ドットを形成すると判断した閾値「1」を除けば、この中間データ「92」よりも小さな閾値は2つ存在する。そこで、この画素群に形成する中ドットの個数は2個であると求めることができる。図27の符号(b)中に、閾値「42」と閾値「58」に斜線が施されているのは、これら閾値については中ドットを形成すると判断されていることを模式的に表したものである。
中ドットのドット個数を求めたら、中ドット用の中間データに小ドットのドットデータを加えて、小ドット用の中間データを算出する。そして、この中間データと閾値の組とを比較することにより、小ドットのドット個数を求めてやる。図27の符号(c)に示した例では、中ドット用の中間データは「92」、小ドットのドットデータは「32」であるから、小ドット用の中間データは「124」となる。いずれのドットも形成されていない閾値の中で、この中間データよりも小さな閾値は1つだけあるから、この画素群に形成される小ドットの個数は1個だけであると判断することができる。図27の符号(c)中で、閾値「109」に斜線が施されているのは、この閾値については小ドットを形成すると判断したことを模式的に表したものである。
このように、簡易ディザマトリックスを参照しながら、各種ドットのドット個数を求めて行けば、画素位置を特定することなくドット個数を求めることが可能である。こうすれば、ドットデータあるいは中間データを、閾値の組と比較するだけでドット個数を求めることができ、画素毎に設定された閾値と比較する必要がないので、各種ドットについてのドット個数のデータを迅速に求めることが可能となる。
D−3.第3実施例の画素位置決定処理:
以上に説明したように、第3実施例の個数データ生成処理では、画素群毎に各種ドットのドット個数が求められた後、ドット個数を示すデータがプリンタ200に転送される。
プリンタ200では、転送されてきたデータを受け取って、各種ドットを形成する画素位置を決定した後、決定に従って印刷用紙上に各種ドットを形成することによって画像を印刷する。以下では、ドット個数を示すデータに基づいて各種ドットを形成する画素位置を決定する処理について説明する。
図28は、第3実施例の画素位置決定処理の流れを示したフローチャートである。かかる処理は、プリンタ200の制御回路260に内蔵されたCPUによって実行される。
第3実施例の画素位置決定処理を開始すると、先ず初めに、画素位置を決定しようとする画素群を選択し(ステップS800)、次いで、転送されてきたデータの中から、選択した画素群のデータを取得する(ステップS802)。ここでは、図26を用いて説明したように、ドット個数のデータはコード化された状態で転送されているものとする。そこで、コード化されたデータを、各種ドットのドット個数を示すデータに復号化する(ステップS804)。
データの復号化は、図26に示した変換テーブルを、コード番号の側から参照することによって行う。例えば、コード化されたデータが「162」であれば、変換テーブル中でコード番号「162」に対応付けられているドット個数から、大ドット7個、中ドット0個、小ドット1個とドット個数のデータに復号することができる。
こうして各種ドットのドット個数が得られたら、ディザマトリックスを参照することにより、各種ドットを形成する画素位置を決定する(ステップS806)。かかる処理について、図29を参照しながら説明する。
図29は、ある画素群について、各種ドットのドット個数が与えられたときに、ディザマトリックスを参照しながら、これらドットを形成する画素位置を決定する様子を示した説明図である。図中に示した太い実線の矩形は画素群を表している。画素群を区分する細い破線は、画素群が複数の画素から構成されていることを表している。また、画素中に示された数値は、ディザマトリックスの対応する位置に設定されている閾値を示している。
尚、ディザマトリックスは、ドット個数を求めるために用いたマトリックスと同じマトリックスを使用するものとする。
今、この画素群に形成する各種ドットの個数が、大ドット1個、中ドット2個、小ドット1個であるものとして、初めに大ドットを形成する画素位置を決定する。前述したように、ディザマトリックスの閾値は、ドットの形成され易さを表していると考えることができるから、大ドットを1個だけ形成するとすれば、最も小さな閾値の設定された画素に形成されることになる。大ドットの画素位置を決定したら、続いて中ドットを形成する画素位置を決定する。中ドットは2個形成することになっており、また、最も小さな閾値の画素には既に大ドットが形成されているから、閾値が2番目に小さな画素と3番目に小さな画素の2つの画素に中ドットを形成すると判断する。中ドットに続いて小ドットの画素位置を決定する。小ドットは1個だけ形成することになっており、また、閾値の最も小さな画素から3番目に小さな画素までは、既に大ドットあるいは中ドットが形成されているから、4番目に閾値の小さな画素に小ドットを形成すると判断する。
図29は、こうして大ドット、中ドット、小ドットの順番で、ドットを形成する画素を決定している様子を表しており、図中で、細かい斜線が付された画素は大ドットを形成すると判断された画素を、中間の斜線が付された画素は中ドットを形成すると判断された画素を、粗い斜線が付された画素は小ドットを形成すると判断された画素を、それぞれ表している。図28のステップS806では、このようにして、ディザマトリックスを参照しながら、各種ドットを形成する画素位置を決定する。
以上のようにして、1つの画素群について、各種ドットを形成する画素位置を決定したら、コンピュータ100から供給された全画素群のデータについて、画素位置を決定する処理を終了したか否かを判断する(ステップS808)。未処理の画素群が残っている場合は(ステップS808:no)、ステップS800に戻って、新たな画素群について続く一連の処理を繰り返す。こうして全ての画素群について画素位置を決定したと判断されたら(ステップS808:yes)、図28に示す画素位置決定処理を抜けて、画像印刷処理に復帰した後、印刷用紙上に各種ドットを形成する。この結果、画像データに対応した画像が印刷されることになる。
プリンタ200がいわゆる多値プリンタである場合には、以上に説明した第3実施例の画像印刷処理を行うことにより、コンピュータ100からプリンタ200に各種ドットのドット個数を転送しながら画像を印刷することができる。こうすれば、画素毎にドット形成の有無を示すデータを供給するよりも、迅速に供給することができるので、たとえ、画素数の多い画像でも、迅速に画像を印刷することが可能となる。
D−4.変形例:
上述した第3実施例の画素位置決定処理にも各種の変形例が存在している。以下、これら変形例について説明する
(1)第1の変形例:
上述した第3実施例の画素位置決定処理では、コード化されたデータを復号化する際に、各種ドットのドット個数のデータに復号化するものとして説明した。しかし、上述したように、大ドット、中ドット、小ドットの順番で画素位置を決定することから、各種ドットのドット個数ではなく、大ドットの個数、大ドットと中ドットの合計個数、大ドットと中ドットと小ドットの合計個数に復号化することとしても良い。例えば、図29に示した例では、{大ドット:1個、中ドット:2個、小ドット:1個}と復号化する代わりに、{大ドット:1個、大ドット+中ドット:3個、大ドット+中ドット+小ドット:4個}と復号化するのである。
図30は、このような復号化を行うために参照される復号化テーブルを概念的に表した説明図である。このような形態で復号化しておけば、ドットを形成する画素位置を迅速に決定することが可能となる。以下、こうした第1の変形例の画素位置決定処理について説明する。
図31は、第3実施例における第1の変形例の画素位置決定処理の流れを示すフローチャートである。以下、フローチャートに従って説明する。第1の変形例の画素位置決定処理を開始すると、先ず初めに、画素位置を決定しようとする画素群を選択して、その画素群についての個数データを取得する(ステップS830)。この個数データは、前述した個数データ生成処理でコード化された状態で供給されている。
次いで、図30に示した復号化テーブルを参照することにより、コード化された個数データを大ドットの個数、大ドットおよび中ドットの個数の合計値、大ドットと中ドットと小ドットの個数の合計値に変換する。そして、得られた大ドットの個数を大ドットの閾値THL 、大ドットおよび中ドットの個数の合計値を中ドットの閾値THm 、大ドットと中ドットと小ドットの個数の合計値を小ドットの閾値THs とする(ステップS832)。
各種ドットについての閾値を取得したら、画素群の中から画素を1つ選択し(ステップS834)、続いて、序列マトリックスを参照することにより、選択した画素についての順番Nを取得する(ステップS836)。そして、画素の順番Nと、各種ドットについての閾値THL ,THm ,THs との大小関係を判断する(ステップS838)。その結果、画素の順番Nが大ドットの閾値THL よりも小さければ、その画素には大ドットを形成すると判断する(ステップS840)。画素の順番Nが大ドットの閾値THL よりも大きいが、中ドットの閾値THm よりも小さい場合は、その画素には中ドットを形成すると判断する(ステップS842)。画素の順番Nが中ドットの閾値THm よりも大きいが、小ドットの閾値THs よりも小さい場合は、その画素には小ドットを形成すると判断する(ステップS844)。また、画素の順番Nが小ドットの閾値THs よりも大きい場合には、その画素にはドットを形成しないと判断する(ステップS846)。
これを、具体例を挙げて説明すると、今、大ドットの閾値THL が2,中ドットの閾値THm が3、小ドットの閾値THs が5であったとする。この画素群には大ドットは2つだけ形成されるから、大ドットは、最もドットが形成され易い画素(すなわち画素の順番が1番の画素)と、その次にドットが形成され易い画素(すなわち画素の順番が2番の画素)とに形成される。従って、画素の順番Nが大ドットの閾値THL よりも小さな画素に大ドットを形成すると判断すればよい。また、大ドットの閾値THL が2で、中ドットの閾値THm が3であるから、この画素群には中ドットは1つだけ形成される。ここで、画素の順番が1番および2番の画素については既に大ドットが形成されているから、中ドットは画素の順番が3番目の画素に形成される。このことから、画素の順番Nが大ドットの閾値THL よりは大きく、中ドットの閾値THm よりは小さい画素には、中ドットを形成すると判断すればよい。同様にして、この画素群には小ドットは2つだけ形成される。従って、画素の順番Nが中ドットの閾値THm よりは大きく、小ドットの閾値THs よりは小さい画素には、小ドットを形成すると判断すればよい。そして、画素の順番Nが小ドットの閾値THs よりも大きな画素には、ドットを形成しないと判断すればよい。
こうして、1つの画素について形成すべきドットの種類を決定したら、選択した画素群内の全画素についてドット種類を決定したか否かを判断する(ステップS848)。そして、未処理の画素が残っている場合は(ステップS848:no)、ステップS834に戻って新たな画素を1つ選択し、上述した続く一連の処理を行う。こうした処理を繰り返し、画素群内の全画素についてドットの種類を決定したら(ステップS848:yes)、その画素群については、各種ドットを形成すべき画素位置が決定されたことになる。そこで今度は、全画素群について画素位置を決定したか否かを判断する(ステップS850)。未処理の画素群が残っている場合は(ステップS850:no)、ステップS830に戻って続く一連の処理を繰り返す。こうした操作を繰り返して、全画素群について画素位置を決定したと判断されたら(ステップS850:yes)、図31に示した第1の変形例の画素位置決定処理を終了する。
以上に説明した第1の変形例の画素位置決定処理では、コード化されたデータを復号化する際に、図30に示したように、大ドットの個数、大ドットおよび中ドットの個数の合計値、大ドットと中ドットと小ドットの個数の合計値に復号化する。そして、これらを閾値として使用して、画素の順番とこれら閾値との大小関係を判断することで、その画素に形成すべきドットの種類を直ちに決定することが可能となる。
(2)第2の変形例:
また、コード化されたデータを復号化する形態を工夫すれば、大小関係を判断することなく、画素群内でドットを形成する画素位置を決定することも可能である。以下では、このような第2の変形例について説明する。
図32は、第3実施例における第2の変形例の画素位置決定処理の流れを示すフローチャートである。第2の変形例の画素位置決定処理においても、処理を開始すると、先ず初めに、画素位置を決定しようとする画素群を選択して、その画素群についてのコード化された個数データを取得する(ステップS860)。
次いで、図33に示すような復号化テーブルを参照することにより、コード化された個数データを中間データに復号化する。図33に示すように、中間データは8桁の数字列であり、下位側の桁から順番に大ドットを表す数字(ここでは「3」)、中ドットを表す数字(ここでは「2」)、小ドットを表す数字(ここでは「1」)、ドットを形成しないことを表す数字(ここでは「0」)が設定されている。例えば、大ドットが1個、中ドットが2個、小ドットが3個である場合は、最下位の桁の数字は大ドットを表す数である「3」が設定され、下位から2番目および3番目の桁には中ドットを表す数の「2」が設定され、下位から4番目ないし6番目の桁には小ドットを表す数の「1」が、残りの桁にはドットを形成しないことを表す数の「0」が設定される。結局、この場合の中間データは、図34(a)に示すような、8桁の数字「00111223」となる。逆に言えば、この中間データは、大ドットが1個、中ドットが2個、小ドットが3個の組合せを表していることになる。図33には、コード化された個数データと、このような中間データとの対応関係が設定されている。図32のステップS862では、こうした対応関係を参照することにより、コード化された個数データを中間データに変換する処理を行う。尚、ここで中間データが8桁のデータとなっているのは、画素群に含まれる画素数が8個であることに対応したものである。従って、1つの画素群に含まれる画素数がK個である場合は、中間データはK桁のデータとなる。
次いで、画素位置を決定しようとしている画素群の中から、対象とする画素を1つ選択し(ステップS864)、序列マトリックスを参照することにより、選択した画素についての順番Nを取得する(ステップS866)。そして、先に取得した中間データの下位からN桁目に設定されている数字を求め、得られた数字に対応するドットが、その画素には形成されるものとする(ステップS868)。例えば、画素群の中間データが図34(a)に示すデータであり、画素の順番が3番目であったとすると、下位側から3番目に設定されている数字は「2」であるから、その画素には中ドットを形成するものと判断するのである。図34(b)は、下位側から3番目に設定されている数字を読み出して、その画素には中ドットを形成するものと決定している様子を概念的に示している。
こうして画素群内から選択した1つの画素についてドットの種類を決定したら、画素群内の全画素についてドット種類を決定したか否かを判断する(ステップS870)。そして、未だ決定していない画素が残っている場合は(ステップS870:no)、ステップS864に戻って、画素群の中から新たな画素を1つ選択し、上述した一連の処理を行う。こうした処理を繰り返すことにより、画素群内の全画素についてドットの種類を決定したと判断されたら(ステップS870:yes)、その画素群についてはドットを形成すべき画素位置が決定されたことになる。そこで今度は、全画素群について画素位置を決定したか否かを判断する(ステップS872)。そして、未処理の画素群が残っている場合は、ステップS860に戻って新たな画素群を選択し、続く一連の処理を行う。こうした処理を繰り返し、全画素群について画素位置を決定したら(ステップS872:yes)、図32に示した第2の変形例の画素位置決定処理を終了する。
以上に説明した第2の変形例の画素位置決定処理では、コード化された個数データを復号化する際に、ドットの個数を表す図33に示すような中間データに変換し、画素の順番に相当する桁の数字を読み出すことでドットの種類を決定している。こうすれば、中間データから該当する箇所に設定されている値を読み出すという極めて簡単な操作で、ドットの種類を迅速に決定することが可能となる。
また、第2の変形例の画素位置決定処理では、上述した各種実施例とは異なり、条件判断を行うことなくドット種類を決定することが可能である。近年のコンピュータでは処理の高速化を図るために、いわゆるパイプライン処理と呼ばれる技術が活用されているが、その一方で、条件分岐を含む処理に対しては、パイプライン処理の技術を適用しても、さほど処理を高速化することができず、返って処理速度が低下する場合もあることが知られている。上述した第2の変形例の画素位置決定処理では、条件判断を行うことなくドット種類を決定することができるので、パイプライン処理の効果を十分に発揮させることが可能であり、こうした観点からも、高速処理に適した処理であると言うことができる。
尚、以上の説明では、中間データの中から画素の順番に応じた位置に設定されている数字を読み出すものとして説明したが、読み出す位置を固定したまま中間データをシフトさせることによって、画素の順番に応じた位置に設定されている数字を読み出すこととしても良い。これを、図34に示した例を用いて説明する。今、対象としている画素の順番が3番であるとすると、その画素に形成するドット種類は、中間データの下から3桁目に設定されている(図34(b)参照)。そこで、中間データを2桁分だけ右方向にシフトさせて図34(c)に示すデータを生成し、最下位の桁に設定されている数字を読み出してやる。対象としている画素の順番がNであれば、中間データをN−1桁分だけ右方向にシフトさせた後、最下位の桁の数字を読み出せばよい。このように、中間データをシフトさせれば、数字を読み出す位置は常に同じ位置に固定しておくことができる。中間データの桁をシフトさせる操作は極めて迅速に実施することができるから、数字を読み出す位置を固定してやれば、より簡便に且つ迅速にドット種類を決定することが可能となる。
E.その他の変形例:
本発明には、上述した実施例の他にも、更に各種の変形例が存在する。以下では、これら変形例について簡単に説明する。
(1)第1の変形例:
上述した各種の実施例の個数データ生成処理では、いわゆるディザ法を用いてドット形成の有無を判断している。しかし、画像データの階調値に応じて適切な密度となるようにドット個数を求めることができるのであれば、どのような手法を使用することもできる。
例えば、図35に示した変形例の個数データ生成処理のように、画素群内の各画素の平均階調値を算出して、この平均階調値に基づいて、画素群内に形成するドット個数を一義的に求めることとしても良い。以下、図35のフローチャートに従って簡単に説明する。
個数データ生成処理を開始すると、先ず初めに、所定の複数個の画素を画素群としてまとめて(ステップS900)、画素群内の各画素の平均階調値を算出し(ステップS902)、この平均階調値に基づいて画素群内に形成するドット個数を一義的に決定する。すなわち、図36に例示したように、画素群内に形成するドット個数を平均階調値に対応付けて予め定めておき、この対応関係に基づいて、画素群の平均階調値からドット個数を決定する。尚、図36では、ドット種類が3種類である場合について示しているが、ドット種類は3種類に限られるものではない。
次いで、こうして決定したドット個数を画素群毎に記憶した後(ステップS906)、全画素についての処理が終了したか否かを判断する(ステップS908)。そして、未処理の画素が残っていれば、ステップS900に戻って続く一連の処理を繰り返す。全ての画素の処理を終了したと判断されたら、記憶しておいたドット個数の図30を用いて説明した方法によってコード化した後、コード化したドット個数のデータをプリンタ200に向かって出力する(ステップS910)。
プリンタ200では、コンピュータ100から出力されたドット個数のデータを受け取った後、前述した画素位置決定処理を行って画像を印刷する。こうすれば、画素群毎のドット個数のデータを簡便に求めることができるので、ドット個数のデータを迅速に出力することができ、延いては、更に迅速に画像を印刷することが可能となる。
(2)第2の変形例:
以上に説明した各種実施例の個数データ生成処理では、初めに、複数個の画素を画素群としてまとめた後、画素群内に形成するドット個数を決定している。しかし、初めに、画素毎のドット形成の有無を判断し、その後に、複数個の画素を画素群としてまとめることとしても良い。
例えば、図37に示した変形例では、初めに、画像データにいわゆる誤差拡散法を適用して、全ての画素についてドット形成の有無を判断する(ステップS950)。その後、所定の複数個の画素を画素群としてまとめ(ステップS952)、形成するドット個数を画素群毎に数えて記憶する(ステップS954)。
こうして1つの画素群についてドット個数を記憶したら、全ての画素についての処理を終了したか否かを判断し(ステップS956)、未処理の画素が残っている場合は、ステップS900に戻って続く一連の処理を繰り返す。全ての画素についての処理を終了したと判断されたら、画素群毎に記憶しておいたドット個数をプリンタ200に向かって出力する(ステップS958)。
プリンタ200では、こうしてコンピュータ100からドット個数のデータを受け取ると、前述した画素位置決定処理を行って、ドットを形成する画素位置を画素群毎に決定する。尚、図37に示す変形例では誤差拡散法に基づいてドット個数を求めているが、このような場合でも、前述したようにディザマトリックスを参照しながら画素位置を決定することができる。
また、一般に、誤差拡散法を用いてドット形成の有無を判断した場合、ドットの形成密度が低い領域でノイズの少ない良好な画質が得られることが知られている。このことから、例えば、ドットが1つも形成されない多くの画素群の中に、ドットの形成される画素群がまばらに分布しているようなドット密度の低い画像を印刷する場合、画素群のドット個数を誤差拡散法に基づいて求めてやれば、ドットを適切に分布させて、高画質な画像を得ることが可能となる。
(3)第3の変形例:
以上に説明した各種実施例では、ディザマトリックスに基づいて画素位置を決定するものとして説明した。前述した序列マトリックスを参照しながら画素位置を決定する場合は、直接にはディザマトリックスを参照しているわけではないが、序列マトリックスはディザマトリックスに基づいて生成されていることから、間接的には、ディザマトリックスに基づいて画素位置を決定している考えることができる。しかし、画素群毎に、異なる序列を用いて画素位置を決定することができれば、必ずしもディザマトリックスに基づいて決定する必要はない。
例えば、図38のフローチャートに示したように、複数の序列を記憶しておき、この中から画素毎に適当な序列を選択して画素位置を決定することとしても良い。以下、図38のフローチャートに従って簡単に説明する。
プリンタ200の制御回路260に内蔵されたCPUは、変形例の画素位置決定処理を開始すると先ず初めに、画素位置を決定しようとする画素群を選択して、この画素群のドット個数のデータを取得する(ステップS970)。次いで、予め記憶しておいた複数の序列の中から、任意の序列を1つ選択する(ステップS972)。制御回路260のROMには、画素群内の各画素について複数通りの序列が予め記憶されている。図39は、ROMに記憶されている複数通りの序列を模式的に示した説明図である。ステップS972では、これら序列の中から序列を1つ選択する。
そして、選択した序列を参照しながら、画素群内にドットを形成する画素位置を決定する(ステップS974)。こうして1つの画素群について画素位置を決定したら、全ての画素群についての処理を終了したか否かを判断し(ステップS976)、未処理の画素群が残っていれば、ステップS970に戻って続く一連の処理を行って、画素位置を決定する。そして、全ての画素群についての処理を終了するまで、上述した処理を繰り返す。
この様にしても、画素群毎のドット個数のデータから、ドットを形成する画素位置を決定することができる。また、画素位置を決定するために参照する序列は、ほとんどの場合、画素群毎に異なる序列が選択されるので、同じパターンでドットが形成されて画質が悪化するおそれもない。
以上、各種の実施例について説明してきたが、本発明は上記すべての実施例に限られるものではなく、その要旨を逸脱しない範囲において種々の態様で実施することができる。
例えば、上述の機能を実現するソフトウェアプログラム(アプリケーションプログラム)を、通信回線を介してコンピュータシステムのメインメモリまたは外部記憶装置に供給し実行するものであってもよい。もちろん、CD−ROMやフレキシブルディスクに記憶されたソフトウェアプログラムを読み込んで実行するものであっても構わない。
また、以上の実施例では、印刷用紙上にドットを形成して画像を印刷するプリンタに本発明を適用した場合について説明したが、本発明の適用範囲はプリンタに限られるものではなく、例えば、液晶表示画面上で輝点を適切な密度で分散させることにより、階調が連続的に変化する画像を表現する液晶表示装置などにも、本発明を好適に適用することができる。
印刷システムを例にとって発明の概要を示した説明図である。 本実施例の画像処理装置としてのコンピュータの構成を示す説明図である。 本実施例の画像出力装置としてのプリンタの概略構成図である。 インク吐出用ヘッドにおけるノズルNzの配列を示す説明図である。 第1実施例の画像処理装置で行われる画像印刷処理の流れを示すフローチャートである。 画像データの解像度変換を変換している様子を示す説明図である。 第1実施例の個数データ生成処理の流れを示すフローチャートである。 ディザマトリックスの一部を拡大して例示した説明図である。 ディザマトリックスを参照しながら画素毎にドット形成の有無を判断する様子を示す説明図である。 画素群毎にドット個数のデータが求められている様子を概念的に示した説明図である。 第1実施例の画素位置決定処理の流れを示すフローチャートである。 第1実施例の画素位置決定処理中でドット個数のデータに基づいて画素位置を決定する処理の様子を示す説明図である。 第1の変形例の個数データ生成処理中でドット個数を求める様子を示す説明図である。 第2の変形例の個数データ生成処理中でドット個数を求める様子を示す説明図である。 第2の変形例の画素位置決定処理の流れを示したフローチャートである。 第2実施例の個数データ生成処理の流れを示すフローチャートである。 画素群内でのエッジの有無に応じて、画素群内の各画素の階調値を平均階調値で置き換える様子を示した説明図である。 第2実施例においてコンピュータが出力するデータのデータ形式を示す説明図である。 第2実施例においてコンピュータが出力するデータ形式の他の態様を示す説明図である。 第2実施例の画素位置決定処理の流れを示すフローチャートである。 第3実施例の画像印刷処理の流れを示すフローチャートである。 第3実施例の大中小ドットデータ変換処理中で参照される変換テーブルを概念的示した説明図である。 第3実施例の個数データ生成処理中で、ドットデータからドット個数のデータを生成する様子を示した説明図である。 第3実施例の個数データ生成処理の流れを示したフローチャートである。 ディザマトリックスを参照しながら、各種ドットを形成する画素位置を決定する様子を示した説明図である。 各種ドットの個数のデータをコード化するために参照される変換テーブルを概念的に示した説明図である。 第3実施例の個数データ生成処理中で、画素位置を特定することなくドットの個数を求める様子を概念的に示した説明図である。 第3実施例の画素位置決定処理の流れを示したフローチャートである。 第3実施例の画素位置決定処理中で、ドット個数のデータから画素位置を決定する様子を示した説明図である。 第3実施例における第1の変形例の画素位置決定処理中で参照される復号化テーブルを概念的に表した説明図である。 第3実施例における第1の変形例の画素位置決定処理の流れを示すフローチャートである。 第3実施例における第2の変形例の画素位置決定処理を示すフローチャートである。 第3実施例における第2の変形例の画素位置決定処理中で参照される復号化テーブルを概念的に表した説明図である。 第3実施例における第2の変形例の画素位置決定処理中で中間データを用いてドットの種類を決定する様子を概念的に示した説明図である。 第1の変形例の画像印刷処理中で行われる個数データ生成処理の流れを示すフローチャートである。 画素群内の平均階調値に基づいてドット個数が一義的に決定される様子を例示した説明図である。 第2の変形例の画像印刷処理中で行われる個数データ生成処理の流れを示すフローチャートである。 第3の変形例の画像印刷処理中で行われる画素位置決定処理の流れを示すフローチャートである。 画素群内の画素の序列が複数通り記憶されている様子を模式的に示した説明図である。
符号の説明
10…コンピュータ
20…カラープリンタ
100…コンピュータ
102…CPU
104…ROM
106…RAM
108…周辺機器インターフェースPIF、
109…ディスクコントローラDDC、
110…ネットワークインターフェースカードNIC、
112…ビデオインターフェースVIF、
116…バス
118…ハードディスク
120…デジタルカメラ、
122…カラースキャナ
124…フレキシブルディスク、
126…コンパクトディスク
230…キャリッジモータ
235…モータ
236…プラテン
240…キャリッジ
241…印字ヘッド、
242…インクカートリッジ
243…インクカートリッジ、
244…インク吐出用ヘッド
260…制御回路
200…カラープリンタ
300…通信回線
310…記憶装置

Claims (25)

  1. 画像を構成する画素毎の階調値からなる画像データに所定の画像処理を施す画像処理装置と、該画像処理の結果に基づいてドットを形成することにより画像を出力する画像出力装置と、を備える画像出力制御システムであって、
    前記画像処理装置は、
    前記画像から、該画像を構成する画素が複数個ずつまとめられた画素群を順次取り出す画素群生成手段と、
    前記画素群を構成する各画素の階調値を、前記画素群に含まれる画素の数より多い数の閾値を二次元的に配列したディザマトリックスの対応する閾値と比較することにより、前記画素群内に形成されるドットの個数を決定するドット個数決定手段と、
    前記画素群毎に決定したドット個数のデータを、前記画像出力装置に供給する個数データ供給手段と
    を備えており、
    前記画像出力装置は、
    前記各画素群についてのドット個数のデータを受け取る個数データ受取手段と、
    前記画素群内で各画素にドットが形成される画素の序列を前記画素群毎に特定する序列特定手段と、
    前記ドット個数のデータと前記特定した序列とに基づいて、前記画素群内でドットが形成される画素位置を該画素群毎に決定する画素位置決定手段と、
    前記決定した画素位置に基づいてドットを形成するドット形成手段と
    を備えている画像出力制御システム。
  2. 請求項1記載の画像出力制御システムであって、
    前記序列特定手段は、あらかじめ用意した複数種類の序列から、前記画素群毎に一の序列を選択することにより、該序列を特定する手段である
    画像出力制御システム。
  3. 請求項1記載の画像出力制御システムであって、
    前記個数データ供給手段は、前記ドット個数のデータをコード化した状態で供給する手段を備え、
    前記個数データ受取手段は、前記コード化されたドット個数のデータを受け取って、前記画素群内に形成すべきドットの個数に復号する手段を備え、
    前記画素位置決定手段は、前記復号されたドット個数のデータと前記選択した序列とに基づいて、前記画素位置を決定する手段である画像出力制御システム。
  4. 請求項1記載の画像出力制御システムであって、
    前記ディザマトリックスは、閾値の取り得る範囲より大きな個数の閾値を二次元的に配列してなるディザマトリックスであり、前記画素群を構成する各画素の階調値と比較する前記閾値は、前記ディザマトリックスを前記画素群の大きさに分割したディザマトリックスに含まれる閾値である画像出力制御システム。
  5. 複数の閾値を二次元的に配列したディザマトリックスを用いてハーフトーン処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、画像を出力する画像出力装置であって、
    前記画像データとして、前記画像を構成する複数の画素が所定の複数個ずつ画素群としてまとめられた状態で、前記ハーフトーン処理の結果として得られた該画素群内に形成すべきドットの個数のデータを受け取る個数データ受取手段と、
    前記ハーフトーン処理に用いた前記ディザマトリックスを前記画素群に対応した大きさに分割し、該分割されたディザマトリックス内の閾値の大小関係に基づいて前記分割されたディザマトリックス毎に決定された画素の序列を、複数の序列として記憶している手段と、
    前記個数のデータを受け取った画素群毎に、該画素群内各画素にドット形成する序列を、前記記憶している複数種類の序列の中から特定する序列特定手段と、
    前記受け取ったドット個数のデータと前記特定した序列とに基づいて、前記画素群内でドットが形成される画素位置を、該画素群毎に決定する画素位置決定手段と、
    前記決定した画素位置に基づいて、ドットを形成するドット形成手段と
    を備えた画像出力装置。
  6. 前記画素の序列は、前記分割されたディザマトリックス内に含まれる閾値の大きさによる並び順である請求項5記載の画像出力装置。
  7. 請求項5記載の画像出力装置であって、
    前記個数データ受取手段は、前記ドット個数のデータをコード化された状態で受け取って、前記画素群内に形成すべきドットの個数に復号する手段を備え、
    前記画素位置決定手段は、前記復号されたドット個数と前記選択した序列とに基づいて、前記画素位置を決定する手段を備える
    画像出力装置。
  8. 請求項5記載の画像出力装置であって、
    前記個数データ受取手段は、互いに隣接し且つ所定の位置関係にある複数の画素から構成された画素群についての、前記ドット個数のデータを受け取る手段である画像出力装置。
  9. 請求項1記載の画像出力装置であって、
    前記序列選択手段は、前記画素の序列を、前記画素群に対応して分割されたディザマトリックス内の各閾値の大小関係のみに基づいて定めた序列マトリックスとして記憶している手段である画像出力装置。
  10. 請求項5記載の画像出力装置であって、
    前記画素位置決定手段は、
    前記画素群内の各画素にドットが形成される順番たる順序値を、前記選択した序列に基づいて画素毎に決定する順序値決定手段と、
    前記画素群についてのドット個数のデータと前記順序値とに基づいて、該画素群内でドットが形成される画素位置を検出する画素位置検出手段と
    を備える画像出力装置。
  11. 請求項5記載の画像出力装置であって、
    前記画素位置決定手段は、
    前記画素群に含まれる画素数をNとして、該画素群に形成されるドット個数をMとしたときに、ドットを形成することを意味するM個の連続するデータと、ドットを形成しないことを意味するN−M個の連続するデータとからなる中間データを、前記該画素群につてのドット個数のデータに基づいて生成する中間データ生成手段と、
    前記画素群内の各画素にドットが形成される順番たる順序値を、前記選択した序列に基づいて画素毎に決定し、該順序値に基づいて前記中間データから該当するデータを読み出すことにより、該画素群内でドットが形成される画素位置を検出する画素位置検出手段と
    を備える画像出力装置。
  12. 請求項11記載の画像出力装置であって、
    前記画素位置検出手段は、前記中間データを、ドットを形成することを意味するデータが割り当てられている方向に、前記順序値に相当する個数のデータだけシフトさせた後、該移動した側の端部のデータを読み出すことによって、前記画素位置を検出する手段である画像出力装置。
  13. ドットを形成して画像を出力する画像出力装置が該ドットの形成を制御するために用いる制御データを、該画像を表す画像データに所定の画像処理を施して生成する画像処理装置であって、
    前記画像から、該画像を構成する画素が複数個ずつまとめられた画素群を順次取り出す画素群生成手段と、
    前記画素群を構成する各画素の階調値を、前記画素群に含まれる画素の数より多い数の閾値を二次元的に配列したディザマトリックスの対応する閾値と比較することにより、画素群内に形成すべきドットの個数を求めるための対応関係を、少なくとも複数の該画素群について該画素群毎に異ならせた状態で、前記画素群内に形成するドットの個数を決定するドット個数決定手段と、
    前記画素群毎に決定したドット個数のデータを、前記制御データとして前記画像出力装置に供給する個数データ供給手段と
    を備えた画像処理装置。
  14. 請求項13記載の画像処理装置であって、
    前記ドット個数決定手段は、
    前記画素群についての画像データと該画素群内に形成すべきドットの個数との対応関係を複数記憶した対応関係記憶手段と、
    該対応関係を参照することにより、前記画素群にまとめられた画素の画像データに基づいて、各画素群内に形成するドットの個数を決定する手段と
    を備えた画像処理装置。
  15. 請求項13または請求項14記載の画像処理装置であって、
    前記個数データ供給手段は、前記ドット個数のデータをコード化した後、前記制御データとして供給する手段である画像処理装置。
  16. 請求項13記載の画像処理装置であって、
    前記ドット個数決定手段は、前記画素群に形成すべきドットの個数を決定することにより、該画素群にまとめられた画像データに対して発生する階調誤差が、少なくとも所定範囲内の画素群間では互いに相殺するように、該ドットの個数を決定する手段である画像処理装置。
  17. ドットを形成して画像を出力する画像出力装置が該ドットの形成を制御するために用いる制御データを、該画像を表す画像データに所定の画像処理を施して生成する画像処理装置であって、
    ハーフトーン処理を行なうための閾値であり、該閾値の取り得る範囲より大きな個数の閾値を二次元的に配したディザマトリックスを記憶しておくディザマトリックス記憶手段と、
    前記画像を構成する複数の画素を所定の複数個ずつまとめて画素群を生成する画素群生成手段と、
    前記画素群にまとめられた各画素の階調値と、前記ディザマトリックス中の前記画素に対応する位置の前記閾値とを比較することによって、該画素群に形成すべきドット個数を決定するドット個数決定手段と、
    前記画素群毎に決定したドット個数のデータを、前記制御データとして前記画像出力装置に供給する個数データ供給手段と
    を備えた画像処理装置。
  18. 画像を構成する画素毎の階調値からなる画像データに所定の画像処理を施して、得られた結果に基づきドットを形成することによって、画像を出力する画像出力制御方法であって、
    前記画像から、該画像を構成する画素が複数個ずつまとめられた画素群を順次取り出すと共に、前記画素群を構成する各画素の階調値を、前記画素群に含まれる画素の数より多い数の閾値を二次元的に配列したディザマトリックスの対応する閾値と比較することにより、前記画素群内に形成されるドットの個数を決定する第1の工程と、
    前記画素群内で各画素にドットを形成する画素の序列を前記画素群毎に特定する第2の工程と、
    前記決定したドットの個数と前記選択した序列とに基づいて、前記画素群内でドットが形成される画素位置を該画素群毎に決定する第3の工程と、
    前記決定した画素位置に基づいてドットを形成する第4の工程と
    を備える画像出力制御方法。
  19. 請求項18記載の画像出力制御方法であって、
    前記第1の工程は、二次元的に配列された画素の各々に閾値を対応付けたディザマトリックスに基づいて、前記画素群内に形成すべきドットの個数を決定する工程であり、
    前記第2の工程は、
    前記ドット個数の決定に用いたディザマトリックスを複数の画素群に分割し、該画素群内の各画素に対応付けられた閾値の大小関係に基づいて画素群毎に決定された画素の序列を、予め記憶しておく工程と、
    前記ディザマトリックスの画素群毎に記憶されている序列の中から、前記画像上での画素群の位置に対応した1の序列を選択する工程と
    を備える画像出力制御方法。
  20. 複数の閾値を二次元的に配列したディザマトリックスを用いてハーフトーン処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、画像を出力する画像出力方法であって、
    前記画像データとして、前記画像を構成する複数の画素が所定の複数個ずつ画素群としてまとめられた状態で、前記ハーフトーン処理の結果として得られた該画素群内に形成すべきドットの個数のデータを受け取る工程(A)と、
    前記ハーフトーン処理に用いた前記ディザマトリックスを前記画素群に対応した大きさに分割し、該分割されたディザマトリックス内の閾値の大小関係に基づいて前記分割されたディザマトリックス毎に決定された画素の序列を、複数の序列として記憶しておき、前記個数のデータを受け取った画素群毎に、該画素群内各画素にドット形成する序列を、前記記憶している複数種類の序列の中から特定する工程(B)と、
    前記受け取ったドット個数のデータと前記特定した序列とに基づいて、前記画素群内でドットが形成される画素位置を、該画素群毎に決定する工程(C)と、
    前記決定した画素位置に基づいて、ドットを形成する工程(D)と
    を備える画像出力方法。
  21. ドットを形成して画像を出力する画像出力装置が該ドットの形成を制御するために用いる制御データを、該画像を表す画像データに所定の画像処理を施して生成する画像処理方法であって、
    前記画像から、該画像を構成する画素が複数個ずつまとめられた画素群を順次取り出す工程(a)と、
    前記画素群を構成する各画素の階調値を、前記画素群に含まれる画素の数より多い数の閾値を二次元的に配列したディザマトリックスの対応する閾値と比較することにより、画素群内に形成すべきドットの個数を求めるための対応関係を、少なくとも複数の該画素群について該画素群毎に異ならせた状態で、前記画素群内に形成するドットの個数を決定する工程(b)と、
    前記画素群毎に決定したドット個数のデータを、前記制御データとして前記画像出力装置に供給する工程(c)と
    を備える画像処理方法。
  22. コンピュータにより実行され、画像を構成する画素毎の階調値からなる画像データに所定の画像処理を施して、得られた結果に基づきドットを形成することによって画像を出力するためのプログラムであって、
    前記画像から、該画像を構成する画素が複数個ずつまとめられた画素群を順次取り出すと共に、前記画素群を構成する各画素の階調値を、前記画素群に含まれる画素の数より多い数の閾値を二次元的に配列したディザマトリックスの対応する閾値と比較することにより、前記画素群内に形成されるドットの個数を決定する第1の機能と、
    前記画素群内で各画素にドットを形成する画素の序列を、画素群毎に特定する第2の機能と、
    前記決定したドットの個数と前記選択した序列とに基づいて、前記画素群内でドットが形成される画素位置を該画素群毎に決定する第3の機能と、
    前記決定した画素位置に基づいてドットを形成する第4の機能と
    コンピュータにより実現するプログラム。
  23. 請求項22記載のプログラムであって、
    前記第1の機能は、二次元的に配列された画素の各々に閾値を対応付けたディザマトリックスに基づいて、前記画素群内に形成すべきドットの個数を決定する機能であり、
    前記第2の機能は、
    前記ドット個数の決定に用いたディザマトリックスを複数の画素群に分割し、該画素群内の各画素に対応付けられた閾値の大小関係に基づいて画素群毎に決定された画素の序列を、予め記憶しておく機能と、
    前記ディザマトリックスの画素群毎に記憶されている序列の中から、前記画像上での画素群の位置に対応した1の序列を選択する機能と
    コンピュータにより実現するプログラム。
  24. 複数の閾値を二次元的に配列したディザマトリックスを用いてハーフトーン処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、画像を出力するためのプログラムであって、
    前記画像データとして、前記画像を構成する複数の画素が所定の複数個ずつ画素群としてまとめられた状態で、前記ハーフトーン処理の結果として得られた該画素群内に形成すべきドットの個数のデータを受け取る機能(A)と、
    前記ハーフトーン処理に用いた前記ディザマトリックスを前記画素群に対応した大きさに分割し、該分割されたディザマトリックス内の閾値の大小関係に基づいて前記分割されたディザマトリックス毎に決定された画素の序列を、複数の序列として記憶しておき、前記個数のデータを受け取った画素群毎に、該画素群内各画素にドット形成する序列を、前記記憶している複数種類の序列の中から特定する機能(B)と、
    前記受け取ったドット個数のデータと前記特定した序列とに基づいて、前記画素群内でドットが形成される画素位置を、該画素群毎に決定する機能(C)と、
    前記決定した画素位置に基づいて、ドットを形成する機能(D)と
    を実現するプログラム。
  25. コンピュータによって実行され、ドットを形成して画像を出力する画像出力装置が該ドットの形成を制御するために用いる制御データを、該画像を表す画像データに所定の画像処理を施して生成するためのプログラムであって、
    前記画像から、該画像を構成する画素が複数個ずつまとめられた画素群を順次取り出す機能(a)と、
    前記画素群を構成する各画素の階調値を、前記画素群に含まれる画素の数より多い数の閾値を二次元的に配列したディザマトリックスの対応する閾値と比較することにより、画素群内に形成すべきドットの個数を求めるための対応関係を、少なくとも複数の該画素群について該画素群毎に異ならせた状態で、前記画素群内に形成するドットの個数を決定する機能(b)と、
    前記画素群毎に決定したドット個数のデータを、前記制御データとして前記画像出力装置に供給する機能(c)と
    を実現するプログラム。
JP2005504135A 2003-03-27 2004-03-29 画像出力制御システム、画像出力装置、画像処理装置およびそれらの方法 Expired - Fee Related JP4225320B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2003087176 2003-03-27
JP2003087176 2003-03-27
JP2004071021 2004-03-12
JP2004071021 2004-03-12
PCT/JP2004/004478 WO2004086750A1 (ja) 2003-03-27 2004-03-29 画像出力制御システム、画像出力装置および画像処理装置

Publications (2)

Publication Number Publication Date
JPWO2004086750A1 JPWO2004086750A1 (ja) 2006-06-29
JP4225320B2 true JP4225320B2 (ja) 2009-02-18

Family

ID=33100397

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005504135A Expired - Fee Related JP4225320B2 (ja) 2003-03-27 2004-03-29 画像出力制御システム、画像出力装置、画像処理装置およびそれらの方法

Country Status (3)

Country Link
EP (1) EP1608144A4 (ja)
JP (1) JP4225320B2 (ja)
WO (1) WO2004086750A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7532360B2 (en) 2005-09-16 2009-05-12 Seiko Epson Corporation Image output apparatus

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4266249A (en) * 1978-09-19 1981-05-05 Bell Telephone Laboratories, Incorporated Digital encoder for facsimile transmission
JPS6173477A (ja) * 1984-09-19 1986-04-15 Minolta Camera Co Ltd 画像処理方法
JPS62176371A (ja) * 1986-01-30 1987-08-03 Toshiba Corp デイザ中間調伝送方式
JPS63182973A (ja) * 1987-01-23 1988-07-28 Sharp Corp フアクシミリ装置の擬似中間調画像伝送方法
JPH0272767A (ja) * 1988-09-08 1990-03-13 Ricoh Co Ltd ディザ画像のデータ圧縮伸張装置
JPH03159372A (ja) * 1989-11-16 1991-07-09 Ricoh Co Ltd 画像信号処理装置
US5239597A (en) * 1991-02-25 1993-08-24 Samsung Electronics Co., Ltd. Nearest neighbor dither image processing circuit
US5235432A (en) * 1991-11-22 1993-08-10 Creedon Brendan G Video-to-facsimile signal converter
JPH05292297A (ja) * 1992-04-06 1993-11-05 Konica Corp 画像形成装置
US5359430A (en) * 1992-05-15 1994-10-25 Microsoft Corporation Block-halftoning method and system with compressed error image
JPH06152986A (ja) * 1992-11-10 1994-05-31 Fuji Xerox Co Ltd 画像圧縮方法及び装置
JPH0865511A (ja) * 1994-08-22 1996-03-08 Murata Mach Ltd 中間調画像データの伝送方法
JPH08116440A (ja) * 1994-10-17 1996-05-07 Fuji Xerox Co Ltd 階調画像2値化装置
US5771105A (en) * 1996-03-04 1998-06-23 Hewlett-Packard Company High speed system for grey level image scaling, threshold matrix alignment and tiling, and creation of a binary half-tone image
JP2000071439A (ja) * 1998-08-31 2000-03-07 Seiko Epson Corp 画像処理装置および方法並びに記録媒体
JP4034061B2 (ja) * 2000-12-26 2008-01-16 シャープ株式会社 画像処理方法、画像処理装置、画像形成装置、画像処理プログラムおよびコンピュータ読み取り可能な記録媒体
JP3859122B2 (ja) * 2001-03-05 2006-12-20 セイコーエプソン株式会社 ハーフトーン処理装置及びハーフトーン処理方法

Also Published As

Publication number Publication date
EP1608144A4 (en) 2006-07-12
EP1608144A1 (en) 2005-12-21
JPWO2004086750A1 (ja) 2006-06-29
WO2004086750A1 (ja) 2004-10-07

Similar Documents

Publication Publication Date Title
JP4375235B2 (ja) 複数画素ずつコード化しながら画像を出力する画像出力システム
JP4241823B2 (ja) ドットデータ処理装置、画像出力システムおよびそれらの方法
CN100379250C (zh) 进行彩色图像数据转换的图像处理装置和图像处理方法
JP4375398B2 (ja) 複数画素ずつ多値化を行う画像処理装置
JP4534964B2 (ja) 画像形成方法、画像形成装置、画像形成システム、印刷物の生成方法および画像形成装置を制御するためのコンピュータプログラム
JP4296999B2 (ja) 複数画素ずつ多値化を行いながら画像を出力する画像出力システム
JP2004350257A (ja) 所定領域内に形成されるドット個数の情報に基づいて画像を表示する画像表示システム
JP4225319B2 (ja) 画像出力制御システム、画像処理装置およびその方法
JP4297033B2 (ja) 複数画素ずつ多値化を行う画像処理装置
JP4375050B2 (ja) 所定領域内に形成されるドット個数の情報に基づいて画像を出力する画像出力システム
JP4297006B2 (ja) 複数画素ずつ多値化を行いながら画像を出力する画像出力システム
JP4297000B2 (ja) 複数画素ずつ多値化を行いながら画像を出力する画像出力システム
JP4059121B2 (ja) 所定領域内に形成されるドット個数の情報に基づいて画像を表示する画像表示システム
JP4274030B2 (ja) 画像出力システム、画像処理装置、画像出力装置およびそれらの方法
JP4375071B2 (ja) 所定領域内に形成されるドット個数の情報に基づいて画像を出力する画像出力システム
JP4225320B2 (ja) 画像出力制御システム、画像出力装置、画像処理装置およびそれらの方法
JP2005224983A (ja) 所定領域内に形成されるドット個数の情報に基づいて画像を出力する画像出力システム
JP4561049B2 (ja) 所定領域内に形成されるドット個数の情報に基づいて画像を印刷する印刷システム
JP2006229810A (ja) 複数画素ずつコード化しながら画像を出力する画像出力システム
US20070041054A1 (en) Image output control system, image output device, and image processing device
JP2008092397A (ja) 画像処理装置、画像処理方法および印刷装置
JP2006191268A (ja) 複数画素ずつ画像処理を行いながら画像を出力する画像出力装置
CN101299796B (zh) 图象输出控制系统和图象输出装置
JP2005039491A (ja) 所定領域内に形成されるドット個数の情報に基づいて画像を表示する画像表示システム
JP2005102068A (ja) 所定領域内に形成されるドット個数の情報に基づいて画像を表示する画像表示システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060412

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080610

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080811

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: 20081104

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081117

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111205

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees