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

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

Info

Publication number
JP4894595B2
JP4894595B2 JP2007105540A JP2007105540A JP4894595B2 JP 4894595 B2 JP4894595 B2 JP 4894595B2 JP 2007105540 A JP2007105540 A JP 2007105540A JP 2007105540 A JP2007105540 A JP 2007105540A JP 4894595 B2 JP4894595 B2 JP 4894595B2
Authority
JP
Japan
Prior art keywords
value
input
pixel
unit
gain
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.)
Expired - Fee Related
Application number
JP2007105540A
Other languages
English (en)
Other versions
JP2008263475A (ja
Inventor
知生 光永
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 JP2007105540A priority Critical patent/JP4894595B2/ja
Priority to US12/100,187 priority patent/US8654221B2/en
Publication of JP2008263475A publication Critical patent/JP2008263475A/ja
Application granted granted Critical
Publication of JP4894595B2 publication Critical patent/JP4894595B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals
    • H04N9/68Circuits for processing colour signals for controlling the amplitude of colour signals, e.g. automatic chroma control circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/20Circuitry for controlling amplitude response
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/20Circuitry for controlling amplitude response
    • H04N5/202Gamma control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals
    • H04N9/68Circuits for processing colour signals for controlling the amplitude of colour signals, e.g. automatic chroma control circuits
    • H04N9/69Circuits for processing colour signals for controlling the amplitude of colour signals, e.g. automatic chroma control circuits for modifying the colour signals by gamma correction

Description

本発明は、画像処理装置および方法、並びに、プログラムに関し、画像のコントラストを補正する場合に用いて好適な画像処理装置および方法、並びに、プログラムに関する。
画像の階調を削減しダイナミックレンジを圧縮する画像処理は、階調圧縮または階調変換などと呼ばれており、近年、多様な階調圧縮または階調変換技術が提案されている(例えば、特許文献1参照)。
ここで、図1乃至図3を参照して、特許文献1に記載の発明において行われる階調変換処理について説明する。
図1は、特許文献1に記載の発明において階調変換処理を行う階調変換部11の機能の構成の例を示すブロック図である。階調変換部11は、輝度算出部21、非線形変換部22L乃至22B、トーンカーブ算出部23、トーンカーブメモリ24、γ_compパラメータメモリ25、縮小画像生成部26、縮小画像メモリ27、補間部28、マッピング部29−1,29−2、コントラスト補正部30、階調補正部31R乃至31B、および、非線形逆変換部32R乃至32Bにより構成される。
階調変換部11では、トーンカーブを用いて画像の階調を圧縮する階調圧縮処理、および、階調圧縮処理により失われたコントラストを補正するコントラスト補正処理が行われる。そのうち階調圧縮処理は、トーンカーブ算出部23、トーンカーブメモリ24、および、マッピング部29−1,29−2によって行われ、コントラスト補正処理は、γ_compパラメータメモリ25、縮小画像生成部26、縮小画像メモリ27、補間部28、および、コントラスト補正部30によって行われる。
そのうちコントラスト補正処理においては、縮小画像生成部26による画像縮小処理と補間部28による画像補間処理の組み合わせによって実現される低周波フィルタを利用して、階調圧縮した画像の成分をごく低周波成分からなる大局輝度成分とコントラスト成分とに分離し、画像の高周波成分だけでなく低中周波成分も含むコントラスト成分に対してコントラスト補正が行われる。従って、いたずらに画像のディテールだけが強調されることなく、見た目にもごく自然なコントラスト補正をおこなうことが可能となる。
図2は、コントラスト補正部30の機能の構成の例を示すブロック図である。コントラスト補正部30は、ゲイン値算出部51およびコントラスト強調部52により構成される。
コントラスト補正部30に入力される階調圧縮後の画像の輝度値Lc (nl)(p)は、トーンカーブによってコントラスト成分が圧縮されている。その圧縮の度合いはトーンカーブの傾きに依存し、傾きが緩やかであるほど圧縮の度合いが大きい。従って、画像のコントラストを元に戻すためには、トーンカーブの傾きの逆数に応じてコントラスト成分を強調することが望ましい。しかし、そうした場合、輝度値の飽和レベルおよびノイズレベル付近において、コントラスト補正が強すぎて輝度の飽和が生じ、補正後の画像に黒ツブレや白ツブレが発生してしまう場合がある。
そこで、コントラスト補正部30では、ゲイン値算出部51が、図3に示されるゲイン特性を用いて、階調圧縮後の輝度値Lc (nl)(p)に基づいてゲイン値g(p)を求め、コントラスト強調部53が、ゲイン値算出部51により求められたゲイン値g(p)を用いて、コントラストの補正を行う。なお、図3のグラフの横軸方向は、階調圧縮後の輝度値Lc (nl)(p)を表し、縦軸方向は、ゲイン値g(p)を表している。
図3に示されるゲイン特性においては、輝度値Lc (nl)(p)が、輝度値Lc (nl)(p)が取り得る範囲のほぼ中間にあたる所定の中間輝度レベルLmid (nl)となるとき、ゲイン値g(p)が最大となり、輝度値Lc (nl)(p)が取りうる範囲の最小値Lmin (nl)または最大値Lmax (nl)に近づくにつれて、ゲイン値g(p)は直線的に減衰し、輝度値Lc (nl)(p)が最小値Lmin (nl)未満および最大値Lmax (nl)を超える範囲では、ゲイン値g(p)は0となる。中間輝度レベルLmid (nl)におけるゲイン値g(p)は、所定の定数contrastGainとトーンカーブの形状によって決まるγ_compパラメータによって決定され、contrastGain/γ_comp−1となる。このゲイン特性は、以下の式(1)および式(2)により表すことができる。
Figure 0004894595
コントラスト強調部52は、ゲイン値算出部51により算出されたゲイン値g(p)を用いて、以下の式(3)により、コントラスト補正した輝度値Lu (nl)(p)を算出する。
Lu (nl)(p)=(g(p)+1)・(Lc (nl)(p)−Lcl (nl)(p))+Lcl (nl)(p)
=g(p)・(Lc (nl)(p)−Lcl (nl)(p))+Lc (nl)(p) ・・・(3)
なお、Lcl (nl)(p)は、画素位置pの画素の大局輝度値を表している。
従って、中間輝度レベルLmid (nl)付近の輝度成分のコントラストが、最小値Lmin (nl)または最大値Lmax (nl)付近の輝度成分のコントラストと比較して強調される。より厳密に言えば、中間輝度レベルLmid (nl)付近の輝度成分ほどコントラストが強調され、最小値Lmin (nl)または最大値Lmax (nl)付近の輝度成分は、ほとんどコントラストの強調が行われない。これにより、コントラスト補正後の画像において、輝度が飽和し、白ツブレや黒ツブレが発生することが防止される。
また、画像のコントラスト補正技術は、ダイナミックレンジの広い画像を階調圧縮した画像のコントラストを補正する用途以外にも利用される。例えば、フォトレタッチ(photo-retouching)の分野では、カメラで撮影した画像のピントが合っていない場合に、特に高周波域のコントラスト成分を強調するようにコントラスト補正を行い、ピントが合っている画像に近づける補正が一般的に行われており、フォトレタッチの機能を提供するフォトレタッチソフトウエア(photo-retouching software)のほとんどが、その補正機能を実装している。
ところで、この種の画像の高周波域のコントラストを強調する処理は、アンシャープマスキング(unsharp masking)と呼ばれる画像処理により実現されることが多い。アンシャープマスキングとは、画像の各画素について、当該画素値と、近傍画素値の重みつき平均値との差分を算出し、その差分値に適当なゲイン値をかけて、当該画素値に足しこむ処理である。ここで、近傍画素値の重みつき平均値は、当該画素における低周波成分に相当し、それを当該画素値から引くことにより、当該画素の高周波のコントラスト成分が抽出される。また、ゲイン値は、抽出されたコントラスト成分を強調するためのパラメータである。
また、従来のフォトレタッチソフトウエアに実装されているアンシャープマスキング処理の中には、より所望の効果が得られるように、ゲイン値を適切に調整できる機能を有しているものがある。
例えば、従来、コントラスト強調を適用するコントラスト成分の下限値を閾値として設定できるフォトレタッチソフトウエアが市販されている。このソフトウエアでは、当該画素の高周波のコントラスト成分が閾値以上であるとき、指定されたゲイン値でコントラスト成分が強調され、コントラスト成分が閾値未満であるとき、ゲイン値が0に設定され、コントラスト成分が強調されなくなる。これによって、コントラスト成分を強調しつつ、高周波のノイズ成分をいっしょに強調してしまうことを抑制することができる。
また、従来、ゲイン値の特性をさらに詳細に設定することができるフォトレタッチソフトウエアが市販されている。図4は、そのフォトレタッチソフトウエアのアンシャープマスキング処理のゲイン値の特性を示すグラフである。図4の横軸は、画像の局所コントラストの値を示し、縦軸は、コントラスト成分の強調率、すなわち、ゲイン値を示している。このソフトウエアでは、図4に示されるように、下限値に加えて、上限値、下限漸次調整域、上限漸次調整域、全域効果、効果の各パラメータを設定することができる。このように、コントラスト補正を適用するコントラスト成分の下限値に加えて、上限値を設定可能にすることにより、必要以上にコントラスト強調が行われ、コントラストが強い領域において輝度飽和が生じたり、コントラストが強すぎてギラギラして落ち着かない印象の画像になることを回避することができる。
特開2007−49450号公報
しかしながら、特許文献1に記載の発明では、コントラスト補正処理により輝度値の大小関係が逆転しまう階調逆転が発生してしまう可能性がある。ここで、階調逆転が発生する条件について考える。
上述した式(3)の両辺をLc (nl)で微分することにより、以下の式(4)が得られる。
Figure 0004894595
なお、いまは局所領域内での階調逆転に注目しているので、式(4)において、大局輝度値Lcl (nl)を定数として考える。また、式(4)において、各変数の画素の位置を表す(p)の表示を省略している。
局所的な階調逆転が生じないようにするには、最小値Lmin (nl)から最大値Lmax (nl)までの有効な輝度値の範囲(以下、有効輝度範囲と称する)内で式(4)の右辺の値が0以下にならないように、ゲイン値gを設定する必要がある。
特許文献1に記載の発明では、ゲイン値gの特性は、上述した図3、並びに、式(1)および式(2)により表されるが、ここでは説明を簡単にするために、輝度値Lc (nl)が中間輝度レベルLmid (nl)より明るい範囲のみについて考える。そうすると、式(4)のゲイン値gは、以下の式(5)により表される。
Figure 0004894595
ここで、gmidは中間輝度レベルLmid (nl)におけるゲイン値gのピーク値を表し、以下の式(6)で表される定数である。
Figure 0004894595
式(4)に式(5)を代入することにより、以下の式(7)が得られる。
Figure 0004894595
例えば、gmid=1およびLcl (nl)=Lmid (nl)である場合に、Lc (nl)=Lmax (nl)になったときに、式(7)の右辺は0となる。
gmidの値は、階調圧縮前の入力画像の輝度値のヒストグラムの形状によりほぼ決定され、通常contrastGainの値は1に設定されるため、通常の自然画像においては、gmidの値は経験的に0から1の範囲内に収まることが分かっている。また、大局輝度値Lcl (nl)はコントラスト補正前の画像のごく低周波成分の輝度値なので、Lmid (nl)より大きな値になることは希である。従って、通常の自然画像においては、局所領域でのLu (nl)の単調増加性が有効輝度範囲内でほぼ保証され、階調逆転が生じる可能性はほとんどない。
しかしながら、画像の見栄えをよくするなどの理由により、元の入力画像よりコントラストを強調するためにcontrastGainの値を1より大きな値に設定した場合、通常の自然画像においても、gmidが1を超える場合が発生し、Lc (nl)<Lmax (nl)の範囲において、式(7)の右辺が0以下になる場合が生じる。これは、コントラスト成分(Lc (nl)−Lcl (nl))が大きい画素を含む画像において、階調逆転が発生する可能性があることを示している。
また、上述した図4のゲイン特性も、図3のゲイン特性と同様に、上限値より大きい側のゲイン減衰特性は直線的であり、同様の理由により、局所的に階調逆転が発生する可能性がある。
さらに、特許文献1に記載の発明では、contrastGainの値を1より大きな値に設定し、ゲイン値g(p)が大きくなった場合、上述した式(3)において、コントラスト成分(Lc (nl)(p)−Lcl (nl)(p))が強調されすぎて、輝度値Lu (nl)(p)が黒レベルの輝度値を超えたり、ノイズレベルの輝度値を下回る可能性がある。すなわち、コントラスト補正後の画像において、輝度が飽和し、白ツブレや黒ツブレが発生する可能性がある。
例えば、低輝度領域にスポット状に高輝度領域があるような画像の場合、大局輝度値Lcl (nl)(p)が小さくなるため、コントラスト成分が非常に大きくなる。この場合、contrastGainの値を1に設定しているときには、上述したようにゲイン値g(p)が1を超えることはなく、輝度の飽和が発生することはほとんどないが、contrastGainの値を1より大きく設定したときには、ゲイン値g(p)が1を超え、その結果、コントラスト補正後の画像において、輝度が飽和し、白ツブレや黒ツブレが発生する可能性がある。
また、図4のゲイン特性を持つフォトレタッチソフトウエアでは、局所コントラストの値によりコントラスト補正が抑制され、輝度の飽和が抑制されるが、例えば、コントラスト成分がそれほど強くない高輝度領域にコントラスト補正を適用した場合などに、輝度が飽和する可能性が残っている。
すなわち、特許文献1に記載の発明、および、市販のフォトレタッチソフトウエアでは、処理対象となる画像およびコントラストを強調する度合いによって、コントラスト補正により階調逆転または輝度の飽和が発生する可能性がある。
本発明は、このような状況に鑑みてなされたものであり、各画像に応じて、適切にコントラスト補正を行うことができるようにするものである。
本発明の第1の側面の画像処理装置は、入力画像から低周波成分を除去したコントラスト成分を画素ごとに抽出し、ゲイン値に基づいて各画素の前記コントラスト成分を補正する画像処理装置であって、補正前の前記コントラスト成分である入力コントラスト成分を入力とし、補正後の前記コントラスト成分である出力コントラスト成分を出力とする入出力特性曲線であって、前記入力コントラスト成分に対して前記出力コントラスト成分が単調増加する入出力特性曲線を生成する入出力特性生成手段と、前記入出力特性曲線の原点と各点とを結ぶ線分の傾きに基づいて、前記入力コントラスト成分を前記出力コントラスト成分に補正するための前記ゲイン値の前記入力コントラスト成分に対する特性を表すゲイン特性曲線を生成するゲイン特性生成手段と、前記入力画像の画素ごとに、その画素の前記入力コントラスト成分を前記ゲイン特性曲線に適用することにより前記ゲイン値を算出するゲイン値算出手段とを備える。
前記入出力特性生成手段は、前記入力コントラスト成分の値が0付近において、傾きが最大かつ1より大きくなり、前記入力コントラスト成分の値が所定の補正範囲内において、前記入力コントラスト成分の絶対値が大きくなるほど傾きが緩やかになり、かつ、前記入力コントラスト成分に対する前記出力コントラスト成分の絶対値がその前記入力コントラスト成分の絶対値以上となり、前記入力コントラストの値が前記補正範囲を超える範囲において、傾きが1になるか、あるいは、1に近接する前記入出力特性曲線を生成させることができる。
ユーザにより指定された、前記入力コントラスト成分の値が0付近における前記入出力特性曲線の傾きである最大傾きおよび前記補正範囲を取得する取得手段をさらに設け、 前記入出力特性生成手段には、ユーザにより指定された前記最大傾きおよび前記補正範囲に基づいて、前記入出力特性曲線を生成させることができる。
前記ゲイン値算出手段には、前記入力画像の各画素について、その画素の輝度値と前記入力画像の輝度値が取りうる範囲の中間の値である中間輝度値との差分値をその画素の前記入力コントラスト成分として前記ゲイン値を算出させることができる。
前記ゲイン値算出手段には、前記入力画像の各画素について、その画素の前記コントラスト成分をその画素の前記入力コントラスト成分として前記ゲイン値を算出させることができる。
前記ゲイン値算出手段には、前記入力画像の各画素について、その画素の輝度値と前記入力画像の輝度値が取りうる範囲の中間の値である中間輝度値との差分値をその画素の前記入力コントラスト成分として第1のゲイン値を算出させ、その画素の前記コントラスト成分をその画素の前記入力コントラスト成分として第2ゲイン値を算出させ、前記第1のゲイン値と前記第2のゲイン値から小さい方を選択することにより、最終的な第3のゲイン値を算出させることができる。
前記ゲイン値算出手段には、前記入力画像の各画素について、その画素の輝度値と前記入力画像の輝度値が取りうる範囲の中間の値である中間輝度値との差分値をその画素の前記入力コントラスト成分として第1のゲイン値を算出させ、その画素の前記コントラスト成分を前記入力コントラスト成分として第2ゲイン値を算出させ、前記第1のゲイン値と前記第2のゲイン値を乗じることにより、最終的な第3のゲイン値を算出させることができる。
本発明の第1の側面の画像処理方法、または、プログラムは、入力画像から低周波成分を除去したコントラスト成分を画素ごとに抽出し、ゲイン値に基づいて各画素の前記コントラスト成分を補正する画像処理装置の画像処理方法、または、入力画像から低周波成分を除去したコントラスト成分を画素ごとに抽出し、ゲイン値に基づいて各画素の前記コントラスト成分を補正する処理をコンピュータに実行させるプログラムであって、補正前の前記コントラスト成分である入力コントラスト成分を入力とし、補正後の前記コントラスト成分である出力コントラスト成分を出力とする入出力特性曲線であって、前記入力コントラスト成分に対して前記出力コントラスト成分が単調増加する入出力特性曲線を生成し、前記入出力特性曲線の原点と各点とを結ぶ線分の傾きに基づいて、前記入力コントラスト成分を前記出力コントラスト成分に補正するための前記ゲイン値の前記入力コントラスト成分に対する特性を表すゲイン特性曲線を生成し、前記入力画像の画素ごとに、その画素の前記入力コントラスト成分を前記ゲイン特性曲線に適用することにより前記ゲイン値を算出するステップを含む。
本発明の第2の側面の画像処理装置は、入力画像から低周波成分を除去したコントラスト成分を画素ごとに抽出し、前記コントラスト成分を強調する度合いを示すゲイン値に基づいて各画素の前記コントラスト成分を補正する画像処理装置であって、前記入力画像の各画素について、輝度値に対する前記ゲイン値の特性を表す第1のゲイン特性曲線その画素の輝度値を適用することにより第1のゲイン値を算出する第1のゲイン値算出手段と、前記入力画像の各画素について、前記コントラスト成分に対する前記ゲイン値の特性を表す第2のゲイン特性曲線その画素の前記コントラスト成分を適用することにより第2のゲイン値を算出する第2のゲイン値算出手段と、前記入力画像の各画素について、前記第1のゲイン値および前記第2のゲイン値のうち小さい方、または、前記第1のゲイン値と前記第2のゲイン値とを乗じた値を、最終的な第3のゲイン値として算出する第3のゲイン値算出手段とを備える。
本発明の第2の側面の画像処理方法、または、プログラムは、入力画像から低周波成分を除去したコントラスト成分を画素ごとに抽出し、前記コントラスト成分を強調する度合いを示すゲイン値に基づいて各画素の前記コントラスト成分を補正する画像処理装置の画像処理方法、または、入力画像から低周波成分を除去したコントラスト成分を画素ごとに抽出し、前記コントラスト成分を強調する度合いを示すゲイン値に基づいて各画素の前記コントラスト成分を補正する処理をコンピュータに実行させるプログラムであって、前記入力画像の各画素について、輝度値に対する前記ゲイン値の特性を表す第1のゲイン特性曲線その画素の輝度値を適用することにより第1のゲイン値を算出し、前記入力画像の各画素について、前記コントラスト成分に対する前記ゲイン値の特性を表す第2のゲイン特性曲線その画素の前記コントラスト成分を適用することにより第2のゲイン値を算出し、前記入力画像の各画素について、前記第1のゲイン値および前記第2のゲイン値のうち小さい方、または、前記第1のゲイン値と前記第2のゲイン値とを乗じた値を、最終的な第3のゲイン値を算出するステップを含む。
本発明の第1の側面においては、補正前の前記コントラスト成分である入力コントラスト成分を入力とし、補正後の前記コントラスト成分である出力コントラスト成分を出力とする入出力特性曲線であって、前記入力コントラスト成分に対して前記出力コントラスト成分が単調増加する入出力特性曲線が生成され、前記入出力特性曲線の原点と各点とを結ぶ線分の傾きに基づいて、前記入力コントラスト成分を前記出力コントラスト成分に補正するための前記ゲイン値の前記入力コントラスト成分に対する特性を表すゲイン特性曲線が生成され、前記入力画像の画素ごとに、その画素の前記入力コントラスト成分を前記ゲイン特性曲線に適用することにより前記ゲイン値が算出される。
本発明の第2の側面においては、前記入力画像の各画素について、輝度値に対する前記ゲイン値の特性を表す第1のゲイン特性曲線その画素の輝度値を適用することにより第1のゲイン値が算出され、前記入力画像の各画素について、前記コントラスト成分に対する前記ゲイン値の特性を表す第2のゲイン特性曲線その画素の前記コントラスト成分を適用することにより第2のゲイン値が算出され、前記入力画像の各画素について、前記第1のゲイン値と前記第2のゲイン値に基づいて、最終的な第3のゲイン値が算出される。
以上のように、本発明の第1の側面によれば、コントラスト補正に用いるゲイン値を画素ごとに制御することができる。また、本発明の第1の側面によれば、特に階調の逆転が発生しないように、各画像に応じて適切にコントラスト補正を行うことができる。
また、本発明の第2の側面によれば、コントラスト補正に用いるゲイン値を画素ごとに制御することができる。また、本発明の第2の側面によれば、特に輝度の飽和が発生しないように、各画像に応じて適切にコントラスト補正を行うことができる。
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書又は図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書又は図面に記載されていることを確認するためのものである。従って、明細書又は図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
本発明の第1の側面の画像処理装置(例えば、図7の階調変換部143、または、図38のCPU621)は、第1に、入力画像から低周波成分を除去したコントラスト成分を画素ごとに抽出し、ゲイン値に基づいて各画素の前記コントラスト成分を補正する画像処理装置であって、補正前の前記コントラスト成分である入力コントラスト成分を入力とし、補正後の前記コントラスト成分である出力コントラスト成分を出力とする入出力特性曲線であって、前記入力コントラスト成分に対して前記出力コントラスト成分が単調増加する入出力特性曲線(例えば、図33の入出力特性カーブCL21)を生成する入出力特性生成手段(例えば、図14の入出力特性設定部341、または、図39の入出力特性設定部643)と、前記入出力特性曲線の原点と各点とを結ぶ線分の傾きに基づいて、前記入力コントラスト成分を前記出力コントラスト成分に補正するための前記ゲイン値の前記入力コントラスト成分に対する特性を表すゲイン特性曲線(例えば、図34のコントラストゲインカーブCL31)を生成するゲイン特性生成手段(例えば、図14または図39のゲイン特性算出部343)と、前記入力画像の画素ごとに、その画素の前記入力コントラスト成分を前記ゲイン特性曲線に適用することにより前記ゲイン値を算出するゲイン値算出手段(例えば、図17または図39のゲイン値算出部391)とを備える。
本発明の第1の側面の画像処理装置は、第2に、ユーザにより指定された、前記入力コントラスト成分の値が0付近における前記入出力特性曲線の傾きである最大傾きおよび前記補正範囲を取得する取得手段(例えば、図39のUI処理部633)をさらに備え、前記入出力特性生成手段は、ユーザにより指定された前記最大傾きおよび前記補正範囲に基づいて、前記入出力特性曲線を生成することができる。
本発明の第1の側面の画像処理方法またはプログラムは、入力画像から低周波成分を除去したコントラスト成分を画素ごとに抽出し、ゲイン値に基づいて各画素の前記コントラスト成分を補正する画像処理装置の画像処理方法、または、入力画像から低周波成分を除去したコントラスト成分を画素ごとに抽出し、ゲイン値に基づいて各画素の前記コントラスト成分を補正する処理をコンピュータに実行させるプログラムであって、補正前の前記コントラスト成分である入力コントラスト成分を入力とし、補正後の前記コントラスト成分である出力コントラスト成分を出力とする入出力特性曲線であって、前記入力コントラスト成分に対して前記出力コントラスト成分が単調増加する入出力特性曲線(例えば、図33の入出力特性カーブCL21)を生成し(例えば、図32のステップS141、または、図41のステップS212)、前記入出力特性曲線の原点と各点とを結ぶ線分の傾きに基づいて、前記入力コントラスト成分を前記出力コントラスト成分に補正するための前記ゲイン値の前記入力コントラスト成分に対する特性を表すゲイン特性曲線(例えば、図34のコントラストゲインカーブCL31)を生成し(例えば、図32のステップS142、または、図43のステップS231)、前記入力画像の画素ごとに、その画素の前記入力コントラスト成分を前記ゲイン特性曲線に適用することにより前記ゲイン値を算出する(例えば、図28のステップS112、または、図43のステップS235)ステップを含む。
本発明の第2の側面の画像処理装置(例えば、図7の階調変換部143、または、図38のCPU621)は、入力画像から低周波成分を除去したコントラスト成分を画素ごとに抽出し、前記コントラスト成分を強調する度合いを示すゲイン値に基づいて各画素の前記コントラスト成分を補正する画像処理装置であって、前記入力画像の各画素について、輝度値に対する前記ゲイン値の特性を表す第1のゲイン特性曲線(例えば、図3のゲイン特性を表す曲線)にその画素の輝度値を適用することにより第1のゲイン値を算出する第1のゲイン値算出手段(例えば、図18または図36のマッピング部412−1)と、前記入力画像の各画素について、前記コントラスト成分に対する前記ゲイン値の特性を表す第2のゲイン特性曲線(例えば、図34のコントラストゲインカーブCL31)その画素の前記コントラスト成分を適用することにより第2のゲイン値を算出する第2のゲイン値算出手段(例えば、図18または図36のマッピング部412−2)と、前記第1のゲイン値および前記第2のゲイン値のうち小さい方、または、前記第1のゲイン値と前記第2のゲイン値とを乗じた値を、最終的な第3のゲイン値を算出する第3のゲイン値算出手段(例えば、図18の選択部414、または、図36の乗算部501)とを備える。
本発明の第2の側面の画像処理方法またはプログラムは、入力画像から低周波成分を除去したコントラスト成分を画素ごとに抽出し、前記コントラスト成分を強調する度合いを示すゲイン値に基づいて各画素の前記コントラスト成分を補正する画像処理装置の画像処理方法、または、入力画像から低周波成分を除去したコントラスト成分を画素ごとに抽出し、前記コントラスト成分を強調する度合いを示すゲイン値に基づいて各画素の前記コントラスト成分を補正する処理をコンピュータに実行させるプログラムであって、前記入力画像の各画素について、輝度値に対する前記ゲイン値の特性を表す第1のゲイン特性曲線(例えば、図3のゲイン特性を表す曲線)にその画素の輝度値を適用することにより第1のゲイン値を算出し(例えば、図29のステップS121)、前記入力画像の各画素について、前記コントラスト成分に対する前記ゲイン値の特性を表す第2のゲイン特性曲線(例えば、図34のコントラストゲインカーブCL31)その画素の前記コントラスト成分を適用することにより第2のゲイン値を算出し(例えば、図29のステップS122)、前記入力画像の各画素について、前記第1のゲイン値および前記第2のゲイン値のうち小さい方、または、前記第1のゲイン値と前記第2のゲイン値とを乗じた値を、最終的な第3のゲイン値を算出する(例えば、図29のステップS123)ステップを含む。
以下、図を参照して、本発明の実施の形態について説明する。
図5は、本発明を適用したデジタルビデオカメラの一実施の形態を示すブロック図である。デジタルビデオカメラ101は、レンズ111、絞り112、画像センサ(CDS)113、相関2重サンプリング回路(CDS)114 、A/Dコンバータ115、DSP(Digital Signal Processor)ブロック116、タイミングジェネレータ(TG)117、LCD(Liquid Crystal Display)ドライバ118、LCD119、CODEC(Compression/Decompression)120、メモリ121、CPU122、および、入力デバイス123を含むように構成される。なお、DSPブロック116は、信号処理用のプロセッサ(例えば、DSP)と画像データを保持するRAM(Random Access Memory)などのメモリなどにより構成されるブロックであり、プロセッサが所定のプログラムを実行することにより、後述する画像処理を行う。なお、以下、DSPブロック116を、単にDSP116と呼ぶ。
レンズ111および絞り112などからなる光学系を通過した被写体からの入射光は、まず、画像センサ113の撮像面上の各受光素子に到達し、受光素子による光電変換により電気信号に変換される。画像センサ113から出力された電気信号は、相関2重サンプリング回路114によってノイズが除去され、A/Dコンバータ115によってデジタル化された後、デジタル化された画像データがDSP116内のメモリに一時的に格納される。タイミングジェネレータ117は、一定のフレームレートにより画像データが取り込まれるように、相関2重サンプリング回路114、A/Dコンバータ115、および、DSP116により構成される信号処理系を制御する。すなわち、DSP116には、一定のフレームレートで画像データのストリームが供給される。
なお、画像センサ113は、一般的なCCD(Charge Coupled Device)などの画像センサよりダイナミックレンジが広く、飽和したり、ノイズを発生させたりすることなく、被写体の暗い部分から明るい部分までを撮像することができる。従って、A/Dコンバータ115は、入力される電気信号を、通常のデジタルビデオカメラの階調数(例えば、10乃至12ビット程度のデータにより表現できる階調数)よりも多い階調数(例えば、14乃至16ビット程度のデータにより表現できる階調数)の画像データに変換する。
DSP116は、画像データのダイナミックレンジが、例えばLCD119が表示可能なダイナミックレンジになるように、後述する画像処理を画像データに施した後、画像処理を施した画像データを、必要に応じて、LCDドライバ118またはCODEC120に供給する。
LCDドライバ118は、DSP116から供給される画像データをアナログの画像信号に変換する。LCDドライバ118は、デジタルビデオカメラ101のファインダであるLCD119にアナログの画像信号を供給し、画像信号に基づく画像を表示させる。
CODEC120は、DSP116から供給される画像データを所定の方式により符号化し、符号化した画像データを、半導体、磁気記録媒体、光磁気記録媒体、光記録媒体などよりなるメモリ121に記録させる。
CPU122は、例えば、シャッタボタンなどの操作ボタンなどにより構成される入力デバイス123を操作することによりユーザにより入力された指令などに基づいて、デジタルビデオカメラ101の全体の処理を制御する。
図6は、DSP116の内部のプロセッサ(演算ユニット)が、所定のプログラムを実行することにより実現される機能の構成の例を示すブロック図である。DSP116の内部のプロセッサが所定のプログラムを実行することにより、デモザイク部141、ホワイトバランス部142、階調変換部143、ガンマ補正部144、および、YC変換部145を含む機能が実現される。
デモザイク部141は、A/Dコンバータ115によりA/D変換された画像データであるモザイク画像を取得する。モザイク画像は、R,G,Bのうちいずれかの色成分に対応するデータが1つの画素に格納され、例えば、Bayer配列と呼ばれる色配列に従って各画素が配置されている画像である。デモザイク部141は、1つの画素がR,G,B成分を全て有するようにするデモザイク処理をモザイク画像に施す。これにより、R,G,Bの3つの色成分にそれぞれ対応するR画像、G画像、B画像の3つの画像データが生成される。デモザイク部141は、生成したR画像、G画像、B画像の3つの画像データをホワイトバランス部142に供給する。
なお、以下、R画像、G画像、B画像の3つの画像データをまとめてRGB画像とも称する。また、以下、モザイク画像の画素位置pにおける画素値をM(p)とする。さらに、以下、デモザイク処理が施された画像データの画素位置pにおける画素値を[R(p), G(p), B(p)]とする。なお、R(p)はR成分の画素値であり、G(p)はG成分の画素値であり、B(p)はB成分の画素値である。
ホワイトバランス部142は、RGB画像の各画素値に適切な係数をかけることにより、被写体の無彩色の部分の色バランスが実際に無彩色となるように、RGB画像のホワイトバランスを調整する。ホワイトバランス部142は、ホワイトバランスを調整したRGB画像を階調変換部143に供給する。なお、以下、ホワイトバランスが調整された画像データの画素位置pにおける画素値を[Rw(p), Gw(p), Bw(p)]とする。なお、Rw(p)はR成分の画素値であり、Gw(p)はG成分の画素値であり、Bw(p)はB成分の画素値である。
階調変換部143は、図22および図23などを参照して後述するように、ホワイトバランスが調整されたRGB画像に、階調変換処理を施す。階調変換部143は、階調変換を施したRGB画像をガンマ補正部144に供給する。なお、以下、階調変換処理が施された画像データの画素位置pにおける画素値を[Ru(p), Gu(p), Bu(p)]とする。なお、Ru(p)はR成分の画素値であり、Gu(p)はG成分の画素値であり、Bu(p)はB成分の画素値である。
ガンマ補正部144は、階調変換が施されたRGB画像にガンマ補正を施す。ガンマ補正部144は、ガンマ補正を施したRGB画像をYC変換部145に供給する。なお、以下、ガンマ補正が施された画像データの画素位置pにおける画素値を[Ru γ(p), Gu γ(p), Bu γ(p)]とする。なお、Ru γ(p)はR成分の画素値であり、Gu γ(p)はG成分の画素値であり、Bu γ(p)はB成分の画素値である。
YC変換部145は、ガンマ補正が施されたRGB画像に対して、YCマトリックス処理およびクロマ成分に対する帯域制限を行うことにより、輝度成分(Y成分)により構成されるY画像、および、色差成分(CbまたはCr成分)により構成されるC画像を生成する。YC変換部145は、生成したY画像およびC画像を、必要に応じて、LCDドライバ118またはCODEC120に供給する。なお、以下、YC変換部145から出力される画像データの画素位置pにおける画素値を[Y(p), C(p)]とする。なお、Y(p)はY画像における輝度成分の値であり、C(p)はC画像における色差成分の値である。
図7は、階調変換部143の機能の構成の例を示すブロック図である。階調変換部143は、大局情報算出部151、輝度値画素処理部152、および、RGB値画素処理部153を含むように構成される。
大局情報算出部151は、RGB画像の輝度値からなる画像を縮小した縮小画像を生成するとともに、RGB画像の輝度値の階調を適切に圧縮するためのトーンカーブ、および、RGB画像の輝度値を適切にコントラスト補正するためのコントラストゲインカーブを生成(算出)し、生成した縮小画像、トーンカーブ、および、コントラストゲインカーブを輝度値画素処理部152に供給する。
輝度値画素処理部152は、大局情報算出部151により生成された縮小画像、トーンカーブ、および、コントラストゲインカーブを用いて、RGB画像の各画素の輝度値に対して階調変換およびコントラスト補正を施し、その結果得られた輝度値をRGB値画素処理部153に供給する。
RGB値画素処理部153は、輝度値画素処理部152により算出された輝度値を用いて、RGB画像の各画素のRGB値の補正を行う。
大局情報算出部151は、輝度算出部161、非線形変換部162L、トーンカーブ算出部163、トーンカーブメモリ164、コントラストゲインカーブ算出部165、コントラストゲインカーブメモリ166、縮小画像生成部167、および、縮小画像メモリ168を含むように構成される。
輝度算出部161は、図22を参照して後述するように、ホワイトバランスが調整されたRGB画像の画素値Rw(p),Gw(p),Bw(p)から、その画素位置に対応する輝度成分の値(輝度値L(p))を算出する。輝度算出部161は、算出した輝度値L(p)を非線形変換部162Lに出力する。
非線形変換部162Lは、図22を参照して後述するように、輝度値L(p)を非線形変換する。非線形変換部162Lは、非線形変換することにより算出した輝度値L(nl)(p)を、トーンカーブ算出部163、縮小画像生成部167、補間部171、マッピング部172−1、および、階調補正部181R乃至181Bに出力する。
トーンカーブ算出部163は、図30を参照して後述するように、非線形変換された輝度値L(nl)(p)、および、後述する大局輝度値Ll (nl)(p)の階調を圧縮するために適用するトーンカーブを算出する。トーンカーブ算出部163は、算出したトーンカーブを表すルックアップテーブル(輝度値の変換対応表)をトーンカーブメモリ164に記憶させる。また、トーンカーブ算出部163は、図30を参照して後述するように、トーンカーブの傾きの代表値であるγ_compパラメータを算出する。トーンカーブ算出部163は、γ_compパラメータをコントラストゲインカーブ算出部165に供給する。
コントラストゲインカーブ算出部165は、図32を参照して後述するように、コントラストゲインカーブを生成する。コントラストゲインカーブ算出部165は、生成したコントラストゲインカーブを表すルックアップテーブルをコントラストゲインカーブメモリ166に記憶させる。
縮小画像生成部167は、図35を参照して後述するように、輝度値L(nl)(p)からなる画像を縮小した縮小画像を生成する。具体的には、縮小画像生成部167は、輝度値L(nl)(p)からなる画像を、横wr×縦hr個のブロックに分割し、分割したブロックごとの輝度値L(nl)(p)の平均値を対応するブロックと同様の順番に配列した横wr×縦hr画素の縮小画像を生成する。縮小画像生成部167は、生成した縮小画像を縮小画像メモリ168に記憶させる。
輝度値画素処理部152は、輝度算出部161、非線形変換部162L、補間部171、マッピング部172−1,172−2、および、コントラスト補正部173を含むように構成される。なお、輝度算出部161および非線形変換部162Lは、大局情報算出部151および輝度値画素処理部152の両方に含まれる。
補間部171は、図26を参照して後述するように、縮小画像を3次補間により元の画像と同じ画素数になるように拡大した画像を構成する大局輝度値Ll (nl)(p)を算出する。補間部171は、算出した大局輝度値Ll (nl)(p)をマッピング部172−2に出力する。なお、以下、大局輝度値Ll (nl)(p)からなる画像を大局輝度画像と称する。
マッピング部172−1は、トーンカーブを表すルックアップテーブルをトーンカーブメモリ164から読み込む。マッピング部172−1は、読み出したルックアップテーブル、すなわち、トーンカーブに基づいて、輝度値L(nl)(p)の階調を圧縮する。マッピング部172−1は、階調を圧縮した輝度値Lc (nl)(p)をコントラスト補正部173に出力する。
マッピング部172−2は、トーンカーブを表すルックアップテーブルをトーンカーブメモリ164から読み込む。マッピング部172−1は、読み出したルックアップテーブル、すなわち、トーンカーブに基づいて、大局輝度値Ll (nl)(p)の階調を圧縮する。マッピング部172−2は、階調を圧縮した大局輝度値Lcl (nl)(p)をコントラスト補正部173に出力する。
コントラスト補正部173は、コントラストゲインカーブを表わすルックアップテーブルをコントラストゲインカーブメモリ166から読み出す。コントラスト補正部173は、図28を参照して後述するように、読み出したルックアップテーブル、すなわち、コントラストゲインカーブ、および、トーンカーブにより階調が圧縮された大局輝度値Lcl (nl)(p)に基づいて、トーンカーブにより階調が圧縮された輝度値Lc (nl)(p)からなる画像のコントラストを補正する。コントラスト補正部173は、コントラストを補正した輝度値Lu (nl)(p)を階調補正部181R乃至181Bに出力する。
RGB値画像処理部153は、非線形変換部162R乃至162B、階調補正部181R乃至181B、および、非線形逆変換部182R乃至182Bを含むように構成される。
非線形変換部162R乃至162Bは、図22を参照して後述するように、それぞれ、ホワイトバランスが調整されたRGB画像の画素値Rw(p),Gw(p),Bw(p)を非線形変換する。非線形変換部162R乃至162Bは、それぞれ、非線形変換することにより算出した画素値R(nl)(p),G(nl)(p)またはB(nl)(p)を、階調補正部181R乃至181Bに出力する。
なお、以下、非線形変換部162L乃至162Bを個々に区別する必要がない場合、単に、非線形変換部162と称する。
階調補正部181R乃至181Bは、図23を参照して後述するように、それぞれ、非線形変換された画素値R(nl)(p),G(nl)(p)、または、B(nl)(p)の階調を補正(変換)する。階調補正部181R乃至181Bは、それぞれ、階調補正した画素値Ru (nl)(p),Gu (nl)(p)、または、Bu (nl)(p)を、非線形逆変換部182R乃至182Bに出力する。
なお、以下、階調補正部181R乃至181Bを個々に区別する必要がない場合、単に、階調補正部181と称する。
非線形逆変換部182R乃至182Bは、それぞれ、階調補正された画素値Ru (nl)(p),Gu (nl)(p)、または、Bu (nl)(p)に、非線形変換部162R乃至162Bによる非線形変換の逆変換となる非線形逆変換を施す。非線形逆変換部182R乃至182Bは、それぞれ、非線形逆変換した画素値Ru(p),Gu(p)、または、Bu(p)を、ガンマ補正部144に出力する。
なお、以下、非線形逆変換部182R乃至182Bを個々に区別する必要がない場合、単に、非線形逆変換部182と称する。
図8は、図7の非線形変換部162の機能の構成の例を示すブロック図である。非線形変換部162は、マッピング部201および変換曲線メモリ202を含むように構成される。
マッピング部201は、変換曲線メモリ202に記憶されている変換曲線を表すルックアップテーブルに基づいて、外部から入力される画素値または輝度値を非線形変換する。マッピング部201は、非線形変換した画素値または輝度値を外部に出力する。
図9は、図7のトーンカーブ算出部163の機能の構成の例を示すブロック図である。トーンカーブ算出部163は、輝度域算出部221、平均レベル算出部222、時間平滑化部223、および、スプライン発生部224を含むように構成される。また、時間平滑化部223は、時間平滑化部223−1乃至223−3の3つの時間平滑化部を含む。
輝度域算出部221は、輝度値L(nl)(p)を、非線形変換部162Lから取得する。また、輝度域算出部221は、輝度値のノイズレベルを示すnoiseLevel(nl)、および、輝度値の飽和レベルを示すsaturationLevel(nl)を、DSP116の図示せぬ内部のメモリから読み込む。輝度域算出部221は、図30を参照して後述するように、輝度値L(nl)(p)の分布において、全体の画素数に占める所定の境界値以下の輝度の画素数の比率がほぼ所定の値(例えば、0.5%)となる境界値である裾野値Ldark (nl)、および、全体の画素数に占める所定の境界値以上の輝度の画素数の比率がほぼ所定の値(例えば、0.5%)となる境界値である裾野値Lbright (nl)を算出する。輝度域算出部221は、裾野値Ldark (nl)を時間平滑化部223−1に出力し、裾野値Lbright (nl)を時間平滑化部223−2に出力する。
平均レベル算出部222は、輝度値L(nl)(p)を、非線形変換部162Lから取得する。平均レベル算出部222は、noiseLevel(nl)およびsaturationLevel(nl)を、DSP116の図示せぬ内部のメモリから読み込む。平均レベル算出部222は、図30を参照して後述するように、輝度値L(nl)(p)の平均レベルLaverage (nl)を算出する。平均レベル算出部222は、平均レベルLaverage (nl)を時間平滑化部223−3に出力する。
時間平滑化部223−1乃至223−3は、例えば、IIR(Infinite Impulse Response)フィルタにより構成される。時間平滑化部223−1は、裾野値Ldark (nl)を時間平滑化し、時間平滑化した裾野値Ldark-ts (nl)をスプライン発生部224に出力する。時間平滑化部223−2は、裾野値Lbright (nl)を時間平滑化し、時間平滑化した裾野値Lbright-ts (nl)をスプライン発生部224に出力する。時間平滑化部223−3は、裾野値Laverage (nl)を時間平滑化し、時間平滑化した裾野値Laverage-ts (nl)をスプライン発生部224に出力する。
なお、以下、時間平滑化部223−1乃至223−3を個々に区別する必要がない場合、単に、時間平滑化部223と称する。
スプライン発生部224は、図30を参照して後述するように、裾野値Ldark-ts (nl)、裾野値Lbright-ts (nl)、および、裾野値Laverage-ts (nl)に基づいて、トーンカーブを生成(算出)する。スプライン発生部224は、生成したトーンカーブを表すルックアップテーブルをトーンカーブメモリ164に記憶させる。また、スプライン発生部224は、図30を参照して後述するように、γ_compパラメータを算出する。スプライン発生部224は、γ_compパラメータをコントラストゲインカーブ算出部165に出力する。
図10は、図9の輝度域算出部221の機能の構成の例を示す図である。輝度域算出部221は、間引き部241、飽和画素除外部242、ソーティング部243、および、ソーティング部244を含むように構成される。
間引き部241は、非線形変換部162Lから入力される輝度値L(nl)(p)の画素位置pが、所定の間隔ごとに設けられているサンプリング位置に合致するか否かを判定し、サンプリング位置に合致すると判定した場合、輝度値L(nl)(p)を飽和画素除外部242に出力する。
飽和画素除外部242は、noiseLevel(nl)およびsaturationLevel(nl)を、DSP116の図示せぬ内部のメモリから読み込む。飽和画素除外部242は、間引き部241から入力される輝度値L(nl)(p)が、所定のnoiseLevel(nl)以上かつsaturationLevel(nl)以下であると判定した場合、ソーティング部243および244に輝度値L(nl)(p)を出力する。
ソーティング部243は、比較部251−1乃至251−k、および、各比較部に対応するレジスタ252−1乃至252−kを含むように構成される。なお、以下、比較部251−1乃至251−kを個々に区別する必要がない場合、単に、比較部251と称し、レジスタ252−1乃至252−kを個々に区別する必要がない場合、単に、レジスタ252と称する。
比較部251−1は、飽和画素除外部242から入力される輝度値L(nl)(p)とレジスタ252−1の値を比較する。輝度値L(nl)(p)がレジスタ252−1の値より小さい場合、比較部251−1は、現在のレジスタ252−1の値を後段の比較部251に出力し、輝度値L(nl)(p)をレジスタ252−1に記憶させる。レジスタ252−1の値を輝度値L(nl)(p)がレジスタ252の値以上である場合、比較部251−1は、輝度値L(nl)(p)をそのまま後段の比較部251−2に出力する。
比較部251−2は、前段の比較部251−1から入力された値とレジスタ252−2との値を比較する。比較部251−1から入力された値がレジスタ252−2の値より小さい場合、比較部251−2は、レジスタ252−2の値を後段の比較部251−3に出力し、比較部251−1から入力された値をレジスタ252−2に記憶させる。比較部251−1から入力された値がレジスタ252−2の値以上である場合、比較部251−2は、比較部251−1から入力された値をそのまま後段の比較部251−3に出力する。比較部251−3乃至251−kも、比較部251−2と同様の処理を行う。その結果、入力された輝度値L(nl)(p)のうち、最小値からk番目に小さい値までが、レジスタ252−1乃至252−kに昇順に記憶される。
ソーティング部243は、1フレーム分の画像の輝度値L(nl)(p)のソート後に、レジスタ252−kに記憶されている値を裾野値Ldark (nl)として、時間平滑化部223−1に出力する。
ソーティング部244は、比較部261−1乃至261−k、および、各比較部に対応するレジスタ262−1乃至262−kを含むように構成される。なお、以下、比較部261−1乃至261−kを個々に区別する必要がない場合、単に、比較部261と称し、レジスタ262−1乃至262−kを個々に区別する必要がない場合、単に、レジスタ262と称する。
比較部261−1は、飽和画素除外部242から入力される輝度値L(nl)(p)とレジスタ262−1の値を比較する。輝度値L(nl)(p)がレジスタ262−1の値より大きい場合、比較部261−1は、現在のレジスタ262−1の値を後段の比較部261に出力し、輝度値L(nl)(p)をレジスタ262−1に記憶させる。レジスタ262−1の値を輝度値L(nl)(p)がレジスタ262の値以下である場合、比較部261−1は、輝度値L(nl)(p)をそのまま後段の比較部261−2に出力する。
比較部261−2は、前段の比較部261−1から入力された値とレジスタ262−2との値を比較する。比較部261−1から入力された値がレジスタ262−2の値より大きい場合、比較部261−2は、レジスタ262−2の値を後段の比較部261−3に出力し、比較部261−1から入力された値をレジスタ262−2に記憶させる。比較部261−1から入力された値がレジスタ262−2の値以下である場合、比較部261−2は、比較部261−1から入力された値をそのまま後段の比較部261−3に出力する。比較部261−3乃至261−kも、比較部261−2と同様の処理を行う。その結果、入力された輝度値L(nl)(p)のうち、最大値からk番目に大きい値までが、レジスタ262−1乃至262−kに降順に記憶される。
ソーティング部244は、1フレーム分の画素の輝度値L(nl)(p)のソート後に、レジスタ261−kに記憶されている値を裾野値Lbright (nl)として、時間平滑化部223−2に出力する。
図11は、図9の平均レベル算出部222の機能の構成の例を示すブロック図である。平均レベル算出部222は、飽和画素除外部281および平均値算出部282を含むように構成される。
飽和画素除外部281は、noiseLevel(nl)およびsaturationLevel(nl)を、DSP116の図示せぬ内部のメモリから読み込む。飽和画素除外部281は、非線形変換部162Lから入力される輝度値L(nl)(p)が、所定のnoiseLevel(nl)以上かつsaturationLevel(nl)以下であると判定した場合、平均値算出部282の加算部291およびカウンタ293に輝度値L(nl)(p)を出力する。
平均値算出部282は、加算部291、レジスタ292、カウンタ293、および、除算部294を含むように構成される。
加算部291は、飽和画素除外部281から入力される輝度値L(nl)(p)を、レジスタ292に記憶されている値に加算して、レジスタ292に記憶させる。すなわち、レジスタ292には、輝度値L(nl)(p)の合計値である輝度合計値が記憶される。
カウンタ293は、飽和画素除外部281から輝度値L(nl)(p)が入力される毎に、カウンタの値を1つインクリメントし、レジスタ292に記憶されている輝度合計値に加算された輝度値L(nl)(p)の数(画素数)をカウントする。
除算部294は、1フレーム分の画素の輝度値L(nl)(p)が加算された後に、レジスタ292の値を、カウンタ293のカウンタ値で割ることにより、輝度値L(nl)(p)の平均レベルLaverage (nl)を算出する。除算部294は、時間平滑化部223−3に平均レベルLaverage (nl)を出力する。
図12は、図9の時間平滑化部223の機能の構成の例を示すブロック図である。時間平滑化部223は、乗算部311、乗算部312、加算部313、および、レジスタ314を含むように構成される。
乗算部311は、所定の平滑化係数sc1を、DSP116の図示せぬ内部のメモリから読み込む。乗算部311は、外部から入力される値(例えば、裾野値Ldark (nl)、裾野値Lbright (nl)、または、平均レベルLaverage (nl))に平滑化係数sc1を乗じた値を加算部313に出力する。
乗算部311は、所定の平滑化係数sc2を、DSP116の図示せぬ内部のメモリから読み込む。乗算部311は、レジスタ314に記憶されている値(例えば、1つ前のフレームに対応する時間平滑化された裾野値Ldark-ts-pre (nl)、裾野値Lbright-ts-pre (nl)、または、平均レベルLaverage-ts-pre (nl))に平滑化係数sc2を乗じた値を加算部313に出力する。
加算部313は、乗算部311および312から入力される値を加算した値(例えば、時間平滑化した裾野値Ldark-ts (nl)、裾野値Lbright-ts (nl)、または、平均レベルLaverage-ts (nl))を外部に出力するとともに、レジスタ314に記憶させる。
図13は、図9のスプライン発生部224の機能の構成の例を示すブロック図である。スプライン発生部224は、コントロールポイント設定部331、曲線描画部332、および、γ算出部333を含むように構成される。
コントロールポイント設定部331は、時間平滑化部223−1から裾野値Ldark-ts (nl)を取得し、時間平滑化部223−2から裾野値Lbright-ts (nl)を取得し、時間平滑化部223−3から平均レベルLaverage-ts (nl)を取得する。コントロールポイント設定部331は、図30を参照して後述するように、トーンカーブを生成(算出)するためのコントロールポイントを設定し、設定したコントロールポイントの位置を示すコントロールポイントセットを曲線描画部332およびγ算出部333に出力する。
曲線描画部332は、図30を参照して後述するように、コントロールポイント設定部331により設定されたコントロールポイントに基づいて、トーンカーブを描画(生成)する。曲線描画部332は、生成したトーンカーブを表すルックアップテーブルをトーンカーブメモリ164に記憶させる。
γ算出部333は、図30を参照して後述するように、γ_compパラメータを算出する。γ算出部333は、γ_compパラメータをコントラストゲインカーブ算出部165に出力する。
図14は、図7のコントラストゲインカーブ算出部165の機能の構成の例を示す図である。コントラストゲインカーブ算出部165は、入出力特性設定部341、入出力特性カーブメモリ342、および、ゲイン特性算出部343を含むように構成される。
入出力特性設定部341は、図32および図33を参照して後述するように、コントラスト補正前の輝度値Lc (nl)(p)と大局輝度値Lcl (nl)(p)の差分値(以下、入力コントラスト成分とも称する)を入力とし、コントラスト補正後の輝度値Lu (nl)(p)と大局輝度値Lcl (nl)(p)の差分値(以下、出力コントラスト成分とも称する)を出力とする入出力特性を表す入出力特性カーブを生成する。入出力特性設定部341は、生成した入出力特性カーブを表すルックアップテーブルを入出力特性カーブメモリ342に記憶させる。
ゲイン特性算出部343は、入出力特性カーブを表すルックアップテーブルを入出力特性カーブメモリ342から読み出す。ゲイン特性算出部343は、図32および図34を参照して後述するように、入出力特性カーブに基づいて、入力コントラスト成分と、輝度値Lc (nl)(p)をコントラスト補正するときに用いるゲイン値g(p)との関係を表すコントラストゲインカーブを生成する。ゲイン特性算出部343は、コントラストゲインカーブを表すルックアップテーブルをコントラストゲインカーブメモリ166に記憶させる。
図15は、図7の縮小画像生成部167の機能の構成の例を示す図である。縮小画像生成部167は、ソート部351、および、平均値算出部352−1乃至352−nを含むように構成される。
ソート部351は、輝度値L(nl)(p)からなる画像を横wr×縦hr個のブロックに分割し、非線形変換部162Lから入力される輝度値L(nl)(p)の画素位置pがどのブロックに含まれるかを判定する。ソート部351は、平均値算出部352−1乃至352−nのうち、画素位置pが含まれるブロックの輝度値の平均値を算出する平均値算出部に輝度値L(nl)(p)を出力する。
平均値算出部352−1乃至352−n(n=wr×hr)は、図11の平均値算出部282と同様の構成を有しており、各平均値算出部の対象となるブロックに含まれる輝度値L(nl)(p)の平均値を算出する。平均値算出部352−1乃至352−nは、算出したブロックの輝度の平均値を、縮小画像メモリ168上に対応するブロックと同様の順番に配置するように格納させる。これにより、縮小画像メモリ168上に、ブロックごとの輝度値L(nl)(p)の平均値からなる横wr×縦hr画素の縮小画像が生成される。
図16は、補間部171の機能の構成の例を示すブロック図である。補間部171は、近傍選択部371、水平係数算出部372、垂直係数算出部373、および、積和部374を含むように構成される。
近傍選択部371は、非線形変換部162Lが非線形変換した画素の画素位置pを非線形変換部162Lから取得する。近傍選択部371は、図26を参照して後述するように、画素位置pに対応する縮小画像上の位置qを算出する。近傍選択部371は、位置qの近傍の横4×縦4画素の範囲内にある画素である近傍画素を抽出する。近傍選択部371は、近傍画素の画素値a[i][j](1≦i≦4,1≦j≦4、ただし、i,jは自然数)を積和部374に出力する。また、近傍選択部371は、画素位置pと近傍画素の水平方向の位置ずれ量dx、および、垂直方向の位置ずれ量dyを算出する。近傍選択部371は、水平方向の位置ずれ量dxを水平係数算出部372に出力し、垂直方向の位置ずれ量dyを垂直係数算出部373に出力する。
水平係数算出部372は、図26を参照して後述するように、水平方向の位置ずれ量dxに基づいて、水平方向の3次補間係数kx[i](1≦i≦4,ただし、iは自然数)を算出する。水平係数算出部372は、補間係数kx[i]を積和部374に出力する。
垂直係数算出部373は、図26を参照して後述するように、垂直方向の位置ずれ量dyに基づいて、垂直方向の3次補間係数ky[j](1≦j≦4,ただし、jは自然数)を算出する。垂直係数算出部373は、補間係数ky[j]を積和部374に出力する。
積和部374は、図26を参照して後述するように、近傍画素の画素値a[i][j]、水平方向の補間係数kx[i]、および、垂直方向の補間係数ky[j]を用いて、縮小画像を3次補間することにより元のサイズ(画素数)に拡大した大局輝度画像の輝度値である大局輝度値Ll (nl)(p)を算出する。積和部374は、大局輝度値Ll (nl)(p)をマッピング部172−2に出力する。
図17は、図7のコントラスト補正部173の機能の構成の例を示すブロック図である。コントラスト補正部173は、ゲイン値算出部391、および、コントラスト強調部392を含むように構成される。
ゲイン値算出部391は、マッピング部172−1から輝度値Lc (nl)(p)を取得し、マッピング部172−2から大局輝度値Lcl (nl)(p)を取得する。また、ゲイン値算出部391は、コントラストゲインカーブを表わすルックアップテーブルをコントラストゲインカーブメモリ166から読み出す。ゲイン値算出部391は、図29を参照して後述するように、輝度値Lc (nl)(p)、大局輝度値Lcl (nl)(p)、および、コントラストゲインカーブに基づいて、輝度値Lc (nl)(p)をコントラスト補正するときに用いるゲイン値g(p)を算出する。ゲイン値算出部391は、算出したゲイン値g(p)をコントラスト強調部392に出力する。
コントラスト強調部392は、マッピング部172−1から輝度値Lc (nl)(p)を取得し、マッピング部172−2から大局輝度値Lcl (nl)(p)を取得する。コントラスト強調部392は、図28を参照して後述するように、階調を圧縮することにより抑制された輝度値Lc (nl)(p)からなる画像のコントラストを強調するようにコントラストの補正を行う。コントラスト強調部392は、コントラスト補正した輝度値Lu (nl)(p)を、階調補正部181R乃至181Bに出力する。
図18は、図17のゲイン値算出部391の機能の構成の例を示すブロック図である。ゲイン値算出部391は、減算部411−1,411−2、マッピング部412−1,412−2、減算部413、および、選択部414を含むように構成される。
減算部411−1は、階調が圧縮された輝度値Lc (nl)(p)と、輝度値Lc (nl)(p)が取り得る範囲のほぼ中間にあたる所定の中間輝度レベルLmid (nl)との差分を算出し、算出した差分値をマッピング部412−1に供給する。
減算部411−2は、階調が圧縮された輝度値Lc (nl)(p)と大局輝度値Lcl (nl)(p)との差分を算出し、算出した差分値をマッピング部412−2に供給する。
マッピング部412−1は、コントラストゲインカーブを表すルックアップテーブルをコントラストゲインカーブメモリ166から読み込む。マッピング部412−1は、読み込んだルックアップテーブルに基づいて、輝度値Lc (nl)(p)と中間輝度レベルLmid (nl)の差分値に対応するゲイン値g(p)を求め、減算部413および選択部414に供給する。
マッピング部412−2は、コントラストゲインカーブを表すルックアップテーブルをコントラストゲインカーブメモリ166から読み込む。マッピング部412−2は、読み込んだルックアップテーブルに基づいて、輝度値Lc (nl)(p)と大局輝度値Lcl (nl)(p)の差分値に対応するゲイン値g(p)を求め、減算部413および選択部414に供給する。
減算部413は、マッピング部412−1からのゲイン値g(p)とマッピング部412−2からのゲイン値g(p)の差分を算出し、算出した差分値を選択部414に供給する。
選択部414は、取得した差分値の符号に基づいて、マッピング部412−1からのゲイン値g(p)とマッピング部412−2からのゲイン値g(p)のうち小さい方を選択して、コントラスト強調部392に供給する。
図19は、図7の階調補正部181の機能の構成の例を示すブロック図である。階調補正部181は、減算部431、乗算部432、および、加算部433を含むように構成される。
減算部431は、非線形変換された画素値R(nl)(p)、G(nl)(p)、または、B(nl)(p)から非線形変換された階調補正前の輝度値L(nl)(p)を引いた差分値を算出し、算出した差分値を乗算部432に供給する。
乗算部432は、減算部431により算出された差分値に、R、G,Bの各成分の彩度を調節するための所定の値の係数であるchromaGainを乗じ、その結果得られた乗算値を加算部433に供給する。
加算部433は、乗算部432により算出された乗算値とコントラスト補正後の輝度値Lu (nl)(p)とを加算することにより、非線形変換された画素値R(nl)(p)、G(nl)(p)、または、B(nl)(p)にコントラスト補正後の輝度値Lu (nl)(p)を反映した画素値Ru (nl)(p),Gu (nl)(p)、または、Bu (nl)(p)を求め、非線形逆変換部182R乃至182Bに出力する。
図20は、非線形逆変換部182の機能の構成の例を示すブロック図である。非線形逆変換部182は、逆マッピング部451、および、変換曲線メモリ452を含むように構成される。
逆マッピング部451は、変換曲線メモリ452に記憶されている変換曲線を表すルックアップテーブルに基づいて、外部から入力される画素値に、非線形変換部162による非線形変換の逆変換となる非線形変換逆変換を施す。逆マッピング部451は、非線形逆変換した画素値を外部に出力する。
次に、図21のフローチャートを参照して、DSP116により実行される画像処理を説明する。なお、この処理は、例えば、デジタルビデオカメラ101による撮影が開始され、A/Dコンバータ115からDSP116への画像データ(モザイク画像)のストリームの供給が開始されたとき、開始される。なお、DSP116に供給された画像データは、逐次DSP116の図示せぬ内部のメモリに格納される。
ステップS1において、デモザイク部141は、モザイク画像を読み込む。具体的には、デモザイク部141は、DSP116の図示せぬ内部のメモリに格納されている先頭のフレームのモザイク画像を読み込む。
ステップS2において、デモザイク部141は、デモザイク処理を行う。具体的には、デモザイク部141は、読み込んだモザイク画像にデモザイク処理を施し、RGB画像を生成する。デモザイク部141は、生成したRGB画像をホワイトバランス部142に供給する。
ステップS3において、ホワイトバランス部142は、取得したRGB画像のホワイトバランスを調整する。ホワイトバランス部142は、ホワイトバランスを調整したRGB画像を階調変換部143に供給する。
ステップS4において、階調変換部143は、階調変換処理を行う。階調変換処理の詳細は図22および図23を参照して後述するが、この処理により、RGB画像の階調が変換され、階調が変換されたRGB画像がガンマ補正部144に供給される。
ステップS5において、ガンマ補正部144は、RGB画像にガンマ補正を施す。ガンマ補正部144は、ガンマ補正を施したRGB画像をYC変換部145に供給する。
ステップS6において、YC変換部145は、YC変換処理を行う。具体的には、YCマトリックス処理およびクロマ成分に対する帯域制限を行うことにより、RGB画像からY画像およびC画像を生成する。
ステップS7において、YC変換部145は、Y画像およびC画像を出力する。具体的には、YC変換部145は、必要に応じて、Y画像およびC画像を、LCDドライバ118またはCODEC120に出力する。
ステップS8において、デモザイク部141は、後続するフレームが存在するか否かを判定する。デモザイク部141は、DSP116の図示せぬ内部のメモリに後続するフレームのモザイク画像が蓄積されている場合、後続フレームが存在すると判定し、処理はステップS1に戻る。
ステップS1において、次のフレームのモザイク画像が読み込まれ、読み込まれたモザイク画像に対して、ステップS2以降の処理が行われる。
その後、ステップS8において、後続するフレームが存在しないと判定されるまで、ステップS1乃至S8の処理が繰返し実行され、A/Dコンバータ115から供給されるモザイク画像に対して1フレームずつ順番に画像処理が行われる。
ステップS8において、後続するフレームがないと判定された場合、画像処理は終了する。
次に、図22および図23のフローチャートを参照して、図21のステップS4の階調変換処理の詳細を説明する。
ステップS21において、階調変換部143は、トーンカーブ、縮小画像、コントラストゲインカーブをメモリから読み込む。具体的には、階調変換部143の補間部171の近傍選択部371(図16)は、1つ前のフレームの階調変換処理において生成された縮小画像を縮小画像メモリ168から読み込む。マッピング部172−1,172−2は、1つ前のフレームの階調変換処理において算出されたトーンカーブを表すルックアップテーブルをトーンカーブメモリ164から読み込む。コントラスト補正部173のゲイン値算出部391のマッピング部412−1,412−2(図18)は、1つ前のフレームの階調変換処理において算出されたコントラストゲインカーブを表すルックアップテーブルをコントラストゲインカーブメモリ166から読み込む。
ステップS22において、トーンカーブ算出部163は、noiseLevel、saturationLevelを読み込む。具体的には、トーンカーブ算出部163の輝度域算出部221の飽和画素除外部242(図10)、および、平均レベル算出部222の飽和画素除外部281(図11)は、noiseLevel(nl)およびsaturationLevel(nl)を、DSP116の図示せぬ内部のメモリから読み込む。
ステップS23において、階調変換部143は、次に階調変換する画素のRGB値を読み込む。具体的には、階調変換部143の輝度算出部161および非線形変換部162R乃至162Bは、次に階調変換する画素位置pの画素値Rw(p),Gw(p)およびBw(p)をDSP116の図示せぬ内部のメモリから読み込む。
ステップS24において、輝度算出部161は、輝度値を算出する。具体的には、輝度算出部161は、画素位置pに対応する輝度値L(p)を、例えば、以下の式(8)により算出する。
Figure 0004894595
なお、式(8)の係数cR,cg,cbは、R,G,Bの各成分のバランスをとるための係数であり、例えば、(cR,cg,cb)=(0.3, 0.6, 0.1)または(0.25, 0.5, 0.25)のような値の組み合わせとされる。
また、輝度値L(p)を算出する方法は、上述した方法に限定されるものではなく、例えば、以下の式(9)のように、R,G,Bの各成分の線形和以外の値とするようにしてもよい。
L(p)=max(Rw(p),Gw(p),Bw(p)) ・・・(9)
輝度算出部161は、算出した輝度値L(p)を非線形変換部162Lに出力する。
ステップS25において、非線形変換部162Lは、輝度値を非線形変換する。具体的には、非線形変換部162Lのマッピング部201(図8)は、変換曲線を表すルックアップテーブルを変換曲線メモリ202から読み込み、ルックアップテーブルに基づいて、輝度値L(p)を非線形変換(例えば、対数変換またはガンマ変換)する。
なお、ステップS25の非線形変換の処理は必ずしも行う必要はないが、非線形変換前の輝度値を横軸に変換後の輝度値を縦軸とする場合に、上に凸の形状で単調増加する変換曲線を用いて非線形変換を行うことにより、輝度値のヒストグラムの形状が暗輝度側または明輝度側に極端に偏ることが防止され、ヒストグラムを解析しやすくすることができる。例えば、非線形変換に用いられる変換曲線は、例えば、ガンマ補正によく用いられるべき乗曲線(ただし、指数は1より小さい値とされる)、対数曲線、または、べき乗関数もしくは対数に基づいた関数により表される曲線とされる。
マッピング部201は、非線形変換した輝度値L(nl)(p)を、トーンカーブ算出部163、縮小画像生成部167、マッピング部172−1、および、階調補正部181R乃至181Bに出力する。
ステップS26において、トーンカーブ算出部163は、トーンカーブ算出のための画素処理を行う。トーンカーブ算出のための画素処理の詳細は、図24を参照して後述するが、この処理により、トーンカーブを算出するために輝度値L(nl)(p)のソートおよび画像全体の輝度合計値の算出が行われる。
ステップS27において、縮小画像生成部167は、縮小画像生成のための画素処理を行う。縮小画像生成のための画素処理の詳細は、図25を算出して後述するが、この処理により、縮小画像を生成するために、各ブロックごとの輝度値L(nl)(p)の輝度合計値の計算が行われる。
ステップS28において、補間部171は、大局輝度値算出処理を行う。大局輝度値算出処理の詳細は、図26を参照して後述するが、この処理により、画素位置pに対応する大局輝度値Ll (nl)(p)が算出される。
ステップS29において、階調変換部143は、非線形変換された輝度値および大局輝度値にトーンカーブを適用する。具体的には、階調変換部143のマッピング部172−1は、1つ前のフレームの階調変換処理において算出されたトーンカーブに基づいて、輝度値L(nl)(p)を輝度値Lc (nl)(p)に変換することにより、輝度値L(nl)(p)の階調を圧縮する。マッピング部172−1は、輝度値Lc (nl)(p)をコントラスト補正部173に出力する。また、マッピング部172−2は、1つ前のフレームの階調変換処理において算出されたトーンカーブに基づいて、大局輝度値Ll (nl)(p)を大局輝度値Lcl (nl)(p)に変換することにより、大局輝度値Ll (nl)(p)の階調を圧縮する。マッピング部172−2は、大局輝度値Lcl (nl)(p)をコントラスト補正部173に供給する。
ステップS30において、コントラスト補正部173は、コントラスト補正処理を行う。コントラスト補正処理の詳細は、図28を参照して後述するが、この処理により、輝度値Lc (nl)(p)からなる画像のコントラストが補正される。
ステップS31において、非線形変換部162R乃至162Bは、RGB値をそれぞれ非線形変換する。具体的には、非線形変換部162R乃至162Bのマッピング部201(図8)は、それぞれ、変換曲線を表すルックアップテーブルを変換曲線メモリ202から読み込み、ルックアップテーブルに基づいて、ステップS23において読み込んだ画素値Rw(p),Gw(p)、または、Bw(p)を非線形変換する。非線形変換部162R乃至162Bのマッピング部201は、それぞれ、非線形変換した画素値R(nl)(p),G(nl)(p)またはB(nl)(p)を、階調補正部181R乃至181Bに出力する。
なお、非線形変換部162R乃至162Bが用いるルックアップテーブルは、ステップS25において、非線形変換部162Lが用いたルックアップテーブルと同じものとされる。すなわち、画素値Rw(p),Gw(p)、および、Bw(p)に輝度値L(p)と同様の非線形変換が施される。
ステップS32において、階調補正部181R乃至181Bは、非線形変換されたRGB値をそれぞれ階調補正する。具体的には、階調補正部181Rの減算部431は、非線形変換された画素値R(nl)(p)から非線形変換された階調補正前の輝度値L(nl)(p)を引いた差分値を算出し、算出した差分値を乗算部432に供給する。乗算部432は、減算部431により算出された差分値に、R、G,Bの各成分の彩度を調節するための所定の値の係数であるchromaGainを乗じ、その結果得られた乗算値を加算部433に供給する。加算部433は、乗算部432により算出された乗算値とコントラスト補正後の輝度値Lu (nl)(p)とを加算する。すなわち、階調補正部181Rは、以下の式(10)により、非線形変換された画素値R(nl)(p)に、コントラスト補正後の輝度値Lu (nl)(p)を反映した画素値Ru (nl)(p)を求める。
Ru (nl)(p)=chromagain・(R(nl)(p)−L(nl)(p))+Lu (nl)(p) ・・・(10)
階調補正部181Gおよび181Bも同様に、それぞれ、以下の式(11)および(12)により、画素値G(nl)(p)またはB(nl)(p)の階調を補正した画素値Gu (nl)(p)およびBu (nl)(p)を求める。
Gu (nl)(p)=chromagain・(G(nl)(p)−L(nl)(p))+Lu (nl)(p) ・・・(11)
Bu (nl)(p)=chromagain・(B(nl)(p)−L(nl)(p))+Lu (nl)(p) ・・・(12)
階調補正部181R乃至181Bは、それぞれ、階調補正した画素値Ru (nl)(p),Gu (nl)(p)、または、Bu (nl)(p)を、非線形逆変換部182R乃至182Bに供給する。
ステップS33において、非線形逆変換部182R乃至182Bは、階調補正されたRGB値を非線形逆変換する。具体的には、非線形逆変換部182R乃至182Bの逆マッピング部451(図20)は、それぞれ、変換曲線を表すルックアップテーブルを変換曲線メモリ452から読み込み、ルックアップテーブルに基づいて、画素値Ru (nl)(p),Gu (nl)(p)、または、Bu (nl)(p)に対して、ステップS31における非線形変換の逆変換となる非線形逆変換を行う。
ステップS34において、非線形逆変換部182R乃至182Bは、非線形逆変換されたRGB値を出力する。具体的には、非線形逆変換部182R乃至182Bの逆マッピング部451は、それぞれ、非線形逆変換した画素値Ru(p),Gu(p)、または、Bu(p)を、ガンマ補正部144に出力する。
ステップS35において、輝度算出部161は、フレーム内の全ての画素を処理したか否かを判定する。まだフレーム内の全ての画素を処理していないと判定された場合、処理はステップS23に戻り、ステップS35において、フレーム内の全ての画素を処理したと判定されるまで、ステップS23乃至S35の処理が繰返し実行される。すなわち、現在処理しているフレーム内の全ての画素が、1画素ずつ順番に(例えば、ラスタスキャン順に)階調変換される。
ステップS35において、フレーム内の全ての画素を処理したと判定された場合、処理はステップS36に進む。
ステップS36において、トーンカーブ算出部163は、トーンカーブとγ_comp算出処理を行う。トーンカーブとγ_comp算出処理の詳細は、図30を参照して後述するが、この処理により、今回階調変換したフレームにおけるトーンカーブとγ_compパラメータが算出される。
ステップS37において、コントラストゲインカーブ算出部165は、コントラストゲインカーブ算出処理を行う。コントラストゲインカーブ算出処理の詳細は、図32を参照して後述するが、この処理により、今回階調変換したフレームにおけるコントラストゲインカーブが算出される。
ステップS38において、縮小画像生成部167は、縮小画像生成処理を行い、階調変換処理は終了する。縮小画像生成処理の詳細は、図35を参照して後述するが、この処理により、縮小画像が生成される。
次に、図24のフローチャートを参照して、図22のステップS26のトーンカーブ算出のための画素処理の詳細を説明する。
ステップS51において、トーンカーブ算出部163は、次に処理する画素の輝度値を読み込む。具体的には、トーンカーブ算出部163の輝度域算出部221の間引き部241(図10)、および、トーンカーブ算出部163の平均レベル算出部222の飽和画素除外部281(図11)は、上述した図22のS25において非線形変換された画素位置pの画素の輝度値L(nl)(p)を非線形変換部162Lから読み込む。
ステップS52において、間引き部241は、画素位置がサンプリング位置に合致するか否かを判定する。間引き部241は、読み込んだ輝度値L(nl)(p)の画素位置pが、所定の間隔ごとに設けられているサンプリング位置に合致すると判定した場合、輝度値L(nl)(p)を飽和画素除外部242に出力する。
ステップS53において、飽和画素除外部242は、輝度値がnoiseLevel以上saturationLevel以下であるか否かを判定する。飽和画素除外部242は、輝度値L(nl)(p)が、所定のnoiseLevel(nl)以上かつsaturationLevel(nl)以下であると判定した場合、ソーティング部243およびソーティング部244に輝度値L(nl)(p)を出力し、処理はステップS54に進む。
ステップS54において、ソーティング部243は、暗輝度側ソーティングを行う。具体的には、ソーティング部243の比較部251−1は、レジスタ252−1が記憶している値と輝度値L(nl)(p)を比較して、輝度値L(nl)(p)がレジスタ252−1の値より小さい場合、レジスタ252−1に記憶されていた値を後段の比較部251−2に出力し、輝度値L(nl)(p)をレジスタ252−1に記憶させる。一方、輝度値L(nl)(p)がレジスタ252−1の値以上である場合、比較部251−1は、輝度値L(nl)(p)をそのまま後段の比較部251−2に出力する。後段の比較部251−2乃至251−kも同様の処理を行う。その結果、最終的に、フレーム内のサンプリング位置の画素の輝度値L(nl)(p)のうち、最小の輝度値L(nl)(p)からk番目に小さい輝度値L(nl)(p)までが、レジスタ252−1乃至252−kに昇順に記憶される。
ステップS55において、ソーティング部243は、明輝度側ソーティングを行う。具体的には、ソーティング部244の比較部261−1は、レジスタ262−1が記憶している値と輝度値L(nl)(p)を比較して、輝度値L(nl)(p)がレジスタ262−1の値より大きい場合、レジスタ262−1に記憶されていた値を後段の比較部261−2に出力し、輝度値L(nl)(p)をレジスタ262−1に記憶させる。一方、比較部261−1は、輝度値L(nl)(p)がレジスタ252−1の値以下である場合、輝度値L(nl)(p)をそのまま後段の比較部261−2に出力する。後段の比較部261−2乃至261−kも同様の処理を行う。その結果、最終的に、フレーム内のサンプリング位置の画素の輝度値L(nl)(p)のうち、最大の輝度値L(nl)(p)からk番目に大きい輝度値L(nl)(p)までが、レジスタ262−1乃至262−kに降順に記憶される。
ステップS53において、輝度値L(nl)(p)がnoiseLevel(nl)未満またはsaturationLevel(nl)を超えると判定された場合、ステップS54およびS55の処理はスキップされ、処理はステップS56に進む。すなわち、noiseLevel(nl)未満またはsaturationLevel(nl)を超える輝度値L(nl)(p)は、暗輝度側ソーティングおよび明輝度側ソーティングの対象から除外される。
ステップS52において、画素位置がサンプリング位置に合致しないと判定された場合、ステップS53乃至S55の処理はスキップされ、処理はステップS56に進む。これにより、暗輝度側ソーティングおよび明輝度側ソーティングの対象となる画素数が制限される。
ステップS56において、平均レベル算出部222の飽和画素除外部281(図11)は、ステップS53における輝度域算出部221の飽和画素除外部242による処理と同様に、輝度値がnoiseLevel以上saturationLevel以下であるか否かを判定する。飽和画素除外部281は、輝度値L(nl)(p)が、noiseLevel(nl)以上かつsaturationLevel(nl)以下であると判定した場合、平均値算出部282の加算部291およびカウンタ293に輝度値L(nl)(p)を出力し、処理はステップS57に進む。
ステップS57において、平均レベル算出部222は、輝度合計値を算出し、トーンカーブ算出のための画素処理は終了する。具体的には、加算部291は、レジスタ292に記憶されているこれまでの輝度値の合計値である輝度合計値を読み込み、入力された輝度値L(nl)(p)を加算する。加算部291は、算出した値をレジスタ292に記憶させる。また、カウンタ293は、カウンタの値を1つインクリメントする。すなわち、カウンタ293のカウンタ値は、これまでに輝度合計値に輝度値L(nl)(p)が加算された画素の数を示す。
ステップS56において、輝度値L(nl)(p)がnoiseLevel(nl)未満またはsaturationLevel(nl)を超えると判定された場合、ステップS57の処理はスキップされ、トーンカーブ算出のための画素処理は終了する。すなわち、noiseLevel(nl)未満またはsaturationLevel(nl)を超える輝度値L(nl)(p)は、輝度平均値を算出する対象から除外される。
次に、図25のフローチャートを参照して、図22のステップS27の縮小画像生成のための画素処理の詳細を説明する。
ステップS71において、縮小画像生成部167のソート部351(図15)は、次に処理する画素の輝度値を読み込む。具体的には、ソート部351は、上述した図22のS25において非線形変換された画素位置pの画素の輝度値L(nl)(p)を非線形変換部162Lから読み込む。
ステップS72において、ソート部351は、該当するブロックを判定する。具体的には、ソート部351は、画素位置pが、画像を横wr×縦hr個に分割した所定のブロックのどれに含まれるかを判定する。
ステップS73において、平均値算出部352は、輝度値を該当するブロックの輝度合計値に加算し、縮小画像生成のための画素処理は終了する。具体的には、ソート部351は、画素位置pが含まれるブロックの輝度値の平均値を算出する平均値算出部352に、輝度値L(nl)(p)を出力する。平均値算出部352は、対象となるブロックの輝度値の合計である輝度合計値に輝度値L(nl)(p)を加算する。
次に、図26のフローチャートを参照して、図22のステップS28の大局輝度算出処理の詳細を説明する。
ステップS91において、補間部171の近傍選択部371(図16)は、次に処理する画素の画素位置を読み込む。具体的には、近傍選択部371は、次に処理する画素の画素位置pを非線形変換部162Lから読み込む。
ステップS92において、近傍選択部371は、次に処理する画素に対応する縮小画像上の近傍画素と位置ずれ量を算出する。具体的には、近傍選択部371は、モザイク画像の画素数を横wm×縦hm、縮小画像の画素数を横wr×縦hrとした場合、画素位置p=(px, py)に対応する縮小画像上の位置q=(qx,qy)を、以下の式(13)乃至(15)により算出する。
bx=wm/wr ・・・(13)
by=hm/hr ・・・(14)
q=(qx,qy)=(px/bx−0.5, py/by−0.5) ・・・(15)
また、近傍選択部371は、位置qの近傍の横4×縦4画素の範囲内の画素である近傍画素を抽出する。例えば、図27に示される例の場合、図27の斜線で示されるqx−2<x<qx+2、qy−2<y<qy+2の範囲内に位置する“+”マークで示される画素が近傍画素として抽出される。
さらに、近傍選択部371は、画素位置pと近傍画素の水平方向の位置ずれ量dx、および、垂直方向の位置ずれ量dyを、縮小画像において、位置qから左下方向で最も近い画素と位置qとの差分とする。すなわち、位置ずれ量(dx,dy)=(qxの小数部,qyの小数部)となる。
近傍選択部371は、水平方向の位置ずれ量dxを水平係数算出部372に出力し、垂直方向の位置ずれ量dyを垂直係数算出部373に出力し、近傍画素の画素値a[i][j](1≦i≦4,1≦j≦4、ただし、i,jは自然数)を積和部374に出力する。
ステップS93において、水平係数算出部372は、水平方向の3次補間係数を算出する。具体的には、水平係数算出部372は、水平方向の位置ずれ量dxに基づいて、以下の式(16)および(17)により、水平方向の3次補間係数kx[i](1≦i≦4,ただし、iは自然数)を算出する。
Figure 0004894595
水平係数算出部372は、算出した補間係数kx[i]を積和部374に出力する。
ステップS94において、垂直係数算出部373は、垂直方向の3次補間係数を算出する。具体的には、垂直係数算出部373は、垂直方向の位置ずれ量dyに基づいて、以下の式(18)および(19)により、垂直方向の3次補間係数ky[j] (1≦j≦4,ただし、jは自然数)を算出する。
Figure 0004894595
垂直係数算出部373は、算出した補間係数ky[j]を積和部374に出力する。
なお、上述した式(16)乃至(19)は、3次補間によく用いられる式の一例であり、十分に滑らかな補間が得られる範囲で、補間係数kx[i],ky[j]を他の計算式に基づいて算出するようにしてもよい。
ステップS95において、積和部374は、大局輝度値を算出する。具体的には、積和部374は、近傍画素の画素値a[i][j]、水平方向の補間係数kx[i]、および、垂直方向の補間係数ky[j]を、以下の式(20)により積和計算することにより、画素位置pの大局輝度値Ll (nl)(p)を算出する。
Figure 0004894595
ステップS96において、積和部374は、マッピング部172−2に、大局輝度値Ll (nl)(p)を出力して、大局輝度値算出処理は終了する。
なお、大局輝度値Ll (nl)(p)からなる大局輝度画像は、横wr×縦hr画素の縮小画像を3次補間により元のサイズ(画素数)に拡大した画像であり、元の画像(輝度値L(nl)(p)からなる画像)のごく低周波域の成分だけを抽出した画像となる。
次に、図28のフローチャートを参照して、図22のステップS30のコントラスト補正処理の詳細を説明する。
ステップS111において、コントラスト補正部173は、次に処理する画素の階調圧縮された輝度値および大局輝度値を読み込む。具体的には、コントラスト補正部173のゲイン値算出部391およびコントラスト強調部392(図17)は、上述した図22のステップS29においてトーンカーブにより階調が圧縮された輝度値Lc (nl)(p)をマッピング部172−1から読み込み、上述した図22のステップS29においてトーンカーブにより階調が圧縮された大局輝度値Lcl (nl)(p)をマッピング部172−2から読み込む。
ステップS112において、ゲイン値算出部391は、ゲイン値算出処理を行う。ゲイン値算出処理の詳細は、図29を参照して後述するが、この処理により、ゲイン値g(p)が算出される。
ステップS113において、コントラスト強調部392は、コントラスト補正した輝度値を算出する。具体的には、コントラスト強調部392は、階調が圧縮された輝度値Lc (nl)(p)および大局輝度値Lcl (nl)(p)、並びに、ゲイン値g(p)を用いて、以下の式(21)により、コントラスト補正した輝度値Lu (nl)(p)を算出する。
Lu (nl)(p)=(g(p)+1)・(Lc (nl)(p)−Lcl (nl)(p))+Lcl (nl)(p)
=g(p)・(Lc (nl)(p)−Lcl (nl)(p))+Lc (nl)(p) ・・・(21)
なお、輝度値(Lc (nl)(p)−Lcl (nl)(p))からなる画像は、輝度値Lc (nl)(p)からなる画像から、輝度値Lc (nl)(p)からなる画像のごく低周波域の成分からなる大局輝度画像を差し引いたものである。従って、輝度値Lu (nl)(p)からなる画像は、輝度値Lc (nl)(p)からなる画像のごく低周波域の成分を除去したコントラスト成分がゲイン値g(p)により強調された画像となる。
また、トーンカーブにより輝度値の階調が圧縮された画像(輝度値Lc (nl)(p)からなる画像)は、元の画像(輝度値L(nl)(p)からなる画像)と比較してコントラストが抑制されている。また、コントラストが抑制される度合いはトーンカーブの傾きに依存し、トーンカーブの傾きが緩やかであるほど抑制の度合いが大きい。従って、トーンカーブの傾きの逆数に応じて、階調が圧縮された画像のコントラスを強調するように補正すれば、階調を圧縮する前の画像に近いコントラストを得ることができる。しかし、noiseLevel(nl)またはsaturationLevel(nl)付近の輝度値Lc (nl)(p)の画素についても同様の補正を行った場合、補正後の輝度値がnoiseLevel(nl)を下回ったり、saturationLevel(nl)を超えたりするクリッピングが生じ、逆に画像のディテールが失われてしまう場合がある。
図34を参照して後述するように、コントラストゲインカーブ算出部165により生成されるコントラストゲインカーブは、入力コントラスト成分(Lc (nl)(p)−Lcl (nl)(p))が0のときゲイン値g(p)が最大となり、入力コントラスト成分の絶対値が大きくなるにつれてゲイン値g(p)が単調減少し最後は0になる特性を有している。すなわち、入力コントラスト成分が大きいほど、コントラスト補正によりコントラストを強調する度合いが抑制される。また、コントラストゲインカーブは、入力コントラスト成分に対するゲイン値g(p)の変化率が、入力コントラスト成分の絶対値が大きくなるにつれて、途中まで大きくなり、その後、小さくなる特性を有している。従って、例えば、低輝度領域にスポット状にコントラストの大きい画素が存在する領域において、輝度の飽和が発生することが抑制される。
また、図33および図34を参照して後述するように、入力コントラスト成分(Lc (nl)(p)−Lcl (nl)(p))に対して出力コントラスト成分(Lu (nl)(p)−Lcl (nl)(p))が単調増加するようにゲイン値g(p)が設定されるので、階調逆転の発生が抑制される。
ステップS114において、コントラスト強調部392は、コントラスト補正した輝度値を出力して、コントラスト補正処理は終了する。具体的には、コントラスト強調部392は、コントラスト補正した輝度値Lu (nl)(p)を、階調補正部181R乃至181Bに出力する。
このように、コントラスト補正部173により、輝度値Lc (nl)(p)からなる画像のごく低周波域を除く、低中周波域から高周波域の成分のコントラストが強調される。したがって、高周波域の成分のコントラストだけを強調したときに目立つ、エッジ部分の局所的なオーバーシュートは発生せず、見た目にもごく自然にコントラストが強調された画像を得ることができる。また、上述したように、輝度の飽和の発生が抑制され、画像の白ツブレや黒ツブレの発生を抑制することができる。
次に、図29のフローチャートを参照して、図28のステップS112のゲイン値算出処理の詳細を説明する。
ステップS121において、ゲイン値算出部391のマッピング部412−1(図18)は、階調圧縮された輝度値と中間輝度レベルの差分に基づくゲイン値を算出する。具体的には、減算部411−1は、階調が圧縮された輝度値Lc (nl)(p)と中間輝度レベルLmid (nl)との差分を算出し、算出した差分値をマッピング部412−1に供給する。マッピング部412−1は、コントラストゲインカーブを表すルックアップテーブルをコントラストゲインカーブメモリ166から読み込む。マッピング部412−1は、読み込んだルックアップテーブルに基づいて、輝度値Lc (nl)(p)と中間輝度レベルLmid (nl)の差分値に対応するゲイン値g(p)を求める。すなわち、マッピング部412−1は、コントラストゲインカーブ、および、輝度値Lc (nl)(p)と中間輝度レベルLmid (nl)との差分値に基づいて、ゲイン値g(p)を求める。なお、中間輝度レベルLmid (nl)は定数なので、マッピング部412−1は、コントラストゲインカーブ、および、輝度値Lc (nl)(p)に基づいて、ゲイン値g(p)を求めるとも言える。マッピング部412−1は、求めたゲイン値g(p)を減算部413および選択部414に供給する。
ステップS122において、マッピング部412−2は、階調圧縮された輝度値と大局輝度値の差分に基づくゲイン値を算出する。具体的には、減算部411−2は、階調が圧縮された輝度値Lc (nl)(p)と大局輝度値Lcl (nl)(p)の差分を算出し、算出した差分値をマッピング部412−2に供給する。マッピング部412−2は、コントラストゲインカーブを表すルックアップテーブルをコントラストゲインカーブメモリ166から読み込む。マッピング部412−2は、読み込んだルックアップテーブルに基づいて、輝度値Lc (nl)(p)と大局輝度値Lcl (nl)(p)の差分値に対応するゲイン値g(p)を求める。すなわち、マッピング部412−1は、コントラストゲインカーブ、および、輝度値Lc (nl)(p)と大局輝度値Lcl (nl)(p)との差分値(コントラスト成分)に基づいて、ゲイン値g(p)を求める。マッピング部412−2は、求めたゲイン値g(p)を減算部413および選択部414に供給する。
ステップS123において、選択部414は、ゲイン値を選択し、ゲイン値算出処理は終了する。具体的には、減算部413は、マッピング部412−1からのゲイン値g(p)とマッピング部412−2からのゲイン値g(p)の差分を算出し、算出した差分値を選択部414に供給する。選択部414は、取得した差分値の符号に基づいて、マッピング部412−1からのゲイン値g(p)とマッピング部412−2からのゲイン値g(p)のうち小さい方を選択し、最終的なゲインg(p)としてコントラスト強調部392に供給する。
すなわち、この処理により、輝度値Lc (nl)(p)と中間輝度レベルLmid (nl)の差分値に対応するゲイン値g(p)、および、輝度値Lc (nl)(p)と大局輝度値Lcl (nl)(p)の差分値に対応するゲイン値g(p)のうち小さい方が選択される。すなわち、コントラスト成分(Lc (nl)(p)−Lcl (nl)(p))に加えて、輝度値Lc (nl)(p)に基づいて、ゲイン値g(p)が制御され、コントラスト成分の大きさに関わらず、輝度値Lc (nl)(p)が大きい高輝度の画素および輝度値Lc (nl)(p)が小さい低輝度の画素において、ゲイン値g(p)が減衰されるようになり、輝度の飽和をより確実に抑制することができる。
次に、図30のフローチャートを参照して、図23のステップS36のトーンカーブとγ_comp算出処理の詳細を説明する。
ステップS131において、トーンカーブ算出部163の輝度域算出部221(図9)は、暗・明輝度側ソーティングの結果から暗・明輝度側裾野値を求める。具体的には、輝度域算出部221のソーティング部243(図10)は、レジスタ252−kに格納されている輝度値を暗輝度側の裾野値Ldark (nl)に設定する。また、輝度域算出部221のソーティング部244は、レジスタ262−kに格納されている輝度値を明輝度側の裾野値Lbright (nl)に設定する。
例えば、間引き部241により1フレームあたりにサンプリングされる画素の数が1200個とし、ソーティング部243のレジスタ252の数を6個(k=6)とした場合、1フレーム内の全ての画素が処理された後、レジスタ252−1乃至252−6には、サンプリングされた画素のうち、輝度が暗い方から6番目までの画素(厳密に言えば、輝度値L(nl)(p)がnoiseLevel(nl)未満の画素は除かれているので、必ずしも6番目とは限らない)の輝度値L(nl)(p)が格納される。従って、フレーム全体の画素数に占めるレジスタ252−6に格納されている輝度値L(nl)(p)、すなわち、Ldark (nl)以下の輝度値の画素数の比率はほぼ0.5%(=6/1200)になると推定される。同様に、フレーム全体の画素数に占めるレジスタ262−6に格納されている輝度値L(nl)(p)、すなわち、Lbright (nl)以上の輝度値の画素数の比率はほぼ0.5%(=6/1200)になると推定される。
なお、裾野値Ldark (nl)または裾野値Lbright (nl)を設定するために用いる画素数の比率を、上述した0.5%以外の値とするようにしてもよい。また、ソーティング部243または244のレジスタの数は、サンプリングされる画素の数、および、裾野値Ldark (nl)または裾野値Lbright (nl)を設定するために用いる画素数の比率に応じて設定される。
ソーティング部243は、裾野値Ldark (nl)を時間平滑化部223−1に出力し、ソーティング部244は、裾野値Lbright (nl)を時間平滑化部223−2に出力する。
ステップS132において、トーンカーブ算出部163の平均レベル算出部222(図9)は、輝度合計値より平均レベルを算出する。具体的には、平均レベル算出部222の
平均値算出部282の除算部294(図11)は、レジスタ292に記憶されている輝度合計値、および、カウンタ293のカウンタ値(画素数)を読み込む。除算部294は、輝度合計値をカウンタ293のカウンタ値で割ることにより、輝度値L(nl)(p)の平均レベルLaverage (nl)を算出する。除算部294は、時間平滑化部223−3に平均レベルLaverage (nl)を出力する。
ステップS133において、時間平滑化部223は、裾野値および平均レベルを時間平滑化する。具体的には、時間平滑化部223−1の乗算部311(図12)は、裾野値Ldark (nl)に所定の平滑化係数sc1を乗じて、加算部313に出力する。時間平滑化部223−1の乗算部312は、1つ前のフレームにおける時間平滑化された裾野値Ldark-ts-pre (nl)をレジスタ314から読み込む。乗算部312は、裾野値Ldark-ts-pre (nl)に平滑化係数sc2を乗じて、加算部313に出力する。加算部313は、乗算部311から出力された値と乗算部312から出力された値を加算することにより裾野値Ldark (nl)を時間平滑化した裾野値Ldark-ts (nl)を算出する。すなわち、裾野値Ldark-ts (nl)は、以下の式(22)により表される。
Ldark-ts (nl)=sc1・Ldark (nl)+sc2・Ldark-ts-pre (nl) ・・・(22)
すなわち、平滑化係数sc1およびsc2により、現在のフレームの裾野値Ldark (nl)と1つ前のフレームの裾野値Ldark-ts-pre (nl)との間で平滑化が行われる。
加算部313は、裾野値Ldark-ts (nl)をスプライン発生部224に出力するとともに、レジスタ314に記憶させる。
同様に、時間平滑化部223−2は、以下の式(23)により、裾野値Lbright (nl)を時間平滑化した裾野値Lbright-ts (nl)を算出し、算出した裾野値Lbright-ts (nl)をスプライン発生部224に出力するとともに、レジスタ314に記憶させる。
Lbright-ts (nl)=sc1・Lbright (nl)+sc2・Lbright-ts-pre (nl) ・・・(23)
Lbright-ts-pre (nl):1つ前のフレームの時間平滑化された裾野値Lbright-ts (nl)
また、同様に、時間平滑化部223−3は、以下の式(24)により、平均レベルLaverage (nl)を時間平滑化した平均レベルLaverage-ts (nl)を算出し、算出した平均レベルLaverage-ts (nl)をスプライン発生部224に出力するとともに、レジスタ314に記憶させる。
Laverage-ts (nl)=sc1・Laverage (nl)+sc2・L average-ts-pre (nl) ・・・(24)
L average-ts-pre (nl):1つ前のフレームの時間平滑化された平均レベルL average-ts (nl)
これにより、裾野値および平均レベルの値が、フレーム間で急激に変化したり、振動したりすることが防止される。
ステップS135において、スプライン発生部224は、トーンカーブを生成する。以下、図31を参照して、トーンカーブの生成方法について説明する。図31は、スプライン発生部224により生成されるトーンカーブの一例を示している。なお、図31のグラフの横軸方向は、階調補正する前の入力輝度の対数値を表し、縦軸方向は、トーンカーブCL1による階調補正後の出力輝度の対数値を表している。
まず、スプライン発生部224のコントロールポイント設定部331(図13)は、9つのコントロールポイントP1乃至P9を設定する。コントロールポイントP1は、入力輝度が所定の最小レベルとなり、出力輝度が所定の最小レベルLbase (nl)となるポイントに設定される。コントロールポイントP2は、入力輝度がノイズレベルであると見なすことができる輝度である所定のノイズレベルLnoise (nl)となり、出力輝度が最小レベルLbase (nl)となるポイントに設定される。コントロールポイントP3は、入力輝度がノイズレベルLnoise (nl)の2倍の輝度値となり、出力輝度が最小レベルLbase (nl)となるポイントに設定される。
コントロールポイントP4は、入力輝度が暗輝度側の裾野値Ldark-ts (nl)となり、出力輝度がほぼ黒レベルの輝度値である輝度値Lankle (nl)となるポイントに設定される。コントロールポイントP5は、入力輝度が裾野値Ldark-ts (nl)の2倍の輝度値となり、出力輝度が輝度値Lankle (nl)の2倍の輝度値となるポイントに設定される。コントロールポイントP6は、入力輝度が入力輝度の平均レベルLaverage-ts (nl)となり、出力輝度が出力輝度の輝度範囲における所定のほぼ中間の中間輝度レベルLmid (nl)となるポイントに設定される。コントロールポイントP7は、入力輝度が明輝度側の裾野値Lbright-ts (nl)の2分の1の輝度値となり、出力輝度がほぼ白レベルの輝度値である輝度値Lshoulder (nl)の2分の1の輝度値となるポイントに設定される。コントロールポイントP8は、入力輝度が裾野値Lbright-ts (nl)となり、出力輝度が輝度値Lshoulder (nl)となるポイントに設定される。コントロールポイントP9は、入力輝度が所定の入力輝度の最大値となり、出力輝度が所定の出力輝度の最大値となるポイントに設定される。
コントロールポイント設定部331は、設定したコントロールポイントP1乃至P9の位置を示すコントロールポイントセットを曲線描画部332およびγ算出部333に供給する。曲線描画部332は、コントロールポイントP1乃至P9の各ポイント間を補間する3次スプライン曲線上の座標を算出することにより、トーンカーブCL1のルックアップテーブルを生成する。
なお、コントロールポイントP3が補助点として設定されることにより、トーンカーブCL1が確実にコントロールポイントP2またはその近傍を通過するようになる。すなわち、入力輝度がほぼノイズレベルLnoise (nl)である場合、出力輝度の最小レベルLbase (nl)にほぼ等しい値に階調変換されるようになる。また、コントロールポイントP5が補助点として設定されることにより、入力輝度がほぼ裾野値Ldark-ts (nl)となり、出力輝度がほぼ黒レベルとなる輝度値Lankle (nl)となる付近(コントロールポイントP4付近)のトーンカーブCL1の傾きが極端に急峻になったり緩やかになったりすることが防止される。また、コントロールポイントP7が補助点として設定されることにより、入力輝度がほぼ裾野値Ldark-ts (nl)となり、出力輝度がほぼ白レベルとなる輝度値Lshoulder (nl)付近(コントロールポイントP8付近)のトーンカーブCL1の傾きが極端に急峻になったり緩やかになったりすることが防止される。
従って、トーンカーブCL1は、コントロールポイントP6付近で傾きが緩やかになり、コントロールポイントP4およびP8付近で傾きがほぼ1に近くなる逆S字状の単調増加する曲線となる。すなわち、出力輝度が中間輝度レベルLmid (nl)付近において、階調の圧縮率が高くされ、出力輝度が高い(大きい)または低い(小さい)付近ほど、階調の圧縮率が低くされる。これは、トーンカーブCL1を適用して階調を圧縮した後、コントラスト補正を行うときに、上述したように、中間輝度レベルLmid (nl)付近の輝度成分ほどコントラストが強調され、階調を圧縮する前の画像に近いコントラストを得ることができる一方、輝度値のクリッピングを防止するために、最小値Lmin (nl)または最大値Lmax (nl)付近の輝度成分は、ほとんどコントラストが補正されないためである。
従って、トーンカーブCL1による階調圧縮およびステップS30のコントラスト補正を組み合わせることにより、画像のディテールをほぼ保持したまま、黒ツブレや白ツブレをほとんど発生させることなく、画像の階調の圧縮を行うことができる。
また、入力される画像データから算出された裾野値Ldark-ts (nl)、裾野値Lbright-ts (nl)、および、平均レベルLaverage-ts (nl)に基づいて、画像ごとにトーンカーブCL1が生成されるため、入力画像データの画素値(輝度値)の分布に応じて、適切に画像の階調を圧縮することができる。
なお、以下、ステップS134において、図31に示されるトーンカーブCL1が生成されたものとして処理の説明を行う。
ステップS135において、γ算出部333は、トーンカーブの形状よりγ_compパラメータを算出する。具体的には、γ算出部333は、コントロールポイントP6付近におけるトーンカーブCL1の傾きに近い値を得るために、コントロールポイントP5とP7を結ぶ線分SL1の傾きを算出し、算出した傾きをγ_compパラメータにとして設定する。
ステップS136において、曲線描画部332は、トーンカーブをメモリに格納する。すなわち、曲線描画部332は、生成したトーンカーブCL1を表すルックアップテーブルをトーンカーブメモリ164に記憶させる。
ステップS137において、γ算出部333は、γ_compパラメータを出力し、トーンカーブとγ_comp算出処理は終了する。すなわち、γ算出部333は、γ_compパラメータをコントラストゲインカーブ算出部165の入出力特性設定部341に出力する。
次に、図32のフローチャートを参照して、図23のステップS37のコントラストゲインカーブ算出処理の詳細を説明する。
ステップS141において、入出力特性設定部341は、入出力特性カーブを生成する。具体的には、入出力特性設定部341は、式(21)を変形した以下の式(25)の右辺のLc (nl)(p)−Lcl (nl)(p)(入力コントラスト成分)を入力とし、左辺のLu (nl)(p)−Lcl (nl)(p)(出力コントラスト成分)を出力とする入出力特性を表す入出力特性カーブを生成する。
Lu (nl)(p)−Lcl (nl)(p)=(g(p)+1)・(Lc (nl)(p)−Lcl (nl)(p)) ・・・(25)
ここで、コントラスト補正前と補正後で輝度値の大小関係が逆転しないように、すなわち、階調逆転が発生しないように、さらに換言すれば、上述した式(4)の右辺の値が有効輝度範囲内で0以下にならないように、入力コントラスト成分に対して出力コントラスト成分が単調増加する特性を有する入出力特性カーブが生成される。
また、コントラスト補正後の輝度値Lu (nl)(p)が飽和しないように、入力コントラスト成分の値が0付近において、傾きが最大かつ1より大きくなり、入力コントラスト成分の値が所定の範囲内において、入力コントラスト成分の絶対値が大きくなるほど傾きが緩やかになり、かつ、入力コントラストの値がその所定の範囲を超える範囲において、傾きがほぼ1となる特性を有する入出力特性カーブが生成される。
図33は、そのような入出力特性カーブの一例を示している。なお、図33の横軸方向は、入力コントラスト成分、すなわち、コントラスト補正前の輝度値Lc (nl)(p)−大局輝度値Lcl (nl)(p)の値を示し、縦軸方向は、出力コントラスト成分、すなわち、コントラスト補正後の輝度値Lu (nl)(p)−大局輝度値Lcl (nl)(p)の値を示している。また、直線SL21は、原点(0,0)を通り、傾きが1の直線を示しており、直線SL22は、原点(0,0)を通り、傾きがcontrastGain/γ_compの直線を示している。
なお、contrastGainは予め設定されている定数であり、contrastGainを1より大きく設定することで、階調圧縮前の輝度値L(nl)(p)からなる画像よりもコントラストを強調するようにコントラスト補正を行うことができる。
図33の入出力特性カーブCL21は、原点(0,0)を通過し、入力コントラスト成分の値が0付近の領域において、傾きが直線SL22にほぼ沿うように設定され、入力コントラスト成分の絶対値が大きい領域では、傾きが直線SL21に近づくように設定されたS字状の曲線となっている。
ここで、図33の入出力特性カーブCL21の生成方法について説明する。
入出力特性設定部341は、まず、コントロールポイントP21乃至P27の7つのコントロールポイントを設定する。
コントロールポイントP21は、入力コントラスト成分の値が負の領域において、入力コントラスト成分の絶対値がコントロールポイントP22より十分大きい直線SL21上のポイントに設定される。
コントロールポイントP22は、入力コントラスト成分の値が負の領域において、入出力特性カーブCL21が直線SL21に接する位置に設定される。上述した図31のトーンカーブCL1の傾きが、出力輝度がLankle (nl)となるコントロールポイントP4付近でほぼ1になることを考慮すると、例えば、コントロールポイントP22の入力コントラスト成分の値を、輝度値Lankle (nl)−中間輝度レベルLmid (nl)に設定するのが好適である。
コントロールポイントP23は、入力コントラスト成分の値が負の領域において、入力コントラスト成分の絶対値がコントロールポイントP22より小さい直線SL22上のポイントに設定される。例えば、図33に示されるように、コントロールポイントP22からの距離とコントロールポイントP24からの距離とが等しくなる直線SL22上のポイントが、コントロールポイント23として好適である。
コントロールポイントP24は、原点(0,0)に設定される。これにより、入出力特性カーブCL21が、必ず原点(0,0)、または、その近傍を通過するようになる。
コントロールポイントP25は、入力コントラスト成分の値が正の領域において、入力コントラスト成分の値がコントロールポイントP26より小さい直線SL22上のポイントに設定される。例えば、図33に示されるように、コントロールポイントP24からの距離とコントロールポイントP26からの距離とが等しくなる直線SL22上のポイントが、コントロールポイント25として好適である。
コントロールポイントP26は、入力コントラスト成分の値が正の領域において、入出力特性カーブCL21が直線SL21に接する位置に設定される。上述した図31のトーンカーブCL1の傾きが、出力輝度がLshoulder (nl)となるコントロールポイントP8付近でほぼ1になることを考慮すると、例えば、コントロールポイントP26の入力コントラスト成分の値を、輝度値Lshoulder (nl)−中間輝度レベルLmid (nl)に設定するのが好適である。
コントロールポイントP27は、入力コントラスト成分の値が正の領域において、入力コントラスト成分の絶対値がコントロールポイントP26より十分大きい直線SL21上のポイントに設定される。
そして、入出力特性設定部341は、コントロールポイントP21乃至P27の各ポイントに基づく区分的多項式曲線(例えば、B-Spline曲線またはBezier曲線など)を入出力特性カーブCL21として生成し、入出力特性カーブCL21のルックアップテーブルを生成する。
すなわち、入出力特性カーブCL21は、入力コントラスト成分に対して出力コントラスト成分が単調増加し、入力コントラスト成分の値が0付近において、傾きが最大かつ直線SL22の傾きであるcontrastGain/γ_compとほぼ等しくなり、コントロールポイントP22およびP26により規定される範囲(以下、補正範囲とも称する)であって、入力コントラスト成分の値がLankle (nl)−Lmid (nl)からLshoulder (nl)−Lmid (nl)までの範囲内において、入力コントラスト成分の絶対値が大きくなるほど傾きが緩やかになり、かつ、入力コントラスト成分に対する出力コントラスト成分の絶対値がその入力コントラスト成分の絶対値以上となり、補正範囲を超える範囲において、傾きがほぼ1となる特性を有する。
入出力特性設定部341は、生成した入出力特性カーブのルックアップテーブルを入出力特性カーブメモリ342に記憶させる。
なお、以下、ステップS141において、図33に示される入出力特性カーブCL21が生成されたものとして説明を行う。
ステップS142において、ゲイン特性算出部343は、入出力特性カーブをコントラストゲインカーブに変換する。具体的には、ゲイン特性算出部343は、入出力特性カーブCL21を表すルックアップテーブルを入出力特性カーブメモリ342から読み出す。ゲイン特性算出部343は、入出力特性カーブCL21における入力コントラスト成分と出力コントラスト成分の値の組み合わせを以下の式(26)に代入することにより、図34に示される入力コントラスト成分とゲイン値g(p)との関係を表すコントラストゲインカーブCL31を生成する。
g(p)=|Lu (nl)(p)−Lcl (nl)(p)|/|Lc (nl)(p)−Lcl (nl)(p)|−1・・・(26)
なお、式(26)は、式(25)を変形し、さらに、Lu (nl)(p)−Lcl (nl)(p)およびLc (nl)(p)−Lcl (nl)(p)を、それぞれその値の絶対値に置き換えたものである。
コントラストゲインカーブCL31においては、入力コントラスト成分が0のとき、ゲイン値g(p)がピーク値contrastGain/γ_comp−1となり、入力コントラスト成分の値がLankle (nl)−Lmid (nl)からLshoulder (nl)−Lmid (nl)までの範囲内において、入力コントラスト成分の絶対値が大きくなるにつれてゲイン値g(p)が0に近づき、入力コントラスト成分の値がLankle (nl)−Lmid (nl)からLshoulder (nl)−Lmid (nl)までの範囲を超える範囲において、ゲイン値g(p)が0となる。また、コントラストゲインカーブCL31は、入力コントラスト成分の値がLankle (nl)−Lmid (nl)からLshoulder (nl)−Lmid (nl)までの範囲内において、入力コントラスト成分に対するゲイン値g(p)の変化率が、入力コントラスト成分の絶対値が大きくなるにつれて、途中まで大きくなり、その後、小さくなる特性を有している。
ステップS143において、ゲイン特性算出部343は、コントラストゲインカーブをメモリに格納し、コントラストゲインカーブ算出処理は終了する。すなわち、ゲイン特性算出部343は、生成したコントラストゲインカーブCL31を表すルックアップテーブルをコントラストゲインカーブメモリ166に記憶させる。
次に、図35のフローチャートを参照して、図23のステップS38の縮小画像生成処理の詳細を説明する。
ステップS151において、縮小画像生成部167は、ブロック内の画素の輝度の平均値を算出する。具体的には、例えば、縮小画像生成部167の平均値算出部352−1(図15)は、自分が保持している1番目のブロック内の画素の輝度合計値を、ブロック内の画素数で割ることにより、1番目のブロックの輝度の平均値を算出する。
ステップS152において、縮小画像生成部167は、ブロックの輝度の平均値をメモリ上の対応する画素の位置に格納する。具体的には、例えば、平均値算出部352−1は、算出した1番目のブロックの輝度の平均値を、縮小画像メモリ168上の対応する画素(例えば、いちばん左上の画素)の位置に格納させる。
ステップS153において、縮小画像生成部167は、全てのブロックを処理したか否かを判定する。まだ、全てのブロックの処理をしていないと判定された場合、処理はステップS151に戻り、ステップS153において、全てのブロックの処理をしたと判定されるまで、ステップS151乃至S153の処理が繰り返し実行される。すなわち、2番目以降のブロックについて順番に、同様に輝度の平均値が算出され、算出された平均値が縮小画像メモリ168上の対応する画素の位置に格納される。
ステップS153において、全てのブロックの処理が終了したと判定された場合、縮小画像生成処理は終了する。
これにより、輝度値L(nl)(p)からなる画像を横wr×縦hr個の複数のブロックに分割し、分割したブロックごとの輝度値L(nl)(p)の平均値を、ブロックの順番に配列した横wr×縦hr画素の縮小画像が生成される。
以上のようにして、画像のディテールをほぼ保持したまま、黒ツブレや白ツブレをほとんど発生させることなく、かつ、階調の逆転を発生させることなく、画像の階調の圧縮を行うことができる。また、入力画像データの画素値(輝度値)の分布に応じて、適切に画像の階調を圧縮することができる。
さらに、1フレーム前の処理において生成または算出された縮小画像、トーンカーブ、および、コントラストゲインカーブを用いて、階調変換を行うことにより、同じフレーム内で生成または算出した縮小画像、トーンカーブ、および、コントラストゲインカーブを用いて、階調変換をする場合と比較して、縮小画像の生成、並びに、トーンカーブおよびコントラストゲインカーブの算出するための処理の遅延時間がほとんど発生しないため、処理時間を短縮することができる。また、縮小画像の生成、または、トーンカーブおよびコントラストゲインカーブの算出の終了を待機するために、例えば、1フレーム分の画像を保持する必要がないため、メモリの使用量を削減することができる。
なお、縮小画像、トーンカーブ、および、コントラストゲインカーブは、いずれも画像の細部に依存しない情報であるため、1フレーム前の情報を使用することによる時間のずれはほとんど問題にならない。例えば、被写体のエッジ情報のように高周波成分を含む情報であれば、動的な映像において、フレーム間の被写体の位置ずれが発生する場合があり、位置ずれを補償するような処理が必要であるが、縮小画像、トーンカーブ、および、コントラストゲインカーブについては、そのような問題は発生しない。
また、同じフレーム内で生成または算出した縮小画像、トーンカーブ、および、コントラストゲインカーブを用いて、階調変換をする場合でも、縮小画像の生成と、トーンカーブおよびコントラストゲインカーブの算出とを並列して行うことができるため、処理時間を短縮することができる。
ここで、図36を参照して、図17のゲイン値算出部391の他の実施の形態について説明する。
図36は、図17のゲイン値算出部391の他の実施の形態を示すブロック図である。図36のゲイン値算出部391は、減算部411−1,411−2、マッピング部412−1,412−2、および、乗算部501を含むように構成される。なお、図中、図18と対応する部分については同じ符号を付してあり、処理が同じ部分に関しては、その説明は繰り返しになるので省略する。
乗算部501は、マッピング部412−1からのゲイン値g(p)とマッピング部412−2からのゲイン値g(p)を乗算し、乗算した値を最終的なゲイン値g(p)としてコントラスト強調部392に供給する。
輝度飽和が生じやすい状況においては、入力コントラスト成分が大きくなるか、または、輝度値が最小値または最大値に近くなるため、マッピング部412−1により求められるゲイン値g(p)、および、マッピング部412−2により求められるゲイン値g(p)のうち、いずれか一方が0に近い値になる。従って、それらの2つのゲイン値g(p)の積を算出し、最終的なゲイン値g(p)とすることにより、輝度飽和が生じやすい状況でゲイン値g(p)が大きくなることが防止される。
なお、以上の説明では、マッピング部412−1およびマッピング部412−2が、同じコントラストゲインカーブを用いてゲイン値g(p)を求める例を示したが、それぞれ別のゲイン特性に基づいてゲイン値g(p)を求めるようにしてもよい。例えば、マッピング部412−1が、上述した特許文献1の図3のゲイン特性および輝度値Lc (nl)(p)に基づいて、ゲイン値g(p)を求め、マッピング部412−2が、上述したステップS122の処理と同様に、図34のコントラストゲインカーブCL31、および、輝度値Lc (nl)(p)と大局輝度値Lcl (nl)(p)との差分値(コントラスト成分)に基づいて、ゲイン値g(p)を求めるようにすることが可能である。
次に、図37乃至図43を参照して、本発明の第2の実施の形態について説明する。
図37は、本発明の第2の実施の形態であるPC(パーソナルコンピュータ)システム601の外観構成の例を示す外観構成図であり、図38は、PCシステム601の機能の構成を示すブロック図である。
PCシステム601は、例えば、市販の一般的なPCシステムと同様に、PC(パーソナルコンピュータ)611、液晶ディスプレイ612、キーボード613、マウス614、メディアリーダライタ615、および、プリンタ616を含むように構成される。
PC611は、例えば、市販の一般的なアーキテクチャを有するPCにより構成され、図38にその一部が示されるように、CPU621、メモリ622、表示制御部623、および、入出力制御部624を含むように構成される。CPU621、メモリ622、表示制御部623、および、入出力制御部624は、バスを介して相互に接続されている。
CPU621は、プログラムの実行、並びに、PC611内の各部およびPC611に接続されている各装置の制御などを行う演算装置である。
メモリ622は、例えば、ハードディスク、RAMなどにより構成され、CPU621が実行する各種のプログラムを格納したり、CPU621の処理において必要となるデータを一時的に格納したりする。
表示制御部623は、例えば、グラフィックスコントローラおよびビデオインタフェースなどにより構成され、CPU621の制御の基に、表示制御部623に接続されている液晶ディスプレイ612に表示させる画像を生成し、生成した画像を液晶ディスプレイ612に供給し、表示させる。
入出力制御部624は、例えば、USB(Universal Serial Bus)コントローラおよびUSBインタフェースなどにより構成され、キーボード613、マウス614、メディアリーダライタ615、および、プリンタ616が接続されている。入出力制御部624は、CPU621の制御の基に、CPU622と入出力制御部624に接続されている装置との間の通信を制御する。
また、PC611には、所定の画像補正プログラムがインストールされている。図41などを参照して後述するように、画像が記録されている記録メディア602がメディアリーダライタ615に装着されたとき、CPU621は、その画像補正プログラムを起動し、ユーザの操作に応じて、画像のコントラストを補正する処理を実行し、コントラスト補正した画像を記録メディア602に記録する。なお、このコントラスト補正処理は、従来のアンシャープマスキング処理をベースにして、上述した階調変換部143のコントラスト補正の手法を組み合わせた処理を実現するものである。
図39は、CPU621が画像補正プログラムを実行することにより実現される機能の構成の例を示すブロック図である。CPU621が画像補正プログラムを実行することにより、画像処理部631およびUI処理部633を含む機能が実現される。なお、図中、図7、図14、および、図17と対応する部分については同じ符号を付してあり、処理が同じ部分に関しては、その説明は繰り返しになるので省略する。
画像処理部631は、図41などを参照して後述するように、画像のコントラストを補正する処理を実行する。画像処理部631は、輝度算出部161、輝度画像メモリ641、平滑化部642、入出力特性設定部643、入出力特性カーブメモリ342、ゲイン特性算出部343、コントラストゲインカーブメモリ166、ゲイン値算出部391、コントラスト強調部392、補正部644R乃至644Bを含むように構成される。
輝度算出部161は、記録メディア602から読み出され、メモリ622に格納されている画像のうちユーザにより選択された画像(以下、選択画像と称する)の画素値R(p),G(p),B(p)を読み出し、図43を参照して後述するように、画素値R(p),G(p),B(p)から、その画素位置pに対応する輝度値L(p)を算出し、輝度画像メモリ641に記憶させる。
平滑化部642は、例えば、所定の手法の平滑化処理を行うことにより入力画像の低周波域成分を抽出する平滑化フィルタにより構成される。平滑化部642は、輝度画像メモリ641に格納されている輝度値L(p)からなる画像(以下、輝度画像とも称する)を平滑化することにより、輝度画像の各画素の低周波成分である輝度低周波成分Ll(p)を算出し、ゲイン値算出部391およびコントラスト強調部392に出力する。
入出力特性設定部643は、図41を参照して後述するように、ユーザにより設定された、図33の入出力特性カーブCL21を生成するためのパラメータである直線SL22の傾き、コントロールポイントP22の位置、および、コントロールポイントP26の位置をUI処理部633から取得し、取得したパラメータに基づいて、入出力特性カーブCL21を生成する。すなわち、入出力特性設定部643は、ユーザにより指定された、入力コントラスト成分が0付近における入出力特性カーブCL21の傾き、並びに、コントロールポイントP22およびコントロールポイントP26により規定される補正範囲に基づいて、入出力特性カーブCL21を生成する。入出力特性設定部643は、生成した入出力特性カーブCL21を表すルックアップテーブルをUI処理部633に供給するとともに、入出力特性カーブメモリ342に記憶させる。
ゲイン特性算出部343は、入出力特性カーブCL21を表すルックアップテーブルを入出力特性カーブメモリ342から読み出す。ゲイン特性算出部343は、入出力特性カーブCL21に基づいて、上述した図34に示されるコントラストゲインカーブCL31を生成する。ゲイン特性算出部343は、生成したコントラストゲインカーブCL31を表すルックアップテーブルをコントラストゲインカーブメモリ166に記憶させる。
ゲイン値算出部391は、輝度画像メモリ641から、輝度値L(p)を読み出し、コントラストゲインカーブCL31を表わすルックアップテーブルをコントラストゲインカーブメモリ166から読み出す。ゲイン値算出部391は、図43を参照して後述するように、輝度値L(p)、輝度低周波成分Ll(p)、および、コントラストゲインカーブCL31に基づいて、ゲイン値g(p)を算出する。ゲイン値算出部391は、算出したゲイン値g(p)をコントラスト強調部392に出力する。
なお、画像処理部631のゲイン値算出部391として、上述した図18および図36のどちらの構成を採用するようにしてもよい。
コントラスト強調部392は、輝度画像メモリ641から輝度値L(p)を読み出す。コントラスト強調部392は、図43を参照して後述するように、輝度画像のコントラストを補正し、コントラスト補正した輝度値Lu(p)を補正部644R乃至644Bに供給する。
補正部644R乃至644Bは、それぞれ、選択画像の画素値R(p),G(p),B(p)をメモリ622から読み出し、図43を参照して後述するように、画素値R(p),G(p),B(p)のコントラストを補正する。補正部644R乃至644Bは、それぞれ、コントラスト補正した画素値Ru(p),Gu(p)、Bu(p)を補正画像メモリ632に記憶させる。
なお、以下、補正部644R乃至644Bを個々に区別する必要がない場合、単に、補正部644と称する。
UI処理部633は、図41などを参照して後述するように、画像補正プログラムのユーザインタフェースの部分の処理を行う。例えば、UI処理部633は、表示制御部623を制御して、画像補正プログラムのGUI(Graphical User Interface)であるGUIパネル701(図42を参照して後述)、コントラスト補正した画素値Ru(p),Gu(p)、Bu(p)からなる画像(以下、補正画像とも称する)などを液晶ディスプレイ612に表示させる。また、例えば、UI処理部633は、ユーザがキーボード613またはマウス614を操作した場合、その操作に関する情報を入出力制御部624を介して取得し、GUIパネル701の表示内容を変更したり、ユーザにより設定された入出力特性カーブCL21を生成するためのパラメータを入出力特性設定部643に供給したりする。
なお、コントラストゲインカーブメモリ166、入出力特性カーブメモリ342、補正画像メモリ632、および、輝度画像メモリ641は、それぞれ、例えば、メモリ622の領域の一部により実現される。
図40は、補正部644の機能の構成の例を示すブロック図である。補正部644は、除算部671および乗算部672を含むように構成される。
除算部671は、画素値R(p)、G(p)、または、B(p)を輝度値L(p)で割った除算値を求め、乗算部672に出力する。
乗算部672は、除算部671により算出された除算値に輝度低周波成分Ll(p)を乗じ、その結果得られた値を、コントラスト補正した画素値Ru(p),Gu(p)、または、Bu(p)として補正画像メモリ632に記憶させる。
次に、図41のフローチャートを参照して、PCシステム601により実行される画像補正処理について説明する。なお、この処理は、例えば、メディアリーダライタ615に記録メディア602が装着され、PC611のCPU621が、画像補正プログラムを起動したとき開始される。
ステップS201において、メディアリーダライタ615は、UI処理部633の制御の基に、記録メディア602から画像を読み込む。具体的には、UI処理部633は、メディアリーダライタ615および入出力制御部624を介して、記録メディア602に記録されているデータの内容を示す情報を取得する。UI処理部633は、取得した情報に基づいて、記録メディア602に記録されている画像をメディアリーダライタ615に読み込ませ、入出力制御部624を介して、メモリ622に記憶させる。
ステップS202において、UI処理部633は、全画像のサムネイルを並べて表示させる。具体的には、UI処理部633は、メモリ622に読み込まれた全ての画像について、各画像の表示サイズを小さくしたサムネイルを生成する。UI処理部633は、表示制御部623を制御して、画像補正プログラムのGUIであるGUIパネルを液晶ディスプレイ612に表示させる。
図42は、このとき表示されるGUIパネルの一例を示している。図42のGUIパネル701は、例えば、液晶ディスプレイ612の画面いっぱいに表示され、GUIパネル701内には、サムネイル表示領域711、スクロールバー712、スクロールボタン713U,713D、プレビュー表示領域714、補正特性表示領域715、スライダ716乃至718、および、OKボタン719が表示される。
GUIパネル701の左端のサムネイル表示領域711には、記録メディア602に記録されている画像のサムネイルが縦1列に並べられて表示される。図42においては、サムネイル表示領域711に、サムネイル画像TN1乃至TN4の4つのサムネイルが表示されている例が示されている。サムネイルが5つ以上ある場合は、サムネイル表示領域711の右側に配置されているスクロールバー712、スクロールボタン713U、または、スクロールボタン713Dを操作することにより、サムネイル表示領域711内に表示されるサムネイルの表示を上下にスクロールさせることができる。
また、ユーザは、サムネイル表示領域711に表示されているサムネイルのうち1つを選択することができ、選択されているサムネイルの周囲には枠Fが表示される。図42においては、サムネイルTN1が選択されている例が示されており、サムネイルTN1の周囲に枠Fが表示されている。
GUIパネル701のほぼ中央に配置されているプレビュー表示領域714には、サムネイル表示領域711において選択されているサムネイルに対応するプレビュー画像、すなわち、ユーザにより選択された選択画像のプレビュー画像が、サムネイルより大きなサイズで表示される。図42においては、現在選択されているサムネイルTN1に対応するプレビュー画像GPが、プレビュー表示領域714に表示されている。なお、サムネイル表示領域711においてサムネイルが選択されていない場合には、プレビュー表示領域714にプレビュー画像は表示されない。
GUIパネル701の右下に配置されている補正特性表示領域715には、図33を参照して上述した入出力特性カーブCL21が表示される。ユーザは、補正特性表示領域715の上部に配置されているスライダ716乃至718を左右にスライドさせることにより、それぞれ、直線SL22の傾き(すなわち、contrastGain/γ_compの値)、コントロールポイントP22の位置、および、コントロールポイントP26の位置を調整し、入出力特性カーブCL21の形状を調整することができる。また、それに合わせて、補正特性表示領域715に表示されている入出力特性カーブCL21の形状が変化するとともに、プレビュー表示領域714のプレビュー画像が、調整された入出力特性カーブCL21を用いてコントラスト補正が施された画像に更新される。すなわち、ユーザは、実際に画像および入出力特性カーブCL21を目で確認しながら、コントラスト補正に用いる各パラメータの調整を行うことができる。そして、ユーザは、スライダ718の下に配置されているOKボタン719を押下することにより、補正特性表示領域715に表示されている入出力特性カーブCL21によるコントラスト補正の実行を確定し、コントラスト補正が施された画像を記録メディア602に記録させることができる。
また、GUIパネル701には、カーソル720が表示され、例えば、ユーザは、キーボード613またはマウス614を用いて、カーソル720を移動させたり、カーソル720により任意の位置を指定したりすることにより、GUIパネル701に対する操作を行う。
ステップS203において、UI処理部633は、記録メディア602が取り外されたか否かを判定する。UI処理部633は、記録メディア602が取り外されたことを示す情報がメディアリーダライタ615から出力されていない場合、記録メディア602が取り外されていないと判定し、処理はステップS204に進む。
ステップS204において、UI処理部633は、ユーザの操作が行われたか否かを判定する。UI処理部633は、GUIパネル701に対してユーザにより行われた操作に関する情報がキーボード613およびマウス614から出力されていない場合、ユーザの操作が行われていないと判定し、処理はステップS203に戻る。
その後、ステップS203において、記録メディア602が取り外されたと判定されるか、ステップS204において、ユーザの操作が行われたと判定されるまで、ステップS203およびS204の処理が繰り返し実行される。
一方、例えば、ユーザがキーボード613またはマウス614を用いて、GUIパネル701に対する操作を行い、その操作に関する情報が、入出力制御部624を介して、キーボード613またはマウス614からUI処理部633に入力された場合、ステップS204において、UI処理部633は、ユーザの操作が行われたと判定し、処理はステップS205に進む。
ステップS205において、UI処理部633は、キーボード613またはマウス614からの情報に基づいて、サムネイルがクリックされたか否かを判定する。サムネイル表示領域711に表示されているサムネイルのうちいずれかがカーソル720によりクリックされたと判定された場合、処理はステップS206に進む。
ステップS206において、UI処理部633は、すでに選択されているサムネイルであるか否かを判定する。UI処理部633が、キーボード613またはマウス614からの情報に基づいて、ユーザによりクリックされたサムネイルが、現在選択されていないサムネイルであると判定した場合、処理はステップS207に進む。
ステップS207において、UI処理部633は、サムネイルを選択状態にする。すなわち、UI処理部633は、表示制御部623を制御して、サムネイル表示領域711において、ユーザによりクリックされたサムネイルの周囲に枠Fを表示させる。また、それまで他のサムネイルが選択されていた場合、UI処理部633は、表示制御部623を制御して、それまで選択されていたサムネイルの周囲に表示されていた枠Fを消去する。
ステップS208において、UI処理部633は、プレビュー表示領域714の画像を変更する。すなわち、UI処理部633は、表示制御部623を制御して、プレビュー表示領域714内に、新たに選択されたサムネイルに対応するプレビュー画像を表示させる。その後、処理はステップS203に戻り、ステップS203以降の処理が実行される。
一方、ステップS206において、ユーザによりクリックされたサムネイルが、すでに選択されているムネイルであると判定された場合、処理はステップS203に戻り、ステップS203以降の処理が実行される。
また、ステップS205において、サムネイル表示領域711に表示されているサムネイルのうちいずれもカーソル720によりクリックされていないと判定された場合、処理はステップS209に進む。
ステップS209において、UI処理部633は、キーボード613またはマウス614からの情報に基づいて、スクロールバー712、または、スクロールボタン713U,713Dが操作されたか否かを判定する。スクロールバー712、または、スクロールボタン713U,713Dが操作されたと判定された場合、処理はステップS210に進む。
ステップS210において、UI処理部633は、サムネイルの表示をスクロールする。すなわち、UI処理部633は、表示制御部623を制御して、スクロールバー712、スクロールボタン713U、または、スクロールボタン713Dに対する操作に応じて、サムネイル表示領域711内のサムネイルの表示を上方向または下方向にスクロールさせる。その後、処理はステップS203に戻り、ステップS203以降の処理が実行される。
一方、ステップS209において、スクロールバー712、および、スクロールボタン713U,713Dが操作されていないと判定された場合、処理はステップS211に進む。
ステップS211において、UI処理部633は、キーボード613またはマウス614からの情報に基づいて、スライダ716乃至718が操作されたか否かを判定する。スライダ716乃至718のいずれかが操作されたと判定された場合、処理はステップS212に進む。
ステップS212において、入出力特性設定部643は、変更されたパラメータを入出力特性カーブCL21に適用する。具体的には、UI処理部633は、ユーザがスライダ716乃至718のいずれかをスライドさせることにより変更したパラメータ(直線SL22の傾き、コントロールポイントP22の位置、または、コントロールポイントP26の位置)の値を示す情報を入出力特性設定部643に供給する。入出力特性設定部643は、取得したパラメータに基づいて、入出力特性カーブCL21の形状を変更する。入出力特性設定部643は、変更した入出力特性カーブCL21のルックアップテーブルをUI処理部633に供給するとともに、入出力特性カーブメモリ342に記憶させる。
ステップS213において、UI処理部633は、入出力特性カーブCL21を再描画する。すなわち、UI処理部633は、入出力特性設定部643から取得したルックアップテーブルに基づいて、表示制御部623を制御して、変更したパラメータを適用した入出力特性カーブCL21をGUIパネル701の補正特性表示領域715に表示させる。
ステップS214において、画像処理部631は、コントラスト補正処理を実行する。コントラスト補正処理の詳細については、図43を参照して後述するが、この処理により、補正特性表示領域715に表示されている入出力特性カーブCL21に基づいて、選択画像に対してコントラスト補正を施した補正画像が生成され、補正画像メモリ632に記憶される。
ステップS215において、UI処理部633は、プレビュー表示領域714の画像を更新する。すなわち、UI処理部633は、表示制御部623を制御して、補正画像メモリ632に記憶されている補正画像に基づくプレビュー画像をプレビュー表示領域714に表示させる。その後、処理はステップS203に戻り、ステップS203以降の処理が実行される。
一方、ステップS211において、スライダ716乃至718が操作されていないと判定された場合、処理はステップS216に進む。
ステップS216において、UI処理部633は、キーボード613またはマウス614からの情報に基づいて、OKボタン719が押下されたか否かを判定する。OKボタン719が押下されたと判定された場合、処理はステップS217に進む。
ステップS217において、UI処理部633は、記録メディア602に補正画像を記録させる。具体的には、UI処理部633は、補正画像メモリ632から補正画像を読み出し、入出力制御部624を介して、メディアリーダライタ615に供給する。メディアリーダライタ615は、UI処理部633の制御の基に、記録メディア602に記録されているコントラスト補正前の選択画像を補正画像に置き換える。
ステップS218において、UI処理部633は、選択画像のサムネイルの表示を更新する。具体的には、UI処理部633は、補正画像のサムネイルを生成し、表示制御部623を制御して、現在サムネイル表示領域711に表示されている選択画像のサムネイルを、新たに生成した補正画像に基づくサムネイルに置き換えて表示させる。その後、処理はステップS203に戻り、ステップS203以降の処理が実行される。
一方、ステップS216において、OKボタン719が押下されていないと判定された場合、処理はステップS203に戻り、ステップS203以降の処理が実行される。
また、ステップS203において、記録メディア602がメディアリーダライタ615から取り外されたと判定された場合、画像補正処理は終了する。
次に、図43のフローチャートを参照して、図41のステップS214のコントラスト補正処理の詳細について説明する。
ステップS231において、ゲイン特性算出部343は、上述した図32のS142と同様の処理により、入出力特性カーブメモリ342に記憶されている入出力特性カーブCL21をコントラストゲインカーブCL31に変換する。ゲイン特性算出部343は、生成したコントラストゲインカーブCL31を表すルックアップテーブルをコントラストゲインカーブメモリ166に記憶させる。
ステップS232において、輝度算出部161は、上述した図22のステップS24と同様の処理により、輝度値を算出する。ただし、輝度算出部161は、ステップS24における画素位置pの画素値Rw(p),Gw(p)およびBw(p)の代わりに、選択画像の画素位置pの画素値R(p),G(p)およびB(p)をメモリ622から読み込み、画素値R(p),G(p)およびB(p)を用いて、画素位置pに対応する輝度値L(p)を算出する。輝度算出部161は、算出した輝度値L(p)を輝度画像メモリ641に記憶させる。
ステップS233において、輝度算出部161は、フレーム内の全ての画素を処理したか否かを判定する。まだフレーム内の全ての画素を処理していないと判定された場合、処理はステップS232に戻り、ステップS233において、フレーム内の全ての画素を処理したと判定されるまで、ステップS232およびS233の処理が繰返し実行される。すなわち、選択画像の全ての画素の輝度値が、1画素ずつ順番に(例えば、ラスタスキャン順に)算出され、選択画像の輝度値からなる輝度画像が輝度画像メモリ641に格納される。
一方、ステップS233において、フレーム内の全ての画素を処理したと判定された場合、処理はステップS234に進む。
ステップS234において、平滑化部642は、輝度低周波成分を算出する。具体的には、平滑化部642は、次に平滑化する輝度画像の画素位置pおよびその近傍の画素の輝度値を輝度画像メモリ641から読み出す。平滑化部642は、読み出した輝度値に対して所定の平滑化処理を施し、画素位置pの輝度低周波成分Ll(p)を算出し、ゲイン値算出部391およびコントラスト強調部392に供給する。
ステップS235において、ゲイン値算出部391は、上述した図28のステップS112と同様の処理により、ゲイン値算出処理を行う。ただし、ゲイン値算出部391は、ステップS112における輝度値Lc (nl)(p)および大局輝度値Lcl (nl)(p)の代わりに、輝度値L(p)および輝度低周波成分Ll(p)を用いて、画素位値pに対するゲイン値g(p)を求める。ゲイン値算出部391は、算出したゲイン値g(p)をコントラスト強調部392に供給する。
ステップS236において、コントラスト強調部392は、上述した図28のステップS113の処理と同様に、コントラスト補正した輝度値を算出する。ただし、コントラスト強調部392は、ステップS113における輝度値Lc (nl)(p)および大局輝度値Lcl (nl)(p)の代わりに、輝度値L(p)および輝度低周波成分Ll(p)を用いて、以下の式(27)により、画素位値pのコントラスト補正した輝度値Lu ((p)を算出する。
Lu (nl)(p)=(g(p)+1)・(L(nl)(p)−Ll (nl)(p))+Ll (nl)(p)
=g(p)・(L(nl)(p)−Ll (nl)(p))+L(nl)(p) ・・・(27)
従って、輝度値Lu (nl)(p)からなる画像は、輝度値L(nl)(p)からなる輝度画像の低周波成分を除去した周波数成分であるコントラスト成分がゲイン値g(p)により強調された画像となる。従って、上述した図28のステップS113の処理と同様に、コントラスト補正に伴う階調逆転、および、輝度値の飽和の発生が抑制される。
コントラスト強調部392は、算出した輝度値Lu ((p)を補正部644R乃至644Bの乗算部672に供給する。
ステップS237において、補正部644R乃至644Bは、コントラスト補正したRGB値を算出する。具体的には、補正部644Rの除算部671は、メモリ622から選択画像の画素位置pの画素値R(p)を読み出し、画素値R(p)を輝度値L(p)で割った除算値を求め、乗算部672に供給する。乗算部672は、除算部671により算出された除算値にコントラスト補正した輝度値Lu(p)を乗じた乗算値を求め、求めた乗算値をコントラスト補正した画素値Ru(p)として、補正画像メモリ632に記憶させる。すなわち、画素値Ru(p)は、以下の式(28)に示されるように、画素値R(p)にコントラスト補正後の輝度値Lu(p)とコントラスト補正前の輝度値L(p)の比率を乗じた値となる。
Ru(p)=R(p)・(Lu(p)/L(p)) ・・・(28)
補正部644Gおよび644Bも同様に、それぞれ、以下の式(29)および式(30)により、コントラスト補正した画素値Gu(p)およびBu(p)を求め、補正画像メモリ632に記憶させる。
Gu(p)=G(p)・(Lu(p)/L(p)) ・・・(29)
Bu(p)=B(p)・(Lu(p)/L(p)) ・・・(30)
ステップS238において、平滑化部642は、フレーム内の全ての画素を処理したか否かを判定する。まだフレーム内の全ての画素を処理していないと判定された場合、処理はステップS234に戻り、ステップS238において、フレーム内の全ての画素を処理したと判定されるまで、ステップS234乃至S238の処理が繰返し実行される。すなわち、選択画像の全ての画素について、1画素ずつ順番に(例えば、ラスタスキャン順に)コントラスト補正が施される。
一方、ステップS238において、フレーム内の全ての画素を処理したと判定された場合、コントラスト補正処理は終了する。
以上のようにして、黒ツブレや白ツブレをほとんど発生させることなく、かつ、階調の逆転を発生させることなく、画像のコントラストを補正することができる。
なお、以上にフローチャートを参照して説明した処理の順番は、その一例であり、本発明の本質に関わらない範囲で、処理の順序を入れ替えたり、複数の処理を同時に並列して行うようにしてもよい。例えば、本発明の第1の実施の形態において、入力画像のR、G、B成分を非線形変換した後に、輝度値を算出するようにしてもよい。また、非線形変換を行う前に、縮小画像を生成するようにしてもよい。さらに、輝度値のヒストグラムの裾野値および平均レベルを、非線形変換する前の輝度値のヒストグラムから求めた後に、非線形変換するようにしてもよい。
また、類似の処理を行う構成を統合したり、共有化するようにしてもよい。例えば、マッピング部172−1,172−2、非線形変換部162のマッピング部201、および、非線形逆変換部182の逆マッピング部451を共通の回路を用いて実現することが可能である。
さらに、以上の説明では、トーンカーブを生成するために必要な輝度値の平均レベルを、画像全体の輝度値の平均値とするようにしたが、例えば、縮小画像の輝度値の平均値とするようにしてもよい。これにより、平均レベルの算出時間が短縮される。また、例えば、多くのカメラの制御系に設けられているAE(Auto Exposure)制御機構を利用して、画像の全体または一部の明るさをAE制御系により計測するようにしたり、AE制御系が主要な被写体と判断した被写体領域の明るさを計測して、計測された明るさに基づく輝度値を平均レベルとするようにしてもよい。さらに、ユーザに画像内の所望の領域を指定させ、指定された領域に重点をおいた平均レベルを算出することにより、ユーザが所望するものにより近いトーンカーブを生成するようにすることも可能である。
なお、本発明は、上述した実施の形態以外の、画像の輝度または色値(画素値)の階調の圧縮、または、画像のコントラスト補正を行う装置(例えば、画像再生装置、画像記録装置、画像表示装置、画像出力装置など)やコンピュータプログラムなどに適用することができる。例えば、ダイナミックレンジの広い入力画像をそれより狭いダイナミックレンジのディスプレイやプリンタなどに適切な明るさまたは色で出力されるようにするための階調圧縮技術に適用することができる。
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
図44は、汎用のパーソナルコンピュータ900の内部の構成例を示す図である。CPU(Central Processing Unit)901は、ROM(Read Only Memory)902に記憶されているプログラム、または記録部908からRAM(Random Access Memory)903にロードされたプログラムに従って各種の処理を実行する。RAM903にはまた、CPU901が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU901、ROM902、およびRAM903は、バス904を介して相互に接続されている。このバス904にはまた、入出力インタフェース905も接続されている。
入出力インタフェース905には、ボタン、スイッチ、キーボードあるいはマウスなどで構成される入力部906、CRT(Cathode Ray Tube)やLCD(Liquid Crystal Display)などのディスプレイ、並びにスピーカなどで構成される出力部907、ハードディスクなどで構成される記録部908、およびモデムやターミナルアダプタなどで構成される通信部909が接続されている。通信部909は、インターネットを含むネットワークを介して通信処理を行う。
入出力インタフェース905にはまた、必要に応じてドライブ910が接続され、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリなどよりなるリムーバブルメディア911が適宜装着され、そこから読み出されたコンピュータプログラムが、記録部908にインストールされる。
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを記録する記録媒体は、図44に示されるように、装置本体とは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini-Disc)(登録商標)を含む)、もしくは半導体メモリなどよりなるリムーバブルメディア911により構成されるだけでなく、装置本体にあらかじめ組み込まれた状態でユーザに提供される、プログラムが記録されているROM903または記録部908に含まれるハードディスクなどで構成される。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
また、本明細書において、システムの用語は、複数の装置、手段などより構成される全体的な装置を意味するものとする。
さらに、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
従来の階調変化処理を行う階調変換部の機能の構成の例を示すブロック図である。 図1のコントラスト補正部の機能の構成の例を示すブロック図である。 従来のコントラスト補正に用いられるゲイン値の特性を示すグラフである。 従来のフォトレタッチソフトウエアのアンシャープマスキング処理に用いられるゲイン値の特性の例を示すグラフである。 本発明を適用したデジタルビデオカメラの一実施の形態を示すブロック図である。 図2のDSPブロックの機能の構成の例を示すブロック図である。 図6の階調変換部の機能の構成の例を示すブロック図である。 図7の非線形変換部の機能の構成の例を示すブロック図である。 図7のトーンカーブ算出部の機能の構成の例を示すブロック図である。 図9の輝度域算出部の機能の構成の例を示すブロック図である。 図9の平均レベル算出部の機能の構成の例を示すブロック図である。 図9の時間平滑化部の機能の構成の例を示すブロック図である。 図9のスプライン発生部の機能の構成の例を示すブロック図である。 図7のコントラストゲインカーブ算出部の機能の構成の例を示すブロック図である。 図7の縮小画像生成部の機能の構成の例を示すブロック図である。 図7の補間部の機能の構成の例を示すブロック図である。 図7のコントラスト補正部の機能の構成の例を示すブロック図である。 図17のゲイン値算出部の機能の構成の例を示すブロック図である。 図17のコントラスト強調部の機能の構成の例を示すブロック図である。 図7の非線形逆変換部の機能の構成の例を示すブロック図である。 図5のDSPブロックにより実行される画像処理を説明するためのフローチャートである。 図21のステップS4の階調変換処理の詳細を説明するためのフローチャートである。 図21のステップS4の階調変換処理の詳細を説明するためのフローチャートである。 図22のステップS26のトーンカーブ算出のための画素処理の詳細を説明するためのフローチャートである。 図22のステップS27の縮小画像生成のための画素処理の詳細を説明するためのフローチャートである。 図22のステップS28の大局輝度算出処理の詳細を説明するためのフローチャートである。 図7の補間部の処理を説明するための図である。 図22のステップS30のコントラスト補正処理の詳細を説明するためのフローチャートである。 図28のステップS112のゲイン値算出処理の詳細を説明するためのフローチャートである。 図23のステップS36のトーンカーブとγ_comp算出処理の詳細を説明するためのフローチャートである。 トーンカーブの例を示すグラフである。 図23のステップS37のコントラストゲインカーブ算出処理の詳細を説明するためのフローチャートである。 入出力特性カーブの例を示すグラフである。 コントラストゲインカーブの例を示すグラフである。 図23のステップS38の縮小画像生成処理の詳細を説明するためのフローチャートである。 図17のゲイン値算出部の機能の構成の他の実施の形態を示すブロック図である。 本発明を適用したPCシステムの一実施の形態を示す外観構成図である。 本発明を適用したPCシステムの一実施の形態を示すブロック図である。 図38のCPUが画像補正プログラムを実行することにより実現される機能の構成の例を示すブロック図である。 図39の補正部の機能の構成の例を示すブロック図である。 図38のPCシステムにより実行される画像補正処理を説明するためのフローチャートである。 画像補正処理において表示されるGUIパネルの例を示す図である。 図41のステップS214のコントラスト補正処理の詳細を説明するためのフローチャートである。 パーソナルコンピュータの構成の例を示すブロック図である。
符号の説明
101 デジタルビデオカメラ, 116 DSPブロック, 143 階調変換部, 151 大局情報算出部, 152 輝度値画素処理部, 153 RGB値画素処理部, 161 輝度算出部, 162 非線形変換部, 163 トーンカーブ算出部, 165 コントラストゲインカーブ算出部, 167 縮小画像生成部, 171 補間部, 172 マッピング部, 173 コントラスト補正部, 181 階調補正部, 182 非線形逆変換部, 221 輝度域算出部, 222 平均レベル算出部, 223 時間平滑化部 224 スプライン発生部, 241 間引き部, 242 飽和画素除外部, 243,244 ソーティング部, 281 飽和画素除外部, 282 平均値算出部, 331 コントロールポイント設定部, 332 曲線描画部, 333 γ算出部, 341 入出力特性設定部, 343 ゲイン特性算出部, 351 ソート部, 352 平均値算出部, 371 近傍選択部, 372 水平係数算出部, 373 垂直係数算出部, 374 積和部, 391 ゲイン値算出部, 392 コントラスト強調部, 411 減算部, 412 マッピング部, 413 減算部, 414 選択部, 501 乗算部, 601 PCシステム, 611 PC, 621 CPU, 631 画像処理部, 633 UI処理部, 642 平滑化部, 643 入出力特性設定部, 644 補正部,

Claims (12)

  1. 入力画像から低周波成分を除去したコントラスト成分を画素ごとに抽出し、ゲイン値に基づいて各画素の前記コントラスト成分を補正する画像処理装置において、
    補正前の前記コントラスト成分である入力コントラスト成分を入力とし、補正後の前記コントラスト成分である出力コントラスト成分を出力とする入出力特性曲線であって、前記入力コントラスト成分に対して前記出力コントラスト成分が単調増加する入出力特性曲線を生成する入出力特性生成手段と、
    前記入出力特性曲線の原点と各点とを結ぶ線分の傾きに基づいて、前記入力コントラスト成分を前記出力コントラスト成分に補正するための前記ゲイン値の前記入力コントラスト成分に対する特性を表すゲイン特性曲線を生成するゲイン特性生成手段と、
    前記入力画像の画素ごとに、その画素の前記入力コントラスト成分を前記ゲイン特性曲線に適用することにより前記ゲイン値を算出するゲイン値算出手段と
    を含む画像処理装置。
  2. 前記入出力特性生成手段は、前記入力コントラスト成分の値が0付近において、傾きが最大かつ1より大きくなり、前記入力コントラスト成分の値が所定の補正範囲内において、前記入力コントラスト成分の絶対値が大きくなるほど傾きが緩やかになり、かつ、前記入力コントラスト成分に対する前記出力コントラスト成分の絶対値がその前記入力コントラスト成分の絶対値以上となり、前記入力コントラストの値が前記補正範囲を超える範囲において、傾きが1になるか、あるいは、1に近接する前記入出力特性曲線を生成する
    請求項1に記載の画像処理装置。
  3. ユーザにより指定された、前記入力コントラスト成分の値が0付近における前記入出力特性曲線の傾きである最大傾きおよび前記補正範囲を取得する取得手段を
    さらに含み、
    前記入出力特性生成手段は、ユーザにより指定された前記最大傾きおよび前記補正範囲に基づいて、前記入出力特性曲線を生成する
    請求項2に記載の画像処理装置。
  4. 前記ゲイン値算出手段は、前記入力画像の各画素について、その画素の輝度値と前記入力画像の輝度値が取りうる範囲の中間の値である中間輝度値との差分値をその画素の前記入力コントラスト成分として前記ゲイン値を算出する
    請求項1に記載の画像処理装置。
  5. 前記ゲイン値算出手段は、前記入力画像の各画素について、その画素の前記コントラスト成分をその画素の前記入力コントラスト成分として前記ゲイン値を算出する
    請求項1に記載の画像処理装置。
  6. 前記ゲイン値算出手段は、前記入力画像の各画素について、その画素の輝度値と前記入力画像の輝度値が取りうる範囲の中間の値である中間輝度値との差分値をその画素の前記入力コントラスト成分として第1のゲイン値を算出し、その画素の前記コントラスト成分をその画素の前記入力コントラスト成分として第2ゲイン値を算出し、前記第1のゲイン値と前記第2のゲイン値から小さい方を選択することにより、最終的な第3のゲイン値を算出する
    請求項1に記載の画像処理装置。
  7. 前記ゲイン値算出手段は、前記入力画像の各画素について、その画素の輝度値と前記入力画像の輝度値が取りうる範囲の中間の値である中間輝度値との差分値をその画素の前記入力コントラスト成分として第1のゲイン値を算出し、その画素の前記コントラスト成分を前記入力コントラスト成分として第2ゲイン値を算出し、前記第1のゲイン値と前記第2のゲイン値を乗じることにより、最終的な第3のゲイン値を算出する
    請求項1に記載の画像処理装置。
  8. 入力画像から低周波成分を除去したコントラスト成分を画素ごとに抽出し、ゲイン値に基づいて各画素の前記コントラスト成分を補正する画像処理装置の画像処理方法において、
    補正前の前記コントラスト成分である入力コントラスト成分を入力とし、補正後の前記コントラスト成分である出力コントラスト成分を出力とする入出力特性曲線であって、前記入力コントラスト成分に対して前記出力コントラスト成分が単調増加する入出力特性曲線を生成し、
    前記入出力特性曲線の原点と各点とを結ぶ線分の傾きに基づいて、前記入力コントラスト成分を前記出力コントラスト成分に補正するための前記ゲイン値の前記入力コントラスト成分に対する特性を表すゲイン特性曲線を生成し、
    前記入力画像の画素ごとに、その画素の前記入力コントラスト成分を前記ゲイン特性曲線に適用することにより前記ゲイン値を算出する
    ステップを含む画像処理方法。
  9. 入力画像から低周波成分を除去したコントラスト成分を画素ごとに抽出し、ゲイン値に基づいて各画素の前記コントラスト成分を補正する処理をコンピュータに実行させるプログラムにおいて、
    補正前の前記コントラスト成分である入力コントラスト成分を入力とし、補正後の前記コントラスト成分である出力コントラスト成分を出力とする入出力特性曲線であって、前記入力コントラスト成分に対して前記出力コントラスト成分が単調増加する入出力特性曲線を生成し、
    前記入出力特性曲線の原点と各点とを結ぶ線分の傾きに基づいて、前記入力コントラスト成分を前記出力コントラスト成分に補正するための前記ゲイン値の前記入力コントラスト成分に対する特性を表すゲイン特性曲線を生成し、
    前記入力画像の画素ごとに、その画素の前記入力コントラスト成分を前記ゲイン特性曲線に適用することにより前記ゲイン値を算出する
    ステップを含むプログラム。
  10. 入力画像から低周波成分を除去したコントラスト成分を画素ごとに抽出し、前記コントラスト成分を強調する度合いを示すゲイン値に基づいて各画素の前記コントラスト成分を補正する画像処理装置において、
    前記入力画像の各画素について、輝度値に対する前記ゲイン値の特性を表す第1のゲイン特性曲線その画素の輝度値を適用することにより第1のゲイン値を算出する第1のゲイン値算出手段と、
    前記入力画像の各画素について、前記コントラスト成分に対する前記ゲイン値の特性を表す第2のゲイン特性曲線その画素の前記コントラスト成分を適用することにより第2のゲイン値を算出する第2のゲイン値算出手段と、
    前記入力画像の各画素について、前記第1のゲイン値および前記第2のゲイン値のうち小さい方、または、前記第1のゲイン値と前記第2のゲイン値とを乗じた値を、最終的な第3のゲイン値として算出する第3のゲイン値算出手段と
    を含む画像処理装置。
  11. 入力画像から低周波成分を除去したコントラスト成分を画素ごとに抽出し、前記コントラスト成分を強調する度合いを示すゲイン値に基づいて各画素の前記コントラスト成分を補正する画像処理装置の画像処理方法において、
    前記入力画像の各画素について、輝度値に対する前記ゲイン値の特性を表す第1のゲイン特性曲線その画素の輝度値を適用することにより第1のゲイン値を算出し、
    前記入力画像の各画素について、前記コントラスト成分に対する前記ゲイン値の特性を表す第2のゲイン特性曲線その画素の前記コントラスト成分を適用することにより第2のゲイン値を算出し、
    前記入力画像の各画素について、前記第1のゲイン値および前記第2のゲイン値のうち小さい方、または、前記第1のゲイン値と前記第2のゲイン値とを乗じた値を、最終的な第3のゲイン値を算出する
    ステップを含む画像処理方法。
  12. 入力画像から低周波成分を除去したコントラスト成分を画素ごとに抽出し、前記コントラスト成分を強調する度合いを示すゲイン値に基づいて各画素の前記コントラスト成分を補正する処理をコンピュータに実行させるプログラムにおいて、
    前記入力画像の各画素について、輝度値に対する前記ゲイン値の特性を表す第1のゲイン特性曲線その画素の輝度値を適用することにより第1のゲイン値を算出し、
    前記入力画像の各画素について、前記コントラスト成分に対する前記ゲイン値の特性を表す第2のゲイン特性曲線その画素の前記コントラスト成分を適用することにより第2のゲイン値を算出し、
    前記入力画像の各画素について、前記第1のゲイン値および前記第2のゲイン値のうち小さい方、または、前記第1のゲイン値と前記第2のゲイン値とを乗じた値を、最終的な第3のゲイン値を算出する
    ステップを含むプログラム。
JP2007105540A 2007-04-13 2007-04-13 画像処理装置および方法、並びに、プログラム Expired - Fee Related JP4894595B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007105540A JP4894595B2 (ja) 2007-04-13 2007-04-13 画像処理装置および方法、並びに、プログラム
US12/100,187 US8654221B2 (en) 2007-04-13 2008-04-09 Image processing device and method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007105540A JP4894595B2 (ja) 2007-04-13 2007-04-13 画像処理装置および方法、並びに、プログラム

Publications (2)

Publication Number Publication Date
JP2008263475A JP2008263475A (ja) 2008-10-30
JP4894595B2 true JP4894595B2 (ja) 2012-03-14

Family

ID=39853366

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007105540A Expired - Fee Related JP4894595B2 (ja) 2007-04-13 2007-04-13 画像処理装置および方法、並びに、プログラム

Country Status (2)

Country Link
US (1) US8654221B2 (ja)
JP (1) JP4894595B2 (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4687320B2 (ja) * 2005-08-11 2011-05-25 ソニー株式会社 画像処理装置および方法、記録媒体、並びに、プログラム
US7755670B2 (en) * 2005-10-24 2010-07-13 Nikon Corporation Tone-conversion device for image, program, electronic camera, and tone-conversion method
US7894686B2 (en) * 2006-01-05 2011-02-22 Lsi Corporation Adaptive video enhancement gain control
JP4944061B2 (ja) * 2008-05-09 2012-05-30 富士フイルム株式会社 画像処理装置および方法並びにプログラム
JP5072751B2 (ja) * 2008-07-14 2012-11-14 キヤノン株式会社 画像処理装置、画像処理方法及びプログラム
US8725474B2 (en) * 2008-10-01 2014-05-13 Navteq B.V. Bezier curves for advanced driver assistance system applications
JP5299867B2 (ja) 2009-06-30 2013-09-25 日立コンシューマエレクトロニクス株式会社 画像信号処理装置
JP5420363B2 (ja) 2009-09-28 2014-02-19 大日本スクリーン製造株式会社 画像検査装置および画像検査方法、画像記録装置
JP2011228807A (ja) 2010-04-15 2011-11-10 Nikon Corp 画像処理プログラム、画像処理装置、および画像処理方法
JP2012165204A (ja) * 2011-02-07 2012-08-30 Sony Corp 信号処理装置、信号処理方法、撮像装置及び撮像処理方法
JP5968068B2 (ja) 2011-05-24 2016-08-10 キヤノン株式会社 露出制御を行う撮像装置、撮像装置の制御方法、プログラム及び記録媒体
CN104797189B (zh) * 2012-10-12 2017-05-17 皇家飞利浦有限公司 Mpi中的动态背景校正
JP5561389B2 (ja) * 2013-01-30 2014-07-30 株式会社ニコン 画像処理プログラム、画像処理装置、電子カメラ、および画像処理方法
JP6097588B2 (ja) * 2013-02-13 2017-03-15 キヤノン株式会社 画像処理装置及び画像処理方法
US9699428B2 (en) 2013-09-09 2017-07-04 Apple Inc. Lens shading modulation
CN104715445B (zh) 2013-12-13 2018-04-06 腾讯科技(深圳)有限公司 图像处理方法和系统
JP6309777B2 (ja) * 2014-02-10 2018-04-11 シナプティクス・ジャパン合同会社 表示装置、表示パネルドライバ、及び、表示パネルの駆動方法
CN105993032A (zh) * 2014-03-27 2016-10-05 诺日士精密株式会社 图像处理装置
US10530995B2 (en) 2015-06-12 2020-01-07 Gopro, Inc. Global tone mapping
BR112017016037A2 (pt) * 2015-12-17 2018-03-20 Koninklijke Philips N.V. decodificador e codificador de vídeo em hdr; método de decodificação de vídeo; método para codificação de vídeo em hdr; e memória legível por computador
JP6764738B2 (ja) * 2016-09-20 2020-10-07 理想科学工業株式会社 画像処理回路
KR102594201B1 (ko) * 2016-09-22 2023-10-27 삼성디스플레이 주식회사 영상 처리 방법 및 이를 수행하는 표시 장치
JP6755811B2 (ja) * 2017-02-07 2020-09-16 キヤノン株式会社 画像処理装置、画像処理方法、及びプログラム
JP6923754B2 (ja) * 2017-06-09 2021-08-25 華為技術有限公司Huawei Technologies Co.,Ltd. 画像キャプチャ方法及び機器
CN107451979B (zh) * 2017-08-08 2022-11-01 腾讯科技(深圳)有限公司 一种图像处理方法、装置和存储介质
JP7105737B2 (ja) * 2018-06-29 2022-07-25 キヤノン株式会社 画像処理装置、画像処理方法、及びプログラム
JP7278096B2 (ja) * 2019-02-20 2023-05-19 キヤノン株式会社 画像処理装置、画像処理方法、およびプログラム
JP7325308B2 (ja) * 2019-11-19 2023-08-14 ルネサスエレクトロニクス株式会社 画像処理装置及び画像処理方法
CN114222072B (zh) * 2021-12-16 2023-10-27 影石创新科技股份有限公司 图像处理方法、装置、电子设备及存储介质
CN115526806B (zh) * 2022-10-25 2023-10-20 昆山腾云达信息咨询技术服务中心(有限合伙) 基于人工智能的黑光图像自动校色方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3629409C2 (de) * 1986-08-29 1994-02-17 Agfa Gevaert Ag Verfahren und Vorrichtung zur Kontrastbewertung bei der elektronischen Bildverarbeitung
US6766064B1 (en) * 2000-03-10 2004-07-20 General Electric Company Method and apparatus for performing a contrast based dynamic range management algorithm
US6915024B1 (en) * 2000-09-29 2005-07-05 Hewlett-Packard Development Company, L.P. Image sharpening by variable contrast mapping
US6826310B2 (en) * 2001-07-06 2004-11-30 Jasc Software, Inc. Automatic contrast enhancement
JP2003162715A (ja) * 2001-11-22 2003-06-06 Sharp Corp 画像処理装置、画像処理方法および画像処理プログラムを記録した記録媒体、並びに画像入力装置および画像出力装置
US7042522B2 (en) * 2002-08-01 2006-05-09 Samsung Electronics Co., Ltd. Adaptive contrast enhancement method using time-varying nonlinear transforms on a video signal
JP4161719B2 (ja) * 2003-01-09 2008-10-08 ソニー株式会社 画像処理装置および方法、記録媒体、並びにプログラム
US7194142B2 (en) * 2003-02-28 2007-03-20 Hewlett-Packard Development Company, L.P. Selective thickening of dark features by biased sharpening filters
US20070109447A1 (en) * 2003-09-11 2007-05-17 Haruo Yamashita Visual processing device, visual processing method, visual processing program, and semiconductor device
JP4687320B2 (ja) * 2005-08-11 2011-05-25 ソニー株式会社 画像処理装置および方法、記録媒体、並びに、プログラム
US7684640B2 (en) * 2005-10-20 2010-03-23 Sharp Laboratories Of America, Inc. Methods and systems for automatic digital image enhancement with local adjustment
US7483081B2 (en) * 2005-10-27 2009-01-27 Mediatek Inc. Edge compensated feature detector and method thereof
US8023733B2 (en) * 2006-06-08 2011-09-20 Panasonic Corporation Image processing device, image processing method, image processing program, and integrated circuit

Also Published As

Publication number Publication date
US20080252791A1 (en) 2008-10-16
US8654221B2 (en) 2014-02-18
JP2008263475A (ja) 2008-10-30

Similar Documents

Publication Publication Date Title
JP4894595B2 (ja) 画像処理装置および方法、並びに、プログラム
JP4687320B2 (ja) 画像処理装置および方法、記録媒体、並びに、プログラム
JP5003196B2 (ja) 画像処理装置および方法、並びに、プログラム
KR101051604B1 (ko) 화상 처리 장치 및 방법
JP4595330B2 (ja) 画像処理装置および方法、記録媒体、並びにプログラム
JP3828251B2 (ja) 映像のダイナミックレンジ拡大装置
JP4288623B2 (ja) 撮像装置、ノイズ除去装置、ノイズ除去方法、ノイズ除去方法のプログラム及びノイズ除去方法のプログラムを記録した記録媒体
JP4214457B2 (ja) 画像処理装置および方法、記録媒体、並びにプログラム
US7755670B2 (en) Tone-conversion device for image, program, electronic camera, and tone-conversion method
JP4869653B2 (ja) 画像処理装置
JP2001275015A (ja) 画像処理回路及び画像処理方法
JP5392560B2 (ja) 画像処理装置および画像処理方法
US20090002562A1 (en) Image Processing Device, Image Processing Method, Program for Image Processing Method, and Recording Medium Having Program for Image Processing Method Recorded Thereon
JP2012216888A (ja) 画像理装置および方法、並びにプログラム
JP2006114005A (ja) 階調変換装置、プログラム、電子カメラ、およびその方法
JP4161719B2 (ja) 画像処理装置および方法、記録媒体、並びにプログラム
JP5410378B2 (ja) 映像信号補正装置および映像信号補正プログラム
JP5234127B2 (ja) 階調変換装置、プログラム、電子カメラ、及びその方法
JP5295854B2 (ja) 画像処理装置及び画像処理プログラム
JP6335614B2 (ja) 画像処理装置、その制御方法、及びプログラム
JP4992379B2 (ja) 画像の階調変換装置、プログラム、電子カメラ、およびその方法
JP4632100B2 (ja) 画像処理装置、画像処理方法、記録媒体、およびプログラム
JP4329391B2 (ja) 信号処理装置および方法、記録媒体、並びにプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100315

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110602

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110706

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111129

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111212

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150106

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees