JP2009004919A - 動きベクトル処理装置、動きベクトル検出方法、動きベクトル検出プログラム、および該プログラムを記録した記録媒体 - Google Patents
動きベクトル処理装置、動きベクトル検出方法、動きベクトル検出プログラム、および該プログラムを記録した記録媒体 Download PDFInfo
- Publication number
- JP2009004919A JP2009004919A JP2007161905A JP2007161905A JP2009004919A JP 2009004919 A JP2009004919 A JP 2009004919A JP 2007161905 A JP2007161905 A JP 2007161905A JP 2007161905 A JP2007161905 A JP 2007161905A JP 2009004919 A JP2009004919 A JP 2009004919A
- Authority
- JP
- Japan
- Prior art keywords
- vector
- block
- motion vector
- candidate
- motion
- 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.)
- Pending
Links
Images
Abstract
【課題】動きベクトルの検出処理を煩雑なものとすることなく、動きボケ、エッジ部分におけるコーミングおよびダーティウィンドウ効果を抑制できる動きベクトル処理装置を提供する。
【解決手段】本発明に係る動きベクトル処理装置1は、検出対象サブブロックを含むブロックの動きベクトル、および検出対象サブブロックに接する各ブロックの各動きベクトル、ならびにこれらの動きベクトルをフィルタ処理した結果の動きベクトルを、それぞれ候補ベクトルとして取得する候補ベクトル取得部3と、候補ベクトルごとに、検出対象サブブロックの存在する画像の前および後の画像の少なくともいずれかの画像において検出対象サブブロックを上記候補ベクトル分移動させた領域のうち、検出対象サブブロックに最も類似する領域の算出に用いられた候補ベクトルを、検出対象サブブロックの動きベクトルとして検出する動きベクトル決定部7とを備えている。
【選択図】図1
【解決手段】本発明に係る動きベクトル処理装置1は、検出対象サブブロックを含むブロックの動きベクトル、および検出対象サブブロックに接する各ブロックの各動きベクトル、ならびにこれらの動きベクトルをフィルタ処理した結果の動きベクトルを、それぞれ候補ベクトルとして取得する候補ベクトル取得部3と、候補ベクトルごとに、検出対象サブブロックの存在する画像の前および後の画像の少なくともいずれかの画像において検出対象サブブロックを上記候補ベクトル分移動させた領域のうち、検出対象サブブロックに最も類似する領域の算出に用いられた候補ベクトルを、検出対象サブブロックの動きベクトルとして検出する動きベクトル決定部7とを備えている。
【選択図】図1
Description
本発明は、動画像のIP変換に係る動きベクトルの処理装置、処理方法装置、処理プログラム、および該プログラムを記録した記録媒体に関する。
動画像において、前のフレームと現在のフレームとは全く同じではなく、フレーム中の物体が動いたり、カメラなどの撮像機器が動いたりすることによるフレーム間における動きがある。一般的に、このような動きを補正するためには、動き補償が用いられる。動き補償とは、フレーム間予測において上述したフレーム間の動きを補正するものであり、具体的には、現在のフレームを予測する場合に、動きの分だけずらした位置の画像を用いて補正するものである。動き補償を行うためには、画像の動く量を推定する動きベクトルを検出する必要がある。
動き補償を行うための動きベクトルを検出する方法としては、ブロックマッチングによる検出方法が一般的である。ブロックマッチングとは、フレームを複数のブロック(領域)に分割し、現フレームにおいて定められた範囲のブロックと、次フレームにおける注目ブロックとの差分評価関数の値を計算することによって、動きベクトルを検出する方法である。
しかし、1ブロックにつき1つのベクトルしか用いない一般的なブロック分割では、ブロックの境界が視認されてしまうダーティウィンドウ効果を生じる。特許文献1には、動きベクトルを有するブロックをさらに分割したサブブロックにおいて動きベクトルを検出することによって、ダーティウィンドウ効果を低減する技術が開示されている。特許文献1におけるサブブロックの有する動きベクトルの検出方法について以下に説明する。
特許文献1では、例えば、図3に示すように、画像がブロックA〜ブロックYに分割されており、ブロックMがサブブロックM1〜M4にさらに分割されている。このうち、例えば、サブブロックM1における動きベクトルを検出する場合には、まず、サブブブロックM1によって分割されているブロック(母ブロック)であるブロックM、サブブロックM1が隣接するブロックHおよびLの有する動きベクトルを取得する。そして、取得した動きベクトルにおける中央値を検出することによって、サブブロックM1における動きベクトルの候補となるベクトルを設定する。図3は、ブロックおよびサブブロックに分割した画像の一例を模式的に示す図である。
設定した候補となるベクトルが、ブロックH、LおよびMにおける動きベクトルのいずれとも等しくない場合には、サブブロックM1の動きベクトルとして、母ブロックであるブロックMの動きベクトルを設定する。また、設定した候補となるベクトルがブロックH、LおよびMにおける動きベクトルのうちのいずれか1つと等しい場合には、該候補となるベクトルをサブブロックM1における動きベクトルとして設定する。なお、上記の動きベクトルの検出は、x成分およびy成分のそれぞれにおいて行う。
特許第3238725号公報(平成13年10月5日登録)
しかし、特許文献1に記載の技術では、中央値フィルタの候補が限定される。すなわち、各ブロックにおける動きベクトルのいずれかを新たなベクトルとして設定するため、あらかじめ検出している、各ブロックにおける動きベクトル以外の値が生じない。
したがって、振り子のような回転運動の映像など、サブブロック単位によって動きベクトルが異なるような場合、より整合性の高いベクトルが存在していたとしても、整合性の高いベクトルを選択できない。そのため、振り子のような回転運動の映像などでは、動きボケおよびエッジ部分におけるコーミングなどが生じる。また、ダーティウィンドウ効果も十分に低減できない。
上述の問題を解決するために、サブブロックの動きベクトルを検出した後、平滑化フィルタ(ローパスフィルタ)をかける手法もあるが、平滑化フィルタをかけることによって得られるベクトルに対する整合性の確認を改めて行う必要があるため、動きベクトル検出におけるプロセスが煩雑となってしまう。
また、特許文献1に記載の技術では、中央値フィルタによりベクトル検出を行っている。この中央値フィルタの候補ベクトルには、サブブロックM1に隣接するブロックHおよびLを用いて整合性を確認しているが、母ブロックMまたはサブブロックM1において整合性を確認していないベクトルが含まれている。この結果、サブブロックM1において整合性のとれないベクトルを検出してしまうことがある。
例えば、ブロック「M、R、N、S」の4ブロックとほぼ同じ大きさの物体が動き、その他のブロックが背景となっている映像の場合、母ブロックMのベクトルmは物体の動きと同じベクトルを検出し、ブロックLのベクトルlとブロックHのベクトルhは、背景の動きと同じベクトルを検出する。しかし、特許文献1に記載の技術では、サブブロックM1における中央値フィルタの候補ベクトルは、ベクトルm(物体のベクトル)、ベクトルl(背景のベクトル)、ベクトルh(背景のベクトル)となり、中央値フィルタの結果はベクトルlまたはベクトルhの背景のベクトルである。つまり、サブブロックM1のベクトルm1として検出されるベクトルは、背景のベクトルとなってしまい、サブブロックM1において整合性のとれないベクトルを検出してしまうことになる。
本発明は、上記問題点に鑑みたものであり、その主たる目的は、例えば回転映像において、動きベクトルの検出処理を煩雑とすることなく、動きボケ、エッジ部分におけるコーミングおよびダーティウィンドウ効果を抑制できる動きベクトル処理装置を提供することである。
本発明に係る動きベクトル処理装置は、上記課題を解決するために、それぞれが動きベクトルを有している複数のブロックに分割された画像の動きベクトルを処理する動きベクトル処理装置であって、上記ブロックを形成する複数のサブブロックのうち1つを、検出対象サブブロックとして選択する手段と、上記検出対象サブブロックを含むブロックの上記動きベクトル、および、上記検出対象サブブロックに接する各上記ブロックの各上記動きベクトル、ならびにこれらの動きベクトルをフィルタ処理した結果の動きベクトルを、それぞれ候補ベクトルとして取得する候補ベクトル取得手段と、上記候補ベクトルごとに、上記画像の前および後の画像のうちの少なくともいずれか1つの画像において上記検出対象サブブロックを上記候補ベクトル分移動させた領域を算出する領域算出手段と、上記領域のうち上記検出対象サブブロックに最も類似する領域の算出に用いられた上記候補ベクトルを、上記検出対象サブブロックの動きベクトルとして検出する動きベクトル検出手段とを備えていることを特徴としている。
上記の構成によれば、動きベクトル処理装置は、動きベクトルの検出対象である検出対象サブブロックを含むブロックにおける動きベクトル、および、検出対象サブブロックに接するブロックにおける動きベクトル、ならびにそれらの動きベクトルをフィルタ処理することにより算出したベクトルを、検出対象サブブロックの動きベクトルの候補ベクトルとして取得し、取得した候補ベクトルから検出対象サブブロックの動きベクトルを決定している。
これによって、サブブロックの動きベクトルの候補として、新たに算出したベクトル、すなわち、すでに検出している動きベクトルとは異なる量のベクトルを設定できる。このため、例えば、回転運動の映像などのサブブロック単位において動きベクトルが異なる場合であっても、より整合性の高いベクトルをサブブロックの動きベクトルとして検出できる。
また、上記の構成によれば、新たなベクトルの整合性も、ブロックにおける動きベクトルの整合性の確認と同時、すなわち検出対象サブブロックの動きベクトルの検出時に確認できる。
したがって、動きベクトルの検出プロセスが煩雑となることなく、検出した動きベクトルに基づいて作製した画像において、動きボケおよびエッジ部分におけるコーミングなどを抑制できる。また、ダーティウィンドウ効果を十分に低減できる効果を奏する。
また、上記の構成によれば、検出対象サブブロックに接する全てのブロックにおいて整合性を確認している。これによって、動きの境界付近において、整合性のとれていないベクトルをサブブロックのベクトルとして検出することを防止できる効果も併せて奏する。
また、本発明に係る動きベクトル処理装置では、さらに、上記動きベクトル検出手段は、上記検出対象サブブロックと上記領域とを最も類似させる、または上記領域間を最も類似させる上記候補ベクトルを上記動きベクトルとして検出することが好ましい。
上記の構成によれば、検出対象サブブロックと領域とが最も類似するような候補ベクトル、または領域間を最も類似するような候補ベクトルを動きベクトルとして選択できるため、上述した従来の問題点であるサブブロックM1のベクトルとして背景のベクトルを選択することを回避できる。結果として、動きボケおよびエッジ部分におけるコーミングを抑制し、かつダーティウィンドウ効果を低減できる効果を奏する。
また、限られた候補ベクトルにおいて動きベクトルを決定するため、動きベクトル検索を再度行うよりも計算量を大幅に削減できる効果も併せて奏する。
また、本発明に係る動きベクトル処理装置では、さらに、上記検出対象サブブロックと上記領域との類似もしくは上記領域間の類似は、上記検出対象サブブロックの輝度値と上記領域の輝度値との類似度もしくは相違度、または上記領域間の輝度値の類似度もしくは相違度から求めることが好ましい。
また、本発明に係る動きベクトル処理装置では、さらに、各上記候補ベクトルのうちの少なくとも2つが同一の量である場合に、同一の量である各上記候補ベクトルのいずれか1つを変更する候補ベクトル入れ替え手段をさらに備えており、上記候補ベクトル入れ替え手段は、上記検出対象サブブロックおよび入れ替えの対象とする上記候補ベクトルを有する上記ブロックと同一線上の各上記ブロックにおける上記動きベクトルのうち、各上記候補ベクトルと異なる量であり、かつ、入れ替えの対象とする上記候補ベクトルを有する上記ブロックに最も近い位置の上記ブロックにおける上記動きベクトルを新たに上記候補ベクトルとして取得することが好ましい。
上記の構成によれば、動きベクトル処理装置は、全ての候補ベクトルの量が異なるように候補ベクトルを取得している。
これによって、検出対象サブブロックの動きベクトルの検出精度を高めることができる。したがって、検出した動きベクトルを用いた画像において、動きボケおよびコーミングが生じることをより一層抑制するとともに、ダーティウィンドウ効果をより一層防止できる。
本発明に係る動きベクトル処理方法は、上記課題を解決するために、それぞれが動きベクトルを有している複数のブロックに分割された画像の動きベクトルを処理する動きベクトル処理方法であって、上記ブロックを形成する複数のサブブロックのうち1つを、検出対象サブブロックとして選択する工程と、上記検出対象サブブロックを含むブロックの上記動きベクトル、および、上記検出対象サブブロックに接する各上記ブロックの各上記動きベクトル、ならびにこれらの動きベクトルをフィルタ処理した結果の動きベクトルを、それぞれ候補ベクトルとして取得する候補ベクトル取得工程と、上記候補ベクトルごとに、上記画像の直前または直後の画像において上記検出対象サブブロックを上記候補ベクトル分移動させた領域を算出する領域算出工程と、上記領域のうち上記検出対象サブブロックに最も類似する領域の算出に用いられた上記候補ベクトルを、上記検出対象サブブロックの上記動きベクトルとして検出する動きベクトル検出工程とを備えていることを特徴としている。
上記の構成によれば、本発明に係る動きベクトル処理装置と同様の作用効果を奏する。
なお、上記動きベクトル処理装置は、コンピュータによって実現してもよい。この場合、コンピュータを上記各手段として動作させることにより上記動きベクトル処理装置をコンピュータにおいて実現する上記動きベクトル処理プログラム、およびその上記動きベクトル処理プログラムを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
以上のように、本発明に係る動きベクトル処理装置は、動きベクトルの検出対象である検出対象サブブロックを含むブロックにおける動きベクトル、検出対象サブブロックに接するブロックにおける動きベクトル、ならびにそれらの動きベクトルに基づいて算出したベクトルを候補ベクトルとして取得し、取得した候補ベクトルから検出対象サブブロックとして最も好適であると判定される動きベクトルを検出する。
これによって、動きベクトルの検出プロセスを煩雑とすることなく、検出した動きベクトルに基づいて作製した画像において、動きボケおよびエッジ部分におけるコーミングなどを抑制できる。また、ダーティウィンドウ効果を十分に低減できる効果を奏する。
〔実施形態1〕
本発明に係る画像処理装置の一実施形態について、図1〜図10を参照して以下に説明する。
本発明に係る画像処理装置の一実施形態について、図1〜図10を参照して以下に説明する。
(動きベクトル処理装置1の構成)
まず、本発明に係る動きベクトル処理装置1について、図1を参照して以下に説明する。図1は、本発明の一実施形態に係る動きベクトル処理装置1の要部構成を示すブロック図である。動きベクトル処理装置1は、図1に示すように、サブブロック分割部2、候補ベクトル取得部3、候補ベクトル判定部4、候補ベクトル入れ替え部5、エラー値算出部6、および動きベクトル決定部7を備えている。
まず、本発明に係る動きベクトル処理装置1について、図1を参照して以下に説明する。図1は、本発明の一実施形態に係る動きベクトル処理装置1の要部構成を示すブロック図である。動きベクトル処理装置1は、図1に示すように、サブブロック分割部2、候補ベクトル取得部3、候補ベクトル判定部4、候補ベクトル入れ替え部5、エラー値算出部6、および動きベクトル決定部7を備えている。
(サブブロック分割部2)
サブブロック分割部2は、画像を分割し、かつそれぞれが動きベクトルを有している複数のブロックを複数のサブブロックにさらに分割するものである。サブブロック分割部2は、従来公知の技術を用いることができる。
サブブロック分割部2は、画像を分割し、かつそれぞれが動きベクトルを有している複数のブロックを複数のサブブロックにさらに分割するものである。サブブロック分割部2は、従来公知の技術を用いることができる。
ここで、本明細書等において、サブブロックに分割されているブロックを、該サブブロックの「母ブロック」とも称する。
なお、画像をブロックに分割するブロック分割部(図示しない)および分割したブロックにおける動きベクトルを検出する動きベクトル検出部(図示しない)もまた、従来公知の技術を用いることができる。
(候補ベクトル取得部3)
候補ベクトル取得部3は、動きベクトルを検出しようとするサブブロック(検出対象サブブロック)における動きベクトルの候補となる候補ベクトルを取得するものである。候補ベクトルの取得方法の詳細については、下記にて詳述する。
候補ベクトル取得部3は、動きベクトルを検出しようとするサブブロック(検出対象サブブロック)における動きベクトルの候補となる候補ベクトルを取得するものである。候補ベクトルの取得方法の詳細については、下記にて詳述する。
(候補ベクトル判定部4)
候補ベクトル判定部4は、取得した候補ベクトルに、同一の量のベクトルがあるか否かを判定するものである。判定の詳細な方法については、下記にて詳述する。
候補ベクトル判定部4は、取得した候補ベクトルに、同一の量のベクトルがあるか否かを判定するものである。判定の詳細な方法については、下記にて詳述する。
(候補ベクトル入れ替え部5)
候補ベクトル入れ替え部5は、候補ベクトル判定部4において同一の量の候補ベクトルが見出された場合に、同一の量の候補ベクトルのいずれか1つを入れ替えるものである。候補ベクトルの入れ替え方法の詳細については、下記にて詳述する。
候補ベクトル入れ替え部5は、候補ベクトル判定部4において同一の量の候補ベクトルが見出された場合に、同一の量の候補ベクトルのいずれか1つを入れ替えるものである。候補ベクトルの入れ替え方法の詳細については、下記にて詳述する。
(エラー値算出部6)
エラー値算出部6は、検出対象サブブロックと、検出対象サブブロックの存在する画像の前後の画像のうちの少なくともいずれか1つにおいて検出対象サブブロックを候補ベクトル分移動させた領域との類似性を求めるものである。類似性は、検出対象サブブロックの輝度値と領域の輝度値の類似度または相違度(以下、エラー値とも称する)によって求める。
エラー値算出部6は、検出対象サブブロックと、検出対象サブブロックの存在する画像の前後の画像のうちの少なくともいずれか1つにおいて検出対象サブブロックを候補ベクトル分移動させた領域との類似性を求めるものである。類似性は、検出対象サブブロックの輝度値と領域の輝度値の類似度または相違度(以下、エラー値とも称する)によって求める。
また、エラー値算出部6は、領域間、すなわち検出対象サブブロックを候補ベクトル分移動させた前の画像の領域と、後ろの画像の領域との類似性を求めてもよい。この場合、類似性は、前の画像の領域の輝度値と、後ろの画像の領域の輝度値とのエラー値によって求める。なお、エラー値の詳細な算出方法については、下記にて詳述する。
ここで、本明細書等における「前後の画像」とは、時間軸において現在の画像よりも過去の画像(前の画像)、および未来の画像(後ろの画像)を意味している。また、本明細書等において、「画像」とは、動画像であり、走査方式がプログレッシブ方式の場合にはフレームを指し、インターレース方式の場合にはフィールドを指す。
なお、エラー値算出部6は、候補ベクトルごとに、検出対象サブブロックの存在する画像の前後の画像のうちの少なくともいずれか1つにおいて検出対象サブブロックを候補ベクトル分移動させた領域を算出する領域算出部(図示しない)を備えている。
(動きベクトル決定部7)
動きベクトル決定部7は、エラー値が最小または最大となる候補ベクトルを検出対象サブブロックの動きベクトルとして検出するものである。具体的には、相違度をエラー値とする場合には、エラー値が最大となる候補ベクトルを検出対象サブブロックの動きベクトルとして選出し、類似度をエラー値とする場合には、エラー値が最小となる候補ベクトルを検出対象サブブロックの動きベクトルとして検出するものである。
動きベクトル決定部7は、エラー値が最小または最大となる候補ベクトルを検出対象サブブロックの動きベクトルとして検出するものである。具体的には、相違度をエラー値とする場合には、エラー値が最大となる候補ベクトルを検出対象サブブロックの動きベクトルとして選出し、類似度をエラー値とする場合には、エラー値が最小となる候補ベクトルを検出対象サブブロックの動きベクトルとして検出するものである。
エラー値算出部6と動きベクトル決定部7とは、実際に検出対象サブブロックの動きベクトルを検出するための部材であり、両部材を併せて動きベクトル検出部(動きベクトル検出手段)(図示しない)と称してもよい。
(IP変換部8)
IP変換部8は、動きベクトル処理装置1を構成する構成要素ではないが、便宜上図1に記載している。IP変換部8は、動きベクトル処理装置1において、決定された動きベクトルを用いて、画像をIP変換(インターレース/プログレッシブ変換)するものである。なお、IP変換部8は、従来公知の技術を用いることができる。例えば、IP変換を施す技術として双方向型手法を用いてもよく、巡回型手法を用いてもよい。
IP変換部8は、動きベクトル処理装置1を構成する構成要素ではないが、便宜上図1に記載している。IP変換部8は、動きベクトル処理装置1において、決定された動きベクトルを用いて、画像をIP変換(インターレース/プログレッシブ変換)するものである。なお、IP変換部8は、従来公知の技術を用いることができる。例えば、IP変換を施す技術として双方向型手法を用いてもよく、巡回型手法を用いてもよい。
(動きベクトル処理プロセスの概要)
次に、動きベクトル処理装置1における動きベクトル処理プロセスの概要について、図2を参照して以下に説明する。図2は、動きベクトル処理装置1における動きベクトル処理プロセスの概要を示すフローチャートである。
次に、動きベクトル処理装置1における動きベクトル処理プロセスの概要について、図2を参照して以下に説明する。図2は、動きベクトル処理装置1における動きベクトル処理プロセスの概要を示すフローチャートである。
なお、本実施の形態では、動きベクトルの検出プロセスを把握し易いように、図3に示すようにブロック分割し、サブブロックM1(検出対象サブブロック)における動きベクトルm1を検出するプロセスを例に挙げて説明する。もちろん、本発明がサブブロックM1における動きベクトルm1の検出に限定されるものではない。また、以下の説明では、検出対象サブブロックと、検出対象サブブロックの存在する画像の前後の画像のうちの少なくともいずれか1つにおいて検出対象サブブロックを候補ベクトル分移動させた領域との類似性から動きベクトルを求める場合を例に挙げて説明する。
(母ブロックの分割)
まず、動きベクトル処理装置1におけるサブブロック分割部2は、既に動きベクトルを検出している母ブロックMをサブブロックM1〜M4にさらに分割する(ステップS1)。なお、サブブロックM1〜M4の分割方法は、従来公知の技術を用いることができる。
まず、動きベクトル処理装置1におけるサブブロック分割部2は、既に動きベクトルを検出している母ブロックMをサブブロックM1〜M4にさらに分割する(ステップS1)。なお、サブブロックM1〜M4の分割方法は、従来公知の技術を用いることができる。
また、図3においては、サブブロックを母ブロックの相似形となるように分割しているが、分割する数、および形状は、これに限定されるものではない。例えば、ブロックMを2つのブロックに分割してもよいし、三角形などの他の多角形に分割してもよい。
(候補ベクトルの設定)
次に、候補ベクトル取得部3は、母ブロックMのベクトルmを候補ベクトルの一つとして取得する(ステップS2)。さらに、母ブロックMおよびサブブロックM1のいずれにも接しているブロックであるブロックG、HおよびLのベクトルg、hおよびlを候補ベクトルとして取得する(ステップS3)。ここで、「母ブロックおよびサブブロックのいずれにも接している」とは、母ブロックおよびサブブロックの辺が接しているだけでなく、頂点が接している場合も含める。
次に、候補ベクトル取得部3は、母ブロックMのベクトルmを候補ベクトルの一つとして取得する(ステップS2)。さらに、母ブロックMおよびサブブロックM1のいずれにも接しているブロックであるブロックG、HおよびLのベクトルg、hおよびlを候補ベクトルとして取得する(ステップS3)。ここで、「母ブロックおよびサブブロックのいずれにも接している」とは、母ブロックおよびサブブロックの辺が接しているだけでなく、頂点が接している場合も含める。
なお、候補ベクトルとして取得するベクトルは、頂点の接するブロックであるブロックGを除く母ブロックおよびサブブロックのいずれにも隣接するブロックHおよびLから取得してもよい。しかし、候補ベクトルを取得するブロックが減少すると、検出対象サブブロックの動きベクトルの精度が悪化するため、好ましくない。
ベクトルg、h、lおよびmを候補ベクトルとして取得すると、候補ベクトル取得部3は、取得した候補ベクトルであるベクトルg、h、lおよびmをフィルタ処理することにより新たなベクトルzを算出し、候補ベクトルの一つとして取得する(ステップS4)。ベクトルzの詳細な算出方法は、下記にて説明する。
すなわち、上述したステップS2〜S4の3ステップにおいて取得する、動きベクトルm1の候補となる候補ベクトルは、ブロックG、H、LおよびMにおけるベクトルg、h、l、mおよび新たなベクトルzの5つである。
(同一量の候補ベクトルの検出)
上述したようにステップS2〜S4において候補ベクトルを取得すると、動きベクトル処理装置1は、候補ベクトル判定部4において、取得した候補ベクトルg、h、lおよびmに同一の量のベクトルがあるか否かを判定する(ステップS5)。
上述したようにステップS2〜S4において候補ベクトルを取得すると、動きベクトル処理装置1は、候補ベクトル判定部4において、取得した候補ベクトルg、h、lおよびmに同一の量のベクトルがあるか否かを判定する(ステップS5)。
取得した候補ベクトルg、h、lおよびmに同一の量の候補ベクトルがある場合(ステップS5においてYes)には、同一の量の候補ベクトルのうちのいずれか1つを入れ替える(ステップS7)。候補ベクトルの入れ替えの詳細については、下記にて説明する。
(エラー値の算出)
取得した候補ベクトルg、h、lおよびmに同一の量の候補ベクトルがない場合(ステップS5においてNo)には、エラー値算出部6は、取得した候補ベクトルg、h、l、mおよびzのそれぞれについてエラー値を算出する。エラー値の算出の詳細については、下記にて説明する。
取得した候補ベクトルg、h、lおよびmに同一の量の候補ベクトルがない場合(ステップS5においてNo)には、エラー値算出部6は、取得した候補ベクトルg、h、l、mおよびzのそれぞれについてエラー値を算出する。エラー値の算出の詳細については、下記にて説明する。
(動きベクトルの決定)
動きベクトル決定部7は、エラー値算出部6において算出された候補ベクトルg、h、l、mおよびzにおけるエラー値のうち、エラー値の最も小さいまたは大きい候補ベクトルをサブブロックM1の動きベクトルm1として決定する(ステップS8)。エラー値の最も小さい候補ベクトルを動きベクトルとして検出するか、エラー値の最も大きい候補ベクトルを動きベクトルとして検出するかは、算出するエラー値の種類によって決まる。算出するエラー値の詳細については、後で説明する。
動きベクトル決定部7は、エラー値算出部6において算出された候補ベクトルg、h、l、mおよびzにおけるエラー値のうち、エラー値の最も小さいまたは大きい候補ベクトルをサブブロックM1の動きベクトルm1として決定する(ステップS8)。エラー値の最も小さい候補ベクトルを動きベクトルとして検出するか、エラー値の最も大きい候補ベクトルを動きベクトルとして検出するかは、算出するエラー値の種類によって決まる。算出するエラー値の詳細については、後で説明する。
また、サブブロックM2〜M4における動きベクトルm2〜m4および他のサブブロックの動きベクトルも同様のプロセスによって検出できる。
(本実施形態の利点)
以上のように、本発明に係る動きベクトル処理装置1では、検出対象サブブロックの母ブロックおよび検出対象サブブロックに接するブロックの動きベクトル、ならびに当該動きベクトルに基づいて算出した新たなベクトルのいずれかを、検出対象サブブロックの動きベクトルの候補ベクトルとして検出し、検出した候補ベクトルから検出対象サブブロックの動きベクトルを決定している。
以上のように、本発明に係る動きベクトル処理装置1では、検出対象サブブロックの母ブロックおよび検出対象サブブロックに接するブロックの動きベクトル、ならびに当該動きベクトルに基づいて算出した新たなベクトルのいずれかを、検出対象サブブロックの動きベクトルの候補ベクトルとして検出し、検出した候補ベクトルから検出対象サブブロックの動きベクトルを決定している。
すなわち、サブブロックの動きベクトルの候補ベクトルとして、すでに検出している動きベクトルとは異なる量の新たなベクトルを設定できる。これによって、例えば、回転運動のような映像などのサブブロック単位において動きベクトルが異なる場合であっても、より整合性の高いベクトルをサブブロックの動きベクトルとして検出できる。
したがって、検出した動きベクトルに基づいて作製した画像において、動きボケおよびエッジ部分におけるコーミングなどを抑制できる。また、ダーティウィンドウ効果を十分に低減できる。なお、本明細書等における「コーミング」とは、画像の動きの境界部分、すなわちエッジ部分が櫛歯状となることである。
さらに、ブロックにおける動きベクトルに基づいて算出した新たなベクトルの整合性もまた、検出対象サブブロックの動きベクトルの検出時に確認しているため、検出プロセスが煩雑となることを防止できる。
なお、本発明に係る動きベクトル処理装置1において、検出対象サブブロックに接する全てのブロックにおいて整合性を確認しているため、動きの境界付近において、整合性のとれていないベクトルをサブブロックのベクトルとして検出してしまうことも防止できる。
また、本発明に係る動きベクトル処理装置1では、候補ベクトルから検出対象サブブロックの動きベクトルを決定する際に、検出対象サブブロックと領域とを最も類似させるような候補ベクトルを、検出対象サブブロックの動きベクトルとして検出している。具体的には、検出対象サブブロックの輝度値と領域の輝度値とのエラー値を算出することによって検出対象サブブロックを決定している。
これによって、検出対象サブブロックと領域とが最も類似するベクトルを選択できるため、従来の問題点であるサブブロックM1のベクトルとして背景のベクトルを選択してしまうことを回避できる。結果として、動きボケおよびエッジ部分におけるコーミングを抑制し、かつダーティウィンドウ効果を低減できる。
また、限られた候補ベクトルと、検出対象サブブロックとによって類似性を求めるため、動きベクトル検索を再度行うよりも遥かに少ない計算量とすることができる。
また、本発明に係る動きベクトル処理装置1では、いずれも異なる量を有する候補ベクトルを選択して取得している。
これによって、検出対象サブブロックの動きベクトルの検出精度を高めることができる。したがって、検出した動きベクトルを用いた画像において、動きボケおよびコーミングが生じることをより一層抑制するとともに、ダーティウィンドウ効果をより一層防止できる。
(ベクトルzの詳細な算出方法)
検出対象サブブロックの母ブロックにおける動きベクトル、および検出対象ブロックの接するブロックにおける動きベクトルをフィルタ処理することにより算出する新たな動きベクトルの詳細な算出方法について、以下に説明する。なお、上記新たなベクトルの算出方法についても、サブブロックM1における動きベクトルm1の検出を例に挙げて説明する。すなわち、以下の説明において、新たなベクトルは、上述したベクトルzであり、ベクトルzのx成分およびy成分を(xz、yz)と示す。なお、当然、本発明がサブブロックM1における動きベクトルm1の検出に限定されるものではない。
検出対象サブブロックの母ブロックにおける動きベクトル、および検出対象ブロックの接するブロックにおける動きベクトルをフィルタ処理することにより算出する新たな動きベクトルの詳細な算出方法について、以下に説明する。なお、上記新たなベクトルの算出方法についても、サブブロックM1における動きベクトルm1の検出を例に挙げて説明する。すなわち、以下の説明において、新たなベクトルは、上述したベクトルzであり、ベクトルzのx成分およびy成分を(xz、yz)と示す。なお、当然、本発明がサブブロックM1における動きベクトルm1の検出に限定されるものではない。
ベクトルzは、ブロックG、H、LおよびMのベクトルg(xg、yg)、ベクトルh(xh、yh)、ベクトルl(xl、yl)およびベクトルm(xm、ym)のx成分およびy成分それぞれにローパスフィルタを施すことによって算出することが好ましい。ローパスフィルタを施すことによって、輝度値の変化の大きい部分を除去できる。ローパスフィルタによる処理は、従来公知の方法を用いることができる。
また、ローパスフィルタを施す際に、重み付け係数を設定してもよい。例えば、ブロックG、H、LおよびMにおける重み付け係数をそれぞれ「1」、「2」、「2」および「3」とした場合、ベクトルz(xz、yz)は、それぞれ下記式によって算出する。
xz=1/8(xg+2xh+2xl+3xm)
yz=1/8(yg+2yh+2yl+3ym)。
xz=1/8(xg+2xh+2xl+3xm)
yz=1/8(yg+2yh+2yl+3ym)。
(候補ベクトルの入れ替えの詳細な方法)
取得した候補ベクトルに同一の量のベクトルが存在する場合に、候補ベクトルを入れ替える方法の詳細について、図4〜図7を参照して以下に説明する。なお、候補ベクトルの入れ替え方法についても、サブブロックM1における動きベクトルm1を検出する場合を例に挙げて説明するが、当然これに限定されるものではない。
取得した候補ベクトルに同一の量のベクトルが存在する場合に、候補ベクトルを入れ替える方法の詳細について、図4〜図7を参照して以下に説明する。なお、候補ベクトルの入れ替え方法についても、サブブロックM1における動きベクトルm1を検出する場合を例に挙げて説明するが、当然これに限定されるものではない。
まず、取得した候補ベクトルに同一の量のベクトルがあるか否かを判定するプロセスについて、図4を参照して以下に説明する。図4は、本実施の形態において、候補ベクトルと同一の量のベクトルがあるか否かを判定する判定方法を示すフローチャートである。
まず、候補ベクトル判定部4は、ブロックHにおけるベクトルhの量が、ブロックG、LおよびMにおけるベクトルg、lおよびmのいずれかの量と同一であるか否かを判定する(ステップS11)。ベクトルhの量がベクトルg、lおよびmのいずれかと同一の量である場合(ステップS11においてYes)には、候補ベクトル入れ替え部5は、ベクトルhを他のブロックにおける動きベクトルと入れ替える(ステップS12)。すなわち、ベクトルhを候補ベクトルとして取得しない。ベクトルhの詳細な入れ替え方法については下記に説明する。
ベクトルhの量がベクトルg、lおよびmのいずれとも異なる量である場合(ステップS11においてNo)には、候補ベクトル判定部4は、ベクトルlの量がベクトルg、hおよびmの量と同一の量であるか否かを判定する(ステップS13)。なお、ステップS11において、ベクトルhを入れ替えている場合には、ベクトルhの量ではなく、入れ替えたベクトルの量とベクトルlの量とが同一の量であるか否かを判定する。
ベクトルlの量が、ベクトルg、hおよびmのいずれかと同一の量である場合(ステップS13においてYes)には、候補ベクトル入れ替え部5は、ベクトルlを他のブロックにおける動きベクトルと入れ替える(ステップS14)。すなわち、ベクトルlを候補ベクトルとして取得しない。ベクトルlの詳細な入れ替え方法については下記に説明する。
ベクトルlの量がベクトルg、hおよびmの量のいずれとも異なる量である場合(ステップS13においてNo)には、候補ベクトル判定部4は、ベクトルgの量がベクトルh、lおよびmの量と同一の量であるか否かを判定する(ステップS15)。なお、ステップS11およびステップS12の少なくともいずれか1つのステップにおいて、ベクトルhおよびベクトルlの少なくともいずれか1つを入れ替えている場合には、入れ替えたベクトルの量とベクトルgの量とが同一の量であるか否かを判定する。
ベクトルgの量がベクトルh、lおよびmのいずれかと同一の量である場合(ステップS15においてYes)には、候補ベクトル入れ替え部5は、ベクトルgを他のブロックにおける動きベクトルと入れ替える(ステップS16)。ベクトルgの詳細な入れ替え方法については下記に説明する。
ベクトルgの量が、ベクトルh、lおよびmのいずれとも異なる量である場合(ステップS15においてNo)には、その時点における候補ベクトルを用いてエラー値を算出する。
(ベクトルhの入れ替え処理)
ベクトルhの量がベクトルg、lおよびmのいずれかと同一の量である場合(ステップS11においてYes)におけるベクトルhの入れ替え処理の詳細について、図5を参照して以下に説明する。図5は、ベクトルhの入れ替え処理の詳細を示すフローチャートである。
ベクトルhの量がベクトルg、lおよびmのいずれかと同一の量である場合(ステップS11においてYes)におけるベクトルhの入れ替え処理の詳細について、図5を参照して以下に説明する。図5は、ベクトルhの入れ替え処理の詳細を示すフローチャートである。
まず、候補ベクトル入れ替え部5は、ベクトルhと入れ替えるベクトルを取得する。具体的には、入れ替える対象である候補ベクトルhを有するブロックHおよび検出対象のサブブロックM1と同一行であり、かつブロックHに最近傍のブロックにおける動きベクトルを取得する。すなわち、本実施の形態においては、ブロックCにおけるベクトルを取得する(ステップS21)。
そして、取得したベクトルcの量が、ベクトルg、lおよびmのいずれかの量と同一の量であるか否かを判定する(ステップS22)。ベクトルcの量がベクトルg、lおよびmのいずれとも異なる量である場合(ステップS22においてNo)には、候補ベクトル入れ替え部5は、ベクトルhの代わりにベクトルcを候補ベクトルとして設定する(ステップS23)。
取得したベクトルcの量が、ベクトルg、lおよびmのいずれかと同一の量である場合(ステップS22においてYes)には、候補ベクトル入れ替え部5は、ベクトルhと入れ替えるベクトルとして、新たなベクトルを取得する。具体的には、ブロックHおよびサブブロックM1と同一行のブロックであり、ブロックCの次にブロックHに近傍であるブロックRにおけるベクトルrを取得する(ステップS24)。
そして、取得したベクトルrの量が、ベクトルg、lおよびmのいずれかの量と同一の量であるか否かを判定する(ステップS25)。ベクトルrの量がベクトルg、lおよびmのいずれとも異なる量である場合(ステップS25においてNo)には、候補ベクトル入れ替え部5は、ベクトルhの代わりにベクトルrを候補ベクトルとして設定する(ステップS26)。
取得したベクトルrの量が、ベクトルg、lおよびmのいずれかと同一の量である場合(ステップS25においてYes)には、候補ベクトル入れ替え部5は、ベクトルhと入れ替えるベクトルとして、新たなベクトルを取得する。具体的には、ブロックHおよびサブブロックM1と同一行のブロックであり、ブロックRの次にブロックHに近傍であるブロックWにおけるベクトルwを取得する(ステップS27)。
そして、取得したベクトルwの量が、ベクトルg、lおよびmのいずれかの量と同一の量であるか否かを判定する(ステップS28)。ベクトルwの量がベクトルg、lおよびmの量のいずれとも異なる量である場合(ステップS28においてNo)には、候補ベクトル入れ替え部5は、ベクトルhの代わりにベクトルwを候補ベクトルとして設定する(ステップS29)。
取得したベクトルwの量が、ベクトルg、lおよびmのいずれかと同一の量である場合(ステップS28においてYes)には、候補ベクトル入れ替え部5は、ベクトルhを候補ベクトルとして再度設定する(ステップS30)。すなわち、入れ替えるベクトルの候補がいずれも入れ替える条件に当てはまらない場合には、元のベクトルを再度候補ベクトルとして設定する。
(ベクトルlの入れ替え処理)
ベクトルlの量がベクトルg、hおよびmのいずれかと同一の量である場合(ステップS13においてYes)におけるベクトルlの入れ替え処理の詳細について、図6を参照して以下に説明する。図6は、ベクトルlの入れ替え処理の詳細を示すフローチャートである。
ベクトルlの量がベクトルg、hおよびmのいずれかと同一の量である場合(ステップS13においてYes)におけるベクトルlの入れ替え処理の詳細について、図6を参照して以下に説明する。図6は、ベクトルlの入れ替え処理の詳細を示すフローチャートである。
まず、候補ベクトル入れ替え部5は、ベクトルlと入れ替えるベクトルを取得する。具体的には、入れ替える対象である候補ベクトルlを有するブロックLおよび検出対象のサブブロックM1と同一列であり、かつブロックLに最近傍のブロックにおける動きベクトルを取得する。すなわち、本実施の形態においては、ブロックKにおけるベクトルkを取得する(ステップS31)。
そして、取得したベクトルkの量が、ベクトルg、hおよびmのいずれかの量と同一の量であるか否かを判定する(ステップS32)。ベクトルcの量がベクトルg、lおよびmのいずれとも異なる量である場合(ステップS32においてNo)には、候補ベクトル入れ替え部5は、ベクトルlの代わりにベクトルkを候補ベクトルとして設定する(ステップS33)。
取得したベクトルkの量が、ベクトルg、hおよびmのいずれかと同一の量である場合(ステップS32においてYes)には、候補ベクトル入れ替え部5は、ベクトルlと入れ替えるベクトルとして、新たなベクトルを取得する。具体的には、ブロックLおよびサブブロックM1と同一列のブロックであり、ブロックKの次にブロックLに近傍であるブロックNにおけるベクトルnを取得する(ステップS34)。
そして、取得したベクトルnの量が、ベクトルg、hおよびmのいずれかの量と同一の量であるか否かを判定する(ステップS35)。ベクトルnの量がベクトルg、hおよびmのいずれとも異なる量である場合(ステップS35においてNo)には、候補ベクトル入れ替え部5は、ベクトルlの代わりにベクトルnを候補ベクトルとして設定する(ステップS36)。
取得したベクトルnの量が、ベクトルg、hおよびmのいずれかと同一の量である場合(ステップS35においてYes)には、候補ベクトル入れ替え部5は、ベクトルlと入れ替えるベクトルとして、新たなベクトルを取得する。具体的には、ブロックLおよびサブブロックM1と同一列のブロックであり、ブロックNの次にブロックLに近傍であるブロックOにおけるベクトルoを取得する(ステップS37)。
そして、取得したベクトルoの量が、ベクトルg、hおよびmのいずれかの量と同一の量であるか否かを判定する(ステップS38)。ベクトルoの量がベクトルg、hおよびmの量のいずれとも異なる量である場合(ステップS38においてNo)には、候補ベクトル入れ替え部5は、ベクトルlの代わりにベクトルoを候補ベクトルとして設定する(ステップS39)。
取得したベクトルoの量が、ベクトルg、hおよびmのいずれかと同一の量である場合(ステップS38においてYes)には、候補ベクトル入れ替え部5は、ベクトルlを候補ベクトルとして再度設定する(ステップS40)。すなわち、入れ替えるベクトルの候補がいずれも入れ替える条件に当てはまらない場合には、元のベクトルを再度候補ベクトルとして設定する。
(ベクトルgの入れ替え処理)
ベクトルgの量がベクトルh、lおよびmのいずれかと同一の量である場合(ステップS15においてYes)におけるベクトルgの入れ替え処理の詳細について、図7を参照して以下に説明する。図7は、ベクトルgの入れ替え処理の詳細を示すフローチャートである。
ベクトルgの量がベクトルh、lおよびmのいずれかと同一の量である場合(ステップS15においてYes)におけるベクトルgの入れ替え処理の詳細について、図7を参照して以下に説明する。図7は、ベクトルgの入れ替え処理の詳細を示すフローチャートである。
まず、候補ベクトル入れ替え部5は、ベクトルgと入れ替えるベクトルを取得する。具体的には、入れ替える対象である候補ベクトルgを有するブロックGおよび検出対象のサブブロックM1と同一対角線上であり、かつブロックGに最近傍のブロックにおける動きベクトルを取得する。すなわち、本実施の形態においては、ブロックAにおけるベクトルaを取得する(ステップS41)。
そして、取得したベクトルaの量が、ベクトルh、lおよびmのいずれかの量と同一の量であるか否かを判定する(ステップS42)。ベクトルaの量がベクトルh、lおよびmのいずれとも異なる量である場合(ステップS42においてNo)には、候補ベクトル入れ替え部5は、ベクトルgの代わりにベクトルaを候補ベクトルとして設定する(ステップS43)。
取得したベクトルaの量が、ベクトルh、lおよびmのいずれかと同一の量である場合(ステップS42においてYes)には、候補ベクトル入れ替え部5は、ベクトルgと入れ替えるベクトルとして、新たなベクトルを取得する。具体的には、ブロックGおよびサブブロックM1と同一対角線上のブロックであり、ブロックAの次にブロックGに近傍であるブロックSにおけるベクトルsを取得する(ステップS44)。
そして、取得したベクトルsの量が、ベクトルh、lおよびmのいずれかの量と同一の量であるか否かを判定する(ステップS45)。ベクトルsの量がベクトルh、lおよびmのいずれとも異なる量である場合(ステップS45においてNo)には、候補ベクトル入れ替え部5は、ベクトルgの代わりにベクトルsを候補ベクトルとして設定する(ステップS46)。
取得したベクトルsの量が、ベクトルh、lおよびmのいずれかと同一の量である場合(ステップS45においてYes)には、候補ベクトル入れ替え部5は、ベクトルgと入れ替えるベクトルとして、新たなベクトルを取得する。具体的には、ブロックGおよびサブブロックM1と同一対角線上のブロックであり、ブロックSの次にブロックGに近傍であるブロックYにおけるベクトルyを取得する(ステップS47)。
そして、取得したベクトルyの量が、ベクトルh、lおよびmのいずれかの量と同一の量であるか否かを判定する(ステップS48)。ベクトルyの量がベクトルh、lおよびmの量のいずれとも異なる量である場合(ステップS48においてNo)には、候補ベクトル入れ替え部5は、ベクトルgの代わりにベクトルyを候補ベクトルとして設定する(ステップS49)。
取得したベクトルyの量が、ベクトルh、lおよびmのいずれかと同一の量である場合(ステップS48においてYes)には、候補ベクトル入れ替え部5は、ベクトルgを候補ベクトルとして再度設定する(ステップS50)。すなわち、入れ替えるベクトルの候補がいずれも入れ替える条件に当てはまらない場合には、元のベクトルを再度候補ベクトルとして設定する。
(エラー値の算出方法)
エラー値は、現在の画像における検出対象サブブロックと、現在の画像の前の画像および後の画像の少なくともいずれか1つにおいて、検出対象サブブロックを候補ベクトル分移動させた領域との類似性、または現在の画像の前の画像および後の画像において、検出対象サブブロックを候補ベクトル分移動させた領域間の類似性である。より具体的には、エラー値として、検出対象サブブロックの輝度値と上記領域の輝度値との類似度または相違度、もしくは上記領域間の類似度または相違度を用いる。
エラー値は、現在の画像における検出対象サブブロックと、現在の画像の前の画像および後の画像の少なくともいずれか1つにおいて、検出対象サブブロックを候補ベクトル分移動させた領域との類似性、または現在の画像の前の画像および後の画像において、検出対象サブブロックを候補ベクトル分移動させた領域間の類似性である。より具体的には、エラー値として、検出対象サブブロックの輝度値と上記領域の輝度値との類似度または相違度、もしくは上記領域間の類似度または相違度を用いる。
また、エラー値の算出は、IP変換の補間手法として、巡回型手法を用いる場合は、現在の画像の直前または直後の画像を用いることが好ましい。一方、双方向型手法を用いる場合には、動きベクトルのy座標を2の整数倍(偶数)とする必要があるため、比較するフィールドを広げることにより動きベクトルのy座標を選択できる範囲を広げることが好ましい。例えば、現在のフィールドをtフィールドとした場合、比較するフィールドをt−2フィールドおよびt+2フィールドまで広げることによって、動きベクトルのy座標の選択できる範囲を偶数および奇数/2とすることができる。すなわち、双方向型手法を用いる場合には、現在のフィールド(画像)の2つ前または後ろのフィールド(画像)を用いることが好ましい。
類似度および相違度の具体例について、以下に説明する。エラー値を相違度として算出する場合には、例えば、差の二乗和(Sum of Square Difference;SSD)および絶対差分和(Sum of Absolute Difference;SAD)などを用いることができる。SSDおよびSADは相違度を表すため、2つの検出対象サブブロックの輝度値が相違しているほど値が大きくなる。したがって、SSDおよびSADを用いてエラー値を算出する場合には、SSDおよびSADが最小となる候補ベクトルを検出対象サブブロックの動きベクトルとして検出する。
エラー値を類似度として算出する場合には、例えば、正規化相互相関(Normalized Cross Correlation;NCC)を用いることができる。NCCは類似度を表すため、2つの検出対象サブブロックの輝度値が類似しているほど値が大きくなる。したがって、NCCを用いてエラー値を算出する場合には、NCCが最大となる候補ベクトルを検出対象サブブロックの動きベクトルとして検出する。
なお、SADは、SSDおよびNCCに比べて計算量が少ないが、画像のわずかなノイズにも値が変化するため、ノイズに弱い。SSDは、SADよりノイズに強いが、画像のコントラストの影響を受けやすい。NCCは、SADおよびSDDよりも計算量が多いが、画像のノイズやコントラストの影響を受けにくい。エラー値としてどのコスト関数を用いるかは、状況に応じて適宜設定することが好ましい。
SAD、SSDおよびNCCは、例えば、それぞれ下記式(1)〜(3)を用いることによって算出する。なお、下記式(1)〜(3)は、図8に示すように、ブロック(検出対象サブブロック)の大きさをM×N、候補ベクトルを(dx、dy)とし、tフレーム(画像)内における検出対象サブブロックの(x、y)における輝度値をYt(x、y)とした場合の算出式である。図8は、エラー値を算出する際の検出対象サブブロックの動きを模式的に示す図である。
なお、上記式(1)〜(3)では、現在のフレームであるtフレームと一つ前のフレームであるt−1フレームとの類似度または相違度を算出しているが、一つ後のフレームであるt+1フレームと現在のフレームであるtフレームとの類似度または相違度を算出してもよい。この場合には、下記式(4)〜(6)を用いる。
インターレース画像においてSAD、SSDおよびNCCを算出する場合には、偶数フィールド(画像)と奇数フィールドとでは映像ラインが異なるため、その算出方法が異なる。ここでは、インターレース画像におけるSAD、SSDおよびNCCを算出について巡回型手法の場合(図9)を例示して説明する。巡回型手法における、SAD、SSDおよびNCCは、それぞれ下記式(7)〜(9)を用いて算出する。
ただし、上記式(7)〜(9)中のfdには、tフィールドが偶数フィールドの場合には「1」が代入され、tフィールドが奇数フィールドである場合には「0」が代入される。
なお、上記式(7)〜(9)は、図9に示すように、ブロック(検出対象サブブロック)の大きさをM×2L、候補ベクトルを(dx、dy)、tフィールド内における検出対象サブブロックの(x、y)における輝度値をYt(x、y)とした場合の算出式である。図9は、インターレース画像において、エラー値を算出する際の検出対象サブブロックの動きを模式的に示す図である。
また、図9では、現在のフィールドであるtフィールドと、t−1フィールドとを比較する場合を示した図であるが、tフィールドとt+1フィールドとを比較するようにしてもよい。
なお、双方向型手法を用いる場合は、巡回型を用いる場合とはまた異なる。双方向型手法では、前の画像の領域の輝度値と、後ろの画像の領域の輝度値とのエラー値によって類似性を求める。すなわち、t−1フィールドとt+1フィールドとを比較することによって類似性を求める。しかし、この場合は、tフィールドを考慮していないため、コーミングが生じやすくなる。したがって、双方向型手法を用いる場合は、プログレッシブ画像に合成したときの輝度の変化がコーミングにどの程度近いかを表す値についてもあわせて評価することが好ましい。
(動きベクトル処理装置1の変形例)
動きベクトル処理装置1は、動きベクトル決定部7において検出対象サブブロックの動きベクトルを決定した後、サブブロック分割部2において、検出対象サブブロックを母ブロックとしてさらにサブブロックを分割するようにしてもよい。
動きベクトル処理装置1は、動きベクトル決定部7において検出対象サブブロックの動きベクトルを決定した後、サブブロック分割部2において、検出対象サブブロックを母ブロックとしてさらにサブブロックを分割するようにしてもよい。
具体的には、図10に示すように、サブブロックM1を母ブロックとしてさらにサブブロックM11〜14を分割し、サブブロックM11〜14における動きベクトルm11〜14を検出するようにしてもよい。例えば、サブブロックM11における動きベクトルm11を検出する場合、その候補ベクトルは、ベクトルg4、h2、l3、m1およびベクトルg4、h3、l3、m1から算出される新たなベクトルz1の5つのベクトルとなる。なお、図10は、サブブロックをさらに細かいサブブロックに分割した画像の例を模式的に示す図である。
これによって、輪郭領域などの複雑な動きが存在する場合であっても、動きボケおよびコーミングをより一層抑制した画像とすることができる。また、ダーティウィンドウ効果もより一層防止できる。
なお、サブブロックM11を母ブロックとしてサブブロックをさらに分割してもよい。すなわち、本発明に係る動きベクトル処理装置1は、母ブロックをサブブロックに分割可能な限り、サブブロックの動きベクトルを検出できる。
より小さいサブブロックの動きベクトルを検出することによって、動きボケおよびコーミングをさらに一層抑制した画像とすることができる。また、ダーティウィンドウ効果もさらに一層防止できる。
(付記事項)
最後に、動きベクトル処理装置1の各ブロックは、ハードウェアロジックによって構成してもよいし、次のようにCPUを用いてソフトウェアによって実現してもよい。
最後に、動きベクトル処理装置1の各ブロックは、ハードウェアロジックによって構成してもよいし、次のようにCPUを用いてソフトウェアによって実現してもよい。
すなわち、動きベクトル処理装置1は、各機能を実現する制御プログラムの命令を実行するCPU(central processing unit)、上記プログラムを格納したROM(read only memory)、上記プログラムを展開するRAM(random access memory)、上記プログラムおよび各種データを格納するメモリ等の記憶装置(記録媒体)などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアである動きベクトル処理装置1の制御プログラムのプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)をコンピュータで読み取り可能に記録した記録媒体を、上記動きベクトル処理装置1に供給し、そのコンピュータ(またはCPUやMPU)が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー(登録商標)ディスク/ハードディスクなどの磁気ディスクやCD−ROM/MO/MD/DVD/CD−Rなどの光ディスクを含むディスク系、ICカード(メモリカードを含む)/光カード等のカード系、あるいはマスクROM/EPROM/EEPROM/フラッシュROMなどの半導体メモリ系などを用いることができる。
また、動きベクトル処理装置1を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、LAN、ISDN、VAN、CATV通信網、仮想専用網(virtual private network)、電話回線網、移動体通信網、衛星通信網などが利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、IEEE1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL回線等の有線でも、IrDAやリモコンのような赤外線、Bluetooth(登録商標)、802.11無線、HDR、携帯電話網、衛星回線、地上波デジタル網などの無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
なお、本発明は、上述した実施形態に限定されるものではなく、請求項に示した範囲において種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
以下、実施例を示し、本発明の形態についてさらに詳しく説明する。もちろん、本発明は以下の実施例に限定されるものではなく、細部については様々な様態が可能である。
動きベクトル処理装置1を用いて検出した動きベクトルに基づいてIP変換した振り子の画像と、従来の処理装置を用いて検出した動きベクトルに基づいてIP変換した振り子の画像とを比較した。なお、「従来の処理装置」とは、特許文献1に記載の動きベクトル処理装置である。
〔実施例1〕
動きベクトル処理装置1を用いて検出した動きベクトルに基づく画像を作製するプロセスについて、図11を参照して以下に説明する。図11は、検出した動きベクトルに基づいて画像を作製するプロセスを示すフローチャートである。
動きベクトル処理装置1を用いて検出した動きベクトルに基づく画像を作製するプロセスについて、図11を参照して以下に説明する。図11は、検出した動きベクトルに基づいて画像を作製するプロセスを示すフローチャートである。
まず、従来公知の方法に基づいて、画像をブロックサイズが32画素×16画素のブロックに分割し、それぞれのブロックにおける動きベクトルを検出した(ステップS101)。そして、母ブロック、および周囲の8つのブロックにおける動きベクトルに対してメディアンフィルタを施し、エラーベクトルを除去した(ステップS102)。なお、メディアンフィルタは、動きベクトルのx成分、およびy成分ともに施し、結果生じたx成分、y成分を出力している。
動きベクトル処理装置1は、32画素×16画素のブロックを16画素×8画素のブロック(サブブロック)に分割し、上述した動きベクトル処理装置1の動きベクトル検出プロセス(補間手法には双方向型手法を使用)によって、16画素×8画素のブロックにおける動きベクトルを検出した(ステップS103)。
動きベクトルを検出した16画素×8画素のブロックを母ブロックとして、8画素×4画素のブロック(サブブロック)にさらに分割し、ステップS103と同様にして、8画素×4画素のブロックにおける動きベクトルを検出した(ステップS104)。
動きベクトル処理装置1は、さらに、動きベクトルを検出した8画素×4画素のブロックを母ブロックとして、4画素×2画素のブロック(サブブロック)にさらに分割し、ステップS103およびステップS104と同様にして、4画素×2画素のブロックにおける動きベクトルを検出した(ステップS105)。
動きベクトルを検出した4画素×2画素のブロック、および周囲8つの4画素×2画素のブロックにおける動きベクトルに対してメディアンフィルタを施し、エラーベクトルを除去した(ステップS106)。なお、メディアンフィルタは、動きベクトルのx成分、y成分それぞれにおいて施し、結果生じたx成分、y成分と同じ組み合わせを持つベクトルがメディアンフィルタの候補ベクトルに存在する場合は、メディアンフィルタの結果生じたx成分、y成分を動きベクトルとして出力する。しかし、メディアンフィルタの候補ベクトルに同じ組み合わせを持つベクトルが存在しない場合は、ステップS105で検出した動きベクトルを出力する。
動きベクトル処理装置1は、さらに、4画素×2画素のブロックを母ブロックとして、2画素×1画素のブロック(サブブロック)に分割し、ステップS103、S104およびS105と同様にして2画素×1画素のブロックにおける動きベクトルを検出した(ステップS107)。
IP変換部8は、2画素×1画素のブロックにおける動きベクトルに基づいて動き補償型IP変換を施し、図12に示す画像を作製した(ステップS108)。図12は、動きベクトル処理装置1を用いて検出した動きベクトルに基づいた画像を示す図である。
〔比較例1〕
ステップS103、S104、S105およびS107において、特許文献1に記載の方法を用いた以外は、実施例1と同様にして図13に示す画像を得た。図13は、従来の動きベクトル処理装置を用いて検出した動きベクトルに基づいた画像を示す図である。
ステップS103、S104、S105およびS107において、特許文献1に記載の方法を用いた以外は、実施例1と同様にして図13に示す画像を得た。図13は、従来の動きベクトル処理装置を用いて検出した動きベクトルに基づいた画像を示す図である。
(実施例における画像と比較例における画像との比較)
図12と図13とを比較すると、動きベクトル処理装置1を用いて検出した動きベクトルに基づいて作製した画像は、画像のエッジ部分におけるコーミングおよび動きボケが非常に良好に抑制されている。
図12と図13とを比較すると、動きベクトル処理装置1を用いて検出した動きベクトルに基づいて作製した画像は、画像のエッジ部分におけるコーミングおよび動きボケが非常に良好に抑制されている。
本発明に動きベクトル処理装置を用いることによって、インターレース方式の映像をプログレッシブ方式の映像へと変換する際の画像の劣化を防止できる。
1 動きベクトル処理装置
2 サブブロック分割部
3 候補ベクトル取得部
4 候補ベクトル判定部
5 候補ベクトル入れ替え部
6 エラー値算出部
7 動きベクトル決定部
8 IP変換部
2 サブブロック分割部
3 候補ベクトル取得部
4 候補ベクトル判定部
5 候補ベクトル入れ替え部
6 エラー値算出部
7 動きベクトル決定部
8 IP変換部
Claims (7)
- それぞれが動きベクトルを有している複数のブロックに分割された画像の動きベクトルを処理する動きベクトル処理装置であって、
上記ブロックを形成する複数のサブブロックのうち1つを、検出対象サブブロックとして選択する手段と、
上記検出対象サブブロックを含むブロックの上記動きベクトル、および、上記検出対象サブブロックに接する各上記ブロックの各上記動きベクトル、ならびにこれらの動きベクトルをフィルタ処理した結果の動きベクトルを、それぞれ候補ベクトルとして取得する候補ベクトル取得手段と、
上記候補ベクトルごとに、上記画像の前および後の画像のうちの少なくともいずれか1つの画像において上記検出対象サブブロックを上記候補ベクトル分移動させた領域を算出する領域算出手段と、
上記領域のうち上記検出対象サブブロックに最も類似する領域の算出に用いられた上記候補ベクトルを、上記検出対象サブブロックの動きベクトルとして検出する動きベクトル検出手段とを備えていることを特徴とする動きベクトル処理装置。 - 上記動きベクトル検出手段は、上記検出対象サブブロックと上記領域とを最も類似させる、または上記領域間を最も類似させる上記候補ベクトルを上記動きベクトルとして検出することを特徴とする請求項1に記載の動きベクトル処理装置。
- 上記検出対象サブブロックと上記領域との類似もしくは上記領域間の類似は、上記検出対象サブブロックの輝度値と上記領域の輝度値との類似度もしくは相違度、または上記領域間の輝度値の類似度もしくは相違度から求めることを特徴とする請求項2に記載の動きベクトル処理装置。
- 各上記候補ベクトルのうちの少なくとも2つが同一の量である場合に、同一の量である各上記候補ベクトルのいずれか1つを変更する候補ベクトル入れ替え手段をさらに備えており、
上記候補ベクトル入れ替え手段は、
上記検出対象サブブロックおよび入れ替えの対象とする上記候補ベクトルを有する上記ブロックと同一線上の各上記ブロックにおける上記動きベクトルのうち、
各上記候補ベクトルと異なる量であり、かつ、入れ替えの対象とする上記候補ベクトルを有する上記ブロックに最も近い位置の上記ブロックにおける上記動きベクトルを新たに上記候補ベクトルとして取得することを特徴とする請求項1から3のいずれか1項に記載の動きベクトル処理装置。 - それぞれが動きベクトルを有している複数のブロックに分割された画像の動きベクトルを処理する動きベクトル処理方法であって、
上記ブロックを形成する複数のサブブロックのうち1つを、検出対象サブブロックとして選択する工程と、
上記検出対象サブブロックを含むブロックの上記動きベクトル、および、上記検出対象サブブロックに接する各上記ブロックの各上記動きベクトル、ならびにこれらの動きベクトルをフィルタ処理した結果の動きベクトルを、それぞれ候補ベクトルとして取得する候補ベクトル取得工程と、
上記候補ベクトルごとに、上記画像の前後の画像の少なくともいずれか1つの画像において上記検出対象サブブロックを上記候補ベクトル分移動させた領域を算出する領域算出工程と、
上記候補ベクトルから上記動きベクトルを検出する動きベクトル検出工程とを備えていることを特徴とする動きベクトル処理方法。 - 請求項1から4のいずれか1項に記載の動きベクトル処理装置を動作させるプログラムであって、コンピュータを上記の各手段として機能させるためのプログラム。
- 請求項6に記載のプログラムを記録しているコンピュータ読み取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007161905A JP2009004919A (ja) | 2007-06-19 | 2007-06-19 | 動きベクトル処理装置、動きベクトル検出方法、動きベクトル検出プログラム、および該プログラムを記録した記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007161905A JP2009004919A (ja) | 2007-06-19 | 2007-06-19 | 動きベクトル処理装置、動きベクトル検出方法、動きベクトル検出プログラム、および該プログラムを記録した記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009004919A true JP2009004919A (ja) | 2009-01-08 |
Family
ID=40320857
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007161905A Pending JP2009004919A (ja) | 2007-06-19 | 2007-06-19 | 動きベクトル処理装置、動きベクトル検出方法、動きベクトル検出プログラム、および該プログラムを記録した記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009004919A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012066866A1 (ja) * | 2010-11-17 | 2012-05-24 | 三菱電機株式会社 | 動きベクトル検出装置、動きベクトル検出方法、フレーム補間装置及びフレーム補間方法 |
US20190158860A1 (en) * | 2016-05-13 | 2019-05-23 | Sharp Kabushiki Kaisha | Video decoding device |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04233885A (ja) * | 1990-07-20 | 1992-08-21 | Philips Gloeilampenfab:Nv | 動きベクトル処理装置 |
JP2930675B2 (ja) * | 1990-07-18 | 1999-08-03 | 沖電気工業株式会社 | 初期偏位ベクトルを用いた動きベクトルの検出方法 |
JP2000069481A (ja) * | 1998-08-21 | 2000-03-03 | Kdd Corp | 動きベクトル検出装置 |
JP2000201328A (ja) * | 1999-01-08 | 2000-07-18 | Hitachi Ltd | 動きベクトルの検出方法および回路 |
-
2007
- 2007-06-19 JP JP2007161905A patent/JP2009004919A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2930675B2 (ja) * | 1990-07-18 | 1999-08-03 | 沖電気工業株式会社 | 初期偏位ベクトルを用いた動きベクトルの検出方法 |
JPH04233885A (ja) * | 1990-07-20 | 1992-08-21 | Philips Gloeilampenfab:Nv | 動きベクトル処理装置 |
JP2000069481A (ja) * | 1998-08-21 | 2000-03-03 | Kdd Corp | 動きベクトル検出装置 |
JP2000201328A (ja) * | 1999-01-08 | 2000-07-18 | Hitachi Ltd | 動きベクトルの検出方法および回路 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012066866A1 (ja) * | 2010-11-17 | 2012-05-24 | 三菱電機株式会社 | 動きベクトル検出装置、動きベクトル検出方法、フレーム補間装置及びフレーム補間方法 |
JPWO2012066866A1 (ja) * | 2010-11-17 | 2014-05-12 | 三菱電機株式会社 | 動きベクトル検出装置、動きベクトル検出方法、フレーム補間装置及びフレーム補間方法 |
US20190158860A1 (en) * | 2016-05-13 | 2019-05-23 | Sharp Kabushiki Kaisha | Video decoding device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI455588B (zh) | 以雙向、局部及全域移動評估為基礎之框率轉換 | |
JP3934151B2 (ja) | 画像生成装置および画像生成方法 | |
US9262684B2 (en) | Methods of image fusion for image stabilization | |
JP4997281B2 (ja) | イメージ中の推定動きベクトルの決定方法、コンピュータプログラムおよびディスプレイ装置 | |
EP3941056A1 (en) | Encoding and decoding method and device, encoder side apparatus and decoder side apparatus | |
JP5774889B2 (ja) | 情報処理装置、情報処理システム、および情報処理方法 | |
JP5781353B2 (ja) | 情報処理装置、情報処理方法、および位置情報のデータ構造 | |
US8711938B2 (en) | Methods and systems for motion estimation with nonlinear motion-field smoothing | |
US20100123792A1 (en) | Image processing device, image processing method and program | |
JP6236259B2 (ja) | 画像処理装置、画像処理方法、及び画像処理プログラム | |
JP2014511054A (ja) | 画像シーケンスを圧縮するためのコーディング方法及び画像コーディング装置 | |
JP4504230B2 (ja) | 動画像処理装置、動画像処理方法、及び動画像処理プログラム | |
US20080317289A1 (en) | Image Processing Apparatus and Method, Program, and Medium Storing the Program Thereon | |
JP5492223B2 (ja) | 動きベクトル検出装置及び方法 | |
JP2006513478A (ja) | 効率的な予測画像のパラメータの推定 | |
WO2015085922A1 (zh) | 一种帧率上采样的方法和装置 | |
JP4872672B2 (ja) | 学習装置と学習方法および学習プログラム | |
JP6772000B2 (ja) | 画像処理装置、画像処理方法およびプログラム | |
JP2009004919A (ja) | 動きベクトル処理装置、動きベクトル検出方法、動きベクトル検出プログラム、および該プログラムを記録した記録媒体 | |
JP4894018B2 (ja) | 画像処理装置、画像処理方法、および画像処理プログラム | |
JP5448983B2 (ja) | 解像度変換装置及び方法、走査線補間装置及び方法、並びに映像表示装置及び方法 | |
WO2001097510A1 (en) | Image processing system, image processing method, program, and recording medium | |
JP2020057242A (ja) | 画像処理装置、画像処理方法、及びプログラム | |
JP2015148965A (ja) | 画像処理装置、撮像装置及び画像処理方法 | |
JP5095520B2 (ja) | 動きベクトル割付装置、フレームレート変換装置、動画像符号化装置、動きベクトル割付方法、動きベクトル割付プログラム、および、記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090805 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110812 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110823 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120117 |