(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023104952
(43)【公開日】2023-07-28
(54)【発明の名称】動きベクトルの精緻化のための制限されたメモリアクセスウィンドウ
(51)【国際特許分類】
H04N 19/513 20140101AFI20230721BHJP
H04N 19/105 20140101ALI20230721BHJP
H04N 19/176 20140101ALI20230721BHJP
【FI】
H04N19/513
H04N19/105
H04N19/176
【審査請求】有
【請求項の数】19
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023078105
(22)【出願日】2023-05-10
(62)【分割の表示】P 2021187045の分割
【原出願日】2018-05-30
(31)【優先権主張番号】PCT/EP2017/075710
(32)【優先日】2017-10-09
(33)【優先権主張国・地域又は機関】EP
(71)【出願人】
【識別番号】504161984
【氏名又は名称】ホアウェイ・テクノロジーズ・カンパニー・リミテッド
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133569
【弁理士】
【氏名又は名称】野村 進
(72)【発明者】
【氏名】セミフ・エセンリク
(72)【発明者】
【氏名】アナンド・メヘル・コトラ
(72)【発明者】
【氏名】ジジエ・ジャオ
(72)【発明者】
【氏名】ハン・ガオ
(57)【要約】
【課題】本開示は、動きベクトルの精緻化に関する。
【解決手段】第1のステップとして、初期動きベクトルが、取得される。次いで、初期動きベクトルの精緻化が、探索空間におけるバイラテラルマッチングによって決定される。探索空間は、初期動きベクトルによって与えられる位置にあり、1つ以上の分数サンプル位置を含み、探索空間に属する分数サンプル位置の各々が、ウィンドウ内の整数サンプルのみを評価する予め定義されたタップサイズのフィルタを用いる補間フィルタリングによって得られ、前記ウィンドウが、前記探索空間におけるバイラテラルマッチングのためにアクセス可能な整数サンプルによって形成される。
【選択図】
図14
【特許請求の範囲】
【請求項1】
予測ブロックに関する動きベクトルの決定のための装置であって、
前記予測ブロックに関する初期動きベクトルおよびテンプレートを取得し、
探索空間において前記テンプレートとのテンプレートマッチングによって前記初期動きベクトルの精緻化を決定するように構成された処理回路を含み、
前記探索空間が、前記初期動きベクトルによって与えられる位置にあり、1つ以上の分数サンプル位置を含み、前記探索空間に属する前記分数サンプル位置の各々が、ウィンドウ内の整数サンプルのみを評価する予め定義されたタップサイズのフィルタを用いる補間フィルタリングによって得られ、前記ウィンドウが、前記探索空間における前記テンプレートマッチングのためにアクセス可能な整数サンプルによって形成される、装置。
【請求項2】
前記ウィンドウが、前記予測ブロックの初期動きベクトルに対してN整数サンプル列およびM整数サンプル行として定義され、NおよびMの少なくとも一方が、非ゼロの整数値である請求項1に記載の装置。
【請求項3】
前記処理回路が、最も新しい反復において探索空間のより多くの最も一致する位置のうちの1つによって与えられる方向に反復的に拡張される前記探索空間における前記テンプレートとのテンプレートマッチングによって前記初期動きベクトルの前記精緻化を決定するように構成され、
前記ウィンドウが、前記反復の予め定義された最大回数によって定義される請求項1または2に記載の装置。
【請求項4】
前記探索空間が、サブウィンドウ内の各分数サンプルの補間フィルタリングのためにアクセスされるすべての整数サンプルが前記予め定義されたタップサイズの前記補間フィルタに関して前記ウィンドウ内にあるような前記ウィンドウの矩形の前記サブウィンドウを含む請求項1から3のいずれか一項に記載の装置。
【請求項5】
前記探索空間が、前記ウィンドウの矩形の探索サブウィンドウを含み、前記初期動きベクトルの前記精緻化が、前記探索サブウィンドウ内の各分数サンプルの補間フィルタリングのためにアクセスされる前記整数サンプルが前記予め定義されたタップサイズの前記補間フィルタに関して前記ウィンドウ内にあるような前記矩形の探索サブウィンドウにおける前記テンプレートとのテンプレートマッチングによって決定される請求項1または2に記載の装置。
【請求項6】
前記処理回路が、最も新しい反復において探索空間のより多くの最も一致する位置のうちの1つによって与えられる方向に反復的に拡張される前記探索空間における前記テンプレートとのテンプレートマッチングによって前記初期動きベクトルの前記精緻化を決定するように構成され、前記反復が、前記最も新しい反復の前記探索空間内の少なくとも1つのサンプルが前記探索サブウィンドウの外にあるときに終了される請求項5に記載の装置。
【請求項7】
前記補間フィルタが、前記分数位置が整数サンプルのそれぞれの水平方向のラインまたは垂直方向のライン上にあるとき、K個の水平方向または垂直方向の何れの整数サンプルも評価する1次元フィルタである請求項4に記載の装置。
【請求項8】
前記探索空間が、
- 前記サブウィンドウの上もしくは下に隣接し、整数サンプルの水平方向のライン上にあるか、または
- 前記サブウィンドウの左側もしくは右側に隣接し、整数サンプルの垂直方向のライン上にあるか
の何れの、前記サブウィンドウの外にある分数位置をさらに含む請求項5に記載の装置。
【請求項9】
予測ブロックに分割されたビデオ画像をビットストリームに符号化するための符号化装置であって、
請求項1から8のいずれか一項に記載の予測ブロックに関する動きベクトルの決定のための装置と、
前記予測ブロックと決定された動きベクトルに基づく位置に予測ブロックによって与えられるプレディクタとの間の差を符号化するため、ならびに符号化された差および前記初期動きベクトルを含むビットストリームを生成するための符号化回路とを含む、符号化装置。
【請求項10】
予測ブロックに分割されたビデオ画像をビットストリームから復号するための復号装置であって、
初期動きベクトル、および予測ブロックと精緻化された動きベクトルによって指定される位置に予測ブロックによって与えられるプレディクタとの間の符号化された差を、前記ビットストリームから解析するための解析ユニットと、
請求項1から8のいずれか一項に記載の前記予測ブロックに関する前記精緻化された動きベクトルの決定のための装置と、
解析された差と、前記精緻化された動きベクトルによって指定される前記位置に前記予測ブロックによって与えられる前記プレディクタとの和として前記予測ブロックを再構築するための復号回路とを含む、復号装置。
【請求項11】
予測ブロックに関する動きベクトルの決定のための方法であって、
前記予測ブロックに関する初期動きベクトルおよびテンプレートを取得するステップ、
探索空間において前記テンプレートとのテンプレートマッチングによって前記初期動きベクトルの精緻化を決定するステップを含み、
前記探索空間が、前記初期動きベクトルによって与えられる位置にあり、1つ以上の分数サンプル位置を含み、前記探索空間に属する前記分数サンプル位置の各々が、ウィンドウ内の整数サンプルのみを評価する予め定義されたタップサイズのフィルタを用いる補間フィルタリングによって得られ、前記ウィンドウが、前記探索空間における前記テンプレートマッチングのためにアクセス可能な整数サンプルによって形成される、方法。
【請求項12】
前記ウィンドウが、前記予測ブロックの初期動きベクトルに対してN整数サンプル列およびM整数サンプル行として定義され、NおよびMが、非ゼロの整数値である請求項11に記載の方法。
【請求項13】
前記初期動きベクトルの前記精緻化が、最も新しい反復において探索空間のより多くの最も一致する位置のうちの1つによって与えられる方向に反復的に拡張される前記探索空間における前記テンプレートとのテンプレートマッチングによって決定され、
前記ウィンドウが、前記反復の予め定義された最大回数によって定義される請求項11または12に記載の方法。
【請求項14】
前記探索空間が、サブウィンドウ内の各分数サンプルの補間フィルタリングのためにアクセスされるすべての整数サンプルが前記予め定義されたタップサイズの前記補間フィルタに関して前記ウィンドウ内にあるような前記ウィンドウの矩形の前記サブウィンドウを含む請求項11から13のいずれか一項に記載の方法。
【請求項15】
前記探索空間が、前記ウィンドウの矩形の探索サブウィンドウを含み、前記初期動きベクトルの前記精緻化が、前記探索サブウィンドウ内の各分数サンプルの補間フィルタリングのためにアクセスされる前記整数サンプルが前記予め定義されたタップサイズの前記補間フィルタに関して前記ウィンドウ内にあるような前記矩形の探索サブウィンドウにおける前記テンプレートとのテンプレートマッチングによって決定される請求項11または12に記載の方法。
【請求項16】
前記初期動きベクトルの前記精緻化が、最も新しい反復において探索空間のより多くの最も一致する位置のうちの1つによって与えられる方向に反復的に拡張される前記探索空間における前記テンプレートとのテンプレートマッチングによって決定され、前記反復が、前記最も新しい反復の前記探索空間内の少なくとも1つのサンプルが前記探索サブウィンドウの外にあるときに終了される請求項15に記載の方法。
【請求項17】
前記補間フィルタが、前記分数位置が整数サンプルのそれぞれの水平方向のラインまたは垂直方向のライン上にあるとき、K個の水平方向または垂直方向の何れの整数サンプルを評価する1次元フィルタである請求項14に記載の方法。
【請求項18】
前記探索空間が、
- 前記サブウィンドウの上もしくは下に隣接し、整数サンプルの水平方向のライン上にあるか、または
- 前記サブウィンドウの左側もしくは右側に隣接し、整数サンプルの垂直方向のライン上にあるか
の何れの、前記サブウィンドウの外にある分数位置をさらに含む請求項17に記載の方法。
【請求項19】
予測ブロックに分割されたビデオ画像をビットストリームに符号化するための符号化方法であって、
請求項11から18のいずれか一項に記載の予測ブロックに関する動きベクトルを決定するステップと、
前記予測ブロックと決定された動きベクトルに基づく位置に予測ブロックによって与えられるプレディクタとの間の差を符号化し、符号化された差および前記初期動きベクトルを含むビットストリームを生成するステップとを含む、符号化方法。
【請求項20】
予測ブロックに分割されたビデオ画像をビットストリームから復号するための復号方法であって、
初期動きベクトル、および予測ブロックと精緻化された動きベクトルによって指定される位置に予測ブロックによって与えられるプレディクタとの間の符号化された差を、前記ビットストリームから解析するステップと、
請求項11から18のいずれか一項に記載の前記予測ブロックに関する前記精緻化された動きベクトルを決定するステップと、
解析された差と、前記精緻化された動きベクトルによって指定される前記位置に前記予測ブロックによって与えられる前記プレディクタとの和として前記予測ブロックを再構築するステップとを含む、復号方法。
【請求項21】
プロセッサ上で実行されるときに前記プロセッサに請求項11から20のいずれか一項に記載の方法を実行させる命令を記憶するコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ビデオの符号化および復号中に使用されてもよい動きベクトルの決定および精緻化に関する。
【背景技術】
【0002】
現在のハイブリッドビデオコーデックは、予測符号化を使用する。ビデオシーケンスのピクチャは、ピクセルのブロックに下位分割され、次いで、これらのブロックが、符号化される。ブロックをピクセル毎に符号化する代わりに、ブロック全体が、ブロックの空間的または時間的に近い既に符号化されたピクセルを使用して予測される。エンコーダは、ブロックとそのブロックの予測との間の差のみをさらに処理する。さらなる処理は、概して、変換領域におけるブロックピクセルの係数への変換を含む。次いで、ビットストリームを形成するために、係数が、量子化によってさらに圧縮され、エントロピー符号化によってさらにコンパクトにされてもよい。ビットストリームは、デコーダが符号化されたビデオを復号することを可能にする任意のシグナリング情報をさらに含む。たとえば、シグナリングは、入力ピクチャのサイズ、フレームレート、量子化ステップインジケーション、ピクチャのブロックに適用される予測などのエンコーダ設定に関する設定を含んでもよい。
【0003】
時間的予測は、ビデオのフレームとも呼ばれるピクチャの間の時間的相関を利用する。時間的予測はインター予測とも呼ばれるが、それは異なるビデオフレームの間(インター)の依存関係を使用する予測であるからである。したがって、現在のブロックとも呼ばれる符号化されているブロックは、参照ピクチャと呼ばれる1つ以上の既に符号化されたピクチャから予測される。参照ピクチャは、ビデオシーケンスの表示順序で、現在のブロックがある現在のピクチャよりも先のピクチャであるとは限らない。エンコーダは、表示順序とは異なる符号化順序でピクチャを符号化してもよい。現在のブロックの予測として、参照ピクチャ内の同一位置のブロックが、決定されてもよい。同一位置のブロックは、参照ピクチャ内で、現在のピクチャ内の現在のブロックと同じ位置にあるブロックである。そのような予測は、動きのないピクチャの領域、つまり、ピクチャ毎に動かないピクチャの領域に関しては正確である。
【0004】
動きを考慮に入れるプレディクタ、つまり、動き補償されたプレディクタを得るために、現在のブロックの予測を決定するとき、概して、動き推定が使用される。したがって、現在のブロックは、同一位置のブロックの位置から動きベクトルによって与えられた距離にある参照ピクチャ内のブロックによって予測される。デコーダが現在のブロックの同じ予測を決定することを可能にするために、動きベクトルが、ビットストリーム内でシグナリングされてもよい。ブロックの各々に関する動きベクトルをシグナリングすることによって引き起こされるシグナリングのオーバーヘッドをさらに削減するために、動きベクトルそれ自身が、推定されてもよい。動きベクトルの推定は、空間および/または時間領域において隣接するブロックの動きベクトルに基づいて実行されてもよい。
【0005】
現在のブロックの予測は、2つ以上の参照ピクチャから得られた予測を重み付けすることによって1つの参照ピクチャを使用して計算されてもよい。参照ピクチャは、隣接するピクチャ、つまり、表示順序で現在のピクチャの直前のピクチャおよび/または直後のピクチャが現在のピクチャに類似している可能性が最も高いので、隣接するピクチャであってもよい。しかし、概して、参照ピクチャは、表示順序で現在のピクチャの前または後およびビットストリーム(復号順序)で現在のピクチャの前の任意のその他のピクチャであってもよい。これは、たとえば、ビデオコンテンツにおける遮蔽および/または非線形の動きの場合に利点をもたらしてもよい。したがって、参照ピクチャの識別情報も、ビットストリーム内でシグナリングされてもよい。
【0006】
インター予測の特別なモードは、2つの参照ピクチャが現在のブロックの予測を生成する際に使用されるいわゆる双方向予測である。特に、それぞれの2つの参照ピクチャにおいて決定された2つの予測が、現在のブロックの予測信号へと組み合わされる。双方向予測は、単方向予測、つまり、単一の参照ピクチャのみを使用する予測よりも現在のブロックのより正確な予測をもたらしてもよい。より正確な予測は、現在のブロックおよび予測のピクセルの間のより小さな差(「残差」とも呼ばれる)につながり、それらの差は、より効率的に符号化される、つまり、より短いビットストリームへと圧縮されてもよい。概して、2つより多くの参照ピクチャが、現在のブロックを予測するためにそれぞれの2つより多くの参照ブロックを発見するために使用されてもよく、つまり、多参照インター予測が、適用されうる。したがって、多参照予測という用語は、双方向予測および2つより多くの参照ピクチャを使用する予測を含む。
【0007】
より正確な動き推定を提供するために、参照ピクチャの解像度は、ピクセル間のサンプルを補間することによって高められてもよい。分数ピクセル補間が、最も近いピクセルの加重平均によって実行されうる。半ピクセルの解像度の場合、たとえば、概して、双一次補間が使用される。その他の分数ピクセルは、それぞれの最も近いピクセルと予測されているピクセルとの間の距離の逆数によって重み付けされた最も近いピクセルの平均として計算される。
【0008】
動きベクトルの推定は、現在のブロックと参照ピクチャ内で候補動きベクトルによって指し示される対応する予測ブロックとの間で類似性が計算される計算が複雑なタスクである。概して、探索領域は、画像のM×Mサンプルを含み、M×M個の候補位置のうちのサンプル位置の各々が、テストされる。テストは、N×Nの参照ブロックCと探索領域のテストされる候補位置にあるブロックRとの間の類似性の尺度の計算を含む。その単純さから、差分絶対値和(SAD)は、この目的で頻繁に使用される尺度であり、
【数1】
によって与えられる。
【0009】
上の式において、xおよびyは、探索領域内の候補位置を定義し、一方、インデックスiおよびjは、参照ブロックCおよび候補ブロックR内のサンプルを表す。候補位置は、多くの場合、ブロックの変位またはオフセットと呼ばれ、これは、ブロックマッチングを、探索領域内で参照ブロックをシフトし、参照ブロックCと探索領域の重なり合う部分との間の類似性を計算することとして表現することを反映する。複雑さを減らすために、通常、候補動きベクトルの数が、候補動きベクトルを特定の探索空間に制限することによって削減される。探索空間は、たとえば、現在の画像内の現在のブロックの位置に対応する参照ピクチャ内の位置の周りのピクセルの数および/または位置によって定義されてもよい。M×M個すべての候補位置xおよびyに関してSADを計算した後、最も一致するブロックRは、参照ブロックCとの最も高い類似性に対応する最も低いSADをもたらす位置のブロックである。一方、候補動きベクトルは、隣接するブロックの動きベクトルによって形成された候補動きベクトルのリストによって定義されてもよい。
【0010】
通常、動きベクトルは、エンコーダ側で少なくとも部分的に決定され、符号化されたビットストリーム内でデコーダにシグナリングされる。しかし、動きベクトルは、デコーダにおいても導出されてもよい。そのような場合、現在のブロックは、デコーダにおいて利用可能でなく、参照ピクチャ内で候補動きベクトルが指し示すブロックとの類似性を計算するために使用されることができない。したがって、現在のブロックの代わりに、既に復号されたブロックのピクセルから構築されるテンプレートが使用される。たとえば、現在のブロックに隣接する既に復号されたピクセルが、使用されてもよい。そのような動き推定は、シグナリングを削減するという利点をもたらし、つまり、動きベクトルは、エンコーダとデコーダとの両方において同じ方法で導出され、したがって、シグナリングは、必要とされない。一方、そのような動き推定の正確性は、より低くてもよい。
【0011】
正確さとシグナリングのオーバーヘッドとの間の折り合いをつけるために、動きベクトルの推定は、2つのステップ、つまり、動きベクトルの導出および動きベクトルの精緻化に分割されてもよい。たとえば、動きベクトルの導出は、候補のリストからの動きベクトルの選択を含んでもよい。そのような選択された動きベクトルは、たとえば、探索空間内の探索によってさらに精緻化されてもよい。探索領域内の探索は、各候補動きベクトルに関して、つまり、候補動きベクトルが指し示すブロックの各候補位置に関してコスト関数を計算することに基づく。
【0012】
文献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の動きベクトルの周りの探索空間内の半ピクセルの解像度による探索によってさらに精緻化される動きベクトルの精緻化を示す。
【0013】
動きベクトルの精緻化を実行するためには、少なくとも、現在のブロックが精緻化を実行するために必要なサンプル、つまり、探索空間に対応するサンプルおよび探索空間におけるテンプレートマッチングが実行されるときにアクセスされうるサンプルをメモリに記憶する必要がある。
【0014】
外部メモリアクセスは、現在のハードウェアのアーキテクチャおよび/またはソフトウェアの実装の重要な設計パラメータである。これは、外部メモリアクセスが内部メモリ利用に比べて処理を遅くするという事実に原因がある。一方、チップ上の内部メモリは、たとえば、チップサイズの実装が原因で制限される。
【発明の概要】
【課題を解決するための手段】
【0015】
本開示は、分数補間と組み合わせて実施されるときに動きベクトルの精緻化がオンチップメモリのサイズまたはさらには外部メモリアクセスのさらなる増加を必要としてもよいという観察に基づく。どちらの選択肢も、望ましくない可能性がある。
【0016】
上述の問題に鑑みて、本開示は、外部メモリへのアクセスの回数、および符号化ブロックに関する動きベクトルの動きベクトルの精緻化のためにアクセス可能であるために必要なサンプルの数を考慮に入れることを可能にする動きベクトルの予測を提供する。
【0017】
これは、サンプルの数を整数サンプルのテンプレートマッチングのために必要なサンプルの数に制限し、追加的な整数サンプルを必要とすることなく所定の補間フィルタによって取得可能な分数位置のみを有効にすることによって実現される。
【0018】
本発明の態様によれば、予測ブロックに関する動きベクトルの決定のための装置であって、予測ブロックに関する初期動きベクトルおよびテンプレートを取得し、探索空間において前記テンプレートとのテンプレートマッチングによって初期動きベクトルの精緻化を決定するように構成された処理回路を含む、装置が提供される。前記探索空間は、初期動きベクトルによって与えられる位置にあり、1つ以上の分数サンプル位置を含み、探索空間に属する分数サンプル位置の各々が、ウィンドウ内の整数サンプルのみを評価する予め定義されたタップサイズのフィルタを用いる補間フィルタリングによって得られ、前記ウィンドウが、前記探索空間におけるテンプレートマッチングのためにアクセス可能な整数サンプルによって形成される。
【0019】
そのような動きベクトルの決定の利点のうちの1つは、外部メモリへのまたは広く参照ピクチャ全体を記憶するメモリ/ストレージ/キャッシュへのアクセスの回数を同時に制限しながら予測ブロックに関する動きベクトルの精緻化を実行するためにアクセス可能である必要があるサンプルの制限された数である。
【0020】
例において、ウィンドウは、予測ブロックの初期動きベクトルに対してN整数サンプル列およびM整数サンプル行として定義され、NおよびMは、非ゼロの整数値である。そのような定義は、動きベクトルの決定および/または精緻化の目的でどのサンプルが取り出されるべきであるかを指定するための簡単な手段を提供してもよい。それはまた、たとえば、ビットストリームまたは規格の中で容易に構成可能であってもよい。
【0021】
1つの実施形態において、処理回路は、最も新しい反復において探索空間のより多くの最も一致する位置のうちの1つによって与えられる方向に反復的に拡張される探索空間における前記テンプレートとのテンプレートマッチングによって初期動きベクトルの精緻化を決定するように構成され、ウィンドウは、反復の予め定義された最大回数によって定義される。
【0022】
探索空間は、サブウィンドウ内の各分数サンプルの補間フィルタリングのためにアクセスされるすべての整数サンプルが予め定義されたタップサイズの補間フィルタに関して前記ウィンドウ内にあるようなウィンドウの矩形のサブウィンドウを含んでもよい。
【0023】
探索空間は、ウィンドウの矩形の探索サブウィンドウを含んでもよく、初期動きベクトルの精緻化は、探索サブウィンドウ内の各分数サンプルの補間フィルタリングのためにアクセスされる整数サンプルが予め定義されたタップサイズの補間フィルタに関して前記ウィンドウ内にあるような矩形の探索サブウィンドウにおける前記テンプレートとのテンプレートマッチングによって決定される。
【0024】
1つの実装において、処理回路は、最も新しい反復において探索空間のより多くの最も一致する位置のうちの1つによって与えられる方向に反復的に拡張される探索空間における前記テンプレートとのテンプレートマッチングによって初期動きベクトルの精緻化を決定するように構成されてもよく、反復は、最も新しい反復の探索空間内の少なくとも1つのサンプルが探索サブウィンドウの外にあるときに終了される。
【0025】
特に、特定の例として、補間フィルタは、分数位置が整数サンプルのそれぞれの水平方向のラインまたは垂直方向のライン上にあるとき、K個の水平方向または垂直方向の何れの整数サンプルも評価する1次元フィルタである。
【0026】
さらに、たとえば、探索空間は、
- サブウィンドウの上もしくは下に隣接し、整数サンプルの水平方向のライン上にあるか、または
- サブウィンドウの左側もしくは右側に隣接し、整数サンプルの垂直方向のライン上にあるか
の何れの、サブウィンドウの外にある分数位置をさらに含む。
【0027】
本発明の別の態様によれば、予測ブロックに分割されたビデオ画像をビットストリームに符号化するための符号化装置が、提供され、符号化装置は、上述の予測ブロックに関する動きベクトルの決定のための装置と、予測ブロックと決定された動きベクトルに基づく位置に予測ブロックによって与えられるプレディクタとの間の差を符号化するため、ならびに符号化された差および初期動きベクトルを含むビットストリームを生成するための符号化回路とを含む。
【0028】
本発明の別の態様によれば、予測ブロックに分割されたビデオ画像をビットストリームから復号するための復号装置が、提供され、復号装置は、初期動きベクトル、および予測ブロックと精緻化された動きベクトルによって指定される位置に予測ブロックによって与えられるプレディクタとの間の符号化された差を、ビットストリームから解析するための解析ユニットと、上述の予測ブロックに関する精緻化された動きベクトルの決定のための装置と、解析された差と、精緻化された動きベクトルによって指定される位置に予測ブロックによって与えられるプレディクタとの関数として予測ブロックを再構築するための復号回路とを含む。関数は、総和であるまたは総和を含んでもよい。関数は、切り抜き、丸め、スケーリング、またはさらなる演算をさらに含んでもよい。
【0029】
本発明の別の態様によれば、予測ブロックに関する動きベクトルの決定のための方法であって、予測ブロックに関する初期動きベクトルおよびテンプレートを取得するステップ、探索空間において前記テンプレートとのテンプレートマッチングによって初期動きベクトルの精緻化を決定するステップを含み、前記探索空間が、初期動きベクトルによって与えられる位置にあり、1つ以上の分数サンプル位置を含み、探索空間に属する分数サンプル位置の各々が、ウィンドウ内の整数サンプルのみを評価する予め定義されたタップサイズのフィルタを用いる補間フィルタリングによって得られ、前記ウィンドウが、前記探索空間におけるテンプレートマッチングのためにアクセス可能な整数サンプルによって形成される、方法が提供される。
【0030】
たとえば、ウィンドウは、予測ブロックの初期動きベクトルに対してN整数サンプル列およびM整数サンプル行として定義され、NおよびMは、非ゼロの整数値である。
【0031】
実施形態において、初期動きベクトルの精緻化は、最も新しい反復において探索空間のより多くの最も一致する位置のうちの1つによって与えられる方向に反復的に拡張される探索空間における前記テンプレートとのテンプレートマッチングによって決定され、ウィンドウは、反復の予め定義された最大回数によって定義される。
【0032】
例示的な実装において、探索空間は、サブウィンドウ内の各分数サンプルの補間フィルタリングのためにアクセスされるすべての整数サンプルが予め定義されたタップサイズの補間フィルタに関して前記ウィンドウ内にあるようなウィンドウの矩形のサブウィンドウを含む。
【0033】
探索空間は、ウィンドウの矩形の探索サブウィンドウを含んでもよく、初期動きベクトルの精緻化は、探索サブウィンドウ内の各分数サンプルの補間フィルタリングのためにアクセスされる整数サンプルが予め定義されたタップサイズの補間フィルタに関して前記ウィンドウ内にあるような矩形の探索サブウィンドウにおける前記テンプレートとのテンプレートマッチングによって決定される。
【0034】
1つの実装において、初期動きベクトルの精緻化は、最も新しい反復において探索空間のより多くの最も一致する位置のうちの1つによって与えられる方向に反復的に拡張される探索空間における前記テンプレートとのテンプレートマッチングによって決定されてもよく、反復は、最も新しい反復の探索空間内の少なくとも1つのサンプルが探索サブウィンドウの外にあるときに終了される。
【0035】
さらに、たとえば、補間フィルタは、分数位置が整数サンプルのそれぞれの水平方向のラインまたは垂直方向のライン上にあるとき、K個の水平方向または垂直方向の何れの整数サンプルも評価する1次元フィルタである。
【0036】
有利なことに、探索空間は、サブウィンドウの上もしくは下に隣接し、整数サンプルの水平方向のライン上にあるか、またはサブウィンドウの左側もしくは右側に隣接し、整数サンプルの垂直方向のライン上にあるかの何れの、サブウィンドウの外にある分数位置をさらに含む。
【0037】
本発明の別の態様によれば、予測ブロックに分割されたビデオ画像をビットストリームに符号化するための符号化方法が、提供され、符号化方法は、上述の方法のいずれかに係る予測ブロックに関する動きベクトルを決定するステップと、予測ブロックと決定された動きベクトルに基づく位置に予測ブロックによって与えられるプレディクタとの間の差を符号化し、符号化された差および初期動きベクトルを含むビットストリームを生成するステップとを含む。
【0038】
本発明の別の態様によれば、予測ブロックに分割されたビデオ画像をビットストリームから復号するための復号方法が、提供され、復号方法は、初期動きベクトル、および予測ブロックと精緻化された動きベクトルによって指定される位置に予測ブロックによって与えられるプレディクタとの間の符号化された差を、ビットストリームから解析するステップと、上述の方法のいずれかに係る予測ブロックに関する精緻化された動きベクトルを決定するステップと、解析された差と、精緻化された動きベクトルによって指定される位置に予測ブロックによって与えられるプレディクタとの和として予測ブロックを再構築するステップとを含む。
【0039】
本発明の態様によれば、プロセッサ/処理回路によって実行されるときに上述の態様または実施形態またはそれらの組み合わせのいずれかに係るステップを実行する命令を記憶する非一時的コンピュータ可読ストレージ媒体が、提供される。
【0040】
以下で、例示的な実施形態が、添付の図および図面を参照してより詳細に説明される。
【図面の簡単な説明】
【0041】
【
図1】動きベクトルの導出および精緻化が使用されてもよいエンコーダの例示的な構造を示すブロック図である。
【
図2】動きベクトルの導出および精緻化が使用されてもよいデコーダの例示的な構造を示すブロック図である。
【
図3】双方向予測に好適な例示的なテンプレートマッチングを示す概略図である。
【
図4】単方向および双方向予測に好適な例示的なテンプレートマッチングを示す概略図である。
【
図5】ビットストリーム内で精緻化される初期動きベクトルを提供することなく動作する動きベクトルの導出の段階を示すブロック図である。
【
図6】本発明の実施形態を実装するための例示的なハードウェアを示すブロック図である。
【
図7】符号化ブロックに関して、アクセスされるために利用可能であるべきサンプルをともなう例示的なウィンドウを示す概略図である。
【
図9】補間フィルタリングによる水平方向のメモリアクセスウィンドウの拡張を示す概略図である。
【
図10】分数サンプル位置に関するサブウィンドウの定義を示す概略図である。
【
図11】メモリアクセスウィンドウの例示的な定義を示す概略図である。
【
図12】動きベクトルの精緻化のための探索空間の位置を形成することを許される分数位置を含む例示的な位置を示す概略図である。
【
図13】動きベクトルの精緻化のための探索空間の位置を形成することを許されない例示的な分数位置を示す概略図である。
【
図14】探索空間のどの位置が動きベクトルの精緻化のためにテンプレートマッチングによってテストされることを許されるかを決定するための方法を示す流れ図である。
【
図15】動きベクトルの精緻化のための探索空間の位置を形成することを許される分数位置を含む例示的な位置を示す概略図である。
【
図16】メモリアクセスウィンドウにおける反復的な精緻化プロセスを示す流れ図である。
【
図17】探索サブウィンドウにおける反復的な精緻化プロセスを示す流れ図である。
【発明を実施するための形態】
【0042】
本開示は、参照ピクチャ内の分数位置を取得するために動きベクトルの精緻化および補間を実行するためにアクセス可能であるべきサンプルの数の調整に関する。
【0043】
上述のように、外部メモリアクセスは、今日のハードウェアおよびソフトウェアのアーキテクチャにおいて最も重要な設計の考慮事項のうちの1つである。たとえば、動きベクトルの精緻化の場合の、特にテンプレートマッチングを含むときの動きベクトルの推定はまた、探索空間の分数位置を得るために補間フィルタリングとともに使用されてもよい。補間フィルタリングの使用は、メモリにおいてアクセスされる必要があるサンプルの数の増加を必要としてもよい。しかし、これは、高価なオンチップメモリの増加または外部メモリアクセスの回数の増加の何れにつながってもよく、これは、一方で実施を遅くする。特にデコーダ側で、これらの問題は、望ましくないより高価なまたはより遅いアプリケーションにつながる可能性がある。
【0044】
そのような状況を防ぐために、本開示は、外部メモリアクセスに制限をかける。本発明の実施形態によれば、動きベクトルの精緻化のためにアクセス可能であるべきサンプルのウィンドウが、精緻化されていない動きベクトルによって、つまり、初期動きベクトルによって指し示される位置の周りに定義される。ウィンドウは、動きベクトルの精緻化を実行するためにメモリにおいてアクセスされる必要があるサンプルの最大数を定義する。概して、アクセス可能であるべきサンプルは、テンプレートマッチングが実行されるべき探索空間の位置のサンプルと、探索空間内のすべての位置に関してテンプレートとマッチングされるべきであるサンプルとを含む。後者は、概して、探索空間を超える。簡単さの理由で、メモリアクセスのウィンドウは、符号化ブロック(動きベクトルが発見されるべき現在のブロック)の周りの拡張として定義されてもよい。たとえば、現在のブロックの左および右の境界からRサンプルならびに上および下の境界からRサンプルが、ウィンドウを定義してもよい。言い換えると、現在のブロックがN×Nサンプルのサイズを有するとき、アクセスウィンドウは、(R+N+R)×(R+N+R)、つまり、(N+2R)×(N+2R)サンプルのサイズを有してもよい。たとえば、Rは、4に等しくてもよい。しかし、現在のブロックは、垂直方向のサイズNが水平方向のサイズNと異なってもよく、上方向、下方向、左方向、および右方向の拡張サンプルの数も、異なってもよい。
【0045】
本開示によれば、メモリアクセスウィンドウを制限するために、補間のために必要なサンプルが整数サンプルのために定義された動きベクトルの精緻化のためのメモリアクセスのウィンドウ内にある場合にのみ、分数ピクセル座標が、動きベクトルの精緻化によってアクセスされる。
【0046】
図1は、ビデオストリームのフレームまたはピクチャの入力画像サンプルを受信するための入力と、符号化されたビデオビットストリームを生成するための出力とを含むエンコーダ100を示す。本開示における用語「フレーム」は、ピクチャの同義語として使用される。しかし、本開示は、インターレースが適用される場合のフィールドにも適用可能であることが留意される。概して、ピクチャは、m掛けるnピクセルを含む。これは、画像サンプルに対応し、1つ以上の色成分を含んでもよい。簡潔にするために、以下の説明は、輝度のサンプルを意味するピクセルに言及する。しかし、本発明の動きベクトルの探索は、クロミナンスまたはRGBなどの探索空間の成分などを含む任意の色成分に適用されうることが留意される。一方、1つの成分に関する動きベクトルの推定のみを実行し、決定された動きベクトルをさらなる(またはすべての)成分に適用することが、有益であってもよい。
【0047】
符号化される入力ブロックは、必ずしも同じサイズではない。1つのピクチャは、異なるサイズのブロックを含んでもよく、異なるピクチャのブロックラスタも、異なってもよい。
【0048】
説明のための具現化において、エンコーダ100は、ビデオストリームに予測、変換、量子化、およびエントロピー符号化を適用するように構成される。符号化されたビデオビットストリームを出力として生成するために、変換、量子化、およびエントロピー符号化が、変換ユニット106、量子化ユニット108、およびエントロピー符号化ユニット170によってそれぞれ実行される。
【0049】
ビデオストリームは、複数のフレームを含んでもよく、各フレームは、イントラ符号化されるかまたはインター符号化されるかの何れである特定のサイズのブロックに分割される。たとえば、ビデオストリームの第1のフレームのブロックが、イントラ予測ユニット154によってイントラ符号化される。イントラフレームは、同じフレーム内の情報のみを使用して符号化され、したがって、イントラフレームは、独立して復号されることが可能であり、ランダムアクセスのためのビットストリーム内のエントリポイントを提供することが可能である。ビデオストリームのその他のフレームのブロックは、インター予測ユニット144によってインター符号化されてもよく、つまり、既に符号化されたフレーム(参照フレーム)からの情報が、時間的冗長性を減らすために使用され、したがって、インター符号化されたフレームの各ブロックは、参照フレーム内のブロックから予測される。モード選択ユニット160は、フレームのブロックがイントラ予測ユニット154によって処理されるべきかまたはインター予測ユニット144によって処理されるべきかを選択するように構成される。このモード選択ユニット160はまた、イントラまたはインター予測のパラメータを制御する。画像情報のリフレッシュを可能にするために、イントラ符号化されたブロックが、インター符号化されたフレームの中で提供されてもよい。さらに、イントラ符号化されたブロックのみを含むイントラフレームは、復号のためのエントリポイント、つまり、デコーダが既に符号化されたフレームからの情報を持たずに復号を開始することができるポイントを提供するためにビデオシーケンスに定期的に挿入されてもよい。
【0050】
イントラ推定ユニット152およびイントラ予測ユニット154は、イントラ予測を実行するユニットである。特に、イントラ推定ユニット152は、元の画像の知識にも基づいて予測モードを導出してもよく、一方、イントラ予測ユニット154は、差分符号化のために対応するプレディクタ、つまり、選択された予測モードを使用して予測されたサンプルを提供する。空間的または時間的予測を実行するために、符号化されたブロックは、逆量子化ユニット110および逆変換ユニット112によってさらに処理されてもよい。ブロックの再構築後に、ループフィルタリングユニット120が、復号された画像の品質をさらに改良するために適用される。次いで、フィルタリングされたブロックは、参照フレームを形成し、次いで、参照フレームは、復号済みピクチャバッファ130に記憶される。エンコーダ側のそのような復号ループ(デコーダ)は、デコーダ側で再構築される参照ピクチャと同じである参照フレームを生成するという利点を提供する。したがって、エンコーダ側およびデコーダ側は、対応する方法で動作する。本明細書における用語「再構築」は、復号された残差ブロックに予測ブロックを加えることによって再構築されたブロックを得ることを指す。
【0051】
インター推定ユニット142は、インター符号化される現在のフレームまたはピクチャのブロック、および復号済みピクチャバッファ130からの1つ以上の参照フレームを入力として受け取る。動き推定が、インター推定ユニット142によって実行され、一方、動き補償は、インター予測ユニット144によって適用される。動き推定は、たとえば、符号化される元の画像も使用して特定のコスト関数に基づいて動きベクトルおよび参照フレームを得るために使用される。たとえば、動き推定ユニット142は、初期動きベクトル推定を提供してもよい。次いで、初期動きベクトルは、ベクトルの形態で直接、またはエンコーダおよびデコーダにおいて同じ方法で所定のルールに基づいて構築される候補のリスト内の動きベクトルの候補を指すインデックスとしてビットストリーム内でシグナリングされてもよい。次いで、動き補償は、参照フレーム内の現在のブロックと同一位置のブロックの参照フレーム内の参照ブロックへの変換として、つまり、動きベクトルによって現在のブロックのプレディクタを導出する。インター予測ユニット144は、現在のブロックに関する予測ブロックを出力し、前記予測ブロックは、コスト関数を最小化する。たとえば、コスト関数は、符号化される現在のブロックとその現在のブロックの予測ブロックとの間の差であってもよく、つまり、コスト関数は、残差ブロックを最小化する。残差ブロックの最小化は、たとえば、現在のブロックおよび候補参照ピクチャ内の候補ブロックのすべてのピクセル(サンプル)の間の差分絶対値和(SAD)を計算することに基づく。しかし、概して、平均2乗誤差(MSE)または構造類似性測定基準(SSIM)などの任意のその他の類似性測定基準が、使用されてもよい。
【0052】
しかし、コスト関数はまた、そのようなインターブロックを符号化するために必要なビットの数および/またはそのような符号化の結果として生じる歪みであってもよい。したがって、レート-歪み最適化手順が、動きベクトルの選択、ならびに/または概してブロックに関してインター予測を使用すべきかもしくはイントラ予測を使用すべきかおよびどの設定で使用すべきかなどの符号化パラメータを決めるために使用されてもよい。
【0053】
イントラ推定ユニット152およびイントラ予測ユニット154は、イントラ符号化される現在のフレームまたはピクチャのブロック、および現在のフレームの既に再構築された領域からの1つ以上の参照サンプルを入力として受け取る。次いで、イントラ予測は、現在のフレームの参照サンプルの関数によって現在のフレームの現在のブロックのピクセルを記述する。イントラ予測ユニット154は、現在のブロックに関する予測ブロックを出力し、前記予測ブロックは、有利なことに、符号化される現在のブロックとその現在のブロックの予測ブロックとの間の差を最小化し、つまり、前記予測ブロックは、残差ブロックを最小化する。残差ブロックの最小化は、たとえば、レート-歪み最適化手順に基づくことが可能である。特に、予測ブロックは、参照サンプルの方向補間として得られる。方向は、レート-歪み最適化によっておよび/またはインター予測に関連して上で述べられた同様の尺度を計算することによって決定されてもよい。
【0054】
インター推定ユニット142は、インター符号化される現在のフレームまたはピクチャのブロックまたはより普遍的な形態の画像サンプルおよび2つ以上の既に復号されたピクチャ231を入力として受け取る。次いで、インター予測は、参照ピクチャの参照画像サンプルへの動きベクトルによって現在のフレームの現在の画像サンプルを記述する。インター予測ユニット142は、現在の画像サンプルに関する1つ以上の動きベクトルを出力し、動きベクトルによって指し示される前記参照画像サンプルは、有利なことに、符号化される現在の画像サンプルとその画像サンプルの参照画像サンプルとの間の差を最小化し、つまり、前記参照画像サンプルは、残差画像サンプルを最小化する。次いで、現在のブロックに関するプレディクタが、差分符号化のためにインター予測ユニット144によって提供される。
【0055】
次いで、現在のブロックとその現在のブロックの予測との間の差、つまり、残差ブロック105が、変換ユニット106によって変換される。変換係数107が、量子化ユニット108によって量子化され、エントロピー符号化ユニット170によってエントロピー符号化される。そのように生成された符号化されたピクチャデータ171、つまり、符号化されたビデオビットストリームは、イントラ符号化されたブロックおよびインター符号化されたブロックならびに(モードインジケーション、動きベクトルのインジケーション、および/またはイントラ予測方向などの)対応するシグナリングを含む。変換ユニット106は、フーリエまたは離散コサイン変換(DFT/FFTまたはDCT)などの線形変換を適用してもよい。空間周波数領域へのそのような変換は、結果として得られる係数107が概して、より低い周波数に、より高い値を有するという利点をもたらす。したがって、(ジグザグなどの)効果的な係数のスキャンおよび量子化の後、値の結果として得られるシーケンスは、概して、ゼロの連続の始めおよび終わりにいくらかのより大きな値を有する。これは、さらに効率的な符号化を可能にする。量子化ユニット108は、係数値の解像度を下げることによって実際の不可逆圧縮を実行する。次いで、エントロピー符号化ユニット170が、係数値に2進コードワードを割り当ててビットストリームを生成する。エントロピー符号化ユニット170はまた、シグナリング情報(
図1に示さず)を符号化する。
【0056】
図2は、ビデオデコーダ200を示す。ビデオデコーダ200は、特に、復号済みピクチャバッファ230、インター予測ユニット244、およびブロック予測ユニットであるイントラ予測ユニット254を含む。復号済みピクチャバッファ230は、符号化されたビデオビットストリームから再構築された少なくとも1つの(単方向予測のための)または少なくとも2つの(双方向予測のための)参照フレームを記憶するように構成され、前記参照フレームは、符号化されたビデオビットストリームの現在のフレーム(現在復号されているフレーム)とは異なる。イントラ予測ユニット254は、復号されるブロックの推定である予測ブロックを生成するように構成される。イントラ予測ユニット254は、再構築されたブロック215またはバッファ216から取得される参照サンプルに基づいてこの予測を生成するように構成される。
【0057】
デコーダ200は、ビデオエンコーダ100によって生成された符号化されたビデオビットストリームを復号するように構成され、デコーダ200とエンコーダ100との両方が、符号化される/復号されるそれぞれのブロックに関して同一の予測を生成することが好ましい。復号済みピクチャバッファ230、再構築されたブロック215、バッファ216、およびイントラ予測ユニット254の特徴は、
図1の復号済みピクチャバッファ130、再構築されたブロック115、バッファ116、およびイントラ予測ユニット154の特徴と同様である。
【0058】
ビデオデコーダ200は、たとえば、ビデオエンコーダ100の逆量子化ユニット110、逆変換ユニット112、およびループフィルタリングユニット120にそれぞれ対応する逆量子化ユニット210、逆変換ユニット212、およびループフィルタリングユニット220のように、ビデオエンコーダ100にも存在するさらなるユニットを含む。
【0059】
エントロピー復号ユニット204は、受信された符号化されたビデオビットストリームを復号し、それに対応して、量子化された残差変換係数209およびシグナリング情報を得るように構成される。量子化された残差変換係数209は、残差ブロックを生成するために逆量子化ユニット210および逆変換ユニット212に供給される。残差ブロックは、予測ブロック265に足され、足したものが、復号されたビデオを得るためにループフィルタリングユニット220に供給される。復号されたビデオのフレームは、復号済みピクチャバッファ230に記憶され、インター予測のための復号されたピクチャ231として働くことができる。
【0060】
概して、
図1および
図2のイントラ予測ユニット154および254は、符号化される必要があるまたは復号される必要があるブロックに関する予測信号を生成するために、既に符号化された領域からの参照サンプルを使用することができる。
【0061】
エントロピー復号ユニット204は、その入力として、符号化されたビットストリーム171を受け取る。概して、ビットストリームは、まず解析され、つまり、シグナリングパラメータおよび残差が、ビットストリームから抽出される。通常、ビットストリームのシンタックスおよびセマンティックは、エンコーダおよびデコーダが相互運用可能なようにして働いてもよいように規格によって定義される。上の背景技術の節において説明されたように、符号化されたビットストリームは、予測残差を含むだけではない。動き補償予測の場合、動きベクトルのインジケーションも、ビットストリームに符号化され、デコーダにおいてビットストリームから解析される。動きベクトルのインジケーションは、動きベクトルが提供される参照ピクチャによっておよび動きベクトルの座標によって与えられてもよい。ここまでに、完全な動きベクトルを符号化することが、考察された。しかし、やはり、現在の動きベクトルとビットストリーム内の前の動きベクトルとの間の差のみが、符号化されてもよい。この手法は、隣接するブロックの動きベクトルの間の冗長性を利用することを可能にする。
【0062】
参照ピクチャを効率的に符号化するために、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のリストのいかなる内容にも限定されない。
【0063】
リストL0およびL1は、規格で定義され、固定されてもよい。しかし、それらのリストをビデオシーケンスの始めにシグナリングすることによって、符号化/復号のより高い柔軟性が実現されてもよい。したがって、エンコーダは、特定の参照ピクチャがインデックスに従って順序付けられるようにしてリストL0およびL1を構成してもよい。L0およびL1のリストは、同じ固定のサイズを有してもよい。概して、2つより多くのリストがあってもよい。動きベクトルは、参照ピクチャ内の座標によって直接シグナリングされてもよい。代替的に、H.265にも規定されているように、候補動きベクトルのリストが、構築されてもよく、リスト内で特定の動きベクトルに関連するインデックスが、送信されうる。
【0064】
通常、現在のブロックの動きベクトルは、現在のピクチャ内または前に符号化されたピクチャ内の隣接するブロックの動きベクトルと相関がある。これは、隣接するブロックが同様の動きをする同じ動く物体に対応する可能性が高く、物体の動きが時間の変化とともに急に変化する可能性が低いためである。それ故に、隣接するブロック内の動きベクトルをプレディクタとして使用することは、シグナリングされる動きベクトルの差のサイズを減らす。通常、動きベクトルプレディクタ(MVP)が、参照ピクチャ内の空間的に隣接するブロックからまたは時間的に隣接するもしくは同一位置のブロックからの既に符号化された/復号された動きベクトルから導出される。H.264/AVCにおいて、これは、3つの空間的に隣接する動きベクトルの成分毎の中央値をとることによって行われる。この手法を使用すると、プレディクタのシグナリングが必要とされない。参照ピクチャ内の同一位置のブロックからの時間的なMVPは、H.264/AVCのいわゆる時間ダイレクトモードにおいてのみ考慮される。H.264/AVCのダイレクトモードは、動きベクトル以外の動きデータを導出するためにも使用される。したがって、それらのモードは、HEVCのブロック合併の概念により関連する。HEVCにおいては、MVPを暗黙的に導出する手法が、MVPのリストからのどのMVPが動きベクトルの導出のために使用されるのかを明示的にシグナリングする動きベクトル競合として知られる技術によって置き換えられた。HEVCの可変符号化四分木ブロック構造は、潜在的なMVP候補としての動きベクトルを有するいくつかの隣接するブロックを持つ1つのブロックをもたらすことができる。左の隣接するブロックを例に取ると、最悪の場合、64x64のルマ符号化ツリーブロックがさらに分割されず、左のブロックが最大の深さまで分割されるとき、64x64のルマ予測ブロックが、左に16個の4x4のルマ予測ブロックを有することができる。
【0065】
高度動きベクトル予測(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ら(編)による書籍、High Efficiency Video Coding (HEVC): Algorithms and Architectures、Springer、2014の、特に第5章に見つけられうる。
【0066】
シグナリングのオーバーヘッドのさらなる増加なしに動きベクトルの推定をさらに改良するために、エンコーダ側で導出され、ビットストリーム内で提供される動きベクトルをさらに精緻化することが、有益であってもよい。動きベクトルの精緻化は、エンコーダからの支援なしにデコーダにおいて実行されてもよい。エンコーダは、そのデコーダループ内で、対応する動きベクトルを得るために同じ精緻化を使用してもよい。動きベクトルの精緻化は、参照ピクチャの整数ピクセル位置および分数ピクセル位置を含む探索空間において実行される。たとえば、分数ピクセル位置は半ピクセル位置または1/4ピクセルもしくはさらなる分数位置であってもよい。分数ピクセル位置は、双一次補間などの補間によって整数(フルピクセル)位置から得られてもよい。
【0067】
現在のブロックの双方向予測においては、リストL0のそれぞれの第1の動きベクトルおよびリストL1の第2の動きベクトルを使用して得られた2つの予測ブロックが、単一の予測信号へと組み合わされ、これは、単方向予測よりも元の信号により優れた適応をもたらすことができ、結果として、より少ない残差情報と、おそらくは、より効率的な圧縮とをもたらす。
【0068】
デコーダにおいては、現在のブロックが復号されているために現在のブロックが利用可能でないので、動きベクトルの精緻化の目的で、現在のブロックの推定であり、既に処理された(つまり、エンコーダ側で符号化されたおよびデコーダ側で復号された)画像の部分に基づいて構築されるテンプレートが使用される。
【0069】
まず、第1の動きベクトルの推定MV0および第2の動きベクトルの推定MV1が、デコーダ200において入力として受け取られる。エンコーダ側100において、動きベクトルの推定MV0およびMV1は、ブロックマッチングによって、および/または(同じピクチャ内のもしくは隣接するピクチャ内の)現在のブロックに隣接するブロックの動きベクトルによって形成された(マージリストなどの)候補のリストの探索によって得られてもよい。次いで、MV0およびMV1は、ビットストリーム内でデコーダ側に有利にシグナリングされる。しかし、概して、エンコーダの第1の決定段階はまた、シグナリングのオーバーヘッドを削減するという利点をもたらすテンプレートマッチングによって実行されうることが留意される。
【0070】
デコーダ側200において、動きベクトルMV0およびMV1は、有利なことに、ビットストリーム内の情報に基づいて得られる。MV0およびMV1が、直接シグナリングされるかもしくは示差的にシグナリングされるかの何れであり、および/または動きベクトルのリスト(マージリスト)のインデックスが、シグナリングされる。しかし、本開示は、ビットストリーム内で動きベクトルをシグナリングすることに限定されない。むしろ、動きベクトルは、エンコーダの動作に対応して既に第1の段階においてテンプレートマッチングによって決定されてもよい。第1の段階(動きベクトルの導出)のテンプレートマッチングは、第2の精緻化の段階の探索空間とは異なる探索空間に基づいて実行されてもよい。特に、精緻化は、より高い解像度(つまり、探索位置の間のより短い距離)を有する探索空間において実行されてもよい。
【0071】
それぞれのMV0およびMV1が指し示す2つの参照ピクチャRefPic0およびRefPic1のインジケーションが、デコーダにやはり提供される。参照ピクチャは、前の処理、つまり、それぞれの符号化および復号の結果としてエンコーダおよびデコーダ側の復号済みピクチャバッファに記憶される。これらの参照ピクチャのうちの1つが、探索によって動きベクトルの精緻化のために選択される。動きベクトルの決定のための装置の参照ピクチャ選択ユニットは、MV0が指し示す第1の参照ピクチャおよびMV1が指し示す第2の参照ピクチャを選択するように構成される。選択に続いて、参照ピクチャ選択ユニットは、動きベクトルの精緻化の実行のために第1の参照ピクチャが使用されるのかまたは第2の参照ピクチャが使用されるのかを決定する。動きベクトルの精緻化を実行するために、第1の参照ピクチャ内の探索領域が、動きベクトルMV0が指し示す候補位置の周りに定義される。探索領域内の候補探索空間位置が、探索空間内でテンプレートマッチングを実行し、差分絶対値和(SAD)などの類似性測定基準を決定することによってテンプレートブロックに最も類似したブロックを発見するために分析される。探索空間の位置は、テンプレートの左上の角がマッチングされる位置を表す。上述のように、左上の角は、単なる慣例であり、概して、中央の点などの探索空間の任意の点が、マッチング位置を表すために使用されうる。
【0072】
上述の文献JVET-D0029によれば、デコーダ側動きベクトル精緻化(DMVR)は、2つのそれぞれの参照ピクチャRefPict0およびRefPict1を指し示す初期動きベクトルMV0およびMV1を入力として有する。これらの初期動きベクトルは、RefPict0およびRefPict1においてそれぞれの探索空間を決定するために使用される。さらに、動きベクトルMV0およびMV1を使用して、以下の通り、MV0およびMV1によって指し示された(サンプルの)それぞれのブロックAおよびBに基づいてテンプレートが構築される。
Template = function ((Block A, Block B))
【0073】
functionは、サンプル毎の加重和と組み合わされたサンプル切り抜き演算であってもよい。次いで、テンプレートは、それぞれの参照ピクチャ0および1においてMV0およびMV1に基づいて決定された探索空間内でテンプレートマッチングを実行するために使用される。それぞれの探索空間内の最良のテンプレートの一致を決定するためのコスト関数は、SAD(Template, Block candA')であり、ブロックcandA'は、MV0によって与えられる位置にかかる探索空間内の候補MVによって指し示される候補符号化ブロックである。
図3は、最も一致するブロックA'の決定および結果として得られる精緻化された動きベクトルMV0'を示す。それに対応して、
図3に示されるように、同じテンプレートが、最も一致するブロックB'およびブロックB'を指し示す対応する動きベクトルMV1'を発見するために使用される。言い換えると、テンプレートが初期動きベクトルMV0およびMV1によって指し示されたブロックAおよびBに基づいて構築された後、精緻化された動きベクトルMV0'およびMV1'が、テンプレートを用いたRefPic0およびRefPic1上の探索によって発見される。
【0074】
動きベクトル導出技術は、フレームレートアップコンバージョン(FRUC)とも呼ばれることがある。概して、初期動きベクトルMV0およびMV1は、エンコーダおよびデコーダが動きベクトルの精緻化のために同じ初期点を使用してもよいことを保証するためにビットストリーム内で示されてもよい。代替的に、初期動きベクトルは、1つ以上の初期候補を含む初期候補のリストを提供することによって得られてもよい。それらの初期候補の各々に関して、精緻化された動きベクトルが決定され、最後に、コスト関数を最小化する精緻化された動きベクトルが選択される。
【0075】
本発明は、
図3を参照して上で説明されたテンプレートマッチングに限定されないことがさらに留意される。
図4は、単方向予測にも適用可能である代替的なテンプレートマッチングを示す。詳細は、文献JVET-A1001、特に、http://phenix.it-sudparis.eu/jvet/においてアクセス可能な、Jianle Chenらによる「Algorithm Description of Joint Exploration Test Model 1」と題された文献JVET-A1001の節「2.4.6. Pattern matched motion vector derivation」に見つけられうる。このテンプレートマッチングの手法のテンプレートは、現在のフレーム内の現在のブロックに隣接するサンプルとして決定される。
図1に示されるように、現在のブロックの上および左の境界に隣接する既に再構築されたサンプルが、取得されてもよく、「L字形テンプレート」と呼ばれる。
【0076】
図5は、さらに使用されてもよい別の種類の動きベクトルの導出を示す。動きベクトルの導出プロセスへの入力は、動きベクトルの導出が適用されるか否かを示すフラグである。暗黙的に、導出プロセスへの別の入力は、(時間的にまたは空間的に)隣接する既に符号化された/再構築されたブロックの動きベクトルである。複数の隣接するブロックの動きベクトルが、動きベクトルの導出の初期探索ステップのための候補として使用される。プロセスの出力は、それぞれ、MV0'(双方向予測が使用される場合は、おそらくMV1'も)ならびに対応する参照ピクチャインデックスrefPict0およびおそらくはrefPict1である。次いで、動きベクトルの精緻化段階は、上述のように、テンプレートマッチングを含む。精緻化された1つ(単方向予測)または複数(双方向予測/マルチフレーム予測)の動きベクトルを発見した後、現在のブロックのプレディクタが、(双方向/マルチ予測に関しては重み付けされたサンプル予測によって、そうでない場合は、精緻化されたMVによって指し示されるサンプルを参照することによって)構築される。
【0077】
本発明は、上述の2つのテンプレートマッチング方法に限定されない。例として、(文献JVET-A1001にも記載されている)バイラテラルマッチングと呼ばれる第3のテンプレートマッチング方法も、動きベクトルの精緻化のために使用されることが可能であり、本発明が、同様に当てはまる。バイラテラルマッチングによれば、2つの異なる参照ピクチャ内の現在のブロックの動きの軌跡に沿った2つのブロックの間の最良の一致が、探索される。連続的な動きの軌跡の仮定の下で、2つの参照ブロックを指し示す動きベクトルMV0およびMV1は、現在のピクチャと2つの参照ピクチャとの間の時間的距離、すなわち、TD0およびTD1に比例する。バイラテラルマッチングにおいては、SAD(Block cand0', Block cand1')などのコスト関数が、使用されてもよく、ブロックcand0'が、MV0によって指し示され、ブロックcand1'が、MV1によって指し示される。
【0078】
本発明の実施形態によれば、予測ブロックに関する動きベクトルの決定のための装置が提供され、装置は処理回路を含む。処理回路は、予測ブロックに関して初期動きベクトルおよびテンプレートを取得し、探索空間内での前記テンプレートとのテンプレートマッチングによって初期動きベクトルの精緻化を決定するように構成される。前記探索空間は、初期動きベクトルによって与えられる位置にあり、1つ以上の分数サンプル位置を含み、探索空間に属する分数サンプル位置の各々は、ウィンドウ内の整数サンプルのみを評価する予め定義されたタップサイズのフィルタを用いる補間フィルタリングによって得られ、前記ウィンドウは、前記探索空間におけるテンプレートマッチングのためにアクセス可能な整数サンプルによって形成される。
【0079】
処理回路600が、
図6に示される。処理回路は、任意のハードウェアを含んでもよく、構成は、両方の組み合わせの任意の種類のプログラミングまたはハードウェアの設計によって実装されてもよい。たとえば、処理回路は、上述のステップを実装する対応するソフトウェアをともなう汎用プロセッサなどの単一のプロセッサによって形成されてもよい。一方、処理回路は、ASIC(特定用途向け集積回路)、またはDSP(デジタル信号プロセッサ)のFPGA(フィールドプログラマブルゲートアレイ)などの特別なハードウェアによって実装されてもよい。
【0080】
処理回路は、上述の動きベクトルの導出を実行するために相互に接続された上述のハードウェア構成要素のうちの1つ以上を含んでもよい。処理回路600は、2つの機能を、つまり、1つの初期動きベクトル(または双方向/マルチ予測が使用される場合は複数の初期動きベクトル)およびテンプレートを取得すること610と、動きベクトルの精緻化620とを実装する計算論理を含む。これらの2つの機能は、同じハードウェア上に実装されてもよく、または初期動きベクトルおよびテンプレート決定ユニット610ならびに動きベクトル精緻化ユニット620などのハードウェアの別々のユニットによって実行されてもよい。処理回路600は、再構築された参照ピクチャサンプルが記憶される外部メモリ650に通信可能なように接続されてもよい。さらに、処理回路600は、外部メモリから転送され、同時に処理されるブロックに関する動きベクトルの決定のために使用されるウィンドウ内のサンプルをバッファリングする内部メモリ640をさらに含んでもよい。処理回路は、集積回路として単一のチップ上に具現化されてもよい。
【0081】
処理回路は、
図1および
図2を参照して説明されたエンコーダおよび/またはデコーダのさらなる機能を実装してもよいことが留意される。内部メモリは、キャッシュまたはラインメモリなどのオンチップメモリであってもよい。チップメモリは、計算のスピードを上げるためにエンコーダ/デコーダのチップ上に実装されることが有利である。チップのサイズは制限されるので、通常、オンチップメモリは小さい。一方、外部メモリは、外部メモリは、サイズが非常に大きいことが可能であるが、外部メモリへのアクセスは、より多くのエネルギーを消費し、アクセスは、ずっと低速である。通常、すべての必要な情報は、計算が実行される前に外部メモリからオンチップメモリに取り出される。最悪の場合の外部メモリアクセス(またはメモリバスを設計するときにプロビジョニングされる必要がある帯域幅)は、フレームまたは符号化ユニットを復号する間の外部メモリとチップとの間のメモリ転送の最も多い可能な量を表す。メモリ(特に外部メモリ)は、通常、予め定義されたブロック単位でのみアクセスされうる。言い換えると、概して、単一のピクセルにアクセスすることはできず、その代わりに、最小単位(たとえば、8x8)がアクセスされなければならない。大きなオンチップメモリはコストを増やすので、オンチップメモリのサイズも、重要な設計の考慮事項である。
【0082】
言い換えると、上述の装置は、集積回路に組み込まれた内部メモリと、前記ウィンドウ内にある整数サンプルを外部メモリから内部メモリにフェッチするためのメモリアクセスユニット(インターフェース)とをさらに含む集積回路であってもよい。
【0083】
上で使用された用語「予測ブロック」は、予測されるべき現在のブロックを指す。予測ブロックは、画像を(たとえば、符号化ツリーユニットCTUをより小さな単位に階層的に区分けすることによって)等しいサイズのまたは異なるサイズのブロックに下位分割することによって得られてもよい画像内のブロックである。方形またはより広く矩形は現在のエンコーダ/デコーダにおいても使用される典型的な形状であるので、ブロックは、これらの形状であってもよい。しかし、本開示は、ブロックのいかなるサイズ/形状によっても限定されない。
【0084】
処理回路を含む装置は、エンコーダ、またはデコーダ、またはさらにはそのようなエンコーダもしくはデコーダを含む装置、たとえば、記録デバイスおよび/もしくは再生デバイスであってもよい。
【0085】
分数サンプル位置は、
図1に示されたように符号化された参照ピクチャを再構築することによって得られる実際のピクチャサンプル位置の間の位置である。したがって、分数位置は、最も近い整数位置に基づく補間によって取得されなければならない。H.265によって使用される例示的な補間フィルタリングの詳細は、V.Szeらによる書籍High Efficiency Video Coding(HEVC)、Springer、2014の節「5.3 Fractional Sample Interpolation」に見つけられうる。
【0086】
通常、補間フィルタリングは、異なる分数ペル(サンプル)位置を生成するために異なるフィルタを適用する。例として、H.265ビデオ圧縮規格においては、以下の1Dの分離可能なフィルタが、1/4ペルおよび半ペル位置を生成するために適用される。
【表1】
【0087】
上の表から分かるように、補間フィルタリングは、フィルタのタップ(表の係数の数)に対応する、分数ペル位置の周りのいくつかのサンプルを必要とする。半ペル位置を生成するために上の例示的なフィルタを使用すると、左/上および右/下から4つの整数サンプルが、必要とされる。補間フィルタの長さは、(7タップである)1/4ペルサンプル位置に関しては、(8タップである)半ペルサンプル位置に関する長さと異なることに留意されたい。
【0088】
本発明の一部の実施形態において、予め定義されたタップサイズの補間フィルタは、前記探索空間におけるテンプレートマッチングのためにアクセス可能な整数サンプルによって与えられるウィンドウ内の整数サンプルのみを評価する。ウィンドウは、特定の予測ブロックの計算において実際に使用されるものよりもずっと多くのサンプルを含んでもよい。これは、通常、精緻化の探索動作が、サンプルのうちのどの部分が探索動作の漸進的な進行に応じて評価されないのかに従って、(総当たりの探索方法とは対照的に)高速な探索方法を使用して実施されるという事実が原因である。結果として、テンプレートマッチングの反復の回数および精緻化の探索動作のための計算に使用されるサンプルは、各予測ブロックに関して変わってもよい。
【0089】
本開示は、補間フィルタリングが分数サンプル位置に適用される必要があることを考慮して、精緻化の探索動作中に使用されうる整数サンプルに関する上限(領域の境界)を設定する。これは、用語「テンプレートマッチングのためにアクセス可能な整数サンプル」に対応する。どのサンプルが実際にアクセスされるかは、以下で例示されるように、探索空間を形成する方法に依存する。
【0090】
図7は、符号化ブロック(予測ブロック)およびウィンドウの対応するサンプルを示す。
図7に示されるサンプルは、参照ピクチャサンプルであり、ここで、符号化ブロックは、実際には、参照ピクチャにおいて動きベクトルが導出されるべき現在のフレーム内の現在のブロックにサイズおよび位置が対応するブロックであることが留意される。したがって、
図7の符号化ブロックは、実際には、プレディクタが探索されるブロックと同一位置のブロックである。しかし、簡単さの理由で、このブロックは、以下で「符号化ブロック」と呼ばれる。
【0091】
この例において、精緻化されていない動きベクトルMV0は、整数サンプル位置を指し示す(初期動きベクトルは分数サンプル位置を指し示すことが可能であり、単に図示を容易にするために、整数サンプル位置が選択される)。動きベクトルの精緻化の探索の粒度は1整数サンプルであり、つまり、開始点が整数サンプルであるので、整数サンプル点のみが探索される。探索は、この例においては、徐々に発展する探索空間において実行される。これは、探索空間が、既にテストされた位置に関するコスト関数の観点で最良の方向に応じて新しい探索位置を追加することによって反復の度に向上させられることを意味する。
【0092】
そのような手法が、
図8に単純化して示される。
図8において、初期動きベクトルは、中心点810を指し示していた。探索空間は、初期動きベクトルの位置の周りに徐々に構築される。第1のステップにおいて、初期動きベクトルによって指し示される位置810の上、下、左、および右に直接隣接する4つの位置ならびに初期動きベクトルによって指し示される位置810が、テストされる。テストされた5つの点の中で最も低いコスト関数をもたらす方向に基づいて、テストされるさらなる位置が、探索空間に追加される。この例において、最も低いコスト関数は、右の点において見られることが可能であり、したがって、探索空間は、第2のステップにおいて水平右方向に3つのさらなる点によって拡張された。第2のステップにおいて、最も低いコスト関数は、(第1のステップの最もコストの低い点に対して)右の点において見られることが可能であり、その結果、水平右方向に3つの点だけ探索空間をさらに拡張する。第3のステップにおいて、最も低いコスト関数は、再び、ステップ2の最もコストの低い点に対して右の点において観察され、水平右方向にさらに3つの点だけ探索空間を拡張する結果となる。
図8の例によれば、3つのさらなるステップが、上方向、上方向、および右方向にその順序で実行される。例においては、(5つの探索点からなる)ダイヤモンド形のパターンが、各反復のために使用され、探索空間が、各ステップにおいて欠けている探索点をそろえるために拡張される。
【0093】
探索空間の決定の各反復において、探索空間は、1つ以上の整数サンプル位置だけ大きくなってもよい。ここで、探索の反復の最大回数が4である例において
図7に戻る。最大4回の反復が可能であるので、探索空間の漸進的な発展が左に向かう場合、左に描かれたサンプルのすべてが、探索動作を実行するためにメモリから取り出される必要がある。同様の、上への4サンプルの拡張が、必要とされる。したがって、探索空間は、精緻化されたMVが何れの方向にも動くことができるので両方の方向(左右および上下)に拡張され、ハードウェアの実装は、精緻化の探索の適用前に、必要とされてもよいサンプルのすべてが外部メモリからフェッチされることを必要とする。探索空間が下または右方向に発展する場合、符号化ブロック(予測ブロック)のサイズに対応するテンプレートとのテンプレートマッチングがそれらのサンプルの一部にアクセスする必要があるので、4つのさらなるサンプルによる拡張が必要である。さらに、ハードウェアの実装は、概して、不規則な形状をフェッチすることができない(矩形のアクセスがより実現しやすい)ので、角のサンプル(たとえば、右上)も、メモリからフェッチされなければならない。
【0094】
上述の反復的な探索空間の発展は例示的であるに過ぎず、各反復において探索空間を拡張するためのルールおよび点の数は異なる、つまり、異なる方法で指定されてもよいことが留意される。
【0095】
また、
図8は、上述の外部メモリアクセスのルールが原因で発生してもよい筋書きを示す。外部メモリからフェッチされるサンプルの数は、計算ステップにおいて実際に使用されるサンプルよりもずっと多い。ここでのテンプレートが(簡単さの理由で)1サンプルのみの大きさであると仮定すると、白い円は、外部メモリから取り出されるサンプルおよび実際に使用される塗りつぶされたサンプルを表す。しかし、現在のブロックが処理され始めるときには実際に必要とされるサンプルがまだ知られていないので、外部メモリへのアクセスの回数が低く保たれるべきである場合、そのような冗長性が必要である。
【0096】
探索空間はまた、異なる方法で、たとえば、初期動きベクトルによって指し示される位置にある安定した形状として定義されてもよいことが留意される。形状は、方形、矩形、ダイヤモンドなどの任意の形状であってもよい。
【0097】
図9は、探索空間が分数サンプルも含んでもよい例を示す。
図7および
図8において、動きベクトルの探索は、整数サンプルに対して実行され、結果として、アクセスウィンドウに含まれる実線のより大きな点によって示される位置をもたらした。このとき、探索が半ペルの解像度を有するサンプル(より小さな実線の点)に対して実行される場合、補間フィルタが対称的であり、8タップを有すると仮定すると、右側に示される分数サンプルを生成するために、サンプルの3つのさらなる列も、メモリから取り出される必要がある。さらに、分数ピクセルがウィンドウの左側にあってもよいように探索動作が対称的である(左および右に反復的に移動しうる)という事実が原因で、同じことが、左側に適用されなければならない(ピクセルの3列分の拡張)。
【0098】
結果として、補間フィルタリングが原因で、メモリから取り出される必要があるサンプルの数は、さらに増やされ、今や分数補間が原因で追加された位置を表す点線の円も含む破線によって示される。同様に、垂直方向の半ペル位置が探索されることも許す場合、メモリからアクセスされるサンプルのウィンドウは、上側および下側の垂直方向にも拡張される必要がある(
図9の例には示されていない)。
【0099】
メモリアクセスのウィンドウは、予測ブロック(符号化ブロック)に関する動きベクトルの探索を実行するためにメモリから取り出される必要があるサンプルのすべてを包含する矩形として定義される。メモリアクセスのウィンドウは、必要とされる実際のサンプルのみを含むだけでなく、動きベクトルの探索動作中にアクセスされる可能性がある残りのサンプルのすべても含む。
図9の例において、動きベクトルの探索は、右に移動した。しかし、それは、左方向にも移動されることができ、これは、前もって知られていない。したがって、外部メモリに何度もアクセスしないために、メモリアクセスのウィンドウ(またはアクセスウィンドウ)は、それぞれの処理によってアクセス可能であるすべてのサンプルを含む。
【0100】
図10は、動きベクトルの精緻化のためのメモリアクセスのウィンドウを示す。中心点1010は、精緻化されていない入力動きベクトル(ビットストリームからかまたは上述のように既に実行されたテンプレートマッチングもしくは候補のテストによってかの何れで得られた初期動きベクトル)によって指し示される位置である。探索空間に分数位置を追加することが原因であるウィンドウサイズのさらなる増大を避けるために、動きベクトルの精緻化は、以下のルールに従って実行される。
A) 精緻化のためのメモリアクセスのウィンドウが、精緻化されていない初期動きベクトルの座標(つまり、初期動きベクトルによって指し示される位置)の周りに定義される。ウィンドウは、探索空間におけるテンプレートマッチングによって動きベクトルの精緻化を実行するためにメモリからアクセスされる必要があるピクセルサンプルの最大数を特定する。
1. この例においては、簡単さのために、現在のブロックのサイズ(符号化ブロックサイズ)は、1x1サンプルであるが、現在のブロックのサイズは、より大きいことが可能であり、概してより大きい。
2. メモリアクセスのウィンドウは、図に示される左/右から4サンプルおよび上/下から4サンプルなどの符号化ブロックの周りの拡張として定義される。
B) 分数ピクセル座標が、補間のために必要なサンプルがメモリアクセスのウィンドウ内にある場合にのみMVの精緻化のためにアクセスされる。
【0101】
要件Bは、整数サンプルに対する動きベクトルの精緻化のために必要なサンプルによって定義されるアクセスウィンドウがさらに拡張されないことを保証する。このルールに従ってアクセス可能な実際の分数サンプルは、補間フィルタのサイズおよび形状によって与えられる。したがって、
図10において、6タップの補間フィルタを仮定すると、点線が、分数サンプルがあってもよい領域を示す。しかし、
図12を参照して示されるように、さらなる分数ピクセル位置が許容可能であってもよいことが留意される。特に、アクセスウィンドウを超える拡張を必要としない垂直フィルタリングのみまたは水平フィルタリングのみを必要とする分数位置は、引き続き使用されてもよい。したがって、分数位置を
図10に示される分数サンプルウィンドウに制限することは、一部の応用に関しては行き過ぎた制限であってもよい。
【0102】
言い換えると、実施形態によれば、メモリアクセスウィンドウは、整数サンプルに対して実行される動きベクトルの精緻化によってアクセス可能であるすべてのサンプルを含み、整数サンプルに対して実行される動きベクトルの精緻化によってアクセス可能でないサンプルを含まない。したがって、分数サンプルが動きベクトルの精緻化のために使用される場合、それらの分数サンプルは、追加のサンプルを必要としない方法で取得される。
【0103】
図10の例において、これは、予め定義された補間フィルタの形状およびサイズに関してアクセスウィンドウの外のサンプルを必要としない分数サンプルのみを許すことによって実現される。点線の分数サンプルウィンドウは、アクセスウィンドウ内で拡張する。Tが補間フィルタのタップの数である場合、次いで、分数サンプルのウィンドウの境界は、アクセスウィンドウの境界のサンプルからfloor(T/2)-1の距離1020内の整数サンプルによって定義される。特に、この例においては、T=6であり、T/2=3であり、アクセスウィンドウの境界のサンプルから分数ウィンドウのサンプルまでの距離は、T/2-1=2整数サンプルである。
【0104】
しかし、分数ウィンドウのこの決定は、単なる例であることが留意される。概して、ウィンドウは、異なる形態およびサイズを持ってもよい。垂直方向および水平方向の補間は、異なるサイズのフィルタによって行われてもよい。さらに、一部の分数位置は、概して分離可能または分離不可能であってもよい垂直方向と水平方向との両方のフィルタを必要としてもよい。
【0105】
代替的に、補間フィルタは、
図10の点線のウィンドウの外の分数位置に関して変更されうる(たとえば、少なくとも1つの方向のタップの数が減らされる)。しかし、実装の目的でおよび補間の質の理由で、そのような解決策は、比較的魅力的でなくてもよい。
【0106】
メモリアクセスのためのウィンドウは、様々な方法で定義されてもよい。
図11は、メモリアクセスウィンドウが(初期動きベクトルによって与えられる符号化ブロックの位置に対応する)符号化ブロックの左/右または上/下の拡張EXTとして定義される例を示す。拡張の量は、符号化または予測ブロックのサイズおよび形状に依存してもよい。
図11において、拡張は、各方向(上、下、左、右)に4サンプルの長さである。しかし、EXTは、(垂直方向および水平方向に異なるサイズを有してもよい)ブロックサイズならびに/または探索空間の形態およびサイズに応じて異なる方向に関して異なる値をとる可能性もあることが留意される。
【0107】
たとえば、例によれば、ウィンドウは、予測ブロックの初期動きベクトルに対してN整数サンプル列およびM整数サンプル行として定義され、NおよびMの少なくとも一方は、非ゼロの整数値である(両方とも整数であるが、NおよびMの一方はゼロでありうる)。
図11においては、NおよびMが示されるが、同じサイズを有する。上述のように、NおよびMは、異なるサイズを有してもよい。NおよびMは、整数であり、それらのうちの少なくとも一方は、非ゼロである。パラメータNおよびMならびにテンプレートの形態およびサイズを取得すると、アクセスウィンドウのサイズが決定されうる。特に、テンプレートがT1行およびT2列を有する場合、メモリアクセスウィンドウのサイズは、(N+T2+N)行および(M+T1+M)列として計算されてもよい。これは、探索が左または右にNサンプル進み、水平方向に2Nサンプルを生じ、上または下にMサンプル進み、垂直方向に2Mサンプルを生じうるからである。
【0108】
一方、
図7および
図8を参照して説明された手法のような探索空間の構築の特定の手法に関して、メモリアクセスウィンドウは、後で左、右、上、および下の変位の最大量に変換されうる精緻化の反復(探索空間の構築の反復)の最大回数および(各反復において実現可能な最大のサンプルの距離の観点で見た)反復のステップサイズによって定義されうる。したがって、メモリアクセスウィンドウは、各方向の最大変位として定義される。たとえば、各反復が探索空間を最大1整数サンプル位置進めてもよい4回の反復は、EXT=4という結果になる。
【0109】
言い換えると、この例によれば、処理回路は、最も新しい反復における探索空間のより多くの最も一致する位置のうちの1つ(または複数)によって与えられる方向に反復的に拡張される探索空間における前記テンプレートとのテンプレートマッチングによって初期動きベクトルの精緻化を決定するように構成され、ウィンドウは、反復の予め定義された最大回数によって定義される。
【0110】
概して、本開示は、探索空間のいかなる特定の形状または形態または決定の種類にも限定されないことが留意される。別の例において、探索空間は、サブウィンドウ内の各分数サンプルの補間フィルタリングのためにアクセスされるすべての整数サンプルが予め定義されたタップサイズの補間フィルタに関してウィンドウ内にあるような前記ウィンドウの矩形のサブウィンドウである。同様の例が、
図10を参照して既に上で検討された。
図10において、探索空間は、9×9の整数サンプルと、初期動きベクトルの位置がサンプルの中心にある5×5の整数サンプルによって形成される領域内にある分数サンプルとによって与えられる。
【0111】
メモリアクセスウィンドウの定義は、おそらくは、対応するシグナリングパラメータをビットストリームに含める(たとえば、パラメータEXTまたはパラメータNおよびM)ために妥当であってもよい。しかし、メモリアクセスウィンドウのサイズは、規格で定義されるかまたは(テンプレートのサイズ、予測ブロックのサイズ、画像の解像度などの)その他の符号化パラメータに基づいて導出可能であってもよい。
【0112】
図12は、異なる分数ピクセル位置による例を示す。この例に関しては、テンプレートのサイズが(簡単にするために)1x1サンプルであり、6タップの補間フィルタが各半ペル位置に関して使用されると仮定される。例において、探索される探索座標は、それらの探索座標が調べられる順序、つまり、テンプレートマッチングの探索が実行される順序を示す数字1~6によって表される。位置1および2は、半ペル位置である(つまり、それらの位置は、2つの整数サンプル位置の中間にあり、ペルは、ピクセルの省略形であり、ピクセルという用語は、本出願においてはサンプルという用語と交換可能なように使用される)。位置1および2は、補間フィルタリングのための必要な拡張がメモリアクセスのウィンドウ内にあるので調べられる(位置1から斜め左上の3整数サンプルおよび右下の3整数サンプル、位置2の右の3整数サンプルおよび左の3整数サンプル)。分数サンプル点1は水平方向と垂直方向との両方の拡張を必要とし、それらの両方がウィンドウ内にあることに留意されたい。位置2は、右および左への拡張のみを必要とする。
【0113】
位置3、4、および5は、整数サンプル(整数ペル)位置である。それらの位置は、補間フィルタリングのための拡張が必要ないので探索されうる。分数(半ペル)サンプル6も、垂直方向の拡張のみ(それぞれ上および下に3整数位置分)が必要であり、それがまだウィンドウ内にあるのでアクセスされうる。水平方向の拡張は、必要ない。やはり、上の実装において、分数サンプル点は、必要な補間の外延がメモリアクセスウィンドウ内にある場合にのみアクセスされる。
【0114】
言い換えると、例によれば、補間フィルタは、分数位置が整数サンプルのそれぞれの水平方向のラインまたは垂直方向のライン上にあるとき、K個の水平方向または垂直方向の何れの整数サンプルも評価する1次元フィルタである。
【0115】
2つの水平方向にまたは2つの垂直方向に隣接する整数位置の間のライン上にあるそのような1次元の分数位置(たとえば、
図12の位置2および6)は、水平方向のみまたは垂直方向のみの補間のための拡張を必要とし、つまり、それぞれの水平方向のまたは垂直方向の補間フィルタのみによってフィルタリングされるべきである。できるだけ多くの分数位置を利用することができるために、
図10の例において許された分数位置に加えて、
図12に示された位置6などのさらなる1次元の位置を追加することが有利であってもよい。
【0116】
言い換えると、探索空間は、
- サブウィンドウの上もしくは下に隣接し、整数サンプルの水平方向のライン上にあるか、または
- サブウィンドウの左側もしくは右側に隣接し、整数サンプルの垂直方向のライン上にあるか
の何れの、分数サブウィンドウ(
図10の点線のウィンドウを参照)の外にある分数位置をさらに含む。
【0117】
一部の分数サンプルは、水平方向または垂直方向の所与の方向のさらなる整数サンプルを必要としてもよいことが留意される。これは、予め定義されたフィルタのサイズがそれぞれの方向にその位置を生成するために異なる場合に当てはまってもよい。
【0118】
図13は、アクセスされることができない分数半ペル位置1および2の例を示す。それらの位置は、
図10に示されたサブウィンドウの外にある。この例に関しては、6タップの補間フィルタが、半ペル位置のために使用されると仮定される。半ペル探索点1および2は、水平方向または垂直方向の補間フィルタリングがウィンドウの外にあるサンプルを必要とするので、探索されることを許されない。位置1をフィルタリングするために水平方向のフィルタによって必要とされ、位置2をフィルタリングするために垂直方向のフィルタによって必要とされる整数サンプル位置が、
図13において破線によって示される。見て分かるように、破線の円は、メモリアクセスウィンドウ内にない整数位置に対応する。
【0119】
上の例において、メモリアクセスウィンドウは、動きベクトルの精緻化プロセス中に(補間フィルタリングのためにさえも)ウィンドウの外のサンプルがアクセスされないように定義された。言い換えると、メモリアクセスウィンドウは、動きベクトルの精緻化および補間のためにアクセスされる必要があってもよいサンプルを包含する最も小さなウィンドウである。さらに、メモリアクセスウィンドウは、整数サンプル位置に基づいて動きベクトルの精緻化のために必要なサンプルに応じて設計された。次いで、さらなる整数位置によるそのようなアクセスウィンドウのさらなる拡張を必要としない分数位置のみが、許される。
【0120】
上の例は、半ペル補間に関して与えられたことが留意される。しかし、本開示は、それらに限定されない。概して、1/4、1/8などの任意の分数位置が、使用される、つまり、対応する補間フィルタを使用して補間されてもよい。
【0121】
図6に関連して説明された処理回路が、
図1および
図2に示されたようにエンコーダおよび/またはデコーダにおいて使用されてもよい。
【0122】
特に、予測ブロックに分割されたビデオ画像をビットストリームに符号化するための符号化装置が、提供されてもよく、符号化装置は、処理回路を含む、上述の予測ブロックに関する動きベクトルの決定のための装置と、予測ブロックと決定された動きベクトルによって指定される位置に予測ブロックによって与えられるプレディクタとの間の差を符号化するため、ならびに符号化された差および初期動きベクトルを含むビットストリームを生成するための符号化回路とを含む。
【0123】
図1を参照して上で説明されたエンコーダのさらなるユニットおよび機能も、処理回路に設けられるかまたは実装されてもよい。
【0124】
それに対応して、予測ブロックに分割されたビデオ画像をビットストリームから復号するための復号装置が、提供されてもよく、復号装置は、初期動きベクトル、および予測ブロックと精緻化された動きベクトルによって指定される位置に予測ブロックによって与えられるプレディクタとの間の符号化された差を、ビットストリームから解析するための解析ユニットと、処理回路を含む、上述の予測ブロックに関する精緻化された動きベクトルの決定のための装置と、解析された差と、精緻化された動きベクトルに基づく位置に予測ブロックによって与えられるプレディクタとの和として予測ブロックを再構築するための復号回路とを含む。たとえば、プレディクタは、精緻化された動きベクトルの位置によって直接与えられてもよい。しかし、(フィルタリング、切り抜き、さらなる精緻化などの)動きベクトルをさらに変更してもよい現在の予測ブロックの動きベクトルを取得するさらなる処理ステップが、あってもよい。
【0125】
図2を参照して上で説明されたデコーダのさらなるユニットおよび機能も、処理回路に設けられるかまたは実装されてもよい。
【0126】
さらに、本発明の実施形態が、動きベクトルの精緻化を実行するための処理回路を有する装置の観点で説明された。しかし、本開示は、それに限定されず、上述の処理回路が実行のために構成される処理ステップに対応する処理ステップを含む対応する方法も提供する。
【0127】
特に、予測ブロックに関する初期動きベクトルおよびテンプレートを取得するステップ、探索空間において前記テンプレートとのテンプレートマッチングによって初期動きベクトルの精緻化を決定するステップを含み、前記探索空間が、初期動きベクトルによって与えられる位置にあり、1つ以上の分数サンプル位置を含み、探索空間に属する分数サンプル位置の各々が、ウィンドウ内の整数サンプルのみを評価する予め定義されたタップサイズのフィルタを用いる補間フィルタリングによって得られ、前記ウィンドウが、前記探索空間におけるテンプレートマッチングのためにアクセス可能な整数サンプルによって形成される、予測ブロックに関する動きベクトルの決定のための方法が提供される。
【0128】
タップは、フィルタ係数に対応する。タップサイズは、フィルタ次数に対応する。ここで、フィルタは、線形フィルタであると仮定される。一部の例において、フィルタは、対称的であり、つまり、対称的な係数を持っていてもよい。しかし、本開示は、対称フィルタ、または線形フィルタ、またはいかなる種類のフィルタにも限定されない。概して、分数位置は、隣接するサンプルに基づいて任意の方法で取得されてもよい。
【0129】
さらに、予測ブロックに分割されたビデオ画像をビットストリームに符号化するための符号化方法が、提供され、符号化方法は、上述の方法のいずれかに係る予測ブロックに関する動きベクトルを決定するステップと、予測ブロックと決定された動きベクトルに基づく位置に予測ブロックによって与えられるプレディクタとの間の差を符号化し、符号化された差および初期動きベクトルを含むビットストリームを生成するステップとを含む。
【0130】
符号化方法は、
図1のブロックの機能を参照して説明されたステップをさらに含んでもよい。
【0131】
さらに、予測ブロックに分割されたビデオ画像をビットストリームから復号するための復号方法が、提供され、復号方法は、初期動きベクトル、および予測ブロックと精緻化された動きベクトルによって指定される位置に予測ブロックによって与えられるプレディクタとの間の符号化された差を、ビットストリームから解析するステップと、上述の方法のいずれかに係る予測ブロックに関する精緻化された動きベクトルを決定するステップと、解析された差と、精緻化された動きベクトルによって指定される位置に予測ブロックによって与えられるプレディクタとの和として予測ブロックを再構築するステップとを含む。
【0132】
復号方法は、
図2のブロックの機能を参照して説明されたステップをさらに含んでもよい。
【0133】
しかし、
図1および
図2は、本開示を限定すべきでないことが留意される。それらの図は、既存のエンコーダおよび/またはデコーダ内の本発明の実装の非限定的な例を与えるに過ぎない。
【0134】
図14は、実施形態に係る方法の例示的な実装を示す。関数InterpolationFilterLength(C)は、補間フィルタリングを適用するために水平方向および垂直方向の必要な追加的なサンプルの数を返す。必要なサンプルの数は、
- 探索座標が整数ペル位置であるのか、半ペル位置であるのか、または1/4ペル位置であるのか
- 探索座標サンプルを生成するために水平方向の補間フィルタが適用される必要があるのか、垂直方向の補間フィルタが適用される必要があるのか、または両方の補間フィルタが適用されてもよいのか
に応じて変わる。
【0135】
方法は、ステップ1430において始まる。特に、初期動きベクトルの位置が、テストされる第1の探索空間の位置C(x,y)である。関数InterpolationFilterLength(C)は、この位置に関して、補間フィルタリングを適用するための水平方向および垂直方向のサンプルの数を返す。C(x,y)とInterpolationFilterLength(C(x,y))との和がMAX(max_x, max_y)によって定義されたアクセスウィンドウサイズを超える場合、次いで、位置は、探索空間の一部として使用されない。その代わりに、次の探索座標C(x,y)が、テストされるためにステップ1440において選択される(たとえば、探索が実行される順序に応じてxまたはyまたはそれら両方がインクリメントされる)。ステップ1430においてテストされた位置がアクセスウィンドウを超えることを必要としない場合、ステップ1410において、動きベクトルの精緻化の一部としてのテンプレートマッチングが、その位置C(x,y)に関して実行される。次いで、テンプレートマッチングのために残された探索空間の位置がまだあるかどうかが、ステップ1420においてテストされる。残っていない場合、精緻化は、終了される。残っている場合、次の座標が、ステップ1440において選択され、ステップ1430の条件が、その新しい位置に関して評価される。これらのステップが、繰り返される。
【0136】
既に上で説明されたように、(おそらくは
図12に示されたようにさらなる分数サンプルによって拡張される
図10のウィンドウなどの)許される分数位置を定義する代替的な可能性が存在する。それらに基づいて、位置C(x,y)が許されるウィンドウに属するかどうかを評価するだけのより単純な条件が、ステップ1430において定式化されてもよい。たとえば、探索は、
図10に示されたメモリアクセスウィンドウのようなメモリアクセスウィンドウにカプセル化された分数探索ウィンドウ内の整数探索点および分数点に制限される。
【0137】
探索空間は、ウィンドウの矩形の探索サブウィンドウを含んでもよく、初期動きベクトルの精緻化は、探索サブウィンドウ内の各分数サンプルの補間フィルタリングのためにアクセスされる整数サンプルが予め定義されたタップサイズの補間フィルタに関して前記ウィンドウ内にあるような矩形の探索サブウィンドウにおける前記テンプレートとのテンプレートマッチングによって決定されてもよい。
【0138】
より厳密には、許される整数および分数位置は、精緻化されていない初期動きベクトルに関連する点からの探索点の距離に基づいて決定されてもよい。特に、精緻化されていない初期動きベクトルからx方向に距離Pにあるおよび精緻化されていない初期動きベクトルからy方向に距離Rにある探索点が、許される。特に、メモリアクセスウィンドウは、精緻化されていない初期動きベクトルによって指し示される参照ピクチャ内の点に対して定義される。これが、
図15に例示され、
図15において、メモリアクセスウィンドウの中心点は、横軸に沿った2つの整数点の間の半ペル点である。図において、メモリアクセスウィンドウは、x方向の拡張(N)およびy方向の拡張(M)として定義され、NおよびMは、整数であり、そのうちの少なくとも一方は、非ゼロである。特定の実装によれば、サブウィンドウ、つまり、探索点のためのサブウィンドウ(または探索ウィンドウ)は、メモリアクセスウィンドウ内に定義され、テンプレートマッチングによって探索されることが許されるすべての整数ペルおよび分数ペル探索点を含むx方向の拡張(P)およびy方向の拡張(R)として定義される。
図15において、数PおよびRは、例示を目的として1に等しい。したがって、中心点までの探索点の距離がx方向およびy方向にそれぞれPまたはRを超えている場合、探索点は、メモリアクセスウィンドウに含まれない。この特定の例においては、分数探索点が追加的なサンプルへのアクセスを必要とするので、NおよびMによって定義されるメモリアクセスウィンドウは、二次的ウィンドウをカプセル化するかまたは含む。PおよびRは、水平方向および垂直方向に2つの整数サンプル点の間の距離の単位で距離を示す実数でありうる。例として、PおよびRがP=1.5およびR=1.5として定義される場合、次いで、初期の中心点までx方向に距離1.5にある探索点(整数または分数)は、動きベクトルの精緻化プロセスによって探索されることを許される。さらに、
図15において、左右方向の拡張および上下方向の拡張は、等しくなるように定義され、それらの拡張は、概して、等しくなくてもよい。概して、左、上、右、および下への4つの拡張のすべては、独立して定義されうる。
【0139】
図16は、メモリアクセスウィンドウにおける反復的な精緻化プロセスの可能な実装を示す。
図16によれば、精緻化の探索が、反復的に適用され、つまり、最大K個の探索点のみが、各反復において探索される。第1に、K個の探索点が、初期開始点の周りにまたは前の反復の結果として選択された最良の探索点の周りに決定される(1610)。第2に、K個の探索点のすべてがメモリアクセスウィンドウの中にある場合(1620)、精緻化の探索動作が、K個の探索点に適用される。しかし、K個の点のいずれか1つがメモリアクセスウィンドウの外にある場合、次いで、探索の反復は終了される。第3に、探索の反復の最大回数の条件が、調べられ(1630)、現在の反復が探索の反復の許される最大回数を超える場合、反復が、終了される。最後に、精緻化の探索が、K個の探索点に適用され(1640)、K個の探索点の中の最良の点が、マッチングのコスト関数に従って選択される(1650)。1640および1650の適用は、反復の回数を1増やす。1650の後、プロセスは、1650の出力である最良の点を1610への入力として使用して繰り返される。
図16によれば、1回の反復中に探索される探索点の数を決定する数Kが、各反復の探索点の最大数を定義する。各反復のために探索される点の数Kおよびパターンは、使用される探索戦略に応じて異なってもよい。たとえば、例示的な探索戦略によれば、K=5個の探索点(中心、左、右、下、および上)が、第1の反復において探索されてもよく、一方、K=3個の点(中心、右下、左下)が、第2の反復において探索されてもよい。数Kは、メモリアクセスウィンドウ内の探索点の総数よりも小さな数である。
【0140】
図16によって示された特定の実装によれば、反復のK個の探索点の中の単一の探索点がメモリアクセスウィンドウの外にある場合、探索の反復が、終了される。メモリアクセスウィンドウの中にあるK個の探索点の中のその他の点があってもよいが、反復が終了されるので、メモリアクセスウィンドウ内のそれらの点はまた、探索されない。特定の実装の目的は、探索の反復の回数を減らし、同時に、メモリアクセスウィンドウから外れる探索点が探索されないことを保証することである。
【0141】
1620によって、探索点がメモリアクセスウィンドウの中にあるかどうかを調べることが、初期開始点までの探索点の距離を調べることによって実行されうる。したがって、距離のx成分がNよりも大きい場合、または距離のy成分がMよりも大きい場合、探索点は、メモリアクセスウィンドウの外にあると判定される。概して、NおよびMは、整数であり、そのうちの少なくとも一方は、0よりも大きい。
【0142】
初期動きベクトルの精緻化が、最も新しい反復において探索空間のより多くの最も一致する位置のうちの1つによって与えられる方向に反復的に拡張される探索空間における前記テンプレートとのテンプレートマッチングによって決定されてもよく、反復は、最も新しい反復の探索空間内の少なくとも1つのサンプルが探索サブウィンドウの外にあるときに終了される。
【0143】
図17は、
図15に示されたように探索サブウィンドウに適用されうる可能な反復の方式を示す流れ図である。
図17の流れ図は、ステップ1720を除いて、
図16に示された流れ図と同じである。
図17のステップ1720によれば、K個の探索点に対して精緻化の探索を実行する判断は、K個の点のすべてが探索点のためのサブウィンドウ内にあるかどうかを調べることによって判断される。言い換えると、
図15に示されたように、精緻化されていない初期動きベクトルによって指し示される中心点までのK個の探索点のうちのいずれか1つの距離がPまたはRよりも大きい場合、次いで、1720に示された条件は、偽と評価し、反復が、終了される。
【0144】
上述のようにメモリウィンドウの制限付きの動きベクトルの決定は、ビデオ信号(動画)の符号化および/または復号の一部として実施されうる。しかし、動きベクトルの決定はまた、符号化/復号のために使用されることに限定されることなく、動き検出、動き分析などの画像処理におけるその他の目的に使用されてもよい。
【0145】
動きベクトルの決定は、装置として実装されてもよい。そのような装置は、ソフトウェアとハードウェアとの組み合わせであってもよい。たとえば、動きベクトルの決定は、汎用プロセッサ、またはデジタル信号プロセッサ(DSP)、またはフィールドプログラマブルゲートアレイ(FPGA)などのチップによって実行されてもよい。しかし、本発明は、プログラミング可能なハードウェア上の実装に限定されない。本発明は、特定用途向け集積回路(ASIC)に、または上述のハードウェア構成要素の組み合わせによって実装されてもよい。
【0146】
動きベクトルの決定はまた、コンピュータ可読媒体に記憶されたプログラム命令によって実装されてもよい。プログラムは、実行されるとき、コンピュータに上述の方法のステップを実行させる。コンピュータ可読媒体は、DVD、CD、USB(フラッシュ)ドライブ、ハードディスク、ネットワークを介して利用可能なサーバストレージなどの、プログラムが記憶される任意の媒体でありうる。
【0147】
エンコーダおよび/またはデコーダは、テレビ受像機、セットトップボックス、PC、タブレット、スマートフォンなどを含む様々なデバイス、つまり、任意の記録、符号化、符号変換、復号、または再生デバイスに実装されてもよい。エンコーダおよび/またはデコーダは、方法のステップを実装し、上述の電子デバイスのような電子デバイスに記憶される/電子デバイスに含まれるプロセッサ上で実行されるソフトウェアまたはアプリであってもよい。
【0148】
要約すると、本開示は、動きベクトルの精緻化に関する。第1のステップとして、予測ブロックに関する初期動きベクトルおよびテンプレートが、取得される。次いで、初期動きベクトルの精緻化が、探索空間における前記テンプレートとのテンプレートマッチングによって決定される。探索空間は、初期動きベクトルによって与えられる位置にあり、1つ以上の分数サンプル位置を含み、探索空間に属する分数サンプル位置の各々が、ウィンドウ内の整数サンプルのみを評価する予め定義されたタップサイズのフィルタを用いる補間フィルタリングによって得られ、前記ウィンドウが、前記探索空間におけるテンプレートマッチングのためにアクセス可能な整数サンプルによって形成される。
【符号の説明】
【0149】
100 エンコーダ
105 残差ブロック
106 変換ユニット
107 変換係数
108 量子化ユニット
110 逆量子化ユニット
112 逆変換ユニット
115 再構築されたブロック
116 バッファ
120 ループフィルタリングユニット
130 復号済みピクチャバッファ
142 インター推定ユニット
144 インター予測ユニット
152 イントラ推定ユニット
154 イントラ予測ユニット
160 モード選択ユニット
170 エントロピー符号化ユニット
171 符号化されたピクチャデータ、符号化されたビットストリーム
200 デコーダ
204 エントロピー復号ユニット
209 量子化された残差変換係数
210 逆量子化ユニット
212 逆変換ユニット
215 再構築されたブロック
216 バッファ
220 ループフィルタリングユニット
230 復号済みピクチャバッファ
231 復号されたピクチャ
244 インター予測ユニット
254 イントラ予測ユニット
265 予測ブロック
600 処理回路
610 初期動きベクトルおよびテンプレート決定ユニット
620 動きベクトル精緻化ユニット
640 内部メモリ
650 外部メモリ
810 中心点、位置
1010 中心点
1020 距離
【手続補正書】
【提出日】2023-06-09
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ビデオ画像のブロックを符号化するための装置であって、前記装置は、
前記ブロックを取得するために前記ビデオ画像を分割し、
初期動きベクトルを取得し、
探索空間においてバイラテラルマッチングによって前記初期動きベクトルの精緻化を決定し、
前記探索空間が、前記初期動きベクトルによって与えられる位置にあり、1つ以上の分数サンプル位置を含み、前記探索空間に属する前記分数サンプル位置の各々が、ウィンドウ内の整数サンプルのみを評価する予め定義されたタップサイズのフィルタを用いる補間フィルタリングによって得られ、前記ウィンドウが、前記探索空間における前記バイラテラルマッチングのためにアクセス可能な整数サンプルによって形成され、
前記精緻化に基づいて符号化された前記ブロックを含むビットストリームを生成する
ように構成された処理回路を含む、
装置。
【請求項2】
前記ウィンドウが、前記ブロックの左および右ならびに上および下のうちの少なくとも1つの拡張として定義される請求項1に記載の装置。
【請求項3】
前記ウィンドウが、前記初期動きベクトルによって指し示される位置の周りに定義され、前記初期動きベクトルの前記精緻化を実行するためにアクセスされるサンプルの数を特定する請求項1または2に記載の装置。
【請求項4】
前記ウィンドウが、前記ブロックの初期動きベクトルに対してN整数サンプル列およびM整数サンプル行として定義され、NおよびMの少なくとも一方が、非ゼロの整数値である請求項1から3のいずれか一項に記載の装置。
【請求項5】
前記処理回路が、最も新しい反復において探索空間のより多くの最も一致する位置のうちの1つによって与えられる方向に反復的に拡張される前記探索空間におけるバイラテラルマッチングによって前記初期動きベクトルの前記精緻化を決定するように構成され、
前記ウィンドウが、前記反復の予め定義された最大回数によって定義される請求項1から4のいずれか一項に記載の装置。
【請求項6】
前記探索空間が、サブウィンドウ内の各分数サンプルの補間フィルタリングのためにアクセスされるすべての整数サンプルが前記予め定義されたタップサイズの前記補間フィルタに関して前記ウィンドウ内にあるような前記ウィンドウの矩形の前記サブウィンドウを含む請求項1から5のいずれか一項に記載の装置。
【請求項7】
前記探索空間が、前記ウィンドウの矩形の探索サブウィンドウを含み、前記初期動きベクトルの前記精緻化が、前記探索サブウィンドウ内の各分数サンプルの補間フィルタリングのためにアクセスされる前記整数サンプルが前記予め定義されたタップサイズの前記補間フィルタに関して前記ウィンドウ内にあるような前記矩形の探索サブウィンドウにおけるバイラテラルマッチングによって決定される請求項1から4のいずれか一項に記載の装置。
【請求項8】
前記処理回路が、最も新しい反復において探索空間のより多くの最も一致する位置のうちの1つによって与えられる方向に反復的に拡張される前記探索空間におけるバイラテラルマッチングによって前記初期動きベクトルの前記精緻化を決定するように構成され、前記反復が、前記最も新しい反復の前記探索空間内の少なくとも1つのサンプルが前記探索サブウィンドウの外にあるときに終了される請求項7に記載の装置。
【請求項9】
前記補間フィルタが、前記分数位置が整数サンプルのそれぞれの水平方向のラインまたは垂直方向のライン上にあるとき、K個の水平方向または垂直方向の何れの整数サンプルも評価する1次元フィルタである請求項6に記載の装置。
【請求項10】
前記探索空間が、
- 前記サブウィンドウの上もしくは下に隣接し、整数サンプルの水平方向のライン上にあるか、または
- 前記サブウィンドウの左側もしくは右側に隣接し、整数サンプルの垂直方向のライン上にあるか
の何れの、前記サブウィンドウの外にある分数位置をさらに含む請求項7に記載の装置。
【請求項11】
ビデオ画像のブロックを符号化するための方法であって、前記方法は、
前記ブロックを取得するために前記ビデオ画像を分割し、
初期動きベクトルを取得するステップ、
探索空間においてバイラテラルマッチングによって前記初期動きベクトルの精緻化を決定するステップであって、
前記探索空間が、前記初期動きベクトルによって与えられる位置にあり、1つ以上の分数サンプル位置を含み、前記探索空間に属する前記分数サンプル位置の各々が、ウィンドウ内の整数サンプルのみを評価する予め定義されたタップサイズのフィルタを用いる補間フィルタリングによって得られ、前記ウィンドウが、前記探索空間における前記バイラテラルマッチングのためにアクセス可能な整数サンプルによって形成される、ステップと、
前記精緻化に基づいて符号化された前記ブロックを含むビットストリームを生成するステップと
を含む方法。
【請求項12】
前記ウィンドウが、前記ブロックの初期動きベクトルに対してN整数サンプル列およびM整数サンプル行として定義され、NおよびMが、非ゼロの整数値である請求項11に記載の方法。
【請求項13】
前記初期動きベクトルの前記精緻化が、最も新しい反復において探索空間のより多くの最も一致する位置のうちの1つによって与えられる方向に反復的に拡張される前記探索空間におけるバイラテラルマッチングによって決定され、
前記ウィンドウが、前記反復の予め定義された最大回数によって定義される請求項11または12に記載の方法。
【請求項14】
前記探索空間が、サブウィンドウ内の各分数サンプルの補間フィルタリングのためにアクセスされるすべての整数サンプルが前記予め定義されたタップサイズの前記補間フィルタに関して前記ウィンドウ内にあるような前記ウィンドウの矩形の前記サブウィンドウを含む請求項11から13のいずれか一項に記載の方法。
【請求項15】
前記探索空間が、前記ウィンドウの矩形の探索サブウィンドウを含み、前記初期動きベクトルの前記精緻化が、前記探索サブウィンドウ内の各分数サンプルの補間フィルタリングのためにアクセスされる前記整数サンプルが前記予め定義されたタップサイズの前記補間フィルタに関して前記ウィンドウ内にあるような前記矩形の探索サブウィンドウにおけるバイラテラルマッチングによって決定される請求項11または12に記載の方法。
【請求項16】
前記初期動きベクトルの前記精緻化が、最も新しい反復において探索空間のより多くの最も一致する位置のうちの1つによって与えられる方向に反復的に拡張される前記探索空間におけるバイラテラルマッチングによって決定され、前記反復が、前記最も新しい反復の前記探索空間内の少なくとも1つのサンプルが前記探索サブウィンドウの外にあるときに終了される請求項15に記載の方法。
【請求項17】
前記補間フィルタが、前記分数位置が整数サンプルのそれぞれの水平方向のラインまたは垂直方向のライン上にあるとき、K個の水平方向または垂直方向の何れの整数サンプルを評価する1次元フィルタである請求項14に記載の方法。
【請求項18】
前記探索空間が、
- 前記サブウィンドウの上もしくは下に隣接し、整数サンプルの水平方向のライン上にあるか、または
- 前記サブウィンドウの左側もしくは右側に隣接し、整数サンプルの垂直方向のライン上にあるか
の何れの、前記サブウィンドウの外にある分数位置をさらに含む請求項17に記載の方法。
【請求項19】
プロセッサ上で実行されるときに前記プロセッサに請求項11から18のいずれか一項に記載の方法を実行させる命令を記憶するコンピュータ可読媒体。
【外国語明細書】