JP4297006B2 - 複数画素ずつ多値化を行いながら画像を出力する画像出力システム - Google Patents

複数画素ずつ多値化を行いながら画像を出力する画像出力システム Download PDF

Info

Publication number
JP4297006B2
JP4297006B2 JP2004221414A JP2004221414A JP4297006B2 JP 4297006 B2 JP4297006 B2 JP 4297006B2 JP 2004221414 A JP2004221414 A JP 2004221414A JP 2004221414 A JP2004221414 A JP 2004221414A JP 4297006 B2 JP4297006 B2 JP 4297006B2
Authority
JP
Japan
Prior art keywords
value
pixel group
pixel
quantization result
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
JP2004221414A
Other languages
English (en)
Other versions
JP2006042119A (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
Priority to JP2004221414A priority Critical patent/JP4297006B2/ja
Priority to US11/192,995 priority patent/US7656558B2/en
Publication of JP2006042119A publication Critical patent/JP2006042119A/ja
Application granted granted Critical
Publication of JP4297006B2 publication Critical patent/JP4297006B2/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
    • 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/40087Multi-toning, i.e. converting a continuous-tone signal for reproduction with more than two discrete brightnesses or optical densities, e.g. dots of grey and black inks on white paper

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Image Processing (AREA)
  • Color, Gradation (AREA)
  • Facsimile Image Signal Circuits (AREA)

Description

この発明は、画像データに基づいて画像を出力する技術に関し、詳しくは、画像データに所定の画像処理を施してドットを適切な密度で発生させることにより、画像を出力する技術に関する。
印刷媒体や液晶画面といった各種の出力媒体上にドットを形成することで画像を出力する画像出力装置は、各種画像機器の出力装置として広く使用されている。これら画像出力装置では、画像は画素と呼ばれる小さな領域に細分された状態で扱われており、ドットはこれら画素に形成される。ドットを画素に形成した場合、もちろん画素1つ1つについて見れば、ドットが形成されるか否かのいずれかの状態しか取り得ない。しかし、ある程度の広さを持った領域で見れば、形成するドットの密度に粗密を生じさせることは可能であり、ドットの形成密度を変えることによって多階調の画像を出力することが可能である。例えば、印刷用紙上に黒いインクのドットを形成する場合、ドットが密に形成されている領域は暗く見えるし、逆にドットがまばらに形成されている領域は明るく見える。また、液晶画面に輝点のドットを形成する場合、ドットが密に形成された領域は明るく見え、まばらに形成された領域は暗く見える。従って、ドットの形成密度を適切に制御してやれば、多階調の画像を出力することが可能となる。このように、適切な形成密度が得られるようにドットの形成を制御するためのデータは、出力しようとする画像に所定の画像処理を施すことによって発生させる。
近年では、これら画像出力装置には、出力画像の高画質化や大画像化が要請されるようになってきた。高画質化の要請に対しては、画像をより細かな画素に分割することが効果的である。画素を小さくしてやれば、画素に形成されるドットが目立たなくなるので画質を向上させることができる。また、大画像化の要請に対しては、画素数を増加させることによって対応する。もちろん、個々の画素を大きくすることによっても出力画像を大きくすることはできるが、これでは画質の低下を招いてしまうので、大型化の要請に対しては画素数を増加させることが効果的である。
もっとも、画像を構成する画素数が増加すると画像処理に時間がかかってしまい、画像を迅速に出力することが困難となる。そこで、画像処理を迅速に実行可能とする技術が提案されている(特許文献1)。
特開2002−185789号公報
しかし、画像処理を迅速に行ったとしても、画像データの転送に、あるいは処理済みの画像データの転送に時間がかかってしまったのでは、画像の出力を迅速化する効果にも自ずから限界がある。
また、近年では、デジタルカメラなどで撮影した画像のデータを、印刷装置などの画像出力装置に直接供給して直ちに画像を出力したいという要請も存在する。このような場合は、いわゆるパーソナルコンピュータ等のような高い処理能力を備えた画像処理装置を用いて画像処理を行うことはできない。従って、デジタルカメラなどの画像撮影装置、あるいは画像出力装置のいずれか、若しくは両者で分担して実行可能なように簡素な画像処理としておく必要がある。更に、画像の出力に際して解像度が変換された場合にも、これに柔軟に対応可能な画像処理としておくことが要請されている。
この発明は従来技術における上述した課題を解決するためになされたものであり、十分な出力画質を維持したまま、画像処理およびデータ転送を高速に実行可能であるとともに、解像度変換にも柔軟に対応可能でありながら簡素な画像処理技術の提供を目的とする。
上述した課題の少なくとも一部を解決するために、本発明の第1の画像出力システムは、次の構成を採用した。すなわち、
画像データに所定の画像処理を施す画像処理装置と、該画像処理の結果に基づいてドットを形成することにより、画像を出力する画像出力装置とを備える画像出力システムであって、
前記画像処理装置は、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する分割有無判断手段と、
前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する代表階調値決定手段と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する多値化手段と、
前記得られた多値化結果値を出力する多値化結果値出力手段と
を備えており、
前記画像出力装置は、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を該画素群毎に特定する順序値特定手段と、
前記多値化結果値が前記画素群毎に1つずつ出力された場合は、該多値化結果値と前記特定した順序値とに基づいて該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ出力された場合は、該画素群内の各領域毎に、該多値化結果値と該順序値とに基づいて各画素のドット形成有無を決定するドット形成有無決定手段と、
前記決定したドット形成の有無に基づいてドットを形成するドット形成手段と
を備えることを要旨とする。
また、上記の画像出力システムに対応する本発明の第1の画像出力方法は、
画像データに応じてドットを形成することにより、該画像データに対応した画像を出力する画像出力方法であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する第1の工程と、
前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する第2の工程と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する第3の工程と、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を該画素群毎に特定する第4の工程と、
前記多値化結果値が前記画素群毎に1つずつ出力された場合は、該多値化結果値と前記特定した順序値とに基づいて該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ出力された場合は、該画素群内の各領域毎に、該多値化結果値と該順序値とに基づいて各画素のドット形成有無を決定する第5の工程と、
前記決定したドット形成の有無に基づいてドットを形成する第6の工程と
を備えることを要旨とする。
また、上記の画像出力システムに対応する本発明の第1の画像出力装置は、
画像データに応じてドットを形成することにより、該画像データに対応した画像を出力する画像出力装置であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する分割有無判断手段と、
前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する代表階調値決定手段と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する多値化手段と、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を該画素群毎に特定する順序値特定手段と、
前記多値化結果値が前記画素群毎に1つずつ出力された場合は、該多値化結果値と前記特定した順序値とに基づいて該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ出力された場合は、該画素群内の各領域毎に、該多値化結果値と該順序値とに基づいて各画素のドット形成有無を決定するドット形成有無決定手段と、
前記決定したドット形成の有無に基づいてドットを形成するドット形成手段と
を備えることを要旨とする。
かかる本発明の第1の画像出力システム、第1の画像出力方法、および第1の画像出力装置においては、先ず初めに、画素群を分割して処理するか否かを、画像データの解像度と画像を出力する解像度との解像度比に基づいて判断する。尚、解像度比に基づいて判断するとは、画像データの解像度および画像を出力する解像度から算出した解像度比に基づいて判断するものに限られず、解像度比を反映した何らかの指標に基づいて判断するものであっても構わない。そして、画素群を分割することなく処理する場合は、画素群毎に多値化結果値を決定し、画素群を分割して処理する場合は、画素群を分割する各領域について多値化結果値を決定する。多値化結果値は、多値化用対応関係を参照することにより決定する。多値化用対応関係には、代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、画素群毎に関連づけられているので、多値化用対応関係を参照することで、多値化結果値に迅速に決定することができる。
尚、多値化用対応関係としては、代表階調値と画素群とが決まれば、それに応じた多値化結果値が1つ決まるようなものであれば種々の形態を取ることが可能であり、例えば、対応表や関数式などの形態を取ることができる。あるいは、後述するように、多値化結果値を決定するために代表階調値と比較される閾値を記憶した形態を取ることもできる。また、多値化用対応関係には、代表階調値と多値化結果値とが画素群毎に関連づけられていることから、多値化結果値は、その結果値が得られた画素群と組み合わせて初めて解釈可能な結果値としておくこともできるし、画素群によらず多値化結果値だけで解釈可能な結果値としておくこともできる。
次いで、画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を、画素群毎に特定する。画素群毎に順序値を特定する手法としては、種々の方法を適用することができるが、例えば、各画素の順序値を画素群毎に予め記憶しておき、記憶されている順序値を読み出すこととしても良い。
こうして多値化結果値および順序値が得られたら、次のようにして、画素群内の各画素についてのドット形成の有無を決定する。先ず、画素群が分割されることなく処理されている場合は、該画素群について得られた多値化結果値と順序値とに基づいて、各画素のドット形成有無を決定する。詳細な原理は後述するが、画素群の多値化結果値および順序値から、画素群内の各画素についてのドット形成有無を決定可能な理由は、次のようなものである。
多値化結果値には、後述するように、その意味するところが画素群に依存するものとしないものとが存在するが、何れの場合でも、多値化結果値は画素群の代表階調値に基づいて決定されている。一方、詳細には後述するが、画素群内に形成すべきドットの個数も画素群の代表階調値に応じて決まるから、画素群に形成すべきドット個数と多値化結果値との間には、代表階調値を介して間接的な対応関係が成り立っている。このことから、多値化結果値と画素群に形成すべきドットの個数とを予め対応付けておくことが可能であり、従って、多値化結果値から画素群に形成すべきドットの個数を決定することが可能である。また、画素群内にある複数の画素の中でドットが形成される順番(順序値)が与えられていれば、画素群に形成すべきドットの個数から、それらドットを画素群内の何れの画素に形成すべきかを決定することが可能である。この様な理由から、画素群の多値化結果値と画素群内の各画素についての順序値とが分かれば、その画素群内の各画素についてのドット形成有無を決定可能なのである。
一方、画素群が分割して処理されている場合は、該画素群内の各領域について得られた多値化結果値と順序値とに基づいて、領域内の各画素についてのドット形成有無を決定する。すなわち、多値化結果値は画素群を分割する各領域について得られていることから、画素群内の各画素について特定された順序値と、各領域について得られた多値化結果値とを組み合わせて、領域毎の各画素のドット形成有無を決定するのである。こうしたことが可能な理由は、次のように考えれば了解できる。
上述したように、画素群の多値化結果値と順序値とが分かれば、画素群内の各画素についてのドット形成有無を決定可能である。そこで、領域毎の多値化結果値が得られた場合でも、一旦、画素群内の全画素についてのドット形成有無を決定する。その後、対象とする領域内の各画素についての決定結果を抜き出してやれば、その領域の多値化結果値と画素群の順序値とから、領域内の各画素についてのドット形成有無が得られるはずである。実際には、各領域の多値化結果値および順序値から、領域毎にドット形成有無を決定する手順はこのような手順に限られるわけではない。しかし、上述した理由から、領域毎に得られた多値化結果値から、領域内の各画素についてのドット形成有無を決定することができるのである。
こうして、各画素についてドットの形成有無を決定したら、得られた決定結果に基づいてドットを形成することにより画像を出力する。例えば、印刷媒体や液晶画面などの媒体上にドットを形成すれば、これら媒体上に画像が出力されることになる。
詳細には後述するが、画像の全画素についてドット形成の有無を表すデータに比べれば、多値化結果値はたいへんに少ないデータ量で表現することができる。このため、データを速やかに取り扱うことが可能となり、延いては画像を迅速に出力することが可能となる。更に、代表階調値を多値化するに際しては、多値化用対応関係を参照しながら多値化することで、迅速に多値化することも可能となる。
加えて、代表階調値の多値化に際して参照される多値化用対応関係には、代表階調値と多値化結果値とが画素群毎に対応付けられている。換言すれば、画素群が異なっていれば、異なる代表階調値であっても同じ多値化結果値に多値化することが可能である。このため、単に代表階調値と多値化結果値とを対応づけた場合に比べて、多値化結果値の取り得る個数を減少させることも可能となる。取り得る個数が少なくなれば、多値化結果値を表現するために要するデータ量を少なくすることができるので、その分だけデータの授受を迅速に行うことができ、延いては、画像を迅速に出力することが可能となる。
また、画素群内で各画素にドットが形成される順番を表す順序値を、画素群毎に特定しておけば、画素群毎に得られた多値化結果値と画素群毎の順序値とに基づいて、各画素についてのドット形成の有無を適切に決定することができる。このため、高画質な画像を迅速に出力することが可能となる。
加えて、画素群としてまとめられる画素数の適切な値は、画像データの解像度と画像を出力する解像度との解像度比に依存することが多い。そこで、画素群を分割して処理するか、分割することなく処理するかを、解像度比に応じて切り換えてやれば、適切な画素数をひとまとまりとして処理することが可能となり、画質を向上させることができる。更に、通常であれば、画素群の大きさを変更した場合には、参照する多値化用対応関係や順序値なども変更しなければならない。しかし、画素群を分割して処理するのであれば、画素群の大きさ自体は変更されていないので、分割する場合と分割しない場合とで多値化用対応関係や順序値などを共用しつつ、同様な処理内容とすることができる。このように、処理内容あるいは参照するデータなどを共用可能なことから、画像の出力に際して解像度が変換された場合にも、これに柔軟に対応することが可能となる。
更に、多値化結果値を生成するための処理は、予め設定された対応関係を参照するという簡素な処理内容とすることができる。このため、コンピュータなどのようには高度な処理能力を有さない機器においても、十分に実用的な速度で処理することが可能である。従って、例えば画像データを、コンピュータなどを介さずに、画像出力装置に直接供給し、画像データにこれらの画像処理を画像出力装置の内部で施すことで、適切に画像を出力することも可能となる。
尚、多値化結果値を生成したり、あるいは各画素についてのドット形成有無を決定するに際しては、画素群を分類番号によって識別することとしてもよい。画素群を分類番号を用いて識別すれば、いたずらに画素群の種類を増加させることなく、各画素群を適切に識別することができる。尚、画素群を識別するための分類番号は、画像中での画素群の位置に応じて付与することとしてもよい。こうすれば、画像中での位置に応じて適切に分類番号を付与することで、適切にドットを発生させて高画質な画像を出力することが可能となる。
また、上述した第1の画像出力システム、第1の画像出力方法、あるいは第1の画像出力装置において、多値化結果値を受け取って画像を出力している点に着目すれば、本発明は、多値化結果値を受け取って画像を出力する画像出力装置として把握することも可能である。すなわち、上述した第1の画像出力システム、第1の画像出力方法、あるいは第1の画像出力装置に対応する本発明の他の態様の画像出力装置は、
所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、画像を出力する画像出力装置であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群について、該画素群を代表する所定個数の階調値を多値化することにより、該画素群毎に該所定個数ずつ得られた多値化結果値を、前記画像データとして受け取る多値化結果値受取手段と、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を該画素群毎に特定する順序値特定手段と、
前記多値化結果値が前記画素群毎に1つずつ得られた場合には、該多値化結果値と前記特定した順序値とに基づいて該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ得られた場合には、該画素群内の各領域毎に、該多値化結果値と該順序値とに基づいて各画素のドット形成有無を決定するドット形成有無決定手段と、
前記決定したドット形成の有無に基づいてドットを形成するドット形成手段と
を備えることを要旨とする。
また、上記の画像出力装置に対応する本発明の他の態様の画像出力方法は、
所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、画像を出力する画像出力方法であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群について、該画素群を代表する所定個数の階調値を多値化することにより、該画素群毎に該所定個数ずつ得られた多値化結果値を、前記画像データとして受け取る工程(1)と、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を該画素群毎に特定する工程(2)と、
前記多値化結果値が前記画素群毎に1つずつ得られた場合には、該多値化結果値と前記特定した順序値とに基づいて該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ得られた場合には、該画素群内の各領域毎に、該多値化結果値と該順序値とに基づいて各画素のドット形成有無を決定する工程(3)と、
前記決定したドット形成の有無に基づいてドットを形成する工程(4)と
を備えることを要旨とする。
かかる本発明の他の態様の画像出力装置および対応する画像出力方法においては、画像データとして多値化結果値を受け取ると、多値化結果値と順序値とに基づいてドットを形成する。ここで、多値化結果値が画素群毎に1つずつ得られている場合は、画素群が分割されることなく処理されているものと考えられ、一方、多値化結果値が画素群毎に複数個ずつ得られている場合は、画素群が分割されて処理されているものと考えられる。そこで、画素群毎に多値化結果値が得られた場合は、該多値化結果値と順序値とに基づいて、画素群内の各画素についてドット形成有無を決定する。一方、画素群毎に複数の多値化結果値が得られた場合は、これら多値化結果値を画素群を分割する各領域について得られた多値化結果値と解釈して、領域毎に各画素のドット形成有無を決定する。こうして画素群内の各画素についてのドット形成有無を決定したら、得られた結果に基づいてドットを形成することにより画像を出力する。
前述したように多値化結果値は、画素毎にドット形成の有無を表したデータよりも遙かに小さなデータである。このため、画像データとして多値化結果値を受け取れば、画像データを迅速に受け取ることができ、延いては画像を迅速に出力することができる。
加えて、多値化結果値を生成する際に画素群が分割されて処理されたか否かに関わらず、画像データとして受け取った多値化結果値から、同様の処理によって各画素についてのドット形成有無を決定することができる。このため、画像データを受け取って画像を出力する処理を簡素な処理とすることができる。更に、分割されて処理されたか否かに関わらず、使用する順序値は共用することができるので、記憶容量を節約することも可能となる。
こうした第1の画像出力システムに対応する他の態様の画像出力装置においては、画素群に形成すべきドットの個数を表す個数データを、多値化結果値として受け取ることとしても良い。尚、個数データとしては、何らかの方法でドットの個数に変換可能であれば、必ずしも個数そのものである必要はなく、どのような形態のデータとすることもできる。
多値化結果値として個数データを受け取ることとすれば、受け取った個数データと順序値とに基づいて、画素群内の各画素についてのドット形成の有無を速やかに決定することが可能となるので好ましい。
あるいは、多値化結果値と、画素群に形成すべきドットの個数を表す個数データとが、画素群毎に関連づけられた対応関係を、画像出力装置に予め記憶しておき、多値化結果値を受け取ると、かかる対応関係を参照して個数データに変換することとしてもよい。尚、このような対応関係としては、多値化結果値および画素群が決まれば、それに対する個数データが1つ決まるようなものであれば、どのような形態とすることもできる。例えば、対応表や関数式などの形態とすることができる。
このように、多値化結果値と画素群とを組み合わせて初めて個数データが決まるようにしておけば、1つの多値化結果値でも、画素群との組合せによって異なる個数データを表すことができるので、多値化結果値の取り得る種類を低減することが可能である。多値化結果値の取り得る種類が少なくなれば、より少ないデータ量で表現することが可能となる。このため、多値化結果値を迅速に受け取ることができ、延いては、迅速に画像を出力することが可能となる。
また、こうした第1の画像出力システムに対応する他の態様の画像出力装置においては、少なくとも100種類以上の画素群毎に、該画素群内の各画素についての順序値を記憶しておくこととしても良い。
画素群毎に得られた多値化結果値に基づいて、画素群内の各画素についてのドット形成有無を決定すると、複数の画素群に亘って一定のパターンでドットが発生してしまうことがある。もちろん、本願においてドット形成の有無を決定するに際しては、多値化結果値だけでなく、画素群毎に特定された順序値も考慮して決定しているため、単純に多値化結果値に基づいて決定した場合と比べれば、一定のパターンでドットが発生し難くなっていると言うことができる。しかし、画素群の種類があまりに少ないのでは、一定のパターンが発生することを十分に抑制することは困難である。ドットが一定のパターンで発生することを回避するためには、できるだけ多くの種類の画素群について順序値を特定可能なことが望ましいが、経験上、100種類以上の画素群について順序値を特定することができれば、一定のパターンでドットが発生することを、実用上の問題が発生しない程度に抑制することが可能となる。
あるいは、こうした他の態様の画像出力装置においては、順序値を特定可能な画素群の種類数と、画素群にまとめられる画素数との乗算値が、少なくとも1000以上となるように設定することとしても良い。
画素群にまとめられた画素数が少なければ、画素群内でドットが分布する態様も僅かな種類しか取り得ないので、複数の画素群に亘ってドットが一定のパターンで発生し易くなる。逆に言えば、画素群にまとめられる画素数が多ければ、画素群内でのドットの分布は多くの態様を取ることができるので、それだけドットが一定のパターンで発生し難くなっている。このことから、順序値が特定される画素群の種類が少なくても、画素群にまとめられる画素数が多くなれば、複数の画素群に亘ってドットが一定のパターンで発生することが抑制されることになる。経験によれば、画素群の種類数と、画素群にまとめられる画素数との乗算値が1000以上となるように設定しておけば、ドットが一定のパターンで発生することを、実用上の問題がない程度に抑制することが可能となる。
また、上述した第1の画像出力システムに対応する他の態様の画像出力装置においては、単ドットあたりに表現可能な階調値の異なる複数種類のドットを形成可能として、画素群について受け取った多値化結果値と、該画素群内の各画素についての前記順序値とに基づいて、各種ドットについての形成有無を決定することとしてもよい。
こうすれば、多値化結果値から決定した各種ドットの形成有無に基づいてドットを形成することができるので、高画質な画像を迅速に出力することが可能となる。また、このような複数種類のドットを形成可能な画像出力装置において、多値化結果値を受け取ることは、次のような理由から、画像を迅速に出力する上で効果的である。まず、複数種類のドットを形成可能な場合、各画素についてのドットの形成有無をドットの種類毎に表したデータは、どうしてもデータ量が大きくなってしまうので、データの授受に時間がかかってしまう。更に、ドットの種類が多くなるほど、ドット形成の有無を判断するために要する時間が長くなってしまう傾向にあり、画像を迅速に出力することが困難である。これに対して、多値化結果値を受け取ることとすれば、ドットの種類が多くなった場合でも迅速にデータを受け取ることができ、このため、画像を迅速に出力することが可能となる。
また、従来技術の有する前述した課題の少なくとも一部を解決するために、本発明の第2の画像出力システムは、次の構成を採用した。すなわち、
画像データに所定の画像処理を施す画像処理装置と、該画像処理の結果に基づいてドットを形成することにより、画像を出力する画像出力装置とを備える画像出力システムであって、
前記画像処理装置は、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する分割有無判断手段と、
前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する代表階調値決定手段と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する多値化手段と、
前記得られた多値化結果値を出力する多値化結果値出力手段と
を備えており、
前記画像出力装置は、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値が該画素群毎に1つずつ出力された場合には該多値化結果値から該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ出力された場合には、該画素群内で該多値化結果値が得られた領域毎に、各画素についてのドット形成有無を決定するドット形成有無決定手段と、
前記決定したドット形成の有無に基づいてドットを形成するドット形成手段と
を備えることを要旨とする。
また、上記の画像出力システムに対応する本発明の第2の画像出力方法は、
画像データに応じてドットを形成することにより、該画像データに対応した画像を出力する画像出力方法であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する工程(A)と、
前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する工程(B)と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する工程(C)と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値を該画素群毎に1つずつ受け取った場合には該多値化結果値から該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値を該画素群毎に複数個ずつ受け取った場合には、該画素群内で該多値化結果値が得られた領域毎に、各画素についてのドット形成有無を決定する工程(D)と、
前記決定したドット形成の有無に基づいてドットを形成する工程(E)と
を備えることを要旨とする。
また、上記の画像出力システムに対応する本発明の第2の画像出力装置は、
画像データに応じてドットを形成することにより、該画像データに対応した画像を出力する画像出力装置であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する分割有無判断手段と、
前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する代表階調値決定手段と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する多値化手段と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値を該画素群毎に1つずつ受け取った場合には該多値化結果値から該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値を該画素群毎に複数個ずつ受け取った場合には、該画素群内で該多値化結果値が得られた領域毎に、各画素についてのドット形成有無を決定するドット形成有無決定手段と、
前記決定したドット形成の有無に基づいてドットを形成するドット形成手段と
を備えることを要旨とする。
かかる本発明の第2の画像出力システム、第2の画像出力方法、および第2の画像出力装置においても、前述した第1の画像出力システム、第1の画像出力方法、および第1の画像出力装置と同様に、先ず初めに、画素群を分割して処理するか否かを判断する。そして、多値化用対応関係を参照することにより、代表階調値から多値化結果値を迅速に決定する。尚、多値化結果値は、画素群を分割して処理した場合には、画素群あたり複数個ずつ、画素群を分割することなく処理した場合には画素群あたり1つずつ得られることになる。
次いで、第2の画像出力システム、第2の画像出力方法、および第2の画像出力装置においては、復号用対応関係を参照することにより、多値化結果値から各画素についてのドット形成の有無を決定する。復号用対応関係には、多値化結果値と、画素群内の各画素についてのドット形成の有無とが、画素群毎に関連づけられているので、復号用対応関係を参照することで、多値化結果値から各画素についてのドット形成有無を迅速に決定することができる。一方、画素群が分割して処理されている場合は、画素群を分割する各領域について多値化結果値が得られている。そこで、各領域の多値化結果値から復号用対応関係を参照することで、領域内の各画素についてドット形成の有無を迅速に決定することができる。尚、復号用対応関係としては、多値化結果値と画素群とが決まれば、それに応じて各画素のドット形成有無を決定可能であれば、種々の形態を取ることが可能である。
こうして、各画素についてドットの形成有無を決定したら、得られた決定結果に基づいてドットを形成することにより画像を出力する。例えば、印刷媒体や液晶画面などの媒体上にドットを形成すれば、これら媒体上に画像が出力されることになる。
このような第2の画像出力システム、第2の画像出力方法、および第2の画像出力装置においても、画素毎にドット形成の有無を表すデータに代えて、多値化結果値を取り扱っているために、画像を迅速に出力することが可能となる。
また、各画素についてのドット形成有無を決定するに際しては、復号用対応関係を参照することで、迅速に決定することが可能である。もちろん、画素群内の各領域について多値化結果値が得られた場合には、それぞれの多値化結果値から復号用対応関係を参照することで、領域毎に各画素のドット形成有無を決定することが可能である。このため、多値化結果値を生成し、多値化結果値から各画素のドット形成有無を決定する処理を、適切な画素数をひとまとまりとして処理することが可能となり、画質を向上させることができる。更に、このように画素群を分割して処理するのであれば、画素群の大きさ自体は変更されていないので、分割有無に関わらず多値化用対応関係や復号用対応関係を共用しつつ、同様な処理内容とすることができる。このため、画像の出力に際して解像度が変換された場合にも、これに柔軟に対応することが可能となる。
更に、多値化結果値を生成するための処理や、各画素についてのドット形成有無を決定する処理は、予め設定された対応関係を参照するという簡素な処理内容とすることができる。このため、コンピュータなどのようには高度な処理能力を有さない機器においても、十分に実用的な速度で処理することが可能である。
尚、第2の画像出力システム、第2の画像出力方法、および第2の画像出力装置においても、画素群を分類番号によって識別しながら、多値化結果値の生成やドット形成有無を決定する処理を実施することとしてもよい。画素群を分類番号を用いて識別することとすれば、例えば同様な取り扱いが可能で特に区別する必要のない画素群には、同じ分類番号を付与するといったことができる。従って、いたずらに画素群の種類を増加させることなく、各画素群を適切に識別することができ、高画質な画像を出力することが可能となる。
また、多値化結果値を受け取って画像を出力する点に着目すれば、上述した第2の画像出力システム、第2の画像出力方法、あるいは第2の画像出力装置も、多値化結果値を受け取って画像を出力する画像出力装置として把握することも可能である。すなわち、上述した第2の画像出力システム、第2の画像出力方法、あるいは第2の画像出力装置に対応する本発明の他の態様の画像出力装置は、
所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、画像を出力する画像出力装置であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群について、該画素群を代表する所定個数の階調値を多値化することにより、該画素群毎に該所定個数ずつ得られた多値化結果値を、前記画像データとして受け取る多値化結果値受取手段と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値を該画素群毎に1つずつ受け取った場合には該多値化結果値から該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値を該画素群毎に複数個ずつ受け取った場合には、該画素群内で該多値化結果値が得られた領域毎に、各画素についてのドット形成有無を決定するドット形成有無決定手段と、
前記決定したドット形成の有無に基づいてドットを形成するドット形成手段と
を備えることを要旨とする。
また、上記の第2の画像出力装置に対応する本発明の他の態様の画像出力方法は、
所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、画像を出力する画像出力方法であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群について、該画素群を代表する所定個数の階調値を多値化することにより、該画素群毎に該所定個数ずつ得られた多値化結果値を、前記画像データとして受け取る工程(イ)と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値を該画素群毎に1つずつ受け取った場合には該多値化結果値から該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値を該画素群毎に複数個ずつ受け取った場合には、該画素群内で該多値化結果値が得られた領域毎に、各画素についてのドット形成有無を決定する工程(ロ)と、
前記決定したドット形成の有無に基づいてドットを形成する工程(ハ)と
を備えることを要旨とする。
かかる本発明の他の態様の画像出力装置および対応する画像出力方法においては、画像データとして多値化結果値を受け取ると、復号用対応関係を参照することにより、各画素についてのドット形成有無を決定して画像を出力する。前述したように多値化結果値は、画素毎にドット形成の有無を表したデータよりも遙かに小さなデータである。このため、画像データとして多値化結果値を受け取れば、画像データを迅速に受け取ることができ、延いては画像を迅速に出力することができる。
加えて、多値化結果値を生成する際に画素群が分割されて処理されたか否かに関わらず、画像データとして受け取った多値化結果値から、同様の処理によって各画素についてのドット形成有無を決定することができる。このため、画像データを受け取って画像を出力する処理を簡素な処理とすることができる。更に、分割されて処理されたか否かに関わらず、復号用対応関係は同じものを使用することができ、記憶容量を節約することも可能となる。
こうした第2の画像出力システムに対応する他の態様の画像出力装置においては、少なくとも100種類以上の画素群毎に、多値化結果値と、画素群内の各画素についてのドット形成有無とが関連づけられた復号用対応関係を参照して、ドット形成有無を決定することとしてもよい。
前述したように、画素群毎に多値化結果値からドット形成の有無を決定した場合、複数の画素群に亘って一定のパターンでドットが繰り返し形成されてしまうことがある。こうしたことを抑制するためには、復号用対応関係に、ある程度の種類の画素群について、ドット形成有無が関連づけられていることが望ましい。経験上、100種類以上の画素群について関連づけておけば、一定のパターンが現れることを、実用上の問題が発生しない程度に抑制することが可能となる。
また、上述した他の態様の画像出力装置においては、復号用対応関係に設定されている画素群の種類数と、画素群にまとめられる画素数との乗算値が、少なくとも1000以上となるように設定することとしても良い。
前述したように、画素群の種類が少ない場合でも、画素群にまとめられる画素数が多ければ、複数の画素群に亘ってドットが一定のパターンで発生することを抑制することができる。経験によれば、復号用対応関係に設定されている画素群の種類数と、画素群にまとめられる画素数との乗算値が1000以上となるように設定しておけば、ドットが一定のパターンで発生することを、実用上の問題がない程度に抑制することが可能となる。
更には、第2の画像出力システムに対応する他の態様の画像出力装置においても、前述した第1の画像出力システムに対応する他の態様の画像出力装置と同様に、単ドットあたりに表現可能な階調値の異なる複数種類のドットを形成可能としてもよい。すなわち、多値化結果値と、複数種類のドットについての形成有無とを、画素群毎に関連づけて復号用対応関係に記憶しておく。そして多値化結果値を受け取ると、この復号用対応関係を参照することにより、画素群内の各画素についてドット形成の有無を決定して、画像を出力することとしてもよい。
こうすれば、多値化結果値から決定した各種ドットの形成有無に基づいてドットを形成することができるので、高画質な画像を迅速に出力することが可能となる。
また、上述した第1あるいは第2の画像出力システムにおいて、画像を出力するために、各画素についてのドット形成有無を決定している点に着目すれば、本願発明は、ドットの形成を制御するための制御データを生成する画像処理システムとして把握することも可能である。すなわち、上述した第1の画像出力システムに対応する本発明の第1の画像処理システムは、
画像データに所定の画像処理を施す第1の画像処理装置と、該画像処理によって得られた第1の画像データを、画素毎にドット形成の有無を表した第2の画像データに変換する第2の画像処理装置とを備える画像処理システムであって、
前記第1の画像処理装置は、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する分割有無判断手段と、
前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する代表階調値決定手段と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する多値化手段と、
前記得られた多値化結果値を前記第1の画像データとして出力する第1の画像データ出力手段と
を備えており、
前記第2の画像処理装置は、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を該画素群毎に特定する順序値特定手段と、
前記多値化結果値が前記画素群毎に1つずつ出力された場合は、該多値化結果値と前記特定した順序値とに基づいて該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ出力された場合は、該画素群内の各領域毎に、該多値化結果値と該順序値とに基づいて各画素のドット形成有無を決定するドット形成有無決定手段と、
前記決定したドット形成の有無を前記第2の画像データとして出力する第2の画像データ出力手段と
を備えることを要旨とする。
また、上述した第2の画像出力システムに対応する本発明の第2の画像処理システムは、
画像データに所定の画像処理を施す第1の画像処理装置と、該画像処理によって得られた第1の画像データを、画素毎にドット形成の有無を表した第2の画像データに変換する第2の画像処理装置とを備える画像処理システムであって、
前記第1の画像処理装置は、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する分割有無判断手段と、
前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する代表階調値決定手段と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する多値化手段と、
前記得られた多値化結果値を前記第1の画像データとして出力する第1の画像データ出力手段と
を備えており、
前記第2の画像処理装置は、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値が該画素群毎に1つずつ出力された場合には該多値化結果値から該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ出力された場合には、該画素群内で該多値化結果値が得られた領域毎に、各画素についてのドット形成有無を決定するドット形成有無決定手段と、
前記決定したドット形成の有無を前記第2の画像データとして出力する第2の画像データ出力手段と
を備えることを要旨とする。
これら本発明の画像処理システムにおいては、代表階調値から多値化結果値を生成した後、各画素についてのドット形成有無を決定することで、制御データを迅速に出力することが可能となる。また、画素群を分割して処理するか否かに関わらず、多値化用対応関係や、順序値あるいは復号用対応関係は同じものを使用することができるので、解像度の変更に対しても、柔軟に対応可能であるとともに、記憶容量も節約することが可能となる。
更には、多値化結果値から各画素のドット形成の有無は、画像出力装置側で決定することとして、このような画像出力装置に対する制御データとして多値化結果値を供給することによっても、迅速に画像を出力することができる。こうした点に着目すれば、本発明は次のような画像処理装置として把握することもできる。すなわち、本発明の画像処理装置は、
ドットを形成して画像を出力する画像出力装置が該ドットの形成を制御するために用いる制御データを、該画像を表す画像データに所定の画像処理を加えて生成する画像処理装置であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する分割有無判断手段と、
前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する代表階調値決定手段と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する多値化手段と、
前記得られた多値化結果値を前記制御データとして出力する制御データ出力手段と
を備えることを要旨とする。
かかる本発明の画像処理装置においては、初めに画素群を分割して処理するか否かを判断して、画素群を分割することなく処理する場合は、画素群毎に代表階調値を決定する。一方、画素群を分割して処理する場合は、画素群を分割して生成した各領域について代表階調値を決定する。次いで、こうして求めた代表階調値を多値化して、得られた多値化結果値を制御データとして出力する。
多値化結果値はデータ量が小さいことから、多値化結果値を制御データとして出力することとすれば、迅速に出力することができる。また、多値化用対応関係を参照することによって代表階調値を多値化してやれば、多値化結果値を迅速に求めることができるので、その分だけ迅速に制御データを出力すること可能となる。更に、画素群を分割して処理するか否かに関わらず、多値化用対応関係は同じものを使用することができるので、解像度の変更に対しても、柔軟に対応可能であるとともに、記憶容量も節約することが可能となる。
こうした画像処理装置においては、画像を出力する解像度が、画像データの解像度に対して所定倍以下である場合に、画素群を分割して処理することとしてもよい。
詳細には後述するが、画像データの解像度よりも高い解像度で画像を出力すれば、画質を改善することができる。このとき、解像度を大幅に高めた場合は、多くの画素を画素群としてまとめてもよいが、解像度の増加度合いが小さい場合は画素群としてまとめる画素数は、あまり多くない方が望ましい。従って、画像を出力する際の解像度が、画像データの解像度に対して所定倍以下である場合には、画素群を分割して処理することで、より適切な画素数をまとめて処理することが可能となるので好ましい。
また、画素群を分割して処理する場合には、画素群を等しい大きさの領域に分割して処理することとしても良い。
こうして各領域に含まれる画素数を同じにしておけば、代表階調値を決定する処理を、いずれの領域についても共通化することができ、延いては処理の簡素化を図ることが可能となるので好ましい。加えて、各領域の大きさを等しくしておけば、多値化結果値から各画素についてのドット形成有無を決定する処理も、各領域で共通化することが可能となるので好ましい。
更に本発明は、上述した各種の画像出力方法あるいは画像処理方法を実現するためのプログラムをコンピュータに読み込ませ、コンピュータを用いて実現することも可能である。従って、本発明は次のようなプログラム、あるいは該プログラムを記録した記録媒体としての態様も含んでいる。すなわち、上述した第1の画像出力方法に対応する本発明のプログラムは、
画像データに応じてドットを形成することにより、該画像データに対応した画像を出力する方法を、コンピュータを用いて実現するためのプログラムであって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する第1の機能と、
前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する第2の機能と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する第3の機能と、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を該画素群毎に特定する第4の機能と、
前記多値化結果値が前記画素群毎に1つずつ出力された場合は、該多値化結果値と前記特定した順序値とに基づいて該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ出力された場合は、該画素群内の各領域毎に、該多値化結果値と該順序値とに基づいて各画素のドット形成有無を決定する第5の機能と、
前記決定したドット形成の有無に基づいてドットを形成する第6の機能と
を実現することを要旨とする。
また、上記のプログラムに対応する本発明の記録媒体は、
画像データに応じてドットを形成することにより、該画像データに対応した画像を出力するプログラムを、コンピュータで読み取り可能に記録した記録媒体であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する第1の機能と、
前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する第2の機能と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する第3の機能と、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を該画素群毎に特定する第4の機能と、
前記多値化結果値が前記画素群毎に1つずつ出力された場合は、該多値化結果値と前記特定した順序値とに基づいて該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ出力された場合は、該画素群内の各領域毎に、該多値化結果値と該順序値とに基づいて各画素のドット形成有無を決定する第5の機能と、
前記決定したドット形成の有無に基づいてドットを形成する第6の機能と
をコンピュータを用いて実現するプログラムを記録していることを要旨とする。
また、上述した第2の画像出力方法に対応する本発明のプログラムは、
画像データに応じてドットを形成することにより、該画像データに対応した画像を出力する方法を、コンピュータを用いて実現するためのプログラムであって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する機能(A)と、
前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する機能(B)と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する機能(C)と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値を該画素群毎に1つずつ受け取った場合には該多値化結果値から該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値を該画素群毎に複数個ずつ受け取った場合には、該画素群内で該多値化結果値が得られた領域毎に、各画素についてのドット形成有無を決定する機能(D)と、
前記決定したドット形成の有無に基づいてドットを形成する機能(E)と
を実現することを要旨とする。
また、上記のプログラムに対応する本発明の記録媒体は、
画像データに応じてドットを形成することにより、該画像データに対応した画像を出力するプログラムを、コンピュータで読み取り可能に記録した記録媒体であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する機能(A)と、
前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する機能(B)と、
前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化する機能(C)と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値を該画素群毎に1つずつ受け取った場合には該多値化結果値から該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値を該画素群毎に複数個ずつ受け取った場合には、該画素群内で該多値化結果値が得られた領域毎に、各画素についてのドット形成有無を決定する機能(D)と、
前記決定したドット形成の有無に基づいてドットを形成する機能(E)と
をコンピュータを用いて実現するプログラムを記録していることを要旨とする。
こうしたプログラム、あるいは記録媒体に記録されているプログラムをコンピュータに読み込ませ、該コンピュータを用いて上述の各種機能を実現させれば、高画質な画像を迅速に出力することが可能となる。
また、上述した第1の画像出力方法に対応する本発明の他の態様のプログラムは、
所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、画像を出力する方法を、コンピュータを用いて実現するためのプログラムであって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群について、該画素群を代表する所定個数の階調値を多値化することにより、該画素群毎に該所定個数ずつ得られた多値化結果値を、前記画像データとして受け取る機能(1)と、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を該画素群毎に特定する機能(2)と、
前記多値化結果値が前記画素群毎に1つずつ得られた場合には、該多値化結果値と前記特定した順序値とに基づいて該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ得られた場合には、該画素群内の各領域毎に、該多値化結果値と該順序値とに基づいて各画素のドット形成有無を決定する機能(3)と、
前記決定したドット形成の有無に基づいてドットを形成する機能(4)と
を実現することを要旨とする。
また、上記のプログラムに対応する本発明の記録媒体は、
所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、画像を出力するプログラムを、コンピュータで読み取り可能に記録した記録媒体であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群について、該画素群を代表する所定個数の階調値を多値化することにより、該画素群毎に該所定個数ずつ得られた多値化結果値を、前記画像データとして受け取る機能(1)と、
前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を該画素群毎に特定する機能(2)と、
前記多値化結果値が前記画素群毎に1つずつ得られた場合には、該多値化結果値と前記特定した順序値とに基づいて該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ得られた場合には、該画素群内の各領域毎に、該多値化結果値と該順序値とに基づいて各画素のドット形成有無を決定する機能(3)と、
前記決定したドット形成の有無に基づいてドットを形成する機能(4)と
をコンピュータを用いて実現するプログラムを記録していることを要旨とする。
また、上述した第2の画像出力方法に対応する本発明の他の態様のプログラムは、
所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、画像を出力する方法を、コンピュータを用いて実現するためのプログラムであって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群について、該画素群を代表する所定個数の階調値を多値化することにより、該画素群毎に該所定個数ずつ得られた多値化結果値を、前記画像データとして受け取る機能(イ)と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値を該画素群毎に1つずつ受け取った場合には該多値化結果値から該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値を該画素群毎に複数個ずつ受け取った場合には、該画素群内で該多値化結果値が得られた領域毎に、各画素についてのドット形成有無を決定する機能(ロ)と、
前記決定したドット形成の有無に基づいてドットを形成する機能(ハ)と
を実現することを要旨とする。
また、上記のプログラムに対応する本発明の記録媒体は、
所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、画像を出力するプログラムを、コンピュータで読み取り可能に記録した記録媒体であって、
前記画像を構成する画素が所定の複数個ずつまとめられた画素群について、該画素群を代表する所定個数の階調値を多値化することにより、該画素群毎に該所定個数ずつ得られた多値化結果値を、前記画像データとして受け取る機能(イ)と、
前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値を該画素群毎に1つずつ受け取った場合には該多値化結果値から該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値を該画素群毎に複数個ずつ受け取った場合には、該画素群内で該多値化結果値が得られた領域毎に、各画素についてのドット形成有無を決定する機能(ロ)と、
前記決定したドット形成の有無に基づいてドットを形成する機能(ハ)と
をコンピュータを用いて実現するプログラムを記録していることを要旨とする。
こうしたプログラム、あるいは記録媒体に記録されているプログラムをコンピュータに読み込ませ、該コンピュータを用いて上述の各種機能を実現させれば、画像データを迅速に受け取って、高画質な画像を迅速に出力することが可能となる。
以下では、本発明の作用・効果をより明確に説明するために、本発明の実施の形態を、次のような順序に従って説明する。
A.実施例の概要:
B.装置構成:
C.第1実施例の画像印刷処理の概要:
C−1.個数データから画素位置を決定可能な原理:
C−2.第1実施例の多値化結果値生成処理:
C−3.分類番号の決定方法:
C−4.多値化用テーブル:
C−5.多値化結果値のデータ形式:
C−6.第1実施例のドット形成有無決定処理:
C−7.第1実施例の変形例:
D.第2実施例:
D−1.第2実施例の画像印刷処理の概要:
D−2.第2実施例の多値化結果値生成処理:
D−2−1.ディザ法を用いた大中小ドットの形成個数の決定処理:
D−2−2.第2実施例の多値化結果値生成処理の内容:
D−3.第2実施例のドット形成有無決定処理:
D−4.第2実施例の変形例:
E.第3実施例:
E−1.第3実施例の多値化結果値生成処理:
E−2.第3実施例のドット形成有無決定処理:
E−3.第3実施例の多値化用テーブルの設定方法:
E−4.第3実施例の変形例の多値化結果値生成処理:
E−5.第3実施例の変形例のドット形成有無決定処理:
A.実施例の概要 :
実施例の詳細な説明に入る前に、図1を参照しながら、実施例の概要について説明しておく。図1は、印刷システムを例にとって、本実施例の概要を説明するための説明図である。本印刷システムは、画像処理装置としてのコンピュータ10と、画像出力装置としてのプリンタ20等から構成されており、コンピュータ10に所定のプログラムがロードされて実行されると、コンピュータ10およびプリンタ20などが全体として、一体の画像出力システムとして機能する。プリンタ20は、印刷媒体上にドットを形成することによって画像を印刷する。コンピュータ10は、印刷しようとする画像の画像データに所定の画像処理を施すことによって、プリンタ20が画素毎にドットの形成を制御するためのデータを生成して、該プリンタ20に供給する。
一般的な印刷システムでは、次のようにして画像を印刷する。先ず、コンピュータで所定の画像処理を施すことにより、画像データを、画素毎にドット形成の有無を表すデータに変換する。次いで、得られたデータをプリンタに供給し、プリンタでは供給されたデータに従ってドットを形成することにより画像を印刷している。ここで、印刷しようとする画像の画素数が多くなると、それに伴って、画像処理に要する時間が増加して、画像を迅速に印刷することが困難となる。また、画素数が多くなるにつれて、画素毎にドット形成の有無を表すデータのデータ量が増加するので、コンピュータからプリンタにデータを出力するために要する時間が長くなり、それだけ印刷に要する時間が増加してしまう。
こうした点に鑑みて、図1に例示した印刷システムでは、次のようにして画像を印刷する。先ず、コンピュータ10では、画像を構成する画素を、所定の複数個ずつまとめて画素群を生成する。次いで、画素群を分割して処理するか否かを、画像データの解像度と画像を出力する解像度との解像度比に基づいて判断する。判断に際しては、たとえば、解像度比が所定値未満であれば画素群を分割して処理すると判断することができる。次いで、画素群を分割せずに処理する場合は、画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定する。一方、画素群を分割して処理する場合は、画素群を分割する各領域についての代表階調値を決定する。
こうして得られた代表階調値は多値化モジュールに送られて、多値化用対応関係を参照することによって多値化される。多値化用対応関係記憶モジュールには、代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが画素群毎に関連づけられた多値化用対応関係が記憶されている。多値化モジュールは、かかる多値化用対応関係記憶モジュールを参照することで、代表階調値を迅速に多値化結果値に変換することができる。結局、多値化結果値は、画素群を分割することなく処理する場合には画素群毎に1つずつ生成され、画素群を分割して処理する場合には画素群を分割する領域毎に1つずつ生成されることになる。コンピュータ10は、こうして得られた多値化結果値をプリンタ20に向かって出力する。
プリンタ20のドット形成有無決定モジュールは、多値化結果値を受け取ると、次のようにして各画素についてのドット形成の有無を決定する。画素群あたりに1つずつの多値化結果値を受け取っている場合には、画素群内の各画素についてのドット形成の有無を決定する。ドット形成の有無を決定するに際しては、画素群内で各画素にドットが形成される順番を示す順序値を画素群毎に特定して、かかる順序値と多値化結果値とに基づいて、画素群内の各画素についてのドット形成有無を決定することができる。あるいは、多値化結果値と、画素群内の各画素についてのドット形成の有無を表すデータとが、画素群毎に関連づけられた復号用対応関係を予め記憶しておき、多値化結果値から、かかる復号用対応関係を参照することにより、多値化結果値を画素群内の各画素についてのドット形成有無を表すデータに変換することとしてもよい。
一方、画素群あたりに複数の多値化結果値を受け取っている場合には、画素群を複数の領域に分割して、各領域毎に、多値化結果値から各画素についてのドット形成の有無を決定する。領域毎に各画素についてのドット形成有無を決定するに際しては、画素群内の各画素についての順序値と、各領域の多値化結果値とに基づいて決定してもよいし、あるいは、各領域の多値化結果値から復号用対応関係を参照することによって、領域毎に各画素についてのドット形成の有無を決定することとしてもよい。このようにして得られたドット形成有無の決定結果に従って、ドット形成モジュールがドットを形成することによって画像が印刷される。
ここで、画素毎にドット形成の有無を表すデータに比べれば、画素群毎の多値化結果値は遙かに小さなデータ量とすることができる。従って、コンピュータ10から画素毎にドット形成の有無を表したデータをプリンタ20に供給する代わりに、画素毎の多値化結果値を供給してやれば、極めて迅速にデータを転送することが可能となる。
また、多値化結果値は、代表階調値と多値化結果値とが関連づけられた多値化用対応関係を参照することによって、迅速に求めることができる。このため、生成した多値化結果値をプリンタ20に迅速に供給可能なことと相まって、たとえ画素数の多い画像であっても迅速に画像を印刷することが可能となる。また、対応関係を参照して多値化結果値を生成すれば、極めて簡素な処理で生成することができる。このため、多値化結果値を生成するためには、コンピュータ10のような高度な処理能力を有する機器を用いずとも、例えばプリンタ20あるいはデジタルカメラなどの内部でも生成することが可能となる。
更に、上述した一連の処理は、画素群を分割せずに処理することも、あるいは画素群を分割して領域毎に処理することも可能となっており、分割して処理した場合は、画素群よりも小さな領域をひとまとまりとして処理することが可能である。しかし、このような場合でも、多値化用対応関係や、順序値あるいは復号用対応関係などについては、分割せずに処理するためのものをそのまま使用することができる。すなわち、より小さな画素群について処理する場合でも、新たに小さな画素群を生成するのではなく、既存の画素群を分割して処理することで、小さな画素群用の多値化用対応関係や、順序値あるいは復号用対応関係が不要となる。その結果、これらを記憶しておくための記憶容量を節約することが可能となる。
後述するように、適切な画素群の大きさは、画像データの解像度と画像を出力する解像度との解像度比によっても異なることから、解像度比によって画素群を分割して処理するか否かを判断してやれば、小さな画素群用の多値化用対応関係や、順序値あるいは復号用対応関係を用意せずとも、実質的には、適切な大きさの画素群で処理することが可能となり、高画質な画像を迅速に出力することが可能となる。以下では、こうした印刷システムを例に用いることにより、本発明の各種実施例について詳細に説明する。
B.装置構成 :
図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とが装着されている。インクカートリッジ242,243をキャリッジ240に装着すると、カートリッジ内の各インクは図示しない導入管を通じて、印字ヘッド241の下面に設けられた各色毎のインク吐出用ヘッド244ないし247に供給される。
図4は、インク吐出用ヘッド244ないし247におけるインクジェットノズルNzの配列を示す説明図である。図示するように、インク吐出用ヘッドの底面には、C,M,Y,Kの各色のインクを吐出する4組のノズル列が形成されており、1組のノズル列あたり48個のノズルNzが、一定のノズルピッチkで配列されている。
制御回路260は、CPUや、ROM、RAM、PIF(周辺機器インターフェース)等がバスで相互に接続されて構成されている。制御回路260は、キャリッジモータ230および紙送りモータ235の動作を制御することによってキャリッジ240の主走査動作および副走査動作を制御するとともに、コンピュータ100から供給される印刷データに基づいて、各ノズルから適切なタイミングでインク滴を吐出する制御を行う。こうして、制御回路260の制御の下、印刷媒体上の適切な位置に各色のインクドットを形成することによって、カラープリンタ200はカラー画像を印刷することができる。
尚、各色のインク吐出ヘッドからインク滴を吐出する方法には、種々の方法を適用することができる。すなわち、ピエゾ素子を用いてインク滴を吐出する方式や、インク通路に配置したヒータでインク通路内に泡(バブル)を発生させてインク滴を吐出する方法などを用いることができる。また、インク滴を吐出する代わりに、熱転写などの現象を利用して印刷用紙上にインクドットを形成する方式や、静電気を利用して各色のトナー粉を印刷媒体上に付着させる方式のプリンタを使用することも可能である。
以上のようなハードウェア構成を有するカラープリンタ200は、キャリッジモータ230を駆動することによって、各色のインク吐出用ヘッド244ないし247を印刷用紙Pに対して主走査方向に移動させ、また紙送りモータ235を駆動することによって、印刷用紙Pを副走査方向に移動させる。制御回路260は、キャリッジ240の主走査および副走査の動きに同期させながら、適切なタイミングでノズルを駆動してインク滴を吐出することによって、カラープリンタ200は印刷用紙上にカラー画像を印刷している。
尚、カラープリンタ200にも、制御回路260内にはCPU,RAM,ROMなどが搭載されていることから、コンピュータ100が行う処理をカラープリンタ200内で実施することも可能である。このような場合は、デジタルカメラ120などで撮影した画像の画像データをカラープリンタ200に直接供給して、制御回路260内で必要な画像処理を実施することにより、カラープリンタ200から直接画像を印刷することも可能となる。
C.第1実施例の画像印刷処理の概要 :
以下では、上記のようなコンピュータ100およびカラープリンタ200が、画像を印刷するために、それぞれの内部で行われる画像処理(画像印刷処理)について説明する。ここでは、理解の便宜を図るため、初めに画像印刷処理の全体像について簡単に説明し、次に、こうした画像印刷処理が可能である原理について説明する。そして最後に、それぞれの処理の詳細な内容について説明する。
尚、以下では、画像印刷処理の前半部分はコンピュータ100で実施され、後半部分はカラープリンタ200で実施されるものとして説明するが、これらの処理をカラープリンタ200の内部で実施したり、あるいはデジタルカメラ120等、画像データを生成する機器の内部で実施することも可能である。もちろん、画像印刷処理の前半部分の処理をデジタルカメラ120などで実施して、後半部分の処理をカラープリンタ200で実施することとしても良い。すなわち、本実施例の画像印刷処理によれば、後ほど詳細に説明するように、前半部分の処理および後半部分の処理を簡素なものとすることができる。このため、カラープリンタ200やデジタルカメラ120などのように、コンピュータ100のようには高い処理能力を有していない機器を用いた場合でも、画像印刷処理を迅速に実施することが可能であり、従って、コンピュータ100を使用せずとも十分に実用的な印刷システムを構成することができる。
図5は、第1実施例の画像印刷処理の全体的な流れを示すフローチャートである。以下では、図5を参照しながら、画像印刷処理の全体像について簡単に説明する。第1実施例の画像印刷処理を開始すると、先ず初めに、コンピュータ100が画像データの読み込みを開始する(ステップS100)。ここでは、画像データはRGBカラー画像データであるものとして説明するが、カラー画像データに限らず、モノクロ画像データについても同様に適用することができる。また、カラープリンタに限らず単色プリンタについても同様に適用することが可能である。
カラー画像データの読み込みに続いて、色変換処理を行う(ステップS102)。色変換処理とは、R,G,Bの階調値の組合せによって表現されているRGBカラー画像データを、印刷のために使用されるインク各色についての階調値の組合せによって表現された画像データに変換する処理である。前述したように、カラープリンタ200はC,M,Y,Kの4色のインクを用いて画像を印刷している。そこで、第1実施例の色変換処理ではRGB各色によって表現された画像データを、C,M,Y,Kの各色の階調値によって表現されたデータに変換する。色変換処理は、色変換テーブル(LUT)と呼ばれる3次元の数表を参照することで行う。LUTには、RGBカラー画像データに対して、色変換によって得られるC,M,Y,K各色の階調値が予め記憶されている。ステップS102の処理では、このLUTを参照することにより、RGBカラー画像データをC,M,Y,K各色の画像データに迅速に色変換することが可能である。
色変換処理を終了すると、解像度変換処理を開始する(ステップS104)。解像度変換処理とは、画像データの解像度を、プリンタ200が画像を印刷する解像度(印刷解像度)に変換する処理である。画像データの解像度が印刷解像度よりも低い場合は、画素間に新たな画像データを生成し、逆に画像データの解像度が印刷解像度よりも高い場合には、一定の割合でデータを間引くことによって、画像データの解像度を印刷解像度に一致させる処理を行う。
今日では、高画質化の要請、あるいは大画像化の要請に伴って、解像度変換処理では、画像データをより高解像度の印刷解像度に変換することがしばしば行われている。この場合、補間演算を行って画素間に新たな画像データを生成することも可能であるが、簡便には1つの画素を複数の画素に分割することで、新たな画像データを生成することも広く行われている。
図6は、このような解像度変換を行っている様子を概念的に示した説明図である。図6(a)は解像度変換前の画像データを表している。この画像データの1画素を、主走査方向(図上では左右方向)に4分割、副走査方向(図上では上下方向)に2分割して高解像度化すると、図6(b)に示したデータを得ることができる。また、元の画像データの1画素を、主走査方向および副走査方向にそれぞれ2分割した場合は、図6(c)に示すデータを得ることができる。もちろん、このように1つの画素を単純に分割して高解像度化する場合、隣接する画素間でより滑らかな階調変化が表現されているわけではないので、実質的な解像度が増加しているわけではなく、見かけ上の解像度が増加したに過ぎない。しかし、ドットを形成して画像を印刷する場合、1つの画素で表現可能な階調数は高々数階調に過ぎず、画像データが表現可能な階調数に対して遙かに少ないことから、この様な解像度変換であっても画質の向上には有効であり、単純に画素を分割して見かけ上の解像度を高解像度化する解像度変換処理も一般的に行われている。
図6に示した例に即して説明すると、元の画像データの解像度が360×360dpi(主走査方向および副走査方向ともに360dpi)であるとすれば、図6(b)に示すような解像度変換を行うことで、見かけ上の解像度が1440×720dpi(主走査方向には1440dpi、副走査方向には720dpi)に高解像度化され、その結果、より高画質な画像を得ることができる。また、そこまでの高い画質が必要ではない場合は、図6(c)に示すような解像度変換を行って、見かけ上の解像度を720×720dpiに高解像度化することで、画質を改善することが可能となる。
以上のようにして解像度を印刷解像度に変換したら、コンピュータ100は、多値化結果値生成処理を開始する(図5のステップS106)。多値化結果値生成処理の詳細な内容は後ほど詳しく説明することとして、ここでは概要のみを説明する。この処理では、解像度変換処理後の画素を所定個数ずつ画素群としてまとめることにより、1つ画像を複数の画素群に分割する。ここでは、主走査方向の4画素、副走査方向に2画素、合計8つの画素を画素群としてまとめるものとする。そして、画素群を分割して処理するか否かを、上述した解像度変換処理(ステップS104)における変換前後での解像度比に基づいて判断する。
例えば、図6(b)に示した解像度変換が行われた場合、変換前後の解像度比は、主走査方向には4倍であり、副走査方向には2倍である。ここでは、画素群は主走査方向には4画素ずつ、副走査方向には2画素ずつまとめるものとしているから、主走査方向および副走査方向への解像度比は、画素群にまとめられた画素数と一致する。そこで、この場合は、画素群を分割することなく処理するものと判断する。一方、例えば図6(c)に示した解像度変換が行われた場合、変換前後の解像度比は、主走査方向および副走査方向ともに2倍である。そこで、この場合は、画素群を主走査方向に2等分して処理するものと判断する。この結果、画素群を分割して生成された各領域に含まれる画素数は、主走査方向および副走査方向ともに2画素ずつとなり、変換前後の解像度比と一致する。また、変換前後の解像度比が主走査方向に2倍、副走査方向に1倍であった場合には、1つの画素群を主走査方向および副走査方向ともに2等分して処理するものと判断すればよい。こうすれば、分割して生成された各領域に含まれる画素数は、主走査方向には2画素、副走査方向には1画素となって、画素数と解像度比とを一致させることが可能となる。
以上のようにして画素群を分割して処理するか否かを判断した後、分割せずに処理する場合は、画素群内の画像データを代表する階調値(代表階調値)を決定して、得られた階調値を多値化することにより多値化結果値に変換する。一方、画素群を分割して処理する場合は、分割して生成した各領域についての代表階調値を求め、それぞれ代表階調値を多値化結果値に変換する。結局、画素群を分割せずに処理する場合は、画素群毎に1つずつ多値化結果値が得られることになり、一方、画素群を分割して処理する場合は、画素群毎に複数個の多値化結果値が得られることになる。多値化結果値生成処理では、こうして代表階調値を多値化した後、得られた多値化結果値をカラープリンタ200に出力する。
尚、多値化結果値生成処理は、後述する多値化用テーブルを参照することで、簡便に且つ迅速に実施することが可能である。また、多値化結果値が示す内容はどのようなものとすることも可能であるが、ここでは画素群内に形成すべきドットの個数を示すデータであるものとする。すなわち、代表階調値は画素群内の各画素の画像データを代表する階調値であるから、代表階調値が大きくなると、それにつれて画素群内に形成されるドットの個数は増加する。従って、画素群の代表階調値から該画素群内に形成するドット個数を決定する処理を、一種の多値化と見ることができ、この場合は、ドットの個数が多値化結果値に相当していることになる。尚、多値化結果値は、必ずしもドットの個数そのものではなく、ドットの個数に変換することが可能な値でありさえすれば、間接的にドットの個数を表す値であっても構わない。
カラープリンタ200の制御回路260に内蔵されたCPUは、コンピュータ100から多値化結果値を受け取ると、ドット形成有無決定処理を開始する(ステップS108)。すなわち、カラープリンタ200は、画像を構成する各画素にドットを形成することによって画像を印刷していることから、画像の印刷に先立って、各画素についてドットを形成するか否かを決定しておく必要がある。そこで、コンピュータ100から受け取った多値化結果値に基づいて、各画素についてドットを形成するか否かを決定する処理を行うのである。尚、上述したように、多値化結果値生成処理では、画素群を分割して処理する場合と分割することなく処理する場合とが存在しており、分割せずに処理する場合は各画素群について1つずつ多値化結果値が供給され、一方、分割して処理する場合は、各画素群について複数個ずつ多値化結果値が供給される。このことと対応して、ドット形成有無決定処理においても、各画素群に1つずつ多値化結果値が得られる場合には、各画素についてのドット形成有無が画素群毎に決定され、一方、各画素群に複数個ずつ多値化結果値が得られる場合には、各画素についてのドット形成有無が領域毎に決定されることになる。ドット形成有無決定処理の詳細な内容については後述する。
また、多値化結果値から画素群内の各画素についてドット形成の有無を決定する手法としては、いわゆる濃度パターン法と呼ばれる手法が知られているが、本実施例のドット形成有無決定処理では、多値化結果値に加えて、画素群毎に設定された順序値を用いてドット形成有無を決定する点で大きく異なっている。この様にして各画素のドット形成の有無を決定すれば、次のような大きな利点を得ることができる。すなわち、一般的な濃度パターン法では、実質的な解像度が、多値化を行った画素群の解像度まで低下してしまい、画質の悪化を招き易い傾向がある。これに対して、本実施例のドット形成有無決定処理では、画素群毎に記憶されている順序値を参照しながらドット形成の有無を決定しているために、画素群の大きさに依存して画質が悪化することがない。更に、いわゆるブルーノイズマスク、あるいはグリーンノイズマスクと呼ばれるディザマトリックスを用いることで実現されるような、ドットが良好に分散した高画質な画像を印刷することが可能となる。本実施例のドット形成有無決定処理の詳細な内容、および、かかる処理を行ってドット形成の有無を決定することで、こうした特性が得られる理由については、後ほど詳しく説明する。
以上のようにして、画素群内の各画素についてドット形成の有無を決定したら、決定したドット形成の有無に従って、出力媒体上にドットを形成する処理を行う(図5のステップS110)。すなわち、図3を用いて説明したように、キャリッジ240の主走査および副走査を繰り返しながらインク吐出用ヘッドを駆動してインク滴を吐出することにより、印刷用紙上にインクのドットを形成する。こうしてドットを形成することにより、画像データに対応した画像が印刷されることになる。
このように、本実施例の画像印刷処理では、コンピュータ100からカラープリンタ200に向かって、多値化結果値を供給するものの、画素毎にドット形成の有無を示すデータは供給していない。画素毎にドット形成の有無を表現することに比べれば、多値化結果値は遙かに少ないデータ量で表現することができることから、このような方法を採用することで、コンピュータ100からカラープリンタ200に向かって極めて迅速にデータを供給することが可能となる。
例えば、各画素に形成可能なドットは1種類であるとする。この場合、各画素はドットが形成されるか否かのいずれかの状態しか取り得ないから、1画素についてのドット形成有無を表すために必要なデータ長は1ビットとなる。また、ここでは画素群には8つの画素が含まれるとしているから、画素群内の全画素についてドット形成の有無を表現するためには、8ビットのデータ長が必要となる。一方、画素群内に形成されるドットの個数は、0個〜8個のいずれかの9通りしか取り得ない。9通りであれば4ビットあれば表現することができる。従って、画素群の代表階調値をドット個数のデータに多値化しておけば、多値化結果値は4ビットのデータ長で表現可能となる。このように、画素毎にドット形成の有無を表すデータに比べて、多値化結果値は遙かに少ないデータ量で表現することができるので、コンピュータ100からカラープリンタ200に向かって極めて迅速にデータを供給することが可能となる。
加えて、詳細には後述するが、各画素についてのドット形成の有無を適切に決定してやれば、多値化結果値を供給した場合でも、画質が悪化することはない。特に、所定の条件下では、画素毎にドット形成の有無を表すデータを供給した場合と全く同じ結果を得ることが可能である。
もちろん、画素群を分割する場合には画素群あたり複数の多値化結果値を供給しなければならないので、多値化結果値を迅速に供給して画像を迅速に印刷するというメリットは減殺されてしまう。しかし、画素群を分割して処理すれば、既存の画素群について設定された多値化用テーブルや順序値をそのまま使用したまま、より小さな画素群を用いて処理した場合と同様なドットの発生状態とすることができる。従って、記憶しておくべき多値化用テーブルや順序値の種類を増加させることなく、適切にドットを発生させることが可能となる。
また、後述するアルゴリズムを用いれば、多値化結果値を生成する処理や、多値化結果値から各画素についてのドット形成の有無を決定する処理は、極めて簡素な処理によって実現することができ、しかも極めて迅速に実行することが可能である。このため、コンピュータ100のような高度な処理能力を有する画像処理装置を用いずとも、例えばデジタルカメラ120やカラープリンタ200などの内部で実行することも可能である。こうした場合には、デジタルカメラ120で撮影した画像データを直接カラープリンタ200に供給して、高画質なカラー画像を印刷することも可能となる。
C−1.個数データから画素位置を決定可能な原理 :
以下では、上述した方法を採用した場合、すなわち、画素群に形成するドット個数を示す多値化結果値を、コンピュータ100からカラープリンタ200に供給し、この多値化結果値に基づいて、画素群内の各画素についてドット形成の有無を決定した場合でも、画質を悪化させることなく画像を印刷することが可能な原理について説明する。
説明の都合上、先ず初めに、ディザ法について説明する。ディザ法とは、画像データを画素毎にドット形成の有無を表すデータに変換するために用いられる代表的な手法である。この手法では、ディザマトリックスと呼ばれるマトリックスに閾値を設定しておき、画像データの階調値とディザマトリックスに設定されている閾値とを画素毎に比較して、画像データの階調値の方が大きい画素についてはドットを形成すると判断し、そうでない画素についてはドットを形成しないと判断する。このような判断を画像中の全画素について行えば、画像データを画素毎にドット形成の有無を表すデータに変換することができる。
図7は、ディザマトリックスの一部を概念的に例示した説明図である。図示したマトリックスには、横方向(主走査方向)に128画素、縦方向(副走査方向)に64画素、合計8192個の画素に、階調値1〜255の範囲から万遍なく選択された閾値がランダムに記憶されている。ここで、閾値の階調値が1〜255の範囲から選択されているのは、本実施例では、画像データが階調値0〜255の値を取り得る1バイトデータとしていることに加えて、画像データの階調値と閾値とが等しい場合には、その画素にはドットを形成するものと判断していることによるものである。
すなわち、ドットが形成されるのは画像データの階調値が閾値よりも大きい画素に限る(すなわち階調値と閾値が等しい画素にはドットは形成しない)とした場合、画像データの取り得る最大階調値と同じ値の閾値を有する画素には、決してドットが形成されないことになる。こうしたことを避けるため、閾値の取り得る範囲は、画像データの取り得る範囲から最大階調値を除いた範囲とする。逆に、画像データの階調値と閾値が等しい画素にもドットを形成するとした場合、画像データの取り得る最小階調値と同じ値の閾値を有する画素には、常にドットが形成されてしまうことになる。こうしたことを避けるため、閾値の取り得る範囲は、画像データの取り得る範囲から最小階調値を除いた範囲とする。本実施例では、画像データの取り得る階調値が0〜255であり、画像データと閾値が等しい画素にはドットを形成するとしていることから、閾値の取り得る範囲を1〜255としておくのである。尚、ディザマトリックスの大きさは、図6に例示したような大きさに限られるものではなく、縦と横の画素数が同じマトリックスも含めて種々の大きさとすることができる。
図8は、ディザマトリックスを参照しながら、各画素についてのドット形成の有無を判断している様子を概念的に示した説明図である。ドット形成の有無を判断するに際しては、先ず、判断しようとする画素を選択し、この画素についての画像データの階調値と、ディザマトリックス中で対応する位置に記憶されている閾値とを比較する。図8中に示した細い破線の矢印は、画像データの階調値と、ディザマトリックスに記憶されている閾値とを、画素毎に比較していることを模式的に表したものである。例えば、画像データの左上隅の画素については、画像データの階調値は97であり、ディザマトリックスの閾値は1であるから、この画素にはドットを形成すると判断する。図8中に実線で示した矢印は、この画素にはドットを形成すると判断して、判断結果をメモリに書き込んでいる様子を模式的に表したものである。一方、この画素の右隣の画素については、画像データの階調値は97、ディザマトリックスの閾値は177であり、閾値の方が大きいので、この画素についてはドットを形成しないと判断する。ディザ法では、こうしてディザマトリックスを参照しながら、画素毎にドットを形成するか否かを判断することで、画像データを画素毎にドット形成の有無を表すデータに変換する。
図9は、ディザ法を用いて画像データをドット形成の有無を表すデータに変換している様子を示した説明図である。図9(a)は、画像データの一部を拡大して示したものであり、図中の小さな矩形は画素を、そして、それぞれの矩形の中に表示された数値は画像データの階調値を表している。図示されているように、画像データは、隣接する画素間では近似する(若しくは同一の)階調値が割り当てられる傾向がある。近年では、高画質化の要請から画像データの解像度は高くなる傾向にあるが、隣接する画素間で近似若しくは同一の階調値が割り当てられる傾向は、画像データの解像度が高くなるほど顕著となっている。更に、前述したように、画像データの解像度を印刷解像度に変換する際に、画素を複数の画素に分割して高解像度化した場合には、同一の画素から分割して生成された画素は全て同じ階調値を有することになる。
図9(b)は、ディザマトリックスの対応する位置に閾値が設定されている様子を示している。図9(a)に示した画像データの階調値と、図9(b)に示したディザマトリックスの閾値とを画素毎に比較することによって、ドット形成の有無を判断する。図9(c)は、こうして画素毎にドット形成の有無を判断した結果を示しており、図中で斜線を付した画素がドットを形成すると判断された画素である。
ここで、隣接する画素を所定数ずつ画素群としてまとめ、画素群内でドットを形成すると判断された画素の個数を数えることを考える。一例として、主走査方向(図9中では横方向)に4画素分、副走査方向(図9中では縦方向)に2画素分の、合計8画素ずつを画素群としてまとめるものとする。図9(d)は、こうしてまとめられたそれぞれの画素群について、ドットを形成すると判断された画素を数えることによって得られたドット個数を示している。第1実施例の画像印刷処理において、コンピュータ100からカラープリンタ200に供給される多値化結果値は、このような画素群毎に得られたドット個数のデータである。ドット個数を示す多値化結果値には、ドットを形成する画素位置に関する情報は含まれていない。しかし、次のようにすれば、ドットの個数から、ドットを形成する画素位置の情報を復元して、画素毎にドット形成の有無を表すデータを生成することができる。
図10は、ドット個数を示すデータから、画素毎にドット形成の有無を表すデータを生成する様子を示した説明図である。図10(a)は、図9で画素群毎に形成するドットの個数を数えて得られた値を表している。また、図10(b)は、図9で画素毎にドット形成の有無を判断するために参照したディザマトリックスを示している。前述したようにディザ法では、画像データの階調値と、ディザマトリックスの対応する画素位置に設定された閾値とを比較して、画像データの階調値の方が大きければ、その画素にはドットを形成すると判断しており、ディザマトリックスの閾値が小さくなるほどドットが形成され易くなる。このことから、ディザマトリックスはドットが形成される画素の順番を表していると考えることができる。
ディザマトリックスの有するこうした性質に着目すれば、画素群内に形成されるドットの個数から、各画素についてのドット形成の有無を決定することができる。例えば、図10(a)に示した一番左上隅の画素群について説明すると、この画素群に形成されるドット個数は3個である。また、図10(b)に示したディザマトリックスを参照すれば、この画素群内では、左上隅にある画素位置すなわち閾値「1」が設定されている画素位置が最もドットが形成され易い画素であると言える。従って、この画素群内で3つ形成されるドットの中の1つは、左上隅の画素に形成されているものと考えることができる。同様にして、残りの2つのドットは、この画素群内で2番目にドットが形成され易い画素(すなわち図10(b)のディザマトリックスで閾値「42」が設定されている画素)と、3番目にドットが形成され易い画素(すなわち閾値「58」が設定されている画素)とに形成されるものと考えることができる。
もちろん、ドット形成の有無は、ディザマトリックスに設定された閾値だけでなく、画像データの階調値によっても影響されるから、画像データの階調値が極端に大きければ、より小さな閾値が設定されている画素よりも先にドットが形成されることも起こり得る。しかし、前述したように画像データには、隣接する画素には近似する(若しくは同一の)階調値が割り当てられる傾向があるから、ほとんどの場合はドットが形成され易い画素(すなわちディザマトリックスに設定された閾値の小さな画素)からドットが形成されると考えることができる。
図10(a)に示した他の画素群についても、同様にして、ドット個数とディザマトリックスの閾値とに基づいて、各画素についてのドット形成の有無を決定することができる。例えば、図10(a)の上述した画素群の下にある画素群(左端上から2番目の画素群)については、ドット個数は3個であるから、図10(b)のディザマトリックスを参照すれば、これら3つのドットは、閾値「22」が設定された画素と、閾値「33」が設定された画素と、閾値「91」が設定された画素とに、それぞれ形成されると考えることができる。
図10(a)に示した4つの画素群について、このようにしてドット個数のデータからドットを形成する画素位置を決定すると、図10(c)に示した結果を得ることができる。図10(c)中で、斜線を付して示した画素はドットを形成すると判断された画素である。図10(c)と図9(c)とを比較すれば明らかなように、ドットの個数に基づいて決定したドットの分布は、画素毎に画像データと閾値とを比較して決定したドットの分布と一致している。このことは、ディザマトリックスを参照して画素毎にドット形成の有無を判断し、画素群内に形成されるドットの個数のみが分かれば、画素位置までは分からなくても、ディザマトリックスとドットの個数とに基づいて、各画素のドット形成の有無を適切に決定可能なことを示している。このことから、画素群に形成するドットの個数を示す多値化結果値をコンピュータ100からカラープリンタ200に供給した場合でも、カラープリンタ200側でドット形成の有無を適切に決定することができるので、画質を悪化させることなく画像を印刷することが可能となるのである。
また、個数データからドットを形成する画素位置を適切に決定するためには、画像データの階調値が画素群内で大きく異なっていなければ良い。前述したように、画像データは隣接する画素間では近似した階調値を有する特性があるから、こうした条件はほとんどの場合に成立しており、従って、ドットの個数を示す多値化結果値をカラープリンタ200に供給して、多値化結果値からドット形成の有無を決定した場合でも、画質を悪化させることなく画像を印刷することが可能である。特に、次の2つの条件が満足される場合には、画像データの階調値とディザマトリックスの閾値とを比較してドット形成の有無を画素毎に判断した結果と、完全に同じドット分布が得られることになる。先ず1つ目の条件は、画素群内で各画素の階調値が同一の値を有することである。また、詳細には後述するが、本実施例の多値化結果値生成処理では、画素群を複数の領域に分割して多値化結果値を生成することが可能であり、この場合は、分割した領域内で各画素の階調値が同一の値となっていればよい。前述した解像度変換処理において、1つの画素を複数の画素に分割して高解像度化した場合は、同じ画素から生成された画素を画素群にまとめることで、1つ目の条件は自動的に満足されることになる。また、1つの画素群に異なる画素から生成された画素が含まれている場合でも、画素群を分割して、各領域については同じ画素から分割された画素だけが含まれるようにしておけば、1つ目の条件を満足することができる。
2つ目の条件は、コンピュータ100側で画素毎にドット形成の有無を判断する際に参照したディザマトリックスと、カラープリンタ200側で個数データから画素位置を決定するために参照するディザマトリックスとが、同一のマトリックスであることである。
尚、図8で説明したディザ法においては、ディザマトリックスに設定された閾値と画像データとの階調値とを比較して、いずれの値が大きいかによってドット形成の有無を判断している。これに対して、ドットの個数から画素毎のドット形成の有無を決定する場合には、図10を用いて説明したように、画素群内でドットが形成される順番がドットの個数よりも小さいか、あるいはドットの個数と同じ画素についてはドットを形成すると判断し、それ以外の画素についてはドットを形成しないと判断している。すなわち、画素位置を決定するためには、閾値の値まで必要なわけではなく、画素群内でドットが形成され易い順序(換言すれば、ドットが形成される順番)が分かっていれば良い。このことから、図10(b)に示すディザマトリックスの代わりに、図10(d)に示すような画素群内の各画素について、ドットが形成される順番を示す値(順序値)が設定されたマトリックス(本明細書中では、このようなマトリックスを順序値マトリックスと呼ぶものとする)を記憶しておき、画素群毎に順序値マトリックスを参照しながら、各画素についてのドット形成の有無を決定することも可能である。
加えて、このように、ディザマトリックスに基づいてドット形成の有無を決定する場合、ディザ法を適用してドット形成の有無を決定した時とほぼ同等のドット分布を得ることができる。このことから、ディザマトリックスの特性を適切に設計しておくことで、ドットの分布を制御することが可能である。例えば、いわゆるブルーノイズマスク特性を有するマトリックスや、あるいはグリーンノイズマスク特性を有するマトリックスを使用すれば、画像データを画素群単位で処理しているにも関わらず、これらディザマトリックスの特性に依存したドット分布の画像を得ることができる。以下では、この点につき、若干補足して説明する。
図11は、ブルーノイズマスク特性を有するディザマトリックス、およびグリーンノイズマスク特性を有するディザマトリックスについて、マトリックスに設定されている閾値の空間周波数特性を概念的に例示した説明図である。図11では、表示の都合から、横軸には空間周波数の代わりに周期を取って表示している。言うまでもなく、周期が短くなるほど、空間周波数は高くなる。また、図11の縦軸は、それぞれの周期での空間周波数成分を示している。尚、図示されている周波数成分は、ある程度変化が滑らかとなるように平滑化された状態で示されている。
図中の実線は、ブルーノイズマスクの空間周波数成分を概念的に示している。図示されているように、ブルーノイズマスクは、1周期の長さが2画素以下の高い周波数領域に最も大きな周波数成分を有している。ブルーノイズマスクの閾値は、このような空間周波数特性を有するように設定されていることから、ブルーノイズマスクに基づいてドット形成の有無を判断した場合には、ドットが互いに離れた状態で形成される傾向にある。また、図中の破線は、グリーンノイズマスクの空間周波数成分を概念的に示している。図示されているように、グリーンノイズマスクは、1周期の長さが2画素から十数画素の中間周波数領域に最も大きな周波数成分を有している。グリーンノイズマスクの閾値は、このような空間周波数特性を有するように設定されていることから、グリーンノイズマスクに基づいてドット形成の有無を判断した場合には、数ドット単位で隣接してドットが形成されながら、全体としてはドットの固まりが分散した状態で形成される傾向にある。
従って、このようなブルーノイズマスク特性、あるいはグリーンノイズマスク特性を有するディザマトリックスに基づいて、画素群の個数データを決定したり、あるいは、画素位置を決定してやれば、画素群単位で処理しているにも関わらず、ブルーノイズマスク特性あるいはグリーンノイズマスク特性を反映した分布となるように、ドットを形成することが可能となる。
また、以上の説明では、図10に示したように、ディザマトリックスに基づいて生成されて、複数種類の順序値マトリックスを予め記憶しておき、画素群の個数データを受け取ると、その画素群に対応した順序値マトリックスを用いて、各画素についてのドット形成の有無を決定するものとして説明した。しかし、より簡便には次のようにしてドット形成の有無を決定しても良い。すなわち、予め複数の順序値マトリックスを記憶しておき、個数データを受け取ると、画素群毎にランダムに選択した1の順序値マトリックスを用いて、各画素についてのドット形成の有無を決定しても良い。更に、より簡便には、順序値マトリックスを1組だけ記憶しておき、このマトリックスを用いて各画素についてのドット形成の有無を決定することも可能である。
C−2.第1実施例の多値化結果値生成処理 :
以下では、図5に示した第1実施例の画像印刷処理において、画像データから多値化結果値を生成する処理(ステップS106)について説明する。図12は、第1実施例の多値化結果値生成処理の流れを示すフローチャートである。ここでは、多値化結果値生成処理はコンピュータ100で実施されるものとして説明するが、後述するように、多値化結果値生成処理は簡素な処理とすることができるので、カラープリンタ200あるいはデジタルカメラ120などの内部で実施することも可能である。
また、ここでは説明が煩雑となることを避けるため、多値化結果値生成処理に先立って行われる解像度変換処理(図5参照)では、図6(b)に例示したように、変換前の1画素が主走査方向には4分割、副走査方向には2分割されて、合計8つの画素に分割されるか、あるいは図6(c)に例示したように、主走査方向および副走査方向のいずれにも2分割されて、合計4つの画素に分割されるかの、いずれかの方法で高解像度化されるものとする。従って、解像度変換処理前の解像度が360×360dpiであったとすると、変換後の解像度は、1440×720dpiあるいは720×720dpiのいずれかの解像度となる。以下、図12のフローチャートに従って、第1実施例の多値化結果値生成処理について説明する。
第1実施例の多値化結果値生成処理を開始すると、先ず初めに、互いに隣接する所定個数の画素をまとめて画素群を生成する(ステップS200)。前述したように、画素群は、主走査方向に4画素ずつ、副走査方向に2画素ずつの合計8つの画素から生成されるものとする。
次いで、画素群の分類番号を決定する(ステップS202)。分類番号の意味するところについては後述するが、ここでは画素群を識別するために用いられる番号と考えておく。画素群の分類番号は、後述する方法を用いれば極めて簡便に決定することができる。
そして、画素群の大きさ(画素群に含まれる画素数)が、解像度変換前後での解像度比と一致するか否かを判断し(ステップS204)、一致していれば(ステップS204:yes)、画素群を分割することなく処理するものと判断して、画素群の代表階調値を決定する(ステップS206)。一方、画素群の大きさと解像度比とが一致していない場合は(ステップS204:no)、画素群を分割して処理するものと判断して、画素群を分割して生成された各領域についての代表階調値を決定する(ステップS212)。
図13は、解像度変換前後の解像度比に基づいて、画素群を分割するか否かを判断し、代表階調値を決定する様子を概念的に示した説明図である。図13(a)は、解像度変換処理によって、1つの画素が主走査方向には4分割され、副走査方向には2分割された場合を示している。例えば、変換前の画像データの解像度を360×360dpiとすれば、変換後の解像度は1440×720dpiとなる。このような解像度変換が行われた場合、主走査方向の解像度比は4となり、副走査方向の解像度比は2となっている。また、画素群は主走査方向には4画素ずつ、副走査方向には2画素ずつの合計8つの画素をまとめて生成されている。図中に破線で示した矩形は、これら8つの画素が画素群にまとめられた様子を表している。
図13(a)に示した例では、画素群の大きさと解像度比とは、主走査方向あるいは副走査方向のいずれについても一致する。すなわち、主走査方向については、画素群の大きさは4画素、解像度比は4となって一致しており、また、副走査方向については、画素群の大きさは2画素、解像度比は2となって一致している。そこで、図13(a)に示したように、画素群の大きさと解像度比とが一致している場合は(図12のステップS204:yes)、画素群を分割することなく処理すると判断して、画素群の代表階調値を決定する(図12のステップS206)。図13(a)に示した例では、画素群にまとめられた画素はいずれも同じ階調値を有しているから、その階調値を代表階調値として決定すればよい。
一方、図13(b)には、1つの画素が主走査方向および副走査方向のいずれの方向にも、2分割された場合を示している。例えば、変換前の画像データの解像度を360×360dpiとすれば、変換後の解像度は7200×720dpiとなる。画素群は、このような解像度変換が行われた場合でも、主走査方向には4画素ずつ、副走査方向には2画素ずつの合計8つの画素をまとめて生成されている。図13(b)中に破線で示した矩形は、これら8つの画素が画素群にまとめられた様子を表している。
図13(b)に示した例では、画素群の大きさと解像度比とは、副走査方向については一致するものの、主走査方向については一致していない。すなわち、副走査方向については、画素群の大きさは2画素、解像度比は2となって一致しているが、主走査方向については、画素群の大きさは4画素、解像度比は2となって一致していない。そこで、このように、画素群の大きさと解像度比とが一致していない場合は(図12のステップS204:no)、画素群を分割して処理するものと判断して、画素群を主走査方向に2等分した後、分割して生成された各領域についての代表階調値を決定する(図12のステップS212)。このようにして画素群を2つの領域に分割することにより、各領域の大きさは、主走査方向および副走査方向のいずれについても解像度比と一致することになる。図13(b)に示した例では、各領域内の画素はいずれも同じ階調値を有しているから、その階調値を、各領域についての代表階調値とすればよい。
尚、図13(b)に示した例では、画素群を主走査方向にのみ2分割するものとして、副走査方向には分割していない。これは、図13(b)に示した例では、副走査方向には画素群の大きさと解像度比とが一致していることに対応したものである。また、主走査方向への分割数を2分割としたのは、主走査方向の画素群の大きさは4画素、解像度比は2であることから、画素群を2分割すれば、画素群の大きさと解像度比とを一致させることが可能なことに対応したものである。
以上の説明から明らかなように、例えば、解像度変換処理において、主走査方向の解像度だけを2倍に変換し、副走査方向の解像度は変換しなかった場合は、画素群を主走査方向にも副走査方向にも2分割してやればよい。こうすれば、分割によって生成された各領域の大きさを、主走査方向および副走査方向のいずれの方向についても、解像度比に一致させることが可能である。
上述したようにして、画素群の分類番号を決定し、画素群について1つまたは複数(本実施例では2つ)の代表群階調値を決定したら、後述する多値化用テーブルを参照することによって、代表階調値を多値化結果値に変換する(ステップS208またはステップS214)。詳細には後述するが、多値化用テーブルには、画素群の分類番号と代表階調値との組合せに対応付けて、適切な多値化結果値が予め記憶されている。従って、分類番号と代表階調値とが求まっていれば、多値化用テーブルを参照することで直ちに多値化結果値を求めることが可能である。また、画素群が分割されている場合には、代表階調値が複数(本実施例では2つ)得られていることに対応して、その画素群については複数の多値化結果値が得られることになる。
以上のようにして多値化結果値を求めたら、画素群について得られた多値化結果値を記憶する(ステップS210)。画素群が分割されている場合には、各領域について得られた多値化結果値を記憶する(ステップS216)。多値化結果値を記憶するためのデータ形式については後述する。次いで、画像データの全画素について処理を終了したか否かを判断し(ステップS218)、未処理の画素が残っていれば(ステップS218:no)、ステップS200に戻って新たな画素群を生成して、続く一連の処理を繰り返す。こうした操作を繰り返し、全画素についての処理が終了したと判断されたら(ステップS218:yes)、得られた多値化結果値をカラープリンタ200に出力して(ステップS220)、図12に示す第1実施例の多値化結果値生成処理を終了する。
C−3.分類番号の決定方法 :
ここで、上述した第1実施例の多値化結果値生成処理中で、画素群の分類番号を決定する方法について説明する。以下では、先ず初めに、画素群の分類番号を付与する考え方を説明した後、分類番号を付与する具体的な方法について説明する。
図14は、画素群毎の分類番号を決定するための考え方を示した説明図である。図14(a)は、画像の一番左上隅の箇所において、横方向に4画素、縦方向に2画素の合計8画素をまとめることによって画素群を1つ生成した様子を概念的に示したものである。
前述したように、ディザ法では画素に割り当てられた画像データの階調値と、ディザマトリックスの対応する位置に設定されている閾値とを比較して、画素毎にドット形成の有無を判断している。一方、本実施例では、隣接する所定数の画素を画素群としてまとめているから、ディザマトリックスに設定されている閾値についても、画素群に対応する所定数ずつまとめてブロックを生成することにする。図14(b)は、図7に示したディザマトリックスに設定されている閾値を、横方向に4つ、縦方向に2つずつまとめて複数のブロックを生成した様子を示している。図7に示したディザマトリックスは、横方向(主走査方向)に128画素分、縦方向(副走査方向)に64画素分の合計8192画素分の閾値が設定されているから、これら閾値を横方向に4つ、縦方向に2つずつブロックにまとめれば、ディザマトリックスは縦横それぞれ32個ずつ、合計1024個のブロックに分割されることになる。
今、図14(b)に示すように、これらブロックに1番〜1024番までの通し番号を付しておく。そして、画像データにディザマトリックスを適用した時に、各画素群の位置に適用されるブロックの通し番号によって、画素群を分類してやる。例えば、図14(c)に示したように、画像の一番左上隅にある画素群には、図14(b)中の通し番号1番のブロックが適用されるから、この画素群は分類番号1番の画素群に分類する。
以上が、画素群を分類する際の基本的な考え方である。図12のステップS202では、このように、画像データにディザマトリックスを適用したときに、画素群に適用されるブロックの通し番号によって各画素群を分類し、対応する分類番号を決定して画素群に付与する処理を行う。
次に、画素群の分類番号を決定するための具体的な方法について説明する。図15は、画素群の分類番号を決定する方法を示した説明図である。図15(a)は、画像中で生成された1つの画素群を表している。ここでは、この画素群に着目して分類番号を決定する方法について説明する。尚、以下では、分類番号を決定するために着目している画素群を、着目画素群と呼ぶことにする。
今、画像の一番左上隅にある画素を原点に取って、原点からの主走査方向および副走査方向への画素数によって画素位置を表すものとする。また、画素群の位置は、画素群の左上隅にある画素の画素位置によって表すものとする。図15(a)では、着目画素群の位置を示す画素に黒丸を付して表示している。この画素の画素位置が(X,Y)であったとする。すると、各画素群の大きさは、主走査方向に4画素、副走査方向に2画素としているから、
X=4n+1、 Y=2m+1
となるようなn、m(ここで、n,mは0以上の正整数)が存在する。換言すれば、着目画素群の左側にはn個の画素群が並んでおり、着目画素群の上側にはm個の画素群が並んでいることになる。
ここで、前述したように画素群は、画像データにディザマトリックスを適用したときに、着目画素群に適用されるブロックの通し番号に基づいて分類することとしているから(図14参照のこと)、ディザマトリックスを移動させながら画像データに適用する方法によって、同じ画素群でも異なった分類番号に分類されることになる。実際には、ディザマトリックスを移動させながら画像データに適用する方法はどのような方法でも構わないが、ここでは説明の便宜から、最も単純な方法すなわちディザマトリックスを横方向に移動させるものとして説明する。図15(b)には、ディザマトリックスを横方向に少しずつ移動させながら、繰り返し画像データに適用している様子が概念的に示されている。
図15(c)は、図15(b)に示すようにディザマトリックスを繰り返して用いながら、図15(a)に示した着目画素群にディザマトリックスを適用している様子を概念的に表している。このようにディザマトリックスを移動させていくと、ディザマトリックス中のいずれかのブロックが、着目画素群に適用されることになる。ここでは、着目画素群には、ディザマトリックス中でM行N列目のブロックが適用されたものとする。すると、図15(a)に示したように着目画素群の左側にはn個の画素群があり、上側にはm個の画素群があるから、Nとn、およびMとmとの間には、それぞれ
N=n−int(n/32)×32+1
M=m−int(m/32)×32+1
の関係が成り立っている。ここで、intは、小数点以下を切り捨てて整数化することを表す演算子である。すなわち、int(n/32)は、n/32の計算結果に対して小数点以下の数値を切り捨てることによって得られた整数値を表している。このように、着目画素群の位置が分かれば、図15(d)に表示した上述の関係式から数値MおよびNを求めて、ディザマトリックス中でM行N列目にあるブロックのブロック番号を、その着目画素群の分類番号としてやればよい。もっとも実際には、M,Nの値は、図15(d)に示すような計算を実行せずとも、極めて簡便に求めることができる。以下、この点について説明する。
図16は、着目画素群の分類番号を決定する方法を具体的に示した説明図である。着目画素群の位置を(X,Y)として、X,Yが10ビットで表現されているものとする。図16(a)は、数値Xを表す10ビットの2進数データを概念的に示している。図では、各ビットを識別するために、最上位ビットから最下位ビットに向かって1番から10番までの通し番号を付して表示している。
図15を用いて前述したように、着目画素群の左側にある画素群の個数nは、数値Xから1を減算して4で除算すれば得ることができる。ここで、4での除算は、2ビット分だけ右方向にシフトさせることで実施することができるから、数値Xから1を減算して、得られた2進数データを右方向に2ビット分だけビットシフトさせればよい。更に、数値Xは任意の値を取るのではなく、4n+1の形式で表現可能な数値しか取り得ないから、1を減算せずに、単に2進数データを右方向に2ビット分だけビットシフトさせるだけで、画素群の個数nを得ることができる。図16(b)は、こうして数値Xをビットシフトして得られた個数nの2進数データを概念的に表している。
次いで、int(n/32)を算出する。すなわち、個数nを32で除算して、小数点以下の数値を切り捨てる操作を行う。32による除算は、2進数データを右方向に5ビット分だけビットシフトさせることで実行可能であり、また、データを整数形式で扱っていれば、小数点以下の数値は自動的に切り捨てられてしまう。結局、int(n/32)の2進数データは、個数nの2進数データを、単に右方向に5ビット分だけビットシフトさせることで得ることができる。図16(c)は、個数nをビットシフトして得られたint(n/32)の2進数データを概念的に表している。
こうして得られたint(n/32)に32を乗算する。32による乗算は、2進数データを5ビット分だけ左方向にビットシフトすることで実施することができる。図16(d)は、個数nをビットシフトして得られたint(n/32)×32の2進数データを概念的に表している。
次いで、個数nからint(n/32)×32を減算すれば、前述の数値Nを得ることができる。個数nの2進数データ(図16(b)参照)とint(n/32)×32の2進数データ(図16(d)参照)とを比較すれば明らかなように、これら2進数データは、上位の5ビットは共通しており、減算する側の数値の下位5ビットは全て「0」となっている。従って、減算される側の数値(個数n)の下位5ビットをそのまま抜き出せば、求める数値Mを得ることができる。すなわち、図16(b)に示した2進数データと、図16(f)に示すようなマスクデータとの論理積を求めるだけで、極めて簡便に数値Nを得ることが可能である。あるいは、図16(a)に示した着目画素群の位置を示す数値Xの2進数データと、図16(g)のようなマスクデータとの論理積を求めることにより、4番目〜8番目のビットデータを直接抜き出すことによっても、数値Nを得ることができる。
図16では、着目画素群の位置を示す座標値(X,Y)の数値Xから、ディザマトリックス中でのブロック位置を示す数値Nを求める場合について説明したが、全く同様にして、ブロック位置を示す数値Mも数値Yから求めることができる。結局、着目画素群の位置が分かれば、2進数データから特定のビット位置のデータを抜き出すだけで、着目画素群がディザマトリックス中で何行何列目のブロックに対応するかを知ることができ、このブロックの通し番号によって、着目画素群の分類番号を迅速に決定することが可能なのである。
C−4.多値化用テーブル :
図12を用いて前述したように、第1実施例の多値化結果値生成処理のステップS206あるいはステップS214では、こうして得られた画素群の分類番号と代表階調値とから、多値化用テーブルを参照することによって代表階調値を多値化する。以下では、代表階調値を多値化するために参照される多値化用テーブルについて説明する。
図17は、画素群の分類番号と代表階調値とから多値化結果値を取得するために参照される第1実施例の多値化用テーブルを概念的に示した説明図である。図示されているように、第1実施例の多値化用テーブルには、画素群の分類番号と代表階調値との組合せに対応付けて、適切な多値化結果値が予め記憶されている。図14を用いて前述したように、ここでは画素群は分類番号1番〜1024番のいずれかに分類される。また、画像データを1バイトデータとすれば、代表階調値は0〜255のいずれかの階調値を取り得るから、分類番号と代表階調値との組合せは、1024×256=262144の組合せが存在する。多値化用テーブルには、この全ての組合せに対して多値化結果値が設定されている。尚、本実施例では、多値化結果値は、分類番号および代表階調値をそれぞれパラメータとするテーブルに記憶されているものとしているが、分類番号と代表階調値とが決まれば、対応する多値化結果値が1つ決定されるようなものであれば、必ずしもテーブルの形態で多値化結果値を記憶しておく必要はない。
図18は、画素群の分類番号と代表階調値との組合せに応じて、適切な多値化結果値を決定する様子を概念的に示した説明図である。一例として、画素群の分類番号が1番であるとする。分類番号1番の画素群には、ディザマトリックス中で通し番号1番のブロックが適用される。図18(a)には、通し番号1番のブロックに設定されている閾値が示されている。
今、代表群階調値が「0」であるとする。この場合は、画素群中の全画素が階調値0の画像データを有するものとする。そして、各画素の階調値(すなわち「0」)と図18(a)に示した閾値とを比較して、階調値の方が大きい(若しくは同じ)画素については、ドットを形成するものと判断する。画素群の全画素についてこうした判断を行った後、ドットの個数を数えて、得られた個数を多値化結果値とする。図18(a)に示したいずれの閾値も、階調値0よりは大きいから、ドットを形成すると判断される画素は存在しない。そこで、分類番号が1番で代表階調値が「0」の組合せについては、多値化結果値0を設定する。図18(b)は、このようにして、代表群階調値0に対する多値化結果値として「0」が決定される様子を概念的に表したものである。
図18(c)は、分類番号1番、代表階調値1に対する多値化結果値を決定する様子を概念的に示している。この場合は、画素群内の全画素が階調値1の画像データを有するものとして、各画素の階調値を図18(a)に示した閾値と比較する。その結果、画素群内で左上隅にある画素では、画像データの階調値と閾値とが等しくなってドットを形成すると判断され、他の画素についてはドットを形成しないと判断される。図18(c)に表示された斜線の付された丸印は、その画素にドットを形成すると判断されたことを表している。この結果、分類番号が1番で代表階調値が「1」の組合せについては、多値化結果値1が設定される。
こうした操作を、0〜255までの全ての代表階調値について行うことにより、多値化結果値を決定していく。例えば、代表階調値が2の場合は、図18(d)に示したように、多値化結果値は「1」となり、代表階調値が「100」の場合は、図18(e)に示すように多値化結果値は「3」となる。図18(f)および図18(g)には、代表階調値が「200」の場合および代表階調値が「255」の場合に、それぞれの多値化結果値タを決定する様子が概念的に示されている。図17に示した多値化用テーブルの中で、分類番号1に該当する行(表中に示された横方向の欄)の部分に、それぞれの代表階調値に対応付けて設定されている多値化結果値は、このようにして決定された値である。こうした操作を、1番〜1024番までの全ての分類番号について行えば、最終的に、全ての分類番号と全ての代表階調値とのあらゆる組合せに対して、多値化結果値を決定することができる。図17に示した多値化用テーブルには、分類番号と代表階調値との組合せに応じて、対応する多値化結果値が予め設定されている。
C−5.多値化結果値のデータ形式 :
図12を用いて前述したように、第1実施例の多値化結果値生成処理のステップS210あるいはステップS216では、得られた多値化結果値を記憶しておき、ステップS220では、記憶しておいた多値化結果値をカラープリンタ200に向かって出力する。画素群を分割することなく処理する場合は、多値化結果値は画素群毎に1つずつ出力され、画素群を分割して処理する場合は、画素群毎に複数(本実施例では2つずつ)出力されることになる。ここで、図17に示したように、多値化結果値を得るために参照する多値化用テーブルは、画素群が分割されていない場合でも分割された場合でも同じ多値化用テーブルを参照しており、従って、画素群の分割有無によらず、同じような多値化結果値が得られることになる。そこで、多値化結果値が一体の画素群について得られたものか、分割された画素群の各領域について得られたものかを区別可能とするために、図12のステップS210あるいはステップS216では、得られた多値化結果値を次のようなデータ形式で記憶している。
図19は、多値化結果値を記憶するためのデータ形式の一例を示した説明図である。図示した例では、多値化結果値の先頭に、画素群が分割して処理されているか否かを示すビットを付加した状態で、多値化結果値を記憶する。例えば、画素群を分割せずに処理する場合は、図19(a)に示すように、多値化結果値の先頭に、値「0」の1ビットのデータを付加しておく。ここでは画素群は8つの画素から構成されており、多値化結果値は画素群内に形成されるドットの個数を表すものとしているから、前述したように1つの多値化結果値は4ビットあれば足りる。従って、画素群を分割せずに処理する場合は、先頭の1ビットを加えた合計5ビットのデータとして多値化結果値が記憶されることになる。
また、画素群を分割して処理する場合は、図19(b)に示すように、値「1」の1ビットのデータに続けて、各領域の多値化結果値を順番に記憶していく。本実施例では、画素群の分割態様は、左右2つの領域に分割する態様のみとしているから、先頭のビットが「1」であれば、左右の領域に対応した4ビットの多値化結果値が2つ続くことになる。従って、画素群を分割して処理する場合は、合計9ビットのデータとして多値化結果値が記憶されることになる。尚、画素群の分割態様としては、必ずしも2つの領域に分割する態様に限られるものではなく、より多くの領域に分割することも可能である。例えば画素群を4つの領域に分割して処理する場合は、分割したことを示す1ビットのデータに続いて、それぞれの領域の多値化結果値を示す4ビットのデータが4つ続くことになり、合計すると17ビットのデータとして多値化結果値が記憶されることになる。
図20は、多値化結果値を記憶するデータ形式の他の一例を示した説明図である。図示されているように、画素群を分割して処理する場合にだけ、分割したことを示すデータとともに多値化結果値を記憶することとしても良い。すなわち、画素群を分割することなくそのまま処理する場合は、図20(a)に示すように、多値化結果値だけをそのまま記憶する。一方、画素群を分割して処理する場合には、図20(b)に示すように、分割したことを表す特別なデータに続けて、各領域の多値化結果値を記憶しても良い。分割したことを表す特別なデータ(以下では、この様なデータをESCコードと呼ぶことにする)としては、多値化結果値と区別することが可能であればどのようなデータを用いることもできる。例えば本実施例では、多値化結果値は4ビットデータであり16通りの状態を表現することができるが、多値化結果値は実際には9通りの状態しか取り得えないから、5通りの状態が使われずに余っている計算になる。そこで、使われていない状態の1つを選択して、画素群が分割されていることを表すESCコードとして使用することができる。図20に示した例では、4ビット全てが「1」となっているデータ(10進数表示では、「15」)をESCコードとして使用している。
尚、以上の説明では、個々の画素群について、画素群が分割されているか否かを表示することが可能となっている。しかし、1つの画像中で印刷解像度が切り換わることはないと考えれば、画素群が分割して処理されているか否かを示すデータを、1つの画像についての多値化結果値を供給する前に予め供給しておくこととしても良い。こうすれば、画素群毎に、その画素群が分割して処理されているか否かを表示する必要がないので、多値化結果値を迅速に供給することが可能となる。
C−6.第1実施例のドット形成有無決定処理 :
次に、前述した第1実施例の画像印刷処理において、画素群内の各画素についてのドット形成の有無を、多値化結果値に基づいて決定する処理(図5のステップS108)について説明する。図21は、第1実施例のドット形成有無決定処理の流れを示すフローチャートである。かかる処理は、カラープリンタ200の制御回路260に内蔵されたCPUによって実行される処理である。以下では、フローチャートに従って、画素群内の各画素についてのドット形成の有無を、多値化結果値に基づいて決定する処理について説明する。
ドット形成有無決定処理を開始すると、先ず初めに、処理対象とする画素群を1つ選択し(ステップS300)、その画素群の多値化結果値を取得する(ステップS302)。前述した多値化結果値生成処理において画素群を分割して処理した場合は複数の多値化結果値が生成されているから、ステップS302では、1つの画素群あたり複数の多値化結果値を取得する。
次いで、選択した画素群に対応する順序値マトリックスを読み込む処理を行う(ステップS304)。順序値マトリックスとは、画素群内の各画素について、ドットが形成される順番を設定したマトリックスである。図10を用いて前述したように、ディザマトリックスの各画素に設定されている閾値は、画素群内で各画素にドットが形成される順番を表していると考えることができるから、ディザマトリックスに基づいて、画素群に対応する順序値マトリックスを生成することができる。
図22は、ディザマトリックスに基づいて順序値マトリックスを生成している様子を示した説明図である。順序値マトリックスの生成に際しては、先ず、ディザマトリックスを画素群と同じ大きさに分割する。図22(a)は、図7に示したディザマトリックスを分割した様子を概念的に表している。図7に示したディザマトリックスは、主走査方向に128画素分、副走査方向に64画素分の閾値が設定されており、また画素群の大きさは主走査方向に4画素、副走査方向に2画素としているから、ディザマトリックスは1024個のブロックに分割されることになる。そして、画素群に分類番号を付与したときと同様に、これらブロックに1番から1024番までの通し番号を付けておく。
図22(b)の左半分には、通し番号1番のブロックに設定されている閾値を示している。前述したように、ディザマトリックスに設定されている閾値が小さい画素ほどドットが形成され易くなるから、図22(b)に示したブロックでは、閾値「1」が設定されている画素が最もドットが形成され易く、閾値「42」が設定されている画素が2番目にドットが形成され易い。3番目にドットが形成され易い画素は閾値「58」が設定されている画素となる。このようにして、ブロック内の各画素に設定されている閾値に基づいてドットが形成される順番を決定することができ、順序値マトリックスを生成することができる。同様にして、通し番号2番のブロックについても、順序値マトリックスを生成することができる。図22(c)には、通し番号2番のブロックから生成された順序値マトリックスが示されている。こうして、通し番号1番から1024番までの全ブロックについて順序値マトリックスを生成して記憶しておく。カラープリンタ200のメモリには、このような順序値マトリックスが記憶されている。そして、図21のステップS304では、処理対象として選択した画素群が分類番号1番の画素群である場合には、通し番号1番のブロックから生成した順序値マトリックスを読み込んでやり、分類番号2番の画素群であれば、通し番号2番のブロックから生成された順序値マトリックスを読み込む処理を行う。
このようにして、選択した画素群の多値化結果値と順序値マトリックスとを読み込んだら、今度は、画素群に含まれる各画素の中から対象とする画素を1つずつ選択しながら、多値化結果値と順序値マトリックスとに基づいてドット形成の有無を決定していく(ステップS306、S308、S310)。以下では、図23を参照しながら、画素毎にドット形成の有無を決定する様子について説明する。
図23は、多値化結果値と順序値マトリックスとに基づいて、画素群内の各画素についてドット形成の有無を決定する様子を概念的に示した説明図である。図23(a)は、選択した画素群について読み込まれた多値化結果値を示している。ここでは、画素群が2つの領域に分割されて処理されており、左の領域については多値化結果値3が、右の領域については多値化結果値6が得られたものとしている。図23(b)は、選択した画素群に対応して読み込まれた順序値マトリックスを示している。
ドット形成の有無を決定するに際しては、先ず初めに、画素群の中から対象とする画素を1つ選択する(図21のステップS306)。ここでは、画素群内の左上隅にある画素を選択したものとする。次いで、順序値マトリックスを参照することにより、対象とする画素の順序値、すなわち画素群内でドットが形成される順番を取得する(ステップS310)。図23(b)に示した順序値マトリックスを参照すれば、画素群内で左上隅にある画素の順序値は「1」であることが分かる。次に、この画素に対応する多値化結果値を選択する(図21のステップS310)。図23(a)に示した例では、画素群が分割して処理されており、左右2つの領域にそれぞれ1つずつ多値化結果値が読み込まれているが、対象とする画素は左上隅の画素であるから、左側の領域についての多値化結果値「3」を選択する。もちろん、前述した多値化結果値生成処理において、画素群を分割することなく処理されている場合は、多値化結果値は1つだけしか読み込まれていないので、この結果値を選択すればよい。
こうして、対象とする画素の順序値および多値化結果値が得られたら、変換テーブルを参照することによって、ドット形成の有無を決定する(図21のステップS312)。図24は、対象画素についてのドット形成の有無を決定するために参照される変換テーブルを概念的に示した説明図である。ここでは、画素群は8つの画素から構成されているから、順序値は1〜8までの値を取り、個数データは0〜8までの値を取るとしているから、変換テーブルには、これらを組合せた72通りの組合せに対応付けて、ドット形成の有無を示す値が設定されている。図24に示した例では、ドットを形成する組合せに「1」が、ドットを形成しない組合せには「0」が設定されている。
画素群の左上隅の画素については、順序値は「1」であり、多値化結果値は「3」であるから、変換テーブルの該当する箇所にはドット形成することを意味する値「1」が設定されているから、この画素についてはドットを形成すると判断することができる。こうして、1つの画素についてドット形成の有無を決定したら、画素群内の全画素について決定したか否かを判断し(ステップS314)、未だ決定していない画素が残っている場合は(ステップS314:no)、ステップS306に戻って新たな画素を1つ選択した後、選択した画素について同様の操作を行うことによりドット形成の有無を決定する(ステップS308、S310、S312)。
図23(a)に示した画素群は、左側の領域についての多値化結果値「3」と、右側の領域についての多値化結果値「6」とが読み込まれている。また、図23(b)の順序値マトリックスに示されているように、この画素群の左側の領域には、「1」、「4」、「6」、「8」の4つの順序値が設定されている。従って、画素群の左側にある各画素については、図24に示した変換テーブルの中から、破線の丸印を付した箇所に設定されている値、すなわち、多値化結果値「3」と順序値「1」の組合せ、または多値化結果値「3」と順序値「4」の組合せ、多値化結果値「3」と順序値「6」、多値化結果値「3」と順序値「8」のそれぞれの組合せに設定されている値を読み出すことにより、ドット形成の有無を決定することができる。同様に、画素群の右側の領域については、多値化結果値は「6」であり、順序値は「1」、「4」、「6」、「8」の4つの値が設定されている。従って、画素群の右側にある各画素については、図24に示した変換テーブルの中から、破線の四角を付した箇所に設定されている値を読み出すことにより、ドット形成の有無を決定することができる。
このようにして、選択した画素群に含まれる全画素についてドット形成の有無を決定したと判断したら(図21のステップS314:yes)、今度は、全画素群について、上述した操作を行ったか否かを判断する(ステップS316)。そして、未処理の画素群が残っている場合は(ステップS316:no)、ステップS300に戻って新たな画素群を1つ選択して、上述した一連の操作を行う。こうした操作を繰り返し、全画素群についてドット形成の有無を決定したと判断されたら(ステップS316:yes)、図21に示した第1実施例のドット形成有無決定処理を終了して、図5の画像印刷処理に復帰する。
以上、第1実施例の画像印刷処理中で行われる多値化結果値生成処理(図5のステップS106)、およびドット形成有無決定処理(図5のステップS108)の内容について詳しく説明した。上述した多値化結果値生成処理では、所定数の画素をまとめて画素群を生成し、その画素群について分類番号と代表階調値を決定した後、多値化結果値を生成する。上述したように、画素群の分類番号および代表階調値は容易に求めることができ、多値化用テーブルを参照すれば、極めて容易に、代表階調値から多値化結果値を得ることができる。こうして得られた多値化結果値は、画素毎にドット形成の有無を表すデータに比べて、データ量が遙かに小さいため、コンピュータ100からカラープリンタ200に向かって極めて迅速にデータを出力することができる。
また、上述したドット形成有無決定処理では、コンピュータ100から迅速に供給された多値化結果値を受け取ると、順序値マトリックスを参照して画素群内の各画素についての順序値を取得する。次いで、多値化結果値と順序値とに基づいて変換テーブルを参照することにより、各画素についてのドット形成の有無を決定する。このように、順序値マトリックスおよび変換テーブルを参照しながら決定すれば、画素群内の各画素についてのドット形成有無を迅速に決定することが可能である。
更に、多値化結果値は多値化用テーブルを参照することで生成可能なことから、比較的単純な処理で生成することができる。同様に、各画素についてのドット形成の有無も、順序値マトリックスや変換テーブルを参照することで決定可能なことから、比較的単純に決定することができる。このため、いずれの処理についても、コンピュータ100のような高いデータ処理能力を備えていない機器を用いた場合でも、十分に実用的な速度で処理することが可能である。
加えて、上述したように多値化結果値生成処理およびドット形成有無決定処理では、画素群を複数の領域に分割して処理することも可能となっている。従って、解像度変換前後での解像度比に基づいて、画素群を分割して処理するか否かを判断してやれば、たとえ、画素群の大きさが大きすぎた場合でも、より適切な大きさに分割して処理することができる。もちろん、画素群を分割するのではなく、画素群が適切な大きさとなるように適宜変更することも可能である。しかし、画素群の大きさが変わると、参照するべき多値化用テーブルや順序値も変わるため、多数のテーブルや順序値を用意しておく必要がある。これに対して、画素群を分割して処理するのであれば画素群の大きさ自体は変わっておらず、多数のテーブルや順序値を用意しておく必要がない。従って、実質的な処理単位を適切に変更可能でありながら、簡素な処理内容とすることが可能となる。
C−7.第1実施例の変形例 :
以上に説明した第1実施例では、多値化結果値を受け取ると、画素群の分類番号と多値化結果値とから、一旦、各画素についての順序値を求め、次いで、得られた順序値と多値化結果値とを用いて各画素についてのドット形成有無を決定した。これに対して、後述する復号用テーブルを参照することにより、画素群の分類番号および多値化結果値から、直ちに各画素についてのドット形成有無を決定することも可能である。以下では、こうした第1実施例の変形例について説明する。
図25は、第1実施例の変形例において行われるドット形成有無決定処理の流れを示すフローチャートである。かかる処理も、前述した第1実施例のドット形成有無決定処理と同様に、カラープリンタ200の制御回路260に内蔵されたCPUによって実行される処理である。以下では、フローチャートに従って説明する。
第1実施例の変形例のドット形成有無決定処理を開始すると、先ず初めに、処理対象とする画素群を1つ選択し(ステップS350)、その画素群の分類番号を取得する(ステップS352)。画素群の分類番号は前述した第1実施例の多値化結果値生成処理と同様にして、画像中での画素群の位置から迅速に取得することができる。
図26は、画素群の分類番号を決定する方法を示した説明図である。今、ドット形成の有無を決定する対象としている画素群が、図26(a)に示すように、画像の一番左上隅を基準として主走査方向にi個目の画素群、副走査方向にj個目の画素群の位置にあるとする。また、このような画素群の位置を、座標値(i,j)によって表すものとする。また、ディザマトリックスの大きさは、通常は、画像のようには大きくはないので、図15(b)を用いて前述したように、ディザマトリックスを主走査方向に移動させながら、繰り返して使用するものとする。
1つのディザマトリックスには主走査方向・副走査方向にそれぞれ32個ずつのブロックが含まれるとしているから(図14(b)参照)、ディザマトリックス中で、対象の画素群がある位置をI行J列とすれば、I、Jはそれぞれ次式で求めることができる。
I=i−int(i/32)×32
J=j−int(j/32)×32
ここで、intは、小数点以下を切り捨てて整数化することを表す前述した演算子である。従って、画素群の座標値(i,j)に上式を適用してI,Jを求めることで、その画素群がディザマトリックス中でI行J列にあることが分かる。これより、分類番号は、
I+(J−1)×32 …(1)
によって求めることができる。
また、画素群のディザマトリックス中での位置を表す値I,Jは、上述したような計算を実行せずとも、i,jの2進数表示から所定ビットのデータを抜き出すだけで、極めて簡便に求めることができる。図27は、画素群の座標値(i,j)から、画素群のディザマトリックス中での位置を求める方法を具体的に示した説明図である。図27(a)は、数値iを表す10ビットの2進数表示したデータを概念的に示している。尚、図27(a)では、各ビットを識別するために、最上位ビットから最下位ビットに向かって1番から10番までの通し番号を付して表示している。
画素群の位置を示す値Iを求めるに際しては、先ず初めに、iの2進数データを右方向に5ビット分だけビットシフトさせることにより、int(i/32)を算出する(図27(b)参照)。次いで、int(i/32)の2進数データを左方向に5ビット分だけビットシフトさせることで、int(i/32)×32を算出する(図27(c)参照)。最後に、数値iから、int(i/32)×32を減算すれば、目的とする数値Iを得ることができる。この操作は、結局は、数値iの2進数データから下位の5ビットのみを抜き出していることに他ならないから、極めて簡便に数値Iを得ることが可能である。同様にして、数値jの2進数データから下位の5ビットのみを抜き出すことで、極めて簡便に数値Jを得ることが可能である。こうして数値IおよびJが求まれば、上述の(1)式を用いて分類番号を算出することができる。図25のステップS302では、以上のようにして、処理対象として選択した画素群の分類番号を取得する。
次いで、選択した画素群について得られた多値化結果値を取得した後(ステップS354)、画素群が分割されて処理されたか否かを、読み込んだ多値化結果値に基づいて判断する(ステップS356)。多値化結果値が、図19を用いて前述したように、先頭に画素群の分割の有無を示すビットが付加された形式となっている場合は、先頭ビットが「0」であれば画素群は分割されずに処理されており、先頭ビットが「1」であれば画素群は分割された状態で処理されていると判断することができる。これに対して、画素群の分割の有無を図20に示したようにESCコードを用いて表している場合は、読み込んだ多値化結果値の先頭のデータがESCコードであれば画素群が分割された状態で処理されており、そうでなければ分割されずに処理されたものと判断することができる。また、ここでは画素群を分割するパターンは、画素群を左右2つの領域に等分するパターンのみであるものとしているから、分割された画素群については2つの多値化結果値を読み込んでやればよい。
尚、前述した第1実施例の多値化結果値生成処理においても説明したように、画素群の分割の態様は、左右2つに分割するパターンに限られるものではない。また、画素群が分割されているか否かを、画素群毎に表示するのではなく、画像毎に予め表示しておくこととしても良い。
画素群が分割されずに処理されている場合は(ステップS356:no)、画素群の分類番号と多値化結果値とに基づいて復号用テーブルを参照することにより、画素群内の各画素についてのドット形成有無を決定する(ステップS358)。復号用テーブルには、画素群内の各画素についてドット形成の有無を表すデータが記憶されており、かかるデータを読み出すことによって、ドット形成有無を迅速に決定することが可能である。
図28は、第1実施例の変形例のドット形成有無決定処理で参照される復号用テーブルを概念的に示した説明図である。図示されているように、第1実施例の変形例で参照する復号用テーブルには、画素群の分類番号と多値化結果値との組合せに対応づけて、その画素群内の各画素についてのドット形成の有無を表すデータが設定されている。尚、以下では、このような各画素についてのドット形成の有無を表したデータを、ドットデータDDと呼ぶことがあるものとする。また、ドットデータDD(i,j)とは、分類番号がi番で、多値化結果値が「j」の画素群についてのドットデータを表すものとする。
図29は、第1実施例の復号用テーブルに設定されているドットデータDDのデータ構造を示す説明図である。図29(a)に示すように、ドットデータDDは8ビットのデータであり、各ビットが画素群内にある8つの画素に予め対応付けられている。図示した例では、ドットデータDDの先頭のビット(図中で1番と符番したビット)は画素群の左上隅の画素に対応づけられており、先頭から2番目のビット(図中で2番と符番したビット)は画素群内の上段左から2番目の画素に対応づけられている。残りのビットも、それぞれ同様にして、画素群内の各画素に対応づけられている。このように、本実施例においてドットデータDDが8ビットデータとなっているのは、画素群が8つの画素から構成されていることに対応したものである。従って、画素群内の画素数がN個となれば、ドットデータDDもNビットのデータとなる。
また、ドットデータDD中で「1」が設定されているビットは、対応する画素にドットが形成されることを表しており、「0」が設定されているビットは対応する画素にドットが形成されないことを表している。図29(a)に示したドットデータDDは、先頭のビットと7番目のビットに「1」が設定されており、他のビットには「0」が設定されているから、図29(b)に示したように、画素群の上段左端の画素と、下段の左から3番目の画素にドットが形成されることを表している。図25のステップS358では、図28に示した復号用テーブルを参照してこのようなドットデータDDを読み出すことにより、処理対象としている画素群について、各画素のドット形成有無を決定する処理を行う。尚、図28に示すような復号用テーブルを設定する方法については後述する。
一方、画素群が分割して処理されている場合は(ステップS356:yes)、画素群を分割して生成された各領域についての多値化結果値が得られていることになる。本実施例では、画素群が分割される場合は左右2つの領域に等分されるものとしているから(図13参照)、分割された画素群については2つの多値化結果値が得られている。そこで、複数個得られた多値化結果値の各々と画素群の分類番号とを組み合わせて、図28に示した復号用テーブルを参照することにより、各組合せに対応するドットデータDDを読み出してやる(ステップS360)。すなわち、分割して処理された画素群については、ドットデータDDも複数個得られることになる。こうして複数個得られたドットデータDDから各領域のデータを抜き出すことにより、画素群内の各画素についてのドット形成の有無を決定する(ステップS362)。
図30は、複数個得られたドットデータDDを組み合わせることにより、画素群内の各画素についてのドット形成の有無を決定する様子を示した説明図である。ここでは、画素群の分類番号が「1」であり、また、図30(a)に示すように、左側の領域の多値化結果値は「3」、右側の領域の多値化結果値は「6」であったとする。
先ず、復号用テーブルを参照することにより、画素群の左側の領域から得られるドットデータを取得する。画素群の分類番号は1番であり、左側の領域の多値化結果値は「3」であるから、左側の領域については、これらの組合せに対応するドットデータDD(1,3)が得られる。画素群の右側の領域についても同様にして、分類番号1番および多値化結果値6の組合せに対応するドットデータDD(1,6)を得ることができる。
図29を用いて説明したように、ドットデータDDの各ビットは画素群内の各画素に対応づけられている。そして、ここでは、画素群を分割して処理する場合は、画素群を左右2つの領域に等分するものとしているから、左側の領域について得られたドットデータDD(1,3)のうちで、実際に用いられるデータは先頭のビットと、先頭から2番目、5番目、6番目のビットだけとある。何故なら、これらビットだけが、左側の領域の画素に対応づけられているからである。図30(b)では、左側の領域について得られたドットデータDDの内で、実際に用いられるビットには斜線を付して表示されている。同様に、右側の領域について得られたドットデータDD(1,6)についても、実際に用いられるデータは、先頭から3番目、4番目、7番目、8番目のビットのデータとなる。図30(c)では、右側の領域について得られたドットデータDDの中で、実際に用いられるビットには斜線を付して表示されている。
このようにして左右それぞれの領域について得られたドットデータから、実際に使用される部分のデータを抜き出して組み合わせることにより、対象としている画素群についての最終的なドットデータDDを得ることができる。図30(d)は、このようにして合成された最終的なドットデータを概念的に示している。また図30(e)は、最終的に得られたドットデータDDに従って、画素群内の各画素にドットが形成された様子を表している。
尚、以上の説明では、ドットデータDDの前半の4ビットは、画素群内の上段の4つの画素(すなわち、図29(b)で1番〜4番と符番した画素)に対応づけられており、ドットデータDDの後半の4ビットは、画素群内の下段の4つの画素(図29(b)で5番〜8番と符番した画素)に対応づけられているものとした。しかし、ここでは、画素群が分割される場合には左右2つの領域に分割されるものとしているから、このような分割態様を考慮して、ドットデータDDの各ビットと画素とを対応づけることとしてもよい。
図31は、画素群の分割態様を考慮して、ドットデータの各ビットと画素群内の各画素とを対応付けた様子を例示した説明図である。図31(a)は、画素群内の各画素に1番から8番までの番号が符番されている様子を示している。また、図31(b)は、1番から8番までの各画素が、ドットデータDDの各ビットに対応付けられている様子を示している。図31に示した例では、ドットデータDDの前半の4ビットが画素群の左側の領域にある4つの画素に対応付けられており、ドットデータDDの後半の4ビットが画素群の右側の領域にある4つの画素に対応づけられている。こうすれば、復号用テーブルを参照する際に、ドットデータDD(1,3)およびドットデータDD(1,6)を読み出すのではなく、それぞれのドットデータの前半部分および後半部分のみを読み出して組み合わせるだけで、最終的なドットデータを得ることができる。図31(b)は、このようにして最終的なドットデータが合成された様子を概念的に表している。
図25のステップS362においては、以上に説明したようにして、各領域について得られたドットデータを組み合わせることにより、画素群内の各画素についてのドット形成の有無を決定する処理を行う。
このようにして、選択した画素群の各画素についてドット形成の有無を決定したら、画像に含まれる全画素群について、ドット形成の有無を決定したか否かを判断する(ステップS364)。そして、未処理の画素群が残っている場合は(ステップS364:no)、ステップS300に戻って新たな画素群を1つ選択して、上述した一連の操作を行う。こうした操作を繰り返し、全画素群についてドット形成の有無を決定したと判断されたら(ステップS364:yes)、図25に示した第1実施例の変形例のドット形成有無決定処理を終了して、図5の画像印刷処理に復帰する。
ここで、図28に示した復号用テーブルを設定する方法について説明する。復号用テーブルは、図10を用いて前述した原理、すなわち画素群内に形成されるドットの個数と、ディザマトリックス中の画素群に対応する位置に設定されている閾値とを用いて、ドットが形成される画素を決定する原理に基づいて設定されている。
図32は、第1実施例の変形例のドット形成有無決定処理で参照される復号用テーブルを設定する方法を示した説明図である。ここでは画素群の多値化結果値が「3」であったとして、図32の左半分には、分類番号1番の画素群についてのドットデータDD(1,3)を決定する様子が示されており、図32の右半分には、分類番号2番の画素群についてのドットデータDD(2,3)を決定する様子が示されている。図14を用いて前述したように、分類番号1番の画素群にはディザマトリックス中の通し番号1番のブロックが対応し、分類番号2番の画素群には通し番号2番のブロックが対応する。図32の上から2段目には、ディザマトリックス中の通し番号1番のブロックに設定されている閾値、および通し番号2番のブロックに設定されている閾値が示されている。
図10を用いて前述した様に、ディザマトリックスに設定されている閾値はドットの形成され易さを表していると考えることができ、閾値の小さな画素ほどドットが形成され易くなっている。すなわち、通し番号1番のブロックについては、閾値1が設定されている画素が最もドットが形成され易く、閾値42が設定されている画素、閾値58が設定されている画素、閾値109が設定されている画素の順番で、ドットが形成され易くなっている。また、多値化結果値は画素群に形成されるドットの個数を表しているものとしている。従って、分類番号1番の画素群については、通し番号1番のブロック中で閾値1が設定されている画素と、閾値42が設定されている画素、閾値58が設定されている画素にドットが形成されると判断することができる。分類番号2番の画素群についても同様に、通し番号2番のブロック中で閾値5が設定されている画素と、閾値48が設定されている画素、閾値70が設定されている画素にドットが形成されると判断することができる。図32の上から3段目は、この様にして画素群内の各画素についてドット形成の有無を判断した結果を表しており、ドットが形成される画素には斜線を付して示されている。
このようにして画素群内の各画素についてドット形成の有無を決定したら、図29を用いて説明したデータ形式で表現して、復号用テーブルの該当する箇所に書き込めばよい。例えば、図32の左側に示した分類番号1番の画素群については、1番、3番、8番と符番した画素にドットが形成されているから、ドットデータDDは、先頭から1番目、3番目、8番目のビットが「1」で、他のビットには「0」が設定されたデータとなる。このデータを、復号用テーブルのドットデータDD(1,3)として記憶する。以上のような操作を、全ての多値化結果値と全ての分類番号との組合せについて行い、得られたドットデータを該当する箇所に記憶すれば、図28に示した復号用テーブルを設定することができる。上述した第1実施例のドット形成有無決定処理では、このようにして設定された復号用テーブルを参照しながら、画素群内の各画素についてのドット形成有無を決定しているのである。
以上に説明した第1実施例の変形例におけるドット形成有無決定処理では、コンピュータ100から供給された多値化結果値を受け取ると、復号用テーブルを参照することにより、各画素についてのドット形成の有無を迅速に決定することができる。このため、画像を迅速に出力することが可能となる。更に、各画素についてのドット形成有無を決定する処理の内容は、復号用テーブルを参照するという比較的単純な処理となり、迅速に実行することができる。このため、コンピュータ100のような高いデータ処理能力を備えていない機器を用いた場合でも、十分に実用的な速度で処理することが可能である。
加えて、上述した変形例のドット形成有無決定処理においても、画素群を分割した状態で多値化結果値が生成されている場合には、これに合わせて画素群内の各領域についてドット形成有無を決定することが可能である。このような場合でも、ドット形成有無を決定するために参照する復号用テーブルは、同じテーブルを使用することができる。このため、複数の復号用テーブルを記憶しておく必要が無く、大きなメモリ容量を有しない機器においても実行することが可能である。更に、参照するテーブルを切り換える処理も不要となるので簡素な処理とすることができ、高い処理能力を有さない機器においても実行することが可能となる。
D.第2実施例 :
以上に説明した第1実施例では、カラープリンタ200で形成可能なドットは1種類であるものとして説明した。しかし、今日では、画質を向上させることを目的として、大きさの異なるドットや、インク濃度の異なるドットなど、多種のドットを形成可能なプリンタ(いわゆる多値ドットプリンタ)が広く使用されている。本願の発明は、こうした多値ドットプリンタに適用した場合にも大きな効果を得ることができる。以下では、第2実施例として、本願発明を多値ドットプリンタに適用した場合について説明する。
D−1.第2実施例の画像印刷処理の概要 :
第2実施例の画像印刷処理は、フローチャートについては、図5に示した第1実施例の画像印刷処理と同様である。以下では、図5のフローチャートを流用しながら、第2実施例の画像印刷処理の概要について簡単に説明する。
第2実施例の画像印刷処理を開始すると、先ず初めに、コンピュータ100で画像データを読み込んだ後、色変換処理を行う(図5のステップS100およびステップS102相当)。次いで、解像度変換処理を行って、画像データの解像度を印刷解像度に変換した後(ステップS104相当)、多値化結果値生成処理を行って画素群の代表階調値を多値化結果値に変換する(ステップS106相当)。
前述したように、第1実施例では、カラープリンタ200が形成可能なドットは1種類であるものとしており、多値化結果値は、画素群の画素群内に形成されるドット個数を表していた。これに対して第2実施例では、カラープリンタ200は、大きさの異なる3種類のドット、すなわち大ドット、中ドット、小ドットを形成可能である。このことと対応して、第2実施例の多値化結果値は、画素群内に形成されるこれら各種ドットの個数の組合せを表すものとする。そして、第2実施例の多値化結果値生成処理では、画素群の代表階調値を、各種ドットの個数の組合せを表す多値化結果値に変換する処理を行う。また、画素群を分割して処理する場合には、分割して生成された各領域について多値化結果値を決定する。第2実施例の多値化結果値生成処理の詳細については後述する。
カラープリンタ200の制御回路260に内蔵されたCPUは、コンピュータ100から供給された多値化結果値を受け取ると、ドット形成有無決定処理を開始する(図5のステップS108相当)。詳細には後述するが、第2実施例のドット形成有無決定処理では、多値化結果値を、大ドット、中ドット、小ドットの個数を示す中間的なデータに一旦変換した後、画素群内の各画素について、各種ドットの形成有無を判断する処理を行う。
こうして、大中小の各種ドットについてドット形成の有無を決定したら、決定したドット形成の有無に従って、印刷媒体上にドットを形成する(図5のステップS110相当)。その結果、画像データに対応した画像が印刷されることになる。
D−2.第2実施例の多値化結果値生成処理 :
次に、上述した第2実施例の画像印刷処理において、画素群についての、あるいは画素群内の各領域についての代表階調値を多値化して多値化結果値を生成する処理について説明する。後述するように、第2実施例の多値化結果値生成処理においても、画素群の分類番号および代表階調値から多値化用テーブルを参照することにより、極めて容易に生成することができる。こうしたことが可能である理由を説明するために、先ず初めに、画素群内に形成される大中小ドットの個数を、ディザ法を用いて決定する処理について簡単に説明する。その後、かかる説明を踏まえた上で、第2実施例の多値化結果値生成処理の詳細な内容について説明する。
D−2−1.ディザ法を用いた大中小ドットの形成個数の決定処理 :
図33は、画素群内に形成される大ドット、中ドット、小ドットの個数を、ディザ法を適用して決定する処理の流れを示すフローチャートである。尚、ディザ法を適用して大中小の各ドットの形成有無を決定する処理の詳細については、特許3292104号に開示されている。すなわち、図33に示した処理は、特許3292104号に開示された手法を画素群単位で行うものと見ることができる。大中小ドットの個数を決定する場合も、処理を開始すると先ず初めに、互いに隣接する所定数の画素をまとめて画素群を形成する(ステップS400)。ここでは、前述した実施例と同様に、主走査方向に4画素、副走査方向に2画素の合計8つの画素を画素群としてまとめるものとする。
次いで、画素群の中からドット形成の有無を判断するべく、処理対象とする画素を1つ選択して(ステップS402)、選択した処理画素について、大ドット、中ドット、小ドットの形成有無を判断する(ステップS404)。大中小ドットの形成有無は次のようにして判断する。
図34は、選択した1つの画素についてハーフトーン処理を行うことにより、大ドット、中ドット、小ドットの形成有無を判断する処理の流れを示すフローチャートである。大中小ドットのハーフトーン処理を開始すると、先ず初めに処理対象とする画素についての画像データを、大ドット、中ドット、小ドットの各ドットについての密度データに変換する(ステップS450)。ここで、密度データとは、ドットをどの程度の密度で形成するかを表すデータである。密度データは、大きな階調値となるほどドットが高い密度で形成されることを表している。例えば、密度データの階調値「255」は、ドットの形成密度が100%、すなわち全ての画素にドットが形成されることを表しており、密度データの階調値「0」は、ドットの形成密度が0%、すなわちいずれの画素にもドットが形成されないことを表している。こうした密度データへの変換は、ドット密度変換テーブルと呼ばれる数表を参照することによって行うことができる。
図35は、画像データの階調値を大中小各ドットについての密度データに変換する際に参照されるドット密度変換テーブルを概念的に示した説明図である。図示されているように、ドット密度変換テーブルには、色変換によって得られた画像データの階調値に対して、小ドット・中ドット・大ドットの各ドットについての密度データが設定されている。このドット密度変換テーブルを参照すれば、画像データの階調値を、大ドットの密度データ、中ドットの密度データ、小ドットの密度データに迅速に変換することができる。
処理対象とする画素について大中小各ドットの密度データが得られたら、先ず初めに大ドットについての形成有無を判断する(図34のステップS452)。かかる判断は、大ドットの密度データと、処理対象としている画素の対応する位置に設定されているディザマトリックスの閾値とを比較することによって行う。そして、密度データの方が大きい場合は処理対象の画素には大ドットを形成するものと判断される。その結果、大ドットを形成することになった場合は、ステップS454において「yes」と判断され、ハーフトーン処理を抜けて図33に示したドット個数決定処理に復帰する。
逆に、大ドットの密度データよりも閾値の方が大きければ、ステップS452において、処理対象の画素には大ドットは形成されないと判断される。判断の結果、大ドットは形成されない場合は(ステップS454:no)、今度は中ドットについて形成有無を判断する処理を開始する。中ドットの形成有無の判断には、大ドットの密度データと中ドットの密度データとを加算して、中ドット用の中間データを算出する(ステップS456)。そして、得られた中ドット用の中間データと、ディザマトリックスの閾値とを比較することにより、中ドットの形成有無を判断する(ステップS458)。そして、中ドット用の中間データの方が大きい場合は処理対象の画素には中ドットを形成するものと判断される。その結果が、中ドットを形成することになった場合は、ステップS460において「yes」と判断されるので、ハーフトーン処理を抜けて図33のドット個数決定処理に復帰する。
逆に、中ドット用の中間データよりも閾値の方が大きかった場合は、ステップS458において、処理対象の画素には中ドットを形成しないと判断される。判断の結果、中ドットも形成されない場合は(ステップS460:no)、今度は小ドットについて形成有無を判断する処理を開始する。小ドットの形成有無の判断には、中ドット用の中間データと小ドットの密度データとを加算して、小ドット用の中間データを算出する(ステップS462)。そして、得られた小ドット用の中間データと、ディザマトリックスの閾値とを比較することにより、小ドットの形成有無を判断する(ステップS464)。その結果、小ドット用の中間データの方が大きい場合は処理対象の画素には小ドットを形成するものと判断し、逆に、小ドット用の中間データよりも閾値の方が大きい場合には、いずれのドットも形成されないものと判断する。以上のような処理を行えば、処理対象としている画素について、大ドット、中ドット、小ドットのいずれのドットを形成するか、若しくは、いずれのドットも形成しないかを判断することができるので、図34に示したハーフトーン処理を抜けて図33のドット個数決定処理に復帰する。
ハーフトーン処理からドット個数決定処理に復帰すると、画素群内の全画素についてドット形成有無を決定したか否かを判断する(図33のステップS406)。画素群内に未だ判断していない画素が残っている場合は(ステップS406:no)、ステップS402に戻って新たな画素を1つ選択し、選択した処理画素について大中小ドットの形成有無を判断する(ステップS404)。こうした操作を画素群内の全画素について行い、全画素についてドット形成有無の判断を行ったら(ステップS406:yes)、画素群内に形成される大ドット、中ドット、小ドットの個数を決定する(ステップS408)。
こうして、1つの画素群に形成される大中小の各ドットのドット個数を決定したら、画像の全画素について以上の処理を行ったか否かを判断する(ステップS410)。そして、未処理の画素が残っている場合は、ステップS400に戻って続く一連の処理を繰り返し、画像の全画素について処理を終了したと判断されたら、図33に示したディザ法によるドット個数決定処理を終了する。その結果、画像データは複数の画素群に分割され、各画素群に形成される大ドット、中ドット、小ドットの個数が得られることになる。図36は、このようにして、画素群内に形成される大中小の各ドットの個数が、画素群毎に決定された様子を概念的に示した説明図である。
D−2−2.第2実施例の多値化結果値生成処理の内容 :
第2実施例の多値化結果値生成処理は、以上に説明したディザ法を用いて大中小各ドットの形成有無を判断する手法を基礎としており、画素群内の各画素が何れも代表階調値を有するものとして、代表階調値を大中小各ドットの個数を示す値に多値化する処理を行う。すなわち、第2実施例の多値化結果値は、画素群内に形成される各種ドットの個数の組合せを表している。そこで、先ず、第2実施例の多値化結果値と、画素群内に形成される各種ドットの個数の組合せとの対応関係について説明しておく。
図37は、第2実施例の多値化結果値と、画素群内に形成される各種ドットの個数の組合せとの対応関係を示した説明図である。第2実施例においては、画素群内に形成される大ドット、中ドット、小ドットの個数の組合せは、全部で165通り存在しており、それぞれの組合せ1つずつに多値化結果値が対応付けられている。ここで、1つに画素に形成し得るドットの種類は大ドット、中ドット、小ドットの3種類であり、画素群には8つの画素が含まれているから、1つの画素群に形成し得るドット個数の組合せは、単純に考えると3の8乗(=6561)通りとなるはずである。しかし、実際には図37に示したように165通りの組合せしか存在しない。これは、次のような理由によるものである。
画素群内の各画素には、大ドット、中ドット、小ドットのいずれのドットも形成され得るが、1つの画素に複数のドットが形成されることはないから、ドット個数の合計が画素群内の画素数(上述した実施例では8個)を越えることはない。従って、これら大中小ドットの個数の組合せは、「大ドットを形成する」、「中ドットを形成する」、「小ドットを形成する」、「ドットを形成しない」の4つの状態の中から重複を許して8回選択するときの組合せの数に等しくなるから、
(=4+8−1
によって求められ、165通りの組合せが存在していることになる。ここで、は、n種類の物の中から重複を許してr回選択したときに得られる組合せの数(重複組合せ数)を求める演算子である。また、は、n種類の物の中から重複を許さずにr回選択したときに得られる組合せの数を求める演算子である。
165通りであれば、8ビットあれば表現することができるから、第2実施例の多値化結果値は8ビットのデータとなっている。大中小の3種類のドットを形成可能とした場合、各画素は、大中小いずれかのドットを形成するか、何れのドットも形成しないかの4つの状態を取り得るから、これらの状態を表現しようとすると画素あたり2ビットが必要となる。画素群には8つの画素があるから、画素群内の各画素がいずれの状態を取るかを表すためには16ビット必要となる。各画素のドット形成の有無を出力する代わりに多値化結果値を出力することとすれば、データ量を半減させることができる計算となる。
図38は、第2実施例における多値化結果値生成処理の流れを示すフローチャートである。前述したように第2実施例の多値化結果値は、第1実施例の多値化結果値とは異なり各種ドットの個数を表す値となっているが、多値化結果値生成処理としては、参照する多値化用テーブルが異なる以外は、図12に示した第1実施例の処理とほぼ同様である。以下では、図38のフローチャートに従って説明する。
第2実施例の多値化結果値生成処理を開始すると、先ず初めに、互いに隣接する所定個数の画素をまとめて画素群を生成した後(ステップS500)、画像中での画素群の位置に基づいて分類番号を決定する(ステップS502)。次いで、解像度変換前後での解像度比に基づいて、画素群を分割して処理するか否かを判断する(ステップS504)。説明の便宜から、ここでは第1実施例と同様に、画素群を分割して処理する場合は図13に示した左右2つの領域に等分して処理するものとして説明するが、より多くの領域に分割して処理することも可能である。そして、画素群を分割せずに処理する場合は(ステップS504:no)、画素群の代表階調値を決定した後(ステップS506)、多値化用テーブルを参照することにより、画素群の分類番頭および代表階調値に対応する多値化結果値を取得する。画素群の代表階調値は、前述した第1実施例と同様にして決定する。
図39は、第2実施例の多値化結果値生成処理で参照される多値化用テーブルを概念的に示した説明図である。図示されているように、第2実施例における多値化用テーブルには、画素群の分類番号および代表階調値に対応付けて、多値化結果値が設定されている。この多値化結果値は、画素群内の全ての画素が代表階調値を有するものとして、図33ないし図36で説明した方法により各種ドットの形成個数を求め、得られたドット個数の組合せを図37に示した対応関係に従って変換した値である。図39に示した多値化用テーブルには、このようにして求めた多値化結果値が予め設定されているので、第2実施例の多値化結果値生成処理では、テーブルを参照するだけで、画素群の分類番号および代表階調値から直ちに多値化結果値を得ることが可能である。画素群を分割せずに処理する場合は、こうして得られた多値化結果値を記憶しておく(図38のステップS510)。
一方、画素群を分割して処理する場合は(ステップS504:yes)、画素群を分割して生成した各領域について代表階調値を決定する(ステップS512)。そして、各領域についての代表階調値を画素群の分類番号と組み合わせて多値化用テーブルを参照することにより、各領域についての多値化結果値を取得する(ステップS514)。すなわち、画素群を分割して処理する場合は、1つの画素群から、各領域についての複数の多値化結果値が得られることになる。こうして複数の多値化結果値が得られたら、先ず、画素群が分割して処理されていることを示すESCコードを記憶した後(ステップS516)、各領域について得られた多値化結果値を記憶する(ステップS518)。
図40は、第2実施例において多値化結果値とESCコードとが割り当てられている様子を示した説明図である。前述したように多値化結果値は165通りの値を取り得るので8ビットのデータとなり、「0」〜「164」の値を多値化結果値に割り当てると、「165」〜「255」の値が空きとなる。そこで、空いた値の中から任意に選んだ値(ここでは、「255」)をESCコードに割り当てる。画素群の分割態様が複数用意されている場合は、分類態様の種類に応じて複数の値をESCコードに割り当てておけば良い。図38のステップS516では、画素群の分割態様に対応付けて割り当てられたESCコードを記憶する。
こうして、画素群が分割して処理されていることを表すESCコードと、各領域について得られた多値化結果値を記憶したら、画像データの全画素について処理を終了したか否かを判断し(ステップS520)、未処理の画素が残っていれば(ステップS520:no)、ステップS500に戻って新たな画素群を生成して、続く一連の処理を繰り返す。こうした操作を繰り返し、全画素についての処理が終了したと判断されたら(ステップS520:yes)、画素群を分割することなく処理した場合は多値化結果値のみを、画素群を分割して処理した場合はESCコードおよび多値化結果値を、カラープリンタ200に出力して(ステップS522)、図38に示す第2実施例の多値化結果値生成処理を終了する。
D−3.第2実施例のドット形成有無決定処理 :
次に、第2実施例のカラープリンタ200において、多値化結果値を受け取って大中小各ドットの形成有無を決定する処理について説明する。図41は、第2実施例のドット形成有無決定処理の前半部分の処理を示すフローチャートである。また、図42は、第2実施例のドット形成有無決定処理の後半部分の処理を示すフローチャートである。これらの図に示された処理の大まかな流れは、図21を用いて前述した第1実施例のドット形成有無決定処理とほぼ同様である。但し、第2実施例では大中小の各ドットを形成可能であることに対応して、多値化結果値を、画素群内に形成される各種ドットの個数に対応した中間データに一旦変換してから、各画素についてのドット形成有無を決定する点が大きく異なっている。以下、これらフローチャートに従って、第2実施例のドット形成有無決定処理について説明する。
第2実施例のドット形成有無決定処理を開始すると、先ず初めに、処理対象とする画素群を1つ選択し(ステップS600)、その画素群について供給された多値化結果値の先頭のデータを取得して(ステップS602)、取得したデータがESCコードか否かを判断する(ステップS604)。ここでは、画素群の分割態様は、左右2つの領域に等分する態様の1種類だけであるとしており、ESCコード「255」が割り当てられているものとしているから、ステップS604では読み込んだデータが「255」であるか否かを判断することになる。
そして、読み込んだデータがESCコードでは無い場合は(ステップS604:no)、画素群は分割されること無く処理されているものと判断して、読み込んだデータを多値化結果値と読み替える(ステップS606)。一方、読み込んだデータがESCコードである場合は(ステップS604:yes)、画素群は分割されていると判断し、ESCコードに続いて記憶されている所定個数(ここでは2つ)の多値化結果値を取得する(ステップS608)。
次いで、取得した多値化結果値を、画素群内に形成される各種ドットの個数に対応した中間データに変換する(ステップS610)。かかる変換は、中間データ用の変換テーブルを参照することによって行う。図43は、第2実施例のドット形成有無決定処理において参照される中間データ用の変換テーブルを概念的に示した説明図である。図示されているように、変換テーブルには、多値化結果値に対応付けて中間データが設定されており、それぞれの中間データは、形成すべきドットの種類を表す値が、画素群に含まれる画素の数だけ並んだデータとなっている。
例えば、多値化結果値「1」について説明すると、図37に示したように、多値化結果値「1」は、画素群に形成されるドットが小ドット1つのみである状態、換言すれば、画素群内には、小ドットが形成される画素が1つ、ドットが形成されない画素が7つ存在することを表している。そこで、多値化結果値「1」に対する中間データは、ドットを形成しないことを意味する値「0」が7つ、小ドットを形成することを意味する値「1」が1つだけ並んだデータとする。尚、中間データは、これらの値が先頭から小さい順に並んだデータとなっている。結局、多値化結果値「1」に対する中間データは「00000001」というデータとなる。また、多値化結果値に対応するドット個数が、例えば大ドットが2個、中ドットが1個、小ドットが3個であるとする。この場合は、ドットを形成しない画素は2つあるから、先頭の2つの値はドットを形成しないことを意味する値「0」となり、次いで小ドットを形成することを意味する値「1」が3つ続き、その後に中ドットを形成することを意味する値「2」が1つ、最後に大ドットを形成することを意味する値「3」が2つ続くことになる。結局、このような多値化結果値に対応する中間データは、「00111233」というデータとなる。また、形成可能なドットが大ドット、中ドット、小ドットの3種類である場合、中間データに含まれる各値は「0」〜「3」の4つの値しか取り得ないので、それぞれの値は2ビットあれば表現することができる。従って、画素群内に含まれる画素数を8個とすれば、中間データは1つあたり16ビットあれば表現することが可能である。
図43に示した中間データ用の変換テーブルには、この様にして生成された中間データが、多値化結果値に対応付けて設定されている。図41のステップS610では、このような変換テーブルを参照することによって、画素群の多値化結果値を中間データに変換する。
次いで、選択した画素群に対応する順序値マトリックスを読み込む処理を行う(図42のステップS612)。第1実施例において説明したように、順序値マトリックスには画素群内の各画素について、ドットが形成される順番を示す値(順序値)が設定されている。そして、順序値マトリックスは、画素群の分類番号毎に設定されている。
このようにして、選択した画素群についての中間データと順序値マトリックスとが得られたら、画素群の中から対象画素を1画素ずつ選択しながら、ドット形成の有無を決定していく。この様子を、図44を参照しながら説明する。
図44は、第2実施例のドット形成有無決定処理において中間データと順序値マトリックスとを用いて、ドット形成の有無を決定する様子を示した説明図である。一例として、図44(a)に示すような多値化結果値、すなわち画素群が2つに分割された状態で処理されており、左の領域については多値化結果値92が、右の領域については多値化結果値135が得られたものとする。次いで、これらの多値化結果値を中間データに変換する。図44(b)および図44(c)は、それぞれの領域の多値化結果値が中間データに変換された様子を示している。第2実施例のドット形成有無決定処理では、中間データと順序値マトリックスとを用いて画素群内の各画素についてのドット形成の有無を決定する。
対象としている画素群の順序値マトリックスが、図44(d)のようなマトリックスであったとする。前述したように、順序値マトリックスには順序値が設定されており、順序値は画素群内の各画素について、何番目にドットが形成されるかを示している。今、画素群は左右2つに分割されているものとしているから、順序値マトリックスも左右2つに分割する。そして、左側の領域に設定された順序値は画素群の左側の中間データと組合せ、マトリックスの右側の順序値は画素群の右側の中間データと組合せて考える。
例えば、画素群の中から任意の画素を1つ選択して、その画素が画素群の左上隅の画素であったとする。図44(d)の順序値マトリックスを参照することにより、その画素の順序値は1番であることが分かる。また、選択した画素は画素群の左の領域にあるから、左の領域について得られた中間データを参照する。前述したように中間データには、「ドットを形成しない」、「小ドットを形成する」、「中ドットを形成する」、「大ドットを形成する」ことを表す値が、この順番で先頭から並んでいる。一方、大中小各ドットを形成する場合は、初めに大ドットを形成し、次に中ドットを形成し、最後に小ドットを形成する。すなわち、中間データの先頭から並んでいるドット種類の順番は、実際にドットが形成される順番とは逆の順番となっている。従って、中間データを最後尾から読み出していけば、その画素群には、大中小ドットの中の何れの種類のドットから、それぞれ何個ずつ形成されるかを知ることができる。今、選択した画素の順序値は1番であるから、左の領域の中間データから最後尾にある値を読み出すと「2」が得られるので、その画素に形成すべきドットは、中ドットであると決定することができる。
また、例えば画素群の右下隅の画素が選択された場合は、順序値マトリックスを参照することにより、その画素の順序値は5番であることがわかる。選択した画素は右の領域にあるから、画素群の右側の中間データを参照して最後尾から5番目の値を読み出すと「1」が得られるので、その画素に形成すべきドットは小ドットであると決定することができる。
図42のステップS614ないしステップS620では、このようにして画素群の中から対象とする画素を1つずつ選択しながら、ドット形成の有無を決定する。以下、フローチャートに従って簡単に説明すると、先ず初めに、画素群の中から対象画素を1つ選択し(図42のステップS614)、順序値マトリックスを参照することにより、対象画素の順序値を取得する(ステップS616)。次いで、対象画素に対応する中間データを参照して、大中小いずれのドットを形成すべきかを決定する(ステップS618)。すなわち、画素群が分割せずに処理されている場合は、中間データは1つしか得られていないので、このデータを参照してドット形成の有無を決定する。また、画素群が分割された状態で処理されている場合は、複数の中間データが得られているので、対象画素が含まれる領域について得られた中間データを参照することによって、ドット形成の有無を決定するのである。
こうして対象画素についてのドット形成の有無を決定したら、画素群内の全画素について決定したか否かを判断する(ステップS620)。画素群の中に未だドット形成の有無を決定していない画素が残っている場合は(ステップS620:no)、ステップS614に戻って新たな画素を選択し、続く一連の操作を行うことによりドット形成の有無を決定する。このような操作を繰り返して、画素群に含まれる全画素についてドット形成の有無を決定したと判断したら(ステップS620:yes)、今度は、全画素群について、上述した操作を行ったか否かを判断する(ステップS622)。そして、未処理の画素群が残っている場合は(ステップS622:no)、ステップS600に戻って新たな画素群を1つ選択して、上述した一連の操作を行う。全ての画素群についてこうした操作を繰り返し、全画素群についてドット形成の有無を決定したと判断されたら(ステップS622:yes)、図41および図42に示した第2実施例のドット形成有無決定処理を終了して、図5の画像印刷処理に復帰する。
以上、第2実施例の画像印刷処理中で行われる多値化結果値生成処理(図38)、およびドット形成有無決定処理(図41、図42)について説明した。第2実施例の画像印刷処理では、大中小の各種ドットを形成することによって高画質な画像を印刷することができる。
また、一般には、形成可能なドットの種類が増加すると、ドット形成の有無を判断する処理が複雑となり、加えて、コンピュータからカラープリンタに供給すべきデータ量が増加してしまう。このため、高画質な画像は得られるものの、どうしても印刷速度が低下する傾向にあった。しかし、第2実施例の画像印刷処理は、第1実施例に対して、多値化結果値のデータ長こそ4ビットから8ビットに増えているものの、多値化結果値を生成する処理そのものは、画素群の分類番号および代表階調値から多値化用テーブルを参照するだけで変わるところが無く、たいへんに簡素な処理によって迅速に多値化結果値を出力することができる。また、画素毎に大中小ドットの形成有無を表現しようとすると16ビット必要になることと比べれば、多値化結果値が8ビットであっても、データ量が半減していることになる。従って、多値化結果値を、コンピュータ100からカラープリンタ200迅速に供給することが可能であり、高画質な画像を迅速に出力することが可能となる。
一方、ドットの形成有無を決定するに際しても、第2実施例では多値化結果値を一旦、中間データに変換しているものの、中間データと順序値マトリックスとに基づいて各画素のドット形成の有無を迅速に決定することができる。また、多値化結果値を中間データに変換する処理も、単にテーブルを参照するだけの簡素な処理なので迅速に実行することができる。このため、大中小の各種ドットを形成して高画質な画像を出力可能であるにも関わらず、処理の複雑化や処理速度の低下を招くことなく、迅速に画像を出力することができる。
加えて、第2実施例においても第1実施例と同様に、多値化結果値生成処理およびドット形成有無決定処理のいずれの処理も簡素な処理とすることができるので、コンピュータのような高度な処理能力を持たない機器においても、十分に実用的な速度で実行することが可能である。
また、以上に説明した第2実施例の画像印刷処理においても、前述した第1実施例と同様に、画素群を分割することで適切な大きさの領域について処理することができる。このとき、多値化用テーブルや順序値などは、画素群を分割して処理するか否かに関わらず、同じものを使用することができるので、記憶容量を節約することが可能となる。
D−4.第2実施例の変形例 :
以上に説明した第2実施例のドット形成有無決定処理においても、前述した第1実施例と同様に、復号用テーブルを参照することで、より迅速にドット形成の有無を決定することも可能である。以下では、こうした第2実施例の変形例について説明する。
図45は、第2実施例の変形例のドット形成有無決定処理の流れを示すフローチャートである。以下、フローチャートに従って、第2実施例のドット形成有無決定処理について説明する。
第2実施例の変形例のドット形成有無決定処理を開始すると、先ず初めに、処理対象とする画素群を1つ選択し(ステップS650)、その画素群の分類番号を取得する(ステップS652)。画素群の分類番号は、前述した第1実施例の変形例のドット形成有無決定処理と同様にして取得することができる。
次いで、選択した画素群について多値化結果値として供給された先頭のデータを取得した後(ステップS654)、取得したデータがESCコードか否かを判断する(ステップS656)。ここでは、画素群の分割態様は1つだけであり、画素群が分割されて処理されている場合は、ESCコード「255」が多値化結果値に付与されるものとしているから、ステップS656では読み込んだデータが「255」であるか否かを判断する。
読み込んだデータがESCコードでは無い場合は(ステップS656:no)、画素群は分割されずに処理されていると判断して、読み込んだデータを多値化結果値と読み替える(ステップS658)。そして、その画素群について取得しておいた分類番号と多値化結果値とから、復号用テーブルを参照することにより、画素群内の各画素についてドット形成の有無を決定する(ステップS660)。ここで、第2実施例の変形例のドット形成有無決定処理で参照する復号用テーブルは、図28を用いて前述した第1実施例の復号用テーブルとほぼ同様である。但し、第2実施例の変形例では大中小の3種類のドットを形成可能であることに対応して、第2実施例の復号用テーブルに設定されているドットデータDDは、画素群内の各画素に大ドット、中ドット、小ドットのいずれのドットを形成するかを示したデータとなっている。
図46は、第2実施例の復号用テーブルに設定されているドットデータDDのデータ構造を示した説明図である。第2実施例の変形例のドットデータDDは、2ビットを1組として8組からなる16ビットのデータであり、各組が画素群内の各画素に対応付けられている。そして、2ビットデータ「11」は大ドットが形成されることを表しており、2ビットデータ「10」は中ドットが形成されることを、2ビットデータ「01」は小ドットが形成されることを、2ビットデータ「00」はドットが形成されないことを表している。
例えば、ドットデータDDが、図46(a)に示すようなデータであったとする。ドットデータDD中で1番と符番した組には「11」が設定されているから、画素群内の対応する画素(図46(b)中で1番と符番した画素)には大ドットが形成される。また、ドットデータDD中で2番と符番した組には「00」が設定されているから、画素群内で2番と符番した画素にはいずれのドットも形成されない。このように、ドットデータDDの各組に設定されているデータは、画素群内の各画素に形成されるドットの種類を表している。第2実施例のドット形成有無決定処理で参照される復号用テーブルには、この様なドットデータDDが設定されている。
図45に示したステップS660では、画素群の分類番号と多値化結果値とに基づいて復号用テーブルを参照して、図46に示すようなドットデータDDを読み出すことにより、画素群内の各画素についてのドット形成有無を決定する。尚、第2実施例の変形例のドット形成有無決定処理で参照される復号用テーブルの設定方法については後述する。
一方、ステップS654で読み込んだデータがESCコードであった場合は(ステップS656:yes)、画素群は分割して処理されているものと判断し、ESCコードに続いて記憶されている所定個数の多値化結果値を取得する(ステップS662)。これら多値化結果値は、画素群を分割して生成された各領域の代表階調値から得られた多値化結果値である。
次いで、復号用テーブルを参照することにより、取得したそれぞれの多値化結果値をドットデータDDに変換する(ステップS664)。そして、各領域の多値化結果値から求められたドットデータDDから、それぞれの領域に相当する部分のデータを抜き出して組み合わせることにより、画素群内の各画素についてのドット形成有無を決定する(ステップS666)。
図47は、複数のドットデータDDから、画素群内の各画素についてのドット形成有無を決定する様子を示す説明図である。ここでは、図47(a)に示すように、画素群が左右2つに等分された各領域について、多値化結果値92および多値化結果値135が得られたものとする。次いで、復号用テーブルを参照することにより、これらの多値化結果値をドットデータDDに変換する。図47(b)および図47(c)は、それぞれ左領域および右領域の多値化結果値から得られたドットデータDDを表している。図45に示したステップS664では、この様に多値化結果値をドットデータDDに変換する処理を行う。尚、前述したように第2実施例のドットデータDDは、2ビットずつを1組とした16ビットのデータであるが(図46参照)、図示が煩雑となることを避けるため、図47では各組の2ビットデータを10進数で表示している。すなわち、大ドットを表す2ビットデータ「11」は、図47では「3」と表示され、中ドットを表す2ビットデータ「10」は「2」と、小ドットを表す2ビットデータ「01」は「1」と、そしてドットを形成しないことを表す2ビットデータ「00」は「0」と表示されている。
次いで、それぞれのドットデータDDから、各領域に該当する部分のデータを抜き出して組み合わせることにより、分割された画素群内についてのドットデータDDを合成する。すなわち、図47(b)に示したドットデータDDは左領域について得られたものであるから、このドットデータDDからは、左領域を構成する4つの画素に相当する部分のデータを抜き出してやる。図47に示した例では、1番、2番、5番、6番の4つの画素が左領域の画素に対応する。また、図47(c)に示したドットデータDDは右領域について得られたものであるから、右領域を構成する4つの画素に相当する部分のデータを抜き出してやる。図47に示した例では、3番、4番、7番、8番の4つの画素が右領域の画素に対応する。そして、各ドットデータDDから抜き出したデータを組み合わせて、新たなドットデータDDを合成する。図47(d)は、分割された画素群についてのドットデータDDが、この様にして合成された様子を示している。また、図47(e)には、合成されたドットデータDDに従って、各画素にドットが形成されている様子を示している。
図47(e)に示すように、左半分の領域は右半分の領域よりも小さめのドットがまばらに形成されている。すなわち、図47(a)に示した多値化結果値が適切に反映されたドット分布になっている。図45のステップS666では、この様にして、分割された画素群についてのドットデータDDを合成することで、各画素についてのドット形成の有無を決定する処理を行う。
以上のようにして、選択した画素群内の各画素についてドット形成の有無を決定したら(ステップS660、S666)、全画素群についての処理を終了したか否かを判断する(ステップS668)。そして、未処理の画素群が残っている場合は(ステップS668:no)、ステップS650に戻って新たな画素群を選択し、続く一連の操作を行ってドット形成の有無を決定する。このような操作を繰り返して、全画素群についての処理を終了したと判断したら(ステップS668:yes)、図45に示した第2実施例のドット形成有無決定処理を終了する。
ここで、第2実施例の変形例のドット形成有無決定処理で参照する復号用テーブルの設定方法について簡単に説明しておく。第2実施例の変形例で参照される復号用テーブルの設定は、前述した第1実施例の復号用テーブルとほぼ同様にして設定することができる。但し、第2実施例では大中小各ドットについてドット形成有無を判断する点で、第1実施例とは異なっている。
図48は、第2実施例の変形例のドット形成有無決定処理で参照される復号用テーブルを設定する方法を示した説明図である。ここでは画素群の多値化結果値が「105」であったとする。第2実施例の変形例で参照する復号用テーブルには、大中小各ドットについての形成有無を表すドットデータDDが設定されているから、先ず、多値化結果値を、これら各種ドットの個数を表すデータに変換する。かかる変換は、図37に示した対応関係に基づいて容易に実施することができる。ここでは、多値化結果値105は、大ドット1個、中ドット2個、小ドット1個の組合せを表していたものとする。次いで、ディザマトリックスに設定された閾値を参照することにより、これらのドットが画素群内のいずれの画素に形成されるかを決定していく。図48では、分類番号1番の画素群および、分類番号2番の画素群を例に用いて、これら画素群内で大中小各ドットが形成される画素を決定し、対応するドットデータDDを求める様子を示している。
図48の左半分には、分類番号1番の画素群についてのドットデータDD(1,105)を求める様子が示されている。ここで、ドットデータDD(1,105)とは、画素群の分類番号が1番、多値化結果値105の組合せに対応して設定されるドットデータであることを意味している。分類番号1番の画素群についてのドットデータDDを求めるためには、ディザマトリックス中で通し番号1番のブロックに設定された閾値を参照する。図48の上から3段目の左側には、通し番号1番のブロックに設定された閾値が示されている。前述したように、これら閾値はドットの形成され易さを表していると考えることができる。そこで、これら閾値に従って、大ドット、中ドット、小ドットの順番でドットを形成する画素位置を決定していく。以下、具体的に説明する。
先ず、大ドットの形成個数は1個であるから、通し番号1番のブロック中で最もドットが形成され易い画素(閾値1が設定されている画素)には、大ドットが形成される。続いて、2つの中ドットを形成する画素位置を決定する。通し番号1番のブロック中で2番目および3番目にドットが形成され易い画素は、閾値42が設定されている画素と、閾値58が設定されているであるから、中ドットはこれらの画素に形成するものと決定する。最後に小ドットを形成する画素位置を決定する。通し番号1番のブロック中で4番目にドットが形成され易い画素は、閾値109が設定されている画素であるから、小ドットはこの画素に形成するものとする。図48の上から4段目の左側には、このようにして分類番号1番の画素群について、大中小各ドットが形成される画素位置が決定された様子を表している。図中で、細かい斜線が付された画素には大ドットが形成され、少し粗い斜線が付された画素には中ドットが形成され、粗い斜線が付された画素には小ドットが形成され、そして、斜線の付されていない画素にはドットが形成されないことを表している。このようにして画素群内の各画素についてドット形成の有無を決定したら、このドット配置を図43に示したデータ形式のドットデータで表現して、分類番号1番および多値化結果値105に対応するドットデータDD(1,105)として復号用テーブルに設定する。
分類番号2番の画素群についても同様にして、ドットデータDD(2,105)を設定することができる。すなわち、通し番号2番のブロックに設定された閾値を取得する。そして、得られた閾値に従って、大ドット、中ドット、小ドットの順番で、これらドットを形成する画素位置を決定した後、ドットの配置を図43に示したデータ形式で表して、ドットデータDD(2,105)として復号用テーブルに記憶する。以上のような操作を、全ての多値化結果値と全ての分類番号との組合せについて行い、得られたドットデータを該当する箇所に記憶していけば、第2実施例の変形例のドット形成有無決定処理中で参照される復号用テーブルを設定することができる。
以上に説明した第2実施例の変形例のドット形成有無決定処理においても、コンピュータ100から供給された多値化結果値を受け取ると、復号用テーブルを参照するという簡素な処理により、各画素についてのドット形成の有無を迅速に決定することができる。このため、画像を迅速に出力することが可能となる。加えて、画素群を分割した状態で多値化結果値が生成されている場合には、これに合わせて画素群内の各領域についてドット形成有無を決定することが可能である。このような場合でも、ドット形成有無を決定するために参照する復号用テーブルは、同じテーブルを使用することができる。このため、複数の復号用テーブルを記憶しておく必要が無く、大きなメモリ容量を有しない機器においても実行することが可能である。更に、参照するテーブルを切り換える処理も不要となるので簡素な処理とすることができ、高い処理能力を有さない機器においても実行することが可能となる。
E.第3実施例 :
以上に説明した第1実施例、あるいは第2実施例では、多値化結果値の意味するところは、その結果値がいずれの画素群について得られたものであっても同じように解釈することができた。例えば、第1実施例において多値化結果値3と言えば、その結果値がどの画素群について得られたものであっても、画素群内に3つのドットが形成されることを表していた。また、第2実施例において多値化結果値125と言えば、この値は、図37に示した対応関係に応じて大ドット、中ドット、小ドットがそれぞれ所定の個数だけ画素群に形成されることを表していた。このように、異なる画素群に対して得られた多値化結果値であっても同じ値であれば、その意味するところは同じように解釈することができた。しかし、多値化結果値の意味する内容を、画素群に応じて異ならせることも可能である。こうすれば、多値化結果値のデータ量を低減することが可能となる。特に、第2実施例における場合のように、多値化結果値が165通りもの多くの値を取り得るような場合には、多値化結果値のデータ量を低減することで、より迅速に多値化結果値を供給することができる。以下では、このような第3実施例の画像印刷処理について説明する。尚、第3実施例においても、前述した第2実施例と同様に、カラープリンタ200は大中小の3種類のドットを形成可能であるものとする。
E−1.第3実施例の多値化結果値生成処理 :
第3実施例の多値化結果値生成処理は、前述した第2実施例の多値化結果値生成処理に対して、参照する多値化用テーブルが異なるものの、処理の全体的な流れはほぼ同様である。このように、本実施例の画像印刷処理は、処理の内容が複雑かつ高度な内容になっても、多くの場合は多値化用テーブルの変更だけで対応することができ、実際の処理の流れは簡素なものとすることが可能である。以下では、図38に示した第2実施例の多値化結果値生成処理のフローチャートを流用しながら、第3実施例の多値化結果値生成処理について説明する。
第3実施例の多値化結果値生成処理を開始すると、先ず初めに、互いに隣接する所定数の画素をまとめて画素群を生成し(ステップS500相当)、画素群の分類番号を決定する(ステップS502相当)。次いで、解像度変換前後の解像度比に基づいて、画素群を分割するか否かを判断する(ステップS504相当)。ここでは、説明の便宜上、画素群を分割して処理する場合は、左右2つの領域に等分するものとして説明する。画素群を分割することなく処理する場合は、前述した各実施例と同様にして画素群の代表階調値を決定した後(ステップS506相当)、多値化用テーブルを参照することにより、画素群の分類番号および代表階調値に対応する多値化結果値を取得する。
図49は、第3実施例の多値化結果値生成処理で参照される多値化用テーブルを概念的に示した説明図である。前述した第2実施例の多値化結果値生成処理で参照した多値化用テーブル(図39参照)と、この多値化用テーブルとを比較すれば明らかなように、第3実施例の多値化用テーブルに設定されている多値化結果値は、第2実施例の多値化結果値よりも小さな値となっている。これは、第2実施例では、多値化結果値が、画素群によらず同じように解釈可能な値に設定されているのに対し、第3実施例では、その多値化結果値が得られた画素群を特定して(より正確には、画素群の分類番号を特定して)初めて解釈できるような値に設定されていることによる。
図50は、第3実施例の多値化用テーブルにおいて、画素群の分類番号毎に設定されている代表階調値と多値化結果値との対応関係を例示した説明図である。図では、横軸に代表階調値を取り、縦軸の多値化結果値を取った折れ線グラフを用いて、代表階調値に対して設定された多値化結果値を表示している。また、図中では、異なる分類番号N1〜N5を有する5つの画素群についての多値化結果を示しているが、これら画素群の折れ線が重なって判別し難くなることを避けるために、多値化結果値の原点位置を、縦軸方向に少しずつずらした状態で表示している。
図50中に太い実線を用いて表した折れ線は、分類番号N1番の画素群についての代表階調値と多値化結果値との対応関係を示している。分類番号N1番の画素群については、代表階調値0〜4に対しては多値化結果値0が設定されている。代表階調値5〜20に対しては、多値化結果値1が設定されている。次いで、代表階調値が21〜42の範囲に増加すると、多値化結果値は「2」に増加し、代表階調値が43〜69の範囲に増加すると多値化結果値は「3」に増加する。このように、代表階調値が増加するに従って、多値化結果値も段階的に増加していき、最終的には、多値化結果値は「15」まで増加する。同様に、図中で太い破線で示した分類番号N2番の画素群や、太い一点鎖線で示した分類番号N3番の画素群については、代表階調値が0〜255に増加するに従って、多値化結果値が0〜17へと段階的に増加するように設定されている。更に、細い実線で示した分類番号N4番の画素群および細い一点鎖線で示した分類番号N5番の画素群については、代表階調値が0〜255に増加するに従って、多値化結果値が0〜20へと段階的に増加するように設定されている。この結果、例えば、分類番号N1の画素群については0〜15のいずれかの多値化結果値に多値化(いわば16値化)され、分類番号N2またはN3の画素群については0〜17のいずれかの多値化結果値に多値化(いわば18値化)され、分類番号N4またはN5の画素群については0〜20のいずれかの多値化結果値に多値化(いわば21値化)されることになる。
このように、第3実施例の多値化結果値生成処理では、各画素群の多値化の段数(多値化の結果として取り得る状態数)が同じではなく、画素群の分類番号に応じて固有の段数で多値化されている。この結果、同じ代表階調値を多値化した場合でも、画素群の分類番号が異なり、そのため多値化の段数が異なっていれば、異なる結果値に多値化されることになる。
また、多値化段数が同じであったとしても、同じ多値化結果値が得られるわけではない。例えば、図50に示した分類番号N2の画素群と、分類番号N3の画素群とを比較すれば明らかなように、これら画素群については代表階調値がいずれも18値化されているが、多値化結果値が切り換わる代表階調値は多くの場合、一致していない。分類番号N4の画素群と分類番号N5の画素群とについても同様に、これら画素群では代表階調値が何れも21値化されているが、多値化結果値が切り換わる代表階調値は一致していないことが多い。このことから、たとえ画素群の多値化の段数が同じでも、分類番号が異なれば、異なる多値化結果値が得られることになる。
このように、図49に示した第3実施例の多値化用テーブルに設定されている多値化結果値は、代表階調値と多値化結果値との対応関係が画素群の分類番号毎に異なっている。換言すれば、第3実施例の多値化結果値は、その結果値が得られた画素群の分類番号を特定して初めて解釈できる値となっている。このように多値化結果値を画素群に依存した値としてやることで、多値化結果値の取り得る値の個数を少なくすることが可能である。図50に示した例では、多値化結果値の個数が最も多い分類番号N4の画素群および分類番号N5の画素群の場合でも、「0」〜「20」までの21通りしか存在しない。実際のところ、多値化結果値の取り得る値は、多く見積もっても30通りを越えることはなく、30通りであれば、5ビットで十分に表現することができる。第2実施例では、多値化結果値を表現するために8ビット必要であったことと比較すれば、多値化結果値のデータ量が5/8に低減されていることになる。尚、図49に示した第3実施例の多値化用テーブルを設定する方法については後述する。
第3実施例の多値化結果値生成処理において、画素群を分割することなく処理する場合は、図49に示した多値化用テーブルを参照することによって、多値化結果値を取得した後(図38のステップS508相当)、得られた多値化結果値を記憶しておく(ステップS510相当)。
一方、第3実施例の多値化結果値生成処理において、画素群を分割して処理する場合は(図38のステップS504:yesに相当)、画素群を分割して生成した各領域の代表階調値を決定した後(ステップS512相当)、画素群の分類番号および、それぞれの代表階調値から多値化用テーブルを参照して、各領域の多値化結果値を取得する(ステップS514相当)。すなわち、多値化結果値は、画素群を分割して生成した領域の数だけ生成されることになる。次いで、画素群を分割して処理したことを表すESCコードに続けて、領域毎に生成された多値化結果値を記憶する(ステップS516およびS518相当)。
図51は、5ビットのデータに、多値化結果値と分割態様とが対応付けられている様子を示した説明図である。前述したように、第3実施例では、多値化結果値は画素群の分類番号に固有の値に設定されているので、それぞれの分類番号での多値化結果値は、多く見積もっても30通りの値しか取り得ず、5ビットで表現することができる。そこで、多値化結果値として使用されない「31」を表すデータを、ESCコードに割り付けておく。ここでは、画素群の分割態様は1つだけであるとしているから、ESCコード1だけで、画素群が分割されていること、および分割態様を同時に表すことができる。
以上のようにして画素群の多値化結果値を記憶したら、画像データの全画素について処理を終了したか否かを判断し(ステップS520相当)、未処理の画素が残っていれば、新たな画素群を生成した後、続く一連の処理を繰り返す。こうした操作を繰り返し、全画素についての処理が終了したら、画素群を分割することなく処理した場合は多値化結果値のみをカラープリンタ200に出力し、また、画素群を分割して処理した場合はESCコードおよび多値化結果値を出力して(ステップS522相当)、第3実施例の多値化結果値生成処理を終了する。
尚、以上では、画素群の分割態様は1種類のみであるものとして説明したが、より多くの分割態様を用いることも可能である。例えば、以上の説明では多値化結果値の中で使用されていない値「31」をESCコードとして用いたが、図51に示したように値「30」も使用されていない値である。そこで、この値「30」を第2の分割態様を示すESCコードに割り当てることも可能である。例えば、ESCコード「30」は、画素群を上下左右に2つずつ、全体では4つの領域に等分したことを表すものとしてもよい。
E−2.第3実施例のドット形成有無決定処理 :
上述したように、第3実施例の多値化結果値生成処理では、多値化結果値のデータ量を低減するために、画素群の分類番号に固有の多値化結果値を生成してカラープリンタ200に出力する。すなわち、多値化結果値の意味するところは、画素群の分類番号を特定して初めて解釈可能となっている。このため、第3実施例のカラープリンタ200では、このような多値化結果値を受け取ると、次のようなドット形成有無決定処理を行うことにより、画素群内の各画素についてのドット形成の有無を決定する処理を行う。
図52は、第3実施例のドット形成有無決定処理の前半部分の処理を示すフローチャートである。また図53は、第3実施例のドット形成有無決定処理の後半部分の処理を示すフローチャートである。図示した第3実施例のドット形成有無決定処理は、図41および図42を用いて前述した第2実施例の処理に対して、コンピュータ100から受け取る多値化結果値が画素群に依存した値となっており、この多値化結果値を画素群に依存しない中間データに変換してから、各画素についてのドット形成有無を決定する点が大きく異なっている。以下では、こうした第2実施例に対する相違点を中心として、第3実施例のドット形成有無決定処理について説明する。
第3実施例のドット形成有無決定処理においても、前述した第2実施例と同様に、処理を開始すると先ず初めに、処理対象とする画素群を1つ選択する(ステップS700)。そして、その画素群について供給された多値化結果値の先頭のデータを取得し(ステップS702)、取得したデータがESCコードか否かを判断する(ステップS704)。読み込んだデータがESCコードでは無い場合は(ステップS704:no)、画素群は分割されることなく処理されているものと判断して、読み込んだデータを多値化結果値と読み替える(ステップS706)。一方、読み込んだデータがESCコードである場合は(ステップS704:yes)、画素群が分割された状態で処理されているものと判断し、ESCコードに続いて記憶されている所定個数の多値化結果値を取得する(ステップS708)。
第3実施例においては前述した第2実施例と異なり、こうして読み込んだ多値化結果値が、その値が得られた画素群の分類番号を特定して初めて解釈可能な値となっている。そこで、第3実施例のドット形成有無決定処理では、この多値化結果値を、画素群の分類番号に依存しないデータに変換した後に、画素群内の各画素についてのドット形成の有無を決定する。多値化結果値を分類番号に依存しないデータに変換する準備として、先ず、画素群の分類番号を取得する処理を行う(ステップS710)。画素群の分類番号は、第1実施例の変形例のドット形成有無決定処理中で、図26および図27を用いて前述した方法を用いることにより、迅速に取得することができる。次いで、予め設定しておいた変換テーブルを参照することにより、画素群に依存する形態で表現された多値化結果値を、画素群に依存しない形態で表現された中間データに変換する(ステップS712)。
図54は、第3実施例のドット形成有無決定処理において、多値化結果値を中間データに変換する際に参照される変換テーブルを概念的に示した説明図である。図示されているように、第3実施例のドット形成有無決定処理において参照する変換テーブルには、画素群の分類番号と多値化結果値との組合せに対応づけて、対応する中間データが設定されている。図中に示したDD(n,m)は、画素群の分類番号がn番で、その画素群の多値化結果値が「m」である場合の中間データを表している。また、この中間データは、図43に示したように、その画素群に形成されるドットの種類と、それらドットの個数とを示す形式で表現されている。そして、この中間データは、どの画素群についてのデータであっても同じように解釈することが可能なデータとなっている。従って、図54に示した変換テーブルを参照することにより、画素群に依存した形式の多値化結果値を、画素群に形成すべきドットの種類と個数とが画素群に依存しない形式で表現された中間データに変換することができる。
こうして多値化結果値を中間データに変換したら、今度は、選択した画素群に対応する順序値マトリックスを読み込む処理を行う(図53のステップS714)。前述したように、順序値マトリックスには、画素群内の各画素についてドットが形成される順番を示す値(順序値)が設定されている。次いで、前述した第2実施例と同様にして、選択した画素群についての中間データと順序値マトリックスに設定された順序値とを参照しながら、画素群の中から対象画素を1画素ずつ選択してドット形成の有無を決定していく。すなわち、画素群の中から対象とする画素(対象画素)を1つ選択し(ステップS716)、順序値マトリックスを参照することにより、対象画素の順序値を取得する(ステップS718)。次いで、対象画素に対応する中間データを参照して、大中小いずれのドットを形成すべきかを決定する(ステップS720)。このとき、画素群が分割された状態で処理されている場合は複数の中間データが得られているので、対象画素が含まれる領域について得られた中間データを参照することによって、ドット形成の有無を決定する。一方、画素群が分割されずに処理されている場合は中間データは1つしか得られていないので、このデータを参照してドット形成の有無を決定する。
こうして画素群の中から1つずつ対象画素を選択しながら、全ての画素についてのドット形成の有無を決定するまで上述した操作を繰り返し(ステップS722)、全画素についてドット形成の有無を決定したら、今度は、全画素群について、上述した操作を行ったか否かを判断する(ステップS724)。そして、未処理の画素群が残っている場合は、ステップS700に戻って新たな画素群を1つ選択して、上述した一連の操作を行う。全ての画素群についてこうした操作を繰り返し、全画素群についてドット形成の有無を決定したら、図52および図53に示した第3実施例のドット形成有無決定処理を終了する。
以上に説明した第3実施例の画像印刷処理では、画素群の代表階調値を多値化する際に、画素群に依存した多値化結果値を生成することで、コンピュータ100からカラープリンタ200に出力すべきデータ量を低減することができる。このため、多値化結果値を迅速に出力することが可能となる。また、このような多値化結果値を生成する処理も、前述した各種実施例と同様に多値化テーブルを参照することで簡素な処理とすることができる。加えて、画素群を分割して処理する場合でも、分割しない場合と同じ多値化用テーブルあるいは順序値を共用することができるので、記憶容量を節約することが可能となる。
E−3.第3実施例の多値化用テーブルの設定方法 :
次に、第3実施例の多値化結果値生成処理中で参照される多値化用テーブル(図49参照)を設定する方法について説明する。前述したように、多値化用テーブルには、代表階調値に対する多値化結果値が画素群の分類番号毎に設定されており、多値化用テーブルを参照しながら多値化することで、代表階調値は、図50に示したように画素群の分類番号に依存した多値化結果値に変換されることになる。
本実施例の多値化用テーブルは、図33ないし図36を用いて前述した特許3292104号に開示の方法、すなわち、大きさの異なる複数種類のドットの形成有無を決定可能なように、ディザ法を発展させた手法を基にして設定されている。
前述したように多値化結果値生成処理では、画素群内に含まれる各画素の画像データを代表階調値で代表させることにより、画素群をまとめて多値化している。そこで、多値化用テーブルを設定するに際しては、先ず、画素群内の全画素が代表階調値と同じ値の画像データを有するものとして、各画素について大中小の各種ドットについての形成有無を判断することを考える。各種ドットについての形成有無の判断は、図34を用いて前述したハーフトーン処理によって行う。
図55は、画素群内の各画素について、大中小各ドットの形成有無を判断している様子を概念的に示した説明図である。図中では、ハーフトーン処理を行うために着目している画素群を太い実線で囲って表している。画素群は8つの画素から構成されており、各画素の画像データは、いずれも代表階調値と同じ値(図示した例では階調値97)を有している。大中小各種ドットの形成有無を判断するためには、画像データを各ドットについての密度データに変換する。密度データへの変換は、図35を用いて前述したドット密度変換テーブルを参照することによって行う。ここでは、画素群内の全画素が同じ画像データを有するものとしているから、各種ドットについても密度データも全て画素について同じ値となる。図示した例では、大ドットの密度データの階調値が「2」、中ドットの密度データの階調値が「95」、小ドットの密度データの階調値が「30」であった場合を表している。
次いで、図34のフローチャートを用いて前述したように、大ドットの密度データ、中ドット用の中間データ、あるいは小ドット用の中間データと、ディザマトリックスに設定されている閾値とを比較することによって、各種ドットについての形成有無を画素毎に判断する。ここで、比較に用いるディザマトリックスの閾値は、ディザマトリックスの中から、着目している画素群に対応する箇所に設定されている閾値を使用する。例えば、図55に示した例では、画素群が画像の左上隅にあることから、閾値についても、ディザマトリックス中の左上隅の画素群に設定されている閾値を使用する。
そして、画素群に設定されている8つの閾値の中で、大ドットの密度データよりも小さな閾値が設定されている画素については、大ドットを形成すると判断する。ここでは、大ドットの密度データは階調値「2」としているから、大ドットが形成される画素は、閾値「1」が設定されている画素だけである。図55では、大ドットが形成されると判断された画素には、細かい斜線を付して表示している。大ドットの密度データ「2」よりも大きく、大ドットの密度データと中ドットの密度データとを加算して得られた中ドット用の中間データ「97」よりも小さな閾値が設定されている画素には、中ドットを形成するものと判断する。このような画素は、閾値「42」が設定された画素、および閾値「58」が設定された画素の2つの画素だけである。図55では、中ドットが形成されると判断された画素には、少し粗い斜線を付して表示している。そして、最後に、中ドット用の中間データ「97」よりも大きく、中ドット用の中間データに小ドット用の密度データを加算して得られた小ドット用の中間データ「127」よりも小さな閾値が設定されている画素には、小ドットを形成するものと判断する。このような画素は、閾値「109」が設定された画素だけである。図55では、小ドットが形成されると判断された画素には、粗い斜線を付して表示している。このようにして、大ドット、中ドット、小ドットの形成有無を判断した結果、着目している画素群の代表階調値が「97」である場合には、大ドット1個、中ドット2個、小ドット1個が形成されることになる。
代表階調値が大きく異なれば、画素群内に形成される大ドット、中ドット、小ドットの個数も異なったものとなる。また、代表階調値を「0」から「255」まで変化させれば、それに伴って大ドット、中ドット、小ドットの個数は、幾段階かに変化するはずである。更に、画素群の分類番号が異なれば、ディザマトリックスの閾値も異なることから、ドット個数の変化の仕方も異なるはずである。図49に示した多値化用テーブルは、代表階調値を「0」から「255」まで変化させたときの、各種ドットの個数が段階的に変化する挙動を、分類番号毎に調べることによって設定されている。
図56は、第3実施例の多値化結果値生成処理中で参照される多値化用テーブルを設定する処理の流れを示したフローチャートである。以下、フローチャートに従って説明する。多値化用テーブルの設定処理を開始すると、先ず初めに、画素群の分類番号を1つ選択する(ステップS800)。例えば、ここでは分類番号1番を選択したものとする。
次いで、選択した分類番号の画素群に対応する閾値を、ディザマトリックスの中から読み出してやる(ステップS802)。例えば、ここでは分類番号1番を選択したものとしているから、図7に例示したディザマトリックスの中から、図14(b)中で1番と表示したブロック位置に設定されている8つの閾値を読み出す。
そして、多値化結果値RVおよび代表階調値BDを「0」に設定し(ステップS804)、更に、大ドット、中ドット、小ドットの形成個数をいずれも0個に設定する(ステップS806)。
続いて、図35に示したドット密度変換テーブルを参照することにより、代表階調値を大ドット、中ドット、小ドットについての密度データに変換した後(ステップS808)、これら密度データと先に読み込んでおいた閾値とに基づいて、大中小の各種ドットについての形成個数を決定する(ステップS810)。すなわち、図34を用いて説明したように、大ドットの密度データよりも小さな閾値の個数を求めて、得られた個数を大ドットの形成個数とする。また、大ドットの密度データよりも大きく且つ中ドット用の中間データよりも小さな閾値の個数を求めて、これを中ドットの形成個数とする。更に、中ドット用の中間データよりも大きく且つ小ドット用の中間データよりも小さな閾値の個数を求めて、これを小ドットの形成個数とする。
こうして求めた各種ドットの形成個数が、先に設定されていた形成個数に対して変更されたか否かを判断する(ステップS812)。そして、形成個数が変更されたと判断されれば(ステップS812:yes)、多値化結果値RVを「1」だけ増加させて(ステップS814)、得られた多値化結果値RVを代表階調値BDに対応づけて記憶する(ステップS816)。一方、形成個数が変更されていないと判断された場合は(ステップS812:no)、多値化結果値RVを増加させることなく、そのままの値を代表階調値BDに対応づけて記憶する(ステップS816)。
以上のようにして、ある代表階調値に対する多値化結果値を記憶したら、代表階調値BDが階調値255に達したか否かを判断する(ステップS818)。階調値255に達していなければ(ステップS818:no)、代表階調値BDを「1」だけ増加させて(ステップS820)、ステップS808に戻って再び代表階調値BDを密度データに変換した後、続く一連の処理を行って、新たな代表階調値BDに対応づけて多値化結果値RVを記憶する(ステップS816)。代表階調値BDが階調値255に達するまで、こうした操作を繰り返す。そして、代表階調値BDが階調値255に達したら(ステップS816:yes)、選択した分類番号については、すべての多値化結果値を設定したことになる。
そこで、すべての分類番号について、以上のような処理を行ったか否かを判断し(ステップS822)、未処理の分類番号が残っている場合は(ステップS822:no)、ステップS800に戻って再び上述した処理を行う。こうした処理を繰り返し、すべての分類番号について、すべての多値化結果値を設定したと判断されたら(ステップS822:yes)、図56に示した多値化用テーブル設定処理を終了する。
以上の説明から明らかなように、多値化結果値は、代表階調値を変換して得られた大中小各ドットの密度データと、ディザマトリックス中で画素群に対応する位置に記憶されている閾値とによって決定される。ここで、図35に示したドット密度変換テーブルは、画素群の分類番号が異なっていても同じテーブルを参照するから、代表階調値に対する各ドットの密度データも、分類番号によらず同じ密度データが得られる。しかし、ディザマトリックスから読み出された閾値の組は、分類番号毎に異なったものとなる。何故なら、ディザマトリックスは、画像上でドットが一定のパターンで発生したり、あるいは近接した位置に固まって発生することで画質を悪化させることの無いように、閾値は出来るだけ分散させて且つ出来るだけランダムに設定されている。このため、画素群に含まれる複数個の閾値を組として見たときに、全く同じ組合せとなる可能性は極めて低いと考えられるからである。このような理由から、第3実施例の多値化結果値生成処理で参照される多値化用テーブルは、代表階調値と多値化結果値との対応関係が分類番号毎に異なったものとなり、また、多値化結果値が変化する回数(図50に示した多値化の段数)も、分類番号に応じて異なったものとなるのである。
E−4.第3実施例の変形例の多値化結果値生成処理 :
上述した第3実施例の多値化結果値生成処理では、階調値0から階調値255までの代表階調値毎に、対応する多値化結果値を記憶した多値化用テーブルを参照している。しかし多値化結果値は、代表階調値が増加するに従って段階的に増加するだけなので、多値化結果値が切り換わる代表階調値だけを記憶しておけば、代表階調値に対する多値化結果値を求めることができる。以下では、このような第3実施例の変形例の多値化結果値生成処理について説明する。
図57は、第3実施例の変形例の多値化結果値生成処理において参照される閾値テーブルを概念的に示した説明図である。図示されているように閾値テーブルには、分類番号毎に、多値化結果値に対応する閾値が設定されている。この閾値は、代表階調値を階調値0から階調値255まで増加させたときに、その多値化結果値となる最も大きな代表階調値を表している。一例として、分類番号1番の画素群について説明する。分類番号1番については、多値化結果値「0」に対しては閾値「2」が設定されている。これは、分類番号1番の画素群については、代表階調値が「0」ないし「2」の範囲にあれば、多値化結果値が「0」となることを表している。また、多値化結果値「1」に対しては閾値「15」が設定されている。これは、分類番号1番の画素群については、代表階調値が「3」から「15」の範囲にあれば多値化結果値が「1」となることを表している。同様に、多値化結果値「14」に対しては閾値「243」が、そして多値化結果値「15」に対しては閾値「255」が設定されている。これは、代表階調値が「244」から「255」の範囲にあれば多値化結果値が「15」になることを、そして、分類番号1番の画素群については、多値化結果値の最大値が「15」であることを表している。
尚、図57では、分類番号毎の閾値は、それぞれ多値化結果値に対応させて設定されているものとした。しかし、特に多値化結果値に対応付けることなく、単なる閾値の組を分類番号毎に記憶することとしてもよい。この場合は、代表階調値よりも小さな閾値の個数を数えることで、多値化結果値を求めることができる。再び、分類番号1番の画素群を例に用いて説明する。例えば、代表階調値が「20」であったとする。分類番号1番に設定されている閾値の組の中で、階調値20よりも小さな閾値は、「2」、「15」、「18」の3個である。このことから、代表階調値20に対する多値化結果値は「3」であると求めることとしてもよい。
以上に説明した第3実施例の変形例の多値化結果値生成処理では、画素群についての代表階調値と分類番号とを求めた後、図57に例示した閾値テーブルを参照することによって、多値化結果値を生成する。閾値テーブルは、前述した第3実施例の多値化結果生成処理中で参照する多値化用テーブル(図41参照)よりも少ないデータ量で記憶しておくことができる。このため、変形例の多値化結果値生成処理は、第3実施例の処理に比べて、メモリ使用量を節約することが可能である。これに対して、前述した第3実施例の多値化結果値生成処理は、分類番号と代表階調値とから多値化用テーブルを参照するだけで直ちに多値化結果値を求めることができる。すなわち、変形例における処理のように代表階調値と閾値とを比較する必要がないので、迅速に多値化することが可能である。
E−5.第3実施例の変形例のドット形成有無決定処理 :
以上に説明した第3実施例のドット形成有無決定処理においても、前述した第1実施例あるいは第2実施例と同様に、復号用テーブルを参照することで、より迅速にドット形成の有無を決定することも可能である。以下では、こうした第3実施例の変形例のドット形成有無決定処理について説明する。
第3実施例の変形例のドット形成有無決定処理は、前述した第2実施例の変形例におけるドット形成有無決定処理に対して、参照する復号用テーブルが異なる以外はほぼ同様である。そこで、第2実施例の変形例のドット形成有無決定処理について示した図45のフローチャートを流用して、第3実施例の変形例のドット形成有無決定処理について説明する。
第3実施例の変形例のドット形成有無決定処理を開始すると、対象とする画素群を1つ選択して、画素群の分類番号を取得した後、多値化結果値として供給された先頭のデータを取得する(ステップS650、S652、S654相当)。次いで、取得したデータがESCコードか否かを判断する(ステップS656相当)。読み込んだデータがESCコードでは無い場合は、画素群は分割されることなく処理されているものと判断して、読み込んだデータを多値化結果値と読み替えた後、復号用テーブルを参照して画素群内の各画素についてドット形成の有無を決定する(ステップS658、S660相当)。このとき参照する復号用テーブルは、第3実施例の変形例のドット形成有無決定処理で参照するために、特別に設定された専用のテーブルである。かかる復号用テーブルの設定方法については後述する。
一方、読み込んだデータがESCコードである場合は、画素群は分割された状態で処理されているとことを示している。そこで、ESCコードに続いて記憶されている所定個数の多値化結果値を取得する(ステップS662相当)。次いで、復号用テーブルを参照して、それぞれの多値化結果値に対するドットデータDDを読み出した後、これらドットデータを組み合わせることにより、画素群内の各画素についてのドット形成有無を決定する(ステップS664、S666相当)。
以上のようにして、選択した画素群内の各画素についてドット形成の有無を決定することができる。この様な処理を全画素群について行い、全画素群についての処理を終了したと判断したら(ステップS668:yes相当)、第3実施例の変形例のドット形成有無決定処理を終了する。
以上に説明した第3実施例における変形例のドット形成有無決定処理においても、前述した第2実施例における変形例のドット形成有無決定処理と同様に、多値化結果値から各画素についてのドット形成有無を迅速に決定することができ、延いては画像を迅速に出力することが可能となる。
最後に、第3実施例の変形例のドット形成有無決定処理で参照される復号用テーブルの設定方法について簡単に説明する。図58は、第3実施例の復号用テーブルを設定している様子を示した説明図である。第3実施例の復号用テーブルの設定方法は、図48を用いて前述した第2実施例の復号用テーブルの設定方法とほぼ同様である。但し、第3実施例の多値化結果値は、画素群の分類番号を特定して初めて解釈可能な値であるから、多値化結果値を大中小各ドットの個数を表すデータに画素群毎に変換する点が大きく異なっている。以下、図58を参照しながら説明する。
図58では、多値化結果値が「10」であるとして、分類番号1番の画素群と、分類番号2番の画素とについて、それぞれのドットデータDD(1,10)、DD(2,10)を決定する方法を示している。先ず、多値化結果値を1つ選択して、この多値化結果値を画素群毎に大中小各ドットの個数に変換する。すなわち、第3実施例の多値化結果値は、画素群の分類番号毎に意味する内容が異なっているので、分類番号毎に、多値化結果値を解釈しておくのである。図58の上から2段目には、多値化結果値の内容を分類番号毎に解釈した結果が示されている。
次いで、ディザマトリックスの中から、それぞれの分類番号に対応するブロックに設定されている閾値を読み出してやる。図58の上から3段目には、こうして読み出された各ブロックの閾値が示されている。そして、これら閾値に従って、大ドット、中ドット、小ドットの順番で、これらドットを形成する画素位置を決定していく。図58の上から4段目には、各画素群についてドットを形成する画素位置を決定した様子が示されている。図中で、細かい斜線が付された画素には大ドットが形成され、少し粗い斜線が付された画素には中ドットが形成され、粗い斜線が付された画素には小ドットが形成され、そして、斜線の付されていない画素にはドットが形成されないことを表している。このようにして画素群内の各画素についてドット形成の有無を決定したら、このドット配置を図46に示したデータ形式のドットデータで表現する。そして得られたドットデータDDを、多値化結果値および分類番号の組合せに対応する位置に記憶する。以上のような操作を、全ての多値化結果値と全ての分類番号との組合せについて行い、得られたドットデータを該当する箇所に記憶していけば、第3実施例における変形例のドット形成有無決定処理で参照される復号用テーブルを設定することができる。
以上、各種の実施例について説明してきたが、本発明は上記すべての実施例に限られるものではなく、その要旨を逸脱しない範囲において種々の態様で実施することができる。例えば、以上の実施例では、印刷用紙上にドットを形成して画像を印刷する場合について説明したが、本発明の適用範囲は画像を印刷する場合に限られるものではない。例えば、液晶表示画面上で輝点を適切な密度で分散させることにより、階調が連続的に変化する画像を表現する液晶表示装置などにも、本発明を好適に適用することができる。
印刷システムを例にとって本実施例の概要を説明した説明図である。 本実施例の画像処理装置としてのコンピュータの構成を示す説明図である。 本実施例のカラープリンタの概略構成を示す説明図である。 インク吐出用ヘッドにおけるインクジェットノズルの配列を示す説明図である。 第1実施例の画像印刷処理の全体的な流れを示すフローチャートである。 解像度変換処理を行う様子を概念的に示した説明図である。 ディザマトリックスの一部を概念的に例示した説明図である。 ディザマトリックスを参照しながら各画素についてのドット形成の有無を判断している様子を概念的に示した説明図である。 ディザ法を用いて画像データをドット形成の有無を表すデータに変換している様子を示した説明図である。 ドット個数のデータから画素毎にドット形成の有無を表すデータを生成する様子を示した説明図である。 ブルーノイズマスク特性を有するディザマトリックスおよびグリーンノイズマスク特性を有するディザマトリックスについて、マトリックスに設定されている閾値の空間周波数特性を概念的に例示した説明図である。 第1実施例の多値化結果値生成処理の流れを示すフローチャートである。 解像度変換前後の解像度比に基づいて画素群を分割するか否かを判断した後、代表階調値を決定する様子を概念的に示した説明図である。 画素群毎の分類番号を決定するための考え方を示した説明図である。 画素群の分類番号を決定する方法を示した説明図である。 着目画素群の分類番号を決定する方法を具体的に示した説明図である。 第1実施例の多値化結果値生成処理で参照される多値化用テーブルを概念的に示した説明図である。 画素群の分類番号と代表階調値との組合せに応じて適切な多値化結果値を決定する様子を概念的に示した説明図である。 多値化結果値を記憶するデータ形式の一例を示した説明図である。 多値化結果値を記憶するデータ形式の他の一例を示した説明図である。 第1実施例のドット形成有無決定処理の流れを示すフローチャートである。 ディザマトリックスに基づいて順序値マトリックスを生成している様子を示した説明図である。 多値化結果値と順序値マトリックスとに基づいて画素群内の各画素についてドット形成の有無を決定する様子を概念的に示した説明図である。 第1実施例のドット形成有無決定処理で参照される変換テーブルを概念的に示した説明図である。 第1実施例における変形例のドット形成有無決定処理の流れを示すフローチャートである。 画素群の分類番号を決定する方法を示した説明図である。 画素群の座標値から画素群のディザマトリックス中での位置を求める方法を具体的に示した説明図である。 第1実施例における変形例のドット形成有無決定処理で参照される復号用テーブルを概念的に示した説明図である。 第1実施例の復号用テーブルに設定されているドットデータのデータ構造を示す説明図である。 複数個得られたドットデータを組み合わせることにより画素群内の各画素についてのドット形成の有無を決定する様子を示した説明図である。 画素群の分割態様を考慮してドットデータの各ビットと画素群内の各画素とを対応付けた様子を例示した説明図である。 第1実施例の復号用テーブルを設定する方法を示した説明図である。 画素群内に形成される大中小の各ドットの個数をディザ法を適用して決定する処理の流れを示すフローチャートである。 大中小の各ドットの形成有無を判断するハーフトーン処理の流れを示すフローチャートである。 画像データの階調値を大中小各ドットについての密度データに変換する際に参照されるドット密度変換テーブルを概念的に示した説明図である。 画素群毎に大中小の各ドットの形成個数が得られた様子を概念的に示した説明図である。 第2実施例の多値化結果値と画素群内に形成される各種ドットの個数の組合せとの対応関係を示した説明図である。 第2実施例における多値化結果値生成処理の流れを示すフローチャートである。 第2実施例の多値化結果値生成処理で参照される多値化用テーブルを概念的に示した説明図である。 第2実施例において多値化結果値と、分割態様を示すESCコードとが割り当てられている様子を示した説明図である。 第2実施例のドット形成有無決定処理の前半部分の処理を示すフローチャートである。 第2実施例のドット形成有無決定処理の後半部分の処理を示すフローチャートである。 第2実施例のドット形成有無決定処理において参照される中間データ用の変換テーブルを概念的に示した説明図である。 第2実施例のドット形成有無決定処理において中間データと順序値マトリックスとを用いてドット形成の有無を決定する様子を示した説明図である。 第2実施例における変形例のドット形成有無決定処理の流れを示すフローチャートである。 第2実施例の復号用テーブルに設定されているドットデータのデータ構造を示した説明図である。 複数のドットデータから画素群内の各画素についてのドット形成有無を決定する様子を示す説明図である。 第2実施例の復号用テーブルを設定する方法を示した説明図である。 第3実施例の多値化結果値生成処理で参照される多値化用テーブルを概念的に示した説明図である。 第3実施例の多値化用テーブルにおいて画素群の分類番号毎に設定されている代表階調値と多値化結果値との対応関係を例示した説明図である。 5ビットのデータに多値化結果値と分割態様を示すESCコードとが対応付けられている様子を示した説明図である。 第3実施例のドット形成有無決定処理の前半部分の処理を示すフローチャートである。 第3実施例のドット形成有無決定処理の後半部分の処理を示すフローチャートである。 第3実施例のドット形成有無決定処理において多値化結果値を中間データに変換する際に参照される変換テーブルを概念的に示した説明図である。 画素群内の各画素について大中小各ドットの形成有無を判断している様子を概念的に示した説明図である。 第3実施例の多値化結果値生成処理中で参照される多値化用テーブルを設定する処理の流れを示したフローチャートである。 第3実施例の変形例の多値化結果値生成処理において参照される閾値テーブルを概念的に示した説明図である。 第3実施例の復号用テーブルを設定している様子を示す説明図である。
符号の説明
10…コンピュータ、 20…カラープリンタ、 100…コンピュータ、
108…周辺機器インターフェースPIF、
109…ディスクコントローラDDC、
110…ネットワークインターフェースカードNIC、
112…ビデオインターフェースVIF、
116…バス、 118…ハードディスク、 120…デジタルカメラ、
122…カラースキャナ、 124…フレキシブルディスク、
126…コンパクトディスク、 230…キャリッジモータ、 235…モータ、
236…プラテン、 240…キャリッジ、 241…印字ヘッド、
242…インクカートリッジ、 243…インクカートリッジ、
244…インク吐出用ヘッド、 2 60…制御回路、 200…カラープリンタ、
300…通信回線、 310…記憶装置

Claims (27)

  1. 画像データに所定の画像処理を施す画像処理装置と、該画像処理の結果に基づいてドットを形成することにより、画像を出力する画像出力装置とを備える画像出力システムであって、
    前記画像処理装置は、
    前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する分割有無判断手段と、
    前記分割についての前記判断に基づいて、前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する代表階調値決定手段と、
    前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化して多値化結果値を取得する多値化手段と、
    前記得られた多値化結果値を出力する多値化結果値出力手段と
    を備えており、
    前記多値化手段における前記多値化用対応関係は、前記画素群に含まれる画素の数より多い数の閾値を二次元的に配列したディザマトリックスを前記画素群の大きさに応じて分割することにより、前記画素群に含まれる画素の数に対応した数の閾値のまとまりを複数用意し、該閾値のまとまりと前記代表階調値とを比較することにより決定される関係であって、前記閾値のまとまりとの比較により、前記各々の画素群内に代表階調値に応じて形成されるドットの個数である個数データに対応した多値化結果値と、前記代表階調値とを関係づけた対応関係であり、
    前記画像出力装置は、
    前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を該画素群毎に特定する順序値特定手段と、
    前記多値化結果値が前記画素群毎に1つずつ出力された場合は、該多値化結果値と前記特定した順序値とに基づいて該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ出力された場合は、該画素群内の各領域毎に、該多値化結果値と該順序値とに基づいて各画素のドット形成有無を決定するドット形成有無決定手段と、
    前記決定したドット形成の有無に基づいてドットを形成するドット形成手段と
    を備える画像出力システム。
  2. 画像データに所定の画像処理を施す画像処理装置と、該画像処理の結果に基づいてドットを形成することにより、画像を出力する画像出力装置とを備える画像出力システムであって、
    前記画像処理装置は、
    前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する分割有無判断手段と、
    前記分割についての前記判断に基づいて、前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する代表階調値決定手段と、
    前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化して多値化結果値を取得する多値化手段と、
    前記得られた多値化結果値を出力する多値化結果値出力手段と
    を備えており、
    前記多値化手段における前記多値化用対応関係は、前記画素群に含まれる画素の数より多い数の閾値を二次元的に配列したディザマトリックスを前記画素群の大きさに応じて分割することにより、前記画素群に含まれる画素の数に対応した数の閾値のまとまりを複数用意し、該閾値のまとまりと前記代表階調値とを比較することにより決定される関係であって、前記閾値のまとまりとの比較により、前記各々の画素群内に代表階調値に応じて形成されるドットの個数である個数データに対応した多値化結果値と、前記代表階調値とを関係づけた対応関係であり、
    前記画像出力装置は、
    前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値が該画素群毎に1つずつ出力された場合には該多値化結果値から該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ出力された場合には、該画素群内で該多値化結果値が得られた領域毎に、各画素についてのドット形成有無を決定するドット形成有無決定手段と、
    前記決定したドット形成の有無に基づいてドットを形成するドット形成手段と
    を備え
    前記ドット形成有無決定手段における前記復号用対応関係は、前記多値化用対応関係に用いた閾値のまとまりの各々について、前記多値化階調値と前記ドットの配置とを、前記まとまりに含まれる複数の閾値の大小に基づいて関係づけた対応関係のうちから、前記画素群に応じて特定された対応関係であ
    画像出力システム。
  3. 画像データに所定の画像処理を施す第1の画像処理装置と、該画像処理によって得られた第1の画像データを、画素毎にドット形成の有無を表した第2の画像データに変換する第2の画像処理装置とを備える画像処理システムであって、
    前記第1の画像処理装置は、
    前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する分割有無判断手段と、
    前記分割についての前記判断に基づいて、前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する代表階調値決定手段と、
    前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化して多値化結果値を取得する多値化手段と、
    前記得られた多値化結果値を前記第1の画像データとして出力する第1の画像データ出力手段と
    を備えており、
    前記多値化手段における前記多値化用対応関係は、前記画素群に含まれる画素の数より多い数の閾値を二次元的に配列したディザマトリックスを前記画素群の大きさに応じて分割することにより、前記画素群に含まれる画素の数に対応した数の閾値のまとまりを複数用意し、該閾値のまとまりと前記代表階調値とを比較することにより決定される関係であって、前記閾値のまとまりとの比較により、前記各々の画素群内に代表階調値に応じて形成されるドットの個数である個数データに対応した多値化結果値と、前記代表階調値とを関係づけた対応関係であり、
    前記第2の画像処理装置は、
    前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を該画素群毎に特定する順序値特定手段と、
    前記多値化結果値が前記画素群毎に1つずつ出力された場合は、該多値化結果値と前記特定した順序値とに基づいて該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ出力された場合は、該画素群内の各領域毎に、該多値化結果値と該順序値とに基づいて各画素のドット形成有無を決定するドット形成有無決定手段と、
    前記決定したドット形成の有無を前記第2の画像データとして出力する第2の画像データ出力手段と
    を備えている画像処理システム。
  4. 画像データに所定の画像処理を施す第1の画像処理装置と、該画像処理によって得られた第1の画像データを、画素毎にドット形成の有無を表した第2の画像データに変換する第2の画像処理装置とを備える画像処理システムであって、
    前記第1の画像処理装置は、
    前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する分割有無判断手段と、
    前記分割についての前記判断に基づいて、前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する代表階調値決定手段と、
    前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化して多値化結果値を取得する多値化手段と、
    前記得られた多値化結果値を前記第1の画像データとして出力する第1の画像データ出力手段と
    を備えており、
    前記多値化手段における前記多値化用対応関係は、前記画素群に含まれる画素の数より多い数の閾値を二次元的に配列したディザマトリックスを前記画素群の大きさに応じて分割することにより、前記画素群に含まれる画素の数に対応した数の閾値のまとまりを複数用意し、該閾値のまとまりと前記代表階調値とを比較することにより決定される関係であって、前記閾値のまとまりとの比較により、前記各々の画素群内に代表階調値に応じて形成されるドットの個数である個数データに対応した多値化結果値と、前記代表階調値とを関係づけた対応関係であり、
    前記第2の画像処理装置は、
    前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値が該画素群毎に1つずつ出力された場合には該多値化結果値から該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ出力された場合には、該画素群内で該多値化結果値が得られた領域毎に、各画素についてのドット形成有無を決定するドット形成有無決定手段と、
    前記決定したドット形成の有無を前記第2の画像データとして出力する第2の画像データ出力手段と
    を備え
    前記ドット形成有無決定手段における前記復号用対応関係は、前記多値化用対応関係に用いた閾値のまとまりの各々について、前記多値化階調値と前記ドットの配置とを、前記まとまりに含まれる複数の閾値の大小に基づいて関係づけた対応関係のうちから、前記画素群に応じて特定された対応関係であ
    画像処理システム。
  5. ドットを形成して画像を出力する画像出力装置が該ドットの形成を制御するために用いる制御データを、該画像を表す画像データに所定の画像処理を加えて生成する画像処理装置であって、
    前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する分割有無判断手段と、
    前記分割についての前記判断に基づいて、前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する代表階調値決定手段と、
    前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化して多値化結果値を取得する多値化手段と、
    前記得られた多値化結果値を前記制御データとして出力する制御データ出力手段と
    を備え
    前記多値化手段における前記多値化用対応関係は、前記画素群に含まれる画素の数より多い数の閾値を二次元的に配列したディザマトリックスを前記画素群の大きさに応じて分割することにより、前記画素群に含まれる画素の数に対応した数の閾値のまとまりを複数用意し、該閾値のまとまりと前記代表階調値とを比較することにより決定される関係であって、前記閾値のまとまりとの比較により、前記各々の画素群内に代表階調値に応じて形成されるドットの個数である個数データに対応した多値化結果値と、前記代表階調値とを関係づけた対応関係であ
    画像処理装置。
  6. 請求項5記載の画像処理装置であって、
    前記分割有無判断手段は、前記画像を出力する解像度が、前記画像データの解像度に対して所定倍以下である場合に、前記画素群を分割して処理すると判断する手段である画像処理装置。
  7. 請求項5記載の画像処理装置であって、
    前記代表階調値決定手段は、前記画素群を分割して処理する場合は、該画素群を等分する複数の領域の各々について前記代表階調値を決定する手段である画像処理装置。
  8. 所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、画像を出力する画像出力装置であって、
    前記画像を構成する画素が所定の複数個ずつまとめられた画素群について、前記画像データの解像度と該画像を出力する際の解像度との比である解像度比に基づいて、前記画素群を分割するか否かにより、該画素群を代表する代表階調値の数を異ならせて多値化することにより、該画素群毎に、前記代表階調値の数だけ得られた多値化結果値を、前記画像データとして受け取る多値化結果値受取手段と、
    前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を該画素群毎に特定する順序値特定手段と、
    前記多値化結果値が前記画素群毎に1つずつ得られた場合には、該多値化結果値と前記特定した順序値とに基づいて該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ得られた場合には、該画素群内の各領域毎に、該多値化結果値と該順序値とに基づいて各画素のドット形成有無を決定するドット形成有無決定手段と、
    前記決定したドット形成の有無に基づいてドットを形成するドット形成手段と
    を備え、
    前記多値化結果値受取手段が受け取る多値化結果値は、前記画素群に含まれる画素の数より多い数の閾値を二次元的に配列したディザマトリックスを前記画素群の大きさに応じて分割することにより、前記画素群に含まれる画素の数に対応した数の閾値のまとまりを複数用意し、該閾値のまとまりと前記代表階調値とを比較することにより決定される関係であって、前記閾値のまとまりとの比較により、前記各々の画素群内に代表階調値に応じて形成されるドットの個数である個数データに対応した多値化結果値と、前記代表階調値とを関係づけた対応関係を、前記代表階調に基づいて参照することにより取得された値であ
    画像出力装置。
  9. 請求項8記載の画像出力装置であって、
    前記多値化結果値受取手段は、前記画素群に形成すべきドットの個数を表す個数データを、前記多値化結果値として受け取る手段である画像出力装置。
  10. 請求項8記載の画像出力装置であって、
    前記多値化結果値と、前記画素群に形成すべきドットの個数を表す個数データとが、該画素群毎に関連づけられた対応関係を参照することにより、該多値化結果値を該個数データに変換する多値化結果値変換手段を備え、
    前記ドット形成有無決定手段は、前記個数データと前記順序値とに基づいて、前記画素群内の各画素についてのドット形成有無を決定する手段である画像出力装置。
  11. 請求項8ないし請求項10のいずれかに記載の画像出力装置であって、
    前記順序値特定手段は、少なくとも100種類以上の前記画素群ごとに、該画素群内の各画素について前記順序値を特定する手段である画像出力装置。
  12. 前記順序値を特定する画素群の種類数と、該画素群1つあたりに含まれる画素数との乗算値が、少なくとも1000以上である請求項8ないし請求項10のいずれかに記載の画像出力装置。
  13. 請求項8ないし請求項10のいずれかに記載の画像出力装置であって、
    前記ドット形成手段は、単ドットあたりに表現可能な階調値の異なる複数種類のドットを形成可能な手段であり、
    前記ドット形成有無決定手段は、前記画素群について受け取った多値化結果値と、該画素群内の各画素についての前記順序値とに基づいて、前記複数種類のドットの形成有無を決定する手段である画像出力装置。
  14. 画像データに応じてドットを形成することにより、該画像データに対応した画像を出力する画像出力装置であって、
    前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する分割有無判断手段と、
    前記分割についての前記判断に基づいて、前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する代表階調値決定手段と、
    前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化して多値化結果値を取得する多値化手段と、
    前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を該画素群毎に特定する順序値特定手段と、
    前記多値化結果値が前記画素群毎に1つずつ出力された場合は、該多値化結果値と前記特定した順序値とに基づいて該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ出力された場合は、該画素群内の各領域毎に、該多値化結果値と該順序値とに基づいて各画素のドット形成有無を決定するドット形成有無決定手段と、
    前記決定したドット形成の有無に基づいてドットを形成するドット形成手段と
    を備え、
    前記多値化手段における前記多値化用対応関係は、前記画素群に含まれる画素の数より多い数の閾値を二次元的に配列したディザマトリックスを前記画素群の大きさに応じて分割することにより、前記画素群に含まれる画素の数に対応した数の閾値のまとまりを複数用意し、該閾値のまとまりと前記代表階調値とを比較することにより決定される関係であって、前記閾値のまとまりとの比較により、前記各々の画素群内に代表階調値に応じて形成されるドットの個数である個数データに対応した多値化結果値と、前記代表階調値とを関係づけた対応関係であ
    画像出力装置。
  15. 所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、画像を出力する画像出力装置であって、
    前記画像を構成する画素が所定の複数個ずつまとめられた画素群について、前記画像データの解像度と該画像を出力する際の解像度との比である解像度比に基づいて、前記画素群を分割するか否かにより、該画素群を代表する代表階調値の数を異ならせて多値化することにより、該画素群毎に、前記代表階調値の数だけ得られた多値化結果値を、前記画像データとして受け取る多値化結果値受取手段と、
    前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値を該画素群毎に1つずつ受け取った場合には該多値化結果値から該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値を該画素群毎に複数個ずつ受け取った場合には、該画素群内で該多値化結果値が得られた領域毎に、各画素についてのドット形成有無を決定するドット形成有無決定手段と、
    前記決定したドット形成の有無に基づいてドットを形成するドット形成手段と
    を備え
    前記多値化結果値受取手段が受け取る多値化結果値は、前記画素群に含まれる画素の数より多い数の閾値を二次元的に配列したディザマトリックスを前記画素群の大きさに応じて分割することにより、前記画素群に含まれる画素の数に対応した数の閾値のまとまりを複数用意し、該閾値のまとまりと前記代表階調値とを比較することにより決定される関係であって、前記閾値のまとまりとの比較により、前記各々の画素群内に代表階調値に応じて形成されるドットの個数である個数データに対応した多値化結果値と、前記代表階調値とを関係づけた対応関係を、前記代表階調に基づいて参照することにより取得された値であり、
    前記ドット形成有無決定手段における前記復号用対応関係は、前記多値化用対応関係に用いた閾値のまとまりの各々について、前記多値化階調値と前記ドットの配置とを、前記まとまりに含まれる複数の閾値の大小に基づいて関係づけた対応関係のうちから、前記画素群に応じて特定された対応関係であ
    画像出力装置。
  16. 請求項15記載の画像出力装置であって、
    前記ドット形成有無決定手段は、前記復号用対応関係として、少なくとも100種類以上の前記画素群毎に、前記多値化結果値と前記ドット形成の有無とが関連づけられた対応関係を参照する手段である画像出力装置。
  17. 前記復号用対応関係に記憶されている画素群の種類数と、該画素群1つあたりに含まれる画素数との乗算値が、少なくとも1000以上である請求項15記載の画像出力装置。
  18. 請求項15記載の画像出力装置であって、
    前記ドット形成手段は、単ドットあたりに表現可能な階調値の異なる複数種類のドットを形成可能な手段であり、
    前記ドット形成有無決定手段は、前記多値化結果値と、前記複数種類のドットの形成有無とが前記画素群毎に関連づけられた前記復号用対応関係を参照することにより、該画素群内の各画素についてのドット形成有無を決定する手段である画像出力装置。
  19. 画像データに応じてドットを形成することにより、該画像データに対応した画像を出力する画像出力装置であって、
    前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する分割有無判断手段と、
    前記分割についての前記判断に基づいて、前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する代表階調値決定手段と、
    前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化して多値化結果値を取得する多値化手段と、
    前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値を該画素群毎に1つずつ受け取った場合には該多値化結果値から該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値を該画素群毎に複数個ずつ受け取った場合には、該画素群内で該多値化結果値が得られた領域毎に、各画素についてのドット形成有無を決定するドット形成有無決定手段と、
    前記決定したドット形成の有無に基づいてドットを形成するドット形成手段と
    を備え、
    前記多値化手段における前記多値化用対応関係は、前記画素群に含まれる画素の数より多い数の閾値を二次元的に配列したディザマトリックスを前記画素群の大きさに応じて分割することにより、前記画素群に含まれる画素の数に対応した数の閾値のまとまりを複数用意し、該閾値のまとまりと前記代表階調値とを比較することにより決定される関係であって、前記閾値のまとまりとの比較により、前記各々の画素群内に代表階調値に応じて形成されるドットの個数である個数データに対応した多値化結果値と、前記代表階調値とを関係づけた対応関係であり、
    前記ドット形成有無決定手段における前記復号用対応関係は、前記多値化用対応関係に用いた閾値のまとまりの各々について、前記多値化階調値と前記ドットの配置とを、前記まとまりに含まれる複数の閾値の大小に基づいて関係づけた対応関係のうちから、前記画素群に応じて特定された対応関係であ
    る画像出力装置。
  20. 画像データに応じてドットを形成することにより、該画像データに対応した画像を出力する画像出力方法であって、
    前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する第1の工程と、
    前記分割についての前記判断に基づいて、前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する第2の工程と、
    前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化して多値化結果値を取得する第3の工程と、
    前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を該画素群毎に特定する第4の工程と、
    前記多値化結果値が前記画素群毎に1つずつ出力された場合は、該多値化結果値と前記特定した順序値とに基づいて該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ出力された場合は、該画素群内の各領域毎に、該多値化結果値と該順序値とに基づいて各画素のドット形成有無を決定する第5の工程と、
    前記決定したドット形成の有無に基づいてドットを形成する第6の工程と
    を備え、
    前記第3の工程における前記多値化用対応関係は、前記画素群に含まれる画素の数より多い数の閾値を二次元的に配列したディザマトリックスを前記画素群の大きさに応じて分割することにより、前記画素群に含まれる画素の数に対応した数の閾値のまとまりを複数用意し、該閾値のまとまりと前記代表階調値とを比較することにより決定される関係であって、前記閾値のまとまりとの比較により、前記各々の画素群内に代表階調値に応じて形成されるドットの個数である個数データに対応した多値化結果値と、前記代表階調値とを関係づけた対応関係であ
    画像出力方法。
  21. 画像データに応じてドットを形成することにより、該画像データに対応した画像を出力する画像出力方法であって、
    前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する工程(A)と、
    前記分割についての前記判断に基づいて、前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する工程(B)と、
    前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化して多値化結果値を取得する工程(C)と、
    前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値を該画素群毎に1つずつ受け取った場合には該多値化結果値から該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値を該画素群毎に複数個ずつ受け取った場合には、該画素群内で該多値化結果値が得られた領域毎に、各画素についてのドット形成有無を決定する工程(D)と、
    前記決定したドット形成の有無に基づいてドットを形成する工程(E)と
    を備え
    前記工程(C)における前記多値化用対応関係は、前記画素群に含まれる画素の数より多い数の閾値を二次元的に配列したディザマトリックスを前記画素群の大きさに応じて分割することにより、前記画素群に含まれる画素の数に対応した数の閾値のまとまりを複数用意し、該閾値のまとまりと前記代表階調値とを比較することにより決定される関係であって、前記閾値のまとまりとの比較により、前記各々の画素群内に代表階調値に応じて形成されるドットの個数である個数データに対応した多値化結果値と、前記代表階調値とを関係づけた対応関係であり、
    前記工程(D)における前記復号用対応関係は、前記多値化用対応関係に用いた閾値のまとまりの各々について、前記多値化階調値と前記ドットの配置とを、前記まとまりに含まれる複数の閾値の大小に基づいて関係づけた対応関係のうちから、前記画素群に応じて特定された対応関係であ
    画像出力方法。
  22. 所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、画像を出力する画像出力方法であって、
    前記画像を構成する画素が所定の複数個ずつまとめられた画素群について、前記画像データの解像度と該画像を出力する際の解像度との比である解像度比に基づいて、前記画素群を分割するか否かにより、該画素群を代表する代表階調値の数を異ならせて多値化することにより、該画素群毎に、前記代表階調値の数だけ得られた多値化結果値を、前記画像データとして受け取る工程(1)と、
    前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を該画素群毎に特定する工程(2)と、
    前記多値化結果値が前記画素群毎に1つずつ得られた場合には、該多値化結果値と前記特定した順序値とに基づいて該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ得られた場合には、該画素群内の各領域毎に、該多値化結果値と該順序値とに基づいて各画素のドット形成有無を決定する工程(3)と、
    前記決定したドット形成の有無に基づいてドットを形成する工程(4)と
    を備え
    前記工程(1)で受け取る多値化結果値は、前記画素群に含まれる画素の数より多い数の閾値を二次元的に配列したディザマトリックスを前記画素群の大きさに応じて分割することにより、前記画素群に含まれる画素の数に対応した数の閾値のまとまりを複数用意し、該閾値のまとまりと前記代表階調値とを比較することにより決定される関係であって、前記閾値のまとまりとの比較により、前記各々の画素群内に代表階調値に応じて形成されるドットの個数である個数データに対応した多値化結果値と、前記代表階調値とを関係づけた対応関係を、前記代表階調に基づいて参照することにより取得された値であ
    画像出力方法。
  23. 所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、画像を出力する画像出力方法であって、
    前記画像を構成する画素が所定の複数個ずつまとめられた画素群について、前記画像データの解像度と該画像を出力する際の解像度との比である解像度比に基づいて、前記画素群を分割するか否かにより、該画素群を代表する代表階調値の数を異ならせて多値化することにより、該画素群毎に、前記代表階調値の数だけ得られた多値化結果値を、前記画像データとして受け取る工程(イ)と、
    前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値を該画素群毎に1つずつ受け取った場合には該多値化結果値から該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値を該画素群毎に複数個ずつ受け取った場合には、該画素群内で該多値化結果値が得られた領域毎に、各画素についてのドット形成有無を決定する工程(ロ)と、
    前記決定したドット形成の有無に基づいてドットを形成する工程(ハ)と
    を備え
    前記工程(イ)で受け取る多値化結果値は、前記画素群に含まれる画素の数より多い数の閾値を二次元的に配列したディザマトリックスを前記画素群の大きさに応じて分割することにより、前記画素群に含まれる画素の数に対応した数の閾値のまとまりを複数用意し、該閾値のまとまりと前記代表階調値とを比較することにより決定される関係であって、前記閾値のまとまりとの比較により、前記各々の画素群内に代表階調値に応じて形成されるドットの個数である個数データに対応した多値化結果値と、前記代表階調値とを関係づけた対応関係を、前記代表階調に基づいて参照することにより取得された値であり、
    前記工程(ロ)における前記復号用対応関係は、前記多値化用対応関係に用いた閾値のまとまりの各々について、前記多値化階調値と前記ドットの配置とを、前記まとまりに含まれる複数の閾値の大小に基づいて関係づけた対応関係のうちから、前記画素群に応じて特定された対応関係であ
    画像出力方法。
  24. 画像データに応じてドットを形成することにより、該画像データに対応した画像を出力する方法を、コンピュータを用いて実現するためのプログラムであって、
    前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する第1の機能と、
    前記分割についての前記判断に基づいて、前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する第2の機能と、
    前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化して多値化結果値を取得する第3の機能と、
    前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を該画素群毎に特定する第4の機能と、
    前記多値化結果値が前記画素群毎に1つずつ出力された場合は、該多値化結果値と前記特定した順序値とに基づいて該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ出力された場合は、該画素群内の各領域毎に、該多値化結果値と該順序値とに基づいて各画素のドット形成有無を決定する第5の機能と、
    前記決定したドット形成の有無に基づいてドットを形成する第6の機能と
    を実現するプログラムであり、
    前記第3の機能における前記多値化用対応関係は、前記画素群に含まれる画素の数より多い数の閾値を二次元的に配列したディザマトリックスを前記画素群の大きさに応じて分割することにより、前記画素群に含まれる画素の数に対応した数の閾値のまとまりを複数用意し、該閾値のまとまりと前記代表階調値とを比較することにより決定される関係であって、前記閾値のまとまりとの比較により、前記各々の画素群内に代表階調値に応じて形成されるドットの個数である個数データに対応した多値化結果値と、前記代表階調値とを関係づけた対応関係である
    プログラム、
  25. 画像データに応じてドットを形成することにより、該画像データに対応した画像を出力する方法を、コンピュータを用いて実現するためのプログラムであって、
    前記画像を構成する画素が所定の複数個ずつまとめられた画素群を分割して処理するか否かを、前記画像データの解像度と前記画像を出力する解像度との解像度比に基づいて判断する機能(A)と、
    前記分割についての前記判断に基づいて、前記画素群を分割せずに処理する場合は、該画素群を代表する代表階調値を該画素群に含まれる各画素の階調値に基づいて決定し、該画素群を分割して処理する場合は、該画素群を分割する各領域についての該代表階調値を決定する機能(B)と、
    前記代表階調値と該代表階調値を多値化することによって得られる多値化結果値とが、前記画素群毎に関連づけられた多値化用対応関係を参照することにより、前記決定された代表階調値を多値化して多値化結果値を取得する機能(C)と、
    前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値を該画素群毎に1つずつ受け取った場合には該多値化結果値から該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値を該画素群毎に複数個ずつ受け取った場合には、該画素群内で該多値化結果値が得られた領域毎に、各画素についてのドット形成有無を決定する機能(D)と、
    前記決定したドット形成の有無に基づいてドットを形成する機能(E)と
    を実現するプログラムであり、
    前記機能(C)における前記多値化用対応関係は、前記画素群に含まれる画素の数より多い数の閾値を二次元的に配列したディザマトリックスを前記画素群の大きさに応じて分割することにより、前記画素群に含まれる画素の数に対応した数の閾値のまとまりを複数用意し、該閾値のまとまりと前記代表階調値とを比較することにより決定される関係であって、前記閾値のまとまりとの比較により、前記各々の画素群内に代表階調値に応じて形成されるドットの個数である個数データに対応した多値化結果値と、前記代表階調値とを関係づけた対応関係であり、
    前記機能(D)における前記復号用対応関係は、前記多値化用対応関係に用いた閾値のまとまりの各々について、前記多値化階調値と前記ドットの配置とを、前記まとまりに含まれる複数の閾値の大小に基づいて関係づけた対応関係のうちから、前記画素群に応じて特定された対応関係である
    プログラム
  26. 所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、画像を出力する方法を、コンピュータを用いて実現するためのプログラムであって、
    前記画像を構成する画素が所定の複数個ずつまとめられた画素群について、前記画像データの解像度と該画像を出力する際の解像度との比である解像度比に基づいて、前記画素群を分割するか否かにより、該画素群を代表する代表階調値の数を異ならせて多値化することにより、該画素群毎に、前記代表階調値の数だけ得られた多値化結果値を、前記画像データとして受け取る機能(1)と、
    前記画素群内の各画素について、該画素群内でドットが形成される順番を示す順序値を該画素群毎に特定する機能(2)と、
    前記多値化結果値が前記画素群毎に1つずつ得られた場合には、該多値化結果値と前記特定した順序値とに基づいて該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値が該画素群毎に複数個ずつ得られた場合には、該画素群内の各領域毎に、該多値化結果値と該順序値とに基づいて各画素のドット形成有無を決定する機能(3)と、
    前記決定したドット形成の有無に基づいてドットを形成する機能(4)と
    を実現するプログラムであり、
    前記機能(1)が受け取る多値化結果値は、前記画素群に含まれる画素の数より多い数の閾値を二次元的に配列したディザマトリックスを前記画素群の大きさに応じて分割することにより、前記画素群に含まれる画素の数に対応した数の閾値のまとまりを複数用意し、該閾値のまとまりと前記代表階調値とを比較することにより決定される関係であって、前記閾値のまとまりとの比較により、前記各々の画素群内に代表階調値に応じて形成されるドットの個数である個数データに対応した多値化結果値と、前記代表階調値とを関係づけた対応関係を、前記代表階調に基づいて参照することにより取得された値である
    プログラム
  27. 所定の画像処理が施された画像データを受け取って、該画像データに基づいてドットを形成することにより、画像を出力する方法を、コンピュータを用いて実現するためのプログラムであって、
    前記画像を構成する画素が所定の複数個ずつまとめられた画素群について、前記画像データの解像度と該画像を出力する際の解像度との比である解像度比に基づいて、前記画素群を分割するか否かにより、該画素群を代表する代表階調値の数を異ならせて多値化することにより、該画素群毎に、前記代表階調値の数だけ得られた多値化結果値を、前記画像データとして受け取る機能(イ)と、
    前記多値化結果値と、前記画素群内の各画素についてのドット形成の有無とが、該画素群毎に関連づけられた復号用対応関係を参照することにより、該多値化結果値を該画素群毎に1つずつ受け取った場合には該多値化結果値から該画素群内の各画素についてのドット形成有無を決定し、該多値化結果値を該画素群毎に複数個ずつ受け取った場合には、該画素群内で該多値化結果値が得られた領域毎に、各画素についてのドット形成有無を決定する機能(ロ)と、
    前記決定したドット形成の有無に基づいてドットを形成する機能(ハ)と
    を実現するプログラムであり、
    前記機能(イ)で受け取る多値化結果値は、前記画素群に含まれる画素の数より多い数の閾値を二次元的に配列したディザマトリックスを前記画素群の大きさに応じて分割することにより、前記画素群に含まれる画素の数に対応した数の閾値のまとまりを複数用意し、該閾値のまとまりと前記代表階調値とを比較することにより決定される関係であって、前記閾値のまとまりとの比較により、前記各々の画素群内に代表階調値に応じて形成されるドットの個数である個数データに対応した多値化結果値と、前記代表階調値とを関係づけた対応関係を、前記代表階調に基づいて参照することにより取得された値であり、
    前記機能(ロ)における前記復号用対応関係は、前記多値化用対応関係に用いた閾値のまとまりの各々について、前記多値化階調値と前記ドットの配置とを、前記まとまりに含まれる複数の閾値の大小に基づいて関係づけた対応関係のうちから、前記画素群に応じて特定された対応関係であ
    プログラム
JP2004221414A 2004-07-29 2004-07-29 複数画素ずつ多値化を行いながら画像を出力する画像出力システム Expired - Fee Related JP4297006B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004221414A JP4297006B2 (ja) 2004-07-29 2004-07-29 複数画素ずつ多値化を行いながら画像を出力する画像出力システム
US11/192,995 US7656558B2 (en) 2004-07-29 2005-07-28 Image processing system, image processing device, image output device, and method and program product therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004221414A JP4297006B2 (ja) 2004-07-29 2004-07-29 複数画素ずつ多値化を行いながら画像を出力する画像出力システム

Publications (2)

Publication Number Publication Date
JP2006042119A JP2006042119A (ja) 2006-02-09
JP4297006B2 true JP4297006B2 (ja) 2009-07-15

Family

ID=35906599

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004221414A Expired - Fee Related JP4297006B2 (ja) 2004-07-29 2004-07-29 複数画素ずつ多値化を行いながら画像を出力する画像出力システム

Country Status (2)

Country Link
US (1) US7656558B2 (ja)
JP (1) JP4297006B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4059121B2 (ja) * 2003-03-27 2008-03-12 セイコーエプソン株式会社 所定領域内に形成されるドット個数の情報に基づいて画像を表示する画像表示システム
JP2007306513A (ja) * 2005-07-13 2007-11-22 Konica Minolta Business Technologies Inc 画像データの圧縮方法および装置
JP4544280B2 (ja) * 2007-08-30 2010-09-15 富士ゼロックス株式会社 画像処理装置、画像形成装置、および画像処理プログラム
US8520147B1 (en) * 2011-06-16 2013-08-27 Marseille Networks, Inc. System for segmented video data processing
JP5853650B2 (ja) * 2011-11-30 2016-02-09 セイコーエプソン株式会社 印刷システム及び印刷システム用プログラム
JP6028464B2 (ja) * 2012-08-27 2016-11-16 富士ゼロックス株式会社 画像処理装置及び画像処理プログラム
JP6074307B2 (ja) * 2013-04-05 2017-02-01 凸版印刷株式会社 カラー画像処理装置
JP2020123917A (ja) * 2019-01-31 2020-08-13 富士通株式会社 画像処理プログラム、画像処理装置及び画像処理方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5287209A (en) * 1990-10-09 1994-02-15 Matsushita Electric Industrial Co., Ltd. Image forming device for enhancing tone reproduction by changing dot size
JPH06291994A (ja) * 1992-08-10 1994-10-18 Ricoh Co Ltd 画像処理方法および装置
JPH11168627A (ja) * 1997-08-27 1999-06-22 Fuji Photo Film Co Ltd 画像形成方法
US6002804A (en) * 1998-03-26 1999-12-14 Hewlett-Packard Company Tone dependent variable halftoning with adjustable algorithm selection
JP3912055B2 (ja) 2000-10-06 2007-05-09 セイコーエプソン株式会社 画像処理装置、印刷制御装置、画像処理方法、および記録媒体
JP2002127393A (ja) * 2000-10-23 2002-05-08 Canon Inc 記録システムおよび記録方法
US7251060B2 (en) 2000-12-12 2007-07-31 Ricoh Company, Ltd. Image-processing device using quantization threshold values produced according to a dither threshold matrix and arranging dot-on pixels in a plural-pixel field according to the dither threshold matrix
JP4097114B2 (ja) 2000-12-12 2008-06-11 株式会社リコー 画像処理装置、画像処理方法及び記録媒体
JP3925211B2 (ja) 2002-01-23 2007-06-06 コニカミノルタホールディングス株式会社 複合機とその画像処理方法およびプログラム
EP1349393A1 (en) * 2002-03-15 2003-10-01 Ricoh Company Image compression device, image decompression device, image compression/decompression device, program for executing on a computer to perform functions of such devices, and recording medium storing such a program
JP4297000B2 (ja) * 2004-06-28 2009-07-15 セイコーエプソン株式会社 複数画素ずつ多値化を行いながら画像を出力する画像出力システム
JP4296999B2 (ja) * 2004-06-28 2009-07-15 セイコーエプソン株式会社 複数画素ずつ多値化を行いながら画像を出力する画像出力システム

Also Published As

Publication number Publication date
JP2006042119A (ja) 2006-02-09
US20060158691A1 (en) 2006-07-20
US7656558B2 (en) 2010-02-02

Similar Documents

Publication Publication Date Title
JP4375235B2 (ja) 複数画素ずつコード化しながら画像を出力する画像出力システム
JP4534963B2 (ja) 画像形成方法、画像形成装置、画像形成システム、印刷方法、印刷物の生成方法および画像形成装置を制御するためのコンピュータプログラム
JP4241823B2 (ja) ドットデータ処理装置、画像出力システムおよびそれらの方法
US7580156B2 (en) Image processing system, image processing device, dot data processing device, and method and program product therefor
JP4506652B2 (ja) 高画質ハーフトーン処理
JP4375398B2 (ja) 複数画素ずつ多値化を行う画像処理装置
WO2005076592A1 (ja) 所定領域内に形成されるドット個数の情報に基づいて画像を出力する画像出力システム
JP4534964B2 (ja) 画像形成方法、画像形成装置、画像形成システム、印刷物の生成方法および画像形成装置を制御するためのコンピュータプログラム
US7656558B2 (en) Image processing system, image processing device, image output device, and method and program product therefor
US7796303B2 (en) Image processing system, image processing device, dot data processing device, and method and program product therefor
JP4297033B2 (ja) 複数画素ずつ多値化を行う画像処理装置
JP4375050B2 (ja) 所定領域内に形成されるドット個数の情報に基づいて画像を出力する画像出力システム
JP4375071B2 (ja) 所定領域内に形成されるドット個数の情報に基づいて画像を出力する画像出力システム
JP4225319B2 (ja) 画像出力制御システム、画像処理装置およびその方法
JP4274030B2 (ja) 画像出力システム、画像処理装置、画像出力装置およびそれらの方法
JP2006229810A (ja) 複数画素ずつコード化しながら画像を出力する画像出力システム
JP2005224983A (ja) 所定領域内に形成されるドット個数の情報に基づいて画像を出力する画像出力システム
JP4059121B2 (ja) 所定領域内に形成されるドット個数の情報に基づいて画像を表示する画像表示システム
JP2006191268A (ja) 複数画素ずつ画像処理を行いながら画像を出力する画像出力装置
JP4225320B2 (ja) 画像出力制御システム、画像出力装置、画像処理装置およびそれらの方法
JP2007245347A (ja) 高画質ハーフトーン処理

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070601

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20070601

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080811

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090223

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4297006

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120424

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120424

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130424

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130424

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140424

Year of fee payment: 5

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees