(57)【特許請求の範囲】
【請求項１】
入力された画像に対して、部分画像領域を設定する領域設定手段と、
注目画素の周囲に隣接する画素が該注目画素の画素値と同一の画素値を有する場合に、該注目画素を除外する画素として決定する除外画素決定手段と、
前記領域設定手段により設定された部分画像領域それぞれに対して、該部分画像領域に含まれる画素のうち前記除外画素決定手段にて決定された画素を除いた画素の画素値に基づいて階調数を設定する階調数設定手段と、
入力された画像の各部分画像領域に含まれる画素のうち、前記除外画素決定手段により決定された画素を除いた画素の画素値を、前記部分画像領域毎に前記階調数設定手段により設定された階調数以下となるように変換する変換手段と、
前記除外画素決定手段により決定された画素及び前記変換手段により変換がなされた画素をランレングス符号化方式又はＬＺ符号化方式により符号化する符号化手段と
を有する画像処理装置。
【請求項２】
前記階調数設定手段は、前記部分画像領域に含まれる画素の最大画素値から最小画素値までの範囲の大きさに基づいて、階調数を設定する
請求項１に記載の画像処理装置。
【請求項３】
前記階調数設定手段は、前記範囲の大きさが既定の閾値以上である場合には、階調数を３に設定し、前記範囲の大きさが既定の閾値未満である場合には階調数を２に設定する
請求項２に記載の画像処理装置。
【請求項４】
前記変換手段は、前記階調数設定手段により階調数として３が設定された部分画像領域に対しては、該部分画像領域の前記範囲を３等分し、３等分された前記範囲の各区間に含まれる画素のうち前記除外画素決定手段により決定された画素を除いた画素の画素値を、各区間の平均画素値へと変換し、前記階調数設定手段により階調数として２が設定された部分画像領域に対しては、該部分画像領域の前記範囲を２等分し、２等分された前記範囲の各区間に含まれる画素のうち前記除外画素決定手段により決定された画素を除いた画素の画素値を各区間の平均画素値へと変換する
請求項３に記載の画像処理装置。
【請求項５】
入力された画像に対して、部分画像領域を設定するステップと、
注目画素の周囲に隣接する画素が該注目画素の画素値と同一の画素値を有する場合に、該注目画素を除外する画素として決定するステップと、
前記部分画像領域それぞれに対して、該部分画像領域に含まれる画素のうち前記除外する画素として決定された画素を除いた画素の画素値に基づいて階調数を設定するステップと、
入力された画像の各部分画像領域に含まれる画素のうち、前記除外する画素として決定された画素を除いた画素の画素値を、前記部分画像領域毎に設定された階調数以下となるように変換するステップと、
前記除外する画素として決定された画素及び前記変換がなされた画素をランレングス符号化方式又はＬＺ符号化方式により符号化するステップと
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置に関する。
【背景技術】
【０００２】
例えば、特許文献１には、画像を分割して作成された画素ブロックに含まれる画素の値の最大値と最小値とに基づいてしきい値を決定し、しきい値により画素ブロックに含まれる画素を選別して画素グループを設定し、画素グループに含まれる画素に対して画素グループに含まれる画素の値の平均値を割り当てる符号化装置が開示されている。
【特許文献１】特開２００２−０１００８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明は、階調数の制限に伴う画質劣化を軽減させることを目的とする。
【課題を解決するための手段】
【０００４】
請求項１に係る本発明は、入力された画像に対して、部分画像領域を設定する領域設定手段と、注目画素の周囲に隣接する画素が該注目画素の画素値と同一の画素値を有する場合に、該注目画素を除外する画素として決定する除外画素決定手段と、前記領域設定手段により設定された部分画像領域それぞれに対して、該部分画像領域に含まれる画素のうち前記除外画素決定手段にて決定された画素を除いた画素の画素値に基づいて階調数を設定する階調数設定手段と、入力された画像の各部分画像領域に含まれる画素のうち、前記除外画素決定手段により決定された画素を除いた画素の画素値を、前記部分画像領域毎に前記階調数設定手段により設定された階調数以下となるように変換する変換手段と、前記除外画素決定手段により決定された画素及び前記変換手段により変換がなされた画素をランレングス符号化方式又はＬＺ符号化方式により符号化する符号化手段とを有する。
【０００５】
請求項２に係る本発明では、前記階調数設定手段は、前記部分画像領域に含まれる画素の最大画素値から最小画素値までの範囲の大きさに基づいて、階調数を設定する。
【０００６】
請求項３に係る本発明では、前記階調数設定手段は、前記範囲の大きさが既定の閾値以上である場合には、階調数を３に設定し、前記範囲の大きさが既定の閾値未満である場合には階調数を２に設定する。
【０００７】
請求項４に係る本発明は、前記変換手段は、前記階調数設定手段により階調数として３が設定された部分画像領域に対しては、該部分画像領域の前記範囲を３等分し、３等分された前記範囲の各区間に含まれる画素のうち前記除外画素決定手段により決定された画素を除いた画素の画素値を、各区間の平均画素値へと変換し、前記階調数設定手段により階調数として２が設定された部分画像領域に対しては、該部分画像領域の前記範囲を２等分し、２等分された前記範囲の各区間に含まれる画素のうち前記除外画素決定手段により決定された画素を除いた画素の画素値を各区間の平均画素値へと変換する。
【００１０】
請求項５に係る本発明は、入力された画像に対して、部分画像領域を設定するステップと、注目画素の周囲に隣接する画素が該注目画素の画素値と同一の画素値を有する場合に、該注目画素を除外する画素として決定するステップと、前記部分画像領域それぞれに対して、該部分画像領域に含まれる画素のうち前記除外する画素として決定された画素を除いた画素の画素値に基づいて階調数を設定するステップと、入力された画像の各部分画像領域に含まれる画素のうち、前記除外する画素として決定された画素を除いた画素の画素値を、前記部分画像領域毎に設定された階調数以下となるように変換するステップと、前記除外する画素として決定された画素及び前記変換がなされた画素をランレングス符号化方式又はＬＺ符号化方式により符号化するステップとをコンピュータに実行させる。
【発明の効果】
【００１１】
本発明の画像処理装置によれば、階調数の制限に伴う画質劣化を軽減させることができる。
【発明を実施するための最良の形態】
【００１２】
図１は、画像処理装置２のハードウェア構成を、制御装置２１を中心に例示する図である。
図１に例示するように、画像処理装置２は、ＣＰＵ２１２及びメモリ２１４などを含む制御装置２１、通信装置２２、ＨＤＤ・ＣＤ装置などの記録装置２４、並びに、ＬＣＤ表示装置あるいはＣＲＴ表示装置およびキーボード・タッチパネルなどを含むユーザインターフェース装置（ＵＩ装置）２５から構成される。
画像処理装置２は、例えば、画像処理プログラム５（後述）がインストールされた汎用コンピュータであり、通信装置２２又は記録装置２４などを介して画像データを取得し、取得された画像データを符号化してプリンタ装置３に送信する。
【００１３】
図２は、制御装置２１（図１）により実行される画像処理プログラム５の機能構成を例示する図である。
図２に例示するように、画像処理プログラム５は、領域設定部５００、画像変換部５１０、階調数決定部５２０、及び符号化部５３０を有する。
画像処理プログラム５において、領域設定部５００は、通信装置２２又は記録装置２４などを介して、ラスタライズされた画像データを取得し、取得された画像データに対して、既定サイズの部分画像領域（以下、ブロック）を設定する。
本例の領域設定部５００は、取得された画像データに対して、走査順に、主走査方向に４画素、かつ、副走査方向に４画素からなる矩形領域をブロックとして設定し、各ブロックの画素値を画像変換部５１０及び階調数決定部５２０に出力する。
【００１４】
画像変換部５１０は、領域設定部５００に設定された各ブロックの画像データを、階調数決定部５２０により決定された階調数以下で表現された画像データに変換する。換言すると、画像変換部５１０は、入力された各ブロックを、階調数決定部５２０により各ブロックについて決定された階調数以下の階調値で塗り潰す。
本例の画像変換部５１０は、階調数決定部５２０により注目ブロック（処理対象のブロック）の階調数が２と決定された場合に、ブロック内の最大値と最小値の平均を閾値として、ブロック内の画素値を閾値以上のグループと閾値未満のグループとに分類し、各グループの平均画素値で各グループの画素を塗り潰す。また、画像変換部５１０は、階調数決定部５２０により注目ブロックの階調数が３と決定された場合に、ブロック内の最大画素値から最小画素値までの区間（以下、ダイナミックレンジ）を３等分し、各区間に属する画素を各区間の平均画素値で塗り潰す。なお、画像変換部５１０は、注目ブロックの階調数が３と決定された場合に、３等分されたダイナミックレンジのうち、上端の区間に属する画素を注目ブロックの最大画素値で塗り潰し、下端の区間に属する画素を注目ブロックの最小画素値で塗り潰すようにしてもよい。この場合、各ブロックの最大値と最小値とが保存されて、非可逆化によるダイナミックレンジの低下を抑制できる。
【００１５】
階調数決定部５２０は、領域設定部５００により設定された各ブロックに対して、上限となる階調数を決定する。例えば、階調数決定部５２０は、各ブロックに含まれる階調値（画素値）に基づいて、各ブロックの階調値を決定する。より具体的には、階調値決定部５２０は、各ブロックに含まれる画素値の統計値（分散、エントロピー、ヒストグラムの形状など）に基づいて、各ブロックの階調値を決定する。階調値決定部５２０は、各ブロック内のエッジ強度、又は、各ブロックの可逆符号量などに基づいて、階調数を決定してもよい。
本例の階調数決定部５２０は、注目ブロックのダイナミックレンジ（最大階調値から最小階調値までの範囲の広さ）が閾値Ｔｈ以上である場合に、注目ブロックの階調数を３に決定し、ダイナミックレンジが閾値Ｔｈ未満である場合に、注目ブロックの階調数を２に決定する。
【００１６】
符号化部５３０は、画像変換部５１０から入力された画像データを符号化する。画像変換部５１０では限定色化処理がなされるため、符号化部５３０は、限定色化処理と相性のよい符号化方式（例えば、ランレングス符号化方式、ＬＺ符号化方式）を適用することが望ましい。
【００１７】
図３は、画像処理プログラム５の動作（Ｓ１０）を示すフローチャートである。
図３に示すように、ステップ１００（Ｓ１００）において、領域設定部５００は、画像データが入力されると、入力された画像に対して４×４サイズのブロックを設定する。
【００１８】
ステップ１１０（Ｓ１１０）において、領域設定部５００は、設定されたブロックの中から走査順に注目ブロックを選択し、選択された注目ブロックの画像データを画像変換部５１０及び階調数決定部５２０に出力する。
【００１９】
ステップ１２０（Ｓ１２０）において、階調数決定部５２０は、領域設定部５００から入力された注目ブロックの画像データに基づいて、注目ブロックのダイナミックレンジ（すなわち、最大画素値と最小画素値との差分値）を算出する。
【００２０】
ステップ１３０（Ｓ１３０）において、階調数決定部５２０は、算出されたダイナミックレンジが閾値Ｔｈ以上であるか否かを判断する。
画像処理プログラム５は、ダイナミックレンジが閾値Ｔｈ以上である場合に、Ｓ１４０の処理に移行し、ダイナミックレンジが閾値Ｔｈ未満である場合に、Ｓ１５０の処理に移行する。
【００２１】
ステップ１４０（Ｓ１４０）において、階調数決定部５２０は、注目ブロックの階調数を３に決定し、決定された階調数３を画像変換部５１０に通知する。
【００２２】
ステップ１５０（Ｓ１５０）において、階調数決定部５２０は、注目ブロックの階調数を２に決定し、決定された階調数２を画像変換部５１０に通知する。
【００２３】
ステップ１６０（Ｓ１６０）において、画像変換部５１０は、階調数決定部５２０から通知された階調数以下となるように、注目ブロックに含まれる画素値を変更する。すなわち、画像変換部５１０は、階調数決定部５２０から階調数３が通知された場合に、注目ブロックのダイナミックレンジを３等分し、各区間に含まれる画素値を各区間の平均画素値で置換する。また、画像変換部５１０は、階調数決定部５２０から階調数２が通知された場合に、注目ブロックのダイナミックレンジを２等分し、各区間に含まれる画素値を各区間の平均画素値で置換する。
【００２４】
ステップ１７０（Ｓ１７０）において、画像処理プログラム５は、全てのブロックについてＳ１２０〜Ｓ１６０の処理が終了したか否かを判断し、未処理のブロックが存在する場合に、Ｓ１１０の処理に戻って、次の注目ブロックを選択し、未処理のブロックが存在しない場合に、Ｓ１８０の処理に移行する。
【００２５】
ステップ１８０（Ｓ１８０）において、符号化部５３０は、画像変換部５１０から入力された画像データを符号化し、符号データを外部に出力する。
【００２６】
図４は、上記の処理（Ｓ１０）で生成された符号データを復号化する第２の画像処理プログラム６の機能構成を例示する図である。
図４に例示するように、第２の画像処理プログラム６は、復号化部６００、領域設定部６１０、階調数算出部６２０、及びフィルタ処理部６３０を有する。
画像処理プログラム６において、復号化部６００は、入力された符号データを復号化し、復号化された画像データを領域設定部６１０に出力する。
領域設定部６１０は、復号化部６００から入力された画像データに対して、既定サイズのブロックを設定する。本例の領域設定部６１０は、図２の領域設定部５００と同じサイズのブロックを設定する。
【００２７】
階調数算出部６２０は、各ブロックに含まれる階調値の数（階調数）を算出し、算出された階調数をフィルタ処理部６３０に出力する。なお、階調数算出部６２０は、階調数の代わりに、各ブロックのダイナミックレンジを算出してもよいし、階調数と共にブロックのダイナミックレンジを算出してもよい。
【００２８】
フィルタ処理部６３０は、階調数算出部６２０により算出された各ブロックの階調数に応じて、ローパスフィルタを選択し、選択されたローパスフィルタで各ブロックの画像データをフィルタ処理する。階調数が少ないほどローパス特性を高くし、階調数が基準値以上である場合に、フィルタ処理を禁止することが望ましい。
本例のフィルタ処理部６３０は、注目ブロックの階調数が１である場合にのみ、ローパスフィルタを適用し、注目ブロックの階調数が２以上である場合に、フィルタ処理を行わずに、入力された画像データをそのまま出力する。
なお、フィルタ処理部６３０は、ローパスフィルタ処理において、その結果ブロック内のダイナミックレンジが閾値を超えるようであれば、そのブロックの処理は行わないように制御してもよい。そのような状況がエッジ近辺で発生する可能性があるからである。
また、フィルタ処理部６３０は、各ブロックの階調数に応じて、ローパスフィルタのタップ長を制御するようにしてもよい。階調数が多くダイナミックレンジが広い場合は、高周波が含まれている可能性が高いので、短めのローパスフィルタが適切と考えられる。
また、フィルタ処理部６３０は、ローパスフィルタ以外の周波数フィルタを使ってもよい。例えば、ダイナミックレンジが広いブロックでは、フィルタ処理部６３０が、高周波を強調したり、コントラスト強調する。これにより画質が向上する可能性がある。
また本例では、入力された画像情報（符号データ）から各ブロックの階調数を算出しているが、入力画像の生成時に付加情報としてダイナミックレンジまたは階調数をヘッダなどに付加するようにしてもよい。そのようにすれば階調数を算出する処理を省ける。
【００２９】
以上説明したように、本実施形態における画像処理装置２は、第１の画像処理プログラム５によって、ブロック毎の限定色化処理を行って符号化効率を向上させ、第２の画像処理プログラム６によって、限定色化処理による画質劣化を抑制する。
【００３０】
［変形例１］
次に、上記実施形態の第１の変形例を説明する。
上記実施形態では、ブロックに含まれる画素群に対して一様に塗潰し処理を施しているが、第１の変形例では、一部の画素を塗潰し処理の対象からはずす。
例えば、コンピュータで生成した画像では、写真を貼り付ける際には拡大することが多い。このとき処理速度の観点から、最近傍補間法がとられることが多い。
図５（Ａ）は、最近傍補間法で拡大されたＣＧ画像を例示し、図５（Ｂ）は、図５（Ａ）のＣＧ画像を上記実施形態で処理した画像を例示する図である。
最近傍補間法で拡大されたＣＧ画像では、図５（Ａ）に例示するように、複数の画素からなる矩形ブロックが同一画素値を持つことになる。そのような矩形ブロックは、拡大率に応じて大きさが決まり、一般には異なるサイズのブロックが周期的に繰り返される。また、エントロピーが低いために比較的圧縮しやすい。
しかし、上記実施形態では、そのような画像を認識しないため、図５（Ｂ）に例示するように、異なる大きさ及び位相のブロックで処理することになる。この結果、図５（Ａ）と図５（Ｂ）とを比較してわかるように、画素値が変化して画質が劣化するわりに、圧縮率が向上しないという現象が起こりえる。
そこで、第１の変形例では、周辺４ないし８画素に同一画素値が存在する場合には、その画素を塗潰し処理の対象から除き、画素値を保存する。これにより、元画像の矩形ブロックが保存され、画質が向上する。このとき誤検出を避けるために、周辺画素だけでなく、矩形での同一画素値を検出するようにしてもよい。
【００３１】
図６は、第３の画像処理プログラム５２の機能構成を例示する図である。なお、本図に示された各構成のうち、図２に示された構成と実質的に同一のものには同一の符号が付されている。
図６に例示するように、第３の画像処理プログラム５２は、図２の画像処理プログラム５に除外画素決定部５４０を追加した構成をとる。
除外画素決定部５４０は、複数の画素を比較して、画像変換部５１０の処理から除外すべき画素（以下、除外画素）を決定する。より具体的には、除外画素決定部５４０は、注目画素と他の画素とが既定の条件に合致するか否かを判断し、既定の条件に合致する場合に、この注目画素を除外画素に決定する。既定の条件とは、符号化部５３０による符号化処理に対応するものであり、この符号化処理で符号化しやすい関係である。
【００３２】
図７は、除外画素を決定するための条件を例示する図である。
除外画素決定部５４０は、図７（Ａ）に例示するように、注目画素Ｘと、この注目画素Ｘの周囲にある周辺画素Ａ〜Ｈのいずれかとを比較する。したがって、注目画素Ｘがブロックの周縁部に存在する場合には、他のブロックの画素が周辺画素となりうる。
本例の除外画素決定部５４０は、図７（Ｂ）に例示するように、注目画素Ｘと、周辺画素Ｂ、Ｄ、Ｅ及びＧのいずれかと一致した場合に、この注目画素Ｘを除外画素に決定し、その旨のフラグをたてる。
なお、除外画素決定部５４０は、図７（Ｃ）に例示するように、注目画素Ｘと、周辺８画素（Ａ〜Ｈ）のいずれかとが一致した場合に、注目画素Ｘを除外画素に決定してもよいし、図７（Ｄ）に例示するように、注目画素Ｘを含む２×２画素群が同一画素値である場合に、注目画素Ｘを除外画素に決定してもよい。
【００３３】
本変形例の画像変換部５１０は、除外画素決定部５４０により除外画素と決定された画素を除外して、限定色化処理を行い、階調数決定部５２０は、除外画素決定部５４０により除外画素と決定された画素を除外して、ブロック内のダイナミックレンジを算出して階調数を決定する。
【００３４】
［変形例２］
次に、第２の変形例を説明する。
上記実施形態では、ブロックのダイナミックレンジに応じて階調数を決定しているが、第２の変形例では、ブロックの大きさに応じて階調数を決定する。すなわち、本変形例では、領域設定部５００により設定されたブロックのサイズが可変であり、設定されたブロックのサイズに応じて階調数が決定される。
【００３５】
図８は、第４の画像処理プログラム５４の機能構成を例示する図である。なお、本図に示された各構成のうち、図２に示された構成と実質的に同一のものには同一の符号が付されている。
図８に例示するように、第４の画像処理プログラム５４は、図２の画像処理プログラム５の階調数決定部５２０を第２の階調数決定部５２２に置換した構成をとる。
階調数決定部５２２は、領域設定部５００により設定されたブロックサイズに応じて、上限となる階調数を変更する。ブロックサイズが小さい場合、視覚的に画素値変化が認識しづらいので、階調数を多くする必要がない。そこで、階調数決定部５２２は、ブロックサイズが大きくなるにつれ、レベル数を増やすように制御する。
なお、領域設定部５００は、ブロックサイズを目標圧縮率に応じて変更する。また、領域設定部５００は、目標圧縮率以外の値に基づいてブロックサイズを設定してもよく、例えば、ブロック内の統計量（分散、エントロピーなど）、目標画質、ユーザの選択などに基づいて、ブロックサイズを設定してもよい。
【００３６】
［その他の変形例］
なお、図９に例示するように、階調数決定部５２０を除外して、各ブロックの階調数を固定値にしてもよい。すなわち、本変形例の画像変換部５１０は、各ブロックの画像データに対して、除外画素決定部５４０により決定された除外画素を除外して、限定色化処理（塗潰し処理）を行う。この場合には、除外画素の画素値が保存されるため、限定色化処理による画質劣化が抑制される。
【図面の簡単な説明】
【００３７】
【図１】画像処理装置２のハードウェア構成を、制御装置２１を中心に例示する図である。
【図２】制御装置２１（図１）により実行される画像処理プログラム５の機能構成を例示する図である。
【図３】画像処理プログラム５の動作（Ｓ１０）を示すフローチャートである。
【図４】上記の処理（Ｓ１０）で生成された符号データを復号化する第２の画像処理プログラム６の機能構成を例示する図である。
【図５】（Ａ）は、最近傍補間法で拡大されたＣＧ画像を例示し、（Ｂ）は、（Ａ）のＣＧ画像を一様に限定色化処理した結果を例示する図である。
【図６】第３の画像処理プログラム５２の機能構成を例示する図である。
【図７】除外画素を決定するための条件を例示する図である。
【図８】第４の画像処理プログラム５４の機能構成を例示する図である。
【図９】第５の画像処理プログラム５６の機能構成を例示する図である。
【符号の説明】
【００３８】
２・・・画像処理装置
５，５２，５４，５６，６・・・画像処理プログラム
５００・・・領域設定部
５１０・・・画像変換部
５２０，５２２・・・階調数決定部
５３０・・・符号化部
５４０・・・除外画素決定部
６００・・・復号化部
６１０・・・領域設定部
６２０・・・階調数算出部
６３０・・・フィルタ処理部
【図１】
0004687918.tif 000002
【図２】
0004687918.tif 000003
【図３】
0004687918.tif 000004
【図４】
0004687918.tif 000005
【図５】
0004687918.tif 000006
【図６】
0004687918.tif 000007
【図７】
0004687918.tif 000008
【図８】
0004687918.tif 000009
【図９】
0004687918.tif 000010