[0028]高効率ビデオコード化(HEVC)は、新たに開発されたビデオコード化規格である。HEVC及び他のコード化仕様又は規格では、ビデオエンコーダは、各ピクチャに対して最大で2個の参照ピクチャリストを生成することができる。これらの参照ピクチャリストはRefPicList0及びRefPicList1と呼ばれ得る。特定のピクチャに対する参照ピクチャリストは、その特定のピクチャとは異なる時間インスタンスにおいて発生するピクチャを含み得る。言い換えると、参照ピクチャリストは、時間的参照ピクチャを含み得る。
[0029]ビデオエンコーダがピクチャを符号化するとき、ビデオコーダは、ピクチャ中のブロックの符号化された表現を生成することができる。ビデオエンコーダは、ピクチャのブロックの符号化された表現を生成するために、イントラ予測又はインター予測を使用することができる。言い換えると、ビデオエンコーダは、ブロックを符号化するためにイントラ予測又はインター予測を使用することができる。ビデオエンコーダが現在のピクチャの現在のブロックを符号化するためにイントラ予測を使用するとき、ビデオエンコーダは、現在のピクチャ中の他のサンプルに基づいて、予測ブロックを生成することができる。ビデオエンコーダが現在のブロックを符号化するためにインター予測を使用するとき、ビデオエンコーダは、現在のピクチャのRefPicList0の中の参照ピクチャ中の対応するブロックに基づいて、現在のピクチャのRefPicList1の中の参照ピクチャ中の対応するブロックに基づいて、又は、現在のピクチャのRefPicList0の中の参照ピクチャ中の第1の対応するブロック及び現在のピクチャのRefPicList1の中の参照ピクチャ中の第2の対応するブロックに基づいて、現在のブロックに対する予測ブロックを決定することができる。ビデオエンコーダがイントラ予測を使用して現在のブロックを符号化するかインター予測を使用して現在のブロックを符号化するかにかかわらず、ビデオエンコーダは、現在のブロックの元の内容と予測ブロックとの差を決定することができる。ビデオエンコーダは、得られた残差データを変換し量子化することができる。ビデオコーダは、変換され量子化された残差データを示す、エントロピー符号化されたシンタックス要素を、ビットストリームに含め得る。
[0030]ビデオデコーダがピクチャ(即ち、現在のピクチャ)を復号するとき、ビデオデコーダは、現在のピクチャに対して同じ参照ピクチャリストを生成することができる。加えて、ビデオデコーダは、現在のピクチャの各ブロックを復号することができる。ビデオデコーダが現在のピクチャの現在のブロックを復号し、現在のブロックがインター予測を使用して符号化されたとき、ビデオデコーダは、現在のピクチャのRefPicList0及び/又はRefPicList1の中の参照ピクチャ中の対応するブロックに基づいて、現在のブロックに対する予測ブロックを決定することができる。ビデオデコーダは次いで、現在のブロックに対する残差データに予測ブロックを追加することによって、現在のブロックを再構築することができる。
[0031]MV−HEVCは、マルチビュー(MV)コード化のためのHEVCの拡張である。3D−HEVCは、3次元(3D)ビデオデータのためのHEVCの拡張である。MV−HEVC及び3D−HEVCは、異なる視点からの同じシーンの複数のビューを提供する。MV−HEVC及び3D−HEVCでは、異なるビューから再構築されたピクチャに基づくビュー間予測が可能にされ得る。MV−HEVC及び3D−HEVCでは、現在のピクチャに対する参照ピクチャリストは、ビュー間参照ピクチャ、ならびに時間的参照ピクチャを含み得る。ビュー間参照ピクチャは、現在のピクチャとは異なるビュー中にあり得る。ビデオエンコーダ及びビデオデコーダは、時間的参照ピクチャと同様の方式で、参照ピクチャリスト中のビュー間参照ピクチャを使用することができる。
[0032]MV−HEVC及び3D−HEVCでは、ビデオエンコーダ及びビデオデコーダによって使用される幾つかのコーティングツールは、RefPicList0とRefPicList1の両方がビュー間参照ピクチャを含むことを仮定する。例えば、ブロックに対する視差ベクトルを決定するためのコード化ツールは、RefPicList0とRefPicList1の両方がビュー間参照ピクチャを含むことを仮定し得る。この仮定の結果として、コード化ツールは両方の参照ピクチャリスト中の参照ピクチャがビュー間参照ピクチャかどうかを確認する必要があり得るので、そのようなコード化ツールの複雑さが増し得る。更に、RefPicList1中の参照ピクチャがビュー間参照ピクチャかどうかを確認することは、メモリへの追加の読取り要求と書込み要求とをもたらすことがあり、これは、符号化及び/又は復号処理を遅くし得る。しかしながら、RefPicList0及びRefPicList1に同じビュー間参照ピクチャを含むことは、符号化利得を何らもたらさないことがある。
[0033]従って、幾つかの例では、RefPicList1ではなくRefPicList0にビュー間参照ピクチャを含むことが有利であり得る。従って、本開示の特定の例によれば、ビュー間参照ピクチャがRefPicList1に含まれないことをビデオエンコーダがビットストリームにおいて信号伝達する場合、ビデオデコーダによって使用される特定のコード化ツールは、RefPicList1中の参照ピクチャがビュー間参照ピクチャかどうかを確認する必要がない。これは、複雑さと、メモリへの読取り要求及び書込み要求の数とを減らし得る。更に、ビュー間参照ピクチャがRefPicList1に含まれないことをビデオエンコーダがビットストリームにおいて信号伝達する場合、ビデオエンコーダは、ビットストリーム中で特定のシンタックス要素を信号伝達する必要がなくてよい。例えば、RefPicList1中にビュー間参照ピクチャがない場合、ビデオエンコーダは、より少数のビットを含む参照ピクチャリスト修正(RPLM)シンタックス要素を使用して、RefPicList1中の参照ピクチャの順序をどのように修正するかを信号伝達することができる。
[0034]従って、本開示の例によれば、ビデオエンコーダは、ビットストリームにおいて、ビュー/レイヤ間参照ピクチャが現在のピクチャに対する参照ピクチャリストに含まれているかどうかを示すシンタックス要素を信号伝達することができる。加えて、ビデオエンコーダは、現在のピクチャを符号化することができる。同様に、ビデオデコーダは、ビットストリームから、ビュー間参照ピクチャが現在のピクチャに対する参照ピクチャリストに含まれているかどうかを示すシンタックス要素を取得することができる。加えて、ビデオデコーダは、現在のピクチャを復号することができる。本明細書で説明されるように、本開示の例は、スケーラブルビデオコード化(SVC)、ならびにマルチビューコード化及び3DVコード化に当てはまり得る。
[0035]図1は、本開示の技術を利用することができる例示的なビデオコード化システム10を示すブロック図である。本明細書で使用されているように、「ビデオコーダ」という用語は、一般的に、ビデオエンコーダとビデオデコーダの両方を指す。本開示では、「ビデオコード化」又は「コード化」という用語は、一般的に、ビデオ符号化又はビデオ復号を指すものとしてよい。
[0036]図1に示されているように、ビデオコード化システム10は、発信源機器12と宛先機器14とを含む。発信源機器12は、符号化ビデオデータを生成する。従って、発信源機器12は、ビデオ符号化機器又はビデオ符号化装置と称され得る。宛先機器14は、発信源機器12によって生成された符号化ビデオデータを復号することができる。従って、宛先機器14は、ビデオ復号機器又はビデオ復号装置と称され得る。発信源機器12と宛先機器14とは、ビデオコード化機器又はビデオコード化装置の例としてよい。
[0037]発信源機器12と宛先機器14とは、デスクトップコンピュータ、モバイルコンピュータ機器、ノートブック(例えば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、所謂「スマート」フォンなどの電話送受器、テレビジョン、カメラ、表示装置、デジタルメディアプレーヤ、ビデオゲーム機、車載コンピュータなどを含む、広範な機器を備えるものとしてよい。
[0038]宛先機器14は、チャネル16を介して発信源機器12から符号化ビデオデータを受信することができる。チャネル16は、符号化ビデオデータを発信源機器12からステーション機器14に移動することができる1つ又は複数の媒体又は機器を備えることができる。一例において、チャネル16は、発信源機器12が符号化ビデオデータを直接、宛先機器14にリアルタイムで送信することを可能にする1つ又は複数の通信媒体を備えることができる。この例では、発信源機器12は、ワイヤレス通信プロトコルなどの、通信規格に従って符号化ビデオデータを変調することができ、変調ビデオデータを宛先機器14に送信することができる。1つ又は複数の通信媒体は、高周波(RF)スペクトルなどのワイヤレス及び/又は有線通信媒体、又は1つ又は複数の物理的伝送路を含み得る。1つ又は複数の通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、又はグローバルネットワーク(例えば、インターネット)などの、パケットベースのネットワークの一部をなすものとしてよい。1つ又は複数の通信媒体は、ルータ、スイッチ、基地局、又は発信源機器12から宛先機器14への通信を円滑にする他の機器を含み得る。
[0039]別の例において、チャネル16は、発信源機器12によって生成された符号化ビデオデータを格納する記憶媒体を含み得る。この例では、宛先機器14は、例えば、ディスクアクセス又はカードアクセスを介して、記憶媒体にアクセスすることができる。記憶媒体は、ブルーレイ(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、又は符号化ビデオデータを格納するための他の好適なデジタル記憶媒体などの、様々なローカルでアクセスされるデータ記憶媒体を含み得る。
[0040]更なる例において、チャネル16は、発信源機器12によって生成された符号化ビデオデータを格納するファイルサーバ又は別の中間記憶機器を含み得る。この例では、宛先機器14は、ストリーミング又はダウンロードを介してファイルサーバ又は他の中間記憶機器に格納されている符号化ビデオデータにアクセスすることができる。ファイルサーバは、符号化ビデオデータを格納し、符号化ビデオデータを宛先機器14に送信することができる種類のサーバとすることができる、ファイルサーバの例として、ウェブサーバ(例えば、ウェブサイト用)、ファイル転送プロトコル(FTP)サーバ、ネットワーク接続記憶(NAS)機器、及びローカルディスクドライブが挙げられる。
[0041]宛先機器14は、インターネット接続などの、標準的なデータ接続を通じて符号化ビデオデータにアクセスすることができる。データ接続の種類の例として、ワイヤレスチャネル(例えば、Wi−Fi(登録商標)接続)、有線接続(例えば、デジタル加入者回線(DSL)、ケーブルモデムなど)、又はファイルサーバ上に格納されている符号化ビデオデータにアクセスするのに適している両方の組合せが挙げられ得る。ファイルサーバからの符号化ビデオデータの伝送は、ストリーミング伝送、ダウンロード伝送、又は両方の組合せであってよい。
[0042]本開示の技術は、ワイヤレスアプリケーション又は設定に制限されない。これらの技術は、オーバーザエアテレビ放送、ケーブルテレビ伝送、衛星テレビ伝送、例えば、インターネットを介した、ストリーミングビデオ伝送、データ記憶媒体上に格納するためのビデオデータの符号化、データ記憶媒体上に格納されているビデオデータの復号、又は他のアプリケーションなどの様々なマルチメディアアプリケーションのサポートにおいてビデオコード化に適用され得る。幾つかの例では、ビデオコード化システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、及び/又はビデオ電話などのアプリケーションをサポートするために一方向又は双方向のビデオ伝送をサポートするように構成され得る。
[0043]図1は単なる例であり、本開示の技術は、符号化機器と復号機器との間のデータ通信を必ずしも含まないビデオコード化設定(例えば、ビデオ符号化又はビデオ復号)に適用され得る。他の例では、データ(例えば、ビデオデータ)は、例えば、ローカルメモリから取り出されるか、ネットワーク上でストリーミング配信される。ビデオ符号化機器は、データ(例えば、ビデオデータ)を符号化してメモリに格納することができ、及び/又はビデオ復号機器は、メモリからデータ(例えば、ビデオデータ)を取り出して復号することができる。多くの例において、符号化と復号とは、互いに通信しないが、単に、データ(例えば、ビデオデータ)を符号化してメモリに入れ、及び/又はメモリからデータ(例えば、ビデオデータ)を取り出して復号する機器によって実行される。
[0044]図1の例において、発信源機器12は、ビデオ発信源18と、ビデオエンコーダ20と、出力インターフェース22とを備える。幾つかの例では、出力インターフェース22は、変調器/復調器(モデム)及び/又は送信器を含み得る。ビデオ発信源18は、ビデオ撮影機器、例えば、ビデオカメラ、すでに撮影されているビデオデータを収めてあるビデオアーカイブ、ビデオコンテンツプロバイダからビデオデータを受信するためのビデオ配信インターフェース、及び/又はビデオデータを生成するためのコンピュータグラフィックスシステム、又はビデオデータのそのような発信源の組合せを含み得る。
[0045]ビデオエンコーダ20は、ビデオ発信源18からのビデオデータを符号化し得る。幾つかの例では、発信源機器12は、出力インターフェース22を介して符号化ビデオデータを宛先機器14に直接送信する。他の例では、符号化ビデオデータは、復号及び/又は再生のために宛先機器14により後からアクセスできるように記憶媒体又はファイルサーバ上にも格納され得る。
[0046]図1の例において、宛先機器14は、入力インターフェース28と、ビデオデコーダ30と、表示装置32とを含む。幾つかの例では、入力インターフェース28は、受信器及び/又はモデムを含む。入力インターフェース28は、チャネル16上で符号化ビデオデータを受信することができる。ビデオデコーダ30は、符号化ビデオデータを復号し得る。表示装置32は、復号ビデオデータを表示することができる。表示装置32は、宛先機器14と一体であるか、又は宛先機器14に外付けであってもよい。表示装置32は、液晶表示器(LCD)、プラズマ表示器、有機発光ダイオード(OLED)表示器、又は他の種類の表示装置などの、様々な表示装置を備えることができる。
[0047]ビデオエンコーダ20及びビデオデコーダ30は各々、1つ又は複数のマイクロプロセッサ、汎用プロセッサデジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ハードウェア、又は本明細書で説明される機能を実行するためのそれらの任意の組合せのような、種々の適切な回路のいずれかとして実装され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、又は状態機械であり得る。また、プロセッサは、コンピュータ機器の組合せ、例えば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つ又は複数のマイクロプロセッサ、又は任意の他のそのような構成として実装され得る。これらの技術が、部分的にソフトウェアにより実装される場合、機器は、ソフトウェアに対する命令を、好適な非一時的コンピュータ可読記憶媒体に格納することができ、1つ又は複数のプロセッサを使用して本開示の技術を実行することでハードウェアにより命令を実行することができる。前記のどれか(ハードウェア、ソフトウェア、ハードウェアとソフトウェアとの組合せなどを含む)は、1つ又は複数のプロセッサであることが企図され得る。ビデオエンコーダ20とビデオデコーダ30との各々は、1つ又は複数のエンコーダ又はデコーダに含まれるものとすることもでき、これらのいずれかがそれぞれの機器において組み合わされたエンコーダ/デコーダ(CODEC)の一部として集積化され得る。
[0048]本開示では、一般的に、ビデオエンコーダ20がビデオデコーダ30などの別の機器に、又はビットストリームにおいて、特定の情報を「信号伝達(signaling)」することを参照することがある。「信号伝達(する)」という用語は、一般的に、シンタックス要素及び/又は圧縮ビデオデータを復号するために使用される他のデータの通信を指すものとしてよい。そのような通信は、リアルタイム又はほぼリアルタイムで行われ得る。代替的に、そのような通信は、ある長さの時間にわたって行われるものとしてよく、例えば、符号化時に符号化ビットストリームでシンタックス要素をコンピュータ可読記憶媒体に格納するときに行われ、次いで、それらの要素はこの媒体に格納された後にいつでも復号機器によって取り出せる。
[0049]幾つかの例では、ビデオエンコーダ20とビデオデコーダ30とは、スケーラブルビデオ符号化(SVC)拡張、マルチビュービデオコード化(MVC)拡張、MVCベース3DV拡張を含むISO/IEC MPEG−4ビジュアル及びITU−T H.264(ISO/IEC MPEG−4 AVCとしても知られている)などのビデオ圧縮規格に従って動作する。更に、H.264/AVCへの3次元ビデオ(3DV)コード化拡張、即ちAVCベース3DVを作成する取組みが進行中である。H.264のMVC拡張の共同ドラフトは、「オーディオビジュアルサービス全般のための高度ビデオコード化方式」、ITU−T勧告H.264、2010年3月において説明されている。他の例では、ビデオエンコーダ20とビデオデコーダ30とは、ITU−T H.261、ISO/IEC MPEG−1ビジュアル、ITU−T H.262又はISO/IEC MPEG−2ビジュアル、及びITU−T H.263、ISO/IEC−4ビジュアルに従って動作し得る。
[0050]他の例では、ビデオエンコーダ20とビデオデコーダ30とは、ITU−Tビデオコード化エキスパートグループ(VCEG)とISO/IECモーションピクチャエキスパートグループ(MPEG)とのビデオコード化に関する共同チーム(JCT−VC)によって開発された高効率ビデオコード化(HEVC)規格に従って動作し得る。HEVC規格のドラフトは、「HEVC作業ドラフト8」又は「HEVCベース仕様」と称され、Brossらの「高効率ビデオコード化(HEVC)テキスト仕様ドラフト8」、ITU−T SG16 WP3とISO/IEC JTC1/SC29/WG11とのビデオコード化に関する共同チーム(JCT−VC)、第10回会合、ストックホルム、スウェーデン、2012年7月において説明されている。2014年1月9日時点で、HEVC Working Draft 8は、http://phenix.int−evry.fr/jct/doc_end_user/documents/10_Stockholm/wg11/JCTVC−J1003−v8.zipからダウンロード可能である。SHVCと呼ばれるHEVCのスケーラブルビデオコード化拡張が開発中である。
[0051]更に、HEVCのマルチビュービデオコード化拡張、及び3DV拡張を作成する作業が進行中である。言い換えると、VCEGとMPEGとの3Dビデオコード化に関する共同チーム(JCT−3V)がHEVCに基づく3DV規格を開発中であり、これに対する標準化の取組みの一環として、HEVCに基づくマルチビュービデオコーデックの標準化(MV−HEVC)とHEVCに基づく3Dビデオコード化(3D−HEVC)とがある。ビデオエンコーダ20及びビデオデコーダ30は、HEVC規格へのそのような拡張に従って動作し得る。HEVCのマルチビューコード化拡張はMV−HEVCと呼ばれることがある。Gerhard Tech他、「MV−HEVC Working Draft 1」、JCT3V−A1004、ITU−T SG 16 WP3とISO/IEC JTC 1/SC 29/WG 11とのJoint Collaborative Team on 3D Video Coding Extension Development、第1回会合:ストックホルム、スウェーデン、2012年7月16〜20日(以後、「JCT3V−A1004」又は「MV−HEVC Working Draft 1」)がMV−HEVCのワーキングドラフトを提供する。Gerhard Tech他、「MV−HEVC Working Draft 2」、JCT3V−B1004、ITU−T SG 16 WP3とISO/IEC JTC 1/SC 29/WG 11とのJoint Collaborative Team on 3D Video Coding Extension Development、第2回会合:上海、中国、2012年10月13〜19日(以後、「MV−HEVC Working Draft 2」)がMV−HEVCの別のワーキングドラフトを提供する。
[0052]HEVCの3DV拡張は3D−HEVCと呼ばれることがある。Tech他、「Draft of 3D−HEVC Test Model Description Draft」、JCT3V−B1005、ITU−T SG 16 WP 3とISO/IEC JTC 1/SC 29/WG 11とのJoint Collaborative Team on 3D Video Coding Extension Development、第1回会合:ストックホルム、スウェーデン、2012年7月16〜20日(以後、「3D−HEVC Test Model 1」)が参照ソフトウェアならびに3D−HEVCのワーキングドラフトを説明する。加えて、Tech他、「3D−HEVC Test Model Description Draft 2」、JCT3V−B1005、ITU−T SG 16 WP 3とISO/IEC JTC 1/SC 29/WG 11とのJoint Collaborative Team on 3D Video Coding Extension Development、第1回会合:ストックホルム、スウェーデン、2012年7月16〜20日(以後、「3D−HEVC Test Model Description Draft 2」)が参照ソフトウェアならびに3D−HEVCのワーキングドラフトを説明する。2014年1月9日時点で、3D−HEVCのための参照ソフトウェア、即ち3DV−HTMは、https://hevc.hhi.fraunhofer.de/svn/svn_3DVCSoftware/trunkから利用可能である。
上記の式において、Pは、P個のフレームに対する一方向予測又はB個のフレームに対する双方向予測を示す。
[0054]しかしながら、HEVCにおける動き圧縮の単位は、以前のビデオコード化規格のとは異なる。例えば、以前のビデオコード化規格におけるマクロブロックの概念は、HEVCに存在しない。むしろ、マクロブロックは、一般的な四分木方式に基づく自由度の高い階層構造で置き換えられる。この方式の範囲内で、3種類のブロック、即ち、コード化単位(CU)と、予測単位(PU)と、変換単位(TU)とが定義される。CUは、領域分割の基本単位である。CUの概念は、マクロブロックの概念に類似しているが、CUは、最大サイズに制限されず、CUにより、等しいサイズの4つのCUへの再帰的分割でコンテンツ適応性を改善することができる。PUは、インター/イントラ予測の基本単位であり、PUは、不規則な画像パターンを効果的にコード化するため、単一のPU内に任意の形状の複数の区分を含み得る。TUは、変換の基本単位である。CUのTUは、CUのPUから独立して定義され得る。しかしながら、TUのサイズは、TUが属すCUに制限される。ブロック構造を3つの異なる概念に分けるこの方法は、その役割に従って各々を最適化することを可能にし、その結果、コード化効率が改善され得る。
[0055]HEVCと他のビデオコード化仕様において、ビデオシーケンスは、典型的に、一連のピクチャを含む。ピクチャは、「フレーム」とも称され得る。ピクチャは、SL、SCb、及びScrと表される、3つのサンプル配列を含み得る。SLは、ルーマサンプルの2次元配列(即ち、ブロック)である。SCbは、Cb色度サンプルの2次元配列である。SCrは、Cr色度サンプルの2次元配列である。色度サンプルは、本明細書では「クロマ」サンプルとも称され得る。他の場合において、ピクチャは、モノクロであってもよく、またルーマサンプルの配列のみを含んでいてもよい。
[0056]ピクチャの符号化された表現を生成するために、ビデオエンコーダ20は、コード化ツリー単位(CTU)のセットを生成することができる。CTUの各々は、ルーマサンプルのコード化ツリーブロックと、クロマサンプルの2つの対応するコード化ツリーブロックと、コード化ツリーブロックのサンプルをコード化するために使用されるシンタックス構造とを備えるものとしてよい。モノクロピクチャ又は3つの別々の色平面を有するピクチャにおいて、CTUは、単一のコード化ツリーブロックと、コード化ツリーブロックのサンプルをコード化するために使用されるシンタックス構造とを備えることができる。コード化ツリーブロックは、サンプルのN×Nのブロックであってよい。CTUは、「ツリーブロック」又は「最大コード化単位」(LCU)とも称され得る。HEVCのCTUは、H.264/AVCなどの、他の規格のマクロブロックに概して類似しているものとしてよい。しかしながら、CTUは、特定のサイズに必ずしも制限されず、1つ又は複数のCUを含み得る。スライスは、ラスタースキャン順に連続的に順序付けられた整数個のCTUを含み得る。
[0057]コード化されたスライスは、スライスヘッダとスライスデータとを備え得る。スライスのスライスヘッダは、スライスに関する情報を提供するシンタックス要素を含むシンタックス構造であってよい。スライスデータは、スライスのコード化されたCTUを含み得る。
[0058]本開示では、「ビデオ単位」又は「ビデオブロック」又は「ブロック」という用語を使用して、サンプルの1つ又は複数のブロックのサンプルをコード化するために使用される1つ又は複数のサンプルブロックとシンタックス構造とを指すものとしてよい。ビデオ単位の種類の例として、CTU、CU、PU、変換単位(TU)、マクロブロック、マクロブロック区分などが挙げられ得る。幾つかの文脈では、PU又はCUの説明は、マクロブロック又はマクロブロック区分の説明と交換され得る。
[0059]コード化されたCTUを生成するために、ビデオエンコーダ20は、CTUのコード化ツリーブロック上で四分木分割法を再帰的に実行して、コード化ツリーブロックをコード化ブロック、即ち「コード化ツリー単位」に分割することができる。コード化ブロックは、サンプルのN×Nのブロックである。CUは、ルーマサンプルのコード化ブロックを備え、またルーマサンプル配列と、Cbサンプル配列と、Crサンプル配列とを有するピクチャのクロマサンプルの2つの対応するコード化ブロックと、コード化ブロックのサンプルをコード化するために使用されるシンタックス構造とを備える。モノクロピクチャ又は3つの別々の色平面を有するピクチャにおいて、CUは、単一のコード化ブロックと、コード化ブロックのサンプルをコード化するために使用されるシンタックス構造とを備えることができる。
[0060]ビデオエンコーダ20は、CUのコード化ブロックを1つ又は複数の予測ブロックに分割することができる。予測ブロックは、同じ予測が適用されるサンプルの矩形(即ち、正方形又は非正方形)ブロックである。CUのPUは、ルーマサンプルの予測ブロックと、クロマサンプルの2つの対応する予測ブロックと、予測ブロックを予測するために使用されるシンタックス構造とを備えることができる。モノクロピクチャ又は3つの別々の色平面を有するピクチャにおいて、PUは、単一の予測ブロックと、予測ブロックを予測するために使用されるシンタックス構造とを備えることができる。ビデオエンコーダ20は、CUの各PUのルーマ予測ブロックと、Cb予測ブロックと、Cr予測ブロックとに対する予測ルーマブロックと、予測Cbブロックと、予測Crブロックとを生成することができる。従って、本開示では、CUは、1つ又は複数のPUに分割されると言うことができる。説明を簡単にするため、本開示は、PUの予測ブロックのサイズを単にPUのサイズとして参照し得る。
[0061]ビデオエンコーダ20は、イントラ予測又はインター予測を使用してPUに対する予測ブロックを生成することができる。ビデオエンコーダ20が、イントラ予測を使用してPUの予測ブロックを生成する場合、ビデオエンコーダ20は、PUに関連付けられているピクチャのサンプルに基づいてPUの予測ブロックを生成することができる。本開示では、「に基づく」という言い回しは、「に少なくとも部分的に基づく」を示すものとしてよい。
[0062]ビデオエンコーダ20が、インター予測を使用してPUの予測ブロックを生成する場合、ビデオエンコーダ20は、PUに関連付けられているピクチャ以外の1つ又は複数のピクチャの復号されたサンプルに基づいてPUの予測ブロックを生成することができる。ブロック(例えば、PU)の予測ブロックを生成するためにインター予測が使用される場合、本開示では、ブロックを「インターコード化(された)」又は「インター予測(された)」と称するものとしてよい。インター予測は、一方向(即ち、片方向予測)又は双方向(即ち、双予測)とすることができる。片方向予測又は双予測を実行するために、ビデオエンコーダ20は、現在のピクチャに対して第1の基準ピクチャリスト(RefPicList0)と、第2の基準ピクチャリスト(RefPicList1)とを生成することができる。基準ピクチャリストの各々は、1つ又は複数の基準ピクチャを含み得る。基準ピクチャリストが構成された後(即ち、利用可能な場合のRefPicList0とRefPicList1)、基準ピクチャリストへの基準インデックスが、基準ピクチャリストに含まれている基準ピクチャを識別するために使用され得る。
[0063]片方向予測を使用する場合、ビデオエンコーダ20は、RefPicList0とRefPicList1のいずれか、又は両方で基準ピクチャを探索し、基準ピクチャ内の基準配置を決定することができる。更に、片方向予測を使用する場合、ビデオエンコーダ20は、基準配置に対応するサンプルに少なくとも部分的に基づいて、PUに対する予測ブロックを生成することができる。PUに対する予測ブロック内の各サンプルは、基準配置に関連付けられ得る。幾つかの例では、PUに対する予測ブロック内のサンプルは、PUと同じサイズを有してその左上の隅部が基準配置であるサンプルのブロック内にある場合に、基準配置に関連付けられ得る。予測ブロック中の各サンプルは、参照ピクチャの実際のサンプル又は補間されたサンプルであり得る。更に、片方向予測を使用する場合、ビデオエンコーダ20は、PUの予測ブロックと基準配置との間の空間的変位を示す単一の動きベクトルを生成することができる。動きベクトルは、PUの予測ブロックと基準配置との間の水平変位を指定する水平成分を含み、PUの予測ブロックと基準配置との間の垂直変位を指定する垂直成分を含み得る。
[0064]双予測を使用してPUを符号化する場合、ビデオエンコーダ20は、RefPicList0内の基準ピクチャ内の第1の基準配置とRefPicList1内の基準ピクチャ内の第2の基準配置とを決定することができる。ビデオエンコーダ20は、第1と第2との基準配置に対応するサンプルに少なくとも部分的に基づいて、PUに対する予測ブロックを生成することができる。予測ブロック中の各サンプルは、参照ブロック中の対応するサンプルの加重平均であり得る。サンプルの重みは、PUを含むピクチャからの基準ピクチャの時間的距離に基づくものとしてよい。更に、双予測を使用してPUを符号化する場合、ビデオエンコーダ20は、PUの予測ブロックと第1の基準配置との間の空間的変位を示す第1の動きベクトルと、PUの予測ブロックと第2の基準配置との間の空間的変位を示す第2の動きベクトルとを生成することができる。従って、ビデオエンコーダ20がPUに対して双予測を実行するとき、PUは2つの動きベクトルを有する。
[0065]ビデオエンコーダ20がインター予測を使用してPUの予測ブロックを生成する場合、ビデオエンコーダ20は、PUに関連付けられているピクチャ以外の1つ又は複数のピクチャのサンプルに基づいてPUの予測ブロックを生成することができる。例えば、ビデオエンコーダ20は、一方向インター予測(即ち、片方向予測)又は双方向インター予測(即ち、双予測)をPU上で実行することができる。
[0066]ビデオエンコーダ20は、CUを様々な分割モードに従って1つ又は複数のPUに分割することができる。例えば、CUのPUに対する予測ブロックを生成するためにイントラ予測が使用される場合、CUは、PART_2N×2Nモード又はPART_N×Nモードに従って分割され得る。PART_2N×2Nモードでは、CUは1つのPUしか有しない。PART_N×Nモードでは、CUは、矩形予測ブロックを有する4つの等しいサイズのPUを有する。CUのPUに対する予測ブロックを生成するためにインター予測が使用される場合、CUは、PART_2N×2Nモード、PART_N×Nモード、PART_2N×Nモード、PART_N×2Nモード、PART_2N×nUモード、PART_2N×uDモード、PART_nL×2Nモード、又はPART_nR×2Nモードに従って分割され得る。PART_2N×NモードとPART_N×2Nとにおいて、CUは、矩形予測ブロックを有する2つの等しいサイズのPUに分割される。PART_2N×nUモードと、PART_2N×uDモードと、PART_nL×2Nモードと、PART_nR×2Nモードとの各々において、CUは、矩形予測ブロックを有する2つのサイズが等しくないPUに分割される。非対称区分では、CUの一方向は区分されないが、他の方向は25%と75%とに区分される。25%の区分に対応するCUの部分は、「n」とその後ろに付く「Up」、「Down」、「Left」、又は「Right」という表示によって示される。従って、例えば、「2N×nU」は、上部の2N×0.5N PUと下部の2N×1.5N PUとで水平方向に区分された2N×2N CUを指す。
[0067]ビデオエンコーダ20がCUの1つ又は複数のPUの1つ又は複数の予測ブロック(例えば、ルーマ予測ブロック、Cb予測ブロック、及びCr予測ブロック)を生成した後、ビデオエンコーダ20は、CUの1つ又は複数の残差ブロックを生成することができる。例えば、ビデオエンコーダ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コード化ブロック内の対応するサンプルとの間の差を示し得る。
[0068]更に、ビデオエンコーダ20は、四分木分割法を使用して、CUの1つ又は複数の残差ブロック(例えば、CUのルーマ残差ブロック、Cb残差ブロック、及びCr残差ブロック)を1つ又は複数の変換ブロック(例えば、ルーマ変換ブロック、Cb変換ブロック、及びCr変換ブロック)に分解することができる。変換ブロックは、同じ変換が適用されるサンプルの矩形(例えば、正方形又は非正方形)ブロックである。CUのTUは、ルーマサンプルの変換ブロックと、クロマサンプルの2つの対応する変換ブロックと、変換ブロックサンプルを変換するために使用されるシンタックス構造とを備えることができる。そこで、CUの各TUは、ルーマ変換ブロックと、Cb変換ブロックと、Cr変換ブロックとに関連付けられ得る。TUに関連付けられているルーマ変換ブロックは、CUのルーマ残差ブロックのサブブロックであってよい。Cb変換ブロックは、CUのCb残差ブロックのサブブロックであってよい。Cr変換ブロックは、CUのCr残差ブロックのサブブロックであってよい。モノクロピクチャ又は3つの別々の色平面を有するピクチャにおいて、TUは、単一の変換ブロックと、変換ブロックのサンプルを変換するために使用されるシンタックス構造とを備えることができる。
[0069]ビデオエンコーダ20は、1つ又は複数の変換をTUの変換ブロックに適用して、TUに対する係数ブロックを生成することができる。係数ブロックは、変換係数の2次元配列であってよい。例えば、ビデオエンコーダ20は、TUのルーマ係数ブロックを生成するために、TUのルーマ変換ブロックに1回又は複数回の変換を適用することができる。変換係数は、スカラ量であってよい。ビデオエンコーダ20は、1つ又は複数の変換をTUのCb変換ブロックに適用して、TUに対するCb係数ブロックを生成することができる。ビデオエンコーダ20は、1つ又は複数の変換をTUのCr変換ブロックに適用して、TUに対するCr係数ブロックを生成することができる。
[0070]係数ブロック(例えば、ルーマ係数ブロック、Cb係数ブロック、又はCr係数ブロック)を生成した後、ビデオエンコーダ20は、係数ブロックを量子化することができる。量子化は、一般的に、変換係数が量子化され、場合によっては、変換係数を表現するために使用されるデータの量を減らし、更に圧縮を施すプロセスを指す。ビデオエンコーダ20が、係数ブロックを量子化した後、ビデオエンコーダ20は、量子化された変換係数を示すシンタックス要素をエントロピー符号化することができる。例えば、ビデオエンコーダ20は、量子化された変換係数を示すシンタックス要素に対してコンテキスト適応型バイナリ算術コード化(CABAC)を実行することができる。
[0071]ビデオエンコーダ20は、コード化されたピクチャと関連データとの表現を形成するビットシーケンスを含むビットストリームを出力することができる。言い換えると、ビデオエンコーダ20はビデオデータの符号化された表現を備えるビットストリームを生成することができる。ビットストリームは、ネットワーク抽象化レイヤ(NAL)単位のシーケンスを備えることができる。NAL単位は、NAL単位内のデータの型の指示を含むシンタックス構造とエミュレーション防止ビットとともに必要に応じて散在するローバイトシーケンスペイロード(RBSP)の形態のそのデータを含むバイトである。NAL単位の各々は、NAL単位ヘッダを含み、RBSPをカプセル化する。NAL単位ヘッダは、NAL単位型コードを示すシンタックス要素を含み得る。NAL単位のNAL単位ヘッダによって指定されるNAL単位型コードは、NAL単位の型を示す。RBSPは、NAL単位内にカプセル化されている整数個のバイトを含むシンタックス構造であってよい。幾つかの場合において、RBSPはゼロビットを含む。
[0072]異なる型のNAL単位は、異なる種類のRBSPをカプセル化することができる。例えば、異なる型のNAL単位は、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、コード化されたスライス、補足拡張情報(supplemental enhancement information)(SEI)などに対して異なるRBSPをカプセル化することができる。ビデオコード化データに対してRBSPをカプセル化するNAL単位は(パラメータセットとSEIメッセージとに対するRBSPとは反対に)ビデオコード化レイヤ(VCL)NAL単位と称され得る。
[0073]HEVCでは、SPSは、コード化ビデオシーケンス(CVS)の全てのスライスに適用される情報を含み得る。CVSはピクチャのシーケンスを備え得る。HEVCでは、CVSは、瞬間復号リフレッシュ(IDR)ピクチャ、又はリンク切断アクセス(BLA)ピクチャ、又はIDRピクチャ又はBLAピクチャではないその後の全てのピクチャを含む、ビットストリーム内の第1のピクチャであるクリーンランダムアクセス(CRA)ピクチャから始まるものとしてよい。即ち、HEVCでは、CVSは、復号の順序で、ビットストリーム内の第1のアクセス単位であるCRAアクセス単位、IDRアクセス単位又はBLAアクセス単位、その後に続く、その後のIDRアクセス単位又はBLAアクセス単位までであってその後のIDRアクセス単位又はBLAアクセス単位を含まない全てのその後のアクセス単位を含む、ゼロ又はそれ以上の非IDRアクセス単位と非BLAアクセス単位からなるものとしてよいアクセス単位のシーケンスを備えることができる。HEVCでは、アクセス単位は、復号順序が連続しており、丁度1つのコード化されたピクチャを含む、NAL単位のセットであり得る。コード化されたピクチャのコード化されたスライスNAL単位に加えて、アクセス単位はまた、コード化されたピクチャのスライスを含まない他のNAL単位を含み得る。アクセス単位の復号は常に、復号されたピクチャをもたらす。
[0074]VPSは、0個以上の(例えば、1つ又は複数の)CVS全体に適用されるシンタックス要素を備えるシンタックス構造である。1つ又は複数のSPSは、SPSがアクティブであるときに同じVPSがアクティブであることを識別する、シンタックス要素を含み得る。そのため、VPSのシンタックス要素は、SPSのシンタックス要素よりも一般的に適用可能であり得る。PPSは、ゼロ又はそれ以上のコード化されたピクチャに適用されるシンタックス要素を備えるシンタックス構造である。PPSは、PPSがアクティブであるときにアクティブであるSPSを識別するシンタックス要素を含み得る。スライスのスライスヘッダは、スライスがコード化されているときにアクティブであるPPSを示すシンタックス要素を含み得る。
[0075]ビデオデコーダ30は、ビデオエンコーダ20によって生成されたビットストリームを受信することができる。それに加えて、ビデオデコーダ30は、ビットストリームを解析して、ビットストリームからシンタックス要素を取得することができる。ビデオデコーダ30は、ビットストリームから取得されたシンタックス要素に少なくとも部分的に基づいてビデオデータのピクチャを再構成することができる。ビデオデータを再構成するプロセスは、一般的に、ビデオエンコーダ20によって実行されるプロセスに相反するものとしてよい。例えば、ビデオデコーダ30は、PUの動きベクトルを使用して、現在のCUのPUに対する予測ブロックを決定することができる。それに加えて、ビデオデコーダ30は、現在のCUのTUに関連付けられている係数ブロックを逆量子化することができる。ビデオデコーダ30は、係数ブロックに対して逆変換を実行し、現在のCUのTUに関連付けられている変換ブロックを再構成することができる。ビデオデコーダ30は、現在のCUのPUに対する予測ブロックのサンプルを現在のCUのTUの変換ブロックの対応するサンプルに加えることによって現在のCUのコード化ブロックを再構成することができる。ピクチャの各CUに対してコード化ブロックを再構成することによって、ビデオデコーダ30は、ピクチャを再構成することができる。
[0076]幾つかの例では、ビデオエンコーダ20は、マージ/スキップモード又は高度動きベクトル予測(AMVP)モードを使用するPUの動き情報を信号伝達することができる。言い換えれば、HEVCでは、動きパラメータの予測に2つのモードがあり、1つはマージ/スキップモードであり、もう1つはAMVPである。動き予測は、1つ又は複数の他のブロックの動き情報に基づくブロック(例えば、PU)の動き情報の決定を備え得る。PUの動き情報(即ち、動きパラメータ)は、PUの動きベクトル(複数可)と、PUの基準インデックス(複数可)と、1つ又は複数の予測方向指標とを含み得る。
[0077]ビデオエンコーダ20が、マージモードを使用して現在のPUの動き情報を信号伝達する場合、ビデオエンコーダ20は、マージ候補リストを生成する。言い換えれば、ビデオエンコーダ20は、動きベクトル予測因子リスト構成プロセスを実行することができる。マージ候補リストは、現在のPUに空間的又は時間的に隣接するPUの動き情報を示すマージ候補のセットを含む。即ち、マージモードでは、候補が空間的隣接ブロックと時間的隣接ブロックとからのものであり得る動きパラメータ(例えば、基準インデックス、動きベクトルなど)の候補リストが構成され得る。
[0078]更に、マージモードでは、ビデオエンコーダ20は、マージ候補リストからマージ候補を選択することができ、選択されたマージ候補によって示されている動き情報を現在のPUの動き情報として使用することができる。ビデオエンコーダ20は、選択されたマージ候補のマージ候補リスト内の位置を信号伝達することができる。例えば、ビデオエンコーダ20は、選択されたマージ候補の候補リスト内の位置を示すインデックス(即ち、マージ候補インデックス)を送信することによって、選択された動きベクトルパラメータを信号伝達することができる。ビデオデコーダ30は、ビットストリームから、インデックスを取得して候補リストに入れることができる(即ち、マージ候補インデックス)。それに加えて、ビデオデコーダ30は、同じマージ候補リストを生成することができ、マージ候補インデックスに基づいて、選択されたマージ候補を決定することができる。次いで、ビデオデコーダ30は、選択されたマージ候補の動き情報を使用して、現在のPUに対する予測ブロックを生成することができる。即ち、ビデオデコーダ30は、候補リストインデックスに少なくとも部分的に基づいて、候補リスト内の選択された候補を決定することができ、ここにおいて、選択された候補は、現在のPUに対する動きベクトルを指定する。このようにして、デコーダ側では、インデックスが復号された後、インデックスが指し示すところの対応するブロックの全てのパラメータは現在PUによって継承され得る。
[0079]スキップモードは、マージモードに似ている。スキップモードでは、ビデオエンコーダ20とビデオデコーダ30とは、ビデオエンコーダ20とビデオデコーダ30とがマージモードでマージ候補リストを使用する同じ方法でマージ候補リストを生成し、使用する。しかしながら、ビデオエンコーダ20が、スキップモードを使用して現在のPUの動き情報を信号伝達する場合、ビデオエンコーダ20は、現在のPUに対する残差データを信号伝達しない。従って、ビデオデコーダ30は、残差データを使用することなく、マージ候補リスト内の選択された候補の動き情報によって示される基準ブロックに基づいてPUに対する予測ブロックを決定することができる。
[0080]AMVPモードは、ビデオエンコーダ20が候補リストを生成することができ、候補リストから方法を選択することができるという点でマージモードに似ている。しかしながら、ビデオエンコーダ20がAMVPモードを使用して現在のPUのRefPicListX(ここで、Xは0又は1)動き情報を信号伝達する場合、ビデオエンコーダ20は、現在のPUに対するRefPicListX動きベクトル差(MVD)と現在のPUに対するRefPicListX基準インデックスとを信号伝達することを、現在のPUに対するRefPicListX動きベクトル予測因子(MVP)シンタックス要素(例えば、フラグ)を信号伝達することに加えて行うことができる。現在のPUに対するRefPicListX MVPシンタックス要素は、AMVP候補リスト内の選択されたAMVP候補の位置を示し得る。現在のPUに対するRefPicListX MVDは、現在のPUのRefPicListX動きベクトルと選択されたAMVP候補の動きベクトルとの間の差を示し得る。この方法で、ビデオエンコーダ20は、RefPicListX MVPシンタックス要素と、RefPicListX基準インデックス値と、RefPicListX MVDとを信号伝達することによって現在のPUのRefPicListX動き情報を信号伝達することができる。言い換えれば、現在のPUに対する動きベクトルを表すビットストリーム内のデータは、基準インデックスと、候補リストへのインデックスと、MVDとを表すデータを含み得る。従って、選択された動きベクトルは、インデックスを候補リスト内に送信することによって信号伝達され得る。それに加えて、基準インデックス値と動きベクトル差とも信号伝達され得る。
[0081]更に、現在のPUの動き情報が、AMVPモードを使用して信号伝達される場合、ビデオデコーダ30は、ビットストリームから、現在のPUに対するMVDと、MVPシンタックス要素とを取得することができる。ビデオデコーダ30は、同じAMVP候補リストを生成することができ、MVPシンタックス要素に基づいて、選択されたAMVP候補を決定することができる。言い換えれば、AMVPでは、各動き仮説に対する動きベクトル予測因子の候補リストは、コード化された基準インデックスに基づいて導出される。前述のように、このリストは、同じ基準インデックスに関連付けられている隣接ブロックの動きベクトル、更には時間的基準ピクチャ内の同一位置配置ブロックの隣接ブロックの動きパラメータに基づいて導出される時間的動きベクトル予測因子を含み得る。ビデオデコーダ30は、MVDを選択されたAMVP候補によって示されている動きベクトルに加えることによって現在のPUの動きベクトルを復元することができる。即ち、ビデオデコーダ30は、選択されたAMVP候補とMVDとによって示されている動きベクトルに基づいて、現在のPUの動きベクトルを決定することができる。次いで、ビデオデコーダ30は、現在のPUの1つ又は複数の復元された動きベクトルを使用して、現在のPUに対する予測ブロックを生成することができる。
[0082]ビデオコーダが現在のPUに対する統合候補リスト又はAMVP候補リストを生成するとき、ビデオコーダは、現在のPUに空間的に隣接する位置を包含するPU(即ち、空間的隣接PU)の動き情報に基づいて1つ又は複数の候補を導出することができ、ビデオコーダは、現在のPUに時間的に隣接するPUの動き情報に基づいて1つ又は複数の候補を導出することができる。本開示では、PU(又は他のタイプのブロック)は、PUと関連付けられる予測ブロック(又はブロックと関連付けられる他のタイプのサンプルブロック)がある位置を含む場合、その位置を「包含する」と言われ得る。更に、本開示では、第1のPUの予測ブロックが第2のPUの予測ブロックに対してピクチャ中で隣接しているとき、第1のPUは第2のPUに空間的に隣接し得る。候補リストは、同じ基準インデックスに関連付けられている隣接ブロックの動きベクトル、更には時間的基準ピクチャ内のブロックの動きパラメータ(即ち、動き情報)に基づいて導出される時間的動きベクトル予測因子を含み得る。
[0083]図2は、現在のPU40に関する例示的な空間的隣接PUを示す概念図である。図2の例では、空間的隣接PUは、A0、A1、B0、B1、及びB2として示されている配置をカバーするPUであるものとしてよい。言い換えれば、現在のPU40とその空間的隣接PUとの間の例示的な関係は図2に示されている。
[0084]空間的隣接要素PUに関して、次のシンボルが定義され得る。
ルーマ配置(xP,yP)は、現在のピクチャの左上のサンプルに関する現在のPUの左上のルーマサンプルを指定するために使用される。
変数nPSWとnPSHとは、ルーマに対するPUの幅と高さとを表す。
現在のピクチャの左上のサンプルに関する現在のPU Nの左上のルーマサンプルは、(xN,yN)である。
(xN,yN)(NはA0、A1、B0、B1、又はB2で置き換えられる)は、(xP−1,yP+nPSH)、(xP−1,yP+nPSH−1)、(xP+nPSW,yP−1)、(xP+nPSW−1,yP−1)、又は(xP−1,yP−1)としてそれぞれ定義される。
[0085]現在のPUに時間的に隣接するPU(即ち、現在のPUと異なる時間インスタンスに関連付けられているPU)の動き情報に基づくマージ候補リスト又はAMVP候補リスト内の候補は、TMVPと称され得る。TMVPは、HEVCのコード化効率を改善するために使用され、他のコード化ツールとは異なってもよく、TMVPは、復号ピクチャバッファ内のピクチャ(例えば、基準ピクチャリスト内のピクチャ)の動きベクトルにアクセスする必要がある場合がある。
[0086]TMVPを決定するために、ビデオコーダは、現在のPUと同一位置配置PUを含む基準ピクチャを最初に識別することができる。言い換えれば、ビデオコーダは、所謂「同一位置配置ピクチャ」を識別することができる。現在のピクチャの現在のスライスがBスライス(即ち、双方向にインター予測されたPUを含むことが許されているスライス)である場合、ビデオエンコーダ20は、スライスヘッダで、同一位置配置ピクチャがRefPicList0からのものであるか又はRefPicList1からのものであるかを示すシンタックス要素(例えば、collocated_from_l0_flag)を信号伝達することができる。言い換えれば、TMVPの使用が現在のスライスに対して有効化され、現在のスライスがBスライス(例えば、双方向にインター予測されたPUを含むことが許されているスライス)であるときに、ビデオエンコーダ20は、スライスヘッダでシンタックス要素(例えば、collocated_from_l0_flag)を信号伝達して、同一位置配置ピクチャがRefPicList0にあるか、又はRefPicList1にあるかを示すことができる。
[0087]スライスヘッダ内のシンタックス要素(例えば、collocated_ref_idx)は、識別された基準ピクチャリスト内の同一位置配置ピクチャを示すものとしてよい。こうして、ビデオデコーダ30が、同一位置配置ピクチャを含む基準ピクチャリストを識別した後、ビデオデコーダ30は、スライスヘッダで信号伝達され得る、collocated_ref_idxを使用して、識別された基準ピクチャリスト内の同一位置配置ピクチャを識別することができる。ビデオコーダは、同一位置配置ピクチャをチェックすることによって同一位置配置PUを識別することができる。TMVPは、右下のPU同じ位置にあるPUの動き情報と、同じ位置にあるPUの中心PUの動き情報のいずれかを示し得る。
[0088]ビデオコーダが、時間的基準ピクチャ内のTMVPの動きベクトルを指定する動きベクトル候補(例えば、AMVP候補リストのマージリスト内の候補)を生成する場合、ビデオコーダは、時間的基準ピクチャの時間的配置(POC値によって反映される)に基づいてTMVPの動きベクトルを拡大縮小することができる。言い換えれば、ビデオコーダは、現在のピクチャと基準ピクチャとの間のPOC距離に基づいて動きベクトル候補の動きベクトルを拡大縮小することができる。例えば、ビデオコーダが、第1のピクチャと第2のピクチャとの間のPOC距離に基づいて動きベクトルを拡大縮小する場合、ビデオコーダは、第1のピクチャのPOC値と第2のピクチャのPOC値との間の差が、第1のピクチャのPOC値と第2のピクチャのPOC値との間の差が小さいときよりも大きい場合に、より大きい量だけ動きベクトルの大きさを増加させることができる。
[0089]TMVPから導出される時間的統合候補に対する全てのあり得る参照ピクチャリストのターゲット参照インデックスは、常に0に設定され得る。ターゲット参照インデックスは、動き補償のために使用される参照ピクチャを特定することができる。しかしながら、AMVPでは、全てのあり得る参照ピクチャのターゲット参照インデックスは、復号された参照インデックスに等しく設定される。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に等しいとき、復号順序においてその特定のピクチャの前にあるピクチャからの動きベクトルは、その特定のピクチャ、又は復号順序でその特定のピクチャの後にあるピクチャの復号において、TMVPとして使用されない。
[0090]本開示の技法は、MV−HEVC及び3D−HEVCを含む、マルチビューコード化及び/又は3DVの規格及び仕様に適用可能である可能性がある。MV−HEVCでは、HEVCにおいてCUレベル又はPUレベルにあるモジュールが再設計される必要がないように、高レベルシンタックス(HLS)の変更のみがあり得る。このことは、HEVCのために構成されたモジュールがMV−HEVCのために再使用されることを可能にし得る。3D−HEVCでは、テクスチャビューと深度ビューの両方に対する、CU及び/又はPUレベルのコード化ツールを含む新たなコード化ツールが、含まれサポートされ得る。
[0091]HEVCに対する異なるコーデック拡張(例えば、MV−HEVC、3D−HEVC、SHVCなど)が、HEVCにおいて定義される様々なシンタックス構造に対する異なる拡張を定義することができる。シンタックス構造に対する拡張は、コーデック拡張に固有のシンタックス要素を含み得る。例えば、MV−HEVCは、VPSに対する拡張を定義することができ、3D−HEVCは、VPSに対する異なる拡張を定義することができる。
[0092]MV−HEVC及び3D−HEVCで定義されるようなマルチビューコード化では、異なる視点からの同じシーンの複数のビューがあり得る。マルチビューコード化及び3DVコード化の状況では、同じ時間インスタンスに対応するピクチャのセットを指すために「アクセス単位」という用語が使用される。具体的には、MV−HEVC及び3D−HEVCでは、アクセス単位は、復号順序が連続しており1つ又は複数のビュー成分からなる丁度1つのコード化されたピクチャを含む、NAL単位のセットであり得る。コード化されたピクチャのコード化されたスライスNAL単位に加えて、アクセス単位はまた、コード化されたピクチャのスライスを含まない他のNAL単位を含み得る。幾つかの例では、アクセス単位の復号は常に、1つ又は複数の復号されたビュー成分からなる1つの復号されたピクチャをもたらす。従って、ビデオデータは、時間とともに生じる一連のアクセス単位として概念化され得る。「ビュー成分」は、単一のアクセス単位中のビューのコード化された表現であり得る。ビュー成分は、テクスチャビュー成分と深度ビュー成分とを備え得る。本開示では、「ビュー」は、同じビュー識別子と関連付けられたビュー成分のシーケンスを指すことがある。
[0093]テクスチャビュー成分(即ち、テクスチャピクチャ)は、単一のアクセス単位中のビューのテクスチャのコード化された表現であり得る。テクスチャビューは、ビュー順序インデックスの同一の値と関連付けられるテクスチャビュー成分のシーケンスであり得る。ビューのビュー順序インデックスは、他のビューに対するビューのカメラ位置を示し得る。深度ビュー成分(即ち、深度ピクチャ)は、単一のアクセス単位中のビューの深度のコード化された表現であり得る。深度ビューは、ビュー順序インデックスの同一の値と関連付けられる深度ビュー成分のシーケンスであり得る。
[0094]マルチビューコード化、3DVコード化、及びスケーラブルビデオコード化では、ビットストリームは複数のレイヤを有し得る。MV−HEVC及び3D−HEVCで定義されるようなマルチビューコード化及び3DVコード化では、レイヤは異なるビューに対応し得る。ビデオデコーダ(例えば、ビデオデコーダ30)が、レイヤと関連付けられるピクチャを任意の他のレイヤ中のピクチャとは無関係に復号することができる場合、ビューは「ベースレイヤ」(又は「ベースビュー」)と呼ばれ得る。レイヤの復号が1つ又は複数の他のレイヤと関連付けられるピクチャ(例えば、ビュー)の復号に依存する場合、そのレイヤは非ベースレイヤ(例えば、非ベースビュー)と呼ばれ得る。
[0095]SVCでは、ベースレイヤ以外のレイヤは、「拡張レイヤ」と呼ばれることがあり、ビットストリームから復号されるビデオデータの視覚的品質を向上させる情報を提供し得る。スケーラブルビデオコード化(例えば、SHVC)では、「レイヤ表現」は、単一のアクセス単位中の空間レイヤのコード化された表現であり得る。説明を簡単にするために、本開示は、ビュー成分及び/又はレイヤ表現を「ビュー成分/レイヤ表現」と呼び得る。
[0096]レイヤを実装するために、NAL単位のヘッダは、nuh_reserved_zero_6bitsシンタックス要素を含み得る。異なる値を指定するnuh_reserved_zero_6bitシンタックス要素を有するNAL単位は、ビットストリームの異なる「レイヤ」に属す。そこで、マルチビューコード化、3DV、又はSVCでは、NAL単位のnuh_reserved_zero_6bitsシンタックス要素は、NAL単位のレイヤ識別子(即ち、レイヤID)を指定する。幾つかの例では、NAL単位のnuh_reserved_zero_6bitsシンタックス要素は、NAL単位がマルチビューコード化、3DVコード化、又はSVCにおけるベースレイヤに関係する場合に0に等しい。ビットストリームのベースレイヤ内のデータは、ビットストリームの他のレイヤ内のデータを参照することなく復号され得る。NAL単位が、マルチビューコード化、3DV、又はSVCにおけるベースレイヤに関係しない場合、nuh_reserved_zero_6bitsシンタックス要素は、非ゼロの値を有し得る。上で示されているように、マルチビューコード化と3DVコード化とにおいて、ビットストリームの異なるレイヤは、異なるビューに対応し得る。
[0097]更に、レイヤ内の幾つかのビュー成分/レイヤ表現は、同じレイヤ内の他のビュー成分/レイヤ表現とは無関係に復号され得る。そこで、レイヤの幾つかのビュー成分/レイヤ表現のデータをカプセル化するNAL単位は、レイヤ内の他のビュー成分/レイヤ表現の復号性に影響を及ぼすことなくビットストリームから取り除かれ得る。そのようなビュー成分/レイヤ表現のデータをカプセル化しているNAL単位を取り除くことで、ビットストリームのフレームレートを下げることができる。レイヤ内の他のビュー成分/レイヤ表現を参照することなく復号され得るレイヤ内のビュー成分/レイヤ表現のサブセットは、本明細書では「サブレイヤ」又は「時間的サブレイヤ」と称され得る。
[0098]NAL単位は、NAL単位の時間的識別子を指定するtemporal_idシンタックス要素を含み得る。NAL単位の時間的識別子は、NAL単位が属すサブレイヤを識別する。こうして、ビットストリームの各サブレイヤは、異なる時間的識別子を有し得る。一般に、第1のNAL単位の時間的識別子が、第2のNAL単位の時間的識別子より小さい場合、第1のNAL単位によってカプセル化されているデータは、第2のNAL単位によってカプセル化されているデータを参照することなく復号され得る。
[0099]マルチビューコード化は、ビュー間予測をサポートすることができる。ビュー間予測は、H.264/AVC、HEVC、又は他のビデオコード化仕様で使用されるインター予測に類似しており、同じシンタックス要素を使用することができる。しかしながら、ビデオコーダが、現在のブロック(マクロブロック又はPUなど)に対してビュー間予測を実行する場合、ビデオコーダは、基準ピクチャとして、現在のブロックと同じアクセス単位内にあるが、ビューが異なる、ピクチャを使用することができる。言い換えれば、マルチビューコード化では、ビュー間予測は、同じアクセス単位の異なるビューで撮影されたピクチャ間で実行され(即ち、同じ時間インスタンス内で)、これによりビュー間の相関を取り除く。対照的に、従来のインター予測は、異なるアクセス単位内のピクチャのみを基準ピクチャとして使用する。
[0100]従って、非ベースビュー中のピクチャ(即ち、現在のピクチャ)をコード化するとき、ビデオコーダ(ビデオエンコーダ20又はビデオデコーダ30のような)は、参照ピクチャリスト中にビュー間参照ピクチャを含め得る。ビュー間参照ピクチャは、現在のピクチャとは異なるビューの中に、また、現在のピクチャと同じ時間インスタンス(即ち、アクセス単位)の中にある。ビデオコーダは、参照ピクチャリストの任意の位置にビュー間予測参照ピクチャを挿入することができる。言い換えれば、ビュー間予測でコード化されたピクチャは、他の非ベースビューのビュー間予測に対して基準ピクチャリスト内に追加され得る。
[0101]図3は、マルチビューコード化のための例示的な予測構造体を示す概念図である。図3のマルチビュー予測構造体は、時間的及びビュー間予測を含む。図3の例では、各正方形は、ビューコンポーネントに対応する。図3の例では、アクセス単位はT0...T11のラベルが付けられ、ビューはS0...S7のラベルが付けられている。「I」のラベルが付けられている正方形は、イントラ予測されたビューコンポーネントである。「P」のラベルが付けられている正方形は、片方向インター予測されたビューコンポーネントである。「B」と「b」のラベルが付けられている正方形は、双方向インター予測されたビューコンポーネントである。「b」のラベルが付けられた正方形は、「B」のラベルが付けられた正方形を基準ピクチャとして使用することができる。第1の正方形から第2の正方形に向かう矢印は、第1の正方形がインター予測において第2の正方形に対する基準ピクチャとして利用可能であることを示している。図3の垂直矢印によって示されているように、同じアクセス単位の異なるビュー内のビューコンポーネントは、基準ピクチャとして利用可能であるものとしてよい。アクセス単位の1つのビューコンポーネントを同じアクセス単位の別のビューコンポーネントに対する基準ピクチャとして使用することは、ビュー間予測と称され得る。
[0102]H.264/AVCのMVC拡張では、ビュー間予測は視差動き補償によってサポートされ、視差動き補償は、H.264/AVC動き補償のシンタックスを使用するが、異なるビュー中のピクチャが参照ピクチャとして使用されることを可能にする。2つのビューのコード化は、H.264/AVCのMVC拡張でもサポートされ得る。H.264/AVCのMVC拡張の利点の1つは、MVCエンコーダが、3つ以上のビューを3Dビデオ入力として受け取ることができ、MVCデコーダが、そのようなマルチビュー表現を復号することができるという点である。従って、MVCデコーダを備えるレンダラは、3つ以上のビューを備える3Dビデオコンテンツを予期することができる。
[0103]マルチビュービデオコード化の状況では、2種類の動きベクトルがある。動きベクトルの1つの種類は、時間的基準ピクチャを指す通常の動きベクトルである。通常の時間的動きベクトルに対応するインター予測の種類は、動き補償予測(MCP)と称され得る。ビュー間予測基準ピクチャが、動き補償に使用される場合、対応する動きベクトルは、「視差動きベクトル」と称され得る。言い換えれば、視差動きベクトルは、異なるビュー内のピクチャ(即ち、視差基準ピクチャ又はビュー間基準ピクチャ)を指す。視差動きベクトルに対応するインター予測の種類は、「視差補償予測」又は「DCP」と称され得る。
[0104]スケーラブルビデオコード化は、本開示で説明されるビュー間予測と同様の方式でレイヤ間予測を実施することができる。一般に、レイヤ間予測は、現在のピクチャのnuh_layer_idの値とは別の値のnuh_layer_idを伴う参照ピクチャのデータ要素(例えば、サンプル値又は動きベクトル)に依存する方式の予測である。従って、レイヤ間予測で使用される参照ピクチャは、「レイヤ間参照ピクチャ」と呼ばれ得る。説明を簡単にするために、本開示は、ビュー間参照ピクチャ及び/又はレイヤ間参照ピクチャを、「ビュー/レイヤ間参照ピクチャ」と呼び得る。
[0105]MV−HEVC及び3D−HEVCは、ビュー間動き予測とビュー間残差予測とを使用して、コード化効率を改善することができる。ビュー間動き予測では、ビデオコーダは、現在のPUとは異なるビュー中のPUの動き情報に基づいて、現在のPUの動き情報を決定する(即ち、予測する)ことができる。言い換えると、現在のPUの対応するブロックは視差ベクトルによって特定され、対応するブロックの動きベクトルはAMVPの追加の候補又は現在のPUの統合リストとして使用され得る。加えて、視差ベクトルは、視差動きベクトルに変換され、AMVP又は統合リストに追加され得る。ビュー間残差予測では、ビデオコーダは、現在のCUとは異なるビュー中の残差データに基づいて、現在のCUの残差ブロックを決定することができる。即ち、ビュー間残差予測において、現在のCUの対応するブロックが0ではない残差画素を含む場合、ブロックの残差が現在のCUの残差を予測するために使用される。
[0106]ビュー間動き予測とビュー間残差予測とを可能にするために、ビデオコーダは、ブロック(例えば、PU、CUなど)に対する視差ベクトルを決定することができる。一般に、視差ベクトルは、2つのビューの間の変位の推定量として使用される。ビデオコーダは、ブロックに対する視差ベクトルを使用して、ビュー間動き又は残差予測について別のビュー内に基準ブロックを配置することができるか、又は、ビュー間動き予測のため視差ベクトルを視差動きベクトルに変換し得る。
[0107]L.Zhang他、「3D−CE5.h related: Advanced residual prediction for multiview coding」、ITU−T SG 16 WP 3とISO/IEC JTC 1/SC 29/WG 11とのJoint Collaborative Team on 3D Video Coding Extension Development、第2回会合:上海、中国、2012年10月13〜19日、文書JCT3V−B0051(以後「JCT3V−B0051」)は、ビュー間残差予測のコード化効率を更に改善するための高度な残差予測(ARP)方法を提案した。
[0108]図4は、マルチビュービデオコード化及び3Dビデオコード化におけるARPの例示的な予測構造を示す概念図である。図4は、現在のピクチャ70、時間的参照ピクチャ72、視差参照ピクチャ74、及び時間的視差参照ピクチャ76という、4つのピクチャを含む。現在のピクチャ70は、ビューV1と関連付けられ、時間インスタンスTjと関連付けられる。時間的参照ピクチャ72は、ビューV1と関連付けられ、時間インスタンスTiと関連付けられる。視差参照ピクチャ74は、ビューV0と関連付けられ、時間インスタンスTjと関連付けられる。時間的視差参照ピクチャ76は、ビューV0と関連付けられ、時間インスタンスTiと関連付けられる。
[0109]現在のピクチャ70は、「Dc」として示される現在のPUを含む。言い換えると、Dcは現在のビュー(ビュー1)の中の現在のブロックを表す。Dcは、時間的参照ピクチャ72の中のある位置を示す、時間的動きベクトルVDを有する。ビデオエンコーダ20は、時間的動きベクトルVDによって示される位置と関連付けられるピクチャ72中のサンプルに基づいて、時間的参照ブロックDrを決定することができる。従って、Drは時間Tiにおける同じビュー(ビュー1)からのDcの時間的予測ブロックを示し、VDはDcからDrへの動きを示す。
[0110]更に、ビデオエンコーダ20は、Dcの視差ベクトルによって示される位置と関連付けられる視差参照ピクチャ74中のサンプルに基づいて、視差参照ブロックBcを決定することができる。従って、Bcは参照ブロック(即ち、時間Tjにおける参照ビュー(ビュー0)の中のDcの表現)を示す。Bcの左上の位置は、導出された視差ベクトルをDcの左上の位置に加算することによって、導出された視差ベクトルとともに計算され得る。Dc及びBcは、2つの異なるビューにおける同じオブジェクトの投影であり得るので、Dc及びBcは同じ動き情報を共有するはずである。従って、時間Tiにおけるビュー0の中のBcの時間予測ブロックBrは、VDの動き情報を適用することによってBcから位置決定され得る。
[0111]ビデオエンコーダ20は、時間的視差ピクチャ76の中の時間的視差参照ブロックBr(Bcの予測ブロック)を決定することができる。上で示されたように、時間的視差ピクチャ76は、Brと同じビュー(即ち、ビューV0)と関連付けられ、Drと同じ時間インスタンス(即ち、時間インスタンスTi)と関連付けられる。ビデオエンコーダ20は、Dcの動きベクトルVDによって示される位置にあるサンプルに基づいて、Brを決定することができる。従って、Brの左上の位置は、動きベクトルVDをBcの左上の位置に加算することによって、再使用される動きベクトルVDとともに計算され得る。Bcの左上の位置は、Dcの左上の位置と視差ベクトルとの合計に等しくてよい。従って、Brの左上の位置は、Dcの左上の位置と視差ベクトルと動きベクトルVDの座標の合計に等しくてよい。このようにして、図4において矢印78によって示されるように、ビデオエンコーダ20は、Brを決定するための動きベクトルVDを再使用することができる。
[0112]更に、ARPにおいて、第1の残差ブロック中の各サンプルは、Dcの中のサンプルとDrの対応するサンプルとの差を示し得る。第1の残差ブロックは、Dcの元の残差ブロックと呼ばれ得る。第2の残差ブロック中の各サンプルは、Bcの中のサンプルとBrの中の対応するサンプルとの差を示し得る。第2の残差ブロックは「残差予測子」と呼ばれ得る。ビデオエンコーダ20は動きベクトルVDを使用してBrを決定するので、残差予測子はBcの実際の残差データとは異なり得る。
[0113]ビデオエンコーダ20が残差予測子を決定した後で、ビデオエンコーダ20は、重み付け係数によって残差予測子を乗算することができる。言い換えると、VDの動き情報を伴うBcの残差は、重み付け係数によって乗算され、現在の残差のための残差予測子として使用される。重み付け係数は、0、0.5、又は1に等しくてよい。従って、3つの重み付け係数(即ち、0、0.5、及び1)がARPにおいて使用され得る。ビデオエンコーダ20が重み付け係数によって残差予測子を乗算した後、残差予測子は、重み付けられた残差予測子と呼ばれ得る。ビデオエンコーダ20は、最終的な重み付け係数として、現在のCU(即ち、現在のPUを含むCU)に対して最小限のレート歪みコストをもたらす重み付け係数を選択することができる。ビデオエンコーダ20は、ビットストリーム中に、重み付けインデックスを示すデータをCUレベルで含め得る。重み付けインデックスは、現在のCUに対する最終的な重み付け係数(即ち、重み付けられた残差予測子を生成するために使用された重み付け係数)を示し得る。幾つかの例では、0、1、及び2という重み付けインデックスは、0、1、及び0.5という重み付け係数にそれぞれ対応する。現在のCUに対して0という重み付け係数を選択することは、現在のCUのPUのいずれに対してもARPを使用しないことと等価である。
[0114]ビデオエンコーダ20は次いで、現在のPUの最終的な残差ブロックを決定することができる。現在のPUの最終的な残差ブロック中の各サンプルは、元の残差ブロック中のサンプルと、重み付けられた残差予測子中の対応するサンプルとの差を示し得る。現在のCU(即ち、現在のPUを含むCU)の残差ブロックは、現在のCUの他のPUの残差ブロックがもしあればそれらとともに、現在のPUの最終的な残差ブロックを含み得る。本開示の他の箇所で説明されるように、ビデオエンコーダ20は、1つ又は複数の変換ブロックの間で、現在のCUの残差ブロックを区分することができる。変換ブロックの各々は現在のCUのTUと関連付けられ得る。各変換ブロックに対して、ビデオエンコーダ20は、変換ブロックに1つ又は複数の変換を適用して、変換係数ブロックを生成することができる。ビデオエンコーダ20は、ビットストリーム中に、変換係数ブロックの量子化された変換係数を表すデータを含め得る。
[0115]従って、ARPでは、2つのビューの残差の間での高い相関を確実にするために、ビデオエンコーダ20は、現在のPUの動きを、参照ビューピクチャ中の対応するブロックに適用して、ビュー間残差予測のために使用されるべきベースビュー中の残差を生成することができる。このようにして、現在のPU及び参照ビュー中の対応する参照ブロックに対して、動きが揃えられる。その上、予測誤差が更に減るように、適応重み付け係数が残差信号に適用される。
[0116]現在のPUが双予測される場合、ビデオエンコーダ20は同様の処理を実行することができる。例えば、ビデオエンコーダ20は、RefPicList0時間的視差参照ブロックとRefPicList1時間的視差参照ブロックとを決定するために、現在のPUのRefPicList0動きベクトルとRefPicList1動きベクトルの両方を使用することができる。ビデオエンコーダ20は、RefPicList0時間的視差参照ブロックとRefPicList1時間的視差参照ブロックのサンプルを補間することによって、予測ブロックを決定することができる。ビデオエンコーダ20は、上で説明された方式でこの予測ブロックを使用することができる。ビデオデコーダ30は、双予測されたPUに対してARPを実行するとき、同様の処理を実行することができる。例えば、ビデオデコーダ30は、上で説明された見本の方式で、現在のPUの予測ブロックと重み付けられた残差予測子とを決定することができる。ビデオデコーダ30は、ビットストリーム中で信号伝達される要素に基づいて、現在のPUの最終的な残差ブロックを決定することができる。ビデオデコーダ30は次いで、現在のPUの最終的な残差ブロックと、現在のPUの予測ブロックと、重み付けられた残差予測子とを加算することによって、現在のPUの予測ブロックを再構築することができる。
[0117]幾つかの例では、ビデオコーダは、隣接ブロックベース視差ベクトル(NBDV)の方法を使用して、ブロックに対する視差ベクトルを導出することができる。3D−HEVCでは、最初に、L. Zhangら、「3D−CE5.h: Disparity vector generation results」、ITU−T SG 16 WP 3とISO/IEC JTC 1/SC 29/WG 11との3Dビデオコード化拡張開発に関する共同チーム、第1回会合:ストックホルム、スウェーデン、16−20、2012年7月、文書JCT3V−A0097(これ以降、「JCT3V−A0097」)で提案されているNBDV導出プロセスを採用した。NBDV導出プロセスは、それ以来、更に適応がなされている。例えば、Sungら、「3D−CE5.h: Simplification of disparity vector derivation for HEVC−based 3D video coding」、ITU−T SG 16 WP 3とISO/IEC JTC 1/SC 29/WG 11との3Dビデオコード化拡張開発に関する共同チーム、第1回会合:ストックホルム、スウェーデン、16−20、2012年7月、文書JCT3V−A0126(これ以降、「JCT3V−A0126」)において簡素化されたNBDVとともに暗黙的視差ベクトル(IDV)が含まれた。更に、Kangら、「3D−CE5.h related:Improvements for disparity vector derivation」、ITU−T SG 16 WP 3とISO/IEC JTC 1/SC 29/WG 11とのJoint Collaborative Team on 3D Video Coding Extension Development、第2回会合:上海、中国、2012年10月13〜19日、文書JCT3V−B0047(以後「JCT3V−B0047」)では、NBDV導出処理は、復号ピクチャバッファに記憶されているIDVを除去することによって更に簡略化されるが、ランダムアクセスピクチャ(RAP)ピクチャ選択によるコード化利得に関する改善ももたらす。
[0118]NBDV導出処理は、空間的及び時間的に隣接するブロックからの視差動きベクトルを使用して、現在のブロックの視差ベクトルを導出する。隣接ブロック(例えば、現在のブロックに空間的又は時間的に隣接するブロック)は、ビデオコード化において殆んど同じ動き情報と視差情報とを共有する可能性が高いので、現在のブロックは、現在のブロックの視差ベクトルの予測子として、隣接ブロックにおける動きベクトル情報を使用することができる。言い換えると、隣接ブロックはビデオコード化において殆んど同じ動き情報/視差情報を共有するので、現在のブロックは、コード化利得を改善するための良い予測子として、隣接ブロックにおける動きベクトル情報を使用することができる。この考えに従って、NBDV導出処理は、異なるビューにおける視差ベクトルを推定するために隣接する視差情報を使用する。
[0119]ビデオコーダが現在のブロックの視差ベクトルを決定するためにNBDV導出処理を実行するとき、ビデオコーダは隣接ブロックの2つのセットを利用することができる。一方のセットは空間的隣接ブロックからのものであり、他方のセットは時間的隣接ブロックからのものである。言い換えると、幾つかの空間的隣接ブロック及び時間的隣接ブロックは最初に定義される。ビデオコーダは次いで、現在のブロックと隣接ブロックとの間の相関付けの優先順位によって決定される、事前に定義された順序で、隣接ブロックの各々を確認することができる。ビデオコーダが候補(即ち、隣接ブロック)中に視差動きベクトルを見つけると、ビデオコーダは、視差動きベクトルを現在のブロックの視差ベクトルへと変換することができる。
[0120]NBDV導出プロセスの幾つかのバージョンにおいて、ビデオコーダは、視差ベクトル導出に5つの空間的隣接ブロックを使用する。例えば、ビデオコーダは、空間的隣接ブロック、即ち、現在のブロックの左下の空間的隣接ブロックと、左の空間的隣接ブロックと、右上の空間的隣接ブロックと、上の空間的隣接ブロックと、左上の空間的隣接ブロックとをチェックすることができる。NBDV導出プロセスの幾つかのバージョンでは、視差ベクトル導出ブロックに使用されるこれら5つの空間的隣接ブロックは、図2に示されているように配置A0、A1、B0、B1、及びB2をそれぞれカバーするものとしてよい。幾つかの例では、NBDV導出プロセスで使用される空間的隣接ブロックは、HEVCのマージモードで使用されるものと同じである。従って、幾つかのそのような例では、追加のメモリアクセスは不要である。
[0121]幾つかの例では、ビデオコーダは、空間的隣接ブロックを1つずつ確認することができる。更に、幾つかの例では、5個の空間的隣接ブロックの確認順序は、A1、B1、B0、A0、及びB2として定義される。
[0122]更に、上で述べたように、ビデオコーダは、現在のブロック(例えば、現在のPU)に対する視差ベクトルを決定するプロセスの一部として時間的隣接ブロックをチェックすることができる。ビデオコーダが、時間的隣接ブロック(例えば、時間的隣接PU)をチェックする場合、ビデオコーダは、最初に、候補ピクチャリストの構成プロセスを実行するものとしてよい。ビデオコーダが、候補ピクチャリストの構成プロセスを実行する場合、ビデオコーダは、現在のビュー(即ち、現在のブロックに関連付けられているビュー)に関連付けられている全ての基準ピクチャを候補ピクチャとして取り扱うことができる。更に、ビデオコーダが、候補ピクチャリストの構成プロセスを実行する場合、ビデオコーダは、最初に、候補ピクチャリスト内に所謂「同一位置配置ピクチャ」を挿入し、続いて、候補ピクチャの残りを、基準インデックスの昇順で挿入することができる。即ち、ビデオコーダは、残りの候補ピクチャが現在のピクチャの基準ピクチャリスト(例えば、RefPicList0とRefPicList1)内に出現する順序に従って残りの候補ピクチャを候補ピクチャリスト内に挿入することができる。現在のブロックを含むスライスのスライスヘッダ内の1つ又は複数のシンタックス要素は、同一位置配置ピクチャ(co-located picture)を示すことができる。幾つかの例では、両方の基準ピクチャリスト(例えば、RefPicList0とRefPicList1)内の同じ基準インデックスを有する基準ピクチャがNDBV導出プロセスでの使用に利用可能である場合、同一位置配置ピクチャと同じ基準ピクチャリスト内の基準ピクチャは、候補ピクチャリスト内で、他の基準ピクチャに先行する。
[0123]候補ピクチャリストを生成した後、ビデオコーダは、候補ピクチャリスト内の候補ピクチャ内の候補領域を決定することができる。ビデオコーダは、候補領域を使用して、時間的隣接ブロックを決定することができる。上で示されているように、ビデオコーダは、視差動きベクトル又は時間的隣接ブロックのIDVに基づいて現在ブロックに対する視差ベクトルを導出することができる。幾つかの例では、候補ピクチャリスト中の各候補ピクチャに対して、ビデオコーダは、時間的隣接ブロックを導出するための3つの候補領域を決定することができる。これら3つの候補領域は、次のように定義され得る。
CPU:現在のPU又は現在のCUの同一位置配置領域
CLCU:現在のPUの同一位置配置領域(co-located region)をカバーする最大コード化単位(LCU)
BR:CPUの右下の4×4のブロック
[0124]16×16のブロックにおけるより小さいブロックは、動き補償の結果と同じ動き情報を共有し得るので、ビデオコーダは、視差ベクトルに対するサンプルブロックを1つだけチェックすればよい。候補領域が、複数の16×16のブロックをカバーする場合、ビデオコーダは、ラスタースキャン順序に従って候補領域内の全ての16×16のブロックをチェックすることができる。例えば、時間的同一位置配置ブロック(temporally co-located block)に対する動きベクトルは、基準ピクチャの16×16のブロック内に格納され、典型的には、ビデオコーダは、4×4のブロックにアクセスして、動きベクトルを見つける。こうして、幾つかの例では、ビデオコーダが、候補ブロックを16×16のブロック内に置いた場合、全ての4×4のブロックは、共通動きベクトルを含み、ビデオコーダは、異なる動きベクトルを見つけるために全ての4×4のブロックをチェックする必要はない。他方、候補領域が16×16より大きい場合、16×16のブロックの外の4×4のブロックは、異なる動きベクトルを含み得る。
[0125]ビデオコーダが、候補領域(又は候補領域内の16×16のブロック)をチェックする場合、ビデオコーダは、候補領域をカバーするPUが視差動きベクトルを指定するかどうかを決定することができる。候補領域をカバーするPUが、視差動きベクトルを指定する場合、ビデオコーダは、PUの視差動きベクトルに基づいて現在のブロックの視差ベクトルを決定することができる。
[0126]幾つかの例では、ビデオコーダは、NBDV導出プロセスを実行する一環として優先度ベースの視差ベクトル決定を実行することができる。例えば、ビデオコーダは、ビデオコーダが視差動きベクトルを含む隣接ブロックを識別した後に、ビデオコーダが視差動きベクトルを現在のブロックに対する視差ベクトルに変換するように視差ベクトルを導出することができる。次いで、ビデオコーダは、ビュー間動き予測及び/又はビュー間残差予測に視差ベクトルを使用することができる。幾つかの例では、隣接ブロックのチェック順序は、隣接ブロックと現在のブロックとの間の相関に基づいて定義される。例えば、ビデオコーダは、最初に、空間的隣接ブロックを1つずつチェックし得る。ビデオコーダが視差動きベクトルを識別した後、ビデオコーダは、視差動きベクトルを視差ベクトルとして返す。幾つかの例では、5つの空間的隣接ブロックのチェック順序は、A1、B1、B0、A0、及びB2として定義される。
[0127]更に、候補ピクチャリスト内の各候補ピクチャについて、ビデオコーダは、この候補ピクチャにおける3つの候補領域を順にチェックすることができる。3つの領域のチェック順序は、第1の非ベースビューについてはCPU、CLCU、及びBR、第2の非ベースビューについてはBR、CPU、CLUとして定義される。この例では、第1の非ベースビューに関連付けられているピクチャの復号は、ベースビューに関連付けられているピクチャの復号に依存するが、他のビューに関連付けられているピクチャの復号には依存し得ない。更に、この例では、第2の非ベースビューに関連付けられているピクチャの復号は、ベースビュー、また場合によっては、第1の非ベースビューに関連付けられているピクチャの復号に依存するが、もし存在すれば他のビューに関連付けられているピクチャの復号には依存し得ない。簡単にするため、空間的隣接ブロック内の視差動きベクトルは、空間的視差ベクトル(SDV)として表され、時間的隣接ブロック内の視差動きベクトルは、時間的視差ベクトル(TDV)として表され得る。
[0128]ビデオコーダがブロックの動きベクトル(複数可)(即ち、空間的隣接ブロック、候補ピクチャの候補領域、又は候補ピクチャの候補領域の16×16のブロック)をチェックする場合、ビデオコーダは、ブロックの動きベクトル(複数可)が視差動きベクトルであるかどうかを決定することができる。ピクチャのブロックの視差動きベクトルは、ピクチャの視差基準ピクチャ内の配置を指している動きベクトルである。所与のピクチャの視差参照ピクチャ(本明細書ではビュー間参照ピクチャとも呼ばれる)は、所与のピクチャと同じアクセス単位と関連付けられるが、所与のピクチャとは異なるビューと関連付けられる、ピクチャであり得る。ビデオコーダが、視差動きベクトルを識別する場合、ビデオコーダは、チェックプロセスを終了することができる。ビデオコーダは、返された視差動きベクトルを視差ベクトルに変換することができ、またビュー間動き予測とビュー間残差予測とに対して視差ベクトルを使用することができる。例えば、ビデオコーダは、視差動きベクトルの水平成分に等しい現在のブロックに対する視差ベクトルの水平成分を設定することができ、視差ベクトルの垂直成分を0に設定することができる。別の例では、ビデオコーダは、視差動きベクトルに等しく視差ベクトルを設定することによって、視差動きベクトルを視差ベクトルに変換することができる。
[0129]ビデオコーダが空間的隣接ブロック(例えば、空間的隣接PU)を確認するとき、ビデオコーダはまず、空間的隣接ブロックが視差動きベクトルを有するかどうかを確認することができる。空間的隣接ブロックのいずれもが視差動きベクトルを有しない場合、ビデオコーダは、空間的隣接ブロックのいずれかがIDVを有するかどうかを決定することができる。更に、ビデオコーダが視差動きベクトル又はIDVを特定するとき、ビデオコーダは、特定された視差動きベクトル又はIDVを返すことができる。「暗黙的視差ベクトル」という用語は、ビュー間動き予測又はビュー間残差予測のために使用された視差ベクトルを指し得る。対応するブロックが時間的動き予測によってコード化され得るとしても、ビデオコーダは、1つ又は複数の後続のブロックをコード化する目的で、導出された視差ベクトルを廃棄しない。このようにして、IDVは、視差ベクトル導出の目的で、ブロックに記憶され得る。
[0130]空間的隣接PUのいずれかがIDVを有するかどうかをビデオコーダが決定するとき、ビデオコーダは、A0、A1、B0、B1、及びB2の順序で、空間的隣接PUを確認することができる。従って、ビデオコーダは、視差動きベクトルに対してA1、B1、B0、A0、及びB2の順序で空間的隣接PUを確認し、IDVに対してA0、A1、B0、B1、及びB2の順序で空間的隣接PUを確認することができる。空間的隣接PUの1つがIDVを有する場合、IDVは統合/スキップモードとしてコード化され、ビデオコーダは確認処理を終了することができ、現在のブロックの最終的な視差ベクトルとしてIDVを使用することができる。
[0131]NBDV導出処理を実行することによってビデオコーダが現在のブロックの視差ベクトルを導出することが不可能である場合(即ち、視差ベクトルが見つからない場合)、ビデオコーダは、現在のブロックの視差ベクトルとして0視差ベクトルを使用することができる。0視差ベクトルは、0に等しい水平成分と垂直成分の両方を有する視差ベクトルである。従って、NBDV導出処理が利用不可能な結果を返すときであっても、視差ベクトルを必要とするビデオコーダの他のコード化処理は、現在のブロックに対して0視差ベクトルを使用することができる。幾つかの例では、NBDV導出処理を実行することによってビデオコーダが現在のブロックの視差ベクトルを導出することが不可能である場合、ビデオコーダは、現在のブロックに対するビュー間残差予測を無効にすることができる。しかしながら、NBDV導出処理を実行することによってビデオコーダが現在のブロックの視差ベクトルを導出することが可能かどうかに関係なく、ビデオコーダは、現在のPUに対してビュー間動き予測を使用することができる。即ち、全ての事前に定義された隣接ブロックを確認した後で視差ベクトルが見つからない場合、ビュー間動き予測のために0視差ベクトルが使用され得るが、ビュー間残差予測は対応するCUに対して無効にされ得る。
[0132]ビデオコーダがNBDV導出処理の一部としてIDVを確認する幾つかの例では、ビデオコーダは次のステップを実行し得るが、他の例では追加のステップも使用され得る。次のステップのどれかで視差ベクトルを見つけた場合、ビデオコーダは、導出プロセスを終了することができる。
ステップ1:5つの空間的隣接ブロックを、A1、B1、B0、A0、及びB2の順序でチェックして、視差動きベクトルを見つける。ビデオコーダは、視差動きベクトルを見つけた後、視差動きベクトルを視差ベクトルに変換する。空間的隣接ブロックがIDVを含んでいる場合、ビデオコーダは、それらのIDVフラグを「IDV使用済み」とマークし、IDVフラグの関連する値を格納する。
ステップ2:時間的動きベクトル予測が有効化されている場合に、次のように適用する。
a)現在のコード化モードがAMVPである場合、ターゲット基準ピクチャリスト内にあるターゲット基準インデックスを有する基準ピクチャが、同一位置配置ピクチャとして使用される。同一位置配置ピクチャ内の2つのブロックが定義される(即ち、同一位置配置PU(BR)の右下のブロックと、同一位置配置PU(CB)の中心のブロック)。この例では、ビデオコーダは、次の順序で同一位置配置ピクチャのブロックをチェックする。
1)BRをチェックして、BRが視差動きベクトルを含んでいるかどうかを確認する。含んでいれば、ビデオコーダは、視差動きベクトルを視差ベクトルに変換する。含んでいなければ、BRがスキップモードとしてコード化され、BRがIDVを含んでいる(即ち、IDVのフラグが1に等しい)場合、ビデオコーダは、BRを「IDV使用済み」とマークし、関連するIDVを格納する。次いで、ビデオコーダは、以下のステップ3を実行するものとしてよい。
2)CBをチェックして、CBが視差動きベクトルを含んでいるかどうかを確認する。含んでいれば、ビデオコーダは、視差動きベクトルを視差ベクトルに変換する。含んでいなければ、BRがスキップモードとしてコード化され、BRがIDVを含んでいる(即ち、IDVのフラグが1に等しい)場合、ビデオコーダは、BRを「IDV使用済み」とマークし、ビデオコーダは、関連するIDVを格納する。次いで、ビデオコーダは、ステップ3を実行するものとしてよい。
b)現在のコード化モードがスキップ/マージである場合、ビデオコーダは、適用可能な場合に、各基準ピクチャリスト内の2つの同一位置配置基準ピクチャを使用する。同一位置配置基準ピクチャを示す基準インデックスは、左の隣接PUの基準インデックス又は0に等しいものとしてよい。基準ピクチャリスト0と1との同一位置配置ピクチャの各々について、ビデオコーダは、ステップ2、a)1)とa)2)とのステップを順に実行する。
ステップ3:5つの空間的隣接ブロックのうちの1つが、スキップモードとしてコード化され、空間的隣接ブロックがIDVを含む(即ち、空間的隣接ブロックが「IDV使用済み」とマークされているフラグを有する)場合に、ビデオコーダは、IDVを視差ベクトルとして返す。この例では、IDVに対する空間的隣接ブロックのチェック順序は、A0、A1、B0、B1、及びB2である。
ステップ4:時間的動きベクトル予測が有効化され、「IDV使用済み」とマークされている同一位置配置ピクチャ内に1つのブロック(即ち、BR又はCB)がある場合、ビデオコーダは、そのブロックに関連付けられているIDVを視差ベクトルに変換する。幾つかの例では、ビデオコーダは、IDVの水平成分を視差ベクトルの水平成分に等しく設定し、視差ベクトルの垂直成分を0に等しく設定することによって、IDVを視差ベクトルに変換することができる。他の例では、ビデオコーダは、IDVに等しく視差ベクトルを設定することによって、IDVを視差ベクトルに変換することができる。
[0133]復号ピクチャバッファ(DPB)中のIDVにアクセスすることと関連付けられる、メモリ帯域幅と複雑さの要件は大きいことがある。例えば、ビデオコーダは、DPBからのIDVを記憶し取り出すために、幾つかのメモリアクセスを実行する必要があり得る。従って、ビデオコーダは、低複雑度のNBDV導出プロセスを実行するものとしてよい。ビデオコーダは、ビデオコーダが低複雑度のNBDV導出プロセスを実行するときに、より少ないブロック候補を考慮する。例えば、ビデオコーダは、DPBに、IDVに対する情報を格納することができる。この例では、IDVに対する情報は、全ての以前にコード化されたピクチャに対するIDVフラグとベクトルとを含み得る。更に、低複雑度のNBDV導出プロセスでは、DPB内のIDV候補を取り除くことで、メモリ帯域幅を減らすことができる。言い換えれば、ビデオコーダは、IDV関係情報をDPBに格納しない。
[0134]幾つかの低複雑度のNBDV導出プロセスにおいて、ビデオコーダは、上で説明されているNBDV導出プロセスよりも少ない、候補ピクチャの候補領域をチェックする。例えば、図5は、時間的候補ピクチャの対応するPUにおける時間的隣接要素を示す概念図である。図5の例において、ビデオコーダは、「Pos.A」と「Pos.B」とによって示されるこの位置をカバーする候補領域をチェックすることができる。更に、幾つかの低複雑度のNBDV導出プロセスにおいて、ビデオコーダは、同一位置配置ピクチャとランダムアクセスピクチャのみの候補領域をチェックすることができる。従って、幾つかの例において、同一位置配置ピクチャとランダムアクセスピクチャとは、時間的ブロックのチェックについて考慮される(即ち、図5に示されているような下の下と中心のブロック)。HEVC及び他のビデオコード化仕様では、ランダムアクセスは、ビットストリーム中の第1のコード化されたピクチャではないコード化されたピクチャから始まるビットストリームの復号を指す。ランダムアクセスピクチャの例示的なタイプは、IDRピクチャ、CRAピクチャ、及びBLAピクチャを含む。
[0135]更に、幾つかの低複雑度のNBDV導出プロセスにおいて、ビデオコーダは、スライスレベル又はピクチャレベルで候補ピクチャ導出を1回実行することができる。言い換えれば、ビデオコーダは、ピクチャ又はスライスごとに1回NBDV導出プロセスで使用するための候補ピクチャリストを生成することができる。その結果、そのような低複雑度のNBDV導出プロセスにおいて、ビデオコーダは、PUレベル又はCUレベルで候補ピクチャ導出プロセスをもはや呼び出さない。
[0136]各々のコード化されたピクチャは、コード化されたピクチャとコード化されたピクチャの後続の(即ち、未来の)ピクチャのいずれかによる参照のために使用され得る全てのピクチャを含む、参照ピクチャセットを有し得る。ビデオコーダは、どのピクチャが未来のピクチャの参照としてのみ使用され得るかを区別することができる。参照ピクチャリストは、現在のピクチャのために使用され得る参照ピクチャセット(「RPS」)(即ち「現在のためのRPS」)中のピクチャに基づいて、従って、未来のピクチャの参照としてのみ使用され得るピクチャに基づかずに、構築され得る。未来のRPS中のピクチャは、2つの参照ピクチャリスト、RefPicList0又はRefPicList1のいずれにもないことがある。
[0137]幾つかの例では、ビデオエンコーダ20が、現在のピクチャの符号化を開始すると、ビデオエンコーダ20は、現在のピクチャに対して基準ピクチャの5つのサブセット(即ち、基準ピクチャサブセット)を生成し得る。幾つかの例では、これら5つの基準ピクチャサブセットは、RefPicSetStCurrBefore、RefPicSetStCurrAfter、RefPicSetStFoll、RefPicSetLtCurr、及びRefPicSetLtFollである。本開示では、RefPicSetStCurrBefore、RefPicSetStCurrAfter、RefPicSetStFollにおける基準ピクチャを「短期基準ピクチャ」、「短期ピクチャ」、又は「STRP」として参照することができる。従って、「短期基準ピクチャ」は、短期基準に使用されているものとして(例えば、RefPicSetStCurrBefore、RefPicSetStCurrAfter、又はRefPicSetStFollであることによって)マークされるピクチャであってよい。本開示では、RefPicSetLtCurrとRefPicSetLtFollとにおける基準ピクチャを「長期基準ピクチャ」、「長期ピクチャ」、又は「LTRP」として参照することができる。ビデオエンコーダ20は、各ピクチャに対して5個の参照ピクチャサブセットを再生成し得る。
[0138]更に、現在のピクチャがPスライス(即ち、イントラ予測及び単方向インター予測が有効にされるスライス)を備えるとき、ビデオエンコーダ20は、現在のピクチャのための単一の参照ピクチャリスト(RefPicList0)を生成するために、現在のピクチャのRefPicStCurrAfter参照ピクチャサブセット、RefPicStCurrBefore参照ピクチャサブセット、及びRefPicStLtCurr参照ピクチャサブセットからの参照ピクチャを使用し得る。現在のピクチャがBスライス(即ち、イントラ予測、単方向インター予測、及び双方向インター予測が有効にされるスライス)を備えるとき、ビデオエンコーダ20は、現在のピクチャのための2つの参照ピクチャリスト(RefPicList0及びRefPicList1)を生成するために、現在のピクチャのRefPicStCurrAfter参照ピクチャサブセット、RefPicStCurrBefore参照ピクチャサブセット、及びRefPicStLtCurr参照ピクチャサブセットからの参照ピクチャを使用し得る。ビデオエンコーダ20は、現在のピクチャの第1のスライスに対するスライスヘッダ内に、現在のピクチャの基準ピクチャサブセットを決定するためにビデオデコーダ30が使用することができるシンタックス要素を含み得る。ビデオデコーダ30が、現在のピクチャの現在のスライスを復号する場合、ビデオデコーダ30は、現在のピクチャの基準ピクチャサブセットを決定し、RefPicList0及び/又はRefPicList1を再生成することができる。
[0139]上で示されたように、ビデオコーダが現在のピクチャをコード化することを開始すると、ビデオコーダは、現在のピクチャに対する第1の参照ピクチャリスト(即ち、RefPicList0)を初期化することができる。更に、現在のピクチャがBスライスを備える場合、ビデオコーダは、現在のピクチャに対する第2の参照ピクチャリスト(即ち、RefPicList1)を初期化することができる。従って、幾つかの例では、ビデオコーダは、現在のビュー成分/レイヤ表現がBスライス(即ち、双予測スライス)を含む場合にのみ、RefPicList1を生成することができる。幾つかの例では、基準ピクチャリスト初期化は、基準ピクチャのピクチャ順序カウント(POC)値の順序に基づいて基準ピクチャメモリ(即ち、復号ピクチャバッファ)内の基準ピクチャをリストに入れる明示的機構である。POC値は、同じコード化されたビデオシーケンス内の他のピクチャの出力順序位置に関する出力順序で関連するピクチャの位置を示す各ピクチャに関連付けられている変数である。
[0140]RefPicList0を生成するために、ビデオコーダ(例えば、ビデオエンコーダ又はビデオデコーダ)は、RefPicList0の初期のデフォルトバージョンを生成することができる。幾つかの例では、RefPicList0の初期バージョンにおいて、RefPicSetStCurrBefore中の参照ピクチャが最初に列挙され、RefPicSetStCurrAfter中の参照ピクチャがそれに続き、RefPicSetLtCurr中の参照ピクチャがそれに続く。同様に、RefPicList1を生成するために、ビデオコーダはRefPicList1の初期バージョンを生成することができる。幾つかの例では、RefPicList1の初期バージョンにおいて、RefPicSetStCurrAfter中の参照ピクチャが最初に列挙され、RefPicSetStCurrBefore中の参照ピクチャがそれに続き、RefPicSetLtCurr中の参照ピクチャがそれに続く。
[0141]幾つかの例では、ビデオコーダは、ビデオコーダが最終基準ピクチャリスト(即ち、RefPicList0とRefPicList1)を構成した後にBスライスに対して組み合わされたリスト(例えば、RefPicListC)を構成する。ビデオコーダは、更に1つ又は複数の基準ピクチャリスト修正シンタックス要素が、組み合わされたリストについて存在する場合に、組み合わされたリストを更に修正することができる。
[0142]ビデオコーダが基準ピクチャリスト(例えば、RefPicList0又はRefPicList1)を初期化した後、ビデオコーダは、基準ピクチャリスト内の基準ピクチャの順序を修正することができる。言い換えれば、ビデオコーダは、基準ピクチャリスト修正(RPLM)プロセスを実行することができる。ビデオコーダは、1つの特定の基準ピクチャが基準ピクチャリスト内の複数の位置に出現し得る場合を含めて、任意の順序で基準ピクチャの順序を修正することができる。従って、基準ピクチャリスト順序変更機構は、ピクチャが初期化リストに属していないとしても、基準ピクチャリスト初期化時にリストに入れられたピクチャの位置を新しい位置に修正するか、又は基準ピクチャを基準ピクチャメモリ内の任意の位置に入れることができる。しかしながら、ピクチャの位置がリストのアクティブな基準ピクチャの数を超える場合、ピクチャは、最終基準ピクチャリストのエントリとみなされない。スライスヘッダは、基準ピクチャリスト内のアクティブな基準ピクチャの数を示す1つ又は複数のシンタックス要素を含み得る。
[0143]RPLM処理を実施するために、スライスヘッダはRPLMシンタックス構造(例えば、ref_pic_list_modification())を含み得る。以下の表1は、HEVC Working Draft 8で提示されたRPLMシンタックス構造を示す。
[0144]上の表1の例、及び本開示の他のシンタックス表では、nが非負の整数であるu(n)という形式の記述子を有するシンタックス要素は長さnの符号なしの値である。更に、u(v)という形式の記述子を有するシンタックス要素は符号なしの可変長の値である。更に、表1に関して、変数NumPocTotalCurrは、NumPocStCurrBefore+NumPocStCurrAfter+NumPocLtCurrに等しく設定される。NumPocStCurrBeforeは、RefPicSetStBefore中の要素の数を示す。NumPocStCurrAfterは、RefPicSetStAfter中の要素の数を示す。NumPocLtCurrは、RefPicSetLtCurr中の要素の数を示す。
[0145]表1において、1に等しいref_pic_list_modification_flag_l0シンタックス要素は、RefPicList0がlist_entry_l0[i]の値のリストとして明示的に規定されることを示す。0に等しいref_pic_list_modification_flag_l0シンタックス要素は、RefPicList0が暗黙的に決定されることを示す。1に等しいref_pic_list_modification_flag_l1シンタックス要素は、RefPicList1がlist_entry_l1[i]の値のリストとして明示的に規定されることを示す。0に等しいref_pic_list_modification_flag_l1シンタックス要素は、RefPicList1が暗黙的に決定されることを示す。
[0146]更に、表1の例において、list_entry_lX[i]シンタックス要素(Xは0又は1に等しい)は、参照ピクチャリストLX(Xは0又は1に等しい)の現在の位置に配置されるべきRefPicSetCurrTempListX中の参照ピクチャのインデックスを規定する。RefPicSetCurrTempListX(RefPicListTempXとも呼ばれる)はRefPicListXの初期バージョンである。Xの値は、list_entry_lX、RefPicSetCurrTempListX、及びLXの各々に対して同じである。この例では、list_entry_lX[i]シンタックス要素の長さはCeil(Log2(NumPocTotalCurr))ビットである。更に、この例では、list_entry_lX[i]の値は、両端を含めて0〜NumPocTotalCurr−1の範囲内にある。list_entry_lX[i]シンタックス要素が存在しないとき、list_entry_lX[i]シンタックス要素は、0に等しいと推測され得る。
[0147]上で示されたように、ビデオコーダは、ビデオコーダがPスライス又はBスライスをコード化するのを開始するとき、RefPicList0の初期バージョンを生成することができる。RefPicList0の初期バージョンは、RefPicListTemp0と示され得る。HEVC Working Draft 8では、ビデオコーダは、以下の擬似コードによって記述された動作を使用して、RefPicList0の初期バージョンを生成することができる。
rIdx = 0
while( rIdx < NumRpsCurrTempList0 ) {
for( i = 0; i < NumPocStCurrBefore && rIdx < NumRpsCurrTempList0;
rIdx++, i++ )
RefPicListTemp0[ rIdx ] = RefPicSetStCurrBefore[ i ]
for( i = 0; i < NumPocStCurrAfter && rIdx < NumRpsCurrTempList0;
rIdx++, i++ )
RefPicListTemp0[ rIdx ] = RefPicSetStCurrAfter[ i ]
for( i = 0; i < NumPocLtCurr && rIdx < NumRpsCurrTempList0; rIdx++,
i++ )
RefPicListTemp0[ rIdx ] = RefPicSetLtCurr[ i ]
}
上の擬似コードにおいて、変数NumRpsCurrTempList0はMax(num_ref_idx_l0_active_minus1+1,NumPocTotalCurr)に等しく設定される。変数num_ref_idx_l0_active_minus1は、RefPicList0中のアクティブ参照ピクチャの数から1を引いた数を示す。
[0148]更に、HEVC Working Draft 8では、RefPicList0は次のように構築される。
for( rIdx = 0; rIdx ≦ num_ref_idx_l0_active_minus1; rIdx++)
RefPicList0[ rIdx ] = ref_pic_list_modification_flag_l0 ?
RefPicListTemp0[ list_entry_l0[ rIdx ] ] : RefPicListTemp0[ rIdx ]
上の擬似コードにおいて、参照ピクチャリストの修正がRefPicList0に対して可能にされる場合、ビデオコーダは、RefPicList0中の各々のそれぞれの位置に対して、RefPicList0中のそれぞれの位置に対応するlist_entry_l0シンタックス要素を決定することができる。ビデオコーダは、RefPicList0中のそれぞれの位置において、決定されたlist_entry_l0シンタックス要素によって示されるRefPicListTemp0中の位置にある参照ピクチャを挿入することができる。
[0149]更に、ビデオコーダは、ビデオコーダがBスライスをコード化するのを開始するとき、RefPicList1の初期バージョンを生成することができる。RefPicList1の初期バージョンは、RefPicListTemp1と示され得る。HEVC Working Draft 8では、ビデオコーダは、以下の擬似コードによって記述された動作を使用して、RefPicList1の初期バージョンを生成することができる。
rIdx = 0
while( rIdx < NumRpsCurrTempList1 ) {
for( i = 0; i < NumPocStCurrAfter && rIdx < NumRpsCurrTempList1;
rIdx++, i++ )
RefPicListTemp1[ rIdx ] = RefPicSetStCurrAfter[ i ]
for( i = 0; i < NumPocStCurrBefore && rIdx < NumRpsCurrTempList1;
rIdx++, i++ )
RefPicListTemp1[ rIdx ] = RefPicSetStCurrBefore[ i ]
for( i = 0; i < NumPocLtCurr && rIdx < NumRpsCurrTempList1; rIdx++,
i++ )
RefPicListTemp1[ rIdx ] = RefPicSetLtCurr[ i ]
}
上の擬似コードにおいて、変数NumRpsCurrTempList1はMax(num_ref_idx_l1_active_minus1+1,NumPocTotalCurr)に等しく設定される。変数num_ref_idx_l1_active_minus1は、RefPicList1中のアクティブ参照ピクチャの数から1を引いた数を示す。
[0150]更に、HEVC Working Draft 8では、RefPicList1は次のように構築される。
for( rIdx = 0; rIdx ≦ num_ref_idx_l1_active_minus1; rIdx++)
RefPicList1[ rIdx ] = ref_pic_list_modification_flag_l1 ?
RefPicListTemp1[ list_entry_l1[ rIdx ] ] : RefPicListTemp1[ rIdx ]
[0151]上の擬似コードにおいて、参照ピクチャリストの修正がRefPicList1に対して可能にされる場合、ビデオコーダは、RefPicList1中の各々のそれぞれの位置に対して、RefPicList1中のそれぞれの位置に対応するlist_entry_l1シンタックス要素を決定することができる。ビデオコーダは、RefPicList1中のそれぞれの位置において、決定されたlist_entry_l1シンタックス要素によって示されるRefPicListTemp1中の位置にある参照ピクチャを挿入することができる。
[0152]特定のビデオコード化規格(例えば、HEVC)の幾つかのコーデック拡張では、参照ピクチャリストは、通常の時間的参照ピクチャ、更には、現在のビュー/レイヤ以外のビュー/レイヤからの参照ピクチャ、又は現在のビュー/レイヤ以外のビュー/レイヤからのピクチャから生成された参照ピクチャを含み得る。他のビュー/レイヤからの参照ピクチャ、又は他のビュー/レイヤからのピクチャから生成された参照ピクチャは、「ビュー/レイヤ間参照ピクチャ」と名付けられる。他のビュー/レイヤからのピクチャから参照ピクチャを生成する処理は、ビュー合成予測と呼ばれることがあり、この方法で生成されるピクチャは、ビュー合成ピクチャと呼ばれることがある。
[0153]HEVCでは、両方の参照ピクチャリスト(即ち、refPicList0及びrefPicList1)は通常、時間的参照ピクチャを含む。しかしながら、HEVCの幾つかの拡張(例えば、3D−HEVC)では、ビュー/レイヤ間参照ピクチャは通常、RefPicList0の中にのみ存在し、通常は決してRefPicList1の中にはない。更に、3D−HEVCでは、参照ピクチャリストは、ビュー/レイヤ間参照ピクチャを含んでよく、VPS拡張におけるref_layer_id[i][j]シンタックス要素は、以下の表2に示されるように、ビデオコーダが特定のビュー/レイヤを予測するために使用できるビュー/レイヤを信号伝達することができる。
[0154]表2の例では、ビデオコーダは、同じアクセス単位中のref_layer_id[i][j]によって特定される各ビュー/レイヤ間参照ピクチャを、所謂ビュー/レイヤ間RPSに挿入する。ビデオコーダは、ビュー/レイヤ間RPS中の参照ピクチャを使用して、RefPicList0及び/又はRefPicList1を初期化することができる。RefPicList0及び/又はRefPicList1を初期化した後で、ビデオコーダは、RefPicList0及び/又はRefPicList1中の参照ピクチャの順序を修正することができる。言い換えると、ビュー/レイヤ間RPSは更に、RefPicList0とRefPicList1の両方に対する参照ピクチャリストの初期化及び修正のために考慮され得る。
[0155]Ramasubramonian他、「AHG7: Reference picture list initialization for MV−HEVC」、ITU−T SG 16 WP 3とISO/IEC JTC 1/SC 29/WG 11のJoint Collaborative Team on 3D Video Coding Extension Development、第3回会合、ジュネーブ、スイス、2013年1月17〜23日、文書JCT3V−C0060(以後JCT3V−C0060)は、ビュー間参照ピクチャを連続的に参照ピクチャリストの所与の場所へ置くための、参照ピクチャリスト初期化方法を提案する。具体的には、JCT3V−C0060は、ビュー間参照ピクチャの望まれる初期の位置がスライスヘッダ中で信号伝達される、MV−HEVCに対する参照ピクチャリストの初期化の方法を提案する。更に、JCT3V−C0060では、参照ピクチャリストの初期化処理は、ビュー間参照ピクチャが初期参照ピクチャリスト中の信号伝達された開始位置に存在するように、修正される。
[0156]以下の表3は、JCT3V−C0060で定義されるような、スライスヘッダに対するシンタックスの例示的な部分である。表3の下線付きのテキストは、テキストがMV−HEVC Working Draft 2で定義されるスライスヘッダシンタックスを追加したことを示す。
[0157]上の表3の例及び本開示の他のシンタックス表では、型記述子ue(v)を伴うシンタックス要素は、左ビットが先頭の0次指数ゴロム(Exp−Golomb)コード化を使用して符号化される可変長の符号なし整数であり得る。表3に示されるように、スライスのスライスヘッダは、スライスがIスライス(即ち、イントラコード化されるスライス)でなければ、inter_view_ref_start_position_plus1シンタックス要素を含み得る。
[0158]更に、JCT3V−C0060は、inter_view_ref_start_position_plus1シンタックス要素が、参照ピクチャリストの初期化の後の参照ピクチャリスト0中のビュー間参照ピクチャの開始位置を規定することを示す。inter_view_ref_start_position_plus1シンタックス要素は、両端を含めて0からmin(num_ref_idx_l0_active_minus1+1,NumPocStCurrBefore+NumPocStCurrAfter+NumPocLtCurr)の範囲にある。inter_view_ref_start_position_plus1シンタックス要素が0に等しいとき、ビュー間参照ピクチャは、参照ピクチャリスト中のデフォルトの位置に存在する。他の0ではない値に対して、inter_view_ref_start_position_plus1シンタックス要素−1は、初期参照ピクチャリスト中でのビュー間参照ピクチャの開始位置を示す。存在しないとき、inter_view_ref_start_position_plus1シンタックス要素はデフォルトの値であると推測されてよく、このデフォルトの値は、NumPocStCurrBefore+NumPocStCurrAfter+NumPocLtCurr+1に等しい。
[0159]JCT3V−C0060は、変数IvRefStartPosが次のように導出されることを示す。
if( !inter_view_ref_start_position_plus1 )
IvRefStartPos = NumPocStCurrBefore + NumPocStCurrAfter + NumPocLtCurr
else
IvRefStartPos = inter_view_ref_start_position_plus1 - 1
[0160]更に、JCT3V−C0060は、MV−HEVC Working Draft 2の復号処理に対する以下の変更を提案する。以下では、下線付きのテキストがMV−HEVC Working Draft 2に追加され、二重括弧の中の斜字のテキストがMV−HEVC Working Draft 2から除去される。
変数NumRpsCurrTempList0はMax(num_ref_idx_l0_active_minus1+1,NumPocTotalCurr)に等しく設定され、リストRefPicListTemp0は次のように構築される。
cIdx = 0
while( cIdx < NumRpsCurrTempList0 ) {
for( i = 0; i < NumPocStCurrBefore && cIdx < NumRpsCurrTempList0;
cIdx++, i++ )
RefPicListTemp0[ cIdx ] = RefPicSetStCurrBefore[ i ]
for( i = 0; i < NumPocStCurrAfter && cIdx < NumRpsCurrTempList0;
cIdx++, i++ ) (F-25)
RefPicListTemp0[ cIdx ] = RefPicSetStCurrAfter[ i ]
for( i = 0; i < NumPocLtCurr && cIdx < NumRpsCurrTempList0; cIdx++, i++ )
RefPicListTemp0[ cIdx ] = RefPicSetLtCurr[ i ]
[[ for( i = 0; i < NumIvCurr && rIdx < NumRpsCurrTempList0; rIdx++,
i++ )
RefPicListTemp0[ rIdx ] = RefPicSetIvCurr[ i ]]]
}
// Shift the pictures in the list to create space for inter-view reference pictures, if necessary
for( cIdx = NumRpsCurrTempList0 - 1; cIdx >= IvRefStartPos + NumPocIvCurr; cIdx -- )
RefPicListTemp0[ cIdx ] = RefPicListTemp0[ cIdx - NumPocIvCurr ]
// Include the inter-view reference pictures
for( i=0, cIdx = IvRefStartPos; i < NumPocIvCurr; cIdx++, i++ )
RefPicListTemp0[ cIdx ] = RefPicSetIvCurr[ i ]
リストRefPicList0は次のように構築される。
for( cIdx = 0; cIdX ≦ num_ref_idx_l0_active_minus1; cIdx++) (F-26)
RefPicList0[cIdx] = ref_pic_list_modification_flag_l0 ?
RefPicListTemp0[list_entry_l0[cIdx] ] : RefPicListTemp0[ cIdx ]
[0161]JCT3V−C0060は、RefPicList1の導出がMV−HEVC Working Draft 2で定義されるものと同じであることを示す。従って、JCT3V−C0060の方法は、RefPicList1の複雑さを下げるのを助けることはできず、RefPicList0の複雑さを下げるのを助けるだけであり得る。
[0162]MV−HEVC、3D−HEVC、及びSHVCのような幾つかのHEVC拡張における幾つかのツールは、ビュー/レイヤ間参照ピクチャがRefPicList0とRefPicList1の両方に存在することを仮定する。これは、幾つかの問題につながり得る。例えば、ビュー間予測がRefPicList1に存在し得るという仮定に関する情報にアクセスする必要がある全ての低レベルのコード化ツールは、冗長な確認を実行する必要があり、このことは、更なる動作につながることがあり、更なるデータがメモリに記憶されることを必要とすることもある。例えば、低レベルのコード化ツール(例えば、PUレベル又はCUレベルで適用されるコード化ツール)は、RefPicList1がビュー/レイヤ間参照ピクチャを含むかどうかにかかわらず、RefPicList1中の参照ピクチャがビュー/レイヤ間参照ピクチャであるかどうかを確認し続けることがある。
[0163]別の例では、参照ピクチャリスト構築処理は、参照ピクチャリスト構築(参照ピクチャリスト初期化及び参照ピクチャリスト修正を含む)に関する処理である。この例では、参照ピクチャリスト構築処理は、RefPicList1がビュー/レイヤ間参照ピクチャを含むことを仮定し得る。従って、この例では、参照ピクチャリスト構築処理は、更なる処理と、RefPicList0及びRefPicList1に存在する冗長なシンタックスとを必要とすることがあるが、そのような処理及びシンタックスはRefPicList1には不要であることがある。
[0164]ビュー/レイヤ間参照ピクチャがRefPicList0とRefPicList1の両方に存在すると幾つかのコード化ツールが仮定することが原因で発生し得る別の例示的な問題では、参照ピクチャリスト構築(例えば、list_entry_l0シンタックス要素及びlist_entry_l1シンタックス要素)に関するシンタックス表に存在するシンタックス要素は、u(v)コード化され得る。結果として、RefPicList1に対応するシンタックス要素は、不必要に長くなり得る。別の例では、RefPicList0とRefPicList1の両方に同じビュー/レイヤ間参照ピクチャを挿入することは、符号化利得を何らもたらさないことがある。
[0165]本開示の例は、高レベルシンタックス構造においてビュー/レイヤ間予測を無効にするように構成されるマルチビュー/3D又はスケーラブルコーデックを含む。高レベルシンタックス構造は、非VCL NAL単位中のシンタックス構造を含み得る。例えば、高レベルシンタックス構造は、SEIメッセージ、パラメータセット(例えば、VPS、SPS、PPSなど)などを含み得る。
[0166]本開示の一例では、ビデオエンコーダ20は、VPS拡張においてシンタックス要素(例えば、inter_view_l1_disable_flag)を信号伝達する。説明を簡単にするために、本開示は、このシンタックス要素が、適用可能なコーデックにおいて異なる名前を有し得るとしても、このシンタックス要素をinter_view_l1_disable_flagと呼び得る。inter_view_l1_disable_flagは、ビュー/レイヤ間参照ピクチャが、VPSを参照するCVSの任意のビュー成分/レイヤ表現のためのRefPicList1に含まれているかどうかを示す。
[0167]別の例では、ビデオエンコーダ20は、ビュー/レイヤ間参照ピクチャが、VPSを参照するCVSの特定のビュー/レイヤの任意のビュー成分/レイヤ表現のためのRefPicList1に含まれているかどうかを示すために、各レイヤのためのinter_view_l1_disable_flagを信号伝達することができる。この例では、複数のそのようなシンタックス要素(例えば、フラグ)がVPSにおいて信号伝達されてよく、各々が1つの固有のレイヤ/ビューに付加される。例えば、この例では、ビデオエンコーダ20は、異なるレイヤ中の異なるCVSに対して別のSPSを信号伝達することができる。各SPSは、SPSを参照するピクチャに対するRefPicList1がビュー間参照ピクチャ/レイヤ表現を含んでいるかどうかを示す、inter_view_l1_disable_flagを含み得る。従って、この例では、ビデオデコーダ30は、SPSから、複数のレイヤ中の各々のそれぞれのレイヤに対して、ビュー/レイヤ間参照ピクチャがそれぞれのレイヤ中のビュー成分/レイヤ表現のそれぞれの参照ピクチャリストに含まれているかどうかを示すそれぞれのレイヤに対するそれぞれのシンタックス要素を示す、シンタックス要素を取得することができる。
[0168]説明を簡単にするために、本開示は、1という値を有するinter_view_l1_disable_flagは、inter_view_l1_disable_flagが適用可能であるRefPicList1が決してビュー/レイヤ間参照ピクチャを含んでいないことを示すと、仮定する。更に、説明を簡単にするために、本開示は、0という値を有するinter_view_l1_disable_flagは、inter_view_l1_disable_Flagが適用可能であるRefPicList1がビュー/レイヤ間参照ピクチャを含み得ることを示すと、仮定する。しかしながら、他の例では、0という値を有するinter_view_l1_disable_flagは、inter_view_l1_disable_flagが適用可能であるRefPicList1が決してビュー/レイヤ間参照ピクチャを含んでいないことを示し、1という値を有するinter_view_l1_disable_flagは、inter_view_l1_disable_flagが適用可能であるRefPicList1がビュー/レイヤ間参照ピクチャを含み得ることを示す。
[0169]inter_view_l1_disable_flagが1であるとき、ビデオデコーダ30によって実行されるビデオ復号処理は様々な方法で簡略化され得る。そのような簡略化は、部分的には、復号処理で実行される動作の数を減らすこと及び/又は復号処理の間に実行されるメモリアクセスの数を減らすことによって、復号処理を加速することができる。
[0170]inter_view_l1_disable_flagが1であるときに復号処理がどのように簡略化され得るかの一例では、ビデオデコーダ30が、NBDV導出処理を実行して現在のブロックに対する視差ベクトルを決定し、inter_view_l1_disable_flagが1であるとき、ビデオデコーダ30は隣接ブロックのRefPicList1動き情報を確認しない。言い換えると、3D−HEVC(NBDV)の視差ベクトル導出において、RefPicList1に対応する動き情報(例えば、RefPicList1動きベクトル、RefPicList1参照インデックスなど)は決して確認されないので、この構成では複雑さが2倍小さくされ得る。更に、この例又は他の例では、ビデオデコーダ30がNBDV導出処理を実行し、inter_view_l1_disable_flagが1であるとき、ビデオデコーダ30は、隣接ブロックがRefPicList0視差動きベクトル又はRefPicList0 IDVを有しないとき、隣接ブロックに対するIDVを記憶しない。従って、ビデオデコーダ30は、各隣接ブロックに対して最大で1つの視差動きベクトルを記憶し得る。言い換えると、NBDVでは、IDV候補は、各ブロックに対して1つの視差動きベクトルしか記憶しない。このようにして、ビデオデコーダ30は、現在のブロックに対する視差ベクトルを決定するために、現在のビュー成分/レイヤ表現の現在のブロックに隣接する1つ又は複数のブロックを確認する、視差ベクトル導出処理を実行することができる。視差ベクトル導出処理を実行することの一部として、ビデオデコーダ30は、シンタックス要素(例えば、inter_view_l1_disable_flag)が、ビュー/レイヤ間参照ピクチャが現在のビュー成分/レイヤ表現に対する参照ピクチャリスト(例えば、RefPicList1)に決して含まれていないことを示すとき、現在のビュー成分/レイヤ表現に対する参照ピクチャリストに対応する動き情報を確認しなくてよい。その上、幾つかの例では、シンタックス要素(例えば、inter_view_l1_disable_flag)が、ビュー/レイヤ間参照ピクチャが現在のビュー成分/レイヤ表現に対する参照ピクチャリスト(例えば、RefPicList1)に決して含まれていないことを示すとき、現在のブロックに隣接する1つ又は複数のブロックの各々に対するせいぜい1つの暗黙的な視差ベクトルを記憶すること。
[0171]inter_view_l1_disable_flagが1であるときにビデオデコーダ30によって実行されるビデオ復号処理がどのように簡略化され得るかの別の例では、ビデオデコーダ30は、統合候補リスト又はAMVP候補リストに、ビュー/レイヤ間参照ピクチャに対応する動き候補を含めない。例えば、3D−HEVCでは、統合リスト又はAMVPリストは、潜在的な簡略化が可能であるように、ビュー/レイヤ間参照ピクチャに対応する動き候補を追加することを決して必要としない。ビュー/レイヤ間参照ピクチャに対応する動き候補は、ビュー/レイヤ間参照ピクチャ中の参照位置を規定し得る。
[0172]この例では、シンタックス要素(例えば、inter_view_l1_disable_flag)が、ビュー/レイヤ間参照ピクチャが現在のビュー成分/レイヤ表現に対する参照ピクチャリスト(例えば、RefPicList1)に決して含まれていないことを示すとき、ビデオデコーダ30は、ビュー/レイヤ間参照ピクチャに対応する候補を候補リストに決して含めなくてもよい。更に、シンタックス要素が、ビュー/レイヤ間参照ピクチャが現在のビュー成分/レイヤ表現に対する参照ピクチャリストに決して含まれていないことを示すとき、ビデオデコーダ30は、候補リスト中の特定の候補に基づいて、現在のビュー成分/レイヤ表現の現在のブロックに対する動きベクトルを決定することができる。
[0173]inter_view_l1_disable_flagが1であるときにビデオデコーダ30によって実行されるビデオ復号処理がどのように簡略化され得るかの別の例では、ビデオデコーダ30は、RefPicList1中の参照ピクチャがビュー/レイヤ間参照ピクチャであるかどうかを確認するのを避けることができる。3D−HEVCでは現在、動き予測又は視差ベクトル導出の間に、ビデオコーダは、RefPicList0中の参照ピクチャがビュー/レイヤ間参照ピクチャかどうかを確認することができ、RefPicList1中の参照ピクチャがビュー/レイヤ間参照ピクチャであるかどうかを確認することができる。言い換えると、参照ピクチャリストからの参照ピクチャがビュー/レイヤ間参照ピクチャであるかどうかを確認することは、そのリストがRefPicList1であることを知っているときには避けられ得る。従って、この例では、シンタックス要素(例えば、inter_view_l1_disable_flag)が、ビュー/レイヤ間参照ピクチャが現在のビュー成分/レイヤ表現に対する参照ピクチャリスト(RefPicList1)に決して含まれていないことを示すとき、ビデオデコーダ30は、参照ピクチャリストからの参照ピクチャがビュー/レイヤ間参照ピクチャであるかどうかの確認を避けることができる。
[0174]inter_view_l1_disable_flagが1であるときにビデオデコーダ30によって実行されるビデオコード化処理がどのように簡略化され得るかの別の例では、CUのためのビュー間残差予測フラグ(例えば、res_pred_flag)を取得するかどうかを決定する処理は、簡略化され得る。例えば、3D−HEVC Working Draft 2では、ビデオデコーダ30は、resPredEnableFlag変数が1に等しいとき、現在のCUに対するビュー間残差予測フラグ(例えば、res_pred_flag)をビットストリームから取得することができる。ビュー間残差予測が可能にされることをVPS中のシンタックス要素が示し、現在のCUに対する残差が0ではないことをコード化されたブロックフラグが示し、anyTempRefPicFlag変数が1に等しいとき、resPredEnableFlagは1に等しい。現在のCUの1つ又は複数のPUが時間的参照ピクチャを利用するとき、anyTempRefPicFlagは1に等しい。3D−HEVC Test Model Description Draft 2では、ビデオデコーダ30は最初に、anyTempRefPicFlagを0に設定することができる。現在のCUの予測モードがイントラ予測ではないとき、0及び1により置き換えられるXと1−Xに等しいYについて、次のことが当てはまる。
anyTempRefPicFlag = anyTempRefPicFlag | |
(inter_pred_idc[x0][y0] ! = Pred_LY && refViewIdxLX[x0][y0] = = ViewIdx)| |
(inter_pred_idc[x0][y1] ! = Pred_LY && refViewIdxLX[x0][y1] = = ViewIdx)| |
(inter_pred_idc[x1][y0] ! = Pred_LY && refViewIdxLX[x1][y0] = = ViewIdx)| |
(inter_pred_idc[ x1 ][ y1 ] ! = Pred_LY && refViewIdxLX[ x1 ][ y1 ] = = ViewIdx)
上の式において、Pred_LYは、現在のCUのPUがRefPicListYからの予測であることが有効にされることを示し、refViewIdxLXは、現在のCUのPUのRefPicListX参照ピクチャのビューインデックスを示し、ViewIdxは、現在のピクチャのビューインデックスを示す。
[0175]inter_view_l1_disable_flagが1に等しく、現在のCUの少なくとも1つのPUがRefPicList1動きベクトルを有するとき、RefPicList1動きベクトルは時間的動きベクトルである。従って、inter_view_l1_disable_flagが1に等しく、現在のCUの少なくとも1つのPUがRefPicList1動きベクトルを有する場合、現在のCUのPUの少なくとも1つが、現在のCUがイントラモードでコード化されない場合に時間的参照ピクチャを使用してコード化されるので、anyTempRefPicFlagの値を決定することは不要であり得る。従って、inter_view_l1_disable_flagが1に等しく、現在のCUの少なくとも1つのPUがRefPicList1動き情報を使用してコード化される(即ち、Pred_L1又はBi_Predモードでコード化される)とき、ビデオデコーダ30は、anyTempRefPicListの値を決定することなく、resPredEnableFlagの値を決定することが可能であり得る。従って、3D−HEVCでは、ビュー間残差予測フラグは、現在のCU内の任意のPUが参照ピクチャタイプを確認することなくPred_L1モード又はBi_Predを使用する場合にのみ、信号伝達され得る。ARPでは、PUがPred_L1又はBi_Predモードでコード化される場合、RefPicList1の残差予測子生成処理は、参照ピクチャタイプがビュー/レイヤ間参照であるかどうかを決定するために、参照ピクチャタイプを確認することなく常に有効にされる。従って、この例では、シンタックス要素(例えば、inter_view_l1_disable_flag)が、ビュー/レイヤ間参照ピクチャが現在のビュー成分/レイヤ表現に対する参照ピクチャリスト(例えば、RefPicList1)に決して含まれていないことを示すとき、ビデオデコーダ30は、参照ピクチャリスト中の特定の参照ピクチャのタイプを確認することなく、現在のビュー成分/レイヤ表現の現在のCUのPUが特定の参照ピクチャ中の位置を示す動きベクトルを有する場合、参照ピクチャリストに対して残差予測子生成処理を有効にすることができる。
[0176]inter_view_l1_disable_flagが1であるときにビデオデコーダ30によって実行されるビデオコード化処理がどのように簡略化され得るかの別の例では、ビデオデコーダ30は、ビュー合成ピクチャを生成するために、RefPicList0中のビュー/レイヤ間参照ピクチャを使用することだけができる。更に、inter_view_l1_disable_flagが1であるとき、ビデオデコーダ30はRefPicList1中のビュー合成ピクチャを含まない。即ち、将来の3D−HEVCに拡張され得るビュー合成予測は、ビュー合成のためにRefPicList0に挿入されるビュー間参照ピクチャを使用するだけであり、又は、RefPicList1に追加されるべきビュー合成ピクチャを決して考慮しない。従って、この例では、シンタックス要素(例えば、inter_view_l1_disable_flag)が、ビュー/レイヤ間参照ピクチャが現在のビュー成分/レイヤ表現に対する参照ピクチャリスト(例えば、RefPicList1)に決して含まれていないことを示すとき、ビデオデコーダ30は、異なる参照ピクチャリスト(例えば、RefPicList0)へ挿入されるビュー/レイヤ間参照ピクチャのみを使用して、ビュー合成予測を実行することができる。
[0177]幾つかの例では、inter_view_l1_disable_flagが1であるとき、ビデオデコーダ30は、簡略化された、又はより効率的に設計された参照ピクチャリスト構築処理を実行することができる。例えば、inter_view_l1_disable_flagが1であるとき、ビデオデコーダ30は、RefPicList1に対する初期参照ピクチャリストを構築するとき、ビュー/レイヤ間RPS又はビュー/レイヤ間参照ピクチャを考慮しない。更に、本開示の他の箇所で説明されるように、inter_view_l1_disable_flagが1であるとき、RPLMシンタックス要素list_entry_l0[i]は、RPLMシンタックス要素list_entry_l1[i]とは異なる方式で信号伝達され得る。従って、この例では、シンタックス要素(例えば、inter_view_l1_disable_flag)が、ビュー/レイヤ間参照ピクチャが現在のビュー成分/レイヤ表現に対する参照ピクチャリストに決して含まれていないことを示すとき、ビデオデコーダ30は、参照ピクチャリストの初期バージョンを構築するとき、ビュー/レイヤ間参照ピクチャセット又はビュー/レイヤ間参照ピクチャを考慮しなくてよい。
[0178]更に、上で言及された本開示の例の少なくとも幾つかは、単一の制御フラグ(即ち、inter_view_l1_disable_flag)によって管理される。しかしながら、異なる場所又は状況におけるRefPicList1に関する簡略化を管理する目的で、1つ又は複数の別々の制御フラグが、1つ又は複数の異なる場所又は状況を制御するために使用され得る。本開示の他の例では、RefPicList1への言及は、幾つか又は全ての場合に、RefPicList0への言及により置き換えられ得る。
[0179]図6は、本開示の技術を実装するように構成される例示的なビデオエンコーダ20を示すブロック図である。図6は説明のために用意され、本開示において広範に例示され、説明されているような技術に対する制限とみなされるべきでない。説明のために、本開示では、HEVCコード化を背景としてビデオエンコーダ20について説明する。しかしながら、本開示の技術は、他のコード化規格又は方法に適用可能であるものとしてよい。
[0180]図6の例において、ビデオエンコーダ20は、予測処理ユニット100と、残差生成ユニット102と、変換処理ユニット104と、量子化ユニット106と、逆量子化ユニット108と、逆変換処理ユニット110と、再構成ユニット112と、フィルタユニット114と、復号ピクチャバッファ116と、エントロピー符号化ユニット118とを含む。予測処理ユニット100は、インター予測処理ユニット120とイントラ予測処理ユニット126とを含む。インター予測処理ユニット120は、動き推定ユニット122と動き補償ユニット124とを含む。他の例では、ビデオエンコーダ20は、より多い、より少ない、又は異なる機能コンポーネントを含んでもよい。
[0181]ビデオエンコーダ20は、ビデオデータを受信することができる。ビデオエンコーダ20は、ビデオデータのピクチャのスライス内の各CTUを符号化することができる。CTUの各々は、ピクチャのサイズが等しいルーマコード化ツリーブロック(CTB)と、対応するCTBとに関連付けられ得る。CTUを符号化する一環として、予測処理ユニット100は、四分木分割法を実行して、CTUのCTBをだんだん小さくなる幾つかのブロックに分割することができる。より小さいブロックは、CUのコード化ブロックであってよい。例えば、予測処理ユニット100は、CTUに関連付けられているCTBをサイズが等しい4つのサブブロックに分割し、それらのサブブロックのうちの1つ又は複数をサイズが等しい4つのサブサブブロックに分割し、というように続けることができる。
[0182]ビデオエンコーダ20は、CTUのCUを符号化して、CUの符号化された表現(即ち、コード化されたCU)を生成することができる。CUを符号化する一環として、予測処理ユニット100は、CUに関連付けられているコード化ブロックをCUの1つ又は複数のPUの間で分割することができる。従って、各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サイズに対する非対称的分割もサポートし得る。
[0183]インター予測処理ユニット120は、CUの各PUにインター予測を実行することによってPUに対する予測データを生成することができる。PUに対する予測データは、PUの予測ブロックとPUに対する動き情報とを含み得る。インター予測処理ユニット120は、PUがIスライスにあるか、Pスライスにあるか、又はBスライスにあるかに応じてCUのPUに対して異なるオペレーションを実行し得る。Iスライスでは、イントラ予測が有効にされ得るが、インター予測は有効にされない。従って、PUがIスライス内にある場合、インター予測処理ユニット120は、PUにインター予測を実行しない。
[0184]PUがPスライス内にある場合、動き推定ユニット122は、PUに対する基準領域に対する基準ピクチャのリスト(例えば、「RefPicList0」)内の基準ピクチャを探索することができる。PUに対する基準領域は、PUの予測ブロックに最も正確に対応するサンプルを含む、基準ピクチャ内の、一領域であるものとしてよい。動き推定ユニット122は、PUに対する基準領域を含む基準ピクチャのRefPicList0内の位置を示す基準インデックスを生成することができる。それに加えて、動き推定ユニット122は、PUの予測ブロックと基準領域に関連付けられている基準配置との間の空間的変位を示す動きベクトルを生成することができる。例えば、動きベクトルは、現在のピクチャ内の座標から基準ピクチャ内の座標へのオフセットを与える2次元ベクトルであるものとしてよい。動き推定ユニット122は、基準インデックスと動きベクトルとをPUの動き情報として出力することができる。動き補償ユニット124は、PUの動きベクトルによって示される基準配置における実際の、又は補間されたサンプルに基づいてPUの予測ブロックを生成することができる。
[0185]PUがBスライス内にある場合、動き推定ユニット122は、PUに対する片方向予測又は双予測を実行することができる。PUに対する単予測を実行するために、動き推定ユニット122は、PUに対する単一の動きベクトルと単一の参照インデックスとを決定することができる。幾つかの例では、動き推定ユニット122は、統合モード又はAMVPモードを使用して、動きベクトルと参照インデックスとを決定することができる。幾つかの例では、PUの参照領域に対する、RefPicList0又は第2の参照ピクチャリスト(「RefPicList1」)の参照ピクチャを探索し得る。動き推定ユニット122は、PUの動き情報として、基準領域を含む基準ピクチャのRefPicList0又はRefPicList1内の位置を示す基準インデックスと、PUの予測ブロックと基準領域に関連付けられている基準配置との間の空間的変位を示す動きベクトルと、基準ピクチャがRefPicList0内にあるか又はRefPicList1内にあるかを示す1つ又は複数の予測方向指標とを出力することができる。動き補償ユニット124は、PUの動きベクトルによって示される基準配置における実際の、又は補間されたサンプルに少なくとも部分的に基づいてPUの予測ブロックを生成することができる。
[0186]PUに対する双予測インター予測を実行するために、動き推定ユニット122は、PUに対する2つの動きベクトルと2つの参照インデックスとを決定することができる。幾つかの例では、動き推定ユニット122は、統合モード又はAMVPモードを実行して、動きベクトルと参照インデックスとを決定することができる。幾つかの例では、動き推定ユニット122は、PUに対する基準領域に対するRefPicList0内の準備ピクチャを探索し、PUに対する別の基準領域に対するRefPicList1内の基準ピクチャも探索することができる。動き推定ユニット122は、基準領域を含む基準ピクチャのRefPicList0とRefPicList1とにおける位置を示す基準インデックスを生成することができる。それに加えて、動き推定ユニット122は、基準領域に関連付けられている基準配置とPUの予測ブロックとの間の空間的変位を示す動きベクトルを生成することができる。PUの動き情報は、基準インデックスとPUの動きベクトルとを含み得る。動き補償ユニット124は、PUの動きベクトルによって示される基準配置における実際の、又は補間されたサンプルに少なくとも部分的に基づいてPUの予測ブロックを生成することができる。
[0187]イントラ予測処理ユニット126は、PUにイントラ予測を実行することによってPUに対する予測データを生成することができる。PUに対する予測データは、PUに対する予測ブロックと様々なシンタックス要素とを含み得る。イントラ予測処理ユニット126は、Iスライスと、Pスライスと、BスライスとにおいてPUにイントラ予測を実行することができる。
[0188]PUにイントラ予測を実行するために、イントラ予測処理ユニット126は、複数のイントラ予測モードを使用して、PUに対する予測ブロックの複数のセットを生成することができる。特定のイントラ予測モードを使用してイントラ予測を実行する場合、イントラ予測処理ユニット126は、隣接ブロックからのサンプルの特定のセットを使用してPUに対する予測ブロックを生成することができる。隣接ブロックは、PUと、CUと、CTUとについて左から右、上から下の符号化順序を仮定して、PUの予測ブロックの上、右上、左上、又は左であるものとしてよい。イントラ予測処理ユニット126は、様々な数のイントラ予測モード、例えば、33個の方向性イントラ予測モードを使用することができる。幾つかの例では、イントラ予測モードの数は、PUの予測ブロックのサイズに依存し得る。
[0189]予測処理ユニット100は、PUに対するインター予測処理ユニット120によって生成される予測データ又はPUに対するイントラ予測処理ユニット126によって生成される予測データのうちからCUのPUに対する予測データを選択することができる。幾つかの例では、予測処理ユニット100は、予測データのセットのレート/歪み尺度に基づいてCUのPUに対する予測データを選択する。選択された予測データの予測ブロックは、本明細書では、選択予測ブロックと称され得る。
[0190]残差生成ユニット102は、CUのコード化ブロック(例えば、CUのルーマコード化ブロック、Cbコード化ブロック、及びCrコード化ブロック)と、CUのPUの選択された予測ブロック(例えば、CUのルーマブロック、Cbブロック、及びCrブロック)とに基づいて、CUの1つ又は複数の残差ブロック(例えば、CUのルーマブロック、Cbブロック、及びCrブロック)を生成することができる。例えば、残差生成ユニット102は、残差ブロック内の各サンプルがCUのコード化ブロック内のサンプルとCUのPUの対応する選択予測ブロック内の対応するサンプルとの間の差に等しい値を有するようにCUの残差ブロックを生成することができる。幾つかの例では、残差生成ユニット102は加算器を備え得る。
[0191]変換処理ユニット104は、四分木分割法を実行して、CUの残差ブロックをCUのTUに関連付けられている変換ブロックに分割することができる。従って、TUは、ルーマ変換ブロックと2つの対応するクロマ変換ブロックとに関連付けられ得る。CUのTUのルーマとクロマとの変換ブロックのサイズと位置とは、CUのPUの予測ブロックのサイズと位置とに基づくか、又は基づかないものとしてもよい。
[0192]変換処理ユニット104は、1つ又は複数の変換をTUの変換ブロックに適用することによってCUの各TUに対する変換係数ブロックを生成することができる。変換処理ユニット104は、様々な変換をTUに関連付けられている変換ブロックに適用することができる。例えば、変換処理ユニット104は、離散コサイン変換(DCT)、方向性変換、又は概念上類似している変換を変換ブロックに適用することができる。幾つかの例では、変換処理ユニット104は、変換を変換ブロックに適用しない。そのような例では、変換ブロックは、変換係数ブロックとして取り扱われ得る。
[0193]量子化ユニット106は、係数ブロック内の変換係数を量子化することができる。量子化プロセスは、変換係数のうちの一部又は全部に関連付けられているビット深度を低減することができる。例えば、nビット変換係数は、切り捨てで量子化時にmビット変換係数に下げられ、ここで、nはmより大きい。量子化は、情報の損失を持ち込み得るため、量子化された変換係数は、元の変換係数よりも低い精度を有し得る。
[0194]逆量子化ユニット108と逆変換処理ユニット110とは、逆量子化と逆変換とをそれぞれ係数ブロックに適用して、係数ブロックから残差ブロックを再構成することができる。再構成ユニット112は、再構成された残差ブロックを予測処理ユニット100によって生成された1つ又は複数の予測ブロックからの対応するサンプルに加えて、TUに関連付けられている再構成された変換ブロックを生成することができる。この方法でCUの各TUに対して変換ブロックを再構成することによって、ビデオエンコーダ20は、CUのコード化ブロックを再構成することができる。幾つかの例では、再構成ユニット112は加算器を備え得る。
[0195]フィルタユニット114は、1つ又は複数のデブロッキングオペレーションを実行して、CUに関連付けられているコード化ブロック内のブロック歪み(blocking artifacts)を低減することができる。復号ピクチャバッファ116は、フィルタユニット114が再構成されたコード化ブロックに1つ又は複数のデブロッキングオペレーションを実行した後に、再構成されたコード化ブロックを格納することができる。インター予測処理ユニット120は、再構成されたコード化ブロックを含む基準ピクチャを使用して、他のピクチャのPUにインター予測を実行することができる。それに加えて、イントラ予測処理ユニット126は、復号ピクチャバッファ116内の再構成されたコード化ブロックを使用して、CUと同じピクチャ内の他のPUにイントラ予測を実行することができる。復号ピクチャバッファ116は、メモリ又は他のタイプのコンピュータ可読データ記憶媒体を備え得る。
[0196]エントロピー符号化ユニット118は、ビデオエンコーダ20の他の機能コンポーネントからデータを受信することができる。例えば、エントロピー符号化ユニット118は、量子化ユニット106から係数ブロックを受信することができ、予測処理ユニット100からシンタックス要素を受信することができる。エントロピー符号化ユニット118は、データに1つ又は複数のエントロピー符号化オペレーションを実行して、エントロピー符号化されたデータを生成することができる。例えば、エントロピー符号化ユニット118は、データに、コンテキスト適応型可変長コード化(CAVLC)オペレーション、CABACオペレーション、変数−変数(V2V)レングスコード化オペレーション、シンタックスベースコンテキスト適応型バイナリ算術コード化(SBAC)オペレーション、確率間隔区分エントロピー(PIPE)コード化オペレーション、指数ゴロム符号化オペレーション、又は別の種類のエントロピー符号化オペレーションを実行することができる。ビデオエンコーダ20は、エントロピー符号化ユニット118によって生成されたエントロピー符号化データを含むビットストリームを出力することができる。更に、本開示の例によれば、図6のビデオエンコーダ20は、ビットストリームにおいて、ビュー/レイヤ間参照ピクチャが現在のビュー成分/レイヤ表現に対する参照ピクチャリストに含まれているかどうかを示すシンタックス要素を信号伝達することができる。
[0197]図7は、本開示の技術を実装するように構成されている例示的なビデオデコーダ30を示すブロック図である。図7は説明のために用意され、本開示において広範に例示され、説明されているような技術に対する制限ではない。説明のために、本開示では、HEVCコード化を背景としてビデオデコーダ30について説明する。しかしながら、本開示の技術は、他のコード化規格又は方法に適用可能であるものとしてよい。
[0198]図7の例において、ビデオデコーダ30は、エントロピー復号ユニット150と、予測処理ユニット152と、逆量子化ユニット154と、逆変換処理ユニット156と、再構成ユニット158と、フィルタユニット160と、復号ピクチャバッファ162とを含む。予測処理ユニット152は、動き補償ユニット164とイントラ予測処理ユニット166とを含む。他の例では、ビデオデコーダ30は、より多い、より少ない、又は異なる機能コンポーネントを含んでもよい。
[0199]コード化ピクチャバッファ(CPB)151は、ビットストリームの符号化されたビデオデータ(例えば、NAL単位)を受信し、格納することができる。CPB151は、メモリ又は他のタイプのコンピュータ可読データ記憶媒体を備え得る。エントロピー復号ユニット150は、CPB151からNAL単位を受信し、NAL単位を解析して、ビットストリームからシンタックス要素を取得することができる。エントロピー復号ユニット150は、NAL単位内のエントロピー符号化されたシンタックス要素をエントロピー復号することができる。予測処理ユニット152と、逆量子化ユニット154と、逆変換処理ユニット156と、再構成ユニット158と、フィルタユニット160とは、ビットストリームから取得されたシンタックス要素に基づいて復号されたビデオデータを生成することができる。
[0200]ビットストリームのNAL単位は、コード化されたスライスNAL単位を含み得る。ビットストリームを復号する一環として、エントロピー復号ユニット150は、コード化されたスライスNAL単位からシンタックス要素を取得して、エントロピー復号することができる。コード化されたスライスの各々は、スライスヘッダとスライスデータとを含み得る。スライスヘッダは、スライスに関係するシンタックス要素を含むものとしてよい。更に、本開示の1つ又は複数の例によれば、エントロピー復号ユニット150は、ビットストリームから、ビュー/レイヤ間参照ピクチャが現在のビュー成分/レイヤ表現に対する参照ピクチャリストに含まれているかどうかを示すシンタックス要素を取得することができる。
[0201]ビットストリームからシンタックス要素を取得することに加えて、ビデオデコーダ30は、CUに復号オペレーションを実行することができる。CUに復号オペレーションを実行することによって、ビデオデコーダ30は、CUのコード化ブロックを再構成することができる。
[0202]CUに復号オペレーションを実行する一環として、逆量子化ユニット154は、CUのTUに関連付けられている係数ブロックを逆に量子化する(inverse quantize)、即ち、逆量子化する(de-quantize)ことができる。量子化ユニット154は、TUのCUに関連付けられているQP値を使用して、量子化の程度と、同じように、逆量子化ユニット154が適用する逆量子化の程度とを決定することができる。即ち、圧縮比、即ち、元のシーケンスを表すために使用されるビットの数と圧縮されたシーケンスのビットの数との比は、変換係数を量子化するときに使用されるQPの値を調整することによって制御され得る。圧縮比は、採用されるエントロピーコード化の方法にも依存し得る。
[0203]逆量子化ユニット154が係数ブロックを逆量子化した後、逆変換処理ユニット156は、1つ又は複数の逆変換を係数ブロックに適用して、TUに関連付けられている残差ブロックを生成することができる。例えば、逆変換処理ユニット156は、逆DCT、逆整数変換、逆カルーネン・レーベ変換(KLT)、逆回転変換、逆方向性変換、又は別の逆変換を係数ブロックに適用することができる。
[0204]PUがイントラ予測を使用して符号化される場合、イントラ予測処理ユニット166は、イントラ予測を実行して、PUに対する予測ブロックを生成することができる。イントラ予測処理ユニット166は、イントラ予測モードを使用して、空間的隣接PUの予測ブロックに基づいてPUに対する予測ルーマブロックと、予測Cbブロックと、予測Crブロックとを生成することができる。イントラ予測処理ユニット166は、ビットストリームから復号された1つ又は複数のシンタックス要素に基づいてPUに対するイントラ予測モードを決定することができる。
[0205]予測処理ユニット152は、ビットストリームから抽出されたシンタックス要素に基づいて第1の基準ピクチャリスト(RefPicList0)と第2の基準ピクチャリスト(RefPicList1)とを構成することができる。更に、PUが、インター予測を使用して符号化される場合、エントロピー復号ユニット150は、PUに対する動き情報を取得することができる。動き補償ユニット164は、PUの動き情報に基づいて、PUに対する1つ又は複数の基準領域を決定することができる。動き補償ユニット164は、PUに対する1つ又は複数の基準ブロックのサンプルに基づいて、PUに対する予測ルーマブロックと、予測Cbブロックと、予測Crブロックとを生成することができる。
[0206]再構成ユニット158は、適用可能な場合に、CUのTUに関連付けられているルーマ変換ブロックと、Cb変換ブロックと、Cr変換ブロックと、CUのPUの予測ルーマブロックと、予測Cbブロックと、予測Crブロックとからの残差値、即ち、イントラ予測データ又はインター予測データのいずれかを使用して、CUのルーマコード化ブロックと、Cbコード化ブロックと、Crコード化ブロックとを再構成することができる。例えば、再構成ユニット158は、ルーマ変換ブロックと、Cb変換ブロックと、Cr変換ブロックとのサンプルを予測ルーマブロックと、予測Cbブロックと、予測Crブロックとの対応するサンプルに加えて、CUのルーマコード化ブロックと、Cbコード化ブロックと、Crコード化ブロックとを再構成することができる。幾つかの例では、再構成ユニット158は加算器を備え得る。
[0207]フィルタユニット160は、デブロッキングオペレーションを実行して、CUのコード化ブロック(例えば、CUのルーマコード化ブロック、Cbコード化ブロック、及びCrコード化ブロック)に関連付けられているブロック歪みを低減することができる。ビデオデコーダ30は、CUのコード化ブロック(例えば、ルーマコード化ブロック、Cbコード化ブロック、及びCrコード化ブロック)を復号ピクチャバッファ162に記憶し得る。復号ピクチャバッファ162は、メモリ又は他のタイプのコンピュータ可読データ記憶媒体を備え得る。復号ピクチャバッファ162は、その後の動き補償、イントラ予測、及び図1の表示装置32などの表示装置への表示のために基準ピクチャを提供することができる。例えば、ビデオデコーダ30は、復号ピクチャバッファ162内のブロック(例えば、ルーマブロック、Cbブロック、及びCrブロック)に基づいて、他のCUのPUにイントラ予測オペレーション又はインター予測オペレーションを実行するものとしてよい。この方法で、ビデオデコーダ30は、ビットストリームから、有意な係数ブロックの変換係数レベルを取得し、変換係数レベルを逆量子化し、1つ又は複数の変換を変換係数レベルに適用して変換ブロックを生成し、変換ブロックに少なくとも部分的に基づいて、コード化ブロックを生成し、表示用のコード化ブロックを出力することができる。
[0208]上で示されたように、本開示の幾つかの例は、RefPicList1へのビュー/レイヤ間参照ピクチャの包含を無効にする、1つ又は複数のシンタックス要素を提供し得る。例えば、VPSのような高レベルシンタックス構造は、inter_view_l1_disable_flagシンタックス要素を含み得る。inter_view_l1_disable_flagシンタックス要素は、適用可能なRefPicList1がビュー/レイヤ間参照ピクチャを含み得るかどうかを示し得る。この例では、適用可能なRefPicList1は、高レベルシンタックス構造を参照するコード化されたピクチャ/レイヤ表現のRefPicList1であり得る。更に、この例では、inter_view_l1_disable_flagシンタックス要素が、適用可能なRefPicList1がビュー/レイヤ間参照ピクチャを含み得ることを示すとき、スライスのスライスヘッダは、スライスに適用可能なRefPicList1中のビュー/レイヤ間参照ピクチャの開始位置を示すシンタックス要素(例えば、inter_view_ref_start_position_l1_plus)を含み得る。以下の表4は、この例に従った例示的なスライスヘッダシンタックスを示す。表4では、下線付きのテキストは、MV−HEVC Working Draft 2及び/又は3D−HEVC Test Model Description Draft 2に追加されるテキストを示す。
[0209]表4では、inter_view_ref_start_position_l0_plus1シンタックス要素は、上で説明されたように、JCT3V−C0060におけるinter_view_ref_start_position_plus1シンタックス要素のセマンティクスと同じセマンティクスを有する。更に、表4では、inter_view_ref_start_position_l1_plus1シンタックス要素は、JCT3V−C0060におけるinter_view_ref_start_position_plus1のセマンティクスと同様のセマンティクスを有するが、RefPicList1に適用可能である。従って、表4の例では、ビデオエンコーダ20は、RPLMシンタックス要素(例えば、list_entry_l1シンタックス要素)を必ずしも信号伝達することなく、ビュー/レイヤ間参照ピクチャがRefPicList1中の任意の位置に挿入されるべきであることを信号伝達し得る。従って、inter_view_ref_start_position_l1_plus1シンタックス要素の使用は、ビットストリームのサイズを減らし得る。更に、単一のinter_view_l1_disable_flagシンタックス要素は複数のピクチャに適用可能であってよく、ビデオエンコーダ20は、ピクチャに適用可能なinter_view_l1_disable_flagシンタックス要素が0であるとき、ピクチャのスライスに対してinter_view_ref_start_position_l1_plus1シンタックス要素のみを信号伝達する。従って、inter_view_l1_disable_flagシンタックス要素の使用は更に、信号伝達されるinter_view_ref_start_position_l1_plus1シンタックス要素の数を減らすことによって、ビットストリームのサイズを減らすことができる。
[0210]従って、表4の例では、inter_view_l1_disable_flagは第1のシンタックス要素であってよく、ビデオエンコーダ20はビットストリームにおいて第2のシンタックス要素(例えば、inter_view_ref_start_position_l0_plus1)を信号伝達することができる。第2のシンタックス要素は、現在のビュー成分/レイヤ表現に対するRefPicList0中のビュー/レイヤ間参照ピクチャの開始位置を示し得る。同様に、ビデオデコーダ30は、ビットストリームから第2のシンタックス要素(例えば、inter_view_ref_start_position_l0_plus1)を取得することができる。更に、表4の例では、inter_view_l1_disable_flagが、ビュー/レイヤ間参照ピクチャが現在のビュー成分/レイヤ表現に対する第1の参照ピクチャリスト(例えば、RefPicList1)に含まれることを示すとき、ビデオコーダは、ビットストリームから第3のシンタックス要素(例えば、inter_view_ref_start_position_l1_plus1)を取得することができる。第3のシンタックス要素は、現在のビュー成分/レイヤ表現に対する第1の参照ピクチャリスト(例えば、RefPicList1)中のビュー/レイヤ間参照ピクチャの開始位置を示し得る。
[0211]更に、本開示の技法は、MV−HEVC Working Draft 2及び/又は3D−HEVC Test Model Description Draft 2で定義される参照ピクチャリスト修正のセマンティクスを修正することができる。本開示の他の箇所で説明されるように、ビデオデコーダ30は、list_entry_l0シンタックス要素及びlist_entry_l1シンタックス要素に基づいて、RPLMを実行することができる。更に、本開示の他の箇所で説明されるように、ビデオデコーダ30は、NumPocTotalCurr変数に基づいて、各々のlist_entry_l0シンタックス要素及び各々のlist_entry_l1シンタックス要素の長さ(例えば、ビットの数)を決定することができる。HEVC Working Draft 8では、NumPocTotalCurrは、NumPocStCurrBefore+NumPocStCurrAfter+NumPocLtCurrに等しく設定される。NumPocStCurrBeforeは、RefPicSetStBefore中の要素の数を示す。NumPocStCurrAfterは、RefPicSetStAfter中の要素の数を示す。NumPocLtCurrは、RefPicSetLtCurr中の要素の数を示す。
[0212]しかしながら、MV−HEVC及び3D−HEVCでは、参照ピクチャリストはビュー/レイヤ間参照ピクチャを含み得る。従って、NumPocTotalCurrの定義は異なり得る。以下のテキストでは、下線付きのテキストが、MV−HEVC Working Draft 2及び/又は3D−HEVC Test Model Description Draft 2に追加される。以下のテキストで示されるように、変数NumPocTotalCurrは次のように導出され得る。
NumPocTotalCurr = 0;
for( i = 0; i < NumNegativePics[ StRpsIdx ]; i++)
if(UsedByCurrPicS0[ StRpsIdx ][ i ] = = 1)
NumPocTotalCurr++
for( i = 0; i < NumPositivePics[ StRpsIdx ]; i++) (7-56)
if(UsedByCurrPicS1[ StRpsIdx ][ i ] = = 1)
NumPocTotalCurr++
for( i = 0; i < num_long_term_sps + num_long_term_pics; i++ )
if( UsedByCurrPicLt[ i ] = = 1)
NumPocTotalCurr++
変数NumPocTotalCurrは、NumPocStCurrBefore+NumPocStCurrAfter+NumPocLtCurr+NumIvCurrに等しく設定され、NumIvCurrは、ビュー/レイヤ間RPS中のエントリの数である。
[0213]更に、この例では、list_entry_l0[i]及びlist_entry_l1[i]シンタックス要素は、次のセマンティクスを有し得る。
list_entry_l0[i]は、参照ピクチャリスト0の現在の位置に配置されるべき、RefPicListTemp0中の参照ピクチャのインデックスを規定する。list_entry_l0[i]シンタックス要素の長さはCeil(Log2(NumPocTotalCurr))ビットである。list_entry_l0[i]の値は、両端を含めて、0〜NumPocTotalCurr−1の範囲にあるべきである。シンタックス要素list_entry_l0[i]が存在しない場合、それは0に等しいと推測される。
list_entry_l1[i]は、参照ピクチャリスト1の現在の位置に配置されるべき、RefPicListTemp1中の参照ピクチャのインデックスを規定する。list_entry_l1[i]シンタックス要素の長さはCeil(Log2(NumPocTotalCurr))ビットである。list_entry_l1[i]の値は、両端を含めて、0〜NumPocTotalCurr−1の範囲にあるべきである。シンタックス要素list_entry_l1[i]が存在しない場合、それは0に等しいと推測される。
[0214]この例におけるlist_entry_l0[i]シンタックス要素及びlist_entry_l1[i]シンタックス要素のセマンティクスは、HEVC Working Draft 8においてlist_entry_l0[i]シンタックス要素及びlist_entry_l1[i]シンタックス要素に対して定義されるものと同様であり得る。しかしながら、この例はNumPocTotalCurrの異なる定義を与えるので、list_entry_l0[i]シンタックス要素及びlist_entry_l1[i]シンタックス要素の長さ及び範囲は、HEVC Working Draft 8とは異なり得る。
[0215]更に、本開示の幾つかの例は、MV−HEVC及び/又は3D−HEVCのRPLM処理を修正することができる。例えば、MV−HEVC Working Draft 2及び3D−HEVC Test Model Description Draft 2で定義されるような、MV−HEVC及び3D−HEVCのRPLM処理における変数NumPocTotalCurrの定義は、NumPocTotalCurrが変数NumIvCurrに依存するように修正され得る。上で示されたように、NumIvCurrは、ビュー/レイヤ間RPS中のエントリの数であり得る。具体的には、本開示の一例では、変数NumPocTotalCurrは、次のように、list_entry_l0シンタックス要素のセマンティクスに関して定義され得る。即ち、
変数NumPocTotalCurrは、NumPocStCurrBefore+NumPocStCurrAfter+NumPocLtCurr+NumIvCurrに等しく設定される。
[0216]更に、この例では、list_entry_l0[i]シンタックス要素は、次のセマンティクスを有し得る。
list_entry_l0[i]は、参照ピクチャリスト0の現在の位置に配置されるべき、RefPicListTemp0中の参照ピクチャのインデックスを規定する。list_entry_l0[i]シンタックス要素の長さはCeil(Log2(NumPocTotalCurr))ビットである。list_entry_l0[i]の値は、両端を含めて、0〜NumPocTotalCurr−1の範囲にあるべきである。シンタックス要素list_entry_l0[i]が存在しない場合、それは0に等しいと推測される。
[0217]この例によれば、inter_view_l1_disable_flagが1である場合、変数NumPocTotalCurrは更に、NumPocTotalCurrがNumPocStCurrBefore+NumPocStCurrAfter+NumPocLtCurrに等しくなるように、list_entry_l1[i]シンタックス要素のセマンティクスに関して修正される。この例では、list_entry_l1[i]は、次のセマンティクスを有し得る。
list_entry_l1[i]は、参照ピクチャリスト1の現在の位置に配置されるべき、RefPicListTemp1中の参照ピクチャのインデックスを規定する。list_entry_l1[i]シンタックス要素の長さはCeil(Log2(NumPocTotalCurr))ビットである。list_entry_l1[i]の値は、両端を含めて、0〜NumPocTotalCurr−1の範囲にあるべきである。シンタックス要素list_entry_l1[i]が存在しない場合、それは0に等しいと推測される。
[0218]本開示の別の例では、MV−HEVC Working Draft 2及び/又は3D−HEVC Test Model Description Draft 2で定義されるlist_entry_lX[i]のセマンティクス(Xは0又は1に等しい)は次のように修正される。list_entry_lX[i]のセマンティクスの以下の説明では、下線付きのテキストは、MV−HEVC Working Draft 2及び/又は3D−HEVC Test Model Description Draft 2におけるlist_entry_l0及びlist_entry_l1のセマンティクスに追加されるテキストである。
list_entry_lX[i]は、参照ピクチャリストXの現在の位置に配置されるべき、RefPicListTempX中の参照ピクチャのインデックスを規定する。list_entry_lX[i]シンタックス要素の長さはCeil(Log2(NumPocTotalCurrLX))ビットである。list_entry_lX[i]の値は、両端を含めて、0〜NumPocTotalCurrLX−1の範囲にあるべきである。シンタックス要素list_entry_lX[i]が存在しない場合、それは0に等しいと推測される。inter_view_l1_disable_flagが1に等しいとき、(NumPocTotalCurrL1−NumPocTotalCurrL0)はNumIvCurrに等しい。NumPocTotalCurrLXは次のように導出される。
NumPocTotalCurrLX= NumPocStCurrBefore + NumPocStCurrAfter + NumPocLtCurr +
((inter_view_l1_disable_flag && X) ? 0 : NumIvCurr)。
[0219]list_entry_l1(及びlist_entry_lX)の例示的なセマンティクスで示されるように、各list_entry_l1シンタックス要素の長さは、RefPicList1中の参照ピクチャの総数(即ち、NumPocTotalCurr)に依存する。従って、RefPicList1中により少数の参照ピクチャがある場合、list_entry_l1シンタックス要素の各々はより少数のビットを含む。inter_view_l1_disable_flagが1である場合、RefPicList1はビュー/レイヤ間参照ピクチャを含まないので、RefPicList1にはより少数の参照ピクチャがある。従って、ピクチャに適用可能なinter_view_l1_disable_flagが1である場合、ピクチャのRefPicList1に対する各list_entry_l1シンタックス要素は、より少数のビットを含み得る。
[0220]従って、ビデオデコーダ30は、ビットストリームから、参照ピクチャリスト(例えば、list_entry_l1シンタックス要素)を修正するための参照ピクチャリスト修正(RPLM)シンタックス要素を取得することができ、inter_view_l1_disable_flagが、ビュー/レイヤ間参照ピクチャが参照ピクチャリストに決して含まれていないことを示すとき、RPLMシンタックス要素は、ビュー/レイヤ間参照ピクチャが参照ピクチャリストに含まれることをシンタックス要素が示すときよりも、少数のビットを含む。同様に、ビデオエンコーダ20は、ビットストリームにおいて、参照ピクチャリスト(例えば、list_entry_l1シンタックス要素)を修正するためのRPLMシンタックス要素を信号伝達することができ、inter_view_l1_disable_flagが、ビュー/レイヤ間参照ピクチャが参照ピクチャリストに決して含まれていないことを示すとき、RPLMシンタックス要素の各々は、ビュー/レイヤ間参照ピクチャが参照ピクチャリストに含まれることをシンタックス要素が示すときよりも、少数のビットを含み得る。少なくともこの方法で、inter_view_l1_disable_flagの使用は、ビットストリームのサイズを減らし得る。
[0221]図8Aは、本開示の例による、ビデオエンコーダ20の動作を示すフローチャートである。図8Aの例によれば、ビデオエンコーダ20は、ビデオデータの符号化された表現を備えるビットストリームにおいて、ビュー/レイヤ間参照ピクチャが現在のビュー成分/レイヤ表現に対する参照ピクチャリストに含まれているかどうかを示すシンタックス要素を信号伝達することができる(200)。幾つかの例では、ビデオエンコーダ20は、VPSにおいてinter_view_l1_disable_flagシンタックス要素を信号伝達することができる。幾つかのそのような例では、inter_view_l1_disable_flagシンタックス要素は、CVSの各々のそれぞれのビュー成分/レイヤ表現に対して、ビュー/レイヤ間参照ピクチャがそれぞれのビュー成分/レイヤ表現に対するそれぞれの参照ピクチャリストに含まれているかどうかを示し得る。更に、幾つかのそのような例では、ビデオエンコーダ20は、VPSを参照するCVSの各々のそれぞれのビュー成分/レイヤ表現に対して、ビットストリームにおいて、それぞれのビュー成分/レイヤ表現に対するそれぞれの第2の参照ピクチャリスト(例えば、RefPicList0)中でのビュー/レイヤ間参照ピクチャの開始位置を示すそれぞれの第1のシンタックス要素(例えば、inter_view_ref_start_position_l0_plus1)を信号伝達することができる。
[0222]他の例では、ビデオエンコーダ20は、ビットストリーム中の複数のレイヤからの各々のそれぞれのレイヤに対するinter_view_l1_disable_flagシンタックス要素を信号伝達することができる。そのような例では、それぞれのレイヤシンタックス要素に対するinter_view_l1_disable_flagシンタックス要素は、ビュー/レイヤ間参照ピクチャがそれぞれのレイヤ中のビュー成分/レイヤ表現のそれぞれの参照ピクチャリストに含まれているかどうかを示す。更に、幾つかの例では、ビデオエンコーダ20は、複数のレイヤの各々の、各々のそれぞれのビュー成分/レイヤ表現に対して、ビットストリームにおいて、それぞれのビュー成分/レイヤ表現に対するそれぞれの追加の参照ピクチャリスト中でのビュー/レイヤ間参照ピクチャの開始位置を示すそれぞれの追加のシンタックス要素(例えば、inter_view_ref_start_position_l1_plus1)を信号伝達することができる。
[0223]加えて、ビデオエンコーダ20は、現在のビュー成分/レイヤ表現を符号化することができる(202)。本開示の様々な例で説明されるように、inter_view_l1_disable_flagシンタックス要素が1であるとき、ビデオエンコーダ20は、現在のビュー成分/レイヤ表現を符号化するために、参照ピクチャリスト(例えば、RefPicList1)中のビュー/レイヤ間参照ピクチャを使用しない。
[0224]図8Bは、本開示の例による、ビデオデコーダ30の動作を示すフローチャートである。図8Bの例では、ビデオデコーダ30は、ビットストリームから、ビュー/レイヤ間参照ピクチャが現在のビュー成分/レイヤ表現に対する参照ピクチャリストに含まれているかどうかを示すシンタックス要素(例えば、inter_view_l1_disable_flag)を取得する(210)。幾つかの例では、現在のビュー成分/レイヤ表現は、VPSを参照するCVSの一部であり得る。そのような例では、ビデオデコーダ30は、VPSからシンタックス要素を取得することができる。更に、そのような例では、シンタックス要素は、CVSの各々のそれぞれのビュー成分/レイヤ表現に対して、ビュー/レイヤ間参照ピクチャがそれぞれのビュー成分/レイヤ表現に対するそれぞれの参照ピクチャリストに含まれているかどうかを示し得る。幾つかの例では、エントロピー復号ユニット150(図7)は、ビットストリームからシンタックス要素を取得することができる。
[0225]他の例では、現在のビュー成分/レイヤ表現は、ビットストリーム中の複数のレイヤ中のある特定のレイヤの中にある。そのような例では、ビデオデコーダ30は、複数のレイヤからの各々のそれぞれのレイヤに対して、ビュー/レイヤ間参照ピクチャがそれぞれのレイヤ中のビュー成分/レイヤ表現のそれぞれの参照ピクチャリストに含まれているかどうかを示すそれぞれのレイヤに対するそれぞれのシンタックス要素を取得することができる。
[0226]ビデオデコーダ30は、現在のビュー成分/レイヤ表現を復号することができる(212)。ビュー/レイヤ間参照ピクチャが参照ピクチャリストに決して含まれていないことをシンタックス要素が示すとき、ビデオデコーダ30は、参照ピクチャリスト中のビュー/レイヤ間参照ピクチャの使用を伴わずに、現在のビュー成分/レイヤ表現を復号する。
[0227]図9は、本開示の例による、スライスヘッダを解析するための例示的な動作を示すフローチャートである。表4の例に関して上で示されたように、スライスヘッダは、RefPicList1中のビュー/レイヤ間参照ピクチャの開始位置を示すシンタックス要素(即ち、inter_view_ref_start_position_l1_plus1シンタックス要素)を適応的に含み得る。
[0228]具体的には、図9の例では、ビデオデコーダ30は、ビットストリームからinter_view_l1_disable_flagを取得することができる(230)。幾つかの例では、ビデオデコーダ30は、VPSからinter_view_l1_disable_flagを取得することができる。他の例では、ビデオデコーダ30は、SPS又は別のシンタックス構造からinter_view_l1_disable_flagを取得することができる。例えば、ビデオエンコーダ20が各ビュー/レイヤに対してinter_view_l1_disable_flagを信号伝達するとき、ビデオエンコーダ20は、レイヤの各々の中のCVSに適用可能なSPS中でinter_view_l1_disable_flagを信号伝達することができる。幾つかの例では、エントロピー復号ユニット150(図7)は、ビットストリームからシンタックス要素を取得することができる。
[0229]更に、図9の例では、ビデオデコーダ30は、スライスヘッダのシンタックス要素を取得するために、現在のピクチャのスライスのスライスヘッダを解析することができる。幾つかの例では、エントロピー復号ユニット150が、スライスヘッダを解析することができる。スライスヘッダを解析することの一部として、ビデオデコーダ30は、スライスがIスライスであるかどうかを決定することができる(232)。言い換えると、ビデオデコーダ30は、インター予測がスライス中で可能にされるかどうかを決定することができる。スライスがIスライスではない(即ち、ブロックはPスライス又はBスライスである)と決定したことに応答して(232の「はい」)、ビデオデコーダ30は、スライスヘッダから、現在のピクチャのRefPicList0中のビュー/レイヤ間参照ピクチャの開始位置を示すシンタックス要素(例えば、inter_view_ref_start_position_l0_plus1)を取得することができる(234)。
[0230]従って、現在のビュー成分/レイヤ表現がVPSを参照するCVSの一部であり、inter_view_l1_disable_flagがVPSで信号伝達される幾つかの例では、ビデオデコーダ30は、CVSの各々のそれぞれのビュー成分/レイヤ表現に対して、それぞれのビュー成分/レイヤ表現に対するそれぞれの第2の参照ピクチャリスト中のビュー/レイヤ間参照ピクチャの開始位置を示す、それぞれの追加のシンタックス要素(例えば、inter_view_ref_start_position_l0_plus1)を取得することができる。
[0231]更に、inter_view_l1_disable_flagがビットストリームの複数のレイヤ中の各レイヤに対して信号伝達される幾つかの例では、ビデオデコーダ30は、複数のレイヤの各々の、各々のそれぞれのビュー成分/レイヤ表現に対して、それぞれのビュー成分/レイヤ表現に対するそれぞれの追加の参照ピクチャリスト中でのビュー/レイヤ間参照ピクチャの開始位置を示すそれぞれの追加のシンタックス要素(例えば、inter_view_ref_start_position_l0_plus1)を取得することができる。
[0232]更に、ビデオデコーダ30は、inter_view_l1_disable_flagに基づいて、ビュー/レイヤ間参照ピクチャが現在のピクチャのRefPicList1に含まれているかどうかを決定することができる(236)。ビュー/レイヤ間参照ピクチャが現在のピクチャのRefPicList1に含まれると決定したことに応答して(236の「はい」)、ビデオデコーダ30は、スライスヘッダから、RefPicList1中のビュー/レイヤ間参照ピクチャの開始位置を示すシンタックス要素(例えば、inter_view_ref_start_position_l1_plus1)を取得することができる(238)。
[0233]続いて、又は、スライスがIスライスであると決定したことに応答して(232の「はい」)、又は、ビュー/レイヤ間参照ピクチャが現在のピクチャのRefPicList1に決して含まれていないと決定したことに応答して(236の「いいえ」)、ビデオデコーダ30は、もしあれば、スライスヘッダの追加のシンタックス要素を取得することができる(240)。
[0234]図10は、本開示の例による、隣接ブロックベース視差ベクトル(NBDV)の導出プロセスを示すフローチャートである。図10の例では、ビデオコーダ(例えば、ビデオエンコーダ20又はビデオデコーダ30)は、現在の空間的隣接ブロックがRefPicList0視差動きベクトルを有するかどうかを決定することができる(250)。現在の空間的隣接ブロックは、現在のブロックの空間的隣接ブロックの1つであり得る。現在の空間的隣接ブロックがRefPicList0視差動きベクトルを有すると決定したことに応答して(250の「はい」)、ビデオコーダは、現在の空間的隣接ブロックのRefPicList0視差動きベクトルを、現在のブロックに対する視差ベクトルへと変換することができる(252)。ビデオコーダは次いで、NBDV導出処理を終了することができる。
[0235]一方、現在の空間的隣接ブロックがRefPicList0視差動きベクトルを有しないと決定したことに応答して(252の「いいえ」)、ビデオコーダは、現在の空間的隣接ブロックに対するIDVを記憶することができる(254)。幾つかの例では、ビデオコーダは、現在の空間的隣接ブロックの予測モードがスキップモードを使用してコード化される場合にのみ、現在の空間的隣接ブロックに対するIDVを記憶することができる。幾つかの例では、ビデオコーダは、復号ピクチャバッファ(例えば、復号ピクチャバッファ116又は復号ピクチャバッファ162)にIDVを記憶することができる。更に、ビデオコーダは、ビュー/レイヤ間参照ピクチャが現在の空間的隣接ブロックのRefPicList1に含まれていることをinter_view_l1_disable_flagが示すかどうかを決定することができる(256)。
[0236]ビュー/レイヤ間参照ピクチャが現在の空間的隣接ブロック(即ち、現在の空間的隣接ブロックのRefPicList1)を含むピクチャのRefPicList1に含まれ得ることを、inter_view_l1_disable_flagが示すと決定したことに応答して(256の「はい」)、ビデオコーダは、現在の空間的隣接ブロックがRefPicList1視差動きベクトルを有するかどうかを決定することができる(258)。現在の空間的隣接ブロックがRefPicList1視差動きベクトルを有すると決定したことに応答して(258の「はい」)、ビデオコーダは、現在の空間的隣接ブロックに対するRefPicList1視差動きベクトルを、現在のブロックに対する視差ベクトルへと変換することができる(260)。ビデオコーダは次いで、NBDV導出処理を終了することができる。
[0237]一方、現在の空間的隣接ブロックがRefPicList1視差動きベクトルを有しないと決定したことに応答して(258の「いいえ」)、ビデオコーダは、現在の空間的隣接ブロックに対するIDVを記憶することができる(262)。幾つかの例では、ビデオコーダは、現在の空間的隣接ブロックの予測モードがスキップモードを使用してコード化される場合にのみ、現在の空間的隣接ブロックに対するIDVを記憶することができる。従って、ビデオコーダは、現在の空間的隣接ブロックに対する2つのIDVを記憶する可能性があり得る。幾つかの例では、ビデオコーダは、復号ピクチャバッファ(例えば、復号ピクチャバッファ116又は復号ピクチャバッファ162)にIDVを記憶することができる。
[0238]ビュー/レイヤ間参照ピクチャが現在の空間的隣接ブロックのRefPicList1に決して含まれていないことをinter_view_l1_disable_flagが示すと決定したことに応答して(256の「いいえ」)、又は、262において現在の空間的隣接ブロックに対するIDVを記憶した後で、ビデオコーダは、確認すべき残りの空間的隣接ブロックがあるかどうかを決定することができる(264)。確認すべき1つ又は複数の残りの空間的隣接ブロックがあると決定したことに応答して(264の「はい」)、ビデオコーダは、現在の空間的隣接ブロックとして、残りの空間的隣接ブロックの1つについて動作252〜264を繰り返すことができる。従って、本開示の例によれば、ビュー/レイヤ間参照ピクチャが現在の空間的隣接ブロックのRefPicList1に決して含まれていないことをinter_view_l1_disable_flagが示すとき、ビデオコーダは、現在の空間的隣接ブロックに対するせいぜい1つのIDVを記憶する。
[0239]更に、残りの空間的隣接ブロックがないと決定したことに応答して(264の「いいえ」)、ビデオコーダは、現在の時間的隣接ブロックがRefPicList0視差動きベクトルを有するかどうかを決定することができる(266)。現在の時間的隣接ブロックは、現在のブロックの時間的隣接ブロックの1つであり得る。現在の時間的隣接ブロックがRefPicList0視差動きベクトルを有すると決定したことに応答して(266の「はい」)、ビデオコーダは、現在の時間的隣接ブロックのRefPicList0視差動きベクトルを、現在のブロックに対する視差ベクトルへと変換することができる(268)。ビデオコーダは次いで、NBDV導出処理を終了することができる。
[0240]一方、現在の時間的隣接ブロックがRefPicList0視差動きベクトルを有しないと決定したことに応答して(266の「いいえ」)、ビデオコーダは、現在の時間的隣接ブロックに対するIDVを記憶することができる(270)。幾つかの例では、ビデオコーダは、現在の時間的隣接ブロックの予測モードがスキップモードを使用してコード化される場合にのみ、現在の時間的隣接ブロックに対するIDVを記憶することができる。幾つかの例では、ビデオコーダは、復号ピクチャバッファ(例えば、復号ピクチャバッファ116又は復号ピクチャバッファ162)にIDVを記憶することができる。加えて、ビデオコーダは、ビュー/レイヤ間参照ピクチャが現在の時間的隣接ブロックのRefPicList1に含まれていることをinter_view_l1_disable_flagが示すかどうかを決定することができる(272)。ビュー/レイヤ間参照ピクチャが現在の時間的隣接ブロックのRefPicList1に含まれ得ることを、inter_view_l1_disable_flagが示すと決定したことに応答して(272の「はい」)、ビデオコーダは、現在の時間的隣接ブロックがRefPicList1視差動きベクトルを有するかどうかを決定することができる(274)。現在の時間的隣接ブロックがRefPicList1視差動きベクトルを有すると決定したことに応答して(274の「はい」)、ビデオコーダは、現在の時間的隣接ブロックに対するRefPicList1視差動きベクトルを、現在のブロックに対する視差ベクトルへと変換することができる(276)。ビデオコーダは次いで、NBDV導出処理を終了することができる。
[0241]一方、現在の時間的隣接ブロックがRefPicList1視差動きベクトルを有しないと決定したことに応答して(274の「いいえ」)、ビデオコーダは、現在の時間的隣接ブロックに対するIDVを記憶することができる(278)。幾つかの例では、ビデオコーダは、現在の時間的隣接ブロックの予測モードがスキップモードを使用してコード化される場合にのみ、現在の時間的隣接ブロックに対するIDVを記憶することができる。従って、ビデオコーダは、現在の時間的隣接ブロックに対する2つのIDVを記憶する可能性があり得る。幾つかの例では、ビデオコーダは、復号ピクチャバッファ(例えば、復号ピクチャバッファ116又は復号ピクチャバッファ162)にIDVを記憶することができる。
[0242]ビュー/レイヤ間参照ピクチャが現在の時間的隣接ブロックのRefPicList1に決して含まれていないことをinter_view_l1_disable_flagが示すと決定したことに応答して(272の「いいえ」)、又は、(278)で現在の時間的隣接ブロックに対するIDVを記憶した後で、ビデオコーダは、確認すべき残りの時間的隣接ブロックがあるかどうかを決定することができる(280)。確認すべき1つ又は複数の残りの時間的隣接ブロックがあると決定したことに応答して(280の「はい」)、ビデオコーダは、現在の時間的隣接ブロックとして、残りの時間的隣接ブロックの1つについて動作266〜280を繰り返すことができる。従って、本開示の例によれば、ビュー/レイヤ間参照ピクチャが現在の時間的隣接ブロックのRefPicList1に決して含まれていないことをinter_view_l1_disable_flagが示すとき、ビデオコーダは、現在の時間的隣接ブロックに対するせいぜい1つのIDVを記憶する。
[0243]残りの時間的隣接ブロックがないと決定したことに応答して(280の「いいえ」)、ビデオコーダは、現在の隣接ブロックがIDVを有するかどうかを決定することができる(282)。現在の隣接ブロックは、現在のブロックの空間的隣接ブロックの1つ、又は、空間時間的隣接ブロックの1つであり得る。幾つかの例では、ビデオコーダは、IDVに対する時間的隣接ブロックのいずれの確認よりも前に、IDVに対する空間的隣接ブロックを確認する。現在の空間的隣接ブロックがIDVを有すると決定したことに応答して(282の「はい」)、ビデオコーダは、現在の隣接ブロックのIDVを現在のブロックの視差ベクトルへと変換することができる(284)。しかしながら、現在の隣接ブロックがIDVを有しないと決定したことに応答して(282の「いいえ」)、ビデオコーダは、残りの隣接ブロックがあるかどうかを決定することができる(286)。確認すべき1つ又は複数の残りの隣接ブロックがあると決定したことに応答して(286の「はい」)、ビデオコーダは、現在の隣接ブロックとして、残りの隣接ブロックの1つについて動作282〜286を繰り返すことができる。一方、残りの隣接ブロックがないと決定したことに応答して(286の「いいえ」)、ビデオコーダは、現在のブロックに対する視差ベクトルが利用不可能であると決定することができる(288)。
[0244]従って、図10の例に示されるように、RefPicList1がビュー/レイヤ間参照ピクチャを決して含んでいないことをinter_view_l1_disable_flagが示すとき、動き情報は決して確認されない。その結果、図10のNBDV導出処理の複雑さは、2倍小さくされ得る。幾つかの例では、図10の動作は、ビデオエンコーダ20のインター予測処理ユニット120(図6)又はビデオデコーダ30の予測処理ユニット152(図7)によって実行され得る。
[0245]例によっては、本明細書で説明された方法のうちいずれかの、幾つかの動作又はイベントは、異なる順序で実行されてよく、追加され、統合され、又は完全に除外されてよい(例えば、全ての説明した動作又はイベントが、本方法の実施のために必要であるとは限らない)ことを認識されたい。その上、幾つかの例では、動作又はイベントは、連続的にではなく、同時に、例えば、マルチスレッド処理、割込み処理、又は複数のプロセッサを通じて実行され得る。
[0246]上記の例はどれもその詳細が、他の例と組み合わされ、本開示と一致するものとしてよい。1つ又は複数の例において、説明されている機能は、ハードウェア、ソフトウェア、ファームウェア、又はこれらの組合せで実装され得る。ソフトウェアで実装される場合、これらの機能は、1つ又は複数の命令又はコードとして、コンピュータ可読媒体上で格納又は送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形の媒体に対応する、コンピュータ可読記憶媒体、又は例えば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を円滑にする媒体を含む通信媒体を含むものとしてよい。このように、コンピュータ可読媒体は、一般的に、(1)非一時的である有形のコンピュータ可読記憶媒体、又は(2)信号又は搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示において説明されている技術の実装のため、命令、コード、及び/又はデータ構造体を取り出すために、1つ又は複数のコンピュータ又は1つ又は複数のプロセッサによってアクセスされ得る利用可能な任意の媒体とすることができる。コンピュータプログラム製品はコンピュータ可読媒体を含むものとしてよい。
[0247]本明細書で開示される方法、システム及び装置と関連して説明される様々な例示的論理ブロック、モジュール、回路、及びアルゴリズムのステップは、電子ハードウェア、プロセッサによって実行されるコンピュータソフトウェア、又は両方の組合せとして実装され得ることを、当業者は認識するであろう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的なコンポーネント、ブロック、モジュール、回路、及びステップが、上では全般にそれらの機能に関して説明された。そのような機能がハードウェアとして実装されるか、ソフトウェアとして実装されるかは、具体的な適用例及び全体的なシステムに課される設計制約に依存する。当業者は、説明された機能を具体的な適用例ごとに多様な方法で実装し得るが、そのような実装の決定は、本発明の範囲からの逸脱を生じるものと解釈されるべきではない。
[0248]例として、限定はしないが、このようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROM、又は他の光ディスク記憶、磁気ディスク記憶、又は他の磁気記憶機器、フラッシュメモリ、又は命令又はデータ構造体の形態で所望のプログラムコードを格納するために使用され得る、コンピュータによってアクセスされ得る他の任意の媒体を備えることができる。また、接続がコンピュータ可読媒体と称されることも適切である。例えば、命令が同軸ケーブル、光ファイバケーブル、ツイストペア線、デジタル加入者回線(DSL)、又は赤外線、無線、及びマイクロ波などのワイヤレス技術を使用してウェブサイト、サーバ、又は他のリモート発信源から送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア線、DSL、又は赤外線、無線、及びマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体とデータ記憶媒体とは、接続、搬送波、信号、又は他の一時的媒体を含まないが、代わりに、非一時的な有形の記憶媒体に向けられることが理解されるであろう。本明細書で使用するディスク(disk)及びディスク(disc)は、コンパクトディスク(disc)(CD)、レーザディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)、及びブルーレイディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
[0249]命令は、1つ又は複数のデジタルシグナルプロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、又は他の同等の集積回路又はディスクリート部品による論理回路などの1つ又は複数のプロセッサによって実行され得る。従って、本明細書で使用されているような「プロセッサ」という用語は、前述の構造物又は本明細書で説明されている技術の実装に適している他の構造物のいずれかを指すものとしてよい。それに加えて、幾つかの態様では、本明細書で説明されている機能は、符号化と復号とを行うように構成された専用ハードウェア及び/又はソフトウェアモジュール内に設けられるか、又は組み合わされたコーデックに組み込まれ得る。また、これらの技術は、1つ又は複数の回路又は論理素子で完全に実装されることもあり得る。
[0250]本開示の技術は、ワイヤレスハンドセット、集積回路(IC)、又は一組のIC(例えば、チップセット)を含む、様々な機器又は装置で実装され得る。様々なコンポーネント、モジュール、又はユニットは、開示されている技術を実行するように構成された機器の機能的態様を強調するように本開示において説明されているが、異なるハードウェアユニットによる実現を必ずしも必要としない。むしろ、上で説明されているように、様々なユニットが、コーデックハードウェアユニット内に組み合わされるか、又は好適なソフトウェア及び/又はファームウェアと併せて、上述のような1つ又は複数のプロセッサを含む、相互運用性を有するハードウェアユニットの集合体によって構成され得る。
[0251]本明細書で開示される実施形態に関して説明された方法又はアルゴリズムのステップは、直接ハードウェアで具現化されるか、プロセッサによって実行されるソフトウェアモジュールで具現化されるか、又はその2つの組合せで具現化され得る。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD−ROM、又は当技術分野で知られている任意の他の形態の記憶媒体内に存在し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体はプロセッサと一体であり得る。プロセッサ及び記憶媒体はASIC中に存在し得る。ASICはユーザ端末内に存在し得る。代替形態では、プロセッサ及び記憶媒体は、ユーザ端末内の個別コンポーネントとして存在し得る。
[0252]様々な例が説明された。これら及び他の例は、次の請求項の範囲内にある。
以下に本件出願当初の特許請求の範囲に記載された発明を付記する。
[1] ビデオデータを復号するための方法であって、ビットストリームから、ビュー/レイヤ間参照ピクチャが現在のビュー成分/レイヤ表現に対する参照ピクチャリストに含まれているかどうかを示すシンタックス要素を取得することと、前記現在のビュー成分/レイヤ表現を復号することとを備え、ビュー/レイヤ間参照ピクチャが前記参照ピクチャリストに決して含まれていないことを前記シンタックス要素が示すとき、前記現在のビュー成分/レイヤ表現が、前記参照ピクチャリスト中のビュー/レイヤ間参照ピクチャの使用を伴わずに復号される、方法。
[2] 前記現在のビュー成分/レイヤ表現を復号することが、前記現在のブロックに対する視差ベクトルを決定するために、前記現在のビュー成分/レイヤ表現の現在のブロックに隣接する1つ以上のブロックを確認する、視差ベクトル導出処理を実行することを備え、前記視差ベクトル導出処理を実行することが、ビュー/レイヤ間参照ピクチャが前記現在のビュー成分/レイヤ表現に対する前記参照ピクチャリストに決して含まれていないことを前記シンタックス要素が示すとき、前記現在のビュー成分/レイヤ表現に対する前記参照ピクチャリストに対応する動き情報を確認しないことを備える、[1]に記載の方法。
[3] 前記現在のビュー成分/レイヤ表現が、前記ビットストリーム中の複数のレイヤ中の特定のレイヤの中にあり、前記複数のレイヤからの各々のそれぞれのレイヤに対して、ビュー/レイヤ間参照ピクチャが前記それぞれのレイヤ中のビュー成分/レイヤ表現のそれぞれの参照ピクチャリストに含まれているかどうかを示す前記それぞれのレイヤに対するそれぞれのシンタックス要素を取得することを備える、[1]に記載の方法。
[4] 前記参照ピクチャリストを修正するための参照ピクチャリスト修正(RPLM)シンタックス要素を前記ビットストリームから取得することを更に備え、前記シンタックス要素が、ビュー/レイヤ間参照ピクチャが前記参照ピクチャリストに決して含まれていないことを示すとき、前記RPLMシンタックス要素の各々が、ビュー/レイヤ間参照ピクチャが前記参照ピクチャリストに含まれていることを前記シンタックス要素が示すときよりも、少数のビットを含む、[1]に記載の方法。
[5] 前記シンタックス要素が第1のシンタックス要素であり、前記参照ピクチャリストが第1の参照ピクチャリストである方法であって、前記方法は、前記ビットストリームから第2のシンタックス要素を取得することを更に備え、前記第2のシンタックス要素が、前記現在のビュー成分/レイヤ表現に対する第2の異なる参照ピクチャリスト中でのビュー/レイヤ間参照ピクチャの開始位置を示す、[1]に記載の方法。
[6] ビュー/レイヤ間参照ピクチャが前記現在のビュー成分/レイヤ表現に対する前記第1の参照ピクチャリストに含まれることを前記シンタックス要素が示すとき、前記ビットストリームから第3のシンタックス要素を取得すること、前記第3のシンタックス要素が、前記現在のビュー成分/レイヤ表現に対する前記第1の参照ピクチャリスト中でのビュー/レイヤ間参照ピクチャの開始位置を示す、[5]に記載の方法。
[7] 前記現在のビュー成分/レイヤ表現が、ビデオパラメータセット(VPS)を参照するコード化されたビデオシーケンス(CVS)の一部であり、前記シンタックス要素を前記VPSから取得することを備え、前記シンタックス要素が、前記CVSの各々のそれぞれのビュー成分/レイヤ表現に対して、ビュー/レイヤ間参照ピクチャが前記それぞれのビュー成分/レイヤ表現に対するそれぞれの参照ピクチャリストに含まれているかどうかを示す、[1]に記載の方法。
[8] 前記現在のビュー成分/レイヤ表現を復号することが、前記現在のブロックに対する視差ベクトルを決定するために、前記現在のビュー成分/レイヤ表現の現在のブロックに隣接する1つ以上のブロックを確認する、視差ベクトル導出処理を実行することを備え、前記視差ベクトル導出処理を実行することが、前記シンタックス要素が、ビュー/レイヤ間参照ピクチャが前記現在のビュー成分/レイヤ表現に対する前記参照ピクチャリストに決して含まれていないことを示すとき、前記現在のブロックに隣接する前記1つ以上のブロックの各々に対するせいぜい1つの暗黙的な視差ベクトルを記憶することを備える、[1]に記載の方法。
[9] 前記現在のビュー成分/レイヤ表現を復号することが、前記シンタックス要素が、ビュー/レイヤ間参照ピクチャが前記現在のビュー成分/レイヤ表現に対する前記参照ピクチャリストに決して含まれていないことを示すとき、ビュー/レイヤ間参照ピクチャに対応する候補を候補リストに決して含めないことと、前記シンタックス要素が、ビュー/レイヤ間参照ピクチャが前記現在のビュー成分/レイヤ表現に対する前記参照ピクチャリストに決して含まれていないことを示すとき、前記候補リスト中の特定の候補に基づいて、前記現在のビュー成分/レイヤ表現の現在のブロックに対する動きベクトルを決定することとを備える、[1]に記載の方法。
[10] 前記シンタックス要素が、ビュー/レイヤ間参照ピクチャが前記現在のビュー成分/レイヤ表現に対する前記参照ピクチャリストに決して含まれていないことを示すとき、前記参照ピクチャリストからの参照ピクチャがビュー/レイヤ間参照ピクチャであるかどうかの確認を避けることと、前記シンタックス要素が、ビュー/レイヤ間参照ピクチャが前記現在のビュー成分/レイヤ表現に対する前記参照ピクチャリストに決して含まれていないことを示すとき、前記参照ピクチャリスト中の特定の参照ピクチャのタイプを確認することなく、前記現在のビュー成分/レイヤ表現の現在のコード化単位(CU)の予測単位(PU)が前記特定の参照ピクチャ中の位置を示す動きベクトルを有する場合、前記参照ピクチャリストに対して残差予測子生成処理を有効にすることとを更に備える、[1]に記載の方法。
[11] 前記シンタックス要素が、ビュー/レイヤ間参照ピクチャが前記現在のビュー成分/レイヤ表現に対する前記参照ピクチャリストに決して含まれていないことを示すとき、異なる参照ピクチャリストへ挿入されるビュー/レイヤ間参照ピクチャのみを使用して、ビュー合成予測を実行することと、前記シンタックス要素が、ビュー/レイヤ間参照ピクチャが前記現在のビュー成分/レイヤ表現に対する前記参照ピクチャリストに決して含まれていないことを示すとき、前記参照ピクチャリストの初期バージョンを構築するときにビュー/レイヤ間参照ピクチャセット又はビュー/レイヤ間参照ピクチャを考慮しないこととを更に備える、[1]に記載の方法。
[12] ビデオデータを符号化する方法であって、ビットストリームにおいて、ビュー/レイヤ間参照ピクチャが現在のビュー成分/レイヤ表現に対する参照ピクチャリストに含まれているかどうかを示すシンタックス要素を信号伝達することと、前記現在のビュー成分/レイヤ表現を符号化することとを備え、ビュー/レイヤ間参照ピクチャが前記参照ピクチャリストに決して含まれていないことを前記シンタックス要素が示すとき、前記現在のビュー成分/レイヤ表現が、前記参照ピクチャリスト中のビュー/レイヤ間参照ピクチャを使用して符号化されない、方法。
[13] 前記現在のビュー成分/レイヤ表現が、ビデオパラメータセット(VPS)を参照するコード化されたビデオシーケンス(CVS)の一部であり、前記VPS中の前記シンタックス要素を前記ビットストリームにおいて信号伝達することを備え、前記シンタックス要素が、前記CVSの各々のそれぞれのビュー成分/レイヤ表現に対して、ビュー/レイヤ間参照ピクチャが前記それぞれのビュー成分/レイヤ表現に対するそれぞれの参照ピクチャリストに含まれているかどうかを示す、[12]に記載の方法。
[14] 前記現在のビュー成分/レイヤ表現が、前記ビットストリーム中の複数のレイヤ中の特定のレイヤの中にあり、前記複数のレイヤからの各々のそれぞれのレイヤに対して、ビュー/レイヤ間参照ピクチャが前記それぞれのレイヤ中のビュー成分/レイヤ表現のそれぞれの参照ピクチャリストに含まれているかどうかを示す前記それぞれのレイヤに対するそれぞれのシンタックス要素を前記ビットストリームにおいて信号伝達することを備える、[12]に記載の方法。
[15] 前記参照ピクチャリストを修正するための参照ピクチャリスト修正(RPLM)シンタックス要素を前記ビットストリームにおいて信号伝達することを更に備え、前記シンタックス要素が、ビュー/レイヤ間参照ピクチャが前記参照ピクチャリストに決して含まれていないことを示すとき、前記RPLMシンタックス要素の各々が、ビュー/レイヤ間参照ピクチャが前記参照ピクチャリストに含まれることを前記シンタックス要素が示すときよりも、少数のビットを含む、[12]に記載の方法。
[16] 前記シンタックス要素が第1のシンタックス要素であり、前記参照ピクチャリストが第1の参照ピクチャリストであり、前記ビットストリームにおいて第2のシンタックス要素を信号伝達することを更に備え、前記第2のシンタックス要素が、前記現在のビュー成分/レイヤ表現に対する第2の異なる参照ピクチャリスト中でのビュー/レイヤ間参照ピクチャの開始位置を示す、[12]に記載の方法。
[17] 記憶媒体と、前記記憶媒体に結合された1つ以上のプロセッサとを備える、ビデオ復号装置であって、前記1つ以上のプロセッサが、ビットストリームから、ビュー/レイヤ間参照ピクチャが現在のビュー成分/レイヤ表現に対する参照ピクチャリストに含まれているかどうかを示すシンタックス要素を取得し、前記現在のビュー成分/レイヤ表現を復号するように構成され、ビュー/レイヤ間参照ピクチャが前記参照ピクチャリストに決して含まれていないことを前記シンタックス要素が示すとき、前記現在のビュー成分/レイヤ表現が、前記参照ピクチャリスト中のビュー/レイヤ間参照ピクチャの使用を伴わずに復号される、ビデオ復号装置。
[18] 前記1つ以上のプロセッサが、前記現在のブロックに対する視差ベクトルを決定するために、前記現在のビュー成分/レイヤ表現の現在のブロックに隣接する1つ以上のブロックを確認する、視差ベクトル導出処理を実行するように構成され、前記視差ベクトル導出処理を実行することが、ビュー/レイヤ間参照ピクチャが前記現在のビュー成分/レイヤ表現に対する前記参照ピクチャリストに決して含まれていないことを前記シンタックス要素が示すとき、前記現在のビュー成分/レイヤ表現に対する前記参照ピクチャリストに対応する動き情報を確認しないことを備える、[17]に記載のビデオ復号装置。
[19] 前記現在のビュー成分/レイヤ表現が、前記ビットストリーム中の複数のレイヤ中の特定のレイヤの中にあり、前記1つ以上のプロセッサが、前記複数のレイヤからの各々のそれぞれのレイヤに対して、ビュー/レイヤ間参照ピクチャが前記それぞれのレイヤ中のビュー成分/レイヤ表現のそれぞれの参照ピクチャリストに含まれているかどうかを示す前記それぞれのレイヤに対するそれぞれのシンタックス要素を取得するように構成される、[17]に記載のビデオ復号装置。
[20] 前記1つ以上のプロセッサが更に、前記参照ピクチャリストを修正するための参照ピクチャリスト修正(RPLM)シンタックス要素を前記ビットストリームから取得するように構成され、前記シンタックス要素が、ビュー/レイヤ間参照ピクチャが前記参照ピクチャリストに決して含まれていないことを示すとき、前記RPLMシンタックス要素の各々が、ビュー/レイヤ間参照ピクチャが前記参照ピクチャリストに含まれることを前記シンタックス要素が示すときよりも、少数のビットを含む、[17]に記載のビデオ復号装置。
[21] 前記シンタックス要素が第1のシンタックス要素であり、前記参照ピクチャリストが第1の参照ピクチャリストであり、前記1つ以上のプロセッサが、前記ビットストリームから第2のシンタックス要素を取得するように構成され、前記第2のシンタックス要素が、前記現在のビュー成分/レイヤ表現に対する第2の異なる参照ピクチャリスト中でのビュー/レイヤ間参照ピクチャの開始位置を示す、[17]に記載のビデオ復号装置。
[22] 前記現在のビュー成分/レイヤ表現が、ビデオパラメータセット(VPS)を参照するコード化されたビデオシーケンス(CVS)の一部であり、前記1つ以上のプロセッサが、前記シンタックス要素を前記VPSから取得するように構成され、前記シンタックス要素が、前記CVSの各々のそれぞれのビュー成分/レイヤ表現に対して、ビュー/レイヤ間参照ピクチャが前記それぞれのビュー成分/レイヤ表現に対するそれぞれの参照ピクチャリストに含まれているかどうかを示す、[17]に記載のビデオ復号装置。
[23] 前記1つ以上のプロセッサが、前記現在のブロックに対する視差ベクトルを決定するために、前記現在のビュー成分/レイヤ表現の現在のブロックに隣接する1つ以上のブロックを確認する、視差ベクトル導出処理を実行するように構成され、前記視差ベクトル導出処理を実行することが、前記シンタックス要素が、ビュー/レイヤ間参照ピクチャが前記現在のビュー成分/レイヤ表現に対する前記参照ピクチャリストに決して含まれていないことを示すとき、前記現在のブロックに隣接する前記1つ以上のブロックの各々に対するせいぜい1つの暗黙的な視差ベクトルを記憶することを備える、[17]に記載のビデオ復号装置。
[24] 前記1つ以上のプロセッサが、前記シンタックス要素が、ビュー/レイヤ間参照ピクチャが前記現在のビュー成分/レイヤ表現に対する前記参照ピクチャリストに決して含まれていないことを示すとき、ビュー/レイヤ間参照ピクチャに対応する候補を候補リストに決して含めず、前記シンタックス要素が、ビュー/レイヤ間参照ピクチャが前記現在のビュー成分/レイヤ表現に対する前記参照ピクチャリストに決して含まれていないことを示すとき、前記候補リスト中の特定の候補に基づいて、前記現在のビュー成分/レイヤ表現の現在のブロックに対する動きベクトルを決定するように構成される、[17]に記載のビデオ復号装置。
[25] 前記1つ以上のプロセッサアーが、前記シンタックス要素が、ビュー/レイヤ間参照ピクチャが前記現在のビュー成分/レイヤ表現に対する前記参照ピクチャリストに決して含まれていないことを示すとき、前記参照ピクチャリストからの参照ピクチャがビュー/レイヤ間参照ピクチャであるかどうかの確認を避け、前記シンタックス要素が、ビュー/レイヤ間参照ピクチャが前記現在のビュー成分/レイヤ表現に対する前記参照ピクチャリストに決して含まれていないことを示すとき、前記参照ピクチャリスト中の特定の参照ピクチャのタイプを確認することなく、前記現在のビュー成分/レイヤ表現の現在のコード化単位(CU)の予測単位(PU)が前記特定の参照ピクチャ中の位置を示す動きベクトルを有する場合、前記参照ピクチャリストに対して残差予測子生成処理を有効にするために構成する、[17]に記載のビデオ復号装置。
[26] 前記1つ以上のプロセッサが、前記シンタックス要素が、ビュー/レイヤ間参照ピクチャが前記現在のビュー成分/レイヤ表現に対する前記参照ピクチャリストに決して含まれていないことを示すとき、異なる参照ピクチャリストへ挿入されるビュー/レイヤ間参照ピクチャのみを使用して、ビュー合成予測を実行し、前記シンタックス要素が、ビュー/レイヤ間参照ピクチャが前記現在のビュー成分/レイヤ表現に対する前記参照ピクチャリストに決して含まれていないことを示すとき、前記参照ピクチャリストの初期バージョンを構築するときにビュー/レイヤ間参照ピクチャセット又はビュー/レイヤ間参照ピクチャを考慮しないように構成される、[17]に記載のビデオ復号装置。
[27] ビットストリームから、ビュー/レイヤ間参照ピクチャが現在のビュー成分/レイヤ表現に対する参照ピクチャリストに含まれているかどうかを示すシンタックス要素を取得するための手段と、前記現在のビュー成分/レイヤ表現を復号するための手段とを備え、ビュー/レイヤ間参照ピクチャが前記参照ピクチャリストに決して含まれていないことを前記シンタックス要素が示すとき、前記現在のビュー成分/レイヤ表現が、前記参照ピクチャリスト中のビュー/レイヤ間参照ピクチャの使用を伴わずに復号される、ビデオ復号装置。