(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0025】
図1はピクチャを符号化及び復号するための情報処理システム100を示す。
図1の例において、物理的オブジェクト102及び104は(例えば、それぞれ、矢印106及び108によって示されるように)様々な方向へ移動できる。時間の或る期間の間、ビデオカメラ110が、(a)このようなオブジェクト及びそれらの周りの前景及び背景を視て、(b)そのような視野(view)のピクチャをデジタル化し、(c)そのようにデジタル化された(又はデジタル)ピクチャのビデオシーケンスを、符号化デバイス112に出力する。符号化デバイス112は、(a)そのようなデジタル化されたピクチャのビデオシーケンスをビデオカメラ110から受け取り、(b)それに応答して、そのようなデジタル化されたピクチャのビデオシーケンスを2進論理ビットストリームに符号化し、(c)そのようなビットストリームを受け取り記憶する記憶デバイス114に、そのようなビットストリームを出力する。一実施形態において、符号化デバイス112は、HEVC規格(例えば、H.265規格)に従ってそのような符号化を実行するように動作可能である。
【0026】
復号デバイス116が、(a)そのようなビットストリームを記憶デバイス114から読み出し、(b)それに応答して、そのようなビットストリームをそのようなデジタル化されたピクチャのビデオシーケンスに復号し、(c)そのようなデジタル化されたピクチャのビデオシーケンスを表示デバイス118に出力する。表示デバイス118は、(a)そのようなデジタル化されたピクチャのビデオシーケンスを復号デバイス116から受け取り、(b)それに応答して、人間であるユーザが見ることのできる、視覚イメージ(例えば、オブジェクト102及び104、及びそれらの周りの前景及び背景の視覚イメージ)のビデオシーケンスを表示する。一実施形態において、復号デバイス116は、HEVC規格に従ってそのような復号を実行するように動作可能である。
【0027】
一つの代替実施形態において、(a)符号化デバイス112は、そのようなビットストリームを、通信チャネル(例えば、イサーネット、インターネット、又は無線通信チャネル)を介して復号デバイス116に直接出力し、(b)それに従って、復号デバイス116は、そのようなビットストリームを符号化デバイス112から直接受け取る。そのような代替実施形態において、記憶デバイス114は、(a)符号化デバイス112からそのようなビットストリームを同時に受け取り及び記憶するか、又は(b)システム100に存在しないかのいずれかである。
【0028】
符号化デバイス112は、コンピュータ可読媒体120(例えば、ハードディスクドライブ、フラッシュメモリカード、又は他の不揮発性記憶デバイス)に記憶されたコンピュータ可読プログラムの命令に応答して、その動作を実行する。同様に、復号デバイス116は、コンピュータ可読媒体122に記憶されたコンピュータ可読プログラムの命令に応答して、その動作を実行する。システム100は、システム100の動作を実行するための電子回路要素部品によって形成される。
【0029】
図2は、システム100によって処理されたデジタル化されたピクチャ内の最大符号化ユニット(LCU)を示す。例示の実施形態において、各LCUは、特定のサイズの正方アレイ(例えば64×64ピクセル、これはLCU当たり4,096ピクセルに等しい)である。
図2では、LCUは、LCUabの番号が付され、(a)aは0〜Nの範囲のLCU行数であり、(b)Nはデジタル化されたピクチャ内のLCU行の総数であり、(c)bは0〜Mの範囲のLCU列数であり、(d)Mはデジタル化されたピクチャ内のLCU列の総数である。N>2及びM>2であるが、明確にするために、
図2はLCUの9個のみ図示されている。ここで、aは0〜2の範囲であり、bは0〜2の範囲である。
【0030】
図3は
図2の例示のLCU内の符号化ユニット(CU)及び予測ユニット(PU)を示す。符号化デバイス112は、デジタル化されたピクチャのピクセルをラスタ走査順(例えば、ラスタ走査矢印302及び304によって示されるように、それぞれ、左から右、上から下)に符号化することによって、そのようなデジタル化されたピクチャを2進論理ビットストリームに符号化する。同様に、復号デバイス116は、そのようなデジタル化されたピクチャのピクセルを同じラスタ走査順に復号することによって、そのようなビットストリームをそのようなデジタル化されたピクチャに復号する。
【0031】
図3において、(a)CU306が単一PUを含み、CU306がその単一PUと同一幅であるようになっており、(b)CU308が単一PUを含み、CU308がその単一PUと同一幅であるようになっており、(c)CU310が単一PUを含み、CU310がその単一PUと同一幅であるようになっている。また、
図3において、(a)別のCUが2個のPU312a及び312bを含み、(b)更に別のCUがPUla及びPUlbと付された2個のPUを含む。更に
図3では、(a)別のCUが4個のPU314a、314b、314c、及び314dを含み、(b)更に別のCUがPU2a、PU2b、PU2c、及びPU2dと付された4個のPUを含む。
【0032】
このように、
図3に示されるように、例示のLCUは、種々のサイズ及び形状を有するCU及びPUを含む。それらのサイズ及び形状、CUの数、及びPUの数は、LCU毎に異なり得る。このような方式で、各LCUは、それ自体のそれぞれの、様々なサイズ及び形状を有するCU及びPUの組み合わせを含む。例示の実施形態において、最小PUサイズは4×8(及び/又は8×4)ピクセルであり、最大PUサイズは64×64ピクセルであり、最大CUサイズは64×64ピクセルである。一実施形態において、最小CUサイズは8×8ピクセルである。別の実施形態において、最小CUサイズは16×16ピクセルである。
【0033】
図4は、システム100によって処理されたピクチャk内のCU402、404、406、408、410、及び412を示す。そのようなCUは1つ又は複数のLCU内に存在する。一例において、(a)第1のLCUがCU402、408、及び412を含み、(b)第2のLCUがCU404、406、及び410を含む。
図3でCU308がCU306より小さいのと同様に、CU412はCU402、404、406、408、及び410より小さい。更に、ピクチャkは付加的なCUを含み、明確にするために、それらは
図4には示していない。
【0034】
図5は
図4のCU内のPUを示す。
図5において、各正方形が1個のPUであり、各長方形が1個のPUである。正方形は、辺の長さが等しい長方形である。
図5において、PUの数が多い(すなわち、33個)ため、明確にするために、PU502、504、及び506のみに符号が付けられている。また、ピクチャkは、(ピクチャkの付加的なCU内の)付加的なPUを含み、明確にするために、それらは
図5には示していない。
【0035】
図6は、第1の実施形態における、
図5のPUを示す。
図6に示されるように、斜線で示された、PUのサブセットが、下記7個のPU(「近隣コーナーPU」と総称する)、(a)PU502の第1のコーナーに接する下側サイドコーナーPU、(b)PU502の第1のコーナーに接する下側サイドPU、(c)PU502の第2のコーナーに接する上側サイドPU、(d)PU502の第2のコーナーに接するトップ左コーナーPU、(e)PU502の第2のコーナーに接するトップ左PU、(f)PU502の第3のコーナーに接するトップ右PU、(g)PU502の第3のコーナーに接するトップ右コーナーPU、のみを含み、
図5の他のPUは含まない。
図6の例において、(a)下側サイドPU及び上側サイドPUは、下側サイドPUと上側サイドPUとが互いに接しないように下側サイドPUと上側サイドPUとの間に配置される付加的な左サイドPUによって、互いに分離され、(b)トップ左PU及びトップ右PUは、トップ左PUとトップ右PUとが互いに接しないようにトップ左PUとトップ右PUとの間に配置される付加的なトップサイドPUによって、互いに分離される。
【0036】
図7は第1の実施形態における符号化デバイス112の第1の動作のフローチャートである。
図8は第1の実施形態における符号化デバイス112の第2の動作のフローチャートである。
図9は第1、第2、及び第3の実施形態における符号化デバイス112の第3の動作のフローチャートである。
【0037】
例示の実施形態において、現PU(例えば、
図6の例のPU502)はそれ自体のそれぞれの動きベクトルを有する。符号化デバイス112は、その動きベクトルを、例えば(a)第1の実施形態では、
図7〜
図9に従って、(b)第2の実施形態では、
図9、
図11、及び
図12に従って、(c)第3の実施形態では、
図9、
図19、及び
図20に従って、予測符号化によって符号化する。オブジェクト102のイメージが少なくとも部分的に、ピクチャkの現PU及び先行する参照ピクチャのマッチングPU内にある一例において、現PUの動きベクトルは、そのようなマッチングPUと現PUとの間のオブジェクト102の動きの方向及び大きさを数値的に示す。例示の実施形態において、符号化デバイス112は、(ピクチャk内の)種々のPUのそれぞれの動きベクトルをそのように符号化し、それらPUの各々は、ラスタ走査順(例えば、
図3のラスタ走査矢印302及び304でそれぞれ示されるように、左から右、上から下)に、現PUとして連続してそのように符号化される。
【0038】
図7を参照すると、ステップ702、704、及び706で、符号化デバイス112は、(
図6の矢印602で示される順に)下側サイドコーナーPU、下側サイドPU、及び上側サイドPUを識別及び走査して、それらのPUの1つがMVP候補として許容可能か否かを判定する。一例において、単一PUが下側サイドPU及び上側サイドPUの両方として配置される場合(例えば、そのような単一PUがPU502の左サイド全体に接する場合)、符号化デバイス112は、(
図6の矢印602で示される順に)下側サイドコーナーPU及びそのような単一PUを走査して、それらのPUの1つがMVP候補として許容可能であるか否かを判定する。ステップ708、710、及び712で、符号化デバイス112がそれらのPUの1つが候補として許容可能(許容可能サイドPU)であると判定することに応答して、符号化デバイス112はそのような走査を終了し、許容可能サイドPUの動きベクトルがサイドMVP候補の動きベクトルとして用いられるように、許容可能サイドPUをサイドMVP候補として選択(例えば、識別)する。ステップ714で、符号化デバイス112が下側サイドコーナーPU、下側サイドPU、又は上側サイドPUのいずれもMVP候補として許容可能でないと判定することに応答して、符号化デバイス112はサイドMVP候補が利用不可能としてマークする。第1、及び第2の実施形態において、PUがMVP候補として許容可能である場合、そのようなPUは次の条件を満たす。即ち、(a)そのようなPUは相互符号化され、(b)そのようなPUは、現PUの動きベクトルと同一又は異なる方向(例えば、LIST0又はLIST1)の動きベクトルを有し、且つ、(c)そのようなPUは、現PUと同一又は異なる参照インデックスを用いる。
【0039】
図8を参照すると、ステップ802、804、806、及び808で、符号化デバイス112は、(
図6の矢印604で示される順に)トップ右コーナーPU、トップ右PU、トップ左PU、及びトップ左コーナーPUを識別及び走査して、それらのPUの1つがMVP候補として許容可能か否かを判定する。一例において、単一PUがトップ右PU及びトップ左PUの両方として配置される場合(例えば、そのような単一PUがPU502のトップサイド全体に接する場合)、符号化デバイス112は、(
図6の矢印604で示される順に)トップ右コーナーPU、そのような単一PU、及びトップ左コーナーPUを走査して、それらのPUの1つがMVP候補として許容可能か否かを判定する。ステップ810、812、814、及び816で、符号化デバイス112がそれらのPUの1つがMVP候補として許容可能(許容可能トップPU)であると判定することに応答して、符号化デバイス112はそのような走査を終了し、許容可能トップPUの動きベクトルがトップMVP候補の動きベクトルとして用いられるように、許容可能トップPUをトップMVP候補として選択する。ステップ818で、符号化デバイス112が、トップ右コーナーPU、トップ右PU、トップ左PU、又はトップ左コーナーPUのいずれもMVP候補として許容可能でないと判定することに応答して、符号化デバイス112はトップMVP候補を利用不可能としてマークする。
【0040】
そのようにして、符号化デバイス112は、それが、(a)サイドMVP候補を選択するために最大3個の近隣コーナーPUのみ、及び(b)トップMVP候補を選択するために最大4個の近隣コーナーPUのみを走査(例えば、検索)するため、符号化効率を低下させることなく、第1の実施形態におけるその最悪ケースの処理負荷を軽減する。比較すると、前の技術では(a)現PUのトップ及び/又は左サイドに接する全てのPU(「近隣PU」と総称する)が走査されるはずであり、(b)従って、最小PUサイズが4×8(及び/又は8×4)ピクセルである場合、サイドMVP候補を選択するために、最大17個の近隣PUが走査されるはずであり、トップMVP候補を選択するために、最大18個の近隣PUが走査されるはずである。
【0041】
サイドMVP候補及び/又はトップMVP候補に加えて、符号化デバイス112は、適用可能な参照フレームから一時的MVP候補(利用可能及び許容可能であれば)を選択する。一時的MVP候補のそのような選択は、従来の方式で実行される。
【0042】
符号化デバイス112は、
図7及び
図8の動作を実行した後、
図9の動作及びその符号化動作の残りを実行する。
図9を参照すると、符号化デバイス112は、サイドMVP候補の動きベクトル、トップMVP候補の動きベクトル、又は一時的MVP候補の動きベクトルのいずれかを、現PUの動きベクトルからの最小差を有するものとして選択する(選択された動きベクトル)。例えば、サイドMVP候補の動きベクトルが現PUの動きベクトルからの最小差を有する場合、符号化デバイス112はこのサイドMVP候補を選択されたMVPとして識別する。同様に、トップMVP候補の動きベクトルが現PUの動きベクトルからの最小差を有する場合、符号化デバイス112はこのトップMVP候補を選択されたMVPとして識別する。同様に、符号化デバイス112は、一時的MVP候補の動きベクトルが現PUの動きベクトルからの最小差を有する場合、この一時的MVP候補を選択されたMVPとして識別する。
【0043】
従って、ステップ902で、サイドMVP候補が利用可能である場合、符号化デバイス112は、サイドMVP候補の動きベクトルと現PUの動きベクトルとの間の差(サイドMVP差)を計算する。同様に、次のステップ904で、トップMVP候補が利用可能である場合、符号化デバイス112は、トップMVP候補の動きベクトルと現PUの動きベクトルとの間の差(トップMVP差)を計算する。更に、次のステップ906で、一時的MVP候補が利用可能である場合、符号化デバイス112は、一時的MVP候補の動きベクトルと現PUの動きベクトルとの間の差(一時的MVP差)を計算する。
【0044】
次のステップ908で、符号化デバイス112は、サイドMVP差、トップMVP差、又は一時的MVP差、のいずれか小さいものを符号化する。次のステップ910で、符号化デバイス112はMVPインデックスを符号化して、選択されたMVPを識別する。例えば、サイドMVP候補、トップMVP候補、又は一時的MVP候補の1つのみが利用可能である場合、符号化デバイス112は、(a)そのような利用可能MVP候補の動きベクトル及び現PUの動きベクトルと、(b)MVPインデックスとを符号化して、そのような利用可能MVP候補を選択されたMVPとして識別する。
【0045】
符号化デバイス112及び復号デバイス116は、下記のMVPインデックス表に示すような8つのケースのいずれかに応答して動作する。
【表1】
【0046】
ケース0の場合:(a)ステップ908で、符号化デバイス112は、(サイドMVP差、トップMVP差、又は一時的MVP差を符号化するのではなく)現PUの動きベクトルの実際の値を符号化し、(b)ステップ910で、符号化デバイス112は、MVPインデックス=0を符号化する。ケース1〜7の場合、符号化デバイス112は、上記MVPインデックス表に従って、適用可能であるように、MVPインデックスを符号化する。
【0047】
第1の実施形態において、復号デバイス116は、(a)サイドMVP候補(利用可能であれば)及びトップMVP候補(利用可能であれば)を識別するために、
図7及び
図8の動作を実行し、(b)一時的MVP候補(利用可能であれば)を識別し、(c)そのような識別に応答して、復号されたMVPインデックスが、サイドMVP候補、トップMVP候補、又は一時的MVP候補のどれを参照しているかを上記MVPインデックス表に従って判定する。
【0048】
図10は、第2の実施形態における、
図5のPUを示す。
図10に示されるように、斜線で示された、PUのサブセットが、下記5個のPU(「近隣コーナーPU」と総称する)、即ち、(a)PU502の第1のコーナーに接する下側サイドコーナーPU、(b)PU502の第1のコーナーに接する下側サイドPU、(c)PU502の第2のコーナーに接するトップ左コーナーPU、(d)PU502の第3のコーナーに接するトップ右PU、及び(e)PU502の第3のコーナーに接するトップ右コーナーPU、のみを含み、
図5の他のPUは含まない。
図10の例において、(a)下側サイドPU及びトップ左コーナーPUは、下側サイドPUとトップ左コーナーPUが互いに接しないように、下側サイドPUとトップ左コーナーPUとの間に配置される付加的な左サイドPUによって互いに分離され、(b)トップ左コーナーPU及びトップ右PUは、トップ左コーナーPUとトップ右PUが互いに接しないように、トップ左コーナーPUとトップ右PUとの間に配置される付加的なトップサイドPUによって互いに分離される。
【0049】
図11は、第2の実施形態における、符号化デバイス112の第1の動作のフローチャートである。
図12は、第2の実施形態における、符号化デバイス112の第2の動作のフローチャートである。
【0050】
図11を参照すると、ステップ1102及び1104で、符号化デバイス112は、(
図10の矢印602で示される順に)下側サイドコーナーPU及び下側サイドPUを識別及び走査して、それらのPUの1つがMVP候補として許容可能か否かを判定する。ステップ1106及び1108で、符号化デバイス112がそれらのPUの1つがMVP候補として許容可能(許容可能サイドPU)であると判定することに応答して、符号化デバイス112はそのような走査を終了し、許容可能サイドPUの動きベクトルがサイドMVP候補の動きベクトルとして用いられるように、許容可能サイドPUをサイドMVP候補として選択する。ステップ1110で、符号化デバイス112が、下側サイドコーナーPU又は下側サイドPUのいずれもMVP候補として許容可能でないと判定することに応答して、符号化デバイス112はサイドMVP候補を利用不可能としてマークする。
【0051】
図12を参照すると、ステップ1202、1204、及び1206で、符号化デバイス112は、(
図10の矢印604で示される順に)トップ右コーナーPU、トップ右PU、及びトップ左コーナーPUを識別及び走査して、それらのPUの1つがMVP候補として許容可能か否かを判定する。ステップ1208、1210、及び1212で、符号化デバイス112がそれらのPUの1つがMVP候補として許容可能(許容可能トップPU)であると判定することに応答して、符号化デバイス112はそのような走査を終了し、許容可能トップPUの動きベクトルがトップMVP候補の動きベクトルとして用いられるように、許容可能トップPUをトップMVP候補として選択する。ステップ1214で、符号化デバイス112が、トップ右コーナーPU、トップ右PU、又はトップ左コーナーPUのいずれもMVP候補として許容可能ではないと判定することに応答して、符号化デバイス112はトップMVP候補を使用不可能としてマークする。
【0052】
そのようにして、符号化デバイス112は、それが、(a)サイドMVP候補を選択するために最大2個の近隣コーナーPUのみ、及び(b)トップMVP候補を選択するために最大3個の近隣コーナーPUのみを走査するため、符号化効率を低下させることなく、第2の実施形態におけるその最悪ケースの処理負荷を更に軽減する。
【0053】
符号化デバイス112は、
図11及び
図12の動作を実行した後、
図9の動作及び符号化動作の残りを実行する。
【0054】
第2の実施形態において、復号デバイス116は、(a)サイドMVP候補(利用可能であれば)及びトップMVP候補(利用可能であれば)を識別するために、
図11及び
図12の動作を実行し、(b)一時的MVP候補(利用可能であれば)を識別し、(c)そのような識別に応答して、復号されたMVPインデックスが、サイドMVP候補、トップMVP候補、又は一時的MVP候補、のどれを参照するかを上記MVPインデックス表に従って、判定する。
【0055】
再び
図6を参照すると、一つの代替実施形態において、符号化デバイス112は、(a)下側サイドPU及び上側サイドPUを(順番に、又は任意選択的に異なる順に)識別及び走査して、それらのPUの1つがMVP候補として許容可能(第1のMVP候補)か否かを判定し、それらのPUの1つがそのように許容可能であると判定することに応答して、そのような走査を終了し、(b)トップ右PU及びトップ左PUを(順番に、又は任意選択的に異なる順に)識別及び走査して、それらのPUの1つがMVP候補として許容可能(第2のMVP候補)か否かを判定し、それらのPUの1つがそのように許容可能であると判定することに応答して、そのような走査を終了し、(c)下側サイドコーナーPU、トップ左コーナーPU、及びトップ右コーナーPUを(順番に、又は任意選択的に異なる順に)識別及び走査して、それらのPUの1つがMVP候補として許容可能(第3のMVP候補)か否かを判定し、それらのPUの1つがそのように許容可能であると判定することに応答して、そのような走査を終了し、(d)第1、第2、及び第3のMVP候補のそれぞれの動きベクトルに応答して、(例えば、第1、第2、及び第3のMVP候補のそれぞれの動きベクトルの平均又は中央値を計算することによって)第4のMVP候補の動きベクトルを計算し、(e)第1、第2、第3、及び第4のMVP候補のそれぞれの動きベクトルの中から、現PUの動きベクトルからの最小差を有する動きベクトルを選択し(選択された動きベクトル)、(f)選択された動きベクトルを有するMVP候補(選択されたMVP)を識別するために、(現PUのための)そのような差及びMVPインデックスを符号化し、その符号化動作の残りを実行する。この代替実施形態において、PUがMVP候補として許容可能である場合、そのようなPUは、第1及び第2の実施形態に関連して上述したものと同じ条件を満たす。
【0056】
図13は第1の例を示す。ここでは、
図13において斜線で示すように、(ピクチャj内の)2個のPUが、それぞれ、(ピクチャk内の)PU502及び504のためのベストマッチである。そのため、第1の例では、ピクチャjは、(ピクチャk内の)PU502及び504のための参照ピクチャ(又は「参照フレーム」)である。従って、第1の例では、(ピクチャk内の)PU502及び504は同じ参照フレーム(ピクチャj)を有する。
【0057】
図14は第2の例を示す。ここでは、(a)
図14において斜線で示すように、(ピクチャj内の)2個のPUは、それぞれ、(ピクチャk内の)PU502及び506のためのベストマッチであり、(b)
図14の別の斜線で示すように、(ピクチャi内の)PUは、(ピクチャk内の)PU504のためのベストマッチである。そのため、第2の例では、(a)ピクチャjは、(ピクチャk内の)PU502及び506のための参照フレームであり、(b)ピクチャiは、(ピクチャk内の)PU504のための参照フレームである。従って、第2の例では、(ピクチャk内の)PU502及び506は同じ参照フレーム(ピクチャj)を有するが、(ピクチャk内の)PU502及び504は異なる参照フレーム(ピクチャj及びピクチャz)を有する。
【0058】
図15は第1の状況を示す。ここでは、
図15において斜線で示すように、第1の参照ピクチャリストLIST0のピクチャ01内の第1及び第2のPUが、それぞれ、(ピクチャk内の)PU502及び504のためのベストマッチである。そのため、第1の状況では、LIST0のピクチャ01は、(ピクチャk内の)PU502及び504のための参照フレームである。従って、第1の状況では、(a)(ピクチャk内の)PU502及び504は同じリスト(LIST0)の同じ参照フレーム(ピクチャ01)を有し、(b)便宜上、PU502と比較して、PU504はここではタイプ−1動きベクトル(T1ベクトル)を有するものとして参照される。
【0059】
図15〜
図18の例において、(a)符号化デバイス112がピクチャkを符号化する前に、符号化デバイス112はLIST0のピクチャを既に符号化しており、(b)同様に、復号デバイス116がピクチャkを復号する前に、復号デバイス116はLIST0のピクチャを既に復号している。従って、LIST0のサイズ(例えば、LIST0内のピクチャの総数)は(例えば、MPEG−4規格に従って)変動することがある。例えば、
図15〜
図18は、ピクチャ0fと番号が付されている、LIST0内の4個のピクチャを示す。ここで、(a)fは0からP−lの範囲のピクチャ番号であり、(b)PはLIST0内のピクチャの総数である。Pは変動することがあるが、明確にするために、
図15〜
図18は、LIST0内の、fが0から3の範囲の、4個のピクチャを示す。
【0060】
図16は第2の状況を示す。ここでは、(a)
図16において第1の斜線で示すように、LIST0のピクチャ01内の第1のPUは、(ピクチャk内の)PU502のためのベストマッチであり、(b)
図16において第2の斜線で示すように、第2の参照ピクチャリストLIST1のピクチャ11内の第2のPUは、(ピクチャk内の)PU504のためのベストマッチである。そのため、第2の状況では、(a)LIST0のピクチャ01は、(ピクチャk内の)PU502のための参照フレームであり、(b)LIST1のピクチャ11は(ピクチャk内の)PU504のための参照フレームである。第2の状況において、LIST1のピクチャ11はLIST0のピクチャ01と同一(例えば、同じ)である。従って、第2の状況では、(a)(ピクチャk内の)PU502及び504は、異なるリスト(LIST0及びLIST1)の同じ参照フレーム(ピクチャ01及びその同一ピクチャ11)を有し、(b)便宜上、PU502と比較して、PU504は、タイプ−2動きベクトル(T2ベクトル)を有するものとして参照される。
【0061】
図15〜
図18の例において、(a)符号化デバイス112がピクチャkを符号化する前に、符号化デバイス112はLIST1のピクチャを既に符号化しており、(b)同様に、復号デバイス116がピクチャkを復号する前に、復号デバイス116はLIST1のピクチャを既に復号している。従って、LIST1のサイズ(例えば、LIST1のピクチャの総数)は(例えば、MPEG−4規格に従って)変動することがある。例えば、
図15〜
図18は、ピクチャIgとして番号が付されている、LIST1内の4個のピクチャを示す。ここで、(a)gは0からQ−lの範囲のピクチャ番号であり、(b)QはLIST1内のピクチャの総数である。Qは変動することがあるが、明確にするために、
図15〜
図18は、LIST1内の、gが0から3の範囲の、4個のピクチャを示す。
【0062】
図17は第3の状況を示す。ここでは、(a)
図17において第1の斜線で示すように、LIST0のピクチャ01内の第1のPUが、(ピクチャk内の)PU502のためのベストマッチであり、(b)
図17において第2の斜線で示すように、LIST0のピクチャ02内の第2のPUが、(ピクチャk内の)PU504のためのベストマッチである。そのため、第3の状況では、(a)LIST0のピクチャ01は、(ピクチャk内の)PU502のための参照フレームであり、(b)LIST0のピクチャ02は、(ピクチャk内の)PU504のための参照フレームである。従って、第3の状況では、(a)(ピクチャk内の)PU502及び504は、同じリスト(LIST0)の異なる参照フレーム(ピクチャ01及びピクチャ02)を有し、(b)便宜上、PU502と比較して、PU504はここでは、タイプ−3動きベクトル(T3ベクトル)を有するものとして参照される。
【0063】
図18は第4の状況を示す。ここでは、(a)
図18において第1の斜線で示すように、LIST0のピクチャ01内の第1のPUは、(ピクチャk内の)PU502のためのベストマッチであり、(b)
図18において第2の斜線で示すように、LIST1のピクチャ12内の第2のPUが、(ピクチャk内の)PU504のためのベストマッチである。そのため、第4の状況において、(a)LIST0のピクチャ01は、(ピクチャk内の)PU502ための参照フレームであり、(b)LIST1のピクチャ12は、(ピクチャk内の)PU504のための参照フレームである。従って、第4の状況において、(a)(ピクチャk内の)PU502及び504は、異なるリスト(LIST0及びLIST1)の異なる参照フレーム(ピクチャ01及びピクチャ12)を有し、(b)便宜上、PU502と比較して、PU504はここではタイプ−4動きベクトル(T4ベクトル)を有するものとして参照される。
【0064】
図19は、第3の実施形態における、符号化デバイス112の第1の動作のフローチャートである。ステップ1902で、符号化デバイス112は、下側サイドコーナーPUを識別及び走査して、下側サイドコーナーPUがT1ベクトル又はT2ベクトルを有するか、又はいずれも有さないかを判定する。ステップ1904で、(ステップ1902で)符号化デバイス112が、下側サイドコーナーPUがT1ベクトル又はT2ベクトルを有すると判定することに応答して、(a)下側サイドコーナーPUの動きベクトルがサイドMVP候補の動きベクトルとして用いられるように、符号化デバイス112は下側サイドコーナーPUをサイドMVP候補として選択し、(b)第1の動作を終了する。
【0065】
ステップ1906で、(ステップ1902で)符号化デバイス112が、下側サイドコーナーPUがT1ベクトル又はT2ベクトルのいずれも有さないと判定することに応答して、符号化デバイス112は、下側サイドPUを識別及び走査して、下側サイドPUがT1ベクトル又はT2ベクトルを有するか、又はいずれも有さないかを判定する。ステップ1908で、(ステップ1906で)符号化デバイス112が下側サイドPUがT1ベクトル又はT2ベクトルを有すると判定することに応答して、(a)下側サイドPUの動きベクトルがサイドMVP候補の動きベクトルとして用いられるように、符号化デバイス112は下側サイドPUをサイドMVP候補として選択し、(b)第1の動作が終了する。
【0066】
ステップ1910で、(ステップ1906で)符号化デバイス112が、下側サイドPUがT1ベクトル又はT2ベクトルのいずれも有さないと判定することに応答して、符号化デバイス112は、下側サイドコーナーPUを識別及び走査して、下側サイドコーナーPUがT3ベクトル又はT4ベクトルを有するか、又はいずれも有さないかを判定する。ステップ1912で、(ステップ1910で)符号化デバイス112が、下側サイドコーナーPUがT3ベクトル又はT4ベクトルを有すると判定することに応答して、(a)下側サイドコーナーPUの動きベクトルがサイドMVP候補の動きベクトルとして用いられるように、符号化デバイス112は下側サイドコーナーPUをサイドMVP候補として選択し、(b)第1の動作が終了する。
【0067】
ステップ1914で、(ステップ1910で)符号化デバイス112が、下側サイドコーナーPUがT3ベクトル又はT4ベクトルのいずれも有さないと判定することに応答して、符号化デバイス112は下側サイドPUを識別及び走査して、下側サイドPUがT3ベクトル又はT4ベクトルを有するか、又はいずれも有さないかを判定する。ステップ1916で、(ステップ1914で)符号化デバイス112が、下側サイドPUがT3ベクトル又はT4ベクトルを有すると判定することに応答して、(a)下側サイドPUの動きベクトルがサイドMVP候補の動きベクトルとして用いられるように、符号化デバイス112は下側サイドPUをサイドMVP候補として選択し、(b)第1の動作が終了する。
【0068】
ステップ1918で、(ステップ1914で)符号化デバイス112が、下側サイドPUはT3ベクトル又はT4ベクトルのいずれも有さないと判定することに応答して、(a)符号化デバイス112はサイドMVP候補を利用不可能としてマークし、(b)第1の動作を終了する。
【0069】
図20A及び20B(「
図20」と総称する)は、第3の実施形態における、符号化デバイス112の第2の動作のフローチャートである。ステップ2002で、符号化デバイス112は、トップ右コーナーPUを識別及び走査して、トップ右コーナーPUがT1ベクトル又はT2ベクトルを有するか、又はいずれも有さないかを判定する。ステップ2004で、(ステップ2002で)符号化デバイス112が、トップ右コーナーPUがT1ベクトル又はT2ベクトルを有すると判定することに応答して、(a)トップ右コーナーPUの動きベクトルがトップMVP候補の動きベクトルとして用いられるように、符号化デバイス112はトップ右コーナーPUをトップMVP候補として選択し、(b)第2の動作はステップ2006へ継続する。
【0070】
ステップ2008で、(ステップ2002で)符号化デバイス112が、トップ右コーナーPUがT1ベクトル又はT2ベクトルのいずれも有さないと判定することに応答して、符号化デバイス112は、トップ右PUを識別及び走査して、トップ右PUがT1ベクトル又はT2ベクトルを有するか、又はいずれも有さないかを判定する。ステップ2010で、(ステップ2008で)符号化デバイス112が、トップ右PUがT1ベクトル又はT2ベクトルを有すると判定することに応答して、(a)トップ右PUの動きベクトルがトップMVP候補の動きベクトルとして用いられるように、符号化デバイス112はトップ右PUをトップMVP候補として選択し、(b)第2の動作はステップ2006へ継続する。
【0071】
ステップ2012で、(ステップ2008で)符号化デバイス112が、トップ右PUがT1ベクトル又はT2ベクトルのいずれも有さないと判定することに応答して、符号化デバイス112は、トップ左コーナーPUを識別及び走査して、トップ左コーナーPUがT1ベクトル又はT2ベクトルを有するか、又はいずれも有さないかを判定する。ステップ2014で、(ステップ2012で)符号化デバイス112が、トップ左コーナーPUがT1ベクトル又はT2ベクトルを有すると判定することに応答して、(a)トップ左コーナーPUの動きベクトルがトップMVP候補の動きベクトルとして用いられるように、符号化デバイス112はトップ左コーナーPUをトップMVP候補として選択し、(b)第2の動作はステップ2006へ継続する。
【0072】
ステップ2016で、(ステップ2012で)符号化デバイス112が、トップ左コーナーPUがT1ベクトル又はT2ベクトルのいずれも有さないと判定することに応答して、符号化デバイス112は、サイドMVP候補(利用可能であれば)がT1ベクトル又はT2ベクトルを有するか、又はいずれも有さないかを判定する。ステップ2018で、(ステップ2016で)符号化デバイス112が、サイドMVP候補(利用可能であれば)がT1ベクトル又はT2ベクトルのいずれも有さないと判定することに応答して、(a)符号化デバイス112はトップMVP候補を利用不可能としてマークし、(b)第2の動作が終了する。反対に、(ステップ2016で)符号化デバイス112が、サイドMVP候補がT1ベクトル又はT2ベクトルを有する(又はサイドMVP候補が利用不可能である)と判定することに応答して、第2の動作はステップ2016からステップ2020へ継続する。
【0073】
ステップ2006を再び参照すると、(ステップ2006で)符号化デバイス112がサイドMVP候補が利用可能であると判定することに応答して、第2の動作が終了する。反対に、(ステップ2006で)符号化デバイス112が、サイドMVP候補が利用不可能であると判定することに応答し、符号化デバイス112が、(利用不可能なサイドMVP候補の動きベクトルの代わりにトップMVP候補のT1ベクトル又はT2ベクトルを代用するための試みにおいて)、トップ右コーナーPU、トップ右PU、又はトップ左コーナーPUがT3ベクトル又はT4ベクトルを有する否かの判定に進むように、第2の動作はステップ2006からステップ2020へ継続する。
【0074】
ステップ2020で、符号化デバイス112は、トップ右コーナーPUを識別及び走査して、トップ右コーナーPUがT3ベクトル又はT4ベクトルを有するか、又はいずれも有さないかを判定する。ステップ2022で、(ステップ2020で)符号化デバイス112が、トップ右コーナーPUがT3ベクトル又はT4ベクトルを有すると判定することに応答して、(a)サイドMVP候補が利用不可能の場合、符号化デバイス112は利用不可能なサイドMVP候補の動きベクトルの代わりに、トップMVP候補のT1ベクトル又はT2ベクトルを代用し、それによりサイドMVP候補が利用可能になるようにし、(b)トップ右コーナーPUのT3ベクトル又はT4ベクトルがトップMVP候補の動きベクトルとして用いられるように、符号化デバイス112はトップ右コーナーPUをトップMVP候補として選択し、(c)第2の動作が終了する。
【0075】
ステップ2024で、(ステップ2020で)符号化デバイス112が、トップ右コーナーPUがT3ベクトル又はT4ベクトルのいずれも有さないと判定することに応答して、符号化デバイス112は、トップ右PUを識別及び走査して、トップ右PUがT3ベクトル又はT4ベクトルを有するか、又はいずれも有さないかを判定する。ステップ2026で、(ステップ2024で)符号化デバイス112が、トップ右PUがT3ベクトル又はT4ベクトルを有すると判定することに応答して、(a)サイドMVP候補が利用不可能である場合、符号化デバイス112は、利用不可能なサイドMVP候補の動きベクトルの代わりに、トップMVP候補のT1ベクトル又はT2ベクトルを代用し、それによりサイドMVP候補が利用可能になるようにし、(b)トップ右PUのT3ベクトル又はT4ベクトルがトップMVP候補の動きベクトルとして用いられるように、符号化デバイス112はトップ右PUをトップMVP候補として選択し、(c)第2の動作が終了する。
【0076】
ステップ2028で、(ステップ2024で)符号化デバイス112が、トップ右PUがT3ベクトル又はT4ベクトルのいずれも有さないと判定することに応答して、符号化デバイス112は、トップ左コーナーPUを識別及び走査して、トップ左コーナーPUがT3ベクトル又はT4ベクトルを有するか、又はいずれも有さないかを判定する。ステップ2030で、(ステップ2028で)符号化デバイス112が、トップ左コーナーPUがT3ベクトル又はT4ベクトルを有すると判定することに応答して、(a)サイドMVP候補が利用不可能である場合、符号化デバイス112は、利用不可能サイドMVP候補の動きベクトルの代わりに、トップMVP候補のT1ベクトル又はT2ベクトルを代用し、それによりサイドMVP候補が利用可能になるようにし、(b)トップ左コーナーPUのT3ベクトル又はT4ベクトルがトップMVP候補の動きベクトルとして用いられるように、符号化デバイス112はトップ左コーナーPUをトップMVP候補として選択し、(c)第2の動作が終了する。
【0077】
ステップ2032で、(ステップ2028で)符号化デバイス112が、トップ左コーナーPUがT3ベクトル又はT4ベクトルのいずれも有さないと判定することに応答して、符号化デバイス112は、トップMVP候補が、T1ベクトル又はT2ベクトルを有するか、又はいずれも有さないかを判定する。そのようにして、符号化デバイス112は、利用不可能なサイドMVP候補の動きベクトルの代わりにトップMVP候補のT1ベクトル又はT2ベクトルを代用する試みにおいて、それが、ステップ2020、2024、及び2028を実行したか否かを判定する。ステップ2034で、(ステップ2032で)符号化デバイス112が、トップMVP候補がT1ベクトル又はT2ベクトルのいずれも有さないと判定することに応答して、(a)符号化デバイス112はトップMVP候補を利用不可能としてマークし、(b)第2の動作が終了する。反対に、(ステップ2032で)符号化デバイス112が、トップMVP候補がT1ベクトル又はT2ベクトルを有すると判定することに応答して、(a)符号化デバイス112は、利用不可能なサイドMVP候補の動きベクトルの代わりにトップMVP候補のT1ベクトル又はT2ベクトルを代用する試みにおいて、それが、ステップ2020、2024、及び2028を実行したと判定し、(b)第2の動作が終了する。
【0078】
図21は、空間的MVPスケーリングを実行するためのシステム100のハードウェア(例えば、回路要素)のブロック図である。サイドMVP候補が利用可能であり、しかも、T1ベクトル又はT2ベクトルのいずれも有さない場合、サイドMVP候補の動きベクトルは、T3ベクトル又はT4ベクトルのいずれかである。同様に、トップMVP候補が利用可能であり、しかも、T1ベクトル又はT2ベクトルのいずれも有さない場合、トップMVP候補の動きベクトルは、T3ベクトル又はT4ベクトルのいずれかである。ステップ2018(
図20)に照らし、(a)サイドMVP候補の動きベクトルがT3ベクトル又はT4ベクトルである場合、システム100は、トップMVP候補の動きベクトルがT3ベクトル又はT4ベクトルのいずれでもないことを確実にし、(b)トップMVP候補の動きベクトルがT3ベクトル又はT4ベクトルである場合、システム100は、サイドMVP候補の動きベクトルがT3ベクトル又はT4ベクトルのいずれでもないことを確実にする。
【0079】
従って、(
図19及び
図20の動作に従った下記のPUの1つを選択する)制御ライン2102の論理状態に応答して、マルチプレクサ2104が下記のPUの1つを空間的MVPスケーリングユニット2106に出力する。すなわち、(a)それがサイドMVP候補であり、且つ、その動きベクトルがT3ベクトル又はT4ベクトルである場合、下側サイドコーナーPU、(b)それがサイドMVP候補であり、且つ、その動きベクトルがT3ベクトル又はT4ベクトルである場合、下側サイドPU、(c)それがトップMVP候補であり、且つ、その動きベクトルがT3ベクトル又はT4ベクトルである場合、トップ右コーナーPU、(d)それがトップMVP候補であり、且つ、その動きベクトルがT3ベクトル又はT4ベクトルである場合、トップ右PU、及び(e)それがトップMVP候補であり、且つ、その動きベクトルがT3ベクトル又はT4ベクトルである場合、トップ左コーナーPU。空間的MVPスケーリングユニット2106は、(マルチプレクサ2104から出力される)そのようなPUを受け取り、現PUの動きベクトルに対して、そのような動きベクトルを適切に正規化するために、そのようなPUの動きベクトルの動きベクトルスケーリング(又は「空間的MVPスケーリング」)を実行する。そのようにして、
図21のハードウェアは、(a)そのようなPUとそのそれぞれの参照フレームとの間の一時的距離、及び(b)現PUとそのそれぞれの参照フレームとの一時的距離、の差を計算する。比較すると、PUがT1ベクトル又はT2ベクトルを有する場合、そのような差が存在しないため、
図21のハードウェアはそのようなPUの動きベクトルの空間的MVPスケーリングを実行しない。有利なことに、空間的MVPスケーリングユニット2106は、現PUの動きベクトルに関して、それらの5個のPUの1つ(もしあれば)のみからの、T3ベクトル又はT4ベクトルを適切に正規化するので、1つの空間的MVPスケーリングユニット2106が5個のPU(即ち、下側サイドコーナーPU、下側サイドPU、トップ右コーナーPU、トップ右PU、及びトップ左コーナーPU)によって共有される。
【0080】
従って、第3の実施形態において、(a)符号化デバイス112は、符号化動作において空間的MVPスケーリングを実行するための、
図21のこのようなハードウェアを含み、(b)同様に、復号デバイス116は、復号動作において空間的MVPスケーリングを実行するための、
図21のこのようなハードウェアを含む。一つの代替実施形態において、(a)符号化デバイス112は、空間的MVPスケーリングを実行するための符号化デバイス112内の専用の特殊用途ハードウェアではなく、コンピュータ可読媒体120に記憶されたコンピュータ可読プログラムの命令に応答して、(
図21の技術に従って)空間的MVPスケーリングを実行する汎用計算リソース(例えば、汎用コンピュータ)であり、(b)同様に、復号デバイス116は、空間的MVPスケーリングを実行するための復号デバイス116内の専用の特殊用途ハードウェアではなく、コンピュータ可読媒体122に記憶されたコンピュータ可読プログラムの命令に応答して、(
図21の技術に従って)空間的MVPスケーリングを実行する汎用計算リソースである。
【0081】
このように、符号化デバイス112が空間的MVPスケーリングのインスタンスを削減するので、符号化デバイス112は符号化効率を低下させることなく、第3の実施形態におけるその処理負荷及びハードウェア領域を低減する。例えば、符号化デバイス112は、(a)
図19に関連して説明したように、下側サイドコーナーPU及び下側サイドPUを走査して、どちらがT3ベクトル又はT4ベクトルを有するのかを判定する前に、どちらがT1ベクトル又はT2ベクトルを有するのかを判定し、(b)
図20に関連して説明したように、トップ右コーナーPU、トップ右PU、及びトップ左コーナーPUを走査して、それらのうちどれがT3ベクトル又はT4ベクトルを有するのかを判定する前に、どれがT1ベクトル又はT2ベクトルを有するのかを判定し、且つ(c)
図20に関連して説明したように、トップ右コーナーPU、トップ右PU、及びトップ左コーナーPUを走査して、サイドMVP候補がT3ベクトル又はT4ベクトルを有しているのでない限り(例えば、MVP候補がT1ベクトル又はT2ベクトルを有している場合、又はサイドMVP候補が利用不可能である場合、のみ)、それらのうちどれがT3ベクトル又はT4ベクトルを有するのかを判定する、ことによって、空間的MVPスケーリングのインスタンスを削減する。
【0082】
符号化デバイス112は、
図19、
図20、及び
図21の動作を実行した後、(利用可能MVP候補のそれぞれの動きベクトルが、
図21の空間的MVPスケーリングユニット2106によって適切に正規化されることに応答して)
図9の動作、及びその符号化動作の残りを実行する。
【0083】
第3の実施形態において、復号デバイス116は、(a)サイドMVP候補(利用可能であれば)及びトップMVP候補(利用可能であれば)を識別するために、
図19及び
図20の動作を実行し、(b)一時的MVP候補 (利用可能であれば)を識別し、(c)そのような識別に応答し、復号されたMVPインデックスが、サイドMVP候補、トップMVP候補、又は一時的MVP候補のいずれを参照しているか否かを上記MVPインデックス表に従って判定する。
【0084】
従って、第1、第2、及び第3の実施形態において、復号デバイス116は、現PUの動きベクトルを、(a)符号化されたビットストリームから、そのような差及びMVPインデックスを復号し、(b)前述のように、サイドMVP候補(利用可能であれば)、トップMVP候補(利用可能であれば)、及び一時的MVP候補(利用可能であれば)を識別し、(c)そのような識別に応答して、上記MVPインデックス表に従って、復号されたMVPインデックスが、サイドMVP候補、トップMVP候補、又は一時的MVP候補を参照しているか否かを判定し、(d)そのような判定、及び復号されたMVPインデックスに応答して、選択された動きベクトルを識別し、(e)現PUの動きベクトルを計算するために、そのような復号された差を、選択された動きベクトルに追加すること、によって復号する。復号デバイス116は、(ピクチャk内の)種々のPUのそれぞれの動きベクトルをそのように復号し、それらPUの各々は、ラスタ走査順(例えば、
図3のラスタ走査矢印302及び304でそれぞれ示されるように、左から右、上から下)に、現PUとして連続してそのように復号される。
【0085】
例示の実施形態において、コンピュータプログラム製品は、(a)コンピュータ可読媒体、及び(b)そのような媒体に記憶されたコンピュータ可読プログラム、を有する製品である。そのようなプログラムは、装置に前述の(例えば、ブロック図に関連して説明した)種々の動作を実行させるために、命令実行装置(例えば、システム又はデバイス)によって処理され得る。例えば、そのようなプログラムの命令を処理すること(例えば、実行すること)に応答して、装置(例えば、プログラマブルコンピュータ)は上述の種々の動作を実行する。従って、そのような動作がコンピュータ実装される。
【0086】
そのようなプログラム(例えば、ソフトウェア、ファームウェア、及び/又はマイクロコード)は、1つ又は複数のプログラミング言語、例えば、オブジェクト指向のプログラミング言語(例えば、Java、Smalltalk、及びC++)、従来のプロシージャのプログラミング言語(例えば、C)、及び/又は、それらの任意の適切な組み合わせ、で書かれる。第1の状況において、コンピュータ可読媒体はコンピュータ可読記憶媒体である。第2の例において、コンピュータ可読媒体はコンピュータ可読信号媒体である。
【0087】
コンピュータ可読記憶媒体が、プログラムを記憶するために適切な任意のシステム、デバイス、及び/又は他の非過渡的な有形の装置(例えば、電子的、磁気的、光学的、電磁的、赤外線、半導体、及び/又は、これらの任意の適切な組み合わせ)を含み、そのようなプログラムが、装置に前述した種々の動作を実行させるため或る実行装置によって処理可能であるようになっている。コンピュータ可読記憶媒体の例としては、1つ又は複数のワイヤを有する電気的接続、ポータブルコンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能なプログラマブルリードオンリーメモリ(「EPROM」又はフラッシュメモリ)、光ファイバー、ポータブルコンパクトディスクリードオンリーメモリ(CD−ROM)、光学記憶デバイス、磁気記憶デバイス、及び/又は、それらの任意の適切な組み合わせ、が含まれるがそれらに限定されることはない。
【0088】
コンピュータ可読信号媒体が、プログラムを通信(例えば、伝搬、又は伝達)するために適した(コンピュータ可読記憶媒体以外の)任意のコンピュータ可読媒体を含み、そのようなプログラムが、装置に前述した種々の動作を実行させるため或る実行装置によって処理可能であるようになっている。一例において、コンピュータ可読信号媒体が、その中に(例えば、ベースバンドに、又は搬送波の一部として)組み込まれたコンピュータ可読プログラムコードを有するデータ信号を含む。データ信号は、有線、無線、光ファイバケーブル、及び/又は、それらの任意の組み合わせを介して(例えば、電子的に、電磁的に、及び/又は光学的に)通信される。
【0089】
例示の実施形態を例として図示し説明してきたが、上述の開示の範囲内で他の様々な代替実施形態が可能である。