本主題のいくつかの実装は、曲線を用いて分割された非長方形領域を用いてインター予測を実施することを含み、曲線は、直線である場合とそうではない場合がある。曲線を用いて分割された非長方形ブロックを用いてインター予測を実施することは、分割が、オブジェクト境界のより近くを辿ることを可能にし、より低い動き補償予測誤差、より小さい残差、したがって、改良された圧縮効率をもたらすことができる。インター予測の間、動き補償が、指数関数的分割モードに従って決定されたブロック(例えば、コーディングユニット、予測ユニット等)に関して予測された動きベクトルを使用して実施されることができる。動きベクトルは、高度動きベクトル予測(AMVP)を使用して、および/またはマージモードを介して予測されることができ、動きベクトルは、動きベクトル差をエンコードすることなく、動きベクトル候補のリストから選択される。
指数関数的分割では、長方形ブロックが、曲線を用いて非長方形領域に分割され得、非長方形領域は、幾何学的分割の場合、直線セグメントを含み得、または、より一般的な場合では、直線ではない曲線であり得る。ブロックを分割するために直線ではない曲線を使用することは、分割が、オブジェクト境界のより近くを辿ることを可能にし、より低い動き補償予測誤差、より小さい残差、および、したがって改良された圧縮効率をもたらし得る。いくつかの実装では、曲線は、指数関数によって特徴付けられ得る。曲線(例えば、指数関数)は、デコーダによる使用のためにビットストリーム内で信号伝送され得る所定の係数を使用して決定され得る。いくつかの実装では、指数関数的分割は、8×8以上ルマサンプルに関して利用可能であり得る。曲線を用いて長方形ブロックを分割することによって、本主題は、あるオブジェクトに関して、幾何学的分割を用いるもの等の直線セグメント分割に限定される技法を上回る圧縮効率を達成し得る。
動き補償は、ビデオにおけるカメラおよび/またはオブジェクトの動きを考慮することによって、以前および/または将来のフレームを前提として、ビデオフレームもしくはその一部を予測するためのアプローチを含み得る。動き補償は、ビデオ圧縮のためのビデオデータをエンコーディングおよびデコーディングすることにおいて、例えば、動画専門家集団(MPEG)-2(アドバンスドビデオコーディング(AVC)とも称される)規格を使用するエンコーディングおよびデコーディングにおいて採用され得る。動き補償は、参照ピクチャのカレントピクチャへの変換の観点からピクチャを記述し得る。参照ピクチャは、カレントピクチャと比較したとき、時間的に以前のもの、または将来からのものであり得る。画像が、以前に伝送および/または記憶された画像から正確に合成されることができると、圧縮効率は、改良されることができる。
ブロック分割は、同様の動きの領域を見出すためのビデオコーディングにおける方法を指し得る。ある形態のブロック分割が、MPEG-2、H.264(AVCまたはMPEG-4 Part10とも称される)、およびH.265(高効率ビデオコーディング(HEVC)とも称される)を含む、ビデオコーデック規格において見出され得る。例示的ブロック分割アプローチでは、同様の動きを有するピクセルを含有するブロック分割を見出すために、ビデオフレームの非重複ブロックが、長方形サブブロックに分割され得る。このアプローチは、ブロック分割の全てのピクセルが同様の動きを有するときに良好に機能することができる。ブロック内のピクセルの動きは、以前にコーディングされたフレームに対して決定され得る。
図1は、ピクセルのブロック分割のある例を例証する略図である。それ自体がサブブロック(例えば、コーディングツリー内のノード)であり得る初期長方形ピクチャまたはブロック100が、長方形サブブロックに分割され得る。例えば、110において、ブロック100は、2つの長方形サブブロック110aおよび110bに分割される。サブブロック110aおよび110bは、次いで、別個に処理されることができる。別の例として、120において、ブロック100は、4つの長方形サブブロック120a、120b、120c、および120dに分割される。サブブロックは、サブブロック内のピクセルが同一の動きを共有するか、最小ブロックサイズが達せられるか、または別の基準を満たすと決定されるまで、サブブロック自体がさらに分割され得る。サブブロック内のピクセルが同様の動きを有するとき、動きベクトルは、その領域内の全てのピクセルの動きを記述することができる。
引き続き図1を参照すると、ビデオコーディングに対するいくつかのアプローチは、幾何学的分割を含むことができ、幾何学的分割は、指数関数的分割の形態であり得、(例えば、図1に例証されるような)長方形ブロックが、直線セグメントによって、非長方形であり得る2つの領域にさらに分けられ得る。例えば、図2は、幾何学的分割のある例を例証する図である。例示的長方形ブロック200(Mピクセルの幅およびNピクセルの高さを有し、M×Nピクセルとして表され得る)が、直線セグメントP1P2 205に沿って2つの領域(領域0および領域1)に分けられ得る。領域0内のピクセルが同様の動きを有するとき、動きベクトルは、その領域内の全てのピクセルの動きを記述し得る。動きベクトルは、領域0を圧縮するために使用され得る。同様に、領域1内のピクセルが同様の動きを有するとき、関連付けられる動きベクトルは、領域1内のピクセルの動きを記述し得る。そのような幾何学的分割は、ビデオビットストリーム内の位置P1およびP2(または位置P1およびP2の表現)をエンコードすることによって受信機(例えば、デコーダ)に信号伝達され得る。
継続して図2を参照すると、幾何学的分割を利用してビデオデータをエンコードするとき、直線セグメント205(または、より具体的には、点P1およびP2)が決定され得る。しかしながら、直線セグメントは、オブジェクト境界を反映する態様でブロックを分割することが可能ではない場合がある。結果として、直線セグメントを用いた分割は、効率的な態様で(例えば、任意の結果的残差が小さくなるように)ブロックを分割することが可能ではない場合がある。これは、ブロックが、湾曲した(例えば、非直線の)境界を有するオブジェクトまたは境界を表すピクセル(例えば、ルマサンプル)を含有し得る場合に当てはまり得る。例えば、図3は、直線セグメントによって効率的に分割されない場合が有るリンゴを含有する画像のある例示的実施形態を例証し、例証されたリングの画像は、画像の部分を示すいくつかの長方形ブロックを含み、これが、幾何学的分割に従って直線セグメントを使用して分割される場合、分割は、図3に例証された湾曲するオブジェクト(例えば、リンゴ)境界の近くを辿らない場合がある。
図4Aは、圧縮効率を増加させ得る、本主題のいくつかの側面による本開示の目的のために直線ではない曲線として画定される非線形曲線を使用する指数関数的分割の非限定的な例を例証する略図である。長方形ブロック400は、ピクセル(例えば、ルマサンプル)を含み得る。長方形ブロック400は、例証目的のみのために提供される非限定的な例として、8×8ピクセル(例えば、ルマサンプル)またはそれを上回るサイズを有し得る。
図4Aでは、長方形ブロック400は、2つ以上の領域に分割され得、曲線405によって、410で表される領域0、および415で表される領域1として図4Aに例示目的のために例証される。そのように画定される各領域内の全てのルマサンプルは、同様の動きを有すると見なされ、したがって、同一の動きベクトルを使用して表現可能であると見なされ得る。例示目的のために例証するために、領域410内の全てのルマサンプルは、同一または同様の動きを有すると見なされ得、同一の動きベクトルによって表され得る。同様に、領域415内の全てのルマサンプルは、同一または同様の動きを有すると見なされ得、同一の動きベクトルによって表され得る。下記により完全に説明されるように、それぞれの動きベクトルが、AMVPモードまたはマージモードに従って決定され得る。いくつかの実装では、議論の目的のために、長方形ブロック400を分ける曲線セグメント405の左または上方の全てのルマサンプルが、領域0(410)に属すると見なされ得る。いくつかの実装では、長方形ブロック400を分ける曲線セグメント405の右または下方の全てのルマサンプルが、領域1(415)に属すると見なされ得る。いくつかの実装では、長方形ブロック400を分ける曲線セグメントが通過する全てのルマサンプル(すなわち、線セグメント上および/またはそれによって交差されるルマサンプル)が、領域0(410)に属する。いくつかの実装では、それを通して長方形ブロック400を分ける曲線セグメントが通過する全てのルマサンプルが、領域1(415)に属すると見なされ得る。本開示の全体を精査することで当業者に想起されるように、他の実装も可能であり得る。
引き続き図4Aを参照すると、指数関数的分割が、ビットストリーム内に表され得る。いくつかの実装では、指数関数的分割モードが利用され得、適切なパラメータが、ビットストリーム内で信号伝達され得る。例えば、指数関数的分割が、所定の指数関数的分割テンプレートを信号伝達することによってビットストリーム内に表され得る。図4Bは、テンプレート分割420-435の非限定的な例を例証する一連の図である。いくつかの実装では、信号伝達は、予め画定されたこれらの通常の(例えば、テンプレート)指数関数的分割のうちの1つ以上にインデックスを含めることによって実施され得る。これらの通常の指数関数的分割は、所定の向きのセットを規定し得る。例えば、図4Cは、4つの予め画定されたテンプレート(1、2、3、4)と関連付けられる非限定的な例示的曲線を例証する。テンプレート曲率の数は、いくつかの実装において変動することができる。
継続して図4Bを参照すると、別の非限定的な例として、指数関数的分割は、指数関数の係数等の所定の係数を信号伝達することによってビットストリーム内に表され得、係数は、曲率の程度を示し、これは、追加の指数関数を可能にし得る、
いくつかの実装では、引き続き図4Bを参照すると、指数関数的分割モードにおいて使用される複数のテンプレート420-435の所定のテンプレートは、直線セグメントを示し得る。例えば、図4Cでは、係数1によってインデックスされるセグメントは、直線であり、これは、上記に説明されるように、幾何学的分割である指数関数的分割の特殊な場合と見なされることができる。
いくつかの実装では、例えば図4Bに例証される向きのテンプレートと、例えば図4Cに例証される所定のテンプレートとの両方が、多数の潜在的指数関数的分割の任意の指数関数的パターンを効率的に信号伝達するために利用され得、例えば、テンプレートは、限定ではないが、線セグメント1および/もしくは(指数関数的曲線を含み得る)1つ以上の非線形曲線2-4を含む、曲線オプション440を提供し得、そのうちのいずれかが、本開示に説明されるような分割を作成するために、エンコーダ、ユーザ、および/または自動化プロセスによって選択され得る。
いくつかの実装では、再び、図4Aを参照すると、始点および終点インデックスは、所定であり得る。例えば、図4Aは、長方形ブロック400の左下角で開始し長方形ブロック400の右上角において終了する例示的曲線セグメントを例証する。そのような所定の始点および終点インデックスは、デコーダのメモリ内に記憶され得る。代替として、または加えて、いくつかの実装では、始点および終点インデックスは、ビットストリーム内で明示的に信号伝達され得る。例えば、図4Dは、長方形ブロック400を分割する異なる始点P1および終点P2インデックスを示す別の例示的ブロックを例証する。始点P1および終点P2インデックスは、直接信号伝達されることもあるし、所定の値のセットへのインデックスによって示されることもある。本開示の全体を精査することで当業者に想起されるように、他のパラメータが可能である。
引き続き図4Aを参照すると、インター予測が、指数関数的に分割された領域を使用して実施され得る。動き補償に関する動きベクトルが、AMVPまたはマージモードを使用して導出され得る。AMVPでは、動きベクトル予測が、動きベクトル候補リストへのインデックスを信号伝達することによって行われ得、動きベクトル差(例えば、残差)が、エンコードされ、ビットストリーム内に含まれ得る。マージモードでは、動きベクトルは、動きベクトル差をエンコードすることなく、動きベクトル候補のリストから選択され、それによって、カレントブロックが、別の以前にデコードされたブロックの動き情報を採用することを可能にする。AMVPおよびマージモードの両方において、候補リストが、エンコーダとデコーダとの両方によって構築され得、候補リストへのインデックスが、ビットストリーム内で信号伝達され得る。
図5は、指数関数的分割に従って分割されたある例示的なカレントブロック1100に関する潜在的空間動きベクトル候補の位置の非限定的な例を例証する略図である。潜在的空間動きベクトル候補は、AMVPモードまたはマージモード中に動きベクトル候補リストを構築するために考慮され得る。非限定的な例として、カレントブロック1100が、点P0と点P1との間の曲線によって、2つの領域(領域S0および領域S1)に分割され得る。領域S0および領域S1の各々は、一方向性または双方向性で予測され得る。第1の領域(領域S0)に関する空間的候補が、図5に例示目的のために例証され、限定ではないが、左下候補A0、左候補A1、左上候補B2、上側候補B1、および右上候補B0を含み得る。
図5に例証されるように、いくつかの実装では、各場所(A0、A1、B2、B1、およびB0)は、それぞれの場所におけるブロックを表し得る。例えば、限定ではないが、左上候補B2は、領域S0のすぐ左かつ真上にある場所に存在するブロックを表し得、例えば、S0の左上角のルマ場所が(0,0)である場合、左上候補B2は、場所(-1,-1)に存在し得る。左下候補A0は、P1のすぐ左かつ下方に位置し得、例えば、限定ではないが、P1のルマ場所が(P1x,P1y)である場合、左下候補A0は、場所(P1x-1,P1y+1)に存在し得る。左候補A1は、P1のすぐ左に位置し得、例えば、左候補A1は、場所(P1x-1,P1y)に存在し得る。上側候補B1は、P0の真上に位置し得、例えば、P0のルマ場所が(P0x,P0y)である場合、上側候補B1は、(P0x,P0y-1)に位置する。右上候補B0は、第2の領域S1内の上方かつ最も右のルマ場所の真上に位置し得、例えば、S1の右上角が(S0_幅+S1_幅-1,0)に位置する場合、右上候補B0は、(S0_幅+S1_幅-1,-1)に位置し得、M=S0_幅+S1_幅である。本開示の全体を精査することで当業者に想起されるように、他の場所も可能である。図6は、第1の領域S0の上方かつ最も左のルマ場所と、第2の領域S1の上方かつ最も右のルマ場所とを含むルマ場所を示す注釈を伴う図5を例証する。
いくつかの実装では、引き続き図6を参照すると、指数関数的分割が存在する場合、そのような分割は異なる動き情報を有するフレーム内の分割領域(またはオブジェクト)に対して実施され得るので、領域S0に関する候補リストを構築するとき、潜在的候補のうちのいくつかは、利用不可能として自動的にマーキングされ、リストから除去され得る。故に、それらの候補と関連付けられるブロックは、異なる動きを有する別のオブジェクトを表す可能性が高いと推測され得、したがって、これらの候補は、利用不可能であるとして自動的にマーキングされ得る(例えば、さらに考慮されない、リストから除去される等)。非限定的な例として、図5に上記で例証されるように、領域S0は左下候補A0に位置するブロックと動き情報を共有しない可能性が高いので、領域S0に関して、左下候補A0は、利用不可能として自動的にマーキングされ得る。同様に、領域S0は右上候補B0に位置するブロックと動き情報を共有しない可能性が高いので、領域S0に関して、右上候補B0は、利用不可能として自動的にマーキングされ得る。
図7は、指数関数的分割に従って分割されたある例示的なカレントブロック1400に関する潜在的動きベクトル候補の位置の非限定的な例を例証する略図である。潜在的動きベクトル候補は、AMVPモードまたはマージモード中に候補リストを構築するために考慮され得る。カレントブロック1400は、位置P0と位置P1との間の曲線によって、2つの領域(領域S0および領域S1)に分割され得る。領域S0および領域S1の各々は、一方向性または双方向性で予測され得る。第2の領域(領域S1)に関する候補が、図7に例証され、左下候補A0、左候補A1、左上候補B2、上側候補B1、および右上候補B0を含み得る。
例証されるように、図7において、各場所(A0、A1、B2、B1、およびB0)は、それぞれの場所におけるブロックを表し得る。例えば、左上候補B2は、領域S1のすぐ左かつ真上にあるルマ場所に存在するブロックであり得、例えば、S1の左上角のルマ場所が、ルマ場所座標(P0x+1,P0y)であるP0に隣接する場合、左上候補B2は、場所(P0x,P0y-1)に存在し得る。左下候補A0は、S1の下方かつ最も左のルマ場所の最も左かつ下方に位置し得、例えば、S1の下方かつ最も左のルマ場所が、ルマ場所(0,S0_高さ+S1_高さ-1)である場合、左下候補A0は、場所(-1,S0_高さ+S1_高さ)に存在し得、N=S0_高さ+S1_高さである。左候補A1は、S1の下方かつ最も左のルマ場所(例えば、S1の左下角)のすぐ左に位置し得、例えば、S1の下方かつ最も左のルマ場所が、ルマ場所(0,S0_高さ+S1_高さ-1)である場合、左候補A1は、ルマ場所(-1,S0_高さ+1_高さ-1)に存在し得る。上候補B1は、S1の上方かつ最も右のルマ場所の真上に位置し得、例えば、S1の上方かつ最も右のルマ場所が(S0_幅+S1_幅-1,0)である場合、上候補B1は、(S0_幅+S1_幅-1,-1)に位置し得、M=S0_幅+S1_幅である。右上候補B0は、第2の領域S1の上方かつ最も右のルマ場所の真上かつ右に位置し得、例えば、S1の上方かつ最も右のルマ場所(例えば、右上角)が(S0_幅+S1_幅-1,0)に位置する場合、右上候補B0は、(S0_幅+S1_幅,-1)に位置し得る。図8は、第2の領域S1の下方かつ最も左のルマ場所と、第2の領域S1の上方かつ最も右のルマ場所とを含むルマ場所を示す注釈を伴う図7を例証する。
いくつかの実装では、引き続き図8を参照すると、領域S1に関する候補リストを構築するとき、指数関数的分割が存在する場合、そのような分割は、異なる動き情報を有するフレーム内の分割領域(またはオブジェクト)に実施され得るため、いくつかの潜在的候補は、利用不可能として自動的にマーキングされ、リストから除去され得る。故に、それらの候補と関連付けられるブロックは、異なる動きを有する別のオブジェクトを表す可能性が高いと推測され得、したがって、これらの候補は、利用不可能として自動的にマーキングされ得る(例えば、さらに考慮されない、リストから除去される等)。図7の例では、領域S1に関して、領域S1が左上候補B2に位置するブロックと動き情報を共有しない可能性が高いので、左上候補B2は、利用不可能として自動的にマーキングされ得る。
図9は、指数関数的分割を用いたインター予測を使用してビデオをエンコードすることが可能なビデオエンコーダ900の非限定的な例を例証するシステムブロック図である。例示的ビデオエンコーダ900は、入力ビデオ905を受信し、入力ビデオ905は、最初に、ツリー構造化コーディングブロック分割スキーム(例えば、クアッドツリープラスバイナリディシジョンツリー(QTBT))等の処理スキームに従って、セグメント化され、または分けられ得る。ツリー構造化コーディングブロック分割スキームの例は、ピクチャフレームをコーディングツリーユニット(CTU)と呼ばれる大きいブロック要素に分割することを含み得る。いくつかの実装では、各CTUは、コーディングユニット(CU)と呼ばれるいくつかのサブブロックに1回以上さらに分割され得る。この分割の最終結果は、予測ユニット(PU)と呼ばれ得るサブブロックの群を含み得る。変換ユニット(TU)もまた、利用され得る。そのような分割スキームは、本主題のいくつかの側面に従って、指数関数的分割を実施することを含み得る。図8は、フレームのQTBT分割のある例を例証し、図11は、図8に例証されるQTBTのCUレベルにおける指数関数的分割のある例を例証する。
引き続き図9を参照すると、ある例示的ビデオエンコーダ900は、イントラ予測プロセッサ915と、AMVPおよびマージモードを含む指数関数的分割を支援することが可能な動き推定/補償プロセッサ920(インター予測プロセッサとも称される)と、変換/量子化プロセッサ925と、逆量子化/逆変換プロセッサ930と、ループ内フィルタ935と、デコード済ピクチャバッファ940と、エントロピーコーディングプロセッサ945とを含み得る。いくつかの実装では、動き推定/補償プロセッサ920は、AMVPモードおよびマージモードの使用を含む指数関数的分割を使用してインター予測を実施し得る。指数関数的分割モード、AMVPモード、およびマージモードを信号伝達するビットストリームパラメータが、出力ビットストリーム950内での包含のために、エントロピーコーディングプロセッサ945に入力され得る。
動作時、継続して図9を参照すると、入力ビデオ905のフレームのブロック毎に、イントラピクチャ予測を介して、または動き推定/補償を使用してブロックを処理すべきかどうかが、決定され得る。ブロックは、イントラ予測プロセッサ910または動き推定/補償プロセッサ920に提供され得る。ブロックがイントラ予測を介して処理されるべきである場合、イントラ予測プロセッサ910は、処理を実施し、予測因を出力し得る。ブロックが動き推定/補償を介して処理されるべきである場合、動き推定/補償プロセッサ920は、AMVPモードおよびマージモードを用いた指数関数的分割の使用を含む処理を実施し、予測子を出力し得る。
引き続き図9を参照すると、残差が、入力ビデオから予測子を減算することによって形成され得る。残差は、変換/量子化プロセッサ925によって受信され得、変換/量子化プロセッサ925は、変換処理(例えば、離散コサイン変換(DCT))を実施して係数を生成し得、係数は、量子化され得る。量子化された係数および任意の関連付けられる信号伝達情報が、エントロピーエンコーディングおよび出力ビットストリーム950内での包含のために、エントロピーコーディングプロセッサ945に提供され得る。エントロピーエンコーディングプロセッサ945は、指数関数的分割モード、AMVPモード、およびマージモードに関連する信号伝達情報のエンコーディングを支援し得る。加えて、量子化された係数は、逆量子化/逆変換プロセッサ930に提供され得、逆量子化/逆変換プロセッサ930は、ピクセルを再現し得、ピクセルは、予測子と組み合わせられ、ループ内フィルタ935によって処理され得、その出力は、指数関数的分割モード、AMVPモード、およびマージモードを支援することが可能である動き推定/補償プロセッサ920による使用のために、デコード済ピクチャバッファ940内に記憶され得る。
図12は、圧縮効率を増加させながらエンコーディング複雑性を低減させることができる、本主題のいくつかの側面による指数関数的分割インター予測を用いてビデオをエンコードするある例示的プロセス1200を例証するプロセスフロー図である。ステップ1210において、ビデオフレームが、例えば、ピクチャフレームをCTUおよびCUに分割することを含み得るツリー構造化コーディングブロック分割スキームを使用して、初期ブロックセグメント化を受け得る。ステップ1220において、ブロックが、指数関数的分割のために選択され得、指数関数的分割は、幾何学的分割を含み得るか、または非線形曲線を使用する指数関数的分割を含み得る。選択は、ブロックが指数関数的分割モードに従って処理されるべきであることをメトリックルールに従って識別することを含み得る。
ステップ1230において、継続して図12を参照すると、指数関数的分割が、決定され得る。領域のうちの一方(例えば、領域0)の中のピクセル(例えば、ルマサンプル)が、同様の動きを有し、他方の領域(例えば、領域1)内のピクセルが、同様の動きを有するように、それらのフレーム間動きに従ってブロック内に含有されるピクセルを2つの非長方形領域(例えば、領域0および領域1)に分離する曲線および/もしくは曲線セグメント(例えば、405)ならびに/または直線および/もしくは直線セグメントが、決定され得る。
ステップ1240において、継続して図12を参照すると、各非長方形領域の動き情報が、AMVPモードまたはマージモードを使用して、決定および処理され得る。AMVPモードを使用して領域を処理するとき、候補リストが、上記に説明されるような空間的候補を含む空間的候補および時間的候補の両方を考慮することによって構築され得、候補を考慮することは、利用不可能としていくつかの候補をマーキングすることを含む。動きベクトルが、動きベクトル予測として動きベクトル候補のリストから選択され得、動きベクトル差(例えば、残差)が、算出され得る。候補リストへのインデックスが、決定され得る。マージモードでは、候補リストが、上記に説明される空間的候補を含む空間的候補および時間的候補の両方を考慮することによって構築され得、候補を考慮することは、利用不可能としていくつかの候補をマーキングすることを含む。動きベクトルは、領域が別のブロックの動き情報を採用するために、動きベクトル候補のリストから選択され得る。候補リストへのインデックスが、決定され得る。
ステップ1250において、継続して図12を参照すると、決定された指数関数的分割および動き情報が、ビットストリーム内で信号伝達され得る。ビットストリーム内で指数関数的分割を信号伝達することは、例えば、1つ以上の所定のテンプレートおよび/または係数へのインデックスを含めることを含み得る。AMVPを使用して領域を処理するときの動き情報の信号伝達は、ビットストリーム内に動きベクトル差(例えば、残差)および動きベクトル候補へのインデックスを含めることを含み得る。マージモードを使用して領域を処理するときの動き情報の信号伝達は、ビットストリーム内に動きベクトル候補へのインデックスを含めることを含み得る。
図13は、本主題のいくつかの側面による、指数関数的分割およびインター予測を使用してビットストリーム1370をデコードすることが可能な例示的デコーダ600を例証するシステムブロック図である。デコーダ600は、エントロピーデコーダプロセッサ1310と、逆量子化および逆変換プロセッサ1320と、デブロッキングフィルタ1330と、フレームバッファ1340と、動き補償プロセッサ1350と、イントラ予測プロセッサ1360とを含み得る。いくつかの実装では、ビットストリーム1370は、指数関数的分割モード、AMVPモード、およびマージモードを信号伝達するパラメータを含む。動き補償プロセッサ1350は、本開示に説明されるような指数関数的分割およびインター予測を使用してピクセル情報を再構築し得る。
動作時、ビットストリーム1370が、デコーダ600によって受信され、エントロピーデコーダプロセッサ1310に入力され得、エントロピーデコーダプロセッサ1310は、ビットストリームを量子化された係数にエントロピーデコードする。量子化された係数は、逆量子化および逆変換プロセッサ1320に提供され得、逆量子化および逆変換プロセッサ1320は、逆量子化および逆変換を実施して残差信号を作成し得、残差信号は、処理モードに従って、動き補償プロセッサ1350またはイントラ予測プロセッサ1360の出力に追加され得る。動き補償プロセッサ1350およびイントラ予測プロセッサ1360の出力は、以前にデコードされたブロックに基づくブロック予測を含み得る。予測および残差の合計が、デブロッキングフィルタ1330によって処理され、フレームバッファ1340内に記憶され得る。所与のブロック(例えば、CUまたはPU)に関して、ビットストリーム1370が、分割モードが指数関数的分割であることを信号伝達するとき、動き補償プロセッサ1350は、本明細書に説明される指数関数的分割アプローチに基づいて、本明細書に説明されるようなAMVPまたはマージモードのいずれかを使用して、予測を構築し得る。
図14は、本主題のいくつかの側面による、指数関数的分割を使用し、かつインター予測を使用してビットストリームをデコードするある例示的プロセス1400を例証するプロセスフロー図である。ステップ1410において、ビットストリームが受信される。受信することは、ビットストリームからカレントブロックおよび関連付けられる信号伝達情報を解析することを含め、ビットストリームおよびビットストリームからの関連付けられる信号伝達情報を抽出および/または解析することを含み得る。
ステップ1420において、引き続き図14を参照すると、カレントブロックが、指数関数的分割モードを介して第1の領域および第2の領域に分割され得る。分割は、指数関数的分割モードがブロックに関して有効化され(例えば、真であり)、非線形曲線を使用する指数関数的分割の使用を示すかどうかを決定することを含み得る。指数関数的分割モードが有効化されない(例えば、偽である)場合、デコーダは、幾何学的分割等の代替指数関数的分割モードを使用してブロックを処理し得、限定ではないが、線セグメントの端点、係数、または同等物を含む幾何学的分割に関するパラメータが、上記に説明されるようなビットストリームから受信され得る。指数関数的分割モードが有効化される(例えば、真である)場合、デコーダは、指数関数的分割を特徴付ける1つ以上のパラメータを抽出または決定し得る。これらのパラメータは、例えば、指数関数的係数インデックス、指数関数的係数値、向きテンプレートインデックス、ならびに/または曲線の始点および終点(例えば、P1P2)のインデックスを含み得る。抽出または決定は、ビットストリームからパラメータを識別し、読み出すこと(例えば、ビットストリームを解析すること)を含み得る。
ステップ1430において、継続して図14を参照すると、第1の領域または第2の領域のうちのある領域と関連付けられる動きベクトルが決定され得る。動きベクトルを決定することは、領域の動き情報がAMVPモードを使用して決定されるべきであるか、またはマージモードを使用して決定されるべきであるかを決定することを含み得る。AMVPモードを使用して領域を処理するとき、候補リストが、上記に説明される空間的候補を含む空間的候補および時間的候補の両方を考慮することによって構築され得、候補を考慮することは、利用不可能としていくつかの候補をマーキングすることを含む。動きベクトルが、動きベクトル予測として動きベクトル候補のリストから選択され得、動きベクトル差(例えば、残差)が算出され得る。マージモードでは、決定することは、領域毎に空間的候補および時間的候補の候補リストを構築することを含むことができる。領域毎の空間的候補は、図5-図8に関して上記に説明されるような空間的候補であり得る。候補リストを構築することは、利用不可能として候補を自動的にマーキングし、候補リストから利用不可能な候補を除去することを含み得る。構築された候補リストへのインデックスが、ビットストリームから解析され、候補リストから最終候補を選択するために使用され得る。カレント領域に関する動き情報が、最終候補の動き情報と同一であると決定され得る(例えば、領域に関する動きベクトルは、最終候補から採用されることができる)。
ステップ1440において、引き続き図14を参照すると、カレントブロックが、決定された動きベクトルを使用してデコードされ得る。
引き続き図14を参照すると、少数の変形例が、上記に詳細に説明されたが、他の修正または追加も、可能である。例えば、いくつかの実装では、指数関数的分割は、対称ブロック(8×8、16×16、32×32、64×64、128×128、および同等物)および種々の非対称ブロック(8×4、16×8、および同等物)に適用され得る。
継続して図14を参照すると、分割は、エンコーダにおけるレート歪み決定に基づいて、ビットストリーム内で信号伝達され得る。コーディングは、通常の所定の分割(例えば、テンプレート)と、分割の時間的および空間的予測と、付加的オフセットとの組み合わせに基づき得る。各々の指数関数的に分割された領域は、動き補償された予測またはイントラ予測を利用し得る。予測された領域の境界は、残差が追加される前に平滑化され得る。残差コーディングに関して、エンコーダは、ブロック全体のための通常の長方形DCTと各領域のための形状適応DCTとの間で選択し得る。
引き続き図14を参照すると、いくつかの実装では、クアッドツリープラスバイナリディシジョンツリー(QTBT)が、実装され得る。QTBTでは、コーディングツリーユニットレベルにおいて、QTBTの分割パラメータが、いかなるオーバーヘッドも伝送することなく、局所的特性に適合するように動的に導出され得る。続けて、コーディングユニット(CU)レベルにおいて、ジョイント分類器ディシジョンツリー構造が、不必要な反復を排除し、誤った予測のリスクを制御し得る。いくつかの実装では、指数関数的分割は、QTBTの全てのリーフノードにおいて利用可能な付加的分割オプションとして利用可能であり得る。いくつかの実装では、指数関数的分割は、QTBT分割のCUレベルでの付加的コーディングツールとして利用可能である。例えば、図8は、フレームのQTBT分割の例を例証し、図11は、図8に例証されるQTBTのCUレベルにおける指数関数的分割の例を例証する。
いくつかの実装では、デコーダは、指数関数的分割プロセッサを含み、指数関数的分割プロセッサは、カレントブロックに関する指数関数的分割を発生させ、従属するプロセスに関する全ての分割関連情報を提供し得る。動き補償は、ブロックが指数関数的に分割される場合にセグメント毎に実施され得るので、指数関数的分割プロセッサは、動き補償に直接影響を及ぼし得る。さらに、プロセッサが、形状情報をイントラ予測プロセッサおよび変換コーディングプロセッサに提供し得る。
いくつかの実装では、付加的シンタックス要素が、ビットストリームの異なる階層レベルにおいて信号伝達され得る。シーケンス全体に関して指数関数的分割を有効化するために、有効化フラグが、シーケンスパラメータセット(SPS)においてコーディングされ得る。さらに、任意のコーディングユニット(CU)が指数関数的分割を使用するかどうかを示すために、CTUフラグが、コーディングツリーユニット(CTU)レベルにおいてコーディングされ得る。カレントコーディングユニットが指数関数的分割を利用するかどうかを示すために、CUフラグがコーディングされ得る。ブロック上の曲線を規定するパラメータがコーディングされ得る。領域毎に、カレント領域がインター予測されるかまたはイントラ予測されるかを規定するフラグが、デコードされ得る。
いくつかの実装では、最小領域サイズが、規定され得る。
本明細書に説明される主題は、多くの技術的利点を提供する。例えば、本主題のいくつかの実装は、圧縮効率を増加させるブロックの分割を提供し得る。いくつかの実装では、オブジェクト境界のより近くを辿る態様で分割を実装することによって、効果的な視覚効果が、達成されることができる。同様に、いくつかの実装では、オブジェクト境界のより近くを辿る態様で分割を実装することによって、オブジェクト境界におけるブロッキングアーチファクトが、低減させられることができる。
本明細書に説明される側面および実施形態のうちの任意の1つ以上のものが、コンピュータ技術分野の当業者に明白であるように、本明細書の教示に従ってプログラムされた1つ以上の機械(例えば、電子ドキュメントのためのユーザコンピューティングデバイスとして利用される1つ以上のコンピューティングデバイス、ドキュメントサーバ等の1つ以上のサーバデバイス等)において実現および/または実装されるデジタル電子回路、集積回路、専用に設計された特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組み合わせを使用して、便宜的に実装され得ることに留意されたい。これらの種々の側面または特徴は、少なくとも1つのプログラム可能なプロセッサを含むプログラム可能なシステム上で実行可能かつ/または解読可能である1つ以上のコンピュータプログラムおよび/またはソフトウェア内での実装を含み得、少なくとも1つのプログラム可能なプロセッサは、専用目的もしくは汎用目的であり得、専用目的もしくは汎用目的であり得、データおよび命令を、ストレージシステム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスから受信し、データおよび命令をそれらに伝送するように結合される。適切なソフトウェアコーディングが、ソフトウェア技術分野の当業者に明白であるように、本開示の教示に基づいて、熟練のプログラマによって容易に準備され得る。ソフトウェアおよび/またはソフトウェアモジュールを採用する上記に議論される側面および実装もまた、ソフトウェアおよび/またはソフトウェアモジュールの機械実行可能命令の実装を補助するために適切なハードウェアを含み得る。
そのようなソフトウェアは、機械可読記憶媒体を採用するコンピュータプログラム製品であり得る。機械可読記憶媒体は、機械(例えば、コンピューティングデバイス)による実行のための命令のシーケンスを記憶および/またはエンコードすることが可能であり、かつ機械に本明細書に説明される方法および/または実施形態の任意の1つを実施させる任意の媒体であり得る。機械可読記憶媒体の例は、限定ではないが、磁気ディスク、光ディスク(例えば、CD、CD-R、DVD、DVD-R等)、光磁気ディスク、読取専用メモリ「ROM」デバイス、ランダムアクセスメモリ「RAM」デバイス、磁気カード、光学カード、ソリッドステートメモリデバイス、EPROM、EEPROM、プログラマブル論理デバイス(PLD)、および/またはそれらの任意の組み合わせを含む。機械可読媒体は、本明細書で使用される場合、単一の媒体、ならびに、例えばコンピュータメモリとの組み合わされたコンパクトディスクもしくは1つ以上のハードディスクドライブの集合等の物理的に分離した媒体の集合を含むように意図されている。本明細書で使用される場合、機械可読記憶媒体は、信号伝送の一過性形態を含まない。
そのようなソフトウェアはまた、搬送波等のデータキャリア上のデータ信号として搬送される情報(例えば、データ)を含み得る。例えば、機械実行可能情報は、信号が機械(例えば、コンピューティングデバイス)による実行のために命令のシーケンスまたはその一部をエンコードするデータキャリアにおいて具現化されるデータ搬送信号、ならびに機械に本明細書に説明される方法および/または実施形態の任意の1つを実施させる任意の関連する情報(例えば、データ構造およびデータ)として含まれ得る。
コンピューティングデバイスの例は、限定ではないが、電子書籍読書デバイス、コンピュータワークステーション、端末コンピュータ、サーバコンピュータ、ハンドヘルドデバイス(例えば、タブレット型コンピュータ、スマートフォン等)、ウェブ装置、ネットワークルータ、ネットワークスイッチ、ネットワークブリッジ、機械よってとられるべきアクションを規定する命令のシーケンスを実行することが可能である任意の機械、およびそれらの任意の組み合わせを含む。一例では、コンピューティングデバイスは、キオスクを含み、かつ/またはその中に含まれ得る。
図15は、コントロールシステムに本開示の側面および/または方法のうちの任意の1つ以上のものを実施させるための命令のセットが実行され得るコンピュータシステム1500の例示的形態としてのコンピューティングデバイスの一実施形態の図式表現を示す。複数のコンピューティングデバイスが、デバイスのうちの1つ以上に、本開示の側面および/または方法のうちの任意の1つ以上を実施させるために専用に構成された命令のセットを実装するために利用され得ることも、考えられる。コンピュータシステム1500は、プロセッサ1504と、メモリ1508とを含み、プロセッサ1504およびメモリ1508は、バス1512を介して相互に、および他の構成要素と通信する。バス1512は、限定ではないが、種々のバスアーキテクチャのうちのいずれかを使用するメモリバス、メモリコントローラ、周辺バス、ローカルバス、およびそれらの任意の組み合わせを含むいくつかのタイプのバス構造のうちのいずれかを含み得る。
メモリ1508は、限定ではないが、ランダムアクセスメモリ構成要素、読取専用構成要素、およびそれらの任意の組み合わせを含む種々の構成要素(例えば、機械可読媒体)を含み得る。一例では、起動中等にコンピュータシステム1500内の要素間で情報を転送することに役立つ基本ルーチンを含む基本入力/出力システム1516(BIOS)が、メモリ1508の中に記憶され得る。メモリ1508はまた、本開示の側面および/または方法のうちの任意の1つ以上を具現化する命令(例えば、ソフトウェア)1520を含み得る(例えば、1つ以上の機械可読媒体上に記憶されている)。別の例では、メモリ1508はさらに、限定ではないが、オペレーティングシステム、1つ以上のアプリケーションプログラム、他のプログラムモジュール、プログラムデータ、およびそれらの任意の組み合わせを含む任意の数のプログラムモジュールを含み得る。
コンピュータシステム1500はまた、記憶デバイス1524を含み得る。記憶デバイス(例えば、記憶デバイス1524)の例は、限定ではないが、ハードディスクドライブ、磁気ディスクドライブ、光学媒体と組み合わせられた光ディスクドライブ、ソリッドステートメモリデバイス、およびそれらの任意の組み合わせを含む。記憶デバイス1524は、適切なインターフェース(図示せず)によってバス1512に接続され得る。例示的インターフェースは、限定ではないが、SCSI、アドバンスト・テクノロジー・アタッチメント(ATA)、シリアルATA、ユニバーサルシリアルバス(USB)、IEEE1394(FIREWIRE(登録商標))、およびそれらの任意の組み合わせを含む。一例では、記憶デバイス1524(または1つ以上のその構成要素)は、(例えば、外部ポートコネクタ(図示せず)を介して)コンピュータシステム1500と除去可能にインターフェース接続され得る。特に、記憶デバイス1524および関連付けられた機械可読媒体1528は、コンピュータシステム1500のための機械可読命令、データ構造、プログラムモジュール、ならびに/または、他のデータの不揮発性記憶装置および/または揮発性記憶装置を提供し得る。一例では、ソフトウェア1520は、完全に、または部分的に、機械可読媒体1528内に常駐し得る。別の例では、ソフトウェア1520は、完全に、または部分的に、プロセッサ1504内に常駐し得る。
コンピュータシステム1500はまた、入力デバイス1532を含み得る。一例では、コンピュータシステム1500のユーザは、入力デバイス1532を介してコンピュータシステム1500内にコマンドおよび/または他の情報を打ち込み得る。入力デバイス1532の例は、限定ではないが、英数字入力デバイス(例えば、キーボード)、ポインティングデバイス、ジョイスティック、ゲームパッド、オーディオ入力デバイス(例えば、マイクロホン、音声応答システム等)、カーソル制御デバイス(例えば、マウス)、タッチパッド、光学スキャナ、ビデオ捕捉デバイス(例えば、静止カメラ、ビデオカメラ)、タッチスクリーン、およびそれらの任意の組み合わせを含む。入力デバイス1532は、限定ではないが、シリアルインターフェース、パラレルインターフェース、ゲームポート、USBインターフェース、FIREWIRE(登録商標)インターフェース、バス1512への直接的インターフェース、およびそれらの任意の組み合わせを含む種々のインターフェース(図示せず)のうちのいずれかを介して、バス1512にインターフェース接続され得る。入力デバイス1532は、タッチスクリーンインターフェースを含み得、タッチスクリーンインターフェースは、さらに下記に議論されるディスプレイ1536の一部であるか、またはそれと別個であり得る。入力デバイス1532は、上記に説明されるようなグラフィカルインターフェースにおいて1つ以上のグラフィック表現を選択するためのユーザ選択デバイスとして利用され得る。
ユーザはまた、記憶デバイス1524(例えば、リムーバブルディスクドライブ、フラッシュドライブ等)および/またはネットワークインターフェースデバイス1540を介してコマンドおよび/または他の情報をコンピュータシステム1500に入力し得る。ネットワークインターフェースデバイス1540等のネットワークインターフェースデバイスは、ネットワーク1544等の種々のネットワークのうちの1つ以上、およびそれに接続される1つ以上の遠隔デバイス1548にコンピュータシステム1500を接続するために利用され得る。ネットワークインターフェースデバイスの例は、限定ではないが、ネットワークインターフェースカード(例えば、モバイルネットワークインターフェースカード、LANカード)、モデム、およびそれらの任意の組み合わせを含む。ネットワークの例は、限定ではないが、ワイドエリアネットワーク(例えば、インターネット、企業ネットワーク)、ローカルエリアネットワーク(例えば、オフィス、建物、キャンパス、または他の比較的小さい地理的空間に関連付けられたネットワーク)、電話ネットワーク、電話/音声プロバイダと関連付けられたデータネットワーク(例えば、モバイル通信プロバイダのデータおよび/または音声ネットワーク)、2つのコンピューティングデバイス間の直接的接続、ならびにそれらの任意の組み合わせを含む。ネットワーク1544等のネットワークは、有線モードおよび/または無線のモードの通信を採用し得る。概して、任意のネットワークトポロジが使用され得る。情報(例えば、データ、ソフトウェア1520等)が、ネットワークインターフェースデバイス1540を介して、コンピュータシステム1500に、および/またはコンピュータシステム1500から通信され得る。
コンピュータシステム1500はさらに、ディスプレイデバイス1536等のディスプレイデバイスに表示可能な画像を通信するためのビデオディスプレイアダプタ1552を含み得る。ディスプレイデバイスの例は、限定ではないが、液晶ディスプレイ(LCD)、陰極線管(CRT)、プラズマディスプレイ、発光ダイオード(LED)ディスプレイ、およびそれらの任意の組み合わせを含む。ディスプレイアダプタ1552およびディスプレイデバイス1536は、本開示の側面のグラフィック表現を提供するためにプロセッサ1504と組み合わせて利用され得る。ディスプレイデバイスに加えて、コンピュータシステム1500は、限定ではないが、オーディオスピーカ、プリンタ、およびそれらの任意の組み合わせを含む1つ以上の他の周辺出力デバイスを含み得る。そのような周辺出力デバイスは、周辺インターフェース1556を介してバス1512に接続され得る。周辺インターフェースの例は、限定ではないが、シリアルポート、USB接続、FIREWIRE(登録商標)接続、パラレル接続、およびそれらの任意の組み合わせを含む。
前述は、本発明の例証的実施形態の詳細な説明である。種々の修正および追加が、本発明の精神および範囲から逸脱することなく成され得る。上記に説明される種々の実施形態の各々の特徴が、関連付けられた新しい実施形態において複数の特徴の組み合わせを提供するために、適宜、他の説明される実施形態の特徴と組み合わせられ得る。さらに、前述は、いくつかの別個の実施形態を説明するが、本明細書に説明されているものは、本発明の原理の適用を例証するにすぎない。加えて、本明細書における特定の方法は、具体的な順序で実施されるものとして例証および/または説明され得るが、順序は、本明細書に開示されるような実施形態を達成するために、通常の技術内で大いに変更可能である。故に、本説明は、例としてのみ捉えられることを意図されており、別様に本発明の範囲を限定するようには意図されていない。
上記の説明において、および請求項において、「~のうちの少なくとも1つ」または「~のうちの1つ以上」等の語句が生じ、要素または特徴の接続的列挙が後に続き得る。用語「および/または」もまた、2つ以上の要素または特徴の列挙内に生じ得る。そのような語句が使用される文脈によって別様に暗示的または明示的に否定されない限り、これは、個々に列挙される要素もしくは特徴のいずれか、または他の記載される要素もしくは特徴のいずれかと組み合わせて記載される要素もしくは特徴のいずれかを意味することが意図されている。例えば、語句「AおよびBのうちの少なくとも一方」、「AおよびBのうちの1つ以上」、ならびに「Aおよび/またはB」は、各々、「Aのみ、Bのみ、またはAおよびBともに」を意味することが意図されている。同様の解釈が、3つ以上のアイテムを含む列挙に関しても意図されている。例えば、語句「A、B、およびCのうちの少なくとも1つ」、「A、B、およびCのうちの1つ以上」、ならびに「A、B、および/またはC」は、各々、「Aのみ、Bのみ、Cのみ、AおよびBともに、AおよびCともに、BおよびCともに、またはAおよびBおよびCともに」を意味することが意図されている。加えて、上記および請求項内での用語「~に基づいて」の使用は、記載されていない特徴または要素も許容可能であるように、「少なくとも、~に基づいて」を意味することが意図されている。
本明細書に説明される主題は、所望の構成に応じて、システム、装置、方法、および/または物品として具現化されることができる。前述の説明に記載される実装は、本明細書に説明される主題と一貫した全実装を表すわけではない。代わりに、それらは、単に説明される主題に関連する側面と一貫するいくつかの例にすぎない。いくつかの変更が、上記で詳細に説明されているが、他の修正または追加も、可能である。特に、さらなる特徴および/または変更が、本明細書に記載されるものに加えて提供され得る。例えば、上記で説明される実装は、開示される特徴の種々の組み合わせおよび副次的組み合わせおよび/または上記に開示されるいくつかのさらなる特徴の組み合わせおよび副次的組み合わせを対象とし得る。加えて、付随の図に描写され、かつ/または本明細書に説明される論理フローは、望ましい結果を達成するために、必ずしも、示される特定の順序または連続的順序を要求しない。他の実装も、以下の請求項の範囲内にあり得る。