(57)【特許請求の範囲】
【請求項１】
画像データを量子化する量子化テーブルを生成する画像処理装置であって、
前記画像データが有する画素の階調値と、前記階調値となる画素の頻度との関係を示すヒストグラムデータを生成するヒストグラム生成手段と、
前記画像データが有する画素に量子化値を割り当てる場合に、前記量子化値ごとに割り当てる画素数が閾値として設定された閾値テーブルを取得、又は生成する閾値テーブル入力手段と、
前記ヒストグラム生成手段から得られる前記ヒストグラムデータで示される前記階調値の低い方又は高い方から順に、前記階調値ごとの画素のカウント数に対応する数の量子化値を割り当て、割り当てた量子化値の数が前記閾値に達した場合に前記量子化値を次の量子化値に切り替えて全ての階調値に対して量子化値を割り当てることで、前記画像データを量子化する量子化テーブルを生成する量子化テーブル生成手段と、
を有し、
前記量子化テーブル生成手段は、
前記画像データをスペクトル解析した結果に基づいて判定されたグラデーション領域に含まれる画素の量子化値を割り当てる画素数の最大値を、他の量子化値に対する最大値よりも小さくして、前記画像データを量子化する量子化テーブルを再度生成する画像処理装置。
【請求項２】
コンピュータを請求項１に記載の画像処理装置として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、及びプログラムに関する。
【背景技術】
【０００２】
従来、画像処理では、画像を量子化する処理が行われる場合がある。この量子化は、例えば１０ビットの画像を８ビットの画像に変換する等の画像のビット数を変更する処理である。この際に用いられるロイドマックス（Ｌｌｏｙｄ−Ｍａｘ）量子化法は、量子化の際、量子化する前の画像と量子化した後の画像の差分を最小にし、量子化による画像の劣化を少なくする手法の一つである。スカラ量子化の一種であるロイドマックス量子化法においては、輝度ヒストグラム（Ｈｉｓｔｏｇｒａｍ）頻度が高い階調の値付近に多くの階調を割り当てる（例えば、非特許文献１、及び非特許文献２等）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】"Ｌｅａｓｔ  ｓｑｕａｒｅｓ  ｑｕａｎｔｉｚａｔｉｏｎ  ｉｎ  ＰＣＭ"Ｓ．Ｐ．Ｌｌｏｙｄ，ＩＥＥＥ  Ｔｒａｎｓ．Ｉｎｆｏｒｍａｔｉｏｎ  Ｔｈｅｏｒｙ，ｖｏｌ．ＩＴ−２８，ｐｐ．１２９−１３６，Ｍａｒ．１９８２．
【非特許文献２】"Ｑｕａｎｔｉｚｉｎｇ  ｆｏｒ  ｍｉｎｉｍｕｍ  ｄｉｓｔｏｒｔｉｏｎ"Ｊ．Ｍａｘ，ＩＥＥＥ  Ｔｒａｎｓ．Ｉｎｆｏｒｍａｔｉｏｎ  Ｔｈｅｏｒｙ，ｖｏｌ．ＩＴ−７，ｐｐ．７−１２，Ｍａｒ．１９６０．
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のロイドマックス量子化法では、フィードバック（Ｆｅｅｄｂａｃｋ）処理を行うため、計算コストが大きくなってしまう問題があった。
【０００５】
本発明の１つの側面は、量子化の際の計算コストを少なくすることを目的とする。
【課題を解決するための手段】
【０００６】
一態様における、画像データを量子化する量子化テーブルを生成する画像処理装置であって、前記画像データが有する画素の階調値と、前記階調値となる画素の頻度との関係を示すヒストグラムデータを生成するヒストグラム生成手段と、前記画像データが有する画素に量子化値を割り当てる場合に、前記量子化値ごとに割り当てる画素数が閾値として設定された閾値テーブルを取得、又は生成する閾値テーブル入力手段と、前記ヒストグラム生成手段から得られる前記ヒストグラムデータで示される前記階調値の低い方又は高い方から順に、前記階調値ごとの画素のカウント数に対応する数の量子化値を割り当て、割り当てた量子化値の数が前記閾値に達した場合に前記量子化値を次の量子化値に切り替えて全ての階調値に対して量子化値を割り当てることで、前記画像データを量子化する量子化テーブルを生成する量子化テーブル生成手段と、を有し、前記量子化テーブル生成手段は、前記画像データをスペクトル解析した結果に基づいて判定されたグラデーション領域に含まれる画素の量子化値を割り当てる画素数の最大値を、他の量子化値に対する最大値よりも小さくして、前記画像データを量子化する量子化テーブルを再度生成することを特徴とする。
【０００７】
フィードフォワード処理により、繰り返し演算を行わずに量子化できるため、量子化の際の計算コストを少なくできる。
【０００８】
前記画像データをスペクトル解析する解析手段を有し、前記閾値テーブル入力手段は、前記解析手段によるスペクトル解析の結果に対応して前記閾値が設定された閾値テーブルを修正することを特徴とする。
【０００９】
フィードフォワード処理により、繰り返し演算を行うことなく量子化が行え、量子化の際の計算コストを少なくできる。さらに、スペクトル解析の結果に基づいて生成されることによって、グラデーション領域を判定することができる。
【００１０】
前記解析手段は、前記スペクトル解析の結果から、周波数のパワーの割合の値によりグラデーション領域を判定し、前記閾値テーブル入力手段は、前記グラデーション領域と判定された領域に対して前記量子化値を割り当てる割合が大きくなる前記閾値テーブルを取得、又は生成することを特徴とする。
【００１１】
フィードフォワード処理により、繰り返し演算を行うことなく量子化が行え、量子化の際の計算コストを少なくできる。さらに、スペクトル解析の結果に基づいて生成されることによって、階調値を細かく量子化することができる。
【００１２】
前記閾値テーブル入力手段は、前記量子化値を割り当てる割合が均等となるように前記閾値が設定された閾値テーブルを取得、又は生成することを特徴とする。
【００１３】
フィードフォワード処理により、繰り返し演算を行うことなく量子化が行え、量子化の際の計算コストを少なくできる。さらに、量子化値は、割り当てる割合が均等になる閾値テーブルによって割り当てられる。したがって、割り当てる割合が均等になる閾値テーブルによって、ヒストグラムを平滑にすることができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施形態に係る画像処理システムの構成の一例を説明するブロック図である。
【図２】本発明の一実施形態に係る画像処理装置の機能構成の一例を説明する機能ブロック図である。
【図３】本発明の一実施形態に係る画像処理装置による全体処理の一例を説明するフローチャートである。
【図４】本発明の一実施形態に係るヒストグラムの一例を説明する図である。
【図５】本発明の一実施形態に係るブロック領域の一例を説明する図である。
【図６】本発明の一実施形態に係るスペクトル解析におけるグラデーション領域解析処理の一例を説明する図である。
【図７】本発明の一実施形態に係る第１モード用の閾値テーブルの一例を説明する図である。
【図８】本発明の一実施形態に係る第２モード用の閾値テーブルの一例を説明する図である。
【図９】本発明の一実施形態に係る量子化テーブルを生成する処理の一例を説明する図である。
【図１０】本発明の一実施形態に係る量子化テーブルの一例を説明する図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態について説明する。
【００１６】
＜全体構成＞
図１は、本発明の一実施形態に係る画像処理システムの構成の一例を説明するブロック図である。図１に示す画像処理システム１は、画像処理装置１０と、送信装置１１とを有する。
【００１７】
画像処理装置１０は、画像処理システム１に入力される画像データを用いて、ヒストグラム生成処理及びスペクトル解析処理等により画像を量子化するための量子化テーブルを生成する。画像を量子化するとは、例えば画素の階調値が１０ビット（１０２４階調）の画像データを、８ビットの画像データ（２５６階調）に量子化することをいうが、量子化前後のビット数については、これに限定されるものではない。なお、量子化を行うため、量子化後のビット数は、量子化前のビット数よりも少なくなる。また、画像処理装置１０は、生成した量子化テーブルを用いて入力される画像データの量子化処理を行ってもよい。
【００１８】
画像処理装置１０は、例えば電子回路基板等で実現される。電子回路基板には、例えばＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等が実装され、画像処理装置１０が行う各種の処理は、実装されたＦＰＧＡ等によって実行される。なお、本実施形態は、ＦＰＧＡ等のＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）を用いる場合に限られない。本実施形態は、例えば画像処理装置１０が行う処理の全部、又は一部がＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）によって実現される形態でもよい。
【００１９】
また、画像処理装置１０は、電子回路基板に限られない。画像処理装置１０は、例えばＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等でもよい。画像処理装置１０がＰＣである場合、画像処理装置１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を有し、ＣＰＵがプログラムを実行することによって各種の処理を実現してもよい。
【００２０】
送信装置１１は、画像処理装置１０が出力する処理後画像データ（例えば、８ビットの画像データ）、及び量子化テーブルデータ等の各種データを、所定の画像復元機能を有する受信装置に送信する。
【００２１】
受信側（図示せず）では、受信装置は、送信装置１１が送信する画像データ、及び量子化テーブルデータ等を受信し、受信した画像データ、及び量子化テーブルデータを利用して、画像データに対して階調復元等の処理を行う。階調復元処理とは、例えば階調値が８ビット（２５６階調）の画像データを１０ビットの画像データ（１０２４階調）に逆量子化する処理をいうが、これに限定されるものではない。また、本実施形態では、受信側で階調復元以外の処理が行われてもよい。
【００２２】
＜画像処理装置１０の機能構成例＞
次に、上述した画像処理システム１における画像処理装置１０の機能構成例について、図を用いて説明する。図２は、本発明の一実施形態に係る画像処理装置の機能構成の一例を説明する機能ブロック図である。
【００２３】
図２に示す画像処理装置１０は、入力手段１０Ｆ１と、ヒストグラム生成手段１０Ｆ２と、解析手段の一例としてのスペクトル解析手段１０Ｆ３と、閾値テーブル入力手段１０Ｆ４と、量子化テーブル生成手段１０Ｆ５と、量子化手段１０Ｆ６とを有する。
【００２４】
入力手段１０Ｆ１は、画像データ、動作モードデータ、及び閾値テーブルデータ等を入力する。動作モードとは、量子化テーブル生成手段１０Ｆ５において、例えば１０ビットの階調値に対して８ビットの量子化値を割り当てる動作内容を設定するものであり、動作モードに応じて閾値テーブルが設定される。閾値テーブルデータは、予め設定された複数の動作モードに対応させて複数の閾値テーブルを有していてもよい。
【００２５】
また、入力手段１０Ｆ１は、入力した画像データに対し、閾値テーブルを取得又は生成するための基準となる所定のブロック領域に分割したり、所定のブロック領域においてスペクトラム解析を行う基準となる小ブロック領域に分割する。これらの分割データは、スペクトル解析手段１０Ｆ３や閾値テーブル入力手段１０Ｆ４に出力される。入力手段１０Ｆ１は、例えば入出力用のインタフェース、及びＦＰＧＡ等の電子回路によって実現される。
【００２６】
ヒストグラム生成手段１０Ｆ２は、入力手段１０Ｆ１が入力した画像データが有する画素の階調値と、その階調値となる画素の頻度（カウント数）との関係を示すヒストグラムデータを生成するヒストグラム生成処理を行う。ヒストグラム生成手段１０Ｆ２は、例えばＦＰＧＡ等の電子回路によって実現される。
【００２７】
スペクトル解析手段１０Ｆ３は、入力手段１０Ｆ１が入力した画像データをスペクトル解析（ｓｐｅｃｔｒｕｍ  ａｎａｌｙｓｉｓ）する。例えば、スペクトル解析手段１０Ｆ３は、画像データを小ブロック領域ごとに解析し、小ブロック領域ごとに解析結果を出力する。また、スペクトル解析は、例えばＤＣＴ（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）、又はＦＦＴ（Ｆａｓｔ  Ｆｏｕｒｉｅｒ  Ｔｒａｎｓｆｏｒｍ）等を用いて行う。小ブロック領域とは、例えば縦軸方向が８画素、横軸方向が８画素、あるいは縦軸方向が１６画素、横軸方向が１６画素の領域であるが、これに限定されるものではない。
【００２８】
スペクトル解析の解析結果は、例えば小ブロック領域がグラデーション（ｇｒａｄａｔｉｏｎ）領域であるか否かを判定するのに用いる、所定の小ブロック領域についての周波数スペクトル（ｆｒｅｑｕｅｎｃｙ  ｓｐｅｃｔｒｕｍ）のデータである。
【００２９】
スペクトル解析手段１０Ｆ３は、スペクトル解析の結果から、周波数のパワーの割合の値により、その小ブロック領域がグラデーション領域であるか否かを判定することができる。スペクトル解析手段１０Ｆ３は、例えばＦＰＧＡ等の電子回路によって実現される。
【００３０】
閾値テーブル入力手段１０Ｆ４は、閾値テーブルデータを取得、又は生成する処理を行う。例えば、閾値テーブル入力手段１０Ｆ４は、画像データが有する画素に対して量子化値を割り当てる場合に、量子化値ごとに割り当てる画素数が閾値として設定された閾値テーブルを取得、又は生成する。
【００３１】
具体的には、閾値テーブル入力手段１０Ｆ４は、設定される動作モードに対応させてブロック領域ごとの閾値テーブルを取得、又は生成する。例えば、ある動作モードでは量子化値を割り当てる割合が均等となるような閾値テーブルであり、他の動作モードではスペクトル解析の結果に対応して、均等の量子化テーブルが修正される。
【００３２】
この量子化テーブルの修正は、例えば、スペクトル解析の結果でグラデーション領域と判定された階調値の範囲に対して、量子化値を割り当てる割合を大きくするものである。閾値テーブル入力手段１０Ｆ４は、例えばＦＰＧＡ等の電子回路によって実現される。
【００３３】
量子化テーブル生成手段１０Ｆ５は、ヒストグラム生成手段１０Ｆ２からのヒストグラムデータで示される階調値ごとの画素のカウント数と、閾値テーブル入力手段１０Ｆ４からの閾値テーブルで設定された閾値とに応じて、階調値ごとに量子化値をそれぞれ割り当てて画像データを量子化する量子化テーブルを生成する。例えば、量子化テーブル生成手段１０Ｆ５は、ヒストグラム生成手段１０Ｆ２から得られるヒストグラムデータで示される階調値の低い方又は高い方から順に、階調値ごとの画素のカウント数に対応する数の量子化値を割り当てる。また、量子化テーブル生成手段１０Ｆ５は、割り当てた量子化値が閾値に達した場合に次の量子化値に切り替えて全ての階調値に対して量子化値を割り当てることで、画像データを量子化する量子化テーブルを生成する。量子化テーブル生成手段１０Ｆ５は、例えばＦＰＧＡ等の電子回路によって実現される。
【００３４】
量子化手段１０Ｆ６は、量子化テーブル生成手段１０Ｆ５で生成した量子化テーブルを用いて、例えば１０ビットの画像データの量子化を行い、８ビットの処理後画像データ及び量子化テーブルを図１に示す送信装置１１に出力する。なお、本実施形態において、画像処理装置１０は、量子化手段１０Ｆ６を有しない構成であってもよく、その場合には、入力された１０ビットの画像データ及び量子化テーブルが出力され、他の装置において量子化テーブルを用いて８ビットの画像データを生成してもよい。本実施形態では、図１の送信装置１１は、画像処理装置１０が出力する量子化テーブルデータ、及び処理後画像データを受信側の受信装置等に送信する。
【００３５】
なお、各部は、電子回路によって実現される場合に限られない。各部は、全部、又は一部がプログラムによって実現されてもよい。
【００３６】
従来、ロイドマックス量子化は、繰り返し演算によって入力画像と、量子化後の画像と、の差分の最小化を図ったため、計算コストが高くなる場合が多かった。本発明の一実施形態は、ヒストグラム、及び閾値テーブルのデータに基づいて量子化値を割り当てるフィードフォワード処理を行うため、繰り返し演算を行うことなく量子化が行える。繰り返し演算を行わないことによって、画像処理装置１０は、計算コストを少なくできる。また、収束するまで繰り返し行う処理がないため計算時間を一定にすることができ、電子回路で実現する場合、電子回路の制御等を簡易にすることができる。
【００３７】
＜全体処理＞
図３は、本発明の一実施形態に係る画像処理装置による全体処理の一例を説明するフローチャートである。
【００３８】
図３の例において、ステップＳ０２０１では、画像処理装置１０の入力手段１０Ｆ１は、画像データを入力する。次に、ステップＳ０２０２では、画像処理装置１０のヒストグラム生成手段１０Ｆ２は、ヒストグラムデータを生成するヒストグラム生成処理を行う。図４は、本発明の一実施形態に係るヒストグラムの一例を説明する図である。
【００３９】
図４で示すように、ヒストグラムは、縦軸を度数とする「頻度」、及び横軸を画像における画素の輝度値等である「階調値」とするグラフである。ヒストグラム生成処理は、画像データを所定の大きさに分割したブロック領域ごとに行われる。ブロック領域に分割するための情報は、予め画像処理装置１０に入力される。
【００４０】
図５は、本発明の一実施形態に係るブロック領域の一例を説明する図である。図５（Ａ）は、本発明の一実施形態に係る画像データを３×３の９のブロック領域に分割する場合の一例を示す図である。
【００４１】
入力処理で入力される画像２は、図５（Ａ）で図示するように、画像の縦、及び横方向についてそれぞれ３分割される。同一の被写体で各ヒストグラムのデータ量が同じとなるように、ブロック領域２１は、各ブロック領域の有する画素数が等分割となるように生成されるのが好ましい。ブロック領域２１は、例えば画像２の面積が９等分となるように生成される。
【００４２】
なお、実施形態は、３×３の９のブロック領域に分割する場合に限られず、例えば図５（Ｂ）に示すように４×４の１６のブロック領域に分割してもよい。
【００４３】
図３に戻り、次に、ステップＳ０２０３では、画像処理装置１０のスペクトル解析手段１０Ｆ３は、画像データをスペクトル解析する解析処理を行う。スペクトル解析では、入力処理で入力されるブロック領域の画像データについて、小ブロック領域ごとに解析し、小ブロック領域ごとに解析結果を出力する。また、スペクトル解析では、解析結果に基づいてグラデーション領域であるか否かを判定してもよい。
【００４４】
図６は、本発明の一実施形態に係るスペクトル解析におけるグラデーション領域解析処理の一例を説明する図である。
【００４５】
図６の例では、小ブロック領域が縦軸方向１６画素、かつ、横軸方向１６画素である場合の例を示す図である。グラデーション領域解析処理は、ブロック領域に例えばＤＣＴを行う。ＤＣＴの結果に基づいて、グラデーション領域解析処理は、図６に示すように、水平周波数、及び垂直周波数がともに最高周波数の１／８以下となる周波数のパワーの割合を算出する処理である。グラデーション領域解析処理は、割合を例えば０．００乃至１．００の範囲の値で出力する。値が大きい場合、対象となるブロック領域は、低周波帯域のパワーの割合が高い領域である。小ブロック領域がグラデーション領域であるか否かの判定は、例えばパワーの割合の値が所定の値以上である場合、画像処理装置１０がグラデーション領域であると判定する方法等で実現される。
【００４６】
図３に戻り、次に、ステップＳ０２０４では、画像処理装置１０の閾値テーブル入力手段１０Ｆ４は、閾値テーブルを取得又は生成する処理を行う。ここで、ステップＳ０２０４の処理を行うために、ステップＳ０２０２と同様に、ブロック領域に分割するための情報は、予め画像処理装置１０に入力される。また、ステップＳ０２０４の処理を行うために、ステップＳ０２０３と小ブロック領域に係る情報が、予め画像処理装置１０に入力される。また、ステップＳ０２０４の処理を行うために、ステップＳ０２０３で出力される解析結果が、予め画像処理装置１０に入力される。また、ステップＳ０２０４の処理を行うために、動作モードが外部スイッチ（図示せず）等によって予め画像処理装置１０に入力される。
【００４７】
例えば、ステップＳ０２０４では、予め閾値テーブルを外部から取得しない場合、閾値テーブル入力手段１０Ｆ４は、閾値テーブルを生成する処理を行う。また、予め閾値テーブルを外部から取得する場合、閾値テーブル入力手段１０Ｆ４は、閾値テーブルを取得する処理を行う。
【００４８】
また、ステップＳ０２０４では、閾値テーブルを生成する処理では、画像処理装置１０は、入力する動作モードによって行う処理を切り替えることができる。動作モードは、例えば量子化値を均等に割り当てるヒストグラム平滑化モード（以下、「第１モード」という。）、及びグラデーション領域に重みをつけて割り当てる疑似輪郭抑制モード（以下、「第２モード」という。）等があるが、これに限定されるものではない。
【００４９】
ステップＳ０２０４では、画像処理装置１０は、第１モード、及び第２モードいずれの場合でも上述した図５に示すブロック領域２１ごとに処理を行う。
【００５０】
以下、画像処理装置１０が１０ビット（ｂｉｔ）である１０２４階調のデータを、８ビットである２５６階調のデータに量子化する場合を例に、上述した第１モード及び第２モードの閾値テーブルについて説明する。
【００５１】
＜第１モード用の閾値テーブルの一例＞
図７は、本発明の一実施形態に係る第１モード用の閾値テーブルの一例を説明する図である。図７に示す閾値テーブルの項目としては、例えば「量子化値（８ビット）」、「閾値」等であるが、これに限定されるものではない。ここで閾値とは、階調値ごとのカウント数（頻度）と比較される値である。カウント数が閾値に達している場合、画像処理装置１０は、次の量子化値について処理を開始する。閾値は、割り当てる量子化値を切り替えるための基準となる値である。
【００５２】
ステップＳ０２０４の閾値テーブルを生成する処理において、第１モードの場合、画像処理装置１０は、図７のように、量子化値ごとに割り当てられる画素の数（以下、カウント数という。）が均等となるように閾値を設定する処理を行う。具体的には、図７に示すように、画像データのブロック領域の総画素数２５６×２５６＝６５５３６に対して、８ビット分の総数２５６で除算した結果（６５５２６／２５６＝２５６）を閾値に設定する。図７に示すように、量子化値ごとにそれぞれ同じ値の閾値が設定される場合は、画像処理装置１０が量子化値ごとにそれぞれ同じ数の画素を生成し、画像処理装置１０が量子化値ごとに均等に割り当てを行う。カウント数が図７に示す「閾値」に達する場合、画像処理装置１０は、画素を割り当てる量子化値を次の量子化値とする。次の量子化値は、例えば割り当てを行っている量子化値に１を加えた量子化値である。例えば図７の場合、量子化値「０」に２５６の画素を割り当てた場合、画像処理装置１０は、次の画素には量子化値「１」を割り当てる処理を行う。なお、第１モードの場合、上述したスペクトル解析手段１０Ｆ３における処理を行わずに、閾値テーブルを生成することができる。
【００５３】
＜第２モード用の閾値テーブルの一例＞
図８は、本発明の一実施形態に係る第２モード用の閾値テーブルの一例を説明する図である。図８に示す閾値テーブルの項目は、上述した図７と同様であるが、これに限定されるものではない。
【００５４】
ステップＳ０２０４において、画像処理装置１０は、第２モードの場合、ブロック領域内に小ブロック領域のグラデーション領域であるか否かを判定する。また、グラデーション領域である場合は、グラデーション領域である量子化値の範囲を判定する。
【００５５】
グラデーション領域であるか否かの判定は、画像処理装置１０がステップＳ０２０３のスペクトル解析の解析結果に基づいて行う。画像処理装置１０は、例えば解析結果として得られる周波数スペクトルにおいて、高周波のない、滑らかな領域をグラデーション領域と判定する。また、判定は、例えば上述した図６で説明した方法等で実現される。画像処理装置１０は、例えば小ブロック領域の周波数において、周波数の低い方から１０パーセントのパワーの合計が、全体のパワーの９８パーセントを超える場合、グラデーション領域と判定する。
【００５６】
小ブロック領域がグラデーション領域と判定される場合、画像処理装置１０は、グラデーション領域に重みをつけて閾値を割り当てる。
【００５７】
図８の例では、図７と同様に、図５のブロック領域２１ごとに処理を行う場合の例を示している。図８の例は、第２モードであり、かつ、ブロック領域２１に含まれる小ブロック領域２１Ｇがグラデーション領域であると判定された場合に用いる閾値テーブルを説明する図である。
【００５８】
図８は、グラデーション領域用の閾値が図７の閾値と比較して、小さくなるように設定される点が異なる。図８は、量子化値「１００」乃至「１０２」がグラデーション領域用となる場合の例である。
【００５９】
図８の場合、グラデーション領域である小ブロック領域２１Ｇに対応する閾値は、閾値テーブル３に、図７の場合より「α」だけ小さい値で設定される。つまり、図８の閾値テーブル３に示すように、グラデーション領域用の閾値は、第１モードで均等になるように設定した閾値から「α」引いた値が設定される。閾値が小さい値となると、カウント数は、閾値に達するのが早くなるため、生成される画素に割り当てられる量子化値が細かく切り替わる場合が多くなる。図８の場合、例えば量子化値「１００」に割り当てられる画素の数は、２５６より少ない数である。図７の場合と比較して、図８の場合は、同様の画像であっても量子化値「１００」に割り当てられる画素が少なくなる。
【００６０】
したがって、図８の場合は、画像処理装置１０が、それぞれの値が近い値の輝度値の画素であっても別の量子化値に割り当てる可能性を図７の場合より多くできる。つまり、グラデーション領域と判定された領域に対して量子化値を割り当てる割合が大きくなる。別の量子化値が割り当てられると、それぞれの画素が別の出力値で出力されるため、出力を行う装置（図示せず）は、グラデーション領域のようにそれぞれの輝度値が近い値である画素が近接している箇所でも同じ出力値で一様に出力するのではなく、細かく出力値を変化させることで、輝度値の変化があることを表現できる。
【００６１】
第２モードでは、図８の閾値テーブル３に示すように、閾値を小さくすることによって、グラデーション領域を量子化値「１００」乃至「１０２」の前後に拡大させることができ、さらに、グラデーション領域外の閾値を大きくすることで、グラデーション領域内の各階調値を細かく量子化することができ、疑似輪郭を抑制することができる。
【００６２】
また、図８の場合、量子化値「１００」乃至「１０２」に割り当てられる画素は、それぞれ「α」少なくなるように設定されているため、グラデーション領域用の量子化値「１００」乃至「１０２」に割り当てられる画素は、図７の場合と比較して、合計して「３α」少ない。このため、グラデーション領域内の各量子化値を細かく量子化することができ、疑似輪郭を抑制することができる。また、第２にモードでは、「３α」減らした分をグラデーション領域用以外の量子化値「０」乃至「９９」、及び量子化値「１０３」乃至「２５５」に画素を割り当てる。グラデーション領域用以外の量子化値への割り当ては、例えば割り当てられる画素が各量子化値に、それぞれ均等に割り当てられるように行われる。
【００６３】
図３に戻り、次に、ステップＳ０２０５では、画像処理装置１０の量子化テーブル生成手段１０Ｆ５は、量子化テーブルを生成する処理を行う。ステップＳ０２０５の処理では、ステップＳ０２０３の解析結果と、ステップＳ０２０４で生成される閾値テーブル、又は入力される閾値テーブルとが用いられる。量子化テーブルを生成する処理は、例えば図５のブロック領域２１ごとに量子化値を割り当てる処理である。
【００６４】
＜量子化テーブルを生成する処理の一例＞
図９は、本発明の一実施形態に係る量子化テーブルを生成する処理の一例を説明する図である。量子化テーブルを生成する処理を、図９（Ａ）で図示する１０ビットの階調値４００乃至４０７の値に対して、８ビットの量子化値１００乃至１０２を割り当てる場合を例に説明する。
【００６５】
図９（Ａ）は、ステップＳ０２０２の解析結果の一例である。図９（Ａ）は、図５のブロック領域２１のヒストグラムの一例を示す図である。量子化テーブルを生成する処理では、量子化値は、例えば値の低い階調値から割り当てられる。なお、高い方から割り当ててもよい。
【００６６】
図９（Ｂ）は、量子化値「１００」の割り当ての一例を説明する図である。図９（Ｂ）では、量子化値「１００」が、最も低い値である１０ビットの階調値４００から順に割り当てた場合を示す。割り当てる量は、ステップＳ０２０４で生成される閾値テーブル、又は入力される閾値テーブルの量子化値「１００」に設定される閾値で決定される。
【００６７】
図９（Ｂ）の例では、量子化値「１００」に対応する閾値に達するまでに、斜線部分（階調値４０２の途中）までが割り当てられたことを示す。
【００６８】
ステップＳ０２０５では、量子化テーブル生成手段１０Ｆ５は、図９（Ｂ）に示すように、量子化値「１００」の割り当てが対応する閾値に達した場合に、量子化値「１００」を次の量子化値「１０１」に切り替えて割り当てを行う。図９（Ｃ）は、量子化値「１０１」の割り当ての一例を説明する図である。図９（Ｃ）では、図９（Ｂ）の量子化値「１００」の割り当て後、量子化値「１０１」が、最も低い値である１０ビットの階調値４０２の途中から順に、量子化値「１０１」の閾値に達するまで割り当てを行い、階調値４０３の途中まで割り当てられたことを示す。
【００６９】
また、図９（Ｄ）は、量子化値「１０２」の割り当ての一例を説明する図である。図９（Ｄ）の処理は、図９（Ｂ）、及び図９（Ｃ）と同様に、図９（Ｃ）の量子化値「１０１」の割り当てが閾値に達した場合、次の量子化値「１０２」に切り替えて最も低い値である１０ビットの階調値４０３の途中から順に割り当てを行う処理である。
【００７０】
なお、図９（Ｄ）の例において、階調値４０２には、量子化値「１００」及び量子化値「１０１」が割り当てられているが、この場合には、例えば先に割り当てられた量子化値「１００」を優先する。したがって、量子化テーブルの階調値４０２に対して量子化値「１００」が設定される。設定方法については、上記の例に限定されるものではない。
【００７１】
なお、上述した割り当ての処理は、第１モードの場合、図７で示した閾値テーブル３に設定された「閾値」に基づいて行う処理である。割り当ての処理は、第２モードの場合、図８で示した閾値テーブル３に設定された「閾値」に基づいて行う処理である。画像処理装置１０は、図９（Ｂ）で図示するように、階調値「４００」の画素を量子化値「１００」に割り当てる場合、量子化値「１００」に割り当てた画素の数をカウント数としてカウントする処理を行う。つまり、量子化値「１００」に割り当てた画素がある毎に、画像処理装置１０は、カウント数をカウントアップする処理を行う。カウント数が図７又は図８で示した閾値テーブル３に設定された「閾値」に達した場合、画像処理装置１０は、次の量子化値である量子化値「１０１」に画素を割り当てる。
【００７２】
画像処理装置１０が量子化値「１０１」に画素を割り当てる場合、画像処理装置１０は、量子化値「１００」の場合と同様に、量子化値「１０１」に割り当てる画素の数をカウント数としてカウントする処理を行う。量子化値「１０１」に画素を割り当てる処理は、量子化値「１００」の場合と同様に、図７又は図８の閾値テーブル３に基づいて、量子化値「１０１」に設定される「閾値」にカウント数が達するまで行われる処理である。
【００７３】
図９で示すように、量子化テーブルを生成する処理は、ヒストグラムの階調値に対して閾値テーブルに基づいて量子化値を割り当て、最終的に全ての階調値に対して量子化値を割り当てる。
【００７４】
なお、同じ分割領域に位置し、かつ、同一の輝度値である画素は、同一の量子化値に割り当てられるのが望ましいので、多数の方の量子化値に揃えて割り当てられてもよい。例えば、図９（Ｄ）の場合において、「４０２」の階調値である画素が複数存在する場合を例に説明する。「４０２」の階調値である画素のうち、同じ分割領域に位置する画素がある場合、同じ分割領域に位置する「４０２」の階調値である画素は、すべて同じ量子化値に揃えて割り当てられるのが望ましい。例えば、同じ分割領域に位置する「４０２」の階調値である画素は、すべて量子化値「１００」に揃えて割り当てられるのが望ましい。同じブロック領域に位置し、かつ、同一の輝度値である画素は、同一の被写体、即ち同一の色を示す場合が多いため、同じ量子化値で出力されることが望ましい場合が多い。したがって、同じブロック領域に位置し、かつ、同一の輝度値である画素は、同じ量子化値で出力されるように、同じ量子化値に割り当てられることによって、画質の向上を図ることができる。但し、割り当て処理は、上述の方法に限られない。割り当て処理は、別の方法によって各画素の位置を特定し、各画素の位置ごとに割り当てを行う処理でもよい。
【００７５】
ヒストグラムに基づいて量子化値を割り当てることによって、頻度の高い階調値付近には、多くの量子化値を割り当てることができる。
【００７６】
動作モードが上述した第１モードの場合、閾値テーブルは、各量子化値に割り当てられる画素の数が均等になるように設定される。したがって、第１モードの場合、画像処理装置１０は、閾値テーブルによって、ヒストグラムを平滑にすることができる。
【００７７】
動作モードが上述した第２モードの場合、閾値テーブルは、グラデーション領域に割り当てられる量子化値が多くなるように設定される。したがって、第２モードの場合、画像処理装置１０は、閾値テーブルによって、階調値を細かく量子化することができる。
【００７８】
ここで、第２モードの場合の閾値を小さくする範囲の設定について説明する。先ず、グラデーション領域の範囲は１０ビット階調値の値で求まる。この範囲が、例えば「４００」〜「４１９」だったとすると、一旦、第１モードである仮定して、図９の手順により、この範囲が該当する８ビット階調値の範囲を求める。これが、例えば、「１１０」〜「１１５」に該当しており、グラデーション領域なのでこの範囲の閾値を半分（２５６／２）にするならば、減らした分だけ上側、下側にグラデーション領域となる８ビット階調値の範囲を拡げる必要がある。すなわち、上、下側にそれぞれ、３量子化値（閾値が２５６／２）をグラデーション領域に拡張し、結局８ビットのグラデーション領域は「１０７」〜「１１８」となる。また、均等から減らした画素（２５６／２ｘ１２）の分だけ残りの「０」〜「１０６」及び「１１９」〜「２５５」の量子化値で均等に多く負担する（閾値が大きくなる）。
【００７９】
なお、本実施形態は、図３で示された全体処理に限られない。本実施形態は、各処理が並行、又は分散して処理されてもよい。例えばステップＳ０２０２の処理、及びステップＳ０２０３の処理は、並行して処理されてもよい。
【００８０】
＜量子化テーブルの一例＞
図１０は、本発明の一実施形態に係る量子化テーブルの一例を説明する図である。
【００８１】
量子化テーブル４は、図９で説明した割り当てが行われる場合に生成される量子化テーブルデータの一例である。すなわち、量子化テーブルとは、８ビット量子化値への割り当て、及び同一輝度値における同一量子化値への揃えが完了後の、図９における横軸の１０ビット階調値毎の縦軸に割り当てられた８ビット階調値の対応表である。
【００８２】
量子化テーブル４で図示するように、図９（Ｂ）で階調値「４００」に量子化値「１００」が割り当てられる場合、量子化テーブル４は、階調値「４００」に対する量子化値に「１００」が設定される。同様に、階調値「４０１」乃至「４０５」に対して、図９で説明した割り当てによって決定した量子化値がそれぞれ設定される。
【００８３】
図３に戻り、次に、ステップＳ０２０６では、画像処理装置１０の量子化手段１０Ｆ６は、生成した量子化テーブルを用いて画像データを量子化する処理を行う。次に、ステップＳ０２０７では、画像処理装置１０の量子化手段１０Ｆ６は、処理後画像データ及び量子化テーブルデータを図１の送信装置１１に出力する処理を行う。
【００８４】
図１の送信装置１１は、量子化テーブル４に設定される量子化値を、量子化テーブルデータとして受信側に送信する。量子化テーブルデータの各量子化値は、量子化テーブル４の一行に相当するデータが１０ビットの階調値にそれぞれ対応する。１０ビットの場合、階調値が１０２４段階である。１０ビットの階調値、かつ、ＲＧＢの３色カラーである場合、量子化テーブルデータは、１０２４段階×３色＝３０７２個の量子化値を示すデータである。
【００８５】
受信側では、受信装置は、受信する画像データに含まれる画素を、量子化テーブルデータに基づいて階調復元の処理を行う。具体的には、図１０の場合、受信側では、受信装置は、例えば画像データに含まれる階調値「１００」の８ビット画素を、「４００」の１０ビット画素にする処理を行う。例えば８ビット階調値が複数の１０ビットに対応しているとき、１０ビット階調値の中央値を選択する。
【００８６】
＜実行プログラム＞
ここで、上述した画像処理装置１０は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の揮発性の記憶媒体、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等の不揮発性の記憶媒体、マウスやキーボード、ポインティングデバイス等の入力装置、画像やデータを表示する表示部、並びに外部と通信するためのインタフェースを備えたコンピュータによって構成することができる。
【００８７】
したがって、画像処理装置１０が有する各機能は、これらの機能を記述したプログラムをＣＰＵに実行させることによりそれぞれ実現可能となる。また、これらのプログラムは、磁気ディスク（フロッピィーディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）、半導体メモリ等の記録媒体に格納して頒布することもできる。
【００８８】
つまり、上述した各構成における処理をコンピュータに実行させるための実行プログラムを生成し、例えば汎用のＰＣやサーバ等にそのプログラムをインストールすることにより、本実施形態における画像処理を実現することができる。
【００８９】
上述したように、本実施形態によれば、量子化の際の計算コストを少なくすることができる。また、本実施形態によれば、出現頻度の高い階調値付近に多くの量子化値を割りつけ、かつヒストグラム平滑化も考慮したフィードフォワード処理による量子化テーブルを生成することができる。
【００９０】
以上、本発明の好ましい実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。
【符号の説明】
【００９１】
１  画像処理システム
１０  画像処理装置
１０Ｆ１  入力手段
１０Ｆ２  ヒストグラム生成手段
１０Ｆ３  スペクトル解析手段
１０Ｆ４  閾値テーブル入力手段
１０Ｆ５  量子化テーブル生成手段
１０Ｆ６  量子化手段
１１  送信装置
２  画像
２１  ブロック領域
２１Ｇ  グラデーション領域
３  閾値テーブル
４  量子化テーブル
【図１】
0006514481.tif 000002
【図２】
0006514481.tif 000003
【図３】
0006514481.tif 000004
【図４】
0006514481.tif 000005
【図５】
0006514481.tif 000006
【図６】
0006514481.tif 000007
【図７】
0006514481.tif 000008
【図８】
0006514481.tif 000009
【図９】
0006514481.tif 000010
【図１０】
0006514481.tif 000011