[0001]本出願は、その各々の内容全体が参照により本明細書に組み込まれる、2013年6月21日に出願された米国仮出願第61/838,208号、および2013年7月14日に出願された米国仮出願第61/846,036号の利益を主張する。
[0002]本開示は、ビデオコーディングに関する。
[0003]デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップコンピュータまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、携帯電話または衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、MPEG−2、MPEG−4、ITU−T H.263、ITU−T H.264/MPEG−4、Part10、アドバンストビデオコーディング(AVC:Advanced Video Coding)、現在開発中の高効率ビデオコーディング(HEVC:High Efficiency Video Coding)規格によって定義された規格、およびそのような規格の拡張に記載されているビデオコーディング技法など、ビデオコーディング技法を実装する。ビデオデバイスは、そのようなビデオコーディング技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および/または記憶し得る。
[0004]ビデオコーディング技法は、ビデオシーケンスに固有の冗長性を低減または除去するための空間的(イントラピクチャ(intra-picture))予測および/または時間的(インターピクチャ(inter-picture))予測を含む。ブロックベースのビデオコーディングでは、ビデオスライス(たとえば、ビデオフレームまたはビデオフレームの一部分)は、ツリーブロック(treeblocks)、コーディングユニット(CU)、および/またはコーディングノードと呼ばれることもある、ビデオブロックに区分され(partitioned)得る。ピクチャのイントラコード化(intra-coded)(I)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコード化(inter-coded)(PまたはB)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間的予測、または他の参照ピクチャ中の参照サンプルに対する時間的予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
[0005]空間的予測または時間的予測によって、コーディングされるべきブロックの予測ブロック(a predictive block)が生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分(pixel differences)を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトル、および、コード化ブロックと予測ブロックとの間の差分を示す残差データに従って符号化される。イントラコード化ブロックは、イントラコーディングモードおよび残差データに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて、残差変換係数が得られ得、その残差変換係数は、次いで量子化され得る。最初に2次元アレイで構成される量子化変換係数(quantized transform coefficients)は、変換係数の1次元ベクトルを生成するために走査され得、なお一層の圧縮を達成するためにエントロピーコーディングが適用され得る。
[0006]概して、本開示は、他の高度残差予測(ARP:advanced residual prediction)技法と比較して改善された精度を与え得るテクスチャコーディング(texture coding)のための正確なARP技法について説明する。より具体的には、本開示は、現在のビューから参照ビュー(a reference view)までのDMVを識別することと、DMVの識別に基づいて現在のビデオブロックのARPのための残差予測子ブロック(a residual predictor block)を決定することとを含むARP技法について説明する。
[0007]いくつかの例では、DMVは、現在のビデオブロックのDMVであり、本技法は、現在のビデオブロックのビュー間ARP(inter-view ARP)のためのビュー間残差予測子ブロック(an inter-view residual predictor bloc)を決定することを含む。DMVは、ビュー間参照ビデオブロック(an inter-view reference video block)に基づく現在のビデオブロックのビュー間予測(inter-view prediction)のために使用される。ビュー間ARPのための技法はまた、ビュー間参照ビデオブロックの時間動きベクトル(TMV:temporal motion vector)に基づいて現在のビューと参照ビューとの中の時間参照ビデオブロック(temporal reference video blocks)を識別することと、時間参照ビデオブロック間の差に基づいて残差予測子ブロックを決定することとを含み得る。そのような例では、ARPは、時間的に予測されたビデオブロックをコーディングするための時間的ARPに限定されず、代わりに、ビュー間予測ビデオブロックをコーディングするためのビュー間ARPを含み得る。
[0008]いくつかの例では、現在のビデオブロックは時間的に予測され、現在のビデオブロックのための参照ビデオブロックのDMVは、現在のビデオブロックの時間的ARPのために、たとえば、隣接ブロックベースの視差ベクトル導出(NBDV:Neighboring Block Based Disparity Vector Derivation)に従って現在のビデオブロックのために導出された視差ベクトル(a disparity vector)を置き換える。そのような例では、レートひずみ最適化(rate distortion optimization)によって典型的には選定されるDMVは、導出された視差ベクトルよりも正確になり得、これは、現在のビデオブロックのより正確な時間的ARPにつながり得る。いくつかの例では、現在のビデオブロックは時間的に予測され、現在のビデオブロックのための時間参照ビデオブロックのコロケートされた深度ブロック(co-located depth block)を通して導出された視差ベクトルは、現在のビデオブロックの時間的ARPのために、たとえば、隣接ブロックベースの視差ベクトル導出(NBDV)に従って現在のビデオブロックのために導出された視差ベクトルを置き換える。そのような例は、コロケートされた深度ブロックがテクスチャコーディング中に利用可能であるときにより正確な時間的ARPを与え得る。
[0009]一例では、ビデオデータを復号するためのビュー間高度残差予測(inter-view advanced residual prediction)の方法は、現在のビデオブロックのための視差動きベクトル(DMV:disparity motion vector)と残差ブロックとを識別するためにビデオデータを符号化する符号化ビデオビットストリーム(an encoded video bitstream)を復号することを備える。現在のビデオブロックは、現在のビュー中にあり、DMVは、参照ビュー中の、および、現在のビデオブロックと同じアクセスユニット中のビュー間参照ビデオブロックに基づく現在のビデオブロックのビュー間予測のために使用される。本方法は、ビュー間参照ビデオブロックの時間動きベクトル(TMV)と、関連する参照ピクチャとを識別することと、ビュー間参照ビデオブロックのTMVに基づいて参照ビュー中の関連する参照ピクチャ中の時間参照ビデオブロックを識別することと、参照ビュー中のビュー間参照ビデオブロックのTMVに基づいて現在のビュー中の時間参照ビデオブロックを識別することとをさらに備える。現在のビュー中の時間参照ビデオブロックと参照ビュー中の時間参照ビデオブロックとは同じアクセスユニット中にある。本方法は、現在のビュー中の時間参照ビデオブロックと参照ビュー中の時間参照ビデオブロックとの間の差に基づいて現在のビデオブロックのための残差予測子ブロックを決定することをさらに備える。本方法は、現在のビデオブロックを再構成するためにビュー間参照ビデオブロックに、残差予測子ブロックと、符号化ビデオビットストリームから識別された残差ブロックとを適用することをさらに備える。
[0010]別の例では、ビデオデータを符号化するためのビュー間高度残差予測の方法は、現在のビデオブロックのための視差動きベクトル(DMV)を識別すること、ここにおいて、現在のビデオブロックは、現在のビュー中にあり、ここにおいて、DMVは、参照ビューと、現在のビデオブロックと同じアクセスユニットとの中のビュー間参照ビデオブロックに基づく現在のビデオブロックのビュー間予測のために使用される、を備える。本方法は、ビュー間参照ビデオブロックの時間動きベクトル(TMV)と、関連する参照ピクチャとを識別することと、ビュー間参照ビデオブロックのTMVに基づいて参照ビュー中の関連する参照ピクチャ中の時間参照ビデオブロックを識別することと、参照ビュー中のビュー間参照ビデオブロックのTMVに基づいて現在のビュー中の時間参照ビデオブロックを識別することとをさらに備える。現在のビュー中の時間参照ビデオブロックと参照ビュー中の時間参照ビデオブロックとは同じアクセスユニット中にある。本方法は、現在のビュー中の時間参照ビデオブロックと参照ビュー中の時間参照ビデオブロックとの間の差に基づいて現在のビデオブロックのための残差予測子ブロックを決定することをさらに備える。本方法は、現在のビデオブロックのためのDMVと残差ブロックとを識別するためにビデオデータを符号化する符号化ビデオビットストリームを符号化することをさらに備える。符号化ビデオビットストリームによって識別された残差ブロックは、現在のビデオブロックのためのビュー間参照ビデオブロックと残差予測子ブロックとの間の差を備える。
[0011]別の例では、本装置は、ビデオデータをコーディングするためのビュー間高度残差予測を実行するように構成されたビデオコーダを備える。ビデオコーダは、ビデオデータを符号化する符号化ビデオビットストリームを記憶するように構成されたメモリと1つまたは複数のプロセッサとを備える。1つまたは複数のプロセッサは、現在のビデオブロックのための視差動きベクトル(DMV)を識別すること、ここにおいて、現在のビデオブロックは現在のビュー中にあり、ここにおいて、DMVは、参照ビュー中の、および、現在のビデオブロックと同じアクセスユニット中のビュー間参照ビデオブロックに基づく現在のビデオブロックのビュー間予測のために使用される、を行うように構成される。1つまたは複数のプロセッサは、ビュー間参照ビデオブロックの時間動きベクトル(TMV)と、関連する参照ピクチャとを識別することと、ビュー間参照ビデオブロックのTMVに基づいて参照ビュー中の関連する参照ピクチャ中の時間参照ビデオブロックを識別することと、参照ビュー中のビュー間参照ビデオブロックのTMVに基づいて現在のビュー中の時間参照ビデオブロックを識別することとを行うようにさらに構成される。現在のビュー中の時間参照ビデオブロックと参照ビュー中の時間参照ビデオブロックとは同じアクセスユニット中にある。1つまたは複数のプロセッサは、現在のビュー中の時間参照ビデオブロックと参照ビュー中の時間参照ビデオブロックとの間の差に基づいて現在のビデオブロックのための残差予測子ブロックを決定することを行うようにさらに構成される。1つまたは複数のプロセッサは、現在のビデオブロックのためのDMVと残差ブロックとを識別するために符号化ビデオビットストリームをコーディングすることを行うようにさらに構成される。符号化ビデオビットストリームをコーディングすることによって識別された残差ブロックは、現在のビデオブロックのためのビュー間参照ビデオブロックと残差予測子ブロックとの間の差を備える。
[0012]別の例では、コンピュータ可読記憶媒体は、実行されたとき、ビデオコーダの1つまたは複数のプロセッサに、現在のビデオブロックのための視差動きベクトル(DMV)を識別すること、ここにおいて、現在のビデオブロックは現在のビュー中にあり、ここにおいて、DMVは、参照ビュー中の、および、現在のビデオブロックと同じアクセスユニット中のビュー間参照ビデオブロックに基づく現在のビデオブロックのビュー間予測のために使用される、を行わせる命令を記憶する。命令は、1つまたは複数のプロセッサに、ビュー間参照ビデオブロックの時間動きベクトル(TMV)と、関連する参照ピクチャとを識別することと、ビュー間参照ビデオブロックのTMVに基づいて参照ビュー中の関連する参照ピクチャ中の時間参照ビデオブロックを識別することと、参照ビュー中のビュー間参照ビデオブロックのTMVに基づいて現在のビュー中の時間参照ビデオブロックを識別することとをさらに行わせる。現在のビュー中の時間参照ビデオブロックと参照ビュー中の時間参照ビデオブロックとは同じアクセスユニット中にある。命令は、1つまたは複数のプロセッサに、現在のビュー中の時間参照ビデオブロックと参照ビュー中の時間参照ビデオブロックとの間の差に基づいて現在のビデオブロックのための残差予測子ブロックを決定することをさらに行わせる。命令は、1つまたは複数のプロセッサに、現在のビデオブロックのためのDMVと残差ブロックとを識別するために符号化ビデオビットストリームをコーディングすることをさらに行わせる。符号化ビデオビットストリームをコーディングすることによって識別された残差ブロックは、現在のビデオブロックのためのビュー間参照ビデオブロックと残差予測子ブロックとの間の差を備える。
[0013]他の例では、ビデオデータを符号化するためのビュー間高度残差予測の方法は、現在のビデオブロックのための視差動きベクトル(DMV)を識別すること、ここにおいて、現在のビデオブロックは、現在のビュー中にあり、ここにおいて、DMVは、参照ビューと、現在のビデオブロックと同じアクセスユニットとの中のビュー間参照ビデオブロックに基づく現在のビデオブロックのビュー間予測のために使用される、を備える。本方法は、時間動きベクトル(TMV)と、関連する参照ピクチャとを識別することをさらに備える。いくつかの例では、DMVは、現在のビデオブロックの第1の参照ピクチャリストからのものであり得、TMVと、関連する参照ピクチャとは、現在のビデオブロックの第2の参照ピクチャリストからのものであり得る。他の例では、TMVと、関連する参照ピクチャとは、現在のビデオブロックの空間的または時間的隣接ブロックから導出される。いずれの場合も、本方法は、TMVに基づいて参照ビュー中の時間参照ビデオブロックを識別することと、TMVに基づいて現在のビュー中の時間参照ビデオブロックを識別することとをさらに備え得る。本方法は、現在のビュー中の時間参照ビデオブロックと参照ビュー中の時間参照ビデオブロックとの間の差に基づいて現在のビデオブロックのための残差予測子ブロックを決定することをさらに備える。本方法は、現在のビデオブロックのためのDMVと残差ブロックとを識別するためにビデオデータを符号化する符号化ビデオビットストリームを符号化することをさらに備える。符号化ビデオビットストリームによって識別された残差ブロックは、現在のビデオブロックのためのビュー間参照ビデオブロックと残差予測子ブロックとの間の差を備える。
[0014]別の例では、ビデオデータをコーディングするための時間的高度残差予測の方法は、現在のビデオブロックのための時間動きベクトル(TMV)を識別すること、ここにおいて、現在のビデオブロックは、現在のビュー中にあり、ここにおいて、TMVは、現在のビュー中の、および、現在のビデオブロックとは異なるアクセスユニット中の時間参照ビデオブロックに基づく現在のビデオブロックの予測のために使用される、を備える。本方法は、時間参照ビデオブロックのビュー間予測のために使用される時間参照ビデオブロックの視差動きベクトル(DMV)を識別することをさらに備える。本方法は、DMVに基づいて、参照ビュー中の、および、現在のビデオブロックと同じアクセスユニット中のビュー間参照ビデオブロック、または、参照ビュー中の、および、異なるアクセスユニット中の時間参照ビデオブロック、とのうちの少なくとも1つを決定することをさらに備える。本方法は、参照ビュー中の、および、現在のビデオブロックと同じアクセスユニット中のビュー間参照ビデオブロックと、参照ビュー中の、および、異なるアクセスユニット中の時間参照ビデオブロックと、の間の差に基づいて現在のビデオブロックのための残差予測子ブロックを決定することをさらに備える。本方法は、現在のビデオブロックのためのTMVと残差ブロックとを識別するためにビデオデータを符号化する符号化ビデオビットストリームをコーディングすることをさらに備える。符号化ビデオビットストリームによって識別された残差ブロックは、現在のビデオブロックのための時間参照ビデオブロックと残差予測子ブロックとの間の差を備える。本方法のいくつかの例は、現在のビデオブロックの高度残差予測のためにターゲットアクセスユニット中のターゲット参照ピクチャに、現在のビデオブロックのTMVをスケーリングすること、ここにおいて、スケーリングされたTMVは、現在のビュー中の時間参照ビデオブロックを識別する、をさらに備える。本方法のいくつかの例では、スケーリングされたTMVによって識別された現在のビュー中の時間参照ビデオブロックは、第1の時間参照ビデオブロックを備え、本方法は、スケーリングされたTMVによって識別された現在のビュー中の第1の時間参照ビデオブロックがDMVに関連付けられないと決定することと、スケーリングなしのTMV(TMV absent scaling)に基づいて現在のビュー中の第2の時間参照ビデオブロックを識別することとをさらに備える。そのような例では、DMVを識別することは、スケーリングなしのTMVによって識別された現在のビュー中の第2の時間参照ビデオブロックのDMVを識別することを備える。本方法のいくつかの例では、現在のビュー中の、および、現在のビデオブロックとは異なるアクセスユニット中の時間参照ビデオブロックは、複数の予測ユニットを備え、時間参照ビデオブロックのDMVを識別することは、時間参照ビデオブロックの中心位置を含んでいる複数のPUのうちの1つに関連するDMVを識別することを備える。本方法のいくつかの例では、DMVを識別することは、後方ビデオ合成予測(BVSP:Backward Video Synthesis Prediction)以外の予測モードからDMVを識別することを備える。本方法のいくつかの例では、ビュー間参照ビデオブロックは、第1の参照ピクチャリストに対応する動き情報の第1のセットと第2の参照ピクチャリストに対応する動き情報の第2のセットとを含んでおり、ビュー間参照ビデオブロックのTMVを識別することは、動き情報の第1のセットがTMVを含む場合、動き情報の第1のセットからTMVを選択することと、動き情報の第1のセットがTMVを含まない場合、動き情報の第2のセットからTMVを選択することとを備える。本方法のいくつかの例では、第1の参照ピクチャリストは、RefPicList0を備える。本方法のいくつかの例では、動き情報の第1のセットと第2のセットとを考慮する順序は、動き情報の第1のセットと第2のセットとのうちのどちらがTMVを含むかとは無関係である(is independent of)。本方法のいくつかの例では、符号化ビデオビットストリームをコーディングすることは、現在のビデオブロックのためのTMVと残差ブロックとを識別するためにビデオデコーダを用いて符号化ビデオビットストリームを復号することと、現在のビデオブロックを再構成するために時間参照ビデオブロックに、残差予測子ブロックと、符号化ビデオビットストリームから識別された残差ブロックとを適用することとを備える。本方法のいくつかの例では、符号化ビデオビットストリームをコーディングすることは、ビデオデコーダに現在のビデオブロックのためのTMVと残差ブロックとを示すためにビデオエンコーダを用いて符号化ビデオビットストリームを符号化することを備える。
[0015]別の例では、ビデオデータをコーディングするための時間的高度残差予測の方法は、現在のビデオブロックのための時間動きベクトル(TMV)を識別すること、ここにおいて、現在のビデオブロックは、現在のビュー中にあり、ここにおいて、TMVは、現在のビュー中の、および、現在のビデオブロックとは異なるアクセスユニット中の時間参照ビデオブロックに基づく現在のビデオブロックの予測のために使用される、を備える。本方法は、時間参照ビデオブロックのコロケートされた深度ブロックを通して視差ベクトル(DV:disparity vector)を導出することをさらに備える。本方法は、DVに基づいて、参照ビュー中の、および、現在のビデオブロックと同じアクセスユニット中のビュー間参照ビデオブロック、または参照ビュー中の、および、異なるアクセスユニット中の時間参照ビデオブロック、とのうちの少なくとも1つを決定することをさらに備える。本方法は、参照ビュー中の、および、現在のビデオブロックと同じアクセスユニット中のビュー間参照ビデオブロックと、参照ビュー中の、および、異なるアクセスユニット中の時間参照ビデオブロックと、の間の差に基づいて現在のビデオブロックのための残差予測子ブロックを決定することをさらに備える。本方法は、現在のビデオブロックのためのTMVと残差ブロックとを識別するためにビデオデータを符号化する符号化ビデオビットストリームをコーディングすることをさらに備える。符号化ビデオビットストリームによって識別された残差ブロックは、現在のビデオブロックのための時間参照ビデオブロックと残差予測子ブロックとの間の差を備える。本方法のいくつかの例は、現在のビデオブロックの高度残差予測のためにターゲットアクセスユニット中のターゲット参照ピクチャに、現在のビデオブロックのTMVをスケーリングすること、ここにおいて、スケーリングされたTMVは、現在のビュー中の時間参照ビデオブロックを識別する、をさらに備える。本方法のいくつかの例では、スケーリングされたTMVによって識別された現在のビュー中の時間参照ビデオブロックは、第1の時間参照ビデオブロックを備え、本方法は、スケーリングされたTMVによって識別された現在のビュー中の第1の時間参照ビデオブロックがDMVに関連付けられないと決定することと、スケーリングなしのTMVに基づいて現在のビュー中の第2の時間参照ビデオブロックを識別することとをさらに備える。そのような例では、DMVを識別することは、スケーリングなしのTMVによって識別された現在のビュー中の第2の時間参照ビデオブロックのDMVを識別することを備える。本方法のいくつかの例では、DVを導出することは、コロケートされた深度ブロック(co-located depth block)内の1つのサンプルの深度値(a depth value)をDVに変換することを備える。いくつかの例では、1つのサンプルは、コロケートされた深度ブロックの左上のサンプルに対して(W/2,H/2)に位置し、ここにおいて、コロケートされた深度ブロックのサイズはWxHである。本方法のいくつかの例では、DVを導出することは、コロケートされた深度ブロック内の複数のサンプルの深度値に基づいて代表深度値(a representative depth value)を決定することと、代表深度値をDVに変換することとを備える。いくつかの例では、複数のサンプルは、4つのコーナーサンプル(corner samples)である。いくつかの例では、複数のサンプルは、深度ブロックの隣接サンプルに基づいて選択される。いくつかの例では、コロケートされた深度ブロック内の複数のサンプルの深度値に基づいて代表深度値を決定することは、コロケートされた深度ブロック内の複数のサンプルのすべての深度値に基づいて代表深度値を決定することを備える。本方法のいくつかの例では、符号化ビデオビットストリームをコーディングすることは、現在のビデオブロックのためのTMVと残差ブロックとを識別するためにビデオデコーダを用いて符号化ビデオビットストリームを復号することと、現在のビデオブロックを再構成するために時間参照ビデオブロックに、残差予測子ブロックと、符号化ビデオビットストリームから識別された残差ブロックとを適用することとを備える。本方法のいくつかの例では、符号化ビデオビットストリームをコーディングすることは、ビデオデコーダに現在のビデオブロックのためのTMVと残差ブロックとを示すためにビデオエンコーダを用いて符号化ビデオビットストリームを符号化することを備える。
[0016]本開示の1つまたは複数の例の詳細は、添付図面と下の説明とに示される。他の特徴、目的、および利点は、説明、図面、および特許請求の範囲から明らかになろう。
[0017]本開示で説明する技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図。
[0018]例示的なマルチビュー符号化(multiview encoding)または復号の順序(decoding order)を示すグラフ図。
[0019]マルチビューコーディングのための例示的な時間的およびビュー間予測パターンを示す概念図。
[0020]現在のブロックの動き情報の予測のための現在のブロックに隣接するブロックの例示的な関係を示す概念図。
[0021]現在のブロックの動き情報の予測のためのビュー間予測動きベクトル候補(an inter-view disparity motion vector candidate)とビュー間視差動きベクトル候補との導出の例を示す概念図。
[0022]現在のビデオブロックに対する、隣接ブロックベースの視差ベクトル導出(NBDV)を使用して現在のビデオブロックの視差ベクトルが例示的な空間的隣接ブロック(spatial neighboring blocks)から導出され得るその例示的な空間的隣接ブロックを示す概念図。
[0023]参照ビューからの深度ブロックのロケーションと、後方ビュー合成予測(BVSP:Backward View Synthesis Prediction)のための参照ビュー中に位置する深度ブロックの使用との一例を示す概念図。
[0024]時間的に予測されたビデオブロックの時間的高度残差予測(ARP)のための例示的な予測構造を示す概念図。
[0025]時間的ARPのための例示的な双方向予測構造を示す概念図。
[0026]本開示で説明する技法による、ビュー間予測ビデオブロックのビュー間ARPのための例示的な予測構造を示す概念図。
[0027]本開示で説明する技法による、視差動きベクトル(DMV)を使用した時間的に予測されるビデオブロックの時間的ARPのための例示的な予測構造を示す概念図。
[0028]本開示で説明する技法による、ビデオブロック中のまたはそれに隣接する時間動きベクトル(TMV)またはDMVの識別のための例示的な技法を示す概念図。
[0029]図13Aは、本開示の技法による、TMVまたはDMVを識別するための例示的な走査順序を示す概念図。
図13Bは、本開示の技法による、TMVまたはDMVを識別するための例示的な走査順序を示す概念図。
図13Cは、本開示の技法による、TMVまたはDMVを識別するための例示的な走査順序を示す概念図。
図13Dは、本開示の技法による、TMVまたはDMVを識別するための例示的な走査順序を示す概念図。
[0030]本開示で説明する技法を実装し得る例示的なビデオエンコーダを示すブロック図。
[0031]本開示で説明する技法を利用し得る例示的なビデオデコーダを示すブロック図。
[0032]本開示で説明する技法による、ビデオブロックを復号するための例示的なARP方法を示す流れ図。
[0033]本開示で説明する技法による、ビュー間予測ビデオブロックを復号するための例示的なビュー間ARP方法を示す流れ図。
[0034]本開示で説明する技法による、時間的に予測されたビデオブロックを復号するための例示的なARP方法を示す流れ図。
[0035]本開示で説明する技法による、ビデオブロックを符号化するための例示的なARP方法を示す流れ図。
[0036]本開示で説明する技法による、ビュー間予測ビデオブロックを符号化するための例示的なビュー間ARP方法を示す流れ図。
[0037]本開示で説明する技法による、時間的に予測されたビデオブロックを符号化するための例示的なARP方法を示す流れ図。
[0038]本開示で説明する技法による、時間的ARPのためのDMVを識別するための例示的な方法を示す流れ図。
[0039]本開示で説明する技法による、ARPのTMVまたはDMVを識別するための例示的な方法を示す流れ図。
詳細な説明
[0040]概して、本開示は、コード化ビデオデータが2つ以上のビューを含むマルチビュービデオコーディングに関する。いくつかの例では、マルチビュービデオコーディングは、マルチビュープラス深度ビデオコーディングプロセス(a multiview-plus-depth video coding process)を含む。いくつかの例では、マルチビューコーディングは、3次元または3Dビデオのコーディングを含み得、3Dビデオコーディングと呼ばれることがある。いくつかの開示する技法はまた、マルチビューまたは3Dビデオコーディング以外のビデオコーディング、たとえば、スケーラブルビデオコーディングまたは、たとえば、ビデオデータが複数のビューまたはレイヤを含まないビデオコーディング規格の基本仕様によるビデオコーディング、に適用され得る。
[0041]本開示はまた、ビデオブロックの残差信号の予測、たとえば、高度残差予測(ARP)に関する。より具体的には、本開示は、非ベースビュー(a non-base view)中のマルチビュービデオデータのテクスチャ成分(texture components)のより正確なARPのための技法について説明する。より正確なARPのための技法は、現在のビデオブロックの現在のビューから参照ビューまでの視差動きベクトル(DMV)を識別することを含み得る。DMVは、参照ビュー中のビデオデータに基づく、たとえば、現在のビデオブロックまたは参照ビデオブロックの現在のビュー中のビデオデータの、ビュー間予測のために使用される動きベクトルである。本技法は、ARPのための参照ビデオブロックを識別するために識別されたDMVを使用することと、識別された参照ビデオブロックに基づいて現在のビデオブロックのための残差予測子ブロックを決定することとをさらに含み得る。符号化ビデオビットストリーム中で識別された現在のブロックのためのコード化残差ブロックは、現在のビデオブロックのための現在のブロックと参照ビデオブロックとの間の差である通常の残差ブロックと、コード化重み係数インデックスに基づく潜在的なスケーリング(potential scaling)の後の残差予測子ブロックとの間の差であり得る。本開示では、「現在の」という用語は、概して、現在コーディングされているビュー、ピクチャ、またはブロックを識別するために使用される。したがって、現在のブロックは、概して、すでにコーディングされたビデオブロックとは対照的に、または、まだコーディングされていないビデオブロックとは対照的に、コーディングされているビデオデータのブロックを表す。
[0042]いくつかの例では、DMVは、現在のビデオブロックのDMVであり得、その場合、ビデオコーダは、参照ビュー中の参照ブロックを識別するためにDMVを使用し得る。そのような例では、本技法は、識別されたDMVに基づいて現在のビデオブロックのビュー間ARPのためのビュー間残差予測子ブロックを決定することを含み得る。そのような例では、ARPは、時間的に予測されたビデオブロックをコーディングするための時間的ARPに限定されず、代わりに、ビュー間予測ビデオブロックをコーディングするためのビュー間ARPを含み得る。ビュー間ARPにより、ビデオコーダは、現在のビデオブロックの残差を予測するために異なるアクセスユニット中のビュー間残差予測子をより正確に計算することが可能になり得る。
[0043]いくつかの例では、現在のビデオブロックは時間的に予測され得、DMVは、現在のビデオブロックと同じビュー中の時間参照ブロック(a temporal reference block)のDMVであり得る。そのような例では、ビデオコーダは、参照ビュー中の現在のビデオブロックのビュー間参照ブロックまたは現在のビデオブロックの時間的ARPのための参照ビュー中の時間参照ブロックの一方または両方を識別するために、現在のビデオブロックのために導出された視差ベクトル(DV)の代わりにDMVを使用し得る。ビデオコーダは、現在のビデオブロックの残差を予測するために(参照ビュー中で計算される)時間残差予測子をより正確に計算するためにDMVに基づいて識別されたブロックを使用し得る。そのような例では、レートひずみ最適化によって典型的には選定されるDMVは、導出された視差ベクトルよりも正確になり得、これは、現在のビデオブロックのより正確な時間的ARPにつながり得る。
[0044]ビデオコーディング規格は、ITU−T H.261と、ISO/IEC MPEG−1 Visualと、ITU−T H.262またはISO/IEC MPEG−2 Visualと、ITU−T H.263と、ISO/IEC MPEG−4 Visualと、それのスケーラブルビデオコーディング(SVC)およびマルチビュービデオコーディング(MVC)拡張を含む(ISO/IEC MPEG−4 AVCとしても知られる)ITU−T H.264とを含む。MVCの最新のジョイントドラフトは、「Advanced video coding for generic audiovisual services」、ITU−T勧告H.264、2010年3月に記載されている。
[0045]最近、新しいビデオコーディング規格、すなわち高効率ビデオコーディング(HEVC)の設計が、ITU−T Video Coding Experts Group(VCEG)およびISO/IEC Motion Picture Experts Group(MPEG)のJoint Collaboration Team on Video Coding(JCT−VC)によって確定された。以下でHEVC WD10と呼ぶ、最新のHEVCドラフト仕様が、http://phenix.int−evry.fr/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC−L1003−v34.zipから入手可能である。HEVC WD10の全文は、Brossらの、「High Efficiency Video Coding(HEVC) text specification draft 10(for FDIS & Last Call)」、JCTVC−L1003_v34、ITU−T SG16 WP3およびISO/IEC JTC1/SC29/WG11のJoint Collaborative Team on Video Coding(JCT−VC)、第12回会合、ジュネーブ、スイス、2013年1月14〜23日である。HEVC WD10は、その全体が参照により本明細書に組み込まれる。
[0046]また、HEVCのマルチビュー拡張、すなわちMV−HEVCがJCT−3Vによって開発されている。以下でMV−HEVC WD3と呼ぶ、MV−HEVCの最近のワーキングドラフト(WD)は、http://phenix.it−sudparis.eu/jct2/doc_end_user/documents/3_Geneva/wg11/JCT3V−C1004−v4.zipから入手可能である。MV−HEVC WD3の全文は、Techらの、「MV−HEVC Draft Text 3(ISO/IEC 23008−2:201x/PDAM2)」、JCT3V−C1004_d3、ITU−T SG16 WP3およびISO/IEC JTC1/SC29/WG11のJoint Collaborative Team on 3D Video Coding Extension Development、第3回会合、ジュネーブ、スイス、2013年1月17〜23日である。MV−HEVC WD3は、その全体が参照により本明細書に組み込まれる。
[0047]SHVCと称するHEVCのスケーラブル拡張も、JCT−VCによって開発されている。以下でSHVC WD1と呼ぶ、SHVCの最近のワーキングドラフト(WD)が、http://phenix.int−evry.fr/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC−L1008−v1.zipから入手可能である。SHVC WD1の全文は、Chenらの、「SHVC Draft Text 1」、JCTVC−L1008、ITU−T SG16 WP3およびISO/IEC JTC1/SC29/WG11のJoint Collaborative Team on Video Coding(JCT−VC)、第12回会合、ジュネーブ、スイス、2013年1月14〜23日である。SHVC WD1は、その全体が参照により本明細書に組み込まれる。
[0048]現在、VCEGおよびMPEGのJoint Collaboration Team on 3D Video Coding(JCT−3C)は、HEVCに基づく3DV規格を開発中であり、そのための規格化の取組みの一部は、MV−HEVCの規格化を含み、その規格化の取組みの別の一部は、HEVCに基づく3Dビデオコーディング(3DV)(3D−HEVC)の規格化を含む。3D−HEVCでは、コーディングユニット/予測ユニットレベルのコーディングツールを含む新たなコーディングツールが、テクスチャと深度ビューの両方に関して含められ、サポートされ得る。3D−HEVCのための最近の参照ソフトウェアテストモデル(3DHTM−7.0)がリンクhttps://hevc.hhi.fraunhofer.de/svn/svn_3DVCSoftware/tags/HTM−7.0/からダウンロードされ得る。
[0049]最近の参照ソフトウェア記述ならびに3D−HEVCのワーキングドラフトに関する全文は、Techらの、「3D−HEVC Test Model 4」、JCT3V−D1005_spec_v1、ITU−T SG16 WP3およびISO/IEC JTC1/SC29/WG11のJoint Collaborative Team on 3D Video Coding Extension Development、第4回会合、インチョン、韓国、2013年4月20〜26日である。この参照ソフトウェア記述と3D−HEVCのワーキングドラフトとは、リンクhttp://phenix.it−sudparis.eu/jct2/doc_end_user/documents/4_Incheon/wg11/JCT3V−D1005−v1.zipからダウンロードされ得る。3D−HTM−7.0および3D−HEVCテストモデル4は、それらのそれぞれの全体が参照により本明細書に組み込まれる。
[0050]先行する参照文献の各々は、それらのそれぞれの全体が参照により本明細書に組み込まれる。本開示で説明する技法は、たとえば、HEVCのMV−HEVC拡張または3D−HEVC拡張あるいはH.264のMVC拡張に従って動作するビデオコーダによって実装され得る。しかしながら、本開示で説明する技法は、それらの規格に限定されず、本明細書で説明する他のビデオコーディング規格、またはビデオコーディングにおける残差予測を提供する規格を含む、本明細書で言及しない他のビデオコーディング規格に拡張され得る。
[0051]図1は、本開示で説明する1つまたは複数の例による、例示的なビデオ符号化システムとビデオ復号システムとを示すブロック図である。たとえば、システム10はソースデバイス12と宛先デバイス14とを含む。ソースデバイス12および宛先デバイス14は、本開示で説明する技法を実装するように構成される。いくつかの例では、システム10は、たとえば、WD10およびそれの拡張、たとえばMV−HEVC WD3、SHVC WD1、3D−HEVCテストモデル4などに記載されている拡張などに記載されるように、HEVC規格に従って符号化されるビデオデータなど、符号化されるビデオデータの符号化、送信、記憶、復号、および/または提示をサポートするように構成され得る。しかしながら、本開示に記載された技法は、他のビデオコーディング規格または他の拡張に適用可能であり得る。
[0052]図1に示すように、システム10は、宛先デバイス14によって後の時間に復号されるべき符号化ビデオデータを生成するソースデバイス12を含む。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス12および宛先デバイス14はワイヤレス通信のために装備され得る。
[0053]宛先デバイス14は、リンク16を介して、復号されるべき符号化ビデオデータを受信し得る。リンク16は、ソースデバイス12から宛先デバイス14に符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、リンク16は、ソースデバイス12が、符号化ビデオデータをリアルタイムで宛先デバイス14に直接送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信され得る。通信媒体は、無線周波数(RF)スペクトルあるいは1つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワーク、などのパケットベースのネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を促進するために有用であり得る任意の他の機器を含み得る。
[0054]いくつかの例では、符号化データは、出力インターフェース22からストレージデバイス36に出力され得る。同様に、符号化データは、入力インターフェース28によってストレージデバイス34からアクセスされ得る。ストレージデバイス36は、ハードドライブ、Blu−ray(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々な分散したまたはローカルでアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる一例では、ストレージデバイス36は、ソースデバイス12によって生成された符号化されたビデオを保持し得るファイルサーバまたは別の中間ストレージデバイスに対応し得る。宛先デバイス14は、ストリーミングまたはダウンロードを介して、ストレージデバイス36から、記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイス14に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバとしては、(たとえば、ウェブサイト用の)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブがある。宛先デバイス14は、インターネット接続を含む任意の標準的なデータ接続を通じて、符号化ビデオデータにアクセスし得る。これは、ワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、有線の接続(たとえば、DSL、ケーブルモデムなど)、または、ファイルサーバに記憶されている符号化ビデオデータにアクセスするために適当な、それらの両方の組合せを含み得る。ストレージデバイス36からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。
[0055]本開示の技法は、もちろん、ワイヤレスの用途または設定には限定されない。本技法は、オーバージエアテレビジョン放送(over-the-air television broadcasts)、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例などの、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオプレイバック、ビデオブロードキャスティングおよび/またはビデオテレフォニーなどの適用例をサポートするために一方向または双方向のビデオ送信をサポートするように構成され得る。
[0056]図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。場合によっては、出力インターフェース22は変調器/復調器(モデム)および/または送信機を含み得る。ソースデバイス12において、ビデオソース18は、たとえばビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および/またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、またはそのようなソースの組合せを含み得る。一例として、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラフォンまたはビデオフォンを形成し得る。しかしながら、本開示に記載される技法は、概してビデオコーディングに適用可能であり得るし、ワイヤレスおよび/または有線の適用例に適用され得る。
[0057]キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ12によって符号化され得る。符号化ビデオデータは、ソースデバイス12の出力インターフェース22を介して宛先デバイス14に直接送信され得る。符号化されたビデオデータは、さらに(または代替的に)、復号および/または再生のための宛先デバイス14または他のデバイスによる後のアクセスのためにストレージデバイス36上に記憶され得る。
[0058]宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。場合によっては、入力インターフェース28は、受信機および/またはモデムを含み得る。宛先デバイス14の入力インターフェース28は、リンク16を介して符号化ビデオデータを受信する。リンク16を介して通信され、またはストレージデバイス36上に提供された符号化ビデオデータは、ビデオデータを復号する際にビデオデコーダ30などのビデオデコーダが使用するための、ビデオエンコーダ20によって生成された様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信され、記憶媒体上に記憶されるまたはファイルサーバに記憶される符号化ビデオデータとともに含まれ得る。
[0059]ディスプレイデバイス32は、宛先デバイス14と一体化されるかまたはその外部にあり得る。いくつかの例では、宛先デバイス14は、一体型ディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス14はディスプレイデバイスであり得る。一般に、ディスプレイデバイス32は、復号されたビデオデータをユーザに対して表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、種々のディスプレイデバイスのいずれかを備え得る。
[0060]ビデオエンコーダ20およびビデオデコーダ30は、現在開発中のHEVC規格ならびにHEVC規格の拡張、たとえば、MV−HEVC、SHVCおよび3D−HEVCなどのビデオ圧縮規格に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。
[0061]図1には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、それぞれオーディオエンコーダおよびデコーダと統合され得、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、いくつかの例では、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
[0062]ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェアあるいはそれらの任意の組合せなど、様々な好適なエンコーダ回路のいずれかとして実装され得る。本開示の技法がソフトウェアに部分的に実装されるとき、デバイスは、ソフトウェアに対する命令を好適な非一時的コンピュータ可読媒体に記憶し、1つまたは複数のプロセッサを使用して命令をハードウェアで実行して、本開示の技法を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれかが、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合され得る。
[0063]ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、一般に、上述したように、HEVC WD10、MV−HEVC WD3、SHVC WD1、および/または3D−HEVCテストモデル4、あるいは本開示で説明する技法が有用であり得る他の類似の規格または拡張、に適合して動作し得る。HEVC規格は、たとえば、ITU−T H.264/AVCに従う既存のデバイスに対して、ビデオコーディングデバイスのいくつかの付加された機能を規定する。たとえば、H.264は、9つのイントラ予測符号化モードを提供するが、HEVC規格は、33ものイントラ予測符号化モードを提供し得る。
[0064]概して、ビデオフレームまたはピクチャは、ルーマサンプルとクロマサンプルの両方を含む一連のツリーブロックまたは最大コーディングユニット(LCU:largest coding units)に分割され(divided)得る。HEVCコーディングプロセスにおけるツリーブロックは、H.264規格のマクロブロックと同様の目的を有する。スライスは、コーディング順序でいくつかの連続するツリーブロックを含む。ビデオフレームまたはピクチャは、1つまたは複数のスライスに区分され(partitioned)得る。各ツリーブロックは、4分木に従って、コーディングユニット(CU)に分割され(split)得る。たとえば、4分木のルートノードとしてのツリーブロックは、4つの子ノードに分割され得、各子ノードは、次に、親ノードとなり、別の4つの子ノードに分割され得る。4分木のリーフノードとしての、最終的な、分割されていない子ノードは、コーディングノード、すなわち、コード化ビデオブロックを備える。コード化ビットストリームに関連付けられたシンタックスデータは、ツリーブロックが分割され得る最大回数を定義し得、コーディングノードの最小サイズをも定義し得る。
[0065]CUは、コーディングノードと、コーディングノードに関連する予測ユニット(PU:prediction unit)および変換ユニット(TU:transform unit)とを含む。CUのサイズは、コーディングノードのサイズに対応し、形状が正方形でなければならない。CUのサイズは、8×8ピクセルから、最大64×64以上のピクセルを有するツリーブロックのサイズまでに及び得る。各CUは、1つまたは複数のPUと、1つまたは複数のTUとを含み得る。CUに関連するシンタックスデータは、たとえば、CUを1つまたは複数のPUに区分することを記述し得る。区分モードは、CUが、スキップモード符号化もしくはダイレクトモード符号化されるか、イントラ予測モード符号化されるか、またはインター予測モード符号化されるかによって異なり得る。PUは、形状が非正方形になるように区分され得る。CUに関連するシンタックスデータは、たとえば、4分木に従って、CUを1つまたは複数のTUに区分することも記述し得る。TUは、形状が方形または非方形であり得る。
[0066]HEVC規格は、CUごとに異なり得るTUに従う変換を可能にする。TUは、一般に、区分されたLCUについて定義された所与のCU内のPUのサイズに基づいてサイズ決定されるが、常にそうであるとは限らない。TUは、一般に、PUと同じサイズであるか、またはPUよりも小さい。いくつかの例では、CUに対応する残差サンプルは、「残差4分木」(RQT:residual quad tree)として知られる4分木構造を使用して、より小さいユニットに再分割され得る。RQTのリーフノードは変換ユニット(TU:transform units)と呼ばれることがある。TUに関連するピクセル差分値(Pixel difference values)は、変換係数を生成するように変換され得、その変換係数は量子化され得る。
[0067]概して、PUは、予測プロセスに関係するデータを含む。たとえば、PUがイントラモード符号化されるとき、PUは、PUについてのイントラ予測モードを記述するデータを含み得る。別の例として、PUがインターモード符号化されるとき、PUは、PUの動きベクトルを定義するデータを含み得る。PUの動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの分解能(a resolution)(たとえば、1/4ピクセル精度もしくは1/8ピクセル精度)、動きベクトルが指す参照ピクチャ、および/または動きベクトル用の参照ピクチャリスト(たとえば、RefPicList0(L0)もしくはRefPicList1(L1))を記述し得る。
[0068]概して、TUは、変換プロセスと量子化プロセスとのために使用される。1つまたは複数のPUを有する所与のCUは、1つまたは複数の変換ユニット(TU)をも含み得る。予測の後に、ビデオエンコーダ20は、PUに対応する残差値を計算し得る。残差値はピクセル差分値を備え、ピクセル差分値は、エントロピーコーディングのためのシリアル化変換係数(serialized transform coefficient)を生成するために、TUを使用して変換係数に変換され、量子化され、走査され得る。本開示では、一般に、CUのコーディングノードを指すために「ビデオブロック」という用語を使用する。いくつかの特定の場合において、本開示では、コーディングノードならびにPUおよびTUを含む、ツリーブロック、すなわち、LCU、またはCUを指すためにも「ビデオブロック」という用語を使用し得る。
[0069]たとえば、HEVC規格に従うビデオコーディングでは、ビデオフレームがコーディングユニット(CU)と予測ユニット(PU)と変換ユニット(TU)とに区分され得る。CUは、概して、ビデオ圧縮のために様々なコーディングツールが適用される基本ユニットとして働く画像領域を指す。CUは、一般に正方形の形状を有し、たとえば、ITU−T H.264などの他のビデオコーディング規格の下でのいわゆる「マクロブロック」と同様であると見なされ得る。
[0070]より良いコーディング効率を達成するために、CUは、それが含んでいるビデオデータに応じて可変サイズを有し得る。すなわち、CUは、より小さいブロックまたはサブCUに区分または「分割」され得、その各々はCUと呼ばれることもある。さらに、サブCUに分割されない各CUは、それぞれ、CUの予測および変換のために1つまたは複数のPUとTUとにさらに区分され得る。
[0071]PUは、H.264などの他のビデオコーディング規格の下でのいわゆるブロックのパーティションと同様であると見なされ得る。PUは、「残差」係数(residual coefficients)を生成するためにブロックについての予測が実行されるベースである。CUの残差係数は、CUのビデオデータと、CUの1つまたは複数のPUを使用して決定されたCUについての予測データとの間の差を表す。具体的には、1つまたは複数のPUは、CUが予測のためにどのように区分されるかを指定し、CUの各パーティション内に含まれているビデオデータを予測するためにどの予測モードが使用されるかを指定する。
[0072]CUの1つまたは複数のTUは、CUのための残差変換係数のブロックを生成するために、ブロックにどの変換が適用されるかに基づいて、CUの残差係数のブロックのパーティションを指定する。1つまたは複数のTUはまた、適用される変換のタイプに関連し得る。変換は、残差係数をピクセル領域または空間領域から周波数領域などの変換領域に変換する。さらに、1つまたは複数のTUは、量子化残差変換係数のブロックを生成するために残差変換係数の得られたブロックにどの量子化が適用されるかに基づいてパラメータを指定し得る。残差変換係数は、場合によっては、係数を表すために使用されるデータの量を低減するために量子化され得る。
[0073]CUは、一般に、Yとして示される1つのルミナンス成分と、UおよびVとして示される2つのクロミナンス成分とを含む。言い換えれば、サブCUにさらに分割されない所与のCUは、Y成分とU成分とV成分とを含み得、その各々は、前に説明したように、CUの予測および変換のために1つまたは複数のPUとTUとにさらに区分され得る。たとえば、ビデオサンプリングフォーマットに応じて、U成分およびV成分のサイズは、いくつかのサンプルに関して、Y成分のサイズと同じであるかまたはそれとは異なり得る。したがって、予測、変換、および量子化に関して上記で説明した技法は、所与のCUのY成分、U成分およびV成分の各々について実行され得る。
[0074]CUを符号化するために、CUの1つまたは複数のPUに基づいて、CUのための1つまたは複数の予測子が最初に導出される。予測子は、CUについての予測データを含んでいる参照ブロックであり、前に説明したように、CUのための対応するPUに基づいて導出される。たとえば、PUは、予測データが決定される際の対象となるCUのパーティションと、予測データを決定するために使用される予測モードとを示す。予測子は、イントラ(I)予測(すなわち、空間的予測)モードまたはインター(PまたはB)予測(すなわち、時間的予測)モードのいずれかを通して導出され得る。したがって、いくつかのCUは、同じフレーム中の隣接参照ブロックまたはCUに対する空間的予測を使用してイントラコーディング(I)され得るが、他のCUは、他のフレーム中の参照ブロックまたはCUに対してインターコーディング(PまたはB)され得る。
[0075]CUの1つまたは複数のPUに基づいて1つまたは複数の予測子を識別するときに、1つまたは複数のPUに対応するCUの元のビデオデータと、1つまたは複数の予測子中に含まれているCUについての予測データとの間の差が計算される。予測残差(a prediction residual)とも呼ばれるこの差は、残差係数を備え、前に説明したように、1つまたは複数のPUと1つまたは複数の予測子とによって指定されたCUの部分間のピクセル差分を指す。残差係数は、概して、CUの1つまたは複数のPUに対応する2次元(2D)アレイに構成される。
[0076]さらなる圧縮を達成するために、予測残差は、概して、たとえば、離散コサイン変換(DCT:discrete cosine transform)、整数変換、カルーネンレーベ(Karhunen-Loeve)(K−L)変換、または別の変換を使用して変換される。変換は、同じく前に説明したように、空間領域中の予測残差、すなわち、残差係数を、変換領域、たとえば、周波数領域中の残差変換係数に変換する。変換係数はまた、概して、CUの1つまたは複数のTUに対応する2Dアレイに構成される。さらなる圧縮のために、残差変換係数は、同じく前に説明したように、場合によっては、係数を表すために使用されるデータの量を低減するために量子化され得る。
[0077]またさらなる圧縮を達成するために、エントロピーコーダは、コンテキスト適応型バイナリ算術コーディング(CABAC:Context Adaptive Binary Arithmetic Coding)、コンテキスト適応型可変長コーディング(CAVLC:Context Adaptive Variable Length Coding)、確率間隔区分エントロピーコーディング(PIPE:Probability Interval Partitioning Entropy Coding)、または別のエントロピーコーディング方法を使用して、得られた残差変換係数をその後、符号化する。エントロピーコーディングは、他のCUと比較して、係数によって表される、CUのビデオデータに固有の統計的冗長性を低減または除去することによって、このさらなる圧縮を達成し得る。
[0078]ビデオシーケンスは、一般に、一連のビデオフレームまたはピクチャを含む。ピクチャグループ(GOP:a group of pictures)は、概して、ビデオピクチャのうちの一連の1つまたは複数を備える。GOPは、GOP中に含まれるいくつかのピクチャを記述するシンタックスデータを、GOPのヘッダ中、ピクチャのうちの1つまたは複数のヘッダ中、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスのための符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ20は、通常、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックは、CU内のコーディングノードに対応し得る。ビデオブロックは、固定のまたは変化するサイズを有し得、指定されたコーディング規格に従って、サイズは異なり得る。
[0079]一例として、HEVCは、様々なPUサイズでの予測をサポートする。特定のCUのサイズが2N×2Nとすれば、HEVCは、2N×2NまたはN×NのPUサイズでのイントラ予測(intra-prediction)、および2N×2N、2N×N、N×2N、またはN×Nの対称なPUサイズでのインター予測(inter-prediction)をサポートする。HEVCは、また、2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズでのインター予測のための、非対称な区分をサポートする。非対称区分では、CUの一方向は区分されないが、他の方向は25%と75%とに区分される。CUの25%パーティションに対応する部分は、「n」、ならびにそれに続く「Up」、「Down」、「Left」、または「Right」の表示によって示される。したがって、たとえば、「2N×nU」は、上部で2N×0.5NのPU、および下部で2N×1.5NのPUに水平に区分される2N×2NのCUを指す。
[0080]本開示では、「N×N(NxN)」および「N×N(N by N)」は、垂直寸法および水平寸法に関するビデオブロックのピクセル寸法(pixel dimensions)、たとえば、16×16(16x16)ピクセルまたは16×16(16 by 16)ピクセルを指すために互換的に使用され得る。一般に、16×16ブロックは、垂直方向に16ピクセル(y=16)、および水平方向に16ピクセル(x=16)を有する。同様に、N×Nブロックは、一般に、垂直方向にNピクセル、および水平方向にNピクセルを有し、ここでNは、非負の整数値を表す。ブロック中のピクセルは、行および列に配列され得る。さらに、ブロックは、必ずしも、水平方向において垂直方向と同じ数のピクセルを有する必要はない。たとえば、ブロックはN×Mピクセルを備えることもでき、ただし、Mは必ずしもNに等しいとは限らない。
[0081]CUのPUを使用したイントラ予測コーディングまたはインター予測コーディングの後に、ビデオエンコーダ20は、CUのTUのための残差データを計算し得る。PUは、(ピクセル領域とも呼ばれる)空間領域においてピクセルデータを備え得、TUは、変換、たとえば、残差ビデオデータへの離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または概念的に同様の変換の適用後に、変換領域において係数を備え得る。残差データは、符号化されていないピクチャのピクセルと、PUに対応する予測値との間のピクセル差分に対応し得る。ビデオエンコーダ20は、CUに対する残差データを含むTUを形成し、次いで、CUのための変換係数を生成するためにTUを変換し得る。
[0082]変換係数を生成するための任意の変換の後で、ビデオエンコーダ20は、変換係数の量子化を実行し得る。量子化は、概して、係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を行うプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。たとえば、量子化中にnビット値がmビット値に切り捨てられ得、ただし、nはmよりも大きい。
[0083]いくつかの例では、ビデオエンコーダ20は、エントロピー符号化され得るシリアル化ベクトルを生成するために、量子化変換係数を走査するためにあらかじめ定義された走査順序を利用し得る。他の例では、ビデオエンコーダ20は適応型走査を実行し得る。量子化変換係数を走査して1次元ベクトルを形成した後に、ビデオエンコーダ20は、たとえば、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC:syntax-based context-adaptive binary arithmetic coding)、確率間隔区分エントロピー(PIPE)コーディング、または別のエントロピー符号化方法に従って1次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ20はまた、ビデオデータを復号する際にビデオデコーダ30が使用するための符号化ビデオデータに関連するシンタックス要素をエントロピー符号化し得る。
[0084]CABACを実行するために、ビデオエンコーダ20は、送信されるべきシンボルにコンテキストモデル内のコンテキストを割り当て得る。コンテキストは、たとえば、シンボルの隣接値が非0であるか否かに関係し得る。CAVLCを実行するために、ビデオエンコーダ20は、送信されるべきシンボルの可変長コードを選択し得る。VLCの中のコードワードは、比較的短い符号がより起こりそうなシンボル(more probable symbols)に対応し、より長い符号がより起こりそうにないシンボル(less probable symbols)に対応するように、構成され得る。このようにして、VLCを使用すると、たとえば、送信されるべき各シンボルのために等長コードワード(equal-length codewords)を使用するよりも、ビット節約を実現し得る。起こりそうなことの決定(probability determination)は、シンボルに割り当てられたコンテキストに基づき得る。
[0085]ビデオエンコーダ20はさらに、ブロックベースのシンタックスデータ、フレームベースのシンタックスデータ、およびGOPベースのシンタックスデータなどのシンタックスデータを、たとえば、フレームヘッダ、ブロックヘッダ、スライスヘッダ、またはGOPヘッダ中でビデオデコーダ30に送り得る。GOPシンタックスデータは、それぞれのGOP中のいくつかのフレームを記述し得、フレームシンタックスデータは、対応するフレームを符号化するために使用される符号化/予測モードを示し得る。
[0086]加えて、ビデオエンコーダ20は、たとえば、残差データを逆量子化し、逆変換し、残差データを予測データと組み合わせることによって符号化ピクチャを復号または再構成し得る。このようにして、ビデオエンコーダ20は、ビデオデコーダ30によって実行される復号プロセスをシミュレートし得る。したがって、ビデオエンコーダ20とビデオデコーダ30の両方は、インターピクチャ予測に使用するために実質的に同じ復号化または再構成化ピクチャ(decoded or reconstructed pictures)にアクセスできる。
[0087]概して、ビデオデコーダ30は、ビデオエンコーダによって実行される符号化プロセスの逆である復号プロセスを実行し得る。たとえば、ビデオデコーダ30は、量子化されたビデオデータをエントロピー符号化するためにビデオエンコーダによって使用されるエントロピー符号化技法の逆を使用してエントロピー復号を実行し得る。ビデオデコーダ30は、ビデオエンコーダ20によって使用される量子化技法の逆を使用してビデオデータをさらに逆量子化することができ、量子化された変換係数を生成するためにビデオエンコーダ20によって使用された変換の逆を実行し得る。次いで、ビデオデコーダ30は、最終的な表示用のビデオブロックを生成するために、隣接参照ブロック(イントラ予測)または別のピクチャからの参照ブロック(インター予測)に、得られた残差ブロックを適用し得る。ビデオデコーダ30は、ビデオデコーダ30によって受信されたビットストリーム中の符号化ビデオデータとともに、ビデオエンコーダ20によって提供されるシンタックス要素に基づいて、ビデオエンコーダ20によって実行される様々なプロセスの逆を実行するために構成され、命令され、制御され、または導かれ得る。本明細書で使用する「ビデオコーダ」という用語は、ビデオエンコーダ20のようなビデオエンコーダ、または、ビデオデコーダ30のようなビデオデコーダを指し得る。さらに、「ビデオコーディング」または「コーディング」という用語は、たとえば、ビデオエンコーダによって符号化することか、または、たとえば、ビデオデコーダによって復号することのいずれかまたは両方を指し得る。
[0088]いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30(図1)は、マルチビュービデオコーディング、たとえば、2つ以上のビューを含むビデオデータのコーディングのための技法を採用し得る。そのような例では、ビデオエンコーダ20は、2つ以上のビューのための符号化ビデオデータを含むビットストリームを符号化し得、ビデオデコーダ30は、たとえば、ディスプレイデバイス32に2つ以上のビューを与えるために符号化ビデオデータを復号し得る。いくつかの例では、ビデオデコーダ30は、ディスプレイデバイス32が3Dビデオを表示することを可能にするためにビデオデータの複数のビューを与え得る。いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、たとえば、マルチビューコーディンググプロセスまたはマルチビュープラス深度コーディングプロセスが使用されるHEVC規格の3D−HEVC拡張に準拠し得る。マルチビューまたは3Dビデオコーディングは、2つ以上のテクスチャビューをおよび/またはテクスチャ成分と深度成分とを含むビューのコーディングを伴い得る。いくつかの例では、ビデオエンコーダ20によって符号化され、ビデオデコーダ30によって復号されるビデオデータは、すなわち、「アクセスユニット」内の任意の所与の瞬間における2つ以上のピクチャ、または任意の所与の瞬間における2つ以上のピクチャがデータから導出され得るそのデータを含む。
[0089]いくつかの例では、デバイス、たとえば、ビデオソース18は、たとえば、共通シーンをキャプチャするための2つ以上の空間オフセットカメラ(spatially offset cameras)または他のビデオキャプチャデバイスを使用することによって2つ以上のピクチャを生成し得る。3次元効果を生成するために、わずかに異なる水平位置から同時にまたはほぼ同時にキャプチャされた同じシーンの2つのピクチャが使用され得る。いくつかの例では、ビデオソース18(またはソースデバイス12の別の構成要素)は、所与の時間における第1のビューの第1のピクチャから、その所与の時間における第2の(または他の追加の)ビューの第2の(または他の追加の)ピクチャを生成するために深度情報または視差情報を使用し得る。この場合、アクセスユニット内のビューは、第2のビューを生成するために、第1のビューに対応するテクスチャ成分とそのテクスチャ成分とともに使用され得る深度成分とを含み得る。深度または視差情報は、たとえば、ビデオキャプチャデバイスの構成および第1のビューのためのビデオデータのキャプチャに関して知られているカメラパラメータまたは他の情報に基づいて、第1のビューをキャプチャするビデオキャプチャデバイスよって決定され得る。深度または視差情報は、追加または代替として、第1のビュー中のカメラパラメータおよび/またはビデオデータから、たとえば、ソースデバイス12のビデオソース18または別の構成要素によって計算され得る。
[0090]3Dビデオを提示するために、ディスプレイデバイス32は、同時にまたはほぼ同時にキャプチャされた共通シーンの異なるビューに関連する2つのピクチャを同時にまたはほぼ同時に表示し得る。いくつかの例では、宛先デバイス14のユーザは、左レンズと右レンズとを迅速、交互に閉じる(shutter)ためのアクティブ眼鏡(active glasses)を装着し得、ディスプレイデバイス32は、アクティブ眼鏡と同期して左ビューと右ビューとの間で迅速に切り替わり得る。他の例では、ディスプレイデバイス32は2つのビューを同時に表示し得、ユーザは、適切なビューがそれを通ってユーザの眼に届くようにビューをフィルタ処理する、たとえば、偏光レンズをもつパッシブ眼鏡(passive glasses)を着用し得る。他の例では、ディスプレイデバイス32は、ユーザが3D効果を知覚するために眼鏡を必要としない自動立体視ディスプレイ(an autostereoscopic display)を備え得る。
[0091]マルチビュービデオコーディングは、複数のビューがコーディングされる方法を指す。3Dビデオコーディングの場合、複数のビューは、たとえば、左眼ビューと右眼ビューとに対応し得る。複数のビューの各ビューは複数のピクチャを含む。3Dシーンの閲覧者の知覚は、異なるビューのピクチャ内のオブジェクト間の水平視差に起因する。
[0092]現在のピクチャの現在のブロックのための視差ベクトル(DV)は、現在のピクチャとは異なるビュー中である対応するピクチャ中の対応するブロックを指すベクトルである。したがって、DVを使用して、ビデオコーダは、対応するピクチャ中で、現在のピクチャの現在のブロックに対応するブロックの位置を特定することができる。この場合、対応するピクチャは、現在のピクチャと同じ時間インスタンスのものであるが、異なるビュー中にあるピクチャである。対応するピクチャ中の対応するブロックおよび現在のピクチャ中の現在のブロックは、同様のビデオコンテンツを含み得るが、現在のピクチャ中の現在のブロックのロケーションと、対応するピクチャ中の対応するブロックのロケーションとの間に少なくとも水平視差がある。現在のブロックのDVは、対応するピクチャ中のブロックと現在のピクチャ中の現在のブロックとの間のこの水平視差の測度を提供する。
[0093]いくつかの事例では、対応するピクチャ内のブロックのロケーションと現在のピクチャ内の現在のブロックのロケーションとの間に垂直視差もあり得る。現在のブロックのDVはまた、対応するピクチャ中のブロックと現在のピクチャ中の現在のブロックとの間のこの垂直視差の測度を提供し得る。DVは、2つの成分(x成分およびy成分)を含んでいるが、多くの事例では、垂直成分はゼロに等しくなる。現在のビューの現在のピクチャおよび異なるビューの対応するピクチャが表示される時間は、同じであり得、すなわち、現在のピクチャおよび対応するピクチャは、同じ時間インスタンスのピクチャである。
[0094]ビデオコーディングでは、概して、一般にイントラ予測およびインター予測と呼ばれる2つのタイプの予測がある。イントラ予測では、ビデオコーダは、同じピクチャ中のすでにコーディングされているブロックに基づいてピクチャ中のビデオのブロックを予測する。インター予測では、ビデオコーダは、異なるピクチャ(すなわち参照ピクチャ)のすでにコーディングされているブロックに基づいてピクチャ中のビデオのブロックを予測する。本開示で使用する参照ピクチャは、概して、復号順序で後続のピクチャの復号プロセスにおけるインター予測のために使用され得るサンプルを含んでいる任意のピクチャを指す。現在のピクチャに対して、たとえば、3D−HEVCに従って、マルチビューコンテンツをコーディングするとき、参照ピクチャは、異なるビュー中にあるが同じ時間インスタンスのものであり得るか、または異なる時間インスタンスのものであるが同じビュー中にあり得る。たとえば、3D−HEVCでのマルチビューコーディングの場合、インターピクチャ予測は、時間的に異なるピクチャ中の別のビデオブロックからの、すなわち、現在のピクチャとは異なるアクセスユニットからの、現在のビデオブロック、たとえば、CUの現在のコーディングノード、の予測、ならびに、現在のピクチャと同じアクセスユニット中にあるが、現在のピクチャとは異なるビューに関連する、異なるピクチャからの予測を含み得る。
[0095]インター予測の後者の場合、それは、ビュー間コーディングまたはビュー間予測と呼ばれることがある。マルチビューコーディングでは、ビュー間予測は、ビューの間の相関を取り除くために、同じ(すなわち、同じ時間インスタンスをもつ)アクセスユニットの異なるビュー中でキャプチャされたピクチャの間で実行される。非ベースビュー(a non-base view)のピクチャ、たとえば、従属ビュー(a dependent view)をコーディングするとき、同じアクセスユニットだが異なるビューからのピクチャ、たとえば、ベースビューなどの参照ビューからのピクチャが、参照ピクチャリストに追加され得る。ビュー間参照ピクチャ(inter-view reference picture)は、任意のインター予測(たとえば、時間またはビュー間)参照ピクチャの場合のように、参照ピクチャリストの任意の位置に置かれ得る。
[0096]現在のピクチャのブロックを予測するために使用される参照ピクチャのブロックは、動きベクトルによって識別される。マルチビューコーディングでは、少なくとも2つの種類の動きベクトルがある。時間動きベクトル(TMV)は、コーディングされているブロックと同じビューだが、コーディングされているブロックとは異なる時間インスタンスまたはアクセスユニット中にある時間参照ピクチャ中のブロックを指す動きベクトルであり、対応するインター予測は、動き補償予測(MCP:motion-compensated prediction)と呼ばれる。別のタイプの動きベクトルは、現在ピクチャと同じアクセスユニット中のものだが、異なるビューのピクチャ中のブロックを指す視差動きベクトル(DMV)である。DMVでは、対応するインター予測は、視差補償予測(DCP:disparity-compensated prediction)またはビュー間予測と呼ばれる。
[0097]図2は、例示的なマルチビュー符号化または復号順序を示すグラフ図である。図2に示す復号順序構成は時間優先コーディング(time-first coding)と呼ばれることがある。概して、マルチビューまたは3Dビデオシーケンスは、(すなわち、同じ時間インスタンスをもつ)アクセスユニットごとに、それぞれ、2つ以上のビューのビューごとに2つ以上のピクチャを含み得る。図2では、S0〜S7はそれぞれ、マルチビュービデオの異なるビューを指す。T0〜T8は、それぞれ1つの出力時間インスタンスを表す。アクセスユニットは、1つの出力時間インスタンスについてのすべてのビューのコード化ピクチャを含み得る。たとえば、第1のアクセスユニットは、時間インスタンスT0についてのビューS0〜S7(すなわち、ピクチャ0〜7)のすべてを含み、第2のアクセスユニットは、時間インスタンスT1についてのビューS0〜S7(すなわち、ピクチャ8〜15)のすべてを含み、以下同様である。この例では、ピクチャ0〜7は、同じ時間インスタンス(すなわち、時間インスタンスT0)におけるものであり、ピクチャ8〜15は、同じ時間インスタンス(すなわち、時間インスタンスT1)におけるものである。同じ時間インスタンスをもつピクチャは概して同時に表示され、3Dボリュームを包含する画像を閲覧者に知覚させるものは、同じ時間インスタンスのピクチャ内のオブジェクト間の水平視差と、場合によっては何らかの垂直視差である。
[0098]図2では、ビューの各々はピクチャのセットを含む。たとえば、ビューS0はピクチャ0、8、16、24、32、40、48、56、および64のセットを含み、ビューS1はピクチャ1、9、17、25、33、41、49、57、および65のセットを含み、以下同様である。各セットは2つのピクチャを含み、一方のピクチャはテクスチャビュー成分と呼ばれ、他方のピクチャは深度ビュー成分と呼ばれる。ビューのピクチャのセット内のテクスチャビュー成分と深度ビュー成分とは、互いに対応すると見なされ得る。たとえば、ビューのピクチャのセット内のテクスチャビュー成分は、そのビューのピクチャのセット内の深度ビュー成分に対応すると見なされ得、その逆も同様である(すなわち、深度ビュー成分はセット中のそれのテクスチャビュー成分に対応し、その逆も同様である)。本開示で使用するように、テクスチャビュー成分と、対応する深度ビュー成分とは、単一のアクセスユニットの同じビューの一部であると見なされ得る。
[0099]テクスチャビュー成分は、表示される実際の画像コンテンツを含む。たとえば、テクスチャビュー成分は、ルーマ(Y)成分と、クロマ(CbおよびCr)成分とを含み得る。深度ビュー成分は、それの対応するテクスチャビュー成分中のピクセルの相対深度を示し得る。一例として、深度ビュー成分は、ルーマ値のみを含むグレースケール画像(a gray scale image)と同様であり得る。言い換えれば、深度ビュー成分は、任意の画像コンテンツを搬送するのではなく、テクスチャビュー成分中のピクセルの相対深度の測度を与え得る。
[0100]たとえば、深度ビュー成分中の純白のピクセル(a purely white pixel)に対応するピクセル値は、対応するテクスチャビュー成分中のそれの対応する1つまたは複数のピクセルが閲覧者から見てより近いことを示し得、深度ビュー成分中の純黒のピクセル(a purely black pixel)に対応するピクセル値は、対応するテクスチャビュー成分中のそれの対応する1つまたは複数のピクセルが閲覧者から見てより遠いことを示し得る。黒と白との中間にあるグレーの様々な色合い(shades)に対応するピクセル値は、異なる深度レベルを示す。たとえば、深度ビュー成分中の濃いグレーのピクセルは、テクスチャビュー成分中のそれの対応するピクセルが、深度ビュー成分中のより薄いグレーのピクセルよりも遠いことを示す。ピクセルの深度を識別するためには、グレースケールと同様にただ1つのピクセル値が必要とされるので、深度ビュー成分はただ1つのピクセル値を含み得る。したがって、クロマ成分に類似する値は必要とされない。
[0101]深度を識別するためにルーマ値(たとえば、強度値)のみを使用する深度ビュー成分が説明のために提供され、限定するものと見なされるべきではない。他の例では、テクスチャビュー成分中のピクセルの相対深度を示すために任意の技法が利用され得る。
[0102]マルチビュービデオコーディングによれば、テクスチャビュー成分は、同じビュー中のテクスチャビュー成分から、あるいは1つまたは複数の異なるビュー中のテクスチャビュー成分からインター予測される。テクスチャビュー成分は、「ビデオブロック」と呼ばれ、一般に、H.264コンテキストでは「マクロブロック」と呼ばれ、HEVCコンテキストではツリーブロックまたはコーディングユニット(CU)と呼ばれる、ビデオデータのブロック中でコーディングされ得る。
[0103]任意の同様の時間インスタンスのピクチャは同様のコンテンツを含み得る。しかしながら、同様の時間インスタンス中の異なるピクチャのビデオコンテンツは、互いに対して水平方向にわずかに変位され(displaced)得る。たとえば、ブロックがビューS0のピクチャ0における(x,y)に位置する場合、ビューS1のピクチャ1における(x+x’,y)に位置するブロックは、ビューS0のピクチャ0における(x,y)に位置するブロックと同様のビデオコンテンツを含む。この例では、ビューS0のピクチャ0における(x、y)に位置するブロックおよびビューS1のピクチャ1における(x+x’,y)に位置するブロックは、対応するブロックと見なされる。いくつかの例では、ビューS1のピクチャ1中の(x+x’,y)に位置するブロックのDVは、それの対応するブロックのロケーションを指す。たとえば、(x+x’,y)に位置するブロックのDVは、(−x’,0)である。
[0104]いくつかの例では、ビデオエンコーダ20またはビデオデコーダ30は、第2のビューのピクチャ中の対応するブロックを識別するために、第1のビューのピクチャ中のブロックのDVを利用し得る。ビデオエンコーダ20およびビデオデコーダ20は、たとえば、ビュー間予測を実行するときにDVを利用し得る。ビデオエンコーダ20およびビデオデコーダ30は、たとえば、現在のブロックのDVによって決定された参照ビュー中の参照ピクチャの参照ブロックの情報を使用してビュー間予測を実行し得る。
[0105]図3は、マルチビューコーディングのための例示的な時間的およびビュー間予測パターンを示す概念図である。図2の例と同様に、図3の例では、(ビューID「S0」〜「S7」を有する)8つのビューが示され、12個の時間ロケーションまたはアクセスユニット(「T0」〜「T11」)がビューごとに示されている。すなわち、図3中の各行はビューに対応し、各列は時間ロケーションまたはアクセスユニットを示す。(ピクチャであるか、または異なるピクチャ中の例示的なビデオブロックであり得る)オブジェクトは、図3中の各行および各列の交点で示される。MVC拡張をもつH.264/AVC規格は、ビデオの一部分を表すためにフレームという用語を使用し得るが、HEVC規格は、ビデオの一部分を表すためにピクチャという用語を使用し得る。本開示では、ピクチャという用語とフレームという用語とを互換的に使用する。
[0106]図3では、ビューS0はベースビューと見なされ得、ビューS1〜S7は従属ビューと見なされ得る。ベースビューは、ビュー間予測されないピクチャを含む。ベースビュー中のピクチャは、同じビュー内の他のピクチャに対してインター予測され得る。たとえば、ビューS0中のピクチャのいずれも、ビューS1〜S7のいずれの中のピクチャに対してもインター予測され得ないが、ビューS0中のピクチャのいくつかは、ビューS0中の他のピクチャに対してインター予測され得る。
[0107]さらに、アクセスユニットT0およびT8は、図3の例示的な予測構造のビデオシーケンスのためのランダムアクセスユニットまたはランダムアクセスポイントである。図3の例示的な予測構造において「I」と標示されたブロックによって示されているように、各ランダムアクセスポイント(T0およびT8)において、ベースビューピクチャ(S0)のビデオブロックはイントラピクチャ予測される。ランダムアクセスポイント中の他の非ベースビューピクチャ、または非ランダムアクセスポイント中のベースおよび非ベースビューピクチャ、のビデオブロックは、図3の例示的な予測構造中の「I」、「B」、「P」、または「b」と標示された様々なブロックによって示されるように、時間的インター予測またはビュー間予測のいずれかを介してインターピクチャ予測され得る。図3の例示的な予測構造における予測は、矢印によって示され、矢印の終点のオブジェクト(pointed-to object)は、予測の基準のために矢印の始点のオブジェクト(pointed-from object)を使用する。
[0108]従属ビューは、ビュー間予測されるピクチャを含む。たとえば、ビューS1〜S7の各々は、別のビュー中のピクチャに対してインター予測される少なくとも1つのピクチャを含む。従属ビュー中のピクチャは、ベースビュー中のピクチャに対してインター予測され得るか、または他の従属ビュー中のピクチャに対してインター予測され得る。図3の例では、大文字「B」および小文字「b」は、異なるコーディング方法ではなく、ピクチャ間の異なる階層関係を示すために使用される。概して、大文字の「B」ピクチャは、小文字の「b」フレームよりも予測階層が比較的高い。
[0109]ベースビューと1つまたは複数の従属ビューの両方を含むビデオストリームは、異なるタイプのビデオデコーダによって復号可能であり得る。たとえば、1つの基本タイプのビデオデコーダは、ベースビューのみを復号するように構成され得る。さらに、別のタイプのビデオデコーダは、ビューS0〜S7の各々を復号するように構成され得る。ベースビューと従属ビューの両方を復号するように構成されたデコーダは、マルチビューコーディングをサポートするデコーダと呼ばれることがある。
[0110]図3のピクチャ(または他のオブジェクト)は、対応するピクチャがイントラコーディングされる(intra-coded)(すなわち、Iピクチャである)か、一方向に(すなわち、Pピクチャとして)インターコーディングされる(inter-coded)か、または複数の方向に(すなわち、Bピクチャとして)インターコーディングされるかを指定する、文字を含む陰影付きブロック(a shaded block)を使用して示されている。概して、予測は矢印によって示され、ここで矢印の終点のピクチャは、予測参照のために矢印の始点のピクチャを使用する。たとえば、時間ロケーションT0にあるビューS2のPピクチャは、時間ロケーションT0にあるビューS0のIピクチャから予測される。
[0111]シングルビュービデオ符号化の場合と同様に、マルチビュービデオコーディングビデオシーケンスのピクチャは、異なる時間ロケーションにあるピクチャに対して予測的に符号化され得る。たとえば、時間ロケーションT1にあるビューS0のBピクチャは、時間ロケーションT0にあるビューS0のIピクチャからそのBピクチャに向けられた矢印を有し、その矢印は、bピクチャがIピクチャから予測されることを示す。しかしながら、さらに、マルチビュービデオ符号化のコンテキストにおいて、ピクチャはビュー間予測され得る。すなわち、ビュー成分(たとえば、テクスチャビュー成分)は、参照のために他のビュー中のビュー成分を使用することができる。マルチビューコーディングでは、たとえば、別のビュー中のビュー成分がインター予測参照であるかのように、ビュー間予測が実現される。潜在的なビュー間参照は、シグナリングされ得、インター予測またはビュー間予測参照のフレキシブルな順序付けを可能にする参照ピクチャリスト構成プロセスによって変更され得る。
[0112]図3は、ビュー間予測の様々な例を与える。図3の例では、ビューS1のピクチャは、ビューS1の異なる時間ロケーションにあるピクチャから予測されるものとして、ならびに同じ時間ロケーションにあるビューS0およびS2のピクチャからビュー間予測されるものとして示されている。たとえば、時間ロケーションT1にあるビューS1のBピクチャは、時間ロケーションT0およびT2にあるビューS1のBピクチャの各々、ならびに時間ロケーションT1にあるビューS0およびビューS2のBピクチャ、から予測される。
[0113]図3はまた、異なるレベルの陰影を使用して予測階層の変形形態を示し、ここで、より大きい量の陰影の(すなわち、比較的より暗い)フレームは、より少ない陰影を有する(すなわち、比較的より明るい)フレームよりも予測階層が高い。たとえば、図3のすべてのIピクチャは完全な陰影を用いて示されているが、Pピクチャはよりいくぶん明るい陰影を有し、Bピクチャ(および小文字のbピクチャ)は、互いに対して様々なレベルの陰影を有するが、PピクチャおよびIピクチャの陰影よりも常に明るい。
[0114]概して、予測階層が比較的高いピクチャは、予測階層が比較的より低いピクチャを復号する前に復号されなければならないという点で、予測階層はビュー順序インデックスに関係し得る。予測階層が比較的より高いそれらのピクチャは、予測階層が比較的低いピクチャの復号中に参照ピクチャとして使用され得る。ビュー順序インデックスは、アクセスユニット中のビュー成分の復号順序を示すインデックスである。ビュー成分の復号は、ビュー順序インデックスの昇順に従い得る。すべてのビューが提示された場合、ビュー順序インデックスのセットは、0からビューの全数よりも1少ない数までの連続的な順序付きセットを備え得る。
[0115] 予測階層の等しいレベルにあるいくつかのピクチャの場合、復号順序は、互いに重要でないことがある。たとえば、時間ロケーションT0にあるビューS0のIピクチャは、時間ロケーションT0にあるビューS2のPピクチャのための参照ピクチャとして使用され得、そのPピクチャは、今度は、時間ロケーションT0にあるビューS4のPピクチャのための参照ピクチャとして使用され得る。したがって、時間ロケーションT0にあるビューS0のIピクチャは、時間ロケーションT0にあるビューS2のPピクチャの前に復号されるべきであり、そのPピクチャは、今度は、時間ロケーションT0にあるビューS4のPピクチャの前に復号されるべきである。しかしながら、ビューS1およびS3は予測のために互いに従属しないので、ビューS1とビューS3との間で、復号順序は重要でない。代わりに、ビューS1およびS3は、予測階層がより高い他のビューのみから予測される。その上、ビューS1がビューS0およびS2の後に復号される限り、ビューS1はビューS4の前に復号され得る。
[0116]上記で説明したように、3D−HEVCでは、ビデオエンコーダ20およびビデオデコーダ30は、第2のビューの参照ピクチャ内の参照ブロックに関する第1のビューの現在のピクチャ内の現在のブロックをインター予測し得る。そのようなインター予測は、ビュー間予測と呼ばれる。現在のピクチャおよび参照ピクチャの時間インスタンスは、それぞれのビューにおいて同じであり得る。そのような例では、ビデオエンコーダ20またはビデオデコーダ30は、同じアクセスユニット内のピクチャにわたってビュー間予測を実行し、ここで同じアクセスユニット内のピクチャは、同じ時間インスタンスにおけるものである。
[0117]現在のブロックについてビュー間予測を実行するために、ビデオエンコーダ20またはビデオデコーダ30は、インター予測に対して使用され得る参照ピクチャを識別する参照ピクチャリストを、ビュー間予測に対して使用され得るピクチャを含めて構築する。インター予測は、参照ピクチャ内の参照ブロックに関して現在のピクチャ内の現在のブロックを予測することを指す。ビュー間予測は、ビュー間予測において、参照ピクチャが現在のピクチャのビューと異なるビュー内にある、インター予測のサブセットである。したがって、ビュー間予測に対して、ビデオエンコーダ20およびビデオデコーダ30は、構築された参照ピクチャリストの一方または両方に他のビュー内の参照ピクチャを追加する。他のビュー内の参照ピクチャは、構築された参照ピクチャリスト内の任意のロケーションにおいて識別され得る。本開示で使用されるように、ビデオエンコーダ20がブロックについてインター予測を実行している(たとえば、インター予測している)とき、ビデオエンコーダ20は、ブロックをインター予測符号化していると見なされ得る。ビデオデコーダ30がブロックについてインター予測を実行している(たとえば、インター予測している)とき、ビデオデコーダ30は、ブロックをインター予測復号していると見なされ得る。ビュー間予測では、現在のビデオブロックのためのDMVは、現在のブロックをインター予測するための参照ブロックとして使用されるべき、予測されるべきビデオブロックと、構築された参照ピクチャリストの一方または両方への参照インデックスとを含むピクチャが他のビュー中の参照ピクチャを識別するビュー以外のビュー中の参照ピクチャ中のブロックのロケーションを識別する。
[0118]本開示では、現在のビデオブロックのDMVまたは参照ビデオブロックのDMVを識別することと、識別されたDMVに基づいて現在のビデオブロックのための残差予測子ブロックを決定することとを含むARPを実行するための技法について説明する。現在のビデオブロックのDMVまたは現在のビデオブロックと同じビュー中の参照ビデオブロックのDMVは、現在のビデオブロックの現在のビューから、参照ビュー中のビデオデータに基づいて現在のビュー中のビデオデータのビュー間予測のために使用される参照ビューまでのDMVと見なされ得る。本開示の技法は、ビデオエンコーダ20およびビデオデコーダ30の一方または両方によって実施され得る。これらの技法は、たとえば、HEVCベースのマルチビュービデオコーディングおよび/またはHEVCベースの3Dビデオコーディングと連携して使用され得る。
[0119]上記で説明したように、ビデオデータのブロックのためのTMVまたはDMVを定義するデータは、ベクトルの水平成分と垂直成分とに加えてベクトルのための分解能を含み得る。ビデオブロックについての動き情報は、動きベクトルに加えて、予測方向と参照ピクチャインデックス値とを含み得る。さらに、現在のビデオブロックについての動き情報は、参照ビデオブロックと呼ばれることもある隣接ビデオブロックの動き情報から予測され得る。参照ビデオブロックは、同じピクチャ内の空間ネイバー(a spatial neighbor)であるか、同じビューの異なるピクチャ内のものだが異なるアクセスユニット内の時間ネイバー(a temporal neighbor)であるか、または異なるビューの異なるピクチャ内のものだが同じアクセスユニット内のビデオブロックであり得る。異なるビュー中の参照ブロックからの動き情報の場合、動きベクトルは、ビュー間参照ピクチャ(すなわち、現在のピクチャと同じアクセスユニット中のものだが異なるビューからの参照ピクチャ)中の参照ブロックから導出されるTMVであるか、またはDVから導出されるDMVであり得る。
[0120]一般に、動き情報予測では、様々な参照ブロックからの候補動き情報のリストは、たとえば、様々な参照ブロックからの動き情報が、定義された順序でのそのリストへの包含について考慮されるように、定義された方法で形成される。候補リストを形成した後、ビデオエンコーダ20は、各候補を評価して、ビデオを符号化するために選択された所与のレートおよびひずみのプロファイルに最も良く合致する最良のレートおよびひずみの特性をもたらすのはどれかを決定し得る。ビデオエンコーダ20は、候補の各々に対してレートひずみ最適化(RDO:rate-distortion optimization)手順を実行し、最良のRDO結果を有する動き情報候補のうちの1つを選択し得る。代替的に、ビデオエンコーダ20は、現在のビデオブロックについて決定された動き情報に最も近似する、リストに記憶された候補のうちの1つを選択し得る。
[0121]いずれの場合も、ビデオエンコーダ20は、動き情報の候補リスト中で候補のうちの選択された1つを識別するインデックスを使用して選択された候補を指定し得る。ビデオエンコーダ20は、ビデオデコーダ30が使用する符号化ビットストリーム中でこのインデックスをシグナリングし得る。コーディング効率のために、その候補は、現在のビデオブロックをコーディングするために選択される可能性が最も高い候補動き情報が先頭になるか、あるいは大きさが最低のインデックス値に関連付けられるようにリスト中で順序付けされ得る。
[0122]動き情報予測のための技法は、マージモードと、スキップモードと、アドバンス動きベクトル予測(AMVP:advance motion vector prediction)モードとを含み得る。概して、マージモードおよび/またはスキップモードに従って、現在のビデオブロックは、別の以前にコーディングされた隣接ブロック、たとえば、同じピクチャ中の空間的に隣接するブロックあるいは時間またはビュー間参照ピクチャ中のブロックから動き情報、たとえば、動きベクトル、予測方向、および参照ピクチャインデックスを継承する。マージ/スキップモードを実施するとき、ビデオエンコーダ20は、定義された事柄(a defined matter)中の参照ブロックの動き情報であるマージング候補(merging candidates)のリストを構築し、マージング候補のうちの1つを選択し、ビットストリーム中でビデオデコーダ30に選択されたマージング候補を識別する候補リストインデックスをシグナリングする。
[0123]ビデオデコーダ30は、マージ/スキップモードを実装する際に、この候補リストインデックスを受信し、定義された方法に従ってマージング候補リストを再構成し、インデックスによって示された候補リスト中のマージング候補のうちの1つを選択する。ビデオデコーダ30は、次いで、マージング候補のうちの選択された1つの動きベクトルと同じ分解能で、マージング候補のうちの選択された1つに対する動きベクトルと同じ参照ピクチャを指す、現在のPUの動きベクトルとしてマージング候補のうちの選択された1つをインスタンス化し(instantiate)得る。したがって、デコーダ側において、候補リストインデックスが復号されると、たとえば、動きベクトル、予測方向および、参照ピクチャインデックスなど、選択された候補の対応するブロックの動き情報のすべてが継承され得る。マージモードおよびスキップモードは、ビデオエンコーダ20が、現在のビデオブロックのインター予測についての動き情報のすべてではなく、マージング候補リストへのインデックスをシグナリングすることを可能にすることによってビットストリーム効率を促進する。
[0124]AMVPを実施するとき、ビデオエンコーダ20は、定義された事柄中の候補動きベクトル予測子(MVP)のリストを構築し、候補MVPのうちの1つを選択し、ビットストリーム中でビデオデコーダ30に選択されたMVPを識別する候補リストインデックスをシグナリングする。マージモードと同様に、AMVPを実施するとき、ビデオデコーダ30は、定義された事柄中の候補MVPのリストを再構成し、エンコーダからの候補リストインデックスを復号し、候補リストインデックスに基づいてMVPのうちの1つを選択しインスタンス化する。
[0125]しかしながら、マージ/スキップモードに反して、AMVPを実施するとき、ビデオエンコーダ20はまた、参照ピクチャインデックスと予測方向とをシグナリングし、このようにして、候補リストインデックスによって指定されたMVPが指す参照ピクチャを指定する。さらに、ビデオエンコーダ20は、現在のブロックのための動きベクトル差分(MVD:motion vector difference)を決定し、ここで、MVDは、MVPと、通常ならば現在のブロックのために使用されたであろう実際の動きベクトルとの間の差である。AMVPでは、参照ピクチャインデックス、参照ピクチャ方向および候補リストインデックスに加えて、ビデオエンコーダ20は、ビットストリーム中で現在のブロックのためのMVDをシグナリングする。所与のブロックのための参照ピクチャインデックスと予測ベクトル差分とのシグナリングにより、AMVPは、マージ/スキップモードほど効率的でないことがあるが、コード化ビデオデータの忠実度が改善し得る。
[0126]図4に、現在のビデオブロック47と、5つの空間的隣接ブロック(41、42、43、44および45)と、別のピクチャからのものだが現在のピクチャと同じビュー中の時間参照ブロック46との一例を示す。時間参照ブロック46は、たとえば、異なる時間インスタンスのピクチャだが現在のビデオブロック47と同じビュー中のコロケートされたブロックであり得る。いくつかの例では、現在のビデオブロック47と参照ビデオブロック41〜46とは、現在開発中のHEVC規格において概して定義された通りのものであり得る。参照ビデオブロック41〜46は、現在開発中のHEVC規格に従ってA0、A1、B0、B1、B2およびTと標示される。ビデオエンコーダ20およびビデオデコーダ30は、動き情報予測モード、たとえば、マージ/スキップモードまたはAMVPモードに従って参照ビデオブロック41〜46の動き情報に基づいて現在のビデオブロック47の、TMVを含む動き情報を予測し得る。以下でより詳細に説明するように、ビデオブロックのTMVは、本開示の技法によれば、高度残差予測のためのDMVとともに使用され得る。
[0127]図4に示すように、ビデオブロック42、44、43、41、および45は、現在のビデオブロック47に対して、それぞれ、左、上、右上、左下、および左上にあり得る。ただし、図4に示す現在のビデオブロック47に対する隣接ブロック41〜45の数とロケーションとは例にすぎない。他のロケーションにおいて、異なる数の隣接ブロックおよび/または異なるロケーションにあるブロックの動き情報が、現在のビデオブロック47のための動き情報予測候補リストへの包含について考慮され得る。
[0128]現在のビデオブロック47に対する空間的に隣接するブロック42、44、43、41、および45の各々の空間的関係は、次のように説明され得る。現在のピクチャの左上のサンプルに対する現在のブロックの左上のルーマサンプルを指定するために、ルーマロケーション(xP,yP)が使用される。変数nPSWおよびnPSHは、ルーマについて現在のブロックの幅と高さとを示す。空間的に隣接するブロック42の左上のルーマサンプルは、xP−1、yP+nPSH−1である。空間的に隣接するブロック44の左上のルーマサンプルは、xP+nPSW−1、yP−1である。空間的に隣接するブロック43の左上のルーマサンプルは、xP+nPSW、yP−1である。空間的に隣接するブロック41の左上のルーマサンプルは、xP−1、yP+nPSHである。空間的に隣接するブロック45の左上のルーマサンプルは、xP−1、yP−1である。ルーマロケーションに関して説明したが、現在のブロックと参照ブロックとはクロマ成分を含み得る。
[0129]空間的に隣接するブロック41〜45の各々は、現在のビデオブロック47の動き情報、たとえば、TMVを予測するための空間動き情報候補を与え得る。ビデオコーダ、たとえば、ビデオエンコーダ20(図1)またはビデオデコーダ30(図1)は、所定の順序、たとえば、走査順序で、空間的に隣接する参照ブロックの動き情報を考慮し得る。3D−HEVCの場合、たとえば、ビデオデコーダは、42、44、43、41、および45の順序でマージモードのためのマージング候補リストへの包含について参照ブロックの動き情報を考慮し得る。図示の例では、空間的に隣接するブロック41〜45は、現在のビデオブロック47の左側におよび/またはそれの上にある。大部分のビデオコーダがピクチャの左上からラスタ走査順序(raster scan order)でビデオブロックをコーディングするので、この構成は典型的なものである。したがって、そのような例では、空間的に隣接するブロック41〜45は、一般に、現在のビデオブロック47より前にコーディングされることになる。ただし、他の例では、たとえば、ビデオコーダが異なる順序でビデオブロックをコーディングするとき、空間的に隣接するブロック41〜45は、現在のビデオブロック47の右側におよび/またはそれの下に位置し得る。
[0130]時間参照ブロック46は、現在のビデオブロック47の現在のピクチャより必ずしもコーディング順序で直前とは限らないが、それより前にコーディングされた時間参照ピクチャ内に位置する。さらに、ブロック46の参照ピクチャは、必ずしも表示順序で現在のビデオブロック47のピクチャより前にあるとは限らない。参照ビデオブロック46は、概して、現在のピクチャ中の現在のビデオブロック47のロケーションに対して参照ピクチャ中でコロケートされ得る。いくつかの例では、参照ビデオブロック46は、現在のピクチャ中の現在のビデオブロック47の位置の右側におよびそれの下に位置し、または現在のピクチャ中の現在のビデオブロック47の中心位置をカバーする。
[0131]図5は、たとえば、マージ/スキップモードまたはAMVPモードによる、現在のビデオブロック50の動き情報の予測のためのビュー間予測動きベクトル候補(IPMVC:inter-view predicted motion vector candidate)とビュー間視差動きベクトル候補(IDMVC:inter-view disparity motion vector candidate)との導出の例を示す概念図である。ビュー間予測が使用可能であるとき、ビデオエンコーダ20および/またはビデオデコーダ30は、現在のビデオブロック50のための動き情報候補リストに新しい動きベクトル候補IPMVCまたはIDMVCを追加し得る。IPMVCは、現在のビデオブロック50のためのTMVを予測し得、これを、ビデオエンコーダ20および/またはビデオデコーダ30は、以下でより詳細に説明するように、本開示の技法に従って現在のビデオブロック50または別のビデオブロックのARPのために使用し得る。IDMVCは、現在のビデオブロック50のためのDMVを予測し得、これを、ビデオエンコーダ20および/またはビデオデコーダ30は、以下でより詳細に説明するように、本開示の技法に従って現在のビデオブロック50または別のビデオブロックのARPのために使用し得る。
[0132]図5の例では、現在のブロック50は現在のビューVm中にある。ビデオエンコーダ20および/またはビデオデコーダ30は、視差ベクトル(DV)51を使用して参照ビューV0中の対応するブロックまたは参照ブロック52の位置を特定し得る。ビデオコーダは、カメラパラメータに基づいて、または本明細書で説明する技法のいずれかに従ってDV51を決定し得る。たとえば、ビデオコーダは、たとえば、隣接ブロックベースの視差ベクトル導出(NBDV)を使用して、隣接ブロックのDVに基づくことを含めて現在のビデオブロック50のためのDV51を決定し得る。
[0133]参照ブロック52が、イントラコーディングもビュー間予測もされず、それの参照ピクチャ、たとえば、参照ピクチャ58または参照ピクチャ60が、現在のビデオブロック50の同じ参照ピクチャリスト中の1つのエントリの値に等しいピクチャ順序カウント(POC:a picture order count)値を有する場合、ビデオエンコーダ20および/またはビデオデコーダ30は、POCに基づいて参照インデックスを変換した後に、現在のビデオブロック50のためのIPMVCとされるべきそれの動き情報(予測方向、参照ピクチャ、および動きベクトル)を導出し得る。図5の例では、参照ビデオブロック52は、第1の参照ピクチャリスト(RefPicList0)中に指定された参照ビューV0中の第1の参照ピクチャ58を指すTMV54と、第2の参照ピクチャリスト(RefPicList1)中に指定された参照ビューV0中の第2のピクチャ60を指すTMV56とに関連付けられる。現在のビデオブロック50によるTMV54および56の継承を、図5中の破線矢印によって示す。参照ビデオブロック52の動き情報に基づいて、ビデオコーダは、たとえば、第1の参照ピクチャリスト(RefPicList0)中で参照ピクチャ58と同じPOCをもつ、第1の参照ピクチャリスト中に指定された現在のビューVm中の第1の参照ピクチャ66を指すTMV62と、たとえば、参照ピクチャ60と同じPOCをもつ、第2の参照ピクチャリスト(RefPicList1)中に指定された現在のビューVm中の第2のピクチャ68を指すTMV64とのうちの少なくとも1つとされるべき現在のビデオブロック50のためのIPMVCを導出する。ビデオエンコーダ20および/またはビデオデコーダ30は、以下でより詳細に説明するように、本開示の技法に従って現在のビデオブロック50または別のビデオブロックのARPのためにTMV62および/またはTMV64を使用し得る。
[0134]ビデオエンコーダ20および/またはビデオデコーダ30はまた、現在のビデオブロック50のためのIDMVCにDV51を変換し、現在のビデオブロック50のための動き情報候補リストにIDMVCをIPMVCとは異なる位置に追加し得る。IPMVCまたはIDMVCの各々は、このコンテキストでは「ビュー間候補(inter-view candidate)」と呼ばれることがある。マージ/スキップモードでは、ビデオコーダは、利用可能な場合、IPMVCを、マージ候補リストに、すべての空間および時間マージング候補の前に挿入する。マージ/スキップモードでは、ビデオコーダは、A0(図4のブロック41)から導出された空間マージング候補の前にIDMVCを挿入する。IDMVCへのDV51の変換は、現在のビデオブロック50のためのDMVへのDV51の変換と見なされ得る。ビデオエンコーダ20および/またはビデオデコーダ30は、以下でより詳細に説明するように、本開示の技法に従って現在のビデオブロック50または別のビデオブロックのARPのためにDMVを使用し得る。
[0135]いくつかの状況では、ビデオコーダは、現在のビデオブロックのDVを導出し得る。たとえば、図5に関して上記で説明したように、ビデオエンコーダ20および/またはビデオデコーダ30は、現在のビデオブロック50のためのDV51を導出し得る。いくつかの例では、ビデオコーダは、現在のビデオブロックのDVを導出するために、隣接ブロックベースの視差ベクトル(NBDV)導出を使用し得る。
[0136]3D−HEVCに関する提案は、ビューのすべてについてテクスチャ優先コーディング順序(a texture-first coding order)を使用する。言い換えれば、ビットストリーム中の複数のビューの各々について、ビューのためのいかなる深度成分よりも前にテクスチャ成分がコーディングされ、たとえば、符号化または復号される。場合によっては、たとえば、ビュー間予測では、特定のアクセスユニット中のビューのテクスチャ成分中のビデオブロックをコーディングするためにDVが必要とされる。しかしながら、テクスチャ優先コーディングでは、現在のビデオブロックの対応する深度成分は、現在のビデオブロックのDVを決定するために利用可能でない。そのような状況では現在のビデオブロックのDVを導出するために、NBDVが、ビデオコーダによって採用され得、3D−HEVCのために提案される。現在の3D−HEVCの設計では、NBDVから導出されたDVは、NBDVプロセスからのDVによって指された参照ビューの深度マップから深度データを取り出すことによって、さらに改善され得る。
[0137]DVは、2つのビュー間の変位(displacement)を推定するものとして使用される。隣接ブロックは、ビデオコーディングにおいてほぼ同じ動き/視差情報を共有するので、現在のビデオブロックは、それの動き/視差情報の良好な予測子として、隣接ブロック中の動きベクトル情報を使用することができる。この考えに従って、NBDVは、異なるビュー中のDVを推定するために、隣接視差情報を使用する。
[0138]NBDVに従って、ビデオコーダは、いくつかの空間的および時間的隣接ブロックを識別する。隣接ブロックの2つのセットが利用される。一方のセットは空間的隣接ブロックからのものであり、他方のセットは時間的隣接ブロックからのものである。ビデオコーダは、次いで、現在のブロックと候補(隣接)ブロックとの間の相関の優先順位によって決定されたあらかじめ定義された順序で空間的および時間的隣接ブロックの各々を検査する。ビデオコーダが、DMV、すなわち、候補の動き情報中で、隣接候補ブロックから(同じアクセスユニット中だが、異なるビュー中の)ビュー間参照ピクチャを指す動きベクトル、を識別すると、ビデオコーダは、DMVをDVに変換し、関連するビュー順序インデックスを戻す。たとえば、ビデオコーダは、現在のブロックのDVの水平成分をDMVの水平成分に等しく設定し得、DVの垂直成分を0に設定し得る。
[0139]3D−HEVCは、第1に、Zhangらの、「3D−CE5.h:Disparity vector generation results」、ITU−T SG16 WP3およびISO/IEC JTC1/SC29/WG11のJoint Collaborative Team on Video Coding Extension Development、第1回会合、ストックホルム、スウェーデン、2012年7月16〜20日、文書JCT3V−A0097(MPEG番号m26052)、以下「JCT3V−A0097」において提案されたNBDVの方法を採用した。JCT3V−A0097は、以下のリンクからダウンロードされ得る。
[0140]http://phenix.int−evry.fr/jct2/doc_end_user/current_document.php?id=89。JCT3V−A0097の内容全体が、参照により本明細書に組み込まれる。
[0141]3D−HEVCのいくつかの設計では、ビデオコーダがNBDVプロセスを実行するとき、ビデオコーダは、順番に、時間的隣接ブロック中の視差動きベクトル、空間的隣接ブロック中の視差動きベクトル、次いで、暗黙的視差ベクトル(IDV:implicit disparity vector)を検査する。IDVは、ビュー間予測を使用してコーディングされた空間的または時間的隣接PUの視差ベクトルであり得る。IDVは、導出された視差ベクトルと呼ばれることもある。IDVは、PUがビュー間予測を採用するとき、すなわち、AMVPまたはマージモードのための候補が視差ベクトルの助けをかりて他のビュー中の参照ブロックから導出されるときに生成され得る。そのような視差ベクトルはIDVと呼ばれる。IDVは、DV導出の目的でPUに記憶され得る。たとえば、ブロックが動き予測でコーディングされるとしても、そのブロックについて導出されたDVは後続のブロックをコーディングする目的のために破棄されない。したがって、ビデオコーダがDMVまたはIDVを識別するとき、ビデオコーダは、識別されたIDVまたはIDVを戻し得る。
[0142]暗黙視差ベクトル(IDV)は、Sungらの、「3D−CE5.h:Simplification of disparity vector derivation for HEVC−based 3D video coding」、ITU−T SG16 WP3とISO/IEC JTC1/SC29/WG11のJoint Collaborative Team on Video Coding Extension Development、第1回会合、ストックホルム、スウェーデン、2012年7月16〜20日、文書JCT3V−A0126(MPEG番号m26079)、以下、「JCT3V−A0126」における簡略化されたNBDVに含まれた。JCT3V−A0126は、以下のリンクからダウンロードされ得る。
[0143]http://phenix.int−evry.fr/jct2/doc_end_user/current_document.php?id=142。JCT3V−A0126の内容全体が、参照により本明細書に組み込まれる。
[0144]3D−HEVCのためのNBDVのさらなる発展が、Kangらの、「3D−CE5.h:Improvement for disparity vector derivation」、ITU−T SG16 WP3およびISO/IEC JTC1/SC29/WG11のJoint Collaborative Team on Video Coding Extension Development、第2回会合、上海、中国、2012年10月13〜19日、文書JCT3V−B0047(MPEG番号m26736)、以下「JCT3V−B0047」において行われた。JCT3V−B0047は、以下のリンクからダウンロードされ得る。
[0145]http://phenix.it−sudparis.eu/jct2/doc_end_user/current_document.php?id=236。JCT3V−B0047の内容全体が、参照により本明細書に組み込まれる。JCT3V−B0047では、3D−HEVCのためのNBDVは、復号ピクチャバッファ(decoded picture buffer)に記憶されるIDVを除去することによってさらに簡略化されたが、ランダムアクセスポイント(RAP:random access point)ピクチャ選択を用いてコーディング利得も改善される。ビデオコーダは、戻された視差動きベクトルまたはIDVを視差ベクトルに変換し得、ビュー間予測およびビュー間残差予測のためにその視差ベクトルを使用し得る。ランダムアクセスは、ビットストリーム中の第1のコード化ピクチャではないコード化ピクチャから始まるビットストリームの復号を指す。一定の間隔でのビットストリーム中へのランダムアクセスピクチャまたはランダムアクセスポイントの挿入はランダムアクセスを有効にし得る。ランダムアクセスピクチャの例示的なタイプは、瞬時復号リフレッシュ(IDR:Instantaneous Decoder Refresh)ピクチャ、クリーンランダムアクセス(CRA:Clean Random Access)ピクチャ、および切断リンクアクセス(BLA:Broken Link Access)ピクチャを含む。したがって、IDRピクチャ、CRAピクチャ、およびBLAピクチャは、RAPピクチャと総称される。いくつかの例では、RAPピクチャは、NALユニットタイプを有し得、BLA_W_LP、BLA_W_RADL、BLA_N_LP、IDR_W_RADL、IDR_N_LP、RSV_IRAP_VCL22、RSV_IRAP_VCL23、またはCRA_NUTに等しい。
[0146]3D−HEVCのためのCUベースのDV導出のための技法が、Kangらの、「CE2.h:CU−based disparity vector derivation in 3D−HEVC」、ITU−T SG16 WP3およびISO/IEC JTC1/SC29/WG11のJoint Collaborative Team on Video Coding Extension Development、第4回会合、インチョン、韓国、2013年4月20〜26日、文書JCT3V−D0181(MPEG番号m29012)、以下「JCT3V−D0181」において提案された。JCT3V−D0181は、以下のリンクからダウンロードされ得る。
[0147]http://phenix.it−sudparis.eu/jct3v/doc_end_user/current_document.php?id=866。JCT3V−D0181の内容全体が、参照により本明細書に組み込まれる。
[0148]ビデオコーダがDMVまたはIDVを識別すると、ビデオコーダは、検査プロセスを終了し得る。したがって、ビデオコーダが現在のブロックのDVを発見すると、ビデオコーダはNBDVプロセスを終了し得る。ビデオコーダがNBDVプロセスを実行することによって現在のブロックのDVを決定することができないとき(すなわち、NBDVプロセス中にDMVまたはIDVが発見されないとき)、NBDVは利用不可能であると標識され得る。言い換えれば、NBDVプロセスが利用不可能な視差ベクトルを戻したと見なされ得る。
[0149]ビデオコーダがNBDVプロセスを実行することによって現在のブロックのDVを導出することができない場合(すなわち、視差ベクトルが発見されない場合)、ビデオコーダは、現在のPUのDVとしてゼロDVを使用し得る。ゼロDVは、0に等しい水平成分と垂直成分の両方を有するDVである。したがって、NBDVプロセスが利用不可能な結果を戻すときでも、DVを必要とするビデオコーダの他のコーディングプロセスは、現在のブロックのためにゼロ視差ベクトルを使用し得る。いくつかの例では、ビデオコーダが、NBDVプロセスを実行することによって現在のブロックのDVを導出することができない場合、ビデオコーダは、現在のブロックのためのビュー間残差予測を無効にし得る。しかしながら、ビデオコーダが、NBDVプロセスを実行することによって現在のブロックのDVを導出することができるかどうかにかかわらず、ビデオコーダは、現在のブロックに対してビュー間予測を使用し得る。すなわち、すべてのあらかじめ定義された隣接ブロックを検査した後にDVが発見されない場合、ビュー間予測のためにゼロ視差ベクトルが使用され得るが、ビュー間残差予測は対応するCUに対して無効化され得る。
[0150]図6は、現在のビデオブロック90に対する、NBDVを使用して現在のビデオブロックのDVが導出され得る例示的な空間的隣接ブロックを示す概念図である。図6に示す5つの空間的隣接ブロックは、現在のビデオブロックに対する左下ブロック96、左ブロック95、右上ブロック92、上ブロック93、および左上ブロック94である。空間的隣接ブロックは、現在のビデオブロックをカバーするCUの左下ブロック、左ブロック、右上ブロック、上ブロック、および左上ブロックであり得る。NBDVのこれらの空間的隣接ブロックは、HEVCにおけるマージ/AMVPモードなどに従って現在のビデオブロックのための動き情報予測のためにビデオコーダによって使用される空間的隣接ブロックと同じであり得ることに留意されたい。そのような場合、空間的隣接ブロックの動き情報が現在のビデオブロックのための動き情報予測のためにすでに考慮されているので、ビデオコーダによるNBDVのための追加のメモリアクセスが必要とされ得ない。
[0151]時間的隣接ブロックを検査するために、ビデオコーダは、候補ピクチャリストを構築する。いくつかの例では、ビデオコーダは、現在のビュー、すなわち、現在のビデオブロックと同じビューからの最大2つの参照ピクチャを候補ピクチャとして扱い得る。ビデオコーダは、最初に、コロケートされた参照ピクチャを候補ピクチャリストに挿入し、続いて、候補ピクチャの残りを、参照ピクチャインデックスの昇順で挿入する。両方の参照ピクチャリスト中で同じ参照インデックスをもつ参照ピクチャが利用可能であるとき、ビデオコーダは、他の参照ピクチャリストからの他の参照ピクチャより前に、コロケートされたピクチャと同じ参照ピクチャリスト中にある参照ピクチャを挿入し得る。いくつかの例では、ビデオコーダは、候補ピクチャリスト中の候補ピクチャの各々から時間的隣接ブロックを導出するための3つの候補領域を識別し得る。3つの候補領域は、次のように定義され得る。
・CPU:現在のPUまたは現在のCUのコロケート領域(co-located region)。
・CLCU:現在のブロックのコロケート領域をカバーする最大コーディングユニット(LCU)。
・BR:CPUの右下の4×4のブロック。
候補領域をカバーするPUがDVを指定する場合、ビデオコーダは、PUの視差動きベクトルに基づいて現在のビデオユニットのDVを決定し得る。
[0152]上記で説明したように、空間的および時間的隣接ブロックから導出されたDMVに加えて、ビデオコーダはIDVについて検査し得る。3D−HTM7.0のための提案されたNBDVプロセスでは、ビデオコーダは、順番に、時間的隣接ブロック中のDMV、次いで、空間的隣接ブロック中のDMV、次いでIDVを検査する。DMVまたはIDVが発見されると、プロセスは終了される。
[0153]ビデオコーダが隣接PU(a neighboring PU)(たとえば、空間的隣接PUまたは時間的隣接PU)を確認すると、ビデオコーダは、最初に、隣接PUが視差動きベクトルを有するかどうかを確認し得る。隣接PUのいずれもが視差動きベクトルを有しない場合、ビデオコーダは、空間的隣接PUのいずれかがIDVを有するかどうかを決定し得る。空間的隣接PUの1つがIDVを有し、IDVがマージ/スキップモードとしてコーディングされる場合、ビデオコーダは検査処理を終了し得、現在のPUの最終視差ベクトルとしてIDVを使用し得る。
[0154]上記のように、ビデオコーダは、現在のブロック(たとえば、CU、PUなど)のDVを導出するために、NBDVプロセスを適用し得る。現在のブロックの視差ベクトルは、参照ビュー中の参照ピクチャ(すなわち、参照成分)中のロケーションを示し得る。いくつかの3D−HEVC設計では、ビデオコーダは参照ビューについての深度情報にアクセスすることが許可される。いくつかのそのような3D−HEVC設計では、ビデオコーダが現在のブロックのDVを導出するためにNBDVプロセスを使用するとき、ビデオコーダは、現在のブロックの視差ベクトルをさらに改善するために改善プロセスを適用し得る。ビデオコーダは、参照ピクチャの深度マップに基づいて現在のブロックのDVを改善し得る。ビデオコーダは、後方ビュー合成予測のためにDMVを改善するために同様の改善プロセスを使用し得る。このようにして、後方ビュー合成予測のために使用されるべきDVまたはDMVを改善するために深度が使用され得る。この改善プロセスを、本明細書では、NBDV改善(「NBDV−R」:NBDV refinement)、NBDV改善プロセス、または深度指向NBDV(Do−NBDV:depth-oriented NBDV)と呼ぶことがある。
[0155]NBDVプロセスが利用可能な視差ベクトルを戻すと(たとえば、NBDVプロセスが、そのNBDVプロセスが視差動きベクトルまたは隣接ブロックのIDVに基づいて、現在のブロックの視差ベクトルを導出することが可能であったことを示す変数を返すと)、ビデオコーダは、参照ビューの深度マップから深度データを取り出すことによって、視差ベクトルをさらに改善し得る。いくつかの例では、改善プロセスは以下の2つのステップを含む。
1)ベースビューなど、前にコーディングされた参照深度ビュー中の導出されたDVによって、対応する深度ブロックの位置を特定し、対応する深度ブロックのサイズは、現在のPUのものと同じである。
2)対応する深度ブロックの4つのコーナーピクセルから1つの深度値を選択し、それを、改善されたDVの水平成分に変換する。DVの垂直成分は不変である。
[0156]改善されたDVは、現在のビデオブロックのためのビュー間予測のために使用され得、一方、改善されていないDVは、現在のビデオブロックのためのビュー間残差予測のために使用され得る。さらに、改善されたDVは、以下でより詳細に説明する、後方ビュー合成予測(BVSP)モードでコーディングされる場合、1つのPUの動きベクトルとして記憶される。3D−HTM7.0のための提案されたNBDVプロセスでは、ベースビューの深度ビュー成分は、NBDVプロセスから導出されたビュー順序インデックスの値にかかわらず常にアクセスされることになる。
[0157]後方ビュー合成予測(BVSP)手法が、Tianらの、「CE1.h:Backward View Synthesis Prediction using Neighboring Blocks」、ITU−T SG16 WP3およびISO/IEC JTC1/SC29/WG11のJoint Collaborative Team on Video Coding Extension Development、第3回会合、ジュネーブ、スイス、2013年1月17〜23日、文書JCT3V−C0152(MPEG番号m27909)、以下「JCT3V−C0152」において提案された。JCT3V−C0152は、以下のリンクからダウンロードされ得る。http://phenix.int−evry.fr/jct3v/doc_end_user/current_document.php?id=594。JCT3V−C0152の内容全体が、参照により本明細書に組み込まれる。
[0158]JCT3V−C0152は、第3回JCT−3V会合で採用された。このBSVPの基本概念は、3D−AVCにおけるブロックベースVSPと同じである。これらの2つの技法の両方は、動きベクトル差分を送信することを避け、より正確な動きベクトルを使用するために、後方ワーピングおよびブロックベースVSP(backward-warping and block-based VSP)を使用する。実装形態の詳細は、異なるプラットフォームのために異なる。以下の段落では、我々はまた、3D−HEVCにおける後方ワーピングVSP手法または3D−AVCにおけるブロックベースVSPの一方または両方を示すためにBVSPという用語を使用する。
[0159]3D−HTMでは、テクスチャ優先コーディングが共通試験条件(common test conditions)で適用される。したがって、対応する非ベース深度ビュー(non-base depth view)は、1つの非ベーステクスチャビューを復号するとき、利用不可能である。したがって、深度情報が推定され、BVSPを実行するために使用される。
[0160]一般に、ビデオコーダが参照テクスチャピクチャを合成するためにBVSPを実行するとき、ビデオコーダは従属テクスチャピクチャ中のブロック(たとえば、ビデオユニット)を処理する。従属テクスチャピクチャおよび合成テクスチャピクチャは、同じアクセスユニット中にあるが、異なるビュー中にある。ビデオコーダが従属テクスチャピクチャのブロック(すなわち、現在のブロック)を処理するとき、ビデオコーダは、現在のブロックのDVを識別するためにNBDVプロセスを実行し得る。すなわち、ブロックについての深度情報を推定するために、ビデオコーダは隣接ブロックからDVを最初に導出し得る。
[0161]さらに、ビデオコーダが参照テクスチャピクチャを合成するためにBVSPを実行するとき、ビデオコーダは、参照深度ピクチャ中の参照ブロックを識別するために、現在のブロックのDVを使用し得る。言い換えると、ビデオコーダは、次いで、参照ビューから深度ブロックを取得するために、その導出されたDVを使用し得る。たとえば、NBDVプロセスによって識別されたDVは(dvx,dvy)として示され得、現在のブロック位置は(blockx,blocky)として示され得る。さらに、この例では、ビデオコーダは、参照ビューの深度画像中の(blockx+dvx,blocky+dvy)において深度ブロックをフェッチし得る。この例では、フェッチされた深度ブロックは現在のPUの同じサイズを有する。従属テクスチャピクチャおよび参照深度ピクチャは、同じアクセスユニット中にあるが、異なるビュー中にある。ビデオコーダは、次いで、現在のブロックのサンプル値と、参照ピクチャの識別された参照ブロックのサンプル値とに基づいて、合成されたピクチャのサンプル値を決定するために、後方ワーピングプロセスを実行し得る。言い換えると、ビデオコーダは、この例では、現在のPUについて後方ワーピングを実行するために、フェッチされた深度ブロックを使用し得る。
[0162]上記のように、ビデオコーダがBVSPを実行するとき、ビデオコーダは、現在のブロックのDVを識別するために、NBDVを実行し得る。さらに、ビデオコーダがBVSPを実行するとき、ビデオコーダは、NBDVプロセスを使用して導出されたDMVを改善するために、本開示の他の箇所で説明する改善プロセスに類似した改善プロセスを使用し得る。ビデオコーダがDV改善プロセスを実行するとき、ビデオコーダは、参照ビュー中の深度マップ中の深度値に基づいてDVを改善し得る。言い換えると、BVSP用に使用されるべきDVまたはDMVを改善するために深度が使用され得る。改善されたDVがBVSPモードでコーディングされる場合、改善されたDVは、1つのPUの動きベクトルとして記憶され得る。
[0163]3D−HEVCのいくつかのバージョンでは、テクスチャ優先コーディングが適用される。テクスチャ優先コーディングでは、ビデオコーダは、対応する深度ビュー成分(すなわち、テクスチャビュー成分と同じPOC値およびビュー識別子を有する深度ビュー成分)をコーディングするのに先立って、テクスチャビュー成分をコーディング(たとえば、符号化または復号)する。したがって、対応するア非ベースビューテクスチャビュー成分のコーディングに使用するために非ベースビュー深度ビュー成分は利用不可能である。言い換えると、ビデオコーダが非ベーステクスチャビュー成分をコーディングするとき、対応する非ベース深度ビュー成分は利用不可能である。したがって、BVSPを実行するために、深度情報が推定および使用され得る。
[0164]図7は、BVSP予測を実行するための参照ビューからの深度ブロック導出を示す概念図である。図7の例では、ビデオコーダは現在のテクスチャピクチャ70をコーディング中である。現在のテクスチャピクチャ70は合成された参照テクスチャピクチャ72に依存するので、現在のテクスチャピクチャ70は「従属テクスチャピクチャ(dependent texture picture)」と標示される。言い換えると、ビデオコーダは、現在のテクスチャピクチャ70を復号するために、参照テクスチャピクチャ72を合成する必要があり得る。参照テクスチャピクチャ72および現在のテクスチャピクチャ70は、同じアクセスユニット中にあるが、異なるビュー中にある。
[0165]参照テクスチャピクチャ72を合成するために、ビデオコーダは、現在のテクスチャピクチャ70のブロック(すなわち、ビデオユニット)を処理し得る。図7の例では、ビデオコーダは現在のブロック74を処理中である。ビデオコーダが現在のブロック74を処理するとき、ビデオコーダは、現在のブロック74のDVを導出するために、NBDVプロセスを実行し得る。たとえば、図7の例では、ビデオコーダは、現在のビデオブロック74に隣接するブロック78のDV76を識別する。DV76の識別は、図7のステップ1として示される。さらに、図7の例では、ビデオコーダは、DV76に基づいて、現在のブロック74のDV78を決定する。たとえば、DV78は、DV76のコピーであり得る。DV76をコピーすることは、図7のステップ2として示されている。
[0166]ビデオコーダは、現在のブロック74のDV78に基づいて、参照深度ピクチャ82中の参照ビデオブロック80を識別し得る。参照深度ピクチャ82、現在のテクスチャピクチャ70、および参照テクスチャピクチャ72は、それぞれ同じアクセスユニット中にあり得る。参照深度ピクチャ82および参照テクスチャピクチャ72は、同じビュー中にあり得る。ビデオコーダは、現在のブロック74のテクスチャサンプル値および参照深度ブロック80の深度サンプル値に基づいて、参照テクスチャピクチャ72のテクスチャサンプル値を決定し得る。テクスチャサンプル値を決定するプロセスは、後方ワーピングと呼ばれることがある。後方ワーピングは、図7のステップ3として示されている。このようにして、図7は、参照ビューからの深度ブロックの位置がどのように特定され、次いで、BVSP予測用に使用されるかの3つのステップを示す。
[0167]導入されたBVSPモードは特殊なインターコード化モードとして扱われ、BVSPモードの使用を示すフラグが、PUごとに維持されるべきである。ビットストリーム中でフラグをシグナリングするのではなく、マージモードのための新しいマージング候補(BVSPマージング候補)がマージング候補リストに追加され、そのフラグは、復号されたマージ候補インデックスがBVSPマージング候補に対応するかどうかに依存する。BVSPマージング候補は、次のように定義される。
1.参照ピクチャリストごとの参照ピクチャインデックス:−1
2.参照ピクチャリストごとの動きベクトル:改善された視差ベクトル。
[0168]BVSPマージング候補の挿入位置は、空間的隣接ブロックに依存する。
1.5つの空間的隣接ブロックのうちのいずれかがBVSPモードを用いてコーディングされる、すなわち、隣接ブロックの維持されたフラグが1に等しい場合、ビデオコーダは、BVSPマージング候補を、対応する空間的マージング候補として扱い、BVSP候補をマージ候補リストに挿入する。いくつかの例では、ビデオコーダは、BVSPマージング候補をマージ候補リストに一度だけ挿入する。
2.そうでない(5つの空間的隣接ブロックのいずれも、BVSPモードを用いてコーディングされない)場合、ビデオコーダは、時間的マージ候補の直前にBVSPマージング候補をマージ候補リストに挿入し得る。
いくつかの例では、複合双予測マージング候補導出プロセス(combined bi-predictive merging candidate derivation process)中に、ビデオコーダは、BVSPマージング候補を含めるのを避けるために追加の条件を検査すべきである。
[0169]サイズがN×Mによって示されるBVSPコーディングされたPUごとに、ビデオコーダは、K×K(ここにおいて、Kは4に等しくなり得る)に等しいサイズを有するいくつかの下位領域(sub-regions)にPUをさらに区分し得る。下位領域ごとに、ビデオコーダは、別個のDMVを導出し得、各下位領域は、ビュー間参照ピクチャ中の導出されたDMVによって位置を特定される1つのブロックから予測され得る。言い換えれば、BVSPコーディングされたPUのための動き補償ユニットのサイズはK×Kに設定され得る。共通テスト条件では、Kは4に設定される。
[0170]BVSPモードを用いてコーディングされた1つのPU内の下位領域(すなわち、4×4ブロック)ごとに、ビデオコーダは、上記の改善されたDVを用いて参照深度ビュー中の対応する4×4深度ブロックの位置を特定し得る。ビデオコーダは、対応する深度ブロック中の16個の深度ピクセルの最大値を選択し得る。ビデオコーダは、DMVの水平成分に最大値を変換し得、DMVの垂直成分を設定し得、0に設定される。
[0171]図8は、時間的に予測されたビデオブロックの時間的高度残差予測(ARP)に関する現在の提案のための例示的な予測構造を示す概念図である。Part_2Nx2Nに等しいパーティションモードでCUに適用されるARPが、Zhangらの、「CE4:Advanced residual prediction for multiview coding」、ITU−T SG16 WP3およびISO/IEC JTC1/SC29/WG11のJoint Collaborative Team on Video Coding Extension Development、第4回会合、インチョン、韓国、2013年4月20〜26日、文書JCT3V−D0177(MPEG番号m29008)、以下「JCT3V−D0177」において提案されたように、第4回JCT3V会合において採用された。JCT3V−D0177は、以下のリンクからダウンロードされ得る。http://phenix.it−sudparis.eu/jct3v/doc_end_user/current_document.php?id=862。JCT3V−D0177の内容全体が、参照により本明細書に組み込まれる。
[0172]図8に示すように、ビデオコーダは、現在のビュー、たとえば、従属ビューVmの現在のピクチャ102中の現在のビデオブロック100の残差の予測において以下のブロックの呼出しまたは識別を行う。
1.(ビューVm中の)現在のビデオブロック100:Curr
2.参照/ベースビュー(図8中のV0)のビュー間参照ピクチャ108中のビュー間参照ビデオブロック106:Base。ビデオコーダは、現在のビデオブロック100(Curr)のDV104に基づいてビュー間参照ビデオブロック106を導出する。ビデオコーダは、上記で説明したように、NBDVを使用してDV104を決定し得る。
3.現在のビデオブロック100(Curr)と同じビュー(Vm)中の時間参照ピクチャ114中の時間参照ビデオブロック112:CurrTRef。ビデオコーダは、現在のビデオブロック100のTMV110に基づいて時間参照ビデオブロック112を導出する。ビデオコーダは、本明細書で説明する技法のうちのいずれかを使用して、TMV100を決定し得る。
4.参照ビュー、すなわち、ビュー間参照ビデオブロック106(Base)と同じビュー中の時間参照ピクチャ118中の時間参照ビデオブロック116:BaseTRef。ビデオコーダは、現在のビデオブロック100(Curr)のTMV110を使用して参照ビュー中の時間参照ビデオブロック116を導出する。TMV+DVのベクトル120は、現在のビデオブロック100(Curr)に対する時間参照ビデオブロック116(BaseTRef)を識別し得る。
[0173]ビデオエンコーダが、TMV110を使用してビデオコーダが識別する時間参照ビデオブロック112に基づいて現在のビデオブロック100を時間的にインター予測するとき、ビデオエンコーダは、現在のビデオブロック100と時間参照ビデオブロック112との間のピクセルごとの差(pixel-by-pixel differences)を残差ブロックとして決定する。ARPがなければ、ビデオコーダは、残差ブロックを変換し、量子化し、エントロピー符号化することになる。ビデオデコーダは、符号化ビデオビットストリームをエントロピー復号し、逆量子化および変換を実行して残差ブロックを導出し、参照ビデオブロック112の再構成に残差ブロックを適用して現在のビデオブロック100を再構成することになる。
[0174]ARPを使用すると、ビデオコーダは、残差ブロックの値を予測する、すなわち、現在のビデオブロック100(Curr)と時間参照ビデオブロック112(CurrTRef)との間の差を予測する、残差予測子ブロックを決定する。ビデオエンコーダは、したがって、残差ブロックと残差予測子ブロックとの間の差を符号化するだけでよく、現在のビデオブロック100を符号化するために符号化ビデオビットストリーム中に含まれる情報量が低減し得る。図8の時間的ARPの例では、現在のビデオブロック100の残差の予測子は、現在のビデオブロック100(Curr)と時間参照ビデオブロック112(CurrTRef)とに対応し、DV104によって識別される、参照/ベースビュー(V0)中のブロックに基づいて決定される。参照ビュー中のこれらの対応するブロック間の差は、残差、すなわち、現在のビデオブロック100(Curr)と時間参照ビデオブロック112(CurrTRef)との間の差、の良好な予測子であり得る。特に、ビデオコーダは、参照ビュー中のビュー間参照ビデオブロック106(Base)と時間参照ビデオブロック116(BaseTRef)とを識別し、ビュー間参照ビデオブロック106と時間参照ビデオブロック116(BaseTRef−Base)との間の差に基づいて残差予測子ブロックを決定し、ここにおいて、示されたピクセルアレイの各ピクセルに減算演算が適用される。いくつかの例では、ビデオコーダは、重み係数wを残差予測子に適用し得る。そのような例では、現在のブロック、すなわち、参照ブロックを残差予測子ブロックと加算したもの、の最終予測子は、CurrTRef+w*(BaseTRef−Base)として示され得る。
[0175]図9は、現在のビュー(Vm)中の現在のビデオブロック120の時間的ARPのための例示的な双方向予測構造を示す概念図である。上記の説明および図8に単方向予測を示す。ARPを双方向予測の場合に拡大するとき、ビデオコーダは、現在のビデオブロック120のための残差予測子ブロックを識別するために、参照ピクチャリストの一方または両方に上記技法を適用し得る。特に、ビデオコーダは、参照リストのうちの1つが時間的ARPのために使用可能なTMVを含んでいるかどうか決定するために、現在のビデオブロック100のための参照リストの一方または両方を検査し得る。図9によって示される例では、現在のビデオブロック120は、第1の参照ピクチャリスト(RefPicList0)中の第1の時間参照ピクチャ134を指すTMV130、および、第2の参照ピクチャリスト(RefPicList1)中の第2の時間参照ピクチャ136を指すTMV132、に関連付けられる。
[0176]いくつかの例では、ビデオコーダは、それら参照ピクチャリストのうちの1つが時間的ARPのために使用可能なTMVを含むかどうか決定するために検査順序に従って参照ピクチャリストを検査することになり、第1のリストがそのようなTMVを含む場合、検査順序に従って第2のリストを検査する必要はない。いくつかの例では、ビデオコーダは、両方の参照ピクチャリストを検査し、両方のリストがTMVを含む場合、たとえば、現在のビデオブロックの残差に対してTMVを使用して生成される得られた残差予測子の比較に基づいて、どちらのTMVを使用すべきかを決定することになる。特に、ARPに関する現在の提案によれば、現在のブロックが、1つの参照ピクチャリストのための(異なるビュー中の)ビュー間参照ピクチャを使用するとき、残差予測プロセスは無効化される。
[0177]図9に示すように、ビデオコーダは、異なる参照ビュー(V0)中にあるが、現在のピクチャ122と同じアクセスユニット中にあるビュー間参照ピクチャ128中の対応するビュー間参照ビデオブロック126(Base)を識別するために、たとえば、NBDVに従って現在のビデオブロック120のために識別されたDV124を使用し得る。ビデオコーダはまた、両方の参照ピクチャリスト、たとえば、RefPicList0およびRefPicList1中の参照ビューの様々な時間参照ピクチャ中のビュー間参照ビデオブロック126(Base)のための時間参照ブロック(BaseTRef)を識別するために現在のビデオブロック120のためのTMV130および132を使用し得る。図9の例では、ビデオコーダは、現在のビデオブロック120のTMV130および132に基づいて、第1の参照ピクチャリスト、たとえば、RefPicList0中の時間参照ピクチャ142中の時間参照ビデオブロック(BaseTRef)140と、第2の参照ピクチャリスト、たとえば、RefPicList1中の時間参照ピクチャ146中の時間参照ビデオブロック(BaseTRef)144とを識別する。
[0178]参照ビュー中の現在のビデオブロック120のTMV130および132の使用を、図9中の破線矢印によって示す。図9では、参照ビュー中の時間参照ビデオブロック140および144を、TMV130および132に基づくそれらの識別のために動き補償参照ブロック(motion compensated reference blocks)と呼ぶ。ビデオコーダは、時間参照ビデオブロック140とビュー間参照ビデオブロック126との間の差に基づいて、または時間参照ビデオブロック144とビュー間参照ビデオブロック126との間の差に基づいて、現在のビデオブロック120のための残差予測子ブロックを決定し得る。
[0179]デコーダ側における提案された時間的ARPの主要な手順は、次のように(図9を参照しながら)説明され得る。
1.ビデオデコーダが、ターゲット参照ビュー(V0)を指す、たとえば、NBDVを使用して現在の3D−HEVCにおいて指定されているように、DV124を取得する。次いで、同じアクセスユニット内の参照ビューのピクチャ128中で、ビデオデコーダが、DV124により対応するビュー間参照ビデオブロック126(Base)を識別する。
2.ビデオデコーダが、対応するビュー間参照ビデオブロック126についての動き情報を導出するために、現在のビデオブロック120の動き情報、たとえば、TMV130、132を再使用する。ビデオデコーダが、動き補償時間参照ビデオブロック140、144(BaseTRef)を識別し、BaseTRef−Baseを決定することによって残差予測子ブロックを決定するために、現在のビデオブロック120のTMV130、132と、参照ビデオブロック126のための参照ビュー中の導出された参照ピクチャ142、146とに基づいて対応するビュー間参照ビデオブロック126の動き補償を適用し得る。現在のブロックと、対応するブロック(Base)と、動き補償ブロック(BaseTRef)との間の関係を、図8および図9に示す。いくつかの例では、現在のビュー(Vm)の参照ピクチャと同じPOC(ピクチャ順序カウント)値を有する参照ビュー(V0)中の参照ピクチャは、対応するブロックの参照ピクチャとして選択される。
3.ビデオデコーダが、残差予測子ブロックに重み係数wを適用して重み付け残差予測子ブロックを得、予測サンプルに重み付け残差ブロックの値を追加して現在のビデオブロック100を再構成し得る。
[0180]ARPに関する提案では、3つの重み係数、すなわち、0、0.5、および1が使用され得る。現在のCUについて最小レートひずみコスト(minimal rate-distortion cost)をもたらすものが最終重み係数として選択され、対応する重み係数インデックス(それぞれ、重み係数0、1、および0.5に対応する0、1、および2)がCUレベルでビットストリーム中で送信される。1つのCU中のすべてのPU予測が同じ重み係数を共有する。重み係数が0に等しくなると、現在のCUのためにARPが使用されない。
[0181]3D−HEVCのためのARPの態様は、Zhangらの、「3D−CE4:Advanced residual prediction for multiview coding」、ITU−T SG16 WP3およびISO/IEC JTC1/SC29/WG11のJoint Collaborative Team on Video Coding Extension Development、第3回会合、ジュネーブ、スイス、2013年1月17〜23日、文書JCT3V−C0049(MPEG番号m27784)、以下「JCT3V−C0049」において説明される。JCT3V−C0049は、以下のリンクからダウンロードされ得る。http://phenix.int−evry.fr/jct3v/doc_end_user/current_document.php?id=487。JCT3V−C0049の内容全体が、参照により本明細書に組み込まれる。
[0182]JCT3V−C0049では、非ゼロ重み係数(non-zero weighting factors)を用いてコーディングされた異なるPUの参照ピクチャは、PUごとに(または現在のビデオブロックごとに)異なり(different from PU to PU)得る。したがって、参照ビューからの異なるピクチャは、参照ビュー(Base)中の対応するビュー間参照ビデオブロック、たとえば、図8および図9中のビュー間参照ビデオブロック106および126の動き補償ブロック(BaseTRef)、たとえば、図8および図9中の時間参照ビデオブロック116、140および144を生成するためにアクセスされる必要があり得る。
[0183]動きベクトルスケーリングを介した参照ピクチャ選択を通したARPのさらなる簡略化がJCT3V−D0177において提案された。たとえば、重み係数が0に等しくないときに残差生成プロセスの動き補償を実行する前に、ビデオコーダが、固定ピクチャ(a fixed picture)に向かう現在のPUの動きベクトルをスケーリングすることが提案された。JCT3V−D0177では、固定ピクチャは、それが同じビューからのものである場合、各参照ピクチャリストの第1の参照ピクチャとして定義される。復号された動きベクトルが固定ピクチャを指さないとき、それは、最初に、ビデオコーダによってスケーリングされ、次いで、現在のビデオブロックのためのCurrTRefとBaseTRefとを識別するためにビデオコーダによって使用される。ARPのために使用されるそのような参照ピクチャは、ターゲットARP参照ピクチャと呼ばれることがある。それぞれ、RefPicList0とRefPicList1とに対応する2つのターゲットARP参照ピクチャがあり得、それぞれ、L0ターゲットARP参照ピクチャおよびL1ターゲットARP参照ピクチャと示され得る。
[0184]JCT3V−C0049によれば、ビデオコーダは、対応するブロック(Base)とそれの予測ブロック(BaseTRef)との補間プロセス中にバイリニア・フィルタ(a bi-linear filter)を適用するが、現在のビデオブロック(Curr)、たとえば、PUと、現在のビデオブロックの予測ブロック(CurrTRef)との補間プロセスのために従来の8/4タップフィルタ(a conventional 8/4-tap filter)を適用する。JCT3V−D0177において、ARPが適用されるときにブロックがベースビュー中にあるのか、または非ベースビュー中にあるのかにかかわらず、ビデオコーダは常にそのような補間プロセスのためのバイリニア・フィルタを採用することが提案された。
[0185]さらに、ARPに関する既存の提案によれば、ARPのための参照ビューは、NBDVプロセスから戻されたビュー順序インデックスによって識別される。上記で説明したように、ビデオコーダは、対応するビュー間参照ビデオブロック(Base)、たとえば、図8および図9中のビュー間参照ビデオブロック106および126を識別するために使用されるDV、たとえば、DV104または124を決定するためのNBDVプロセスを使用し得る。ARPに関する既存の提案によれば、1つの参照ピクチャリスト中の1つのビデオブロック(PU)の参照ピクチャが、NBDVプロセスから戻されたビュー順序インデックスによって識別されるARPのためのターゲット参照ビューとは異なるビューからのものであるとき、ARPは、この参照ピクチャリストに対して無効化される。
[0186]3D−HEVCにおけるARPに関する既存の提案に関連する問題があり得る。たとえば、既存の提案によれば、現在のビデオブロックの現在の動きベクトルが同じビュー中の参照ピクチャを参照する(refers to)とき、ARPは、時間的予測から生成された残差を予測するだけである。したがって、現在のビデオブロックの現在の動きベクトルがビュー間参照ピクチャを参照するとき、ARPは適用可能でないが、ARPに関するシンタックス要素が依然として送信される。
[0187]別の例として、たとえば、NBDVプロセスに従って導出された、導出されたDVは、一般にレートひずみ最適化(RDO)によって選定される明示的DMVと比較してあまり正確でないことがある。さらに、復号プロセスとして、ビュー間予測を含む動き予測はDV生成の後に発生し、ARPは動き予測の後に発生する。したがって、ARPがビデオコーダによって実行されるとき、現在のARPにおいて考慮されない異なるブロックを識別するために使用され得るより正確なTMVまたはDMVが利用可能である。とはいえ、図8および図9に関して上記で説明したように、時間的ARPに関する既存の提案は、対応するビュー間参照ビデオブロックを識別するためにNBDVを通して導出されたDVを使用する。
[0188]本開示は、上記で説明した問題を含む、ARPに関する既存の提案に関連する問題に対処し得、それによって、ARPのコーディング効率を改善し得る技法を提供する。たとえば、ARPを使用して現在のビデオブロックをコーディングするために本開示の技法を実装するビデオコーダ、たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、現在のビデオブロックの現在のビューから参照ビューまでのDMVを識別し、DMVの識別に基づいて現在のビデオブロックのための残差予測子ブロックを決定し得る。 いくつかの例では、DMVは、現在のビデオブロックのビュー間予測のために使用されるDMVであり、ビデオコーダは、現在のビデオブロックを符号化するためのビュー間ARPを実行し得る。他の例では、DMVは、現在のビデオブロックと同じビュー中の時間参照ビデオブロックのDMVである。そのような例では、DMVは、現在のビデオブロックのためのNBDVによって導出されたDVの代わりに、現在のビデオブロックのための時間的ARPにおいて使用され得る。
[0189]図10は、本開示で説明する技法による、ビュー間予測ビデオブロックのビュー間ARPのための例示的な予測構造を示す概念図である。図10に示す例示的な技法によれば、ビデオコーダ、たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、ビュー間予測される現在のブロックの残差を予測するために、異なるアクセスユニット中で計算されたビュー間残差を使用し得る。現在のブロックの動きベクトルがDMVであるときはARPが実行されず、現在のビデオブロックの動きベクトルがTMVであるときにのみARPが実行されるARPに関する提案とは対照的に、図10の例示的な技法は、ARPを実行するためにDMVを使用する。
[0190]特に、図10の例示的な技法は、現在のピクチャ152中の現在のビデオブロック150(Curr)の動きベクトルがDMV154であり、参照ビュー(V0)中のビュー間参照ピクチャ158中のビュー間参照ビデオブロック156(Base)が少なくとも1つのTMV160を含んでいるときに、ビデオコーダ、たとえば、ビデオエンコーダ20またはビデオデコーダ30によって実行され得る。いくつかの例では、DMV154は、現在のビデオブロック150の動き情報予測のためのIDMVCとして働くためにDMVに変換されたDVであり得る。
[0191]ビデオコーダは、現在のビデオブロック150のためのDMV154を使用して、ビュー間参照ピクチャ158中のビュー間参照ビデオブロック156(Base)を識別する。ビデオコーダは、参照ビュー(V0)中の時間参照ピクチャ164中の時間参照ビデオブロック162(BaseTRef)を識別するために、TMV160と、DMVとともにビュー間参照ビデオブロック156の関連する参照ピクチャ、たとえば、参照ビュー(V0)中の時間参照ピクチャ164とを使用する。TMV160とDMV154とに基づく時間参照ビデオブロック162(BaseTRef)の識別は、破線ベクトル170(TMV+DMV)によって表される。ビデオコーダはまた、現在のビュー(Vm)中の時間参照ピクチャ168中の時間参照ブロック166(CurrTRef)を識別するためにTMV160を使用する。参照ビュー(V0)中の時間参照ビデオブロック162(BaseTRef)と現在のビュー(Vm)中の時間参照ビデオブロック166(CurrTRef)とは、同じアクセスユニット、すなわち、参照ビュー(V0)中の時間参照ピクチャ164中にあり得、現在のビュー(Vm)中の時間参照ピクチャ168は、同じアクセスユニット中にあり得る。
[0192]ビデオコーダ、たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、次いで、これらの2つの後のブロック間のピクセルごとの差(pixel-by-pixel difference)、すなわち、現在のビュー中の時間参照ビデオブロック166と参照ビュー中の時間参照ビデオブロック164との間の差、またはCurrTRef−BaseTRefに基づいて、現在のビデオブロック150からの異なるアクセスユニット中のビュー間残差予測子ブロックを計算し得る。ビュー間残差予測子として示される差分信号(difference signal)は、現在のビデオブロック150の残差を予測するために使用され得る。現在のビデオブロック150の予測信号(prediction signal)は、ビュー間予測子、すなわち、ビュー間参照ビデオブロック156(Base)と、現在のビュー中の時間参照ビデオブロック166と参照ビュー中の時間参照ビデオブロック164との間の差に基づいて決定された異なるアクセスユニット中の予測ビュー間残差(predicted inter-view residual)と、の和であり得る。いくつかの例では、異なるアクセスユニット中の予測ビュー間残差に重み係数wが適用される。そのような例では、現在のビデオブロック150の予測信号は、Base+w*(CurrTRef−BaseTRef)であり得る。
[0193]いくつかの例では、ビデオコーダは、たとえば、上記で説明したように時間的ARPのためのターゲット参照ピクチャの決定と同様に、ビュー間ARPのためのターゲットアクセスユニット中のターゲット参照ピクチャを決定し得る。いくつかの例では、JCT3V−D0177に関して上記で説明したように、各参照ピクチャリストのためのターゲット参照ピクチャは、参照ピクチャリスト中の第1の参照ピクチャである。他の例では、一方または両方の参照ピクチャリストのためのターゲット参照ピクチャ、たとえば、ターゲットPOCが、たとえば、PU、CU、スライス、ピクチャ、または他のものごとにビデオエンコーダ20からビデオデコーダ30にシグナリングされ得る。他の例では、各参照ピクチャリストのためのターゲット参照ピクチャは、現在のブロックと比較して最も小さいPOC差を有し、より小さい参照ピクチャインデックスを有する参照ピクチャリスト中の時間参照ピクチャである。他の例では、2つの参照ピクチャリストのためのターゲット参照ピクチャは同じものである。
[0194]TMV160によって示される参照ビュー中の時間参照ビデオブロックを含んでいるピクチャが、ターゲットARP参照ピクチャとは異なるアクセスユニット(時間インスタンス)中にある場合、ビデオコーダは、ビュー間ARPのための参照ビュー中の時間参照ビデオブロック162(BaseTRef)を識別するために、ターゲット参照ピクチャ、たとえば、ターゲット参照ピクチャ164にTMV160をスケーリングし得る。そのような例では、ビデオコーダは、ターゲットARP参照ピクチャを含んでいるアクセスユニット中の時間参照ビデオブロック162の位置を特定する。ビデオコーダは、POCスケーリングによってTMV160をスケーリングし得る。さらに、スケーリングされたTMVは、ターゲットARP参照ピクチャ中にある現在のビュー中の時間参照ビデオブロック(CurrTRef)166を識別するために使用される。
[0195]いくつかの例では、ビデオコーダは、LX(Xは0または1である)ターゲット参照ピクチャにTMV160をスケーリングし、ここで、LXは、TMVを含むPUのRefPicListXに対応する。いくつかの例では、ビデオコーダは、TMVをRefPicList0またはRefPicList1のいずれかまたは両方から、それぞれ、L0またはL1ターゲット参照ピクチャにスケーリングし得る。いくつかの例では、ビデオコーダは、LXターゲット参照ピクチャにTMV160をスケーリングし、ここにおいて、Xは、現在のビデオブロック150、たとえば、現在のPUのDMV154がRefPicListXに対応するという条件を満たす。
[0196]同様に、いくつかの例では、ビデオコーダは、ターゲット参照ビュー中の参照ピクチャ158中のビュー間参照ビデオブロック156を識別するより前に、ARPのためのターゲット参照ビューにDMV154をスケーリングする。ビデオコーダは、ビュー順序差スケーリング(view order difference scaling)によってDMV154をスケーリングし得る。ターゲット参照ビューは、ビデオエンコーダ20およびビデオデコーダ30によってあらかじめ決定されているか、または知られていることがあり、あるいは、たとえば、PU、CU、スライス、ピクチャ、または他のものごとにビデオエンコーダ20からビデオデコーダ30にシグナリングされ得る。
[0197]ビュー間ARPのいくつかの例では、ビデオコーダ、たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、同じ予測構造と、図10に示す識別された参照ビデオブロック156、164および168とを使用して現在のブロック150のための予測信号を導出し得るが、異なるアクセスユニット中の参照ブロック162および166ではなく、参照ビュー中の参照ブロック156と参照ブロック162との間の差に基づいて残差予測子ブロックを決定し得る。そのような例では、ビデオコーダは、他のサンプルアレイ、たとえば、参照ビュー中の参照ブロック156と参照ブロック162との間の差、に重み係数を適用し、それに応じて、CurrTRef+w*(Base−BaseTRef)のように現在のビデオブロック150のための予測信号を導出し得る。ビュー間ARPのいくつかの例では、ビデオコーダは、参照ビデオブロック156、162および166が分数ピクセル位置(fractional pixel positions)と整合する(aligned)場合にそれらを導出するために、バイリニア・フィルタを含む様々な補間フィルタを使用し得る。
[0198]図10に、現在のビューと参照ビューとの中の時間参照ビデオブロックが、ビュー間参照ビデオブロックのTMVと、関連する参照ピクチャとを使用して識別されるビュー間ARP例を示すが、他の例では、現在のビューと参照ビューとの中の時間参照ビデオブロックを識別するために他のTMVと、関連する参照ピクチャとが使用され得る。たとえば、現在のビデオブロックのDMVが、現在のビデオブロックの第1の参照ピクチャリスト(たとえば、RefPicList0またはRefPicList1)からのものである場合、ビデオコーダは、現在のビデオブロックの第2の参照ピクチャリスト(たとえば、RefPicList0またはRefPicList1の他方)からのTMVと、関連する参照ピクチャとを使用し得る。そのような例では、ビデオコーダは、TMVに関連する参照ピクチャ中の現在のビュー中の時間参照ビデオブロックを識別するか、または現在のビュー中の時間参照ビデオブロックを識別するために、ARPのためのターゲットアクセスユニットとターゲット参照ピクチャとにTMVをスケーリングし得る。そのような例では、ビデオコーダは、現在のビュー中の時間参照ビデオブロックが位置していた参照ピクチャと同じアクセスユニット中にある参照ピクチャ中の参照ビュー中の時間参照ビデオブロックを識別し得る。他の例では、ビュー間参照ビデオブロックのTMVまたは現在のビデオブロックの他の参照ピクチャリストのTMVではなく、ビデオコーダは、ARPのための現在のビューと参照ビューとの中の時間参照ビデオブロックを識別するために、現在のビデオブロックの空間的または時間的隣接ビデオブロックの動き情報から導出されたTMVと、関連する参照ピクチャとを同様に使用し得る。
[0199]図10に、本開示による、ビュー間ARPの一例を示す。上記で説明したように、時間的ARPに関する既存の提案によれば、たとえば、NBDVによって導出された現在のビデオブロックのDVは、参照ビュー中のビュー間参照ビデオブロックを識別するために使用される。本開示の技法によれば、時間的ARPのための参照ビュー中で計算される時間残差予測子の精度は、現在のビュー(CurrTRef)が少なくとも1つのDMVを含んでいる場合、DVをその現在のビュー中の時間参照ブロックのDMVと置き換えることによって増加され得る。
[0200]図11は、本開示で説明する技法による、現在のビュー(CurrTRef)中の時間参照ブロックのDMV190を使用して現在のピクチャ182中の時間的に予測された現在のビデオブロック180の時間的ARPのための例示的な予測構造を示す概念図である。図11の例によれば、ビデオコーダ、たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、時間参照ピクチャ188中の時間参照ビデオブロック186を識別するTMV184を使用して、現在のビデオブロック180を時間的に予測する。ビデオコーダは、時間参照ビデオブロック186をビュー間予測するために使用される少なくとも1つのDMV、たとえば、DMV190を時間参照ビデオブロック186が含んでいるかどうかを決定する。いくつかの例では、DMV190は、時間参照ビデオブロック186の動き情報予測のために使用されるIDMVCであり得る。
[0201]ビデオコーダは、参照ビュー(V0)中の参照ピクチャ198内のビュー間参照ビデオブロック196(Base)または参照ビュー(V0)中の時間参照ピクチャ194中の時間参照ビデオブロック194(BaseTRef)のうちのいずれか1つまたはその両方の識別のために現在のビデオブロック180のDVの代わりにDMV190を使用し得る。TMV184とDMV190とに基づく時間参照ビデオブロック194の識別は、TMV+DMVと標示されたベクトル200によって表されている。いくつかの例では、ビデオコーダが、時間的ARPのためにNBDVからのDVを置き換えるためにDMVを使用するとき、ビデオコーダはまた、NBDVプロセスから戻されたビュー順序インデックスを、選択されたDMVに関連するビュー順序インデックスと置き換え得る。さらに、いくつかの例では、DMVがNBDVからのDVを置き換えるためにBVSPモードを使用して導出された場合、ビデオコーダは、現在のビデオブロック180の時間的ARPのために時間参照ビデオブロック186に関連するDMVを選択しないことがある。ビデオコーダは、図8中のブロック106、112および116に関して上記で説明したように、識別された参照ビデオブロック186、192および196を使用して現在のビデオブロック180のための時間残差予測子ブロックを決定し得る。
[0202]いくつかの例では、現在のビデオブロック180の復号されたTMV184が、ターゲットARP参照ピクチャとは異なるアクセスユニット(時間インスタンス)中の参照ピクチャを指す場合、ビデオコーダは、ターゲットARP参照ピクチャ188にTMV184をスケーリングし、たとえば、POCスケーリングを使用して、スケーリングされたTMV184によってターゲットARP参照ピクチャ中の時間参照ビデオブロック186(CurrTRef)の位置を特定し得る。そのような例では、ビデオコーダは、スケーリングされたTMV184によって識別される時間参照ビデオブロック186(CurrTRef)中のDMV190を導出し得る。いくつかの例では、ビデオコーダが、ターゲットARPピクチャ中のアクセスユニットと同じアクセスユニットに属するピクチャ188中の時間参照ビデオブロック186(CurrTRef)を識別するためにTMV184をスケーリングするとき、スケーリングなしにTMV184によって識別される別の時間参照ビデオブロック、すなわち、CurrTempRefが識別され得る。そのような例では、ビデオコーダは、利用可能な場合、現在のビデオブロック180の時間的ARPのDVを置き換えるためにこの時間参照ビデオブロック(CurrTempRef)からのDMVを使用し得る。いくつかの例では、ビデオコーダは、時間参照ビデオブロック186(CurrTRef)に関連するDMVがないとき、CurrTempRefを単に識別し、使用する。いくつかの例では、NBDVからのDVを置き換えるためにコード化ブロックの他のDMVが使用され得る。
[0203]図12は、本開示で説明する技法による、ビデオブロック中のまたはそれに隣接するTMVまたはDMVの識別のための例示的な技法を示す概念図である。図10および図11に関して上記で説明したように、ビデオコーダ、たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、本開示で説明する技法に従ってビュー間ARPおよび時間的ARPを実施するためにTMVおよびDMVを識別する。いくつかの例では、ビデオコーダは、現在のビデオブロック、たとえば、現在のPUと同じサイズの幅×高さをもつ参照ピクチャ内の領域であり得るビュー間参照ビデオブロックまたは時間参照ビデオブロック、あるいは現在のビデオブロック中のまたはそれに隣接するTMVおよびDMVを識別する。
[0204]図12に、幅×高さのブロック210を示す。ブロック210は、現在のビデオブロック、あるいは現在のビデオブロックと同じサイズをもつ参照ピクチャ内の領域であり得るビュー間参照ビデオブロックまたは時間参照ビデオブロックであり得る。図12に、ブロック210の中心位置に隣接するかまたはそれを含むブロック212と、ブロック210の右下位置に隣接するかまたはそれを含むブロック214とをも示す。
[0205]いくつかの例では、時間的ARPまたはビュー間ARPの場合、ビデオコーダは、ブロック210内のブロック、たとえば、ブロック212の中心位置を含んでいるPUまたは他のブロックに関連する動きベクトル、たとえば、TMVまたはDMVと、関連する参照インデックスとを考慮し、たとえば、それらのみを考慮する。いくつかの例では、ビデオコーダは、ブロック210の((幅,高さ)の左上コーナーピクセルに対する配置をもつ(with coordination))右下ピクセルと((幅/2,高さ/2)の左上隅に対する配置をもつ)中心ピクセルとを含んでいる2つのブロックの(動きベクトルと参照インデックスとを含む)動き情報を考慮し、たとえば、単に考慮する。図12を参照すると、ブロック214および212は、それぞれ、ブロック210の右下ピクセルと中心ピクセルとを含んでいるブロックの例であり得る。ブロック212および214は、N×Nであり得、これは、各参照ピクチャリストに対応する最高1つの動きベクトルを含むことができる最大ブロックグラニュラリティ(the largest block granularity)であり得、たとえば、N×Nは4×4であり得る。ブロック212および214は、任意の順序でARPのDMVまたはTMVについて検査され得る。
[0206]いくつかの例では、現在のビデオブロック、たとえば、現在のPUが(x,y)の座標を有し、参照ビデオブロックを識別するために使用されるベクトル(v[0],v[1])が動きベクトル(TMVまたはDMV)からのものであると仮定すると、ビデオコーダは、DMVを、それぞれiが0または1に等しい場合、v[i]=(mv[i]+2)>>2に、またはv[i]=mv[i]>>2に変換し得る。そのような例では、ビデオコーダは、ブロック212および214を、(x+v[0]+width/2,y+v[1]+height/2)の配置をもつピクセルをカバーするブロック、たとえば、4×4ブロック、および配置(x+v[0]+width,y+v[1]+height)をもつピクセルをカバーするブロック、としてそれぞれ識別し得る。いくつかの例では、ビデオコーダは、(−1,−1)でシフトした配置によって中心ブロック212と右下ブロック214との一方または両方を識別し得、これは、それぞれ(x+v[0]+width/2−1,y+v[1]+height/2−1)および(x+v[0]+width−1,y+v[1]+height−1)に対応する。
[0207]いくつかの例では、ビデオコーダは、検査順序に従って利用可能なTMVまたはDMVについてブロック212および214を検査し得る。いくつかの例では、ビデオコーダは、最初に中心ブロック212を検査し、そのような動きベクトルが利用可能な場合、ARPのために中心ブロックに関連するDMVまたはTMVを使用し得る。そのような例では、そのような動きベクトルが中心ブロック212から利用可能でなかった場合、ビデオコーダは、ARPのTMVまたはDMVについて右下ブロック214を検査し得る。
[0208]いくつかの例では、ビデオコーダは、ARPのための適切な動きベクトルについてブロック212、214のための参照ピクチャリストを検査順序で検査し得る。たとえば、ビデオコーダは、RefPicList0を検査し、そのような動きベクトルが利用可能な場合、RefPicList0に関連するDMVまたはTMVを使用し得る。そのような例では、そのような動きベクトルがRefPicList0から利用可能でなかった場合、ビデオコーダは、ARPのTMVまたはDMVについてRefPicList1を検査し得る。
[0209]いくつかの例では、ビデオコーダは、ブロックの中心と4つのコーナー位置のうちの1つまたは複数とを含んでいるPUに関連する動きベクトルを考慮し、たとえば、単に考慮し得る。ビデオコーダは、優先順位に基づいた順序でPUを考慮し得、動きベクトルが発見されると、他のPUを考慮し得ない。これらの異なる位置の優先順位は、一例では、ブロックの中心、左上、右上、左下および右下と定義され得る。
[0210]いくつかの例では、ビデオコーダは、ブロックに関連するすべての動き情報を考慮するように構成され得る。いくつかの例では、ARPのTMVまたはDMVがブロック210内で発見されると、ビデオコーダは、追加の動きベクトルを検査し得ない。動きベクトルについてブロック210内のPUを検査するための優先順位は、たとえば、ラスタ走査順序(raster scan order)またはスパイラル走査(spiral scan)であり得る。動きベクトルについて、ブロック、たとえば、4×4ブロックを走査するためのスパイラル走査順序の例について、図13A〜図13Dに示す。
[0211]いくつかの例では、ARPのTMVについてブロック210を検査するとき、ビデオコーダは、ターゲットARP参照ピクチャ同じアクセスユニット中の参照ピクチャを指すTMVを単に考慮し得る。いくつかの例では、ARPのDMVについて参照ブロック210を検査するとき、ビデオコーダは、現在のビデオブロックのためのDMVまたはDVによって示されたビューと同じビュー中のビュー間参照ピクチャを指すDMVを単に考慮し得る。いくつかの例では、ビデオコーダは、最初に、PUに関連するブロックにブロック210を拡大し、ARPのTMVまたはDMVになるべき拡大ブロック内のTMVまたはDMVを探索する(looks for)。いくつかの例では、ブロック210中でTMVまたはDMVが発見されない場合、ビデオコーダは、ゼロ動きベクトル(a zero motion vector)を使用してARPを実行するか、またはARPを実行しない。いくつかの例では、ビデオコーダが、現在のビューと参照ビューとの中の2つの時間参照ビデオブロックを識別するためにゼロ動きベクトルを使用するとき、ビデオコーダは、RefPicListXのためにターゲット参照ピクチャを使用し得、ここにおいて、Xは、0または1であり得、ビュー間予測のためにどのリストが呼び出されたか、たとえば、どのリストがDMVを含んでいたかを示す。
[0212]たとえば、図12に関して上記で説明したように、ビデオコーダは、動き情報の最高2つのセットのみを含んでいる所与のブロック、たとえば、ブロック210内の4×4ブロック中のTMVまたはDMVを識別し得る。動き情報の1つのセットが、所与のブロックのための第1の参照ピクチャリスト、たとえば、参照ピクチャリスト0(RefPicList0)に対応し、他方が、所与のブロックのための第2の参照ピクチャリスト、たとえば、参照ピクチャリスト1(RefPicList1)に対応する。動き情報の各セットは、動きベクトルと参照インデックスとを含む。
[0213]いくつかの例では、ビデオコーダは、現在のビデオブロックのARPのTMVまたはDMVを識別するためのRefPicList0に対応する動き情報を単に考慮する。他の例では、ビデオコーダは、現在のビデオブロックのARPのTMVまたはDMVを識別するためのRefPicList1に対応する動き情報を単に考慮する。他の例では、ビデオコーダは、最初に、RefPicListXに対応する動き情報を考慮する。RefPicListXに対応する動き情報が、ARPの好適なTMVまたはDMVを含まない場合、ビデオコーダは、(Yが1−Xに等しい)RefPicListYに対応する動き情報を考慮する。
[0214]いくつかの例では、Xは0に等しくなる。いくつかの例では、Xは1に等しくなる。いくつかの例では、Xは、Zに等しくなり、ここにおいて、Zは、現在のビデオブロックの動きベクトル(TMVまたはDMV)が含まれていた参照ピクチャリストに対応する。たとえば、現在のビデオブロック、たとえば、現在のPUに属する動きベクトルがRefPicList0に対応する場合、Zは0になる。現在のビデオブロック、たとえば、現在のPUに属する動きベクトルがRefPicList1に対応する場合、Zは1になる。いくつかの例では、ビデオコーダは、RefPicListZに対応する動き情報を単に考慮する。
[0215]現在のビデオブロックのDVを置き換えることによって時間的ARPの精度、たとえば、参照ビュー中で計算される時間残差の精度、を改善するための別の例示的な技法は、たとえば、NBDVによって導出されたDVを、現在のブロックの時間参照ブロック(CurrTRef)のコロケート深度ブロックを通して導出されたDVと置き換えることを含む。ビデオコーダ、たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、図7に関して上記で説明したように、BVSPのための現在のビデオブロックのDVを導出するために使用される技法と同様の技法またはそれと同じ技法を使用して現在のブロックの時間参照ブロック(CurrTRef)のコロケート深度ブロックを通してDVを導出し得る。
[0216]ビデオコーダは、ARPのために使用される参照ビューで中の参照ブロックのうちのいずれか1つまたはその両方の導出のために、たとえば、NBDVによって導出された現在のブロックのDVの代わりに、現在のブロックの時間参照ブロック(CurrTRef)のコロケート深度ブロックを通して導出されたDVを使用し得る。たとえば、ビデオコーダは、参照ビュー中の現在のブロックのビュー間参照ブロック(Base)または参照ビュー中の時間参照ブロック(BaseTRef)の一方または両方を識別するために、現在のブロックの時間参照ブロック(CurrTRef)のコロケート深度ブロックを通して導出されたDVを使用し得る。ビデオコーダは、現在のブロックの時間参照ブロック(CurrTRef)のコロケート深度ブロック(co-located depth block)を通して導出されたDVに現在のブロックのTMVを追加することによって、参照ビュー中の時間参照ブロック(BaseTRef)を識別し得る。
[0217]上記で説明したように、いくつかの例では、現在のブロックの復号されたTMVが、ターゲットARP参照ピクチャとは異なるアクセスユニット(時間インスタンス)中の参照ピクチャを指す場合、ビデオコーダは、ターゲットARP参照ピクチャにTMVをスケーリングし、スケーリングされたTMVによってCurrTRefの位置を特定し得る。そのような例では、ビデオコーダは、スケーリングされたTMVによって識別される現在のブロックの時間参照ブロック(CurrTRef)のコロケート深度ブロックからDVを導出する。さらに、上記で説明したように、いくつかの例では、TMVが、ターゲットARPピクチャのアクセスユニットと同じアクセスユニットに属するピクチャ中のCurrTRefを識別するためにスケーリングされるとき、ビデオコーダは、スケーリングなしにTMVによって識別される別の時間参照ブロックを識別し得、すなわち、CurrTempRefが識別され得、利用可能な場合、CurrTempRefのコロケート深度ブロックから導出されたDVは、おそらく、DVを置き換えるために使用される。いくつかの例では、ビデオコーダは、現在のブロックの時間参照ブロック(CurrTRef)のコロケート深度ブロックを通して導出することができないとき、CurrTempRefを識別し、使用するだけでよい。
[0218]ビデオコーダ、たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、様々な方法のいずれかで現在のブロックの時間参照ブロック(CurrTRef)のコロケート深度ブロックからDVを導出し得る。いくつかの例では、ビデオコーダは、直接コロケート深度ブロック内のただ1つのサンプルを使用し、関連する深度値を時間的ARPのためのDVに変換する。いくつかの例では、時間的ARPのためのDVを導出するために使用されるコロケート深度ブロックの単一のサンプルは、W×Hのサイズをもつ1つの深度ブロックの左上のサンプルに対して、たとえば(W/2,H/2)にあるコロケート深度ブロックの中心に位置するピクセルである。
[0219]いくつかの例では、ビデオコーダは、たとえば、数学関数を介して1つの代表深度値を決定するためにコロケート深度ブロック内のいくつかの選択的なサンプルを使用する。一例では、ビデオコーダは、4つのコーナー深度サンプルを選択する。別の例では、ビデオコーダは、深度ブロックの隣接深度サンプル(neighboring depth samples)に基づいてコロケート深度ブロック内の深度サンプルを選択する。たとえば、隣接深度サンプルが水平エッジ(a horizontal edge)を示すとき、ビデオコーダは、第1行の2つのコーナーピクセルのみを選択し得る。いくつかの例では、コロケート深度ブロック内のすべての深度サンプルは、数学関数を介して1つの代表深度値(representative depth value)を決定するために使用され得る。いくつかの例では、ビデオコーダは、たとえば、選択された深度値の最大値、平均値、または中央値を決定すること、あるいは選択された深度値に何らかの他の関数を適用することによって、コロケート深度ブロックからの選択された(またはすべての)深度値に基づいて代表深度値を決定し得る。
[0220]いくつかの例では、関連する深度ビューとは無関係なテクスチャビューの復号が必要ないとき、ビデオコーダは、現在のブロックの時間参照ブロック(CurrTRef)のコロケート深度ブロックを通して導出されるDVを伴う上記で説明した時間的ARP技法を適用し得る。関連する深度ビューとは無関係なテクスチャビューの復号が必要なとき、ビデオコーダは、図10および図11に関して説明したARP技術など、本明細書で説明する他のARP技法を適用し得る。
[0221]時間的ARPとビュー間ARPの両方が使用可能であるとき、ARPのための重み係数シグナリング条件(weighting factor signaling condition)は、すべての参照ピクチャがビュー間参照ピクチャであるかどうかを検査することから、現在のピクチャが、ランダムアクセスピクチャ(15〜22までのNALユニットタイプをもつIRAP、すなわち、BLA_W_LP、BLA_W_RADL、BLA_N_LP、IDR_W_RADL、IDR_N_LP、またはCRA_NUTを含めて)であるかどうかを単に検査することに変更され得る。したがって、いくつかの例では、現在のCUがIRAPピクチャに属しないインターコード化CU(an inter-coded CU)である場合、ビデオエンコーダ、たとえば、ビデオエンコーダ20は、重み係数をシグナリングする。そのような例では、ピクチャがランダムアクセスピクチャであるとき、ビデオエンコーダは、重み係数を決して送信しない。他の例では、(ビュー間参照ピクチャでしかあり得ない)それの参照ピクチャのうちの少なくとも1つがそれの参照ピクチャリストのいずれかの中にビュー間参照ピクチャを有する場合、ビデオエンコーダ20はさらに、重み係数がIRAPピクチャに属するインターコード化CUのためのものであることをシグナリングする。そのような例では、ビデオコーダは、アクセスユニット内のピクチャのためのビュー間残差予測(inter-view residual prediction)のARPを実行し得る。
[0222]現在のCUがIRAPピクチャに属しないインターコード化CUである場合にビデオエンコーダ、たとえば、ビデオエンコーダ20が重み係数をシグナリングする例では、コーディングユニット(coding_unit)のシンタックス表は、以下に強調するように変更される。3D−HEVCテストモデル4に対する追加は、下線付きであり、削除は、取り消し線テキストを用いて示されている。
[0223]さらに、変数TempRefPicInListsFlagと、TempRefPicInListsFlagの関係する導出プロセスとが以下に示すように除去される。
H.8.3.7 マージモードでのTMVPのための代替ターゲット参照インデックスのための導出プロセス
[0224]時間的ARPに関する既存の提案は、NBDVが現在のビデオブロックの利用可能なDVを戻さないときARPを使用不能にする。しかしながら、上記で説明したように、本開示は、NBDVによって導出されたDVに依拠しないARPのための技法を提供する。したがって、本開示によるいくつかの例では、NBDVが利用可能なDVを戻さないときに常にARPを使用不能にするのではなく、ビデオコーダは、NBDVが利用可能なDVを戻さない少なくともいくつかの状況においてARPを使用可能にし得る。たとえば、ビデオコーダ、たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、時間参照ビデオブロック(CurrTRef)が少なくとも1つのDMVをカバーする場合に時間的ARPを使用可能にし得る。別の例として、時間参照ビデオブロック(CurrTRef)が少なくとも1つのDMVをカバーし、対応するブロックがBVSPモードを用いてコーディングされていない場合、ビデオコーダは、時間的ARPを使用可能にし得る。そのような例では、ビデオコーダは、たとえば、図11に関して上記で説明したように、DVを置き換えるためにDMVを使用して時間的ARPを適用し得る。別の例として、現在の参照ピクチャがビュー間参照ピクチャである場合、ビデオコーダは、たとえば、図10に関して上記で説明したように、ビュー間ARPを使用可能にし得る。1つまたは複数の制約がビデオデコーダに与えられ得、したがって、NBDVが利用可能なDVを戻さず、上記の条件のうちの1つまたは複数が真でないとき、ARPのための重み係数wが0に設定される。
[0225]図14は、本開示で説明する技法を実装し得る例示的なビデオエンコーダ20を示すブロック図である。ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディング(Intra coding)は、所与のビデオフレームまたはピクチャ内のビデオの空間冗長性を低減または除去するために空間的予測に依拠する。インターコーディング(Inter−coding)は、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオの冗長性を低減または除去するために時間的予測またはビュー間予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベースの圧縮モードのいずれかを指すことがある。単方向予測(Pモード)または双予測(Bモード)などのインターモードは、いくつかの時間ベースの圧縮モードのいずれかを含み得る。
[0226]図14の例では、ビデオエンコーダ20は、区分ユニット235と、予測処理ユニット241と、参照ピクチャメモリ264と、加算器250と、変換処理ユニット252と、量子化処理ユニット254と、エントロピー符号化ユニット256とを含む。予測処理ユニット241は、動き推定ユニット242と、動き補償ユニット244と、高度残差予測(ARP)ユニット254と、イントラ予測処理ユニット246とを含む。ビデオブロック再構成のために、ビデオエンコーダ20はまた、逆量子化処理ユニット258と、逆変換処理ユニット260と、加算器262とを含む。再構成されたビデオからブロッキネスアーティファクト(blockiness artifacts)を除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ(図14に図示せず)も含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器262の出力をフィルタ処理することになる。デブロッキングフィルタに加えて追加的なループフィルタ(インループまたはポストループ)が使用され得る。
[0227]様々な例では、ビデオエンコーダ20のユニットは、本開示の技法を実行する役割を担い得る。また、一部の例では、本開示の技術は、ビデオエンコーダ20の複数のユニットのうちの1つまたは複数の中で分割され得る。たとえば、ARPユニット245は、単独で、または動き推定ユニット242および動き補償ユニット244などのビデオエンコーダの他のユニットと組み合わせて本開示の技法を実行し得る。
[0228]図14に示されているように、ビデオエンコーダ20はビデオデータを受信し、区分ユニット(partitioning unit)235はデータをビデオブロックに区分する。この区分はまた、たとえば、LCUおよびCUの4分木構造(a quadtree structure)に従って、スライス、タイル、または他のより大きいユニットへの区分、ならびにビデオブロック区分をも含み得る。ビデオエンコーダ20は概して、符号化すべきビデオスライス内のビデオブロックを符号化する構成要素を示す。スライスは、複数のビデオブロック(場合によってはタイルと呼ばれるビデオブロックのセット)に分割され得る。
[0229]予測処理ユニット241は、エラー結果(たとえば、コーディングレートおよびひずみレベル)に基づいて、現在のビデオブロックのために、複数のイントラコーディングモードのうちの1つ、または複数のインターコーディングモードのうちの1つなど、複数の可能なコーディングモードのうちの1つを選択し得る。予測処理ユニット241は、得られたイントラコード化ブロックまたはインターコード化ブロック(intra− or inter−coded block)を、残差ブロックデータを生成するために加算器250に与え、参照ピクチャとして使用するための符号化ブロックを再構成するために加算器262に与え得る。
[0230]予測処理ユニット241内のイントラ予測ユニット246は、空間圧縮を行うために、コーディングされるべき現在のブロックと同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対する現在のビデオブロックのイントラ予測コーディング(intra-predictive coding)を実行し得る。予測処理ユニット241内の動き推定ユニット242および動き補償ユニット244は、たとえば、時間的圧縮を行うために、1つまたは複数の参照ピクチャ中の1つまたは複数の予測ブロックに対する現在のビデオブロックのインター予測コーディング(inter-predictive coding)を実行する。
[0231]動き推定ユニット242は、ビデオシーケンスの所定のパターンに従ってビデオスライスのためのインター予測モードを決定するために構成され得る。動き推定ユニット242と動き補償ユニット244とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定ユニット242によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する、現在のビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示し得る。
[0232]予測ブロックは、絶対値差分和(SAD:sum of absolute difference)、2乗差分和(SSD:sum of square difference)、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされるべきビデオブロックのPUにぴったり一致することがわかるブロックである。いくつかの例では、ビデオエンコーダ20は、参照ピクチャメモリ264に記憶された参照ピクチャのサブ整数ピクセル位置(sub-integer pixel positions)の値を計算し得る。たとえば、ビデオエンコーダ20は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置(fractional pixel positions)の値を補間し得る。したがって、動き推定ユニット242は、フルピクセル位置(full pixel positions)と分数ピクセル位置とに対する動き探索を実行し、分数ピクセル精度(fractional pixel precision)で動きベクトルを出力し得る。
[0233]動き推定ユニット242は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライス中のビデオブロックのPUのための動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0もしくはRefPicList0)または第2の参照ピクチャリスト(リスト1もしくはRefPicList1)から選択され得、それらの参照ピクチャリストの各々は、参照ピクチャメモリ264に記憶された1つまたは複数の参照ピクチャを識別する。動き推定ユニット242は、計算された動きベクトルをエントロピー符号化ユニット256および動き補償ユニット246に送る。
[0234]動き補償ユニット244によって実行される動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成すること、場合によってはサブピクセル精度(sub-pixel precision)への補間を実行することを伴い得る。現在のビデオブロックのPUの動きベクトルを受信すると、動き補償ユニット244は、動きベクトルが参照ピクチャリストのうちの1つにおいて指す予測ブロックの位置を特定し得る。ビデオエンコーダ20は、コーディングされている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって残差ビデオブロックを形成する。ピクセル差分値は、ブロックの残差データを形成し、ルーマ差分成分とクロマ差分成分の両方を含み得る。加算器250は、この減算演算を実行する1つまたは複数の構成要素を表す。動き補償ユニット244はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30が使用するための、ビデオブロックとビデオスライスとに関連するシンタックス要素を生成し得る。
[0235]イントラ予測処理ユニット246は、上記で説明したように、動き推定ユニット242と動き補償ユニット244とによって実行されるインター予測の代替として、現在のブロックをイントラ予測し得る。特に、イントラ予測処理ユニット246は、現在のブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測ユニット246は、たとえば、別個の符号化パス中に、様々なイントラ予測モードを使用して現在のビデオブロックを符号化し得、イントラ予測モジュール246(または、いくつかの例では、予測処理ユニット241)は、テストされたモードから使用するのに適切なイントラ予測モードを選択し得る。たとえば、イントラ予測処理ユニット246は、様々なテストされたイントラ予測モードのためのレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は概して、符号化されたブロックと、符号化されたブロックを生成するために符号化された符号化されていない元のブロック、との間のひずみ(またはエラー)の量、ならびに符号化されたブロックを生成するために使用されたビットレート(すなわち、ビットの数)を決定する。イントラ予測処理ユニット246は、符号化された様々なブロックのひずみおよびレートから比を算出し、どのイントラ予測モードがブロックの最良のレートひずみ値を示すのかを決定し得る。
[0236]いずれの場合も、ブロックのためのイントラ予測モードを選択した後に、イントラ予測処理ユニット246は、ブロックのための選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット256に与え得る。エントロピー符号化ユニット256は、本開示の技法に従って、選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ20は、送信ビットストリーム中に、複数のイントラ予測モードインデックステーブルおよび複数の変更されたイントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)と、様々なブロックの符号化コンテキストの定義と、コンテキストの各々について使用すべき、最確イントラ予測モード(a most probable intra-prediction mode)、イントラ予測モードインデックステーブル、および変更されたイントラ予測モードインデックステーブルの指示と、を含み得る構成データを含め得る。
[0237]予測処理ユニット241が、インター予測またはイントラ予測のいずれかを介して、現在のビデオブロックのための予測ブロックを生成した後に、ビデオエンコーダ20は、現在のビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロック中の残差ビデオデータは、1つまたは複数のTU中に含まれ、変換処理ユニット252に適用され得る。変換処理ユニット252は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換処理ユニット252は、残差ビデオデータをピクセル領域から周波数領域などの変換領域に変換し得る。
[0238]変換処理ユニット252は、得られた変換係数を量子化処理ユニット254に送り得る。量子化処理ユニット254は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。いくつかの例では、量子化処理ユニット254は、次いで、量子化変換係数(quantized transform coefficients)を含む行列の走査を実行し得る。代替的に、エントロピー符号化ユニット256が走査を実行し得る。
[0239]量子化の後に、エントロピー符号化ユニット256は、量子化変換係数をエントロピー符号化する。たとえば、エントロピー符号化ユニット256は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディングあるいは別のエントロピー符号化方法または技法を実行し得る。エントロピー符号化ユニット256によるエントロピー符号化に続いて、符号化ビデオビットストリームは、ビデオデコーダ30に送信されるか、あるいはビデオデコーダ30が後で送信するかまたは取り出すためにアーカイブされ得る。エントロピー符号化ユニット256はまた、コード化されている現在のビデオスライスのための動きベクトルと他のシンタックス要素とをエントロピー符号化し得る。
[0240]逆量子化処理ユニット258および逆変換処理ユニット260は、それぞれ逆量子化および逆変換を適用して、参照ピクチャの参照ブロックとして後で使用するためにピクセル領域において残差ブロックを再構成する。動き補償ユニット244は、残差ブロックを参照ピクチャリストのうちの1つ内の参照ピクチャのうちの1つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット244はまた、再構成された残差ブロックに1つまたは複数の補間フィルタを適用して、動き推定において使用するためのサブ整数ピクセル値を計算し得る。加算器262は、再構成された残差ブロックを動き補償ユニット244によって生成された動き補償予測ブロックに加算して、参照ピクチャメモリ264に記憶するための参照ブロックを生成する。参照ブロックは、後続のビデオフレームまたはピクチャ中のブロックをインター予測するために、動き推定ユニット242および動き補償ユニット244によって参照ブロックとして使用され得る。
[0241]ビデオエンコーダ20、たとえば、ビデオエンコーダ20のARPユニット245は、ARP技法のいずれか、たとえば、本明細書で説明するビュー間ARP技法または時間的ARP技法を実行し得る。たとえば、予測処理ユニット241および/または動き推定ユニット242が、現在のビデオブロックをビュー間予測する、たとえば、DMVを使用して現在のビデオブロックとは異なる参照ビュー中の参照ピクチャからの参照ブロックに基づいて現在のビデオブロックを予測する場合、ARPユニット245は、現在のビデオブロックのビュー間予測のための現在のビデオブロックに関連するDMVを識別し得る。いくつかの例では、DMVは、現在のビデオブロックの動き情報予測のためのIDMVCに変換されたDVであり得る。
[0242]DMVに基づいて、ARPユニット245はまた、単独でまたは動き補償ユニット244とともに、ビュー間参照ビデオブロック(Base)と、ビュー間参照ビデオブロック(Base)の予測中に動き推定ユニット242によって前に決定されていることがあるビュー間参照ビデオブロックのTMVと、を識別し得る。TMVに基づいて、ARPユニット245は、単独でまたは動き補償ユニット244とともに、参照ビュー中の時間参照ビデオブロック(BaseTRef)と、現在のビュー中の時間参照ビデオブロック(CurrTRef)とを識別し得る。ARPユニット245は、現在のビュー中の時間参照ビデオブロックと参照ビュー中の時間参照ビデオブロックとの間の差(CurrTRef−BaseTRef)に基づいて現在のビデオブロックのためのビュー間残差予測子を決定し得る。ARPユニット245は、この差(CurrTRef−BaseTRef)に重み係数wを適用し得、たとえば、図10に関して本明細書で説明したように、現在のビデオブロックのためのビュー間予測子ブロックをBase+w*(CurrTRef−BaseTRef)と決定し得る。
[0243]別の例として、予測処理ユニット241および/または動き推定ユニット242が、現在のビデオブロックを時間的に予測する、たとえば、TMVを使用して現在のビデオブロックとは異なるアクセスユニットだが現在のビデオブロックと同じビュー中の参照ピクチャからの参照ブロックに基づいて現在のビデオブロックを予測する場合、ARPユニット245は、TMVを識別し得る。TMVに基づいて、ARPユニット245はまた、単独でまたは動き補償ユニット244とともに、時間参照ビデオブロック(CurrTRef)と、時間参照ビデオブロック(CurrTRef)の予測中に動き推定ユニット242によって前に決定されていることがある時間参照ビデオブロックのDMVとを識別し得る。DMVに基づいて、ARPユニット245は、単独でまたは動き補償ユニット244とともに、参照ビュー中の時間参照ビデオブロック(BaseTRef)と、参照ビュー中のビュー間参照ビデオブロック(Base)とを識別し得る。ARPユニット245は、参照ビュー中の参照ビデオブロック間の差(Base−BaseTRef)に基づいて現在のビデオブロックのための時間残差予測子を決定し得る。ARPユニット245は、この差(Base−BaseTRef)に重み係数wを適用し得、たとえば、図11に関して本明細書で説明したように、現在のビデオブロックのための時間予測子ブロックをCurrTRef+w*(Base−BaseTRef)と決定し得る。
[0244]上記の例のいずれかでも、ARPユニット245、動き補償ユニット244、および/あるいは予測処理ユニット241またはビデオエンコーダ20の任意の構成要素が、現在のビデオブロックのための符号化ビデオビットストリーム中で符号化されるべき残差を決定する加算器250にビュー間予測子ブロックを与え得る。さらに、ARPユニット245は、TMVおよびDMVをスケーリングするか、または本開示の技法による、ARPのための本明細書で説明する機能のいずれかを実行し得る。
[0245]このようにして、ビデオエンコーダ20は、ビデオブロックを符号化するために本開示の例示的なARP技法を実施するように構成され得る。たとえば、ビデオエンコーダ20は、現在のビデオブロックのためのDMVを識別すること、ここにおいて、現在のビデオブロックは、現在のビュー中にあり、ここにおいて、DMVは、参照ビュー中の、および、現在のビデオブロックと同じアクセスユニット中のビュー間参照ビデオブロックに基づく現在のビデオブロックのビュー間予測のために使用される、を備えるビデオデータを符号化するためのビュー間高度残差予測(inter-view advanced residual prediction)の方法を実行するように構成されたビデオエンコーダの一例であり得る。本方法は、ビュー間参照ビデオブロックの時間動きベクトル(TMV)と、関連する参照ピクチャとを識別することと、ビュー間参照ビデオブロックのTMVに基づいて参照ビュー中の関連する参照ピクチャ中の時間参照ビデオブロックを識別することと、参照ビュー中のビュー間参照ビデオブロックのTMVに基づいて現在のビュー中の時間参照ビデオブロックを識別することとをさらに備える。現在のビュー中の時間参照ビデオブロックと参照ビュー中の時間参照ビデオブロックとは同じアクセスユニット中にある。本方法は、現在のビュー中の時間参照ビデオブロックと参照ビュー中の時間参照ビデオブロックとの間の差に基づいて現在のビデオブロックのための残差予測子ブロックを決定することと、現在のビデオブロックのためのDMVと残差ブロックとを識別するためにビデオデータを符号化する符号化ビデオビットストリームを符号化することと、ここにおいて、符号化ビデオビットストリームによって識別された残差ブロックは、現在のビデオブロックのためのビュー間参照ビデオブロックと残差予測子ブロックとの間の差を備える、をさらに備える。
[0246]ビデオコーダ20はまた、ビデオデータを符号化する符号化ビデオビットストリームを記憶するように構成されたメモリと1つまたは複数のプロセッサとを備えるビデオコーダの一例であり得る。ビデオコーダ、たとえば、ビデオエンコーダ20の1つまたは複数のプロセッサは、現在のビデオブロックのためのDMVを識別すること、ここにおいて、現在のビデオブロックは現在のビュー中にあり、ここにおいて、DMVは、参照ビュー中の、および、現在のビデオブロックと同じアクセスユニット中のビュー間参照ビデオブロックに基づく現在のビデオブロックのビュー間予測のために使用される、を行うように構成され得る。1つまたは複数のプロセッサは、ビュー間参照ビデオブロックの時間動きベクトル(TMV)と、関連する参照ピクチャとを識別することと、ビュー間参照ビデオブロックのTMVに基づいて参照ビュー中の関連する参照ピクチャ中の時間参照ビデオブロックを識別することと、参照ビュー中のビュー間参照ビデオブロックのTMVに基づいて現在のビュー中の時間参照ビデオブロックを識別することとを行うようにさらに構成される。現在のビュー中の時間参照ビデオブロックと参照ビュー中の時間参照ビデオブロックとは同じアクセスユニット中にある。1つまたは複数のプロセッサは、現在のビュー中の時間参照ビデオブロックと参照ビュー中の時間参照ビデオブロックとの間の差に基づいて現在のビデオブロックのための残差予測子ブロックを決定することと、現在のビデオブロックのためのDMVと残差ブロックとを識別するために符号化ビデオビットストリームをコーディングすることと、ここにおいて、符号化ビデオビットストリームをコーディングすることによって識別された残差ブロックは、現在のビデオブロックのためのビュー間参照ビデオブロックと残差予測子ブロックとの間の差を備える、を行うようにさらに構成される。
[0247]図15は、本開示で説明する技法を実装し得る例示的なビデオデコーダ30を示すブロック図である。図15の例では、ビデオデコーダ30は、エントロピー復号ユニット280と、予測処理ユニット281と、逆量子化処理ユニット286と、逆変換ユニット288と、加算器290と、参照ピクチャメモリ292とを含む。予測処理ユニット281は、動き補償ユニット282と、ARPユニット283と、イントラ予測ユニット284とを含む。ビデオデコーダ30は、いくつかの例では、図14からのビデオエンコーダ20に関して説明した符号化パスを概ね反転させた復号パスを実行し得る。
[0248]様々な例では、ビデオデコーダ30のユニットは、本開示の技法を実行する役割を担い得る。また、一部の例では、本開示の技術は、ビデオデコーダ30の複数のユニットのうちの1つまたは複数の中で分割され得る。たとえば、ARPユニット283は、単独で、または動き補償ユニット282などのビデオエンコーダの他のユニットと組み合わせて本開示の技法を実行し得る。
[0249]復号プロセスの間、ビデオデコーダ30は、符号化ビデオスライスのビデオブロックおよび関連するシンタックス要素を表す符号化ビットストリームをビデオエンコーダ20から受信する。ビデオデコーダ30のエントロピー復号ユニット280は、量子化係数、動きベクトル、および他のシンタックス要素を生成するためにビットストリームをエントロピー復号する。エントロピー復号ユニット280は、予測処理ユニット281に動きベクトルと他のシンタックス要素とを転送する。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルでシンタックス要素を受信し得る。
[0250]ビデオスライスがイントラコーディングされた(I)スライスとしてコーディングされるとき、予測処理ユニット281のイントラ予測ユニット284は、シグナリングされたイントラ予測モードと、現在のフレームまたはピクチャの、前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックのための予測データを生成し得る。ビデオフレームがインターコード化(すなわち、BまたはP)スライスとしてコーディングされるとき、予測処理ユニット281の動き補償ユニット282は、エントロピー復号ユニット280から受信された動きベクトルおよび他のシンタックス要素に基づいて現在のビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストの1つの中の参照ピクチャのうちの1つから生成され得る。ビデオデコーダ30は、参照ピクチャメモリ292に記憶された参照ピクチャに基づいて、デフォルトの構成技法または任意の他の技法を使用して、参照フレームリストのRefPicList0およびRefPicList1を構成し得る。
[0251]動き補償ユニット282は、動きベクトルと他のシンタックス要素とをパーズすること(parsing)によって現在のビデオスライスのビデオブロックについての予測情報を決定し、復号されている現在のビデオブロックのための予測ブロックを生成するために予測情報を使用する。たとえば、動き補償ユニット282は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラ予測またはインター予測)と、インター予測スライスタイプ(たとえば、BスライスまたはPスライス)と、スライスの参照ピクチャリストのうちの1つまたは複数についての構成情報と、スライスの各インター符号化されたビデオブロックのための動きベクトルと、スライスの各インターコーディングされたビデオブロックについてのインター予測ステータスと、現在のビデオスライス中のビデオブロックを復号するための他の情報と、を決定するために、受信されたシンタックス要素のいくつかを使用する。
[0252]動き補償ユニット282はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット282は、参照ブロックのサブ整数ピクセルの補間値を計算するために、ビデオブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用し得る。この場合、動き補償ユニット282は、受信されたシンタックス要素からビデオエンコーダ20によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。
[0253]逆量子化処理ユニット286は、ビットストリーム中で与えられ、エントロピー復号ユニット280によって復号された、量子化変換係数を逆量子化(inverse quantize)、すなわち、逆量子化(dequantize)する。逆量子化プロセスは、ビデオエンコーダ20によって算出された量子化パラメータをビデオスライス中のビデオブロックごとに使用して、適用すべき量子化の程度を決定し、同様に、適用すべき逆量子化の程度を決定することを含み得る。逆変換ユニット288は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
[0254]動き補償ユニット282が、動きベクトルと他のシンタックス要素とに基づいて現在のビデオブロックのための予測ブロックを生成した後に、ビデオデコーダ30は、逆変換処理ユニット288からの残差ブロックを動き補償ユニット282によって生成された対応する予測ブロックと加算することによって、復号ビデオブロックを形成する。加算器290は、この加算演算を実行する1つまたは複数の構成要素を表す。所望される場合、ブロッキネスアーティファクトを除去するために、復号されたブロックをフィルタ処理するためにデブロッキングフィルタも適用され得る。ピクセル遷移を平滑化するために、または場合によってはビデオ品質を改善するために、(コーディングループ内のまたはコーディングループ後のいずれかの)他のループフィルタも使用され得る。所与のフレームまたはピクチャ中の復号されたビデオブロックは、次いで、その後の動き補償のために使用される参照ピクチャを記憶する参照ピクチャメモリ292に記憶される。参照ピクチャメモリ292はまた、図1のディスプレイデバイス32などのディスプレイデバイス上での後での表示のための、復号ビデオを記憶する。
[0255]ビデオデコーダ30、たとえば、ビデオデコーダ30のARPユニット283は、ARP技法のいずれか、たとえば、本明細書で説明するビュー間ARP技法または時間的ARP技法を実行し得る。たとえば、エントロピー復号ユニット280によって符号化ビデオビットストリームから復元されたシンタックス要素に基づいて、予測処理ユニット281および/または動き補償ユニット282が、DMVを使用して現在のビデオブロックをビュー間予測する場合、ARPユニット283は、現在のビデオブロックのビュー間予測のための現在のビデオブロックに関連するDMVを識別し得る。いくつかの例では、DMVは、現在のビデオブロックの動き情報予測のためのIDMVCに変換されたDVであり得る。
[0256]DMVに基づいて、ARPユニット283はまた、単独でまたは動き補償ユニット282とともに、ビュー間参照ビデオブロック(Base)と、ビュー間参照ビデオブロック(Base)の予測中に動き補償ユニット282によって前に決定されていることがあるビュー間参照ビデオブロックのTMVとを識別し得る。TMVに基づいて、ARPユニット283は、単独でまたは動き補償ユニット282とともに、参照ビュー中の時間参照ビデオブロック(BaseTRef)と、現在のビュー中の時間参照ビデオブロック(CurrTRef)とを識別し得る。ARPユニット283は、現在のビュー中の時間参照ビデオブロックと参照ビュー中の時間参照ビデオブロックとの間の差(CurrTRef−BaseTRef)に基づいて現在のビデオブロックのためのビュー間残差予測子を決定し得る。ARPユニット283は、この差(CurrTRef−BaseTRef)に重み係数wを適用し得、たとえば、図10に関して本明細書で説明したように、現在のビデオブロックのためのビュー間予測子ブロックをBase+w*(CurrTRef−BaseTRef)と決定し得る。
[0257]別の例として、エントロピー復号ユニット280によって符号化ビデオビットストリームから復元されたシンタックス要素に基づいて、予測処理ユニット281および/または動き補償ユニット282が、TMVを使用して現在のビデオブロックを時間的に予測する場合、ARPユニット283はTMVを識別し得る。TMVに基づいて、ARPユニット283はまた、単独でまたは動き補償ユニット282とともに、時間参照ビデオブロック(CurrTRef)と、時間参照ビデオブロック(CurrTRef)の予測中に動き補償ユニット282によって前に決定されていることがある時間参照ビデオブロックのDMVとを識別し得る。DMVに基づいて、ARPユニット283は、単独でまたは動き補償ユニット282とともに、参照ビュー中の時間参照ビデオブロック(BaseTRef)と、参照ビュー中のビュー間参照ビデオブロック(Base)とを識別し得る。ARPユニット283は、参照ビュー中の参照ビデオブロック間の差(Base−BaseTRef)に基づいて現在のビデオブロックのための時間残差予測子を決定し得る。ARPユニット283は、この差(Base−BaseTRef)に重み係数wを適用し得、たとえば、図11に関して本明細書で説明したように、現在のビデオブロックのための時間予測子ブロックをCurrTRef+w*(Base−BaseTRef)と決定し得る。
[0258]上記の例のいずれかでも、ARPユニット283、動き補償ユニット282、および/あるいは予測処理ユニット281またはビデオデコーダ30の任意の構成要素が、現在のビデオブロックを再構成するために、逆変換処理ユニット288から受信された復号された残差とビュー間予測子ブロックを加算する加算器290にビュー間予測子ブロックを与え得る。さらに、ARPユニット283は、TMVおよびDMVをスケーリングするか、または本開示の技法による、ARPのための本明細書で説明する機能のいずれかを実行し得る。
[0259]このようにして、ビデオデコーダ30は、ビデオブロックを復号するために本開示の例示的なARP技法を実施するように構成され得る。たとえば、ビデオデコーダ30は、現在のビデオブロックのための視差動きベクトル(DMV)と残差ブロックとを識別するためにビデオデータを符号化する符号化ビデオビットストリームを復号すること、ここにおいて、現在のビデオブロックが現在のビュー中にあり、ここにおいて、DMVが、参照ビュー中の、および、現在のビデオブロックと同じアクセスユニット中のビュー間参照ビデオブロックに基づく現在のビデオブロックのビュー間予測のために使用される、を備えるビデオデータを復号するためのビュー間高度残差予測の方法を実行するように構成されたビデオデコーダの一例であり得る。本方法は、ビュー間参照ビデオブロックの時間動きベクトル(TMV)と、関連する参照ピクチャとを識別することと、ビュー間参照ビデオブロックのTMVに基づいて参照ビュー中の関連する参照ピクチャ中の時間参照ビデオブロックを識別することと、参照ビュー中のビュー間参照ビデオブロックのTMVに基づいて現在のビュー中の時間参照ビデオブロックを識別することとをさらに備える。現在のビュー中の時間参照ビデオブロックと参照ビュー中の時間参照ビデオブロックとは同じアクセスユニット中にある。本方法は、現在のビュー中の時間参照ビデオブロックと参照ビュー中の時間参照ビデオブロックとの間の差に基づいて現在のビデオブロックのための残差予測子ブロックを決定することと、現在のビデオブロックを再構成するために、ビュー間参照ビデオブロックに、残差予測子ブロックと、符号化ビデオビットストリームから識別された残差ブロックとを適用することとをさらに備える。
[0260]ビデオデコーダ30はまた、ビデオデータを符号化する符号化ビデオビットストリームを記憶するように構成されたメモリと1つまたは複数のプロセッサとを備えるビデオコーダの一例であり得る。ビデオコーダ、たとえば、ビデオデコーダ30の1つまたは複数のプロセッサは、現在のビデオブロックのためのDMVを識別すること、ここにおいて、現在のビデオブロックは現在のビュー中にあり、ここにおいて、DMVは、参照ビュー中の、および、現在のビデオブロックと同じアクセスユニット中のビュー間参照ビデオブロックに基づく現在のビデオブロックのビュー間予測のために使用される、を行うように構成され得る。1つまたは複数のプロセッサは、ビュー間参照ビデオブロックの時間動きベクトル(TMV)と、関連する参照ピクチャとを識別することと、ビュー間参照ビデオブロックのTMVに基づいて参照ビュー中の関連する参照ピクチャ中の時間参照ビデオブロックを識別することと、参照ビュー中のビュー間参照ビデオブロックのTMVに基づいて現在のビュー中の時間参照ビデオブロックを識別することとを行うようにさらに構成される。現在のビュー中の時間参照ビデオブロックと参照ビュー中の時間参照ビデオブロックとは同じアクセスユニット中にある。1つまたは複数のプロセッサは、現在のビュー中の時間参照ビデオブロックと参照ビュー中の時間参照ビデオブロックとの間の差に基づいて現在のビデオブロックのための残差予測子ブロックを決定することと、現在のビデオブロックのためのDMVと残差ブロックとを識別するために符号化ビデオビットストリームをコーディングすることと、ここにおいて、符号化ビデオビットストリームをコーディングすることによって識別された残差ブロックは、現在のビデオブロックのためのビュー間参照ビデオブロックと残差予測子ブロックとの間の差を備える、を行うようにさらに構成される。
[0261]図16は、本開示で説明する技法による、ビデオブロックを復号するための例示的なARP方法を示す流れ図である。図16の例示的な方法は、ARPユニット283を含み得る、ビデオデコーダ30などのビデオデコーダによって実行され得る。
[0262]図16の例示的な方法によれば、ビデオデコーダ30は、現在のビデオブロックのための参照ビデオブロックと残差ブロックとを識別するために符号化ビデオビットストリームを復号する(300)。たとえば、動き補償ユニット282は、エントロピー復号ユニット280によって復号されたシンタックスによって示される動きベクトルに基づいて参照ビデオブロックを識別し得、逆変換処理ユニット288は、加算器290に復号された残差ブロックを与え得る。ビデオデコーダ30、たとえば、ARPユニット283は、現在のビデオブロックの現在のビューから参照ビューまでのDMVを識別する(302)。
[0263]ビデオデコーダ30、たとえば、ARPユニット283は、次いで、DMVに基づいて現在のビデオブロックを復号するための残差予測子ブロックを決定し得る(304)。たとえば、現在のビデオブロックがビュー間予測される場合、ビデオデコーダ30は、たとえば、図10に関して説明したように、ビュー間ARP技法を使用して現在のビデオブロックのDMVに基づいてビュー間残差予測子ブロック(an inter-view residual predictor block)を決定し得る。現在のビデオブロックが時間的に予測される場合、ビデオデコーダ30は、たとえば、図11に関して説明したように、時間的ARP技法を使用して時間参照ビデオブロックのDMVに基づいて時間残差予測子ブロック(a temporal residual predictor block)を決定し得る。ビデオデコーダ30、たとえば、ARPユニット283および/または加算器290は、現在のビデオブロックを再構成するために、参照ビデオブロックに残差予測子ブロックと復号された残差ブロックとを適用し得る(306)。
[0264]図17は、本開示で説明する技法による、ビュー間予測ビデオブロック(an inter-view predicted video block)を復号するための例示的なビュー間ARP方法を示す流れ図である。図17の例示的な方法は、ARPユニット283を含み得る、ビデオデコーダ30などのビデオデコーダによって実行され得る。
[0265]図17の例示的な方法によれば、ビデオデコーダ30は、現在のビデオブロックのビュー間予測のために使用されるDMVと残差ブロックとを識別するために符号化ビデオビットストリームを復号する(310)。ビデオデコーダ30、たとえば、ARPユニット283は、DMVに基づいてビュー間参照ビデオブロック(Base)を識別する(312)。ビデオデコーダ30、たとえば、ARPユニット283はまた、ビュー間参照ビデオブロック(Base)のTMVと、関連する参照ピクチャとを識別する(314)。
[0266]ビデオデコーダ30、たとえば、ARPユニット283は、次いで、たとえば、図10に関して上記で説明した技法を使用して、TMVに基づいて現在のビューおよび参照ビュー中の時間参照ビデオブロック(それぞれ、CurrTRefおよびBaseTRef)を識別し得る(316)。ビデオデコーダ30、たとえば、ARPユニット283は、次いで、これらの時間参照ビデオブロックの間の差(CurrTRef−BaseTRef)に基づいて現在のビデオブロックのためのビュー間残差予測子ブロックを決定し得る(318)。ビデオデコーダ、たとえば、ARPユニット283および/または加算器290は、現在のビデオブロック(Curr)を再構成するために、ビュー間参照ビデオブロック(Base)にビュー間残差予測子ブロックと復号された残差ブロックとを適用し得る(320)。
[0267]図18は、本開示で説明する技法による、時間的に予測されたビデオブロックを復号するための例示的なARP方法を示す流れ図である。図18の例示的な方法は、ARPユニット283を含み得る、ビデオデコーダ30などのビデオデコーダによって実行され得る。
[0268]図18の例示的な方法によれば、ビデオデコーダ30は、現在のビデオブロックを再構成するための現在のビュー中の時間参照ビデオブロック(CurrTRef)と残差ブロックとを識別するために符号化ビデオビットストリームを復号する(330)。ビデオデコーダ30、たとえば、動き補償ユニット282は、復号ビデオビットストリーム(decoded video bitstream)から決定された現在のビデオブロックに関連するTMVを使用して現在のビュー中の時間参照ビデオブロック(CurrTRef)を識別し得る。ビデオデコーダ30、たとえば、ARPユニット283は、時間参照ビデオブロック(CurrTRef)のDMVを識別し得、これは、次に、参照ビュー中の時間参照ビデオブロック(BaseTRef)を識別し得る(332)。
[0269]ビデオデコーダ30、たとえば、ARPユニット283はまた、現在のビュー中の時間参照ビデオブロック(CurrTRef)のDMVに基づいて参照ビュー中のビュー間参照ビデオブロック(Base)を識別し得る(334)。ビデオデコーダ30、たとえば、ARPユニット283は、次いで、参照ビュー中のこれらの時間参照ビデオブロックの間の差(Base−BaseTRef)に基づいて現在のビデオブロックのための時間残差予測子ブロックを決定し得る(336)。ビデオデコーダ、たとえば、ARPユニット283および/または加算器290は、現在のビデオブロック(Curr)を再構成するために、時間参照ビデオブロック(CurrTRef)に時間残差予測子ブロックと復号された残差ブロックとを適用し得る(338)。
[0270]図19は、本開示で説明する技法による、ビデオブロックを符号化するための例示的なARP方法を示す流れ図である。図19の例示的な方法は、ARPユニット245を含み得る、ビデオエンコーダ20などのビデオエンコーダによって実行され得る。
[0271]図19の例示的な方法によれば、ビデオデコーダ20、たとえば、ARPユニット245は、現在のビデオブロックの現在のビューから参照ビューまでのDMVを識別する(340)。ビデオエンコーダ20、たとえば、ARPユニット245は、次いで、DMVに基づいて現在のビデオブロックを符号化するための残差予測子ブロックを決定し得る(342)。たとえば、現在のビデオブロックがビュー間予測される場合、ビデオエンコーダ20は、たとえば、図10に関して説明したように、ビュー間ARP技法を使用して現在のビューブロックのDMVに基づいてビュー間残差予測子ブロックを決定し得る。現在のビデオブロックが時間的に予測される場合、ビデオエンコーダ20は、たとえば、図11に関して説明したように、時間的ARP技法を使用して現在のビュー中の時間参照ビデオブロックのDMVに基づいて時間残差予測子ブロックを決定し得る。いずれの場合も、ビデオエンコーダ20、たとえば、ARPユニット245と加算器250とは、現在のビデオブロックと、現在のビデオブロックのための参照ビデオブロックと残差予測子ブロックとの和であり得る、現在のビデオブロックのための予測子ブロックと、の間の差に基づいて現在のビデオブロックのための残差ブロックを決定し得る(344)。ビデオエンコーダ20は、この残差ブロックと参照ビデオブロックとを識別するためにビデオビットストリームを符号化し得る(346)。
[0272]図20は、本開示で説明する技法による、ビュー間予測ビデオブロックを符号化するための例示的なビュー間ARP方法を示す流れ図である。図20の例示的な方法は、ARPユニット245を含み得る、ビデオエンコーダ20などのビデオエンコーダによって実行され得る。
[0273]図20の例示的な方法によれば、ビデオエンコーダ20、たとえば、ARPユニット245は、現在のビデオブロック(Curr)からビュー間参照ビデオブロック(Base)までのDMVを識別する(350)。ビデオエンコーダ20、たとえば、ARPユニット245はまた、ビュー間参照ビデオブロック(Base)のTMVと、関連する参照ピクチャとを識別する(352)。ビデオエンコーダ20、たとえば、ARPユニット245は、次いで、たとえば、図10に関して上記で説明した技法を使用して、TMVに基づいて現在のビューおよび参照ビュー中の時間参照ビデオブロック(それぞれ、CurrTRefおよびBaseTRef)を識別し得る(354)。
[0274]ビデオエンコーダ30、たとえば、ARPユニット245は、次いで、これらの時間参照ビデオブロックの間の差(CurrTRef−BaseTRef)に基づいて現在のビデオブロックのためのビュー間残差予測子ブロックを決定し得る(318)。ビデオエンコーダ20、たとえば、ARPユニット245と加算器250とは、現在のビデオブロックと、現在のビデオブロックのためのビュー間参照ビデオブロック(Base)と残差予測子ブロックとの和であり得る、現在のビデオブロックのための予測子ブロックと、の間の差に基づいて現在のビデオブロックのための残差ブロックを決定し得る(358)。ビデオエンコーダ20は、この残差ブロックとビュー間参照ビデオブロックとを識別するためにビデオビットストリームを符号化し得る(360)。
[0275]図21は、本開示で説明する技法による、時間的に予測されたビデオブロックを符号化するための例示的なARP方法を示す流れ図である。図21の例示的な方法は、ARPユニット245を含み得る、ビデオエンコーダ20などのビデオエンコーダによって実行され得る。
[0276]図21の例示的な方法によれば、ビデオエンコーダ20、たとえば、ARPユニット245は、たとえば、現在のビデオブロックに関連するTMVを使用して、現在のビュー中の時間参照ビデオブロック(CurrTRef)を識別する。ビデオエンコーダ20、たとえば、ARPユニット245は、次いで、時間参照ビデオブロック(CurrTRef)のDMVを識別し得、これは、次に、参照ビュー中の時間参照ビデオブロック(BaseTRef)を識別し得る(370)。現在のビュー中の時間参照ビデオブロック(CurrTRef)のDMVに基づいて、ビデオエンコーダ20、たとえば、ARPユニット245はまた、参照ビュー中のビュー間参照ビデオブロック(Base)を識別し得る(372)。
[0277]ビデオエンコーダ20、たとえば、ARPユニット245は、次いで、参照ビュー中のこれらの時間参照ビデオブロックの間の差(Base−BaseTRef)に基づいて現在のビデオブロックのための時間残差予測子ブロックを決定し得る(374)。ビデオエンコーダ20、たとえば、ARPユニット245と加算器250とは、現在のビデオブロックと、現在のビデオブロックのための時間参照ビデオブロック(CurrTRef)と残差予測子ブロックとの和であり得る、現在のビデオブロックのための予測子ブロックと、の間の差に基づいて現在のビデオブロックのための残差ブロックを決定し得る(376)。ビデオエンコーダ20は、この残差ブロックとビュー間参照ビデオブロックとを識別するためにビデオビットストリームを符号化し得る(378)。
[0278]図22は、本開示で説明する技法による、時間的ARPのためのDMVを識別するための例示的な方法を示す流れ図である。図22の例示的な方法は、ARPユニット245、283を含み得る、ビデオエンコーダ20および/またはビデオデコーダ30などのビデオコーダによって実行され得る。
[0279]図22の例示的な方法によれば、ビデオコーダは、スケーリングされたTMVに基づいて現在のビュー中の時間参照ビデオブロック(CurrTRef)を識別する(380)。ビデオコーダは、次いで、識別された時間参照ビデオブロックがDMVに関連付けられていることについて決定する(382)。時間参照ビデオブロックがDMVに関連付けられている場合、ビデオコーダは、DMVに基づいてビュー間参照ビデオブロックを識別する(388)。時間参照ビデオブロックがDMVに関連付けられていない場合、ビデオコーダは、スケーリングなしのTMVに基づいて現在のビュー中の別の時間参照ビデオブロックを識別し(384)、スケーリングなしのTMVに基づいて識別された現在のビュー中の時間参照ビデオブロックのDMVに基づいてビュー間参照ビデオブロックを識別する(388)。
[0280]図23は、本開示で説明する技法による、ARPのDMVまたはTMVを識別するための例示的な方法を示す流れ図である。図23の例示的な方法は、ARPユニット245、283を含み得る、ビデオエンコーダ20および/またはビデオデコーダ30などのビデオコーダによって実行され得る。
[0281]図23の例示的な方法によれば、ビデオコーダは、最初に、ARPのために必要なDMVまたはTMVについてRefPicList0を検査する(390)。RefPicList0がDMVまたはTMVを含む場合、ビデオコーダは、DMVまたはTMVに基づいて参照ビデオブロックを識別する(396)。RefPicList0がDMVまたはTMVを含まない場合、ビデオコーダは、DMVまたはTMVについてRefPicList1を検査し(394)、RefPicList1からのDMVまたはTMVに基づいて参照ビデオブロックを識別し得る(396)。いずれの参照ピクチャリストもDMVまたはTMVを含まない場合、ビデオコーダは、例として、ゼロ動きベクトルを使用するか、またはARPを実行しないことがある。ビデオコーダがARPのためにゼロ動きベクトルを使用するいくつかの例では、ビデオコーダは、DMVを使用したビュー間予測のために呼び出された参照ピクチャリスト(方向(direction))にゼロ動きベクトルを適用し得る。
[0282]いくつかの例では、本開示で説明する技法の1つまたは複数の態様は、たとえばメディアアウェアネットワーク要素(MANE)、ストリーム適応プロセッサ、スプライシングプロセッサ、または編集プロセッサなど、中間ネットワークデバイスによって実行され得る。たとえば、そのような中間デバイスは、本開示で説明するように、様々なシグナリングのうちの任意のものを生成または受信するように構成され得る。
[0283]1つまたは複数の例において、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、たとえば、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体、または、たとえば通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、(1)非一時的な有形コンピュータ可読記憶媒体、あるいは(2)信号もしくは搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明する技法の実装のために、命令、コードおよび/またはデータ構造を取り出すために1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
[0284]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは、命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、ウェブサイト、サーバ、または他の遠隔ソースから、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して伝送される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、マイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まず、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用される場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)、およびBlu−rayディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生し、ディスク(disc)はデータをレーザーで光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
[0285]命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積論理回路またはディスクリート論理回路など、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造、または、本明細書で説明する技法の実装に好適な他の構造のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアモジュールおよび/またはソフトウェアモジュール内に与えられるか、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素で十分に実装され得る。
[0286]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置で実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明した1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられ得るか、または相互動作ハードウェアユニットの集合によって与えられ得る。様々な例について説明した。これらの例および他の例は以下の特許請求の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオデータを復号するためのビュー間高度残差予測の方法であって、
現在のビデオブロックのための視差動きベクトル(DMV)と残差ブロックとを識別するために前記ビデオデータを符号化する符号化ビデオビットストリームを復号することと、ここにおいて、前記現在のビデオブロックが現在のビュー中にあり、ここにおいて、前記DMVが、参照ビュー中の、および、前記現在のビデオブロックと同じアクセスユニット中のビュー間参照ビデオブロックに基づく前記現在のビデオブロックのビュー間予測のために使用される、
前記ビュー間参照ビデオブロックの時間動きベクトル(TMV)と、関連する参照ピクチャとを識別することと、
前記ビュー間参照ビデオブロックの前記TMVに基づいて前記参照ビュー中の前記関連する参照ピクチャ中の時間参照ビデオブロックを識別することと、
前記参照ビュー中の前記ビュー間参照ビデオブロックの前記TMVに基づいて前記現在のビュー中の時間参照ビデオブロックを識別することと、ここにおいて、前記現在のビュー中の前記時間参照ビデオブロックと前記参照ビュー中の前記時間参照ビデオブロックとが、同じアクセスユニット中にある、
前記現在のビュー中の前記時間参照ビデオブロックと前記参照ビュー中の前記時間参照ビデオブロックとの間の差に基づいて前記現在のビデオブロックのための残差予測子ブロックを決定することと、
前記現在のビデオブロックを再構成するために参照ビデオブロックに、前記残差予測子ブロックと、前記符号化ビデオビットストリームから識別された前記残差ブロックとを適用することと
を備える方法。
[C2]
前記現在のビュー中の前記時間参照ビデオブロックと前記参照ビュー中の前記時間参照ビデオブロックとの間の前記差に基づいて前記現在のビデオブロックのための前記残差予測子ブロックを決定することが、前記現在のビュー中の前記時間参照ビデオブロックと前記参照ビュー中の前記時間参照ビデオブロックとの間の前記差に重み係数を適用することを備える、C1に記載の方法。
[C3]
前記現在のビデオブロックの高度残差予測のためにターゲットアクセスユニット中のターゲット参照ピクチャに、前記ビュー間参照ビデオブロックの前記TMVをスケーリングすることと、
前記ビュー間参照ビデオブロックの前記TMVに基づいて前記参照ビュー中の前記時間参照ビデオブロックを識別することが、前記スケーリングされたTMVに基づいて前記参照ビュー中の前記時間参照ビデオブロックを識別することを備えることと、
前記ビュー間参照ビデオブロックの前記TMVに基づいて前記現在のビュー中の前記時間参照ビデオブロックを識別することが、前記スケーリングされたTMVに基づいて前記参照ビュー中の前記時間参照ビデオブロックを識別することを備えることと
のうちの少なくとも1つと、
をさらに備える、C1に記載の方法。
[C4]
参照ピクチャリストを選択することと、
前記選択された参照ピクチャリストから前記ターゲット参照ピクチャを選択することと、
ここにおいて、前記参照ピクチャリストを選択することが、
前記TMVに関連する前記参照ピクチャリストを選択すること、または
前記DMVに関連する前記参照ピクチャリストを選択すること
のうちの1つを備える、
をさらに備える、C3に記載の方法。
[C5]
前記ビュー間参照ビデオブロックが複数の予測ユニットを備え、前記ビュー間参照ビデオブロックの前記TMVを識別することが、前記ビュー間参照ビデオブロックの中心位置を含んでいる前記複数の予測ユニットのうちの1つに関連するTMVを識別することを備える、C1に記載の方法。
[C6]
前記ビュー間参照ビデオブロックの前記中心位置を含んでいる前記予測ユニットがTMVを有しないと決定すること、ここにおいて、前記ビュー間参照ビデオブロックの前記TMVを識別することが、前記ビュー間参照ビデオブロックの前記TMVとしてゼロ動きベクトルを識別することを備える、
をさらに備える、C5に記載の方法。
[C7]
前記ビュー間参照ビデオブロックの前記関連する参照ピクチャを識別することが、高度残差予測において使用されるターゲット参照ピクチャと同じアクセスユニット中にある前記参照ビュー中の参照ピクチャを識別することを備える、C6に記載の方法。
[C8]
前記ビュー間参照ビデオブロックが、第1の参照ピクチャリストに対応する動き情報の第1のセットと、第2の参照ピクチャリストに対応する動き情報の第2のセットとを含んでおり、前記ビュー間参照ビデオブロックの前記TMVを識別することが、
動き情報の前記第1のセットがTMVを含む場合、動き情報の前記第1のセットから前記TMVを選択することと、
動き情報の前記第1のセットがTMVを含まない場合、動き情報の前記第2のセットから前記TMVを選択することと
を備える、C1に記載の方法。
[C9]
前記第1の参照ピクチャリストがRefPicList0を備える、C8に記載の方法。
[C10]
動き情報の前記第1のセットと前記第2のセットとを考慮する順序が、動き情報の前記第1のセットと前記第2のセットとのうちのどちらが前記DMVを含むかとは無関係である、C8に記載の方法。
[C11]
前記現在のビデオブロックの高度残差予測のためにターゲット参照ビューに前記識別されたDMVをスケーリングするためのビュー順序差スケーリングを適用することと、
前記スケーリングされたDMVに基づいて前記ビュー間参照ビデオブロックを識別することと
をさらに備える、C1に記載の方法。
[C12]
ビデオデータを符号化するためのビュー間高度残差予測の方法であって、
現在のビデオブロックのための視差動きベクトル(DMV)を識別することと、ここにおいて、前記現在のビデオブロックが現在のビュー中にあり、ここにおいて、前記DMVが、参照ビュー中の、および、前記現在のビデオブロックと同じアクセスユニット中のビュー間参照ビデオブロックに基づく前記現在のビデオブロックのビュー間予測のために使用される、
前記ビュー間参照ビデオブロックの時間動きベクトル(TMV)と、関連する参照ピクチャとを識別することと、
前記ビュー間参照ビデオブロックの前記TMVに基づいて前記参照ビュー中の前記関連する参照ピクチャ中の時間参照ビデオブロックを識別することと、
前記参照ビュー中の前記ビュー間参照ビデオブロックの前記TMVに基づいて前記現在のビュー中の時間参照ビデオブロックを識別することと、ここにおいて、前記現在のビュー中の前記時間参照ビデオブロックと前記参照ビュー中の前記時間参照ビデオブロックとが、同じアクセスユニット中にある、
前記現在のビュー中の前記時間参照ビデオブロックと前記参照ビュー中の前記時間参照ビデオブロックとの間の差に基づいて前記現在のビデオブロックのための残差予測子ブロックを決定することと、
前記現在のビデオブロックのための前記DMVと残差ブロックとを識別するために前記ビデオデータを符号化する符号化ビデオビットストリームを符号化することと、ここにおいて、前記符号化ビデオビットストリームによって識別された前記残差ブロックが、前記現在のビデオブロックのための前記ビュー間参照ビデオブロックと前記残差予測子ブロックとの間の差を備える、
を備える方法。
[C13]
前記現在のビュー中の前記時間参照ビデオブロックと前記参照ビュー中の前記時間参照ビデオブロックとの間の前記差に基づいて前記現在のビデオブロックのための前記残差予測子ブロックを決定することが、前記現在のビュー中の前記時間参照ビデオブロックと前記参照ビュー中の前記時間参照ビデオブロックとの間の前記差に重み係数を適用することを備える、C12に記載の方法。
[C14]
前記現在のビデオブロックの高度残差予測のためにターゲットアクセスユニット中のターゲット参照ピクチャに、前記ビュー間参照ビデオブロックの前記TMVをスケーリングすることと、
前記ビュー間参照ビデオブロックの前記TMVに基づいて前記参照ビュー中の前記時間参照ビデオブロックを識別することが、前記スケーリングされたTMVに基づいて前記参照ビュー中の前記時間参照ビデオブロックを識別することを備えることと、
前記ビュー間参照ビデオブロックの前記TMVに基づいて前記現在のビュー中の前記時間参照ビデオブロックを識別することが、前記スケーリングされたTMVに基づいて前記参照ビュー中の前記時間参照ビデオブロックを識別することを備えることと
のうちの少なくとも1つと、
をさらに備える、C12に記載の方法。
[C15]
参照ピクチャリストを選択することと、
前記選択された参照ピクチャリストから前記ターゲット参照ピクチャを選択することと、
ここにおいて、前記参照ピクチャリストを選択することが、
前記TMVに関連する前記参照ピクチャリストを選択すること、または
前記DMVに関連する前記参照ピクチャリストを選択すること
のうちの1つを備える、
をさらに備える、C14に記載の方法。
[C16]
前記ビュー間参照ビデオブロックが複数の予測ユニットを備え、前記ビュー間参照ビデオブロックの前記TMVを識別することが、前記ビュー間参照ビデオブロックの中心位置を含んでいる前記複数の予測ユニットのうちの1つに関連するTMVを識別することを備える、C12に記載の方法。
[C17]
前記ビュー間参照ビデオブロックが、第1の参照ピクチャリストに対応する動き情報の第1のセットと、第2の参照ピクチャリストに対応する動き情報の第2のセットとを含んでおり、前記ビュー間参照ビデオブロックの前記TMVを識別することが、
動き情報の前記第1のセットがTMVを含む場合、動き情報の前記第1のセットから前記TMVを選択することと、
動き情報の前記第1のセットがTMVを含まない場合、動き情報の前記第2のセットから前記TMVを選択することと
を備える、C12に記載の方法。
[C18]
前記第1の参照ピクチャリストがRefPicList0を備える、C17に記載の方法。
[C19]
動き情報の前記第1のセットと前記第2のセットとを考慮する順序が、動き情報の前記第1のセットと前記第2のセットとのうちのどちらが前記DMVを含むかとは無関係である、C17に記載の方法。
[C20]
前記現在のビデオブロックの高度残差予測のためにターゲット参照ビューに前記識別されたDMVをスケーリングするためのビュー順序差スケーリングを適用することと、
前記スケーリングされたDMVに基づいて前記ビュー間参照ビデオブロックを識別することと
をさらに備える、C12に記載の方法。
[C21]
ビデオデータをコーディングするためのビュー間高度残差予測を実行するように構成されたビデオコーダを備える装置であって、
前記ビデオデータを符号化する符号化ビデオビットストリームを記憶するように構成されたメモリと、
現在のビデオブロックのための視差動きベクトル(DMV)を識別することと、ここにおいて、前記現在のビデオブロックが現在のビュー中にあり、ここにおいて、前記DMVが、参照ビュー中の、および、前記現在のビデオブロックと同じアクセスユニット中のビュー間参照ビデオブロックに基づく前記現在のビデオブロックのビュー間予測のために使用される、
前記ビュー間参照ビデオブロックの時間動きベクトル(TMV)と、関連する参照ピクチャとを識別することと、
前記ビュー間参照ビデオブロックの前記TMVに基づいて前記参照ビュー中の前記関連する参照ピクチャ中の時間参照ビデオブロックを識別することと、
前記参照ビュー中の前記ビュー間参照ビデオブロックの前記TMVに基づいて前記現在のビュー中の時間参照ビデオブロックを識別することと、ここにおいて、前記現在のビュー中の前記時間参照ビデオブロックと前記参照ビュー中の前記時間参照ビデオブロックとが、同じアクセスユニット中にある、
前記現在のビュー中の前記時間参照ビデオブロックと前記参照ビュー中の前記時間参照ビデオブロックとの間の差に基づいて前記現在のビデオブロックのための残差予測子ブロックを決定することと、
前記現在のビデオブロックのための前記DMVと残差ブロックとを識別するために前記符号化ビデオビットストリームをコーディングすることと、ここにおいて、前記符号化ビデオビットストリームをコーディングすることによって識別された前記残差ブロックが、前記現在のビデオブロックのための前記ビュー間参照ビデオブロックと前記残差予測子ブロックとの間の差を備える、
を行うように構成された1つまたは複数のプロセッサと
を備える装置。
[C22]
前記1つまたは複数のプロセッサが、前記現在のビデオブロックの高度残差予測のためにターゲットアクセスユニット中のターゲット参照ピクチャに、前記ビュー間参照ビデオブロックの前記TMVをスケーリングすることと、および、
前記ビュー間参照ビデオブロックの前記TMVに基づいて前記参照ビュー中の前記時間参照ビデオブロックを識別することが、前記スケーリングされたTMVに基づいて前記参照ビュー中の前記時間参照ビデオブロックを識別することを備えることと、
前記ビュー間参照ビデオブロックのTMVに基づいて前記現在のビュー中の前記時間参照ビデオブロックを識別することが、前記スケーリングされたTMVに基づいて前記参照ビュー中の前記時間参照ビデオブロックを識別することを備えることと
のうちの少なくとも1つと
を行うようにさらに構成された、C21に記載の装置。
[C23]
前記1つまたは複数のプロセッサが、
参照ピクチャリストを選択することと、
前記選択された参照ピクチャリストから前記ターゲット参照ピクチャを選択することと、
ここにおいて、前記参照ピクチャリストを選択するために、前記1つまたは複数のプロセッサが、
前記TMVに関連する前記参照ピクチャリストを選択し、または
前記DMVに関連する前記参照ピクチャリストを選択する
を行うようにさらに構成された、C22に記載の装置。
[C24]
前記ビュー間参照ビデオブロックが複数の予測ユニットを備え、前記ビュー間参照ビデオブロックの前記TMVを識別するために、前記1つまたは複数のプロセッサが、前記ビュー間参照ビデオブロックの中心位置を含んでいる前記複数の予測ユニットのうちの1つに関連するTMVを識別する、C21に記載の装置。
[C25]
前記ビュー間参照ビデオブロックが、第1の参照ピクチャリストに対応する動き情報の第1のセットと、第2の参照ピクチャリストに対応する動き情報の第2のセットとを含んでおり、ここにおいて、前記ビュー間参照ビデオブロックの前記TMVを識別するために、前記1つまたは複数のプロセッサが、
動き情報の前記第1のセットがTMVを含む場合、動き情報の前記第1のセットから前記TMVを選択し、
動き情報の前記第1のセットがTMVを含まない場合、動き情報の前記第2のセットから前記TMVを選択する
C21に記載の装置。
[C26]
前記第1の参照ピクチャリストがRefPicList0を備える、C25に記載の装置。
[C27]
前記1つまたは複数のプロセッサが、
前記現在のビデオブロックの高度残差予測のためにターゲット参照ビューに前記識別されたDMVをスケーリングするためのビュー順序差スケーリングを適用することと、
前記スケーリングされたDMVに基づいて前記ビュー間参照ビデオブロックを識別することと
を行うようにさらに構成された、C21に記載の装置。
[C28]
前記ビデオコーダがビデオデコーダを備え、前記1つまたは複数のプロセッサが、
前記現在のビデオブロックのための前記DMVと前記残差ブロックとを識別するために前記符号化ビデオビットストリームを復号することと、
前記現在のビデオブロックを再構成するために前記ビュー間参照ビデオブロックに、前記残差予測子ブロックと、前記符号化ビデオビットストリームから識別された前記残差ブロックとを適用することと
を行うように構成された、C21に記載の装置。
[C29]
前記ビデオコーダが、ビデオエンコーダを備え、前記1つまたは複数のプロセッサが、ビデオデコーダに、前記現在のビデオブロックのための前記DMVと前記残差ブロックとを示すために前記符号化ビデオビットストリームを符号化するように構成された、C21に記載の装置。
[C30]
実行されたとき、ビデオコーダの1つまたは複数のプロセッサに、
現在のビデオブロックのための視差動きベクトル(DMV)を識別することと、ここにおいて、前記現在のビデオブロックが現在のビュー中にあり、ここにおいて、前記DMVが、参照ビュー中の、および、前記現在のビデオブロックと同じアクセスユニット中のビュー間参照ピクチャに基づく前記現在のビデオブロックのビュー間予測のために使用される、
ビュー間参照ビデオブロックの時間動きベクトル(TMV)と、関連する参照ピクチャとを識別することと、
前記ビュー間参照ビデオブロックの前記TMVに基づいて前記参照ビュー中の前記関連する参照ピクチャ中の時間参照ビデオブロックを識別することと、
前記参照ビュー中の前記ビュー間参照ビデオブロックの前記TMVに基づいて前記現在のビュー中の時間参照ビデオブロックを識別することと、ここにおいて、前記現在のビュー中の前記時間参照ビデオブロックと前記参照ビュー中の前記時間参照ビデオブロックとが、同じアクセスユニット中にある、
前記現在のビュー中の前記時間参照ビデオブロックと前記参照ビュー中の前記時間参照ビデオブロックとの間の差に基づいて前記現在のビデオブロックのための残差予測子ブロックを決定することと、
前記現在のビデオブロックのための前記DMVと残差ブロックとを識別するために符号化ビデオビットストリームをコーディングすることと、ここにおいて、符号化ビデオビットストリームをコーディングすることによって識別された前記残差ブロックが、前記現在のビデオブロックのための前記ビュー間参照ビデオブロックと前記残差予測子ブロックとの間の差を備える、
を行わせる命令を記憶したコンピュータ可読記憶媒体。