[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP3661624B2 - 画像処理装置 - Google Patents

画像処理装置 Download PDF

Info

Publication number
JP3661624B2
JP3661624B2 JP2001307214A JP2001307214A JP3661624B2 JP 3661624 B2 JP3661624 B2 JP 3661624B2 JP 2001307214 A JP2001307214 A JP 2001307214A JP 2001307214 A JP2001307214 A JP 2001307214A JP 3661624 B2 JP3661624 B2 JP 3661624B2
Authority
JP
Japan
Prior art keywords
pixel
raster
error
gradation
pixels
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
JP2001307214A
Other languages
English (en)
Other versions
JP2002199220A (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 JP2001307214A priority Critical patent/JP3661624B2/ja
Priority to US10/149,174 priority patent/US7196821B2/en
Priority to PCT/JP2001/008837 priority patent/WO2002032110A1/ja
Priority to CN01803036XA priority patent/CN1216484C/zh
Priority to KR10-2002-7006214A priority patent/KR100485635B1/ko
Priority to EP01972714A priority patent/EP1333659A4/en
Publication of JP2002199220A publication Critical patent/JP2002199220A/ja
Application granted granted Critical
Publication of JP3661624B2 publication Critical patent/JP3661624B2/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/46Colour picture communication systems
    • H04N1/56Processing of colour picture signals
    • H04N1/60Colour correction or control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/40Picture signal circuits
    • H04N1/405Halftoning, i.e. converting the picture signal of a continuous-tone original into a corresponding signal showing only two levels
    • H04N1/4051Halftoning, i.e. converting the picture signal of a continuous-tone original into a corresponding signal showing only two levels producing a dispersed dots halftone pattern, the dots having substantially the same size
    • H04N1/4052Halftoning, i.e. converting the picture signal of a continuous-tone original into a corresponding signal showing only two levels producing a dispersed dots halftone pattern, the dots having substantially the same size by error diffusion, i.e. transferring the binarising error to neighbouring dot decisions

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Image Processing (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Color Image Communication Systems (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、画像を構成する複数の画素の階調値で表現された画像データを変換する技術に関し、詳しくは、該画像データを各画素についてのドットの形成有無による表現形式の画像データに変換する技術に関する。
【0002】
【従来の技術】
印刷媒体や液晶画面といった表示媒体上にドットを形成することで画像を表現する画像表示装置は、各種画像機器の出力装置として広く使用されている。かかる画像表示装置は、局所的にはドットを形成するか否かのいずれかの状態しか表現し得ないが、画像の階調値に応じてドットの形成密度を適切に制御することによって、階調が連続的に変化する画像を表現することが可能となっている。
【0003】
これら画像表示装置において、画像の階調値に応じて適切な密度でドットが形成されるように、各画素についてドット形成の有無を判断するための手法には、例えば誤差拡散法と呼ばれる手法や、これと数学的に等価な平均誤差最小法と呼ばれる手法などがある。
【0004】
誤差拡散法と呼ばれる手法は、着目画素にドットを形成したこと、あるいはドットを形成しなかったことによって生じる階調表現の誤差を、着目画素周辺の未判断画素に拡散して記憶しておき、未判断画素についてのドット形成有無を判断するにあたっては、周辺画素から拡散されてきた誤差を解消するようにドット形成有無を判断する手法である。また、平均誤差最小法と呼ばれる手法は、ドット形成有無の判断により生じた階調表現の誤差を周辺画素に拡散することなく着目画素に記憶しておき、その代わりに、未判断画素についてのドット形成有無を判断するに際しては、周辺画素に記憶されている誤差を読み出してこれらの誤差を打ち消すように、着目画素についてのドット形成有無を判断する手法である。
【0005】
これらいずれの手法においても、画像は多数の画素で構成されているので、全画素についてのドット形成有無の判断を同時に行うことは不可能である。一方、画像データは、原画像を走査して生成される関係上、走査して得られた画素の列(ラスタと呼ばれる)の順序に従って供給される。これらの理由から、ドット形成有無の判断は、画像を構成するラスタに沿って行われる。すなわち、ラスタの端部にある画素から順番にドット形成有無の判断を行い、そのラスタにある全画素の判断が終了したら、隣のラスタの処理を開始する。かかる方法においては、画像上で互いに隣接する画素であっても、異なるラスタに属する画素は連続して処理されるわけではないので、ドット形成判断により生じる階調表現の誤差を誤差バッファに蓄えておき、必要になったときに誤差バッファから読み出して使用する。このようにして、周辺画素で発生した階調表現の誤差を反映させながら、誤差を解消するようにドット形成の有無を判断することにより、画像の階調値に応じた適切な密度でドットを形成することができ、その結果、画像表示装置上に、高画質な画像を表示することが可能となる。
【0006】
【発明が解決しようとする課題】
しかし、かかる方法では、ドット形成有無の判断を行う度に生じる階調表現の誤差を、誤差バッファに頻繁に読み書きしなければならず、ドット形成有無の判断を迅速に行うことができないという問題があった。すなわち、誤差拡散法においては、周辺画素に拡散すべき拡散誤差をドット形成有無を判断する度に誤差バッファに書き込まなければならず、あるいは平均誤差最小法においては、周辺画素で生じた階調表現の誤差をドット形成有無の判断の度に誤差バッファから読み出さなければならず、いずれの場合も誤差バッファに対して頻繁に読み書きを行う分だけ、ドット形成有無の判断に時間が必要となっていた。ドット形成有無の判断に時間がかかれば、画像を迅速に表示することは困難となる。
【0007】
この発明は、従来技術における上述の課題を解決するためになされたものであり、画質の悪化を招くことなく、ドット形成有無の判断に要する時間を短縮化することによって、高画質の画像を迅速に表示可能な技術を提供することを目的とする。
【0008】
【課題を解決するための手段およびその作用・効果】
上述の課題の少なくとも一部を解決するため、本発明の第1の画像処理装置は、次の構成を採用した。すなわち、
画素毎の階調値を示す画像データを受け取り、該画素の列たるラスタに沿って該ラスタを構成する各画素でのドット形成の有無を判断することによって、該画像データをドット形成の有無による表現形式に変換する画像処理装置であって、互いに隣接した所定本数の前記ラスタから成るラスタ群毎に前記画像データを変換するに際して、該ラスタ群の中の最後尾にある最後尾ラスタについては、該最後尾ラスタを構成する各画素のドット形成有無の判断により該各画素に生じる階調誤差を、該画素の周辺にある複数の未判断の画素に拡散して記憶する第1の誤差拡散手段と、
前記最後尾ラスタに隣接するラスタ群の中の先頭ラスタについては、該最後尾ラスタから該先頭ラスタの各画素に拡散されてきた階調誤差を考慮しながら該各画素のドット形成有無を判断することによって、該先頭ラスタをドット形成の有無を表すドット列に変換する先頭ラスタ変換手段と、
前記先頭ラスタを構成する各画素で生じた前記階調誤差を、該画素の周辺にある未判断の画素に拡散して記憶する第2の誤差拡散手段と、
前記ラスタ群から前記先頭ラスタを除いた残余ラスタについては、該残余ラスタと同じラスタ群に属し且つドット形成有無を判断済みの画素から拡散されてきた階調誤差を考慮しながら該残余ラスタの各画素のドット形成有無を判断することにより、該先頭ラスタを前記ドット列に変換する処理に並行して、該残余ラスタをドット列に変換する残余ラスタ変換手段と
を備え、
前記第1の誤差拡散手段および前記第2の誤差拡散手段は、前記ドット形成の有無を判断した画素とは異なるラスタ群の画素に拡散された誤差については第1の誤差記憶部に記憶し、該ドット形成有無を判断した画素と同じラスタ群の画素に拡散された誤差については第2の誤差記憶部に記憶する手段であることを要旨とする。
【0009】
また、上記の第1の画像処理装置に対応する本発明の第1の画像処理方法は、
画素毎の階調値を示す画像データを受け取り、該画素の列たるラスタに沿って該ラスタを構成する各画素でのドット形成の有無を判断することによって、該画像データをドット形成の有無による表現形式に変換する画像処理方法であって、
(A)互いに隣接した所定本数の前記ラスタから成るラスタ群毎に前記画像データを変換するに際して、該ラスタ群の中の最後尾にある最後尾ラスタについては、該最後尾ラスタを構成する各画素のドット形成有無の判断により該各画素に生じる階調誤差を、該画素の周辺にある複数の未判断の画素に拡散して記憶する工程と、
(B)前記最後尾ラスタに隣接するラスタ群の中の先頭ラスタについては、該最後尾ラスタから該先頭ラスタの各画素に拡散されてきた前記前記誤差を考慮しながら該各画素のドット形成有無を判断することによって、該先頭ラスタをドット形成の有無を表すドット列に変換する工程と、
(C)前記先頭ラスタを構成する各画素で生じた階調誤差を、該画素の周辺にある未判断の画素に拡散して記憶する工程と、
(D)前記ラスタ群から前記先頭ラスタを除いた残余ラスタについては、該残余ラスタと同じラスタ群に属し且つドット形成有無を判断済みの画素から拡散されてきた階調誤差を考慮しながら該残余ラスタの各画素のドット形成有無を判断することにより、該先頭ラスタを前記ドット列に変換する処理に並行して、該残余ラスタをドット列に変換する工程と
を備え、
前記工程(A)および前記工程(C)は、前記ドット形成の有無を判断した画素と同じラスタ群の画素に拡散された誤差と、異なるラスタ群の画素に拡散された誤差とを区別して記憶する工程であることを要旨とする。
【0010】
かかる第1の画像処理装置および画像処理方法においては、所定本数の隣接したラスタから成るラスタ群を単位として、該ラスタ群を構成する各ラスタについて、各画素のドット形成有無を判断することにより、各ラスタをドット列に変換する。ここで、ドット形成有無の判断によって生じた階調誤差を周辺の未判断画素に拡散させるに際して、該階調誤差の生じた判断画素と同じラスタ群に属する画素に拡散された誤差と、該判断画素と異なるラスタ群の画素に拡散された誤差とを区別して記憶する。先頭ラスタについては、隣接するラスタ群の画素から拡散されて記憶されている階調誤差を読み出しながらドット形成の有無を判断することにより、該先頭ラスタをドット列に変換する。一方、前記残余ラスタについては、該残余ラスタと同じラスタ群に属し且つドット形成有無を判断済みの画素から拡散されて記憶されている階調誤差を考慮しながらドット形成有無を判断することにより、該先頭ラスタを前記ドット列に変換する処理に並行して、該残余ラスタをドット列に変換する。
【0011】
このように、前記残余ラスタをドット列に変換する処理を、前記先頭ラスタをドット列に変換する処理と並行して実行することとすれば、ラスタ群の画像データを迅速に変換することができる。また、画像データをラスタ群単位で変換することから、同じラスタ群に属する画素に拡散された誤差は、異なるラスタ群に属する画素に拡散された誤差よりも早い時期に読み出されることになる。従って、同じラスタ群に属する画素に拡散された誤差と、異なるラスタ群に属する画素に拡散された誤差とを区別して記憶しておけば、誤差を迅速に読み出すことができ、延いては、ラスタ群単位で画像データを変換する処理を更に迅速に実行することが可能となる。
【0012】
こうした画像処理装置においては、同じラスタ群の画素に拡散される誤差を、異なるラスタ群の画素への誤差よりも、データの記憶あるいは読み出しの少なくとも一方を迅速に実行可能に記憶することとしても良い。
【0013】
画像データをラスタ郡単位で変換する場合、ドット形成有無を判断することによって生じる階調誤差は、異なるラスタ群の画素よりも、同じラスタ群に属する画素に拡散されることが多い。従って、同じラスタ群に属する画素に拡散される誤差を、異なるラスタ群に属する画素に拡散される誤差よりも、データの記憶あるいは読み出しの少なくとも一方を迅速に実行可能に記憶しておけば、誤差を拡散する処理を効果的に迅速化することができるので好ましい。
【0014】
かかる画像処理装置においては、異なるラスタ群の画素に拡散された誤差については、前記先頭ラスタを構成する画素の数と少なくとも同数以上の画素数分を同時に記憶可能とするとともに、同じラスタ群の画素に拡散された誤差については該先頭ラスタを構成する画素の数より少数の画素数分だけ同時に記憶可能としてもよい。
【0015】
画像データをラスタ群単位で変換する場合、同じラスタ群の画素に拡散される誤差は、該ラスタ群の画像データを変換中に使用され、それ以降は記憶しておく必要が無くなるので、該誤差を記憶していた記憶部は、該ラスタ群に属する他の画素に拡散される誤差を記憶することが可能となる。従って、同じラスタ群の画素に拡散された誤差については該先頭ラスタを構成する画素の数よりも小数の画素数分だけ記憶可能とすることで、記憶部が効率的に使用されることとなって好ましい。
【0016】
上述した画像データの変換をコンピュータを用いて行う画像処理装置においては、同じラスタ群の画素に拡散された誤差は、該コンピュータの演算装置がデータの書き込みあるいは読み出しを直接に実行可能な記憶素子に記憶され、異なるラスタ群の画素に拡散された誤差は、該演算装置がデータの書き込みあるいは読み出しを間接的に実行する記憶素子に記憶することとしてもよい。
【0017】
コンピュータの演算装置からデータを直接に書き込みあるいは読み出し可能な記憶素子は、迅速な書き込みあるいは読み出しが可能であり、従って、このような記憶素子に記憶することで、同じラスタ群の画素に拡散された誤差を迅速に記憶あるいは読み出すことが可能となるので好ましい。尚、かかる記憶素子は、データの書き込みあるいは読み出しのいずれか一方を、前記演算装置から直接に実行可能であることに限られず、書き込みおよび読み出しのいずれも演算装置から直接に実行可能な記憶素子であってもよいことは言うまでもない。
【0018】
かかる画像処理装置においては、前記最後尾ラスタの各画素で発生した階調誤差を、前記ドット形成の有無を判断した画素の周辺にあって、異なるラスタ群に属する未判断の画素に拡散させるに際して、前記最後尾ラスタに隣接する前記先頭ラスタの画素のみに拡散するようにしてもよい。
【0019】
こうすれば、異なるラスタ群の画素から階調誤差が拡散されるのは前記先頭ラスタの画素のみとなり、前記残余ラスタの画素に拡散されることはない。このため、前記先頭ラスタの各画素のドット形成有無を判断する際にだけ、前記第1の誤差記憶部に記憶されている誤差を読み出してドット形成有無を判断し、残余ラスタについては、第2の誤差記憶部に記憶されている誤差を読み出してドット形成有無を判断すればよい。その結果、全体としての処理が簡略化されるので、ドット形成有無を判断する処理を迅速に行うことが可能となって好ましい。
【0020】
更に、かかる画像処理装置においては、ラスタ2本ずつ画像データを前記ドット列に変換することとして、該2本のラスタのうちの前側にある先頭ラスタと、後ろ側にある最後尾ラスタとを次のようにドット列に変換してもよい。すなわち、該最後尾ラスタの各画素についてドット形成の有無を判断することによって生じた階調誤差は、該最後尾ラスタの画素と該最後尾ラスタに隣接するラスタ群の前記先頭ラスタの画素とに拡散する。また、該先頭ラスタの各画素についてドット形成の有無を判断することによって生じた階調誤差は、該先頭ラスタの画素と該先頭ラスタに後続する最後尾ラスタの画素とに拡散する。こうして拡散されてきた階調誤差を考慮しながら、各ラスタ群の最後尾ラスタの各画素についてのドット形成の有無を判断することとしてもよい。
【0021】
こうしてラスタ2本ずつドット列に変換して行くこととすれば、複数のラスタを並行してドット列に変換する処理を、簡便な処理により行うことができるので好適である。
【0022】
かかる画像処理装置においては、各画素についてドット形成の有無を判断することによって生じた階調誤差を、該階調誤差が生じた画素から所定値以上遠方にある未判断画素に拡散させるに際しては、該ドット形成の有無を判断したラスタ群と異なるラスタ群の画素にのみ拡散することとしても良い。
【0023】
ドット形成の有無を判断することによって生じた階調誤差を、遠方の未判断画素に拡散させる場合、拡散させる画素の位置が多少ずれていても画質を大きく損なうことはない。従って、遠方の未判断画素に拡散させる場合は、ドット形成有無を判断したラスタ群とは異なるラスタ群の画素にまとめて拡散させることとすれば、誤差を拡散させる処理を単純にすることができるので好ましい。
【0024】
また、前述した課題の少なくとも一部を解決するため、本発明の第2の画像処理装置は、次の構成を採用した。すなわち、
画素毎の階調値を示す画像データを受け取り、該画素の列たるラスタに沿って該ラスタを構成する各画素でのドット形成の有無を判断することによって、該画像データをドット形成の有無による表現形式に変換する画像処理装置であって、互いに隣接した所定本数の前記ラスタから成るラスタ群毎に前記画像データを変換するに際して、該ラスタ群の中の少なくとも最後尾にある最後尾ラスタについては、該ラスタを構成する各画素のドット形成有無の判断により生じた階調誤差を、該判断を行った各画素に対応付けて第1の記憶部に記憶する第1の階調誤差記憶手段と、
前記最後尾ラスタに隣接するラスタ群の中の先頭ラスタについては、該先頭ラスタを構成する各画素の周辺にあって、ドット形成有無を判断済みの周辺画素に記憶されている前記階調誤差を考慮しながら、該各画素のドット形成有無を判断することによって、該先頭ラスタをドット列に変換する先頭ラスタ変換手段と、前記先頭ラスタを構成する各画素で生じた階調誤差を、前記判断を行った各画素に対応付けて第2の記憶部に記憶する第2の階調誤差記憶手段と、
前記ラスタ群から前記先頭ラスタを除いた残余ラスタについては、該残余ラスタと同じラスタ群に属し且つドット形成有無を判断済みの画素で生じた階調誤差を考慮しながら該残余ラスタの各画素のドット形成有無を判断することにより、前記先頭ラスタを前記ドット列に変換する処理と並行して、該残余ラスタをドット列に変換する残余ラスタ変換手段と
を備えていることを要旨とする。
【0025】
かかる第2の画像処理装置に対応する本発明の第2の画像処理方法は、
画素毎の階調値を示す画像データを受け取り、該画素の列たるラスタに沿って該ラスタを構成する各画素でのドット形成の有無を判断することによって、該画像データをドット形成の有無による表現形式に変換する画像処理方法であって、
(A)互いに隣接した所定本数の前記ラスタから成るラスタ群毎に前記画像データを変換するに際して、該ラスタ群の中の少なくとも最後尾にある最後尾ラスタについては、該ラスタを構成する各画素のドット形成有無の判断により生じた階調誤差を、該判断を行った各画素に対応付けて記憶する工程と、
(B)前記最後尾ラスタに隣接するラスタ群の中の先頭ラスタについては、該先頭ラスタを構成する各画素の周辺にあって、ドット形成有無を判断済みの周辺画素に記憶されている前記階調誤差を考慮しながら、該各画素のドット形成有無を判断することによって、該先頭ラスタをドット列に変換する工程と、
(C)前記先頭ラスタを構成する各画素で生じた階調誤差を、前記工程(A)で記憶された階調誤差とは区別しながら、前記判断を行った各画素に対応付けて記憶する工程と、
(D)前記ラスタ群から前記先頭ラスタを除いた残余ラスタについては、該残余ラスタと同じラスタ群に属し且つドット形成有無を判断済みの画素で生じた階調誤差を考慮しつつ該残余ラスタの各画素のドット形成有無を判断することにより、該先頭ラスタを前記ドット列に変換する処理に並行して、該残余ラスタをドット列に変換する工程と
を備えることを要旨とする。
【0026】
かかる第2の画像処理装置および画像処理方法においても、前述の第1の画像処理装置および画像処理方法と同様に、所定本数の隣接したラスタから成るラスタ群を単位として、該ラスタ群を構成する各ラスタについて、各画素のドット形成有無を判断することにより、各ラスタをドット列に変換する。このとき、第2の画像処理装置および画像処理方法においては、前記最後尾ラスタの各画素で発生した階調誤差を該判断を行った各画素に対応付けて記憶しておき、前記先頭ラスタの画素のドット形成有無を判断するに際しては、該画素の周辺の前記最後尾ラスタの各画素に記憶されている階調誤差を読み出してドット形成有無を判断する。こうして先頭ラスタの各画素で生じた階調誤差は、前記最後尾ラスタの各画素で生じた階調誤差とは区別して記憶しておく。前記残余ラスタについては、該残余ラスタと同じラスタ群に属し且つドット形成有無を判断済みの画素で生じた階調誤差を考慮しつつドット形成有無を判断することにより、該先頭ラスタを前記ドット列に変換する処理に並行して、該残余ラスタをドット列に変換する。
【0027】
こうして、前記先頭ラスタと残余ラスタとを並行してラスタ群単位で画像データをドット列に変換すれば、画像データを迅速に変換することが可能となる。また、画像データをラスタ群単位で変換することから、処理中のラスタ群の前記最後尾ラスタで生じた階調誤差は、他のラスタで生じた階調誤差とは違って、現在のラスタ群の処理が終了してから読み出されるとことになる。従って、ラスタ群の最後尾ラスタで生じた階調誤差と、他のラスタで生じた階調誤差とを区別して記憶しておけば、誤差を迅速に読み出すことができ、延いては、画像データを迅速に変換することが可能となる。
【0028】
こうした画像処理装置においては、最後尾ラスタ以外のラスタで生じた階調誤差を、最後尾ラスタで生じた階調誤差よりも、データの記憶あるいは読み出しの少なくとも一方を迅速に実行可能に記憶することとしても良い。
【0029】
画像データをラスタ郡単位で変換する場合、1つのラスタ群に最後尾ラスタは1本しか存在しないが他のラスタは1本以上存在するので、ドット形成有無を判断する際に、最後尾ラスタで生じた階調誤差よりも、最後尾ラスタ以外のラスタで生じた階調誤差の方が頻繁に読み出されることになる。従って、最後尾ラスタ以外のラスタで生じた階調誤差を、最後尾ラスタで生じた階調誤差よりも、データの記憶あるいは読み出しの少なくとも一方を迅速に実行可能に記憶しておけば、ラスタ郡単位で変換する処理を効果的に迅速化することができるので好ましい。
【0030】
かかる画像処理装置においては、前記最後尾ラスタの各画素で生じた階調誤差については、該最後尾ラスタを構成する画素と少なくとも同数以上の画素数分を同時に記憶可能とするとともに、前記先頭ラスタの各画素で生じた階調誤差については、該先頭ラスタを構成する画素よりも少数の画素数分だけ同時に記憶可能としてもよい。
【0031】
画像データをラスタ群単位で変換する場合、ドット形成有無の判断によって生じた階調誤差は、同じラスタ群の画素についてのドット形成有無の判断に使用され、それ以降は記憶しておく必要が無くなるので、該階調誤差を記憶していた記憶部は、同じラスタ群に属する他の画素で生じた階調誤差を記憶するために使用することができる。従って、先頭ラスタの各画素で生じた階調誤差については、該先頭ラスタを構成する画素よりも少数の画素数分だけ記憶可能とすることで、記憶部が効率的に使用されることとなって好ましい。
【0032】
上述した画像データの変換をコンピュータを用いて行う画像処理装置においては、前記先頭ラスタの各画素で生じた階調誤差は、該コンピュータの演算装置がデータの書き込みあるいは読み出しを直接に実行可能な記憶素子に記憶され、前記最後尾ラスタの各画素で生じた階調誤差は、該演算装置がデータの書き込みあるいは読み出しを間接的に実行する記憶素子に記憶することとしてもよい。
【0033】
コンピュータの演算装置からデータを直接に書き込みあるいは読み出し可能な記憶素子は、迅速な書き込みあるいは読み出しが可能であり、従って、先頭ラスタの画素で生じた階調誤差をこのような記憶素子に記憶すれば、ラスタ群の画像データを迅速に変換することが可能となるので好ましい。尚、かかる記憶素子は、該演算装置からデータの書き込みおよび読み出しのいずれも実行可能な記憶素子であってもよいことは言うまでもない。
【0034】
かかる第2の画像処理装置においては、前記ラスタ群の中の前記最後尾ラスタについてのみ、該ラスタを構成する各画素で生じた階調誤差を、該各画素毎に記憶しておき、前記先頭ラスタについてのドット形成有無を判断する際に考慮する前記階調誤差として、前記最後尾ラスタの各画素の階調誤差を考慮しながら、前記先頭ラスタを前記ドット列に変換することとしても良い。
【0035】
こうすれば、前記先頭ラスタの各画素のドット形成有無を判断する際にだけ、異なるラスタ群に属する前記最後尾ラスタの画素で発生した階調誤差を読み出せばよく、残余ラスタの各画素のドット形成有無を判断する際には、異なるラスタ群の画素で生じた階調誤差を読み出さなくてもよいので、ラスタ群の画像データを迅速に変換することができる。
【0036】
更に、かかる画像処理装置においては、ラスタ2本ずつ画像データを前記ドット列に変換することとして、該2本のラスタのうちの前側にある先頭ラスタと、後ろ側にある最後尾ラスタとを次のようにドット列に変換してもよい。すなわち、最後尾ラスタで生じた階調誤差のみを前記第1の記憶部に記憶しておき、先頭ラスタを構成する各画素のドット形成有無を判断するに際しては、該最後尾ラスタの各画素に記憶されている階調誤差を読み出して判断して、各画素で生じた階調誤差は、前記第2の記憶部に記憶する。該先頭ラスタに後続する最後尾ラスタについては、該先頭ラスタをドット列に変換することに並行して、該先頭ラスタの各画素で生じた階調誤差を考慮しながらドット列に変換する。
【0037】
こうしてラスタ2本ずつドット列に変換して行くこととすれば、複数のラスタを並行してドット列に変換する処理を、簡便な処理により行うことができるので好適である。
【0038】
かかる第1の画像処理装置あるいは第2の画像処理装置においては、前記先頭ラスタの各画素で生じた階調誤差を反映させつつ前記残余ラスタをドット列に変換するために、該先頭ラスタから該残余ラスタの各画素に拡散されてきた拡散誤差を考慮しながらドット形成有無を判断することによって、該残余ラスタをドット列に変換することとしても良い。あるいは、該先頭ラスタの各画素で生じた階調誤差を考慮しながらドット形成有無を判断することによって、該残余ラスタをドット列に変換することとしても良い。
【0039】
これらの方法を用いれば、前記先頭ラスタの各画素で生じた階調誤差を反映させながら、前記残余ラスタをドット列に変換することができるので好適である。
【0040】
また、印刷媒体上にインクドットを形成して画像を印刷する印刷部に対して、インクドットの形成を制御するための印刷データを出力することで、該印刷部を制御する印刷制御装置においては、本発明の上述した第1の画像処理装置あるいは第2の画像処理装置を好適に利用することができる。
【0041】
すなわち、上述した第1の画像処理装置あるいは第2の画像処理装置においては、各画素の階調値を示す画像データを受け取り、該画像データをドットの形成有無による画像データに迅速に変換することができる。このため、かかる第1の画像処理装置あるいは第2の画像処理装置を、前記印刷制御装置に適用すれば、画像データを印刷データに迅速に変換することができる。こうして得られた印刷データを、前記印刷部に出力すれば、該印刷部では高画質な画像を迅速に印刷することが可能となるので好適である。
【0042】
また、本発明は、上述した第1の画像処理方法、あるいは第2の画像処理方法を実現するプログラムをコンピュータに読み込ませ、コンピュータを用いて実現することも可能である。従って、本発明は次のような記録媒体としての態様も含んでいる。すなわち、上述の第1の画像処理方法に対応する記録媒体は、
画素毎の階調値を示す画像データを受け取り、該画素の列たるラスタに沿って該ラスタを構成する各画素でのドット形成の有無を判断することによって、該画像データをドット形成の有無による表現形式に変換する方法を実現するプログラムを、コンピュータで読みとり可能に記録した記録媒体であって、
(A)互いに隣接した所定本数の前記ラスタから成るラスタ群毎に前記画像データを変換するに際して、該ラスタ群の中の最後尾にある最後尾ラスタについては、該最後尾ラスタを構成する各画素のドット形成有無の判断により該各画素に生じる階調誤差を、該画素の周辺にある複数の未判断の画素に拡散して記憶する機能と、
(B)前記最後尾ラスタに隣接するラスタ群の中の先頭ラスタについては、該最後尾ラスタから該先頭ラスタの各画素に拡散されてきた前記前記誤差を考慮しながら該各画素のドット形成有無を判断することによって、該先頭ラスタをドット形成の有無を表すドット列に変換する機能と、
(C)前記先頭ラスタを構成する各画素で生じた階調誤差を、該画素の周辺にある未判断の画素に拡散して記憶する機能と、
(D)前記ラスタ群から前記先頭ラスタを除いた残余ラスタについては、該残余ラスタと同じラスタ群に属し且つドット形成有無を判断済みの画素から拡散されてきた階調誤差を考慮しながら該残余ラスタの各画素のドット形成有無を判断することにより、該先頭ラスタを前記ドット列に変換する処理に並行して、該残余ラスタをドット列に変換する機能と
を実現するプログラムを記録するとともに、
前記機能(A)および前記機能(C)として、前記ドット形成の有無を判断した画素と同じラスタ群の画素に拡散された誤差と、異なるラスタ群の画素に拡散された誤差とを区別して記憶する機能を実現するプログラムを記録していることを要旨とする。
【0043】
また、上述の第2の画像処理方法に対応する記録媒体は、
画素毎の階調値を示す画像データを受け取り、該画素の列たるラスタに沿って該ラスタを構成する各画素でのドット形成の有無を判断することによって、該画像データをドット形成の有無による表現形式に変換する方法を実現するプログラムを、コンピュータで読みとり可能に記録した記録媒体であって、
(A)互いに隣接した所定本数の前記ラスタから成るラスタ群毎に前記画像データを変換するに際して、該ラスタ群の中の少なくとも最後尾にある最後尾ラスタについては、該ラスタを構成する各画素のドット形成有無の判断により生じた階調誤差を、該判断を行った各画素に対応付けて記憶する機能と、
(B)前記最後尾ラスタに隣接するラスタ群の中の先頭ラスタについては、該先頭ラスタを構成する各画素の周辺にあって、ドット形成有無を判断済みの周辺画素に記憶されている前記階調誤差を考慮しながら、該各画素のドット形成有無を判断することによって、該先頭ラスタをドット列に変換する機能と、
(C)前記先頭ラスタを構成する各画素で生じた階調誤差を、前記機能(A)により記憶された階調誤差とは区別しながら、前記判断を行った各画素に対応付けて記憶する機能と、
(D)前記ラスタ群から前記先頭ラスタを除いた残余ラスタについては、該残余ラスタと同じラスタ群に属し且つドット形成有無を判断済みの画素で生じた階調誤差を考慮しつつ該残余ラスタの各画素のドット形成有無を判断することにより、該先頭ラスタを前記ドット列に変換する処理に並行して、該残余ラスタをドット列に変換する機能と
を実現するプログラムを記録していることを要旨とする。
【0044】
これら記録媒体に記録されているプログラムをコンピュータに読み込ませ、該コンピュータを用いて上述の各種機能を実現すれば、画素毎の階調値を示す画像データを、ドット形成の有無による表現形式の画像データに迅速に変換することが可能となる。
【0045】
【発明の実施の形態】
本発明の作用・効果をより明確に説明するために、本発明の実施の形態を、次のような順序に従って以下に説明する。
A.実施の形態:
B.第1実施例:
B−1.装置構成:
B−2.画像データ変換処理の概要:
B−3.第1実施例の階調数変換処理:
B−4.変形例:
C.第2実施例:
C−1.第2実施例の階調数変換処理:
C−2.変形例:
【0046】
A.実施の形態:
図1を参照しながら、本発明の実施の形態について説明する。図1は、印刷システムを例にとって、本発明の実施の形態を説明するための説明図である。本印刷システムは、画像処理装置としてのコンピュータ10と、カラープリンタ20等から構成されている。コンピュータ10は、デジタルカメラやカラースキャナなどの画像機器からカラー画像の階調画像データを受け取ると、該画像データを、カラープリンタ20で印刷可能な各色ドットの形成有無により表現された印刷データに変換する。かかる画像データの変換は、プリンタドライバ12と呼ばれる専用のプログラムを用いて行われる。尚、カラー画像の階調画像データは、各種アプリケーションプログラムを用いてコンピュータ10で作成することもできる。
【0047】
プリンタドライバ12は、解像度変換モジュール,色変換モジュール,階調数変換モジュール,インターレースモジュールといった複数のモジュールから構成されている。階調数変換モジュールは、階調画像データをドット形成の有無による表現形式に変換する処理を行うモジュールである。本実施例の階調数変換モジュールは、着目画素についてのドット形成の有無を判断しようとする際に、周辺画素で発生した階調誤差を考慮して誤差を解消するように着目画素のドット形成有無を判断している。他の各モジュールで行われる処理については後述する。カラープリンタ20は、これら各モジュールで変換された印刷データに基づいて、印刷媒体上に各色インクドットを形成することによってカラー画像を印刷する。
【0048】
プリンタドライバ12に供給される画像データは、図1に概念的に示したように、原稿画像を構成する各画素の階調値を、画像の端から1ラスタ分ずつ順番に出力したようなデータ構造となっている。プリンタドライバ12内の解像度変換モジュール、色変換モジュールは、供給される画像データのデータ構造に従って、1ラスタずつそれぞれの処理を行うが、本発明の印刷システムにおける階調数変換モジュールでは、後述する方法により、互いに隣接する所定本数のラスタの処理を並行して行う。図1には、一例として3本のラスタを並行して処理している様子を概念的に示している。詳細には後述するが、このように複数本のラスタの処理を並行して行えば、並行して処理を行う複数ラスタ間では、互いのラスタで発生した階調誤差を考慮しながらドット形成判断を行うことができるので、階調誤差あるいは拡散誤差をいちいち誤差バッファに記憶しておく必要がない。すなわち、本実施例の階調数変換モジュールでは、誤差バッファに対して頻繁に読み書きを行う必要がないので、それだけドット形成有無の判断を迅速に行うことが可能となっている。
【0049】
このように、複数本のラスタ間で発生した階調誤差を考慮しながら、並行してドット形成有無の判断を行う具体的な方法には、種々の態様が存在しており、これら各種の態様について、各種実施例を用いて以下に説明する。
【0050】
B.第1実施例:
B−1.装置構成:
図2は、第1実施例の画像処理装置としてのコンピュータ100の構成を示す説明図である。コンピュータ100は、CPU102を中心に、ROM104やRAM106などを、バス116で互いに接続して構成された周知のコンピュータである。CPU102は実際に処理を行う演算器と、処理中のデータを一時保持する複数のレジスタとから構成されている。レジスタに保持されているデータは、RAM106に記憶されているデータよりも遙かに高速に処理することが可能である。
【0051】
コンピュータ100には、フレキシブルディスク124やコンパクトディスク126のデータを読み込むためのディスクコントローラDDC109や、周辺機器とデータの授受を行うための周辺機器インターフェースP・I/F108、CRT114を駆動するためのビデオインターフェースV・I/F112等が接続されている。P・I/F108には、後述するカラープリンタ200や、ハードディスク118等が接続されている。また、デジタルカメラ120や、カラースキャナ122等をP・I/F108に接続すれば、デジタルカメラ120やカラースキャナ122で取り込んだ画像を印刷することも可能である。また、ネットワークインターフェースカードNIC110を装着すれば、コンピュータ100を通信回線300に接続して、通信回線に接続された記憶装置310に記憶されているデータを取得することもできる。
【0052】
図3は、第1実施例のカラープリンタ200の概略構成を示す説明図である。カラープリンタ200はシアン,マゼンタ,イエロ,ブラックの4色インクのドットを形成可能なインクジェットプリンタである。もちろん、これら4色のインクに加えて、染料濃度の低いシアン(淡シアン)インクと染料濃度の低いマゼンタ(淡マゼンタ)インクとを含めた合計6色のインクドットを形成可能なインクジェットプリンタを用いることもできる。更には、明度の低い(暗い)イエロ(ダークイエロ)インクを加えた合計7色のインクドットを形成可能なインクジェットプリンタを用いても良い。尚、以下では場合によって、シアンインク,マゼンタインク,イエロインク,ブラックインク,淡シアンインク,淡マゼンタインク,ダークイエロインクのそれぞれを、Cインク,Mインク,Yインク,Kインク,LCインク,LMインク,DYインクと略称するものとする。
【0053】
カラープリンタ200は、図示するように、キャリッジ240に搭載された印字ヘッド241を駆動してインクの吐出およびドット形成を行う機構と、このキャリッジ240をキャリッジモータ230によってプラテン236の軸方向に往復動させる機構と、紙送りモータ235によって印刷用紙Pを搬送する機構と、ドットの形成やキャリッジ240の移動および印刷用紙の搬送を制御する制御回路260とから構成されている。
【0054】
キャリッジ240には、Kインクを収納するインクカートリッジ242と、Cインク,Mインク,Yインクの各種インクを収納するインクカートリッジ243とが装着されている。キャリッジ240にインクカートリッジ242,243を装着すると、カートリッジ内の各インクは図示しない導入管を通じて、印字ヘッド241の下面に設けられた各色毎のインク吐出用ヘッド244ないし247に供給される。Kインク用のインク吐出ヘッド244には、図示するように、複数のノズルNz が一定のノズルピッチkで千鳥状に2列に配列されている。他色のインク吐出用ヘッド245ないし247についても同様に、ノズルピッチkで千鳥状に並んだノズル列が1組ずつ設けられている。
【0055】
制御回路260は、CPU261とROM262とRAM263等から構成されており、キャリッジモータ230と紙送りモータ235の動作を制御することによってキャリッジ240の主走査と副走査とを制御するとともに、コンピュータ100から供給される印刷データに基づいて、各ノズルから適切なタイミングでインク滴を吐出する。こうして、制御回路260の制御の下、印刷媒体上の適切な位置に各色のインクドットを形成することによって、カラープリンタ200はカラー画像を印刷することができる。
【0056】
尚、各色のインク吐出ヘッドからインク滴を吐出する方法には、種々の方法を適用することができる。すなわち、ピエゾ素子を用いてインクを吐出する方式や、インク通路に配置したヒータでインク通路内に泡(バブル)を発生させてインク滴を吐出する方法などを用いることができる。また、インクを吐出する代わりに、熱転写などの現象を利用して印刷用紙上にインクドットを形成する方式や、静電気を利用して各色のトナー粉を印刷媒体上に付着させる方式のプリンタを使用することも可能である。
【0057】
更には、インク吐出ヘッドから吐出するインク滴の大きさを制御したり、あるいは微細なインク滴を一度に複数吐出して、吐出するインク滴の数を制御するといった方法を用いて、印刷用紙上に形成されるインクドットの大きさを制御な可能なプリンタ、いわゆるバリアブルドットプリンタを用いることも可能である。
【0058】
B−2.画像データ変換処理の概要:
図4は、第1実施例の画像処理装置としてのコンピュータ100が、受け取った画像データに所定の画像処理を加えることにより、該画像データを印刷データに変換する処理の流れを示すフローチャートである。かかる処理は、コンピュータ100のオペレーティングシステムがプリンタドライバ12を起動することによって開始される。以下、図4に従って、第1実施例の画像データ変換処理について簡単に説明する。
【0059】
プリンタドライバ12は、画像データ変換処理を開始すると、先ず初めに、変換すべきRGBカラー画像データの読み込みを開始する(ステップS100)。画像データは、R,G,B各色毎に1ラスタずつプリンタドライバ12に読み込まれる。
【0060】
次いで、取り込んだ画像データの解像度を、カラープリンタ200が印刷するための解像度に変換する(ステップS102)。カラー画像データの解像度が印刷解像度よりも低い場合は、線形補間を行うことで隣接画像データ間に新たなデータを生成し、逆に印刷解像度よりも高い場合は、一定の割合でデータを間引くことによって画像データの解像度を印刷解像度に変換する。
【0061】
こうして解像度を変換すると、カラー画像データの色変換処理を行う(ステップS104)。色変換処理とは、R,G,Bの階調値の組み合わせによって表現されているカラー画像データを、C,M,Y,Kなどのカラープリンタ200で使用する各色の階調値の組み合わせによって表現された画像データに変換する処理である。色変換処理は、色変換テーブル(LUT)と呼ばれる3次元の数表を参照することで迅速に行うことができる。以上に説明した解像度変換処理(ステップS102)および色変換処理(ステップS104)は、1ラスタ毎に行われる。
【0062】
色変換処理を終了すると、次は階調数変換処理を開始する(ステップS106)。階調数変換処理とは次のような処理である。色変換処理によって変換された階調データは、各色毎に256階調幅を持つデータとして表現されている。これに対し、本実施例のカラープリンタ200では、「ドットを形成する」,「ドットを形成しない」のいずれかの状態しか採り得ない。すなわち、本実施例のカラープリンタ200は局所的には2階調しか表現し得ない。そこで、256階調を有する画像データを、カラープリンタ200が表現可能な2階調で表現された画像データに変換する必要がある。このような階調数の変換を行う処理が階調数変換処理である。前述したように、本実施例の階調数変換処理では、複数のラスタのドット形成の有無を並行して判断することにより、迅速な処理が可能となっている。階調数変換処理については、後ほど詳細に説明する。
【0063】
こうして階調数変換処理を終了したら、プリンタドライバはインターレース処理を開始する(ステップS108)。インターレース処理は、ドットの形成有無を表す形式に変換された画像データを、ドットの形成順序を考慮しながらカラープリンタ200に転送すべき順序に並べ替える処理である。プリンタドライバは、インターレース処理を行って最終的に得られた画像データを、印刷データとしてカラープリンタ200に出力する(ステップS110)。カラープリンタ200は、印刷データに従って、各色のインクドットを印刷媒体上に形成する。その結果、画像データに対応したカラー画像が印刷媒体上に印刷される。
【0064】
以下では、第1実施例の階調数変換処理において、複数のラスタを並行して処理することにより、ドットの形成有無の判断を迅速に行う処理について説明する。
【0065】
B−3.第1実施例の階調数変換処理:
(a)誤差拡散法による階調数変換処理の概要:
複数ラスタのドット形成有無を並行して実施する方法、および並行して実施することで階調数変換処理に要する時間を短縮化する原理を説明するための準備として、いわゆる誤差拡散法において、ラスタに沿ってドットの形成有無を判断していく方法について簡単に説明する。
【0066】
図5は、ドット形成の有無を判断しようとする画像の一部を拡大して概念的に示した説明図である。小さなマス目の1つ1つは画素を示しており、画素が横一列に並んでラスタを形成している。説明の便宜上、図5(a)に示した一番上のラスタを「ラスタ0」とし、その下のラスタを「ラスタ1」、以降順番に「ラスタ2」,「ラスタ3」と符番する。個々の画素も区別するために、各画素にも「Pmn」と符番する。画素Pmnは、ラスタmのn番目の画素であることを示している。図4に示した色変換処理後の画像データは、各画素に各色の階調値が対応付けられたようなデータとなっている。
【0067】
誤差拡散法は、以下に説明するように、ラスタに沿って1画素ずつドット形成の有無を判断していく。図5(a)は、画素P11についてのドット形成有無を判断している様子を概念的に示した説明図である。画素P11のように、ドット形成の有無を判断しようとしている画素を、本明細書では着目画素と呼ぶ。図では、画素P11を太線で囲うことにより、着目画素であることを示している。また、図中で斜線を付した領域は、その領域の画素は既にドット形成の有無を判断済みであることを示している。
【0068】
図5(a)に示されるように、着目画素P11についてドット形成有無を判断すると、その結果として、着目画素P11には階調誤差E11が発生する。すなわち、画素P11にドットを形成するにしても、あるいはドットを形成しないにしても、画素P11に表現される階調値(以下、このような階調値を結果値と呼ぶ)は、通常は、その画素についての画像データの階調値とは一致しない。従って、画素P11の結果値と、画素P11での画像データの階調値との差の分だけ、着目画素には階調誤差が発生することになる。誤差拡散法は、ドット形成有無を判断する度に生じる階調誤差を、着目画素の周辺の未判断画素に所定の重みをつけて拡散させる。周辺の未判断画素に拡散させる際に用いる重み係数は、誤差拡散係数と呼ばれ、着目画素を中心として画素毎に予め定められている。
【0069】
図6は、誤差拡散係数が定められている様子を例示する説明図である。図6中で斜線が施されている画素が着目画素であり、着目画素からの位置に応じて各画素の誤差拡散係数が定められている。このように、着目画素を中心として周辺画素への誤差拡散係数を設定したマトリックスは、誤差拡散マトリックスと呼ばれる。例えば、図6(a)の誤差拡散マトリックスでは、着目画素の右隣の画素には、誤差拡散係数K01として「1/4」が設定されている。従って、図6(a)の誤差拡散マトリックスを使用すると、着目画素で発生した階調誤差の1/4の誤差が右隣の画素に配分されることになる。同様に、着目画素の左下,真下,右下の各画素にも、着目画素で生じた階調誤差の1/4の誤差が配分されることになる。誤差拡散マトリックスは図6に例示するものに限られず、誤差を拡散する範囲や誤差拡散係数などは種々の値を設定することが可能であり、実際の誤差拡散法では良好な画質が得られるように、適宜、適切な誤差拡散マトリックスが使用される。尚、説明の煩雑化を避けるために、以下の説明では、例示した誤差拡散マトリックスの中では最も拡散範囲の狭いマトリックス、すなわち、図6(a)の誤差拡散マトリックスを使用するものとして説明する。
【0070】
誤差拡散マトリックスとして図6(a)のマトリックスを使用するものとすれば、図5(a)に示すように着目画素P11で生じた階調誤差E11は、右隣の画素P12,左下の画素P20,真下の画素P21,右下の画素P22の合計4つの画素に、それぞれ階調誤差E00の1/4ずつ配分される。尚、4つの周辺画素のうち、画素P20,画素P21,画素P22の3つの画素は、着目画素P11とは異なり、ラスタ2に属する画素である。こうして着目画素周辺のそれぞれの画素に拡散された誤差(拡散誤差)は、これら各画素のドット形成判断の際に使用するので、各画素を区別して記憶しておく必要がある。そのため拡散誤差は、多数の画素についての拡散誤差を記憶することの可能な、大容量のRAM106(図2参照)に記憶される。
【0071】
画素P11についての階調誤差を周辺画素に拡散したら、今度は右隣の画素P12について、ドット形成有無の判断を開始する。図5(b)は着目画素P12についてのドット形成有無を判断する様子を概念的に示す説明図である。ドット形成判断に際しては、先ず、周辺画素から着目画素P12に配分されて蓄積されている拡散誤差を読み出し、読み出した拡散誤差で着目画素P12の画像データを補正する。図5(b)に示すように、着目画素P12には、ドット形成判断済みの周辺画素、すなわち画素P01,画素P02 ,画素P03,画素P11の4つの画素から、前述の誤差拡散マトリックスに従って拡散されてきた誤差が蓄積されている。この拡散誤差をRAM106から読み出して、着目画素P12の画像データを補正し、得られた補正値を所定の閾値と比較することでドットの形成有無を判断する。図5(c)は、新たな着目画素P12について、ドットの形成有無を判断した状態を示している。ドット形成有無を判断した結果、新たな着目画素P12には階調誤差E12が発生するので、この階調誤差を、図5(a)で説明したのと同様に誤差拡散マトリックスに従って周辺画素に拡散する。
【0072】
画素P12で発生した階調誤差を周辺画素に拡散したら、更に右隣にある画素P13についてのドット形成有無の判断を開始する。新たな着目画素P13でも階調誤差E13が発生するので、この誤差を誤差拡散マトリックスに従って周辺画素に拡散させ、更に右隣の画素のドット形成有無の判断を行う。このように、階調誤差を周辺画素に拡散しながら、着目画素を1画素ずつ右に移動させ、画像の右端の画素に達したら、今度は一旦、画像の左端に戻って1つ下にあるラスタの画素(図5に示す例では、画素P20)についてのドット形成有無の判断を開始する。ラスタ1と同様に、ラスタ2についても画像の右端の画素まで達したら、再び画像の左端に戻ってラスタ3の処理を開始する。
【0073】
このように誤差拡散法では、着目画素をラスタに沿って1画素ずつ移動させ、周辺画素から拡散されてくる拡散誤差を考慮しながら、ドット形成有無の判断を行う。判断により着目画素に生じた階調誤差は、周辺の未判断画素に拡散して記憶しておき、これら未判断画素のドット形成有無を判断する際に使用される。
【0074】
ここで、前述したように、周辺画素の中には、着目画素が属するラスタとは異なるラスタ上の画素も含まれている。ドット形成有無の判断はラスタに沿って行われるので、拡散誤差が分配されてきても、その画素の属するラスタの処理が始まるまでは、分配された拡散誤差を記憶しておかなければならない。更に、ラスタには多数の画素が含まれていることから、かなり多数の画素について、分配されてきた拡散誤差を各画素を区別した状態で記憶しておく必要がある。拡散誤差を記憶するために、記憶容量の大きなRAM106が使用されるのは、このような理由によるものである。
【0075】
また、着目画素についてドット形成有無を判断する度に、発生した階調誤差を周辺の未判断画素に拡散しているために、RAM106に対して頻繁にデータを読み書きする必要がある。RAM106に対して頻繁にデータを読み書きすれば、その分だけ読み書きのための時間が増加して、ドット形成有無の判断に要する時間が長くなる。
【0076】
(b)本実施例の階調数変換処理の概要:
これに対して、本実施例の階調数変換処理では、以下に説明するようにして、複数本のラスタについてのドット形成有無の判断を並行して行う。こうすれば、RAM106にデータを読み書きする頻度が減少するので、ドット形成有無の判断を迅速に行うことが可能となる。以下、複数ラスタの処理を並行して行うことにより、ドット形成有無の判断を迅速に行う原理について説明する。
【0077】
図7は、最も簡単な例として、2本のラスタについてのドット形成有無の判断を並行して行う原理を示した説明図である。ここでは、ラスタiと、その直ぐ下のラスタjの2本のラスタについて、並行してドット形成有無を判断するものとする。
【0078】
先ず初めに、ラスタiの一番左側の画素Pi0のドット形成有無を判断する。図7(a)は、画素Pi0のドット形成有無を判断している様子を概念的に示している。画素Pi0には、ラスタiの真上にあるラスタhの画素Ph0や画素Ph1等から誤差が分配されて記憶されている。そこで、画素Pi0に記憶されている拡散誤差をコンピュータ100のRAM106から読み出して、画像データの画素Pi0の階調値を補正し、得られた補正値と所定の閾値とを比較することで、画素Pi0についてのドット形成の有無を判断する。こうして、画素Pi0のドット形成有無を判断すると、画素Pi0に階調誤差が発生するので、これを誤差拡散マトリックスに従って周辺画素に拡散させる。ここでは、説明が煩雑化するのを避けるために、図6(a)に示した比較的単純な誤差拡散マトリックスを用いるものとして説明する。理解の便宜のために、図6(a)の誤差拡散マトリックスと同様のマトリックスを図7(b)にも表示しておく。画素Pi0で発生した階調誤差は、図7(b)の誤差拡散マトリックスに従って画素Pi1,画素Pj0,画素Pj1の3つの画素に配分され、それぞれの拡散誤差の値はCPU102に内蔵されているレジスタに記憶される。図7(a)では、画素Pi0から階調誤差が周辺画素に拡散される様子を太い矢印で概念的に表示している。
【0079】
尚、本明細書では、並行して処理される複数のラスタ間での拡散誤差(図7では、例えばラスタiの画素からラスタjの画素への拡散誤差)はレジスタに記憶し、並行しては処理されないラスタ間での拡散誤差(図7では、例えばラスタjの画素からラスタkの画素への拡散誤差)はRAM106に記憶するものとしている。前述したように、レジスタはRAM106より高速に読み書きすることができるので、レジスタを活用することにより、階調数変換処理をより迅速に行うことができる。もっとも、並行に処理するラスタ間の誤差は、必ずレジスタに記憶しなければならないわけではなく、例えばRAM106上に記憶することとしても良い。これら、すぐに使用される拡散誤差は、RAM106上に記憶することとしておいても、通常はCPU102のキャッシュメモリ内に残っている値を使用することができるので、実際には高速に読み書きすることが可能であり、階調数変換処理を迅速に行うことができる。
【0080】
画素Pi0についてのドット形成有無を判断し、生じた階調誤差を拡散したら、次は右隣の画素Pi1のドット形成有無の判断を開始する。画素Pi1についても、1つ上にあるラスタhの画素で生じた階調誤差が、図7(b)の誤差拡散マトリックスに従って拡散されて、予めRAM106に記憶されている。そこで、ラスタhの画素から拡散されてRAM106に予め記憶されている誤差を読み出し、この拡散誤差と、画素Pi0から画素Pi1に分配されてレジスタに記憶されている拡散誤差とで、画素Pi1の画像データの階調値を補正する。こうすれば、画素Pi1の画像データは、ラスタhにある画素Ph0,画素Ph1,画素Ph2、および画素Pi0から拡散されてくる誤差で補正されることになるので、通常の誤差拡散法と等しい補正値を得ることができる。
【0081】
この補正値と所定の閾値との大小関係を比較して、補正値の方が閾値より大きければ画素Pi1にドットを形成すると判断し、そうでなければドットを形成しないと判断する。判断の結果、画素Pi1にも階調誤差が生じるので、誤差拡散マトリックスに従って、周辺の4つの画素、画素Pi2,画素Pj0,画素Pj1,画素Pj2に分配する。これら4つの画素に分配される拡散誤差の値は、CPU102のレジスタに画素毎に記憶される。図7(a)では、画素Pi1で発生した階調誤差が周辺画素に拡散される様子を細い実線の矢印で概念的に表示している。尚、画素Pj0に対しては既に画素Pi0からの拡散誤差が記憶されているので、この値に画素Pi1からの拡散誤差を加算して蓄積する。また、画素Pi1でのドット形成有無を判断してしまうと、画素Pi1への拡散誤差を記憶するために使用したレジスタは不要となるので、画素Pi1から他の画素に分配される拡散誤差を記憶するためにこのレジスタを使用することができる。
【0082】
ラスタiにある画素Pi0および画素Pi1についてのドット形成有無を判断したら、今度はラスタjの左端にある画素Pj0についてのドット形成有無の判断を開始する。つまり、ここでは、ドット形成有無の判断によって生じた階調誤差は、図7(b)の誤差拡散マトリックスに従って周辺画素に拡散されるものとしているから、画素Pi0からの拡散誤差と画素Pi1からの拡散誤差とが配分されてしまえば、画素Pj0については、すべての拡散誤差が配分されたことになる。そこで、これら2つの画素のドット形成判断を行った後に、画素Pj0の判断を行うのである。
【0083】
図7(c)は画素Pj0のドット形成有無を判断している様子を概念的に示す説明図である。図7(b)に示した誤差拡散マトリックスによれば、画素Pj0には画素Pi0および画素Pi1から誤差が拡散されるが、上述したように、この誤差の値はRAM106ではなくCPU102のレジスタ内に記憶されている。そこで、この値を用いて、画像データの画素Pj0の階調値を補正し、補正値と閾値との大小関係に基づいてドット形成の有無を判断する。判断の結果、画素Pj0に発生した階調誤差は、誤差拡散マトリックスに従って、周辺の画素Pj1,画素Pk0,画素Pk1の3つの画素に拡散する。
【0084】
ここで、図7に示す例では、ラスタiの画素とラスタjの画素とについてのドット形成有無の判断を並行して行うものとしている。このことから、画素Pk0および画素Pk1の2つの画素についてのドット形成有無の判断は、ラスタiおよびラスタjの画素の判断が全て終了してから行われることになる。そこで、画素Pk0への拡散誤差および画素Pk1への拡散誤差の値は、当分の間、使用されることがないと考えられるので、これらの値はRAM106に記憶する。一方、画素Pj1への拡散誤差は、ほどなく使用されると考えられるので、CPU102のレジスタに記憶する。このように、ラスタiおよびラスタjの2つのラスタについてのドット形成有無の判断を並行して行うことから、ラスタiより上のラスタで発生してラスタiの画素に拡散される誤差は、RAM106に記憶される。同様に、ラスタjで発生してラスタkの画素に拡散される誤差もRAM106に記憶される。これに対して、ラスタiで発生してラスタjの画素に拡散される誤差はCPU102のレジスタに記憶される。図7で、ラスタiおよびラスタkに斜線が施されているのは、これらラスタの画素に拡散された拡散誤差がRAM106上に記憶されていることを意味している。
【0085】
また、図7(c)において、画素Pj0から画素Pk0への矢印、あるいは画素Pj0から画素Pk1への矢印が、白抜きの矢印となっているのは、これら画素へ配分される拡散誤差がRAM106に記憶されることを示している。逆に、画素Pj0から画素Pj1への矢印が太線の矢印で表されているのは、画素Pj1へ配分される拡散誤差が、CPU102のレジスタに記憶されることを示している。尚、既に画素Pj0のドット形成有無を判断しているので、画素Pj0への拡散誤差を記憶していたレジスタを他の目的、例えば、画素Pj1への拡散誤差を記憶するといったことに用いることができる。
【0086】
こうして画素Pj0で発生した階調誤差を周辺画素に拡散したら、次はラスタiの画素Pi2のドット形成有無を判断して発生した階調誤差を周辺画素に拡散し、その次にラスタjの画素Pj1のドット形成有無を判断する。図7(d)は、この様子を概念的に示す説明図である。画素Pi2のドット形成有無の判断に際しては、ラスタhの画素から拡散されてRAM106に記憶されている拡散誤差と、画素Pi1から拡散されてレジスタに記憶されている拡散誤差とで、画像データの階調値を補正してドット形成有無を判断する。判断により生じた階調誤差は周辺画素に拡散させる。図7(d)に太線の矢印で示されているように、周辺画素への拡散誤差はレジスタに記憶される。続く画素Pj1のドット形成有無の判断に際しては、レジスタに記憶されている拡散誤差を用いて画像データの階調値を補正し、所定の閾値との大小関係に基づいてドット形成有無を判断する。判断によって生じる階調誤差は、ラスタkの画素への拡散誤差はRAM106に記憶し、ラスタjの画素への拡散誤差はレジスタに記憶する。以上のようにして画素Pi2と画素Pj1とについての処理が終了したら、同様にして、画素Pi3と画素Pj2とについての処理を行う。
【0087】
図7(d)の画素中に丸印とともに付した番号は、ラスタiの画素およびラスタjの画素についてドット形成有無を判断する順番を示している。図示するように、ラスタiの画素と、該画素の左下にあるラスタjの画素とを、交互にドット形成有無の判断を行う。こうしてラスタiとラスタjとを並行して処理していけば、ラスタjの画素への拡散誤差はレジスタに記憶することができ、RAM106にはラスタkの画素への拡散誤差を記憶すればよい。すなわち、RAM106に対して拡散誤差を、書き込んだり読み出したりする頻度を減少させることができ、それだけドット形成有無の判断を迅速に行うことができるのである。
【0088】
尚、図7に示したように、ラスタiの左端の画素、すなわち画素Pi0については該画素の左下にラスタjの画素が存在しないので、変則的に、画素Pi0に続いて同じラスタiにある画素Pi1の処理を行っている。もっとも、画素Pi0の左下に架空の画素Pj-1 を想定し、画素Pi0に続いて架空の画素Pj-1 の処理を行った後、かかる架空の画素Pj-1 については、ドット形成有無の判断結果を使用せずに捨ててしまうこととしても良い。こうすれば、左端の画素についても架空の画素に対して通常の処理を行うことができるので、変則的な処理が不要となって好ましい。
【0089】
図8は、2本のラスタについてのドット形成有無の判断を並行して行う処理の流れを示すフローチャートである。この処理はコンピュータ100のCPU102によって行われる。尚、前述したように、本実施例のカラープリンタは、C,M,Y,Kの4色のインクドットを形成可能なプリンタであり、図8に示す階調数変換処理も各色毎に行っているが、以下では説明の煩雑化を避けるために、インクドットの色を特定せずに説明する。もちろん、上記の4色に加えて、LCインク,LMインクを加えて6色プリンタに適用することも可能である。
【0090】
また、前述したように本実施例のカラープリンタは、各色毎に大きさの異なるドットを形成可能なバリアブルドットプリンタとすることも可能である。バリアブルドットプリンタを使用する場合、例えば、大ドット,中ドット,小ドットの各種ドットを形成可能なバリアブルドットプリンタを用いる場合には、以下に説明する階調数変換処理は、各種大きさのドット毎に行われる。
【0091】
このように、使用するインクの色が増加したり、種々の大きさのドットが形成可能となるにつれて階調数変換処理を行う回数が増加するので、それだけ処理に要する時間も長くなる傾向がある。以下に説明する本実施例の階調数変換処理は迅速な処理が可能であるために、このような場合にも好適に適用することができる。
【0092】
本実施例の階調数変換処理を開始すると、先ず初めに、並行して処理するラスタの1本目のラスタの中から、ドット形成有無を判断しようとする画素の画像データと該画素に拡散されている拡散誤差とを取得する(ステップS200)。ここでは、処理しようとする画素を、ラスタiのn番目の画素Pinとする。画像データCdin および拡散誤差Edin は、いずれもRAM106に記憶されている。
【0093】
続いて、画素Pinの画像データCdin と拡散誤差Edin とを加算することにより、画素Pinの補正データCxin を算出する(ステップS202)。こうして得られた補正データCxin と所定の閾値th とを比較して(ステップS204)、補正データの方が大きければ画素Pinにドットを形成すると判断して、判断結果を示す変数Cr にドットを形成することを意味する値「1」書き込む(ステップS206)。そうでなければ画素Pinにはドットを形成しないと判断して、変数Cr にドットを形成しないことを意味する値「0」を書き込む(ステップS208)。
【0094】
ラスタiの画素Pinについてのドット形成有無を判断したら、該判断に伴って発生する階調誤差を算出する(ステップS210)。階調誤差Einは、補正データCxin から、ドットを形成することにより、あるいはドットを形成しないことにより画素Pinで表現される階調値(結果値)を減算することで求めることができる。得られた階調誤差に誤差拡散係数を乗算して、周辺画素への拡散誤差を算出する。誤差拡散係数は、誤差拡散マトリックスに画素毎に設定されている。こうして求められたラスタiの画素への拡散誤差、およびラスタiの直ぐ下にあるラスタjの画素への拡散誤差はレジスタに記憶する(ステップS212)。それ以外の画素への拡散誤差、例えばラスタkの画素への拡散誤差等があればRAM106に記憶しておく。
【0095】
こうしてラスタiの画素についてのドット形成判断および誤差の拡散が終了したら、ラスタjの画素Pjn-1についてのドット形成有無の判断を開始する。すなわち、画素Pjn-1の画像データCdjn-1 をRAM106から読みだし(ステップS214)、画素Pjn-1への拡散誤差Edjn-1 をレジスタから読み込む(ステップS216)。レジスタから読み込んだ拡散誤差Edjn-1 には、先にドット形成判断を行った画素Pinからの拡散誤差も蓄積されている。尚、ラスタiの画素Pinが左端の画素Pi0である場合には、架空の画素Pj-1 に対してかかる処理を行う。
【0096】
次いで、画像データCdjn-1 と拡散誤差Edjn-1 とを加算して補正データCxjn-1 を算出し(ステップS218)、得られた補正データCxjn-1 と所定の閾値thとを比較して(ステップS220)、補正データの方が大きければドットを形成すると判断して、判断結果を示す変数Cr にドットを形成することを意味する値「1」書き込む(ステップS222)。そうでなければドットを形成しないことを意味する値「0」を書き込む(ステップS224)。続いて、該判断にともなって画素Pjn-1に発生する階調誤差Ejn-1を算出する(ステップS226)。階調誤差Ejn-1は、補正データCxjn-1 から、画素Pjn-1の結果値を減算することで求めることができる。得られた階調誤差に、誤差拡散マトリックスに設定されている誤差拡散係数を乗算して、周辺画素への拡散誤差を算出する。こうして拡散誤差を求めたら、ラスタjの画素への拡散誤差はレジスタに記憶し、ラスタkの画素への拡散誤差はRAM106に記憶する(ステップS228)。
【0097】
以上のようにして、ラスタiの画素とラスタjの画素とについてのドット形成判断および誤差の拡散処理が終了したら、ラスタiおよびラスタjの全ての画素の処理を終了したか否かを判断する(ステップS230)。未処理の画素が残っている場合は、画素の位置を1つ右に移動させ、すなわち「n+1」の値で「n」を置き換えて(ステップS232)、ステップS200に戻って続く一連の処理を行う。未処理の画素が残っていない場合は、全てのラスタの処理が終了したか否かを判断し(ステップS234)、処理していないラスタが残っている場合はラスタ位置をラスタ2本分だけ下に移動させ、すなわち「i+2」の値で「i」を置き換えて(ステップS236)、ステップS200に戻って続く一連の処理を行う。未処理のラスタが残っていない場合は、図8に示した階調数変換処理を終了して、図4に示す画像データ変換処理に復帰する。
【0098】
以上、説明したように、第1実施例の階調数変換処理においては、ラスタiの画素とラスタjの画素とを、並行して交互にドット形成有無を判断していく。こうすれば、ラスタjの画素については、ラスタiの画素に続いて、あるいは、ほどなくドット形成有無を判断することになる。従って、ラスタjの画素のドット形成有無については、ラスタiの画素から周辺画素への拡散誤差を一旦誤差バッファに記憶させずとも、直接判断することができるので、その分だけ、誤差バッファへの書き込み頻度を減らすことが可能となる。誤差バッファへの書き込み頻度を減少させることができれば、その分だけ、ドット形成有無の判断に要する時間を短縮化することができるので、階調数変換処理を迅速に行うことが可能となる。
【0099】
また、誤差バッファの記憶容量を節約する必要がある場合には、ドット形成の有無を判断するために一旦使用した誤差バッファを、他のラスタについての判断のために再び使用する処理を行う。このような場合でも、上述した第1実施例の階調数変換処理においては、ラスタ2本につき誤差バッファをラスタ1本分ずつ設ければよいので、誤差バッファに記憶される全ラスタ本数を半減することができる。この結果、ドット形成判断に使用した誤差バッファを、他のラスタの判断のために再び使用する処理を行わなくても、誤差バッファの容量を節約することができる。もちろん、2本より多くの複数本のラスタを並行して処理することとすれば、ラスタ該複数本毎に誤差バッファをラスタ1本分ずつ設ければよいので、その分だけ誤差バッファの容量を節約することが可能となる。
【0100】
B−4.変形例:
(1)第1の変形例:
以上では、もっとも簡単な例として、2つのラスタについてのドット形成有無の判断を並行して行うものとして説明したが、並行して処理するラスタの数は2つに限らず、3以上のラスタの処理を並行して行っても良い。図9は、3つのラスタについてのドット形成有無の判断を並行して行う場合を概念的に示した説明図である。図9では、ラスタiとラスタjとラスタkの3つのラスタについてのドット形成の有無を並行して判断している。尚、説明が煩雑となることを避けるために、図7における場合と同様に、ここでも図6(a)に示した誤差拡散マトリックスを使用するものとする。
【0101】
ラスタiとラスタLとに斜線が施されているのは、これらラスタの画素に配分される拡散誤差がRAM106に記憶されることを示している。ラスタiとラスタjとラスタkの各画素に付された丸印の中の数字は、各画素のドット形成の有無を判断していく順番を示したものである。図に示されるように、初めの3つの画素については、図7で説明した2つのラスタを並行して処理する場合と同じ順番でドット形成有無を判断する。以降の4つ目の画素からは、ラスタiとラスタjとラスタkの3つの画素を一組として、この順番で並行してドットの形成有無を判断していく。ここでは、ラスタiないしラスタkの3つのラスタの処理を並行して行うこととしているので、これら3つのラスタの画素に拡散される誤差は、ほどなく使用されることから、CPU102のレジスタに記憶される。ラスタLの画素の拡散される誤差が使用されるのは、ラスタiないしラスタkの3つのラスタの処理が終了してからとなることから、ラスタLの画素に拡散される誤差はRAM106に記憶される。このような処理を繰り返していくことにより、3つのラスタのドット形成有無の判断を並行して行うことができる。
【0102】
このようにしてラスタiないしラスタkの画素についてのドット形成有無の判断を並行して行うこととすれば、互いに隣接したラスタiとラスタj、あるいはラスタjとラスタkとの間で、2ラスタを並行して処理するのと同様の効果を得ることができる。
【0103】
更に、ラスタiないしラスタkの処理を並行して行うこととすれば、ラスタkの画素については、ラスタiの画素に続いて、若しくは、ほどなくドット形成有無が判断されることになる。従って、ラスタiの画素から周辺画素への拡散誤差を一旦誤差バッファに記憶させずとも、直接、ラスタkの画素のドット形成有無を判断することが可能であり、その分だけ、誤差バッファへの書き込み頻度を減らして、ドット形成有無の判断に要する時間を短縮化することが可能となる。
【0104】
(2)第2の変形例:
以上の各種実施例では、説明が煩雑化することを避けるために、誤差拡散マトリックスは図6(a)に示した比較的小さなマトリックスを使用するものとした。もちろん、他の誤差拡散マトリックスを用いる場合でも、同様の方法により、複数ラスタの画素についてのドット形成有無を並行して判断することができる。一例として、図6(b)の誤差拡散マトリックスを用いて、2本のラスタのドット形成有無を並行して判断する処理について、図10を参照しながら説明する。
【0105】
理解の便宜のために、使用する誤差拡散マトリックスを図10(a)に示す。このマトリックスは図6(b)に示したマトリックスと同じものである。かかる誤差拡散マトリックスを使用した場合、斜線を付して表示している着目画素で発生した階調誤差は、着目画素に隣接する画素だけでなく、その隣の画素にまで拡散される。これを図10(b)にあてはめれば、画素Pj2で発生した階調誤差は、ラスタiについては画素Pi3および画素Pi4に拡散され、ラスタjについては画素Pj0ないし画素Pj4の各画素に拡散される。換言すれば、ラスタjの画素Pj0には、ラスタiの画素Pi0からの拡散誤差と、画素Pi1からの拡散誤差に加えて、画素Pi2からの拡散誤差が配分されることになる。そこで、ラスタiに含まれるこれら3つの画素のドット形成有無の判断が終了してから、ラスタjにある画素Pj0のドット形成有無の判断を開始する。つまり、図10(a)に示す誤差拡散マトリックスを使用する場合は、ラスタiの画素とラスタjの画素との位置関係は、ラスタjの画素がラスタiの画素に対して2画素分遅れる関係となるのである。このように、複数のラスタの処理を並行して行う場合に、各ラスタに含まれるそれぞれの画素の位置関係は、階調誤差を拡散する範囲に応じて定めることができる。このような位置関係を保ったまま、それぞれのラスタの画素のドット形成有無を並行して判断していく。
【0106】
図10(b)は、ラスタiの画素Pi2およびラスタjの画素Pj0についてのドット形成有無の判断を連続して行う様子を示した説明図である。尚、図中に丸印とともに表示した数字は、ラスタiおよびラスタjの画素の中で、その画素が何番目にドット形成有無の判断が行われるかを示したものである。また、画素Pi2から周辺の画素に向かう太い矢印は、画素Pi2で発生した階調誤差が誤差拡散マトリックスに従って周辺画素に拡散される様子を概念的に示したものである。画素Pi2の階調誤差を周辺画素に拡散したら、画素Pj0のドット形成有無を判断する。画素Pj0で生じた階調誤差の中、ラスタjの画素に配分される拡散誤差はCPU102のレジスタに記憶し、ラスタkの画素に配分される拡散誤差はRAM106に記憶する。画素Pj0から、ラスタkの画素に向かう白抜きの矢印は、これら画素に配分される拡散誤差がRAM106に記憶されることを示している。丸印の中の数字で示されているように、画素Pj0の次は、画素Pi3、その次は画素Pj1という順番で、ラスタiの画素とラスタjの画素とを交互にドット形成有無を判断していく。ラスタiあるいはラスタjの画素に配分される拡散誤差はCPU102のレジスタに記憶し、ラスタkに配分される拡散誤差はRAM106に記憶する。以上の処理を繰り返しながら、ラスタiおよびラスタjの全画素についてのドット形成有無を判断したら、処理するラスタの位置を2つ下にずらして、ラスタkとその下のラスタについて、同様の処理を繰り返していくことにより、図10(a)に示す誤差拡散マトリックスを用いて2つのラスタのドット形成有無の判断を並行して行うことができる。
【0107】
このようにしてラスタiとラスタjとについてのドット形成有無の判断を並行して行う場合にも、ラスタjの画素は、ラスタiの画素に続いて、あるいは、ほどなくドット形成有無が判断される。従って、ラスタiの画素から周辺画素への拡散誤差を一旦誤差バッファに記憶させずとも、直接、ラスタjの画素のドット形成有無を判断することができるので、その分だけ、誤差バッファへの書き込み頻度を減らすことが可能となる。その結果、誤差バッファへの書き込み頻度を減少させて、ドット形成有無の判断に要する時間を短縮化することができる。
【0108】
(3)第3の変形例:
以上の各種実施例では、着目画素で発生した階調誤差は、着目画素があるラスタの画素と、そのラスタの1つ下のラスタの画素とに拡散されるものとして説明したが、このような場合に限られない。例えば、図6(d)に例示するような誤差拡散マトリックスを用いれば、着目画素で発生した階調誤差は、着目画素のあるラスタから、その2つ下のラスタまでの画素に拡散される。図11は、一例として、図6(d)に示す誤差拡散マトリックスを用いた場合に、3つのラスタのドット形成有無を並行して判断する処理を概念的に示した説明図である。
【0109】
理解の便宜のために、使用する誤差拡散マトリックスを図11(a)に示す。このマトリックスは図6(d)のマトリックスと同じマトリックスである。仮にラスタiとラスタjとラスタkの、3つのラスタについてのドット形成有無を並行して判断するものとする。ラスタkの画素で発生した階調誤差は、図11(a)の誤差拡散マトリックスに従って、ラスタkないしラスタmの3つのラスタの画素に拡散されるが、ラスタLおよびラスタmの2つのラスタにある画素については、ラスタiないしラスタkの3つのラスタの処理が終了してから、ドット形成有無が判断される。従って、ラスタLおよびラスタmに拡散される誤差は、RAM106に記憶しておく。図11(b)では、拡散されてくる誤差をRAM106に記憶する画素に斜線を付して示している。このように、図11(a)に示す誤差拡散マトリックスを用いた場合は、拡散されてくる誤差がCPU102のレジスタに記憶されるラスタと、RAM106に記憶される2本のラスタとが交互に現れることになる。
【0110】
(4)第4の変形例:
階調誤差を広い範囲に拡散させる場合は、着目画素から所定以上遠方に拡散させる場合には、誤差バッファに拡散するものとしても良い。例えば、着目画素から3画素以上遠方に拡散する誤差は、誤差バッファの存在する画素に拡散するものとして、図12(a)に示すような誤差拡散マトリックスを使用してもよい。図12(a)で、着目画素から遠方で、2つのラスタにまたがって画素が破線で一体として表示されているのは、これら領域では2つのラスタのうち、誤差バッファが存在する側のラスタに誤差が拡散されることを示している。図12(b),(c)を参照しながら具体的に説明する。着目画素が、誤差バッファの存在するラスタ上に位置している場合を考える。この場合、誤差バッファは、着目画素のあるラスタ、およびその2つ下のラスタにあるので、結局、図12(b)に示したマトリックスに従って誤差を拡散するのと同じことになる。次に、着目画素が誤差バッファの存在しないラスタ上に位置しているを考えると、この場合は、誤差バッファは、着目画素のあるラスタを上下に挟んだ2つのラスタにあるので、結局、図12(c)に示したマトリックスに従って誤差を拡散するのと同じことになる。
【0111】
このような図12(a)の誤差拡散マトリックスと、これに対応する図6(c)の誤差拡散マトリックスとを比較すれば明らかなように、図12(a)では着目画素から3画素先にある領域(図中ではK 3と表示)には、図6(c)の画素K03と画素K13とに拡散される誤差がまとまって拡散される。同様に、図12(a)で着目画素から4画素先にある領域(図中でK 4と表示)には、図6(c)の画素K04と画素K14とに拡散される誤差がまとまって拡散されている。
【0112】
着目画素で発生した誤差を遠方に拡散させる場合、誤差を拡散する画素の位置が多少ずれていても、さほど大きな画質の悪化を生じさせないことが経験上分かっている。そこで、階調誤差を広い範囲に拡散させる場合、遠方の画素については、誤差バッファのある画素に拡散しても画質が悪化することはない。上述した各種の実施例では、誤差を誤差バッファに拡散させない場合はCPU102のレジスタに記憶している。そこで、遠方の画素については誤差バッファに記憶することとすれば、その分だけ、ドット形成有無の判断に使用するレジスタを節約することができる。誤差を記憶しているレジスタ数が少なくなれば、処理を簡素なものにすることができ、更に、節約したレジスタを他の目的に使用すれば、それだけドット形成有無の判断を迅速に行うことが可能となる。
【0113】
尚、以上の説明では、誤差を2つのラスタの画素にまたがって拡散させるものとしたが、図12(d)に示すような誤差拡散マトリックスを用いれば、3つのラスタにまたがって拡散させることもできる。このように、より多数のラスタに拡散させる場合にも、遠方に拡散させる誤差については誤差バッファに拡散させることとすれば、画質の悪化を招くことなく、簡素で迅速な処理とすることができる。
【0114】
C.第2実施例:
以上に第1実施例の階調数変換処理として説明した各種実施例は、着目画素でドット形成有無を判断したことにより発生する階調誤差を、誤差拡散マトリックスに設定されている誤差拡散係数に従って、周辺画素の拡散して記憶した。この意味からは、第1実施例の方法は、いわゆる誤差拡散法と呼ばれる方法に準じた方法と考えることができる。このような方法ではなく、いわゆる平均誤差最小法と呼ばれる方法に準じた方法により、複数ラスタのドット形成有無の判断を並行して行うこともできる。以下では、このような第2実施例の階調数変換処理について説明する。
【0115】
C−1.第2実施例の階調数変換処理:
図13は、第2実施例の階調数変換処理において複数ラスタの処理を並行して行うことにより、ドット形成有無の判断を迅速に行う原理を概念的に説明する説明図である。尚、第2実施例の階調数変換処理の詳細な説明に入る前に、その準備として、平均誤差最小法と呼ばれる手法について、図13を流用して簡単に説明しておく。
【0116】
平均誤差最小法では、着目画素のドット形成有無を判断する場合、既にドット形成有無を判断済みの周辺画素から、各画素で発生した階調誤差を読み出して、これら階調誤差を考慮しながら着目画素のドット形成有無を判断する。これを、図13(a)に則して説明する。図13(a)は、画素Pi0のドット形成有無を判断する様子を示す説明図である。画素Pi0のドット形成有無を判断しようとする場合、先ず、画素Pi0周辺の画素Ph0および画素Ph1で発生した階調誤差に所定の重み係数を乗算し、これらを加算した値を算出する。図13(a)で、画素Ph0,画素Ph1に、Eh0,Eh1とそれぞれ表示されているのは、各画素で階調誤差Eh0,Eh1が生じていることを示している。次いで、画素Pi0の画像データを算出した値で補正して、得られた補正値と所定の閾値との大小関係に基づいてドット形成の有無を判断する。階調誤差に乗算される重み係数は、着目画素に対する各画素の相対的な位置関係によって画素毎に予め設定されている。図13(b)は、着目画素を中心として、周辺の各画素に重み係数が設定されている様子を示す説明図である。図中に斜線を付した画素が着目画素である。例えば、着目画素の左隣の画素には、重み係数として「K0-1 」が設定されている。もっとも、着目画素周辺の各画素への重み係数を設定するマトリックスは、図13(b)のマトリックスに限定されるものではなく、図14に例示する各種のマトリックスを使用することができる。
【0117】
こうして画素Pi0のドット形成有無を判断したら、右隣にある画素Pi1についてのドット形成有無を開始する。画素Pi1のドット形成有無に際しては、図13(b)に設定されたマトリックスに従って、画素Ph0と画素Ph1と画素Ph2および画素Pi0で発生した階調誤差を考慮しながらドット形成有無を判断する。画素Pi1の判断を終了したら、更に右隣にある画素Pi2の判断を開始する。このように、ラスタに沿って1画素ずつドット形成有無を判断していく。ドット形成有無の判断の結果として生じた階調誤差は、RAM上に設けられた誤差バッファに記憶され、現在処理中のラスタにある全画素のドット形成有無の判断が終了した後、1つ下にあるラスタの処理の中で、再びRAM上の誤差バッファから読み出されて使用される。
【0118】
上述したように、平均誤差最小法を用いてドット形成有無を判断するためには、着目画素についてのドット形成有無を判断する度に、周辺画素の階調誤差をRAM上に設けられた誤差バッファから読み出さなければならず、また、判断によって着目画素に生じる階調誤差を、他の画素のドット形成判断に使用するため人、誤差バッファに記憶しておく必要がある。このように、誤差バッファに対して階調誤差を頻繁に読み書きするためには、その分だけドット形成有無の判断に時間が必要となる。
【0119】
これに対して、以下に説明する第2実施例の階調数変換処理においては、複数ラスタの処理を並行して行うことにより、ドット形成有無の判断を迅速に行うことが可能となる。以下、図13を参照しつつ、複数ラスタの処理を並行して行うことにより、ドット形成有無の判断を迅速に行う原理について説明する。
【0120】
図13は、最も簡単な例として、2本のラスタについてのドット形成有無の判断を並行して行う原理を示した説明図である。ここでは、ラスタiと、その直ぐ下のラスタjの2本のラスタについて、並行してドット形成有無を判断するものとする。
【0121】
先ず初めに、ラスタiの一番左側の画素Pi0のドット形成有無を判断する。図13(a)は、画素Pi0のドット形成有無を判断している様子を概念的に示している。着目画素Pi0についての判断を行うためには、前述した平均誤差拡散法と同様に、画素Ph0の階調誤差Eh0と画素Ph1の階調誤差Eh1とを使用する。これら階調誤差は、コンピュータ100のRAM106上に記憶されている。RAM106から読み出した各階調誤差に、図13(b)のマトリックスに設定されている重み係数を乗算して、着目画素Pi0の画像データを補正する。こうして得られた補正値に基づいて画素Pi0のドット形成有無を判断する。図13(a)において、画素Ph0あるいは画素Ph1から着目画素Pi0に向けて表示された太線の矢印は、着目画素Pi0のドット形成有無を判断するために、画素Ph0あるいは画素Ph1の階調誤差を考慮することを概念的に表現したものである。
【0122】
画素Pi0についてのドット形成有無を判断したら、発生した階調誤差Ei0をCPU102のレジスタに一時記憶した後、画素Pi0の右隣にある画素Pi1についてのドット形成有無の判断を開始する。図13(b)に設定されているように、画素Pi1のドット形成有無の判断には、画素Ph0,画素Ph1,画素Ph2,および画素Pi0の各画素で発生した階調誤差が考慮される。図13(a)では、これら各画素から画素Pi1に向けて表示されている細線の矢印は、着目画素Pi1のドット形成有無を判断するために、これら画素の階調誤差を考慮することを概念的に示すものである。これら4つの階調誤差の中、画素Ph0の階調誤差Eh0および画素Ph1の階調誤差Eh1は、先に画素Ph0についてのドット形成判断に使用した値を記憶しておき、この値を用いることができる。また、画素Pi0の階調誤差Ei0は、先程求めた値を使用することができる。従って、画素Ph2についての階調誤差Eh2のみをRAM106から読み出せば、画素Pi1についてのドット形成有無を判断することが可能である。判断した結果として画素Pi1に生じた階調誤差Ei1は、CPU102のレジスタに記憶しておく。
【0123】
第2実施例の階調数変換処理では、ラスタiにある画素Pi0および画素Pi1のドット形成有無を判断したら、次は、ラスタjにある画素Pj0についてのドット形成有無を判断する。図13(c)は、画素Pj0のドット形成有無を反する様子を概念的に示す説明図である。図13(b)のマトリックスから明らかなように、画素Pj0のドット形成有無は、画素Pi0および画素Pi1での階調誤差を考慮するだけで判断することができる。前述したように、これら階調誤差Ei0およびEi1は、画素Pj0の直前に求められて、CPU102のレジスタに記憶されている。このことから、画素Pj0についてはRAM106から階調誤差を読み出すことなく、ドット形成有無を判断することができる。こうして、画素Pj0のドット形成有無を判断したら、画素Pj0で生じた階調誤差を、CPU102のレジスタとRAM106上の誤差バッファとに記憶し、以降は、ラスタiの画素とラスタjの画素とについて交互にドット形成有無を判断していく。
【0124】
尚、画素Pj0の階調誤差Ej0をRAM106上の誤差バッファに記憶する理由は、ラスタiおよびラスタjの処理を終了後、ラスタkにある画素のドット形成有無を判断する際に、階調誤差Ej0を使用するためである。また、誤差バッファだけでなくCPU102のレジスタにも記憶するのは、隣接する画素Pj1のドット形成有無の判断の際に使用するためである。前述した画素Pi0あるいは画素Pi1のドット形成有無の判断に際しては、こうしてRAM106に記憶されていた階調誤差を読み出して使用している。図13において、ラスタhおよびラスタjの画素に斜線が施されているのは、これら画素の階調誤差が誤差バッファに記憶されていることを示すものである。
【0125】
図13(d)中で、画素に表示した丸印の中の数字は、各画素のドット形成有無を判断する順番を示したものである。図13(d)に示されているように、画素Pj0の次ぎにドット形成有無を判断する画素は、ラスタiにある画素Pi2の画素である。かかる画素のドット形成判断に考慮される階調誤差は、画素Ph1,画素Ph2,画素Ph3、および画素Pi1の4つの階調値であるが、前述の画素Pi1の場合に使用した階調誤差を記憶しておけば、RAM106からは、画素Ph3で生じた階調誤差のみを読み出すだけでドット形成有無を判断することができる。更に、画素Pi2の次は、ラスタjの画素Pj1についてのドット形成有無を判断する。画素Pj1のドット形成有無の判断には、画素Pi0,画素Pi1,画素Pi2、および画素Pj0の各画素での階調誤差を使用するが、これら各階調誤差は、いずれも直前に求められて、CPU102のレジスタに記憶されている。従って、画素Pj1については、RAM106から階調誤差を読み出すことなくドット形成有無を判断することができる。こうして画素Pj1の階調誤差Ej1が求められたら、CPU102のレジスタと、RAM106上の誤差バッファとに階調誤差Ej1を記憶する。
【0126】
以上に説明したように、ラスタiの画素と、該画素の左下にあるラスタjの画素とを、交互にドット形成の有無を判断していく。こうして、ラスタiと隣接するラスタjの処理を並行して行えば、ラスタjの画素については、RAM106から階調誤差を読み出すことなくドット形成有無を判断することができる。すなわち、その分だけ、RAM106上の誤差バッファに対して読み書きする頻度を減らすことができるので、ドット形成有無の判断を迅速に行うことができるのである。
【0127】
尚、図13に示したように、ラスタiの左端の画素、すなわち画素Pi0については該画素の左下にラスタjの画素が存在しないので、変則的に、画素Pi0に続いて同じラスタiにある画素Pi1の処理を行っている。もっとも、画素Pi0の左下に架空の画素Pj-1 を想定し、画素Pi0に続いて架空の画素Pj-1 の処理を行った後、かかる架空の画素Pj-1 については、ドット形成有無の判断結果を使用せずに捨ててしまうこととしても良い。こうすれば、左端の画素についても架空の画素に対して通常の処理を行うことができるので、変則的な処理が不要となって好ましい。
【0128】
図15は、2本のラスタについてのドット形成有無の判断を並行して行う処理の流れを示すフローチャートである。この処理はコンピュータ100のCPU102によって行われる。尚、前述した第1実施例の階調数変換処理と同様に、第2実施例の階調数変換処理も、カラープリンタに備えられた各色毎に行われるが、説明の煩雑化を避けるために、インクドットの色を特定せずに説明する。また、いわゆるバリアブルドットプリンタを使用する場合、第2実施例の階調数変換処理がドットの各種大きさ毎に行われることは、前述した第1実施例の場合と同様である。
【0129】
第2実施例の階調数変換処理を開始すると、先ず初めに、並行して処理するラスタの1本目のラスタの中から、ドット形成有無を判断しようとする画素の画像データを取得する(ステップS300)。ここでは、第1実施例に合わせて、処理しようとする画素(着目画素)をラスタiのn番目の画素Pinとする。画像データCdin は、RAM106に記憶されている。
【0130】
次いで、着目画素Pinの周辺画素の階調誤差を読み出す(ステップS302)。周辺画素とは、着目画素から所定領域内にあって、着目画素のドット形成有無の判断に階調誤差が考慮される画素である。着目画素のドット形成有無の判断に際しては、周辺画素として種々の範囲の画素を考慮することができるが、説明が煩雑となることを避けるために、以下では、図14(a)のマトリックスに示した周辺画素を考慮するものとする。尚、ステップS302において周辺画素の階調誤差を読み出すにあたっては、図13を用いて説明したように、着目画素Pinの左隣にある画素Pin-1の判断の際に読み出した各画素の階調誤差をレジスタに記憶しておき、ステップS302では、レジスタに記憶されていない階調誤差のみを、RAM106から読み出すようにしても良い。
【0131】
こうして読み出した周辺画素の階調誤差と、着目画素Pinの画像データCdin とに基づいて、着目画素Pinの補正データCxin を算出する(ステップS304)。すなわち、周辺画素の階調誤差と、周辺画素毎に定められた所定の重み係数とを乗算し、これら乗算値と着目画素Pinの画像データCdin との和を求めて、補正データCxin とするのである。周辺画素の重み係数は、図14(a)のマトリックスに画素毎に定められている。
【0132】
こうして得られた補正データCxin と所定の閾値th とを比較して(ステップS306)、補正データの方が大きければ画素Pinにドットを形成すると判断して、判断結果を示す変数Cr にドットを形成することを意味する値「1」書き込む(ステップS308)。そうでなければ画素Pinにはドットを形成しないと判断して、変数Cr にドットを形成しないことを意味する値「0」を書き込む(ステップS310)。
【0133】
ラスタiの画素Pinについてのドット形成有無を判断したら、該判断に伴って発生する階調誤差Einを算出してCPU102のレジスタに記憶する(ステップS312)。階調誤差Einは、第1実施例と同様に、補正データCxin から着目画素Pinの結果値を減算することで求めることができる。
【0134】
以上のようにして、ラスタiにある画素Pinのドット形成有無を判断し、階調誤差をCPU102のレジスタに記憶したら、画素Pinの左下にあるラスタjの画素Pjn-1について、ドット形成有無を判断するための処理を開始する。先ず、画素Pjn-1の画像データCdjn-1 をRAM106から読み出して(ステップS314)、周辺にある各画素の階調誤差をCPU102のレジスタから読み出す(ステップS316)。尚、画素Pinがラスタiの左端にある画素Pi0である場合は、架空の画素Pj-1 について同様の処理を行う。
【0135】
ここで、ステップS316においては、周辺画素の階調誤差をレジスタから読み出すことが可能であり、RAM106上の誤差バッファから読み出さなくて良い理由について説明する。前述したように、周辺画素として図14(a)に示す範囲を考慮するとしているから、ラスタjにある画素のドット形成有無の判断には、同じラスタiにある画素の階調誤差と、1つ上にあるラスタjの画素の階調誤差とが考慮される。ここで、ラスタiの画素とラスタjの画素は並行してドット形成有無を判断しているから、ラスタjにある画素のドット形成有無を判断する際に周辺画素となるのは、全て、少し前にドット形成有無を判断した画素ばかりである。従って、ドット形成有無を判断することで生じる階調誤差を、しばらくの間だけCPU102のレジスタに蓄えておけば、RAM106上の誤差バッファから読み出さずとも、周辺画素の階調誤差を全てレジスタから読み出すことができるのである。
【0136】
こうして画素Pjn-1について、周辺画素の階調誤差を読み出したら、画素Pinの場合と同様にして、ドット形成有無を判断し、該判断に伴って生じる階調誤差Ejn-1を算出する。すなわち、周辺画素の階調誤差と、着目画素Pjn-1の画像データCdjn-1 とに基づいて補正データCxjn-1 を算出し(ステップS318)、得られた補正データCxjn-1 と所定の閾値th とを比較し(ステップS320)、補正データの方が大きければ画素Pjn-1にドットを形成すると判断して、判断結果を示す変数Cr にドットを形成することを意味する値「1」書き込む(ステップS322)。そうでなければ画素Pjn-1にはドットを形成しないと判断して、変数Cr にドットを形成しないことを意味する値「0」を書き込む(ステップS324)。次いで、補正データCxjn-1 から着目画素Pjn-1の結果値を減算して、着目画素Pjn-1で生じる階調誤差Ejn-1を算出する。
【0137】
以上のようにして、ラスタjにある画素Pjn-1の階調誤差Ejn-1を求めたら、該階調誤差Ejn-1を、CPU102のレジスタとRAM106上の誤差バッファとに記憶する(ステップS328)。ここで、階調誤差をレジスタと誤差バッファとに記憶するのは、次の理由によるものである。画素Pjn-1の階調誤差Ejn-1は、隣接する画素Pjnのドット形成有無の判断と、1つ下のラスタkにある画素のドット形成有無の判断に使用される。ここでは、ラスタiおよびラスタjの処理を並行して行うものとしているから、隣接する画素Pjnのドット形成有無の判断はほどなく行われるが、ラスタkにある画素の判断は、ラスタiおよびラスタjの処理が終了した後に行われる。従って、画素Pjn-1の階調誤差Ejn-1は、画素Pjnの判断で使用するためにCPU102のレジスタに記憶するとともに、ラスタkの画素についての判断に使用するために、RAM106上の誤差バッファにも記憶しておくのである。
【0138】
以上のようにして、ラスタiの画素とラスタjの画素とについて、ドット形成有無を判断する処理が終了したら、ラスタiおよびラスタjの全ての画素の処理を終了したか否かを判断する(ステップS330)。未処理の画素が残っている場合は、画素の位置を1つ右に移動させ、すなわち「n+1」の値で「n」を置き換えて、ステップS200に戻って続く一連の処理を行う。未処理の画素が残っていない場合は、全てのラスタの処理が終了したか否かを判断し(ステップS332)、処理していないラスタが残っている場合はラスタ位置をラスタ2本分だけ下に移動させ、すなわち「i+2」の値で「i」を置き換えた後、ステップS200に戻って続く一連の処理を行う。未処理のラスタが残っていない場合は、図15に示した階調数変換処理を終了して、図4に示す画像データ変換処理に復帰する。
【0139】
以上に説明したように、第2実施例の階調数変換処理によれば、ラスタiの画素とラスタjの画素とを、並行して交互にドット形成有無を判断していく。こうすれば、ラスタjの画素は、ラスタiの画素に続いて、あるいは、ほどなくドット形成有無が判断されることになるので、ラスタiの画素で発生した階調誤差を誤差バッファに記憶しておかなくとも、ラスタjの画素のドット形成有無を判断することができる。ラスタiの画素で発生した階調誤差を誤差バッファに記憶しなくても良くなれば、その分だけ、誤差バッファへの書き込み頻度を減らすことができるので、ドット形成有無の判断を迅速に行うことが可能となる。もちろん、並行して処理するラスタの本数は2本に限られず、より多くのラスタについてのドット形成有無の判断を並行して行うようにしても良い。並行して処理するラスタの本数が多くなるほど、誤差バッファへの書き込み頻度を少なくなり、その分だけドット形成有無の判断を迅速に行うことが可能となって好ましい。
【0140】
C−2.変形例:
上述した第2実施例の階調数変換処理は、いわゆる平均誤差最小法と呼ばれる方法に準じた方法を用いてドット形成有無を判断している。すなわち、着目画素で生じた階調誤差を該着目画素に記憶しておき、新たな画素のドット形成有無の判断に際しては、周辺の画素に記憶されている階調誤差を考慮してドット形成有無を判断している。また、前述の第1実施例の階調数変換処理では、いわゆる誤差拡散法と呼ばれる方法に準じた方法を用いてドット形成有無を判断している。すなわち、着目画素で生じた階調誤差を周辺画素に拡散しておき、新たな画素のドット形成有無を判断する際には、周辺の既判断画素から拡散されて蓄積されている拡散誤差を考慮してドット形成有無を判断している。これらに対して、平均誤差最小法と、誤差拡散法とを併用しながらドット形成有無を判断することも可能である。以下では、このような第2実施例の変形例について簡単に説明する。
【0141】
図16は、第2実施例の変形例の階調数変換処理を概念的に示す説明図である。尚、説明の煩雑化を避けるために、ここではラスタiとラスタjとを並行して処理するものとする。また、階調誤差を周辺画素に拡散する際には、図6(a)に示す単純な誤差拡散マトリックスに従って拡散するものとし、周辺画素の階調誤差を考慮してドット形成有無を判断する際には、図14(a)に示す単純なマトリックスに従って各画素の階調誤差を考慮するものとする。
【0142】
図16(a)は、ラスタiの左端の画素Pi0について、ドット形成有無を判断している様子を示す説明図である。ラスタiの各画素には、ラスタhにある画素のドット形成有無を判断した際に、各画素で生じた階調誤差が拡散されて記憶されている。例えば、画素Pi0にはラスタhから拡散されてきた拡散誤差Edi0 が、画素Pi1にはラスタhからの拡散誤差Edi1 が、画素Pi2には拡散誤差Edi2 がそれぞれ記憶されている。理解の便宜から、使用する誤差拡散マトリックスを図16(b)に示しておく。また、図16(a)中で、ラスタhの画素からラスタiの画素に向かう矢印は、各画素から誤差が拡散されていることを概念的に示したものである。
【0143】
画素Pi0についてのドット形成有無を判断したら、判断にともなって生じた階調誤差Ei0をCPU102のレジスタに記憶し、続いて、右隣にある画素Pi1のドット形成有無の判断を開始する。画素Pi1についてのドット形成有無の判断は、図7を用いて説明した第1実施例の階調数変換処理と同様にして行う。すなわち、画素Pi1に予め拡散されて蓄積されている拡散誤差Edi1 を読み出して、この拡散誤差Edi1と、先にドット形成有無を判断した画素Pi0から拡散されてくる誤差とを考慮しながら、画像データに基づいてドット形成有無を判断するのである。こうして画素Pi1のドット形成有無を判断したら、該判断によって発生した階調誤差Ei1を、画素Pi0の場合と同様に、CPU102のレジスタに記憶する。
【0144】
以上のようにして、ラスタiにある画素Pi0および画素Pi1についてのドット形成有無を判断したら、ラスタjの左端にある画素Pj0の判断を行う。図16(c)は、ラスタjの画素Pj0についてのドット形成有無を判断している様子を示す説明図である。ラスタjの画素の判断には、平均誤差最小法に準じた方法を用いてドット形成有無を判断する。すなわち、周辺画素で発生した階調誤差に、マトリックスによって画素毎に定められた所定の重みを考慮しながらドット形成有無を判断する。理解の便宜のために、使用しているマトリックスを図16(d)に示しておく。
【0145】
図16(d)のマトリックスに示されているように、画素Pj0についてのドット形成有無の判断には、画素Pi0および画素Pi1で発生した階調誤差をすればよい。前述したように、これら階調誤差は、既に求められてCPU102のレジスタに記憶されているので、画素Pj0についてのドット形成有無を迅速に判断することができる。こうして画素Pj0についての判断を行った結果、階調誤差Ej0が発生するので、今度は誤差拡散マトリックスに従って、ラスタkにある周辺画素に拡散誤差を分配する。拡散誤差の分配には、図16(b)の誤差拡散マトリックスを使用する。尚、ここではラスタiおよびラスタjの画素を並行して処理しているので、ラスタkの画素についてのドット形成有無の判断は、これらラスタの処理を終了した後になる。そこで、ラスタkの各画素に拡散される拡散誤差は、RAM106上の誤差バッファに蓄積しておく。図16(c)で、画素Pj0からラスタkにある画素Pk0および画素Pk1に向かって表示されている白抜きの矢印は、RAM106上の誤差バッファに蓄積されることを示している。
【0146】
以上に説明したように、ラスタiの画素については、誤差拡散法に準じてドット形成有無を判断し、ラスタjの画素については平均誤差最小法に準じてドット形成有無を判断する。ラスタjの画素で発生した階調誤差は、誤差拡散法に準じて周辺画素に拡散する。このような処理を繰り返すことによって、ラスタiおよびラスタjの画素についてのドット形成有無を、交互に判断していくことができる。図16(e)は、かかる処理の様子を概念的に示した説明図である。図16(e)中では、ラスタhから拡散されてきた拡散誤差がラスタiの画素に記憶されていることを、ラスタiの画素に斜線を施すことで表示している。同様に、ラスタjから拡散された拡散誤差がラスタkの画素に記憶されていることを、ラスタkの画素に斜線を施すことで表示している。また、図16(e)の各画素に丸印とともに表示した数字は、画素のドット形成有無の判断を行う順番を表している。図示されているように、ラスタiの画素とその左下にあるラスタjの画素とを1組として、処理する組の位置を1画素ずつ右に移動させながらドット形成有無を判断していくことで、ラスタiおよびラスタjの処理を並行して行うことが可能となる。
【0147】
このように、ラスタiおよびラスタjの画素についてのドット形成有無を、並行して交互に判断していけば、ラスタiの画素で生じた階調誤差を利用して、続くラスタjの画素のドット形成有無を判断することが可能となり、ラスタiの画素の階調誤差を誤差バッファに記憶しておく必要がなくなる。その結果、誤差バッファに対して読み書きする頻度を減少させることができ、ドット形成有無の判断を迅速に行うことが可能となる。
【0148】
尚、以上の説明においては、ラスタiの画素のドット形成有無の判断に誤差拡散法に準じた方法を適用し、ラスタjの画素の判断には平均誤差最小法に準じた方法を適用するものとしたが、もちろん、ラスタiの画素の判断に平均誤差最小法に準じた方法を適用し、ラスタjの画素の判断に誤差拡散法を適用しても同様の効果を得ることができる。
【0149】
また、以上に説明した第2実施例の変形例においては、ラスタiおよびラスタjの2つのラスタの処理を並行して行うものとしたが、もちろん、より多くのラスタの画素についてのドット形成有無の判断を並行して行っても構わない。
【0150】
以上、各種の実施例について説明してきたが、本発明は上記すべての実施例に限られるものではなく、その要旨を逸脱しない範囲において種々の態様で実施することができる。例えば、上述の機能を実現するソフトウェアプログラム(アプリケーションプログラム)を、通信回線を介してコンピュータシステムのメインメモリまたは外部記憶装置に供給し実行するものであってもよい。もちろん、CD−ROMやフレキシブルディスクに記憶されたソフトウェアプログラムを読み込んで実行するものであっても構わない。
【0151】
また、上述した各種実施例では、階調数変換処理を含む画像データ変換処理はコンピュータ内で実行されるものとして説明したが、画像データ変換処理の一部あるいは全部をプリンタ側、あるいは専用の画像処理装置を用いて実行するものであっても構わない。
【0152】
更には、画像表示装置は、必ずしも印刷媒体上にインクドットを形成して画像を印刷する印刷装置に限定されるものではなく、例えば、液晶表示画面上で輝点を適切な密度で分散させることにより、階調が連続的に変化する画像を表現する液晶表示装置であっても構わない。
【図面の簡単な説明】
【図1】本実施例の印刷システムの概略構成図である。
【図2】本実施例の画像処理装置としてのコンピュータの構成を示す説明図である。
【図3】本実施例の画像表示装置としてのプリンタの概略構成図である。
【図4】本実施例の画像処理装置で行われる画像データ変換処理の流れを示すフローチャートである。
【図5】誤差拡散法を用いてドットの形成有無を判断する様子を概念的に示す説明図である。
【図6】画素毎に誤差拡散係数が設定されている様子を例示する説明図である。
【図7】第1実施例の階調数変換処理において、複数のラスタの処理を並行して行うことにより処理時間を短縮化する原理を示す説明図である。
【図8】第1実施例の階調数変換処理の流れを示すフローチャートである。
【図9】第1実施例の階調数変換処理の第1の変形例において、複数のラスタを並行して処理している様子を概念的に示す説明図である。
【図10】第1実施例の階調数変換処理の第2の変形例において、複数のラスタを並行して処理している様子を概念的に示す説明図である。
【図11】第1実施例の階調数変換処理の第3の変形例において、複数のラスタを並行して処理している様子を概念的に示す説明図である。
【図12】第1実施例の階調数変換処理の第4の変形例において、遠方に拡散する誤差については誤差バッファのある画素に拡散する誤差拡散マトリックスを概念的に示す説明図である。
【図13】第2実施例の階調数変換処理において、複数のラスタの処理を並行して行うことにより処理時間を短縮化する原理を示す説明図である。
【図14】第2実施例の変形例の階調数変換処理において、重み係数が画素毎に設定されている様子を例示する説明図である。
【図15】第2実施例の階調数変換処理の流れを示すフローチャートである。
【図16】第2実施例の階調数変換処理の第1の変形例において、複数のラスタを並行して処理している様子を概念的に示す説明図である。
【符号の説明】
10…コンピュータ
12…プリンタドライバ
20…カラープリンタ
100…コンピュータ
102…CPU
104…ROM
106…RAM
108…周辺機器インターフェースP・I/F
110…ネットワークインターフェースカードNIC
112…ビデオインターフェースV・I/F
114…CRT
116…バス
118…ハードディスク
120…デジタルカメラ
122…カラースキャナ
124…フレキシブルディスク
126…コンパクトディスク
200…カラープリンタ
230…キャリッジモータ
235…紙送りモータ
236…プラテン
240…キャリッジ
241…印字ヘッド
242,243…インクカートリッジ
244…インク吐出用ヘッド
260…制御回路
261…CPU
262…ROM
263…RAM
300…通信回線
310…記憶装置

Claims (2)

  1. 画素毎の階調値を示す画像データを受け取り、該画素の列たるラスタに沿って該ラスタを構成する各画素でのドット形成の有無を判断することによって、該画像データをドット形成の有無による表現形式に変換する画像処理装置であって、
    互いに隣接した所定本数の前記ラスタから成るラスタ群毎に前記画像データを変換するに際して、該ラスタ群の中の最後尾にある最後尾ラスタについては、該最後尾ラスタを構成する各画素のドット形成有無の判断により該各画素に生じる階調誤差を、該画素の周辺にある複数の未判断の画素に拡散して記憶する第1の誤差拡散手段と、
    前記最後尾ラスタに隣接するラスタ群の中の先頭ラスタについては、該最後尾ラスタから該先頭ラスタの各画素に拡散されてきた階調誤差を考慮しながら該各画素のドット形成有無を判断することによって、該先頭ラスタをドット形成の有無を表すドット列に変換する先頭ラスタ変換手段と、
    前記先頭ラスタを構成する各画素で生じた前記階調誤差を、該画素の周辺にある未判断の画素に拡散して記憶する第2の誤差拡散手段と、
    前記ラスタ群から前記先頭ラスタを除いた残余ラスタについては、該残余ラスタと同じラスタ群に属し且つドット形成有無を判断済みの画素から拡散されてきた階調誤差を考慮しながら該残余ラスタの各画素のドット形成有無を判断することにより、該先頭ラスタを前記ドット列に変換する処理に並行して、該残余ラスタをドット列に変換する残余ラスタ変換手段と
    を備え、
    前記第1の誤差拡散手段および前記第2の誤差拡散手段は、前記ドット形成の有無を判断した画素とは異なるラスタ群の画素に拡散された誤差については第1の誤差記憶部に記憶し、該ドット形成有無を判断した画素と同じラスタ群の画素に拡散された誤差については第2の誤差記憶部に記憶する手段であり、
    前記第1の誤差拡散手段あるいは前記第2の誤差拡散手段の少なくとも一方は、前記階調誤差を該階調誤差が生じた画素から所定値以上遠方の画素に拡散する際には、前記ドット形成有無を判断した画素と異なるラスタ群の画素にのみ拡散して記憶する手段である画像処理装置。
  2. 請求項1記載の画像処理装置であって、
    前記第1の誤差拡散手段あるいは前記第2の誤差拡散手段の少なくとも一方は、前記階調誤差が生じた画素から所定値以上遠方で、且つ、前記ラスタに沿ってドット形成の有無を判断して行く方向とは逆方向の画素に、該階調誤差を拡散する際には、前記ドット形成有無を判断した画素と異なるラスタ群の画素にのみ拡散して記憶する手段である画像処理装置。
JP2001307214A 2000-10-06 2001-10-03 画像処理装置 Expired - Fee Related JP3661624B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2001307214A JP3661624B2 (ja) 2000-10-06 2001-10-03 画像処理装置
US10/149,174 US7196821B2 (en) 2000-10-06 2001-10-05 Image processing device, printing control device, image processing method, and recorded medium
PCT/JP2001/008837 WO2002032110A1 (fr) 2000-10-06 2001-10-05 Dispositif et procede de traitement d"images, dispositif de commande d"impression, et support enregistre
CN01803036XA CN1216484C (zh) 2000-10-06 2001-10-05 图象处理装置、印刷控制装置、图象处理方法和记录媒体
KR10-2002-7006214A KR100485635B1 (ko) 2000-10-06 2001-10-05 화상처리장치, 인쇄제어장치, 화상처리방법 및 기록매체
EP01972714A EP1333659A4 (en) 2000-10-06 2001-10-05 IMAGE PROCESSING DEVICE, PRINT CONTROL DEVICE, IMAGE PROCESSING METHOD AND RECORDING MEDIUM

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2000-307926 2000-10-06
JP2000307926 2000-10-06
JP2001307214A JP3661624B2 (ja) 2000-10-06 2001-10-03 画像処理装置

Publications (2)

Publication Number Publication Date
JP2002199220A JP2002199220A (ja) 2002-07-12
JP3661624B2 true JP3661624B2 (ja) 2005-06-15

Family

ID=26601693

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001307214A Expired - Fee Related JP3661624B2 (ja) 2000-10-06 2001-10-03 画像処理装置

Country Status (6)

Country Link
US (1) US7196821B2 (ja)
EP (1) EP1333659A4 (ja)
JP (1) JP3661624B2 (ja)
KR (1) KR100485635B1 (ja)
CN (1) CN1216484C (ja)
WO (1) WO2002032110A1 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4456823B2 (ja) * 2003-03-18 2010-04-28 セイコーエプソン株式会社 ドット形成有無の判断結果をグループ分けして記憶しながら画像を印刷する印刷装置、およびそのための印刷制御装置
JP2005074878A (ja) * 2003-09-02 2005-03-24 Konica Minolta Medical & Graphic Inc 画像記録装置
JP4039395B2 (ja) * 2003-09-18 2008-01-30 セイコーエプソン株式会社 画像処理方法および画像処理装置、画像処理プログラム、並びにプリンタ、印刷指示端末、画像処理システム。
TWI244322B (en) * 2004-03-24 2005-11-21 Sunplus Technology Co Ltd Printer system with halftone monochromatic process and method thereof
EP1585310A1 (en) * 2004-03-30 2005-10-12 Dialog Semiconductor GmbH Image resolution conversion
EP1583031A1 (en) 2004-03-30 2005-10-05 Dialog Semiconductor GmbH Zoom algorithm
JP4105704B2 (ja) * 2004-05-18 2008-06-25 シャープ株式会社 画像処理装置、画像形成装置、画像処理方法、プログラム、および記録媒体
CN100364780C (zh) * 2005-01-07 2008-01-30 北京北大方正电子有限公司 一种随机使用多种图元对象进行图像光栅化的方法
US7564590B2 (en) * 2005-06-30 2009-07-21 Brother Kogyo Kabushiki Kaisha Image processing apparatus and method
US7826096B2 (en) * 2005-09-16 2010-11-02 Fujifilm Corporation Image processing method and image recording apparatus
JP4801428B2 (ja) * 2005-11-30 2011-10-26 株式会社リコー 画像形成装置及び画像形成方法
CN1964423A (zh) * 2006-11-07 2007-05-16 北京大学 采用双份误差行存储器产生图像网点的方法和装置
JP4989378B2 (ja) * 2007-09-03 2012-08-01 キヤノン株式会社 画像処理方法及び記録装置
JP4577366B2 (ja) * 2008-01-28 2010-11-10 セイコーエプソン株式会社 複数のラスタを並行して処理する画像処理装置
KR101328793B1 (ko) * 2009-11-23 2013-11-13 엘지디스플레이 주식회사 오차 확산 방법과 이를 이용한 액정표시장치
JP5528209B2 (ja) * 2010-05-20 2014-06-25 キヤノン株式会社 画像処理装置および画像処理方法
WO2012124660A1 (ja) * 2011-03-17 2012-09-20 シャープ株式会社 表示装置、駆動装置、及び、駆動方法
JP5714156B2 (ja) * 2014-04-17 2015-05-07 キヤノン株式会社 画像処理装置および画像処理方法
JP6536287B2 (ja) * 2015-08-25 2019-07-03 富士ゼロックス株式会社 印刷制御装置及び印刷制御プログラム
CN105787898B (zh) * 2016-03-02 2019-04-16 南京理工大学 基于fpga的平台直方图均衡化实现方法及其装置

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6163893A (ja) * 1984-09-06 1986-04-02 株式会社日立製作所 デイスプレイ装置における擬似中間調画像の表示方法
JPS63309457A (ja) * 1987-06-11 1988-12-16 Canon Inc 画像処理方法
JP2547771B2 (ja) * 1987-06-11 1996-10-23 キヤノン株式会社 画像処理方法
JPH0691606B2 (ja) * 1987-06-11 1994-11-14 キヤノン株式会社 画像処理方法
JPS63310270A (ja) * 1987-06-11 1988-12-19 Canon Inc 画像処理装置
JP2848566B2 (ja) * 1989-09-25 1999-01-20 キヤノン株式会社 画像処理装置
US5337160A (en) * 1992-07-01 1994-08-09 Hewlett-Packard Error diffusion processor and method for converting a grey scale pixel image to a binary value pixel image
US5271070A (en) * 1992-11-06 1993-12-14 Xerox Corporation Multi-dimensional error diffusion technique
US5553165A (en) * 1993-01-11 1996-09-03 Canon, Inc. Parallel error diffusion method and apparatus
US5519791A (en) * 1993-01-11 1996-05-21 Canon, Inc. Block parallel error diffusion method and apparatus
JPH06266324A (ja) 1993-03-10 1994-09-22 Canon Inc 画像処理方法及び装置
NL9300684A (nl) 1993-04-22 1994-11-16 Oce Nederland Bv Werkwijze voor het halftonen van gedigitaliseerde grijswaardebeelden en beeldbewerkingsinrichting geschikt voor het uitvoeren van een dergelijke werkwijze.
JP3106033B2 (ja) 1993-05-25 2000-11-06 キヤノン株式会社 表示制御装置
JPH1093819A (ja) 1996-09-12 1998-04-10 Canon Inc 画像処理装置
US5974228A (en) * 1997-01-28 1999-10-26 Hewlett-Packard Company Image rendition by plural-row error diffusion, for faster operation and smaller integrated circuits
KR100264804B1 (ko) 1997-03-14 2000-09-01 윤종용 셔틀방식 스캔 이미지의 오차확산 이치화방법
US5892851A (en) * 1997-05-23 1999-04-06 Hewlett-Packard Company Parallelized error diffusion
JPH1117945A (ja) * 1997-06-20 1999-01-22 Sharp Corp 画像処理装置
US5931960A (en) * 1997-10-31 1999-08-03 Xerox Corporation Method and apparatus for handling error diffusion values
US6307978B1 (en) * 1998-06-03 2001-10-23 Wellesley College System and method for parallel error diffusion dithering
JP3963598B2 (ja) 1998-10-14 2007-08-22 セイコーエプソン株式会社 画像処理装置、処理方法および記録媒体
JP3829508B2 (ja) 1998-11-27 2006-10-04 セイコーエプソン株式会社 画像処理装置、画像処理方法および印刷装置
JP3995868B2 (ja) * 2000-06-12 2007-10-24 シャープ株式会社 誤差拡散演算装置

Also Published As

Publication number Publication date
CN1216484C (zh) 2005-08-24
KR20020059738A (ko) 2002-07-13
WO2002032110A1 (fr) 2002-04-18
CN1393093A (zh) 2003-01-22
JP2002199220A (ja) 2002-07-12
KR100485635B1 (ko) 2005-04-27
US20020181003A1 (en) 2002-12-05
EP1333659A4 (en) 2004-04-14
US7196821B2 (en) 2007-03-27
EP1333659A1 (en) 2003-08-06

Similar Documents

Publication Publication Date Title
JP3661624B2 (ja) 画像処理装置
JP2002185789A (ja) 画像処理装置、印刷制御装置、画像処理方法、および記録媒体
JP2004284279A (ja) 画像処理装置、画像処理方法及び画像処理プログラム
JP4419947B2 (ja) 印刷装置、印刷装置制御プログラム及び印刷装置制御方法、並びに印刷用データ生成装置、印刷用データ生成プログラム及び印刷用データ生成方法
US7770993B2 (en) Printing device and print image processing device
JP3666427B2 (ja) 画像処理装置、印刷制御装置、画像処理方法、および記録媒体
US6870641B2 (en) Image processing apparatus, method of image processing, print control apparatus, and recording media
JP4691880B2 (ja) 同時にドットが形成される複数本の画素列のデータを解像度変換しながら画像を出力する画像出力装置
JP2001063147A (ja) 印刷装置、印刷方法、および記録媒体
JP4561049B2 (ja) 所定領域内に形成されるドット個数の情報に基づいて画像を印刷する印刷システム
JP3864902B2 (ja) 画像データの階調数を変換する画像処理装置、および画像処理方法
JP3864901B2 (ja) 画像データの階調数を変換する画像処理装置、および画像処理方法
JP4300742B2 (ja) 画像データの階調数を変換する画像処理装置
JP4228814B2 (ja) 複数のラスタを並行して処理しながら画像を印刷する印刷方法
US7375855B2 (en) Image processing apparatus for converting image data by unit of multiple pixels
JP3870604B2 (ja) データ変換装置
JP4007179B2 (ja) 画像処理装置と印刷装置とで分担して画像処理を行いながら印刷する印刷システム
JP4096846B2 (ja) 出力解像度に応じたフィルタ処理を行う画像処理装置
JP2001353888A (ja) 印刷制御装置、画像処理装置
JP2007015397A (ja) 印刷装置、印刷装置制御プログラム及び印刷装置制御方法、並びに印刷用データ生成装置、印刷用データ生成プログラム及び印刷用データ生成方法
JP2004080480A (ja) 複数のラスタを並行して処理する画像処理装置
JP2011093135A (ja) 印刷装置および印刷方法
JP2006205717A (ja) 印刷装置、印刷プログラム、印刷方法、および画像処理装置、画像処理プログラム、画像処理方法、並びに前記プログラムを記録した記録媒体
JP2007001063A (ja) 画像処理装置、印刷装置、画像処理方法、および印刷方法
JP2006175853A (ja) 印刷装置、印刷プログラム、印刷方法および画像処理装置、画像処理プログラム、画像処理方法、並びに前記プログラムを記録した記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040330

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20040330

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20040419

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040622

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040820

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050314

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20080401

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090401

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090401

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100401

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110401

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110401

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120401

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130401

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees