説明

ブロック別動きベクトル演算装置またはその方法

【課題】 中間フレームにおいて、ブロック境界線が画素と画素の境界から半画素ずれたブロックについてのブロックマッチングを行う。
【解決手段】 抽出手段7は、ブロックマッチング候補決定において、第1,第2参照フレームのブロックについてはブロック境界線が画素と画素の境界に位置し、かつ、前記中間フレームにおける特定ブロックについては、ブロック境界線が画素と画素の境界から半画素ずれた位置に設定されるように、前記第1参照フレームのブロックまたは前記第2参照フレームのブロックを1画素分ずらしたブロックマッチング候補をも抽出する。決定手段9は、前記抽出されたブロックマッチング候補について、ブロックマッチングを行い、差分が最小となる組み合わせを中間フレームにおける前記特定ブロックの動きベクトルとして決定する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、ブロック別動きベクトル演算装置に関し、特にその精度向上に関する。
【背景技術】
【0002】
特許文献1には、対称型動き推定法が開示されている。これは、図1に示すように、生成すべきフレームQを碁盤目のブロックに分けて、特定のブロックB0について、B0を原点として前後画像P1,P2から幾何対象となるような位置のブロックB1、B2を抽出し、差分が最小となる動きベクトルを、ブロックB0の動きベクトルと推定するというものである。
【0003】
対称型動き推定法におけるブロックマッチングの詳細について図2を用いて説明する。図2は、ブロックサイズを4*4画素、探索範囲を12*12画素とした場合である。この場合、前フレーム(0,0)、後フレーム(9,9)のブロックを比較する。つぎに、前フレームおよび後フレームを1つシフトさせた前フレーム(1,0)、後フレーム(8,9)のブロックを比較する。以下、同様に、前フレームおよび後フレームを共に1画素ずつシフトさせてブロックマッチングをおこなう。
【0004】
かかる対称型動き推定において、1/2画素精度でブロックマッチングを行う場合には、図3に示すように、前後フレームそれぞれについて、1/2画素ずらしたブロックデータを生成して、中間フレームにおいて、ずれない位置におけるブロックマッチングを順次、行う。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】第2528103号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上述のように前後フレームそれぞれについて、1/2画素ずらしたブロックデータを生成する手法には、下記のような問題があった。前後フレームにて1/2画素ずらしたブロックデータを生成しなければならない。したがって、通常のブロックよりも一回り大きな領域を抽出する回路が必要なだけでなく、抽出結果から、1/2画素ずらしたブロックデータを生成する生成部が必要となる。さらに、1/2画素ずらしたブロックデータは通常周辺画素の平均を演算することにより生成される。したがって、その分画像ボケが生じる。
【0007】
この発明は、上記問題を解決し、構成が簡易で、かつ、画像ボケの少ないブロックマッチングが可能なブロック別動きベクトル演算装置またはその方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
(1)本発明にかかるブロック別動きベクトル演算装置は、 第1参照フレームおよび第2参照フレームから、これらの中間フレームについてのブロック別の動きベクトルであるローカル動きベクトルを演算するブロック別動きベクトル演算装置であって、A)前記第1参照フレームおよび前記第2参照フレームの画像を記憶する画像記憶手段、B)前記第1参照フレームおよび第2参照フレームについて探索範囲を決定する探索範囲決定手段、C)前記決定した第1参照フレームおよび第2参照フレームの探索範囲内の画像を所定の画素で構成されるブロックとして、前記中間フレームの特定ブロックを中心にして前記第1参照フレームおよび第2参照フレームのブロックが幾何学的に対称な位置関係となるブロックをブロックマッチング候補として順次抽出する抽出手段、D)前記抽出されたブロックマッチング候補について、ブロックマッチングを行い、差分が最小となる組み合わせを前記中間フレームにおける前記特定ブロックの動きベクトルとして決定する決定手段、を備え、E)前記抽出手段は、前記第1,第2参照フレームのブロックについてはブロック境界線が画素と画素の境界に位置し、かつ、前記中間フレームにおける特定ブロックについては、ブロック境界線が画素と画素の境界から1/2画素ずれた位置に設定されるように、前記第1参照フレームのブロックおよび/または前記第2参照フレームのブロックを2*(1/2)画素分ずらしたブロックマッチング候補をも抽出する。
【0009】
このように、前記第1,第2参照フレームのブロックについてはブロック境界線が画素と画素の境界に位置し、かつ、前記中間フレームにおける特定ブロックについては、ブロック境界線が画素と画素の境界から1/2画素ずれた位置に設定されるように、前記第1参照フレームのブロックおよび/または前記第2参照フレームのブロックを2*(1/2)画素分ずらしたブロックマッチング候補をも抽出することにより、中間フレームにおいて、ブロック境界線が画素と画素の境界から1/2画素ずれた位置におけるブロックマッチングが可能となる。よって、精度の高いブロックマッチングが可能となる。
【0010】
(2)本発明にかかるブロック別動きベクトル演算装置においては、前記抽出手段は、前記第1,第2参照フレームのブロックについて、2*(1/2)精度のブロックデータを生成する画素ずらしブロックデータ生成手段を有している。ただし、前記nは整数である。したがって、(1/2)画素精度の生成回路により、(1/2n+1)画素精度のブロックマッチングが可能となる。
【0011】
(3)本発明にかかるブロック別動きベクトル演算装置においては、前記nは2であり、前記画素ずらしブロックデータ生成手段は、前記第1,第2参照フレームのブロックについて半画素精度のブロックデータを生成する。これにより、1/4画素精度のブロックマッチングが可能となる。
【0012】
(4)本発明にかかるブロック別動きベクトル演算装置においては、前記nは3であり、前記画素ずらしブロックデータ生成手段は、前記第1,第2参照フレームのブロックについてブロック境界線が画素と画素の境界から1/4画素、1/2画素、3/4画素ずれたブロックデータを生成する。これにより1/8画素精度のブロックマッチングが可能となる。
【0013】
(5)本発明にかかるブロック別動きベクトル演算方法においては、第1参照フレームおよび第2参照フレームから、これらの中間フレームについてのブロック別の動きベクトルであるローカル動きベクトルを演算するブロック別動きベクトル演算方法であって、前記第1参照フレームおよび前記第2参照フレームの画像が与えられると、前記第1参照フレームおよび第2参照フレームについて探索範囲を決定し、前記決定した第1参照フレームおよび第2参照フレームの探索範囲内の画像を所定の画素で構成されるブロックとして、前記中間フレームの特定ブロックを中心にして前記第1参照フレームおよび第2参照フレームのブロックが幾何学的に対称な位置関係となるブロックをブロックマッチング候補として順次抽出し、前記抽出されたブロックマッチング候補について、ブロックマッチングを行い、差分が最小となる組み合わせを前記中間フレームにおける前記特定ブロックの動きベクトルとして決定するブロック別動きベクトル演算方法において、前記ブロックマッチング候補抽出時に、前記第1,第2参照フレームのブロックについてはブロック境界線が画素と画素の境界に位置し、かつ、前記中間フレームにおける特定ブロックについては、ブロック境界線が画素と画素の境界から1/2画素ずれた位置に設定されるように、前記第1参照フレームのブロックおよび/または前記第2参照フレームのブロックを2*(1/2)画素分ずらしたブロックマッチング候補をも抽出する。
【0014】
このように、前記第1,第2参照フレームのブロックについてはブロック境界線が画素と画素の境界に位置し、かつ、前記中間フレームにおける特定ブロックについては、ブロック境界線が画素と画素の境界から1/2画素ずれた位置に設定されるように、前記第1参照フレームのブロックおよび/または前記第2参照フレームのブロックを2*(1/2)画素分ずらしたブロックマッチング候補をも抽出することにより、中間フレームにおいて、ブロック境界線が画素と画素の境界から1/2画素ずれた位置におけるブロックマッチングが可能となる。よって、精度の高いブロックマッチングが可能となる。
【0015】
(6)本発明にかかるブロック別動きベクトル演算装置は、第1参照フレームおよび第2参照フレームから、これらの中間フレームについてのブロック別の動きベクトルであるローカル動きベクトルを演算するブロック別動きベクトル演算装置であって、1)前記第1参照フレームおよび前記第2参照フレームの画像を記憶する画像記憶手段、2)前記第1参照フレームおよび第2参照フレームについて探索範囲を決定する探索範囲決定手段、3)前記決定した第1参照フレームおよび第2参照フレームの探索範囲内の画像を所定の画素で構成されるブロックを抽出する手段であって、前記中間フレームの特定ブロックを中心にして前記第1参照フレームが幾何学的に対称な位置関係である仮想参照フレームを定義した場合に、前記中間フレームと前記仮想参照フレームとの時間的関係のn倍離れた延長線上に位置する前記第2参照フレームのブロックを前記第1参照フレームについて1画素分ブロックをずらした場合に前記第2参照フレームについてはn画素分ブロックを移動させて、ブロックマッチング候補として抽出する抽出手段、4)前記抽出されたブロックマッチング候補について、ブロックマッチングを行い、差分が最小となる組み合わせを前記中間フレームにおける前記特定ブロックの動きベクトルとして決定する決定手段、を備え、5)前記抽出手段は、前記中間フレームにおけるブロック境界線が画素と画素の境界からずれた位置に設定されるように、前記第1参照フレームのブロックまたは前記第2参照フレームをずらしたブロックをブロックマッチング候補として抽出する。
【0016】
したがって、前記中間フレームにおけるブロック境界線が画素と画素の境界からずれたブロックも、抽出される。これにより、画素と画素の境界からずれた位置におけるブロックマッチングが可能となる。よって、精度の高いブロックマッチングが可能となる。
【0017】
(7)本発明にかかるブロック別動きベクトル演算装置においては、前記抽出手段は、小数x精度のブロックデータを生成する画素ずらしブロックデータ生成手段を有している、ただし、前記小数xは任意である。したがって、前記中間フレームにおいて、かかる小数x精度よりも小さな量だけずれたブロックマッチングが可能となる。
【0018】
(8)本発明にかかるブロック別動きベクトル演算装置においては、前記抽出手段は、前記第1参照フレームのブロックまたは前記第2参照フレームのずらす時期が同期していないこと、または、前記第2参照フレームのブロックを1画素ずらしたブロックをブロックマッチング候補として抽出することにより、前記中間フレームにおけるブロック境界線が画素と画素の境界からずれた位置に設定されるように、前記第1参照フレームのブロックまたは前記第2参照フレームをずらしたブロックをブロックマッチング候補として抽出する。
【0019】
したがって、前記中間フレームにおけるブロック境界線が画素と画素の境界からずれたブロックも、抽出される。これにより、画素と画素の境界からずれた位置におけるブロックマッチングが可能となる。よって、精度の高いブロックマッチングが可能となる。
【0020】
(9)本発明にかかるブロック別動きベクトル演算方法においては、第1参照フレームおよび第2参照フレームから、これらの中間フレームについてのブロック別の動きベクトルであるローカル動きベクトルを演算するブロック別動きベクトル演算方法であって、1)前記第1参照フレームおよび前記第2参照フレームの画像が与えられると、前記第1参照フレームおよび第2参照フレームについて探索範囲を決定するステップ、2)前記決定した第1参照フレームおよび第2参照フレームの探索範囲内の画像を所定の画素で構成されるブロックを抽出するステップであって、前記中間フレームの特定ブロックを中心にして前記第1参照フレームが幾何学的に対称な位置関係である仮想参照フレームを定義した場合に、前記中間フレームと前記仮想参照フレームとの時間的関係のn倍離れた延長線上に位置する前記第2参照フレームのブロックを前記第1参照フレームについて1画素分ブロックをずらした場合に前記第2参照フレームについてはn画素分ブロックを移動させて、ブロックマッチング候補として抽出する抽出ステップ、3)前記抽出されたブロックマッチング候補について、ブロックマッチングを行い、差分が最小となる組み合わせを前記中間フレームにおける前記特定ブロックの動きベクトルとして決定するステップを備え、4)前記抽出ステップでは、前記中間フレームにおけるブロック境界線が画素と画素の境界からずれた位置に設定されるように、前記第1参照フレームのブロックまたは前記第2参照フレームの一方のみをずらしたブロックをブロックマッチング候補として抽出する。
【0021】
したがって、前記中間フレームにおけるブロック境界線が画素と画素の境界からずれたブロックも、抽出される。これにより、画素と画素の境界からずれた位置におけるブロックマッチングが可能となる。よって、精度の高いブロックマッチングが可能となる。
【0022】
本明細書において、「中間フレーム」とは、第1参照フレームと第2参照フレームの間に位置するフレームを意味する。
【図面の簡単な説明】
【0023】
【図1】従来の対称型動き推定を説明する図である。
【図2】従来の整数精度の対称型動き推定を説明する図である。
【図3】従来の半画素精度の対称型動き推定を説明する図である。
【図4】ブロック別動きベクトル演算装置1の機能ブロック図である。
【図5】本発明において、得られる動きベクトルの概要を示すである。
【図6】ブロック別動きベクトル演算装置1の詳細ハード構成を示す図である。
【図7】8*8画素の探索範囲の画素座標を示す図である。
【図8】シフトレジスタとPEアレイの関係を示す図である。
【図9】前フレームについてのシフト処理とPE処理のタイムチャートである。
【図10】後フレームについてのシフト処理とPE処理のタイムチャートである。
【図11】本発明における半画素精度の対称型動き推定を説明する図である。
【図12】本発明における半画素精度の対称型動き推定を説明する図である。
【図13】本発明における1/4画素精度の対称型動き推定装置の詳細ハード構成を示す図である。
【図14】他の実施形態における中間フレームとの位置関係を示す図である。
【発明を実施するための形態】
【0024】
以下、本発明における実施形態について、図面を参照して説明する。
【0025】
(1.機能ブロック図について)
ブロック別動きベクトル演算装置1は、図4に示すように、第1参照フレームおよび第2参照フレームから、これらの中間フレームについてのブロック別の動きベクトルであるローカル動きベクトルを演算するブロック別動きベクトル演算装置であって、画像記憶手段3、探索範囲決定手段5、抽出手段7、および決定手段9を備えている。
【0026】
画像記憶手段3は、前記第1参照フレームおよび前記第2参照フレームの画像を記憶する。探索範囲決定手段5は、前記第1参照フレームおよび第2参照フレームについて探索範囲を決定する。抽出手段7は前記決定した第1参照フレームおよび第2参照フレームの探索範囲内の画像を所定の画素で構成されるブロックとして、前記中間フレームの特定ブロックを中心にして前記第1参照フレームおよび第2参照フレームのブロックが幾何学的に対称な位置関係となるブロックをブロックマッチング候補として順次抽出する。抽出手段7は、前記ブロックマッチング候補決定において、前記第1,第2参照フレームのブロックについてはブロック境界線が画素と画素の境界に位置し、かつ、前記中間フレームにおける特定ブロックについては、ブロック境界線が画素と画素の境界から1/2画素ずれた位置に設定されるように、前記第1参照フレームのブロックおよび/または前記第2参照フレームのブロックを2*(1/2)画素分ずらしたブロックマッチング候補をも抽出する。決定手段9は、前記抽出されたブロックマッチング候補について、ブロックマッチングを行い、差分が最小となる組み合わせを前記中間フレームにおける前記特定ブロックの動きベクトルとして決定する。
【0027】
このように、抽出手段7が前記第1参照フレームのブロックおよび前記第2参照フレームを同時にずらすだけでなく、いずれか一方のみをずらした候補も、ブロックマッチング候補として抽出することにより、中間フレームにおいて、ブロック境界線が画素と画素の境界から1/2画素ずれたブロックについてのブロックマッチングが可能となる。
【0028】
具体的には、例えば、図5に示すように、対称型にシフト処理させる際に、前記第1参照フレームのブロックまたは前記第2参照フレームのいずれか一方のみをずらし、これにより、中間フレームにおいて、ブロック境界線が画素と画素の境界から半画素ずれたブロックについてのブロックマッチングが可能となる
(2.各部の構成について)
ブロック別動きベクトル演算装置1の詳細ブロック図を図6に示す。ブロック別動きベクトル演算装置1は、制御部13,シフトレジスタアレイ15,25,PEアレイ24、最小値検出回路27、SRAM31、およびDRAM33を備えている。DRAM33以外の各部には共通のクロックが与えられることにより同期処理がなされる。DRAM33については、別クロックで同期処理がなされる。
【0029】
制御部13は、シフトレジスタアレイ15、25に対して、後述するようなシフト制御を行う。また、DRAM33から画像データを読み出してSRAM31に記憶させる処理を行う。
【0030】
DRAM33は、前フレームおよび後フレームの画像データをそれぞれ1フレーム分記憶する。SRAM31は、FIFO方式で、DRAM33から前フレームおよび後フレームの探索範囲分の画像データを記憶する。レジスタアレイ15は、SRAM31から前フレームについて探索範囲のうちの1ブロック分の画像データが与えられると、これを記憶保持し、PEアレイ24に与える。シフトレジスタ25は、後フレームについて探索範囲のうちの1ブロック分の画像データが与えられると、これを記憶保持し、PEアレイ24に与える。
【0031】
シフトレジスタアレイ15、25は、1ブロックの画像データを1画素ずつシフト処理する。シフト処理により不足したデータは、SRAM31から与えられる。SRAM31から読み出し要求があると、DRAM33はデータを与える。
【0032】
PEアレイ24は、シフトレジスタ15,25から与えられた各画素の輝度の差分を演算し、1ブロック分の総和を求める。最小値検出回路25は、PEアレイ24からデータが与えられると、既に記憶されている値と比較して、値が小さければそのデータを保持する。
【0033】
(3.動きベクトル演算処理について)
図6に示すシフト処理について詳述する。以下では、探索範囲を8*8画素として、1ブロックを4*4画素とする場合を一例として説明する。
【0034】
図7は8*8画素の探索範囲において、各画素を特定する座標を表す。図8に、探索範囲が8*8画素で整数精度と半画素精度のブロックマッチングを同時に行う2並列型におけるシフトレジスタとPEアレイとの接続関係を示す。前フレーム用のシフトレジスタは、シフトレジスタSRF00〜SRF07、SRF10〜SRF17、SRF20〜SRF27、SRF30〜SRF37の4段で構成されており、各段の最終レジスタは、次の段の先頭レジスタと接続されている。これによりシフトレジスタSRF00〜SRF37は直列状態で接続されている。
【0035】
シフトレジスタSRB00〜SRB08、SRB10〜SRB18、SRB20〜SRB28、SRB30〜SRB38の4段で構成されており、各段の最終レジスタは、次の段の先頭レジスタと接続されている。これによりシフトレジスタSRB00〜SRB38は直列状態で接続されている。
【0036】
プロセッシングエレメントPEA00〜PEA03、PEA10〜PEA13、PEA20〜PEA23、PEA30〜PEA33は、整数精度のブロックマッチング用である。プロセッシングエレメントPEB00〜PEB03、PEB10〜PEB13、PEBA20〜PEB23、PEB30〜PEB33は、半画素精度のブロックマッチング用である。
【0037】
なお、各プロセッシングエレメントは図示していないが、プロセッシングエレメントPEA00〜PEA03、PEA10〜PEA13、PEA20〜PEA23、PEA30〜PEA33からの出力は、全て接続されて図6に示す最小値検出回路27に与えられ、1ブロック分の差分総和が求められる。図8に示すプロセッシングエレメントPEB00〜PEB03、PEB10〜PEB13、PEBA20〜PEB23、PEB30〜PEB33についても同様である。
【0038】
プロセッシングエレメントPEA00〜PEA03、PEB00〜PEB03とシフトレジスタとの接続関係について説明する。プロセッシングエレメントPEA00は、シフトレジスタSRF00およびSRR34と接続されており、これらの差分を演算する。プロセッシングエレメントPEB01は、シフトレジスタSRF00およびSRR33と接続されており、これらの差分を演算する。シフトレジスタSRF01〜SRF03と、SRR33〜SRR30と、プロセッシングエレメントPEA01〜PEA03およびプロセッシングエレメントPEB01〜PEB03の関係についても同様である。他の段(列)についても同様である。
【0039】
このように接続されていることから、シフトレジスタSRF37に前フレームの探索範囲のデータが、SRR38に後フレームの探索範囲のデータが順次与えられると、SRF37、SRR38にそれぞれ接続されたシフトレジスタにデータの値が送られる。後述するように所定のシフト回数ごとにプロセッシングエレメントによる比較演算が行われる。各ブロックに該当するプロセッシングエレメントからの差分を総計して、当該ブロックにおける差分総和値が求められる。
【0040】
図9、図10を用いて、シフト処理とプロセッシングエレメントによる演算処理の関係について説明する。図9は前画面について、図10は後画面について、縦方向がシフトレジスタを配置し、横方向が1クロックごとにデータがシフト処理された場合の各レジスタに記憶される画素の座標を、それぞれ示したものである。図9,図10において座標は、その数値のみ記載している。後フレームは半画素精度のブロックマッチングをおこなうので、ダミーのデータを送る必要がある。したがって、前フレームは後フレームに3クロック分遅れて、シフト処理が開始される。具体的には後フレームのシフトレジスタSRR38に画素(4,7)が記憶される時刻T4で、前フレームのシフトレジスタSRF37に画素(0,0)が記憶される。1クロック進むごとに、順次画素データが転送される。
【0041】
時刻Tp1に、前フレーム用のシフトレジスタには、図9に示すように、シフトレジスタSRF00〜SRF03に画素(0,0)〜(3,0)が、シフトレジスタSRF10〜SRF13に、画素(0,1)〜(3,1)が、シフトレジスタSRF20〜SRF23に、画素(0,2)〜(3,2)が、シフトレジスタSRF30〜SRF33に、画素(0,3)〜(3,3)が記憶される。また、時刻Tp1に、後フレーム用のシフトレジスタには、図10に示すように、シフトレジスタSRR34〜SRR31に画素(4,4)〜(7,4)が、シフトレジスタSRR24〜SRR21に、画素(4,5)〜(7,5)が、シフトレジスタSRR14〜SRR11に、画素(4,6)〜(7,6)が、シフトレジスタSRR04〜SRR01に、画素(4,7)〜(7,7)が記憶される。したがって、時刻Tp1で、これらのシフトレジスタに接続されたプロセッシングエレメントPEA00〜PEA03、PEA10〜PEA13、PEA20〜PEA23、PEA30〜PEA33(図8参照)による比較が実行されると、図11Aに示す、前フレームの画素(0,0)〜画素(3,3)のブロックと、後フレーム(4,4)〜(7,7)のブロックのブロックマッチングが行われる。
【0042】
また、時刻Tp1に、後フレーム用のシフトレジスタには、図10に示すように、シフトレジスタSRR33〜SRR30に画素(5,4)〜(NA)が、シフトレジスタSRR23〜SRR20に、画素(5,5)〜(NA)が、シフトレジスタSRR13〜SRR10に、画素(5,6)〜(NA)が、シフトレジスタSRR03〜SRR00に、画素(5,7)〜(NA)が記憶される。したがって、時刻Tp1で、これらのシフトレジスタに接続されたプロセッシングエレメントPEB00〜PEB03、PEB10〜PEB13、PEBA20〜PEB23、PEB30〜PEB33(図8参照)による比較が実行されると、図11Bに示す、前フレームの画素(0,0)〜画素(3,3)のブロックと、後フレーム(5,4)〜(8,7)の比較が行われる。これにより、中間フレームにて半画素ずれた動きベクトルについてのブロックマッチングが可能となる。
【0043】
時刻Tp1からさらに1クロック進んだ時刻Tp2では、前フレーム用のシフトレジスタには、図9に示すように、シフトレジスタSRF00〜SRF03に画素(1,0)〜(4,0)が、シフトレジスタSRF10〜SRF13に、画素(1,1)〜(4,1)が、シフトレジスタSRF20〜SRF23に、画素(1,2)〜(4,2)が、シフトレジスタSRF30〜SRF33に、画素(1,3)〜(4,3)が記憶される。また、時刻Tp1に、後フレーム用のシフトレジスタには、図10に示すように、シフトレジスタSRR34〜SRR31に画素(3,4)〜(6,4)が、シフトレジスタSRR24〜SRR21に、画素(3,5)〜(6,5)が、シフトレジスタSRR14〜SRR11に、画素(3,6)〜(6,6)が、シフトレジスタSRR04〜SRR01に、画素(3,7)〜(6,7)が記憶される。したがって、時刻Tp2で、プロセッシングエレメントPEA00〜PEA03、PEA10〜PEA13、PEA20〜PEA23、PEA30〜PEA33(図8参照)による比較が実行されると、図11Cに示す、前フレームの画素(1,0)〜画素(4,3)のブロックと、後フレーム(3,4)〜(6,7)のブロックのブロックマッチングが行われる。 また、時刻Tp1に、後フレーム用のシフトレジスタには、図10に示すように、シフトレジスタSRR33〜SRR30に画素(4,4)〜(7,4)が、シフトレジスタSRR24〜SRR20に、画素(4,5)〜(7,5)が、シフトレジスタSRR14〜SRR10に、画素(4,6)〜(7,6)が、シフトレジスタSRR04〜SRR00に、画素(4,7)〜(7,7)が記憶される。したがって、時刻Tp2で、プロセッシングエレメントPEB00〜PEB03、PEB10〜PEB13、PEBA20〜PEB23、PEB30〜PEB33(図8参照)による比較が実行されると、図11Dに示す、前フレームの画素(1,0)〜画素(4,3)のブロックと、後フレーム(4,4)〜(7,7)の比較が行われる。これにより、中間フレームにて半画素ずれた動きベクトルについてのブロックマッチングが可能となる。以下、時刻Tp3についても、図11E,図11Fに示すように、ブロックマッチングがおこなわれる。時刻Tp4についても同様である。時刻Tp4の後は、後ブロックのシフトレジスタについては、5クロックのシフト演算がおこなわれる。前ブロックのシフトレジスタについては、4クロックのシフト演算が行われる。これにより、図8において、1ライン分ずれたことになる。具体的には、時刻Tp11に、前フレーム用のシフトレジスタには、図9に示すように、シフトレジスタSRF00〜SRF03に画素(0,1)〜(3,1)が、シフトレジスタSRF10〜SRF13に、画素(0,2)〜(3,2)が、シフトレジスタSRF20〜SRF23に、画素(0,3)〜(3,3)が、シフトレジスタSRF30〜SRF33に、画素(0,4)〜(3,4)が記憶される。また、時刻Tp11に、後フレーム用のシフトレジスタには、図10に示すように、シフトレジスタSRR34〜SRR31に画素(4,3)〜(7,3)が、シフトレジスタSRR24〜SRR21に、画素(4,4)〜(7,4)が、シフトレジスタSRR14〜SRR11に、画素(4,5)〜(7,5)が、シフトレジスタSRR04〜SRR01に、画素(4,6)〜(7,6)が記憶される。したがって、時刻Tp11で、プロセッシングエレメントPEA00〜PEA03、PEA10〜PEA13、PEA20〜PEA23、PEA30〜PEA33(図8参照)による比較が実行されると、図12Aに示す、前フレームの画素(0,1)〜画素(3,4)のブロックと、後フレーム(4,3)〜(7,6)のブロックのブロックマッチングが行われる。
【0044】
また、時刻Tp11に、後フレーム用のシフトレジスタには、図10に示すように、シフトレジスタSRR33〜SRR30に画素(5,3)〜(NA)が、シフトレジスタSRR24〜SRR20に、画素(5,4)〜(NA)が、シフトレジスタSRR14〜SRR10に、画素(5,5)〜(NA)が、シフトレジスタSRR04〜SRR00に、画素(5,6)〜(NA)が記憶される。したがって、時刻Tp11で、プロセッシングエレメントによる比較が実行されると、図12Bに示す、前フレームの画素(0,1)〜画素(3,4)のブロックと、後フレーム(5,3)〜(8,6)の比較が行われる。これにより、中間フレームにて半画素ずれた動きベクトルについてのブロックマッチングが可能となる。以下、時刻Tp12〜Tp14についても同様に、ブロックマッチングが行われる。その後、時刻Tp4の場合と同様に、時刻Tp14の後は、後ブロックのシフトレジスタについては、5クロックのシフト演算がおこなわれ、前ブロックのシフトレジスタについては、4クロックのシフト演算が行われる。
【0045】
かかる処理を繰り返すことにより、探索範囲内のデータについて半画素精度のブロックマッチングをも行われる。
【0046】
このように探索範囲メモリからのブロックの読み出しについて、前フレームまたは後フレームを1画素分にずらして読み出すことにより、前フレーム、後フレームについて半画素ずらしたブロック画像の補間生成をすることなく、中間フレームに対する半画素精度の動きベクトルが得られる。また、従来の半画素精度の動きベクトルは、前フレーム、後フレームについて補間によるブロック画像を生成しているため、画像ボケが生じ、これにより動きベクトル精度が低下するおそれがある。本実施形態においては、かかる問題を解消することができる。
【0047】
得られた動きベクトルについては、中間フレームでは半画素ずれた位置ではなく、整数精度のブロックにおける動きベクトルとしてもよい。かかる処理によっても、保管するフレームのブロック位置は半画素ずれるが、微小なずれであり、また、もともと前フレーム、後フレームについて補間によるブロック画像に基づく補間に比べると、かえって精度よく動きベクトルが得られる場合もあるからである。
【0048】
(4.他の実施形態)
本実施形態においては、後フレームを1画素分x方向にずらした場合について説明したが、y方向にずらすようにしてもよい。また、y方向には半画素ずらした位置での比較は行っていないが、これも行うようにしてもよい。また、後フレームではなく、前フレームをずらすようにしてもよい。
【0049】
また、本実施形態においては、第1参照フレームおよび第2参照フレームについて、半画素ずらしたブロック画像を生成することなく、中間フレームにおいて半画素精度のブロックマッチングを行っている。したがって、半画素ずらしたブロック画像生成部を設けることにより、1/4精度のブロックマッチングが可能となる。図13に1/4画素精度の場合の、ハード構成を示す。1/2画素精度演算器51および、最小値検出回路53,55から得られた値のうち、最小値を選択するセレクタ61を有する点で図6と異なる。
【0050】
すなわち、第1,第2参照フレームのブロックについてはブロック境界線が画素と画素の境界に位置し、かつ、前記中間フレームにおける特定ブロックについては、ブロック境界線が画素と画素の境界から1/2画素ずれた位置に設定されるように、前記第1参照フレームのブロックおよび/または前記第2参照フレームのブロックを2*(1/2)画素分ずらしたブロックマッチング候補をも抽出することができる。ここで、nは1,2・・・の自然数である。
【0051】
本実施形態においては、中間フレームに対する動きベクトルを決定する装置に適用した場合について説明したが、得られた動きベクトルを用いて、動き補償をするようにしてもよい。
【0052】
本実施形態においては、探索範囲8*8画素、1ブロック4*4である場合を例として説明したが、これに限定されるものではない。
【0053】
本実施形態においては2並列型である場合について説明したが、4並列型など並列処理については特に限定されない。また、シフトレジスタとプロセッシングエレメントとについて、シストリックアレイ型で構成することもできる。
【0054】
本実施形態においては、1画素ずつシフト処理する場合について説明したが、複数まとめてシフトするなど、シフト演算処理の仕方については特に限定されない。
【0055】
また、本実施形態においては、第1の参照フレームと中間フレームまでと、第2の参照フレームと中間フレームまでとが時間的に同じ場合、すなわち、第1の参照フレームと第2の参照フレームとが、中間フレームに対して時間的に幾何学対称である場合を例として説明した。しかし、これに限定されず、第1の参照フレームと中間フレームまでと、第2の参照フレームと中間フレームまでが時間的に異なり、この結果、第2の参照フレームが、第1の参照フレームと中間フレームに対して時間的に幾何学対称である仮想参照フレームの延長線上に位置する場合であってもよい。
【0056】
第2の参照フレームが、第1の参照フレームと中間フレームに対して時間的に幾何学対称である仮想参照フレームの延長線上に位置するとは、たとえば、中間フレームが時刻t=0として、前フレームが時刻t=-1、後フレームがt=2であるような場合である。この場合、前記仮想参照フレームは、時刻t=1となる。かかる対称型探索では、前フレームの探索位置が中間フレームに対して、(1,1)ベクトルずれる場合、後フレームでは(-2,-2)ずらすことになる。具体的には、例えば、前フレームを(1,1)ベクトルずらすとともに、さらに、後フレームを(-2,-2)ベクトルずらした場合の組み合わせ候補を演算するだけでなく、前フレームだけを(1,1)ベクトルずらした場合の組み合わせ候補または、前フレームずらすことなく、後フレームだけを(-2,-2)ベクトルずらした場合の組み合わせ候補を候補として抽出することとなる。このように仮想参照フレームとの関係で、時間的に整数倍離れている関係にある場合についても同様に適用することができる。
【0057】
前記第1参照フレームおよび第2参照フレームからの時間的距離が異なる場合について図14を用いて説明する。中間フレームfcの特定ブロックbxを中心にして第1参照フレームf1が幾何学的に対称な位置関係である仮想参照フレームfkを定義した場合に、中間フレームfcと仮想参照フレームfkとの時間的関係のn倍離れた延長線上に第2参照フレームf2が位置する場合であってもよい。この場合、前記第1参照フレームについて1画素分ブロックをずらした場合に前記第2参照フレームについてはn画素分ブロックを移動させるようにすればよい。また、マッチング候補については、前記中間フレームにおけるブロック境界線が画素と画素の境界からずれた位置に設定されるように、前記第1参照フレームのブロックまたは前記第2参照フレームの一方のみをずらしたブロックを抽出すればよい。たとえば、中間フレームがt=0、第1参照フレームがt=-1、第2参照フレームがt=2である場合には、t=1である仮想対象フレームfkを定義し、これの延長線上に第2参照フレームのブロックが位置するように、順次抽出演算処理を行えばよい。
【0058】
なお、このような中間フレームまでの時間的距離が異なる場合には、対称型探索を行うと、前画面の探索位置が中間画像に対して、(1,1)ベクトルずれる場合、後画面では(-2,-2)ずれるようにブロック候補が抽出される。
【0059】
このように、仮想参照フレームとの関係で、時間的に整数倍離れている関係にある場合に、ずらすタイミングを異ならすだけでなく、ずらす画素量を変更することもできる。具体的には、例えば、後フレームだけを(-1,-1)ベクトルずらした場合の組み合わせ候補、後フレームを(-2,-1)ベクトルずらした場合の組み合わせ候補を抽出するのである。
【0060】
ずらすタイミングおよびずらす量を共に変更するようにしてもよい。
【0061】
なお、前フレームと後フレームの時間的な距離の関係で、ずらした画素分で中間フレームにおけるずれ量は決まることとなる。したがって、所望のずれ量の中間フレームを望む場合に、参照対象フレームとして決定する前フレームおよび後フレームの組み合わせを決定するようにすればよい。例えば、中間画像にて2/3画素ずれたマッチング候補を得たい場合には、上記の例で、前フレームはそのままで、後フレームを1画像分をずらせばよいし、中間画像にて1/3画素ずれるマッチング候補を得たい場合には、後フレームはそのままで前フレームをずらせばよい。このように、フレーム間の時間的距離から、ずれたブロックマッチング候補を抽出することができる。
【0062】
なお、上記実施形態においては、画素ずらしブロックデータ生成手段は、2*(1/2)画素精度のブロックデータを生成する場合について説明したが、小数x画素精度のブロックデータを生成するずらし画素生成手段を備えるようにしてもよい。本件発明では、前フレームまたは後フレームのいずれかをずらしたブロックマッチング候補を抽出するので、前記ずらし画素生成手段よりも細かな位置におけるブロックマッチングが可能となる。
【0063】
また、図14における説明では、第1参照フレームを前フレーム、第2参照フレームを後フレームである場合について説明したが、逆であってもよい。
【0064】
上記実施形態においては、各ブロックで行っているアルゴリズムを、ハードウェア記述言語(Hardware Description Language)で記述することにより、各ブロックを構成すればよい。
【0065】
上記実施形態においては、図4に示す機能を実現するために、並列処理を可能とするために、全てをハードウェア処理する場合について説明した。しかし、これに限定されず、一部をソフトウェアによって実現してもよい。なお、その場合、プログラムの一部の処理を、オペレーティングシステム(OS)にさせるようにしてもよい。

【特許請求の範囲】
【請求項1】
第1参照フレームおよび第2参照フレームから、これらの中間フレームについてのブロック別の動きベクトルであるローカル動きベクトルを演算するブロック別動きベクトル演算装置であって、
前記第1参照フレームおよび前記第2参照フレームの画像を記憶する画像記憶手段、
前記第1参照フレームおよび第2参照フレームについて探索範囲を決定する探索範囲決定手段、
前記決定した第1参照フレームおよび第2参照フレームの探索範囲内の画像を所定の画素で構成されるブロックとして、前記中間フレームの特定ブロックを中心にして前記第1参照フレームが、前記第2参照フレームのブロックと幾何学的に対称な位置関係となるブロックをブロックマッチング候補として順次抽出する抽出手段、
前記抽出されたブロックマッチング候補について、ブロックマッチングを行い、差分が最小となる組み合わせを前記中間フレームにおける前記特定ブロックの動きベクトルとして決定する決定手段、
を備え、
前記抽出手段は、前記第1,第2参照フレームのブロックについてはブロック境界線が画素と画素の境界に位置し、かつ、前記中間フレームにおける特定ブロックについては、ブロック境界線が画素と画素の境界から1/2画素ずれた位置に設定されるように、前記第1参照フレームのブロックおよび/または前記第2参照フレームのブロックを2*(1/2)画素分ずらしたブロックマッチング候補をも抽出すること、
を特徴とするブロック別動きベクトル演算装置。
【請求項2】
請求項1のブロック別動きベクトル演算装置において、
前記抽出手段は、前記第1,第2参照フレームのブロックについて、2*(1/2)精度のブロックデータを生成する画素ずらしブロックデータ生成手段を有している、
ただし、前記nは整数である、
を特徴とするブロック別動きベクトル演算装置。
【請求項3】
請求項2のブロック別動きベクトル演算装置において、
前記nは2であり、前記画素ずらしブロックデータ生成手段は、前記第1,第2参照フレームのブロックについて半画素精度のブロックデータを生成すること、
を特徴とするブロック別動きベクトル演算装置。
【請求項4】
請求項1のブロック別動きベクトル演算装置において、
前記nは3であり、
前記画素ずらしブロックデータ生成手段は、前記第1,第2参照フレームのブロックについてブロック境界線が画素と画素の境界から1/4画素、1/2画素、3/4画素ずれたブロックデータを生成すること、
を特徴とするブロック別動きベクトル演算装置。
【請求項5】
第1参照フレームおよび第2参照フレームから、これらの中間フレームについてのブロック別の動きベクトルであるローカル動きベクトルを演算するブロック別動きベクトル演算方法であって、
前記第1参照フレームおよび前記第2参照フレームの画像が与えられると、前記第1参照フレームおよび第2参照フレームについて探索範囲を決定し、
前記決定した第1参照フレームおよび第2参照フレームの探索範囲内の画像を所定の画素で構成されるブロックとして、前記中間フレームの特定ブロックを中心にして前記第1参照フレームおよび第2参照フレームのブロックが幾何学的に対称な位置関係となるブロックをブロックマッチング候補として順次抽出し、
前記抽出されたブロックマッチング候補について、ブロックマッチングを行い、差分が最小となる組み合わせを前記中間フレームにおける前記特定ブロックの動きベクトルとして決定するブロック別動きベクトル演算方法において、
前記ブロックマッチング候補抽出時に、前記第1,第2参照フレームのブロックについてはブロック境界線が画素と画素の境界に位置し、かつ、前記中間フレームにおける特定ブロックについては、ブロック境界線が画素と画素の境界から1/2画素ずれた位置に設定されるように、前記第1参照フレームのブロックおよび/または前記第2参照フレームのブロックを2*(1/2)画素分ずらしたブロックマッチング候補をも抽出すること、
を特徴とするブロック別動きベクトル演算方法。
【請求項6】
第1参照フレームおよび第2参照フレームから、これらの中間フレームについてのブロック別の動きベクトルであるローカル動きベクトルを演算するブロック別動きベクトル演算装置であって、
前記第1参照フレームおよび前記第2参照フレームの画像を記憶する画像記憶手段、
前記第1参照フレームおよび第2参照フレームについて探索範囲を決定する探索範囲決定手段、
前記決定した第1参照フレームおよび第2参照フレームの探索範囲内の画像を所定の画素で構成されるブロックを抽出する手段であって、前記中間フレームの特定ブロックを中心にして前記第1参照フレームが幾何学的に対称な位置関係である仮想参照フレームを定義した場合に、前記中間フレームと前記仮想参照フレームとの時間的関係のn倍離れた延長線上に位置する前記第2参照フレームのブロックを前記第1参照フレームについて1画素分ブロックをずらした場合に前記第2参照フレームについてはn画素分ブロックを移動させて、ブロックマッチング候補として抽出する抽出手段、
前記抽出されたブロックマッチング候補について、ブロックマッチングを行い、差分が最小となる組み合わせを前記中間フレームにおける前記特定ブロックの動きベクトルとして決定する決定手段、
を備え、
前記抽出手段は、前記中間フレームにおけるブロック境界線が画素と画素の境界からずれた位置に設定されるように、前記第1参照フレームのブロックまたは前記第2参照フレームをずらしたブロックをブロックマッチング候補として抽出すること、
を特徴とするブロック別動きベクトル演算装置。
【請求項7】
請求項6のブロック別動きベクトル演算装置において、
前記抽出手段は、小数x精度のブロックデータを生成する画素ずらしブロックデータ生成手段を有している、
ただし、前記小数xは任意である、
を特徴とするブロック別動きベクトル演算装置。
【請求項8】
請求項6のブロック別動きベクトル演算装置において、
前記抽出手段は、前記第1参照フレームのブロックまたは前記第2参照フレームのずらす時期が同期していないこと、または、前記第2参照フレームのブロックを1画素ずらしたブロックをブロックマッチング候補として抽出することにより、前記中間フレームにおけるブロック境界線が画素と画素の境界からずれた位置に設定されるように、前記第1参照フレームのブロックまたは前記第2参照フレームをずらしたブロックをブロックマッチング候補として抽出すること、
を特徴とするブロック別動きベクトル演算装置。
【請求項9】
第1参照フレームおよび第2参照フレームから、これらの中間フレームについてのブロック別の動きベクトルであるローカル動きベクトルを演算するブロック別動きベクトル演算方法であって、下記ステップを備えたこと、
前記第1参照フレームおよび前記第2参照フレームの画像が与えられると、前記第1参照フレームおよび第2参照フレームについて探索範囲を決定するステップ、
前記決定した第1参照フレームおよび第2参照フレームの探索範囲内の画像を所定の画素で構成されるブロックを抽出するステップであって、前記中間フレームの特定ブロックを中心にして前記第1参照フレームが幾何学的に対称な位置関係である仮想参照フレームを定義した場合に、前記中間フレームと前記仮想参照フレームとの時間的関係のn倍離れた延長線上に位置する前記第2参照フレームのブロックを前記第1参照フレームについて1画素分ブロックをずらした場合に前記第2参照フレームについてはn画素分ブロックを移動させて、ブロックマッチング候補として抽出する抽出ステップ、
前記抽出されたブロックマッチング候補について、ブロックマッチングを行い、差分が最小となる組み合わせを前記中間フレームにおける前記特定ブロックの動きベクトルとして決定するステップ、
を備え、
前記抽出ステップでは、前記中間フレームにおけるブロック境界線が画素と画素の境界からずれた位置に設定されるように、前記第1参照フレームのブロックまたは前記第2参照フレームの一方のみをずらしたブロックをブロックマッチング候補として抽出すること、
を特徴とするブロック別動きベクトル演算方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate


【公開番号】特開2011−182181(P2011−182181A)
【公開日】平成23年9月15日(2011.9.15)
【国際特許分類】
【出願番号】特願2010−44274(P2010−44274)
【出願日】平成22年3月1日(2010.3.1)
【出願人】(391010116)株式会社ナナオ (160)
【Fターム(参考)】