[0022]本開示の技法は、概してアドバンストコーデックに基づいたマルチビュービデオコーディングに関する。そのようなアドバンストコーデックの一例は、高効率ビデオコーディング(HEVC)規格の3次元(3D)拡張規格に従って動作するように構成されたコーデックである。HEVCは、ITU−T H.265とも呼ばれ、ITU−T H.265、SERIES H: AUDIOVISUAL AND MULTIMEDIA SYSTEMS、Infrastructure of Audiovisual Services−Coding of Moving Video、High Efficiency Video Coding、2013年4月(http://www.itu.int/ITU−T/recommendations/rec.aspx?rec=11885にて入手可能)に記載されている。3D−HEVCは、Gerhard Tech、Krzysztof Wegner、Ying Chen、Sehoon Yea、「3D−HEVC Test Model Description draft 2」、JCT3V−B1005、ITU−T SG16 WP3とISO/IEC JTC1/SC29/WG11とのJoint Collaborative Team on 3D Video Coding Extension Development、第2回会合:上海、中華人民共和国、2012年10月に記載されている。
[0023]ビデオコーディング規格は、ITU−T H.261と、ISO/IEC MPEG−1 Visualと、ITU−T H.262またはISO/IEC MPEG−2 Visualと、ITU−T H.263と、ISO/IEC MPEG−4 Visualと、それのスケーラブルビデオコーディング(SVC)およびマルチビュービデオコーディング(MVC)拡張を含む(ISO/IEC MPEG−4 AVCとも呼ばれる)ITU−T H.264とを含む。MVCのジョイントドラフトは、「Advanced video coding for generic audiovisual services」、ITU−T勧告H.264、2010年3月に記載されている。本開示の技法については、概してHEVCおよびその拡張(たとえば、3Dまたはマルチビュービデオコーディング拡張)に関して説明する。しかし、本開示の技法が他のビデオコーディング規格およびそのような規格の拡張に適用され得ることを理解されたい。
[0024]たとえば、本開示の技法は、ITU−T H.264/AVCまたはその拡張に適用されてもよい。H.264/AVCでは、各インターマクロブロック(MB)は、1つの16×16MBパーティションと、2つの16×8MBパーティションと、2つの8×16MBパーティションと、4つの8×8MBパーティションとを含む、4つの異なる方法のうちの1つに区分され得る。1つのMB中の異なるMBパーティションは、予測方向ごとに異なる参照インデックス値(すなわち、RefPicList0またはRefPicList1)を有し得る。MBは、4つの8×8MBパーティションに区分されないとき、H.264ビデオコーディング規格に規定されているように、各方向においてMBパーティション全体について1つの動きベクトルしか有し得ない。
[0025]MBが4つの8×8ピクセルMBパーティションに区分されるとき、各8×8ピクセルMBパーティションは、サブブロックにさらに区分され得る。8×8ピクセルMBパーティションから、サブブロック、すなわち、1つの8×8ピクセルサブブロック、2つの8×4ピクセルサブブロック、2つの4×8ピクセルサブブロック、または4つの4×4サブブロックを得るための、4つの異なる方法がある。各サブブロックは、各方向に異なる動きベクトルを有し得る。8×8MBパーティションがどのようにサブブロックに区分されるかをサブブロックパーティションと言う。
[0026]現在、VCEGおよびMPEGのJoint Collaboration Team on 3D Video Coding(JCT−3V)は、H.264/AVCに基づく3DV規格、すなわち、3D−AVCを開発中である。3D−AVCでは、MVCにおけるビュー間予測の他に、新しいコーディングツールが含まれ、サポートされている。3D−AVCのための3D−ATMソフトウェアバージョン6.2は、以下のリンク:http://mpeg3dv.research.nokia.com/svn/mpeg3dv/tags/3DV−ATMv6.2からダウンロード可能である。現在、JCT−3VによってAVCベースの3Dビデオ(3D−AVC)コーディング規格が開発中であり、3D−AVCの一バージョンがM.M.Hannuksela、Y.Chen、T.Suzuki、J.−R.Ohm、G.J.Sullivan、「3D−AVC draft text 5」、JCT3V−C1002、ジュネーブ、スイス、2013年1月(http://phenix.it−sudparis.eu/jct2/doc_end_user/documents/3_Geneve/wg11/JCT3V−C1002−v3.zipにて入手可能)に記載されている。
[0027]3D−AVCは、ベースビューのテクスチャ部分がH.264/AVCデコーダによって完全に復号できるようにH.264/AVCに適合する。3D−AVCにおける拡張ビューコンポーネントでは、深度がテクスチャより前にコーディングされ得、テクスチャビューコンポーネントが、深度ビューコンポーネントからの情報に基づいてコーディングされ得、これは深度優先(depth-first)コーディングとも呼ばれる。対照的に、各テクスチャビューコンポーネントは、テクスチャ優先コーディング順においてそれぞれの深度ビューコンポーネントの前にコーディングされてもよい。
[0028]3D−AVCにおけるテクスチャビューコンポーネントおよび深度ビューコンポーネントのコーディング順序の例について以下に説明するが、ここにおいて、T0およびD0はそれぞれ、ベースビューのテクスチャビューコンポーネントと深度ビューコンポーネントとを指し、TiおよびDiはそれぞれ、i番目の従属ビューのテクスチャビューコンポーネントと深度ビューコンポーネントとを指す。これらの例では、3つのビュー(0、1および2)が考えられ、ビューコンポーネントは以下に示す順序で左から右にコーディングされると仮定する。
・ T0 D0 D1 D2 T1 T2−この例では、ベースビュー(T0およびD0)は、テクスチャ優先コーディング順序でコーディングされ、一方、依存ビューは、深度優先コーディング順序でコーディングされる。このハイブリッドコーディング順序は、3D−AVCの共通試験条件において使用される。
・ T0 D0 T1 D1 T2 D2−この例では、すべてのビューコンポーネントがテクスチャ優先コーディング順序によってコーディングされる。
[0029]ビュー間予測がTiに関して有効化される場合、ビューTiの参照テクスチャビューは、ビューTi内のピクチャの対応するビュー間参照ピクチャを含むビューとして定義されてもよく、対応する深度ビューは、参照テクスチャビューと同じビュー順序インデックスを有する参照深度ビューとして定義されてもよい。たとえば、Ti内のテクスチャピクチャがビューTk内の参照ピクチャに対して予測される場合、上記の例示的な定義に従って、Tkは参照テクスチャビューとラベル付けされ、Dkは参照深度ビューとラベル付けされる。
[0030]以下に、後方ビュー合成予測(BVSP)を実行することに関する技術について、たとえば、図4〜図7に関して説明する。概して、BVSPは、テクスチャピクチャ内の隣接ブロックから現在のブロックまでの視差ベクトルを導出することと、視差ベクトルを使用して深度ビュー内の深度ブロックを特定することと、視差ベクトルを使用して、現在のブロックの予測されるブロックを合成するのに使用すべき参照テクスチャ画像のピクセルを特定することとを含む。予測ブロックは、BVSP参照ブロックと呼ばれることもある。しかし、本開示では、3D−HEVCの現在の技法に従ってBVSPを実行するときに生じることがあるいくつかの問題を認識する。
[0031]本開示ではまず、BVSPモードによってコーディングされている予測ユニットがビュー間参照ピクチャから予測され、一方、参照インデックスが−1に設定されることを認識する。この構成は以下の問題を有し得る。
・ 3D−HEVCの構成は、参照インデックスのセマンティクスに関してHEVCと整合しない。参照インデックスが−1に等しい場合は一般に、イントラモード予測または非インター予測を示す。
・ いくつかのモジュールを修正することが必要になることがあり、イントラ/インターモードのチェックが呼び出されるときはいつでも、もう1つの条件、すなわち、BVSPモードフラグが1であるか否かがチェックされなければならない。
○ たとえば、デブロッキングフィルタ、時間的マージ候補、Do−NBDV(隣接ブロックベースの視差ベクトル導出)、および高度動きベクトル予測(AMVP)の構成を修正することが必要になることがある。
・ 16x16ユニットのBVSPモードフラグは、他の動き情報と一緒に復号済みピクチャバッファに記憶されなければならない。16x16ユニットのBVSPモードフラグは、時間的マージ候補導出プロセス中に使用されてもよい。
・ 動きパラメータの継承に関しては、まずコロケートされたテクスチャブロックから導出される候補が導出される。その後、コロケートされたテクスチャブロック内の候補がBVSPマージ候補であるかどうかのチェック。はいの場合、現在の深度ブロックに関して作成されたBVSPマージ候補を使用することによってこのブロックに関して動きパラメータ継承(MPI)が無効化される。この置き換えは複雑さを増大させ、コーディング損失を生じさせる。
・ 予測方向は、ソフトウェア内のBVSPブロックに関する双予測に設定され、一方、本明細書では単予測に設定される。
[0032]本開示では、上記の考えられる問題を解消しならびに/あるいは他の利点を導入することができる、3D−HEVCのBVSP技法に適用され得る様々な修正を提案する。本開示の技法は、BVSPが有効化されるときに3D−HEVCにおけるモジュールと基本HEVCモジュールを整合させることができる。
[0033]図1は、後方ビュー合成予測(BVSP)を使用してブロックをコーディングするための技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図である。図1に示されているように、システム10は、宛先デバイス14によって後で復号されるべき符号化されたビデオデータを与えるソースデバイス12を含む。特に、ソースデバイス12は、コンピュータ可読媒体16を介してビデオデータを宛先デバイス14に与える。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス12および宛先デバイス14はワイヤレス通信のために装備され得る。
[0034]宛先デバイス14は、コンピュータ可読媒体16を介して、復号されるべき符号化ビデオデータを受信し得る。コンピュータ可読媒体16は、符号化ビデオデータをソースデバイス12から宛先デバイス14に移動することが可能な、任意のタイプの媒体またはデバイスを備え得る。一例では、コンピュータ可読媒体16は、ソースデバイス12が符号化ビデオデータを宛先デバイス14にリアルタイムで直接送信することを可能にするための、通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信され得る。通信媒体は、無線周波数(RF)スペクトルまたは1つもしくは複数の物理伝送線路などの任意のワイヤレスまたは有線の通信媒体を備える場合がある。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどのパケットベースネットワークの一部を形成する場合がある。通信媒体は、ソースデバイス12から宛先デバイス14への通信を容易にするために有用であり得る、ルータ、スイッチ、基地局、または任意の他の機器を含む場合がある。
[0035]いくつかの例では、符号化されるデータは、出力インターフェース22から記憶デバイスへ出力され得る。同様に、符号化されるデータは、記憶デバイスから入力インターフェースによってアクセスされ得る。記憶デバイスは、ハードドライブ、ブルーレイ(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、揮発性もしくは不揮発性のメモリ、または符号化ビデオデータを記憶するための任意の他の適当なデジタル記憶媒体などの、様々な分散された、または局所的にアクセスされるデータ記憶媒体のうちの任意のものを含み得る。さらなる例では、記憶デバイスは、ソースデバイス12によって生成される符号化されたビデオを記憶し得る、ファイルサーバまたは別の中間的な記憶デバイスに相当し得る。宛先デバイス14は、記憶されているビデオデータに、記憶デバイスからストリーミングまたはダウンロードを介して、アクセスし得る。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイス14へ送信することができる、任意のタイプのサーバであり得る。例示的なファイルサーバは、ウェブサーバ(たとえば、ウェブサイトのための)、FTPサーバ、ネットワーク接続記憶(NAS)デバイス、または局所的なディスクドライブを含む。宛先デバイス14は、インターネット接続を含む任意の標準的なデータ接続を通じて、符号化ビデオデータにアクセスし得る。これは、ワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、有線の接続(たとえば、DSL、ケーブルモデムなど)、または、ファイルサーバに記憶されている符号化ビデオデータにアクセスするために適当な、それらの両方の組合せを含み得る。符号化ビデオデータの記憶デバイスからの伝送は、ストリーミング伝送、ダウンロード伝送、またはそれらの組合せであり得る。
[0036]本開示の技法は、ワイヤレスのアプリケーションまたはセッティングに、必ずしも限定されるとは限らない。技法は、無線によるテレビジョン放送、ケーブルテレビジョン伝送、衛星テレビジョン伝送、動的適応型HTTPストリーミング(DASH:dynamic adaptive streaming over HTTP)などのインターネットストリーミングビデオ伝送、データ記憶媒体へと符号化されるデジタルビデオ、データ記憶媒体のデジタルビデオの復号、または他の適用例などの、様々なマルチメディアの適用例のうちの任意のものを支援して、ビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオプレイバック、ビデオブロードキャスティングおよび/またはビデオ電話通信などの適用例をサポートするために、一方向または二方向のビデオ伝送をサポートするように構成され得る。
[0037]図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。本開示によれば、ソースデバイス12のビデオエンコーダ20は、後方ビュー合成予測(BVSP)を使用してブロックをコーディングするための技法を適用するように構成され得る。他の例では、ソースデバイスおよび宛先デバイスは、他の構成要素または構成を含んでもよい。たとえば、ソースデバイス12は、ビデオデータを外部のカメラなどの外部のビデオソース18から受信し得る。同様に、宛先デバイス14は、統合されたディスプレイデバイスを含むのではなく、外部のディスプレイデバイスとインターフェースしてもよい。
[0038]図1の例示されたシステム10は、単に一例である。後方ビュー合成予測(BVSP)を使用してブロックをコーディングするための技法は、任意のデジタルビデオ符号化および/または復号デバイスによって実行され得る。一般に、本開示の技法は、ビデオ符号化デバイスによって実行されるけれども、技法は、また、通常「コーデック」と呼ばれるビデオエンコーダ/デコーダによって実行され得る。その上、本開示の技法は、また、ビデオプリプロセッサによって実行されてもよい。ソースデバイス12および宛先デバイス14は、ソースデバイス12が、コーディングされたビデオデータを宛先デバイス14への伝送のためにその中で生成する、そのようなコーディングデバイスの単に例である。いくつかの例では、デバイス12、14は、デバイス12、14の各々がビデオ符号化と、復号構成要素とを含むように、実質的に対称的な方式で動作し得る。したがって、システム10は、たとえば、ビデオストリーミング、ビデオプレイバック、ビデオブロードキャスティング、またはビデオ電話通信のための、ビデオデバイス12と14との間での一方向または二方向のビデオ伝送をサポートし得る。
[0039]ソースデバイス12のビデオソース18は、ビデオカメラ、あらかじめ記録されたビデオを含むビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するためのビデオ供給インターフェースなどの、ビデオキャプチャデバイスを含み得る。さらなる代わりとして、ビデオソース18は、ソースビデオとしてコンピュータグラフィックスベースのデータ、または、ライブビデオ、アーカイブされたビデオ、およびコンピュータ生成のビデオの組合せを生成し得る。場合によっては、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラ付き携帯電話またはビデオ付き携帯電話を形成し得る。しかしながら、上で言及されたように、本開示で説明される技法は、一般にビデオコーディングに適用可能であり、ワイヤレスおよび/または有線の用途に適用され得る。各々の場合において、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータにより生成されたビデオは、ビデオエンコーダ20によって符号化され得る。次いで、符号化されたビデオ情報は、出力インターフェース22によってコンピュータ可読媒体16に出力され得る。
[0040]コンピュータ可読媒体16は、ワイヤレスブロードキャストまたは有線ネットワーク送信などの一時媒体、あるいはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、ブルーレイディスク、または他のコンピュータ可読媒体などの記憶媒体(すなわち、非一時的記憶媒体)を含み得る。いくつかの例では、ネットワークサーバ(図示されず)は、ソースデバイス12から符号化されたビデオデータを受信し、たとえば、ネットワーク送信を介して、その符号化されたビデオデータを宛先デバイス14に与え得る。同様に、ディスクスタンピング設備のような、媒体製造設備のコンピューティングデバイスは、ソースデバイス12から符号化されたビデオデータを受信し、その符号化されたビデオデータを含むディスクを生成し得る。したがって、様々な例では、コンピュータ可読媒体16は、様々な形態の1つまたは複数のコンピュータ可読媒体を含むと理解され得る。
[0041]宛先デバイス14の入力インターフェース28は、コンピュータ可読媒体16から情報を受信する。コンピュータ可読媒体16の情報は、ビデオエンコーダ20によって定義され、またビデオデコーダ30によって使用される、ブロックおよび他のコーディングされたユニット、たとえば、GOPの特性および/または処理を記述するシンタックス要素を含む、シンタックス情報を含み得る。ディスプレイデバイス32は、復号されたビデオデータをユーザに対して表示し、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスのような、様々なディスプレイデバイスのいずれかを備え得る。
[0042]ビデオエンコーダ20およびビデオデコーダ30は、現在開発中の高効率ビデオコーディング(HEVC)規格などの、ビデオコーディング規格に従って動作し得、HEVCテストモデル(HM)に準拠し得る。あるいは、ビデオエンコーダ20およびビデオデコーダ30は、あるいはMPEG−4、Part 10と呼ばれるITU−T H.264規格、アドバンストビデオコーディング(AVC)、またはそのような規格の拡張などの、他の独自の規格または業界規格に従って動作し得る。しかしながら、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオコーディング規格の他の例には、MPEG−2およびITU−T H.263が含まれる。図1には示されないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、それぞれオーディオエンコーダおよびオーディオデコーダと統合されてよく、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するための、適切なMUX−DEMUXユニット、または他のハードウェアとソフトウェアとを含み得る。適用可能な場合、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
[0043]ITU−T H.264/MPEG−4(AVC)規格は、Joint Video Team(JVT)として知られる共同パートナーシップの成果としてISO/IEC Moving Picture Experts Group(MPEG)とともにITU−T Video Coding Experts Group(VCEG)によって策定された。いくつかの態様では、本開示で説明する技法は、H.264規格に概して準拠するデバイスに適用され得る。H.264規格は、ITU−T Study Groupによる2005年3月付のITU−T勧告H.264「Advanced Video Coding for generic audiovisual services」に記載されており、本明細書ではH.264規格またはH.264仕様、あるいはH.264/AVC規格または仕様と呼ぶことがある。ジョイントビデオチーム(JVT)はH.264/MPEG−4 AVCへの拡張に取り組み続けている。
[0044]ビデオエンコーダ20およびビデオデコーダ30は各々、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなどの様々な適切なエンコーダ回路のいずれかとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、1つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実施し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれてよく、そのいずれも、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合されてよい。
[0045]JCT−VCは、HEVC規格の開発に取り組んでいる。HEVCの標準化の取組みは、HEVCテストモード(HM)と呼ばれるビデオコーディングデバイスの進化モデルに基づく。HMは、たとえば、ITU−T H.264/AVCに従う既存のデバイスに対して、ビデオコーディングデバイスのいくつかの付加された機能を想定する。たとえば、H.264は、9つのイントラ予測符号化モードを提供するが、HMは、33ものイントラ予測符号化モードを提供し得る。
[0046]一般に、HMの作業モデルは、ビデオフレームまたはピクチャが、ルーマサンプルとクロマサンプルの両方を含むツリーブロックまたは最大コーディングユニット(LCU)のシーケンスに分割され得ることを記載している。ビットストリーム内のシンタックスデータは、LCUにとってのサイズを定義し得、LCUは、ピクセルの数の点で最大のコーディングユニットである。スライスは、いくつかの連続したツリーブロックを、コーディングの順序で含む。ビデオフレームまたはピクチャは、1つまたは複数のスライスに区分され得る。各ツリーブロックは、4分木に従って、コーディングユニット(CU)に分割され得る。一般に、4分木データ構造は、CUあたり1つのノードを、ツリーブロックに対応するルートノードとともに含む。CUが4つのサブCUに分割される場合、CUに対応するノードは、4つのリーフノードを含み、その各々は、サブCUのうちの1つに対応する。
[0047]4分木データ構造の各ノードは、対応するCUにシンタックスデータを提供することができる。たとえば、4分木のノードは、そのノードに対応するCUがサブCUに分割されるかどうかを示す分割フラグを含み得る。CUのシンタックス要素は、再帰的に定義されてよく、CUがサブCUに分割されるかどうかに依存し得る。CUがこれ以上分割されない場合、そのCUはリーフCUと呼ばれる。本開示では、元のリーフCUの明示的な分割が存在しない場合でも、リーフCUの4つのサブCUもリーフCUと呼ばれるようになる。たとえば、16×16サイズのCUがさらに分割されない場合、この16×16CUが決して分割されなくても、4つの8×8サブCUもリーフCUと呼ばれるようになる。
[0048]CUは、CUがサイズ差異を有しないことを除いて、H.264規格のマクロブロックと同様の目的を有する。たとえば、ツリーブロックは、4つの子ノード(サブCUとも呼ばれる)に分割され得、各子ノードは、今度は親ノードとなり、別の4つの子ノードに分割され得る。4分木のリーフノードと呼ばれる、最後の分割されていない子ノードは、リーフCUとも呼ばれるコーディングノードを備える。コーディングされたビットストリームに関連するシンタックスデータは、最大CU深度と呼ばれる、ツリーブロックが分割され得る最大回数を定義し得、また、コーディングノードの最小サイズを定義し得る。それに応じて、ビットストリームは最小コーディングユニット(SCU:smallest coding unit)をも定義し得る。本開示では、HEVCのコンテキストにおけるCU、PU、もしくはTU、または他の規格のコンテキストにおける同様のデータ構造(たとえば、H.264/AVCにおけるマクロブロックおよびそれのサブブロック)のいずれかを指すために「ブロック」という用語を使用する。
[0049]CUは、コーディングノードと、コーディングノードに関連する予測ユニット(PU)および変換ユニット(TU)とを含む。CUのサイズは、コーディングノードのサイズに対応し、形状において正方形でなければならない。CUのサイズは、8×8ピクセルから、最大で64×64ピクセルまたはそれを越えるツリーブロックのサイズまで変動し得る。各CUは、1つまたは複数のPUと、1つまたは複数のTUとを含み得る。CUと関連したシンタックスデータは、たとえば、CUの1つまたは複数のPUへの区分を記述し得る。区分モードは、CUがスキップであるか、または、ダイレクトモードで符号化されるか、イントラ予測モードで符号化されるか、もしくはインター予測モードで符号化されるかの間で、異なり得る。PUは、形状において非正方形に区分されてもよい。CUと関連したシンタックスデータは、また、たとえば、CUの1つまたは複数のTUへの、4分木に従う区分を記述し得る。TUは、形状において正方形または非正方形(たとえば、長方形)であってもよい。
[0050]HEVC規格は、異なるCUに対して異なり得る、TUに従う変換を可能にする。TUは、通常、区分されたLCUのために定義された、所与のCU内のPUのサイズに基づいてサイズ変更されるが、これは常にそうであるとは限らない。TUは、通常、PUと同じサイズであるか、またはPUよりも小さい。いくつかの例では、CUに対応する残差サンプルは、「残差4分木」(RQT)と呼ばれる4分木構造を使用して、より小さいユニットにさらに分割され得る。RQTのリーフノードは変換ユニット(TU)と呼ばれることがある。TUに関連するピクセル差分値は、変換係数を生成するように変換されてよく、その変換係数は量子化され得る。
[0051]リーフCUは、1つまたは複数の予測ユニット(PU)を含み得る。一般に、PUは、対応するCUのすべてまたは一部分に対応する空間的なエリアを表現し、PUのための参照サンプルを取り出すためのデータを含み得る。その上、PUは、予測に関係するデータを含む。たとえば、PUがイントラモードで符号化される場合、PUに対するデータは、残差4分木(RQT)に含まれ得、残差4分木は、PUに対応するTUのためのイントラ予測モードを記述するデータを含み得る。別の例では、PUがインターモードで符号化される場合、PUは、PUに対する1つまたは複数の動きベクトルを定義するデータを含み得る。PUに対する動きベクトルを定義するデータは、たとえば、動きベクトルの水平の構成要素、動きベクトルの垂直の構成要素、動きベクトルのための解像度(たとえば、4分の1ピクセルの精度または8分の1ピクセルの精度)、動きベクトルが指し示す先の参照ピクチャ、および/または動きベクトルのための参照ピクチャリスト(たとえば、リスト0、リスト1、またはリストC)を記述し得る。
[0052]1つまたは複数のPUを有するリーフCUは、また、1つまたは複数の変換ユニット(TU)を含み得る。変換ユニットは、上述するように、RQT(TUの4分木構造とも呼ばれる)を使用して規定され得る。たとえば、分割フラグは、リーフCUが4つの変換ユニットに分割されるかどうかを、示し得る。次いで、各変換ユニットは、さらなるサブTUに、さらに分割され得る。TUがさらに分割されないとき、そのTUはリーフTUと呼ばれることがある。一般に、イントラコーディングの場合、リーフCUに属するすべてのリーフTUは同じイントラ予測モードを共有する。すなわち、一般に、リーフCUのすべてのTUの予測値を計算するために同じイントラ予測モードが適用される。イントラコーディングの場合、ビデオエンコーダは、イントラ予測モードを使用して各リーフTUの残差値を、TUに対応するCUの一部と元のブロックとの間の差分として計算し得る。TUは、必ずしもPUのサイズに制限されるとは限らない。したがって、TUはPUよりも大きくまたは小さくなり得る。イントラコーディングの場合、PUは、同じCUの対応するリーフTUとコロケートされ得る。いくつかの例では、リーフTUの最大サイズは、対応するリーフCUのサイズに該当する場合がある。
[0053]その上、リーフCUのTUはまた、残差4分木(RQT)と呼ばれる、それぞれの4分木データ構造に関連付けられ得る。すなわち、リーフCUは、リーフCUがどのようにTUに区分されるかを示す4分木を含み得る。TU4分木のルートノードは一般にリーフCUに対応し、CU4分木のルートノードは一般にツリーブロック(またはLCU)に対応する。分割されないRQTのTUはリーフTUと呼ばれる。一般に、本開示は、別段の注記がない限り、CUおよびTUという用語を、それぞれ、リーフCUおよびリーフTUを指すために使用する。
[0054]ビデオシーケンスは、通常、一連のビデオフレームまたはピクチャを含む。ピクチャグループ(GOP)は、一般に、ビデオピクチャのうちの一連の1つまたは複数を備える。GOPは、GOP中に含まれるいくつかのピクチャを記述するシンタックスデータを、GOPのヘッダ中、ピクチャのうちの1つもしくは複数のヘッダ中、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスのための符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ20は、通常、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロックに作用する。ビデオブロックは、CU内のコーディングノードに対応し得る。ビデオブロックは、固定のまたは変化するサイズを有し得、規定されたコーディング規格に従って、サイズは異なり得る。
[0055]例として、HMは、様々なPUサイズでの予測をサポートする。特定のCUのサイズが2N×2Nとすれば、HMは、2N×2NまたはN×NのPUサイズでのイントラ予測、および2N×2N、2N×N、N×2N、またはN×Nの対称なPUサイズでのインター予測をサポートする。HMは、また、2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズでのインター予測のための、非対称な区分をサポートする。非対称な区分では、CUの一方向は区分されず、他の方向は25%および75%に区分される。CUの25%パーティションに対応する部分は、「n」、ならびにそれに続く「Up」、「Down」、「Left」、または「Right」の表示によって示される。したがって、たとえば、「2N×nU」は、上部で2N×0.5NのPU、および下部で2N×1.5NのPUに水平に区分される2N×2NのCUを指す。
[0056]本開示では、「N×N」および「N by N」は、垂直および水平の寸法の観点からビデオブロックのピクセル寸法を指すために、たとえば、16×16ピクセルまたは16by16ピクセルのように、互換的に使用され得る。一般に、16×16ブロックは、垂直方向に16ピクセル(y=16)、および水平方向に16ピクセル(x=16)を有する。同様に、N×Nブロックは、一般に、垂直方向にNピクセル、および水平方向にNピクセルを有し、ここでNは、非負の整数値を表す。ブロックのピクセルは、行および列に配列され得る。さらに、ブロックは、必ずしも、水平方向において垂直方向と同じ数のピクセルを有する必要はない。たとえば、ブロックはN×Mピクセルを備えることもでき、ただし、Mは必ずしもNに等しいとは限らない。
[0057]CUのPUを使用するイントラ予測またはインター予測のコーディングの後で、ビデオエンコーダ20は、CUのTUに対する残差データを計算し得る。PUは、空間領域(ピクセル領域とも呼ばれる)での予測ピクセルデータを生成する方法、すなわちモードを記述するシンタックスデータを備え得、TUは、変換、たとえば、離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または残差ビデオデータへの概念的には類似の変換を適用した後の、変換領域での係数を備え得る。残差データは、符号化されていないピクチャのピクセルと、PUに対応する予測値との間のピクセル差分に対応し得る。ビデオエンコーダ20は、CUに対する残差データを含むTUを形成し、次いで、CUのための変換係数を生成するためにTUを変換し得る。
[0058]変換係数を生成するための任意の変換の後で、ビデオエンコーダ20は、変換係数の量子化を実行し得る。量子化は、一般に、係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を実現するプロセスを指す。量子化プロセスは、係数の一部または全部に関連付けられたビット深度を低減させることができる。たとえば、nビット値は量子化中にmビット値に切り捨てられ得るし、ここで、nはmよりも大きい。
[0059]量子化の後に、ビデオエンコーダは、変換係数を走査して、量子化変換係数を含む2次元行列から1次元ベクトルを生成し得る。走査は、より高いエネルギー(したがってより低い周波数)の係数をアレイの前方に配置し、より低いエネルギー(したがってより高い周波数)の係数をアレイの後方に配置するように設計され得る。いくつかの例では、ビデオエンコーダ20は、量子化変換係数を走査して、エントロピー符号化され得るシリアル化ベクトルを生成するために、あらかじめ定義された走査順序を利用し得る。他の例では、ビデオエンコーダ20は、適応走査を実行し得る。量子化変換係数を走査して1次元ベクトルを形成した後に、ビデオエンコーダ20は、たとえば、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC:syntax-based context-adaptive binary arithmetic coding)、確率間隔区分エントロピー(PIPE)コーディング、または別のエントロピー符号化方法に従って1次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ20は、また、ビデオデコーダ30によるビデオデータの復号での使用のために、符号化ビデオデータと関連したシンタックス要素をエントロピー符号化する。
[0060]CABACを実行するために、ビデオエンコーダ20は、コンテキストモデル内のコンテキストを、送信されるべきシンボルに割り当て得る。コンテキストは、たとえば、シンボルの隣接する値がゼロ以外であるか否かに関係し得る。CAVLCを実行するために、ビデオエンコーダ20は、送信されるべきシンボルに対する可変長符号を選択し得る。VLCの中の符号語は、比較的に短い符号が、より起こりそうなシンボルに対応し、より長い符号が、より起こりそうでないシンボルに対応するように、構築され得る。このようにして、VLCの使用により、たとえば、送信されるべき各シンボルに対して等長の符号語を使用することを越える、ビットの節約が達成され得る。起こりそうなことの決定は、シンボルに割り当てられたコンテキストに基づき得る。
[0061]本開示では、概して後方ビュー合成予測に関する技法について説明し、特に、上述の問題を解消するのに使用され得る技法について説明する。本開示では、マージ候補リストが作成された後に参照インデックスをビュー間参照ピクチャインデックスによって置き換えることによってBVSPモードの追加的なチェックを削除することを提案する。したがって、3D−HEVCのモジュール、たとえば、デブロッキングフィルタモジュール、時間的マージ候補モジュール、Do−NBDVモジュール、およびAMVPモジュールを変更する必要はなく、ビデオコーダ(たとえば、ビデオエンコーダ20および/またはビデオデコーダ30)は、ハードウェア実装形態の複雑さを軽減するためにBVSPモードフラグを復号済みピクチャバッファ(DPB)に記憶してもよい。
[0062]以下においてより詳細に説明するように、3D−HEVCでは、ブロックをコーディングするのに後方ビュー合成予測(BVSP)が使用されるとき、このブロックに関する動き情報は、−1に等しい参照インデックスを含む。しかし、本開示によれば、ビデオコーダ(ビデオエンコーダ20またはビデオデコーダ30など)は、BVSPを使用してブロックをコーディングしてもよく、ここにおいて、ブロックの参照インデックスは、ビュー合成予測が実行されるピクチャを指す。言い換えれば、本開示では、BVSPモードを使用してコーディングされたブロックが参照ピクチャリスト内のビュー間参照ピクチャの参照インデックスと等しい参照インデックスを有するように設定されることを提案し、ここにおいて、ビュー間参照ピクチャは、ビュー合成が実行されるピクチャである。
[0063]このようにして、BVSPコーディング済みブロックは、多くの場合、通常のインター予測ブロックと透過的に見なされ得る。たとえば、AMVPでは、動きベクトル予測子候補を作成するために隣接ブロック(空間的隣接ブロックを含む)にアクセスする際、BVSPコーディング済みブロックと通常のインター予測ブロックの両方に関する異なる論理関数を有するのではなく、HEVCと同様に、1つの関数がBVSPコーディング済みブロックとインター予測ブロックの両方に使用されてよい。同様に、時間的動きベクトル予測(TMVP)では、BVSPコーディング済みブロックと通常のインターコーディング済みブロックが1つの関数において一緒に対処されてもよい。さらに、BVSP変数が復号済みピクチャバッファ内に記憶される必要はない。さらに、デブロッキングにおいて、BVSPに対処するために3D−HEVCに追加された追加的な論理が削除されてもよい。さらに、NBDVでは、BVSPコーディング済みブロックであり視差動き補償ブロックである隣接ブロックは同じであると見なされ、したがって、隣接ブロックごとのBVSP変数の追加的なチェックは必要とされない。このようにして、これらの技法を実施すると、たとえば3D−HEVCに準拠したコーデックが、これらの技法によって修正されたときに、コーデックの複雑さを軽減することができる。
[0064]本開示では、BVSPを使用してコーディングされたブロックの参照インデックスの設定に関する追加的な技法について説明する。特に、本開示では、BVSPを使用してコーディングされたブロックの参照インデックスの設定が、マージ候補リストが作成され、BVSP候補がmerge_idxによって挿入および/または選択された直後に行われる技法について説明する。代替的に、BVSPマージ候補が選択されると、ビデオコーダ(ビデオエンコーダ20またはビデオデコーダ30など)は、BVSPマージ候補を直ちに、参照インデックスが、ビュー合成が実行されるビュー間参照ピクチャの参照インデックスに設定される候補に変換してもよい。
[0065]いくつかの例では、BVSPブロックは依然としてBVSP変数によって特定されてもよい。しかし、スライス全体についてそのように変数にメモリストレージが割り振られてもよいが、BVSP用の3D−HEVCの技法とは異なり、メモリが復号済みピクチャバッファDPBにおいて割り振られる必要はない。
[0066]さらに、または代替として、コロケートされたブロックがBVSPによってコーディングされているかどうかにかかわらず動きパラメータ継承(MPI)が有効化されてもよい。したがって、BVSP変数のストレージは、スライスがコーディングされた後必要とされない。したがって、BVSP変数をメモリ内に保持する代わりに、ビデオエンコーダ20およびビデオデコーダ30は、深度ビューコンポーネントがコーディングされるまで、BVSPコーディング済みブロックを含むスライスがコーディングされた後BVSP変数を破棄してもよい。
[0067]さらに、BVSPマージ候補は、空間的隣接ブロックがBVSPによってコーディングされているかどうかにかかわらず、常に相対的に固定された位置に付加されてもよい。このようにして、(場合によってはスライスバッファまたはラインバッファへの)BVSP変数の記憶は必要とされない。すなわち、ビデオエンコーダ20およびビデオデコーダ30がBVSP変数を記憶する必要はない。いくつかの例では、ビデオエンコーダ20およびビデオコーダ30は、BVSP候補を常にマージ候補リスト内の第1の順序位置に挿入するように構成されてもよい。いくつかの例では、ビデオエンコーダ20およびビデオコーダ30は、BVSP候補をマージ候補リスト内のすべての空間的マージ候補の後に挿入するように構成されてもよい。いくつかの例では、ビデオエンコーダ20およびビデオコーダ30は、BVSP候補をマージ候補リストの任意の(所定の)位置に挿入するように構成されてもよい。
[0068]このようにして、ビデオエンコーダ20およびビデオデコーダ30は、たとえば、3D−HEVCに従って、マルチビュービデオデータのブロックに関する動き情報をコーディングする(たとえば、ビデオエンコーダ20によって符号化するかまたはビデオデコーダ30によって復号する)ことと、ここにおいて、動き情報は、後方ワーピングビュー合成予測(BVSP)のソースを備える参照ピクチャを特定する参照インデックスを含む、BVSP参照ブロックを生成するために参照ピクチャの一部に対してBVSPを実行することと、BVSP参照ブロックを使用してブロックを予測することとを行うように構成されたビデオコーダの例を表す。
[0069]特に、上記で説明したように、ビデオエンコーダ20およびビデオデコーダ30は、マルチビュービデオデータのブロックに関する動き情報をコーディングするように構成されてもよい。動き情報は、動きパラメータ(参照ピクチャリスト識別子など)の中でも特に参照インデックスを含んでもよい。参照インデックスは、BVSPコーディング済みブロック用の3D−HEVCに記載されているような−1の値ではなく、参照ピクチャリスト内の参照ピクチャを特定する値を有してもよい。しかし、ビデオエンコーダ20およびビデオデコーダ30は、ブロックを参照インデックスによって特定される参照ピクチャから予測するのではなく、BVSP参照ブロックを生成するために参照ピクチャの一部に対してBVSPを実行するように構成されてもよい。すなわち、ビデオエンコーダ20およびビデオデコーダ30は、参照ピクチャリスト内の参照インデックスによって特定される参照ピクチャから、BVSPを使用してブロックの予測ブロックを合成してもよい。予測ブロックは、BVSP参照ブロックと呼ばれることもある。
[0070]ビデオエンコーダ20およびビデオデコーダ30は、(予測ブロックとして働く)BVSP参照ブロックを使用してブロックをコーディングしてもよい。たとえば、ビデオエンコーダ20は、残差ブロックを形成するためにブロックと予測ブロックとの間のピクセルごとの差分を計算してもよい。ビデオデコーダ30は、ビットストリームデータをエントロピー復号し、次いでこのデータを逆量子化し逆変換することによって残差ブロックを再構成し、次にブロックを再生成するためにピクセルごとに予測ブロックを残差ブロックに付加してもよい。
[0071]BVSP参照ブロックを合成するためにBVSPを実行する際、BVSP参照ブロックが、コーディングされているブロックを含む現在のビューならびにBVSP参照ブロックが合成される参照ピクチャを含むビューとは異なるビューに存在すると見なされることを理解されたい。たとえば、現在のブロックがビュー2に存在すると仮定した場合、参照ピクチャはビュー0に存在し得、BVSP参照ブロックはビュー1に合成されてもよい。
[0072]さらに、ブロックがBVSPを使用してコーディングされた後、ブロックの動き情報が動きベクトル予測子として使用されてもよい。たとえば、ビデオエンコーダ20およびビデオデコーダ30は、(たとえば、高度動きベクトル予測(AMVP)のために)第1の動きベクトル予測子候補として、BVSPを使用してコーディングされた隣接ブロックにアクセスするように構成されてもよい。ビデオエンコーダ20およびビデオデコーダ30は、AMVP候補にアクセスするための特定の論理関数を有するように構成されてもよい。ビデオエンコーダ20およびビデオデコーダ30は、BVSP候補用に1つおよび非BVSP候補用に1つの2つの異なる論理関数を含むのではなく、同じ論理関数を使用してBVSP候補と非BVSP候補の両方にアクセスしてもよい。したがって、ビデオエンコーダ20およびビデオデコーダ30は、異なるAMVP候補としての非BVSPコーディング済みブロックにアクセスするのに使用されるのと同じ論理関数を使用してAMVP候補としてのBVSPコーディング済みブロックにアクセスしてもよい。
[0073]同様に、BVSPコーディング済みブロックに関する動き情報は、時間的動きベクトル予測(TMVP)の候補としてアクセスされてもよい。ビデオエンコーダ20およびビデオデコーダ30は、BVSPコーディング済みブロックの動き情報を使用して現在のブロックに関する動き情報をコーディングする際、ビュー間予測ブロックに関する動き情報にアクセスするのにも使用される関数を使用してBVSPコーディング済みブロックの動き情報にアクセスしてもよい。言い換えれば、ビュー間予測ブロックに関する動き情報(たとえば、視差動きベクトル)にアクセスするのに使用されるのと同じ関数が、BVSPコーディング済みブロックに関する動き情報にアクセスするのに使用されてもよい。
[0074]さらに、ビデオエンコーダ20およびビデオデコーダ30は、マージモードを使用して現在のブロックの動き情報をコーディングする際にBVSPコーディング済みブロックの動き情報を使用してもよい。ビデオエンコーダ20およびビデオデコーダ30は、いくつかの例においては、マージモードを使用して動き情報をコーディングするために、BVSP候補を含めてもよい、空間的隣接ブロックおよび/または時間隣接ブロックを含む隣接ブロックに関する動き情報を含むマージ候補リストを作成し得る。ビデオエンコーダ20および/またはビデオデコーダ30がマージ候補リストからBVSP候補を選択すると、ビデオコーダは、(後で参照インデックスを設定するまで待つのではなく)直ちにマージモードにおけるBVSP候補を使用して動き情報がコーディングされているブロックの参照インデックスの値を設定してもよい。追加または代替として、ビデオコーダは、BVSP候補の参照インデックスを、BVSPコーディング済みブロックの予測ブロックが合成された参照ピクチャを指すように設定してもよい。予測ブロックは、BVSP参照ブロックと呼ばれることもある。
[0075]ビデオエンコーダ20およびビデオデコーダ30は、このようにして、または他の技法を使用して、BVSPコーディング済みブロックが復号済みピクチャバッファ(DPB)においてBVSPを使用してコーディングされたことを示す変数を記憶するのを回避することができる。同様に、ビデオエンコーダ20およびビデオデコーダ30は、以後のスライスをコーディングする前にBVSPコーディング済みブロックを含むスライスをコーディングした後BVSP変数を破棄してもよい。ビデオエンコーダ20およびビデオデコーダ30は、(別のピクチャおよび/または別のビュー内の)コロケートされたブロックをDVSPコーディング済みブロックにコーディングする際に動きパラメータ継承を有効化してもよい。
[0076]上述のように、ビデオエンコーダ20およびビデオデコーダ30は、BVSPコーディング済みブロックに関する動き情報をマージ候補リスト(またはAMVPに関する候補リスト)に付加してもよい。ビデオエンコーダ20およびビデオデコーダ30は、そのような候補リスト、すなわち、候補としてのBVSPコーディング済みブロックに関する動き情報を含めるべき候補リストを作成する際、その候補をマージ候補リスト内の所定の位置に付加してもよい。所定の位置は、そのような候補が候補リストに付加される場合に、その位置がBVSPコーディング済みブロックの動き情報に使用されるという意味で、あらかじめ決定されてもよい。所定の位置は、たとえば、リスト内の第1の順序位置、すべての空間的候補の位置の後続の位置などに相当してもよい。概して、ビデオエンコーダ20およびビデオデコーダ30は、ビデオエンコーダ20とビデオデコーダ30の両方において所定の位置が同じになるように構成されてもよい。
[0077]上述の技法を実施するために、たとえば、(3D−HEVCに関するワーキングドラフトテキストである)JCT3V−C1005に記載されているように3D−HEVCにいくつかの修正が施されてもよい。本開示によるJCT3V−C1005の追加事項は、ital<<イタリック体の>>italテキストを使用して強調されており(本願の英文明細書において、イタリック体で記載されているところは、“ital<<…>>ital”で囲ってあります。)、一方、本開示において削除することを提案しているJCT3V−C1005の部分は括弧が付されて強調され先頭に「削除」が示されている。見出し、節、サブクローズなどは、別段に規定されていない限りJCT3V−C1005の各部を指す。楕円形は、本明細書では再生成されないJCT3V−C1005のテキストを表す。
H.8.5.2.1 動きベクトルコンポーネントおよび参照インデックスの導出プロセス
このプロセスへの入力は以下の通りである。
...
このプロセスの出力は以下の通りである。
...
以下のことが適用される。
− PredMode[xC][yC]がMODE_SKIPと等しい場合、サブクローズH.8.5.2.1.1に規定されたようなマージモードに関するルーマ動きベクトルの導出プロセスは、ルーマロケーション(xC,yC)、ルーマロケーション(xP,yP)、変数nCS、nPbW、nPbH、およびパーティションインデックスpartIdxを入力として呼び出され、出力は、ルーマ動きベクトルmvL0、mvL1、参照インデックスrefIdxL0、refIdxL1、予測リスト利用フラグpredFlagL0およびpredFlagL1、視差ベクトル可用性フラグivpMvFlagL0およびivpMvFlagL1、視差ベクトルivpMvDispL0およびivpMvDispL1、フラグvspModeFlag、変数refViewIdx、ならびにフラグavailableFlagvMCである。
...
ital<<vspModeFlagが1に等しいとき、refIdxL0は、RefPicListX[0]が長期参照ピクチャであるときに0に設定され、RefPicListX[0]が短期参照ピクチャであるときにAltRefIdxLxに設定される。>>ital
ChromaArrayTypeが0に等しくなく、predFlagLX(Xが0または1のいずれかである)が1に等しいとき、サブクローズital<<8.5.2.1.8>>italにおけるクロマ動きベクトルの導出プロセスはmvLXおよびrefIdxLXを入力として呼び出され、出力はmvCLXである。
H.8.5.4 視差ベクトルの導出プロセス
このプロセスへの入力は以下の通りである。
− ...
このプロセスの出力は以下の通りである。
...
9. 各Xが0〜1である場合、以下のことが適用される。
− availableDVが0に等しく、availableNが1に等しく、PredFlagLX[xN][yN]が1に等しいとき、以下のことが適用される。
− RefIdxLX[xN][yN]が0以上である場合、以下のことが適用される。
− RefPicListX[RefIdxLX[xN][yN]]がビュー間参照ピクチャである場合、以下のことが適用される。
− それ以外の場合(RefPicListX[RefIdxLX[xN][yN]]がビュー間参照ピクチャではない場合)、以下のことが適用される。
− availableIvpMvSearchFlagNが1に等しく、PredMode[xN][yN]がMODE_SKIPに等しく、IvpMvFlagLX[xN][yN]が1に等しいとき、以下のことが適用される。
− [削除:「それ以外の場合(RefIdxLX[xN][yN]が0よりも小さい)、以下のことが適用される。
− VspModeFlag[xN][yN]が1に等しい場合、以下のことが適用される。
[Ed.(GT):ソフトウェアにおいてrefViewIdxが0に等しく設定される。(#19)]」]
H.8.5.2.1.1 マージモードに関するルーマ動きベクトルの導出プロセス
このプロセスは、PredMode[xC][yC]がMODE_SKIPに等しいかまたはPredMode[xC][yC]がMODE_INTERに等しく、マージ_フラグ[xP][yP]が1に等しいときにのみ呼び出され、ここにおいて、(xP,yP)は現在のピクチャの左上ルーマサンプルに対する現在のルーマ予測ブロックの左上サンプルを指定する。
このプロセスの入力は以下の通りである。
...
このプロセスの出力は以下の通りである。
...
変数singleMCLFlagは次のように導出される。
− log2_parallel_merge_level_minus2が0よりも大きくnCSが8に等しい場合、singleMCLFlagが1に設定される。
− それ以外の場合、singleMCLFlagは0に設定される。
...
9. マージ候補リスト、mergeCandListは、以下の順次ステップによって明示されるように作成される。
a.変数numMergeCandは、0に等しく設定される。
b.変数vspCandInListFlagは、0に等しく設定される。
c.[削除:「availableFlagTが1に等しいとき、サブクローズH.8.5.2.1.1.1に明示されたような場合によってはビュー合成予測される隣接からの候補の挿入プロセスは、リストmergeCandList、変数numMergeCand、変数vspCandInListFlag、Tに等しい候補位置インジケータN、ルーマロケーション(xP,yP)、ならびに変数nPbWおよびnPbHを入力として呼び出され、出力はリストmergeCandList、変数numMergeCand、およびフラグvspCandInListFlagである。」]
...
13. 変数vspModeFlagは(mergeCandList[merge_idx[xP][yP]]==VSP)に等しく設定される。
[削除:「[Ed.(GT):ソフトウェアにおいて、VspModeFlag[x][y]はいくつかの場所(デブロッキングフィルタ、AMVP)において使用され、このことはドラフトには反映されていない。]」]
[0078]ビデオエンコーダ20およびビデオデコーダ30は各々、適用可能なとき、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、離散論理回路、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなどの、様々な好適なエンコーダまたはデコーダ回路のいずれかとして実装され得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダに含まれてよく、そのいずれもが複合ビデオエンコーダ/デコーダ(コーデック)の一部として統合されてよい。ビデオエンコーダ20および/またはビデオデコーダ30を含むデバイスは、集積回路、マイクロプロセッサ、および/または携帯電話のようなワイヤレス通信デバイスを備え得る。
[0079]図2は、後方ビュー合成予測(BVSP)を使用してブロックをコーディングするための技法を実施し得るビデオエンコーダ20の一例を示すブロック図である。ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングおよびインターコーディングを実行してよい。イントラコーディングは、空間的予測に依存して所与のビデオフレームまたはピクチャ内のビデオの空間的冗長性を低減させるかまたは除去する。インターコーディングは、ビデオシーケンスの隣接するフレーム内またはピクチャ内のビデオの、時間的な冗長性を低減または除去するために、時間的予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベースのコーディングモードのうちの任意のモードを指し得る。一方向予測(Pモード)または双方向予測(Bモード)などのインターモードは、いくつかの時間ベースのコーディングモードのうちの任意のモードを指し得る。
[0080]図2に示されたように、ビデオエンコーダ20は、符号化されるべきビデオフレーム内の現在のビデオブロックを受信する。図2の例では、ビデオエンコーダ20は、モード選択ユニット40と、参照ピクチャメモリ64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。モード選択ユニット40は、動き補償ユニット44と、動き推定ユニット42と、イントラ予測ユニット46と、分割ユニット48とを含む。ビデオブロックの再構築のために、ビデオエンコーダ20は、また、逆量子化ユニット58と、逆変換ユニット60と、加算器62とを含む。デブロッキングフィルタ(図2に示さず)も、ブロック境界をフィルタして、再構築されたビデオからブロッキネスアーティファクトを除去するために、含まれ得る。所望であれば、デブロッキングフィルタは、通常、加算器62の出力をフィルタするはずである。さらなるフィルタ(インループまたはポストループ)も、デブロッキングフィルタに加えて使用され得る。そのようなフィルタは、簡約のために図示されないが、所望であれば、加算器50の出力を(インループフィルタとして)フィルタし得る。
[0081]符号化プロセス中に、ビデオエンコーダ20は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは、複数のビデオブロックに分割され得る。動き推定ユニット42および動き補償ユニット44は、時間的予測をもたらすために、1つまたは複数の参照フレームの中の1つまたは複数のブロックに対して受信されたビデオブロックのインター予測のコーディングを実行する。イントラ予測ユニット46は、あるいは、空間的予測をもたらすために、コーディングされるべきブロックと同じフレームまたはスライスの中の、1つまたは複数の隣接ブロックに対して受信されたビデオブロックのイントラ予測のコーディングを実行し得る。ビデオエンコーダ20は、たとえば、ビデオデータの各ブロックに対する適切なコーディングモードを選択するために、多数のコーディングパスを実行し得る。
[0082]その上、分割ユニット48は、前のコーディングパスでの前の区分化方式の評価に基づいて、ビデオデータのブロックを、サブブロックに区分し得る。たとえば、分割ユニット48は、最初は、レートひずみ分析(たとえば、レートひずみ最適化)に基づいて、フレームまたはスライスをLCUに区分し、LCUの各々をサブCUに区分し得る。モード選択ユニット40は、さらにLCUのサブCUへの区分を示す4分木データ構造を生成し得る。4分木のリーフノードCUは、1つまたは複数のPUと、1つまたは複数のTUとを含み得る。
[0083]モード選択ユニット40は、たとえば、エラー結果に基づいて、コーディングモードのうちの1つ、イントラまたはインターを選択し、得られたイントラまたはインターコード化ブロックを、残差ブロックデータを生成するために加算器50に提供し、参照フレームとして使用するためのコーディングされたブロックを再構築するために加算器62に提供し得る。モード選択ユニット40はまた、動きベクトル、イントラモードインジケータ、パーティション情報、および他のそのようなシンタックス情報などのシンタックス要素をエントロピー符号化ユニット56に与える。
[0084]動き推定ユニット42と動き補償ユニット44とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定ユニット42によって実施される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、現在のフレーム内でコーディングされている現在のブロック(または、他のコーディングユニット)に対する、参照フレーム内の予測ブロック(または、他のコーディングユニット)に対する、現在のビデオフレーム内またはピクチャ内のビデオブロックのPUの変位を示し得る。予測ブロックは、ピクセル差分の観点で、コーディングされるべきブロックと密に適合すると見出されたブロックであり、ピクセル差分は、絶対値差分の合計(SAD)、二乗差分の合計(SSD)、または他の差分の測定規準によって決定され得る。いくつかの例では、ビデオエンコーダ20は、参照ピクチャメモリ64に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。たとえば、ビデオエンコーダ20は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット42は、フルピクセル位置と分数ピクセル位置とに関して動き探索を実行し、分数ピクセル精度で動きベクトルを出力し得る。
[0085]動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライス中のビデオブロックのPUのための動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択され得、それらの参照ピクチャリストの各々は、参照ピクチャメモリ64に記憶された1つまたは複数の参照ピクチャを識別する。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送る。
[0086]動き補償ユニット44によって実行される動き補償は、動き推定ユニット42によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成することに関与し得る。この場合も、いくつかの例では、動き推定ユニット42と動き補償ユニット44とは機能的に統合され得る。現在のビデオブロックのPUのための動きベクトルを受信すると、動き補償ユニット44は、動きベクトルが参照ピクチャリストのうちの1つにおいて指し示す予測ブロックの位置を特定し得る。加算器50は、以下で説明するように、コーディングされている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。概して、動き推定ユニット42はルーマ成分に対して動き推定を実施し、動き補償ユニット44は、クロマ成分とルーマ成分の両方のためにルーマ成分に基づいて計算された動きベクトルを使用する。モード選択ユニット40はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30が使用するためのビデオブロックとビデオスライスとに関連するシンタックス要素を生成し得る。
[0087]本開示の技法によれば、動き補償ユニット44は、たとえば、BVSPを使用して、合成されたピクチャからブロックを予測してもよい。たとえば、モード選択ユニット40は、少なくとも、現在のブロックが予測され得る参照ピクチャの部分を合成するには、別のビューの参照ピクチャを使用すべきであると決定してもよい。動き補償ユニット44またはビデオエンコーダ20の別の要素(たとえば、図2には示されていない合成ユニット)は、参照ピクチャメモリ64に記憶されたピクチャから参照ピクチャの一部を合成してもよい。合成ユニットが存在するときは、モード選択ユニット40またはビデオエンコーダ20の別の要素に含められてもよい。
[0088]ビデオエンコーダ20は、本開示の技法に従って、あるブロックに関して、このブロックに関する動き情報の参照インデックスに関する値をピクチャに対応する値に設定することによって、参照ピクチャの上記の部分が合成されるピクチャをシグナリングしてもよい。すなわち、参照インデックスは、参照ピクチャの上記の部分が合成されるピクチャを、そのピクチャを含む参照ピクチャリストにおけるインデックスが参照ピクチャリスト内のそのピクチャに対応するようにこのインデックスとして特定してもよい。
[0089]したがって、動き補償ユニット44は、現在のビュー内の現在のブロックに関する後方ビュー合成予測を実行してもよい。すなわち、動き補償ユニット44は、第1のビューにおける参照ピクチャメモリ64のピクチャを決定してもよい。以下に図7に関してより詳細に説明するように、動き補償ユニット44は、現在のブロックの隣接ブロックおよび隣接ブロックの視差ベクトルを決定してもよい。動き補償ユニット44は次いで、現在のビュー内の現在のブロックに対する、視差ベクトルによって特定される第1のビュー内の深度マップの深度ブロックを決定してもよい。
[0090]次いで、動き補償ユニット44は、深度ブロックの深度値を使用して、予測ブロックが第1のビューおよび現在のビューとは異なる第2のビューに形成されるように、現在のブロック内のピクセルの位置に対して決定される、第1のビュー内のピクチャのピクセル値をワーピングしてもよい。動き補償ユニット44は、この予測ブロックを、それぞれ、残差を算出する際と、現在のブロックを再生成する際に使用できるように加算器50および加算器62に供給してもよい。同様に、本開示の技法によれば、ビデオエンコーダ20は、動き情報が、予測ブロック(すなわち、BVSP参照ブロック)が合成される第1のビュー内のピクチャを識別する値を有する参照インデックスを含むように、現在のブロックに関する動き情報を定義するシンタックスデータを符号化してもよい。
[0091]さらに、参照インデックスは、参照ピクチャメモリ64内のブロックに関する他のシンタックス要素と一緒に記憶されてもよい。参照ピクチャメモリ64は、復号済みピクチャバッファ(DPB)の一例である。実際の参照ピクチャを特定する値を有するブロックの参照インデックスが記憶されるので、高度動きベクトル予測(AMVP)、時間的動きベクトル予測(TMVP)、および/またはマージモードに従ってその後のブロックの動き情報をコーディングする際にブロックの動き情報が使用されてもよい。さらに、ビデオエンコーダ20が参照ピクチャメモリ64内のBVSPコーディング済みブロックの動き情報にアクセスするための追加的な論理関数を実装する必要はない。その代わり、ビデオエンコーダ20は、非BVSPコーディング済みブロックと同じ論理関数を使用してBVSPコーディング済みブロックの動き情報にアクセスしてもよい。同様に、ビデオエンコーダ20は、BVSPコーディング済みブロックとコロケートされた(ただし、それぞれに異なるビューまたはそれぞれに異なるピクチャにおいてコロケートされた)ブロックに関して動きパラメータ継承(MPI)を有効化してもよい。
[0092]上述のように、BVSPコーディング済みブロックの参照インデックスは、DPB、たとえば、参照ピクチャメモリ64に記憶されてもよい。しかし、ビデオエンコーダ20は、参照ピクチャメモリ64にBVSP変数を記憶するのを回避するように構成されてもよい。BVSP変数は、符号化されている現在のブロックがBVSPを使用して符号化されていることを示す状態変数として働いてもよい。しかし、BVSP変数が参照ピクチャメモリ64に記憶される必要はなく、したがって、BVSP変数用のメモリが参照ピクチャメモリ64において割り振られる必要はない。
[0093]イントラ予測ユニット46は、上記で説明したように、動き推定ユニット42と動き補償ユニット44とによって実施されるインター予測の代替として、現在ブロックをイントラ予測し得る。特に、イントラ予測ユニット46は、現在ブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測ユニット46は、たとえば、別個の符号化パス中に様々なイントラ予測モードを使用して現在のブロックを符号化し得、イントラ予測ユニット46(または、いくつかの例では、モード選択ユニット40)は、使用するために適切なイントラ予測モードを、テストされたモードから選択し得る。
[0094]たとえば、イントラ予測ユニット46は、様々なテストされたイントラ予測モードに対して、レートひずみ分析を使用してレートひずみの値を計算し、テストされたモードの中から最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、概して、符号化されたブロックと、符号化されたブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ(または誤差)の量、ならびに符号化されたブロックを生成するために使用されるビットレート(すなわち、ビット数)を決定する。イントラ予測ユニット46は、どのイントラ予測モードがブロックについて最良のレートひずみ値を呈するかを決定するために、様々な符号化されたブロックのひずみおよびレートから比を計算し得る。
[0095]ブロックに対するイントラ予測モードを選択した後、イントラ予測ユニット46は、ブロックに対して選択されたイントラ予測モードを示す情報を、エントロピー符号化ユニット56に提供し得る。エントロピー符号化ユニット56は、選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ20は、送信されるビットストリームの中に構成データを含み得、構成データは、コンテキストの各々のために使用する、複数のイントラ予測モードのインデックステーブルおよび複数の修正されたイントラ予測モードのインデックステーブル(符号語マッピングテーブルとも呼ばれる)、様々なブロックに対する符号化コンテキストの定義、ならびに、最も起こりそうなイントラ予測モードの表示、イントラ予測モードのインデックステーブル、および修正されたイントラ予測モードのインデックステーブルを含み得る。
[0096]ビデオエンコーダ20は、モード選択ユニット40からの予測データを、コーディングされている元のビデオブロックから減算することによって、残差ビデオブロックを形成する。加算器50は、この減算操作を実行する1つの構成要素または複数の構成要素を表現する。変換処理ユニット52は、離散コサイン変換(DCT)または概念的には類似の変換などの変換を残差ブロックに適用し、残差変換係数の値を備えるビデオブロックを生成する。変換処理ユニット52は、概念的にはDCTに類似の他の変換を実行し得る。ウェーブレット変換、整数変換、サブバンド変換または他のタイプ変換も使用され得る。いかなる場合でも、変換処理ユニット52は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、ピクセル値領域からの残差情報を、周波数領域などの変換領域に転換し得る。変換処理ユニット52は、得られた変換係数を量子化ユニット54へ送り得る。量子化ユニット54は、ビットレートをさらに低減するために、変換係数を量子化する。量子化プロセスは、係数の一部またはすべてと関連付けられるビット深度を減らすことができる。量子化の程度は、量子化パラメータを調整することによって、修正され得る。いくつかの例では、量子化ユニット54は、次いで、量子化された変換係数を含む行列の走査を実行することができる。代替的に、エントロピー符号化ユニット56がスキャンを実行してよい。
[0097]量子化の後、エントロピー符号化ユニット56は、量子化された変換係数をエントロピーコーディングする。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディングまたは別のエントロピーコーディング技法を実行することができる。コンテキストベースのエントロピーコーディングの場合、コンテキストは、隣接ブロックに基づいてよい。エントロピー符号化ユニット56によるエントロピーコーディングの後で、符号化ビットストリームは、別のデバイス(たとえば、ビデオデコーダ30)へ送信され得、あるいは後から伝送または取り出すために、保管され得る。
[0098]逆量子化ユニット58および逆変換ユニット60は、たとえば、参照ブロックとして後で使用できるように、ピクセル領域で残差ブロックを再構築するために、それぞれ、逆量子化と、逆変換とを適用する。動き補償ユニット44は、残差ブロックを参照ピクチャメモリ64のフレームのうちの1つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット44はまた、再構成された残差ブロックに1つまたは複数の補間フィルタを適用して、動き推定において使用するためのサブ整数ピクセル値を計算し得る。加算器62は、再構成された残差ブロックを、動き補償ユニット44によって生成された動き補償予測ブロックに加算して、参照ピクチャメモリ64に記憶するための再構成されたビデオブロックを生成する。再構築されたビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするために動き推定ユニット42および動き補償ユニット44によって参照ブロックとして使用され得る。
[0099]このようにして、図2のビデオエンコーダ20は、たとえば、3D−HEVCに従って、マルチビュービデオデータのブロックに関する動き情報を符号化することと、ここにおいて、動き情報は、後方ワーピングビュー合成予測(BVSP)のソースを備える参照ピクチャを特定する参照インデックスを含む、BVSP参照ブロックを生成するために参照ピクチャの一部に対してBVSPを実行することと、BVSP参照ブロックを使用してブロックを予測することとを行うように構成されたビデオエンコーダの例を表す。
[0100]図3は、後方ビュー合成予測(BVSP)を使用してブロックを復号するための技法を実施し得るビデオエンコーダ30の一例を示すブロック図である。図3の例では、ビデオデコーダ30は、エントロピー復号ユニット70と、動き補償ユニット72と、イントラ予測ユニット74と、逆量子化ユニット76と、逆変換ユニット78と、参照ピクチャメモリ82と、加算器80とを含む。ビデオデコーダ30は、いくつかの例では、ビデオエンコーダ20(図2)に関して記載される符号化パスに対して概ね相反の復号パスを実行し得る。動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルに基づいて、予測データを生成し得、イントラ予測ユニット74は、エントロピー復号ユニット70から受信されたイントラ予測モードインジケータに基づいて、予測データを生成し得る。
[0101]復号プロセス中に、ビデオデコーダ30は、符号化されたビデオスライスのビデオブロックおよび関連するシンタックス要素を表現する符号化されたビデオビットストリームを、ビデオエンコーダ20から受信する。ビデオデコーダ30のエントロピー復号ユニット70は、量子化係数、動きベクトルまたはイントラ予測モードインジケータ、および他のシンタックス要素を生成するために、ビットストリームをエントロピー復号する。エントロピー復号ユニット70は、動きベクトルと、他のシンタックス要素とを、動き補償ユニット72へ転送する。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルでのシンタックス要素を受信し得る。
[0102]ビデオスライスが、イントラコード化(I)スライスとしてコーディングされているとき、イントラ予測ユニット74は、現在のフレームまたはピクチャの以前に復号されたブロックから、信号で伝えられたイントラ予測モードおよびデータに基づいて、現在のビデオスライスのビデオブロックに対する予測データを生成し得る。ビデオフレームがインターコード化(すなわち、B、P、またはGPB)スライスとしてコーディングされているとき、動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルと他のシンタックス要素とに基づいて、現在ビデオスライスのビデオブロック用の予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つから生成される場合がある。ビデオデコーダ30は、参照ピクチャメモリ82に記憶された参照ピクチャに基づいて、デフォルトの構築技法を使用して、参照フレームリスト、すなわち、リスト0とリスト1とを構築することができる。
[0103]動き補償ユニット72は、動きベクトルと他のシンタックス要素とを解析することによって、現在ビデオスライスのビデオブロックについての予測情報を決定し、復号されている現在のビデオブロック用の予測ブロックを生成するために、予測情報を使用する。たとえば、動き補償ユニット72は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラ予測またはインター予測)と、インター予測スライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)と、スライス用の参照ピクチャリストのうちの1つまたは複数についての構築情報と、スライスのインター符号化ビデオブロックごとの動きベクトルと、スライスのインターコード化ビデオブロックごとのインター予測ステータスと、現在ビデオスライス内のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のうちのいくつかを使用する。
[0104]動き補償ユニット72はまた、補間フィルタに基づいて補間を実行することができる。動き補償ユニット72は、参照ブロックのサブ整数ピクセルについての補間された値を計算するために、ビデオブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用することができる。この場合、動き補償ユニット72は、受信されたシンタックス要素からビデオエンコーダ20によって使用された補間フィルタを決定し、予測ブロックを生成するためにその補間フィルタを使用することができる。
[0105]本開示の技法によれば、動き補償ユニット72は、たとえば、BVSPを使用して、合成されたピクチャからブロックを予測してもよい。たとえば、エントロピー復号ユニット70は、ブロックがBVSPを使用してコーディングされていることを示すブロックに関するシンタックスデータをエントロピー復号し、この復号済みシンタックスデータを動き補償ユニット72に送る。それに応答して、モード選択ユニット72は、少なくとも、ブロックが予測される参照ピクチャの部分を合成するには、別のビューの参照ピクチャを使用すべきであると決定してもよい。動き補償ユニット72またはビデオエンコーダ30の別の要素(たとえば、図3には示されていない合成ユニット)は、参照ピクチャメモリ82に記憶されたピクチャから参照ピクチャの一部を合成してもよい。合成ユニットが存在するときは、動き補償ユニット72またはビデオエンコーダ30の別の要素に含められてもよい。
[0106]ビデオエンコーダ30は、本開示の技法に従って、あるブロックに関して、このブロックに関する動き情報の参照インデックスに関する値からピクチャに対応する値に参照ピクチャの上記の部分が合成されるピクチャを決定してもよい。すなわち、参照インデックスは、参照ピクチャの上記の部分が合成されるピクチャを、そのピクチャを含む参照ピクチャリストにおけるインデックスが参照ピクチャリスト内のそのピクチャに対応するようにこのインデックスとして特定してもよい。エントロピー復号ユニット70は、参照ブロック(すなわち、予測ブロック)を合成するための(復号済みピクチャバッファ(DPB)として働く)参照ピクチャメモリ82内の参照ピクチャを特定するために動き補償ユニット72が使用することができる参照インデックスを決定するためにブロックの動き情報に関するシンタックス要素を復号してもよい。
[0107]したがって、動き補償ユニット72は、現在のビュー内の現在のブロックに関する後方ビュー合成予測を実行してもよい。すなわち、動き補償ユニット72は、第1のビューにおける参照ピクチャメモリ82のピクチャを決定してもよい。以下に図7に関してより詳細に説明するように、動き補償ユニット72は、現在のブロックの隣接ブロックおよび隣接ブロックの視差ベクトルを決定してもよい。動き補償ユニット72は次いで、現在のビュー内の現在のブロックに対する、視差ベクトルによって特定される第1のビュー内の深度マップの深度ブロックを決定してもよい。
[0108]次いで、動き補償ユニット72は、深度ブロックの深度値を使用して、予測ブロック(すなわち、BVSP参照ブロック)が第1のビューおよび現在のビューとは異なる第2のビューに形成されるように、現在のブロック内のピクセルの位置に対して決定される、第1のビュー内のピクチャのピクセル値をワーピングしてもよい。動き補償ユニット72は、この予測ブロックを、それぞれ、残差を算出する際と、現在のブロックを再生成する際に使用できるように加算器50および加算器80に供給してもよい。同様に、本開示の技法によれば、ビデオエンコーダ30は、動き情報が、予測ブロックが合成される第1のビュー内のピクチャを識別する値を有する参照インデックスを含むように、現在のブロックに関する動き情報を定義するシンタックスデータを符号化してもよい。
[0109]さらに、参照インデックスは、参照ピクチャメモリ82内のブロックに関する他のシンタックス要素と一緒に記憶されてもよい。参照ピクチャメモリ82は、復号済みピクチャバッファ(DPB)の一例である。実際の参照ピクチャを特定する値を有するブロックの参照インデックスが記憶されるので、高度動きベクトル予測(AMVP)、時間的動きベクトル予測(TMVP)、および/またはマージモードに従ってその後のブロックの動き情報をコーディングする際にブロックの動き情報が使用されてもよい。さらに、ビデオエンコーダ30が参照ピクチャメモリ82内のBVSPコーディング済みブロックの動き情報にアクセスするための追加的な論理関数を実装する必要はない。その代わり、ビデオエンコーダ30は、非BVSPコーディング済みブロックと同じ論理関数を使用してBVSPコーディング済みブロックの動き情報にアクセスしてもよい。同様に、ビデオエンコーダ30は、BVSPコーディング済みブロックとコロケートされた(ただし、それぞれに異なるビューまたはそれぞれに異なるピクチャにおいてコロケートされた)ブロックに関して動きパラメータ継承(MPI)を有効化してもよい。
[0110]上述のように、BVSPコーディング済みブロックの参照インデックスは、DPB、たとえば、参照ピクチャメモリ82に記憶されてもよい。しかし、ビデオエンコーダ30は、参照ピクチャメモリ82にBVSP変数を記憶するのを回避するように構成されてもよい。BVSP変数は、復号されている現在のブロックがBVSPを使用して復号されていることを示す状態変数として働いてもよい。しかし、BVSP変数が参照ピクチャメモリ82に記憶される必要はなく、したがって、BVSP変数用のメモリが参照ピクチャメモリ82において割り振られる必要はない。
[0111]逆量子化ユニット76は、ビットストリーム内で供給され、エントロピー復号ユニット70によって復号された量子化変換係数を逆量子化(inverse quantize)、すなわち逆量子化(de-quantize)する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中のビデオブロックごとにビデオエンコーダ30によって計算される量子化パラメータQPYの使用を含み得る。
[0112]逆変換ユニット78は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
[0113]動き補償ユニット72が、動きベクトルと他のシンタックス要素とに基づいて現在のビデオブロック用の予測ブロックを生成した後、ビデオデコーダ30は、逆変換ユニット78からの残差ブロックを動き補償ユニット72によって生成された対応する予測ブロックと加算することによって、復号ビデオブロックを形成する。加算器80は、この加算演算を実行する1つまたは複数のコンポーネントを表す。必要に応じて、ブロッキネスアーティファクトを除去するために復号されたブロックをフィルタ処理するデブロッキングフィルタも適用され得る。ピクセル遷移を平滑化するために、または別様にビデオ品質を改善するために、他のループフィルタも(コーディングループ中またはコーディングループ後のいずれかで)使用され得る。所与のフレームまたはピクチャ内の復号ビデオブロックは、次いで、その後の動き補償のために使用される参照ピクチャを記憶する参照ピクチャメモリ82に記憶される。参照ピクチャメモリ82はまた、図1のディスプレイデバイス32などのディスプレイデバイス上での後の提示のために、復号ビデオを記憶する。
[0114]このようにして、図3のビデオエンコーダ30は、たとえば、3D−HEVCに従って、マルチビュービデオデータのブロックに関する動き情報を復号することと、ここにおいて、動き情報は、後方ワーピングビュー合成予測(BVSP)のソースを備える参照ピクチャを特定する参照インデックスを含む、BVSP参照ブロックを生成するために参照ピクチャの一部に対してBVSPを実行することと、BVSP参照ブロックを使用してブロックを予測することとを行うように構成されたビデオデコーダの例を表す。
[0115]図4は、例示的なマルチビュービデオコーディング(MVC)構造を示す概念図である。MVCは、H.264/AVCの拡張である。同様の概念がHEVCおよびその拡張、たとえば、マルチビュービデオコーディング拡張機能に適用されてもよいことを理解されたい。図4の例は、ビュー内のピクチャ間予測とビュー間予測の両方を示す。図4の例では、(ビューID「S0」〜「S7」を有する)8つのビューが示され、各ビューについて12個の時間ロケーション(「T0」〜「T11」)が示されている。すなわち、図4中の各行はビューに対応し、各列は時間ロケーションを示す。
[0116]MVCはH.264/AVCデコーダによって復号可能であるいわゆるベースビューを有し、ステレオビューペアはMVCによってサポートされ得るが、MVCの1つの利点は、MVCが、3Dビデオ入力として3つ以上のビューを使用し複数のビューによって表されるこの3Dビデオを復号する例を、サポートできることである。MVCデコーダを有するクライアントのレンダラ(renderer)は、複数のビューをもつ3Dビデオコンテンツを予想し得る。
[0117]典型的なMVCの復号順序の構成は、時間優先コーディングと呼ばれる。アクセスユニットは、1つの出力時間インスタンスのためのすべてのビューのコード化ピクチャを含み得る。たとえば、時間T0のピクチャの各々は、共通のアクセスユニットに含まれ得るが、時間T1のピクチャの各々は、第2の共通のアクセスユニットに含まれ得る、など。復号順序は、出力順序または表示順序と必ずしも同一とは限らない。
[0118]図4中のフレーム、すなわちピクチャは、対応するフレームがイントラコーディングされている(すなわち、Iフレームである)のか、一方向に(すなわち、Pフレームとして)インターコーディングされているのか、複数の方向に(すなわち、Bフレームとして)インターコーディングされているのかを指定する、文字を含む影付きブロックを使用して、図4中の各行と各列との交差部において示されている。一般に、予測は矢印によって示され、ここで矢印の終点のフレームは、予測参照のために矢印の始点のオブジェクトを使用する。たとえば、時間ロケーションT0にあるビューS2のPフレームは、時間ロケーションT0にあるビューS0のIフレームから予測される。
[0119]シングルビュービデオ符号化の場合と同様に、マルチビュービデオコーディングビデオシーケンスのフレームは、異なる時間ロケーションにおけるフレームに関して予測符号化され得る。たとえば、時間ロケーションT1におけるビューS0のbフレームは、時間ロケーションT0におけるビューS0のIフレームからそのbフレームに向けられた矢印を有し、その矢印は、bフレームがIフレームから予測されることを示す。しかしながら、さらに、マルチビュービデオ符号化のコンテキストにおいて、フレームは、ビュー間予測され得る。すなわち、ビューコンポーネントは、参照用に他のビュー内のビューコンポーネントを使用することができる。MVCでは、たとえば、別のビュー中のビューコンポーネントがインター予測参照であるかのように、ビュー間予測が実現される。潜在的なビュー間参照は、シーケンスパラメータセット(SPS)MVC拡張においてシグナリングされ、インター予測またはビュー間予測参照のフレキシブルな順序付けを可能にする参照ピクチャリスト構成プロセスによって変更され得る。
[0120]H.264/AVCのMVC拡張では、一例として、ビュー間予測は視差動き補償によってサポートされ、視差動き補償は、H.264/AVC動き補償のシンタックスを使用するが、異なるビュー中のピクチャが参照ピクチャとして使用されることが可能になる。MVCによって2つのビューのコーディングがサポートされ得、それは、一般に、立体視ビューと呼ばれる。MVCの利点のうちの1つは、MVCエンコーダが3Dビデオ入力として3つ以上のビューをとらえることができ、また、MVCデコーダがそのようなマルチビュー表現を復号することができることである。したがって、MVCデコーダをもつレンダリングデバイスは、3つ以上のビューをもつ3Dビデオコンテンツを予想し得る。
[0121]MVCでは、ビュー間予測(IVP)は、ビュー間の相関を除去するために同じアクセスユニット(すなわち、同じ時間インスタンスを有するアクセスユニット)の異なるビューにおいて取り込まれたピクチャ間で行われる。アクセスユニットは、概して、共通の時間インスタンスのためのすべてのビューコンポーネント(たとえば、すべてのNALユニット)を含むデータのユニットである。したがって、MVCでは、同じアクセスユニット中のピクチャ間でビュー間予測が許可される。非ベースビューの1つの中のピクチャをコーディングするとき、ピクチャが異なるビュー中にあるが同じ時間インスタンス内にある(たとえば、同じPOC値を有し、したがって同じアクセスユニットの中にある)場合、そのピクチャは参照ピクチャリストに追加され得る。参照ピクチャリストにピクチャを追加すると、そのピクチャを参照した他の非ベースビューピクチャのビュー間予測が可能になる。ビュー間予測の参照ピクチャは、任意のインター予測の参照ピクチャと同様に、参照ピクチャリストの任意の位置に置かれ得る。
[0122]マルチビュービデオコーディングのコンテキストでは、2種類の動きベクトルが存在する。動きベクトルの1つの種類は、時間的参照ピクチャを指し示す通常の動きベクトルであり、対応する時間的インター予測は動き補償予測(MCP)である。他の種類の動きベクトルは、異なるビュー内のピクチャ(すなわち、ビュー間参照ピクチャ)を指し示す視差動きベクトルであり、対応するインター予測は視差補償予測(DCP)である。
[0123]動きベクトルは、様々な動きベクトルコーディング方式を使用してコーディングされてもよい。1つの動きベクトルコーディング方式は時間的動きベクトル予測(TMVP)である。TMVPは、HEVCのコーディング効率を向上させるために使用されてよい。TMVPを使用するビデオコーダ(たとえば、ビデオエンコーダ20またはビデオデコーダ30)は、たとえば参照ピクチャリストにおける復号済みピクチャバッファ内のフレーム(またはピクチャ)の動きベクトルにアクセスしてもよい。
[0124]TMVPの可用性はコーディング済みビデオシーケンスに関してシグナリングされてもよい。たとえば、シーケンスパラメータセット(SPS)は、値が1であるsps_temporal_mvp_enable_flagシンタックス要素を含んでもよい。さらに、シーケンス内のスライスに関してTMVPが有効化されているかどうかを示すためにslice_temporal_mvp_enable_flagの値がスライスのスライスヘッダにおいてシグナリングされてもよい。
[0125]現在のスライスに関してTMVPが有効化されているとき、現在のピクチャがBスライスである場合、コロケートされたピクチャがRefPicList0のピクチャであるかRefPicList1のピクチャであるかを示すために、collocated_from_l0_flagがスライスヘッダにおいてシグナリングされ得る。参照ピクチャリストが特定された後、スライスヘッダにおいてシグナリングされるcollocated_ref_idxが、参照ピクチャリスト内のピクチャにおけるピクチャを識別するために使用され得る。次いで、コロケートされたPUが、コロケートされたピクチャをチェックすることによって特定され得る。このPUを包含するCUの右下のPUの動き、またはこのPUを包含するCUの中心PU内の右下のPUの動きのいずれかが、使用され得る。
[0126]上記で説明したように、各ブロック(たとえば、マクロブロックおよび/またはCU/PU/TU)は、様々なサブブロックに、それぞれに異なるパーティションモードに従って区分されてもよい。part_modeが現在のブロック(たとえば、現在のCU)の区分モードを指定するものとする。いくつかの例では、part_modeの値は、ブロック(たとえば、CU)に関して次のように(たとえば、HEVCに従って)制限されてもよい。
・ 1つのCUのコーディングモードがMODE_INTRAに等しい場合、part_modeは0または1に等しいものとする。
・ その他の場合(1つのCUのコーディングモードがMODE_INTERに等しい)、以下のことが適用される:
○ 現在のCUのサイズが最小のCUのサイズよりも大きく、非対称的動き区分が有効化されている場合、part_modeは、両端値を含む0〜2の範囲、または両端値を含む4〜7の範囲であるものとする。言い換えれば、part_modeが、両端値を含むが3の値を除く0〜7の範囲になるように、3の値は使用不能である。
○ その他の場合、現在のCUのサイズが最小のCUのサイズよりも大きく、非対称的動き区分が無効化されている場合には、part_modeは、両端値を含む0〜2の範囲であるものとする。
○ その他の場合、現在のCUのサイズが8に等しい場合には、part_modeの値は、両端値を含む0〜2の範囲であるものとする。
○ その他の場合(現在のCUのサイズが8よりも大きい場合)、part_modeの値は、両端値を含む0〜3の範囲であるものとする。
[0127]そのような例では、part_modeと変数PartModeの関連する値との間の関係は、以下の表1に従って定義されてもよい。part_modeが存在しないとき、現在のCUのパーティションモードはPART_2Nx2Nに等しいと推定されてよい。
[0128]本開示の技法によれば、ビデオエンコーダ20またはビデオデコーダ30などのビデオコーダは、現在のブロックの予測ブロック(すなわち、BVSP参照ブロック)を参照ピクチャから合成するように構成されてもよい。さらに、現在のブロックは、現在のビュー内のピクチャの一部であってもよく、参照ピクチャは現在のビューとは異なる第1のビュー内のピクチャであってもよく、予測ブロックは、現在のビューと第1のビューのどちらとも異なる第2のビューにおいて合成されてもよい。たとえば、現在のブロックは、ビューS1のピクチャ内に存在してもよく、参照ブロックは、ビューS0のピクチャ内に存在してもよく、予測ブロックはビューS2に対応してもよい。そのような場合、ビューS2がコーディングされビットストリームにおいて送信されることは実際には行われないことがあり、その代わり、ビューS2は合成ビューを表してもよい。本開示の技法によれば、現在のブロックは、ビューS2内のピクチャを特定する参照インデックスを含んでもよく、現在のブロックは、BVSPを使用してコーディングされてもよい。
[0129]図5は、後方ワーピングに基づくブロックベースのビュー合成予測の概念図である。ビュー間予測は、視差動きベクトルを使用して実行されてもよい。視差動きベクトルは概して、視差動きベクトルがビュー間参照ピクチャを指すことを除いて、時間的動きベクトルと同様である。いくつかの例では、ビュー間参照ピクチャは、コーディングされている現在のピクチャと同じアクセスユニットに存在する。
[0130]視差ベクトルをどのように導出するかは、各低レベルコーディングツールに応じて異なることがあるが、一般に、深度優先コーディング順序に起因して、テクスチャビューコンポーネントコーディングには依存ビューの深度データが使用される。3D−AVCにおけるインループブロックベースのビュー合成ビュー間予測および深度ベースの動きベクトル予測(D−MVP)は、主として、従属フレーム内の深度マップの深度値から変換される視差ベクトルを使用する低レベルコーディングツールである。3D−AVCソフトウェアでは、一般に、実際の深度マップ値から特定のビューに対する視差への変換プロセスの結果が、カメラパラメータとともにルックアップテーブルに記憶される。
[0131]ブロックベースのビュー合成予測は最初に、http://phenix.it−sudparis.eu/jct2/doc_end_user/documents/1_Stockholm/wg11/JCT3V−A0107−v1.zipにて入手可能なJCT3V−A0107において提案された。図5において、Dは深度を表し、Tはテクスチャを表し、数字がDまたはTの後に続きビューを表す。たとえば、T0はビュー0のテクスチャ部分を表し、T1はビュー1のテクスチャ部分を表し、D1はビュー1の深度部分を表す。以下のコーディング順序、T0、D0、D1、T1が利用されると仮定する。この例では、テクスチャコンポーネントT0はベースビューであり、T1は、VSPによってコーディングされた従属ビューである。さらに、この例では、深度マップコンポーネントD0およびD1は、T0およびT1に関連付けられたそれぞれの深度マップである。深度マップコンポーネントD0は、図5の例には示されていない。
[0132]従属ビューT1では、現在コーディングされているブロック(Cb)のサンプル値が、ベースビューT0のサンプル値を含む参照エリアR(Cb)から予測される。コーディングされたサンプルと参照サンプルとの間の変位ベクトルは、現在コーディングされているテクスチャサンプルに関連付けられた深度マップ値からのT1とT0との間の導出された視差ベクトルとして示される。
[0133]深度値(たとえば、ブロックd(Cb)における視差値)から視差ベクトルに変換するプロセスは、たとえば以下の式を用いて実行され得る。
[0134]上記の数式(1)および(2)において、jおよびiは、Cb内のローカル空間座標であり、d()は、ビュー#1の深度マップ画像における深度マップ値であり、Zは、実際の深度値であり、Dは、特定のビュー#0の導出された視差ベクトルの水平コンポーネントである。パラメータf、b、ZnearおよびZfarは、カメラセットアップを指定するパラメータであり、すなわち、使用される焦点距離(f)、ビュー#1とビュー#0との間のカメラ分離(b)、および、深度マップ変換のパラメータを表す深度範囲(Znear、Zfar)である。人間の視覚系では、左右の目が同じ高さに位置付けされるので、導出された視差ベクトルの垂直コンポーネントはゼロに等しく設定される。
[0135]現行の3DV−ATM実装形態などのいくつかの例では、数式(1)および(2)は、あらゆる深度マップ値(0...255)について事前計算されてもよく、ルックアップテーブルとして記憶されてもよい。
[0136]3D−AVCでは、あるブロック(たとえば、MBまたはサブMB)がBVSPを使用してコーディングされているかどうかを示すために、MB−レベルにおける1つのフラグが、現在のMBが従来のスキップ/直接モードでコーディングされているか、それともスキップ/直接モードでコーディングされているが合成参照コンポーネントから予測されるかをシグナリングするために使用される。MBパーティション(16×16から8×8まで)ごとに、各参照ピクチャリスト内の参照インデックスが、参照ピクチャをシグナリングするために使用される。パーティションがBVSPモードを使用してコーディングされているとき、BVSPコーディング済みブロックに関して動きベクトルがコーディングされていないので、動きベクトル差分はシグナリングされない。
[0137]さらに3D−AVCでは、フラグまたは参照インデックスのいずれかが合成参照コンポーネントを示すとき、以下の項目において説明するような1つのパーティションの予測が呼び出される。サイズがN×Mによって示される(NまたはMは、8または16であってもよい)各MBパーティションについて、そのパーティションがBVSPモードによってコーディングされている場合、現在のMBパーティションは、サイズがK×K(Kは、4、2、または1であってもよい)に等しいいくつかの下位領域にさらに区分される。下位領域ごとに、別個の視差動きベクトルが導出され、各下位領域が、ビュー間参照ピクチャ中の導出された視差ベクトルによって位置を特定される1つのブロックから予測され、すなわち、図5におけるR(cb)である。共通試験条件において、Kは4であると定義される。そのような予測方法では、動きベクトル差分はシグナリングされない(その理由は、その代わりに、視差動きベクトルが深度ビューコンポーネントの対応する深度値から導出されることである)。さらに、各パーティションについて、参照ピクチャリストごとに複数の動きベクトルが適用されてもよい。したがって、導出された動きベクトルはより厳密である。
[0138]3D−AVCでは、深度優先コーディング順序が適用されるとき、各下位領域の視差動きベクトルは、図5に示されるように、対応する非ベース深度ビュー中の対応する深度ブロックの深度値を変換することによって取得され得る。対応する1つの深度ブロック中の4隅ピクセルの最大値が、視差動きベクトルの水平コンポーネントに変換されるのに使用されてもよい。視差ベクトルの垂直コンポーネントは、0に設定される。
[0139]図6は、現在のブロックおよび5つの空間的隣接ブロックを示す概念図である。空間的隣接ブロックはA0、A1、B0、B1、およびB2とラベル付けされている。ブロックA0は左下隣接ブロックを表し、ブロックA1は左隣接ブロックを表し、ブロックB0は右上隣接ブロックを表し、ブロックB1は上隣接ブロックを表し、ブロックB2は左上隣接ブロックを表す。
[0140]現在、VCEGおよびMPEGのJoint Collaboration Team on 3D Video Coding(JCT−3C)は、HEVCに基づいて3DV規格を開発中であり、そのための規格化の取組みの一部は、HEVCに基づくマルチビュービデオコーデック(MV−HEVC)と、HEVCに基づく3Dビデオコーディング(3D−HEVC)のための別の部分との規格化を含む。3D−HEVCでは、コーディングユニット/予測ユニットレベルのコーディングツールを含む新たなコーディングツールが、テクスチャと深度ビューの両方に関して含められ、サポートされ得る。3D−HEVCに関する3D−HEVCソフトウェアバージョン6.0が次のリンク:https://hevc.hhi.fraunhofer.de/svn/svn_3DVCSoftware/tags/HTM−6.0/からダウンロードされ得る。
[0141]参照ソフトウェアの説明ならびに3D−HEVCのワーキングドラフトは、Gerhard Tech、Krzysztof Wegner、Ying Chen、Sehoon Yea、「3D−HEVC Test Model Description draft 2」、JCT3V−B1005、ITU−T SG16 WP3とISO/IEC JTC 1/SC 29/WG11とのJoint Collaborative Team on 3D Video Coding Extension Development、第2回会合:上海、中国、2012年10月(http://phenix.it−sudparis.eu/jct2/doc_end_user/current_document.php?id=460にて入手可能)に提供されている。3D−HEVCの参照ソフトウェア説明の別のバージョンが、http://phenix.it−sudparis.eu/jct2/doc_end_user/current_document.php?id=706にて入手可能である。
[0142]隣接ブロックベースの視差ベクトル導出(NBDV)は、すべてのビューにテクスチャ優先コーディング順序を使用する3D−HEVCにおける視差ベクトル導出方法として使用されてもよい。現行の3D−HEVC構成では、NBDVから導出された視差ベクトルは、参照ビューの深度マップから深度データを取り出すことによってさらに改善されてもよい。NBDVでは、視差ベクトル(DV)は、2つのビューの間の変位の推定量として使われる。隣接ブロックは、ビデオコーディングにおいてほぼ同じ動き/視差情報を共有するので、現在のブロックは、良い予測子として、隣接ブロック中の動きベクトル情報を使用することができる。この考えに従って、NBDVでは、異なるビューにおける視差ベクトルを推定するために隣接視差情報を使用する。
[0143]いくつかの空間的隣接ブロックおよび時間的隣接ブロックが最初に定義される。次いで、隣接ブロックの各々が、現在のブロックと候補ブロックとの間の相関の優先度によって決定された、あらかじめ定義された順序でチェックされる。候補において視差動きベクトル(すなわち、ビュー間参照ピクチャを指し示す動きベクトル)が見つけられると、視差動きベクトルが視差ベクトルに変換される。2組の隣接ブロックが利用される。一方の組は、空間的隣接ブロックから得られた組であり、他方の組は、時間的隣接ブロックから得られた組である。
[0144]3D−HEVCでは、JCT3V−A0097、3D−CE5.h:Disparity vector generation results、L.Zhang、Y.Chen、M.Karczewicz(Qualcomm)において提案された隣接ブロック(ベース)視差ベクトル(NBDV)方法を、最初に採用した。暗黙的視差ベクトル(implicit disparity vector)は、JCTVC−A0126、3D−CE5.h:Simplification of disparity vector derivation for HEVC−based 3D video coding、J.Sung、M.Koo、S.Yea(LG)に簡略化されたNBDVとともに含められた。それに加えて、関連するJCT3V−B0047、3D−CE5.h:Improvements for disparity vector derivation、J.Kang、Y.Chen、L.Zhang、M.Karczewicz(Qualcomm)では、復号済みピクチャバッファに記憶される暗黙的視差ベクトルを削除することによってNBDVがさらに簡略化されるだけでなく、RAPピクチャ選択によりコーディング利得も改善される。
[0145](本開示の時点で)現在のNBDVでは、視差ベクトル導出に5つの空間的隣接ブロックが使用される。この隣接ブロックは、図6においてA0、A1、B0、B1、またはB2によって示されているように現在のブロック(たとえば、現在の予測ユニット(PU))の左下隣接ブロック、左隣接ブロック、右上隣接ブロック、上隣接ブロック、および左上隣接ブロックである。これらの隣接ブロックが、HEVCにおけるマージモードにおいて使用される隣接ブロックと同じであることに留意されたい。したがって、追加のメモリアクセスが必要とされない。
[0146]時間的隣接ブロックをチェックするために、ビデオコーダは、最初に、候補ピクチャリストの作成プロセスを実行し得る。現在のビューから2つまでの参照ピクチャが、候補ピクチャとして扱われ得る。ビデオコーダは、最初に、コロケートされた参照ピクチャを候補ピクチャリストに挿入し、続いて、候補ピクチャの残りを、参照インデックスの昇順で挿入してもよい。両方の参照ピクチャリスト内の同じ参照インデックスを有する参照ピクチャが利用可能であるとき、コロケートされたピクチャの同じ参照ピクチャリスト内の一方が、他方よりも前に位置してもよい。候補ピクチャリスト中の候補ピクチャごとに、時間的隣接ブロックを導出するために3つの候補領域が決定され得る。
[0147]ブロックがビュー間動き予測を用いてコーディングされているとき、異なるビュー内の対応するブロックを選択するために視差ベクトルが導出されてもよい。暗黙的視差ベクトル(IDV、また導出された視差ベクトルとも呼ばれる)は、ビュー間動き予測において導出された視差ベクトルを指す。ブロックが動き予測を用いてコーディングされるとしても、導出された視差ベクトルが後続のブロックをコーディングする目的で破棄されることはない。
[0148]3D−HTM 6.0の現在の構成では、ビデオコーダは、NBDVプロセスに従って、時間的隣接ブロックにおける視差動きベクトル、空間的隣接ブロックにおける視差動きベクトル、次にIDVを順番にチェックする。視差動きベクトルまたはIDVが見つけられると、プロセスは終了させられる。
[0149]ビデオコーダは、深度情報にアクセスすることによって、NBDVを使用して導出された視差ベクトルをさらに改善してもよい。NBDVプロセスから1つの視差ベクトルが導出されると、ビデオコーダは、参照ビューの深度マップから深度データを取り出すことによって視差ベクトルをさらに改善してもよい。改善プロセスは、以下の2つのステップを含んでよい。
a)ベースビューなどのあらかじめコーディングされた参照深度ビュー内の導出された視差ベクトルによって対応する深度ブロックの位置を特定するステップ。対応する深度ブロックのサイズは現在のPUのサイズと同じである。
b)対応する深度ブロック中の4隅ピクセルから1つの深度値を選択し、深度値を改善された視差ベクトルの水平コンポーネントに変換するステップ。視差ベクトルの垂直コンポーネントは変更されない。
[0150]ビデオコーダは、改善された視差ベクトルをビュー間動き予測に使用してもよく、一方、改善されない視差ベクトルはビュー間残差予測に使用される。さらに、改善された視差ベクトルは、後方VSPモードによってコーディングされている場合1つのPUの動きベクトルとして記憶されてもよい。
[0151]本開示の技法によれば、空間的隣接ブロックのうちの1つがBVSPコーディング済みブロックに対応してもよく、空間的隣接ブロックのうちの別の1つが非BVSPコーディング済みブロックに対応してもよい。たとえば、ブロックA1がBVSPコーディング済みブロックに対応し、ブロックB1が非BVSPコーディング済みブロックに対応してもよい。それにもかかわらず、ビデオコーダは、現在のブロックに関する動き情報をコーディングする際、同じ論理関数を使用してブロックA1とブロックB1の両方に関する動き情報にアクセスしてもよい。BVSPコーディング済みブロック、すなわち、上述の例ではブロックA1に関する動き情報が、参照ピクチャを特定する参照インデックスを含むものと仮定する。したがって、ブロックA1の動き情報にアクセスするための別個の論理関数をビデオコーダに設ける必要はない。
[0152]図7は、隣接ブロックを使用する後方ビュー合成予測(BVSP)に関する技法を示す概念図である。BVSPは、3D−HEVCに関する技法として提案され採用されている。第3回JCT−3V会議においてJCT3V−C0152において提案されたような後方ワーピングVSP手法が採択された。この後方ワーピングVSPの基本的な考えは、3D−AVCにおけるブロックベースのVSPと同じである。この2つの技法はどちらも、後方ワーピングおよびブロックベースのVSPを使用して動きベクトル差分を送ることを回避し、より厳密な動きベクトルを使用する。プラットフォームの違いに起因して実施の詳細はそれぞれに異なる。本開示は、概して頭文字語のBVSPを使用して3D−HEVCにおける後方ビュー合成予測を参照するが、BVSPは、3D−AVCのブロックベースのビュー合成予測を指すこともある。
[0153]3D−HTMでは、テクスチャ優先コーディングが共通試験条件で適用される。したがって、ある非ベーステクスチャビューを復号する際、対応する非ベース深度ビューは使用不能である。したがって、深度情報が推定され、BVSPを実行するために使用される。あるブロックに関する深度情報を推定するために、まず隣接ブロックから視差ベクトルを導出し、次いで導出された視差ベクトルを使用して参照ビューから深度ブロックを得ることが提案された。
[0154]HTM5.1試験モデルには、NBDV(隣接ブロック視差ベクトル)と呼ばれる視差ベクトル予測子を導出するためのプロセスが存在する。(dvx,dvy)はNBDV関数から特定された視差ベクトルを示すものとし、現在のブロック位置は(blockx,blocky)である。参照ビューの深度画像内の(blockx+dvx,blocky+dvy)における深度ブロックをフェッチすることが提案された。フェッチされた深度ブロックは、同じサイズの現在の予測ユニット(PU)を有し、この深度ブロックは次に、現在のPUに関する後方ワーピングを行うのに使用される。図7は、参照ビューから深度ブロックの位置を特定するためのステップと、次いで、深度ブロックをBVSP予測に使用するステップとを示す。
[0155]図7の例では、深度ピクチャ150とテクスチャピクチャ154は同じビューに対応し、一方、テクスチャピクチャ152は異なるビューに対応する。特に、テクスチャピクチャ152は、参照ピクチャとして働く、テクスチャピクチャ154に対してコーディングされた現在のブロック160を含む。ビデオコーダは、現在のブロック160に隣接する隣接ブロック162を参照してもよい。隣接ブロック162は、あらかじめ決定された視差ベクトル166を含む。視差ベクトル166は、現在のブロック160の視差ベクトル164として導出されてもよい。したがって、視差ベクトル164は、参照ビューの深度ピクチャ150の深度ブロック156を指す。
[0156]ビデオコーダは次いで、深度ブロック156のピクセル(すなわち、深度値)を使用して、後方ワーピングを実行するための、現在のブロック160のピクセルに関する視差値168(すなわち、テクスチャ値)を決定してもよい。ビデオコーダは次いで、視差値168によって特定されるピクセルから現在のブロック160の予測ブロック(すなわち、BVSP参照ブロック)に関する値を合成してもよい。ビデオコーダは次いで、この予測ブロックを使用して現在のブロック160を予測してもよい。たとえば、ビデオエンコーダ20によってビデオ符号化が行われる間、ビデオエンコーダ20は、後でビデオエンコーダ20が変換し、量子化し、エントロピー符号化する残差値を生成するために予測ブロックと現在のブロック160との間のピクセルごとの差分を算出してもよい。一方、ビデオデコーダ30によってビデオ復号が行われる間、ビデオコーダ30は、残差データをエントロピー復号化し、逆量子化し、逆変換し、次いで現在のブロック160を再生成するために残差データを(ピクセルごとに)予測ブロックと組み合わせてもよい。
[0157]JCT3V−C0152では、後述のように3D−HEVCのBVSP技法の変更を提案した。特に、ital<<イタリック体の>>italテキストは3D−HEVCに追加されたテキストを表し、一方、「削除:」の後に続く括弧付きのテキストは3D−HEVCからの削除を表す。シーケンスにおいてBVSPが有効化される場合、ビュー間動き予測のNBDVプロセスが変更され、違いは以下の段落において強調される。
・ 時間的隣接ブロックの各々について、時間的隣接ブロックが視差動きベクトルを使用する場合、視差動きベクトルは、視差ベクトルとして返され、3D−HEVCの第1.6.1.3節に記載された方法によってさらに改善される。
・ ital<<空間的隣接ブロックの各々について、以下のことが適用される。>>ital
○ ital<<参照ピクチャリスト0および参照ピクチャリスト1について:>>ital
・ 空間的隣接ブロックが視差動きベクトルを使用する場合、視差動きベクトルは、視差ベクトルとして返され、第1.6.1.3節に記載された方法によってさらに改善される。
・ ital<<その他の場合、空間的隣接ブロックがBVSPモードを使用する場合、関連する動きベクトルが視差ベクトルとして返される。視差ベクトルは、第1.6.1.3節に記載されたように同様に改善される。ただし、最大深度値が、4隅ピクセルではなく対応する深度ブロックのすべてのピクセルから選択され、改善された視差ベクトルの垂直コンポーネントが0に設定される。>>ital
・ 空間的隣接ブロックの各々について、空間的隣接ブロックがIDVを使用する場合、IDVは、視差ベクトルとして返され、第1.6.1.3節に記載された方法によってさらに改善される。
[0158]導入されるBVSPモードは、空間的インターコーディング済みモードとして扱われ、BVSPモードの使用状況を示すフラグがPUごとに維持されてもよい。ビットストリームにおいてフラグをシグナリングするのではなく、マージ候補リストに新しいマージ候補(BVSPマージ候補)が追加された。このフラグは、復号済みマージ候補インデックスがBVSPマージ候補に対応するかどうかに依存する。BVSPマージ候補は、JCT3V−C0152によって次のように定義される。
・ 参照ピクチャリストごとの参照ピクチャインデックス:−1
・ 参照ピクチャリストごとの動きベクトル:改善された視差ベクトル
[0159]JCT3V−C0152では、BVSPマージ候補の挿入位置が、後述のように空間的隣接ブロックに依存する。
・ 5つの空間的隣接ブロック(図6に示されているA0、A1、B0、B1、またはB2)のうちのいずれかがBVSPモードによってコーディングされている場合、すなわち、隣接ブロックの維持されるフラグが1に等しい場合、BVSPマージ候補が、対応する空間的マージ候補として扱われ、マージ候補リストに挿入される。BVSPマージ候補はマージ候補リストに1度のみ挿入される。
・ その他の場合(5つの空間的隣接ブロックのうちのどれもBVSPモードによってコーディングされていない)、BVSPマージ候補は、マージ候補リストにおいて時間的マージ候補の直前に挿入される。
[0160]結合双予測マージ候補導出プロセスの間、BVSPマージ候補を含めることを回避するために追加の条件がチェックされてもよいことに留意されたい。
[0161]JCT3V−J0152では、サイズがNxMによって示された各BVSPコーディング済みPUをサイズがKxK(Kは4または2であってもよい)に等しいいくつかの下位領域にさらに区分することをさらに規定した。下位領域ごとに、別個の視差動きベクトルが導出され、各下位領域が、ビュー間参照ピクチャ中の導出された視差ベクトルによって位置を特定される1つのブロックから予測される。言い換えれば、BVSPコーディング済みPU用の動き補償ユニットのサイズはKxKに設定される。共通試験条件において、Kは4に設定される。
[0162]JCT3V−J0152では、BVSPモードによってコーディングされている1つのPU内の下位領域(4x4ブロック)ごとに、対応する4x4深度ブロックが、上述の改善された視差ベクトルを有する参照深度ビューにおいて最初に位置を特定されることをさらに規定している。第2に、対応する深度ブロック内の16個の深度ピクセルの最大値が選択される。第3に、最大値が視差動きベクトルの水平コンポーネントに変換される。視差動きベクトルの垂直コンポーネントは0に設定される。
[0163]3D−HEVCでは、テクスチャが最初にコーディングする順序が適用されるとき、予測ユニット(PU)ごとに、参照深度ビュー中の深度値を考慮するかしないかにかかわらず、視差ベクトルがNBDVから導出され得る。視差ベクトルは、取得された後、1つのPUがBVSPモードでコーディングされている場合、そのPUの4x4下位領域ごとにさらに改善される。
[0164]3D−HEVCでは、改善プロセスについて以下の2つのステップを含むものとして説明している。1)導出された視差ベクトルによって位置を特定される参照深度ビュー中の4x4深度ブロックから1つの最大深度値を選択し、2)改善された視差ベクトルの垂直成分を0になるように保ちながら、深度値を改善された視差ベクトルの水平成分に変換する。視差ベクトルが1つのPUの1つの4x4下位領域について改善された後、3D−HEVCでは、改善された視差ベクトルが、動き補償のために参照テクスチャビュー中で1つのブロックの位置を特定するために使用されることを規定している。
[0165]現行の3D−HEVCでは、マージ候補リストに特殊な候補を追加することによって、スキップ/マージモードに関してBVSPが有効化される。この新しい候補、すなわち、BVSPマージ候補は、以下の設定によって作成される。
・ 予測方向:Bスライスに関しては双方向、Pスライスに関しては一方向
・ 参照ピクチャリストごとの参照インデックス:−1
・ 各参照ピクチャリストの動きベクトル:Do−NBDVから導出される視差ベクトル
・ BVSPモードの使用状況を示すためのBVSPモード変数(または各ブロックにアタッチされたフラグ)
[0166]3D−HEVCでは、すべての他のマージ候補に関して、BVSPモード変数が0に設定されることを示している。ソフトウェアにおけるBVSPマージ候補に双予測が関連付けられているが、動き補償プロセスの間、BVSPマージ候補はビュー間参照ピクチャから単予測される。
[0167]3D−HEVCではBVSPコーディング済みブロックに−1の参照インデックス値を利用するが、本開示の技法に従って、ビデオコーダは、予測ブロック(すなわち、BVSP参照ブロック)が合成される参照ピクチャを特定するブロック160の動き情報に参照インデックスを使用してもよい。したがって、図7の例におけるブロック160の参照インデックスは、参照ピクチャリスト内のテクスチャピクチャ154を特定する。概して、テクスチャピクチャ154などのビュー間参照ピクチャは、現在コーディングされているピクチャ、たとえばテクスチャピクチャ152と同じアクセスユニットの一部を形成してもよい。さらに、テクスチャピクチャ154と深度ピクチャ150(深度マップとも呼ばれる)が同じビューの一部を形成してもよく、一方、テクスチャピクチャ152が異なるビューを形成してもよく、(テクスチャピクチャ154から合成された)予測ブロックがさらに別の異なるビューを形成してもよいことを理解されたい。
[0168]図8は、本開示の技法による、BVSPを使用して現在のブロックを符号化するための例示的な方法を示すフローチャートである。現在のブロックは、現在のCU、または現在のCUの一部分を備え得る。ビデオエンコーダ20(図1および図2)に関して説明されるが、他のデバイスが図8の方法と同様の方法を実行するように構成され得ることを理解されたい。
[0169]最初、ビデオエンコーダ20は、現在のブロックをコーディングするのにBVSPモードコーディングを使用すべきであると決定してもよい(200)。たとえば、ビデオエンコーダ20は、いくつかのコーディングパスを実行して、様々なコーディングモードを試み、次いで、これらの様々な考えられるコーディングモードから得られるレートひずみ性能メトリクスを比較してもよい。ビデオエンコーダ20は次いで、試験されたモードのうちで、BVSPモードが最良のレートひずみ性能メトリクスを示すことを決定し、したがって、現在のブロックにBVSPモードを選択してもよい。同様に、これらの試験の間に、ビデオエンコーダ20のモード選択ユニット40は、現在のブロックの予測ブロック(すなわち、BVSP参照ブロック)を合成するのに使用すべき参照ビューを決定してもよい。したがって、ビデオエンコーダ20は、BVSP合成に関する参照ビューから参照ピクチャを決定してもよい(202)。
[0170]ビデオエンコーダ20は次いで、参照ビュー内の参照ピクチャから予測ブロックを合成してよい(204)。さらに、本開示の技法によれば、ビデオエンコーダ20は、BVSPコーディング済みブロックの参照インデックスの値を設定し、参照ピクチャリスト内の参照ピクチャを特定してもよい(206)。
[0171]ビデオエンコーダ20は次いで、現在のブロックの残差ブロックを算出してもよい(208)。すなわち、加算器50は、元のブロックと(参照ピクチャから合成された)予測ブロックとの間のピクセルごとの差分を算出し、これらの差分から残差ブロックを生成してもよい。ビデオエンコーダ20は次いで、残差ブロックの係数を変換し、量子化してもよい(210)。特に、変換処理ユニット52は、この変換を実行して変換係数を算出してもよく、一方、量子化ユニット54は、変換係数を量子化してもよい。
[0172]次に、ビデオエンコーダ20は、残差ブロックの量子化された変換係数を走査してもよい(212)。走査の間または走査の後に、ビデオエンコーダ20は、係数、ならびに予測ブロックが合成される参照ピクチャを特定する参照インデックスをエントロピー符号化してもよい(214)。たとえば、ビデオエンコーダ20は、CABACを使用して係数および参照インデックスを符号化してもよい。ビデオエンコーダ20は、次いで、ブロックのエントロピーコーディング済みデータを出力し得る(216)。
[0173]このように、図8は、ビデオデータを符号化する方法であって、マルチビュービデオデータのブロックに関する動き情報を符号化することと、ここにおいて、動き情報は、後方ワーピングビュー合成予測(BVSP)のソースを備える参照ピクチャを特定する参照インデックスを含む、BVSP参照ブロックを生成するために参照ピクチャの一部に対してBVSPを実行することと、BVSP参照ブロックを使用してブロックを予測することとを含む方法を表す。
[0174]図9は、本開示の技法による、BVSPを使用してビデオデータの現在のブロックを復号するための例示的な方法を示すフローチャート。現在のブロックは、現在のCU、または現在のCUの一部分を備え得る。ビデオデコーダ30(図1および図3)に関して説明されるが、他のデバイスが図9の方法と同様の方法を実行するように構成され得ることを理解されたい。
[0175]ビデオデコーダ30は最初に、現在のブロックに関連するエントロピー符号化データを受け取ってもよい(250)。エントロピーコーディング済みデータは、シンタックス要素の中でも特に、現在のブロックがBVSPモードを使用して符号化されることを示すデータと、予測ブロック(すなわち、BVSP参照ブロック)が合成される参照ピクチャを特定する参照インデックスとを含んでもよい。したがって、ビデオデコーダ30は、現在のブロックがBVSPモードを使用して、エントロピー符号化データをエントロピー復号しコーディングされていると決定し(252)、現在のブロックの参照インデックスをエントロピー復号し(254)てもよい。参照インデックスは、現在のブロックに関する動き情報として含められてもよい。
[0176]ビデオデコーダ30は次いで、参照インデックスを使用して参照ピクチャを決定してもよい(256)。たとえば、ビデオデコーダ30は、復号済みピクチャバッファ内の参照ピクチャの識別子を含む参照ピクチャリストを作成し、次いで、参照インデックスが指すのは参照ピクチャリスト内の参照ピクチャのうちのどれかを決定してもよい。ビデオエンコーダ30は次いで、参照ピクチャから予測ブロックを合成してもよい(258)。図7に関して上記に説明したように、たとえば、ビデオデコーダ30は、現在のブロックの空間的隣接ブロックの視差ベクトルを参照し、視差ベクトルを使用して現在のブロックに対する深度ブロックを特定し、次いで深度ブロックの深度値を使用して参照ピクチャのピクセルを現在のブロック内のピクセルの位置にワーピングさせて予測ブロックを合成してもよい。
[0177]ビデオデコーダ30は、現在のブロックの残差ブロックの係数を再生成するためにエントロピーコーディング済みデータをさらにエントロピー復号してもよい(260)。ビデオデコーダ30は、次いで、量子化された変換係数のブロックを作成するために、再生成された係数を逆走査してもよい(262)。ビデオデコーダ30は、次いで、残差ブロックを生成するために係数を逆量子化し、逆変換してもよい(264)。ビデオデコーダ30は、最終的に、予測ブロックと残差ブロックとを組み合わせることによって現在のブロックを復号し得る(266)。次に、ビデオデコーダ30は、現在のブロックを再生成するために予想ブロックのピクセルと残差ブロックのピクセルをピクセルごとに組み合わせてもよい。さらに、ビデオデコーダ30は、参照インデックス値などの動き情報を含む復号済みブロックを、後で以後のブロックおよび/または以後のブロックに関する動き情報を復号する際に使用できるように、DPB(たとえば、参照ピクチャメモリ82)に記憶してもよい。
[0178]このように、図9は、ビデオデータを復号する方法であって、マルチビュービデオデータのブロックに関する動き情報を復号することと、ここにおいて、動き情報は、後方ワーピングビュー合成予測(BVSP)のソースを備える参照ピクチャを特定する参照インデックスを含む、BVSP参照ブロックを生成するために参照ピクチャの一部に対してBVSPを実行することと、BVSP参照ブロックを使用してブロックを予測することとを含む方法を表す。
[0179]例に応じて、本明細書に記載される技法のうちの任意のもののいくつかの振る舞いまたは事象は、異なるシーケンスで実行され得、全体的に追加、結合、または除外され得ることが、認識されるべきである(たとえば、記載される振る舞いまたは事象のすべてが、この技法の実施のために必要であるとは限らない)。その上、いくつかの例では、振る舞いまたは事象は、たとえば、マルチスレッドの処理、割込み処理、または多数のプロセッサを用いて、連続的ではなく同時に実行され得る。
[0180]1つまたは複数の例では、述べられた機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで、実施されてもよい。ソフトウェアで実施される場合、諸機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体を介して記憶または伝送され得、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの、有形の媒体に相当するコンピュータ可読記憶媒体、またはコンピュータプログラムの、ある場所から別の場所への、たとえば、通信プロトコルによる転送を促進する任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、一般に、(1)非一時的である有形のコンピュータ可読記憶媒体または(2)信号もしくはキャリア波などの通信媒体に相当し得る。データ記憶媒体は、本開示に記載される技法の実施のために、1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによって、命令、コードおよび/もしくはデータ構造を取り出すためにアクセスされ得る、任意の利用できる媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含んでもよい。
[0181]例として、それに限定されず、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、フラッシュメモリ、または命令もしくはデータ構造の形態で所望のプログラムコードを記憶するために使用可能であり、コンピュータによってアクセス可能な他の任意の媒体を備えることができる。同様に、いかなる接続も、コンピュータ可読媒体と当然のことながら呼ばれる。たとえば、命令が、ウェブサイト、サーバ、または他の遠隔ソースから、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して伝送される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、マイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、キャリア波、信号、または他の一時的な媒体を含まないが、代わりに、非一時的な、有形の記憶媒体を対象とすることを理解されたい。本明細書において、ディスク(disk)およびディスク(disc)は、コンパクトディスク(CD)、レーザーディスク(登録商標)、光ディスク、デジタルバーサタイルディスク(DVD)、フロッピー(登録商標)ディスクおよびブルーレイディスクを含み、この場合、ディスク(disk)は、通常、磁気的にデータを再生し、ディスク(disc)は、レーザーを用いてデータを光学的に再生する。上述したものの組合せも、コンピュータ可読媒体の範囲の中に含められるべきである。
[0182]命令は、1つまたは複数のデジタルシグナルプロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、または他の同等の統合された、もしくは個別の論理回路などの、1つまたは複数のプロセッサによって実行され得る。したがって、「プロセッサ」という用語は、本明細書において、前述の構造のうちの任意のものまたは本明細書に記載される技法の実施のために適当な任意の他の構造を参照し得る。加えて、いくつかの態様では、本明細書に記載される機能性は、符号化および復号のために構成され、または組み合わされたコーデックに組み込まれる、専用のハードウェア内および/またはソフトウェアモジュール内で提供され得る。また、技法は、1つまたは複数の回路または論理素子内で完全に実施されてよい。
[0183]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえば、チップセット)を含む多種多様なデバイスまたは装置において実施されてよい。様々な構成要素、モジュール、またはユニットが、開示された技法を実行するように構成されたデバイスの機能的態様を強調するために本開示で説明されているが、異なるハードウェアユニットによる実現を必ずしも必要としない。むしろ、上述したように、様々なユニットは、コーデックハードウェアユニットの中で組み合わされ、または、上述される1つまたは複数のプロセッサを含む、適当なソフトウェアおよび/またはファームウェアと一緒に相互作用するハードウェアユニットが集まったものによって提供され得る。
[0184]様々な例について説明した。これらおよび他の例は、以下の特許請求の範囲の範囲内である。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオデータを復号する方法であって、
マルチビュービデオデータのブロックに関する動き情報を復号することと、ここにおいて、前記動き情報は、後方ワーピングビュー合成予測(BVSP)のソースを備える参照ピクチャを特定する参照インデックスを含む、
BVSP参照ブロックを生成するために前記参照ピクチャの一部に対してBVSPを実行することと、
前記BVSP参照ブロックを使用して前記ブロックを予測することとを備える方法。
[C2]
前記ブロックは、現在のビューに含められ、前記参照ピクチャは、前記現在のビューとは異なる第1の参照ビューに含められ、BVSPを実行することは、前記第1の参照ビューおよび前記現在のビューとは異なる第2の参照ビューにおけるBVSP参照ブロックを生成するためにBVSPを実行することを備える、C1に記載の方法。
[C3]
前記ブロックに対する時間的動きベクトル予測(TMVP)を使用して異なるブロックに関する動き情報を復号する際、ビュー間予測ブロックに関する動き情報にアクセスするのにも使用される関数を使用して前記ブロックの前記動き情報にアクセスすることをさらに備える、C1に記載の方法。
[C4]
アクセスすることは、前記ブロックがBVSPを使用してコーディングされているかどうかを示す情報にアクセスせずに前記動き情報にアクセスすることを備える、C3に記載の方法。
[C5]
前記ブロックがBVSPを使用してコーディングされたかどうかを考慮せずに前記ブロックのエッジをデブロッキングすることをさらに備える、C1に記載の方法。
[C6]
前記動き情報を復号することは、マージモードを使用して前記動き情報を復号することを備え、前記マージモードを使用して前記動き情報を復号することは、
マージ候補リストを作成することと、
前記マージ候補からBVSP候補を選択することと、
前記マージ候補リストを作成し前記BVSP候補を選択した直後に、前記ブロックの前記参照インデックスの値を設定することとを備える、C1に記載の方法。
[C7]
前記動き情報を復号することは、マージモードを使用して前記動き情報を復号することを備え、前記マージモードを使用して前記動き情報を復号することは、
マージ候補リストを作成することと、
前記マージ候補からBVSP候補を選択することと、
前記BVSP候補の参照インデックスを前記参照ピクチャを指すように設定することとを備える、C1に記載の方法。
[C8]
前記参照ピクチャは、復号済みピクチャバッファ(DPB)に記憶され、前記方法は、前記DPBの前記参照ピクチャ内の前記ブロックにBVSPを使用することを示す変数を記憶するのを回避することをさらに備える、C1に記載の方法。
[C9]
前記ブロックに対してコロケートされたブロックを復号する際、動きパラメータ継承を有効化することをさらに備える、C1に記載の方法。
[C10]
マージ候補としての前記ブロックに関する前記動き情報を含むようにマージ候補リストを作成する際、前記マージ候補を前記マージ候補リスト内の所定の位置に付加することをさらに備え、前記所定の位置は、BVSP候補に関してあらかじめ決定された位置に相当する、C1に記載の方法。
[C11]
前記ブロックは、現在のブロックに対する第1の隣接ブロックを備え、前記方法は、前記現在のブロックに関する動き情報を復号する際、
論理関数を使用して第1の高度動きベクトル予測(AMVP)候補として前記第1の隣接ブロックにアクセスすることと、
前記同じ論理関数を使用して第2の異なるAMVP候補として前記現在のブロックに対する第2の異なる隣接ブロックにアクセスすることとをさらに備える、C1に記載の方法。
[C12]
前記ブロックに関するエントロピー符号化され量子化された変換係数および前記参照インデックスに関するエントロピー符号化されたデータをエントロピー復号することと、
前記量子化された変換係数を逆量子化することと、
前記ブロックの残差ブロックを再生成するために前記変換係数を逆変換することと、
前記ブロックを再生成するために前記BVSP参照ブロックを前記残差ブロックと組み合わせることとをさらに備える、C1に記載の方法。
[C13]
復号することは、3次元高効率ビデオコーディング(3D−HEVC)に従って復号することを備える、C1に記載の方法。
[C14]
ビデオデータを符号化する方法であって、
マルチビュービデオデータのブロックに関する動き情報を符号化することと、ここにおいて、前記動き情報は、後方ワーピングビュー合成予測(BVSP)のソースを備える参照ピクチャを特定する参照インデックスを含む、
BVSP参照ブロックを生成するために前記参照ピクチャの一部に対してBVSPを実行することと、
前記BVSP参照ブロックを使用して前記ブロックを予測することとを備える方法。
[C15]
前記ブロックは、現在のビューに含められ、前記参照ピクチャは、前記現在のビューとは異なる第1の参照ビューに含められ、BVSPを実行することは、前記第1の参照ビューおよび前記現在のビューとは異なる第2の参照ビューにおけるBVSP参照ブロックを生成するためにBVSPを実行することを備える、C14に記載の方法。
[C16]
前記ブロックがBVSPを使用してコーディングされたかどうかを考慮せずに前記ブロックのエッジをデブロッキングすることをさらに備える、C14に記載の方法。
[C17]
前記ブロックに対する時間的動きベクトル予測(TMVP)を使用して異なるブロックに関する動き情報を復号する際、ビュー間予測ブロックに関する動き情報にアクセスするのにも使用される関数を使用して前記ブロックの前記動き情報にアクセスすることをさらに備える、C14に記載の方法。
[C18]
前記動き情報を符号化することは、マージモードを使用して前記動き情報を符号化することを備え、前記マージモードを使用して前記動き情報を符号化することは、
マージ候補リストを作成することと、
前記マージ候補からBVSP候補を選択することと、
前記マージ候補リストを作成し前記BVSP候補を選択した直後に、前記ブロックの前記参照インデックスの値を設定することとを備える、C14に記載の方法。
[C19]
前記動き情報を符号化することは、マージモードを使用して前記動き情報を符号化することを備え、前記マージモードを使用して前記動き情報を符号化することは、
マージ候補リストを作成することと、
前記マージ候補からBVSP候補を選択することと、
前記BVSP候補の参照インデックスを前記参照ピクチャを指すように設定することとを備える、C14に記載の方法。
[C20]
前記ブロックに対してコロケートされたブロックを符号化する際、動きパラメータ継承を有効化することをさらに備える、C14に記載の方法。
[C21]
前記参照インデックスの前記値をエントロピー符号化することと、
前記ブロックと前記BVSP参照ブロックとの間のピクセルごとの差分を表す前記ブロックの残差ブロックを算出することと、
変換係数を生成するために前記残差ブロックを変換することと、
前記変換係数を量子化することと、
前記量子化された変換係数をエントロピー符号化することとをさらに備える、C14に記載の方法。
[C22]
ビデオデータをコーディングするためのデバイスであって、
参照ピクチャを記憶するメモリと、
マルチビュービデオデータのブロックに関する動き情報をコーディングすることと、ここにおいて、前記動き情報は、後方ワーピングビュー合成予測(BVSP)のソースを備える参照ピクチャを特定する参照インデックスを含む、BVSP参照ブロックを生成するために前記参照ピクチャの一部に対してBVSPを実行することと、前記BVSP参照ブロックを使用してブロックを予測することとを行うように構成されたビデオコーダとを備えるデバイス。
[C23]
前記ブロックは、現在のビューに含められ、前記参照ピクチャは、前記現在のビューとは異なる第1の参照ビューに含められ、前記ビデオコーダは、前記第1の参照ビューおよび前記現在のビューとは異なる第2の参照ビューにおけるBVSP参照ブロックを生成するためにBVSPを実行するように構成される、C22に記載のデバイス。
[C24]
前記ビデオコーダは、前記ブロックに対する時間的動きベクトル予測(TMVP)を使用して異なるブロックに関する動き情報をコーディングする際、ビュー間予測ブロックに関する動き情報にアクセスするのにも使用される関数を使用して前記ブロックの前記動き情報にアクセスするように構成される、C22に記載のデバイス。
[C25]
前記ビデオコーダは、前記ブロックがBVSPを使用してコーディングされたかどうかを考慮せずに前記ブロックのエッジをデブロッキングするように構成される、C22に記載のデバイス。
[C25]
前記ビデオコーダは、マージモードを使用して前記動き情報をコーディングするように構成され、ここにおいて、前記ビデオコーダは、マージモードを使用するために、マージ候補リストを作成し、前記マージ候補からBVSP候補を選択し、前記マージ候補リストを作成し前記BVSP候補を選択した直後に、前記ブロックの前記参照インデックスの値を設定するように構成される、C21に記載のデバイス。
[C26]
前記ビデオコーダは、マージモードを使用して前記動き情報をコーディングするように構成され、ここにおいて、前記ビデオコーダは、マージモードを使用するために、マージ候補リストを作成し、前記マージ候補からBVSP候補を選択し、前記BVSP候補の参照インデックスを前記参照ピクチャを指すように設定するように構成される、C21に記載のデバイス。
[C27]
前記参照ピクチャを記憶する復号済みピクチャバッファ(DPB)を含むメモリをさらに備え、前記ビデオコーダは、前記DPBの前記参照ピクチャ内の前記ブロックにBVSPを使用することを示す変数を記憶するのを回避するように構成される、C21に記載のデバイス。
[C28]
前記ビデオコーダは、前記ブロックに対してコロケートされたブロックをコーディングする際、動きパラメータ継承を有効化するように構成される、C21に記載のデバイス。
[C29]
前記ビデオコーダはビデオエンコーダとビデオデコーダの一方を備える、C21に記載のデバイス。
[C30]
前記デバイスは、
集積回路と、
マイクロプロセッサと、
ワイヤレス通信デバイスとのうちの少なくとも1つを備える、C21に記載のデバイス。
[C31]
ビデオデータをコーディングするためのデバイスであって、
マルチビュービデオデータのブロックに関する動き情報をコーディングするための手段と、ここにおいて、前記動き情報は、後方ワーピングビュー合成予測(BVSP)のソースを備える参照ピクチャを特定する参照インデックスを含む、
BVSP参照ブロックを生成するために前記参照ピクチャの一部に対してBVSPを実行するための手段と、
前記BVSP参照ブロックを使用して前記ブロックを予測するための手段とを備えるデバイス。
[C32]
前記ブロックは、現在のビューに含められ、前記参照ピクチャは、前記現在のビューとは異なる第1の参照ビューに含められ、BVSPを実行することは、前記第1の参照ビューおよび前記現在のビューとは異なる第2の参照ビューにおけるBVSP参照ブロックを生成するためにBVSPを実行することを備える、C31に記載のデバイス。
[C33]
前記ブロックに対する時間的動きベクトル予測(TMVP)を使用して異なるブロックに関する動き情報を復号する際、ビュー間予測ブロックに関する動き情報にアクセスするのにも使用される関数を使用して前記ブロックの前記動き情報にアクセスするための手段をさらに備える、C31に記載のデバイス。
[C34]
前記ブロックがBVSPを使用してコーディングされたかどうかを考慮せずに前記ブロックのエッジをデブロッキングするための手段をさらに備える、C31に記載のデバイス。
[C35]
前記動き情報をコーディングするための前記手段は、マージモードを使用して前記動き情報をコーディングするための手段を備え、前記マージモードを使用して前記動き情報をコーディングするための前記手段は、
マージ候補リストを作成するための手段と、
前記マージ候補からBVSP候補を選択するための手段と、
前記マージ候補リストを作成し前記BVSP候補を選択した直後に、前記ブロックの前記参照インデックスの値を設定するための手段とを備える、C31に記載のデバイス。
[C36]
前記動き情報をコーディングするための前記手段は、マージモードを使用して前記動き情報をコーディングするための手段を備え、前記マージモードを使用して前記動き情報をコーディングするための前記手段は、
マージ候補リストを作成するための手段と、
前記マージ候補からBVSP候補を選択するための手段と、
前記BVSP候補の参照インデックスを前記参照ピクチャを指すように設定するための手段とを備える、C31に記載のデバイス。
[C37]
前記参照ピクチャは、復号済みピクチャバッファ(DPB)に記憶され、前記デバイスは、前記DPBの前記参照ピクチャ内の前記ブロックにBVSPを使用することを示す変数を記憶するのを回避するための手段をさらに備える、C31に記載のデバイス。
[C38]
前記ブロックに対してコロケートされたブロックをコーディングする際、動きパラメータ継承を有効化するための手段をさらに備える、C31に記載のデバイス。
[C39]
命令を記憶したコンピュータ可読記憶媒体であって、前記命令が、実行されると、ビデオデータをコーディングするためのデバイスのプロセッサに、
マルチビュービデオデータのブロックに関する動き情報をコーディングすることと、ここにおいて、前記動き情報は、後方ワーピングビュー合成予測(BVSP)のソースを備える参照ピクチャを特定する参照インデックスを含む、
BVSP参照ブロックを生成するために前記参照ピクチャの一部に対してBVSPを実行することと、
前記BVSP参照ブロックを使用して前記ブロックを予測することとを行わせるコンピュータ可読記憶媒体。
[C40]
前記ブロックは、現在のビューに含められ、前記参照ピクチャは、前記現在のビューとは異なる第1の参照ビューに含められ、前記プロセッサにBVSPを実行させる前記命令は、前記プロセッサに、前記第1の参照ビューおよび前記現在のビューとは異なる第2の参照ビューにおけるBVSP参照ブロックを生成するためにBVSPを実行させる命令を備える、C39に記載のコンピュータ可読記憶媒体。
[C41]
前記プロセッサに、前記ブロックに対する時間的動きベクトル予測(TMVP)を使用して異なるブロックに関する動き情報をコーディングする際、ビュー間予測ブロックに関する動き情報にアクセスするのにも使用される関数を使用して前記ブロックの前記動き情報にアクセスさせる命令をさらに備える、C39に記載のコンピュータ可読記憶媒体。
[C42]
前記プロセッサに、前記ブロックがBVSPを使用してコーディングされたかどうかを考慮せずに前記ブロックのエッジをデブロッキングさせる命令をさらに備える、C39に記載のコンピュータ可読記憶媒体。
[C43]
前記プロセッサに前記動き情報をコーディングさせる前記命令は、前記プロセッサにマージモードを使用して前記動き情報をコーディングさせる命令を備え、前記マージモードを使用して前記動き情報をコーディングさせる命令は、前記プロセッサに、
マージ候補リストを作成することと、
前記マージ候補からBVSP候補を選択することと、
前記マージ候補リストを作成し前記BVSP候補を選択した直後に、前記ブロックの前記参照インデックスの値を設定することとを行わせる命令を備える、C39に記載のコンピュータ可読記憶媒体。
[C44]
前記プロセッサに前記動き情報をコーディングさせる前記命令は、前記プロセッサにマージモードを使用して前記動き情報をコーディングさせる命令を備え、前記マージモードを使用して前記動き情報をコーディングさせる命令は、前記プロセッサに、
マージ候補リストを作成することと、
前記マージ候補からBVSP候補を選択することと、
前記BVSP候補の参照インデックスを前記参照ピクチャを指すように設定することとを行わせる命令を備える、C39に記載のコンピュータ可読記憶媒体。
[C45]
前記参照ピクチャは、復号済みピクチャバッファ(DPB)に記憶され、前記コンピュータ可読記憶媒体は、前記プロセッサに、前記DPBの前記参照ピクチャ内の前記ブロックにBVSPを使用することを示す変数を記憶するのを回避させる命令をさらに備える、C39に記載のコンピュータ可読記憶媒体。
[C46]
前記プロセッサに、前記ブロックに対してコロケートされたブロックをコーディングする際、動きパラメータ継承を有効化させる命令をさらに備える、C39に記載のコンピュータ可読記憶媒体。