JP4964937B2 - 動きベクトル検出装置、フレーム補間処理装置およびそれらの方法 - Google Patents

動きベクトル検出装置、フレーム補間処理装置およびそれらの方法 Download PDF

Info

Publication number
JP4964937B2
JP4964937B2 JP2009257332A JP2009257332A JP4964937B2 JP 4964937 B2 JP4964937 B2 JP 4964937B2 JP 2009257332 A JP2009257332 A JP 2009257332A JP 2009257332 A JP2009257332 A JP 2009257332A JP 4964937 B2 JP4964937 B2 JP 4964937B2
Authority
JP
Japan
Prior art keywords
motion vector
block
local motion
calculation
frame
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
JP2009257332A
Other languages
English (en)
Other versions
JP2011100428A (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.)
Eizo Nanao Corp
Original Assignee
Eizo Nanao 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 Eizo Nanao Corp filed Critical Eizo Nanao Corp
Priority to JP2009257332A priority Critical patent/JP4964937B2/ja
Publication of JP2011100428A publication Critical patent/JP2011100428A/ja
Application granted granted Critical
Publication of JP4964937B2 publication Critical patent/JP4964937B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Analysis (AREA)
  • Television Systems (AREA)

Description

この発明は、動きベクトル検出に関し、特にその精度向上に関する。
特許文献1には、 現在フレームと参照フレームの2枚の入力画像を、それぞれ複数のブロックに分割し、2つの入力画像に基づいて、各ブロックのLMV(ローカル動きベクトル)をそれぞれ検出し、ブロック各々に対応するLMVの信頼度指標としてのブロック重みを算出して、このブロック重みに応じて各ブロック対応の寄与率を設定してGMV(グローバル動きベクトル)を算出する動きベクトル検出装置が開示されている。
このように、ブロックごとのLMVの信頼度指標に基づいて重みづけをすることにより、全体として信頼度の高いGMVを得ることができるというものである。
特開2009−65332号公報
上記特許文献1では、以下のような問題があった。動画像には、投げられたボールのように、カメラワークに依存しない物体が含まれている場合がある。これらは外乱と呼ばれており、該当するブロックをGMVの計算から除外することが望ましい。しかし、これらの外乱ブロックを正確に取り除く簡易な演算処理は見いだせていなかった。特にこれらの外乱に該当するブロックが画面の半分程度を占める場合には、これらを除外することができなかった。
この発明は、上記の問題点を解決して、カメラワークにおける外乱ブロックを正確に取り除くことのできるグローバル動きベクトル演算装置またはその方法を提供することを目的とする。
(1)本発明にかかるグローバル動きベクトル演算装置は、A)第nフレームと第n+1フレームについて、それぞれ1画面を構成する画素を所定の矩形のブロックにブロック化して、ブロック別の動きベクトルであるローカル動きベクトルを求めるとともに、求めたブロックについてのローカル動きベクトルを計算対象ブロックのローカル動きベクトルとして与えるブロック別動きベクトル演算手段、B)前記計算対象ブロックのローカル動きベクトルが与えられると、各ブロックを注目ブロックとして、その周辺ブロックのローカル動きベクトルの平均と当該注目ブロックのローカル動きベクトルとの差分の絶対値に基づいて注目ブロックのローカル動きベクトルに重み付け係数を全計算対象ブロックについて演算するとともに、前記計算対象ブロックの各重み付け係数およびローカル動きベクトルから、最小二乗法によりグローバル動きベクトルの平行移動パラメータを演算する平行移動パラメータ演算手段、C)前記平行移動パラメータが与えられると、この平行移動パラメータおよび、平行移動、回転、ズームの4パラメータで表したアフィン変換式からグローバル動きベクトルの回転・ズームパラメータを求める回転・ズームパラメータ演算手段、D)前記平行移動パラメータ、および回転・ズームパラメータが与えられると、各ブロックについてのローカル動きベクトルに展開した展開後ローカル動きベクトルを演算する展開後動きベクトル手段、E)計算対象ブロックを選別するための閾値を記憶する閾値記憶手段、F)各ブロックについて、前記展開後ローカル動きベクトルと、前記ブロック別動きベクトル演算手段が演算したローカル動きベクトルとの差が前記閾値記憶手段に記憶された閾値内であるブロックを計算対象ブロックとして決定し、決定した計算対象ブロックについての前記ブロック別動きベクトル演算手段が演算したローカル動きベクトルを前記平行移動パラメータ演算手段に計算対象ブロックとして与える計算対象ブロック決定手段、G)計算対象ブロック決定手段の処理を所定回数繰り返し実行する手段であって、繰り返し回数が増える度に前記閾値を小さくして、前記繰り返し処理を行う繰り返し手段を備えている。
このように、最小二乗法によりグローバル動きベクトルの平行移動パラメータを演算し、この平行移動パラメータからアフィン変換式により、グローバル動きベクトルの回転・ズームパラメータを求めることにより、カメラワークにおける平行移動、回転・ズームパラメータを簡易に求めることができる。
また、前記求めたグローバル動きベクトルのパラメータについて、閾値を変更しつつ計算対象ブロックを変更して繰り返し演算を行うことにより、より精度の高いグローバル動きベクトルの平行移動パラメータ、および回転・ズームパラメータを求めることができる。
(2)本発明にかかるグローバル動きベクトル演算装置は、A)演算結果であるブロック別のローカル動きベクトルを記憶するローカル動きベクトル記憶手段、B)前記ブロックごとのローカル動きベクトルからグローバル動きベクトルの平行移動、回転、ズームの各パラメータを求めるグローバル動きベクトル演算手段、C)求めたグローバル動きベクトルを各ブロックのローカル動きベクトルに展開した展開ローカル動きベクトルを求める展開動きベクトル演算手段、D)計算対象ブロックを選別するための閾値を記憶する閾値記憶手段、E)各ブロックについて、前記ローカル動きベクトル記憶手段に記憶されたローカル動きベクトルと展開ローカル動きベクトルとの差分を求め、前記閾値を超えないブロックを対象ブロックとして決定する演算対象ブロック選定手段、F)前記対象ブロックとして決定されなったブロックを除外して、前記グローバル動きベクトル演算手段に新たなグローバル動きベクトルを求めさせる処理を、所定条件まで繰り返し実行する繰り返し手段を備えている。
前記求めたグローバル動きベクトルのパラメータについて、繰り返し演算を行うことにより、より精度の高いグローバル動きベクトルの平行移動パラメータ、および回転・ズームパラメータを求めることができる。
(3)本発明にかかるグローバル動きベクトル演算装置においては、前記繰り返し手段は、前記繰り返し回数が増える度に前記閾値を小さくして、前記繰り返し処理を行う。したがって、繰り返し回数が多くなるにつれて、計算対象ブロックをより適切な範囲に選択することができる。これにより、精度の高いグローバル動きベクトルの平行移動パラメータ、および回転・ズームパラメータを求めることができる。
(4)本発明にかかるグローバル動きベクトル演算装置においては、前記グローバル動きベクトル演算手段は、1)前記計算対象ブロックのローカル動きベクトルが与えられると、各ブロックを注目ブロックとして、その周辺ブロックのローカル動きベクトルの平均と当該注目ブロックのローカル動きベクトルとの差分の絶対値に基づいて注目ブロックのローカル動きベクトルに重み付け係数を全計算対象ブロックについて演算するとともに、前記計算対象ブロックの各重み付け係数およびローカル動きベクトルから、最小二乗法によりグローバル動きベクトルの平行移動パラメータを演算する平行移動パラメータ演算手段、2)前記平行移動パラメータが与えられると、この平行移動パラメータおよび、平行移動、回転、ズームの4パラメータで表したアフィン変換式からグローバル動きベクトルの回転・ズームパラメータを求める回転・ズームパラメータ演算手段、で構成されている。 したがって、簡易にグローバル動きベクトルの平行移動パラメータ、および回転・ズームパラメータを求めることができる。
(5)本発明にかかるグローバル動きベクトル演算装置においては、前記重み付け係数は、注目ブロックおよびその周辺ブロックのローカル動きベクトルの平均と、当該注目ブロックのローカル動きベクトルとの差分の絶対値のべき乗である。したがって、疑いのあるブロックの寄与を限りなく小さくすることができる。
(6)本発明にかかるグローバル動きベクトル演算方法においては、A)演算結果であるブロック別のローカル動きベクトルを記憶するローカル動きベクトルおよび計算対象ブロックを選別するための閾値を記憶しておき、B)前記ブロックごとのローカル動きベクトルからグローバル動きベクトルの平行移動、回転、ズームの各パラメータを求め、C)求めたグローバル動きベクトルを各ブロックのローカル動きベクトルに展開した展開ローカル動きベクトルを求め、D)各ブロックについて、前記記憶されているローカル動きベクトルと前記展開ローカル動きベクトルとの差分を求め、E)前記閾値と比較し、これを超えないブロックを対象ブロックとして決定し、F)前記対象ブロックとして決定されなったブロックを除外して、グローバル動きベクトルの平行移動、回転、ズームの各パラメータを求めさせる処理を、所定条件まで繰り返し実行する。
前記求めたグローバル動きベクトルのパラメータについて、繰り返し演算を行うことにより、より精度の高いグローバル動きベクトルの平行移動パラメータ、および回転・ズームパラメータを求めることができる。
(7)本発明にかかるフレーム補間処理装置においては、A)請求項2のグローバル動きベクトル演算装置、B)前記グローバル動きベクトル演算装置から与えられたグローバル動きベクトルによって、第nフレームおよび第n+1フレームをカメラワーク補償した補償後第nフレームと補償後第n+1フレームを出力するカメラワーク補償手段、C)前記補償後第nフレームと補償後第n+1フレームを用いて、静止部分を特定するためのマスクを生成するマスク生成手段、D)前記マスクを用いて、前記補償後第nフレームと補償後第n+1フレームのブロックマッチング型探索処理を行い、マッチング結果に基づいて、ブロックごとのローカル動きベクトルを出力するブロックマッチング探索処理手段、E)前記ブロックマッチング探索処理手段から与えられたローカル動きベクトルと、前記補償後第n、n+1フレームと、前記生成されたマスクを用いて、前記補償後第nフレームと補償後第n+1フレームの中間フレームを生成して出力する局所動き補償手段を備えている。
したがって、より精度の高いグローバル動きベクトルの平行移動パラメータ、および回転・ズームパラメータによるカメラワーク補償が可能なフレーム補間処理が可能となる。
グローバル動きベクトル演算装置1の機能ブロック図である。 グローバル動きベクトル演算装置1におけるグローバル動きベクトル演算のフローチャートである。 平行移動パラメータ取得を説明する図である。 グローバル動きベクトル演算1のハード構成を示す図である。 演算したグローバル動きベクトルを用いたフレーム補間処理装置200の機能ブロック図である。 前後フレームの一例である。 オブジェクトマスク生成部の詳細ブロック図である。 補正部の詳細ブロック図である。 階層マスク生成部の詳細ブロック図である。 ブロック分割の一例である。 ブロック分割の一例である。 ブロック分割の一例である。 フレーム補間処理装置300の機能ブロック図である。 フレーム補間処理装置400の機能ブロック図である。
以下、本発明における実施形態について、図面を参照して説明する。
(1.GMV演算の概要について)
グローバル動きベクトル演算装置1の機能ブロック図を図1に示す。グローバル動きベクトル演算装置1は、ブロック別動きベクトル演算手段3、平行移動パラメータ演算手段6、回転・ズームパラメータ演算手段7、グローバル動きベクトル記憶手段9、展開後動きベクトル手段11、閾値記憶手段15、計算対象ブロック決定手段17、および繰り返し手段13を備えている。
ブロック別動きベクトル演算手段3は、第nフレームと第n+1フレームについて、それぞれ1画面を構成する画素を所定の矩形のブロックにブロック化して、ブロック別の動きベクトルであるローカル動きベクトルを求めるとともに、求めたブロックについてのローカル動きベクトルを計算対象ブロックのローカル動きベクトルとして与える。
平行移動パラメータ演算手段6は、前記計算対象ブロックのローカル動きベクトルが与えられると、各ブロックを注目ブロックとして、その周辺ブロックのローカル動きベクトルの平均と当該注目ブロックのローカル動きベクトルとの差分の絶対値に基づいて注目ブロックのローカル動きベクトルに重み付け係数を全計算対象ブロックについて演算するとともに、前記計算対象ブロックの各重み付け係数およびローカル動きベクトルから、最小二乗法によりグローバル動きベクトルの平行移動パラメータを演算する。回転・ズームパラメータ演算手段7は、前記平行移動パラメータが与えられると、この平行移動パラメータおよび、平行移動、回転、ズームの4パラメータで表したアフィン変換式からグローバル動きベクトルの回転・ズームパラメータを求める。グローバル動きベクトル記憶手段9は、前記平行移動パラメータおよび前記回転・ズームパラメータを記憶する。
展開後動きベクトル手段11は、前記平行移動パラメータ、および回転・ズームパラメータが与えられると、各ブロックについてのローカル動きベクトルに展開した展開後ローカル動きベクトルを演算する。
閾値記憶手段15は、計算対象ブロックを選別するための閾値を記憶する。計算対象ブロック決定手段17は、各ブロックについて、前記展開後ローカル動きベクトルと、ブロック別動きベクトル演算手段3が演算したローカル動きベクトルとの差が閾値記憶手段15に記憶された閾値内であるブロックを計算対象ブロックとして決定し、決定した計算対象ブロックについてのブロック別動きベクトル演算手段3が演算したローカル動きベクトルを平行移動パラメータ演算手段6に計算対象ブロックとして与える。
繰り返し手段11は、計算対象ブロック決定手段17の処理を所定回数繰り返し実行する手段であって、繰り返し回数が増える度に前記閾値を小さくして、前記繰り返し処理を行う。
このように、演算されたグローバル動きベクトルの前記平行移動パラメータ、および前記回転・ズームパラメータから、ブロック別の動きベクトルに展開させ、計算対象ブロックを前記閾値で決定し、決定したブロックに基づいて、前記平行移動パラメータ、および前記回転・ズームパラメータの計算を繰り返すことにより、より精度の高い前記平行移動パラメータおよび前記回転・ズームパラメータを取得することができる。
(2.GMV取得の詳細処理)
グローバル動きベクトル演算装置1の詳細ブロック図を図2に、演算処理のフローチャートを図3に示す。以下、図2,図3を用いて説明する。
ブロック別動きベクトル演算部31(図2)は、ブロック別動きベクトル演算処理(図3ステップS1)を実行する。具体的には、第nフレームと第n+1フレームについて、それぞれ1画面を構成する画素を所定の矩形のブロックにブロック化して、ブロック別の動きベクトルであるローカル動きベクトルを求める。演算結果は、局所動きベクトル記憶部33(図2参照)に記憶される。
重み付け演算部34(図2)は、ブロック重み付け処理(図3ステップS3)を実行する。
重み付け演算部34(図2)は、局所動きベクトル記憶部33からローカル動きベクトルが与えられると、ブロック(Xblk、Yblk)を注目ブロックとして、その周辺ブロックにおけるローカル動きベクトルの平均maveを式(1)により求める。
Figure 0004964937
Xblk、Yblkはブロックを示す座標、δは有効計算ブロックを示すマスク、mは動きベクトルである。δ(Xblk+k,Yblk+l)は、後述するように演算対象でないブロックについては、「0」と、それ以外は「1」に設定されるが、1回目は全てのブロックが演算対象であるので、「1」に設定される。
注目ブロックを順次変更することにより、全ブロックについてのローカル動きベクトルの平均mave(Xblk、Yblk)が求められる。
重み付け演算部34は、ブロック(Xblk、Yblk)のローカル動きベクトルm(Xblk、Yblk)とブロック(Xblk、Yblk)の周辺部ブロックの平均mave(Xblk、Yblk)と当該注目ブロックの差分の絶対値に基づいて、ブロック(Xblk、Yblk)のローカル動きベクトルに重み付け係数wを演算する。本実施形態においては、下記式(2)、式(3)によって重み付け係数wを求めた。
Figure 0004964937
Figure 0004964937
かかる重み付け演算は、全ブロックについて行われる。なお、差分の絶対値としては、L2ノルム、L1ノルムなどを採用することができる。
本実施形態においては、指数的な収斂を行うことにより、疑いのあるブロックの寄与を限りなく小さくすることができる。更に、1/2(あるいは1/4)のべき乗であるため固定小数点実装(シフトによる構成)がやりやすくなる。これにより、演算器をより簡易に構成できる。さらに、べき乗数とする絶対値に対し4乗とするようにした。これにより大きな差分である場合には、そのブロックの重み付け係数wをより小さくすることができる。
平行移動パラメータ演算部36(図2)は、局所動きベクトル記憶部33からローカル動きベクトルが与えられると、重み付け演算部34から各ブロックの重み付け係数を受け取り、アフィン変換における平行移動パラメータa1,a4を演算する(図3ステップS7)。
アフィン変換における6つのパラメータa1〜a6を求める式を、式(4)、式(5)に示す。
Figure 0004964937
本実施形態においては、各ローカル動きベクトルについて重み付け演算をしているので、式(4)、式(5)は、式(6)、式(7)と表される。これにより平行移動パラメータa1,a4が求められる。
Figure 0004964937
ズーム・回転パラメータ演算部37(図2)は、平行移動パラメータ演算部36から平行移動パラメータa1,a4が与えられると、重み付け演算部34から各ブロックの重み付け係数を受け取り、アフィン変換におけるズーム・回転パラメータa2,a3を演算する(図3ステップS9)。
本実施形態においては、式(6)、式(7)を一部限定することにより、ズーム・回転パラメータa2,a3を、平行移動パラメータa1,a4に基づいて求めるようにした。
カメラワークに限定した場合、アフィン変換のパラメータとしては、平行移動、回転、ズームに限定される。したがって、パラメータa5,a6は、下記で表される。
−a6=a2
−a5=−a3
これらを前記式(6),式(7)に代入すると、式(8)、式(9)が得られる。
Figure 0004964937
式(8)、式(9)を変形することにより、パラメータa2,a3は、式(10)、式(11)で表される。
Figure 0004964937
式(10)、式(11)から明らかなように、パラメータa2,a3は、パラメータa1,a4から演算することができる。
得られたパラメータa1〜a4は、グローバル動きベクトル記憶部39(図2)に記憶される。
繰り返し制御部43(図2)は、所定回数繰り返し済みか否か判断する(図3ステップS11)。本実施形態においては、繰り返し回数として「3回」を採用した。この場合、1回目であるので、演算対象ブロック選定処理(図3ステップS17)が実行される。
展開部41(図2)は、グローバル動きベクトル記憶部39からパラメータa1〜a4が与えられると、ブロック別動きベクトル演算部31と同じブロックのブロック別動きベクトルに展開する(GMVからLMVに変換)。
演算対象ブロック選定部47は、繰り返し制御部43から繰り返し命令が与えられると、各ブロックについて、展開されたブロック別動きベクトルと、局所動きベクトル記憶部33のブロック別動きベクトルの差を演算し、演算結果が閾値記憶部45に記憶されている閾値内であるブロックを演算対象ブロックとして決定する。
これを全ブロックについて繰り返すことにより、被選定ブロック位置を平行移動パラメータ演算部36および重み付け演算部34に与える。
かかる演算対象ブロックの選定処理の概念について図4を用いて説明する。図4は、説明のために、8つのブロックp1〜p8のローカル動きベクトルから、グローバル動きベクトルを求めた場合を示す。図4Aは8つ全てのブロックp1〜p8から得られたグローバル動きベクトル81を示す。このグローバル動きベクトル81と閾値Th内にあるブロックp1,p2,p4,p6が抽出される。演算処理としては、グローバル動きベクトル81から得られるローカル動きベクトルと比較することにより計算対象ブロックとして決定される。
重み付け演算部34(図2)は、被選定ブロック位置が与えられると、選定されたブロックを用いて、重み付け演算を行う(図3ステップS3)。具体的には、重み付け演算部34は、選定されなかったブロックについてδ(xblk,yblk)=0として、式(1)の周辺ブロックにおけるローカル動きベクトルの平均mave を演算する。
なお、選定対象とならなかったブロックについては、グローバル動きパラメータ演算に用いないため、そもそも、w(xblk,yblk)の計算も不要である。したがって、重み付け演算部34は、当該ブロックについては、w(xblk,yblk)=0として重み付け演算を省略する。
なお、上記式(8)〜(11)において、Σwとなっている全ての部分をΣδwと置き換えることによっても同様の動作が可能である。これにより総和計算に明示的にマスク処理を施すことができる。
平行移動パラメータ演算部36(図2)は、演算対象ブロック選定部47から、被選定ブロック位置が与えられると、指定されたブロックの重み付け係数を用いて、平行移動パラメータを演算する(図3ステップS7)。
ズーム・回転パラメータ演算部37(図2)は、被選定ブロックについて、その重み付け係数および平行移動パラメータa1,a4を用いて、パラメータa2,a3を演算する(図3ステップS7)。
このようにして、被選定ブロック(計算対象でないブロック以外のブロック)のLMVから求めたGMVパラメータa1〜a4が得られ、パラメータa1〜a4は、グローバル動きベクトル記憶部39に上書きされる。
図4Bに、8つのブロックp1〜p8のうち、計算対象ブロックとなったブロックp1,p2,p4,p6から、得られた新たなグローバル動きベクトル82を示す。
繰り返し制御部43(図2)は、所定回数繰り返し済みか否か判断する(図3ステップS11)。この場合、2回目であるので、所定回数である3回は処理していないと判断して、ステップS13に進み、1回目であるか否か判断する。この場合、1回目ではなく2回目であるので、閾値を小さくする処理を実行する(ステップS15)。具体的には、閾値記憶部45に記憶されている閾値を変更する変更命令を行う。本実施形態においては、「2」である閾値を「1」とした。
演算対象ブロック選定部47(図2)は、かかる小さくなった閾値を用いて、演算対象ブロックの選定処理を行う(図3ステップS17)。
図4Cは、計算対象ブロックとなったブロックp1,p2,p4,p6から、得られた新たなグローバル動きベクトル82および小さくなった閾値Th’により、グローバル動きベクトル82と閾値Th’内にあるブロックp1,p2,p3,p5,p9が抽出される。
以下、同様にして、図3ステップS3〜ステップS9の処理が実行され、新たなグローバル動きベクトルのパラメータa1〜a4がグローバル動きベクトル記憶部39に上書きされる。
図4Dは、計算対象ブロックとなったブロックp1,p2,p3,p5,p9から、得られた新たなグローバル動きベクトル83を示す。
以下、ステップS11にて3回目の処理が実行され、ステップS15で閾値がさらに小さくされる。本実施形態においては、閾値を「1」から「2/3」とした。ステップS17からステップS9の処理が実行され、あらたなグローバル動きベクトルのパラメータa1〜a4がグローバル動きベクトル記憶部39に追記される。
繰り返し制御部43(図2)は、所定回数の繰り返しが終わると、処理を終了する。
このように、得られたグローバル動きベクトルを用いて、閾値を小さくしつつ、計算対象ブロックを変更して、新たなグローバル動きベクトルを求める処理を繰り返すことにより、より精度の高いグローバル動きベクトルを得ることができる。
本実施形態においては、閾値を小さくする手法として、繰り返し回数をnとした場合に、閾値=2/nとした。本実施形態においては繰り返し回数を3回としたので、閾値は、最初は「2」、次は「1」、その次は「2/3」となる。
なお、繰り替え処理を行うか否かの条件については、回数としたが、閾値を設けておき、条件を満足するまで処理を繰り返すようにしてもよい。
また、計算対象ブロック決定手段17が求める差分については、実施形態においては、差分の絶対値を採用したがこれに限定されない。
(3.変形実施形態)
上記実施形態においては、GMVパラメータ演算について、重み付け係数を考慮して、最小二乗法で平行移動パラメータを求めて、これをアフィン変換の式に代入して、ズーム・回転パラメータを求めた。しかし、これに限定されず、他の手法によって4つのパラメータを演算するようにしてもよい。
本実施形態におけるGMVパラメータ演算手法は4種類のグローバル動きベクトルを簡易に計算できるという効果がある。したがって、本実施形態におけるグローバル動きベクトル演算装置1のうち、GMVパラメータ演算手段5(図1参照)における処理を単独の装置として把握することもできる。
また、繰り返し処理を行う手段(図1における展開後動きベクトル演算手段11、繰り返し手段13、閾値記憶手段15、および演算対象ブロック選定手段17)により、精度よくかつ高速にグローバル動きベクトルのパラメータ演算が可能となる。これらを単独の装置として把握することもできる。
すわなち、グローバル動きベクトルを求める演算装置であれば、どのような物にも適用可能であり、上記4パラメータだけでなく、6パラメータ(Affine)、さらに、8パラメータ(射影)を求めるグローバル動きベクトル演算装置に適用可能である。、
繰り返し処理による計算ブロックの除外・復活を実施し再計算を行なうことにより、初期の誤ったパラメータが原因で正しいブロックまで過剰に除去されることを防ぐことができる。また、繰り返しごとに閾値の値を小さくすることにより、繰り返し演算の前、または繰り返し演算の序盤は、正しいパラメータとのずれが大きいおそれがある。これにより、当初は閾値を大きめにとることで正しいブロックの検出漏れを防ぐことができる。
上記実施形態では求めたGMVから閾値を小さくしながら、演算対象ブロックを変更しつつ、繰り返し演算を行っている。これにより、精度の高い中間フレームの生成が可能となる。
(4.GMVを用いた補間処理について)
前記中間フレーム画像生成時に、動いているブロックと動いていないブロックを区別するためのマスクを生成することができる。特開2003-018604号公報には、前後フレームからマスクを生成することが開示されている(図4参照)。
しかしながら、かかるマスクの生成においては、以下のような問題があった。動いているブロックの移動速度、移動距離が大きい場合、精度よく探索するためには、探索の範囲を広く設定する必要がある。しかし、探索範囲を広くすると演算速度が問題となる。下記実施形態においては、ブロックごとに探索範囲を複数段階とする階層構造マスクを生成することにより、上記問題を解決した。
まず、補間処理を行うフレーム補間処理装置200の機能ブロック図について図5を用いて説明する。
補間処理を行うフレーム補間処理装置200は、カメラワーク補償部201、マスク生成部203、ブロックマッチング型探索処理204,局所動き補償部206、外乱除去部207、カメラワーク推定部209を備えている。
カメラワーク補償部201は前回のGMVパラメータを用いて補償後の前後フレームを出力する。一般的には、GMVはパラメータ、フレームn,n+1の中間フレームn+0.5を生成するために用いられる。本実施形態においては、演算遅延の抑制やフレーム記憶領域削減のために、フレームn,n+1から得られたGMVから、つぎの中間フレームn+1.5を生成するようにした。たとえば、等速直線運動と仮定すれば、
GMVact(n+1.5)=GMV0(n+0.5)
で求められる。
GMVact:実際にカメラワーク補償に用いるGMV
GMV0:カメラワーク推定部209から算出されたGMV
なお、等速直線運動ではなく、より滑らかさを加味するために、
GMVact(n+1.5) = {GMV0(n+0.5) +GMVact(n+0.5)}/2
として、GMVactを演算するようにしてもよい。
カメラワーク補償部201は、与えられた前後フレームn,n+1を、GMVact(n+0.5)を用いてそれぞれ中間フレーム時間n+0.5にあわせて補償する。補償後の前後フレームがマスク生成部203、ブロックマッチング探索処理部204,および局所動き補償部206に与えられる。
ここでは図6に示すような前後フレームが出力されたものとする。なお、図6Aは前フレームであり、図6Bは後フレームである。なお、図6において、物体244は静止しており、物体241は後フレームでは矢印α方向に移動しており、物体247は後フレームでは矢印β方向に移動している。
(4.1 マスク生成について)
マスク生成部203について説明する。マスク生成部203は、オブジェクトマスク生成部203aおよび階層マスク生成部203bを備えている。
(4.1.1 オブジェクトマスク生成について)
オブジェクトマスク生成部203aの詳細ブロックを図7に示す。オブジェクトマスク生成部203aは、エッジ抽出部251、261、仮動きオブジェクトマスク生成部252,262、補正部253、263を備えている。
エッジ抽出部251は、後フレームが与えられると、エッジ抽出を行う。エッジ抽出処理については、従来と同様であるので説明は省略する。仮動きオブジェクトマスク生成部252は、後フレームから前フレームの値を減算することにより、後フレームと前フレームとの差分を演算するとともに、値がマイナスの値となった画素はゼロとする。
エッジ抽出部261は、前フレームが与えられると、エッジ抽出を行う。仮動きオブジェクトマスク生成部262は、前フレームから後フレームの値を減算することにより、後フレームと前フレームとの差分を演算するとともに、値がマイナスの値となった画素はゼロとする。かかるマイナスとなった画素についてゼロとすることにより、仮動きオブジェクトマスク生成部252,262で、異なる差分画像が得られる。補正部253は、仮動きオブジェクトマスク生成部252、262からの2つの差分画像およびエッジ抽出部251から与えられるエッジ画像を用いて、補正処理を行う。補正部253の構成について図8を用いて説明する。
図8は、補正部263の詳細ブロック図である。膨張処理部255は、後フレームの仮動きオブジェクトマスクの膨張処理を行う。具体的には、仮動きオブジェクトマスクは、静止している部分は黒で、動いている画素が白の二値画像である。白の部分を1画素分だけ周辺方向に広げる処理を行う。膨張処理部257は、後フレームのフレームエッジ画像の膨張処理を行う。膨張処理については同様である。
論理積演算部256は、前フレームの仮動きオブジェクトマスクと、膨張後の後フレームの仮動きオブジェクトマスクとの論理和を演算する。後フレームの仮動きオブジェクトマスクは膨張処理がなされているため、多少の演算誤差を吸収することができる。論理和演算部258は、上記論理和演算結果と、膨張処理がなされた後フレームエッジの論理和演算を行う。
閾値比較部259は、膨張後の後フレームの仮動きオブジェクトマスクと、論理和演算部258の出力を所定の閾値で比較して、閾値以上の部分について、オブジェクトマスクの穴埋めを行う。
このように、エッジ抽出部251からのエッジ画像および穴埋めを行うことにより、前記2つの差分画像で動いている領域が前フレームと後フレームで重なっている場合でも、輪郭を取得することができる。例えば、図6に示す物体241の部分は、前後で輪郭が少しずれて重なった位置に存在する。したがって、論理積演算部256の出力は、一部が欠けた円の形のマスクとなる。これに輪郭情報を付加するとともに、輪郭となるまで穴埋めすることにより、円形状のマスクが得られる。
前フレーム用の補正部263は与えられるフレームが変わるだけで、補正部253と同様の構成をしており、同様にして、前フレームの動きオブジェクトマスクが生成される。これにより、前フレーム、後フレームの動きオブジェクトマスクが得られる。なお、この動きオブジェクトマスクは前フレーム用も後フレーム用もいずれも画素単位の二値画像である。
(4.1.2 階層マスク生成について)
得られた動きオブジェクトマスクを用いて、階層マスク生成部203b(図5参照)は、各ブロックの探索範囲を決定する階層マスクを生成する。階層マスク生成部203bの詳細を図9に示す。
階層マスク生成部203bは、ブロック分割部261、271、前フレームオブジェクト画素数計測部263,後フレームオブジェクト画素数計測部273、最大値抽出部265,275、ブロックパターン別前後フレーム比較部277,階層数決定部279を備えている。
(4.1.2.1 ブロック分割処理について)
ブロック分割部261は、前フレームの動きオブジェクトマスクを所定のブロックに分割する。動きオブジェクトマスクは、既に説明したように、動いている部分は白く、静止している部分については黒の二値画像である。本実施形態においては、第1分割部261aが画素数16*16に、第2分割部261bが画素数32*32に、第3分割部261cが画素数64*64のブロックに分割するようにした。かかる画素数は計算を容易にするためであるが、これに限定されるわけではない。また、分割部の数も限定されない。
ブロック分割部271も同様である。図10〜図12にブロック分割部261,271による分割結果の一例を示す。
図10は、画素数16*16にブロック分割した状態を示す。図10は最小矩形が8画素を表している。また、太線が各ブロックの境界を表している。また、画素との関係をわかりやすくするために、本来マスクとして黒である部分を白とし、白部分をハッチング処理している。また、図10Aが、ブロック分割部261によってブロック分割された前フレームであり、図10Bが、ブロック分割部271によってブロック分割された後フレームを示している。以下では、ブロックの左上角のブロック特定座標で特定するものとする。たとえば、図10Aにおいて、オブジェクト291は、ブロック(4,4)、(3,4)、(4,3)、計3つのブロックにわたって位置している。
図11は、画素数32*32にブロック分割した状態を示す。なお、図11に示す画素数32*32のブロック分割は、図10とは異なり、各ブロックをこのブロックサイズにおいて、1/2ブロック幅分X方向またはY方向にずらして重複するよう配置する。これにより、ブロックサイズが異なっても、ブロックの左上角のブロック座標は同じでなる。
図12は、画素数64*64におけるブロック分割した場合である。なお、ブロック分割は、このブロックサイズにおいて、1/4ブロック幅分X方向,Y方向にずらしながら重複して配置する。
(4.1.2.2 画素計測処理について)
前オブジェクト画素計測部263は、第1分割部261a〜第3分割部261cによって、前記ブロックサイズに分割された各ブロックについて、それぞれ、ブロック内の画素数を計測する。
前フレームオブジェクト画素計測部263(図9参照)による処理について、図10〜図12を参照しつつ説明する。
前フレームオブジェクト画素計測部263(図9参照)の画素数計測部263aは、1ブロックの画素数が16*16における計測を行う(図10参照)。画素数計測部263aは、ブロック(0,0)から順次その外側に位置するブロックについて探索を行う。図10Aでは、ブロック(0,0)が「0」、ブロック(0,1)が「0」、・・・・、ブロック(4,3)が「64」、・・・、ブロック(3,4)が「128」、ブロック(4,4)が「256」・・・となる。
後フレームオブジェクト画素計測部273(図5参照)の画素数計測部273aも同様の処理を行う。ブロック(0,0)が「0」、ブロック(0,1)が「0」、・・・・、ブロック(2,1)が「64」、・・・、ブロック(1,2)が「128」、ブロック(2,2)が「256」・・・となる。
前フレームオブジェクト画素計測部263(図9参照)の画素数計測部263bは、1ブロックの画素数が32*32における計測を行う(図11参照)。図11Aでは、ブロック(0,0)が「0」、ブロック(0,1)が「0」、・・・、ブロック(3,2)が「64」、・・・、ブロック(2,3)が「128」、ブロック(3,3)が「448」・・・となる。
後フレームオブジェクト画素計測部273(図5参照)の画素数計測部273bも同様の処理を行う。図11Bにおいては、ブロック(0,0)が「0」、ブロック(1,0)が「64」、・・・・、ブロック(1,1)が「448」・・・となる。
前フレームオブジェクト画素計測部263(図9参照)の画素数計測部263cは、1ブロックの画素数が64*64における計測を行う(図12参照)。図12Aでは、ブロック(0,0)が「0」、ブロック(1,0)が「64」、・・・ブロック(1,1)が「448」・・・となる。
後フレームオブジェクト画素計測部273(図5参照)の画素数計測部273cも同様の処理を行う。図12Bにおいては、ブロック(0,0)が「448」、ブロック(1,0)が「448」、・・・・、ブロック(1,1)が「448」・・・となる。
(4.1.2.3 最大値決定処理について)
前フレームブロック別最大値抽出部265(図9参照)は、画素数計測部263a〜263cが計測した各ブロックについて、その最大値を決定する。その際、所定範囲の周辺ブロックも含めて、当該ブロックの最大値とする。また、後述する階層数決定部279(図9参照)にて、ブロックサイズ別に比較する為に、画素数をブロック構成画素数との相対値とした。
以下、図10〜図12を参照しつつ説明する。
i)最大値抽出部265a、275aによる処理
前フレームブロック別最大値抽出部265(図9参照)の最大値抽出部265aは、計測した画素数について、その周辺ブロックも合わせて、そのうちの最大値を当該ブロックの最大値とする。本実施形態においては、16*16画素のブロックの場合は、周辺ブロックとして周囲1ブロックとした。
図10Aでは、ブロック(0,0)が「0」であり、その1ブロック周辺の範囲、であるブロック(0,1)、(1,0)、(1,1)は、ともに「0」、であるので、ブロック(0,0)の最大値は「0」となる。その際、相対値は16*16で除算しても「0」である。以下、かかる処理を繰り返す。ブロック(2,3)は「0」であるが、周辺1ブロックを探索すると、ブロック(3,4)が「128」である。したがって、ブロック(2,3)の最大値は、これを256で除算した「128/256」となる。同様にして、ブロック(2,4)、(2,5)の最大値は「128/256」となる。また、ブロック(3,2)の値は、「0」であるが、1ブロック周辺にあるブロック(4,3)が「64」である。したがって、ブロック(3,2)の最大値は、これを256で除算した「64/256」となる。また、ブロック(3,3)の値は、「0」であるが、1ブロック周辺にあるブロック(4,4)が「256」である。したがって、ブロック(3,3)の最大値は、これを256で除算した「256/256」となる。
後フレームオブジェクト画素計測部273(図5参照)の画素数計測部275aも同様の処理を行う。ブロック(0,0)が「0」、ブロック(0,1)〜(0,3)が「128/256」となる。ブロック(1,0)は「64」、ブロック(1,1)〜(1,3)が「256」・・・となる。
ii)最大値抽出部265b,275bによる処理
前フレームブロック別最大値抽出部265(図9参照)の最大値抽出部265bは、計測した画素数について、その周辺ブロックも合わせて、そのうちの最大値を当該ブロックの最大値とする。本実施形態においては、32*32画素のブロックの場合は、周辺ブロックとして周囲2ブロックとした。
図11Aでは、ブロック(0,0)が「0」であり、その2ブロック周辺の範囲、であるブロック(0,1)、(1,0)、(1,1)は、ともに「0」であるので、ブロック(0,0)の最大値は「0」となる。その際、相対値は32*32で除算しても「0」である。
以下、上記処理を繰り返す。ブロック(0,1)は「0」であるが、周辺2ブロックを探索すると、ブロック(2,3)が「128」である。したがって、ブロック(0,1)の最大値は、これを1024で除算した「128/1024」となる。同様にして、ブロック(0,2)、(0,3)は「128/1024」となる。
また、ブロック(1,0)は「0」であるが、周辺2ブロックを探索すると、ブロック(3,2)が「64」である。したがって、ブロック(1,0)の最大値は、これを1024で除算した「64/1024」となる。ブロック(1,1)は「0」であるが、周辺2ブロックを探索すると、ブロック(3,3)が「448」である。したがって、ブロック(1,1)の最大値は、これを1024で除算した「448/1024」となる。以下、同様にして、ブロック(1,2)、(1,3)は「448/1024」となる。
後フレームオブジェクト画素計測部273(図5参照)の画素数計測部275bも同様の処理を行う。ブロック(0,0)が「448/1024」、ブロック(0,1)〜(0,2)が「448/1024」となる。また、ブロック(0,3)が周囲2ブロック内のブロック(1,2)の「384/1024」となる。
iii)最大値抽出部265c,275cによる処理
前フレームブロック別最大値抽出部265(図9参照)の最大値抽出部265cは、計測した画素数について、その周辺ブロックも合わせて、そのうちの最大値を当該ブロックの最大値とする。本実施形態においては、64*64画素のブロックの場合は、周辺ブロックとして周囲3ブロックとした。
図12Aでは、ブロック(0,0)が「0」であるが、その3ブロック周辺の範囲、であるブロック(1,1)は、448である。したがって、ブロック(0,0)の最大値は、これを4096で除算した「448/4096」となる。同様にして、ブロック(0,1)〜ブロック(0,6)は「448/4096」となる。
後フレームオブジェクト画素計測部273(図5参照)の画素数計測部275cも同様の処理を行う。ブロック(0,0)が「448/4096」・・・となる。
(4.1.2.4 前後フレーム比較処理について)
ブロックパターン別前後フレーム比較部277は、3種類のブロックパターンそれぞれについて、各ブロックについての最大値、最小値を決定する。
16*16画素のブロックについては、前フレームのブロック(0,0)は「0」、後フレームのブロック(0,0)は「0」である。したがって、ブロック(0,0)は最大値、最小値とも「0」となる。前フレームのブロック(0,1)は「0」、後フレームのブロック(0,1)は「128/256」である。したがって、ブロック(0,1)は最大値「128/256」、最小値「0」となる。同様にして、ブロック(0,2)、(0,3)は最大値「128/256」、最小値「0」となる。ブロック(1,0)については、最大値「64/256」、最小値「0」となる。
32*32画素のブロックについては、前フレームのブロック(0,0)は「0」、後フレームのブロック(0,0)は「448/1024」である。したがって、ブロック(0,0)は最大値「448/1024」、最小値「0」となる。また、前フレームのブロック(0,1)は「128/1024」、後フレームのブロック(0,1)は「448/1024」である。したがって、ブロック(0,1)は最大値「448/1024」、最小値「128/1024」となる。
64*64画素のブロックについては、前フレームのブロック(0,0)は「448/4096」、後フレームのブロック(0,0)は「448/4096」である。したがって、ブロック(0,0)は最大値、最小値とも「448/4096」となる。また、前フレームのブロック(0,1)は「448/4096」、後フレームのブロック(0,1)は「448/4096」である。したがって、ブロック(0,1)は最大値、最小値とも「448/4096」となる。
このようにして、前後フレームの対応するブロックの値から、最大値、最小値がブロックパターン毎に求められる。
階層数決定部279(図9参照)は、閾値処理により、当該ブロックの検索範囲を特定する階層数を決定する。具体的には、ブロックについて、閾値が定められており、最小値が閾値を超えている場合には、階層数として決定する。
本実施形態においては、閾値を「1/2」とするとともに、得られた値が、1/4以上1/2未満の場合はその下の階層(ブロックを構成する画素数が小さなもの)の同位置の最大値が3/4以上であれば、大きなブロックの階層数として決定するようにした。
例えば、32*32画素のブロックでは、最小値が1/4であり、16*16画素のブロックでは、最小値3/4であれば、32*32画素が階層として設定される。
図10〜図12の場合、ブロック(0,0)については、16*16画素の場合、最大値、最小値とも「0」、32*32画素の場合、最大値「448/1024」、最小値「0」、64*64画素の場合、最大値、最小値とも「448/4096」である。いずれも閾値「1/2」はもちろん、「1/4」も越えていないので、階層数は「0」、すなわち、探索しないブロックとして決定される。
ブロック(0,1)については16*16画素の場合、最大値「128/256」、最小値「0」、32*32画素の場合、最大値「448/1024」、最小値「128/1024」、64*64画素の場合、最大値、最小値とも「448/4096」である。したがって、ブロック(0,0)の場合と同様に、階層数は「0」として決定される。
以上の処理を繰り返すことにより、各ブロックの階層数が決定される。
なお、複数種類のブロックについて、閾値を超えている場合もある、その場合は、そのうちの大きな方のブロックの階層数とすればよい。たとえば、16*16画素と32*32画素の場合と2つとも閾値を超える場合、大きい方のブロックである階層数「2」と決定される。
階層数によって、予め定められた探索範囲が決定される。本実施形態においては、階層数と、前、後フレームオブジェクト画素数計測部263,273の計測範囲とを一致させるようにした。すなわち、階層数が「1」であれば、周囲1ブロックまで、階層数が「2」であれば、周囲2ブロックまで、階層数が「3」であれば、周囲3ブロックとした。しかし、探索範囲については、これに限定されない。
以上説明したように、マスク生成部203は、ブロックマッチングの探索範囲をオブジェクトの大きさおよび移動速度に基づき、ブロックごとに複数段階としている。このように、移動範囲の広いことが予測される部分は探索範囲を広くできるように階層数を上げ、移動範囲の狭いことが予測される部分は探索範囲を狭くするように階層数を下げることができる。これにより、演算量を無駄に増やすことなく、精度の高い探索が可能となる。特に、移動がない部分、たとえば、背景のように差分が発生しない部分については、探索しないという制御も可能である。
また、動きオブジェクトマスクは、画素単位であるので、オブジェクト単位の切り出しが可能となる。
(4.2 補償処理について)
図5に示すブロックマッチング型探索処理204は、カメラワーク補償部201から与えられた補償後の前後フレームおよびマスク生成部203の階層マスク生成部203bから与えられる階層マスクを用いて、ブロックごとのブロックマッチング処理を行い、ブロックごとのローカル動きベクトルを求める。
本実施形態においては、ブロックごとに、探索範囲が異なる以外は従来と同様であるのでブロックマッチング型探索処理の説明は省略する。
局所動き補償部206はブロックマッチング型探索処理204からローカル動きベクトルを受け取ると、カメラワーク補償部201から与えられた補償後の前後フレームから、中間フレームを生成して出力する。局所動き補償部206は、その際、オブジェクトマスク生成部203aよりオブジェクトマスクを受け取って、これにより動いていない領域については、補償処理をする必要がない。中間フレームの生成については、従来と同様であるので詳細な説明は省略する。
局所動き探索範囲マスクをLMV算出(局所動き推定)に用いることで、単一ブロック内で背景とオブジェクトの分離ができ、精度の向上を図ることができる。また、局所動き補償にマスクを用いることで、中間フレームのブロックノイズが減少するので、補償精度を向上することができる。
本実施形態においては、既に説明したように、1つ前のGMVを用いて、カメラワーク補償を行っている。
カメラワーク推定部209は、LMVへの分解部210から与えられたローカル動きベクトル、およびブロックマッチング型探索処理部204から出力されたローカル動きベクトルを用いてカメラワーク推定を行う。カメラワーク推定部209から出力されたグローバル動きベクトルは、LMVへの分解部208にてローカル動きベクトルに展開される。外乱除去部207は、与えられたローカル動きベクトルを用いて、計算対象ブロック選定部47(図2参照)による被選定ブロック選定処理をおこない、外乱を除去する。カメラワーク推定部209は、外乱除去後のローカル動きベクトルを用いてカメラワーク推定を行い、グローバル動きベクトルを求める。このグローバル動きベクトルが次のフレームを補償するグローバル動きベクトルとしてカメラワーク補償部201に与えられる。
なお、本実施形態においては、前回算出したグローバル動きベクトルをLMVへの分解部210にて展開するようにした。しかし、これに限られることなく、前回算出したグローバル動きベクトルをカメラワーク推定部209の出力するグローバル動きベクトルとあわせて出力するようにしてもよい。
また、本実施形態においては、カメラワーク推定部209、LMVへの分解部208、外乱除去部207と接続され、さらに、外乱除去部207の出力が、再び、カメラワーク推定部209に与えられている。しかし、これに限らず、外乱除去部207、カメラワーク推定部209と接続して、ブロックマッチング型探索処理部204からの出力を、外乱除去部207に与えて、カメラワーク推定部209にてカメラワーク推定をするようにしてもよい。
(4.3 補償処理の変形実施形態)
図13に補償処理を行う他の実施形態であるフレーム補間処理装置300の機能ブロック図を示す。図5に示す実施形態では、オブジェクトマスク生成部203aに、グローバル動きベクトルを用いて補償後のフレームを用いて、差分を求めた。これに対して、この実施形態では、前回算出したGMVを用いてLMVを生成し、これをマスク生成部303のオブジェクトマスク生成部303aに与えている。オブジェクトマスク生成部303aは、与えられたLMVを用いて前後フレームを各ブロック単位で移動させたものを補償後フレームとして、差分をとるようにしている。これにより、図5に示す実施形態と比べると、精度は低いが簡易な構成で、実現が可能である。また、前回算出したGMVを用いて生成したLMVは、局所動き補償部306にも与えられ、局所動き補償がなされる。
カメラワーク推定部309、LMVへの分解部308,外乱除去部307による処理については、図5の場合と同様である。
図14に補償処理を行う他の実施形態であるフレーム補間処理装置400の機能ブロック図を示す。図13に示す実施形態では、カメラワーク補償を行っていないが、この例では、マスク生成時には、LMVのみで処理を行うが、局所動き補償部406に対しては、GMVを用いて補償した前後フレームを与えている点が異なる。GMVを用いた補償処理により背景部分の回転・ズームを伴う場合に画質の劣化が抑制される。
この実施形態では、GMVを用いた補償処理はマスク生成処理の後までに間に合えばよいので、その分だけ、演算するための時間を稼ぐことができる。
この実施形態では、ブロックマッチング型ME処理部404はカメラワークを考慮していないブロックマッチング型探索処理を行っている。これに対して、局所動き補償部406で用いる画像はカメラワーク補償を行なった後の画像である。これらの整合性を保つためにカメラワーク除去LMV計算部405で、その分を除去した処理をおこなう。
また、カメラワーク推定部409、LMVへの分解部408,外乱除去部407による処理については、図5の場合と同様である。
(4.4 階層マスク生成装置としての開示)
上記実施形態における階層マスク生成部203bは、下記に示す階層マスク生成装置として把握することもできる。
第nフレームおよび第n+1フレームの画像データに基づいて生成され、前記第nフレームからみた第nフレーム動きマスクと、前記第n+1フレームからみた第n+1フレーム動きマスクであって、前記各動きマスクは、動いている部分が白で、動いていない部分が黒の2値画像である、が与えられると、ブロックごとに異なる探索範囲を決定するための階層マスクを生成する装置であって、
前記各動きマスクが与えられると、各々について、所定の構成画素ブロックに分割する手段であって、前記の構成画素数は、各動きマスク毎に複数種類あり、この複数種類のブロックパターンに分割する分割手段、
前記第nフレーム動きマスクにおける前記複数のブロックパターンについて、各ブロックのうち前記白部分が存在するブロックの周辺ブロックについて、前記ブロックのブロックサイズに応じて、ブロックサイズが大きくなるほど、周辺探索範囲を大きくして、前記白部分の画素数の最大値を当該周辺ブロックの最大値として決定する第nフレーム周辺ブロック画素数決定手段、
前記第n+1フレーム動きマスクにおける前記複数のブロックパターンについて、各ブロックのうち前記白部分が存在するブロックの周辺ブロックについて、前記ブロックのブロックサイズに応じて、ブロックサイズが大きくなるほど、周辺探索範囲を大きくして、前記白部分の画素数の最大値を当該周辺ブロックの最大値として決定する第n+1フレーム周辺ブロック画素数決定手段、
前記第nフレーム、第n+1フレーム動きマスクにおける前記複数のブロックパターン別に、同じブロックを比較して、当該ブロックの最大値および最小値を求める最大値最小値演算手段、
前記ブロックパターン別の各ブロックの最小値が所定の閾値を超える場合には、そのブロックパターンで示される領域が探索範囲であるとして決定する階層マスク決定手段、
を備えた階層マスク生成装置。
かかる構成を採用することにより、オブジェクトの大きさ、移動速度に応じて探索範囲を変えることができる。
なお、「ブロックパターンが異なる」とは、実施形態では、ブロックサイズだけでなく、各ブロックを重複して配置した場合について説明したが、ブロックサイズのみ異なるようにしてもよい。
(4.5 オブジェクトマスク生成装置としての開示)
上記実施形態におけるオブジェクトマスク生成部203aは、下記に示す動きマスク生成装置として把握することもできる。
第nフレームおよび第n+1フレームの画像データに基づいて生成され、前記第nフレームからみた第nフレーム動きマスクと、前記第n+1フレームからみた第n+1フレーム動きマスクであって、前記各動きマスクは、動いている部分が白で、動いていない部分が黒の2値画像である、を生成する動きマスク生成部装置であって、
第nフレームから第n+1フレームの画像データを減算して、値がマイナスとなる画素については値をゼロとした前記第nフレームからみた第nフレーム動きマスクを生成する第1マスク生成手段、
第n+1フレームから第nフレームの画像データを減算して、値がマイナスとなる画素については値をゼロとした前記第n+1フレームからみた第n+1フレーム動きマスクを生成する第2マスク生成手段、
前記第nフレームの画像データから第nフレームエッジ画像を抽出する第1エッジ抽出手段、
前記第n+1フレームの画像データから第n+1フレームエッジ画像抽出する第2エッジ抽出手段、
第nフレーム動きマスクを、前記第nフレームエッジ画像および第n+1フレーム動きマスクによって補正する第1補正手段、
第n+1フレーム動きマスクを、前記第n+1フレームエッジ画像および第nフレーム動きマスクによって補正する第2補正手段、
を備えた動きマスク生成装置。
また、上記開示した装置を任意に組み合わせることもできる。
(5.他の実施形態)
上記各実施形態においては、各ブロックで行っているアルゴリズムを、ハードウェア記述言語(Hardware Description Language)で記述することにより、各ブロックを構成すればよい。
上記実施形態においては、図1、図5に示す機能を実現するために、並列処理を可能とするために、全てをハードウェア処理する場合について説明した(例えば、図2参照)。しかし、これに限定されず、一部をソフトウェアによって実現してもよい。その場合、プログラムの一部の処理を、オペレーティングシステム(OS)にさせるようにしてもよい。

Claims (7)

  1. 第nフレームと第n+1フレームについて、それぞれ1画面を構成する画素を所定の矩形のブロックにブロック化して、ブロック別の動きベクトルであるローカル動きベクトルを求めるとともに、求めたブロックについてのローカル動きベクトルを計算対象ブロックのローカル動きベクトルとして与えるブロック別動きベクトル演算手段、
    前記計算対象ブロックのローカル動きベクトルが与えられると、各ブロックを注目ブロックとして、その周辺ブロックのローカル動きベクトルの平均と当該注目ブロックのローカル動きベクトルとの差分の絶対値に基づいて注目ブロックのローカル動きベクトルに重み付け係数を全計算対象ブロックについて演算するとともに、前記計算対象ブロックの各重み付け係数およびローカル動きベクトルから、最小二乗法によりグローバル動きベクトルの平行移動パラメータを演算する平行移動パラメータ演算手段、
    前記平行移動パラメータが与えられると、この平行移動パラメータおよび、平行移動、回転、ズームの4パラメータで表したアフィン変換式からグローバル動きベクトルの回転・ズームパラメータを求める回転・ズームパラメータ演算手段、
    前記平行移動パラメータ、および回転・ズームパラメータが与えられると、各ブロックについてのローカル動きベクトルに展開した展開後ローカル動きベクトルを演算する展開後動きベクトル手段、
    計算対象ブロックを選別するための閾値を記憶する閾値記憶手段、
    各ブロックについて、前記展開後ローカル動きベクトルと、前記ブロック別動きベクトル演算手段が演算したローカル動きベクトルとの差が前記閾値記憶手段に記憶された閾値内であるブロックを計算対象ブロックとして決定し、決定した計算対象ブロックについての前記ブロック別動きベクトル演算手段が演算したローカル動きベクトルを前記平行移動パラメータ演算手段に計算対象ブロックとして与える計算対象ブロック決定手段、
    計算対象ブロック決定手段の処理を所定回数繰り返し実行する手段であって、繰り返し回数が増える度に前記閾値を小さくして、前記繰り返し処理を行う繰り返し手段、
    を備えたことを特徴とするグローバル動きベクトル演算装置。
  2. 演算結果であるブロック別のローカル動きベクトルを記憶するローカル動きベクトル記憶手段、
    前記ブロックごとのローカル動きベクトルからグローバル動きベクトルの平行移動、回転、ズームの各パラメータを求めるグローバル動きベクトル演算手段、
    求めたグローバル動きベクトルを各ブロックのローカル動きベクトルに展開した展開ローカル動きベクトルを求める展開動きベクトル演算手段、
    計算対象ブロックを選別するための閾値を記憶する閾値記憶手段、
    各ブロックについて、前記ローカル動きベクトル記憶手段に記憶されたローカル動きベクトルと展開ローカル動きベクトルとの差分を求め、前記閾値を超えないブロックを対象ブロックとして決定する演算対象ブロック選定手段、
    前記対象ブロックとして決定されなったブロックを除外して、前記グローバル動きベクトル演算手段に新たなグローバル動きベクトルを求めさせる処理を、所定条件まで繰り返し実行する繰り返し手段、
    を備えたことを特徴とするグローバル動きベクトル演算装置。
  3. 請求項2のグローバル動きベクトル演算装置において、
    前記繰り返し手段は、前記繰り返し回数が増える度に前記閾値を小さくして、前記繰り返し処理を行うこと、
    を特徴とするグローバル動きベクトル演算装置。
  4. 請求項2または請求項3のグローバル動きベクトル演算装置において、
    前記グローバル動きベクトル演算手段は、
    1)前記計算対象ブロックのローカル動きベクトルが与えられると、各ブロックを注目ブロックとして、その周辺ブロックのローカル動きベクトルの平均と当該注目ブロックのローカル動きベクトルとの差分の絶対値に基づいて注目ブロックのローカル動きベクトルに重み付け係数を全計算対象ブロックについて演算するとともに、前記計算対象ブロックの各重み付け係数およびローカル動きベクトルから、最小二乗法によりグローバル動きベクトルの平行移動パラメータを演算する平行移動パラメータ演算手段、
    2)前記平行移動パラメータが与えられると、この平行移動パラメータおよび、平行移動、回転、ズームの4パラメータで表したアフィン変換式からグローバル動きベクトルの回転・ズームパラメータを求める回転・ズームパラメータ演算手段、
    で構成されていること、
    を特徴とするグローバル動きベクトル演算装置。
  5. 請求項4のグローバル動きベクトル演算装置において、
    前記重み付け係数は、
    注目ブロックおよびその周辺ブロックのローカル動きベクトルの平均と、当該注目ブロックのローカル動きベクトルとの差分の絶対値のべき乗であること、
    を特徴とするグローバル動きベクトル演算装置。
  6. 演算結果であるブロック別のローカル動きベクトルを記憶するローカル動きベクトルおよび計算対象ブロックを選別するための閾値を記憶しておき、
    前記ブロックごとのローカル動きベクトルからグローバル動きベクトルの平行移動、回転、ズームの各パラメータを求め、
    求めたグローバル動きベクトルを各ブロックのローカル動きベクトルに展開した展開ローカル動きベクトルを求め、
    各ブロックについて、前記記憶されているローカル動きベクトルと前記展開ローカル動きベクトルとの差分を求め、
    前記閾値と比較し、これを超えないブロックを対象ブロックとして決定し、
    前記対象ブロックとして決定されなったブロックを除外して、グローバル動きベクトルの平行移動、回転、ズームの各パラメータを求めさせる処理を、所定条件まで繰り返し実行すること、
    を特徴とするグローバル動きベクトル演算方法。
  7. 請求項2のグローバル動きベクトル演算装置、
    前記グローバル動きベクトル演算装置から与えられたグローバル動きベクトルによって、第nフレームおよび第n+1フレームをカメラワーク補償した補償後第nフレームと補償後第n+1フレームを出力するカメラワーク補償手段、
    前記補償後第nフレームと補償後第n+1フレームを用いて、静止部分を特定するためのマスクを生成するマスク生成手段、
    前記マスクを用いて、前記補償後第nフレームと補償後第n+1フレームのブロックマッチング型探索処理を行い、マッチング結果に基づいて、ブロックごとのローカル動きベクトルを出力するブロックマッチング探索処理手段、
    前記ブロックマッチング探索処理手段から与えられたローカル動きベクトルと、前記補償後第n、n+1フレームと、前記生成されたマスクを用いて、前記補償後第nフレームと補償後第n+1フレームの中間フレームを生成して出力する局所動き補償手段、
    を備えたフレーム補間処理装置。
JP2009257332A 2009-10-06 2009-11-10 動きベクトル検出装置、フレーム補間処理装置およびそれらの方法 Expired - Fee Related JP4964937B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009257332A JP4964937B2 (ja) 2009-10-06 2009-11-10 動きベクトル検出装置、フレーム補間処理装置およびそれらの方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2009232315 2009-10-06
JP2009232315 2009-10-06
JP2009257332A JP4964937B2 (ja) 2009-10-06 2009-11-10 動きベクトル検出装置、フレーム補間処理装置およびそれらの方法

Publications (2)

Publication Number Publication Date
JP2011100428A JP2011100428A (ja) 2011-05-19
JP4964937B2 true JP4964937B2 (ja) 2012-07-04

Family

ID=44191532

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2009257332A Expired - Fee Related JP4964937B2 (ja) 2009-10-06 2009-11-10 動きベクトル検出装置、フレーム補間処理装置およびそれらの方法
JP2010012272A Expired - Fee Related JP5164280B2 (ja) 2009-10-06 2010-01-22 階層マスク生成装置、フレーム補間処理装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2010012272A Expired - Fee Related JP5164280B2 (ja) 2009-10-06 2010-01-22 階層マスク生成装置、フレーム補間処理装置

Country Status (1)

Country Link
JP (2) JP4964937B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013066164A (ja) * 2011-09-02 2013-04-11 Sony Corp 画像処理装置、および画像処理方法、並びにプログラム
US10845186B2 (en) 2016-03-09 2020-11-24 Sony Corporation Information processing device, information processing method, and information processing system
EP3985957B1 (en) * 2020-10-14 2022-11-30 Axis AB Method and system for motion segmentation

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2586686B2 (ja) * 1990-04-19 1997-03-05 日本電気株式会社 動画像の動き情報検出装置および動画像の動き補償フレーム間予測符号化装置
JP3200196B2 (ja) * 1992-10-15 2001-08-20 株式会社リコー 動きベクトル検出方法
JPH0937269A (ja) * 1995-07-25 1997-02-07 Hitachi Ltd 画像圧縮装置
JP2000134585A (ja) * 1998-10-23 2000-05-12 Hitachi Ltd 動きベクトル決定方法、画像信号のフレーム数変換方法および回路
JP4052588B2 (ja) * 2004-01-26 2008-02-27 Kddi株式会社 動き予測情報検出装置
JP4496992B2 (ja) * 2005-03-02 2010-07-07 日本電信電話株式会社 動物体アップフレーム検出方法及びプログラム及びプログラムを格納した記憶媒体及び動物体アップショット検出方法及び動物体アップフレームあるいはショット検出方法及びプログラム及びプログラムを格納した記憶媒体
EP1755342A1 (en) * 2005-08-19 2007-02-21 Thomson Licensing Method and apparatus for iteratively calculating a set of global motion parameters for a picture sequence from block motion vectors
JP2008219141A (ja) * 2007-02-28 2008-09-18 Sanyo Electric Co Ltd 動きベクトル検出装置、それを用いた画像符号化装置および撮像装置
JP5045320B2 (ja) * 2007-09-05 2012-10-10 ソニー株式会社 画像処理装置、および画像処理方法、並びにコンピュータ・プログラム
JP4876065B2 (ja) * 2007-12-14 2012-02-15 キヤノン株式会社 動きベクトル検出装置及び動きベクトル検出方法及び撮像装置及びプログラム
JP4623111B2 (ja) * 2008-03-13 2011-02-02 ソニー株式会社 画像処理装置、画像処理方法及びプログラム
JP4544334B2 (ja) * 2008-04-15 2010-09-15 ソニー株式会社 画像処理装置および画像処理方法
JP4506875B2 (ja) * 2008-05-19 2010-07-21 ソニー株式会社 画像処理装置および画像処理方法

Also Published As

Publication number Publication date
JP2011101336A (ja) 2011-05-19
JP2011100428A (ja) 2011-05-19
JP5164280B2 (ja) 2013-03-21

Similar Documents

Publication Publication Date Title
US9824431B2 (en) Image synthesis apparatus, image synthesis method, and recording medium
US9436981B2 (en) Dictionary creation device, image processing device, image processing system, dictionary creation method, image processing method, and program
US10679363B2 (en) Image noise reduction
CN105409196A (zh) 用于视频稳定的自适应路径平滑
CN108463994B (zh) 图像处理装置、图像处理方法和存储介质
US8416989B2 (en) Image processing apparatus, image capture apparatus, image processing method, and program
JP2007000205A (ja) 画像処理装置及び画像処理方法並びに画像処理プログラム
JP6015670B2 (ja) 画像処理装置及び画像処理方法
US9760997B2 (en) Image noise reduction using lucas kanade inverse algorithm
US20130064473A1 (en) Image processing apparatus, method and program
JP2013066164A (ja) 画像処理装置、および画像処理方法、並びにプログラム
JP6146574B2 (ja) ノイズ除去装置、ノイズ除去方法及びプログラム
JP4964937B2 (ja) 動きベクトル検出装置、フレーム補間処理装置およびそれらの方法
US20130235274A1 (en) Motion vector detection device, motion vector detection method, frame interpolation device, and frame interpolation method
JP6532328B2 (ja) 画像処理装置、その制御方法、および制御プログラム
CN112805989A (zh) 基于全局运动估计的时域滤波方法、装置及存储介质
JPWO2013011797A1 (ja) 劣化復元システム、劣化復元方法およびプログラム
Ge et al. Image completion using global patch matching and optimal seam synthesis
JPH08195956A (ja) 動き量検出方法及び動き量検出装置
JP5544497B2 (ja) 画像処理装置、画像処理方法及び画像処理プログラム
JPWO2019082283A1 (ja) 画像解析装置
JP2008225778A (ja) 画像処理装置
US20130114888A1 (en) Image processing apparatus, computer program product, and image processing method
CN117473816A (zh) 非封闭曲面偏置方法、电子设备及计算机可读存储介质
JP3539632B2 (ja) 画像変化抽出方法、およびその画像処理プログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120321

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: 20120326

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: 20120328

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150406

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20150406

Year of fee payment: 3

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees