(57)【特許請求の範囲】
【請求項１】
元画像を表す元画像データを取得する取得部と、
前記元画像に含まれる複数個の画素のそれぞれについて、その画素を含む周辺範囲内の（Ｍ×Ｎ）個（Ｍ、Ｎは、２以上の整数）の画素の値の平均値を、その画素に対応するマスクデータとして算出するマスク生成部であって、前記周辺範囲は、第１方向の画素数がＭ個であり、前記第１方向と交差する第２方向の画素数がＮ個である矩形の範囲である、前記マスク生成部と、
前記元画像に含まれる複数個の画素のそれぞれに対して、対応する前記マスクデータを用いてアンシャープマスク処理を実行することによって、処理済画像データを生成するアンシャープマスク処理部と、
を備え、
前記マスク生成部は、
第１画素の前記周辺範囲である第１範囲内の（Ｍ×Ｎ）個の画素の値の合計である第１値を用いて、前記第１画素に対応する第１のマスクデータを算出し、
前記第１範囲内の（Ｍ×Ｎ）個の画素のうち、前記第１方向の反対方向の端に位置し、前記第２方向に沿って並ぶＮ個の画素の値の合計である第２値を算出し、
前記第１範囲に対して前記第１方向に隣接し、前記第２方向に沿って並ぶＮ個の画素の値の合計である第３値を算出し、
前記第１値に対して、前記第２値を減算し、前記第３値を加算することによって、前記第１画素の前記第１方向に隣接する第２画素の前記周辺範囲である第２範囲内の（Ｍ×Ｎ）個の画素の値の合計である第４値を算出し、
前記第４値を用いて、前記第２画素に対応する第２のマスクデータを算出し、
前記アンシャープマスク処理部は、前記元画像内の複数個の画素のうち、前記周辺範囲内の複数個の画素の最大輝度値と最小輝度値との差分が特定範囲内である画素について、画素の値を変更しない、画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
前記マスク生成部は、
前記元画像に含まれる複数個の画素のそれぞれについて、前記マスクデータを算出する際に、前記マスクデータに対応する画素について、前記差分が前記特定範囲内であるか否かを判断し、
前記差分が前記特定範囲内でない画素に対応する前記マスクデータを、その画素の前記周辺範囲内の画素の値の平均値に決定し、
前記差分が前記特定範囲内である画素に対応する前記マスクデータを、その画素の値に決定する、画像処理装置。
【請求項３】
請求項１または請求項２に記載の画像処理装置であって、
前記マスク生成部は、
前記第１範囲内のＭ個の画素群であって、前記第２方向に沿って並ぶＮ個の画素をそれぞれ含む前記Ｍ個の画素群のそれぞれについて特定済のＭ個の最大輝度値とＭ個の最小輝度値とを用いて、前記第１範囲内の最大輝度値および最小輝度値とを特定し、
特定される前記第１範囲内の最大輝度値および最小輝度値を用いて、前記第１画素について、前記差分が前記特定範囲内であるか否かを判断し、
前記第１範囲に対して前記第１方向に隣接し、前記第２方向に沿って並ぶＮ個の画素を含む一の画素群の最大輝度値と最小輝度値とを特定し、
前記特定済のＭ個の最大輝度値とＭ個の最小輝度値のうち、前記第１範囲内の前記第１方向の反対方向の端に位置する１個の画素群の値を除く（Ｍ−１）個の最大輝度値と（Ｍ−１）個の最小輝度値と、前記第１範囲に対して前記第１方向に隣接する前記一の画素群について特定された最大輝度値と最小輝度値と、を用いて、前記第２範囲内の最大輝度値および最小輝度値とを特定し、
特定される前記第２範囲内の最大輝度値および最小輝度値を用いて、前記第２画素について、前記差分が前記特定範囲内であるか否かを判断する、画像処理装置。
【請求項４】
請求項３に記載の画像処理装置であって、
前記差分の前記特定範囲は、前記差分が第１の基準より小さい範囲と、前記差分が第２の基準より大きい範囲と、の少なくとも一方の範囲である、画像処理装置。
【請求項５】
請求項１から請求項４のいずれかに記載の画像処理装置であって、
前記マスク生成部は、
前記第１範囲内の（Ｍ×Ｎ）個の画素のうち、前記第２方向の反対方向の端に位置し、前記第１方向に沿って並ぶＭ個の画素の値の合計である第５値を算出し、
前記第１範囲に対して前記第２方向に隣接し、前記第１方向に沿って並ぶＭ個の画素の値の合計である第６値を算出し、
前記第１値に対して、前記第５値を減算し、前記第６値を加算することによって、前記第１画素の前記第２方向に隣接する第３画素の前記周辺範囲である第３範囲内の（Ｍ×Ｎ）個の画素の値の合計である第７値を算出し、
前記第７値を用いて、前記第３画素に対応する第３のマスクデータを算出する、画像処理装置。
【請求項６】
請求項１から請求項５のいずれかに記載の画像処理装置であって、
Ｍは、３以上の整数であり、Ｎは、３以上の整数である、画像処理装置。
【請求項７】
請求項１から請求項６のいずれかに記載の画像処理装置であって、
前記マスク生成部は、
前記第１画素と前記第２画素とを含む前記第１方向に沿って並ぶＬ個（Ｌは、Ｍ以上の整数）の画素を１個ずつ含むＬ個の画素群であって、Ｌ個の画素の前記周辺範囲のいずれかに含まれる前記第２方向に沿って並ぶＮ個の画素をそれぞれ含む、前記Ｌ個の画素群のそれぞれについて、各画素群に含まれるＮ個の画素の合計値を算出し、
前記Ｌ個の画素群のＬ個の合計値を用いた加算処理と減算処理とによって、前記Ｌ個の画素に対応するＬ個のマスクデータを算出する、画像処理装置。
【請求項８】
請求項１から請求項６のいずれかに記載の画像処理装置であって、
前記マスク生成部は、
前記第１値を用いて、前記第１のマスクデータを算出した後に、前記第１値をメモリから消去し、
前記第１値を消去した後に、前記第４値を算出する際に、前記第１のマスクデータを（Ｍ×Ｎ）倍することによって、前記第１値を算出する、画像処理装置。
【請求項９】
元画像を表す元画像データを取得する取得機能と、
前記元画像に含まれる複数個の画素のそれぞれについて、その画素を含む周辺範囲内の（Ｍ×Ｎ）個（Ｍ、Ｎは、２以上の整数）の画素の値の平均値を、その画素に対応するマスクデータとして算出するマスク生成機能であって、前記周辺範囲は、第１方向の画素数がＭ個であり、前記第１方向と交差する第２方向の画素数がＮ個である矩形の範囲である、前記マスク生成機能と、
前記元画像に含まれる複数個の画素のそれぞれに対して、対応する前記マスクデータを用いてアンシャープマスク処理を実行することによって、処理済画像データを生成するアンシャープマスク処理機能と、
をコンピュータに実現させ、
前記マスク生成機能は、
第１画素の前記周辺範囲である第１範囲内の（Ｍ×Ｎ）個の画素の値の合計である第１値を用いて、前記第１画素に対応する第１のマスクデータを算出し、
前記第１範囲内の（Ｍ×Ｎ）個の画素のうち、前記第１方向の反対方向の端に位置し、前記第２方向に沿って並ぶＮ個の画素の値の合計である第２値を算出し、
前記第１範囲に対して前記第１方向に隣接し、前記第２方向に沿って並ぶＮ個の画素の値の合計である第３値を算出し、
前記第１値に対して、前記第２値を減算し、前記第３値を加算することによって、前記第１画素の前記第１方向に隣接する第２画素の前記周辺範囲である第２範囲内の（Ｍ×Ｎ）個の画素の値の合計である第４値を算出し、
前記第４値を用いて、前記第２画素に対応する第２のマスクデータを算出し、
前記アンシャープマスク処理機能は、前記元画像内の複数個の画素のうち、前記周辺範囲内の複数個の画素の最大輝度値と最小輝度値との差分が特定範囲内である画素について、画素の値を変更しない、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、画像データに対して、アンシャープマスク処理を実行する画像処理に関する。
【背景技術】
【０００２】
従来から、印刷される画像の画質を向上するための画像処理として、画像を鮮鋭化するアンシャープマスク処理が行われている。アンシャープマスク処理は、画像の鮮鋭度を高めることで、例えば、写真などを含む画像の画質を向上することができる。例えば、特許文献１では、写真などの自然画であると判断される画像に対するエッジ強調処理として、アンシャープマスク処理を用いることが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献２】特開平１０−２００７７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、アンシャープマスク処理では、注目画素の周辺領域内の画素の値を用いてマスクデータを生成する必要があるために、処理時間が長くなりがちである。上記技術では、処理時間の低減について十分な工夫がされていないので、アンシャープマスク処理のマスクデータを生成する処理時間が過度に長くなる可能性があった。
【０００５】
本明細書は、アンシャープマスク処理のマスクデータを生成する処理時間を低減できる新たな技術を開示する。
【課題を解決するための手段】
【０００６】
本明細書に開示された技術は、以下の適用例として実現することが可能である。
【０００７】
［適用例１］元画像を表す元画像データを取得する取得部と、前記元画像に含まれる複数個の画素のそれぞれについて、その画素を含む周辺範囲内の（Ｍ×Ｎ）個（Ｍ、Ｎは、２以上の整数）の画素の値の平均値を、その画素に対応するマスクデータとして算出するマスク生成部であって、前記周辺範囲は、第１方向の画素数がＭ個であり、前記第１方向と交差する第２方向の画素数がＮ個である矩形の範囲である、前記マスク生成部と、前記元画像に含まれる複数個の画素のそれぞれに対して、対応する前記マスクデータを用いてアンシャープマスク処理を実行することによって、処理済画像データを生成するアンシャープマスク処理部と、を備え、前記マスク生成部は、第１画素の前記周辺範囲である第１範囲内の（Ｍ×Ｎ）個の画素の値の合計である第１値を用いて、前記第１画素に対応する第１のマスクデータを算出し、前記第１範囲内の（Ｍ×Ｎ）個の画素のうち、前記第１方向の反対方向の端に位置し、前記第２方向に沿って並ぶＮ個の画素の値の合計である第２値を算出し、前記第１範囲に対して前記第１方向に隣接し、前記第２方向に沿って並ぶＮ個の画素の値の合計である第３値を算出し、前記第１値に対して、前記第２値を減算し、前記第３値を加算することによって、前記第１画素の前記第１方向に隣接する第２画素の前記周辺範囲である第２範囲内の（Ｍ×Ｎ）個の画素の値の合計である第４値を算出し、前記第４値を用いて、前記第２画素に対応する第２のマスクデータを算出する、画像処理装置。
【０００８】
上記構成によれば、第１値に対して、第２値を減算し、第３値を加算することによって、第４値が算出される。この結果、第２範囲内の（Ｍ×Ｎ）個の画素の値を１個ずつ加算することによって第４値を算出するよりも算出時間を低減できる。したがって、アンシャープマスク処理のマスクデータを生成する処理時間を低減することができる。
［適用例２］
適用例１に記載の画像処理装置であって、
前記マスク生成部は、
前記第１範囲内の（Ｍ×Ｎ）個の画素のうち、前記第２方向の反対方向の端に位置し、前記第１方向に沿って並ぶＭ個の画素の値の合計である第５値を算出し、
前記第１範囲に対して前記第２方向に隣接し、前記第１方向に沿って並ぶＭ個の画素の値の合計である第６値を算出し、
前記第１値に対して、前記第５値を減算し、前記第６値を加算することによって、前記第１画素の前記第２方向に隣接する第３画素の前記周辺範囲である第３範囲内の（Ｍ×Ｎ）個の画素の値の合計である第７値を算出し、
前記第７値を用いて、前記第３画素に対応する第３のマスクデータを算出する、画像処理装置。
［適用例３］
適用例１または適用例２に記載の画像処理装置であって、
Ｍは、３以上の整数であり、Ｎは、３以上の整数である、画像処理装置。
［適用例４］
適用例１から適用例３のいずれかに記載の画像処理装置であって、
前記マスク生成部は、
前記第１画素と前記第２画素とを含む前記第１方向に沿って並ぶＬ個（Ｌは、Ｍ以上の整数）の画素を１個ずつ含むＬ個の画素群であって、Ｌ個の画素の前記周辺範囲のいずれかに含まれる前記第２方向に沿って並ぶＮ個の画素をそれぞれ含む、前記Ｌ個の画素群のそれぞれについて、各画素群に含まれるＮ個の画素の合計値を算出し、
前記Ｌ個の画素群のＬ個の合計値を用いた加算処理と減算処理とによって、前記Ｌ個の画素に対応するＬ個のマスクデータを算出する、画像処理装置。
［適用例５］
適用例１から適用例３のいずれかに記載の画像処理装置であって、
前記マスク生成部は、
前記第１値を用いて、前記第１のマスクデータを算出した後に、前記第１値をメモリから消去し、
前記第１値を消去した後に、前記第４値を算出する際に、前記第１のマスクデータを（Ｍ×Ｎ）倍することによって、前記第１値を算出する、画像処理装置。
［適用例６］
適用例１から適用例５のいずれかに記載の画像処理装置であって、
前記アンシャープマスク処理部は、前記元画像内の複数個の画素のうち、前記周辺範囲内の複数個の画素の最大輝度値と最小輝度値との差分が特定範囲内である画素について、画素の値を変更しない、画像処理装置。
［適用例７］
適用例６に記載の画像処理装置であって、
前記マスク生成部は、
前記元画像に含まれる複数個の画素のそれぞれについて、前記マスクデータを算出する際に、前記マスクデータに対応する画素について、前記差分が前記特定範囲内であるか否かを判断し、
前記差分が前記特定範囲内でない画素に対応する前記マスクデータを、その画素の前記周辺範囲内の画素の値の平均値に決定し、
前記差分が前記特定範囲内である画素に対応する前記マスクデータを、その画素の値に決定する、画像処理装置。
［適用例８］
適用例６または適用例７に記載の画像処理装置であって、
前記マスク生成部は、
前記第１範囲内のＭ個の画素群であって、前記第２方向に沿って並ぶＮ個の画素をそれぞれ含む前記Ｍ個の画素群のそれぞれについて特定済のＭ個の最大輝度値とＭ個の最小輝度値とを用いて、前記第１範囲内の最大輝度値および最小輝度値とを特定し、
特定される前記第１範囲内の最大輝度値および最小輝度値を用いて、前記第１画素について、前記差分が前記特定範囲内であるか否かを判断し、
前記第１範囲に対して前記第１方向に隣接し、前記第２方向に沿って並ぶＮ個の画素を含む一の画素群の最大輝度値と最小輝度値とを特定し、
前記特定済のＭ個の最大輝度値とＭ個の最小輝度値のうち、前記第１範囲内の前記第１方向の反対方向の端に位置する１個の画素群の値を除く（Ｍ−１）個の最大輝度値と（Ｍ−１）個の最小輝度値と、前記第１範囲に対して前記第１方向に隣接する前記一の画素群について特定された最大輝度値と最小輝度値と、を用いて、前記第２範囲内の最大輝度値および最小輝度値とを特定し、
特定される前記第２範囲内の最大輝度値および最小輝度値を用いて、前記第２画素について、前記差分が前記特定範囲内であるか否かを判断する、画像処理装置。
［適用例９］
適用例８に記載の画像処理装置であって、
前記差分の前記特定範囲は、前記差分が第１の基準より小さい範囲と、前記差分が第２の基準より大きい範囲と、の少なくとも一方の範囲である、画像処理装置。
【０００９】
なお、本明細書に開示された技術は、種々の形態で実現可能であり、例えば、印刷装置、印刷装置の制御装置、画像処理方法、これらの装置および方法の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、等の形態で実現することができる。
【図面の簡単な説明】
【００１０】
【図１】計算機２００と複合機１００の構成を示すブロック図である。
【図２】印刷処理のフローチャートである。
【図３】元画像データによって表される元画像ＯＩの一例を示す図である。
【図４】第１実施例のマスクデータ生成処理のフローチャートである。
【図５】元画像ＯＩの左上の頂点近傍の拡大図である。
【図６】画素Ｐ（０、ｂ）の近傍の拡大図である。
【図７】鮮鋭化処理のフローチャートである。
【図８】第２実施例のマスクデータ生成処理のフローチャートである。
【図９】元画像ＯＩ内の文字ＴＸを含むオブジェクトＯｂ２の一部分を示す図である。
【発明を実施するための形態】
【００１１】
Ａ．第１実施例：
Ａ−１：画像処理装置の構成
次に、実施の形態を実施例に基づき説明する。図１は、実施例における画像処理装置としての計算機２００と、複合機１００の構成を示すブロック図である。
【００１２】
計算機２００は、例えば、パーソナルコンピュータであり、計算機２００のコントローラとしてのプロセッサであるＣＰＵ２１０と、ハードディスクドライブなどの不揮発性記憶装置２２０と、ＲＡＭなどの揮発性記憶装置２３０と、マウスやキーボードなどの操作部２６０と、液晶ディスプレイなどの表示部２７０と、通信部２８０と、を備えている。計算機２００は、通信部２８０を介して、複合機１００などの外部装置と通信可能に接続される。
【００１３】
揮発性記憶装置２３０は、ＣＰＵ２１０が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域２３１を提供する。不揮発性記憶装置２２０には、コンピュータプログラムＣＰが格納されている。コンピュータプログラムＣＰは、本実施例では、複合機１００の後述するプリンタ部１３０を制御するためのプリンタドライバプログラムであり、サーバからダウンロードされる形態で提供される。これに代えて、コンピュータプログラムＣＰは、ＤＶＤ−ＲＯＭなどに格納される形態で提供されてもよい。ＣＰＵ２１０は、コンピュータプログラムＣＰを実行することにより、後述する印刷処理を実行する。
【００１４】
複合機１００は、イメージセンサを用いて原稿を光学的に読み取ることによってスキャンデータを生成するスキャナ部１２０と、所定の方式（例えば、インクジェット、レーザー）によって用紙などの印刷媒体に画像を印刷するプリンタ部１３０と、スキャナ部１２０やプリンタ部１３０を制御するＣＰＵとメモリとを含む制御部１１０と、を備えている。
【００１５】
Ａ−２：印刷処理
図２は、印刷処理のフローチャートである。この印刷処理は、例えば、計算機２００において、コンピュータプログラムＣＰが実行されて、プリンタドライバが起動されているときに、ユーザの開始指示に基づいて開始される。
【００１６】
Ｓ１０、Ｓ２０では、ＣＰＵ２１０は、元画像データを取得する。先ず、Ｓ１０では、印刷すべき画像を表す画像データを取得する。この画像データは、例えば、不揮発性記憶装置２２０に格納された複数個の画像データの中から、ユーザの指定に基づいて選択された１個の画像データである。Ｓ２０では、ＣＰＵ２１０は、取得された画像データに対してラスタライズ処理を実行して、元画像データを生成する。元画像データは、複数個の画素を含むビットマップデータであり、具体的には、ＲＧＢ値によって画素ごとの色を表すＲＧＢ画像データである。ＲＧＢ値は、３個の色成分の階調値（以下、成分値とも呼ぶ）、すなわち、Ｒ値、Ｇ値、Ｂ値を含むＲＧＢ表色系の色値である。Ｒ値、Ｇ値、Ｂ値は、例えば、２５６階調の階調値である。
【００１７】
図３は、元画像データによって表される元画像ＯＩの一例を示す図である。図３の元画像ＯＩは、３個のオブジェクトＯｂ１〜Ｏｂ３と、背景ＢＧと、を含んでいる。オブジェクトＯｂ１は、人物ＨＮを含む写真を表している。オブジェクトＯｂ２は、文字ＴＸを含む表を表している。オブジェクトＯｂ３は、描画、具体的には、円グラフを表している。
【００１８】
Ｓ３０では、ＣＰＵ２１０は、Ｓ４０のアンシャープマスク処理で用いるマスクデータを生成するマスクデータ生成処理を実行する。マスクデータ生成処理では、元画像ＯＩに含まれる複数個の画素のそれぞれについて、対応するマスクデータが生成される。マスクデータは、元画像ＯＩ内の対応する画素の後述する周辺範囲ＣＡ内の（Ｍ×Ｎ）個（Ｍ、Ｎは、２以上の整数）の画素の値の平均値である。マスクデータ生成処理の詳細は、後述する。
【００１９】
Ｓ４０では、ＣＰＵ２１０は、鮮鋭化処理を実行する。鮮鋭化処理は、元画像ＯＩに含まれる複数個の画素のそれぞれに対して、対応するマスクデータを用いてアンシャープマスク処理を実行することによって、処理済画像データを生成する処理である。処理済画像データによって表される処理済画像は、元画像ＯＩと比較して鮮鋭度が高くなり、特に元画像ＯＩ内の写真を示すオブジェクトＯｂ１の画質が向上する。処理済画像データは、元画像データと同様にＲＧＢ画像データである。鮮鋭化処理の詳細は、後述する。
【００２０】
Ｓ５０では、ＣＰＵ２１０は、処理済画像データに対して色変換処理を実行する。これによって、処理済画像データの各画素のＲＧＢ値は、印刷用の複数個の色材に対応する複数個の成分値を含む色値に変換される。本実施例では、ＲＧＢ値は、Ｃ（シアン）、Ｍ（マゼンタ）、Ｙ（イエロ）、Ｋ（ブラック）の４個の成分値を含むＣＭＹＫ値に変換される。色変換処理は、不揮発性記憶装置２２０に予め格納された色変換プロファイル（図示省略）を参照して実行される。色変換プロファイルは、ＲＧＢ値とＣＭＹＫ値との対応関係を規定する情報であり、具体的には、ルックアップテーブルである。
【００２１】
Ｓ６０では、ＣＰＵ２１０は、色変換処理後の処理済画像データに対してハーフトーン処理を実行して、ドットの形成状態を画素ごと、かつ、色材ごとに表すドットデータを生成する。ドットデータに含まれる各画素の値は、例えば、「大ドット」、「中ドット」、「小ドット」、「ドット無し」の４つのドットの形成状態のいずれかを示す。これに代えて、ドットデータに含まれる各画素の値は、「ドット有り」、「ドット無し」の２つのドットの形成状態のいずれかを示しても良い。
【００２２】
Ｓ７０では、ＣＰＵ２１０は、ドットデータを用いて印刷ジョブを生成する。例えば、ＣＰＵ２１０は、ドットデータを、プリンタ部１３０を用いて印刷を行う際に用いられる順番に並べ替える処理と、ドットデータにプリンタ制御コードやデータ識別コードを付加する処理と、を実行する。この結果、複合機１００によって解釈可能な印刷ジョブが生成される。Ｓ８０では、ＣＰＵ２１０は、生成された印刷ジョブを、複合機１００に出力する。複合機１００のプリンタ部１３０は、計算機２００から出力された印刷ジョブに基づいて画像を印刷する。
【００２３】
Ａ−３：マスクデータ生成処理
図２のＳ３０のマスクデータ生成処理について説明する。マスクデータ生成処理は、上述したように、元画像ＯＩ内の複数個の画素のそれぞれについて、その画素の周辺範囲ＣＡ内の複数個の画素の値を用いてマスクデータを生成する処理である。
【００２４】
図５は、元画像ＯＩの左上の頂点近傍の拡大図である。図５の格子状に並ぶ複数個の矩形のそれぞれは、元画像ＯＩ内の画素を示す。図５に示すように、元画像ＯＩの左側から右に向かう方向を＋Ｘ方向と呼び、＋Ｘ方向の反対方向を−Ｘ方向と呼ぶ。また、元画像ＯＩの上側から下に向かう方向を＋Ｙ方向と呼び、＋Ｙ方向の反対方向を−Ｙ方向と呼ぶ。元画像ＯＩの−Ｘ方向の端（図５の左端）から＋Ｘ方向に向かって、各画素にＸ座標を付す。また、−Ｙ方向の端（図５の上端）から＋Ｙ方向に向かって、各画素にＹ座標を付す。Ｘ座標が「ａ」であり、Ｙ座標が「ｂ」である画素を、Ｐ（ａ、ｂ）と表す（ａ、ｂは、０以上の整数）。例えば、元画像ＯＩの左上の頂点の画素は、Ｐ（０、０）と表される。同様に、元画像ＯＩの複数個の画素から設定される１個の画素である注目画素を、該注目画素の座標（ａ、ｂ）を用いて、注目画素ＴＰ（ａ、ｂ）と表す。
【００２５】
ここで、画素Ｐ（ａ、ｂ）の周辺範囲ＣＡ（ａ、ｂ）について説明する。図５に示すように、１個の画素Ｐ（ａ、ｂ）の周辺範囲ＣＡ（ａ、ｂ）は、画素Ｐ（ａ、ｂ）を含む予め定められたサイズの範囲である。具体的には、画素Ｐ（ａ、ｂ）の周辺範囲ＣＡ（ａ、ｂ）は、画素Ｐ（ａ、ｂ）を中心とする（１１×１１）個、すなわち、１２１個の画素を含む矩形の範囲である。本実施例の周辺範囲ＣＡの＋Ｘ方向の画素数は、１１個であり、周辺範囲ＣＡのＹ方向の画素数は、１１個である。画素Ｐ（ａ、ｂ）の周辺範囲ＣＡ（ａ、ｂ）内の１２１個の画素の値の合計値を、画素Ｐ（ａ、ｂ）の周辺合計値ＴＭ（ａ、ｂ）と呼ぶ。
【００２６】
図５に示すように、周辺範囲ＣＡ（ａ、ｂ）は、Ｘ座標が（ａ−５）〜（ａ＋５）である１１個の列Ｃ（ａ−５）〜Ｃ（ａ＋５）を含んでいる。１１個の列Ｃ（ａ−５）〜Ｃ（ａ＋５）のそれぞれは、＋Ｙ方向に沿って並ぶ１１個の画素を含んでいる。１１個の列Ｃ（ａ−５）〜Ｃ（ａ＋５）のそれぞれに含まれる１１個の画素の値の合計値をＴＶ（ａ−５）〜ＴＶ（ａ＋５）とする。
【００２７】
図４は、第１実施例のマスクデータ生成処理のフローチャートである。このフローチャートは、ＲＧＢ値の１個の成分値についてのマスクデータ生成処理を示している。実際には、マスクデータ生成処理が、ＲＢＧ値の各成分について実行されることで、ＲＧＢの各成分のマスクデータＭＤｒ、ＭＤｇ、ＭＤｂが、画素ごとに生成される。以下では、画素のＲＧＢ値のうち、処理対象の成分値を、単に、画素の値とも呼ぶ。また、処理対象の成分のマスクデータを、単に、マスクデータＭＤとも呼ぶ。
【００２８】
Ｓ１０５では、ＣＰＵ２１０は、注目画素ＴＰ（ａ、ｂ）を、元画像ＯＩの左上の画素Ｐ（０、０）に設定する。
【００２９】
Ｓ１１０では、ＣＰＵ２１０は、注目画素ＴＰ（０、０）の周辺範囲ＣＡ（０、０）内の１１個の列Ｃ（−５）〜Ｃ（＋５）について、各列の合計値ＴＶ（−５）〜ＴＶ（＋５）を算出する。ここで、注目画素ＴＰ（０、０）は、元画像ＯＩの左上の画素であるので、周辺範囲ＣＡ（０、０）のうち、注目画素ＴＰ（０、０）より−Ｘ方向（図５の左側）、および、注目画素ＴＰ（０、０）より−Ｙ方向（図５の上側）には、画素が存在しない。このように、周辺範囲ＣＡ内に、画素が存在しない領域が含まれる場合には、当該領域内には、特定値を有する画素が存在すると仮定して、処理が進められる。本ステップの各列の合計値ＴＶ（−５）〜ＴＶ（＋５）の算出も、この仮定の元で実行される。本実施例では、特定値として、「２５５」が、用いられる。すなわち、元画像ＯＩの周囲には、白色の画素があると仮定して、マスクデータ生成処理が行われている。これに代えて、特定値には、元画像ＯＩの背景を示す値、例えば、元画像ＯＩの外縁に沿う複数個の画素の平均値が用いられても良い。
【００３０】
Ｓ１１５では、ＣＰＵ２１０は、各列の合計値ＴＶ（−５）〜ＴＶ（＋５）を加算することによって、注目画素ＴＰ（０、０）の周辺合計値ＴＭ（０、０）を算出する。各列の合計値ＴＶ（−５）〜ＴＶ（＋５）は、周辺合計値ＴＭ（０、０）が算出された後も、バッファ領域２３１から消去されることなく、保持される。これらの１０個の値は、後述するＳ１３５でバッファ領域２３１から取得されて、後述するＳ１４５での２個目以降の注目画素ＴＰ（ａ、ｂ）の周辺合計値ＴＭ（ａ、ｂ）の算出に用いられるからである。
【００３１】
以下のＳ１２０〜Ｓ１４５の処理は、注目画素ＴＰを変更しながら、繰り返し実行されるので、注目画素ＴＰ（ａ、ｂ）についての処理として、一般的に説明する。初回のＳ１２０〜Ｓ１４５の処理では、注目画素ＴＰ（ａ、ｂ）は、画素Ｐ（０、０）である。
【００３２】
Ｓ１２０では、周辺合計値ＴＭ（ａ、ｂ）を用いて、注目画素ＴＰ（ａ、ｂ）のマスクデータＭＤ（ａ、ｂ）を算出する。具体的には、ＣＰＵ２１０は、周辺合計値ＴＭ（ａ、ｂ）を、周辺範囲内（ａ、ｂ）に含まれる画素の個数ＰＮ（本実施例では、１２１）で除することによって、マスクデータＭＤ（ａ、ｂ）を算出する（ＭＤ（ａ、ｂ）＝ＴＭ（ａ、ｂ）／ＰＮ）。初回のＳ１２０で用いられる周辺合計値ＴＭ（ａ、ｂ）、すなわち、周辺合計値ＴＭ（０、０）は、Ｓ１１５で算出される値である。２回目以降のＳ１２０で用いられる周辺合計値ＴＭ（ａ、ｂ）は、後述するＳ１４５、あるいは、Ｓ１７５にて算出される値である。なお、マスクデータＭＤ（ａ、ｂ）の算出に用いられた周辺合計値ＴＭ（ａ、ｂ）は、後述のＳ１４５にて、次の注目画素ＴＰ（ａ＋１、ｂ）の周辺合計値ＴＭ（ａ＋１、ｂ）の算出に用いられるので、バッファ領域２３１に保持される。
【００３３】
Ｓ１２５では、ＣＰＵ２１０は、注目画素ＴＰ（ａ、ｂ）は、＋Ｘ方向の最終画素、すなわち、処理中の＋Ｘ方向に沿うライン（以下、単に、ラインとも呼ぶ）の＋Ｘ方向の端に位置する画素であるか否かを判断する。注目画素ＴＰ（ａ、ｂ）が、＋Ｘ方向の最終画素でない場合には（Ｓ１２５：ＮＯ）、Ｓ１３０に処理が進められ、注目画素ＴＰ（ａ、ｂ）が、＋Ｘ方向の最終画素である場合には（Ｓ１２５：ＹＥＳ）、Ｓ１５０に処理が進められる。
【００３４】
Ｓ１３０では、ＣＰＵ２１０は、注目画素ＴＰ（ａ、ｂ）を＋Ｘ方向に１個分移動する。すなわち、注目画素ＴＰ（ａ、ｂ）の＋Ｘ方向に隣接する画素Ｐ（ａ＋１、ｂ）が新たな注目画素ＴＰ（ａ、ｂ）に設定される（ａ＝ａ＋１）。
【００３５】
Ｓ１３５では、ＣＰＵ２１０は、前回の注目画素ＴＰ（ａ−１、ｂ）の周辺範囲ＣＡ（ａ−１、ｂ）の−Ｘ方向の端に位置する列Ｃ（ａ−６）に含まれる１１個の画素の値の合計値ＴＶ（ａ−６）を、取得する。以下では、周辺範囲ＣＡ内の１個の列に含まれる１１個の画素の値の合計値を単に、「当該列の合計値」と表現する。列Ｃ（ａ−６）は、図５にてシングルハッチングされた部分である。この合計値ＴＶ（ａ−６）は、この時点までに処理済の注目画素ＴＰの周辺合計値ＴＭを算出するために算出されている。具体的には、この時点までに実行済のＳ１４０（後述）、または、上述のＳ１１５で算出されて、バッファ領域２３１に保持されている。例えば、現在の注目画素ＴＰ（ａ、ｂ）が画素Ｐ（１、０）である場合には、取得される合計値ＴＶ（ａ−６）は、Ｓ１１５にて算出され合計値ＴＶ（−５）である。また、現在の注目画素ＴＰ（ａ、ｂ）が画素Ｐ（３０、０）である場合には、取得される合計値ＴＶ（ａ−６）は、注目画素（ａ、ｂ）が画素Ｐ（１９、０）であるときに、Ｓ１４０にて算出される合計値ＴＶ（２４）である。
【００３６】
なお、変形例としては、本ステップにて、ＣＰＵ２１０は、列Ｃ（ａ−６）内の１１個の画素の値を用いて合計値ＴＶ（ａ−６）を算出することによって、合計値ＴＶ（ａ−６）を取得しても良い。この場合には、計算量は、本実施例より増加するが、Ｓ１１５やＳ１４０で算出される合計値ＴＶを、本ステップで取得されるまで保持しておく必要がないので、必要なメモリ量（例えば、バッファ領域２３１の容量）を低減することができる。
【００３７】
Ｓ１４０では、ＣＰＵ２１０は、現在の注目画素ＴＰ（ａ、ｂ）の周辺範囲ＣＡ（ａ、ｂ）の＋Ｘ方向の端の列Ｃ（ａ＋５）の合計値ＴＶ（ａ＋５）を算出する。この列Ｃ（ａ＋５）は、図５にてダブルハッチングされた部分である。列Ｃ（ａ＋５）は、前回の注目画素ＴＰ（ａ−１、ｂ）の周辺範囲ＣＡ（ａ−１、ｂ）の＋Ｘ方向の端に隣接する列、とも言うことができる。
【００３８】
Ｓ１４５では、ＣＰＵ２１０は、現在の注目画素ＴＰ（ａ、ｂ）の周辺合計値ＴＭ（ａ、ｂ）を算出する。具体的には、前回の注目画素ＴＰ（ａ−１、ｂ）の周辺合計値ＴＭ（ａ−１、ｂ）に対して、Ｓ１３５で取得された合計値ＴＶ（ａ−６）が減算され、Ｓ１４０で算出された合計値ＴＶ（ａ＋５）が加算されることによって、周辺合計値ＴＭ（ａ、ｂ）が算出される。すなわち、周辺合計値ＴＭ（ａ、ｂ）の算出式は、以下の式（１）で示される。
ＴＭ（ａ、ｂ）＝ＴＭ（ａ−１、ｂ）−ＴＶ（ａ−６）＋ＴＶ（ａ＋５）...（１）
【００３９】
なお、周辺合計値ＴＭ（ａ、ｂ）の算出後には、前回の注目画素ＴＰ（ａ−１、ｂ）の周辺合計値ＴＭ（ａ−１、ｂ）と、Ｓ１３５で取得された合計値ＴＶ（ａ−６）は、不要となるので、バッファ領域２３１から消去される。
【００４０】
Ｓ１４５にて、周辺合計値ＴＭ（ａ、ｂ）が算出されると、ＣＰＵ２１０は、Ｓ１２０に処理を戻す。
【００４１】
注目画素ＴＰ（ａ、ｂ）が、＋Ｘ方向の最終画素である場合には（Ｓ１２５：ＹＥＳ）、Ｓ１５０にて、ＣＰＵ２１０は、現在の注目画素ＴＰ（ａ、ｂ）は、＋Ｙ方向の最終画素、すなわち、処理すべき最後の画素であるか否かを判断する。現在の注目画素ＴＰ（ａ、ｂ）が＋Ｙ方向の最終画素である場合には（Ｓ１５０：ＹＥＳ）、ＣＰＵ２１０は、マスクデータ生成処理を終了する。
【００４２】
注目画素ＴＰ（ａ、ｂ）が＋Ｙ方向の最終画素でない場合には（Ｓ１５０：ＮＯ）、Ｓ１５５にて、ＣＰＵ２１０は、注目画素ＴＰ（ａ、ｂ）を＋Ｙ方向に１個分移動した画素であって、かつ、Ｘ方向の先頭（−Ｘ方向の端）の画素に移動する（ａ＝０、ｂ＝ｂ＋１）。すなわち、注目画素ＴＰ（ａ、ｂ）が位置するラインの＋Ｙ方向に隣接するラインの−Ｘ方向の端の画素Ｐを新たな注目画素ＴＰに設定する。ラインの先頭に位置する（すなわち、ａ＝０である）新たに設定された注目画素ＴＰを、注目画素ＴＰ（０、ｂ）と表現する。
【００４３】
図６は、注目画素ＴＰ（０、ｂ）、すなわち、画素Ｐ（０、ｂ）の近傍の拡大図である。Ｓ１６０では、ＣＰＵ２１０は、画素Ｐ（０、ｂ−１）の周辺範囲ＣＡ（０、ｂ−１）の−Ｙ方向の端に位置する行Ｒ（ｂ−６）に含まれる１１個の画素の値の合計値ＴＨ（ｂ−６）を算出する。周辺範囲ＣＡ内の１個の行に含まれる１１個の画素の値の合計値を単に、「当該行の合計値」と表現する。
【００４４】
画素Ｐ（０、ｂ−１）は、図６に示すように、注目画素ＴＰ（０、ｂ）（すなわち、図６の画素Ｐ（０、ｂ））の−Ｙ方向に隣接する画素である。画素Ｐ（０、ｂ−１）は、注目画素ＴＰとして既に処理済の画素の１つである。行Ｒ（ｂ−６）は、図６にてシングルハッチングされた部分である。
【００４５】
Ｓ１６５では、Ｓ１４０では、ＣＰＵ２１０は、現在の注目画素ＴＰ（０、ｂ）の周辺範囲ＣＡ（０、ｂ）の＋Ｙ方向の端の行Ｒ（ａ＋５）の合計値ＴＨ（ｂ＋５）を算出する。この行Ｒ（ｂ＋５）は、図６にてダブルハッチングされた部分である。行Ｒ（ｂ＋５）は、画素Ｐ（０、ｂ−１）の周辺範囲ＣＡ（０、ｂ−１）の＋Ｙ方向の端に隣接する行とも言うことができる。
【００４６】
Ｓ１７０では、ＣＰＵ２１０は、注目画素ＴＰ（０、ｂ）の−Ｙ方向に隣接する画素Ｐ（０、ｂ−１）について算出済のマスクデータＭＤ（０、ｂ−１）を用いて、画素Ｐ（０、ｂ−１）の周辺合計値ＴＭ（０、ｂ−１）を、再度、算出する。この周辺合計値ＴＭ（０、ｂ−１）は、注目画素ＴＰが、画素Ｐ（０、ｂ−１）であるときのＳ１７５にて、既に算出済であるが、直後のＳ１２０にて、当該周辺合計値ＴＭ（０、ｂ−１）を用いて、マスクデータＭＤ（０、ｂ−１）が算出された後に、バッファ領域２３１から消去されているからである。具体的には、マスクデータＭＤ（０、ｂ−１）に対して、周辺範囲内（０、ｂ−１）に含まれる画素の個数ＰＮ（本実施例では、１２１）を乗ずることによって、マスクデータＭＤ（０、ｂ−１）が算出される。
【００４７】
なお、変形例としては、ラインの先頭の画素（ａ＝０である画素）の周辺合計値ＴＭは、＋Ｙ方向に隣接する画素Ｐについて、マスクデータＭＤが算出されるまで、バッファ領域２３１に、保持されても良い。この場合には、Ｓ１７０にて、周辺合計値ＴＭ（０、ｂ−１）を、再度、算出する処理を省略することができる。
【００４８】
Ｓ１７５では、ＣＰＵ２１０は、現在の注目画素ＴＰ（０、ｂ）の周辺合計値ＴＭ（０、ｂ）を算出する。具体的には、Ｓ１７０にて算出された周辺合計値ＴＭ（０、ｂ−１）に対して、Ｓ１６０で算出された合計値ＴＨ（ｂ−６）が減算され、Ｓ１６５で算出された合計値ＴＨ（ｂ＋５）が加算されることによって、周辺合計値ＴＭ（０、ｂ）が算出される。すなわち、周辺合計値ＴＭ（０、ｂ）の算出式は、以下の式（２）で示される。
ＴＭ（０、ｂ）＝ＴＭ（０、ｂ−１）−ＴＨ（ｂ−６）＋ＴＨ（ｂ＋５）...（２）
【００４９】
Ｓ１７５にて、現在の注目画素ＴＰ（０、ｂ）の周辺合計値ＴＭ（０、ｂ）が算出されると、ＣＰＵ２１０は、Ｓ１２０に処理を戻す。
【００５０】
以上説明したマスクデータ生成処理が、ＲＧＢの３個の成分についてそれぞれ実行されると、ＲＧＢの３個の成分に対応する３個のマスクデータＭＤｒ、ＭＤｇ、ＭＤｂが、元画像ＯＩに含まれる複数個の画素のそれぞれについて生成される。
【００５１】
Ａ−４：鮮鋭化処理
図２のＳ４０の鮮鋭化処理について説明する。鮮鋭化処理は、上述したように、元画像ＯＩに含まれる複数個の画素のそれぞれに対して、対応するマスクデータを用いてアンシャープマスク処理を実行することによって、処理済画像データを生成する処理である。
【００５２】
図７は、鮮鋭化処理のフローチャートである。Ｓ１８０では、ＣＰＵ２１０は、元画像ＯＩに含まれる複数個の画素から１個の注目画素を選択する。
【００５３】
Ｓ１８５では、ＣＰＵ２１０は、図４のマスクデータ生成処理にて生成された複数個のマスクデータのうち、注目画素に対応するマスクデータを用いて、注目画素に対するアンシャープマスク処理を実行する。
【００５４】
具体的には、注目画素の処理前のＲＧＢ値を（Ｒｉｎ、Ｇｉｎ、Ｂｉｎ）とし、注目画素に対応するマスクデータを（ＭＤｒ、ＭＤｇ、ＭＤｂ）とすると、処理後のＲＧＢ値（Ｒｏｕｔ、Ｇｏｕｔ、Ｂｏｕｔ）は、以下の式（３）〜（５）で表される。
Ｒｏｕｔ＝Ｒｉｎ＋（Ｒｉｎ−ＭＤｒ）×Ｋ    ...（３）
Ｇｏｕｔ＝Ｇｉｎ＋（Ｇｉｎ−ＭＤｇ）×Ｋ    ...（４）
Ｂｏｕｔ＝Ｂｉｎ＋（Ｂｉｎ−ＭＤｂ）×Ｋ    ...（５）
ここで、Ｋはシャープネスを強調するレベルを示す所定の係数であり、本実施例では、Ｋ＝１である。
【００５５】
Ｓ１９０では、ＣＰＵ２１０は、元画像ＯＩ内の全ての画素を注目画素として処理したか否かを判断する。未処理の画素がある場合には（Ｓ１９０：ＮＯ）、ＣＰＵ２１０は、Ｓ１８０に戻って、未処理の画素を注目画素として選択する。全ての画素が処理された場合には（Ｓ１９０：ＹＥＳ）、ＣＰＵ２１０は、鮮鋭化処理を終了する。この時点で処理済画像を表す処理済画像データが生成されている。
【００５６】
以上説明した第１実施例によれば、図５の画素Ｐ（ａ−１、ｂ）の周辺範囲（ａ−１、ｂ）内の（１１×１１）個の画素の値の合計である周辺合計値ＴＭ（ａ−１、ｂ）を用いて、画素Ｐ（ａ−１、ｂ）に対応するマスクデータＭＤ（ａ−１、ｂ）が算出される（図４のＳ１２０）。この時点で、周辺範囲（ａ−１、ｂ）内の（１１×１１）個の画素のうち、−Ｘ方向の端に位置し、＋Ｙ方向に沿って並ぶ１１個の画素（すなわち、図５の列Ｃ（ａ−６）内の１１個の画素）の値の合計値ＴＶ（ａ−６）が算出されて、バッファ領域２３１に保持されている。そして、周辺範囲ＣＡ（ａ−１、ｂ）に対して＋Ｘ方向に隣接し、Ｙ方向に沿って並ぶ１１個の画素（すなわち、図５の列Ｃ（ａ＋５）内の１１個の画素）の値の合計値ＴＶ（ａ＋５）が算出される（Ｓ１４０）。そして、算出済の周辺合計値ＴＭ（ａ−１、ｂ）に対して、合計値ＴＶ（ａ−６）が減算され、合計値ＴＶ（ａ＋５）が加算されることによって、図５の画素Ｐ（ａ−１、ｂ）の＋Ｘ方向に隣接する画素Ｐ（ａ、ｂ）の周辺範囲ＣＡ（ａ、ｂ）内の（１１×１１）個の画素の値の合計である周辺合計値ＴＭ（ａ、ｂ）が算出される（Ｓ１４５）。そして、周辺合計値ＴＭ（ａ、ｂ）を用いて、画素Ｐ（ａ、ｂ）に対応するマスクデータＭＤ（ａ、ｂ）が算出される（Ｓ１２０）。この結果、周辺範囲ＣＡ（ａ、ｂ）内の（１１×１１）個の画素の値を１個ずつ加算することによって周辺合計値ＴＭ（ａ、ｂ）を算出するよりも算出時間を低減できる。したがって、マスクデータを生成するための処理時間を低減することができる。
【００５７】
さらに、図６の画素Ｐ（０、ｂ−１）の周辺範囲ＣＡ（０、ｂ−１）内の（１１×１１）個の画素のうち、−Ｙ方向の端に位置し、＋Ｘ方向に沿って並ぶ１１個の画素（すなわち、図６の行Ｒ（ｂ−６））の値の合計値ＴＨ（ｂ−６）が算出される（Ｓ１６０）。そして、周辺範囲ＣＡ（０、ｂ−１）に対して＋Ｙ方向に隣接し、＋Ｘ方向に沿って並ぶ１１個の画素（すなわち、図６の行Ｒ（ｂ＋５））内の１１個の画素）の値の合計値ＴＨ（ｂ＋５）が算出される（Ｓ１６５）。そして、Ｓ１７０にて算出済の画素Ｐ（０、ｂ−１）の周辺合計値ＴＭ（０、ｂ−１）に対して、合計値ＴＨ（ｂ−６）を減算し、合計値ＴＨ（ｂ＋５）を加算することによって、画素Ｐ（０、ｂ−１）の＋Ｙ方向に隣接する画素Ｐ（０、ｂ）の周辺範囲ＣＡ（０、ｂ）内の（１１×１１）個の画素の値の合計である周辺合計値ＴＭ（０、ｂ）が算出される（Ｓ１７５）。そして、周辺合計値ＴＭ（０、ｂ）を用いて、画素Ｐ（０、ｂ）に対応するマスクデータＭＤ（０、ｂ）が算出される（Ｓ１２０）。この結果、周辺範囲ＣＡ（０、ｂ）内の（１１×１１）個の画素の値を１個ずつ加算することによって周辺合計値ＴＭ（０、ｂ）を算出するよりも算出時間を低減できる。したがって、したがって、マスクデータを生成するための処理時間をさらに低減することができる。
【００５８】
より具体的には、本実施例によるマスクデータを生成するための処理時間は、各画素について周辺範囲ＣＡ内の全ての画素の値を１個ずつ加算することによって周辺合計値ＴＭを算出する場合の処理時間と比較して、約１／９.３となる。
【００５９】
ここで、元画像ＯＩの＋Ｘ方向の画素数Ｌ（Ｌは、Ｍ以上の整数）として、＋Ｘ方向に沿う特定のラスタライン、すなわち、＋Ｘ方向に沿って並ぶＬ個の画素に着目する。図４のＳ１１０、および、Ｓ１４０から解るように、これらのＬ個の画素を１個ずつ含むＬ個の列Ｃ（０）〜Ｃ（Ｌ）の合計値ＴＶ（０）〜ＴＶ（Ｌ）がそれぞれ算出されている。そして、そして、Ｓ１１５、および、Ｓ１４５から解るように、これらのＬ個の合計値ＴＶ（０）〜ＴＶ（Ｌ）を用いた加算処理と減算処理とによって、これらのＬ個の画素に対応するＬ個のマスクデータＭＤが算出されている。この結果、Ｌ個の合計値ＴＶ（０）〜ＴＶ（Ｌ）を用いて効率良く、マスクデータを算出することができる。なお、Ｌ個の列Ｃ（０）〜Ｃ（Ｌ）は、Ｌ個の画素のＬ個の周辺範囲ＣＡのいずれかに含まれるＬ個の画素群であって、＋Ｙに沿って並ぶ１１個の画素をそれぞれ含むＬ個の画素群である、と言うことができる。
【００６０】
さらに、Ｓ１４５で、画素Ｐ（１、ｂ−１）のマスクデータＭＤ（１、ｂ−１）が算出された後に、算出に用いられた画素Ｐ（０、ｂ−１）の周辺合計値ＴＭ（０、ｂ−１）は、メモリ（具体的には、揮発性記憶装置２３０）から消去される。そして、その後に、画素Ｐ（０、ｂ）のマスクデータＭＤ（０、ｂ）を算出する際に、その算出に用いられる周辺合計値ＴＭ（０、ｂ−１）は、マスクデータＭＤ（０、ｂ−１）を、（１１×１１）倍、すなわち、１２１倍することによって、算出される（Ｓ１７０）。この結果、マスクデータＭＤ（０、ｂ）が算出されるまで周辺合計値ＴＭ（０、ｂ−１）をバッファ領域２３１に保持しておく必要がないので、揮発性記憶装置２３０の使用量を低減できる。
【００６１】
以上の説明から解るように、対応関係の一例を説明する。＋Ｘ方向は、第１方向の例であり、＋Ｙ方向は、第２方向の例である。
【００６２】
また、図５の例では、画素Ｐ（ａ−１、ｂ）は、第１画素の例であり、画素Ｐ（ａ、ｂ）は、第２画素の例であり、周辺範囲ＣＡ（ａ−１、ｂ）は、第１範囲の例であり、周辺範囲ＣＡ（ａ、ｂ）は、第２範囲の例である。マスクデータＭＤ（ａ−１、ｂ）は、第１のマスクデータの例であり、マスクデータＭＤ（ａ、ｂ）は、第２のマスクデータの例である。周辺合計値ＴＭ（ａ−１、ｂ）は、第１値の例であり、合計値ＴＶ（ａ−６）は、第２値の例であり、合計値ＴＶ（ａ＋５）は、第３値の例であり、周辺合計値ＴＭ（ａ、ｂ）は、第４値の例である。
【００６３】
また、図６の例では、画素Ｐ（０、ｂ−１）は、第１画素の例であり、画素Ｐ（０、ｂ）は、第３画素の例であり、周辺範囲ＣＡ（０、ｂ−１）は、第１範囲の例であり、周辺範囲ＣＡ（０、ｂ）は、第３範囲の例である。マスクデータＭＤ（０、ｂ−１）は、第１のマスクデータの例であり、マスクデータＭＤ（０、ｂ）は、第３のマスクデータの例である。周辺合計値ＴＭ（０、ｂ−１）は、第１値の例であり、合計値ＴＨ（ｂ−６）は、第５値の例であり、合計値ＴＨ（ｂ＋５）は、第６値の例であり、周辺合計値ＴＭ（０、ｂ）は、第７値の例である。
【００６４】
Ｂ.第２実施例
第２実施例は、マスクデータ生成処理が、図４の第１実施例のマスクデータ生成処理と異なる。他の処理は、第１実施例と同じである。
【００６５】
図８は、第２実施例のマスクデータ生成処理のフローチャートである。Ｓ２０５では、ＣＰＵ２１０は、注目画素ＴＰ（ａ、ｂ）を、元画像ＯＩの左上の画素Ｐ（０、０）に設定する。
【００６６】
Ｓ２１０〜Ｓ２２０は、＋Ｘ方向に沿う各ラスタラインの先頭（−Ｘ方向の端）の画素（ａ＝０の画素）が、注目画素ＴＰである場合に実行される処理であるので、注目画素ＴＰ（０、ｂ）についての処理として、説明する。初回のＳ２１０〜Ｓ２２０の処理では、注目画素ＴＰ（０、ｂ）は、画素Ｐ（０、０）である。
【００６７】
Ｓ２１０では、ＣＰＵ２１０は、注目画素ＴＰ（０、ｂ）の周辺範囲ＣＡ（０、ｂ）の１１個の列Ｃ（−５）〜Ｃ（＋５）の合計値ＴＶ（−５）〜ＴＶ（＋５）を算出する。
【００６８】
Ｓ２１５では、ＣＰＵ２１０は、１１個の合計値ＴＶ（−５）〜ＴＶ（＋５）を加算することによって、周辺範囲ＣＡ（０、ｂ）内の周辺合計値ＴＭ（０、ｂ）を算出する。第１実施例と同様に、各列の合計値ＴＶ（−５）〜ＴＶ（＋５）は、周辺合計値ＴＭ（０、ｂ）が算出された後も、バッファ領域２３１から消去されることなく、保持される。
【００６９】
Ｓ２２０では、ＣＰＵ２１０は、１１個の列Ｃ（ａ−５）〜Ｃ（ａ＋５）について、各列に含まれる１１個の画素のＲＧＢ値を用いて、１１個の画素のそれぞれの輝度値を算出して、算出された１１個の輝度値のうちの最大輝度値と最小輝度値とをバッファ領域２３１に特定する。特定された最大輝度値と最小輝度値は、バッファ領域２３１に保持される。１１個の列Ｃ（−５）〜Ｃ（＋５）の最大輝度値をＹＶｍｘ（−５）〜ＹＶｍｘ（＋５）とし、１１個の列Ｃ（−５）〜Ｃ（＋５）の最小輝度値をＹＶｍｎ（−５）〜ＹＶｍｎ（＋５）とする。
【００７０】
Ｓ２２５〜Ｓ２６０の処理は、注目画素ＴＰを変更しながら、繰り返し実行されるので、注目画素ＴＰ（ａ、ｂ）についての処理として、一般的に説明する。
【００７１】
Ｓ２２５では、ＣＰＵ２１０は、注目画素ＴＰ（ａ、ｂ）の周辺範囲ＣＡ（ａ、ｂ）内の１２１個の画素の輝度値のうちの最大輝度値Ｙｍｘと、最小輝度値Ｙｍｎを特定する。この時点で、周辺範囲ＣＡ（ａ、ｂ）内の１１個の列Ｃ（ａ−５）〜Ｃ（ａ＋５）の最大輝度値ＹＶｍｘ（ａ−５）〜ＹＶｍｘ（ａ＋５）が、上述のＳ２２０または後述のＳ２５５にて特定されて、バッファ領域２３１に保持されている。ＣＰＵ２１０は、１１個の最大輝度値ＹＶｍｘ（ａ−５）〜ＹＶｍｘ（ａ＋５）の最大値を、周辺範囲ＣＡ（ａ、ｂ）の最大輝度値Ｙｍｘとして特定する。同様に、この時点で、周辺範囲ＣＡ（ａ、ｂ）内の１１個の列Ｃ（ａ−５）〜Ｃ（ａ＋５）の最小輝度値ＹＶｍｎ（ａ−５）〜ＹＶｍｎ（ａ＋５）が特定されて、バッファ領域２３１に保持されている。ＣＰＵ２１０は、１１個の最小輝度値ＹＶｍｎ（ａ−５）〜ＹＶｍｎ（ａ＋５）の最小値を、周辺範囲ＣＡ（ａ、ｂ）の最小輝度値Ｙｍｎとして特定する。
【００７２】
Ｓ２３０では、ＣＰＵ２１０は、Ｓ２２５にて特定された最大輝度値Ｙｍｘと最小輝度値ＹＶｍｎとの差分ΔＹを算出する（ΔＹ＝Ｙｍｘ−Ｙｍｎ）。輝度値の差分ΔＹは、周辺範囲ＣＡ内の画像のコントラストの高さを示す値であるので、コントラストΔＹとも呼ぶ。
【００７３】
Ｓ２３５では、ＣＰＵ２１０は、コントラストΔＹは、特定範囲ＳＲ内であるか否かを判断する。特定範囲ＳＲは、コントラストΔＹが下側閾値ＴＨ１未満であること、および、コントラストΔＹが上側閾値ＴＨ２より大きいこと、のいずれかを満たす範囲である（ΔＹ＜ＴＨ１、または、ΔＹ＞ＴＨ２、（ただし、ＴＨ１＜ＴＨ２））。例えば、下側閾値ＴＨ１は、コントラストΔＹが取り得る範囲の下限から１５％の値、上側閾値ＴＨ２は、ントラストΔＹが取り得る範囲の下限から７０％の値に設定される。例えば、画素の輝度値が、０〜２５５までの値で表される場合、コントラストΔＹが取り得る範囲は、０〜２５５である。この場合には、例えば、ＴＨ１＝３８、ＴＨ２＝１９２に設定される。
【００７４】
コントラストΔＹが特定範囲ＳＲ内である場合には（Ｓ２３５：ＹＥＳ）、Ｓ２４０にて、ＣＰＵ２１０は、注目画素ＴＰ（ａ、ｂ）の値を、そのまま、マスクデータＭＤとして決定する。そして、コントラストΔＹが特定範囲ＳＲ内でない場合には（Ｓ２３５：ＮＯ）、Ｓ２４５にて、ＣＰＵ２１０は、図４のＳ１２０と同様に、周辺合計値ＴＭ（ａ、ｂ）を用いて、注目画素ＴＰ（ａ、ｂ）のマスクデータＭＤ（ａ、ｂ）を算出する。具体的には、ＣＰＵ２１０は、周辺合計値ＴＭ（ａ、ｂ）を、周辺範囲内（ａ、ｂ）に含まれる画素の個数ＰＮ（本実施例では、１２１）で除することによって、マスクデータＭＤ（ａ、ｂ）を算出する（ＭＤ（ａ、ｂ）＝ＴＭ（ａ、ｂ）／ＰＮ）。
【００７５】
Ｓ２５０では、ＣＰＵ２１０は、注目画素ＴＰ（ａ、ｂ）は、＋Ｘ方向の最終画素であるか否かを判断する。注目画素ＴＰ（ａ、ｂ）が、＋Ｘ方向の最終画素でない場合には（Ｓ２５０：ＮＯ）、Ｓ２５５に処理が進められ、注目画素ＴＰ（ａ、ｂ）が、＋Ｘ方向の最終画素である場合には（Ｓ２５０：ＹＥＳ）、Ｓ２７０に処理が進められる。
【００７６】
Ｓ２５５では、ＣＰＵ２１０は、注目画素ＴＰ（ａ、ｂ）を＋Ｘ方向に１個分移動する。すなわち、注目画素ＴＰ（ａ、ｂ）の＋Ｘ方向に隣接する画素Ｐ（ａ＋１、ｂ）が新たな注目画素ＴＰ（ａ、ｂ）に設定する（ａ＝ａ＋１）。
【００７７】
Ｓ２６０では、ＣＰＵ２１０は、新たな注目画素ＴＰ（ａ、ｂ）の＋Ｘ方向の端に位置する列Ｃ（ａ＋５）に含まれる１１個の画素の輝度値をそれぞれ算出して、これらの１１個の輝度値のうちの、最大輝度値ＹＶｍｘ（ａ＋５）と最小輝度値ＹＶｍｎ（ａ＋５）とを、特定する。
【００７８】
Ｓ２６５では、ＣＰＵ２１０は、上述した図４のＳ１３５〜Ｓ１４５の処理を実行する。Ｓ２６５の後に、ＣＰＵ２１０は、Ｓ２２５に処理を戻す。
【００７９】
注目画素ＴＰ（ａ、ｂ）が、＋Ｘ方向の最終画素である場合には（Ｓ２５０：ＹＥＳ）、Ｓ２７０にて、ＣＰＵ２１０は、現在の注目画素ＴＰ（ａ、ｂ）は、＋Ｙ方向の最終画素、すなわち、処理すべき最後の画素であるか否かを判断する。現在の注目画素ＴＰ（ａ、ｂ）が＋Ｙ方向の最終画素でない場合には（Ｓ２７０：ＮＯ）、Ｓ２７５にて、ＣＰＵ２１０は、注目画素ＴＰ（ａ、ｂ）を＋Ｙ方向に１個分移動した画素であって、かつ、Ｘ方向の先頭（−Ｘ方向の端）の画素に移動する（ａ＝０、ｂ＝ｂ＋１）。Ｓ２７５の後に、ＣＰＵ２１０は、Ｓ２１０に処理を戻す。現在の注目画素ＴＰ（ａ、ｂ）が＋Ｙ方向の最終画素である場合には（Ｓ２７０：ＹＥＳ）、ＣＰＵ２１０は、マスクデータ生成処理を終了する。
【００８０】
Ｓ２４５において、マスクデータＭＤ（ａ、ｂ）が、対応する画素Ｐ（ａ、ｂ）の値そのものに決定された場合には、その画素Ｐ（ａ、ｂ）に対するアンシャープマスク処理（図７のＳ１８５）において、画素Ｐ（ａ、ｂ）の値は、変更されない。その理由を説明する。上記式（３）〜（５）に従って、図７のＳ１８５にて、処理済画像の画素の値が算出されるとする。この場合に、元の画素の値（Ｒｉｎ、Ｇｉｎ、Ｂｉｎ）と、マスクデータの値（ＭＤｒ、ＭＤｇ、ＭＤｂ）とが同じになるので、上記式（３）〜（５）の右辺の第２項が０となり、元の画素の値は、同じ値に維持される。この結果、Ｓ２４５において、マスクデータＭＤが、対応する画素Ｐの値そのものに決定された場合には、その画素Ｐに対して、実質的にアンシャープマスク処理が行われないことになる。
【００８１】
以上説明した第２実施例によれば、元画像ＯＩ内の複数個の画素Ｐ（ａ、ｂ）のうち、周辺範囲ＣＡ（ａ、ｂ）のコントラストΔＹが特定範囲ＳＲ内である画素について、鮮鋭化処理にて、画素の値が変更されない。この結果、アンシャープマスク処理によって画質が低下する不都合を低減し得る。
【００８２】
より詳しく説明する。図９は、元画像ＯＩ内の文字ＴＸを含むオブジェクトＯｂ２の一部分を示す図である。アンシャープマスク処理を実行すると、特に写真などの画像の鮮鋭度が高くなり、画質が向上する。一方で、仮に、全ての画素に対してアンシャープマスク処理を実行すると、処理済画像において、コントラストが比較的に高い部分、具体的には、比較的薄い地色の領域のうち、当該領域内に配置された濃い色の文字の近傍領域が過度に明るくなる不具合が発生しやすい。例えば、図９の黒色の文字ＴＸの近傍領域ＳＡと、近傍領域ＳＡの外側領域ＯＡとは、元画像ＯＩにおいては、同じ色であるとする。仮に、全ての画素に対してアンシャープマスク処理を実行すると、処理済画像において、近傍領域ＳＡが、過度に明るくされることで白っぽい色に変更され、外側領域ＯＡとは異なる色になる不具合が発生する。
【００８３】
この理由を説明する。近傍領域ＳＡ内の画素の周辺範囲ＣＡには、文字を構成する濃い色の画素が含まれるが、外側領域ＯＡ内の画素の周辺範囲ＣＡには、濃い色が含まれない。このために、近傍領域ＳＡ内の画素のマスクデータ（すなわち、その画素の周辺範囲ＣＡの平均色値（ＭＤｒ、ＭＤｇ、ＭＤｂ））の各値は、外側領域ＯＡ内の画素のマスクデータの各値より暗い色を示す値（すなわち、小さな値）となる。この結果、アンシャープマスク処理を行う際に、近傍領域ＳＡ内の画素では、上述した式（３）〜（５）の右辺の第２項の（Ｒｉｎ−ＭＤｒ）、（Ｇｉｎ−ＭＤｇ）、（Ｂｉｎ−ＭＤｂ）の値が、外側領域ＯＡ内の画素よりも大きな値となる。したがって、仮に、近傍領域ＳＡ内の画素に対して、通常通りにアンシャープマスク処理が実行されると、処理後のＲＧＢ値（Ｒｏｕｔ、Ｇｏｕｔ、Ｂｏｕｔ）の各成分値が過度に大きな値に変更されて、近傍領域ＳＡ内の画素の色は、過度に明るく白っぽい色となる。
【００８４】
上記第２実施例では、画素Ｐ（ａ、ｂ）の周辺範囲ＣＡ（ａ、ｂ）内のコントラストΔＹが過度に高い場合には（すなわち、ΔＶ＞ＴＨ２である場合には）、コントラストΔＹが特定範囲ＳＲ内であると判断されるので、当該画素Ｐ（ａ、ｂ）に対してはアンシャープマスク処理が実質的に実行されない。したがって、図９の近傍領域ＳＡ内の画素に対しては、アンシャープマスク処理が実質的に実行されないので、上記の不具合の発生を抑制することができる。この結果、画像の鮮鋭度を高めつつ、アンシャープマスク処理に起因する画質の低下、具体的には、濃い色の文字の周囲が過度に明るくなる不具合を抑制できる。
【００８５】
さらに、例えば、図２の元画像ＯＩ内の人物ＨＮの肌の部分などは、コントラストΔＹが比較的低くなる。このような部分に、アンシャープマスク処理を実行すると、たとえば、肌に存在するしわが強調されるなどの不都合が発生して、元画像ＯＩの画質が低下する場合がある。上記第２実施例では、画素Ｐ（ａ、ｂ）の周辺範囲ＣＡ（ａ、ｂ）内のコントラストΔＹが過度に低い場合には（すなわち、ΔＶ＜ＴＨ１である場合には）、コントラストΔＹが特定範囲ＳＲ内であると判断されるので、当該画素Ｐ（ａ、ｂ）に対してはアンシャープマスク処理が実質的に実行されない。したがって、人物ＨＮの肌の部分に対しては、アンシャープマスク処理が実質的に実行されないので、上記の不具合の発生を抑制することができる。この結果、画像の鮮鋭度を高めつつ、アンシャープマスク処理に起因する画質の低下、具体的には、人物ＨＮの肌のしわが強調される不具合を抑制できる。
【００８６】
さらに、上記第２実施例では、元画像ＯＩに含まれる複数個の画素Ｐのそれぞれについて、マスクデータＭＤを算出する際に、マスクデータＭＤに対応する画素について、コントラストΔＹが特定範囲ＳＲ内であるか否かが判断される（Ｓ２３５）。そして、コントラストΔＹが特定範囲ＳＲ内でない画素に対応するマスクデータＭＤは、その画素の周辺範囲内の画素の値の平均値に決定される（Ｓ２４５）。そして、コントラストΔＹが特定範囲ＳＲ内である画素に対応するマスクデータＭＤは、その画素の値に決定される（Ｓ２４０）。こうすれば、コントラストΔＹが特定範囲ＳＲ内である画素のマスクデータＭＤを、当該画素の値に決定することによって、図７のＳ１８５において、当該画素に対してアンシャープマスク処理を行っても、当該画素の値が、アンシャープマスク処理によって変更されないようにすることができる。
【００８７】
さらに、上記第２実施例では、図５の周辺範囲ＣＡ（ａ−１、ｂ）内の１１個の列Ｃ（ａ−６）〜列（ａ＋４）のそれぞれについて特定済の１１個の最大輝度値ＹＶｍｘ（ａ−６）〜ＹＶｍｘ（ａ＋４）と、１１個の最小輝度値ＹＶｍｎ（ａ−６）〜ＹＶｍｎ（ａ＋４）と、を用いて、周辺範囲ＣＡ（ａ−１、ｂ）内の最大輝度値Ｙｍｘおよび最小輝度値Ｙｍｎとが特定される（Ｓ２２５）。そして、周辺範囲ＣＡ（ａ−１、ｂ）内の最大輝度値Ｙｍｘおよび最小輝度値Ｙｍｎを用いて、画素Ｐ（ａ−１、ｂ）について、コントラストΔＹが特定範囲ＳＲ内であるか否かが判断される（Ｓ２３５）。そして、図５の周辺範囲ＣＡ（ａ−１、ｂ）に対して＋Ｘ方向に隣接し、＋Ｙ方向に沿って並ぶ１１個の画素を含む列Ｃ（ａ＋５）の最大輝度値ＹＶｍｘ（ａ＋５）と最小輝度値ＹＶｍｎ（ａ＋５）とが特定される（Ｓ２６０）。図５の周辺範囲ＣＡ（ａ、ｂ）内の１１個の列Ｃ（ａ−５）〜列（ａ＋５）のそれぞれについて特定済の１１個の最大輝度値ＹＶｍｘ（ａ−５）〜ＹＶｍｘ（ａ＋５）と、１１個の最小輝度値ＹＶｍｎ（ａ−５）〜ＹＶｍｎ（ａ＋５）と、を用いて、周辺範囲ＣＡ（ａ、ｂ）内の最大輝度値Ｙｍｘおよび最小輝度値Ｙｍｎとが特定される（Ｓ２２５）。１１個の最大輝度値ＹＶｍｘ（ａ−５）〜ＹＶｍｘ（ａ＋５）は、前回のＳ２２５で用いられた１１個の最大輝度値ＹＶｍｘ（ａ−６）〜ＹＶｍｘ（ａ＋４）のうち、周辺範囲ＣＡ（ａ−１、ｂ）内の−Ｘ方向の端に位置する１個の列Ｃ（ａ−６）の値を除く、１０個の最大輝度値ＹＶｍｘ（ａ−５）〜ＹＶｍｘ（ａ＋４）と、その後のＳ２６０にて特定された１個の最大輝度値ＹＶｍｘ（ａ＋５）である。１１個の最小輝度値ＹＶｍｎ（ａ−５）〜ＹＶｍｎ（ａ＋５）は、前回のＳ２２５で用いられた１１個の最小輝度値ＹＶｍｎ（ａ−６）〜ＹＶｍｎ（ａ＋４）のうち、周辺範囲ＣＡ（ａ−１、ｂ）内の−Ｘ方向の端に位置する１個の列Ｃ（ａ−６）の値を除く、１０個の最小輝度値ＹＶｍｎ（ａ−５）〜ＹＶｍｎ（ａ＋４）と、その後のＳ２６０にて特定された１個の最小輝度値ＹＶｍｎ（ａ＋５）である。そして、これらの値ＹＶｍｎ（ａ−５）〜ＹＶｍｎ（ａ＋５）、ＹＶｍｎ（ａ−５）〜ＹＶｍｎ（ａ＋５）を用いて、周辺範囲ＣＡ（ａ、ｂ）内の最大輝度値Ｙｍｘおよび最小輝度値Ｙｍｎが特定される（Ｓ２２５）。そして、特定された周辺範囲ＣＡ（ａ、ｂ）内の最大輝度値Ｙｍｘおよび最小輝度値Ｙｍｎを用いて、画素Ｐ（ａ、ｂ）について、コントラストΔＹが特定範囲ＳＲ内であるか否かが判断される（Ｓ２３５）。この結果、マスクデータが生成される際に、元画像ＯＩ内の複数個の画素のそれぞれについて、コントラストΔＹが特定範囲ＳＲ内であるか否かの判断の処理時間を短縮できる。
【００８８】
さらに、上述したように、特定範囲ＳＲは、コントラストΔＹが下側閾値ＴＨ１より小さい範囲（ΔＹ＜ＴＨ１）と、コントラストΔＹが上側閾値ＴＨ２より大きい範囲（ΔＹ＞ＴＨ２）である。この結果、上述したアンシャープマスク処理に起因する画質の低下を抑制できる。変形例としては、特定範囲ＳＲは、ΔＹ＜ＴＨ１の範囲のみであっても良く、ΔＹ＞ＴＨ２の範囲のみであっても良い。換言すれば、特定範囲ＳＲは、ΔＹ＜ＴＨ１の範囲と、ΔＹ＞ＴＨ２の範囲と、の少なくとも一方の範囲であることが好ましい。
【００８９】
Ｃ．変形例：
（１）上記各実施例では、周辺範囲ＣＡ（ａ、ｂ）は、（１１×１１）個の画素の含む正方形の範囲であるが、これに限られない。一般的には、周辺範囲ＣＡ（ａ、ｂ）は、（Ｍ×Ｎ）個（Ｍ、Ｎは、２以上の整数）の画素を含む矩形の範囲であって、＋Ｘ方向の画素数がＭ個であり、＋Ｙ方向の画素数がＮ個である、矩形の範囲であることが好ましい。例えば、周辺範囲ＣＡは、（９×９）個の画素を含む正方形の範囲であっても良く、（５×７）個の画素を含む長方形の範囲であっても良い。
【００９０】
ここで、本実施例によるマスクデータを生成するための処理時間を、各画素について周辺範囲ＣＡ内の全ての画素の値を１個ずつ加算することによって周辺合計値ＴＭを算出する比較例と比較した結果を示す。周辺範囲ＣＡ（ａ、ｂ）が、（Ｑ×Ｑ）個の正方形（Ｑは、２以上１２以下の整数）である場合について、処理時間を調査した結果、比較例に対する本実施例の処理時間は、Ｑ＝２〜１２である場合に、それぞれ、おおよそ１、１／１．８、１／２．７、１／３．６、１／４．５、１／５．４、１／６．４、１／７．４、１／８．３、１／９．３、１／１０.３であった。この結果から、周辺範囲ＣＡ（ａ、ｂ）のサイズ（Ｍ×Ｎ）について、Ｍは、３以上の整数であり、Ｎは、３以上の整数であることが好ましい。この場合に、効果的に処理時間を短縮できる。また、Ｍ、Ｎが大きくなるほど、処理時間を短縮できる度合いが大きくなることが解った。
【００９１】
（２）上記各実施例のマスクデータ生成処理では、＋Ｘ方向に沿う１本のラインについて、−Ｘ方向の端から＋Ｘ方向に向かって、順次に注目画素ＴＰ（ａ、ｂ）が選択され、当該ラスタラインの＋Ｘ方向の最終画素について処理が終了した後に、当該ラインの＋Ｙ方向に隣接するライン上の画素について処理を行っている。これに代えて、＋Ｙ方向に沿う１本のラインについて、−Ｙ方向の端から＋Ｙ方向に向かって、順次に注目画素ＴＰ（ａ、ｂ）が選択され、当該ラインの＋Ｙ方向の最終画素について処理が終了した後に、当該ラインの＋Ｘ方向に隣接するライン上の画素について処理を行っても良い。
【００９２】
（３）上記第２実施例では、元画像ＯＩ内の各画素について、コントラストΔＹが特定範囲ＳＲ内であるか否かの判断を、マスクデータ生成処理にてマスクデータを生成する際に行っている。これに代えて、図７の鮮鋭化処理において、各画素について、コントラストΔＹが特定範囲ＳＲ内であるか否かの判断を実行し、コントラストΔＹが特定範囲ＳＲ内であると判断された画素に対してアンシャープマスク処理を実行せず、コントラストΔＹが特定範囲ＳＲ内でないと判断された画素に対してアンシャープマスク処理を実行しても良い。
【００９３】
（４）上記各実施例では、図２のＳ４０にて生成された処理済画像データの出力は、該処理済画像データを用いて複合機１００を制御して（すなわち、印刷ジョブを生成して該印刷ジョブを複合機１００に送信して）、処理済画像を複合機１００に印刷させる形態で実現される。これに代えて、Ｓ４０にて生成された処理済画像データの出力は、該処理済画像データを不揮発性記憶装置２２０に出力して、該処理済画像データを不揮発性記憶装置２２０に保存することであっても良いし、該処理済画像データを他の装置、例えば、保存サーバや他の端末装置に送信することであっても良い。
【００９４】
（５）アンシャープマスク処理で調整される色成分は、ＲＧＢの３個の色成分に代えて、他の種々の色成分を採用可能である。例えば、輝度成分を採用してもよい。ＣＰＵ２１０は、例えば、元画像データとして、ＹＣｂＣｒ色空間の色値を表す画像データを生成し、当該画像データの各画素のＹ成分の色値（すなわち、輝度値）についてマスクデータを生成しても良い。そして、ＣＰＵ２１０は、そして、当該画像データのＹ成分の色値（すなわち、輝度値）をアンシャープマスク処理で調整してもよい。
【００９５】
（６）図２の印刷処理を実行する画像処理装置としての計算機２００は、パーソナルコンピュータとは異なる種類の装置、例えば、複合機１００、デジタルカメラ、スキャナ、スマートフォンであってもよい。複合機１００が図２の印刷処理を実行する場合には、処理済画像データを用いる印刷は、例えば、複合機１００のプリンタ部１３０を用いて実行される。また、図２の印刷処理を実行する画像処理装置は、例えば、ユーザの端末や複合機１００から元画像データを取得して画像処理を実行するサーバであっても良い。このようなサーバは、ネットワークを介して互いに通信可能な複数個の計算機が、画像処理装置としての機能を一部ずつ分担して、全体として、一の画像処理の機能を実現してもよい。この場合には、ネットワークを介して互いに通信可能な複数個の計算機の全体が、画像処理装置に対応する。
【００９６】
（７）上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、図１の計算機２００のＣＰＵ２１０が実行している処理の一部は、専用のハードウェア回路によって実現されてもよい。
【００９７】
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
【符号の説明】
【００９８】
１００...複合機、１１０...制御部、１１０...ＣＰＵ、１２０...スキャナ部、１３０...プリンタ部、２００...計算機、２１０...ＣＰＵ、２２０...不揮発性記憶装置、２３０...揮発性記憶装置、２３１...バッファ領域、２６０...操作部、２７０...表示部、２８０...通信部、ＹＶｍｘ...最大輝度値、ＹＶｍｎ...最小輝度値、ΔＹ...コントラスト、ＣＡ...周辺範囲、ＭＤ...マスクデータ、ＯＩ...元画像、ＴＭ...周辺合計値、ＣＰ...コンピュータプログラム、ＳＲ...特定範囲、ＣＡ...周辺範囲
【図１】
0006500638.tif 000002
【図２】
0006500638.tif 000003
【図３】
0006500638.tif 000004
【図４】
0006500638.tif 000005
【図５】
0006500638.tif 000006
【図６】
0006500638.tif 000007
【図７】
0006500638.tif 000008
【図８】
0006500638.tif 000009
【図９】
0006500638.tif 000010