説明

画像処理装置および方法

【課題】量子化誤差の低減化、および、量子化・逆量子化の処理の高速化の両方を実現することができるようにする。
【解決手段】 入力画像の画素値の出現頻度分布を示すヒストグラムを生成するヒストグラム生成部と、前記入力画像の画素値のビット深度を変換する際に利用されるテーブル情報であって、前記ヒストグラム生成部により生成された前記ヒストグラムにおいて出現頻度が非ゼロの有効画素をビット深度変更後のインデックス値に割り当てるテーブル情報である量子化テーブルを、前記有効画素を前記インデックス値にできるだけ均等に割り当てるようにして生成する量子化テーブル生成部とを備える。本開示は画像処理装置に適用することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本開示は、画像処理装置および方法に関し、特に、量子化誤差を抑制することができるようにした画像処理装置および方法に関する。
【背景技術】
【0002】
従来、画像処理等において、高ビット深度から低ビット深度へのビット変換技術が、一般に量子化技術として存在する。つまり、量子化処理においては、Nビット画像がLビット(N>L)に変換される。これに対して、低ビット深度から高ビット深度への逆変換処理は、逆量子化に相当する。画像の量子化法としては、線形量子化法が一般に用いられているが、計算が軽量であるものの、量子化誤差が比較的大きい。そのため、高ビット深度の画像を量子化により低ビット深度の画像に変換し、さらに、その低ビット深度の画像を逆量子化により高ビット深度の画像に変換する(元のビット深度に戻す)場合、復元された高ビット深度の画像(量子化・逆量子化処理後の画像)は、オリジナル画像(量子化・逆量子化前の画像)に比べて、大きく劣化する恐れがあった。
【0003】
これに対して、ロイドマックス(Lloyd-Max)量子化法が提案された(例えば、非特許文献1参照)。このロイドマックス量子化法は、一般的に画像に付与される歪が小さい量子化法として知られている。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Lloyd, "Least squares quantization in PCM", IEEE Transactions, Information Theory,vol.IT-28, no.2, pp.129-137, Mar.1982
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、このロイドマックス量子化法では、最小歪を与えるための量子化区間の幅と量子化代表値とが、繰り返し計算によって算出されるので、処理時間が増大する恐れがあった。
【0006】
本開示は、このような状況に鑑みてなされたものであり、量子化誤差の低減化、および、量子化・逆量子化の処理の高速化の両方を実現することを目的とする。
【課題を解決するための手段】
【0007】
本開示の一側面は、入力画像の画素値の出現頻度分布を示すヒストグラムを生成するヒストグラム生成部と、前記入力画像の画素値のビット深度を変換する際に利用されるテーブル情報であって、前記ヒストグラム生成部により生成された前記ヒストグラムにおいて出現頻度が非ゼロの有効画素をビット深度変更後のインデックス値に割り当てるテーブル情報である量子化テーブルを、前記有効画素を前記インデックス値にできるだけ均等に割り当てるようにして生成する量子化テーブル生成部とを備える画像処理装置である。
【0008】
前記量子化テーブル生成部は、各インデックス値に対して、ビット深度変更後の全てのインデックス値に対して均等に割り当てることができる前記有効画素の最大数である均等割り当て数s、若しくは、(s+1)の前記有効画素を割り当てることができる。
【0009】
前記量子化テーブル生成部は、各インデックス値に対して、前記均等割り当て数(s+1)ずつ前記有効画素を割り当てる第1のインデックス値決定部と、各インデックス値に対して、前記均等割り当て数sずつ前記有効画素を割り当てる第2のインデックス値決定部と、前記第1のインデックス値決定部、および、前記第2のインデックス値決定部の内、いずれか一方を選択し、選択したインデックス値決定部を用いて前記有効画素の割り当てを行う制御部とを備えることができる。
【0010】
前記制御部は、インデックス値の小さい方から順に前記有効画素を割り当て、前記有効画素を割り当てたインデックス値の数が、前記均等割り当て数sずつ前記有効画素を各インデックス値に割り当てたときの、残りの有効画素数を示す割り当て残差Nhに達するまで、前記第1のインデックス値決定部により前記有効画素の割り当てを行わせるように制御し、前記有効画素を割り当てたインデックス値の数が前記割り当て残差Nhに達した後は、前記第2のインデックス値決定部により前記有効画素の割り当てを行わせるように制御することができる。
【0011】
前記ヒストグラム生成部により生成された前記ヒストグラムにおける前記有効画素を検出し、前記有効画素の数を示す有効画素数、および、前記有効画素の値を示す有効画素値を求める有効画素情報生成部をさらに備えることができる。
【0012】
前記有効画素情報生成部により求められた前記有効画素数を用いて、前記均等割り当て数sを算出する均等割り当て数算出部をさらに備えることができる。
【0013】
前記有効画素情報生成部により求められた前記有効画素数、および、前記均等割り当て数算出部により生成される前記均等割り当て数を用いて、前記割り当て残差Nhを生成する割り当て残差算出部をさらに備えることができる。
【0014】
前記量子化テーブル生成部により生成された前記量子化テーブルを記憶する量子化テーブル記憶部をさらに備えることができる。
【0015】
前記量子化テーブル生成部により生成された前記量子化テーブルを用いて前記入力画像の各画素値の量子化を行う量子化部をさらに備えることができる。
【0016】
前記入力画像の画素値のビット深度を逆変換する際に利用されるテーブル情報であって、前記インデックス値に、各インデックス毎に設定された所定の代表値を割り当てるテーブル情報である代表値テーブルを生成する代表値テーブル生成部をさらに備えることができる。
【0017】
前記代表値テーブル生成部は、各インデックス値に割り当てられた前記有効画素値の重心を、前記インデックス値に対応する代表値とすることができる。
【0018】
前記代表値テーブル生成部により生成された前記代表値テーブルを記憶する代表値テーブル記憶部をさらに備えることができる。
【0019】
前記代表値テーブル生成部により生成された前記代表値テーブルを用いて前記インデックス値の逆量子化を行う逆量子化部をさらに備えることができる。
【0020】
本開示の一側面は、また、画像処理装置の画像処理方法であって、ヒストグラム生成部が、入力画像の画素値の出現頻度分布を示すヒストグラムを生成し、量子化テーブル生成部が、前記入力画像の画素値のビット深度を変換する際に利用されるテーブル情報であって、前記ヒストグラム生成部により生成された前記ヒストグラムにおいて出現頻度が非ゼロの有効画素をビット深度変更後のインデックス値に割り当てるテーブル情報である量子化テーブルを、前記有効画素を前記インデックス値にできるだけ均等に割り当てるようにして生成する画像処理方法である。
【0021】
本開示の一側面においては、入力画像の画素値の出現頻度分布を示すヒストグラムが生成され、入力画像の画素値のビット深度を変換する際に利用されるテーブル情報であって、生成されたヒストグラムにおいて出現頻度が非ゼロの有効画素をビット深度変更後のインデックス値に割り当てるテーブル情報である量子化テーブルが、有効画素をインデックス値にできるだけ均等に割り当てるようにして生成される。
【発明の効果】
【0022】
本開示によれば、量子化を行うことができる。特に、量子化処理時間の増大を抑制しながら量子化誤差を低減させることができる。
【図面の簡単な説明】
【0023】
【図1】画素値のヒストグラムの例を説明する図である。
【図2】量子化を行う画像処理装置の主な構成例を示すブロック図である。
【図3】量子化テーブル生成部の主な構成例を示すブロック図である。
【図4】有効画素値を割り当てる様子の例を説明する図である。
【図5】量子化・逆量子化を行うシステムの主な構成例を示すブロック図である。
【図6】量子化用テーブル設定処理の流れの例を説明するフローチャートである。
【図7】量子化テーブル設定処理の流れの例を説明するフローチャートである。
【図8】量子化処理の流れの例を説明するフローチャートである。
【図9】逆量子化処理の流れの例を説明するフローチャートである。
【図10】12ビット深度の医用画像の例を示す図である。
【図11】量子化・逆量子化後の画質の例を示す図である。
【図12】処理時間の例を示す図である。
【図13】量子化テーブル生成部の他の構成例を示すブロック図である。
【図14】量子化テーブル設定処理の流れの、他の例を説明するフローチャートである。
【図15】量子化テーブル生成部の、さらに他の構成例を示すブロック図である。
【図16】量子化テーブル設定処理の流れの、さらに他の例を説明するフローチャートである。
【図17】量子化・逆量子化を行うシステムの他の構成例を示すブロック図である。
【図18】パーソナルコンピュータの主な構成例を示すブロック図である。
【発明を実施するための形態】
【0024】
以下、発明を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.第1の実施の形態(画像処理装置)
2.第2の実施の形態(量子化テーブル生成部の他の例)
3.第3の実施の形態(量子化テーブル生成部のさらに他の例)
4.第4の実施の形態(ブロック毎に量子化・逆量子化を行うシステム)
5.第5の実施の形態(パーソナルコンピュータ)
【0025】
<1.第1の実施の形態>
[画像のヒストグラム]
画像は一般にヒストグラムの頻度に偏りを持っている。例えば、各画素のビット深度がNビットの画像が2N個の異なる画素値を持っているとは限らない。つまり、多くの画像は、疎(スパース)なヒストグラムを持つ。特に、高ダイナミックレンジ画像やRAW画像の場合には、疎性が強く現れる。
【0026】
なお、ここで、「疎」とは、出現頻度がゼロの画素値が存在することを示す。つまり、このような出現頻度がゼロの画素値が多いほど、疎性が強い。
【0027】
図1は、RAW画像の輝度成分のヒストグラムの例を示す図である。一般的なRAW画像の場合、そのヒストグラムは、図1Aに示されるように、全体において「密」、すなわち、全ての画素値の出現頻度が非ゼロであるように見える。しかしながら、実際には、図1Bに示されるように、出現頻度がゼロの画素値が多数存在する疎なヒストグラムである場合が多い。図1Bは、図1Aのヒストグラムの一部の拡大図である。
【0028】
このように、RAW画像のヒストグラムは一般的に疎である。すなわち、出現頻度が非ゼロの画素値を「有効画素」とすると、この有効画素数Neは、Ne<2Nとなる。
【0029】
このような疎なヒストグラムを持つ画像に対して、最適量子化法として知られるロイドマックス(Lloyd-Max)量子化法を用いて量子化を行うと、全ての画素値の出現頻度がゼロのクラスが生成される可能性が高い。ロイドマックス量子化法ではクラス分けの際にヒストグラムが等間隔に区切られるからである。そのため、クラス数が不足し、最適解が得られないことが証明されている。
【0030】
このような場合、汎用数学ソフトMATLABでは、隣接する2つの代表値を同値にすることで、代表値の更新を行う。これにより、出現頻度0のクラスは、その隣のクラスと併合される。最終的に、出現頻度0のクラスが無くなるまでこのような更新が繰り返される。
【0031】
しかしながら、この方法の場合、隣り合うクラス同士が合体され、1つのクラスにされるので、結果としてクラス数が低減される。したがって、量子化誤差が増大し、解の最適性を補償できなくなる恐れがあった。
【0032】
しかも、ロイドマックス量子化法の場合、最小歪を与えるための量子化区間の幅と量子化代表値を、繰り返し計算により求めるので、非常に長い計算時間が必要であった。そのため量子化処理全体の処理時間が、用途によっては許容できないほど増大する恐れがあった。
【0033】
そこで、本実施の形態においては、従来の線形量子化よりも量子化誤差を低減させ、且つ、最小量子化誤差を実現するロイドマックス量子化法よりも遥かに高速な量子化・逆量子化の手法を提案する。なお、以下においては、入力画像が1色のRAW画像であるものとして説明する。複数色(複数コンポーネント)の画像に対する処理については後述する。
【0034】
[画像処理装置]
図2は、入力画像の各画素値のビット深度をNビットからLビット(N>L)に変換するビット深度変換処理(すなわち量子化処理)やその逆変換処理(すなわち逆量子化処理)に用いられるテーブル情報(後述する量子化テーブルおよび代表値テーブル)を生成する。
【0035】
図2に示されるように、この画像処理装置100は、ヒストグラム生成部101、非ゼロクラス検出部102、有効画素数割り当て計算部103、割り当て残差計算部104、量子化テーブル生成部105、および、代表値テーブル生成部106を有する。
【0036】
ヒストグラム生成部101は、例えば図1に示されるような、入力画像(矢印121)を用いて、入力画像の画素値の出現頻度分布(ヒストグラムH(k)(k=0,1,…,2N-1))を生成する。ヒストグラム生成部101は、入力画像における、画素値がとり得る範囲内(m0乃至m2N-1)の各値(k)の出現回数をカウントする。ヒストグラムH(k)は、各値(mi)と、その値の出現頻度とを対応付けたものであり、各値(mi)の度数分布を示す。ヒストグラム生成部101は、そのヒストグラムH(k)を非ゼロクラス検出部102に供給する(矢印122)。
【0037】
非ゼロクラス検出部102は、供給されたヒストグラムH(k)から、出現頻度がゼロでない画素値である有効画素(H(k)≠0)を検出し、その個数(有効画素数)Ne(Ne≦2N)を算出する。非ゼロクラス検出部102は、算出した有効画素の個数Neを有効画素数割り当て計算部103に供給する(矢印123)。
【0038】
なお、非ゼロクラス検出部102は、検出した各有効画素の画素値(H(k)≠0となるkに対応する画素値)mi(i=0,…,Ne-1)(すなわち、m0,m1,…,mNe-1)も有効画素数割り当て計算部103に供給する(矢印123)。
【0039】
Nビットの画像をMビットに量子化する場合(N>M)、Ne≦2Mならば、すべての画素値がMビットで表現可能になるので、ロスレス(Lossless)で量子化や逆量子化を行うことができる。これに対して、Ne>2Mならば、必ず量子化誤差が生じることになる。
【0040】
有効画素数割り当て計算部103は、非ゼロクラス検出部102において検出された有効画素数Neの有効画素を2M個の各クラスに均等に割り当てる際の各クラスの有効画素数(均等割り当て数)sを、以下の式(1)を用いて算出する。
【0041】
s=[Ne/2M] ・・・(1)
ただし、[x]は、xを超えない最大の整数を示す。
【0042】
つまり、2M個の各クラスには、有効画素をs個ずつ均等に割り当てることができる。有効画素数割り当て計算部103は、算出した均等割り当て数sを、供給された有効画素数Neとともに、割り当て残差計算部104に供給する(矢印124)。その際、有効画素数割り当て計算部103は、有効画素値miも割り当て残差計算部104に供給する(矢印124)。
【0043】
割り当て残差計算部104は、有効画素数Neの有効画素を、均等割り当て数sずつ各クラスに割り当てた後に残る、未割り当ての有効画素数(割り当て残差)Nhを、以下の式(2)を用いて算出する。
【0044】
Nh=Ne−2M×s ・・・(2)
【0045】
つまり、有効画素数Neの有効画素が、2M個の各クラスにsずつ割り当てられると、割り当て残差Nh個の有効画素が残る。このNh個の有効画素もできるだけ均等に、すなわち、一部のクラスに1つずつ割り当てられる。
【0046】
つまり、2M個のクラスの内、Nh個のクラスには、(s+1)個ずつ有効画素が割り当てられる。これに対してそれ以外の(2M−Nh)個のクラスには、s個ずつ有効画素が割り当てられる。
【0047】
割り当て残差計算部104は、算出した割り当て残差Nhを量子化テーブル生成部105に供給する(矢印125)。
【0048】
また、有効画素数割り当て計算部103は、均等割り当て数sおよび有効画素数Neを量子化テーブル生成部105にも供給する(矢印124)。その際、有効画素数割り当て計算部103は、各有効画素値miも量子化テーブル生成部105供給する(矢印124)。
【0049】
量子化テーブル生成部105は、有効画素数Ne、有効画素値mi、均等割り当て数s、および割り当て残差Nhを用いて、入力画像の画素値の量子化(ビット深度変換)に用いられる量子化テーブルT(mi)を生成する。この量子化テーブルT(mi)は、量子化前の各有効画素(有効画素値mi)を量子化後(ビット深度変換後)の各クラス(インデックス値)に割り当てた、それらの対応関係を示すテーブル情報である。その際、量子化テーブル生成部105は、各クラスに、各有効画素をできるだけ均等に割り当てる。より具体的には、量子化テーブル生成部105は、以下の式(3)および式(4)を用いて量子化テーブルT(mi)を生成する。
【0050】
【数1】

・・・(3)
【数2】

・・・(4)
【0051】
つまり、量子化テーブル生成部105は、(s+1)個の画素値を割り当てるクラスについては、式(3)を用いて割り当てる有効画素値miを決定し、s個の画素値を割り当てるクラスについては、式(4)を用いて割り当てる有効画素値miを決定する。
【0052】
この量子化テーブルは、量子化処理において使用される。量子化テーブル生成部105は、このようにして生成された量子化テーブルT(mi)を量子化テーブル記憶部107に供給し、記憶させる(矢印126)。
【0053】
この量子化テーブル記憶部107は、任意の記憶媒体を有し、その記憶媒体の記憶領域に、量子化テーブルT(mi)を記憶することができる。量子化テーブル記憶部107は、例えば内蔵HDD(Hard Disk Drive)や内蔵フラッシュメモリ等のように、画像処理装置100に含まれる構成としてもよい。また、例えば外付けHDDやUSB(Universal Serial Bus)フラッシュメモリ等のように、画像処理装置100の外部の構成としても良い。さらに、例えばNAS(Network Attached Storage)のハードディスク等のように、他の装置の構成の一部としてもよい。また、量子化テーブル記憶部107は、例えば書き込み可能なDVD(Digital Versatile Disc)やBD(Blu-ray Disc)のようなリムーバブルメディアであってもよい。その場合、量子化テーブル記憶部107は、画像処理装置100に接続される図示せぬドライブに装着されることにより、そのドライブを介して画像処理装置100から読み書きが行われる。つまり、量子化テーブル記憶部107は、量子化テーブルを記憶することができればどのようなものであってもよい。
【0054】
割り当て残差計算部104は、算出した割り当て残差Nh、均等割り当て数s、および、有効画素値miを量子化テーブル生成部105に供給する(矢印125)。また、ヒストグラム生成部101は、ヒストグラムH(k)を量子化テーブル生成部105にも供給する(矢印122)。
【0055】
代表値テーブル生成部106は、有効画素値mi、均等割り当て数s、割り当て残差Nh、およびヒストグラムH(k)を用いて、量子化後の各クラスの代表値を設定し、各クラスとその代表値との対応関係を示す代表値テーブルR(n)を生成する。代表値テーブル生成部106は、以下の式(5)および式(6)を用いて代表値テーブルR(n)を生成する。
【0056】
【数3】

・・・(5)
【数4】

・・・(6)
【0057】
なお、ここでは、処理対象のクラスに属する各有効画素値の重心をそのクラスの代表値としている。この代表値は重心に限らずどのような値であっても良い。例えば、処理対象のクラスに属する各有効画素値の平均値や中央値をそのクラスの代表値としてもよい。また、例えば、他と値が大きく異なる有効画素値を除去してから、残りの有効画素値の重心を求め、その重心を代表値とする等してもよい。
【0058】
以上のように、代表値テーブル生成部106は、(s+1)個の有効画素値を割り当てるクラスについては、式(5)を用いて代表値を設定し、s個の有効画素値を割り当てるクラスについては、式(6)を用いて代表値を設定する。
【0059】
この代表値テーブルは、逆量子化処理において使用される。代表値テーブル生成部106は、このようにして生成された代表値テーブルR(n)を代表値テーブル記憶部108に供給し、記憶させる(矢印127)。
【0060】
この代表値テーブル記憶部108は、量子化テーブル記憶部107と同様に、代表値テーブルR(n)を記憶することができるものであればどのようなものであってもよい。
【0061】
以上のように、画像処理装置は、入力画像から、量子化テーブルおよび代表値テーブルを生成する。
【0062】
[量子化テーブル生成部]
次に、量子化テーブルの生成についてより詳細に説明する。
【0063】
図3は、図2の量子化テーブル生成部105の主な構成例を示すブロック図である。図3に示されるように、量子化テーブル生成部105は、制御部131、第1インデックス値決定部132、第2インデックス値決定部133、およびテーブル生成部134を有する。
【0064】
画像処理装置100は、入力画像の各画素値のビット深度をNビットからMビットに変換(量子化)する。つまり、画像処理装置100は、出現頻度が非ゼロの有効画素値を2M個のクラスに割り当てることになる。有効画素数Neが2Mより多い場合、画像処理装置100は、各クラスの有効画素数ができるだけ均等になるように、各クラスに有効画素値を割り当てる。
【0065】
式(1)に示されるように、有効画素数Neを量子化後のクラス数2Mで除算したときの商が、各クラスに均等に割り当てることができる有効画素数の最大値(すなわち、均等割り当て数s)である。そしてその余りが割り当て残差Nhである(図4参照)。
【0066】
画像処理装置100は、各クラスの有効画素数ができるだけ均等になるように、各クラスに有効画素値を割り当てるので、その割り当て残差Nhの有効画素は、互いに異なるクラスに割り当てる。つまり、画像処理装置100は、2M個のクラスの内の、Nh個の各クラスに(s+1)個の有効画素を割り当て、残り((Ne-Nh)個)の各クラスにs個の有効画素を割り当てる。例えば、図4に示されるように、s=2とすると、Nh個の各クラスに3個ずつ有効画素値を割り当て、残りの各クラスに2個ずつ有効画素を割り当てる。
【0067】
有効画素値miは、その値が小さい方から大きい方に向かう順に、以上のように決められた個数ずつ、識別番号が若いクラスから順に各クラスに割り当てられる。ここで、有効画素を(s+1)個割り当てるNh個のクラスを、2M個のクラスの中のいずれにするかは任意である。例えば、図4に示されるように、識別番号が若い方からNh個のクラスに有効画素を(s+1)個ずつ割り当てるようにしてもよい。以下においては、この場合について説明する。
【0068】
図4の例の場合、画像処理装置100は、番号0のクラスから番号(Nh−1)のクラスに対して、有効画素値m0乃至m3、m4乃至m6、m7乃至m9、・・・のように、各クラスに対して、有効画素値を、その値が小さい方から3つずつ割り当てる。また、画像処理装置100は、番号Nh以降のクラスに対して、有効画素値mおよびmx+1のように、各クラスに対して、有効画素値を、その値が小さい方から2つずつ割り当てる。
【0069】
つまり、量子化テーブル生成部105は、各クラスに割り当てる有効画素値を決定するが、その際、1クラスに(s+1)個の有効画素値を割り当てる方法と、1クラスにs個の有効画素値を割り当てる方法との、2つの方法を用いる。
【0070】
制御部131は、有効画素数割り当て計算部103から供給される均等割り当て数sと、割り当て残差計算部104から供給される割り当て残差Nhを用いて、この2つの方法のいずれを選択するかを制御する。例えば、処理対象番号iがi<Nh(s+1)の場合、制御部131は、式(3)を用いて量子化テーブルの設定を行う第1の方法を選択し、入力された各データを第1インデックス値決定部132に供給する(矢印141)。
【0071】
また、例えば、処理対象番号iがi≧Nh(s+1)の場合、制御部131は、式(4)を用いて量子化テーブルの設定を行う第2の方法を選択し、入力された各データを第2インデックス値決定部133に供給する(矢印142)。
【0072】
第1インデックス値決定部132は、有効画素数Ne、均等割り当て数s、および割り当て残差Nh、並びに、式(3)を用いて、変換後のクラス(すなわちインデックス値)と有効画素値の対応関係を決定する。つまり、第1インデックス値決定部132は、各クラスに(s+1)個ずつ有効画素値miを割り当てる。第1インデックス値決定部132は、このように設定した各クラスと有効画素値miとの対応関係を、テーブル生成部134に供給する(矢印143)。
【0073】
第2インデックス値決定部133は、有効画素数Ne、均等割り当て数s、および割り当て残差Nh、並びに、式(4)を用いて、変換後のクラス(すなわちインデックス値)と有効画素値の対応関係を決定する。つまり、第2インデックス値決定部133は、各クラスにs個ずつ有効画素値miを割り当てる。第2インデックス値決定部133は、このように設定した各クラスと有効画素値miとの対応関係を、テーブル生成部134に供給する(矢印144)。
【0074】
テーブル生成部134は、第1インデックス値決定部132および第2インデックス値決定部133から供給される各クラスと有効画素値miとの対応関係をまとめ、量子化テーブルT(mi)を生成する。テーブル生成部134は、生成した量子化テーブルT(mi)を量子化テーブル記憶部107に供給する(矢印126)。
【0075】
このように、量子化テーブル生成部105は、1クラスに(s+1)個の有効画素値を割り当てる方法と、1クラスにs個の有効画素値を割り当てる方法との、2つの方法を用いて量子化テーブルを生成することができる。これにより、量子化テーブル生成部105は、各クラスの有効画素数ができるだけ均等になるように、各クラスに有効画素値を割り当てることができる。したがって、画像処理装置100は、量子化誤差がロイドマックス量子化法と略同程度の量子化・逆量子化を実現する量子化テーブルや代表値テーブルを生成することができる。
【0076】
また、量子化テーブル生成部105は、上述したように、繰り返し処理を行わずに各クラスに有効画素値を割り当てることができる。したがって、画像処理装置100は、ロイドマックス量子化法と比べて遥かに高速に量子化テーブルや代表値テーブルを生成することができる。
【0077】
[量子化・逆量子化システム]
次に、以上のように生成された量子化テーブルを用いた量子化処理、並びに、以上のように生成された代表値テーブルを用いた逆量子化処理について説明する。
【0078】
図5は、画像処理装置100により生成された量子化テーブルおよび代表値テーブルを用いて量子化・逆量子化を行う装置の例を示すブロック図である。
【0079】
図5の中央の点線より左側が量子化処理に関する構成であり、点線より右側が逆量子化処理に関する構成である。図5に示されるように、量子化処理に関する構成には、量子化テーブル記憶部107および量子化部171が含まれ、逆量子化処理に関する情報には、代表値テーブル記憶部108および逆量子化部172が含まれる。
【0080】
量子化テーブル記憶部107、量子化部171、代表値テーブル記憶部108、および逆量子化部172は、それぞれ、互いに異なる装置として構成されるようにしてもよい。また、量子化処理に関する量子化テーブル記憶部107および量子化部171が1つの装置として構成されるようにしてもよいし、逆量子化処理に関する代表値テーブル記憶部108および逆量子化部172が1つの装置として構成されるようにしてもよいし、量子化テーブル記憶部107および代表値テーブル記憶部108が1つの装置として構成されるようにしてもよい。さらに、量子化テーブル記憶部107、量子化部171、代表値テーブル記憶部108、および逆量子化部172の全てが1つの装置として構成されるようにしてもよい。また、量子化部171および逆量子化部172の内、いずれか一方若しくは両方を、図2の画像処理装置100に含める(すなわち、それらを1つの装置として構成する)ようにしてもよい。
【0081】
量子化部171には、画像処理装置100と同一の入力画像が入力される(矢印181)。つまり、量子化部171には、画像処理装置100において量子化テーブルが生成された入力画像が供給される。この量子化テーブルは、量子化テーブル記憶部107に記憶されている。なお、この入力画像に対応する代表値テーブルは、代表値テーブル記憶部108に記憶されている。
【0082】
量子化部171は、この入力画像に対応する量子化テーブルを量子化テーブル記憶部107より読み出す(矢印182)。量子化部171は、読み出した量子化テーブルを用いて、入力画像の各画素値をインデックス値に変換する。より具体的には、量子化部171は、以下の式(7)のように、入力画像の画素値P(x,y)に対応する値T(P(x,y))を、量子化テーブルT(mi)の中から検出し、その値T(P(x,y))をインデックス値I(x,y)として出力する。
【0083】
I(x,y)=T(P(x,y)) ・・・(7)
【0084】
量子化部171は、そのインデックス値(量子化係数とも称する)を逆量子化部172に供給する(矢印183)。
【0085】
つまり、逆量子化部172には、量子化部171により生成されたインデックス値が入力される(矢印183)。逆量子化部172は、このインデックス値に対応する代表値テーブルを代表値テーブル記憶部108より読み出す(矢印184)。逆量子化部172は、読み出した代表値テーブルを用いて、各インデックス値を有効画素値に変換する。より具体的には、逆量子化部172は、以下の式(8)のように、インデックス値I(x,y)に対応するR(I(x,y))を、代表値テーブルR(n)の中から検出し、そのR(I(x,y))を復元画像の画素値P'(x,y)として出力する。
【0086】
P'(x,y)=R(I(x,y)) ・・・(8)
【0087】
逆量子化部172は、その復元画像の画素値P'(x,y)として出力する。
【0088】
以上のように、画像処理装置100が前処理として量子化テーブルや代表値テーブルを生成するので、量子化部171や逆量子化部172は、入力されるデータをそれらのテーブルに従って変換するだけでよい。したがって、量子化部171は、より高速に量子化処理を行うことができる。また、逆量子化部172は、より高速に逆量子化処理を行うことができる。
【0089】
[量子化テーブル設定処理の流れ]
次に、以上のような各装置により実行される処理の流れの例を説明する。最初に、図6のフローチャートを参照して、画像処理装置100により実行される量子化用テーブル設定処理の流れの例を説明する。なお、ここで量子化用テーブルとは、量子化テーブルおよび代表値テーブルのことを示す。
【0090】
量子化用テーブル設定処理が開始されると、ステップS101において、ヒストグラム生成部101は、ビット深度がNビットの入力画像のヒストグラムを生成する。ステップS102において、非ゼロクラス検出部102は、ステップS101において生成されたヒストグラムにおいて出現頻度が非ゼロの有効画素数Neを求める。また、非ゼロクラス検出部102は、各有効画素値miも求める。
【0091】
ステップS103において、有効画素数割り当て計算部103は、ステップS102において求められた有効画素数Neを用いて、各クラスに対して均等に割り当てる有効画素数(均等割り当て数)sを算出する。ステップS104において、割り当て残差計算部104は、ステップS102において求められた有効画素数Neと、ステップS103において算出された均等割り当て数sとを用いて、割り当て残差Nhを算出する。
【0092】
ステップS105において、量子化テーブル生成部105は、ステップS102において求められた有効画素値mi、ステップS103において算出された均等割り当て数s、並びに、ステップS104において求められた割り当て残差Nhを用いて、量子化テーブルT(mi)を設定する。ステップS106において、代表値テーブル生成部106は、ステップS102において求められた有効画素値mi、ステップS103において算出された均等割り当て数s、並びに、ステップS104において求められた割り当て残差Nhを用いて、代表値テーブルR(n)を設定する。
【0093】
ステップS107において、量子化テーブル記憶部107は、ステップS105において設定された量子化テーブルT(mi)を記憶する。ステップS108において、代表値テーブル記憶部108は、ステップS106において、ステップS106において設定された代表値テーブルR(n)を記憶する。
【0094】
ステップS168の処理を終了すると、代表値テーブル記憶部108は、量子化用テーブル設定処理を終了する。
【0095】
[量子化テーブル設定処理の流れ]
次に、図7のフローチャートを参照して、図6のステップS105において実行される量子化テーブル設定処理の流れの例を説明する。
【0096】
量子化テーブル設定処理が開始されると、量子化テーブル生成部105の制御部131は、ステップS121において、処理対象の有効画素の識別番号iがNh×(s+1)より小さいか否かを判定する。つまり、有効画素値の割り当ては番号の若いクラスから順に行われるが、制御部131は、その割り当てが、番号の若い方からNh番目に達したか否かを判定する。
【0097】
処理対象の有効画素の識別番号iがNh×(s+1)より小さい、すなわち、有効画素値を割り当てるクラスが、番号の若い方からNh番目に達していないと判定した場合、制御部131は、処理をステップS122に進める。
【0098】
ステップS122において、第1インデックス値決定部132は、有効画素を(s+1)個ずつ各クラスに割り当てる方法で、有効画素を割り当てるクラスを決定する。つまり、第1インデックス値決定部132は、処理対象のクラスに対して、上述した式(3)を用いて割り当てる有効画素値miを決定する。ステップS122の処理が終了すると、第1インデックス値決定部132は、処理をステップS124に進める。
【0099】
また、ステップS121において、処理対象の有効画素の識別番号iがNh×(s+1)以上である、すなわち、有効画素値を割り当てるクラスが、番号の若い方からNh番目に達したと判定した場合、制御部131は、処理をステップS123に進める。
【0100】
ステップS123において、第2インデックス値決定部133は、有効画素をs個ずつ各クラスに割り当てる方法で、有効画素を割り当てるクラスを決定する。つまり、第1インデックス値決定部132は、処理対象のクラスに対して、上述した式(4)を用いて割り当てる有効画素値miを決定する。ステップS123の処理が終了すると、第2インデックス値決定部133は、処理をステップS124に進める。
【0101】
ステップS124において、制御部131は、ヒストグラムの全ての有効画素値を処理したか否かを判定する。未処理の有効画素が存在する場合、制御部131は、処理をステップS121に戻し、それ以降の処理を繰り返す。また、ステップS124において、ヒストグラムの全ての有効画素を処理したと判定した場合、制御部131は、処理をステップS125に進める。
【0102】
ステップS125において、テーブル生成部134は、各有効画素値とクラスの対応関係をテーブル化する。ステップS125の処理が終了すると、テーブル生成部134は、量子化テーブル設定処理を終了し、処理を図6に戻す。
【0103】
[量子化処理の流れ]
次に、図8のフローチャートを参照して、量子化部171(図5)により実行される量子化処理の流れの例を説明する。
【0104】
量子化処理が開始されると、量子化部171は、ステップS141において、入力画像に対応する量子化テーブルを量子化テーブル記憶部107から読み出し、準備する。ステップS142において、量子化部171は、入力画像画素値を取得する。
【0105】
ステップS143において、量子化部171は、量子化テーブルを用いて、入力画像画素値に対応するインデックス値を求める。ステップS144において、量子化部171は、ステップS143において求めたインデックス値を量子化インデックスとして逆量子化側に伝送する。
【0106】
ステップS145において、量子化部171は、入力画像の全ての画素値を処理したか否かを判定する。未処理の画素値が存在すると判定した場合、量子化部171は、処理をステップS142に戻し、それ以降の処理を繰り返す。
【0107】
また、ステップS145において、全ての画素値を処理したと判定した場合、量子化部171は、量子化処理を終了する。
【0108】
[逆量子化処理の流れ]
次に、図9のフローチャートを参照して、逆量子化部172(図5)により実行される逆量子化処理の流れの例を説明する。
【0109】
逆量子化処理が開始されると、逆量子化部172は、ステップS161において、入力画像に対応する代表値テーブルを代表値テーブル記憶部108から読み出し、準備する。ステップS162において、逆量子化部172は、量子化インデックスを取得する。
【0110】
ステップS163において、逆量子化部172は、代表値テーブルを用いて、量子化インデックスに対応する画素値を求める。ステップS164において、逆量子化部172は、ステップS163において求めた画素値復号画像画素値として出力する。
【0111】
ステップS165において、逆量子化部172は、全ての量子化インデックスを処理したか否かを判定する。未処理の量子化インデックスが存在すると判定した場合、逆量子化部172は、処理をステップS162に戻し、それ以降の処理を繰り返す。
【0112】
また、ステップS165において、全ての量子化インデックスを処理したと判定した場合、逆量子化部172は、逆量子化処理を終了する。
【0113】
以上のように各処理を行うことにより、画像処理装置100は、量子化誤差の低減化、および、量子化・逆量子化の処理の高速化の両方を実現することができる。
【0114】
[評価結果の例]
次に、以上に説明した量子化処理および逆量子化処理の評価結果の例について説明する。図10に示される12ビット深度の医療画像を量子化・逆量子化の処理対象とする。解像度は水平方向に512画素であり、垂直方向に512画素である。
【0115】
この原画像(N=12ビット)をLビットに量子化し、さらにNビットに逆量子化した画像と、原画像との比較(PSNR(Peak Signal-to-Noise Ratio(ピーク信号対雑音比)))を評価値とする。PSNRが高い程、劣化が小さく抑えられていることになる。なお、Lが8乃至11の4通りについて評価する。
【0116】
図11は、ロイドマックス(Lloyd-Max)量子化法、下位ビットを四捨五入する従来の線形量子化法、並びに、以上に説明した「本手法」の3つの量子化・逆量子化方法について、評価結果を比較する図である。
【0117】
なお、図10の画像のヒストグラムを測定した結果、非ゼロの出現数の画素数Ne=1,835であった。211=2,048、210=1,024であるので、この画像は11ビットあれば可逆量子化・逆量子化が可能なことがわかる。従って、図11の表に示されるように、本手法若しくはロイドマックス量子化法の場合、L=11ではPSNR=∞になる。つまり、これらの2手法は、従来の線形量子化法と比較してPSNRが大幅に高い。10ビット以下に量子化する場合であっても、その傾向は同様である。
【0118】
また、図11の表に示されるように、どのビット数に量子化する場合であっても、本手法は、ロイドマックス量子化法と略同等(0.1dB程度の差)のPSNRを得ることができる。
【0119】
図12に示される表においては、量子化処理の処理時間が、本手法と、ロイドマックス量子化法とで比較されている。なお、本手法の場合、量子化テーブルおよび代表値テーブルの生成の処理時間も、この処理時間に含まれる。
【0120】
本手法はに、有効画素のMビットのクラスへの写像変換を行う処理なので、ロイドマックス量子化法の様な繰り返し処理が不要である。従って、図12の表に示されるように、本手法は、ロイドマックス量子化法よりも高速に(短時間に)量子化処理を行うことができる。
【0121】
以上のように、本手法を用いることにより、量子化・逆量子化による量子化誤差をより低減させることができ、より高画質な画像が得られるように量子化・逆量子化(ビット変換)を行うことが出来るとともに、その量子化・逆量子化を、より高速に行うことができる。
【0122】
<2.第2の実施の形態>
[量子化テーブル生成部]
第1の実施の形態においては、割り当て残差Nh個の有効画素を、識別番号が若い方からNh個のクラスに割り当てるように説明したが、有効画素を(s+1)個割り当てるNh個のクラスを、2M個のクラスの中のいずれにするかは任意である。例えば、割り当てられた有効画素の出現頻度が少ない順にNh個のクラスに割り当てるようにしてもよい。
【0123】
図13は、その場合の量子化テーブル生成部105の主な構成例を示すブロック図である。図13に示されるように、この場合の量子化テーブル生成部105は、第1の実施の形態の量子化テーブル生成部105(図3)の構成に加え、仮インデックス値決定部201、頻度算出部202、および並び替え部203を有する。
【0124】
仮インデックス値決定部201は、第2インデックス値決定部133と同様に、有効画素数Ne、均等割り当て数s、および割り当て残差Nh、並びに、式(4)を用いて、各クラスに有効画素値miを、その値が小さいほうから順にs個ずつ割り当てる。つまり、仮インデックス値決定部201は、(2M×s)個の有効画素値miの割り当てを行う。したがって、この時点では、Nh個の有効画素値miは、まだ割り当てられていない。仮インデックス値決定部201は、割り当て結果(各クラスと有効画素値miとの対応関係)、並びに、有効画素数Ne、均等割り当て数s、および割り当て残差Nh等の各種パラメータを、頻度算出部202に供給する(矢印222)。
【0125】
頻度算出部202は、ヒストグラム生成部101からヒストグラムを取得する(矢印221)。頻度算出部202は、仮インデックス値決定部201から取得した割り当て結果に従って、各クラスに割り当てられた各有効画素の出現頻度を、ヒストグラム生成部101から取得したヒストグラムを参照して求め、その出現頻度のクラス毎の総和を算出する。
【0126】
頻度算出部202は、算出したクラス毎の有効画素の出現頻度を、仮インデックス値決定部201およびヒストグラム生成部101から供給された情報とともに、並び替え部203に供給する(矢印223)。
【0127】
並び替え部203は、各クラスを、各クラスに割り当てられた有効画素の出現頻度の少ない順に並び替える。並び替え部203は、その並び替え結果(変換後のクラスの、並び替えた後の順序を示す情報)を、頻度算出部202から供給される各種情報とともに制御部131に供給する(矢印224)。
【0128】
制御部131乃至テーブル生成部134は、順序が並び替えられたクラスに対して、第1の実施の形態の場合と同様に、有効画素の割り当てを行う。ここでは、割り当て残差Nh個の有効画素も含めて(すなわち全ての有効画素の)割り当てが行われる。つまり、制御部131乃至テーブル生成部134は、更新後の順序において1番目乃至Nh番目のクラスに有効画素を(s+1)個ずつ割り当て、(Nh+1)番目以降のクラスに有効画素を1つずつ割り当てる。
【0129】
このようにすることにより、量子化テーブル生成部105は、出現頻度が少ないNh個のクラスに有効画素を多く((s+1)個ずつ)割り当てることができる。
【0130】
[量子化テーブル設定処理の流れ]
次に、図14のフローチャートを参照して、この場合の量子化テーブル設定処理の流れの例を説明する。
【0131】
量子化テーブル設定処理が開始されると、ステップS201において、仮インデックス値決定部201は、s個ずつ各クラスに割り当てる方法で、(2M×s)個の有効画素を割り当てるクラスを決定する。
【0132】
ステップS202において、頻度算出部202は、ステップS201における割り当て結果に基づいて、各有効画素の出現頻度の総和をクラス毎に算出する。
【0133】
ステップS203において、並び替え部203は、ステップS202において算出されたクラス毎の有効画素の頻度値の小さい順に、各クラスを並び替える。
【0134】
ステップS204乃至ステップS208の各処理は、ステップS203において並び替えられたクラスに対して、図7のステップS121乃至ステップS125の各処理と同様に実行される。
【0135】
ステップS208の処理が終了すると、テーブル生成部134は量子化テーブル設定処理を終了し、処理を図6に戻す。
【0136】
以上のように、量子化テーブル設定処理を行うことにより、量子化テーブル生成部105は、第1の実施の形態の場合と同様に、各クラスに有効画素を割り当て、量子化テーブルを設定することができる。ただし、この場合、量子化テーブル生成部105は、出現頻度が少ないNh個のクラスに有効画素を多く((s+1)個ずつ)割り当てるようにすることができる。
【0137】
このように、出現頻度が少ないNh個のクラスに有効画素を多く((s+1)個ずつ)割り当てることにより、クラス間の出現頻度の偏りを少なくすることができる。これにより、各クラスの代表値の精度の偏りを低減させる(より均一化する)ことができる。
【0138】
<3.第3の実施の形態>
[量子化テーブル生成部]
第2の実施の形態において説明した方法では、割り当て残差Nh個の有効画素の割り当てを追加することによる出現頻度の変化を反映させていない。つまり、s個の有効画素を割り当てた時点で出現頻度がより少ないクラスに対して、残りの有効画素の内、出現頻度がより大きな有効画素を追加的に割り当てるようには必ずしもなされていない。
【0139】
そこで、さらに、有効画素の割り当てを繰り返し処理とすることにより、s個の有効画素を割り当てた時点で出現頻度がより少ないクラスに対して、残りの有効画素の内、出現頻度がより大きな有効画素を追加的に割り当てるようにしてもよい。
【0140】
図15は、その場合の量子化テーブル生成部105の主な構成例を示すブロック図である。図15に示されるように、この場合の量子化テーブル生成部105は、第2の実施の形態の量子化テーブル生成部105(図13)の構成に加え、ループ制御部241をさらに有する。
【0141】
ループ制御部241は、全ての有効画素を割り当てた後において、各クラスの頻度値を確認し、各クラスがその頻度値の小さい順に並ぶか否かを判定する。仮インデックス値決定部201において割り当てられたなかった有効画素も含めて全ての有効画素の割り当てを行ったことにより、各クラスが有効画素の頻度値の小さい順に並ばなくなった場合、ループ制御部241は、処理を並び替え部203に戻し、再度、各クラスを頻度値の小さい順に並び替えさせ、有効画素の割り当てをやり直させる。ループ制御部241は、このような処理を、各クラスの並びが更新されなくなるまで繰り返し実行させる。
【0142】
[量子化テーブル設定処理の流れ]
次に、図16のフローチャートを参照して、この場合の量子化テーブル設定処理の流れの例を説明する。
【0143】
ステップS251乃至ステップS257の各処理は、第2の実施の形態の場合(図14のステップS201乃至ステップS207の各処理)と同様に実行される。
【0144】
ステップS258において、ループ制御部241は、ステップS255若しくはステップS256において、全ての有効画素が割り当てられた後の状態において、クラス毎の有効画素の頻度値(各クラスに割り当てられた有効画素の頻度値の、クラス毎の総和)を算出する。
【0145】
ステップS259において、ループ制御部241は、各クラスが頻度値の小さい順に並ぶか否かを判定する。各クラスの並び順が、頻度値の小さい順でないと判定した場合、ループ制御部241は、処理をステップS253に戻し、それ以降の処理を繰り返すように制御する。
【0146】
また、ステップS259において、各クラスの並び順が頻度値の小さい順のままであると判定した場合、ループ制御部241は、処理をステップS260に進める。ステップS260の処理は、第2の実施の形態の場合(図14のステップS208)と同様に実行される。
【0147】
以上のように、量子化テーブル設定処理を行うことにより、量子化テーブル生成部105は、第2の実施の形態の場合よりもさらに、クラス間の出現頻度の偏りを少なくすることができる。これにより、各クラスの代表値の精度の偏りをより低減させる(より均一化する)ことができる。
【0148】
<4.第4の実施の形態>
[量子化・逆量子化システム]
なお、入力画像を複数の領域に分割し、その領域毎に、量子化テーブルおよび代表値テーブルを生成し、量子化処理や逆量子化処理を行うようにしてもよい。
【0149】
図10は、その場合の画像処理システムの主な構成例を示すブロック図である。
【0150】
図10に示される画像処理システムは、入力画像を複数の領域に分割し、その領域毎に、量子化テーブルおよび代表値テーブルを生成し、量子化処理や逆量子化処理を行うシステムである。図10に示されるように、この画像処理システムには、画像量子化装置301および画像逆量子化装置302を含む。
【0151】
画像量子化装置301は、画像分割部311、並びに、ビット深度変換部312−1乃至ビット深度変換部312−Zを有する。画像分割部311は、入力画像P(x,y)をZ個の領域に分割し、各領域の画像をビット深度変換部312−1乃至ビット深度変換部312−Zに供給する。
【0152】
ビット深度変換部312−1は、1番目の領域の画像P1(x,y)の画素値のビット深度をNビットからMビット(N>M)に変換する。すなわち、ビット深度変換部312−1は、1番目の領域の画像P1(x,y)の画素値の量子化を行う。
【0153】
ビット深度変換部312−1は、テーブル生成部321および量子化部322を有する。テーブル生成部321は、図2の画像処理装置100と同様の構成を有し、同様の処理を行う。つまり、テーブル生成部321は、1番目の領域の画像P1(x,y)について量子化テーブルT1(mi)および代表値テーブルR1(n)を生成する。テーブル生成部321は、生成した量子化テーブルT1(mi)を量子化部322に供給する。また、テーブル生成部321は、生成した代表値テーブルR1(n)を画像逆量子化装置302に供給する。
【0154】
量子化部322は、図5の量子化部171と同様の構成を有し、同様の処理を行う。つまり、量子化部322は、テーブル生成部321から供給される量子化テーブルT1(mi)を用いて、1番目の領域の画像P1(x,y)の各画素値の量子化を行う。量子化部322は、その量子化により生成した量子化インデックスI1(x,y)を画像逆量子化装置302に供給する。
【0155】
ビット深度変換部312−2乃至ビット深度変換部312−Zは、それぞれ、ビット深度変換部312−1と同様の構成を有し、自身が対応する領域の画像について、ビット深度変換部312−1と同様の処理を行う。
【0156】
例えば、ビット深度変換部312−2は、2番目の領域の画像P2(x,y)の画素値を量子化し、その2番目の領域の画像P2(x,y)に対応する代表値テーブルR2(n)と量子化インデックスI2(x,y)を画像逆量子化装置302に供給する。
【0157】
また、例えば、ビット深度変換部312−Zは、Z番目の領域の画像Pz(x,y)の画素値を量子化し、そのZ番目の領域の画像Pz(x,y)に対応する代表値テーブルRz(n)と量子化インデックスIz(x,y)を画像逆量子化装置302に供給する。
【0158】
なお、ビット深度変換部312−1乃至ビット深度変換部312−Zを互いに区別して説明する必要が無い場合、単に、ビット深度変換部312と称する。
【0159】
画像逆量子化装置302は、ビット深度逆変換部331−1乃至ビット深度逆変換部331−Z、並びに、画像統合部332を有する。
【0160】
ビット深度逆変換部331−1は、画像量子化装置301から供給された代表値テーブルR1(n)および量子化インデックスI1(x,y)を取得し、それらを用いて、量子化インデックスI1(x,y)のビット深度をMビットからNビットに逆変換する。すなわち、ビット深度逆変換部331−1は、1番目の領域の量子化インデックスI1(x,y)の逆量子化を行い、1番目の領域の復号画像P'1(x,y)を生成する。ビット深度逆変換部331−1は、生成した1番目の領域の復号画像P'1(x,y)を画像統合部332に供給する。
【0161】
ビット深度逆変換部331−1は、テーブル取得部341および逆量子化部342を有する。テーブル取得部341は、画像量子化装置301から供給された代表値テーブルR1(n)を取得し、適宜、それを逆量子化部342に供給する。逆量子化部342は、図5の逆量子化部172と同様の構成を有し、同様の処理を行う。つまり、逆量子化部342は、テーブル取得部341から供給される代表値テーブルR1(n)を用いて、1番目の領域の量子化インデックスI1(x,y)の逆量子化を行う。逆量子化部342は、その逆量子化により生成した1番目の領域の復号画像P'1(x,y)を画像統合部332に供給する。
【0162】
ビット深度逆変換部331−2乃至ビット深度逆変換部331−Zは、それぞれ、ビット深度逆変換部331−1と同様の構成を有し、自身が対応する領域の量子化インデックスについて、ビット深度逆変換部331−1と同様の処理を行う。
【0163】
例えば、ビット深度逆変換部331−2は、2番目の領域の代表値テーブルR2(n)を用いて、2番目の領域の量子化インデックスI2(x,y)を逆量子化し、その2番目の領域の復号画像P'2(x,y)を画像統合部332に供給する。
【0164】
また、例えば、ビット深度逆変換部331−Zは、Z番目の領域の代表値テーブルRz(n)を用いて、Z番目の領域の量子化インデックスIz(x,y)を逆量子化し、そのZ番目の領域の復号画像P'z(x,y)を画像統合部332に供給する。
【0165】
なお、ビット深度逆変換部331−1乃至ビット深度逆変換部331−Zを互いに区別して説明する必要が無い場合、単に、ビット深度逆変換部331と称する。
【0166】
画像統合部332は、各ビット深度逆変換部331から供給される復号画像P'1(x,y)乃至復号画像P'z(x,y)を統合して、入力画像P(x,y)に対応する復号画像P'(x,y)を生成し、出力する。
【0167】
各ビット深度変換部312は、互いに独立に処理を行うことができる。つまり、ビット深度変換部312の一部または全部が、互いに並行して処理を行う(ある時刻において複数のブロックに対する処理が実行されている)ようにしてもよいし、互いに異なるタイミングにおいて処理を行うようにしてもよい。
【0168】
同様に、各ビット深度逆変換部331も、互いに独立に処理を行うことができる。つまり、ビット深度逆変換部331の一部または全部が、互いに並行して処理を行う(ある時刻において複数のブロックに対する処理が実行されている)ようにしてもよいし、互いに異なるタイミングにおいて処理を行うようにしてもよい。
【0169】
ブロック毎の画像は、画像全体に比べて画素値の総数が少なくなるので、疎性が高まる。したがって、各ブロックの画像を量子化して逆量子化した場合に生じる量子化誤差は、画像全体に対して同様の処理を行う場合よりも低減される。また、各ブロックに対する量子化を並列に実行することにより、処理時間を低減させることもできる。
【0170】
ただし、画像全体に対して量子化・逆量子化(ビット変換)を行う場合の方が、必要なテーブル数が低減され、その分情報量を低減させることができる。
【0171】
なお、上述したように各ブロックの大きさおよび形状は任意であり、互いに独立して設定することができるので、画像分割部311が、入力画像の内容に応じて、疎性が高まる様にブロック化するようにしてもよい。
【0172】
なお、以上においては、コンポーネントが1つの場合について説明したが、これに限らず、例えばRGBやYCrCbのように、入力画像が複数のコンポーネントにより構成されるようにしてもよい。その場合、各コンポーネントに対して、上述したように、量子化テーブルおよび代表値テーブルの生成、並びに、量子化処理および逆量子化処理を行うようにすればよい。なお、各コンポーネントに対するこれらの処理は、互いに独立して行うことができる。したがって、各コンポーネントに対するこれらの処理は、互いに並行して行うこともできるし、互いに異なるタイミングにおいて行うこともできる。
【0173】
また、以上においては、画像データの各画素値の量子化・逆量子化について説明したが、処理対象のデータは、何らかのデータの疎性を有する集合であればよく、画素値に限らない。例えば、画像データを直交変換(例えばDCT(Discrete Cosine Transform)やウェーブレット変換等)した直交変換係数であってもよい。
【0174】
また、以上に説明した各装置は、それぞれ、上述した以外の構成を含むようにしてももちろんよい。例えば、撮像素子(CMOS、CCDセンサ)からキャプチャした画像を用いた機器やデバイス、撮像素子画像をメモリに書き込むまでの圧縮回路、デジタルスチルカメラ、動画用カムコーダ、医療用画像カメラ、医療用内視鏡、監視カメラ、デジタルシネマ撮影用カメラ、両眼画像カメラ、多眼画像カメラ、LSIチップでのメモリ削減回路、PC上のオーサリング・ツールまたはそのソフトウェア・モジュール等として構成されるようにしてもよい。また、1つの装置としてだけでなく、複数の装置よりなるシステムとして構成されるようにしてもよい。
【0175】
<5.第5の実施の形態>
[パーソナルコンピュータ]
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。この場合、例えば、図18に示されるようなパーソナルコンピュータとして構成されるようにしてもよい。
【0176】
図18において、パーソナルコンピュータ400のCPU(Central Processing Unit)401は、ROM(Read Only Memory)402に記憶されているプログラム、または記憶部413からRAM(Random Access Memory)403にロードされたプログラムに従って各種の処理を実行する。RAM403にはまた、CPU401が各種の処理を実行する上において必要なデータなども適宜記憶される。
【0177】
CPU401、ROM402、およびRAM403は、バス404を介して相互に接続されている。このバス404にはまた、入出力インタフェース410も接続されている。
【0178】
入出力インタフェース410には、キーボード、マウスなどよりなる入力部411、CRT(Cathode Ray Tube)ディスプレイやLCD(Liquid Crystal Display)等のディスプレイ、並びにスピーカなどよりなる出力部412、フラッシュメモリ等SSD(Solid State Drive)やハードディスクなどよりなる記憶部413、有線LAN(Local Area Network)や無線LANのインタフェースやモデムなどよりなる通信部414が接続されている。通信部414は、インターネットを含むネットワークを介しての通信処理を行う。
【0179】
入出力インタフェース410にはまた、必要に応じてドライブ415が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア421が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部413にインストールされる。
【0180】
上述した一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
【0181】
この記録媒体は、例えば、図18に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc - Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、若しくは半導体メモリなどよりなるリムーバブルメディア421により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM402や、記憶部413に含まれるハードディスクなどにより構成される。
【0182】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【0183】
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0184】
また、本明細書において、システムとは、複数のデバイス(装置)により構成される装置全体を表すものである。
【0185】
また、以上において、1つの装置(または処理部)として説明した構成が、複数の装置(または処理部)として構成されるようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成が、まとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成が付加されるようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部が他の装置(または他の処理部)の構成に含まれるようにしてもよい。つまり、本開示の実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。
【0186】
なお、本技術は以下のような構成も取ることができる。
(1) 入力画像の画素値の出現頻度分布を示すヒストグラムを生成するヒストグラム生成部と、
前記入力画像の画素値のビット深度を変換する際に利用されるテーブル情報であって、前記ヒストグラム生成部により生成された前記ヒストグラムにおいて出現頻度が非ゼロの有効画素をビット深度変更後のインデックス値に割り当てるテーブル情報である量子化テーブルを、前記有効画素を前記インデックス値にできるだけ均等に割り当てるようにして生成する量子化テーブル生成部と
を備える画像処理装置。
(2) 前記量子化テーブル生成部は、各インデックス値に対して、ビット深度変更後の全てのインデックス値に対して均等に割り当てることができる前記有効画素の最大数である均等割り当て数s、若しくは、(s+1)の前記有効画素を割り当てる
前記(1)に記載の画像処理装置。
(3) 前記量子化テーブル生成部は、
各インデックス値に対して、前記均等割り当て数(s+1)ずつ前記有効画素を割り当てる第1のインデックス値決定部と、
各インデックス値に対して、前記均等割り当て数sずつ前記有効画素を割り当てる第2のインデックス値決定部と、
前記第1のインデックス値決定部、および、前記第2のインデックス値決定部の内、いずれか一方を選択し、選択したインデックス値決定部を用いて前記有効画素の割り当てを行う制御部と
を備える前記(2)に記載の画像処理装置。
(4) 前記制御部は、
インデックス値の小さい方から順に前記有効画素を割り当て、前記有効画素を割り当てたインデックス値の数が、前記均等割り当て数sずつ前記有効画素を各インデックス値に割り当てたときの、残りの有効画素数を示す割り当て残差Nhに達するまで、前記第1のインデックス値決定部により前記有効画素の割り当てを行わせるように制御し、
前記有効画素を割り当てたインデックス値の数が前記割り当て残差Nhに達した後は、前記第2のインデックス値決定部により前記有効画素の割り当てを行わせるように制御する
前記(3)に記載の画像処理装置。
(5) 前記ヒストグラム生成部により生成された前記ヒストグラムにおける前記有効画素を検出し、前記有効画素の数を示す有効画素数、および、前記有効画素の値を示す有効画素値を求める有効画素情報生成部をさらに備える
前記(4)に記載の画像処理装置。
(6) 前記有効画素情報生成部により求められた前記有効画素数を用いて、前記均等割り当て数sを算出する均等割り当て数算出部をさらに備える
前記(5)に記載の画像処理装置。
(7) 前記有効画素情報生成部により求められた前記有効画素数、および、前記均等割り当て数算出部により生成される前記均等割り当て数を用いて、前記割り当て残差Nhを生成する割り当て残差算出部をさらに備える
前記(6)に記載の画像処理装置。
(8) 前記量子化テーブル生成部により生成された前記量子化テーブルを記憶する量子化テーブル記憶部をさらに備える
前記(1)乃至(7)のいずれかに記載の画像処理装置。
(9) 前記量子化テーブル生成部により生成された前記量子化テーブルを用いて前記入力画像の各画素値の量子化を行う量子化部をさらに備える
前記(1)乃至(8)のいずれかに記載の画像処理装置。
(10) 前記入力画像の画素値のビット深度を逆変換する際に利用されるテーブル情報であって、前記インデックス値に、各インデックス毎に設定された所定の代表値を割り当てるテーブル情報である代表値テーブルを生成する代表値テーブル生成部をさらに備える
前記(1)乃至(9)のいずれかに記載の画像処理装置。
(11) 前記代表値テーブル生成部は、各インデックス値に割り当てられた前記有効画素値の重心を、前記インデックス値に対応する代表値とする
前記(10)に記載の画像処理装置。
(12) 前記代表値テーブル生成部により生成された前記代表値テーブルを記憶する代表値テーブル記憶部をさらに備える
前記(10)または(11)に記載の画像処理装置。
(13) 前記代表値テーブル生成部により生成された前記代表値テーブルを用いて前記インデックス値の逆量子化を行う逆量子化部をさらに備える
前記(10)乃至(12)のいずれかに記載の画像処理装置。
(14) 画像処理装置の画像処理方法であって、
ヒストグラム生成部が、入力画像の画素値の出現頻度分布を示すヒストグラムを生成し、
量子化テーブル生成部が、前記入力画像の画素値のビット深度を変換する際に利用されるテーブル情報であって、前記ヒストグラム生成部により生成された前記ヒストグラムにおいて出現頻度が非ゼロの有効画素をビット深度変更後のインデックス値に割り当てるテーブル情報である量子化テーブルを、前記有効画素を前記インデックス値にできるだけ均等に割り当てるようにして生成する
画像処理方法。
【符号の説明】
【0187】
100 画像処理装置, 101 ヒストグラム生成部, 102 非ゼロクラス検出部, 103 有効画素数割り当て計算部, 104 割り当て残差計算部, 105 量子化テーブル生成部, 106 代表値テーブル生成部, 107 量子化テーブル記憶部, 108 代表値テーブル記憶部, 131 制御部, 132 第1インデックス値決定部, 133 第2インデックス値決定部, 134 テーブル生成部, 171 量子化部, 172 逆量子化部, 201 仮インデックス値決定部, 202 頻度算出部, 203 並び替え部, 241 ループ制御部, 301 画像量子化装置, 302 画像逆量子化装置, 311 画像分割部, 312 ビット深度変換部, 321 テーブル生成部, 322 量子化部, 331 ビット深度逆変換部, 332 画像統合部, 341 テーブル取得部, 342 逆量子化部

【特許請求の範囲】
【請求項1】
入力画像の画素値の出現頻度分布を示すヒストグラムを生成するヒストグラム生成部と、
前記入力画像の画素値のビット深度を変換する際に利用されるテーブル情報であって、前記ヒストグラム生成部により生成された前記ヒストグラムにおいて出現頻度が非ゼロの有効画素をビット深度変更後のインデックス値に割り当てるテーブル情報である量子化テーブルを、前記有効画素を前記インデックス値にできるだけ均等に割り当てるようにして生成する量子化テーブル生成部と
を備える画像処理装置。
【請求項2】
前記量子化テーブル生成部は、各インデックス値に対して、ビット深度変更後の全てのインデックス値に対して均等に割り当てることができる前記有効画素の最大数である均等割り当て数s、若しくは、(s+1)の前記有効画素を割り当てる
請求項1に記載の画像処理装置。
【請求項3】
前記量子化テーブル生成部は、
各インデックス値に対して、前記均等割り当て数(s+1)ずつ前記有効画素を割り当てる第1のインデックス値決定部と、
各インデックス値に対して、前記均等割り当て数sずつ前記有効画素を割り当てる第2のインデックス値決定部と、
前記第1のインデックス値決定部、および、前記第2のインデックス値決定部の内、いずれか一方を選択し、選択したインデックス値決定部を用いて前記有効画素の割り当てを行う制御部と
を備える請求項2に記載の画像処理装置。
【請求項4】
前記制御部は、
インデックス値の小さい方から順に前記有効画素を割り当て、前記有効画素を割り当てたインデックス値の数が、前記均等割り当て数sずつ前記有効画素を各インデックス値に割り当てたときの、残りの有効画素数を示す割り当て残差Nhに達するまで、前記第1のインデックス値決定部により前記有効画素の割り当てを行わせるように制御し、
前記有効画素を割り当てたインデックス値の数が前記割り当て残差Nhに達した後は、前記第2のインデックス値決定部により前記有効画素の割り当てを行わせるように制御する
請求項3に記載の画像処理装置。
【請求項5】
前記ヒストグラム生成部により生成された前記ヒストグラムにおける前記有効画素を検出し、前記有効画素の数を示す有効画素数、および、前記有効画素の値を示す有効画素値を求める有効画素情報生成部をさらに備える
請求項4に記載の画像処理装置。
【請求項6】
前記有効画素情報生成部により求められた前記有効画素数を用いて、前記均等割り当て数sを算出する均等割り当て数算出部をさらに備える
請求項5に記載の画像処理装置。
【請求項7】
前記有効画素情報生成部により求められた前記有効画素数、および、前記均等割り当て数算出部により生成される前記均等割り当て数を用いて、前記割り当て残差Nhを生成する割り当て残差算出部をさらに備える
請求項6に記載の画像処理装置。
【請求項8】
前記量子化テーブル生成部により生成された前記量子化テーブルを記憶する量子化テーブル記憶部をさらに備える
請求項1に記載の画像処理装置。
【請求項9】
前記量子化テーブル生成部により生成された前記量子化テーブルを用いて前記入力画像の各画素値の量子化を行う量子化部をさらに備える
請求項1に記載の画像処理装置。
【請求項10】
前記入力画像の画素値のビット深度を逆変換する際に利用されるテーブル情報であって、前記インデックス値に、各インデックス毎に設定された所定の代表値を割り当てるテーブル情報である代表値テーブルを生成する代表値テーブル生成部をさらに備える
請求項1に記載の画像処理装置。
【請求項11】
前記代表値テーブル生成部は、各インデックス値に割り当てられた前記有効画素値の重心を、前記インデックス値に対応する代表値とする
請求項10に記載の画像処理装置。
【請求項12】
前記代表値テーブル生成部により生成された前記代表値テーブルを記憶する代表値テーブル記憶部をさらに備える
請求項10に記載の画像処理装置。
【請求項13】
前記代表値テーブル生成部により生成された前記代表値テーブルを用いて前記インデックス値の逆量子化を行う逆量子化部をさらに備える
請求項10に記載の画像処理装置。
【請求項14】
画像処理装置の画像処理方法であって、
ヒストグラム生成部が、入力画像の画素値の出現頻度分布を示すヒストグラムを生成し、
量子化テーブル生成部が、前記入力画像の画素値のビット深度を変換する際に利用されるテーブル情報であって、前記ヒストグラム生成部により生成された前記ヒストグラムにおいて出現頻度が非ゼロの有効画素をビット深度変更後のインデックス値に割り当てるテーブル情報である量子化テーブルを、前記有効画素を前記インデックス値にできるだけ均等に割り当てるようにして生成する
画像処理方法。

【図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


【公開番号】特開2013−29953(P2013−29953A)
【公開日】平成25年2月7日(2013.2.7)
【国際特許分類】
【出願番号】特願2011−165037(P2011−165037)
【出願日】平成23年7月28日(2011.7.28)
【出願人】(000002185)ソニー株式会社 (34,172)
【出願人】(305027401)公立大学法人首都大学東京 (385)
【Fターム(参考)】