(57)【要約】【課題】  色出力可否情報と誤差拡散情報の算出の処理を高速にすることができる、画像処理装置を提供する。【解決手段】  同一ブロック内の画素に影響を与える誤差拡散情報については、算出処理部を有するプロセッサと同一のプロセッサ内に備えられたアクセス速度は速いが容量の低い内部誤差バッファへ記録し、同一ブロック外の画素に影響を与える誤差拡散情報については前記プロセッサ外に備えられたアクセス速度は遅いが容量の高い外部誤差バッファへ記録する。そして算出処理部は、画像における全てのブロックについて、ブロックごとに、当該ブロック内の各画素の色出力可否情報と誤差拡散情報とを算出する。【選択図】    図１
2005286360.tif 000002
【特許請求の範囲】
【請求項１】
縦横に等間隔で各画素が配置された画像における、前記各画素の色出力可否情報を算出する画像処理装置であって、
画素の並びの同一ライン上における所定数連続した画素の集合を隣り合う複数のラインに渡って保持するブロックであって、かつ前記画素の集合をラインが下がる毎に、下がる前のラインの画素の集合のうち最も左に位置する画素の処理により誤差拡散の影響を受ける左端の画素まで前記画素の集合の位置をライン左方向に順にずらして保持する前記ブロックに、前記画像を区分けする画像区分け処理部と、
前記ブロックの各ラインの左端の各画素における上から下の方向に平行な方向を走査方向として、前記走査方向でかつ前記ブロックの左から順にブロック内の画素を選択し、当該選択した画素についての色出力可否情報と、当該色出力可否情報に基づく他の画素への影響の度合いを示す誤差拡散情報を算出する算出処理部と、
同一ブロック内の画素に影響を与える誤差拡散情報については、前記算出処理部を有するプロセッサと同一のプロセッサ内に備えられたアクセス速度は速いが容量の低い内部誤差バッファへ記録し、同一ブロック外の画素に影響を与える誤差拡散情報については前記プロセッサ外に備えられたアクセス速度は遅いが容量の高い外部誤差バッファへ記録する算出情報記録処理部とを備え、
前記算出処理部は、前記画像における全てのブロックについて、ブロックごとに、当該ブロック内の各画素の前記色出力可否情報と前記誤差拡散情報とを算出する
ことを特徴とする画像処理装置。
【請求項２】
前記ブロック内の各画素に対応する色信号値を色出力値に変換する色情報変換処理部と、
前記ブロック内の各画素に対応する色出力値を格納する色出力値格納手段と、
を前記プロセッサ内に備え、
前記算出処理部は、
前記色出力値を前記色出力値格納手段から読み取り、
同一ブロック内の画素から影響を受ける誤差拡散情報については前記内部誤差バッファから読み取り、
同一ブロック外の画素から影響を受ける誤差拡散情報については前記外部誤差バッファから読み取り、
前記読み取った色出力値と前記誤差拡散情報とに基づいて前記色出力可否情報を算出する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
縦横に等間隔で各画素が配置された画像における、前記各画素の色出力可否情報を算出する画像処理装置の画像処理方法であって、
前記画像処理装置の画像区分け処理部が、画素の並びの同一ライン上における所定数連続した画素の集合を隣り合う複数のラインに渡って保持するブロックであって、かつ前記画素の集合をラインが下がる毎に、下がる前のラインの画素の集合のうち最も左に位置する画素の処理により誤差拡散の影響を受ける左端の画素まで前記画素の集合の位置をライン左方向に順にずらして保持する前記ブロックに、前記画像を区分けし、
前記画像処理装置の算出処理部が、前記ブロックの各ラインの左端の各画素における上から下の方向に平行な方向を走査方向として、前記走査方向でかつ前記ブロックの左から順にブロック内の画素を選択し、当該選択した画素についての色出力可否情報と、当該色出力可否情報に基づく他の画素への影響の度合いを示す誤差拡散情報を算出し、
前記画像処理装置の算出情報記録処理部が、同一ブロック内の画素に影響を与える誤差拡散情報については、前記算出処理部を有するプロセッサと同一のプロセッサ内に備えられたアクセス速度は速いが容量の低い内部誤差バッファへ記録し、同一ブロック外の画素に影響を与える誤差拡散情報については前記プロセッサ外に備えられたアクセス速度は遅いが容量の高い外部誤差バッファへ記録し、前記画像における全てのブロックについて、ブロックごとに、当該ブロック内の各画素の前記色出力可否情報と前記誤差拡散情報とを算出する
ことを特徴とする画像処理方法。
【請求項４】
縦横に等間隔で各画素が配置された画像における、前記各画素の色出力可否情報を算出する画像処理装置のコンピュータに実行させるプログラムであって、
画素の並びの同一ライン上における所定数連続した画素の集合を隣り合う複数のラインに渡って保持するブロックであって、かつ前記画素の集合をラインが下がる毎に、下がる前のラインの画素の集合のうち最も左に位置する画素の処理により誤差拡散の影響を受ける左端の画素まで前記画素の集合の位置をライン左方向に順にずらして保持する前記ブロックに、前記画像を区分けする処理と、
前記ブロックの各ラインの左端の各画素における上から下の方向に平行な方向を走査方向として、前記走査方向でかつ前記ブロックの左から順にブロック内の画素を選択し、当該選択した画素についての色出力可否情報と、当該色出力可否情報に基づく他の画素への影響の度合いを示す誤差拡散情報を算出する処理と、
同一ブロック内の画素に影響を与える誤差拡散情報については、算出処理部を有するプロセッサと同一のプロセッサ内に備えられたアクセス速度は速いが容量の低い内部誤差バッファへ記録し、同一ブロック外の画素に影響を与える誤差拡散情報については前記プロセッサ外に備えられたアクセス速度は遅いが容量の高い外部誤差バッファへ記録する処理と、
前記画像における全てのブロックについて、ブロックごとに、当該ブロック内の各画素の前記色出力可否情報と前記誤差拡散情報とを算出する処理と、
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像における各画素の色出力可否情報を算出する画像処理装置及び画像処理方法ならびにそのプログラムに関する。
【背景技術】
【０００２】
プリンタなどの画像処理装置は、画像の出力処理時において、まず画像の各画素に対応するＲＧＢデータをＣＭＹＫデータに変換する処理と、各画素にＣＭＹＫのそれぞれの色を出力するか否か判定する色出力可否情報の算出処理と、ある画素の色出力可否情報が他の画素に影響する度合いを示す誤差拡散情報の算出処理とを行なう（例えば、特許文献１参照）。
【特許文献１】特開２００２−１９９２２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上述のような、画像処理装置の処理において、１ラインごとに順番に各画素の色出力可否情報と誤差拡散情報の算出の処理を行なう技術が存在する。この技術は、１つの画素に対応するＣＭＹＫの各色（例えば、シアンやマゼンタなどの色）の値（ＣＭＹＫデータ）を、ＣＭＹＫデータベースから読み取り、それぞれの色の値に基づいて、前記画素に当該それぞれの色を出力するか否かを決定する処理（色出力可否情報を算出する処理）を行なう。ここで、例えば、Ｃ（シアン）、Ｍ（マゼンタ）、Ｙ（イエロ）、Ｋ（ブラック）４色や、それよりも多い６色や８色の色を用いる際に、その全ての色それぞれについて、１つの画素に出力するか否かを決定する処理を行なう必要があるので、１画素ずつ処理をするたびに、ＣＭＹＫデータベースから、６色〜８色の色の値を読み出さなければならない。１つの画像データのＣＭＹＫデータのデータ量は大きい為、ＣＭＹＫデータベースは通常、色出力可否情報や誤差拡散情報の算出の処理を行なうプロセッサの外部に備えられた低速でデータ記憶容量の大きい外部ＲＡＭで構成される。しかし、ＣＭＹＫデータベースを構成する外部ＲＡＭはデータ読み書きが低速である為、これにより、ＣＭＹＫデータベースへのアクセス処理に時間がかかり、その結果、色出力可否情報と誤差拡散情報の算出の処理が遅くなってしまう。この問題を解決する為には、色出力可否情報や誤差拡散情報の算出の処理を行なうプロセッサの内部に備えられた高速で記憶データ記憶容量の小さい内部ＲＡＭをＣＭＹＫデータベースとすればよいが、内部ＲＡＭはデータ記憶容量が小さいので、ＣＭＹＫデータのデータ量を多く記憶できないという問題がある。
【０００４】
また、色出力可否情報は誤差拡散情報を用いて行うこととなるが、例えば１ラインの左の画素から順番にそのラインの画素の色出力可否情報の算出と誤差拡散情報の算出を行なっていった場合には、次のラインの左端の画素の色出力可否情報を算出するまで、前のラインの左端の画素の誤差拡散情報を覚えておかなければならない。ここで、画像が大きい場合には画素も増えるので、あるラインの画素の色出力可否情報を算出した後に、次のラインの色出力可否情報を算出するまで記憶していなければならない誤差拡散情報のデータ量が多くなる。従って、色出力可否情報や誤差拡散情報の算出の処理を行なうプロセッサの外部に備えられた低速で記憶データ容量の大きい外部ＲＡＭに誤差拡散情報を記憶しておき、次のラインの色出力可否情報を算出する際には、誤差拡散情報を外部ＲＡＭから読み込んで、当該読み込んだ誤差拡散情報を用いて算出している。これにより、外部ＲＡＭからの誤差拡散情報の読み込みに時間がかかり、その結果、色出力可否情報と誤差拡散情報の算出の処理が遅くなってしまう問題が発生する。
【０００５】
また上記誤差拡散の処理を高速に行なうために、画素の並びの順番で１ラインずつ色出力可否情報と誤差拡散情報の算出を行なうのではなく、複数のラインで図３に示す矢印の順番で処理をしていくことにより、ある画素について算出した誤差拡散情報が、次のラインの画素についての色出力可否情報の算出の際に直ぐに利用されるようになり、誤差拡散情報を、高速で記憶データ記憶容量の小さい内部ＲＡＭに記憶しておくことができる。またこれにより、色出力可否情報と誤差拡散情報の算出の処理を高速にすることができる。しかし、この場合にも複数ラインのＣＭＹＫのデータを低速な外部ＲＡＭから読み込んでこなければならないため、色出力可否情報と誤差拡散情報の算出の処理が遅くなってしまう。
【０００６】
そこでこの発明は、色出力可否情報と誤差拡散情報の算出の処理を高速にすることができる、画像処理装置及び画像処理方法ならびにそのプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００７】
本発明は、上述の課題を解決すべくなされたもので、縦横に等間隔で各画素が配置された画像における、前記各画素の色出力可否情報を算出する画像処理装置であって、画素の並びの同一ライン上における所定数連続した画素の集合を隣り合う複数のラインに渡って保持するブロックであって、かつ前記画素の集合をラインが下がる毎に、下がる前のラインの画素の集合のうち最も左に位置する画素の処理により誤差拡散の影響を受ける左端の画素まで前記画素の集合の位置をライン左方向に順にずらして保持する前記ブロックに、前記画像を区分けする画像区分け処理部と、前記ブロックの各ラインの左端の各画素における上から下の方向に平行な方向を走査方向として、前記走査方向でかつ前記ブロックの左から順にブロック内の画素を選択し、当該選択した画素についての色出力可否情報と、当該色出力可否情報に基づく他の画素への影響の度合いを示す誤差拡散情報を算出する算出処理部と、同一ブロック内の画素に影響を与える誤差拡散情報については、前記算出処理部を有するプロセッサと同一のプロセッサ内に備えられたアクセス速度は速いが容量の低い内部誤差バッファへ記録し、同一ブロック外の画素に影響を与える誤差拡散情報については前記プロセッサ外に備えられたアクセス速度は遅いが容量の高い外部誤差バッファへ記録する算出情報記録処理部とを備え、前記算出処理部は、前記画像における全てのブロックについて、ブロックごとに、当該ブロック内の各画素の前記色出力可否情報と前記誤差拡散情報とを算出することを特徴とする画像処理装置である。
本発明によれば、ブロック内の多くの画素の色出力可否情報や誤差拡散情報を算出する際に、プロセッサ外部のデータ読み書きの低速な外部誤差バッファにアクセスする必要がなく、またＣＭＹＫデータについても、プロセッサ内部のデータ書き込み処理が高速な内部ＲＡＭに記録しておき、アクセスすればよいので、色出力可否情報や誤差拡散情報の算出の処理をより高速に行なうことができる。
【０００８】
また本発明は、上述の画像処理装置において、前記ブロック内の各画素に対応する色信号値を色出力値に変換する色情報変換処理部と、前記ブロック内の各画素に対応する色出力値を格納する色出力値格納手段とを前記プロセッサ内に備え、前記算出処理部は、前記色出力値を前記色出力値格納手段から読み取り、同一ブロック内の画素から影響を受ける誤差拡散情報については前記内部誤差バッファから読み取り、同一ブロック外の画素から影響を受ける誤差拡散情報については前記外部誤差バッファから読み取り、前記読み取った色出力値と前記誤差拡散情報とに基づいて前記色出力可否情報を算出することを特徴とする。
また本発明によれば、ブロック外の画素で算出された誤差拡散情報を利用して色出力可否情報を算出しない画素についての、当該色出力可否情報と誤差拡散情報の算出の処理を高速に行うことができる。
【０００９】
また本発明は、縦横に等間隔で各画素が配置された画像における、前記各画素の色出力可否情報を算出する画像処理装置の画像処理方法であって、前記画像処理装置の画像区分け処理部が、画素の並びの同一ライン上における所定数連続した画素の集合を隣り合う複数のラインに渡って保持するブロックであって、かつ前記画素の集合をラインが下がる毎に、下がる前のラインの画素の集合のうち最も左に位置する画素の処理により誤差拡散の影響を受ける左端の画素まで前記画素の集合の位置をライン左方向に順にずらして保持する前記ブロックに、前記画像を区分けし、前記画像処理装置の算出処理部が、前記ブロックの各ラインの左端の各画素における上から下の方向に平行な方向を走査方向として、前記走査方向でかつ前記ブロックの左から順にブロック内の画素を選択し、当該選択した画素についての色出力可否情報と、当該色出力可否情報に基づく他の画素への影響の度合いを示す誤差拡散情報を算出し、前記画像処理装置の算出情報記録処理部が、同一ブロック内の画素に影響を与える誤差拡散情報については、前記算出処理部を有するプロセッサと同一のプロセッサ内に備えられたアクセス速度は速いが容量の低い内部誤差バッファへ記録し、同一ブロック外の画素に影響を与える誤差拡散情報については前記プロセッサ外に備えられたアクセス速度は遅いが容量の高い外部誤差バッファへ記録し、前記画像における全てのブロックについて、ブロックごとに、当該ブロック内の各画素の前記色出力可否情報と前記誤差拡散情報とを算出することを特徴とする画像処理方法である。
【００１０】
また本発明は、縦横に等間隔で各画素が配置された画像における、前記各画素の色出力可否情報を算出する画像処理装置のコンピュータに実行させるプログラムであって、画素の並びの同一ライン上における所定数連続した画素の集合を隣り合う複数のラインに渡って保持するブロックであって、かつ前記画素の集合をラインが下がる毎に、下がる前のラインの画素の集合のうち最も左に位置する画素の処理により誤差拡散の影響を受ける左端の画素まで前記画素の集合の位置をライン左方向に順にずらして保持する前記ブロックに、前記画像を区分けする処理と、前記ブロックの各ラインの左端の各画素における上から下の方向に平行な方向を走査方向として、前記走査方向でかつ前記ブロックの左から順にブロック内の画素を選択し、当該選択した画素についての色出力可否情報と、当該色出力可否情報に基づく他の画素への影響の度合いを示す誤差拡散情報を算出する処理と、同一ブロック内の画素に影響を与える誤差拡散情報については、算出処理部を有するプロセッサと同一のプロセッサ内に備えられたアクセス速度は速いが容量の低い内部誤差バッファへ記録し、同一ブロック外の画素に影響を与える誤差拡散情報については前記プロセッサ外に備えられたアクセス速度は遅いが容量の高い外部誤差バッファへ記録する処理と、前記画像における全てのブロックについて、ブロックごとに、当該ブロック内の各画素の前記色出力可否情報と前記誤差拡散情報とを算出する処理とをコンピュータに実行させるプログラムである。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の一実施形態による画像処理装置を図面を参照して説明する。図１は同実施形態による画像処理装置の構成を示すブロック図である。
この図において、符号１は画像処理装置である。そしてこの画像処理装置１において、符号１１は画像における各画素のＲＧＢ（Ｒｅｄ、Ｇｒｅｅｎ、Ｂｌｕｅ）データを記憶するＲＧＢデータ記憶部である。また１２はＲＧＢデータに記録されたＲＧＢ値に基づいて変換されたＣＭＹＫ値を記憶するＣＭＹＫデータ記憶部（色出力値格納手段）である。また１３、１４はそれぞれ、誤差拡散情報を記憶するブロック内誤差拡散情報記憶部（内部誤差バッファ）、ブロック外誤差拡散情報記憶部（外部誤差バッファ）である。また１５は画像における各画素にＣＭＹＫデータのそれぞれの色を出力するか否かを示す色出力可否情報を記憶する色出力可否情報記憶部である。
【００１２】
また符号１６はＲＧＢデータ記憶部１１に記録されているＲＧＢデータをＣＭＹＫデータに変換する処理を行なう色変換ＣＰＵ（画像区分け処理部、色情報変換処理部）である。また１７は、例えば、ＣＭＹＫデータが４色の色（シアン、マゼンタ、イエロ、ブラック）のデータ（色出力値）である場合には、そのうちの２色の色についての色出力可否情報と誤差拡散情報を算出する第１ハーフトーンＣＰＵ（算出処理部、算出情報記録処理部）である。また１７はＣＭＹＫデータが４色の色のデータである場合には、第１ハーフトーンＣＰＵで処理する色以外の２色の色についての色出力可否情報と誤差拡散情報を算出する第２ハーフトーンＣＰＵ（算出処理部、算出情報記録処理部）である。なお、ＣＭＹＫデータが６色や８色の場合には、第１ハーフトーン処理部１７と第２ハーフトーン処理部１８でそれぞれ３色ずつの色出力可否情報と誤差拡散情報を算出する処理を行なうようにしてもよい。本実施形態においては、第１ハーフトーン処理部１７がシアンとマゼンタについて処理を行ない、第２ハーフトーン処理部１８がイエロとブラックの処理を行なうものとする。
【００１３】
ここで、色変換ＣＰＵ１６、第１ハーフトーンＣＰＵ１７、第２ハーフトーンＣＰＵ１８と、ＣＭＹＫデータ記憶部１２、ブロック内誤差拡散情報記憶部１３は、画像処理装置１の内部に備えられた同一プロセッサ内に保持されている。このプロセッサ内において、ＣＭＹＫデータ記憶部１２とブロック内誤差拡散情報記憶部１３は、例えば、データの読み書きが高速にできるが記憶できるデータ容量が少ないＲＡＭである。また、ＲＧＢデータ記憶部１１、ブロック外誤差拡散情報記憶部１４、色出力可否情報記憶部１５はプロセッサ外部に保持されており、データ読み書きの処理が低速であるが記憶できるデータ容量の大きいＲＡＭである。
【００１４】
そして、本実施形態において、画像処理装置１は、縦横に等間隔で各画素が配置された画像における、各画素の色出力可否情報と誤差拡散情報とを算出するが、まず画像処理装置１は、画素の並びの同一ライン上における所定数連続した画素の集合を隣り合う複数のラインに渡って保持するブロックであって、かつ前記画素の集合をラインが下がる毎に、下がる前のラインの画素の集合のうち最も左に位置する画素の処理により誤差拡散の影響を受ける左端の画素まで前記画素の集合の位置をライン左方向に順にずらして保持するブロックに、画像を区分けする。なお本実施形態においては、画像処理装置１は、画素の並びの同一ライン上における所定数連続した画素の集合を隣り合う複数のラインに渡って保持するブロックであって、かつ画素の集合をラインが下がる毎に１画素分ずつライン左方向に順にずらして保持するブロックに、画像を区分けしている。また画像処理装置１は、ブロックの各ラインの左端の各画素における上から下の方向に平行な方向を走査方向として、走査方向でかつブロックの左から順にブロック内の画素を選択し、当該選択した画素についての色出力可否情報と、当該色出力可否情報に基づく他の画素への影響の度合いを示す誤差拡散情報を算出する。また同一ブロック内の画素に影響を与える誤差拡散情報については、第１、第２ハーフトーン処理部１８を有するプロセッサの内部に備えられた、データ読み書きの速度は速いがデータ記憶容量の少ないブロック内誤差拡散情報記憶部１３へ記録し、同一ブロック外の画素に影響を与える誤差拡散情報についてはプロセッサ外部に備えられた、データ読み書きの速度は遅いがデータ記憶容量の多いブロック外誤差拡散情報記憶部１４へ記録する。また第１、第２ハーフトーンＣＰＵは、画像における全てのブロックについて、ブロックごとに、当該ブロック内の各画素の色出力可否情報と誤差拡散情報とを算出する。
【００１５】
次に、誤差拡散情報について説明する。
図２はある画素についての誤差拡散フィルタを示す図である。
この図は、図２における網掛け部分の画素に対応する色出力値（例えば、シアンの０〜２５５までの値）が閾値以上であった場合に、その閾値以上の色出力値が、当該網掛けの画素の左の画素、右下の直近の画素、真下の画素、左下の直近の画素に影響を与える度合いを示している。なお、網掛けの画素の左の画素に与える影響は、閾値以上の色出力値の７／１６の値である。また真下の画素に与える影響は、閾値以上の色出力値の５／１６の値である。また、左下の直近の画素に与える影響は、閾値以上の色出力値の３／１６の値である。そして、上記他の画素に与える影響のことを誤差拡散と呼んでおり、閾値以上の色出力値の７／１６の値、閾値以上の色出力値の１／１６の値、閾値以上の色出力値の５／１６の値、閾値以上の色出力値の３／１６の値のそれぞれを誤差拡散情報と呼ぶ。そして、これらの誤差拡散情報は、各画素毎に、ブロック内誤差拡散情報記憶部１３や、ブロック外誤差拡散情報記憶部１４に記録される。なお、図２で示した誤差拡散フィルタは、Ｆｌｏｙｄ＆Ｓｔｅｉｎｂｅｒｇの誤差拡散フィルタと呼ばれているものであり、本実施形態においては、この誤差拡散フィルタの手法を用いる。なおこの他に、例えば、Ｊａｒｖｉｓ，Ｊｕｄｉｃｅ＆Ｎｉｎｋｅの誤差拡散フィルタと呼ばれるものもあり、この手法を用いるようにしても良い。
【００１６】
図３は本実施形態における画像をブロックに区分けする処理を示す図である。
次に、図３を用いて色変換ＣＰＵ１６が行なう画像をブロックに区分けする処理について説明する。
色変換ＣＰＵ１６は、画素の並びの同一ライン上における所定数連続した画素の集合を隣り合う複数のラインに渡って保持するブロックであって、かつ画素の集合をラインが下がる毎に１画素分ずつライン左方向に順にずらして保持するブロックに、画像を区分けする。以降、画素の並びのラインをラスターと呼ぶ。
【００１７】
図３は、ｉラスター、ｊラスター、ｋラスターの３つのラスターを含むブロックに区分けしている様子を示している。色変換ＣＰＵ１６は、ｉラスターにおける４つの連続した画素の集合をブロックに保持するように、またｊラスターではｉラスターの４つの連続した画素の集合から１画素分だけラスターの左方向にずらした４つの連続した画素の集合をブロックに保持するように、またｋラスターではｊラスターの４つの連続した画素の集合から１画素分だけラスターの左方向にずらした４つの連続した画素の集合をブロックに保持するように、１つのブロックに区分けする。なお、１つのブロックの保持するラスターの数は２つ以上であれば幾つでも良く、またラスター方向に連続する画素の数も２つ以上であれば幾つでも良いが、それらの数は、ＣＭＹＫデータ記憶部１２やブロック内誤差拡散情報１３で記憶できるデータ容量によって定まる。
【００１８】
これは、例えば色変換ＣＰＵ１２が１つのブロックの処理をする際に、１ブロック内の全ての画素の色出力値をＣＭＹＫデータ記憶部１２に記憶したり、また、第１、第２ハーフトーンＣＰＵ１７、１８が１ブロックの各画素の誤差拡散情報をブロック内誤差拡散情報記憶部１３に記録することになるが、ＣＭＹＫデータ記憶部１２やブロック内誤差拡散情報記憶部１３は高速な処理でデータの読み書きができる代わりに、記憶できるデータ容量が決まっているので、従って、ブロックの大きさ（ブロックに保持されるラスターの数や、１つのラスターで連続する画素の集合）によっては、１ブロックにおける全ての情報（色出力情報や誤差拡散情報）を記憶できないためである。なお、本実施形態においては、画像をブロックに区分けする処理を色変換処理部ＣＰＵ１６で行うこととしているが、他の処理部で行うようにしてもよいし、また第１、第２ハーフトーンＣＰＵ１７、１８で行うようにしても良い。
【００１９】
また、画像処理装置１はブロックごとに、当該ブロック内の各画素の色出力可否情報と誤差拡散情報を算出するが、図３の矢印で示すように、ブロック内の左端の画素の上から下方向と平行な走査方向で左から順に各画素の色出力可否情報と誤差拡散情報を算出していく。これは誤差拡散情報を効率よくブロック内誤差拡散情報１３に記録しておく為である。
【００２０】
ここで、上述の走査方向でブロック内の各画素の処理を行なっていく理由は、直前の画素の処理によって算出された誤差拡散情報を直ぐに利用できる為である。これにより、ブロック内誤差拡散情報記憶部１３に記録しておく誤差拡散情報のデータ量を少なくすることができる。例えば、ブロックＡの画素ａ１の処理において、誤差拡散処理を行なった場合、上述のＦｌｏｙｄ＆Ｓｔｅｉｎｂｅｒｇの誤差拡散フィルタの手法により、画素ａ２、ａ３、ａ４、ａ５に対する誤差拡散情報が算出される。この誤差拡散情報は、画素ａ１と同一ブロック内に存在する画素ａ２〜ａ５の色出力可否情報を算出する際に利用される為、ブロック内誤差拡散情報記憶部１３に記録される。そして、次に，走査方向に従って画素ａ５の処理を行なう際には、直前の画素ａ１の処理で算出された画素ａ５における誤差拡散情報をブロック内誤差拡散情報記憶部１３から読み取って、当該画素ａ５における色出力可否情報を算出する。この時、ブロック内誤差拡散情報記憶部１３はデータの読み書きを高速に処理できるＲＡＭであるため、画素ａ５における誤差拡散情報の読み取りが高速にでき、それにより色出力可否情報の算出処理も高速に行うことができる。
【００２１】
なお、ブロックＡのａ６を処理した際の誤差拡散情報は、ブロックＡの下のブロック中の画素に影響する誤差拡散情報として算出される。これらの他のブロック中の画素に影響する誤差拡散情報は、第１ハーフトーンＣＰＵ１７又は第２ハーフトーンＣＰＵ１８によって、ブロック外誤差拡散情報記憶部１４に記録されることとなる。つまり、ブロック内の走査方向の一番下のラスターに位置する画素の処理において、算出された誤差拡散情報の一部のみが、そのブロックの処理において、ブロック外誤差拡散情報記憶部１４に記録される。従って、本実施形態においては１つのブロックの各画素の色出力可否情報を算出する際において、ブロック内の一番上と一番下のラスターに位置する画素の色出力可否情報を算出する際には、プロセッサの外部にあるデータ読み書き処理の低速なブロック外誤差拡散情報記憶部１４にアクセスすることとなり、またブロック内のその他の画素を算出する際には、データ読み書き処理が高速でできるブロック内誤差拡散情報記憶部１３にアクセスすることとなる。これにより、低速なブロック外部誤差拡散情報記憶部１４にアクセスする回数が少なくてすむので、１つのブロックにおける全ての画素の高速に色出力可否情報と誤差拡散情報とを算出する時間を短縮することができる。
【００２２】
図４は、画像のブロックの区分けにおける未採用の例を示す図である。
この図は、ブロック内に保持させる各ラスターの連続する画素の集合を、ラスターごとにずらさないで、区分けした場合の例を示している。例えば、図４におけるブロックＣの画素ｃの色出力可否情報を算出する際には、ブロックＤの画素ｄにおける色出力可否情報によって算出されたブロックＣの画素ｃに影響する誤差拡散情報を必要とする。ここで、色出力可否情報と誤差拡散情報の算出はブロック単位で左から右方向に行なっていくが（ブロック内における画素については走査方向で左から順に処理を行なう）、図４の様に走査方向とブロックとブロックの境界が交差してしまうと、ブロックＣの画素ｃの処理を行なう際には、ブロックＤの画素ｄの色出力可否情報とその色出力可否情報に基いて画素ｃに影響する誤差拡散情報が算出されていないので、ブロックＣの画素ｃにおける処理ができないという問題が発生してしまう。従って、図３のような区分け方法により画像をブロックに区分けすることになる。
【００２３】
図５は画像処理装置の全体の処理フローを示す図である。
ここで、この画像処理装置の処理フローにおいては、説明の便宜上、ブロックに保持されるラスターの数は２つ（ｉラスター、ｊラスター）であるとする。また、画像全体のラスター方向の総画素数をx_size、処理中の画素の画像全体における左端からの数をｘ（左端はｘ＝０）、ブロック中の最初のラスターの左端を０とした時の処理中の画素のブロック中の横位置をｂｘとする。
【００２４】
図６は画像処理装置の処理フローを説明する為のブロックと画素のイメージを示す図である。この図において、ブロックＡの画素ａ１のブロック内の位置ｂｘを０とする。
【００２５】
図５より、画像処理装置１はまず、画像における最初のラスターの左端の画素を処理する。この時、変数ｘをｘ＝０と設定する（ステップＳ１）。そして、各処理部によって、ｘ＝０の画素を含むブロックについての色出力可否情報と誤差拡散情報が算出され、そのブロックの処理が終了すると（ステップＳ２）、次の処理を行なう画素の、画像全体の左端からの画素数がｘ_size以上か否かが判断される（ステップＳ３）。そして、ｘがｘ_sizeよりも小さい場合には、処理の終了したブロックの右のブロック内の各画素が処理される。そして、処理する画素のｘがｘ_size以上になった場合には、全てのラスターの画素について処理が終了したか否かが判断され（ステップＳ４）、終了していない場合には、処理していない次のラスターを含みかつ画像全体の左端のブロックへ移動して（ステップＳ５）、上記ステップＳ１〜ステップＳ４の処理が行なわれる。
【００２６】
図７はハーフトーンＣＰＵにおける1ブロックの処理フローを示す図である。
次に図７を用いて、本実施形態によるハーフトーンＣＰＵの処理を順を追って説明する。
まず、ＲＧＢデータ記憶部１１には画像の各画素のＲＧＢデータが記録されている。そして、画像の１つのブロックにおける各画素の色出力可否情報の算出時に、まず、色変換処理部ＣＰＵ１６が、当該１つのブロックにおける各画素のＲＧＢ値をＲＧＢデータ記憶部１１から読み取る。そして、ＲＧＢデータをＣＭＹＫデータに変換する処理を行なう。なお、ＲＧＢ値からＣＭＹＫ値に変換する処理は公知の技術であるので省略する。また、本実施形態において色変換ＣＰＵ１６はＲＧＢデータをＣ（シアン）、Ｍ（マゼンタ）、Ｙ（イエロ）、Ｋ（ブラック）の４つの色出力値を含むＣＭＹＫデータに変換するものとする。
【００２７】
次に、色変換ＣＰＵ１６は、ブロック内の各画素ごとに、シアン、マゼンタ、イエロ、ブラックの各色の色出力値をＣＭＹＫデータ記憶部１２に記録する。そして、色変換ＣＰＵ１６は、第１ハーフトーンＣＰＵ１７と、第２ハーフトーンＣＰＵ１８に、ブロック内の色出力可否情報と誤差拡散情報の算出を行なうよう指示する。なお、第１ハーフトーンＣＰＵ１７はシアンとマゼンタについての色出力可否情報とその誤差拡散情報を、また第２ハーフトーンはイエロとブラックについての色出力可否情報とその誤差拡散情報を算出する処理を行なうものとする。
【００２８】
以下説明の便宜上、第１ハーフトーンＣＰＵ１７がシアンの色出力可否情報とその誤差拡散情報を算出する処理について説明する。
第１ハーフトーンＣＰＵ１７は、色変換ＣＰＵ１６からの色出力可否情報と誤差拡散情報の算出の指示を受け付けると、まず、ｂｘの変数にｂｘ＝０を設定し（ステップＳ２０１）、ブロック内の最初のラスターｉのｂｘ＝０番目のシアンの色出力値（Ｄｉ）をＣＭＹＫデータ記憶部１２から読み込んで、変数Ｄｉに設定する（ステップＳ２０２）。次に、第１ハーフトーンＣＰＵ１７は、ラスターｉのｂｘ＝０に対応する画素に影響する誤差拡散情報（Ｅｉ）をブロック内誤差拡散情報記憶部１３またはブロック外誤差拡散情報記憶部１４のいずれかまたは両方から読み込み、変数Ｅｉに設定する（ステップＳ２０３）。なお、Ｄｉはシアンの色出力値であるので、０〜２５５の何れかの値である。
【００２９】
次に、第１ハーフトーンＣＰＵ１７はラスターｉのｂｘ＝０の画素におけるシアンの色出力値と誤差拡散情報とを合計したＤｘｉ（Ｄｘｉ＝Ｄｉ＋Ｅｉ）を算出し（ステップＳ２０４）、変数Ｄｘｉに設定する。ここで変数Ｄｘｉの値が閾値（ＴＨ）以上か否かを判断し（ステップＳ２０５）、Ｄｘｉの値が閾値ＴＨ以上である場合には、処理中の画素の色出力可否情報（Ｒｉ）を１と設定する（ステップＳ２０６）。また、Ｄｘｉの値が閾値ＴＨ未満である場合には、色出力可否情報Ｒｉを０と設定する（ステップＳ２０７）。なお、色出力可否情報Ｒｉは“０”または“１”のいずれかであり、０の場合にはその画素についてのシアンの色出力をせず、また１の場合にはその画素についてのシアンの色出力を行うことを意味している。また閾値（ＴＨ）は画像処理装置１の開発者の設定した任意の値である。この閾値の値によって、画像の出力の影響（色調などの影響）に差が生じることとなる。第１ハーフトーンＣＰＵ１７は、この色出力可否情報Ｒｉの情報を、色出力可否情報記憶部１５に画素毎に書き込む。
【００３０】
次に、第１ハーフトーンＣＰＵ１７は、色出力可否情報が１の場合には、Ｄｘｉの値から閾値ＴＨの値を引いた値を、新たなＤｘｉの値と設定し（ステップＳ２０８）、また色出力可否情報が０の場合には算出されているＤｘｉの値を用いて、誤差拡散処理を行なう（ステップＳ２０９）。なお、誤差拡散の処理の詳細については後述する。そして、以上の処理により、ラスターｉでｂｘ＝０の画素の処理が終了する。
【００３１】
次に、第１ハーフトーンＣＰＵ１７は、ｂｘ−１のラスターｊの画素に対応するシアンの色出力値（Ｄｊ）をＣＭＹＫデータ記憶部１２から読み込み、Ｄｊに設定する（ステップＳ２１０）。つまり上述の走査方向でブロック内の各画素を処理することとなる。またそのｂｘ−１の画素に影響する誤差拡散情報（Ｅｊ）をブロック内誤差拡散情報記憶部１３またはブロック外誤差拡散情報記憶部１４のいずれかまたは両方から読み込み、変数Ｅｊに設定する（ステップＳ２１１）。
【００３２】
次に、第１ハーフトーンＣＰＵ１７はラスターｊのｂｘ−１の画素におけるシアンの色出力値と誤差拡散情報とを合計したＤｘｊ（Ｄｘｊ＝Ｄｊ＋Ｅｊ）を算出し、変数Ｄｘｊに設定する（ステップＳ２１２）。そして変数Ｄｘｊの値が閾値（ＴＨ）以上か否かを判断し（ステップＳ２１３）、Ｄｘｊの値が閾値ＴＨ以上である場合には、処理中の画素の色出力可否情報（Ｒｊ）を１と設定する（ステップＳ２１４）。また、Ｄｘｊの値が閾値ＴＨ未満である場合には、色出力可否情報Ｒｊを０と設定する（ステップＳ２１５）。そして第１ハーフトーンＣＰＵ１７は、色出力可否情報Ｒｊの情報を、色出力可否情報記憶部１５に画素毎に書き込む。
【００３３】
次に、第１ハーフトーンＣＰＵ１７は、色出力可否情報が１の場合には、Ｄｘｊの値から閾値ＴＨの値を引いた値を、新たなＤｘｊの値とし（ステップＳ２１６）、また色出力可否情報が０の場合には算出されているＤｘｊの値を用いて、誤差拡散処理を行なう（ステップＳ２１７）。なお、誤差拡散の処理の詳細については後述する。以上の処理により、ラスターｊでｂｘ−１（つまりｂｘ＝−１）の画素の処理が終了する。
【００３４】
次に、第１ハーフトーンＣＰＵ１７は、ｂｘ＝ｂｘ＋１を計算し（ステップＳ２１８）、新たなｂｘとして設定する。そして、ｘの変数についてもｘ＝ｘ＋１を計算し（ステップＳ２１９）、新たなｘとして設定する。そして、ｘがｘ_size以上か否かを判断し（ステップＳ２２０）、ｘがx_size以上でなければ、ｂｘがｂ_size以上か否かを判断し（ステップＳ２２１）、ｂｘがｂ_size以上でなければ、同一ブロック内の次のｉラスターの画素の処理を始める。これにより、同一ブロック内の全ての画素の色出力可否情報と誤差拡散情報とが算出される。そして、上述のステップＳ３の処理に移行する。なお、同一ブロック内の処理においては、画像の一番上のラスターの画素を含むブロックであれば、当該ブロック内の最下行のラスターの画素の色出力可否情報と誤差拡散情報の算出処理するときのみ、プロセッサ以外部の色出力可否情報記憶部１５とのアクセスが必要になり、その他のラスターの画素の色出力可否情報と誤差拡散情報の算出処理する際には、データ読み書き処理の高速なＣＭＹＫデータ記憶部１２またはブロック内誤差拡散情報記憶部１３とアクセスすればよい。従って、ブロックに含まれるラスターの数が多いほど、１つの画像の色出力可否情報と誤差拡散情報の算出処理を高速に行うことができるようになる。そして、上記ステップＳ２０１〜ステップＳ２２１までの処理は、各ハーフトーンＣＰＵにおいて、それぞれのＣＭＹＫデータ（シアン、マゼンタ、イエロ、ブラック、またその他の色が存在する場合にはその色）について行なわれる。
【００３５】
図８は誤差拡散処理のフローを示す図である。
図９は各画素に対応する誤差拡散情報の変数を示す図である。
次に、誤差拡散処理について説明する。
まず、図９は、ステップＳ２０９での誤差拡散情報（Ｅ０〜Ｅ３）の変数を示す図である。ステップＳ２０９において図６のブロックＡの画素ａ３を処理していたと仮定すると、第１ハーフトーンＣＰＵ１７は、ステップＳ２０８で算出したＤｘｉの値が、他の画素ａ４、ａ６、ａ７、ａ８へ与える影響の度合いを示す誤差拡散情報Ｅ０、Ｅ１、Ｅ２、Ｅ３を算出する。ここで、図８より、Ｅ０はＥ０＝Ｄｘｉ×１６／７で算出される。またＥ１はＥ１＝Ｄｘｉ×３／１６＋以前の画素の誤差算出処理において画素ａ６へ与える誤差拡散情報（Ｅ２）で算出される。またＥ２はＥ２＝Ｄｘｉ×５／１６＋以前の画素の誤差算出処理において画素ａ７へ与える誤差拡散情報（Ｅ３）で算出される。またＥ３はＥ３＝Ｄｘｉ×１／１６＋以前の画素の誤差算出処理において画素ａ８へ与える誤差拡散情報で算出される。また、同様に、ステップＳ２１７における誤差拡散処理も行なわれる。
【００３６】
以上、本発明の実施形態を説明したが、画像処理装置１は、画素の並びの同一ライン上における所定数連続した画素の集合を隣り合う複数のラインに渡って保持するブロックであって、かつ画素の集合をラインが下がる毎に１画素分ずつライン左方向に順にずらして保持するブロックに、画像を区分けし、また、ブロックの各ラインの左端の各画素における上から下の方向に平行な方向を走査方向として、走査方向でかつブロックの左から順にブロック内の画素を選択し、当該選択した画素についての色出力可否情報と、当該色出力可否情報に基づく他の画素への影響の度合いを示す誤差拡散情報を算出する。また同一ブロック内の画素に影響を与える誤差拡散情報については、第１、第２ハーフトーン処理部１８を有するプロセッサの内部に備えられた、アクセス速度は速いが容量の低いブロック内誤差拡散情報記憶部１３（内部誤差バッファ）へ記録し、同一ブロック外の画素に影響を与える誤差拡散情報についてはプロセッサ外部に備えられた、アクセス速度は遅いが容量の高いブロック外誤差拡散情報記憶部１４（外部誤差バッファ）へ記録する。また第１、第２ハーフトーンＣＰＵは、画像における全てのブロックについて、ブロックごとに、当該ブロック内の各画素の色出力可否情報と誤差拡散情報とを算出する。
これにより、ブロック内の多くの画素の色出力可否情報や誤差拡散情報を算出する際に、プロセッサ外部のデータ読み書きの低速な、ＲＧＢデータ記憶部１１やブロック外誤差拡散情報記憶部１４にアクセスする必要がなく、またＣＭＹＫデータ記憶部１２をプロセッサ内部のデータ読み書きの高速なＲＡＭに構成するので、色出力可否情報や誤差拡散情報の算出の処理をより高速に行なうことができる。
【００３７】
なお、上述の画像処理装置は内部に、コンピュータシステムを有している。そして、上述した処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【図面の簡単な説明】
【００３８】
【図１】画像処理装置の構成を示すブロック図である。
【図２】誤差拡散フィルタを示す図である。
【図３】画像をブロックに区分けする処理を示す図である。
【図４】画像のブロックの区分けにおける未採用の例を示す図である。
【図５】画像処理装置の全体の処理フローを示す図である。
【図６】ブロックと画素のイメージを示す図である。
【図７】ハーフトーンＣＰＵにおける1ブロックの処理フローを示す図である。
【図８】誤差拡散処理のフローを示す図である。
【図９】各画素に対応する誤差拡散情報の変数を示す図である。
【符号の説明】
【００３９】
１・・・画像処理装置、１１・・・ＲＧＢデータ記憶部、１２・・・ＣＭＹＫデータ記憶部、１３・・・ブロック内誤差拡散情報記憶部、１４・・・ブロック外誤差拡散情報記憶部、１５・・・色出力可否情報記憶部、１６・・・色変換ＣＰＵ、１７・・・第１ハーフトーンＣＰＵ、１８・・・第２ハーフトーンＣＰＵ
【図１】
2005286360.tif 000003
【図２】
2005286360.tif 000004
【図３】
2005286360.tif 000005
【図４】
2005286360.tif 000006
【図５】
2005286360.tif 000007
【図６】
2005286360.tif 000008
【図７】
2005286360.tif 000009
【図８】
2005286360.tif 000010
【図９】
2005286360.tif 000011