(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-16
(45)【発行日】2025-01-24
(54)【発明の名称】画像処理装置
(51)【国際特許分類】
B41J 2/205 20060101AFI20250117BHJP
B41J 2/01 20060101ALI20250117BHJP
【FI】
B41J2/205
B41J2/01 201
(21)【出願番号】P 2021029398
(22)【出願日】2021-02-26
【審査請求日】2024-01-10
(31)【優先権主張番号】P 2020083894
(32)【優先日】2020-05-12
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000250502
【氏名又は名称】理想科学工業株式会社
(74)【代理人】
【識別番号】100128451
【氏名又は名称】安田 隆一
(72)【発明者】
【氏名】川島 正裕
【審査官】長田 守夫
(56)【参考文献】
【文献】特開平9-247438(JP,A)
【文献】国際公開第2015/078827(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B41J 2/01-2/215
(57)【特許請求の範囲】
【請求項1】
画像データを受け付ける画像データ受付部と、
前記画像データに対してハーフトーン処理を施して少なくとも3値以上に変換し
て、前記画像データの印刷濃度を表す多値化データを生成するハーフトーン処理部とを備え、
前記ハーフトーン処理部が、前記画像データを構成する全ての画素が最大値に変換される場合を除き、
前記ハーフトーン処理によって必ずゼロ値を含む
前記多値化データを生成する画像処理装置。
【請求項2】
前記ハーフトーン処理部が、前記画像データの濃度に応じて、前記画像データをn値(nは0以上の整数)とn+1値を含む多値化データに変換する過程において、前記多値化データにおいてゼロ値の画素が所定の画素数になった段階で前記n+1値の画素の増加を停止した後、前記画像データの濃度の増加に応じて、前記n+1値と同じ位置に前記n+2値を配置する請求項1記載の画像処理装置。
【請求項3】
前記ハーフトーン処理部が、1値の画素にゼロ値の画素を隣接させ、1値の画素が2画素以上連続しないように前記ハーフトーン処理を施す請求項2記載の画像処理装置。
【請求項4】
前記ハーフトーン処理部が、前記各画素に対応する前記多値化データが大きくなるほど前記多値化データ全体に含まれる前記ゼロ値の割合が減少するように前記ハーフトーン処理を施す請求項1から3いずれか1項記載の画像処理装置。
【請求項5】
前記ハーフトーン処理部によるハーフトーン処理の前に、前記画像データに対して2値誤差拡散処理を施す2値誤差拡散処理部を備え、
前記ハーフトーン処理部が、前記ハーフトーン処理を行う際、前記2値誤差拡散処理部において白判定された画素の量子化値および前記多値化データをゼロ値とする請求項1記載の画像処理装置。
【請求項6】
前記2値誤差拡散処理部による2値誤差拡散処理の前に、前記2値誤差拡散処理によって白判定される画素の密度を調整する白画素密度調整処理を前記画像データに施す白画素密度調整部を備え、
前記2値誤差拡散処理部が、前記白画素密度調整処理が施された画像データに対して2値誤差拡散処理を施す請求項5記載の画像処理装置。
【請求項7】
前記2値誤差拡散処理部が、白判定した画素の量子化値を負の値とし、該負の値と黒判定した画素の量子化値とに基づいて量子化閾値を設定して2値誤差拡散処理を行う請求項5記載の画像処理装置。
【請求項8】
前記画像データの濃度が明るいほど白判定される画素の密度を疎にする請求項6または7記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像データに対してハーフトーン処理を施す画像処理装置に関するものである。
【背景技術】
【0002】
従来、搬送経路上を搬送される印刷媒体に対して、インクジェットヘッドからインクを吐出して印刷処理を行うインクジェット印刷装置が提案されている。
【0003】
このようなインクジェット印刷装置では、インクジェットヘッドの直下において印刷媒体が搬送されることにより気流が発生する。
【0004】
また、インクジェットヘッドのノズルからインクが連続吐出されると、そのインク液滴は自己気流を伴い吐出され、この自己気流は、上述した印刷媒体の搬送による気流を遮る壁のように作用する。そして、印刷媒体の搬送により発生した気流が、自己気流の壁にぶつかり、複雑に気流が乱れることがある。この乱気流により、インクジェットヘッドから吐出されたインクの着弾位置が、所望の位置からずれてしまうことがあり、これにより、いわゆる風紋ムラと呼ばれる濃度ムラが生じる場合があった。
【0005】
この濃度ムラを補正する方法として、特許文献1においては、画像データが高解像度であり、かつ濃度が所定範囲である場合、自己気流の発生度合いに応じて画像データの解像度を低解像度に変換し、風紋ムラを目立たなくする方法が提案されている。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1に記載の方法では、元から画像データが低解像度である場合には適用することができない。また、特許文献1に記載の方法では、低解像度に変換された領域ではインクの液滴サイズが大きくなるため粒状性が低下し、さらに画像データの解像度を低解像度に切り替える境界領域でトーンジャンプが生じてしまうといった問題がある。トーンジャンプとは、本来滑らかなグラデーション部分の階調が急激に変化して縞模様のようにみえる現象である。
【0008】
本発明は、上記事情に鑑み、粒状性の低下やトーンジャンプを招くことなく、低解像度の画像データであっても風紋ムラを抑制することができる画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明の画像処理装置は、画像データを受け付ける画像データ受付部と、画像データに対してハーフトーン処理を施して少なくとも3値以上に変換して多値化データを生成するハーフトーン処理部とを備え、ハーフトーン処理部が、画像データを構成する全ての画素が最大値に変換される場合を除き、必ずゼロ値を含むようにハーフトーン処理を施す。
【発明の効果】
【0010】
本発明の画像処理装置によれば、画像データに対してハーフトーン処理を施して少なくとも3値以上に変換して多値化データを生成する際、画像データを構成する全ての画素が最大値に変換される場合を除き、必ずゼロ値を含むようにハーフトーン処理を施すことによって風紋ムラを抑制するようにしたので、粒状性の低下やトーンジャンプを招くことなく、低解像度の画像データであっても風紋ムラを抑制することができる。
【図面の簡単な説明】
【0011】
【
図1】本発明の画像処理装置の第1および第2の実施形態を用いたインクジェット印刷装置の構成を示すブロック図
【
図2】本発明の画像処理装置の第1の実施形態である画像処理部の構成を示すブロック図
【
図3】既存のハーフトーン処理の概念を説明するための図
【
図4】本発明の画像処理装置の第1の実施形態におけるハーフトーン処理の概念を説明するための図
【
図5】本発明の画像処理装置の第1の実施形態におけるハーフトーン処理の演算処理の概略を説明するためのフローチャート
【
図6】本発明の画像処理装置の第1の実施形態におけるハーフトーン処理の具体的な演算処理を説明するための図
【
図7】本発明の画像処理装置の第1の実施形態におけるハーフトーン処理の具体的な演算処理を説明するためのフローチャート
【
図8】本発明の画像処理装置の第2の実施形態である画像処理部の構成を示すブロック図
【
図9】Floyd-Steinberg法による2値誤差拡散処理を説明するための図
【
図10】Floyd-Steinberg法と等価な2値誤差拡散処理を説明するための図
【
図11】第2の実施形態のハーフトーン処理部における多値誤差拡散処理を説明するための図
【
図12】第2の実施形態のハーフトーン処理の演算処理の流れを説明するためのフローチャート
【
図13】第2の実施形態の画像処理部の変形例の構成を示すブロック図
【
図14】白画素密度調整を行うための濃度変換処理の一例を説明するための図
【
図15】2値誤差拡散処理において白画素密度の調整を行う方法を説明するための図
【
図16】既存の多値誤差拡散処理をモノクロのグラデーション画像に施した結果を示す図
【
図17】第2の実施形態のハーフトーン処理をモノクロのグラデーション画像に施した結果を示す図
【発明を実施するための形態】
【0012】
以下、図面を参照して本発明の画像処理装置の第1の実施形態を用いたインクジェット印刷装置1について詳細に説明する。
図1は、本実施形態のインクジェット印刷装置1の概略構成図である。
【0013】
インクジェット印刷装置1は、コンピュータから出力された画像データまたは原稿読取装置から出力された画像データに基づいて、紙やフィルムなどといったシート状の印刷媒体に対してインクを吐出して印刷処理を行う。インクジェット印刷装置1は、
図1に示すように、画像処理部10、ヘッド駆動制御部20、インクジェットヘッド部30、搬送部40および制御部50を備えている。
【0014】
画像処理部10は、コンピュータまたは原稿読取装置から出力された画像データを受け付け、その画像データに対して種々の処理を施す。本実施形態においては、画像処理部10が、本発明の画像処理装置の一実施形態に相当する。画像処理部10は、CPU(Central Processing Unit)および半導体メモリなどを備える。なお、画像処理部10のCPUおよび半導体メモリは、後述する制御部50と共通であってもよいし、別個に設けるようにしてもよい。
【0015】
画像処理部10は、半導体メモリまたはハードディスクなどの記憶媒体に予め記憶された画像処理プログラムを実行し、かつ電気回路を動作させることによって、後述する各部の処理を行う。
【0016】
画像処理部10は、
図2に示すように、画像データ受付部11、色変換部12およびハーフトーン処理部13を備えている。
【0017】
画像データ受付部11は、コンピュータまたは原稿読取装置から出力されたRGB形式の画像データを受け付け、色変換部12に出力する。
【0018】
色変換部12は、RGB形式の画像データをCMYK形式の画像データに変換し、ハーフトーン処理部13に出力する。
【0019】
ハーフトーン処理部13は、色変換部12から出力されたC、M、YおよびKの各画像データに対してハーフトーン処理を施して、少なくとも3値以上に変換して多値化データを生成する。本実施形態の多値化データは、印刷画像の1つのドットを形成するためにインクジェットヘッドの1つのノズルから吐出されるインクドロップの数を規定したデータであり、インクドロップデータともいう。
【0020】
第1の実施形態のハーフトーン処理部13は、ディザ法を用いたハーフトーン処理を行うものであり、上述した風紋ムラを抑制するハーフトーン処理を行う。本実施形態のハーフトーン処理部13は、画像データを構成する全ての画素が最大値(最大ドロップ数)に変換される場合を除き、必ずゼロ値を含むようにハーフトーン処理を施すものであるが、その具体的な処理方法については、後で詳述する。
【0021】
なお、画像処理部10は、上述した処理に限らず、その他にガンマ補正処理やエッジ強調処理などの種々の公知な画像処理を行う。
【0022】
ヘッド駆動制御部20は、ハーフトーン処理部13で生成された各色のインクドロップデータに基づいて、インクジェットヘッド部30を駆動させて各色のインクジェットヘッドの各ノズルからインクを吐出させる。
【0023】
インクジェットヘッド部30は、C、M、YおよびKの各色のインクを吐出する複数のインクジェットヘッドを備えている。各インクジェットヘッドは、上述したとおり各色のインクドロップデータに基づいてヘッド駆動制御部20によって制御されてインクを印刷媒体に対して吐出し、印刷媒体上に印刷画像を形成する。
【0024】
搬送部40は、印刷媒体をインクジェットヘッド部30まで搬送する搬送機構を備える。
【0025】
制御部50は、CPUおよび半導体メモリなどを備え、インクジェット印刷装置1全体を制御する。制御部50は、半導体メモリまたはハードディスクなどの記憶媒体に予め記憶された制御プログラムを実行し、かつ電気回路を動作させることによって、インクジェット印刷装置1の各部の動作を制御するものである。
【0026】
次に、本実施形態のインクジェット印刷装置1のハーフトーン処理を説明する前に、既存のハーフトーン処理について、
図3の概念図を参照しながら説明する。なお、ここでは、1つの印字ドットに吐出されるインクの最大ドロップ数が3ドロップの場合について説明する。また、ここで説明する既存のハーフトーン処理もディザ法を用いたハーフトーン処理であり、4×4のディザマトリクスを用いたハーフトーン処理である。
【0027】
図3(1)~(49)は、画像データ内の所定の4×4の画素に対して、既存のハーフトーン処理を施した結果を示す図であり、印刷濃度が最低濃度(ゼロ)から最大濃度まで変化する場合におけるハーフトーン処理結果を示している。括弧内の番号が増加するにつれて印刷濃度が1段階ずつ増加する。
図3(1)~(49)の各図の1つのマス目が1画素を示している。
【0028】
図3(1)~(17)は、印刷濃度がゼロから17段階目まで変化する場合のハーフトーン処理結果を示している。
図3(1)~(17)に示すように、印刷濃度がゼロから17段階目まで変化する場合には、印刷濃度が1段階上がるごとに、インクのドロップ数「1」を示す「1」のデータが、ディザマトリクスの各ディザ閾値の分布にしたがって1つずつ追加される。そして、印刷濃度が17段階の場合には、全ての画素が「1」のデータとなる。
【0029】
次いで、
図3(18)~(33)に示すように、印刷濃度が18段階から33段階までは、全ての画素が「1」のデータの状態から、印刷濃度が1段階上がるごとに、インクのドロップ数「2」を示す「2」のデータが、ディザマトリクスの各ディザ閾値の分布にしたがって1つずつ追加される。そして、印刷濃度が33段階の場合には、全ての画素が「2」のデータとなる。
【0030】
次いで、
図3(34)~(49)に示すように、印刷濃度が34段階から49段階までは、全ての画素が「2」のデータの状態から、印刷濃度が1段階上がるごとに、インクのドロップ数「3」を示す「3」のデータが、ディザマトリクスの各ディザ閾値の分布にしたがって1つずつ追加される。そして、印刷濃度が49段階の場合には、全ての画素が「3」のデータとなる。すなわち、全ての画素が最大値(最大ドロップ数)となる。
【0031】
上述したように、既存のハーフトーン処理の場合、印刷濃度が17段階の時点で全ての画素が0以外のデータとなり、印刷濃度が18段階以降は、「2」または「3」のデータが順次追加される。すなわち、印刷濃度が17段階以降は、画素と画素の間にゼロ値が含まれないことになるので、常に印字ドット密度が高い状態であるため、上述したインク吐出による自己気流が発生しやすい状態であり、風紋ムラが発生しやすい。
【0032】
次に、本実施形態のインクジェット印刷装置1のハーフトーン処理の概念について、
図4を参照しながら説明する。なお、ここでも、1つの印字ドットに吐出されるインクの最大ドロップ数が3ドロップの場合について説明する。また、ここで説明する本実施形態のハーフトーン処理も4×4のディザマトリクスを用いたハーフトーン処理である。
【0033】
図4(1)~(37)は、画像データ内の所定の4×4の画素に対して、本実施形態のハーフトーン処理を施した結果を示す図であり、印刷濃度が最低濃度(ゼロ)から最大濃度まで変化する場合におけるハーフトーン処理結果を示している。括弧内の番号が増加するにつれて印刷濃度が1段階ずつ増加する。なお、ここでは、説明を分かりやすくするため、4×4の画素は全て同じ濃度であることを想定している。
【0034】
本実施形態のハーフトーン処理では、まず、印刷濃度の増加に応じて、インクドロップ数「1」を順次追加するが、ゼロ値が残った状態で「1」のデータの追加を停止する。すなわちゼロ値の画素の数が所定の画素数となった段階で「1」のデータの追加を停止する。
【0035】
次いで、印刷濃度の増加に応じて、「2」のデータを順次追加するが、この際、「1」のデータを配置した際の配置ルールと同じルールで配置する。そして、ゼロ値が残った状態で「2」のデータの追加を停止する。さらに、印刷濃度の増加に応じて、「3」のデータを順次追加するが、この際、「2」のデータを配置した際の配置ルールと同じルールで配置する。そして、印刷濃度が最大濃度となるまでは、ゼロ値が残った状態とし、印刷濃度が最大濃度の時点で全ての画素が最大値(「3」のデータ)となるようにする。以下、
図4を参照しながら、より具体的に説明する。
【0036】
図4(1)~(9)は、印刷濃度がゼロから9段階目まで変化する場合のハーフトーン処理結果を示している。
図4(1)~(9)に示すように、印刷濃度がゼロから9段階目まで変化する場合には、濃度が1段階上がるごとに、インクのドロップ数「1」を示す「1」のデータが、ディザマトリクスの各ディザ閾値の分布にしたがって1つずつ追加される。そして、上述したようにゼロ値を残した状態で「1」のデータの追加を停止するが、ここでは印刷濃度が9段階の時点で「1」のデータの追加を停止している。「1」のデータの追加を停止する印刷濃度については、9段階に限らず、風紋ムラを抑制できる段階に設定される。
【0037】
次に、
図4(10)~(21)に示すように、印刷濃度が10段階から21段階までは、「1」または「0」のデータが「2」のデータに置き換えられる。
【0038】
まず、
図4(10)~(17)に示すように、印刷濃度が10段階から17段階までは、たとえば印刷濃度がゼロから9段階まで変化する場合の「0」のデータの配置ルールと同じ配置ルールが用いられて「1」のデータが「2」のデータに置き換えられる。これにより、9段階のゼロ値の数を維持した状態で「1」のデータを「2」のデータに置き換えることができる。
【0039】
したがって、風紋ムラの抑制効果を維持した状態とすることができるとともに、印刷濃度階調を滑らかにすることができるのでトーンジャンプを抑制することができる。
【0040】
次に、
図4(18)~(21)に示すように、印刷濃度が18段階から21段階までは、ディザマトリクスの各ディザ閾値の分布にしたがって、「0」のデータが「2」のデータに置き換えられる。そして、本実施形態のハーフトーン処理では、上述したようにゼロ値を残した状態で「2」のデータの追加を停止するが、ここでは印刷濃度が21段階の時点で「2」のデータの追加を停止している。「2」のデータの追加を停止する印刷濃度については、21段階に限らず、風紋ムラを抑制できる段階に設定される。
【0041】
なお、「2」のデータの追加を停止した時点におけるゼロ値の数は、上述した「1」のデータの追加を停止した時点におけるゼロ値の数よりも少なくすることができる。これは、インクドロップ数が増加するほどインク液滴のサイズが大きくなることによって、印刷面においてインクドット間の隙間が小さい、あるいは重なっているため、気流の影響を受けて着弾位置がずれても、風紋ムラを生じにくいからである。
【0042】
そして、このように「2」のデータの追加を停止した時点におけるゼロ値の数を、「1」のデータの追加を停止した時点におけるゼロ値の数よりも少なくすることによって、すなわち多値化データが大きくなるほど、多値化データ全体に含まれるゼロ値の割合が減少するようにハーフトーン処理を施すことによって、印刷濃度階調を増加させることができ、印刷画像の画質を向上させることができる。
【0043】
次いで、
図4(22)~(37)に示すように、印刷濃度が22段階から37段階までは、「2」または「0」のデータが「3」のデータに置き換えられる。
【0044】
まず、
図4(22)~(33)に示すように、印刷濃度が22段階から33段階までは、21段階の「2」のデータを維持した状態から、たとえば印刷濃度が10段階から21段階まで変化する場合の「2」のデータの配置ルールと同じ配置ルールが用いられて「2」のデータが「3」のデータに置き換えられる。これにより、21段階のゼロ値の数を維持した状態で「2」のデータを「3」のデータに置き換えることができる。
【0045】
したがって、風紋ムラの抑制効果を維持した状態とすることができるとともに、印刷濃度階調を滑らかにすることができるのでトーンジャンプを抑制することができる。
【0046】
次に、
図4(34)~(37)に示すように、印刷濃度が34段階から37段階までは、ディザマトリクスの各ディザ閾値の分布にしたがって、「0」のデータが「3」のデータに置き換えられる。そして、印刷濃度が最大濃度となるまでは、ゼロ値が残った状態とし、印刷濃度が最大濃度の時点で全ての画素が最大値(「3」のデータ)となるようにする。
【0047】
図4(1)~(37)に示すように、本実施形態のハーフトーン処理部13は、画像データを構成する全ての画素が最大値に変換される場合(
図4(37)の場合)を除き、必ずゼロ値を含むようにハーフトーン処理を施す。これにより、既存のハーフトーン処理よりも印字ドット密度が低い状態とすることができるため、上述したインク吐出による自己気流を発生し難くすることができ、風紋ムラを抑制することができる。また、粒状性の低下やトーンジャンプを招くことなく、低解像度の画像データであっても風紋ムラを抑制することができる。
【0048】
また、
図4(1)~(9)に示したように、「0」のデータを「1」のデータに変換する際、「1」のデータの画素に「0」のデータの画素を隣接させるとともに、「1」のデータの画素が上下左右方向に2画素以上連続しないようにすることが好ましい。ただし、「0」のデータと「1」のデータの配置については、画像データの各画素の濃度に依存する。そこで、たとえばハーフトーン処理において、ディザマトリクスを用いて画像データの各画素を「0」および「1」のデータに変換した後、「1」のデータが上下方向または左右方向に2画素以上連続する部分を検出し、その検出した部分の「1」のデータを「0」のデータに変換する処理をさらに行うことによって、「1」のデータの画素が上下左右方向に2画素以上連続しないようにしてもよい。これにより、画像データに依存することなく、印字ドット密度が低い状態を維持することができる。
【0049】
次に、本実施形態のハーフトーン処理の演算処理の概略について、
図5に示すフローチャートを参照しながら説明する。
【0050】
まず、ハーフトーン処理部13は、画像データを構成する画素のy座標をy=0に設定し(S10)、x座標をx=0に設定する(S12)。なお、画像データを構成する画素のx座標およびy座標はゼロが初期値である。
【0051】
そして、S10およびS12で設定したx座標およびy座標の位置の画素の濃度データdata[x][y]と、そのx座標およびy座標の位置に対応するディザマトリクスDthのディザ閾値dthを取得する(S14)。ディザマトリクスDthにおけるディザ閾値dthの位置は、たとえばdata[x][y]のx座標をディザマトリクスDthのx方向のサイズで除算した余りと、y座標をディザマトリクスのy方向のサイズで除算した余りを算出することによって求められる。なお、ディザマトリクスDthおよびディザ閾値dthについては、後で詳述する。
【0052】
そして、ハーフトーン処理部13は、S14で求めた濃度データdata[x][y]とディザ閾値dthを用いて演算処理を実行することによって、濃度データdata[x][y]に対応する多値化データ(インクドロップデータ)を算出する(S16)。なお、ここでの具体的な演算処理については、後で詳述する。
【0053】
次いで、ハーフトーン処理部13は、x座標を1インクリメントし(S18)、そのxの値が、画像データのx方向のサイズ(x_size)よりも小さい場合には(S20,YES)、S14~S18の処理を繰り返して行う。
【0054】
そして、ハーフトーン処理部13は、S20において、x≧x_sizeである場合には(S20,NO)、y座標を1インクリメントし(S22)、そのyの値が、画像データのy方向のサイズ(y_size)よりも小さい場合には(S24,YES)、S12~S22の処理を繰り返して行う。
【0055】
そして、ハーフトーン処理部13は、S24において、y≧y_sizeとなった時点で(S24,NO)、処理を終了する。これにより、画像データを構成する全ての画素について、多値化データ(インクドロップデータ)を求めることができる。
【0056】
次に、本実施形態のハーフトーン処理における
図5のS16の演算処理について具体的に説明する。ここでは、画像データの各画素の濃度データを0~255とし、
図4で示したように、ハーフトーン処理を施すことによって0~3の多値化データに変換するものとする。
【0057】
まず、本実施形態のハーフトーン処理において用いられる濃度閾値ThとディザマトリクスDthについて説明する。本実施形態においては、
図6に示すように、0~255の濃度範囲を3つの範囲に区分する。なお、
図6の横軸は濃度データであり、縦軸は印刷濃度である。そして、その区分の境界の値を濃度閾値Th[0]、Th[1]、Th[2]、Th[3]とする。Th[0]=0であり、Th[3]=255である。Th[1]は、ハーフトーン処理によって「1」のデータを追加する印刷濃度範囲を決定する値であり、
図4で示す0段階から9段階までの印刷濃度範囲を決定する値である。すなわち、「1」のデータの追加を停止する印刷濃度である。たとえばTh[1]=30が設定される。Th[1]を大きくした場合には、「1」のデータの密度が高くなり、すなわち印字ドット密度が高くなり風紋ムラを生じ、Th[1]が小さくした場合には、風紋ムラは生じなくなるが、小さいドットが少なくなり、粒状感が大きくなるので、Th[1]は、実験などによって風紋ムラと粒状感のバランスの取れた値に設定する。
【0058】
Th[2]は、ハーフトーン処理によって「2」のデータを追加する印刷濃度範囲を決定する値であり、
図4で示す10段階から21段階までの印刷濃度範囲を決定する値である。すなわち、「2」のデータの追加を停止する印刷濃度である。たとえばTh[2]=110が設定される。Th[2]についても、Th[1]と同様に、実験などによって風紋ムラと粒状感のバランスの取れた値に設定する。
【0059】
そして、本実施形態では、Th[0]~Th[1]を濃度範囲指標m=0とし、Th[1]~Th[2]を濃度範囲指標m=1とし、Th[2]~Th[3]を濃度範囲指標m=2とする。濃度範囲指標m=0~2については、後の具体的な演算処理の説明で使用する。
【0060】
次に、本実施形態では、画像データの3つの濃度範囲に応じて、3つのディザマトリクスDth[1]、Dth[2]およびDth[3]を用いてハーフトーン処理を行う。
ディザマトリクスDth[1]は、第1の濃度範囲0~105の画像データをハーフトーン処理によって「0」または「1」のデータに変換するディザマトリクスである。ディザマトリクスDth[1]は、ブルーノイズマスクからなるディザマトリクスを第1の濃度範囲0~105の濃度値で正規化することによって取得される。たとえばブルーノイズマスクからなるディザマトリクスの1つの閾値をdthとし、ディザマトリクスDth[1]の対応する1つの閾値をdth[1]とした場合、下式によって算出される。なお、本実施形態では、ブルーノイズマスクからなるディザマトリクスを用いるようにしたが、網点型のディザマトリクスを用いるようにしてもよい。
dth[1]=(第1の正規化値×dth)/256
【0061】
また、上式の第1の正規化値は、ドットが密になる速度を制御する値である。たとえば第1の正規化値を256とすると、dthが10、100の場合、dth[1]は10、100となるが、第1の正規化を128とすると、dth[1]は5、50と閾値が小さくなり、より印字されやすくなる。つまり、これは、第1の正規化値が小さいほど密になる速度が速くなることを意味する。本実施形態においては、第1の正規化値として105を設定する。
【0062】
ディザマトリクスDth[2]は、第2の濃度範囲30~135の画像データをハーフトーン処理によって「2」のデータに変換するディザマトリクスである。ディザマトリクスDth[2]は、ブルーノイズマスクからなるディザマトリクスを第2の濃度範囲30~135の濃度値で正規化することによって取得される。たとえばブルーノイズマスクからなるディザマトリクスの1つの閾値をdthとし、ディザマトリクスDth[2]の対応する1つの閾値をdth[2]とした場合、下式によって算出される。なお、第2の正規化値の意味は、第1の正規化値と同様であり、本実施形態においては、第2の正規化値として105を設定する。
dth[2]=(第2の正規化値×dth)/256
【0063】
ディザマトリクスDth[3]は、第3の濃度範囲105~255の画像データをハーフトーン処理によって「3」のデータに変換するディザマトリクスである。ディザマトリクスDth[3]は、ブルーノイズマスクからなるディザマトリクスを第2の濃度範囲105~255の濃度値で正規化することによって取得される。たとえばブルーノイズマスクからなるディザマトリクスの1つの閾値をdthとし、ディザマトリクスDth[3]の対応する1つの閾値をdth[3]とした場合、下式によって算出される。なお、第3の正規化値の意味は、第1の正規化値と同様であり、本実施形態では、第3の正規化値=255-Th[2]とする。このような値とすることによって、濃度データが255の時に「3」のインクドロップのベタデータとすることができる。
dth[3]=(第3の正規化値×dth)/256
【0064】
また、
図6では、「0」と「1」のインクドロップデータに変換される領域(0,1ドロップ領域)と、「0」、「1」および「2」のインクドロップデータに変換される領域(0,1,2ドロップ領域)と、「0」と「2」のインクドロップデータに変換される領域(0,2ドロップ領域)と、「0」、「2」および「3」のインクドロップデータに変換される領域(0,2,3ドロップ領域)と、「0」と「3」のインクドロップデータに変換される領域(0,3ドロップ領域)とを示している。
【0065】
次に、上述した濃度閾値Th[0]~Th[3]およびディザマトリクスDth[1]~[3]を用いたハーフトーン処理について、
図7に示すフローチャートを参照しながら説明する。
【0066】
まず、ハーフトーン処理部13は、画像データを構成する所定の画素の濃度データを取得し、その濃度データdataが、上述した濃度範囲指標m=0~2のどれに属するか否かを決定する(S30)。具体的には、Th[m]≦data<Th[m+1]を満たすmを決定する。
【0067】
次いで、ハーフトーン処理部13は、上述したdth[1]~dth[3]を算出する(S32)。
【0068】
そして、S13で決定したmの値がゼロである場合には(S34,YES)、その画素の濃度データdataと、その画素に対応する位置のディザマトリクスDth[1]のディザ閾値dth[1]と比較し、data>dth[1]である場合には(S36,YES)、その画素の多値化データ(インクドロップデータ)を「1」とする(S38)。
【0069】
一方、data≦dth[1]である場合には(S36,NO)、その画素の多値化データ(インクドロップデータ)を「0」とする(S40)。
【0070】
また、ハーフトーン処理部13は、S30で決定したmの値がゼロでない場合には(S34,NO)、その画素の濃度データdataからTh[m]を減算した値(data―Th[m])と、その画素に対応する位置のディザマトリクスDth[m+1]のディザ閾値dth[m+1]と比較する(S42)。なお、data―Th[m]は、画素の濃度データをTh[m]を基準とする入力データとするため演算である。
【0071】
そして、ハーフトーン処理部13は、その入力データが、dth[m+1]よりも大きい場合には(S42,YES)、その画素の多値化データ(インクドロップデータ)をm+1とする(S44)。
【0072】
具体的には、ハーフトーン処理部13は、たとえばmが1である場合には、data-Th[1]とdth[2]を比較する。そして、data-Th[1]がdth[2]よりも大きい場合には、その画素の多値化データ(インクドロップデータ)を2とする。これにより、
図4(10)~(21)に示す「2」のデータが配置される。
【0073】
一方、S42において、data―Th[m]≦dth[m+1]である場合には(S42,NO)、上記画素に対応する位置のディザマトリクスDth[m]のディザ閾値dth[m]と、Th[m]-Th[m-1]とを比較する(S46)。
【0074】
ここで、Th[m]-Th[m-1]は、たとえばm=1のときTh[1]-Th[0]となり、
図4(1)~(9)に示すように「1」のデータを追加し始めてから停止するまでの濃度区間を示す。そして、
図4(10)~(17)に示すように、「2」のデータは、「1」のデータの位置と同じ場所に配置する必要があるが、これは、S42の条件に基づいて「2」のデータを配置することで実現する。
【0075】
しかしながら、S42の条件を満たしていない場合、Th[1]時点の濃度を保持する必要がある。したがって、S42において「2」のデータが配置されなかった場合には、Th[1]時点で「1」のデータが配置された場所には、「1」のデータを配置する必要がある。
【0076】
そこで、S42において「2」のデータが配置されなかった場合、S46の比較式で、「1」のデータ用のディザ閾値dth[1]が、「1」のデータの追加を停止した濃度より小さい場合に、「1」のデータを配置する(S48)。これは、ディザ閾値dth[1]が、Th[1]-Th「0」よりも小さい場合には、その位置には、既に「1」のデータが配置されていることを示すからである。
【0077】
一方、S46の比較式で、dth[m]≧Th[m]-Th[m-1]である場合には、上記画素の多値化データ(インクドロップデータ)を0とする(S50)。
【0078】
これにより、画像データの画素の濃度データがm=1の濃度区間である場合には、「0」、「1」または「2」のデータに変換することができる。すなわち、「0」のデータを混在させつつ、印刷濃度変化を滑らかにすることができる。
【0079】
なお、上記説明では、m=1の場合について説明したが、m=2の場合もS42およびS46の比較式に基づく処理を行うことによって、m=2の濃度区間の濃度データを「0」、「2」または「3」のデータに変換することができる。すなわち、「0」のデータを混在させつつ、印刷濃度変化を滑らかにすることができる。
【0080】
次に、本発明の画像処理装置の第2の実施形態を用いたインクジェット印刷装置2について詳細に説明する。第2の実施形態のインクジェット印刷装置2の概略構成は、
図1に示す第1の実施形態のインクジェット印刷装置1と同様であるが、画像処理部10の構成が第1の実施形態とは異なる。
【0081】
第1の実施形態のハーフトーン処理部13は、上述したようにディザ法を用いたハーフトーン処理を行うものであるが、第2の実施形態の画像処理部10は、多値誤差拡散法を用いたハーフトーン処理を行うものである。第1の実施形態のようにディザ法を用いたハーフトーン処理の場合、ディザマトリクスを記憶するメモリ容量が必要となる。たとえば
256×256のディザマトリクスを使用する場合、メモリ容量は64kByte必要になる。これに対し、多値誤差拡散処理は、ディザマトリクスを記憶する必要がないので、メモリ容量を削減することができ、また、その演算処理を簡易なハードウェアで実現することも可能であるため、ハードウェア全体を削減することが可能である。なお、多値誤差拡散処理に必要なメモリ容量については、後で詳述する。
【0082】
図8は、第2の実施形態の画像処理部10の構成を示すブロック図である。第2の実施形態のハーフトーン処理部13も、第1の実施形態と同様に、画像データを構成する全ての画素が最大値(最大ドロップ数)に変換される場合を除き、必ずゼロ値を含むようにハーフトーン処理を施すものであるが、このようなハーフトーン処理を行うため、第2の実施形態の画像処理部10は、2値誤差拡散処理部14を備えている。そして、第2の実施形態のハーフトーン処理部13は、2値誤差拡散処理部14の処理結果に基づいて、多値誤差拡散処理を行うことによって、上述したように必ずゼロ値を含むハーフトーン処理を行う。
【0083】
2値誤差拡散処理部14は、ハーフトーン処理部13によるハーフトーン処理の前に、C、M、YおよびKの各画像データに対して2値誤差拡散処理を施す。2値誤差拡散処理としては、たとえば
図9に示すような拡散係数を用いたFloyd-Steinberg法による2値誤差拡散処理が知られているが、本実施形態では、これと等価な手法を用いて2値誤差拡散処理を施す。Floyd-Steinberg法は、
図9に示すように、注目画素で発生した誤差を周辺画素に拡散係数をかけて分散する手法であるが、本実施形態では、
図10に示すように、周辺画素の誤差に拡散係数をかけて注目画素に分配する手法を用いる。この手法において、注目画素に分配される誤差err_binは、下式で表される。なお、下式におけるerr_mem0[]は、注目画素のラインの1ライン前の誤差を保存しているメモリであり、err_preは、注目画素の1画素前の誤差であり、err_mem1[]は、注目画素のラインの次のラインで使用する誤差を保存するメモリである。
err_bin=err_mem0[x-1]*1/16+err_mem0[x]*3/16+err_mem0[x+1]*5/16+err_pre*7/16
【0084】
そして、注目画素の濃度データをDとすると、誤差を分配した後の画素データDerrは、下式で表される。
Derr=D+err_bin
【0085】
そして、Derr>127の場合、黒判定し、その量子化値を255とする。一方、Derr≦127の場合、白判定し、その量子化値を0とする。
【0086】
そして、err=Derr-量子化値を算出し、err_mem1[x]=errとし、err_pre=errとする。
【0087】
上述したような演算処理によって2値誤差拡散処理を行うことによって、ハードウェアとしては、err_mem0[]とerr_mem1[]の合計2ラインのメモリで良い。また、誤差の保存タイミングをずらせば、誤差を読み出した後のerr_mem0[]の使用済み領域に注目画素の誤差を書き戻すことができるので、実質的には1ラインのメモリで済む。なお、1ライン目(y=0)の画素に分配される誤差は、予め設定しておけばよい。
【0088】
そして、2値誤差拡散処理部14は、C、M、YおよびKの画像データに対して、それぞれ2値誤差拡散処理を施し、その結果、白判定された画素、すなわち量子化値が0になった画素について、白画素フラグを付加する。
【0089】
そして、第2の実施形態のハーフトーン処理部13は、多値誤差拡散処理によるハーフトーン処理を行う際、2値誤差拡散処理部14において白判定された画素を必ずゼロ値とする。以下、本実施形態のハーフトーン処理部13における多値誤差拡散処理について説明する。
【0090】
ハーフトーン処理部13は、2値誤差拡散処理と同様に、各画素の濃度データを量子化閾値を用いて量子化し、その量子化値と濃度データから誤差を算出する。
【0091】
具体的には、量子化値をq[i]、量子化閾値をq_th[i]、各画素の濃度データをDとすると、最大ドロップ数がmaxdrop=3の場合、たとえば
図11に示すように各値を設定することができる。
【0092】
そして、2値誤差拡散処理と同様に、周辺画素から注目画素に分配される誤差をerr_mltとすると、
図11に示す量子化閾値q_th[1]~q_th[3]のうちのどれを使用するかを決定するiの値については、下式によって求められる。なお、INT()は、小数点以下を切り捨て、元の数字を超えない最大の整数を返す関数である。
i=INT((D+err_mlt)*maxdrop/255)
【0093】
たとえば
図11に示すようにD+err_mlt=150の場合、iは、下式によって演算されて1となる。
i=INT(150*3/255)=INT(1.76)=1
【0094】
このとき、量子化閾値は、q_th[1]=127が用いられ、D+err_mlt=150は、q[1]=85またはq[2]=170に量子化されるが、D+err_mlt=150は、q_th[1]=127よりも大きいので、量子化値は、q[2]=170となる。そして、多値化データ(インクドロップデータ)は、q[2]=170に対応する「2」となる。
【0095】
より具体的には、まず、上述したDerrが算出された後、iの値が算出される。そして、i>maxdropの場合には、i=maxdropに設定される。そして、i=maxdropの場合には、量子化値は、q[maxdrop]となり、多値化データは、maxdropになる。
【0096】
i=maxdropではない場合には、その画素について、白画素フラグが付加されているか否かが確認され、白画素フラグが付加されている場合には、その画素の量子化値としてゼロが算出され、多値化データもゼロになる。なお、上述したように白画素フラグが付加された画素については、量子化値がゼロにはなるが、入力濃度と量子化値ゼロとの誤差を周辺画素で補うため、誤差拡散の特徴上、濃度が低くなることは無い。
【0097】
一方、白画素フラグが付加されていない場合、Derr>q_th[i]の場合には、量子化値としてq[i+1]が算出され、多値化データはi+1になる。Derr≦q_th[i]の場合には、量子化値としてq[i]が算出され、多値化データはiになる。
【0098】
次に、上述した第2の実施形態のハーフトーン処理の演算処理の流れについて、
図12に示すフローチャートを参照しながら説明する。
【0099】
まず、ハーフトーン処理部13は、画像データを構成する画素のy座標をy=0に設定し(S90)、x座標をx=0に設定する(S92)。なお、画像データを構成する画素のx座標およびy座標はゼロが初期値である。
【0100】
そして、S90およびS92で設定したx座標およびy座標の位置の画素の濃度データに対して2値誤差拡散処理が施される(S94)。そして、白判定された場合には、その画素に白画素フラグが付加される(S96)。
【0101】
次に、S90およびS92で設定したx座標およびy座標の位置の画素の濃度データに対して多値誤差拡散処理が施され、その画素の多値化データが算出される(S98)多値誤差拡散処理の際には、上述したようにS96で付加された白画素フラグが参照される。
【0102】
次いで、ハーフトーン処理部13は、x座標を1インクリメントし(S100)、そのxの値が、画像データのx方向のサイズ(x_size)よりも小さい場合には(S102,YES)、S94~S100の処理を繰り返して行う。
【0103】
そして、ハーフトーン処理部13は、S102において、x≧x_sizeである場合には(S102,NO)、y座標を1インクリメントし(S104)、そのyの値が、画像データのy方向のサイズ(y_size)よりも小さい場合には(S106,YES)、S92~S104の処理を繰り返して行う。
【0104】
そして、ハーフトーン処理部13は、S106において、y≧y_sizeとなった時点で(S106,NO)、処理を終了する。これにより、画像データを構成する全ての画素について、多値化データ(インクドロップデータ)を求めることができる。
【0105】
次に、上述した第2の実施形態の変形例について説明する。第2の実施形態においては、2値誤差拡散処理を行って白判定された画素については白画素フラグを付加し、その画素については強制的に多値化データをゼロにするようにしたが、たとえば濃度が明るい部分については、もともと白画素の密度が高いので、上述したような処理を行った場合、ほとんどの画素の多値化誤差拡散処理の量子化値がゼロになってしまう。このような状態になった場合、多値化誤差拡散処理の過程において、量子化値がゼロになった画素の誤差が溜まり、印字可能な領域で急に大きな量値化値となってしまう。たとえば濃度が明るい部分では、0ドロップと1ドロップを混在させたいが、0ドロップと3ドロップの混在となってしまい、印刷画像の粒状性が悪化してしまう。
【0106】
そこで、第2の実施形態の変形例においては、2値誤差拡散処理後において、白画素の密度が高くなりすぎないようにする。
図13は、第2の実施形態の画像処理部10の変形例の構成を示す図である。
図13に示すように、第2の実施形態の画像処理部10の変形例では、白画素密度調整部15をさらに備える。
【0107】
白画素密度調整部15は、入力されたC、M、YおよびKの各画像データに対して、白画素密度調整処理として、濃度変換処理を施す。具体的には、白画素密度調整部15は、
図14に示すように、画像データの入力濃度が明るいほど、または暗いほど白判定される画素の密度を疎にし、中間濃度において白判定される画素の密度が最大となるような濃度変換処理を各画像データに施す。
【0108】
図14に示すグラフでは、中間濃度では、風紋ムラが低減されるのに十分な白画素密度となるように出力濃度を制御し、中間濃度よりも明るい部分では、明るいほど入力濃度に対する出力濃度が暗く(白画素密度が疎)なり、中間濃度よりも暗い部分では、暗いほど入力濃度に対する出力濃度が暗く(白画素密度が疎)なっている。なお、濃度変換処理の実現方法は、ルックアップテーブルでもよいし、所定の直線式などの関数でもよい。
【0109】
そして、2値誤差拡散処理部14は、白画素密度調整部15によって濃度変換処理が施された各画像データに対して2値誤差拡散処理部14を施す。第2の実施形態の変形例は、その他の構成については、第2の実施形態と同様である。
【0110】
第2の実施形態の変形例によれば、画像データの入力濃度が明るい部分ほど白判定される画素の密度を疎にするようにしたので、粒状性の悪化を防止することができる。
【0111】
また、2値誤差拡散処理後の白画素の密度を調整する方法としては、上記の方法に限らず、2値誤差拡散処理部14において、白判定される画素の密度を調整するようにしてもよい。
【0112】
具体的には、白判定した画素の量子化値を負の値とし、その負の値と黒判定した画素の量子化値とに基づいて、量子化閾値を設定して2値誤差拡散処理を行う。具体的には、
図15に示すように、白判定した画素の量子化値を負の値white_dens(たとえば-20)とし、その負の値white_densと黒判定した画素の量子化値black_dens(255)とに基づいて、量子化閾値(137)を算出し、2値誤差拡散処理を行う。上述したように量子化値を負の値(-20)とした場合、たとえば入力濃度が0であっても誤差は入力濃度(0)-量子化値(-20)=20となるので、周辺画素にプラスの誤差を分配する。つまり、周辺画素の濃度を濃くしようとする働きになり、これにより白画素の密度が疎になる。
【0113】
このような2値誤差拡散処理を画像データの中間濃度よりも明るい部分に施すことによって、2値誤差拡散処理後の白画素の密度を疎にすることができる。これにより、第2の実施形態の変形例と同様に、濃度が明るい部分においても粒状性の悪化を防止することができる。
【0114】
図16A~
図16Dは、モノクロのグラデーション画像に対して既存の多値誤差拡散処理を施した結果を示す図である。
図16A~
図16Dは、多値誤差拡散処理を施したグラデーション画像の一部を抜き出した図であり、A~Dに向けて濃度が薄くなっている。
図16Aは、最大濃度に変換された部分を含んでいる。既存の多値誤差拡散処理を施しただけでは、濃度範囲Rにおいて風紋ムラが起きやすい。
【0115】
図17A~
図17Dは、第2の実施形態のハーフトーン処理を、
図16A~
図16Dと同様のモノクロのグラデーション画像に施した結果を示す図である。
図17A~
図17Dでは、最大濃度に変換された部分を除いて全て白画素(ゼロ値)が含まれるように変換されている。特に、
図17Bおよび
図17Cのベタの部分において白画素が含まれているのが分かる。これにより、濃度範囲Rにおいて風紋ムラの影響を抑制することができる。
【0116】
本発明の画像処理装置に関し、さらに以下の付記を開示する。
(付記)
【0117】
本発明の画像処理装置において、ハーフトーン処理部は、画像データの濃度に応じて、画像データをn値(nは0以上の整数)とn+1値を含む多値化データに変換する過程において、多値化データにおいてゼロ値の画素が所定の画素数になった段階でn+1値の画素の増加を停止した後、画像データの濃度の増加に応じて、n+1値と同じ位置にn+2値を配置することができる。
【0118】
また、本発明の画像処理装置において、ハーフトーン処理部は、1値の画素にゼロ値の画素を隣接させ、1値の画素が2画素以上連続しないようにハーフトーン処理を施すことができる。
【0119】
また、本発明の画像処理装置において、ハーフトーン処理部は、各画素に対応する多値化データが大きくなるほど多値化データ全体に含まれるゼロ値の割合が減少するようにハーフトーン処理を施すことができる。
【0120】
また、本発明の画像処理装置においては、ハーフトーン処理部によるハーフトーン処理の前に、画像データに対して2値誤差拡散処理を施す2値誤差拡散処理部を備えることができ、ハーフトーン処理部は、ハーフトーン処理を行う際、2値誤差拡散処理部において白判定された画素の量子化値および多値化データをゼロ値とすることができる。
【0121】
また、本発明の画像処理装置においては、2値誤差拡散処理部による2値誤差拡散処理の前に、2値誤差拡散処理によって白判定される画素の密度を調整する白画素密度調整処理を画像データに施す白画素密度調整部を備えることができ、2値誤差拡散処理部は、白画素密度調整処理が施された画像データに対して2値誤差拡散処理を施すことができる。
【0122】
また、本発明の画像処理装置において、2値誤差拡散処理部は、白判定した画素の量子化値を負の値とし、その負の値と黒判定した画素の量子化値とに基づいて2値化閾値を設定して2値誤差拡散処理を行うことができる。
【0123】
また、本発明の画像処理装置においては、画像データの濃度が明るいほど白判定される画素の密度を疎にすることができる。
【符号の説明】
【0124】
1 インクジェット印刷装置
10 画像処理部
11 画像データ受付部
12 色変換部
13 ハーフトーン処理部
14 2値誤差拡散処理部
15 白画素密度調整部
20 ヘッド駆動制御部
30 インクジェットヘッド部
40 搬送部
50 制御部