JP2011130265A - 動きベクトル検出装置、動きベクトル検出方法およびプログラム - Google Patents

動きベクトル検出装置、動きベクトル検出方法およびプログラム Download PDF

Info

Publication number
JP2011130265A
JP2011130265A JP2009287854A JP2009287854A JP2011130265A JP 2011130265 A JP2011130265 A JP 2011130265A JP 2009287854 A JP2009287854 A JP 2009287854A JP 2009287854 A JP2009287854 A JP 2009287854A JP 2011130265 A JP2011130265 A JP 2011130265A
Authority
JP
Japan
Prior art keywords
motion vector
block
search
motion
macroblock
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.)
Granted
Application number
JP2009287854A
Other languages
English (en)
Other versions
JP5185244B2 (ja
Inventor
Takayuki Onishi
隆之 大西
Taku Sano
卓 佐野
Hiroe Iwasaki
裕江 岩崎
Kazuto Kamikura
一人 上倉
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2009287854A priority Critical patent/JP5185244B2/ja
Publication of JP2011130265A publication Critical patent/JP2011130265A/ja
Application granted granted Critical
Publication of JP5185244B2 publication Critical patent/JP5185244B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

【課題】動きベクトル検出装置が動き探索を行う際に、擾乱の影響を受けにくくし、かつ、動き探索の演算量を削減する。
【解決手段】一次探索器6がマクロブロック単位で一次探索を行い、近傍探索器8は、一次探索の結果得られる一次動きベクトル周辺およびゼロベクトル周辺等の近傍探索を、マクロブロックサイズ未満のブロック単位で行う。ブロック統合器11は、ブロック毎の動きベクトルに応じて互いに隣接するブロックを結合することにより、マクロブロックに適用するブロックサイズを決定し、各ブロックの動きベクトルを決定する。
【選択図】図1

Description

本発明は、動きベクトル検出装置、動きベクトル検出方法およびプログラムに関する。
動画像を圧縮符号化する動画像符号化方式として、MPEG(Moving Picture Experts Group)符号化方式や、H.264/AVC符号化方式などが知られている。MPEG符号化方式として、ディジタル放送やDVDなどの高画質用途にはMPEG−2符号化方式が用いられ、携帯テレビ電話などの低ビットレート用途にはMPEG−4符号化方式が広く用いられている。また、H.264/AVC符号化方式は、ITU−T(The International Telecommunication Union Telecommunication Standardization Sector)とMPEGとが共同で標準化を行った符号化方式であり、高画質と高圧縮率とを両立する新たな方式として注目を集めている。
これらの動画像符号化方式では、一般に、動き予測(インター予測)を行って符号量の削減を図っている。動き予測は、ある一枚の画像(フレーム(Frame))を分割した一部分であるマクロブロック(Macroblock;MB))を符号化する際に、時間的に過去ないし未来に位置する画像(参照画像)の中から、符号化対象のマクロブロック、あるいは、このマクロブロックをさらに分割したブロックと画像が類似する領域を探索し、探索によって検出した領域の画像と符号化対象の画像との差分を取って符号化を行う技術であり、時間的に連続して存在する被写体を示す符号量を大きく削減することができる。この、符号化対象のマクロブロックまたはブロックと画像が類似する領域を探索する作業を、「動き探索」と呼ぶ。
MPEG方式や、H.264/AVC方式では、符号化対象の画像は、Iピクチャ(Intra-coded Picture)とPピクチャ(Predicated Picture)とBピクチャ(Bi-directed Picture)との3種類に分類される。Iピクチャは、動き予測を行わない画像であり、PピクチャやBピクチャで参照される。Pピクチャは、時間的に過去に位置するIピクチャまたはPピクチャを用いて、1方向の動き予測を行う画像である。Bピクチャは、時間的に過去に位置するIピクチャまたはPピクチャ、および、未来に位置するIピクチャまたはPピクチャを用いて、双方向の動き予測を行う画像である。
図12は、MPEG−2やH.264/AVCの動き予測において参照する画像の例を示す図である。
MPEG−2の動き予測では、PピクチャやBピクチャで参照する画像は、直前や直後に位置する画像に一意に定まる。Pピクチャの動き予測で参照する画像は、直前のIピクチャまたはPピクチャである。図12(a)の例では、時間順に5枚の画像P1215〜P1211が示されており、P1215とP1213とP1211とがPピクチャであり、P1214とP1212とがBピクチャである。このうち、PピクチャP1211の動き予測を行う際に、直前のPピクチャP1213を参照している。また、Bピクチャの動き予測で参照する画像は、直前のIピクチャまたはPピクチャ、および、直後のIピクチャまたはPピクチャである。図12(a)の例では、BピクチャP1212の動き予測を行う際に、直前のPピクチャP1213と直後のPピクチャP1211とを参照している。
これに対し、H.264/AVC符号化方式では、符号化効率を高めるため、動き予測に使用する参照画像を、多数の候補の中から選択することができる。
図12(b)の例では、時間順に5枚の画像P1225〜P1221が示されており、P1225とP1223とP1221とがPピクチャであり、P1224とP1222とがBピクチャである。このうち、PピクチャP25の動き予測を行う際に、時間的に前方向のIピクチャおよびPピクチャ(かつ参照画像メモリから削除されていないもの)から、参照画像としてPピクチャP1225およびP1223を選択している。また、図12(b)の例では、BピクチャP24の動き予測を行う際に、時間的に前方向のPピクチャP1225およびP1223と、時間的に後方向のPピクチャP1221とを選択している。
図13は、H.264/AVC符号化方式で、動き予測を行う単位となるブロックのサイズを示す図である。
MPEG−2符号化方式では、動き予測を行う単位は、横16×縦16画素のマクロブロック単位(、あるいは、符号化モードによっては横16×縦8画素ブロック単位)に限定されている。これに対して、H.264/AVC符号化方式では、同図に示す横16×縦16画素ブロックB1311、横16×縦8画素ブロックB1321およびB1322、横8×縦16画素ブロックB1331およびB1332、横8×縦8画素ブロックB1341〜B1344、さらには横8×縦8画素の各ブロックをさらに分割した横8×縦4画素のサブブロックB1351およびB1352、横4×縦8画素のサブブロックB1361およびB1362、横4×縦4画素のサブブロックB1371〜B1374の中から、いずれかの分割方法を選択する。そして、ブロック毎あるいはサブブロック毎に、符号化対象の画像のブロックまたはサブブロックに類似する参照画像上の領域を探索する動き探索を行って、この領域を示す動きベクトル(Motion Vector;MV)を算出し、ブロック毎あるいはサブブロック毎に動き予測を行うことができる。ここでいう「動きベクトル」は、動き探索で探索した参照画像上の領域を示すベクトルであり、符号化対象のブロックあるいはサブブロックの座標から探索した領域の座標への相対座標で示される。
また、MPEG−2符号化方式では、動き探索の際に参照画像上の領域を0.5画素(ハーフペル、Half-Pel)精度で探索するのに対し、H.264/AVC符号化方式では、0.25画素(クォータペル、Quarter-Pel)精度で探索できる。これにより、H.264/AVC符号化方式では、より精度の高い動き予測を行うことができる。
H.264/AVC符号化方式のように、参照画像および符号化対象ブロックサイズを多くの候補から選択できる場合、符号化効率を向上させるために、理想的にはすべての参照画像とブロックサイズとを候補として動き探索を行い、最適な参照画像およびブロックサイズを決定することが望ましい。しかし、全ての参照画像とブロックサイズとについて動き探索を行うと、演算量が膨大になってしまう。そこで、一般的な符号化器では、2段階で動き探索を行うことにより、演算量を削減する。例えば特許文献1の方法では、まず、限定されたブロックサイズで、複数の参照画像に対する広範囲な動き探索を行う一次探索により、参照画像とブロックサイズとの候補を絞り込む。そして、一次探索の結果に基づいて、その他のブロックサイズも含めた詳細な動き探索である二次探索を行い、最終的な参照画像やブロックサイズを選択し、ブロック毎の動きベクトルを検出する。
図14は、特許文献1の方法にて行う一次探索の例を示す図である。
同図に示すように、動きベクトル探索装置は、限定されたブロックサイズ、例えば横8×縦8画素ブロックB1511〜B1514のみについて一次探索を行う。同図では、3枚の参照画像P1411〜P1413が示されており、動きベクトル探索装置は、これらの参照画像について、横8×縦8画素ブロックによる整数画素精度の動き探索を行う。そして、動きベクトル探索装置は、ブロック毎に、参照画素の候補を参照画像P1411〜P1413の何れかに決定し、また、ブロック毎に、整数画素精度の動きベクトルを検出する。
図15は、特許文献1の方法にて行う二次探索の例を示す図である。
同図に示すように、動きベクトル探索装置は、一次探索の結果を元に、さまざまなブロックサイズでの動き探索を行う。
まず、動きベクトル探索装置は、横16×縦16画素ブロックB1521について、1次探索の左上のブロックB1511で決定した参照画像(参照画像(1))について、このブロックの動きベクトル(MV(1))が示す座標を中心として、0.25画素精度の動き探索を±0.75画素の範囲で行う。
1次探索の他のブロックB1512〜B1514についても同様に、決定した参照画像について、当該ブロックの動きベクトルが示す座標を中心として、0.25画素精度の動き探索を±0.75画素の範囲で行う。
横16×縦8画素ブロックの場合、このブロックは横16×縦16画素のマクロブロックを上下に2分割し、上側のブロックB1531は、横8×縦8画素ブロックB1511とB1512とを包含する関係にある。動きベクトル探索装置は、上側のブロックB1531について、このブロックが包含する一次探索のブロックB1511で決定した参照画像(参照画像(1))について、このブロックの動きベクトル(MV(1))が示す座標を中心として、0.25画素精度の動き探索を±0.75画素の範囲で行う。また、このブロックB1531が包含する、一次探索のもう1つのブロックB1512についても、決定した参照画像(参照画像(2))について、このブロックの動きベクトル(MV(2))が示す座標を中心として、0.25画素精度の動き探索を±0.75画素の範囲で行う。
下側のブロックB1532についても、このブロックが包含する一次探索のブロックB1513とB1514とについて一次探索で決定した参照画像および動きベクトルに基づいて動き探索を行う。
横8×縦16画素ブロックの場合も同様に、左側のブロックB1541が包含する一次探索のブロックB1511とB1513とについて一次探索で決定した参照画像および動きベクトルに基づいて動き探索を行う。右側のブロックB1542についても、包含する一次探索のブロックB1512とB1514とについて一次探索で決定した参照画像および動きベクトルに基づいて動き探索を行う。
また、横8×縦8画素ブロックB1551〜B1554についても、一次探索で行った整数画素精度の動き探索の結果に基づいて、さらに、0.25画素精度の動き探索を±0.75画素の範囲で行う。
各ブロックサイズについて動き探索を行った後、動きベクトル探索装置は、各動き探索で得られた評価値に基づいて、評価値が最小となるブロックサイズおよび動きベクトルの組み合わせに決定する。
このように、例えば一次探索は、横8×縦8画素ブロックのみに対して行い、その他のブロックサイズの探索は二次探索で行うことで、一次探索の演算量を削減できる。しかし、一次探索において、参照画像上から、符号化対象の部分と、より類似性の高い部分を検出するためには、参照画像上の広い範囲を動き探索する必要があり、一次探索に用いるブロックサイズを限定してもなお、演算量が非常に大きくなる。そこで、一般的な符号化器では、符号化対象の画像および参照画像を、縦横2分の1あるいは4分の1など、2分の1(nは、0≦n≦4の整数)に縮小して一次探索を行う。例えば、符号化対象の画像および参照画像を、縦横共に2分の1に縮小することにより、比較する画素数を4分の1に減らすことができ、より少ない演算量で広い範囲を動き探索することができる。例えば、2分の1の縮小画像を用いて一次探索を行い、非縮小画像を用いて二次探索を行う場合、二次探索では、通常、少なくとも一次探索結果の周辺2n−1画素の探索を行う。
例えば、縦横共に2分の1の縮小画像で一次探索を行う場合、横8×縦8画素ブロック単位で探索を行うと、縮小画像上では横4×縦4画素ブロック(16画素)の領域で符号化対象の画像と参照画像とのマッチングをとることになる。あるいは、縦横共に4分の1の縮小画像で一次探索を行う場合、横8×縦8画素ブロック単位で探索を行うと、縮小画像上では横2×縦2画素ブロック(4画素)の領域でマッチングをとることになる。動き探索においては一般的に、符号化対象画像と参照画像との差分を示す値(一般的には、ブロック内の各画素の差分の絶対値和が用いられる)に、動きベクトルや符号化モードを記述するために必要なビット量を示す値を加えた評価値を算出し、この評価値が最小となる動きベクトルを選択する。その際、上記のような画素数の少ないブロックで動き探索を行うと、画像内のノイズ等の影響が大きく、正確な動きベクトルの追跡が困難となる。また、ノイズ等の擾乱によって、小さなブロックが選択され易くなり、ブロック毎に異なる方向の動きベクトルが選択され易くなる。これにより、動きベクトルの符号化コストが増大し、全体の符号量が増大してしまう。
さらには、隣接するマクロブロックの動き探索を行う際にも、動きベクトル予測値(予測動きベクトル、Predicted Motion Vector;PMV)が画面全体の動きを反映せず、この動きベクトル予測値の周辺を動き探索しても適切な動き探索が行えない。また、H.264/AVC符号化方式等では、動きベクトル予測値と動きベクトルとの差分をとって符号量の削減を図るが、擾乱の影響で動きベクトル予測値が不適切な値となっているため、差分をとっても符号量が削減できず、さらに符号化効率が低下してしまう。とりわけ、比較的平坦な画像のマクロブロックは、ノイズ等の擾乱の影響を受け易く、上記のように小さなブロックが選択され易くなり、ブロック毎に異なる方向の動きベクトルが選択され易くなる。これにより、符号化効率が低下し、さらには符号化・復号の際に復号画像に画像誤差が含まれ易くなり、主観品質の低下が発生する。
なお、ここでいう「動きベクトル予測値」は、符号化対象のマクロブロックの上または右上または左上または左に隣接する、既に動きベクトルを検出済みの各ブロックの動きベクトルから、H.264/AVC等の符号化標準で定められた手順に基づいて算出されるベクトルである。例えば、図13で説明した16×8画素のブロックB1321およびB1322の場合、上側のブロックB1321では、このブロックB1321の上に隣接するブロックの動きベクトルから動きベクトル予測値を算出する。また、下側のブロックB1322では、このブロックB1322の左に隣接するブロックの動きベクトルから動きベクトル予測値を算出する。
動きベクトル予測値は、すでに符号化が終了している隣接ブロックの画像の動き量の平均的な値を示すベクトルであり、符号化対象のブロックの画像が、周辺のブロックの画像と同様の動きを示している場合は、この符号化対象のブロックの動きベクトルが動きベクトル予測値とほぼ同じ値となることが期待される。例えば、H.264/AVCの符号化標準に従って動きベクトルを符号化する場合、動きベクトルと動きベクトル予測値との差分をとって符号化を行う。このため、動きベクトルの値が動きベクトル予測値に近いほど、動きベクトルを表現するための符号量が少なくて済む。
そこで、一次探索はマクロブロック単位で行うことが考えられる。マクロブロックをブロックに分割しないことにより、評価値を算出する元になる画素数が多くなるため、ノイズ等の擾乱の影響を受けにくくなる。
マクロブロック単位の一次探索は、例えば、特許文献2の段落0028〜0032に示される、テレスコピック探索法と呼ばれる動き探索方法を用いて行うことができる。テレスコピック探索法は、比較的小さな範囲の探索の繰り返しによって、参照画像上での物体の大きな動きに追従するできる方法であり、マクロブロック単位の動き探索にもブロック単位の動き探索にも用いることができる。
特開2008−236096号公報 特開2000−242554号公報
しかしながら、一次探索をマクロブロック単位で行うと、マクロブロック全体に対して1つのみの動きベクトルが得られる。この動きベクトルの周辺を二次探索する際に、二次探索の探索範囲を狭くすると、例えば、マクロブロックに動体の画像と静止する背景画像とが含まれる場合など、マクロブロックの部分によって画像の動きが異なる場合に、適切な動きベクトルを検出できないおそれがある。一方、二次探索の探索範囲を広くすると適切な動きベクトルを検出できる可能性は高くなるものの、演算量が増大してしまう。また、ブロックサイズの選択についても、二次探索で様々なブロックサイズについて動き探索を行うと演算量が増大してしまう。
本発明は、このような事情を考慮してなされたものであり、その目的は、擾乱の影響を受けにくく、かつ、動き探索の演算量を削減できる動きベクトル検出装置、動きベクトル検出方法およびプログラムを提供することにある。
[1]この発明は上述した課題を解決するためになされたもので、本発明の一態様による動きベクトル検出装置は、入力動画像のマクロブロックを分割した第1のブロック毎に、参照画像上で前記第1のブロックに対応する領域の位置を示す動きベクトルを検出する動きベクトル検出装置であって、前記マクロブロックに対する一次の動き探索を行って、一次動きベクトルを検出する一次探索器と、二次の動き探索を行う範囲の中心座標を示す探索中心座標を出力する探索中心指示器と、前記一次動きベクトルが示す座標と前記探索中心座標との座標毎に、かつ前記マクロブロックを分割した第2のブロック毎に、二次の動き探索を行って動きベクトルを検出する近傍探索器と、前記近傍探索器が検出した動きベクトルの中から、前記第2のブロック毎に動きベクトルを選択する動きベクトル選択器と、前記動きベクトル選択器が選択した動きベクトルに基づいて、前記第2のブロック、または、互いに隣接する前記第2のブロックを結合したブロックを、前記第1のブロックとし、前記第2のブロックの動きベクトルに基づいて前記第1のブロックの動きベクトルを決定するブロック統合器と、を具備することを特徴とする。
ここでいう「一次動きベクトル」とは、近傍探索(二次探索)に先立って行う動き探索である一次探索によって得られる動きベクトルであり、二次探索の中心を示す。
[2]また、本発明の一形態による動きベクトル検出装置は、上述の動きベクトル検出装置であって、前記探索中心座標は、前記マクロブロックの位置を示すゼロベクトル、または、前記第2のブロックに隣接するブロックの動きベクトルから算出される動きベクトル予測値を含むことを特徴とする。
[3]また、本発明の一形態による動きベクトル検出装置は、上述の動きベクトル検出装置であって、前記探索中心座標は、前記マクロブロックの左に隣接する左隣接ブロックの動きベクトル、または、前記マクロブロックの左に隣接する左隣接マクロブロックの前記一次動きベクトル、または、前記マクロブロックの上に隣接する上隣接ブロックの動きベクトル、または、前記マクロブロックの上に隣接する上隣接マクロブロックの前記一次動きベクトルを含むことを特徴とする。
[4]また、本発明の一形態による動きベクトル検出装置は、上述の動きベクトル検出装置であって、前記探索中心座標は、前記マクロブロックの右に隣接する右隣接マクロブロックの前記一次動きベクトル、または、前記マクロブロックの下に隣接する下隣接マクロブロックの前記一次動きベクトルを含むことを特徴とする。
[5]また、本発明の一形態による動きベクトル検出装置は、上述の動きベクトル検出装置であって、前記マクロブロックの画素値に基づいて、画素値のばらつきを示す指標を算出し、前記マクロブロックの画素値のばらつきが小さいか否かを判定する画像特徴量演算器をさらに具備し、前記二次探索器は、前記画像特徴量演算器が、前記マクロブロックの画素値のばらつきが小さいと判定した場合は、前記マクロブロックを前記第2のブロックとすることを特徴とする。
[6]また、本発明の一形態による動きベクトル検出方法は、入力動画像のマクロブロックを分割した第1のブロック毎に、参照画像上で前記第1のブロックに対応する領域の位置を示す動きベクトルを検出する動きベクトル検出装置の動きベクトル検出方法であって、前記マクロブロックに対する一次の動き探索を行って、一次動きベクトルを検出する一次探索ステップと、二次の動き探索を行う範囲の中心座標を示す探索中心座標を出力する探索中心指示ステップと、前記一次動きベクトルが示す座標と前記探索中心座標との座標毎に、かつ前記マクロブロックを分割した第2のブロック毎に、二次の動き探索を行って動きベクトルを検出する近傍探索ステップと、前記近傍探索ステップにて検出した動きベクトルの中から、前記第2のブロック毎に動きベクトルを選択する動きベクトル選択ステップと、前記動きベクトル選択ステップにて選択した動きベクトルに基づいて、前記第2のブロック、または、互いに隣接する前記第2のブロックを結合したブロックを、前記第1のブロックとし、前記第2のブロックの動きベクトルに基づいて前記第1のブロックの動きベクトルを決定するブロック統合ステップと、を具備することを特徴とする。
[7]また、本発明の一形態によるプログラムは、コンピュータに、入力動画像のマクロブロックを分割した第1のブロック毎に、参照画像上で前記第1のブロックに対応する領域の位置を示す動きベクトルを検出させるためのプログラムであって、前記マクロブロックに対する一次の動き探索を行って、一次動きベクトルを検出する一次探索ステップと、二次の動き探索を行う範囲の中心座標を示す探索中心座標を出力する探索中心指示ステップと、前記一次動きベクトルが示す座標と前記探索中心座標との座標毎に、かつ前記マクロブロックを分割した第2のブロック毎に、二次の動き探索を行って動きベクトルを検出する近傍探索ステップと、前記近傍探索ステップにて検出した動きベクトルの中から、前記第2のブロック毎に動きベクトルを選択する動きベクトル選択ステップと、前記動きベクトル選択ステップにて選択した動きベクトルに基づいて、前記第2のブロック、または、互いに隣接する前記第2のブロックを結合したブロックを、前記第1のブロックとし、前記第2のブロックの動きベクトルに基づいて前記第1のブロックの動きベクトルを決定するブロック統合ステップと、を前記コンピュータに実行させるためのプログラムである。
この発明によれば、擾乱の影響を受けにくく、かつ、動き探索の演算量を削減できる。
本発明の一実施形態における動きベクトル検出装置の概略構成を示す構成図である。 同実施形態において、一次探索器6が一次探索を行う例を示す図である。 同実施形態において、一次探索器6がテレスコピック探索法を用いて一次探索を行う例を示す図である。 同実施形態において、一次探索の結果得られる動きベクトルの例を示す図である。 同実施形態において、近傍探索器8が行う二次探索の探索範囲の例を示す図である。 同実施形態において、近傍探索器8が、横8×縦8画素ブロック毎に最適な動きベクトルを求める例を示す図である。 同実施形態における探索中心座標として、動きベクトルおよびゼロベクトルを示す図である。 同実施形態における探索中心座標として、左隣接ブロックの動きベクトルまたは左隣接マクロブロックの一次動きベクトル、および、上隣接ブロックの動きベクトルまたは上隣接マクロブロック一次動きベクトルを示す図である。 同実施形態における探索中心座標として、下隣接マクロブロックの一次動きベクトル、および、右隣接マクロブロックの一次動きベクトルを示す図である。 同実施形態において、近傍探索器8が、動きベクトル選択器10に出力する動きベクトルおよび動きベクトル評価値の例、および、動きベクトル選択器10が、動きベクトルおよび動きベクトル評価値を選択する例を示す図である。 同実施形態において、動きベクトル検出装置100が、符号化対象のマクロブロックC121に対する動きベクトルを検出する処理手順を示すフローチャートである。 MPEG−2やH.264/AVCの動き予測において参照する画像の例を示す図である。 H.264/AVC符号化方式で、動き予測を行う単位となるブロックのサイズを示す図である。 特許文献1の方法にて行う一次探索の例を示す図である。 特許文献1の方法にて行う二次探索の例を示す図である。
以下、図面を参照して、本発明の一実施形態について説明する。
図1は、本発明の一実施形態における動きベクトル検出装置の概略構成を示す構成図である。
同図において、動きベクトル検出装置100は、画像メモリ1と、探索範囲切り出し器2と、画像縮小器3および12と、縮小画像キャッシュメモリ4と、画像キャッシュメモリ5と、一次探索器6と、探索中心指示器7と、近傍探索器8と画像特徴量演算器9と、動きベクトル選択器10と、ブロック統合器11とを具備する。
画像縮小器12は、入力動画像がマクロブロック単位に分割された、符号化対象のマクロブロック画像C121の入力を受け、この符号化対象のマクロブロック画像C121を縦横共に2分の1の画素数に縮小し、縮小画像C122を一次探索器6に出力する。
画像メモリ1は、ローカル復号画像C11の入力を受け、このローカル復号画像C11を蓄積する。画像メモリ1が記憶するローカル復号画像は、動き探索のために使用する参照画像を切り出す元の画像となる。なお、ここでいう「ローカル復号画像」とは、本動きベクトル検出装置100を含む動画像符号化装置が入力画像を符号化し、さらに復号した画像である。ローカル復号画像は、動画像復号装置も生成する画像であり、このローカル復号画像を用いて動き探索を行うことにより、符号化および復号による画像誤差を抑制することができる。なお、画像メモリ1が、ローカル復号画像に代えて入力画像を蓄積するようにしてもよい。入力画像を用いて動き探索を行うと、ローカル復号画像の生成や転送を待つことなく動き探索を行うことができるため、動画像符号化装置の構成の自由度が増す。
符号化および復号による画像誤差は生じるものの、動画像符号化装置側で復号画像を生成する必要が無く、動画像符号化装置の構成を簡略化できる。
探索範囲切り出し器2は、画像メモリ1が蓄積する画像C12を読み出し、一次探索器6と近傍探索器8とが動き探索の対象とする範囲として符号化対象のマクロブロックを中心に設定される範囲の画像を切り出して、画像縮小器3と画像キャッシュメモリ5とに出力する。例えば、符号化対象のマクロブロックが画像C12の左上に位置する場合、一次探索器6と近傍探索器8とが動き探索の対象とする範囲は、この符号化対象のマクロブロックを中心として画像C12の左上に設定され、探索範囲切り出し器2は、この範囲の画像を切り出して、画像縮小器3と画像キャッシュメモリ5とに出力する。
画像縮小器3は、探索範囲切り出し器2から出力される画像C21を、縦横共に2分の1の画素数に縮小して縮小画像C31を生成し、縮小画像キャッシュメモリ4に出力する。縮小画像キャッシュメモリ4は、一次探索器6が行う一次探索用の参照画像として、画像縮小器3が出力する縮小画像C31を記憶する。一方、画像キャッシュメモリ5は、近傍探索器8が行う二次探索用の参照画像として、探索範囲切り出し器2から出力される画像C21を記憶する。
一次探索器6は、縮小画像キャッシュメモリ4から縮小画像C41を読み出し、読み出した縮小画像C41上で、画像縮小器12から出力される縮小画像C122に類似する領域をマクロブロック単位で探索する一次探索を行って動きベクトルC61を生成し、生成した動きベクトルC61を近傍探索器8に出力する。以下では、一次探索器6が生成する動きベクトルを「一次動きベクトル」ともいう。一次動きベクトルは、二次探索の探索範囲の中心座標の1つを示す、2画素単位の精度をもった動きベクトルである。
探索中心指示器7は、近傍探索器8が行う二次探索の探索範囲の中心座標(探索中心座標)C71を出力する。探索中心指示器7が出力する探索中心座標の具体的内容については後述する。
画像特徴量演算器9は、符号化対象のマクロブロックC121の画素値に基づいて、当該マクロブロックC121の画像が平坦か否か、すなわち、マクロブロックC121の画素値のばらつきが小さいか否かを判定し、判定結果を示す信号C91を近傍探索器8と動きベクトル選択器10とに出力する。
近傍探索器8は、画像キャッシュメモリ5から画像C51を読み出し、読み出した画像C51上で、符号化対象のマクロブロック画像C121に類似する領域を探索する二次探索を行う。具体的には、近傍探索器8は、一次探索器6から出力される一次動きベクトルC61および探索中心指示器7から出力される探索中心座標C71の各々を中心として、例えば整数画素精度の動き探索を±1画素の範囲で行うなど、予め定められた範囲内の探索を行い、一次動きベクトルC61および探索中心座標C71の各々についての動きベクトルおよび動きベクトル評価値C81を、動きベクトル選択器10に出力する。
ここでいう、「動きベクトル評価値」とは、符号化対象のブロック内の各画素と参照画像上で対応する画素との差分の絶対値和に、動きベクトルや符号化モードを記述するために必要なビット量(符号化コスト)に相当する値を加えた値である。動きベクトル評価値は、当該動きベクトルを用いて動き予測を行った場合の符号量や画像誤差を示す指標であり、動きベクトル評価値が小さい動きベクトルほど、符号化対象のマクロブロックに対して動き予測を行なう際に用いるのに適している。
後述するように、探索中心指示器7は、複数の探索中心座標C71を出力し、近傍探索器8は、これら複数の探索中心座標C71の各々について動きベクトルを出力する。二次探索を行う際、近傍探索器8は、符号化対象のマクロブロックの画素値のばらつきが小さいとの判定結果を示す信号C91が画像特徴量演算器9から出力された場合は、横16×縦16画素ブロック(すなわち、マクロブロック)に対する動きベクトルを生成し、ばらつきが小さくないとの判定結果を示す信号C91が出力された場合は、横8×縦8画素ブロック毎に動きベクトルを生成する。
動きベクトル選択器10は、近傍探索器8から出力される複数の動きベクトルC81の中から、動きベクトル評価値が最小となる動きベクトルをブロック毎に選択し、選択したブロック毎の動きベクトルC101をブロック統合器11に出力する。
ブロック統合器11は、動きベクトル選択器10から出力されるブロック毎の動きベクトルC101に基づいて、処理対処のマクロブロックに適用するブロックサイズを決定し、ブロック毎の動きベクトルC201を、動きベクトル検出装置100の外部(例えば、この動きベクトル検出装置100を含む動画像符号化装置の予測画像生成手段)に出力する。
図2は、一次探索器6が一次探索を行う例を示す図である。一次探索器6は、直接探索法を用いて一次探索を行う。
同図の縮小画像C122は、画像縮小器12が出力する、符号化対象のマクロブロックの縮小画像である。また、非参照画像P22およびP23と参照画像P24とは、縮小画像キャッシュメモリ4から読み出す縮小画像C41である。また、縮小画像C122(を含む符号化対象の画像)と参照画像P24とは、非参照画像P22およびP23を挟み、時間方向に3画像ぶん離れている。
同図に示すように、直接探索法では、一次探索器6は、参照画像P24に直接、符号化対象マクロブロックの座標に応じた探索範囲を設定し、設定した探索範囲内で符号化対象マクロブロックと参照画像とのマッチングをとって、一次動きベクトル51を決定する。
具体的には、一次探索器6は、縮小された参照画像C41上に設定された探索範囲内で、符号化対象マクロブロックの縮小画像C122と、参照画像上の同サイズの領域との、画素の差分絶対値の和を算出し、この画素の差分絶対値の和に基づいて動きベクトル評価値を算出し、探索範囲内で動きベクトル評価値が最小となる領域を示す動きベクトルを、一次動きベクトルC61とする。
なお、一次探索器6が一次探索を行う方法は、直接探索法に限らない。
図3は、一次探索器6がテレスコピック探索法を用いて一次探索を行う例を示す図である。同図の縮小画像C122と非参照画像P22およびP23と参照画像P24とは、それぞれ図2で説明したのと同様である。
まず、一次探索器6は、縮小画像C122(を含む符号化対象の画像)に時間方向に隣接する非参照画像P32に、符号化対象ブロックC122の座標に応じた探索範囲(非参照画像P32における符号化対象ブロックC122の座標を中心とする探索範囲)を設定し、動き探索を行う。次に、一次探索器6は、非参照画像P32に時間方向に隣接する非参照画像P33に、非参照画像P32での探索結果R32が示す座標に応じた探索範囲を設定し、動き探索を行う。さらに、一次探索器6は、非参照画像P33に時間方向に隣接する参照画像P34に、非参照画像P33での探索結果R33が示す座標に応じた探索範囲を設定し、動き探索を行う。そして、一次探索器6は、この動き探索によって得られる探索結果R34を、最終的な動き探索結果(一次動きベクトルC61)とする。
直接探索法では、画像中の物体の高速な動きに追従するためには、探索範囲が十分広くなければならず、それにより演算量が大きくなる。これに対し、テレスコピック探索法では、時間的に最も近い画像から参照画像に至るまで、順に探索を行い、探索結果の動きベクトルを次の画像の探索中心点として設定することを繰り返す。一回の探索範囲を比較的狭く設定しても、最終的に、参照画像上で広い範囲の物体の動きを追うことができる。
図4は、一次探索の結果得られる動きベクトルの例を示す図である。
一次探索の結果、図4に示すように、一次探索器6は、横16×縦16画素のマクロブロック単位での動きベクトルを、一次探索結果C61として検出し、出力する。
図5は、近傍探索器8が行う二次探索の探索範囲の例を示す図である。同図において、近傍探索器8は、非縮小画像C51上で、一次動きベクトルC61が示す座標を中心に、整数画素精度の動き探索を、±1画素の範囲で行う。この場合、近傍探索器8は、同図に示すように全部で9点の動きベクトルについて動き探索を行い、動きベクトル評価値が最も小さい動きベクトルを選択することにより、整数画素精度の動きベクトルを検出する。
近傍探索器8においても、一次探索器6の場合と同様に、横16×縦16画素のマクロブロックの範囲で符号化対象のマクロブロックと参照画像との画素の差分絶対値を算出するが、一次探索器6の場合とは異なり、差分絶対値の和を横8×縦8画素ブロック毎に算出して、横8×縦8画素ブロック毎に最適な動きベクトルを検出する。あるいは、近傍探索器8が、横8×縦8画素ブロック毎に独立に動き探索を行い、横8×縦8画素ブロック毎に最適な動きベクトルを検出するようにしてもよい。
図6は、近傍探索器8が、横8×縦8画素ブロック毎に最適な動きベクトルを検出する例を示す図である。
図5で説明したように、近傍探索器8は、一次動きベクトルC61が示す座標等の探索中心の近傍9点について、横16×縦16=256画素の差分絶対値を算出する。そして、近傍探索器8は、横8×縦8画素ブロック毎、すなわち横8×縦8=64画素毎に差分絶対値和を集計し、動きベクトル評価値を算出する。近傍探索器8は、横8×縦8ブロック毎に、算出した動きベクトル評価値が最小となる動きベクトルを検出する。
ここで、図5で説明したように、近傍探索器8が横8×縦8画素ブロック毎に、動きベクトル評価値が最小の動きベクトルを算出しても、一次動きベクトルC61に対して、高々±1画素のみ離れた動きベクトルの中から動きベクトルC81を検出するに過ぎない。動き探索の対象を増やすことで、符号化対象のブロックに画像がより類似する領域を検出して符号化効率を高められることが期待できる。そこで近傍探索器8は、一次動きベクトルC61に加えて、探索中心指示器7から出力される探索中心座標C71を中心とした近傍についても動き探索を行い、横8×縦8画素ブロック単位で、動きベクトル評価値が最小の動きベクトルを得る。
探索中心指示器7は、近傍探索器8が処理可能な近傍探索演算量に応じた個数の探索中心座標C71を出力する。具体的には、
(a)動きベクトル予測値、および、ゼロベクトル
(b)左隣接ブロックの動きベクトルまたは左隣接マクロブロックの一次動きベクトル、および、上隣接ブロックの動きベクトルまたは上隣接マクロブロックの一次動きベクトル
(c)下隣接マクロブロックの一次動きベクトル、または、右隣接マクロブロックの一次動きベクトル
について、近傍探索器8の演算能力に応じて、(a)と(b)と(c)と、または、(a)と(b)と、または、(a)のみ、あるいはこれ以外の組み合わせを探索中心座標C71とする。ここでいう「左隣接ブロック」とは、動き探索を行うブロックの左に隣接するブロックである。「左隣接マクロブロック」、「上隣接ブロック」、「上隣接マクロブロック」等も同様に、動き探索を行うブロックのそれぞれの方向に隣接するブロックないしマクロブロックである。なお、探索中心指示器7が出力する探索中心座標C71は、上記の(a)、(b)、(c)やこれらの組み合わせに限らない。例えば、動きベクトル予測値のみを探索中心座標C71とするようにしてもよい。以下、本実施形態では、探索中心指示器7が、探索中心座標C71として(a)と(b)と(c)とを出力する場合について説明する。
図7は、上記(a)の探索中心座標である、動きベクトル予測値およびゼロベクトルを示す図である。
前述したように、動きベクトル予測値は、すでに動きベクトルを検出済みの隣接ブロックの画像の動き量の平均的な値を示すベクトルである。したがって、符号化対象のマクロブロックの画像が隣接ブロックと同様の動きをしている場合は、動きベクトル予測値の近傍を動き探索することにより、動きベクトル評価値が小さい動きベクトルを検出できる、すなわち、符号化対象のブロックと類似度の高い画像の領域を検出できる可能性が高い。符号化対象のマクロブロックの画像が隣接ブロックと同様の動きをしている場合としては、符号化対象のマクロブロックの画像と隣接ブロックの画像とが、同一の動体の画像である場合や、共にほぼ静止する、あるいは、一様に移動(パン)する背景の画像である場合が考えられる。
また、ここでいう「ゼロベクトル」は、原点を示すベクトルである。ゼロベクトルは、参照画像上での符号化対象のブロックの位置を、符号化対象のブロックの位置からの相対座標で示している。したがって、符号化対象のマクロブロックの画像が静止する物体や背景等の画像である場合は、動きベクトル予測値の近傍を動き探索することにより、動きベクトル評価値が小さい動きベクトルを検出できる可能性が高い。
図8は、上記(b)の探索中心座標である、左隣接ブロックの動きベクトルまたは左隣接マクロブロックの一次動きベクトル、および、上隣接ブロックの動きベクトルまたは上隣接マクロブロック一次動きベクトルを示す図である。
符号化対象のマクロブロックB81の画像が左隣接ブロックB82の画像と連続する場合など、左隣接ブロックB82の画像と同様の動きをする場合は、左隣接ブロックB82の動きベクトルの近傍を動き探索することにより、動きベクトル評価値が小さい動きベクトルを検出できる可能性が高い。左隣接マクロブロックの一次動きベクトルは、例えば、複数のマクロブロックの動き探索を並行して行う場合など、何らかの理由で左隣接ブロックB82の動きベクトルが得られない場合に、左隣接ブロックB82の動きベクトルに代用することが考えられる。
なお、左隣接ブロックB82の動きベクトル、または左隣接マクロブロックの一次動きベクトルを用いて、4つの横8×縦8画素ブロックB811〜B814すべてについて動き探索を行ってもよいが、本実施例では、動き探索の演算量削減のために、左隣接マクロブロックに隣接する横8×縦8画素ブロックB811とB813とのみについて動き探索を行う。
同様に、符号化対象のマクロブロックB81の画像が上隣接ブロックB83の画像と連続する場合など、上隣接ブロックB83の画像と同様の動きをする場合は、上隣接ブロックB83の動きベクトルまたは上隣接マクロブロックの一次動きベクトルの近傍を動き探索することにより、動きベクトル評価値が小さい動きベクトルを検出できる可能性が高い。なお、上隣接ブロックB83の動きベクトルまたは上隣接マクロブロックの一次動きベクトルを用いて、4つの横8×縦8画素ブロックB811〜B814すべてについて動き探索を行ってもよいが、本実施例では、動き探索の演算量削減のために、上隣接マクロブロックに隣接する横8×縦8画素ブロックB811とB812とのみについて動き探索を行う。
図9は、上記(c)の探索中心座標である、下隣接マクロブロックの一次動きベクトル、および、右隣接マクロブロックの一次動きベクトルを示す図である。
これらの一次動きベクトルを探索中心座標として用いるためには、二次探索を行う際に、下隣接マクロブロックの一次動きベクトルや、右隣接マクロブロックの一次動きベクトルがすでに生成されている必要がある。したがって、図9下に示すように、一次探索器6による一次探索が、近傍探索器8よりも1マクロブロック行(画像(フレーム)の左端から右端まで横方向に連続した並んだマクロブロックの集まり)分以上先行して行われている必要がある。
符号化対象のマクロブロックB91の画像が下隣接マクロブロックB93の画像と連続する場合など、下隣接マクロブロックB93の画像と同様の動きをする場合は、下隣接マクロブロックB93の一次動きベクトルの近傍を動き探索することにより、動きベクトル評価値が小さい動きベクトルを検出できる可能性が高い。なお、下隣接マクロブロックB93の一次動きベクトルを用いて、4つの横8×縦8画素ブロックB911〜B914すべてについて動き探索を行ってもよいが、本実施例では、動き探索の演算量削減のために、下隣接マクロブロックB93に隣接する横8×縦8画素ブロックB913とB914とのみについて動き探索を行う。
同様に、符号化対象のマクロブロックB91の画像が右隣接マクロブロックB92の画像と連続する場合など、右隣接マクロブロックB92の画像と同様の動きをする場合は、右隣接マクロブロックB92の一次動きベクトルの近傍を動き探索することにより、動きベクトル評価値が小さい動きベクトルを検出できる可能性が高い。なお、右隣接マクロブロックB83の一次動きベクトルを用いて、4つの横8×縦8画素ブロックB911〜B914すべてについて動き探索を行ってもよいが、本実施例では、動き探索の演算量削減のために、右隣接マクロブロックB92に隣接する横8×縦8画素ブロックB911とB912とのみについて動き探索を行う。
図10は、近傍探索器8が、動きベクトル選択器10に出力する動きベクトルおよび動きベクトル評価値の例、および、動きベクトル選択器10が、動きベクトルおよび動きベクトル評価値を選択する例を示す図である。
近傍探索器8は、二次探索対象の4つの横8×縦8画素ブロックB101〜B104それぞれについて、一次動きベクトルC61および複数の探索中心座標C71の各々を中心として、図5で説明した動き探索対象の9点について動き探索を行い、9点のうち動きベクトル評価値が最小の動きベクトルおよび当該動きベクトル評価値を、動きベクトル選択器10に出力する。動きベクトル選択器10は、ブロックB101〜B104の各々について、近傍探索器8から出力される動きベクトルのうち、動きベクトル評価値が最も小さい動きベクトルを選択する。例えば図10の例では、動きベクトル選択器10は、ブロックB101については、動きベクトル評価値が48で最小である動きベクトルMV31を選択する。同様に、ブロックB102については動きベクトルMV12を選択し、ブロックB103については動きベクトルMV13を選択し、ブロックB104については動きベクトルMV34を選択する。動きベクトル選択器10は、選択したブロック毎の動きベクトルC101をブロック統合器11に出力する。
ブロック統合器11は、互いに隣接するブロックについて、動きベクトル選択器10から出力される動きベクトルの値が等しい場合は、両者のブロックを統合して、より大きなサイズのブロックとする。
例えば、図10において、ブロックB101の動きベクトルMV31と、ブロックB102の動きベクトルMV12との値が等しく、かつ、ブロックB103の動きベクトルMV13と、ブロックB104の動きベクトルMV34との値が等しい場合には、ブロック統合器11は、ブロックB101とブロックB102とを統合し、また、ブロックB103とブロックB104とを統合して、2つの横16×縦8画素ブロックを生成し、動き予測を行う単位のブロックサイズを横16×縦8画素(図15のブロックB1521およびB1522)に決定する。
あるいは、ブロックB101の動きベクトルMV31と、ブロックB103の動きベクトルMV13と値が等しく、かつ、ブロックB102の動きベクトルMV12と、ブロックB104の動きベクトルMV34との値が等しい場合には、ブロック統合器11は、ブロックB101とブロックB103とを統合し、また、ブロックB102とブロックB104とを統合して、2つの横8×縦16画素ブロックを生成し、動き予測を行う単位のブロックサイズを横8×縦16画素(図15のブロックB1531およびB1532)に決定する。
あるいは、ブロックB101〜B104の動きベクトルの値が全て等しい場合には、ブロック統合器11は、4つのブロックB101〜B104を統合して横16×縦16画素ブロックを生成し、動き予測を行う単位のブロックサイズを横16×縦16画素(図15のブロックB1511)に決定する。
一方、隣接するブロックの動きベクトルの値が互いに異なる場合は、ブロック統合器11は、ブロックの統合は行わず、動き予測を行う単位のブロックサイズを横8×縦8画素(図15のブロックB1551〜B1554)に決定する。
以上のように、ブロック統合器11は、ブロックサイズ(インター符号化モード)および動きベクトルC201を決定し、動きベクトル検出装置100の外部に出力する。
ここで、符号化対象のマクロブロックの画像が平坦であり、参照画像にも同様の平坦な画像の領域がある場合、平坦な画像の領域のどの部分をとっても、動きベクトル評価値にあまり差が生じないことが考えられる。この場合、ノイズ等の擾乱の影響により動きベクトル評価値がわずかに変化するだけで、近傍探索器8あるいは動きベクトル選択器10が選択する動きベクトルが、擾乱の影響が無い場合と異なるものになりうる。したがって、マクロブロックの各8×8画素ブロックについて見ると、マクロブロックの画像が平坦な場合は、ノイズ等の擾乱によってブロック毎に異なる方向の動きベクトルが選択され易くなる。この場合、ブロック統合器11はブロックの統合を行わず、符号化効率が低下する。
また、画面全体が同一方向に移動(パン)している映像では、画面全体の移動が反映された動きベクトル予測値近傍の動きベクトルが選択されることが望ましい。これに対して、ノイズ等の影響により一部の横8×縦8画素ブロックで動きベクトル予測値近傍の動きベクトルが選択されず、例えばゼロベクトル近傍の動きベクトルが選択された場合、このブロックに隣接するマクロブロックを処理する際に、探索中心指示器7は、このゼロベクトル近傍の動きベクトルに基づいて動きベクトル予測値を算出する。その結果、探索中心指示器7が算出する動きベクトル予測値は、画面全体の移動を正しく反映しないものとなる。このため、前記ブロックに隣接するマクロブロックでも動きベクトル予測値近傍の動きベクトルが選択されない可能性が高い。同様に、さらにこのマクロブロックに隣接するマクロブロックでも、動きベクトル予測値近傍の動きベクトルが選択されない可能性が高い。このように、1つのブロックへのノイズ等の混入が、複数のマクロブロックに影響し、符号化効率が低下するおそれがあり、また、符号化・復号の際に復号画像に画像誤差が含まれ易くなり、主観品質が低下するおそれがある。
そこで、画像特徴量演算器9は、符号化対象マクロブロック画像C121の特徴量として、画素値の分散など、画素値のばらつきを示す指標を算出し、マクロブロックの画像が平坦か否か、すなわち、画素値のばらつきが小さいか否かを判定し、判定結果C91を、近傍探索器8と動きベクトル選択器10とに出力する。画素値のばらつきが小さいとの判定結果が出力された場合、近傍探索器8は、横8×縦8画素ブロック単位での差分絶対値の集計および動きベクトル算出を行わず、横16×縦16画素のマクロブロック単位で動き探索を行い、マクロブロックの動きベクトルおよび動きベクトル評価値を出力する。そして、動きベクトル選択器10は、近傍探索器8から出力されるマクロブロックの動きベクトルのうち、動きベクトル評価値が最も小さい動きベクトルを選択する。これにより、平坦な画像においてブロックが不必要に細かく分割されることを防ぐことができる。
画像特徴量演算器9は、例えば、式(1)が成立する場合に、マクロブロックの画素値のばらつきが小さいと判定する。
Figure 2011130265
ここで、「マクロブロックの分散値」とは、マクロブロック内の各画素と、全画素の平均値との差分の絶対値和をいう。また、αは閾値であり、例えば、予め定められた定数である。
図11は、動きベクトル検出装置100が、符号化対象のマクロブロックC121に対する動きベクトルを検出する処理手順を示すフローチャートである。
ステップS11において、画像縮小器12は、符号化対象のマクロブロックC121を縦横共に2分の1の画素数に縮小した画像C122を生成して一次探索器6に出力し、一次探索器6は、縮小画像C122を用いて、縮小参照画像C41上での動き探索をマクロブロック単位で行い、一次動きベクトルC61を生成して近傍探索器8に出力する。
ステップS12において、探索中心指示器7は、近傍探索器8が二次探索を行う領域の中心座標を示す探索中心座標C71を出力する。
ステップS13において、画像特徴量演算器9は、符号化対象のマクロブロックC121の画素値に基づいて、符号化対象のマクロブロックC121の画像が平坦か否かを示す画像特徴量を算出する。
ステップS14において、画像特徴量演算器9は、算出した画像特徴量に基づいて、符号化対象のマクロブロックC121の画素値のばらつきが小さいか否かを判定する。ばらつきが小さいと判定した場合(ステップS14:YES)はステップS21に進み、ばらつきが小さくないと判定した場合(ステップS14:NO)はステップS15に進む。
ステップS15において、近傍探索器8は、符号化対象のマクロブロックC121を用いて、参照画像C51上での動き探索を行い、一次探索器6が出力する一次動きベクトルC61および探索中心指示器7が出力する探索中心座標C71の各々の近傍について、横8×縦8画素ブロック毎に、動きベクトル評価値が最小となる動きベクトルを選択し、選択した動きベクトルと、その動きベクトル評価値とを、動きベクトル選択器10に出力する。
ステップS16において、動きベクトル選択器10は、近傍探索器8から出力される動きベクトルから、横8×縦8画素ブロック毎に、動きベクトル評価値が最小となる動きベクトルを選択し、選択したブロック毎の動きベクトルをブロック統合器11に出力する。
ステップS17において、ブロック統合器11は、互いに隣接し、かつ、動きベクトルの値が等しいブロックを統合することにより、符号化対象のマクロブロックのブロックサイズおよび各ブロックの動きベクトルを決定する。
ステップS18において、ブロック統合器11は、決定したブロックサイズおよび動きベクトルを動きベクトル検出装置100の外部に出力する。その後、符号化対象のマクロブロックC121に対する動きベクトルを検出する処理を終了する。
ステップS21において、近傍探索器8は、符号化対象のマクロブロックC121を用いて、参照画像C51上での動き探索を行い、一次探索器6が出力する一次動きベクトルC61および探索中心指示器7が出力する探索中心座標C71の各々の近傍について、横16×縦16画素ブロック単位で、動きベクトル評価値が最小となる動きベクトルを選択し、選択した動きベクトルと、その動きベクトル評価値とを、動きベクトル選択器10に出力する。
ステップS22において、動きベクトル選択器10は、近傍探索器8から出力される動きベクトルから、横16×縦16画素ブロック単位で、動きベクトル評価値が最小となる動きベクトルを選択し、選択した動きベクトルをブロック統合器11に出力する。その後、ステップS18に進む。
以上のように、一次探索器6が、縮小画像を用いて広範囲の一次探索を行う際に、横8×縦8画素ブロック毎ではなく横16×縦16画素のマクロブロック単位で探索を行うので、動きベクトル評価値を算出する対象となる画素数が多い。これにより、ノイズ等の擾乱の影響を受けにくく、動体の画像の追跡を、より正確に行うことができる。
また、近傍探索器8は、一次動きベクトルC61の近傍だけでなく、ゼロベクトルの近傍や動きベクトル予測値の近傍、または、上下左右に隣接するブロックまたはマクロブロックの動きベクトルの近傍についても動き探索を行うので、静止する画像や隣接するブロックと同様に動く画像にも対応して、より適切な動きベクトルを選択することができる。
また、近傍探索器8は、限定されたブロックサイズ、例えば横8×縦8画素毎に動きベクトルを生成するので、さまざまなブロックサイズで動き探索を行う必要が無く、動き探索の演算量を削減できる。かつ、ブロック統合器11が、動きベクトルの値に応じてブロックを統合するので、適切なブロックサイズを選択して符号化効率を高めることができる。
さらに、画像特徴量演算器9が、画像が平坦なマクロブロックを検出して、細かいブロックへの分割を抑制するので、画像が平坦な場合にもノイズ等の擾乱の影響を受けにくい。
なお、一次探索器6が一次探索を行う際に用いる参照画像の縮小比率は、上述した縦横2分の1倍に限らず、近傍探索器8が二次探索を行う際に用いる参照画像は、非縮小のものに限らない。例えば、演算量を抑えつつ探索範囲を広げるために、一次探索器6が縦横共に4分の1の縮小比率の参照画像を用いて一次探索を行い、近傍探索器8が非縮小の参照画像を用いて二次探索を行うようにしてもよい。あるいは、一次探索器6が縦横共に4分の1の縮小比率の参照画像を用いて一次探索を行い、近傍探索器8が縦横共に2分の1の縮小比率の参照画像を用いて二次探索を行うようにしてもよい。この場合、一次探索器6は、横4×縦4画素に縮小された、符号化対象マクロブロックの縮小画像C122を用いて探索を行う。
また、一次探索器6が一次探索を行う際に用いる参照画像は、縦横の縮小比率が同一でなくてもよい。例えば、一次探索器6が、縦2分の1、横4分の1に縮小された、横4×縦8画素の縮小画像C122を用いて一次探索を行うようにしてもよい。
また、二次探索の対象は近傍9点に限らない。例えば、近傍探索器8が、一次ベクトル等を中心に±2画素の範囲内の25点について二次探索を行なう、あるいは、0.25画素または0.5画素などの小数精度で二次探索を行うなど、より広い範囲を探索するようにしてもよい。これにより、より適切な動きベクトルの探索が期待できる。
また、一次探索器6や、近傍探索器8が、複数の参照画像の候補を用いるようにしてもよい。例えば、一次探索器6が複数の参照画像の候補に対して一次探索を行い、動きベクトル評価値が最も小さな参照画像と一次動きベクトルとを選択して、近傍探索器8に出力するようにしてもよい。近傍探索器8は、一次探索器6が選択した参照画像(縮小された参照画像)に対応する参照画像(非縮小の参照画像)上で、一次動きベクトルが示す位置を中心とする近傍探索を行い、参照画像を示す情報と二次探索の結果の動きベクトルとをブロック毎に出力する。
さらに、ブロック統合器11がブロックを統合してより大きなブロックにする条件は、隣接するブロックの動きベクトルの値が同一の場合に限らない。例えば、式(2)が成立する場合に、ブロックを統合するようにしてもよい。
Figure 2011130265
ここで、βは閾値であり、例えば、予め定められる定数である。例えばβ=0.25の場合、ブロック統合器11は、隣接するブロックの動きベクトルの差の絶対値が0.25画素以下である場合に、ブロックを統合する。このように、ブロックを統合し易くすることにより、符号化対象の動きベクトルの個数が減少し、符号化効率の向上が期待できる。なお、ブロックを統合する場合、ブロック統合器11は、例えば、統合前の何れかブロックの動きベクトルを統合後のブロックの動きベクトルに決定する。
なお、動きベクトル検出装置100の全部または一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
本発明は、例えば、動画像のディジタル信号をMPEG(Moving Picture Experts Group)方式、あるいは、ITU−T (The International Telecommunication Union Telecommunication Standardization Sector)Hシリーズ方式に従って符号化する映像符号化器など、動き予測を行う映像符号化器において、動きベクトルを出力する動きベクトル検出装置、動きベクトル検出方法およびプログラムに用いて好適である。
1 画像メモリ
2 探索範囲切り出し器
3、12 画像縮小器
4 縮小画像キャッシュメモリ
5 画像キャッシュメモリ
6 一次探索器
7 探索中心指示器
8 近傍探索器
9 画像特徴量演算器
10 動きベクトル選択器
11 ブロック統合器
100 動きベクトル検出装置

Claims (7)

  1. 入力動画像のマクロブロックを分割した第1のブロック毎に、参照画像上で前記第1のブロックに対応する領域の位置を示す動きベクトルを検出する動きベクトル検出装置であって、
    前記マクロブロックに対する一次の動き探索を行って、一次動きベクトルを検出する一次探索器と、
    二次の動き探索を行う範囲の中心座標を示す探索中心座標を出力する探索中心指示器と、
    前記一次動きベクトルが示す座標と前記探索中心座標との座標毎に、かつ前記マクロブロックを分割した第2のブロック毎に、二次の動き探索を行って動きベクトルを検出する近傍探索器と、
    前記近傍探索器が検出した動きベクトルの中から、前記第2のブロック毎に動きベクトルを選択する動きベクトル選択器と、
    前記動きベクトル選択器が選択した動きベクトルに基づいて、前記第2のブロック、または、互いに隣接する前記第2のブロックを結合したブロックを、前記第1のブロックとし、前記第2のブロックの動きベクトルに基づいて前記第1のブロックの動きベクトルを決定するブロック統合器と、
    を具備することを特徴とする動きベクトル検出装置。
  2. 前記探索中心座標は、前記マクロブロックの位置を示すゼロベクトル、または、前記第2のブロックに隣接するブロックの動きベクトルから算出される動きベクトル予測値を含むことを特徴とする請求項1に記載の動きベクトル検出装置。
  3. 前記探索中心座標は、前記マクロブロックの左に隣接する左隣接ブロックの動きベクトル、または、前記マクロブロックの左に隣接する左隣接マクロブロックの前記一次動きベクトル、または、前記マクロブロックの上に隣接する上隣接ブロックの動きベクトル、または、前記マクロブロックの上に隣接する上隣接マクロブロックの前記一次動きベクトルを含むことを特徴とする請求項1または請求項2に記載の動きベクトル検出装置。
  4. 前記探索中心座標は、前記マクロブロックの右に隣接する右隣接マクロブロックの前記一次動きベクトル、または、前記マクロブロックの下に隣接する下隣接マクロブロックの前記一次動きベクトルを含むことを特徴とする請求項1から3のいずれかの項に記載の動きベクトル検出装置。
  5. 前記マクロブロックの画素値に基づいて、画素値のばらつきを示す指標を算出し、前記マクロブロックの画素値のばらつきが小さいか否かを判定する画像特徴量演算器をさらに具備し、
    前記二次探索器は、前記画像特徴量演算器が、前記マクロブロックの画素値のばらつきが小さいと判定した場合は、前記マクロブロックを前記第2のブロックとすることを特徴とする請求項1から4のいずれかの項に記載の動きベクトル検出装置。
  6. 入力動画像のマクロブロックを分割した第1のブロック毎に、参照画像上で前記第1のブロックに対応する領域の位置を示す動きベクトルを検出する動きベクトル検出装置の動きベクトル検出方法であって、
    前記マクロブロックに対する一次の動き探索を行って、一次動きベクトルを検出する一次探索ステップと、
    二次の動き探索を行う範囲の中心座標を示す探索中心座標を出力する探索中心指示ステップと、
    前記一次動きベクトルが示す座標と前記探索中心座標との座標毎に、かつ前記マクロブロックを分割した第2のブロック毎に、二次の動き探索を行って動きベクトルを検出する近傍探索ステップと、
    前記近傍探索ステップにて検出した動きベクトルの中から、前記第2のブロック毎に動きベクトルを選択する動きベクトル選択ステップと、
    前記動きベクトル選択ステップにて選択した動きベクトルに基づいて、前記第2のブロック、または、互いに隣接する前記第2のブロックを結合したブロックを、前記第1のブロックとし、前記第2のブロックの動きベクトルに基づいて前記第1のブロックの動きベクトルを決定するブロック統合ステップと、
    を具備することを特徴とする動きベクトル検出方法。
  7. コンピュータに、入力動画像のマクロブロックを分割した第1のブロック毎に、参照画像上で前記第1のブロックに対応する領域の位置を示す動きベクトルを検出させるためのプログラムであって、
    前記マクロブロックに対する一次の動き探索を行って、一次動きベクトルを検出する一次探索ステップと、
    二次の動き探索を行う範囲の中心座標を示す探索中心座標を出力する探索中心指示ステップと、
    前記一次動きベクトルが示す座標と前記探索中心座標との座標毎に、かつ前記マクロブロックを分割した第2のブロック毎に、二次の動き探索を行って動きベクトルを検出する近傍探索ステップと、
    前記近傍探索ステップにて検出した動きベクトルの中から、前記第2のブロック毎に動きベクトルを選択する動きベクトル選択ステップと、
    前記動きベクトル選択ステップにて選択した動きベクトルに基づいて、前記第2のブロック、または、互いに隣接する前記第2のブロックを結合したブロックを、前記第1のブロックとし、前記第2のブロックの動きベクトルに基づいて前記第1のブロックの動きベクトルを決定するブロック統合ステップと、
    を前記コンピュータに実行させるためのプログラム。
JP2009287854A 2009-12-18 2009-12-18 動きベクトル検出装置、動きベクトル検出方法およびプログラム Active JP5185244B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009287854A JP5185244B2 (ja) 2009-12-18 2009-12-18 動きベクトル検出装置、動きベクトル検出方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009287854A JP5185244B2 (ja) 2009-12-18 2009-12-18 動きベクトル検出装置、動きベクトル検出方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2011130265A true JP2011130265A (ja) 2011-06-30
JP5185244B2 JP5185244B2 (ja) 2013-04-17

Family

ID=44292341

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009287854A Active JP5185244B2 (ja) 2009-12-18 2009-12-18 動きベクトル検出装置、動きベクトル検出方法およびプログラム

Country Status (1)

Country Link
JP (1) JP5185244B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015107887A1 (ja) * 2014-01-15 2015-07-23 日本電気株式会社 動きベクトル探索装置、動きベクトル探索方法、及び動きベクトル探索プログラムを記憶する記録媒体
WO2016031253A1 (ja) * 2014-08-28 2016-03-03 日本電気株式会社 ブロックサイズ決定方法及びプログラム記録媒体
WO2017094216A1 (ja) * 2015-12-04 2017-06-08 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 画像復号方法、画像符号化方法、画像復号装置、画像符号化装置、及び画像符号化復号装置
WO2017138417A1 (ja) * 2016-02-08 2017-08-17 シャープ株式会社 動きベクトル生成装置、予測画像生成装置、動画像復号装置、および動画像符号化装置。

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0846968A (ja) * 1994-08-03 1996-02-16 Nippon Telegr & Teleph Corp <Ntt> 階層的動ベクトル検出方法および装置
JPH08265773A (ja) * 1995-03-24 1996-10-11 Graphics Commun Lab:Kk 階層型動きベクトル検出方法及びその装置
JP2000270329A (ja) * 1999-03-17 2000-09-29 Sanyo Electric Co Ltd オブジェクト指向符号化における領域分割方法および領域分割装置
JP2001078197A (ja) * 1999-09-03 2001-03-23 Canon Inc 画像符号化装置、画像符号化方法及び記憶媒体
JP2004129099A (ja) * 2002-10-07 2004-04-22 Nec Corp 動きベクトル探索方法および装置
JP2005167721A (ja) * 2003-12-03 2005-06-23 Sony Corp データ処理装置およびその方法と符号化装置
JP2006115312A (ja) * 2004-10-15 2006-04-27 Mie Tlo Co Ltd 動き検出装置及び動き検出方法
JP2007158855A (ja) * 2005-12-06 2007-06-21 Matsushita Electric Ind Co Ltd 動きベクトル検出装置および動きベクトル検出方法
JP2008141616A (ja) * 2006-12-04 2008-06-19 Fujifilm Corp 動きベクトル算出装置、方法およびプログラム、動画像圧縮記録装置ならびに撮像装置
JP2008219141A (ja) * 2007-02-28 2008-09-18 Sanyo Electric Co Ltd 動きベクトル検出装置、それを用いた画像符号化装置および撮像装置
JP2009021864A (ja) * 2007-07-12 2009-01-29 Canon Inc 動きベクトル探索装置

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0846968A (ja) * 1994-08-03 1996-02-16 Nippon Telegr & Teleph Corp <Ntt> 階層的動ベクトル検出方法および装置
JPH08265773A (ja) * 1995-03-24 1996-10-11 Graphics Commun Lab:Kk 階層型動きベクトル検出方法及びその装置
JP2000270329A (ja) * 1999-03-17 2000-09-29 Sanyo Electric Co Ltd オブジェクト指向符号化における領域分割方法および領域分割装置
JP2001078197A (ja) * 1999-09-03 2001-03-23 Canon Inc 画像符号化装置、画像符号化方法及び記憶媒体
JP2004129099A (ja) * 2002-10-07 2004-04-22 Nec Corp 動きベクトル探索方法および装置
JP2005167721A (ja) * 2003-12-03 2005-06-23 Sony Corp データ処理装置およびその方法と符号化装置
JP2006115312A (ja) * 2004-10-15 2006-04-27 Mie Tlo Co Ltd 動き検出装置及び動き検出方法
JP2007158855A (ja) * 2005-12-06 2007-06-21 Matsushita Electric Ind Co Ltd 動きベクトル検出装置および動きベクトル検出方法
JP2008141616A (ja) * 2006-12-04 2008-06-19 Fujifilm Corp 動きベクトル算出装置、方法およびプログラム、動画像圧縮記録装置ならびに撮像装置
JP2008219141A (ja) * 2007-02-28 2008-09-18 Sanyo Electric Co Ltd 動きベクトル検出装置、それを用いた画像符号化装置および撮像装置
JP2009021864A (ja) * 2007-07-12 2009-01-29 Canon Inc 動きベクトル探索装置

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015107887A1 (ja) * 2014-01-15 2015-07-23 日本電気株式会社 動きベクトル探索装置、動きベクトル探索方法、及び動きベクトル探索プログラムを記憶する記録媒体
JPWO2015107887A1 (ja) * 2014-01-15 2017-03-23 日本電気株式会社 動きベクトル探索装置、動きベクトル探索方法、及び動きベクトル探索プログラムを記憶する記録媒体
US10349071B2 (en) 2014-01-15 2019-07-09 Nec Corporation Motion vector searching apparatus, motion vector searching method, and storage medium storing motion vector searching program
WO2016031253A1 (ja) * 2014-08-28 2016-03-03 日本電気株式会社 ブロックサイズ決定方法及びプログラム記録媒体
JPWO2016031253A1 (ja) * 2014-08-28 2017-06-15 日本電気株式会社 ブロックサイズ決定方法及びプログラム
US10356403B2 (en) 2014-08-28 2019-07-16 Nec Corporation Hierarchial video code block merging using depth-dependent threshold for block merger
WO2017094216A1 (ja) * 2015-12-04 2017-06-08 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 画像復号方法、画像符号化方法、画像復号装置、画像符号化装置、及び画像符号化復号装置
WO2017138417A1 (ja) * 2016-02-08 2017-08-17 シャープ株式会社 動きベクトル生成装置、予測画像生成装置、動画像復号装置、および動画像符号化装置。
US11153600B2 (en) 2016-02-08 2021-10-19 Sharp Kabushiki Kaisha Motion vector generation device, prediction image generation device, video decoding device, and video coding device
US11722690B2 (en) 2016-02-08 2023-08-08 Sharp Kabushiki Kaisha Motion vector generation device, a prediction image generation device, a video decoding device and a video coding device
US11979602B2 (en) 2016-02-08 2024-05-07 Sharp Kabushiki Kaisha Motion vector generation device, a prediction image generation device, a video decoding device and a video coding device

Also Published As

Publication number Publication date
JP5185244B2 (ja) 2013-04-17

Similar Documents

Publication Publication Date Title
CN110809887B (zh) 用于多参考预测的运动矢量修正的方法和装置
KR102103682B1 (ko) 화상 부호화 장치, 화상 부호화 방법, 화상 부호화 프로그램, 화상 복호 장치, 화상 복호 방법 및 화상 복호 프로그램
RU2679981C2 (ru) Основанные на хешах решения кодера для кодирования видео
US8009923B2 (en) Method and system for motion estimation with multiple vector candidates
TW201904284A (zh) 用於視訊編解碼的子預測單元時間運動向量預測
JP4166781B2 (ja) 動きベクトル検出装置および動きベクトル検出方法
JP5216710B2 (ja) 復号化処理方法
JP2002532026A (ja) 動き推定とブロックマッチング・パターンの改良
CA2788952A1 (en) Motion vector predictive encoding method, motion vector predictive decoding method, moving picture encoding apparatus, moving picture decoding apparatus, and programs thereof
TW201230820A (en) Predictive image coding device, predictive image coding method, predictive image coding program, predictive image decoding device, predictive image decoding method, and predictive image decoding program
JP5185244B2 (ja) 動きベクトル検出装置、動きベクトル検出方法およびプログラム
CN113709458B (zh) 视频编解码中的位移矢量预测方法、装置及设备
JP6135750B2 (ja) 画像符号化装置、画像符号化方法、及び画像符号化プログラム、並びに、送信装置、送信方法、及び送信プログラム
JP5678924B2 (ja) 画像復号装置、画像復号方法、及び画像復号プログラム、並びに、受信装置、受信方法、及び受信プログラム
JP5286573B2 (ja) 動きベクトル検出装置、動きベクトル検出方法およびプログラム
CN114040209A (zh) 运动估计方法、装置、电子设备及存储介质
US11528485B2 (en) Encoding apparatus and program
JP2014007488A (ja) 動画像符号化装置、動画像符号化方法、及びプログラム
US10129543B2 (en) Image compressing device and image compressing method
JP4032049B2 (ja) 動きベクトル検出方法及びその装置
JP2008236096A (ja) 動き探索方法、動き探索装置、動き探索プログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2006254347A (ja) 画像符号化装置
JP2006033433A (ja) 動き推定方法及び動き推定装置、並びにプログラム
JP2008072608A (ja) 画像符号化装置及び画像符号化方法
JP5754120B2 (ja) 動きベクトル検出装置、動きベクトル検出方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120926

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121002

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121130

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130117

R151 Written notification of patent or utility model registration

Ref document number: 5185244

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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

Free format text: PAYMENT UNTIL: 20160125

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350