(58)【調査した分野】(Int.Cl.,DB名)
前記予測動きベクトルから前記現在のブロックを符号化するステップは、前記現在のブロックBcに関連付けられた現在の動きベクトルと前記予測動きベクトルとから計算された動きベクトル差分を決定するステップと、前記動きベクトル差分を符号化するステップと、を含む、請求項1に記載の方法。
少なくとも2つの候補動きベクトルが決定され、前記補正動きベクトルを決定するステップは、前記少なくとも2つの候補動きベクトルの各々に対して補正動きベクトルを決定するステップを含み、前記予測動きベクトルを決定するステップは、前記補正動きベクトルの各々によって修正された前記候補動きベクトルを単一の予測動きベクトルに統合することを含む、請求項1〜7のいずれか1項に記載の方法。
【発明を実施するための形態】
【0021】
画像シーケンスは、幾つかの、一連のピクチャの画像である。各画像は、各々が少なくとも1つの画像データに関連付けられている、複数の画素または、画像ポイントからなる。例えば、1つの画像データは、1つの輝度データ、または、1つの色差データである。
【0022】
用語「動きデータ」は、広い意味で理解されるべきである。動きデータは、動きベクトルを含み、画像シーケンスにおいて参照画像が識別できるようにする参照画像インデックスを含むことがある。さらに、動きデータは、予測ブロックを決定するために使用される補間タイプを示す1つの情報を含むことがある。実際、ブロックBcに関連付けられた動きベクトルMVcが整数座標を有していない場合には、画像データは、予測ブロックBpを決定するために、参照画像Irefにおいて補間されなければならない。ブロックに関連付けられた動きデータは、一般的には、動き推定方法、例えば、ブロック・ペアリングによって計算される。しかしながら、本発明は、動きベクトルがブロックに関連付けられるようにする方法に決して限定されるものではない。
【0023】
用語「残差データ」は、他のデータの抽出後に得られるデータを意味する。抽出は、一般的には、ソース・データから予測データを画素毎に減算することである。しかしながら、抽出は、より一般的な用語であり、特に、重み付け減算を含む。この用語「残差データ」は、用語「残差」と同義である。残差ブロックは、残差データが関連付けられた画素のブロックである。
【0024】
用語「変換された残差データ」は、変換が適用された残差データを意味する。離散コサイン変換(DCT)は、2003年9月にJ.Wiley&Son社によって出版されたI.E. Richardson氏の「H.264およびMPEG−4ビデオ圧縮(H.264 and MPEG−4 video compression)」と題された書籍のチャプタ3.4.2.2に記載されたこのような変換の例である。I.E. Richardson氏の書籍のチャプタ3.4.2.3に記載されたウェーブレット変換およびアダマール(Hadamard)変換は、別の例である。このような変換は、画像データのブロック、例えば残差輝度および/または色差のデータを「周波数データのブロック」または「係数のブロック」とも呼ばれる「変換されたデータのブロック」に「変換」する。
【0025】
用語「予測データ」は、他のデータを予測するために使用されるデータを意味する。予測ブロックは、予測データが関連付けられている画素のブロックである。
【0026】
予測ブロックは、予測するブロックが属する画像と同じ画像の1つのブロックまたは、幾つかのブロックから得られる(空間予測または画像内予測)。もしくは、予測ブロックは、予測するブロックが属する画像とは異なる画像の1つのブロック(一方向予測)または幾つかのブロック(双方向予測)から得られる(時間予測または画像間予測)。
【0027】
用語「再構成されたデータ」は、残差データを予測データと統合した後に得られるデータを意味する。この統合は、一般的には、予測データと残差データの画素毎の和である。しかしながら、統合は、より一般的なものであり、特に、重み付けされた和を含む。再構成されたブロックは、再構成された画像データが関連付けられた画素のブロックである。
【0028】
図3を参照するに、本発明は、画像シーケンスの現在のブロックを符号化する方法に関する。
【0029】
ステップ20において、座標(vx,vy)の候補動きベクトルMV
ctが現在のブロックBcに対して空間的に近傍のブロックに関連付けられた複数の動きベクトルのうちから決定される。この現在のブロックBcは、画像Icに属する。例えば、候補ベクトルMV
ctは、
図1に示されているような、現在のブロックBcに隣接するブロックA、B、および/またはCの動きベクトルのうちの1つとして決定される。変形例によれば、候補動きベクトルMV
ctは、ブロックBcに対して空間的に近傍にあるブロックの動きベクトルとして決定されるが、この動きベクトルは、必ずしもブロックBcに隣接するブロックのものでなくともよい。決定された候補動きベクトルMV
ctが関連付けられた現在のブロックBcに対して近傍のブロックをBvと呼ぶ。デフォルトで保持されている動きベクトルは、例えば、現在のブロックBcの左側に位置する近傍のブロックに関連付けられた動きベクトルである。変形例によれば、デフォルトで保持されている動きベクトルは、例えば、
図4に示されているように、現在のブロックBcの上側に位置する近傍のブロックに関連付けられた動きベクトルである。
【0030】
ステップ22において、座標(dx,dy)の補正動きベクトルΔMVが決定される。補正動きベクトルΔMVは、歪みを最小する手法によって決定される。この歪は、
【数1】
で示される、連続的に符号化され、再構成された近傍のブロックと、補正動きベクトルΔMVによって修正された候補動きベクトルMV
ctによって動き補償された予測ブロックとの間で計算される。その予測ブロックは、参照画像I
refに属する。例えば、以下の関数が使用される。
【数2】
ここで、
【数3】
は、MV
ct+ΔMVによって動き補償された予測ブロックである。
【数4】
は、画像Icにおける画素(x,y)の符号化され、再構成された1つの画像データの値である。
【数5】
は、参照画像の画素(x,y)の符号化され、再構成された1つの画像データの値である。
【0031】
変形例によれば、
【数6】
である。別の変形例によれば、
【数7】
である。
【0032】
ステップ22において、このようにE(.,.)を最小にする動きベクトルΔMVがサーチされる。例えば、想定される値(dx,dy)の各々について、E(dx,dy)の値が計算され、E(dx,dy)の値が最小となる値(dx,dy)が保持される。
【0033】
ステップ22の変形例によれば、補正動きベクトルΔMVは、座標dxおよびdyの各々の値の範囲の大きさが第1の閾値a
enhよりも小さいという追加の制約においてE(.,.)を最小にするものであり、ここで、a
enhは、動き補償のために認められた精度である。例えば、動きベクトルが1/4の画素の精度で符号化され、復号される場合には、a
enh=1/8である。この変形例は、補正動きベクトルΔMVの決定のための計算の演算量を制限することを可能とする。実際、この変形例によれば、ΔMVは、候補ベクトルMV
ctの周りの限定された間隔でのみサーチされる。この間隔は、水平方向の成分および垂直方向の成分について、[−a
cod+a
enh,a
cod−a
enh]のように規定される。計算がより網羅的であり、より計算コストが大きな場合では、サーチは、[−R,R]のように規定されるより大きな間隔で行うことができ、サーチ範囲はR>a
enhで表される。例えば、R=2.25の値を使用することができる。この後者の場合には、補正動きベクトルΔMVの座標は、精度a
enhで、候補ベクトルM
ctの周りの間隔[−R,R]でサーチされる。
【0034】
ステップ24において、予測動きベクトルMVpは、補正動きベクトルΔMVによって修正される候補動きベクトルMV
ctから決定される。
MVp=MV
ct+ΔMV
【0035】
ステップ26において、現在のブロックBcが予測動きベクトルMVpを考慮して符号化される。ブロックBcについて、現在のブロックBcから予測ブロックBpおよび動きベクトル差分MVdiffを減算することによって得られた残差データを符号化することが知られている。MVcおよびMVpから計算される動きベクトル差分MVdiffは、ストリームFにおいて符号化される。MVdiffは、座標(MVx−MVpx;MVy−MVpy)を有し、ここで、Mvcの座標は(MVx;MVy)であり、MVpの座標は(MVpx;MVpy)である。一般的に、残差データは、変換され、次に、量子化される。変換され次に量子化された残差データおよび動きベクトル差分MVdiffは、可変長符号化(VLC)のタイプのエントロピー符号化、または、コンテクスト適応2値算術符号化(Context−Adaptive Binary Arithmetic Coding(CABAC))のタイプの符号化によって符号化され、符号化されたデータとなる。MVdiffに認められた最大の符号化精度は、a
codである。エントロピー符号化方法の例は、I.E. Richardson氏による書籍のチャプタ6.5.4、さらに、「情報技術−オーディオビジュアル・オブジェクトの符号化−Part 10:アドバンスドビデオ符号化(Information technology − Coding of audio−visual objects Part 10: Advanced Video Coding)」と題されたISO/IEC 14496−10の文献のセクション9.3に記載されている。別の変形例によれば、コンテクストベースの適応可変長符号化(Context−based Adaptive Variable Lengh Coding(CAVLC))のタイプの方法を使用することができる。これは、「情報技術−オーディオビジュアル・オブジェクトの符号化−Part 10:アドバンスドビデオ符号化(Information technology − Coding of audio−visual objects Part 10: Advanced Video Coding)」と題されたISO/IEC 14496−10の文献のセクション9.2、さらに、I.E. Richardson氏の書籍のチャプタ6.4.13.2に記載されているようなものである。
【0036】
変形例によれば、SKIP符号化モードに従って現在のブロックBcが符号化される。この場合、現在のブロックBcについて、ストリームFにおいて号化される残差データや動きデータは存在しない。実際、ステップ24において決定される予測動きベクトルMVpから予測ブロックが決定され、この予測ブロックを現在のブロックから抽出することによって得られる残差ブロックの係数の全てが零である場合、現在のブロックBcを符号化するために「skip」符号化モードが保持される。
【0037】
図5に示された第1の実施形態の変形例によれば、候補動きベクトルMV
ctを決定するステップ20は、少なくとも2つの候補動きベクトルを決定するステップ200と、ステップ200において決定された複数の候補動きベクトルを統合して統合された動きベクトルにするステップ202と、統合された動きベクトルに従ってステップ200において決定された動きベクトルのうちから候補動きベクトルMV
ctを選択するステップ204と、を含む。
図5において、
図3のステップと同じステップを同じ参照符号を用いて特定し、さらなる説明を行わない。
【0038】
ステップ200において、現在のブロックBcに対して空間的に近傍のブロックに関連付けられた動きベクトルのうちから少なくとも2つの候補動きベクトルMV
ct1およびMV
ct2が決定される。例えば、候補動きベクトルMV
ct1およびMV
ct2は、
図1に示されているような、現在のブロックBcに隣接するブロックA、B、および/またはCの動きベクトルとして決定される。変形例によれば、候補動きベクトルMV
ct1およびMV
ct2は、ブロックBcに対して空間的に近傍にあるブロックの動きベクトルとして決定され、ここで、これらの動きベクトルは、必ずしもブロックBcに隣接するブロックのものでなくともよい。候補動きベクトルMV
ct1が関連付けられた現在のブロックBcに対して近傍のブロックをBv1と呼び、候補動きベクトルMV
ct2が関連付けられた現在のブロックBc
に対して近傍のブロックをBv2と呼ぶ。候補動きベクトルMVc
t1の座標は(vx1,vy1)であり、候補動きベクトルMVc
t2の座標は(vx2,vy2)である。
【0039】
ステップ202において、ステップ200で決定される各候補動きベクトルは、座標(MV
fus(x),MV
fus(y))の単一の動きベクトルMV
fusに統合される。例えば、MV
fus(x)=median(vx1,vx2,0)であり、MV
fus(y)=median(vy1,vy2,0)である。変形例によれば、MV
fus(x)=0.5×(vx1+vx2)であり、MV
fus(y)=0.5×(vy1+vy2)である。
【0040】
ステップ204において、特定の基準において、MV
fusに対して最も近い、ステップ200において決定される候補動きベクトルが、候補動きベクトルMV
ctとして選択される。例えば、||MV
ct2−MV
fus||<||MV
ct1−MV
fus||であれば、MV
ct=MV
ct2であり、そうでなければ、MV
ct=MV
ct1である。この基準は、例えば、基準L2である。この基準は、絶対値であってもよい。
【0041】
2つの候補動きベクトルMV
ct1およびMV
ct2を用いて説明されるこの変形例は、どのような数の動きベクトルにも同じように適用することができる。
【0042】
第2の実施形態が
図6に示されている。
【0043】
ステップ30において、現在のブロックBcに対して空間的に近傍にあるブロックに関連付けられた動きベクトルのうちから少なくとも2つの候補動きベクトルMV
ct1およびMV
ct2が決定される。例えば、候補動きベクトルMV
ct1およびMV
ct2は、
図1に示されているような、現在のブロックBcに隣接するブロックA、B、および/またはCの動きベクトルとして決定される。変形例によれば、候補動きベクトルMV
ct1およびMV
ct2は、ブロックBcに対して空間的に近傍にあるブロックの動きベクトルとして決定されるが、この動きベクトルは、必ずしもブロックBcに隣接するブロックのものでなくともよい。候補動きベクトルMV
ct1に関連付けられた現在のブロックBcに対して近傍のブロックをBv1と呼び、候補動きベクトルMV
ct2に関連付けられた現在のブロックBc
に対して近傍のブロックをBv2と呼ぶ。
【0044】
ステップ32において、候補動きベクトルMV
ct1について、座標(dx1,dy1)の補正動きベクトルΔMV1が決定され、候補動きベクトルMV
ct2について、座標(dx2,dy2)の補正動きベクトルΔMV2が決定される。動きベクトルΔMV1は、連続的に符号化され、再構成された候補動きベクトルMV
ct1に関連付けられた近傍のブロックと補正動きベクトルΔMV1によって修正された候補動きベクトルMV
ct1によって動き補償された予測ブロックとの間で計算された歪みが最小になるように決定される。同様に、動きベクトルΔMV2は、連続的に符号化され、再構成された候補動きベクトルMV
ct2に関連付けられた近傍のブロックと補正動きベクトルΔMV2によって修正された候補動きベクトルMV
ct2によって動き補償された予測ブロックとの間で計算された歪みが最小になるように決定される。例えば、以下の関数が使用される。
【数8】
【0045】
変形例によれば、
【数9】
であり、
【数10】
である。別の変形例によれば、
【数11】
であり、
【数12】
である。
【0046】
ステップ32において、このようにE1(.,.)を最小にするΔMV1がサーチされ、E2(.,.)を最小にするΔMV2がサーチされる。例えば、想定される値(dx1,dy1)の各々について、E1(dx1,dy1)の値が計算され、E1(dx1,dy1)の値が最小となる値(dx1,dy1)が保持される。同様に、想定される値(dx2,dy2)の各々について、E2(dx2,dy2)の値が計算され、E2(dx2,dy2)の値が最小となる値(dx2,dy2)が保持される。
【0047】
ステップ32の変形例によれば、補正動きベクトルΔMV1およびΔMV2は、各々の、または、これらの座標dx1、dx2、dy1、およびdy2の値の範囲の大きさがa
enhよりも小さいという追加の制約を有してE1(.,.)およびE2(.,.)をそれぞれ最小にするものであり、ここで、a
enhは、動き補償のために認められた精度である。例えば、動きベクトルが1/4の画素の精度で符号化され、復号される場合には、a
enh=1/8である。この変形例は、補正動きベクトルΔMV1およびΔMV2の決定のための計算の演算量を制限することを可能にする。実際、この変形例によれば、ΔMV1およびΔMV2は、候補ベクトルMV
ctおよびMV
ct2のそれぞれの周りの限定された間隔においてのみサーチされる。この間隔は、水平方向の成分および垂直方向の成分のそれぞれについて、[−a
cod+a
enh,a
cod−a
enh]のように規定される。計算がより網羅的であり、より計算コストが大きな場合では、サーチは、[−R,R]のように規定されるより大きな間隔で行うことができ、サーチ範囲はR>a
enhで表される。例えば、R=2の値を使用することができる。この後者の場合では、補正動きベクトルの座標は、a
enhの精度で、候補ベクトルの周りで、間隔[−R,R]内でサーチされる。
【0048】
ステップ34において、予測動きベクトルMVpは、補正動きベクトルΔMV1およびMV2によってそれぞれ修正された候補動きベクトルMV
ct1およびMV
ct2を統合することによって決定される。例えば、MVpx=median(vx1+dx1,vx2+dx2,0)であり、MVpy=median(vy1+dy1,vy2+dy2,0)である。変形例によれば、MVpx=min(vx1+dx1,vx2+dx2,0)であり、MVpy=min(vy1+dy1,vy2+dy2,0)である。別の変形例によれば、MVpx=0.5×(vx1+dx1+vx2+dx2)であり、MVpy=0.5×(vy1+dy1+vy2+dy2)である。
【0049】
ステップ36において、現在のブロックBcは、予測動きベクトルMVpを考慮して符号化される。ブロックBcについて、現在のブロックBcから予測ブロックBpおよび動きベクトル差分MVdiffを減算することによって得られた残差データを符号化することが知られている。MVcおよびMVpから計算される動きベクトル差分MVdiffは、ストリームFにおいて符号化される。MVdiffは、座標(MVx−MVpx; MVy−MVpy)を有し、ここで、Mvcの座標は(MVx;MVy)であり、MVpの座標は(MVpx;MVpy)である。一般的に、残差データは、変換され、次に、量子化される。変換され次に量子化された残差データおよび動きベクトル差分MVdiffは、可変長符号化(VLC)タイプのエントロピー符号化、または、コンテクスト適応2値算術符号化(CABAC)タイプの符号化によって符号化され、符号化されたデータとなる。MVdiffのために認められる最大の符号化精度はa
codである。エントロピー符号化方法の例は、I.E. Richardson氏による書籍のチャプタ6.5.4、さらに、「情報技術−オーディオビジュアル・オブジェクトの符号化−Part 10:アドバンスドビデオ符号化(Information technology − Coding of audio−visual objects Part 10: Advanced Video Coding)」と題されたISO/IEC 14496−10の文献のセクション9.3に記載されている。別の変形例によれば、コンテクストベースの適応可変長符号化(CAVLC)のタイプの方法を使用することができる。これは、「情報技術−オーディオビジュアル・オブジェクトの符号化−Part 10:アドバンスドビデオ符号化(Information technology − Coding of audio−visual objects Part 10: Advanced Video Coding)」と題されたISO/IEC 14496−10の文献のセクション9.2、さらに、I.E. Richardson氏の書籍のチャプタ6.4.13.2に記載されているようなものである。
【0050】
変形例によれば、SKIP符号化モードに従って現在のブロックBcが符号化される。この場合、現在のブロックBcについて、ストリームFにおいて符号化される残差データや動きデータは存在しない。実際、ステップ24において決定される予測動きベクトルMVpから予測ブロックが決定され、この予測ブロックを現在のブロックから抽出することによって得られる残差ブロックの係数の全てが零である場合、現在のブロックBcを符号化するために「skip」符号化モードが保持される。
【0051】
2つの候補動きベクトルMV
ct1およびMV
ct2を用いて
図5を参照して実施形態を説明しているが、実施形態は、どのような数の候補動きベクトルに適用することもできる。この場合、ステップ32において、各候補動きベクトルについて、補正動きベクトルが決定される。ステップ34において、予測動きベクトルMVpがこれらの各々の補正動きベクトルによって修正された候補動きベクトルから決定される。
【0052】
図7を参照するに、本発明は、さらに、画像シーケンスの現在のブロックを再構成する方法に関する。
【0053】
ステップ52において、座標(vx,vy)の候補動きベクトルMV
ctが現在のブロックBcに対して空間的に近傍のブロックに関連付けられた動きベクトルのうちから決定される。例えば、候補ベクトルMV
ctは、
図1に示されているような、現在のブロックBcに隣接するブロックA、B、および/またはCの動きベクトルのうちの1つとして決定される。変形例によれば、候補動きベクトルMV
ctは、ブロックBcに対して空間的に近傍にあるブロックの動きベクトルとして決定されるが、この動きベクトルは、必ずしもブロックBcに隣接するブロックのものでなくともよい。決定された候補動きベクトルMV
ctに関連付けられた現在のブロックBcの近傍のブロックをBvと呼ぶ。デフォルトで保持される動きベクトルは、例えば、現在のベクトルBcの左側に位置する近傍のブロックに関連付けられた動きベクトルである。変形例によれば、デフォルトで保持される動きベクトルは、例えば、
図4に示されているような現在のベクトルBcの上側に位置する近傍のブロックに関連付けられた動きベクトルである。ステップ52は、符号化方法のステップ20と同一である。
【0054】
ステップ54において、座標(dx,dy)の補正動きベクトルΔMVが決定される。補正動きベクトルΔMVは、歪みを最小する手法によって決定される。この歪は、
【数13】
で示される、
連続的に符号化され、再構成された近傍のブロックと、補正動きベクトルΔMVによって修正された候補動きベクトルMV
ctによって動き補償された予測ブロックとの間で計算される。予測ブロックは、参照画像I
refに属する。例えば、以下の関数が使用される。
【数14】
ここで、
【数15】
は、MV
ct+ΔMVによって動き補償された予測ブロックである。
【数16】
は、画像Icにおける画素(x,y)の符号化され、再構成された1つの画像データの値である
【数17】
は、参照画像の画素(x,y)の符号化され、再構成された1つの画像データの値である。
【0055】
変形例によれば、
【数18】
である。別の変形例によれば、
【数19】
である。
【0056】
ステップ54において、このようにE(.,.)を最小にする動きベクトルΔMVがサーチされる。例えば、想定される値(dx,dy)の各々について、E(dx,dy)の値が計算され、E(dx,dy)の値が最小となる値(dx,dy)が保持される。ステップ54は、符号化方法のステップ22と同じである。
【0057】
ステップ54の変形例によれば、補正動きベクトルΔMVは、座標dxおよびdyの各々の値の範囲の大きさが第1の閾値a
enhよりも小さいという追加の制約を有してE(.,.)を最小にするものであり、ここで、a
enhは、動き補償のために認められた精度である。例えば、動きベクトルが1/4の画素の精度で符号化され、復号される場合には、a
enh=1/8である。この変形例は、補正動きベクトルΔMVの決定のための計算の演算量を制限することを可能とする。実際、この変形例によれば、ΔMVは、候補ベクトルMV
ctの周りの限定された間隔でのみサーチされる。この間隔は、水平方向の成分および垂直方向の成分について、[−a
cod+a
enh,a
cod−a
enh]のように規定される。計算がより網羅的であり、より計算コストが大きな場合では、サーチは、[−R,R]のように規定されるより大きな間隔で行うことができ、サーチ範囲はR>a
enhで表される。例えば、R=2の値を使用することができる。この後者の場合には、補正動きベクトルΔMVの座標は、精度a
enhで、候補ベクトルM
ctの周りの間隔[−R,R]でサーチされる。
【0058】
ステップ56において、予測動きベクトルMVpが補正動きベクトルΔMVによって修正される候補動きベクトルMV
ctから決定される。
MVp=MV
ct+ΔMV
ステップ56は、符号化方法のステップ24と同一である。
【0059】
ステップ58において、予測動きベクトルMVpを考慮して現在の動きブロックBcが再構成される。より具体的には、変換/量子化された残差データおよび動きベクトル差分MVdiffは、可変長符号化(VLC)のタイプのエントロピー符号化、または、コンテクスト適応2値算術符号化(CABAC)のタイプの符号化によって、ストリームFから復号される。変換/量子化された残差データは、逆量子化され、次に、逆変換によって、符号化方法のステップ26において使用されたものに変換される。現在のブロックBcの動きベクトルMVcは、動きベクトル差分MVdiffおよびステップ56において決定された予測動きベクトルMVpから再構成される。MVcは、座標(MVdiffx+MVpx;MVdiffy+MVpy)を有し、ここで、MVdiffの座標は、(MVdiffx;MVdiffy)であり、MVpの座標は、(MVpx;MVpy)である。予測ブロックは、動きベクトルMVcから再構成された参照画像において決定され、動きベクトルMVcによって動き補償された予測ブロックに関連する。予測ブロックは、次に、例えば、画素毎の加算により、現在のブロックについて、ストリームFから再構成された残差データのブロックに統合される。
【0060】
変形例によれば、現在のブロックBcは、SKIP符号化モードに従って再構成される。この場合、現在のブロックBcについて、ストリームFにおいて符号化された残差データや動きデータは存在しない。この場合、再構成されるブロックBcは、ステップ56において決定された予測動きベクトルMVpによって動き補償された予測ブロックである。
【0061】
図8に示されている変形例によれば、候補動きベクトルMV
ctを決定するステップ52は、少なくとも2つの動きベクトルを決定するステップ520と、ステップ520において決定された候補動きベクトルを統合して統合された動きベクトルにするステップ522と、統合された動きベクトルに従ってステップ520において決定された動きベクトルのうちから候補動きベクトルMV
ctを選択するステップ524と、を含む。ステップ520は、
図5のステップ200と同一であり、ステップ522は、
図5のステップ202と同一であり、ステップ524は、
図5のステップ204と同一である。
【0063】
ステップ62において、現在のブロックBcに対して空間的に近傍のブロックに関連付けられた動きベクトルのうちから少なくとも2つの候補動きベクトルMV
ct1およびMV
ct2が決定される。例えば、候補ベクトルMV
ct1およびMV
ct2は、
図1に示されているような、現在のブロックBcに隣接するブロックA、B、および/またはCとして決定される。変形例によれば、候補動きベクトルMV
ct1およびMV
ct2は、ブロックBcに対して空間的に近傍にあるブロックの動きベクトルとして決定されるが、この動きベクトルは、必ずしもブロックBcに隣接するブロックのものでなくともよい。候補動きベクトルMV
ct1が関連付けられた現在のブロックBcに対して近傍のブロックをBv1と呼び、候補動きベクトルMV
ct2が関連付けられた現在のブロックBcをBv2と呼ぶ。このステップ62は、
図6のステップ30と同一である。
【0064】
ステップ64において、候補ベクトルMV
ct1について、座標(dx1,dy1)の補正動きベクトルΔMV1が決定され、候補動きベクトルMV
ct2について、座標(dx2,dy2)の補正動きベクトルΔMV2が決定される。補正動きベクトルΔMV1は、連続的に符号化され、再構成された候補動きベクトルMV
ct1に関連付けられた近傍のブロックと、補正動きベクトルΔMV1によって修正された候補動きベクトルMV
ct1によって動き補償された予測ブロックとの間で計算された歪みが最小になるように決定される。同様に、補正動きベクトルΔMV2は、連続的に符号化され、再構成された候補動きベクトルMV
ct2に関連付けられた近傍のブロックと、補正動きベクトルΔMV2によって修正された候補動きベクトルMV
ct2によって動き補償された予測ブロックとの間で計算された歪みが最小になるように決定される。例えば、以下の関数が使用される。
【数20】
【0065】
変形例によれば、
【数21】
であり、
【数22】
である。別の変形例によれば、
【数23】
であり、
【数24】
である。
【0066】
ステップ64において、このようにE1(.,.)を最小にするΔMV1がサーチされ、E2(.,.)を最小にするΔMV2がサーチされる。例えば、想定される値(dx1,dy1)の各々について、E1(dx1,dy1)の値が計算され、E1(dx1,dy1)の値が最小となる値(dx1,dy1)が保持される。同様に、想定される値(dx2,dy2)の各々について、E2(dx2,dy2)の値が計算され、E2(dx2,dy2)の値が最小となる値(dx2,dy2)が保持される。このステップ64は、
図6のステップ32と同じである。
【0067】
ステップ64の変形例によれば、補正動きベクトルΔMV1およびΔMV2は、各々の、または、これらの座標dx1、dx2、dy1、およびdy2の値の範囲の大きさがa
enhよりも小さいという追加の制約を有してE1(.,.)およびE2(.,.)をそれぞれ最小にするものであり、ここで、a
enhは、動き補償のために認められた精度である。例えば、動きベクトルが1/4の画素の精度で符号化され、復号される場合には、a
enh=1/8である。この変形例は、補正動きベクトルΔMV1およびΔMV2の決定のための計算の演算量を制限することを可能とする。実際、この変形例によれば、ΔMV1およびΔMV2は、候補ベクトルMV
ctおよびMV
ct2のそれぞれの周りの限定された間隔でのみサーチされる。この間隔は、水平方向の成分および垂直方向の成分について、[−a
cod+a
enh,a
cod−a
enh]のように規定される。計算がより網羅的であり、より計算コストが大きな場合では、サーチは、[−R,R]のように規定されるより大きな間隔で行うことができ、サーチ範囲はR>a
enhで表される。例えば、R=2の値を使用することができる。この後者の場合には、補正動きベクトルΔMVの座標は、精度a
enhで、候補ベクトルMV
ctの周りの間隔[−R,R]でサーチされる。
【0068】
ステップ66において、補正動きベクトルΔMV1およびΔMV2のそれぞれによって修正された候補動きベクトルMV
ct1およびMV
ct2を統合することによって、予測動きベクトルMVpが決定される。例えば、MVpx=median(vx1+dx1,vx2+dx2,0)であり、MVpy=median(vy1+dy1,vy2+dy2,0)である。変形例によれば、MVpx=min(vx1+dx1,vx2+dx2,0)であり、MVpy=min(vy1+dy1,vy2+dy2,0)である。別の変形例によれば、MVpx=0.5×(vx1+dx1+vx2+dx2)であり、MVpy=0.5×(vy1+dy1+vy2+dy2)である。このステップ66は、
図6のステップ34と同じである。
【0069】
ステップ68において、現在のブロックBcは、予測動きベクトルMVpを考慮して再構成される。より具体的には、変換/量子化された残差データおよび動きベクトル差分MVdiffは、可変長符号化(VLC)のタイプのエントロピー符号化、または、コンテクスト適応2値算術符号化(CABAC)のタイプの符号化によって、ストリームFから復号される。変換/量子化された残差データは、逆量子化され、次に、逆変換によって、符号化方法のステップ26において使用されたものに変換される。現在のブロックBcの動きベクトルMVcは、動きベクトル差分MVdiffおよびステップ56において決定された予測動きベクトルMVpから再構成される。MVcは、座標(MVdiffx+MVpx;MVdiffx+MVpy)を有し、ここで、MVdiffの座標は、(MVdiffx;MVdiffy)であり、MVpの座標は、(MVpx;MVpy)である。予測ブロックは、動きベクトルMVcから再構成された参照画像において決定され、動きベクトルMVcによって動き補償された予測ブロックに関連する。予測ブロックは、次に、例えば、画素毎の加算により、現在のブロックについて、ストリームFから再構成された残差データのブロックに統合される。
【0070】
変形例によれば、現在のブロックBcは、SKIP符号化モードに従って再構成される。この場合、現在のブロックBcについて、ストリームFにおいて符号化された残差データや動きデータは存在しない。この場合、再構成されるブロックBcは、ステップ66において決定された予測動きベクトルMVpによって動き補償された予測ブロックである。
【0071】
単一の動きベクトルがブロックに関連付けられている場合(一方向予測)について本発明を説明しているが、本発明は、2つ以上の動きベクトルがブロックに関連付けられている場合(例えば、双方向予測)にも直接拡張される。この場合、各動きベクトルは、参照画像のリストに関連付けられている。例えば、H.264において、双方向タイプのブロックは、2つのリストL0およびL1を使用し、各リストについて、動きベクトルが規定される。双方向の場合においては、ステップ20〜24、または、30〜34は、各リストについて、独立に適用される。ステップ20において(また、ステップ30において)、1つの候補動きベクトルまたは複数の候補動きベクトルが現在のリストと同じリストの動きベクトルのうちから決定され、現在のブロックBcに対して空間的に近傍のブロックに関連付けられる。ステップ26において(また、ステップ36において)符号化された現在のブロックBcは、ステップ24(また、ステップ34)からの各リストの動きベクトルから符号化される。
【0072】
本発明に従った動きベクトルの符号化および再構成の方法は、補正動きベクトルを使用した動きベクトルの予測方法を改善するという利点を有する。従って、この方法は、品質および/または符号化コストの観点から、符号化効率を向上するという利点を有する。本発明に係る方法は、特に、「skip」符号化モードの選択を望ましいものにすることができる。これは、さらに、時間予測の場合に動きデータの符号化コストを低減するか、動きベクトルの精度を向上させ、一定のコストで動き補償の品質を向上させるものである。実際、予測動きベクトルMVpは、精度a
enhを有し、符号化されたベクトル差分MVdiffは、精度a
codを有し、従って、予測動きベクトルと符号化されたベクトル差分との和から生じる再構成されたベクトルMVcは、精度a
enhを有する。従って、本発明に係る符号化および再構成の方法は、動きベクトルを特定の精度a
codで符号化できるようにし、a
enhと等しいより良好な精度の動きベクトルで動き補償を実行するものである。
【0073】
さらに、本発明は、
図10を参照して説明される符号化装置12と
図11を参照して説明される復号装置13に関する。
図10および
図11において、図示された各モジュールは、機能的なユニットであり、物理的に区別可能なユニットに対応することもあるし、物理的に区別可能でないユニットに対応することもある。例えば、これらのモジュール、または、モジュールのうちの幾つかは、単一のコンポーネントにグループ化されることもあれば、同一のソフトウエアの複数の機能を構成することもある。逆に、幾つかのモジュールは、別個の物理的なエンティティで構成されていてもよい。
【0074】
図10を参照するに、符号化装置12は、画像シーケンスに属する画像を入力部で受信する。各画像は、各々が画像データの少なくとも1つに関連付けられる画素のブロックに分割される。特に、符号化装置12は、時間予測を用いた符号化を実行する。時間予測による符号化、またはインター符号化に関連する符号化装置12のモジュールのみが
図12に示されている。図示されていないが、ビデオ符号化器の技術における当業者よって知られている他のモジュールは、空間予測を用いて、または、空間予測を用いないでイントラ符号化を実施する。符号化装置12は、特に、例えば、画素毎の減算により、現在のブロックBcから予測ブロックBpを差し引いて残差画像データのブロック、または、残差ブロックBresを生成することが可能な計算モジュール1200を含む。符号化装置12は、さらに、残差ブロックBresを変換し、次に、量子化して量子化データにすることが可能なモジュール1202を含む。変換Tは、例えば、離散コサイン変換(DCT)である。符号化装置12は、さらに、量子化されたデータを符号化して符号化されたデータのストリームFにすることが可能なエントロピー符号化モジュール1204を含む。符号化装置12は、さらに、モジュール1202の逆の処理を実行するモジュール1206を含む。モジュール1206は、逆量子化Q
−1を実行し、その後に逆変換T
−1を実行する。モジュール1206は、例えば、このモジュール1206からのデータのブロックと予測ブロックBpとを画素毎に加算することによって統合し、メモリ1210に記憶される再構成された画像データのブロックを生成することが可能な計算モジュール1208に結合されている。
【0075】
符号化装置12は、ブロックBcとメモリ1210に記憶された参照画像Irefのブロックとの間で少なくとも1つの動きベクトルMVcを推定することが可能な動き推定モジュール1212をさらに含み、この参照画像Irefは、既に符号化され、再構成されているものである。変形例によれば、動き推定は、現在のブロックBcと、原参照画像Icとの間で実行され、この場合、メモリ1210は、動き推定モジュール1212に結合されていない。当業者にとって良く知られた方法によれば、動き推定モジュールは、1つの動きデータ、特に、動きベクトルについて、参照画像Irefをサーチし、これは、現在のブロックBcとこの1つの動きデータによって識別される参照画像Iref内のブロックとの間で計算されたエラーを最小にするように行われる。
【0076】
決定された動きデータは、動き推定モジュール1212によって決定モジュール1214に送信される。この決定モジュール1214は、所定のセットの符号化モードのうちから、ブロックBcのための符号化モードを選択することが可能である。保持される符号化モードは、例えば、ビットレート歪みタイプの基準を最小にするものである。しかしながら、本発明は、この選択方法に制限されるものではなく、保持されるモードは、別の基準、例えば、先験的なタイプの基準に従って選択することもできる。決定モジュール1214によって選択される符号化モード、さらに、例えば、時間予測モードまたはインターモードの場合の1つまたは複数の動きデータは、予測モジュール1216に送信される。予測モジュール1216は、符号化方法のステップ20〜24または30〜34を実施することが可能である。ステップ26および36は、符号化装置12のモジュールのセットを介して実施される。選択される符号化モジュール、さらに、反対の場合の1つまたは複数の動きデータは、追加的に、エントロピー符号化モジュール1204に送信されてストリームFの形態に符号化される。予測モジュール1216は、決定モジュール1214によって決定される符号化モードから予測モードBpを決定する。これは、動き推定モジュール1212によって決定される動きデータから決定されることもある(インター画像予測の場合)。
【0077】
図11を参照するに、復号モジュール13は、入力部において、画像シーケンスを表す符号化されたデータのストリームFを受信する。例えば、ストリームFは、チャンネルを介して符号化装置12によって送信される。復号装置13は、復号されたデータ、例えば、符号化モードおよび画像のコンテンツに関連する復号されたデータを生成することが可能なエントロピー復号モジュール1300を含む。
【0078】
復号装置13は、さらに、動きデータ再構成モジュールを含む。第1の実施形態によれば、動きデータ再構成モジュールは、上記動きデータを表すストリームFの部分を復号するエントロピー復号モジュール1300である。
図13に示されていない変形例によれば、動きデータ再構成モジュールは、動き推定モジュールである。復号装置13を介して動きデータを再構成するこの解決法は、「テンプレート一致(template matching)」と呼ばれる。
【0079】
次に、画像のコンテンツに関連する復号されたデータは、逆量子化を行った後に逆変換を行うことが可能なモジュール1302に送信される。モジュール1302は、符号化されたストリームFを生成した符号化装置12のモジュール1206と同一である。モジュール1302は、例えば、このモジュール1302からのブロックと予測ブロックBpとを画素毎に加算することによって統合し、メモリ1306に記憶される再構成された現在のブロックBcを生成することが可能な計算モジュール1304に結合されている。復号装置13は、さらに、予測モジュール1308を含む。予測モジュール1308は、現在のブロックについて、エントロピー復号モジュール1300によって復号された符号化モードから予測ブロックBpを決定する。これは、動きデータ再構成モジュールによって決定された動きデータから決定されることもある。予測モジュール1308は、本発明に従った復号方法のステップ52〜56、または、62〜66を実行することが可能である。ステップ58および68は、復号装置12の各モジュールのセットによって実施される。
【0080】
勿論、本発明は、上述した実施形態の例に限定されるものではない。
【0081】
特に、当業者であれば、上述した各実施形態に対してどのような変形例を適用してもよく、各実施形態を組み合わせて様々な利点からの恩恵を受けることができる。特に、本発明は、現在のブロックに必ずしも隣接
する候補動きベクトルのタイプに限定されるものでは決してない。さらに、1つの動きベクトルがブロックに関連付けられている場合(一方向予測)について本発明を説明しているが、本発明は、2つ以上の動きベクトルがブロックに関連付けられている場合(例えば、双方向予測)にも直接拡張される。