画像処理装置、画像形成装置、画像処理方法、コンピュータプログラム及び記録媒体
【課題】画像データの圧縮後のデータ量を削減することができる画像処理装置、画像形成装置、画像処理方法、コンピュータプログラム及び記録媒体を提供する。
【解決手段】カラー画像処理装置2は、圧縮処理部3で、画像中の文字の画素を抽出し、抽出した画素の色を識別子(インデックス)で表した前景レイヤを生成し、画像から文字を省いた背景レイヤを生成し、識別子毎に2値画像を生成し、2値画像及び背景レイヤを夫々圧縮する。前景レイヤを生成する際には、色に関連付けた識別子を各画素に一旦対応付け、同一の識別子が対応付けられた画素の内で所定距離より離隔した画素間で識別子を分離する。また、近似した色に関連付けられ、しかも画素同士が所定距離より接近している識別子を統合する。このため、識別子の画素が含まれる矩形領域を2値画像から抽出して圧縮する際に、圧縮後のデータに含まれる不要なデータを削減することができる。
【解決手段】カラー画像処理装置2は、圧縮処理部3で、画像中の文字の画素を抽出し、抽出した画素の色を識別子(インデックス)で表した前景レイヤを生成し、画像から文字を省いた背景レイヤを生成し、識別子毎に2値画像を生成し、2値画像及び背景レイヤを夫々圧縮する。前景レイヤを生成する際には、色に関連付けた識別子を各画素に一旦対応付け、同一の識別子が対応付けられた画素の内で所定距離より離隔した画素間で識別子を分離する。また、近似した色に関連付けられ、しかも画素同士が所定距離より接近している識別子を統合する。このため、識別子の画素が含まれる矩形領域を2値画像から抽出して圧縮する際に、圧縮後のデータに含まれる不要なデータを削減することができる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、各画素の色をインデックス化することにより高効率で画像データを圧縮することができる画像処理装置、画像形成装置、画像処理方法、コンピュータプログラム及び記録媒体に関する。
【背景技術】
【0002】
紙等に記録された画像を光学的に読み取って画像データを生成する画像処理装置は、スキャナ装置、ファクシミリ装置又は複写装置として広く利用されている。画像処理装置が生成した画像データは、ファクシミリ通信若しくは電子メール等を用いて送受信されるか、又はデータベースに蓄積される等して種々の用途に利用される。画像を光学的に読み取って生成した画像データは、一般的にデータサイズが大きくなるので、送受信又は蓄積を効率的に行なうためには、画像データの圧縮が必要不可欠となっている。
【0003】
高圧縮率を実現するための圧縮技術の1つにレイヤ分離に基づく圧縮技術がある。レイヤ分離に基づく圧縮技術は、画像を文字及び/又は線画を表す前景レイヤとその他の画像を表す背景レイヤとに分離し、前景レイヤ及び背景レイヤを夫々に適した圧縮方法を用いて圧縮し、最終的に圧縮画像を生成する技術である。
【0004】
背景レイヤは、JPEG(Joint Photographic Experts Group)等の非可逆圧縮技術を用いて圧縮されるのが一般的である。非可逆圧縮技術は、圧縮率の制御が簡易であるので、用途に応じてデータサイズの縮小又は画質の劣化防止等を行なうことができる。
一方、前景レイヤは、JBIG(Joint Bi-level Image Experts Group)、MMR(Modified Modified Read)、又はLZW(Lempel Ziv Welch)といった可逆圧縮技術を用いて圧縮されるのが一般的である。可逆圧縮技術は、圧縮率を制御することが難しいため、圧縮率を向上させることが困難である。
【0005】
特許文献1には、圧縮率を向上させることができる圧縮技術が開示されている。特許文献1に記載の技術では、カラー画像に含まれる各画素の色をインデックスで表し、インデックスで表された色毎の画素数を含むカラー情報、及びそれらを用いて生成した背景色情報から、インデックスの統合を行なっている。
【特許文献1】特開2004−229261号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
特許文献1に記載の技術は、1枚分の画像内に含まれる同一の色を同一のインデックスで表し、各インデックス毎に各色の画素の最大・最小座標から矩形領域を切り出して2値化・圧縮を行なっている。従って、一のインデックスについて切り出した矩形領域には、このインデックスに無関係な領域も含まれることとなるので、圧縮後のデータには不要なデータが含まれてしまう。この結果、圧縮後のデータ量が大きくなり、圧縮効率が悪いという問題が生じる。
【0007】
このような不都合を解消するために、同一の色であって、狭い範囲に集中している画素に対しては夫々同一のインデックスを対応させるが、これらの画素から遠く離れた位置に存在する画素には、同一の色であっても異なるインデックスを対応させることが考えられる。
しかしながら、この場合、インデックスの個数が無制限に増大する虞がある。インデックスの個数は、切り出すべき矩形領域の個数であるため、圧縮後のデータ量が大きくなり、圧縮効率が悪いという問題が生じる。
【0008】
本発明は斯かる問題を解決するためになされたものであり、その主たる目的は、インデックスの個数を制限しつつ、各インデックスに係る画素が高い割合で含まれる領域を抽出できるようにすることにより、圧縮後のデータ量を削減することができる画像処理装置、画像形成装置、画像処理方法、コンピュータプログラム及び記録媒体を提供することにある。
【課題を解決するための手段】
【0009】
本発明に係る画像処理装置は、複数の画素で構成された画像を受け付ける受付手段と、該受付手段が受け付けた画像を構成する画素の内、文字及び/又は線画に対応する画素を抽出する抽出手段と、該抽出手段が抽出した各画素の色を複数の識別子のいずれかで表した前景レイヤを生成する前景レイヤ生成手段と、前記受付手段が受け付けた画像から文字及び/又は線画を省いた背景レイヤを生成する背景レイヤ生成手段と、前記前景レイヤ生成手段が生成した前景レイヤに含まれる識別子毎に、特定の識別子で表される画素とその他の画素とからなる2値画像を生成する2値画像生成手段と、該2値画像生成手段が生成した2値画像、及び前記背景レイヤ生成手段が生成した背景レイヤを夫々圧縮する圧縮手段とを備え、画像を圧縮する処理を行なう画像処理装置において、前記前景レイヤ生成手段は、各画素の色に応じて、特定の色に関連付けられた識別子を各画素に対応付ける識別子対応手段と、該識別子対応手段による対応付けによって同一の識別子が対応付けられた画素の内、画像上で第1距離より離隔している画素間で異なる識別子を対応付けることによって識別子を分離する識別子分離手段と、前記識別子対応手段による対応付け及び前記識別子分離手段による分離の後、異なる識別子が対応付けられた画素の内、色同士が所定の範囲内で近似し、且つ、画像上で第2距離より近接している画素間で識別子を統合する識別子統合手段とを有することを特徴とする。
【0010】
本発明に係る画像処理装置は、前記識別子統合手段は、第1の識別子に関連付けられた第1の色と、前記第1の識別子とは異なる第2の識別子に関連付けられた第2の色とが所定の範囲内で近似しているか否かを判定する判定手段と、該判定手段が近似していると判定した場合、前記第1の識別子が対応付けられた画素と前記第2の識別子が対応付けられた画素との最小距離を演算する距離演算手段と、該距離演算手段が演算した最小距離が所定の閾値より小さい場合に、前記第1の識別子が対応付けられた画素の画素数と前記第2の識別子が対応付けられた画素の画素数とを比較する比較手段と、該比較手段の比較結果に基づき、画素数が少ない方の画素に対応付けられた識別子を、画素数が多い方の画素に対応付けられた識別子と同一の識別子に変更する手段とを有することを特徴とする。
【0011】
本発明に係る画像処理装置は、前記識別子分離手段は、所定の選択順に従って、画素を順次選択する選択手段と、選択済みの画素の内で選択中の画素と同一の識別子が対応付けられた画素と、前記選択中の画素との間の最小距離を演算する最小演算手段と、該最小演算手段が演算した最小距離が所定の閾値より大きい場合に、前記選択中の画素に対応付けられた識別子を、該識別子と同一の色に関連付けられた新たな識別子に変更する手段とを有することを特徴とする。
【0012】
本発明に係る画像処理装置は、前記選択手段は、画像上の一方向を主走査方向とし、前記一方向に直交する方向を副走査方向として、画素を順次選択するように構成してあり、前記最小演算手段が演算する距離として、主走査方向の距離と、副走査方向の距離と、主走査方向及び副走査方向の両方の距離とを切り替える手段を更に備えることを特徴とする。
【0013】
本発明に係る画像処理装置は、各画素の色は、複数の原色の色強度を示す情報からなることを特徴とする。
【0014】
本発明に係る画像処理装置は、各画素の色は、単色の色強度を示す情報からなることを特徴とする。
【0015】
本発明に係る画像形成装置は、本発明の画像処理装置を備えることを特徴とする。
【0016】
本発明に係る画像処理方法は、複数の画素で構成された画像を受け付けるステップと、受け付けた画像を構成する画素の内、文字及び/又は線画に対応する画素を抽出するステップと、抽出した各画素の色を複数の識別子のいずれかで表した前景レイヤを生成する前景レイヤ生成ステップと、受け付けた画像から文字及び/又は線画を省いた背景レイヤを生成するステップと、前記前景レイヤに含まれる識別子毎に、特定の識別子で表される画素とその他の画素とからなる2値画像を生成するステップと、生成した2値画像及び背景レイヤを夫々圧縮するステップとを含む画像処理方法において、前記前景レイヤ生成ステップは、各画素の色に応じて、特定の色に関連付けられた識別子を各画素に対応付けるステップと、同一の識別子が対応付けられた画素の内、画像上で第1距離より離隔している画素間で異なる識別子を対応付けることによって識別子を分離するステップと、識別子の対応付け及び分離の後、異なる識別子が対応付けられた画素の内、色同士が所定の範囲内で近似し、且つ、画像上で第2距離より近接している画素間で識別子を統合するステップとを含むことを特徴とする。
【0017】
本発明に係るコンピュータプログラムは、コンピュータに、画像を構成する画素の内、文字及び/又は線画に対応する画素を抽出する手順と、抽出した各画素の色を複数の識別子のいずれかで表した前景レイヤを生成する前景レイヤ生成手順と、前記画像から文字及び/又は線画を省いた背景レイヤを生成する手順と、前記前景レイヤに含まれる識別子毎に、特定の識別子で表される画素とその他の画素とからなる2値画像を生成する手順と、生成した2値画像及び背景レイヤを夫々圧縮する手順とを含む処理を実行させることによって、画像を圧縮する処理を実行させるためのコンピュータプログラムであって、前記前景レイヤ生成手順は、各画素の色に応じて、特定の色に関連付けられた識別子を各画素に対応付ける手順と、同一の識別子が対応付けられた画素の内、画像上で第1距離より離隔している画素間で異なる識別子を対応付けることによって識別子を分離する手順と、識別子の対応付け及び分離の後、異なる識別子が対応付けられた画素の内、色同士が所定の範囲内で近似し、且つ、画像上で第2距離より近接している画素間で識別子を統合する手順とを含むことを特徴とする。
【0018】
本発明に係る記録媒体は、本発明のコンピュータプログラムを記録してあることを特徴とする。
【0019】
本発明にあっては、画像処理装置は、受け付けた画像から文字及び/又は線画に対応する画素を抽出し、抽出した画素の色を識別子で表した前景レイヤを生成し、画像から文字及び/又は線画を省いた背景レイヤを生成し、前景レイヤから、各識別子に係る画素と他の画素とを区別した2値画像を生成し、全ての2値画像及び背景レイヤを夫々圧縮することによって圧縮画像データを生成する。
【0020】
画像処理装置は、前景レイヤを生成する際には、色に関連付けた識別子を各画素に一旦対応付け、同一の識別子が対応付けられた画素の内で所定の第1距離より離隔した画素間で異なる識別子を対応付けることによって識別子を分離する。このため、色が同一でありながら異なる識別子が対応付けられた画像は、互いに異なる2値画像に含まれることとなり、個々の2値画像内では、各識別子に係る画素がより狭い領域に集中する。
【0021】
また、近似した色に関連付けられ、しかも画素同士が所定の第2距離より小さく接近している識別子を統合する。この結果、識別子の個数が減少するため、生成すべき2値画像の枚数が減少する。
一方、近似した色に関連付けられている識別子であっても、所定の第2距離以上離れている場合は、識別子は統合されない。このため、識別子を統合するによって、個々の2値画像内で、各識別子に係る画素が広い領域に分散してしまう不都合が抑制される。
【0022】
本発明にあっては、画像処理装置は、第1の識別子に関連付けられた第1の色と、第2の識別子に関連付けられた第2の色とが所定の範囲内で近似しているか否かを判定する。
第1の色と第2の色とが近似している場合、第1の識別子と第2の識別子とは、統合すべき識別子の候補となる。
ここで、画像処理装置は、第1の識別子が対応付けられた画素と第2の識別子が対応付けられた画素との最小距離を演算する。
演算した最小距離が所定の閾値より小さい場合、第1の識別子と第2の識別子との統合が決定される。
【0023】
そこで、画像処理装置は、第1の識別子が対応付けられた画素の画素数と第2の識別子が対応付けられた画素の画素数とを比較する。
最後に、画像処理装置は、画素数が少ない方の画素に対応付けられた識別子を、画素数が多い方の画素に対応付けられた識別子と同一の識別子に変更する。
以上の結果、大幅な画質の劣化を招くことなく、画素同士の距離が近い識別子が適切に統合される。
第1の色と第2の色とが近似していない場合は、識別子の統合は起こらない。また、画素同士の距離が遠い場合は、識別子の統合は起こらない。
【0024】
本発明にあっては、画像処理装置は、一旦識別子が対応付けられた画素を順に選択する。以下では、選択中の画素に対応付けられた識別子と同一の識別子を、同一識別子という。
次いで、画像処理装置は、選択済みの画素の内で同一識別子が対応付けられた画素と、選択中の画素との間の最小距離を求め、求めた最小距離が所定の閾値より大きい場合に、選択中の画素に対応付けられた識別子を、同一識別子と同一の色に関連付けられた新たな識別子に変更する。この結果、画素同士の距離が遠い識別子が適切に分離される。
一方、求めた最小距離が所定の閾値より小さい場合(即ち、画素同士の距離が近い場合)には、選択中の画素の識別子は変更されず、識別子の分離は起こらない。
【0025】
本発明にあっては、画素間の距離として、主走査方向の距離と、副走査方向の距離と、主走査方向及び副走査方向の両方の距離とを利用可能であり、必要に応じていずれかを切り換えて処理を実行することにより、スキャナで読み取った画像を90°右回転させる場合等、状況に応じた識別子の分離を行なう。
【0026】
本発明にあっては、赤緑青等の複数の原色の色強度を識別子に関連付けて画像の圧縮処理を行なうことにより、カラー画像の圧縮を可能とする。
【0027】
本発明にあっては、単色の色強度を識別子に関連付けて画像の圧縮処理を行なうことにより、グレースケールのモノクロ画像の圧縮を可能とする。
【発明の効果】
【0028】
本発明の画像処理装置、画像形成装置、画像処理方法、コンピュータプログラム及び記録媒体による場合、個々の2値画像内では、各識別子に係る画素がより狭い領域に集中している。従って、圧縮の際に2値画像から抽出した各識別子に係る画素が含まれる矩形領域においては、各識別子に係る画素の割合がより高くなる。つまり、圧縮後のデータに含まれる不要なデータを削減することができる。
しかも、識別子を統合する事によって、2値画像の枚数は最小限に抑えられている。
【0029】
以上の結果、画像を圧縮した圧縮画像データのデータ量を削減し、画像の圧縮効率を向上させることができる。また、画像を圧縮するために必要な処理時間を短縮することが可能となる。
更に、圧縮画像データを送受信する際には、送受信すべきデータ量を削減し、送受信に必要な時間を短縮することが可能となる等、本発明は優れた効果を奏する。
【発明を実施するための最良の形態】
【0030】
以下、本発明を、その実施の形態を示す図面に基づいて詳述する。
【0031】
実施の形態 1.
実施の形態1では、本発明の画像処理装置が、カラー画像を形成する画像形成装置の一部をなす形態を示す。
図1は、実施の形態1に係る画像形成装置の内部の機能構成を示すブロック図である。
本発明の画像形成装置は、カラー画像を光学的に読み取るカラー画像入力装置11を備えており、カラー画像入力装置11には、読み取ったカラー画像に応じた画像データ及び圧縮画像データを生成する処理を行なうカラー画像処理装置2が接続されている。カラー画像処理装置2は、本発明における画像処理装置に対応する。
【0032】
カラー画像処理装置2には、カラー画像処理装置2が生成した画像データに基づいてカラー画像を出力するカラー画像出力装置13、及びカラー画像処理装置2が生成した圧縮画像データを外部へ送信する送信装置14が接続されている。
カラー画像入力装置11、カラー画像処理装置2、カラー画像出力装置13及び送信装置14には、使用者からの操作を受け付ける操作パネル12が接続されている。
【0033】
カラー画像入力装置11は、CCD(Charge Coupled Device )光センサを備えたスキャナにて構成されており、紙等の記録担体上に記録されたカラー画像からの反射光像をR(赤)G(緑)B(青)に分解してCCDで読み取り、RGBのアナログ信号に変換してカラー画像処理装置2へ出力する構成となっている。
カラー画像処理装置2は、カラー画像入力装置11から入力されたRGBのアナログ信号に対して後述する画像処理を行なってデジタルの画像データを生成する。また、カラー画像処理装置2は、デジタルのC(シアン)M(マゼンタ)Y(イエロー)K(黒)信号からなる画像データを生成してカラー画像出力装置13へ出力する。更にまた、カラー画像処理装置2は、生成したデジタルの画像データを後述する圧縮処理により圧縮した圧縮画像データを生成し、圧縮画像データを送信装置14へ出力する。
【0034】
カラー画像出力装置13は、カラー画像処理装置2から入力された画像データに基づいて、熱転写、電子写真、又はインクジェット等の方式により記録担体上に画像を形成することによって、カラー画像を出力する。
送信装置14は、図示しない公衆回線網、LAN(Local Area Network)又はインターネット等の通信ネットワークに接続可能であり、ファクシミリ又は電子メール等の通信方法により通信ネットワークを介して外部へ圧縮画像データを送信する。
操作パネル12は、画像形成装置の操作に必要な情報を表示する液晶ディスプレイ等の表示部と、画像形成装置の動作を制御する指示を使用者の操作により受け付けるタッチパネル又はテンキー等の受付部とを含んで構成されている。
【0035】
カラー画像処理装置2は、カラー画像入力装置11から入力されたアナログ信号をA/D変換部20でデジタル信号に変換し、シェーディング補正部21、入力階調補正部22、領域分離処理部23、色補正部24、黒生成下色除去部25、空間フィルタ処理部26、出力階調補正部27、階調再現処理部28の順に送り、デジタルのCMYK信号からなる画像データをカラー画像出力装置13へ出力する構成となっている。また、カラー画像処理装置2は、デジタル信号を領域分離処理部23から圧縮処理部3へ送り、圧縮画像データを送信装置14へ出力する構成となっている。
【0036】
A/D変換部20は、カラー画像入力装置11からカラー画像処理装置2へ入力されたRGBのアナログ信号を受け付け、RGBのアナログ信号をデジタルのRGB信号へ変換し、RGB信号をシェーディング補正部21へ出力する。
シェーディング補正部21は、A/D変換部20から入力されたRGB信号に対して、カラー画像入力装置11の照明系、結像系及び撮像系で生じる各種の歪みを取り除く処理を行なう。
次いで、シェーディング補正部21は、歪みを取り除いたRGB信号を入力階調補正部22へ出力する。
【0037】
入力階調補正部22は、シェーディング補正部21から入力されたRGB信号に対して、カラーバランスを調整する。シェーディング補正部21から入力階調補正部22へ入力されたRGB信号はRGBの反射率信号であり、入力階調補正部22は、シェーディング補正部21から入力されたRGB信号を、カラー画像処理装置2で処理しやすい濃度信号等の信号へ変換する。
次いで、入力階調補正部22は、処理を行なったRGB信号を領域分離処理部23へ出力する。
【0038】
領域分離処理部23は、入力階調補正部22から入力されたRGB信号が表す画像中の各画素を、文字領域、網点領域、又は写真領域のいずれかに分離し、分離結果に基づき、各画素がいずれの領域に属しているかを示す領域識別信号を、黒生成下色除去部25、空間フィルタ処理部26、及び階調再現処理部28へ出力する。また、領域分離処理部23は、入力階調補正部22から入力されたRGB信号を色補正部24及び圧縮処理部3へ出力する。
【0039】
圧縮処理部3は、領域分離処理部23からRGB信号でなる画像データを入力され、後述する本発明の画像処理方法を用いて圧縮画像データを生成する処理を実行する。圧縮処理部3は、生成した圧縮画像データを、ハードディスク等の不揮発性の記憶媒体を用いて構成された記憶部29に記憶させる。また、圧縮処理部3は、生成した圧縮画像データを送信装置14へ出力する。
【0040】
色補正部24は、領域分離処理部23から入力されたRGB信号をCMY信号へ変換し、色再現の忠実化実現のために、不要吸収成分を含むCMY色材の分光特性に基づいた色濁りをCMY信号から取り除く処理を行なう。
次いで、色補正部24は、色補正を行なったCMY信号を黒生成下色除去部25へ出力する。
【0041】
黒生成下色除去部25は、色補正部24から入力されたCMYの3色信号からK信号を生成する黒生成処理を行ない、元のCMY信号から黒生成処理によって得られたK信号を差し引くことによって、CMYの3色信号をCMYKの4色信号へ変換する。黒生成処理の一例としては、スケルトンブラックにより黒生成を行なう方法がある。この方法では、スケルトンカーブの入出力特性をy=f(x)、変換前のデータをC,M,Y、UCR(Under Color Removal )率をα(0<α<1)とすると、変換後のデータC',M',Y',K'は下記の式(1)〜式(4)で表される。
【0042】
K'=f(min (C,M,Y))…(1)
C'=C−αK'…(2)
M'=M−αK'…(3)
Y'=Y−αK'…(4)
【0043】
ここで、UCR率α(0<α<1)は、CMYが重なっている部分をKに置き換えてCMYをどの程度削減するかを示す。式(1)は、CMYの各信号強度の内の最も小さい信号強度に応じてK信号が生成されることを示している。
次いで、黒生成下色除去部25は、CMY信号を変換したCMYK信号を空間フィルタ処理部26へ出力する。
【0044】
空間フィルタ処理部26は、黒生成下色除去部25から入力されたCMYK信号が表す画像に対して、領域分離処理部23から入力された領域識別信号に基づいてデジタルフィルタによる空間フィルタ処理を行なうことにより、画像のぼやけ又は粒状性劣化を改善する。例えば、領域分離処理部23にて文字に分離された領域に対しては、空間フィルタ処理部26は、文字の再現性を高めるために、高周波成分の強調量が大きいフィルタを用いて空間フィルタ処理を行なう。また、領域分離処理部23にて網点に分離された領域に対しては、空間フィルタ処理部26は、入力網点成分を除去するためのローパス・フィルタ処理を行なう。
次いで、空間フィルタ処理部26は、処理後のCMYK信号を出力階調補正部27へ出力する。
【0045】
出力階調補正部27は、空間フィルタ処理部26から入力されたCMYK信号に対して、カラー画像出力装置13の特性に基づく出力階調補正処理を行ない、出力階調補正処理後のCMYK信号を階調再現処理部28へ出力する。
【0046】
階調再現処理部28は、出力階調補正部27から入力されたCMYK信号に対して、領域分離処理部23から入力された領域識別信号に基づいて、領域に応じた中間調処理を行なう。例えば、領域分離処理部23にて文字に分離された領域に対しては、階調再現処理部28は、高域周波成分の再現に適した高解像度のスクリーンによる二値化又は多値化の処理を行なう。また、領域分離処理部23にて網点に分離された領域に対しては、階調再現処理部28は、階調再現性を重視したスクリーンでの二値化又は多値化の処理を行なう。
次いで、階調再現処理部28は、処理後の画像データをカラー画像出力装置13へ出力する。
【0047】
カラー画像出力装置13は、カラー画像処理装置2から入力されたCMYK信号でなる画像データに基づいて、紙等の記録担体上にCMYKのカラー画像を形成する。画像データに基づいて画像を形成することにより、画像形成装置は、受け付けた画像に基づいた画像を形成する。
【0048】
次に、圧縮処理部3の構成及び圧縮処理部3が行なう処理を説明する。
図2及び図3は、圧縮処理部3が画像を圧縮する処理の概要を示す模式図である。
図2に示す圧縮前の画像は、白地に書かれた「TEST画像」という赤色の文字と、緑色のベタ塗り領域に書かれた「これはテスト画像です」という青色の文字と、多彩な色合いを有する絵とを含んでいる。
図2に示す如く、圧縮処理部3は、入力された画像を文字を表す前景レイヤとその他を表す背景レイヤとに分離する。背景レイヤには、画像から文字を省いたものが含まれる。また、前景レイヤには、各文字の色を示す情報が含まれる。
【0049】
更に、図3に示す如く、圧縮処理部3は、前景レイヤから各色毎に2値画像を生成する。例えば、圧縮処理部3は、図3に示すように、「TEST画像」の文字の画素値を“1”として他の画素値を“0”とした2値画像Aと、「これはテスト画像です」の文字の画素値を“1”として他の画素値を“0”とした2値画像Bとを生成する。2値画像Aには、「TEST画像」の文字の色を示す色情報が付加されており、また、2値画像Bには、「これはテスト画像です」の文字の色を示す色情報が付加されている。
圧縮処理部3は、背景レイヤと色情報が付加された各2値画像とを夫々圧縮することにより、圧縮画像データを生成する。
【0050】
図4は、圧縮処理部3の内部構成を示すブロック図である。
圧縮処理部3は、領域分離処理部23から入力された画像データから前景マスク生成処理部31で文字の画素を示す前景マスクを生成し、前景色インデックス化処理部32で文字の画素の色をインデックス(識別子)で表した前景レイヤを生成する構成となっている。また、圧縮処理部3は、背景レイヤ生成処理部33で背景レイヤを生成し、2値画像生成処理部34で前景レイヤから各色の2値画像を生成し、画像圧縮処理部35で背景レイヤ及び各色の2値画像を圧縮することにより圧縮画像データを生成し、圧縮画像データを出力する構成となっている。
【0051】
以下では、圧縮処理部3の各部について、更に詳細に説明する。
前景マスク生成処理部31は、領域分離処理部23から圧縮処理部3へ入力された画像データを受け付け、受け付けた画像データが表す画像を構成する画素から、文字に対応する画素を前景として抽出し、抽出した画素の位置を示す前景マスクを生成する。抽出した画素以外の画素は、背景の画素である。前景マスク生成処理部31は、本発明における受付手段及び抽出手段に対応する。
【0052】
前景マスク生成処理部31は、具体的には、画素の輝度値に対して画像上の一方向に微分処理を行ない、輝度が明るく変化するエッジ部位と、暗く変化するエッジ部位とを検知し、エッジ部位に基づいて文字画像を2値化する。更に詳細には、前景マスク生成処理部31は、画像上の画素を一方向に走査し、正方向の微分値が出現してから負方向の微分値が出現するまでの範囲を文字の画素として抽出し、抽出した画素の画素値を“1”として他の画素値を“0”とした2値画像を生成する。
以上のようにして生成された2値画像が前景マスクである。前景マスクは、例えば、図2に示す前景レイヤから色情報を省いたものとなる。
【0053】
前景マスク生成処理部31は、生成した前景マスクのデータ、及び画像データを前景色インデックス化処理部32へ出力する。なお、圧縮処理部3は、領域分離処理部23から領域識別信号を受け付け、前景マスク生成処理部31は、領域識別信号が示す文字領域に含まれる画素を抽出する処理を行なう構成であってもよい。
【0054】
図5は、前景色インデックス化処理部32の内部構成を示すブロック図である。
前景色インデックス化処理部32は、本発明における前景レイヤ生成手段に対応する。このために、前景色インデックス化処理部32は、インデックス生成部321、インデックス統合部322、及びインデックス補正部323を備える。
【0055】
ここで、本発明の実施の形態の特徴を説明する。
図6は、圧縮処理部3が圧縮すべき画像の例を示す概念図である。
図中に示すx座標及びy座標は、カラー画像入力装置11でカラー画像を読み取る際の主走査方向及び副走査方向に対応する。座標(x,y)は画像上の画素の位置を示し、座標によって各画素を特定することができる。
図6中の画素群P1〜P6は、夫々前景を示す画素群であり、画素群P1〜P6以外の画素群は、背景を示す画素群である。
【0056】
ここで、画素群P1〜P3が同色(例えば赤色)の画素群であり、画素群P4が全く異なる色(例えば青色)の画素群であり、画素群P5,P6が、夫々画素群P3の色に近似し、且つ、互いに異なる色(例えば画素群P5は薄い赤色、画素群P6は濃い赤色)の画素群であるものとする。
この場合、まず、画素群P1〜P3夫々の各画素に、例えばインデックス“1”が対応付けられ、画素群P4の各画素に、インデックス“2”が対応付けられ、画素群P5の各画素に、インデックス“3”が対応付けられ、画素群P6の各画素に、インデックス“4”が対応付けられる(インデックス対応処理)。
【0057】
仮に、このようにインデックス化された画像(以下、初期インデックス画像という)から、同一のインデックスの画素を含む最小面積の矩形領域を切り出す場合、インデックス“1”については、座標(2,2)〜座標(11,18)の矩形領域が切り出される。
初期インデックス画像に係るインデックスを、以下では初期インデックスということもある。
ところが、この矩形領域は、インデックス“1”の画素を含まない領域(例えば、座標(2,8)〜座標(11,14)の矩形領域)を広く有する。換言すれば、矩形領域はインデックス“1”とは無関係な領域を多量に含む。このため、個々の矩形領域のデータ量が大きくなり、圧縮効率が悪くなる。
【0058】
そこで、圧縮効率を向上させるべく、同一の初期インデックスが対応付けられている画素間の距離を考慮して、インデックスを分離することがなされる。
画素群P1と画素群P2とは互いに距離が近いが、画素群P1,P2夫々と画素群P3とは互いに距離が遠い。従って、画素群P1,P2夫々の各画素に、インデックス“1”がそのまま対応付けられ、画素群P3の各画素に、新たなインデックス“5”が改めて対応付けられる(インデックス分離処理)。
【0059】
仮に、このようにインデックス化された画像(以下、分離インデックス画像という)から、同一のインデックスに対応付けられた画素を含む最小面積の矩形領域を切り出す場合、インデックス“1”については座標(2,2)〜座標(11,7)の矩形領域が切り出され、インデックス“5”については座標(6,15)〜座標(9,18)の矩形領域が切り出される。
分離インデックス画像に係るインデックスを、以下では分離インデックスということもある。
ところが、インデックス分離処理を実行した後は、インデックスの個数が非常に多くなる(即ち、切り出すべき矩形領域の個数が非常に多くなる)虞がある。このため、矩形領域のデータ量の総和が大きくなり、圧縮効率が悪くなる。
【0060】
ところで、従来、インデックスの個数を減少させるために、異なるインデックスの内、近似色が関連付けられているインデックス同士を統合することがなされている。
仮に、画素群P5,P6夫々の各画素に、画素群P3と同じインデックス“5”を対応付けた場合、インデックス数は減少するが、インデックス“5”について切り出される矩形領域は、インデックス“5”の画素を含まない領域を広く有することになる。具体的には、インデックス“5”について座標(1,11)〜座標(15,18)の矩形領域が切り出される。この矩形領域は、インデックス“5”の画素を含まない領域(例えば、座標(1,12)〜座標(15,14)の矩形領域)を広く有する。この結果、圧縮効率が悪くなる。
【0061】
本願発明の最大の特徴は、近似色のインデックス同士を統合する際にも、画素間の距離を考慮することにある。
画素群P3と画素群P6とは互いに距離が近いが、画素群P3と画素群P5とは互いに距離が遠い。従って、画素群P3及び画素群P6について、インデックスの統合が実行され、画素群P3に係るインデックス“3”は変更されない(インデックス統合処理)。
【0062】
ここで、インデックス統合処理の実行による画質の劣化を抑制するために、画素群P3及び画素群P6夫々の画素数が比較される。何故ならば、画素数が少ない方を画素数が多い方に統合した画像は、画素数が多い方を画素数が少ない方に統合した画像に比べて、各画素の色の変化が目立たないからである。
従って、画素群P3に画素群P6が統合され、画素群P6の各画素に、画素群P3と同じインデックス“5”が改めて対応付けられる。
【0063】
このようにインデックス化された画像(以下、統合インデックス画像という)から、同一のインデックスに対応付けられた画素を含む矩形領域を最小面積の切り出す場合、インデックス“3”については座標(12,11)〜座標(15,11)の矩形領域が切り出され、インデックス“5”については座標(1,15)〜座標(9,18)の矩形領域が切り出される。
統合インデックス画像に係るインデックスを、以下では統合インデックスということもある。
【0064】
以上の結果、画素群P1,P2にインデックス“1”、画素群P3,P6にインデックス“5”、画素群P4にインデックス“2”、画素群P5にインデックス“3”が夫々対応付けられ、各インデックスについて矩形領域が切り出される。このため、同一のインデックスが含まれる矩形領域の面積は必要最小限になり、且つ、インデックスの個数が必要最小限になる。
そして、このような統合インデックス画像が、前景レイヤとして出力される。
【0065】
インデックス“4”は、インデックス統合処理によって空インデックスとなるが、インデックス統合処理の実行後に、インデックス“5”をインデックス“4”に変換して、インデックス“5”を空インデックスにすることによって、空インデックスを詰めることができる。なお、インデックス“4”を空インデックスのままにして、インデックス“1”〜“3”,“5”を用いる構成でもよい。
【0066】
図7、図8、及び図9は、初期インデックス画像、分離インデックス画像、及び統合インデックス画像の例を示す概念図である。
本実施の形態では、分離インデックス画像及び統合インデックス画像夫々のデータは生成されるが、初期インデックス画像のデータは生成されない。ただし、分離インデックス画像との比較のために、初期インデックス画像も例示してある。
図7〜図9中に示すx座標は、前景色インデックス化処理部32へ入力された画像データが表す画像中の主走査方向の画素の位置に対応し、y座標は、副走査方向の画素の位置に対応する。各インデックス画像の主走査方向及び副走査方向は、カラー画像入力装置11でカラー画像を読み取る際の主走査方向及び副走査方向に対応する。座標(x,y)は画像上の画素の位置を示し、座標によって各画素を特定することができる。
【0067】
各インデックス画像では、前景マスクで前景とされている各画素に、夫々の色(例えば赤色、及び青色等)を示すインデックスが対応付けられている。前景を示すインデックスは、“1”以上のいずれかの数値を有する。また、各インデックス画像では、前景マスクで背景とされている各画素に、前景の色とは異なる色(例えば白色)を示すインデックスが対応付けられている。背景を示すインデックスは“0”である。
【0068】
図10〜図13は、インデックステーブル、インデックスカラーテーブル、及び座標テーブルの例を示す図表である。
インデックステーブルは、アドレスとインデックスとを関連付けたテーブルである。
【0069】
インデックスカラーテーブルは、アドレスと、RGB各色の色強度で表わされた色情報と、画素数とを関連付けたテーブルである。インデックスカラーテーブルのアドレスは、インデックステーブルのインデックスに対応する。換言すれば、インデックスカラーテーブルは、インデックスと、このインデックスに関連付けられた色情報と、このインデックスが対応付けられた画素の画素数とを関連付けたテーブルである。背景を示すインデックス“0”には、白色を示す色情報と、画素数243とが関連付けられている。以下では、各色の色情報をRGB値(Rの色強度,Gの色強度,Bの色強度)で表わす。例えば、白色はRGB値(255,255,255)と表わされる。
【0070】
座標テーブルは、アドレスと、最小x座標値、最小y座標値、最大x座標値、及び最大y座標値とを関連付けたテーブルである。座標テーブルのアドレスは、インデックステーブルのインデックスに対応する。換言すれば、座標テーブルは、インデックスと、このインデックスが対応付けられた画素の、主走査方向の最小座標値及び最大座標値並びに副走査方向の最小座標値及び最大座標値とを関連付けたテーブルである。
【0071】
図10(a)に示す分離インデックステーブル、図10(b)に示す分離インデックスカラーテーブル、及び図11に示す分離座標テーブルは、図8に示す分離インデックス画像に対応する。
図12(a)に示す統合インデックステーブル、図12(b)に示す統合インデックスカラーテーブル、及び図13に示す統合座標テーブルは、図9に示す統合インデックス画像に対応する。
統合インデックステーブルのアドレスは、分離インデックステーブルのインデックスに対応する。換言すれば、統合インデックステーブルは、分離インデックスと統合インデックスとを関連付けたテーブルである。
【0072】
図8に示す分離インデックス画像において、座標(7,2)〜座標(11,7)の矩形領域に含まれるインデックス“2”の画素(以下、第1の青画素群という)と、座標(10,16)〜座標(12,16)の矩形領域に含まれるインデックス“6”の画素(以下、第2の青画素群という)とは、図10に示す分離インデックスカラーテーブルを参照すればわかるように、いずれもRGB値(0,0,255)の画素(青色の画素)である。
このため、図7に示すように、初期インデックス画像では、第1の青座標群及び第2の青座標群の両方に、インデックス“2”が対応付けられている。
【0073】
しかしながら、図11に示す分離座標テーブルを参照すればわかるように、第1の青画素群と第2の青画素群との副走査方向の最小距離は、第2の青画素群の最小y座標値“16”から第1の青画素群の最大y座標値“7”を減算した減算結果“9”であり、非常に遠い。
このため、図8に示す分離インデックス画像では、第1の青座標群に係るインデックスと及び第2の青座標群に係るインデックスとは分離されて、異なる識別子が対応付けられている。
【0074】
図8に示す分離インデックス画像において、座標(1,14)〜座標(3,18)の矩形領域に含まれるインデックス“5”の画素(以下、第1の緑画素群という)は、図10に示す分離インデックスカラーテーブルを参照すればわかるように、RGB値(120,240,120)の画素(薄い緑色の画素)である。また、座標(4,18)〜座標(4,19)の矩形領域に含まれるインデックス“7”の画素(以下、第2の緑画素群という)は、RGB値(135,240,135)の画素(更に薄い緑色の画素)である。
【0075】
第1の緑画素群の色と第2の緑画素群の色とは非常に近似している。しかも、図11に示す分離座標テーブルを参照すればわかるように、第1の緑画素群と第2の緑画素群との副走査方向の最小距離は、第2の緑画素群の最小y座標値“18”から第1の緑画素群の最大y座標値“18”を減算した減算結果“0”であり、非常に近い。更に、図10に示す分離インデックスカラーテーブルを参照すればわかるように、第1の緑画素群の画素数“11”は第2の緑画素群の画素数“2”より多い。
【0076】
従って、図10(a)に示す分離インデックステーブルにおいてアドレス“7”に関連付けられていたインデックス“7”は、図12(a)に示す統合インデックステーブルではインデックス“5”に変更されている。
また、図12(b)に示す統合インデックスカラーテーブルでは、アドレス“7”に関連付けられていた色情報及び画素数が、夫々デフォルト値(本実施の形態では“0”)に変更されている。更に、アドレス“5”に関連付けられていた画素数が、“13”に変更されている。画素数“13”とは、図12(b)に示す分離インデックスカラーテーブルでアドレス“5”に関連付けられていた画素数“11”とアドレス“7”に関連付けられていた画素数“2”とを加算した加算結果である。
【0077】
更に、図13に示す統合座標テーブルでは、アドレス“7”に関連付けられていた各種座標値がデフォルト値に変更されている。最小x座標値のデフォルト値は、画像の主走査方向の画素数以上の数値である“4095”であり、最小y座標値のデフォルト値は、画像の副走査方向の画素数以上の数値である“8191”であり、最大x座標値のデフォルト値は“0”であり、最大y座標値のデフォルト値は“0”である。ここでは、A3サイズで解像度が300dpiの画素数に基づいて、デフォルト値が設定されている。
【0078】
更にまた、統合座標テーブルでは、アドレス“5”に関連付けられていた各種座標値が、インデックス“5”が対応付けられた画素が存在する矩形領域の最小x座標値“1”、最小y座標値“14”、最大x座標値“4”、及び最大y座標値“19”に変更されている。ここで、図11に示す分離座標テーブルを参照すればわかるように、図13に示す統合座標テーブルにおけるインデックス“5”の最小x座標値及び最小y座標値は、分離座標テーブルにおけるインデックス“5”,“7”夫々の最小x座標値及び最小y座標値の内の最小値に等しく、統合座標テーブルにおけるインデックス“5”の最大x座標値及び最大y座標値は、分離座標テーブルにおけるインデックス“5”,“7”夫々の最大x座標値及び最大y座標値の内の最大値に等しい。
【0079】
図5に示すインデックス生成部321では、前景レイヤのデータ及び画像データに基づいて、インデックス対応処理とインデックス分離処理とが実行される。インデックス生成部321は、本発明における識別子対応手段及び識別子分離手段に対応する。
インデックス対応処理では、各画素の色に応じて、特定の色に関連付けられたインデックスを各画素に対応付けることがなされる。
また、インデックス分離処理では、インデックス対応処理で同一のインデックスが対応付けられた画素の内、画像上で所定の第1距離より離隔している画素間でインデックスを分離することがなされる。本実施の形態では、この第1距離として、後述する図22に示す第1最小距離Δy1を用いる。
【0080】
ただし、インデックス生成部321は、1枚分の画像データの各画素に対してインデックス対応処理及びインデックス分離処理を実行して分離インデックス画像のデータを生成する構成である(後述する図14〜図16に示すフローチャート参照)。つまり、インデックス生成部321は、1枚分の画像データに対してインデックス対応処理を実行して初期インデックス画像のデータを生成し、次いで、初期インデックス画像のデータに対してインデックス分離処理を実行して分離インデックス画像のデータを生成する構成ではない。
【0081】
従って、インデックス生成部321からは、図8、図10及び図11に示すような分離インデックス画像のデータ、分離インデックステーブル、分離インデックスカラーテーブル、及び分離座標テーブルが出力される。
インデックス生成部321では、初期インデックスを一時的に記憶しておくための初期インデックステーブルも生成する。初期インデックステーブルに記憶される初期インデックスは、分離インデックステーブルのアドレスに対応する。
初期インデックステーブルは、インデックス生成部321の後段では使用されない。
【0082】
図14〜図16は、インデックス生成部321が行なう処理の手順を示すフローチャートである。
図14に示すように、インデックス生成部321は、初期インデックステーブルと、分離インデックステーブル、分離インデックスカラーテーブル、及び分離座標テーブルと、分離インデックス画像とを生成する(S11)。
S11の処理が実行されることによって、初期インデックステーブルには、アドレス“0”,“1”,“2”,…と、初期インデックスのデフォルト値“0”とが記憶され、分離インデックステーブルには、アドレス“0”,“1”,“2”,…と、分離インデックスのデフォルト値とが記憶される。分離インデックスのデフォルト値は、分離インデックスに関連付けられているアドレスに等しい。
【0083】
また、分離インデックスカラーテーブルには、アドレス“0”,“1”,“2”,…と、RGB値のデフォルト値と、画素数のデフォルト値“0”とが記憶される。アドレス“0”に関連付けられるRGB値のデフォルト値はRGB値(255,255,255)であるが、アドレス“0”以外のアドレスに関連付けられるRGB値のデフォルト値はRGB値(0,0,0)である。
分離座標テーブルには、アドレス“0”,“1”,“2”,…と、各種座標値のデフォルト値とが記憶される。
分離インデックス画像の各画素には、デフォルト値として、インデックス“0”(即ち背景のインデックス)が付与される。
【0084】
S11の処理終了後、インデックス生成部321は、初期インデックスカウンタidxcnt及び副走査カウンタycntを夫々“0”にリセットする(S12)。初期インデックスカウンタidxcntは、本処理にて初期インデックスを付与するためのカウンタである。副走査カウンタycntは、注目画素の画像上の副走査方向の画素位置を示すカウンタである。
次いで、インデックス生成部321は、副走査カウンタycntが、画像の副走査方向の画素数より小さいか否かを判定する(S13)。副走査カウンタycntが副走査方向の画素数以上である場合(S13でNO)、1枚分の画像データの入力が全て終了したため、インデックス生成部321は、本処理を終了する。
【0085】
副走査カウンタycntが、副走査方向の画素数より小さい場合(S13でYES)、インデックス生成部321は、主走査カウンタxcntを“0”にリセットする(S14)。主走査カウンタxcntは、注目画素の画像上の主走査方向の画素位置を示すカウンタである。
次いで、インデックス生成部321は、主走査カウンタxcntが、画像の主走査方向の画素数より小さいか否かを判定する(S15)。主走査カウンタxcntが主走査方向の画素数以上である場合(S15でNO)、1ライン分の主走査方向の画素の選択が全て終了したため、インデックス生成部321は、副走査カウンタycntをインクリメントし(S16)、処理をS13へ戻す。
【0086】
主走査カウンタxcntが、主走査方向の画素数より小さい場合(S15でYES)、インデックス生成部321は、S17以降の処理を実行する。このとき、注目画素の位置は、主走査カウンタxcntと副走査カウンタycntとで表現される。本実施の形態においては、注目画素(xcnt,ycnt)が、選択中の画素である。また、注目画素(xcnt,ycnt)が選択されるよりも前に選択された各画素が、選択済みの画素である。
インデックス生成部321は、前景マスクを参照し、注目画素(xcnt,ycnt)が前景の画素であるか否かを判定する(S17)。
【0087】
注目画素(xcnt,ycnt)が背景の画素である場合(S17でNO)、インデックス生成部321は、アドレスaddrに“0”を代入し(S18)、分離インデックスカラーテーブルをアドレスaddrについて更新する(S19)。S19の処理では、インデックス生成部321は、アドレスaddrに関連付けられた画素数(即ち背景の画素数)をインクリメントする。
次いで、インデックス生成部321は、座標テーブル更新処理のサブルーチン(後述する図17参照)を呼び出すことによって、分離座標テーブルをアドレスaddrについて更新する(S20)。
S20の処理終了後、インデックス生成部321は、主走査カウンタxcntをインクリメントして(S21)、処理をS15へ戻す。
【0088】
図17は、座標テーブル更新処理のサブルーチンの処理の手順を示すフローチャートである。
以下では、アドレスaddrに関連付けられている最小x座標値、最小y座標値、最大x座標値、及び最大y座標値を、最小x座標値xmin[addr]、最小y座標値ymin[addr]、最大x座標値xmax[addr]、及び最大y座標値ymax[addr]と記載する。
インデックス生成部321は、分離座標テーブルに記録された最小x座標値xmin[addr]が主走査カウンタxcntより大きいか否かを判定する(S31)。
最小x座標値xmin[addr]が主走査カウンタxcntより大きい場合(S31でYES)、インデックス生成部321は、アドレスaddrに関連付けられた最小x座標値xmin[addr]に主走査カウンタxcntを代入する(S32)。
【0089】
S32が終了した場合、又はS31で最小x座標値xmin[addr]が主走査カウンタxcnt以下である場合(S31でNO)、インデックス生成部321は、分離座標テーブルに記録された最小y座標値ymin[addr]が副走査カウンタycntより大きいか否かを判定する(S33)。
最小y座標値ymin[addr]が副走査カウンタycntより大きい場合(S33でYES)、インデックス生成部321は、アドレスaddrに関連付けられた最小y座標値ymin[addr]に副走査カウンタycntを代入する(S34)。
【0090】
S34が終了した場合、又はS33で最小y座標値ymin[addr]が副走査カウンタycnt以下である場合(S33でNO)、インデックス生成部321は、分離座標テーブルに記録された最大x座標値xmax[addr]が主走査カウンタxcntより小さいか否かを判定する(S35)。
最大x座標値xmax[addr]が主走査カウンタxcntより小さい場合(S35でYES)、インデックス生成部321は、アドレスaddrに関連付けられた最大x座標値xmax[addr]に主走査カウンタxcntを代入する(S36)。
【0091】
S36が終了した場合、又はS35で最大x座標値xmax[addr]が主走査カウンタxcnt以上である場合(S35でNO)、インデックス生成部321は、分離座標テーブルに記録された最大y座標値ymax[addr]が副走査カウンタycntより小さいか否かを判定する(S37)。
最大y座標値ymax[addr]が副走査カウンタycntより小さい場合(S37でYES)、インデックス生成部321は、アドレスaddrに関連付けられた最大y座標値ymax[addr]に副走査カウンタycntを代入する(S38)。
【0092】
S38が終了した場合、又はS37で最大y座標値ymax[addr]が副走査カウンタycnt以上である場合(S37でNO)、インデックス生成部321は、座標テーブル更新処理のサブルーチンの処理を終了し、処理をメインルーチンへ戻す。
【0093】
図14に示すように、注目画素(xcnt,ycnt)が前景の画素である場合(S17でYES)、図15に示すように、インデックス生成部321は、注目画素(xcnt,ycnt)の色情報に基づいて、減色処理を行なう(S41)。
S41における減色処理としては、例えば特許文献1に記載された方法を用いることができる。この場合の減色処理とは、画像データに含まれる各画素の色情報に対し、予め定められた色数への減色を行なう処理である。例えば、RGB各色の色強度を8ビットで表している色情報のビット数を、2−2−2、3−3−2、又は3−3−3ビット等のビット数に落とす。ビット数の選び方は、色判定をどの程度の精度で行なうかによって任意に選択可能である。
【0094】
図18は、減色処理テーブルの例を示す図表である。
本実施の形態では、RGB各色情報のビット数を2−2−2とした場合に、図18に示す減色処理テーブルを用いて、減色処理が行なわれる。この場合、RGB各色は夫々4階調となる。
減色処理テーブルでは、Rの色強度、Gの色強度、及びBの色強度と、Rの減色結果col_r 、Gの減色結果col_g 、及びGの減色結果col_b とが関連付けられている。このような減色処理テーブルは、図示しないメモリに予め記憶されている。
S41では、インデックス生成部321は、減色処理テーブルを参照し、注目画素(xcnt,ycnt)の色情報に基づいて、減色結果col_r ,col_g ,col_b を取得する。
【0095】
次いで、インデックス生成部321は、減色結果を初期インデックスに対応付けるために、初期インデックステーブルへのアドレスcoladrを、下記の式(5)を用いて算出する(S42)。この結果、アドレスcoladrは“0”以上、“63”以下の範囲内のいずれかの値を取る。つまり、色情報に対して最大64通りの初期インデックスを付与することができる。
coladr=col_r +col_g ×4+col_b ×16…(5)
【0096】
以下に、初期インデックステーブルへのアドレスcoladrの具体例を挙げる。
注目画素(xcnt,ycnt)=(2,2)はRGB値(128,0,128)である(図8に示す分離インデックス画像及び図10(b)に示す分離インデックスカラーテーブル参照)。この場合、図18に示す減色処理テーブルを参照すると、減色結果col_r ,col_g ,col_b =2,0,2となるため、初期インデックステーブルへのアドレスcoladrは、以下の式(6)のように算出される。
coladr=2+0×4+2×16=34…(6)
【0097】
以下では、注目画素(xcnt,ycnt)=(2,2)を第1の注目画素(2,2)という。第1の注目画素(2,2)は、インデックスが分離されない画素の例である。このため、第1の注目画素(2,2)に対応付けられる分離後インデックスは、初期インデックスに等しい。
【0098】
注目画素(xcnt,ycnt)=(10,16)はRGB値(0,0,255)である。この場合、減色結果col_r ,col_g ,col_b =0,0,3となるため、初期インデックステーブルへのアドレスcoladrは、以下の式(7)のように算出される。
coladr=0+0×4+3×16=48…(7)
【0099】
以下では、注目画素(xcnt,ycnt)=(10,16)を第2の注目画素(10,16)という。第2の注目画素(10,16)は、インデックスが分離される画素の例である。このため、第2の注目画素(10,16)に対応付けられる分離後インデックスは、初期インデックスとは異なる。
【0100】
次いで、インデックス生成部321は、初期インデックステーブルを参照し、アドレスcoladrのインデックスtmpidx[coladr]を読み出し、読み出したインデックスtmpidx[coladr]が“0”であるか否かを判定する(S43)。S43の判定処理は、インデックスtmpidx[coladr]が未登録であるか登録済みであるかを判定する処理である。
インデックスtmpidx[coladr]が“0”である場合(S43でYES)、インデックスtmpidx[coladr]が未登録である。このため、インデックス生成部321は、初期インデックスカウンタidxcntをインクリメントする(S44)。
【0101】
図19及び図20は、第1の注目画素(2,2)及び第2の注目画素(10,16)に対する処理の手順を説明するための図表である。図19及び図20夫々の(a)は初期インデックステーブルを示し、(b)は分離座標テーブルを示し、(c)は分離インデックスカラーテーブルを示している。
図19(a)に示すように、coladr=34である第1の注目画素(2,2)は、インデックスtmpidx[coladr]=0である。このため、第1の注目画素(2,2)には、初期インデックス“1”が新規に付与される。
【0102】
次いで、インデックス生成部321は、分離インデックス画像を更新する(S45)。具体的には、インデックス生成部321は、分離インデックス画像における注目画素(xcnt,ycnt)の画素値に、初期インデックスカウンタidxcntを上書きする。
更に、インデックス生成部321は、アドレスaddrにインデックスtmpidx[coladr]を代入し(S46)、座標テーブル更新処理のサブルーチン(図17参照)を呼び出すことによって、分離座標テーブルをアドレスaddrについて更新する(S47)。
【0103】
図19(a)に示すように、第1の注目画素(2,2)に対応付けられたインデックスtmpidx[coladr]=1である。このため、S45の処理を実行することによって、図8(b)に示すように、分離インデックス画像における座標(2,2)の画素の画素値が“1”になる。また、S47の処理を実行することによって、図19(b)に示すように分離座標テーブルが更新される。この結果、分離座標テーブルでは、アドレス“1”に関連付けて、最小x座標値“2”、最小y座標値“2”、最大x座標値“2”、及び最大y座標値“2”が記憶される。
【0104】
更にまた、インデックス生成部321は、インデックスカラーテーブル更新処理のサブルーチン(後述する図21参照)を呼び出すことによって、分離インデックスカラーテーブルをアドレスaddrについて更新する(S48)。
図19(a)に示すように、第1の注目画素(2,2)に対応付けられたインデックスtmpidx[coladr]=1である。このため、S48の処理を実行することによって、図19(c)に示すように分離インデックスカラーテーブルが更新される。S48の処理の実行以前は、アドレス“1”に関連付けられた色情報はRGB値(0,0,0)であり、画素数は“0”であるため、S48の処理の結果、分離インデックスカラーテーブルでは、アドレス“1”に関連付けて、RGB値(128,0,128)と画素数“1”とが記憶される。
【0105】
図21は、インデックスカラーテーブル更新処理のサブルーチンの処理の手順を示すフローチャートである。
インデックス生成部321は、分離インデックスカラーテーブルを参照して、アドレスaddrに関連付けられている画素数が“0”であるか否かを判定する(S51)。S51の判定処理は、初期インデックステーブルの初期インデックス“addr”に対応付けられたRGB値が未登録であるか登録済みであるかを判定する処理である。
【0106】
画素数が“0”である場合(S51でYES)、RGB値は未登録であるため、インデックス生成部321は、注目画素(xcnt,ycnt)のRGB値を分離インデックスカラーテーブルに記憶させ(S52)、画素数をインクリメントして(S53)、インデックスカラーテーブル更新処理のサブルーチンの処理を終了し、処理をメインルーチンへ戻す。
【0107】
S52の処理を実行する場合、初期インデックス“addr”に対応付けるべきRGB各色の色強度rcol[addr],gcol[addr],bcol[addr]は、注目画素(xcnt,ycnt)の色強度rcol[注目画素],gcol[注目画素],bcol[注目画素]を用いて、以下の式(8)〜(10)のように算出される。
rcol[addr]←rcol[注目画素]…(8)
gcol[addr]←gcol[注目画素]…(9)
bcol[addr]←bcol[注目画素]…(10)
【0108】
画素数が“0”ではない場合(S51でNO)、RGB値は登録済みであるため、インデックス生成部321は、分離インデックスカラーテーブルからアドレスaddrに関連付けられているRGB値を読み出し、読み出したRGB値と注目画素(xcnt,ycnt)のRGB値とに基づき、RGB各色の色強度の平均値を算出する(S54)。
次いで、インデックス生成部321は、S54で算出したRGB各色の色強度の平均値をアドレスaddrに関連付けて分離インデックスカラーテーブルに記憶させ(S55)、処理をS53へ移す。
【0109】
S54の処理を実行する場合、初期インデックス“addr”に対応付けるべきRGB各色の色強度rcol[addr],gcol[addr],bcol[addr]は、既に初期インデックス“addr”に対応付けられているRGB各色の色強度rcol[addr],gcol[addr],bcol[addr]を用いて、以下の式(11)〜(13)のように算出される。
rcol[addr]←{rcol[addr]+rcol[注目画素]}/2…(11)
gcol[addr]←{gcol[addr]+gcol[注目画素]}/2…(12)
bcol[addr]←{bcol[addr]+bcol[注目画素]}/2…(13)
【0110】
ところで、S54の処理は非常に簡易であるが、平均値を算出する都度、色強度rcol[addr],gcol[addr],bcol[addr]が誤差を含んでしまう虞がある。
このような不都合を回避するためには、例えば、S54の処理で、インデックス生成部321が、前述の式(11)〜(13)の代わりに、以下の式(14)〜(16)を用いて色強度rcol[addr],gcol[addr],bcol[addr]を算出し、算出した色強度rcol[addr],gcol[addr],bcol[addr]を、S55の処理で分離インデックスカラーテーブルに記憶させることが考えられる。
【0111】
rcol[addr]←rcol[addr]+rcol[注目画素]…(14)
gcol[addr]←gcol[addr]+gcol[注目画素]…(15)
bcol[addr]←bcol[addr]+bcol[注目画素]…(16)
このような式(14)〜(16)は、注目画素(xcnt,ycnt)の色強度を単純に加算したものである。
【0112】
そして、インデックス生成部321は、S13でNOの場合、即ち1枚分の画像データの入力が全て終了した場合に、分離インデックスカラーテーブルを更新する処理を実行する。このとき、インデックス生成部321は、変数tempad=1,2,…を順に発生させ、分離インデックスカラーテーブルにおいて、アドレスtempadに関連付けられた画素数cnt [tempad]を用い、最終的な色強度rcol[tempad],gcol[tempad],bcol[tempad]を、以下の式(17)〜(19)のように算出する。最後に、インデックス生成部321は、算出した色強度rcol[tempad],gcol[tempad],bcol[tempad]を、分離インデックスカラーテーブルに記憶させる。
【0113】
rcol[tempad]←rcol[tempad]/cnt [tempad]…(17)
gcol[tempad]←gcol[tempad]/cnt [tempad]…(18)
bcol[tempad]←bcol[tempad]/cnt [tempad]…(19)
【0114】
図15に示すS48の処理が終了することによって、注目画素(xcnt,ycnt)に対する処理が終了する。そこで、インデックス生成部321は、処理を図14に示すS21へ戻す。この後、インデックス生成部321は、S21で主走査カウンタxcntをインクリメントしてから、注目画素(xcnt,ycnt)について、S15以降の処理を実行する。
【0115】
図15に示すように、インデックスtmpidx[coladr]が“0”ではない場合(S43でNO)、インデックスtmpidx[coladr]は登録済みである。このため、インデックス生成部321は、図16に示すように、アドレスaddrにインデックスtmpidx[coladr]を代入し(S61)、分離座標テーブルを参照して、アドレスaddrに関連付けられている最大y座標値ymax[addr]を読み出す(S62)。
次いで、インデックス生成部321は、副走査カウンタycntから最大y座標値ymax[addr]を減算した結果を第1最小距離Δy1に代入し(S63)、第1最小距離Δy1が所定の第1閾値lm_y1 より大きいか否かを判定する(S64)。
ここで、本実施の形態では、第1閾値lm_y1 =3とする。
【0116】
図22は、注目画素(xcnt,ycnt)と副走査方向の第1最小距離Δy1との関係を示す模式図である。
注目画素(xcnt,ycnt)は、画像上の座標(xcnt,ycnt)で位置が指定される。注目画素(xcnt,ycnt)のインデックスは、初期インデックステーブルを参照すればわかるように、インデックスtmpidx[coladr]である。
図22中にハッチングで示した領域は、注目画素(xcnt,ycnt)のインデックスと同一のインデックス(以下、同一インデックスという)が対応付けられている画素が占める領域である。この領域に含まれる画素の座標の最小値及び最大値が、最小x座標値xmin[addr]、最小y座標値ymin[addr]、最大x座標値xmax[addr]、及び最大y座標値ymax[addr]である。ただし、図22中は「[addr]」の記載は省略してある。
【0117】
本実施の形態においては、この領域に含まれる画素の内でy座標が最大値である画素と注目画素(xcnt,ycnt)とのy座標値の差を、副走査方向の第1最小距離Δy1としている。注目画素(xcnt,ycnt)は座標(0,0)の位置から順に選択されるので、第1最小距離Δy1は、注目画素(xcnt,ycnt)と、選択済みの画素の内で同一インデックスが対応付けられた画素との間の最小距離となる。
【0118】
図20(a)に示すように、coladr=48である第2の注目画素(10,16)は、インデックスtmpidx[coladr]=2である。このため、S61の処理で、アドレスaddrに“2”が代入され、S62の処理で、図20(a)に示す分離座標テーブルが参照されて、最大y座標値ymax[addr]=7が読み出される。更に、S63の処理で、第1最小距離Δy1=16−7=9が算出されて、S64で、第1最小距離Δy1が第1閾値lm_y1 より大きいと判定される。
【0119】
つまり、S64の判定処理は、注目画素(xcnt,ycnt)が、同一インデックスを対応付けられた他の画素から第1距離より離隔しているか否かを判定する処理である。
第1最小距離Δy1>第1閾値lm_y1 である場合(S64でYES)、インデックス生成部321は、処理を図15に示すS44へ移す。
【0120】
図20(b),(c)に示すように、第2の注目画素(10,16)を処理する直前の初期インデックスカウンタidxcntの値は“5”であるため、S44の処理で、初期インデックスカウンタidxcntの値は“6”になる。
従って、図20(a)に示すように、coladr=48である第2の注目画素(10,16)には、初期インデックス“2”ではなく、分離インデックス“6”が新規に付与される。このため、S45の処理を実行することによって、図8(b)に示すように分離インデックス画像における座標(10,16)の画素の画素値が“6”になる。座標(10,16)の画素に、画素値“2”が与えられることはない。
【0121】
更に、S47の処理を実行することによって、図20(b)に示すように分離座標テーブルが更新される。この結果、分離座標テーブルでは、アドレス“6”に関連付けて、最小x座標値“10”、最小y座標値“16”、最大x座標値“10”、及び最大y座標値“16”が記憶される。
【0122】
更にまた、S48の処理を実行することによって、図20(c)に示すように分離インデックスカラーテーブルが更新される。S48の処理の実行以前は、アドレス“6”に関連付けられた色情報はRGB値(0,0,0)であり、画素数は“0”であるため、S48の処理の結果、分離インデックスカラーテーブルでは、アドレス“6”に関連付けて、RGB値(0,0,255)と画素数“1”とが記憶される。
分離座標テーブル及び分離インデックスカラーテーブルにおいて、アドレス“2”に関連付けられている各種の数値は変更されない。
【0123】
以上のようにインデックスの分離が行なわれた後で、注目画素(xcnt,ycnt)に初期インデックス“2”が対応付けられることはない。何故ならば、第2の注目画素(10,16)以降に選択される注目画素(xcnt,ycnt)と、インデックス“2”が対応付けられている画素との第1最小距離Δy1は、常に第1閾値lm_y1 よりも大きいからである。
【0124】
図16に示すように、第1最小距離Δy1≦第1閾値lm_y1 である場合(S64でNO)、インデックス生成部321は、分離インデックス画像を更新する(S65)。具体的には、インデックス生成部321は、分離インデックス画像における注目画素(xcnt,ycnt)の画素値に、インデックスtmpidx[coladr]を上書きする。
S65の処理の終了後、インデックス生成部321は、処理を図15に示すS47へ移す。
【0125】
ところで、分離インデックスカラーテーブルに記憶されている分離インデックスは、デフォルト値のままでよい。何故ならば、S13でNOの場合、即ち1枚分の画像データの入力が全て終了した場合に、分離インデックスカラーテーブル及び分離座標テーブル夫々のアドレスは、分離インデックスに等しいからである。
【0126】
図5に示すインデックス統合部322では、分離インデックス画像のデータ、分離インデックステーブル、分離インデックスカラーテーブル、及び分離座標テーブルに基づいて、インデックス統合処理が実行される。インデックス統合部322は、本発明における識別子統合手段に対応する。
【0127】
インデックス統合処理では、インデックス対応処理及びインデックス分離処理の実行によって異なる識別子が対応付けられた画素の内、色同士が所定の範囲内で近似し、且つ、画像上で所定の第2距離より近接している画素間でインデックスを統合することがなされる。本実施の形態では、この第2距離として、後述する図23に示す第2最小距離Δy2を用いる。
インデックス統合部322からは、図12及び図13に示す統合インデックステーブル、統合インデックスカラーテーブル、及び統合座標テーブルが出力される。
【0128】
図23は、異なるインデックスが対応付けられた2個の領域と副走査方向の第2最小距離Δy2との関係を示す模式図である。
図23中に右上がりのハッチングで示した領域は、分離インデックステーブルに記憶されている一の分離インデックスが対応付けられている画素が占める領域(以下、第1領域I1という)である。一方、右下がりのハッチングで示した領域は、一の分離インデックスとは異なる他の分離インデックスが対応付けられている画素が占める領域(以下、第2領域I2という)である。ただし、第1領域I1の分離インデックスに関連付けられたアドレスは、第2領域I2の分離インデックスに関連付けられたアドレスよりも小さいものとする。
【0129】
第1領域I1に含まれる画素の座標の最小値及び最大値は、最小x座標値xmin1 、最小y座標値ymin1 、最大x座標値xmax1 、及び最大y座標値ymax1 である。また、この画素の画素数は画素数cnt1である。
第2領域I2に含まれる画素の座標の最小値及び最大値は、最小x座標値xmin2 、最小y座標値ymin2 、最大x座標値xmax2 、及び最大y座標値ymax2 である。この画素の画素数は画素数cnt2である。
最小x座標値xmin1 ,xmin2 、最小y座標値ymin1 ,ymin2 、最大x座標値xmax1 ,xmax2 、最大y座標値ymax1 ,ymax2 、及び画素数cnt1,cnt2は、分離インデックステーブル及び分離座標テーブルを参照すれば容易にわかる。
【0130】
本実施の形態においては、第1領域I1の最大y座標値ymax1 と第2領域I2の最小y座標値ymin2 との差を、副走査方向の第2最小距離Δy2としている。
一の分離インデックスに関連付けられた第1の色と、他の分離インデックスに関連付けられた第2の色とは、分離インデックステーブル及び分離インデックスカラーテーブルを参照すれば容易にわかる。
第1の色と第2の色とが近似しており、且つ、第2最小距離Δy2が所定の第2閾値lm_y2 以下である場合は、インデックスの統合が行なわれる。このとき、インデックスの統合による画質の劣化を抑制するために、第1領域I1の画素数cnt1と第2領域I2の画素数cnt2とを比較し、少ない方が多い方に統合されるようにする。
【0131】
第1の色と第2の色とが近似していない場合、インデックスの統合は行なわれない。また、第1の色と第2の色とが近似している場合であっても、第2最小距離Δy2が所定の第2閾値lm_y2 より大きい場合は、インデックスの統合は行なわれない。
【0132】
図24及び図25は、インデックス統合部322が行なう処理の手順を示すフローチャートである。
インデックス統合部322は、カウンタi に“1”をセットする(S71)。カウンタi は、第1のインデックス“i ”を示す。
次に、インデックス統合部322は、カウンタi が初期インデックスカウンタidxcnt以下であるかどうかを判定する(S72)。
初期インデックスカウンタidxcntの値は、分離インデックステーブルに記憶されている分離インデックスの個数である。従って、i >idxcntである場合(S72でNO)、全ての分離インデックスに対する処理が終わったため、インデックス統合部322は、本処理を終了する。
【0133】
i ≦idxcntである場合(S72でYES)、インデックス統合部322は、下記の式(20)を用いて、カウンタj を演算する(S73)。カウンタj は、第1のインデックス“i ”と色情報同士を比較すべき第2のインデックス“j ”を示す。
j =i +1…(20)
【0134】
次に、インデックス統合部322は、カウンタj が初期インデックスカウンタidxcnt以下であるかどうかを判定する(S74)。
j >idxcntである場合(S74でNO)、第1のインデックス“i ”と全ての分離インデックスとの色情報同士の比較が終わったため、インデックス統合部322は、カウンタi をインクリメントして(S75)、処理をS72へ戻す。
【0135】
j ≦idxcntである場合(S74でYES)、インデックス統合部322は、分離インデックステーブル及び分離インデックスカラーテーブルを参照して、第1のインデックス“i ”の色情報と第2のインデックス“j ”の色情報とを読み出す(S76)。具体的には、インデックス統合部322は、分離インデックスカラーテーブルを参照し、カウンタi をアドレスとしてRGB各色の色強度rcol[i ],gcol[i ],bcol[i ]を読み出し、カウンタj をアドレスとしてRGB各色の色強度rcol[j ],gcol[j ],bcol[j ]を読み出す。
【0136】
次に、インデックス統合部322は、第1のインデックス“i ”の色情報と第2のインデックス“j ”の色情報とが所定範囲内で近似しているか否かを判定する。
このために、インデックス統合部322は、下記の式(21)を用いて、演算結果Δcol を演算する(S77)。演算結果Δcol とは、第1のインデックス“i ”及び第2のインデックス“j ”夫々のRGB各色の色強度の差の絶対値の加算結果である。
【0137】
Δcol =|rcol[i ]−rcol[j ]|
+|gcol[i ]−gcol[j ]|
+|bcol[i ]−bcol[j ]|…(21)
【0138】
演算結果Δcol が所定範囲内である場合、インデックス統合部322は、第1のインデックス“i ”の色情報と第2のインデックス“j ”の色情報とが所定範囲内で近似していると判定する。
このために、インデックス統合部322は、図25に示すように、演算結果Δcol が閾値th_col以下であるか否かを判定する(S78)。本実施の形態では、閾値th_col=40とする。
【0139】
以下に具体例を述べる。図10(b)に示す分離インデックスカラーテーブルにおいて、カウンタ“5”をアドレスとして色情報を読み出した場合、色強度rcol[5]は“120”、gcol[5]は“240”、bcol[5]は“120”である。また、カウンタ“7”をアドレスとして色情報を読み出した場合、色強度rcol[7]は“135”、gcol[7]は“240”、bcol[7]は“135”である。従って、演算結果Δcol は式(22)のように演算される。
【0140】
Δcol =|rcol[5]−rcol[7]|
+|gcol[5]−gcol[7]|
+|bcol[5]−bcol[7]|
=|120−135|+|240−240|+|120−135|
=30…(22)
演算結果Δcol は“30”、即ち閾値th_col=40以下であるため、インデックス統合部322は、第1のインデックス“5”の色情報と第2のインデックス“7”の色情報とが所定範囲内で近似していると判定する。
【0141】
Δcol ≦th_col以下である場合(S78でYES)、インデックス統合部322は、第1のインデックス“i ”と第2のインデックス“j ”とを統合候補とし、第1のインデックス“i ”が対応付けられている画素と第2のインデックス“j ”が対応付けられている画素とが第2距離より近接しているか否かを判定する。
【0142】
このために、インデックス統合部322は、分離インデックステーブル及び分離座標テーブルを参照して、第1のインデックス“i ”が対応付けられている画素の最大y座標値ymax[i ]と第2のインデックス“j ”が対応付けられている画素の最小y座標値ymin[j ]とを読み出す(S79)。具体的には、インデックス統合部322は、分離座標テーブルを参照し、カウンタi をアドレスとして最大y座標値ymax[i ]を読み出し、カウンタj をアドレスとして最小y座標値ymin[j ]を読み出す。
【0143】
次に、インデックス統合部322は、式(23)を用いて、第2最小距離Δy2を演算する(S80)。
Δy2=ymin[j ]−ymax[i ]…(23)
次いで、インデックス統合部322は、第2最小距離Δy2が所定の第2閾値lm_y2 より大きいか否かを判定する(S81)。
ここで、本実施の形態では、第2閾値lm_y2 =3とする。
【0144】
以下に具体例を述べる。図11に示す分離座標テーブルにおいて、カウンタ“5”をアドレスとして読み出される最大y座標値ymax[5]は“18”であり、カウンタ“7”をアドレスとして読み出される最大y座標値ymax[7]は“18”である。従って、第2最小距離Δy2=18−18=0、即ち第2閾値lm_y2 =3以下であるため、インデックス統合部322は、第1のインデックス“5”が対応付けられた画素と第2のインデックス“7”が対応付けられた画素とが画像上で所定の第2距離より近接していると判定する。
【0145】
Δy2≦lm_y2 である場合(S81でNO)、インデックス統合部322は、第1のインデックス“i ”と第2のインデックス“j ”との統合を決定し、第1のインデックス“i ”を第2のインデックス“j ”に統合するか、第2のインデックス“j ”を第1のインデックス“i ”に統合するかを判定する。
【0146】
このために、インデックス統合部322は、分離インデックステーブル及び分離インデックスカラーテーブルを参照して、第1のインデックス“i ”が対応付けられている画素数cnt [i ]と第2のインデックス“j ”が対応付けられている画素数cnt [j ]とを読み出す(S82)。具体的には、インデックス統合部322は、分離インデックスカラーテーブルを参照し、カウンタi をアドレスとして画素数cnt [i ]を読み出し、カウンタj をアドレスとして画素数cnt [j ]を読み出す。
更に、インデックス統合部322は、第1のインデックス“i ”が対応付けられている画素数cnt [i ]が、第2のインデックス“j ”が対応付けられている画素数cnt [j ]以上であるか否かを判定する(S83)。
【0147】
以下に具体例を述べる。図10(b)に示す分離インデックスカラーテーブルにおいて、カウンタ“5”をアドレスとして読み出される画素数cnt [5]は“11”であり、カウンタ“7”をアドレスとして読み出される画素数cnt [5]は“2”である。従って、cnt [5]≧cnt [7]であるため、インデックス統合部322は、第1のインデックス“5”に、第2のインデックス“7”を統合すると判定する。
【0148】
cnt [i ]≧cnt [j ]である場合(S83でYES)、第1のインデックス“i ”に第2のインデックス“j ”を統合べく、インデックス統合部322は、カウンタk1,k2にカウンタi ,j を代入して(S84)、各種テーブル更新処理のサブルーチン(後述する図26及び図27参照)を呼び出すことによって(S85)、インデックスを統合する。
cnt [i ]<cnt [j ]である場合(S83でNO)、第2のインデックス“j ”に第1のインデックス“i ”を統合べく、インデックス統合部322は、カウンタk1,k2にカウンタj ,i を代入して(S86)、処理をS85へ移す。
【0149】
S85の処理完了後、インデックス統合部322は、後述するS87の処理を実行する。
また、Δcol >th_colである場合(S78でNO)、インデックス統合部322は、第1のインデックス“i ”と第2のインデックス“j ”とを統合せず、S87の処理を実行する。更にまた、Δy2>lm_y2 である場合(S81でYES)、インデックス統合部322は、第1のインデックス“i ”と第2のインデックス“j ”とを統合せず、S87の処理を実行する。
インデックス統合部322は、カウンタj をインクリメントし(S87)、処理を図24に示すS74へ戻す。
【0150】
図26及び図27は、各種テーブル更新処理のサブルーチンの処理の手順を示すフローチャートである。
図26に示すように、インデックス統合部322は、分離インデックステーブルにおいて、カウンタk2をアドレスとするインデックスidx [k2]に、カウンタk1をアドレスとして読み出されるインデックスidx [k1]を代入する(S101)。S101の処理によって、分離インデックステーブルが更新される。
【0151】
次に、インデックス統合部322は、分離インデックスカラーテーブルにおいて、カウンタk1,k2をアドレスとして画素数cnt [k1],cnt [k2]を読み出し(S102)、読み出された画素数cnt [k1]と画素数cnt [k2]とを加算した加算結果を、カウンタk1に関連付けられた画素数cnt [k1]に代入し(S103)、更に、カウンタk2に関連付けられた画素数cnt [k2]をデフォルト値“0”にリセットする(S104)。
次いで、インデックス統合部322は、分離インデックスカラーテーブルにおいて、カウンタk2に関連付けられたRGB各色の色強度rcol[k2],gcol[k2],bcol[k2]夫々をデフォルト値“0”にリセットする(S105)。S102〜S105の処理によって、分離インデックステーブルが更新される。
【0152】
以下では、分離座標テーブルにおいて、アドレス“k1”に関連付けられている最小x座標値、最小y座標値、最大x座標値、及び最大y座標値を、最小x座標値xmin[k1]、最小y座標値ymin[k1]、最大x座標値xmax[k1]、及び最大y座標値ymax[k1]と記載する。同様に、アドレス“k2”に関連付けられている最小x座標値、最小y座標値、最大x座標値、及び最大y座標値を、最小x座標値xmin[k2]、最小y座標値ymin[k2]、最大x座標値xmax[k2]、及び最大y座標値ymax[k2]と記載する。
【0153】
図27に示すように、インデックス統合部322は、分離座標テーブルに記録された最小x座標値xmin[k1]が最小x座標値xmin[k2]より大きいか否かを判定する(S106)。
最小x座標値xmin[k1]が最小x座標値xmin[k2]より大きい場合(S106でYES)、インデックス統合部322は、アドレス“k1”に関連付けられた最小x座標値xmin[k1]に最小x座標値xmin[k2]を代入する(S107)。
【0154】
S107が終了した場合、又はS106で最小x座標値xmin[k1]が最小x座標値xmin[k2]以下である場合(S106でNO)、インデックス統合部322は、分離座標テーブルに記録された最小y座標値ymin[k1]が最小y座標値ymin[k2]より大きいか否かを判定する(S108)。
最小y座標値ymin[k1]が最小y座標値ymin[k2]より大きい場合(S108でYES)、インデックス統合部322は、アドレス“k1”に関連付けられた最小y座標値ymin[k1]に最小y座標値ymin[k2]を代入する(S109)。
【0155】
S109が終了した場合、又はS108で最小y座標値ymin[k1]が最小y座標値ymin[k2]以下である場合(S108でNO)、インデックス統合部322は、分離座標テーブルに記録された最大x座標値xmax[k1]が最大x座標値xmax[k2]より小さいか否かを判定する(S110)。
最大x座標値xmax[k1]が最大x座標値xmax[k2]より小さい場合(S110でYES)、インデックス統合部322は、アドレス“k1”に関連付けられた最大x座標値xmax[k1]に最大x座標値xmax[k2]を代入する(S111)。
【0156】
S111が終了した場合、又はS110で最大x座標値xmax[k1]が最大x座標値xmax[k2]以上である場合(S110でNO)、インデックス統合部322は、分離座標テーブルに記録された最大y座標値ymax[k1]が最大y座標値ymax[k2]より小さいか否かを判定する(S112)。
最大y座標値ymax[k1]が最大y座標値ymax[k2]より小さい場合(S112でYES)、インデックス統合部322は、アドレス“k1”に関連付けられた最大y座標値ymax[k1]に最大y座標値ymax[k2]を代入する(S113)。
【0157】
S113が終了した場合、又はS112で最大y座標値ymax[k1]が最大y座標値ymax[k2]以上である場合(S112でNO)、インデックス統合部322は、カウンタk2に関連付けられた最小x座標値xmin[k2]、最小y座標値ymin[k2]、最大x座標値xmax[k2]、及び最大y座標値ymax[k2]をデフォルト値にリセットする(S114)。S106〜S114の処理によって、分離座標テーブルが更新される。
S114の処理終了後、インデックス統合部322は、座標テーブル更新処理のサブルーチンの処理を終了し、処理をメインルーチンへ戻す。
【0158】
以下に具体例を述べる。第1のインデックス“5”に、第2のインデックス“7”を統合する場合、S101の処理が実行されることによって、図10(a)に示す分離インデックステーブルにおいて、アドレス“7”に関連付けられたインデックス“7”が、カウンタ“5”をアドレスとして読み出されるインデックス“5”で上書きされる。
従って、カウンタ“7”をアドレスとして、図12(a)に示す統合インデックステーブルを参照した場合、分離インデックステーブルを参照した場合とは異なり、読み出されるインデックスは“5”である。
一方、カウンタ“5”をアドレスとして、統合インデックステーブルを参照した場合、分離インデックステーブルを参照した場合と同様に、読み出されるインデックスは“5”である。
【0159】
また、S103及びS104の処理が実行されることによって、図10(b)に示す分離インデックスカラーテーブルにおいて、アドレス“5”に関連付けられた画素数“11”が、カウンタ“7”をアドレスとして読み出される画素数“2”との加算結果“13”で上書きされる。アドレス“5”に係る上書きの終了後、カウンタ“7”に関連付けられた画素数“2”が、デフォルト値“0”で上書きされる。
従って、カウンタ“5”,“7”をアドレスとして、図12(b)に示す統合インデックスカラーテーブルを参照した場合、分離インデックステーブルを参照した場合とは異なり、読み出される画素数は“13”,“0”である。
【0160】
更に、S105の処理が実行されることによって、図10(b)に示す分離インデックスカラーテーブルにおいて、カウンタ“7”に関連付けられたRGB値(135,240,135)が、デフォルトのRGB値(0,0,0)で上書きされる。
従って、カウンタ“7”をアドレスとして、図12(b)に示す統合インデックステーブルを参照した場合、分離インデックステーブルを参照した場合とは異なり、読み出されるRGB値はRGB値(0,0,0)である。
一方、カウンタ“5”をアドレスとして、統合インデックステーブルを参照した場合、分離インデックステーブルを参照した場合と同様に、読み出されるRGB値はRGB値(120,240,120)である。
【0161】
更にまた、S106〜S114の処理によって、図11に示す分離座標テーブルにおいて、アドレス“5”に関連付けられた最大x座標値xmax[5]及び最大y座標値ymax[5]はアドレス“7”に関連付けられた最大x座標値xmax[7]及び最大y座標値ymax[7]に置き換えられ、アドレス“7”に関連付けられた最小x座標値xmin[7]、最小y座標値ymin[7]、最大x座標値xmax[7]、及び最大y座標値ymax[7]は夫々デフォルト値にリセットされる。
【0162】
従って、カウンタ“5”をアドレスとして、図13に示す統合座標テーブルを参照した場合、分離座標テーブルを参照した場合とは異なり、読み出される最小x座標値xmin[5]、最小y座標値ymin[5]、最大x座標値xmax[5]、及び最大y座標値ymax[5]は、“1”、“14”、“4”、及び“19”となる。
同様に、カウンタ“7”をアドレスとして、統合座標テーブルを参照した場合、分離座標テーブルを参照した場合とは異なり、読み出される最小x座標値xmin[7]、最小y座標値ymin[7]、最大x座標値xmax[7]、及び最大y座標値ymax[7]は、“4095”、“8191”、“0”、及び“0”となる。
【0163】
図26に示すように、本実施の形態における各種テーブル更新処理では、カウンタk1に関連付けられたRGB各色の色強度rcol[k1],gcol[k1],bcol[k1]夫々は、元の値のまま維持される。しかしながら、インデックス統合部322が、S103〜S105の処理を実行する前に、色強度rcol[k1],gcol[k1],bcol[k1]を再計算して更新する構成でもよい。この場合、色強度rcol[k1],gcol[k1],bcol[k1]は、以下の式(24)〜(27)を用いて演算される。
【0164】
cnt12 =cnt [k1]+cnt [k2]…(24)
rcol[k1]={rcol[k1]×cnt [k1]+rcol[k2]×cnt [k2]}/cnt12 …(25)
gcol[k1]={gcol[k1]×cnt [k1]+gcol[k2]×cnt [k2]}/cnt12 …(26)
bcol[k1]={bcol[k1]×cnt [k1]+bcol[k2]×cnt [k2]}/cnt12 …(27)
【0165】
以上のような式(24)〜(27)を用いて求められた新たな色強度rcol[k1],gcol[k1],bcol[k1]を求める場合、求められた新たな色強度rcol[k1],gcol[k1],bcol[k1]には、元の色強度rcol[k1],gcol[k1],bcol[k1]及び元の色強度rcol[k2],gcol[k2],bcol[k2]夫々が、元の画素数cnt [k1],cnt [k2]の多寡に応じて反映されている。
このため、インデックス統合部322は、画素数が少ないインデックスを、画素数が多いインデックスへ統合する構成(即ち、図25に示すS83と、S84及びS86のいずれか一方を実行する構成)に限定されず、単に、アドレス“j ”のインデックスを、アドレス“i ”のインデックスに統合する構成(即ち、S83及びS86を実行せず、常にS84を実行する構成)であってもよい。
【0166】
以上のような処理を実行することによって、図24に示すS72でNOの場合、即ち全ての分離インデックスに対する処理が終わった場合、図10(a)に示す分離インデックステーブル、図10(b)に示す分離インデックスカラーテーブル、及び図11に示す分離座標テーブルは、図12(a)に示す統合インデックステーブル、図12(b)に示す統合インデックスカラーテーブル、及び図13に示す統合座標テーブルになっている。
【0167】
インデックスの統合後、統合インデックステーブルに記憶されているインデックスの個数が、予め定められているインデックスの上限数よりも多い場合は、統合インデックステーブル、統合インデックスカラーテーブル、及び統合座標テーブルを分離インデックステーブル、分離インデックスカラーテーブル、及び分離座標テーブルと看做し、また、閾値th_col及び/又は第2閾値lm_y2を増加させて(即ち統合の条件を緩和して)、インデックス統合部322が、再び図24及び図25に示す処理を実行すればよい。このとき、各種データを、前段の処理(インデックス生成部321で実行される処理)へ戻す必要はない。
【0168】
図5に示すインデックス補正部323では、分離インデックス画像のデータ、統合インデックステーブル、統合インデックスカラーテーブル、及び統合座標テーブルに基づいて、インデックス補正処理が実行される。
インデックス補正処理では、統合インデックス画像(即ち前景レイヤ)のデータが生成される。
【0169】
具体的には、インデックス補正部323は、例えば図14に示すS12〜S16と同様の処理を実行して、分離インデックス画像における注目画素(xcnt,ycnt)を順に選択する。次いで、インデックス補正部323は、分離インデックス画像のデータに基づき、注目画素(xcnt,ycnt)の画素値(即ち分離インデックス)を読み出す。更に、インデックス補正部323は、統合インデックステーブルを参照し、読み出した分離インデックスをアドレスとして、統合インデックスを読み出す。最後に、インデックス補正部323は、読み出した統合インデックスを、注目画素(xcnt,ycnt)の画素値に上書きする。
以上の処理の結果、図8に示す分離インデックス画像は、図9に示す統合インデックス画像になる。
【0170】
なお、インデックス補正部323が行なう処理を、インデックス統合部322が、図24に示すS72でNOの場合(即ち全ての分離インデックスに対する処理が終わった場合)に実行する構成でもよい。この場合、前景色インデックス化処理部32に、インデックス補正部323を設ける必要はない。
【0171】
また、前景色インデックス化処理部32が、インデックス生成部321の代わりに、インデックス対応処理を実行するインデックス対応部と、インデックス分離処理を実行するインデックス分離部とを備える構成でもよい。
しかしながら、仮に、このように構成した場合、初期インデックスと分離インデックスとの関係、及び分離インデックスと統合インデックスとの関係の両方を記憶しておく必要がある。従って、前景色インデックス化処理部32は、記憶容量が大きなメモリを備えておかなければならない。また、インデックス同士の関連を管理する処理が煩雑である。
【0172】
一方、本実施の形態の構成では、インデックス生成部321内で、インデックスの対応付け処理の直後にインデックスの分離処理が連続的に実行される。換言すれば、全画素に対して初期インデックスを対応付け終える前に、各画素に分離インデックスを対応付けることができる。このため、前景色インデックス化処理部32は、分離インデックスと統合インデックスとの関係を記憶することが可能な記憶容量を有するメモリを備えておけばよい。また、インデックス同士の関連を管理する処理が簡易である。
【0173】
ところで、本実施の形態では、前景色インデックス化処理部32が、各画素に対するインデックスの対応付けと、画素間の距離に基づくインデックスの分離と、近似色及び画素間の距離に基づくインデックスの統合とをこの順で実行する。
仮に、前景色インデックス化処理部32が、各画素に対するインデックスの対応付けと、近似色及び画素間の距離に基づくインデックスの統合と、画素間の距離に基づくインデックスの分離とをこの順で実行する場合、以下のような不都合が生じる虞がある。
【0174】
画質の劣化を防止するためには、最も近似している色同士を統合する必要がある。このため、一旦、全画素に対して初期インデックスを対応付ける必要がある。つまり、インデックスの対応付け処理と統合処理とを連続的に実行することができない。
また、統合処理の後で分離処理を行なうため、分離後にインデックスの個数が過剰に増加する虞がある。この場合、再び統合処理を行なって(即ち、各種データを前段の処理へ戻して)インデックスの個数を減少させる必要があるため、各種データの管理が煩雑になる。
【0175】
図28は、注目画素(xcnt,ycnt)と主走査方向の第1最小距離Δx1との関係を示す模式図である。図29は、図28に示す画像を90°右回転させた画像における注目画素(xcnt,ycnt)と副走査方向の第1最小距離Δx1との関係を示す模式図である。
また、図30は、注目画素(xcnt,ycnt)と主走査方向の第1最小距離Δx1及び副走査方向の第1最小距離Δy1との関係を示す模式図である。
図28〜図30夫々に示す画像は、図22に示す画像に対応する。
【0176】
インデックス生成部321は、図14〜図16に示す処理を実行する場合に、図22に示す第1最小距離Δy1を用いる代わりに、図28に示す第1最小距離Δx1を用いる構成でもよい。このとき、インデックス生成部321は、図16に示すS62の処理で、分離座標テーブルを参照して、アドレスaddrに関連付けられている最大x座標値xmax[addr]を読み出し、S63の処理で、主走査カウンタxcntから最大x座標値xmax[addr]を減算した結果を第1最小距離Δx1に代入し、S64の処理で、第1最小距離Δx1が所定の第1閾値lm_x1 より大きいか否かを判定する。
【0177】
第1最小距離Δx1>第1閾値lm_x1 である場合(S64でYES)、インデックス生成部321は、インデックスを分離すべく、処理をS44へ移す。第1最小距離Δx1≦第1閾値lm_x1 である場合(S64でNO)、インデックス生成部321は、インデックスを分離せずに、処理をS65へ移す。
【0178】
また、インデックス生成部321は、図14〜図16に示す処理を実行する場合に、第1最小距離Δy1及び第1最小距離Δy1のいずれか一方を用いる代わりに、図30に示す第1最小距離Δx1及び第1最小距離Δy1の両方を用いる構成でもよい。このとき、インデックス生成部321は、図16に示すS62の処理で、分離座標テーブルを参照して、最大x座標値xmax[addr]及び最大y座標値ymax[addr]夫々を読み出し、S63の処理で、第1最小距離Δx1及び第1最小距離Δy1夫々を演算し、S64の処理で、第1最小距離Δx1が所定の第1閾値lm_x1 より大きく、且つ、第1最小距離Δy1が所定の第1閾値lm_y1 より大きいか否かを判定する。
ここで、第1閾値lm_x1 は第1閾値lm_y1 と同値であってもよく、異なる値であってもよい。
【0179】
第1最小距離Δx1>第1閾値lm_x1 且つ第1最小距離Δy1>第1閾値lm_y1 である場合(S64でYES)、インデックス生成部321は、インデックスを分離すべく、処理をS44へ移す。第1最小距離Δy1≦第1閾値lm_y1 又は第1最小距離Δx1≦第1閾値lm_x1 である場合(S64でNO)、インデックス生成部321は、インデックスを分離せずに、処理をS65へ移す。
【0180】
ところで、図28に示した如き、主走査方向の第1最小距離Δx1を用いて画素間の距離を判定する処理は、カラー画像入力装置11が読み取った画像を画像処理によって90°右回転させる処理を、前景色インデックス化処理部32での処理以降に行なう際に有用である。
図29に示す画像の場合、副走査方向の第1最小距離Δx1は、図28に示す主走査方向の第1最小距離Δx1と同値になる。
画像を90°右回転させる処理は、カラー画像入力装置11が読み取った画像の上下を自動で判定した場合、又は使用者が操作パネル12を操作することによって画像を90°右回転させる指示を受け付けた場合に行なわれる。
【0181】
図31は、主走査方向の第1最小距離Δx1及び副走査方向の第1最小距離Δy1を用いて画素間の距離を判定するその他の条件を用いた処理の手順の一部を示すフローチャートである。
インデックス生成部321が、図14〜図16に示す処理を実行する場合に、図30に示す第1最小距離Δx1及び第1最小距離Δy1の両方を用いる構成であるとき、S64の処理を実行する代わりに、図31に示すS121〜S126の処理を実行する構成でもよい。
上述したように、インデックス生成部321は、図16に示すS63の処理で、第1最小距離Δx1及び第1最小距離Δy1夫々を演算する。
【0182】
次に、インデックス生成部321は、副走査方向の第1最小距離Δy1の値が所定の第1閾値lm_y1 より大きいか否かを判定する(S121)。
第1最小距離Δy1が第1閾値lm_y1 より大きい場合(S121でYES)、インデックス生成部321は、主走査カウンタxcntが最小x座標値xmin[addr]より小さいか否かを判定する(S122)。
主走査カウンタxcntが最小x座標値xmin[addr]より小さい場合(S122でYES)、インデックス生成部321は、インデックスを分離すべく、処理をS44へ移す。
【0183】
主走査カウンタxcntが最小x座標値xmin[addr]以上である場合(S122でNO)、インデックス生成部321は、主走査カウンタxcntが最大x座標値xmax[addr]より大きいか否かを判定する(S123)。
主走査カウンタxcntが最大x座標値xmax[addr]より大きい場合(S123でYES)、インデックス生成部321は、処理をS44へ移す。
【0184】
第1最小距離Δy1が第1閾値lm_y1 以下である場合(S121でNO)、又は、主走査カウンタxcntが最大x座標値xmax[addr]以下である場合(S123でNO)、インデックス生成部321は、主走査方向の第1最小距離Δx1の値が所定の第1閾値lm_x1 より大きいか否かを判定する(S124)。
第1最小距離Δx1が第1閾値lm_x1 より大きい場合(S124でYES)、インデックス生成部321は、副走査カウンタycntが最小y座標値ymin[addr]より小さいか否かを判定する(S125)。
副走査カウンタycntが最小y座標値ymin[addr]より小さい場合(S125でYES)、インデックス生成部321は、処理をS44へ移す。
【0185】
副走査カウンタycntが最小y座標値ymin[addr]以上である場合(S125でNO)、インデックス生成部321は、副走査カウンタycntが最大y座標値ymax[addr]より大きいか否かを判定する(S126)。
副走査カウンタycntが最大y座標値ymax[addr]より大きい場合(S126でYES)、インデックス生成部321は、処理をS44へ移す。
第1最小距離Δx1が第1閾値lm_x1 以下である場合(S124でNO)、又は、副走査カウンタycntが最大y座標値ymax[addr]以下である場合(S126でNO)、インデックス生成部321は、インデックスを分離せずに、処理をステップS65へ移す。
【0186】
図32は、S121〜S126の処理によってインデックスが分離される画素の範囲を示す模式図である。
図32中にハッチングで示した領域は、特定のインデックスが対応付けられた画素が占める領域(以下、特定領域という)である。図中に示すD1又はD2で示す範囲内に、特定領域内の画素と同一のインデックスが対応付けられた画素がある場合に、インデックスが分離され、新たなインデックスが画素に対応付けられる。
図中にD3で示す範囲内の画素は、特定領域内の画素よりも先に走査されるので、特定領域内の画素と同一のインデックスが対応付けられた画素は無い。
【0187】
以上のように、画素間の距離として主走査方向及び副走査方向の両方の距離を用いる処理を実行することによっても、インデックス生成部321は、画像上で所定の距離より離れた画素間には夫々別のインデックスを対応付け直しながら前景レイヤを作成することができる。画素間の距離として主走査方向及び副走査方向の両方の距離を用いる処理は、カラー画像入力装置11が読み取った画像を画像処理によって回転させる処理を行なう場合でも、画像を回転させない場合でも、同様の効果を奏する。
【0188】
インデックス生成部321は、使用者からの操作によって切り換えの指示を操作パネル12が受け付けた場合に、画素間の距離として副走査方向の距離を用いる処理と、主走査方向の距離を用いる処理と、主走査方向及び副走査方向の両方の距離を用いる処理とのいずれかを切り換える機能を備える。
【0189】
ところで、本実施の形態では、第1閾値lm_y1 及び第1閾値lm_x1 夫々が予め“3”に設定されている場合を例示しているが、実際には、カラー画像入力装置11が読み取った画像に適した閾値を用いればよい。
【0190】
例えば、副走査方向の第1閾値lm_y1 及び主走査方向の第1閾値lm_x1 として、副走査方向の画素数及び主走査方向の画素数の30%の値がインデックス生成部321に設定されるようにする。カラー画像入力装置11が、600dpiでA3サイズの画像を読み込んだ場合、副走査方向の画素数が“10000”、主走査方向の画素数が“7000”となるため、第1閾値lm_y1 =3000及び第1閾値lm_x1 =2100がインデックス生成部321に設定される。また、カラー画像入力装置11が、600dpiでA4サイズの画像を読み込んだ場合は、副走査方向の画素数が“7000”、主走査方向の画素数が“5000”となるため、第1閾値lm_y1 =2100及び第1閾値lm_x1 =1500となる。
【0191】
図33は、異なるインデックスが対応付けられた2個の領域と主走査方向の第2最小距離Δx2との関係を示す模式図である。図34は、図33に示す画像を90°右回転させた画像における、異なるインデックスが対応付けられた2個の領域と副走査方向の第2最小距離Δx2との関係を示す模式図である。
また、図35は、異なるインデックスが対応付けられた2個の領域と主走査方向の第2最小距離Δx2及び副走査方向の第2最小距離Δy2との関係を示す模式図である。
図33〜図35夫々に示す画像は、図23に示す画像に対応する。
【0192】
インデックス統合部322は、図24及び図25に示す処理を実行する場合に、図23に示す第2最小距離Δy2を用いる代わりに、図33に示す第2最小距離Δx2を用いる構成でもよい。このとき、インデックス統合部322は、図25に示すS79の処理で、分離座標テーブルを参照し、カウンタi をアドレスとして最大x座標値xmax[i ]を読み出し、カウンタj をアドレスとして最小x座標値xmin[j ]を読み出す。
次に、インデックス統合部322は、S80の処理で、式(28)を用いて、第2最小距離Δx2を演算する。
Δx2=xmin[j ]−xmax[i ]…(28)
【0193】
更に、インデックス統合部322は、S81の処理で、第2最小距離Δx2が所定の第2閾値lm_x2 より大きいか否かを判定する。
Δx2≦lm_x2 である場合(S81でNO)、インデックス統合部322は、第1のインデックス“i ”と第2のインデックス“j ”との統合を決定し、S82へ処理を移す。
一方、Δx2>lm_x2 である場合(S81でYES)、インデックス統合部322は、第1のインデックス“i ”と第2のインデックス“j ”とを統合せず、S87へ処理を移す。
【0194】
また、インデックス統合部322は、図24及び図25に示す処理を実行する場合に、第2最小距離Δx2及び第2最小距離Δy2のいずれか一方を用いる代わりに、図35に示す第2最小距離Δx2及び第2最小距離Δy2の両方を用いる構成でもよい。このとき、インデックス統合部322は、図25に示すS79の処理で、分離座標テーブルを参照し、カウンタi をアドレスとして最大x座標値xmax[i ]及び最大y座標値ymax[i ]を読み出し、カウンタj をアドレスとして最小x座標値xmin[j ]及び最小y座標値ymin[j ]を読み出す。
次に、インデックス統合部322は、S80の処理で、式(23)及び式(28)を用いて、第2最小距離Δy2及び第2最小距離Δx2を演算する。
【0195】
更に、インデックス統合部322は、S81の処理で、第2最小距離Δx2が所定の第2閾値lm_x2 より大きく、且つ、第2最小距離Δy2が所定の第2閾値lm_y2 より大きいか否かを判定する。
ここで、第2閾値lm_x2 は第2閾値lm_y2 と同値であってもよく、異なる値であってもよい。
【0196】
第2最小距離Δy2≦第2閾値lm_y2 又は第2最小距離Δx2≦第2閾値lm_x2 である場合(S81でNO)、インデックス統合部322は、第1のインデックス“i ”と第2のインデックス“j ”との統合を決定し、S82へ処理を移す。
一方、第2最小距離Δx2>第2閾値lm_x2 且つ第2最小距離Δy2>第2閾値lm_y2 である場合(S81でYES)、インデックス統合部322は、第1のインデックス“i ”と第2のインデックス“j ”とを統合せず、S87へ処理を移す。
【0197】
ところで、図33に示した如き、主走査方向の第2最小距離Δx2を用いて画素間の距離を判定する処理は、カラー画像入力装置11が読み取った画像を画像処理によって90°右回転させる処理を、前景色インデックス化処理部32での処理以降に行なう際に有用である。
図34に示す画像の場合、副走査方向の第2最小距離Δx2は、図33に示す主走査方向の第2最小距離Δx2と同値になる。
【0198】
図36は、主走査方向の第2最小距離Δx2及び副走査方向の第2最小距離Δy2を用いて画素間の距離を判定するその他の条件を用いた処理の手順の一部を示すフローチャートである。
図36に示す最小x座標値xmin1 、最小y座標値ymin1 、最大x座標値xmax1 、及び最大y座標値ymax1 は、第1のインデックス“i ”が対応付けられている画素の各種座標値であり、最小x座標値xmin2 、最小y座標値ymin2 、最大x座標値xmax2 、及び最大y座標値ymax2 は、第2のインデックス“j ”が対応付けられている画素の各種座標値である。
【0199】
インデックス統合部322が、図24及び図25に示す処理を実行する場合に、図35に示す第2最小距離Δx2及び第2最小距離Δy2の両方を用いる構成であるとき、図25に示すS81の処理を実行する代わりに、図36に示すS131〜S136の処理を実行する構成でもよい。
上述したように、インデックス統合部322は、図25に示すS80の処理で、第2最小距離Δx2及び第2最小距離Δy2夫々を演算する。
【0200】
次に、インデックス統合部322は、副走査方向の第2最小距離Δy2の値が所定の第2閾値lm_y2 より大きいか否かを判定する(S131)。
第2最小距離Δy2が第2閾値lm_y2 より大きい場合(S131でYES)、インデックス統合部322は、最大x座標値xmax2 が最小x座標値xmin1 より小さいか否かを判定する(S132)。
最大x座標値xmax2 が最小x座標値xmin1 より小さい場合(S132でYES)、インデックス統合部322は、第1のインデックス“i ”と第2のインデックス“j ”とを統合せず、処理をS87へ移す。
【0201】
最大x座標値xmax2 が最小x座標値xmin1 以上である場合(S132でNO)、インデックス統合部322は、最小x座標値xmin2 が最大x座標値xmax1 より大きいか否かを判定する(S133)。
最小x座標値xmin2 が最大x座標値xmax1 より大きい場合(S133でYES)、インデックス統合部322は、処理をS87へ移す。
【0202】
第2最小距離Δy2が第2閾値lm_y2 以下である場合(S131でNO)、又は、最小x座標値xmin2 が最大x座標値xmax1 以下である場合(S133でNO)、インデックス統合部322は、主走査方向の第2最小距離Δx2の値が所定の第2閾値lm_x2 より大きいか否かを判定する(S134)。
第2最小距離Δx2が第2閾値lm_x2 より大きい場合(S134でYES)、インデックス統合部322は、最大y座標値ymax2 が最小y座標値ymin1 より小さいか否かを判定する(S135)。
最大y座標値ymax2 が最小y座標値ymin1 より小さい場合(S135でYES)、インデックス統合部322は、処理をS87へ移す。
【0203】
最大y座標値ymax2 が最小y座標値ymin1 以上である場合(S135でNO)、インデックス統合部322は、最小y座標値ymin2 が最大y座標値ymax1 より大きいか否かを判定する(S136)。
最小y座標値ymin2 が最大y座標値ymax1 より大きい場合(S136でYES)、インデックス統合部322は、処理をS87へ移す。
第2最小距離Δx2が第2閾値lm_x2 以下である場合(S134でNO)、又は、最小y座標値ymin2 が最大y座標値ymax1 以下である場合(S136でNO)、インデックス統合部322は、第1のインデックス“i ”と第2のインデックス“j ”との統合を決定し、処理をステップS82へ移す。
【0204】
図37は、S131〜S136の処理によってインデックスが統合されない画素の範囲を示す模式図である。
図37中にハッチングで示した領域は、特定のインデックスが対応付けられた画素が占める領域(以下、特定のインデックス領域という)である。図中に示すD4又はD5で示す範囲内にインデックスi と近似した色情報を持つインデックス領域がある場合は、インデックスは統合されない。図中にD6で示す範囲は、特定のインデックス領域内の画素よりも先に走査されるので、この範囲内に、インデックスi と近似した色情報を持つインデックス領域は無い。
【0205】
以上のように、インデックス領域間の距離として主走査方向及び副走査方向の両方の距離を用いる処理を実行することによっても、インデックス統合部322は、画像上で所定の距離より離れたインデックス領域間はインデックスを統合することなく、前景レイヤを作成することができる。インデックス間の距離として主走査方向及び副走査方向の両方の距離を用いる処理は、カラー画像入力装置11が読み取った画像を画像処理によって回転させる処理を行なう場合でも、画像を回転させない場合でも、同様の効果を奏する。
【0206】
インデックス統合部322は、使用者からの操作によって切り換えの指示を操作パネル12が受け付けた場合に、インデックス領域間の距離として副走査方向の距離を用いる処理と、主走査方向の距離を用いる処理と、主走査方向及び副走査方向の両方の距離を用いる処理とのいずれかを切り換える機能を備える。
【0207】
ところで、本実施の形態では、第2閾値lm_y2 及び第2閾値lm_x2 夫々が予め“3”に設定されている場合を例示しているが、実際には、カラー画像入力装置11が読み取った画像に適した閾値を用いればよい。
【0208】
例えば、副走査方向の第2閾値lm_y2 及び主走査方向の第2閾値lm_x2 として、副走査方向の画素数及び主走査方向の画素数の30%の値がインデックス統合部322に設定されるようにする。カラー画像入力装置11が、600dpiでA3サイズの画像を読み込んだ場合、副走査方向の画素数が“10000”、主走査方向の画素数が“7000”となるため、第2閾値lm_y2 =3000及び第2閾値lm_x2 =2100がインデックス統合部322に設定される。また、カラー画像入力装置11が、600dpiでA4サイズの画像を読み込んだ場合は、副走査方向の画素数が“7000”、主走査方向の画素数が“5000”となるため、第2閾値lm_y2 =2100及び第2閾値lm_x2 =1500となる。
【0209】
更にまた、設定された第2閾値lm_y2 及び第2閾値lm_x2 が、分離インデックステーブルに記憶されているインデックスの個数に応じて加減される構成でもよい。
【0210】
前述した処理の終了後、前景色インデックス化処理部32は、統合インデックス画像(即ち前景レイヤ)のデータ、統合インデックスカラーテーブル、統合座標テーブル、及び画像データを、背景レイヤ生成処理部33へ出力する。以下では、統合インデックス、統合インデックスカラーテーブル及び統合座標テーブルを、単にインデックス、インデックスカラーテーブル及び座標テーブルという。
【0211】
背景レイヤ生成処理部33は、入力された画像データ及び前景レイヤから、図2に示す如き背景レイヤを生成する処理を行なう。背景レイヤ生成処理部33は、本発明における背景レイヤ生成手段に対応する。
具体的には、画像データに含まれる前景画素の色情報を、前景画素周辺の背景画素の色情報の平均で置き換えることにより、背景レイヤを作成する。ただし、周辺に背景画素が存在しない前景画素については、背景レイヤ生成処理部33は、背景画素の平均値で色情報が置き換えられた他の前景画素の色情報の値又は平均値で色情報を置き換える処理を行なう。
【0212】
ここで、背景画素は、前景レイヤ中でインデックス“0”を対応付けられている画素であり、前景画素はその他のインデックスを対応付けられている画素である。
なお、背景レイヤ生成処理部33は、前景マスク生成処理部31が生成した前景マスクを用いて前景画素と背景画素とを区別する処理を行なってもよい。
【0213】
次いで、背景レイヤ生成処理部33は、生成した背景レイヤのデータと、前景レイヤのデータ、インデックスカラーテーブル及び座標テーブルとを、2値画像生成処理部34へ出力する。
【0214】
2値画像生成処理部34は、入力された前景レイヤのデータ及び座標テーブルに基づき、前景レイヤに含まれる“0”以外のインデックスの夫々について2値画像を生成する。具体的には、特定のインデックスが対応付けられた画素の画素値を“1”とし、他の画素の画素値を“0”とした2値画像を生成し、“0”以外の全てのインデックスについて2値画像の生成を繰り返す。
【0215】
図38は、生成した2値画像の例を示す概念図である。
図38(a)に示す例は、図9に示す前景レイヤで“5”のインデックスを対応付けられた画素(図8に示す分離インデックス画像で“5”,“7”のインデックスを対応付けられた画素)の画素値を“1”とし、他の画素の画素値を“0”とした2値画像である。
また、図38(b)に示す例は、図9に示す前景レイヤで“2”のインデックスを対応付けられた画素(図7に示す初期インデックス画像で“2”のインデックスを対応付けられた画素の一部。残部は図8に示す分離インデックス画像で“6”のインデックスを対応付けられた画素)の画素値を“1”とし、他の画素の画素値を“0”とした2値画像である。
【0216】
図9に示す前景レイヤにおけるインデックス“1”,“3”,“4”,“6”夫々に付いても、同様に2値画像が生成される。
結果として、前景レイヤに含まれる“0”以外のインデックスの個数と同数枚の2値画像が生成される(図9に示す前景レイヤの場合は6枚))。
生成された各2値画像には、各インデックスが関連付けられている。2値画像生成処理部34は、生成された2値画像、背景レイヤ、インデックスカラーテーブル及び座標テーブルを画像圧縮処理部35へ出力する。2値画像生成処理部34は、本発明における2値画像生成手段に対応する。
【0217】
画像圧縮処理部35は、各2値画像、背景レイヤ、インデックスカラーテーブル及び座標テーブルを圧縮することにより、圧縮画像データを生成する。
具体的には、画像圧縮処理部35は、各インデックスについて座標テーブルに記録されている最小x座標値、最小y座標値、最大x座標値及び最大y座標値で画素の範囲が限定された矩形領域を各2値画像から抽出し、各2値画像から抽出した矩形領域をMMR等の可逆圧縮技術を用いて夫々圧縮する。
【0218】
更に画像圧縮処理部35は、背景レイヤをJPEG等の非可逆圧縮技術を用いて圧縮し、圧縮後の各矩形領域に、各インデックスが示す色を表す色情報及び各インデックスの画素が画像上で占める座標の範囲を付加し、圧縮後の全てのデータを一つのデータファイルに統合することにより、圧縮画像データを生成する。
画像圧縮処理部35は、本発明における圧縮手段に対応する。
なお、画像圧縮処理部35は、操作パネル12で受け付けた所定の指示に従って、データの圧縮形式を変更する機能を備えた構成であってもよい。
また、画像圧縮処理部35が矩形領域を抽出するのではなく、2値画像生成処理部34が矩形領域を抽出する構成でもよい。
【0219】
圧縮処理部3は、以上の処理により、カラー画像入力装置11から入力された画像を圧縮した圧縮画像データを生成し、記憶部29又は送信装置14へ出力する。
記憶部29は、圧縮画像データを記憶し、操作パネル12で受け付けた所定の指示に従って、記憶している圧縮画像データを読み出して送信装置14へ出力する。
送信装置14は、操作パネル12で受け付けた所定の指示に従って、外部へ圧縮画像データを送信する。
【0220】
以上詳述した如く、本発明の画像処理装置は、画像から文字に対応する画素を抽出し、文字に対応する各画素に、画素の色を数値で示したインデックスを対応づけた前景レイヤを生成し、画像から文字を省いた背景レイヤを生成し、前景レイヤから、インデックス毎に、各インデックスが対応付けられた画素とその他の画素とを区別した2値画像を生成し、全ての2値画像及び背景レイヤを夫々圧縮することによって圧縮画像データを生成する。
【0221】
画像処理装置は、前景レイヤを生成する際には、色に応じたインデックスを各画素に対応付け、注目画素と同一のインデックスが対応付けられた画素が既に存在する場合には、それらのインデックスが所定の距離以上離れているかを判定し、所定の距離以上離れていれば、注目画素のインデックスとして、同一の色を示しながらも数値が互いに異なるインデックスを対応付ける。また、所定距離以上離れていなければ同一のインデックスを対応付ける。
更に、各インデックスの中で互いに近似した色を示すインデックスを統合する際、互いに近似した色を示すインデックスをもつインデックス同士であっても、画像上で所定の距離より大きく離れているインデックス領域に対しては統合せず、所定の距離内のインデックスのみを統合する。
【0222】
前景レイヤから2値画像を生成した際には、色が同一でありながら異なるインデックスが対応付けられた画像は、互いに異なる2値画像に含まれることとなり、個々の2値画像内では、画素値“1”の画素は、従来技術に比べてより狭い領域に集中することとなる。従って、各2値画像から抽出した各インデックスに係る画素が含まれる矩形領域には、各インデックスを対応付けられた画素の割合が従来技術よりも高くなり、圧縮後のデータに含まれる不要なデータを削減することができる。
【0223】
例えば、画像上で離隔した二つの領域の色が同一である場合、従来技術では、二つの領域を含んだ矩形領域を抽出するので、領域間の画素を含む圧縮データを作成するのに対し、本発明では、二つの領域に互いに別のインデックスを対応付け、各領域を含む矩形領域を個別に抽出して個別に圧縮するので、圧縮データには領域間の画素が含まれない。
【0224】
ここで、2つのインデックス間の距離情報から、統合するか否かの判定を行うことにより、色が近似したインデックスであっても、所定距離より離れていれば、インデックスを統合しないようにすることができる。これにより、矩形領域にインデックスが効率よく含まれる(インデックスでない画素が最小限になる)ため、後段処理を行う際に、2つのインデックス領域間の必要でない画像領域のデータを転送する必要がなくなり、データ転送量を下げ、処理速度を向上することができる。また、夫々の矩形領域も小さくなるため、矩形領域同士が重なる可能性が低くなり、圧縮データを展開し、プリントする際の速度を向上することができる。
【0225】
以上のように、本発明においては、圧縮後のデータに含まれる不要なデータを削減することができるので、カラー画像を圧縮した圧縮画像データのデータ量を削減し、カラー画像の圧縮効率を向上させることができる。従って、カラー画像を圧縮するために必要な処理時間を短縮することが可能となる。また、圧縮画像データを送受信する際には、送受信すべきデータ量を削減し、送受信に必要な時間を短縮することが可能となる。
【0226】
実施の形態 2.
実施の形態1では、本発明の画像形成装置がカラー画像を形成する装置である形態を示したが、実施の形態2では、本発明の画像形成装置がモノクロ画像を形成する装置である形態を示す。
図39は、実施の形態2に係る画像形成装置の内部の機能構成を示すブロック図である。
画像形成装置は、画像をモノクロのグレースケールで光学的に読み取るグレー画像入力装置15を備えており、グレー画像入力装置15には、本発明の画像処理装置であるモノクロ画像処理装置4が接続されている。
【0227】
モノクロ画像処理装置4には、モノクロ画像処理装置4が生成した画像データに基づいてモノクロ画像を出力するモノクロ画像出力装置16、及び送信装置14が接続されている。
グレー画像入力装置15、モノクロ画像処理装置4、モノクロ画像出力装置16及び送信装置14には、操作パネル12が接続されている。
グレー画像入力装置15は、CCD光センサを備えたスキャナにて構成されており、紙等の記録担体上に記録された画像からの反射光像をCCDで読み取り、グリーン(G)単色でグレースケールのアナログ信号に変換してモノクロ画像処理装置4へ入力する構成となっている。
【0228】
モノクロ画像処理装置4は、グレー画像入力装置15から入力されたG単色のアナログ信号に対して画像処理を行なってデジタルの画像データを生成する。また、モノクロ画像処理装置4は、デジタルのK信号からなる画像データを生成してモノクロ画像出力装置16へ出力する。更に、モノクロ画像処理装置4は、生成したデジタルの画像データを圧縮処理により圧縮した圧縮画像データを生成し、圧縮画像データを送信装置14へ出力する。
モノクロ画像出力装置16は、モノクロ画像処理装置4から入力された画像データに基づいて、モノクロ画像を出力する。
操作パネル12及び送信装置14の構成は、実施の形態1と同様である。
【0229】
モノクロ画像処理装置4は、グレー画像入力装置15から入力されたアナログ信号をA/D変換部40でデジタル信号に変換し、シェーディング補正部41、入力階調補正部42、領域分離処理部43、空間フィルタ処理部46、出力階調補正部47、階調再現処理部48の順に送り、デジタルのK信号からなる画像データをモノクロ画像出力装置16へ出力する構成となっている。また、モノクロ画像処理装置4は、デジタル信号を領域分離処理部43から圧縮処理部45へ送り、圧縮画像データを送信装置14へ出力する構成となっている。
【0230】
A/D変換部40は、グレー画像入力装置15から入力されたアナログ信号を受け付け、アナログのG信号をデジタルのG信号へ変換し、シェーディング補正部41へ出力する。
シェーディング補正部41は、A/D変換部40から入力されたG信号に対して、各種の歪みを取り除く処理を行ない、歪みを取り除いたG信号を入力階調補正部42へ出力する。
入力階調補正部42は、シェーディング補正部41から入力されたG信号の強度のバランスを調整し、更に、G信号をモノクロ画像処理装置4で処理しやすい濃度信号等の信号へ変換し、処理後のG信号を領域分離処理部43へ出力する。
【0231】
領域分離処理部43は、入力階調補正部42から入力されたG信号が表す画像中の各画素を、文字領域、網点領域、又は写真領域のいずれかに分離し、各画素がいずれの領域に属しているかを示す領域識別信号を、空間フィルタ処理部46及び階調再現処理部48へ出力し、G信号を空間フィルタ処理部46及び圧縮処理部45へ出力する。
圧縮処理部45は、領域分離処理部43からG信号でなる画像データを入力され、本発明の画像処理方法を用いて圧縮画像データを生成する処理を実行し、圧縮画像データを記憶部29に記憶させ、また、圧縮画像データを送信装置14へ出力する。
【0232】
空間フィルタ処理部46は、入力されたG信号が表す画像に対して、領域識別信号に基づいて空間フィルタ処理を行ない、処理後のG信号を出力階調補正部47へ出力する。
出力階調補正部47は、空間フィルタ処理部46から入力されたG信号に対して、モノクロ画像出力装置16の特性に基づく出力階調補正処理を行ない、処理後のG信号を階調再現処理部48へ出力する。
階調再現処理部48は、出力階調補正部47から入力されたG信号に対して、領域識別信号に基づいて、領域に応じた中間調処理を行ない、処理後のG信号を変換したK信号でなる画像データをモノクロ画像出力装置16へ出力する。
【0233】
圧縮処理部45は、領域分離処理部43からG信号でなる画像データを入力され、本発明の画像処理方法を用いて圧縮画像データを生成する処理を実行する。圧縮処理部45が実行する画像処理方法は、色情報がRGB各色の色強度を示す情報ではなくG単色の強度を示す情報であることを除けば、実施の形態1の圧縮処理部3が実行する画像処理方法と同等である。
【0234】
図40は、実施の形態2に係る圧縮処理部45が利用するインデックスカラーテーブルの例を示す図表である。
各アドレスには、色情報として、G単色の強度を示す情報が関連付けられており、アドレスの値はインデックスの値に等しい。また、背景画素に対応するインデックス“0”には、白色を示す色情報である“0”が関連付けられている。
圧縮処理部45は、図40に示す如きインデックスカラーテーブルを用いて、実施の形態1の圧縮処理部3が実行する画像処理方法と同様の画像処理方法を実行することにより、圧縮画像データを生成する。
【0235】
以上詳述した如く、本実施の形態に係る画像処理装置は、画素の色情報が単色の色強度を示すモノクロ画像に対して、実施の形態1と同様の画像処理を行なうことにより、モノクロ画像を圧縮した圧縮画像データを生成する。
本実施の形態においても、画像処理装置は、前景レイヤを生成する際には、注目画素と同一のインデックスが対応付けられた画素が既に存在する場合には、それらのインデックスが所定の距離以上離れているかを判定し、所定の距離以上離れていれば、注目画素のインデックスとして、同一の色を示しながらも数値が互いに異なるインデックスを対応付ける。また、所定距離以上離れていなければ同一のインデックスを対応付ける。
【0236】
更に、各インデックスの中で互いに近似した色を示すインデックスを統合する際、互いに近似した色を示すインデックスをもつインデックス同士であっても、画像上で所定の距離より大きく離れているインデックス領域に対しては統合せず、所定の距離内のインデックスのみを統合する。
この結果、圧縮後のデータに含まれる不要なデータを削減することができる。従って、モノクロ画像を圧縮した圧縮画像データのデータ量を削減し、モノクロ画像の圧縮効率を向上させることが可能となる。
【0237】
実施の形態 3.
実施の形態2では、本発明の画像形成装置がモノクロ画像を受け付けてモノクロ画像を形成する装置である形態を示したが、実施の形態3では、本発明の画像形成装置がカラー画像を受け付けてモノクロ画像を形成する装置である形態を示す。
【0238】
図41は、実施の形態3に係る画像形成装置の内部の機能構成を示すブロック図である。
画像形成装置は、カラー画像を光学的に読み取るカラー画像入力装置11を備えており、カラー画像入力装置11には、画像処理装置5が接続されている。画像処理装置5には、モノクロ画像出力装置16、及び送信装置14が接続されている。カラー画像入力装置11、画像処理装置5、モノクロ画像出力装置16及び送信装置14には、操作パネル12が接続されている。
カラー画像入力装置11は、実施の形態1と同様の処理を行ない、カラー画像を読み取ったRGBのアナログ信号を画像処理装置5へ出力する。
【0239】
画像処理装置5は、カラー画像入力装置11から入力されたRGBのアナログ信号に対して画像処理を行なって、デジタルの単色のK信号からなる画像データを生成してモノクロ画像出力装置16へ出力する。また、画像処理装置5は、デジタルのRGB信号でなる画像データを圧縮した圧縮画像データを生成し、圧縮画像データを記憶部29に記憶させるか又は送信装置14へ出力する。記憶部29が記憶する圧縮画像データ及び送信装置14が送信する圧縮画像データが表す画像は、カラー画像となる。
モノクロ画像出力装置16は、画像処理装置5から入力された画像データに基づいて、モノクロ画像を出力する。
操作パネル12及び送信装置14の構成は、実施の形態1と同様である。
【0240】
画像処理装置5は、カラー画像入力装置11から入力されたアナログ信号をA/D変換部20でデジタル信号に変換し、シェーディング補正部21、入力階調補正部22、領域分離処理部53、色補正部54、黒生成下色除去部55、空間フィルタ処理部46、出力階調補正部47、階調再現処理部48の順に送り、デジタルのK信号からなる画像データをモノクロ画像出力装置16へ出力する構成となっている。また、画像処理装置5は、デジタル信号を色補正部54から圧縮処理部3へ送り、圧縮画像データを送信装置14へ出力する構成となっている。
【0241】
A/D変換部20、シェーディング補正部21、及び入力階調補正部22の構成は、実施の形態1と同様である。
領域分離処理部53は、入力階調補正部22から入力されたRGB信号が表す画像中の各画素を、文字領域、網点領域、又は写真領域のいずれかに分離し、各画素がいずれの領域に属しているかを示す領域識別信号を、黒生成下色除去部55、空間フィルタ処理部46、及び階調再現処理部48へ出力する。
また、領域分離処理部53は、入力階調補正部22から入力されたRGB信号を色補正部54及び圧縮処理部3へ出力する。
【0242】
色補正部54は、領域分離処理部53から入力されたRGB信号からG信号を抽出し、抽出したG信号を黒生成下色除去部55へ出力する。
黒生成下色除去部55は、色補正部54からのG信号を空間フィルタ処理部46へ出力する。
空間フィルタ処理部46、出力階調補正部47及び階調再現処理部48の構成は、実施の形態2と同様である。
圧縮処理部3の構成は実施の形態1と同様であり、圧縮処理部3は、領域分離処理部53からRGB信号でなる画像データを入力され、実施の形態1と同様に本発明の画像処理方法を実行することにより、圧縮画像データを生成する。
【0243】
なお、色補正部54は、RGB信号からG信号を抽出するのではなく、RGB信号から輝度信号を生成する処理を行なう形態であってもよい。例えば、色補正部54は、RGB各色の色強度RGBから輝度値Yを、Y=0.30R+0.59G+0.11Bと計算することによって、輝度信号を生成する。この形態の場合は、黒生成下色除去部55、空間フィルタ処理部46、出力階調補正部47及び階調再現処理部48は、輝度信号を色情報とした処理を実行する。
【0244】
以上詳述した如く、本実施の形態に係る画像処理装置は、モノクロ画像の形成とカラーの圧縮画像データの生成とを可能とする。
本実施の形態においても、画像処理装置は、前景レイヤを生成する際には、注目画素と同一のインデックスが対応付けられた画素が既に存在する場合には、それらのインデックスが所定の距離以上離れているかを判定し、所定の距離以上離れていれば、注目画素のインデックスとして、同一の色を示しながらも数値が互いに異なるインデックスを対応付ける。また、所定距離以上離れていなければ同一のインデックスを対応付ける。
【0245】
更に、各インデックスの中で互いに近似した色を示すインデックスを統合する際、互いに近似した色を示すインデックスをもつインデックス同士であっても、画像上で所定の距離より大きく離れているインデックス領域に対しては統合せず、所定の距離内のインデックスのみを統合する。
この結果、圧縮後のデータに含まれる不要なデータを削減することができる。従って、カラー画像を圧縮した圧縮画像データのデータ量を削減し、カラー画像の圧縮効率を向上させることが可能となる。
【0246】
実施の形態 4.
実施の形態1〜3では、本発明の画像処理装置が画像形成装置の一部をなす形態を示したが、実施の形態4においては、本発明の画像処理装置がスキャナ装置の一部をなす形態を示す。
【0247】
図42は、実施の形態4に係る画像処理装置を含むスキャナ装置の内部の機能構成を示すブロック図である。
スキャナ装置は、カラー画像を光学的に読み取るカラー画像入力装置11を備えており、カラー画像入力装置11には、本発明の画像処理装置6が接続されている。
画像処理装置6には、通信ケーブル又は通信ネットワークを介してパーソナルコンピュータ(PC)等の図示しないホスト装置が接続されている。
カラー画像入力装置11及び画像処理装置6には、操作パネル12が接続されている。
【0248】
カラー画像入力装置11は、実施の形態1と同様の処理を行ない、カラー画像を読み取ったRGBのアナログ信号を画像処理装置6へ出力する。
画像処理装置6は、カラー画像入力装置11から入力されたアナログ信号をA/D変換部20でデジタル信号に変換し、シェーディング補正部21、入力階調補正部22、領域分離処理部63、圧縮処理部3の順に送る構成となっている。
A/D変換部20、シェーディング補正部21、及び入力階調補正部22の構成は、実施の形態1と同様である。
領域分離処理部63は、入力階調補正部22から入力されたRGB信号を圧縮処理部3へ出力する。
【0249】
圧縮処理部3の構成は実施の形態1と同様であり、圧縮処理部3は、領域分離処理部63からRGB信号でなる画像データを入力され、実施の形態1と同様に本発明の画像処理方法を実行することにより、入力された画像を圧縮した圧縮画像データを生成する。また、圧縮処理部3は、生成した圧縮画像データを図示しないホスト装置へ出力する。
ホスト装置は、画像処理装置6が出力した圧縮画像データを受け付け、圧縮画像データの記憶、圧縮画像データの外部への送信、又は圧縮画像データに基づいた画像出力等の処理を実行する。
【0250】
以上のように、本実施の形態においても、実施の形態1〜3と同様に、前景レイヤを生成する際には、注目画素と同一のインデックスが対応付けられた画素が既に存在する場合には、それらのインデックスが所定の距離以上離れているかを判定し、所定の距離以上離れていれば、注目画素のインデックスとして、同一の色を示しながらも数値が互いに異なるインデックスを対応付ける。また、所定距離以上離れていなければ同一のインデックスを対応付ける。
更に、各インデックスの中で互いに近似した色を示すインデックスを統合する際、互いに近似した色を示すインデックスをもつインデックス同士であっても、画像上で所定の距離より大きく離れているインデックス領域に対しては統合せず、所定の距離内のインデックスのみを統合する。
【0251】
この結果、圧縮後のデータに含まれる不要なデータを削減することができる。従って、カラー画像又はモノクロ画像を圧縮した圧縮画像データのデータ量を削減し、画像の圧縮効率を向上させることができるようになり、圧縮画像データを送受信する際には、送受信すべきデータ量を削減し、送受信に必要な時間を短縮することが可能となる。
【0252】
実施の形態 5.
実施の形態5では、汎用のコンピュータを用いて本発明の画像処理装置を実現した形態を示す。
図43は、実施の形態5に係る本発明の画像処理装置7の内部構成を示すブロック図である。
本実施の形態に係る画像処理装置7は、PC等の汎用コンピュータを用いて構成されており、演算を行なうCPU71と、演算に伴って発生する一時的な情報を記憶するRAM72と、光ディスク等の本発明の記録媒体8から情報を読み取るCD−ROMドライブ等のドライブ部73と、ハードディスク等の記憶部74とを備えている。
【0253】
CPU71は、本発明の記録媒体8から本発明のコンピュータプログラム81をドライブ部73に読み取らせ、読み取ったコンピュータプログラム81を記憶部74に記憶させる。コンピュータプログラム81は必要に応じて記憶部74からRAM72へロードされ、ロードされたコンピュータプログラム81に基づいてCPU71は画像処理装置7に必要な処理を実行する。
【0254】
また、画像処理装置7は、使用者が操作することによる各種の処理指示等の情報が入力されるキーボード又はポインティングデバイス等の入力部75と、各種の情報を表示する液晶ディスプレイ等の表示部76とを備えている。更に、画像処理装置7は、図示しない外部の通信ネットワークに接続可能な送信部77と、画像データを入力するスキャナ装置等の外部の入力装置82に接続された受信部78とを備えている。
入力装置82は、画像を光学的に読み取って画像データを生成し、生成した画像データを画像処理装置7へ送信し、受信部78は、入力装置82から送信された画像データを受信する。受信部78は、本発明における受付手段として機能する。送信部77は、図示しない通信ネットワークを介して、ファクシミリ又は電子メール等の通信方法により外部へデータを送信することができる。
【0255】
CPU71は、本発明のコンピュータプログラム81をRAM72にロードし、ロードしたコンピュータプログラム81に従って、本発明の画像処理方法に係る処理を実行する。即ち、受信部78で入力装置82から画像データが入力された場合に、CPU71は、実施の形態1における前景マスク生成処理部31、前景色インデックス化処理部32、背景レイヤ生成処理部33、2値画像生成処理部34及び画像圧縮処理部35が行なう処理と同様の、前景マスク生成処理、前景色インデックス化処理、背景レイヤ生成処理、2値画像生成処理及び画像圧縮処理を実行する。これにより、CPU71は、受け付けた画像データを圧縮した圧縮画像データを生成する処理を行なう。
【0256】
CPU71は、生成した圧縮画像データを記憶部74に記憶させる。また、CPU71は、ロードしたコンピュータプログラム81に従って、生成した圧縮画像データ、又は記憶部74から読み出した圧縮画像データを送信部77に外部へ送信させる処理を行なう。
【0257】
以上のように、本実施の形態においても、実施の形態1〜4と同様に、前景レイヤを生成する際には、注目画素と同一のインデックスが対応付けられた画素が既に存在する場合には、それらのインデックスが所定の距離以上離れているかを判定し、所定の距離以上離れていれば、注目画素のインデックスとして、同一の色を示しながらも数値が互いに異なるインデックスを対応付ける。また、所定距離以上離れていなければ同一のインデックスを対応付ける。
更に、各インデックスの中で互いに近似した色を示すインデックスを統合する際、互いに近似した色を示すインデックスをもつインデックス同士であっても、画像上で所定の距離より大きく離れているインデックス領域に対しては統合せず、所定の距離内のインデックスのみを統合する。
【0258】
この結果、圧縮後のデータに含まれる不要なデータを削減することができる。従って、カラー画像又はモノクロ画像を圧縮した圧縮画像データのデータ量を削減し、画像の圧縮効率を向上させることが可能となる。
【0259】
なお、本発明のコンピュータプログラム81を記録してある本発明の記録媒体8は、磁気テープ、磁気ディスク、可搬型のハードディスク、CD−ROM/MO/MD/DVD等の光ディスク、又はICカード(メモリカードを含む)/光カード等のカード型記録媒体のいずれの形態であってもよい。また、本発明の記録媒体8は、画像処理装置7に装着され、記録媒体8の記録内容をCPU71が読み出すことが可能な半導体メモリ、即ちマスクROM、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable Programmable Read Only Memory)、フラッシュROM等であってもよい。
【0260】
更に、本発明のコンピュータプログラム81は、インターネット又はLAN等の通信ネットワークを介して画像処理装置7に接続された図示しない外部のサーバ装置から画像処理装置7へダウンロードされて記憶部74に記憶される形態であってもよい。この形態の場合は、コンピュータプログラム81をダウンロードするために必要なプログラムは、予め記憶部74に記憶されてあるか、又は所定の記録媒体からドライブ部73を用いて読み出されて記憶部74に記憶され、必要に応じてRAM72にロードされるものであればよい。
【0261】
以上の実施の形態1〜5においては、前景レイヤに含まれる画素として文字に対応する画素を抽出する処理を行なう形態を示したが、これに限るものではなく、本発明は、前景レイヤに含まれる画素として線画に対応する画素を抽出する処理を行なう形態であってもよい。また、本発明は、前景レイヤに含まれる画素として文字及び線画に対応する画素を抽出する処理を行なう形態であってもよい。
【図面の簡単な説明】
【0262】
【図1】実施の形態1に係る画像形成装置の内部の機能構成を示すブロック図である。
【図2】圧縮処理部が画像を圧縮する処理の概要を示す模式図である。
【図3】圧縮処理部が画像を圧縮する処理の概要を示す模式図である。
【図4】圧縮処理部の内部構成を示すブロック図である。
【図5】前景色インデックス化処理部の内部構成を示すブロック図である。
【図6】圧縮処理部が圧縮すべき画像の例を示す概念図である。
【図7】初期インデックス画像の例を示す概念図である。
【図8】分離インデックス画像の例を示す概念図である。
【図9】統合インデックス画像の例を示す概念図である。
【図10】分離インデックステーブル及び分離インデックスカラーテーブルの例を示す図表である。
【図11】分離座標テーブルの例を示す図表である。
【図12】統合インデックステーブル及び統合インデックスカラーテーブルの例を示す図表である。
【図13】統合座標テーブルの例を示す図表である。
【図14】インデックス生成部が行なう処理の手順を示すフローチャートである。
【図15】インデックス生成部が行なう処理の手順を示すフローチャートである。
【図16】インデックス生成部が行なう処理の手順を示すフローチャートである。
【図17】座標テーブル更新処理のサブルーチンの処理の手順を示すフローチャートである。
【図18】減色処理テーブルの例を示す図表である。
【図19】第1の注目画素に対する処理の手順を説明するための図表である。
【図20】第2の注目画素に対する処理の手順を説明するための図表である。
【図21】インデックスカラーテーブル更新処理のサブルーチンの処理の手順を示すフローチャートである。
【図22】注目画素と副走査方向の第1最小距離との関係を示す模式図である。
【図23】異なるインデックスが対応付けられた2個の領域と副走査方向の第2最小距離との関係を示す模式図である。
【図24】インデックス統合部が行なう処理の手順を示すフローチャートである。
【図25】インデックス統合部が行なう処理の手順を示すフローチャートである。
【図26】各種テーブル更新処理のサブルーチンの処理の手順を示すフローチャートである。
【図27】各種テーブル更新処理のサブルーチンの処理の手順を示すフローチャートである。
【図28】注目画素と主走査方向の第1最小距離との関係を示す模式図である。
【図29】図28に示す画像を90°右回転させた画像における注目画素と副走査方向の第1最小距離との関係を示す模式図である。
【図30】注目画素と主走査方向及び副走査方向夫々の第1最小距離との関係を示す模式図である。
【図31】主走査方向及び副走査方向夫々の第1最小距離を用いて画素間の距離を判定するその他の条件を用いた処理の手順の一部を示すフローチャートである。
【図32】S121〜S126の処理によってインデックスが分離される画素の範囲を示す模式図である。
【図33】異なるインデックスが対応付けられた2個の領域と主走査方向の第2最小距離との関係を示す模式図である。
【図34】図33に示す画像を90°右回転させた画像における、異なるインデックスが対応付けられた2個の領域と副走査方向の第2最小距離との関係を示す模式図である。
【図35】異なるインデックスが対応付けられた2個の領域と主走査方向及び副走査方向夫々の第2最小距離との関係を示す模式図である。
【図36】主走査方向及び副走査方向夫々の第2最小距離を用いて画素間の距離を判定するその他の条件を用いた処理の手順の一部を示すフローチャートである。
【図37】S131〜S136の処理によってインデックスが統合されない画素の範囲を示す模式図である。
【図38】生成した2値画像の例を示す概念図である。
【図39】実施の形態2に係る画像形成装置の内部の機能構成を示すブロック図である。
【図40】実施の形態2に係る圧縮処理部が利用するインデックスカラーテーブルの例を示す図表である。
【図41】実施の形態3に係る画像形成装置の内部の機能構成を示すブロック図である。
【図42】実施の形態4に係る画像処理装置を含むスキャナ装置の内部の機能構成を示すブロック図である。
【図43】実施の形態5に係る本発明の画像処理装置の内部構成を示すブロック図である。
【符号の説明】
【0263】
11 カラー画像入力装置
12 操作パネル
13 カラー画像出力装置
14 送信装置
15 グレー画像入力装置
16 モノクロ画像出力装置
2 カラー画像処理装置
20,40 A/D変換部
3,45 圧縮処理部
31 前景マスク生成処理部
32 前景色インデックス化処理部
321 インデックス生成部
322 インデックス統合部
323 インデックス補正部
33 背景レイヤ生成処理部
34 2値画像生成処理部
35 画像圧縮処理部
4 モノクロ画像処理装置
5,6,7 画像処理装置
71 CPU
8 記録媒体
81 コンピュータプログラム
【技術分野】
【0001】
本発明は、各画素の色をインデックス化することにより高効率で画像データを圧縮することができる画像処理装置、画像形成装置、画像処理方法、コンピュータプログラム及び記録媒体に関する。
【背景技術】
【0002】
紙等に記録された画像を光学的に読み取って画像データを生成する画像処理装置は、スキャナ装置、ファクシミリ装置又は複写装置として広く利用されている。画像処理装置が生成した画像データは、ファクシミリ通信若しくは電子メール等を用いて送受信されるか、又はデータベースに蓄積される等して種々の用途に利用される。画像を光学的に読み取って生成した画像データは、一般的にデータサイズが大きくなるので、送受信又は蓄積を効率的に行なうためには、画像データの圧縮が必要不可欠となっている。
【0003】
高圧縮率を実現するための圧縮技術の1つにレイヤ分離に基づく圧縮技術がある。レイヤ分離に基づく圧縮技術は、画像を文字及び/又は線画を表す前景レイヤとその他の画像を表す背景レイヤとに分離し、前景レイヤ及び背景レイヤを夫々に適した圧縮方法を用いて圧縮し、最終的に圧縮画像を生成する技術である。
【0004】
背景レイヤは、JPEG(Joint Photographic Experts Group)等の非可逆圧縮技術を用いて圧縮されるのが一般的である。非可逆圧縮技術は、圧縮率の制御が簡易であるので、用途に応じてデータサイズの縮小又は画質の劣化防止等を行なうことができる。
一方、前景レイヤは、JBIG(Joint Bi-level Image Experts Group)、MMR(Modified Modified Read)、又はLZW(Lempel Ziv Welch)といった可逆圧縮技術を用いて圧縮されるのが一般的である。可逆圧縮技術は、圧縮率を制御することが難しいため、圧縮率を向上させることが困難である。
【0005】
特許文献1には、圧縮率を向上させることができる圧縮技術が開示されている。特許文献1に記載の技術では、カラー画像に含まれる各画素の色をインデックスで表し、インデックスで表された色毎の画素数を含むカラー情報、及びそれらを用いて生成した背景色情報から、インデックスの統合を行なっている。
【特許文献1】特開2004−229261号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
特許文献1に記載の技術は、1枚分の画像内に含まれる同一の色を同一のインデックスで表し、各インデックス毎に各色の画素の最大・最小座標から矩形領域を切り出して2値化・圧縮を行なっている。従って、一のインデックスについて切り出した矩形領域には、このインデックスに無関係な領域も含まれることとなるので、圧縮後のデータには不要なデータが含まれてしまう。この結果、圧縮後のデータ量が大きくなり、圧縮効率が悪いという問題が生じる。
【0007】
このような不都合を解消するために、同一の色であって、狭い範囲に集中している画素に対しては夫々同一のインデックスを対応させるが、これらの画素から遠く離れた位置に存在する画素には、同一の色であっても異なるインデックスを対応させることが考えられる。
しかしながら、この場合、インデックスの個数が無制限に増大する虞がある。インデックスの個数は、切り出すべき矩形領域の個数であるため、圧縮後のデータ量が大きくなり、圧縮効率が悪いという問題が生じる。
【0008】
本発明は斯かる問題を解決するためになされたものであり、その主たる目的は、インデックスの個数を制限しつつ、各インデックスに係る画素が高い割合で含まれる領域を抽出できるようにすることにより、圧縮後のデータ量を削減することができる画像処理装置、画像形成装置、画像処理方法、コンピュータプログラム及び記録媒体を提供することにある。
【課題を解決するための手段】
【0009】
本発明に係る画像処理装置は、複数の画素で構成された画像を受け付ける受付手段と、該受付手段が受け付けた画像を構成する画素の内、文字及び/又は線画に対応する画素を抽出する抽出手段と、該抽出手段が抽出した各画素の色を複数の識別子のいずれかで表した前景レイヤを生成する前景レイヤ生成手段と、前記受付手段が受け付けた画像から文字及び/又は線画を省いた背景レイヤを生成する背景レイヤ生成手段と、前記前景レイヤ生成手段が生成した前景レイヤに含まれる識別子毎に、特定の識別子で表される画素とその他の画素とからなる2値画像を生成する2値画像生成手段と、該2値画像生成手段が生成した2値画像、及び前記背景レイヤ生成手段が生成した背景レイヤを夫々圧縮する圧縮手段とを備え、画像を圧縮する処理を行なう画像処理装置において、前記前景レイヤ生成手段は、各画素の色に応じて、特定の色に関連付けられた識別子を各画素に対応付ける識別子対応手段と、該識別子対応手段による対応付けによって同一の識別子が対応付けられた画素の内、画像上で第1距離より離隔している画素間で異なる識別子を対応付けることによって識別子を分離する識別子分離手段と、前記識別子対応手段による対応付け及び前記識別子分離手段による分離の後、異なる識別子が対応付けられた画素の内、色同士が所定の範囲内で近似し、且つ、画像上で第2距離より近接している画素間で識別子を統合する識別子統合手段とを有することを特徴とする。
【0010】
本発明に係る画像処理装置は、前記識別子統合手段は、第1の識別子に関連付けられた第1の色と、前記第1の識別子とは異なる第2の識別子に関連付けられた第2の色とが所定の範囲内で近似しているか否かを判定する判定手段と、該判定手段が近似していると判定した場合、前記第1の識別子が対応付けられた画素と前記第2の識別子が対応付けられた画素との最小距離を演算する距離演算手段と、該距離演算手段が演算した最小距離が所定の閾値より小さい場合に、前記第1の識別子が対応付けられた画素の画素数と前記第2の識別子が対応付けられた画素の画素数とを比較する比較手段と、該比較手段の比較結果に基づき、画素数が少ない方の画素に対応付けられた識別子を、画素数が多い方の画素に対応付けられた識別子と同一の識別子に変更する手段とを有することを特徴とする。
【0011】
本発明に係る画像処理装置は、前記識別子分離手段は、所定の選択順に従って、画素を順次選択する選択手段と、選択済みの画素の内で選択中の画素と同一の識別子が対応付けられた画素と、前記選択中の画素との間の最小距離を演算する最小演算手段と、該最小演算手段が演算した最小距離が所定の閾値より大きい場合に、前記選択中の画素に対応付けられた識別子を、該識別子と同一の色に関連付けられた新たな識別子に変更する手段とを有することを特徴とする。
【0012】
本発明に係る画像処理装置は、前記選択手段は、画像上の一方向を主走査方向とし、前記一方向に直交する方向を副走査方向として、画素を順次選択するように構成してあり、前記最小演算手段が演算する距離として、主走査方向の距離と、副走査方向の距離と、主走査方向及び副走査方向の両方の距離とを切り替える手段を更に備えることを特徴とする。
【0013】
本発明に係る画像処理装置は、各画素の色は、複数の原色の色強度を示す情報からなることを特徴とする。
【0014】
本発明に係る画像処理装置は、各画素の色は、単色の色強度を示す情報からなることを特徴とする。
【0015】
本発明に係る画像形成装置は、本発明の画像処理装置を備えることを特徴とする。
【0016】
本発明に係る画像処理方法は、複数の画素で構成された画像を受け付けるステップと、受け付けた画像を構成する画素の内、文字及び/又は線画に対応する画素を抽出するステップと、抽出した各画素の色を複数の識別子のいずれかで表した前景レイヤを生成する前景レイヤ生成ステップと、受け付けた画像から文字及び/又は線画を省いた背景レイヤを生成するステップと、前記前景レイヤに含まれる識別子毎に、特定の識別子で表される画素とその他の画素とからなる2値画像を生成するステップと、生成した2値画像及び背景レイヤを夫々圧縮するステップとを含む画像処理方法において、前記前景レイヤ生成ステップは、各画素の色に応じて、特定の色に関連付けられた識別子を各画素に対応付けるステップと、同一の識別子が対応付けられた画素の内、画像上で第1距離より離隔している画素間で異なる識別子を対応付けることによって識別子を分離するステップと、識別子の対応付け及び分離の後、異なる識別子が対応付けられた画素の内、色同士が所定の範囲内で近似し、且つ、画像上で第2距離より近接している画素間で識別子を統合するステップとを含むことを特徴とする。
【0017】
本発明に係るコンピュータプログラムは、コンピュータに、画像を構成する画素の内、文字及び/又は線画に対応する画素を抽出する手順と、抽出した各画素の色を複数の識別子のいずれかで表した前景レイヤを生成する前景レイヤ生成手順と、前記画像から文字及び/又は線画を省いた背景レイヤを生成する手順と、前記前景レイヤに含まれる識別子毎に、特定の識別子で表される画素とその他の画素とからなる2値画像を生成する手順と、生成した2値画像及び背景レイヤを夫々圧縮する手順とを含む処理を実行させることによって、画像を圧縮する処理を実行させるためのコンピュータプログラムであって、前記前景レイヤ生成手順は、各画素の色に応じて、特定の色に関連付けられた識別子を各画素に対応付ける手順と、同一の識別子が対応付けられた画素の内、画像上で第1距離より離隔している画素間で異なる識別子を対応付けることによって識別子を分離する手順と、識別子の対応付け及び分離の後、異なる識別子が対応付けられた画素の内、色同士が所定の範囲内で近似し、且つ、画像上で第2距離より近接している画素間で識別子を統合する手順とを含むことを特徴とする。
【0018】
本発明に係る記録媒体は、本発明のコンピュータプログラムを記録してあることを特徴とする。
【0019】
本発明にあっては、画像処理装置は、受け付けた画像から文字及び/又は線画に対応する画素を抽出し、抽出した画素の色を識別子で表した前景レイヤを生成し、画像から文字及び/又は線画を省いた背景レイヤを生成し、前景レイヤから、各識別子に係る画素と他の画素とを区別した2値画像を生成し、全ての2値画像及び背景レイヤを夫々圧縮することによって圧縮画像データを生成する。
【0020】
画像処理装置は、前景レイヤを生成する際には、色に関連付けた識別子を各画素に一旦対応付け、同一の識別子が対応付けられた画素の内で所定の第1距離より離隔した画素間で異なる識別子を対応付けることによって識別子を分離する。このため、色が同一でありながら異なる識別子が対応付けられた画像は、互いに異なる2値画像に含まれることとなり、個々の2値画像内では、各識別子に係る画素がより狭い領域に集中する。
【0021】
また、近似した色に関連付けられ、しかも画素同士が所定の第2距離より小さく接近している識別子を統合する。この結果、識別子の個数が減少するため、生成すべき2値画像の枚数が減少する。
一方、近似した色に関連付けられている識別子であっても、所定の第2距離以上離れている場合は、識別子は統合されない。このため、識別子を統合するによって、個々の2値画像内で、各識別子に係る画素が広い領域に分散してしまう不都合が抑制される。
【0022】
本発明にあっては、画像処理装置は、第1の識別子に関連付けられた第1の色と、第2の識別子に関連付けられた第2の色とが所定の範囲内で近似しているか否かを判定する。
第1の色と第2の色とが近似している場合、第1の識別子と第2の識別子とは、統合すべき識別子の候補となる。
ここで、画像処理装置は、第1の識別子が対応付けられた画素と第2の識別子が対応付けられた画素との最小距離を演算する。
演算した最小距離が所定の閾値より小さい場合、第1の識別子と第2の識別子との統合が決定される。
【0023】
そこで、画像処理装置は、第1の識別子が対応付けられた画素の画素数と第2の識別子が対応付けられた画素の画素数とを比較する。
最後に、画像処理装置は、画素数が少ない方の画素に対応付けられた識別子を、画素数が多い方の画素に対応付けられた識別子と同一の識別子に変更する。
以上の結果、大幅な画質の劣化を招くことなく、画素同士の距離が近い識別子が適切に統合される。
第1の色と第2の色とが近似していない場合は、識別子の統合は起こらない。また、画素同士の距離が遠い場合は、識別子の統合は起こらない。
【0024】
本発明にあっては、画像処理装置は、一旦識別子が対応付けられた画素を順に選択する。以下では、選択中の画素に対応付けられた識別子と同一の識別子を、同一識別子という。
次いで、画像処理装置は、選択済みの画素の内で同一識別子が対応付けられた画素と、選択中の画素との間の最小距離を求め、求めた最小距離が所定の閾値より大きい場合に、選択中の画素に対応付けられた識別子を、同一識別子と同一の色に関連付けられた新たな識別子に変更する。この結果、画素同士の距離が遠い識別子が適切に分離される。
一方、求めた最小距離が所定の閾値より小さい場合(即ち、画素同士の距離が近い場合)には、選択中の画素の識別子は変更されず、識別子の分離は起こらない。
【0025】
本発明にあっては、画素間の距離として、主走査方向の距離と、副走査方向の距離と、主走査方向及び副走査方向の両方の距離とを利用可能であり、必要に応じていずれかを切り換えて処理を実行することにより、スキャナで読み取った画像を90°右回転させる場合等、状況に応じた識別子の分離を行なう。
【0026】
本発明にあっては、赤緑青等の複数の原色の色強度を識別子に関連付けて画像の圧縮処理を行なうことにより、カラー画像の圧縮を可能とする。
【0027】
本発明にあっては、単色の色強度を識別子に関連付けて画像の圧縮処理を行なうことにより、グレースケールのモノクロ画像の圧縮を可能とする。
【発明の効果】
【0028】
本発明の画像処理装置、画像形成装置、画像処理方法、コンピュータプログラム及び記録媒体による場合、個々の2値画像内では、各識別子に係る画素がより狭い領域に集中している。従って、圧縮の際に2値画像から抽出した各識別子に係る画素が含まれる矩形領域においては、各識別子に係る画素の割合がより高くなる。つまり、圧縮後のデータに含まれる不要なデータを削減することができる。
しかも、識別子を統合する事によって、2値画像の枚数は最小限に抑えられている。
【0029】
以上の結果、画像を圧縮した圧縮画像データのデータ量を削減し、画像の圧縮効率を向上させることができる。また、画像を圧縮するために必要な処理時間を短縮することが可能となる。
更に、圧縮画像データを送受信する際には、送受信すべきデータ量を削減し、送受信に必要な時間を短縮することが可能となる等、本発明は優れた効果を奏する。
【発明を実施するための最良の形態】
【0030】
以下、本発明を、その実施の形態を示す図面に基づいて詳述する。
【0031】
実施の形態 1.
実施の形態1では、本発明の画像処理装置が、カラー画像を形成する画像形成装置の一部をなす形態を示す。
図1は、実施の形態1に係る画像形成装置の内部の機能構成を示すブロック図である。
本発明の画像形成装置は、カラー画像を光学的に読み取るカラー画像入力装置11を備えており、カラー画像入力装置11には、読み取ったカラー画像に応じた画像データ及び圧縮画像データを生成する処理を行なうカラー画像処理装置2が接続されている。カラー画像処理装置2は、本発明における画像処理装置に対応する。
【0032】
カラー画像処理装置2には、カラー画像処理装置2が生成した画像データに基づいてカラー画像を出力するカラー画像出力装置13、及びカラー画像処理装置2が生成した圧縮画像データを外部へ送信する送信装置14が接続されている。
カラー画像入力装置11、カラー画像処理装置2、カラー画像出力装置13及び送信装置14には、使用者からの操作を受け付ける操作パネル12が接続されている。
【0033】
カラー画像入力装置11は、CCD(Charge Coupled Device )光センサを備えたスキャナにて構成されており、紙等の記録担体上に記録されたカラー画像からの反射光像をR(赤)G(緑)B(青)に分解してCCDで読み取り、RGBのアナログ信号に変換してカラー画像処理装置2へ出力する構成となっている。
カラー画像処理装置2は、カラー画像入力装置11から入力されたRGBのアナログ信号に対して後述する画像処理を行なってデジタルの画像データを生成する。また、カラー画像処理装置2は、デジタルのC(シアン)M(マゼンタ)Y(イエロー)K(黒)信号からなる画像データを生成してカラー画像出力装置13へ出力する。更にまた、カラー画像処理装置2は、生成したデジタルの画像データを後述する圧縮処理により圧縮した圧縮画像データを生成し、圧縮画像データを送信装置14へ出力する。
【0034】
カラー画像出力装置13は、カラー画像処理装置2から入力された画像データに基づいて、熱転写、電子写真、又はインクジェット等の方式により記録担体上に画像を形成することによって、カラー画像を出力する。
送信装置14は、図示しない公衆回線網、LAN(Local Area Network)又はインターネット等の通信ネットワークに接続可能であり、ファクシミリ又は電子メール等の通信方法により通信ネットワークを介して外部へ圧縮画像データを送信する。
操作パネル12は、画像形成装置の操作に必要な情報を表示する液晶ディスプレイ等の表示部と、画像形成装置の動作を制御する指示を使用者の操作により受け付けるタッチパネル又はテンキー等の受付部とを含んで構成されている。
【0035】
カラー画像処理装置2は、カラー画像入力装置11から入力されたアナログ信号をA/D変換部20でデジタル信号に変換し、シェーディング補正部21、入力階調補正部22、領域分離処理部23、色補正部24、黒生成下色除去部25、空間フィルタ処理部26、出力階調補正部27、階調再現処理部28の順に送り、デジタルのCMYK信号からなる画像データをカラー画像出力装置13へ出力する構成となっている。また、カラー画像処理装置2は、デジタル信号を領域分離処理部23から圧縮処理部3へ送り、圧縮画像データを送信装置14へ出力する構成となっている。
【0036】
A/D変換部20は、カラー画像入力装置11からカラー画像処理装置2へ入力されたRGBのアナログ信号を受け付け、RGBのアナログ信号をデジタルのRGB信号へ変換し、RGB信号をシェーディング補正部21へ出力する。
シェーディング補正部21は、A/D変換部20から入力されたRGB信号に対して、カラー画像入力装置11の照明系、結像系及び撮像系で生じる各種の歪みを取り除く処理を行なう。
次いで、シェーディング補正部21は、歪みを取り除いたRGB信号を入力階調補正部22へ出力する。
【0037】
入力階調補正部22は、シェーディング補正部21から入力されたRGB信号に対して、カラーバランスを調整する。シェーディング補正部21から入力階調補正部22へ入力されたRGB信号はRGBの反射率信号であり、入力階調補正部22は、シェーディング補正部21から入力されたRGB信号を、カラー画像処理装置2で処理しやすい濃度信号等の信号へ変換する。
次いで、入力階調補正部22は、処理を行なったRGB信号を領域分離処理部23へ出力する。
【0038】
領域分離処理部23は、入力階調補正部22から入力されたRGB信号が表す画像中の各画素を、文字領域、網点領域、又は写真領域のいずれかに分離し、分離結果に基づき、各画素がいずれの領域に属しているかを示す領域識別信号を、黒生成下色除去部25、空間フィルタ処理部26、及び階調再現処理部28へ出力する。また、領域分離処理部23は、入力階調補正部22から入力されたRGB信号を色補正部24及び圧縮処理部3へ出力する。
【0039】
圧縮処理部3は、領域分離処理部23からRGB信号でなる画像データを入力され、後述する本発明の画像処理方法を用いて圧縮画像データを生成する処理を実行する。圧縮処理部3は、生成した圧縮画像データを、ハードディスク等の不揮発性の記憶媒体を用いて構成された記憶部29に記憶させる。また、圧縮処理部3は、生成した圧縮画像データを送信装置14へ出力する。
【0040】
色補正部24は、領域分離処理部23から入力されたRGB信号をCMY信号へ変換し、色再現の忠実化実現のために、不要吸収成分を含むCMY色材の分光特性に基づいた色濁りをCMY信号から取り除く処理を行なう。
次いで、色補正部24は、色補正を行なったCMY信号を黒生成下色除去部25へ出力する。
【0041】
黒生成下色除去部25は、色補正部24から入力されたCMYの3色信号からK信号を生成する黒生成処理を行ない、元のCMY信号から黒生成処理によって得られたK信号を差し引くことによって、CMYの3色信号をCMYKの4色信号へ変換する。黒生成処理の一例としては、スケルトンブラックにより黒生成を行なう方法がある。この方法では、スケルトンカーブの入出力特性をy=f(x)、変換前のデータをC,M,Y、UCR(Under Color Removal )率をα(0<α<1)とすると、変換後のデータC',M',Y',K'は下記の式(1)〜式(4)で表される。
【0042】
K'=f(min (C,M,Y))…(1)
C'=C−αK'…(2)
M'=M−αK'…(3)
Y'=Y−αK'…(4)
【0043】
ここで、UCR率α(0<α<1)は、CMYが重なっている部分をKに置き換えてCMYをどの程度削減するかを示す。式(1)は、CMYの各信号強度の内の最も小さい信号強度に応じてK信号が生成されることを示している。
次いで、黒生成下色除去部25は、CMY信号を変換したCMYK信号を空間フィルタ処理部26へ出力する。
【0044】
空間フィルタ処理部26は、黒生成下色除去部25から入力されたCMYK信号が表す画像に対して、領域分離処理部23から入力された領域識別信号に基づいてデジタルフィルタによる空間フィルタ処理を行なうことにより、画像のぼやけ又は粒状性劣化を改善する。例えば、領域分離処理部23にて文字に分離された領域に対しては、空間フィルタ処理部26は、文字の再現性を高めるために、高周波成分の強調量が大きいフィルタを用いて空間フィルタ処理を行なう。また、領域分離処理部23にて網点に分離された領域に対しては、空間フィルタ処理部26は、入力網点成分を除去するためのローパス・フィルタ処理を行なう。
次いで、空間フィルタ処理部26は、処理後のCMYK信号を出力階調補正部27へ出力する。
【0045】
出力階調補正部27は、空間フィルタ処理部26から入力されたCMYK信号に対して、カラー画像出力装置13の特性に基づく出力階調補正処理を行ない、出力階調補正処理後のCMYK信号を階調再現処理部28へ出力する。
【0046】
階調再現処理部28は、出力階調補正部27から入力されたCMYK信号に対して、領域分離処理部23から入力された領域識別信号に基づいて、領域に応じた中間調処理を行なう。例えば、領域分離処理部23にて文字に分離された領域に対しては、階調再現処理部28は、高域周波成分の再現に適した高解像度のスクリーンによる二値化又は多値化の処理を行なう。また、領域分離処理部23にて網点に分離された領域に対しては、階調再現処理部28は、階調再現性を重視したスクリーンでの二値化又は多値化の処理を行なう。
次いで、階調再現処理部28は、処理後の画像データをカラー画像出力装置13へ出力する。
【0047】
カラー画像出力装置13は、カラー画像処理装置2から入力されたCMYK信号でなる画像データに基づいて、紙等の記録担体上にCMYKのカラー画像を形成する。画像データに基づいて画像を形成することにより、画像形成装置は、受け付けた画像に基づいた画像を形成する。
【0048】
次に、圧縮処理部3の構成及び圧縮処理部3が行なう処理を説明する。
図2及び図3は、圧縮処理部3が画像を圧縮する処理の概要を示す模式図である。
図2に示す圧縮前の画像は、白地に書かれた「TEST画像」という赤色の文字と、緑色のベタ塗り領域に書かれた「これはテスト画像です」という青色の文字と、多彩な色合いを有する絵とを含んでいる。
図2に示す如く、圧縮処理部3は、入力された画像を文字を表す前景レイヤとその他を表す背景レイヤとに分離する。背景レイヤには、画像から文字を省いたものが含まれる。また、前景レイヤには、各文字の色を示す情報が含まれる。
【0049】
更に、図3に示す如く、圧縮処理部3は、前景レイヤから各色毎に2値画像を生成する。例えば、圧縮処理部3は、図3に示すように、「TEST画像」の文字の画素値を“1”として他の画素値を“0”とした2値画像Aと、「これはテスト画像です」の文字の画素値を“1”として他の画素値を“0”とした2値画像Bとを生成する。2値画像Aには、「TEST画像」の文字の色を示す色情報が付加されており、また、2値画像Bには、「これはテスト画像です」の文字の色を示す色情報が付加されている。
圧縮処理部3は、背景レイヤと色情報が付加された各2値画像とを夫々圧縮することにより、圧縮画像データを生成する。
【0050】
図4は、圧縮処理部3の内部構成を示すブロック図である。
圧縮処理部3は、領域分離処理部23から入力された画像データから前景マスク生成処理部31で文字の画素を示す前景マスクを生成し、前景色インデックス化処理部32で文字の画素の色をインデックス(識別子)で表した前景レイヤを生成する構成となっている。また、圧縮処理部3は、背景レイヤ生成処理部33で背景レイヤを生成し、2値画像生成処理部34で前景レイヤから各色の2値画像を生成し、画像圧縮処理部35で背景レイヤ及び各色の2値画像を圧縮することにより圧縮画像データを生成し、圧縮画像データを出力する構成となっている。
【0051】
以下では、圧縮処理部3の各部について、更に詳細に説明する。
前景マスク生成処理部31は、領域分離処理部23から圧縮処理部3へ入力された画像データを受け付け、受け付けた画像データが表す画像を構成する画素から、文字に対応する画素を前景として抽出し、抽出した画素の位置を示す前景マスクを生成する。抽出した画素以外の画素は、背景の画素である。前景マスク生成処理部31は、本発明における受付手段及び抽出手段に対応する。
【0052】
前景マスク生成処理部31は、具体的には、画素の輝度値に対して画像上の一方向に微分処理を行ない、輝度が明るく変化するエッジ部位と、暗く変化するエッジ部位とを検知し、エッジ部位に基づいて文字画像を2値化する。更に詳細には、前景マスク生成処理部31は、画像上の画素を一方向に走査し、正方向の微分値が出現してから負方向の微分値が出現するまでの範囲を文字の画素として抽出し、抽出した画素の画素値を“1”として他の画素値を“0”とした2値画像を生成する。
以上のようにして生成された2値画像が前景マスクである。前景マスクは、例えば、図2に示す前景レイヤから色情報を省いたものとなる。
【0053】
前景マスク生成処理部31は、生成した前景マスクのデータ、及び画像データを前景色インデックス化処理部32へ出力する。なお、圧縮処理部3は、領域分離処理部23から領域識別信号を受け付け、前景マスク生成処理部31は、領域識別信号が示す文字領域に含まれる画素を抽出する処理を行なう構成であってもよい。
【0054】
図5は、前景色インデックス化処理部32の内部構成を示すブロック図である。
前景色インデックス化処理部32は、本発明における前景レイヤ生成手段に対応する。このために、前景色インデックス化処理部32は、インデックス生成部321、インデックス統合部322、及びインデックス補正部323を備える。
【0055】
ここで、本発明の実施の形態の特徴を説明する。
図6は、圧縮処理部3が圧縮すべき画像の例を示す概念図である。
図中に示すx座標及びy座標は、カラー画像入力装置11でカラー画像を読み取る際の主走査方向及び副走査方向に対応する。座標(x,y)は画像上の画素の位置を示し、座標によって各画素を特定することができる。
図6中の画素群P1〜P6は、夫々前景を示す画素群であり、画素群P1〜P6以外の画素群は、背景を示す画素群である。
【0056】
ここで、画素群P1〜P3が同色(例えば赤色)の画素群であり、画素群P4が全く異なる色(例えば青色)の画素群であり、画素群P5,P6が、夫々画素群P3の色に近似し、且つ、互いに異なる色(例えば画素群P5は薄い赤色、画素群P6は濃い赤色)の画素群であるものとする。
この場合、まず、画素群P1〜P3夫々の各画素に、例えばインデックス“1”が対応付けられ、画素群P4の各画素に、インデックス“2”が対応付けられ、画素群P5の各画素に、インデックス“3”が対応付けられ、画素群P6の各画素に、インデックス“4”が対応付けられる(インデックス対応処理)。
【0057】
仮に、このようにインデックス化された画像(以下、初期インデックス画像という)から、同一のインデックスの画素を含む最小面積の矩形領域を切り出す場合、インデックス“1”については、座標(2,2)〜座標(11,18)の矩形領域が切り出される。
初期インデックス画像に係るインデックスを、以下では初期インデックスということもある。
ところが、この矩形領域は、インデックス“1”の画素を含まない領域(例えば、座標(2,8)〜座標(11,14)の矩形領域)を広く有する。換言すれば、矩形領域はインデックス“1”とは無関係な領域を多量に含む。このため、個々の矩形領域のデータ量が大きくなり、圧縮効率が悪くなる。
【0058】
そこで、圧縮効率を向上させるべく、同一の初期インデックスが対応付けられている画素間の距離を考慮して、インデックスを分離することがなされる。
画素群P1と画素群P2とは互いに距離が近いが、画素群P1,P2夫々と画素群P3とは互いに距離が遠い。従って、画素群P1,P2夫々の各画素に、インデックス“1”がそのまま対応付けられ、画素群P3の各画素に、新たなインデックス“5”が改めて対応付けられる(インデックス分離処理)。
【0059】
仮に、このようにインデックス化された画像(以下、分離インデックス画像という)から、同一のインデックスに対応付けられた画素を含む最小面積の矩形領域を切り出す場合、インデックス“1”については座標(2,2)〜座標(11,7)の矩形領域が切り出され、インデックス“5”については座標(6,15)〜座標(9,18)の矩形領域が切り出される。
分離インデックス画像に係るインデックスを、以下では分離インデックスということもある。
ところが、インデックス分離処理を実行した後は、インデックスの個数が非常に多くなる(即ち、切り出すべき矩形領域の個数が非常に多くなる)虞がある。このため、矩形領域のデータ量の総和が大きくなり、圧縮効率が悪くなる。
【0060】
ところで、従来、インデックスの個数を減少させるために、異なるインデックスの内、近似色が関連付けられているインデックス同士を統合することがなされている。
仮に、画素群P5,P6夫々の各画素に、画素群P3と同じインデックス“5”を対応付けた場合、インデックス数は減少するが、インデックス“5”について切り出される矩形領域は、インデックス“5”の画素を含まない領域を広く有することになる。具体的には、インデックス“5”について座標(1,11)〜座標(15,18)の矩形領域が切り出される。この矩形領域は、インデックス“5”の画素を含まない領域(例えば、座標(1,12)〜座標(15,14)の矩形領域)を広く有する。この結果、圧縮効率が悪くなる。
【0061】
本願発明の最大の特徴は、近似色のインデックス同士を統合する際にも、画素間の距離を考慮することにある。
画素群P3と画素群P6とは互いに距離が近いが、画素群P3と画素群P5とは互いに距離が遠い。従って、画素群P3及び画素群P6について、インデックスの統合が実行され、画素群P3に係るインデックス“3”は変更されない(インデックス統合処理)。
【0062】
ここで、インデックス統合処理の実行による画質の劣化を抑制するために、画素群P3及び画素群P6夫々の画素数が比較される。何故ならば、画素数が少ない方を画素数が多い方に統合した画像は、画素数が多い方を画素数が少ない方に統合した画像に比べて、各画素の色の変化が目立たないからである。
従って、画素群P3に画素群P6が統合され、画素群P6の各画素に、画素群P3と同じインデックス“5”が改めて対応付けられる。
【0063】
このようにインデックス化された画像(以下、統合インデックス画像という)から、同一のインデックスに対応付けられた画素を含む矩形領域を最小面積の切り出す場合、インデックス“3”については座標(12,11)〜座標(15,11)の矩形領域が切り出され、インデックス“5”については座標(1,15)〜座標(9,18)の矩形領域が切り出される。
統合インデックス画像に係るインデックスを、以下では統合インデックスということもある。
【0064】
以上の結果、画素群P1,P2にインデックス“1”、画素群P3,P6にインデックス“5”、画素群P4にインデックス“2”、画素群P5にインデックス“3”が夫々対応付けられ、各インデックスについて矩形領域が切り出される。このため、同一のインデックスが含まれる矩形領域の面積は必要最小限になり、且つ、インデックスの個数が必要最小限になる。
そして、このような統合インデックス画像が、前景レイヤとして出力される。
【0065】
インデックス“4”は、インデックス統合処理によって空インデックスとなるが、インデックス統合処理の実行後に、インデックス“5”をインデックス“4”に変換して、インデックス“5”を空インデックスにすることによって、空インデックスを詰めることができる。なお、インデックス“4”を空インデックスのままにして、インデックス“1”〜“3”,“5”を用いる構成でもよい。
【0066】
図7、図8、及び図9は、初期インデックス画像、分離インデックス画像、及び統合インデックス画像の例を示す概念図である。
本実施の形態では、分離インデックス画像及び統合インデックス画像夫々のデータは生成されるが、初期インデックス画像のデータは生成されない。ただし、分離インデックス画像との比較のために、初期インデックス画像も例示してある。
図7〜図9中に示すx座標は、前景色インデックス化処理部32へ入力された画像データが表す画像中の主走査方向の画素の位置に対応し、y座標は、副走査方向の画素の位置に対応する。各インデックス画像の主走査方向及び副走査方向は、カラー画像入力装置11でカラー画像を読み取る際の主走査方向及び副走査方向に対応する。座標(x,y)は画像上の画素の位置を示し、座標によって各画素を特定することができる。
【0067】
各インデックス画像では、前景マスクで前景とされている各画素に、夫々の色(例えば赤色、及び青色等)を示すインデックスが対応付けられている。前景を示すインデックスは、“1”以上のいずれかの数値を有する。また、各インデックス画像では、前景マスクで背景とされている各画素に、前景の色とは異なる色(例えば白色)を示すインデックスが対応付けられている。背景を示すインデックスは“0”である。
【0068】
図10〜図13は、インデックステーブル、インデックスカラーテーブル、及び座標テーブルの例を示す図表である。
インデックステーブルは、アドレスとインデックスとを関連付けたテーブルである。
【0069】
インデックスカラーテーブルは、アドレスと、RGB各色の色強度で表わされた色情報と、画素数とを関連付けたテーブルである。インデックスカラーテーブルのアドレスは、インデックステーブルのインデックスに対応する。換言すれば、インデックスカラーテーブルは、インデックスと、このインデックスに関連付けられた色情報と、このインデックスが対応付けられた画素の画素数とを関連付けたテーブルである。背景を示すインデックス“0”には、白色を示す色情報と、画素数243とが関連付けられている。以下では、各色の色情報をRGB値(Rの色強度,Gの色強度,Bの色強度)で表わす。例えば、白色はRGB値(255,255,255)と表わされる。
【0070】
座標テーブルは、アドレスと、最小x座標値、最小y座標値、最大x座標値、及び最大y座標値とを関連付けたテーブルである。座標テーブルのアドレスは、インデックステーブルのインデックスに対応する。換言すれば、座標テーブルは、インデックスと、このインデックスが対応付けられた画素の、主走査方向の最小座標値及び最大座標値並びに副走査方向の最小座標値及び最大座標値とを関連付けたテーブルである。
【0071】
図10(a)に示す分離インデックステーブル、図10(b)に示す分離インデックスカラーテーブル、及び図11に示す分離座標テーブルは、図8に示す分離インデックス画像に対応する。
図12(a)に示す統合インデックステーブル、図12(b)に示す統合インデックスカラーテーブル、及び図13に示す統合座標テーブルは、図9に示す統合インデックス画像に対応する。
統合インデックステーブルのアドレスは、分離インデックステーブルのインデックスに対応する。換言すれば、統合インデックステーブルは、分離インデックスと統合インデックスとを関連付けたテーブルである。
【0072】
図8に示す分離インデックス画像において、座標(7,2)〜座標(11,7)の矩形領域に含まれるインデックス“2”の画素(以下、第1の青画素群という)と、座標(10,16)〜座標(12,16)の矩形領域に含まれるインデックス“6”の画素(以下、第2の青画素群という)とは、図10に示す分離インデックスカラーテーブルを参照すればわかるように、いずれもRGB値(0,0,255)の画素(青色の画素)である。
このため、図7に示すように、初期インデックス画像では、第1の青座標群及び第2の青座標群の両方に、インデックス“2”が対応付けられている。
【0073】
しかしながら、図11に示す分離座標テーブルを参照すればわかるように、第1の青画素群と第2の青画素群との副走査方向の最小距離は、第2の青画素群の最小y座標値“16”から第1の青画素群の最大y座標値“7”を減算した減算結果“9”であり、非常に遠い。
このため、図8に示す分離インデックス画像では、第1の青座標群に係るインデックスと及び第2の青座標群に係るインデックスとは分離されて、異なる識別子が対応付けられている。
【0074】
図8に示す分離インデックス画像において、座標(1,14)〜座標(3,18)の矩形領域に含まれるインデックス“5”の画素(以下、第1の緑画素群という)は、図10に示す分離インデックスカラーテーブルを参照すればわかるように、RGB値(120,240,120)の画素(薄い緑色の画素)である。また、座標(4,18)〜座標(4,19)の矩形領域に含まれるインデックス“7”の画素(以下、第2の緑画素群という)は、RGB値(135,240,135)の画素(更に薄い緑色の画素)である。
【0075】
第1の緑画素群の色と第2の緑画素群の色とは非常に近似している。しかも、図11に示す分離座標テーブルを参照すればわかるように、第1の緑画素群と第2の緑画素群との副走査方向の最小距離は、第2の緑画素群の最小y座標値“18”から第1の緑画素群の最大y座標値“18”を減算した減算結果“0”であり、非常に近い。更に、図10に示す分離インデックスカラーテーブルを参照すればわかるように、第1の緑画素群の画素数“11”は第2の緑画素群の画素数“2”より多い。
【0076】
従って、図10(a)に示す分離インデックステーブルにおいてアドレス“7”に関連付けられていたインデックス“7”は、図12(a)に示す統合インデックステーブルではインデックス“5”に変更されている。
また、図12(b)に示す統合インデックスカラーテーブルでは、アドレス“7”に関連付けられていた色情報及び画素数が、夫々デフォルト値(本実施の形態では“0”)に変更されている。更に、アドレス“5”に関連付けられていた画素数が、“13”に変更されている。画素数“13”とは、図12(b)に示す分離インデックスカラーテーブルでアドレス“5”に関連付けられていた画素数“11”とアドレス“7”に関連付けられていた画素数“2”とを加算した加算結果である。
【0077】
更に、図13に示す統合座標テーブルでは、アドレス“7”に関連付けられていた各種座標値がデフォルト値に変更されている。最小x座標値のデフォルト値は、画像の主走査方向の画素数以上の数値である“4095”であり、最小y座標値のデフォルト値は、画像の副走査方向の画素数以上の数値である“8191”であり、最大x座標値のデフォルト値は“0”であり、最大y座標値のデフォルト値は“0”である。ここでは、A3サイズで解像度が300dpiの画素数に基づいて、デフォルト値が設定されている。
【0078】
更にまた、統合座標テーブルでは、アドレス“5”に関連付けられていた各種座標値が、インデックス“5”が対応付けられた画素が存在する矩形領域の最小x座標値“1”、最小y座標値“14”、最大x座標値“4”、及び最大y座標値“19”に変更されている。ここで、図11に示す分離座標テーブルを参照すればわかるように、図13に示す統合座標テーブルにおけるインデックス“5”の最小x座標値及び最小y座標値は、分離座標テーブルにおけるインデックス“5”,“7”夫々の最小x座標値及び最小y座標値の内の最小値に等しく、統合座標テーブルにおけるインデックス“5”の最大x座標値及び最大y座標値は、分離座標テーブルにおけるインデックス“5”,“7”夫々の最大x座標値及び最大y座標値の内の最大値に等しい。
【0079】
図5に示すインデックス生成部321では、前景レイヤのデータ及び画像データに基づいて、インデックス対応処理とインデックス分離処理とが実行される。インデックス生成部321は、本発明における識別子対応手段及び識別子分離手段に対応する。
インデックス対応処理では、各画素の色に応じて、特定の色に関連付けられたインデックスを各画素に対応付けることがなされる。
また、インデックス分離処理では、インデックス対応処理で同一のインデックスが対応付けられた画素の内、画像上で所定の第1距離より離隔している画素間でインデックスを分離することがなされる。本実施の形態では、この第1距離として、後述する図22に示す第1最小距離Δy1を用いる。
【0080】
ただし、インデックス生成部321は、1枚分の画像データの各画素に対してインデックス対応処理及びインデックス分離処理を実行して分離インデックス画像のデータを生成する構成である(後述する図14〜図16に示すフローチャート参照)。つまり、インデックス生成部321は、1枚分の画像データに対してインデックス対応処理を実行して初期インデックス画像のデータを生成し、次いで、初期インデックス画像のデータに対してインデックス分離処理を実行して分離インデックス画像のデータを生成する構成ではない。
【0081】
従って、インデックス生成部321からは、図8、図10及び図11に示すような分離インデックス画像のデータ、分離インデックステーブル、分離インデックスカラーテーブル、及び分離座標テーブルが出力される。
インデックス生成部321では、初期インデックスを一時的に記憶しておくための初期インデックステーブルも生成する。初期インデックステーブルに記憶される初期インデックスは、分離インデックステーブルのアドレスに対応する。
初期インデックステーブルは、インデックス生成部321の後段では使用されない。
【0082】
図14〜図16は、インデックス生成部321が行なう処理の手順を示すフローチャートである。
図14に示すように、インデックス生成部321は、初期インデックステーブルと、分離インデックステーブル、分離インデックスカラーテーブル、及び分離座標テーブルと、分離インデックス画像とを生成する(S11)。
S11の処理が実行されることによって、初期インデックステーブルには、アドレス“0”,“1”,“2”,…と、初期インデックスのデフォルト値“0”とが記憶され、分離インデックステーブルには、アドレス“0”,“1”,“2”,…と、分離インデックスのデフォルト値とが記憶される。分離インデックスのデフォルト値は、分離インデックスに関連付けられているアドレスに等しい。
【0083】
また、分離インデックスカラーテーブルには、アドレス“0”,“1”,“2”,…と、RGB値のデフォルト値と、画素数のデフォルト値“0”とが記憶される。アドレス“0”に関連付けられるRGB値のデフォルト値はRGB値(255,255,255)であるが、アドレス“0”以外のアドレスに関連付けられるRGB値のデフォルト値はRGB値(0,0,0)である。
分離座標テーブルには、アドレス“0”,“1”,“2”,…と、各種座標値のデフォルト値とが記憶される。
分離インデックス画像の各画素には、デフォルト値として、インデックス“0”(即ち背景のインデックス)が付与される。
【0084】
S11の処理終了後、インデックス生成部321は、初期インデックスカウンタidxcnt及び副走査カウンタycntを夫々“0”にリセットする(S12)。初期インデックスカウンタidxcntは、本処理にて初期インデックスを付与するためのカウンタである。副走査カウンタycntは、注目画素の画像上の副走査方向の画素位置を示すカウンタである。
次いで、インデックス生成部321は、副走査カウンタycntが、画像の副走査方向の画素数より小さいか否かを判定する(S13)。副走査カウンタycntが副走査方向の画素数以上である場合(S13でNO)、1枚分の画像データの入力が全て終了したため、インデックス生成部321は、本処理を終了する。
【0085】
副走査カウンタycntが、副走査方向の画素数より小さい場合(S13でYES)、インデックス生成部321は、主走査カウンタxcntを“0”にリセットする(S14)。主走査カウンタxcntは、注目画素の画像上の主走査方向の画素位置を示すカウンタである。
次いで、インデックス生成部321は、主走査カウンタxcntが、画像の主走査方向の画素数より小さいか否かを判定する(S15)。主走査カウンタxcntが主走査方向の画素数以上である場合(S15でNO)、1ライン分の主走査方向の画素の選択が全て終了したため、インデックス生成部321は、副走査カウンタycntをインクリメントし(S16)、処理をS13へ戻す。
【0086】
主走査カウンタxcntが、主走査方向の画素数より小さい場合(S15でYES)、インデックス生成部321は、S17以降の処理を実行する。このとき、注目画素の位置は、主走査カウンタxcntと副走査カウンタycntとで表現される。本実施の形態においては、注目画素(xcnt,ycnt)が、選択中の画素である。また、注目画素(xcnt,ycnt)が選択されるよりも前に選択された各画素が、選択済みの画素である。
インデックス生成部321は、前景マスクを参照し、注目画素(xcnt,ycnt)が前景の画素であるか否かを判定する(S17)。
【0087】
注目画素(xcnt,ycnt)が背景の画素である場合(S17でNO)、インデックス生成部321は、アドレスaddrに“0”を代入し(S18)、分離インデックスカラーテーブルをアドレスaddrについて更新する(S19)。S19の処理では、インデックス生成部321は、アドレスaddrに関連付けられた画素数(即ち背景の画素数)をインクリメントする。
次いで、インデックス生成部321は、座標テーブル更新処理のサブルーチン(後述する図17参照)を呼び出すことによって、分離座標テーブルをアドレスaddrについて更新する(S20)。
S20の処理終了後、インデックス生成部321は、主走査カウンタxcntをインクリメントして(S21)、処理をS15へ戻す。
【0088】
図17は、座標テーブル更新処理のサブルーチンの処理の手順を示すフローチャートである。
以下では、アドレスaddrに関連付けられている最小x座標値、最小y座標値、最大x座標値、及び最大y座標値を、最小x座標値xmin[addr]、最小y座標値ymin[addr]、最大x座標値xmax[addr]、及び最大y座標値ymax[addr]と記載する。
インデックス生成部321は、分離座標テーブルに記録された最小x座標値xmin[addr]が主走査カウンタxcntより大きいか否かを判定する(S31)。
最小x座標値xmin[addr]が主走査カウンタxcntより大きい場合(S31でYES)、インデックス生成部321は、アドレスaddrに関連付けられた最小x座標値xmin[addr]に主走査カウンタxcntを代入する(S32)。
【0089】
S32が終了した場合、又はS31で最小x座標値xmin[addr]が主走査カウンタxcnt以下である場合(S31でNO)、インデックス生成部321は、分離座標テーブルに記録された最小y座標値ymin[addr]が副走査カウンタycntより大きいか否かを判定する(S33)。
最小y座標値ymin[addr]が副走査カウンタycntより大きい場合(S33でYES)、インデックス生成部321は、アドレスaddrに関連付けられた最小y座標値ymin[addr]に副走査カウンタycntを代入する(S34)。
【0090】
S34が終了した場合、又はS33で最小y座標値ymin[addr]が副走査カウンタycnt以下である場合(S33でNO)、インデックス生成部321は、分離座標テーブルに記録された最大x座標値xmax[addr]が主走査カウンタxcntより小さいか否かを判定する(S35)。
最大x座標値xmax[addr]が主走査カウンタxcntより小さい場合(S35でYES)、インデックス生成部321は、アドレスaddrに関連付けられた最大x座標値xmax[addr]に主走査カウンタxcntを代入する(S36)。
【0091】
S36が終了した場合、又はS35で最大x座標値xmax[addr]が主走査カウンタxcnt以上である場合(S35でNO)、インデックス生成部321は、分離座標テーブルに記録された最大y座標値ymax[addr]が副走査カウンタycntより小さいか否かを判定する(S37)。
最大y座標値ymax[addr]が副走査カウンタycntより小さい場合(S37でYES)、インデックス生成部321は、アドレスaddrに関連付けられた最大y座標値ymax[addr]に副走査カウンタycntを代入する(S38)。
【0092】
S38が終了した場合、又はS37で最大y座標値ymax[addr]が副走査カウンタycnt以上である場合(S37でNO)、インデックス生成部321は、座標テーブル更新処理のサブルーチンの処理を終了し、処理をメインルーチンへ戻す。
【0093】
図14に示すように、注目画素(xcnt,ycnt)が前景の画素である場合(S17でYES)、図15に示すように、インデックス生成部321は、注目画素(xcnt,ycnt)の色情報に基づいて、減色処理を行なう(S41)。
S41における減色処理としては、例えば特許文献1に記載された方法を用いることができる。この場合の減色処理とは、画像データに含まれる各画素の色情報に対し、予め定められた色数への減色を行なう処理である。例えば、RGB各色の色強度を8ビットで表している色情報のビット数を、2−2−2、3−3−2、又は3−3−3ビット等のビット数に落とす。ビット数の選び方は、色判定をどの程度の精度で行なうかによって任意に選択可能である。
【0094】
図18は、減色処理テーブルの例を示す図表である。
本実施の形態では、RGB各色情報のビット数を2−2−2とした場合に、図18に示す減色処理テーブルを用いて、減色処理が行なわれる。この場合、RGB各色は夫々4階調となる。
減色処理テーブルでは、Rの色強度、Gの色強度、及びBの色強度と、Rの減色結果col_r 、Gの減色結果col_g 、及びGの減色結果col_b とが関連付けられている。このような減色処理テーブルは、図示しないメモリに予め記憶されている。
S41では、インデックス生成部321は、減色処理テーブルを参照し、注目画素(xcnt,ycnt)の色情報に基づいて、減色結果col_r ,col_g ,col_b を取得する。
【0095】
次いで、インデックス生成部321は、減色結果を初期インデックスに対応付けるために、初期インデックステーブルへのアドレスcoladrを、下記の式(5)を用いて算出する(S42)。この結果、アドレスcoladrは“0”以上、“63”以下の範囲内のいずれかの値を取る。つまり、色情報に対して最大64通りの初期インデックスを付与することができる。
coladr=col_r +col_g ×4+col_b ×16…(5)
【0096】
以下に、初期インデックステーブルへのアドレスcoladrの具体例を挙げる。
注目画素(xcnt,ycnt)=(2,2)はRGB値(128,0,128)である(図8に示す分離インデックス画像及び図10(b)に示す分離インデックスカラーテーブル参照)。この場合、図18に示す減色処理テーブルを参照すると、減色結果col_r ,col_g ,col_b =2,0,2となるため、初期インデックステーブルへのアドレスcoladrは、以下の式(6)のように算出される。
coladr=2+0×4+2×16=34…(6)
【0097】
以下では、注目画素(xcnt,ycnt)=(2,2)を第1の注目画素(2,2)という。第1の注目画素(2,2)は、インデックスが分離されない画素の例である。このため、第1の注目画素(2,2)に対応付けられる分離後インデックスは、初期インデックスに等しい。
【0098】
注目画素(xcnt,ycnt)=(10,16)はRGB値(0,0,255)である。この場合、減色結果col_r ,col_g ,col_b =0,0,3となるため、初期インデックステーブルへのアドレスcoladrは、以下の式(7)のように算出される。
coladr=0+0×4+3×16=48…(7)
【0099】
以下では、注目画素(xcnt,ycnt)=(10,16)を第2の注目画素(10,16)という。第2の注目画素(10,16)は、インデックスが分離される画素の例である。このため、第2の注目画素(10,16)に対応付けられる分離後インデックスは、初期インデックスとは異なる。
【0100】
次いで、インデックス生成部321は、初期インデックステーブルを参照し、アドレスcoladrのインデックスtmpidx[coladr]を読み出し、読み出したインデックスtmpidx[coladr]が“0”であるか否かを判定する(S43)。S43の判定処理は、インデックスtmpidx[coladr]が未登録であるか登録済みであるかを判定する処理である。
インデックスtmpidx[coladr]が“0”である場合(S43でYES)、インデックスtmpidx[coladr]が未登録である。このため、インデックス生成部321は、初期インデックスカウンタidxcntをインクリメントする(S44)。
【0101】
図19及び図20は、第1の注目画素(2,2)及び第2の注目画素(10,16)に対する処理の手順を説明するための図表である。図19及び図20夫々の(a)は初期インデックステーブルを示し、(b)は分離座標テーブルを示し、(c)は分離インデックスカラーテーブルを示している。
図19(a)に示すように、coladr=34である第1の注目画素(2,2)は、インデックスtmpidx[coladr]=0である。このため、第1の注目画素(2,2)には、初期インデックス“1”が新規に付与される。
【0102】
次いで、インデックス生成部321は、分離インデックス画像を更新する(S45)。具体的には、インデックス生成部321は、分離インデックス画像における注目画素(xcnt,ycnt)の画素値に、初期インデックスカウンタidxcntを上書きする。
更に、インデックス生成部321は、アドレスaddrにインデックスtmpidx[coladr]を代入し(S46)、座標テーブル更新処理のサブルーチン(図17参照)を呼び出すことによって、分離座標テーブルをアドレスaddrについて更新する(S47)。
【0103】
図19(a)に示すように、第1の注目画素(2,2)に対応付けられたインデックスtmpidx[coladr]=1である。このため、S45の処理を実行することによって、図8(b)に示すように、分離インデックス画像における座標(2,2)の画素の画素値が“1”になる。また、S47の処理を実行することによって、図19(b)に示すように分離座標テーブルが更新される。この結果、分離座標テーブルでは、アドレス“1”に関連付けて、最小x座標値“2”、最小y座標値“2”、最大x座標値“2”、及び最大y座標値“2”が記憶される。
【0104】
更にまた、インデックス生成部321は、インデックスカラーテーブル更新処理のサブルーチン(後述する図21参照)を呼び出すことによって、分離インデックスカラーテーブルをアドレスaddrについて更新する(S48)。
図19(a)に示すように、第1の注目画素(2,2)に対応付けられたインデックスtmpidx[coladr]=1である。このため、S48の処理を実行することによって、図19(c)に示すように分離インデックスカラーテーブルが更新される。S48の処理の実行以前は、アドレス“1”に関連付けられた色情報はRGB値(0,0,0)であり、画素数は“0”であるため、S48の処理の結果、分離インデックスカラーテーブルでは、アドレス“1”に関連付けて、RGB値(128,0,128)と画素数“1”とが記憶される。
【0105】
図21は、インデックスカラーテーブル更新処理のサブルーチンの処理の手順を示すフローチャートである。
インデックス生成部321は、分離インデックスカラーテーブルを参照して、アドレスaddrに関連付けられている画素数が“0”であるか否かを判定する(S51)。S51の判定処理は、初期インデックステーブルの初期インデックス“addr”に対応付けられたRGB値が未登録であるか登録済みであるかを判定する処理である。
【0106】
画素数が“0”である場合(S51でYES)、RGB値は未登録であるため、インデックス生成部321は、注目画素(xcnt,ycnt)のRGB値を分離インデックスカラーテーブルに記憶させ(S52)、画素数をインクリメントして(S53)、インデックスカラーテーブル更新処理のサブルーチンの処理を終了し、処理をメインルーチンへ戻す。
【0107】
S52の処理を実行する場合、初期インデックス“addr”に対応付けるべきRGB各色の色強度rcol[addr],gcol[addr],bcol[addr]は、注目画素(xcnt,ycnt)の色強度rcol[注目画素],gcol[注目画素],bcol[注目画素]を用いて、以下の式(8)〜(10)のように算出される。
rcol[addr]←rcol[注目画素]…(8)
gcol[addr]←gcol[注目画素]…(9)
bcol[addr]←bcol[注目画素]…(10)
【0108】
画素数が“0”ではない場合(S51でNO)、RGB値は登録済みであるため、インデックス生成部321は、分離インデックスカラーテーブルからアドレスaddrに関連付けられているRGB値を読み出し、読み出したRGB値と注目画素(xcnt,ycnt)のRGB値とに基づき、RGB各色の色強度の平均値を算出する(S54)。
次いで、インデックス生成部321は、S54で算出したRGB各色の色強度の平均値をアドレスaddrに関連付けて分離インデックスカラーテーブルに記憶させ(S55)、処理をS53へ移す。
【0109】
S54の処理を実行する場合、初期インデックス“addr”に対応付けるべきRGB各色の色強度rcol[addr],gcol[addr],bcol[addr]は、既に初期インデックス“addr”に対応付けられているRGB各色の色強度rcol[addr],gcol[addr],bcol[addr]を用いて、以下の式(11)〜(13)のように算出される。
rcol[addr]←{rcol[addr]+rcol[注目画素]}/2…(11)
gcol[addr]←{gcol[addr]+gcol[注目画素]}/2…(12)
bcol[addr]←{bcol[addr]+bcol[注目画素]}/2…(13)
【0110】
ところで、S54の処理は非常に簡易であるが、平均値を算出する都度、色強度rcol[addr],gcol[addr],bcol[addr]が誤差を含んでしまう虞がある。
このような不都合を回避するためには、例えば、S54の処理で、インデックス生成部321が、前述の式(11)〜(13)の代わりに、以下の式(14)〜(16)を用いて色強度rcol[addr],gcol[addr],bcol[addr]を算出し、算出した色強度rcol[addr],gcol[addr],bcol[addr]を、S55の処理で分離インデックスカラーテーブルに記憶させることが考えられる。
【0111】
rcol[addr]←rcol[addr]+rcol[注目画素]…(14)
gcol[addr]←gcol[addr]+gcol[注目画素]…(15)
bcol[addr]←bcol[addr]+bcol[注目画素]…(16)
このような式(14)〜(16)は、注目画素(xcnt,ycnt)の色強度を単純に加算したものである。
【0112】
そして、インデックス生成部321は、S13でNOの場合、即ち1枚分の画像データの入力が全て終了した場合に、分離インデックスカラーテーブルを更新する処理を実行する。このとき、インデックス生成部321は、変数tempad=1,2,…を順に発生させ、分離インデックスカラーテーブルにおいて、アドレスtempadに関連付けられた画素数cnt [tempad]を用い、最終的な色強度rcol[tempad],gcol[tempad],bcol[tempad]を、以下の式(17)〜(19)のように算出する。最後に、インデックス生成部321は、算出した色強度rcol[tempad],gcol[tempad],bcol[tempad]を、分離インデックスカラーテーブルに記憶させる。
【0113】
rcol[tempad]←rcol[tempad]/cnt [tempad]…(17)
gcol[tempad]←gcol[tempad]/cnt [tempad]…(18)
bcol[tempad]←bcol[tempad]/cnt [tempad]…(19)
【0114】
図15に示すS48の処理が終了することによって、注目画素(xcnt,ycnt)に対する処理が終了する。そこで、インデックス生成部321は、処理を図14に示すS21へ戻す。この後、インデックス生成部321は、S21で主走査カウンタxcntをインクリメントしてから、注目画素(xcnt,ycnt)について、S15以降の処理を実行する。
【0115】
図15に示すように、インデックスtmpidx[coladr]が“0”ではない場合(S43でNO)、インデックスtmpidx[coladr]は登録済みである。このため、インデックス生成部321は、図16に示すように、アドレスaddrにインデックスtmpidx[coladr]を代入し(S61)、分離座標テーブルを参照して、アドレスaddrに関連付けられている最大y座標値ymax[addr]を読み出す(S62)。
次いで、インデックス生成部321は、副走査カウンタycntから最大y座標値ymax[addr]を減算した結果を第1最小距離Δy1に代入し(S63)、第1最小距離Δy1が所定の第1閾値lm_y1 より大きいか否かを判定する(S64)。
ここで、本実施の形態では、第1閾値lm_y1 =3とする。
【0116】
図22は、注目画素(xcnt,ycnt)と副走査方向の第1最小距離Δy1との関係を示す模式図である。
注目画素(xcnt,ycnt)は、画像上の座標(xcnt,ycnt)で位置が指定される。注目画素(xcnt,ycnt)のインデックスは、初期インデックステーブルを参照すればわかるように、インデックスtmpidx[coladr]である。
図22中にハッチングで示した領域は、注目画素(xcnt,ycnt)のインデックスと同一のインデックス(以下、同一インデックスという)が対応付けられている画素が占める領域である。この領域に含まれる画素の座標の最小値及び最大値が、最小x座標値xmin[addr]、最小y座標値ymin[addr]、最大x座標値xmax[addr]、及び最大y座標値ymax[addr]である。ただし、図22中は「[addr]」の記載は省略してある。
【0117】
本実施の形態においては、この領域に含まれる画素の内でy座標が最大値である画素と注目画素(xcnt,ycnt)とのy座標値の差を、副走査方向の第1最小距離Δy1としている。注目画素(xcnt,ycnt)は座標(0,0)の位置から順に選択されるので、第1最小距離Δy1は、注目画素(xcnt,ycnt)と、選択済みの画素の内で同一インデックスが対応付けられた画素との間の最小距離となる。
【0118】
図20(a)に示すように、coladr=48である第2の注目画素(10,16)は、インデックスtmpidx[coladr]=2である。このため、S61の処理で、アドレスaddrに“2”が代入され、S62の処理で、図20(a)に示す分離座標テーブルが参照されて、最大y座標値ymax[addr]=7が読み出される。更に、S63の処理で、第1最小距離Δy1=16−7=9が算出されて、S64で、第1最小距離Δy1が第1閾値lm_y1 より大きいと判定される。
【0119】
つまり、S64の判定処理は、注目画素(xcnt,ycnt)が、同一インデックスを対応付けられた他の画素から第1距離より離隔しているか否かを判定する処理である。
第1最小距離Δy1>第1閾値lm_y1 である場合(S64でYES)、インデックス生成部321は、処理を図15に示すS44へ移す。
【0120】
図20(b),(c)に示すように、第2の注目画素(10,16)を処理する直前の初期インデックスカウンタidxcntの値は“5”であるため、S44の処理で、初期インデックスカウンタidxcntの値は“6”になる。
従って、図20(a)に示すように、coladr=48である第2の注目画素(10,16)には、初期インデックス“2”ではなく、分離インデックス“6”が新規に付与される。このため、S45の処理を実行することによって、図8(b)に示すように分離インデックス画像における座標(10,16)の画素の画素値が“6”になる。座標(10,16)の画素に、画素値“2”が与えられることはない。
【0121】
更に、S47の処理を実行することによって、図20(b)に示すように分離座標テーブルが更新される。この結果、分離座標テーブルでは、アドレス“6”に関連付けて、最小x座標値“10”、最小y座標値“16”、最大x座標値“10”、及び最大y座標値“16”が記憶される。
【0122】
更にまた、S48の処理を実行することによって、図20(c)に示すように分離インデックスカラーテーブルが更新される。S48の処理の実行以前は、アドレス“6”に関連付けられた色情報はRGB値(0,0,0)であり、画素数は“0”であるため、S48の処理の結果、分離インデックスカラーテーブルでは、アドレス“6”に関連付けて、RGB値(0,0,255)と画素数“1”とが記憶される。
分離座標テーブル及び分離インデックスカラーテーブルにおいて、アドレス“2”に関連付けられている各種の数値は変更されない。
【0123】
以上のようにインデックスの分離が行なわれた後で、注目画素(xcnt,ycnt)に初期インデックス“2”が対応付けられることはない。何故ならば、第2の注目画素(10,16)以降に選択される注目画素(xcnt,ycnt)と、インデックス“2”が対応付けられている画素との第1最小距離Δy1は、常に第1閾値lm_y1 よりも大きいからである。
【0124】
図16に示すように、第1最小距離Δy1≦第1閾値lm_y1 である場合(S64でNO)、インデックス生成部321は、分離インデックス画像を更新する(S65)。具体的には、インデックス生成部321は、分離インデックス画像における注目画素(xcnt,ycnt)の画素値に、インデックスtmpidx[coladr]を上書きする。
S65の処理の終了後、インデックス生成部321は、処理を図15に示すS47へ移す。
【0125】
ところで、分離インデックスカラーテーブルに記憶されている分離インデックスは、デフォルト値のままでよい。何故ならば、S13でNOの場合、即ち1枚分の画像データの入力が全て終了した場合に、分離インデックスカラーテーブル及び分離座標テーブル夫々のアドレスは、分離インデックスに等しいからである。
【0126】
図5に示すインデックス統合部322では、分離インデックス画像のデータ、分離インデックステーブル、分離インデックスカラーテーブル、及び分離座標テーブルに基づいて、インデックス統合処理が実行される。インデックス統合部322は、本発明における識別子統合手段に対応する。
【0127】
インデックス統合処理では、インデックス対応処理及びインデックス分離処理の実行によって異なる識別子が対応付けられた画素の内、色同士が所定の範囲内で近似し、且つ、画像上で所定の第2距離より近接している画素間でインデックスを統合することがなされる。本実施の形態では、この第2距離として、後述する図23に示す第2最小距離Δy2を用いる。
インデックス統合部322からは、図12及び図13に示す統合インデックステーブル、統合インデックスカラーテーブル、及び統合座標テーブルが出力される。
【0128】
図23は、異なるインデックスが対応付けられた2個の領域と副走査方向の第2最小距離Δy2との関係を示す模式図である。
図23中に右上がりのハッチングで示した領域は、分離インデックステーブルに記憶されている一の分離インデックスが対応付けられている画素が占める領域(以下、第1領域I1という)である。一方、右下がりのハッチングで示した領域は、一の分離インデックスとは異なる他の分離インデックスが対応付けられている画素が占める領域(以下、第2領域I2という)である。ただし、第1領域I1の分離インデックスに関連付けられたアドレスは、第2領域I2の分離インデックスに関連付けられたアドレスよりも小さいものとする。
【0129】
第1領域I1に含まれる画素の座標の最小値及び最大値は、最小x座標値xmin1 、最小y座標値ymin1 、最大x座標値xmax1 、及び最大y座標値ymax1 である。また、この画素の画素数は画素数cnt1である。
第2領域I2に含まれる画素の座標の最小値及び最大値は、最小x座標値xmin2 、最小y座標値ymin2 、最大x座標値xmax2 、及び最大y座標値ymax2 である。この画素の画素数は画素数cnt2である。
最小x座標値xmin1 ,xmin2 、最小y座標値ymin1 ,ymin2 、最大x座標値xmax1 ,xmax2 、最大y座標値ymax1 ,ymax2 、及び画素数cnt1,cnt2は、分離インデックステーブル及び分離座標テーブルを参照すれば容易にわかる。
【0130】
本実施の形態においては、第1領域I1の最大y座標値ymax1 と第2領域I2の最小y座標値ymin2 との差を、副走査方向の第2最小距離Δy2としている。
一の分離インデックスに関連付けられた第1の色と、他の分離インデックスに関連付けられた第2の色とは、分離インデックステーブル及び分離インデックスカラーテーブルを参照すれば容易にわかる。
第1の色と第2の色とが近似しており、且つ、第2最小距離Δy2が所定の第2閾値lm_y2 以下である場合は、インデックスの統合が行なわれる。このとき、インデックスの統合による画質の劣化を抑制するために、第1領域I1の画素数cnt1と第2領域I2の画素数cnt2とを比較し、少ない方が多い方に統合されるようにする。
【0131】
第1の色と第2の色とが近似していない場合、インデックスの統合は行なわれない。また、第1の色と第2の色とが近似している場合であっても、第2最小距離Δy2が所定の第2閾値lm_y2 より大きい場合は、インデックスの統合は行なわれない。
【0132】
図24及び図25は、インデックス統合部322が行なう処理の手順を示すフローチャートである。
インデックス統合部322は、カウンタi に“1”をセットする(S71)。カウンタi は、第1のインデックス“i ”を示す。
次に、インデックス統合部322は、カウンタi が初期インデックスカウンタidxcnt以下であるかどうかを判定する(S72)。
初期インデックスカウンタidxcntの値は、分離インデックステーブルに記憶されている分離インデックスの個数である。従って、i >idxcntである場合(S72でNO)、全ての分離インデックスに対する処理が終わったため、インデックス統合部322は、本処理を終了する。
【0133】
i ≦idxcntである場合(S72でYES)、インデックス統合部322は、下記の式(20)を用いて、カウンタj を演算する(S73)。カウンタj は、第1のインデックス“i ”と色情報同士を比較すべき第2のインデックス“j ”を示す。
j =i +1…(20)
【0134】
次に、インデックス統合部322は、カウンタj が初期インデックスカウンタidxcnt以下であるかどうかを判定する(S74)。
j >idxcntである場合(S74でNO)、第1のインデックス“i ”と全ての分離インデックスとの色情報同士の比較が終わったため、インデックス統合部322は、カウンタi をインクリメントして(S75)、処理をS72へ戻す。
【0135】
j ≦idxcntである場合(S74でYES)、インデックス統合部322は、分離インデックステーブル及び分離インデックスカラーテーブルを参照して、第1のインデックス“i ”の色情報と第2のインデックス“j ”の色情報とを読み出す(S76)。具体的には、インデックス統合部322は、分離インデックスカラーテーブルを参照し、カウンタi をアドレスとしてRGB各色の色強度rcol[i ],gcol[i ],bcol[i ]を読み出し、カウンタj をアドレスとしてRGB各色の色強度rcol[j ],gcol[j ],bcol[j ]を読み出す。
【0136】
次に、インデックス統合部322は、第1のインデックス“i ”の色情報と第2のインデックス“j ”の色情報とが所定範囲内で近似しているか否かを判定する。
このために、インデックス統合部322は、下記の式(21)を用いて、演算結果Δcol を演算する(S77)。演算結果Δcol とは、第1のインデックス“i ”及び第2のインデックス“j ”夫々のRGB各色の色強度の差の絶対値の加算結果である。
【0137】
Δcol =|rcol[i ]−rcol[j ]|
+|gcol[i ]−gcol[j ]|
+|bcol[i ]−bcol[j ]|…(21)
【0138】
演算結果Δcol が所定範囲内である場合、インデックス統合部322は、第1のインデックス“i ”の色情報と第2のインデックス“j ”の色情報とが所定範囲内で近似していると判定する。
このために、インデックス統合部322は、図25に示すように、演算結果Δcol が閾値th_col以下であるか否かを判定する(S78)。本実施の形態では、閾値th_col=40とする。
【0139】
以下に具体例を述べる。図10(b)に示す分離インデックスカラーテーブルにおいて、カウンタ“5”をアドレスとして色情報を読み出した場合、色強度rcol[5]は“120”、gcol[5]は“240”、bcol[5]は“120”である。また、カウンタ“7”をアドレスとして色情報を読み出した場合、色強度rcol[7]は“135”、gcol[7]は“240”、bcol[7]は“135”である。従って、演算結果Δcol は式(22)のように演算される。
【0140】
Δcol =|rcol[5]−rcol[7]|
+|gcol[5]−gcol[7]|
+|bcol[5]−bcol[7]|
=|120−135|+|240−240|+|120−135|
=30…(22)
演算結果Δcol は“30”、即ち閾値th_col=40以下であるため、インデックス統合部322は、第1のインデックス“5”の色情報と第2のインデックス“7”の色情報とが所定範囲内で近似していると判定する。
【0141】
Δcol ≦th_col以下である場合(S78でYES)、インデックス統合部322は、第1のインデックス“i ”と第2のインデックス“j ”とを統合候補とし、第1のインデックス“i ”が対応付けられている画素と第2のインデックス“j ”が対応付けられている画素とが第2距離より近接しているか否かを判定する。
【0142】
このために、インデックス統合部322は、分離インデックステーブル及び分離座標テーブルを参照して、第1のインデックス“i ”が対応付けられている画素の最大y座標値ymax[i ]と第2のインデックス“j ”が対応付けられている画素の最小y座標値ymin[j ]とを読み出す(S79)。具体的には、インデックス統合部322は、分離座標テーブルを参照し、カウンタi をアドレスとして最大y座標値ymax[i ]を読み出し、カウンタj をアドレスとして最小y座標値ymin[j ]を読み出す。
【0143】
次に、インデックス統合部322は、式(23)を用いて、第2最小距離Δy2を演算する(S80)。
Δy2=ymin[j ]−ymax[i ]…(23)
次いで、インデックス統合部322は、第2最小距離Δy2が所定の第2閾値lm_y2 より大きいか否かを判定する(S81)。
ここで、本実施の形態では、第2閾値lm_y2 =3とする。
【0144】
以下に具体例を述べる。図11に示す分離座標テーブルにおいて、カウンタ“5”をアドレスとして読み出される最大y座標値ymax[5]は“18”であり、カウンタ“7”をアドレスとして読み出される最大y座標値ymax[7]は“18”である。従って、第2最小距離Δy2=18−18=0、即ち第2閾値lm_y2 =3以下であるため、インデックス統合部322は、第1のインデックス“5”が対応付けられた画素と第2のインデックス“7”が対応付けられた画素とが画像上で所定の第2距離より近接していると判定する。
【0145】
Δy2≦lm_y2 である場合(S81でNO)、インデックス統合部322は、第1のインデックス“i ”と第2のインデックス“j ”との統合を決定し、第1のインデックス“i ”を第2のインデックス“j ”に統合するか、第2のインデックス“j ”を第1のインデックス“i ”に統合するかを判定する。
【0146】
このために、インデックス統合部322は、分離インデックステーブル及び分離インデックスカラーテーブルを参照して、第1のインデックス“i ”が対応付けられている画素数cnt [i ]と第2のインデックス“j ”が対応付けられている画素数cnt [j ]とを読み出す(S82)。具体的には、インデックス統合部322は、分離インデックスカラーテーブルを参照し、カウンタi をアドレスとして画素数cnt [i ]を読み出し、カウンタj をアドレスとして画素数cnt [j ]を読み出す。
更に、インデックス統合部322は、第1のインデックス“i ”が対応付けられている画素数cnt [i ]が、第2のインデックス“j ”が対応付けられている画素数cnt [j ]以上であるか否かを判定する(S83)。
【0147】
以下に具体例を述べる。図10(b)に示す分離インデックスカラーテーブルにおいて、カウンタ“5”をアドレスとして読み出される画素数cnt [5]は“11”であり、カウンタ“7”をアドレスとして読み出される画素数cnt [5]は“2”である。従って、cnt [5]≧cnt [7]であるため、インデックス統合部322は、第1のインデックス“5”に、第2のインデックス“7”を統合すると判定する。
【0148】
cnt [i ]≧cnt [j ]である場合(S83でYES)、第1のインデックス“i ”に第2のインデックス“j ”を統合べく、インデックス統合部322は、カウンタk1,k2にカウンタi ,j を代入して(S84)、各種テーブル更新処理のサブルーチン(後述する図26及び図27参照)を呼び出すことによって(S85)、インデックスを統合する。
cnt [i ]<cnt [j ]である場合(S83でNO)、第2のインデックス“j ”に第1のインデックス“i ”を統合べく、インデックス統合部322は、カウンタk1,k2にカウンタj ,i を代入して(S86)、処理をS85へ移す。
【0149】
S85の処理完了後、インデックス統合部322は、後述するS87の処理を実行する。
また、Δcol >th_colである場合(S78でNO)、インデックス統合部322は、第1のインデックス“i ”と第2のインデックス“j ”とを統合せず、S87の処理を実行する。更にまた、Δy2>lm_y2 である場合(S81でYES)、インデックス統合部322は、第1のインデックス“i ”と第2のインデックス“j ”とを統合せず、S87の処理を実行する。
インデックス統合部322は、カウンタj をインクリメントし(S87)、処理を図24に示すS74へ戻す。
【0150】
図26及び図27は、各種テーブル更新処理のサブルーチンの処理の手順を示すフローチャートである。
図26に示すように、インデックス統合部322は、分離インデックステーブルにおいて、カウンタk2をアドレスとするインデックスidx [k2]に、カウンタk1をアドレスとして読み出されるインデックスidx [k1]を代入する(S101)。S101の処理によって、分離インデックステーブルが更新される。
【0151】
次に、インデックス統合部322は、分離インデックスカラーテーブルにおいて、カウンタk1,k2をアドレスとして画素数cnt [k1],cnt [k2]を読み出し(S102)、読み出された画素数cnt [k1]と画素数cnt [k2]とを加算した加算結果を、カウンタk1に関連付けられた画素数cnt [k1]に代入し(S103)、更に、カウンタk2に関連付けられた画素数cnt [k2]をデフォルト値“0”にリセットする(S104)。
次いで、インデックス統合部322は、分離インデックスカラーテーブルにおいて、カウンタk2に関連付けられたRGB各色の色強度rcol[k2],gcol[k2],bcol[k2]夫々をデフォルト値“0”にリセットする(S105)。S102〜S105の処理によって、分離インデックステーブルが更新される。
【0152】
以下では、分離座標テーブルにおいて、アドレス“k1”に関連付けられている最小x座標値、最小y座標値、最大x座標値、及び最大y座標値を、最小x座標値xmin[k1]、最小y座標値ymin[k1]、最大x座標値xmax[k1]、及び最大y座標値ymax[k1]と記載する。同様に、アドレス“k2”に関連付けられている最小x座標値、最小y座標値、最大x座標値、及び最大y座標値を、最小x座標値xmin[k2]、最小y座標値ymin[k2]、最大x座標値xmax[k2]、及び最大y座標値ymax[k2]と記載する。
【0153】
図27に示すように、インデックス統合部322は、分離座標テーブルに記録された最小x座標値xmin[k1]が最小x座標値xmin[k2]より大きいか否かを判定する(S106)。
最小x座標値xmin[k1]が最小x座標値xmin[k2]より大きい場合(S106でYES)、インデックス統合部322は、アドレス“k1”に関連付けられた最小x座標値xmin[k1]に最小x座標値xmin[k2]を代入する(S107)。
【0154】
S107が終了した場合、又はS106で最小x座標値xmin[k1]が最小x座標値xmin[k2]以下である場合(S106でNO)、インデックス統合部322は、分離座標テーブルに記録された最小y座標値ymin[k1]が最小y座標値ymin[k2]より大きいか否かを判定する(S108)。
最小y座標値ymin[k1]が最小y座標値ymin[k2]より大きい場合(S108でYES)、インデックス統合部322は、アドレス“k1”に関連付けられた最小y座標値ymin[k1]に最小y座標値ymin[k2]を代入する(S109)。
【0155】
S109が終了した場合、又はS108で最小y座標値ymin[k1]が最小y座標値ymin[k2]以下である場合(S108でNO)、インデックス統合部322は、分離座標テーブルに記録された最大x座標値xmax[k1]が最大x座標値xmax[k2]より小さいか否かを判定する(S110)。
最大x座標値xmax[k1]が最大x座標値xmax[k2]より小さい場合(S110でYES)、インデックス統合部322は、アドレス“k1”に関連付けられた最大x座標値xmax[k1]に最大x座標値xmax[k2]を代入する(S111)。
【0156】
S111が終了した場合、又はS110で最大x座標値xmax[k1]が最大x座標値xmax[k2]以上である場合(S110でNO)、インデックス統合部322は、分離座標テーブルに記録された最大y座標値ymax[k1]が最大y座標値ymax[k2]より小さいか否かを判定する(S112)。
最大y座標値ymax[k1]が最大y座標値ymax[k2]より小さい場合(S112でYES)、インデックス統合部322は、アドレス“k1”に関連付けられた最大y座標値ymax[k1]に最大y座標値ymax[k2]を代入する(S113)。
【0157】
S113が終了した場合、又はS112で最大y座標値ymax[k1]が最大y座標値ymax[k2]以上である場合(S112でNO)、インデックス統合部322は、カウンタk2に関連付けられた最小x座標値xmin[k2]、最小y座標値ymin[k2]、最大x座標値xmax[k2]、及び最大y座標値ymax[k2]をデフォルト値にリセットする(S114)。S106〜S114の処理によって、分離座標テーブルが更新される。
S114の処理終了後、インデックス統合部322は、座標テーブル更新処理のサブルーチンの処理を終了し、処理をメインルーチンへ戻す。
【0158】
以下に具体例を述べる。第1のインデックス“5”に、第2のインデックス“7”を統合する場合、S101の処理が実行されることによって、図10(a)に示す分離インデックステーブルにおいて、アドレス“7”に関連付けられたインデックス“7”が、カウンタ“5”をアドレスとして読み出されるインデックス“5”で上書きされる。
従って、カウンタ“7”をアドレスとして、図12(a)に示す統合インデックステーブルを参照した場合、分離インデックステーブルを参照した場合とは異なり、読み出されるインデックスは“5”である。
一方、カウンタ“5”をアドレスとして、統合インデックステーブルを参照した場合、分離インデックステーブルを参照した場合と同様に、読み出されるインデックスは“5”である。
【0159】
また、S103及びS104の処理が実行されることによって、図10(b)に示す分離インデックスカラーテーブルにおいて、アドレス“5”に関連付けられた画素数“11”が、カウンタ“7”をアドレスとして読み出される画素数“2”との加算結果“13”で上書きされる。アドレス“5”に係る上書きの終了後、カウンタ“7”に関連付けられた画素数“2”が、デフォルト値“0”で上書きされる。
従って、カウンタ“5”,“7”をアドレスとして、図12(b)に示す統合インデックスカラーテーブルを参照した場合、分離インデックステーブルを参照した場合とは異なり、読み出される画素数は“13”,“0”である。
【0160】
更に、S105の処理が実行されることによって、図10(b)に示す分離インデックスカラーテーブルにおいて、カウンタ“7”に関連付けられたRGB値(135,240,135)が、デフォルトのRGB値(0,0,0)で上書きされる。
従って、カウンタ“7”をアドレスとして、図12(b)に示す統合インデックステーブルを参照した場合、分離インデックステーブルを参照した場合とは異なり、読み出されるRGB値はRGB値(0,0,0)である。
一方、カウンタ“5”をアドレスとして、統合インデックステーブルを参照した場合、分離インデックステーブルを参照した場合と同様に、読み出されるRGB値はRGB値(120,240,120)である。
【0161】
更にまた、S106〜S114の処理によって、図11に示す分離座標テーブルにおいて、アドレス“5”に関連付けられた最大x座標値xmax[5]及び最大y座標値ymax[5]はアドレス“7”に関連付けられた最大x座標値xmax[7]及び最大y座標値ymax[7]に置き換えられ、アドレス“7”に関連付けられた最小x座標値xmin[7]、最小y座標値ymin[7]、最大x座標値xmax[7]、及び最大y座標値ymax[7]は夫々デフォルト値にリセットされる。
【0162】
従って、カウンタ“5”をアドレスとして、図13に示す統合座標テーブルを参照した場合、分離座標テーブルを参照した場合とは異なり、読み出される最小x座標値xmin[5]、最小y座標値ymin[5]、最大x座標値xmax[5]、及び最大y座標値ymax[5]は、“1”、“14”、“4”、及び“19”となる。
同様に、カウンタ“7”をアドレスとして、統合座標テーブルを参照した場合、分離座標テーブルを参照した場合とは異なり、読み出される最小x座標値xmin[7]、最小y座標値ymin[7]、最大x座標値xmax[7]、及び最大y座標値ymax[7]は、“4095”、“8191”、“0”、及び“0”となる。
【0163】
図26に示すように、本実施の形態における各種テーブル更新処理では、カウンタk1に関連付けられたRGB各色の色強度rcol[k1],gcol[k1],bcol[k1]夫々は、元の値のまま維持される。しかしながら、インデックス統合部322が、S103〜S105の処理を実行する前に、色強度rcol[k1],gcol[k1],bcol[k1]を再計算して更新する構成でもよい。この場合、色強度rcol[k1],gcol[k1],bcol[k1]は、以下の式(24)〜(27)を用いて演算される。
【0164】
cnt12 =cnt [k1]+cnt [k2]…(24)
rcol[k1]={rcol[k1]×cnt [k1]+rcol[k2]×cnt [k2]}/cnt12 …(25)
gcol[k1]={gcol[k1]×cnt [k1]+gcol[k2]×cnt [k2]}/cnt12 …(26)
bcol[k1]={bcol[k1]×cnt [k1]+bcol[k2]×cnt [k2]}/cnt12 …(27)
【0165】
以上のような式(24)〜(27)を用いて求められた新たな色強度rcol[k1],gcol[k1],bcol[k1]を求める場合、求められた新たな色強度rcol[k1],gcol[k1],bcol[k1]には、元の色強度rcol[k1],gcol[k1],bcol[k1]及び元の色強度rcol[k2],gcol[k2],bcol[k2]夫々が、元の画素数cnt [k1],cnt [k2]の多寡に応じて反映されている。
このため、インデックス統合部322は、画素数が少ないインデックスを、画素数が多いインデックスへ統合する構成(即ち、図25に示すS83と、S84及びS86のいずれか一方を実行する構成)に限定されず、単に、アドレス“j ”のインデックスを、アドレス“i ”のインデックスに統合する構成(即ち、S83及びS86を実行せず、常にS84を実行する構成)であってもよい。
【0166】
以上のような処理を実行することによって、図24に示すS72でNOの場合、即ち全ての分離インデックスに対する処理が終わった場合、図10(a)に示す分離インデックステーブル、図10(b)に示す分離インデックスカラーテーブル、及び図11に示す分離座標テーブルは、図12(a)に示す統合インデックステーブル、図12(b)に示す統合インデックスカラーテーブル、及び図13に示す統合座標テーブルになっている。
【0167】
インデックスの統合後、統合インデックステーブルに記憶されているインデックスの個数が、予め定められているインデックスの上限数よりも多い場合は、統合インデックステーブル、統合インデックスカラーテーブル、及び統合座標テーブルを分離インデックステーブル、分離インデックスカラーテーブル、及び分離座標テーブルと看做し、また、閾値th_col及び/又は第2閾値lm_y2を増加させて(即ち統合の条件を緩和して)、インデックス統合部322が、再び図24及び図25に示す処理を実行すればよい。このとき、各種データを、前段の処理(インデックス生成部321で実行される処理)へ戻す必要はない。
【0168】
図5に示すインデックス補正部323では、分離インデックス画像のデータ、統合インデックステーブル、統合インデックスカラーテーブル、及び統合座標テーブルに基づいて、インデックス補正処理が実行される。
インデックス補正処理では、統合インデックス画像(即ち前景レイヤ)のデータが生成される。
【0169】
具体的には、インデックス補正部323は、例えば図14に示すS12〜S16と同様の処理を実行して、分離インデックス画像における注目画素(xcnt,ycnt)を順に選択する。次いで、インデックス補正部323は、分離インデックス画像のデータに基づき、注目画素(xcnt,ycnt)の画素値(即ち分離インデックス)を読み出す。更に、インデックス補正部323は、統合インデックステーブルを参照し、読み出した分離インデックスをアドレスとして、統合インデックスを読み出す。最後に、インデックス補正部323は、読み出した統合インデックスを、注目画素(xcnt,ycnt)の画素値に上書きする。
以上の処理の結果、図8に示す分離インデックス画像は、図9に示す統合インデックス画像になる。
【0170】
なお、インデックス補正部323が行なう処理を、インデックス統合部322が、図24に示すS72でNOの場合(即ち全ての分離インデックスに対する処理が終わった場合)に実行する構成でもよい。この場合、前景色インデックス化処理部32に、インデックス補正部323を設ける必要はない。
【0171】
また、前景色インデックス化処理部32が、インデックス生成部321の代わりに、インデックス対応処理を実行するインデックス対応部と、インデックス分離処理を実行するインデックス分離部とを備える構成でもよい。
しかしながら、仮に、このように構成した場合、初期インデックスと分離インデックスとの関係、及び分離インデックスと統合インデックスとの関係の両方を記憶しておく必要がある。従って、前景色インデックス化処理部32は、記憶容量が大きなメモリを備えておかなければならない。また、インデックス同士の関連を管理する処理が煩雑である。
【0172】
一方、本実施の形態の構成では、インデックス生成部321内で、インデックスの対応付け処理の直後にインデックスの分離処理が連続的に実行される。換言すれば、全画素に対して初期インデックスを対応付け終える前に、各画素に分離インデックスを対応付けることができる。このため、前景色インデックス化処理部32は、分離インデックスと統合インデックスとの関係を記憶することが可能な記憶容量を有するメモリを備えておけばよい。また、インデックス同士の関連を管理する処理が簡易である。
【0173】
ところで、本実施の形態では、前景色インデックス化処理部32が、各画素に対するインデックスの対応付けと、画素間の距離に基づくインデックスの分離と、近似色及び画素間の距離に基づくインデックスの統合とをこの順で実行する。
仮に、前景色インデックス化処理部32が、各画素に対するインデックスの対応付けと、近似色及び画素間の距離に基づくインデックスの統合と、画素間の距離に基づくインデックスの分離とをこの順で実行する場合、以下のような不都合が生じる虞がある。
【0174】
画質の劣化を防止するためには、最も近似している色同士を統合する必要がある。このため、一旦、全画素に対して初期インデックスを対応付ける必要がある。つまり、インデックスの対応付け処理と統合処理とを連続的に実行することができない。
また、統合処理の後で分離処理を行なうため、分離後にインデックスの個数が過剰に増加する虞がある。この場合、再び統合処理を行なって(即ち、各種データを前段の処理へ戻して)インデックスの個数を減少させる必要があるため、各種データの管理が煩雑になる。
【0175】
図28は、注目画素(xcnt,ycnt)と主走査方向の第1最小距離Δx1との関係を示す模式図である。図29は、図28に示す画像を90°右回転させた画像における注目画素(xcnt,ycnt)と副走査方向の第1最小距離Δx1との関係を示す模式図である。
また、図30は、注目画素(xcnt,ycnt)と主走査方向の第1最小距離Δx1及び副走査方向の第1最小距離Δy1との関係を示す模式図である。
図28〜図30夫々に示す画像は、図22に示す画像に対応する。
【0176】
インデックス生成部321は、図14〜図16に示す処理を実行する場合に、図22に示す第1最小距離Δy1を用いる代わりに、図28に示す第1最小距離Δx1を用いる構成でもよい。このとき、インデックス生成部321は、図16に示すS62の処理で、分離座標テーブルを参照して、アドレスaddrに関連付けられている最大x座標値xmax[addr]を読み出し、S63の処理で、主走査カウンタxcntから最大x座標値xmax[addr]を減算した結果を第1最小距離Δx1に代入し、S64の処理で、第1最小距離Δx1が所定の第1閾値lm_x1 より大きいか否かを判定する。
【0177】
第1最小距離Δx1>第1閾値lm_x1 である場合(S64でYES)、インデックス生成部321は、インデックスを分離すべく、処理をS44へ移す。第1最小距離Δx1≦第1閾値lm_x1 である場合(S64でNO)、インデックス生成部321は、インデックスを分離せずに、処理をS65へ移す。
【0178】
また、インデックス生成部321は、図14〜図16に示す処理を実行する場合に、第1最小距離Δy1及び第1最小距離Δy1のいずれか一方を用いる代わりに、図30に示す第1最小距離Δx1及び第1最小距離Δy1の両方を用いる構成でもよい。このとき、インデックス生成部321は、図16に示すS62の処理で、分離座標テーブルを参照して、最大x座標値xmax[addr]及び最大y座標値ymax[addr]夫々を読み出し、S63の処理で、第1最小距離Δx1及び第1最小距離Δy1夫々を演算し、S64の処理で、第1最小距離Δx1が所定の第1閾値lm_x1 より大きく、且つ、第1最小距離Δy1が所定の第1閾値lm_y1 より大きいか否かを判定する。
ここで、第1閾値lm_x1 は第1閾値lm_y1 と同値であってもよく、異なる値であってもよい。
【0179】
第1最小距離Δx1>第1閾値lm_x1 且つ第1最小距離Δy1>第1閾値lm_y1 である場合(S64でYES)、インデックス生成部321は、インデックスを分離すべく、処理をS44へ移す。第1最小距離Δy1≦第1閾値lm_y1 又は第1最小距離Δx1≦第1閾値lm_x1 である場合(S64でNO)、インデックス生成部321は、インデックスを分離せずに、処理をS65へ移す。
【0180】
ところで、図28に示した如き、主走査方向の第1最小距離Δx1を用いて画素間の距離を判定する処理は、カラー画像入力装置11が読み取った画像を画像処理によって90°右回転させる処理を、前景色インデックス化処理部32での処理以降に行なう際に有用である。
図29に示す画像の場合、副走査方向の第1最小距離Δx1は、図28に示す主走査方向の第1最小距離Δx1と同値になる。
画像を90°右回転させる処理は、カラー画像入力装置11が読み取った画像の上下を自動で判定した場合、又は使用者が操作パネル12を操作することによって画像を90°右回転させる指示を受け付けた場合に行なわれる。
【0181】
図31は、主走査方向の第1最小距離Δx1及び副走査方向の第1最小距離Δy1を用いて画素間の距離を判定するその他の条件を用いた処理の手順の一部を示すフローチャートである。
インデックス生成部321が、図14〜図16に示す処理を実行する場合に、図30に示す第1最小距離Δx1及び第1最小距離Δy1の両方を用いる構成であるとき、S64の処理を実行する代わりに、図31に示すS121〜S126の処理を実行する構成でもよい。
上述したように、インデックス生成部321は、図16に示すS63の処理で、第1最小距離Δx1及び第1最小距離Δy1夫々を演算する。
【0182】
次に、インデックス生成部321は、副走査方向の第1最小距離Δy1の値が所定の第1閾値lm_y1 より大きいか否かを判定する(S121)。
第1最小距離Δy1が第1閾値lm_y1 より大きい場合(S121でYES)、インデックス生成部321は、主走査カウンタxcntが最小x座標値xmin[addr]より小さいか否かを判定する(S122)。
主走査カウンタxcntが最小x座標値xmin[addr]より小さい場合(S122でYES)、インデックス生成部321は、インデックスを分離すべく、処理をS44へ移す。
【0183】
主走査カウンタxcntが最小x座標値xmin[addr]以上である場合(S122でNO)、インデックス生成部321は、主走査カウンタxcntが最大x座標値xmax[addr]より大きいか否かを判定する(S123)。
主走査カウンタxcntが最大x座標値xmax[addr]より大きい場合(S123でYES)、インデックス生成部321は、処理をS44へ移す。
【0184】
第1最小距離Δy1が第1閾値lm_y1 以下である場合(S121でNO)、又は、主走査カウンタxcntが最大x座標値xmax[addr]以下である場合(S123でNO)、インデックス生成部321は、主走査方向の第1最小距離Δx1の値が所定の第1閾値lm_x1 より大きいか否かを判定する(S124)。
第1最小距離Δx1が第1閾値lm_x1 より大きい場合(S124でYES)、インデックス生成部321は、副走査カウンタycntが最小y座標値ymin[addr]より小さいか否かを判定する(S125)。
副走査カウンタycntが最小y座標値ymin[addr]より小さい場合(S125でYES)、インデックス生成部321は、処理をS44へ移す。
【0185】
副走査カウンタycntが最小y座標値ymin[addr]以上である場合(S125でNO)、インデックス生成部321は、副走査カウンタycntが最大y座標値ymax[addr]より大きいか否かを判定する(S126)。
副走査カウンタycntが最大y座標値ymax[addr]より大きい場合(S126でYES)、インデックス生成部321は、処理をS44へ移す。
第1最小距離Δx1が第1閾値lm_x1 以下である場合(S124でNO)、又は、副走査カウンタycntが最大y座標値ymax[addr]以下である場合(S126でNO)、インデックス生成部321は、インデックスを分離せずに、処理をステップS65へ移す。
【0186】
図32は、S121〜S126の処理によってインデックスが分離される画素の範囲を示す模式図である。
図32中にハッチングで示した領域は、特定のインデックスが対応付けられた画素が占める領域(以下、特定領域という)である。図中に示すD1又はD2で示す範囲内に、特定領域内の画素と同一のインデックスが対応付けられた画素がある場合に、インデックスが分離され、新たなインデックスが画素に対応付けられる。
図中にD3で示す範囲内の画素は、特定領域内の画素よりも先に走査されるので、特定領域内の画素と同一のインデックスが対応付けられた画素は無い。
【0187】
以上のように、画素間の距離として主走査方向及び副走査方向の両方の距離を用いる処理を実行することによっても、インデックス生成部321は、画像上で所定の距離より離れた画素間には夫々別のインデックスを対応付け直しながら前景レイヤを作成することができる。画素間の距離として主走査方向及び副走査方向の両方の距離を用いる処理は、カラー画像入力装置11が読み取った画像を画像処理によって回転させる処理を行なう場合でも、画像を回転させない場合でも、同様の効果を奏する。
【0188】
インデックス生成部321は、使用者からの操作によって切り換えの指示を操作パネル12が受け付けた場合に、画素間の距離として副走査方向の距離を用いる処理と、主走査方向の距離を用いる処理と、主走査方向及び副走査方向の両方の距離を用いる処理とのいずれかを切り換える機能を備える。
【0189】
ところで、本実施の形態では、第1閾値lm_y1 及び第1閾値lm_x1 夫々が予め“3”に設定されている場合を例示しているが、実際には、カラー画像入力装置11が読み取った画像に適した閾値を用いればよい。
【0190】
例えば、副走査方向の第1閾値lm_y1 及び主走査方向の第1閾値lm_x1 として、副走査方向の画素数及び主走査方向の画素数の30%の値がインデックス生成部321に設定されるようにする。カラー画像入力装置11が、600dpiでA3サイズの画像を読み込んだ場合、副走査方向の画素数が“10000”、主走査方向の画素数が“7000”となるため、第1閾値lm_y1 =3000及び第1閾値lm_x1 =2100がインデックス生成部321に設定される。また、カラー画像入力装置11が、600dpiでA4サイズの画像を読み込んだ場合は、副走査方向の画素数が“7000”、主走査方向の画素数が“5000”となるため、第1閾値lm_y1 =2100及び第1閾値lm_x1 =1500となる。
【0191】
図33は、異なるインデックスが対応付けられた2個の領域と主走査方向の第2最小距離Δx2との関係を示す模式図である。図34は、図33に示す画像を90°右回転させた画像における、異なるインデックスが対応付けられた2個の領域と副走査方向の第2最小距離Δx2との関係を示す模式図である。
また、図35は、異なるインデックスが対応付けられた2個の領域と主走査方向の第2最小距離Δx2及び副走査方向の第2最小距離Δy2との関係を示す模式図である。
図33〜図35夫々に示す画像は、図23に示す画像に対応する。
【0192】
インデックス統合部322は、図24及び図25に示す処理を実行する場合に、図23に示す第2最小距離Δy2を用いる代わりに、図33に示す第2最小距離Δx2を用いる構成でもよい。このとき、インデックス統合部322は、図25に示すS79の処理で、分離座標テーブルを参照し、カウンタi をアドレスとして最大x座標値xmax[i ]を読み出し、カウンタj をアドレスとして最小x座標値xmin[j ]を読み出す。
次に、インデックス統合部322は、S80の処理で、式(28)を用いて、第2最小距離Δx2を演算する。
Δx2=xmin[j ]−xmax[i ]…(28)
【0193】
更に、インデックス統合部322は、S81の処理で、第2最小距離Δx2が所定の第2閾値lm_x2 より大きいか否かを判定する。
Δx2≦lm_x2 である場合(S81でNO)、インデックス統合部322は、第1のインデックス“i ”と第2のインデックス“j ”との統合を決定し、S82へ処理を移す。
一方、Δx2>lm_x2 である場合(S81でYES)、インデックス統合部322は、第1のインデックス“i ”と第2のインデックス“j ”とを統合せず、S87へ処理を移す。
【0194】
また、インデックス統合部322は、図24及び図25に示す処理を実行する場合に、第2最小距離Δx2及び第2最小距離Δy2のいずれか一方を用いる代わりに、図35に示す第2最小距離Δx2及び第2最小距離Δy2の両方を用いる構成でもよい。このとき、インデックス統合部322は、図25に示すS79の処理で、分離座標テーブルを参照し、カウンタi をアドレスとして最大x座標値xmax[i ]及び最大y座標値ymax[i ]を読み出し、カウンタj をアドレスとして最小x座標値xmin[j ]及び最小y座標値ymin[j ]を読み出す。
次に、インデックス統合部322は、S80の処理で、式(23)及び式(28)を用いて、第2最小距離Δy2及び第2最小距離Δx2を演算する。
【0195】
更に、インデックス統合部322は、S81の処理で、第2最小距離Δx2が所定の第2閾値lm_x2 より大きく、且つ、第2最小距離Δy2が所定の第2閾値lm_y2 より大きいか否かを判定する。
ここで、第2閾値lm_x2 は第2閾値lm_y2 と同値であってもよく、異なる値であってもよい。
【0196】
第2最小距離Δy2≦第2閾値lm_y2 又は第2最小距離Δx2≦第2閾値lm_x2 である場合(S81でNO)、インデックス統合部322は、第1のインデックス“i ”と第2のインデックス“j ”との統合を決定し、S82へ処理を移す。
一方、第2最小距離Δx2>第2閾値lm_x2 且つ第2最小距離Δy2>第2閾値lm_y2 である場合(S81でYES)、インデックス統合部322は、第1のインデックス“i ”と第2のインデックス“j ”とを統合せず、S87へ処理を移す。
【0197】
ところで、図33に示した如き、主走査方向の第2最小距離Δx2を用いて画素間の距離を判定する処理は、カラー画像入力装置11が読み取った画像を画像処理によって90°右回転させる処理を、前景色インデックス化処理部32での処理以降に行なう際に有用である。
図34に示す画像の場合、副走査方向の第2最小距離Δx2は、図33に示す主走査方向の第2最小距離Δx2と同値になる。
【0198】
図36は、主走査方向の第2最小距離Δx2及び副走査方向の第2最小距離Δy2を用いて画素間の距離を判定するその他の条件を用いた処理の手順の一部を示すフローチャートである。
図36に示す最小x座標値xmin1 、最小y座標値ymin1 、最大x座標値xmax1 、及び最大y座標値ymax1 は、第1のインデックス“i ”が対応付けられている画素の各種座標値であり、最小x座標値xmin2 、最小y座標値ymin2 、最大x座標値xmax2 、及び最大y座標値ymax2 は、第2のインデックス“j ”が対応付けられている画素の各種座標値である。
【0199】
インデックス統合部322が、図24及び図25に示す処理を実行する場合に、図35に示す第2最小距離Δx2及び第2最小距離Δy2の両方を用いる構成であるとき、図25に示すS81の処理を実行する代わりに、図36に示すS131〜S136の処理を実行する構成でもよい。
上述したように、インデックス統合部322は、図25に示すS80の処理で、第2最小距離Δx2及び第2最小距離Δy2夫々を演算する。
【0200】
次に、インデックス統合部322は、副走査方向の第2最小距離Δy2の値が所定の第2閾値lm_y2 より大きいか否かを判定する(S131)。
第2最小距離Δy2が第2閾値lm_y2 より大きい場合(S131でYES)、インデックス統合部322は、最大x座標値xmax2 が最小x座標値xmin1 より小さいか否かを判定する(S132)。
最大x座標値xmax2 が最小x座標値xmin1 より小さい場合(S132でYES)、インデックス統合部322は、第1のインデックス“i ”と第2のインデックス“j ”とを統合せず、処理をS87へ移す。
【0201】
最大x座標値xmax2 が最小x座標値xmin1 以上である場合(S132でNO)、インデックス統合部322は、最小x座標値xmin2 が最大x座標値xmax1 より大きいか否かを判定する(S133)。
最小x座標値xmin2 が最大x座標値xmax1 より大きい場合(S133でYES)、インデックス統合部322は、処理をS87へ移す。
【0202】
第2最小距離Δy2が第2閾値lm_y2 以下である場合(S131でNO)、又は、最小x座標値xmin2 が最大x座標値xmax1 以下である場合(S133でNO)、インデックス統合部322は、主走査方向の第2最小距離Δx2の値が所定の第2閾値lm_x2 より大きいか否かを判定する(S134)。
第2最小距離Δx2が第2閾値lm_x2 より大きい場合(S134でYES)、インデックス統合部322は、最大y座標値ymax2 が最小y座標値ymin1 より小さいか否かを判定する(S135)。
最大y座標値ymax2 が最小y座標値ymin1 より小さい場合(S135でYES)、インデックス統合部322は、処理をS87へ移す。
【0203】
最大y座標値ymax2 が最小y座標値ymin1 以上である場合(S135でNO)、インデックス統合部322は、最小y座標値ymin2 が最大y座標値ymax1 より大きいか否かを判定する(S136)。
最小y座標値ymin2 が最大y座標値ymax1 より大きい場合(S136でYES)、インデックス統合部322は、処理をS87へ移す。
第2最小距離Δx2が第2閾値lm_x2 以下である場合(S134でNO)、又は、最小y座標値ymin2 が最大y座標値ymax1 以下である場合(S136でNO)、インデックス統合部322は、第1のインデックス“i ”と第2のインデックス“j ”との統合を決定し、処理をステップS82へ移す。
【0204】
図37は、S131〜S136の処理によってインデックスが統合されない画素の範囲を示す模式図である。
図37中にハッチングで示した領域は、特定のインデックスが対応付けられた画素が占める領域(以下、特定のインデックス領域という)である。図中に示すD4又はD5で示す範囲内にインデックスi と近似した色情報を持つインデックス領域がある場合は、インデックスは統合されない。図中にD6で示す範囲は、特定のインデックス領域内の画素よりも先に走査されるので、この範囲内に、インデックスi と近似した色情報を持つインデックス領域は無い。
【0205】
以上のように、インデックス領域間の距離として主走査方向及び副走査方向の両方の距離を用いる処理を実行することによっても、インデックス統合部322は、画像上で所定の距離より離れたインデックス領域間はインデックスを統合することなく、前景レイヤを作成することができる。インデックス間の距離として主走査方向及び副走査方向の両方の距離を用いる処理は、カラー画像入力装置11が読み取った画像を画像処理によって回転させる処理を行なう場合でも、画像を回転させない場合でも、同様の効果を奏する。
【0206】
インデックス統合部322は、使用者からの操作によって切り換えの指示を操作パネル12が受け付けた場合に、インデックス領域間の距離として副走査方向の距離を用いる処理と、主走査方向の距離を用いる処理と、主走査方向及び副走査方向の両方の距離を用いる処理とのいずれかを切り換える機能を備える。
【0207】
ところで、本実施の形態では、第2閾値lm_y2 及び第2閾値lm_x2 夫々が予め“3”に設定されている場合を例示しているが、実際には、カラー画像入力装置11が読み取った画像に適した閾値を用いればよい。
【0208】
例えば、副走査方向の第2閾値lm_y2 及び主走査方向の第2閾値lm_x2 として、副走査方向の画素数及び主走査方向の画素数の30%の値がインデックス統合部322に設定されるようにする。カラー画像入力装置11が、600dpiでA3サイズの画像を読み込んだ場合、副走査方向の画素数が“10000”、主走査方向の画素数が“7000”となるため、第2閾値lm_y2 =3000及び第2閾値lm_x2 =2100がインデックス統合部322に設定される。また、カラー画像入力装置11が、600dpiでA4サイズの画像を読み込んだ場合は、副走査方向の画素数が“7000”、主走査方向の画素数が“5000”となるため、第2閾値lm_y2 =2100及び第2閾値lm_x2 =1500となる。
【0209】
更にまた、設定された第2閾値lm_y2 及び第2閾値lm_x2 が、分離インデックステーブルに記憶されているインデックスの個数に応じて加減される構成でもよい。
【0210】
前述した処理の終了後、前景色インデックス化処理部32は、統合インデックス画像(即ち前景レイヤ)のデータ、統合インデックスカラーテーブル、統合座標テーブル、及び画像データを、背景レイヤ生成処理部33へ出力する。以下では、統合インデックス、統合インデックスカラーテーブル及び統合座標テーブルを、単にインデックス、インデックスカラーテーブル及び座標テーブルという。
【0211】
背景レイヤ生成処理部33は、入力された画像データ及び前景レイヤから、図2に示す如き背景レイヤを生成する処理を行なう。背景レイヤ生成処理部33は、本発明における背景レイヤ生成手段に対応する。
具体的には、画像データに含まれる前景画素の色情報を、前景画素周辺の背景画素の色情報の平均で置き換えることにより、背景レイヤを作成する。ただし、周辺に背景画素が存在しない前景画素については、背景レイヤ生成処理部33は、背景画素の平均値で色情報が置き換えられた他の前景画素の色情報の値又は平均値で色情報を置き換える処理を行なう。
【0212】
ここで、背景画素は、前景レイヤ中でインデックス“0”を対応付けられている画素であり、前景画素はその他のインデックスを対応付けられている画素である。
なお、背景レイヤ生成処理部33は、前景マスク生成処理部31が生成した前景マスクを用いて前景画素と背景画素とを区別する処理を行なってもよい。
【0213】
次いで、背景レイヤ生成処理部33は、生成した背景レイヤのデータと、前景レイヤのデータ、インデックスカラーテーブル及び座標テーブルとを、2値画像生成処理部34へ出力する。
【0214】
2値画像生成処理部34は、入力された前景レイヤのデータ及び座標テーブルに基づき、前景レイヤに含まれる“0”以外のインデックスの夫々について2値画像を生成する。具体的には、特定のインデックスが対応付けられた画素の画素値を“1”とし、他の画素の画素値を“0”とした2値画像を生成し、“0”以外の全てのインデックスについて2値画像の生成を繰り返す。
【0215】
図38は、生成した2値画像の例を示す概念図である。
図38(a)に示す例は、図9に示す前景レイヤで“5”のインデックスを対応付けられた画素(図8に示す分離インデックス画像で“5”,“7”のインデックスを対応付けられた画素)の画素値を“1”とし、他の画素の画素値を“0”とした2値画像である。
また、図38(b)に示す例は、図9に示す前景レイヤで“2”のインデックスを対応付けられた画素(図7に示す初期インデックス画像で“2”のインデックスを対応付けられた画素の一部。残部は図8に示す分離インデックス画像で“6”のインデックスを対応付けられた画素)の画素値を“1”とし、他の画素の画素値を“0”とした2値画像である。
【0216】
図9に示す前景レイヤにおけるインデックス“1”,“3”,“4”,“6”夫々に付いても、同様に2値画像が生成される。
結果として、前景レイヤに含まれる“0”以外のインデックスの個数と同数枚の2値画像が生成される(図9に示す前景レイヤの場合は6枚))。
生成された各2値画像には、各インデックスが関連付けられている。2値画像生成処理部34は、生成された2値画像、背景レイヤ、インデックスカラーテーブル及び座標テーブルを画像圧縮処理部35へ出力する。2値画像生成処理部34は、本発明における2値画像生成手段に対応する。
【0217】
画像圧縮処理部35は、各2値画像、背景レイヤ、インデックスカラーテーブル及び座標テーブルを圧縮することにより、圧縮画像データを生成する。
具体的には、画像圧縮処理部35は、各インデックスについて座標テーブルに記録されている最小x座標値、最小y座標値、最大x座標値及び最大y座標値で画素の範囲が限定された矩形領域を各2値画像から抽出し、各2値画像から抽出した矩形領域をMMR等の可逆圧縮技術を用いて夫々圧縮する。
【0218】
更に画像圧縮処理部35は、背景レイヤをJPEG等の非可逆圧縮技術を用いて圧縮し、圧縮後の各矩形領域に、各インデックスが示す色を表す色情報及び各インデックスの画素が画像上で占める座標の範囲を付加し、圧縮後の全てのデータを一つのデータファイルに統合することにより、圧縮画像データを生成する。
画像圧縮処理部35は、本発明における圧縮手段に対応する。
なお、画像圧縮処理部35は、操作パネル12で受け付けた所定の指示に従って、データの圧縮形式を変更する機能を備えた構成であってもよい。
また、画像圧縮処理部35が矩形領域を抽出するのではなく、2値画像生成処理部34が矩形領域を抽出する構成でもよい。
【0219】
圧縮処理部3は、以上の処理により、カラー画像入力装置11から入力された画像を圧縮した圧縮画像データを生成し、記憶部29又は送信装置14へ出力する。
記憶部29は、圧縮画像データを記憶し、操作パネル12で受け付けた所定の指示に従って、記憶している圧縮画像データを読み出して送信装置14へ出力する。
送信装置14は、操作パネル12で受け付けた所定の指示に従って、外部へ圧縮画像データを送信する。
【0220】
以上詳述した如く、本発明の画像処理装置は、画像から文字に対応する画素を抽出し、文字に対応する各画素に、画素の色を数値で示したインデックスを対応づけた前景レイヤを生成し、画像から文字を省いた背景レイヤを生成し、前景レイヤから、インデックス毎に、各インデックスが対応付けられた画素とその他の画素とを区別した2値画像を生成し、全ての2値画像及び背景レイヤを夫々圧縮することによって圧縮画像データを生成する。
【0221】
画像処理装置は、前景レイヤを生成する際には、色に応じたインデックスを各画素に対応付け、注目画素と同一のインデックスが対応付けられた画素が既に存在する場合には、それらのインデックスが所定の距離以上離れているかを判定し、所定の距離以上離れていれば、注目画素のインデックスとして、同一の色を示しながらも数値が互いに異なるインデックスを対応付ける。また、所定距離以上離れていなければ同一のインデックスを対応付ける。
更に、各インデックスの中で互いに近似した色を示すインデックスを統合する際、互いに近似した色を示すインデックスをもつインデックス同士であっても、画像上で所定の距離より大きく離れているインデックス領域に対しては統合せず、所定の距離内のインデックスのみを統合する。
【0222】
前景レイヤから2値画像を生成した際には、色が同一でありながら異なるインデックスが対応付けられた画像は、互いに異なる2値画像に含まれることとなり、個々の2値画像内では、画素値“1”の画素は、従来技術に比べてより狭い領域に集中することとなる。従って、各2値画像から抽出した各インデックスに係る画素が含まれる矩形領域には、各インデックスを対応付けられた画素の割合が従来技術よりも高くなり、圧縮後のデータに含まれる不要なデータを削減することができる。
【0223】
例えば、画像上で離隔した二つの領域の色が同一である場合、従来技術では、二つの領域を含んだ矩形領域を抽出するので、領域間の画素を含む圧縮データを作成するのに対し、本発明では、二つの領域に互いに別のインデックスを対応付け、各領域を含む矩形領域を個別に抽出して個別に圧縮するので、圧縮データには領域間の画素が含まれない。
【0224】
ここで、2つのインデックス間の距離情報から、統合するか否かの判定を行うことにより、色が近似したインデックスであっても、所定距離より離れていれば、インデックスを統合しないようにすることができる。これにより、矩形領域にインデックスが効率よく含まれる(インデックスでない画素が最小限になる)ため、後段処理を行う際に、2つのインデックス領域間の必要でない画像領域のデータを転送する必要がなくなり、データ転送量を下げ、処理速度を向上することができる。また、夫々の矩形領域も小さくなるため、矩形領域同士が重なる可能性が低くなり、圧縮データを展開し、プリントする際の速度を向上することができる。
【0225】
以上のように、本発明においては、圧縮後のデータに含まれる不要なデータを削減することができるので、カラー画像を圧縮した圧縮画像データのデータ量を削減し、カラー画像の圧縮効率を向上させることができる。従って、カラー画像を圧縮するために必要な処理時間を短縮することが可能となる。また、圧縮画像データを送受信する際には、送受信すべきデータ量を削減し、送受信に必要な時間を短縮することが可能となる。
【0226】
実施の形態 2.
実施の形態1では、本発明の画像形成装置がカラー画像を形成する装置である形態を示したが、実施の形態2では、本発明の画像形成装置がモノクロ画像を形成する装置である形態を示す。
図39は、実施の形態2に係る画像形成装置の内部の機能構成を示すブロック図である。
画像形成装置は、画像をモノクロのグレースケールで光学的に読み取るグレー画像入力装置15を備えており、グレー画像入力装置15には、本発明の画像処理装置であるモノクロ画像処理装置4が接続されている。
【0227】
モノクロ画像処理装置4には、モノクロ画像処理装置4が生成した画像データに基づいてモノクロ画像を出力するモノクロ画像出力装置16、及び送信装置14が接続されている。
グレー画像入力装置15、モノクロ画像処理装置4、モノクロ画像出力装置16及び送信装置14には、操作パネル12が接続されている。
グレー画像入力装置15は、CCD光センサを備えたスキャナにて構成されており、紙等の記録担体上に記録された画像からの反射光像をCCDで読み取り、グリーン(G)単色でグレースケールのアナログ信号に変換してモノクロ画像処理装置4へ入力する構成となっている。
【0228】
モノクロ画像処理装置4は、グレー画像入力装置15から入力されたG単色のアナログ信号に対して画像処理を行なってデジタルの画像データを生成する。また、モノクロ画像処理装置4は、デジタルのK信号からなる画像データを生成してモノクロ画像出力装置16へ出力する。更に、モノクロ画像処理装置4は、生成したデジタルの画像データを圧縮処理により圧縮した圧縮画像データを生成し、圧縮画像データを送信装置14へ出力する。
モノクロ画像出力装置16は、モノクロ画像処理装置4から入力された画像データに基づいて、モノクロ画像を出力する。
操作パネル12及び送信装置14の構成は、実施の形態1と同様である。
【0229】
モノクロ画像処理装置4は、グレー画像入力装置15から入力されたアナログ信号をA/D変換部40でデジタル信号に変換し、シェーディング補正部41、入力階調補正部42、領域分離処理部43、空間フィルタ処理部46、出力階調補正部47、階調再現処理部48の順に送り、デジタルのK信号からなる画像データをモノクロ画像出力装置16へ出力する構成となっている。また、モノクロ画像処理装置4は、デジタル信号を領域分離処理部43から圧縮処理部45へ送り、圧縮画像データを送信装置14へ出力する構成となっている。
【0230】
A/D変換部40は、グレー画像入力装置15から入力されたアナログ信号を受け付け、アナログのG信号をデジタルのG信号へ変換し、シェーディング補正部41へ出力する。
シェーディング補正部41は、A/D変換部40から入力されたG信号に対して、各種の歪みを取り除く処理を行ない、歪みを取り除いたG信号を入力階調補正部42へ出力する。
入力階調補正部42は、シェーディング補正部41から入力されたG信号の強度のバランスを調整し、更に、G信号をモノクロ画像処理装置4で処理しやすい濃度信号等の信号へ変換し、処理後のG信号を領域分離処理部43へ出力する。
【0231】
領域分離処理部43は、入力階調補正部42から入力されたG信号が表す画像中の各画素を、文字領域、網点領域、又は写真領域のいずれかに分離し、各画素がいずれの領域に属しているかを示す領域識別信号を、空間フィルタ処理部46及び階調再現処理部48へ出力し、G信号を空間フィルタ処理部46及び圧縮処理部45へ出力する。
圧縮処理部45は、領域分離処理部43からG信号でなる画像データを入力され、本発明の画像処理方法を用いて圧縮画像データを生成する処理を実行し、圧縮画像データを記憶部29に記憶させ、また、圧縮画像データを送信装置14へ出力する。
【0232】
空間フィルタ処理部46は、入力されたG信号が表す画像に対して、領域識別信号に基づいて空間フィルタ処理を行ない、処理後のG信号を出力階調補正部47へ出力する。
出力階調補正部47は、空間フィルタ処理部46から入力されたG信号に対して、モノクロ画像出力装置16の特性に基づく出力階調補正処理を行ない、処理後のG信号を階調再現処理部48へ出力する。
階調再現処理部48は、出力階調補正部47から入力されたG信号に対して、領域識別信号に基づいて、領域に応じた中間調処理を行ない、処理後のG信号を変換したK信号でなる画像データをモノクロ画像出力装置16へ出力する。
【0233】
圧縮処理部45は、領域分離処理部43からG信号でなる画像データを入力され、本発明の画像処理方法を用いて圧縮画像データを生成する処理を実行する。圧縮処理部45が実行する画像処理方法は、色情報がRGB各色の色強度を示す情報ではなくG単色の強度を示す情報であることを除けば、実施の形態1の圧縮処理部3が実行する画像処理方法と同等である。
【0234】
図40は、実施の形態2に係る圧縮処理部45が利用するインデックスカラーテーブルの例を示す図表である。
各アドレスには、色情報として、G単色の強度を示す情報が関連付けられており、アドレスの値はインデックスの値に等しい。また、背景画素に対応するインデックス“0”には、白色を示す色情報である“0”が関連付けられている。
圧縮処理部45は、図40に示す如きインデックスカラーテーブルを用いて、実施の形態1の圧縮処理部3が実行する画像処理方法と同様の画像処理方法を実行することにより、圧縮画像データを生成する。
【0235】
以上詳述した如く、本実施の形態に係る画像処理装置は、画素の色情報が単色の色強度を示すモノクロ画像に対して、実施の形態1と同様の画像処理を行なうことにより、モノクロ画像を圧縮した圧縮画像データを生成する。
本実施の形態においても、画像処理装置は、前景レイヤを生成する際には、注目画素と同一のインデックスが対応付けられた画素が既に存在する場合には、それらのインデックスが所定の距離以上離れているかを判定し、所定の距離以上離れていれば、注目画素のインデックスとして、同一の色を示しながらも数値が互いに異なるインデックスを対応付ける。また、所定距離以上離れていなければ同一のインデックスを対応付ける。
【0236】
更に、各インデックスの中で互いに近似した色を示すインデックスを統合する際、互いに近似した色を示すインデックスをもつインデックス同士であっても、画像上で所定の距離より大きく離れているインデックス領域に対しては統合せず、所定の距離内のインデックスのみを統合する。
この結果、圧縮後のデータに含まれる不要なデータを削減することができる。従って、モノクロ画像を圧縮した圧縮画像データのデータ量を削減し、モノクロ画像の圧縮効率を向上させることが可能となる。
【0237】
実施の形態 3.
実施の形態2では、本発明の画像形成装置がモノクロ画像を受け付けてモノクロ画像を形成する装置である形態を示したが、実施の形態3では、本発明の画像形成装置がカラー画像を受け付けてモノクロ画像を形成する装置である形態を示す。
【0238】
図41は、実施の形態3に係る画像形成装置の内部の機能構成を示すブロック図である。
画像形成装置は、カラー画像を光学的に読み取るカラー画像入力装置11を備えており、カラー画像入力装置11には、画像処理装置5が接続されている。画像処理装置5には、モノクロ画像出力装置16、及び送信装置14が接続されている。カラー画像入力装置11、画像処理装置5、モノクロ画像出力装置16及び送信装置14には、操作パネル12が接続されている。
カラー画像入力装置11は、実施の形態1と同様の処理を行ない、カラー画像を読み取ったRGBのアナログ信号を画像処理装置5へ出力する。
【0239】
画像処理装置5は、カラー画像入力装置11から入力されたRGBのアナログ信号に対して画像処理を行なって、デジタルの単色のK信号からなる画像データを生成してモノクロ画像出力装置16へ出力する。また、画像処理装置5は、デジタルのRGB信号でなる画像データを圧縮した圧縮画像データを生成し、圧縮画像データを記憶部29に記憶させるか又は送信装置14へ出力する。記憶部29が記憶する圧縮画像データ及び送信装置14が送信する圧縮画像データが表す画像は、カラー画像となる。
モノクロ画像出力装置16は、画像処理装置5から入力された画像データに基づいて、モノクロ画像を出力する。
操作パネル12及び送信装置14の構成は、実施の形態1と同様である。
【0240】
画像処理装置5は、カラー画像入力装置11から入力されたアナログ信号をA/D変換部20でデジタル信号に変換し、シェーディング補正部21、入力階調補正部22、領域分離処理部53、色補正部54、黒生成下色除去部55、空間フィルタ処理部46、出力階調補正部47、階調再現処理部48の順に送り、デジタルのK信号からなる画像データをモノクロ画像出力装置16へ出力する構成となっている。また、画像処理装置5は、デジタル信号を色補正部54から圧縮処理部3へ送り、圧縮画像データを送信装置14へ出力する構成となっている。
【0241】
A/D変換部20、シェーディング補正部21、及び入力階調補正部22の構成は、実施の形態1と同様である。
領域分離処理部53は、入力階調補正部22から入力されたRGB信号が表す画像中の各画素を、文字領域、網点領域、又は写真領域のいずれかに分離し、各画素がいずれの領域に属しているかを示す領域識別信号を、黒生成下色除去部55、空間フィルタ処理部46、及び階調再現処理部48へ出力する。
また、領域分離処理部53は、入力階調補正部22から入力されたRGB信号を色補正部54及び圧縮処理部3へ出力する。
【0242】
色補正部54は、領域分離処理部53から入力されたRGB信号からG信号を抽出し、抽出したG信号を黒生成下色除去部55へ出力する。
黒生成下色除去部55は、色補正部54からのG信号を空間フィルタ処理部46へ出力する。
空間フィルタ処理部46、出力階調補正部47及び階調再現処理部48の構成は、実施の形態2と同様である。
圧縮処理部3の構成は実施の形態1と同様であり、圧縮処理部3は、領域分離処理部53からRGB信号でなる画像データを入力され、実施の形態1と同様に本発明の画像処理方法を実行することにより、圧縮画像データを生成する。
【0243】
なお、色補正部54は、RGB信号からG信号を抽出するのではなく、RGB信号から輝度信号を生成する処理を行なう形態であってもよい。例えば、色補正部54は、RGB各色の色強度RGBから輝度値Yを、Y=0.30R+0.59G+0.11Bと計算することによって、輝度信号を生成する。この形態の場合は、黒生成下色除去部55、空間フィルタ処理部46、出力階調補正部47及び階調再現処理部48は、輝度信号を色情報とした処理を実行する。
【0244】
以上詳述した如く、本実施の形態に係る画像処理装置は、モノクロ画像の形成とカラーの圧縮画像データの生成とを可能とする。
本実施の形態においても、画像処理装置は、前景レイヤを生成する際には、注目画素と同一のインデックスが対応付けられた画素が既に存在する場合には、それらのインデックスが所定の距離以上離れているかを判定し、所定の距離以上離れていれば、注目画素のインデックスとして、同一の色を示しながらも数値が互いに異なるインデックスを対応付ける。また、所定距離以上離れていなければ同一のインデックスを対応付ける。
【0245】
更に、各インデックスの中で互いに近似した色を示すインデックスを統合する際、互いに近似した色を示すインデックスをもつインデックス同士であっても、画像上で所定の距離より大きく離れているインデックス領域に対しては統合せず、所定の距離内のインデックスのみを統合する。
この結果、圧縮後のデータに含まれる不要なデータを削減することができる。従って、カラー画像を圧縮した圧縮画像データのデータ量を削減し、カラー画像の圧縮効率を向上させることが可能となる。
【0246】
実施の形態 4.
実施の形態1〜3では、本発明の画像処理装置が画像形成装置の一部をなす形態を示したが、実施の形態4においては、本発明の画像処理装置がスキャナ装置の一部をなす形態を示す。
【0247】
図42は、実施の形態4に係る画像処理装置を含むスキャナ装置の内部の機能構成を示すブロック図である。
スキャナ装置は、カラー画像を光学的に読み取るカラー画像入力装置11を備えており、カラー画像入力装置11には、本発明の画像処理装置6が接続されている。
画像処理装置6には、通信ケーブル又は通信ネットワークを介してパーソナルコンピュータ(PC)等の図示しないホスト装置が接続されている。
カラー画像入力装置11及び画像処理装置6には、操作パネル12が接続されている。
【0248】
カラー画像入力装置11は、実施の形態1と同様の処理を行ない、カラー画像を読み取ったRGBのアナログ信号を画像処理装置6へ出力する。
画像処理装置6は、カラー画像入力装置11から入力されたアナログ信号をA/D変換部20でデジタル信号に変換し、シェーディング補正部21、入力階調補正部22、領域分離処理部63、圧縮処理部3の順に送る構成となっている。
A/D変換部20、シェーディング補正部21、及び入力階調補正部22の構成は、実施の形態1と同様である。
領域分離処理部63は、入力階調補正部22から入力されたRGB信号を圧縮処理部3へ出力する。
【0249】
圧縮処理部3の構成は実施の形態1と同様であり、圧縮処理部3は、領域分離処理部63からRGB信号でなる画像データを入力され、実施の形態1と同様に本発明の画像処理方法を実行することにより、入力された画像を圧縮した圧縮画像データを生成する。また、圧縮処理部3は、生成した圧縮画像データを図示しないホスト装置へ出力する。
ホスト装置は、画像処理装置6が出力した圧縮画像データを受け付け、圧縮画像データの記憶、圧縮画像データの外部への送信、又は圧縮画像データに基づいた画像出力等の処理を実行する。
【0250】
以上のように、本実施の形態においても、実施の形態1〜3と同様に、前景レイヤを生成する際には、注目画素と同一のインデックスが対応付けられた画素が既に存在する場合には、それらのインデックスが所定の距離以上離れているかを判定し、所定の距離以上離れていれば、注目画素のインデックスとして、同一の色を示しながらも数値が互いに異なるインデックスを対応付ける。また、所定距離以上離れていなければ同一のインデックスを対応付ける。
更に、各インデックスの中で互いに近似した色を示すインデックスを統合する際、互いに近似した色を示すインデックスをもつインデックス同士であっても、画像上で所定の距離より大きく離れているインデックス領域に対しては統合せず、所定の距離内のインデックスのみを統合する。
【0251】
この結果、圧縮後のデータに含まれる不要なデータを削減することができる。従って、カラー画像又はモノクロ画像を圧縮した圧縮画像データのデータ量を削減し、画像の圧縮効率を向上させることができるようになり、圧縮画像データを送受信する際には、送受信すべきデータ量を削減し、送受信に必要な時間を短縮することが可能となる。
【0252】
実施の形態 5.
実施の形態5では、汎用のコンピュータを用いて本発明の画像処理装置を実現した形態を示す。
図43は、実施の形態5に係る本発明の画像処理装置7の内部構成を示すブロック図である。
本実施の形態に係る画像処理装置7は、PC等の汎用コンピュータを用いて構成されており、演算を行なうCPU71と、演算に伴って発生する一時的な情報を記憶するRAM72と、光ディスク等の本発明の記録媒体8から情報を読み取るCD−ROMドライブ等のドライブ部73と、ハードディスク等の記憶部74とを備えている。
【0253】
CPU71は、本発明の記録媒体8から本発明のコンピュータプログラム81をドライブ部73に読み取らせ、読み取ったコンピュータプログラム81を記憶部74に記憶させる。コンピュータプログラム81は必要に応じて記憶部74からRAM72へロードされ、ロードされたコンピュータプログラム81に基づいてCPU71は画像処理装置7に必要な処理を実行する。
【0254】
また、画像処理装置7は、使用者が操作することによる各種の処理指示等の情報が入力されるキーボード又はポインティングデバイス等の入力部75と、各種の情報を表示する液晶ディスプレイ等の表示部76とを備えている。更に、画像処理装置7は、図示しない外部の通信ネットワークに接続可能な送信部77と、画像データを入力するスキャナ装置等の外部の入力装置82に接続された受信部78とを備えている。
入力装置82は、画像を光学的に読み取って画像データを生成し、生成した画像データを画像処理装置7へ送信し、受信部78は、入力装置82から送信された画像データを受信する。受信部78は、本発明における受付手段として機能する。送信部77は、図示しない通信ネットワークを介して、ファクシミリ又は電子メール等の通信方法により外部へデータを送信することができる。
【0255】
CPU71は、本発明のコンピュータプログラム81をRAM72にロードし、ロードしたコンピュータプログラム81に従って、本発明の画像処理方法に係る処理を実行する。即ち、受信部78で入力装置82から画像データが入力された場合に、CPU71は、実施の形態1における前景マスク生成処理部31、前景色インデックス化処理部32、背景レイヤ生成処理部33、2値画像生成処理部34及び画像圧縮処理部35が行なう処理と同様の、前景マスク生成処理、前景色インデックス化処理、背景レイヤ生成処理、2値画像生成処理及び画像圧縮処理を実行する。これにより、CPU71は、受け付けた画像データを圧縮した圧縮画像データを生成する処理を行なう。
【0256】
CPU71は、生成した圧縮画像データを記憶部74に記憶させる。また、CPU71は、ロードしたコンピュータプログラム81に従って、生成した圧縮画像データ、又は記憶部74から読み出した圧縮画像データを送信部77に外部へ送信させる処理を行なう。
【0257】
以上のように、本実施の形態においても、実施の形態1〜4と同様に、前景レイヤを生成する際には、注目画素と同一のインデックスが対応付けられた画素が既に存在する場合には、それらのインデックスが所定の距離以上離れているかを判定し、所定の距離以上離れていれば、注目画素のインデックスとして、同一の色を示しながらも数値が互いに異なるインデックスを対応付ける。また、所定距離以上離れていなければ同一のインデックスを対応付ける。
更に、各インデックスの中で互いに近似した色を示すインデックスを統合する際、互いに近似した色を示すインデックスをもつインデックス同士であっても、画像上で所定の距離より大きく離れているインデックス領域に対しては統合せず、所定の距離内のインデックスのみを統合する。
【0258】
この結果、圧縮後のデータに含まれる不要なデータを削減することができる。従って、カラー画像又はモノクロ画像を圧縮した圧縮画像データのデータ量を削減し、画像の圧縮効率を向上させることが可能となる。
【0259】
なお、本発明のコンピュータプログラム81を記録してある本発明の記録媒体8は、磁気テープ、磁気ディスク、可搬型のハードディスク、CD−ROM/MO/MD/DVD等の光ディスク、又はICカード(メモリカードを含む)/光カード等のカード型記録媒体のいずれの形態であってもよい。また、本発明の記録媒体8は、画像処理装置7に装着され、記録媒体8の記録内容をCPU71が読み出すことが可能な半導体メモリ、即ちマスクROM、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable Programmable Read Only Memory)、フラッシュROM等であってもよい。
【0260】
更に、本発明のコンピュータプログラム81は、インターネット又はLAN等の通信ネットワークを介して画像処理装置7に接続された図示しない外部のサーバ装置から画像処理装置7へダウンロードされて記憶部74に記憶される形態であってもよい。この形態の場合は、コンピュータプログラム81をダウンロードするために必要なプログラムは、予め記憶部74に記憶されてあるか、又は所定の記録媒体からドライブ部73を用いて読み出されて記憶部74に記憶され、必要に応じてRAM72にロードされるものであればよい。
【0261】
以上の実施の形態1〜5においては、前景レイヤに含まれる画素として文字に対応する画素を抽出する処理を行なう形態を示したが、これに限るものではなく、本発明は、前景レイヤに含まれる画素として線画に対応する画素を抽出する処理を行なう形態であってもよい。また、本発明は、前景レイヤに含まれる画素として文字及び線画に対応する画素を抽出する処理を行なう形態であってもよい。
【図面の簡単な説明】
【0262】
【図1】実施の形態1に係る画像形成装置の内部の機能構成を示すブロック図である。
【図2】圧縮処理部が画像を圧縮する処理の概要を示す模式図である。
【図3】圧縮処理部が画像を圧縮する処理の概要を示す模式図である。
【図4】圧縮処理部の内部構成を示すブロック図である。
【図5】前景色インデックス化処理部の内部構成を示すブロック図である。
【図6】圧縮処理部が圧縮すべき画像の例を示す概念図である。
【図7】初期インデックス画像の例を示す概念図である。
【図8】分離インデックス画像の例を示す概念図である。
【図9】統合インデックス画像の例を示す概念図である。
【図10】分離インデックステーブル及び分離インデックスカラーテーブルの例を示す図表である。
【図11】分離座標テーブルの例を示す図表である。
【図12】統合インデックステーブル及び統合インデックスカラーテーブルの例を示す図表である。
【図13】統合座標テーブルの例を示す図表である。
【図14】インデックス生成部が行なう処理の手順を示すフローチャートである。
【図15】インデックス生成部が行なう処理の手順を示すフローチャートである。
【図16】インデックス生成部が行なう処理の手順を示すフローチャートである。
【図17】座標テーブル更新処理のサブルーチンの処理の手順を示すフローチャートである。
【図18】減色処理テーブルの例を示す図表である。
【図19】第1の注目画素に対する処理の手順を説明するための図表である。
【図20】第2の注目画素に対する処理の手順を説明するための図表である。
【図21】インデックスカラーテーブル更新処理のサブルーチンの処理の手順を示すフローチャートである。
【図22】注目画素と副走査方向の第1最小距離との関係を示す模式図である。
【図23】異なるインデックスが対応付けられた2個の領域と副走査方向の第2最小距離との関係を示す模式図である。
【図24】インデックス統合部が行なう処理の手順を示すフローチャートである。
【図25】インデックス統合部が行なう処理の手順を示すフローチャートである。
【図26】各種テーブル更新処理のサブルーチンの処理の手順を示すフローチャートである。
【図27】各種テーブル更新処理のサブルーチンの処理の手順を示すフローチャートである。
【図28】注目画素と主走査方向の第1最小距離との関係を示す模式図である。
【図29】図28に示す画像を90°右回転させた画像における注目画素と副走査方向の第1最小距離との関係を示す模式図である。
【図30】注目画素と主走査方向及び副走査方向夫々の第1最小距離との関係を示す模式図である。
【図31】主走査方向及び副走査方向夫々の第1最小距離を用いて画素間の距離を判定するその他の条件を用いた処理の手順の一部を示すフローチャートである。
【図32】S121〜S126の処理によってインデックスが分離される画素の範囲を示す模式図である。
【図33】異なるインデックスが対応付けられた2個の領域と主走査方向の第2最小距離との関係を示す模式図である。
【図34】図33に示す画像を90°右回転させた画像における、異なるインデックスが対応付けられた2個の領域と副走査方向の第2最小距離との関係を示す模式図である。
【図35】異なるインデックスが対応付けられた2個の領域と主走査方向及び副走査方向夫々の第2最小距離との関係を示す模式図である。
【図36】主走査方向及び副走査方向夫々の第2最小距離を用いて画素間の距離を判定するその他の条件を用いた処理の手順の一部を示すフローチャートである。
【図37】S131〜S136の処理によってインデックスが統合されない画素の範囲を示す模式図である。
【図38】生成した2値画像の例を示す概念図である。
【図39】実施の形態2に係る画像形成装置の内部の機能構成を示すブロック図である。
【図40】実施の形態2に係る圧縮処理部が利用するインデックスカラーテーブルの例を示す図表である。
【図41】実施の形態3に係る画像形成装置の内部の機能構成を示すブロック図である。
【図42】実施の形態4に係る画像処理装置を含むスキャナ装置の内部の機能構成を示すブロック図である。
【図43】実施の形態5に係る本発明の画像処理装置の内部構成を示すブロック図である。
【符号の説明】
【0263】
11 カラー画像入力装置
12 操作パネル
13 カラー画像出力装置
14 送信装置
15 グレー画像入力装置
16 モノクロ画像出力装置
2 カラー画像処理装置
20,40 A/D変換部
3,45 圧縮処理部
31 前景マスク生成処理部
32 前景色インデックス化処理部
321 インデックス生成部
322 インデックス統合部
323 インデックス補正部
33 背景レイヤ生成処理部
34 2値画像生成処理部
35 画像圧縮処理部
4 モノクロ画像処理装置
5,6,7 画像処理装置
71 CPU
8 記録媒体
81 コンピュータプログラム
【特許請求の範囲】
【請求項1】
複数の画素で構成された画像を受け付ける受付手段と、
該受付手段が受け付けた画像を構成する画素の内、文字及び/又は線画に対応する画素を抽出する抽出手段と、
該抽出手段が抽出した各画素の色を複数の識別子のいずれかで表した前景レイヤを生成する前景レイヤ生成手段と、
前記受付手段が受け付けた画像から文字及び/又は線画を省いた背景レイヤを生成する背景レイヤ生成手段と、
前記前景レイヤ生成手段が生成した前景レイヤに含まれる識別子毎に、特定の識別子で表される画素とその他の画素とからなる2値画像を生成する2値画像生成手段と、
該2値画像生成手段が生成した2値画像、及び前記背景レイヤ生成手段が生成した背景レイヤを夫々圧縮する圧縮手段と
を備え、
画像を圧縮する処理を行なう画像処理装置において、
前記前景レイヤ生成手段は、
各画素の色に応じて、特定の色に関連付けられた識別子を各画素に対応付ける識別子対応手段と、
該識別子対応手段による対応付けによって同一の識別子が対応付けられた画素の内、画像上で第1距離より離隔している画素間で異なる識別子を対応付けることによって識別子を分離する識別子分離手段と、
前記識別子対応手段による対応付け及び前記識別子分離手段による分離の後、異なる識別子が対応付けられた画素の内、色同士が所定の範囲内で近似し、且つ、画像上で第2距離より近接している画素間で識別子を統合する識別子統合手段と
を有することを特徴とする画像処理装置。
【請求項2】
前記識別子統合手段は、
第1の識別子に関連付けられた第1の色と、前記第1の識別子とは異なる第2の識別子に関連付けられた第2の色とが所定の範囲内で近似しているか否かを判定する判定手段と、
該判定手段が近似していると判定した場合、前記第1の識別子が対応付けられた画素と前記第2の識別子が対応付けられた画素との最小距離を演算する距離演算手段と、
該距離演算手段が演算した最小距離が所定の閾値より小さい場合に、前記第1の識別子が対応付けられた画素の画素数と前記第2の識別子が対応付けられた画素の画素数とを比較する比較手段と、
該比較手段の比較結果に基づき、画素数が少ない方の画素に対応付けられた識別子を、画素数が多い方の画素に対応付けられた識別子と同一の識別子に変更する手段と
を有することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記識別子分離手段は、
所定の選択順に従って、画素を順次選択する選択手段と、
選択済みの画素の内で選択中の画素と同一の識別子が対応付けられた画素と、前記選択中の画素との間の最小距離を演算する最小演算手段と、
該最小演算手段が演算した最小距離が所定の閾値より大きい場合に、前記選択中の画素に対応付けられた識別子を、該識別子と同一の色に関連付けられた新たな識別子に変更する手段と
を有することを特徴とする請求項1又は2に記載の画像処理装置。
【請求項4】
前記選択手段は、画像上の一方向を主走査方向とし、前記一方向に直交する方向を副走査方向として、画素を順次選択するように構成してあり、
前記最小演算手段が演算する距離として、主走査方向の距離と、副走査方向の距離と、主走査方向及び副走査方向の両方の距離とを切り替える手段を更に備えることを特徴とする請求項3に記載の画像処理装置。
【請求項5】
各画素の色は、複数の原色の色強度を示す情報からなることを特徴とする請求項1から4のいずれかひとつに記載の画像処理装置。
【請求項6】
各画素の色は、単色の色強度を示す情報からなることを特徴とする請求項1から4のいずれかひとつに記載の画像処理装置。
【請求項7】
請求項1から6までのいずれかひとつに記載の画像処理装置を備えることを特徴とする画像形成装置。
【請求項8】
複数の画素で構成された画像を受け付けるステップと、
受け付けた画像を構成する画素の内、文字及び/又は線画に対応する画素を抽出するステップと、
抽出した各画素の色を複数の識別子のいずれかで表した前景レイヤを生成する前景レイヤ生成ステップと、
受け付けた画像から文字及び/又は線画を省いた背景レイヤを生成するステップと、
前記前景レイヤに含まれる識別子毎に、特定の識別子で表される画素とその他の画素とからなる2値画像を生成するステップと、
生成した2値画像及び背景レイヤを夫々圧縮するステップとを含む画像処理方法において、
前記前景レイヤ生成ステップは、
各画素の色に応じて、特定の色に関連付けられた識別子を各画素に対応付けるステップと、
同一の識別子が対応付けられた画素の内、画像上で第1距離より離隔している画素間で異なる識別子を対応付けることによって識別子を分離するステップと、
識別子の対応付け及び分離の後、異なる識別子が対応付けられた画素の内、色同士が所定の範囲内で近似し、且つ、画像上で第2距離より近接している画素間で識別子を統合するステップと
を含むことを特徴とする画像処理方法。
【請求項9】
コンピュータに、
画像を構成する画素の内、文字及び/又は線画に対応する画素を抽出する手順と、
抽出した各画素の色を複数の識別子のいずれかで表した前景レイヤを生成する前景レイヤ生成手順と、
前記画像から文字及び/又は線画を省いた背景レイヤを生成する手順と、
前記前景レイヤに含まれる識別子毎に、特定の識別子で表される画素とその他の画素とからなる2値画像を生成する手順と、
生成した2値画像及び背景レイヤを夫々圧縮する手順とを含む処理を実行させることによって、画像を圧縮する処理を実行させるためのコンピュータプログラムであって、
前記前景レイヤ生成手順は、
各画素の色に応じて、特定の色に関連付けられた識別子を各画素に対応付ける手順と、
同一の識別子が対応付けられた画素の内、画像上で第1距離より離隔している画素間で異なる識別子を対応付けることによって識別子を分離する手順と、
識別子の対応付け及び分離の後、異なる識別子が対応付けられた画素の内、色同士が所定の範囲内で近似し、且つ、画像上で第2距離より近接している画素間で識別子を統合する手順と
を含むことを特徴とするコンピュータプログラム。
【請求項10】
請求項9に記載のコンピュータプログラムを記録してあることを特徴とするコンピュータでの読み取りが可能な記録媒体。
【請求項1】
複数の画素で構成された画像を受け付ける受付手段と、
該受付手段が受け付けた画像を構成する画素の内、文字及び/又は線画に対応する画素を抽出する抽出手段と、
該抽出手段が抽出した各画素の色を複数の識別子のいずれかで表した前景レイヤを生成する前景レイヤ生成手段と、
前記受付手段が受け付けた画像から文字及び/又は線画を省いた背景レイヤを生成する背景レイヤ生成手段と、
前記前景レイヤ生成手段が生成した前景レイヤに含まれる識別子毎に、特定の識別子で表される画素とその他の画素とからなる2値画像を生成する2値画像生成手段と、
該2値画像生成手段が生成した2値画像、及び前記背景レイヤ生成手段が生成した背景レイヤを夫々圧縮する圧縮手段と
を備え、
画像を圧縮する処理を行なう画像処理装置において、
前記前景レイヤ生成手段は、
各画素の色に応じて、特定の色に関連付けられた識別子を各画素に対応付ける識別子対応手段と、
該識別子対応手段による対応付けによって同一の識別子が対応付けられた画素の内、画像上で第1距離より離隔している画素間で異なる識別子を対応付けることによって識別子を分離する識別子分離手段と、
前記識別子対応手段による対応付け及び前記識別子分離手段による分離の後、異なる識別子が対応付けられた画素の内、色同士が所定の範囲内で近似し、且つ、画像上で第2距離より近接している画素間で識別子を統合する識別子統合手段と
を有することを特徴とする画像処理装置。
【請求項2】
前記識別子統合手段は、
第1の識別子に関連付けられた第1の色と、前記第1の識別子とは異なる第2の識別子に関連付けられた第2の色とが所定の範囲内で近似しているか否かを判定する判定手段と、
該判定手段が近似していると判定した場合、前記第1の識別子が対応付けられた画素と前記第2の識別子が対応付けられた画素との最小距離を演算する距離演算手段と、
該距離演算手段が演算した最小距離が所定の閾値より小さい場合に、前記第1の識別子が対応付けられた画素の画素数と前記第2の識別子が対応付けられた画素の画素数とを比較する比較手段と、
該比較手段の比較結果に基づき、画素数が少ない方の画素に対応付けられた識別子を、画素数が多い方の画素に対応付けられた識別子と同一の識別子に変更する手段と
を有することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記識別子分離手段は、
所定の選択順に従って、画素を順次選択する選択手段と、
選択済みの画素の内で選択中の画素と同一の識別子が対応付けられた画素と、前記選択中の画素との間の最小距離を演算する最小演算手段と、
該最小演算手段が演算した最小距離が所定の閾値より大きい場合に、前記選択中の画素に対応付けられた識別子を、該識別子と同一の色に関連付けられた新たな識別子に変更する手段と
を有することを特徴とする請求項1又は2に記載の画像処理装置。
【請求項4】
前記選択手段は、画像上の一方向を主走査方向とし、前記一方向に直交する方向を副走査方向として、画素を順次選択するように構成してあり、
前記最小演算手段が演算する距離として、主走査方向の距離と、副走査方向の距離と、主走査方向及び副走査方向の両方の距離とを切り替える手段を更に備えることを特徴とする請求項3に記載の画像処理装置。
【請求項5】
各画素の色は、複数の原色の色強度を示す情報からなることを特徴とする請求項1から4のいずれかひとつに記載の画像処理装置。
【請求項6】
各画素の色は、単色の色強度を示す情報からなることを特徴とする請求項1から4のいずれかひとつに記載の画像処理装置。
【請求項7】
請求項1から6までのいずれかひとつに記載の画像処理装置を備えることを特徴とする画像形成装置。
【請求項8】
複数の画素で構成された画像を受け付けるステップと、
受け付けた画像を構成する画素の内、文字及び/又は線画に対応する画素を抽出するステップと、
抽出した各画素の色を複数の識別子のいずれかで表した前景レイヤを生成する前景レイヤ生成ステップと、
受け付けた画像から文字及び/又は線画を省いた背景レイヤを生成するステップと、
前記前景レイヤに含まれる識別子毎に、特定の識別子で表される画素とその他の画素とからなる2値画像を生成するステップと、
生成した2値画像及び背景レイヤを夫々圧縮するステップとを含む画像処理方法において、
前記前景レイヤ生成ステップは、
各画素の色に応じて、特定の色に関連付けられた識別子を各画素に対応付けるステップと、
同一の識別子が対応付けられた画素の内、画像上で第1距離より離隔している画素間で異なる識別子を対応付けることによって識別子を分離するステップと、
識別子の対応付け及び分離の後、異なる識別子が対応付けられた画素の内、色同士が所定の範囲内で近似し、且つ、画像上で第2距離より近接している画素間で識別子を統合するステップと
を含むことを特徴とする画像処理方法。
【請求項9】
コンピュータに、
画像を構成する画素の内、文字及び/又は線画に対応する画素を抽出する手順と、
抽出した各画素の色を複数の識別子のいずれかで表した前景レイヤを生成する前景レイヤ生成手順と、
前記画像から文字及び/又は線画を省いた背景レイヤを生成する手順と、
前記前景レイヤに含まれる識別子毎に、特定の識別子で表される画素とその他の画素とからなる2値画像を生成する手順と、
生成した2値画像及び背景レイヤを夫々圧縮する手順とを含む処理を実行させることによって、画像を圧縮する処理を実行させるためのコンピュータプログラムであって、
前記前景レイヤ生成手順は、
各画素の色に応じて、特定の色に関連付けられた識別子を各画素に対応付ける手順と、
同一の識別子が対応付けられた画素の内、画像上で第1距離より離隔している画素間で異なる識別子を対応付けることによって識別子を分離する手順と、
識別子の対応付け及び分離の後、異なる識別子が対応付けられた画素の内、色同士が所定の範囲内で近似し、且つ、画像上で第2距離より近接している画素間で識別子を統合する手順と
を含むことを特徴とするコンピュータプログラム。
【請求項10】
請求項9に記載のコンピュータプログラムを記録してあることを特徴とするコンピュータでの読み取りが可能な記録媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【図37】
【図38】
【図39】
【図40】
【図41】
【図42】
【図43】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【図37】
【図38】
【図39】
【図40】
【図41】
【図42】
【図43】
【公開番号】特開2010−157899(P2010−157899A)
【公開日】平成22年7月15日(2010.7.15)
【国際特許分類】
【出願番号】特願2008−334966(P2008−334966)
【出願日】平成20年12月26日(2008.12.26)
【出願人】(000005049)シャープ株式会社 (33,933)
【Fターム(参考)】
【公開日】平成22年7月15日(2010.7.15)
【国際特許分類】
【出願日】平成20年12月26日(2008.12.26)
【出願人】(000005049)シャープ株式会社 (33,933)
【Fターム(参考)】
[ Back to top ]