(57)【特許請求の範囲】
【請求項１】
ビデオの第1の参照ピクチャ内の第1の動きベクトルと前記ビデオの第2の参照ピクチャ内の第2の動きベクトルとを決定するための装置であって、前記第1および第2の動きベクトルが、現在のピクチャ内の前記ビデオのピクチャブロックのインター予測において適用され、前記装置が、
前記第1の動きベクトルの推定値を取得し、前記第1の動きベクトルの前記推定値に基づいて指定された探索空間内で探索を実行することによって前記第1の動きベクトルを決定するように構成された動きベクトル精密化ユニットと、
前記第2の動きベクトルの推定値を取得し、前記第2の動きベクトルを、探索を実行しないで、前記第2の動きベクトルの前記推定値、および、前記第1の動きベクトルと前記第1の動きベクトルの前記推定値との間の差に基づいて計算するように構成される動きベクトル計算ユニットと
を備える、装置。
【請求項２】
前記動きベクトル計算ユニットが、前記第2の動きベクトルの前記推定値に、前記第1の動きベクトルと前記第1の動きベクトルの前記推定値との間の前記差、または、前記第1の動きベクトルと前記第1の動きベクトルの前記推定値との間の前記差の関数を加えることによって前記第2の動きベクトルを計算するように構成された、請求項1に記載の装置。
【請求項３】
前記関数が、スケーリング係数によるスケーリング、および/またはクリッピングを含む、請求項2に記載の装置。
【請求項４】
前記スケーリング係数の値が、前記第1の参照ピクチャおよび前記第2の参照ピクチャの前記現在のピクチャに対するそれぞれの距離間の比に依存する、請求項3に記載の装置。
【請求項５】
2つの参照ピクチャを取得し、前記2つの参照ピクチャの中から前記第1の参照ピクチャを選択し、前記2つの参照ピクチャの中から前記第2の参照ピクチャを選択するように構成された参照ピクチャ選択ユニットをさらに備える、請求項1から4のいずれか一項に記載の装置。
【請求項６】
前記参照ピクチャ選択ユニットが、前記それぞれの第1の参照ピクチャまたは第2の参照ピクチャが、参照ピクチャの少なくとも2つのリスト間で参照ピクチャの事前定義されたリストに関連するインデックスによって、前記ビデオのコーディングされたピクチャブロックも含むビットストリーム内で参照されるかどうかに基づいて、前記第1の参照ピクチャまたは前記第2の参照ピクチャのいずれかを選択するように構成され、参照ピクチャのリストが、インデックスを前記現在のピクチャに対する参照ピクチャの位置に関連付ける、請求項5に記載の装置。
【請求項７】
前記参照ピクチャ選択ユニットが、前記2つの参照ピクチャが参照ピクチャの同じ事前定義されたリスト内のインデックスによって前記ビットストリーム内で参照される場合、参照ピクチャの前記リスト内の最も高い位置を有する前記ピクチャを前記第1の参照ピクチャとして選択するように構成された、請求項6に記載の装置。
【請求項８】
前記参照ピクチャ選択ユニットが、前記2つの参照ピクチャの中で最も低い時間層を有する前記ピクチャを前記第1の参照ピクチャとして選択するように構成された、請求項5に記載の装置。
【請求項９】
前記参照ピクチャ選択ユニットが、最も低いベース量子化値を有する前記ピクチャを前記第1の参照ピクチャとして選択するように構成された、請求項5に記載の装置。
【請求項１０】
前記参照ピクチャ選択ユニットが、前記現在のピクチャまでの最小の距離を有する前記ピクチャを前記第1の参照ピクチャとして選択するように構成された、請求項5に記載の装置。
【請求項１１】
前記参照ピクチャ選択ユニットが、前記第1の動きベクトルの前記推定値が前記第2の動きベクトルの前記推定値よりも小さくなるように、前記第1の参照ピクチャと前記第2の参照ピクチャとを選択するように構成された、請求項5に記載の装置。
【請求項１２】
テンプレートとそれぞれの動きベクトル候補によって参照される前記ピクチャの部分との類似性に基づいて、動きベクトル候補のセットから前記第1の動きベクトルの前記推定値と前記第2の動きベクトルの前記推定値とを選択することによって、それらを決定するように構成された動きベクトル推定器をさらに備える、請求項1から11のいずれか一項に記載の装置。
【請求項１３】
ビットストリームから複数のピクチャを復号するためのビデオデコーダであって、
請求項1から12のいずれか一項に記載の装置と、前記第1の動きベクトルによって参照される前記第1の参照ピクチャの部分と前記第2の動きベクトルによって参照される前記第2の参照ピクチャの部分とに従って予測ブロックを決定するように構成された予測ユニットとを含むインター予測ユニットと、
前記ビットストリームから、前記第1の動きベクトルの前記推定値と前記第2の動きベクトルの前記推定値とを取得するように構成されたビットストリーム解析器と、
前記予測ブロックに従って前記現在のブロックを再構成するように構成された再構成ユニットと
を備える、ビデオデコーダ。
【請求項１４】
複数のピクチャをビットストリームに符号化するためのビデオエンコーダであって、
請求項1から12のいずれか一項に記載の装置と、前記第1の動きベクトルによって参照される前記第1の参照ピクチャの部分と前記第2の動きベクトルによって参照される前記第2の参照ピクチャの部分とに従って予測ブロックを決定するように構成された予測ユニットとを含むインター予測ユニットと、
前記第1の動きベクトルの前記推定値と前記第2の動きベクトルの前記推定値とを前記ビットストリームに含めるように構成されたビットストリーム形成器と、
前記予測ブロックに従って前記現在のブロックを再構成し、前記再構成されたブロックをメモリに記憶するように構成された再構成ユニットと
を備える、ビデオエンコーダ。
【請求項１５】
ビデオの第1の参照ピクチャ内の第1の動きベクトルと前記ビデオの第2の参照ピクチャ内の第2の動きベクトルとを決定するための方法であって、前記第1および第2の動きベクトルが前記ビデオの現在のピクチャ内のピクチャブロックのインター予測において適用され、前記方法が、
前記第1の動きベクトルの推定値を取得するステップと、
前記第1の動きベクトルの前記推定値に基づいて指定された探索空間内で探索を実行することによって前記第1の動きベクトルを決定するステップと、
前記第2の動きベクトルの推定値を取得するステップと、
前記第2の動きベクトルを、探索を実行しないで、前記第2の動きベクトルの前記推定値、および、前記第1の動きベクトルと前記第1の動きベクトルの前記推定値との間の差に基づいて計算するステップと
を備える、方法。
【請求項１６】
プロセッサによって実行されたとき、請求項15に記載の方法が実行されるようにさせるプログラムコードを含む、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビデオコーディングの分野に関し、具体的には、マルチリファレンスインター予測において適用可能な動きベクトル推定に関する。本出願は、その内容が参照により本明細書に組み込まれる、2017年6月30日に出願したPCT/EP2017/066342の優先権を主張するものである。
【背景技術】
【０００２】
現在のハイブリッドビデオコーデックは、予測コーディングを用いる。ビデオシーケンスのピクチャは、ピクセルのブロックに細分化され、これらのブロックは、次いで、コーディングされる。ブロックをピクセルごとにコーディングする代わりに、ブロックの空間的または時間的に近接するすでに符号化されたピクセルを使用して、ブロック全体が予測される。エンコーダは、ブロックとその予測との間の差異のみをさらに処理する。さらに処理することは、典型的には、変換ドメインにおけるブロックピクセルの係数への変換を含む。係数は、次いで、量子化によってさらに圧縮され、ビットストリームを形成するためにエントロピーコーディングによってさらに圧縮されてもよい。ビットストリームは、デコーダが符号化されたビデオを復号することを可能にする任意のシグナリング情報をさらに含む。例えば、シグナリングは、入力ピクチャのサイズ、フレームレート、量子化ステップ指示、ピクチャのブロックに適用される予測などのエンコーダ設定に関する設定を含んでもよい。
【０００３】
時間的予測は、ビデオの、フレームとも呼ばれるピクチャ間の時間的相関を利用する。時間的予測は、異なるビデオフレームの間(インター)の依存関係を使用する予測であるので、インター予測とも呼ばれる。したがって、現在のブロックとも呼ばれる符号化されているブロックは、(1つまたは)複数の、参照ピクチャとも呼ばれる以前に符号化されたピクチャから予測される。参照ピクチャは、現在のブロックがビデオシーケンスの表示順序で配置されている現在のピクチャの前のピクチャである必要はない。エンコーダは、表示順序とは異なるコーディング順序でピクチャを符号化してもよい。現在のブロックの予測として、参照ピクチャ内の同一位置にあるブロックが決定されてもよい。同一位置にあるブロックは、現在のピクチャ内の現在のブロックと同じ位置にある参照ピクチャ内に位置するブロックである。そのような予測は、静止したピクチャ領域、すなわち、あるピクチャから別のピクチャへの動きのないピクチャ領域については正確である。
【０００４】
動きを考慮した予測子、すなわち、動き補償予測子を取得するために、現在のブロックの予測を決定するとき、典型的には動き推定が用いられる。したがって、現在のブロックは、同一位置にあるブロックの位置から動きベクトルによって与えられる距離に位置する、参照ピクチャ内のブロックによって予測される。デコーダが現在のブロックの同じ予測を決定することを可能にするために、動きベクトルは、ビットストリーム内でシグナリングされてもよい。ブロックの各々に関する動きベクトルをシグナリングすることによって引き起こされるシグナリングオーバヘッドをさらに低減するために、動きベクトル自体が推定されてもよい。動きベクトル推定は、空間的および/または時間的ドメインにおいて隣接するブロックの動きベクトルに基づいて実行されてもよい。
【０００５】
現在のブロックの予測は、1つの参照ピクチャを使用して、または2つ以上の参照ピクチャから取得された予測に重み付けすることによって計算されてもよい。隣接ピクチャは、現在のピクチャに類似している可能性が最も高いので、参照ピクチャは、隣接ピクチャ、すなわち、表示順序において直前のピクチャおよび/または直後のピクチャであってもよい。しかしながら、一般に、参照ピクチャはまた、表示順序において現在のピクチャの前または後で、ビットストリーム(復号順)において現在のピクチャの前の任意の他のピクチャであってもよい。これは、例えば、ビデオコンテンツにおけるオクルージョンおよび/または非線形の動きの場合に利点を提供してもよい。したがって、参照ピクチャはまた、ビットストリーム内でシグナリングされてもよい。
【０００６】
インター予測の特別なモードは、現在のブロックの予測を生成する際に2つの参照ピクチャが使用される、いわゆる双予測である。具体的には、それぞれの2つの参照ピクチャにおいて決定された2つの予測は、現在のブロックの予測信号に結合される。双予測は、片予測、すなわち、単一の参照ピクチャのみを使用する予測よりも正確な現在のブロックの予測をもたらしてもよい。より正確な予測は、現在のブロックのピクセルと予測との間のより小さい差異(「残差」とも呼ばれる)につながり、それは、より効率的に符号化され、すなわち、より短いビットストリームに圧縮されてもよい。一般に、現在のブロックを予測するために3つ以上の参照ピクチャも使用され、それぞれ3つ以上の参照ブロックを見出してもよく、すなわち、マルチリファレンスインター予測が適用されうる。したがって、マルチリファレンス予測という用語は、双予測、ならびに3つ以上の参照ピクチャを使用する予測を含む。
【０００７】
より正確な動き推定を提供するために、参照ピクチャの解像度は、ピクセル間にサンプルを補間することによって強化されてもよい。最も近いピクセルの加重平均によって、分数ピクセル補間が実行されうる。ハーフピクセル解像度の場合、例えば、典型的には双線形補間が使用される。他の分数ピクセルは、それぞれの最も近いピクセルと予測されているピクセルとの間の距離の逆数によって重み付けされた最も近いピクセルの平均として計算される。
【０００８】
動きベクトル推定は、現在のブロックと、参照ピクチャ内の候補動きベクトルによって指される対応する予測ブロックとの間で類似性が計算される計算的に複雑なタスクである。複雑さを低減するために、いくつかの候補動きベクトルは、通常、候補動きベクトルを特定の探索空間に制限することによって低減される。探索空間は、例えば、現在の画像内の現在のブロックの位置に対応する参照ピクチャ内の位置を取り囲むピクセルの数および/または位置によって定義されてもよい。一方、候補動きベクトルは、隣接ブロックの動きベクトルによって形成される候補動きベクトルのリストによって定義されてもよい。
【０００９】
動きベクトルは、通常、エンコーダ側において少なくとも部分的に決定され、コーディングされたビットストリーム内でデコーダに通知される。しかしながら、動きベクトルはまた、デコーダにおいて導出されてもよい。そのような場合、現在のブロックは、デコーダにおいて利用できず、候補動きベクトルが参照ピクチャにおいて指すブロックとの類似性を計算するために使用することができない。したがって、現在のブロックの代わりに、すでに復号されたブロックのピクセルで構成されたテンプレートが使用される。例えば、(現在のピクチャまたは参照ピクチャにおいて)現在のブロックに隣接するすでに復号されたピクセルが使用されてもよい。そのような動き推定は、シグナリングを低減するという利点を提供し、動きベクトルは、エンコーダとデコーダの両方において同じ方法で導出され、したがって、シグナリングが必要とされない。一方、そのような動き推定の精度は、より低い可能性がある。
【００１０】
精度とシグナリングオーバヘッドとの間のトレードオフを提供するために、動きベクトル推定は、動きベクトル導出と動きベクトル精密化の2つのステップに分割されてもよい。例えば、動きベクトル導出は、候補のリストからの動きベクトルの選択を含んでもよい。そのような選択された動きベクトルは、例えば、探索空間内での探索によってさらに精密化されてもよい。探索空間での探索は、各候補動きベクトルについて、すなわち、候補動きベクトルが指すブロックの各候補位置についてコスト関数を計算することに基づく。
【００１１】
文献JVET-D0029: Decoder-Side Motion Vector Refinement Based on Bilateral Template Matching、X. Chen、J. An、J. Zheng(文献は、http://phenix.it-sudparis.eu/jvet/サイトにおいて見られうる)は、整数ピクセル解像度における第1の動きベクトルが見出され、第1の動きベクトルの周囲の探索空間におけるハーフピクセル解像度での探索によってさらに精密化される動きベクトル精密化を示す。
【発明の概要】
【発明が解決しようとする課題】
【００１２】
マルチリファレンス予測が適用される場合、複数の参照ピクチャ内の動きベクトルが決定されなければならない。デコーダが任意のさらなる探索を実行する必要がないように、動きベクトルが第1のステージにおいてシグナリングされる場合であっても、動きベクトル精密化は、対応する探索空間の動きベクトル間での追加の探索を依然として必要とする。これは、計算リソースならびにメモリを必要とする複雑なタスクである可能性がある。
【課題を解決するための手段】
【００１３】
本開示は、第1の参照ピクチャ内の第1の動きベクトルおよび第2の参照ピクチャ内の第2の動きベクトルが決定される技法を提供する。したがって、複雑さが低減されうる。最初に、第1の動きベクトルおよび第2の動きベクトルが大まかに推定される。次いで、第1の動きベクトルは、第1の動きベクトルの大まかな推定によって与えられる探索空間内で探索を実行することによって精密化される。第2の動きベクトルは、その大まかな推定ならびに精密化された第1の動きベクトルに基づく計算によって決定される。第1および第2の動きベクトルは、符号化および/または復号側におけるデコーダにおいて使用される現在のピクチャ内の現在のブロックのインター予測において適用されてもよい。
【００１４】
第1の態様によれば、本発明は、第1の参照ピクチャ内の第1の動きベクトルと第2の参照ピクチャ内の第2の動きベクトルとを決定するための装置に関し、第1および第2の動きベクトルは、現在のピクチャ内のピクチャブロックのインター予測において適用され、装置は、動きベクトル精密化ユニットと、動きベクトル計算ユニットとを備える。動きベクトル精密化ユニットは、第1の動きベクトルの推定値を取得するように構成される。探索空間が、第1の動きベクトルの推定値に基づいて指定される。探索空間内で、動きベクトル精密化ユニットは、第1の動きベクトルを決定するために探索を実行する。動きベクトル計算ユニットは、第2の動きベクトルの推定値を取得する。第2の動きベクトルの推定値と第1の動きベクトルとに基づいて、動きベクトル計算ユニットは、第2の動きベクトルを計算する。
【００１５】
したがって、動きベクトルの決定は、第1の動きベクトルの精密化によって与えられる精度を依然として維持し、それに基づいて第2の動きベクトルに関する精密化量を推定しながら、より少ない複雑さで実行されうる。
【００１６】
そのような第1の態様に係る装置の可能な実装形態において、第2動きベクトルは、第1の動きベクトルと第2の動きベクトルの推定値との間の差の関数を第2の動きベクトルの推定値に追加することによって計算される。この関数は、スケーリングおよび/またはクリッピングを含んでもよい。スケーリングパラメータが決定されるとき、その値は、第1の参照ピクチャおよび第2の参照ピクチャの現在のピクチャに対するそれぞれの距離の間の比に依存してもよい。
【００１７】
第1の動きベクトルに対して実行される精密化の関数としての第2の動きベクトルの計算は、複雑さの低い推定である。さらに、それをさらに修正することによって(例えば、それぞれの参照ピクチャ間の距離に応じてスケーリングすることによって)、推定は、さらにより正確になりうる。
【００１８】
装置は、有利には、参照ピクチャを取得し、それらのうちのどれが第1の参照ピクチャおよび第2の参照ピクチャであるかを選択するための参照ピクチャ選択ユニットをさらに含む。この選択に続いて、第1の参照ピクチャまたは第2の参照ピクチャのどちらが動きベクトル精密化のために使用されるべきかを決定する。参照ピクチャのリストは、ビットストリーム内に含まれるべきインデックスを、現在のピクチャに対する参照ピクチャの位置に関連付ける。参照ピクチャ選択ユニットは、参照ピクチャの事前定義されたリスト内のインデックスによってビットストリーム内で参照されるかどうかに基づいて、第1の参照ピクチャと第2の参照ピクチャとを選択するように構成される。
【００１９】
言い換えれば、参照ピクチャ選択ユニットは、それぞれの第1または第2のピクチャが、参照ピクチャの少なくとも2つのリストの間で参照ピクチャの事前定義されたリストに関連するインデックスによって、ビデオのコーディングされたピクチャブロックも含むビットストリーム内で参照されるかどうかに基づいて、第1のピクチャまたは第2のピクチャのいずれかを選択するように構成され、参照ピクチャのリストは、インデックスを現在のピクチャに対する参照ピクチャの位置に関連付ける。
【００２０】
2つの参照ピクチャが参照ピクチャの同じ事前定義されたリスト内のインデックスによってビットストリーム内で参照される場合、参照ピクチャ選択ユニットは、参照ピクチャの前記リスト内の最も高い位置を有するピクチャとして動きベクトル精密化のために使用されるべき参照ピクチャを選択してもよい。
【００２１】
代替的には、動きベクトル精密化のために使用されるべき参照ピクチャは、2つのピクチャの中で最も低い時間層を有するピクチャとして選択されうる。
【００２２】
動きベクトル精密化のために使用されるべき参照ピクチャは、同様に、最も低いベース量子化値を有するピクチャとして、または、現在のピクチャまでの最小の距離を有するピクチャとして選択されうる。
【００２３】
さらなる手法として、動きベクトル精密化のために使用されるべき参照ピクチャは、動きベクトル精密化のために使用されるべき参照ピクチャを指す動きベクトルの推定値の大きさが、他の動きベクトルの推定値の大きさよりも小さくなるように選択されうる。
【００２４】
装置は、第1の動きベクトルの推定値と第2の動きベクトルの推定値とを決定するための動きベクトル決定ユニットをさらに備えてもよい。この決定は、テンプレートと動きベクトル候補によって参照されるそれぞれのピクチャの部分との類似性に基づいて、動きベクトル候補のセットからそれらを選択することによって実行される。
【００２５】
複数のピクチャをビットストリームに符号化するためのビデオエンコーダは、インター予測ユニットと、ビットストリーム形成器と、再構成ユニットとを備える。インター予測ユニットは、第1の動きベクトルと第2の動きベクトルとを決定するための装置、ならびに予測ユニットを含む。予測ユニットは、第1の動きベクトルによって参照される第1の参照ピクチャの部分と、第2の動きベクトルによって参照される第2の参照ピクチャの部分とに従って予測ブロックを決定する。ビットストリーム形成器は、第1の動きベクトルの推定値と第2の動きベクトルの推定値とをビットストリームに含める。再構成ユニットは、予測ブロックに従って現在のブロックを再構成し、再構成されたブロックをメモリに記憶する。
【００２６】
ビットストリームから複数のピクチャを復号するためのビデオデコーダは、インター予測ユニットと、ビットストリーム解析器と、再構成ユニットとを備える。インター予測ユニットは、第1の動きベクトルと第2の動きベクトルとを決定するための装置、ならびに予測ユニットを含む。予測ユニットは、第1の動きベクトルによって参照される第1の参照ピクチャの部分と、第2の動きベクトルによって参照される第2の参照ピクチャの部分とに従って予測ブロックを決定する。ビットストリーム解析器は、ビットストリームから第1の動きベクトルの推定値と第2の動きベクトルの推定値とを取得する。再構成ユニットは、予測ブロックに従って現在のブロックを再構成する。
【００２７】
方法は、動きベクトル精密化と動きベクトル計算とを含む。第1の動きベクトルの推定値が取得される。第1の動きベクトルの推定値に基づいて探索空間が指定される。探索空間内で、第1の動きベクトルを決定するための探索が実行される。第2の動きベクトルの推定値が取得される。第2の動きベクトルの推定値と第1の動きベクトルとに基づいて、第2の動きベクトルが計算される。第2の動きベクトルは、第1の動きベクトルと第1の動きベクトルの推定値との間の差の関数を第2の動きベクトルの推定値に加えることによって計算される。この関数は、スケーリングおよび/またはクリッピングを含む。スケーリングパラメータの値は、第1の参照ピクチャおよび第2の参照ピクチャの現在のピクチャに対するそれぞれの距離の間の比に依存する。
【００２８】
方法は、参照ピクチャを取得し、それらのうちのどれが第1の参照ピクチャおよび第2の参照ピクチャであるかを選択するための参照ピクチャ選択をさらに備える。この選択に続いて、第1の参照ピクチャまたは第2の参照ピクチャのどちらが動きベクトル精密化のために使用されるべきかが決定される。参照ピクチャのリストは、ビットストリーム内に含まれるべきインデックスを、現在のピクチャに対する参照ピクチャの位置に関連付ける。参照ピクチャ選択は、参照ピクチャの事前定義されたリスト内のインデックスによってビットストリーム内で参照されるかどうかに基づいて、第1の参照ピクチャと第2の参照ピクチャとを選択するために実行される。2つの参照ピクチャが参照ピクチャの同じ事前定義されたリスト内のインデックスによってビットストリーム内で参照される場合、動きベクトル精密化のために使用されるべき参照ピクチャは、参照ピクチャの前記リスト内の最も高い位置を有するピクチャとして選択される。代替的には、動きベクトル精密化のために使用されるべき参照ピクチャは、2つのピクチャの中で最も低い時間層を有するピクチャとして選択されうる。動きベクトル精密化のために選択されるべき参照ピクチャは、同様に、最も低いベース量子化値を有するピクチャとして、または、現在のピクチャまでの最小の距離を有するピクチャとして選択されうる。さらなる手法として、動きベクトル精密化のために使用されるべき参照ピクチャは、動きベクトル精密化のために使用されるべき参照ピクチャを指す動きベクトルの推定値の大きさが、他の動きベクトルの推定値の大きさよりも小さくなるように選択されうる。
【００２９】
方法は、第1の動きベクトルの推定値と第2の動きベクトルの推定値とをさらに決定してもよい。この決定は、テンプレートと動きベクトル候補によって参照されるそれぞれのピクチャの部分との類似性に基づいて、動きベクトル候補のセットからそれらを選択することによって実行される。
【００３０】
複数のピクチャをビットストリームに符号化するためのビデオ符号化方法は、インター予測と、ビットストリーム形成と、ブロック再構成とを実行することを備える。インター予測は、第1の動きベクトルと第2の動きベクトルとを決定すること、ならびにブロック予測を含む。予測は、第1の動きベクトルによって参照される第1の参照ピクチャの部分と、第2の動きベクトルによって参照される第2の参照ピクチャの部分とに従って予測ブロックを決定することを含む。ビットストリーム形成は、第1の動きベクトルの推定値と第2の動きベクトルの推定値とをビットストリームに含める。再構成は、予測ブロックに従って現在のブロックを再構成することと、再構成されたブロックをメモリに記憶することとを含む。
【００３１】
ビットストリームから複数のピクチャを復号するためのビデオ復号方法は、インター予測と、ビットストリーム解析と、ブロック再構成とを実行することを備える。インター予測は、第1の動きベクトルと第2の動きベクトルとを決定すること、ならびにブロック予測を含む。予測は、第1の動きベクトルによって参照される第1の参照ピクチャの部分と、第2の動きベクトルによって参照される第2の参照ピクチャの部分とに従って予測ベクトルを決定する。
【００３２】
ビットストリーム解析は、ビットストリームから第1の動きベクトルの推定値と第2の動きベクトルの推定値とを取得する。再構成は、予測ブロックに従って現在のブロックを再構成することを含む。
【００３３】
本発明は、同様のピクチャ品質を提供しながら、コーディング性能にいかなる影響も与えることなく、動きベクトル精密化のプロセスにおける探索候補の数を低減しうる。これは、現在のブロックに関する1つの参照ピクチャのみに動きベクトル精密化のための探索を実行することによって達成され、同じ現在のブロックの別の参照ピクチャに関する別の動きベクトルは、精密化された動きベクトルに基づいて計算される。
【００３４】
以下では、例示的な実施形態について、添付の図および図面を参照してより詳細に説明する。
【図面の簡単な説明】
【００３５】
【図１】動きベクトルの導出および精密化が用いられてもよいエンコーダの例示的な構造を示すブロック図である。
【図２】動きベクトルの導出および精密化が用いられてもよいデコーダの例示的な構造を示すブロック図である。
【図３】第1の動きベクトルの動きベクトル精密化を示す概略図である。
【図４】精密化された第1の動きベクトルに基づく第2の動きベクトルの動きベクトル精密化を示す概略図である。
【図５】動きベクトル精密化装置を示すブロック図である。
【図６】探索空間の様々な構成を示す概略図である。
【図７】一実装形態に係る、動きベクトルを決定するための方法を示す概略図である。
【図８】一実施形態に係る、動きベクトルを決定し、イントラ予測を実行するためのインター予測ユニットを示すブロック図である。
【発明を実施するための形態】
【００３６】
本開示は、マルチリファレンス予測のための動きベクトルの決定に関する。それは、ビデオの符号化および復号の間に実行される動き推定において用いられてもよい。以下では、本開示の探索空間構造を用いる動き推定を実施してもよい例示的なエンコーダおよびデコーダについて以下で説明する。
【００３７】
図1は、ビデオストリームのフレームまたはピクチャの入力ブロックを受信するための入力と、符号化されたビデオストリームを生成するための出力とを備えるエンコーダ100を示す。本開示における「フレーム」という用語は、ピクチャの同義語として使用される。しかしながら、本開示は、インタレーシングが適用可能な場合の分野にも適用可能であることに留意されたい。一般に、ピクチャは、nピクセルのm倍を含む。これは、画像サンプルに対応し、1つ以上の色成分を備えてもよい。簡単にするために、以下の説明は、輝度のサンプルを意味するピクセルに言及する。しかしながら、本発明の動きベクトル探索は、クロミナンスを含む任意の色成分、または例えばRGBなどの探索空間の成分に適用されうることに留意されたい。一方、1つの成分に対する動きベクトル探索のみを実行し、決定された動きベクトルをより多くの(またはすべての)成分に適用することが有益でありうる。
【００３８】
コーディングされるべき入力ブロックは、必ずしも同じサイズを有する必要はない。1つのピクチャは、異なるサイズのブロックを含んでもよく、異なるピクチャのブロックラスタも異なってもよい。
【００３９】
解説的な実現において、エンコーダ100は、ビデオストリームに予測、変換、量子化、およびエントロピーコーディングを適用するように構成される。変換、量子化、およびエントロピーコーディングは、符号化されたビデオビットストリームを出力として生成するように、変換ユニット101、量子化ユニット102、およびエントロピー符号化ユニット103によってそれぞれ実行される。
【００４０】
ビデオストリームは、複数のフレームを含んでもよく、各フレームは、イントラかまたはインターコーディングされる特定のサイズのブロックに分割される。例えば、ビデオストリームの最初のフレームのブロックは、イントラ予測ユニット109によってイントラコーディングされる。イントラフレームは、それが独立して復号されることができ、ランダムアクセスのためのビットストリーム内のエントリポイントを提供することができるように、同じフレーム内の情報のみを使用してコーディングされる。ビデオストリームの他のフレームのブロックは、インター予測ユニット110によってインターコーディングされてもよく、以前にコーディングされたフレーム(参照フレーム)からの情報は、インターコーディングされたフレームの各ブロックが参照フレーム内のブロックから予測されるように、時間的冗長性を低減するために使用される。モード選択ユニット108は、フレームのブロックがイントラ予測ユニット109またはインター予測ユニット110のどちらによって処理されるべきかを選択するように構成される。このブロックは、インター予測のイントラのパラメータも制御する。画像情報のリフレッシュを可能にするために、イントラコーディングされたブロックは、インターコーディングされたフレーム内で提供されてもよい。さらに、復号のためのエントリポイント、すなわち、以前にコーディングされたフレームからの情報を持たずにデコーダが復号を開始することができるポイントを提供するために、イントラコーディングされたブロックのみを含むイントラフレームがビデオシーケンスに定期的に挿入されてもよい。
【００４１】
イントラ予測ユニット109は、ブロック予測ユニットである。空間的または時間的予測を実行するために、コーディングされたブロックは、逆量子化ユニット104および逆変換ユニット105によってさらに処理されてもよい。ブロックの再構成後、復号された画像の品質をさらに改善するために、ループフィルタリングユニット106が適用される。次いで、フィルタリングされたブロックは、次にフレームバッファ107内に記憶される参照フレームを形成する。エンコーダ側でのそのような復号ループ(デコーダ)は、デコーダ側において再構成された参照ピクチャと同じ参照フレームを生成するという利点を提供する。したがって、エンコーダ側およびデコーダ側は、対応する方法で動作する。ここで「再構成」という用語は、復号された残差ブロックに予測ブロックを追加することによって、再構成されたブロックを取得することを指す。
【００４２】
インター予測ユニット110は、コーディングされるべき現在のフレームまたはピクチャのブロックとフレームバッファ107から1つまたはいくつかの参照フレームまたはピクチャとを入力として受信する。インター予測ユニット110によって動き推定および動き補償が適用される。動き推定は、特定のコスト関数に基づいて動きベクトルと参照フレームとを取得するために使用される。動き補償は、次いで、参照フレームの参照ブロックの現在のフレームへの変換に関して、すなわち、動きベクトルによって、現在のフレームの現在のブロックを記述する。インター予測ユニット110は、現在のブロックに関する予測ブロックを出力し、前記予測ブロックは、コスト関数を最小化する。例えば、コスト関数は、コーディングされるべき現在のブロックとその予測ブロックとの間の差であってもよく、すなわち、コスト関数は、残差ブロックを最小化する。残差ブロックの最小化は、例えば、現在のブロックのすべてのピクセル(サンプル)と候補参照ピクチャ内の候補ブロックのすべてのピクセル(サンプル)との間の絶対差(SAD)の合計を計算することに基づく。しかしながら、一般に、平均二乗誤差(MSE)または構造的類似性メトリック(SSIM)などの任意の他の類似性メトリックが用いられてもよい。
【００４３】
しかしながら、コスト関数はまた、そのようなインターブロックをコーディングするのに必要なビットの数および/またはそのようなコーディングから結果として生じる歪みであってもよい。したがって、レート-歪み最適化手順は、動きベクトル選択において、および/または、一般に、符号化パラメータにおいて、ブロックに対してインター予測またはイントラ予測のどちらをどの設定で使用するかなどを決定するために使用されてもよい。
【００４４】
イントラ予測ユニット109は、イントラコーディングされるべき現在のフレームまたはピクチャのブロックと、現在のフレームのすでに再構成された領域からの1つまたはいくつかの参照サンプルとを入力として受信する。イントラ予測は、次いで、現在のフレームの参照サンプルの関数に関して、現在のフレームの現在のブロックのピクセルを記述する。イントラ予測ユニット109は、現在のブロックに関する予測ブロックを出力し、前記予測ブロックは、コーディングされるべき現在のブロックとその予測ブロックとの間の差を有利に最小化し、すなわち、残差ブロックを最小化する。残差ブロックの最小化は、例えば、レート-歪み最適化手順に基づきうる。特に、予測ブロックは、参照サンプルの方向性補間として取得される。方向は、レート-歪み最適化によって、および/または、インター予測に関連して上述したように類似性尺度を計算することによって決定されてもよい。
【００４５】
現在のブロックとその予測との間の差、すなわち、残差ブロックは、次いで、変換ユニット101によって変換される。変換係数は、量子化ユニット102によって量子化され、エントロピー符号化ユニット103によってエントロピーコーディングされる。そのようにして生成された符号化されたビデオビットストリームは、イントラコーディングされたブロックおよびインターコーディングされたブロックと、対応するシグナリング(例えば、モード指示、動きベクトルの指示、および/またはイントラ予測方向)とを備える。変換ユニット101は、フーリエまたは離散コサイン変換(DFT/FFTまたはDCT)などの線形変換を適用してもよい。そのような空間周波数領域への変換は、結果として生じる係数が、典型的には、より低い周波数においてより高い値を有するという利点を提供する。したがって、有効な係数スキャニング(ジグザグなど)および量子化の後、結果として生じる値のシーケンスは、典型的には、ゼロの連続とともに、最初と最後にいくつかのより大きい値を有する。これは、さらなる効率的なコーディングを可能にする。量子化ユニット102は、係数値の解像度を低減することによって、実際の不可逆圧縮を実行する。エントロピーコーディングユニット103は、次いで、ビットストリームを生成するために係数値にバイナリコードワードを割り当てる。エントロピーコーディングユニット103は、シグナリング情報(図1には図示せず)もコーディングする。
【００４６】
図2は、ビデオデコーダ200を示す。ビデオデコーダ200は、複数の参照ピクチャバッファ207と、ブロック予測ユニットであるイントラ予測ユニット209とを備える。参照ピクチャバッファ207は、符号化されたビデオビットストリームから再構成された少なくとも1つの参照フレームを記憶するように構成され、前記参照フレームは、符号化されたビデオビットストリームの現在のフレーム(現在復号されたフレーム)とは異なる。イントラ予測ユニット209は、復号されるべきブロックの推定である予測ブロックを生成するように構成される。イントラ予測ユニット209は、参照ピクチャバッファ207から取得される参照サンプルに基づいてこの予測を生成するように構成される。
【００４７】
デコーダ200は、ビデオエンコーダ100によって生成された符号化されたビデオビットストリームを復号するように構成され、好ましくは、デコーダ200とエンコーダ100の両方は、符号化/復号されるべきそれぞれのブロックに対して同一の予測を生成する。参照ピクチャバッファ207およびイントラ予測ユニット209の特徴は、図1の参照ピクチャバッファ107およびイントラ予測ユニット109の特徴と同様である。
【００４８】
ビデオデコーダ200は、ビデオエンコーダ100内にも存在するさらなるユニット、例えば、ビデオエンコーダ100の逆量子化ユニット104、逆変換ユニット105、およびループフィルタリングユニット106にそれぞれ対応する、逆量子化ユニット204、逆変換ユニット205、およびループフィルタリングユニット206を備える。
【００４９】
エントロピー復号ユニット203は、受信された符号化されたビデオビットストリームを復号し、それに応じて量子化された残差変換係数とシグナリング情報とを取得するように構成される。量子化された残差変換係数は、残差ブロックを生成するために、逆量子化ユニット204および逆変換ユニット205に供給される。残差ブロックは、予測ブロックに追加され、追加したものは、復号されたビデオを取得するためにループフィルタリングユニット206に供給される。復号されたビデオのフレームは、参照ピクチャバッファ207内に記憶され、インター予測のための参照フレームとして機能しうる。
【００５０】
一般に、図1および図2のイントラ予測ユニット109および209は、符号化または復号される必要があるブロックに関する予測信号を生成するために、すでに符号化された領域からの参照サンプルを使用しうる。
【００５１】
エントロピー復号ユニット203は、その入力として符号化されたビットストリームを受信する。一般に、ビットストリームは、最初に解析され、すなわち、シグナリングパラメータおよび残差がビットストリームから抽出される。典型的には、ビットストリームの構文および意味は、エンコーダおよびデコーダが相互利用可能な方法で動作してもよいように、標準によって定義される。上記の背景セクションで説明したように、符号化されたビットストリームは、予測残差を含むだけではない。動き補償予測の場合、動きベクトル指示もビットストリーム内に符号化され、デコーダにおいてそこから解析される。動きベクトル指示は、動きベクトルが提供される参照ピクチャによって、および動きベクトル座標によって与えられてもよい。これまで、完全な動きベクトルをコーティングすることが検討されていた。しかしながら、ビットストリーム内の現在の動きベクトルと前の動きベクトルとの間の差のみも符号化されてもよい。この手法は、隣接ブロックの動きベクトル間の冗長性を利用することを可能にする。
【００５２】
参照ピクチャを効率的にコーディングするために、H.265コーデック(ITU-T、H265、Series H: Audiovisual and multimedia systems: High Efficient Video Coding)は、それぞれの参照フレームをリストインデックスに割り当てる参照ピクチャのリストを提供する。参照フレームは、次いで、対応する割り当てられたリストインデックスをその中に含めることによって、ビットストリームにおいてシグナリングされる。そのようなリストは、標準において定義されるか、または、ビデオもしくはいくつかのフレームのセットの先頭でシグナリングされてもよい。H.265では、L0およびL1と呼ばれる定義された参照ピクチャの2つのリストがあることに留意されたい。参照ピクチャは、次いで、リスト(L0またはL1)を示し、所望の参照ピクチャに関連付けられたそのリスト内のインデックスを示すことによって、ビットストリーム内でシグナリングされる。2つ以上のリストを提供することは、よりよい圧縮のための利点を有してもよい。例えば、L0は、単方向にインター予測されたスライスと双方向にインター予測されたスライスの両方に使用されてもよく、L1は、双方向にインター予測されたスライスのためのみに使用されてもよい。しかしながら、一般に、本開示は、L0およびL1リストのいかなる内容にも限定されない。
【００５３】
リストL0およびL1は、標準において定義されるか、または固定されてもよい。しかしながら、それらをビデオシーケンスの開始時にシグナリングすることによって、コーディング/デコーディングのより高い柔軟性が達成されうる。したがって、エンコーダは、インデックスに従って順序付けられた特定の参照ピクチャを用いてリストL0およびL1を構成してもよい。L0およびL1リストは、同じ固定されたサイズを有してもよい。一般に、3つ以上のリストがあってもよい。動きベクトルは、参照ピクチャ内の座標によって直接シグナリングされてもよい。代替的には、H.265においても指定されているように、候補動きベクトルのリストが構築されてもよく、特定の動きベクトルに関連付けられたリスト内のインデックスが送信されうる。
【００５４】
現在のブロックの動きベクトルは、通常、現在のピクチャ内またはより以前のコーディングされたピクチャ内の隣接ブロックの動きベクトルと相関する。これは、隣接ブロックが同様の動きを有する同じ移動オブジェクトに対応する可能性が高く、オブジェクトの動きが時間とともに突然変化する可能性が低いためである。それ故に、予測子として隣接ブロック内の動きベクトルを使用することは、シグナリングされた動きベクトルの差のサイズを低減する。MVPは、通常、空間的に隣接するブロックからの、または同じ位置にあるピクチャ内の時間的に隣接するブロックからの、すでに復号された動きベクトルから導出される。H.264/AVCにおいて、これは、3つの空間的に隣接する動きベクトルの成分ごとの中央値をとることによって行われる。この手法を使用すると、予測子のシグナリングは、必要とされない。同じ位置にあるピクチャからの時間的MVPは、H.264/AVCのいわゆる時間的ダイレクトモードにおいてのみ考慮される。H.264/AVCダイレクトモードは、動きベクトル以外の他の動きデータを導出するためにも使用される。したがって、それらは、HEVCにおけるブロックマージングの概念により関係する。HEVCにおいて、MVPを暗黙的に導出する手法は、MVPのリストからどのMPVが動きベクトル導出のために使用されるかを明示的にシグナリングする、動きベクトル競合として知られる技法によって置き換えられた。HEVCにおける可変コーディング四分木ブロック構造は、潜在的なMVP候補として動きベクトルを有するいくつかの隣接ブロックを有する1つのブロックを結果としてもたらしうる。例として左隣をとると、最悪の場合、64×64のルマコーディングツリーブロックがさらに分割されず、左のブロックが最大深度に分割される場合、64×64のルマ予測ブロックは、16個の4×4ルマ予測ブロックを左に有しうる。
【００５５】
そのような柔軟なブロック構造を説明するように動きベクトル競合を修正するために、進化型動きベクトル予測(AMVP)が導入された。HEVCの開発中、初期のAMVP設計は、コーディング効率と実装に適した設計との間の良好なトレードオフを提供するために、大幅に簡略化された。AMVPの初期の設計は、3つの異なるクラスの予測子からの5つのMVP、すなわち、空間的に隣接するものからの3つの動きベクトルと、3つの空間予測子の中央値と、同じ位置にある時間的に隣接するブロックからのスケーリングされた動きベクトルとを含んでいた。さらに、予測子のリストは、最も可能性の高い動き予測子を第1の位置に配置するように並べ替え、最小限のシグナリングオーバヘッドを保証するために冗長な候補を削除することによって修正された。AMVP候補リスト構造の最終的な設計は、以下の2つのMVP候補、すなわち、a)5つの空間的に隣接するブロックから導出された2つまでの空間的候補MVP、b)両方の空間的候補MVPが利用できないか、またはそれらが同一である場合、2つの時間的に同じ位置にあるブロックから導出された1つの時間的候補MVP、およびc)空間的候補、時間的候補、または両方の候補が利用できない場合、ゼロの動きベクトルを含む。動きベクトル決定に関する詳細は、参照により本明細書に組み込まれる、V. Szeら(Ed.)、 High Efficiency Video Coding (HEVC): Algorithms and Architectures, Springer, 2014の本、特にチャプター5に見られうる。
【００５６】
シグナリングオーバヘッドをさらに増加させることなく動きベクトル推定をさらに改善するために、エンコーダ側において導出され、ビットストリームにおいて提供される動きベクトルをさらに精密化することが有益でありうる。動きベクトル精密化は、エンコーダからの支援なしにデコーダにおいて実行されてもよい。そのデコーダループにおけるエンコーダは、対応する参照ピクチャを取得するために同じ精密化を用いてもよい。精密化は、テンプレートを決定し、探索空間を決定し、探索空間内でテンプレートと最も一致する参照ピクチャ部分を見つけることによって実行される。最も一致する部分の位置は、次いで現在のブロック、すなわち、再構成されている現在のブロックの予測子を取得するために使用される最良の動きベクトルを決定する。
【００５７】
図3は、参照ピクチャの整数ピクセル位置(フルドット)と分数ピクセル位置(空ドット)とを含む探索空間(探索領域)310を示す。この例では、分数ピクセル位置は、ハーフピクセル位置である。上記で説明したように、分数ピクセル位置は、双線形補間などの補間によって整数(フルピクセル)位置から取得されてもよい。
【００５８】
現在のブロックの双予測において、リストL0のそれぞれの第1の動きベクトルとリストL1の第2の動きベクトルとを使用して取得された2つの予測ブロックは、単一の予測信号に結合され、この単一予測信号は、片予測よりも元の信号に対するよりよい適合を提供し、より少ない残余情報と、おそらくより効率的な圧縮とをもたらすことができる。図3は、現在のピクチャからの現在のブロック320をさらに示す。デコーダにおいて、現在のブロックは、復号されていないので、動きベクトル精密化の目的のために利用できないので、現在のブロックの推定であり、すでに処理された(すなわち、エンコーダ側でコーディングされ、デコーダ側で復号された)画像部分に基づいて構築されたテンプレートが使用される。
【００５９】
テンプレートは、例えば、すでに復号されている、すなわち、現在のブロックの前に復号された現在のピクチャに属するサンプルに基づいて構築されてもよい。加えてまたは代替的に、これらのサンプルは、以前に復号された参照ピクチャのいずれかに属してもよい。例として、テンプレートの構築において使用されるべきサンプルは、現在のピクチャの前に復号され、表示順序において現在のピクチャに先行する参照ピクチャに属してもよい。代替的には、サンプルは、現在のピクチャの前に復号され、表示順序において現在のピクチャに続く参照ピクチャに属してもよい。最後に、テンプレートは、2つの異なる参照ピクチャからのサンプルの組み合わせに基づいて構築されうる。当業者には明らかなように、テンプレートは、現在のブロックが構築されたテンプレートを用いて推定されうるように、異なる方法を使用して取得されうる。
【００６０】
最初に、第1の動きベクトルの推定値MV0および第2の動きベクトルの推定値MV1は、図3に示すようにデコーダ200の入力として受信される。エンコーダ側100において、動きベクトル推定値MV0およびMV1は、ブロックマッチングによって、および/または、(同じピクチャ内または隣接するピクチャ内の)現在のブロックに隣接するブロックの動きベクトルによって形成された候補のリスト(マージリストなど)における探索によって取得されてもよい。MV0およびMV1は、次いで、ビットストリーム内でデコーダ側に有利にシグナリングされる。しかしながら、一般に、エンコーダにおける第1の決定段階も、シグナリングオーバヘッドを低減するという利点を提供するテンプレートマッチングによって実行されうることに留意されたい。
【００６１】
デコーダ側200において、動きベクトルMV0およびMV1は、ビットストリーム内の情報に基づいて有利に取得される。MV0およびMV1は、直接シグナリングされるか、もしくは差動的にシグナリングされ、および/または、動きベクトルのリスト(マージリスト)内のインデックスがシグナリングされる。しかしながら、本開示は、ビットストリームにおいて動きベクトルをシグナリングすることに限定されない。むしろ、動きベクトルは、エンコーダの動作に対応して、第1の段階においてすでにテンプレートマッチングによって決定されてもよい。第1の段階(動きベクトル導出)のテンプレートマッチングは、第2の精密化段階の探索空間とは異なる探索空間に基づいて実行されてもよい。具体的には、精密化は、より高い解像度(すなわち、探索位置間のより短い距離)を有する探索空間において実行されてもよい。
【００６２】
それぞれのMV0およびMV1が指す2つの参照ピクチャの指示が、同様にデコーダに提供される。参照ピクチャは、以前の処理、すなわち、それぞれの符号化および復号の結果として、エンコーダとデコーダの両方における参照ピクチャバッファ内に記憶される。これらの参照ピクチャのうちの1つが探索によって動きベクトル精密化のために選択される。動きベクトルの決定のための装置の参照ピクチャ選択ユニットは、MV0が指す第1の参照ピクチャとMV1が指す第2の参照ピクチャとを選択するように構成される。選択に続いて、参照ピクチャ選択ユニットは、第1の参照ピクチャまたは第2の参照ピクチャのどちらが動きベクトル精密化の実行のために使用されるかを決定する。図3において、動きベクトルMV0が指す第1の参照ピクチャが探索に対して選択される。動きベクトル精密化を実行するために、第1の参照ピクチャ内の探索領域310は、動きベクトルMV0が指す候補位置の周りに定義される。探索領域310内の候補探索空間位置は、探索空間内でテンプレートマッチングを実行し、差分絶対値和(SAD)などの類似性メトリックを決定することによって、テンプレートブロックに最も類似するブロックを見つけるために分析される。上述したように、一実装形態において、テンプレートは、MV0およびMV1のそれぞれの動きベクトルを有する2つの異なる参照ピクチャからのサンプルの組み合わせに基づいて構築される。テンプレートマッチングは、テンプレートに最も類似する探索領域310内の点に基づいてブロックを見つけるために実行される。代替的には、別の実装形態において、テンプレートは、L0内のMV0に基づいて生成された予測ブロックP0とL1内のMV1に基づいて生成された予測ブロックP1との間の類似性を見つけるように構築される。MV0に対する精密化を実行するために、テンプレートマッチングは、P0とP1との間の類似性マッチング(例えば、SADなど)によって決定された探索領域310内の点に基づいてブロックを見つけることを備える。探索空間310の位置は、テンプレート320の左上隅が一致する位置を示す。すでに上記で述べたように、左上隅は、単なる慣例であり、中心点330などの探索空間の任意の点がマッチング位置を示すために一般的に使用されうる。
【００６３】
最も低いSAD値を有する候補位置は、動きベクトルMV0"として決定される。図3において、MV0"が指す位置は、ハーフピクセル位置であり、初期推定MV0と垂直方向において1.5ピクセル位置だけ異なるが、水平方向は、同じままである。
【００６４】
本開示によれば、片予測またはマルチリファレンス予測に関して、現在のブロックの少なくとも1つの動きベクトルは、テンプレートマッチングを実行することではなく、現在のブロックの別の精密化された動きベクトルに基づく計算によって精密化される。図4は、そのような精密化を示す。具体的には、動きベクトルMV1"は、第2のテンプレートマッチングを実行する代わりに、動きベクトル推定値MV1と、MV0"-MV0の関数とに基づいて計算される。図4の例では、第1の動きベクトルMV0"の決定および精密化は、図3を参照して上記で説明したように実行される。さらに、動きベクトルMV1"は、第2の動きベクトル推定値MV1"からMV0"とMV0との間の差を引くことによって計算される。
【００６５】
この手法は、ビデオシーケンス内の動きの大部分が「並進運動」のカテゴリ内に収まるという事実を利用する。並進運動では、オブジェクトは、(少なくとも、サンプリング時間において互いに近いフレームの間で)一定の速度で移動している。これは、(時間サンプリング期間が時間とともに変化していない場合)連続したフレーム内でオブジェクトがx方向およびy方向において同じピクセル距離だけ変位することを意味する。当該発明は、並進運動の原理をある程度利用する。
【００６６】
上記の例では、第1の動きベクトルMV0"は、テンプレートマッチングによって精密化され、第2の動きベクトルは、計算によって精密化された。しかしながら、本開示によれば、どの動きベクトルがテンプレートマッチングによって精密化されるべきであり、どれが計算によって決定されるべきであるかを選択するための選択プロセスがさらに実行されてもよい。図5は、動きベクトル精密化器500の例のブロック図を示す。
【００６７】
動きベクトル精密化器500は、図8に示すように、動きベクトルを決定するための装置810内に含まれてもよい。装置は、図1に示すインター予測ユニット110を置き換えてもよいインター予測ユニット800内、および/または図2に示すインター予測ユニット210内に含まれてもよい。
【００６８】
より具体的には、第1の参照ピクチャ内の第1の動きベクトルと第2の参照ピクチャ内の第2の動きベクトルとを決定するための装置810が提供される。第1および第2の動きベクトルは、現在のピクチャ内のピクチャブロックのインター予測において適用されうる。
【００６９】
装置810は、動きベクトル精密化器500を備え、動きベクトル精密化器500は、図5において詳細に示すように、第1の動きベクトルMV0"の推定値MV0を取得し、推定値MV0に基づいて指定された探索空間内で探索を実行することによって第1の動きベクトルMV0"を決定するように構成された動きベクトル精密化ユニット530をさらに備える。装置は、第2の動きベクトルMV1"の推定値MV1を取得し、第2の動きベクトルMV1"の推定値MV1に基づき、第1の動きベクトルMV0"に基づいて、第2の動きベクトルMV1"を計算するように構成された動きベクトル計算ユニット550をさらに備える。
【００７０】
この例では、装置は、動きベクトル計算ユニット530と動きベクトル計算ユニット550とを備える第1のブランチと、動きベクトル計算ユニット540と動きベクトル計算ユニット560とを備える第2のブランチと、2つのブランチのうちの一方を有効にし、他方を無効にするためのスイッチ520とを備える。第2のブランチは、第1のブランチと類似しており、主に、第1の動きベクトルの推定値としてMV1を処理し、第2の動きベクトルの推定値としてMV0を処理することによって第1の動きベクトルMV1"と第2の動きベクトルMV0"とを出力する点において第1のブランチと異なる。
【００７１】
より具体的には、動きベクトル精密化ユニット540は、第1の動きベクトルMV1"の推定値MV1を取得し、推定値MV1に基づいて指定された探索空間内で探索を実行することによって第1の動きベクトルMV1"を決定するように構成される。装置は、第2の動きベクトルMV0"の推定値MV0を取得し、第2の動きベクトルMV0"の推定値MV0に基づき、第1の動きベクトルMV1"に基づいて、第2の動きベクトルMV0"を計算するように構成された動きベクトル計算ユニット560をさらに備える。
【００７２】
図5は、決定された2つのそれぞれの参照ピクチャ内に2つの動きベクトル、すなわち、動きベクトルMV0"およびMV1"がある双予測への当該発明の適用を示す。したがって、テンプレートマッチングによる精密化のためのピクチャの選択も、単に、テンプレートマッチングのためにMV0およびMV1のうちの1つをとり、それぞれもう一方のMV1またはMV0を計算のために維持することによっても実行される。
【００７３】
デコーダ動きベクトル精密化(DMVR)のこのプロセスは、装置500によって実行される。(それぞれの動きベクトル推定値MV0およびMV1のどちらにテンプレート探索が実行されるべきかに応じて)動きベクトル精密化ユニット530または540は、入力505において、動きベクトル推定器820からそれぞれの動きベクトル推定値MV0またはMV1を受信し、MV0またはMV1の周囲の探索領域310を設定する。図3および図4における探索領域のサイズは、3×3の整数ピクセルであり、ハーフピクセルが7×7に補間され、したがって、合計49位置である。一般に、探索領域の形および/またはサイズは、異なってもよく、本発明は、探索領域のサイズおよび形状に関係なく機能する。探索領域は、所定のまたは事前定義されたサイズを有してもよい。言い換えれば、探索空間の形状およびサイズは、固定され、標準において指定されてもよい。代替的には、いくつかの可能な形およびサイズのうちの1つが、エンコーダ設定内でユーザによって手動で、またはビデオのコンテンツに基づいて自動的に選択されてもよい。
【００７４】
探索空間のサイズおよび形状のいくつかの例が図6に示されている。完全な三角形は、探索空間の中心ピクセルを示し、完全な円は、残りの探索空間位置を示す。探索空間は、分数(ハーフピクセル、クォーターピクセルなど)補間によってさらに拡張されてもよいことに留意されたい。本開示は、一般に、任意の特定のピクセルパターンに限定されない。
【００７５】
探索領域内の位置または分数位置の各々について、現在のブロックを近似するテンプレートを使用するテンプレートマッチングが実行され、各探索空間座標に関するSAD値を提供する。本明細書における整数ピクセル解像度およびハーフピクセル解像度は、探索空間の解像度、すなわち、プロセスに入力される非精密化動きベクトルに対する探索位置の変位を記述することに留意されたい。結果として、探索座標は、画像平面上の実際のピクセル座標と必ずしも一致するわけではない。言い換えれば、探索空間の整数ピクセル(サンプル)解像度は、探索空間位置が参照画像の整数ピクセル上に位置することを必ずしも意味するわけではない。探索空間の整数位置は、特に、初期動きベクトルMV0、MV1が参照画像内の分数ピクセルを指している場合、参照画像の分数ピクセルと一致してもよい。
【００７６】
探索領域内の位置のSAD値の比較が実行され、最小SAD値を有する位置を決定する。最小SAD値を有する位置は、動きベクトルMV0"として決定される。背景セクションで述べたように、SADは、単なる例であり、MSE、SSIM、相関係数などの任意の他のメトリックが一般に使用されてもよい。決定された動きベクトルMV0"は、第2の動きベクトルMV1の推定値とともに、動きベクトル計算ユニット550に渡され、そこで、動きベクトルMV1"の決定(精密化)が計算によって実行される。
【００７７】
図4を参照して上記ですでに説明したように、第1の例示的な手法として、動きベクトル計算ユニット550は、第2の動きベクトルの推定値に、第1の動きベクトルと第1の動きベクトルの推定値との間の差、または、第1の動きベクトルと第1の動きベクトルの推定値との間の差の関数を加えることによって、第2の動きベクトルを計算するように構成される。
【００７８】
差を追加することは、以下、
MV1"=MV1+(MV0-MV0")    (式1)
のように計算されうる。この式1(負の差MV0"-MV0を追加する)は、2つの参照ピクチャのうちの1つが現在のピクチャの前に位置し、残りの他の1つが現在のピクチャの後に位置する場合、図4に示す場合について機能する。図4に見られうるように、通常の動きを推定するために、現在の動きベクトルと前のピクチャ内の第1の動きベクトルとの間の差は、反転された符号で現在のピクチャに続くピクチャに投影される。
【００７９】
MV0およびMV1に関する両方の参照フレームが現在のピクチャの後かまたは前のいずれかに位置する場合、次いで、差は、符号を変化させることなく直接追加され、
MV1"=MV1+(MV0"-MV0)    (式2)
をもたらす。上述した前/後の位置は、表示順序におけるものであることを意味する。ビデオ内のピクチャの表示順序は、符号化/復号順序、すなわち、コーディングされたピクチャがビットストリーム内に埋め込まれている順序とは異なってもよい。ピクチャの表示順序は、Picture Order Count(POC)によって与えられてもよい。特に、H.265/HEVCにおけるPOCは、ピクチャまたはその一部である各スライスのスライスヘッダにおいてシグナリングされる。
【００８０】
2つの参照ピクチャが現在のピクチャに続くものおよび現在のピクチャに先行するものであるかどうかを判定するために使用される条件は、以下のようにパラメータPOCを使用して実装されてもよく、
(POCi-POC0)*(POCi-POC1)<0     (式3)
ここで、POCiは、現在のピクチャの表示順序(シーケンス番号)であり、POC0は、第1の参照ピクチャの表示順序であり、POC1は、第2の参照ピクチャの表示順序である。式3における条件が真である場合、次いで、第1の参照ピクチャが現在のピクチャに先行し、第2のピクチャが現在のピクチャの後に続くか、またはその逆のいずれかである。一方、式3の条件が真ではない場合、次いで、両方の参照ピクチャが現在のピクチャに先行するか、または両方が現在のピクチャの後に続くかのいずれかである。しかしながら、条件は、2つの差分式(POCi-POC0)および(POCi-POC1)の符号が同じであるかどうかを確認することができる任意の方法において実装されてもよい。上記の式3は、その比較的単純な実装形態のための乗算「*」を用いる例に過ぎない。
【００８１】
差の関数を加えることは、参照ピクチャのうちの一方が現在のピクチャに先行し、他方が現在のピクチャの後に続く双方向予測の場合(式3における条件が真)、以下のように計算されうる。
MV1"=MV1-f(MV0"-MV0)    (式4)
再び、2つの参照ピクチャが表示順序において両方とも現在のピクチャに先行するか、または両方とも現在のピクチャの後に続く場合(式3の条件が偽)、次いで、計算は、符号を反転させることなく差を追加する。
MV1"=MV1+f(MV0"-MV0)    (式5)
例えば、関数は、スケーリングおよび/またはクリッピングを含んでもよい。
【００８２】
関数がスケーリングの場合、動きベクトルの計算は、以下のようであってもよく、
MV1"=MV1-k*(MV0"-MV0)=MV1+k*(MV0-MV0")    (式6)
ここで、「*」は、乗算(スケーリング)を表し、kは、スケーリングパラメータである。k=1の場合、式1が取得される。固定された(事前定義された)kを用いると、式6は、参照ピクチャのうちの一方が現在のピクチャに先行し、他方が現在のピクチャの後に続く場合に適用可能である。両方の参照ピクチャが現在のピクチャに先行するか、または両方が現在のピクチャの後に続く場合、符号は、反転する必要がある。
MV1"=MV1+k*(MV0"-MV0)=MV1-k*(MV0-MV0")    (式7)
【００８３】
一実施形態によれば、スケーリングパラメータの値は、第1のピクチャおよび第2のピクチャの現在のピクチャに対するそれぞれの距離間の比に依存する。したがって、kの値は、事前定義されておらず、固定されていないが、動きベクトルが定義されている参照ピクチャに応じて変化してもよい。例えば、スケーリング係数kは、
k=-(POCi-POC1)/(POCi-POC0)    (式8)
によって与えられてもよい。スケーリングパラメータは、両方の参照ピクチャが表示順序において現在のピクチャの同じ側(先行するまたは後に続く)にあるか、または現在のピクチャの異なる側にあるかに応じて符号を変化させるので、上記の式8は、符号の変化をすでに考慮していることに留意されたい。
【００８４】
現在の画像に対するそれぞれの第1および第2の参照ピクチャ間の距離を考慮することが有益でありうる場合であっても、これらの距離が相互に異なる場合であっても、式1および2におけるようにk=1を設定することは、依然として適用されてもよい。それは、より単純であり、精密化された動きベクトルの品質は、精密化を適用しないよりも依然として実質的により高い場合がある。
【００８５】
スケーリング操作の後、丸めまたはクリッピング操作が適用されうる。ここで、丸めは、入力値に最も近い事前定義された精度で整数または実数を提供することを指す。クリッピングは、入力値から事前定義された精度よりも高い精度で数字を削除することを指す。これは、典型的な計算システムにおいて適用される固定小数点演算の観点から特に有益でありうる。
【００８６】
動きベクトル精密化は、2つの参照ピクチャのうちの1つに対してのみ実行されるので、テンプレートマッチングを実行するための探索空間は、50%削減される。
【００８７】
現在のピクチャ内の現在のブロックに対する上記で説明した処理の後、2つの参照ピクチャならびにそれらの関連するそれぞれの動きベクトルMV0"およびMV1"が出力580において提供される。これらの動きベクトルは、例えば、現在のブロックにサイズおよび形状において対応し、動きベクトルMV0"およびMV1"によって指される参照ピクチャのそれぞれの部分をとることによって取得された2つのそれぞれの予測子を平均することによって、現在のブロックに関する予測子を決定するために使用される。これは、予測ユニット890によって実行される。
【００８８】
一般的に、予測ユニット890は、第1の動きベクトルMV0"によって参照される第1の参照ピクチャの部分と、第2の動きベクトルMV1"によって参照される第2の参照ピクチャの部分とを結合することによって、予測ブロックを決定する。
【００８９】
結合された予測信号は、片予測よりも元の信号に対するよりよい適合を提供し、より少ない残余情報と、おそらくより効率的な圧縮とをもたらすことができる。
【００９０】
前の段落で説明したように、装置500の出力動きベクトルMV0"およびMV1"は、より少ない残余情報をもたらしてもよい。したがって、それらを使用することは、初期動きベクトルMV0およびMV1と比較して予測パフォーマンスを改善しうる。装置500は、予測パフォーマンスをさらに改善するために、複数回用いられうることに留意されたい。この場合、装置500の第1の適用の出力は、第2の適用の入力と見なされ、動きベクトル間の等式(式1〜8)は、各適用後に保持される。この場合、動きベクトルMV0"およびMV1"は、装置500の第1の適用後に現在のブロックのよりよい推定を提供するので、MV精密化器ユニット530において使用されるテンプレートは、第2の適用においてMV0"によって指されるサンプルまたはMV1"によって指されるサンプルに基づいて構築される。
【００９１】
例示的な実施形態によれば、装置500は、2つの参照ピクチャを取得し、それらのうちのどれが第1の参照ピクチャおよび第2の参照ピクチャであるべきかを選択するように構成された参照ピクチャ選択ユニット510をさらに備える。
【００９２】
言い換えれば、参照ピクチャ選択ユニット510は、現在のブロックについて、その動きベクトルのうちのどれがテンプレートマッチングによって精密化されるべきで、どれが別の精密化された動きベクトルの精密化に基づく計算によって精密化されるべきかを制御する。以下では、どのように選択プロセスが参照ピクチャ選択ユニット510によって実行されうるかに関するいくつかの例が提供される。
【００９３】
図7は、一実施形態に係る、第1の参照ピクチャ内の第1の動きベクトルと第2の参照ピクチャ内の第2の動きベクトルとを決定するための方法700を示す概略図を示す。例えば、上記で説明したデジタルビデオエンコーダ100またはデコーダ200、特に、インター予測ユニット110または210は、現在のピクチャ内のピクチャブロックのインター予測において適用されるべき第1および第2の動きベクトルを取得するためにプロセス700を使用してもよい。方法700は、第1の動きベクトルの推定値を取得するステップ701と、第1の動きベクトルの推定値に基づいて指定された探索空間内で探索を実行することによって第1の動きベクトルを決定するステップ703と、第2の動きベクトルの推定値を取得するステップ705と、第2の動きベクトルの推定値に基づき、第1の動きベクトルに基づいて第2の動きベクトルを計算するステップ707とを備える。
【００９４】
例1
第1の例において、参照ピクチャ選択ユニット510は、それからそれぞれの動きベクトルに属する参照ピクチャが参照されたリストに基づいて、探索空間内の探索によってどの動きベクトルが決定されるべきかを決定する。具体的には、ビットストリーム内でエンコーダにおいて使用されるのと同じ予測子を復元するためにデコーダによって使用される予測子情報をシグナリングするために、いくつかのコーデックは、参照ピクチャのリスト内の特定の参照ピクチャに関連付けられたインデックスをビットストリームに含めることによって、参照ピクチャをシグナリングする。例えば、参照ピクチャのリスト(参照ピクチャリスト)は、エンコーダとデコーダの両方において利用可能で、現在のピクチャに対するそれぞれの参照ピクチャの相対的位置にインデックスを関連付けるテーブルであってもよい。
【００９５】
参照ピクチャの2つ以上のリストがあってもよい。例えば、H.265/HEVCにおいて通常使用される参照ピクチャリストL0および参照ピクチャリストL1。ビットストリーム内で参照ピクチャをシグナリングするために、最初に、参照ピクチャのリストがシグナリングされ、その後、シグナリングされた参照ピクチャリスト内のインデックスがシグナリングされる。
【００９６】
参照ピクチャ選択ユニット510は、次いで、参照ピクチャの事前定義されたリスト内のインデックスによってビットストリーム内で参照されるかどうかに基づいて、第1の参照ピクチャまたは第2の参照ピクチャのいずれかを選択するように有利に構成される。これに関連して、「事前定義された」という用語は、例えば、標準において固定的に定義されるか、またはシグナリングにおいてビデオ全体に対して定義されることを意味する。例示的に、事前定義されたリストは、リストL0であってもよい。次いで、第1の参照ピクチャが参照ピクチャリストL0から参照され、第2のリストが参照ピクチャリストL1から参照された場合、第1の参照ピクチャを指す第1の動きベクトルは、L0から参照されたので、テンプレートマッチングによって精密化され、第2の動きベクトルは、L0から参照されなかったので、計算される。しかしながら、事前定義されたリストは、L0リストに限定されないことに留意されたい。使用される参照ピクチャリストのいずれもが代わりに事前定義されてもよい。通常、L0は、L1よりも近い近傍にある参照ピクチャをリストする。代替的には、L0は、表示順序において現在のピクチャに先行するより多くの参照ピクチャを含んでもよく、L1は、表示順序において現在のピクチャの後に続くより多くのピクチャを含んでもよい。しかしながら、本発明は、2つ以上の参照ピクチャリスト間にどの特定の違いがあるかにかかわらず機能する。
【００９７】
それぞれの第1および第2の動きベクトルによって指された第1の参照ピクチャと第2の参照ピクチャの両方が同じ参照ピクチャリストから参照される状況が生じてもよいことに留意されたい。例えば、第1の参照ピクチャと第2の参照ピクチャの両方は、事前定義されたリストL0のピクチャから参照されてもよい。代替的には、現在のコーディングブロックが双予測を適用する場合、リストL0からの1つの参照ピクチャとリストL1からの1つの参照ピクチャとが示されなければならず、両方の参照ピクチャは、参照リストの一方(または両方)内に一緒に含まれてもよい。理由は、参照ピクチャが両方のリスト(リストL0およびリストL1)内に存在しうるからである。
【００９８】
第1の参照ピクチャおよび第2の参照ピクチャが両方とも事前定義されたリスト(L0など)内に含まれる場合、リスト(L0)内の最も高い位置にあるピクチャは、それらを指す対応する動きベクトルのテンプレートマッチングによる動きベクトル精密化のために使用される参照ピクチャとして選択される。
【００９９】
両方のピクチャが事前定義されていない参照ピクチャのリスト(L0が事前定義されている場合、L1など)内に含まれる場合、同じ選択が実行されてもよい。言い換えれば、参照ピクチャが参照ピクチャの事前定義されたリスト以外の参照ピクチャのリストから参照される場合、リスト内の最も高い位置を有する参照ピクチャは、テンプレートマッチングベースの動きベクトル精密化のために選択される。
【０１００】
要約すると、参照ピクチャ選択ユニット510は、2つの参照ピクチャが参照ピクチャの同じ事前定義されたリスト内のインデックスによってビットストリーム内で参照される場合、参照ピクチャの前記リスト内の最も高い位置を有するピクチャとして第1の参照ピクチャを選択する。
【０１０１】
この例は、任意の追加のインテリジェントな選択プロセスなしに、単純な実装形態を提供する。具体的には、参照ピクチャ選択ユニット510は、参照ピクチャのインデックス値にも基づいて、解析された参照ピクチャリストが事前定義されたリスト(L0など)である場合、および、両方のピクチャが同じリスト内にある場合、図5のブロック図における上部ブランチまたは下部ブランチを選択するようにスイッチ520および570を制御する。
【０１０２】
例2
第2の例によれば、参照ピクチャ選択ユニット510は、(テンプレートマッチングによって精密化されるべき)第1の参照ピクチャとして、現在の参照ブロックに関する2つ(またはそれよりも多く)の参照ピクチャの中から最も低い時間層を有するピクチャを選択するように構成される。言い換えれば、参照ピクチャ選択ユニット510は、動きベクトルMV0およびMV1が関連する参照ピクチャの時間層に従って、上部ブランチ(530、550)または下部ブランチ(540、560)を選択するようにスイッチ520および580を制御する。
【０１０３】
図5において、上部ブランチおよび下部ブランチは、必ずしも二重に実装される必要はない。一般に、本開示の実施形態および例のいずれにおいても、単一の動きベクトル精密化ユニット530および単一の動きベクトル計算ユニット550が設けられ、単一のブランチへの入力のみが、参照ピクチャ選択ユニット210の制御に従って切り替えられる。
【０１０４】
具体的には、2つの(またはそれよりも多くの)参照ピクチャの時間層が決定される。参照ピクチャの時間層は、参照ピクチャが復号されうる前に復号されなければならないピクチャの数を示す。時間層は、通常、異なる時間層においてビデオ動画を符号化するデコーダにおいて設定される。それは、ビットストリームに含められてもよい。したがって、デコーダは、ビットストリームからのシグナリング情報に基づいて、どの参照ピクチャがどの時間層に属するかを判定してもよい。したがって、次いで、より低い時間層を有する第1の参照ピクチャまたは第2の参照ピクチャは、テンプレートマッチングによる動きベクトル精密化のために使用される参照ピクチャとして選択される。この手法は、より少ない以前に復号されたピクチャに依存し、したがって、エラーおよびアーティファクトのより低い可能性を有する参照ピクチャをテンプレートマッチングのために選択するという利点を提供しうる。したがって、動きベクトル精密化手順は、より弾力的にされる。
【０１０５】
例3
第3の例では、参照ピクチャ選択ユニット510は、(テンプレートマッチングによって精密化されるべき)第1の参照ピクチャとして、最も低いベース量子化値を有するピクチャを選択するように構成される。言い換えれば、参照ピクチャ選択ユニット510は、動きベクトルMV0およびMV1が関連する参照ピクチャの量子化パラメータに従って、上部ブランチ(530、550)または下部ブランチ(540、560)を選択するようにスイッチ520および580を制御する。
【０１０６】
この文脈における量子化値または量子化パラメータは、量子化ステップを決定することができるビットストリーム内で提供される情報である。H.264/AVCおよびH.265/HEVCなどのよく知られているコーデックでは、量子化パラメータは、量子化すべき係数が分割されるべき値を決定することができる。量子化値が大きいほど、量子化は最も粗くなり、それは、典型的には、再構成後の悪い画像品質につながる。したがって、より低い量子化値は、再構成された画像のより高い品質が提供されうることを意味する。より低い量子化パラメータを有する参照ピクチャの選択は、よりよい品質を有する参照ピクチャが動きベクトル精密化のために使用されることを意味し、それは次いで、よりよい精密化の結果にもつながる。
【０１０７】
「ベース」量子化値という用語は、ピクチャスライスに共通で、すべてのブロックのためのベースとして使用される量子化値を指す。通常、そのような値は、例えば、スライスヘッダにおいてシグナリングされる。次いで、典型的には、ベース値との差が、ブロックまたは処理単位ごとにシグナリングされる。
【０１０８】
しかしながら、本発明は、任意の特定のシグナリング、またはそのような値の存在にさえ限定されない。同じ効果は、量子化値がシグナリングされるピクチャ内の要素の量子化値に従ってピクチャに関するベース量子化値を決定することによって達成されうる。言い換えれば、ベース量子化値という用語は、ピクチャに関する一般的な量子化値を示す。
【０１０９】
例4
第4の例によれば、参照ピクチャ選択ユニット510は、現在のピクチャに対して最も短い距離を有するピクチャを第1の参照ピクチャとして選択するように構成される。言い換えれば、参照ピクチャ選択ユニット510は、現在のピクチャに対する、それぞれの動きベクトルMV0およびMV1に関連する参照ピクチャの距離に従って、上部ブランチ(530、550)または下部ブランチ(540、560)を選択するようにスイッチ520および580を制御する。
【０１１０】
例えば、それぞれの動きベクトルMV0およびMV1に関連するそれぞれの参照ピクチャのピクチャ順序カウント(POC)値POC0およびPOC1と、現在のピクチャのPOC値POCiとの間の差が決定される。POC値は、コーディング/復号ではなく、ピクチャの表示順序を指定する。したがって、POC=2を有するピクチャは、POC=8を有するピクチャの前に表示される。しかしながら、当該発明は、H.264/AVCおよびH.265/HEVCなどのよく知られているコーデックにおける適用に限定されないので、参照ピクチャと現在のピクチャとの間の差は、特定のPOCパラメータに依存しない任意の他の方法で決定されてもよい。
【０１１１】
より近い参照ピクチャの動きベクトルがより正確であること、および/または、動きベクトルによって指される参照ブロックが現在のブロックにより類似していることが予想されるので、(参照ピクチャと現在のピクチャとの間の)最も小さい絶対POC距離を有する、動きベクトルMV0に関連する第1の参照ピクチャまたは動きベクトルMV1に関連する第2の参照ピクチャは、動きベクトル精密化のために使用されるべき参照ピクチャとして選択される。これは、精密化のよりよい品質につながってもよい。
【０１１２】
例5
第5の例によれば、参照ピクチャ選択ユニットは、第1のベクトルの推定値の大きさが第2の動きベクトルの推定値の大きさよりも小さくなるように、第1の参照ピクチャと第2の参照ピクチャとを選択するように構成される。言い換えれば、参照ピクチャ選択ユニット510は、それぞれの参照ピクチャに関連する動きベクトルMV0およびMV1の長さ(大きさ)に従って、上部ブランチ(530、550)または下部ブランチ(540、560)を選択するようにスイッチ520および580を制御する。
【０１１３】
第1の参照ピクチャおよび第2の参照ピクチャを指す動きベクトルMV0およびMV1の絶対的な大きさは、ベクトルの絶対値の決定のための標準的な手順を使用して決定される。例えば、動きベクトルの各ベクトル成分の二乗値が合計される。この合計またはその平方根のいずれも動きベクトルの大きさとして使用されてもよいが、平方根の計算は、より高い計算コストを有する。精密化のためにより小さい大きさを有する動きベクトルをとることは、ピクチャ間の動きが典型的には小さいと仮定して、正確に決定される可能性がより高いという利点を提供する。
【０１１４】
第1の動きベクトルMV0の推定値、第2の動きベクトルMV1の推定値、ならびにMV0およびMV1が参照する参照ピクチャのインデックスに関するいくつかの情報が、入力としてデコーダにおいて受信されてもよい。動きベクトル情報は、典型的にはブロック単位でシグナリングされ、ブロックは、異なるサイズを有することができる。同じことは、参照ピクチャ指示の場合も同じである。エントロピー復号ユニット203の一部として実装されたビットストリーム解析器は、ビットストリームから動きベクトル情報を取得する。動き情報は、直接動きベクトルの座標(現在のピクチャ内の現在のブロックの位置と同じ参照ピクチャ内のブロックの位置によって与えられる点(0,0)に対する座標)であってもよい。代替的には、復号順序において現在のブロックに先行するブロックの動きベクトルとの差がシグナリングされてもよい。これは、有利には、現在のブロックの空間的または時間的に隣接するブロックの1つであってもよい。
【０１１５】
別の例によれば、動きベクトル精密化器500も含む動きベクトル決定のための装置は、動きベクトル候補によって参照されるそれぞれのピクチャの部分とのテンプレートの類似性に基づいて、動きベクトル候補のセットから第1の動きベクトルの推定値と第2の動きベクトルの推定値とを選択することによって、それらを決定するように構成された動きベクトル推定ユニット820をさらに含む。言い換えれば、(MV0およびMV1の)動きベクトル決定は、参照ピクチャにおいて定義された探索空間におけるテンプレートマッチングに必ずしも基づくものではない。探索空間は、空間的もしくは時間的に隣接するブロック、または現在のブロックの近くにあるブロックのそれぞれの動きベクトルに関連してインデックスをリストする(マージ)リストによって与えられてもよい。これは、本発明が、動きベクトル推定値MV0およびMV1が精密化のために提供される前に導出される方法によって制限されないということである。
【０１１６】
要約すると、1つのコーディングブロック、それぞれリストL0の動きベクトル(MV)およびリストL1のMVからの2つの予測ブロックの双予測動作は、単一の予測信号に結合され、それは、片予測よりも元の信号に対するよりよい適合を提供することができ、より少ない残余情報と、おそらくより効率的な圧縮とをもたらす。現在のピクチャ内の現在のブロックに対する双予測復号処理は、以下の処理ステップを含む。
【０１１７】
最初に、第1の動きベクトルの推定値MV0および第2の動きベクトルの推定値MV1は、デコーダ側において入力として受信される。MV0およびMV1が指す2つの参照ピクチャは、現在のピクチャの処理の前にすでに復号されているので、デコーダのピクチャバッファ内にある。これらの参照ピクチャのうちの1つは、説明のために、MV0が指す参照ピクチャをテンプレートマッチングすることによる動きベクトル精密化のために選択される。動きベクトル精密化を実行するために、選択されたMV0が指す候補点の周囲に、MV0が指す参照ピクチャ内の探索領域が定義される。探索領域内の候補探索空間位置は、現在のブロック空間とのテンプレートマッチングを実行し、類似性尺度を決定することによって分析される。最も低い非類似値(dissimilarity value)を有する候補探索空間位置は、動きベクトルMV0"として決定される。動きベクトルMV1"は、第2のテンプレートマッチングを実行する代わりに、MV1と、MV0"-MV0の関数とに基づいて計算される。
【０１１８】
当該発明の一実施形態によれば、類似性比較は、MV0"によって指されるサンプルとMV1"によって指されるサンプルとを比較することによって実行される。図4によれば、探索空間310内のMV0"によって指される任意の点は、式1〜8のうちの1つ以上によって与えられる対応する動きベクトルMV1"を有する。テンプレートマッチングプロセスにおいてサンプルブロック間の類似性を比較するために、MV0"によって指されるサンプルブロックおよびMV1"によって指されるサンプルブロックは、SAD関数などの関数において使用されてもよい。この場合、テンプレートは、MV1によって参照される参照ピクチャに属するサンプルのみで構成され、動きベクトル精密化操作がMV0に対して実行される。さらに、テンプレートは、探索空間310内の各点に関してわずかに変更される。
【０１１９】
より具体的には、実施形態によれば、以下のステップが適用される。
【０１２０】
ステップ1:入力動きベクトルMV0によって指されるサンプルと入力動きベクトルMV1によって指されるサンプルとの間の類似性が計算される。入力動きベクトルMV0は、探索空間内の点330を指す。
【０１２１】
ステップ2:点330とは異なる探索空間310内の第2の点が選択される。第2の点は、MV0"によって示される。
【０１２２】
ステップ3:動きベクトルMV1"は、MV0"、MV0、およびMV1に基づいて、式1〜8のうちの1つ以上を使用して計算される。
【０１２３】
ステップ4:入力動きベクトルMV0"によって指されるサンプルと入力動きベクトルMV1"によって指されるサンプルとの間の類似性が計算される。類似性がステップ1において計算された値よりも高い場合、MV0"およびMV1"のペアが精密化された動きベクトルとして選択される。そうでなければ、MV0およびMV1のペア(すなわち、初期の動きベクトルのペア)が精密化された動きベクトルとして選択される。
【０１２４】
ステップ2、3、および4は、探索空間310内のより多くの候補点を評価するために繰り返されうる。探索空間内に探索点が残っていない場合、次いで、精密化された動きベクトルは、最終的な精密化された動きベクトルとして出力される。
【０１２５】
ステップ4において、式1〜8のうちの1つ以上によれば、類似性メトリック(例えばSAD、SSIMなど)が、その対応物が初期動きベクトルMV1である初期動きベクトルMV0によって指される初期点330において最も高い類似性をもたらしうる場合は、明らかである。この場合、精密化動きベクトル、したがって、動きベクトル精密化プロセスの出力は、MV0およびMV1であると見なされる。
【０１２６】
装置500の出力である任意の動きベクトルのペアMV0"およびMV1"は、式1〜8のうちの1つ以上において記述されたルールに従わなければならない。テンプレートマッチング操作において使用されるテンプレートの構造および類似性メトリックの具体的な詳細は、当該発明、および2つの動きベクトルのペアリングによるチェックされるべき探索点の削減であるその利点に影響を及ぼすことなく変化してもよい。
【０１２７】
本発明の一実施形態によれば、上記で説明したインター予測において実行される双予測処理のほかに、符号化および復号のための他の処理ステップが標準H.265/HEVCに従う。
【０１２８】
しかしながら、一般に、本発明は、ビットストリームから複数のピクチャを復号するための任意のビデオデコーダに適用可能である。そのようなデコーダは、次いで、請求項1から11のいずれか一項による装置を含むインター予測ユニットと、第1の動きベクトルによって参照される第1の参照ピクチャの部分と第2の動きベクトルによって参照される第2の参照ピクチャの部分とに従って予測ブロックを決定するための予測ユニットとを備えてもよい。デコーダは、ビットストリーム解析器をさらに備えてもよい。ビットストリーム解析器は、例えば、エントロピー復号ユニット203の一部として実装され、ビットストリームから第1の動きベクトルの推定値と第2の動きベクトルの推定値とを取得するように構成されてもよい。ビデオデコーダは、予測ブロックに従って現在のブロックを再構成するように構成された再構成ユニット211をさらに備えてもよい。
【０１２９】
一方、複数のピクチャをビットストリームに符号化するためのビデオエンコーダは、請求項1から12のいずれか一項による装置と、第1の動きベクトルによって参照される第1の参照ピクチャの部分と第2の動きベクトルによって参照される第2の参照ピクチャの部分とに従って予測ブロックを決定するための予測ユニットとを含むインター予測ユニットと、エントロピー符号化ユニット103の一部として実装され、第1の動きベクトルの推定値および第2の動きベクトルの推定値をビットストリームに含めるように構成されたビットストリーム形成器と、予測ブロックに従って現在のブロックを再構成するように構成され、再構成されたブロックをメモリ内に記憶する再構成ユニット111とを備えてもよい。
【０１３０】
上記で説明したインター予測復号処理は、2つの参照ピクチャの使用に限定されない。代替的には、3つ以上の参照ピクチャおよび関連する動きベクトルが考慮されてもよい。この場合、参照ピクチャ選択ユニットは、3つ以上の参照ピクチャを選択し、そのうちの1つの参照ピクチャが動きベクトル精密化のために使用される。動きベクトル精密化のために使用される参照ピクチャの選択は、上記で論じた式1〜5において説明した手法のうちの1つを使用している。残りの動きベクトルは、それぞれの動きベクトルの推定値と、動きベクトル精密化から生じる動きベクトルとを使用して調整される。言い換えれば、上記で説明した本発明は、マルチリファレンス予測が実行される場合にも機能してもよい。例えば、3つの参照ピクチャと3つのそれぞれの動きベクトルとがある場合、3つの動きベクトルのうちの1つがテンプレートマッチングによる精密化によって決定され、他の2つが計算されてもよい。これは、複雑さの低減を提供する。代替的には、動きベクトルのうちの2つがテンプレートマッチングによる精密化によって決定され、1つが精密化された動きベクトルのうちの1つまたは両方に基づいて計算される。当業者には明らかなように、本発明は、現在のブロックに関する予測子を構築するために使用される任意の数の参照ピクチャおよび対応する動きベクトルに拡張可能である。
【０１３１】
当該発明は、低減された処理負荷およびメモリ要件でデコーダにおいて双予測を実行することを可能にする効果を有する。それは、任意のデコーダにおいて適用されることができ、コーディングデバイスおよび/または復号デバイス内に、すなわち、エンコーダサイダーまたはデコーダ側に含まれてもよい。
【０１３２】
上記で説明した動きベクトル精密化は、ビデオ信号(動画)の符号化および/または復号の一部として実装されうる。しかしながら、動きベクトル精密化は、例えば、動き検出、動き分析などの、画像処理における他の目的のためにも使用されてもよい。
【０１３３】
動きベクトル精密化は、装置として実装されてもよい。そのような装置は、ソフトウェアおよびハードウェアの組み合わせであってもよい。例えば、動きベクトル精密化は、例えば、汎用プロセッサ、またはデジタル信号プロセッサ(DSP)、またはフィールドプログラマブルゲートアレイ(FPGA)などのチップによって実行されてもよい。しかしながら、本発明は、プログラム可能なハードウェアにおける実装形態に限定されない。それは、特定用途向け集積回路(ASIC)上に、または上述したハードウェア構成要素の組み合わせによって実装されてもよい。
【０１３４】
動きベクトル精密化はまた、コンピュータ可読媒体上に記憶されたプログラム命令によって実装されてもよい。プログラムは、実行されると、コンピュータに、動きベクトルの推定値を取得するステップと、推定値に基づいて第1の参照ピクチャと第2の参照ピクチャとを決定するステップと、第1の動きベクトルの動きベクトル精密化を実行するステップと、動きベクトルの推定値と精密化後の第1の動きベクトルとに基づいて第2の動きベクトルを計算するステップとを実行させる。コンピュータ可読媒体は、例えば、DVD、CD、USB(フラッシュ)ドライブ、ハードディスク、ネットワークを介して利用可能なサーバストレージなどの、プログラムが記憶される任意の媒体でありうる。
【０１３５】
エンコーダ/デコーダは、TVセット、セットトップボックス、PC、タブレット、スマートフォンなどを含む様々なデバイス内に実装されてもよい。それは、方法ステップを実行するソフトウェア、アプリであってもよい。
【符号の説明】
【０１３６】
100  エンコーダ、ビデオエンコーダ
101  変換ユニット
102  量子化ユニット
103  エントロピー符号化ユニット、エントロピーコーディングユニット
104  逆量子化ユニット
105  逆変換ユニット
106  ループフィルタリングユニット
107  フレームバッファ、参照ピクチャバッファ
108  モード選択ユニット
109  イントラ予測ユニット
110  インター予測ユニット
111  再構成ユニット
200  ビデオデコーダ、デコーダ
203  エントロピー復号ユニット
204  逆量子化ユニット
205  逆変換ユニット
206  ループフィルタリングユニット
207  参照ピクチャバッファ
209  イントラ予測ユニット
210  インター予測ユニット、参照ピクチャ選択ユニット
211  再構成ユニット
310  探索空間、探索領域
320  現在のブロック、テンプレート
330  中心点、点、初期点
500  動きベクトル精密化器、装置
505  入力
510  参照ピクチャ選択ユニット
520  スイッチ
530  動きベクトル精密化ユニット、動きベクトル計算ユニット、MV精密化器ユニット
540  動きベクトル計算ユニット、動きベクトル精密化ユニット
550  動きベクトル計算ユニット
560  動きベクトル計算ユニット
570  スイッチ
580  出力
800  インター予測ユニット
810  動きベクトルを決定するための装置、装置
820  動きベクトル推定器、動きベクトル推定ユニット
890  予測ユニット
【図１】
0006977068.tif 000002
【図２】
0006977068.tif 000003
【図３】
0006977068.tif 000004
【図４】
0006977068.tif 000005
【図５】
0006977068.tif 000006
【図６】
0006977068.tif 000007
【図７】
0006977068.tif 000008
【図８】
0006977068.tif 000009