(57)【特許請求の範囲】
【請求項１】
第１階調数で量子化された入力信号に含まれる標本の第１階調値とその累積数との関係を示す累積ヒストグラムを特定するヒストグラム特定部と、
前記累積ヒストグラム上の点（ｘ、ｙ）と点（Ａｙ／Ｓ、ｙ）とを所定の比で内分する点を通る内分関数を求める内分関数特定部と、
累積数の最大値を第２階調数に等分する各累積数を前記内分関数に代入して得られる各第１階調値と、当該第１階調値に対応する第２階調値との関係を示す変換関数を特定する変換関数特定部と、
前記変換関数に基づいて、前記入力信号の各標本の第１階調値を第２階調値に変換することで、前記第２階調数で量子化された出力信号を生成する階調変換部と
を備え、
前記ｘが前記累積ヒストグラムにおける前記第１階調値であり、
前記ｙが前記累積ヒストグラムにおける前記累積数であり、
前記Ａが第１階調数であり、
前記Ｓが前記入力画像の標本数である
階調変換装置。
【請求項２】
前記累積ヒストグラムが、前記入力信号の標本の第１階調値と、前記入力信号に含まれる当該第１階調値未満の値に係る標本の累積数との関係を示す累積ヒストグラムである
請求項１に記載の階調変換装置。
【請求項３】
前記第２階調数が、前記第１階調数より小さい
請求項１または請求項２に記載の階調変換装置。
【請求項４】
前記内分関数が、前記点（ｘ、ｙ）と前記点（Ａｙ／Ｓ、ｙ）とを第１階調値の軸において所定の比で内分する関数である
請求項１から請求項３の何れか１項に記載の階調変換装置。
【請求項５】
前記内分関数が、前記点（ｘ、ｙ）と前記点（Ａｙ／Ｓ、ｙ）とを、第１階調値の軸においてｔ：１−ｔに内分する点を通る関数であって、
前記ｔが、０より大きく、かつ前記第１階調数と前記第２階調数の差を前記第１階調数で除算した値以下の値である
請求項１から請求項４の何れか１項に記載の階調変換装置。
【請求項６】
コンピュータを、
第１階調数で量子化された入力信号に含まれる標本の第１階調値とその累積数との関係を示す累積ヒストグラムを特定するヒストグラム特定部、
前記累積ヒストグラム上の点（ｘ、ｙ）と点（Ａｙ／Ｓ、ｙ）とを所定の比で内分する点を通る内分関数を求める内分関数特定部、
累積数の最大値を第２階調数に等分する各累積数を前記内分関数に代入して得られる各第１階調値と、当該第１階調値に対応する第２階調値との関係を示す変換関数を特定する変換関数特定部、
前記変換関数に基づいて、前記入力信号の各標本の第１階調値を第２階調値に変換することで、前記第２階調数で量子化された出力信号を生成する階調変換部
として機能させ、
前記ｘが前記累積ヒストグラムにおける前記第１階調値であり、
前記ｙが前記累積ヒストグラムにおける前記累積数であり、
前記Ａが第１階調数であり、
前記Ｓが前記入力画像の標本数である
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、階調変換装置およびプログラムに関する。
【背景技術】
【０００２】
画像や音声等の信号の階調変換技術として、ヒストグラム平坦化方式や、Ｌｌｏｙｄ−Ｍａｘ量子化が知られている（例えば、特許文献１を参照）。階調変換技術は、画像のコントラストを強調することによる視認性の向上や、限られた階調値の有効な活用のために用いられる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５４２６５０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ヒストグラム平坦化方式によれば、繰り返し演算を行うことなく、入力信号の階調を変換することができる。しかしながら、入力信号によっては、出力信号に使用されない階調値が含まれ、階調値を有効に活用することができない場合がある。
他方、Ｌｌｏｙｄ−Ｍａｘ量子化によれば、最適化演算により、全ての階調値が有効に活用されるように入力信号の階調が変換される。しかしながら、Ｌｌｏｙｄ−Ｍａｘ量子化は、最適化演算のために繰り返し演算を行う必要があるため、演算コストが高い。
本発明の目的は、上述した課題を解決する階調変換装置およびプログラムを提供することにある。
【課題を解決するための手段】
【０００５】
本発明の第１の態様によれば、階調変換装置は、第１階調数で量子化された入力信号に含まれる標本の第１階調値とその累積数との関係を示す累積ヒストグラムを特定するヒストグラム特定部と、前記累積ヒストグラム上の点（ｘ、ｙ）と点（Ａｙ／Ｓ、ｙ）とを所定の比で内分する点を通る内分関数を求める内分関数特定部と、累積数の最大値を第２階調数に等分する各累積数を前記内分関数に代入して得られる各第１階調値と、当該第１階調値に対応する第２階調値との関係を示す変換関数を特定する変換関数特定部と、前記変換関数に基づいて、前記入力信号の各標本の第１階調値を第２階調値に変換することで、前記第２階調数で量子化された出力信号を生成する階調変換部とを備え、前記ｘが前記累積ヒストグラムにおける前記第１階調値であり、前記ｙが前記累積ヒストグラムにおける前記累積数であり、前記Ａが第１階調数であり、前記Ｓが前記入力画像の標本数である。
【０００６】
本発明の第２の態様によれば、第１の態様に係る階調変換装置は、前記累積ヒストグラムが、前記入力信号の標本の第１階調値と、前記入力信号に含まれる当該第１階調値未満の値に係る標本の累積数との関係を示す累積ヒストグラムである。
【０００７】
本発明の第３の態様によれば、第１または第２の態様に係る階調変換装置は、前記第２階調数が、前記第１階調数より小さい。
【０００８】
本発明の第４の態様によれば、第１から第３の何れかの態様に係る階調変換装置は、前記内分関数が、前記点（ｘ、ｙ）と前記点（Ａｙ／Ｓ、ｙ）とを第１階調値の軸において所定の比で内分する関数である。
【０００９】
本発明の第５の態様によれば、第１から第４の何れかの態様に係る階調変換装置は、前記内分関数が、前記点（ｘ、ｙ）と前記点（Ａｙ／Ｓ、ｙ）とを、第１階調値の軸においてｔ：１−ｔに内分する点を通る関数であって、前記ｔが、０より大きく、かつ前記第１階調数と前記第２階調数の差を前記第１階調数で除算した値以下の値である。
【００１０】
本発明の第６の態様によれば、プログラムは、コンピュータを、第１階調数で量子化された入力信号に含まれる標本の第１階調値とその累積数との関係を示す累積ヒストグラムを特定するヒストグラム特定部、前記累積ヒストグラム上の点（ｘ、ｙ）と点（Ａｙ／Ｓ、ｙ）とを所定の比で内分する点を通る内分関数を求める内分関数特定部、累積数の最大値を第２階調数に等分する各累積数を前記内分関数に代入して得られる各第１階調値と、当該第１階調値に対応する第２階調値との関係を示す変換関数を特定する変換関数特定部、前記変換関数に基づいて、前記入力信号の各標本の第１階調値を第２階調値に変換することで、前記第２階調数で量子化された出力信号を生成する階調変換部として機能させ、前記ｘが前記累積ヒストグラムにおける前記第１階調値であり、前記ｙが前記累積ヒストグラムにおける前記累積数であり、前記Ａが第１階調数であり、前記Ｓが前記入力画像の標本数である。
【発明の効果】
【００１１】
上記態様のうち少なくとも１つの態様によれば、階調変換装置は、累積ヒストグラムと所定の一次関数とを内分する内分関数から導かれる変換関数に基づいて入力信号の階調を変換する。これにより、階調変換装置は、繰り返し演算を行うことなく、かつ階調値が有効に活用されるように入力信号の階調を変換することができる。
【図面の簡単な説明】
【００１２】
【図１】一実施形態による階調変換装置の構成を示す概略ブロック図である。
【図２】一実施形態に係る階調変換装置の動作を示すフローチャートである。
【図３】変換関数の算出経過の例を示す図である。
【図４】少なくとも１つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照しながら実施形態について詳しく説明する。
図１は、一実施形態による階調変換装置の構成を示す概略ブロック図である。
階調変換装置１は、第１階調数で量子化された入力画像を第２階調数で量子化された出力画像に変換する装置である。なお、第２階調数は、第１階調数より小さい。入力画像は、入力信号の一例である。出力画像は、出力信号の一例である。以下、入力画像に含まれる画素の階調値、すなわち階調変換前の階調値を、第１階調値とよぶ。また出力画像に含まれる画素の階調値、すなわち階調変換後の階調値を、第２階調値とよぶ。なお、ビット深度をＤとおくと、階調数は２Ｄで表される。
【００１４】
階調変換装置１は、信号入力部１１、ヒストグラム特定部１２、一次関数特定部１３、内分関数特定部１４、変換関数特定部１５、階調変換部１６、信号出力部１７を備える。
信号入力部１１は、入力画像の入力を受け付ける。
【００１５】
ヒストグラム特定部１２は、入力画像に含まれる画素（標本）の第１階調値とその累積数との関係を示す累積ヒストグラムを特定する。具体的には、ヒストグラム特定部１２は、以下の手順で累積ヒストグラムを特定する。まずヒストグラム特定部１２は、入力画像における各第１階調値の出現頻度を算出する。次に、ヒストグラム特定部１２は、算出した出現頻度を積分することにより、累積ヒストグラムを生成する。つまり、当該累積ヒストグラムは、第１階調値の昇順に、入力信号に含まれる当該第１階調値未満の値に係る標本の累積数を並べた累積ヒストグラムである。なお、当該累積ヒストグラムにおいて、第１階調値の最小値は０であり、対応する累積数は０となる。また、当該累積ヒストグラムにおいて、第１階調値の最大値は第１階調数であり、対応する累積数は入力信号の総画素数となる。
なお、ヒストグラム特定部１２が特定する累積ヒストグラムａ（ｘ−１）は、以下の式（１）により表される。
【００１６】
【数１】
0006548325.tif 000002
【００１７】
ここで、Ｉ（ｓ）は、入力信号のｓ番目の画素の値を示す。ｓは、画素位置を示すインデックスであり、０以上かつ総画素数Ｓ未満の整数である。ｘは、第１階調値を示し、０以上かつ第１階調数Ａ以下の整数である。また、｜・｜は、集合の要素数を示す。なお、ヒストグラム特定部１２が特定する累積ヒストグラムは、特定の第１階調値以下の画素の累積数を示す累積ヒストグラムを、１つ右へ（正数方向へ）シフトした関数と等価である。
【００１８】
一次関数特定部１３は、入力画像または累積ヒストグラムに基づいて、以下の式（２）により表される一次関数を特定する。
【００１９】
【数２】
0006548325.tif 000003
【００２０】
ここで、Ｓは、入力信号の総画素数を示す。Ａは、第１階調数を示す。ｘは、第１階調値を示し、０以上かつ第１階調数Ａ未満の数である。なお、当該一次関数は、階調値の最小値および累積数の最小値の組と第１階調値の最大値＋１および累積数の最大値の組とを通る一次関数である。当該一次関数は、点（Ａｙ／Ｓ、ｙ）を通る関数である。ここで、ｙは、累積ヒストグラムにおける累積数である。
【００２１】
内分関数特定部１４は、ヒストグラム特定部１２が特定した累積ヒストグラム上の点（ｘ、ｙ）と、一次関数特定部１３が特定した一次関数上の点（Ａｙ／Ｓ、ｙ）とを所定の比（例えば、（１−ｔ）：ｔ。ｔは０以上１以下の値）で内分する点を通る内分関数を特定する。具体的には、内分関数特定部１４は、以下の手順で内分関数を特定する。まず内分関数特定部１４は、累積ヒストグラム上の各点における累積数ｙを特定する。次に、内分関数特定部１４は、各累積数ｙを一次関数ｂ（ｘ）に代入することで、各累積数ｙに対応する一次関数上の点（Ａｙ／Ｓ、ｙ）を特定する。このとき特定される点（Ａｙ／Ｓ、ｙ）に係る第１階調値Ａｙ／Ｓは、必ずしも整数値とは限らない。次に、内分関数特定部１４は、累積ヒストグラム上の点（ｘ、ｙ）と一次関数上の点（Ａｙ／Ｓ、ｙ）について、同じ累積数に係る点どうしを、所定の比で内分する内分点を特定する。そして内分関数特定部１４は、特定した内分点を通る関数を推定する。内分点を通る関数は、各点どうしを線分で繋いだものでも良いし、カーブフィッティングにより求めた曲線関数であっても良い。
例えば、内分関数特定部１４が特定する内分関数ｃ（ｘ）のうち、累積ヒストグラムの傾きが０となる区間以外の区間は、以下の式（３）により求めることができる。
【００２２】
【数３】
0006548325.tif 000004
【００２３】
ここで、ａ−１（ｙ）、ｂ−１（ｙ）、およびｃ−１（ｙ）は、それぞれ累積ヒストグラムａ（ｘ）の逆関数、一次関数ｂ（ｘ）の逆関数、および内分関数ｃ（ｘ）の逆関数を示す。ｙは画素の累積数を示す。ｔは、内分比を示す。
【００２４】
変換関数特定部１５は、内分関数に基づいて、第１の階調値を第２の階調値に変換するための変換関数を特定する。具体的には、変換関数特定部１５は、以下の手順で変換関数を特定する。まず変換関数特定部１５は、入力画像の総画素数を第２階調数に等分する画素数（累積数）を特定する。次に変換関数特定部１５は、特定した画素数を内分関数に代入することで、各画素数に対応する内分関数上の点を特定する。このとき特定された点に係る第１階調値は、必ずしも整数値とは限らない。
なお、変換関数特定部１５が特定する変換関数ｈ（ｘ）は、以下の式（４）により表される。
【００２５】
【数４】
0006548325.tif 000005
【００２６】
ここで、Ｂは、第２の階調数を示す。つまり、変換関数ｈ（ｘ）は、内分関数ｃ（ｘ）を、総画素数Ｓを第２階調値Ｂで除算して得られる量子化幅で量子化した関数である。
【００２７】
階調変換部１６は、変換関数に基づいて、入力画像の各画素の第１階調値を第２階調値に変換することで、第２階調数で量子化された出力画像を生成する。すなわち、階調変換部１６は、入力画像の各画素の第１階調値Ｉ（ｓ）を、変換関数ｈ（ｘ）に代入することで、出力画像の各画素の第２階調値Ｊ（ｓ）を特定する。
信号出力部１７は、出力画像を出力する。
【００２８】
次に、階調変換装置１の動作について説明する。図２は、一実施形態に係る階調変換装置の動作を示すフローチャートである。
まず階調変換装置１の信号入力部１１は、入力画像の入力を受け付ける（ステップＳ１）。入力画像は、利用者により手動で入力されるものでも良いし、プログラム等により自動的に入力されるものでも良い。次に、ヒストグラム特定部１２は、ステップＳ１で入力された入力画像を解析し、累積ヒストグラムを生成する（ステップＳ２）。また、一次関数特定部１３は、ステップＳ１で入力された入力画像を解析し、上記式（２）により表される一次関数を特定する（ステップＳ３）。
【００２９】
次に、内分関数特定部１４は、内分比ｔとして、０より大きく、かつ第１階調数Ａと第２階調数Ｂの差を第１階調数Ａで除算した値以下となる値を求める（ステップＳ４）。つまり、内分関数特定部１４は、以下の式（５）が成立する内分比ｔを特定する。
【００３０】
【数５】
0006548325.tif 000006
【００３１】
次に、内分関数特定部１４は、ステップＳ２で生成した累積ヒストグラムとステップＳ３で生成した一次関数とに基づいて、累積ヒストグラム上の点と一次関数上の点とを、内分比（（１−ｔ）：ｔ）で内分する内分点を通る内分関数を生成する（ステップＳ５）。次に、変換関数特定部１５は、ステップＳ５で生成した内分関数に基づいて変換関数を生成する（ステップＳ６）。
【００３２】
次に、階調変換部１６は、ステップＳ１で入力された入力画像の各画素について、第１階調値をステップＳ６で生成した変換関数に代入することで第２階調値を特定し、出力画像を生成する（ステップＳ７）。そして信号出力部１７は、生成した出力画像を出力する（ステップＳ８）。出力画像の出力は、例えばディスプレイなどの表示装置に表示させることによりなされても良いし、記憶装置への記録によりなされても良い。
以上の手順により、階調変換装置１は、第１階調数の入力画像を第２階調数の出力画像に階調変換することができる。
【００３３】
ここで、内分比ｔとして式（５）に示す値を用いる理由を説明する。内分比ｔを用いて内分関数を生成することで、内分関数における傾きは、全ての点において０以上１／（１−ｔ）未満となる。したがって、内分比ｔとして式（５）に示す値を用いると、内分関数における傾きがＡ／Ｂ未満となる。つまり、内分比ｔとして式（５）に示す値を用いることで、階調変換装置１は、第２階調値を出力画像の全ての画素に割り当てることができる。
【００３４】
ここで、具体的な例を用いて本実施形態に係る階調変換装置１による階調変換方法を説明する。
図３は、変換関数の算出経過の例を示す図である。
階調数８（第１の階調数）の入力画像を、階調数４（第２の階調数）の出力画像に変換する例について説明する。具体的には、図３に示す例では、第１階調値が０を示す画素の出現数が１、第１階調値が１を示す画素の出現数が１、第１階調値が２を示す画素の出現数が１、第１階調値が３を示す画素の出現数が９、第１階調値が４を示す画素の出現数が２、第１階調値が５を示す画素の出現数が１、第１階調値が６を示す画素の出現数が０、第１階調値が７を示す画素の出現数が１の入力画像が入力される。
ヒストグラム特定部１２は、当該入力画像に基づいて、図３（Ａ）に示すように累積ヒストグラムａ（ｘ）を生成する。また、一次関数特定部１３は、図３（Ａ）に示すように一次関数ｂ（ｘ）を生成する。そして内分関数特定部１４は、図３（Ａ）に示すように内分関数ｃ（ｘ）を生成する。ここで、図３に示す例では、内分比ｔは、０．５である。なお、内分比０．５は、第１の階調数と第２の階調数の差を第１の階調数で除算した値に等しい。
【００３５】
そして、変換関数特定部１５は、当該内分関数ｃ（ｘ）に基づいて、図３（Ｂ）に示すように変換関数ｈ（ｘ）を生成する。当該変換関数ｈ（ｘ）は、図３（Ｂ）に示すように、第１の階調値が０〜２を示す画素の第２の階調値を０とし、第１の階調値が３を示す画素の第２の階調値を１とし、第１の階調値が４を示す画素の第２の階調値を２とし、第１の階調値が５〜７を示す画素の第２の階調値を３とする関数である。このように、本実施形態によれば、階調変換装置１は、第２階調値を出力画像の全ての画素に割り当てることができる。
【００３６】
図３（Ｃ）は、従来のヒストグラム平坦化による変換関数ｈ′（ｘ）の例を示す図である。従来のヒストグラム平坦化によれば、変換関数は、累積ヒストグラムａ（ｘ）をＢ／Ｓで量子化することにより生成される。この場合、従来のヒストグラム平坦化により生成される変換関数ｈ′（ｘ）は、図３（Ｃ）に示すように、第１の階調値が０〜２を示す画素の第２の階調値を０とし、第１の階調値が３を示す画素の第２の階調値を１とし、第１の階調値が４〜７を示す画素の第２の階調値を３とする関数である。つまり、従来のヒストグラム平坦化による階層変換では、２を示す第２階調値が出力画像の何れの画素にも割り当てられず、階調値を有効に活用することができない。
【００３７】
このように、本実施形態によれば、階調変換装置１は、繰り返し演算を行うことなく、かつ階調値が有効に活用されるように入力信号の階調を変換することができる。
【００３８】
以上、図面を参照して一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、様々な設計変更等をすることが可能である。
例えば、上述した実施形態に係る階調変換装置１は、画像の階層変換を行うが、これに限らず、他の信号について階層変換処理を行っても良い。例えば、他の実施形態に係る階調変換装置１は、音声の階層変換を行っても良い。この場合、階調変換装置１は、音声信号の量子化ビット数（階層数）を変換する。
【００３９】
また、上述した実施形態に係る階調変換装置１は、一次関数特定部１３が入力画像に基づいて一次関数を生成するが、これに限られない。例えば、一次関数特定部１３は、ヒストグラム特定部１２が特定した累積ヒストグラムに基づいて一次関数を生成しても良い。また、入力画像の総画素数および階調数が予め分かっているのであれば、階調変換装置１は、一次関数特定部１３を備えず、内分関数特定部１４が予め特定しておいた一次関数に基づいて内分関数を生成しても良い。
【００４０】
また、上述した実施形態に係る階調変換装置１は、入力画像の階調数を減少させるものであるが、これに限られない。つまり、他の実施形態に係る階調変換装置１は、階調数を増加させても良い。階調数の増加処理は、例えば画像の拡大、縮小、平滑化などの所定の画像処理により計算上の画素数に非整数値が生じた場合などに、当該非整数値を適切な階調値に当てはめるために用いることができる。
【００４１】
図４は、少なくとも１つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
コンピュータ９は、ＣＰＵ９１、主記憶装置９２、補助記憶装置９３、インタフェース９４を備える。
上述の階調変換装置１は、コンピュータ９に実装される。そして、上述した各処理部の動作は、プログラムの形式で補助記憶装置９３に記憶されている。ＣＰＵ９１は、プログラムを補助記憶装置９３から読み出して主記憶装置９２に展開し、当該プログラムに従って上記処理を実行する。
【００４２】
なお、少なくとも１つの実施形態において、補助記憶装置９３は、一時的でない有形の媒体の一例である。一時的でない有形の媒体の他の例としては、インタフェース９４を介して接続される磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等が挙げられる。また、このプログラムが通信回線によってコンピュータ９に配信される場合、配信を受けたコンピュータ９が当該プログラムを主記憶装置９２に展開し、上記処理を実行しても良い。
【００４３】
また、当該プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、当該プログラムは、前述した機能を補助記憶装置９３に既に記憶されている他のプログラムとの組み合わせで実現するもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【符号の説明】
【００４４】
１  階調変換装置
１１  信号入力部
１２  ヒストグラム特定部
１３  一次関数特定部
１４  内分関数特定部
１５  変換関数特定部
１６  階調変換部
１７  信号出力部
【図１】
0006548325.tif 000007
【図２】
0006548325.tif 000008
【図３】
0006548325.tif 000009
【図４】
0006548325.tif 000010