JP2005086661A - 出力解像度に応じたフィルタ処理を行う画像処理装置 - Google Patents

出力解像度に応じたフィルタ処理を行う画像処理装置 Download PDF

Info

Publication number
JP2005086661A
JP2005086661A JP2003318430A JP2003318430A JP2005086661A JP 2005086661 A JP2005086661 A JP 2005086661A JP 2003318430 A JP2003318430 A JP 2003318430A JP 2003318430 A JP2003318430 A JP 2003318430A JP 2005086661 A JP2005086661 A JP 2005086661A
Authority
JP
Japan
Prior art keywords
image data
color system
smoothing
color
data
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.)
Granted
Application number
JP2003318430A
Other languages
English (en)
Other versions
JP4096846B2 (ja
Inventor
Shigeaki Sumiya
繁明 角谷
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 JP2003318430A priority Critical patent/JP4096846B2/ja
Publication of JP2005086661A publication Critical patent/JP2005086661A/ja
Application granted granted Critical
Publication of JP4096846B2 publication Critical patent/JP4096846B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

【課題】 画質を悪化させることなくプレ変換ノイズを効果的に除去する。
【解決手段】 第1の表色系によって表現された入力画像データを、プレ変換処理を行うことによって、第2の表色系で表現された出力画像データに変換する。こうすることで画像データの表色系を迅速に変換することができるが、その一方で画像データにはプレ変換ノイズが重畳するので、平滑化処理を行うことにより、プレ変換ノイズを除去してやる。このとき、平滑化の度合いを、出力画像データの解像度に応じて設定してやることで、ノイズを除去しながら、平滑化によって画像がぼやけた感じになることを効果的に回避することが可能となる。
【選択図】 図1

Description

この発明は、カラー画像データを変換する技術に関し、詳しくは第1の表色系により表現された画像データを、第2の表色系による画像データに迅速に変換する技術に関する。
カラー原稿をスキャナなどの画像入力部を用いて読み取ったり、コンピュータを用いて作成したカラー画像を、例えばCRTなどのディスプレイやカラープリンタなどを用いて再生表示させる画像処理装置が知られている。
これらディスプレイやカラープリンタなどの画像出力装置は、それぞれに特有の色再現特性を有していることから、スキャナなどを用いて入力したカラー画像の色を、画像出力装置の特性によらず良好に再現するためは、使用する画像出力装置の色再現特性に合わせて変換処理を行うことが必要となる。こうした変換は色変換と呼ばれる。色変換を行うための代表的な手法としては、変換テーブルを用いる技術が提案されている(特許文献1など)。変換テーブルとは、カラー画像データと色変換済みの画像データとを対応付けて記憶した数表である。例えば、カラー画像データがレッド(以下、Rと記す)、グリーン(以下、Gと記す)、ブルー(以下、Bと記す)の3色成分で表現可能なことに着目すると、これら各色成分を直交3軸に取った色空間を考えることができ、この色空間を格子状に分割して、各格子点に色変換済みのカラー画像データを予め記憶した3次元の数表を作成することができる。カラー画像データを色変換するときには、色空間上でカラー画像データに対応する座標点と該座標点の周囲にある格子点とを検出し、周囲の格子点に記憶されている画像データから補間演算を行うことによって、カラー画像データに対応する色変換済みの画像データを算出することができる。
また、本願出願人は、変換テーブルを参照しながらも、補間演算を行うことなく色変換処理を行うことによって迅速に処理可能な手法を開発し、既に出願済みである(特許文献2)。この手法では、カラー画像データにノイズを作用させることによって、カラー画像データを、該画像データに対応する座標点の周辺にあるいずれかの格子点に割り付ける処理を行う。この結果、カラー画像データは、色変換テーブルのいずれかの格子点に量子化されることになる。変換テーブルの各格子点には、色変換補正済みの画像データが予め記憶されているから、カラー画像データをいずれかの格子点に量子化してしまえば、補間演算を行うことなく、カラー画像データを色変換済みの画像データに迅速に色変換することができる。本明細書では、このようにカラー画像データを、変換テーブルの格子点のいずれかに量子化する処理を「プレ変換処理」と呼ぶ。
このように、プレ変換処理を行って得られた色変換済みの画像データには、画像データを量子化するために加えたことに起因するノイズが混入している。本明細書では、このようなノイズを「プレ変換ノイズ」と呼ぶ。一般にノイズは、平均すると互いに打ち消し合う性質があるので、色変換済みの画像データに含まれるプレ変換ノイズも、ある広さの領域で見れば互いに打ち消し合うこととなって、変換精度を大きく損なうことはない。とは言え、プレ変換ノイズが含まれていることは、少なくとも好ましいことではない。そこで、色変換済みの画像データに移動平均法などのローパスフィルタを作用させてプレ変換ノイズを除去することにより、カラー画像データを迅速にかつ精度良く変換することが可能となる。本明細書では、ローパスフィルタを作用させてプレ変換ノイズを除去する処理を「フィルタ処理」と呼ぶ。
特開平4−185075号公報 特開平9−294212号公報
しかし、色変換後の画像データにフィルタ処理を行ってプレ変換ノイズを除去しているにも関わらず、カラー画像データによっては、得られた画像が十分に高画質な画像とならない場合があった。
本発明は、従来技術における上述の課題を解決するためになされたものであり、プレ変換処理を行ってカラー画像データを迅速に色変換しながら、カラー画像データによらず、常に高画質な画像を表現可能な技術の提供を目的とする。
上述の課題の少なくとも一部を解決するため、本発明の画像処理装置は、次の構成を採用した。すなわち、
第1の表色系によって表現された入力画像データを、所定の大きさの画素により構成されて第2の表色系により表現された出力画像データに変換する画像処理装置であって、
前記第1の表色系によって表現され且つ予め選択された複数の画像データを、前記第2の表色系による画像データに対応付けて記憶している変換テーブルと、
前記各々の入力画像データを、前記変換テーブルに記憶されている第1の表色系による画像データのいずれかに変換することにより、該入力画像データの量子化を行う画像データ量子化手段と、
前記量子化した入力画像データを、前記変換テーブルを参照することにより前記第2の表色系による画像データに変換する表色系変換手段と、
前記出力画像データの画素の大きさに関わる出力解像度を検出する出力解像度検出手段と、
前記変換された第2の表色系による画像データを、前記検出した出力解像度に応じた度合いで平滑化する画像データ平滑化手段と、
前記平滑化された画像データを前記出力画像データとして出力する画像データ出力手段と
を備え、
前記画像データ平滑化手段は、前記平滑化されていない画素についての前記画像データと、前記平滑化された画素についての該画像データとを用いて、平滑化を行う手段であることを要旨とする。
また、上記の画像処理装置に対応する本発明の画像処理方法は、
第1の表色系によって表現された入力画像データを、所定の大きさの画素により構成されて第2の表色系により表現された出力画像データに変換する画像処理方法であって、
前記第1の表色系によって表現され且つ予め選択された複数の画像データを、前記第2の表色系による画像データに対応付けて、変換テーブルに記憶しておく工程(A)と、
前記各々の入力画像データを、前記変換テーブルに記憶されている第1の表色系による画像データのいずれかに変換することにより、該入力画像データの量子化を行う工程(B)と、
前記量子化した入力画像データを、前記変換テーブルを参照することにより前記第2の表色系による画像データに変換する工程(C)と、
前記出力画像データの画素の大きさに関わる出力解像度を検出する工程(D)と、
前記変換された第2の表色系による画像データを、前記検出した出力解像度に応じた度合いで平滑化する工程(E)と、
前記平滑化された画像データを前記出力画像データとして出力する工程(F)と
を備え、
前記工程(E)は、前記平滑化されていない画素についての前記画像データと、前記平滑化された画素についての該画像データとを用いて、平滑化を行う工程であることを要旨とする。
かかる画像処理装置および画像処理方法においては、前記第1の表色系で表現された入力画像データを量子化した後、前記変換テーブルを参照することによって、前記第2の表色系で表現された画像データに変換する。このとき、変換によって得られた画像データには、入力画像データを量子化したことに起因するノイズが重畳している。そこで、該第2の表色系による画像データを平滑化することにより該ノイズを減少させてから、出力画像データとして出力する。ここで、平滑化を行うに際しては、前記出力解像度を検出して、検出した出力解像度に応じた度合いで平滑化を行う。
こうすれば、画像処理の解像度に応じて適切な度合いで平滑化することができるので、プレ変換ノイズを効果的に除去しながら常に高画質な画像を表現することができる。
加えて、かかる平滑化に際して、本願の画像処理装置および画像処理方法においては、平滑化されていない画素についての画像データと、平滑化された画素についての画像データとを用いて、平滑化を行う。平滑化された画像データには、たとえ1画素分のデータであっても、平滑化前の複数の画素のデータが反映されている。従って、平滑化されていない画素についての画像データと、平滑化された画素についての画像データとを用いて平滑化を行えば、僅かな画素数のデータを考慮しただけで、実質的には多くの画素のデータを考慮した平滑化を行うことができる。このため、平滑化を迅速に行うことができ、延いては画像処理を迅速に実施することが可能となる。
尚、画像処理装置から出力された出力画像データを第2の画像処理装置に入力して、解像度が変換された新たな出力画像データにとして出力する場合も起こり得る。この様な場合の出力解像度とは、第2の画像処理装置から出力される画像データの解像度ではなく、第2の画像処理装置に向かって出力される出力画像データの解像度であることは言うまでもない。
かかる画像処理装置においては、画像データに平滑化に際して、平滑化されていない画素についての画像データと、平滑化された画素についての画像データとの重みを変更可能とするとともに、前記検出した出力解像度が高くなるほど、平滑化された画素についてのデータの重みを大きくすることとしても良い。
平滑化された画素についての重みを大きくするほど、得られる画像データは強く平滑化されることになる。詳細には後述するが、量子化に伴って発生するノイズを除去するためには、平滑化の度合いを強くする方が効果的である。しかし、その一方で、画像データがある階調値から他の階調値に急激に変化している部分で、変化が鈍ってしまい、全体としてぼやけた感じの画像になってしまうおそれがある。これに対して、出力解像度が高くなれば、隣接する画素間では階調値がゆっくり変化していても、画像全体として見れば階調値が依然として速やかに変化しているように見えるので、画質の悪化を引き起こすことはない。このことから、出力解像度が高くなるほど、平滑化された画素についての重みを大きくして、平滑化の度合いを強くしてやれば、画像データに含まれるノイズを効果的に除去しながら、ぼやけた感じの画像になってしまうことを回避することが可能となって好適である。
あるいは、上述した画像処理装置および画像処理方法においては、画像データを平滑化するに際して、該画像データにノイズを付加しながら平滑化することとしても良い。
詳細には後述するが、画像データが分解能と同じ程度しか変化しない場合などには、平滑化する際の丸め誤差により、変換精度が大きく低下してしまうことがある。このような場合は、画像データにノイズを付加しながら平滑化することで、こうした変換精度の低下を抑制することが可能となるので好適である。
あるいは、上述した画像処理装置においては、入力画像データが所定値以上変化する画素位置たるエッジ位置を検出することとして、該エッジ位置の検出結果と前記出力解像度の検出結果とに応じた度合いで、画像データの平滑化を行うこととしても良い。
一般に平滑化の度合いを強くすると、画像データに含まれる空間周波数の高い成分が除去されてしまい、全体としてぼやけた感じの画像となってしまう。特に、画像データの階調値が大きく変化するエッジ部分では、高い空間周波数を除去したことによる影響が顕著に現れ易い。このことから、画像データ中のエッジ位置を検出して、エッジの検出結果と出力解像度とに応じた度合いで平滑化を行うこととすれば、平滑化によってぼやけた感じの画像になってしまうことを効果的に回避することが可能となる。
また、上述した画像処理装置と、印刷媒体上に各色インクによるインクドットを形成することによって画像を印刷する印刷装置とを組み合わせることとしても良い。
上述した画像処理装置を用いて、印刷しようとする入力画像データを、第2の表色系の画像データに変換し、印刷装置は該第2の表色系を構成する各色インクを用いて、印刷媒体上にインクドットを形成する。こうすれば、入力画像データを量子化することで画像データを迅速に変換しつつ、量子化に伴って混入するノイズを効果的に除去して、高画質な画像を迅速に印刷することが可能となるので好ましい。
更に本発明は、上述した画像処理方法を実現するプログラムをコンピュータに読み込ませ、コンピュータを用いて実現することも可能である。従って、本発明は次のようなプログラム、あるいは該プログラムを記憶した記録媒体としての態様も含んでいる。すなわち、上述の画像処理方法に対応する本発明のプログラムは、
第1の表色系によって表現された入力画像データを、所定の大きさの画素により構成されて第2の表色系により表現された出力画像データに変換する画像処理方法を実現するためのコンピュータプログラムであって、
前記第1の表色系によって表現され且つ予め選択された複数の画像データを、前記第2の表色系による画像データに対応付けて、変換テーブルに記憶しておく機能(A)と、
前記各々の入力画像データを、前記変換テーブルに記憶されている第1の表色系による画像データのいずれかに変換することにより、該入力画像データの量子化を行う機能(B)と、
前記量子化した入力画像データを、前記変換テーブルを参照することにより前記第2の表色系による画像データに変換する機能(C)と、
前記出力画像データの画素の大きさに関わる出力解像度を検出する機能(D)と、
前記変換された第2の表色系による画像データを、前記検出した出力解像度に応じた度合いで平滑化する機能(E)と、
前記平滑化された画像データを前記出力画像データとして出力する機能(F)と
をコンピュータによって実現し、
前記機能(E)は、前記平滑化されていない画素についての前記画像データと、前記平滑化された画素についての該画像データとを用いて、平滑化を行う機能であることを要旨とする。
また、上述の画像処理方法に対応する本発明の記録媒体は、
第1の表色系によって表現された入力画像データを、所定の大きさの画素により構成されて第2の表色系により表現された出力画像データに変換する画像処理方法を、コンピュータを用いて実現するためのプログラムを記録した記録媒体であって、
前記第1の表色系によって表現され且つ予め選択された複数の画像データを、前記第2の表色系による画像データに対応付けて、変換テーブルに記憶しておく機能(A)と、
前記各々の入力画像データを、前記変換テーブルに記憶されている第1の表色系による画像データのいずれかに変換することにより、該入力画像データの量子化を行う機能(B)と、
前記量子化した入力画像データを、前記変換テーブルを参照することにより前記第2の表色系による画像データに変換する機能(C)と、
前記出力画像データの画素の大きさに関わる出力解像度を検出する機能(D)と、
前記変換された第2の表色系による画像データを、前記検出した出力解像度に応じた度合いで平滑化する機能(E)と、
前記平滑化された画像データを前記出力画像データとして出力する機能(F)と
を実現するプログラムをコンピュータで読みとり可能に記録しており、
前記機能(E)は、前記平滑化されていない画素についての前記画像データと、前記平滑化された画素についての該画像データとを用いて、平滑化を行う機能であることを要旨とする。
こうしたプログラム、あるいは記録媒体に記録されているプログラムをコンピュータに読み込ませ、該コンピュータを用いて上述の各種機能を実現すれば、画像データを常に適切に変換して高画質な画像を得ることが可能となる。
本発明の作用・効果をより明確に説明するために、本発明の実施の形態を、次のような順序に従って以下に説明する。
A.発明の概要:
B.装置構成:
C.画像データ変換処理の概要:
D.第1実施例のフィルタ処理:
E.第2実施例のフィルタ処理:
F.変形例:
A.発明の概要:
実施例の詳細な説明に先立って、理解の便宜を図るために、図1を参照しながら本発明の概要について説明する。図1は、印刷システムを例にとって、本発明の概要を概念的に示した説明図である。図示した印刷システムは、画像処理装置としてのコンピュータ10と、カラープリンタ20などから構成されている。コンピュータ10は、デジタルカメラやカラースキャナなどの画像機器から、RGB各色階調値によって表現されたカラー画像データを受け取ると、該カラー画像データを、カラープリンタ20で印刷可能な各色ドットの形成有無によって表現された印刷データに変換する。こうしたカラー画像データの変換は、プリンタドライバ12と呼ばれる専用のプログラムを用いて行われる。尚、RGB各色階調値によるカラー画像データは、各種アプリケーションプログラムを用いてコンピュータ10上で作成することもできる。
プリンタドライバ12は、解像度変換モジュール、プレ変換モジュール、色変換モジュール14、フィルタモジュール18、階調数変換モジュール、インターレースモジュールといった複数のモジュールから構成されている。詳細には後述するが、プリンタドライバ12はカラー画像データを受け取ると、順次これらモジュールで画像処理を施すことによって、受け取ったカラー画像データを印刷データに変換する。また、プリンタドライバ12には、カラープリンタ20へ出力する印刷データの出力解像度を検出するモジュール(出力解像度検出モジュール)も設けられている。
色変換モジュール14では、色変換テーブル(LUT)16を参照することによって、RGB各色階調値で表現された画像データを、カラープリンタ20に搭載されたインクの色、すなわちシアン(C)、マゼンタ(M)、イエロ(Y)などの各色についての階調値で表された画像データに色変換する。LUT(色変換テーブル)16には、RGB色空間を格子状に分割したそれぞれの格子点に対応付けて、各格子点のRGB画像データに対応するCMYなど各色の階調値が記憶されている。尚、以下では、説明の煩雑化を避けるために、カラープリンタ20に備えられているインクは、C,M,Y各色のインクのみであるものとして説明するが、もちろん黒(K)色や、淡シアン(LC)色、淡マゼンタ(LM)色などの他のインクが備えられたカラープリンタにも同様の説明を適用することができる。
プレ変換モジュールは、色変換処理に先立って、RGB各色の階調値で表されたRGB画像データを、LUT(色変換テーブル)16のいずれかの格子点の画像データに量子化する処理を行う。このとき、RGB画像データにノイズを作用させながら量子化することとしても良い。色変換処理に先立って、こうしてRGB画像データをプレ変換モジュールでLUTの格子点のデータにプレ変換してしまえば、色変換モジュール14ではLUTの格子点に記憶されているデータを読み出すだけで、補間演算を行うことなく迅速に色変換することができる。
こうして色変換した画像データにはプレ変換ノイズが含まれているので、フィルタモジュール18では、画像データにローパスフィルタを作用させてプレ変換ノイズを除去する処理を行う。ノイズは高い空間周波数を有することから、画像データ中の高周波成分を通しにくいフィルタを使用するほど、プレ変換ノイズを効果的に除去することができる。
しかし、画像データの高周波成分には、プレ変換ノイズだけではなく画像データが元々持っている画像成分も含まれている。例えば、画像中で、物の輪郭のように明度や色彩が急に変わる部分には高周波成分が含まれている。従って、プレ変換ノイズを完全に取り除いてしまうと、画像に元々含まれているこれら高周波成分まで除去されてしまい、ぼやけた感じの画像になってしまう場合がある。かといって、高周波成分を通してしまったのではプレ変換ノイズを除去することはできない。そこで、フィルタ処理に際しては、カラープリンタ20へ出力する印刷データの出力解像度を検出し、出力解像度に応じたフィルタを使用してプレ変換ノイズを除去してやる。出力解像度検出モジュールには、プリンタドライバ12に設定されている出力解像度が検出されて予め記憶されている。詳細には後述するが、こうして出力解像度に応じたローパスフィルタを用いれば、画像データに関わらずプレ変換ノイズを効果的に除去して高画質な画像を得ることができる。プリンタドライバ12が行うこうした画像処理にも種々の態様が存在している。以下では、実施例に基づいて、これら各種態様について説明する。
B.装置構成:
図2は、本実施例の画像処理装置としてのコンピュータ100の構成を示す説明図である。コンピュータ100は、CPU102を中心に、ROM104やRAM106などを、バス116で互いに接続して構成された周知のコンピュータである。
コンピュータ100には、フレキシブルディスク124やコンパクトディスク126などからデータを読み込むためのディスクコントローラDDC109や、周辺機器とデータの授受を行うための周辺機器インターフェースPIF108、CRT114を駆動するためのビデオインターフェースVIF112等が接続されている。PIF108には、後述するカラープリンタ200や、ハードディスク118等が接続されている。また、デジタルカメラ120や、カラースキャナ122等をPIF108に接続すれば、デジタルカメラ120やカラースキャナ122で取り込んだ画像を印刷することも可能である。また、ネットワークインターフェースカードNIC110を装着すれば、コンピュータ100を通信回線300に接続して、通信回線に接続された記憶装置310に記憶されているデータを取得することもできる。
図3は、第1実施例のカラープリンタ200の概略構成を示す説明図である。カラープリンタ200はシアン,マゼンタ,イエロ,ブラックの4色インクのドットを形成可能なインクジェットプリンタである。もちろん、これら4色のインクに加えて、染料濃度の低いシアン(淡シアン)インクと染料濃度の低いマゼンタ(淡マゼンタ)インクとを含めた合計6色のインクドットを形成可能なインクジェットプリンタを用いることもできる。尚、以下では場合によって、シアンインク,マゼンタインク,イエロインク,ブラックインク,淡シアンインク,淡マゼンタインクのそれぞれを、Cインク,Mインク,Yインク,Kインク,LCインク,LMインクと略称するものとする。
カラープリンタ200は、図示するように、キャリッジ240に搭載された印字ヘッド241を駆動してインクの吐出およびドット形成を行う機構と、このキャリッジ240をキャリッジモータ230によってプラテン236の軸方向に往復動させる機構と、紙送りモータ235によって印刷用紙Pを搬送する機構と、ドットの形成やキャリッジ240の移動および印刷用紙の搬送を制御する制御回路260とから構成されている。
キャリッジ240には、Kインクを収納するインクカートリッジ242と、Cインク,Mインク,Yインクの各種インクを収納するインクカートリッジ243とが装着されている。キャリッジ240にインクカートリッジ242,243を装着すると、カートリッジ内の各インクは図示しない導入管を通じて、印字ヘッド241の下面に設けられた各色毎のインク吐出用ヘッド244ないし247に供給される。各色毎のインク吐出用ヘッド244ないし247は、こうして供給されたインクを用いてインク滴を吐出して、印刷媒体上にインクドットを形成する。
制御回路260は、CPU261とROM262とRAM263等から構成されており、キャリッジモータ230および紙送りモータ235の動作を制御することによってキャリッジ240の主走査と副走査とを制御する。また、各色毎のインク吐出用ヘッド244ないし247の各ノズルからインク滴が適切なタイミングで吐出されるように、コンピュータ100から供給される印刷データに基づいてノズルの駆動タイミングを制御する処理も司っている。こうして、制御回路260の制御の下、印刷媒体上の適切な位置に各色のインクドットを形成することによって、カラープリンタ200はカラー画像を印刷することができる。
尚、各色のインク吐出ヘッドからインク滴を吐出する方法には、種々の方法を適用することができる。すなわち、ピエゾ素子を用いてインクを吐出する方式や、インク通路に配置したヒータでインク通路内に泡(バブル)を発生させてインク滴を吐出する方法などを用いることができる。また、インクを吐出する代わりに、熱転写などの現象を利用して印刷用紙上にインクドットを形成する方式や、静電気を利用して各色のトナー粉を印刷媒体上に付着させる方式のプリンタを使用することも可能である。
図4は、各色のインク吐出用ヘッド244ないし247の底面に、インク滴を吐出するノズルが形成されている様子を示した説明図である。図示するように、各色のインク吐出用ヘッドの底面には、各色毎のインク滴を吐出する4組のノズル列が形成されており、1組のノズル列は、48個のノズルがノズルピッチkの間隔を空けて千鳥状に配列されている。
以上のようなハードウェア構成を有するカラープリンタ200は、キャリッジモータ230を駆動することによって、各色のインク吐出用ヘッド244ないし247を印刷用紙Pに対して主走査方向に移動させ、また紙送りモータ235を駆動することによって、印刷用紙Pを副走査方向に移動させる。制御回路260は、印刷データに従って、キャリッジ240の主走査および副走査を繰り返しながら、適切なタイミングでノズルを駆動してインク滴を吐出する。こうして、各色インクのドットを、印刷用紙上の適切な位置に形成することによって、カラープリンタ200は印刷用紙上にカラー画像を印刷している。
C.画像データ変換処理の概要:
図6は、本実施例の画像処理装置としてのコンピュータ100が、受け取った画像データに所定の画像処理を加えることにより、印刷データに変換する処理の流れを示すフローチャートである。かかる処理は、コンピュータ100のオペレーティングシステムがプリンタドライバ12を起動することによって開始される。以下、図6に従って、本実施例のプリンタドライバ12が行う画像データ変換処理について簡単に説明する。
プリンタドライバ12は、画像データ変換処理を開始すると、先ず初めに、変換すべきRGBカラー画像データの読み込みを開始する(ステップS100)。次いで、取り込んだ画像データの解像度を、カラープリンタ200に出力するための出力解像度に変換する(ステップS102)。読み込んだカラー画像データの解像度が出力解像度よりも低い場合は、線形補間を行うことで隣接画像データ間に新たなデータを生成し、逆に出力解像度よりも高い場合は、一定の割合でデータを間引くことによって画像データの解像度を出力解像度に一致させる。
こうして解像度を変換すると、プレ変換処理を開始する(ステップS104)。プレ変換処理は、出力解像度に変換されたRGB画像データを、後述する変換テーブルのいずれかの格子点のデータに割り付ける処理である。具体的には、RGB画像データを、該変換テーブルに含まれる複数の格子点の中の最も近い格子点のデータに変換する。その結果、RGB画像データは、変換テーブルの格子点に対応したいずれかのデータに量子化されることになる。尚、量子化に際しては、RGB画像データにノイズを加えてから、最も近い格子点のデータに変換しても良い。
こうしてプレ変換処理を行ったら、変換テーブルを参照することにより色変換処理を行う(ステップS106)。図6には、色変換処理中で参照される変換テーブルを概念的に示している。RGB画像データは、直交3軸をR軸、G軸、B軸とする色立体内の座標値として表すことができる。変換テーブルは、色立体を細分した各格子点に、該格子点の画像データを色変換して得られる画像データを対応づけて記憶した3次元の数表である。ここでは、各格子点には、C、M、Y各色の階調値の組み合わせが記憶されているものとして説明するが、もちろん、CMYK各色の階調値や、これに加えてLCやLMなどの階調値を記憶しておくことも可能である。本実施例のプリンタドライバ12では、ステップS104のプレ変換処理によって、RGB画像データが変換テーブルの格子点のデータに変換されているので、対応する格子点に記憶されている画像データを読み出すだけで、迅速に色変換処理を行うことができる。
こうして色変換に先立ちプレ変換処理を施すことによって、色変換処理は迅速に行うことが可能となるが、得られた画像データにはプレ変換ノイズが重畳する。すなわち、プレ変換処理では元々のRGB画像データが変換テーブルの格子点の画像データに変更されるので、得られたCMY画像データは、元々のRGB画像データを色変換して得られるCMY画像データとは異なったデータとなっている。従って、この差がプレ変換ノイズとして、色変換後の画像データに重畳することになる。
もとより、プレ変換ノイズはランダムに発生するので、ある大きさの領域で見ればプレ変換ノイズが互いに打ち消し合って画質を大きく悪化させることはない。しかし、画像データにこうしたノイズが重畳していることは画質上好ましいことではない。そこで、本実施例のプリンタドライバ12では、色変換処理後の画像データにフィルタ処理を行って、プレ変換ノイズを除去する処理を行う(ステップS108)。フィルタ処理の詳細については後述する。
フィルタ処理を終了すると、続いて階調数変換処理を開始する(ステップS110)。階調数変換処理とは次のような処理である。色変換後の画像データは、階調値0から255の256階調を有するデータとして表現されているが、実際にはカラープリンタ200は、印刷用紙上に「ドットを形成する」か「ドットを形成しないか」のいずれかの状態しか取り得ない。そこで、256階調を有する画像データを、ドットの形成有無に対応したデータに変換する必要がある。このように階調数変換処理とは、256階調の画像データをドットの形成有無に対応した2階調の画像データに変換する処理である。階調数変換処理を行う手法としては、誤差拡散法やディザ法などの周知の種々の方法を適用することができる。
続いてプリンタドライバ12は、インターレース処理を開始する(ステップS112)。インターレース処理とは、ドットの形成有無を表す形式に変換された画像データを、ドットの形成順序を考慮しながらカラープリンタ200に転送すべき順序に並べ替える処理である。こうして最終的に得られたデータを、プリンタドライバは、印刷データとしてカラープリンタ200に出力する(ステップS114)。カラープリンタ200は、印刷データに従って、各色のインクドットを印刷媒体上に形成する。その結果、画像データに対応したカラー画像が印刷用紙上に印刷されることになる。
D.第1実施例のフィルタ処理:
図7は、第1実施例のフィルタ処理の流れを示したフローチャートである。かかる処理は、図5に示した画像データ変換処理中で、コンピュータ100のCPU102が行う処理である。また、フィルタ処理は画像データの各色毎に行われるが、説明の煩雑化を避けるために、ここでは色を特定することなく説明する。以下、図7のフローチャートに従って説明する。
フィルタ処理を開始すると、先ず初めにCPU102は、印刷用紙の大きさと出力解像度とを取得する(S200)。これらの値は、カラープリンタ200の操作者によってプリンタドライバ12に予め設定されている。
次いで、印刷用紙の大きさと出力解像度とに基づいて、画像データのラスタ数とラスタあたりの画素数nend とを算出する(ステップS202)。ラスタとは、主走査方向に並んだ画素の列を言う。各ラスタは同じ数の画素によって構成されていて、これらラスタを副走査方向に並べることによって1枚の画像が構成されている。1枚の画像を構成するラスタ数およびラスタあたりの画素数は、印刷用紙の大きさが大きくなるほど、そして出力解像度が高くなるほど大きくなる。そこで、ステップS202では、処理しようとする画像データを構成するラスタ数とラスタあたりの画素数nend とを、印刷用紙の大きさおよび出力解像度に基づいて算出する。
尚、ここで言うラスタ数、およびラスタあたりの画素数とは、あくまでもフィルタ処理が施される画像データについてのラスタ数および画素数であって、カラープリンタ200が印刷するときの最終的なラスタ数あるいは画素数と一致しているとは限らない。
次いで、出力解像度あるいは算出した画素数に基づいて、フィルタサイズNを決定する(ステップS204)。フィルタサイズNの意味するところ、およびフィルタサイズNの決め方については後述する。
フィルタサイズNを決定したら、ラスタ中で画素位置を示す変数nを初期化して(ステップS206)、ラスタの先頭画素についての画像データData(n)を読み込む(ステップS208)。次いで、読み込んだ画素がラスタの先頭画素か否か、すなわち「n=1」が成り立つか否かを判断する(ステップS210)。そして、「n=1」が成り立たない場合はラスタの先頭画素ではないと判断して、次の(1)式によってフィルタ後の画像データを算出し、得られた値をData'(n) に書き込む(ステップS214)。
Data'(n) =((Data(n)+N*Data'(n-1) )/(N+1) …(1)
ここで、Data'は、フィルタ処理後の画像データであり、Data'(n)は、ラスタの先頭からn番目の画素の画像データであることを示している。
一方、ステップS208で読み込んだ画素がラスタの先頭画素でない場合、すなわちステップS210において「n=1」が成り立つと判断された場合は、読み込んだ画像データData(1)の値をData'(0) に代入した後(ステップS212)、フィルタ後の画像データを算出して、得られた値をData'(1) に記憶する(ステップS214)。
次いで画素位置を示す変数nを1つ増加させた後(ステップS216)、変数nがラスタあたりの画素数nend を越えたか否か、すなわちn>nend となったか否かを判断する(ステップS218)。画素位置を示す変数nがラスタあたりの画素数nend を越えていない場合は(ステップS218:no)、ステップS208に戻って次の画素の画像データを読み込んだ後、上述した一連の処理を行う。画素位置を示す変数nがラスタあたりの画素数nend を越えている場合は(ステップS218:yes)、処理したラスタが最終ラスタか否かを判断する(ステップS220)。最終ラスタではない場合は(ステップS220:no)、処理するラスタ位置を1つずらした後(ステップS222)、ステップS206に戻って続く一連の処理を繰り返す。こうして画像データを構成する全てのラスタについて処理を終了したら、図7に示すフィルタ処理を終了して図5に示した画像データ変換処理に復帰する。
図8は、フィルタ処理による効果のシミュレーション計算を行った結果を示す説明図である。シミュレーション計算では、階調値がステップ状に変化する画像データを想定し、この画像データに種々のフィルタを作用させることによって、フィルタ処理の効果を調べている。図中で細い実線で示しているのは、フィルタ処理前の画像データである。ここでは、ラスタの先頭画素から44番目までの画素には階調値「5」が設定されており、45番目以降の画素には階調値「40」が設定されているような画像データを想定し、この画像データに、プレ変換ノイズの代わりとして適当なノイズを加えたデータを用いている。
図8で、フィルタAと示されているのは、フィルタサイズN=1の場合、すなわち、次式を用いてフィルタ処理を行った場合を示している。
Data'(n) =((Data(n)+Data'(n-1) )/2
また、図8でフィルタBと示されているのは、フィルタサイズN=2の場合、すなわち、次式を用いてフィルタ処理を行った場合を示している。
Data'(n) =((Data(n)+2*Data'(n-1) )/3
図8に示した2つのシミュレーション結果を比較すれば明らかなように、先頭画素から画素位置44番の画素までの範囲、あるいは画素位置45番以降の範囲に着目すれば、フィルタAよりもフィルタBの方がプレ変換ノイズを効果的に除去することができる。しかし、画像データの階調値がステップ状に変化している部分(画素位置45付近)に着目すると、フィルタAを用いた場合は階調値は2画素程度で階調値「5」から階調値「40」に切り換わっているが、フィルタBを用いた場合は階調値が切り換わるまでに5画素程度必要となる。このことから、フィルタサイズNの値が大きくなるほど、プレ変換ノイズを効果的に除去可能であるが、反面、画像データに含まれる階調値の変化を鈍らせてしまうことが分かる。
このように、フィルタサイズNは、画像データを平滑化する度合いを示す値と考えることができる。また、(1)式に示されているように、着目している画素のフィルタ処理後の画像データData'(n) は、その画素のフィルタ処理前の画像データData(n)と、1つ前の画素についてのフィルタ処理後の画像データData'(n-1) とに基づいて算出しており、これら2つの画像データからフィルタ処理後の画像データを算出するときの重みを示していると考えることもできる。
更には、フィルタサイズNが大きくなるほど、1つ前の画素についてのフィルタ処理後の画像データの重みが大きくなる。1つ前の画素のフィルタ処理後の画像データは、更にその前の画素の画像データに基づいて算出されるから、フィルタサイズNを大きくすると、より遠くの画素(例えば5つ前の画素)の影響も強く受けるようになる。このことから、フィルタサイズNは、フィルタ処理を行うにあたって、どの程度前の画素まで遡るか、換言すれば画像データの平滑化を行う画素範囲を示す値であると考えることもできる。
フィルタサイズNがこうした性質を有するのは、フィルタ後の画像データを求める算出式が、前述した(1)式のような形式であることによるものである。この点について補足して説明する。(1)式に示されているように、ラスタの先頭からn番目の画素についてのフィルタ後の画像データData'(n) は、その画素についてのフィルタ前の画像データData(n)と、1つ前の画素についてのフィルタ後の画像データData'(n-1)とから算出することとしている。このように、フィルタ後の画像データData'(n) を求める算出式に、既に求めたフィルタ後の画像データData'(n-1) が含まれていると、この画像データData'(n-1) を算出するために更に前の画像データが使用されていたことになる。結局、(1)式では、フィルタ後の画像データを算出するために、2画素分の画像データしか使用していないにもかかわらず、実質的には、多数の画素を遡ってこれらの画像データを反映したフィルタ処理を行うことが可能である。そして、フィルタサイズNが大きくなるほど、実質的に反映される画像データが、より遠くの画素まで遡ることになるのである。このように、(1)式のような形式の算出式、すなわち、フィルタ後の画像データを求める算出式に、既に求めたフィルタ後の画像データが含まれているような算出式を用いれば、フィルタ処理を簡便に行うことが可能となり、しかも、フィルタサイズNを調整することで、平滑化の程度も自由に変更することが可能となるのである。
上述したように、フィルタサイズNの値を大きくすれば、プレ変換ノイズを効果的に除去することが可能となるが、反面、画像中で階調値が変化している部分を鈍らせてしまう。このことから、フィルタサイズNには最適値が存在している。フィルタサイズNの最適値は、出力解像度に応じて異なった値を取る。この理由を、再び図8を参照しながら説明する。図8に示したように、フィルタBを用いた場合は画像データの階調値が切り換わるために約5画素程度必要となる。仮に、カラープリンタの印刷解像度が720dpi(1インチに720画素)の場合に、階調値の切り換えに5画素も要したのでは輪郭のぼやけた画像になってしまう。すなわち、印刷解像度720dpiの場合は、プレ変換ノイズを効果的に除去可能なフィルタBを用いるよりも、プレ変換ノイズを除去する能力は劣るものの画像データの階調値が速やかに切り換わるフィルタAを用いた方が、輪郭のぼやけない良好な画質が得られることになる。従って、この場合は、フィルタサイズNの最適値は「1」になる。
ところが、カラープリンタ200の印刷解像度が1440dpi(1インチに1440画素)であるとすると、解像度が720dpiの場合に比べて1インチあたりの画素数が2倍になるので、画像データの切り換わりに5画素を要するフィルタBを用いた場合でも、人間の目には解像度720dpiのときにフィルタAを用いた場合とほぼ同程度に、速やかに切り換わっているように見える。従って、解像度1440dpiの場合は、プレ変換ノイズを効果的に除去可能はフィルタBを用いた方が良好な画質が得られることになり、フィルタサイズの最適値は「2」となる。
このように、フィルタサイズNの最適値は、プレ変換ノイズを除去する観点と、画像データを速やかに切り換えて画像の輪郭がぼやけないようにする観点とによって定まる値である。プレ変換ノイズの除去に関しては、フィルタサイズNの値は、もちろん必要以上に大きくする必要は無いものの、大きな値とする方が好ましい。一方、画像データの階調値を速やかに切り換えて、画像の輪郭がぼやけないようにする観点からは、フィルタサイズNの値は小さい方が望ましく、フィルタサイズNが大きくなるほど画像データの階調値の切り換えに要する画素数が多くなる。画像の輪郭がぼやけないためには、階調値の切り変わるために要する画素数をどの程度まで許容できるかは、印刷解像度によって異なり、解像度が高くなるほど許容可能な画素数は大きくなる。従って、印刷解像度が高くなるほど、画質上許容可能なフィルタサイズNの値は大きくなる。これに対してプレ変換ノイズは、解像度とは全く無関係に生じるから、印刷解像度が高くなってもプレ変換ノイズが増えるようなことはない。結局、フィルタサイズNの最適値は印刷解像度に応じて定まり、解像度が高くなるほど最適値は大きくなるのである。
尚、プリンタでの印刷解像度と、画像データ処理での処理解像度とが一致しない場合がある。例えば、画像印刷の迅速化の要請から、画像データ変換処理に要する時間を短縮化するために、プリンタの印刷解像度は1440dpiであるにもかかわらず画像処理は720dpiで行って、プリンタへ出力する前に1440dpiに変換する場合がある。このような場合は、フィルタBを用いたのでは、解像度720dpiの画像データにフィルタ処理を行うことになり、輪郭のぼやけた画像となってしまう。従って、フィルタサイズNの最適値は、画像処理の解像度720dpiに合わせて「1」となる。上述の説明では、煩雑化を避けるために、画像処理の解像度と印刷解像度とは一致しているものとして説明したが、これらが一致していない場合は、画像処理の解像度に応じてフィルタサイズNの最適値が決まることは言うまでもない。
図9は、印刷解像度(あるいは画像処理の解像度)に対応づけて、フィルタサイズNの値が設定されている様子を概念的に例示した説明図である。図示した例では、印刷解像度360dpiではフィルタサイズNは「0」に設定され、解像度720dpiではフィルタサイズNは「1」が、解像度1440dpiではフィルタサイズNは「2」が設定されている。図2に示したコンピュータ100のROM104には、こうした対応表が予め記憶されている。図7を用いて前述したフィルタ処理中のステップS204では、こうした対応表を参照することにより、印刷解像度(あるいは画像処理の解像度)に応じた最適なフィルタサイズNを決定している。
以上に説明したように、第1実施例のフィルタ処理では、印刷解像度(あるいは画像処理の解像度)に応じた適切なフィルタサイズNを用いてフィルタ処理を行う。前述したように、フィルタサイズNは画像データを平滑化する度合いを示す指標と考えることができるから、第1実施例のフィルタ処理では、解像度に応じて平滑化の度合いを最適に制御していることになる。このため、どのような画像データに対しても、プレ変換ノイズを効果的に除去しながら、画像の輪郭のぼやけない良好な画質が得られるように、適切に画像処理を行うことが可能となる。
E.第2実施例のフィルタ処理:
上述した第1実施例のフィルタ処理では、フィルタ後の画像データを、フィルタ前の画素についての画像データと、既にフィルタ処理を行った画素の画像データとから算出したが、これにノイズを加えながらフィルタ処理を行うこととしても良い。以下では、こうした第2実施例のフィルタ処理について説明する。
図10は、第2実施例のフィルタ処理の流れを示したフローチャートである。かかる処理は、フィルタ処理後の画像データを算出する際にノイズを加えている点が、図7に示した第1実施例のフィルタ処理に対して大きく異なっているが、他はほぼ同様である。以下では、こうした相違点を中心として、第2実施例のフィルタ処理について簡単に説明する。
第2実施例のフィルタ処理においても第1実施例と同様に、先ず初めにCPU102は、印刷用紙の大きさと出力解像度とを取得し(ステップS300)、これらの値に基づいて、画像データのラスタ数と、ラスタあたりの画素数nend とを算出する(ステップS302)。
次いで、出力解像度あるいは算出した画素数に基づいて、フィルタサイズNを決定する(ステップS304)。フィルタサイズNは、第2実施例においても第1実施例と同様に、コンピュータ100のROM104に記憶されている対応表を参照することによって決定する。こうしてフィルタサイズNを決定したら、ラスタ中で画素位置を示す変数nを初期化して(ステップS306)、画像データData(n)を読み込む(ステップS308)。次いで、読み込んだ画素がラスタの先頭画素か否か、すなわち「n=1」が成り立つか否かを判断し(ステップS310)、「n=1」が成り立つ場合は、読み込んだ画像データData(1)の値をData'(0) に代入しておく(ステップS312)。また、ステップS310で「n=1」が成り立たないと判断された場合は、こうした処理はスキップする。
続いて、第2実施例ではノイズNZを発生させ(ステップS314)、次の(2)式に基づいて、フィルタ後の画像データを算出して、得られた値をData'(n) に書き込む処理を行う(ステップS316)。
Data'(n) =((Data(n)+N*Data'(n-1) )/(N+1))+NZ …(2)
ここで、ノイズNZの大きさがあまりに小さいのではノイズを加える効果が十分に得られず、かといってノイズNZがあまりに大きいのでは画質に悪影響を与えるおそれがある。従って、発生させるノイズNZの大きさには最適値が存在する。経験によれば、発生させるノイズNZの大きさを、画像データData の分解能の約半分からほぼ同程度の大きさに設定しておけば、良好な結果を得ることができる。尚、こうしてノイズNZを加えることにより得られる効果については後述する。
次いで、画素位置を示す変数nを1つ増加させた後(ステップS318)、変数nがラスタあたりの画素数nend を越えたか否かを判断する(ステップS320)。変数nがnend に達していない場合は(ステップS320:no)、ステップS308に戻って、上述した一連の処理を繰り返す。変数nがnend に達している場合は(ステップS320:yes)、処理したラスタが最終ラスタか否かを判断する(ステップS322)。そして、最終ラスタでない場合は(ステップS322:no)、処理するラスタを1つずらして(ステップS324)、ステップS306に戻り、それ以降の上述した処理を行う。こうして処理しているラスタが最終ラスタに達したら(ステップS322:yes)、図10に示した第2実施例のフィルタ処理を終了し、図5の画像データ変換処理に復帰する。
図11は、ノイズNZを作用させながらフィルタ処理を行うことによる効果を示した説明図である。図には、画像データData(n)にフィルタ処理を施して、画像データData'(n) に変換する様子が示されている。図11(a)は、フィルタ処理に用いた算出式を示しており、図11(b)はノイズNZを作用させない場合に得られる画像データData'(n) を、図11(c)はノイズNZを作用させた場合に得られる画像データData'(n) を示している。尚、ここでは理解の便宜を図って、フィルタサイズN=1の場合について説明するが、以下の説明は異なるフィルタサイズNに対しても全く同様に適用することができる。
初めに、図11(b)を参照しながら、ノイズNZを作用させない場合について説明する。フィルタ処理を行う画像データData(n)としては、ラスタの先頭から3つ目の画素までは「0」であり、4つ目以降の画素は「1」となるようなデータを想定する。図10のフローチャートを用いて説明したように、ラスタの先頭画素についてのフィルタ処理後の画像データData'(1) は、画像データData(n)と同じ値の「0」となる。
先頭から2画素目の画像データData'(2) は、1画素目の画像データData'(1) が「0」であり、2画素目の画像データData(2)が「0」であるから、図11(a)の算出式からData'(2) =0と算出され、この値がData'(2) に記憶される。図11(b)に太い破線で示した矢印は、2画素目の画像データData(2)と、先頭画素についてのフィルタ後の画像データData'(1) とに基づいて、画像データData'(2) を算出している様子を概念的に表しており、太い破線の矩形中に記載された数値は、得られた算出値を実数で示したものである。そして、太い実線の矢印は、算出値をフィルタ後の画像データData'(2) として記憶している様子を概念的に表している。
先頭から3画素目の画像データData'(3) についても同様にして算出する。すなわち、3画素目のフィルタ前の画像データData(3)と、2画素目の画像データData'(2) とから得られた算出値を、3画素目の画像データData'(3) として記憶する。
次に、先頭から4画素目になると、画像データData'(4) については、4画素目のフィルタ前の画像データData(4)が「1」であり、3画素目のフィルタ後の画像データData'(3) が「0」であるから、算出値として「0.5」が得られる。ここで、画像データの分解能が「1」であるとすると、分解能より小さな値は切り捨てられてしまうので、フィルタ後の画像データData'(4) には「0」が記憶される。先頭から5画素目の画像データData'(5) についても同様に、得られた算出値を記憶する際に、分解能より小さな値は切り捨てられてしまうので、フィルタ後の画像データData'(5) には「0」が記憶される。このように、フィルタ処理を施す前の画像データData(n)については、先頭から4画素目以降の値は「0」から「1」に増加しているにもかかわらず、フィルタ後の画像データData'(n) はいつまでも「0」に貼り付いてしまうことが起こり得る。こうした現象は、画像データData(n)が「0」から「1」に増加する場合に限らず生じ、フィルタサイズNが大きくなるほど生じ易くなる。
図11(c)は、ノイズNZを作用させながら画像データData'(n) を求める様子を示している。尚、ここでは、ノイズNZとして、「−0.5」から「0.5」の範囲でランダムに発生させたものを使用した。また、画像データは常に正の値を取るものとして、負の値となった場合は「0」に丸められるものとした。
先ず、先頭から2画素目の画像データData'(2) を求める手順について説明する。画像データData'(2) は、フィルタ前の2画素目の画像データData(2)とフィルタ後の1画素目の画像データData'(1) とに基づいて算出される。ここでは、1画素目の画像データData'(1) が「0」であり、2画素目の画像データData(2)が「0」であるが、これにノイズNZを作用させて算出値を得る。図11(c)に示した例では、算出値として「0.2」が得られている。こうして得られた算出値をフィルタ後の画像データData'(2) として記憶する。このとき、分解能より小さな数値は切り捨てられてしまい、結局は「0」が画像データData'(2) として記憶されることになる。先頭から3画素目の画像データData'(3) についても同様に、算出値としては「0.5」が得られるが、フィルタ後の画像データData'(3) としては「0」が記憶される。
先頭から4画素目になると、フィルタ前の画像データData(4)の値は「0」から「1」に増加するが、フィルタ後の画像データData'(3) の値が「0」であるため、ノイズNZを採用させても算出値は「0.1」にとどまっている。このため、フィルタ後の画像データData'(4) として記憶される値は「0」のままである。先頭から5画素目の画像データData'(5) についても、フィルタ前の画像データData(5)が「1」で、フィルタ後の画像データData'(4) が「0」であり、この状況は、4画素目の画像データData'(4) と全く同じである。しかし、ノイズNZが異なっているため、得られる算出値は「1.1」となり、結局、フィルタ後の画像データData'(5) としては「1」が記憶されることになる。
このように、ノイズNZを作用させない場合は、算出値が画像データの最小分解能である「1」を越えることが無く、このため、フィルタ後の画像データData'(n) は何時までも「0」に貼り付いたままになってしまう。これに対して、ある程度以上の大きさを有するノイズNZを作用させておけば、いずれは算出値が、画像データの最小分解能を越えるようにすることができる。このため、フィルタ後の画像データData'(n) が何時までも「0」に貼り付いたままになってしまうといった事態を、回避することが可能となるのである。
尚、以上の説明では、(2)式に示したように、ノイズNZは、フィルタ前の画像データData(n)とフィルタ後の画像データData'(n) とを算術平均した値に作用させるものとした。しかし、これに限らず、次の(3)式に例示するように、算術平均する前にノイズNZを作用させることとしても良い。
Data'(n) =(Data(n)+N*Data'(n-1) +NZ)/(N+1) …(3)
(3)式では、ノイズNZを作用させてから(N+1)で除算しているので、ノイズNZの分解能を画像データの分解能より小さな値としておく必要がない。このため、算術平均を、画像データの分解能と同じ分解能で行うことが可能になるなど、フィルタ処理の簡素化を図ることができるという利点が得られる。
F.変形例:
上述した各実施例には、いくつかの変形例が存在している。以下では、これら変形例について簡単に説明する。
(1)第1の変形例:
上述した各種実施例のフィルタ処理では、印刷解像度に応じて適切なフィルタサイズNを用いてフィルタ処理を行ったが、画像中で物体の輪郭などのように、画像データの階調値が大きく変化している部分では、フィルタ処理を行わないようにすることとしても良い。以下では、こうした第1の変形例のフィルタ処理について説明する。
図12および図13は、第1の変形例におけるフィルタ処理の流れを示したフローチャートである。かかるフローチャートは、図7に示した第1実施例のフィルタ処理に対して、画像データが大きく変化している部分(エッジ部分)を検出して、かかる部分ではフィルタ処理を行わないこととしている点が大きく異なっている。以下、図12および図13のフローチャートに従って説明する。
第1の変形例におけるフィルタ処理においても第1実施例と同様に、先ず初めにCPU102は、印刷用紙の大きさと出力解像度とを取得し(S400)、印刷用紙の大きさと出力解像度とに基づいて、画像データのラスタ数とラスタあたりの画素数nend とを算出する(ステップS402)。
次いで、出力解像度あるいは算出した画素数に基づいて、フィルタサイズNを決定する(ステップS404)。フィルタサイズNは、前述した第1実施例と同様に、コンピュータ100のROM104に記憶されている対応表を参照することによって、フィルタサイズNを決定する。尚、第1の変形例におけるフィルタ処理で参照する対応表には、第1実施例で参照される対応表よりも大きなフィルタサイズNが設定されている。この理由については後述する。
フィルタサイズNを決定したら、ラスタ中で画素位置を示す変数nを初期化して(ステップS406)、フィルタ処理前の画像データData(0)およびフィルタ処理後の画像データData'(0) の値も初期化しておく(ステップS408)。
次いで、画素位置を示す変数nを1つ増加させた後(ステップS410)、画素位置nの画素についての画像データData(n)を読み込む(ステップS412)。初期化直後の場合は、画素位置を示す変数nの値は「1」に設定されているから、ステップS412では、ラスタの先頭画素の画像データData(1)を読み込むことになる。
次いで、読み込んだ画像データData(n)と、1つ前に読み込んだ画像データData(n-1)との差の絶対値が、所定の閾値thより大きいか否かを判断する(ステップS414)。すなわち、処理中の画素の画像データが、1つ前に処理した画素の画像データと比較して大きく変わっていれば、処理中の画素はエッジの部分に相当していると考えられる。そこで、2つの画像データの差の絶対値が所定の閾値thよりも大きい場合は(ステップS414:yes)、フィルタ処理を行うことなく、読み込んだ画像データData(n)をそのままフィルタ処理後の画像データData'(n) として記憶する。逆に、処理中の画像データData(n)と1つ前に読み込んだ画像データData(n-1)の差の絶対値が、所定の閾値thより小さい場合は、上述した(1)式を用いてフィルタ処理を行い、得られた値をフィルタ処理後の画像データData'(n) に記憶する。
また、処理画素がラスタの先頭位置の画素である場合は、先頭位置の画像データData(1)と、初期化時に設定しておいた画像データData(0)との差の絶対値を所定の閾値thと比較することにより、エッジ部分に相当するか否かの判断を行う。
こうして処理画素についてのフィルタ処理を終了したら、画素位置を示す変数nがラスタ値の画素数nend に達したか否かを判断する(ステップS420)。そして、変数nがnend に達していない場合は(ステップS420:no)、ラスタの処理を完了していないと判断し、ステップS410に戻って、画素位置を示す変数nを1つ増やした後、続く一連の処理を繰り返す。逆に、画素位置を示す変数nがラスタあたりの画素数nend に達した場合は(ステップS420:yes)、処理中のラスタが最終ラスタか否かを判断する(ステップS422)。最終ラスタでない場合は、処理するラスタの位置を1つずらしてから(ステップS424)、ステップS406に戻って、続く一連の処理を繰り返す。こうして最終ラスタの処理が完了したら(ステップS422:yes)、第1の変形例例のフィルタ処理を終了して、図5に示す画像データ変換処理に復帰する。
以上に説明した第1の変形例のフィルタ処理では、画像中のエッジの部分はフィルタ処理を行わないので、第1実施例のフィルタ処理に比べてフィルタサイズNを大きな値としても、画像の輪郭がぼやけるといった問題が生じることがない。このことから、第1の変形例のフィルタ処理を用いれば、フィルタサイズNを大きな値に設定することにより、プレ変換ノイズを充分に除去して良好な画質の画像を得ることができる。
もっとも、如何にエッジ部分で画像の輪郭がぼやけることがないと言っても、フィルタサイズNをあまりに大きくしたのでは、画像データに含まれる空間周波数の高い成分まで除去してしまうことになるので、フィルタサイズNには自ずから制限がある。人間が視覚によって把握可能は空間周波数には限界があるから、画像中に含まれる空間周波数は、基本的には印刷解像度に依存しないと考えられる。このことから、印刷解像度が高くなるほど、画像データを広い画素範囲に亘って平滑化しても(すなわち、大きな値のフィルタサイズNを用いても)、画像データに含まれる高い周波数成分は損なわれ難くなる。すなわち、第1の変形例のフィルタ処理においても、印刷解像度(あるいは処理解像度)に応じて適切な値が存在している。そこで、図12のステップS404においては、ROM104に記憶されている対応表を参照することにより、印刷解像度に応じた適切なフィルタサイズNを決定するのである。
尚、以上の説明においては、エッジの部分ではフィルタ処理を行わないものとして説明したが、エッジ部分でフィルタ処理を中止するのではなく、平滑化の程度を、エッジでない部分よりも小さくしても良いのはもちろんである。
また、上述した第1の変形例では、エッジ部分を検出する処理は、フィルタ処理内で、すなわちプレ変換処理および色変換処理を行った画像データに対して行うものとして説明した。もっとも、エッジを検出する処理は、プレ変換処理前の画像データに対して行うこととしても良い。当然、プレ変換処理前の画像データは、RGB各色の階調データとなっているが、この様な場合、これら各色の階調データの中の1色でも階調値が大きく変化している場合には、エッジ部分と判断すればよい。こうしてプレ変換前にエッジ部分を検出しておけば、プレ変換処理によって生じるノイズの影響を受けることなく、エッジ部分を検出することが可能となる。
(2)第2の変形例:
印刷解像度(あるいは処理解像度)に基づいて設定されたフィルタサイズNを、コンピュータ100の画面上で修正可能として、修正されたフィルタサイズを用いてフィルタ処理を行うこととしてもよい。フィルタサイズNの修正度合いは、印刷開始に先立って、プリンタドライバ12に対して予め設定しておく。図14は、コンピュータ100の画面上で、プリンタドライバ12に対してフィルタサイズNの修正度合いを設定している様子を例示する説明図である。画面上でノブ130を移動させることにより、出力解像度に基づいて設定されたフィルタサイズNを修正することができる。例えば、ノブ130を「くっきり」と表示されている側に移動させれば、フィルタサイズNは小さめの値に修正されて、画像の輪郭のぼやけないくっきりした画像を得ることが可能となる。逆に、ノブ130を「なめらか」と表示されている側に移動させれば、フィルタサイズNが大きめの値に修正されて、ノイズがより効果的に除去されたなめらかな画像を得ることが可能となる。
(3)第3の変形例:
上述した各種実施例では、(1)式あるいは(2)式で示されるようなフィルタを用いて平滑化を行うものとしたが、これに限らず、例えば、移動平均法や、いわゆる各種のデジタルフィルタを用いて平滑化処理を行うこととしてもよい。移動平均法では、有限数の画素範囲で平滑化が行われるので、平滑化の対象となる画素範囲が明確になる分だけ処理結果を予測しやすいという利点がある。また、いわゆるデジタルフィルタを用いれば、画像データの中から除去しようとする周波数範囲をより柔軟に設定することが可能であり、その分だけ画質を改善させることが可能となるので好ましい。
以上、各種の実施例について説明してきたが、本発明は上記すべての実施例に限られるものではなく、その要旨を逸脱しない範囲において種々の態様で実施することができる。例えば、上述の機能を実現するソフトウェアプログラム(アプリケーションプログラム)を、通信回線を介してコンピュータシステムのメインメモリまたは外部記憶装置に供給し実行するものであってもよい。もちろん、CD−ROMやフレキシブルディスクに記憶されたソフトウェアプログラムを読み込んで実行するものであっても構わない。
また、上述した各種実施例では、画像データ変換処理はコンピュータ内で実行されるものとして説明したが、画像データ変換処理の一部あるいは全部をプリンタ側、あるいは専用の画像処理装置を用いて実行するものであっても構わない。
更には、画像表示装置は、必ずしも印刷媒体上にインクドットを形成して画像を印刷する印刷装置に限定されるものではなく、例えば、液晶表示画面上で輝点を適切な密度で分散させることにより、階調が連続的に変化する画像を表現する液晶表示装置であっても構わない。
本発明の概要を例示した印刷システムの概略構成図である。 本実施例の画像処理装置としてのコンピュータの構成を示す説明図である。 本実施例の画像表示装置としてのプリンタの概略構成図である。 インク吐出用ヘッドの底面にノズルが配置されている様子を示した説明図である。 本実施例の画像処理装置で行われる画像データ変換処理の流れを示すフローチャートである。 画像データ変換処理中で参照される変換テーブルを概念的に示した説明図である。 第1実施例のフィルタ処理の流れを示すフローチャートである。 シミュレーション結果を用いてフィルタ処理の効果を示す説明図である。 出力解像度に応じて適切なフィルタサイズが設定されている様子を例示した説明図である。 第2実施例のフィルタ処理の流れを示したフローチャートである。 ノイズNZを作用させながらフィルタ処理を行うことによる効果を示した説明図である。 第1の変形例におけるフィルタ処理の前半部分の流れを示すフローチャートである。 第1の変形例におけるフィルタ処理の後半部分の流れを示すフローチャートである。 第2の変形例においてフィルタサイズの修正をプリンタドライバに対して設定している様子を例示する説明図である。
符号の説明
10…コンピュータ
12…プリンタドライバ
14…色変換モジュール
20…カラープリンタ
100…コンピュータ
102…CPU
104…ROM
106…RAM
108…周辺機器インターフェースPIF
109…ディスクコントローラDDC
110…ネットワークインターフェースカードNIC
112…ビデオインターフェースVIF
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 (9)

  1. 第1の表色系によって表現された入力画像データを、所定の大きさの画素により構成されて第2の表色系により表現された出力画像データに変換する画像処理装置であって、
    前記第1の表色系によって表現され且つ予め選択された複数の画像データを、前記第2の表色系による画像データに対応付けて記憶している変換テーブルと、
    前記各々の入力画像データを、前記変換テーブルに記憶されている第1の表色系による画像データのいずれかに変換することにより、該入力画像データの量子化を行う画像データ量子化手段と、
    前記量子化した入力画像データを、前記変換テーブルを参照することにより前記第2の表色系による画像データに変換する表色系変換手段と、
    前記出力画像データの画素の大きさに関わる出力解像度を検出する出力解像度検出手段と、
    前記変換された第2の表色系による画像データを、前記検出した出力解像度に応じた度合いで平滑化する画像データ平滑化手段と、
    前記平滑化された画像データを前記出力画像データとして出力する画像データ出力手段と
    を備え、
    前記画像データ平滑化手段は、前記平滑化されていない画素についての前記画像データと、前記平滑化された画素についての該画像データとを用いて、平滑化を行う手段である画像処理装置。
  2. 請求項1記載の画像処理装置であって、
    前記画像データ平滑化手段は、前記平滑化に際して、該平滑化されていない画素についての画像データと、該平滑化された画素についての画像データとの重みを変更可能であるとともに、前記検出した出力解像度が高くなるほど、該平滑化された画像データの重みを大きくする手段である画像処理装置。
  3. 請求項1または請求項2記載の画像処理装置であって、
    前記画像データ平滑化手段は、
    前記平滑化に際して、前記画像データにノイズを付加するノイズ付加手段を備えている画像処理装置。
  4. 請求項1または請求項2記載の画像処理装置であって、
    前記入力画像データが所定値以上変化する画素位置たるエッジ位置を検出するエッジ検出手段を備え、
    前記画像データ平滑化手段は、前記エッジ位置の検出結果と前記出力解像度の検出結果とに応じた度合いで、前記画像データの平滑化を行う手段である画像処理装置。
  5. 第1の表色系によって表現された入力画像データを受け取り、第2の表色系を構成する各色インクを用いて、画素毎にインクドットを形成することにより画像を印刷する印刷装置であって、
    前記第1の表色系によって表現され且つ予め選択された複数の画像データを、前記第2の表色系による画像データに対応付けて記憶している変換テーブルと、
    前記各々の入力画像データを、前記変換テーブルに記憶されている第1の表色系による画像データのいずれかに変換することにより、該入力画像データの量子化を行う画像データ量子化手段と、
    前記量子化した入力画像データを、前記変換テーブルを参照することにより前記第2の表色系による画像データに変換する表色系変換手段と、
    前記画素の大きさに関わる印刷解像度を検出する印刷解像度検出手段と、
    前記変換された第2の表色系による画像データを、前記検出した印刷解像度に応じた度合いで平滑化する画像データ平滑化手段と、
    前記平滑化された画像データに基づいて、前記各色インクによるインクドットを印刷媒体上に形成するドット形成手段と
    を備え、
    前記画像データ平滑化手段は、前記平滑化されていない画素についての前記画像データと、前記平滑化された画素についての該画像データとを用いて、平滑化を行う手段である印刷装置。
  6. 第1の表色系によって表現された入力画像データを、所定の大きさの画素により構成されて第2の表色系により表現された出力画像データに変換する画像処理方法であって、
    前記第1の表色系によって表現され且つ予め選択された複数の画像データを、前記第2の表色系による画像データに対応付けて、変換テーブルに記憶しておく工程(A)と、
    前記各々の入力画像データを、前記変換テーブルに記憶されている第1の表色系による画像データのいずれかに変換することにより、該入力画像データの量子化を行う工程(B)と、
    前記量子化した入力画像データを、前記変換テーブルを参照することにより前記第2の表色系による画像データに変換する工程(C)と、
    前記出力画像データの画素の大きさに関わる出力解像度を検出する工程(D)と、
    前記変換された第2の表色系による画像データを、前記検出した出力解像度に応じた度合いで平滑化する工程(E)と、
    前記平滑化された画像データを前記出力画像データとして出力する工程(F)と
    を備え、
    前記工程(E)は、前記平滑化されていない画素についての前記画像データと、前記平滑化された画素についての該画像データとを用いて、平滑化を行う工程である画像処理方法。
  7. 請求項6記載の画像処理方法であって、
    前記工程(E)は、更に、
    前記平滑化に際して、前記画像データにノイズを付加する工程を備えている画像処理方法。
  8. 第1の表色系によって表現された入力画像データを、所定の大きさの画素により構成されて第2の表色系により表現された出力画像データに変換する画像処理方法を実現するためのコンピュータプログラムであって、
    前記第1の表色系によって表現され且つ予め選択された複数の画像データを、前記第2の表色系による画像データに対応付けて、変換テーブルに記憶しておく機能(A)と、
    前記各々の入力画像データを、前記変換テーブルに記憶されている第1の表色系による画像データのいずれかに変換することにより、該入力画像データの量子化を行う機能(B)と、
    前記量子化した入力画像データを、前記変換テーブルを参照することにより前記第2の表色系による画像データに変換する機能(C)と、
    前記出力画像データの画素の大きさに関わる出力解像度を検出する機能(D)と、
    前記変換された第2の表色系による画像データを、前記検出した出力解像度に応じた度合いで平滑化する機能(E)と、
    前記平滑化された画像データを前記出力画像データとして出力する機能(F)と
    をコンピュータによって実現し、
    前記機能(E)は、前記平滑化されていない画素についての前記画像データと、前記平滑化された画素についての該画像データとを用いて、平滑化を行う機能であるコンピュータプログラム。
  9. 請求項8記載のこんピュータプログラムであって、
    前記機能(E)は、更に、
    前記平滑化に際して、前記画像データにノイズを付加する機能を備えているコンピュータプログラム。
JP2003318430A 2003-09-10 2003-09-10 出力解像度に応じたフィルタ処理を行う画像処理装置 Expired - Fee Related JP4096846B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003318430A JP4096846B2 (ja) 2003-09-10 2003-09-10 出力解像度に応じたフィルタ処理を行う画像処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003318430A JP4096846B2 (ja) 2003-09-10 2003-09-10 出力解像度に応じたフィルタ処理を行う画像処理装置

Publications (2)

Publication Number Publication Date
JP2005086661A true JP2005086661A (ja) 2005-03-31
JP4096846B2 JP4096846B2 (ja) 2008-06-04

Family

ID=34417719

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003318430A Expired - Fee Related JP4096846B2 (ja) 2003-09-10 2003-09-10 出力解像度に応じたフィルタ処理を行う画像処理装置

Country Status (1)

Country Link
JP (1) JP4096846B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007310635A (ja) * 2006-05-18 2007-11-29 Akuseru:Kk 画像処理装置および画像処理方法
JP2010083023A (ja) * 2008-09-30 2010-04-15 Canon Inc 画像形成装置及び画像形成装置の制御方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007310635A (ja) * 2006-05-18 2007-11-29 Akuseru:Kk 画像処理装置および画像処理方法
JP2010083023A (ja) * 2008-09-30 2010-04-15 Canon Inc 画像形成装置及び画像形成装置の制御方法

Also Published As

Publication number Publication date
JP4096846B2 (ja) 2008-06-04

Similar Documents

Publication Publication Date Title
JP3912055B2 (ja) 画像処理装置、印刷制御装置、画像処理方法、および記録媒体
JP6626405B2 (ja) 画像処理装置、方法およびプログラム
JP2008162094A (ja) 画像形成装置およびその制御方法、画像形成システム
JP6252003B2 (ja) 印刷装置、印刷方法、画像処理装置およびプログラム
JP6390405B2 (ja) 印刷装置、印刷方法、プログラム、および画像処理装置
JP2011259121A (ja) 画像処理装置及びプログラム
JP2011025658A (ja) 画像形成装置及び画像形成方法
JP3666427B2 (ja) 画像処理装置、印刷制御装置、画像処理方法、および記録媒体
JP4003046B2 (ja) 印刷制御装置、印刷制御方法、印刷システム、印刷制御プログラムおよび印刷制御プログラムを記録した媒体
JP2023052886A (ja) 画像処理装置、画像処理方法およびプログラム
JP6192327B2 (ja) 画像処理装置、画像処理方法およびプログラム
JP4096846B2 (ja) 出力解像度に応じたフィルタ処理を行う画像処理装置
JP3858802B2 (ja) 再構築した色変換テーブルを参照しながら色変換を行う画像処理装置、およびそのための画像処理方法
JP4107302B2 (ja) 印刷装置、画像処理装置、印刷方法、画像処理方法、および変換テーブルの作成方法
JP4623029B2 (ja) 印刷制御装置、画像処理装置
JP4092983B2 (ja) 出力解像度に応じたフィルタ処理を行う画像処理装置
JP2005067054A (ja) 改善インクの吐出制御
JP4183167B2 (ja) 単色画像を印刷するための画像処理装置
JP3959974B2 (ja) 印刷制御装置、画像処理装置
JP4259254B2 (ja) 画像データ処理装置およびそれを備えた印刷データ作成装置、インクジェット記録装置、画像データ処理プログラム及び画像データ処理方法
JP2005014488A (ja) 改善インクの吐出制御
JP2006263938A (ja) 印刷装置、画像処理装置、印刷方法、および画像処理方法
US20230385584A1 (en) Printing apparatus, method of controlling printing apparatus, and storage medium
JP4561414B2 (ja) 印刷制御装置、印刷制御方法および印刷制御プログラム
US8662613B2 (en) Inkjet recording system and inkjet recording method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060425

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20060425

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070417

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071002

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071130

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080303

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120321

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120321

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130321

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20140321

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees