画像処理装置および方法、並びにプログラム
【課題】より簡単にフェードインやフェードアウトを検出する。
【解決手段】差分算出部73は、入力画像を縮小した縮小画像の画素の輝度値を積算した輝度積算値lum_acc_curと、1フレーム前の直前縮小画像の画素の輝度値を積算した直前輝度積算値lum_acc_preとの輝度差分値acc_difを算出し、閾値作成部76は、輝度差分値acc_difについての閾値であって、縮小画像と直前縮小画像との間の輝度変化を、輝度変化の度合いを示す輝度変化レベルlum_change_levelで段階分けするための複数の閾値th1乃至th8を、輝度積算値lum_acc_curに応じて作成し、閾値処理部75は、複数の閾値th1乃至th8に基づいて、輝度差分値acc_difに対応する輝度変化レベルlum_change_levelを決定する。本発明は、例えば、動き補償処理を行う画像処理装置に適用することができる。
【解決手段】差分算出部73は、入力画像を縮小した縮小画像の画素の輝度値を積算した輝度積算値lum_acc_curと、1フレーム前の直前縮小画像の画素の輝度値を積算した直前輝度積算値lum_acc_preとの輝度差分値acc_difを算出し、閾値作成部76は、輝度差分値acc_difについての閾値であって、縮小画像と直前縮小画像との間の輝度変化を、輝度変化の度合いを示す輝度変化レベルlum_change_levelで段階分けするための複数の閾値th1乃至th8を、輝度積算値lum_acc_curに応じて作成し、閾値処理部75は、複数の閾値th1乃至th8に基づいて、輝度差分値acc_difに対応する輝度変化レベルlum_change_levelを決定する。本発明は、例えば、動き補償処理を行う画像処理装置に適用することができる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置および方法、並びにプログラムに関し、特に、より簡単にフェードインやフェードアウトを検出することができるようにする画像処理装置および方法、並びにプログラムに関する。
【背景技術】
【0002】
ブロックマッチング手法により動きベクトル検出し、その動きベクトルを用いて動き補償処理を行うことにより、時間的に異なる前後の画像(フレーム)から新たな補間画像(補間フレーム)を作成するフレームレート変換処理が一般に存在する。
【0003】
図1は、フレームレート変換処理の概念を説明する図である。
【0004】
図1において、横軸は時刻(単位は秒とする)を示し、縦軸は画像の動きを1次元で表現したときの位置を示している。横軸には、1/120秒ずつ目盛りが振られている。また、図1において、白抜きの大きい丸印は入力画像信号を表し、塗りつぶされた小さい丸印は出力画像信号を表している。すなわち、図1は、フィルムモードがビデオで60Hzの入力画像を、120Hzの出力画像にフレームレート変換したときの様子を表している。
【0005】
フレームレート変換処理においては、図1に示されるように、入力画像の位置(動き)を補間するように、出力画像が生成される。
【0006】
このようなブロックマッチング手法による動きベクトル検出においては、画像がフェードインまたはフェードアウトしたときに、実際は静止画像であるにもかかわらず、動きがある画像として動きベクトルが誤検出されることがある。この場合、誤検出された動きベクトルを用いた動き補償処理によって、乱れた補間画像が出力されてしまう。
【0007】
そこで、フェードインまたはフェードアウトした静止画部分を検出して、その静止画部分の動きベクトルを0にすることが提案されている(例えば、特許文献1参照)。
【0008】
【特許文献1】特開2007−243627号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
ところで、特許文献1の手法では、フェードインまたはフェードアウトであるか否かの判定において、輝度値に対する閾値処理(輝度値と所定の閾値との比較)を行っている。
【0010】
しかしながら、上述の閾値処理で用いられる閾値は固定値であり、ユーザの操作によって設定される必要があった。
【0011】
本発明は、このような状況に鑑みてなされたものであり、ユーザの操作によって閾値を設定することなく、より簡単にフェードインやフェードアウトを検出することができるようにするものである。
【課題を解決するための手段】
【0012】
本発明の一側面の画像処理装置は、第1の画像における複数の画素の輝度値を積算した第1の積算値と、前記第1の画像と時間的に異なる第2の画像における複数の画素の輝度値を積算した第2の積算値との差分値を算出する差分値算出手段と、前記差分値についての閾値であって、前記第1の画像と前記第2の画像との間の輝度変化を、前記輝度変化の度合いを示す輝度変化レベルで段階分けするための、前記輝度変化レベルに対応した複数の閾値を、前記第1の積算値に応じて作成する閾値作成手段と、前記複数の閾値に基づいて、前記差分値に対応する前記輝度変化レベルを決定する輝度変化レベル決定手段とを備える。
【0013】
前記画像処理装置には、前記第1の画像および前記第2の画像に対するブロックマッチングにより動きベクトルを検出する動きベクトル検出手段と、前記動きベクトルにより前記第1の画像を動き補償して、動き補償画像を生成する動き補償画像生成手段と、前記輝度変化レベル決定手段により決定された前記輝度変化レベルに応じた比率で、前記第1の画像における各画素と、対応する前記動き補償画像における各画素とを合成し、前記第1の画像および前記第2の画像を補間する補間画像として出力する補間画像出力手段とをさらに設けることができる。
【0014】
前記補間画像出力手段には、前記輝度変化レベル決定手段によって決定された前記輝度変化レベルが高いほど、前記第1の画像の比率が高い前記補間画像を出力させ、前記輝度変化レベルが低いほど、前記動き補償画像の比率が高い前記補間画像を出力させることができる。
【0015】
前記画像処理装置には、前記第1の画像を縮小した第1の縮小画像を生成する縮小画像生成手段をさらに設け、前記差分値算出手段には、前記第2の画像を縮小した第2の縮小画像における複数の画素の輝度値を積算した前記第1の輝度値と、前記第1の縮小画像と時間的に異なる第2の縮小画像における複数の画素の輝度値を積算した前記第2の積算値との差分値を算出させることができる。
【0016】
前記動きベクトル検出手段には、前記第1の縮小画像および前記第2の縮小画像から前記動きベクトルを検出させる。
【0017】
本発明の一側面の画像処理方法は、第1の画像における複数の画素の輝度値を積算した第1の積算値と、前記第1の画像と時間的に異なる第2の画像における複数の画素の輝度値を積算した第2の積算値との差分値を算出する差分値算出ステップと、前記差分値についての閾値であって、前記第1の画像と前記第2の画像との間の輝度変化を、前記輝度変化の度合いを示す輝度変化レベルで段階分けするための、前記輝度変化レベルに対応した複数の閾値を、前記第1の積算値に応じて作成する閾値作成ステップと、前記複数の閾値に基づいて、前記差分値に対応する前記輝度変化レベルを決定する輝度変化レベル決定ステップとを含む。
【0018】
本発明の一側面のプログラムは、第1の画像における複数の画素の輝度値を積算した第1の積算値と、前記第1の画像と時間的に異なる第2の画像における複数の画素の輝度値を積算した第2の積算値との差分値を算出する差分値算出ステップと、前記差分値についての閾値であって、前記第1の画像と前記第2の画像との間の輝度変化を、前記輝度変化の度合いを示す輝度変化レベルで段階分けするための、前記輝度変化レベルに対応した複数の閾値を、前記第1の積算値に応じて作成する閾値作成ステップと、前記複数の閾値に基づいて、前記差分値に対応する前記輝度変化レベルを決定する輝度変化レベル決定ステップとを含む処理をコンピュータに実行させる。
【0019】
本発明の一側面においては、第1の画像における複数の画素の輝度値を積算した第1の積算値と、第1の画像と時間的に異なる第2の画像における複数の画素の輝度値が積算した第2の積算値との差分値が算出され、差分値についての閾値であって、第1の画像と第2の画像との間の輝度変化を、輝度変化の度合いを示す輝度変化レベルで段階分けするための、輝度変化レベルに対応した複数の閾値が、第1の積算値に応じて作成され、複数の閾値に基づいて、差分値に対応する輝度変化レベルが決定される。
【発明の効果】
【0020】
本発明の一側面によれば、より簡単にフェードインやフェードアウトを検出することが可能となる。
【発明を実施するための最良の形態】
【0021】
以下、本発明の実施の形態について図を参照して説明する。
【0022】
図2は、本発明を適用した画像処理装置の一実施の形態の構成例を示している。
【0023】
図2の画像処理装置11は、入力画像におけるフェードインやフェードアウトを検出し、その検出結果に応じて、補間画像(補間フレーム)を作成し、フレームレート変換された出力画像を出力する。なお、以下においては、フェードインやフェードアウトを検出することを、適宜、フェード検出とも称する。
【0024】
図2の画像処理装置11は、前処理部31、フレームメモリ32、動きベクトル検出部33、および動き補償処理部34から構成される。
【0025】
前処理部31は、画像縮小部51および輝度変化検出部52を備えており、入力画像の縮小画像を生成するとともに、その縮小画像における輝度変化を検出する。より具体的には、画像縮小部51は、入力画像の画素を間引くことにより、例えば、入力画像の1/4倍の縮小画像を生成し、フレームメモリ32、動きベクトル検出部33、および輝度変化検出部52に供給する。輝度変化検出部52は、画像縮小部51から供給された縮小画像と、その縮小画像を1フレームだけ遅延した縮小画像との間(時間的に異なるフレーム間)の輝度変化を検出することで、フェード検出を行う。輝度変化検出部52は、検出した輝度変化の度合いを示す輝度変化レベルを、動き補償処理部34に供給する。なお、輝度変化検出部52の詳細は、図3を参照して後述する。
【0026】
フレームメモリ32は、画像縮小部51から供給された縮小画像を一時的に記憶して、画像縮小部51からの縮小画像に対して、1フレーム分直前の画像(以降、直前縮小画像と称する)を、動きベクトル検出部33に供給する。
【0027】
動きベクトル検出部33は、画像縮小部51からの縮小画像と、フレームメモリ32からの直前縮小画像とに基づいてブロックマッチングを行い、縮小画像の画素毎の動きベクトルを求める。より具体的には、動きベクトル検出部33は、縮小画像の注目画素(処理対象となる画素)に対応する注目ブロックの画素と、直前縮小画像の各画素(参照画素)に対応する参照ブロックの画素とを読み出し、それぞれ対応する画素位置の画素値(例えば、輝度値)の差分絶対値和を求める。また、動きベクトル検出部33は、参照画素のそれぞれについて求められる差分絶対値和を比較し、最小となる差分絶対値和を取る参照画素を求める。そして、動きベクトル検出部33は、縮小画像の注目画素と、差分絶対値和が最小となる参照画素とから動きベクトルを計算し、動き補償処理部34に供給する。
【0028】
動き補償処理部34は、入力画像および動きベクトルに基づいて、動き補償処理を実行し、MC(Motion Compensation)画像(動き補償画像)を生成する。また、動き補償処理部34は、輝度変化検出部52からの輝度変化レベルに基づいて、MC画像と入力画像とを合成して、出力画像として出力する。動き補償処理部34の詳細は、図6を参照して後述する。
【0029】
次に、図3のブロック図を参照して、輝度変化検出部52の機能構成例について説明する。
【0030】
輝度変化検出部52は、輝度積算部71、遅延部72、差分算出部73、コアリング部74、閾値処理部75、および閾値作成部76から構成される。
【0031】
輝度積算部71は、画像縮小部51からの縮小画像1フレーム分の各画素の輝度値を積算し、その積算結果(以下、輝度積算値lum_acc_curと称する)を、遅延部72、差分算出部73、および閾値作成部76に供給する。
【0032】
遅延部72は、輝度積算部71からの輝度積算値lum_acc_curを、縮小画像1フレーム分だけ遅延して、直前輝度積算値lum_acc_preとして、差分算出部73に供給する。
【0033】
差分算出部73は、輝度積算部71からの輝度積算値lum_acc_curと、遅延部72からの直前輝度積算値lum_acc_preとの差分絶対値を算出し、輝度差分値acc_difとして、コアリング部74に供給する。
【0034】
コアリング部74は、差分算出部73からの輝度差分値acc_difに対して、コアリング処理(0乃至所定の値を全て0とする処理)を施し、所定の係数を乗じた正規化輝度差分値valを、閾値処理部75に供給する。
【0035】
閾値処理部75は、閾値作成部76から供給される複数の閾値に基づいて、コアリング部74からの正規化輝度差分値valに対して閾値処理を施し、閾値処理された正規化輝度差分値valに対応する輝度変化レベルlum_change_levelを決定する。
【0036】
閾値作成部76は、閾値処理部75の閾値処理に用いられる複数の閾値を、輝度積算部71からの輝度積算値lum_acc_curに応じて作成する。
【0037】
ここで、図4を参照して、閾値作成部76の構成例について説明する。
【0038】
図4の閾値作成部76は、係数乗算部91、乗算器92−1乃至92−8を備えている。なお、以降においては、乗算器92−1乃至92−8は、それぞれ、特に区別する必要がない場合、乗算器92−N(Nは、1乃至8の整数)と称するものとする。
【0039】
係数乗算部91は、輝度積算部71からの輝度積算値lum_acc_curに、所定の係数(例えば、1より十分小さい値の係数)を乗じ、その結果である値stepを乗算器92−Nに供給する。係数乗算部91によって乗じられる係数は、例えば、ユーザの操作により任意に設定される固定値である。
【0040】
乗算器92−Nは、係数乗算部91からの値stepに数値Nを乗じた閾値thN(=step×N)を、閾値処理部75に供給する。例えば、乗算器92−1は、係数乗算部91からの値stepに1を乗じた閾値th1(=step×1)を、閾値処理部75に供給する。また、乗算器92−2は、係数乗算部91からの値stepに2を乗じた閾値th2(=step×2)を、閾値処理部75に供給する。同様にして、乗算器92−3乃至92−8は、それぞれ、閾値th3乃至th8を、閾値処理部75に供給する。
【0041】
このような構成により、閾値作成部76は、縮小画像(入力画像)を構成する各画素の輝度値の積算値に応じて、時間的に異なるフレーム間の輝度変化を段階分けするための閾値を、動的に設定することができる。したがって、ユーザは、複数の閾値をそれぞれ設定する必要がない。
【0042】
また、図3の閾値処理部75は、乗算器92−1乃至92−8から供給される8個の閾値th1乃至th8に応じて、連続する(時間的に異なる)フレーム間の輝度変化を段階分けする(輝度変化レベルを設定する)。そして、閾値処理部75は、閾値th1乃至th8に基づいて、正規化輝度差分値valに対応する輝度変化レベルlum_change_levelを決定する。
【0043】
ここで、図5を参照して、閾値th1乃至th8と輝度変化レベルlum_change_levelとの関係について説明する。
【0044】
図5において、横軸は、正規化輝度差分値valを示し、縦軸は、輝度変化レベルlum_change_levelを示している。また、図5において、横軸には、閾値th1乃至th8が値step間隔で示されている。そして、縦軸には、閾値th1乃至th8に対応して、値0乃至8の9段階の輝度変化レベルlum_change_levelが示されている。
【0045】
図5に示される関係によれば、コアリング部74からの正規化輝度差分値valの値が、閾値th1以上閾値th2未満であった場合、閾値処理部75は、輝度変化レベルlum_change_levelとして1を出力する。正規化輝度差分値valの値が、閾値th2以上閾値th3未満であった場合、閾値処理部75は、輝度変化レベルlum_change_levelとして2を出力する。正規化輝度差分値valの値が、閾値th3以上閾値th4未満であった場合、閾値処理部75は、輝度変化レベルlum_change_levelとして3を出力する。正規化輝度差分値valの値が、閾値th4以上閾値th5未満であった場合、閾値処理部75は、輝度変化レベルlum_change_levelとして4を出力する。正規化輝度差分値valの値が、閾値th5以上閾値th6未満であった場合、閾値処理部75は、輝度変化レベルlum_change_levelとして5を出力する。正規化輝度差分値valの値が、閾値th6以上閾値th7未満であった場合、閾値処理部75は、輝度変化レベルlum_change_levelとして6を出力する。正規化輝度差分値valの値が、閾値th7以上閾値th8未満であった場合、閾値処理部75は、輝度変化レベルlum_change_levelとして7を出力する。正規化輝度差分値valの値が、閾値th8以上であった場合、閾値処理部75は、輝度変化レベルlum_change_levelとして8を出力する。
【0046】
また、正規化輝度差分値valの値が、閾値th1未満であった場合、閾値処理部75は、輝度変化レベルlum_change_levelとして0を出力する。このとき、コアリング部74が、コアリング処理により、差分算出部73からの輝度差分値acc_difに対して、0乃至th1の値を全て0としていてもよい。
【0047】
次に、図6のブロック図を参照して、動き補償処理部34の機能構成例について説明する。
【0048】
図6の動き補償処理部34は、MC画像生成部111および合成部112から構成される。
【0049】
MC画像生成部111は、動きベクトル検出部33から供給されてくる、縮小画像の各画素における動きベクトルを解析することにより、MC画像における各画素の生成に必要とされる、縮小画像の各画素に対応する入力画像の画素を検索する。また、MC画像生成部111は、検索した入力画像の画素を用いて、MC画像における各画素を生成し、画素数を例えば4倍にアップサンプリングして、合成部112に供給する。なお、本実施例においては、MC画像生成部111は、入力画像の画素のみを検索し、入力画像の画素のみを用いてMC画像における各画素を生成するものとするが、例えば、1フレーム分前の画像である直前画像の画素も併せて検索し、入力画像の画素と直前画像の画素との両方を用いるようにしても良い。
【0050】
合成部112は、輝度変化検出部52からの輝度変化レベルlum_change_levelに基づいて、入力画像とMC画像とを合成し、出力する。より具体的には、合成部112は、入力画像およびMC画像のそれぞれにおいて対応する画素位置の画素値を、輝度変化レベルlum_change_levelに応じた比率で重み付けをして足し合わせることで、補間画像を作成する。合成部112は、作成した補間画像を出力画像として、図示せぬ表示部等に出力する。
【0051】
次に、図7のフローチャートを参照して、フレームレート変換処理について説明する。
【0052】
ステップS11において、前処理部31は、入力画像が供給されてきたか否かを判定する。入力画像が供給されてきていないと判定された場合、入力画像が供給されてきたと判定されるまで、その処理を繰り返す。
【0053】
ステップS11において、入力画像が供給されてきたと判定された場合、ステップS12において、画像縮小部51は、入力画像の画素を間引くことにより、入力画像の1/4倍の縮小画像を生成し、フレームメモリ32、動きベクトル検出部33、および輝度変化検出部52に供給する。
【0054】
ステップS13において、フレームメモリ32は、画像縮小部51から供給された縮小画像を一時的に記憶するとともに、直前のタイミングで記憶した縮小画像を、直前縮小画像として、動きベクトル検出部33に供給する。この処理により、動きベクトル検出部33には、縮小画像および直前縮小画像がそれぞれ供給される。
【0055】
ステップS14において、輝度変化検出部52は、画像縮小部51から供給された縮小画像と、その縮小画像を1フレームだけ遅延した縮小画像との間の輝度変化を検出する輝度変化検出処理を行う。輝度変化検出部52は、検出した輝度変化の度合いを示す輝度変化レベルを、動き補償処理部34に供給する。なお、ステップS14の輝度変化検出処理の詳細は、図8を参照して後述する。
【0056】
ステップS15において、動きベクトル検出部33は、画像縮小部51からの縮小画像と、フレームメモリ32からの直前縮小画像とに基づいて、縮小画像の画素毎の動きベクトルを求め、動き補償処理部34に供給する。
【0057】
ステップS16において、動き補償処理部34は、入力画像および動きベクトルに基づいて、動き補償処理を実行し、MC画像を生成するとともに、輝度変化検出部52からの輝度変化レベルに基づいて、MC画像と入力画像とを合成して、出力画像として出力する。なお、ステップS16の動き補償処理の詳細は、図10を参照して後述する。
【0058】
次に、図8のフローチャートを参照して、図7のステップS14における輝度変化検出処理について説明する。
【0059】
ステップS31において、輝度積算部71は、画像縮小部51からの縮小画像1フレーム分の各画素の輝度値を積算し、その積算結果である輝度積算値lum_acc_curを、遅延部72、差分算出部73、および閾値作成部76に供給する。
【0060】
ステップS32において、遅延部72は、輝度積算部71からの輝度積算値lum_acc_curを、縮小画像1フレーム分だけ遅延して、直前輝度積算値lum_acc_preとして、差分算出部73に供給する。この処理により、差分算出部73には、輝度積算値lum_acc_curおよび直前輝度積算値lum_acc_preがそれぞれ供給される。
【0061】
ステップS33において、差分算出部73は、輝度積算値lum_acc_curと直前輝度積算値lum_acc_preとの差分絶対値を算出し、輝度差分値acc_difとして、コアリング部74に供給する。
【0062】
ステップS34において、コアリング部74は、差分算出部73からの輝度差分値acc_difに対して、コアリング処理を施し、所定の係数を乗じた正規化輝度差分値valを、閾値処理部75に供給する。
【0063】
ステップS35において、閾値作成部76は、例えば、閾値th1乃至th8の8個の閾値を、輝度積算部71からの輝度積算値lum_acc_curに応じて作成し、閾値処理部75に供給する。
【0064】
ステップS36において、閾値処理部75は、閾値作成部76から供給される閾値th1乃至th8に基づいて、コアリング部74からの正規化輝度差分値valに対して閾値処理を施し、閾値処理された正規化輝度差分値valに対応する輝度変化レベルlum_change_levelを決定する。
【0065】
ここで、図9を参照して、輝度積算値、輝度差分値、および輝度変化レベルの関係について説明する。
【0066】
図9において、横軸は時刻を示し、右側の縦軸は輝度積算値lum_acc_cur、左側の縦軸は輝度差分値acc_difを示している。また、図9において、時刻毎に表示されているインジケータは、輝度変化レベル(0乃至8)を示している。
【0067】
図9の正方形のプロットで示されるように、輝度積算値lum_acc_curは、時刻の経過とともに小さくなっている。これは、入力画像がフェードアウトしていることを示している。なお、図9においては、輝度積算値lum_acc_curは、時刻に対して加速度的に減少している。すなわち、図10の菱形のプロットで示されるように、輝度差分値acc_difが、時刻の経過とともに大きくなっている。そして、輝度差分値acc_difと同様に、インジケータが示す輝度変化レベルも時刻の経過とともに大きくなっている。すなわち、入力画像のフェードアウトに伴い、輝度変化レベルが大きくなっている。
【0068】
また、図9において、時刻16と時刻17の輝度差分値acc_difを比較すると、時刻17の輝度差分値acc_difは、時刻16の輝度差分値acc_difより30000程小さくなっている。閾値処理部75の閾値処理における閾値が一定であれば、時刻17における輝度変化レベルは、輝度差分値acc_difが略同じ値となる時刻15における輝度変化レベルと同じ7となるはずである。しかしながら、時刻16および時刻17それぞれの時刻における輝度変化レベルは8となり差がない。これは、輝度積算値lum_acc_curが小さくなると、閾値作成部76で作成される閾値th1乃至th8も小さくなることによる。すなわち、閾値th1乃至th8が小さくなると、輝度差分値acc_difが小さい値であっても、閾値処理における閾値を超えやすくなり、輝度変化レベルは高いレベルに決定されやすくなる。
【0069】
以上のようにして、入力画像(縮小画像)の輝度値に応じて得られる閾値に基づいて、入力画像(縮小画像)の輝度変化レベルが決定される。
【0070】
結果として、ユーザの操作による閾値の設定を行うことなく、より簡単に、入力画像の輝度変化、つまり、フェードインやフェードアウトを検出することが可能となる。
【0071】
また、上述した処理においては、縮小画像を用いてフェード検出(輝度変化検出)を行うので、入力画像をそのまま用いる場合より、演算量が少なくて済む。
【0072】
次に、図10のフローチャートを参照して、図7のステップS16における動き補償処理について説明する。
【0073】
ステップS51において、MC画像生成部111は、動きベクトル検出部33から供給されてくる動きベクトルに基づいて、MC画像を生成する。より具体的には、MC画像生成部111は、縮小画像の各画素における動きベクトルを解析することにより、MC画像における各画素の生成に必要とされる、縮小画像の各画素に対応する入力画像の画素を検索する。また、MC画像生成部111は、検索した入力画像の画素を用いて、MC画像における各画素を生成し、画素数を4倍にアップサンプリングして、合成部112に供給する。
【0074】
ステップS52において、合成部112は、輝度変化レベルlum_change_levelに応じた比率で、入力画像とMC画像とを合成する。より具体的には、合成部112は、入力画像およびMC画像のそれぞれにおいて対応する画素位置の画素値を、輝度変化レベルlum_change_levelに応じた比率で重み付けをして足し合わせることで、補間画像を作成する。
【0075】
例えば、輝度変化レベルlum_change_levelが8であった場合、合成部112は、入力画像およびMC画像のそれぞれにおいて対応する各画素の画素値を8:0の比率で重み付けをして足し合わせることで、補間画像を作成する。すなわち、輝度変化レベルlum_change_levelが8であった場合、合成部112は、入力画像をそのまま補間画像とする。
【0076】
また、例えば、輝度変化レベルlum_change_levelが5であった場合、合成部112は、入力画像およびMC画像のそれぞれにおいて対応する各画素の画素値を5:3の比率で重み付けをして足し合わせることで、補間画像を作成する。
【0077】
さらに、例えば、輝度変化レベルlum_change_levelが0であった場合、合成部112は、入力画像およびMC画像のそれぞれにおいて対応する各画素の画素値を0:8の比率で重み付けをして足し合わせることで、補間画像を作成する。すなわち、輝度変化レベルlum_change_levelが0であった場合、合成部112は、MC画像をそのまま補間画像とする。
【0078】
このように、合成部112は、輝度変化レベルlum_change_levelが高いほど、入力画像の比率が高い補間画像を出力し、輝度変化レベルlum_change_levelが低いほど、MC画像の比率が高い補間画像を出力する。
【0079】
ステップS53において、合成部112は、合成した補間画像を出力画像として、図示せぬ表示部等に出力する。
【0080】
以上の処理により、フェードインまたはフェードアウトしていない、動きベクトルの信頼性の高い画像については、動き補償処理により生成されたMC画像を含む割合が高い画像が出力され、逆に、フェードインまたはフェードアウトしているため、動きベクトルの信頼度が低い場合、入力画像を含む割合が高い画像が出力される。
【0081】
結果として、動きベクトルが誤検出されやすいフェードインやフェードアウトを含む入力画像に対するフレームレート変換処理において、フェード検出された場合でも、誤検出された動きベクトルを用いた動き補償におけるエラーの影響が少ない補間画像を出力することができる。
【0082】
以上のように、画像処理装置11では、縮小画像における複数の画素の輝度値を積算した輝度積算値lum_acc_curと、縮小画像と時間的に異なる直前縮小画像における複数の画素の輝度値を積算した直前輝度積算値lum_acc_preとの輝度差分値acc_difを算出し、輝度差分値acc_difについての閾値であって、縮小画像と直前縮小画像との間の輝度変化を、輝度変化の度合いを示す輝度変化レベルlum_change_levelで段階分けするための、輝度変化レベルlum_change_levelに対応した複数の閾値th1乃至th8を、輝度積算値lum_acc_curに応じて作成し、複数の閾値th1乃至th8に基づいて、輝度差分値acc_difに対応する輝度変化レベルlum_change_levelを決定するので、ユーザの操作による閾値の設定を行うことなく、より簡単にフェードインやフェードアウトを検出することができる。
【0083】
さらに、画像処理装置11では、入力画像および縮小画像に対するブロックマッチングにより動きベクトルを検出し、動きベクトルにより入力画像を動き補償して、動き補償画像を生成し、輝度変化レベルに応じた比率で、入力画像における各画素と、対応する動き補償画像における各画素とを合成し、入力画像を補間する補間画像として出力するので、動きベクトルが誤検出されやすいフェードインやフェードアウトを含む入力画像に対するフレームレート変換処理において、フェード検出された場合でも、誤検出された動きベクトルを用いた動き補償におけるエラーの影響が少ない補間画像を出力することができる。
【0084】
なお、以上の処理においては、輝度変化レベルlum_change_levelを、0乃至8の9段階としたが、より少なく段階分けされてもよいし、より多く段階分けされてもよい。
【0085】
また、以上の処理においては、入力画像に対応する縮小画像と直前縮小画像とを用いた処理について説明してきたが、タイミングの異なる画像であれば、その他の画像であってもよく、例えば、縮小画像と直後の縮小画像であっても良いし、2フレーム前の縮小画像と入力画像に対応する縮小画像などであっても良い。また、縮小画像と直前縮小画像との2枚の画像を用いる例について説明してきたが、それ以上の数の画像を用いるようにしてもよく、例えば、縮小画像、直前縮小画像、および直後縮小画像を用いた処理とするようにしても良いし、それ以上の数の画像を用いた処理としても良い。
【0086】
上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等に、プログラム記録媒体からインストールされる。
【0087】
図11は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
【0088】
コンピュータにおいて、CPU(Central Processing Unit)901,ROM(Read Only Memory)902,RAM(Random Access Memory)903は、バス904により相互に接続されている。
【0089】
バス904には、さらに、入出力インタフェース905が接続されている。入出力インタフェース905には、キーボード、マウス、マイクロホン等よりなる入力部906、ディスプレイ、スピーカ等よりなる出力部907、ハードディスクや不揮発性のメモリ等よりなる記憶部908、ネットワークインタフェース等よりなる通信部909、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリ等のリムーバブルメディア911を駆動するドライブ910が接続されている。
【0090】
以上のように構成されるコンピュータでは、CPU901が、例えば、記憶部908に記憶されているプログラムを、入出力インタフェース905およびバス904を介して、RAM903にロードして実行することにより、上述した一連の処理が行われる。
【0091】
コンピュータ(CPU901)が実行するプログラムは、例えば、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)等)、光磁気ディスク、もしくは半導体メモリ等よりなるパッケージメディアであるリムーバブルメディア911に記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供される。
【0092】
そして、プログラムは、リムーバブルメディア911をドライブ910に装着することにより、入出力インタフェース905を介して、記憶部908にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部909で受信し、記憶部908にインストールすることができる。その他、プログラムは、ROM902や記憶部908に、あらかじめインストールしておくことができる。
【0093】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【0094】
また、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【0095】
【図1】フレームレート変換の概念図である。
【図2】本発明を適用した画像処理装置の一実施の形態の構成例を示すブロック図である。
【図3】輝度変化検出部の機能構成例を示すブロック図である。
【図4】閾値作成部の機能構成例を示すブロック図である。
【図5】閾値と輝度変化レベルとの関係を説明する図である。
【図6】動き補償処理部の機能構成例を示すブロック図である。
【図7】フレームレート変換処理について説明するフローチャートである。
【図8】輝度変化検出処理について説明するフローチャートである。
【図9】輝度積算値、輝度差分値、および輝度変化レベルの関係について説明する図である。
【図10】動き補償処理について説明するフローチャートである。
【図11】パーソナルコンピュータの構成例を説明する図である。
【符号の説明】
【0096】
11 画像処理装置, 31 前処理部, 32 フレームメモリ, 33 動きベクトル検出部, 34 動き補償処理部, 51 画像縮小部, 52 輝度変化検出部, 71 輝度積算部, 72 遅延部, 73 差分算出部, 74 コアリング部, 75 閾値処理部, 76 閾値作成部, 91 係数乗算部, 92−1乃至92−8 乗算器, 111 MC画像生成部, 112 合成部
【技術分野】
【0001】
本発明は、画像処理装置および方法、並びにプログラムに関し、特に、より簡単にフェードインやフェードアウトを検出することができるようにする画像処理装置および方法、並びにプログラムに関する。
【背景技術】
【0002】
ブロックマッチング手法により動きベクトル検出し、その動きベクトルを用いて動き補償処理を行うことにより、時間的に異なる前後の画像(フレーム)から新たな補間画像(補間フレーム)を作成するフレームレート変換処理が一般に存在する。
【0003】
図1は、フレームレート変換処理の概念を説明する図である。
【0004】
図1において、横軸は時刻(単位は秒とする)を示し、縦軸は画像の動きを1次元で表現したときの位置を示している。横軸には、1/120秒ずつ目盛りが振られている。また、図1において、白抜きの大きい丸印は入力画像信号を表し、塗りつぶされた小さい丸印は出力画像信号を表している。すなわち、図1は、フィルムモードがビデオで60Hzの入力画像を、120Hzの出力画像にフレームレート変換したときの様子を表している。
【0005】
フレームレート変換処理においては、図1に示されるように、入力画像の位置(動き)を補間するように、出力画像が生成される。
【0006】
このようなブロックマッチング手法による動きベクトル検出においては、画像がフェードインまたはフェードアウトしたときに、実際は静止画像であるにもかかわらず、動きがある画像として動きベクトルが誤検出されることがある。この場合、誤検出された動きベクトルを用いた動き補償処理によって、乱れた補間画像が出力されてしまう。
【0007】
そこで、フェードインまたはフェードアウトした静止画部分を検出して、その静止画部分の動きベクトルを0にすることが提案されている(例えば、特許文献1参照)。
【0008】
【特許文献1】特開2007−243627号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
ところで、特許文献1の手法では、フェードインまたはフェードアウトであるか否かの判定において、輝度値に対する閾値処理(輝度値と所定の閾値との比較)を行っている。
【0010】
しかしながら、上述の閾値処理で用いられる閾値は固定値であり、ユーザの操作によって設定される必要があった。
【0011】
本発明は、このような状況に鑑みてなされたものであり、ユーザの操作によって閾値を設定することなく、より簡単にフェードインやフェードアウトを検出することができるようにするものである。
【課題を解決するための手段】
【0012】
本発明の一側面の画像処理装置は、第1の画像における複数の画素の輝度値を積算した第1の積算値と、前記第1の画像と時間的に異なる第2の画像における複数の画素の輝度値を積算した第2の積算値との差分値を算出する差分値算出手段と、前記差分値についての閾値であって、前記第1の画像と前記第2の画像との間の輝度変化を、前記輝度変化の度合いを示す輝度変化レベルで段階分けするための、前記輝度変化レベルに対応した複数の閾値を、前記第1の積算値に応じて作成する閾値作成手段と、前記複数の閾値に基づいて、前記差分値に対応する前記輝度変化レベルを決定する輝度変化レベル決定手段とを備える。
【0013】
前記画像処理装置には、前記第1の画像および前記第2の画像に対するブロックマッチングにより動きベクトルを検出する動きベクトル検出手段と、前記動きベクトルにより前記第1の画像を動き補償して、動き補償画像を生成する動き補償画像生成手段と、前記輝度変化レベル決定手段により決定された前記輝度変化レベルに応じた比率で、前記第1の画像における各画素と、対応する前記動き補償画像における各画素とを合成し、前記第1の画像および前記第2の画像を補間する補間画像として出力する補間画像出力手段とをさらに設けることができる。
【0014】
前記補間画像出力手段には、前記輝度変化レベル決定手段によって決定された前記輝度変化レベルが高いほど、前記第1の画像の比率が高い前記補間画像を出力させ、前記輝度変化レベルが低いほど、前記動き補償画像の比率が高い前記補間画像を出力させることができる。
【0015】
前記画像処理装置には、前記第1の画像を縮小した第1の縮小画像を生成する縮小画像生成手段をさらに設け、前記差分値算出手段には、前記第2の画像を縮小した第2の縮小画像における複数の画素の輝度値を積算した前記第1の輝度値と、前記第1の縮小画像と時間的に異なる第2の縮小画像における複数の画素の輝度値を積算した前記第2の積算値との差分値を算出させることができる。
【0016】
前記動きベクトル検出手段には、前記第1の縮小画像および前記第2の縮小画像から前記動きベクトルを検出させる。
【0017】
本発明の一側面の画像処理方法は、第1の画像における複数の画素の輝度値を積算した第1の積算値と、前記第1の画像と時間的に異なる第2の画像における複数の画素の輝度値を積算した第2の積算値との差分値を算出する差分値算出ステップと、前記差分値についての閾値であって、前記第1の画像と前記第2の画像との間の輝度変化を、前記輝度変化の度合いを示す輝度変化レベルで段階分けするための、前記輝度変化レベルに対応した複数の閾値を、前記第1の積算値に応じて作成する閾値作成ステップと、前記複数の閾値に基づいて、前記差分値に対応する前記輝度変化レベルを決定する輝度変化レベル決定ステップとを含む。
【0018】
本発明の一側面のプログラムは、第1の画像における複数の画素の輝度値を積算した第1の積算値と、前記第1の画像と時間的に異なる第2の画像における複数の画素の輝度値を積算した第2の積算値との差分値を算出する差分値算出ステップと、前記差分値についての閾値であって、前記第1の画像と前記第2の画像との間の輝度変化を、前記輝度変化の度合いを示す輝度変化レベルで段階分けするための、前記輝度変化レベルに対応した複数の閾値を、前記第1の積算値に応じて作成する閾値作成ステップと、前記複数の閾値に基づいて、前記差分値に対応する前記輝度変化レベルを決定する輝度変化レベル決定ステップとを含む処理をコンピュータに実行させる。
【0019】
本発明の一側面においては、第1の画像における複数の画素の輝度値を積算した第1の積算値と、第1の画像と時間的に異なる第2の画像における複数の画素の輝度値が積算した第2の積算値との差分値が算出され、差分値についての閾値であって、第1の画像と第2の画像との間の輝度変化を、輝度変化の度合いを示す輝度変化レベルで段階分けするための、輝度変化レベルに対応した複数の閾値が、第1の積算値に応じて作成され、複数の閾値に基づいて、差分値に対応する輝度変化レベルが決定される。
【発明の効果】
【0020】
本発明の一側面によれば、より簡単にフェードインやフェードアウトを検出することが可能となる。
【発明を実施するための最良の形態】
【0021】
以下、本発明の実施の形態について図を参照して説明する。
【0022】
図2は、本発明を適用した画像処理装置の一実施の形態の構成例を示している。
【0023】
図2の画像処理装置11は、入力画像におけるフェードインやフェードアウトを検出し、その検出結果に応じて、補間画像(補間フレーム)を作成し、フレームレート変換された出力画像を出力する。なお、以下においては、フェードインやフェードアウトを検出することを、適宜、フェード検出とも称する。
【0024】
図2の画像処理装置11は、前処理部31、フレームメモリ32、動きベクトル検出部33、および動き補償処理部34から構成される。
【0025】
前処理部31は、画像縮小部51および輝度変化検出部52を備えており、入力画像の縮小画像を生成するとともに、その縮小画像における輝度変化を検出する。より具体的には、画像縮小部51は、入力画像の画素を間引くことにより、例えば、入力画像の1/4倍の縮小画像を生成し、フレームメモリ32、動きベクトル検出部33、および輝度変化検出部52に供給する。輝度変化検出部52は、画像縮小部51から供給された縮小画像と、その縮小画像を1フレームだけ遅延した縮小画像との間(時間的に異なるフレーム間)の輝度変化を検出することで、フェード検出を行う。輝度変化検出部52は、検出した輝度変化の度合いを示す輝度変化レベルを、動き補償処理部34に供給する。なお、輝度変化検出部52の詳細は、図3を参照して後述する。
【0026】
フレームメモリ32は、画像縮小部51から供給された縮小画像を一時的に記憶して、画像縮小部51からの縮小画像に対して、1フレーム分直前の画像(以降、直前縮小画像と称する)を、動きベクトル検出部33に供給する。
【0027】
動きベクトル検出部33は、画像縮小部51からの縮小画像と、フレームメモリ32からの直前縮小画像とに基づいてブロックマッチングを行い、縮小画像の画素毎の動きベクトルを求める。より具体的には、動きベクトル検出部33は、縮小画像の注目画素(処理対象となる画素)に対応する注目ブロックの画素と、直前縮小画像の各画素(参照画素)に対応する参照ブロックの画素とを読み出し、それぞれ対応する画素位置の画素値(例えば、輝度値)の差分絶対値和を求める。また、動きベクトル検出部33は、参照画素のそれぞれについて求められる差分絶対値和を比較し、最小となる差分絶対値和を取る参照画素を求める。そして、動きベクトル検出部33は、縮小画像の注目画素と、差分絶対値和が最小となる参照画素とから動きベクトルを計算し、動き補償処理部34に供給する。
【0028】
動き補償処理部34は、入力画像および動きベクトルに基づいて、動き補償処理を実行し、MC(Motion Compensation)画像(動き補償画像)を生成する。また、動き補償処理部34は、輝度変化検出部52からの輝度変化レベルに基づいて、MC画像と入力画像とを合成して、出力画像として出力する。動き補償処理部34の詳細は、図6を参照して後述する。
【0029】
次に、図3のブロック図を参照して、輝度変化検出部52の機能構成例について説明する。
【0030】
輝度変化検出部52は、輝度積算部71、遅延部72、差分算出部73、コアリング部74、閾値処理部75、および閾値作成部76から構成される。
【0031】
輝度積算部71は、画像縮小部51からの縮小画像1フレーム分の各画素の輝度値を積算し、その積算結果(以下、輝度積算値lum_acc_curと称する)を、遅延部72、差分算出部73、および閾値作成部76に供給する。
【0032】
遅延部72は、輝度積算部71からの輝度積算値lum_acc_curを、縮小画像1フレーム分だけ遅延して、直前輝度積算値lum_acc_preとして、差分算出部73に供給する。
【0033】
差分算出部73は、輝度積算部71からの輝度積算値lum_acc_curと、遅延部72からの直前輝度積算値lum_acc_preとの差分絶対値を算出し、輝度差分値acc_difとして、コアリング部74に供給する。
【0034】
コアリング部74は、差分算出部73からの輝度差分値acc_difに対して、コアリング処理(0乃至所定の値を全て0とする処理)を施し、所定の係数を乗じた正規化輝度差分値valを、閾値処理部75に供給する。
【0035】
閾値処理部75は、閾値作成部76から供給される複数の閾値に基づいて、コアリング部74からの正規化輝度差分値valに対して閾値処理を施し、閾値処理された正規化輝度差分値valに対応する輝度変化レベルlum_change_levelを決定する。
【0036】
閾値作成部76は、閾値処理部75の閾値処理に用いられる複数の閾値を、輝度積算部71からの輝度積算値lum_acc_curに応じて作成する。
【0037】
ここで、図4を参照して、閾値作成部76の構成例について説明する。
【0038】
図4の閾値作成部76は、係数乗算部91、乗算器92−1乃至92−8を備えている。なお、以降においては、乗算器92−1乃至92−8は、それぞれ、特に区別する必要がない場合、乗算器92−N(Nは、1乃至8の整数)と称するものとする。
【0039】
係数乗算部91は、輝度積算部71からの輝度積算値lum_acc_curに、所定の係数(例えば、1より十分小さい値の係数)を乗じ、その結果である値stepを乗算器92−Nに供給する。係数乗算部91によって乗じられる係数は、例えば、ユーザの操作により任意に設定される固定値である。
【0040】
乗算器92−Nは、係数乗算部91からの値stepに数値Nを乗じた閾値thN(=step×N)を、閾値処理部75に供給する。例えば、乗算器92−1は、係数乗算部91からの値stepに1を乗じた閾値th1(=step×1)を、閾値処理部75に供給する。また、乗算器92−2は、係数乗算部91からの値stepに2を乗じた閾値th2(=step×2)を、閾値処理部75に供給する。同様にして、乗算器92−3乃至92−8は、それぞれ、閾値th3乃至th8を、閾値処理部75に供給する。
【0041】
このような構成により、閾値作成部76は、縮小画像(入力画像)を構成する各画素の輝度値の積算値に応じて、時間的に異なるフレーム間の輝度変化を段階分けするための閾値を、動的に設定することができる。したがって、ユーザは、複数の閾値をそれぞれ設定する必要がない。
【0042】
また、図3の閾値処理部75は、乗算器92−1乃至92−8から供給される8個の閾値th1乃至th8に応じて、連続する(時間的に異なる)フレーム間の輝度変化を段階分けする(輝度変化レベルを設定する)。そして、閾値処理部75は、閾値th1乃至th8に基づいて、正規化輝度差分値valに対応する輝度変化レベルlum_change_levelを決定する。
【0043】
ここで、図5を参照して、閾値th1乃至th8と輝度変化レベルlum_change_levelとの関係について説明する。
【0044】
図5において、横軸は、正規化輝度差分値valを示し、縦軸は、輝度変化レベルlum_change_levelを示している。また、図5において、横軸には、閾値th1乃至th8が値step間隔で示されている。そして、縦軸には、閾値th1乃至th8に対応して、値0乃至8の9段階の輝度変化レベルlum_change_levelが示されている。
【0045】
図5に示される関係によれば、コアリング部74からの正規化輝度差分値valの値が、閾値th1以上閾値th2未満であった場合、閾値処理部75は、輝度変化レベルlum_change_levelとして1を出力する。正規化輝度差分値valの値が、閾値th2以上閾値th3未満であった場合、閾値処理部75は、輝度変化レベルlum_change_levelとして2を出力する。正規化輝度差分値valの値が、閾値th3以上閾値th4未満であった場合、閾値処理部75は、輝度変化レベルlum_change_levelとして3を出力する。正規化輝度差分値valの値が、閾値th4以上閾値th5未満であった場合、閾値処理部75は、輝度変化レベルlum_change_levelとして4を出力する。正規化輝度差分値valの値が、閾値th5以上閾値th6未満であった場合、閾値処理部75は、輝度変化レベルlum_change_levelとして5を出力する。正規化輝度差分値valの値が、閾値th6以上閾値th7未満であった場合、閾値処理部75は、輝度変化レベルlum_change_levelとして6を出力する。正規化輝度差分値valの値が、閾値th7以上閾値th8未満であった場合、閾値処理部75は、輝度変化レベルlum_change_levelとして7を出力する。正規化輝度差分値valの値が、閾値th8以上であった場合、閾値処理部75は、輝度変化レベルlum_change_levelとして8を出力する。
【0046】
また、正規化輝度差分値valの値が、閾値th1未満であった場合、閾値処理部75は、輝度変化レベルlum_change_levelとして0を出力する。このとき、コアリング部74が、コアリング処理により、差分算出部73からの輝度差分値acc_difに対して、0乃至th1の値を全て0としていてもよい。
【0047】
次に、図6のブロック図を参照して、動き補償処理部34の機能構成例について説明する。
【0048】
図6の動き補償処理部34は、MC画像生成部111および合成部112から構成される。
【0049】
MC画像生成部111は、動きベクトル検出部33から供給されてくる、縮小画像の各画素における動きベクトルを解析することにより、MC画像における各画素の生成に必要とされる、縮小画像の各画素に対応する入力画像の画素を検索する。また、MC画像生成部111は、検索した入力画像の画素を用いて、MC画像における各画素を生成し、画素数を例えば4倍にアップサンプリングして、合成部112に供給する。なお、本実施例においては、MC画像生成部111は、入力画像の画素のみを検索し、入力画像の画素のみを用いてMC画像における各画素を生成するものとするが、例えば、1フレーム分前の画像である直前画像の画素も併せて検索し、入力画像の画素と直前画像の画素との両方を用いるようにしても良い。
【0050】
合成部112は、輝度変化検出部52からの輝度変化レベルlum_change_levelに基づいて、入力画像とMC画像とを合成し、出力する。より具体的には、合成部112は、入力画像およびMC画像のそれぞれにおいて対応する画素位置の画素値を、輝度変化レベルlum_change_levelに応じた比率で重み付けをして足し合わせることで、補間画像を作成する。合成部112は、作成した補間画像を出力画像として、図示せぬ表示部等に出力する。
【0051】
次に、図7のフローチャートを参照して、フレームレート変換処理について説明する。
【0052】
ステップS11において、前処理部31は、入力画像が供給されてきたか否かを判定する。入力画像が供給されてきていないと判定された場合、入力画像が供給されてきたと判定されるまで、その処理を繰り返す。
【0053】
ステップS11において、入力画像が供給されてきたと判定された場合、ステップS12において、画像縮小部51は、入力画像の画素を間引くことにより、入力画像の1/4倍の縮小画像を生成し、フレームメモリ32、動きベクトル検出部33、および輝度変化検出部52に供給する。
【0054】
ステップS13において、フレームメモリ32は、画像縮小部51から供給された縮小画像を一時的に記憶するとともに、直前のタイミングで記憶した縮小画像を、直前縮小画像として、動きベクトル検出部33に供給する。この処理により、動きベクトル検出部33には、縮小画像および直前縮小画像がそれぞれ供給される。
【0055】
ステップS14において、輝度変化検出部52は、画像縮小部51から供給された縮小画像と、その縮小画像を1フレームだけ遅延した縮小画像との間の輝度変化を検出する輝度変化検出処理を行う。輝度変化検出部52は、検出した輝度変化の度合いを示す輝度変化レベルを、動き補償処理部34に供給する。なお、ステップS14の輝度変化検出処理の詳細は、図8を参照して後述する。
【0056】
ステップS15において、動きベクトル検出部33は、画像縮小部51からの縮小画像と、フレームメモリ32からの直前縮小画像とに基づいて、縮小画像の画素毎の動きベクトルを求め、動き補償処理部34に供給する。
【0057】
ステップS16において、動き補償処理部34は、入力画像および動きベクトルに基づいて、動き補償処理を実行し、MC画像を生成するとともに、輝度変化検出部52からの輝度変化レベルに基づいて、MC画像と入力画像とを合成して、出力画像として出力する。なお、ステップS16の動き補償処理の詳細は、図10を参照して後述する。
【0058】
次に、図8のフローチャートを参照して、図7のステップS14における輝度変化検出処理について説明する。
【0059】
ステップS31において、輝度積算部71は、画像縮小部51からの縮小画像1フレーム分の各画素の輝度値を積算し、その積算結果である輝度積算値lum_acc_curを、遅延部72、差分算出部73、および閾値作成部76に供給する。
【0060】
ステップS32において、遅延部72は、輝度積算部71からの輝度積算値lum_acc_curを、縮小画像1フレーム分だけ遅延して、直前輝度積算値lum_acc_preとして、差分算出部73に供給する。この処理により、差分算出部73には、輝度積算値lum_acc_curおよび直前輝度積算値lum_acc_preがそれぞれ供給される。
【0061】
ステップS33において、差分算出部73は、輝度積算値lum_acc_curと直前輝度積算値lum_acc_preとの差分絶対値を算出し、輝度差分値acc_difとして、コアリング部74に供給する。
【0062】
ステップS34において、コアリング部74は、差分算出部73からの輝度差分値acc_difに対して、コアリング処理を施し、所定の係数を乗じた正規化輝度差分値valを、閾値処理部75に供給する。
【0063】
ステップS35において、閾値作成部76は、例えば、閾値th1乃至th8の8個の閾値を、輝度積算部71からの輝度積算値lum_acc_curに応じて作成し、閾値処理部75に供給する。
【0064】
ステップS36において、閾値処理部75は、閾値作成部76から供給される閾値th1乃至th8に基づいて、コアリング部74からの正規化輝度差分値valに対して閾値処理を施し、閾値処理された正規化輝度差分値valに対応する輝度変化レベルlum_change_levelを決定する。
【0065】
ここで、図9を参照して、輝度積算値、輝度差分値、および輝度変化レベルの関係について説明する。
【0066】
図9において、横軸は時刻を示し、右側の縦軸は輝度積算値lum_acc_cur、左側の縦軸は輝度差分値acc_difを示している。また、図9において、時刻毎に表示されているインジケータは、輝度変化レベル(0乃至8)を示している。
【0067】
図9の正方形のプロットで示されるように、輝度積算値lum_acc_curは、時刻の経過とともに小さくなっている。これは、入力画像がフェードアウトしていることを示している。なお、図9においては、輝度積算値lum_acc_curは、時刻に対して加速度的に減少している。すなわち、図10の菱形のプロットで示されるように、輝度差分値acc_difが、時刻の経過とともに大きくなっている。そして、輝度差分値acc_difと同様に、インジケータが示す輝度変化レベルも時刻の経過とともに大きくなっている。すなわち、入力画像のフェードアウトに伴い、輝度変化レベルが大きくなっている。
【0068】
また、図9において、時刻16と時刻17の輝度差分値acc_difを比較すると、時刻17の輝度差分値acc_difは、時刻16の輝度差分値acc_difより30000程小さくなっている。閾値処理部75の閾値処理における閾値が一定であれば、時刻17における輝度変化レベルは、輝度差分値acc_difが略同じ値となる時刻15における輝度変化レベルと同じ7となるはずである。しかしながら、時刻16および時刻17それぞれの時刻における輝度変化レベルは8となり差がない。これは、輝度積算値lum_acc_curが小さくなると、閾値作成部76で作成される閾値th1乃至th8も小さくなることによる。すなわち、閾値th1乃至th8が小さくなると、輝度差分値acc_difが小さい値であっても、閾値処理における閾値を超えやすくなり、輝度変化レベルは高いレベルに決定されやすくなる。
【0069】
以上のようにして、入力画像(縮小画像)の輝度値に応じて得られる閾値に基づいて、入力画像(縮小画像)の輝度変化レベルが決定される。
【0070】
結果として、ユーザの操作による閾値の設定を行うことなく、より簡単に、入力画像の輝度変化、つまり、フェードインやフェードアウトを検出することが可能となる。
【0071】
また、上述した処理においては、縮小画像を用いてフェード検出(輝度変化検出)を行うので、入力画像をそのまま用いる場合より、演算量が少なくて済む。
【0072】
次に、図10のフローチャートを参照して、図7のステップS16における動き補償処理について説明する。
【0073】
ステップS51において、MC画像生成部111は、動きベクトル検出部33から供給されてくる動きベクトルに基づいて、MC画像を生成する。より具体的には、MC画像生成部111は、縮小画像の各画素における動きベクトルを解析することにより、MC画像における各画素の生成に必要とされる、縮小画像の各画素に対応する入力画像の画素を検索する。また、MC画像生成部111は、検索した入力画像の画素を用いて、MC画像における各画素を生成し、画素数を4倍にアップサンプリングして、合成部112に供給する。
【0074】
ステップS52において、合成部112は、輝度変化レベルlum_change_levelに応じた比率で、入力画像とMC画像とを合成する。より具体的には、合成部112は、入力画像およびMC画像のそれぞれにおいて対応する画素位置の画素値を、輝度変化レベルlum_change_levelに応じた比率で重み付けをして足し合わせることで、補間画像を作成する。
【0075】
例えば、輝度変化レベルlum_change_levelが8であった場合、合成部112は、入力画像およびMC画像のそれぞれにおいて対応する各画素の画素値を8:0の比率で重み付けをして足し合わせることで、補間画像を作成する。すなわち、輝度変化レベルlum_change_levelが8であった場合、合成部112は、入力画像をそのまま補間画像とする。
【0076】
また、例えば、輝度変化レベルlum_change_levelが5であった場合、合成部112は、入力画像およびMC画像のそれぞれにおいて対応する各画素の画素値を5:3の比率で重み付けをして足し合わせることで、補間画像を作成する。
【0077】
さらに、例えば、輝度変化レベルlum_change_levelが0であった場合、合成部112は、入力画像およびMC画像のそれぞれにおいて対応する各画素の画素値を0:8の比率で重み付けをして足し合わせることで、補間画像を作成する。すなわち、輝度変化レベルlum_change_levelが0であった場合、合成部112は、MC画像をそのまま補間画像とする。
【0078】
このように、合成部112は、輝度変化レベルlum_change_levelが高いほど、入力画像の比率が高い補間画像を出力し、輝度変化レベルlum_change_levelが低いほど、MC画像の比率が高い補間画像を出力する。
【0079】
ステップS53において、合成部112は、合成した補間画像を出力画像として、図示せぬ表示部等に出力する。
【0080】
以上の処理により、フェードインまたはフェードアウトしていない、動きベクトルの信頼性の高い画像については、動き補償処理により生成されたMC画像を含む割合が高い画像が出力され、逆に、フェードインまたはフェードアウトしているため、動きベクトルの信頼度が低い場合、入力画像を含む割合が高い画像が出力される。
【0081】
結果として、動きベクトルが誤検出されやすいフェードインやフェードアウトを含む入力画像に対するフレームレート変換処理において、フェード検出された場合でも、誤検出された動きベクトルを用いた動き補償におけるエラーの影響が少ない補間画像を出力することができる。
【0082】
以上のように、画像処理装置11では、縮小画像における複数の画素の輝度値を積算した輝度積算値lum_acc_curと、縮小画像と時間的に異なる直前縮小画像における複数の画素の輝度値を積算した直前輝度積算値lum_acc_preとの輝度差分値acc_difを算出し、輝度差分値acc_difについての閾値であって、縮小画像と直前縮小画像との間の輝度変化を、輝度変化の度合いを示す輝度変化レベルlum_change_levelで段階分けするための、輝度変化レベルlum_change_levelに対応した複数の閾値th1乃至th8を、輝度積算値lum_acc_curに応じて作成し、複数の閾値th1乃至th8に基づいて、輝度差分値acc_difに対応する輝度変化レベルlum_change_levelを決定するので、ユーザの操作による閾値の設定を行うことなく、より簡単にフェードインやフェードアウトを検出することができる。
【0083】
さらに、画像処理装置11では、入力画像および縮小画像に対するブロックマッチングにより動きベクトルを検出し、動きベクトルにより入力画像を動き補償して、動き補償画像を生成し、輝度変化レベルに応じた比率で、入力画像における各画素と、対応する動き補償画像における各画素とを合成し、入力画像を補間する補間画像として出力するので、動きベクトルが誤検出されやすいフェードインやフェードアウトを含む入力画像に対するフレームレート変換処理において、フェード検出された場合でも、誤検出された動きベクトルを用いた動き補償におけるエラーの影響が少ない補間画像を出力することができる。
【0084】
なお、以上の処理においては、輝度変化レベルlum_change_levelを、0乃至8の9段階としたが、より少なく段階分けされてもよいし、より多く段階分けされてもよい。
【0085】
また、以上の処理においては、入力画像に対応する縮小画像と直前縮小画像とを用いた処理について説明してきたが、タイミングの異なる画像であれば、その他の画像であってもよく、例えば、縮小画像と直後の縮小画像であっても良いし、2フレーム前の縮小画像と入力画像に対応する縮小画像などであっても良い。また、縮小画像と直前縮小画像との2枚の画像を用いる例について説明してきたが、それ以上の数の画像を用いるようにしてもよく、例えば、縮小画像、直前縮小画像、および直後縮小画像を用いた処理とするようにしても良いし、それ以上の数の画像を用いた処理としても良い。
【0086】
上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等に、プログラム記録媒体からインストールされる。
【0087】
図11は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
【0088】
コンピュータにおいて、CPU(Central Processing Unit)901,ROM(Read Only Memory)902,RAM(Random Access Memory)903は、バス904により相互に接続されている。
【0089】
バス904には、さらに、入出力インタフェース905が接続されている。入出力インタフェース905には、キーボード、マウス、マイクロホン等よりなる入力部906、ディスプレイ、スピーカ等よりなる出力部907、ハードディスクや不揮発性のメモリ等よりなる記憶部908、ネットワークインタフェース等よりなる通信部909、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリ等のリムーバブルメディア911を駆動するドライブ910が接続されている。
【0090】
以上のように構成されるコンピュータでは、CPU901が、例えば、記憶部908に記憶されているプログラムを、入出力インタフェース905およびバス904を介して、RAM903にロードして実行することにより、上述した一連の処理が行われる。
【0091】
コンピュータ(CPU901)が実行するプログラムは、例えば、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)等)、光磁気ディスク、もしくは半導体メモリ等よりなるパッケージメディアであるリムーバブルメディア911に記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供される。
【0092】
そして、プログラムは、リムーバブルメディア911をドライブ910に装着することにより、入出力インタフェース905を介して、記憶部908にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部909で受信し、記憶部908にインストールすることができる。その他、プログラムは、ROM902や記憶部908に、あらかじめインストールしておくことができる。
【0093】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【0094】
また、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【0095】
【図1】フレームレート変換の概念図である。
【図2】本発明を適用した画像処理装置の一実施の形態の構成例を示すブロック図である。
【図3】輝度変化検出部の機能構成例を示すブロック図である。
【図4】閾値作成部の機能構成例を示すブロック図である。
【図5】閾値と輝度変化レベルとの関係を説明する図である。
【図6】動き補償処理部の機能構成例を示すブロック図である。
【図7】フレームレート変換処理について説明するフローチャートである。
【図8】輝度変化検出処理について説明するフローチャートである。
【図9】輝度積算値、輝度差分値、および輝度変化レベルの関係について説明する図である。
【図10】動き補償処理について説明するフローチャートである。
【図11】パーソナルコンピュータの構成例を説明する図である。
【符号の説明】
【0096】
11 画像処理装置, 31 前処理部, 32 フレームメモリ, 33 動きベクトル検出部, 34 動き補償処理部, 51 画像縮小部, 52 輝度変化検出部, 71 輝度積算部, 72 遅延部, 73 差分算出部, 74 コアリング部, 75 閾値処理部, 76 閾値作成部, 91 係数乗算部, 92−1乃至92−8 乗算器, 111 MC画像生成部, 112 合成部
【特許請求の範囲】
【請求項1】
第1の画像における複数の画素の輝度値を積算した第1の積算値と、前記第1の画像と時間的に異なる第2の画像における複数の画素の輝度値を積算した第2の積算値との差分値を算出する差分値算出手段と、
前記差分値についての閾値であって、前記第1の画像と前記第2の画像との間の輝度変化を、前記輝度変化の度合いを示す輝度変化レベルで段階分けするための、前記輝度変化レベルに対応した複数の閾値を、前記第1の積算値に応じて作成する閾値作成手段と、
前記複数の閾値に基づいて、前記差分値に対応する前記輝度変化レベルを決定する輝度変化レベル決定手段と
を備える画像処理装置。
【請求項2】
前記第1の画像および前記第2の画像に対するブロックマッチングにより動きベクトルを検出する動きベクトル検出手段と、
前記動きベクトルにより前記第1の画像を動き補償して、動き補償画像を生成する動き補償画像生成手段と、
前記輝度変化レベル決定手段により決定された前記輝度変化レベルに応じた比率で、前記第1の画像における各画素と、対応する前記動き補償画像における各画素とを合成し、前記第1の画像および前記第2の画像を補間する補間画像として出力する補間画像出力手段とをさらに備える
請求項1に記載の画像処理装置。
【請求項3】
前記補間画像出力手段は、前記輝度変化レベル決定手段によって決定された前記輝度変化レベルが高いほど、前記第1の画像の比率が高い前記補間画像を出力し、前記輝度変化レベルが低いほど、前記動き補償画像の比率が高い前記補間画像を出力する
請求項2に記載の画像処理装置。
【請求項4】
前記第1の画像を縮小した第1の縮小画像を生成する縮小画像生成手段をさらに備え、
前記差分値算出手段は、前記第1の縮小画像における複数の画素の輝度値を積算した前記第1の輝度値と、前記第2の画像を縮小した第2の縮小画像における複数の画素の輝度値を積算した前記第2の積算値との差分値を算出する
請求項2に記載の画像処理装置。
【請求項5】
前記動きベクトル検出手段は、前記第1の縮小画像および前記第2の縮小画像から前記動きベクトルを検出する
請求項4に記載の画像処理装置。
【請求項6】
第1の画像における複数の画素の輝度値を積算した第1の積算値と、前記第1の画像と時間的に異なる第2の画像における複数の画素の輝度値を積算した第2の積算値との差分値を算出する差分値算出ステップと、
前記差分値についての閾値であって、前記第1の画像と前記第2の画像との間の輝度変化を、前記輝度変化の度合いを示す輝度変化レベルで段階分けするための、前記輝度変化レベルに対応した複数の閾値を、前記第1の積算値に応じて作成する閾値作成ステップと、
前記複数の閾値に基づいて、前記差分値に対応する前記輝度変化レベルを決定する輝度変化レベル決定ステップと
を含む画像処理方法。
【請求項7】
第1の画像における複数の画素の輝度値を積算した第1の積算値と、前記第1の画像と時間的に異なる第2の画像における複数の画素の輝度値を積算した第2の積算値との差分値を算出する差分値算出ステップと、
前記差分値についての閾値であって、前記第1の画像と前記第2の画像との間の輝度変化を、前記輝度変化の度合いを示す輝度変化レベルで段階分けするための、前記輝度変化レベルに対応した複数の閾値を、前記第1の積算値に応じて作成する閾値作成ステップと、
前記複数の閾値に基づいて、前記差分値に対応する前記輝度変化レベルを決定する輝度変化レベル決定ステップと
を含む処理をコンピュータに実行させるプログラム。
【請求項1】
第1の画像における複数の画素の輝度値を積算した第1の積算値と、前記第1の画像と時間的に異なる第2の画像における複数の画素の輝度値を積算した第2の積算値との差分値を算出する差分値算出手段と、
前記差分値についての閾値であって、前記第1の画像と前記第2の画像との間の輝度変化を、前記輝度変化の度合いを示す輝度変化レベルで段階分けするための、前記輝度変化レベルに対応した複数の閾値を、前記第1の積算値に応じて作成する閾値作成手段と、
前記複数の閾値に基づいて、前記差分値に対応する前記輝度変化レベルを決定する輝度変化レベル決定手段と
を備える画像処理装置。
【請求項2】
前記第1の画像および前記第2の画像に対するブロックマッチングにより動きベクトルを検出する動きベクトル検出手段と、
前記動きベクトルにより前記第1の画像を動き補償して、動き補償画像を生成する動き補償画像生成手段と、
前記輝度変化レベル決定手段により決定された前記輝度変化レベルに応じた比率で、前記第1の画像における各画素と、対応する前記動き補償画像における各画素とを合成し、前記第1の画像および前記第2の画像を補間する補間画像として出力する補間画像出力手段とをさらに備える
請求項1に記載の画像処理装置。
【請求項3】
前記補間画像出力手段は、前記輝度変化レベル決定手段によって決定された前記輝度変化レベルが高いほど、前記第1の画像の比率が高い前記補間画像を出力し、前記輝度変化レベルが低いほど、前記動き補償画像の比率が高い前記補間画像を出力する
請求項2に記載の画像処理装置。
【請求項4】
前記第1の画像を縮小した第1の縮小画像を生成する縮小画像生成手段をさらに備え、
前記差分値算出手段は、前記第1の縮小画像における複数の画素の輝度値を積算した前記第1の輝度値と、前記第2の画像を縮小した第2の縮小画像における複数の画素の輝度値を積算した前記第2の積算値との差分値を算出する
請求項2に記載の画像処理装置。
【請求項5】
前記動きベクトル検出手段は、前記第1の縮小画像および前記第2の縮小画像から前記動きベクトルを検出する
請求項4に記載の画像処理装置。
【請求項6】
第1の画像における複数の画素の輝度値を積算した第1の積算値と、前記第1の画像と時間的に異なる第2の画像における複数の画素の輝度値を積算した第2の積算値との差分値を算出する差分値算出ステップと、
前記差分値についての閾値であって、前記第1の画像と前記第2の画像との間の輝度変化を、前記輝度変化の度合いを示す輝度変化レベルで段階分けするための、前記輝度変化レベルに対応した複数の閾値を、前記第1の積算値に応じて作成する閾値作成ステップと、
前記複数の閾値に基づいて、前記差分値に対応する前記輝度変化レベルを決定する輝度変化レベル決定ステップと
を含む画像処理方法。
【請求項7】
第1の画像における複数の画素の輝度値を積算した第1の積算値と、前記第1の画像と時間的に異なる第2の画像における複数の画素の輝度値を積算した第2の積算値との差分値を算出する差分値算出ステップと、
前記差分値についての閾値であって、前記第1の画像と前記第2の画像との間の輝度変化を、前記輝度変化の度合いを示す輝度変化レベルで段階分けするための、前記輝度変化レベルに対応した複数の閾値を、前記第1の積算値に応じて作成する閾値作成ステップと、
前記複数の閾値に基づいて、前記差分値に対応する前記輝度変化レベルを決定する輝度変化レベル決定ステップと
を含む処理をコンピュータに実行させるプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2010−10915(P2010−10915A)
【公開日】平成22年1月14日(2010.1.14)
【国際特許分類】
【出願番号】特願2008−166062(P2008−166062)
【出願日】平成20年6月25日(2008.6.25)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】
【公開日】平成22年1月14日(2010.1.14)
【国際特許分類】
【出願日】平成20年6月25日(2008.6.25)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】
[ Back to top ]