(57)【特許請求の範囲】
【請求項１】
複数のフレームからなる動画において、
当該フレームを含む複数フレームの画像データについて、累積ヒストグラムと、移行平均累積ヒストグラムとを作成するステップと、
各フレームの画像データを補正するためのガンマテーブルを、補正前の画素値の累積ヒストグラムが補正後の画素値の移行平均累積ヒストグラムとなる、前記画素値の複数の組み合わせに基づいて作成するステップと、
作成したガンマテーブルを用いて各フレームの画像データの補正を行うステップと
からなり、コンピュータにより実行可能な画像処理プログラム。
【請求項２】
前記の動画の画像データが、赤、緑及び青の画像データ、明度の画像データまたは彩度の画像データであることを特徴とする請求項１に記載された画像処理プログラム。
【請求項３】
赤、緑、青、明度および彩度のうちの複数の画像データについて、前記補正が複数回行われることを特徴とする請求項２に記載された画像処理プログラム。
【請求項４】
前記移行平均累積ヒストグラムにおいて、当該フレーム及び過去のフレームのみについて移行平均をとることを特徴とする請求項１に記載された画像処理プログラム。
【請求項５】
前記複数のフレームのうち、画像データの平均明度が所定の値を超えて変化するフレームについては、前記移行平均累積ヒストグラムの作成では使用しないことを特徴とする請求項１に記載された画像処理プログラム。
【請求項６】
さらに、フレームを複数の領域に分割するステップを備え、
領域ごとに、累積ヒストグラム作成、移行平均累積ヒストグラム作成及び補正用ガンマテーブル作成を行うことを特徴とする請求項１に記載された画像処理プログラム。
【請求項７】
前記複数の領域を、互いに重複する画素を含むように作成することを特徴とする請求項６に記載された画像処理プログラム。
【請求項８】
前記補正後のガンマテーブルにおいて、所定の区間を直線で近似することを特徴とする請求項１，６，７のいずれかに記載された画像処理プログラム。
【請求項９】
前記複数のフレーム間の差分を計算し、所定値以上の画素を有する前記領域を除いて、前記累積ヒストグラム及び移行平均累積ヒストグラムを作成することを特徴とする請求項１、６，７のいずれかに記載された画像処理プログラム。
【請求項１０】
複数のフレームからなる動画において、当該フレームを含む複数フレームの画像データについて、累積ヒストグラムと移行平均累積ヒストグラムとを作成するステップと、
各フレームの画像データを補正するためのガンマテーブルを、補正前の画素値の累積ヒストグラムが補正後の画素値の移行平均累積ヒストグラムとなる、前記画素値の複数の組み合わせに基づいて作成するステップと、
作成したガンマテーブルを用いて各フレームの画像データの補正を行うステップと
からなる、画像処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、動画の画像処理、特に動画のフリッカの処理に関する。
【０００２】
【従来の技術】
デジタルカメラなどで撮影された動画は、撮影された条件によって、フリッカが発生する。フリッカは、照明の周波数と動画のフレームレートとが同期しないことにより、明度などが周期的に変化するという現象である。
【０００３】
【発明が解決しようとする問題点】
動画に対し種々の画像処理（色かぶり補正など）がなされるが、フリッカ現象についても自動的に補正できるようにすることが望ましい。特開２０００−3２４３６５号公報に記載された画像処理装置では、フリッカ補正のため、過去数フレーム分の画像の画素データの平均値を参照画像データとして最新の入力画像の画素データの平均値との差分を求め、それを元に補正データを算出している。この装置では、単に平均値の差分を基に画像データを補正しているが、さらに補正の精度を上げることが望ましい。
【０００４】
本発明の目的は、動画のフリッカの処理を効果的に行えるようにすることである。
【０００５】
【課題を解決するための手段】
本発明に係る第１のコンピュータにより実行可能な画像処理プログラムは、複数のフレームからなる動画において、当該フレームを含む複数フレームの画像データについて、累積ヒストグラムと、移行平均累積ヒストグラムとを作成するステップと、各フレームの画像データを補正するためのガンマテーブルを、補正前の画素値の累積ヒストグラムが補正後の画素値の移行平均累積ヒストグラムとなる、前記画素値の複数の組み合わせに基づいて作成するステップと、作成したガンマテーブルを用いて各フレームの画像データの補正を行うステップとからなる。こうして、フリッカを原因とする不要な明度、彩度、色相などの変化に対して、各フレームの移行平均累積ヒストグラムを用いて補正用ガンマテーブルを作成し補正を行うので、精度良く補正を行え、補正の効果が高い。
【０００６】
たとえば、前記の動画の画像データは、赤、緑及び青の画像データ、明度の画像データまたは彩度の画像データである。好ましくは、赤、緑、青、明度および彩度のうちの複数の画像データについて、前記補正が複数回行われる。
【０００７】
前記の画像処理プログラムにおいて、複数の画像データについてのフリッカ補正処理を組み合わせてもよい。たとえば、ＲＧＢそれぞれの累積ヒストグラムを元にフリッカ補正を行った後、さらに、L(明度)および／またはＳ(彩度)の累積ヒストグラムを元に、フリッカ補正を行う。
【０００８】
前記移行平均累積ヒストグラムにおいて、たとえば、当該フレーム及び過去のフレームのみについて移行平均をとる。これにより実質的なリアルタイム処理が可能になる。好ましくは、前記複数のフレームのうち、画像データの平均明度が所定の値を超えて変化するフレームについては、前記移行平均累積ヒストグラムの作成では使用しない。
【０００９】
前記の画像処理プログラムにおいて、さらに、フレームを複数の領域に分割するステップを備え、領域ごとに、累積ヒストグラム作成、移行平均累積ヒストグラム作成及び補正用ガンマテーブル作成を行う。これにより、フレーム内で部分的にフリッカが起こっている場合や、フリッカの強さが変化している場合に対応する。ここで、前記の１フレームだけ大きく画素値が変化しているフレームについては、フリッカ補正に使用しないようにしてもよい。これにより、フラッシュ等の影響による１フレームだけの変化の副作用を防ぐ。好ましくは、前記複数の領域を、互いに重複する画素を含むように作成する。
【００１０】
撮影対象物が速く動く場合も適切にフリッカ補正を行うため、得られた補正用ガンマテーブルにおいて、所定範囲の画像データについて所定の形状に修正する。たとえば、画像データの最大値から第１のしきい値まで、また、画像データの最小値から第２のしきい値までについて、直線に修正する。動きが速いとき、移行平均を用いることによる悪影響が起こるが、動きの影響を受けやすい所定範囲のデータについて、前述の処理により悪影響をさけることができる。特に複数領域に分割する場合に効果が大きい。
【００１１】
また、撮影対象物が速く動いている場合の副作用を防ぐため、さらに、動き領域を検出するステップを設け、検出した動き領域を累積ヒストグラムの算出に使用しないようにしてもよい。特に複数領域に分割する場合に効果が大きい。動き領域は、たとえば、複数フレームの間の差分をとり、差分がしきい値より大きい画素を取り出すことにより、得られる。すなわち、前記画像処理プログラムにおいて、たとえば、前記複数のフレーム間の差分を計算し、所定値以上の画素を有する前記領域を除いて、前記累積ヒストグラム及び移行平均累積ヒストグラムを作成する。
【００１２】
本発明に係る画像処理方法は、複数のフレームからなる動画において、当該フレームを含む複数フレームの画像データについて、累積ヒストグラムと、移行平均累積ヒストグラムとを作成するステップと、各フレームの画像データを補正するためのガンマテーブルを、補正前の画素値の累積ヒストグラムが補正後の画素値の移行平均累積ヒストグラムとなる、前記画素値の複数の組み合わせに基づいて作成するステップと、作成したガンマテーブルを用いて各フレームの画像データの補正を行うステップとからなる。
【００１３】
また、屋外から屋内に移動しながら撮影する場合のようにシーンチェンジがある場合、シーンごとにフリッカの有無や性質が異なることがある。そのような場合に対応するため、画像処理プログラムにおいて、たとえば、動画においてシーンチェンジを検出し、同一シーンのフレーム群に分類するステップと、次に、同一シーンのフレーム群ごとに前述のようにフリッカの有無とその種類を判定するステップと、その判定結果を基に個別に補正を行うステップを設ける。
【００１４】
【発明の実施の形態】
以下、添付の図面を参照して本発明の実施の形態を説明する。
図１は、画像処理装置の全体の構成を概念的に示す。画像処理システムにおいて、ホストコンピュータ１０には、入力装置としてキーボード１２とマウス１４が、出力装置としてモニタ１６が備えられる。また、外部記憶装置１８として、たとえばハードディスク装置が備えられる。プログラムは、その１部が外部記憶装置にあってもよい。ハードディスク２０には、ＯＳ２２その他のプログラムが記憶され、その中に、画像処理プログラム２４も含まれる。ここで、キーボード１２やマウス１４によるユーザの指示が入出力インタフェース２６を通じてＯＳ２２に伝えられる。コンピュータ１０において、ＣＰＵ２６が、画像処理プログラム２４を用いてその指示を処理する。処理の結果は、入出力インタフェース２８を通じてモニタ１６に表示する。なお、図１に示した画像処理装置の構成は、各実施形態において同様である。
【００１５】
次に、画像処理プログラム２４に含まれるフリッカ補正について説明する。連続するフレーム間では、ＲＧＢヒストグラムの形が相似形であるか、または相似形に近い。そこで、この性質を利用し、ＲＧＢヒストグラムを合わせる。まず、各フレームについて、画像データ（たとえばＲＧＢ）の累積ヒストグラムを求める。次に、フレーム間のヒストグラムの形を合わせる。具体的には、各フレームについて、前後の複数フレームの累積ヒストグラムの移行平均をとった移行平均累積ヒストグラムを求める。平均をとるフレームの数はフリッカの１周期を含むように決定する。次に、各フレームごとに、当該フレームの補正後の画像データが、先に求めた移行平均累積ヒストグラムとなるように、画像データを補正する。具体的には、各フレームごとに移行平均累積ヒストグラムを用いて、補正用ガンマテーブルを作成して、そのガンマテーブルを用いて画像データを補正する。このように移行平均累積ヒストグラムを元に補正用ガンマテーブルを作成し画像データの補正を行うので、補正の効果が高く、フリッカ補正の精度が向上する。
【００１６】
前述の移行平均累積ヒストグラムの作成において、移行平均処理と累積ヒストグラム作成処理とは、どちらを先にしてもよい。以下の実施形態では、先に、フレーム毎に画像データの累積ヒストグラムを作成し、次に、前後また過去の数フレームの累積ヒストグラムを平均して、移行平均累積ヒストグラムを作成する。別の手法では、先に、前後または過去の数フレームの画像データのヒストグラムを平均処理して、移行平均ヒストグラムを作成し、次に、その移行平均ヒストグラムを元に移行平均累積ヒストグラムを作成する。
【００１７】
次に、第1の実施の形態におけるフリッカ処理について説明する。このフリッカ補正では、赤緑青（ＲＧＢ）の画像データの累積ヒストグラムを元に、補正用ガンマテーブルを作成して、画像データを補正する。図２は、この実施形態の画像処理プログラムにおけるフリッカ処理のフローチャートを示す。まず、各フレームのＲＧＢそれぞれの累積ヒストグラムAcHist_Rｊ(ｉ)，AcHist_Gｊ(ｉ)，AcHist_Bｊ(ｉ)を作成する（Ｓ１００、Ｓ１０２）。ここでｉは画像の８ビット画素値０〜２５５を表し、累積ヒストグラムは、フレームの全画素数に対するパーセンテージで表すものとする。すなわち、
AcHist_Rｊ(0)＝AcHist_Gｊ(0)＝AcHist_Bｊ(0)＝0 (％)
AcHist_Rｊ(255)＝AcHist_Gｊ(255)＝AcHist_Bｊ(255)＝100 (％）
ここで、添え字ｊはフレーム番号を表す。図３の上図では、１例として、Ｒの累積ヒストグラムを実線で示す。なお、累積ヒストグラムの作成の高速化のため、全画素を使用せず、規則的に抽出した画素を使用してもよい。たとえば、縦横とも1画素おきにサンプリングする。
【００１８】
すべてのフレームについてＲＧＢ累積ヒストグラムを作成すると、次に、前後の数フレームの累積ヒストグラムの移行平均をとって移行平均累積ヒストグラムAveHist_Rｊ(i)，AveHist_Gｊ(i)，AveHist_Bｊ(i)を作成する（Ｓ１０４）。ここでは、次の式に示すように、前後６フレームの移行平均をとった。
【数１】
0003928424.tif 000002
【数２】
0003928424.tif 000003
【数３】
0003928424.tif 000004
図３の上図では、１例として、Ｒの移行平均累積ヒストグラムを破線で示す。ただし、実際に前後６フレームが存在しない場合（動画の先頭や最後あたりのフレームの場合）には、存在する最も近い６フレームで、移行平均をとることにする。（存在する最も近い６フレームとは、たとえば先頭フレームなら、第１から第６のフレームを指す。）
【００１９】
移行平均をとる際のフレーム数について説明すると、発生しているフリッカの明暗周期が分かっている場合、フレーム数をその明暗周期の倍数にすると、フリッカの補正精度があがる。たとえば、５０MHz、１５fps（フレームレート）の動画の場合、周期３のフリッカとなるため、移行平均に使用するフレームの数を３または６にする。
【００２０】
次に、得られた移行平均累積ヒストグラムを元に補正用ガンマテーブルを作成する。まず、図３の上図のように、補正前のＲの画素値をＡ、補正後のＲの画素値をＢとすると、
AveHist_Rｊ(B１)＝AcHist_Rｋ(A１)
が成り立つような（Ａ１，Ｂ１）の組み合わせを複数のＡの値について計算する。図３の例では、累積ヒストグラムで２０％ごとの組み合わせ(Ａ１，Ｂ１)、…、(Ａ５，Ｂ５)を計算する。次に、刻みの間（たとえば、Ａ１とＡ２の間）の画素値の計算では直線で補間する。すなわち、複数点の間を図３の下図のようにつないで折れ線近似をして、Ｒの補正用ガンマテーブルGamma_R(ｉ)を算出する。
Ｇ，Ｂの補正用ガンマテーブルGamma_G(ｉ)，Gamma_B(ｉ)についても、全く同様に算出する。なお、図３では、図示を簡単にするため、累積ヒストグラムの間隔を２０％としているが、実際上はもっと細かく（たとえば２％刻みで）処理する。（しかし、刻みを細かくしすぎると処理時間がかかりすぎるため、あまり補正精度が必要ないなら、刻みを粗くしてもよい。）
【００２１】
こうして作成したガンマテーブルGamma_R(ｉ)を元に、各画素のＲの値を変換する（Ｓ１０６）。補正前の画素（ｘ, y）のＲの画素値をＲ(ｘ，y）、補正後のＲの画素値をRnew(ｘ, y)とすると、変換は、
Rnew(ｘ，y)＝Gamma_R(R(ｘ, y））
として行う。Ｇ，Ｂに対しても、全く同様に補正を行う。
Gnew(ｘ, y)＝Gamma_G(G(ｘ, y))
Bnew(ｘ, y)＝Gamma_B(B(ｘ, y))
このフリッカ補正では、各フレームにおいてＲＧＢのヒストグラムの形が似てくる結果、フリッカの補正の精度が向上する。
【００２２】
次に、第２の実施の形態の画像補正について説明する。第１の実施形態では、赤緑青（ＲＧＢ）の累積ヒストグラムを用いていたが、この実施形態では、赤緑青（ＲＧＢ）の累積ヒストグラムの代わりにＬ（明度）の累積ヒストグラムを用いてフリッカ補正を行う。図４は、この実施形態の画像処理プログラムにおけるフリッカ処理のフローチャートを示す。まず、色空間を、たとえばＨＳＬへ変換する（Ｓ２００）。なお、ここではＨＳＬ空間を用いたが、明度または輝度を扱えれば他の色空間でも良い。次に、明度（Ｌ）について、第１の実施形態のステップＳ１００〜Ｓ１０８と同様に、移行平均累積ヒストグラムを元に補正テーブルを作成し、補正を行う（Ｓ２０２〜Ｓ２１０）。最後に、色空間を元のＲＧＢに戻す（Ｓ２１２）。この処理により、明度成分についてフリッカ補正を行うことができる。
【００２３】
次に、第３の実施の形態の画像補正について説明する。第２の実施形態では、Ｌ(明度)の累積ヒストグラムを元に補正用ガンマテーブルを作成したが、この実施形態では、Ｓ(彩度)の累積ヒストグラムを元に補正用ガンマテーブルを作成し、フリッカ補正を行う。図５は、この実施形態の画像処理プログラムにおけるフリッカ処理のフローチャートを示す。まず、色空間を、たとえばＨＳＬへ変換する（Ｓ３００）。なお、ここではＨＳＬ空間を用いたが、彩度を扱えれば何でもよい。第１の実施の形態のステップＳ１００〜Ｓ１０８と同様に、彩度（Ｓ）について、移行平均累積ヒストグラムを元に補正テーブルを作成し、補正を行う（Ｓ３０２〜Ｓ３１０）。最後に、色空間を元のＲＧＢに戻す（Ｓ３１２）。この処理により、彩度成分について、フリッカ補正を行うことができる。
【００２４】
次に、第４の実施の形態の画像補正について説明する。第１の実施形態では、ＲＧＢの移行平均累積ヒストグラムを元に、補正用ガンマテーブルを作成したが、この実施形態では、RGBの移行平均累積ヒストグラムを元に、フリッカ補正を行った後、さらに、Ｌ(明度)および／またはＳ(彩度)の移行平均累積ヒストグラムを元にフリッカ補正を行う。図６は、この実施形態の画像処理プログラムにおけるフリッカ処理のフローチャートを示す。ここでは、まず第１の実施形態と同様にＲＧＢの移行平均累積ヒストグラムを基に画像データの補正をする（Ｓ４００）。次に、ＬとＳ両方の移行平均累積ヒストグラムを元にさらに補正を行う。すなわち、各フレームについて、色空間をたとえばＨＳＬへ変換する（Ｓ４０２〜Ｓ４０４）。次に、第１の実施の形態のステップＳ１００〜Ｓ１０８と同様に、移行平均累積ヒストグラムを元に補正テーブルを作成し、補正を行う（Ｓ４０４〜Ｓ４１２）。最後に、色空間を元のＲＧＢに戻す（Ｓ４１４）。なお、ここではＨＳＬ空間を用いたが、彩度と明度を扱えれば何でもよい。このように、ＲＧＢでフリッカ補正を行った後、さらに後処理としてＬ（明度）とＳ（彩度）に対してもフリッカ補正するので、さらに補正効果を高めることができる。なおＬとＳは、どちらかのみを後処理として補正しても良い。
【００２５】
次に、第５の実施の形態の画像補正について説明する。この実施形態では、過去のフレームのみを用いて、フリッカ補正する。処理対象のフレームとその過去のフレームのみを用いることで、実質上のリアルタイム処理が行える。したがって、（少しの遅延があってもよいような）テレビ会議システム、ストリーミングビデオ用補正サーバー、デジタルビデオ、デジタルカメラなどのハードウェアヘの組み込みが可能となる。
【００２６】
図７は、この実施形態の画像処理プログラムにおけるフリッカ処理のフローチャートを示す。ここでは、ＲＧＢ累積ヒストグラムを用いた場合の例を示す。（これは、ＬやＳに対しても、同様に適応できる。）第１の実施形態との違いを中心に、記載すると、まず、先頭フレーム（フレーム番号1）のＲＧＢそれぞれの累積ヒストグラムAcHist_R１(i），AcHist_G１(i），AcHist_B１(i）を作成する（図３の上図の実線）（Ｓ５００）。ここでｉは画素値０〜２５５を表し、累積ヒストグラムは、フレームの全画素数に対するパーセンテージで表されるものとする。また、添え字はフレーム番号を表す。
【００２７】
次に、過去のフレームが存在すれば、最大たとえば６フレームの累積ヒストグラムの移行平均をとった移行平均累積ヒストグラムAveHist_R１(i)，AveHist_G１(i)，AveHist_B１(i)を作成する（Ｓ５０２）。先頭フレームの場合は、現在のフレームのみしかないので、現在の１フレームのみで平均することになり、実際は全く同じとなる（図３の上図の破線）。
AveHist_R１(i)＝AcHist_Rｌ(i)
AveHist_G１(i)＝AcHist_Gｌ(i)
AveHist_B１(i)＝AcHist_Bｌ(i)
その後の処理は、第１の実施形態と同じであり、ＲＧＢに対し補正用ガンマテーブルを作成し、フリッカ補正を行う（Ｓ５０４）。その結果、1フレーム目は、実際は何も補正がかからないことになる。
【００２８】
次に、次のフレームがあるので（Ｓ５０６でＹＥＳ）、２フレーム目の処理に移り、まず累積ヒストグラムAcHist_R２(i)、AcHist_G２(i)、AcHist_B２(i)を作成する。過去に1フレームだけ存在するので、
【数４】
0003928424.tif 000005
【数５】
0003928424.tif 000006
【数６】
0003928424.tif 000007
その後の処理は、第１の実施形態と同じである。ＧＢに対し、同様に補正用ガンマテーブルを作成し、フリッカ補正を行う。
【００２９】
同様に次のフレームヘと処理を繰り返し、たとえば（７フレーム目以降の）jフレーム目を補正するときには、
【数７】
0003928424.tif 000008
【数８】
0003928424.tif 000009
【数９】
0003928424.tif 000010
として、移行平均累積ヒストグラムを作成する。その後の処理は、第１の実施形態と同じであり、ＲＧＢに対し補正用ガンマテーブルを作成し、フリッカ補正を行う。
【００３０】
次に、第６の実施の形態の画像補正について説明する。この実施形態では、１フレームを複数の領域に分割し、領域単位でフリッカ補正をする。領域分割が必要となるのは、たとえば、フレームの一部でのみフリッカが起きている場合や、フレームの場所により照明光源との距離に応じてフリッカの強さにばらつきがある場合である。以下に説明する例では、図８に示すように、３２０×２４０画素のサイズの動画を８０×８０のサイズの１２の矩形領域に分割し、ＲＧＢの移行平均累積ヒストグラムを用いてフリッカ補正をする。図８の中の矩形ｒは矩形を表わす番号である。
【００３１】
図９は、第６の実施形態の画像処理プログラムにおけるフリッカ処理のフローチャートを示す。まず、フレーム内を複数の矩形領域に分割する（Ｓ６００）。ここでは、図８に示すように、３２０×２４０の画素サイズのフレームを８０×８０のサイズの１２個の矩形に領域分割する。次に、各矩形領域に対し、第１の実施形態のように、ＲＧＢそれぞれの累積ヒストグラムを作成する。これを、各フレームについておこなう（Ｓ６０２〜Ｓ６０４）。
【００３２】
次に、各矩形領域に対し、前後の数フレームで累積ヒストグラムの移行平均をとる（Ｓ６０６）。次に、矩形領域ごとに、移行平均累積ヒストグラムを用いて補正用ガンマテーブルを作成する（Ｓ６０８）。ここで各矩形領域ｒの補正用ガンマテーブルをGamma_Rｒ(m)、Gamma_Gｒ(m)、Gamma_Bｒ(m)とすると、各画素に対して、その位置（矩形の中心点からの距離（ｘ，ｙ））に応じて以下のように線形に補間した補正用ガンマテーブルGamma_R(x,y,m）、Gamma_G(x,y,m）、Gamma_B(x,y,m）を作成する。ここで、図１０に示すように、widthとheightを矩形の幅と高さの半分とし、ｘ'＝ｘ／(２×width），ｙ'＝ｙ／(２×height）とすると、
0003928424.tif 000011
次に、補間した補正用ガンマテーブルを用いて、画素値を変換し補正する（Ｓ６１０)。
【００３３】
なお、この実施形態では、ガンマテーブルそのものを補間すると説明している。しかし、実際には補正前の画素値（r，g，b）を変換するのに使用するだけなので、以下のように必要な画素値に対するガンマテーブルのみを作成し、補正する。補正後の画素値を（r’，g’，b’）とすると、以下のようになる。
0003928424.tif 000012
なお、たとえば図１０において、矩形1（実線で囲まれた部分）の左上四半分のように、隣接する矩形が無いところは補間処理をせず、矩形１の右上四半分のように、隣接する矩形が右側にしか無いときは、その右側の矩形２との1方向の補間処理を行うものとする。
【００３４】
次に、第７の実施の形態の画像補正について説明する。この実施形態は、第６の実施形態の変形例である。図１１は、この実施形態の画像処理プログラムにおけるフリッカ処理のフローチャートを示す。本実施形態における領域分割では、図８に示した領域分割に加え、さらに、矩形の半分のサイズ（縦４０、横４０画素）ずつずらした矩形領域を作成する（Ｓ７００）。こうして、図１２の例では、たとえば、矩形１３は、図８の領域分割図において、１行目の矩形１を右側に４０画素ずらした矩形領域である。したがって、１行目には、矩形１，２，３，４，１３，１４，１５の７個の矩形領域が存在する。また、矩形１を下側に４０画素ずらして矩形１６が設けられる。このように横方向に５行段の矩形が重複した設けられる。したがって、１フレームを、８０×８０画素の７×５＝３５個の重複した矩形領域に分割する。
【００３５】
次に、各矩形領域で補正用ガンマテーブルを作成し、そのテーブルを元に補正する（画素値を変換する）（Ｓ７０２〜Ｓ７１２）。この処理は、図９のステップＳ６０２〜Ｓ６１２に対応する。ここで、図１２の各矩形１，１３，１６，１７に対して、補正した画素値を
矩形1：  （ｒｌ，g１，b１）
矩形１３：（r１３，g１３，b１３〉
矩形１６：（r１６，g１６，b１６）
矩形１７：（r１７，g１７，b１７）
とし、補間後の画素値を（r，g，b）とすると、ｘ'＝ｘ／width、y'＝y／height（図１３参照）と規格化して、次のようになる。
0003928424.tif 000013
【００３６】
なお、たとえば図１３の矩形1の左上四半部のように、隣接する矩形領域が無いところは補間処理をせず、図１３の矩形１の右上四半部のように、隣接する矩形領域が右側にしか無いときは、その右側の矩形１３との１方向の補間処理を行うものとする。
【００３７】
なお、第６と第７の実施形態とも、矩形領域の数を大きくしすぎると、ヒストグラム算出時に使用される画素数が少なくなりすぎるため、少しの被写体の動きに対しても色合いがおかしくなるなど、副作用が発生しやすくなる。従って矩形分割数を、大きくても、第６の実施形態なら２０程度、第７の実施形態なら６０程度に抑える必要がある。
【００３８】
また、３２１×２４０画素のようなサイズの動画の場合、端数の画素ができてもどこかの矩形に吸収し、著しく小さな矩形を作成しないよう考慮する必要がある。たとえば、３２１×２４０画素を図８のように分割するとき矩形４，８，１２を８１×８０画素のサイズにする。
【００３９】
次に、移行平均累積ヒストグラムを用いた画像補正をそのまま適用すると逆効果になる場合の副作用を防ぐ処理を説明する。まず、第８の実施の形態の画像補正について説明する。フラッシュを用いた場合などにおいて、１フレームだけ大きく画素値が変化することがある。第１の実施形態の画像補正をそのまま適応すると、ヒストグラムを前後のフレームを元に平均化した結果、フラッシュのフレームが暗く、フラッシュの前後のフレームが明るく、誤って補正されてしまう。そこで、この実施形態では、1フレームだけ大きく画素値が変化しているフレームは、フリッカ補正に使用しないことにより、フラッシュ等による悪影響を防ぐ。たとえば、図１４のように、1フレームだけ、たとえば平均明度がしきい値Th（たとえば５０）を超えて大きく変化していれば、フラッシュと判定して、補正しないようにする。たとえば、フラッシュのフレームの累積ヒストグラムを、前後の累積ヒストグラムの平均値（図１４の白丸）で置き換えて、補正用ガンマテーブルを作成する。これにより、フラッシュなどによる悪影響を防止できる。なお、平均明度の代わりに、緑Gの平均値で代用しても良い。
【００４０】
次に、第９の実施の形態の画像補正について説明する。この実施形態では、２つのしきい値を元に補正用ガンマテーブルを修正し、撮影対象物が早く動いている場合の副作用を防ぐ。第１の実施形態の画像補正では、撮影対象物の動きの無いものや比較的ゆっくり動くものに対しては、問題なく補正できる。これは、連続するフレームの間では、ＲＧＢヒストグラムの形が相似形または相似形に近いという性質を利用し、ＲＧＢヒストグラムを合わせるよう、画像データを補正しているためである。しかし、被写体が大きく動く場合には、フリッカが起きていない場合でも、ヒストグラムの形は同一ではない。従って、それを同一にしようとする第１の実施の形態の画像補正を適用すると、逆に副作用として色合いが変になってしまう場合がある。この副作用は、特に領域分割をする第６や第７の実施形態のアルゴリズムで、顕著に現れる。そこで、この副作用を防ぐため、補正用ガンマテーブルを修正する。すなわち、図１５のように、画素データの０近傍と２５５近傍、すなわち、0〜Th1（たとえば50）、Th2（たとえば200）〜255の区間を直線で近似する。（図１５において、実線が修正前で、点線が修正後の補正用ガンマテーブルを表す。）
【００４１】
この点についてさらに説明をすると、摘影対象物の動きがないフリッカを補正するために、補正用ガンマテーブルを作成すると、図１６の例１、例２の実線のようなテーブルが得られることが、実験的に分かった。（ここで、0〜Thl（たとえば50）、Th2（たとえば200）〜255は、比較的に直線に近いことがわかる。）しかし、上記の副作用が起きている補正用ガンマテーブルの場合、図１５の実線のように、0〜Thl、Th2〜255において、直線からかけ離れた形を示すことが実験的に分かった。そこで、この0〜Thl（たとえば50）、Th2（たとえば200）〜255の区間の補正用ガンマテーブルを直線で近似することで、副作用を防ぐ。
【００４２】
次に、第１０の実施の形態の画像補正について説明する。この実施形態では、動き領域を検出し、検出した動き領域を累積ヒストグラムの算出に使用しないことで、撮影対象物が早く動いている場合の副作用を防ぐ。例を用いて説明すると、図１７の例のように、一部の被写体が動いているとき、たとえば連続するフレーム間で差分を取り、差分があるしきい値Th（たとえば、ＲＧＢとも５０）以上である画素を取り出すと、図１７の２段目のように、動き成分（動きベクトルともいう）を取り出せる（図の黒部分）。ここで、たとえば図１７の２フレーム目のフリッカ補正をするため、１フレーム目と３フレーム目を用いた３フレームでの移行平均累積ヒストグラムを計算するとした場合、図１７のように、その３フレーム共通の動きのない背景の画素部分（図１７の３段目の白部分）を用いて、ＲＧＢの累積ヒストグラムと移行平均累積ヒストグラムを算出し、補正用ガンマテーブルを作成する。こうして、被写体が動く場合の副作用を防ぐことができる。これは、第９の実施形態と同様に、図１８のように領域分割を行い補正する場合に、より効果を発揮する。
【００４３】
次に、第１１の実施の形態について説明する。この実施形態では、フレーム内を複数の館域に分割し、それぞれの領域毎の画素値の変化を調べることで、フリッカの有無とフリッカの種類（全体または局所）を判定する。ここでは、調べる画素値としてたとえば明度の変化を調べる例を述べる。図１９は、この実施形態の画像処理プログラムにおけるフリッカ処理のフローチャートを示す。図８のように、領域に分割し（Ｓ８００）、各フレームに対する平均明度Ｌｉ(f)を算出する（Ｓ８０２）。ここで、fはフレーム番号、添え字iは領域番号を示す。次に、領域毎に平均明度のふれ幅を計算する。これには、たとえば前のフレームとの差分の絶対値Abs（Lｉ(f)−Lｉ(f-1））を計算する。これを全フレーム分計算し、1フレームあたりの平均値を求め、表１の「平均明度ふれ幅」とする。次に、表１のように平均明度ふれ幅が、
0〜Th1（たとえば５）：      フリッカ強さ0（フリッカなし）
Th1〜Th2（たとえば１０）：  フリッカ強さ1（フリッカ弱）
Th2〜：                    フリッカ強さ2（フリッカ強）
のように判定し、各領域のフリッカの強さを求める（Ｓ８０４）。ここで、全領域でフリッカ強さ０ならフリッカなし、全領域でフリッカ強さが０以外の同じ値なら全体フリッカ、領域毎にフリッカ強さが異なるなら局所フリッカと判定する（Ｓ８０６）。たとえば、表１の場合には、局所フリッカと判定する。なお、明度変化の代わりに緑Ｇの値の変化で代用しても良い。
【００４４】
【表１】
0003928424.tif 000014
【００４５】
次に、第１２の実施の形態の画像補正について説明する。この実施形態では、第１１の実施の形態のようにフリッカの有無とその種類（全体または局所）の判定し、その結果を元に補正処理を決めることで、それに対応したフリッカ補正を自動的に行う。図２０は、この実施形態の画像処理プログラムにおけるフリッカ処理のフローチャートを示す。まず、第１１の実施形態と同様にフリッカの有無とフリッカの種類を判定する（Ｓ９００）。次に、判定結果を元に分岐する（Ｓ９０２）。フリッカなしの場合は、フリッカ補正をしない。全体フリッカの場合、領域に分割せず、フリッカ補正をする（Ｓ９０６）。局所フリッカの場合、領域に分割し、フリッカ補正をする（Ｓ９０８）。こうして、フリッカの態様に対応して自動的にフリッカ補正を行う。
【００４６】
次に、第１３の実施の形態の画像補正について説明する。この実施形態では、シーンチェンジを検出し、同一シーンのフレーム群毎にフリッカ補正方法を変更する。たとえば屋内から屋外へ移動しながら撮影した動画の場合のように、フリッカの有無や種別が、フレーム群ごとに違っている場合には、第１の実施の形態の画像補正を適用すると、逆に副作用として色合いが変になってしまう場合がある。そこで、以下のように対応する。図２２は、この実施形態の画像処理プログラムにおけるフリッカ処理のフローチャートを示す。まず最初にシーンチェンジを判断し、フレーム群に分割する（Ｓ１０００）。シーンチェンジの検出では、たとえば図２１に示すように、各フレームの緑の平均値の変化を元に、急激に変化したフレームがあると、シーンチェンジと判断する。次に、フレーム群ごとに、第１２の実施形態のように、フリッカの有無やその種別を判定し、その判定結果を元にフリッカ補正を行う。これをすべてのフレーム群について行う。（Ｓ１００２〜Ｓ１０１０）。これにより、シーンの変化に対応したフリッカ補正を行う。
【００４７】
【発明の効果】
動画像のフリッカ補正において、移行平均累積ヒストグラムを用いて画像を補正するので、フリッカ補正が高精度で行える。
【００４８】
また、ＲＧＢやＬ（明度）、Ｓ（彩度）などの、個々の色成分に対してフリッカ補正を行うことで、色相を含めたフリッカの補正を行え、補正効果が高い。
【００４９】
また、過去のフレームのみを用いてフリッカ補正を行うので、実質的にリアルタイム処理ができる。
【００５０】
また、フレームを領域に分割してフリッカ補正をすることにより、フリッカ補正がより適切に行える。
【００５１】
また、フラッシュがある場合、撮影対象物に動きがある場合、シーンチェンジがある場合などのように、画像が大きく変化する場合に、移行平均累積ヒストグラムを用いた画像補正においてその影響を抑える処理を入れることで、副作用を防ぐことができる。
【００５２】
また、フレームに対して全体的なフリッカか、局所的なフリッカかを判定し、その結果に応じて、補正アルゴリズムを変更するので、最適な補正アルゴリズムを自動的に選択し補正できる。
【図面の簡単な説明】
【図１】  画像処理装置の全体の構成を示すブロック図
【図２】  第１の実施形態の画像処理プログラムにおけるフリッカ処理のフローチャート
【図３】  補正を説明するための図
【図４】  第２の実施形態の画像処理プログラムにおけるフリッカ処理のフローチャート
【図５】  第３の実施形態の画像処理プログラムにおけるフリッカ処理のフローチャート
【図６】  第４の実施形態の画像処理プログラムにおけるフリッカ処理のフローチャート
【図７】  第５の実施形態の画像処理プログラムにおけるフリッカ処理のフローチャート
【図８】  第６の実施形態における矩形領域への分割を示す図
【図９】  第６の実施形態の画像処理プログラムにおけるフリッカ処理のフローチャート
【図１０】  矩形領域内のパラメータを示す図
【図１１】  第７の実施形態の画像処理プログラムにおけるフリッカ処理のフローチャート
【図１２】  第７の実施形態における矩形領域への分割を示す図
【図１３】  矩形領域内のパラメータを示す図
【図１４】  フラッシュの悪影響がある例を示すグラフ
【図１５】  修正前(実線)と修正後(点線)の補正用ガンマテーブルを表すグラフ
【図１６】  補正用ガンマテーブルを表すグラフ
【図１７】  一部の被写体が動いているときの処理を説明するための図
【図１８】  領域分割をしたときの動き成分の例を示す図
【図１９】  第１１の実施形態の画像処理プログラムにおけるフリッカ処理のフローチャート
【図２０】  第１２の実施形態の画像処理プログラムにおけるフリッカ処理のフローチャート
【図２１】  フレーム群に分割した状況を示す図
【図２２】  第１３の実施形態の画像処理プログラムにおけるフリッカ処理のフローチャート
【符号の説明】
１０  コンピュータ、    １２  キーボード、    １４  マウス、    １６  モニタ、    １８  外部記憶装置、    ２０  ハードディスク、    ２４  画像処理プログラム、    ２６  ＣＰＵ。
【図１】
0003928424.tif 000015
【図２】
0003928424.tif 000016
【図３】
0003928424.tif 000017
【図４】
0003928424.tif 000018
【図５】
0003928424.tif 000019
【図６】
0003928424.tif 000020
【図７】
0003928424.tif 000021
【図８】
0003928424.tif 000022
【図９】
0003928424.tif 000023
【図１０】
0003928424.tif 000024
【図１１】
0003928424.tif 000025
【図１２】
0003928424.tif 000026
【図１３】
0003928424.tif 000027
【図１４】
0003928424.tif 000028
【図１５】
0003928424.tif 000029
【図１６】
0003928424.tif 000030
【図１７】
0003928424.tif 000031
【図１８】
0003928424.tif 000032
【図１９】
0003928424.tif 000033
【図２０】
0003928424.tif 000034
【図２１】
0003928424.tif 000035
【図２２】
0003928424.tif 000036