JP2012058850A - 画像処理装置および方法、並びにプログラム - Google Patents

画像処理装置および方法、並びにプログラム Download PDF

Info

Publication number
JP2012058850A
JP2012058850A JP2010199224A JP2010199224A JP2012058850A JP 2012058850 A JP2012058850 A JP 2012058850A JP 2010199224 A JP2010199224 A JP 2010199224A JP 2010199224 A JP2010199224 A JP 2010199224A JP 2012058850 A JP2012058850 A JP 2012058850A
Authority
JP
Japan
Prior art keywords
value
unit
luminance
weight
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2010199224A
Other languages
English (en)
Inventor
Masafumi Wakazono
雅史 若園
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2010199224A priority Critical patent/JP2012058850A/ja
Priority to CN201110260179.0A priority patent/CN102385746A/zh
Priority to US13/221,218 priority patent/US8849056B2/en
Publication of JP2012058850A publication Critical patent/JP2012058850A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • G06T5/70
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20024Filtering details
    • G06T2207/20028Bilateral filtering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20172Image enhancement details
    • G06T2207/20192Edge enhancement; Edge preservation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/40Image enhancement or restoration by the use of histogram techniques

Abstract

【課題】負荷の増大を抑制しながら画像信号処理の画質性能を向上させることができるようにする。
【解決手段】重み算出部201は、処理対象画素の属す輝度ブロックを特定するとともに、供給された輝度値に応じた重みを算出する。特定された輝度ブロックに対応するカウンタ202は、その重みを、保持している値に加算し、1フレーム分累算する。重み乗算部231は、重みを入力信号に乗算し、その乗算結果を、特定された輝度ブロックに対応する積分器232に供給する。積分器232は、その乗算結果を、保持している値に加算し、1フレーム分累算する。本発明は、例えば、画像処理装置に適用することができる。
【選択図】図11

Description

本発明は、画像処理装置および方法、並びにプログラムに関し、特に、負荷の増大を抑制しながら画像信号処理の画質性能を向上させることができるようにした画像処理装置および方法、並びにプログラムに関する。
画像処理技術の1つとして、エッジ保存平滑化処理が知られている。エッジ保存平滑化処理とは、画像中の物体境界など顕著な輝度段差は残しつつ階調を平滑化する非線形フィルタ処理である。エッジ保存平滑化処理は、ノイズリダクション処理や階調補正処理に用いられていた(例えば、非特許文献1乃至非特許文献5参照)。
このようなエッジ保存平滑化処理の中で、近年バイラテラルフィルタと呼ばれる技術がよく利用されるようになってきている。バイラテラルフィルタは、通常の線形なFIR(Finite Impulse Response)フィルタなどに比べて演算量がはるかに多い。そのため、バイラテラルフィルタ計算を高速化する手法が提案されていた(例えば、非特許文献4および非特許文献6参照)。
また、信号を間引き処理することによるバイラテラルフィルタの高速計算手法も提案されていた(例えば、非特許文献7、特許文献1、および特許文献2参照)。
これらの処理では、画像の領域・レベルごとの信号の出現頻度(局所ヒストグラム)を用いることで、入力信号の分解能を低下させた間引き信号を作り、その間引き信号に対してフィルタカーネルを畳み込んでから拡大することで、バイラテラルフィルタ計算量を削減していた。また、フィルタ計算のために、局所ヒストグラムの各ビンに対応する画素の輝度値の総和(以下、特性値)を用いていた。
A. Lev,S. W. Zucker,A. Rosenfeld,「Iterative enhancement of noise images」,IEEE Trans. Systems, Man, and Cybernetics, Vol. SMC-7,1977. D. C. C. Wang,A. H. Vagnucci,C. C. Li,「Gradient inverse weighted smoothing scheme and the evaluation of its performance」,CVGIP,Vol. 15,pp. 167-181,1981. M. Nagao,T. Matsuyama,「Edge preserving smoothing」,CGIP,Vol. 9, pp. 394-407,1978. F. Durand,J. Dorsey,「Fast bilaterarl filtering for the display of high-dynamic-range images」,Proc. of ACM SIGGRAPH 2002,2002. S. N. Pattanaik,H. Yee,「Adaptive gain control for high dynamic range image display」,Proc. of Spring Conference in Computer Graphics 2002,2002. Weiss,「Fast median and bilateral filtering」,Proc. of ACM SIGGRAPH 2006,2006. S.Paris et al.「A Fast Approximation of the Bilateral Filter using a Signal Processing Approach」,
特開2009−177558号公報 特開2010−003297号公報
しかしながら、これらの手法の場合、処理コストを抑えるために局所ヒストグラムの分解能を低下させると、バイラテラルフィルタの計算精度が低下してしまう恐れがあった。
また、特に平坦な入力画像に対して誤差が発生しやすくなる恐れがあった。
この問題は、局所ヒストグラムの分解能(ビン数)を大きく設定することで軽減することができる。しかしながら、分解能によって計算精度を1bit分改良するには、2倍のビン数が必要となるため、計算量や記憶容量等、フィルタ処理の負荷が増大してしまう恐れがあった。
本発明は、このような状況に鑑みてなされたものであり、負荷の増大を抑制しながら画像信号処理の画質性能を向上させることを目的とする。
本発明の一側面は、入力画像の各画素を、その輝度値に基づいて、輝度値が取り得る値の範囲全体を輝度方向に複数に分割して得られる各部分領域の何れかに割り当て、各部分領域について、その部分領域に割り当てられた画素数を示す頻度値を算出する際に、前記入力画像の1つの画素を複数の部分領域に割り当て、それらの部分領域の前記頻度値を更新する頻度値算出手段と、前記部分領域の特性を示す特性値を算出する特性値算出手段と、前記頻度値算出手段により算出された前記頻度値、および、前記特性値算出手段により算出された前記特性値を用いて、前記輝度方向の距離に応じて前記特性値を加重平均することにより、前記入力画像をエッジ保存平滑化する加重積和手段ととを備える画像処理装置である。
前記頻度値算出手段は、前記入力画像の画素を割り当てる際のカウント値を小数精度に拡張するための重みを算出する重み算出手段と、前記重み算出手段により算出された前記重みを用いて複数の部分領域の前記頻度値を更新する頻度値更新手段とを備え、前記特性値算出手段は、前記重み算出手段により算出された前記重みを、前記入力画像の輝度値に乗算する重み乗算手段と、前記重み乗算手段により前記重みが乗算された前記入力画像の輝度値を用いて、複数の部分領域の前記特性値を更新する特性値更新手段とを備えることができる。
前記重み算出手段は、所定の重み関数に従って、各部分領域の重みを算出することができる。
前記頻度値算出手段は、前記入力画像の画素を間引く間引き手段をさらに備え、前記重み算出手段は、前記間引き手段により間引かれた前記入力画像の画素について、各部分領域の重みを算出することができる。
前記間引き手段は、前記重み算出手段により算出される前記重みの小数精度に対応する間引きレートで前記入力画像の画素を間引くことができる。
前記入力画像の内容を示す空間パターンを判定する空間パターン判定手段をさらに備え、前記間引き手段は、前記空間パターン判定手段による前記空間パターンの解析結果に応じた間引きレートで前記入力画像の画素を間引くことができる。
前記空間パターン判定手段は、前記空間パターンを前記入力画像の部分領域毎に判定し、前記間引き手段は、前記部分領域毎に、前記空間パターン判定手段による前記空間パターンの解析結果に応じた間引きレートで前記入力画像の画素を間引くことができる。
本発明の一側面は、また、画像処理装置の画像処理方法であって、頻度値算出手段が、入力画像の各画素を、その輝度値に基づいて、輝度値が取り得る値の範囲全体を輝度方向に複数に分割して得られる各部分領域の何れかに割り当て、各部分領域について、その部分領域に割り当てられた画素数を示す頻度値を算出する際に、前記入力画像の1つの画素を複数の部分領域に割り当て、それらの部分領域の前記頻度値を更新し、特性値算出手段が、前記部分領域の特性を示す特性値を算出し、前記加重積和手段が、算出された前記頻度値、および、算出された前記特性値を用いて、前記輝度方向の距離に応じて前記特性値を加重平均することにより、前記入力画像をエッジ保存平滑化する画像処理方法である。
本発明の一側面は、さらに、コンピュータを、入力画像の各画素を、その輝度値に基づいて、輝度値が取り得る値の範囲全体を輝度方向に複数に分割して得られる各部分領域の何れかに割り当て、各部分領域について、その部分領域に割り当てられた画素数を示す頻度値を算出する際に、前記入力画像の1つの画素を複数の部分領域に割り当て、それらの部分領域の前記頻度値を更新する頻度値算出手段、前記部分領域の特性を示す特性値を算出する特性値算出手段、前記頻度値算出手段により算出された前記頻度値、および、前記特性値算出手段により算出された前記特性値を用いて、前記輝度方向の距離に応じて前記特性値を加重平均することにより、前記入力画像をエッジ保存平滑化する加重積和手段として機能させるためのプログラムである。
本発明の一側面においては、入力画像の各画素を、その輝度値に基づいて、輝度値が取り得る値の範囲全体を輝度方向に複数に分割して得られる各部分領域の何れかに割り当て、各部分領域について、その部分領域に割り当てられた画素数を示す頻度値を算出する際に、前記入力画像の1つの画素が複数の部分領域に割り当てられ、それらの部分領域の前記頻度値が更新され、部分領域の特性を示す特性値が算出され、その算出された前記頻度値、および、算出された前記特性値を用いて、前記輝度方向の距離に応じて前記特性値が加重平均されることにより、前記入力画像がエッジ保存平滑化される。
本発明によれば、画像を処理することができる。特に、負荷の増大を抑制しながら画像信号処理の画質性能を向上させることができる。
バイラテラルフィルタの概要を説明する図である。 従来のバイラテラルフィルタのブロックヒストグラム算出部とブロック積分値算出部の主な構成例を示すブロック図である。 従来のバイラテラルフィルタの処理の様子を説明する図である。 従来のバイラテラルフィルタの処理の様子を説明する図である。 従来のバイラテラルフィルタの処理の様子を説明する図である。 本発明を適用したデジタルビデオカメラの主な構成例を示すブロック図である。 DSPの主な構成例を示すブロック図である。 ベイヤ配列を説明する図である。 階調補正処理部の主な構成例を示すブロック図である。 輝度階調補正部の主な構成例を示すブロック図である。 ブロックヒストグラム算出部とブロック積分値算出部の主な構成例を示すブロック図である。 重みの例を説明する図である。 重みの例を説明する図である。 重み関数の例を説明する図である。 誤差特性の違いを説明する図である。 バイラテラルフィルタの処理の様子を説明する図である。 加重積和部の主な構成例を示すブロック図である。 画像処理の流れの例を説明するフローチャートである。 階調補正処理の流れの例を説明するフローチャートである。 階調補正処理の流れの例を説明する図19に続くフローチャートである。 ブロックヒストグラム算出のための画素処理の例を示すフローチャートである。 ブロック積分値算出のための画素処理の例を示すフローチャートである。 ブロック積分値算出のための画素処理の例を示すフローチャートである。 ブロックヒストグラム算出部とブロック積分値算出部の主な構成例を示すブロック図である。 ブロックヒストグラム算出のための画素処理の例を示すフローチャートである。 ブロック積分値算出のための画素処理の例を示すフローチャートである。 空間パターンに応じた重み関数の例を示す図である。 輝度階調補正部の主な構成例を示すブロック図である。 空間パターン解析部の主な構成例を示すブロック図である。 信号強度の例を説明する図である。 ブロックヒストグラム算出部の主な構成例を示すブロック図である。 ブロック積分値算出部の主な構成例を示すブロック図である。 階調補正処理の流れの例を説明するフローチャートである。 階調補正処理の流れの例を説明する図33に続くフローチャートである。 空間パターン解析処理の流れの例を説明するフローチャートである。 空間パターン判定処理の流れの例を説明するフローチャートである。 ブロックヒストグラム算出のための画素処理の例を示すフローチャートである。 ブロック積分値算出のための画素処理の例を示すフローチャートである。 局所毎のヒストグラムを用いる例を説明する図である。 ブロックヒストグラム算出部の主な構成例を示すブロック図である。 ブロック積分値算出部の主な構成例を示すブロック図である。 ブロックヒストグラム算出のための画素処理の例を示すフローチャートである。 本発明を適用したパーソナルコンピュータの主な構成例を示すブロック図である。
以下、発明を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.第1の実施の形態(バイラテラルフィルタ)
2.第2の実施の形態(バイラテラルフィルタ)
3.第3の実施の形態(バイラテラルフィルタ)
4.第4の実施の形態(バイラテラルフィルタ)
5.第5の実施の形態(パーソナルコンピュータ)
<1.第1の実施の形態>
[バイラテラルフィルタの概要]
画像処理技術の1つとして、エッジ保存平滑化処理が知られている。エッジ保存平滑化処理とは、画像中の物体境界など顕著な輝度段差は残しつつ階調を平滑化する非線形フィルタ処理である。
例えば、図1Aに示されるように1つの画像1に、輝度が強い(明るい)領域2と輝度が小さい(暗い)領域3が含まれるとする。このような画像1の点線上の画素値(輝度値)は、例えば、図1Bのグラフに示される曲線4のようになる。図1Bにおいて、横軸は画像1の水平方向の位置を示し、縦軸は各画素の画素値(輝度値)を示す。
図1Bにおいて曲線4に示されるように、図1Aの点線上の画素の画素値は、領域2の部分(4A)と領域3の部分(4C)との境界付近で大きく値が変化する(4B)。また、領域2の部分(4A)と領域3の部分(4C)のそれぞれにおいて、例えばノイズ成分等により、画素値は微小に変化している。
エッジ保存平滑化処理は、このような輝度値の変化を示す曲線4の、変化が急峻な部分(4B)は残し、領域2の部分(4A)と領域3の部分(4C)のノイズ等による微小な変化のみを除去する(低減させる)。つまり、このエッジ保存平滑化処理により、輝度値の変化は、図1Bに示される曲線4から図1Cに示される曲線5のように変化する。
エッジ保存平滑化処理は、視認性に影響する物体輪郭が保存されつつ微細な輝度変動が除去されるため、古くからノイズリダクション処理に用いられている。
また、エッジ保存平滑化処理は、物体内のテクスチャの微細な輝度変動と物体輪郭の顕著な輝度段差を分離できる性質を利用して、テクスチャに代表されるディテール成分を変化させることなく、それ以外の成分の輝度差を圧縮する階調補正処理にも用いられている。
このようなエッジ保存平滑化処理の中で、近年バイラテラルフィルタと呼ばれる技術がよく利用されるようになってきている。一般に、画像に対するバイラテラルフィルタBLF(pc)では、次式(1)に示されるように、空間方向の重み関数ω(p−pc)および輝度値方向の重み関数φ(I(p)−I(pc))で重み付けした画素位置pcの周囲の画素の画素値I(p)を加算する演算が行われる。
Figure 2012058850
・・・(1)
なお、式(1)において、右辺の分母は、重み値の正規化係数を示している。非特許文献4には、このようなバイラテラルフィルタを用いた階調補正処理技術が開示されている。
式(1)に示されるように、バイラテラルフィルタでは、局所領域中の各画素pに対する重み付けが中心画素pcの輝度値に依存して変わる。そのため、画素毎に重み値を算出し直す必要があるので、通常の線形なFIR(Finite Impulse Response)フィルタなどに比べて演算量がはるかに多い。非特許文献4および非特許文献6には、そのようなバイラテラルフィルタの欠点を克服するために、バイラテラルフィルタ計算を高速化する手法が開示されている。これらの手法では、画像の部分領域(ブロック)ごとに定義される、輝度の局所ヒストグラム(以下、ブロックヒストグラムと称する)を用いることで高速演算を行う。
図2Aに、高速バイラテラルフィルタ処理の内部のブロックヒストグラム算出部の主な構成例を示す。図2Aに示されるブロックヒストグラム算出部10は、各ビンの、各画素の画素値が含まれる頻度を算出する処理部であり、ブロック選択部11、カウンタ12−1乃至カウンタ12−N、並びに、ブロックヒストグラムメモリ13を有する。
ブロック選択部11は、供給された処理対象画素の輝度値L(nl)(p)と、処理対象画素の位置pとから、処理対象画素の属す輝度ブロックを特定し、各輝度ブロックに対応するカウンタ12−1乃至カウンタ12−Nのうち、特定された輝度ブロックに対応するカウンタの値を1だけ増加させる。
輝度ブロックとは、画像の各画素の位置および輝度値が取り得る値の範囲全体を、空間方向および輝度方向に複数に分割して得られる各部分領域のことを示す。例えば、輝度画像の各画素の位置が取り得る値の範囲が、幅方向にW個に分割され、高さ方向にH個に分割され、さらに、各画素の輝度値が取り得る値の範囲が、輝度方向にD個に分割されるとすると、輝度ブロック(部分領域)数Nは、W×H×D個となる。
この場合、ブロックヒストグラム算出部10には、それらのN個の輝度ブロックのそれぞれに対応するN個のカウンタ12−1乃至カウンタ12−Nが設けられる。そして、ブロック選択部11は、輝度ブロックが特定されると、その輝度ブロックに対応するカウンタの値をインクリメントさせる。
カウンタ12−1乃至カウンタ12−Nのそれぞれは、対応する輝度ブロックにおける画素の頻度値、つまり輝度ブロックに属する画素の数を示す値を保持し、ブロック選択部11の指示に応じて保持している値をインクリメントする。また、カウンタ12−1乃至カウンタ12−Nのそれぞれは、1フレーム分の輝度画像の画素のカウントが終了すると、保持している値をブロックヒストグラムとして、ブロックヒストグラムメモリ13に供給する。なお、以下、カウンタ12−1乃至カウンタ12−Nのそれぞれを、個々に区別する必要のない場合、単にカウンタ12と称する。
図2Bに、バイラテラルフィルタ内部のブロック積分値算出部の主な構成例を示す。このブロック積分値は、前述の特性値に相当する。図2Bに示されるブロック積分値算出部20は、各ビンの頻度に、各ビンの中央値を乗算した積分値を算出する処理部であり、ブロック選択部21、積分器22−1乃至積分器22−N、並びに、ブロック積分値メモリ23を有する。
ブロック選択部21は、供給された処理対象画素の輝度値L(nl)(p)と、処理対象画素の位置pとから、処理対象画素の属する輝度ブロックを特定し、各輝度ブロックに対応する積分器22−1乃至積分器22−Nのうち、特定された輝度ブロックに対応する積分器に輝度値L(nl)(p)を供給する。
積分器22−1乃至積分器22−Nのそれぞれは、ブロック選択部21から供給された輝度値L(nl)(p)を積分して、対応する輝度ブロックのブロック積分値を求める。また、積分器22−1乃至積分器22−Nのそれぞれは、1フレーム分の輝度画像の画素の画素値の和が求められ、ブロック積分値が求まると、ブロック積分値をブロック積分値メモリ23に供給する。
積分器22−1乃至積分器22−Nのそれぞれには、加算部31−1乃至加算部31−Nのそれぞれと、レジスタ32−1乃至レジスタ32−Nのそれぞれとが設けられている。加算部31−1乃至加算部31−Nのそれぞれは、ブロック選択部21から供給された輝度値L(nl)(p)を、レジスタ32−1乃至レジスタ32−Nのそれぞれに記録されている値に加算して、レジスタ32−1乃至レジスタ32−Nのそれぞれに記録させる。すなわち、レジスタ32−1乃至レジスタ32−Nのそれぞれには、供給された輝度値L(nl)(p)の総和が記録される。
レジスタ32−1乃至レジスタ32−Nのそれぞれは、加算部31−1乃至加算部31−Nのそれぞれから供給された値を記録するとともに、記録している値を加算部31−1乃至加算部31−Nのそれぞれと、ブロック積分値メモリ23とに供給する。
なお、以下、積分器22−1乃至積分器22−Nのそれぞれを、個々に区別する必要のない場合、単に積分器22と称する。また、以下、加算部31−1乃至加算部31−Nのそれぞれを個々に区別する必要のない場合、単に加算部31と称し、レジスタ32−1乃至レジスタ32−Nのそれぞれを個々に区別する必要のない場合、単にレジスタ32と称する。
同様の信号を間引き処理することによるバイラテラルフィルタの高速計算手法は、非特許文献7や、特許文献1や、特許文献2で提案されている。これらの処理では、画像の領域・レベルごとの信号の出現頻度(局所ヒストグラム)を用いることで、入力信号の分解能を低下させた間引き信号を作り、その間引き信号に対してフィルタカーネルを畳み込んでから拡大することで、バイラテラルフィルタ計算量を削減している。これらの手法では、間引き信号の空間分解能の低さや、ヒストグラムの分解能の低さ(ビン数の少なさ)が、処理コストを抑えるために重要である。
しかしながら、前述の手法には、処理コストを抑えるために局所ヒストグラムの分解能を低下させると、バイラテラルフィルタの計算精度が低下しやすくなる問題がある。特に、入力信号が滑らかなグラデーション信号の場合に精度の低下が発生しやすい。
例えば、図3Aに示される同じ形状の入力信号(信号41乃至信号44)でも、そのレベルが異なることによって、フィルタ出力の特性が図3Bに示されるように変化する(信号51乃至信号54)。
これは、計算精度の低下によって、バイラテラルフィルタの特性が不安定になっていることを示している。この問題は、入力信号のレベルが、局所ヒストグラムにて単一のビンに集中した場合に、グラデーションの情報が失われることが原因で発生する。
例えば、図4Aに示されるような、入力画像として輝度の変動が少なく、滑らかなグラデーションパターンが与えられた場合を考える。すると、図4Bに示されるように、ビンの範囲と入力輝度との関係により、局所ヒストグラムごとに計算結果が単一のビンに集中したり、複数のビンに分散したりする。その結果、図4Cのように、最終的なフィルタ結果が不均一になるという問題が発生する(不均一 ⇒ グラデーションの傾きが暴れる)。
また、前述の手法では、フィルタ計算のために、局所ヒストグラムの各ビンに対応する画素の輝度値の総和(以下、特性値)を用いる。特性値を効率的に計算する手法として、ビン毎にその度数とビン中央のレベルから特性値を求める手法が提案されている。しかしながら、この手法を使うと、特に平坦な入力画像に対して誤差が発生しやすくなるという問題がある。
今、ヒストグラムのあるビンの端に当たるレベルの入力信号(図5A)を考える。この入力に対して、局所ヒストグラムが計算される。この段階で、ビンの中でのレベルの情報が失われる。そのため、局所ヒストグラムから特性値を求め、そこからフィルタ出力を計算した時に、ビンの中央の値が出力されるため、誤差が生じてしまう(図5B)。この誤差にはレベル依存性があり、ビンの中央のレベルでは誤差最小となり(図5Cおよび図5D)、ビンの端のレベルでは誤差最大となる。
この問題は、局所ヒストグラムの分解能(ビン数)を大きく設定することで軽減される。しかし、分解能によって計算精度を1bit分改良するには、2倍のビン数が必要となるため、計算量やメモリ量が膨大になってしまうという問題がある。
このような問題は、局所ヒストグラムの計算では、ビンの中でのレベルの情報が反映されないことによって発生する。そこで、局所ヒストグラムの計算を改良して、ビンの中でのレベルの情報を反映できるようにする。具体的には、ヒストグラムのカウントを複数のビンに対して行うようにする。
[デジタルビデオカメラの構成例]
図6は、本発明を適用したデジタルビデオカメラの一実施の形態を示すブロック図である。図6に示されるデジタルビデオカメラ100は、被写体を撮像し、その被写体の画像を表示したり、画像データを記録したりする。
デジタルビデオカメラ100は、レンズ101、絞り102、画像センサ103、相関2重サンプリング回路(CDS(Correlated Double Sampling circuit))104、およびA/D(Analog/Digital)コンバータ105を有する。また、デジタルビデオカメラ100は、DSP(Digital Signal Processor)ブロック106、タイミングジェネレータ(TG(Timing Generator))107、LCD(Liquid Crystal Display)ドライバ108、およびLCD109を有する。さらに、デジタルビデオカメラ100は、CODEC(coder/decoder)110、メモリ111、CPU(Central Processing Unit)112、入力デバイス113、およびバス114を有する。
なお、DSPブロック106は、信号処理用のプロセッサ(例えば、DSP)と画像データを保持するRAM(Random Access Memory)などのメモリなどにより構成されるブロックであり、プロセッサが所定のプログラムを実行することにより、後述する画像処理を行う。また、以下、DSPブロック106を、単にDSP106と称する。
レンズ101および絞り102などからなる光学系を通過した被写体からの入射光は、まず画像センサ103に到達する。画像センサ103は、例えば、CCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)イメージセンサ等、任意の撮像素子を有し、入射光を電気信号に光電変換する。
画像センサ103は、光電変換できるものであればどのようなものであってもよいが、よりダイナミックレンジが広く、飽和したり、ノイズを発生させたりすることなく、被写体の暗い部分から明るい部分までを撮像することができるものが望ましい。
画像センサ103から出力された電気信号は、相関2重サンプリング回路104によってノイズが除去され、A/Dコンバータ105によってデジタル化される。A/Dコンバータ105は、どのようなものであってもよいが、より多くの階調数のデジタルデータに変換できる方が望ましい。例えば、A/Dコンバータ105は、入力される電気信号を、通常のデジタルビデオカメラの階調数(例えば、10乃至12ビット程度のデータにより表現できる階調数)よりも多い階調数(例えば、14乃至16ビット程度のデータにより表現できる階調数)の画像データに変換するようにしてもよい。
A/Dコンバータ105によりデジタル化された画像データは、DSP106内のメモリに一時的に格納される。タイミングジェネレータ107は、一定のフレームレートにより画像データが取り込まれるように、相関2重サンプリング回路104、A/Dコンバータ105、および、DSP106により構成される信号処理系を制御する。すなわち、DSP106には、一定のフレームレートで画像データのストリームが供給される。
DSP106は、画像データのダイナミックレンジが、例えばLCD109が表示可能なダイナミックレンジになるように、後述する画像処理を画像データに施した後、画像処理を施した画像データを、必要に応じて、LCDドライバ108またはCODEC110に供給する。
LCDドライバ108は、DSP106から供給される画像データをアナログの画像信号に変換する。LCDドライバ108は、デジタルビデオカメラのファインダであるLCD109にアナログの画像信号を供給し、画像信号に基づく画像を表示させる。
CODEC110は、DSP106から供給される画像データを所定の方式により符号化し、符号化した画像データを、例えば、半導体、磁気記録媒体、光磁気記録媒体、または光記録媒体などの任意の記録媒体よりなるメモリ111に記録させる。
CPU112は、例えば、ユーザがシャッタボタン等の操作ボタンなどにより構成される入力デバイス113を操作することにより入力された指令などに基づいて、デジタルビデオカメラ100の全体の処理を制御する。また、DSP106、タイミングジェネレータ107、CODEC110、メモリ111、LCD109、CPU112、および入力デバイス113は、バス114を介して相互に接続されている。
[DSPの構成例]
図7は、DSP106の内部のプロセッサ(演算ユニット)が、所定のプログラムを実行することにより実現される機能の構成の例を示すブロック図である。DSP106の内部のプロセッサが所定のプログラムを実行することにより、ホワイトバランス処理部131、デモザイク処理部132、階調補正処理部133、ガンマ補正処理部134、およびYC変換処理部135を含む機能が実現される。
ホワイトバランス処理部131は、A/Dコンバータ105によりA/D変換された、動画像などの画像データであるモザイク画像を取得する。モザイク画像は、R,G,Bのうちのいずれかの色成分に対応するデータが1つの画素に格納され、例えば図8に示す、ベイヤ配列と呼ばれる色配列に従って各画素が配置されている画像であり、RAWデータとも呼ばれている。
図8では、1つの正方形が1つの画素を表しており、正方形内の文字R,G,Bは、それぞれRの画素,Gの画素,およびBの画素を示している。そして、Gの画素が市松状に配置され、残りの部分にRの画素およびBの画素が一行ごとに交互に配置されている。
図7の説明に戻り、ホワイトバランス処理部131は、取得したモザイク画像の各画素の画素値に適切な係数をかけることにより、被写体の無彩色の部分の色バランスが実際に無彩色となるように、モザイク画像のホワイトバランスを調整する。ホワイトバランス処理部131は、ホワイトバランスを調整したモザイク画像をデモザイク処理部132に供給する。なお、以下、ホワイトバランスが調整されたモザイク画像をMwとする。
デモザイク処理部132は、ホワイトバランス処理部131から供給されたモザイク画像Mwに対して、1つの画素がR,G,B成分を全て有するようにするデモザイク処理を施す。これにより、R,G,Bの3つの色成分にそれぞれ対応するR画像、G画像、B画像の3つの画像データが生成される。デモザイク処理部132は、生成したR画像、G画像、B画像の3つの画像データを階調補正処理部133に供給する。
なお、以下において、R画像、G画像、B画像の3つの画像データをまとめてRGB画像とも称する。また、以下において、モザイク画像の画素位置pにおける画素値をM(p)とする。さらに、以下において、デモザイク処理が施された画像データの画素位置pにおける画素値を[Rw(p),Gw(p),Bw(p)]とする。ここで、Rw(p)はR成分の画素値であり、Gw(p)はG成分の画素値であり、Bw(p)はB成分の画素値である。
階調補正処理部133は、RGB画像に階調補正処理を施し、階調補正処理を施したRGB画像をガンマ補正処理部134に供給する。なお、以下において、階調補正処理が施された画像データの画素位置pにおける画素値を[Ru(p),Gu(p),Bu(p)]とする。ここで、Ru(p)はR成分の画素値であり、Gu(p)はG成分の画素値であり、Bu(p)はB成分の画素値である。
ガンマ補正処理部134は、階調変換されたRGB画像にガンマ補正を施す。ガンマ補正処理部134は、ガンマ補正を施したRGB画像をYC変換処理部135に供給する。なお、以下、ガンマ補正が施された画像データの画素位置pにおける画素値を[Ruγ(p),Guγ(p),Buγ(p)]とする。ここで、Ruγ(p)はR成分の画素値であり、Guγ(p)はG成分の画素値であり、Buγ(p)はB成分の画素値である。
YC変換処理部135は、ガンマ補正が施されたRGB画像に対して、YCマトリックス処理およびクロマ成分に対する帯域制限を行うことにより、輝度成分(Y成分)により構成されるY画像、および、色差成分(CbまたはCr成分)により構成されるC画像を生成する。YC変換処理部135は、生成したY画像およびC画像を、必要に応じて、LCDドライバ108またはCODEC110に供給する。なお、以下、YC変換処理部135から出力される画像データの画素位置pにおける画素値を[Y(p),C(p)]とする。ここで、Y(p)はY画像における輝度成分の値であり、C(p)はC画像における色差成分の値である。また、以下、C画像のCb成分をCb(p)と称し、C画像のCr成分をCr(p)と称する。
[階調補正処理部の構成例]
図9は、階調補正処理部133の機能の構成例を示すブロック図である。階調補正処理部133は、輝度算出部151、非線形変換部152、輝度階調補正部153、非線形変換部154−1乃至非線形変換部154−3、階調補正部155−1乃至階調補正部155−3、および非線形逆変換部156−1乃至非線形逆変換部156−3を有する。
輝度算出部151は、デモザイク処理部132から供給されたRGB画像の画素値Rw(p),Gw(p),Bw(p)から、その画素位置に対応する輝度成分の値(輝度値L(p))を算出し、非線形変換部152に供給する。非線形変換部152は、輝度算出部151からの輝度値L(p)を非線形変換し、その結果として得られた輝度値L(nl)(p)を、輝度階調補正部153および階調補正部155−1乃至階調補正部155−3に供給する。
輝度階調補正部153は、非線形変換部152からの輝度値L(nl)(p)の階調を圧縮することで、輝度値L(nl)(p)の階調補正を行い、階調補正により得られた輝度値Lu(nl)(p)を階調補正部155−1乃至階調補正部155−3に供給する。
非線形変換部154−1乃至非線形変換部154−3のそれぞれは、デモザイク処理部132から供給されたRGB画像の画素値Rw(p)、Gw(p)、およびBw(p)のそれぞれを非線形変換する。また、非線形変換部154−1乃至非線形変換部154−3のそれぞれは、非線形変換により得られた画素値R(nl)(p)、G(nl)(p)、およびB(nl)(p)のそれぞれを、階調補正部155−1乃至階調補正部155−3に供給する。なお、以下において、非線形変換部154−1乃至非線形変換部154−3のそれぞれを個々に区別する必要のない場合、単に非線形変換部154と称する。
階調補正部155−1乃至階調補正部155−3のそれぞれは、非線形変換部152からの輝度値L(nl)(p)と、輝度階調補正部153からの輝度値Lu(nl)(p)とを用いて、非線形変換部154−1乃至非線形変換部154−3からの画素値R(nl)(p)、G(nl)(p)、およびB(nl)(p)のそれぞれを階調補正する。階調補正部155−1乃至階調補正部155−3のそれぞれは、階調補正により得られた画素値Ru(nl)(p)、Gu(nl)(p)、およびBu(nl)(p)のそれぞれを、非線形逆変換部156−1乃至非線形逆変換部156−3のそれぞれに供給する。
非線形逆変換部156−1乃至非線形逆変換部156−3のそれぞれは、階調補正部155−1乃至階調補正部155−3からの画素値Ru(nl)(p)、Gu(nl)(p)、およびBu(nl)(p)のそれぞれに、非線形変換部154による非線形変換の逆変換となる非線形逆変換を施す。非線形逆変換部156−1乃至非線形逆変換部156−3のそれぞれは、非線形逆変換により得られた画素値Ru(p)、Gu(p)、およびBu(p)のそれぞれを、ガンマ補正処理部134に供給する。
なお、以下において、階調補正部155−1乃至階調補正部155−3のそれぞれを個々に区別する必要のない場合、単に階調補正部155と称する。また、以下において、非線形逆変換部156−1乃至非線形逆変換部156−3のそれぞれを個々に区別する必要のない場合、単に非線形逆変換部156と称する。
[輝度階調補正部の構成例]
図10は、図9の輝度階調補正部153の機能の構成の例を示すブロック図である。図10に示されるように、輝度階調補正部153は、輝度域情報算出部171、輝度域情報メモリ172、ブロックヒストグラム算出部173、ブロックヒストグラムメモリ174、ブロック積分値算出部175、およびブロック積分値メモリ176を有する。また、輝度階調補正部153は、加重積和部177、トーンカーブ算出部178、トーンカーブメモリ179、マッピング部180、マッピング部181、およびコントラスト補正部182を有する。
輝度域情報算出部171、ブロックヒストグラム算出部173、およびブロック積分値算出部175は、RGB画像の広域的な情報を算出し、その情報を1フレームごとに更新する処理を行う。
すなわち、輝度域情報算出部171は、非線形変換部152から供給された輝度値L(nl)(p)からなる1フレーム分の画像(以下、輝度画像と称する)の画素の輝度値のヒストグラムにおける暗輝度側および明輝度側の裾野の輝度値である裾野値を求め、それらの裾野値を輝度域情報として輝度域情報メモリ172に格納する。輝度域情報メモリ172は、輝度域情報算出部171から供給された輝度域情報を一時的に記録し、トーンカーブ算出部178に供給する。
ブロックヒストグラム算出部173は、非線形変換部152から供給された輝度値L(nl)(p)からなる1フレーム分の輝度画像を、空間方向に複数のいくつかの空間ブロック(領域)に分割し、さらに空間ブロックを輝度方向に分割して輝度ブロックとする。
ここで、輝度ブロックは、空間ブロック内の画素のうち、輝度ブロックに対して予め定められた輝度範囲内の輝度値を有する画素からなる。したがって、例えば空間ブロックをD個の輝度ブロックに分割する場合、輝度値の取り得る範囲が予めD個の範囲に分割されており、空間ブロック内の画素は、その輝度値がD個の範囲のいずれの範囲内の値であるかによって、D個の輝度ブロックのうちのいずれかに分類される。
また、ブロックヒストグラム算出部173は、輝度画像を分割して得られる各輝度ブロックの画素の頻度値を求め、それらの頻度値をブロックヒストグラムとして、ブロックヒストグラムメモリ174に供給する。すなわち、ブロックヒストグラムは、各輝度ブロックに属す(分類された)画素数を示している。ブロックヒストグラムメモリ174は、ブロックヒストグラム算出部173から供給されたブロックヒストグラムを一時的に記録し、加重積和部177に供給する。
ブロック積分値算出部175は、非線形変換部152から供給された輝度値L(nl)(p)からなる1フレーム分の輝度画像から、各輝度ブロックについて、輝度ブロックに属す画素の輝度値の積分値(総和)を算出し、算出された積分値をブロック積分値としてブロック積分値メモリ176に供給する。ブロック積分値メモリ176は、ブロック積分値算出部175から供給されたブロック積分値を一時的に記録し、加重積和部177に供給する。
なお、以下において、輝度域情報、ブロックヒストグラム、およびブロック積分値を中間データとも称する。この中間データとしての輝度域情報、ブロックヒストグラム、およびブロック積分値は、輝度域情報メモリ172、ブロックヒストグラムメモリ174、およびブロック積分値メモリ176に、輝度画像(RGB画像)の1フレーム分の時間だけ保持されて、1フレームごとに更新されることになる。
また、中間データは、算出するのにほぼ1フレーム分の時間が必要とされるため、従来の技術では、実際に生成された中間データが利用されるのは、次のフレームの画像情報が入力されたときとなる。しかしながら、階調補正処理部133では、中間データを算出する処理と、中間データを利用してRGB画像の階調補正を行う処理とは並行して行われるので、動画像データについてもリアルタイムに処理を行うことが可能である。
加重積和部177は、非線形変換部152から供給された輝度値L(nl)(p)と、ブロックヒストグラムメモリ174からのブロックヒストグラム、およびブロック積分値メモリ176からのブロック積分値とから、輝度値L(nl)(p)からなる輝度画像のごく低周波成分からなる画像(以下、大局輝度画像と称する)の輝度値である大局輝度値Ll(nl)(p)を算出する。
すなわち、処理対象となっているフレームの時間的に1つ前のフレームの輝度画像(RGB画像)から求められた、ブロックヒストグラムおよびブロック積分値が用いられて、供給された輝度値L(nl)(p)の画素の大局輝度値Ll(nl)(p)が算出される。ここで、大局輝度値とは、いわばRGB画像上の画素が属す物体領域の平均輝度に相当する情報、つまりその画素が含まれる物体領域の平均的な明るさを示す輝度値である。
なお、以下において、処理の対象となっている画素、例えば、輝度階調補正部153に供給された輝度値L(nl)(p)の画素を、処理対象画素とも称する。
また、加重積和部177は、算出した大局輝度値Ll(nl)(p)を、トーンカーブ算出部178およびマッピング部180に供給する。
トーンカーブ算出部178は、輝度域情報メモリ172からの輝度域情報と、加重積和部177からの大局輝度値Ll(nl)(p)とから、輝度値の階調を圧縮するために適用されるトーンカーブの形状を算出し、その算出結果をトーンカーブメモリ179に供給する。トーンカーブメモリ179は、トーンカーブ算出部178からのトーンカーブを記録し、記録しているトーンカーブをマッピング部180、マッピング部181、およびコントラスト補正部182に供給する。
マッピング部180は、トーンカーブメモリ179に記録されているトーンカーブに基づいて、加重積和部177からの大局輝度値Ll(nl)(p)の階調を圧縮(補正)し、階調補正により得られた大局輝度値Lcl(nl)(p)をコントラスト補正部182に供給する。マッピング部181は、トーンカーブメモリ179に記録されているトーンカーブに基づいて、非線形変換部152から供給された輝度値L(nl)(p)の階調を圧縮(補正)し、階調補正により得られた輝度値Lc(nl)(p)をコントラスト補正部182に供給する。
コントラスト補正部182は、マッピング部180からの大局輝度値Lcl(nl)(p)、マッピング部181からの輝度値Lc(nl)(p)、およびトーンカーブメモリ179に記録されているトーンカーブに基づいて、階調が圧縮された輝度値Lc(nl)(p)からなる輝度画像のコントラストを補正する。また、コントラスト補正部182は、コントラストの補正された輝度値Lu(nl)(p)を階調補正部155に供給する。
[ブロックヒストグラム算出部の構成例]
図11Aは、図10のブロックヒストグラム算出部173の機能の構成例を示す図である。図11Aに示されるブロックヒストグラム算出部173は、図2Aのブロックヒストグラム算出部10に対応する。ただし、図11Aの例の場合、ブロックヒストグラム算出部173は、局所ヒストグラムの計算を改良して、ビンの中でのレベルの情報を反映できるようにする。
より具体的には、ヒストグラムのカウントを複数のビンに対して行うようにする。そのために、ブロックヒストグラム算出部173は、カウントの単位を小数方向に拡張する。
ブロックヒストグラム算出部173は、重み算出部201、並びに、カウンタ202−1乃至カウンタ202−Nを有する。
重み算出部201は、非線形変換部152から供給された処理対象画素の輝度値L(nl)(p)と、処理対象画素の位置pとから、処理対象画素の属す輝度ブロックを特定するとともに、供給された輝度値に応じた重みを算出する。重み算出部201は、算出した重みを、各輝度ブロックに対応するカウンタ202−1乃至カウンタ202−Nのうち、特定された輝度ブロックに対応するカウンタに供給する。
ここで、輝度画像が幅方向にW個、高さ方向にH個の空間ブロックに分割され、さらに各空間ブロックがD個の輝度ブロックに分割されて、輝度画像が合計N(=W×H×D)個の輝度ブロックに分割されるとする。この場合、ブロックヒストグラム算出部173には、それらのN個の輝度ブロックのそれぞれに対応するN個のカウンタ202−1乃至カウンタ202−Nが設けられる。
以下において、カウンタ202−1乃至カウンタ202−Nを互いに区別して説明する必要が無い場合、単にカウンタ202と称する。
重み算出部201から重みを供給されたカウンタ202は、その重みを、保持している値に加算する。1フレーム分の重みのカウントが終了すると、カウンタ202は、保持している値(重み算出部201から供給された重みの総和)を、そのブロックのブロックヒストグラムとして、ブロックヒストグラムメモリ174に供給し、記憶させる。カウンタ202は、その後保持している値を初期化する。
なお、重み算出部201は、算出した重みを、カウンタ202に供給するとともに、ブロック積分値算出部175にも供給する。
[ブロック積分値算出部の構成例]
図11Bは、図10のブロック積分値算出部175の機能の構成例を示す図である。図11Bに示されるブロック積分値算出部175は、図2Bのブロック積分値算出部20に対応する。ただし、図11Bの例の場合、ブロック積分値算出部175は、局所ヒストグラムの計算を改良して、ビン(輝度ブロック)の中でのレベルの情報を反映できるようにする。
ブロック積分値算出部175は、重み乗算部231、並びに、積分器232−1乃至積分器232−Nを有する。以下において、積分器232−1乃至積分器232−Nを互いに区別して説明する必要が無い場合、単に積分器232と称する。
重み乗算部231は、非線形変換部152から供給された処理対象画素の輝度値L(nl)(p)と、処理対象画素の位置pとから、処理対象画素の属する輝度ブロックを特定し、重み算出部201から供給された重みを入力信号L(nl)(p)に乗算し、その乗算結果を、各輝度ブロックに対応する積分器232−1乃至積分器232−Nのうち、特定された輝度ブロックに対応する積分器232に供給する。
積分器232は、重み乗算部231から供給された乗算結果を、保持している値に加算する。このように積分器232は、乗算結果の和を1フレーム分算出すると、その乗算結果の和を、ブロック積分値としてブロック積分値メモリ176に供給し、記憶させる。積分器232は、その後保持している値を初期化する。
積分器232−1乃至積分器232−Nのそれぞれは、加算部241−1乃至加算部241−Nのそれぞれと、レジスタ242−1乃至レジスタ242−Nのそれぞれとを有する。以下において、加算部241−1乃至加算部241−Nを互いに区別して説明する必要が無い場合、単に加算部241と称する。また、以下において、レジスタ242−1乃至レジスタ242−Nを互いに区別して説明する必要が無い場合、単にレジスタ242と称する。
加算部241は、重み乗算部231から供給された乗算結果を、レジスタ242に記録されている値に加算し、その加算結果をレジスタ242に記憶させる。レジスタ242は、供給された乗算結果の総和を記憶する。レジスタ242は、加算部241から供給された値を記憶するとともに、記憶している値を加算部241や、ブロック積分値メモリ176に適宜供給する。
なお、ブロック積分値算出部175の代わりに、図11Cに示されるように、乗算部251を設けるようにしてもよい。乗算部251は、ブロックヒストグラムメモリ174に記憶されるブロックヒストグラムの頻度値(重みの和)に、ビン(輝度ブロック)の中央値を乗算し、その乗算結果をブロック積分値としてブロック積分値メモリ176に供給し、記憶させる。
つまり、図11Bの例の場合、特性値(ブロック積分値)は、輝度値の総和から求められる。これに対して、図11Cの場合、特性値(ブロック積分値)は、ブロックヒストグラムの頻度値とビンの中央値から求められる。
[重み関数]
以上のように、ヒストグラムのカウントを複数のビンに対して行うようにし、そのためにカウントの単位を小数方向に拡張する。例えば、図12Aに示されるように、ビン(輝度ブロック)Aの中央値を13とし、その隣のビンBの中央値を14とし、その隣のビンCの中央値を15とする。このような輝度ブロックにおいて、図2Aのブロックヒストグラム算出部10は、例えば図12Aに示されるように、輝度値が13.5未満の場合ビンAのみをカウントし、輝度値が13.5以上14.5未満の場合ビンBのみをカウントし、輝度値が14.5以上の場合ビンCのみをカウントしていた。
これに対して、図11Aのブロックヒストグラム算出部173は、カウントの単位を小数方向に1ビット拡張し、例えば図12Bに示されるように、輝度値が13.25以上13.75未満の場合、つまり、ビンAとビンBの中間レベルの平坦な画像が入力された場合、両方のビンをカウントする。つまり、例えば図12Cに示されるように、ビンAを0.5カウントし、ビンBを0.5カウントする。このようにすることにより、ブロックヒストグラム算出部173は、ビンのカウントの偏りを解消し、その結果として出力の誤差を減少させることができる。
この拡張するビット数は、2ビット以上であってもよい。つまり、さらに拡張幅を増やし、ビン毎のカウント量(重み)を定めるための重み関数を定義するようにしてもよい。
この重み関数の様子を図13に示す。図13Aは、ブロックヒストグラム算出部10によるカウントの様子を、重み関数として表したものである。図13Aに示されるように、この場合の各ビンの重み関数は、各ビンに相当する値の範囲全てが「1」でそれ以外が「0」となされている。
これに対して、ブロックヒストグラム算出部173は、例えば図13Bに示されるように、カウントの単位を小数方向に、図12の例よりも多値に拡張し、重み関数を定義する。このとき、重み関数は、ある入力値について、すべてのビンの重みの総和が1.0となるように定義される。このようにすることにより、従来の場合(図13Aの例)と同様に、カウント値を統計量として扱うことができる。つまり、各ビンのカウント値は度数を表す。
なお、ブロック積分値算出部175は、ブロックヒストグラム算出部173により算出された重みを乗算する。つまり、ブロックヒストグラム算出部173において定義される重み関数は、ブロック積分値算出部175にも適用される。
この重み関数は任意である。図14に、重み関数の例と、その場合の、入力がDC信号のときの誤差の分布を示す。
例えば、グラフ261−1の曲線261Aは、通常のヒストグラムを重み関数として示したものである。この場合の誤差の分布は、グラフ261−2の直線261Bのようになる。グラフ262−1の曲線262Aは、重み関数をS字形状にした場合の例を示す。この場合の誤差の分布は、グラフ262−2の曲線262Bのようになる。グラフ263−1の曲線263Aは、重み関数を直線(リニア)にした場合の例を示す。この場合の誤差の分布は、グラフ263−2の曲線263Bのようになる。グラフ264−1の曲線264Aは、重み関数を逆S字形状にした場合の例を示す。この場合の誤差の分布は、グラフ264−2の曲線264Bのようになる。
もちろん、重み関数はこれら以外の関数としてもよい。重み関数は、用途に応じて設定されるようにするのが望ましい。逆S字形状の重み関数を使うほど、DC信号の入力では誤差が減少するが、同時にヒストグラムの分布を平滑化する働きを持つことにより、バイラテラルフィルタのエッジ保存特性を悪化させる。そこで、例えば、DC信号の誤差が問題になる場合には逆S字の重み関数を使い、フィルタのエッジ保存の特性が重要な場合にはS字の重み関数を使うようにしてもよい。また、用途が特定できない場合や、実装の容易さが重要な場合、リニア特性の重み関数が望ましい。
図15は、ヒストグラム算出の方法の違いによる誤差特性の違いの例を示す。直線271は、通常手法(図2の例の場合)の誤差特性の例を示す。曲線272は、通常手法でビン数を2倍にした場合の誤差特性の例を示す。曲線273は、4ビットの小数精度で図14に示される重み関数2の例を適用した場合の誤差特性の例を示す。
図15に示されるように、重み関数2を適用することで、ビン数を増やした場合と同程度の精度の改善効果が得られる。つまり、小数精度の4ビット分のメモリとリニア特性の重み関数の追加のみで、通常手法でビン数を2倍にした場合と同程度、精度が改善される。換言するに、通常手法のヒストグラムのビット精度が4ビット以上であれば、小数精度の手法を用いることにより、通常手法でビン数を2倍にする場合よりも計算量やメモリ量を低減させることができる。
図16に、小数精度を3bit追加したときのフィルタ出力を示す。この場合、精度が改善したことで、図16Aに示される図3Aと同様の入力信号(信号41乃至信号44)に対して、図16Bに示されるように、入力の輝度によらず安定したフィルタ出力(信号281乃至信号284)が得られる。
[加重積和部の構成例]
図17は、図10の加重積和部177の機能の構成例を示す図である。図17に示されるように、加重積和部177は、補間部291、補間部292、空間重み関数保持部293、積和部294、積和部295、輝度重み関数保持部296、および除算部297を有する。
補間部291は、輝度画像上における非線形変換部152から供給された輝度値L(nl)(p)の画素、つまり処理対象画素の位置に対する、輝度ブロックの輝度範囲の中央値ごとの補間されたブロック積分値を求めて輝度積分値とし、積和部294に供給する。すなわち、輝度ブロック内の画素の取り得る輝度値の範囲の中央値をλとすると、補間部291は、処理対象画素の空間方向近傍の4×4個の空間ブロックから分割された各輝度ブロックのうち、中央値がλである16個の輝度ブロックのブロック積分値のそれぞれに対して補間係数を乗算し、補間係数が乗算されたブロック積分値の和を求めることで、中央値λに対する輝度積分値を求める。
換言すれば、補間部291は、処理対象画素近傍の輝度ブロックのブロック積分値を用いた補間処理を行うことにより、各中央値λに対する輝度積分値を求める。これにより、中央値λごとのD個の輝度積分値が求められることになる。ここで、各ブロック積分値に乗算される補間係数は、処理対象画素の位置と、その処理対象画素近傍の空間ブロックとの相対位置関係に基づいて、空間重み関数保持部293に保持されている空間重み関数ルックアップテーブルから読み出される。
補間部292は、輝度画像上における非線形変換部152から供給された輝度値L(nl)(p)の画素、つまり処理対象画素の位置に対する、輝度ブロックの輝度範囲の中央値ごとの補間されたブロックヒストグラムを求めて輝度ヒストグラムとし、積和部295に供給する。すなわち、補間部292は、処理対象画素の空間方向近傍の4×4個の空間ブロックから分割された各輝度ブロックのうち、中央値がλである16個の輝度ブロックのブロックヒストグラムのそれぞれに対して補間係数を乗算し、補間係数が乗算されたブロックヒストグラムの和を求めることで、中央値λに対する輝度ヒストグラムを求める。
換言すれば、補間部292は、処理対象画素近傍の輝度ブロックのブロックヒストグラムを用いた補間処理を行うことにより、各中央値λに対する輝度ヒストグラムを求める。これにより、中央値λごとのD個の輝度ヒストグラムが求められることになる。ここで、各ブロックヒストグラムに乗算される補間係数は、処理対象画素の位置と、その処理対象画素近傍の空間ブロックとの相対位置関係に基づいて、空間重み関数保持部293に保持されている空間重み関数ルックアップテーブルから読み出される。
積和部294は、補間部291から供給されたD個の輝度積分値に対して、輝度加重値を積和する計算を行い、積和された輝度積分値を除算部297に供給する。すなわち、輝度加重値の乗算された輝度積分値の和が求められる。ここで、輝度積分値に乗算される輝度加重値は、非線形変換部152から積和部294に供給された輝度値L(nl)(p)と、中央値λとに基づいて、輝度重み関数保持部296に保持されている輝度重み関数ルックアップテーブルの輝度重み関数から算出される。
積和部295は、補間部292から供給されたD個の輝度ヒストグラムに対して、輝度加重値を積和する計算を行い、積和された輝度ヒストグラムを除算部297に供給する。すなわち、輝度加重値の乗算された輝度ヒストグラムの和が求められる。ここで、輝度ヒストグラムに乗算される輝度加重値は、非線形変換部152から積和部295に供給された輝度値L(nl)(p)と、中央値λとに基づいて、輝度重み関数保持部296に保持されている輝度重み関数ルックアップテーブルの輝度重み関数から算出される。
除算部297は、積和部294からの輝度積和値を、積和部295からの輝度ヒストグラムで除算することにより、処理対象画素の大局輝度値Ll(nl)(p)を算出してトーンカーブ算出部178およびマッピング部180に供給する。
[画像処理の流れ]
次に、図18のフローチャートを参照して、DSP106により実行される画像処理について説明する。なお、この処理は、例えば、図6のデジタルビデオカメラ100による撮影が開始され、A/Dコンバータ105からDSP106への画像データ(モザイク画像)のストリームの供給が開始されたときに開始される。また、DSP106に供給された画像データは、逐次、DSP106の図示せぬ内部のメモリに格納される。
ステップS101において、ホワイトバランス処理部131は、モザイク画像を読み込む。具体的には、ホワイトバランス処理部131は、DSP106の図示せぬ内部のメモリに格納されている先頭のフレームのモザイク画像を読み込む。
ステップS102において、ホワイトバランス処理部131は、取得したモザイク画像のホワイトバランスを調整し、デモザイク処理部132に供給する。
ステップS103において、デモザイク処理部132は、デモザイク処理を行う。すなわち、デモザイク処理部132は、ホワイトバランス処理部131からのモザイク画像にデモザイク処理を施してRGB画像を生成し、階調補正処理部133に供給する。
ステップS104において、階調補正処理部133は、階調補正処理を行い、デモザイク処理部132からのRGB画像の階調を補正する。そして、階調補正処理部133は、階調の補正されたRGB画像をガンマ補正処理部134に供給する。なお、階調補正処理の詳細は後述する。
ステップS105において、ガンマ補正処理部134は、階調補正処理部133からのRGB画像にガンマ補正を施してYC変換処理部135に供給する。
ステップS106において、YC変換処理部135は、YC変換処理を行う。例えば、YC変換処理部135は、ガンマ補正処理部134からのRGB画像に対してYCマトリックス処理およびクロマ成分に対する帯域制限を行うことにより、RGB画像からY画像およびC画像を生成する。
そして、ステップS107において、YC変換処理部135は、Y画像およびC画像を出力する。例えば、YC変換処理部135は、必要に応じてY画像およびC画像をLCDドライバ108またはCODEC110に出力する。
ステップS108において、ホワイトバランス処理部131は、後続するフレームが存在するか否かを判定する。例えば、DSP106の図示せぬ内部のメモリに後続するフレームのモザイク画像が蓄積されている場合、後続フレームが存在すると判定される。
ステップS108において、後続するフレームが存在すると判定された場合、処理はステップS101に戻り、処理対象となる次のフレームのモザイク画像が読み込まれる。これに対して、ステップS108において、後続するフレームが存在しないと判定された場合、画像処理は終了する。
[階調補正処理の流れ]
次に、図19および図20のフローチャートを参照して、図11のステップS104の処理に対応する階調補正処理について説明する。
ステップS121において、加重積和部177およびトーンカーブ算出部178は、中間データを読み込む。すなわち、加重積和部177の補間部291は、ブロック積分値メモリ176から中間データとしてのブロック積分値を読み込み、加重積和部177の補間部292は、ブロックヒストグラムメモリ174から中間データとしてのブロックヒストグラムを読み込む。また、トーンカーブ算出部178は、輝度域情報メモリ172から中間データとしての輝度域情報を読み込む。
ステップS122において、輝度域情報算出部171は、DSP106の図示せぬ内部のメモリからnoise Level(nl)およびsaturation Level(nl)を読み込む。
ステップS123において、階調補正処理部133は、デモザイク処理部132から、RGB画像の処理対象画素の画素値を読み込む。すなわち、非線形変換部154−1乃至非線形変換部154−3は、処理対象画素のR成分の画素値Rw(p)、G成分の画素値Gw(p)、およびB成分の画素値Bw(p)を読み込み、輝度算出部151は、処理対象画素のR、G、およびBの成分の画素値を読み込む。
ステップS124において、輝度算出部151は、読み込んだ画素値に基づいて、処理対象画素の輝度値L(p)を算出し、非線形変換部152に供給する。例えば、輝度算出部151は、読み込んだR、G、およびBの成分の画素値に所定の係数を乗算して線形和を求めて輝度値としたり、R、G、およびBの成分の画素値のうちの最大値を輝度値としたりする。
ステップS125において、非線形変換部152は、輝度算出部151からの輝度値L(p)を非線形変換し、変換により得られた輝度値L(nl)(p)を、輝度階調補正部153および階調補正部155に供給する。例えば、非線形変換部152は、1より小さい指数によるべき乗特性や対数特性など、上に凸の単調増加特性を有する関数を用いて輝度値L(p)を非線形変換する。
ステップS126において、輝度階調補正部153および階調補正部155は、非線形変換部152から、処理対象画素の輝度値L(nl)(p)を読み込む。
ステップS127において、輝度階調補正部153の輝度域情報算出部171は、輝度域情報算出のための画素処理を行う。輝度域情報算出のための画素処理において、これまでに供給された輝度画像の画素の輝度値と、非線形変換部152から読み込んだ輝度値L(nl)(p)とが比較され、ソーティングが行われる。
ステップS128において、ブロックヒストグラム算出部173は、ブロックヒストグラム算出のための画素処理を行う。
ステップS129において、ブロック積分値算出部175は、ブロック積分値算出のための画素処理を行う。
ステップS130において、加重積和部177は、大局輝度値算出処理を行って、処理対象画素の大局輝度値Ll(nl)(p)を算出し、トーンカーブ算出部178およびマッピング部180に供給する。
ステップS131において、トーンカーブ算出部178は、輝度域情報メモリ172から読み出した輝度域情報と、加重積和部177からの大局輝度値Ll(nl)(p)とから、トーンカーブを求める。
ステップS132において、マッピング部180は、加重積和部177から供給された大局輝度値Ll(nl)(p)を、トーンカーブメモリ179に記録されているトーンカーブに基づいて補正し、コントラスト補正部182に供給する。すなわち、マッピング部180は、トーンカーブメモリ179に記録されているコントロールポイントを用いて、B-Spline補間処理によりトーンカーブを求め、求めたトーンカーブを用いて大局輝度値Ll(nl)(p)を大局輝度値Lcl(nl)(p)に変換することにより、大局輝度値Ll(nl)(p)の階調を補正する。
ステップS133において、マッピング部181は、読み込んだ処理対象画素の輝度値L(nl)(p)を、トーンカーブメモリ179に記録されているトーンカーブに基づいて補正し、コントラスト補正部182に供給する。すなわち、マッピング部181は、トーンカーブメモリ179に記録されているコントロールポイントを用いて、B-Spline補間処理によりトーンカーブを求め、求めたトーンカーブを用いて輝度値L(nl)(p)を輝度値Lc(nl)(p)に変換することにより、輝度値L(nl)(p)の階調を補正する。
ステップS134において、コントラスト補正部182は、コントラスト補正処理を行い、トーンカーブにより階調が補正され、コントラストが劣化した輝度値Lc(nl)(p)からなる輝度画像を元の画像と同程度のコントラストに補償する。コントラスト補正部182は、コントラスト補正された輝度値Lu(nl)(p)を階調補正部155に供給する。
図20のステップS141において、非線形変換部154は、読み込んだ処理対象画素の画素値を非線形変換し、階調補正部155に供給する。すなわち、非線形変換部154−1乃至非線形変換部154−3は、RGB画像の画素値Rw(p)、Gw(p)、およびBw(p)のそれぞれに対して、ステップS141の処理においてなされる非線形変換と同じ非線形変換を行う。
ステップS142において、階調補正部155−1乃至階調補正部155−3は、非線形変換部152からの輝度値L(nl)(p)と、輝度階調補正部153からの輝度値Lu(nl)(p)とを用いて、非線形変換部154からの画素値を階調補正する。そして、階調補正部155は、階調補正された画素値を、非線形逆変換部156に供給する。
例えば、階調補正部155は、輝度値L(nl)(p)と、階調補正された輝度値Lu(nl)(p)との比を各色の成分の画素値に乗算する。より具体的には、例えば、階調補正部155−1は、次式(2)を計算することにより、階調補正された画素値Ru(nl)(p)を求める。
Figure 2012058850
・・・(2)
式(2)では、階調補正前後の輝度値の比率、つまり階調補正された輝度値Lu(nl)(p)を階調補正前の輝度値L(nl)(p)で除算した値が、非線形変換された画素値R(nl)(p)に対して乗算されている。階調補正部155−2および階調補正部155−3においても、上述した式(2)と同様の計算が行われ、画素値が階調補正される。
なお、非線形変換部152および非線形変換部154において行われる非線形変換が、対数変換である場合には、式(3)に示す計算を行うことにより、画素値が階調補正されてもよい。
Figure 2012058850
・・・(3)
式(3)では、階調補正された輝度値Lu(nl)(p)と、階調補正前の輝度値L(nl)(p)との差分値が、画素値R(nl)(p)に加算されて、階調補正された画素値R u(nl)(p)とされている。
ステップS143において、非線形逆変換部156−1乃至非線形逆変換部156−3は、階調補正部155からの画素値に、非線形変換部154による非線形変換の逆変換となる非線形逆変換を施す。そして、ステップS144において、非線形逆変換部156−1乃至非線形逆変換部156−3は、非線形逆変換により得られた画素値Ru(p)、Gu(p)、およびBu(p)を、ガンマ補正処理部134に出力する。
ステップS145において、階調補正処理部133は、処理対象となっているフレームのRGB画像上の全ての画素を処理したか否かを判定する。ステップS145において、まだ全ての画素を処理していない、つまり全ての画素が処理対象画素とされていないと判定された場合、処理はステップS123に戻り、上述した処理が繰り返される。
これに対して、ステップS145において、全ての画素が処理されたと判定された場合、ステップS146において、輝度域情報算出部171(図10)は、輝度域情報を求める。
ステップS147において、ブロックヒストグラム算出部173は、ブロックヒストグラムを求める。すなわち、ブロックヒストグラム算出部173は、カウンタ202−1乃至カウンタ202−Nのそれぞれに保持されている値を、各輝度ブロックのブロックヒストグラムとしてブロックヒストグラムメモリ174に供給させ、記録させる。
ステップS148において、ブロック積分値算出部175は、ブロック積分値を求め、階調補正処理は終了し、処理は図18のステップS104に戻り、ステップS105に進む。すなわち、ブロック積分値算出部175は、レジスタ242−1乃至レジスタ242−Nのそれぞれに記録されている輝度値L(nl)(p)の総和を、ブロック積分値としてブロック積分値メモリ176に供給させ、記録させる。
このように、階調補正処理においては、1フレーム分の輝度画像に基づいて、中間データが求められる。そして、中間データが求められると、中間データとしての輝度域情報、ブロックヒストグラム、およびブロック積分値が輝度域情報メモリ172、ブロックヒストグラムメモリ174、およびブロック積分値メモリ176に格納される。輝度階調補正部153では、現在処理しているフレームよりも時間的に1つ前のフレームから求められた中間データが用いられて処理対象画素の大局輝度値やトーンカーブが算出されるため(エッジ保存平滑化処理が行われるため)、処理対象の画像が動画像であっても、画像の全画素を2回スキャンすることなく、少ないワーキングメモリで、大きいオペレータサイズのエッジ保存平滑化処理を行うことができる。
[ブロックヒストグラム算出のための画素処理の流れ]
次に、図21のフローチャートを参照して、図19のステップS128において実行されるブロックヒストグラム算出のための画素処理の流れの例を説明する。
ブロックヒストグラム算出のための画素処理が開始されると、重み算出部201は、ステップS161において、処理対象画素の輝度値L(nl)(p)を読み込み、その輝度値に対応する輝度ブロックを特定する。ステップS162において、重み算出部201は、適用された重み関数に従って、輝度値に対応する各輝度ブロックの重みを特定する。
ステップS163において、輝度値が対応する輝度ブロックのカウンタ202は、ステップS162において算出された重みを、自分自身が保持している値に加算する。
ステップS163の処理を終了すると、カウンタ202は、ブロックヒストグラム算出のための画素処理を終了し、処理を図19のステップS128に戻し、ステップS129以降の処理を実行させる。
[ブロック積分値算出のための画素処理の流れ]
次に、図22のフローチャートを参照して、図19のステップS129において実行されるブロック積分値算出のための画素処理の流れの例を説明する。
ブロック積分値算出のための画素処理が開始されると、重み乗算部231は、ステップS181において、処理対象画素の輝度値L(nl)(p)を読み込み、その輝度値に対応する輝度ブロックを特定する。ステップS182において、重み乗算部231は、重み算出部201から供給される、輝度値に対応する輝度ブロックの重みを読み込み、輝度値L(nl)(p)に乗算する。
ステップS183において、輝度値が対応する輝度ブロックの積分器232は、ステップS182において算出された乗算結果を、自分自身が保持している値に加算する。
ステップS183の処理を終了すると、積分器232は、ブロックヒストグラム算出のための画素処理を終了し、処理を図19のステップS129に戻し、ステップS130以降の処理を実行させる。
図11Cの例の場合、ブロック積分値算出のための画素処理の流れは、図23に示されるフローチャートのようになる。
この場合、ブロック積分値算出のための画素処理が開始されると、乗算部251は、ステップS201において、ブロックヒストグラムメモリ174からブロックヒストグラムの値を取得し、ステップS202において、ヒストグラムのビン毎にビンの代表値を乗算してブロック積分値メモリ176に記録する。
ステップS202の処理を終了すると、乗算部251は、ブロックヒストグラム算出のための画素処理を終了し、処理を図19のステップS129に戻し、ステップS130以降の処理を実行させる。
以上のように、各処理を実行することにより、DSP106は、負荷の増大を抑制しながらバイラテラルフィルタの計算精度を向上させることができる。これにより、例えばノイズリダクション(NR処理)や階調補正処理といった画像信号処理の画質性能を向上させることができる。つまり、DSP106は、負荷の増大を抑制しながら画像信号処理の画質性能を向上させることができる。
<2.第2の実施の形態>
[バイラテラルフィルタの概要]
第1の実施の形態において説明した手法を用いると、小数精度の演算ためにビット長が増加してしまう。そこで、間引き処理を併用することにより、ビット長を固定にするようにしてもよい。
例えば、Nビットの小数精度を持たせる場合、間引き処理にてサンプル数を0.5倍に間引くようにする(以下、この倍数の逆数を間引きレートと呼ぶ。間引かれるサンプルが増すほど、間引きレートは大きくなる)。このようにすると、度数の最大値がNビット分だけ減少するため、小数精度でのNビットの増分と相殺され、最終的なビット長は固定となる。
この処理は、1回のサンプルから、サンプル点の周囲2個のピクセルの重みの総和を推定することで、重みの値を整数化としているという解釈もできる。あるNビット小数精度の重み値は、一度に2個分カウントされることで整数精度になる。
[ブロックヒストグラム算出部の構成]
図24Aは、その場合のブロックヒストグラム算出部173の主な構成例を示すブロック図である。
図24Aの例の場合、ブロックヒストグラム算出部173は、図11の例の場合の構成に加え、ローパスフィルタ301および間引き処理部302を有する。
ローパスフィルタ301は、エイリアシングを防ぐため、入力の輝度値を平滑化する。間引き処理部302は、その平滑化された輝度値を間引いて、代表の輝度値を求める。重み算出部201は、間引き処理部302より出力される代表の輝度値について、重みを算出する。
[ブロック積分値算出部の構成]
図24Bは、その場合のブロック積分値算出部175の主な構成例を示すブロック図である。
図24Bの例の場合、ブロック積分値算出部175も、図11の例の場合の構成に加え、ローパスフィルタ301および間引き処理部302を有する。つまり、ブロック積分値算出部175は、ローパスフィルタ301および間引き処理部302をブロックヒストグラム算出部173と共有する。
重み乗算部231は、間引き処理部302より出力される代表の輝度値に、ブロックヒストグラム算出部173から供給される重みを乗算し、代表の輝度値に対応する輝度ブロックの積分器232に、その乗算結果を供給する。
なお、この場合も、ブロック積分値算出部175の代わりに、図11Cに示されるような乗算部251を適用するようにしてもよい。
また、ブロック積分値算出部175が、ブロックヒストグラム算出部173のローパスフィルタ301および間引き処理部302とは別の、ローパスフィルタ301および間引き処理部302を有するようにしてもよい。
[ブロックヒストグラム算出のための画素処理]
この場合の、ブロックヒストグラム算出のための画素処理の流れの例を、図25のフローチャートを参照して説明する。
ブロックヒストグラム算出のための画素処理が開始されると、ステップS301において、ローパスフィルタ301は、入力の輝度値を平滑化し、間引き処理部302は、その平滑化された輝度値を間引いて、処理対象の領域を代表する輝度値を算出する。
ステップS302において、重み算出部201は、適用された重み関数に従って、代表の輝度値に対応する各輝度ブロックの重みを特定する。
ステップS303において、輝度値が対応する輝度ブロックのカウンタ202は、ステップS302において算出された重みを、自分自身が保持している値に加算する。
ステップS303の処理を終了すると、カウンタ202は、ブロックヒストグラム算出のための画素処理を終了し、処理を図19のステップS128に戻し、ステップS129以降の処理を実行させる。
[ブロック積分値算出のための画素処理の流れ]
次に、図26のフローチャートを参照して、図19のステップS129において実行されるブロック積分値算出のための画素処理の流れの例を説明する。
ブロック積分値算出のための画素処理が開始されると、ステップS321において、ローパスフィルタ301は、入力の輝度値を平滑化し、間引き処理部302は、その平滑化された輝度値を間引いて、処理対象の領域を代表する輝度値を算出する。重み乗算部231は、その輝度値を読み込む。
ステップS322において、重み乗算部231は、重み算出部201から供給される、輝度値に対応する輝度ブロックの重みを読み込み、処理対象の領域を代表する輝度値に乗算する。
ステップS323において、処理対象の領域を代表する輝度値が対応する輝度ブロックの積分器232は、ステップS322において算出された乗算結果を、自分自身が保持している値に加算する。
ステップS323の処理を終了すると、積分器232は、ブロックヒストグラム算出のための画素処理を終了し、処理を図19のステップS129に戻し、ステップS130以降の処理を実行させる。
以上のように、各処理を実行することにより、DSP106は、ビット長を増大させずに、バイラテラルフィルタの計算精度を向上させることができる。これにより、例えばノイズリダクション(NR処理)や階調補正処理といった画像信号処理の画質性能を、より容易に向上させることができる。つまり、DSP106は、負荷の増大をさらに抑制しながら画像信号処理の画質性能を向上させることができる。
<3.第3の実施の形態>
[バイラテラルフィルタの概要]
第2の実施の形態において上述したように輝度値を間引く方法では、サンプリングの間引きレートが大きくなるほど、細かい空間パターンに対するエッジ保存性能が低下する傾向がある。そこで、不要にエッジ保存性能を低下させないように、例えば図27に示される表のように、入力画像に合わせて間引きレートと小数精度を設定するようにしてもよい。
例えば、フィルタの処理に先立って画像を解析するようにし、図27に示される表のように、画像に含まれる空間パターン(主な周波数成分)に応じて小数精度と間引きレートを決定するようにしてもよい。
図27の例においては、画像の空間パターンが3段階に分別される。画像に細かい空間パターンが多い場合(高周波成分が多い場合)、小数精度と間引きレートが小さな値に設定される(間引きレートが1とされ、小数精度が0ビットとされる)。また、画像に含まれる細かい空間パターンが中程度の場合(中程度の周波成分が多い場合)、小数精度と間引きレートが中程度の値に設定される(間引きレートが1/4とされ、小数精度が2ビットとされる)。さらに、画像に細かい空間パターンが少ない場合(低周波成分が多い場合)、小数精度と間引きレートが大きな値に設定される(間引きレートが1/16とされ、小数精度が4ビットとされる)。
[輝度階調補正部の構成例]
図28は、この場合の輝度階調補正部153の主な構成例を示すブロック図である。図28は、図10に対応する。図28の例の場合、輝度階調補正部153は、図10の例の場合の構成に加え、空間パターン解析部401を有する。
空間パターン解析部401は、空間パターンの細かさを判定する。この判定方法は任意であるが、例えば、空間パターン解析部401は、画像の各周波数帯域でのエネルギを求めることで、空間パターンの細かさを判定する。例えば、空間パターン解析部401は、図27に示される表のような判定基準(判定ロジック)を有しており、非線形変換部152から供給される処理対象画素の輝度値L(nl)(p)を解析し、その基準に従って解析結果の判定を行い、エネルギが高周波成分に偏っているほど細かいパターンと判定し、逆に低周波成分に偏っているほど粗いパターンと判定する。
空間パターン解析部401は、その判定結果をブロックヒストグラム算出部173およびブロック積分値算出部175に供給する。
[空間パターン解析部の構成例]
図29は、空間パターン解析部401の主な構成例を示すブロック図である。図29に示されるように、空間パターン解析部401は、ローパスフィルタ421、ローパスフィルタ422、演算部423、演算部424、エネルギ計算部425、エネルギ計算部426、チューニングパラメータ提供部427、および判定処理部428を有する。
ローパスフィルタ421およびローパスフィルタ422は、それぞれ、非線形変換部152から供給される処理対象画素の輝度値L(nl)(p)に対してローパスフィルタ処理を行い、比較的低域な周波数成分のみを通過させる。
ローパスフィルタ421およびローパスフィルタ422は、互いに通過帯域が異なる。ローパスフィルタ422の方が、ローパスフィルタ421よりも通過帯域が広く、より高周波な成分も通過させることができる。
以下においては、説明を簡略化するために、周波数成分を高周波成分、中周波成分、および低周波成分の3段階とし、ローパスフィルタ422が、中周波成分および低周波成分を通過させ、ローパスフィルタ421が、低周波成分のみを通過させるものとする。
演算部423は、非線形変換部152から供給される処理対象画素の輝度値L(nl)(p)から、ローパスフィルタ421の出力LP0を減算し、差分値(ハイパス信号)HP0を生成する。ローパスフィルタ421の出力LP0が低周波成分のみを含むので、ハイパス信号HP0は高周波成分および中周波成分を含む。演算部423は、そのハイパス信号HP0をエネルギ計算部425に供給する。
演算部424は、非線形変換部152から供給される処理対象画素の輝度値L(nl)(p)から、ローパスフィルタ422の出力LP1を減算し、差分値(ハイパス信号)HP1を生成する。ローパスフィルタ422の出力LP1が低周波成分および中周波成分を含むので、ハイパス信号HP1は高周波成分のみを含む。演算部424は、そのハイパス信号HP1をエネルギ計算部426に供給する。
エネルギ計算部425は、供給されたハイパス信号HP0を、判定対象の領域内で二乗積分することで、ハイパス信号HP0のエネルギを算出する。エネルギ計算部425は、算出したエネルギE0を、判定処理部428に供給する。
エネルギ計算部426は、供給されたハイパス信号HP1を、判定対象の領域内で二乗積分することで、ハイパス信号HP1のエネルギを算出する。エネルギ計算部426は、算出したエネルギE1を、判定処理部428に供給する。
例えば、図30に示されるように、非線形変換部152から供給される処理対象画素の輝度値L(nl)(p)の周波数特性(入力時の周波数特性)が、直線431のように、低周波成分から高周波成分までを含むとする。
ローパスフィルタ421および演算部423の処理により、この入力信号から曲線432に示されるような周波数特性を有するハイパス信号HP0が得られる。同様に、ローパスフィルタ422および演算部424の処理により、この入力信号から曲線433に示されるような周波数特性を有するハイパス信号HP1が得られる。
エネルギ計算部425は、曲線432の下の部分(斜線で示される部分)の面積に相当するエネルギ(信号強度E0)を算出する。エネルギ計算部426は、曲線433の下の部分(斜線で示される部分)の面積に相当するエネルギ(信号強度E1)を算出する。
判定処理部428は、このエネルギの周波数分布の傾向に従って、空間パターンを判定する。例えば、図30に示されるように、信号強度E1が大きい場合、判定処理部428は、高周波成分が多いと判定し、画像に細かい空間パターンが多く含まれると判定する。また、信号強度E1が小さく、信号強度E0が大きい場合、判定処理部428は、中周波成分が多いと判定し、画像に中程度の空間パターンが多く含まれると判定する。さらに、信号強度E0および信号強度E1がともに小さい場合、判定処理部428は、低周波成分が多いと判定し、画像に粗い空間パターンが多く含まれると判定する。
チューニングパラメータ提供部427は、この信号強度が大きいか小さいかの判定基準となる閾値Th0および閾値Th1をチューニングパラメータとして予め保持しており、適宜、それらを判定処理部428に提供する。閾値Th0および閾値Th1は、予め定められていてもよいし、適宜更新可能としてもよい。
判定処理部428は、チューニングパラメータ提供部427から提供される閾値Th0および閾値Th1を用いて、画像に含まれる空間パターンを判定すると、その判定結果をブロックヒストグラム算出部173およびブロック積分値算出部175に供給する。
[ブロックヒストグラム算出部の構成例]
図31は、この場合のブロックヒストグラム算出部173の主な構成例を示すブロック図である。
図31に示されるように、この場合、ブロックヒストグラム算出部173は、重み算出部201の前に、ローパスフィルタ441、間引き処理部442、ローパスフィルタ443、間引き処理部444、およびセレクタ445を有する。
ローパスフィルタ441および間引き処理部442、並びに、ローパスフィルタ443および間引き処理部444は、それぞれ、第2の実施の形態において説明したローパスフィルタ301および間引き処理部302(図24A)と同様に、小数精度の演算によるビット長の増加分を吸収する(ビット長が増大しないようにする)ために、サンプル数を低減させる。
つまり、ローパスフィルタ441およびローパスフィルタ443は、それぞれ、ローパスフィルタ301に対応し、ローパスフィルタ301と同様の処理を行う。間引き処理部442および間引き処理部444は、それぞれ、間引き処理部302に対応し、間引き処理部302と同様の処理を行う。
ただし、ローパスフィルタ443および間引き処理部444のパスにおいては、ローパスフィルタ441および間引き処理部442のパスよりも、より多く間引きが行われる。つまり、間引きレートが高い。
より具体的には、ローパスフィルタ443の方がローパスフィルタ441よりも通過帯域が狭く、間引き処理部444の方が間引き処理部442よりも間引きレートが高い。
これらのパスに加え、間引きが行われないパスがセレクタ445に供給される。つまり、セレクタ445には、間引きが行われないパス、低いレートで間引きが行われるパス、および、高いレートで間引きが行われるパスの3本のパスが供給される。
セレクタ445は、空間パターン解析部401から供給される空間パターン判定結果に基づいて、供給された3本のパスの中から1つを選択し、そのパスの輝度値を重み算出部201に供給する。重み算出部201は、図24Aの場合と同様に、供給された輝度値の重みの算出等を行う。ただし、この場合、重み算出部201は、図27の表に示されるように、供給された輝度値の間引きレートに応じた小数精度で重みを算出する。
つまり、セレクタ445には、互いに異なる間引きレートで輝度値を間引く複数のパス(間引きレート1の(間引きを行わない)パスを含んでもよい)で輝度値が供給されるが、このパス数および各パスの間引きレート(および重み関数の小数精度)は、図27に示される表のように、空間パターン解析部401の空間パターンの分類数に対応して設定されている。
したがって、例えば、空間パターン解析部401が空間パターンを4段階以上に分類する場合、ブロックヒストグラム算出部173も、間引きレートが互いに異なる4本以上のパスを有する。
[ブロック積分値算出部の構成例]
図32は、この場合のブロック積分値算出部175の主な構成例を示すブロック図である。
図32に示されるように、この場合、ブロック積分値算出部175は、重み乗算部231の前に、ローパスフィルタ441、間引き処理部442、ローパスフィルタ443、間引き処理部444、およびセレクタ445を有する。つまり、ブロック積分値算出部175は、ローパスフィルタ441、間引き処理部442、ローパスフィルタ443、間引き処理部444、およびセレクタ445を、ブロックヒストグラム算出部173と共有する。
重み乗算部231は、セレクタ445により、空間パターン解析部401から供給される空間パターン判定結果に基づいて選択されたパスの輝度値に、重み算出部201において算出された重みを乗算する。
つまり、ブロック積分値算出部175のパス数および各パスの間引きレート(および重み関数の小数精度)も、ブロックヒストグラム算出部173の場合と同様に、図27に示される表のように、空間パターン解析部401の空間パターンの分類数に対応して設定されている。
なお、ブロック積分値算出部175が、ブロックヒストグラム算出部173が有するものとは別に、ローパスフィルタ441、間引き処理部442、ローパスフィルタ443、間引き処理部444、およびセレクタ445を有するようにしてもよい。
以上のようにすることにより、輝度階調補正部153は、入力画像の内容(空間パターン)に応じた間引きレートと小数精度を設定することができる。したがって、輝度階調補正部153は、ビンのカウントの精度の小数方向の拡張量をより適切にすることができ、不要なエッジ保存性能の低減を抑制することができる。
つまり、DSP106は、負荷の増大を抑制しながらバイラテラルフィルタの計算精度を向上させることができる。これにより、例えばノイズリダクション(NR処理)や階調補正処理といった画像信号処理の画質性能を向上させることができる。
[階調補正処理の流れ]
図33および図34のフローチャートを参照して、この場合の階調補正処理の流れの例を説明する。このフローチャートは、図19および図20のフローチャートに対応する。
階調補正処理が開始されると、図33のステップS401乃至ステップS407の各処理が、図19のステップS121乃至ステップS127の各処理と同様に実行される。
図33のステップS408において、空間パターン解析部401は、入力画像の空間パターンを解析する。
図33のステップS409乃至ステップS415の各処理は、図19のステップS128乃至ステップS134の各処理と同様に実行される。
また、図34のステップS421乃至ステップS428の各処理は、図20のステップS141乃至ステップS148の各処理と同様に実行される。
[空間パターン解析処理の流れ]
次に、図33のステップS408において実行される空間パターン解析処理の流れの例を図35のフローチャートを参照して説明する。
空間パターン解析処理が開始されると、ステップS441において、ローパスフィルタ421は、タップ数が比較的大きいローパスフィルタ処理を行う。ステップS442において、演算部423は、入力と、ステップS441のフィルタ処理結果(LP0)の差分を算出する。ステップS443において、エネルギ計算部425は、ステップS442において算出された差分値(HP0)のエネルギ(信号強度E0)を算出する。
ステップS444おいて、ローパスフィルタ422は、タップ数が比較的小さいローパスフィルタ処理を行う。ステップS445において、演算部424は、入力と、ステップS444のフィルタ処理結果(LP1)の差分を算出する。ステップS446において、エネルギ計算部426は、ステップS445において算出された差分値(HP1)のエネルギ(信号強度E1)を算出する。
ステップS447において、判定処理部428は、チューニングパラメータ提供部427から供給される各ローパスフィルタ用の閾値(閾値Th0および閾値Th1)を取得する。ステップS448において、判定処理部428は、ステップS447において取得された閾値を用いて、ステップS443およびステップS445において算出されたエネルギから入力画像の空間パターンを判定する。
ステップS448の処理を終了すると判定処理部428は、空間パターン判定処理を終了し、図33のステップS408に処理を戻し、ステップS409以降の処理を実行させる。
[空間パターン判定処理の流れ]
図36のフローチャートを参照して、図35のステップS448において実行される空間パターン判定処理の流れの例を説明する。
空間パターン判定処理が開始されると、判定処理部428は、ステップS461において、信号強度E1が閾値Th1より大きいか否かを判定する。信号強度E1が閾値Th1より大きいと判定された場合、判定処理部428は、処理をステップS462に進め、空間パターンを”細かい”と判定する。
また、ステップS461において、信号強度E1が閾値Th1より大きくないと判定された場合、判定処理部428は、処理をステップS463に進め、信号強度E0が閾値Th0より大きいか否かを判定する。信号強度E0が閾値Th0より大きいと判定された場合、判定処理部428は、処理をステップS464に進め、空間パターンを”中”と判定する。
さらに、ステップS463において、信号強度E0が閾値Th0より大きくないと判定された場合、判定処理部428は、処理をステップS465に進め、空間パターンを”粗い”と判定する。
ステップS462、ステップS464、若しくはステップS465の処理が終了すると判定処理部428は、空間パターン判定処理を終了し、処理を図35のステップS448に戻し、空間パターン解析処理を終了させ、処理を図33のステップS408に戻させ、ステップS409以降の処理を実行させる。
[ブロックヒストグラム算出のための画素処理の流れ]
次に、図37のフローチャートを参照して、図33のステップS409において実行されるブロックヒストグラム算出のための画素処理の流れの例を説明する。
ブロックヒストグラム算出のための画素処理が開始されると、セレクタ445は、ステップS481において、空間パターン判定処理による空間パターン判定結果に基づいて、その判定結果に対応する間引きレートや小数精度を決定する。
ステップS482において、ローパスフィルタ441乃至セレクタ445は、ステップS481の処理により決定された間引きレートを用いて、空間パターン判定処理による空間パターン判定結果に対応する、処理対象の領域を代表する輝度値を計算する。例えば、上述したように、空間パターンの判定結果の各選択肢に対応する輝度値が算出され、その中から、空間パターン判定結果に対応するものが選択される。
ステップS483において、重み算出部201は、ステップS481において決定された小数精度の設定を用いて、処理対象の領域を代表する輝度値に対応する輝度ブロック(ビン)の重みを特定する。
ステップS484において、処理対象の領域を代表する輝度値に対応する輝度ブロックのカウンタ202は、自身が記憶する重みに、ステップS483において特定された重みを加算し、その加算結果を記憶する。
ステップS484の処理が終了すると、カウンタ202は、ブロックヒストグラム算出のための画素処理を終了し、図33のステップS409に処理を戻し、ステップS410以降の処理を実行させる。
[ブロックヒストグラム算出のための画素処理の流れ]
次に、図38のフローチャートを参照して、図33のステップS410において実行されるブロック積分値算出のための画素処理の流れの例を説明する。
ブロック積分値算出のための画素処理が開始されると、ステップS501において、重み乗算部231は、ローパスフィルタ441乃至セレクタ445により生成された、空間パターン判定処理による空間パターン判定結果に対応する、処理対象の領域を代表する輝度値を読み込む。
ステップS502において、重み乗算部231は、重み算出部201により算出された、ステップS501において読み込んだ輝度値に対応する輝度ブロックの重みを読み込み、その重みをステップS501において読み込んだ輝度値に乗算する。
ステップS503において、ステップS501において読み込んだ輝度値に対応する輝度ブロックの積分器232は、重み乗算部231において算出された乗算結果を、自身が記憶する乗算結果に加算し、その加算結果を記憶する。
ステップS503の処理を終了すると、積分器232は、ブロック積分値算出のための画素処理を終了し、処理を図33のステップS410に戻し、ステップS411以降の処理を実行させる。
以上のように各処理を行うことにより、輝度階調補正部153は、ビンのカウントの精度の小数方向の拡張量をより適切にすることができ、不要なエッジ保存性能の低減を抑制することができる。つまり、DSP106は、負荷の増大を抑制しながらバイラテラルフィルタの計算精度を向上させることができる。これにより、例えばノイズリダクション(NR処理)や階調補正処理といった画像信号処理の画質性能を向上させることができる。
<4.第4の実施の形態>
[バイラテラルフィルタの概要]
第3の実施の形態においては、サンプリングの間引きレートと小数精度を入力画像全体に対して一律に設定するように説明した。しかしながら、入力画像のなかで、空間パターンの細かさに大きなばらつきがある場合、画像のすべてに対して最適な設定をすることができないことが考えられる。そこで、画像の領域ごとにサンプリングの間引きレートと小数精度を変化させるようにしてもよい。
例えば、図39Aに示されるように、1枚の画像600に、空間パターンが”細かい”部分601と、空間パターンが”中”の部分602と、空間パターンが”粗い”部分603とが含まれる場合が考えられる。
このような画像に対して、図39Bに示されるように、所定の大きさの領域毎にヒストグラム(局所ヒストグラム)を求めるようにし、その局所ヒストグラム毎に、その内部のパターンの細かさに応じて、間引きレートと小数精度が設定されるようにする。
図39Bの例では、1つの点線の四角が、1つの局所ヒストグラムを計算する画像の領域を示している。局所ヒストグラムの計算精度の設定は、その局所ヒストグラムの計算領域の中で、第3の実施の形態において説明したように空間パターン判定をして決定される。
この局所ヒストグラムを計算する単位となる領域の大きさは、任意であり、予め設定されていても良いし、画像に応じて設定されるようにしてもよい。また、各領域の形や大きさが互いに異なるようにしてもよい。一部の領域の形や大きさが、その他の領域の形や大きさと異なるようにしてもよい。
次に各処理部の構成について説明する。
この場合、輝度階調補正部153は、第3の実施の形態で説明した場合と同様に構成される(図28)。また、空間パターン解析部401の内部も、第3の実施の形態で説明した場合と同様に構成される(図29)。
ただし、この場合、空間パターン解析部401は、所定の領域(図39Bの例の場合、点線で区切られた領域)毎に解析し、空間パターン(局所別空間パターンと称する)を判定する。
[ブロックヒストグラム算出部の構成]
図40は、この場合のブロックヒストグラム算出部173の主な構成例を示すブロック図である。この場合、ブロックヒストグラム算出部173は、第3の実施の形態において説明した場合(図31の例)と基本的に同様の構成を有するが、さらに、局所ヒストグラム特定部611および精度設定部612を有する。
局所ヒストグラム特定部611は、空間パターン解析部401から供給される局所別空間パターン判定結果と、座標信号pから、現在計算中の局所ヒストグラムを特定する。精度設定部612は、局所ヒストグラム特定部611により特定された局所ヒストグラムに対応する間引きレートと小数精度(およびその小数精度に応じた重み関数)とをセレクタ445および重み算出部201に設定する。
セレクタ445は、精度設定部612により設定された間引きレートのパスを選択し、そのパスの輝度値を重み算出部201に供給する。重み算出部201は、精度設定部612により設定された小数精度(およびその小数精度に応じた重み関数)で重みを算出する。
[ブロック積分値算出部の構成]
図41は、この場合のブロック積分値算出部175の主な構成例を示すブロック図である。この場合、第3の実施の形態において説明した場合(図32の例)と同様に、ブロック積分値算出部175は、ローパスフィルタ441乃至セレクタ445をブロックヒストグラム算出部173と共有する。
この場合、ブロック積分値算出部175は、さらに、局所ヒストグラム特定部611および精度設定部612も共有する。
つまり、重み乗算部231は、空間パターン解析部401から供給される局所別空間パターン判定結果に対応する間引きレートで間引きが行われた輝度値に、重み算出部201により算出された重みを乗算する。
以上のようにすることにより、領域毎に判定された空間パターンに応じて、サンプリングの間引きレートや小数精度が設定されるので、輝度階調補正部153は、ビンのカウントの精度の小数方向の拡張量をより画像の内容に応じた値にすることができ、不要なエッジ保存性能の低減を、より抑制することができる。
つまい、DSP106は、負荷の増大を抑制しながらバイラテラルフィルタの計算精度を向上させることができる。これにより、例えばノイズリダクション(NR処理)や階調補正処理といった画像信号処理の画質性能を向上させることができる。
次に各部により実行される処理の流れの例について説明する。上述したように、輝度階調補正部153は、第3の実施の形態の場合と同様の空間パターン解析部401を有し、第3の実施の形態の場合と同様の処理を行う。したがって、この場合も、輝度階調補正部153は、図33および図34のフローチャートを参照して説明した第3の実施の形態の場合と同様に階調補正処理を行う。
また、空間パターン解析部401は、第3の実施の形態の場合と同様の構成を有し(図29)、空間パターンの解析を部分領域毎に行うこと以外、第3の実施の形態の場合と同様の処理を行う。つまり、空間パターン解析部401は、図35のフローチャートを参照して説明した第3の実施の形態の場合と同様に空間パターン解析処理を行う。
[ブロックヒストグラム算出のための画素処理の流れ]
次に、図42のフローチャートを参照して、図33のステップS409において実行されるブロックヒストグラム算出のための画素処理の流れの例を説明する。
ブロックヒストグラム算出のための画素処理が開始されると、局所ヒストグラム特定部611および精度設定部612は、ステップS601において、空間パターン判定処理が行われる領域毎に、その領域毎に算出される局所別空間パターン判定結果に基づいて、その判定結果に対応する間引きレートや小数精度を決定する。
ステップS602において、ローパスフィルタ441乃至セレクタ445は、ステップS601の処理により決定された間引きレートを用いて、局所別空間パターン判定結果に対応する、処理対象の領域を代表する輝度値を計算する。例えば、上述したように、局所別空間パターンの判定結果の各選択肢に対応する輝度値が算出され、その中から、実際の局所別空間パターン判定結果に対応するものが選択される。
ステップS603において、重み算出部201は、ステップS601において決定された小数精度の設定を用いて、処理対象の領域を代表する輝度値に対応する輝度ブロック(ビン)の重みを特定する。
ステップS604において、処理対象の領域を代表する輝度値に対応する輝度ブロックのカウンタ202は、自身が記憶する重みに、ステップS603において特定された重みを加算し、その加算結果を記憶する。
ステップS604の処理が終了すると、カウンタ202は、ブロックヒストグラム算出のための画素処理を終了し、図33のステップS409に処理を戻し、ステップS410以降の処理を実行させる。
なお、ブロック積分値算出部175は、図38のフローチャートを参照して説明した第3の実施の形態の場合と同様に、ブロック積分値算出のための画素処理を実行することができる。
以上のように各処理を実行することにより、領域毎に判定された空間パターンに応じて、サンプリングの間引きレートや小数精度が設定されるので、輝度階調補正部153は、ビンのカウントの精度の小数方向の拡張量をより画像の内容に応じた値にすることができ、不要なエッジ保存性能の低減を、より抑制することができる。
つまり、DSP106は、負荷の増大を抑制しながらバイラテラルフィルタの計算精度を向上させることができる。これにより、例えばノイズリダクション(NR処理)や階調補正処理といった画像信号処理の画質性能を向上させることができる。
なお、上述した第2の実施の形態乃至第4の実施の形態においても、ブロック積分値算出部175の代わりに、図11Cに示されるような乗算部251を用いた構成とするようにしてもよい。
<5.第5の実施の形態>
[パーソナルコンピュータ]
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。この場合、例えば、図43に示されるようなパーソナルコンピュータとして構成されるようにしてもよい。
図43において、パーソナルコンピュータ700のCPU(Central Processing Unit)701は、ROM(Read Only Memory)702に記憶されているプログラム、または記憶部713からRAM(Random Access Memory)703にロードされたプログラムに従って各種の処理を実行する。RAM703にはまた、CPU701が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU701、ROM702、およびRAM703は、バス704を介して相互に接続されている。このバス704にはまた、入出力インタフェース710も接続されている。
入出力インタフェース710には、キーボード、マウスなどよりなる入力部711、CRT(Cathode Ray Tube)やLCD(Liquid Crystal Display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部712、ハードディスクなどより構成される記憶部713、モデムなどより構成される通信部714が接続されている。通信部714は、インターネットを含むネットワークを介しての通信処理を行う。
入出力インタフェース710にはまた、必要に応じてドライブ715が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア721が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部713にインストールされる。
上述した一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
この記録媒体は、例えば、図43に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc - Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、若しくは半導体メモリなどよりなるリムーバブルメディア721により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM702や、記憶部713に含まれるハードディスクなどで構成される。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数のデバイス(装置)により構成される装置全体を表すものである。
また、以上において、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。つまり、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
100 デジタルビデオカメラ, 106 DSP, 133 階調補正処理部, 153 輝度階調補正部, 173 ブロックヒストグラム算出部, 175 ブロック積分値算出部, 201 重み算出部, 231 重み乗算部, 301 ローパスフィルタ, 302 間引き処理部, 401 空間パターン解析部, 421 ローパスフィルタ, 422 ローパスフィルタ, 423 演算部, 424 演算部, 425 エネルギ計算部, 426 エネルギ計算部, 427 チューニングパラメータ提供部, 428 判定処理部, 441 ローパスフィルタ, 442 間引き処理部, 443 ローパスフィルタ, 444 間引き処理部, 445 セレクタ, 611 局所ヒストグラム特定部, 612 精度設定部

Claims (9)

  1. 入力画像の各画素を、その輝度値に基づいて、輝度値が取り得る値の範囲全体を輝度方向に複数に分割して得られる各部分領域の何れかに割り当て、各部分領域について、その部分領域に割り当てられた画素数を示す頻度値を算出する際に、前記入力画像の1つの画素を複数の部分領域に割り当て、それらの部分領域の前記頻度値を更新する頻度値算出手段と、
    前記部分領域の特性を示す特性値を算出する特性値算出手段と、
    前記頻度値算出手段により算出された前記頻度値、および、前記特性値算出手段により算出された前記特性値を用いて、前記輝度方向の距離に応じて前記特性値を加重平均することにより、前記入力画像をエッジ保存平滑化する加重積和手段と
    を備える画像処理装置。
  2. 前記頻度値算出手段は、
    前記入力画像の画素を割り当てる際のカウント値を小数精度に拡張するための重みを算出する重み算出手段と、
    前記重み算出手段により算出された前記重みを用いて複数の部分領域の前記頻度値を更新する頻度値更新手段と
    を備え、
    前記特性値算出手段は、
    前記重み算出手段により算出された前記重みを、前記入力画像の輝度値に乗算する重み乗算手段と、
    前記重み乗算手段により前記重みが乗算された前記入力画像の輝度値を用いて、複数の部分領域の前記特性値を更新する特性値更新手段と
    を備える
    請求項1に記載の画像処理装置。
  3. 前記重み算出手段は、所定の重み関数に従って、各部分領域の重みを算出する
    請求項2に記載の画像処理装置。
  4. 前記頻度値算出手段は、前記入力画像の画素を間引く間引き手段をさらに備え、
    前記重み算出手段は、前記間引き手段により間引かれた前記入力画像の画素について、各部分領域の重みを算出する
    請求項2に記載の画像処理装置。
  5. 前記間引き手段は、前記重み算出手段により算出される前記重みの小数精度に対応する間引きレートで前記入力画像の画素を間引く
    請求項4に記載の画像処理装置。
  6. 前記入力画像の内容を示す空間パターンを判定する空間パターン判定手段をさらに備え、
    前記間引き手段は、前記空間パターン判定手段による前記空間パターンの解析結果に応じた間引きレートで前記入力画像の画素を間引く
    請求項4に記載の画像処理装置。
  7. 前記空間パターン判定手段は、前記空間パターンを前記入力画像の部分領域毎に判定し、
    前記間引き手段は、前記部分領域毎に、前記空間パターン判定手段による前記空間パターンの解析結果に応じた間引きレートで前記入力画像の画素を間引く
    請求項6に記載の画像処理装置。
  8. 画像処理装置の画像処理方法であって、
    頻度値算出手段が、入力画像の各画素を、その輝度値に基づいて、輝度値が取り得る値の範囲全体を輝度方向に複数に分割して得られる各部分領域の何れかに割り当て、各部分領域について、その部分領域に割り当てられた画素数を示す頻度値を算出する際に、前記入力画像の1つの画素を複数の部分領域に割り当て、それらの部分領域の前記頻度値を更新し、
    特性値算出手段が、前記部分領域の特性を示す特性値を算出し、
    前記加重積和手段が、算出された前記頻度値、および、算出された前記特性値を用いて、前記輝度方向の距離に応じて前記特性値を加重平均することにより、前記入力画像をエッジ保存平滑化する
    を備える画像処理方法。
  9. コンピュータを、
    入力画像の各画素を、その輝度値に基づいて、輝度値が取り得る値の範囲全体を輝度方向に複数に分割して得られる各部分領域の何れかに割り当て、各部分領域について、その部分領域に割り当てられた画素数を示す頻度値を算出する際に、前記入力画像の1つの画素を複数の部分領域に割り当て、それらの部分領域の前記頻度値を更新する頻度値算出手段、
    前記部分領域の特性を示す特性値を算出する特性値算出手段、
    前記頻度値算出手段により算出された前記頻度値、および、前記特性値算出手段により算出された前記特性値を用いて、前記輝度方向の距離に応じて前記特性値を加重平均することにより、前記入力画像をエッジ保存平滑化する加重積和手段
    として機能させるためのプログラム。
JP2010199224A 2010-09-06 2010-09-06 画像処理装置および方法、並びにプログラム Withdrawn JP2012058850A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2010199224A JP2012058850A (ja) 2010-09-06 2010-09-06 画像処理装置および方法、並びにプログラム
CN201110260179.0A CN102385746A (zh) 2010-09-06 2011-08-30 图像处理装置及其方法,以及程序
US13/221,218 US8849056B2 (en) 2010-09-06 2011-08-30 Apparatus and method for image edge-preserving smoothing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010199224A JP2012058850A (ja) 2010-09-06 2010-09-06 画像処理装置および方法、並びにプログラム

Publications (1)

Publication Number Publication Date
JP2012058850A true JP2012058850A (ja) 2012-03-22

Family

ID=45770777

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010199224A Withdrawn JP2012058850A (ja) 2010-09-06 2010-09-06 画像処理装置および方法、並びにプログラム

Country Status (3)

Country Link
US (1) US8849056B2 (ja)
JP (1) JP2012058850A (ja)
CN (1) CN102385746A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016076143A (ja) * 2014-10-08 2016-05-12 エルジー ディスプレイ カンパニー リミテッド 画像信号処理装置およびビット拡張演算処理方法
WO2020162293A1 (ja) * 2019-02-06 2020-08-13 パナソニックIpマネジメント株式会社 画像処理装置、画像処理方法および画像処理システム

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013129646A1 (ja) * 2012-03-01 2013-09-06 株式会社ニコン A/d変換回路、及び固体撮像装置
EP3273330B1 (en) * 2012-07-05 2021-10-20 Cambridge Touch Technologies, Ltd. Pressure sensing display device
JP2014225735A (ja) * 2013-05-15 2014-12-04 日本電子株式会社 画像処理方法、画像処理装置、撮像装置、およびプログラム
CN105745914B (zh) 2013-11-22 2018-09-07 杜比实验室特许公司 用于逆色调映射的方法和系统
CN106030483B (zh) 2014-02-18 2019-12-17 剑桥触控科技有限公司 使用压感触摸的触摸屏的功率模式的动态切换
JP6278752B2 (ja) * 2014-03-05 2018-02-14 株式会社キーエンス 形状検査装置及び形状検査方法
JP6358718B2 (ja) * 2014-05-28 2018-07-18 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. Hdr画像をエンコードするための方法及び装置、並びに、斯様なエンコードされた画像の使用のための方法及び装置
WO2016027693A1 (ja) * 2014-08-22 2016-02-25 オリンパス株式会社 画像処理装置、画像処理方法および画像処理プログラム
KR102273656B1 (ko) * 2014-11-24 2021-07-05 삼성전자주식회사 광역 역광 보정 영상의 노이즈 레벨 제어 장치, 및 이를 포함하는 영상 처리 시스템
GB2533667B (en) 2014-12-23 2017-07-19 Cambridge Touch Tech Ltd Pressure-sensitive touch panel
WO2016102975A2 (en) 2014-12-23 2016-06-30 Cambridge Touch Technologies, Ltd Pressure-sensitive touch panel
LU92673B1 (en) * 2015-03-05 2016-09-06 Iee Int Electronics & Eng Sa Method and system for real-time noise removal and image enhancement of high-dynamic range images
GB2544307B (en) 2015-11-12 2018-02-07 Cambridge Touch Tech Ltd Processing signals from a touchscreen panel
GB2544353B (en) 2015-12-23 2018-02-21 Cambridge Touch Tech Ltd Pressure-sensitive touch panel
US10282046B2 (en) 2015-12-23 2019-05-07 Cambridge Touch Technologies Ltd. Pressure-sensitive touch panel
GB2547031B (en) 2016-02-05 2019-09-25 Cambridge Touch Tech Ltd Touchscreen panel signal processing
WO2017219962A1 (en) * 2016-06-21 2017-12-28 Zhejiang Dahua Technology Co., Ltd. Systems and methods for image processing
CN111667418A (zh) * 2016-08-22 2020-09-15 华为技术有限公司 用于图像处理的方法和装置
US10218952B2 (en) 2016-11-28 2019-02-26 Microsoft Technology Licensing, Llc Architecture for rendering high dynamic range video on enhanced dynamic range display devices
US10104334B2 (en) 2017-01-27 2018-10-16 Microsoft Technology Licensing, Llc Content-adaptive adjustment of display device brightness levels when rendering high dynamic range content
US10176561B2 (en) * 2017-01-27 2019-01-08 Microsoft Technology Licensing, Llc Content-adaptive adjustments to tone mapping operations for high dynamic range content
US10453221B2 (en) * 2017-04-10 2019-10-22 Intel Corporation Region based processing
GB2565305A (en) 2017-08-08 2019-02-13 Cambridge Touch Tech Ltd Device for processing signals from a pressure-sensing touch panel
US11093088B2 (en) 2017-08-08 2021-08-17 Cambridge Touch Technologies Ltd. Device for processing signals from a pressure-sensing touch panel
US11086969B2 (en) * 2017-09-29 2021-08-10 Sony Corporation Information processing device and information processing method
JP2019117487A (ja) * 2017-12-27 2019-07-18 ソニー株式会社 画像処理装置、画像処理方法、及びプログラム
EP3503019A1 (en) * 2017-12-21 2019-06-26 Thomson Licensing Improved inverse tone mapping method and corresponding device
GB2574589B (en) 2018-06-06 2020-12-23 Cambridge Touch Tech Ltd Pressure sensing apparatus and method
US10957024B2 (en) 2018-10-30 2021-03-23 Microsoft Technology Licensing, Llc Real time tone mapping of high dynamic range image data at time of playback on a lower dynamic range display
US10666266B1 (en) * 2018-12-06 2020-05-26 Xilinx, Inc. Configuration engine for a programmable circuit
US10805549B1 (en) * 2019-08-20 2020-10-13 Himax Technologies Limited Method and apparatus of auto exposure control based on pattern detection in depth sensing system
CN115908596B (zh) * 2021-08-20 2023-11-24 荣耀终端有限公司 一种图像处理方法及电子设备
CN115082347A (zh) * 2022-06-29 2022-09-20 天彩电子(深圳)有限公司 图像优化方法、装置、电子设备及计算机可读存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1696384A1 (en) * 2005-02-23 2006-08-30 SONY DEUTSCHLAND GmbH Method for processing digital image data
JP4998287B2 (ja) 2008-01-25 2012-08-15 ソニー株式会社 画像処理装置および方法、並びにプログラム
JP4847591B2 (ja) * 2008-02-14 2011-12-28 富士通株式会社 画像処理装置、画像処理方法および画像処理プログラム
US8139888B2 (en) 2008-06-20 2012-03-20 Mitsubishi Electric Research Laboratories, Inc. Method for filtering of images with bilateral filters and power images

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016076143A (ja) * 2014-10-08 2016-05-12 エルジー ディスプレイ カンパニー リミテッド 画像信号処理装置およびビット拡張演算処理方法
WO2020162293A1 (ja) * 2019-02-06 2020-08-13 パナソニックIpマネジメント株式会社 画像処理装置、画像処理方法および画像処理システム
JP2020127169A (ja) * 2019-02-06 2020-08-20 パナソニックIpマネジメント株式会社 画像処理装置、画像処理方法および画像処理システム

Also Published As

Publication number Publication date
US20120057803A1 (en) 2012-03-08
CN102385746A (zh) 2012-03-21
US8849056B2 (en) 2014-09-30

Similar Documents

Publication Publication Date Title
JP2012058850A (ja) 画像処理装置および方法、並びにプログラム
JP4998287B2 (ja) 画像処理装置および方法、並びにプログラム
JP5495025B2 (ja) 画像処理装置および方法、並びにプログラム
JP3862620B2 (ja) 画像処理装置、及び画像処理方法
JP4894595B2 (ja) 画像処理装置および方法、並びに、プログラム
US9641820B2 (en) Advanced multi-band noise reduction
JP5374700B2 (ja) 信号に対して所望のエフェクトを得るために、信号にカーネルを適用するエフェクトを調整するための技術
JP5065490B2 (ja) デジタルオブジェクトを処理するための方法および関係するシステム
JP4288623B2 (ja) 撮像装置、ノイズ除去装置、ノイズ除去方法、ノイズ除去方法のプログラム及びノイズ除去方法のプログラムを記録した記録媒体
JP5251637B2 (ja) ノイズ低減装置、ノイズ低減方法、ノイズ低減プログラム、記録媒体
JP4460839B2 (ja) デジタル画像鮮鋭化装置
JP2012216888A (ja) 画像理装置および方法、並びにプログラム
TWI463861B (zh) 消除蚊狀雜訊裝置及方法
US20060119896A1 (en) Image processing apparatus, image processing program, electronic camera, and image processing method for smoothing image of mixedly arranged color components
JP3862621B2 (ja) 画像処理装置、画像処理方法、及びそのプログラム
JP2012256202A (ja) 画像処理装置、および画像処理方法、並びにプログラム
JP6545670B2 (ja) デジタルカメラに対する単一フレームベースのスーパー解像度補間のためのシステムおよび方法
KR20140070216A (ko) 영상처리장치 및 방법
JP2011203814A (ja) 画像処理装置および方法、プログラム
JP2022130642A (ja) コンピュータビジョンのための適応バイラテラル(bl)フィルタリング
JP2020061080A (ja) 画像処理装置、撮像装置、画像処理方法
JP5295854B2 (ja) 画像処理装置及び画像処理プログラム
JP5863236B2 (ja) 画像処理装置、画像処理方法
JP5472734B2 (ja) 画像処理装置および方法、プログラム
TW201933278A (zh) 影像處理方法及影像處理裝置

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20131203