【文献】
Xin Zhao, et.al.,CE3 related: Sub-PU based MPI,JCT3V-F0128,2013年10月18日
【文献】
Li Zhang, et.al.,3D-HEVC Test Model 5,JCT3V-E1005,2013年 9月14日,pp.8-12,33-35
【文献】
J. Jung, et.al.,3D-CE3.h: Depth Quadtree Prediction for 3DHTM 4.1,JCT3V-B0068,2012年10月15日
(58)【調査した分野】(Int.Cl.,DB名)
前記深度ブロックは複数の深度PUを含み、前記深度ブロックはアクセスユニットにおける複数の深度ブロックのうちの1つであり、前記シンタックス要素は、前記アクセスユニットにおける各それぞれの深度ブロックにおいて各深度PUの各サブPUについてのMPIサイズをさらに示す、請求項3に記載の方法。
前記アクセスユニットにおける各テクスチャブロックは、前記アクセスユニットにおける対応するコロケートされた深度ブロックに対して、独立してコーディングされ、各テクスチャブロックは、前記アクセスユニットにおける前記深度ブロックのうちのいずれを復号するよりも前に復号され、前記アクセスユニットにおける前記深度ブロックの各々を復号した後、動き圧縮が実施される、請求項1に従属するときの請求項8に記載の方法。
【発明を実施するための形態】
【0015】
[0025]本開示は、深度コーディング技法を含む、高度コーデックに基づく3次元3Dビデオコーディングに関する。提案するコーディング技法は、3D−HEVCにおいて、より具体的には深度コーディングにおいて、動き予測を制御することに関する。
【0016】
[0026]ビデオコーディング規格は、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月)に記載されている。さらに、ITU−Tビデオコーディングエキスパートグループ(VCEG:Video Coding Experts Group)とISO/IECモーションピクチャエキスパートグループ(MPEG:Motion Picture Experts Group)とのJoint Collaborative Team on Video Coding(JCT−VC:Joint Collaboration Team on Video Coding)によって開発されたビデオコーディング規格、すなわち、高効率ビデオコーディング(HEVC)(バージョンJCTVC−L1003_v11)がある。
【0017】
[0027]各予測ユニット(PU)のルーマ成分に関する現在のHEVC(バージョンJCTVC−L1003_v11)では、
図1に示すように、(2から34までインデックス付けされた)33個の角度予測モードと、(1とインデックス付けされた)DCモードと、(0とインデックス付けされた)平面モードとを有するイントラ予測方法が利用される。特に、
図1はHEVCにおけるイントラ予測モードを示している。
【0018】
[0028]通常、Bピクチャの第1または第2の参照ピクチャリストのための参照ピクチャリスト構成は、2つのステップ、すなわち参照ピクチャリストの初期化と、参照ピクチャリストの並べ替え(すなわち、参照ピクチャリストの修正)とを含む。参照ピクチャリスト初期化は、参照ピクチャメモリ(復号ピクチャバッファとしても知られる)中に参照ピクチャを、POC(ピクチャの表示順で整列(aligned with)されるピクチャオーダーカウント)値の順序に基づいてリストとして入れる(すなわち、記憶する)明示的機構またはプロセスである。参照ピクチャリスト並べ替え機構は、参照ピクチャリスト初期化中に参照ピクチャリスト中に入れられたピクチャの位置を、参照ピクチャリスト内の任意の新しい位置に修正し得る。参照ピクチャリスト並べ替え機構はまた、参照ピクチャメモリ内の任意の参照ピクチャを、そのピクチャが初期化された参照ピクチャリストに属していない場合でも、参照ピクチャメモリ内の任意の他の位置に入れ得る。いくつかのピクチャは、参照ピクチャリスト並べ替え(すなわち、参照ピクチャリストの修正)後、リスト内の順次後の位置に置かれ得る。ただし、ピクチャの位置が、リストのアクティブな参照ピクチャの数を超える場合、ピクチャは、最終的な参照ピクチャリストのエントリーとは見なされない。アクティブな参照ピクチャの数は、各リストのためのスライスヘッダにおいてシグナリングされ得る。参照ピクチャリスト(すなわち、利用可能な場合、RefPicList0およびRefPicList1)が構成された後、参照ピクチャリストに対する参照インデックスは、参照ピクチャリスト中に含まれる任意の参照ピクチャを識別するために使用され得る。
【0019】
[0029]時間的動きベクトル予測子(TMVP:Temporal Motion Vector Predictor)を得る(すなわち、決定する)ために、まず、コロケートされたピクチャ(co-located picture)が識別されることになる。現在のピクチャがBスライスである場合、コロケートピクチャがRefPicList0からのものか、またはRefPicList1からのものかを示すために、collocated_from_l0_flagがスライスヘッダにおいてシグナリングされる。参照ピクチャリストが識別された後、参照ピクチャリスト中のピクチャを識別するために、スライスヘッダ中でシグナリングされるシンタックス要素、collocated_ref_idxが使用される。次いで、コロケートされたピクチャをチェックすることによって、コロケートされた予測ユニット(PU)が識別される。このPUを含んでいるコーディングユニット(CU)の右下PUの動き、またはこのPUを含んでいるCUの中心PU内の右下PUの動きのいずれかが、参照ピクチャリスト内のピクチャとして使用される。
【0020】
[0030]上記のプロセスによって識別される動きベクトルが、AMVPまたはマージモードのための動き候補を生成するために使用されるときには、それらは、時間的な位置(POCによって反映される)に基づいてスケーリングされ得る。TMVPから導出される時間的マージ候補のためのすべての考えられる参照ピクチャリストのターゲット参照インデックスは0に設定され得るが、AMVPの場合、ターゲット参照インデックスは、復号された参照インデックスに等しく設定されることに留意されたい。
【0021】
[0031]HEVCでは、SPSは、フラグsps_temporal_mvp_enable_flagを含み、スライスヘッダは、sps_temporal_mvp_enable_flagが1に等しいときには、フラグpic_temporal_mvp_enable_flagを含む。ある特定のピクチャについてpic_temporal_mvp_enable_flagとtemporal_idの両方が0に等しいときには、復号順序がその特定のピクチャの前であるピクチャからの動きベクトルは、その特定のピクチャ、または復号順序がその特定のピクチャの後であるピクチャの復号において、時間的動きベクトル予測子として使用されない。
【0022】
[0032]現在、VCEGおよびMPEGの3Dビデオコーディング共同研究部会(JCT−3C:Joint Collaboration Team on 3D Video Coding)は、HEVCに基づく3DV規格を開発中であり、そのために、規格化作業の一部は、HEVCに基づくマルチビュービデオコーデック(MV−HEVC)と、HEVCに基づく3Dビデオコーディング(3D−HEVC)のための別の部分との規格化を含む。MV−HEVCでは、HEVC中のCU/PUレベルにおけるモジュールが再設計される必要がなく、MV−HEVCのために完全には再使用されないように、MV−HEVCにおいてハイレベルシンタックス(HLS)の変更しかないことが保証されるべきである。3D−HEVCでは、コーディングユニット/予測ユニットレベルのコーディングツールを含む新たなコーディングツールが、テクスチャビューと深度ビューの両方に関して含められ、サポートされ得る。次のような最新の参照ソフトウェア記述ならびに3D−HEVCのワーキングドラフトが入手可能になる。Gerhard Tech、Krzysztof Wegner、Ying Chen、Sehoon Yea、「3D-HEVC Test Model 4」、JCT3V-F1001、ITU-T SG16 WP3とISO/IEC JTC1/SC29/WG11とのJoint Collaborative Team on 3D Video Coding Extension Development、第6回会議。
【0023】
[0033]コーディング効率をさらに改善するために、2つの新規の技術、すなわち、「ビュー間動き予測」および「ビュー間残差予測」が、最新の参照ソフトウェアに採用されてきている。これらの2つのコーディングツールを有効にするために、第1のステップは、視差ベクトルを導出することである。ビュー間動き/残差予測のために他のビュー中の対応するブロックを位置特定するか、またはビュー間動き予測のために視差動きベクトルに変換されるかのいずれかのために、視差ベクトルが使用される。
【0024】
[0034]暗示的視差ベクトル(IDV)は、PUがビュー間動きベクトル予測を採用するとき、すなわち、AMVPモードまたはマージモードのための候補が、視差ベクトルの助けにより他のビュー中の対応するブロックから導出されるとき、生成される。そのような視差ベクトルが、IDVと呼ばれる。IDVは、視差ベクトル導出の目的で、PUに記憶される。
【0025】
[0035]視差ベクトルを導出するために、隣接ブロックベース視差ベクトル(NBDV:Neighboring Blocks based Disparity Vector)と呼ばれる方法が、現在の3D−HTMにおいて使用される。NBDVは、空間的隣接ブロックおよび時間的隣接ブロックからの、視差動きベクトルを利用する。NBDVでは、空間的または時間的隣接ブロックの動きベクトルは、固定されたチェック順序でチェックされる。視差動きベクトルまたはIDVが識別されると、確認プロセスは終了され、識別された視差動きベクトルが返されて、ビュー間動き予測およびビュー間残差予測において使用される視差ベクトルへと変換される。すべてのあらかじめ定義された隣接ブロックをチェックした後、そのような視差ベクトルが見つからない場合、ゼロ視差ベクトルがビュー間動き予測のために使用され得るが、ビュー間残差予測は、対応する予測ユニット(PU)について無効化(disabled)され得る。
【0026】
[0036]5つの空間的隣接ブロックが、視差ベクトル導出のために使用される。それらは、HEVC仕様の
図8〜33に定義されるように、A
0、A
1、B
0、B
1、またはB
2によって示される、現在の予測ユニット(PU)の左下ブロック、左ブロック、右上ブロック、上ブロック、および左上ブロックである。
【0027】
[0037]時間的ブロックのチェックのために、現在のビューからの最大で2つの参照ピクチャ、コロケートされたピクチャ、およびランダムアクセスピクチャ、または最小のPOC差分および最小の時間的IDを有する参照ピクチャが考慮される。ランダムアクセスがまずチェックされ、続いてコロケートされたピクチャが確認される。各候補ピクチャについて、2つの候補ブロックがチェックされる。チェックされた第1の候補ブロックは、中心ブロック(CR)、または現在PUのコロケート領域の中心の4×4ピクセルブロック(
図2の「Pos.A」参照)である。チェックされた第2の候補ブロックは右下ブロック(BR)、すなわち、現在PUのコロケート領域の右下の4×4ピクセルブロック(
図2の「Pos.B」参照)であり、これはNBDVにおける時間的隣接ブロックを示す。
【0028】
[0038]すべての空間的/時間的隣接ブロックに関して、DMVが使用されるかどうかが最初にチェックされ、続いてIDVが確認される。空間的隣接ブロックが最初にチェックされ、続いて、時間的隣接ブロックがチェックされる。5つの空間的隣接ブロックは、A
1、B
1、B
0、A
0、およびB
2の順でチェックされる。隣接ブロックの1つがDMVを使用する場合、チェックプロセスは終了され、対応するDMVが最終視差ベクトルとして使用される。各候補ピクチャについて、2つのブロックが、第1の非ベースビューではCRおよびBRの順序で、または第2の非ベースビューではBR、CRの順序でチェックされる。隣接ブロックの1つがDMVを使用する場合、チェックプロセスは終了され、対応するDMVが最終視差ベクトルとして使用される。5つの空間的隣接ブロックは、A
0、A
1、B
0、B
1、およびB
2の順でチェックされる。隣接ブロックの1つがIDVを使用し、スキップ/マージモードとしてコーディングされる場合、チェックプロセスは終了され、対応するIDVが最終視差ベクトルとして使用される。
【0029】
[0039]NBDV方式から生成される視差ベクトルはさらに、コーディングされた深度マップ中の情報を使用して精緻化(refined)され得る。すなわち、視差ベクトルの精度は、情報をコーディングされたベースビュー深度マップを利用することによって向上され得る。精緻化(refinement)ステップは次のように説明される。第1に、ビデオコーディングデバイスは、ベースビューなど、前にコーディングされた参照深度ビュー中の導出された視差ベクトルによって対応する深度ブロックの位置を特定する。対応する深度ブロックのサイズは、現在PUのサイズと同じである。次に、視差ベクトルは、コロケートされた深度ブロックから、4つのコーナーの深度値の最大値から計算される。これは、視差ベクトルの水平成分に等しいように設定されるが、視差ベクトルの垂直成分は0に設定される。
【0030】
[0040]この新規の視差ベクトルは、「深度指向性の隣接ブロックベース視差ベクトル」(DoNBDV:depth oriented neighboring block based disparity vector)と呼ばれる。次いで、NBDV方式からの視差ベクトルは、AMVPおよびマージモードのためのビュー間候補導出のためにDoNBDV方式から、この新規に導出された視差ベクトルに置換される。精緻化されていない視差ベクトルがビュー間残差予測のために使用されることに留意されたい。加えて、精緻化された視差ベクトルが後方VSPモードでコーディングされる場合、精緻化された視差ベクトルは、1つのPUの動きベクトルとして記憶される。
【0031】
[0041]JCT3V−C0152において提案されたような後方ワーピングVSP手法が、第3回JCT−3V会議において採用された。この後方ワーピングVSPの基本的な考えは、3D−AVCにおけるブロックベースVSPと同じ(または同様)である。これらの2つの技法の両方は、動きベクトル差分を送信することを避け、より正確な動きベクトルを使用するために、後方ワーピングVSPとブロックベースVSPとを使用する。実装の詳細は、プラットフォームの違いに起因して異なる。本開示では、BVSPは、3D−HEVCにおける後方ワーピングVSP手法を指す。
【0032】
[0042]3D−HTMでは、テクスチャ優先コーディングが共通テスト条件において適用される。したがって、対応する非ベース深度ビューは、1つの非ベーステクスチャビューを復号するときには利用不可能である。したがって、深度情報は、BVSPを実行するために推定および使用される。
【0033】
[0043]ブロックについての深度情報を推定するために、隣接ブロックから視差ベクトルをまず導出し、次いで、導出された視差ベクトルを使用して、参照ビューから深度ブロックを取得することが提案される。
【0034】
[0044]HTM5.1テストモデルには、隣接ブロック視差ベクトル(NBDV)として知られる視差ベクトル予測子を導出するためのプロセスが存在する。(dv
x,dv
y)はNBDV機能から識別された視差ベクトルを示し、現在ブロック位置は(block
x,block
y)である。参照ビューの深度画像中で(block
x+dv
x,block
y+dv
y)において深度ブロックをフェッチすることが提案される。フェッチされた深度ブロックは、現在の予測ユニット(PU)と同じサイズを有し、フェッチされた深度ブロックが次いで、現在PUのための後方ワーピングを行うために使用される。
図3は、どのように参照ビューからの深度ブロックが位置特定され、次いでBVSP予測に使用されるかを説明する3つのステップのプロセスを示す。特に、
図3は、BVSP予測を実行するための参照ビューからの深度ブロック導出を示す。
【0035】
[0045]BVSPがシーケンス中で有効化される場合、ビュー間動き予測用のNBDVプロセスは変更される。時間的隣接ブロックの各々について、時間的隣接ブロックが視差動きベクトルを使用する場合、視差動きベクトルは視差ベクトルとして返され、視差動きベクトルは、コーディングされた深度マップ中の情報を使用して、精緻化されたNBDV方式に関して上記で説明した方法でさらに精緻化される。空間的隣接ブロックの各々について、また各参照ピクチャリスト0もしくは参照ピクチャリスト1について、以下のものが適用される。空間的隣接ブロックが視差動きベクトルを使用する場合、視差動きベクトルは視差ベクトルとして返され、視差動きベクトルは、コーディングされた深度マップ中の情報を使用して、精緻化されたNBDV方式に関して上記で説明した方法でさらに精緻化される。そうではなく、空間的隣接ブロックがBVSPモードを使用する場合、関連する動きベクトルは視差ベクトルとして返される。視差動きベクトルは、精緻化されたNBDV方式に関して上記で説明したように、コーディングされた深度マップ中の情報を使用して、同様にしてさらに精緻化される。しかしながら、最大深度値は、4つの角のピクセルではなく、対応する深度ブロックのすべてのピクセルから選択される。空間的隣接ブロックの各々について、空間的隣接ブロックがIDVを使用する場合、IDVは視差ベクトルとして返され、空間的隣接ブロックは、コーディングされた深度マップ中の情報を使用して、精緻化されたNBDV方式に関して上記で説明した方法でさらに精緻化される。
【0036】
[0046]導入されたBVSPモードは特殊なインターコード化モードとして扱われ、BVSPモードの使用を示すフラグが、PUごとに維持されるべきである。ビットストリームにおいてフラグをシグナリングするのではなく、新たなマージ候補(すなわち、BVSPマージ候補)がマージ候補リストに追加され、フラグは、復号されたマージ候補インデックスがBVSPマージ候補に対応するかどうかに依存する。BVSPマージ候補は、次のように定義される。各参照ピクチャリストについての参照ピクチャインデックスは−1に等しい。さらに、各参照ピクチャリストについての動きベクトルは、精緻化された視差ベクトルである。
【0037】
[0047]BVSPマージ候補の挿入位置は、空間的隣接ブロックに依存する。5つの空間的隣接ブロックのいずれか(A0、A1、B0、B1、またはB2)が、BVSPモードでコーディングされる場合、すなわち、隣接ブロックの維持されたフラグが1に等しい場合、BVSPマージ候補は、対応する空間的マージ候補として扱われ、マージ候補リストに挿入される。BVSPマージ候補は、マージ候補リストに一度のみ挿入されることに留意されたい。そうでない(5つの空間的隣接ブロックのいずれもがBVSPモードでコーディングされない)場合、BVSPマージ候補は、時間的マージ候補の直前に、マージ候補リストに挿入される。
【0038】
[0048]サイズがN×Mによって示される各BVSPコーディングされたPUの場合、コーディングされたPUは、K×Kピクセル(ここでKは4または2であり得る)に等しいサイズを有するいくつかのサブ領域(sub-regions)にさらにパーティション分割される。サブ領域ごとに、別個の視差動きベクトルが導出され、各サブ領域は、ビュー間参照ピクチャ中の導出された視差動きベクトルによって位置特定された1つのブロックから予測される。言い換えれば、BVSPコーディングされたPUのための動き補償ユニットのサイズはK×Kピクセルに設定される。共通テスト条件では、Kは4に設定される。
【0039】
[0049]BVSPモードを用いてコーディングされた1つのPU内の各サブ領域(4×4ピクセルブロック)の場合、対応する4×4ピクセル深度ブロックは、上述の精緻化された視差ベクトルを用いて参照深度ビューにおいて最初に位置特定される。対応する深度ブロック中の16個の深度ピクセルの最大値が選択される。その最大値は、視差動きベクトルの水平成分に変換される。視差動きベクトルの垂直成分は、0に設定される。
【0040】
[0050]DoNBDV方式から導出された視差ベクトルに基づいて、新たな動きベクトル候補である、ビュー間予測動きベクトル候補(IPMVC)が、利用可能な場合、AMVPおよびスキップ/マージモードに追加され得る。ビュー間予測動きベクトルは、利用可能な場合、時間的動きベクトルである。
【0041】
[0051]スキップモードは、マージモードと同じ動きベクトル導出プロセスを有する。そのために、本開示で説明するすべての技法が、マージモードとスキップモードの両方に適用され得る。
【0042】
[0052]マージ/スキップモードに対して、ビュー間予測動きベクトルが以下のプロセスによって導出される。同じアクセスユニットの参照ビュー中の現在PU/CUの対応するブロックは、視差ベクトルによって位置特定される。対応するブロックがイントラコーディングされず、ビュー間予測されず、参照ピクチャが、現在PU/CUの同じ参照ピクチャリスト中の1つのエントリーのPOC値に等しいPOC値を有する場合、動き情報(予測方向、参照ピクチャ、および動きベクトル)が、POCに基づいて参照インデックスを変換した後で、ビュー間予測動きベクトルとなるように導出される。
【0043】
[0053]対応するブロックは、次のように定義される。現在予測ユニットの左上ルーマサンプルのルーマロケーション(xP,yP)が、現在ピクチャの左上ルーマサンプルに対して示される。nPSWおよびnPSHは、それぞれ、現在予測ユニットの幅と高さとを示す。参照ビュー順序インデックスは、refViewIdxとして示される。視差ベクトルは、mvDispとして示される。参照レイヤルーマロケーション(xRef,yRef)は、以下によって導出される。
xRef = Clip3 (0, PicWidthInSamplesL-1, xP+((nPSW-1) >> 1) +
((mvDisp[0]+2) >> 2)) (H-124)
yRef = Clip3 (0, PicHeightInSamplesL-1, yP+((nPSH-1) >> 1) +
((mvDisp[1]+2) >> 2)) (H-125)
対応するブロックは、refViewIdxに等しいViewIdxを伴うビュー成分中のルーマロケーション(xRef,yRef)をカバーする予測ユニットに設定される。
【0044】
[0054]
図4は、ビュー間予測動きベクトル候補の導出プロセスの一例を示す。特に、
図4は、マージ/スキップモードのためのビュー間予測動きベクトル候補の導出を示す。
【0045】
[0055]加えて、視差ベクトルは、ビュー間視差動きベクトルに変換され、ビュー間視差動きベクトルは、該視差ベクトルが利用可能であるときには、IPMVCとは異なる位置においてマージ候補リストに追加され、または、IPMVCと同じ位置においてAMVP候補リストに追加される。IPMVCまたはビュー間視差動きベクトル候補(IDMVC)のいずれかは、このコンテキストにおいて、「ビュー間候補」と呼ばれる。
【0046】
[0056]マージ/スキップモードでは、IPMVCは、利用可能な場合は常に、すべての空間的マージ候補および時間的マージ候補の前に、マージ候補リストへと挿入される。IDMVCは、A
0から導出された空間的マージ候補の前に挿入される。
【0047】
[0057]視差ベクトルがまず、DoNBDVの方法によって導出される。視差ベクトルの場合、3D−HEVCにおけるマージ候補リスト構成プロセスは、次のように定義され得る。まず、IPMVCが、上記で説明した手順によって導出される。視差ベクトルが利用可能である場合、視差はマージリストに挿入される。次に、空間的隣接PUの動き情報は、A
1、B
1、B
0、A
0、またはB
2の順序でチェックされる。次いで拘束プルーニング(constrained pruning)が実施される。たとえば、A
1とIPMVCとが同じ動きベクトルおよび同じ参照インデックスを有する場合、A
1は、候補リストに挿入されない。そうではない場合、A
1はリストに挿入される。B
1とA
1/IPMVCとが同じ動きベクトルおよび同じ参照インデックスを有する場合、B
1が候補リストに挿入されない。そうではない場合、B
1はリストに挿入される。B
0が利用可能である場合、B
0は候補リストに追加される。IDMVCが、上記で説明した手順によって導出される。B
0が利用可能であり、B
0がA
1およびB
1から導出された候補とは異なる場合、B
0は、候補リストに挿入される。BVSPがピクチャ全体、または現在のスライスに関して有効にされる場合、BVSPマージ候補はマージ候補リストに挿入される。A
0が利用可能である場合、A
0は候補リストに追加される。B
2が利用可能である場合、B
2は候補リストに追加される。
【0048】
[0058]次に、ビデオコーディングデバイスは、時間的マージ候補に関する導出プロセスを実施することができる。しかしながら、コロケートPUの動き情報が利用されるHEVCにおける時間的マージ候補導出プロセスと同様に、時間的マージ候補のターゲット参照ピクチャインデックスが、0となるように固定するのではなく変更され得る。0に等しいターゲット参照インデックスが(同じビュー中の)時間的参照ピクチャに対応する一方で、コロケート予測ユニット(PU)の動きベクトルがビュー間参照ピクチャを指すときには、ターゲット参照インデックスは、参照ピクチャリスト中のビュー間参照ピクチャの第1のエントリーに対応する別のインデックスに変更される。反対に、0に等しいターゲット参照インデックスがビュー間参照ピクチャに対応する一方で、コロケート予測ユニット(PU)の動きベクトルが時間的参照ピクチャを指すときには、ターゲット参照インデックスは、参照ピクチャリスト中の時間的参照ピクチャの第1のエントリーに対応する別のインデックスに変更される。
【0049】
[0059]上記の2つのステップから導出された候補の総数が候補の最大数未満である場合、l0CandIdxおよびl1CandIdxの仕様を除いてHEVCにおいて定義されたものと同じプロセスが実行される。combIdx、l0CandIdx、およびl1CandIdxの間の関係は、以下の表(表2と標記する)において定義されている。
【表1】
【0050】
[0060]最後に、ゼロ動きベクトルマージ候補を導出するためにHEVCで定義された手順と同じ手順が実施される。最新のソフトウェアでは、MRGリスト中の候補の総数は最大で6であり、five_minus_max_num_merge_candが、スライスヘッダ中で6から減算されるMRG候補の最大の数を指定するためにシグナリングされる。five_minus_max_num_merge_candは、両端値を含む0〜5の範囲内にあることに留意されたい。
【0051】
[0061]動きベクトル継承(MVI)の背後にある主な考えは、テクスチャ画像とそれの関連深度画像との間の動き特性の類似性を活用することである。深度画像中の所与のPUに関して、MVI候補は、対応するテクスチャブロックが利用可能である場合、すでにコーディングされている、対応するテクスチャブロックの動きベクトルと参照インデックスとを使用して再使用(reuses)する。
図5は、対応するテクスチャブロックが現在PUの中央の右下に位置特定される4×4ブロックとして選択される、MVI候補の導出プロセスの例を示す。このようにして、
図5は、深度コーディングのためのMVI候補の導出を示している。
【0052】
[0062]整数精度の動きベクトルが深度コーディングにおいて使用されるが、動きベクトルの4分の1精度がテクスチャコーディングのために利用されることに留意されたい。したがって、対応するテクスチャブロックの動きベクトルは、MVI候補として使用する前にスケーリングされ得る。MVI候補生成により、深度ビューに関するマージ候補リストが次のように構成される。MVI挿入のために、MVIが上で説明した手順によって導出される。視差ベクトルが利用可能である場合、視差ベクトルはマージリストに挿入される。
【0053】
[0063]空間的マージ候補を導出するために、また3D−HEVCにおけるIDMVC挿入のために、ビデオコーディングデバイスが空間的隣接PUの動き情報を、A
1、B
1、B
0、A
0、またはB
2の順序でチェックする。ビデオコーディングデバイスは次いで、拘束プルーニング手順を実施する。A
1とMVIとが同じ動きベクトルおよび同じ参照インデックスを有する場合、A
1は、候補リストに挿入されない。B
1とA
1/MVIとが同じ動きベクトルおよび同じ参照インデックスを有する場合、B
1が候補リストに挿入されない。B
0が利用可能である場合、B
0は候補リストに追加される。A
0が利用可能である場合、A
0は候補リストに追加される。B
2が利用可能である場合、B
2は候補リストに追加される。
【0054】
[0064]時間的マージ候補を導出するために、ビデオコーディングデバイスは、コロケートPUの動き情報が利用される、HEVCにおける時間的マージ候補導出プロセスと類似したプロセスを実施する。ただし、時間的マージ候補のターゲット参照ピクチャインデックスは、0に固定される代わりに変更され得る。0に等しいターゲット参照インデックスが(同じビュー中の)時間的参照ピクチャに対応する一方で、コロケート予測ユニット(PU)の動きベクトルがビュー間参照ピクチャを指すとき、ターゲット参照インデックスは、参照ピクチャリスト中のビュー間参照ピクチャの第1のエントリーに対応する別のインデックスに変更される。反対に、0に等しいターゲット参照インデックスがビュー間参照ピクチャに対応する一方で、コロケート予測ユニット(PU)の動きベクトルが時間的参照ピクチャを指すとき、ターゲット参照インデックスは、参照ピクチャリスト中の時間的参照ピクチャの第1のエントリーに対応する別のインデックスに変更される。
【0055】
[0065]3D−HEVCにおいて結合双予測マージ候補(combined bi-predictive merging candidates)を導出するために、ビデオコーディングデバイスは、導出された候補の総数に依存したプロセスを実施する。上記の2つのステップから導出された候補の総数が候補の最大数未満である場合、l0CandIdxおよびl1CandIdxの仕様を除いてHEVCにおいて定義されたものと同じプロセスが実行される。combIdx、l0CandIdx、およびl1CandIdxの間の関係は、表2(上記に再現される)において定義される。ゼロ動きベクトルマージ候補を導出するために、ビデオコーディングデバイスは、HEVCで定義された手順と同じ手順を実施し得る。
【0056】
[0066]JCT3V−E0184では、時間的ビュー間マージ候補に関するサブPUレベルのビュー間動き予測方法、すなわち、参照ビュー中の参照ブロックから導出された候補を使用することが提案されている。ビュー間動き予測の基本概念が上記で説明されているが、ここにおいて、依存ビュー中の現在PUに関して参照ブロックの動き情報だけが使用される。しかしながら、現在PUは、参照ビュー中の(視差ベクトルによって識別された現在PUと同じサイズを有する)参照エリアに対応し得、該参照エリアは豊富な動き情報を有し得る。したがって、サブPUレベルビュー間動き予測(SPIVMP)方法が
図6に示すように提案される。時間的ビュー間マージ候補は次のように導出される。
【0057】
[0067]割り当てられるサブPUは、N×Nピクセルのサイズを有する。まず、ビデオコーディングデバイスが現在PUを、それぞれが現在PUよりも小さいサイズを有する複数のサブPUに分割する。ビデオコーディングデバイスは、現在PUのサイズをnPSW×nPSHによって示し、サブPUのサイズをnPSWsub×nPSHSubによって示す。この例では、
nPSWsub = (min(N, nPSW))/2
nPSHSub = (min(N, nPSH))/2
である。
【0058】
[0068]次に、ビデオコーディングデバイスは、デフォルト動きベクトルtmvLXを(0,0)に設定し、各参照ピクチャリストに関して、参照インデックスrefLXを−1に設定する。ラスタ走査順序で各サブPUごとに、ビデオコーディングデバイスは、次式によって、参照サンプルロケーション(xRefSub,yRefSub)を取得するために、DVを現在サブPUの中央位置に加える:
xRefSub = Clip3(0, PicWidthInSamplesL-1, xPSub+nPSWsub/2+((mvDisp[0]+2) >> 2))
yRefSub = Clip3(0, PicHeightInSamplesL-1, yPSub+nPSHSub/2+((mvDisp[1]+2) >>2))
ビデオコーディングデバイスは、現在サブPUのための参照ブロックとして(xRefSub,yRefSub)をカバーする参照ビュー中のブロックを使用することができる。
【0059】
[0069]識別された参照ブロックでは、その識別された参照ブロックが時間的動きベクトルを使用してコーディングされる場合、以下が適用される。refL0とrefL1の両方が−1に等しく、現在サブPUがラスタ走査順序で第1のサブPUでない場合、参照ブロックの動き情報は前のサブPUすべてによって継承される。現在サブPUに関する候補動きパラメータとして、関連する動きパラメータが使用され得る。さらに、tmvLXおよびrefLXが現在サブPUの動き情報に更新される。さもなければ(参照ブロックがイントラコーディングされる場合)、現在サブPUの動き情報はtmvLXおよびrefLXに設定される。
【0060】
[0070]各層ごとにサブPUサイズを示すシンタックス要素がVPSに存在する。サブPUサイズが十分に大きく、たとえば現在PUよりも大きい場合、全PUはサブPUビュー間予測を使用していない。サブPUサイズが十分に大きく、たとえば最大コーディングユニット(LCU)よりも大きい場合、層内のPUはサブPUビュー間予測を利用しない。異なるサブPUブロックサイズ、たとえば、4×4、8×8、および16×16が適用され得る。
【0061】
[0071]そのようなシンタックス要素の詳細な意味論(semantics)は以下の通りである。log2_sub_pb_size_minus2[layerID]は、ビュー間マージ候補を使用した予測ユニットの復号において使用される可変SubPbSize[layerID]の値を指定する。log2_sub_pb_size_minus2の値は、両端値を含む、0から4の範囲内にあり得る。このシンタックス要素はue(v)でコーディングされる。したがって、このシンタックス要素のビット深度は可変となり得る。
【0062】
[0072]HEVCでは、ピクチャがコーディングされた後、ピクチャが復号ピクチャバッファ(DPB)に入れられる前、動きベクトルが、16×16のブロックレベルに記憶されるように圧縮され得る。3D−HEVCでは、しかしながら、動き予測が層をまたいで有効化されるので、動き圧縮は2ステップ形式で行われる。まず、あるビューのピクチャが復号された後、そのピクチャがDPBに入れられる前、そのピクチャは8×8のブロックレベルに圧縮される。アクセスユニット全体が復号される、つまり、アクセスユニットの各層の各ピクチャが復号されるとき、16×16ブロックレベルへの動き圧縮が行われる。HEVCでは、各8×8ブロックに対して、多くても2つの動きベクトルが維持される。それら多くても2つの動きベクトルは、RefPicList0およびRefPicList1にそれぞれ対応する2つの動きベクトルであるか、または、どちらもRefPicList0に対応する、2つのPU(4×8が2つ、8×4が2つ)に属する2つの動きベクトルであるかのいずれかであり得る。
【0063】
[0073]JCT3V−F0128で提案されているように、サブPUレベルの動き予測(すなわち、サブPU MPIモード)に基づく動きパラメータ継承(MPI)マージ候補が動き予測に利用されることを示すために、インデックス値がシグナリングされ得る。提案されているサブPUレベルのMPIモードマージ候補を、現在の深度PU内の8×8ピクセルブロックごとに用いて、現在の8×8ピクセルブロックの中央位置をカバーするコロケートテクスチャブロックの動きパラメータが継承される。提案されているサブPU MPIモードでは、種々の動きベクトルが、1つの深度PU内の8×8ピクセルのサブPUに対して継承され得る。
【0064】
[0074]現在の3D−HEVC規格は、特にサブPU MPIモードを考慮するとき、以下の問題を有する。ビュー間動き予測のサブPUサイズが4×4ピクセルに等しい場合、4×4ピクセルブロックの動き圧縮プロセスが必要とされ、これはHEVCベースの設計と整合がとれない(not aligned with)。さらに、サブPU MPIモードが適用されるときには、動きベクトルの精度を制御する方法はなく、8×8ピクセルのサブPU MPIモードが常に使用される。言い換えれば、サブPU MPIモードが適用されるときには、4×4ピクセルおよび16×16ピクセルのサブPUが処理され得ず、コーディングデバイスは8×8ピクセルのサブPUを使用することを強いられ、これは最適ではないことがある。
【0065】
[0075]サブPUビュー間動き予測、サブPU MPIモードおよび動き圧縮に関する技法が本明細書で説明される。すなわち、サブPU MPIサイズを示すシンタックス要素が説明される。いくつかの例では、シンタックス要素はlog2_sub_pb_mpi_size_minus3と名付けられ得る。このシンタックス要素の値の範囲は、両端値を含む0〜3である。このシンタックス要素をビデオコーディング方式に含めることにより、ビデオコーディングデバイスがHEVCベースの設計を実装している場合でも、ビデオコーディングデバイスは、4×4ピクセルブロックの動き補償に固有の処理を使用し得る。さらに、このシンタックス要素を含めることにより、8×8ピクセル以外のサイズを持つサブPU MPIが使用され得る。たとえば、4×4ピクセルおよび16×16ピクセルのサブPU MPIが使用されて、サブPU MPIが様々なコーディング技法で利用され得る確度および精度を向上させ得る。この追加されたフレキシビリティはさらに、サブPU MPIが適用可能であることをインデックス値が示すときに、コーディング効率を向上させ、ビデオコーディング中の処理速度を向上させることになる。
【0066】
[0076]そのようなシンタックス要素(たとえば、log2_sub_pb_mpi_size_minus3など、サブPU MPIサイズを示すシンタックス要素)は、すべての深度ビュー(すなわち、深度ブロックの各層)と関連付けられ、したがって、ビデオパラメータセット(VPS)、ピクチャパラメータセット(PPS)、またはシーケンスパラメータセット(SPS)に一度、存在する。シンタックス要素がPPSおよびSPS(すなわち、シンタックス要素log2_sub_pb_mpi_size_minus3の2つのアクティブインスタンス)に存在するとき、これらの2つのシンタックス要素の値は同じとなり得る。代替的に、そのようなシンタックス要素は、VPS、SPSまたはPPSに一度、各深度ビューごとに存在し得る。
【0067】
[0077]サブPU MPIに使用されるサブPUのサイズは8×8から始まる。現在の深度PUが
(1<<(log2_sub_pb_mpi_size_minus3+3))x(1<<(log2_sub_pb_mpi_size_minus3+3))
よりも大きいかそれに等しいサイズを有するときには、サブPU MPIは現在PUに適用されず、元のMPIが適用される。
【0068】
[0078]log2_sub_pb_mpi_size_minus3が1に等しいかそれより大きいとき、この場合の16×16への動き圧縮は、同じアクセスユニット内のテクスチャビューのすべてのピクチャが復号されると行われ得る。この場合、テクスチャビューが深度ビューとは独立してコーディングされるとき、アクセスユニット内のテクスチャビューのすべてのピクチャが、深度ビューのいずれかのピクチャがコーディングされる前に、より早期に復号され得、また、テクスチャピクチャが復号された後、動き圧縮がそれらのテクスチャピクチャに対して行われ得る。
【0069】
[0079]log2_sub_pb_mpi_size_minus3が0に等しい、つまり、サブPU MPIサイズが8×8であるとき、またコロケートされたテクスチャブロックが2つのPU(4×8または8×4)を含むとき、現在のサブPUは、4×8または8×4のサイズを持つ、2つのより小さいブロックにさらにパーティション分割され得、これら2つのより小さいブロック上における動き補償(単方向)はサブPU MPIモードで適用される。RefPicList0に対応する2つの動きベクトルが、深度PUで現在のサブPUについて継承される。JCT3V−F0128などにおいてサブPU MPIが適用されるときに、8×8かまたはそれ以上のサイズの動き補償のみを有効化する代わりに、そのようなサブPUは、4×8または8×4に等しいブロックサイズで動き補償され得る。代替的に、そのようなパーティション(partition)を有効化することは、VPS、SPSまたはPPSにおいてシンタックス要素(たとえばフラグ)によってシグナリングされ得る。
【0070】
[0080]いくつかの例では、ビデオコーディングデバイスが、最小の動き補償サイズに関して、3D−HEVC設計をHEVCと整合(align)させ得る。したがって、4×4に等しいサブPUサイズはこれらの例において無効化(disabled)され得る。そのような場合、log2_sub_pb_size_minus2はlog2_sub_pb_size_minus3に変更され得、log2_sub_pb_size_minus3の範囲は、両端値を含む0〜3となる。
【0071】
[0081]
図7は、本開示の技法を利用し得る例示的なビデオコーディングシステム10を示すブロック図である。本明細書で説明されるように、「ビデオコーダ」という用語は、総称的にビデオエンコーダとビデオデコーダの両方を指す。本開示では、「ビデオコーディング」または「コーディング」という用語は、ビデオ符号化またはビデオ復号を総称的に指し得る。
【0072】
[0082]
図7に示すように、ビデオコーディングシステム10は、ソースデバイス12と宛先デバイス14とを含む。ソースデバイス12は符号化ビデオデータを生成する。したがって、ソースデバイス12は、ビデオ符号化デバイスまたはビデオ符号化装置と呼ばれ得る。宛先デバイス14は、ソースデバイス12によって生成された符号化ビデオデータを復号し得る。したがって、宛先デバイス14は、ビデオ復号デバイスまたはビデオ復号装置と呼ばれ得る。ソースデバイス12および宛先デバイス14は、ビデオコーディングデバイスまたはビデオコーディング装置の例であり得る。
【0073】
[0083]ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、モバイルコンピューティングデバイス、ノートブック(たとえば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンのような電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、車内コンピュータなどを含む、広範囲のデバイスを備え得る。
【0074】
[0084]宛先デバイス14は、チャネル16を介してソースデバイス12から符号化されたビデオデータを受信し得る。チャネル16は、ソースデバイス12から宛先デバイス14に符号化ビデオデータを移動させることが可能な、1つまたは複数の媒体またはデバイスを備え得る。一例では、チャネル16は、ソースデバイス12がリアルタイムで符号化ビデオデータを直接宛先デバイス14に送信することを可能にする、1つまたは複数の通信媒体を備え得る。この例では、ソースデバイス12は、ワイヤレス通信プロトコルなどの通信規格に従って、符号化ビデオデータを変調し得、変調されたビデオデータを宛先デバイス14に送信し得る。1つまたは複数の通信媒体は、無線周波(RF)スペクトルまたは1つもしくは複数の物理伝送線路などの、ワイヤレスおよび/または有線の通信媒体を含み得る。1つまたは複数の通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはグローバルネットワーク(たとえば、インターネット)などの、パケットベースネットワークの一部を形成し得る。チャネル16は、ソースデバイス12から宛先デバイス14への通信を容易にするルータ、スイッチ、基地局、または他の機器などの、様々なタイプのデバイスを含み得る。
【0075】
[0085]別の例では、チャネル16は、ソースデバイス12によって生成された符号化ビデオデータを記憶する記憶媒体を含み得る。この例では、宛先デバイス14は、ディスクアクセスまたはカードアクセスを介して記憶媒体にアクセスし得る。記憶媒体は、Blu−ray(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、または符号化ビデオデータを記憶するための他の適切なデジタル記憶媒体など、様々なローカルにアクセスされるデータ記憶媒体を含み得る。
【0076】
[0086]さらなる一例では、チャネル16は、ソースデバイス12によって生成された符号化ビデオデータを記憶する、ファイルサーバまたは別の中間ストレージデバイスを含み得る。この例では、宛先デバイス14は、ストリーミングまたはダウンロードを介して、ファイルサーバまたは他の中間ストレージデバイスに記憶された符号化ビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶することと、符号化ビデオデータを宛先デバイス14に送信することとが可能なタイプのサーバであり得る。例示的なファイルサーバは、(たとえば、ウェブサイト用の)ウェブサーバ、ファイル転送プロトコル(FTP)サーバ、ネットワーク接続ストレージ(NAS)デバイス、およびローカルディスクドライブを含む。
【0077】
[0087]宛先デバイス14は、インターネット接続などの標準的なデータ接続を通じて、符号化ビデオデータにアクセスし得る。例示的なタイプのデータ接続は、ファイルサーバに記憶されている符号化ビデオデータにアクセスするのに適した、ワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、有線接続(たとえば、DSL、ケーブルモデムなど)、またはその両方の組合せを含み得る。ファイルサーバからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。
【0078】
[0088]本開示の技法は、ワイヤレスの適用例または設定に限定されない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのビデオデータの符号化、データ記憶媒体に記憶されたビデオデータの復号、または他の用途などの、様々なマルチメディア用途をサポートするビデオコーディングに適用され得る。いくつかの例では、ビデオコーディングシステム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオテレフォニーなどの用途をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【0079】
[0089]
図7の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。いくつかの例では、出力インターフェース22は、変調器/復調器(モデム)および/または送信機を含み得る。ビデオソース18は、ビデオキャプチャデバイス、たとえばビデオカメラ、以前にキャプチャされたビデオデータを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオデータを受信するためのビデオフィードインターフェース、および/もしくは、ビデオデータを生成するためのコンピュータグラフィックスシステム、またはビデオデータのそのようなソースの組合せを含み得る。
【0080】
[0090]ビデオエンコーダ20は、ビデオソース18からのビデオデータを符号化し得る。いくつかの例では、ソースデバイス12は、出力インターフェース22を介して宛先デバイス14へ、符号化ビデオデータを直接送信する。他の例では、符号化ビデオデータはまた、復号および/または再生のための宛先デバイス14による後のアクセスのために、記憶媒体またはファイルサーバ上に記憶され得る。
【0081】
[0091]ビデオエンコーダ20は、本開示による技法をさらに実行し得る。たとえば、ビデオエンコーダ20は、深度予測ユニット(深度PU)における動きパラメータ継承(MPI)についてのサブ予測ユニット(サブPU)のサイズを決定し得る。深度PUは1つまたは複数のサブPUであり得る。各サブPUは等しいサイズを有し得る。さらに、別個の動き情報が、それぞれのサブPUにコロケートされたテクスチャブロックから、各サブPUについて継承され得る。ビデオエンコーダ20は、サブPUの各々とコロケートされたテクスチャブロックに対応するMPIに少なくも部分的に基づいて、深度ブロックの各サブPUを符号化し得る。ビデオエンコーダ20は、その深度PUにおけるMPIに関する各サブPUのサイズを示すシンタックス要素をさらに生成し得る。
【0082】
[0092]
図7の例では、宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。いくつかの例では、入力インターフェース28は、受信機および/またはモデムを含む。入力インターフェース28は、チャネル16を通じて符号化されたビデオデータを受信し得る。ディスプレイデバイス32は、宛先デバイス14と一体化されてよく、またはその外部にあってよい。一般に、ディスプレイデバイス32は、復号ビデオデータを表示する。ディスプレイデバイス32は、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなどの、様々なディスプレイデバイスを備え得る。
【0083】
[0093]いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、そのスケーラブルビデオコーディング(SVC:Scalable Video Coding)およびマルチビュービデオコーディング(MVC:Multiview Video Coding)拡張を含む、ISO/IEC MPEG−4 VisualおよびITU−T H.264(ISO/IEC MPEG−4 AVCとしても知られる)などのビデオ圧縮規格に従って動作する。他の例では、ビデオエンコーダ20およびビデオデコーダ30は、現在開発中の高効率ビデオコーディング(HEVC)規格を含む、他のビデオ圧縮規格に従って動作し得る。「HEVC Working Draft 9」と呼ばれる、現在開発されているHEVC規格のドラフトは、ブロス(Bross)らの「High Efficiency Video Coding(HEVC) text specification draft 9」、ITU-T SG16 WP3およびISO/IEC JTC1/SC29/WG11のJoint Collaborative Team on Video Coding(JCT-VC)、第11回会議:中国、上海、2012年10月、に記載されている。ただし、本開示の技法は、いかなる特定のコーディング規格またはコーディング技法にも限定されない。「HEVC Working Draft 10」または「WD10」と呼ばれるHEVC規格の別の最近のドラフトは、文書JCTVC−L1003v34、Brossら、「High efficiency video coding (HEVC) text specification draft 10 (for FDIS & Last Call)」、ITU-T SG16 WP3とISO/IEC JTC1/SC29/WG11とのJoint Collaborative Team on Video Coding(JCT-VC)、第12回会議:ジュネーブ、スイス、2013年1月14〜23日、に記載されている。HEVC規格のさらに別のドラフトは、本明細書で「WD10改訂」と呼ばれ、Brossら、「Editors’ proposed corrections to HEVC version 1」、ITU-T SG16 WP3およびISO/IEC JTC1/SC29/WG11のJoint Collaborative Team on Video Coding(JCT-VC)、第13回会議、仁川、韓国、2013年4月、に記載されている。
【0084】
[0094]ビデオデコーダ30はまた、本開示による技法を実行するように構成され得る。たとえば、ビデオデコーダ30は、深度予測ユニット(深度PU)における動きパラメータ継承(MPI)についてのサブ予測ユニット(サブPU)のサイズを示すシンタックス要素を受信し得る。深度PUは1つまたは複数のサブPUであり得る。各サブPUは、シンタックス要素によって示されたサイズに等しいサイズを有し得る。さらに、別個の動き情報が、それぞれのサブPUにコロケートされたテクスチャブロックから、各サブPUについて継承され得る。サブPU MPIモードを示すインデックス値を受信すると、ビデオデコーダ30は、サブPUの各々とコロケートされた対応するテクスチャブロックに少なくとも部分的に基づいて、深度ブロックのサブPUの各々についてMPIをさらに継承し得る。
【0085】
[0095]
図7は一例にすぎず、本開示の技法は、ビデオ符号化デバイスとビデオ復号デバイスとの間の任意のデータ通信を必ずしも含まないビデオコーディング設定(たとえば、ビデオ符号化またはビデオ復号)に適用され得る。他の例では、データが、ローカルメモリから取り出されること、ネットワークを介してストリーミングされることなどが行われる。ビデオ符号化デバイスはデータを符号化し、メモリに記憶し得、および/またはビデオ復号デバイスはメモリからデータを取り出し、復号し得る。多くの例では、ビデオ符号化およびビデオ復号は、互いに通信しないが、メモリにデータを符号化し、および/またはメモリからデータを取り出して復号するだけであるデバイスによって実行される。
【0086】
[0096]ビデオエンコーダ20およびビデオデコーダ30は、各々1つもしくは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ハードウェア、またはそれらの任意の組合せなどの、様々な適切な回路のいずれかとして実装され得る。本技法がソフトウェアに部分的に実装される場合、デバイスは、適切な非一時的コンピュータ可読記憶媒体にソフトウェア用の命令を記憶し得、本開示の技法を実行するために1つまたは複数のプロセッサを使用してハードウェア内でそれらの命令を実行し得る。(ハードウェア、ソフトウェア、ハードウェアとソフトウェアの組合せなどを含む)上記のいずれも、1つまたは複数のプロセッサであると見なされ得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダに含まれてよく、それらのうちのいずれかが、それぞれのデバイスの中で組み合わされたエンコーダ/デコーダ(CODEC)の一部として組み込まれてよい。
【0087】
[0097]本開示は概して、特定の情報を「シグナリングする」ビデオエンコーダ20に言及し得る。「シグナリング」という用語は概して、圧縮されたビデオデータを復号するために使用されるシンタックス要素および/または他のデータの通信を指し得る。そのような通信は、リアルタイムまたはほぼリアルタイムで発生し得る。代替的に、そのような通信は、符号化のときにおいて符号化されるビットストリームの中のシンタックス要素を、コンピュータ可読記憶媒体に記憶するときに発生し得るような、ある長さの時間にわたって発生することがあり、次いで、ビデオ復号デバイスが、これらのシンタックス要素を、この媒体に記憶された後の任意の時間に取り出し得る。いくつかの例では、エンコーダの観点から、シグナリングは符号化ビットストリームを生成することを含み得、デコーダの観点から、シグナリングはコーディングされたビットストリームを受信し解析することを含み得る。
【0088】
[0098]上記で簡単に述べられたように、ビデオエンコーダ20は、ビデオデータを符号化する。ビデオデータは、1つまたは複数のピクチャを備え得る。ピクチャの各々は、ビデオの一部を形成する静止画像である。ビデオエンコーダ20がビデオデータを符号化するとき、ビデオエンコーダ20はビットストリームを生成し得る。ビットストリームは、ビデオデータのコーディングされた表現を形成するビットのシーケンスを含み得る。ビットストリームは、コーディングされたピクチャと、関連のデータとを含み得る。コーディングされたピクチャは、ピクチャのコーディングされた表現である。関連のデータは、シーケンスパラメータセット(SPS)と、ピクチャパラメータセット(PPS)と、ビデオパラメータセット(VPS)と、適応パラメータセット(APS)と、スライスヘッダと、ブロックヘッダと、他のシンタックス構造とを含み得る。
【0089】
[0099]ピクチャは、S
L、S
Cb、およびS
Crと示される3つのサンプルアレイを含み得る。S
Lは、ルーマサンプルの2次元アレイ(すなわち、ブロック)である。ルーマサンプルは、本明細書では「Y」サンプルと呼ばれることもある。S
Cbは、Cbクロミナンスサンプルの2次元アレイである。S
Crは、Crクロミナンスサンプルの2次元アレイである。クロミナンスサンプルは、本明細書では「クロマ」サンプルと呼ばれる場合もある。Cbクロミナンスサンプルは、本明細書では「Uサンプル」と呼ばれることがある。Crクロミナンスサンプルは、本明細書では「Vサンプル」と呼ばれることがある。
【0090】
[0100]いくつかの例では、ビデオエンコーダ20は、ピクチャのクロマアレイ(すなわち、S
CbおよびS
Cr)をダウンサンプリングし得る。たとえば、ビデオエンコーダ20は、YUV4:2:0ビデオフォーマット、YUV4:2:2ビデオフォーマット、または4:4:4ビデオフォーマットを使用し得る。YUV4:2:0ビデオフォーマットにおいて、ビデオエンコーダ20は、クロマアレイの高さおよび幅がルーマアレイの2分の1になるようにクロマアレイをダウンサンプリングし得る。YUV4:2:2ビデオフォーマットにおいて、ビデオエンコーダ20は、クロマアレイの幅がルーマアレイの2分の1になり、クロマアレイの高さがルーマアレイと同じになるように、クロマアレイをダウンサンプリングし得る。YUV4:4:4ビデオフォーマットにおいて、ビデオエンコーダ20は、クロマアレイをダウンサンプリングしない。
【0091】
[0101]ピクチャの符号化された表現を生成するために、ビデオエンコーダ20はコーディングツリーユニット(CTU)のセットを生成し得る。CTUの各々は、ルーマサンプルのコーディングツリーブロック、クロマサンプルの2つの対応するコーディングツリーブロック、およびコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造であり得る。コーディングツリーブロックは、サンプルのN×Nのブロックであり得る。CTUは、「ツリーブロック」または「最大コーディングユニット」(LCU)とも呼ばれることがある。HEVCのCTUは、H.264/AVCのような、他の規格のマクロブロックに広い意味で類似し得る。しかしながら、CTUは、必ずしも特定のサイズには限定されず、1つまたは複数のコーディングユニット(CU)を含み得る。
【0092】
[0102]ピクチャを符号化することの一部として、ビデオエンコーダ20は、ピクチャの各スライスの符号化された表現(すなわち、コーディングされたスライス)を生成し得る。コーディングされたスライスを生成するために、ビデオエンコーダ20は、一連のCTUを符号化し得る。本開示は、CTUの符号化された表現をコーディングされたCTUと呼ぶことがある。いくつかの例では、スライスの各々は、整数個のコーディングされたCTUを含む。
【0093】
[0103]コーディングされたCTUを生成するために、ビデオエンコーダ20は、コーディングツリーブロックをコーディングブロックに分割するように、CTUのコーディングツリーブロックに対して4分木分割(quad-tree partitioning)を再帰的に実行することができ、したがって「コーディングツリーユニット」という名称である。コーディングブロックは、サンプルのN×Nブロックである。CUは、ルーマサンプルアレイ、CbサンプルアレイおよびCrサンプルアレイ、ならびにコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造を有するピクチャの、ルーマサンプルの1つのコーディングブロックおよびクロマサンプルの2つの対応するコーディングブロックであり得る。ビデオエンコーダ20は、CUのコーディングブロックを1つまたは複数の予測ブロックにパーティション分割することができる。予測ブロックは、同じ予測が適用されるサンプルの矩形(すなわち、正方形または非正方形)ブロックであり得る。CUの予測ユニット(PU)は、ルーマサンプルの予測ブロック、ピクチャのクロマサンプルの2つの対応する予測ブロック、および予測ブロックサンプルを予測するために使用されるシンタックス構造であり得る。ビデオエンコーダ20は、CUの各PUのルーマ予測ブロック、Cb予測ブロック、およびCr予測ブロックについて、予測ルーマブロックと、予測Cbブロックと、予測Crブロックとを生成することができる。
【0094】
[0104]ビデオエンコーダ20は、PUに関する予測ブロックを生成するためにイントラ予測またはインター予測を使用することができる。ビデオエンコーダ20がPUの予測ブロックを生成するためにイントラ予測を使用する場合、ビデオエンコーダ20は、PUに関連付けられたピクチャの復号されたサンプルに基づいて、PUの予測ブロックを生成し得る。
【0095】
[0105]ビデオエンコーダ20がPUの予測ブロックを生成するためにインター予測を使用する場合、ビデオエンコーダ20は、PUに関連付けられたピクチャ以外の1つまたは複数のピクチャの復号されたサンプルに基づいて、PUの予測ブロックを生成し得る。ビデオエンコーダ20は、PUの予測ブロックを生成するために、単予測(uni-prediction)または双予測(bi-prediction)を使用し得る。ビデオエンコーダ20が、PUのための予測ブロックを生成するために単予測を使用するとき、PUは単一のMVを有し得る。ビデオエンコーダ20が、PUのための予測ブロックを生成するために単予測を使用するとき、PUは2つのMVを有し得る。
【0096】
[0106]ビデオエンコーダ20がCUの1つまたは複数のPUに関する予測ルーマブロックと、予測Cbブロックと、予測Crブロックとを生成した後、ビデオエンコーダ20は、CUに関するルーマ残差ブロックを生成することができる。CUのルーマ残差ブロック中の各サンプルは、CUの予測ルーマブロックの1つの中のルーマサンプルとCUの元のルーマコーディングブロック中の対応するサンプルとの間の差分を示す。加えて、ビデオエンコーダ20は、CUに関するCb残差ブロックを生成することができる。CUのCb残差ブロック中の各サンプルは、CUの予測Cbブロックのうちの1つの中のCbサンプルと、CUの元のCbコーディングブロック中の対応するサンプルとの間の差分を示し得る。ビデオエンコーダ20は、CUに関するCr残差ブロックを生成することもできる。CUのCr残差ブロック中の各サンプルは、CUの予測Crブロックのうちの1つの中のCrサンプルと、CUの元のCrコーディングブロック中の対応するサンプルとの間の差分を示し得る。
【0097】
[0107]さらに、ビデオエンコーダ20は、CUのルーマ残差ブロックと、Cb残差ブロックと、Cr残差ブロックとを、1つまたは複数のルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックに分解するために、4分木分割を使用し得る。変換ブロックは、同じ変換が適用されるサンプルの矩形ブロックであってもよい。CUの変換ユニット(TU)は、ルーマサンプルの変換ブロック、クロマサンプルの2つの対応する変換ブロック、および変換ブロックサンプルを変換するために使用されるシンタックス構造であり得る。したがって、CUの各TUは、ルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックに関連付けられ得る。TUに関連付けられたルーマ変換ブロックはCUのルーマ残差ブロックのサブブロックであり得る。Cb変換ブロックはCUのCb残差ブロックのサブブロックであり得る。Cr変換ブロックは、CUのCr残差ブロックのサブブロックであり得る。3Dコーディングに関して、深度ブロックの中の深度値は、サンプル値として同様に表されてよく、各々は、所与のピクセルロケーションに関連付けられた深度のレベルを示す。深度ブロックをコーディングする際に、選択された候補の動き情報を継承または使用するための候補のリストが生成される、特にスキップモードまたはマージモードなどのモードにおいて、本開示の技法が、深度ブロックのコーディングに適用可能である。
【0098】
[0108]ビデオエンコーダ20は、TUに関するルーマ係数ブロックを生成するために、TUのルーマ変換ブロックに1回または複数回の変換を適用し得る。係数ブロックは、変換係数の2次元アレイであり得る。変換係数は、スカラー量であってよい。ビデオエンコーダ20は、TUのためのCb係数ブロックを生成するために、TUのCb変換ブロックに1回または複数回の変換を適用し得る。ビデオエンコーダ20は、TUのためのCr係数ブロックを生成するために、TUのCr変換ブロックに1回または複数回の変換を適用し得る。
【0099】
[0109]係数ブロック(たとえば、ルーマ係数ブロック、Cb係数ブロックまたはCr係数ブロック)を生成した後、ビデオエンコーダ20は、係数ブロックを量子化し得る。量子化は、一般に、変換係数を表すために使用されるデータの量をできるだけ減らすために変換係数が量子化され、さらなる圧縮を実現する処理を指す。ビデオエンコーダ20が係数ブロックを量子化した後、ビデオエンコーダ20は、量子化された変換係数を示すシンタックス要素をエントロピー符号化することができる。たとえば、ビデオエンコーダ20は、量子化された変換係数を示すシンタックス要素に対してコンテキスト適応型バイナリ算術コーディング(CABAC)を実行することができる。ビデオエンコーダ20は、エントロピー符号化されたシンタックス要素をビットストリーム中に出力し得る。
【0100】
[0110]ビデオデコーダ30は、ビデオエンコーダ20によって生成されたビットストリームを受信し得る。加えて、ビデオデコーダ30は、ビットストリームからシンタックス要素を復号するためにビットストリームを解析し得る。ビデオデコーダ30は、ビットストリームから復号されたシンタックス要素に少なくとも部分的に基づいて、ビデオデータのピクチャを再構成し得る。ビデオデータを再構成するための処理は、全般に、ビデオエンコーダ20によって実行される処理の逆であり得る。たとえば、ビデオデコーダ30は、PUのMVを使用して、現在のCUのPUの予測サンプルブロックを決定することができる。加えて、ビデオデコーダ30は、現在のCUのTUと関連付けられる変換係数ブロックを逆量子化することができる。ビデオデコーダ30は、現在CUのTUに関連付けられた変換ブロックを再構成するために、変換係数ブロックに対して逆変換を実行し得る。ビデオデコーダ30は、現在のCUのPUのための予測サンプルブロックのサンプルを現在のCUのTUの変換ブロックの対応するサンプルに加算することによって、現在のCUのコーディングブロックを再構成し得る。ピクチャの各CUのコーディングブロックを再構成することによって、ビデオデコーダ30は、ピクチャを再構成し得る。
【0101】
[0111]いくつかの例では、ビデオエンコーダ20は、マージモードもしくはスキップモード、または場合によっては高度MV予測(AMVP)モードを使用して、PUの動き情報をシグナリングし得る。PUの動き情報は、PUの動きベクトルと、PUの参照インデックスとを含み得る。ビデオエンコーダ20がマージモードを使用して現在PUの動き情報をシグナリングするとき、ビデオエンコーダ20は、マージ候補リストを生成する。マージ候補リストは、候補のセットを含む。候補は、現在PUに空間的または時間的に隣接するPUの動き情報を示し得る。ビデオエンコーダ20は、次いで、候補リストの中から候補を選択し得、選択された候補によって示される動き情報を、現在PUの動き情報として使用し得る。さらに、マージモードでは、ビデオエンコーダ20は、選択された候補の、候補リストの中での位置をシグナリングし得る。ビデオデコーダ30は、同じ候補リストを生成し得、選択された候補の位置の表示に基づいて、選択された候補を決定し得る。ビデオデコーダ30は、次いで、現在PUに関する予測サンプルを生成するために、選択された候補の動き情報を使用し得、現在PUとマージモードで識別された予測PUの予測サンプルとの差として、残差信号を生成し得る。
【0102】
[0112]スキップモードは、ビデオエンコーダ20が候補リストを生成し、候補のリストの中から候補を選択するという点で、マージモードと同様である。ただし、ビデオエンコーダ20がスキップモードを使用して現在PU(たとえば、深度ブロック)の動き情報をシグナリングするとき、ビデオエンコーダ20は、任意の残差信号の生成を避けることができる。
【0103】
[0113]AMVPモードは、ビデオエンコーダ20が候補リストを生成し、候補リストの中から候補を選択するという点で、マージモードと同様である。ただし、ビデオエンコーダ20がAMVPモードを使用して現在PU(たとえば、深度ブロック)の動き情報をシグナリングするとき、ビデオエンコーダ20は、選択された候補の候補リストの中での位置をシグナリングすることに加えて、現在PUのための動きベクトル差分(MVD)と参照インデックスとをシグナリングし得る。現在PUのためのMVDは、現在PUのMVと、選択されたMV候補のMVとの間の差を示し得る。単予測では、ビデオエンコーダ20は、現在PUについての1つのMVDと1つの参照インデックスとをシグナリングすることができる。双予測では、ビデオエンコーダ20は、現在PUについての2つのMVDと2つの参照インデックスとをシグナリングし得る。本開示に一致する深度ブロック予測に対して、ビデオエンコーダ20は、一般に、現在PUについての1つのMVDと1つの参照インデックスをシグナリングし得るが、深度ブロック予測はまた、2つのMVDおよび2つの参照インデックスがシグナリングされる双予測と同様の技法を使用し得る。
【0104】
[0114]さらに、現在PUの動き情報がAMVPモードを使用してシグナリングされると、ビデオデコーダ30は、同じ候補リストを生成し得、選択された候補の位置の表示に基づいて、選択された候補を決定し得る。ビデオデコーダ30は、MVDを、選択された候補のMVに加算することによって、現在PUのMVを復元し得る。ビデオデコーダ30は、次いで、現在PUのための予測サンプルブロックを生成するために、復元されたMV、または現在PUのMVを使用し得る。
【0105】
[0115]本開示によれば、ビデオエンコーダ20およびビデオデコーダ30は、ビデオコーディングプロセス(たとえば、ビデオ符号化またはビデオ復号)の一部として、本明細書で説明される1つまたは複数の技法を実行し得る。たとえば、ビデオエンコーダ20は、深度予測ユニット(深度PU)における動きパラメータ継承(MPI)についてのサブ予測ユニット(サブPU)のサイズを決定し得る。深度PUは1つまたは複数のサブPUであり得る。各サブPUは等しいサイズを有し得る。さらに、別個の動き情報が、それぞれのサブPUにコロケートされたテクスチャブロックから、各サブPUについて継承され得る。ビデオエンコーダ20は、サブPUの各々とコロケートされたテクスチャブロックに対応するMPIに少なくも部分的に基づいて、深度ブロックの各サブPUを符号化し得る。ビデオエンコーダ20は、その深度PUにおけるMPIに関する各サブPUのサイズを示すシンタックス要素(たとえば、上記で説明したシンタックス要素、log2_sub_pb_mpi_size_minus3)をさらに生成および送信し得る。
【0106】
[0116]さらに、ビデオデコーダ30は、深度予測ユニット(深度PU)における動きパラメータ継承(MPI)についてのサブ予測ユニット(サブPU)のサイズを示すシンタックス要素(たとえば、ビデオエンコーダ20によって生成および送信されるシンタックス要素)を受信し得る。深度PUは1つまたは複数のサブPUであり得る。各サブPUは、シンタックス要素によって示されたサイズに等しいサイズを有し得る。さらに、別個の動き情報が、それぞれのサブPUにコロケートされたテクスチャブロックから、各サブPUについて継承され得る。サブPU MPIモードを示すインデックス値を受信すると、ビデオデコーダ30は、サブPUの各々とコロケートされた対応するテクスチャブロックに少なくとも部分的に基づいて、深度ブロックのサブPUの各々についてMPIをさらに継承し得る。
【0107】
[0117]
図8は、本開示の技法を実装し得る例示的なビデオエンコーダ20を示すブロック図である。
図8は、説明のために提供され、本開示で広く例示され説明されるような技法を限定するものと見なされるべきではない。説明のために、本開示は、HEVCコーディングのコンテキストにおいてビデオエンコーダ20について説明する。しかしながら、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
【0108】
[0118]
図8の例において、ビデオエンコーダ20は、予測処理ユニット100と、残差生成ユニット102と、変換処理ユニット104と、量子化ユニット106と、逆量子化ユニット108と、逆変換処理ユニット110と、再構成ユニット112と、フィルタユニット114と、復号ピクチャバッファ116と、エントロピー符号化ユニット118とを含む。予測処理ユニット100は、インター予測処理ユニット120と、イントラ予測処理ユニット126とを含む。インター予測処理ユニット120は、動き推定ユニット122と、動き補償ユニット124とを含む。他の例では、ビデオエンコーダ20は、より多数の、より少数の、または異なる機能的コンポーネントを含み得る。
【0109】
[0119]ビデオエンコーダ20は、ビデオデータを受信し得る。ビデオエンコーダ20は、ビデオデータのピクチャのスライスの中の各CTUを符号化し得る。CTUの各々は、ピクチャの等しいサイズのルーマコーディングツリーブロック(CTB)と、対応するCTBとに関連付けられ得る。CTUを符号化することの一部として、予測処理ユニット100は、CTUのCTBを徐々により小さいブロックに分割するために、4分木分割を実行し得る。より小さいブロックは、CUのコーディングブロックであり得る。たとえば、予測処理ユニット100は、CTUに関連付けられたCTBを4つの等しいサイズのサブブロックにパーティション分割し得、サブブロックのうちの1つまたは複数を4つの等しいサイズのサブサブブロックにパーティション分割し得る、などである。
【0110】
[0120]ビデオエンコーダ20は、CUの符号化された表現(すなわち、コーディングされたCU)を生成するために、CTUのCUを符号化し得る。CUを符号化することの一部として、予測処理ユニット100は、CUの1つまたは複数のPUの間でCUに関連付けられたコーディングブロックをパーティション分割し得る。したがって、各PUは、ルーマ予測ブロックおよび対応するクロマ予測ブロックに関連付けられ得る。ビデオエンコーダ20およびビデオデコーダ30は、様々なサイズを有するPUをサポートすることができる。上で示されたように、CUのサイズはCUのルーマコーディングブロックのサイズを指すことがあり、PUのサイズはPUのルーマ予測ブロックのサイズを指すことがある。特定のCUのサイズが2N×2Nであると仮定すると、ビデオエンコーダ20およびビデオデコーダ30は、イントラ予測に関して2N×2NまたはN×NのPUサイズをサポートし得、インター予測に関して2N×2N、2N×N、N×2N、N×N、または同様の対称のPUサイズをサポートし得る。ビデオエンコーダ20およびビデオデコーダ30はまた、インター予測に関して、2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズ向けに非対称のパーティショニング(asymmetric partitioning)をサポートし得る。
【0111】
[0121]インター予測処理ユニット120は、CUの各PUに対してインター予測を実施することによって、PUのための予測データを生成し得る。PUの予測データは、PUの予測サンプルブロックと、PUの動き情報とを含み得る。インター予測ユニット121は、PUがIスライス中にあるか、Pスライス中にあるか、Bスライス中にあるかに応じて、CUのPUに対して異なる動作を実行することができる。Iスライス中では、すべてのPUがイントラ予測される。したがって、PUがIスライス中にある場合、インター予測ユニット121は、PUに対してインター予測を実行しない。したがって、Iモードで符号化されるブロックでは、予測されるブロックは、同じフレーム内の以前に符号化された隣接ブロックからの空間的予測を使用して形成される。
【0112】
[0122]PUがPスライスの中にある場合、動き推定ユニット122は、PUのための参照領域について参照ピクチャのリスト(たとえば、「RefPicList0」)の中で参照ピクチャを探索し得る。PUの参照領域は、PUのサンプルブロックに最も密接に対応するサンプルブロックを含む参照ピクチャ内の領域であり得る。動き推定ユニット122は、PUのための参照領域を含む参照ピクチャの、RefPicList0の中での位置を示す参照インデックスを生成し得る。加えて、動き推定ユニット122は、PUのコーディングブロックと、参照領域と関連付けられる参照位置との間の空間変位を示すMVを生成し得る。たとえば、MVは、現在の復号されたピクチャ中の座標から参照ピクチャ中の座標までのオフセットを提供する2次元ベクトルであり得る。動き推定ユニット122は、PUの動き情報として参照インデックスとMVとを出力し得る。動き補償ユニット124は、PUの動きベクトルによって示された参照位置における実際のまたは補間されたサンプルに基づいて、PUの予測サンプルブロックを生成し得る。
【0113】
[0123]PUがBスライス中にある場合、動き推定ユニット122は、PUについての単予測または双予測を実施し得る。PUについての単予測を実施するために、動き推定ユニット122は、PUの参照領域についてRefPicList0の参照ピクチャまたは第2の参照ピクチャリスト(「RefPicList1」)を探索し得る。動き推定ユニット122は、PUの動き情報として、参照領域を含む参照ピクチャのRefPicList0またはRefPicList1中の位置を示す参照インデックスと、PUのサンプルブロックと参照領域と関連付けられる参照位置との間の空間変位を示すMVと、参照ピクチャがRefPicList0中にあるかRefPicList1中にあるかを示す1つまたは複数の予測方向インジケータとを出力し得る。動き補償ユニット124は、PUの動きベクトルによって示される参照領域における実際のサンプルまたは補間されたサンプルに少なくとも部分的に基づいて、PUの予測サンプルブロックを生成し得る。
【0114】
[0124]PUのための双方向インター予測を実行するために、動き推定ユニット122は、PUの参照領域についてRefPicList0中の参照ピクチャを探索することができ、また、PUの別の参照領域についてRefPicList1中の参照ピクチャを探索し得る。動き推定ユニット122は、参照領域を含む参照ピクチャのRefPicList0およびRefPicList1中での位置を示す参照ピクチャインデックスを生成し得る。加えて、動き推定ユニット122は、参照領域と関連付けられる参照位置とPUのサンプルブロックとの間の空間変位を示すMVを生成し得る。PUの動き情報は、PUの参照インデックスとMVとを含み得る。動き補償ユニット124は、PUの動きベクトルによって示される参照領域における実際のサンプルまたは補間されたサンプルに少なくとも部分的に基づいて、PUの予測サンプルブロックを生成し得る。
【0115】
[0125]本開示の1つまたは複数の技法によれば、ビデオエンコーダ20内の1つまたは複数のユニットは、ビデオ符号化処理の一部として、本明細書で説明される1つまたは複数の技法を実施し得る。また、たとえば深度処理ユニット125など、追加の3Dコンポーネントがビデオエンコーダ20内に含められ得る。深度処理ユニット125は、いくつかの例で、本開示の1つまたは複数の技法を実施し得る。
【0116】
[0126]たとえば、深度処理ユニット125ビデオエンコーダ20は、深度予測ユニット(深度PU)における動きパラメータ継承(MPI)についてのサブ予測ユニット(サブPU)のサイズを決定し得る。深度PUは1つまたは複数のサブPUであり得る。各サブPUは等しいサイズを有し得る。さらに、別個の動き情報が、それぞれのサブPUにコロケートされたテクスチャブロックから、各サブPUについて継承され得る。ビデオエンコーダ20の深度処理ユニット125は、サブPUの各々とコロケートされたテクスチャブロックに対応するMPIに少なくも部分的に基づいて、深度ブロックの各サブPUを符号化し得る。ビデオエンコーダ20の深度処理ユニット125は、その深度PUにおけるMPIに関する各サブPUのサイズを示すシンタックス要素をさらに生成し得る。
【0117】
[0127]種々の例では、ビデオエンコーダの予測処理ユニット100、インター予測処理ユニット120、動き推定ユニット122、動き補償ユニット124、イントラ予測処理ユニット126、深度処理ユニット125、および/または別のユニットが、本明細書で説明する技法と一致する、3Dビデオに関連付けられるデータを符号化する方法を実施し得る。これらのユニットのうちの1つ(またはそれらの任意の組合せ)が、たとえば、本明細書で説明するMPI技法をビデオ符号化処理の一部として実施するように構成され得る。
【0118】
[0128]続いて、ここで
図8の例の参照をする。イントラ予測処理ユニット126は、PUに対してイントラ予測を実行することによって、PUのための予測データを生成し得る。PUのための予測データは、PUのための予測サンプルブロックと様々なシンタックス要素とを含み得る。イントラ予測処理ユニット126は、Iスライス、Pスライス、およびBスライスの中のPUに対してイントラ予測を実施し得る。
【0119】
[0129]PUに対してイントラ予測を実行するために、イントラ予測処理ユニット126は、PUのための予測データの複数のセットを生成するために、複数のイントラ予測モードを使用し得る。イントラ予測モードを使用してPUの予測データのセットを生成するために、イントラ予測処理ユニット126は、そのイントラ予測モードと関連付けられた方向へ、PUのサンプルブロック全体にわたって、隣接PUのサンプルブロックからのサンプルを延ばし得る。隣接PUは、PU、CU、およびCTUについて左から右、上から下の符号化順序を仮定すると、PUの上、右上、左上、または左にあり得る。イントラ予測処理ユニット126は、様々な数のイントラ予測モード、たとえば33個の方向性イントラ予測モードを使用し得る。いくつかの例では、イントラ予測モードの数は、PUに関連付けられた領域のサイズに依存し得る。
【0120】
[0130]予測処理ユニット100は、PUについてインター予測処理ユニット120によって生成された予測データ、またはPUについてイントラ予測処理ユニット126によって生成された予測データの中から、CUのPUのための予測データを選択し得る。いくつかの例では、予測処理ユニット100は、予測データのセットのレート/歪みの尺度に基づいて、CUのPUのための予測データを選択する。選択された予測データの予測サンプルブロックは、本明細書では、選択された予測サンプルブロックと呼ばれ得る。
【0121】
[0131]残差生成ユニット102は、CUのルーマコーディングブロック、Cbコーディングブロック、およびCrコーディングブロック、ならびにCUのPUの選択された予測ルーマブロック、予測Cbブロック、および予測Crブロックに基づいて、CUのルーマ残差ブロックと、Cb残差ブロックと、Cr残差ブロックとを生成し得る。たとえば、残差生成ユニット102は、残差ブロック中の各サンプルがCUのコーディングブロック中のサンプルとCUのPUの対応する選択された予測サンプルブロック中の対応するサンプルとの間の差に等しい値を有するように、CUの残差ブロックを生成し得る。
【0122】
[0132]変換処理ユニット104は、4分木分割を実行して、CUと関連付けられた残差ブロックをCUのTUと関連付けられた変換ブロックにパーティション分割し得る。したがって、TUは、ルーマ変換ブロックおよび2つのクロマ変換ブロックと関連付けられ得る。CUのTUのルーマ変換ブロックおよびクロマ変換ブロックのサイズおよび位置は、CUのPUの予測ブロックのサイズおよび位置に基づくことも基づかないこともある。「残差4分木」(RQT)として知られる4分木構造は、領域の各々に関連付けられたノードを含み得る。CUのTUは、RQTのリーフノードに対応し得る。
【0123】
[0133]変換処理ユニット104は、TUの変換ブロックに1つまたは複数の変換を適用することによって、CUの各TUに関する変換係数ブロックを生成し得る。変換処理ユニット104は、TUに関連付けられた変換ブロックに様々な変換を適用し得る。たとえば、変換処理ユニット104は、離散コサイン変換(DCT)、方向変換、または概念的に類似の変換を、変換ブロックに適用し得る。いくつかの例では、変換処理ユニット104は、変換ブロックに変換を適用しない。そのような例では、変換ブロックは、変換係数ブロックとして扱われ得る。
【0124】
[0134]量子化ユニット106は、係数ブロック内の変換係数を量子化し得る。量子化プロセスは、変換係数の一部またはすべてに関連付けられたビット深度を低減し得る。たとえば、nビット変換係数は量子化の間にmビットの変換係数に切り捨てられ(rounded down to)てよく、ただし、nはmよりも大きい。量子化ユニット106は、CUと関連付けられた量子化パラメータ(QP)値に基づいて、CUのTUと関連付けられた係数ブロックを量子化し得る。ビデオエンコーダ20は、CUと関連付けられたQP値を調整することによって、CUと関連付けられた係数ブロックに適用される量子化の程度を調整し得る。量子化は情報の損失をもたらし得、したがって、量子化された変換係数は元の係数よりも低い精度を有し得る。
【0125】
[0135]逆量子化ユニット108および逆変換処理ユニット110は、それぞれ、係数ブロックに逆量子化および逆変換を適用して、係数ブロックから残差ブロックを再構成し得る。再構成ユニット112は、再構成された残差ブロックを、予測処理ユニット100によって生成された1つまたは複数の予測サンプルブロックからの対応するサンプルに追加して、TUに関連付けられた再構成された変換ブロックを生成し得る。このようにCUの各TUのための変換ブロックを再構成することによって、ビデオエンコーダ20はCUのコーディングブロックを再構成し得る。
【0126】
[0136]フィルタユニット114は、CUに関連付けられたコーディングブロックの中のブロッキングアーティファクトを低減するために、1つまたは複数のデブロッキング動作を実施し得る。復号ピクチャバッファ116は、フィルタユニット114が、再構成されたコーディングブロックに対して1つまたは複数のデブロッキング動作を実行した後、再構成されたコーディングブロックを記憶し得る。インター予測ユニット120は、再構成されたコーディングブロックを含む参照ピクチャを使用して、他のピクチャのPUに対してインター予測を実行し得る。加えて、イントラ予測処理ユニット126は、CUと同じピクチャの中の他のPUに対してイントラ予測を実行するために、復号ピクチャバッファ116の中の再構成されたコーディングブロックを使用し得る。
【0127】
[0137]エントロピー符号化ユニット118は、ビデオエンコーダ20の他の機能的コンポーネントからデータを受信し得る。たとえば、エントロピー符号化ユニット118は、量子化ユニット106から係数ブロックを受信し得、予測処理ユニット100からシンタックス要素を受信し得る。エントロピー符号化ユニット118は、エントロピー符号化データを生成するために、データに対して1つまたは複数のエントロピー符号化演算を実施し得る。たとえば、エントロピー符号化ユニット118は、コンテキスト適応型可変長コーディング(CAVLC)演算、CABAC演算、変数間(V2V)レングスコーディング演算、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)演算、確率間隔パーティショニングエントロピー(PIPE:Probability Interval Partitioning Entropy)コーディング演算、指数ゴロム符号化演算、または別のタイプのエントロピー符号化演算をデータに対して実施し得る。ビデオエンコーダ20は、エントロピー符号化ユニット118によって生成されたエントロピー符号化データを含むビットストリームを出力し得る。たとえば、ビットストリームは、CUのためのRQTを表すデータを含み得る。
【0128】
[0138]
図9は、本開示の技法を実装するように構成された例示的なビデオデコーダ30を示すブロック図である。
図9は、説明のために提供されるものであって、本開示で広く例示され説明される技法を限定するものではない。説明のために、本開示は、HEVCコーディングのコンテキストにおいてビデオデコーダ30について記載する。しかしながら、本開示の技法は他のコーディング規格または方法に適用可能である。
【0129】
[0139]
図9の例では、ビデオデコーダ30は、エントロピー復号ユニット150と、予測処理ユニット152と、逆量子化ユニット154と、逆変換処理ユニット156と、再構成ユニット158と、フィルタユニット160と、復号ピクチャバッファ162とを含む。予測処理ユニット152は、動き補償ユニット164とイントラ予測処理ユニット166とを含む。他の例では、ビデオデコーダ30は、より多いか、より少ないか、または異なる機能的コンポーネントを含み得る。
【0130】
[0140]ビデオデコーダ30は、ビットストリームを受信し得る。エントロピー復号ユニット150は、ビットストリームからシンタックス要素を復号するためにビットストリームを解析し得る。エントロピー復号ユニット150は、ビットストリームの中のエントロピー符号化シンタックス要素をエントロピー復号し得る。予測処理ユニット152、逆量子化ユニット154、逆変換処理ユニット156、再構成ユニット158、およびフィルタユニット160は、ビットストリームから抽出されたシンタックス要素に基づいて、復号ビデオデータを生成することができる。
【0131】
[0141]ビットストリームは、一連のNALユニットを備え得る。ビットストリームのNALユニットは、コーディングされたスライスNALユニットを含み得る。ビットストリームを復号することの一部として、エントロピー復号ユニット150は、コーディングされたスライスNALユニットからシンタックス要素を抽出し、エントロピー復号し得る。コーディングされたスライスの各々は、スライスヘッダと、スライスデータとを含み得る。スライスヘッダは、スライスに関するシンタックス要素を含み得る。スライスヘッダ中のシンタックス要素は、スライスを含むピクチャと関連付けられたPPSを識別するシンタックス要素を含み得る。
【0132】
[0142]ビデオデコーダ30は、ビットストリームからのシンタックス要素を復号することに加えて、パーティション分割されていないCUに対して再構成動作を実施し得る。パーティション分割されていないCUに対して再構成動作を実行するために、ビデオデコーダ30は、CUの各TUに対して再構成動作を実施し得る。CUの各TUについて再構成動作を実行することによって、ビデオデコーダ30は、CUの残差ブロックを再構成し得る。
【0133】
[0143]CUのTUに対して再構成動作を実行することの一部として、逆量子化ユニット154は、TUと関連付けられた係数ブロックを逆量子化(inverse quantize)、すなわち逆量子化(de-quantize)し得る。逆量子化ユニット154は、量子化の程度を決定するために、また同様に、逆量子化ユニット154が適用すべき逆量子化の程度を決定するために、TUのCUに関連付けられたQP値を使用し得る。すなわち、圧縮比、すなわち、元のシーケンスと圧縮されたシーケンスとを表すために使用されるビット数の比は、変換係数を量子化するときに使用されるQPの値を調整することによって制御され得る。圧縮比は、利用されるエントロピーコーディングの方法に依存し得る。
【0134】
[0144]逆量子化ユニット154が係数ブロックを逆量子化した後、逆変換処理ユニット156は、TUに関連付けられた残差ブロックを生成するために、係数ブロックに1つまたは複数の逆変換を適用し得る。たとえば、逆変換処理ユニット156は、逆DCT、逆整数変換、逆カルーネンレーベ変換(KLT:Karhunen-Loeve transform)、逆回転変換、逆方向変換、または別の逆変換を、係数ブロックに適用し得る。
【0135】
[0145]PUがイントラ予測を使用して符号化される場合、イントラ予測処理ユニット166は、PUのための予測ブロックを生成するために、イントラ予測を実施し得る。イントラ予測処理ユニット166は、空間的に隣接するPUの予測ブロックに基づいて、PUのための予測ルーマブロックと、予測Cbブロックと、予測Crブロックとを生成するために、イントラ予測モードを使用し得る。イントラ予測処理ユニット166は、ビットストリームから復号された1つまたは複数のシンタックス要素に基づいて、PUのためのイントラ予測モードを決定し得る。
【0136】
[0146]予測処理ユニット152は、ビットストリームから抽出されたシンタックス要素に基づいて、第1の参照ピクチャリスト(RefPicList0)と第2の参照ピクチャリスト(RefPicList1)とを構成し得る。さらに、PUがインター予測を使用して符号化された場合、エントロピー復号ユニット150は、PUについての動き情報を抽出し得る。動き補償ユニット164は、PUの動き情報に基づいて、PU用の1つまたは複数の参照領域を決定し得る。動き補償ユニット164は、PUの1つまたは複数の参照ブロックにおけるサンプルブロックに基づいて、PUの予測ルーマブロックと、予測Cbブロックと、予測Crブロックとを生成し得る。
【0137】
[0147]上記で示したように、ビデオエンコーダ20は、マージモード、スキップモードまたはAMVPモードを使用して、PUの動き情報をシグナリングし得る。ビデオエンコーダ20がAMVPモードを使用して現在PUの動き情報をシグナリングすると、エントロピー復号ユニット150は、ビットストリームから、参照インデックスと、現在PUに関するMVDと、候補インデックスとを復号し得る。さらに、動き補償ユニット164は、現在PUに関するAMVP候補リストを生成し得る。AMVP候補リストは、1つまたは複数のMV予測子候補を含む。MV予測子候補の各々は、現在PUに空間的または時間的に隣接するPUのMVを定義する。動き補償ユニット164は、候補インデックスに少なくとも部分的に基づいて、AMVP候補リストの中の選択されたMV予測子候補を決定し得る。動き補償ユニット164は、次いで、MVDを、選択されたMV予測子候補によって定義されるMVに加えることによって、現在PUのMVを決定し得る。言い換えれば、AMVPに関して、MVは、MV=MVP+MVDとして計算され、ここにおいて、動きベクトル予測子(MVP)のインデックスがシグナリングされ、MVPはAMVPリストからのMV候補(空間的または時間的な)のうちの1つであり、MVDはデコーダ側にシグナリングされる。
【0138】
[0148]現在PUが双予測される場合、エントロピー復号ユニット150は、追加の参照インデックスと、MVDと、候補インデックスとを、ビットストリームから復号し得る。動き補償ユニット162は、現在PUに関する第2のMVを導出するために、追加の参照インデックスと、MDと、候補インデックスとを使用して、上述されたプロセスを繰返し得る。このようにして、動き補償ユニット162は、RefPicList0に関するMV(すなわち、RefPicList0 MV)と、RefPicList1に関するMV(すなわち、RefPicList1 MV)とを導出し得る。
【0139】
[0149]本開示の1つまたは複数の技法によれば、ビデオデコーダ30内の1つまたは複数のユニットは、ビデオ復号処理の一部として、本明細書で説明される1つまたは複数の技法を実行することができる。また、たとえば深度処理ユニット165など、追加の3Dコンポーネントがビデオデコーダ30内に含められ得る。深度処理ユニット165は、いくつかの例で、本技法を実施し得る。
【0140】
[0150]たとえば、ビデオデコーダ30の深度処理ユニット165は、深度予測ユニット(深度PU)における動きパラメータ継承(MPI)についてのサブ予測ユニット(サブPU)のサイズを示すシンタックス要素を受信し得る。深度PUは1つまたは複数のサブPUであり得る。各サブPUは、シンタックス要素によって示されたサイズに等しいサイズを有し得る。さらに、別個の動き情報が、それぞれのサブPUにコロケートされたテクスチャブロックから、各サブPUについて継承され得る。サブPU MPIモードを示すインデックス値を受信すると、ビデオデコーダ30の深度処理ユニット165は、サブPUの各々とコロケートされた対応するテクスチャブロックに少なくとも部分的に基づいて、深度ブロックのサブPUの各々についてMPIをさらに継承し得る。
【0141】
[0151]いくつかの例では、ビデオデコーダ30の予測処理ユニット152、動き補償ユニット164、イントラ予測処理ユニット166、深度処理ユニット165および/または別のユニットが、本明細書で説明する技法と一致する、3Dビデオに関連付けられるデータを復号する方法を実施し得る。これらのユニットのうちの1つ(またはそれらの任意の組合せ)が、たとえば、本明細書で説明するMPI技法をビデオ復号処理の一部として実施するように構成され得る。
【0142】
[0152]続いて、ここで
図9の参照をする。再構成ユニット158は、CUのTUと関連付けられたルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロック、ならびにCUのPUの予測ルーマブロック、予測Cbブロック、および予測Crブロックを、すなわち、イントラ予測データまたはインター予測データのいずれかを適宜使用して、CUのルーマコーディングブロックと、Cbコーディングブロックと、Crコーディングブロックとを再構成することができる。たとえば、再構成ユニット158は、ルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックのサンプルを予測ルーマブロック、予測Cbブロック、および予測Crブロックの対応するサンプルに加算して、CUのルーマコーディングブロックと、Cbコーディングブロックと、Crコーディングブロックとを再構成することができる。
【0143】
[0153]フィルタユニット160は、デブロッキング動作を実施して、CUのルーマコーディングブロック、Cbコーディングブロック、およびCrコーディングブロックと関連付けられたブロッキングアーティファクトを低減し得る。ビデオデコーダ30は、CUのルーマコーディングブロックと、Cbコーディングブロックと、Crコーディングブロックとを、復号ピクチャバッファ162に記憶し得る。復号ピクチャバッファ162は、後続の動き補償、イントラ予測、および
図7のディスプレイデバイス32のようなディスプレイデバイス上での提示のために、参照ピクチャを提供し得る。たとえば、ビデオデコーダ30は、復号ピクチャバッファ162中のルーマブロック、Cbブロック、およびCrブロックに基づいて、他のCUのPUに対してイントラ予測演算またはインター予測演算を実施し得る。このようにして、ビデオデコーダ30は、有意ルーマ係数ブロック(significant luma coefficient block)の変換係数レベルをビットストリームから抽出し、変換係数レベルを逆量子化し、変換係数レベルに変換を適用して変換ブロックを生成し、変換ブロックに少なくとも部分的に基づいてコーディングブロックを生成し、コーディングブロックを表示のために出力し得る。
【0144】
[0154]
図10は、本開示による例示的な符号化技法を示す流れ図である。たとえば、深度処理ユニット125ビデオエンコーダ20は、深度予測ユニット(深度PU)における動きパラメータ継承(MPI)についてのサブ予測ユニット(サブPU)のサイズを決定し得る(170)。深度PUは1つまたは複数のサブPUであり得る。各サブPUは等しいサイズを有し得る。さらに、別個の動き情報が、それぞれのサブPUにコロケートされたテクスチャブロックから、各サブPUについて継承され得る。ビデオエンコーダ20の深度処理ユニット125は、サブPUの各々とコロケートされたテクスチャブロックに対応するMPIに少なくも部分的に基づいて、深度ブロックの各サブPUを符号化し得る(172)。ビデオエンコーダ20の深度処理ユニット125は、その深度PUにおけるMPIに関する各サブPUのサイズを示すシンタックス要素をさらに生成し得る(174)。いくつかの例では、シンタックス要素は、両端値を含む0〜3の範囲を有し得る。
【0145】
[0155]シンタックス要素の値が1よりも大きいかまたはそれに等しい場合、ビデオエンコーダ20の深度処理ユニット125は、アクセスユニットにおいて各テクスチャブロックを符号化し、各テクスチャブロック上で16×16ブロックに関して動き圧縮を実施し得る。アクセスユニットは深度ブロックを含む。いくつかの例では、アクセスユニット内の各テクスチャブロックは、アクセスユニット内の対応するコロケートされた深度ブロックに対して、独立してコーディングされ得る。各テクスチャブロックは、アクセスユニットにおいて深度ブロックのいずれを符号化するよりも前に符号化され得、ビデオデコーダ20の深度処理ユニット125は、アクセスユニットにおいて深度ブロックの各々を符号化する前に、動き圧縮を実施し得る。
【0146】
[0156]シンタックス要素の値が0に等しい場合、ビデオエンコーダ20の深度処理ユニット125は、MPIサイズが8×8であると決定し得る。そのような例では、ビデオエンコーダ20の深度処理ユニット125は、コロケートされたテクスチャブロックが2つのPUを含むかどうかを決定し得る。コロケートされたテクスチャブロックが2つのPUを含むと決定することに応答して、ビデオエンコーダ20の深度処理ユニット125は、コロケートされたテクスチャブロックにおける各PUのサイズが4×8または8×4であるかどうかを決定し、各パーティションのサイズがコロケートされたテクスチャブロックにおける各PUのサイズに等しくなるようにサブPUを2つのより小さいユニットにパーティション分割し、2つのより小さいユニットの各々に対して単方向動き補償を行い得る。さらに、サブPUを符号化することは、ビデオエンコーダ20の深度処理ユニット125が、RefPicList0に対応する2つの動きベクトルを継承することを含み得る。
【0147】
[0157]上記の例は、シンタックス要素が特定の値を有する結果を表しているが、これらの結果は、シンタックス要素の他の値に対しても実現され得る。たとえば、シンタックス要素の値が0に等しい場合、ビデオエンコーダ20の深度処理ユニット125は、アクセスユニットにおいて各テクスチャブロックを符号化し、各テクスチャブロック上で16×16ブロックに関して動き圧縮を実施し得る。さらにシンタックス要素の値が1よりも大きいかまたはそれに等しい場合、ビデオエンコーダ20の深度処理ユニット125は、MPIサイズが8×8であると決定し得る。また、これらの技法は、特定のサイズのブロック(すなわち、16×16または8×8のブロック)に関して説明されているが、他の例では、これらのブロックは、考えられるサイズの中でも、4×4、32×32、または4×8など、異なるサイズを有し得る。
【0148】
[0158]いくつかの例では、シンタックス要素はシーケンスパラメータセット(SPS)内で生成され得る。これらの例では、深度ブロックは、複数の深度PUを含み得、またアクセスユニットにおける複数の深度ブロックのうちの1つとなり得る。シンタックス要素は、アクセスユニットにおける各それぞれの深度ブロックにおいて各深度PUの各サブPUに関するMPIサイズをさらに示し得る。そのような場合、サブPUを符号化することは、ビデオエンコーダ20の深度処理ユニット125が、深度PUが深度PUの第1のセットにあることを決定することであって、深度PUの第1のセットにおける各深度PUは、1のビット単位左シフト(a bitwise left shift of 1)の後、3とシンタックス要素の値との合計の2乗よりも小さいサイズを有する、決定することと、サブPUの各々とコロケートされたテクスチャブロックに対応するMPIに少なくとも部分的に基づいて、深度PUにおける各サブPUを符号化することとを含み得る。いくつかの例では、深度PUは第1の深度PUとなり得る。これらの例では、ビデオエンコーダ20の深度処理ユニット125は、第2の深度PUが深度PUの第2のセットにあることをさらに決定し得、ここにおいて、深度PUの第2のセットにおける各深度PUは、1のビット単位左シフトの後、3とシンタックス要素の値との合計の2乗よりも大きいかまたはそれに等しいサイズを有し、MPIサイズに基づかずにMPIを使用して第2の深度PUの各サブPUを符号化する。
【0149】
[0159]
図11は、本開示による例示的な復号技法を示す流れ図である。たとえば、ビデオデコーダ30の深度処理ユニット165は、深度予測ユニット(深度PU)における動きパラメータ継承(MPI)についてのサブ予測ユニット(サブPU)のサイズを示すシンタックス要素を受信し得る(180)。深度PUは1つまたは複数のサブPUであり得る。各サブPUは、シンタックス要素によって示されたサイズに等しいサイズを有し得る。さらに、別個の動き情報が、それぞれのサブPUにコロケートされたテクスチャブロックから、各サブPUについて継承され得る。サブPU MPIモードを示すインデックス値を受信すると、ビデオデコーダ30の深度処理ユニット165は、サブPUの各々とコロケートされた対応するテクスチャブロックに少なくとも部分的に基づいて、深度ブロックのサブPUの各々についてMPIをさらに継承し得る(182)。いくつかの例では、シンタックス要素は、両端値を含む0〜3の範囲を有し得る。
【0150】
[0160]シンタックス要素の値が1よりも大きいかまたはそれに等しい場合、ビデオデコーダ30の深度処理ユニット165は、アクセスユニットにおいて各テクスチャブロックを復号し、各テクスチャブロック上で16×16ブロックに関して動き圧縮を実施し得る。アクセスユニットは深度ブロックを含む。いくつかの例では、アクセスユニット内の各テクスチャブロックは、アクセスユニット内の対応するコロケートされた深度ブロックに対して、独立してコーディングされ得る。各テクスチャブロックは、アクセスユニットにおいて深度ブロックのいずれを復号するよりも前に復号され得、ビデオデコーダ30の深度処理ユニット165は、アクセスユニットにおいて深度ブロックの各々を復号した後、動き圧縮を実施し得る。
【0151】
[0161]シンタックス要素の値が0に等しい場合、ビデオデコーダ30の深度処理ユニット165は、MPIサイズが8×8であると決定し得る。そのような例では、ビデオデコーダ30の深度処理ユニット165は、コロケートされたテクスチャブロックが2つのPUを含むかどうかを決定し得る。コロケートされたテクスチャブロックが2つのPUを含むと決定することに応答して、ビデオデコーダ30の深度処理ユニット165は、コロケートされたテクスチャブロックにおける各PUのサイズが4×8または8×4であるかどうかを決定し、各パーティションのサイズがコロケートされたテクスチャブロックにおける各PUのサイズに等しくなるようにサブPUを2つのより小さいユニットにパーティション分割し、2つのより小さいユニットの各々に対して単方向動き補償を行い得る。さらに、サブPUを復号することは、ビデオデコーダ30の深度処理ユニット165が、RefPicList0に対応する2つの動きベクトルを継承することを含み得る。
【0152】
[0162]上記の例は、シンタックス要素が特定の値を有する結果を表しているが、これらの結果は、シンタックス要素の他の値に対しても実現され得る。たとえば、シンタックス要素の値が0に等しい場合、ビデオデコーダ30の深度処理ユニット165は、アクセスユニットにおいて各テクスチャブロックを復号し、各テクスチャブロック上で16×16ブロックに関して動き圧縮を実施し得る。さらにシンタックス要素の値が1よりも大きいかまたはそれに等しい場合、ビデオデコーダ30の深度処理ユニット165は、MPIサイズが8×8であると決定し得る。また、これらの技法は、特定のサイズのブロック(すなわち、16×16または8×8のブロック)に関して説明されているが、他の例では、これらのブロックは、考えられるサイズの中でも、4×4、32×32、または4×8など、異なるサイズを有し得る。
【0153】
[0163]いくつかの例では、シンタックス要素はシーケンスパラメータセット(SPS)において受信され得る。これらの例では、深度ブロックは、複数の深度PUを含み得、またアクセスユニットにおける複数の深度ブロックのうちの1つとなり得る。シンタックス要素は、アクセスユニットにおける各それぞれの深度ブロックにおいて各深度PUの各サブPUに関するMPIサイズをさらに示し得る。そのような場合、各サブPUについてMPIを継承することは、ビデオデコーダ30の深度処理ユニット165が、深度PUが深度PUの第1のセットにあることを決定することであって、深度PUの第1のセットにおける各深度PUは、1のビット単位左シフトの後、3とシンタックス要素の値との合計の2乗よりも小さいサイズを有する、決定することと、サブPUの各々とコロケートされた対応するテクスチャブロックに少なくとも部分的に基づいて、深度PUにおける各サブPUについてのMPIを継承することとを含み得る。いくつかの例では、深度PUは第1の深度PUとなり得る。これらの例では、ビデオデコーダ30の深度処理ユニット165は、第2の深度PUが深度PUの第2のセットにあることをさらに決定し得、ここにおいて、深度PUの第2のセットにおける各深度PUは、1のビット単位左シフトの後、3とシンタックス要素の値との合計の2乗よりも大きいかまたはそれに等しいサイズを有し、MPIサイズに基づかずに第2の深度PUの各サブPUについてMPIを継承する。
【0154】
[0164]1つまたは複数の例では、本明細書で説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体のような有形媒体に対応するコンピュータ可読記憶媒体、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、一般に、(1)非一時的である有形のコンピュータ可読記憶媒体、または(2)信号もしくは搬送波のような通信媒体に対応し得る。データ記憶媒体は、本開示で説明する技法の実装のための命令、コードおよび/またはデータ構造を取り出すために、1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【0155】
[0165]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMもしくは他の光ディスクストレージ、磁気ディスクストレージ、もしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る、任意の他の媒体を備え得る。また、任意の接続が、コンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、ウェブサイト、サーバ、または他のリモートソースから、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(CD)と、レーザーディスク(登録商標)と、光ディスクと、デジタル多用途ディスク(DVD)と、フロッピー(登録商標)ディスクと、Blu−rayディスクとを含み、ディスク(disk)は通常、データを磁気的に再生し、ディスク(disc)はレーザーを用いてデータを光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲の中に含まれるべきである。
【0156】
[0166]命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路またはディスクリート論理回路など、1つまたは複数のプロセッサによって実施され得る。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造、または、本明細書で説明する技法の実装に好適な他の構造のいずれかを指し得る。加えて、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成されるか、または複合コーデックに組み込まれる、専用のハードウェアモジュールおよび/またはソフトウェアモジュール内で提供され得る。また、本技法は、1つもしくは複数の回路または論理素子で十分に実装され得る。
【0157】
[0167]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)もしくはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置で実装され得る。様々なコンポーネント、モジュール、またはユニットは、開示されている技法を実行するように構成されたデバイスの機能的態様を強調するように本開示において説明されているが、異なるハードウェアユニットによる実現を必ずしも必要としない。そうではなく、上記で説明したように、様々なユニットは、コーデックハードウェアユニット中で組み合わせられるか、または上記で説明した1つまたは複数のプロセッサを含む、適切なソフトウェアおよび/またはファームウェアとともに相互動作可能なハードウェアユニットの集合によって提供され得る。
【0158】
[0168]本開示の様々な例について説明した。説明したシステム、動作、または機能の任意の組合せが企図される。これらおよび他の例は、以下の特許請求の範囲の範囲内に入る。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1] 深度ブロックを復号する方法であって、
深度予測ユニット(深度PU)における動きパラメータ継承(MPI)についてのサブ予測ユニット(サブPU)のサイズを示すシンタックス要素を受信することと、ここにおいて、前記深度PUは1つまたは複数のサブPUを備え、各サブPUは、前記シンタックス要素によって示される前記サイズに等しいサイズを有し、別個の動き情報が、各サブPUについて、前記それぞれのサブPUにコロケートされたテクスチャブロックから継承され得る、
サブPU MPIモードを示すインデックス値を受信すると、前記サブPUの各々とコロケートされた対応するテクスチャブロックに少なくとも部分的に基づいて、前記深度ブロックの前記サブPUの各々についてMPIを継承することと、
を備える方法。
[C2] 前記シンタックス要素はシーケンスパラメータセット(SPS)において受信される、C1に記載の方法。
[C3] 前記深度ブロックは複数の深度PUを含み、前記深度ブロックはアクセスユニットにおける複数の深度ブロックのうちの1つであり、前記シンタックス要素は、前記アクセスユニットにおける各それぞれの深度ブロックにおいて各深度PUの各サブPUについてのMPIサイズをさらに示す、C2に記載の方法。
[C4] 前記サブPUの各々とコロケートされた対応するテクスチャブロックに少なくとも部分的に基づいて、各サブPUについてMPIを継承することは、
前記深度PUが深度PUの第1のセットにあると決定することと、ここにおいて、深度PUの前記第1のセットにおける各深度PUは、1のビット単位左シフトの後、3と前記シンタックス要素の値との合計の2乗よりも小さいサイズを有する、
前記サブPUの各々とコロケートされた対応するテクスチャブロックに少なくも部分的に基づいて、前記深度PUにおける各サブPUについてMPIを継承することと、
を備える、C3に記載の方法。
[C5] 前記深度PUは第1の深度PUであり、前記方法は、
第2の深度PUが深度PUの第2のセットにあると決定することと、ここにおいて、深度PUの前記第2のセットにおける各深度PUは、1のビット単位左シフトの後、3と前記シンタックス要素の前記値との前記合計の2乗よりも大きいかまたはそれに等しいサイズを有する、
前記MPIサイズに基づかずに、前記第2の深度PUの各サブPUについてMPIを継承することと、
をさらに備える、C4に記載の方法。
[C6] 前記シンタックス要素の値は、1よりも大きいかまたはそれに等しく、前記方法は、
アクセスユニットにおける各テクスチャブロックを復号することと、ここにおいて、前記アクセスユニットは前記深度ブロックを含む、
各テクスチャブロック上の16×16ブロックに対して動き圧縮を実施することと、
をさらに備える、C1に記載の方法。
[C7] 前記アクセスユニットにおける各テクスチャブロックは、前記アクセスユニットにおける対応するコロケートされた深度ブロックに対して、独立してコーディングされ、各テクスチャブロックは、前記アクセスユニットにおける前記深度ブロックのうちのいずれを復号するよりも前に復号され、前記アクセスユニットにおける前記深度ブロックの各々を復号した後、動き圧縮が実施される、C6に記載の方法。
[C8] 前記シンタックス要素の値は0であり、前記方法は、
前記MPIサイズが8×8であると決定することをさらに備える、
C1に記載の方法。
[C9] 前記コロケートされたテクスチャブロックが2つのPUを含むかどうかを決定することと、
前記コロケートされたテクスチャブロックが2つのPUを含むと決定することに応答して、
前記コロケートされたテクスチャブロックにおける各PUのサイズが4×8または8×4であるかどうかを決定することと、
各パーティションのサイズが、前記コロケートされたテクスチャブロックにおける各PUの前記サイズに等しくなるように、前記サブPUを2つのより小さいユニットにパーティション分割することと、
前記2つのより小さいユニットの各々に対して単方向動き補償を適用することと、
をさらに備える、C8に記載の方法。
[C10] 前記サブPUを復号することは、RefPicList0に対応する2つの動きベクトルを継承することを備える、C9に記載の方法。
[C11] 前記シンタックス要素は、両端値を含む0〜3の範囲を有する、C1に記載の方法。
[C12] 深度ブロックを復号するためのデバイスであって、
前記深度ブロックと関連付けられたデータを記憶するように構成されたメモリと、
1つまたは複数のプロセッサであって、
深度予測ユニット(深度PU)における動きパラメータ継承(MPI)についてのサブ予測ユニット(サブPU)のサイズを示すシンタックス要素を受信することと、ここにおいて、前記深度PUは1つまたは複数のサブPUを備え、各サブPUは、前記シンタックス要素によって示される前記サイズに等しいサイズを有し、別個の動き情報が、各サブPUについて、前記それぞれのサブPUにコロケートされたテクスチャブロックから継承され得る、
サブPU MPIモードを示すインデックス値を受信すると、前記サブPUの各々とコロケートされた対応するテクスチャブロックに少なくとも部分的に基づいて、前記深度ブロックの前記サブPUの各々についてMPIを継承することと
を行うように構成された1つまたは複数のプロセッサと、
を備えるデバイス。
[C13] 前記シンタックス要素はシーケンスパラメータセット(SPS)において受信され、
前記深度ブロックは複数の深度PUを含み、
前記深度ブロックは、アクセスユニットにおける複数の深度ブロックのうちの1つであり、
前記シンタックス要素は、前記アクセスユニットにおける各それぞれの深度ブロックにおいて各深度PUの各サブPUに関するMPIサイズをさらに示し、
前記深度PUは第1の深度PUであり、
前記MPIサイズに少なくとも部分的に基づいて前記サブPUを復号するように構成された前記1つまたは複数のプロセッサは、
前記第1の深度PUが深度PUの第1のセットにあると決定することと、ここにおいて、深度PUの前記第1のセットにおける各深度PUは、1のビット単位左シフトの後、3と前記シンタックス要素の値との合計の2乗よりも小さいサイズを有する、
前記MPIサイズに少なくとも部分的に基づいて、前記第1の深度PUにおける各サブPUを復号することと、
を行うように構成された1つまたは複数のプロセッサを備え、
ここにおいて、前記1つまたは複数のプロセッサは、
第2の深度PUが深度PUの第2のセットにあると決定することと、ここにおいて、深度PUの前記第2のセットにおける各深度PUは、1のビット単位左シフトの後、3と前記シンタックス要素の前記値との前記合計の2乗よりも大きいかまたはそれに等しいサイズを有する、
前記MPIサイズに基づかずに、MPIを使用して前記第2の深度PUの各サブPUを復号することと、
を行うようにさらに構成される、C12に記載のデバイス。
[C14] 前記シンタックス要素の値は、1よりも大きいかまたはそれに等しく、前記1つまたは複数のプロセッサは、
アクセスユニットにおける各テクスチャブロックを復号することと、ここにおいて、前記アクセスユニットは前記深度ブロックを含む、
各テクスチャブロック上の16×16ブロックに対して動き圧縮を実施することと、
を行うようにさらに構成される、C12に記載のデバイス。
[C15] 前記アクセスユニットにおける各テクスチャブロックは、前記アクセスユニットにおける対応するコロケートされた深度ブロックに対して、独立してコーディングされ、各テクスチャブロックは、前記アクセスユニットにおける前記深度ブロックのうちのいずれを復号するよりも前に復号され、前記アクセスユニットにおける前記深度ブロックの各々を復号した後、動き圧縮が実施される、C14に記載のデバイス。
[C16] 深度ブロックを符号化する方法であって、
深度予測ユニット(深度PU)における動きパラメータ継承(MPI)についてのサブ予測ユニット(サブPU)のサイズを決定することと、ここにおいて、前記深度PUは1つまたは複数のサブPUを備え、各サブPUは等しいサイズを有し、別個の動き情報が、前記それぞれのサブPUにコロケートされたテクスチャブロックから、各サブPUについて継承され得る、
前記サブPUの各々とコロケートされたテクスチャブロックに対応するMPIに少なくも部分的に基づいて、前記深度ブロックの各サブPUを符号化することと、
前記深度PUにおけるMPIに関する各サブPUの前記サイズを示すシンタックス要素を生成することと、
を備える方法。
[C17] 前記シンタックス要素はシーケンスパラメータセット(SPS)において生成される、C16に記載の方法。
[C18] 前記深度ブロックは複数の深度PUを含み、前記深度ブロックはアクセスユニットにおける複数の深度ブロックのうちの1つであり、前記シンタックス要素は、前記アクセスユニットにおける各それぞれの深度ブロックにおいて各深度PUの各サブPUについてのMPIサイズをさらに示す、C17に記載の方法。
[C19] 前記サブPUの各々とコロケートされたテクスチャブロックに対応するMPIに少なくとも部分的に基づいて前記サブPUを符号化することは、
前記深度PUが深度PUの第1のセットにあると決定することと、ここにおいて、深度PUの前記第1のセットにおける各深度PUは、1のビット単位左シフトの後、3と前記シンタックス要素の値との合計の2乗よりも小さいサイズを有する、
前記サブPUの各々とコロケートされたテクスチャブロックに対応するMPIに少なくも部分的に基づいて、前記深度PUにおける各サブPUを符号化することと、
を備える、C18に記載の方法。
[C20] 前記深度PUは第1の深度PUであり、前記方法は、
第2の深度PUが深度PUの第2のセットにあると決定することと、ここにおいて、深度PUの前記第2のセットにおける各深度PUは、1のビット単位左シフトの後、3と前記シンタックス要素の前記値との前記合計の2乗よりも大きいかまたはそれに等しいサイズを有する、
前記MPIサイズに基づかずに、MPIを使用して前記第2の深度PUの各サブPUを符号化することと、
をさらに備える、C19に記載の方法。
[C21] 前記シンタックス要素の値は、1よりも大きいかまたはそれに等しく、前記方法は、
アクセスユニットにおける各テクスチャブロックを符号化することと、ここにおいて、前記アクセスユニットは前記深度ブロックを含む、
各テクスチャブロック上の16×16ブロックに対して動き圧縮を実施することと、
をさらに備える、C16に記載の方法。
[C22] 前記アクセスユニットにおける各テクスチャブロックは、前記アクセスユニットにおける対応するコロケートされた深度ブロックに対して、独立してコーディングされ、各テクスチャブロックは、前記アクセスユニットにおける前記深度ブロックのうちのいずれを符号化するよりも前に符号化され、前記アクセスユニットにおける前記深度ブロックの各々を符号化する前に、動き圧縮が実施される、C21に記載の方法。
[C23] 前記シンタックス要素の値は0であり、前記方法は、
前記MPIサイズが8×8であると決定することをさらに備える、C16に記載の方法。
[C24] 前記コロケートされたテクスチャブロックが2つのPUを含むかどうかを決定することと、
前記コロケートされたテクスチャブロックが2つのPUを含むと決定することに応答して、
前記コロケートされたテクスチャブロックにおける各PUのサイズは4×8または8×4であるかどうかを決定することと、
各パーティションのサイズが、前記コロケートされたテクスチャブロックにおける各PUの前記サイズに等しくなるように、前記サブPUを2つのより小さいユニットにパーティション分割することと、
前記2つのより小さいユニットの各々に対して単方向動き補償を適用することと、
をさらに備える、C23に記載の方法。
[C25] 前記サブPUを符号化することは、RefPicList0に対応する2つの動きベクトルを継承することを備える、C24に記載の方法。
[C26] 前記シンタックス要素は、両端値を含む0〜3の範囲を有する、C16に記載の方法。
[C27] 深度ブロックを符号化するためのデバイスであって、
前記深度ブロックと関連付けられたデータを記憶するように構成されたメモリと、
1つまたは複数のプロセッサであって、
深度予測ユニット(深度PU)における動きパラメータ継承(MPI)についてのサブ予測ユニット(サブPU)のサイズを決定することと、ここにおいて、前記深度PUは1つまたは複数のサブPUを備え、各サブPUは等しいサイズを有し、別個の動き情報が、前記それぞれのサブPUにコロケートされたテクスチャブロックから、各サブPUについて継承され得る、
前記サブPUの各々とコロケートされたテクスチャブロックに対応するMPIに少なくも部分的に基づいて、前記深度ブロックの各サブPUを符号化することと、
前記深度PUにおけるMPIに関する各サブPUの前記サイズを示すシンタックス要素を生成することと
を行うように構成された1つまたは複数のプロセッサと、
を備えるデバイス。
[C28] 前記シンタックス要素はシーケンスパラメータセット(SPS)において生成され、
前記深度ブロックは複数の深度PUを含み、
前記深度ブロックは、アクセスユニットにおける複数の深度ブロックのうちの1つであり、
前記シンタックス要素は、前記アクセスユニットにおける各それぞれの深度ブロックにおいて各深度PUの各サブPUに関するMPIサイズをさらに示し、
前記深度PUは第1の深度PUであり、
前記MPIサイズに少なくとも部分的に基づいて前記サブPUを符号化するように構成された前記1つまたは複数のプロセッサは、
前記第1の深度PUが深度PUの第1のセットにあると決定することと、深度PUの前記第1のセットにおける各深度PUは、1のビット単位左シフトの後、3と前記シンタックス要素の値との合計の2乗よりも小さいサイズを有する、
前記MPIサイズに少なくとも部分的に基づいて、前記第1の深度PUにおける各サブPUを符号化することと、
を行うように構成された1つまたは複数のプロセッサを備え、
ここにおいて、前記1つまたは複数のプロセッサは、
第2の深度PUが深度PUの第2のセットにあると決定することと、ここにおいて、深度PUの前記第2のセットにおける各深度PUは、1のビット単位左シフトの後、3と前記シンタックス要素の前記値との前記合計の2乗よりも大きいかまたはそれに等しいサイズを有する、
前記MPIサイズに基づかずに、MPIを使用して前記第2の深度PUの各サブPUを符号化することと、
を行うようにさらに構成される、C27に記載のデバイス。
[C29] 前記シンタックス要素の値は、1よりも大きいかまたはそれに等しく、前記1つまたは複数のプロセッサは、
アクセスユニットにおける各テクスチャブロックを符号化することと、ここにおいて、前記アクセスユニットは前記深度ブロックを含む、
各テクスチャブロック上の16×16ブロックに対して動き圧縮を実施することと、
を行うようにさらに構成される、C27に記載のデバイス。
[C30] 前記アクセスユニットにおける各テクスチャブロックは、前記アクセスユニットにおける対応するコロケートされた深度ブロックに対して、独立してコーディングされ、各テクスチャブロックは、前記アクセスユニットにおける前記深度ブロックのうちのいずれを符号化するよりも前に符号化され、前記アクセスユニットにおける前記深度ブロックの各々を符号化する前に、動き圧縮が実施される、C29に記載のデバイス。