説明

画像処理装置および方法

【課題】量子化誤差を抑制することができるようにする。
【解決手段】画像の各画素値をその値の大きさに応じて分類する複数のクラスの中から、画素値の出現頻度がゼロであるゼロクラスを検出するゼロクラス検出部と、前記ゼロクラス検出部により検出されたゼロクラスの範囲を更新することにより、前記クラスの総数を更新せずに、前記ゼロクラスを、前記画素値の出現頻度が1以上の非ゼロクラスに変換する非ゼロクラス化部とを備える。本開示は画像処理装置に適用することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本開示は、画像処理装置および方法に関し、特に、量子化誤差を抑制することができるようにした画像処理装置および方法に関する。
【背景技術】
【0002】
従来、画像処理等において、高ビット深度から低ビット深度へのビット変換技術が、一般に量子化技術として存在する。つまり、量子化処理においては、Nビット画像がLビット(N>L)に変換される。これに対して、低ビット深度から高ビット深度への逆変換処理は、逆量子化に相当する。画像の量子化法としては、線形量子化法が一般に用いられているが、計算が軽量であるものの、量子化誤差が比較的大きい。そのため、高ビット深度の画像を量子化により低ビット深度の画像に変換し、さらに、その低ビット深度の画像を逆量子化により高ビット深度の画像に変換する(元のビット深度に戻す)場合、復元された高ビット深度の画像(量子化・逆量子化処理後の画像)は、オリジナル画像(量子化・逆量子化前の画像)に比べて、大きく劣化する恐れがあった。
【0003】
これに対して、Lloyd-Max量子化法が提案された(例えば、非特許文献1参照)。このLloyd-Max量子化法は、一般的に画像に付与される歪が小さい量子化法として知られている。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Lloyd, "Least squares quantization in PCM", IEEE Transactions, Information Theory,vol.IT-28, no.2, pp.129-137, Mar.1982
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、このLloyd-Max量子化法では、高ダイナミックレンジ画像や撮像素子から直接取得したRAW画像で見られる「疎性」を考慮していない。つまり、ヒストグラムに偏りを持った疎の画像に対して、Lloyd-Max量子化法では最適解を得ることができない恐れがあった。
【0006】
本開示は、このような状況に鑑みてなされたものであり、ヒストグラムに偏りを持った疎の画像であっても、量子化誤差を抑制することができるようにすることを目的とする。
【課題を解決するための手段】
【0007】
本開示の一側面は、画像の各画素値をその値の大きさに応じて分類する複数のクラスの中から、画素値の出現頻度がゼロであるゼロクラスを検出するゼロクラス検出部と、前記ゼロクラス検出部により検出されたゼロクラスの範囲を更新することにより、前記クラスの総数を更新せずに、前記ゼロクラスを、前記画素値の出現頻度が1以上の非ゼロクラスに変換する非ゼロクラス化部とを備える画像処理装置である。
【0008】
前記非ゼロクラス化部は、前記ゼロクラス検出部により検出されたゼロクラスを、画素値の出現頻度が統合したクラスの数以上となるまで、隣接するクラスに統合するクラス統合部と、前記クラス統合部により統合されたクラスを、いずれのクラスも非ゼロクラスとなるように、統合前の数のクラスに分割するクラス分割部とを備えることができる。
【0009】
前記クラスの境界を決定するクラス境界決定部と、前記クラス境界決定部により決定された境界で区切られる各クラスに、各画素値を、その値に応じて割り当てるクラス構成部と、前記クラス境界決定部により決定された境界で区切られる各クラスにおいて、前記クラス構成部により割り当てられた画素値の重心を算出し、前記重心を代表値として決定する代表値決定部とをさらに備えることができる。
【0010】
前記クラス境界決定部は、前記画素値の最大値および最小値の間を、前記画素値のビット深度よりも少ない数のクラスに分割するように、前記境界を決定することができる。
【0011】
前記代表値決定部は、前記非ゼロクラス化部によりゼロクラスが非ゼロクラスに変換された後、各クラスにおいて前記重心を算出し、前記代表値とすることができる。
【0012】
前記クラス境界決定部は、隣り合うクラスの、前記代表値決定部により決定された代表値同士の中間値を前記クラスの境界として決定することができる。
【0013】
前記代表値決定部により決定された各クラスの代表値と、各クラスのインデックスとを対応付けるテーブルを生成するテーブル生成部をさらに備えることができる。
【0014】
前記画像の各画素値を、前記画素値に対応するクラスの、前記代表値決定部により決定された代表値に変換する変換部と、前記テーブル生成部により生成された前記テーブルを用いて、前記変換部により各画素値が変換された前記代表値を、前記代表値のクラスの識別情報であるインデックスに変換するインデックス画像生成部とをさらに備えることができる。
【0015】
前記テーブル生成部により生成された前記テーブルを用いて、前記インデックスを前記代表値に変換する逆量子化部をさらに備えることができる。
【0016】
前記クラス境界決定部は、複数の画像の全画素値の最大値と最小値との間を複数のクラスに分割するように前記境界を決定し、前記クラス構成部は、前記クラス境界決定部により決定された境界で区切られる各クラスに、前記複数の画像の全画素値を、その値に応じて割り当て、前記テーブル生成部は、前記代表値決定部により決定された各クラスの代表値と、各クラスのインデックスとを対応付ける、前記複数の画像に共通のテーブルを生成することができる。
【0017】
前記画像を複数のブロックに分割する画像ブロック分割部をさらに備え、前記クラス境界決定部、前記クラス構成部、前記代表値決定部、前記ゼロクラス検出部、および前記非ゼロクラス化部は、それぞれ、前記画像ブロック分割部により前記画像が分割された前記ブロック毎に互いに独立に処理を行うことができる。
【0018】
前記テーブル生成部により生成された前記テーブルを用いて、前記インデックスを前記代表値に変換する処理を、前記ブロック毎に互いに独立に行う逆量子化部をさらに備えることができる。
【0019】
本開示の一側面は、また、画像処理装置の画像処理方法であって、ゼロクラス検出部が、画像の各画素値をその値の大きさに応じて分類する複数のクラスの中から、画素値の出現頻度がゼロであるゼロクラスを検出し、非ゼロクラス化部が、検出されたゼロクラスの範囲を更新することにより、前記クラスの総数を更新せずに、前記ゼロクラスを、前記画素値の出現頻度が1以上の非ゼロクラスに変換する画像処理方法である。
【0020】
本開示の一側面においては、画像の各画素値をその値の大きさに応じて分類する複数のクラスの中から、画素値の出現頻度がゼロであるゼロクラスが検出され、検出されたゼロクラスの範囲を更新することにより、クラスの総数を更新せずに、ゼロクラスが、画素値の出現頻度が1以上の非ゼロクラスに変換される。
【発明の効果】
【0021】
本開示によれば、画像を処理することができる。特に、量子化誤差を抑制することができる。
【図面の簡単な説明】
【0022】
【図1】Lloyd-Max量子化法の量子化を行う画像処理装置の主な構成例を示すブロック図である。
【図2】Lloyd-Max量子化法の量子化処理の流れの例を説明するフローチャートである。
【図3】量子化代表値とクラスの境界値の関係の例を説明する図である。
【図4】量子化を行う画像処理装置の主な構成例を示すブロック図である。
【図5】ゼロクラスの非ゼロクラス化の例を説明する図である。
【図6】収束後の量子化代表値とクラスの境界値の関係の例を説明する図である。
【図7】テーブルの例を説明する図である。
【図8】画素値のインデックス化の例を説明する図である。
【図9】量子化処理の流れの例を説明するフローチャートである。
【図10】量子化を行う画像処理装置の他の構成例を示すブロック図である。
【図11】量子化処理の流れの、他の例を説明するフローチャートである。
【図12】逆量子化を行う画像処理装置の主な構成例を示すブロック図である。
【図13】逆量子化の流れの例を説明する図である。
【図14】逆量子化処理の流れの例を説明するフローチャートである。
【図15】逆量子化を行う画像処理装置の他の構成例を示すブロック図である。
【図16】逆量子化処理の流れの、他の例を説明するフローチャートである。
【図17】12ビット深度の医用画像の例を示す図である。
【図18】量子化・逆量子化後の画質の例を示す図である。
【図19】量子化・逆量子化後の画質の、他の例を示す図である。
【図20】量子化・逆量子化後の画質の、さらに他の例を示す図である。
【図21】量子化・逆量子化後の画質の、さらに他の例を示す図である。
【図22】量子化・逆量子化用のテーブルを生成する画像処理装置の主な構成例を示すブロック図である。
【図23】量子化処理の流れの例を説明するフローチャートである。
【図24】量子化・逆量子化を行う画像処理装置の主な構成例を示すブロック図である。
【図25】パーソナルコンピュータの主な構成例を示すブロック図である。
【発明を実施するための形態】
【0023】
以下、発明を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.第1の実施の形態(Lloyd-Max法)
2.第2の実施の形態(量子化を行う画像処理装置)
3.第3の実施の形態(ブロック毎に量子化を行う画像処理装置)
4.第4の実施の形態(逆量子化を行う画像処理装置)
5.第5の実施の形態(ブロック毎に逆量子化を行う画像処理装置)
6.第6の実施の形態(複数フレーム対応のテーブルを生成する画像処理装置)
7.第7の実施の形態(パーソナルコンピュータ)
【0024】
<1.第1の実施の形態>
[Lloyd-Max法]
最初に、Lloyd-Max法(ロイドマックス法)について説明する。ビット深度がNビットの画像(Nビット画像)P(x,y)の各画素値をf、その確率密度関数をp(f)とする。このとき、以下の式(1)および式(2)が成立する。但し各パラメータは以下の通りである。
【0025】
【数1】

・・・(1)
【数2】

・・・(2)
【0026】
ただし、各パラメータは、以下のとおりである。
aL:画像中の画素最小値
aU:画像中の画素最大値
d:量子化の区間境界値
r:量子化代表値
【0027】
画像P(x,y)を量子化・逆量子化した結果、fがf'になったとすると、その際の2乗誤差は、以下の式(3)のように表すことができる。
【0028】
【数3】

・・・(3)
【0029】
Lloyd-Max法の量子化では、Nビット画像をLビット画像に量子化するに当たり、(aU-aL)の値域を2L個のクラスに分割する。この区間境界(クラス境界)をdn(n=0,1,2,…,2L)とし、各クラスの代表値、即ち逆量子化後の画素値をrn(n=0,1,2,…,2L-1)とすると、dnは、以下の式(4)のように表すことができる。
【0030】
【数4】

・・・(4)
【0031】
この式(4)を用いると、式(3)は、以下の式(5)の様に表すことができる。
【0032】
【数5】

・・・(5)
【0033】
Lloyd-Max量子化法は、この式(5)のεを最小化することを目的とする。したがって、式(5)はdn及びrnを変数とするため、εを最小にするすべてのkにおいて、以下の式(6)を満たす各クラスの区間境界dkおよび代表値rkを求めればよい。
【0034】
【数6】

・・・(6)
【0035】
まずdkについて解くと、以下の式(7)が成立する。
【0036】
【数7】

・・・(7)
【0037】
すなわち、以下の式(8)が成立する。
【0038】
【数8】

・・・(8)
【0039】
よって、以下の式(9)の関係を導くことができる。
【0040】
【数9】

・・・(9)
【0041】
これは、区間境界が2つの補正された代表値の平均であることを意味する。
【0042】
次に、rkについて解くと、以下の式(10)が成立する。
【0043】
【数10】

・・・(10)
【0044】
この解は、以下の式(11)のように表すことができる。
【0045】
【数11】

・・・(11)
【0046】
これは、代表値が各クラスの重心になることを意味する。
【0047】
[Lloyd-Max法で量子化を行う画像処理装置]
図1は、画像処理装置の主な構成例を示すブロック図である。図1に示される画像処理装置10は、画像の各画素値のビット深度をNビットからLビット(N>L)に変換するビット深度変換処理(すなわち量子化処理)を、上述したようなLloyd-Max法を用いて行う。
【0048】
図1に示されるように画像処理装置10は、ヒストグラム生成部11、クラス境界決定部12、クラス構成部13、量子化代表値決定部14、テーブル生成部15、およびインデックス画像生成部16を有する。
【0049】
ヒストグラム生成部11は、入力画像(矢印21)内の全ての画素値のヒストグラムを生成し、画素値の最大値と最小値を求め、それらをクラス境界決定部12に供給する(矢印22)。
【0050】
クラス境界決定部12は、供給されたヒストグラムの最大値と最小値の間を2L個のクラスに等間隔に分割するクラス境界を決定し、ヒストグラムとそのクラス境界の情報をクラス構成部13に供給する(矢印23)。
【0051】
クラス構成部13は、入力画像内の全ての画素値を、その値に対応するクラスに振り分ける。クラス構成部13は、ヒストグラム、クラス境界に関する情報、および各画素値に割り当てたクラスの情報等を量子化代表値決定部14に供給する(矢印24)。
【0052】
量子化代表値決定部14は、クラス毎に画素値の重心riを求め、その重心riをそのクラスの代表値とする。量子化代表値決定部14は、いずれかのクラスで代表値が更新される場合、ヒストグラム、クラス境界に関する情報、および各画素値に割り当てたクラスの情報、各クラスの代表値に関する情報等をクラス境界決定部12に戻し(矢印25)、クラス境界を更新させる。
【0053】
クラス境界決定部12は、隣接する2つの代表値の中央値を新たなクラス境界に決定する。クラス境界決定部12は、全ての隣接する2つの代表値の組み合わせについて、つまり、隣り合う代表値と代表値との間の全てに1つずつクラス境界を決定する。クラス構成部13は、更新されたクラスに対して、入力画像内の全ての画素値の振り分けを行う。量子化代表値決定部14は、更新されたクラスについて、上述したように代表値(重心ri)を決定する。
【0054】
このように、クラス境界の決定、各画素値のクラス分け、および各クラスの代表値の決定を繰り返し、代表値が更新されなくなると、量子化代表値決定部14は、決定した各クラスの代表値をテーブル生成部15に供給する(矢印26)。
【0055】
テーブル生成部15は、各クラスの代表値にインデックス(各クラスの識別番号。以下において、クラス番号とも称する)を割り当てるテーブルを生成し、そのテーブルをインデックス画像生成部16に供給するとともに、画像処理装置10の外部に出力する(矢印27)。
【0056】
また、量子化代表値決定部14は、入力画像内の全ての画素値を、それぞれに対応する代表値に変換する(すなわち、入力画像を量子化する)。量子化代表値決定部14は、その代表値(量子化された画素値)をインデックス画像生成部16に供給する(矢印28)。
【0057】
インデックス画像生成部16は、テーブル生成部15から供給されるテーブルを用いて、量子化代表値決定部14から供給される量子化された各画素値(すなわち各クラスの代表値)をインデックス(クラス番号)に変換し、画像処理装置10の外部に出力する(矢印29)。つまり、インデックス画像生成部16は、各画素について、量子化された画素値(代表値)をインデックスに変換することにより、量子化された画像を、各画素値がインデックスによって表されるインデックス画像に変換する。
【0058】
[Lloyd-Max法の量子化処理の流れ]
図2のフローチャートを参照して、この画像処理装置10により実行されるLloyd-Max法の量子化処理の流れの例を説明する。
【0059】
量子化処理が開始されると、ヒストグラム生成部11は、ステップS11において、Nビットの入力画像中のヒストグラムを抽出する。また、ヒストグラム生成部11は、ステップS12において、ヒストグラムから最小値と最大値とを求める。
【0060】
ステップS13において、クラス境界決定部12は、ヒストグラムの最小値と最大値との間を2L個のクラスに等間隔に分割する。ステップS14において、クラス構成部13は、入力画像の全ての画素値を、その値に対応するクラスに振り分ける。ステップS15において、量子化代表値決定部14は、各クラスの重心を求め、その重心をそのクラスの代表値とする。
【0061】
ステップS16において、量子化代表値決定部14は、ステップS15の処理により、各クラスの代表値が更新されるか否かを判定する。少なくともいずれかの代表値が更新されたと判定した場合、量子化代表値決定部14は、処理をステップS17に進める。
【0062】
ステップS17において、クラス境界決定部12は、隣接する2つの代表値の中間値を新たなクラスの区間境界に決定する。つまり、クラス境界決定部12は、更新された代表値に合わせるように、区間境界の更新を行う。ステップS18において、クラス構成部13は、入力画像中の全ての画素値を、その値に対応する更新後のクラスに振り分ける。ステップS18の処理を終了すると、クラス構成部13は、処理をステップS15に戻し、それ以降の処理を繰り返し実行させる。
【0063】
つまり、ステップS16において、いずれの代表値も更新されていないと判定されるまで、ステップS15乃至ステップS18が繰り返し実行される。ステップS16において、いずれの代表値も更新されていないと判定されると、量子化代表値決定部14は、処理をステップS19に進める。
【0064】
ステップS19において、テーブル生成部15は、各クラスの代表値とインデックス(クラス番号)とを対応付けるテーブルを生成する。ステップS20において、量子化代表値決定部14は、入力画像の各画素値を、それぞれのクラスの代表値に変換する(量子化する)。インデックス画像生成部16は、ステップS19において生成されたテーブルを用いて、量子化された画素値を、インデックス(クラス番号)に変換する。
【0065】
ステップS20の処理が終了すると、インデックス画像生成部16は、量子化処理を終了する。
【0066】
[クラス]
図3に、Lloyd-Max法により生成されたクラスの例を示す。Lloyd-Max法の場合、図3に示されるように、入力画像中の画素最大値aUと画素最小値aLとの間に、2L-1個の区間境界dが等間隔に設定される。つまり、2L個の区間(クラス)が生成される。その区間(クラス)毎に、画素値の重心が算出され、その重心がそのクラスの量子化代表値rとされる。つまり、2L個の量子化代表値rが生成される。
【0067】
[Lloyd-Max法の改良]
ところで、画像は一般にヒストグラムの頻度に偏りを持っているので、Nビット画像が2N個の異なる画素値を持っているとは限らない。むしろ全部持っている方が稀である。従って、画像の多くは、疎な(スパースな)ヒストグラムを持つ。特に、高ダイナミックレンジ画像やRAW画像の場合、ヒストグラムにこのような疎性が強く現れ、画素値の種類数Ne<2Nとなる。
【0068】
このような疎なヒストグラムを持つ画像に対してLloyd-Max量子化を行うと、クラス分けの際にヒストグラムを等間隔に区切るために、クラス内の画素値がすべて出現頻度0のクラスが生成されることである。そのため、式(11)の分母の値が0になって(ゼロ割)、解を持たなくなる。
【0069】
このような場合、汎用数学ソフトMATLABでは、隣接する2つの代表値を同値にすることで、代表値の更新を行う。これにより、出現頻度0のクラスは、その隣のクラスと併合される。最終的に、出現頻度0のクラスが無くなるまでこのような更新が繰り返される。
【0070】
しかしながら、この方法の場合、隣り合うクラス同士が合体され、1つのクラスにされるので、結果としてクラス数が低減される。したがって、量子化誤差が増大し、解の最適性を補償できなくなる恐れがあった。
【0071】
<2.第2の実施の形態>
[量子化を行う画像処理装置]
そこで、本実施の形態においては、クラス数を低減させないように、非ゼロクラス化を行う量子化処理について説明する。
【0072】
図4は、入力画像に対して量子化を行う画像処理装置の主な構成例を示すブロック図である。図4に示される画像処理装置100は、図1の画像処理装置10と同様に、画像の各画素値のビット深度をNビットからLビット(N>L)に変換するビット深度変換処理(すなわち量子化処理)を行う。ただし、画像処理装置100は、上述したようなLloyd-Max法ではなく、以下に説明するように量子化処理を行う。
【0073】
画像処理装置100は、ヒストグラム生成部101、クラス境界決定部102、クラス構成部103、ゼロクラス検出部104、非ゼロクラス化部105、量子化代表値決定部106、テーブル生成部107、およびインデックス画像生成部108を有する。
【0074】
また、非ゼロクラス化部105は、クラス統合部111およびクラス分割部112を有する。
【0075】
ヒストグラム生成部101は、図1のヒストグラム生成部11と同様の処理部であり、入力画像(矢印121)内の全ての画素値のヒストグラムを生成し、画素値の最大値と最小値を求め、それらをクラス境界決定部102に供給する(矢印122)。
【0076】
クラス境界決定部102は、図1のクラス境界決定部12と同様の処理部であり、ヒストグラム生成部101から供給されたヒストグラムの最大値と最小値の間を2L個のクラスに等間隔に分割するクラス境界を決定し、ヒストグラムとそのクラス境界の情報をクラス構成部103に供給する(矢印123)。
【0077】
クラス構成部103は、図1のクラス構成部13と同様の処理部であり、入力画像内の全ての画素値を、その値に対応するクラスに振り分ける。ただし、クラス構成部103は、ヒストグラム、クラス境界に関する情報、および各画素値に割り当てたクラスの情報等を、量子化代表値決定部106若しくはゼロクラス検出部104に供給する(矢印124若しくは矢印130)。
【0078】
より具体的には、クラス構成部103は、最初、各種情報を、ゼロクラス検出部104に供給する(矢印124)。これは、後述するように、ゼロクラス検出部104がゼロクラスを検出し、ゼロクラスが存在する場合は、非ゼロクラス化部105がゼロクラスを統合と分割により非ゼロクラス化するためである。
【0079】
そして、ゼロクラス検出部104や非ゼロクラス化部105の処理により、ゼロクラスが存在しないことが確実になると、クラス構成部103は、各種情報を量子化代表値決定部106に供給する(矢印130)。
【0080】
ゼロクラス検出部104は、クラス構成部103から供給される情報に基づいて、各クラスに画素値の出現頻度を確認し、画素値の出現頻度が0のクラス(ゼロクラス)を検出する。つまり、ゼロクラス検出部104は、画像の各画素値をその値の大きさに応じて分類する複数のクラスの中から、画素値の出現頻度がゼロであるゼロクラスを検出する。
【0081】
ゼロクラスが検出されなかった場合、ゼロクラス検出部104は、クラス構成部103から供給される各種情報と、その検出結果を量子化代表値決定部106に供給する(矢印125)。また、ゼロクラスが検出された場合、ゼロクラス検出部104は、クラス構成部103から供給される各種情報と、その検出結果を非ゼロクラス化部105のクラス統合部111に供給する(矢印126)。
【0082】
非ゼロクラス化部105は、ゼロクラス検出部104により検出されたゼロクラスの非ゼロクラス化を行う。つまり、非ゼロクラス化部105は、ゼロクラスの区間境界の位置を更新することにより、クラスの総数を更新せずに、画素値の出現頻度が0とならないようにする(区間境界を、画素値を1つ以上含むような位置に移動させる)。
【0083】
非ゼロクラス化部105のクラス統合部111は、ゼロクラス検出部104から供給される情報に基づいて、ゼロクラス検出部104により検出されたゼロクラスを、その隣の、画素値の出現頻度が0でない非ゼロクラスに統合する。クラス統合部111は、ゼロクラス検出部104から供給される情報とともに、その統合結果を示す情報をクラス分割部112に供給する(矢印127)。
【0084】
クラス分割部112は、クラス統合部111から供給された情報に基づいて、クラス統合部111により統合されたクラスを、いずれのクラスも非ゼロクラスとなるようにクラス境界を定め、クラスを分割する。
【0085】
例えば、クラス統合部111により、あるゼロクラスがその隣の非ゼロクラスに統合され、1つのクラスとされた場合、クラス分割部112は、その統合後のクラスを、2つに分割する。このとき、クラス分割部112は、分割後の全てのクラスに画素値が出現するような位置でクラス分割を行う。このようにすることにより、非ゼロクラス化が実現される。
【0086】
例えば、図5Aに示されるように、区間境界dx-1とdxの間には画素値が存在している(すなわち非ゼロクラスである)が、区間境界dxとdx+1との間には画素値が存在していない(すなわちゼロクラスである)とする。この場合、クラス統合部111は、頻度ゼロの区間(すなわち、区間境界dxとdx+1との間)を、隣接する非ゼロの区間(すなわち、区間境界dx-1とdxの間)と統合する。そして、クラス分割部112は、その統合後の区間(区間境界dx-1とdx+1との間)の、区間境界dx-1とdxの間と、区間境界dxとdx+1との間の両方に、最低1個の画素サンプルが存在するような位置に、区間境界dxを定める。
【0087】
図5Bに示される例の場合、区間境界dx-1とdx+1との間に3個の画素サンプルが存在しており、クラス分割部112は、区間境界dx-1とdxの間に画素サンプルが1個存在し、区間境界dxとdx+1との間に画素サンプルが2個存在するような位置に、区間境界dxを定めている。
【0088】
このようなクラスの統合と分割により、ゼロクラスが非ゼロクラス化される。なお、ゼロクラス検出部104は、全てのゼロクラスを検出し、非ゼロクラス化部105は、各ゼロクラスを、上述したような方法で非ゼロクラス化する。
【0089】
なお、クラス統合部111は、互いに隣接しているクラス同士(連続するクラス同士)であれば、3つ以上のクラスを統合することもできる。例えば、統合後のクラスにおいて、画素値の出現頻度が、統合したクラスの数より少ない場合、クラス分割部112は、分割後の全てのクラスを非ゼロクラスとするようにクラス分割を行うことができない(すなわち、非ゼロクラス化が実現されない)。そこで、クラス統合部111は、統合後のクラスにおいて、ゼロクラス検出部104により検出されたゼロクラスを、画素値の出現頻度が統合したクラスの数以上となるまで、隣接するクラスに統合する。
【0090】
例えば、ゼロクラスに隣接するクラスにおいて画素値の出現頻度が「0」若しくは「1」の場合、ゼロクラスとそのクラスを統合しても、統合後のクラスの画素値の出現頻度は「0」若しくは「1」であり、統合したクラスの数「2」より少ない。このような場合、クラス統合部111は、その統合後のクラスを、さらに、そのクラスに隣接するクラスに統合する。その結果、統合後のクラスにおいて画素値の出現頻度が、統合したクラスの数「3」より少ない場合、さらに、同様のクラス統合が繰り返される。統合後のクラスにおいて画素値の出現頻度が、統合したクラスの数以上となった時点で、このようなクラス統合が終了される。クラス統合部111は、このような処理を各クラスについて行い、全てのクラスにおいて画素値の出現頻度が統合したクラスの数以上となるようにする。
【0091】
このようにすることにより、例えば、ゼロクラスが複数連続する場合や、ゼロクラスの隣のクラスにおいて画素値の出現頻度が1の場合等においても、非ゼロクラス化を実現することができる。
【0092】
クラス分割部112は、クラス統合部111から供給される情報とともに、その分割結果を示す情報を量子化代表値決定部106に供給する(矢印128)。
【0093】
量子化代表値決定部106は、図1の量子化代表値決定部14と同様の処理部であり、クラス毎に画素値の重心を求め、その重心をそのクラスの代表値に決定する。ただし、量子化代表値決定部106は、クラス構成部103、ゼロクラス検出部104、若しくは非ゼロクラス化部105(クラス分割部112)から供給される情報に基づいて、クラスの代表値に決定する。
【0094】
図5Bの例の場合、量子化代表値決定部106は、区間境界dx-1とdxの間と、区間境界dxとdx+1との間とのそれぞれについて、量子化代表値rを決定する。図5Bの例の場合、区間境界dx-1とdxの間の画素サンプル数は1個であるので、図5Cに示されるように、その画素サンプルがその区間内の画素サンプルの重心となる。つまり、その唯一の画素サンプルが量子化代表値rとされる。また、図5Bの例の場合、区間境界dx-1とdxの間の画素サンプル数は2個であるので、図5Cに示されるように、その2個の画素サンプルの中央値がその区間内の画素サンプルの重心となる。つまり、その2個の画素サンプルの中央値が量子化代表値rとされる。
【0095】
また、この処理により、各クラスの代表値の初期値に決定された場合、若しくは、少なくともいずれかの代表値が更新される場合、量子化代表値決定部106は、ヒストグラム、クラス境界に関する情報、および各画素値に割り当てたクラスの情報、各クラスの代表値に関する情報等をクラス境界決定部102に戻し(矢印129)、クラス境界を更新させる。
【0096】
クラス境界決定部102は、量子化代表値決定部106から供給される情報に基づいて、隣接する2つの代表値の中央値を新たなクラス境界に決定する。クラス境界決定部102は、全ての隣接する2つの代表値の組み合わせについて、つまり、隣り合う代表値と代表値との間の全てに1つずつクラス境界を決定する。クラス構成部103は、このようにクラス境界決定部102により更新されたクラスに対して、入力画像内の全ての画素値の振り分けを行う。
【0097】
なお、一度、非ゼロクラス化部105により各クラスが非ゼロクラス化された場合、若しくは、ゼロクラス検出部104によりゼロクラスが検出されなかった場合、区間境界をを更新しても、ゼロクラスは存在しないので、ゼロクラス検出部104によるゼロクラスの検出や、非ゼロクラス化部105による非ゼロクラス化は、省略することができる。
【0098】
つまり、クラス構成部103は、このような、更新されたクラスについての処理の場合、上述した各種情報を量子化代表値決定部106に供給する(矢印130)。
【0099】
量子化代表値決定部106は、クラス構成部103から更新されたクラスについて、上述したように代表値を決定する。代表値が更新されなくなると、量子化代表値決定部106は、決定した各クラスの代表値をテーブル生成部107に供給する(矢印131)。
【0100】
以上のようなループ処理により代表値が収束した結果の例を図6に示す。例えばd0とd1との間には画素値が少ないために区間幅が広い、つまり区間が疎に分割される。これに対して、dxとdx+1との間には画素値が多いために区間幅が狭い、つまり区間が密に分割される。
【0101】
テーブル生成部107は、図1のテーブル生成部15と同様の処理部であり、各クラスの代表値にインデックス(クラス番号)を割り当てるテーブルを生成し、そのテーブルをインデックス画像生成部108に供給するとともに、画像処理装置100の外部に出力する(矢印132)。
【0102】
図7は、テーブル生成部107により生成されるテーブルの例を示す図である。図7に示されるように、テーブル生成部107は、各代表値にクラス番号(インデックス)を割り当てるテーブルを生成する。ここで、Neは、量子化後の画素値J(x,y)の全総数であり、図中の13,25,・・・・は実際の量子化後の画素値J(x,y)である。このように収束後の量子化画素値を順番に並べたテーブルを生成する。
【0103】
また、量子化代表値決定部106は、入力画像内の全ての画素値を、それぞれに対応するクラスの代表値に変換する(すなわち、入力画像を量子化する)。量子化代表値決定部106は、その代表値(量子化された画素値)をインデックス画像生成部108に供給する(矢印133)。
【0104】
インデックス画像生成部108は、図1のインデックス画像生成部16と同様の処理部であり、テーブル生成部107から供給されるテーブルを用いて、量子化代表値決定部106から供給される量子化された各画素値(すなわち各クラスの代表値)をインデックス(クラス番号)に変換し、画像処理装置100の外部に出力する(矢印134)。つまり、インデックス画像生成部108は、各画素について、量子化された画素値(代表値)をインデックスに変換することにより、量子化された画像を、各画素値がインデックスによって表されるインデックス画像に変換する。
【0105】
図8は、インデックス画像生成部108によるインデックス画像の生成の様子の例を説明する図である。図8の例において、インデックス画像生成部108は、図8の左側に示される量子化後の画素値J(x,y)を、テーブル上の、その画素値に対応するインデックス番号K(x,y)へ変換する。図8において明らかな様に、J(x,y)に比べてK(x,y)の絶対値は遥かに小さい。したがって、このように量子化後の画素値をインデックス化することにより、画像処理装置100は、高い圧縮効果を期待することができる。
【0106】
以上のように、画像処理装置100は、クラス数を低減させずに、全てのクラスの非ゼロクラス化を実現することができる。したがって、画像処理装置100は、従来のLloyd-Max法の量子化では最小誤差を供することができなかった疎な画像(量子化区間内のクラスで画素が存在しないもの)に対しても、量子化誤差を十分に抑制することができ、最小誤差を与えることができる。
【0107】
なお、テーブル生成部107により生成されるテーブル、および、インデックス画像生成部108により生成されるインデックス画像の情報量は、量子化後の画像のデータ量に比べれば遥かに小さい。したがって、画像処理装置100は、このインデックス画像をそのまま受信側に送出するようにしてもよいが、公知の任意の圧縮手段を用いて圧縮してから送出するようにしても良い。
【0108】
[量子化処理の流れ]
図9のフローチャートを参照して、画像処理装置100による量子化処理の流れの例を説明する。
【0109】
量子化処理が開始されると、ヒストグラム生成部101は、ステップS101において、Nビットの入力画像中のヒストグラムを抽出する。また、ヒストグラム生成部101は、ステップS102において、ヒストグラムから最小値と最大値とを求める。
【0110】
ステップS103において、クラス境界決定部102は、ヒストグラムの最小値と最大値との間を2L個のクラスに等間隔に分割する。ステップS104において、クラス構成部103は、入力画像の全ての画素値を、その値に対応するクラスに振り分ける。
【0111】
ステップS105において、ゼロクラス検出部104は、生成されたクラスについて、画素値の出現頻度がゼロのゼロクラスが存在するか否かを判定する。ステップS104の処理により画素値が振り分けられなかったクラス(すなわち、ゼロクラス)が存在すると判定した場合、ゼロクラス検出部104は、処理をステップS106に進める。
【0112】
ステップS106において、非ゼロクラス化部105のクラス統合部111は、非ゼロクラス化できるようにゼロクラスを非ゼロクラスと統合する。より具体的には、クラス統合部111は、必要に応じて隣り合うクラス同士を統合し、統合後の各クラスにおいて、そのクラスに属する画素値の数が、そのクラスを生成するために統合したクラス数以上となるように、連続するクラス同士を統合する。
【0113】
ステップS107において、非ゼロクラス化部105のクラス分割部112は、全て非ゼロクラスになるように、統合されたクラスを分割する。つまり、クラス分割部112は、クラス統合部111において統合されたクラスを統合前のクラス数となるように分割する。このとき、クラス分割部112は、全てのクラスに画素値が属するように区間境界の位置を調整して分割する。
【0114】
このような処理により、非ゼロクラス化部105は、クラス数を変化させずに、全てのクラスを非ゼロクラス化することができる。
【0115】
ステップS107の処理が終了すると、クラス分割部112は、処理をステップS108に進める。また、ステップS105において、ゼロクラスが存在しないと判定した場合、ゼロクラス検出部104は、処理をステップS108に進める。
【0116】
ステップS108において、量子化代表値決定部106は、各クラスの重心を求め、その重心をそのクラスの代表値とする。ステップS109において、量子化代表値決定部106は、ステップS108の処理により、各クラスの代表値が更新されるか否かを判定する。少なくともいずれかの代表値が更新されたと判定した場合、量子化代表値決定部106は、処理をステップS110に進める。
【0117】
ステップS110において、クラス境界決定部102は、隣接する2つの代表値の中央値を新たな区間境界に決定する。つまり、クラス境界決定部102は、更新された代表値に合わせるように、区間境界の更新を行う。ステップS111において、クラス構成部103は、入力画像中の全ての画素値を、その値に対応する更新後のクラスに振り分ける。ステップS111の処理を終了すると、クラス構成部103は、処理をステップS108に戻し、それ以降の処理を繰り返し実行させる。
【0118】
つまり、ステップS109において、いずれの代表値も更新されていないと判定されるまで、ステップS108乃至ステップS111が繰り返し実行される。ステップS109において、いずれの代表値も更新されていないと判定されると、量子化代表値決定部106は、処理をステップS112に進める。
【0119】
ステップS112において、テーブル生成部107は、各クラスの代表値とインデックス(クラス番号)とを対応付けるテーブルを生成する。ステップS113において、量子化代表値決定部106は、入力画像の各画素値を、それぞれのクラスの代表値に変換する(量子化する)。インデックス画像生成部108は、ステップS112において生成されたテーブルを用いて、量子化された画素値を、インデックス(クラス番号)に変換する。
【0120】
ステップS113の処理が終了すると、インデックス画像生成部108は、量子化処理を終了する。
【0121】
以上のように処理を行うことにより、画像処理装置100は、疎な画像に対しても、クラス数を低減させずに全てのクラスの非ゼロクラス化を実現することができ、量子化誤差を十分に抑制することができる。
【0122】
<3.第3の実施の形態>
[ブロック毎に量子化を行う画像処理装置]
なお、第2の実施の形態において説明した量子化は、処理対象の画像を複数に分割するブロック毎に行われるようにしてもよい。
【0123】
図10は、その場合の画像処理装置の主な構成例を示すブロック図である。
【0124】
図10に示される画像処理装置200は、画像ブロック分割部201、並びに、ブロック1ビット深度変換部202−1、ブロック2ビット深度変換部202−2、・・・、ブロックXビット深度変換部202−Xを有する。つまり、画像処理装置200は、1個の画像ブロック分割部201と、X個のビット深度変換部202を有する。
【0125】
画像ブロック分割部201は、入力画像P(x,y)(矢印211)を、予め定められた所定数(X個)の矩形ブロックに分割する。各ブロックの形状は任意である。例えば、画像ブロック分割部201が、入力画像を横M個×縦N個(=X個)のブロックに分割するようにしてもよい。また、例えば、画像ブロック分割部201が、入力画像をスライスのように縦方向にX個のブロックに分割するようにしてもよい。さらに、各ブロックのサイズおよび形状は、全て同一でなくてもよい。
【0126】
画像ブロック分割部201は、各ブロックの画像を、それぞれのブロックに対応するビット深度変換部202に供給する。例えば、画像ブロック分割部201は、ブロック1の画像P1(x,y)を、ブロック1ビット深度変換部202−1に供給する(矢印212−1)。また、例えば、画像ブロック分割部201は、ブロック2の画像P2(x,y)を、ブロック2ビット深度変換部202−2に供給する(矢印212−2)。さらに、例えば、画像ブロック分割部201は、ブロックXの画像PX(x,y)を、ブロックXビット深度変換部202−Xに供給する(矢印212−X)。
【0127】
ビット深度変換部202は、各ブロックの画像に対して、互いに独立に、画像処理装置100と同様の量子化処理を行う処理部である。
【0128】
つまり、ブロック1ビット深度変換部202−1は、画像処理装置100と同様の構成を有し、ブロック1の画像P1(x,y)に対して、画像処理装置100と同様の処理を行い、クラス数を低減させずに全てのクラスの非ゼロクラス化し、テーブルT1(k)と、インデックス画像K1(x,y)とを生成し、それらを画像処理装置200の外部に出力する(矢印213−1)。
【0129】
また、ブロック2ビット深度変換部202−2は、画像処理装置100と同様の構成を有し、ブロック2の画像P2(x,y)に対して、画像処理装置100と同様の処理を行い、クラス数を低減させずに全てのクラスの非ゼロクラス化し、テーブルT2(k)と、インデックス画像K2(x,y)とを生成し、それらを画像処理装置200の外部に出力する(矢印213−2)。
【0130】
さらに、その他のブロックについても、各ブロックに対応するビット深度変換部202が、同様の処理を行う。そして、ブロックXビット深度変換部202−Xは、画像処理装置100と同様の構成を有し、ブロックXの画像PX(x,y)に対して、画像処理装置100と同様の処理を行い、クラス数を低減させずに全てのクラスの非ゼロクラス化し、テーブルTX(k)と、インデックス画像KX(x,y)とを生成し、それらを画像処理装置200の外部に出力する(矢印213−X)。
【0131】
ブロック1ビット深度変換部202−1乃至ブロックXビット深度変換部202−Xは、互いに独立に処理を行うことができる。つまり、ブロックXビット深度変換部202−Xの一部または全部が、互いに並行して処理を行う(複数のブロックに対して並列に処理を行う)ようにしてもよいし、互いに異なるタイミングにおいて処理を行うようにしてもよい。
【0132】
ブロック毎の画像は、画像全体に比べて画素値の総数が少なくなるので、疎性が高まる。したがって、各ブロックの画像を量子化して逆量子化した場合に生じる量子化誤差は、画像全体に対して同様の処理を行う場合よりも低減される。また、各ブロックに対する量子化を並列に実行することにより、処理時間を低減させることもできる。
【0133】
ただし、画像全体に対して量子化・逆量子化(ビット変換)を行う場合の方が、必要なテーブル数が低減され、その分情報量を低減させることができる。
【0134】
なお、上述したように各ブロックの大きさおよび形状は任意であるので、画像ブロック分割部211が、入力画像の内容に応じて、疎性が高まる様にブロック化するようにしてもよい。
【0135】
[量子化処理の流れ]
この画像処理装置200により実行される量子化処理の流れの例を、図11のフローチャートを参照して説明する。
【0136】
量子化処理が開始されると、ステップS201において、画像ブロック分割部201は、入力画像を複数のブロックに分割する。
【0137】
ステップS202において、ビット深度変換部202(ブロック1ビット深度変換部202−1乃至ブロックXビット深度変換部202−X)は、処理対象ブロックを、図9のフローチャートを参照して説明した場合と同様に量子化する。
【0138】
ステップS203において、ビット深度変換部202(ブロック1ビット深度変換部202−1乃至ブロックXビット深度変換部202−X)は、全てのブロックが量子化されたか否かを判定する。未処理のブロックが存在すると判定された場合、ビット深度変換部202は、処理をステップS202に戻す。その未処理のブロックに対応するビット深度変換部202が、その未処理のブロックに対して量子化処理を行う。
【0139】
ステップS203において、ステップS201において生成された全てのブロックが量子化されたと判定された場合、ビット深度変換部202は、量子化処理を終了する。
【0140】
このように処理を行うことにより、画像処理装置200は、量子化誤差をより低減させることができる。
【0141】
<4.第4の実施の形態>
[逆量子化を行う画像処理装置
次に、第2の実施の形態において説明した量子化処理に対応する逆量子化処理について説明する。
【0142】
図12は、逆量子化を行う画像処理装置の主な構成例を示すブロック図である。図12に示される画像処理装置300は、第2の実施の形態において説明した画像処理装置100の量子化に対応する逆量子化を行う。
【0143】
図12に示されるように、画像処理装置300は、テーブルバッファ301、インデックス画像バッファ302、逆量子化部303、および画像構成部304を有する。
【0144】
テーブルバッファ301は、画像処理装置100のテーブル生成部107により生成された、各クラスの代表値にインデックス(クラス番号)を割り当てるテーブルを取得し(矢印311)、記憶する。テーブルバッファ301は、所定のタイミングにおいて、若しくは、例えば逆量子化部303等の外部の指示に従って、記憶しているテーブルを逆量子化部303に供給する(矢印312)。
【0145】
インデックス画像バッファ302は、画像処理装置100のインデックス画像生成部108により生成されたインデックス画像を取得し(矢印313)、記憶する。インデックス画像バッファ302は、所定のタイミングにおいて、若しくは、例えば逆量子化部303等の外部の指示に従って、記憶しているインデックス画像を逆量子化部303に供給する(矢印314)。
【0146】
逆量子化部303は、インデックス画像バッファ302から取得したインデックス画像に対して、テーブルバッファ301から取得したテーブルを用いて逆量子化を行う。より具体的には、逆量子化部303は、インデックス画像の各画素値、すなわち、インデックスを、そのインデックスが示すクラスの代表値に変換する。
【0147】
例えば、画像処理装置100のテーブル生成部107が図7に示されるようなテーブルを生成し、画像処理装置100のインデックス画像生成部108が図8に示されるようにインデックス画像K(x,y)を生成したとする。
【0148】
この場合、逆量子化部303は、図13に示されるように逆引き動作を行い、インデックスを、いずれかのクラスの代表値に変換する。例えば、図13の右方に示されるインデックス画像K(x,y)において、インデックス「0」は、図13の下方に示されるテーブルT(k)において代表値「13」に対応する。したがって、逆量子化部303は、インデックス「0」を、値「13」に変換する。逆量子化部303は、また、例えば、インデックス「4」を、同様に、値「60」に変換する。
【0149】
逆量子化部303は、変換後の各画素値(すなわち、いずれかのクラスの代表値)J(x,y)を、Nビットの画素値として画像構成部304に供給する(矢印315)。
【0150】
画像構成部304は、逆量子化部303から供給される各画素値を、逆量子化後の画像の画素値として記憶する。画像構成部304は、所定のタイミングにおいて、若しくは、外部の指示に従って、記憶している各画素値を、逆量子化後の画像の画素値として、画像処理装置300の外部に出力する(矢印316)。
【0151】
このようにすることにより、画像処理装置300は、画像処理装置100が生成したインデックス画像を、正しく逆量子化することができる。したがって、画像処理装置300は、従来のLloyd-Max法の量子化では最小誤差を供することができなかった疎な画像に対しても、量子化誤差の抑制を実現することができる。
【0152】
[逆量子化処理の流れ]
次に、図14のフローチャートを参照して、画像処理装置300により実行される逆慮水化処理の流れの例を説明する。
【0153】
逆量子化処理が開始されると、テーブルバッファ301は、ステップS301において、画像処理装置300に入力される、各クラスの代表値とインデックス(クラス番号)とを対応付けるテーブルを取得する。
【0154】
ステップS302において、インデックス画像バッファ302は、画像処理装置300に入力されるインデックス画像の中の1つのインデックスを取得する。ステップS303において、逆量子化部303は、ステップS301において取得されたテーブルを用いて、ステップS302において取得されたインデックスを逆量子化し、画素値(クラスの代表値)に変換する。ステップS304において、画像構成部304は、ステップS303の処理により得られた画素値を記憶する(保持する)。
【0155】
ステップS305において、逆量子化部303は、全てのインデックスを画素値に変換したか否かを判定し、未処理のインデックスが存在すると判定した場合、処理をステップS302に戻し、それ以降の処理を繰り返す。各インデックスについてステップS302乃至ステップS305の処理が行われ、ステップS305において、処理対象のインデックス画像に含まれる全てのインデックスが処理されたと判定した場合、逆量子化部303は、処理をステップS306に進める。
【0156】
ステップS306において、画像構成部304は、記憶している画素値(インデックス画像に対応する画像)を出力する。その画像を出力すると、画像構成部304は、逆量子化処理を終了する。
【0157】
このように処理を行うことにより、画像処理装置300は、疎な画像に対しても、量子化誤差の抑制を実現することができる。
【0158】
<5.第5の実施の形態>
[ブロック毎に逆量子化を行う画像処理装置]
なお、第4の実施の形態において説明した逆量子化も、量子化の場合と同様に、処理対象の画像を複数に分割するブロック毎に行われるようにすることができる。
【0159】
図15は、その場合の画像処理装置の主な構成例を示すブロック図である。
【0160】
図15に示される画像処理装置400は、ブロック1ビット深度逆変換部401−1、ブロック2ビット深度逆変換部401−2、・・・、ブロックXビット深度逆変換部401−X、並びに、画像ブロック統合部402を有する。つまり、画像処理装置200は、互いに異なるブロックに対応するX個のビット深度逆変換部401と、X個のブロックを統合し1つの画像とする1個の画像ブロック統合部402を有する。
【0161】
画像処理装置400は、画像処理装置200に対応し、画像処理装置200が量子化した画像を逆量子化する。つまり、画像処理装置400は、画像処理装置200において画像がブロック毎に量子化されて生成されたX個のテーブルとX個のインデックス画像を取得する。
【0162】
ブロック1ビット深度逆変換部401−1は、ブロック1ビット深度変換部202−1に対応し、入力されるブロック1のテーブルT1(k)(矢印411−1)を用いて、入力されるブロック1のインデックスK1(x,y)(矢印411−1)を逆量子化する。ブロック1ビット深度逆変換部401−1は、その逆量子化により生成したブロック1の画像P1(x,y)を画像ブロック統合部402に供給する(矢印412−1)。
【0163】
ブロック2ビット深度逆変換部401−2は、ブロック2ビット深度変換部202−2に対応し、入力されるブロック2のテーブルT2(k)(矢印411−2)を用いて、入力されるブロック2のインデックスK2(x,y)(矢印411−2)を逆量子化する。ブロック2ビット深度逆変換部401−2は、その逆量子化により生成したブロック2の画像P2(x,y)を画像ブロック統合部402に供給する(矢印412−2)。
【0164】
ブロック3以降も同様に処理される。そして、ブロックXビット深度逆変換部401−Xは、ブロックXビット深度変換部202−Xに対応し、入力されるブロックXのテーブルTX(k)(矢印411−X)を用いて、入力されるブロックXのインデックスKX(x,y)(矢印411−X)を逆量子化する。ブロックXビット深度逆変換部401−Xは、その逆量子化により生成したブロック2の画像PX(x,y)を画像ブロック統合部402に供給する(矢印412−X)。
【0165】
画像ブロック統合部402は、各ビット深度逆変換部401から供給される各ブロックの画像を統合し、1つの画像P(x,y)を生成し、それを画像処理装置400の外部に出力する(矢印413)。
【0166】
逆量子化の場合も、各ブロックの画像は、画像全体に比べて疎性が高まる。したがって、画像を量子化して逆量子化する場合に生じる量子化誤差は、画像全体に対して同様の処理を行う場合よりも低減される。また、各ブロックに対する逆量子化を並列に実行することにより、処理時間を低減させることもできる。
【0167】
ただし、画像全体に対して量子化・逆量子化(ビット変換)処理を行う場合の方が、必要なテーブル数が低減され、その分情報量を低減させることができる。
【0168】
なお、上述したように各ブロックの大きさおよび形状は任意である。また、各ビット深度逆変換部401の処理は、互いに独立して行うことが可能であり、他のブロックの処理と並列に実行することもできるし、他のブロックの処理と異なるタイミングにおいて行うこともできる。
【0169】
[逆量子化処理の流れ]
この画像処理装置400により実行される逆量子化処理の流れの例を、図16のフローチャートを参照して説明する。
【0170】
逆量子化処理が開始されると、ステップS401において、ビット深度逆変換部401(ブロック1ビット深度逆変換部401−1乃至ブロックXビット深度逆変換部401−X)は、図14のフローチャートを参照して説明した場合と同様に各処理を行い、処理対象ブロックのインデックス画像を逆量子化する。
【0171】
ステップS402において、ビット深度逆変換部401(ブロック1ビット深度逆変換部401−1乃至ブロックXビット深度逆変換部401−X)は、全てのブロックが逆量子化されたか否かを判定する。未処理のブロックが存在すると判定された場合、ビット深度逆変換部401は、処理をステップS401に戻す。その未処理のブロックに対応するビット深度逆変換部401が、その未処理のブロックに対して逆量子化処理を行う。
【0172】
ステップS402において、全てのブロックが逆量子化されたと判定された場合、ビット深度逆変換部401は、処理をステップS403に進める。
【0173】
ステップS403において、画像ブロック統合部402は、ステップS401において逆量子化された各ブロックを統合し、逆量子化された1つの画像を生成する。ステップS403の処理が終了すると、画像ブロック統合部402は、逆量子化処理を終了する。
【0174】
このように処理を行うことにより、画像処理装置400は、量子化誤差をより低減させることができる。
【0175】
[評価結果の例]
次に、以上に説明した量子化処理および逆量子化処理の評価結果の例について説明する。図17に示される12ビット深度の医療画像を量子化・逆量子化の処理対象とする。解像度は水平方向に512画素であり、垂直方向に512画素である。
【0176】
この原画像(N=12ビット)をLビットに量子化し、さらにNビットに逆量子化した画像と、原画像との比較(PSNR(Peak Signal-to-Noise Ratio(ピーク信号対雑音比)))を評価値とする。PSNRが高い程、劣化が小さく抑えられていることになる。なお、Lが8乃至11の4通りについて評価する。
【0177】
図18は、下位ビットを切り捨てる「切り捨て」、下位ビットを四捨五入する「四捨五入」、第1の実施の形態において上述した「Lloyd-Max法」、並びに、第2の実施の形態および第4の実施の形態において説明した「本手法」の4つの量子化・逆量子化方法について、評価値を比較した比較結果を示す図である。
【0178】
なお、図17の画像のヒストグラムを測定した結果、非ゼロの出現数の画素数Ne=1,835であった。211=2,048、210=1,024であるので、この画像は11ビットあれば可逆量子化・逆量子化が可能なことがわかる。従って、図18の表に示されるように、本手法の場合、L=11ではPSNR=∞になる。従って他の3手法と比較して、本手法が最もPSNRが高い。
【0179】
図18の表に示されるように、Lが他の値の場合も、本手法の場合のPSNRは他の3手法の場合よりも高い(劣化が小さい)。例えば、単純な四捨五入法に比べて16.5dB乃至24.5dBの改善効果が得られている。また、例えば、Lloyd-Max法と比べても5dB乃至9dBの改善効果が得られている。
【0180】
次に、第3の実施の形態や第5の実施の形態において説明したように、ブロック分割する場合の評価結果を、図19乃至図21に示す。図19に示される表は、ブロック分割数=4(水平方向2分割、垂直方向2分割)の場合の評価結果を、上述した4手法で比較したものである。この場合の本手法では、図18に示されるブロック分割無しの場合の本手法に比べてさらに0.59dB乃至1.06dBの改善効果が得られている。
【0181】
図20に示される表は、ブロック分割数=16(水平方向4分割、垂直方向4分割)の場合の評価結果を、上述した4手法で比較したものである。この場合の本手法では、図18に示されるブロック分割無しの場合の本手法に比べてさらに2.44dB乃至5.53dBの改善効果が得られている。
【0182】
図21に示される表は、ブロック分割数=100(水平方向10分割、垂直方向10分割)の場合の評価結果を、上述した4手法で比較したものである。この場合の本手法では、図18に示されるブロック分割無しの場合の本手法に比べてさらに6.76dB乃至11.18dBの改善効果が得られている。また、L=10ビットでも可逆量子化・逆量子化が可能になっている。
【0183】
以上のように、本手法を用いることにより、量子化・逆量子化による量子化誤差をより低減させることができ、より高画質な画像を得るように量子化・逆量子化(ビット変換)を行うことが出来る。
【0184】
<6.第6の実施の形態>
[複数フレーム対応のテーブルを生成する画像処理装置]
以上においては、量子化の際に、ヒストグラムを生成し、クラス分けを行い、ゼロクラスが存在する場合には非ゼロクラス化を行い、各クラスの代表値を決定し、その各クラスの代表値とインデックス(クラス番号)とを対応させるテーブルを生成し、そのテーブルに基づいて、インデックス画像を生成するように説明した。このような量子化・逆量子化を、動画像の各フレームに対して、再生フレームレートが低減しないようにリアルタイム(即時的)に行うようにしてもよい。その場合(再生フレームレートに応じた実時間での動作を要求される場合)、負荷が大きいので、高速のハードウエアまたはプロセッサが必要になり、コストが増大する可能性がある。
【0185】
また、画像のアーカイブやデジタルシネマ用のエンコード用途等では、必ずしも実時間での動作を要求されず、むしろ少しでも高画質であることが重要視される。このような場合、量子化処理や逆量子化処理がリアルタイムに行われないようにしてもよい。例えば、画像処理装置が、各フレームについてのテーブルを事前に生成し、そのテーブルを用いてインデックス画像生成のみをリアルタイムに行うようにしてもよい。このようにすることにより、実時間で動作すべき処理が、代表値からインデックスへの変換処理のみに低減されるので、リアルタイムな動作の実現が容易になる(コストを低減させることもできる)。
【0186】
また、その場合、テーブルは、1フレーム毎生成するようにすることもできるが、それだけではなく、複数フレームに対して1つ生成するようにすることもできる。このようにすることにより、テーブル生成の処理が容易になるだけでなく、テーブル数の削減によるデータ量の低減も実現される。
【0187】
図22は、その場合の、テーブルを生成する画像処理装置の主な構成例を示すブロック図である。図22に示される画像処理装置500は、インデックス画像の生成(各画素の代表値からインデックスへの変換)に先立って、その処理に必要な、各クラスの代表値とインデックス(クラス番号)とを対応させるテーブルを生成する。
【0188】
図22に示されるように、画像処理装置500は、複数フレーム入力部501、ヒストグラム生成部502、クラス境界決定部503、クラス構成部504、ゼロクラス検出部505、非ゼロクラス化部506、量子化代表値決定部507、およびテーブル生成部508を有する。また、非ゼロクラス化部506は、クラス統合部511およびクラス分割部512を有する。
【0189】
複数フレーム入力部501は、入力される動画像の各フレーム画像(矢印521)を保持し、所定の数のフレーム毎に全画素値を所定順にヒストグラム生成部502に供給する(矢印522)。
【0190】
ヒストグラム生成部502、クラス境界決定部503、およびクラス構成部504は、それぞれ、図4のヒストグラム生成部101、クラス境界決定部102、およびクラス構成部103と同様の構成を有し、同様の処理を行う。また、ゼロクラス検出部505、非ゼロクラス化部506、量子化代表値決定部507、およびテーブル生成部508は、それぞれ、図4のゼロクラス検出部104、非ゼロクラス化部105、量子化代表値決定部106、およびテーブル生成部107と同様の構成を有し、同様の処理を行う。さらに、クラス統合部511およびクラス分割部512は、それぞれ、図4のクラス統合部111およびクラス分割部112と同様の構成を有し、同様の処理を行う。
【0191】
ただし、ヒストグラム生成部502、クラス境界決定部503、およびクラス構成部504、ゼロクラス検出部505、非ゼロクラス化部506、量子化代表値決定部507、およびテーブル生成部508は、複数フレームを処理単位として各処理を行う。
【0192】
つまり、ヒストグラム生成部502は、複数のフレーム画像(矢印522)内の全ての画素値のヒストグラムを生成し、画素値の最大値と最小値を求め、それらをクラス境界決定部503に供給する(矢印523)。
【0193】
クラス境界決定部503は、ヒストグラム生成部502から供給された、複数のフレーム画像に対応するヒストグラムの最大値と最小値の間を2L個のクラスに等間隔に分割するクラス境界を決定し、ヒストグラムとそのクラス境界の情報をクラス構成部504に供給する(矢印524)。
【0194】
クラス構成部504は、複数のフレーム画像内の全ての画素値を、その値に対応するクラスに振り分ける。クラス構成部504は、ヒストグラム、クラス境界に関する情報、および各画素値に割り当てたクラスの情報等を、最初、ゼロクラス検出部505に供給する(矢印525)。そして、ゼロクラス検出部505や非ゼロクラス化部506の処理により、ゼロクラスが存在しないことが確実になると、クラス構成部504は、各種情報を量子化代表値決定部507に供給する(矢印531)。
【0195】
ゼロクラス検出部505は、クラス構成部504から供給される情報に基づいて、画素値の出現頻度が0のクラス(ゼロクラス)を検出する。ゼロクラスが検出されなかった場合、ゼロクラス検出部505は、クラス構成部504から供給される各種情報と、その検出結果を量子化代表値決定部507に供給する(矢印526)。また、ゼロクラスが検出された場合、ゼロクラス検出部505は、クラス構成部504から供給される各種情報と、その検出結果を非ゼロクラス化部506のクラス統合部511に供給する(矢印527)。
【0196】
非ゼロクラス化部506は、ゼロクラス検出部505により検出されたゼロクラスの非ゼロクラス化を行う。クラス統合部511は、ゼロクラス検出部505から供給される情報に基づいて、ゼロクラスをその隣の非ゼロクラスに統合する。クラス統合部511は、ゼロクラス検出部505から供給される情報とともに、その統合結果を示す情報をクラス分割部512に供給する(矢印528)。
【0197】
クラス分割部512は、クラス統合部511から供給された情報に基づいて、クラス統合部511により統合されたクラスを、いずれのクラスも非ゼロクラスとなるようにクラス境界を定め、クラスを分割する。クラス分割部512は、クラス統合部511から供給される情報とともに、その分割結果を示す情報を量子化代表値決定部507に供給する(矢印529)。
【0198】
量子化代表値決定部507は、クラス毎に画素値の重心を求め、その重心をそのクラスの代表値に決定する。各クラスの代表値の初期値に決定された場合、若しくは、少なくともいずれかの代表値が更新される場合、量子化代表値決定部507は、ヒストグラム、クラス境界に関する情報、および各画素値に割り当てたクラスの情報、各クラスの代表値に関する情報等をクラス境界決定部503に戻し(矢印530)、クラス境界を更新させる。
【0199】
クラス境界決定部503は、全ての隣り合う代表値同士の中間値をクラス境界に決定する。クラス構成部504は、このようにクラス境界決定部503により更新されたクラスに対して、複数フレーム画像内の全ての画素値の振り分けを行う。クラス構成部504は、このような、更新されたクラスについての処理の場合、上述した各種情報を量子化代表値決定部507に供給する(矢印531)。
【0200】
量子化代表値決定部507は、クラス構成部504から更新されたクラスについて、上述したように代表値を決定する。代表値が更新されなくなると、量子化代表値決定部507は、クラス(区間境界等)に関する情報と、決定した各クラスの代表値をテーブル生成部508に供給する(矢印532)。
【0201】
テーブル生成部508は、各クラス(区間境界や代表値)を定義するとともに、各クラスの代表値にインデックス(クラス番号)を割り当てるテーブルを生成し、そのテーブルを画像処理装置500の外部に出力する(矢印533)。
【0202】
つまり、処理対象が、1つの画像の画素値ではなく、複数フレーム画像分の画素値であることと、この時点でインデックス画像を生成しないこと、そのためにテーブルにクラスに関する情報も含めること以外は、図4の画像処理装置100の場合と基本的に同様に処理が行われ、テーブルが生成される。
【0203】
したがって、画像処理装置500は、クラス数を低減させずに、全てのクラスの非ゼロクラス化を実現することができ、従来のLloyd-Max法の量子化では最小誤差を供することができなかった疎な画像に対しても、量子化誤差を十分に抑制することができ、最小誤差を与えることができる。
【0204】
[量子化処理の流れ]
次に、画像処理装置500により実行される量子化処理の流れの例を図23のフローチャートを参照して説明する。この量子化処理は、量子化(ビット深度変換処理)に用いられる、各クラスの代表値とインデックスとを対応付けるテーブルを作成する処理である。
【0205】
量子化処理が開始されると、複数フレーム入力部501は、複数フレーム毎に画素値を供給する。ヒストグラム生成部502は、ステップS501において、その複数フレームについて、画素値のビット深度がNビットの入力画像中のヒストグラムを抽出する。ステップS502において、ヒストグラム生成部502は、ヒストグラムから最小値と最大値を求める。
【0206】
ステップS503において、クラス境界決定部503は、ヒストグラムを2L個のクラスに等間隔に分割する。ステップS504において、クラス構成部504は、複数フレームの全ての画素値をステップS503において分割されたいずれかのクラスに振り分ける。
【0207】
ステップS505において、ゼロクラス検出部505は、ゼロクラスが存在するか否かを判定し、存在すると判定した場合、処理をステップS506に進める。ステップS506において、クラス統合部511は、非ゼロクラス化できるように、ゼロクラスを非ゼロクラスと統合する。ステップS507において、クラス分割部512は、統合したクラスを、全て非ゼロクラスとなるように分割する。
【0208】
ステップS507の処理が終了すると、クラス分割部512は、処理をステップS508に進める。また、ステップS505において、ゼロクラスが存在しないと判定した場合、ゼロクラス検出部505は、処理をステップS508に進める。
【0209】
ステップS508において、量子化代表値決定部507は、各クラスの重心を求め、それをクラスの代表値とする。ステップS509において、量子化代表値決定部507は、ステップS508の処理により代表値が更新されたか否かを判定する。代表値が新たに設定された若しくは更新されたと判定した場合、量子化代表値決定部507は、処理をステップS510に進める。
【0210】
ステップS510において、クラス境界決定部503は、隣接する2つの代表値の中間値を新たなクラスの区間境界とする。ステップS511において、クラス構成部504は、複数フレームの全ての画素値を新しいクラスに振り分け、処理をステップS508に戻し、それ以降の処理を繰り返す。
【0211】
また、ステップS509において、代表値が更新されなかったと判定した場合、量子化代表値決定部507は、処理をステップS512に進める。
【0212】
ステップS512において、テーブル生成部508は、各クラス(区間境界や代表値)を定義するとともに、各クラスの代表値をそのクラスのインデックスと関連付け、テーブル化する。ステップS512の処理を終了すると、テーブル生成部508は、量子化処理を終了する。
【0213】
以上のように量子化処理を行うことにより、画像処理装置500は、クラス数を低減させずに、全てのクラスの非ゼロクラス化を実現することができ、従来のLloyd-Max法の量子化では最小誤差を供することができなかった疎な画像に対しても、量子化誤差を十分に抑制することができ、最小誤差を与えるようにテーブルを生成することができる。
【0214】
[ビット深度変換を行う画像処理装置]
以上のようにして生成されたテーブルは、量子化・逆量子化に利用される。
【0215】
図24は、この場合の量子化若しくは逆量子化を行う画像処理装置の主な構成例を示すブロック図である。図24Aは、画像処理装置500により生成されたテーブルを用いて量子化を行う画像処理装置の主な構成例を示すブロック図である。
【0216】
図24Aに示されるように、この場合の画像処理装置600は、テーブルバッファ601およびインデックス画像生成部602を有する。テーブルバッファ601は、画像処理装置500により生成されたテーブルを取得し(矢印611)、記憶する。インデックス画像生成部602は、テーブルバッファ601からテーブルを取得し(矢印613)、また、量子化処理対象の画素値を取得する(矢印612)。インデックス画像生成部602は、量子化処理対象(ビット深度変換対象)の各画素値を、テーブルを用いて、まず、その画素値が対応するクラスを特定し、そのクラスの代表値に変換し、さらにその代表値をインデックスに変換する(量子化処理を行う)。インデックス画像生成部602は、得られたインデックス画像を出力する(矢印614)。
【0217】
以上のように、画像処理装置600は、テーブルを用いることにより、容易に量子化を行うことができる。
【0218】
図24Bは、画像処理装置500により生成されたテーブルを用いて逆量子化を行う画像処理装置の主な構成例を示すブロック図である。
【0219】
図24Bに示されるように、この場合の画像処理装置700は、テーブルバッファ701および逆量子化部702を有する。テーブルバッファ701は、画像処理装置500により生成されたテーブルを取得し(矢印711)、それを記憶する。逆量子化部702は、テーブルバッファ701からテーブルを取得し(矢印713)、また、逆量子化処理対象のインデックス画像を取得する(矢印712)。逆量子化部702は、各インデックスを、テーブルを用いて、そのインデックスが対応するクラスの代表値に変換する(逆量子化処理を行う)。逆量子化部702は、得られた画像を出力する(矢印714)。
【0220】
以上のように、画像処理装置700は、テーブルを用いることにより、容易に逆量子化を行うことができる。
【0221】
なお、以上においては、時間軸方向に並ぶ複数の画像(フレーム画像)毎に共通のテーブルを生成するように説明したが、時間軸方向に限らず、複数の画像に対して共通のテーブルを生成するようにしてもよい。例えば、複数の静止画に対して共通のテーブルを生成するようにしてもよいし、サイドバイサイド等の立体視用の動画像フォーマットにおける左眼用の画像と右眼用の画像に対して共通のテーブルを生成するようにしてもよい。生成方法は、上述した複数フレームの場合と同様である。
【0222】
本技術は、例えば撮像素子から読み出された画像、デジタルスキャナーを用いて取り込まれた画像、或いは医用画像、電子顕微鏡画像、デジタルシネマ画像、および、放送品質の画像等、特に高いビット深度を持った画像に対して行うビット深度変換(または逆変換)に用いるのに好適である。本技術を適用することにより、ビット深度変換、逆変換後に復元される画像の、オリジナルの画像と比較した場合の画質劣化を抑制することができる。
【0223】
なお、以上に説明した各実施の形態の画像処理装置を組み合わせ1つの画像処理装置としてもよい。例えば、画像処理装置100を量子化部とし、画像処理装置300を逆量子化部とし、それらを1つの画像処理装置に含めるようにしてもよい。また、例えば、画像処理装置200を量子化部とし、画像処理装置400を逆量子化部とし、それらを1つの画像処理装置に含めるようにしてもよい。さらに、例えば、画像処理装置500乃至画像処理装置700を1つの画像処理装置に含めるようにしてもよい。
【0224】
また、以上に説明した各装置は、それぞれ、上述した以外の構成を含むようにしてももちろんよい。例えば、撮像素子(CMOS、CCDセンサ)からキャプチャした画像を用いた機器やデバイス、撮像素子画像をメモリに書き込むまでの圧縮回路、デジタルスチルカメラ、動画用カムコーダ、医療用画像カメラ、医療用内視鏡、監視カメラ、デジタルシネマ撮影用カメラ、両眼画像カメラ、多眼画像カメラ、LSIチップでのメモリ削減回路、PC上のオーサリング・ツールまたはそのソフトウェア・モジュール等として構成されるようにしてもよい。また、1つの装置としてだけでなく、複数の装置よりなるシステムとして構成されるようにしてもよい。
【0225】
<7.第7の実施の形態>
[パーソナルコンピュータ]
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。この場合、例えば、図25に示されるようなパーソナルコンピュータとして構成されるようにしてもよい。
【0226】
図25において、パーソナルコンピュータ800のCPU(Central Processing Unit)801は、ROM(Read Only Memory)802に記憶されているプログラム、または記憶部813からRAM(Random Access Memory)803にロードされたプログラムに従って各種の処理を実行する。RAM803にはまた、CPU801が各種の処理を実行する上において必要なデータなども適宜記憶される。
【0227】
CPU801、ROM802、およびRAM803は、バス804を介して相互に接続されている。このバス804にはまた、入出力インタフェース810も接続されている。
【0228】
入出力インタフェース810には、キーボード、マウスなどよりなる入力部811、CRT(Cathode Ray Tube)ディスプレイやLCD(Liquid Crystal Display)等のディスプレイ、並びにスピーカなどよりなる出力部812、フラッシュメモリ等SSD(Solid State Drive)やハードディスクなどよりなる記憶部813、有線LAN(Local Area Network)や無線LANのインタフェースやモデムなどよりなる通信部814が接続されている。通信部814は、インターネットを含むネットワークを介しての通信処理を行う。
【0229】
入出力インタフェース810にはまた、必要に応じてドライブ815が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア821が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部813にインストールされる。
【0230】
上述した一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
【0231】
この記録媒体は、例えば、図25に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc - Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、若しくは半導体メモリなどよりなるリムーバブルメディア821により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM802や、記憶部813に含まれるハードディスクなどにより構成される。
【0232】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【0233】
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0234】
また、本明細書において、システムとは、複数のデバイス(装置)により構成される装置全体を表すものである。
【0235】
また、以上において、1つの装置(または処理部)として説明した構成が、複数の装置(または処理部)として構成されるようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成が、まとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成が付加されるようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部が他の装置(または他の処理部)の構成に含まれるようにしてもよい。つまり、本開示の実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。
【0236】
なお、本技術は以下のような構成も取ることができる。
(1) 画像の各画素値をその値の大きさに応じて分類する複数のクラスの中から、画素値の出現頻度がゼロであるゼロクラスを検出するゼロクラス検出部と、
前記ゼロクラス検出部により検出されたゼロクラスの範囲を更新することにより、前記クラスの総数を更新せずに、前記ゼロクラスを、前記画素値の出現頻度が1以上の非ゼロクラスに変換する非ゼロクラス化部と
を備える画像処理装置。
(2) 前記非ゼロクラス化部は、
前記ゼロクラス検出部により検出されたゼロクラスを、画素値の出現頻度が統合したクラスの数以上となるまで、隣接するクラスに統合するクラス統合部と、
前記クラス統合部により統合されたクラスを、いずれのクラスも非ゼロクラスとなるように、統合前の数のクラスに分割するクラス分割部と
を備える前記(1)に記載の画像処理装置。
(3) 前記クラスの境界を決定するクラス境界決定部と、
前記クラス境界決定部により決定された境界で区切られる各クラスに、各画素値を、その値に応じて割り当てるクラス構成部と、
前記クラス境界決定部により決定された境界で区切られる各クラスにおいて、前記クラス構成部により割り当てられた画素値の重心を算出し、前記重心を代表値として決定する代表値決定部と
をさらに備える前記(1)または(2)に記載の画像処理装置。
(4) 前記クラス境界決定部は、前記画素値の最大値および最小値の間を、前記画素値のビット深度よりも少ない数のクラスに分割するように、前記境界を決定する
前記(3)に記載の画像処理装置。
(5) 前記代表値決定部は、前記非ゼロクラス化部によりゼロクラスが非ゼロクラスに変換された後、各クラスにおいて前記重心を算出し、前記代表値とする
前記(3)または(4)に記載の画像処理装置。
(6) 前記クラス境界決定部は、隣り合うクラスの、前記代表値決定部により決定された代表値同士の中間値を前記クラスの境界として決定する
前記(5)に記載の画像処理装置。
(7) 前記代表値決定部により決定された各クラスの代表値と、各クラスのインデックスとを対応付けるテーブルを生成するテーブル生成部をさらに備える
前記(3)乃至(6)のいずれかに記載の画像処理装置。
(8) 前記画像の各画素値を、前記画素値に対応するクラスの、前記代表値決定部により決定された代表値に変換する変換部と、
前記テーブル生成部により生成された前記テーブルを用いて、前記変換部により各画素値が変換された前記代表値を、前記代表値のクラスの識別情報であるインデックスに変換するインデックス画像生成部と
をさらに備える前記(7)に記載の画像処理装置。
(9) 前記テーブル生成部により生成された前記テーブルを用いて、前記インデックスを前記代表値に変換する逆量子化部をさらに備える
前記(7)または(8)に記載の画像処理装置。
(10) 前記クラス境界決定部は、複数の画像の全画素値の最大値と最小値との間を複数のクラスに分割するように前記境界を決定し、
前記クラス構成部は、前記クラス境界決定部により決定された境界で区切られる各クラスに、前記複数の画像の全画素値を、その値に応じて割り当て、
前記テーブル生成部は、前記代表値決定部により決定された各クラスの代表値と、各クラスのインデックスとを対応付ける、前記複数の画像に共通のテーブルを生成する
前記(7)乃至(9)のいずれかに記載の画像処理装置。
(11) 前記画像を複数のブロックに分割する画像ブロック分割部をさらに備え、
前記クラス境界決定部、前記クラス構成部、前記代表値決定部、前記ゼロクラス検出部、および前記非ゼロクラス化部は、それぞれ、前記画像ブロック分割部により前記画像が分割された前記ブロック毎に互いに独立に処理を行う
前記(3)乃至(10)のいずれかに記載の画像処理装置。
(12) 前記テーブル生成部により生成された前記テーブルを用いて、前記インデックスを前記代表値に変換する処理を、前記ブロック毎に互いに独立に行う逆量子化部をさらに備える
前記(11)に記載の画像処理装置。
(13) 画像処理装置の画像処理方法であって、
ゼロクラス検出部が、画像の各画素値をその値の大きさに応じて分類する複数のクラスの中から、画素値の出現頻度がゼロであるゼロクラスを検出し、
非ゼロクラス化部が、検出されたゼロクラスの範囲を更新することにより、前記クラスの総数を更新せずに、前記ゼロクラスを、前記画素値の出現頻度が1以上の非ゼロクラスに変換する
画像処理方法。
【符号の説明】
【0237】
100 画像処理装置, 102 クラス境界決定部, 103 クラス構成部, 104 ゼロクラス検出部, 105 非ゼロクラス化部, 106 量子化代表値決定部, 107 テーブル生成部, 108 インデックス画像生成部, 111 クラス統合部, 112 クラス分割部, 200 画像処理装置, 201 画像ブロック分割部, 300 画像処理装置, 301 テーブルバッファ, 302 インデックス画像バッファ, 303 逆量子化部, 304 画像構成部, 400 画像処理装置, 402 画像ブロック統合部, 500 画像処理装置, 501 複数フレーム入力部

【特許請求の範囲】
【請求項1】
画像の各画素値をその値の大きさに応じて分類する複数のクラスの中から、画素値の出現頻度がゼロであるゼロクラスを検出するゼロクラス検出部と、
前記ゼロクラス検出部により検出されたゼロクラスの範囲を更新することにより、前記クラスの総数を更新せずに、前記ゼロクラスを、前記画素値の出現頻度が1以上の非ゼロクラスに変換する非ゼロクラス化部と
を備える画像処理装置。
【請求項2】
前記非ゼロクラス化部は、
前記ゼロクラス検出部により検出されたゼロクラスを、画素値の出現頻度が統合したクラスの数以上となるまで、隣接するクラスに統合するクラス統合部と、
前記クラス統合部により統合されたクラスを、いずれのクラスも非ゼロクラスとなるように、統合前の数のクラスに分割するクラス分割部と
を備える請求項1に記載の画像処理装置。
【請求項3】
前記クラスの境界を決定するクラス境界決定部と、
前記クラス境界決定部により決定された境界で区切られる各クラスに、各画素値を、その値に応じて割り当てるクラス構成部と、
前記クラス境界決定部により決定された境界で区切られる各クラスにおいて、前記クラス構成部により割り当てられた画素値の重心を算出し、前記重心を代表値として決定する代表値決定部と
をさらに備える請求項1に記載の画像処理装置。
【請求項4】
前記クラス境界決定部は、前記画素値の最大値および最小値の間を、前記画素値のビット深度よりも少ない数のクラスに分割するように、前記境界を決定する
請求項3に記載の画像処理装置。
【請求項5】
前記代表値決定部は、前記非ゼロクラス化部によりゼロクラスが非ゼロクラスに変換された後、各クラスにおいて前記重心を算出し、前記代表値とする
請求項3に記載の画像処理装置。
【請求項6】
前記クラス境界決定部は、隣り合うクラスの、前記代表値決定部により決定された代表値同士の中間値を前記クラスの境界として決定する
請求項5に記載の画像処理装置。
【請求項7】
前記代表値決定部により決定された各クラスの代表値と、各クラスのインデックスとを対応付けるテーブルを生成するテーブル生成部をさらに備える
請求項3に記載の画像処理装置。
【請求項8】
前記画像の各画素値を、前記画素値に対応するクラスの、前記代表値決定部により決定された代表値に変換する変換部と、
前記テーブル生成部により生成された前記テーブルを用いて、前記変換部により各画素値が変換された前記代表値を、前記代表値のクラスの識別情報であるインデックスに変換するインデックス画像生成部と
をさらに備える請求項7に記載の画像処理装置。
【請求項9】
前記テーブル生成部により生成された前記テーブルを用いて、前記インデックスを前記代表値に変換する逆量子化部をさらに備える
請求項7に記載の画像処理装置。
【請求項10】
前記クラス境界決定部は、複数の画像の全画素値の最大値と最小値との間を複数のクラスに分割するように前記境界を決定し、
前記クラス構成部は、前記クラス境界決定部により決定された境界で区切られる各クラスに、前記複数の画像の全画素値を、その値に応じて割り当て、
前記テーブル生成部は、前記代表値決定部により決定された各クラスの代表値と、各クラスのインデックスとを対応付ける、前記複数の画像に共通のテーブルを生成する
請求項7に記載の画像処理装置。
【請求項11】
前記画像を複数のブロックに分割する画像ブロック分割部をさらに備え、
前記クラス境界決定部、前記クラス構成部、前記代表値決定部、前記ゼロクラス検出部、および前記非ゼロクラス化部は、それぞれ、前記画像ブロック分割部により前記画像が分割された前記ブロック毎に互いに独立に処理を行う
請求項3に記載の画像処理装置。
【請求項12】
前記テーブル生成部により生成された前記テーブルを用いて、前記インデックスを前記代表値に変換する処理を、前記ブロック毎に互いに独立に行う逆量子化部をさらに備える
請求項11に記載の画像処理装置。
【請求項13】
画像処理装置の画像処理方法であって、
ゼロクラス検出部が、画像の各画素値をその値の大きさに応じて分類する複数のクラスの中から、画素値の出現頻度がゼロであるゼロクラスを検出し、
非ゼロクラス化部が、検出されたゼロクラスの範囲を更新することにより、前記クラスの総数を更新せずに、前記ゼロクラスを、前記画素値の出現頻度が1以上の非ゼロクラスに変換する
画像処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate


【公開番号】特開2012−257068(P2012−257068A)
【公開日】平成24年12月27日(2012.12.27)
【国際特許分類】
【出願番号】特願2011−128879(P2011−128879)
【出願日】平成23年6月9日(2011.6.9)
【出願人】(000002185)ソニー株式会社 (34,172)
【出願人】(305027401)公立大学法人首都大学東京 (385)
【Fターム(参考)】