JP2006005634A - 画像処理装置、画像処理方法、画像処理プログラムおよびそのプログラムを記録した記録媒体 - Google Patents

画像処理装置、画像処理方法、画像処理プログラムおよびそのプログラムを記録した記録媒体 Download PDF

Info

Publication number
JP2006005634A
JP2006005634A JP2004179594A JP2004179594A JP2006005634A JP 2006005634 A JP2006005634 A JP 2006005634A JP 2004179594 A JP2004179594 A JP 2004179594A JP 2004179594 A JP2004179594 A JP 2004179594A JP 2006005634 A JP2006005634 A JP 2006005634A
Authority
JP
Japan
Prior art keywords
pixel
image data
gradation
data
reference point
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.)
Withdrawn
Application number
JP2004179594A
Other languages
English (en)
Inventor
Nobuhiro Karido
信宏 狩戸
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 JP2004179594A priority Critical patent/JP2006005634A/ja
Publication of JP2006005634A publication Critical patent/JP2006005634A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

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

Abstract

【課題】 規則的なドットの形成やドットの偏り発生を抑え、ドットの分散性がよい出力画像を得るための画像処理装置、画像処理方法、画像処理プログラム、またはそのプログラムを記録した記録媒体を提供することを目的とする。
【解決手段】 画像データ変換部22aは入力画像データを所定の画素配列を有する対象画像データに変換する。そして変換した対象画像データについて、画素群生成部22bは画素ごとの階調値の総和が所定の閾値以上となるまで画素を選択して画素群を生成し、データ付与部22dは、基準点決定部22cが決定したセル内の所定の画素にドットを形成するための所定の階調データを付与する。こうすることによって、所定の画素配列に応じた形状のセルが生成され、ドットの偏りを抑制する。
【選択図】 図2

Description

本発明は、多階調値で表された入力画像の画像データを、所定の手法にて階調変換することによって、プリンタなどの画像出力装置の出力画像に生じ得るドットの偏り発生などを抑える画像処理技術に関する。
従来より、レーザプリンタやインクジェットプリンタなど画像出力装置では、多階調値で表された画像データを、画素ごとに所定の閾値で2値化し、所定の階調値が付与された画素の位置に、所定の大きさのドットを形成することによって印刷用紙に印刷を行い、印刷物として画像を出力することが行われている。ここで、多階調値で表された画像データを、所定の階調値に2値化した階調データに変換する処理のことをハーフトーン処理と一般に称している。
ハーフトーン処理については、形成するドットの位置によってドットが繋がるなどドットに偏りが発生することがある。そこで、このようなドットの偏りの発生を抑えドットの分散性を向上する技術として、例えば、ドットの繋がりを少なくする技術が特許文献1にて提案されている。特許文献1では、入力画像の画素について、階調値合計が閾値に達するまで所定のテーブルにより画素を探索してセルを生成し、セルの中央付近の位置にドットを形成する技術が開示されている。
特開平11−27528号公報
特許文献1におけるハーフトーン処理では、ドットの繋がりの発生を抑えるため、セルを構成する画素の探索を、所定の探索順を記録したテーブルを用いて行う方法が提案されている。しかしながら、テーブル内で左側に存在する画素は、既に2値化処理済みの場合が多く、結果的に生成されるセルが歪んだ形(例えば三日月型)となってしまう。かかる形状のセルでは、セルの中央付近がそのセルの外側に位置することもある。このようなセルについて、セルの中央付近の位置にドットを形成させると、隣のセルのドットと重なってしまうことが生じるため、形成されるドットが繋がり、結果的にドットの偏りを発生させ、ドットの分散性が劣化してしまうという課題があった。
また、特許文献1において、2値化の対象となる入力画像は、通常ドットマトリクス状に配列された正方形の画素から構成されているため、入力画像がおおよそ中濃度の画像であるような場合、例えば数個程度の少ない画素数でセルが構成され、ほぼ同じ形状のセルが隣接して連続的に生成されることが生じ得る。この結果、セルの中央付近の位置に形成されるドットは互いに隣接する確率が高くなるため、このようなドットの隣接に起因してドットの偏りが発生しまうという課題があった。また、同じく、入力画像がおおよそ中濃度の画像であるような場合は、探索順をランダムにしても、セルを構成する画素数が少ないためほぼ同じ形状のセルが生成され、結果的にドットが規則的に形成されたり、ドットが偏って形成されたりしてしまうなど、視覚的に分散性の悪い画像が出力されるという課題もあった。
本発明は、このような課題の少なくとも一部を解決し、規則的なドットの形成やドットの偏り発生を抑え、ドットの分散性がよい出力画像を得るための画像処理装置、画像処理方法、画像処理プログラム、またはそのプログラムを記録した記録媒体を提供することを目的とする。
上記目的を達成する本発明の画像処理装置は、画素ごとに、多階調値で表された画像データを、ドットを形成するための所定の階調データに階調変換する画像処理装置であって、前記画像データを、所定の画素配列を有する対象画像データに変換する画像データ変換部と、前記生成された対象画像データについて、画素ごとの前記対象画像データの階調値の総和が、所定の閾値以上となるまで画素を順次選択して画素群を生成する画素群生成部と、生成される前記画素群内の所定の画素に対して、前記所定の階調データを付与するデータ付与部と、を備えたことを要旨とする。
かかる画像処理装置によれば、画像データを所定の画素配列を有する対象画像データに変換する。そして変換した対象画像データについて、画素ごとの階調値の総和が所定の閾値以上となるまで画素を選択して画素群(以下、「セル」とも呼ぶ)を生成し、セル内の所定の画素にドットを形成するための所定の階調データを付与する。こうすることによって、所定の画素配列に応じた形状のセルが生成される。従って、生成されるセルがおおよそ円形状になる画素配列とすることによって、生成されたセル内の所定の画素に形成されるドットは繋がらず、ドットの偏りを抑制することができる。
あるいは、本発明の画像処理装置は、画素ごとに、多階調値で表された画像データを、ドットを形成するための所定の階調データに階調変換する画像処理装置であって、前記画像データを、所定の画素配列を有する対象画像データに変換する画像データ変換部と、画素選択のための第1の基準点に基づいて、画素ごとの前記対象画像データの階調値の総和が、所定の閾値以上となるまで画素を順次選択して画素群を生成する画素群生成部と、前記生成された画素群について第2の基準点を決定する基準点決定部と、前記決定された第2の基準点に位置する画素に前記所定の階調データを付与するデータ付与部とを備え、前記画素群生成部は、前記第1の基準点を更新して当該第1の基準点に基づいて前記画素を選択して前記画素群を生成し、前記データ付与部は前記生成された画素群における前記対象画像データの階調値の総和が前記所定の閾値以上となったとき、前記第2の基準点が位置する画素に前記所定の階調データを付与することを特徴とする。
かかる画像処理装置によれば、入力画像の画像データを所定の画素配列を有する対象画像データに変換する。そして変換した対象画像データについて、画素ごとの階調値の総和が所定の閾値以上となるまで第1の基準点に基づいて画素を選択してセルを生成し、生成されたセル内の第2の基準点に位置する画素にドットを形成するための所定の階調データを付与する。こうすることによって、セルの生成に際して、セルに組み入れる画素を選択するための基準点と、生成したセルに形成するドットの位置を決定する基準点とを区別することができる。従って、例えばセルに組み入れる画素を選択する基準点を、セルの形状がより円形状になるように、セルの形状に着目してセルに組み入れる画素を選択することができる。この結果、ドットは円形状のセルに形成されるため偏りが少なくなる確率が高くなる。
ここで、前記画素群生成部は、前記画素群における画素ごとの前記対象画像データの階調値の総和が前記所定の閾値を超えたとき、超えた分の前記階調値を前記画素群生成部が最後に選択した画素に戻すこととしてもよい。
こうすれば、閾値を超えたセルに最後に組み入れられた画素に、閾値を超えた分の階調値を戻しているため、ハーフトーン処理前の入力画像の階調値が失われず、元の画像とほぼ同じ位置に画像全体の階調値が残るため、入力画像に忠実な偏りの少ないドットを形成させることができる。
さらに、前記画素群生成部は、前記第1の基準点に基づいて選択すべき画素が複数存在するとき、選択する画素をランダムに選択することとしてもよい。こうすれば、同じ形状のセルが連続して生成される確率が低くなり規則的なドットの発生を抑えて分散性を向上させ、視覚的に快適な出力画像をえることができる。
ここで、前記基準点決定部は、前記画素群における画素の位置と画素の階調値とから算出した重心位置を、前記第2の基準点として決定することとしてもよい。こうすれば、形成するドットの位置は、生成したセルの重心となるため、入力画像の階調データに忠実なドットをセル内に形成することができる。
また、前記第1の基準点は、前記画素群における画素の位置と、当該画素の前記対象画像データの階調値とから算出した重心位置であることとしてもよい。こうすれば、セルの生成処理に際して、常にセルの重心に最も近い画素を選択してセルに組み入れていくため、生成されるセルの形状はセルの重心を中心としたおおよそ円形状になる。そして、その円のおおよそ中心位置にドットが形成されることになるため、ドット間距離が保たれた分散性の良いドットが形成される。
また、本発明の画像処理装置において、前記画像データ変換部は、画像データの奇数ラインと偶数ラインとで画素位置を互いに交互の位置とした千鳥状の画素配列を有する対象画像データに変換することとしてもよい。
こうすれば、画素の配列が正方形のドットマトリクス状であった画像データから、千鳥状の画素配列の画像データに変換される。この結果、セルを構成する画素数が少ない場合においても、生成されるセルの形状が例えばハニカム形状などになる確率が高くなり、より円形状に近づくことになる。従って、セル内に形成されるドットは繋がらず、分散性が向上する。
また、上記目的を達成する本発明の画像処理方法は、画素ごとに、多階調値で表された画像データを、ドットを形成するための所定の階調データに階調変換する画像処理方法であって、前記画像データを、所定の画素配列を有する対象画像データに変換する画像データ変換工程と、画素選択のための第1の基準点に基づいて、画素ごとの前記対象画像データの階調値の総和が、所定の閾値以上となるまで画素を順次選択して画素群を生成する画素群生成工程と、前記生成された画素群について第2の基準点を決定する基準点決定工程と、前記決定された第2の基準点に位置する画素に前記所定の階調データを付与するデータ付与工程とを備え、前記画素群生成工程は、前記第1の基準点を更新して当該第1の基準点に基づいて前記画素を選択して前記画素群を生成し、前記データ付与工程は前記生成された画素群における前記対象画像データの階調値の総和が前記所定の閾値以上となったとき、前記第2の基準点が位置する画素に前記所定の階調データを付与することを特徴とする。
また、本発明はコンピュータプログラムまたはそのプログラムを記録した記録媒体としてもよい。すなわち、画素ごとに、多階調値で表された画像データを、ドットを形成するための所定の階調データに階調変換する画像処理プログラムであって、前記画像データを、所定の画素配列を有する対象画像データに変換する画像データ変換機能と、画素選択のための第1の基準点に基づいて、画素ごとの前記対象画像データの階調値の総和が、所定の閾値以上となるまで画素を順次選択して画素群を生成する画素群生成機能と、前記生成された画素群について第2の基準点を決定する基準点決定機能と、前記決定された第2の基準点に位置する画素に前記所定の階調データを付与するデータ付与機能とをコンピュータに実現させ、前記画素群生成機能は、前記第1の基準点を更新して当該第1の基準点に基づいて前記画素を選択して前記画素群を生成し、前記データ付与機能は前記生成された画素群における前記対象画像データの階調値の総和が前記所定の閾値以上となったとき、前記第2の基準点が位置する画素に前記所定の階調データを付与することを特徴とする。
また、このプログラムを記録した記録媒体としては、フレキシブルディスクやCD−ROM、ICカード、パンチカードなど、コンピュータが読み取り可能な種々の媒体を利用することができる。
次に、本発明を実施するための最良の形態を説明する。図1は、本発明が適用される画像処理装置を含むシステム全体の一例を示す構成図である。全体として画像入力装置10と、画像処理装置20と、画像出力装置30とから構成される。これらの装置は基本的にコンピュータまたはコンピュータによって制御される装置であり、所定のオペレーティングシステムのもとで所定のプログラムが実行されることによって動作する。
画像入力装置10は、アプリケーション部11とラスタライズ部12とから構成される。アプリケーション部11は、文字データ、図形データ、ビットマップデータ等の印刷対象となるデータを生成する。例えば、画像入力装置10でワードプロセッサや図形ツールなどのアプリケーションプログラムを使用して、図示しないキーボード等の操作により文字データや図形データなどを生成する。そして生成したこれらのデータを、ラスタライズ部12へ出力する。もとより、画像入力装置10は、図示しないスキャナやデジタルスチルカメラなどの画像データを取得する機器から出力されるデータを受け付け、このデータをアプリケーション部11が生成するデータとしてラスタライズ部12へ出力するものとしても差し支えない。
ラスタライズ部12は、アプリケーション部11から出力された印刷対象のデータを画素ごとに複数色の画像データに変換して出力する。本実施形態では、R(レッド)、G(グリーン)、B(ブルー)の色毎で、画素ごとに8ビット(計24ビット)の多階調値で表された画像データを出力する。したがって、出力される画像データは、画素ごとに0から255までの256種類の階調値を有することになる。ラスタライズ部12における画像データの生成処理は、実際には画像入力装置10に実装された図示しないドライバによって行われる。こうしてラスタライズ部12から出力される画像データは、画像処理装置20に出力される。
画像処理装置20は、基本的にコンピュータであり、色変換部21とハーフトーン処理部22とから構成される。画像処理装置20では、画像入力装置10から出力された画像データに対して、色変換処理とハーフトーン処理を行い、所定の階調データDRを画像出力装置30へ出力する処理が行われる。
色変換部21は、画像入力装置10から出力される256種類の階調値を有するRGB各8ビット(計24ビット)の画像データを受け取り、画像出力装置30が出力する色成分に合わせて色変換処理を行う。本実施形態では、RGBからCMYKの画像データDTに色変換処理を行うものとする。ここで、Cはシアン、Mはマゼンダ、Yはイエロー、Kはブラックを示す。
ハーフトーン処理部22は、色変換部21から出力されるCMYKの画像データDTに対して、それぞれの画像データを所定の画素配列を有する画像データに変換処理した後、画素ごとに所定の閾値を用いて量子化データ(2値あるいは4値などの多値の値)に変換し、変換された量子化データである所定の階調データDRを画像出力装置30に出力する。ハーフトーン処理として、本実施形態では、複数の画素からなるセルを、画素群の重心を用いて構成し、そのセルの重心にドットを生成させる処理(Circular Cell法、以下CC法)を用いる。CC法の具体的な内容は後述する。
画像出力装置30は、パルス幅変調部31と印刷エンジン35とから構成され、印刷エンジン35は、レーザドライバ36とレーザダイオード(LD)37とから構成される。画像出力装置30では、画像処理装置20から出力された所定の階調データDRに従って印刷エンジン35が駆動され、この印刷エンジン35によって印刷用紙等の記録媒体に各色成分のドットが形成され、実際に印刷が行われるのである。
パルス幅変調部31は、ハーフトーン処理部22から出力された所定の階調データDRを入力し、この所定の階調データDRから所定のパルス数とパルス幅をもったレーザ駆動パルスを駆動データとして生成する。そして、この駆動データをレーザドライバ36に出力する。
レーザドライバ36は、入力された駆動データから、レーザダイオード37を駆動する制御データを生成し、レーザダイオード37に出力する。レーザダイオード37は、レーザドライバ36から出力された制御データに基づいて駆動され、さらに図示しない感光ドラムや転写ベルトが駆動されて、最終的に印刷用紙等の記録媒体に、パルス幅とパルス数に応じて所定の色成分のドットが所定数出力される。こうして、記録媒体に各色のドットが形成され画像入力装置10にて生成された印刷対象となるデータが印刷されることになる。
次に、図2を参照して、本発明が適用される画像処理装置20の具体的なハード構成について説明する。ここで、図1の画像処理装置20を構成する色変換部21、ハーフトーン処理部22は、図2におけるCPU26、RAM27およびROM28に対応する。
画像処理装置20は、全体として、入出力インターフェイス(I/F)25、CPU26、RAM27、ROM28、ハードディスク29とから構成され、それらはバスを介して互いに接続されている。入出力I/F25は、画像入力装置10と画像処理装置20とのインターフェイス、及び画像処理装置20と画像出力装置30のインターフェイスの役割を果たす。入出力I/F25には、所定の伝送方式により伝送された画像入力装置10からのRGBの画像データが入力され、画像処理装置20で処理できるデータに変換される。RGBの画像データは、一旦RAM27に格納される。そして、入出力I/F25から、所定の階調データDRを画像出力装置30に所定の伝送方式を用いて送出する。
CPU26は、バスを介してハードディスク29またはROM28に格納されたプログラムを読み出し、この読み出したプログラムを所定のオペレーティングシステムのもとで実行することによって、画像処理装置20として機能し、所定の処理を実行する。特に、請求項に記載した画像データ変換部22a、画素群生成部22b、基準点決定部22c、データ付与部22dとして機能する。
各部は上述したハーフトーン処理部22が行う処理を司る。すなわち、画像データ変換部22aは入力画像データの画素配列を所定の画素配列に変換処理する。画素群生成部22b、基準点決定部22c、データ付与部22dは後述するCC法によるハーフトーン処理を行い、所定の画素配列に変換された入力画像データを、ドットを形成するための所定の階調データに階調変換処理する。
これらの処理を記録したプログラムは、予めハードディスク29やROM28に格納されていることとしてもよいし、例えばCD−ROMなどのコンピュータが読み取り可能な記録媒体によって外部から供給され、図示しないCD−R/RWドライブを介してハードディスク29に記憶することによって格納されるものとしてもよい。もとより、インターネットなどのネットワーク手段を介して、プログラムを供給するサーバー等にアクセスし、データをダウンロードすることによってハードディスク29に格納されるものとしてもよい。
RAM27は、CPU26の制御によって実行される各処理のワーキングメモリとして役割を果たし、処理後の各種データを格納する。RAM27の具体的構成等については後述する。
以上説明した実施形態では、色変換部21が出力するCMYKの画像データDTは、各色8ビットずつの多階調値で表されたデータとなっており、各色“0”から“255”まで256種類の階調値を有するものとする。また本実施形態では、ハーフトーン処理部22にて、各色成分のドットを出力するか否かを制御する量子化処理を行うものとして説明することとし、ハーフトーン処理部22が出力する所定の階調データDRは、C、M、Y、Kそれぞれの色成分について、画素ごとに階調値“0”あるいは階調値“255”に量子化(2値化)された2値化データであるものとする。最終的に、画像出力装置30は、前述したように、出力された所定の階調データ、つまり階調値“255”に量子化された全ての画素に対応してパルス幅とパルス数を生成し、各色成分のドットの出力を制御して印刷を行うのである。
次に、画像処理装置20において、後述する実施例で用いるハーフトーン処理の手法となるCC法について説明する。なお、以下のCC法の説明においては、後述する実施例に関する効果説明を容易にするため、入力画像は正方形のドットマトリクス状の画素で構成されているものとする。
「CC法の説明」
それでは、CC法によるハーフトーン処理について図3のフローチャートと図4および図5の模式図を用いて説明する。この処理が実施されると、まずステップS201にて、ハーフトーン処理つまり階調変換処理の対象となる入力画像を読み込む処理を行う。前述したように、入力画像は正方形のドットマトリクス状の画素で構成されているものとし、ここでは一例として色成分シアンの画像データを入力画像として読み込むものとする。もとよりハーフトーン処理は、入力画像について全ての画素の画像データに対して行なわれる。読み込んだ画像データの一例を図4(a)に示した。例えば、m行n列目の画素(以降(n,m)と表す)には、階調値“50”の画像データが与えられている。
次にステップS205で、階調変換が未処理である画素(以降、未処理画素)を探索する処理を行い、探索未処理画素が有るか否かを判定する処理を行う。未処理画素の探索は、常に、まず水平方向に探索走査を行い、次に垂直方向へ探索走査を行う。すなわち、未処理画素が存在する場合は、入力画像全体で最も上側にある画素のうち、最も左側にある画素を探索することになる。もとより、階調変換処理の開始時では、入力画像の左上隅の画素が探索される。
次に、判定の結果、未処理画素が有った場合(YES)、次のステップS215へ進む。一方、判定の結果、未処理画素が無い場合は(NO)、入力画像全体は階調変換されたものとして、2値化データを出力する処理を行い(ステップS206)、ハーフトーン処理ルーチンを終了する。
ステップS215では、セルの拡大終了条件が成立するか否かを判定する処理を行う。本実施形態では、セル内の画素の階調値合計が閾値“255”以上であることがセルの拡大を終了する条件となる。そして、判定の結果、NOの場合はセルを拡大する処理を行い(ステップS220)、セルの重心から最も近い画素をセルに組み入れることによってセルの拡大を行う。一方、判定の結果、YESの場合はセルの拡大を終了し、ステップS225へ進む。
ステップS215およびステップS220での処理について、図4を用いて具体的に説明する。いま、探索した未処理画素MGが図4(a)の網掛け部で示したm行n列目の画素(n,m)であり、他の画素も全て未処理画素であったとする。このとき、(n,m)1画素のセルCLが生成されたことになる。
次にセルCL内の画素の階調値の合計は“50”となり、“255”未満であるので、セルCLの重心位置を算出する。算出されたセルCLの重心GCの位置は、画素(n,m)の中心になり、図4(b)網掛け部で示したように、算出した重心GCの位置から最も近い未処理画素をセルCLに組み入れる。この場合、(n+1,m)(n,m+1)の2つの画素が重心に最も近い画素として存在する。本実施形態では、このような選択対象となる画素が複数存在する場合はランダムに1つの画素を選択する。ここでは画素(n+1,m)をセルに組み入れ、セルCLを拡大するものとする。このように選択すべき画素が複数存在するときは、ランダムに画素を選択することにより、同じ形状のセルが連続して生成されにくくなる。この結果、後述するセルの重心に形成されるドットの分散性が向上する。もとより、ランダムとせず、所定の選択順を決めて選択することとしても差し支えない。
次に、拡大したセルCL内(図4(c)の太枠線内の部分)の画素の階調値の合計は“100”となり、閾値“255”未満であるので、セル内の画素位置と画素の階調値からセルCLの重心GCの位置を算出する。そして、図4(c)網掛け部で示したように、算出した重心GCの位置から最も近い画素として、2つの画素(n,m+1)(n+1,m+1)が選択すべき画素となる。ここでも、同じくランダムに画素を選択して画素(n,m+1)をセルに組み入れ、セルCLを拡大する。
次に、拡大したセルCL内(図4(d)の太枠内の部分)の画素の階調値の合計は“150”となり、閾値“255”未満であるので、セルCL内の画素位置と画素の階調値からセルCLの重心GCの位置を算出する。そして、図4(d)網掛け部で示したように、算出した重心GCの位置から最も近い画素(n+1,m+1)をセルに組み入れ、セルCLを拡大する。
次に、拡大したセルCL内(図4(e)の太枠線内の部分)の画素の階調値の合計は“205”となり、閾値“255”未満であるので、セルCL内の画素位置と画素の階調値からセルCLの重心GCの位置を算出する。そして、図4(e)網掛け部で示したように、算出した重心GCの位置から最も近い画素(n+1,m+2)をセルに組み入れ、セルCLを拡大する。
次に、拡大したセルCL内(図4(f)の太枠線内の部分)の画素の階調値の合計は“255”となり、セルの拡大終了条件を満たすので、セルCLの拡大処理を終了し、ステップS225(図3)に進む。
ステップS225では、セル内の画素の階調値合計が閾値と等しいか否かを判定する処理を行う。判定の結果閾値と等しい場合は(YES)、前述の処理と同様、セル内の画素位置と画素の階調値からセルの重心GCの位置を算出する処理を行う(ステップS229)。そして、算出した重心位置に存在する画素に、閾値と同じ階調値を与える処理を行い(ステップS230)、ステップS205に戻って未処理画素の探索処理以降を繰り返す。
図4(f)に示したように、ステップS230では、ステップS229によって算出した重心GCの位置に存在する画素(n+1,m+1)に、閾値と同じ階調値“255”を与える。この階調値“255”が与えられた画素の位置にシアンの画像データに対応したドットを形成して画像を印刷するのである。
一方、ステップS225で判定の結果、閾値と等しくない場合つまり閾値を超える場合は(NO)、閾値を超えた分の階調値である誤差データを無視して、セルの重心を算出する処理を行う(ステップS226)。そして、誤差データを最後にセルに組み入れた画素に戻し(ステップS227)、この誤差データを戻した画素を未処理画素とする処理を行う(ステップS228)。次に、ステップS230に進み、算出した重心位置に存在する画素に、閾値と同じ階調値を与える処理を行う。
ステップS226からS228までの処理について、図5を用いて具体的に説明する。図5(a)は、図4(f)にて説明したセルCL1の生成処理に続き、ステップS205にて、所定の走査方法による走査方向に従って画素(n+2,m)が未処理画素MGとして探索された状態を示している。そして図4にて説明した処理と同様に処理を行い、図5(b)では画素(n+2,m+1)を、図5(c)では画素(n+3,m+1)を、図5(d)では画素(n+3,m+2)を未処理画素MGとしてセルCL2に組み入れてセルを拡大する。
図5(e)に示したように、画素(n+3,m+2)がセルCL2に組み入れた時点で、セルCL2内の画素の階調値合計は“265”となり、閾値“255”を超える。そこで、超えた分の誤差データ“10”(=265−255)を無視し、画素(n+3,m+2)が階調値“50”(=60−10)であるとしてセルCL2の重心GC2を算出する。
そして、図5(f)に示したように、算出した重心GC2の位置に存在する画素(n+3,m+1)に階調値“255”を付与する。このとき、最後にセルCL2に組み入れた画素(n+3,m+2)に誤差データ“10”を戻す。そして、画素(n+3,m+2)を階調値“10”を有する未処理画素とし、セルCL2から除外する。
図3および図4、図5を用いて説明したハーフトーン処理が本実施形態におけるCC法の基本的な処理内容である。CC法によるハーフトーン処理によれば、常にセルの重心に最も近い画素を組み入れてセルを生成するため、閾値を付与する画素位置に対してほぼ円形状となるセルを生成する。従って、閾値が付与された画素位置にドットを形成した場合、隣り合うドットが近かったり、あるいは重なったりする確率を減少することができ、分散性のよいドットを形成することができる。
また、CC法では、前述したように選択すべき未処理画素が複数存在した場合、ランダムに画素を選択してセルを拡大するため、同じような形状のセルが生成される確率が減少し、形成されるドットがばらつくことになり、規則的なパターンの発生が抑えられる。
また、CC法によるハーフトーン処理によれば、誤差データを元の画素に戻すため、入力画像データの歪みが小さくなり、入力画像の階調値に対して比較的忠実に階調変換処理を行うことができる。
次に、CC法によるハーフトーン処理について、各ハードにおける具体的な処理内容を図3のフローチャートと図2の構成図を参照し、図6〜図8の模式図を用いて説明する。
まず、CPU26は、ハードディスク29またはROM28に格納されたプログラムを読み出して、入力画像の読み込み処理を開始する(ステップS201)。入力画像の読み込みは、ハードディスク29に格納された色変換処理後の画像データを、RAM27の指定された入力バッファ領域に取り込むことで行う。例えばシアンの画像データはシアン入力バッファ領域に格納され、マゼンタの画像データはマゼンタ入力バッファ領域に格納される。CC法は、全ての画像データについて基本的に同じ処理を行うものであるため、各色成分の画像データを区別せずに説明することとし、RAM27に用意された入力バッファだけでなく、以降説明する出力バッファやワーキングメモリについてもシアン、マゼンタなどの記載を省略している。この例を図6(a)に示す。もとより、各画像データについての処理データは、それに対応した入力バッファ、ワーキングメモリ、出力バッファの各領域に格納される。
RAM27は、図6(a)に示すように、入力バッファ領域271と、ワーキングメモリ領域272と、出力バッファ領域273とから構成される。この入力バッファ領域271は、2次元構造を有しており、例えば上述の入力画像の画素(以降、入力画素)について、(n,m)に位置する入力画素の画像データは、入力バッファ領域の(n,m)のアドレスに格納される。入力画素の位置に対応するように入力バッファ領域271が構成される。実際には、このアドレスには画像データの階調値が格納されることになる。例えば、図4(a)に示すシアンの画像データが入力されると、図6(a)に示すように入力バッファ271に各画素の階調値が格納される。ワーキングメモリ領域272は、重心位置の演算結果(x,y)と、セル内の画素の階調値合計の演算結果(sum)が格納され、出力バッファ領域273は入力バッファ271と同様に各入力画素の画像データに対応するように構成される。詳細は後述する。
次いで、CPU26は、セル生成の最初の未処理画素となる初期画素を探索決定して(ステップS205)、決定した初期画素の階調値が閾値より小さいか否かを判断する(ステップS215)。具体的には、ROM28に格納した閾値を読出し、RAM27の入力バッファ271から読み出した初期画素の階調値と比較し、閾値よりも小さい場合はステップS220に移行し、閾値と同じか大きいときはステップS225に移行する。
初期画素の決定は、RAM27の入力バッファ271に格納された入力画像データのうち、入力画素の位置で最も上の左側に位置する画素をCPU26が選択する。すなわち、図6(a)に示す例では、(n,m)に対応する位置に位置する画素を初期画素としてCPU26は判断する。以下、説明を簡単にするため、(n,m)=(0,0)として説明する。
ステップS215で閾値より小さいと判断された場合(YES)、CPU26は、未処理画素の選択を行い、セルを拡大する処理を行う(ステップS220)。ここで未処理画素の選択は、セルの重心を利用して行う。重心を利用して画素の選択を行うことによって、最終的に生成されるセルの形状は円形状となり、その重心にドットを形成させることでドット間距離が均一となり、ドットの分散性がよい印刷物を得ることができるのである。
CPU26は初期画素の位置する画素の階調値と、そのアドレス位置とを読み出し、重心を演算する。CPU26は、具体的に以下の演算式を用いて演算し重心を求める。
(式1)
重心={{(セルの重心のx座標)×(セル内の画素の階調値合計)}+{(選択した未処理画素のx座標)×(選択した未処理画素の階調値)}}/{(セル内の画素の階調値合計)+(選択した未処理画素の階調値)}
重心={{(セルの重心のy座標)×(セル内の画素の階調値合計)}+{(選択した未処理画素のy座標)×(選択した未処理画素の階調値)}}/{(セル内の画素の階調値合計)+(選択した未処理画素の階調値)}
(x重心、y重心は重心位置の座標)
この演算式はROM28に格納され、ステップS220にてCPU26が読み出して演算を行うことになる。もとより、初期画素の場合は、セルの重心のx、y座標は“0”として演算される。なお、CPU26は、演算した重心位置を、上述したワーキングメモリ領域272のアドレス「x」「y」に格納する(図6(b)参照)。
また、CPU26は、ステップS215で初期画素の階調値が閾値より小さいと判断された場合は、初期画素に対応する出力バッファ273に“0”を格納し、ステップS215で初期画素の階調値が閾値以上と判断された場合は、その時点で初期画素に対応する出力バッファ273に“255”を格納する。この画素位置にドットを出力する処理を行うためである。ここでは、選択された初期画素の階調値は閾値より小さいため、図6(b)に示すように、選択した画素に対応するRAM27の出力バッファ273に“0”がCPU26によって格納されることになる。
続いて、CPU26は、ワーキングメモリ272のアドレス「sum」に初期画素の階調値を格納するとともに、選択した初期画素に対応する入力バッファ271に“−1”を格納する。再度未処理画素の選択で、当該画素を選択されないようにするためである。以降、未処理画素の選択処理と同時もしくは選択処理に先んじて、それまで既に選択されたセルを構成する画素の階調値の合計をワーキングメモリ272のアドレス「sum」に格納し、当該画素に対応する入力バッファ271のアドレスに“−1”を格納する処理を行う。
なお、CPU26は、入力バッファ271に“−1”を格納させているが、これに限ることはなく、他の負の値でもよい。さらに入力バッファ271と同様の構成のメモリ領域を用意して、選択した画素に対応する位置にフラグを立てて、選択画素が処理済みか否かを判別するようにしてもよい。
未処理画素の選択処理は、ステップS220で演算した重心から最も近い距離にある画素を選択することによって行う。このとき、RAM27の入力バッファの所定位置に格納されている入力画像の階調値から、アドレス(1,0)にある入力画素の階調値か、アドレス(0,1)にある入力画素の階調値が選択される。2つの画素ともアドレス(0,0)から等距離にあるからである。ここで、いずれかの画素を選択する必要があるが、本実施形態ではCPU26がランダムに画素を選択し、ここでは0行1列のアドレス(1,0)にある画素の階調値を選択する。こうしてセルを拡大する処理が行われるのである。
次いで、CPU26は、再びセル内の画素の階調値合計が閾値未満であるか否か判断する(ステップS215)。すなわち、選択した未処理画素の階調値を含めたセル内の画素の階調値合計が閾値“255”未満であるか否かを判断する。具体的には、CPU26は、RAM27のワーキングメモリ272のアドレス「sum」に書き込んだ画素の階調値と、ステップS220で選択した画素の入力バッファ271に格納された階調値とを読出し、その合計を演算して、ROM28に格納された閾値(ここでは“255”の値)とを比較する。例えば図6(c)の例では、ワーキングメモリ272のアドレス「sum」に格納された値“50”と、入力バッファ271のアドレス(1,0)格納されている階調値“50”との合計値は“100”となる。よって合計値は閾値に達しない。
階調値の合計が閾値を超えない場合(ステップS215:NO)、CPU26は、再び選択した未処理画素を含めた重心の演算を行う(ステップS220)。具体的なCPU26の演算は、上述した(式1)の演算式を用いて行うことになる。これまで求めた重心のx、y座標は、(0,0)で重心の階調値は“50”、未処理画素のx、y座標は(1,0)で、その階調値は“50”であるので、演算される重心位置は(0.5,0)となる。このステップS220で演算した重心位置は、CPU26の制御によってRAM27のワーキングメモリ272に格納される。ステップS220での前回の処理で、ワーキングメモリ272には初期画素の重心位置が格納されていたが、ここではその位置に上書きして格納する。その格納後の例を図6(c)に示す。
ここで、図6(c)に示されているように、重心位置は必ずしも整数値になるとは限らない。このとき、未処理画素の選択において重心に最も近い画素を選択する方法のほかに、重心が位置する画素に最も近い画素、つまり重心が位置する画素の中心に最も近い画素を選択する方法としてもよい。このようにすると、重心位置は整数値として演算でき、CPU26が処理する計算量の削減が期待できる。
こうして、ステップS215とS220の処理を繰り返すたびに、CPU26は、ステップS215で演算したセル内の画素の階調値合計が、閾値と等しいか否か判断しながら閾値に達するまでセルを構成していくことができる。また、閾値に達していない場合、上述したようにCPU26は、セルに組み入れた入力画素の位置に対応した出力バッファ273の位置に“0”を格納する。
図7(a)は、未処理画素(1,1)が選択されたときの状態を示したものである。ワーキングメモリ272の「sum」の値と画素(1,1)の階調値との合計値と、ROM28に格納された閾値とをCPU26が読み出して両者を比較すると、まだ閾値に達していないので、ワーキングメモリ272には重心位置が、また選択した未処理画素(1,1)に対応する出力バッファ273に“0”がそれぞれ格納される。
図7(b)は、図7(a)に引き続き行われる処理を示したもので、入力画素(1,2)が重心位置に最も近い画素として選択された状態を示している。このとき、セルの階調値合計が“255”になった状態を示している。すなわち、これまでセルに組み込まれた画素の階調値合計“205”が、RAM27のワーキングメモリ272に格納されるので、その値と画素(1,2)の値との合計値“255”を閾値と比較することで、CPU26は閾値と等しいと判断する(ステップS225:YES)。この場合、CPU26は、セルに組み入れた入力画素(1,2)の位置に対応した出力バッファ273の位置に“0”を格納する。
そして、閾値と等しいとCPU26が判断した場合、処理はステップS229に移行し、(式1)を用いて重心位置を演算する。そして、演算した重心位置をワーキングメモリ272に格納する。
次に、重心に位置する画素に所定の色成分のドットを形成するための処理を行う。具体的には、図7(b)に示したように、RAM27の出力バッファ273において、入力画素の位置に対応するアドレス位置に、ドットの形成を示す所定の階調データ“255”を書き込む。出力バッファの構造も入力バッファと同様に2次元構造で、入力画素の位置に対応するアドレス空間を有している。重心が位置するアドレスに“255”を書き込むことで、その後、実際にその入力画素の位置に対応する位置にドットを形成することができる。
次いで、CPU26は、データ“255”の書き込み処理をトリガーにして新たにセルを生成する処理に移行し、再び未処理画素があるか否か判断する(ステップS201)。すなわち、上述した処理をRAM27の入力バッファ271に書き込まれたすべての階調値に対して階調値変換処理を行ったか否かで判断し、未処理画素があれば(YES)再び処理はステップS215に移行し、上述の処理を繰り返す。例えば、図7(c)に、引き続いて上述した走査方法に従って、未処理画素(2,0)が探索された状態を示した。すべての画素に対して処理が終了すれば(ステップS205:NO)、CPU26はステップS206に移行し、処理が終了することになる。
一方、ステップS225でセル内の画素の階調値合計が閾値を超える場合(NO)、処理はステップS226に移行し、閾値を超えた場合の重心演算処理を行う。この場合における処理について図8を用いて説明する。
図8(a)は、図7にて説明した処理に引き続いて、CPU26の処理が行われた状態を示したもので、入力画素(3,1)がセルに組み入れられたときのRAM27に格納されたデータの様子を示している。この場合はセル内の閾値に達しないので拡大終了条件が成立せず(ステップS215:NO)、セルの拡大処理が行われる。
セルの拡大処理によって、図8(b)に示したように、次に(3,2)に位置する画素が選択される。このとき、セル内の画素の階調値合計の演算結果は“265”になり、閾値“255”を超えることになる。したがって、このような場合(ステップS225:NO)、ステップS226に移行することになる。
ステップS226は、閾値を超える階調値分つまり誤差データを無視してセルの重心を算出する処理を行う。このため、まずCPU26は、閾値からセル内の画素の階調値合計、すなわち閾値からこれまでステップS220で格納したワーキングメモリの階調値を減ずる演算を行う。例えば図8に示す例では、閾値は“255”、ステップS220でこれまで格納した階調値は図8(b)に示したように“205”であるので、CPU26がこれらを読み出して255−205=50の値を演算する。
そして、CPU26が、この“50”の値を画素(3,2)の階調値として重心の演算を行うことによって、誤差データが無視されることになる。重心の演算は具体的には、以下の演算式を用いる。
(式2)
重心={{(セルの重心のx座標)×(セル内の画素の階調値合計)}+{(選択した未処理画素のx座標)×(セル内の画素の階調値が閾値となるまでの階調値)}}/{(セル内の画素の階調値合計)+(セル内の画素の階調値が閾値となるまでの階調値)}
重心={{(セルの重心のy座標)×(セル内の画素の階調値合計)}+{(選択した未処理画素のy座標)×(セル内の画素の階調値が閾値となるまでの階調値)}}/{(セル内の画素のレベル値合計)+(セル内の画素の階調値が閾値となるまでの階調値)}
(x重心、y重心は重心位置の座標)
(式1)との違いは、選択した未処理画素の階調値をそのまま用いるのではなく、セルの合計が閾値と同じになるまでの階調値を用いる点が異なる。
この演算式は、(式1)の場合と同様に予めROM28に格納されており、CPU26が本ステップを実行する際にROM28から読み出すことで実行される。ここでは、最終的にステップS220で選択した画素の階調値は、これまで演算した階調値の合計との和をとることで閾値と等しくなるように演算して、それをもとに重心位置を求めることになる。そしてCPU26は、演算した重心位置データを再びRAM27のワーキングメモリ272に書き込む(図8(b)のワーキングメモリ272参照)。
また、CPU26は、最終的に選択した画素の元の階調値からステップS226で演算した演算結果を引いた値(誤差データ)を演算して、その値を再びその選択した画素の入力バッファに書き込む(ステップS227)。これにより、当該画素の階調値が、誤差データとして格納される。図8(c)に例示したように、CPU26は、ステップS226で演算した“50”を最終的に選択した(3,2)の画素の階調値“60”から引いて“10”の値を求め、これをRAM27の入力バッファ271のアドレス(3,2)に再び書き込む(図8(c)の入力バッファ271網掛け部参照)。
そして、この画素はセルに組み込まれず、階調変換が未処理であるとして扱い、新たなセルに組み入れられる未処理画素とする処理を行う(ステップS228)。上述したように、誤差データをセル以外の画素に戻すのではなく、誤差データが発生した画素に再び格納させて戻し、当該画素を未処理画素とすることで、入力画像の階調値に忠実な位置にドットを形成することができる。
その後処理はステップS230に移行し、上述した処理が繰り返されることになる。ちなみに、CPU26は、重心位置の存在する画素に対応する出力バッファ273に“255”を格納する。これにより、その後の処理で重心位置の存在する画素にドットを形成させることができる。
以上説明したように、図2に示したハード構成によって、各画像データに対してCC法によるハーフトーン処理が行われ、入力画像における各画素の階調値は所定の階調データへ変換され、偏りが抑えられたドットが形成されるのである。
ところで、上記の説明から分かるように、CC法では生成されるセルを構成する画素数は、ハーフトーン処理の対象となる画像データの濃度に依存する。従って、画素の階調値が例えば“20”といった低濃度の画像データの場合は、セルを構成する画素数は、閾値を“255”とすると通常12個から13個となり、生成されるセルは円形状に近づく。同様に、画素の階調値が例えば“235”といった高濃度の画像データの場合は、逆にドットを形成しない画素位置を求めるように処理を変更する。つまり、シアンなどの色ドットを形成するかわりに白ドットを形成することとし、画素の階調値を“20”(=255−235)として扱えば、低濃度の画像データの場合と同様にセルを構成する画素数は通常12個から13個となり、白ドットが形成される対象となるセルは円形状に近づく。この結果、画像データが低濃度や高濃度の場合は、ドットは分散性よく形成される。
一方、画素の階調値が例えば“55”近辺の中濃度の画像データの場合、上述のCC法の説明から明らかなように、生成されるセルを構成する画素数は4個ないし5個程度の比較的少ない数量となる。このため、概略4角形でほぼ同一の形状のセルが連続して生成されることになり、形成されるドットは規則的であったり隣接状態であったりして分散性が悪くなる。そこで、ハーフトーン処理に際して、入力画像の画像データについて、画素配列を所定の配列に変換して処理を行うことによって、生成されるセルを構成する画素数が数個程度と少なくなる中濃度の画像データに対して、形成されるドットの分散性を向上させる。これを以下の実施例にて説明する。
「実施例」
本発明が適用される画像処理装置20におけるハーフトーン処理の実施例を、図9のフローチャートを用いて説明する。図9の処理が開始されると、まずステップS20にて入力画像の読み込み処理を行う。次に、ステップS30にて、入力画像の画像データを、奇数ラインと偶数ラインとで交互の位置になる画素配列を有した画像データに変換する処理を行う。
本実施例では、画像データの画素配列を図10に示したように変換する。図10(a)は、一例として、シアン成分の画像データがステップS20にて入力バッファ271に読み込まれた状態を示している。ここでは、正方形のドットマトリクス状の画素配列を有した均一な階調値“40”の画像データがアドレス(0,0)から(7,7)に読み込まれている。
本実施例では、この図10(a)の画像データを、ステップS30にて図10(b)、または図10(c)の画素配列の画像データに変換処理する。図10(b)は、各行における奇数ラインに位置する画素を、偶数ラインに対して半画素分右方向にずらして千鳥状にしたものである。もとより、奇数ラインの画素を偶数ラインに対して左方向に半画素分ずらしてよい。あるいは、奇数ラインをずらさず偶数ラインをずらすこととしてもよい。
図10(c)は、各行における奇数ラインの画素を偶数ラインに対して半画素ずらしたうえで、元の画像からはみ出す画素を削除したものである。もとより、奇数ラインの画素を偶数ラインに対して左方向に半画素分ずらしてよいし、右方向に半画素分ずらすこととしてもよい。あるいは、奇数ラインをずらさず偶数ラインをずらすこととしてもよい。
また、別の方法を用いて図10(c)に示した画素配列に変換することとしてもよい。例えば、図10(a)に示した各行の奇数ラインについて、隣り合う画素の階調値の平均値を、新たに半画素ずらして配置する画素の階調値とすることによって、図10(c)に示した千鳥状の画素配列を有する画像データに変換処理するものとしてもよい。
以降の本実施例の説明では、ステップS30にて図10(b)の画素配列の画像データに変換処理されたものとして扱う。具体的には、CPU26は、RAM27におけるバッファにおいて、奇数ラインに位置する各画素のアドレス位置が、X方向に半画素分(=0.5)ずれたものとして以降の処理を行うことになる。例えば、アドレス(0,1)の座標位置は(0,1)から(0.5,1)にずれた位置として前述した未処理画素の選択やセルの重心位置の演算処理を行う。
次に、ステップS40(図9)にて、CC法によるハーフトーン処理を行う。図11及び図12は、図10(b)に示した千鳥状の画素配列を有する画像データに対して、CC法によるハーフトーン処理を行った場合の処理の様子を示している。
この処理が開始されると、走査方向に従って、まず(n,m)が初期画素として選択される。そして、閾値“255”未満の場合、継続してセルの拡大処理がおこなわれ、まず図11(b)網掛け部に示したように、セルCLの重心GCに最も近い画素(n+1,m)が選択される。以下、図11(c)網掛け部に示した画素(n,m+1)が、図11(d)網掛け部で示した画素(n+1,m+1)が、図11(e)網掛け部で示した画素(n+2,m)が、図11(f)網掛け部で示した画素(n+1,m+2)が、都度算出されたそれぞれのセルCLの重心GCに最も近い画素として順次選択されセルに組み入れられる。
次に、図12(a)網掛け部で示した画素(n+2,m+1)がセルCLの重心GCに最も近い画素として選択されると、セルの階調値は“280”(=40×7)となり、閾値“255”を超える。従って、閾値を超える分の階調値“25”(=280−255)を画素(n+2,m+1)に戻し、この画素を未処理画素とする(図12(b)網掛け部)。そして、図11(c)に示したように、算出されたセルCLの重心GCが位置する画素(n+1,m+1)にドットを形成するための階調値“255”が付与される。
以上の処理が、入力画像データ全体に行なわれると、図13(a)に示した入力バッファのように、網掛け部で示した画素について誤差データが戻されながら全ての画素のハーフトーン処理が進み、最終的に太枠線で示したようにセルが生成される。そして、図13(b)に示したように、出力バッファ273に“0”か“255”の階調データが書き込まれ、階調値“255”が書き込まれたアドレス位置に対応する位置にドットが形成され画像が出力される。
図13(c)は、本実施例のハーフトーン処理によって形成されたドット(図中、網掛け部)の状態を示したもので、規則的なパターンや偏りがなく分散性がよいドットが形成されていることがわかる。なお、図中太枠線で示した元の入力画像に対して、奇数ラインの右端の画素、例えば画素(7,1)は半画素分はみ出している。従って、この画素位置に対応する出力バッファのアドレスにドットを形成するための階調値“255”が付与された場合は、本実施例ではドットを出力しないこととして扱う。もとより、元の入力画像に対して大きな出力画像にはなるが、はみ出した画素位置にドットを形成するようにしても差し支えない。
ここで、本実施例の効果を分かり易く説明するため、入力画像データについて画素配列を変換処理せず、ドットマトリクス状のままCC法を用いたハーフトーン処理を行った結果を図14に示す。
この場合、図14(a)に示したように、網掛け部で示した画素について誤差データが戻されながらセルが生成されるが、生成されるセルの形状はおおよそ四角形状となる。そして、図14(b)に示したように、出力バッファ273の各アドレスに階調値“0”または“255”が書き込まれ、図14(c)に示したように、階調値“255”が書き込まれたアドレス位置に対応する位置にドット(図中、網掛け部)が形成され画像が出力される。
図14(c)に示した出力画像では、画像の左上部分に出力される6個のドットは規則的に形成されている。これに対して図13(c)に示した出力画像では、ドットは規則的に形成されず、図14(c)に対して分散性がよいことがわかる。
また、図4を用いて説明した画素配列がドットマトリクス状の画像データに対するCC法によるハーフトーン処理では、選択すべき画素が複数存在する場合が何度か発生したが、図11を用いて説明した本実施例の千鳥状の画素配列に変換した画像データに対するCC法を用いたハーフトーン処理では、選択すべき画素が複数存在する場合が発生しなかった。従って、本実施例のように、画素配列を半画素ずらす場合は、画素をランダムに選択する処理を行わず、所定の操作方法にて選択することとしてもよい。こうすれば、セルの生成に関する処理負荷を軽減することができる。
以上、本実施例によれば、入力画像の画素配列を、千鳥状の画素配列を有した画像データに変換処理し、CC法を用いたハーフトーン処理を行うことによって、規則的なパターンや偏りの無い分散性のよいドットを形成させることができ、視覚的に快適な出力画像を得ることができる。
以上、本発明について最良の実施形態および実施例を用いて説明したが、本発明はこうした実施形態や実施例に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内において様々な形態で実施し得ることは勿論である。以下、変形例を挙げて説明する。
「第1変形例」
前記実施例では、ドットマトリクス状の画素配列を千鳥状の画素配列に変換処理する際、各行の奇数ライン(または偶数ライン)に位置する画素をずらすこととしたが、第1変形例として、各列の奇数ライン(または偶数ライン)に位置する画素をずらすこととしてもよい。
図15(a)は、各列における奇数ラインに位置する画素を、偶数ラインに対して半画素分下方向にずらして千鳥状にしたものである。もとより、奇数ラインの画素を偶数ラインに対して上方向に半画素分ずらしてよい。あるいは、奇数ラインをずらさず偶数ラインをずらすこととしてもよい。
図15(b)は、各行における奇数ラインの画素を偶数ラインに対して半画素下方向へずらしたうえで、元の画像からはみ出す画素を削除したものである。もとより、奇数ラインの画素を偶数ラインに対して上方向に半画素分ずらしてもよい。あるいは、奇数ラインをずらさず偶数ラインをずらすこととしてもよい。こうすれば、各行における奇数または偶数ラインをずらした場合とおおよそ同様な千鳥状の画素配列を有した画像データに変換されるため、CC法によるハーフトーン処理によって、分散性のよいドットの形成が期待できる。なお、本変形例の場合においては、未処理画素の探索方法を変更し、最も左側で最も上に位置する画素を順次選択する走査方法とすればよい。もとより、前述した最も上側で最も左に位置する画素を順次選択する走査方法としても差し支えない。
「第2変形例」
前記実施例または第1変形例では、各行または各列の画素を半画素ずらして奇数ラインと偶数ラインの画素が交互の位置となる千鳥状の画素配列に変換することとしたが、第2変形例として、画素のすれ量が半画素でなく、半画素より少ないか、または多いずれ量の画素配列に変換することとしてもよい。さらにその変形例として、例えば奇数ライン毎(あるいは偶数ライン毎)に画素のずれ量を変更することとしてもよい。こうすれば、画素の配列が不規則になるため、CC法におけるセルの拡大処理(図3、ステップS220)において、選択すべき画素が不規則に変化することになる。この結果、生成されるセルの形状も不規則に変化する確率が高くなり、形成されるドットの分散性が向上することが期待できる。
「第3変形例」
前記実施例では、入力画像の画素位置をずらすことによって千鳥状の画素配列に変換処理したため、画像全体の画素数は基本的に入力画像の画素数と同じ数量であったが、第3変形例では画素数を削減することによって千鳥状の画素配列を有する画像データに変換処理するものとしてもよい。本変形例を、図16を用いて説明する。
図16(a)は、ステップS20(図9)にて入力バッファ271に読み込まれたドットマトリクス状の画素配列を有する画像データの一例を示している。この画像データを図16(b)に示したように、各行(または各列)の画素を、1つ飛びに一行(または一列)ごと交互に削減して千鳥状の画素配列に変換する。このとき、千鳥状に残る画素の階調値は、本変形例では、千鳥状に残る対象となる画素の階調値と、その画素の周辺に位置する所定の画素、例えば千鳥状に残る対象となる画素の上下左右に存在する全ての画素の階調値とから算出した平均値とする。この場合、図16(b)のアドレス(0,0)に位置する画素の階調値は、図16(a)のアドレス(0,0)、(1,0)、(0,1)の3つの画素の平均階調値であり、階調値“45”(=(40+50+45)/3)となる。また図16(b)のアドレス(5,5)に位置する画素の階調値は、図16(a)のアドレス(5,4)、(4,5)、(5,5)、(6,5)、(5,6)の5つの画素の平均階調値“42”となる。
ここで、千鳥状に残る各画素の階調値について、例えば図16(b)のアドレス(4,0)では階調値平均は“37.5”(=(30+40+40+40)/4)となり整数値にならない。この場合は、四捨五入にて整数値化し“38”とする。上述したように、各画素の画素値は8ビットで表された256階調(0から255までの整数値)としたためである。もとより、小数点以下の桁を含む階調値で表す場合は、小数点以下の桁数に合わせてビット数を増やすこととしてもよい。
あるいは、図16(c)に示したように、千鳥状に残る対象となる画素の階調値を平均階調値とせず、図16(a)に示した階調値をそのまま当該画素の階調値とすることとしてもよい。こうすれば、千鳥状に残る対象となる画素の階調値について演算処理を必要としないため、図16(b)の場合に比べて処理負荷が軽くなる。
以上のように、各行(または各列)の画素を、1つ飛びに交互に削減し千鳥状の画素配列に変換することによって、入力画像データは各行において奇数ラインと偶数ラインとで互いに半画素分ずれた千鳥状の画素配列を有した画像データに変換されたことになる。従って、入力画像をこのような画素配置に変換処理すれば、前述したようにCC法によるハーフトーン処理によって、分散性のよいドットが形成されることになる。
また、図16(b)、(c)に示した例では、入力画像の階調値のまま用いて千鳥状に残る画素の階調値の決定処理を行ったが、とくにこれに限らず、例えば、所定のマトリックスサイズを有する平滑フィルタを用いて画像データをフィルタ処理し、得られた各画素の階調値を用いて千鳥状に残す対象となる画素の階調値を決定してもよい。
なお、第3変形例のように画素を削減して千鳥状の画素配列の画像データに変換した場合、セルの生成に際して前記実施例と同じ閾値を用いると、形成されるドットは、ほぼ元の入力画像の画素数に対して削減後の画素数の割合分だけ減少し、形成される全てのドットによる印刷面積はその割合分減少してしまう。従って、このような場合は、例えばレーザダイオードの駆動パルス幅を調整して形成するドットの大きさを大きくするとよい。こうすれば、ドットの密度は粗くなるが、ドットによる印刷面積を同じにすることができる。あるいは、ドットの大きさは変えずセルの生成に際して用いる閾値を小さくすることとしてもよい。こうすれば、セルを構成する画素数は少なくなるものの、元の入力画像とほぼ同じ数のドットを形成することができる。
「第4変形例」
前記実施例では、基本的に画素のずらしによって千鳥状の画素配列に変換したため、画像全体の画素数はほぼ同じ数量であったが、第4変形例として、第3変形例とは逆に画素数を増加することによって千鳥状の画素配列を有する画像データに変換するものとしてもよい。本変形例を、図17を用いて説明する。
図17(a)は、ステップS20(図9)にて入力バッファ271に読み込まれたドットマトリクス状の画素配列を有する画像データの一例を示している。この画像データを図17(b)網掛け部に示したように、隣り合う行(または列)の全てのライン間に画素位置が交互になるよう一行(または一列)ずつ画素を増加して千鳥状の画素配列に変換処理する。このとき、増加する画素の階調値は、本変形例では、増加する画素の位置に対して周囲4つの画素の階調値を用い、それらの画素の階調値の平均値を、増加する画素の階調値として算出する。
例えば、図17(b)に示したように、0行のラインと1行のラインとの間に0.5行の画素ラインを増加し、アドレス(0.5,0.5)に位置する画素の階調値は、アドレス(0,0)、(1,0)、(0,1)、(1,1)の4つの画素の平均階調値であり、階調値“44”(≒(40+50+45+40)/4)となる。またアドレス(4.5,0.5)に位置する画素の階調値は、アドレス(4,0)、(5,0)、(4,1)、(5,1)の4つの画素の平均階調値であり、階調値“40”(=(40+40+40+40)/4)となる。もとより、増加する画素の階調値を平均値とせず、ニアレストネイバ法、バイリニア法、バイキュービック法など周知の補間処理方法を用いて算出した値としてもよい。
なお、図17の説明において、入力バッファ271に単位0.5のアドレスを設定するものとして説明したが、具体的な処理に際しては、例えば全て整数値のアドレスに置き換えるなど、RAM27のバッファ構成に合わせてアドレスを設定し直せばよい。
以上本変形例によれば、隣接する行(または列)ライン間に新たに一行(または一列)画素ラインを増加させるため、入力画像データは各行において奇数ラインと偶数ラインとで互いに半画素分ずれた千鳥状の画素配列を有した画像データに変換されたことになる。従って、入力画像をこのように画素配置変換すれば、前述したようにCC法によるハーフトーン処理によって、分散性のよいドットが形成されることになる。
なお、第4変形例のように画素を増加して千鳥状の画素配列の画像データに変換した場合、セルの生成に際して前記実施例と同じ閾値を用いると、形成されるドットは、ほぼ元の入力画像の画素数に対して増加後の画素数の割合分だけ増加し、ドットによる印刷面積が増加してしまう。従って、このような場合は、例えばレーザダイオードの駆動パルス幅を調整して形成するドットの大きさを小さくするとよい。こうすれば、ドットの密度が細かくなり、ドットによる印刷面積を同じにすることができる。あるいは、セルの生成に際して用いる閾値を大きくすることとしてもよい。こうすれば、セルを構成する画素数は多くなり、より円形状に近いセルが生成できるとともに、元の入力画像とほぼ同じ数のドットを形成することができる。
「第5変形例」
また、本発明が適用される画像処理装置20は、レーザプリンタにて画像を印刷用紙に出力し再生表示するものとして前記実施例および変形例での処理を行うようにしたが、本発明はこれに限定されるものでなく、紙などの印刷媒体に、インクを吐出して印刷する方式のプリンタや、インクを熱転写して印刷する方式のプリンタなどといった種々のプリンタのほか、電子写真あるいはディスプレイなどにて画像を再生表示するものとして処理を行うようにしてもよい。
「第6変形例」
さらに、本発明が適用される画像処理装置20は画像入力装置10と画像出力装置30とから独立した形態であるものとしたが、プリンタやディスプレイなどの画像出力装置30に組み込まれる形態としてもよいし、画像入力装置10に組み込まれるものとしてもよい。あるいは、プリンタやディスプレイなどの画像出力装置が組み込まれたコピー機やコンピュータ機器、ワープロ、ファックス、携帯電話など種々の電子機器に、前記実施形態における画像処理装置が組み込まれて構成されるようにしてもよい。
本発明が適用される一実施形態におけるシステム全体を示す構成図。 本実施形態での画像処理装置のハード構成を説明する模式図。 CC法によるハーフトーン処理を説明するフローチャート CC法における階調変換処理の過程を説明するための説明図。 CC法における階調変換処理の過程を説明するための説明図。 RAMの構成と格納されるデータの例を説明する説明図。 RAMの構成と格納されるデータの例を説明する説明図。 RAMの構成と格納されるデータの例を説明する説明図。 本発明の1実施例によるハーフトーン処理を説明するフローチャート。 入力画像の画素配列変換方法を説明するための説明図。 画素配列変換後の画像データをCC法で階調変換処理する過程を説明する説明図。 画素配列変換後の画像データをCC法で階調変換処理する過程を説明する説明図。 画素配列変換後の画像データをCC法で階調変換処理した結果を説明する説明図。 画素配列変換前の画像データをCC法で階調変換処理した結果を説明する説明図。 入力画像の画素配列変換方法を説明するための説明図。 入力画像の画素配列変換方法を説明するための説明図。 入力画像の画素配列変換方法を説明するための説明図。
符号の説明
10…画像入力装置、11…アプリケーション部、12…ラスタライズ部、20…画像処理装置、21…色変換部、22…ハーフトーン処理部、22a…画像データ変換部、22b…画素群生成部、22c…基準点決定部、22d…データ付与部、25…入出力I/F、26…CPU、27…RAM、28…ROM、29…ハードディスク、30…画像出力装置、31…パルス幅変調部、35…印刷エンジン、36…レーザドライバ、37…レーザダイオード、271…入力バッファ、272…ワーキングメモリ、273…出力バッファ、CL…セル、CL1、CL2…セル、GC…セルの重心位置、GC2…セルの重心位置、MG…未処理画素。

Claims (10)

  1. 画素ごとに、多階調値で表された画像データを、ドットを形成するための所定の階調データに階調変換する画像処理装置であって、
    前記画像データを、所定の画素配列を有する対象画像データに変換する画像データ変換部と、
    前記生成された対象画像データについて、画素ごとの前記対象画像データの階調値の総和が、所定の閾値以上となるまで画素を順次選択して画素群を生成する画素群生成部と、
    生成される前記画素群内の所定の画素に対して、前記所定の階調データを付与するデータ付与部と、
    を備えた画像処理装置。
  2. 画素ごとに、多階調値で表された画像データを、ドットを形成するための所定の階調データに階調変換する画像処理装置であって、
    前記画像データを、所定の画素配列を有する対象画像データに変換する画像データ変換部と、
    画素選択のための第1の基準点に基づいて、画素ごとの前記対象画像データの階調値の総和が、所定の閾値以上となるまで画素を順次選択して画素群を生成する画素群生成部と、
    前記生成された画素群について第2の基準点を決定する基準点決定部と、
    前記決定された第2の基準点に位置する画素に前記所定の階調データを付与するデータ付与部とを備え、
    前記画素群生成部は、前記第1の基準点を更新して当該第1の基準点に基づいて前記画素を選択して前記画素群を生成し、
    前記データ付与部は前記生成された画素群における前記対象画像データの階調値の総和が前記所定の閾値以上となったとき、前記第2の基準点が位置する画素に前記所定の階調データを付与することを特徴とする画像処理装置。
  3. 請求項1または2に記載の画像処理装置であって、
    前記画素群生成部は、前記画素群における画素ごとの前記対象画像データの階調値の総和が前記所定の閾値を超えたとき、超えた分の前記階調値を前記画素群生成部が最後に選択した画素に戻すことを特徴とする画像処理装置。
  4. 請求項2または3に記載の画像処理装置であって、
    前記画素群生成部は、前記第1の基準点に基づいて選択すべき画素が複数存在するとき、選択する画素をランダムに選択することを特徴とする画像処理装置。
  5. 請求項2ないし4のいずれか一項に記載の画像処理装置であって、
    前記基準点決定部は、前記画素群における画素の位置と画素の階調値とから算出した重心位置を、前記第2の基準点として決定することを特徴とする画像処理装置。
  6. 請求項2ないし5のいずれか一項に記載の画像処理装置であって、
    前記第1の基準点は、前記画素群における画素の位置と、当該画素の前記対象画像データの階調値とから算出した重心位置であることを特徴とする画像処理装置。
  7. 請求項1ないし6のいずれか一項に記載の画像処理装置であって、
    前記画像データ変換部は、画像データの奇数ラインと偶数ラインとで画素位置を互いに交互の位置とした千鳥状の画素配列を有する対象画像データに変換することを特徴とする画像処理装置。
  8. 画素ごとに、多階調値で表された画像データを、ドットを形成するための所定の階調データに階調変換する画像処理方法であって、
    前記画像データを、所定の画素配列を有する対象画像データに変換する画像データ変換工程と、
    画素選択のための第1の基準点に基づいて、画素ごとの前記対象画像データの階調値の総和が、所定の閾値以上となるまで画素を順次選択して画素群を生成する画素群生成工程と、
    前記生成された画素群について第2の基準点を決定する基準点決定工程と、
    前記決定された第2の基準点に位置する画素に前記所定の階調データを付与するデータ付与工程とを備え、
    前記画素群生成工程は、前記第1の基準点を更新して当該第1の基準点に基づいて前記画素を選択して前記画素群を生成し、
    前記データ付与工程は前記生成された画素群における前記対象画像データの階調値の総和が前記所定の閾値以上となったとき、前記第2の基準点が位置する画素に前記所定の階調データを付与することを特徴とする画像処理方法。
  9. 画素ごとに、多階調値で表された画像データを、ドットを形成するための所定の階調データに階調変換する画像処理プログラムであって、
    前記画像データを、所定の画素配列を有する対象画像データに変換する画像データ変換機能と、
    画素選択のための第1の基準点に基づいて、画素ごとの前記対象画像データの階調値の総和が、所定の閾値以上となるまで画素を順次選択して画素群を生成する画素群生成機能と、
    前記生成された画素群について第2の基準点を決定する基準点決定機能と、
    前記決定された第2の基準点に位置する画素に前記所定の階調データを付与するデータ付与機能とをコンピュータに実現させ、
    前記画素群生成機能は、前記第1の基準点を更新して当該第1の基準点に基づいて前記画素を選択して前記画素群を生成し、
    前記データ付与機能は前記生成された画素群における前記対象画像データの階調値の総和が前記所定の閾値以上となったとき、前記第2の基準点が位置する画素に前記所定の階調データを付与することを特徴とするプログラム。
  10. 請求項9に記載の画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体。

JP2004179594A 2004-06-17 2004-06-17 画像処理装置、画像処理方法、画像処理プログラムおよびそのプログラムを記録した記録媒体 Withdrawn JP2006005634A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004179594A JP2006005634A (ja) 2004-06-17 2004-06-17 画像処理装置、画像処理方法、画像処理プログラムおよびそのプログラムを記録した記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004179594A JP2006005634A (ja) 2004-06-17 2004-06-17 画像処理装置、画像処理方法、画像処理プログラムおよびそのプログラムを記録した記録媒体

Publications (1)

Publication Number Publication Date
JP2006005634A true JP2006005634A (ja) 2006-01-05

Family

ID=35773647

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004179594A Withdrawn JP2006005634A (ja) 2004-06-17 2004-06-17 画像処理装置、画像処理方法、画像処理プログラムおよびそのプログラムを記録した記録媒体

Country Status (1)

Country Link
JP (1) JP2006005634A (ja)

Similar Documents

Publication Publication Date Title
JP6639247B2 (ja) 画像処理装置及び画像処理方法、プログラム
JP4605782B2 (ja) デュアルハーフトーンを用いるレーザプリント装置
JP7005314B2 (ja) 画像処理装置、画像処理方法、及びプログラム
JP4341653B2 (ja) 画像処理装置、画像読取装置、画像処理方法及び画像処理プログラム
US20050046903A1 (en) Image processing device, image processing method and image processing program
JP4742871B2 (ja) 画像処理装置、画像処理方法、画像処理プログラムおよびそのプログラムを記録した記録媒体
US10404892B2 (en) Image forming apparatus for outputting a halftone image and image forming method
JP2006005634A (ja) 画像処理装置、画像処理方法、画像処理プログラムおよびそのプログラムを記録した記録媒体
JP4539567B2 (ja) 画像処理装置、画像処理方法、画像処理プログラムおよびそのプログラムを記録した記録媒体
JP2005341142A (ja) 画像処理装置、画像処理方法、画像処理プログラムおよびそのプログラムを記録した記録媒体
JP3873590B2 (ja) カラー電子写真装置
JP3951953B2 (ja) 印刷装置、画像処理装置、印刷方法、画像処理方法及びプログラム
JP4337670B2 (ja) 画像処理装置、画像処理方法、及びプログラム
JP2005117642A (ja) ハーフトーン処理方法、画像処理装置、画像処理方法、及びプログラム
JP2005311414A (ja) 画像処理装置、画像処理方法、画像処理プログラムおよびそのプログラムを記録した記録媒体
JP2005318402A (ja) 画像処理装置、画像処理方法、画像処理プログラムおよびそのプログラムを記録した記録媒体
JP2019110512A (ja) 画像形成装置及び画像形成方法、プログラム
JP2006115369A (ja) 画像処理装置、画像処理方法、画像処理プログラムおよびそのプログラムを記録した記録媒体
JP3896982B2 (ja) 画像処理装置、方法、プログラムおよび該プログラムを記録した記録媒体
JP4020115B2 (ja) 電子写真の画像処理装置及びその方法
JP3928576B2 (ja) 画像処理装置、方法、プログラムおよび該プログラムを記録した記録媒体
JP4222187B2 (ja) 画像処理装置、画像処理方法及び画像処理プログラム
JP2020080039A (ja) インクジェット印刷システム
JP2020195004A (ja) 画像形成装置とその制御方法、及びプログラム
JP2010118811A (ja) 印刷装置、ディザマトリクス生成方法

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20070904