JP6390405B2 - 印刷装置、印刷方法、プログラム、および画像処理装置 - Google Patents

印刷装置、印刷方法、プログラム、および画像処理装置 Download PDF

Info

Publication number
JP6390405B2
JP6390405B2 JP2014253889A JP2014253889A JP6390405B2 JP 6390405 B2 JP6390405 B2 JP 6390405B2 JP 2014253889 A JP2014253889 A JP 2014253889A JP 2014253889 A JP2014253889 A JP 2014253889A JP 6390405 B2 JP6390405 B2 JP 6390405B2
Authority
JP
Japan
Prior art keywords
determination
block
pixel
pixels
value
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.)
Active
Application number
JP2014253889A
Other languages
English (en)
Other versions
JP2016116105A (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 JP2014253889A priority Critical patent/JP6390405B2/ja
Priority to US14/969,476 priority patent/US20160173724A1/en
Publication of JP2016116105A publication Critical patent/JP2016116105A/ja
Application granted granted Critical
Publication of JP6390405B2 publication Critical patent/JP6390405B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/40Picture signal circuits
    • H04N1/405Halftoning, i.e. converting the picture signal of a continuous-tone original into a corresponding signal showing only two levels
    • H04N1/4051Halftoning, i.e. converting the picture signal of a continuous-tone original into a corresponding signal showing only two levels producing a dispersed dots halftone pattern, the dots having substantially the same size

Description

本発明は、画像データを用いて画像を処理する技術および画像を印刷する技術に関する。
多階調の画像データを、階調数の少ないドットデータにより印刷するハーフトーン処理としては、階調数変換をした場合の濃度誤差を周辺の画素に配分する誤差拡散法や、分散性のよい閾値配置がなされたディザマスクを用いてドットデータを生成する組織的ディザ法などが知られている。更に、誤差拡散法とディザ法の利点を組み合わせ、誤差拡散法によるハーフトーン処理の結果に近い特性とディザ法によるハーフトーン処理の結果に近い特性とが、画像の階調値に応じて発現するようする手法も提案されている(下記特許文献1参照)。特許文献1に記載の手法は、誤差拡散法の利点とディザ法の利点とを巧みに組み合わせたものであり、ディザ法の高速性という利点を生かしたまま、低階調領域において画像の再現性に優れるという特徴を有する。
係る手法は、一部とは言え、誤差拡散法を用いるので、誤差拡散の計算が必要となる。誤差拡散の計算量は、画素拡散の範囲が広くなり、あるいは画素数が多くなれば、増大する。計算量が増えれば、処理に時間を要することになり、画素形成要素(例えばインクを吐出するノズル)を増やして印刷速度を高める場合などに、誤差計算に要する時間がボトルネックになることが懸念される。こうした誤差拡散法における計算量の増大を抑制する手法として、従来、誤差計算を複数画素(例えば2×2画素)をひとまとめにしたブロックを単位として行なうものが知られている(例えば、特許文献2)。
特開2011ー66594号公報 特開2003−283828号公報
しかしながら、ブロック単位での処理では、特定の入力階調において規則的なドット配置が生じてしまうことがある、という課題が指摘されていた。特許文献2では、規則的なドット配置の発生を避けるために、ブロック内のドットの発生履歴を検出し、同じ位置でのドットの発生が続かないようにしている。こうした履歴の検出とそれに伴うドット配置の制御は複雑なものとなり、処理速度の低下を招来しかねない。
このように、ハーフトーン技術においては、誤差拡散法とディザ法の利点を生かしつつ、高速な画像処理を実現するには、なお改良の余地が残されていた。例えば、最近では、ディザマスクを工夫することにより、ドットの配置に特定のノイズ特性(例えばブルーノイズ特性)を持たせることがなされているが、細線の再現性を十分に確保し、かつ高速処理を実現するハーフトーン処理が求められていた。なお、画像処理や印刷においては、装置の小型化や、低コスト化、省資源化、製造の容易化、使い勝手の向上等は、常に追究されるべき課題であった。
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態として実現することが可能である。
(1)本発明の第1の形態として、画像を、複数画素からなるブロックを単位としてハーフトーン処理し、印刷する印刷装置が提供される。この印刷装置は、前記複数画素各々の階調値が所定の条件を満たしているか否かを判断する第1の判断部と、前記第1の判断部の判断結果に基づいて異なる条件を適用し、前記複数画素の少なくとも一つにドットを形成するか否かの判断を行なう第2の判断部と、前記ブロックを単位として、前記第2の判断部の判断結果により生じる階調誤差の計算と、該計算された誤差の未処理画素への配分とを、行なう誤差計算部と、前記第2の判断部の判断結果によりドットの形成を行なうドット形成部とを備えてよい。
この印刷装置によれば、ブロックを単位とした誤差拡散による高速処理と、誤差拡散を伴う画像の高い再現性とを両立させたハーフトーン処理による印刷が可能となる。
(2)こうした印刷装置において、前記第1の判断部における前記階調値が所定の条件を満たしているか否かの判断は、前記ブロック内の各画素の階調値に対応する値が、ディザマスクとして用意された閾値のうち前記画素位置に対応する位置の閾値である第1の閾値より大きい場合、前記所定の条件が満たされていると判断するものとして良い。こうすれば、第1の判断部による判断をディザマスクを用いて行なうことができる。ディザマスクの閾値と比較するのは、各画素の階調値その自体であっても良いし、階調値に所定の演算を施した値でも良い。演算としては、所定値を加減算するものや、所定の係数を乗算するものなどが考えられる。こうすれば、ディザマスクの閾値は同じものを用いていても、閾値との比較による第2の判断部の判断結果、つまりドットオンオフの割合を制御することが可能となる。他方、ディザマスクに種々の特性を付与すれば、生成されるドットに、その特性、例えばブルーノイズ特性やグリーンノイズ特性を持たせることができる。
(3)こうした印刷装置において、前記第1の判断部において、前記ブロック内の少なくとも1つの画素の階調値が前記所定の条件を満たしている場合には、前記第2の判断部による前記判断を行なうことなく、当該画素に対応したドットを形成するものとしても良い。こうすれば、第1の判断部で、階調値が所定の条件を満たしている画素にはドットを形成することになり、所定の条件を満たしている場合に、第2の判断部で、改めてドット形成について判断する手間を省くことができる。
(4)更に、この場合に、前記第1の判断部において、前記ブロック内のいずれの画素の階調値も前記所定の条件を満たしていないと判断された場合には、前記第2の判断部は、前記ブロック内の画素の階調値に対応する画像データであって、前記計算された誤差の配分を受けた補正画像データの階調値を、誤差拡散用に用意された閾値である第2の閾値と比較して、ドットを形成するか否かを判断するものとして良い。こうすれば、第1の判断部において、前記ブロック内のいずれの画素の階調値も前記所定の条件を満たしていないと判断された場合、第2の判断部は、誤差拡散法により、ドットの形成を判断することができる。
(5)また、前記第1の判断部における所定の条件を満たしていると判断される割合は、当該画素の階調値において最終的にドットが形成される割合より低い割合として良い。この場合、誤差拡散でのドットの追加形成による階調誤差を修正できる。
(6)こうした印刷装置において、前記第2の判断部は、前記ブロック内の画素にドットを形成すると判断する割合を、当該ブロックに属する画素数の1/2未満としてよい。こうすることで、細線の途切れを防止するために必要なドットの形成を抑制することができ、濃度誤差が抑制される。
(7)また、前記第2の判断部は、前記各画素の階調値が前記所定の条件を満たしている場合には、満たしていない場合より、当該画素に対応したドットを形成しやすい条件を適用して前記判断を行ない、前記各画素の階調値が前記所定の条件を満たしていない場合には、満たしている場合により、当該画素に対応するドットを形成しにくい条件を適用して前記判断を行なうものとしてよい。こうすれば、第1の判断部の判断結果によりドットの形成のされやすさを決めて誤差拡散によるドット形成を行なうことができる。
(8)あるいは、前記第2の判断部は、誤差拡散用に用意された閾値である第2の閾値と比較してドットを形成すると判断した場合、当該ドットを、
・前記ブロック内の所定の位置の画素、
・前記ブロック内のランダムに定められる画素、または
・前記ブロック内の画素位置に対応するディザマスクに用意された閾値のうち、最も小さな値の閾値に対応する位置の画素
のいずれかにドットを形成すると判断するものとしてよい。こうすれば、何れの位置にドットを形成するかの判断を容易に行なうことができる。
(9)前記ハーフトーン処理は、前記第1の判断部の判断結果に基づいて、3以上の多値化の処理を行なうものとして良い。こうすれば、3値化以上の多値化を行なうことができ、印刷物の品質をアップできる。
(10)この場合、前記第1の判断部は、前記ディザマスクの前記ブロック内の画素に対応した複数の閾値を連続的に利用して、前記3以上の多値化の判断を行なうものとして良い。こうすれば、2値化用に開発されたディザマスクをそのまま利用して、3以上の多値化を行なうことができる。
(11)こうした印刷装置では、前記ハーフトーン処理において、前記第2の判断部は、低濃度のドットについて、ドットの形成の有無を判断するものとして良い。こうすれば、粒状性を悪化させる高濃度のドットを発生させることがない。この場合、複数種類のドットを形成可能であれば、最も小さいドットあるいは最も濃度の低いドットのみについて、ドットの形成を判断するものとしても良い。ドットの発生による粒状性の劣化を最小限に留めることができる。
(12)本発明の第2の実施形態として、画像を、複数画素からなるブロックを単位としてハーフトーン処理し、印刷する印刷方法が提供される。この方法は、前記複数各々の階調値が所定の条件を満たしているか否かの判断である第1の判断を行ない、前記第1の判断の判断結果に基づいて異なる条件を適用し、前記複数画素の少なくとも一つにドットを形成するか否かの判断である第2の判断を行ない、前記ブロックを単位として、前記第2の判断の判断結果により生じる階調誤差の計算と、該計算された誤差の未処理画素への配分とを行ない、前記第2の判断の判断結果によりドットの形成を行なうものとしてよい。こうすることで、ブロックを単位とした誤差拡散による高速処理と、誤差拡散を伴う画像の高い再現性とを両立させたハーフトーン処理による印刷が可能となる。
(13)本発明の第3の実施形態として、画像を、複数画素からなるブロックを単位としてハーフトーン処理する画像処理装置が提供される。この画像処理装置は、前記複数画素各々の階調値が所定の条件を満たしているか否かを判断する第1の判断部と、前記第1の判断部の判断結果に基づいて異なる条件を適用し、前記複数画素の少なくとも一つにドットを形成するか否かの判断を行なう第2の判断部と、前記ブロックを単位として、前記第2の判断部の判断結果により生じる階調誤差の計算と、該計算された誤差の未処理画素への配分とを、行なう誤差計算部と、を備えてよい。こうすることで、ブロックを単位とした誤差拡散による高速処理と、誤差拡散を伴う画像の高い再現性とを両立させたハーフトーン処理が可能となる。
(14)本発明の第4の実施形態として、画像を、複数画素からなるブロックを単位としてハーフトーン処理するプログラムが提供される。このプログラムは、 前記複数各々の階調値が所定の条件を満たしているか否かを判断である第1の判断を行なう機能と、
前記第1の判断の判断結果に基づいて異なる条件を適用し、前記複数画素の少なくとも一つにドットを形成するか否かの判断である第2の判断を行なう機能と、
前記ブロックを単位として、前記第2の判断の判断結果により生じる階調誤差の計算と、該計算された誤差の未処理画素への配分とを行なう機能と、前記複数各々の階調値が所定の条件を満たしているか否かを判断である第1の判断を行なう機能と、前記第1の判断の判断結果に基づいて異なる条件を適用し、前記複数画素の少なくとも一つにドットを形成するか否かの判断である第2の判断を行なう機能と、前記ブロックを単位として、前記第2の判断の判断結果により生じる階調誤差の計算と、該計算された誤差の未処理画素への配分とを行なう機能と、をコンピューターにより実現させるものであって良い。
上述した本発明の各形態の有する複数の構成要素はすべてが必須のものではなく、上述の課題の一部又は全部を解決するため、あるいは、本明細書に記載された効果の一部又は全部を達成するために、適宜、前記複数の構成要素の一部の構成要素について、その変更、削除、新たな他の構成要素との差し替え、限定内容の一部削除を行なうことが可能である。また、上述の課題の一部又は全部を解決するため、あるいは、本明細書に記載された効果の一部又は全部を達成するために、上述した本発明の一形態に含まれる技術的特徴の一部又は全部を上述した本発明の他の形態に含まれる技術的特徴の一部又は全部と組み合わせて、本発明の独立した一形態とすることも可能である。
本発明は、印刷装置や画像データ処理装置以外の種々の形態で実現することも可能である。例えば、印刷装置の製造方法や印刷装置の制御方法、その制御方法を実現するコンピュータプログラム、そのコンピュータプログラムを記録した一時的でない記録媒体等の形態で実現することができる。
本発明の第1実施形態としてのプリンター20の概略構成図。 プリンター20における印刷処理の流れを示すフローチャート。 第1実施形態としてのハーフトーン処理の流れを示すフローチャート。 実施態様で用いるディザマスク61を例示する説明図。 第1実施形態の第1の判断処理ルーチンを示すフローチャート。 ブロックと画素との関係を示す説明図。 実施態様で用いるディザマスク61が備えるノイズ特性を例示する説明図。 第1の判断処理の一例を示す説明図。 第1実施形態の第2の判断処理ルーチンを示すフローチャート。 ブロック間の誤差拡散の割合を示す説明図。 第1実施形態の変形例1としての第2の判断処理ルーチンを示すフローチャート。 変形例1における閾値THeの一例を示すグラフ。 変形例1における閾値THeの他の例を示すグラフ。 第2実施形態における入力画像の画素と出力画像の画素との関係を示す説明図。 第2実施形態における入力階調値Dsと大中小ドットの形成の割合を示す大中小データとの関係を例示するグラフ。 第2実施形態の第1の判断処理ルーチンを示すフローチャート。 第2実施形態の第2の判断処理ルーチンを示すフローチャート。
A.第1実施形態:
本発明の第1実施形態について説明する。
A−1.装置構成:
図1は、本発明の印刷装置の第1実施形態としてのプリンター20の概略構成図である。プリンター20は、双方向印刷を行なうシリアル式インクジェットプリンタであり、図示するように、プリンター20は、紙送りモータ74によって印刷媒体Pを搬送する機構と、キャリッジモータ70によってキャリッジ80をプラテン75の軸方向に往復動させる機構と、キャリッジ80に搭載された印刷ヘッド90を駆動してインクの吐出及びドット形成を行なう機構と、これらの紙送りモータ74,キャリッジモータ70,印刷ヘッド90及び操作パネル99との信号のやり取りを司る制御ユニット30とから構成されている。
キャリッジ80をプラテン75の軸方向に往復動させる機構は、プラテン75の軸と平行に架設され、キャリッジ80を摺動可能に保持する摺動軸73と、キャリッジモータ70との間に無端の駆動ベルト71を張設するプーリ72等から構成されている。
キャリッジ80には、カラーインクとして、シアンインクC、マゼンタインクM、イエロインクY、ブラックインクK、をそれぞれ収容したカラーインク用のインクカートリッジ82〜85が搭載される。キャリッジ80の下部の印刷ヘッド90には、上述の各色のカラーインクに対応するノズル列が形成されている。キャリッジ80にこれらのインクカートリッジ82〜87を上方から装着すると、各カートリッジから印刷ヘッド90へのインクの供給が可能となる。なお、上記4色のインクに、更にライトシアンインクLc、ライトマゼンタインクLmを加えた6色インクを用いてもよい。
制御ユニット30は、CPU40や、ROM51、RAM52、EEPROM60がバスで相互に接続されて構成されている。制御ユニット30は、ROM51やEEPROM60に記憶されたプログラムをRAM52に展開し、実行することにより、プリンター20の動作全般を制御するほか、入力部41、ハーフトーン処理部42、印刷部46としても機能する。ハーフトーン処理部42の機能は、第1の判断部の下位概念に相当する比較部43、第2の判断部の下位概念に相当する誤差拡散部44としての機能を含んでいる。EEPROM60には、ディザマスク61と、誤差拡散閾値テーブル62とが記憶されている。ハーフトーン処理やこれに用いるディザマスク61については、後で詳しく説明する。誤差拡散閾値テーブル62は、第1実施形態では特に用いないが、その変形例1で用いるので、併せてEEPROM60内にあるものとして示した。その内容については、変形例1において詳しく説明する。
制御ユニット30には、メモリカードスロット98が接続されており、メモリカードスロット98に挿入したメモリカードMCから画像データORGを読み込んで入力することができる。本実施形態においては、メモリカードMCから入力する画像データORGは、レッド(R)、グリーン(G)、ブルー(B)の3色の色成分からなるデータである。
以上のようなハードウェア構成を有するプリンター20は、キャリッジモータ70を駆動することによって、印刷ヘッド90を印刷媒体Pに対して主走査方向に往復動させ、また、紙送りモータ74を駆動することによって、印刷媒体Pを副走査方向に移動させる。制御ユニット30は、キャリッジ80が往復動する動き(主走査)や、印刷媒体の紙送りの動き(副走査)に合わせて、印刷データに基づいて適切なタイミングでノズルを駆動することにより、印刷媒体P上の適切な位置に適切な色のインクドットを形成する。こうすることによって、プリンター20は、印刷媒体P上にメモリカードMCから入力したカラー画像を印刷することが可能となっている。
A−2.印刷処理:
プリンター20における印刷処理について説明する。図2は、プリンター20における印刷処理の流れを示すフローチャートである。ここでの印刷処理は、ユーザが操作パネル99等を用いて、メモリカードMCに記憶された所定の画像に対する印刷指示操作を行なうことで開始される。印刷処理を開始すると、CPU40は、まず、入力部41の処理として、メモリカードスロット98を介してメモリカードMCから印刷対象であるRGB形式の画像データORGを読み込んで入力する(ステップS110)。
画像データORGを入力すると、CPU40は、EEPROM60に記憶されたルックアップテーブル(図示せず)を参照して、画像データORGについて、RGB形式をCMYKLcLm形式に色変換する(ステップS120)。なお、色変換処理の前後に、必要に応じて、解像度変換を行なっても良い。
色変換処理を行なうと、CPU40は、ハーフトーン処理部42の処理として、画像データを各色のドットのON/OFFを画素毎に定めたドットデータに変換するハーフトーン処理を行なう(ステップS130)。ここでのハーフトーン処理の詳細については後述する。なお、本明細書では、「ハーフトーン処理」は、ドットのON/OFFの2値化処理に限らず、大ドット及び小ドットのON/OFFなど、多値化処理を含んだ階調数変換(低減)処理一般を意味している。また、ステップS130に供する画像データは、解像度変換処理やスムージング処理などの画像処理が施されたものであってもよい。
ハーフトーン処理を行なうと、CPU40は、プリンター20のノズル配置や紙送り量などに合わせて、ハーフとー処理されたドットの配列を、1回の主走査単位で形成するドットパターンのデータに並び替えるインターレース処理を行なう(ステップS150)。インターレース処理を行なうと、CPU40は、印刷部46の処理として、印刷ヘッド90、キャリッジモータ70、紙送りモータ74等を駆動し、印刷を実行する(ステップS160)。
A−3.ハーフトーン処理の概要:
上述したハーフトーン処理(ステップS130)について図3を用いて説明する。図示するように、この処理が開始されると、CPU40は、
・初期化の処理(ステップS132)
・処理対象特定処理(ステップS134)
・第1の判断処理(ステップS200)
・第2の判断処理(ステップS300)
・すべて完了か、の判断(ステップS136)
を順次実行する。
このハーフトーン処理の概要について説明する。初期化の処理は、ハーフトーン処理に必要な変数などを初期化する処理である。例えば、処理を開始する画素位置を画像の左上とするために、画素位置を示す変数(x,y)を(0,0)に初期化する処理などが含まれる。
初期化の処理が終了すると、次に、処理対象特定処理を実行する(ステップS134)。処理対象特定処理は、ハーフトーン処理が、すべての画素について順次実行されることから、後述する第1の判断処理(ステップS200)、第2の判断処理(ステップS300)が実行されるたびに、処理対象を更新する処理である。
処理対象特定処理を行なって、処理対象であるブロックを特定した後、着目しているブロックに含まれる4つの画素に対して第1の判断処理を行なう(ステップS200)。この判断処理は、各画素について、いわゆるディザ法を適用して、上述したディザマスク61として用意された閾値と、画素毎の画像データとの大小を判断する処理である。
第1の判断処理(ステップS200)を終了すると、次にこの第1の判断処理の結果を利用する第2の判断処理(ステップS300)を行なう。第2の判断処理は、ドットの形成を最終的に判断する処理である。第2の判断処理は、いわゆる誤差拡散法を適用して、誤差拡散用の閾値とブロック全体の画像データとの大小を判断して、第1の判断処理の結果も併せて、ドットの形成について判断する。
その後、全てのブロック及びそのブロックに属する画素についてのハーフトーン処理が完了したかを判断し(ステップS136)、完了するまで、図3の処理を繰り返す。従って、処理が完了していないと判断した場合には、ステップS134に戻り、処理対象のブロックを更新し、第1,第2の判断処理を繰り返すことになる。繰り返し実行されるこれらの処理、つまり初期化の処理(ステップS132)、処理対象特定処理(ステップS134)、第1,第2の判断処理(ステップS200,S300)について、以下、詳しく説明する。
[初期化の処理]
CPU40が行なう初期化の処理(ステップS132)とは、ハーフトーン処理に必要な変数を初期化する処理である。初期化される変数としては、以下がある。
(1)画素位置(x,y):処理しようとする画像の処理開始の画素の位置を、画像の左上、即ち主走査方向をx、副走査方向をyとして、(0,0)に初期化する。
(2)ブロック番号(Bnx,Bny):本実施形態では、2画素×2画素の計4画素を一つのブロックとして処理を行なう。このブロック番号を初期値(0,0)に設定する。ブロック番号と画素の位置との関係は後述する。
(3)ディザマスク上の閾値の位置(xm,ym):ディザマスク61に格納された閾値の読み出し位置を示す変数である。この変数(xm,ym)を(0,0)に初期化する。
(4)ブロック毎の拡散誤差の値ed[Bnx,Bny]:本実施形態では、ドット形成の有無により生じた濃度誤差は、ブロックを単位として周辺のブロックに拡散されるので、この拡散誤差を格納するバッファをブロック毎に備える。初期化の処理では、このバッファの値をすべて0とする。
(5)結果値Result[x,y]:位置(x,y)の画素について、第1の判断処理(ステップS200)による判断結果を示す。この結果値を、すべて値0に初期化する。
(6)ドット形成の有無を示す出力バッファOUT[x,y]を、ドットオフを示す値0に初期化する。
ハーフトーン処理においては、位置(x,y)の画素の階調値を、data[x,y]と表記する。この階調値は、8ビットで表わされるので、画素の階調値は、0〜255の値をとる。また、後述する第1の判断処理で用いられるディザマスク61は、図4(A)に示すように、主走査方向に256画素分、副走査方向に64画素分の大きさを有する。このディザマスク61の各位置に格納されている閾値THn_dも本実施形態では8ビットで表わされ、閾値は1〜255の値をとる。図4における太線の枠取りは、2画素×2画素のブロックに対応している。なお、説明を簡便なものとするために、画像の縦横の大きさ、ディザマスクの縦横の大きさなどは、すべて偶数として扱う。
[処理対象特定処理]
初期化の処理(ステップS132)を終えると、次に処理対象特定処理を行なう(ステップS134)。本実施形態では、ハーフトーン処理は、2×2画素からなるブロックを単位として行なう。画像の左上のブロック(0,0)から、処理するブロック位置を、主走査方向(x方向)に順次インクリメントして行ない、主走査方向の右端まで処理すると、副走査方向(y方向)の位置をインクリメントし、再度左端から順に行なう。副走査方向位置が同じである画素の並びを「ラスタ」とも言う。処理をブロック単位で行なうことから、本実施形態のハーフトーン処理は、2ラスタ分ずつ行なわれることになる。1ブロックの並び(2ラスタ)の処理が完了すると、次のブロックの並び(2ラスタ)の処理に移る。このため、以下の説明では、通常の座標表示とは異なり、処理中のブロック位置および画素の位置を(y,x)の順に示す。また、画素の位置については、ブロックの番号Bnを用いて表すことがある。ブロックの開始位置(0,0)と画素の開始位置(0,0)は、何れも画像の左上である。このため、ブロック番号と画素位置の関係は、各ブロックの左上の画素を例に取ると、
y=2・Bny
x=2・Bnx
となる。
処理対象特定処理(ステップS134)では、ハーフトーン処理する画素を含むブロックの番号をまず特定する。ブロック番号(Bny,Bnx)の初期値は(0,0)であり、1ブロックに含まれる4画素のハーフトーン処理が完了すると、主走査方向にブロック位置を進め(Bnx←Bnx+1)、2つのラスタについての処理が完了すると、主走査方向のブロック位置を初期化し(Bnx←0)、副走査方向のブロック位置を1だけ進める(Bny←Bny+1)。処理対象のブロックを特定すると、次にそのブロック内の画素データを特定する。この処理は、処理するブロックに含まれる4つの画素、即ち(y,x)を基準位置とすれば、(y,x)、(y,x+1)、(y+1,x)、(y+1,x+1)の4つの画素からなるブロックの画像データを確定する処理である。これら4つの画素の位置は、ブロック番号(Bny,Bnx)を用いれば、次のように表すことができる。
(y,x) =(2・BnY,2・Bnx)
(y,x+1) =(2・BnY,2・Bnx+1)
(y+1,x) =(2・BnY+1,2・Bnx)
(y+1,x+1)=(2・BnY+1,2・Bnx+1)
また、各位置の画素の階調値を表す画像データは、data[y,x]のように表わすものとする。したがって、処理する4つの画素が含まれるブロック全体の画像データdata[Bny,Bnx]は、
data[Bny,Bnx]=data[y,x]+data[y,x+1]+data[y+1,x]+data[y+1,x+1]+ed[Bny,Bnx]
と表わされる。ed[Bny,Bnx]とは、初期化の処理で説明したように、ハーフトーン処理の対象となったブロックに対して周辺の処理済みブロックから拡散されてきた階調誤差である。階調誤差は、複数のブロックから拡散されてくる場合があり、その値は、正の値と負の値の両方を取り得る。従って、ed[Bny,Bnx]は、処理の時点で、それまでに周辺のブロックから拡散された誤差の総和に相当する。また、処理対象特定処理の最後に、第1の判断処理での判断結果をカウントするカウンタConを値0にリセットする。以上により、処理対象特定処理が完了する。
[第1の判断処理]
処理対象のブロックの特定を終了した後、第1の判断処理を行なう(ステップS200)。この処理の詳細を図5に示した。第1の判断処理を開始すると、CPU40は、まずブロック(Bny,Bnx)内の画素を特定する処理を行なう(ステップS201)。各ブロックには、2×2、つまり4画素が含まれている。このブロック内の4つの画素について、順次、処理を行なうので、予め定めた順序に沿って、画素を特定するのである。
ブロックと画素の関係を図6に示した。図6(A)は、ブロック位置(Bny、Bnx)と画素位置(y,x)との関係を示している。また、図6(B)は、一つのブロック内に含まれる2×2の画素の処理順序を示している。ブロック内の左上(PT=1)、右上(PT=2)、左下(PT=3)、右下(PT=4)の順である。以下の説明では、画素を符号PTによって特定するが、実際の画素位置との対応は、図6(C)に示したように、
PT=1:(y,x) =(2・BnY,2・Bnx)
PT=2:(y,x+1) =(2・BnY,2・Bnx+1)
PT=3:(y+1,x) =(2・BnY+1,2・Bnx)
PT=4:(y+1,x+1)=(2・BnY+1,2・Bnx+1)
となる。
この順序に従って、画素を特定すると、次に対応するディザマスクから閾値THn_dを取得する処理を行なう(ステップS202)。処理する画素に対応する閾値の位置(ym,xm)は、
ym=mod(y,64)
xm=mod(x,256)
として求める。ここで、関数mod(a,b)は、値aを値bで除算した際の余りを意味する関数である。64は、y方向のディザマスク61の大きさを、256は、x方向のディザマスク61の大きさである。
ディザマスク61には、第1の閾値に相当する複数の閾値THn_dが配列されている。第1の閾値THn_d(以下、単に閾値THn_dとも呼ぶ)は、本願の「第1の閾値」の下位概念に相当する。本実施形態では、閾値THn_dは、1〜255までの値をとる。各閾値THn_dは、この閾値との比較により形成されるドットの空間周波数が、いわゆるブルーノイズ特性となるように配置されている。
図7は、こうしたディザマスク61が備えるノイズ特性を例示する説明図である。図には、ブルーノイズ特性およびグリーンノイズ特性を有するディザマスクの各画素に設定されている閾値の空間周波数特性を概念的に例示した。ディザマスクにおけるブルーノイズ特性は、高い周波数領域に最も大きな周波数成分を有する特性で、例えばトッド密度が50%近辺の場合は、1周期の長さが2画素付近の高い周波数領域に最も大きな周波数成分を有する。これは、高周波領域において感度が低いという人間の視覚特性を考慮して、高周波領域に最も大きな周波数成分が発生するように閾値の格納位置が調整されていることを意味する。こうしたブルーノイズ特性を備えたディザマスクを用いてドットを発生させると、ドットの分散性に優れた画像が得られる。
図7には、さらに、グリーンノイズ特性を破線の曲線として例示している。図示されているように、グリーンノイズ特性は、ブリーノイズ特性よりやや低周波側に最も大きな周波数成分を有するもので、画素サイズが十分に小さければグリーンノイズ特性でも粒状感の感じられない良好な画像が得られる。ディザマスク61は、こうしたブルーノイズ特性やグリーンノイズ特性などの所定の空間周波数特性を有するものとされている。
更に、本実施形態においては、ディザマスク61は、所定のドット形成特性を有している。すなわち、双方向印刷におけるキャリッジ80の往動で形成されるドット群のドットパターンと、復動で形成されるドット群のドットパターンと、これらを併せた全体のドット群のドットパターンいずれもが、ブルーノイズ特性を有している。かかる技術は、例えば、特開2007−15359号公報に記載されている。なお、ディザマスク61は、上述の往復動ごとのグループに代えて、または、これに加えて、キャリッジ80の複数回の主走査のうちのいずれの主走査でドットが形成されるかを示す主走査グループごとに、ブルーノイズ特性を備えるものであってもよい。
こうして、処理しようとする画素の特定(ステップS201)と、その画素位置に対応する閾値THn_dの取得(ステップS202)とを済ませると、次にその画素の画像データdata[PT]と閾値THn_dとの大小を判定する処理を行なう(ステップS205)。
図8は、ステップS205の判断を説明するための説明図である。図8(A)には、y方向のブロック番号Bnyが7と8の計4ラスタのうち、x方向のブロック番号Bnxが2から5までの計8ブロック(32画素)が示されている。また、図8(B)には、この8ブロックの各画素位置に対応したディザマスク61の閾値、すなわちディザマスクの縦方向の番号ymが14から17まで、横方向の番号xmが4から11までの計32個の閾値THn_dが例示されている。図8(B)に示した閾値は、図4(B)に例示した閾値と同じである。
仮に、処理しているブロック(Bny,Bnx)が(7,3)であり、処理している画素PTが1であれば、図7(A)のハッチングを施した画素、つまり画素位置(y,x)が(2・Bny,2・Bnx)=(14,6)の画素の階調データdata[14,6]と、ディザマスク61の対応する位置(ym,xm)=(14,6)の閾値252とを比較することになる。
ステップS205での判断結果が「YES」、すなわち着目している画素の階調データdata[PT]が閾値THn_d以上であれば、結果値Result[PT]に値1を入れ(ステップS206)、更に判断結果が「YES」となった画素の数をカウントする変数Conを値1だけインクリメントする(ステップS207)。
他方、ステップS205での判断が「NO」、すなわち着目している画素の階調データdata[PT]が閾値THn_d未満であれば、結果値Result[PT]や変数Conの値の設定は何も行なわない。その後、ブロック内のすべての画素についての処理が完了したかを判断し(ステップS209)、完了していなければ、ステップS201に戻って上記の処理を繰り返す。
画素PTとして左上(PT=1)の画素の処理が終われば、次は右上の画素(PT=2)の画素についての処理を行なう。この時、画素位置(y,x+1)は(2・Bny,2・Bnx+1)=(14,7)となり、その画素の階調データdata[14,7]と、ディザマスク61の対応する位置(ym,xm)=(14,7)の閾値51とを比較することになる。比較結果により、結果値Result[PT]の値の設定やカウント用の変数Conのインクリメントなどを行なうことは、上述した通りである。
同様に、左下画素(PT=3)についての処理、右下画素(PT=4)についての処理を完了すると、ステップS209での判断は、「YES」となり、第1の判断処理ルーチンを終了する。
以上の処理により、ブロックを単位として、当該ブロックに属する4つの画素PTについて、その階調データを、ディザマスク61の対応する位置の閾値THn_dとそれぞれ比較し、階調データが大きければ、結果値Result[PT]に値1を設定し、カウント用の変数Conを値1だけインクリメントする処理が行なわれる。比較結果が「NO」の場合には、結果値Result[PT]は初期値0に保たれる。階調データと閾値の比較の結果、結果値Result[PT]が値1に設定された画素を、図8(C)に黒塗りで例示した。
[第2の判断処理]
上述した第1の判断処理ルーチンを完了すると、続けて第2の判断処理(図3、ステップS300)を実行する。この処理の詳細を図9に示した。図9に示した第2の判断処理ルーチンが開始されると、まず処理しているブロック内に結果値Result[PT]が値1の画素があるか否かを判断する(ステップS302)。
結果値Result[PT]が値1の画素がある場合には、その画素にドットを形成すると判断する(ステップS304)。具体的には、ドット形成の有無を示す出力バッファOUT[PT]にドット形成を示す値1を書き込む。
他方、ステップS302において、ブロック内の4つの画素に関し、結果値Result[PT]=1の画素が一つもないと判断されれば、次に、ブロック内の階調データの総和、すなわちdata[Bny,Bnx]が、誤差拡散法における閾値THe以上であるか否かの判断を行なう(ステップS306)。前述したように、data[Bny,Bnx]は、
data[Bny,Bnx]=data[y,x]+data[y,x+1]+data[y+1,x]+data[y+1,x+1]+ed[Bny,Bnx]
として計算されているので、周辺のブロックから拡散されてきた濃度誤差を反映した値である。
ステップS306で判断に用いられる閾値THeは、本願の第2の閾値の下位概念に相当する。第1実施形態では、第2の閾値THeは、後述するように、通常の誤差拡散において用いられる値(階調範囲の中央値)に固定されている。ブロック全体の階調データdata[Bny,Bnx]が閾値THe以上であれば、ブロック内の所定の画素にドットを形成するとし、所定の画素に対応した出力バッファOUT[PT]にドット形成を示す値1を書き込むと共に、カウンタConを値1だけインクリメントする(ステップS308)。所定の画素は、本実施形態では、ブロック内の左上の画素(PT=1)とした。もとより、ブロック内の4つの画素のうち、階調データの一番大きな画素にドットを形成するものとしても良い。階調データが一番大きな画素にドットが形成されると、元の画像データにおいて階調値が高いところにドットが形成され易いことになるからである。あるいは、対応するディザマスクの閾値が一番小さい位置に対応する画素に形成するものとしても良い。ディザマスクの閾値THn_dが小さければ、対応する画素にはドットが形成され易くなり、ディザマスク61の持つ特性を反映しやすくなるからである。更に、ドットを形成する画素は、ランダムに決めても差し支えない。
上記の処理の後、誤差計算処理(ステップS340)と誤差拡散処理(ステップS350)とを行なう。誤差計算処理は、以下に示す処理の後に行なわれる。
(あ)結果値Result[PT]が値1の画素にドットを形成するとしたステップS304の処理、
(い)所定の画素にドットを形成するとしたステップS308の処理、あるいは、
(う)ブロック内の画像データの総和、すなわちdata[Bny,Bnx]が、誤差拡散法における閾値THe未満であると判断されてドットを形成しないとしたステップS306の処理。
誤差計算処理(ステップS340)では、処理したブロックで発生した濃度誤差ed[Bny,Bnx]を求める。濃度誤差ed[Bny,Bnx]は、次式により求める。
ed[Bny,Bnx]=data[Bny,Bnx]−Con・ONv
ここで、ONvは、一つの画素にドットが形成された場合や形成されなかった場合に、その画素に実現されたとみなす濃度値に対応する値である。本実施形態では、ドットが形成された場合の値をオンバリューと呼び、値255としている。カウンタConは、ブロック内に形成するとされたドットの数を示している。従って、処理したブロックの濃度誤差ed[Bny,Bnx]は、
(あ)の場合には、ブロック内の画像データの総和data[Bny,Bnx]から、ブロック内で形成されたドットの数Conとオンバリューの乗算値を、減算した値となり、
(い)の場合には、ブロック内の画像データの総和data[Bny,Bnx]から、ブロック内で形成された1個のドットのオンバリューを、減算した値となり、
(う)の場合には、ブロック内の画像データの総和data[Bny,Bnx]となる。
上記(う)のケースで、周辺画素から拡散された濃度誤差を含む画像データの総和data[Bny,Bnx]がそのまま濃度誤差ed[Bny,Bnx]となるのは、ドットが形成されないために、Con・ONv=0とみなせるからである。上記(あ)(い)のケースでは、演算結果がマイナスになる場合があり、この場合には、周辺画素にマイナスの誤差が拡散されることになる。
ブロック全体の画像データよりもブロック内に形成されたドットにより実現された濃度の方が高ければ、濃度誤差はマイナスの値となる。ブロック全体の画像データよりもブロック内に形成されたドットにより実現された濃度の方が低ければ、濃度誤差はプラスの値となる。そこで、次のこうして求めた濃度誤差ed[Bny,Bnx]を隣接するブロックに配分する誤差拡散処理(ステップS350)を実行する。
図10は、誤差拡散マスクの一例を示す説明図である。*印を付したブロック(Bny,Bnx)がハーフトーン処理を行なっている対象ブロックである。このブロックにおいてステップS340で計算した誤差ed[Bny,Bnx]を、周辺の6つのブロックに拡散する。配分の割合は、対象ブロックの右隣(次に処理するブロック)と直下に対して1/4ずつ、他の4ブロックについては、1/8ずつである。具体的には、
ブロック(Bny,Bnx+1)に対して、1/4
ブロック(Bny,Bnx+2)に対して、1/8
ブロック(Bny+1,Bnx−2)に対して、1/8
ブロック(Bny+1,Bnx−1)に対して、1/8
ブロック(Bny+1,Bnx)に対して、1/4
ブロック(Bny+1,Bnx+1)に対して、1/8
の割合で、濃度誤差ed[Bny,Bnx]を配分し、誤差拡散を行なう。
こうして分配された濃度誤差は、各ブロックについて用意された拡散誤差バッファに加算された上で保存され、各ブロックでの第2の判断処理に用いられる。以上で第2の判断処理を終了する。その後、全てのブロックについての上記処理が完了したかを判断し(図3、ステップS136)、全てのブロックについての処理が完了するまで、上述した処理対象特定処理(ステップS134)、第1の判断処理(ステップS200)、第2の判断処理(ステップS300)を繰り返す。
[第1実施形態の効果]
以上説明した第1実施形態によれば、以下の作用効果を奏する。
〈1〉第2の判断処理に先立って、ディザマスクを用いた第1の判断処理を行なう。この結果、ディザマスクの閾値THn_dより大きい階調値の画素には、ドットが形成されるので、ディザマスク61の特性を反映したドット配置が可能となる。
〈2〉第1の判断処理によって、処理しているブロック内の画素の何れにもドットが形成される条件が成立していないと判断された場合には、誤差拡散法により、周辺のブロックから拡散されてきた濃度誤差も含めて、ドットを形成すべき条件が成立しているかを、第2の判断しょりにより判断している。従って、例えば画像に細線が引かれている箇所などで、ディザマスクの階調値の分布のためにドットが形成されると判断されなかった場合に、誤差拡散法により、必要なドットが形成される。
〈3〉上記〈2〉の場合に、誤差拡散処理をブロック単位で行なうので、誤差拡散の計算処理を低減でき、処理時間を短縮できる。
〈4〉第2の判断処理により形成するドットはブロック内で最大一つなので、第2の判断処理により、いわば追加的に形成するドットの数を抑制することができる。
[第1実施形態の変形例1]
上記実施形態では、第1の判断処理において、いずれかの画素の階調値がディザマスクの対応する位置の閾値以上であれば、結果値Result[PT]を値1にセットし、その画素にドットを形成すると判断し、第2の判断処理での閾値THeとの大小の判断は行なわない。第2の判断処理において、誤差拡散法を用いたドット形成の判定(図9、ステップS306)を行なうのは、第1の判断処理において何れの画素でも、結果値Result[PT]が値1にされなかった場合に限られる。これに対して、変形例1では、第1の判断処理での結果の如何に関わらず、閾値THeとの大小関係の判断を行なうものとしている。以下、変形例における第2の判断処理について説明する。変形例1においては、印刷処理の全体(図2)、ハーフトーン処理の全体(図3)および第1の判断処理(図5)は、第1実施形態と同様である。
変形例1では、第2の判断処理ルーチンとして、図11に示した処理を実行する。図11において、第1実施形態における第2の判断処理と同じ処理については、同一の符号を付し、詳細な説明は省略する。変形例1の第2の判断処理ルーチンを開始すると、CPU40は、まずブロック内の画素を特定する処理を行なう(ステップS310)。ブロック内の画素PTは、図6(B)に示したように、第1の判断処理と同様の順序で特定する。
画素を特定すると、第1の判断処理におけるその画素の結果値Result[PT]が値1であるか否かを判断する(ステップS312)。結果値Result[PT]が値1である場合には(ステップS312:「YES」)、次に第2の閾値である閾値THeを、低閾値THe_Lとする処理を行なう(ステップS314)。他方、結果値Result[PT]が値1でなければ(ステップS312:「NO」)、閾値THeを高位閾値THe_Hとする処理を行なう(ステップS316)。
ステップS314およびS316で第2の閾値THeに設定され。低閾値THe_Lと高位閾値THe_Hとの一例を図12に示した。低閾値THe_Lと高位閾値THe_Hとは、何れも着目している画素の画像データである注目画素データDnに応じて設定される。図12に示した例では、低閾値THe_Lは、注目画素データDnによらず−96に設定されており、高位閾値THe_Hは、注目画素データDnと共に増加する正の値に設定されている。これらの低閾値THe_Lと高位閾値THe_Hとは、図1に示した誤差拡散閾値テーブル62に記憶されている。
結果位置Result[PT]が値1であるとは、第1の判断処理において、その画素PTの階調値である画像データが、ディザマスク61の対応する位置(ym,xm)の閾値THn_d以上であったことを示している。即ち、ディザマスク61に従えばその画素にドットを形成すべき条件が成立していると言うことである。そこでこの場合には、後述する誤差拡散の判断において、ドットが形成される易くなるように、閾値THeの値を小さくし、そうでなければ、ドットが形成されにくくなるように、閾値THeの値を大きくするのである。
誤差拡散に用いる閾値THeの設定を行なった後、画素PTの画像データdata[PT]に、そのブロックの拡散誤差ed[Bny,Bnx]の1/4を加えて、補正画像データdataX[PT]を求める処理を行なう(ステップS317)。ブロックの拡散誤差ed[Bny,Bnx]は、それまでにハーフとヘン処理されたブロックから拡散されてきた誤差の総和を示しており、その1/4を各画素に配分するのである。その後、この補正画像データdataX[PT]が、閾値THe以上か否かの判断を行なう(ステップS318)。補正画像データdataX[PT]が閾値THe以上であれば、その画素にドットを形成するとする(ステップS320)。具体的には、出力バッファOUT[PT]に値1を設定する。ステップS318において、補正画像データdataX[PT]が閾値THe以上でないと判断した場合には、その画素にはドットを形成しないとして、ステップS320の処理を行なわない。
その後、全ての画素PTについて、上記の処理を行なったかを判断し(ステップS322)、最後の画素(PT=4)までの処理が完了するまで、上述した処理を繰り返す。全ての画素について処理が完了すれば(ステップS322:「YES」)、図9を用いて説明した誤差拡散処理(ステップS340)と誤差拡散処理(ステップS350)とを行ない、第2の判断処理を終了する。
[変形例1の効果]
以上説明した変形例によれば、以下の効果を奏する。
〈イ〉ディザマスク61の閾値との比較結果により、誤差拡散法による閾値THeを自由に設定できるので、ディザ法と誤差拡散法との組み合わせ、つまり処理する画素の階調値に応じて、どの階調範囲でディザ法による処理をどの程度の割合で行ない、どの階調範囲において誤差拡散法による処理をどの程度の割合で行なうかを自由に設計することができる。
〈ロ〉低位閾値THe_Lをマイナスの値としているので、第1の判断処理において、判断している画素の階調値がディザマスクの閾値THn_dより大きい場合には、誤差拡散における判断によってもドットを形成することになる。したがって、ディザマスク61の特性を反映したドット配置が実現される。
〈ハ〉その上で、更に誤差が蓄積されていれば、誤差拡散法の判断により、ドットが形成される。したがって、例えば画像に細線が引かれている箇所などで、ディザマスクの階調値の分布のためにドットが形成されると判断されなかった場合に、誤差拡散法により、必要なドットを形成することができる。
〈ニ〉誤差拡散処理をブロック単位で行なうので、誤差拡散の計算処理を低減でき、処理時間を短縮できる。
上記変形例1では、図12に示したように、低位閾値THe_Lをマイナスの一定値に、高位閾値THe_Hを画素データDnと共に漸増する値とした。これとは別に、低位閾値THe_Lおよび高位閾値THe_Hを、図13に例示するように、共に漸増するように設定しても良い。図13に示した例では、低位閾値THe_Lは、画素データDnが低い領域では、マイナスの値をとるものとした。こうすれば階調値の低い領域ではディザ法の結果に近いドット配置となり、階調値の高い領域では誤差拡散法の結果に近いドット配置となる。
B.第2実施形態:
次に本発明の第2実施形態について説明する。第2実施形態では、以下の点で第1実施形態と異なっている。
〈i〉図14に示すように、画像における1画素が、印刷される画像の4画素(2×2)に対応している。具体的に言えば、印刷しようとする画像の解像度が、x方向、y方向とも360dpiであるのに対して、印刷される画像の解像度はx,y方向のいずれについても720dpiである。
〈ii〉印刷ヘッド90によって、印刷媒体P上に形成可能なドットが、大中小の3種類であるため、1画素当たり、「大ドット」「中ドット」「小ドット」「ドットなし」の4階調を表現可能である。
入力側と出力側の解像度が異なるため、ブロックを単位として見た場合、出力側に合わせて、入力側にも同じ階調値の画素が4つあるものとして扱う。一つのブロックについて処理を行なう際には、第1実施形態と同様、左上の画素から右下の画素まで、順に同じ処理を4回繰り返す。
第2実施形態では、第1実施形態と同様に、印刷処理(図2)およびハーフトーン処理(図3)を行なう。ハーフトーン処理では、第1実施形態と同様に、第1,第2の判断処理を行なうが、これらの処理に先だって、処理対象特定処理(図3、ステップS134)において、処理する画像の画素を特定し、第1の判断処理に用いるディザマスクの閾値の位置を特定すると共に、その画素の入力階調値Dsから、大中小ドットデータを求める処理が行なわれる。この処理のイメージを図15に示した。第2実施形態では、画像の各画素について、入力階調値Dsが与えられると、まずその階調値Dsを、大中小の各ドットによって実現すべき割合に変換する。
図15に示したように、入力階調値Dsが0近傍では、小ドットのみが形成され、入力階調値Dsが増加するにつれて、小ドットが形成される割合は増加する。ここでドットが形成される割合とは、同一の入力階調値Dsが続いた場合、つまりべた塗りの場合に、所定個数Ngの印刷画素に形成されるドット数Ndのバーセント(100×Nd/Ng)を言う。入力階調値Dsが所定の階調値である第1の階調値に達すると、中ドットの形成が始まって漸増し、これに合わせて小ドットが形成される割合は低下していく。同様に、入力階調値Dsが第1の階調値より大きな第2の階調値に達すると、大ドットの形成が始まって漸増し、これに合わせて中ドットが形成される割合は低下していく。小ドットが形成される割合をdata_s、中ドットが形成される割合をdata_m、大ドットが形成される割合をdata_l、としてそれぞれ表記し、更にこれらの値data_s,data_m,data_lを全て加えた値を、合計値data_tと表記する。入力階調値Dsに対する小中大ドットの形成の割合を示すこの関係は、LUTとして、EEROM60に記憶されている。
処理対象特定処理(ステップS134)では、入力階調値Dsを読み込み、EEROMに記憶されたLUTを参照して、小中大ドットが形成される割合を示すデータdata_s,data_m,data_lを取得する。その上で、図16に示した第2実施形態における第1の判断処理ルーチンを実行する。この処理は、第1実施形態同様、ブロック毎に行なわれる。図14に示したように、一つのブロックに含まれる一つの画素について、CPU40は、まず大ドットを形成する割合を示すdata_lがディザマスク61の対応する位置の閾値THn_d以上であるか否かの判断を行なう(ステップS210)。
data_lが閾値THn_d以上であれば、その画素PTの結果値Result[PT]に大ドットを形成することを示す値Ldotを入れる(ステップS211)。他方、data_lが閾値THn_d未満であれば、次に、data_lとdata_mとの合計値が、同じ閾値THn_d以上であるか否かの判断を行なう(ステップS2114)。data_l+data_mが閾値THn_d以上であれば、その画素PTの結果値Result[PT]に中ドットを形成することを示す値Mdotを入れる(ステップS215)。
更に、data_l+data_mが閾値THn_d未満であれば、次に、合計値data_tが、同じ閾値THn_d以上であるか否かの判断を行なう(ステップS2118)。data_tが閾値THn_d以上であれば、その画素PTの結果値Result[PT]に小ドットを形成することを示す値Sdotを入れる(ステップS219)。上述したステップS210、S214、S218のいずれかの判断結果が「YES」となった場合であって、結果値Result[PT]に、Ldot,Mdot,Sdotのいずれかを入れた場合には、ドットを形成すべき条件が成立したものとして、ドット形成カウンタConを値1だけインクリメントする(ステップS220)。
上記の処理は、入力画素の階調値Dsが、大ドットを形成するほど大きいかをディザマスクの閾値THn_dと比較して判断し、順次、より小さいドットのデータを加えながら、同じ閾値THn_dとの比較を繰り返している。これは、いわゆるディザ連続と呼ばれる判断手法である。ディザ連続の考え方は、その画素の階調値が大ドットを形成するほどの大きさでない場合には、大中のドットの形成割合を示すデータを加えて、中ドットを形成する程度の大きさかを判断し、更にその画素の階調値が中ドットを形成するほどの大きさでない場合には、大中小ドットの形成割合の合計値で、小ドットを形成する程度の大きさを判断する、というものである。こうすることで、一つのディザマスクを用意するだけで、大中小ドットを適切に配置することができる。
上記の処理を終えると、ブロック内の全ての画素についての判断を終了したかを判断し(ステップS222)、4つの画素についての判断が終了するまで、上述した処理(ステップS210〜S222)を繰り返す。入力画素PTを順次処理しても入力画素の階調値Dsは同じ値をとるが、ディザマスク61から閾値を取得する位置は移動し、異なる閾値THn_dが取り出され、ステップS210、S214、S218での判断に供される。
図16に示した第1の判断処理ルーチンを完了すると、次に、図17に示した第2の判断処理ルーチンを実行する。この処理を開始すると、CPU40は、まずカウンタConが値1以上であるか否かの判断を行なう(ステップS330)。カウンタConは、現在処理しているブロック内で、第1の判断処理(図16)でドットが形成されるとされた数を反映している。従って、ステップS330のこの判断結果が「YES」であれば、そのブロックの中には、第1の判断処理により少なくとも1個のドットが形成されると判断されたことになるので、ステップS332に移行し、結果値Result≠0の画素にドットを形成する処理を行なう。形成されるドットは、結果値Result[PT]がLdotの画素PTでは大ドットであり、結果値Result[PT]がMdotの画素PTでは中ドットであり、結果値Result[PT]がSdotの画素PTでは小ドットである。
他方、カウンタConが値1以上でなければ、このブロック内にドットを形成するとの判断が、第1の判断処理では、なされなかったことになるので、次にこのブロック全体の画像データdata[Bny,Bnx]が、誤差拡散法用に用意された閾値THe以上か否かの判断を行なう(ステップS334)。ブロック全体の画像データdata[Bny,Bnx]が閾値THe以上であれば、所定画素にドットを形成する(ステップS336)。これらの処理は、第1実施形態の第2の判断処理ルーチン(図9)のステップS306、S308の処理に対応している。既述したように、data[Bny,Bnx]は、
data[Bny,Bnx]=data[y,x]+data[y,x+1]+data[y+1,x]+data[y+1,x+1]+ed[Bny,Bnx]
として計算されているので、周辺のブロックから拡散されてきた濃度誤差を反映した値である。
画素が形成される所定の画素は、第1実施形態と同様、ブロック内の左上の画素(PT=1)とすれば良い。もとより、ブロック内の4つの画素のうち、階調データの一番大きな画素にドットを形成するものとしても良いし、対応するディザマスクの閾値が一番小さい位置に対応する画素に形成するものとしても良いし、ドットを形成する画素を、ランダムに決めても差し支えない。また、形成されるドットは、本実施形態では、小ドットとした。もともと第1の判断処理によってはドットが形成されないブロックであり、ブロック全体の判断で形成される画素は最小限の濃度を表現できれば足りる場合が多いからである。所定の画素にドットを形成するとした後、後述する誤差計算に備えて、カウンタConに値1を設定する(ステップS338)。
上記の処理の後、第1実施形態と同様、誤差計算処理(ステップS340)と誤差拡散処理(ステップS350)とを行なう。誤差計算処理は、以下に示す処理の後に行なわれる。
(ア)結果値Result[PT]≠0の画素にドットを形成するとしたステップS332の処理、
(イ)所定の画素にドットを形成するとしたステップS336、S338の処理、あるいは、
(ウ)ブロック内の画像データの総和、すなわちdata[Bny,Bnx]が、誤差拡散法における閾値THe未満であると判断されてドットを形成しないとしたステップS334の処理。
誤差計算処理(ステップS340)では、処理したブロックで発生した濃度誤差ed[Bny,Bnx]を求める。濃度誤差ed[Bny,Bnx]は、次式により求める。
ed[Bny,Bnx]=data[Bny,Bnx]−Con・ONv
ONvは、第1実施形態で説明したオンバリューである。カウンタConの値は、ブロック内に形成するとされたドットの数を反映している。従って、処理したブロックの濃度誤差ed[Bny,Bnx]は、
(ア)の場合には、ブロック内の画像データの総和data[Bny,Bnx]から、ブロック内で形成されたドットの数Conとオンバリューの乗算値を、減算した値となり、
(イ)の場合には、ブロック内の画像データの総和data[Bny,Bnx]から、ブロック内で形成された1個のドットのオンバリューを、減算した値となり、
(ウ)の場合には、ブロック内の画像データの総和data[Bny,Bnx]となる。
上記(ア)(イ)のケースでは、演算結果がマイナスになる場合があり、この場合には、周辺画素にマイナスの誤差が拡散されるのは第1実施形態と同様である。
ブロック全体の画像データよりもブロック内に形成されたドットにより実現された濃度の方が高ければ、濃度誤差はマイナスの値となる。ブロック全体の画像データよりもブロック内に形成されたドットにより実現された濃度の方が低ければ、濃度誤差はプラスの値となる。この場合、大中小ドットの何れが形成されるかにより、そのブロックで実現される濃度は異なるが、第2実施形態では、ドット1個当たりのオンバリューONvを一定値として、計算を簡略化している。もとより、形成されるドットが大中小ドットの何れであるかにより、オンバリューONvを異ならせ、ブロック内で実現された濃度を詳細に計算しても良い。
こうして濃度誤差ed[Bny,Bnx]を求めた後、濃度誤差ed[Bny,Bnx]を隣接するブロックに配分する誤差拡散処理(ステップS350)を実行する。このステップS350の処理は、第1実施形態と同一の処理なので、説明は省略する。
以上説明した第2実施形態によれば、第1実施形態と同様の効果を奏する上、更にブロック内での多値化の処理が可能であり、よりきめ細かい、高画質の画像を形成することができる。しかも、大中小のドットによる高画質の画像を形成しながら、細線を小ドットにより再現でき、多値化による高画質化と細線の再現性とを両立させることができる。
[変形例2]
上述した実施形態では、第1の判断処理において、処理対象の画素の階調値として、その画素の階調データDnをそのまま利用したが、第1の判断処理における画像データに予め係数kを掛けて修正画素データを求めてから判断を行なうものとしても良い。第1実施形態であれば、図5に示した第1の判断処理ルーチンのステップS205において、
data[PT]≧THn_d?
という判断に代えて、修正画素データdata′[PT]を
data′[PT]←data[PT]×k
として求め、
data′[PT]≧THn_d?
の判断を行なうものとするのである。また、第2実施形態であれば、図16の第1の判断処理において、小中大ドットの形成の割合であるdata_s,data_m,data_lを求める前の画像データDnに係数kを掛けてから、小中大ドットの形成の割合を求めるのである。
画素データが低い領域、つまりハイライト部分での係数kを1.0より小さな値とすれば、第1の判断処理(ディザ法)でドットが形成される割合を低下することができ、その分を、第2の判断処理(誤差拡散法)によるドットの形成で補うことができる。つまり、第1の判断処理において、処理対象となった画素の階調値が所定の条件(data[PT]≧THn_d)を満たしていると判断される割合は、その画素の画素データdata[PT]において、最終的にドットが形成される割合より低い割合とされる。このため、ハイライト部分での誤差拡散によるドット発生の割合を高くすることができる。
[変形例3]
上記実施形態では、第1の判断処理では、判断結果を結果値Result[PT]に記憶し、最終的なドットの発生については第2の判断処理において判断するものとした。これに対して、第1実施形態などでは、第1の判断処理(図5)において、結果値Result[PT]に値1を設定すると同時に、その画素にドットを形成すると判断しても良い。つまり、図9におけるステップS304の処理を第1の判断処理(図5)において行なうものとしても良い。
[その他の変形例]
本発明は、上記の実施形態、変形例以外にも、種々の構成を採用可能である。例えば、第1の判断処理として、ディザ法に代えて、濃度パターン法や面積階調法など、他の判断処理を行なうものとしてもよい。あるいは1ブロックに含まれる画素数を2×1、1×2、3×2、2×3、3×3などにしても良い。更に多数の画素からなるブロックを用いても良い。あるいは、ブロックは必ずしも長方形状に限る必要はなく、十字形状や、上下のラスタ間で1ないし数画素ずれた平行四辺形状などの形態であっても差し支えない。ブロックの形状は、一つの画像内で一種類に限らなくても良い。
また、多値化を行なう場合、ドットの種類は2種類(3値化)でも良いし、4種類以上でもよい。多値化は、小中大などドットの大きさを変えて実現しても良いし、濃淡のインクを用意してドットの濃度の違いにより実現してもよい。あるいは、インク滴を同じ画素に重ねる回数を変えることで実現しても良い。重ねるインク滴は同じ大きさでも良いし、異なる大きさのインク滴であっても良い。ドットを形成するインクは、多色印刷を前提として、異なる色相のインクであっても良いし、白黒印刷など単色の印刷を前提とした単色インクであっても良い。複数のインクを用いる印刷装置の場合、全てのインクについて本発明の手法を適用しても良いし、一部のインクについてのみ適用するものとしても良い。
第1の判断処理において用いるディザマスクは、ブルーノイズ特性を有するものとしたが、グリーンノイズ特性を有するものであっても良いし、他の特性、例えばピンクノイズ特性やホワイトノイズ特性を有するものであっても良い。あるいは、ドット集中型のディザマスクや規則的なドット配置となるベイヤー型や網点型のディザマスクであっても良い。更に、ディザマスクは、印刷が印刷ヘッド90の往復動や多数回のパスによって画像を形成するものである場合、印刷ヘッド90の往動で形成されるドットの特性、および/または復動によって形成されるドットの特性、更には往復動によって形成されるドットの特性が、特定のノイズ特性となるように閾値の配置を定めたものとしても良い。
上記の実施形態では、第2の判断処理の結果として形成されるドットは、ブロック内で1個としたが、2個などブロック全体の画素データdata[Bny,Bnx]の大きさにより複数のドットを形成可能としても良い。こうした場合、発生可能なドットの最大個数は、ブロックに含まれる画素数の1/2を越えないものとして良い。こうすれば、第2の判断処理による過剰なドットの発生を回避することができる。第2の判断処理は、第1の判断処理では発生させにくいドット、例えば細線の画像に対応したドットを発生させるために用いることが想定され、こうした場合、第2の判断処理で形成するドットの割合は、抑制した方が望ましいからである。
本発明は、上述の実施形態や実施例、変形例に限られるものではなく、その趣旨を逸脱しない範囲において種々の構成で実現することができる。例えば、発明の概要の欄に記載した各形態中の技術的特徴に対応する実施形態、実施例、変形例中の技術的特徴は、上述の課題の一部又は全部を解決するために、あるいは、上述の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行なうことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
20…プリンター
30…制御ユニット
40…CPU
41…入力部
42…ハーフトーン処理部
43…比較部
44…誤差拡散部
46…印刷部
51…ROM
52…RAM
60…EEPROM
61…ディザマスク
62…誤差拡散閾値テーブル
70…キャリッジモータ
71…駆動ベルト
72…プーリ
73…摺動軸
74…紙送りモータ
75…プラテン
80…キャリッジ
82〜87…インクカートリッジ
90…印刷ヘッド
98…メモリカードスロット
99…操作パネル
P…印刷媒体
MC…メモリカード

Claims (14)

  1. 画像を、複数画素からなるブロックを単位としてハーフトーン処理し、印刷する印刷装置であって、
    前記複数画素各々の階調値が所定の条件を満たしているか否かを判断する第1の判断部と、
    前記第1の判断部の判断結果に基づいて異なる条件を適用し、前記複数画素の少なくとも一つにドットを形成するか否かの判断を行なう第2の判断部と、
    前記ブロックを単位として、前記第2の判断部の判断結果により生じる階調誤差の計算と、該計算された誤差の未処理画素への配分とを、行なう誤差計算部と、
    前記第2の判断部の判断結果によりドットの形成を行なうドット形成部と
    を備えた印刷装置。
  2. 請求項1記載の印刷装置であって、
    前記第1の判断部における前記階調値が所定の条件を満たしているか否かの判断は、前記ブロック内の各画素の階調値に対応する値が、ディザマスクとして用意された閾値のうち前記各画素の位置に対応する位置の閾値である第1の閾値より大きい場合、前記所定の条件が満たされていると判断する
    印刷装置。
  3. 請求項1または請求項2記載の印刷装置であって、
    前記第1の判断部において、前記ブロック内の少なくとも1つの画素の階調値が前記所定の条件を満たしている場合には、前記第2の判断部による前記判断を行なうことなく、当該画素に対応したドットを形成する
    印刷装置。
  4. 請求項3記載の印刷装置であって、
    前記第1の判断部において、前記ブロック内のいずれの画素の階調値も前記所定の条件を満たしていないと判断された場合には、前記第2の判断部は、前記ブロック内の画素の階調値に対応する画像データであって、前記計算された誤差の配分を受けた補正画像データを、誤差拡散用に用意された閾値である第2の閾値と比較して、ドットを形成するか否かを判断する
    印刷装置。
  5. 請求項1から請求項4のいずれか一項に記載の印刷装置であって、
    前記第1の判断部における所定の条件を満たしていると判断される割合は、前記判断の対象となった各画素の階調値において最終的にドットが形成される割合より低い割合とされている
    印刷装置。
  6. 請求項1から請求項5のいずれか一項に記載の印刷装置であって、
    前記第2の判断部は、前記ブロック内の画素にドットを形成すると判断する割合を、当該ブロックに属する画素数の1/2未満とする
    印刷装置。
  7. 請求項1から請求項5のいずれか一項に記載の印刷装置であって、
    前記第2の判断部は、
    前記複数画素の各画素の階調値が前記所定の条件を満たしている場合には、満たしていない場合より、当該各画素に対応したドットを形成しやすい条件を適用して前記判断を行ない、
    前記各画素の階調値が前記所定の条件を満たしていない場合には、満たしている場合より、当該各画素に対応するドットを形成しにくい条件を適用して前記判断を行なう
    印刷装置。
  8. 請求項2に従属する請求項7に記載の印刷装置であって、
    前記第2の判断部は、誤差拡散用に用意された閾値である第2の閾値と比較してドットを形成すると判断した場合、当該ドットを、
    前記ブロック内の所定の位置の画素、
    前記ブロック内のランダムに定められる画素、または
    前記ブロック内の画素位置に対応するディザマスクに用意された閾値のうち、最も小さな値の閾値に対応する位置の画素
    のいずれかにドットを形成すると判断する
    印刷装置。
  9. 前記ハーフトーン処理は、前記第1の判断部の判断結果に基づいて、3以上の多値化の処理を行なう請求項2に記載の印刷装置。
  10. 請求項9記載の印刷装置であって、
    前記第1の判断部は、前記ディザマスクの前記ブロック内の画素に対応した複数の閾値を連続的に利用して、前記3以上の多値化の判断を行なう
    印刷装置。
  11. 請求項9または請求項10記載の印刷装置であって、
    前記ドット形成部は、濃度の異なる2種類のドットを形成可能であり、
    前記ハーフトーン処理において、前記第2の判断部は、前記2種類のドットのうち、濃度の低い側のドットについて、ドットの形成の有無を判断する
    印刷装置。
  12. 画像を、複数画素からなるブロックを単位としてハーフトーン処理し、印刷する印刷方法であって、
    前記複数画素各々の階調値が所定の条件を満たしているか否かの判断である第1の判断を行ない、
    前記第1の判断の判断結果に基づいて異なる条件を適用し、前記複数画素の少なくとも一つにドットを形成するか否かの判断である第2の判断を行ない、
    前記ブロックを単位として、前記第2の判断の判断結果により生じる階調誤差の計算と、該計算された誤差の未処理画素への配分とを行ない、
    前記第2の判断の判断結果によりドットの形成を行なう
    印刷方法。
  13. 画像を、複数画素からなるブロックを単位としてハーフトーン処理する画像処理装置であって、
    前記複数画素各々の階調値が所定の条件を満たしているか否かを判断する第1の判断部と、
    前記第1の判断部の判断結果に基づいて異なる条件を適用し、前記複数画素の少なくとも一つの画素にドットを形成するか否かの判断を行なう第2の判断部と、
    前記ブロックを単位として、前記第2の判断部の判断結果により生じる階調誤差の計算と、該計算された誤差の未処理画素への配分とを行なう誤差計算部と、
    を備えた画像処理装置。
  14. 画像を、複数画素からなるブロックを単位としてハーフトーン処理するプログラムであって、
    前記複数画素各々の階調値が所定の条件を満たしているか否かの判断である第1の判断を行なう機能と、
    前記第1の判断の判断結果に基づいて異なる条件を適用し、前記複数画素の少なくとも一つにドットを形成するか否かの判断である第2の判断を行なう機能と、
    前記ブロックを単位として、前記第2の判断の判断結果により生じる階調誤差の計算と、該計算された誤差の未処理画素への配分とを行なう機能と、
    をコンピューターにより実現させるプログラム。
JP2014253889A 2014-12-16 2014-12-16 印刷装置、印刷方法、プログラム、および画像処理装置 Active JP6390405B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014253889A JP6390405B2 (ja) 2014-12-16 2014-12-16 印刷装置、印刷方法、プログラム、および画像処理装置
US14/969,476 US20160173724A1 (en) 2014-12-16 2015-12-15 Printing apparatus, printing method, program, and image processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014253889A JP6390405B2 (ja) 2014-12-16 2014-12-16 印刷装置、印刷方法、プログラム、および画像処理装置

Publications (2)

Publication Number Publication Date
JP2016116105A JP2016116105A (ja) 2016-06-23
JP6390405B2 true JP6390405B2 (ja) 2018-09-19

Family

ID=56112393

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014253889A Active JP6390405B2 (ja) 2014-12-16 2014-12-16 印刷装置、印刷方法、プログラム、および画像処理装置

Country Status (2)

Country Link
US (1) US20160173724A1 (ja)
JP (1) JP6390405B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018121277A (ja) 2017-01-27 2018-08-02 セイコーエプソン株式会社 画像形成システム、画像形成装置、画像形成方法、プログラム
JP7095545B2 (ja) 2018-10-15 2022-07-05 セイコーエプソン株式会社 画像処理装置、画像処理方法、および印刷装置
US10855881B1 (en) * 2019-12-18 2020-12-01 Ricoh Company, Ltd. Vectorized multi-level halftoning using ternary logic
JP2022011717A (ja) * 2020-06-30 2022-01-17 セイコーエプソン株式会社 画像処理装置、記録装置、画像処理方法、及び、プログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3859122B2 (ja) * 2001-03-05 2006-12-20 セイコーエプソン株式会社 ハーフトーン処理装置及びハーフトーン処理方法
JP2008087382A (ja) * 2006-10-03 2008-04-17 Seiko Epson Corp 高画質ハーフトーン処理
JP4630254B2 (ja) * 2006-10-03 2011-02-09 セイコーエプソン株式会社 印刷装置、印刷方法、およぴ印刷物生成方法
JP5750968B2 (ja) * 2011-03-24 2015-07-22 セイコーエプソン株式会社 画像処理装置、印刷装置、画像処理方法および画像処理プログラム
JP6175914B2 (ja) * 2013-06-05 2017-08-09 セイコーエプソン株式会社 印刷装置、印刷方法、および画像処理装置

Also Published As

Publication number Publication date
JP2016116105A (ja) 2016-06-23
US20160173724A1 (en) 2016-06-16

Similar Documents

Publication Publication Date Title
JP4683654B2 (ja) 画像処理装置、画像処理装置の制御方法及びプログラム
JP6587552B2 (ja) 画像処理装置および画像処理方法
JPH11314383A (ja) プリント・ドライバ製造方法及びカラー印刷システム
JP2002185789A (ja) 画像処理装置、印刷制御装置、画像処理方法、および記録媒体
JP6390405B2 (ja) 印刷装置、印刷方法、プログラム、および画像処理装置
US20080024826A1 (en) Image processing device and printing apparatus for performing bidirectional printing
US10005289B2 (en) Printing apparatus, printing method, and non-transitory computer readable medium for storing program
JP6175915B2 (ja) 印刷装置、印刷方法、プログラム、および画像処理装置
JP6175914B2 (ja) 印刷装置、印刷方法、および画像処理装置
JP6252003B2 (ja) 印刷装置、印刷方法、画像処理装置およびプログラム
JP2012223931A (ja) 画像処理装置、印刷装置、画像処理方法および画像処理プログラム
JP2004358690A (ja) 印刷制御装置、印刷制御方法および印刷制御プログラム
JP4535978B2 (ja) 画像形成装置、画像形成方法及び画像形成プログラム
JP5404360B2 (ja) 画像処理装置及び画像処理方法
US20060193009A1 (en) Image-processing apparatus, image-processing method, image-processing system, printing apparatus, and printing system
JP4225319B2 (ja) 画像出力制御システム、画像処理装置およびその方法
JP4274030B2 (ja) 画像出力システム、画像処理装置、画像出力装置およびそれらの方法
US7362473B2 (en) Image processing technique for tone number conversion of image data
JP2016163080A (ja) 印刷装置、印刷方法、画像処理装置、コンピュータープログラム
JP5979261B2 (ja) 印刷装置、および印刷方法
JP4096846B2 (ja) 出力解像度に応じたフィルタ処理を行う画像処理装置
JP2005295131A (ja) 画像処理装置、画像処理方法および画像処理プログラム
US10016978B2 (en) Printing apparatus, printing method, and non-transitory computer readable medium for storing program
JP2010058281A (ja) 印刷装置、印刷方法および印刷媒体
JP4092983B2 (ja) 出力解像度に応じたフィルタ処理を行う画像処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171023

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180426

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180508

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180709

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180806

R150 Certificate of patent or registration of utility model

Ref document number: 6390405

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150