(57)【特許請求の範囲】
【請求項１】
画像の各画素値をその値の大きさに応じて分類する複数のクラスの中から、画素値の出現頻度がゼロであるゼロクラスを検出するゼロクラス検出部と、
前記ゼロクラス検出部により検出されたゼロクラスの範囲を更新することにより、前記クラスの総数を更新せずに、前記ゼロクラスを、前記画素値の出現頻度が１以上の非ゼロクラスに変換する非ゼロクラス化部と
を備える画像処理装置。
【請求項２】
前記非ゼロクラス化部は、
前記ゼロクラス検出部により検出されたゼロクラスを、画素値の出現頻度が統合したクラスの数以上となるまで、隣接するクラスに統合するクラス統合部と、
前記クラス統合部により統合されたクラスを、いずれのクラスも非ゼロクラスとなるように、統合前の数のクラスに分割するクラス分割部と
を備える請求項１に記載の画像処理装置。
【請求項３】
前記クラスの境界を決定するクラス境界決定部と、
前記クラス境界決定部により決定された境界で区切られる各クラスに、各画素値を、その値に応じて割り当てるクラス構成部と、
前記クラス境界決定部により決定された境界で区切られる各クラスにおいて、前記クラス構成部により割り当てられた画素値の重心を算出し、前記重心を代表値として決定する代表値決定部と
をさらに備える請求項１に記載の画像処理装置。
【請求項４】
前記クラス境界決定部は、前記画素値の最大値および最小値の間を、前記画素値のビット深度よりも少ない数のクラスに分割するように、前記境界を決定する
請求項３に記載の画像処理装置。
【請求項５】
前記代表値決定部は、前記非ゼロクラス化部によりゼロクラスが非ゼロクラスに変換された後、各クラスにおいて前記重心を算出し、前記代表値とする
請求項３に記載の画像処理装置。
【請求項６】
前記クラス境界決定部は、隣り合うクラスの、前記代表値決定部により決定された代表値同士の中間値を前記クラスの境界として決定する
請求項５に記載の画像処理装置。
【請求項７】
前記代表値決定部により決定された各クラスの代表値と、各クラスのインデックスとを対応付けるテーブルを生成するテーブル生成部をさらに備える
請求項３に記載の画像処理装置。
【請求項８】
前記画像の各画素値を、前記画素値に対応するクラスの、前記代表値決定部により決定された代表値に変換する変換部と、
前記テーブル生成部により生成された前記テーブルを用いて、前記変換部により各画素値が変換された前記代表値を、前記代表値のクラスの識別情報であるインデックスに変換するインデックス画像生成部と
をさらに備える請求項７に記載の画像処理装置。
【請求項９】
前記テーブル生成部により生成された前記テーブルを用いて、前記インデックスを前記代表値に変換する逆量子化部をさらに備える
請求項７に記載の画像処理装置。
【請求項１０】
前記クラス境界決定部は、複数の画像の全画素値の最大値と最小値との間を複数のクラスに分割するように前記境界を決定し、
前記クラス構成部は、前記クラス境界決定部により決定された境界で区切られる各クラスに、前記複数の画像の全画素値を、その値に応じて割り当て、
前記テーブル生成部は、前記代表値決定部により決定された各クラスの代表値と、各クラスのインデックスとを対応付ける、前記複数の画像に共通のテーブルを生成する
請求項７に記載の画像処理装置。
【請求項１１】
前記画像を複数のブロックに分割する画像ブロック分割部をさらに備え、
前記クラス境界決定部、前記クラス構成部、前記代表値決定部、前記ゼロクラス検出部、および前記非ゼロクラス化部は、それぞれ、前記画像ブロック分割部により前記画像が分割された前記ブロック毎に互いに独立に処理を行う
請求項３に記載の画像処理装置。
【請求項１２】
前記代表値決定部により決定された各クラスの代表値と、各クラスのインデックスとを対応付けるテーブルを生成するテーブル生成部と、
前記テーブル生成部により生成された前記テーブルを用いて、前記インデックスを前記代表値に変換する処理を、前記ブロック毎に互いに独立に行う逆量子化部と
をさらに備える請求項１１に記載の画像処理装置。
【請求項１３】
画像処理装置の画像処理方法であって、
ゼロクラス検出部が、画像の各画素値をその値の大きさに応じて分類する複数のクラスの中から、画素値の出現頻度がゼロであるゼロクラスを検出し、
非ゼロクラス化部が、検出されたゼロクラスの範囲を更新することにより、前記クラスの総数を更新せずに、前記ゼロクラスを、前記画素値の出現頻度が１以上の非ゼロクラスに変換する
画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、画像処理装置および方法に関し、特に、量子化誤差を抑制することができるようにした画像処理装置および方法に関する。
【背景技術】
【０００２】
従来、画像処理等において、高ビット深度から低ビット深度へのビット変換技術が、一般に量子化技術として存在する。つまり、量子化処理においては、Nビット画像がLビット（N＞L）に変換される。これに対して、低ビット深度から高ビット深度への逆変換処理は、逆量子化に相当する。画像の量子化法としては、線形量子化法が一般に用いられているが、計算が軽量であるものの、量子化誤差が比較的大きい。そのため、高ビット深度の画像を量子化により低ビット深度の画像に変換し、さらに、その低ビット深度の画像を逆量子化により高ビット深度の画像に変換する（元のビット深度に戻す）場合、復元された高ビット深度の画像（量子化・逆量子化処理後の画像）は、オリジナル画像（量子化・逆量子化前の画像）に比べて、大きく劣化する恐れがあった。
【０００３】
これに対して、Lloyd-Max量子化法が提案された（例えば、非特許文献１参照）。このLloyd-Max量子化法は、一般的に画像に付与される歪が小さい量子化法として知られている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Lloyd, "Least squares quantization in PCM", IEEE Transactions, Information Theory,vol.IT-28, no.2, pp.129-137, Mar.1982
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、このLloyd-Max量子化法では、高ダイナミックレンジ画像や撮像素子から直接取得したRAW画像で見られる「疎性」を考慮していない。つまり、ヒストグラムに偏りを持った疎の画像に対して、Lloyd-Max量子化法では最適解を得ることができない恐れがあった。
【０００６】
本開示は、このような状況に鑑みてなされたものであり、ヒストグラムに偏りを持った疎の画像であっても、量子化誤差を抑制することができるようにすることを目的とする。
【課題を解決するための手段】
【０００７】
本開示の一側面は、画像の各画素値をその値の大きさに応じて分類する複数のクラスの中から、画素値の出現頻度がゼロであるゼロクラスを検出するゼロクラス検出部と、前記ゼロクラス検出部により検出されたゼロクラスの範囲を更新することにより、前記クラスの総数を更新せずに、前記ゼロクラスを、前記画素値の出現頻度が１以上の非ゼロクラスに変換する非ゼロクラス化部とを備える画像処理装置である。
【０００８】
前記非ゼロクラス化部は、前記ゼロクラス検出部により検出されたゼロクラスを、画素値の出現頻度が統合したクラスの数以上となるまで、隣接するクラスに統合するクラス統合部と、前記クラス統合部により統合されたクラスを、いずれのクラスも非ゼロクラスとなるように、統合前の数のクラスに分割するクラス分割部とを備えることができる。
【０００９】
前記クラスの境界を決定するクラス境界決定部と、前記クラス境界決定部により決定された境界で区切られる各クラスに、各画素値を、その値に応じて割り当てるクラス構成部と、前記クラス境界決定部により決定された境界で区切られる各クラスにおいて、前記クラス構成部により割り当てられた画素値の重心を算出し、前記重心を代表値として決定する代表値決定部とをさらに備えることができる。
【００１０】
前記クラス境界決定部は、前記画素値の最大値および最小値の間を、前記画素値のビット深度よりも少ない数のクラスに分割するように、前記境界を決定することができる。
【００１１】
前記代表値決定部は、前記非ゼロクラス化部によりゼロクラスが非ゼロクラスに変換された後、各クラスにおいて前記重心を算出し、前記代表値とすることができる。
【００１２】
前記クラス境界決定部は、隣り合うクラスの、前記代表値決定部により決定された代表値同士の中間値を前記クラスの境界として決定することができる。
【００１３】
前記代表値決定部により決定された各クラスの代表値と、各クラスのインデックスとを対応付けるテーブルを生成するテーブル生成部をさらに備えることができる。
【００１４】
前記画像の各画素値を、前記画素値に対応するクラスの、前記代表値決定部により決定された代表値に変換する変換部と、前記テーブル生成部により生成された前記テーブルを用いて、前記変換部により各画素値が変換された前記代表値を、前記代表値のクラスの識別情報であるインデックスに変換するインデックス画像生成部とをさらに備えることができる。
【００１５】
前記テーブル生成部により生成された前記テーブルを用いて、前記インデックスを前記代表値に変換する逆量子化部をさらに備えることができる。
【００１６】
前記クラス境界決定部は、複数の画像の全画素値の最大値と最小値との間を複数のクラスに分割するように前記境界を決定し、前記クラス構成部は、前記クラス境界決定部により決定された境界で区切られる各クラスに、前記複数の画像の全画素値を、その値に応じて割り当て、前記テーブル生成部は、前記代表値決定部により決定された各クラスの代表値と、各クラスのインデックスとを対応付ける、前記複数の画像に共通のテーブルを生成することができる。
【００１７】
前記画像を複数のブロックに分割する画像ブロック分割部をさらに備え、前記クラス境界決定部、前記クラス構成部、前記代表値決定部、前記ゼロクラス検出部、および前記非ゼロクラス化部は、それぞれ、前記画像ブロック分割部により前記画像が分割された前記ブロック毎に互いに独立に処理を行うことができる。
【００１８】
前記代表値決定部により決定された各クラスの代表値と、各クラスのインデックスとを対応付けるテーブルを生成するテーブル生成部と、前記テーブル生成部により生成された前記テーブルを用いて、前記インデックスを前記代表値に変換する処理を、前記ブロック毎に互いに独立に行う逆量子化部とをさらに備えることができる。
【００１９】
本開示の一側面は、また、画像処理装置の画像処理方法であって、ゼロクラス検出部が、画像の各画素値をその値の大きさに応じて分類する複数のクラスの中から、画素値の出現頻度がゼロであるゼロクラスを検出し、非ゼロクラス化部が、検出されたゼロクラスの範囲を更新することにより、前記クラスの総数を更新せずに、前記ゼロクラスを、前記画素値の出現頻度が１以上の非ゼロクラスに変換する画像処理方法である。
【００２０】
本開示の一側面においては、画像の各画素値をその値の大きさに応じて分類する複数のクラスの中から、画素値の出現頻度がゼロであるゼロクラスが検出され、検出されたゼロクラスの範囲を更新することにより、クラスの総数を更新せずに、ゼロクラスが、画素値の出現頻度が１以上の非ゼロクラスに変換される。
【発明の効果】
【００２１】
本開示によれば、画像を処理することができる。特に、量子化誤差を抑制することができる。
【図面の簡単な説明】
【００２２】
【図１】Lloyd-Max量子化法の量子化を行う画像処理装置の主な構成例を示すブロック図である。
【図２】Lloyd-Max量子化法の量子化処理の流れの例を説明するフローチャートである。
【図３】量子化代表値とクラスの境界値の関係の例を説明する図である。
【図４】量子化を行う画像処理装置の主な構成例を示すブロック図である。
【図５】ゼロクラスの非ゼロクラス化の例を説明する図である。
【図６】収束後の量子化代表値とクラスの境界値の関係の例を説明する図である。
【図７】テーブルの例を説明する図である。
【図８】画素値のインデックス化の例を説明する図である。
【図９】量子化処理の流れの例を説明するフローチャートである。
【図１０】量子化を行う画像処理装置の他の構成例を示すブロック図である。
【図１１】量子化処理の流れの、他の例を説明するフローチャートである。
【図１２】逆量子化を行う画像処理装置の主な構成例を示すブロック図である。
【図１３】逆量子化の流れの例を説明する図である。
【図１４】逆量子化処理の流れの例を説明するフローチャートである。
【図１５】逆量子化を行う画像処理装置の他の構成例を示すブロック図である。
【図１６】逆量子化処理の流れの、他の例を説明するフローチャートである。
【図１７】１２ビット深度の医用画像の例を示す図である。
【図１８】量子化・逆量子化後の画質の例を示す図である。
【図１９】量子化・逆量子化後の画質の、他の例を示す図である。
【図２０】量子化・逆量子化後の画質の、さらに他の例を示す図である。
【図２１】量子化・逆量子化後の画質の、さらに他の例を示す図である。
【図２２】量子化・逆量子化用のテーブルを生成する画像処理装置の主な構成例を示すブロック図である。
【図２３】量子化処理の流れの例を説明するフローチャートである。
【図２４】量子化・逆量子化を行う画像処理装置の主な構成例を示すブロック図である。
【図２５】パーソナルコンピュータの主な構成例を示すブロック図である。
【発明を実施するための形態】
【００２３】
以下、発明を実施するための形態（以下実施の形態とする）について説明する。なお、説明は以下の順序で行う。
１．第１の実施の形態（Lloyd-Max法）
２．第２の実施の形態（量子化を行う画像処理装置）
３．第３の実施の形態（ブロック毎に量子化を行う画像処理装置）
４．第４の実施の形態（逆量子化を行う画像処理装置）
５．第５の実施の形態（ブロック毎に逆量子化を行う画像処理装置）
６．第６の実施の形態（複数フレーム対応のテーブルを生成する画像処理装置）
７．第７の実施の形態（パーソナルコンピュータ）
【００２４】
＜１．第１の実施の形態＞
［Lloyd-Max法］
最初に、Lloyd-Max法（ロイドマックス法）について説明する。ビット深度がNビットの画像（Nビット画像）P(x,y)の各画素値をｆ、その確率密度関数をp(f)とする。このとき、以下の式（１）および式（２）が成立する。但し各パラメータは以下の通りである。
【００２５】
【数１】
0005757446.tif 000002
・・・（１）
【数２】
0005757446.tif 000003
・・・（２）
【００２６】
ただし、各パラメータは、以下のとおりである。
aL：画像中の画素最小値
aU：画像中の画素最大値
d：量子化の区間境界値
r：量子化代表値
【００２７】
画像P(x,y)を量子化・逆量子化した結果、fがf'になったとすると、その際の２乗誤差は、以下の式（３）のように表すことができる。
【００２８】
【数３】
0005757446.tif 000004
・・・（３）
【００２９】
Lloyd-Max法の量子化では、Nビット画像をLビット画像に量子化するに当たり、（aU-aL）の値域を２L個のクラスに分割する。この区間境界（クラス境界）をdn（n＝0,1,2,…,2L）とし、各クラスの代表値、即ち逆量子化後の画素値をrn（n＝0,1,2,…,2L-1）とすると、dnは、以下の式（４）のように表すことができる。
【００３０】
【数４】
0005757446.tif 000005
・・・（４）
【００３１】
この式（４）を用いると、式（３）は、以下の式（５）の様に表すことができる。
【００３２】
【数５】
0005757446.tif 000006
・・・（５）
【００３３】
Lloyd-Max量子化法は、この式（５）のεを最小化することを目的とする。したがって、式（５）はdn及びrnを変数とするため、εを最小にするすべてのkにおいて、以下の式（６）を満たす各クラスの区間境界dkおよび代表値rkを求めればよい。
【００３４】
【数６】
0005757446.tif 000007
・・・（６）
【００３５】
まずdkについて解くと、以下の式（７）が成立する。
【００３６】
【数７】
0005757446.tif 000008
・・・（７）
【００３７】
すなわち、以下の式（８）が成立する。
【００３８】
【数８】
0005757446.tif 000009
・・・（８）
【００３９】
よって、以下の式（９）の関係を導くことができる。
【００４０】
【数９】
0005757446.tif 000010
・・・（９）
【００４１】
これは、区間境界が２つの補正された代表値の平均であることを意味する。
【００４２】
次に、rkについて解くと、以下の式（１０）が成立する。
【００４３】
【数１０】
0005757446.tif 000011
・・・（１０）
【００４４】
この解は、以下の式（１１）のように表すことができる。
【００４５】
【数１１】
0005757446.tif 000012
・・・（１１）
【００４６】
これは、代表値が各クラスの重心になることを意味する。
【００４７】
［Lloyd-Max法で量子化を行う画像処理装置］
図１は、画像処理装置の主な構成例を示すブロック図である。図１に示される画像処理装置１０は、画像の各画素値のビット深度をNビットからLビット（N>L）に変換するビット深度変換処理（すなわち量子化処理）を、上述したようなLloyd-Max法を用いて行う。
【００４８】
図１に示されるように画像処理装置１０は、ヒストグラム生成部１１、クラス境界決定部１２、クラス構成部１３、量子化代表値決定部１４、テーブル生成部１５、およびインデックス画像生成部１６を有する。
【００４９】
ヒストグラム生成部１１は、入力画像（矢印２１）内の全ての画素値のヒストグラムを生成し、画素値の最大値と最小値を求め、それらをクラス境界決定部１２に供給する（矢印２２）。
【００５０】
クラス境界決定部１２は、供給されたヒストグラムの最大値と最小値の間を2L個のクラスに等間隔に分割するクラス境界を決定し、ヒストグラムとそのクラス境界の情報をクラス構成部１３に供給する（矢印２３）。
【００５１】
クラス構成部１３は、入力画像内の全ての画素値を、その値に対応するクラスに振り分ける。クラス構成部１３は、ヒストグラム、クラス境界に関する情報、および各画素値に割り当てたクラスの情報等を量子化代表値決定部１４に供給する（矢印２４）。
【００５２】
量子化代表値決定部１４は、クラス毎に画素値の重心riを求め、その重心riをそのクラスの代表値とする。量子化代表値決定部１４は、いずれかのクラスで代表値が更新される場合、ヒストグラム、クラス境界に関する情報、および各画素値に割り当てたクラスの情報、各クラスの代表値に関する情報等をクラス境界決定部１２に戻し（矢印２５）、クラス境界を更新させる。
【００５３】
クラス境界決定部１２は、隣接する２つの代表値の中央値を新たなクラス境界に決定する。クラス境界決定部１２は、全ての隣接する２つの代表値の組み合わせについて、つまり、隣り合う代表値と代表値との間の全てに１つずつクラス境界を決定する。クラス構成部１３は、更新されたクラスに対して、入力画像内の全ての画素値の振り分けを行う。量子化代表値決定部１４は、更新されたクラスについて、上述したように代表値（重心ri）を決定する。
【００５４】
このように、クラス境界の決定、各画素値のクラス分け、および各クラスの代表値の決定を繰り返し、代表値が更新されなくなると、量子化代表値決定部１４は、決定した各クラスの代表値をテーブル生成部１５に供給する（矢印２６）。
【００５５】
テーブル生成部１５は、各クラスの代表値にインデックス（各クラスの識別番号。以下において、クラス番号とも称する）を割り当てるテーブルを生成し、そのテーブルをインデックス画像生成部１６に供給するとともに、画像処理装置１０の外部に出力する（矢印２７）。
【００５６】
また、量子化代表値決定部１４は、入力画像内の全ての画素値を、それぞれに対応する代表値に変換する（すなわち、入力画像を量子化する）。量子化代表値決定部１４は、その代表値（量子化された画素値）をインデックス画像生成部１６に供給する（矢印２８）。
【００５７】
インデックス画像生成部１６は、テーブル生成部１５から供給されるテーブルを用いて、量子化代表値決定部１４から供給される量子化された各画素値（すなわち各クラスの代表値）をインデックス（クラス番号）に変換し、画像処理装置１０の外部に出力する（矢印２９）。つまり、インデックス画像生成部１６は、各画素について、量子化された画素値（代表値）をインデックスに変換することにより、量子化された画像を、各画素値がインデックスによって表されるインデックス画像に変換する。
【００５８】
［Lloyd-Max法の量子化処理の流れ］
図２のフローチャートを参照して、この画像処理装置１０により実行されるLloyd-Max法の量子化処理の流れの例を説明する。
【００５９】
量子化処理が開始されると、ヒストグラム生成部１１は、ステップＳ１１において、Nビットの入力画像中のヒストグラムを抽出する。また、ヒストグラム生成部１１は、ステップＳ１２において、ヒストグラムから最小値と最大値とを求める。
【００６０】
ステップＳ１３において、クラス境界決定部１２は、ヒストグラムの最小値と最大値との間を2L個のクラスに等間隔に分割する。ステップＳ１４において、クラス構成部１３は、入力画像の全ての画素値を、その値に対応するクラスに振り分ける。ステップＳ１５において、量子化代表値決定部１４は、各クラスの重心を求め、その重心をそのクラスの代表値とする。
【００６１】
ステップＳ１６において、量子化代表値決定部１４は、ステップＳ１５の処理により、各クラスの代表値が更新されるか否かを判定する。少なくともいずれかの代表値が更新されたと判定した場合、量子化代表値決定部１４は、処理をステップＳ１７に進める。
【００６２】
ステップＳ１７において、クラス境界決定部１２は、隣接する２つの代表値の中間値を新たなクラスの区間境界に決定する。つまり、クラス境界決定部１２は、更新された代表値に合わせるように、区間境界の更新を行う。ステップＳ１８において、クラス構成部１３は、入力画像中の全ての画素値を、その値に対応する更新後のクラスに振り分ける。ステップＳ１８の処理を終了すると、クラス構成部１３は、処理をステップＳ１５に戻し、それ以降の処理を繰り返し実行させる。
【００６３】
つまり、ステップＳ１６において、いずれの代表値も更新されていないと判定されるまで、ステップＳ１５乃至ステップＳ１８が繰り返し実行される。ステップＳ１６において、いずれの代表値も更新されていないと判定されると、量子化代表値決定部１４は、処理をステップＳ１９に進める。
【００６４】
ステップＳ１９において、テーブル生成部１５は、各クラスの代表値とインデックス（クラス番号）とを対応付けるテーブルを生成する。ステップＳ２０において、量子化代表値決定部１４は、入力画像の各画素値を、それぞれのクラスの代表値に変換する（量子化する）。インデックス画像生成部１６は、ステップＳ１９において生成されたテーブルを用いて、量子化された画素値を、インデックス（クラス番号）に変換する。
【００６５】
ステップＳ２０の処理が終了すると、インデックス画像生成部１６は、量子化処理を終了する。
【００６６】
［クラス］
図３に、Lloyd-Max法により生成されたクラスの例を示す。Lloyd-Max法の場合、図３に示されるように、入力画像中の画素最大値aUと画素最小値aLとの間に、2L-1個の区間境界dが等間隔に設定される。つまり、2L個の区間（クラス）が生成される。その区間（クラス）毎に、画素値の重心が算出され、その重心がそのクラスの量子化代表値rとされる。つまり、2L個の量子化代表値rが生成される。
【００６７】
［Lloyd-Max法の改良］
ところで、画像は一般にヒストグラムの頻度に偏りを持っているので、Nビット画像が2N個の異なる画素値を持っているとは限らない。むしろ全部持っている方が稀である。従って、画像の多くは、疎な（スパースな）ヒストグラムを持つ。特に、高ダイナミックレンジ画像やRAW画像の場合、ヒストグラムにこのような疎性が強く現れ、画素値の種類数Ne＜2Nとなる。
【００６８】
このような疎なヒストグラムを持つ画像に対してLloyd-Max量子化を行うと、クラス分けの際にヒストグラムを等間隔に区切るために、クラス内の画素値がすべて出現頻度０のクラスが生成されることである。そのため、式（１１）の分母の値が０になって（ゼロ割）、解を持たなくなる。
【００６９】
このような場合、汎用数学ソフトMATLABでは、隣接する２つの代表値を同値にすることで、代表値の更新を行う。これにより、出現頻度０のクラスは、その隣のクラスと併合される。最終的に、出現頻度０のクラスが無くなるまでこのような更新が繰り返される。
【００７０】
しかしながら、この方法の場合、隣り合うクラス同士が合体され、１つのクラスにされるので、結果としてクラス数が低減される。したがって、量子化誤差が増大し、解の最適性を補償できなくなる恐れがあった。
【００７１】
＜２．第２の実施の形態＞
［量子化を行う画像処理装置］
そこで、本実施の形態においては、クラス数を低減させないように、非ゼロクラス化を行う量子化処理について説明する。
【００７２】
図４は、入力画像に対して量子化を行う画像処理装置の主な構成例を示すブロック図である。図４に示される画像処理装置１００は、図１の画像処理装置１０と同様に、画像の各画素値のビット深度をNビットからLビット（N>L）に変換するビット深度変換処理（すなわち量子化処理）を行う。ただし、画像処理装置１００は、上述したようなLloyd-Max法ではなく、以下に説明するように量子化処理を行う。
【００７３】
画像処理装置１００は、ヒストグラム生成部１０１、クラス境界決定部１０２、クラス構成部１０３、ゼロクラス検出部１０４、非ゼロクラス化部１０５、量子化代表値決定部１０６、テーブル生成部１０７、およびインデックス画像生成部１０８を有する。
【００７４】
また、非ゼロクラス化部１０５は、クラス統合部１１１およびクラス分割部１１２を有する。
【００７５】
ヒストグラム生成部１０１は、図１のヒストグラム生成部１１と同様の処理部であり、入力画像（矢印１２１）内の全ての画素値のヒストグラムを生成し、画素値の最大値と最小値を求め、それらをクラス境界決定部１０２に供給する（矢印１２２）。
【００７６】
クラス境界決定部１０２は、図１のクラス境界決定部１２と同様の処理部であり、ヒストグラム生成部１０１から供給されたヒストグラムの最大値と最小値の間を2L個のクラスに等間隔に分割するクラス境界を決定し、ヒストグラムとそのクラス境界の情報をクラス構成部１０３に供給する（矢印１２３）。
【００７７】
クラス構成部１０３は、図１のクラス構成部１３と同様の処理部であり、入力画像内の全ての画素値を、その値に対応するクラスに振り分ける。ただし、クラス構成部１０３は、ヒストグラム、クラス境界に関する情報、および各画素値に割り当てたクラスの情報等を、量子化代表値決定部１０６若しくはゼロクラス検出部１０４に供給する（矢印１２４若しくは矢印１３０）。
【００７８】
より具体的には、クラス構成部１０３は、最初、各種情報を、ゼロクラス検出部１０４に供給する（矢印１２４）。これは、後述するように、ゼロクラス検出部１０４がゼロクラスを検出し、ゼロクラスが存在する場合は、非ゼロクラス化部１０５がゼロクラスを統合と分割により非ゼロクラス化するためである。
【００７９】
そして、ゼロクラス検出部１０４や非ゼロクラス化部１０５の処理により、ゼロクラスが存在しないことが確実になると、クラス構成部１０３は、各種情報を量子化代表値決定部１０６に供給する（矢印１３０）。
【００８０】
ゼロクラス検出部１０４は、クラス構成部１０３から供給される情報に基づいて、各クラスに画素値の出現頻度を確認し、画素値の出現頻度が０のクラス（ゼロクラス）を検出する。つまり、ゼロクラス検出部１０４は、画像の各画素値をその値の大きさに応じて分類する複数のクラスの中から、画素値の出現頻度がゼロであるゼロクラスを検出する。
【００８１】
ゼロクラスが検出されなかった場合、ゼロクラス検出部１０４は、クラス構成部１０３から供給される各種情報と、その検出結果を量子化代表値決定部１０６に供給する（矢印１２５）。また、ゼロクラスが検出された場合、ゼロクラス検出部１０４は、クラス構成部１０３から供給される各種情報と、その検出結果を非ゼロクラス化部１０５のクラス統合部１１１に供給する（矢印１２６）。
【００８２】
非ゼロクラス化部１０５は、ゼロクラス検出部１０４により検出されたゼロクラスの非ゼロクラス化を行う。つまり、非ゼロクラス化部１０５は、ゼロクラスの区間境界の位置を更新することにより、クラスの総数を更新せずに、画素値の出現頻度が０とならないようにする（区間境界を、画素値を１つ以上含むような位置に移動させる）。
【００８３】
非ゼロクラス化部１０５のクラス統合部１１１は、ゼロクラス検出部１０４から供給される情報に基づいて、ゼロクラス検出部１０４により検出されたゼロクラスを、その隣の、画素値の出現頻度が０でない非ゼロクラスに統合する。クラス統合部１１１は、ゼロクラス検出部１０４から供給される情報とともに、その統合結果を示す情報をクラス分割部１１２に供給する（矢印１２７）。
【００８４】
クラス分割部１１２は、クラス統合部１１１から供給された情報に基づいて、クラス統合部１１１により統合されたクラスを、いずれのクラスも非ゼロクラスとなるようにクラス境界を定め、クラスを分割する。
【００８５】
例えば、クラス統合部１１１により、あるゼロクラスがその隣の非ゼロクラスに統合され、１つのクラスとされた場合、クラス分割部１１２は、その統合後のクラスを、２つに分割する。このとき、クラス分割部１１２は、分割後の全てのクラスに画素値が出現するような位置でクラス分割を行う。このようにすることにより、非ゼロクラス化が実現される。
【００８６】
例えば、図５Ａに示されるように、区間境界dx-1とdxの間には画素値が存在している（すなわち非ゼロクラスである）が、区間境界dxとdx+1との間には画素値が存在していない（すなわちゼロクラスである）とする。この場合、クラス統合部１１１は、頻度ゼロの区間（すなわち、区間境界dxとdx+1との間）を、隣接する非ゼロの区間（すなわち、区間境界dx-1とdxの間）と統合する。そして、クラス分割部１１２は、その統合後の区間（区間境界dx-1とdx+1との間）の、区間境界dx-1とdxの間と、区間境界dxとdx+1との間の両方に、最低１個の画素サンプルが存在するような位置に、区間境界dxを定める。
【００８７】
図５Ｂに示される例の場合、区間境界dx-1とdx+1との間に３個の画素サンプルが存在しており、クラス分割部１１２は、区間境界dx-1とdxの間に画素サンプルが１個存在し、区間境界dxとdx+1との間に画素サンプルが２個存在するような位置に、区間境界dxを定めている。
【００８８】
このようなクラスの統合と分割により、ゼロクラスが非ゼロクラス化される。なお、ゼロクラス検出部１０４は、全てのゼロクラスを検出し、非ゼロクラス化部１０５は、各ゼロクラスを、上述したような方法で非ゼロクラス化する。
【００８９】
なお、クラス統合部１１１は、互いに隣接しているクラス同士（連続するクラス同士）であれば、３つ以上のクラスを統合することもできる。例えば、統合後のクラスにおいて、画素値の出現頻度が、統合したクラスの数より少ない場合、クラス分割部１１２は、分割後の全てのクラスを非ゼロクラスとするようにクラス分割を行うことができない（すなわち、非ゼロクラス化が実現されない）。そこで、クラス統合部１１１は、統合後のクラスにおいて、ゼロクラス検出部１０４により検出されたゼロクラスを、画素値の出現頻度が統合したクラスの数以上となるまで、隣接するクラスに統合する。
【００９０】
例えば、ゼロクラスに隣接するクラスにおいて画素値の出現頻度が「０」若しくは「１」の場合、ゼロクラスとそのクラスを統合しても、統合後のクラスの画素値の出現頻度は「０」若しくは「１」であり、統合したクラスの数「２」より少ない。このような場合、クラス統合部１１１は、その統合後のクラスを、さらに、そのクラスに隣接するクラスに統合する。その結果、統合後のクラスにおいて画素値の出現頻度が、統合したクラスの数「３」より少ない場合、さらに、同様のクラス統合が繰り返される。統合後のクラスにおいて画素値の出現頻度が、統合したクラスの数以上となった時点で、このようなクラス統合が終了される。クラス統合部１１１は、このような処理を各クラスについて行い、全てのクラスにおいて画素値の出現頻度が統合したクラスの数以上となるようにする。
【００９１】
このようにすることにより、例えば、ゼロクラスが複数連続する場合や、ゼロクラスの隣のクラスにおいて画素値の出現頻度が１の場合等においても、非ゼロクラス化を実現することができる。
【００９２】
クラス分割部１１２は、クラス統合部１１１から供給される情報とともに、その分割結果を示す情報を量子化代表値決定部１０６に供給する（矢印１２８）。
【００９３】
量子化代表値決定部１０６は、図１の量子化代表値決定部１４と同様の処理部であり、クラス毎に画素値の重心を求め、その重心をそのクラスの代表値に決定する。ただし、量子化代表値決定部１０６は、クラス構成部１０３、ゼロクラス検出部１０４、若しくは非ゼロクラス化部１０５（クラス分割部１１２）から供給される情報に基づいて、クラスの代表値に決定する。
【００９４】
図５Ｂの例の場合、量子化代表値決定部１０６は、区間境界dx-1とdxの間と、区間境界dxとdx+1との間とのそれぞれについて、量子化代表値rを決定する。図５Ｂの例の場合、区間境界dx-1とdxの間の画素サンプル数は１個であるので、図５Ｃに示されるように、その画素サンプルがその区間内の画素サンプルの重心となる。つまり、その唯一の画素サンプルが量子化代表値rとされる。また、図５Ｂの例の場合、区間境界dx-1とdxの間の画素サンプル数は２個であるので、図５Ｃに示されるように、その２個の画素サンプルの中央値がその区間内の画素サンプルの重心となる。つまり、その２個の画素サンプルの中央値が量子化代表値rとされる。
【００９５】
また、この処理により、各クラスの代表値の初期値に決定された場合、若しくは、少なくともいずれかの代表値が更新される場合、量子化代表値決定部１０６は、ヒストグラム、クラス境界に関する情報、および各画素値に割り当てたクラスの情報、各クラスの代表値に関する情報等をクラス境界決定部１０２に戻し（矢印１２９）、クラス境界を更新させる。
【００９６】
クラス境界決定部１０２は、量子化代表値決定部１０６から供給される情報に基づいて、隣接する２つの代表値の中央値を新たなクラス境界に決定する。クラス境界決定部１０２は、全ての隣接する２つの代表値の組み合わせについて、つまり、隣り合う代表値と代表値との間の全てに１つずつクラス境界を決定する。クラス構成部１０３は、このようにクラス境界決定部１０２により更新されたクラスに対して、入力画像内の全ての画素値の振り分けを行う。
【００９７】
なお、一度、非ゼロクラス化部１０５により各クラスが非ゼロクラス化された場合、若しくは、ゼロクラス検出部１０４によりゼロクラスが検出されなかった場合、区間境界をを更新しても、ゼロクラスは存在しないので、ゼロクラス検出部１０４によるゼロクラスの検出や、非ゼロクラス化部１０５による非ゼロクラス化は、省略することができる。
【００９８】
つまり、クラス構成部１０３は、このような、更新されたクラスについての処理の場合、上述した各種情報を量子化代表値決定部１０６に供給する（矢印１３０）。
【００９９】
量子化代表値決定部１０６は、クラス構成部１０３から更新されたクラスについて、上述したように代表値を決定する。代表値が更新されなくなると、量子化代表値決定部１０６は、決定した各クラスの代表値をテーブル生成部１０７に供給する（矢印１３１）。
【０１００】
以上のようなループ処理により代表値が収束した結果の例を図６に示す。例えばd0とd1との間には画素値が少ないために区間幅が広い、つまり区間が疎に分割される。これに対して、dxとdx+1との間には画素値が多いために区間幅が狭い、つまり区間が密に分割される。
【０１０１】
テーブル生成部１０７は、図１のテーブル生成部１５と同様の処理部であり、各クラスの代表値にインデックス（クラス番号）を割り当てるテーブルを生成し、そのテーブルをインデックス画像生成部１０８に供給するとともに、画像処理装置１００の外部に出力する（矢印１３２）。
【０１０２】
図７は、テーブル生成部１０７により生成されるテーブルの例を示す図である。図７に示されるように、テーブル生成部１０７は、各代表値にクラス番号（インデックス）を割り当てるテーブルを生成する。ここで、Neは、量子化後の画素値J(x,y)の全総数であり、図中の13，25，・・・・は実際の量子化後の画素値J(x,y)である。このように収束後の量子化画素値を順番に並べたテーブルを生成する。
【０１０３】
また、量子化代表値決定部１０６は、入力画像内の全ての画素値を、それぞれに対応するクラスの代表値に変換する（すなわち、入力画像を量子化する）。量子化代表値決定部１０６は、その代表値（量子化された画素値）をインデックス画像生成部１０８に供給する（矢印１３３）。
【０１０４】
インデックス画像生成部１０８は、図１のインデックス画像生成部１６と同様の処理部であり、テーブル生成部１０７から供給されるテーブルを用いて、量子化代表値決定部１０６から供給される量子化された各画素値（すなわち各クラスの代表値）をインデックス（クラス番号）に変換し、画像処理装置１００の外部に出力する（矢印１３４）。つまり、インデックス画像生成部１０８は、各画素について、量子化された画素値（代表値）をインデックスに変換することにより、量子化された画像を、各画素値がインデックスによって表されるインデックス画像に変換する。
【０１０５】
図８は、インデックス画像生成部１０８によるインデックス画像の生成の様子の例を説明する図である。図８の例において、インデックス画像生成部１０８は、図８の左側に示される量子化後の画素値J(x,y)を、テーブル上の、その画素値に対応するインデックス番号K(x,y)へ変換する。図８において明らかな様に、J(x,y)に比べてK(x,y)の絶対値は遥かに小さい。したがって、このように量子化後の画素値をインデックス化することにより、画像処理装置１００は、高い圧縮効果を期待することができる。
【０１０６】
以上のように、画像処理装置１００は、クラス数を低減させずに、全てのクラスの非ゼロクラス化を実現することができる。したがって、画像処理装置１００は、従来のLloyd-Max法の量子化では最小誤差を供することができなかった疎な画像（量子化区間内のクラスで画素が存在しないもの）に対しても、量子化誤差を十分に抑制することができ、最小誤差を与えることができる。
【０１０７】
なお、テーブル生成部１０７により生成されるテーブル、および、インデックス画像生成部１０８により生成されるインデックス画像の情報量は、量子化後の画像のデータ量に比べれば遥かに小さい。したがって、画像処理装置１００は、このインデックス画像をそのまま受信側に送出するようにしてもよいが、公知の任意の圧縮手段を用いて圧縮してから送出するようにしても良い。
【０１０８】
［量子化処理の流れ］
図９のフローチャートを参照して、画像処理装置１００による量子化処理の流れの例を説明する。
【０１０９】
量子化処理が開始されると、ヒストグラム生成部１０１は、ステップＳ１０１において、Nビットの入力画像中のヒストグラムを抽出する。また、ヒストグラム生成部１０１は、ステップＳ１０２において、ヒストグラムから最小値と最大値とを求める。
【０１１０】
ステップＳ１０３において、クラス境界決定部１０２は、ヒストグラムの最小値と最大値との間を2L個のクラスに等間隔に分割する。ステップＳ１０４において、クラス構成部１０３は、入力画像の全ての画素値を、その値に対応するクラスに振り分ける。
【０１１１】
ステップＳ１０５において、ゼロクラス検出部１０４は、生成されたクラスについて、画素値の出現頻度がゼロのゼロクラスが存在するか否かを判定する。ステップＳ１０４の処理により画素値が振り分けられなかったクラス（すなわち、ゼロクラス）が存在すると判定した場合、ゼロクラス検出部１０４は、処理をステップＳ１０６に進める。
【０１１２】
ステップＳ１０６において、非ゼロクラス化部１０５のクラス統合部１１１は、非ゼロクラス化できるようにゼロクラスを非ゼロクラスと統合する。より具体的には、クラス統合部１１１は、必要に応じて隣り合うクラス同士を統合し、統合後の各クラスにおいて、そのクラスに属する画素値の数が、そのクラスを生成するために統合したクラス数以上となるように、連続するクラス同士を統合する。
【０１１３】
ステップＳ１０７において、非ゼロクラス化部１０５のクラス分割部１１２は、全て非ゼロクラスになるように、統合されたクラスを分割する。つまり、クラス分割部１１２は、クラス統合部１１１において統合されたクラスを統合前のクラス数となるように分割する。このとき、クラス分割部１１２は、全てのクラスに画素値が属するように区間境界の位置を調整して分割する。
【０１１４】
このような処理により、非ゼロクラス化部１０５は、クラス数を変化させずに、全てのクラスを非ゼロクラス化することができる。
【０１１５】
ステップＳ１０７の処理が終了すると、クラス分割部１１２は、処理をステップＳ１０８に進める。また、ステップＳ１０５において、ゼロクラスが存在しないと判定した場合、ゼロクラス検出部１０４は、処理をステップＳ１０８に進める。
【０１１６】
ステップＳ１０８において、量子化代表値決定部１０６は、各クラスの重心を求め、その重心をそのクラスの代表値とする。ステップＳ１０９において、量子化代表値決定部１０６は、ステップＳ１０８の処理により、各クラスの代表値が更新されるか否かを判定する。少なくともいずれかの代表値が更新されたと判定した場合、量子化代表値決定部１０６は、処理をステップＳ１１０に進める。
【０１１７】
ステップＳ１１０において、クラス境界決定部１０２は、隣接する２つの代表値の中央値を新たな区間境界に決定する。つまり、クラス境界決定部１０２は、更新された代表値に合わせるように、区間境界の更新を行う。ステップＳ１１１において、クラス構成部１０３は、入力画像中の全ての画素値を、その値に対応する更新後のクラスに振り分ける。ステップＳ１１１の処理を終了すると、クラス構成部１０３は、処理をステップＳ１０８に戻し、それ以降の処理を繰り返し実行させる。
【０１１８】
つまり、ステップＳ１０９において、いずれの代表値も更新されていないと判定されるまで、ステップＳ１０８乃至ステップＳ１１１が繰り返し実行される。ステップＳ１０９において、いずれの代表値も更新されていないと判定されると、量子化代表値決定部１０６は、処理をステップＳ１１２に進める。
【０１１９】
ステップＳ１１２において、テーブル生成部１０７は、各クラスの代表値とインデックス（クラス番号）とを対応付けるテーブルを生成する。ステップＳ１１３において、量子化代表値決定部１０６は、入力画像の各画素値を、それぞれのクラスの代表値に変換する（量子化する）。インデックス画像生成部１０８は、ステップＳ１１２において生成されたテーブルを用いて、量子化された画素値を、インデックス（クラス番号）に変換する。
【０１２０】
ステップＳ１１３の処理が終了すると、インデックス画像生成部１０８は、量子化処理を終了する。
【０１２１】
以上のように処理を行うことにより、画像処理装置１００は、疎な画像に対しても、クラス数を低減させずに全てのクラスの非ゼロクラス化を実現することができ、量子化誤差を十分に抑制することができる。
【０１２２】
＜３．第３の実施の形態＞
［ブロック毎に量子化を行う画像処理装置］
なお、第２の実施の形態において説明した量子化は、処理対象の画像を複数に分割するブロック毎に行われるようにしてもよい。
【０１２３】
図１０は、その場合の画像処理装置の主な構成例を示すブロック図である。
【０１２４】
図１０に示される画像処理装置２００は、画像ブロック分割部２０１、並びに、ブロック１ビット深度変換部２０２−１、ブロック２ビット深度変換部２０２−２、・・・、ブロックＸビット深度変換部２０２−Ｘを有する。つまり、画像処理装置２００は、１個の画像ブロック分割部２０１と、Ｘ個のビット深度変換部２０２を有する。
【０１２５】
画像ブロック分割部２０１は、入力画像P(x,y)（矢印２１１）を、予め定められた所定数（Ｘ個）の矩形ブロックに分割する。各ブロックの形状は任意である。例えば、画像ブロック分割部２０１が、入力画像を横Ｍ個×縦Ｎ個（＝Ｘ個）のブロックに分割するようにしてもよい。また、例えば、画像ブロック分割部２０１が、入力画像をスライスのように縦方向にＸ個のブロックに分割するようにしてもよい。さらに、各ブロックのサイズおよび形状は、全て同一でなくてもよい。
【０１２６】
画像ブロック分割部２０１は、各ブロックの画像を、それぞれのブロックに対応するビット深度変換部２０２に供給する。例えば、画像ブロック分割部２０１は、ブロック１の画像P1(x,y)を、ブロック１ビット深度変換部２０２−１に供給する（矢印２１２−１）。また、例えば、画像ブロック分割部２０１は、ブロック２の画像P2(x,y)を、ブロック２ビット深度変換部２０２−２に供給する（矢印２１２−２）。さらに、例えば、画像ブロック分割部２０１は、ブロックＸの画像PX(x,y)を、ブロックＸビット深度変換部２０２−Ｘに供給する（矢印２１２−Ｘ）。
【０１２７】
ビット深度変換部２０２は、各ブロックの画像に対して、互いに独立に、画像処理装置１００と同様の量子化処理を行う処理部である。
【０１２８】
つまり、ブロック１ビット深度変換部２０２−１は、画像処理装置１００と同様の構成を有し、ブロック１の画像P1(x,y)に対して、画像処理装置１００と同様の処理を行い、クラス数を低減させずに全てのクラスの非ゼロクラス化し、テーブルT1(k)と、インデックス画像K1(x,y)とを生成し、それらを画像処理装置２００の外部に出力する（矢印２１３−１）。
【０１２９】
また、ブロック２ビット深度変換部２０２−２は、画像処理装置１００と同様の構成を有し、ブロック２の画像P2(x,y)に対して、画像処理装置１００と同様の処理を行い、クラス数を低減させずに全てのクラスの非ゼロクラス化し、テーブルT2(k)と、インデックス画像K2(x,y)とを生成し、それらを画像処理装置２００の外部に出力する（矢印２１３−２）。
【０１３０】
さらに、その他のブロックについても、各ブロックに対応するビット深度変換部２０２が、同様の処理を行う。そして、ブロックＸビット深度変換部２０２−Ｘは、画像処理装置１００と同様の構成を有し、ブロックＸの画像PX(x,y)に対して、画像処理装置１００と同様の処理を行い、クラス数を低減させずに全てのクラスの非ゼロクラス化し、テーブルTX(k)と、インデックス画像KX(x,y)とを生成し、それらを画像処理装置２００の外部に出力する（矢印２１３−Ｘ）。
【０１３１】
ブロック１ビット深度変換部２０２−１乃至ブロックＸビット深度変換部２０２−Ｘは、互いに独立に処理を行うことができる。つまり、ブロックＸビット深度変換部２０２−Ｘの一部または全部が、互いに並行して処理を行う（複数のブロックに対して並列に処理を行う）ようにしてもよいし、互いに異なるタイミングにおいて処理を行うようにしてもよい。
【０１３２】
ブロック毎の画像は、画像全体に比べて画素値の総数が少なくなるので、疎性が高まる。したがって、各ブロックの画像を量子化して逆量子化した場合に生じる量子化誤差は、画像全体に対して同様の処理を行う場合よりも低減される。また、各ブロックに対する量子化を並列に実行することにより、処理時間を低減させることもできる。
【０１３３】
ただし、画像全体に対して量子化・逆量子化（ビット変換）を行う場合の方が、必要なテーブル数が低減され、その分情報量を低減させることができる。
【０１３４】
なお、上述したように各ブロックの大きさおよび形状は任意であるので、画像ブロック分割部２１１が、入力画像の内容に応じて、疎性が高まる様にブロック化するようにしてもよい。
【０１３５】
［量子化処理の流れ］
この画像処理装置２００により実行される量子化処理の流れの例を、図１１のフローチャートを参照して説明する。
【０１３６】
量子化処理が開始されると、ステップＳ２０１において、画像ブロック分割部２０１は、入力画像を複数のブロックに分割する。
【０１３７】
ステップＳ２０２において、ビット深度変換部２０２（ブロック１ビット深度変換部２０２−１乃至ブロックＸビット深度変換部２０２−Ｘ）は、処理対象ブロックを、図９のフローチャートを参照して説明した場合と同様に量子化する。
【０１３８】
ステップＳ２０３において、ビット深度変換部２０２（ブロック１ビット深度変換部２０２−１乃至ブロックＸビット深度変換部２０２−Ｘ）は、全てのブロックが量子化されたか否かを判定する。未処理のブロックが存在すると判定された場合、ビット深度変換部２０２は、処理をステップＳ２０２に戻す。その未処理のブロックに対応するビット深度変換部２０２が、その未処理のブロックに対して量子化処理を行う。
【０１３９】
ステップＳ２０３において、ステップＳ２０１において生成された全てのブロックが量子化されたと判定された場合、ビット深度変換部２０２は、量子化処理を終了する。
【０１４０】
このように処理を行うことにより、画像処理装置２００は、量子化誤差をより低減させることができる。
【０１４１】
＜４．第４の実施の形態＞
［逆量子化を行う画像処理装置
次に、第２の実施の形態において説明した量子化処理に対応する逆量子化処理について説明する。
【０１４２】
図１２は、逆量子化を行う画像処理装置の主な構成例を示すブロック図である。図１２に示される画像処理装置３００は、第２の実施の形態において説明した画像処理装置１００の量子化に対応する逆量子化を行う。
【０１４３】
図１２に示されるように、画像処理装置３００は、テーブルバッファ３０１、インデックス画像バッファ３０２、逆量子化部３０３、および画像構成部３０４を有する。
【０１４４】
テーブルバッファ３０１は、画像処理装置１００のテーブル生成部１０７により生成された、各クラスの代表値にインデックス（クラス番号）を割り当てるテーブルを取得し（矢印３１１）、記憶する。テーブルバッファ３０１は、所定のタイミングにおいて、若しくは、例えば逆量子化部３０３等の外部の指示に従って、記憶しているテーブルを逆量子化部３０３に供給する（矢印３１２）。
【０１４５】
インデックス画像バッファ３０２は、画像処理装置１００のインデックス画像生成部１０８により生成されたインデックス画像を取得し（矢印３１３）、記憶する。インデックス画像バッファ３０２は、所定のタイミングにおいて、若しくは、例えば逆量子化部３０３等の外部の指示に従って、記憶しているインデックス画像を逆量子化部３０３に供給する（矢印３１４）。
【０１４６】
逆量子化部３０３は、インデックス画像バッファ３０２から取得したインデックス画像に対して、テーブルバッファ３０１から取得したテーブルを用いて逆量子化を行う。より具体的には、逆量子化部３０３は、インデックス画像の各画素値、すなわち、インデックスを、そのインデックスが示すクラスの代表値に変換する。
【０１４７】
例えば、画像処理装置１００のテーブル生成部１０７が図７に示されるようなテーブルを生成し、画像処理装置１００のインデックス画像生成部１０８が図８に示されるようにインデックス画像K(x,y)を生成したとする。
【０１４８】
この場合、逆量子化部３０３は、図１３に示されるように逆引き動作を行い、インデックスを、いずれかのクラスの代表値に変換する。例えば、図１３の右方に示されるインデックス画像K(x,y)において、インデックス「０」は、図１３の下方に示されるテーブルT(k)において代表値「１３」に対応する。したがって、逆量子化部３０３は、インデックス「０」を、値「１３」に変換する。逆量子化部３０３は、また、例えば、インデックス「４」を、同様に、値「６０」に変換する。
【０１４９】
逆量子化部３０３は、変換後の各画素値（すなわち、いずれかのクラスの代表値）J(x,y)を、Ｎビットの画素値として画像構成部３０４に供給する（矢印３１５）。
【０１５０】
画像構成部３０４は、逆量子化部３０３から供給される各画素値を、逆量子化後の画像の画素値として記憶する。画像構成部３０４は、所定のタイミングにおいて、若しくは、外部の指示に従って、記憶している各画素値を、逆量子化後の画像の画素値として、画像処理装置３００の外部に出力する（矢印３１６）。
【０１５１】
このようにすることにより、画像処理装置３００は、画像処理装置１００が生成したインデックス画像を、正しく逆量子化することができる。したがって、画像処理装置３００は、従来のLloyd-Max法の量子化では最小誤差を供することができなかった疎な画像に対しても、量子化誤差の抑制を実現することができる。
【０１５２】
［逆量子化処理の流れ］
次に、図１４のフローチャートを参照して、画像処理装置３００により実行される逆慮水化処理の流れの例を説明する。
【０１５３】
逆量子化処理が開始されると、テーブルバッファ３０１は、ステップＳ３０１において、画像処理装置３００に入力される、各クラスの代表値とインデックス（クラス番号）とを対応付けるテーブルを取得する。
【０１５４】
ステップＳ３０２において、インデックス画像バッファ３０２は、画像処理装置３００に入力されるインデックス画像の中の１つのインデックスを取得する。ステップＳ３０３において、逆量子化部３０３は、ステップＳ３０１において取得されたテーブルを用いて、ステップＳ３０２において取得されたインデックスを逆量子化し、画素値（クラスの代表値）に変換する。ステップＳ３０４において、画像構成部３０４は、ステップＳ３０３の処理により得られた画素値を記憶する（保持する）。
【０１５５】
ステップＳ３０５において、逆量子化部３０３は、全てのインデックスを画素値に変換したか否かを判定し、未処理のインデックスが存在すると判定した場合、処理をステップＳ３０２に戻し、それ以降の処理を繰り返す。各インデックスについてステップＳ３０２乃至ステップＳ３０５の処理が行われ、ステップＳ３０５において、処理対象のインデックス画像に含まれる全てのインデックスが処理されたと判定した場合、逆量子化部３０３は、処理をステップＳ３０６に進める。
【０１５６】
ステップＳ３０６において、画像構成部３０４は、記憶している画素値（インデックス画像に対応する画像）を出力する。その画像を出力すると、画像構成部３０４は、逆量子化処理を終了する。
【０１５７】
このように処理を行うことにより、画像処理装置３００は、疎な画像に対しても、量子化誤差の抑制を実現することができる。
【０１５８】
＜５．第５の実施の形態＞
［ブロック毎に逆量子化を行う画像処理装置］
なお、第４の実施の形態において説明した逆量子化も、量子化の場合と同様に、処理対象の画像を複数に分割するブロック毎に行われるようにすることができる。
【０１５９】
図１５は、その場合の画像処理装置の主な構成例を示すブロック図である。
【０１６０】
図１５に示される画像処理装置４００は、ブロック１ビット深度逆変換部４０１−１、ブロック２ビット深度逆変換部４０１−２、・・・、ブロックＸビット深度逆変換部４０１−Ｘ、並びに、画像ブロック統合部４０２を有する。つまり、画像処理装置２００は、互いに異なるブロックに対応するＸ個のビット深度逆変換部４０１と、Ｘ個のブロックを統合し１つの画像とする１個の画像ブロック統合部４０２を有する。
【０１６１】
画像処理装置４００は、画像処理装置２００に対応し、画像処理装置２００が量子化した画像を逆量子化する。つまり、画像処理装置４００は、画像処理装置２００において画像がブロック毎に量子化されて生成されたＸ個のテーブルとＸ個のインデックス画像を取得する。
【０１６２】
ブロック１ビット深度逆変換部４０１−１は、ブロック１ビット深度変換部２０２−１に対応し、入力されるブロック１のテーブルT1(k)（矢印４１１−１）を用いて、入力されるブロック１のインデックスK1(x,y)（矢印４１１−１）を逆量子化する。ブロック１ビット深度逆変換部４０１−１は、その逆量子化により生成したブロック１の画像P1(x,y)を画像ブロック統合部４０２に供給する（矢印４１２−１）。
【０１６３】
ブロック２ビット深度逆変換部４０１−２は、ブロック２ビット深度変換部２０２−２に対応し、入力されるブロック２のテーブルT2(k)（矢印４１１−２）を用いて、入力されるブロック２のインデックスK2(x,y)（矢印４１１−２）を逆量子化する。ブロック２ビット深度逆変換部４０１−２は、その逆量子化により生成したブロック２の画像P2(x,y)を画像ブロック統合部４０２に供給する（矢印４１２−２）。
【０１６４】
ブロック３以降も同様に処理される。そして、ブロックＸビット深度逆変換部４０１−Ｘは、ブロックＸビット深度変換部２０２−Ｘに対応し、入力されるブロックＸのテーブルTX(k)（矢印４１１−Ｘ）を用いて、入力されるブロックＸのインデックスKX(x,y)（矢印４１１−Ｘ）を逆量子化する。ブロックＸビット深度逆変換部４０１−Ｘは、その逆量子化により生成したブロック２の画像PX(x,y)を画像ブロック統合部４０２に供給する（矢印４１２−Ｘ）。
【０１６５】
画像ブロック統合部４０２は、各ビット深度逆変換部４０１から供給される各ブロックの画像を統合し、１つの画像P(x,y)を生成し、それを画像処理装置４００の外部に出力する（矢印４１３）。
【０１６６】
逆量子化の場合も、各ブロックの画像は、画像全体に比べて疎性が高まる。したがって、画像を量子化して逆量子化する場合に生じる量子化誤差は、画像全体に対して同様の処理を行う場合よりも低減される。また、各ブロックに対する逆量子化を並列に実行することにより、処理時間を低減させることもできる。
【０１６７】
ただし、画像全体に対して量子化・逆量子化（ビット変換）処理を行う場合の方が、必要なテーブル数が低減され、その分情報量を低減させることができる。
【０１６８】
なお、上述したように各ブロックの大きさおよび形状は任意である。また、各ビット深度逆変換部４０１の処理は、互いに独立して行うことが可能であり、他のブロックの処理と並列に実行することもできるし、他のブロックの処理と異なるタイミングにおいて行うこともできる。
【０１６９】
［逆量子化処理の流れ］
この画像処理装置４００により実行される逆量子化処理の流れの例を、図１６のフローチャートを参照して説明する。
【０１７０】
逆量子化処理が開始されると、ステップＳ４０１において、ビット深度逆変換部４０１（ブロック１ビット深度逆変換部４０１−１乃至ブロックＸビット深度逆変換部４０１−Ｘ）は、図１４のフローチャートを参照して説明した場合と同様に各処理を行い、処理対象ブロックのインデックス画像を逆量子化する。
【０１７１】
ステップＳ４０２において、ビット深度逆変換部４０１（ブロック１ビット深度逆変換部４０１−１乃至ブロックＸビット深度逆変換部４０１−Ｘ）は、全てのブロックが逆量子化されたか否かを判定する。未処理のブロックが存在すると判定された場合、ビット深度逆変換部４０１は、処理をステップＳ４０１に戻す。その未処理のブロックに対応するビット深度逆変換部４０１が、その未処理のブロックに対して逆量子化処理を行う。
【０１７２】
ステップＳ４０２において、全てのブロックが逆量子化されたと判定された場合、ビット深度逆変換部４０１は、処理をステップＳ４０３に進める。
【０１７３】
ステップＳ４０３において、画像ブロック統合部４０２は、ステップＳ４０１において逆量子化された各ブロックを統合し、逆量子化された１つの画像を生成する。ステップＳ４０３の処理が終了すると、画像ブロック統合部４０２は、逆量子化処理を終了する。
【０１７４】
このように処理を行うことにより、画像処理装置４００は、量子化誤差をより低減させることができる。
【０１７５】
［評価結果の例］
次に、以上に説明した量子化処理および逆量子化処理の評価結果の例について説明する。図１７に示される１２ビット深度の医療画像を量子化・逆量子化の処理対象とする。解像度は水平方向に512画素であり、垂直方向に512画素である。
【０１７６】
この原画像（N=12ビット）をLビットに量子化し、さらにNビットに逆量子化した画像と、原画像との比較（PSNR（Peak Signal-to-Noise Ratio（ピーク信号対雑音比）））を評価値とする。PSNRが高い程、劣化が小さく抑えられていることになる。なお、Lが8乃至11の４通りについて評価する。
【０１７７】
図１８は、下位ビットを切り捨てる「切り捨て」、下位ビットを四捨五入する「四捨五入」、第１の実施の形態において上述した「Lloyd-Max法」、並びに、第２の実施の形態および第４の実施の形態において説明した「本手法」の４つの量子化・逆量子化方法について、評価値を比較した比較結果を示す図である。
【０１７８】
なお、図１７の画像のヒストグラムを測定した結果、非ゼロの出現数の画素数Ne＝1,835であった。211＝2,048、210＝1,024であるので、この画像は11ビットあれば可逆量子化・逆量子化が可能なことがわかる。従って、図１８の表に示されるように、本手法の場合、L=11ではPSNR=∞になる。従って他の３手法と比較して、本手法が最もPSNRが高い。
【０１７９】
図１８の表に示されるように、Lが他の値の場合も、本手法の場合のPSNRは他の３手法の場合よりも高い（劣化が小さい）。例えば、単純な四捨五入法に比べて16.5ｄB乃至24.5ｄBの改善効果が得られている。また、例えば、Lloyd-Max法と比べても5dB乃至9ｄBの改善効果が得られている。
【０１８０】
次に、第３の実施の形態や第５の実施の形態において説明したように、ブロック分割する場合の評価結果を、図１９乃至図２１に示す。図１９に示される表は、ブロック分割数＝４（水平方向２分割、垂直方向２分割）の場合の評価結果を、上述した４手法で比較したものである。この場合の本手法では、図１８に示されるブロック分割無しの場合の本手法に比べてさらに0.59ｄB乃至1.06ｄBの改善効果が得られている。
【０１８１】
図２０に示される表は、ブロック分割数＝１６（水平方向４分割、垂直方向４分割）の場合の評価結果を、上述した４手法で比較したものである。この場合の本手法では、図１８に示されるブロック分割無しの場合の本手法に比べてさらに2.44ｄB乃至5.53ｄBの改善効果が得られている。
【０１８２】
図２１に示される表は、ブロック分割数＝１００（水平方向１０分割、垂直方向１０分割）の場合の評価結果を、上述した４手法で比較したものである。この場合の本手法では、図１８に示されるブロック分割無しの場合の本手法に比べてさらに6.76ｄB乃至11.18ｄBの改善効果が得られている。また、L=10ビットでも可逆量子化・逆量子化が可能になっている。
【０１８３】
以上のように、本手法を用いることにより、量子化・逆量子化による量子化誤差をより低減させることができ、より高画質な画像を得るように量子化・逆量子化（ビット変換）を行うことが出来る。
【０１８４】
＜６．第６の実施の形態＞
［複数フレーム対応のテーブルを生成する画像処理装置］
以上においては、量子化の際に、ヒストグラムを生成し、クラス分けを行い、ゼロクラスが存在する場合には非ゼロクラス化を行い、各クラスの代表値を決定し、その各クラスの代表値とインデックス（クラス番号）とを対応させるテーブルを生成し、そのテーブルに基づいて、インデックス画像を生成するように説明した。このような量子化・逆量子化を、動画像の各フレームに対して、再生フレームレートが低減しないようにリアルタイム（即時的）に行うようにしてもよい。その場合（再生フレームレートに応じた実時間での動作を要求される場合）、負荷が大きいので、高速のハードウエアまたはプロセッサが必要になり、コストが増大する可能性がある。
【０１８５】
また、画像のアーカイブやデジタルシネマ用のエンコード用途等では、必ずしも実時間での動作を要求されず、むしろ少しでも高画質であることが重要視される。このような場合、量子化処理や逆量子化処理がリアルタイムに行われないようにしてもよい。例えば、画像処理装置が、各フレームについてのテーブルを事前に生成し、そのテーブルを用いてインデックス画像生成のみをリアルタイムに行うようにしてもよい。このようにすることにより、実時間で動作すべき処理が、代表値からインデックスへの変換処理のみに低減されるので、リアルタイムな動作の実現が容易になる（コストを低減させることもできる）。
【０１８６】
また、その場合、テーブルは、１フレーム毎生成するようにすることもできるが、それだけではなく、複数フレームに対して１つ生成するようにすることもできる。このようにすることにより、テーブル生成の処理が容易になるだけでなく、テーブル数の削減によるデータ量の低減も実現される。
【０１８７】
図２２は、その場合の、テーブルを生成する画像処理装置の主な構成例を示すブロック図である。図２２に示される画像処理装置５００は、インデックス画像の生成（各画素の代表値からインデックスへの変換）に先立って、その処理に必要な、各クラスの代表値とインデックス（クラス番号）とを対応させるテーブルを生成する。
【０１８８】
図２２に示されるように、画像処理装置５００は、複数フレーム入力部５０１、ヒストグラム生成部５０２、クラス境界決定部５０３、クラス構成部５０４、ゼロクラス検出部５０５、非ゼロクラス化部５０６、量子化代表値決定部５０７、およびテーブル生成部５０８を有する。また、非ゼロクラス化部５０６は、クラス統合部５１１およびクラス分割部５１２を有する。
【０１８９】
複数フレーム入力部５０１は、入力される動画像の各フレーム画像（矢印５２１）を保持し、所定の数のフレーム毎に全画素値を所定順にヒストグラム生成部５０２に供給する（矢印５２２）。
【０１９０】
ヒストグラム生成部５０２、クラス境界決定部５０３、およびクラス構成部５０４は、それぞれ、図４のヒストグラム生成部１０１、クラス境界決定部１０２、およびクラス構成部１０３と同様の構成を有し、同様の処理を行う。また、ゼロクラス検出部５０５、非ゼロクラス化部５０６、量子化代表値決定部５０７、およびテーブル生成部５０８は、それぞれ、図４のゼロクラス検出部１０４、非ゼロクラス化部１０５、量子化代表値決定部１０６、およびテーブル生成部１０７と同様の構成を有し、同様の処理を行う。さらに、クラス統合部５１１およびクラス分割部５１２は、それぞれ、図４のクラス統合部１１１およびクラス分割部１１２と同様の構成を有し、同様の処理を行う。
【０１９１】
ただし、ヒストグラム生成部５０２、クラス境界決定部５０３、およびクラス構成部５０４、ゼロクラス検出部５０５、非ゼロクラス化部５０６、量子化代表値決定部５０７、およびテーブル生成部５０８は、複数フレームを処理単位として各処理を行う。
【０１９２】
つまり、ヒストグラム生成部５０２は、複数のフレーム画像（矢印５２２）内の全ての画素値のヒストグラムを生成し、画素値の最大値と最小値を求め、それらをクラス境界決定部５０３に供給する（矢印５２３）。
【０１９３】
クラス境界決定部５０３は、ヒストグラム生成部５０２から供給された、複数のフレーム画像に対応するヒストグラムの最大値と最小値の間を2L個のクラスに等間隔に分割するクラス境界を決定し、ヒストグラムとそのクラス境界の情報をクラス構成部５０４に供給する（矢印５２４）。
【０１９４】
クラス構成部５０４は、複数のフレーム画像内の全ての画素値を、その値に対応するクラスに振り分ける。クラス構成部５０４は、ヒストグラム、クラス境界に関する情報、および各画素値に割り当てたクラスの情報等を、最初、ゼロクラス検出部５０５に供給する（矢印５２５）。そして、ゼロクラス検出部５０５や非ゼロクラス化部５０６の処理により、ゼロクラスが存在しないことが確実になると、クラス構成部５０４は、各種情報を量子化代表値決定部５０７に供給する（矢印５３１）。
【０１９５】
ゼロクラス検出部５０５は、クラス構成部５０４から供給される情報に基づいて、画素値の出現頻度が０のクラス（ゼロクラス）を検出する。ゼロクラスが検出されなかった場合、ゼロクラス検出部５０５は、クラス構成部５０４から供給される各種情報と、その検出結果を量子化代表値決定部５０７に供給する（矢印５２６）。また、ゼロクラスが検出された場合、ゼロクラス検出部５０５は、クラス構成部５０４から供給される各種情報と、その検出結果を非ゼロクラス化部５０６のクラス統合部５１１に供給する（矢印５２７）。
【０１９６】
非ゼロクラス化部５０６は、ゼロクラス検出部５０５により検出されたゼロクラスの非ゼロクラス化を行う。クラス統合部５１１は、ゼロクラス検出部５０５から供給される情報に基づいて、ゼロクラスをその隣の非ゼロクラスに統合する。クラス統合部５１１は、ゼロクラス検出部５０５から供給される情報とともに、その統合結果を示す情報をクラス分割部５１２に供給する（矢印５２８）。
【０１９７】
クラス分割部５１２は、クラス統合部５１１から供給された情報に基づいて、クラス統合部５１１により統合されたクラスを、いずれのクラスも非ゼロクラスとなるようにクラス境界を定め、クラスを分割する。クラス分割部５１２は、クラス統合部５１１から供給される情報とともに、その分割結果を示す情報を量子化代表値決定部５０７に供給する（矢印５２９）。
【０１９８】
量子化代表値決定部５０７は、クラス毎に画素値の重心を求め、その重心をそのクラスの代表値に決定する。各クラスの代表値の初期値に決定された場合、若しくは、少なくともいずれかの代表値が更新される場合、量子化代表値決定部５０７は、ヒストグラム、クラス境界に関する情報、および各画素値に割り当てたクラスの情報、各クラスの代表値に関する情報等をクラス境界決定部５０３に戻し（矢印５３０）、クラス境界を更新させる。
【０１９９】
クラス境界決定部５０３は、全ての隣り合う代表値同士の中間値をクラス境界に決定する。クラス構成部５０４は、このようにクラス境界決定部５０３により更新されたクラスに対して、複数フレーム画像内の全ての画素値の振り分けを行う。クラス構成部５０４は、このような、更新されたクラスについての処理の場合、上述した各種情報を量子化代表値決定部５０７に供給する（矢印５３１）。
【０２００】
量子化代表値決定部５０７は、クラス構成部５０４から更新されたクラスについて、上述したように代表値を決定する。代表値が更新されなくなると、量子化代表値決定部５０７は、クラス（区間境界等）に関する情報と、決定した各クラスの代表値をテーブル生成部５０８に供給する（矢印５３２）。
【０２０１】
テーブル生成部５０８は、各クラス（区間境界や代表値）を定義するとともに、各クラスの代表値にインデックス（クラス番号）を割り当てるテーブルを生成し、そのテーブルを画像処理装置５００の外部に出力する（矢印５３３）。
【０２０２】
つまり、処理対象が、１つの画像の画素値ではなく、複数フレーム画像分の画素値であることと、この時点でインデックス画像を生成しないこと、そのためにテーブルにクラスに関する情報も含めること以外は、図４の画像処理装置１００の場合と基本的に同様に処理が行われ、テーブルが生成される。
【０２０３】
したがって、画像処理装置５００は、クラス数を低減させずに、全てのクラスの非ゼロクラス化を実現することができ、従来のLloyd-Max法の量子化では最小誤差を供することができなかった疎な画像に対しても、量子化誤差を十分に抑制することができ、最小誤差を与えることができる。
【０２０４】
［量子化処理の流れ］
次に、画像処理装置５００により実行される量子化処理の流れの例を図２３のフローチャートを参照して説明する。この量子化処理は、量子化（ビット深度変換処理）に用いられる、各クラスの代表値とインデックスとを対応付けるテーブルを作成する処理である。
【０２０５】
量子化処理が開始されると、複数フレーム入力部５０１は、複数フレーム毎に画素値を供給する。ヒストグラム生成部５０２は、ステップＳ５０１において、その複数フレームについて、画素値のビット深度がNビットの入力画像中のヒストグラムを抽出する。ステップＳ５０２において、ヒストグラム生成部５０２は、ヒストグラムから最小値と最大値を求める。
【０２０６】
ステップＳ５０３において、クラス境界決定部５０３は、ヒストグラムを2L個のクラスに等間隔に分割する。ステップＳ５０４において、クラス構成部５０４は、複数フレームの全ての画素値をステップＳ５０３において分割されたいずれかのクラスに振り分ける。
【０２０７】
ステップＳ５０５において、ゼロクラス検出部５０５は、ゼロクラスが存在するか否かを判定し、存在すると判定した場合、処理をステップＳ５０６に進める。ステップＳ５０６において、クラス統合部５１１は、非ゼロクラス化できるように、ゼロクラスを非ゼロクラスと統合する。ステップＳ５０７において、クラス分割部５１２は、統合したクラスを、全て非ゼロクラスとなるように分割する。
【０２０８】
ステップＳ５０７の処理が終了すると、クラス分割部５１２は、処理をステップＳ５０８に進める。また、ステップＳ５０５において、ゼロクラスが存在しないと判定した場合、ゼロクラス検出部５０５は、処理をステップＳ５０８に進める。
【０２０９】
ステップＳ５０８において、量子化代表値決定部５０７は、各クラスの重心を求め、それをクラスの代表値とする。ステップＳ５０９において、量子化代表値決定部５０７は、ステップＳ５０８の処理により代表値が更新されたか否かを判定する。代表値が新たに設定された若しくは更新されたと判定した場合、量子化代表値決定部５０７は、処理をステップＳ５１０に進める。
【０２１０】
ステップＳ５１０において、クラス境界決定部５０３は、隣接する２つの代表値の中間値を新たなクラスの区間境界とする。ステップＳ５１１において、クラス構成部５０４は、複数フレームの全ての画素値を新しいクラスに振り分け、処理をステップＳ５０８に戻し、それ以降の処理を繰り返す。
【０２１１】
また、ステップＳ５０９において、代表値が更新されなかったと判定した場合、量子化代表値決定部５０７は、処理をステップＳ５１２に進める。
【０２１２】
ステップＳ５１２において、テーブル生成部５０８は、各クラス（区間境界や代表値）を定義するとともに、各クラスの代表値をそのクラスのインデックスと関連付け、テーブル化する。ステップＳ５１２の処理を終了すると、テーブル生成部５０８は、量子化処理を終了する。
【０２１３】
以上のように量子化処理を行うことにより、画像処理装置５００は、クラス数を低減させずに、全てのクラスの非ゼロクラス化を実現することができ、従来のLloyd-Max法の量子化では最小誤差を供することができなかった疎な画像に対しても、量子化誤差を十分に抑制することができ、最小誤差を与えるようにテーブルを生成することができる。
【０２１４】
［ビット深度変換を行う画像処理装置］
以上のようにして生成されたテーブルは、量子化・逆量子化に利用される。
【０２１５】
図２４は、この場合の量子化若しくは逆量子化を行う画像処理装置の主な構成例を示すブロック図である。図２４Ａは、画像処理装置５００により生成されたテーブルを用いて量子化を行う画像処理装置の主な構成例を示すブロック図である。
【０２１６】
図２４Ａに示されるように、この場合の画像処理装置６００は、テーブルバッファ６０１およびインデックス画像生成部６０２を有する。テーブルバッファ６０１は、画像処理装置５００により生成されたテーブルを取得し（矢印６１１）、記憶する。インデックス画像生成部６０２は、テーブルバッファ６０１からテーブルを取得し（矢印６１３）、また、量子化処理対象の画素値を取得する（矢印６１２）。インデックス画像生成部６０２は、量子化処理対象（ビット深度変換対象）の各画素値を、テーブルを用いて、まず、その画素値が対応するクラスを特定し、そのクラスの代表値に変換し、さらにその代表値をインデックスに変換する（量子化処理を行う）。インデックス画像生成部６０２は、得られたインデックス画像を出力する（矢印６１４）。
【０２１７】
以上のように、画像処理装置６００は、テーブルを用いることにより、容易に量子化を行うことができる。
【０２１８】
図２４Ｂは、画像処理装置５００により生成されたテーブルを用いて逆量子化を行う画像処理装置の主な構成例を示すブロック図である。
【０２１９】
図２４Ｂに示されるように、この場合の画像処理装置７００は、テーブルバッファ７０１および逆量子化部７０２を有する。テーブルバッファ７０１は、画像処理装置５００により生成されたテーブルを取得し（矢印７１１）、それを記憶する。逆量子化部７０２は、テーブルバッファ７０１からテーブルを取得し（矢印７１３）、また、逆量子化処理対象のインデックス画像を取得する（矢印７１２）。逆量子化部７０２は、各インデックスを、テーブルを用いて、そのインデックスが対応するクラスの代表値に変換する（逆量子化処理を行う）。逆量子化部７０２は、得られた画像を出力する（矢印７１４）。
【０２２０】
以上のように、画像処理装置７００は、テーブルを用いることにより、容易に逆量子化を行うことができる。
【０２２１】
なお、以上においては、時間軸方向に並ぶ複数の画像（フレーム画像）毎に共通のテーブルを生成するように説明したが、時間軸方向に限らず、複数の画像に対して共通のテーブルを生成するようにしてもよい。例えば、複数の静止画に対して共通のテーブルを生成するようにしてもよいし、サイドバイサイド等の立体視用の動画像フォーマットにおける左眼用の画像と右眼用の画像に対して共通のテーブルを生成するようにしてもよい。生成方法は、上述した複数フレームの場合と同様である。
【０２２２】
本技術は、例えば撮像素子から読み出された画像、デジタルスキャナーを用いて取り込まれた画像、或いは医用画像、電子顕微鏡画像、デジタルシネマ画像、および、放送品質の画像等、特に高いビット深度を持った画像に対して行うビット深度変換（または逆変換）に用いるのに好適である。本技術を適用することにより、ビット深度変換、逆変換後に復元される画像の、オリジナルの画像と比較した場合の画質劣化を抑制することができる。
【０２２３】
なお、以上に説明した各実施の形態の画像処理装置を組み合わせ１つの画像処理装置としてもよい。例えば、画像処理装置１００を量子化部とし、画像処理装置３００を逆量子化部とし、それらを１つの画像処理装置に含めるようにしてもよい。また、例えば、画像処理装置２００を量子化部とし、画像処理装置４００を逆量子化部とし、それらを１つの画像処理装置に含めるようにしてもよい。さらに、例えば、画像処理装置５００乃至画像処理装置７００を１つの画像処理装置に含めるようにしてもよい。
【０２２４】
また、以上に説明した各装置は、それぞれ、上述した以外の構成を含むようにしてももちろんよい。例えば、撮像素子（CMOS、CCDセンサ）からキャプチャした画像を用いた機器やデバイス、撮像素子画像をメモリに書き込むまでの圧縮回路、デジタルスチルカメラ、動画用カムコーダ、医療用画像カメラ、医療用内視鏡、監視カメラ、デジタルシネマ撮影用カメラ、両眼画像カメラ、多眼画像カメラ、LSIチップでのメモリ削減回路、PC上のオーサリング・ツールまたはそのソフトウェア・モジュール等として構成されるようにしてもよい。また、１つの装置としてだけでなく、複数の装置よりなるシステムとして構成されるようにしてもよい。
【０２２５】
＜７．第７の実施の形態＞
［パーソナルコンピュータ］
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。この場合、例えば、図２５に示されるようなパーソナルコンピュータとして構成されるようにしてもよい。
【０２２６】
図２５において、パーソナルコンピュータ８００のCPU（Central Processing Unit）８０１は、ROM（Read Only Memory）８０２に記憶されているプログラム、または記憶部８１３からRAM（Random Access Memory）８０３にロードされたプログラムに従って各種の処理を実行する。RAM８０３にはまた、CPU８０１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【０２２７】
CPU８０１、ROM８０２、およびRAM８０３は、バス８０４を介して相互に接続されている。このバス８０４にはまた、入出力インタフェース８１０も接続されている。
【０２２８】
入出力インタフェース８１０には、キーボード、マウスなどよりなる入力部８１１、CRT（Cathode Ray Tube）ディスプレイやLCD（Liquid Crystal Display）等のディスプレイ、並びにスピーカなどよりなる出力部８１２、フラッシュメモリ等SSD（Solid State Drive）やハードディスクなどよりなる記憶部８１３、有線LAN（Local Area Network）や無線LANのインタフェースやモデムなどよりなる通信部８１４が接続されている。通信部８１４は、インターネットを含むネットワークを介しての通信処理を行う。
【０２２９】
入出力インタフェース８１０にはまた、必要に応じてドライブ８１５が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア８２１が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部８１３にインストールされる。
【０２３０】
上述した一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
【０２３１】
この記録媒体は、例えば、図２５に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM（Compact Disc - Read Only Memory）,DVD（Digital Versatile Disc）を含む）、光磁気ディスク（MD（Mini Disc）を含む）、若しくは半導体メモリなどよりなるリムーバブルメディア８２１により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM８０２や、記憶部８１３に含まれるハードディスクなどにより構成される。
【０２３２】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０２３３】
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０２３４】
また、本明細書において、システムとは、複数のデバイス（装置）により構成される装置全体を表すものである。
【０２３５】
また、以上において、１つの装置（または処理部）として説明した構成が、複数の装置（または処理部）として構成されるようにしてもよい。逆に、以上において複数の装置（または処理部）として説明した構成が、まとめて１つの装置（または処理部）として構成されるようにしてもよい。また、各装置（または各処理部）の構成に上述した以外の構成が付加されるようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置（または処理部）の構成の一部が他の装置（または他の処理部）の構成に含まれるようにしてもよい。つまり、本開示の実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。
【０２３６】
なお、本技術は以下のような構成も取ることができる。
（１）  画像の各画素値をその値の大きさに応じて分類する複数のクラスの中から、画素値の出現頻度がゼロであるゼロクラスを検出するゼロクラス検出部と、
前記ゼロクラス検出部により検出されたゼロクラスの範囲を更新することにより、前記クラスの総数を更新せずに、前記ゼロクラスを、前記画素値の出現頻度が１以上の非ゼロクラスに変換する非ゼロクラス化部と
を備える画像処理装置。
（２）  前記非ゼロクラス化部は、
前記ゼロクラス検出部により検出されたゼロクラスを、画素値の出現頻度が統合したクラスの数以上となるまで、隣接するクラスに統合するクラス統合部と、
前記クラス統合部により統合されたクラスを、いずれのクラスも非ゼロクラスとなるように、統合前の数のクラスに分割するクラス分割部と
を備える前記（１）に記載の画像処理装置。
（３）  前記クラスの境界を決定するクラス境界決定部と、
前記クラス境界決定部により決定された境界で区切られる各クラスに、各画素値を、その値に応じて割り当てるクラス構成部と、
前記クラス境界決定部により決定された境界で区切られる各クラスにおいて、前記クラス構成部により割り当てられた画素値の重心を算出し、前記重心を代表値として決定する代表値決定部と
をさらに備える前記（１）または（２）に記載の画像処理装置。
（４）  前記クラス境界決定部は、前記画素値の最大値および最小値の間を、前記画素値のビット深度よりも少ない数のクラスに分割するように、前記境界を決定する
前記（３）に記載の画像処理装置。
（５）  前記代表値決定部は、前記非ゼロクラス化部によりゼロクラスが非ゼロクラスに変換された後、各クラスにおいて前記重心を算出し、前記代表値とする
前記（３）または（４）に記載の画像処理装置。
（６）  前記クラス境界決定部は、隣り合うクラスの、前記代表値決定部により決定された代表値同士の中間値を前記クラスの境界として決定する
前記（５）に記載の画像処理装置。
（７）  前記代表値決定部により決定された各クラスの代表値と、各クラスのインデックスとを対応付けるテーブルを生成するテーブル生成部をさらに備える
前記（３）乃至（６）のいずれかに記載の画像処理装置。
（８）  前記画像の各画素値を、前記画素値に対応するクラスの、前記代表値決定部により決定された代表値に変換する変換部と、
前記テーブル生成部により生成された前記テーブルを用いて、前記変換部により各画素値が変換された前記代表値を、前記代表値のクラスの識別情報であるインデックスに変換するインデックス画像生成部と
をさらに備える前記（７）に記載の画像処理装置。
（９）  前記テーブル生成部により生成された前記テーブルを用いて、前記インデックスを前記代表値に変換する逆量子化部をさらに備える
前記（７）または（８）に記載の画像処理装置。
（１０）  前記クラス境界決定部は、複数の画像の全画素値の最大値と最小値との間を複数のクラスに分割するように前記境界を決定し、
前記クラス構成部は、前記クラス境界決定部により決定された境界で区切られる各クラスに、前記複数の画像の全画素値を、その値に応じて割り当て、
前記テーブル生成部は、前記代表値決定部により決定された各クラスの代表値と、各クラスのインデックスとを対応付ける、前記複数の画像に共通のテーブルを生成する
前記（７）乃至（９）のいずれかに記載の画像処理装置。
（１１）  前記画像を複数のブロックに分割する画像ブロック分割部をさらに備え、
前記クラス境界決定部、前記クラス構成部、前記代表値決定部、前記ゼロクラス検出部、および前記非ゼロクラス化部は、それぞれ、前記画像ブロック分割部により前記画像が分割された前記ブロック毎に互いに独立に処理を行う
前記（３）乃至（１０）のいずれかに記載の画像処理装置。
（１２）  前記テーブル生成部により生成された前記テーブルを用いて、前記インデックスを前記代表値に変換する処理を、前記ブロック毎に互いに独立に行う逆量子化部をさらに備える
前記（１１）に記載の画像処理装置。
（１３）  画像処理装置の画像処理方法であって、
ゼロクラス検出部が、画像の各画素値をその値の大きさに応じて分類する複数のクラスの中から、画素値の出現頻度がゼロであるゼロクラスを検出し、
非ゼロクラス化部が、検出されたゼロクラスの範囲を更新することにより、前記クラスの総数を更新せずに、前記ゼロクラスを、前記画素値の出現頻度が１以上の非ゼロクラスに変換する
画像処理方法。
【符号の説明】
【０２３７】
１００  画像処理装置，  １０２  クラス境界決定部，  １０３  クラス構成部，  １０４  ゼロクラス検出部，  １０５  非ゼロクラス化部，  １０６  量子化代表値決定部，  １０７  テーブル生成部，  １０８  インデックス画像生成部，  １１１  クラス統合部，  １１２  クラス分割部，  ２００  画像処理装置，  ２０１  画像ブロック分割部，  ３００  画像処理装置，  ３０１  テーブルバッファ，  ３０２  インデックス画像バッファ，  ３０３  逆量子化部，  ３０４  画像構成部，  ４００  画像処理装置，  ４０２  画像ブロック統合部，  ５００  画像処理装置，  ５０１  複数フレーム入力部
【図１】
0005757446.tif 000013
【図２】
0005757446.tif 000014
【図３】
0005757446.tif 000015
【図４】
0005757446.tif 000016
【図５】
0005757446.tif 000017
【図６】
0005757446.tif 000018
【図７】
0005757446.tif 000019
【図８】
0005757446.tif 000020
【図９】
0005757446.tif 000021
【図１０】
0005757446.tif 000022
【図１１】
0005757446.tif 000023
【図１２】
0005757446.tif 000024
【図１３】
0005757446.tif 000025
【図１４】
0005757446.tif 000026
【図１５】
0005757446.tif 000027
【図１６】
0005757446.tif 000028
【図１７】
0005757446.tif 000029
【図１８】
0005757446.tif 000030
【図１９】
0005757446.tif 000031
【図２０】
0005757446.tif 000032
【図２１】
0005757446.tif 000033
【図２２】
0005757446.tif 000034
【図２３】
0005757446.tif 000035
【図２４】
0005757446.tif 000036
【図２５】
0005757446.tif 000037