JP4496765B2 - 画像処理装置、画像処理方法及び画像処理プログラム - Google Patents

画像処理装置、画像処理方法及び画像処理プログラム Download PDF

Info

Publication number
JP4496765B2
JP4496765B2 JP2003391952A JP2003391952A JP4496765B2 JP 4496765 B2 JP4496765 B2 JP 4496765B2 JP 2003391952 A JP2003391952 A JP 2003391952A JP 2003391952 A JP2003391952 A JP 2003391952A JP 4496765 B2 JP4496765 B2 JP 4496765B2
Authority
JP
Japan
Prior art keywords
value
image data
conversion
image processing
converted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003391952A
Other languages
English (en)
Other versions
JP2005157525A (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.)
Konica Minolta Inc
Original Assignee
Konica Minolta Inc
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 Konica Minolta Inc filed Critical Konica Minolta Inc
Priority to JP2003391952A priority Critical patent/JP4496765B2/ja
Publication of JP2005157525A publication Critical patent/JP2005157525A/ja
Application granted granted Critical
Publication of JP4496765B2 publication Critical patent/JP4496765B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Image Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Color, Gradation (AREA)

Description

本発明は、逆相関型のデジタルハーフトーニング法により画像データを量子化する画像処理装置、画像処理方法及び画像処理プログラムに関する。
従来、多階調の原画像データを擬似中間調の出力用画像データに変換する量子化処理の手法として、組織的ディザ法、誤差拡散法などが知られている。このなかでも、誤差拡散法は比較的高い画質を得ることができるため、高画質の画像を得るための用途に用いられることが多く、種々の改良がなされてきた。誤差拡散法の画質的な課題は、ノイズを増幅させずにアルゴリズム特有のテクスチャーをいかに低減させるかである。
例えば、特許文献1では、複数の誤差拡散マトリクスを利用して均一性を確保しようと試みている。具体的には、2つのマトリクスを入力値に応じて切り替え、大きいマトリクスをハイライトやシャドー部で使用しウォームを防ぎ、小さいマトリクスを中域部で使用しノイズを抑えようとする。
特許文献2では、ハイライト及びシャドー領域でより均一な結果を生成するため、出力値に依存する閾値を用いて閾値を変更する。具体的には2値化出力が白か黒かで、入力に応じた閾値変更を周囲画素に対しておこない、それを繰り返し伝搬して用いる。その他にも、誤差拡散マトリクスのサイズ、係数を最適化する方法や、処理順序(走査方向)の変更などが行われてきた。これら手法からは一定の効果を得ることはできたが、十分と呼べるような効果を得ることはできなかった。
一方、これらの誤差拡散法やその改良方法、ディザ法などとは異なる量子化処理の手法として、逆相関型のデジタルハーフトーニング法が提案されている(非特許文献1参照)。この方法は、画素毎にドットの出現情報を表す配列(以下「ドット出現パターン」という。)、すなわち、注目画素を構成する階調数に実質的に比例した数だけドットの有無情報を配列させたドット出現パターンを設定し、その情報に基づきハーフトーニングする方法であって、注目画素についてのドット出現パターンの内容決定においては、注目画素の周辺画素について既に決定済みのドット出現パターンを用い、これらドット出現パターンを構成する要素の要素番号毎に、周辺画素にドットが出現する期待値(以下「ヒストグラム」という。)を算出し、この期待値に基づき、ドット出現数の少ない要素番号にドット有り情報を優先的に設定し、ドット出現数の多い要素番号にドット無し情報を設定するよう、注目画素のドット出現パターンを決める方法である。
上記逆相関型のデジタルハーフトーニング法では、1つの画素に着目した場合にはドットの出現頻度がその画素の画素値に比例し、近接する複数の画素に着目した場合には各画素でのドットの出現の仕方が周辺画素との逆相関を実質的に最大とすることとなるため、画像の記録時において記録媒体に形成されるドットの分散性を向上させることができる。
特開平4−328597号公報 特開平8−107500号公報 ドミトリ・A・グゼフ(Dmitri A. Gusev)、"Anti-Correlation Digital Halftoning"、[online]、平成10年8月、インディアナ大学、[平成15年、7月1日検索]、インターネット<URLhttp://www.cs.indiana.edu/cgi-bin/techreports/TRNNN.cgi?trnum=TR513>
しかしながら、逆相関型のデジタルハーフトーニング法を用いて画像データを量子化する場合において、各画素の階調数に応じてドット出現パターンの要素数が増大するため、ドット出現パターンの要素数に比例して画像データの処理量も多くなり、画像データの処理速度を向上させることが課題となる。
例えば、逆相関型のデジタルハーフトーニング法を用いてmビットの画像データD(ビット数mの階調数を有する画像データ)を(2n+1)値化する場合、従来は下記のような処理をおこなっている(m,nは正の整数でm>n)。すなわち、画像データDの入力値Iを2n倍して2mで割った余りの変換値Eに変換し、変換値Eについて逆相関型のデジタルハーフトーニング処理をおこなって変換値Eから「0」か「1」かの出力値Oを算出し、入力値Iと所定の閾値との大小関係を比較し、その比較結果と逆相関型のデジタルハーフトーニング処理で変換値Eから算出した出力値Oとを組み合わせて量子化レベルを設定し、mビットの画像データDを(2n+1)値化している。
具体的に8ビットの画像データDを3値化する場合(m=8,n=1とする場合)を想定すると、画像データDの入力値Iを2倍して256で割った余りの変換値Eに変換し、この変換値Eについて逆相関型のデジタルハーフトーニング処理をおこなって変換値Eから「0」か「1」かの出力値Oを算出する。変換値Eから出力値Oを算出したら、出力値Oが「0」か「1」かの結果と、入力値Iと所定の閾値(=127)との大小関係の比較結果とを、組み合わせて下記(i)〜(iv)の4通りの組合せパターンを算出する。
(i)入力値I≦127でかつ出力値Oが「0」
(ii)入力値I≦127でかつ出力値Oが「1」
(iii)入力値I>127でかつ出力値Oが「0」
(iv)入力値I>127でかつ出力値Oが「1」
そして上記(i)を「レベル0」と設定し、上記(ii),(iii)を「レベル1」と設定し、上記(iv)を「レベル2」と設定することで、8ビットの画像データDをレベル0〜2に3値化している。
この場合において入力値Iが0,1,…と変化すると変換値Eは0,2,…と変化し、これと同様にして入力値Iが128,129,…と変化すると変換値Eは0,2,…と変化する。すなわち入力値Iから変換値Eを算出する場合、入力値Iを2倍してスケールを合わせるため、変換値Eは1,3,5,…といった奇数の値をとらず、実効ビット数は7ビットである。
しかしながら、変換値Eについての逆相関型のデジタルハーフトーニング処理では、変換値Eのすべての値に対して処理を実行するためドット出現パターンの要素数は256(又は255)であり、結局はドット出現パターンの要素数が実効ビット数とは無関係に画像データDの入力ビット数に対応している。一般化して言えば、mビットの画像データDを(2n+1)値化する場合において変換値Eについての逆相関型のデジタルハーフトーニング処理では、ドット出現パターンの要素数は2m(又は(2m−1))であって入力ビット数に対応している。したがって、逆相関型のデジタルハーフトーニング法を用いて画像データを量子化する場合において、実効ビット数に応じた処理を効率的におこなっているとは言えず、さらには上記の通り、各画素の階調数に応じてドット出現パターンの要素数が増大し、画像データの処理速度を向上させるのが難しい。
本発明の目的は、逆相関型のデジタルハーフトーニング法を用いて画像データを量子化するときの処理速度を高速化することである。
上記課題を解決するため請求項1に記載の発明は、
レベル数Leの第1の画像データを(S+1)値化する画像処理装置であって(Leは2以上の正の整数でSは正の整数)、
前記第1の画像データの入力値(0〜(Le−1)のいずれかの整数)を[Le/Q]で割った余りの第1の変換値に変換し、前記第1の変換値について逆相関型のデジタルハーフトーニング処理をおこない、前記第1の画像データの入力値と前記第1の変換値の最大値に基づく閾値との大小関係を比較し、その比較結果とハーフトーニング処理された前記第1の変換値の出力値とを組み合わせて、前記第1の画像データを(Q+1)値に量子化して前記第1の画像データからレベル数(Q+1)の第2の画像データを生成する第1の量子化手段と(Qは2以上の正の整数)、
前記第2の画像データの入力値(0〜Qのいずれかの整数)を[Q/S]で割った余りの第2の変換値に変換し、前記第2の変換値について逆相関型のデジタルハーフトーニング処理をおこない、前記第2の画像データの入力値と前記第2の変換値の最大値に基づく閾値との大小関係を比較し、その比較結果とハーフトーニング処理された前記第2の変換値の出力値とを組み合わせて、前記第2の画像データを(S+1)値に量子化する第2の量子化手段と、
を備えることを特徴としている。
請求項2に記載の発明は、
請求項1に記載の画像処理装置において、
Le/Q<Q/Sの関係が成立することを特徴としている。
請求項3に記載の発明は、
請求項1又は2に記載の画像処理装置において、
前記第2の画像データついて画素数を増やすように前記第2の画像データを解像度変換する解像度変換手段を備えることを特徴としている。
請求項4に記載の発明は、
レベル数Leの第1の画像データを(S+1)値化する画像処理方法であって(Leは2以上の正の整数でSは正の整数)、
前記第1の画像データの入力値(0〜(Le−1)のいずれかの整数)を[Le/Q]で割った余りの第1の変換値に変換し、前記第1の変換値について逆相関型のデジタルハーフトーニング処理をおこない、前記第1の画像データの入力値と前記第1の変換値の最大値に基づく閾値との外相関係を比較し、その比較結果とハーフトーニング処理された前記第1の変換値の出力値とを組み合わせて、前記第1の画像データを(Q+1)値に量子化して前記第1の画像データからレベル数(Q+1)の第2の画像データを生成する第1の量子化工程と(Qは2以上の正の整数)、
前記第1の量子化工程の後に、前記第2の画像データの入力値(0〜Qのいずれかの整数)を[Q/S]で割った余りの第2の変換値に変換し、前記第2の変換値について逆相関型のデジタルハーフトーニング処理をおこない、前記第2の画像データの入力値と前記第2の変換値の最大値に基づく閾値との大小関係を比較し、その比較結果とハーフトーニング処理された前記第2の変換値の出力値とを組み合わせて、前記第2の画像データを(S+1)値に量子化する第2の量子化工程と、
を備えることを特徴としている。
請求項5に記載の発明は、
請求項4に記載の画像処理方法において、
Le/Q<Q/Sの関係が成立することを特徴としている。
請求項6に記載の発明は、
請求項4又は5に記載の画像処理方法において、
前記第1の量子化工程と前記第2の量子化工程とのあいだに、前記第2の画像データついて画素数を増やすように前記第2の画像データを解像度変換する解像度変換工程を備えることを特徴としている。
請求項7に記載の発明の画像処理プログラムは、
レベル数Leの第1の画像データを(S+1)値化する画像処理装置に(Leは2以上の正の整数でSは正の整数)、
前記第1の画像データの入力値(0〜(Le−1)のいずれかの整数)を[Le/Q]で割った余りの第1の変換値に変換し、前記第1の変換値について逆相関型のデジタルハーフトーニング処理をおこない、前記第1の画像データの入力値と前記第1の変換値の最大値に基づく閾値との大小関係を比較し、その比較結果とハーフトーニング処理された前記第1の変換値の出力値とを組み合わせて、前記第1の画像データを(Q+1)値に量子化して前記第1の画像データからレベル数(Q+1)の第2の画像データを生成する第1の量子化機能と(Qは2以上の正の整数)、
前記第2の画像データの入力値(0〜Qのいずれかの整数)を[Q/S]で割った余りの第2の変換値に変換し、前記第2の変換値について逆相関型のデジタルハーフトーニング処理をおこない、前記第2の画像データの入力値と前記第2の変換値の最大値に基づく閾値との大小関係を比較し、その比較結果とハーフトーニング処理された前記第2の変換値の出力値とを組み合わせて、前記第2の画像データを(S+1)値に量子化する第2の量子化機能と、
を実現させることを特徴としている。
請求項8に記載の発明は、
請求項7に記載の画像処理プログラムにおいて、
Le/Q<Q/Sの関係が成立することを特徴としている。
請求項9に記載の発明は、
請求項7又は8に記載の画像処理プログラムにおいて、
前記画像処理装置に、
前記第2の画像データついて画素数を増やすように前記第2の画像データを解像度変換する解像度変換機能を実現させることを特徴としている。
請求項1に記載の発明では第1の量子化手段及び第2の量子化手段をそれぞれ備えるため、第1及び第2の各量子化手段によりおこなわれる逆相関型のデジタルハーフトーニング処理でのドット出現パターンの総要素数を減少させることができる。そのためレベル数Leの第1の画像データを(S+1)値化するまでの処理量を減少させることができ、その処理速度を高速化することができる。
請求項2に記載の発明によれば、第1及び第2の各画像データに基づき形成されるドットの分散性を向上させることができる。
請求項3に記載の発明では第2の画像データを解像度変換する解像度変換手段を備えるため、レベル数Leの第1の画像データを解像度変換して第1の画像データを(S+1)値化する場合より、レベル数Leの第1の画像データを(S+1)値化するまでの処理量を減少させることができ、その処理速度を高速化することができる。
請求項4,7に記載の発明によれば、請求項1と同様の効果を奏することができる。請求項5,8に記載の発明によれば、請求項2と同様の効果を奏することができる。請求項6,9に記載の発明によれば、請求項3と同様の効果を奏することができる。
以下、図面を参照しながら本発明を実施するための最良の形態について説明する。ただし、発明の範囲は図示例に限定されない。
[第1の実施の形態]
始めに、図1〜図9を参照しながら第1の実施形態について説明する。
図1は画像処理装置1の構成を示すブロック図である。
画像処理装置1は、インクジェットプリンタなどの周知の出力装置(画像記録装置)に搭載可能な装置であって、画像を構成する各画素に所定ビット数(所定階調数)の画像データD1が割り当てられた原画像データを画素ごとに量子化する装置である。画像処理装置1は、図1に示す通り、CPU(Central Processing Unit)2、ROM(Read Only Memory)3、RAM(Random Access Memory)4などから構成されている。
画像処理装置1では、画像データD1を処理する画像処理プログラムがROM3に格納されており、CPU2が、RAM4をワークエリアとしてROM3に格納された画像処理プログラムを読み出してその画像処理プログラムにしたがいながら後述の各種処理を実行するようになっている。逆に言えば、画像処理プログラムが画像処理装置1のCPU2に後述の各種処理を実行させるようになっている。
ROM3には、画像データD1の入力値I1を所定の変換値E1に変換する第1の変換用データテーブルが格納されている。具体的には第1の変換用データテーブルは、mビットの画像データD1の入力値I1を(2n+1)値化する場合に、入力値I1を2m-nで割った余りの値(変換値E1)に変換するものである。ただし、m,nは正の整数であってm>nであり、入力値I1は階調値と同義であって0〜(2m−1)のいずれかの整数である。
次に、第1の実施形態における画像処理方法について説明する。ただし、本第1の実施形態では、mビットの画像データD1を(2n+1)値化する処理であって、画像を構成する多数の画素のうち特定の画素(i行j列目の画素)を注目画素としてその注目画素における処理について主に説明する。
図2は、画像処理装置1のCPU2が実行する処理を経時的に示したフローチャートである。
注目画素のmビットの画像データD1i,jが画像処理装置1に入力されたら、まず、変換手段としてのCPU2は、ROM3に格納済みの上記第1の変換用データテーブルを用いながら、画像データD1i,jの入力値I1i,jを2m-nで割った余りの変換値E1i,jに変換し、入力値I1i,jから変換値E1i,jを算出する(ステップSA(変換工程))。
例えば、8ビットの画像データD1i,jを3値化する場合(m=8,n=1とする場合)には、画像データD1i,jの入力値I1i,jは0〜255(=28−1)のいずれかの整数であって、CPU2は、図3に示す第1の変換用データテーブルを用いながら、入力値I1i,jを128(=28-1)で割った余りの変換値E1i,jに変換する。この場合、変換値E1i,jは0〜127のいずれかの整数である。
ステップSAの処理を終えたら、ハーフトーニング手段としてのCPU2は、変換値E1i,jについて逆相関型のデジタルハーフトーニング処理をおこない、変換値E1i,jから出力値O1i,jを算出する(ステップSB(ハーフトーニング工程))。
画像を構成する多数の画素のうち、注目画素を左から右に順に切り替えながら処理する場合を想定して、図4〜図9を参照しながら変換値E1i,jの逆相関型のデジタルハーフトーニング処理を詳細に説明すると、まず、0〜Emaxの範囲内から無作為にランダム変数rを決定する(ステップSB1)。「Emax」は変換値E1i,jの最大値であって(2m-n−1)である。例えば、8ビットの画像データD1i,jを3値化する場合(m=8,n=1とする場合)には、最大変換値Emaxは127(=28-1−1)である。
ランダム変数rを決定したら、注目画素の変換値E1i,jを取得する(ステップSB2)。
変換値E1i,jを取得したら、その変換値E1i,jに基づき注目画素のローカルフィルタPを生成する(ステップSB3)。具体的には、始めに変換値E1i,jを下記式(1)に代入してΔを求め、そのΔが図5中左欄のどの範囲に属するかを特定し、特定した範囲に対応するローカルフィルタPの情報を図5中右欄から特定する。
Δ=|E1i,j×2n−Imax/2|/Imax … (1)
上記式(1)中、「Imax」は入力値I1i,jの最大値であって(2m−1)である。例えば、8ビットの画像データD1i,jを3値化する場合(m=8,n=1とする場合)には、最大入力値Imaxは255(=28−1)である。
上記式(1)において、例えば、8ビットの画像データD1i,jを3値化する場合(m=8,n=1とする場合)でその変換値E1i,jが60だとしたら、上記式(1)からΔ=|60×21−255/2|)/255=7.5/255が導き出され、図5中、「Δ∈[0,13/255)」は0≦Δ<13/255を示すから、導き出したΔ(=7.5/255)が、図5中左欄の最も上の欄に記載されたΔ∈[0,13/255)に属しているのを特定することができる。そしてΔ∈[0,13/255)が記載された特定済みの欄から、その右隣に配置された欄のR(K1,6,5)をローカルフィルタPの情報として特定することができる。
次に、特定したローカルフィルタPの情報を便宜的に一般化して「R(K,lk,ε(lk))」とした場合に、始めに「K」を参照して、図6及び図7に示した6つの基礎フィルタK1〜K6のなかから何れか1つの基礎フィルタKを選択する。次に、「lk」を参照して、選択した基礎フィルタK中の×印の画素(i行j列目の画素)から、上方向、左方向及び右方向に(lk−1)画素分の広がりを有するlk行×(2lk−1)列のサイズのフィルタを生成する。そして、「lk」及び「ε(lk)」をそれぞれ参照して、生成されたフィルタ中の1列目から(lk−ε(lk))列目までの各画素には選択した基礎フィルタKの画素値をそのまま割り当て、(lk−ε(lk))列目より先の列の各画素には0を割り当て、ローカルフィルタPを生成する。
例えば、ローカルフィルタPの情報がR(K6,4,−1)で表されるとしたら、以下のような手順でローカルフィルタPを生成する。すなわち、R(K6,4,−1)において、基礎フィルタKに対応するのが「K6」であるから、図7中の3つの基礎フィルタK4〜K6のなかから下段に図示された基礎フィルタK6を基礎フィルタKとして特定する。そしてR(K6,4,−1)において、lkに対応するのが「4」であり、ε(lk)に対応するのが「−1」であるから、図7中下段の基礎フィルタK6中で×印の画素から、上方向、左方向及び右方向に3(=4−1)画素分の広がりを有する4行×7(=2×4−1)列のサイズのフィルタを生成し、その後、その生成した4行×7列のフィルタにおいて、1列目から5(=4−(−1))列目までの各画素には基礎フィルタK6の画素値をそのまま割り当て、5列目より先の6,7列目の各画素には0を割り当てる。このような手順で生成されたローカルフィルタPを図8に示す。
ローカルフィルタPを生成したら、注目画素のヒストグラムHi,j[k]を算出する(ステップSB4)。「ヒストグラムHi,j[k]」というのは、ローカルフィルタP中に×印で示される注目画素の周辺の画素の配置位置を(x,y)で表したときに、注目画素周辺の各画素のドット出現パターンCx,y[k]をローカルフィルタPの(x,y)の位置の値で重み付けし、要素kの値毎に加算した合計値である。ただし、「k」は0〜Emaxの任意の整数であって、ドット出現パターンCx,y[k]の要素kと同義である。「ドット出現パターンCi,j[k]」というのは、それぞれ「0」又は「1」の値をとるCi,j[0]〜Ci,j[Emax]によって構成される数列である。ドット出現パターンCi,j[k]は、要素kに0〜Emaxのいずれかの整数を代入したときに、「1」となれば注目画素にドットを形成することを示し、「0」となれば注目画素にドットを形成しないことを示す。
例えば、図8に示すローカルフィルタPを生成した場合に、ローカルフィルタP中の各画素の位置(x,y)、ローカルフィルタP中の各画素の画素値Px,yが図9(a),(b)のように設定されたとしたら、注目画素(図8及び図9中×印の画素)のヒストグラムHi,j[k]を、下記の式にしたがって要素kの値ごとに算出する。
i,j[0]=Cx1,y1[0]×Px1,y1+Cx1,y2[0]×Px1,y2+Cx1,y3[0]×Px1,y3+ … +Cx4,y3[0]×Px4,y3
i,j[1]=Cx1,y1[1]×Px1,y1+Cx1,y2[1]×Px1,y2+Cx1,y3[1]×Px1,y3+ … +Cx4,y3[1]×Px4,y3
i,j[2]=Cx1,y1[2]×Px1,y1+Cx1,y2[2]×Px1,y2+Cx1,y3[2]×Px1,y3+ … +Cx4,y3[2]×Px4,y3


i,j[Emax]=Cx1,y1[Emax]×Px1,y1+Cx1,y2[Emax]×Px1,y2+Cx1,y3[Emax]×Px1,y3+ … +Cx4,y3[Emax]×Px4,y3
次に、各要素kについて算出されたヒストグラムHi,j[0]〜Hi,j[Emax−1]を値の小さい順に並べ替え、ヒストグラムHi,j[k]の要素番号列S[k]を算出する(ステップSB5)。
例えば、ヒストグラムHi,j[0]〜Hi,j[Emax−1]が、Hi,j[8]<Hi,j[3]<Hi,j[4]<Hi,j[1]<Hi,j[5]<…<Hi,j[Emax−1]のように並べ替えられたら、要素番号列S[k]は{8,3,4,1,5,…,Emax−1}のように算出される。この要素番号列S[k]において、「8」は0番目の要素であり、「3」は1番目の要素であり、…、「Emax−1」は(Emax−1)番目の要素である。例えば、8ビットの画像データD1i,jを3値化する場合(m=8,n=1とする場合)、最大変換値Emaxは上記の通り127であるから、上記した要素番号列S[k](={8,3,4,1,5,…,Emax−1})において「Emax−1」は126(=127−1)番目の要素となる。
要素番号列S[k]を算出したら、カウンタ値Countを0に設定し(ステップSB6)、要素番号列S[k]の要素k’に、要素番号列S[k]中、カウンタ値Countの値に対応する順番の要素S[Count]の値を代入する(ステップSB7)。すなわち、上記した要素番号列S[k](={8,3,4,1,5,…,(Emax−1)})を例にすると、カウンタ値Countが0であるから、k’に8(=S[0])を代入する。
続いて、カウンタ値Countと変換値E1i,jとの大小関係を比較する(ステップSB8)。比較の結果、カウンタ値Countが変換値E1i,jより小さければ、要素k’に対応するドット出現パターンCi,j[k’]を「1」に設定し(ステップSB9)、カウンタ値Countが変換値E1i,j以上であれば「0」に設定する(ステップSB10)。例えば、変換値E1i,jが2で要素番号列S[k]が{8,3,4,1,5,…,(Emax−1)}であれば、まず、ドット出現パターンCi,j[k]の要素Ci,j[8]を「1」に設定する。
ステップSB9又はステップSB10の処理を終えたら、カウンタ値Countに1を加算し(ステップB11)、カウンタ値Count(=1)と最大変換値Emaxとの大小関係を比較し(ステップSB12)、カウンタ値Countが最大変換値Emaxと同じ値になるまでステップSB7からステップSB11までの処理を繰り返しおこない、ドット出現パターンCi,j[k]を決定する。
例えば、上記と同じように、変換値E1i,jが2で要素番号列S[k]が{8,3,4,1,5,…,(Emax−1)}であれば、ステップSB7〜ステップSB12の各処理の繰り返すことで、要素k’=0,1に対応するドット出現パターンCi,j[8],Ci,j[3]には「1」が設定され、それ以外の要素k’=2〜(Emax−1)に対応するドット出現パターンCi,j[k’]には「0」が設定される。
このように第1の実施形態では、ドット出現パターン決定手段としてのCPU2は、ステップSB1からステップSB12までの処理をおこない(ドット出現パターン決定工程)、注目画素の周辺画素について先に決定されたドット出現パターンに対して逆相関が実質的に最も大きくなるように、変換値E1i,jを入力値として注目画素についてのドット出現パターンCi,j[k]を決定している。
なお、第1の実施形態では、ドット出現パターンCi,j[k]の要素kは0〜(Emax−1)でその要素数はEmax個であるが、Ci,j[k=Emax]を常に「0」に設定してドット出現パターンCi,j[k]の要素数を(Emax+1)個とするようにしてもよい。例えば、8ビットの画像データD1i,jを3値化する場合(m=8,n=1とする場合)、最大変換値Emaxは上記の通り127であるから、ドット出現パターンCi,j[k]の要素kは0〜126でその要素数は127個であるが、Ci,j[k=127]を常に「0」に設定してドット出現パターンCi,j[k]の要素数を128(=127+1)個とするようにしてもよい。
ドット出現パターンCi,j[k]を決定したら、ドット出現パターンCi,j[k]のうち、上記ステップSB1の処理で決定したランダム変数rを要素番号とするCi,j[r]を、注目画素の出力値O1i,jとして算出する(ステップSB13)。出力値O1i,jは上記ステップSB9又はステップSB10の処理からもわかるように「0」又は「1」である。
なお、上記ステップSB1〜ステップSB13の各処理では、所定の行上の注目画素を左から右に順に切り替えながら処理する場合を想定して注目画素のドット出現パターンCi,j[k]を決定したが、画像を構成する多数の画素のうち、画像領域の端部に配置された各画素のドット出現パターンCi,j[k]を決定する場合には、画像領域外の周辺画素に関するドット出現パターンを必要とするが、この画像領域外の周辺画素に関してはランダム変数rを用いるなどしてドット出現パターンCi,j[k]を決めておけばよい。具体的には、例えば次のように定義する。
i,j[k]=1(rBR<ImaxΔのとき)
i,j[k]=0(それ以外のとき)
ここで、「Δ」は上記式(1)に示す通りであり、「rBR」は{0,1,…,(int)(Imax/2)}に含まれるランダムな整数であり、各端部に配置された画素ごとに異なる値である。
ステップSBの処理を終えたら、レベル設定手段としてのCPU2は、入力値I1i,jと最大変換値Emaxに基づく閾値(すなわち((Emax+1)×a))との大小関係を比較し、その比較結果と出力値O1i,jが「1」であるか「0」であるかの結果とを組み合わせ、各組合せパターンに量子化レベルを設定して、mビットの画像データD1i,jを(2n+1)値化する(ステップSC(レベル設定工程))。ただし、aは正の整数であって1,2,…,(2n−1)である。
具体的には、出力値O1i,jが「1」であるか「0」であるかの結果と、入力値I1i,jと((Emax+1)×a)との大小関係の比較結果とを、組み合わせて、
(I)n=1のとき(a=1)
(i)入力値I1i,j≦((Emax+1)×1)でかつ出力値O1i,jが「0」
(ii)入力値I1i,j≦((Emax+1)×1)でかつ出力値O1i,jが「1」
(iii)入力値I1i,j>((Emax+1)×1)でかつ出力値O1i,jが「0」
(vi)入力値I1i,j>((Emax+1)×1)でかつ出力値O1i,jが「1」
(II)n=2のとき(a=1,2,3)
(i)入力値I1i,j≦((Emax+1)×1)でかつ出力値O1i,jが「0」
(ii)入力値I1i,j≦((Emax+1)×1)でかつ出力値O1i,jが「1」
(iii)((Emax+1)×1)<入力値I1i,j≦((Emax+1)×2)でかつ出力値O1i,jが「0」
(iv)((Emax+1)×1)<入力値I1i,j≦((Emax+1)×2)でかつ出力値O1i,jが「1」
(v)((Emax+1)×2)<入力値I1i,j≦((Emax+1)×3)でかつ出力値O1i,jが「0」
(vi)((Emax+1)×2)<入力値I1i,j≦((Emax+1)×3)でかつ出力値O1i,jが「1」
(vii)((Emax+1)×3)<入力値I1i,jでかつ出力値O1i,jが「0」
(viii)((Emax+1)×3)<入力値I1i,jでかつ出力値O1i,jが「1」
(III)n=3のとき(a=1,2,3,4,5,6,7)

というように、2n+1通りの組合せパターンを算出し、mビットの画像データD1i,jを(2n+1)値化する。
例えば、8ビットの画像データD1i,jを3値化する場合(m=8,n=1とする場合)には、
(i)入力値I1i,j≦128(=(127+1)×1)でかつ出力値O1i,jが「0」
(ii)入力値I1i,j≦128でかつ出力値O1i,jが「1」
(iii)入力値I1i,j>128でかつ出力値O1i,jが「0」
(iv)入力値I1i,j>128でかつ出力値O1i,jが「1」
の4通りの組合せパターンを算出することができる。そして上記(i)を「レベル0」と設定し、上記(ii),(iii)を「レベル1」と設定し、上記(iv)を「レベル2」と設定することで、8ビットの画像データD1i,jをレベル0〜2に3(=21+1)値化することができる。
注目画素の画像データD1i,jについて図2のステップSA〜ステップSCの各処理を終えたら、CPU2は、画像を構成するすべての画素の画像データD1について図2のステップSA〜ステップSCの各処理を画素ごとに同様におこない、原画像データを画素ごとに量子化する。
なお、上記の通り、図2のステップSA〜ステップSCの各処理を画素ごとに繰り返しおこなってもよいが、ステップSA又はステップSBの処理を終えた画素につきその次の処理をおこなえばよく、例えば、図2のステップSA〜ステップSCの各処理を、1つの行すべての画素につき処理を終えてからその行すべての画素につき次の処理をおこなってもよい。
第1の実施形態では、主に、画像を構成する多数の画素のうち、注目する画素を左から右に順に切り替えて処理するときの特定の注目画素(i行j列目の画素)の処理について説明したが、所定数の画素からなる行を切り換えた後の処理方向については、再び左から右に向かう方向としてもよいし、反転させて右から左に向かう方向としてもよいし、左右方向の何れかをランダムに選択するようにしてもよく、全体として蛇行するような順序で1行ごと又は複数行ごとに処理方向を反転させるように各画素の画像データD1を処理するのが好ましい。
以上の第1の実施形態では、ステップSAの処理でmビットの画像データD1の入力値I1を2m-nで割った余りの変換値E1に変換し、ステップSBの処理で変換値E1について逆相関型のデジタルハーフトーニング処理をおこなうため、mビットの画像データD1を(2n+1)値化する場合に、ステップSBの処理におけるドット出現パターンC[k]の要素数(要素kの数)を(2p−1)又は2p個で表せば、m,n,pのあいだにはp=m−nの関係式が成立するようになっている。
つまり、従来のようにmビットの画像データDの入力値Iを変換してその変換値Eについて逆相関型のデジタルハーフトーニング処理する場合には、ドット出現パターンC[k]の要素数は(2m−1)又は2m個であるが、第1の実施形態では、ドット出現パターンC[k]の要素数は(2m-n−1)又は2m-n個となり、mからnを減じた分だけ、ドット出現パターンC[k]の要素数を半減又はそれ以下に減少させることができる。したがってmビットの画像データD1を(2n+1)値化するまでの処理量を大幅に減少させることができ、その処理速度を高速化することができる。また第1の実施形態では、ステップSBの処理の用に供する変換値E1の実効ビット数は(m−n)ビットであってドット出現パターンC[k]の要素数に対応し、変換値E1についての逆相関型のデジタルハーフトーニング処理を効率的におこなうことができる。
また第1の実施形態では、上記の通り、ステップSBの処理においてドット出現パターンC[k]の要素数が半減又はそれ以下に減少するため、画像処理装置1に入力する画像データD1のビット数を増加してもその画像データD1を処理可能であって画像データD1から作成される画像を高画質化することができる。
ところで、上記第1の実施形態では、ステップSA〜ステップSCの各処理によりmビットの画像データD1を(2n+1)値に多値化したが、多値化後の各レベルは一般にその階調を画像の濃度、明度などの軸に対して均等化することが望まれるため、図10に示す通り、周知のルックアップテーブルなどを用いながらmビットの画像データD1に対して周知の階調変換処理をおこない、階調変換後の画像データD1に対して多値ハーフトーニング処理をおこなってもよい。「多値ハーフトーニング処理」というのは、上記ステップSB及びステップSCの各処理と同様の処理である。
上記階調変換処理は通常、非線形のルックアップテーブルなどが用いられるため、画像データD1の階調変換処理で良好な変換特性を維持するには、よりビット数の多い画像データD1が必要とされる。また多値ハーフトーニング処理後の量子化レベル数がプリント可能なドットの種類に応じて設定可能であることが好ましく、さらには上記ステップSBの処理におけるドット出現パターンC[k]の要素数も処理時間を考慮して設定可能であることが好ましい。
ここで上記の通り、mビットの画像データD1を(2n+1)値化する場合に、ステップSBの処理におけるドット出現パターンC[k]の要素数を(2p−1)又は2p個で表せば、m,n,pのあいだにはp=m−nの関係式が成立するから、この関係式を用いて上記階調変換処理及び多値ハーフトーニング処理の各処理の用に供する画像データD1のビット数mを最適化することができる。
例えば、mビットの画像データD1を5(=22+1)値化する場合に、ドット出現パターンC[k]の要素数を255(=28−1)個とするとき、上記関係式からm=p+n=8+2=10を導き出すことができる。したがって図10に示す通り、8ビットの画像データD1を階調変換処理で10ビットのデータに変換するように設定することで、画像データD1の多値化に必要なビット数mとドット出現パターンC[k]の要素数との関係を最適化することができる。
[第2の実施形態]
続いて第2の実施形態について説明する。
第2の実施形態における画像処理装置1は、第1の実施形態で説明した画像処理装置1と同様の構成を有しているが、画像を構成する各画素に所定レベル数(所定階調数)の画像データD2が割り当てられた原画像データを画素ごとに量子化するようになっている。
すなわち、第1の実施形態では画像処理装置1が2の累乗で表された所定ビット数の画像データD1を処理したのに対し、第2の実施形態では画像処理装置1が2の累乗では表されない所定レベル数の画像データD2を処理するようになっており、この点で、画像処理装置1は第1の実施形態の処理とやや異なる処理を実行するようになっている。
第2の実施形態におけるROM3には、上記第1の変換用データテーブルではなく、画像データD2の入力値I2を所定の変換値E2に変換する第2の変換用データテーブルが格納されている。第2の変換用データテーブルは、レベル数leの画像データD2の入力値I2を(q+1)値化する場合に、入力値I2を[le/q]で割った余りの値(変換値E2)に変換するものである。ただし、le,qは正の整数であってle>qであり、入力値I2は階調値と同義であって0〜(le−1)のいずれかの整数であり、[le/q]はleをqで割った商の整数値(小数値以下を切り捨てた整数値)を意味する。
次に、第2の実施形態における画像処理方法について説明する。ただし、本第2の実施形態では、レベル数leの画像データD2を(q+1)値化する処理であって、画像を構成する多数の画素のうち特定の画素(i行j列目の画素)を注目画素としてその注目画素における処理について主に説明する。
図11は、画像処理装置1のCPU2が実行する処理を経時的に示したフローチャートである。
注目画素のレベル数leの画像データD2i,jが画像処理装置1に入力されたら、まず、変換手段としてのCPU2は、ROM3に格納済みの上記第2の変換用データテーブルを用いながら、画像データD2i,jの入力値I2i,jを[le/q]で割った余りの変換値E2i,jに変換し、入力値I2i,jから変換値E2i,jを算出する(ステップSD(変換工程))。
例えば、レベル数192の画像データD2i,jを3値化する場合(le=192,q=2とする場合)には、画像データD2i,jの入力値I2i,jは0〜191(=192−1)のいずれかの整数であって、CPU2は、第2の変換用データテーブルを用いながら、入力値I2i,jを[192/2]で割った余りの変換値E2i,jに変換する。この場合、変換値E2i,jは0〜95のいずれかの整数である。
ステップSDの処理を終えたら、ハーフトーニング手段としてのCPU2は、変換値E2i,jについて逆相関型のデジタルハーフトーニング処理をおこない、変換値E2i,jから出力値O2i,jを算出する(ステップSE(ハーフトーニング工程))。
ステップSEの処理では、変換値E2i,jについて上記第1の実施形態で説明したステップSBの処理とほぼ同様の処理をおこなうが、「Imax」が入力値I2i,jの最大値であって(le−1)であり、「Emax」が変換値E2i,jの最大値であってImaxを[le/q]で割った余りであり、ステップSB3の処理に対応する処理では下記式(2)にしたがってΔを求める点が異なっている。
Δ=|E2i,j×(le/[le/q])×255/(le−1)−255/2|/255 … (2)
例えば、レベル数192の画像データD2i,jを3値化する場合(le=192,q=2とする場合)には、最大入力値Imaxは191(=192−1)であり、最大変換値Emaxは95(191を[192/2]で割った余り)である。
なお、ステップSEの処理でも、CPU2が、ドット出現パターン決定手段となって上記第1の実施形態で説明したステップSB1からステップSB12までの処理とほぼ同様の処理をおこない(ドット出現パターン決定工程)、注目画素の周辺画素について先に決定されたドット出現パターンに対して逆相関が実質的に最も大きくなるように、変換値E2i,jを入力値として注目画素についてのドット出現パターンCi,j[k]を決定している。
また、第1の実施形態と同様に、第2の実施形態では、ドット出現パターンCi,j[k]の要素kは0〜(Emax−1)でその要素数はEmaxであるが、Ci,j[k=Emax]を常に「0」に設定してドット出現パターンCi,j[k]の要素数を(Emax+1)個とするようにしてもよい。例えば、レベル数192の画像データD2i,jを3値化する場合(le=192,q=2とする場合)、最大変換値Emaxは上記の通り95であるから、ドット出現パターンCi,j[k]の要素kは0〜94でその要素数は95個であるが、Ci,j[k=95]を常に「0」に設定してドット出現パターンCi,j[k]の要素数を96(=95+1)個とするようにしてもよい。
ステップSEの処理により変換値E2i,jから出力値O2i,jを算出してステップSEの処理を終えたら、レベル設定手段としてのCPU2は、入力値I2i,jと最大変換値Emaxに基づく閾値(すなわち((Emax+1)×b))との大小関係を比較し、その比較結果と出力値O2i,jが「1」であるか「0」であるかの結果とを組み合わせ、各組合せパターンに量子化レベルを設定して、レベル数leの画像データD2i,jを(q+1)値化する(ステップSF(レベル設定工程))。ただし、bは正の整数であってb=1,2,…,(q−1)である。
具体的には、出力値O2i,jが「1」であるか「0」であるかの結果と、入力値I2i,jと((Emax+1)×b)との大小関係の比較結果とを、組み合わせて、
(I)q=2のとき(b=1)
(i)入力値I1i,j≦((Emax+1)×1)でかつ出力値O1i,jが「0」
(ii)入力値I1i,j≦((Emax+1)×1)でかつ出力値O1i,jが「1」
(iii)入力値I1i,j>((Emax+1)×1)でかつ出力値O1i,jが「0」
(iv)入力値I1i,j>((Emax+1)×1)でかつ出力値O1i,jが「1」
(II)q=3のとき(b=1,2)
(i)入力値I1i,j≦((Emax+1)×1)でかつ出力値O1i,jが「0」
(ii)入力値I1i,j≦((Emax+1)×1)でかつ出力値O1i,jが「1」
(iii)((Emax+1)×1)<入力値I1i,j≦((Emax+1)×2)でかつ出力値O1i,jが「0」
(iv)((Emax+1)×1)<入力値I1i,j≦((Emax+1)×2)でかつ出力値O1i,jが「1」
(v)((Emax+1)×2)<入力値I1i,jでかつ出力値O1i,jが「0」
(vi)((Emax+1)×2)<入力値I1i,jでかつ出力値O1i,jが「0」
(III)q=4のとき(b=1,2,3)

というように、((q−1)×2)通りの組合せパターンを算出し、レベル数leの画像データD2i,jを(q+1)値化する。
例えば、レベル数192の画像データD2i,jを3値化する場合(le=192,q=2とする場合)には、
(i)入力値Ii,j≦96(=(95+1)×1)でかつ出力値O2i,jが「0」
(ii)入力値Ii,j≦96でかつ出力値O2i,jが「1」
(iii)入力値Ii,j>96でかつ出力値O2i,jが「0」
(iv)入力値Ii,j>96でかつ出力値O2i,jが「1」
の4通りの組合せパターンを算出することができる。そして上記(i)を「レベル0」と設定し、上記(ii)(iii)を「レベル1」と設定し、上記(iv)を「レベル2」と設定することで、レベル数192の画像データD2i,jをレベル0〜2に3(=2+1)値化することができる。
注目画素の画像データD2i,jについて図11のステップSD〜ステップSFの各処理を終えたら、CPU2は、画像を構成するすべての画素の画像データDについて図11のステップSD〜ステップSFの各処理を画素ごとに同様におこない、原画像データを画素ごとに量子化する。
なお、上記の通り、図11のステップSD〜ステップSFの各処理を画素ごとに繰り返しおこなってもよいが、ステップSD又はステップSEの処理を終えた画素につきその次の処理をおこなえばよく、例えば、図11のステップSD〜ステップSFの各処理を、1つの行すべての画素につき処理を終えてからその行すべての画素につき次の処理をおこなってもよい。
また第2の実施形態でも、第1の実施形態と同様に、所定数の画素からなる行を切り換えた後の処理方向については、再び左から右に向かう方向としてもよいし、反転させて右から左に向かう方向としてもよいし、左右方向の何れかをランダムに選択するようにしてもよく、全体として蛇行するような順序で1行ごと又は複数行ごとに処理方向を反転させるように各画素の画像データD2を処理するのが好ましい。
以上の第2の実施形態では、ステップSDの処理でレベル数leの画像データD2の入力値I2を[le/q]で割った余りの変換値E2に変換し、ステップSEの処理で変換値E2について逆相関型のデジタルハーフトーニング処理をおこなうため、レベル数leの画像データD2を(q+1)値化する場合に、ステップSEの処理におけるドット出現パターンC[k]の要素数(要素kの数)を(r−1)個で表せば、le,q,rのあいだにはr=[le/q]又は([le/q]+1)の関係式が成立するようになっている。
つまり、レベル数leの画像データD2の入力値I2を変換せずに逆相関型のデジタルハーフトーニング処理する場合には、ドット出現パターンC[k]の要素数は(le−1)又はle個であるが、第2の実施形態では、ドット出現パターンC[k]の要素数についてはr=[le/q]又は([le/q]+1)となり、leをqで除した分だけ、ドット出現パターンC[k]の要素数を減少させることができる。したがって2の累乗では表されない画像データD2でも、レベル数leの画像データD2を(q+1)値化するまでの処理量を大幅に減少させることができ、その処理速度を高速化することができる。
[第3の実施形態]
続いて第3の実施形態について説明する。
第3の実施形態における画像処理装置1は、第1及び第2の各実施形態で説明した画像処理装置1と同様の構成を有している。
第3の実施形態におけるROM3には、上記第1の変換用データテーブル及び第2の変換用データテーブルがそれぞれ格納されている。
次に、第3の実施形態における画像処理方法について説明する。ただし、本第3の実施形態では、画像を構成する各画素に割り当てられたレベル数Leの画像データD3を画素ごとに(Q+1)値化して(Q+1)値の画像データD4を画素ごとにそれぞれ生成し、それら画像データD4を画素ごとに(S+1)値化する処理について説明するが、第1及び第2の各実施形態で説明した処理についてはその詳細な処理の内容を省略している。
図12は、画像処理装置1のCPU2が実行する処理を経時的に示したフローチャートである。
第1の画像データとしてのレベル数Leの画像データD3が画像処理装置1に入力されたら、まず、第1の量子化手段としてのCPU2は、レベル数Leの画像データD3を(Q+1)値に量子化する(ステップSG(第1の量子化工程))。ただし、Le,Qは2以上の正の整数であってLe>Qである。
ステップSGの処理において2の累乗で表されるmビットの画像データD3が画像処理装置1に入力された場合には、CPU2は、レベル数Le(=2m)の画像データD3を第1の実施形態で説明したステップSA〜ステップSCの各処理(図2参照)と同様にして(Q+1)(=(2n+1))値に量子化し、(Q+1)値の画像データD4を生成する。
一方、ステップSGの処理において2の累乗では表されないレベル数Leの画像データD3が画像処理装置1に入力された場合には、CPU2は、レベル数Le(=le)の画像データD3を第2の実施形態で説明したステップSD〜ステップSFの各処理(図11参照)と同様にして(Q+1)(=(q+1))値に量子化し、(Q+1)値の画像データD4を生成する。
ステップSGの処理を終えたら、第2の量子化手段としてのCPU2は、第2の画像データとしてのレベル数(Q+1)の画像データD4を(S+1)値に量子化する(ステップSH(第2の量子化工程))。ただし、Sは正の整数であってQ>Sである。
ステップSHの処理において2の累乗で表されるmビットの画像データD4が画像処理装置1に入力された場合には、CPU2は、レベル数(Q+1)(=2m)の画像データD4を第1の実施形態で説明したステップSA〜ステップSCの各処理(図2参照)と同様にして(S+1)(=(2n+1))値に量子化する。
一方、ステップSHの処理において2の累乗では表されないレベル数(Q+1)値の画像データD4が画像処理装置1に入力された場合には、CPU2は、レベル数(Q+1)(=le)の画像データD4を第2の実施形態で説明したステップSD〜ステップSFの各処理(図11参照)と同様にして(S+1)(=(q+1))値に量子化する。
ここで第3の実施形態では、ステップSG及びステップSHの各処理で各レベル数Le,(Q+1),(S+1)が下記式(3)を満たすように、量子化レベル数を設定するのが好ましい。
Le/Q<Q/S … (3)
例えば、ステップSGの処理でレベル数Le=256(=28)の画像データD3を、第1の実施形態で説明したステップSA〜ステップSCの各処理にしたがいながら(Q+1)(=(2n+1))=3(Q=2,n=1),5(Q=4,n=2),9(Q=8,n=3),17(Q=16,n=4),33(Q=32,n=5),65(Q=64,n=6)値の画像データD4をそれぞれ生成した場合(表1中パターンA〜F参照)、ステップSGの処理における各パターンA〜Fのドット出現パターンC[k]の要素数とLe/Qは下記表1に示す通りである。
Figure 0004496765
ステップSHの処理で上記パターンA〜Fにしたがう各画像データD4を、第2の実施形態で説明したステップSD〜ステップSFの各処理にしたがいながら(S+1)(=(q+1))=2値に量子化した場合、ステップSHの処理における各パターンA〜Fのドット出現パターンC[k]の要素数とQ/Sは下記表2の通りである。
Figure 0004496765
ステップSG及びステップSHの処理における各パターンA〜Fのドット出現パターンの総要素数と上記式(3)の成立関係は下記表3に示す通りである。ただし、表3中「Le/Q<Q/S」の各項目で「○」は上記式(3)の関係が成立することを示し、「×」は上記式(3)の関係が成立しないことを示している。
Figure 0004496765
表3中、パターンB,FとパターンC,Eとをそれぞれ見比べてみると、ドット出現パターンの総要素数は同じであるが、パターンE,Fは上記式(3)の関係が成立するのに対し、パターンB,Cは上記式(3)の関係が成立しない。
図13(a)はパターンBにしたがって形成したドットのグラデーション画像であり、図13(b)はパターンFにしたがって形成したドットのグラデーション画像である。各グラデーション画像を見比べると、図13(a)のグラデーション画像では各ドット間の間隔が不均一となっているのに対し、図13(b)のグラデーション画像では各ドット間の間隔がほぼ均一であってドットの分散性が優れている。特に、各グラデーション画像の上部及び下部をそれぞれ見比べるとその違いを顕著に認識することができる。
以上の第3の実施形態では、ステップSG及びステップSHの各処理において、第1の実施形態で説明したステップSA〜ステップSC又は第2の実施形態で説明したステップSD〜ステップSFの各処理をそれぞれおこなうため、第1及び第2の各実施形態で説明した通り、ステップSG及びステップSHの各処理のドット出現パターンC[k]の要素数を減少させることができ、ひいてはレベル数Leの画像データD3を(S+1)値化するまでの処理速度を高速化することができる。
さらに第3の実施形態では、図13(a),(b)のグラデーション画像からもわかるように、ステップSG及びステップSHの各処理で上記式(3)の関係を満たすように各レベル数Le,(Q+1),(S+1)を設定すると、ドットの分散性に優れた画像を形成することができる。
なお、第3の実施形態ではステップSG及びステップSHの各処理を前段・後段の2段階にわたっておこなったが、後段のステップSHの処理では、第2の量子化手段としてのCPU2が、周知の誤差拡散処理(誤差拡散法にしたがう処理)又はディザ処理(ディザ法にしたがう処理)をおこなって(Q+1)値の画像データD4を(S+1)値に量子化するようにしてもよい。
ステップSHの処理で誤差拡散処理をおこなう場合には、注目画素の画像データD4の入力値I4(0〜Qのいずれかの整数)と所定の閾値との大小関係を比較してその比較結果に応じたレベルを注目画素に設定する処理と、入力値I4と所定の閾値との差(誤差)を注目画素の未処理周辺画素の入力値I4に一定の割合で拡散する処理とを、繰り返し画素ごとにおこなえばよい。
一方、ステップSHの処理でディザ処理をおこなう場合には、注目画素の画像データD4の入力値I4と予め設定された閾値との大小関係を比較する第1の比較処理と、第1の比較処理の比較結果に基づいて注目画素の画像データD4の入力値I4とその注目画素に対応するディザマトリクス中の閾値との大小関係を比較する第2の比較処理とを、画素ごとにそれぞれおこない、第1及び第2の比較処理の比較結果の各組合せパターンにレベルを設定すればよい。
例えば、上記表2中パターンDに示す通り、レベル数17の画像データD4をディザ処理で2値に量子化する場合には、上記第2の比較処理で画像データD4の入力値I4(0〜16のいずれかの整数)とディザマトリクス中の閾値との大小関係を画素ごとに比較して2値化することができる。この場合、ディザマトリクスとして、図14(a)に示すドット集中型のディザマトリクスや図14(b)に示すドット分散型のディザマトリクスなどを適用することができる。ディザマトリクスとして、図14(a),(b)いずれかのディザマトリクスを適用すると、その適用したディザマトリクスに応じてドットの成長(発生)を制御することができる。
上記では図14(a),(b)のディザマトリクスを例示したが、これら以外のディザマトリクスが適用されてもよい。例えば、上記表2中パターンE,Fに示す通り、画像データD4のレベル数が大きい場合は、適用するディザマスクのサイズを拡大してそのディザマスクにブルーノイズ特性を付加したディザマトリクスを適用してもよい。
このように、後段のステップSHの処理でディザ処理又は誤差拡散処理をおこなえば、後段のステップSHの処理において第1の実施形態で説明したステップSA〜ステップSC又は第2の実施形態で説明したステップSD〜ステップSFの処理をおこなうよりも、レベル数Leの画像データD3を(S+1)値化するまでの処理量を減少させることができ、ひいてはその処理速度をさらに高速化することができる。特に後段のステップSHの処理でディザ処理をおこなう場合には、適用するディザマトリクスに応じてそのディザマトリクス特有の特性をドットの発生に付加することができる。
さらに、第3の実施形態ではステップSGの処理で生成した画像データD4をステップSHの処理の用にそのまま供したが、ステップSHの処理をおこなう前に、解像度変換手段としてのCPU2が、画像データD4について画素数を増やす拡大処理(解像度変換処理)をおこない、その後CPU2がステップSGの処理をおこなってもよい。解像度変換処理では周知の線形補間法にしたがう処理をおこなえばよいが、その他の補間法にしたがう処理をおこなってもよい。例えば、新規画素(解像度変換処理で増やした画素)に、画像データD4の特定の入力値I4を一律に設定することができる。
このように、ステップSHの処理をおこなう前に画像データD4について解像度変換処理をおこなえば、ステップSGの処理の前に画像データD3について解像度変換処理をおこなうよりも、ステップSH及びステップSGの各処理の用に供する画像データD3及び画像データD4の全処理量を減少させることができ、ひいてはステップSH及びステップSGの各処理の処理速度を高速化することができる。もちろん、画像データD4について解像度変換処理をおこなってからステップSHの処理で上記の通り誤差拡散処理又はディザ処理することも可能であって、この場合にはステップSHの処理量を大幅に減少させることができ、解像度変換処理後の画像データD4の処理速度も顕著に高速化することができる。
なお、第3の実施形態では、図12のステップSG〜ステップSHの各処理(解像度変換処理を含む。)を画素ごとに繰り返しおこなってもよいが、ステップSGの処理又は解像度変換処理を終えた画素につきその次の処理をおこなえばよく、例えば、図12のステップSG〜ステップSHの各処理(解像度変換処理)を、1つの行すべての画素につき処理を終えてからその行すべての画素につきその次の処理をおこなってもよい。
また第3の実施形態でも、第1,2の実施形態と同様に、所定数の画素からなる行を切り換えた後の処理方向については、再び左から右に向かう方向としてもよいし、反転させて右から左に向かう方向としてもよいし、左右方向の何れかをランダムに選択するようにしてもよく、全体として蛇行するような順序で1行ごと又は複数行ごとに処理方向を反転させるように各画素の画像データD3,D4をそれぞれ処理するのが好ましい。
第1の実施形態における画像処理装置の構成を示すブロック図である。 第1の実施形態における画像処理装置のCPUが実行する処理を経時的に示したフローチャートである。 第1の変換用データテーブルの一例を示す図面であって、8ビットの画像データを3値化する場合に用いる変換用データテーブルを示す図面である。 逆相関型のデジタルハーフトーニング処理を経時的に示したフローチャートである。 ΔとローカルフィルタPの情報とを対応付けた表である。 基礎フィルタK1〜K3を示す図面である。 基礎フィルタK4〜K6を示す図面である。 ローカルフィルタP(=R(K6,4,−1))を示す図面である。 ヒストグラムHi,j[k]の生成を説明するための図面である。 第1の実施形態における画像処理装置のCPUが実行する処理の変形例を概略的に示す図面である。 第2の実施形態における画像処理装置のCPUが実行する処理を経時的に示したフローチャートである。 第3の実施形態における画像処理装置のCPUが実行する処理を経時的に示したフローチャートである。 レベル数256の画像データを(a)パターンBにしたがって形成したドットのグラデーション画像であり、(b)パターンFにしたがって形成したドットのグラデーション画像である。 (a)ドット集中型(b)ドット分散型のディザマトリクスをそれぞれ示す図面である。
符号の説明
1 画像処理装置
2 CPU(変換手段,ドット出現パターン決定手段,ハーフトーニング手段,レベル設定手段,第1の量子化手段,第2の量子化手段,解像度変換手段)
3 ROM
4 RAM
D1,D2 画像データ
D3 画像データ(第1の画像データ)
D4 画像データ(第2の画像データ)

Claims (9)

  1. レベル数Leの第1の画像データを(S+1)値化する画像処理装置であって(Leは2以上の正の整数でSは正の整数)、
    前記第1の画像データの入力値(0〜(Le−1)のいずれかの整数)を[Le/Q]で割った余りの第1の変換値に変換し、前記第1の変換値について逆相関型のデジタルハーフトーニング処理をおこない、前記第1の画像データの入力値と前記第1の変換値の最大値に基づく閾値との大小関係を比較し、その比較結果とハーフトーニング処理された前記第1の変換値の出力値とを組み合わせて、前記第1の画像データを(Q+1)値に量子化して前記第1の画像データからレベル数(Q+1)の第2の画像データを生成する第1の量子化手段と(Qは2以上の正の整数)、
    前記第2の画像データの入力値(0〜Qのいずれかの整数)を[Q/S]で割った余りの第2の変換値に変換し、前記第2の変換値について逆相関型のデジタルハーフトーニング処理をおこない、前記第2の画像データの入力値と前記第2の変換値の最大値に基づく閾値との大小関係を比較し、その比較結果とハーフトーニング処理された前記第2の変換値の出力値とを組み合わせて、前記第2の画像データを(S+1)値に量子化する第2の量子化手段と、
    を備えることを特徴とする画像処理装置。
  2. 請求項1に記載の画像処理装置において、
    Le/Q<Q/Sの関係が成立することを特徴とする画像処理装置。
  3. 請求項1又は2に記載の画像処理装置において、
    前記第2の画像データついて画素数を増やすように前記第2の画像データを解像度変換する解像度変換手段を備えることを特徴とする画像処理装置。
  4. レベル数Leの第1の画像データを(S+1)値化する画像処理方法であって(Leは2以上の正の整数でSは正の整数)、
    前記第1の画像データの入力値(0〜(Le−1)のいずれかの整数)を[Le/Q]で割った余りの第1の変換値に変換し、前記第1の変換値について逆相関型のデジタルハーフトーニング処理をおこない、前記第1の画像データの入力値と前記第1の変換値の最大値に基づく閾値との外相関係を比較し、その比較結果とハーフトーニング処理された前記第1の変換値の出力値とを組み合わせて、前記第1の画像データを(Q+1)値に量子化して前記第1の画像データからレベル数(Q+1)の第2の画像データを生成する第1の量子化工程と(Qは2以上の正の整数)、
    前記第1の量子化工程の後に、前記第2の画像データの入力値(0〜Qのいずれかの整数)を[Q/S]で割った余りの第2の変換値に変換し、前記第2の変換値について逆相関型のデジタルハーフトーニング処理をおこない、前記第2の画像データの入力値と前記第2の変換値の最大値に基づく閾値との大小関係を比較し、その比較結果とハーフトーニング処理された前記第2の変換値の出力値とを組み合わせて、前記第2の画像データを(S+1)値に量子化する第2の量子化工程と、
    を備えることを特徴とする画像処理方法。
  5. 請求項4に記載の画像処理方法において、
    Le/Q<Q/Sの関係が成立することを特徴とする画像処理方法。
  6. 請求項4又は5に記載の画像処理方法において、
    前記第1の量子化工程と前記第2の量子化工程とのあいだに、前記第2の画像データついて画素数を増やすように前記第2の画像データを解像度変換する解像度変換工程を備えることを特徴とする画像処理方法。
  7. レベル数Leの第1の画像データを(S+1)値化する画像処理装置に(Leは2以上の正の整数でSは正の整数)、
    前記第1の画像データの入力値(0〜(Le−1)のいずれかの整数)を[Le/Q]で割った余りの第1の変換値に変換し、前記第1の変換値について逆相関型のデジタルハーフトーニング処理をおこない、前記第1の画像データの入力値と前記第1の変換値の最大値に基づく閾値との大小関係を比較し、その比較結果とハーフトーニング処理された前記第1の変換値の出力値とを組み合わせて、前記第1の画像データを(Q+1)値に量子化して前記第1の画像データからレベル数(Q+1)の第2の画像データを生成する第1の量子化機能と(Qは2以上の正の整数)、
    前記第2の画像データの入力値(0〜Qのいずれかの整数)を[Q/S]で割った余りの第2の変換値に変換し、前記第2の変換値について逆相関型のデジタルハーフトーニング処理をおこない、前記第2の画像データの入力値と前記第2の変換値の最大値に基づく閾値との大小関係を比較し、その比較結果とハーフトーニング処理された前記第2の変換値の出力値とを組み合わせて、前記第2の画像データを(S+1)値に量子化する第2の量子化機能と、
    を実現させるための画像処理プログラム。
  8. 請求項7に記載の画像処理プログラムにおいて、
    Le/Q<Q/Sの関係が成立することを特徴とする画像処理プログラム。
  9. 請求項7又は8に記載の画像処理プログラムにおいて、
    前記画像処理装置に、
    前記第2の画像データついて画素数を増やすように前記第2の画像データを解像度変換する解像度変換機能を実現させることを特徴とする画像処理プログラム。
JP2003391952A 2003-11-21 2003-11-21 画像処理装置、画像処理方法及び画像処理プログラム Expired - Fee Related JP4496765B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003391952A JP4496765B2 (ja) 2003-11-21 2003-11-21 画像処理装置、画像処理方法及び画像処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003391952A JP4496765B2 (ja) 2003-11-21 2003-11-21 画像処理装置、画像処理方法及び画像処理プログラム

Publications (2)

Publication Number Publication Date
JP2005157525A JP2005157525A (ja) 2005-06-16
JP4496765B2 true JP4496765B2 (ja) 2010-07-07

Family

ID=34718812

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003391952A Expired - Fee Related JP4496765B2 (ja) 2003-11-21 2003-11-21 画像処理装置、画像処理方法及び画像処理プログラム

Country Status (1)

Country Link
JP (1) JP4496765B2 (ja)

Also Published As

Publication number Publication date
JP2005157525A (ja) 2005-06-16

Similar Documents

Publication Publication Date Title
US7791766B2 (en) Image processing apparatus and image processing method
JPH11187264A (ja) 画像処理方法および装置
JP6029305B2 (ja) 画像処理装置およびその制御方法
JP5254740B2 (ja) 画像処理装置および画像処理方法
US6088123A (en) Dithering masks with very large periods
CN107277292A (zh) 图像处理装置
JP4496765B2 (ja) 画像処理装置、画像処理方法及び画像処理プログラム
US7492482B2 (en) Image processing apparatus, image processing method and image processing program
JP4468826B2 (ja) 画像処理装置および画像処理方法
JP2000332995A (ja) 画像データ生成方法および記録媒体
JP2004274714A (ja) 画像処理システムおよび画像処理方法
JP4222151B2 (ja) 画像処理装置、画像処理方法及び画像処理プログラム
JP4238673B2 (ja) 画像処理装置、画像処理方法及び画像処理プログラム
JP2006303999A (ja) 画像処理方法および画像処理装置、および画像処理システム
JP4222187B2 (ja) 画像処理装置、画像処理方法及び画像処理プログラム
JP4151520B2 (ja) 画像処理装置、画像処理方法及び画像処理プログラム
JP4238660B2 (ja) 画像処理装置、画像処理方法及び画像処理プログラム
JP4027300B2 (ja) 画像処理方法、画像処理装置、画像形成装置、コンピュータプログラム及び記録媒体
JP4031442B2 (ja) 画像処理装置、及びそれを備える画像形成装置
JP4158652B2 (ja) 画像処理装置、画像処理方法及び画像処理プログラム
JP2005064769A (ja) 画像処理装置、画像処理方法及び画像処理プログラム
JP4151522B2 (ja) 画像処理装置、画像処理方法及び画像処理プログラム
JP4965378B2 (ja) 画像形成方法および画像形成システム
JP5950694B2 (ja) 画像処理装置およびその制御方法
JP2006311266A (ja) 画像処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061026

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090814

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090825

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091026

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091117

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100217

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100308

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100405

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

Free format text: PAYMENT UNTIL: 20130423

Year of fee payment: 3

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

Year of fee payment: 4

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees