[0024]特定のビデオコード化システムによれば、データ圧縮を実現するように、ビデオシーケンスにおける時間的冗長性を低減するために、動き推定及び動き補償を使用することができる。この場合、ビデオデータの予測ブロック、例えば、コード化されている現在ビデオブロックの値を予測するために使用できる別のビデオのスライス又はピクチャからのブロックを識別する動きベクトルを生成することができる。予測ビデオブロックの値が現在ビデオブロックの値から減算されて、残差データのブロックを生成する。動き情報(例えば、動きベクトル、動きベクトルインデックス、予測方向、又は他の情報)が、残差データとともにビデオエンコーダからビデオデコーダに通信される。デコーダは、(動きベクトルに基づいて)同じ予測ブロックの位置を特定し、残差データを予測ブロックのデータと合成することにより、符号化されたビデオブロックを復元することができる。
[0025]スケーラブルビデオコード化は、ベースレイヤ及び1つ又は複数のスケーラブル拡張レイヤが使用されるビデオコード化を指す。スケーラブルビデオコード化の場合、ベースレイヤは、通常、ベースレベルの品質を有するビデオデータを搬送する。1つ又は複数の拡張レイヤは、追加のビデオデータを搬送して、より高い空間レベル、時間レベル、及び/又は(本明細書全体にわたる慣例になるように、時々「品質」レベルと呼ばれる)信号対ノイズSNRレベルをサポートする。拡張レイヤは、以前符号化されたレイヤに対して定義され得る。スケーラブルビデオコード化技法がレイヤの概念を導入するにもかかわらず、本技法は依然スライス又はフレームに基づいてコード化する。例えば、最も低い時間レイヤを有するフレーム又はスライスは、より高い時間レイヤにあるスライス又はフレームで拡張され得る時間ベースレイヤを形成することができる。
[0026]時間スケーラビリティをサポートする幾つかのスケーラブルビデオコード化プロセスでは、ベースレイヤは、7.5Hzの再生フレームレートをサポートするビデオデータを含むことができる。ビデオコード化プロセスは、より高い再生フレームレートをサポートする追加のレイヤをコード化することができる。例えば、ビデオコード化プロセスは、15Hz及び30Hzの再生フレームレートをサポートする1つ又は複数の追加のレイヤをコード化することができる。レイヤに基づいて、ビデオコード化プロセスは、アプリケーション要件に従って、フレームレートの観点から実際の配信されたコンテンツを適合させる抽出器ツールをサポートすることができる。要件は、クライアント機器又は伝送チャネルに依存する場合がある。
[0027]空間スケーラビリティをサポートする幾つかのスケーラブルビデオコード化プロセスでは、ベースレイヤは、特定のベース解像度を表すビデオデータを含むことができる。ビデオコード化プロセスは、より高い解像度を表すビデオデータを含む1つ又は複数の追加のレイヤをコード化することができる。時間スケーラビリティと同様に、抽出器ツールは、アプリケーション要件に基づいて、実際の解像度の観点から実際の配信されたコンテンツを調整することができる。
[0028]品質スケーラビリティをサポートする幾つかのスケーラブルビデオコード化プロセスでは、ベースレイヤは、時々ベースSNRレベルと呼ばれる特定のベース品質を表すビデオデータを含むことができる。ビデオコード化プロセスは、より高いSNRレベルを表すビデオデータを含む1つ又は複数の追加のレイヤをコード化することができる。時間スケーラビリティと同様に、抽出器ツールは、アプリケーション要件に基づいて、実際の解像度の観点から実際の配信されたコンテンツを調整することができる。
[0029]最終的に、スケーラブルビデオコード化プロセスは、3つのタイプのレイヤの全てを組み合わせて使用して、必要なレイヤを抽出し、それらのレイヤを一緒に加えることによって、アプリケーション要件に適合する結果をもたらすことができる。
[0030]マルチビュービデオコード化は、ビデオデータの複数のビューをコード化するためのビデオコード化プロセスである。一般に、各ビューは、共通のシーンの対応するビデオデータが撮影された、異なる視点又は角度を備える異なるビデオスライス又はピクチャに対応する。例えば、単一の時間インスタンスにある共通のシーンに対応する複数の角度からのビューがキャプチャされ得るし、それによって、単一の時間インスタンスに対応する複数のビューを備えるビデオデータを作成する。単一の時間インスタンスに関連付けられたビューの全ては、「アクセス単位」にグループ化され得る。マルチビュービデオコード化では、各ビューは、テクスチャデータ(即ち、テクスチャコンポーネント)のみを備えことができる。3次元ビデオコード化は、ビデオデータの複数のビューをコード化するための別のビデオコード化プロセスである。マルチビュービデオコード化におけるビデオデータが、ビューごとにテクスチャコンポーネントのみを含むことができるのに対して、3Dビデオデータは、ビューごとにテクスチャコンポーネントと深度コンポーネントの両方を含むことができる。テクスチャコンポーネントは、従来のピクチャを含むことができる。深度コンポーネントは、対応するテクスチャコンポーネントで示された対象の3次元深度を表すことができる。
[0031]幾つかの例では、マルチビュービデオコード化技法と同様に、3DVC技法は、各アクセス単位で複数のビューを使用することができる(即ち、本技法は複数のビューを実現することができる)。そのような例では、3DVC技法は、マルチビュービデオで使用されるコード化技法のうちの多くを採用することができる。例えば、H.264/AVC及びHEVCに対する3DVC拡張では、ビデオエンコーダは、アクセス単位の他のビューと同じ方式で深度コンポーネントを符号化することができる。即ち、様々なビュー用のテクスチャコンポーネントに加えて、アクセス単位は深度コンポーネントを含むことができる。「ビューコンポーネント」という用語は、アクセス単位のテクスチャビューコンポーネント又は深度ビューコンポーネントのいずれかを指すために使用され得る。
[0032]更に、幾つかのビデオコード化技法は、深度画像ベースレンダリング(DIBR)を使用して、利用可能なテクスチャビューコンポーネント及び深度ビューコンポーネントに基づいて、合成テクスチャビューコンポーネントを生成することができる。合成テクスチャビューコンポーネントは、深度マップ及び1つ又は複数のテクスチャビューコンポーネントに基づいて合成されたテクスチャビューコンポーネントであり得る。場合によっては、合成テクスチャビューコンポーネントは、アクセス単位間予測又はビュー間予測用の参照ピクチャとして使用され得る。参照ピクチャとして使用される合成テクスチャビューコンポーネントは、ビュー合成参照ピクチャ(VSRP)と呼ばれる場合がある。ビデオコーダは参照ピクチャリスト内にVSRPを含めることができる。幾つかの特定の設計では、ビデオコーダは、複数の(深度付き)ビューコンポーネントを使用して、DIBRを介して1つのVSRPを生成することができる。
[0033]従って、一般的な意味では、マルチビュービデオデータは、3Dビデオデータと互換的に使用され得る。例えば、ビデオエンコーダ及びビデオデコーダは、マルチビュービデオのビットストリームの1つのビューを深度コンポーネントとして扱うことができる。他の例では、エンコーダ及びデコーダは、マルチビュービデオのビットストリームから深度ビューコンポーネントを生成するように動作することができる。
[0034]3DVC技法では、2つ以上のビュー(例えば、視聴者の左眼のビュー及び右眼のビュー)は、光の異なる偏光を使用して同時に、又はほぼ同時に表示することができ、視聴者の眼の各々がビューのそれぞれ1つを受け取るように、視聴者はパッシブ偏光眼鏡を着用することができる。代替的に、視聴者は、各眼を単独に遮断するアクティブ眼鏡を着用することができ、表示器は、眼鏡と同期して各眼の画像間を高速に交互することができる。
[0035]各ビュー(例えば、左眼のビュー及び右眼のビュー)は個別にコード化され得るが、3DVCでは、ビューの1つは、ビューの深度コンポーネントを使用して他のビューから復元され得る。この理由で、3DVCのこの形式は、マルチビュービデオコード化プラス深度(MVC+D)と呼ばれる場合もある。
例示すると、ビューの特定のピクチャ(ここで、このビューの特定のピクチャは、ビューの「ビューコンポーネント」と呼ばれる場合がある)の深度コンポーネント又は「深度マップ」は、左眼のビューと右眼のビューとの間の差分として計算され得る。エンコーダは、例えば、ビューコンポーネントの所謂「テクスチャコンポーネント」として左眼のビューを符号化することができ、深度マップは、ビューコンポーネントの所謂「深度コンポーネント」として符号化され得る。
[0036]次いで、デコーダは、ビューコンポーネントのテクスチャコンポーネントとビューコンポーネントの深度コンポーネントとを復号し、深度コンポーネントを使用して(左眼のビューを表す)テクスチャコンポーネントから右眼のビューを復元することができる。1つのビュー及び対応する深度マップのみをこの方式で符号化することによって、3DVCは、3DVCデータの別個のビューとして独立に左眼のビューと右眼のビューの両方を符号化することと比較して、左眼のビューと右眼のビューの両方をより効率的に符号化することができる。
[0037]上記で簡単に説明されたように、特定のビデオコード化システムは、ビデオシーケンス内の冗長性を低減するために、動き推定データと動き補償データとを生成することができる。この動きデータは、参照ビデオブロックが位置する他のビデオピクチャ又はビューへの特定の参照を含むことができる。幾つかの例では、特定の参照ブロックは同じピクチャ(イントラ予測)内にある。他の例では、特定の参照ブロックは、最終出力順序で(即ち、現在のピクチャに対して過去又は未来における時間インスタンスに関連付けられた)現在のビデオブロックを含むピクチャの先又は後のいずれかである、異なるピクチャ(インター予測)内にあり得る。マルチビュービデオコード化及び3DVCでは、この概念は、様々なビューの中に予測ブロックを含めるように拡張され得る。例えば、予測ブロックは、現在のピクチャと同じ時間インスタンスに関連付けられた異なるピクチャ(ビュー間予測)内にあり得る。
[0038]ビュー間予測は、一般に、別のビュー内のビューコンポーネントがインター予測参照であるように実現される。予測用の「動き」ベクトルを使用するのではなく、ビュー間予測は、動きベクトルと概念的に同様であるが、動きではなく変位を記述する「視差の動き」ベクトルを利用する。潜在的なビュー間参照は、シーケンスパラメータセット(SPS)内で信号伝達され、インター予測参照又はビュー間予測参照の柔軟な順序付けを可能にする、参照ピクチャリスト構築プロセスによって修正され得る。
[0039]スケーラブルビデオコード化をサポートするビデオコード化技法では、それらのビデオコード化技法は、レイヤ間予測を採用することもできる。例えば、マルチビュービデオコード化及び3Dビデオコード化と同様に、特定のスライス又はフレームのレイヤの全て(即ち、ベースレイヤ及び任意の拡張レイヤ)は、マルチビュービデオコード化及び3Dビデオコード化に関して上述されたアクセス単位に類似するアクセス単位を形成することができる。従って、特定のレイヤが与えられると、別のレイヤはインター予測参照であり得る。ビュー間参照と同様に、これらのレイヤ間参照はSPS内で信号伝達される場合があり、インター予測参照又はレイヤ間予測参照の柔軟な順序付けを可能にする、参照ピクチャリスト構築プロセスによって修正され得る。
[0040]一般的な意味では、テクスチャビューコンポーネント、深度ビューコンポーネント、ならびに様々な時間レイヤ、空間レイヤ、及び品質レイヤは、本開示に関していくらか互換性があるものとして考えられ得る。例えば、ビデオコード化技法がテクスチャビューコンポーネントを処理するか、深度ビューコンポーネントを処理するか、又は様々なレイヤのいずれかを処理するかにかかわらず、本技法は、様々なコンポーネント間及びレイヤ間のインター予測を実行することができる。従って、本発明の技法は、一般的な意味で「レイヤ」に適用可能であると考えられ得るし、ここで、レイヤは、テクスチャビューコンポーネント、深度ビューコンポーネント、時間スケーラブルレイヤ、空間スケーラブルレイヤ、及び品質スケーラブルレイヤのうちのいずれかであり得る。以下で、本開示の技法は、主にビュー及びビューコンポーネントに関して記載される。加えて、幾つかの領域では、本開示の技法は、SVCスケーラブルレイヤ、例えば、時間スケーラブルレイヤ、空間スケーラブルレイヤ、及び品質スケーラブルレイヤに関して記載される。しかしながら、これは説明及び理解を簡単にするためにすぎない。それは、ビュー及びビューコンポーネント又は必然的にスケーラブルレイヤのみに適用可能であると、記載された技法を限定するものとして考察されるべきではない。反対に、本明細書に記載された技法は、上述された用語として一般的な「レイヤ」により広く適用可能であることを理解されたい。
[0041]インター予測プロセスの一部として、ビデオエンコーダは、ビットストリーム内で特定のビューコンポーネントの参照ピクチャセット(RPS)を信号伝達する。特定のビューコンポーネントの参照ピクチャセットは、特定のビューコンポーネント内のブロックのインター予測に使用されるために利用可能な参照ピクチャを含むことができる。マルチビューコード化及び3次元ビデオコード化(3DVC)では、ビデオエンコーダは、特定のビューコンポーネントと同じアクセス単位のビューコンポーネントを、特定のビューコンポーネントを符号化するための参照ピクチャとして使用することができる。しかしながら、幾つかのビデオコード化技法では、ビデオエンコーダは、ビューコンポーネントの参照ピクチャセット内のそのようなビュー間参照ピクチャを信号伝達しない場合がある。これにより、ビットストリームを復号するビデオデコーダの効率が低下する可能性がある。更に、ビデオエンコーダがビューコンポーネントの参照ピクチャセット内のそのようなビュー間参照ピクチャを信号伝達しない幾つかのビデオコード化技法では、ビデオエンコーダは更に、ビュー間参照ピクチャに関連付けられたインター予測のタイプを信号伝達しない場合がある。これにより、ビデオエンコーダがビュー間参照ピクチャに関連付けられたインター予測のタイプに基づいて、RPSに含めるようにビュー間参照ピクチャを選択することを可能にしないことによって、コード化効率が低下する可能性がある。
[0042]ビデオデータは、ビデオテレフォニ、ストレージ、ブロードキャスト、又はストリーミングなどのアプリケーションに対処する「ネットワークフレンドリ」なビデオ表現を提供するネットワークアブストラクションレイヤ(NAL)単位に編成することができる。例えば、ビデオエンコーダは、通常、ビデオデータの各ピクチャを1つ又は複数の単独で復号可能なスライスとして符号化する。スライスは、ネットワーク上の伝送用のNAL単位にパッケージ化することができる。ビデオコード化レイヤ(VCL)データを含むNAL単位は、ピクチャ用のデータ又はピクチャのスライス用のデータを含むことができる。例えば、NAL単位は、コード化ブロックパターン(CBP)値、ブロックタイプ、コード化モード、(フレーム、スライス、ブロック、若しくはシーケンスなどの)コード化単位用の最大ブロックサイズ、又は他の情報などのシンタックス情報を含むことができる。
[0043]各NAL単位は、NAL単位に記憶されたデータのタイプを識別するヘッダを含む。例示的なマルチビュービデオコード化のNAL単位ヘッダは、NAL単位が属するビューのビュー識別子と、NAL単位が(他のビューコンポーネントによる参照用の)ランダムアクセスポイントとして使用できる、所謂アンカーピクチャに属するかどうかと、NAL単位が他のビュー内のNAL単位用のビュー間予測に使用されるかどうかと、様々な他の情報とを示すシンタックス要素を含むことができる。本明細書に記載されたように、アンカーピクチャは、一般にランダムアクセスピクチャに該当する場合があり、それらの用語は互換的に使用することができる。即ち、「ランダムアクセス」は、一般に、ストリームの開始以外のポイントでビットストリームに対する復号プロセスを開始する行為を指す。ランダムアクセスピクチャは、一般に、イントラコード化スライス(Iスライス)のみを含んでいるピクチャに関係する。復号順序と出力順序の両方でランダムアクセスピクチャに続くコード化ピクチャは、復号順序又は出力順序のいずれかでランダムアクセスピクチャに先行するピクチャから予測されない。
[0044]一般に、アクセス単位は、特定の時間インスタンスの全てのビューコンポーネントを含むことができる。特定のビューコンポーネントは、特定の時間インスタンスで特定のビューの全てのNAL単位を含む。マルチビュービデオコード化のNAL単位は、(NAL単位タイプを含む)1バイトのNAL単位ヘッダを含んでいる場合があり、マルチビュービデオコード化のNAL単位ヘッダ拡張部を更に含むことができる。
[0045]最終的に、エンコーダは、現在のピクチャの復元時に使用する動き情報を生成し符号化することができる。従って、エンコーダは、現在のピクチャ内の各個のビデオブロックに関連付けられた動き情報を生成し符号化することができる。各ビデオブロックは互いのビデオブロックから独立している場合があるので、エンコーダは、現在のピクチャ全体の正確な復元のために、様々な異なる参照ピクチャに信号伝達する必要があり得る。ビデオブロックごとに動き情報に含まれる(それらの一部がビューであり得る)参照ピクチャに基づいて、エンコーダは、残差データから現在のピクチャを再構築するために必要なピクチャを備える参照ピクチャリストを構築することができる。
[0046]本開示の技法は、一般に、依存ビューに関連付けられたインター予測のタイプをコード化することと、ビュー間予測用の参照ピクチャリスト構築プロセスとに関する。例えば、ビュー間テクスチャ予測のみに使用され、ビュー間動き予測及びビュー間残差予測などの他のビュー間予測のタイプに使用されない、最終の参照ピクチャリスト内に参照ビューを含むことは、非効率的であり得る。最終の参照ピクチャリストに含まれるビューを識別し、可能な限り、ビュー間テクスチャ予測と少なくとも別のタイプのビュー間予測の両方で使用されるビューに限定することによって、ビデオコード化の効率は向上され得る。
[0047]例えば、本開示の少なくとも幾つかの態様によれば、記載されたビデオコード化技法は、シーケンスパラメータセット(SPS)内で依存性を信号伝達することができる。ビューごとに、別のビュー(即ち、現在のピクチャと同じ時間インスタンスに関連付けられたピクチャ)が任意の種類のビュー間予測に使用される場合、それは依存ビューとして信号伝達される。しかしながら、別の指示は、どのビューがビュー間テクスチャ予測に使用され得るか、又は同等に、どのビューがビュー間動き予測及び/又はビュー間残差予測のみに使用されるかを信号伝達することもできる。
[0048]以下の説明は、マルチビュービデオコード化技法と3Dビデオコード化技法の両方のコンテキストにおけることを理解されたい。3Dビデオデータは追加の情報(即ち、深度ビューコンポーネント)を含むことができるが、本明細書に記載された技法は、一般的にビューコンポーネントに関する。しかしながら、記載された技法は更に、深度ビューコンポーネントのコンテキストにおいて3DVCに一意に適用され得る。例えば、エンコーダは更に、参照ビューがビュー間深度予測に使用され得ることを信号伝達することができる。
[0049]図1は、例示的なビデオの符号化及び復号のシステム10を示すブロック図である。図1に示されたように、システム10は、コンピュータ可読媒体16を介して宛先機器14に符号化ビデオを提供する発信源機器12を含む。発信源機器12及び宛先機器14は、広範囲にわたる機器のいずれかを備えることができる。本開示の技法は、無線テレビジョン放送、ケーブルテレビジョン伝送、衛星テレビジョン伝送、インターネットビデオ伝送、記憶媒体に符号化される符号化されたデジタルビデオ、又は他のシナリオに適用することができる。従って、コンピュータ可読媒体16は、符号化されたビデオデータの伝送に適したワイヤレス媒体若しくは有線媒体、又はディスク、ハードドライブなどのコンピュータ可読記憶媒体の任意の組合せを備える場合がある。
[0050]図1の例では、発信源機器12は、ビデオ発信源18と、ビデオエンコーダ20と、出力インターフェース22とを含む。宛先機器14は、入力インターフェース28と、ビデオデコーダ30と、表示装置32とを含む。本開示によれば、発信源機器12のビデオエンコーダ20は、マルチビューコード化又は3次元(3D)ビデオコード化用の技法を適用するように構成され得る。他の例では、発信源機器及び宛先機器は、他の構成要素又は装置を含むことができる。例えば、発信源機器12は、外部カメラなどの外部のビデオ発信源18からビデオデータを受信することができる。同様に、宛先機器14は、内蔵表示装置を含むのではなく、外部表示装置とインターフェースすることができる。
[0051]図1の図示されたシステム10は一例にすぎない。マルチビュービデオコード化又は3Dビデオコード化のための技法は、任意のデジタルビデオの符号化及び/又は復号の機器によって実行することができる。一般に、本開示の技法はビデオ符号化機器によって実行されるが、本技法は、通常「コーデック」と呼ばれるビデオエンコーダ/デコーダによって実行することもできる。更に、本開示の技法は、ビデオプリプロセッサによって実行することもできる。発信源機器12及び宛先機器14は、発信源機器12が宛先機器14に送信するためのコード化ビデオデータを生成するようなコード化機器の例にすぎない。幾つかの例では、機器12、14の各々がビデオ符号化構成要素とビデオ復号構成要素とを含むように、機器12、14は、実質的に対称的な方式で動作することができる。従って、システム10は、例えば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、又はビデオテレフォニのための、ビデオ機器12とビデオ機器14との間の一方向又は双方向のビデオ送信をサポートすることができる。
[0052]発信源機器12のビデオ発信源18には、ビデオカメラなどの撮像装置、以前に撮影されたビデオを含んでいるビデオアーカイブ、及び/又はビデオコンテンツプロバイダからのビデオフィードが含まれ得る。更なる代替として、ビデオ発信源18は、発信源ビデオとしてのコンピュータグラフィックスベースのデータ、又はライブビデオ、アーカイブビデオ、及びコンピュータ生成ビデオの合成を生成することができる。場合によっては、ビデオ発信源18がビデオカメラである場合、発信源機器12及び宛先機器14は、所謂カメラ付き携帯電話又はビデオ電話を形成することができる。しかしながら、上述のように、本開示に記載された技法は、一般にビデオコード化に適用可能であり得るし、ワイヤレス及び/又は有線の適用例に適用することができる。各場合において、撮影されたビデオ、以前に撮影されたビデオ、又はコンピュータ生成ビデオは、ビデオエンコーダ20によって符号化することができる。次いで、符号化ビデオ情報は、出力インターフェース22によってコンピュータ可読媒体16に出力することができる。
[0053]コンピュータ可読媒体16には、ワイヤレス放送若しくは有線ネットワーク送信などの一時的媒体、又はハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、ブルーレイ(登録商標)ディスク、若しくは他のコンピュータ可読媒体などの記憶媒体(即ち、非一時的記憶媒体)が含まれ得る。幾つかの例では、ネットワークサーバ(図示せず)は、発信源機器12から符号化ビデオデータを受信し、例えば、ネットワーク送信を介して、その符号化ビデオデータを宛先機器14に提供することができる。同様に、ディスクスタンピング設備などの媒体製造設備のコンピューティング機器は、発信源機器12から符号化ビデオデータを受信し、その符号化ビデオデータを含んでいるディスクを製造することができる。従って、コンピュータ可読媒体16は、様々な例において、様々な形態の1つ又は複数のコンピュータ可読媒体を含むことが理解されよう。
[0054]宛先機器14の入力インターフェース28は、コンピュータ可読媒体16から情報を受信する。コンピュータ可読媒体16の情報は、ブロック及び他のコード化単位、例えば、GOPの特性及び/又は処理を記述するシンタックス要素を含む、ビデオエンコーダ20によって定義されたシンタックス情報を含むことができ、シンタックス情報はまた、ビデオデコーダ30によって使用される。表示装置32は、復号されたビデオデータをユーザに表示し、陰極線管(CRT)、液晶表示器(LCD)、プラズマ表示器、有機発光ダイオード(OLED)表示器、又は別のタイプの表示装置などの、様々な表示装置のいずれかを備えることができる。
[0055]図1の例では、コンピュータ可読媒体16は、無線周波数(RF)スペクトル又は1つ以上の物理伝送線路などの任意のワイヤレス通信媒体若しくは有線通信媒体、又はワイヤレス媒体と有線媒体との任意の組合せを備える場合がある。コンピュータ可読媒体16は、ローカルエリアネットワーク、ワイドエリアネットワーク、又はインターネットなどのグローバルネットワークなどのパケットベースのネットワークの一部を形成する場合がある。コンピュータ可読媒体16は、一般に、有線媒体又はワイヤレス媒体の任意の適切な組合せを含む、発信源機器12から宛先機器14にビデオデータを送信するための、任意の適切な通信媒体又は異なる通信媒体の集合を表す。コンピュータ可読媒体16は、ルータ、スイッチ、基地局、又は発信源機器12から宛先機器14への通信を容易にするのに有用であり得る任意の他の機器を含む場合がある。
[0056]図1に示された例では、システム10は、1つ又は複数のルータ36などのネットワーク要素を含む場合がある、サーバ/コンテンツ配信ネットワーク34も含む。幾つかの例では、発信源機器12は、上述のように、様々なワイヤレス送信及び/又は有線送信又は記憶媒体を介して、サーバ/コンテンツ配信ネットワーク34と通信することができる。更に、図1の例では別々に示されたが、幾つかの例では、発信源機器12とサーバ/コンテンツ配信ネットワーク34は同じ機器を備える。サーバ/コンテンツ配信ネットワーク34は、(発信源機器12のビデオエンコーダ20からの)コード化ビデオデータの1つ又は複数のバージョンを記憶することができ、そのようなコード化ビデオデータを宛先機器14及びビデオデコーダ30によるアクセスに利用できるようにすることができる。幾つかの例では、ルータ36は、コード化ビデオデータを宛先機器14に、要求されたフォーマットで提供することを担当することができる。
[0057]図1には示されていないが、幾つかの態様では、ビデオエンコーダ20及びビデオデコーダ30は、各々オーディオエンコーダ及びオーディオデコーダと統合され得るし、適切なMUX−DEMUXユニット、又は他のハードウェア及びソフトウェアを含んで、共通のデータストリーム又は別個のデータストリーム内のオーディオとビデオの両方の符号化を処理することができる。適用可能な場合、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、又はユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠することができる。
[0058]幾つかの例では、ビデオエンコーダ20及びビデオデコーダ30は、そのスケーラブルビデオコード化(SVC)拡張、マルチビュービデオコード化(MVC)拡張、及びMVCベースの3DV拡張を含む、ISO/IEC MPEG−4 Visual及び(ISO/IEC MPEG−4 AVCとしても知られる)ITU−T H.264などのビデオ圧縮規格に従って動作する。場合によっては、MVCベースの3DVに準拠する任意の正当なビットストリームは、MVCプロファイル、例えばステレオハイプロファイルに準拠するサブビットストリームを常に含んでいる。更に、H.264/AVCに対する3次元ビデオ(3DV)コード化拡張、即ちAVCベースの3DVを生成する作業が進行中である。他の例では、ビデオエンコーダ20及びビデオデコーダ30は、本明細書に記載されたように、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、及びITU−T H.264、ISO/IEC Visual、又は来たるHEVC規格に従って動作することができる。
[0059]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研究グループによる2005年3月付けのITU−T勧告H.264「Advanced Video Coding for generic audiovisual services」に記載されており、本明細書ではH.264規格若しくはH.264仕様、又はH.264/AVC規格若しくはH.264/AVC仕様と呼ぶ場合がある。Joint Video Team(JVT)は、H.264/MPEG−4 AVCに対する拡張に取り組み続けている。
[0060]ビデオエンコーダ20及びビデオデコーダ30は、各々1つ又は複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、又はそれらの任意の組合せなどの、様々な適切なエンコーダ回路のいずれかとして実装され得る。ビデオエンコーダ20及びビデオデコーダ30の各々は、1つ又は複数のエンコーダ又はデコーダに含まれる場合があり、それらのいずれかは、複合エンコーダ/デコーダ(コーデック)の一部として統合される場合がある。ビデオエンコーダ20及び/又はビデオデコーダ30を含む装置は、集積回路、マイクロプロセッサ、及び/又は携帯電話などのワイヤレス通信機器を備える場合がある。他の装置には、カメラ、コンピュータ、モバイル機器、加入者機器、ブロードキャスト機器、セットトップボックス、サーバなどが含まれ得る。
[0061]以下でより詳細に記載される本開示の例によれば、図1のビデオデコーダ30は、所与のビューに関連付けられたビュー依存性を受信し、ビュー依存性のうちの1つ又は複数に関連付けられた予測のタイプを受信するように構成され得る。
[0062]最初に、H.264/アドバンストビデオコード化(AVC)規格の拡張のマルチビュービデオコード化技法が説明される。マルチビュービデオコード化のこの特定の実装形態は、本開示では「MVC/AVC」と呼ばれる場合がある。しかしながら、本開示の技法は、新生のHEVC規格のためのマルチビュー提案を含む、マルチビューコード化をサポートする任意のビデオコード化の規格又は技法に適用可能であり得る。上記のように、3Dビデオデータが単一の時間インスタンスに関連付けられた複数のビュー又はサンプルを含む場合があるか、又は複数のビュー又はサンプルが少なくとも1つのビューコンポーネント及び1つの深度コンポーネントから生成される場合があるので、本開示の技法は更に、3DVC機能を含む任意のビデオコード化の規格又は技法に適用可能であり得る。
[0063]典型的なMVC/AVC復号順序(即ち、ビットストリーム順序)が図2に示される。復号順序の構成はタイムファーストコード化と呼ばれる。アクセス単位の復号順序は、出力又は表示の順序と同一ではない場合があることに留意されたい。図2では、S0〜S7は、各々マルチビュービデオの異なるビューを指す。T0〜T8は、各々1つの出力時間インスタンスを表す。アクセス単位は、1つの出力時間インスタンスに対する全てのビューのコード化ピクチャを含むことができる。例えば、第1のアクセス単位は時間インスタンスT0に対するビューS0〜S7の全てを含むことができ、第2のアクセス単位は時間インスタンスT1に対するビューS0〜S7の全てを含むことができ、以下同様である。
[0064]上記で簡単に説明されたように、本開示は以下の定義を使用する場合がある。
ビューコンポーネント:単一のアクセス単位内のビューのコード化表現。ビューがコード化テクスチャ表現とコード化深度表現の両方を含むとき、ビューコンポーネントは、テクスチャビューコンポーネント及び深度ビューコンポーネントから構成される。
テクスチャビューコンポーネント:単一のアクセス単位内のビューのテクスチャのコード化表現。
深度ビューコンポーネント:単一のアクセス単位内のビューの深度のコード化表現。
[0065]図2では、ビューの各々はピクチャのセットを含む。例えば、ビューS0はピクチャ0、8、16、24、32、40、48、56、及び64のセットを含み、ビューS1はピクチャ1、9、17、25、33、41、49、57、及び65のセットを含み、以下同様である。各セットは2つのピクチャを含み、一方のピクチャはテクスチャビューコンポーネントと呼ばれ、他方のピクチャは深度ビューコンポーネントと呼ばれる。ビューのピクチャのセット内のテクスチャビューコンポーネント及び深度ビューコンポーネントは、互いに対応すると見なされ得る。例えば、ビューのピクチャのセット内のテクスチャビューコンポーネントは、そのビューのピクチャのセット内の深度ビューコンポーネントに対応すると見なされ、その逆も同様である(即ち、深度ビューコンポーネントはセット内のそのテクスチャビューコンポーネントに対応し、その逆も同様である)。本開示で使用する、深度ビューコンポーネントに対応するテクスチャビューコンポーネントは、テクスチャビューコンポーネントと見なされ得るし、深度ビューコンポーネントは単一のアクセス単位の同じビューの一部である。
[0066]テクスチャビューコンポーネントは、表示される実際の画像コンテンツを含む。例えば、テクスチャビューコンポーネントは、ルーマ(Y)成分と、クロマ(Cb及びCr)成分とを含むことができる。深度ビューコンポーネントは、その対応するテクスチャビューコンポーネント内の画素の相対深度を示すことができる。一例として、深度ビューコンポーネントは、ルーマ値のみを含むグレースケール画像である。言い換えれば、深度ビューコンポーネントは、任意のテクスチャの画像コンテンツを伝達するのではなく、テクスチャビューコンポーネント内で定義された様々な画素の相対深度の測定値を提供することができる。深度ビューコンポーネント内の深度値は、ゼロ視差平面に対するそれぞれの画素の深度、又は場合によっては他の何らかの基準を定義することができる。
[0067]概念上、深度ビューコンポーネント内の純白の画素は、対応するテクスチャビューコンポーネント内のその対応する1つ又は複数の画素がビューアから見てより近いことを示し、かつ深度ビューコンポーネント内の純黒の画素は、対応するテクスチャビューコンポーネント内のその対応する1つ又は複数の画素がビューアから見てより遠いことを示す。黒と白との間のグレーの様々な色合いは、様々な深度レベルを示す。例えば、深度ビューコンポーネント内の濃いグレーの画素は、テクスチャビューコンポーネント内のその対応する画素が、深度ビューコンポーネント内の薄いグレーの画素よりも遠いことを示す。画素の深度を識別するためにグレースケールのみが必要になるので、深度ビューコンポーネント用の色値がいかなる目的も果たし得ないことから、深度ビューコンポーネントはクロマ成分を含む必要がない。深度を識別するためにルーマ値(例えば、強度値)のみを使用する深度ビューコンポーネントは、説明のために与えられ、限定するものと見なされるべきではない。
[0068]より一般的な意味では、深度ビューコンポーネントは、最小値から最大値までの範囲の値を備えることができる。1つの特定の基準のフレームによれば、最大深度値を有する深度ビューコンポーネント内の画素は、より低い値を有する深度ビューコンポーネント内の画素に対応するテクスチャビューコンポーネント内の画素と比べてビューアからより遠いものとして、テクスチャビューコンポーネント内のそれぞれの画素の深度を定義することができる。その結果、最小深度値を有する深度ビューコンポーネント内の画素は、より高い値を有する深度ビューコンポーネント内の画素に対応するテクスチャビューコンポーネント内の画素と比べてビューアからより近いものとして、テクスチャビューコンポーネント内のそれぞれの画素の深度を定義することができる。他の例では、基準のフレームは異なるように定義され得る。例えば、基準のフレームは、比較的高い値と比較的低い値の意味が反転するように定義され得る。即ち、比較的低い値がビューアからより遠い深度に対応する場合があり、より高い値がビューアからより近い深度に対応する場合がある。他の例では、テクスチャビューコンポーネント内の画素の相対深度を示すために、任意の技法が利用され得る。
[0069]マルチビュービデオコード化用の(各ビュー内のピクチャ間予測とビュー間予測の両方を含む)典型的なMVC/AVC予測構造が図3に示される。予測方向は矢印によって示され、矢印の終点のオブジェクトは、予測参照として矢印の始点のオブジェクトを使用する。MVC/AVCでは、H.264/AVC動き補償のシンタックスを使用するが、異なるビュー内のピクチャが参照ピクチャとして使用されることを可能にする視差動き補償により、ビュー間予測がサポートされる。
[0070]図3は、例示的なMVC/AVCの予測パターンを示す概念図である。図3の例では、8個のビューが示され、ビューごとに12個の時間位置が示される。一般に、図3の各行はビューに対応し、各列は時間位置を示す。ビューの各々は、他のビューに対する相対的なカメラ位置を示すために使用され得る、ビュー識別子(「view_id」)を使用して識別され得る。図3に示された例では、ビューIDは「S0」〜「S7」として示されているが、数字のビューIDが使用される場合もある。加えて、時間位置の各々は、ピクチャの表示順序を示すピクチャ順序カウント(POC)値を使用して識別され得る。図3に示された例では、POC値は「T0」〜「T11」として示されている。
[0071]MVC/AVCがH.264/AVCデコーダによって復号可能である、所謂ベースビューを有し、ステレオビューペアもMVC/AVCによってサポートされ得るが、MVC/AVCの利点は、MVC/AVCが、3Dビデオ入力として3つ以上のビューを使用し、複数のビューによって表されるこの3Dビデオを復号する例をサポートできることである。MVC/AVCデコーダを有するクライアントのレンダラは、複数のビューを有する3Dビデオコンテンツを予想することができる。
[0072]図3のピクチャは、各行と各列の交点に示されている。H.264/AVC規格は、フレームという用語を使用してビデオの一部分を表す場合がある。本開示は、ピクチャという用語とフレームという用語とを互換的に使用する場合がある。
[0073]図3のピクチャは、対応するピクチャがイントラコード化される(即ち、Iフレームである)か、又は一方向に(即ち、Pフレームとして)インターコード化されるか、又は複数の方向に(即ち、Bフレームとして)インターコード化されるかを指定する、文字を含む影付きブロックを使用して示される。一般に、予測は矢印によって示され、ここで矢印の終点のピクチャは、予測参照のために矢印の始点のオブジェクトを使用する。例えば、時間位置T0にあるビューS2のPフレームは、時間位置T0にあるビューS0のIフレームから予測される。図3に示されたピクチャの各々は、ビューコンポーネントと呼ばれる場合がある。即ち、ビューのビューコンポーネントは、ビューの特定の時間インスタンスに対応する。
[0074]シングルビュービデオの符号化と同様に、マルチビュービデオコード化のビデオシーケンスのピクチャは、様々な時間位置にあるピクチャに関して予測符号化され得る。例えば、時間位置T1にあるビューS0のbピクチャは、時間位置T0にあるビューS0のIピクチャからそのbピクチャに向けられた矢印を有し、その矢印は、bピクチャがIピクチャから予測されることを示す。しかしながら、加えて、マルチビュービデオ符号化のコンテキストにおいて、ピクチャはビュー間予測され得る。即ち、ビューコンポーネントは、参照用に他のビュー内のビューコンポーネントを使用することができる。MVC/AVCでは、例えば、別のビュー内のビューコンポーネントがインター予測参照であるかのように、ビュー間予測が実現される。潜在的なビュー間参照は、シーケンスパラメータセット(SPS)のMVC/AVC拡張において信号伝達され、インター予測参照又はビュー間予測参照の柔軟な順序付けを可能にする、参照ピクチャリスト構築プロセスによって修正され得る。ビュー間予測はまた、3D−HEVC(マルチビュープラス深度)を含むHEVCの提案されたマルチビュー拡張の機能である。
[0075]図3は、ビュー間予測の様々な例を提供する。図3の例では、ビューS1のピクチャは、ビューS1の様々な時間位置にあるピクチャから予測されるものとして、及び同じ時間位置にあるビューS0及びビューS2のピクチャのうちのピクチャからビュー間予測されるものとして示されている。例えば、時間位置T1にあるビューS1のbフレームは、時間位置T0及び時間位置T2にあるビューS1のBフレームの各々、及び時間位置T1にあるビューS0並びにビューS2のbフレームから予測される。
[0076]図3の例では、大文字「B」及び小文字「b」は、異なる符号化方法ではなく、ピクチャ間の異なる階層関係を示すものとする。一般に、大文字の「B」フレームは、小文字の「b」フレームよりも予測階層が比較的高い。図3はまた、様々なレベルの陰影を使用して予測階層における変形形態を示し、より大きい量の陰影の(即ち、比較的暗い)ピクチャは、より少ない陰影を有する(即ち、比較的明るい)ピクチャよりも予測階層が高い。例えば、図3の全てのIフレームは完全陰影を用いて示されるが、Pフレームは幾分明るい陰影を有し、Bフレーム(及び小文字のbフレーム)は、互いに対して様々なレベルの陰影を有するが、Pフレーム及びIフレームの陰影よりも常に明るい。一般に、階層が比較的高いピクチャが、階層が比較的低いピクチャの復号中に参照ピクチャとして使用され得るように、予測階層が比較的高いピクチャは、階層が比較的低いピクチャを復号する前に復号されるべきであるという点で、予測階層はビュー順序インデックスに関係する。ビュー順序インデックスは、アクセス単位内のビューコンポーネントの復号順序を示すインデックスである。ビュー順序インデックスは、SPSなどのパラメータセット内で暗示される場合がある。
[0077]このようにして、参照ピクチャとして使用されるピクチャは、その参照ピクチャを参照して符号化されたピクチャを復号する前に復号され得る。ビュー順序インデックスは、アクセス単位内のビューコンポーネントの復号順序を示すインデックスである。MVC/AVCによれば、ビュー順序インデックスiごとに、対応するview_idが信号伝達される。ビューコンポーネントの復号は、ビュー順序インデックスの昇順に従う。全てのビューが提示された場合、ビュー順序インデックスのセットは、0からビューの全数よりも1少ない数まで連続的に順序付けされたセットを備える。
[0078]場合によっては、全ビットストリームのサブセットが抽出されて、依然としてMVC/AVCに準拠するサブビットストリームを形成することができる。例えば、サーバによって提供されるサービス、1つ又は複数のクライアントのデコーダの容量、サポート、及び能力、及び/又は、1つ以上のクライアントの選好に基づいて、特定の適用例が必要とする場合がある、多くの可能なサブビットストリームが存在する。例えば、あるクライアントが3つのビューのみを必要とする場合があり、2つのシナリオがあり得る。一例では、あるクライアントは滑らかなビューイング体験を必要とし、view_id値S0、S1、及びS2のビューを選好する場合があり、一方、別の他のクライアントはビュースケーラビリティを必要とし、view_id値S0、S2、及びS4のビューを選好する場合がある。これらのサブビットストリームの両方は、独立したMVCビットストリームとして復号され得るし、同時にサポートされ得る。
[0079]一般に、カメラの位置、方向、及び、異なるビュー間の幾何学的関係は、ビューID又はビュー順序インデックスから推論され得る。この目的のために、内部と外部の両方のカメラパラメータは、マルチビュー収集情報SEIメッセージを使用するビットストリーム内に含まれ得る。
[0080]上記のように、図3は8個のビュー(S0〜S7)を示すが、MVC/AVC拡張は1024個までのビューをサポートし、NAL単位ヘッダ内のview_idを使用して、NAL単位が属するビューを識別する。本開示の態様によれば、ビュー順序インデックスは、NAL単位ヘッダの一部として信号伝達され得る。即ち、比較の目的で、ビュー順序インデックスは、MVC/AVC拡張のNAL単位ヘッダ内で信号伝達されるview_idと置き換わることができる。ビュー順序は、一般に、アクセス単位内のビューの順序付けを記述し、ビュー順序インデックスは、そのアクセス単位のビュー順序における特定のビューを識別する。即ち、ビュー順序インデックスは、アクセス単位の対応するビューコンポーネントの復号順序を記述する。
[0081]幾つかの例では、図3はテクスチャビューコンポーネントを示すものとして見なされ得る。例えば、図2に示されたIピクチャ、Pピクチャ、Bピクチャ、及びbピクチャは、ビューの各々のためのテクスチャビューコンポーネントと見なされ得る。本開示に記載された少なくとも幾つかの技法によれば、図3に示されたテクスチャビューコンポーネントの各々について、対応する深度ビューコンポーネントが存在する場合がある。例えば、上述されたように、本開示の技法は、テクスチャビューコンポーネントと深度ビューコンポーネントの両方を取り入れる3DVコード化規格を含むビデオコード化規格に適用され得る。代替として、少なくとも幾つかの例では、本開示の技法はまた、マルチビュー互換性を含み、テクスチャビューコンポーネントのみを取り入れるコード化規格に関連する。幾つかの例では、深度ビューコンポーネントは、対応するテクスチャビューコンポーネントについて図3に示された方式と同様の方式で予測され得る。
[0082]2つのビューのコード化もMVC/AVCによってサポートされ得る。MVC/AVCの利点の1つは、MVC/AVCエンコーダが3Dビデオ入力として3つ以上のビューを取り込むことができ、かつMVC/AVCデコーダがそのようなマルチビュー表現を復号することができることである。従って、MVC/AVCデコーダを有する任意のレンダラは、3つ以上のビューを有する3Dビデオコンテンツを復号することができる。
[0083]上記で説明されたように、MVC/AVCでは、ビュー間予測は同じアクセス単位内の(即ち、場合によっては、同じ時間インスタンスを有する)ピクチャ間で可能にされる。非ベースビューのうちの1つの中のピクチャをコード化するとき、ピクチャが異なるビュー内にあるが同じ時間インスタンス内にある場合、そのピクチャは参照ピクチャリストに追加され得る。ビュー間予測の参照ピクチャは、任意のインター予測の参照ピクチャと同様に、参照ピクチャリストの任意の位置に置かれ得る。図3に示されたように、ビューコンポーネントは、参照用に他のビュー内のビューコンポーネントを使用することができる。MVC/AVCでは、別のビュー内のビューコンポーネントがインター予測参照であったかのように、ビュー間予測が実現される。
[0084]ビデオシーケンスは、通常、一連のビデオフレームを含む。ピクチャのグループ(GOP)は、一般に、一連の1つ又は複数のビデオフレームを備える。GOPは、GOPに含まれるフレームの数を記述するシンタックスデータを、GOPのヘッダ、GOPの1つ又は複数のフレームのヘッダ、又は他の場所に含む場合がある。各フレームは、それぞれのフレーム用の符号化モードを記述するフレームシンタックスデータを含む場合がある。ビデオエンコーダ20は、通常、ビデオデータを符号化するために、個々のビデオフレーム内のビデオブロックに対して動作する。ビデオブロックは、ブロック又はブロックの区分に対応することができる。ビデオブロックは、固定サイズ又は可変サイズを有することができ、指定されたコード化規格に応じてサイズが異なる場合がある。各ビデオフレームは複数のスライスを含む場合がある。各スライスは複数のブロックを含む場合があり、それらのブロックは、サブブロックとも呼ばれる区分(partitions)に構成される場合がある。
[0085]一例として、ITU−T H.264規格は、ルーマ成分については16×16、8×8、又は4×4、及びクロマ成分については8×8などの様々なブロックサイズでのイントラ予測をサポートし、ならびにルーマ成分については16×16、16×8、8×16、8×8、8×4、4×8及び4×4、並びにクロマ成分については対応するスケーリングされたサイズなどの様々なブロックサイズでのインター予測をサポートする。本開示では、「N×(x)N」及び「N×(by)N」は、垂直寸法及び水平寸法に関するブロックの画素寸法、例えば、16×(x)16画素又は16×(by)16画素を指すために互換的に使用され得る。一般に、16×16ブロックは、垂直方向に16画素を有し(y=16)、水平方向に16画素を有する(x=16)。同様に、N×Nブロックは、一般に、垂直方向にN画素を有し、水平方向にN画素を有し、ここでNは非負の整数値を表す。ブロック内の画素は行と列で構成され得る。その上、ブロックは、必ずしも、水平方向において垂直方向と同じ数の画素を有する必要があるとは限らない。例えば、ブロックはN×Mの画素を備える場合があり、ここで、Mは必ずしもNに等しいとは限らない。
[0086]高効率ビデオコード化(HEVC)と現在呼ばれる、新しいビデオコード化規格を開発する作業が現在進行中である。新生のHEVC規格は、ITU H.265規格と呼ばれる場合もある。規格化の活動は、HEVCテストモデル(HM)と呼ばれるビデオコード化機器のモデルに基づく。HMは、例えば、ITU−T H.264/AVCに従う機器に対して、ビデオコード化機器の幾つかの能力を仮定する。
[0087]HMは、ビデオデータのブロックをコード化単位(CU)と呼ぶ。ビットストリーム内のシンタックスデータは、画素の数に関して最大のコード化単位である最大コード化単位(LCU)を定義することができる。一般に、CUは、CUがサイズの区別を有していないことを除いて、H.264のマクロブロックと同様の目的を有する。従って、CUはサブCUに分割され得る。一般に、本開示におけるCUへの参照は、ピクチャの最大コード化単位(LCU)又はLCUのサブCUを指す場合がある。LCUはサブCUに分割され得るし、各サブCUはサブCUに分割され得る。ビットストリーム用のシンタックスデータは、CU深度と呼ばれる、LCUが分割され得る最大回数を定義することができる。それに応じて、ビットストリームはまた、最小コード化単位(SCU)を定義することができる。本開示はまた、「ブロック」という用語を使用して、CU、PU、又はTUのいずれをも指す。
[0088]LCUは、4分木データ構造に関連付けられ得る。一般に、4分木データ構造は、CU当たり1つのノードを含み、ルートノードがLCUに対応する。CUが4つのサブCUに分割された場合、CUに対応するノードは4つのリーフノードを含み、リーフノードの各々はサブCUのうちの1つに対応する。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と呼ばれる。
[0089]CUは、CUがサイズ差異を有していないことを除いて、H.264規格のマクロブロックと同様の目的を有する。例えば、ツリーブロックは、(サブCUとも呼ばれる)4つの子ノードに分割することができ、各子ノードが今度は親ノードになり、別の4つの子ノードに分割することができる。4分木のリーフノードと呼ばれる、最後の分割されない子ノードは、リーフCUとも呼ばれるコード化ノードを備える。コード化ビットストリームに関連するシンタックスデータは、最大CU深さと呼ばれる、ツリーブロックを分割できる最大回数を確定することができ、また、コード化ノードの最小サイズを確定することもできる。それに応じて、ビットストリームは最小コード化単位(SCU)を確定することもできる。本開示は、HEVCのコンテキストにおけるCU、PU、又はTU、若しくは他の規格のコンテキストにおける同様のデータ構造(例えば、H.264/AVCにおけるマクロブロック及びそのサブブロック)のいずれかを指すために「ブロック」という用語を使用する。
[0090]分割されないCUは、1つ又は複数の予測単位(PU)を含む場合がある。一般に、PUは、対応するCUの全部又は一部を表し、そのPU用の参照サンプルを取り出すためのデータを含む。例えば、PUがイントラモード符号化されるとき、PUは、そのPU用のイントラ予測モードを記述するデータを含む場合がある。別の例として、PUがインターモード符号化されるとき、PUは、そのPU用の動きベクトルを定義するデータを含む場合がある。動きベクトルを定義するデータは、例えば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度(例えば、1/4画素精度又は1/8画素精度)、動きベクトルが指す参照フレーム、及び/又は動きベクトル用の参照リスト(例えば、リスト0又はリスト1)を記述することができる。PUを定義するCU用のデータはまた、例えば、CUを1つ又は複数のPUに区分化することを記述することができる。区分化モードは、CUがコード化されていないか、イントラ予測モード符号化されるか、又はインター予測モード符号化されるかの間で異なる場合がある。
[0091]CUは、コード化ノードと、コード化ノードに関連する予測単位(PU)及び変換単位(TU)とを含む。CUのサイズはコード化ノードのサイズに対応し、形状が正方形でなければならない。CUのサイズは、8×8画素から、最大64×64以上の画素を有するツリーブロックのサイズまで及ぶ場合がある。各CUは、1つ又は複数のPUと、1つ又は複数のTUとを含んでいる場合がある。CUに関連するシンタックスデータは、例えば、CUを1つ又は複数のPUに区分化することを記述することができる。区分モードは、CUが、スキップモード又はダイレクトモードで符号化されるか、イントラ予測モードで符号化されるか、若しくはインター予測モードで符号化されるかの間で異なる場合がある。PUは、形状が非正方形になるように区分化することができる。CUに関連するシンタックスデータは、例えば、4分木に従ってCUを1つ又は複数のTUに区分化することも記述することができる。TUは、形状が正方形又は非正方形(例えば、矩形)であり得る。加えて、TUは、必ずしもPUのサイズに制限されるとは限らない。従って、TUは、同じCU用の対応するPUよりも大きくても又は小さくてもよい。幾つかの例では、TUの最大サイズは、対応するCUのサイズに対応する場合がある。
[0092]HEVC規格は、異なるCUで異なる場合があるTUに従って、変換を可能にする。TUは、通常、区分されたLCU用に確定された所与のCU内のPUのサイズに基づいてサイズ決定されるが、常にそうであるとは限らない。TUは、通常、PUと同じサイズであるか又はPUよりも小さい。幾つかの例では、CUに対応する残差サンプルは、「残差4分木」(RQT)として知られる4分木構造を使用して、より小さい単位に再分割することができる。RQTのリーフノードは変換単位(TU)と呼ばれる場合がある。TUに関連する画素差分値は、変換されて変換係数を生成することができ、その変換係数は量子化することができる。
[0093]リーフCUは、1つ又は複数の予測単位(PU)を含むことができる。一般に、PUは、対応するCUの全部又は一部に対応する空間的エリアを表し、そのPU用の参照サンプルを取り出すためのデータを含むことができる。更に、PUは予測に関係するデータを含む。例えば、PUがイントラモードで符号化されるとき、PU用のデータは残差4分木(RQT)に含むことができ、RQTはPUに対応するTU用のイントラ予測モードを記述するデータを含むことができる。別の例として、PUがインターモードで符号化されるとき、PUは、PU用の1つ又は複数の動きベクトルを確定するデータを含むことができる。PU用の動きベクトルを確定するデータは、例えば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトル用の解像度(例えば、1/4画素精度若しくは1/8画素精度)、動きベクトルが指す参照ピクチャ、及び/又は動きベクトル用の参照ピクチャリスト(例えば、リスト0、リスト1、若しくはリストC)を記述することができる。
[0094]1つ又は複数のPUを有するリーフCUはまた、1つ又は複数の変換単位(TU)を含むことができる。変換単位は、上記で説明されたように、(TU4分木構造とも呼ばれる)RQTを使用して指定することができる。例えば、分割フラグは、リーフCUが4つの変換単位に分割されるかどうかを示すことができる。次いで、各変換単位は、更なるサブTUに更に分割することができる。TUがこれ以上分割されないとき、そのTUはリーフTUと呼ぶことができる。一般に、イントラコード化の場合、リーフCUに属する全てのリーフTUは、同じイントラ予測モードを共有する。即ち、一般に、リーフCUの全てのTUについて予測値を計算するように、同じイントラ予測モードが適用される。イントラコード化の場合、ビデオエンコーダ20は、イントラ予測モードを使用してリーフTUごとの残差値を、TUに対応するCUの一部と元のブロックとの間の差分として計算することができる。TUは、必ずしもPUのサイズに制限されるとは限らない。従って、TUはPUよりも大きく又は小さくなることができる。イントラコード化の場合、PUは、同じCU用の対応するリーフTUとコロケートすることができる。幾つかの例では、リーフTUの最大サイズは、対応するリーフCUのサイズに該当する場合がある。
[0095]更に、リーフCUのTUはまた、残差4分木(RQT)と呼ばれる、それぞれの4分木データ構造に関連付けることができる。即ち、リーフCUは、リーフCUがどのようにTUに区分されるかを示す4分木を含むことができる。TU4分木のルートノードは、一般にリーフCUに対応し、CU4分木のルートノードは、一般にツリーブロック(又はLCU)に対応する。分割されないRQTのTUはリーフTUと呼ばれる。一般に、本開示は、特に明記しない限り、リーフCU及びリーフTUに言及するために、それぞれCU及びTUという用語を使用する。
[0096]上記のように、イントラ予測は、あるピクチャの現在のCUのPUを、同じピクチャの以前コード化されたCUから予測することを含む。より具体的には、ビデオエンコーダは、特定のイントラ予測モードを使用して、あるピクチャの現在のCUをイントラ予測することができる。HMエンコーダは、最大33個のイントラ予測モードで構成され得る。従って、方向性イントラ予測モードと方向性変換との間の1対1のマッピングをサポートするために、HMエンコーダ及びHMデコーダは、サポートされる変換サイズごとに66個の行列を記憶する必要があり得る。更に、全ての33個のイントラ予測モードがサポートされるブロックサイズは、比較的大きいブロック、例えば、32×32画素、64×64画素、又はより一層大きい画素であり得る。
[0097]ビデオシーケンスは、通常、一連のピクチャ(又は、互換的に「フレーム」)を含む。ピクチャのグループ(GOP)は、一般に、ビデオピクチャのうちの一連の1つ又は複数を備える。GOPは、GOP内に含まれるピクチャの数を記述するシンタックスデータを、GOPのヘッダ内、ピクチャのうちの1つ又は複数のヘッダ内、又は他の場所に含むことができる。ピクチャの各スライスは、それぞれのスライス用の符号化モードを記述するスライスシンタックスデータを含むことができる。ビデオエンコーダ20は、通常、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックは、CU内のコード化ノードに対応することができる。ビデオブロックは、固定サイズ又は可変サイズを有することができ、指定されたコード化規格に従ってサイズが異なる場合がある。
[0098]一例として、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%とに区分される。25%の区分に対応するCUの部分は、「n」とその後ろに付く「Up」、「Down」、「Left」、又は「Right」という指示によって示される。従って、例えば「2N×nU」は、上部に2N×0.5NのPUと下部に2N×1.5NのPUとで水平方向に区分された2N×2NのCUを指す。
[0099]本開示では、「N×N(NxN)」と「N×N(N by N)」は、垂直寸法及び水平寸法に関するビデオブロックの画素寸法、例えば、16×(x)16画素又は16×(by)16画素を指すために互換的に使用することができる。一般に、16×16ブロックは、垂直方向に16画素を有し(y=16)、水平方向に16画素を有する(x=16)。同様に、N×Nブロックは、一般に、垂直方向にN画素を有し、水平方向にN画素を有し、ここでNは非負整数値を表す。ブロック内の画素は行と列とに配置することができる。更に、ブロックは、必ずしも、水平方向に垂直方向と同じ数の画素を有する必要があるとは限らない。例えば、ブロックはN×M画素を備えることができ、ここでMは必ずしもNに等しいとは限らない。
[0100]CUのPUを使用したイントラ予測コード化又はインター予測コード化の後、ビデオエンコーダ20は、CUのTU用の残差データを計算することができる。この残差値は、一般に、ブロック用の予測データとブロックの真値との間の差分に対応する。ブロックの残差値を更に圧縮するために、残差値は、できる限り多くの(「エネルギー」とも呼ばれる)データをできる限り少ない係数に圧縮する、変換係数のセットに変換され得る。変換係数は、元のブロックと同じサイズであり得る係数の2次元行列に対応する。言い換えると、元のブロック内の画素と同数の変換係数が存在する可能性がある。しかしながら、変換により、変換係数の多くは、0に等しい値を有する場合がある。
[0101]PUは、(画素領域とも呼ばれる)空間領域において予測画素データを生成する方法又はモードを記述するシンタックスデータを備えることができ、TUは、変換、例えば、残差ビデオデータに対する離散コサイン変換(DCT)、整数変換、ウェーブレット変換、又は概念的に同様の変換の適用後、変換領域において係数を備えることができる。残差データは、符号化されていないピクチャの画素と、PUに対応する予測値との間の画素差分に対応することができる。ビデオエンコーダ20は、CU用の残差データを含むTUを形成し、次いで、TUを変換して、CU用の変換係数を生成することができる。
[0102]変換係数を生成する任意の変換の後、ビデオエンコーダ20は、変換係数の量子化を実行することができる。量子化は、一般に、相対的に大きい範囲内の値を相対的に小さい範囲内の値にマッピングすることに関与し、従って、量子化変換係数を表すために必要とされるデータの量を削減する。量子化プロセスは、係数の一部又は全部に関連するビット深さを低減することができる。例えば、量子化中にnビットの値をmビットの値に切り捨てることができ、ここでnはmよりも大きい。
[0103]量子化の後、ビデオエンコーダは変換係数を走査して、量子化変換係数を含む2次元行列から1次元ベクトルを生成することができる。走査は、より高いエネルギー(従ってより低い周波数)の係数をアレイの前方に配置し、より低いエネルギー(従ってより高い周波数)の係数をアレイの後方に配置するように設計することができる。幾つかの例では、ビデオエンコーダ20は、量子化変換係数を走査して、エントロピー符号化できるシリアル化ベクトルを生成するために、予め定義された走査順序を利用することができる。他の例では、ビデオエンコーダ20は適応走査を実行することができる。
[0104]量子化変換係数を走査して1次元ベクトルを形成した後、ビデオエンコーダ20は、例えば、コンテキスト適応型可変長コード化(CAVLC)、コンテキスト適応型バイナリ算術コード化(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コード化(SBAC)、確率間隔区分エントロピー(PIPE)コード化、又は別のエントロピー符号化方法に従って、1次元ベクトルをエントロピー符号化することができる。ビデオエンコーダ20はまた、ビデオデータを復号する際にビデオデコーダ30が使用するための符号化ビデオデータに関連するシンタックス要素をエントロピー符号化することができる。例えば、量子化変換係数についての絶対値及び対応する符号(例えば、「+1」又は「−1」)として表される係数値は、エントロピーコード化技法を使用して符号化され得る。
[0105]CABACを実行するために、ビデオエンコーダ20は、送信されるべきシンボルにコンテキストモデル内のコンテキストを割り当てることができる。コンテキストは、例えば、シンボルの近傍値が非0であるか否かに関係する場合がある。CAVLCを実行するために、ビデオエンコーダ20は、送信されるべきシンボル用の可変長コードを選択することができる。VLCにおけるコードワードは、比較的短いコードが優勢シンボル(more probable symbols)に対応し、より長いコードが劣勢シンボル(less probable symbols)に対応するように構築することができる。このようにして、VLCを使用すると、例えば、送信されるべきシンボルごとに等長コードワードを使用するよりも、ビット節約を実現することができる。確率決定は、シンボルに割り当てられるコンテキストに基づく場合がある。
[0106]ビデオエンコーダ20は更に、ブロックベースのシンタックスデータ、ピクチャベースのシンタックスデータ、及びGOPベースのシンタックスデータなどのシンタックスデータを、例えば、ピクチャヘッダ、ブロックヘッダ、スライスヘッダ、又はGOPヘッダの中でビデオデコーダ30に送ることができる。GOPシンタックスデータは、それぞれのGOP内のピクチャの数を記述することができ、ピクチャシンタックスデータは、対応するピクチャを符号化するために使用される符号化/予測モードを示すことができる。
[0107]幾つかの例では、ビデオデータを復号するときに使用できる特定のパラメータセットを、ビデオエンコーダ20は生成することができ、ビデオデコーダ30は受信することができる。例えば、パラメータセットは、(シーケンスパラメータセット(SPS)内の)シーケンスレベルヘッダ情報と、(ピクチャパラメータセット(PPS)内の)まれにしか変化しないピクチャレベルヘッダ情報とを含んでいる場合がある。パラメータセット(例えば、PPS及びSPS)がある場合、まれにしか変化しない情報をシーケンス(例えば、ピクチャのシーケンス)ごと又はピクチャごとに繰り返す必要はなく、従ってコード化効率を改善することができる。更に、パラメータセットを使用すると、重要なヘッダ情報の帯域外送信が可能になり、誤り耐性のための冗長送信の必要を回避することができる。帯域外送信の例では、補足強調情報(SEI)のNAL単位などの他のNAL単位とは異なるチャネル上で、パラメータセットのNAL単位を送信することができる。
[0108](SEIメッセージと呼ばれる)SEIのNAL単位は、VCLのNAL単位からのコード化ピクチャサンプルを復号するためには必要でないが、復号、表示、誤り耐性、及び他の目的に関係するプロセスを支援できる情報を含んでいる場合がある。SEIメッセージは、非VCLのNAL単位に含まれている場合がある。SEIメッセージは、幾つかの標準仕様の規範部分に含まれている場合があり、従って、標準準拠のデコーダ実装のために常に必須であるとは限らない。SEIメッセージは、シーケンスレベルのSEIメッセージ又はピクチャレベルのSEIメッセージであり得る。SVCの例ではスケーラビリティ情報SEIメッセージ、MVCではビュースケーラビリティ情報SEIメッセージなどのSEIメッセージ内に、何らかのシーケンスレベル情報が含まれている場合がある。
[0109]幾つかの例では、ビデオエンコーダ20は、MVC/AVCに準拠するマルチビュービデオのビットストリームを符号化することができる。同様に、ビデオデコーダ30は、MVC/AVCに準拠するマルチビュービデオのビットストリームを復号することができる。MVC/AVCの最新のジョイントドラフトは、「Advanced video coding for generic audiovisual services」、ITU−T勧告H.264、2010年3月に記載されており、その内容全体は参照により本明細書に組み込まれる。
[0110]MVC/AVCのNAL単位は、NAL単位タイプを含む1バイトのNAL単位ヘッダ及びNAL単位ヘッダを4バイトに拡張するMVC/AVCのNAL単位ヘッダ拡張部を含む場合がある。一例として、MVC/AVCのNAL単位ヘッダ拡張部は、以下の表1の中のシンタックス要素を含むことができる。
[0111]上記の表1では、idr_flag要素は、NAL単位が瞬時復号リフレッシュ(IDR)ピクチャに属するか、又は閉GOPランダムアクセスポイントとして使用できるビューIDR(V−IDR)ピクチャに属するかを示すことができる。例えば、IDRピクチャ、及び表示順序とビットストリーム順序の両方でそれに続く全てのピクチャは、ビットストリーム順序又は表示順序のいずれかで前のピクチャを復号することなしに正しく復号することができる。priority_id要素は、変化するネットワーク状態及び/又は(例えば、単一パス適応プロセスなどの)ビデオデコーダ30及び/又は表示装置32の能力に応じてビットストリームを変更する、ビットストリーム適応プロセスで使用することができる。view_id要素は、NAL単位が所属するビューのビュー識別子を示すために使用することができ、ビュー識別子は、例えば、ビュー間予測用にMVC/AVCデコーダの内部で、レンダリング用にデコーダの外部で使用することができる。幾つかの例では、view_idは、予め定義されたカメラIDに等しく設定することができ、比較的大きい場合がある。temporal_id要素は、特定のフレームレートに対応できる、現在のNAL単位の時間レベルを示すために使用することができる。
[0112]anchor_pic_flag要素は、NAL単位が開GOPランダムアクセスポイントとして使用できるアンカーピクチャに属するかどうかを示すために使用することができる。例えば、アンカーピクチャ、及び表示順序でそれに続く全てのピクチャは、復号順序(即ち、ビットストリーム順序)で前のピクチャを復号することなしに正しく復号することができ、従ってランダムアクセスポイントとして使用することができる。アンカーピクチャと非アンカーピクチャとは異なるビュー依存性を有することができ、それらの両方はSPS内で通知することができる。即ち、本明細書に記載されたように、ビュー依存性は、一般に、現在コード化されているビューが依存するビューを指す。言い換えれば、ビュー依存性は、現在コード化されているビューをどのビューから予測できるかを説明することができる。幾つかの例によれば、ビュー依存性は、SPSのMVC/AVC拡張において通知することができる。そのような例では、全てのビュー間予測は、SPSのMVC/AVC拡張によって指定された範囲内で行うことができる。inter_view_flag要素は、NAL単位が他のビュー内のNAL単位用のビュー間予測に使用されるかどうかを示すために使用することができる。
[0113]MVC/AVCビットストリームのベースビュー用の上記4バイトのNAL単位ヘッダ情報を搬送するために、プレフィックスNAL単位をMVC/AVC内に定義することができる。MVC/AVCのコンテキストにおいて、ベースビューアクセス単位は、特定のビューの現在時間インスタンスのVCLのNAL単位及びベースビューアクセス単位用のプレフィックスNAL単位を含むことができ、プレフィックスNAL単位はNAL単位ヘッダのみを含んでいる場合がある。プレフィックスNAL単位が(例えば、単一ビューの復号などの)復号に必要でない場合、デコーダはプレフィックスNAL単位を無視及び/又は廃棄することができる。
[0114]SPSのMVC/AVC拡張に関して、MVC/AVCのSPSはビュー間予測の目的で使用できるビューを示すことができる。例えば、潜在的なビュー間参照は、SPSのMVC/AVC拡張において通知することができ、インター予測参照又はビュー間予測参照のフレキシブルな順序付けを可能にする参照ピクチャリストの構築プロセスによって修正することができる。例示的なMVC/AVCのSPSが下記の表2で説明される。
[0115]幾つかの例によれば、ビュー依存性は、SPSのMVC/AVC拡張において通知することができる。全てのビュー間予測は、SPSのMVC/AVC拡張によって指定された範囲内で行うことができる。即ち、SPSは、現在コード化されているビューによる予測の目的でどのビューを参照できるかを説明することができる。上記の表2では、num_anchor_refs_l0[i]要素は、リスト0(例えば、RefPicList0)用の初期化された参照ピクチャリスト内のビュー間予測用のビューコンポーネントの数を指定することができる。加えて、anchor_ref_l0[i][j]要素は、初期化されたRefPicList0内のビュー間予測用の第jのビューコンポーネントのview_idを指定することができる。num_anchor_refs_l1[i]要素は、リスト1(例えば、RefPicList1)用の初期化された参照ピクチャリスト内のビュー間予測用のビューコンポーネントの数を指定することができる。anchor_ref_l1[i][j]要素は、初期化されたRefPicList1内のビュー間予測用の第jのビューコンポーネントのview_idを指定することができる。num_non_anchor_refs_l0[i]要素は、初期化されたRefPicList0内のビュー間予測用のビューコンポーネントの数を指定することができる。non_anchor_ref_l0[i][j]要素は、初期化されたRefPicList0内のビュー間予測用の第jのビューコンポーネントのview_idを指定することができる。num_non_anchor_refs_l1[i]要素は、初期化されたRefPicList1内のビュー間予測用のビューコンポーネントの数を指定することができる。non_anchor_ref_l1[i][j]要素は、初期化されたRefPicList内のビュー間予測用の第jのビューコンポーネントのview_idを指定することができる。
[0116]初期化された、又は「初期の」参照ピクチャリストは、ビューコンポーネントをビュー間予測する目的で使用される最後の参照ピクチャリストと同じか又は異なる場合がある。即ち、幾つかの参照候補(即ち、ビュー間予測に使用され得る参照ピクチャ)は、参照ピクチャリスト修正プロセス中などの初期の参照ピクチャリスト(例えば、冗長なピクチャ)から削除され得る。加えて、以下でより詳細に記載されるように、参照候補は、初期の参照ピクチャリストから並べ替えられて、最後の参照ピクチャリストを形成することができる。
[0117]この例では、MVC/AVCによれば、アンカーピクチャ用のビュー依存性と非アンカーピクチャ用のビュー依存性は、別々に維持及び通知することができる。即ち、ビデオコーダは、合計4個の参照ピクチャリスト(例えば、非アンカーピクチャのリスト0、非アンカーピクチャのリスト1、アンカーピクチャのリスト0、アンカーピクチャのリスト1)を決定することができる。加えて、上記の表2に示されたように、ビデオデコーダ30にビュー依存性を示すために別の信号伝達が必要である。即ち、SPSは、anchor_refsとnon_anchor_refsの両方に信号伝達する別個のリスト0とリスト1とを含むことができる。
[0118]更に、表2によれば、非アンカービューコンポーネント用のビュー間依存性は、アンカービューコンポーネント用のビュー間依存性のサブセットである。即ち、例えば、アンカービューのビューコンポーネントは、ビュー3とビュー4などの2つ以上の他のビューから予測することができる。しかしながら、非アンカービューは、ビュー3(アンカービューのサブセット)のピクチャから予測することしかできない。このようにして、アンカービューコンポーネント用のビュー依存性と非アンカービューコンポーネント用のビュー依存性は、別々に維持することができる。
[0119]加えて、表2では、num_level_values_signalledは、コード化ビデオシーケンスに通知されたレベル値の数を指定することができる。level_idc[i]要素は、コード化ビデオシーケンスに通知された第iのレベル値を指定することができる。num_applicable_ops_minus1[i]プラス1要素は、level_idc[i]によって示されたレベルが適用される動作点の数を指定することができる。applicable_op_temporal_id[i][j]要素は、level_idc1[i]によって示されたレベルが適用される第jの動作点のtemporal_idを指定することができる。applicable_op_num_target_views_minus1[i][j]要素は、level_idc[i]によって示されたレベルが適用される第jの動作点用のターゲット出力ビューの数を指定することができる。applicable_op_target_view_id[i][j][k]要素は、level_idc[i]によって示されたレベルが適用される第jの動作点用の第kのターゲット出力ビューを指定することができる。applicable_op_num_views_minus1[i][j]要素は、level_idc[i]によって示されたレベルが適用される第jの動作点で、ターゲット出力ビューによって依存されるが、ターゲット出力ビューに属さないビューを含むビューの数を指定することができる。
[0120]従って、SPSのMVC/AVC拡張では、ビューごとに、参照ピクチャリスト0と参照ピクチャリスト1とを形成するために使用できるビューの数を通知することができる。加えて、SPSのMVC/AVC拡張で通知されたアンカーピクチャ用の予測関係は、同じビューの(SPSのMVC/AVC拡張で通知された)非アンカーピクチャ用の予測関係とは異なる場合がある。
[0121]以下でより詳細に記載されるように、ビデオエンコーダ20及びビデオデコーダ30は、参照ピクチャリストを構築するときに、時間予測参照とビュー予測参照とをフレキシブルに配置することができる。参照ピクチャセクションと冗長ピクチャメカニズムとをビュー寸法に拡張することができるので、フレキシブルな配列を可能にすると、潜在的なコード化効率ゲインだけでなく誤り耐性も提供される。一例では、ビデオエンコーダ20及び/又はビデオデコーダ30は、以下のステップに従って参照ピクチャリストを構築することができる。
1)他のビューからの参照ピクチャが考慮されないように、時間的(即ち、ビュー内)参照ピクチャ用の参照ピクチャリストを初期化する。
2)ピクチャがMVC/AVCのSPS拡張で発生する順序で、ビュー間参照ピクチャをリストの最後に追加する。
3)参照ピクチャリスト並べ替え(RPLR)プロセスをビュー内参照ピクチャとビュー間参照ピクチャの両方に適用する。ビュー間参照ピクチャは、MVCのSPS拡張で指定されたそれらのインデックス値により、RPLRコマンド内で識別することができる。
[0122]上述されたように、H.264/AVCは、MVC/AVCとしてのMVCサポートを含む。しかしながら、MVC/AVCは、他のビデオコード化規格に関して幾つかの非効率を含む場合がある。具体的には、MVC/AVCは、ビュー依存性を信号伝達することに関係する幾つかの非効率を含む場合がある。同様に前述されたように、本開示の技法は、他のビデオコード化規格に、又はMVC/AVCに含まれるビデオコード化技法とは異なるビデオコード化技法を使用して、実装され得る。ビュー依存性の修正の信号伝達に関してコード化効率を向上することができる、MVC/AVCとは異なるビデオコード化技法の幾つかの例示的な実装形態は、「CODING STEREO DATA」と題する、2012年7月26日に出願された米国特許出願第13/559,269号に記載されており、その内容全体は参照により本明細書に組み込まれる。従って、エンコーダ20は、MVC/AVCマルチビュービデオコード化技法とは異なる以下の説明に従って、動作することができる。
[0123]一例として、H.264/MVC規格は1024個までのビューをサポートし、NAL単位ヘッダ内のビュー識別子(view_id)を使用して、NAL単位が属するビューを識別する。ビューIDは10ビットの長さなので、ビューIDの値により1000個を超える異なるビューを一意に識別することができる。しかしながら、多くの3次元(3D)ビデオアプリケーションは、かなり少ないビューしか必要としない。更に、ビュー合成を使用してより多くの(コード化を必要としない)ビューを生成する3Dビデオアプリケーションには、より少ないビューしか必要とされない可能性がある。MVC/AVC拡張によれば、NAL単位ヘッダは、常に提供される10ビットのビューIDを含む。ビューIDは、NAL単位ヘッダ用のビットの数を実質的に増加させる可能性があり、NAL単位ヘッダはビットストリームの比較的大きな部分を占める。
[0124]例えば、ビュー順序インデックス(「view_order_index」又は「view_idx」)は、NAL単位ヘッダの一部として通知することができる。即ち、ビュー順序インデックスをNAL単位ヘッダの一部として、ビデオエンコーダ20は符号化し送信することができ、ビデオデコーダ30は受信し復号することができる。比較の目的で、ビュー順序インデックスは、MVC/AVCのNAL単位ヘッダ内に通知されたビューIDと置き換わることができる。即ち、例えば、view_idxはNAL単位ヘッダ内のview_idと置き換わることができる。
[0125]上記で説明されたように、MVC/AVCはビュー間予測を提供する。従って、参照用に使用されるビュー(即ち、他のビューを予測するために使用されるビュー)は、上記で説明されたように、参照するビューよりも前のコード化順序で発生しなければならない。ビュー順序は、一般に、アクセス単位内のビューの順序付けを記述し、ビュー順序インデックスは、そのアクセス単位のビュー順序における特定のビューを識別する。即ち、ビュー順序インデックスは、アクセス単位の対応するビューコンポーネントの復号順序を記述する。
[0126]SPSは、ビュー用のビューID(view_ids)とビュー用のビュー順序インデックスとの間の関係を提供することができる。一例として、ビュー順序インデックスとSPS内のデータとを使用して、ビデオエンコーダ20及びビデオデコーダ30は、NAL単位ヘッダ内のMVC/AVCの10ビットのview_idをビュー順序インデックスと置き換えることができる。例えば、ビュー順序インデックスは、(例えば、2ビット、3ビットなどの)10よりもかなり少ないビットを含む場合がある。
[0127]ビュー用のview_idとビュー順序インデックスとの間の関係を提供する例示的なSPSが、下記の表6に提供される。
[0128]表3に示された例では、太字で斜体のシンタックス要素は、MVC/AVCのSPSシンタックスからの逸脱、即ち、以前定義されたMVC/AVCのSPSシンタックスに対する修正を示す。例えば、表3に示されたSPSは、コード化ビデオシーケンス用のビュー間依存関係を指定する。SPSはまた、コード化ビデオシーケンス用の動作点のサブセットについてのレベル値を指定する。コード化ビデオシーケンスによって参照される全てのSPSは、同一であるべきである。しかしながら、view_id[i]によって識別される幾つかのビューは、コード化ビデオシーケンス内に存在しない場合がある。加えて、SPSによって記述される幾つかのビュー又は時間サブセットは、元のコード化ビデオシーケンスから削除されている場合があり、従って、コード化ビデオシーケンス内に存在しない場合がある。しかしながら、SPS内の情報は、残りのビュー及び時間サブセットに常に適用され得る。
[0129]上記の表3では、num_views_minus1プラス1の要素は、コード化ビデオシーケンス内のコード化ビューの最大数を指定することができる。num_view_minus1の値は、両端値を含む0から31の範囲内であり得る。場合によっては、コード化ビデオシーケンス内のビューの実際の数は、num_views_minus1プラス1よりも少ない場合がある。view_id[i]要素は、iに等しいビュー順序インデックスを有するビューのビュー識別子を指定することができる。view_level[i]要素は、iに等しいビュー順序インデックスを有するビューのview_levelを指定することができる。幾つかの例では、事前に定義された値(VL)までのview_levelを有する全てのビューコンポーネントは、VLよりも大きいview_levelを有するいずれのビューコンポーネントも復号することなしに復号可能であり得る。
[0130]幾つかの例によれば、num_ref_views[i]要素は、iに等しいビュー順序インデックスを有するビューコンポーネントを復号するときの、初期参照ピクチャリストRefPicList0及びRefPicList1の中のビュー間予測用のビューコンポーネントの数を指定することができる。num_ref_views[i]要素の値は、Min(15、num_views_minus1)よりも大きくない場合がある。num_ref_views[0]の値は、0に等しい場合がある。加えて、本開示の態様によれば、ref_view_idx[i][j]要素は、iに等しいビュー順序インデックスを有するビューコンポーネントを復号するときの、初期参照ピクチャリストRefPicList0及びRefPicList1の中のビュー間予測用のj番目のビューコンポーネントのビュー順序インデックスを指定することができる。ref_view_idx[i][j]の値は、両端値を含む0から31の範囲内であり得る。
[0131]従って、様々な例では、アンカーピクチャ用のビュー依存性と非アンカーピクチャ用のビュー依存性は、もはや別々に維持し信号伝達する必要はない可能性がある。即ち、ビデオエンコーダ20及び/又はビデオエンコーダ30は、アンカーピクチャ用、及び同様の非アンカーピクチャ用に、単一の参照ピクチャリストを使用(又は、2つの参照ピクチャリスト、リスト0とリスト1とを維持)することができる。このようにして、上記の表3に示されたように、ビデオデコーダ30にビュー依存性を示すために、別々の信号伝達は必要とされない。むしろ、SPSは、ビューコンポーネント用にリスト0とリスト1の両方を構築するために使用され得るref_view_idxを含む。
[0132]そのような例によれば、例えば、ビデオデコーダ30は、第1のビューの任意のビューコンポーネントについて、第1のビューのビューコンポーネントを予測するための1つ又は複数の参照ビューを示す参照ビュー情報を受信することができる。即ち、ビデオデコーダ30は、ビューのアンカーピクチャ及び同様のビューの非アンカーピクチャについてのビュー依存性を示す参照ビュー情報を受信することができる。特定のビューの(アクセス単位の)特定のピクチャを復号するとき、ビデオデコーダ30は、特定のピクチャと同じアクセス単位からの、及び参照ビュー情報によって示された参照ビューからの参照候補(例えば、特定のピクチャがそれから予測され得るビューコンポーネント)を含めることができる。場合によっては、ビデオデコーダ30は、参照候補の数が参照ビューの数と等しくなるように、各参照ビューから参照ピクチャリストに参照候補を追加することができる。加えて、ビデオデコーダ30は、リスト1、リスト0、又は両方のいずれかに参照候補を追加することができる。次いで、ビデオデコーダ30は、参照ピクチャリスト内の参照ピクチャのうちの1つに基づいて、特定のピクチャを復号することができる。
[0133]その上、表3によれば、非アンカービューコンポーネントについてのビュー間依存性は、もはやアンカービューコンポーネントについてのビュー間依存性のサブセットとして、SPS内で信号伝達される場合はない。むしろ、アンカービューのビューコンポーネントは、ビュー3及びビュー4などの2つ以上の他のビューから予測され得るし、非アンカービューも、ビュー3及びビュー4のピクチャから予測され得る。更なる制限ビュー依存性制限が非アンカーピクチャに必要である場合、そのような制限は、SEIメッセージなどの補足信号伝達で提供され得る。
[0134]num_level_values_signalled_minus1プラス1の要素は、コード化ビデオシーケンスに信号伝達されたレベル値の数を指定することができる。num_level_values_signalled_minus1の値は、両端値を含む0から63の範囲内であり得る。level_idc[i]要素は、コード化ビデオシーケンスに信号伝達されたi番目のレベル値を指定することができる。num_applicable_ops_minus1[i]プラス1の要素は、level_idc[i]によって示されたレベルが適用される動作点の数を指定することができる。num_applicable_ops_minus1[i]要素の値は、両端値を含む0から1023の範囲内であり得る。applicable_op_temporal_id[i][j]要素は、level_idc[i]によって示されたレベルが適用されるj番目の動作点のtemporal_idを指定することができる。applicable_op_num_target_views_minus1[i][j]プラス1の要素は、level_idc[i]によって示されたレベルが適用されるj番目の動作点用のターゲット出力ビューの数を指定することができる。applicable_op_num_target_views_minus1[i][j]要素の値は、両端値を含む0から1023の範囲内であり得る。
[0135]applicable_op_target_view_idx[i][j][k]要素は、level_idc[i]によって示されたレベルが適用されるj番目の動作点用のk番目のターゲット出力ビューのビュー順序インデックスを指定することができる。applicable_op_target_view_idx[i][j][k]要素の値は、両端値を含む0から31の範囲内であり得る。applicable_op_num_views_minus1[i][j]プラス1は、level_idc[i]によって示されたレベルが適用されるj番目の動作点に対応するターゲット出力ビューを復号するために必要なビューの数を指定することができる。applicable_op_num_views_minus1によって指定されたビューの数は、サブビットストリーム抽出プロセスによって指定されたように、ターゲット出力ビューとターゲット出力ビューが依存するビューとを含む場合がある。
[0136]別の例では、ref_view_idx[i][j]の値は、同じ時間インスタンス内のビューコンポーネントの復号順序に基づいて、iよりも小さくなることが必要とされる場合がある。
[0137]ref_view_idx[i][j]は、(MVC/AVCに対する更なるビット節約のために)サイズが更に縮小される場合がある。例えば、更なるビット節約は、2つだけのビューを含む(即ち、ステレオビデオ用の)マルチビュービデオコード化のストリーム内で実現され得る。この例では、ビデオデコーダ30が常に第2のビュー(例えば、ビュー1)を復号する前に第1のビュー(例えば、ビュー0)を復号することができるので、ビュー順序インデックスは必要とされない可能性がある。例示的な縮小されたSPSが下記の表4に提供される。
[0138]表4に示された例では、ref_view_idx_diff_minus1[i][j]プラスi+1の要素は、iに等しいビュー順序インデックスを有するビューコンポーネントを復号するときの、初期参照ピクチャリストRefPicList0及びRefPicList1の中のビュー間予測用のj番目のビューコンポーネントのビュー順序インデックスを指定することができる。ref_view_idx_diff_minus1[i][j]要素の値は、両端値を含む0から30−iの範囲内であり得る。
[0139]他の例も可能である。例えば、(上記の表6及び表7に示された例などの)SPS内でビュー依存性を信号伝達するのではなく、ビュー依存性はPPS内で信号伝達され得る。別の例では、ビュー依存性はSPS内で信号伝達され得るし、ビュー依存性は更に、シーケンスパラメータセット内で信号伝達されるビュー依存性の範囲内であるPPS内で信号伝達され得る。例えば、SPSでは、依存ビュー(例えば、ビュー2)がビュー0とビュー1とに依存していると信号伝達され得るし、PPSでは、依存ビュー(例えば、ビュー2)がビュー0のみに依存していると信号伝達され得る。
[0140]ビュー順序インデックスとビューIDとの間の関係は、幾つかの関連する信号伝達を必要とする場合があるが、例えば、SPSでは、NAL単位ヘッダは、通常そのような信号伝達よりもはるかに多いビットを消費する。従って、NAL単位ヘッダのサイズを縮小することによって、これらの技法は、MVC/AVCの方式上でビット節約を実現することができる。関係を示す情報は、例えば、ビュー順序インデックスの値にview_id値をマッピングするマッピングテーブルを備えることができる。このようにして、ビデオデコーダ30は、単にNAL単位ヘッダ内のビュー順序インデックスの値を受信し、マッピングテーブルを使用してNAL単位のview_idを決定することができる。
[0141]更に、ビュー順序インデックスは動的な長さを有する場合がある。例えば、HEVCでは、ビュー順序インデックスの長さは、それがベースビューであるか、プロファイルであるか、又はマルチビュービデオコード化のビットストリーム内でサポートされるビューの数であるかに依存する場合がある。例えば、更なるビット節約は、2つだけのビューを含む(即ち、ステレオビデオ用の)マルチビュービデオコード化のストリーム内で実現することができる。この例では、ビデオデコーダ30が常に第2のビュー(例えば、ビュー1)を復号する前に第1のビュー(例えば、ビュー0)を復号するので、ビュー順序インデックスは必要とされない可能性がある。即ち、幾つかの例によれば、ベースビューは、0のデフォルトのビュー順序インデックスを割り当てることができ、従って通知される必要がない。
[0142]加えて、上述のビュー順序インデックスを使用するとき、MVC/AVCベースビューのベースビュー(例えば、ビュー0)のNAL単位の直前に含まれるプレフィックスNAL単位は、もはや必要とされない可能性がある。例えば、ビュー順序インデックスがベースビューについて常に0であり得るし、ベースビューの時間位置が(MCV/AVC内に含まれる)temporal_idを使用して決定できるので、ビデオデコーダ30は、ベースビュー用のプレフィックスNAL単位をもはや必要としない可能性がある。従って、ビデオエンコーダ20は、NAL単位ヘッダ内のtemporal_idを通知することができ、temporal_idは、ビデオデコーダ30に必要な情報の全てを提供して、特定のビューコンポーネントを特定のビューと適切な時間位置とに関連付けることができる。
[0143]新HEVC規格に関して、幾つかの例では、プレフィックスNAL単位がHEVC準拠ベースビューに使用されないとき、HEVCベースビューのNAL単位ヘッダにフラグを追加することができる。フラグは、(その特定のNAL単位の)ビューコンポーネントが、ビットストリームの他のビューのビューコンポーネントをインター予測するために使用できるかどうかを示すためのみに使用することができる。
[0144]加えて、幾つかの例によれば、ビュー順序インデックスは、(例えば、ピクチャの表示順序を示す)ピクチャ順序カウント(POC)値又は(例えば、ピクチャの復号順序を示す)フレーム値とともに使用されて、ビットストリームのビューコンポーネントを識別することができる。
[0145]別の例として、上記のように、MVC/AVCのSPSは、ビューごとに別々に依存ビュー(即ち、予測の目的で1つ又は複数の他のビューによって参照されるビュー)を示すことができる。例えば、MVC/AVCのNAL単位ヘッダ内に含まれるanchor_pic_flagは、NAL単位が開GOPランダムアクセスポイントとして使用できるアンカーピクチャに属するかどうかを示すために使用することができる。MVC/AVCでは、上述のように、ビュー依存性は、アンカーピクチャと非アンカーピクチャに異なって通知される。従って、ビューごとに通知される依存ビューについて、4つの異なるカテゴリが考えられ、それらの各々は、ピクチャがアンカーピクチャ用かどうか、又はピクチャがリスト0用か若しくはリスト1用かによって差別化される。そのような設計は、そのような分界を維持するために比較的大きい数のビットを必要とするだけでなく、参照ピクチャリストの構築を複雑にする場合もある(例えば、各カテゴリは参照リストの構築及び並べ替えの間維持されなければならない)。
[0146]幾つかの例によれば、ビューコンポーネントがアンカーピクチャ用か又は非アンカーピクチャ用かにかかわらず、ビデオエンコーダ20は、通常全てのビューコンポーネントについてマルチビュービデオコード化のビットストリームのビューごとにビュー依存性を通知することができる(ビデオデコーダ30はそのような信号伝達を受信することができる)。幾つかの例では、SPSは、NAL単位ヘッダ内の情報に依存するのではなく、ビューコンポーネント用のビュー依存性の指示を含む。このようにして、ビデオエンコーダ20及びビデオデコーダ30は、MVC/AVCのNAL単位ヘッダ内で使用されるanchor_pic_flagを使用しない場合がある。スケーラブルビデオコード化に適用可能な例では、スケーラブルレイヤがアンカーピクチャ用か又は非アンカーピクチャ用かにかかわらず、ビデオエンコーダ20は、通常全てのスケーラブルレイヤについてスケーラブルビデオコード化のビットストリームのスケーラブルレイヤごとにスケーラブルレイヤ依存性を信号伝達することができる(ビデオデコーダ30はそのような信号伝達を受信することができる)。
[0147]通知された依存ビューのビューコンポーネントは、リスト0とリスト1の両方で参照ピクチャとして使用することができる。加えて、リスト0及びリスト1についての参照ピクチャリストの構築及び参照ピクチャリストの並べ替えは、アンカーピクチャ及び非アンカーピクチャへの通常信号伝達に基づく場合もある。幾つかの例では、シーケンスレベル、補足強調情報(SEI)メッセージは、非アンカーピクチャがアンカーピクチャとは異なるビュー依存性を有するときを示すために使用することができる。
[0148]従って、本開示の特定の態様は、MVC/AVCのアンカーピクチャ/非アンカーピクチャとリスト0/リスト1との信号伝達差異を削除すること、それによりビットストリームを簡略化すること、ならびに参照ピクチャリストの構築に関する。例えば、本開示の態様によれば、ビデオデコーダ30は、第1のビューの任意のビューコンポーネントについて、第1のビューのビューコンポーネントを予測するための1つ又は複数の参照ビューを示す参照ビュー情報を受信することができる。即ち、ビデオデコーダ30は、ビューのアンカーピクチャ用及び同様のビューの非アンカーピクチャ用のビュー依存性を示す参照ビュー情報を受信することができる。上述のように、参照ビュー情報は、例えば、各参照ビューに関連する(アクセス単位内のビューの復号順序を示す)ビュー順序インデックスを含むことができる。
[0149]加えて、特定のビューの(アクセス単位の)特定のピクチャを復号するとき、ビデオデコーダ30は、特定のピクチャと同じアクセス単位から、及び参照ビュー情報によって示された参照ビューからの参照候補(例えば、特定のピクチャがそれから予測できるビューコンポーネント)を含むことができる。幾つかの例では、ビデオデコーダ30は、参照候補の数が参照ビューの数と等しくなるように、各参照ビューから参照ピクチャリストに参照候補を追加することができる。加えて、ビデオデコーダ30は、リスト1、リスト0、又は両方のいずれかに参照候補を追加することができる。次いで、ビデオデコーダ30は、参照ピクチャリスト内の参照ピクチャのうちの1つに基づいて、特定のピクチャを復号することができる。
[0150]更に別の例として、上述のように、priority_idは、MVC/AVC準拠ビットストリームのNAL単位ヘッダに含まれる。priority_idは、特定のNAL単位の優先度の指示を提供する。より詳細には、各NAL単位は、慣例的に優先度値を割り当てられる。優先度値Pに対する要求に応答して、P以下の優先度値を有する全てのNAL単位が提供される(即ち、Pより大きいpriority_id値を有するNAL単位は廃棄される)。このようにして、より低い優先度値がより高い優先度を指定する。例えば、ビュー内の時間スケーラビリティについて、同じビューのNAL単位が異なる優先度を有する場合があることを理解されたい。
[0151]この優先度は、スケーラビリティの目的で使用することができる。例えば、(比較的低い品質の表示を形成するという犠牲を払って)最小量の帯域幅を消費するビデオデータを取り出すために、ビデオデコーダ30(又は、より一般的に宛先機器14)は、最も高い優先度のNAL単位だけが、発信源機器12/ビデオエンコーダ20などの発信源から送信されることを要求することができ、priority_idはより低い優先度のNAL単位をフィルタ処理して除くために使用することができる。幾つかの例では、サーバ/コンテンツ配信ネットワーク34のルータ36は、priority_idを使用して、比較的高い優先度のNAL単位をより低い優先度のNAL単位から分離することができる。(より高い帯域幅の消費という犠牲を払って)比較的高い品質の表示を生成するために、ビデオデコーダ30は、例えば、より高い優先度値を指定することによって、より低い優先度を有するNAL単位がより高い優先度のNAL単位を補足することを要求することができる。
[0152]幾つかの例によれば、NAL単位ヘッダ内のpriority_idを通知するのではなく、ビデオエンコーダ20はSPS内のpriority_id値を提供することができる。即ち、特定の時間レベルを有するビューごとのpriority_idは、シーケンスレベルで通知することができる。加えて、幾つかの例によれば、単一パスの適応は、その適応に関連する信号伝達コンテキストが知られている限り可能であり得る。
[0153]上記で説明されたように、幾つかの例では、ビットストリームを宛先機器14に転送することを担当することができるルータ36は、SPSのpriority_id値を使用して特定のビューをフィルタ処理することができる。即ち、ルータ36は完全なビットストリームを受信することができるが、宛先機器14によって指定された優先度値以下のpriority_id値を有するNAL単位を含むサブビットストリームを抽出し、そのサブビットストリームを宛先機器14に転送することができる。
[0154]更に別の例では、MVC/AVCによれば、単一パスの適応は、NAL単位ヘッダ内の6ビットのpriority_idを必要とする。例えば、上記のように、MVC/AVCのSPSは、ビュースケーラビリティ用のビューレベル指示を含むことができる。即ち、MVCビットストリームの各ビューは、階層的にコード化し、数値のビューレベルを割り当てることができる。
[0155]幾つかの例によれば、SPSはビューレベル情報を含むことができる。従って、宛先機器14がサーバ/コンテンツ配信ネットワーク34からビューレベルVのビューを要求するとき、宛先機器14は、V以下のビューレベルを有する全てのビューを受信する。上述のpriority_id値の使用と同様に、サーバ/コンテンツ配信ネットワーク34のルータ36は、ビューレベルを使用して、クライアントが要求したビューレベル以下のビューレベルを有するビュー用のデータを含むサブビットストリームを抽出することができる。
[0156]本開示の幾つかの態様によれば、MVC/AVCに関する別の例示的な効率向上として、MVC/AVCの実装形態、又は、来たるHEVC規格などの上述されたMVC/AVCとの差異を実装する異なるビデオコード化技法などのビデオコード化技法は、所与のビューに関連付けられたビュー依存性を信号伝達することと、ビュー依存性のうちの1つ又は複数に関連付けられた予測のタイプを信号伝達することとを含む場合がある。
[0157]1つのタイプの予測のみに使用される参照ピクチャセット(RPS)のサブセット内にビュー間予測用のビューを含むことは、余り効率的ではない可能性がある。より一般的な意味では、他の依存ビューよりも比較的少ないタイプのビュー間予測に関連付けられたビュー間RPSのサブセット内にビュー間予測用の依存ビューを含むことは、余り効率的ではない可能性がある。例えば、所与のビューAについて、ビューBは、ビュー間テクスチャ予測参照として使用されるだけの場合がある。代替として、ビューBは、ビュー間動き予測参照として使用されるだけの場合がある。しかしながら、ビューAを復号するためにビュー間RPSのサブセット内にビューBを含むことは、ビュー間テクスチャ予測とビュー間動き予測の両方に使用され得るビューのみを含むことと同じほど効率的ではない。この概念は、ビュー間テクスチャ予測及びビュー間動き予測のみを超えて、ビュー間残差予測などに拡張され得る。例えば、一般に、比較的多いタイプの予測に使用されるビューとは対照的に、限定された数のタイプの予測に使用されるだけのビューを含むことは、余り効率的ではない。
[0158]従って、本開示の幾つかの態様によれば、依存ビューが所与のビュー用のビュー間RPSのサブセットに含まれるかどうかだけでなく、依存ビューに関連付けられた予測のタイプも示すSPSシンタックスの一部として、新しいシンタックス要素が追加され得る。例えば、num_ref_views[i]、ref_view_idx[i][j]、及びinter_view_texture_flag[i][j]のシンタックス要素は、SPSセットに追加され得る。inter_view_texture_flag[i][j]は、所与のビューi用の第jの依存ビューがビュー間テクスチャ予測に使用され得るかどうか、従ってビューi用のビュー間RPSのサブセットに含まれるべきかどうかを示すことができる。以下の表5のシンタックス構造は、追加のシンタックス要素の例を表す。
[0159]上記の表5では、num_views_minus1プラス1の要素は、コード化ビデオシーケンス内のコード化ビューの最大数を指定することができる。幾つかの例では、num_views_minus1の値は、両端値を含む0から31の範囲であり得る。加えて、num_ref_views[i]は、view_id[i]に等しいview_idを有する(又はiに等しいビューインデックスを有する)ビューを復号するために使用されるべき依存ビューの数を指定することができる。num_ref_views[i]の値は、Min(15,num_views_minus1)よりも大きくなるべきでない。num_ref_views[0]の値は、0に等しくなるべきである。更に、ref_view_idx[i][j]は、iに等しいビューインデックスを有するビューコンポーネントを復号するときの、第jの依存ビューのビューインデックスを指定することができる。ref_view_idx[i][j]の値は、両端値を含む0から31の範囲内であるべきである。
[0160]inter_view_texture_flag[i][j]要素が1に等しいとき、inter_view_texture_flag[i][j]は、ref_view_idx[i][j]に等しいビュー順序インデックスを有するビューコンポーネントが、iに等しいビューインデックスを有するビューコンポーネントの参照ピクチャリストの構築に使用されるべきビュー間RPSのサブセットに含まれるべきであることを指定することができる。例えば、ref_view_idx[i][j]に等しいビュー順序インデックスを有するビューコンポーネントが、iに等しいビューインデックスを有するビューコンポーネントのビュー間テクスチャ予測に使用され得るとき、inter_view_texture_flag[i][j]は1に等しく設定され得る。inter_view_texture_flag[i][j]が0に等しいとき、inter_view_texture_flag[i][j]は、ref_view_idx[i][j]に等しいビュー順序インデックスを有するビューコンポーネントが、参照ピクチャリストの構築に使用されるべきビュー間RPSのサブセットに含まれるべきではないことを指定することができる。例えば、ref_view_idx[i][j]に等しいビュー順序インデックスを有するビューコンポーネントが、iに等しいビューインデックスを有するビューコンポーネントのビュー間テクスチャ予測に使用されない場合があるとき、inter_view_texture_flag[i][j]は0に等しく設定され得る。他の例では、ref_view_idx[i][j]に等しいビュー順序インデックスを有するビューコンポーネントが、ビュー間テクスチャ予測、及びビュー間動き予測又はビュー間テクスチャ予測などの別のタイプのビュー間予測に使用される場合があるときのみ、inter_view_texture_flag[i][j]は1に等しく設定され得る。
[0161]iに等しいビューインデックスを有するビューコンポーネントの復号用にビュー間RPSのサブセットに追加されたビューコンポーネントは、jの昇順である。このようにして、inter_view_texture_flag[i][j]は、ref_view_idx[i][j]に等しいビュー順序インデックスを有するビューコンポーネントが、iに等しいビューインデックスを有するビューコンポーネント用のビュー間テクスチャ予測に使用され得るか、又は使用され得ないかを指定することができる。
[0162]上記の説明では、ビューインデックスは、ビュー順序インデックスと同様の意味で表記され得る。代替として、上記の信号伝達で使用されるビューインデックスは、LDのレイヤIDを有するビューの復号がLDよりも高いレイヤID値を有するビューに依存しないとき、レイヤIDと交換され得る。
[0163]上述された要素は、スケーラブルコード化技法にも適用可能であり得る。例えば、要素は異なる命名をされている場合があるが、inter_view_texture_flag[i][j]と同様の要素は、ref_view_idx[i][j]に等しいレイヤ順序インデックスを有するスケーラブルレイヤが、iに等しいレイヤインデックスを有するスケーラブルレイヤの参照ピクチャリストの構築に使用されるべきレイヤ間RPSのサブセットに含まれるべきかどうかを指定することができる。ref_view_idx[i][j]に等しいレイヤ順序インデックスを有するスケーラブルレイヤが、iに等しいレイヤインデックスを有するスケーラブルレイヤのレイヤ間テクスチャ予測に使用され得るとき、inter_view_texture_flag[i][j]又は同様の要素は、1に等しく設定され得る。inter_view_texture_flag[i][j]が0に等しいとき、inter_view_texture_flag[i][j]は、ref_view_idx[i][j]に等しいレイヤ順序インデックスを有するスケーラブルレイヤが、参照ピクチャリストの構築に使用されるべきレイヤ間RPSのサブセットに含まれないことを指定することができる。ref_view_idx[i][j]に等しいレイヤ順序インデックスを有するスケーラブルレイヤが、iに等しいレイヤインデックスを有するスケーラブルレイヤのレイヤ間テクスチャ予測に使用されない場合があるとき、inter_view_texture_flag[i][j]は、0に等しく設定され得る。
[0164]本開示の幾つかの態様によれば、ビュー間参照ごとに指示が信号伝達され得る。指示は、特定のビュー間参照がビュー間RPSのサブセットに含まれるべきかどうかと、特定のビュー間参照がビュー間動き予測及びビュー間残差予測などの他のタイプのビュー間予測に使用されるかどうかの両方を表すことができる。以下の表6は、指示inter_view_texture_idc[i][j]の例を提供する。
[0165]例えば、表6のinter_view_texture_idc[i][j]が0に等しく設定された場合、inter_view_texture_idc[i][j]は、ref_view_idx[i][j]に等しいビュー順序インデックスを有するビューコンポーネント(即ち、参照ビューコンポーネント)が、iに等しいビューインデックスを有するビューコンポーネントの参照ピクチャリストの構築に使用されるべきビュー間RPSのサブセットに含まれないことを指定することができる。少なくとも1つの例では、ref_view_idx[i][j]に等しいビュー順序インデックスを有する参照ビューコンポーネントが、所与のビューiについて、ビュー間テクスチャ予測、又は他のタイプのビュー間予測、例えばビュー間動き予測又はビュー間残差予測に使用されないとき、inter_view_texture_idc[i][j]は、0に等しく設定され得る。幾つかの例では、ref_view_idx[i][j]に等しいビュー順序インデックスを有する参照ビューコンポーネントが、ビュー間テクスチャ予測で使用されず、単一の他のタイプのビュー間予測のみ(即ち、ビュー間動き予測又はビュー間残差予測のみだが、両方ではない)で使用されるとき、inter_view_texture_idc[i][j]は、0に等しく設定され得る。
[0166]スケーラブルビデオコード化への応用では、表6のinter_view_texture_idc[i][j]が0に等しく設定された場合、inter_view_texture_idc[i][j]は、ref_view_idx[i][j]に等しいレイヤ順序インデックスを有するスケーラブルレイヤが、iに等しいレイヤインデックスを有するスケーラブルレイヤの参照ピクチャリストの構築に使用されるべきレイヤ間RPSのサブセットに含まれないことを指定することができる。少なくとも1つの例では、ref_view_idx[i][j]に等しいレイヤ順序インデックスを有する参照スケーラブルレイヤが、所与のビューiについて、レイヤ間テクスチャ予測、又は他のタイプのレイヤ間予測、例えばレイヤ間動き予測又はレイヤ間残差予測に使用されないとき、inter_view_texture_idc[i][j]は、0に等しく設定され得る。幾つかの例では、ref_view_idx[i][j]に等しいレイヤ順序インデックスを有する参照スケーラブルレイヤが、レイヤ間テクスチャ予測で使用されず、単一の他のタイプのレイヤ間予測のみ(即ち、レイヤ間動き予測又はレイヤ間残差予測のみだが、両方ではない)で使用されるとき、inter_view_texture_idc[i][j]は、0に等しく設定され得る。
[0167]inter_view_texture_idc[i][j]が1に等しく設定された場合、inter_view_texture_idc[i][j]は、ref_view_idx[i][j]に等しいビュー順序インデックスを有するビューコンポーネントが、iに等しいビューインデックスを有するビューコンポーネントの参照ピクチャリストの構築に使用されるべきビュー間RPSのサブセットに含まれるべきであることを指定することができる。少なくとも1つの例では、ref_view_idx[i][j]に等しいビュー順序インデックスを有する参照ビューコンポーネントが、所与のビューiについてのビュー間テクスチャ予測に使用されるが、所与のビューiについて、他のタイプのビュー間予測、例えばビュー間動き予測又はビュー間残差予測に使用されないとき、inter_view_texture_idc[i][j]は、1に等しく設定され得る。幾つかの例では、ref_view_idx[i][j]に等しいビュー順序インデックスを有する参照ビューコンポーネントが、ビュー間テクスチャ予測で使用され、単一の他のタイプのビュー間予測のみ(即ち、ビュー間動き予測又はビュー間残差予測のみだが、両方ではない)で使用されるとき、inter_view_texture_idc[i][j]は、1に等しく設定され得る。
[0168]スケーラブルビデオコード化への応用では、inter_view_texture_idc[i][j]が1に等しく設定された場合、inter_view_texture_idc[i][j]は、ref_view_idx[i][j]に等しいレイヤ順序インデックスを有するスケーラブルレイヤが、iに等しいレイヤインデックスを有するレイヤの参照ピクチャリストの構築に使用されるべきレイヤ間RPSのサブセットに含まれるべきであることを指定することができる。少なくとも1つの例では、ref_view_idx[i][j]に等しいレイヤ順序インデックスを有する参照スケーラブルレイヤが、所与のレイヤiについてのレイヤ間テクスチャ予測に使用されるが、所与のレイヤiについて、他のタイプのレイヤ間予測、例えばレイヤ間動き予測又はレイヤ間残差予測に使用されないとき、inter_view_texture_idc[i][j]は、1に等しく設定され得る。幾つかの例では、ref_view_idx[i][j]に等しいレイヤ順序インデックスを有する参照スケーラブルレイヤが、レイヤ間テクスチャ予測で使用され、単一の他のタイプのレイヤ間予測のみ(即ち、レイヤ間動き予測又はレイヤ間残差予測のみだが、両方ではない)で使用されるとき、inter_view_texture_idc[i][j]は1に等しく設定され得るのみである。
[0169]inter_view_texture_idc[i][j]が2に等しく設定された場合、inter_view_texture_idc[i][j]は、ref_view_idx[i][j]に等しいビュー順序インデックスを有するビューコンポーネントが、iに等しいビューインデックスを有するビューコンポーネントの参照ピクチャリストの構築に使用されるべきビュー間RPSのサブセットに含まれるべきでないことを指定することができる。少なくとも1つの例では、ref_view_idx[i][j]に等しいビュー順序インデックスを有する参照ビューコンポーネントが、所与のビューiについて、ビュー間テクスチャ予測に使用されないが、他のタイプのビュー間予測に使用されるとき、inter_view_texture_idc[i][j]は、2に等しく設定され得る。幾つかの例では、ref_view_idx[i][j]に等しいビュー順序インデックスを有する参照ビューコンポーネントが、ビュー間テクスチャ予測で使用されず、少なくとも1つの他のタイプのビュー間予測(即ち、ビュー間動き予測又はビュー間残差予測のうちの1つ)で使用されるとき、inter_view_texture_idc[i][j]は、2に等しく設定され得る。他の例では、ref_view_idx[i][j]に等しいビュー順序インデックスを有する参照ビューコンポーネントが、ビュー間テクスチャ予測で使用されず、少なくとも2つの他のタイプのビュー間予測(即ち、ビュー間動き予測とビュー間残差予測の両方)で使用されるとき、inter_view_texture_idc[i][j]は、2に等しく設定され得る。
[0170]スケーラブルビデオコード化への応用では、inter_view_texture_idc[i][j]が2に等しく設定された場合、inter_view_texture_idc[i][j]は、ref_view_idx[i][j]に等しいレイヤ順序インデックスを有するスケーラブルレイヤが、iに等しいレイヤインデックスを有するビューコンポーネントの参照ピクチャリストの構築に使用されるべきレイヤ間RPSのサブセットに含まれるべきでないことを指定することができる。少なくとも1つの例では、ref_view_idx[i][j]に等しいレイヤ順序インデックスを有する参照スケーラブルレイヤが、所与のレイヤiについて、レイヤ間テクスチャ予測に使用されないが、他のタイプのレイヤ間予測に使用されるとき、inter_view_texture_idc[i][j]は、2に等しく設定され得る。幾つかの例では、ref_view_idx[i][j]に等しいレイヤ順序インデックスを有する参照スケーラブルレイヤが、レイヤ間テクスチャ予測で使用されず、少なくとも1つの他のタイプのレイヤ間予測(即ち、レイヤ間動き予測又はレイヤ間残差予測のうちの1つ)で使用されるとき、inter_view_texture_idc[i][j]は、2に等しく設定され得る。他の例では、ref_view_idx[i][j]に等しいレイヤ順序インデックスを有する参照スケーラブルレイヤコンポーネントが、レイヤ間テクスチャ予測で使用されず、少なくとも2つの他のタイプのレイヤ間予測(即ち、レイヤ間動き予測とレイヤ間残差予測の両方)で使用されるとき、inter_view_texture_idc[i][j]は、2に等しく設定され得る。
[0171]inter_view_texture_idc[i][j]が3に等しく設定された場合、inter_view_texture_idc[i][j]は、ref_view_idx[i][j]に等しいビュー順序インデックスを有するビューコンポーネントが、iに等しいビューインデックスを有するビューコンポーネントの参照ピクチャリストの構築に使用されるべきビュー間RPSのサブセットに含まれるべきであることを指定することができる。少なくとも1つの例では、ref_view_idx[i][j]に等しいビュー順序インデックスを有する参照ビューコンポーネントが、所与のビューiについて、ビュー間テクスチャ予測と他のタイプのビュー間予測の両方で使用されるとき、inter_view_texture_idc[i][j]は、3に等しく設定され得る。幾つかの例では、ref_view_idx[i][j]に等しいビュー順序インデックスを有する参照ビューコンポーネントが、ビュー間テクスチャ予測で使用され、少なくとも1つの他のタイプのビュー間予測(即ち、ビュー間動き予測又はビュー間残差予測のうちの1つ)で使用されるとき、inter_view_texture_idc[i][j]は、3に等しく設定され得るのみである。他の例では、ref_view_idx[i][j]に等しいビュー順序インデックスを有する参照ビューコンポーネントが、ビュー間テクスチャ予測で使用され、少なくとも2つの他のタイプのビュー間予測(即ち、ビュー間動き予測とビュー間残差予測の両方)で使用されるとき、inter_view_texture_idc[i][j]は、3に等しく設定され得るのみである。
[0172]スケーラブルビデオコード化への応用では、inter_view_texture_idc[i][j]が3に等しく設定された場合、inter_view_texture_idc[i][j]は、ref_view_idx[i][j]に等しいレイヤ順序インデックスを有するスケーラブルレイヤが、iに等しいレイヤインデックスを有するレイヤの参照ピクチャリストの構築に使用されるべきレイヤ間RPSのサブセットに含まれるべきであることを指定することができる。少なくとも1つの例では、ref_view_idx[i][j]に等しいレイヤ順序インデックスを有する参照スケーラブルレイヤが、所与のレイヤiについて、レイヤ間テクスチャ予測と他のタイプのレイヤ間予測の両方に使用されるとき、inter_view_texture_idc[i][j]は、3に等しく設定され得る。幾つかの例では、ref_view_idx[i][j]に等しいレイヤ順序インデックスを有する参照スケーラブルレイヤが、レイヤ間テクスチャ予測で使用され、少なくとも1つの他のタイプのレイヤ間予測(即ち、レイヤ間動き予測又はレイヤ間残差予測のうちの1つ)で使用されるとき、inter_view_texture_idc[i][j]は、3に等しく設定され得るのみである。他の例では、ref_view_idx[i][j]に等しいレイヤ順序インデックスを有する参照スケーラブルレイヤコンポーネントが、レイヤ間テクスチャ予測で使用され、少なくとも2つの他のタイプのレイヤ間予測(即ち、レイヤ間動き予測とレイヤ間残差予測の両方)で使用されるとき、inter_view_texture_idc[i][j]は、3に等しく設定され得るのみである。
[0173]加えて、本開示の幾つかの態様によれば、inter_view_texture_idc[i][j]が1又は3に等しく設定された場合、inter_view_texture_flag[i][j]は1に等しくなるように導出され得るし、そうでない場合、inter_view_texture_flag[i][j]は0に等しくなるように導出され得る。これは、スケーラブルビデオコード化の応用にも同様に適用可能である。
[0174]本開示の幾つかの態様によれば、別のシンタックス要素が導入され得る:InterViewOtherFlag[i][j]。上記の例を続けると、場合によっては、所与のビューi用のref_view_idx[i][j]に等しいビュー順序インデックスを有する1つ又は複数の依存ビューは、ビュー間テクスチャ予測以外のビュー間予測のタイプで使用され得る。例えば、所与のビューi用のref_view_idx[i][j]の第jのビューは、ビュー間動き予測又はビュー間残差予測で使用され得る。所与のビューi用のref_view_idx[i][j]の第jのビューがビュー間テクスチャ予測以外のビュー間予測で使用されないとき、例えば、inter_view_texture_idc[i][j]が0又は1のいずれかに等しく設定されたとき、InterViewOtherFlag[i][j]は、0に等しくなるように導出され得る。従って、InterViewOtherFlag[i][j]が0に等しいとき、InterViewOtherFlag[i][j]は、ref_view_idx[i][j]に等しいビュー順序インデックスを有する特定のビューコンポーネントが、所与のビューiについて、他のタイプのビュー間予測、例えばビュー間動き予測又はビュー間残差予測で使用されない場合があることを示すことができる。
[0175]所与のビューi用のref_view_idx[i][j]の第jのビューがビュー間テクスチャ予測以外のビュー間予測で使用されるとき、例えば、inter_view_texture_idc[i][j]が2又は3のいずれかに等しく設定されたとき、InterViewOtherFlag[i][j]は、1に等しくなるように導出され得る。従って、InterViewOtherFlag[i][j]が1に等しいとき、InterViewOtherFlag[i][j]は、ref_view_idx[i][j]に等しいビュー順序インデックスを有する特定のビューコンポーネントが、所与のビューiについて、他のタイプのビュー間予測、例えばビュー間動き予測又はビュー間残差予測で使用され得ることを示すことができる。幾つかの例では、ref_view_idx[i][j]に等しいビュー順序インデックスを有するビューコンポーネントが、単一より多い他のタイプのビュー間予測、例えばビュー間動き予測とビュー間残差予測の両方で使用され得るときのみ、InterViewOtherFlag[i][j]は、1に等しくなるように導出され得る。
[0176]上記のinter_view_texture_flag[i][j]要素及びinter_view_texture_idc[i][j]要素と同様に、InterViewOtherFlag[i][j]は、スケーラブルビデオコード化方式で適用可能であるように適合され得る。
[0177]本開示の幾つかの態様によれば、ビデオコーダ20は、現在のピクチャ用のデータを予測するための様々な予測プロセスで使用される、(参照ビューを含む場合がある)参照ピクチャを備える1つ又は複数の参照ピクチャセットを構築することができる。幾つかの例では、ビデオエンコーダ20は、その全体が参照により本明細書に組み込まれる、2012年12月19日に出願された、「REFERENCE LIST CONSTRUCTION FOR MULTIVIEW AND 3D EXTENSIONS OF HEVC」と題する、米国特許出願第13/720,622号に記載された方法に従って、ビュー間参照ピクチャセット(RefPicSetInterView)を構築することができる。
[0178]従って、幾つかの参照ピクチャは「短期」参照ピクチャであり、かつ幾つかの参照ピクチャは「長期」参照ピクチャである。長期参照ピクチャは、短期参照ピクチャよりも長い時間期間の間参照ピクチャリストに残ることができる。延長時間期間(例えば、数秒)の間参照ピクチャの利用可能性を維持することが有利なはずであるとビデオエンコーダ20が決定した場合、ビデオエンコーダ20は、参照ピクチャが長期参照ピクチャであることを信号伝達することができる。例えば、参照ピクチャが静的バックグラウンドを含んでおり、他のピクチャがこの静的バックグラウンドの部分を隠す及び露呈する場合、ビデオエンコーダ20は、参照フレームが長期参照ピクチャであることを示すことができる。H.264/AVC又はH.264/MVC/AVCでは、短期参照ピクチャは、現在のピクチャ(即ち、現在コード化されているピクチャ)のフレーム番号に等しいフレーム番号(frame_num)を決して有してはいない。ピクチャのフレーム番号は、ピクチャのピクチャ番号に基づく値である。ピクチャのフレーム番号は、ピクチャが短期参照ピクチャとして使用されるとき、ピクチャを識別するために使用され得る。
[0179]上述されたように、ビデオコーダ(例えば、ビデオエンコーダ20及びビデオデコーダ30)は、第1の参照ピクチャリスト(リスト0)と、第2の参照ピクチャリスト(リスト1)とを維持することができる。リスト0及びリスト1は、参照ピクチャのフレーム番号のリストであり得る。ビデオエンコーダ20は、特定の参照ピクチャのフレーム番号の参照ピクチャリスト内の位置を信号伝達することによって、特定の参照ピクチャ内の参照ブロックを使用してビデオブロックがインター予測されることを信号伝達することができる。
[0180]幾つかのビデオコーダは、時間的(即ち、ビュー内)参照ピクチャのフレーム番号が常に初めは最初に列記されるように、参照ピクチャリストを生成する。参照ピクチャリスト内で、時間的参照ピクチャのフレーム番号の後には、ビュー間参照ピクチャのフレーム番号が続く。即ち、ビデオコーダは、以下のステップを使用して参照ピクチャを生成することができる。第1に、ビデオコーダは、H.264/AVC規格において規定されているように時間的(即ち、ビュー内)参照ピクチャのための参照ピクチャリスト初期化プロセスを適用することができ、他のビューからの参照ピクチャは考慮されない。第2に、ビデオコーダは、マルチビュービデオコード化SPS拡張においてビュー間参照ピクチャが出現する順序で、参照ピクチャリストの終端にビュー間参照ピクチャを付加することができる。第3に、ビデオコーダは、ビュー内参照ピクチャとビュー間参照ピクチャの両方のための参照ピクチャリスト修正(RPLM)プロセスを適用することができる。例えば、ビデオエンコーダ又はビデオデコーダは、ビュー間参照ビューコンポーネントの参照ピクチャリスト内の位置を変更する参照ピクチャリスト修正プロセスを実行することができる。ビュー間参照ピクチャは、マルチビュービデオコード化SPS拡張によって規定されているように、それらのインデックス値によりRPLMコマンド内で識別され得る。RPLMプロセスは、以下で詳細に記載される。
[0181]HEVCでは、VCL NAL単位のNAL単位ヘッダは、長さが2バイトであり得る。対照的に、H.264/AVCにおけるVCL NAL単位のNAL単位ヘッダは、長さが1バイトのみであり得る。HEVCのVCL NAL単位のNAL単位ヘッダの第1バイトは、H.264/AVCのVCL NAL単位のNAL単位ヘッダと同じシンタックスとセマンティクスとを有することができる。HEVCのVCL NAL単位のNAL単位ヘッダの第2バイトが存在するとき、HEVCのVCL NAL単位のNAL単位ヘッダの第2バイトは、時間識別子(例えば、「temporal_id」)シンタックス要素と、出力フラグ(例えば、「output_flag」)シンタックス要素とを含むことができる。時間識別子シンタックス要素は、NAL単位用の時間識別子を指定することができる。アクセス単位のビューコンポーネントのコード化スライスを含む各NAL単位は、同じ時間識別子を有することができる。HEVCの付属書類Cに記載されているように、出力フラグシンタックス要素は、NAL単位に関連付けられた復号ピクチャの出力に影響を及ぼす場合がある。
[0182]更に、HEVCにおいてビデオコーダが参照ピクチャリスト0と参照ピクチャリスト1とを生成した後、ビデオコーダは、参照ピクチャリスト0及び参照ピクチャリスト1の中の参照ピクチャから、合成参照ピクチャリストを生成することができる。合成参照ピクチャリストを生成するために、ビデオコーダは、リスト0及びリスト1から項目(即ち、参照ピクチャ)を選択することができ、選択された項目を合成参照ピクチャリストに挿入(例えば、追加)する。幾つかの例では、ビデオコーダは、リスト0及びリスト1の中の出現の昇順に基づいて、リスト0及びリスト1から項目を選択することができる。選択された項目がすでに合成参照ピクチャリスト内にある場合、ビデオコーダは、その項目を合成参照ピクチャリストに再び挿入することはしない。ビデオコーダは、項目のピクチャ順序カウント(POC)番号を検査することによって、選択された項目がすでに合成参照ピクチャリスト内にあるかどうかを決定することができる。
[0183]HEVCでは、ビデオエンコーダ20は、コード化ピクチャごとに参照ピクチャセット(RPS)を信号伝達する。コード化ピクチャのRPSは、コード化ピクチャに関連付けられた参照ピクチャのセットである。RPSは、コード化ピクチャ、又は復号順序でコード化ピクチャに続く任意のピクチャのインター予測に使用され得る、復号順序でコード化ピクチャに先立つ全ての参照ピクチャを含み、幾つかの例では、それらから構成される場合がある。
[0184]ビデオエンコーダ20は、PPS及びスライスヘッダ内でコード化ピクチャのRPSを信号伝達することができる。例えば、ビデオエンコーダ20は、PPS内でRPSを信号伝達することができ、コード化ピクチャのRPSがPPS内で信号伝達されたRPSであることを、コード化ピクチャのスライスヘッダ内で信号伝達することができる。他の例では、ビデオエンコーダ20は、コード化ピクチャのスライスヘッダ内で、コード化ピクチャのRPSを直接信号伝達することができる。従って、ビデオデコーダ30は、RPSを示すシンタックス要素をスライスヘッダから構文解析することができる。
[0185]ビューコンポーネント(即ち、現在のビューコンポーネント)のRPSは、5つの参照ピクチャサブセットに分割され得る:RefPicSetStCurr0、RefPicSetStCurr1、RefPicSetStFoll0、RefPicSetStFoll1、RefPicSetLtCurr、及びRefPicSetLtFoll。これらの参照ピクチャサブセットの各々は、参照ビューコンポーネントを識別するPOC値のリストを備えることができる。「参照ビューコンポーネント」及び「参照ピクチャ」という用語は、本開示では互換的に使用され得る。RefPicSetStCurr0は、復号順序と出力順序の両方で現在のビューコンポーネントに先立ち、現在のビューコンポーネントのインター予測で使用され得る、全ての短期参照ビューコンポーネントから構成され得る。RefPicSetStCurr1は、復号順序で現在のビューコンポーネントに先立ち、出力順序で現在のビューコンポーネントに続き、現在のビューコンポーネントのインター予測で使用され得る、全ての短期参照ビューコンポーネントから構成され得る。RefPicSetStFoll0は、復号順序と出力順序の両方で現在のビューコンポーネントに先立ち、復号順序で現在のビューコンポーネントに続き現在のビューコンポーネントのインター予測で使用されないビューコンポーネントのうちの1つ又は複数のインター予測で使用され得る、全ての短期参照ビューコンポーネントから構成され得る。RefPicSetStFoll1は、復号順序で現在のビューコンポーネントに先立ち、出力順序で現在のビューコンポーネントに続き、復号順序で現在のビューコンポーネントに続き現在のビューコンポーネントのインター予測で使用されないビューコンポーネントのうちの1つ又は複数のインター予測で使用され得る、全ての短期参照ビューコンポーネントから構成され得る。RefPicSetLtCurrは、復号順序で現在のビューコンポーネントに先立ち、現在のビューコンポーネントのインター予測で使用され得る、全ての長期参照ビューコンポーネントから構成され得る。RefPicSetLtFollは、復号順序で現在のビューコンポーネントに先立ち、復号順序で現在のビューコンポーネントに続き現在のビューコンポーネントのインター予測で使用されないビューコンポーネントのうちの1つ又は複数のインター予測で使用され得る、全ての長期参照ビューコンポーネントから構成され得る。
[0186]RefPicSetStCurr0、RefPicSetStCurr1、RefPicSetStFoll0、RefPicSetStFoll1、RefPicSetLtCurr、及びRefPicSetLtFollの中の項目の数は、本開示では、それぞれNumRpsStCurr0、NumRpsStCurr1、NumRpsStFoll0、NumRpsStFoll1、NumRpsLtCurr、及びNumRpsLtFollと呼ばれる場合がある。現在のビューコンポーネントがIDRピクチャである場合、RefPicSetStCurr0、RefPicSetStCurr1、RefPicSetStFoll0、RefPicSetStFoll1、RefPicSetLtCurr、及びRefPicSetLtFollは全て空であり、かつNumRpsStCurr0、NumRpsStCurr1、NumRpsStFoll0、NumRpsStFoll1、NumRpsLtCurr、及びNumRpsLtFollは全て0に等しい。参照ピクチャセットの更なる説明は、Boyceらの「JCT−VC break−out report: Reference picture buffering and list construction(AHG21)」、文書番号JCTVC−G1002、2011年11月11日付で見出され得るし、これは2013年4月22日の時点で、http://phenix.int−evry.fr/jct/doc_end_user/documents/7_Geneva/wg11/JCTVC−G1002−v5.zipから入手可能であり、その内容全体は参照により本明細書に組み込まれる。
[0187]ビデオコーダがPスライス又はBスライスをコード化するとき、ビデオコーダは、リスト0及びリスト1の初期バージョンを生成することができる。言い換えれば、ビデオコーダは、リスト0とリスト1とを初期化することができる。ビデオコーダは、リスト0及びリスト1がRefPicSetStCurr0、RefPicSetStCurr1、又はRefPicSetLtCurrからの少なくとも1つの参照ピクチャを含むように、リスト0及びリスト1の初期バージョンを生成することができる。
[0188]例えば、ビデオコーダは、以下の擬似コードによって記述された動作を実行して、リスト0の初期バージョンを生成することができる。
cIdx = 0
while( cIdx <= num_ref_idx_l0_active_minus1 )
{
for( i=0; i < NumRpsStCurr0 && cIdx <= num_ref_idx_l0_active_minus1; cIdx++, i++ )
RefPicList0[cIdx] = RefPicSetStCurr0[i]
for( i=0; i < NumRpsStCurr1 && cIdx <= num_ref_idx_l0_active_minus1; cIdx++, i++ )
RefPicList0[cIdx] = RefPicSetStCurr1[i]
for( i=0; i < NumRpsLtCurr && cIdx <= num_ref_idx_l0_active_minus1; cIdx++, i++ )
RefPicList0[cIdx] = RefPicSetLtCurr[i]
}
上記の擬似コードでは、cIdxはカウンタ変数である。更に、上記の擬似コードでは、num_ref_idx_l0_active_minus1は、リスト0内のアクティブな参照ピクチャの数マイナス1を示す値である。ビデオコーダが上記の擬似コードを実行するとき、ビデオコーダは、RefPicSetStCurr0の各参照ピクチャを参照ピクチャリスト0に挿入し、次いでRefPicSetStCurr1の各参照ピクチャを参照ピクチャリスト0に挿入し、次いでRefPicSetLtCurrの各参照ピクチャを参照ピクチャリスト0に挿入する。
[0189]ビデオコーダは、以下の擬似コードによって記述された動作を実行して、リスト1の初期バージョンを生成することができる。
cIdx = 0
while(cIdx <= num_ref_idx_l1_active_minus1)
{
for( i=0; i < NumRpsStCurr1 && cIdx <= num_ref_idx_l1_active_minus1; cIdx++, i++ )
RefPicList1[cIdx] = RefPicSetStCurr1[i]
for( i=0; i < NumRpsStCurr0 && cIdx <= num_ref_idx_l1_active_minus1; cIdx++, i++ )
RefPicList1[cIdx] = RefPicSetStCurr0[i]
for( i=0; i < NumRpsLtCurr && cIdx <= num_ref_idx_l1_active_minus1; cIdx++, i++ )
RefPicList1[cIdx] = RefPicSetLtCurr[i]
}
ビデオコーダが上記の擬似コードを実行するとき、ビデオコーダは、RefPicSetStCurr0の各参照ピクチャを参照ピクチャリスト1に挿入し、次いでRefPicSetStCurr1の各参照ピクチャを参照ピクチャリスト1に挿入し、次いでRefPicSetLtCurrの各参照ピクチャを参照ピクチャリスト1に挿入する。
[0190]場合によっては、参照ピクチャリスト内の参照ピクチャの順序を変更することが有利であり得る。例えば、位置は単項値を使用して信号伝達され得るので、参照ピクチャリスト内の最初の位置を示すためには、参照ピクチャリスト内の最後の位置よりも少ないビットが必要とされ得る。従って、特定の参照ピクチャが頻繁に使用される可能性がある場合、その特定の参照ピクチャを参照ピクチャリスト内の最後の位置よりも参照ピクチャリスト内の最初の位置に近接させることが有利であり得る。
[0191]従って、ビデオエンコーダ20は、ビットストリーム内に一連の1つ又は複数のRPLMコマンドを含めることができる。RPLMコマンドは、参照ピクチャを参照ピクチャリストに挿入するための1つ又は複数のシンタックス要素のセットであり得る。従って、ビットストリームにRPLMコマンドを含めることによって、ビデオエンコーダ20は、時間的及びビュー予測参照を柔軟に構成することができ、それにより、潜在的なコード化効率の向上を得ることができる。加えて、RPLMコマンドを使用すると、参照ピクチャ選択及び冗長ピクチャ機構がビュー次元に拡張され得るので、誤り耐性が増大され得る。
[0192]ビデオデコーダ30は、RPLMコマンドがビットストリーム内で信号伝達される順序でRPLMコマンドを処理する。更に、ビデオデコーダ30が一連のRPLMコマンドを処理するとき、ビデオデコーダ30は、最初に現在インデックス値を0に設定することができ、各RPLMコマンドの処理中に現在インデックス値を増分することができる。ビデオデコーダ30がRPLMコマンドを処理するとき、ビデオデコーダ30は、現在インデックス値によって示された位置にある参照ピクチャと、現在インデックス値によって示された位置に続く位置にある全ての参照ピクチャとを、参照ピクチャリスト内で1つの位置だけ下にシフトすることができる。次いで、ビデオデコーダ30は、現在インデックス値によって示された位置で、参照ピクチャを参照ピクチャリストに挿入することができる。次いで、ビデオデコーダ30は、参照ピクチャリストを走査し、存在する場合、挿入された参照ピクチャの重複を除去することができる。
[0193]RPLMコマンドは、コード化スライスのスライスヘッダ内で指定され得る。以下の表3は、スライスヘッダに含まれ得るRPLMコマンド用の例示的なシンタックスを示す。
[0194]表7では、「slice_type」は、現在スライス(即ち、スライスヘッダがRPLMコマンドを含むスライス)のタイプを示す。以下の表8は、「slice_type」の例示的なセマンティクスを示す。
[0195]更に、表8の例示的なシンタックスでは、「list_modification_idc」シンタックス要素及び「ref_pic_set_idx」シンタックス要素は、参照ピクチャリストの初期バージョンから、ビデオコーダがインター予測に使用する参照ピクチャリストのバージョンへの変更を指定することができる。「ref_pic_list_modification_flag_l0」シンタックス要素は、リスト0を変更する1つ又は複数の「list_modification_idc」シンタックス要素が存在するかどうかを示す。「ref_pic_list_modification_flag_l0」シンタックス要素が1に等しいとき、「list_modification_idc」シンタックス要素が3に等しくない回数は、リスト0内のアクティブな参照ピクチャリストの数を超えない場合がある。「ref_pic_list_modification_flag_l1」シンタックス要素は、リスト1を変更する1つ又は複数の「list_modification_idc」シンタックス要素が存在するかどうかを示す。「ref_pic_list_modification_flag_l1」シンタックス要素が1に等しいとき、「list_modification_idc」シンタックス要素が3に等しくない回数は、リスト1内のアクティブな参照ピクチャリストの数を超えない場合がある。
[0196]一般に、「ref_pic_set_idx」シンタックス要素は、参照ピクチャリスト内の現在インデックスに移動されるべき参照ピクチャのRefPicSetStCurr0、RefPicSetStCurr1、又はRefPicSetLtCurr内の位置へのインデックスを指定する。「ref_pic_set_idx」シンタックス要素の値は、両端値を含む0から参照ピクチャの最大許容数までの範囲であり得る。
[0197]「list_modification_idc」シンタックス要素は、実行するRPLMコマンドのタイプを指定する。説明を簡単にするために、このシンタックス要素は、RPLMタイプシンタックス要素と呼ばれる場合がある。幾つかの例では、RPLMタイプシンタックス要素は、下記の表によって示されるように、両端値を含む0から3の範囲の値を有することができる。
[0198]リスト0について、RPLMタイプシンタックス要素が0に等しい場合、「ref_pic_set_idx」シンタックス要素が存在し、「ref_pic_set_idx」シンタックス要素は、RefPicSetStCurr0内の位置へのインデックスに対応する。例えば、「ref_pic_set_idx」は、RefPicSetStCurr0内の2番目の位置にある参照ピクチャを示す場合がある。リスト1について、RPLMタイプシンタックス要素が0に等しい場合、「ref_pic_set_idx」シンタックス要素が存在し、「ref_pic_set_idx」シンタックス要素は、RefPicSetStCurr1内の位置へのインデックスに対応する。
[0199]リスト0について、RPLMタイプシンタックス要素が1に等しい場合、「ref_pic_set_idx」シンタックス要素が存在し、「ref_pic_set_idx」シンタックス要素は、RefPicSetStCurr1内の位置へのインデックスに対応する。リスト1について、RPLMタイプシンタックス要素が1に等しい場合、「ref_pic_set_idx」シンタックス要素が存在し、「ref_pic_set_idx」シンタックス要素は、RefPicSetStCurr0内の位置へのインデックスに対応する。
[0200]RPLMタイプシンタックス要素が2に等しい場合、「ref_pic_set_idx」シンタックス要素が存在し、「ref_pic_set_idx」シンタックス要素は、RefPicSetLtCurr内の位置へのインデックスを示す。RPLMタイプシンタックス要素が3に等しい場合、ビデオコーダは、参照ピクチャリストを修正するループを停止する。
[0201]「ref_pic_list_modification_flag_l0」シンタックス要素が1に等しいとき、ビデオコーダは、「list_modification_idc」シンタックス要素を、それらがビットストリーム内で出現した順序で処理することができる。「list_modification_idc」シンタックス要素ごとに、ビデオコーダは、「list_modification_idc」シンタックス要素が0、1、又は2に等しいかどうかを決定することができる。「list_modification_idc」シンタックス要素が0、1、又は2に等しい場合、ビデオコーダは、1つの参照ピクチャを参照ピクチャインデックスに移動するプロセスを起動することができる。ビデオコーダは、プロセスへの入力としてインデックスrefIdxL0を提供することができ、プロセスの出力にrefIdxL0を設定することができる。refIdxL0はリスト0へのインデックスである。ビデオコーダは、最初にrefIdxL0を0に等しくなるように設定することができる。1つの参照ピクチャを参照ピクチャインデックスに移動するプロセスは、以下に記載される。そうではなく、「list_modification_idc」シンタックス要素が3に等しい場合、ビデオコーダは、リスト0についての参照ピクチャリスト修正プロセスを停止する。
[0202]現在スライスがBスライスであり、「ref_pic_list_modification_flag_l1」シンタックス要素が1に等しいとき、ビデオコーダは、「list_modification_idc」シンタックス要素を、それらがビットストリーム内で出現した順序で処理することができる。「list_modification_idc」シンタックス要素ごとに、ビデオコーダは、「list_modification_idc」シンタックス要素が0、1、又は2に等しいかどうかを決定することができる。「list_modification_idc」シンタックス要素が0、1、又は2に等しい場合、ビデオコーダは、1つの参照ピクチャを参照ピクチャインデックスに移動するプロセスを起動することができる。ビデオコーダは、プロセスへの入力としてインデックスrefIdxL1を提供することができ、プロセスの出力にrefIdxL1を設定することができる。refIdxL1はリスト1へのインデックスである。ビデオコーダは、最初にrefIdxL1を0に等しくなるように設定することができる。1つの参照ピクチャを参照ピクチャインデックスに移動するプロセスは、以下に記載される。そうではなく、「list_modification_idc」シンタックス要素が3に等しい場合、ビデオコーダは、リスト1についての参照ピクチャリスト修正プロセスを停止する。
[0203]上述されたように、ビデオコーダは、参照ピクチャを参照ピクチャインデックスに移動するプロセスを実行することができる。このプロセスは、入力として参照ピクチャインデックスを取得し、増分された参照ピクチャインデックスを出力することができる。参照ピクチャインデックスは、refIdxLXと表記される場合があり、ここで、リスト0内の参照ピクチャの移動の場合Xは0に等しく、リスト1内の参照ピクチャの移動の場合Xは1に等しい。「list_modification_idc」シンタックス要素が0に等しく、現在の参照ピクチャリストがリスト0である場合、ビデオデコーダは、現在の参照ピクチャセットとしてRefPicSetStCurr0を指定することができる。そうではなく、「list_modification_idc」シンタックス要素が0に等しく、現在の参照ピクチャリストがリスト1である場合、ビデオコーダは、現在の参照ピクチャセットとしてRefPicSetStCurr1を指定することができる。「list_modification_idc」シンタックス要素が1に等しく、現在の参照ピクチャリストがリスト0である場合、ビデオコーダは、現在の参照ピクチャセットとしてRefPicSetStCurr1を指定することができる。「list_modification_idc」シンタックス要素が1に等しく、現在の参照ピクチャリストがリスト1である場合、ビデオコーダは、現在の参照ピクチャセットとしてRefPicSetStCurr0を指定することができる。「list_modification_idc」シンタックス要素が2に等しい場合、ビデオコーダは、現在の参照ピクチャセットとしてRefPicSetLtCurrを指定することができる。
[0204]更に、参照ピクチャを参照ピクチャインデックスに移動するプロセスでは、ビデオコーダは、関連POC値pocLXを決定することができる。関連POC値は、「ref_pic_set_idx」シンタックス要素によって示された現在の参照ピクチャセット内の位置で、参照ピクチャリストX(ここで、Xは0又は1である)に挿入する参照ピクチャのPOC値であり得る。pocLX変数は、一般に次のように導出される。
pocLX = curRefPicSet[ref_pic_set_idx]
[0205]加えて、ビデオコーダは、以下の擬似コードによって記述されたプロセスを実行して、関連POC値を有するピクチャを、refIdxLX(ここで、Xは0又は1である)によって示された位置で、現在の参照ピクチャリストに挿入することができる。
for( cIdx = num_ref_idx_lX_active_minus1 + 1; cIdx > refIdxLX; cIdx-- )
RefPicListX[cIdx] = RefPicListX[cIdx−1]
RefPicListX[refIdxLX++] = pocLX
nIdx = refIdxLX
for( cIdx = refIdxLX; cIdx <= num_ref_idx_lX_active_minus1 + 1; cIdx++ )
if(PicOrderCnt(RefPicListX[cIdx]) != pocLX )
RefPicListX[nIdx++] = RefPicListX[cIdx]
上記の擬似コードでは、cIdxはカウンタ変数である。更に、上記の擬似コードでは、num_ref_idx_lX_active_minus1は、現在の参照ピクチャリスト内のアクティブな参照ピクチャの数マイナス1に等しい変数である。PicOrderCntは、参照ピクチャのPOC値を返す関数である。ビデオコーダが上記の擬似コードによって記述されたプロセスを実行するとき、ビデオコーダは、refIdxLXによって示された位置に続く参照ピクチャを現在の参照ピクチャリスト内のより後の位置にシフトし、関連POC値を有する参照ピクチャを挿入し、refIdxLXを増分し、関連POC値を有する参照ピクチャのあらゆる複製を参照ピクチャリストから除去することができる。
[0206]上記の擬似コードでは、現在の参照ピクチャリストの長さは、一時的に、現在の参照ピクチャリストの最終バージョンの長さよりも1要素だけ長い場合がある。従って、ビデオコーダが上記の擬似コードによって記述された動作を実行した後、ビデオコーダは、現在の参照ピクチャリストの最終バージョン内の0からnum_ref_idx_lX_active_minus1までの要素のみを保持することができる。
[0207]本開示の技法によれば、ビデオコーダは、現在のビューコンポーネント用のRPSを導出する。上述されたように、現在のビューコンポーネントのRPSは、参照ピクチャサブセットRefPicSetStCurr0、RefPicSetStCurr1、RefPicSetStFoll0、RefPicSetStFoll1、RefPicSetLtCurr、RefPicSetLtFollを含む場合がある。加えて、現在のビューコンポーネントのRPSは、ビュー間参照ピクチャセット(RefPicSetInterView)を含む場合がある。ビュー間参照ピクチャセットは、現在のビューコンポーネントと同じビューからではなく、現在のビューコンポーネントと同じアクセス単位からの、かつビュー間予測参照用に現在のビューコンポーネントによって使用されるビューコンポーネントを含む。幾つかの例では、ビュー間参照ピクチャセットは、シーケンスレベルで信号伝達され、同じビューの全てのビューコンポーネントによって共有され得る。
[0208]本開示の態様によれば、ビデオエンコーダ20は、前に記載されたシンタックス要素を含む任意の符号化技法に続いて、以下の擬似コードを使用してRefPicSetInterViewを導出することができる。
for( j = 0; j < num_ref_views[VOIdx]; j++ )
if (inter_view_texture_flag[i][j])
RefPicSetInterView[j] = ref_view_idx[VOIdx][j]
NumRpsInterView = j
[0209]上記のRefPicSetInterView導出方法に続くコード化技法では、ビデオエンコーダ20は、RefPicSetInterView内の所与のビューi用のj番目の参照のために、inter_view_texture_flag[i][j]が1に等しく設定された参照ビューのみを含めることができる。例えば、前述されたように、ref_view_idx[i][j]に等しいビュー順序インデックスを有するビューコンポーネントが、ビュー間テクスチャ予測で使用され得るとき、ビデオエンコーダ20は、inter_view_texture_flag[i][j]を1に等しく設定することができる。従って、これらの例では、ビデオエンコーダ20は、ビュー間テクスチャ予測で使用され得る参照ビューのみを含めることによって、参照ピクチャセットRefPicSetInterViewを構築することができる。前述されたように、inter_view_texture_idc[i][j]が1又は3のいずれかに設定されたとき、inter_view_texture_flag[i][j]は1に等しくなるように導出され得る。即ち、RefPicSetInterViewに含まれる参照ビューの全ては、ビュー間テクスチャ予測で使用され得るが、それらのうちの幾つかは、ビュー間動き予測又はビュー間残差予測などの他のビュー間予測でも使用され得る。
[0210]本開示の態様によれば、ビデオエンコーダは、別のビュー間参照ピクチャセット(OtherRefSetInterView)を導出することができる。OtherRefSetInterViewは、ビュー間動き予測又はビュー間残差予測などの他のタイプのビュー間予測に使用され得る、全てのビュー間参照ビューコンポーネントから構成されるビュー間参照ピクチャセットであり得る。ビデオエンコーダ20は、以下の擬似コードを使用してOtherRefSetInterViewを導出することができる。
for( j = 0; j < num_ref_views[VOIdx]; j++ )
if (InterViewOtherFlag[i][j])
OtherRefSetInterView[j] = ref_view_idx[VOIdx][j]
NumOtherRefInterView = j
[0211]ビデオエンコーダ20が、ビュー間テクスチャ予測で使用され得る参照ビューのみに従って、RefPicSetInterViewを導出する上記の例における擬似コードと同様に、ビデオエンコーダ20は、InterViewOtherFlag[i][j]が1に等しく設定されるOtherRefSetInterView内のビュー間参照のみを含めることができる。上述されたように、ref_view_idx[i][j]に等しいビュー順序インデックスを有するビューコンポーネントが、ビュー間動き予測及びビュー間残差予測などのビュー間テクスチャ予測とは異なるタイプのビュー間予測で使用され得るとき、ビデオエンコーダ20は、InterViewOtherFlag[i][j]を1に等しく設定することができる。従って、これらの例では、ビデオエンコーダ20は、他のタイプのビュー間予測で使用され得る参照ビューのみを含めることによって、参照ピクチャセットOtherRefSetInterViewを構築することができる。前述されたように、inter_view_texture_idc[i][j]が2又は3のいずれかに設定されたとき、InterViewOtherFlag[i][j]は、1に等しくなるように導出され得る。即ち、OtherRefSetInterViewに含まれる参照ビューの全ては、(ビュー間動き予測又はビュー間残差予測などの)ビュー間テクスチャ予測とは異なるタイプのビュー間予測で使用され得るが、それらのうちの幾つかはビュー間テクスチャ予測でも使用され得る。
[0212]上述されたRefPicSetInterView及びOtherRefSetInterViewの構築は、マルチビュービデオコード化及び3Dビデオコード化に関係したが、同様のプロセスは、スケーラブルビデオコード化を使用する技法に適用され得る。例えば、RefPicSetInterView要素及びOtherRefSetInterView要素は、同じ擬似コードを使用して構築され得る。しかしながら、それぞれ、ビュー間テクスチャ予測及び他のタイプのビュー間予測で使用され得るビューのみを含む要素の代わりに、要素は、それぞれ、ビュー間テクスチャ予測及び他のタイプのビュー間予測で使用され得るスケーラブルレイヤのみを含むはずである。inter_view_texture_flag[i][j]要素及びinter_view_texture_idc[i][j]要素に関して前述されたように、要素のうちの幾つかは、それらの本質的な動作を変更せずに異なるように命名され得る。
[0213]現在ビューのビューコンポーネントの場合、OtherRefSetInterView[j]のビュー間コンポーネントは、jの順序インデックスを増大させることによって順序付けされ得るし、ここで、jは両端値を含む0からNumOtherRefInterView−1までの範囲である。ビデオエンコーダ20は、適切な予測値を見出すまで、0からNumOtherRefInterView−1までOtherRefSetInterView[j]を辿って実行することができる。ビデオエンコーダ20が適切な予測値の参照ビューを見出すと、ビデオエンコーダ20はその予測値を選択し、他のビュー間コンポーネントは検査されない。
[0214]ビデオエンコーダ20は、アクセス単位の現在のビューコンポーネントの参照ピクチャセットに基づいて、現在のビューコンポーネント用の参照ピクチャリストを生成することができる。参照ピクチャセットは、アクセス単位に属し、様々なビューに関連付けられた複数のビューコンポーネントを含む、1つ又は複数のビュー間参照ピクチャセット、例えばRefPicSetInterView、OtherRefSetInterView、及び本明細書に記載された他のビュー間参照セットを含む場合がある。参照ピクチャリストを生成するとき、ビデオエンコーダ20は、RefPicSetInterViewに属さないインデックスを有する参照ビューを除外することができる。従って、ビュー間動き予測又はビュー間残差予測などのビュー間テクスチャ予測とは異なるタイプのビュー間予測のみで使用され得る参照ビューは、前述されたように、参照ピクチャリストの初期化又は修正では使用されない。
[0215]更に、ビデオエンコーダ20は、参照ピクチャリスト内の1つ又は複数の参照ピクチャに基づいて、現在のビューコンポーネントを符号化することができる。ビデオエンコーダ20は、現在のビューコンポーネントの参照ピクチャセットを示すシンタックス要素を含むビットストリームを生成することができる。
[0216]更に、本開示の技法によれば、ビデオデコーダ30は、ビットストリームから、アクセス単位の現在のビューコンポーネントの参照ピクチャセットを示すシンタックス要素を構文解析することができ、参照ピクチャセットは、アクセス単位に属し、様々なビューに関連付けられた複数のビューコンポーネントを含むビュー間参照ピクチャセットを含む。ビデオデコーダ30は、参照ピクチャセットに基づいて、現在のビューコンポーネント用の参照ピクチャリストを生成することができる。加えて、ビデオデコーダ30は、参照ピクチャリスト内の1つ又は複数の参照ピクチャに少なくとも部分的に基づいて、現在のビューコンポーネントを復号することができる。
[0217](ビデオエンコーダ20又はビデオデコーダ30などの)ビデオコーダが現在のビューコンポーネント用の参照ピクチャリスト0と参照ピクチャリスト1とを初期化するとき、ビデオコーダは、参照ピクチャリスト0及び参照ピクチャリスト1の中のRefPicSetInterViewからの参照ビューコンポーネントを含める。幾つかの例では、ビデオコーダは、参照ピクチャリスト0及び参照ピクチャリスト1がビュー間参照ピクチャセット(RefPicSetInterView)の各ビューコンポーネントを含むように、参照ピクチャリスト0と参照ピクチャリスト1とを生成する。ビデオコーダは、様々な既定の順序に従って、参照ピクチャリスト0及び参照ピクチャリスト1の中の様々な位置にある、RefPicSetInterViewからの参照ビューコンポーネントを含めることができる。
[0218]第1の例示的な順序では、ビデオコーダは、RefPicSetStCurr0内のビューコンポーネントが最初に列記され、RefPicSetInterView内のビューコンポーネント、RefPicSetStCurr1内のビューコンポーネント、及びRefPicSetLtCurr内のビューコンポーネントが続くように、参照ピクチャリスト0を初期化する。この例では、ビデオコーダは、RefPicSetStCurr1内のビューコンポーネントが最初に列記され、RefPicSetInterView内のビューコンポーネント、RefPicSetStCurr0内のビューコンポーネント、及びRefPicSetLtCurr内のビューコンポーネントが続くように、参照ピクチャリスト1を初期化する。従って、この例では、ビデオデコーダ30は、第1のサブセット(即ち、RefPicSetStCurr0)又は第2のサブセット(即ち、RefPicSetStCurr1)が参照ピクチャリスト内で最初に出現し、ビュー間参照ピクチャセット(即ち、RefPicSetInterView)が続くように、参照ピクチャリスト(例えば、リスト0又はリスト1)を生成することができる。
[0219]第2の例示的な順序では、ビデオコーダは、RefPicSetStCurr0内のビューコンポーネントが最初に列記され、RefPicSetStCurr1内のビューコンポーネント、RefPicSetInterView内のビューコンポーネント、及びRefPicSetLtCurr内のビューコンポーネントが続くように、参照ピクチャリスト0を初期化する。この例では、ビデオコーダは、RefPicSetStCurr1内のビューコンポーネントが最初に列記され、RefPicSetStCurr0内のビューコンポーネント、RefPicSetInterView内のビューコンポーネント、及びRefPicSetLtCurr内のビューコンポーネントが続くように、参照ピクチャリスト1を初期化する。従って、この例では、ビデオデコーダ30は、第1のサブセット(即ち、RefPicSetStCurr0)及び第2のサブセット(即ち、RefPicSetStCurr1)が参照ピクチャリスト内で出現し、ビュー間参照ピクチャセット(即ち、RefPicSetInterView)が続くように、参照ピクチャリスト(例えば、リスト0又はリスト1)を生成することができる。
[0220]第3の例示的な順序では、ビデオコーダは、RefPicSetStCurr0内のビューコンポーネントが最初に列記され、RefPicSetStCurr1内のビューコンポーネント、RefPicSetLtCurr内のビューコンポーネント、及びRefPicSetInterView内のビューコンポーネントが続くように、参照ピクチャリスト0を初期化する。この例では、ビデオコーダは、RefPicSetStCurr1内のビューコンポーネントが最初に列記され、RefPicSetStCurr0内のビューコンポーネント、RefPicSetLtCurr内のビューコンポーネント、及びRefPicSetInterView内のビューコンポーネントが続くように、参照ピクチャリスト1を初期化する。従って、この第3の例では、RefPicSetInterView(ビュー間参照ピクチャセット)内のビューコンポーネントは、参照ピクチャリスト0及び参照ピクチャリスト1の中で最後に出現する。即ち、この例では、ビデオデコーダ30は、第1のサブセット(即ち、RefPicSetStCurr0)、第2のサブセット(即ち、RefPicSetStCurr1)、第5のサブセット(即ち、RefPicSetLtCurr)が参照ピクチャリスト内で出現し、ビュー間参照ピクチャセット(即ち、RefPicSetInterView)が続くように、参照ピクチャリスト(例えば、リスト0又はリスト1)を生成することができる。
[0221]幾つかの例では、RefPicSetInterViewは、2つのサブセット、RefPicSetInterViewFwd及びRefPicSetInterViewBwdに更に分割される。RefPicSetInterViewFwdは、現在のビューコンポーネントのビュー識別子よりも小さいビュー識別子を有する、RefPicSetInterViewの参照ビューコンポーネントを含む。RefPicSetInterViewBwdは、現在のビューコンポーネントのビュー識別子よりも大きいビュー識別子を有する、RefPicSetInterViewの参照ビューコンポーネントを含む。RefPicSetInterViewFwd内のビューコンポーネントの順序及びRefPicSetInterViewBwd内のビューコンポーネントの順序は、対応するSPS内で信号伝達された順序と同じである。即ち、任意のビューA及びビューBについて、ビューAとビューBの両方が現在ビューのview_idよりも大きいview_id値を有し、ビューAがSPS内でビューBに先行する場合、ビューAのビューコンポーネントは、RefPicSetInterViewBwd内でビューBのビューコンポーネントに先行する。ビューAとビューBの両方が現在ビューのview_idよりも小さいview_id値を有し、ビューAがSPS内でビューBに先行する場合、ビューAのビューコンポーネントは、RefPicSetInterViewFwd内でビューBのビューコンポーネントに先行する。
[0222]他の例では、RefPicSetInterViewFwdは、現在のビューコンポーネントのビュー順序インデックスよりも小さいビュー順序インデックスを有する、RefPicSetInterViewの参照ビューコンポーネントを含む。RefPicSetInterViewBwdは、現在のビューコンポーネントのビュー順序インデックスよりも大きいビュー順序インデックスを有する、RefPicSetInterViewの参照ビューコンポーネントを含む。RefPicSetInterViewFwd内のビューコンポーネントの順序及びRefPicSetInterViewBwd内のビューコンポーネントの順序は、対応するSPS内で信号伝達された順序と同じである。即ち、任意のビューA及びビューBについて、ビューAとビューBの両方が現在ビューのビュー順序インデックスよりも大きいビュー順序インデックス値を有し、ビューAがSPS内でビューBに先行する場合、ビューAのビューコンポーネントは、RefPicSetInterViewBwd内でビューBのビューコンポーネントに先行する。ビューAとビューBの両方が現在ビューのビュー順序インデックスよりも小さいビュー順序インデックス値を有し、ビューAがSPS内でビューBに先行する場合、ビューAのビューコンポーネントは、RefPicSetInterViewFwd内でビューBのビューコンポーネントに先行する。
[0223]幾つかの例では、RefPicSetInterViewは、シーケンスパラメータセット内で信号伝達されたビュー依存性シンタックス要素を使用することによって導出される。そのような例では、クリーンランダムアクセス(CRA)のアクセス単位と等価なアンカーアクセス単位に現在のビューコンポーネントが属するとき、RefPicSetInterViewFwdは、anchor_ref_l0[i][j]に等しくなるように導出され得る。全てのjの値について、現在のビューコンポーネントが非アンカーアクセス単位に属するとき、RefPicSetInterViewFwdは、non_anchor_ref_l0[i][j]に等しくなるように導出され得る。CRAのアクセス単位と等価なアンカーアクセス単位に現在のビューコンポーネントが属するとき、RefPicSetInterViewBwdは、anchor_ref_l1[i][j]に等しくなるように導出される。全てのjの値について、現在のビューコンポーネントが非アンカーアクセス単位に属するとき、RefPicSetInterViewBwdは、non_anchor_ref_l0[i][j]に等しくなるように導出され得る。
[0224]幾つかの例では、RefPicSetInterViewは、RefPicSetInterViewFwd及びRefPicSetInterViewBwdに更に分割され、ビデオコーダは、参照ピクチャリスト0がRefPicSetStCurr0、RefPicSetStCurr1、RefPicSetLtCurr、及びRefPicSetInterViewFwdからの参照ビューコンポーネントを含むが、RefPicSetInterViewBwdからの参照ビューコンポーネントを含まないように、参照ピクチャリスト0を初期化することができる。ビデオコーダは、参照ピクチャリスト1がRefPicSetStCurr0、RefPicSetStCurr1、RefPicSetLtCurrn、及びRefPicSetInterViewBwdからの参照ビューコンポーネントを含むが、RefPicSetInterViewFwdからの参照ビューコンポーネントを含まないように、参照ピクチャリスト1を初期化することができる。
[0225]従って、ビデオコーダは、第1の参照ピクチャリストがビュー間参照ピクチャの第1のサブセット(例えば、RefPicSetInterViewFwd)を含み、ビュー間参照ピクチャの第2のサブセット(例えば、RefPicSetInterViewBwd)を含まないように、第1の参照ピクチャリスト(例えば、リスト0)を生成することができる。更に、ビデオコーダは、第2の参照ピクチャリストがビュー間参照ピクチャの第2のサブセット(例えば、RefPicSetInterViewBwd)を含み、ビュー間参照ピクチャの第1のサブセット(例えば、RefPicSetInterViewFwd)を含まないように、第2の参照ピクチャリスト(例えば、リスト1)を生成することができる。
[0226]代替として、RefPicSetInterViewがRefPicSetInterViewFwd及びRefPicSetInterViewBwdに更に分割される幾つかの例では、ビデオコーダは、上述された第1、第2、又は第3の例示的な順序に従って、参照ピクチャリスト0と参照ピクチャリスト1とを初期化することができる。しかしながら、ビデオコーダが参照ピクチャリスト0内のビュー間参照ビューコンポーネントを含めるとき、ビデオコーダは、RefPicSetInterViewBwdからのビュー間参照ビューコンポーネントの前に、RefPicSetInterViewFwdからの各ビュー間参照ビューコンポーネントを含めることができる。ビデオコーダが参照ピクチャリスト1内のビュー間参照ビューコンポーネントを含めるとき、ビデオコーダは、RefPicSetInterViewFwdからの任意のビュー間参照ビューコンポーネントの前に、RefPicSetInterViewBwdからの各ビュー間参照ビューコンポーネントを含めることができる。
[0227]図4は、本開示の技法を実施できるビデオエンコーダ20の一例を示すブロック図である。ビデオエンコーダ20は、ブロック、又はブロックの区分若しくはサブ区分を含む、ビデオフレーム内のブロックのイントラコード化とインターコード化とを実行することができる。イントラコード化は、空間的予測に依拠して、所与のビデオフレーム内のビデオにおける空間的冗長性を低減又は除去する。インターコード化は、時間的予測に依拠して、ビデオシーケンスの隣接するフレーム内のビデオにおける時間的冗長性を低減又は除去する。イントラモード(Iモード)は、幾つかの空間ベースの圧縮モードのいずれかを指す場合があり、かつ単方向予測(Pモード)又は双方向予測(Bモード)などのインターモードは、幾つかの時間ベースの圧縮モードのいずれかを指す場合がある。図4ではインターモード符号化用の構成要素が描写されているが、ビデオエンコーダ20は、イントラモード符号化用の構成要素を更に含む場合があることを理解されたい。しかしながら、そのような構成要素は、簡潔さ及び明瞭さのために図示されていない。
[0228]図4に示されたように、ビデオエンコーダ20は、ビデオフレーム内の符号化されるべき現在のビデオブロックを受信する。図4の例では、ビデオエンコーダ20は、モード選択ユニット40と、参照フレームメモリ64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピーコード化ユニット56とを含む。次に、モード選択ユニット40は、動き補償ユニット44と、動き推定ユニット42と、イントラ予測ユニット46と、区分化ユニット48とを含む。ビデオブロック復元のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換ユニット60と、加算器62とを含む。ブロック境界をフィルタ処理して、復元されたビデオからブロック歪み(blockiness artifacts)を除去するデブロッキングフィルタ(図4に図示せず)も含むことができる。必要な場合、デブロッキングフィルタは、通常、加算器62の出力をフィルタ処理することになる。
[0229]符号化プロセス中に、ビデオエンコーダ20は、コード化されるべきビデオフレーム又はスライスを受信する。フレーム又はスライスは、複数のビデオブロックに分割され得る。動き推定ユニット42及び動き補償ユニット44は、1つ又は複数の参照フレーム内の1つ又は複数のブロックに対して、受信されたビデオブロックのインター予測コード化を実行して、時間圧縮を実現する。代替的に、イントラ予測ユニット46は、コード化されるべきブロックと同じフレーム又はスライス内の1つ又は複数の隣接ブロックに対して、受信されたビデオブロックのイントラ予測コード化を実行して、空間圧縮を実現する。ビデオエンコーダ20は、複数のコード化パスを実行して、例えば、ビデオデータのブロックごとに適切なコード化モードを選択することができる。
[0230]その上、区分化ユニット48は、以前のコード化パスにおける以前の区分化方式の評価に基づいて、ビデオデータのブロックをサブブロックに区分化することができる。例えば、区分化ユニット48は、最初にフレーム又はスライスをLCUに区分化し、レート歪み分析(例えば、レート歪み最適化)に基づいて、LCUの各々をサブCUに区分化することができる。モード選択ユニット40は更に、LCUをサブCUに区分化することを示す4分木データ構造を生成することができる。4分木のリーフノードCUは、1つ又は複数のPUと、1つ又は複数のTUとを含む場合がある。
[0231]モード選択ユニット40は、例えば、誤差結果に基づいてコード化モード、即ちイントラ又はインターのうちの1つを選択し、得られたイントラコード化ブロック又はインターコード化ブロックを、加算器50に提供して残差ブロックデータを生成し、加算器62に提供して参照フレームとして使用するための符号化ブロックを復元することができる。モード選択ユニット40はまた、動きベクトル、イントラモードインジケータ、区分情報、及び他のそのようなシンタックス情報などのシンタックス要素を、エントロピーコード化ユニット56に提供する。
[0232]動き推定ユニット42と動き補償ユニット44は高度に統合できるが、概念的な目的のために別々に示される。動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、例えば、現在のフレーム(又は他のコード化単位)内のコード化されている現在ブロックに対する予測参照フレーム(又は他のコード化単位)内の予測ブロックの変位を示すことができる。予測ブロックは、絶対値差分和(SAD)、2乗差分和(SSD)、又は他の差分メトリックによって決定できる画素差分に関して、コード化されるべきブロックに厳密に一致することが分かるブロックである。動きベクトルはまた、ブロックの区分の変位を示すことができる。動き補償は、動き推定によって決定された動きベクトルに基づいて、予測ブロックを取得又は生成することに関与することができる。この場合も、幾つかの例では、動き推定ユニット42と動き補償ユニット44は機能的に統合することができる。
[0233]動き推定ユニット42は、ビデオブロックを参照フレームメモリ64内の参照フレームのビデオブロックと比較することによって、インターコード化フレームのビデオブロックについての動きベクトルを計算する。動き補償ユニット44はまた、参照フレーム、例えば、Iフレーム又はPフレームのサブ整数画素を補間することができる。例として、ITU H.264規格は、2つのリスト、即ち、符号化されている現在のフレームよりも前の表示順序を有する参照フレームを含むリスト0と、符号化されている現在のフレームよりも後の表示順序を有する参照フレームを含むリスト1とを記述する。従って、参照フレームメモリ64に記憶されたデータは、これらのリストに従って編成され得る。
[0234]動き推定ユニット42は、参照フレームメモリ64からの1つ又は複数の参照フレームのブロックを、現在のフレーム、例えばPフレーム又はBフレームの符号化されるべきブロックと比較する。参照フレームメモリ64内の参照フレームがサブ整数画素についての値を含むとき、動き推定ユニット42によって計算される動きベクトルは、参照フレームのサブ整数画素位置を指すことができる。動き推定ユニット42及び/又は動き補償ユニット44はまた、サブ整数画素位置についての値が参照フレームメモリ64に記憶されていない場合、参照フレームメモリ64に記憶された参照フレームのサブ整数画素位置についての値を計算するように構成され得る。動き推定ユニット42は、計算された動きベクトルをエントロピーコード化ユニット56及び動き補償ユニット44に送る。動きベクトルによって識別される参照フレームブロックは、予測ブロックと呼ばれる場合がある。動き補償ユニット44は、予測ブロックに基づいて予測データを計算することができる。
[0235]イントラ予測ユニット46は、上述の動き推定ユニット42及び動き補償ユニット44によって実行されるインター予測の代替として、現在ブロックをイントラ予測することができる。詳細には、イントラ予測ユニット46は、現在ブロックを符号化するために使用するイントラ予測モードを決定することができる。幾つかの例では、イントラ予測ユニット46は、例えば、別個の符号化パスの間、様々なイントラ予測モードを使用して現在ブロックを符号化することができ、イントラ予測ユニット46(又は、幾つかの例では、モード選択ユニット40)は、テストされたモードから使用するのに適切なイントラ予測モードを選択することができる。
[0236]例えば、イントラ予測ユニット46は、様々なテストされたイントラ予測モードについてのレート歪み分析を使用してレート歪み値を計算し、テストされたモードの中で最良のレート歪み特性を有するイントラ予測モードを選択することができる。レート歪み分析は、一般に、符号化ブロックと、符号化ブロックを生成するために符号化された元の符号化されていないブロックとの間の歪み(又は誤差)の量及び符号化ブロックを生成するために使用されるビットレート(即ち、ビット数)を決定する。イントラ予測ユニット46は、どのイントラ予測モードがブロック用の最良のレート歪み値を呈するかを決定するために、様々な符号化ブロック用の歪み及びレートから比率を計算することができる。ブロック用のイントラ予測モードを選択した後、イントラ予測ユニット46は、ブロック用に選択されたイントラ予測モードを示す情報を、エントロピーコード化ユニット56に提供することができる。
[0237]ビデオエンコーダ20は、コード化されている元のビデオブロックから、モード選択ユニット40からの予測データを減算することによって、残差ビデオブロックを形成する。加算器50は、この減算演算を実行する1つ又は複数の構成要素を代表する。変換処理ユニット52は、離散コサイン変換(DCT)又は概念的に同様の変換などの変換を残差ブロックに適用し、残差変換係数値を備えるビデオブロックを生成する。変換処理ユニット52は、概念的にDCTに類似する、H. 264規格又は来たるHEVC規格によって定義される変換などの他の変換を実行することができる。ウェーブレット変換、整数変換、サブバンド変換又は他のタイプの変換も使用することができる。いずれの場合も、変換処理ユニット52は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、残差情報を画素値領域から、周波数領域などの変換領域に変換することができる。量子化ユニット54は、残差変換係数を量子化してビットレートを更に低減する。量子化プロセスは、係数の一部又は全部に関連するビット深さを低減することができる。量子化の程度は、量子化パラメータを調整することによって修正することができる。
[0238]量子化の後、エントロピーコード化ユニット56は、量子化変換係数をエントロピーコード化する。例えば、エントロピーコード化ユニット56は、コンテンツ適応型可変長コード化(CAVLC)、コンテキスト適応型バイナリ算術コード化(CABAC)又は別のエントロピーコード化技法を実行することができる。エントロピーコード化ユニット56によるエントロピーコード化の後、符号化されたビデオは、別の機器に送信されるか、又は後で送信するか若しくは取り出すためにアーカイブすることができる。コンテキスト適応型バイナリ算術コード化の場合、コンテキストは隣接ブロックに基づく場合がある。
[0239]場合によっては、エントロピーコード化ユニット56又はビデオエンコーダ20の別のユニットは、エントロピーコード化に加えて、他のコード化機能を実行するように構成され得る。例えば、エントロピーコード化ユニット56は、ブロック及び区分についてのCBP値を決定するように構成され得る。また、場合によっては、エントロピーコード化ユニット56は、ブロック又はその区分内の係数のランレングスコード化を実行することができる。特に、エントロピーコード化ユニット56は、ジグザグスキャン又は他のスキャンパターンを適用して、ブロック又は区分内の変換係数をスキャンし、更なる圧縮のためにゼロのランを符号化することができる。エントロピーコード化ユニット56はまた、符号化ビデオビットストリーム内での送信用の適切なシンタックス要素を有するヘッダ情報を構築することができる。
[0240]逆量子化ユニット58及び逆変換ユニット60は、それぞれ逆量子化及び逆変換を適用して、例えば、参照ブロックとして後で使用するために、画素領域内の残差ブロックを復元する。動き補償ユニット44は、残差ブロックを参照フレームメモリ64のフレームのうちの1つの予測ブロックに加算することによって、参照ブロックを計算することができる。動き補償ユニット44はまた、復元された残差ブロックに1つ又は複数の補間フィルタを適用して、動き推定において使用するサブ整数画素値を計算することができる。加算器62は、復元された残差ブロックを、動き補償ユニット44によって生成された動き補償予測ブロックに加算して、参照フレームメモリ64に記憶するための復元されたビデオブロックを生成する。復元されたビデオブロックは、後続ビデオフレーム内のブロックをインターコード化するために、動き推定ユニット42及び動き補償ユニット44によって参照ブロックとして使用することができる。
[0241]ビデオエンコーダ20は、上述のように、幾つかのシンタックス要素を生成することができ、それらはエントロピー符号化ユニット56又はビデオエンコーダ20の別の符号化ユニットによって符号化することができる。幾つかの例では、ビデオエンコーダ20は、上述のように、MVCビットストリーム用のシンタックス要素を生成し符号化することができる。
[0242]上記のように、ビデオエンコーダ20は、ビュー依存性、即ち、所与のビューを復元するためにデコーダがどのビューをビュー間予測で使用できるかを信号伝達することができる。本開示の態様によれば、また上記のように、ビデオエンコーダ20は更に、依存ビューに関連付けられたビュー間予測のタイプを信号伝達することができる。例えば、ビデオエンコーダ20は、特定の依存ビューが、所与のビューについて、ビュー間テクスチャ予測、ビュー間動き予測、及び/又はビュー間残差予測に関連付けられていることを信号伝達することができる。
[0243]同じく上記のように、ビデオエンコーダ20は、スケーラブルレイヤ依存性、即ち、所与のビューを復元するためにデコーダがどのスケーラブルレイヤをレイヤ間予測で使用できるかを信号伝達することができる。本開示の態様によれば、また上記のように、ビデオエンコーダ20は更に、依存スケーラブルレイヤに関連付けられたレイヤ間予測のタイプを信号伝達することができる。例えば、ビデオエンコーダ20は、特定の依存スケーラブルレイヤが、所与のレイヤについて、レイヤ間テクスチャ予測、レイヤ間動き予測、及び/又はレイヤ間残差予測に関連付けられていることを信号伝達することができる。
[0244]同じく本開示の態様によれば、ビデオエンコーダ20は、1つ又は複数の参照ピクチャリスト(リスト0及びリスト1)を構築することができる。ビデオエンコーダ20は更に、1つ又は複数の参照ピクチャセット(RPS)とサブセットとを構築することができる。本開示の態様によれば、ビデオエンコーダ20は、候補参照ビューに関連付けられたビュー間予測のタイプに基づいて、1つ以上の参照ピクチャリスト、又は1つ以上の参照ピクチャセット若しくはサブセットを構築することができる。例えば、ビデオエンコーダは、ビュー間テクスチャ予測、ビュー間動き予測、及びビュー間残差予測などの、1つのタイプのビュー間予測のみに使用され得る、参照候補ビューのうちの一部又は全部を除外することができる。スケーラブルビデオコード化技法に適用可能な例では、ビデオエンコーダ20は、候補スケーラブルレイヤに関連付けられたレイヤ間予測のタイプに基づいて、1つ又は複数の参照ピクチャリストと、1つ又は複数の参照ピクチャセット又はサブセットとを構築することができる。
[0245]図5は、本開示の技法を実装できるビデオデコーダ30の例を示すブロック図である。図5の例では、ビデオデコーダ30は、エントロピー復号ユニット70と、動き補償ユニット72と、イントラ予測ユニット74と、逆量子化ユニット76と、逆変換ユニット78と、参照フレームメモリ82と、加算器80とを含む。幾つかの例では、ビデオデコーダ30は、ビデオエンコーダ20(図4)に関して記載された符号化パスとは全体的に逆の復号パスを実行することができる。動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルに基づいて、予測データを生成することができる。
[0246]復号プロセス中に、ビデオデコーダは、ビデオエンコーダ20から、符号化ビデオスライスのビデオブロックと関連するシンタックス要素とを表す符号化ビデオのビットストリームを受信する。ビデオデコーダ30のエントロピー復号ユニット70は、ビットストリームをエントロピー復号して、量子化係数と、動きベクトルと、他のシンタックス要素とを生成する。エントロピー復号ユニット70は、動き補償ユニット72とイントラ予測ユニット74とに動きベクトルと他のシンタックス要素とを転送する。ビデオデコーダ30は、ビデオスライスレベル及び/又はビデオブロックレベルでシンタックス要素を受信することができる。
[0247]例えば、ビデオデコーダ30は、ビデオエンコーダ20からの様々なパラメータセット内のシンタックス要素の数を受信することができる。パラメータセットは、上述のSPS、PPS、又は他のパラメータセットなどのシーケンスレベルヘッダ情報を含んでいる場合がある。
[0248]本開示の態様によれば、ビデオデコーダ30は、ビュー間予測参照間のビュー依存性を示すシンタックス要素を受信することができる。例えば、1つ又は複数のシンタックス要素は、所与のビューについて、上述されたビュー間予測プロセス、即ち、ビュー間テクスチャ予測、ビュー間動き予測、及びビュー間残差予測のうちの1つ又は複数をビデオデコーダ30が実行することを可能にすることによって、所与のビューを復元するためにビデオデコーダ30によって使用され得る、ビュー間依存ビューの全てを指定することができる。ビデオデコーダ30はまた、各依存ビュー間参照に関連付けられたビュー間予測の1つ又は複数のタイプを示す、1つ又は複数の他のシンタックス要素を受信することができる。
[0249]幾つかの例では、本開示の態様によれば、ビデオデコーダ30は、1つ又は複数の参照ピクチャリスト又は参照ピクチャセット(RPS)若しくはサブセットを導出することができる。例えば、ビデオデコーダ30は、ビュー間参照間のビュー間依存性を示す1つ又は複数のシンタックス要素を受信することができる。加えて、ビデオデコーダ30は、ビュー間参照ピクチャの各々について、ビュー間予測のタイプ、即ち、ビュー間テクスチャ予測、ビュー間動き予測、及びビュー間残差予測を示す、1つ又は複数のシンタックス要素を受信することができる。各ビュー間参照に関連付けられたビュー間予測の1つ又は複数のタイプに基づいて、又は、幾つかの例では各ビュー間参照に関連付けられたビュー間予測の様々なタイプの数に基づいて、ビデオデコーダ30は、ビュー間予測の特定のタイプのみに関連付けられた最終的なリスト、セット、又はサブセットに含まれるビュー間参照を除外又は最小化するように、参照ピクチャのリスト、セット、又はサブセットを構築することができる。代替として、ビデオデコーダ30は、ビュー間予測の単一のタイプのみに関連付けられた最終的なリスト、セット、又はサブセットに含まれるビュー間参照を除外又は最小化するように、参照ピクチャのリスト、セット、又はサブセットを構築することができる。更に、ビデオコーダ30は、依存性がレイヤ間依存性であることを除いて、スケーラブルビデオコード化技法に関して同様の方式で動作することができる。
[0250]動き補償ユニット72は、ビットストリーム内で受信された動きベクトルを使用して、参照フレームメモリ82内の参照フレームの中の予測ブロックを識別することができる。イントラ予測ユニット74は、ビットストリーム内で受信されたイントラ予測モードを使用して、空間的に隣接するブロックから予測ブロックを形成することができる。逆量子化ユニット76は、ビットストリーム内で与えられ、エントロピー復号ユニット70によって復号された量子化ブロック係数を逆量子化(inverse quantize)、即ち、逆量子化(de-quantize)する。逆量子化プロセスは、例えば、H.264復号規格によって定義された従来のプロセスを含む場合がある。逆量子化プロセスはまた、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するために、ブロックごとにエンコーダ20によって計算された量子化パラメータQPYの使用を含む場合がある。
[0251]逆変換ユニット58は、画素領域において残差ブロックを生成するために、逆変換、例えば、逆DCT、逆整数変換、又は概念的に同様の逆変換プロセスを変換係数に適用する。動き補償ユニット72は、動き補償されたブロックを生成し、場合によっては、補間フィルタに基づいて補間を実行する。サブ画素精度を有する動き推定に使用されるべき補間フィルタ用の識別子は、シンタックス要素に含まれる場合がある。動き補償ユニット72は、ビデオブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用して、参照ブロックのサブ整数画素についての補間値を計算することができる。動き補償ユニット72は、受信されたシンタックス情報に従って、ビデオエンコーダ20によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成することができる。
[0252]動き補償ユニット72は、シンタックス情報の幾つかを使用して、符号化ビデオシーケンスのフレームを符号化するために使用されるブロックのサイズと、符号化ビデオシーケンスのフレームの各ブロックがどのように区分化されるかを記述する区分情報と、各区分がどのように符号化されるかを示すモードと、各インター符号化ブロック又は区分用の1つ又は複数の参照フレーム(及び参照フレームリスト)と、符号化ビデオシーケンスを復号するための他の情報とを決定する。
[0253]加算器80は、残差ブロックを、動き補償ユニット72又はイントラ予測ユニット74によって生成された対応する予測ブロックと合計して、復号ブロックを形成する。必要な場合、ブロック歪みを除去するために、デブロッキングフィルタも適用されて、復号されたブロックをフィルタ処理することができる。次いで、復号されたビデオブロックは、その後の動き補償に参照ブロックを提供する参照フレームメモリ82に記憶され、表示装置(図1の表示装置32など)上に提示するための、復号されたビデオも生成する。
[0254]図6は、マルチビュービットストリームを符号化する例示的な方法を示す流れ図である。図6に示された例は、全体的に、ビデオエンコーダ20(図1及び図4)によって実行されるものとして記載される。しかしながら、図6に関して記載されたプロセスは、様々な他のプロセッサ、処理ユニット、エンコーダ/デコーダ(コーデック)などのハードウェアベースのコード化ユニットなどによって遂行できることを理解されたい。
[0255]図6の例では、ビデオエンコーダ20は、複数のビューコンポーネント用のビデオデータを符号化することができる(110)。例えば、ビデオエンコーダ20は、複数の複数の異なるビューを符号化することができ、各ビューは、共通のシーンの対応するビデオデータが撮影される異なる視点又は角度に対応する。上記のように、特定のビューの特定のピクチャはビューコンポーネントと呼ばれる。即ち、ビューのビューコンポーネントは、ビューの特定の時間インスタンスに対応する。
[0256]ビデオエンコーダ20はまた、ビュー依存関係の指示を符号化することができる(112)。例えば、所与のビューについて、ビデオエンコーダ20は、他のビューを使用して所与のビュー内のデータを予測することができる。上述されたように、この予測はビュー間予測であり得るし、より具体的には、ビュー間テクスチャ予測、又はビュー間動き予測又はビュー間残差予測などの他のビュー間予測であり得る。ビデオエンコーダ20は、ビデオエンコーダ20が所与のビューの一部分のビュー間予測で使用できる各ビューは依存ビューであると決定することができる。上述されたように、ビデオエンコーダ20は、これらのビュー間予測参照を、RefPicList0及びRefPicList1などのリスト内の依存ビューとして指定することができる。更に、ビデオエンコーダ20は、1つ又は複数のシンタックス要素を使用することによって、所与のビューに関連付けられたビュー間予測参照を追跡することができる。例えば、上述されたように、ビデオエンコーダ20は、ref_view_idx[i][j]などのシンタックス要素を使用して、ビュー間予測参照のビュー順序インデックスを指定することができる。
[0257]幾つかの例では、本開示の態様によれば、ビデオエンコーダ20は、各依存ビューに関連付けられた指示と、依存ビューに関連付けられた予測のタイプを指定する指示とを符号化することができる(114)。例えば、各ビュー間予測参照は、所与のビューについてのインター予測の1つ又は複数のタイプに関連付けられ得る。ビデオエンコーダ20は、ビュー間予測参照がどのインター予測のタイプ(即ち、ビュー間テクスチャ予測、ビュー間動き予測、及びビュー間残差予測のうちの1つ又は複数)に関連付けられるかを決定することができる。ビデオエンコーダ20はまた、1つ又は複数のシンタックス要素を使用して各ビュー間予測参照に関連付けられたインター予測のタイプを示すことができる。
[0258]本開示の態様によれば、上で説明されたように、ビデオエンコーダ20は、inter_view_texture_flag[i][j]のようなシンタックス要素を符号化して、ref_view_idx[i][j]に等しいビュー順序インデックスを有するビュー間予測参照が、参照ピクチャリスト構築のために使用されることになるビュー間RPSサブセットに含まれることになるかどうかを指定することができる。少なくとも幾つかの例では、inter_view_texture_flag[i][j]は0に等しく設定され、これは、ref_view_idx[i][j]に等しいビュー順序インデックスを有するビュー間予測参照がビュー間テクスチャ予測において使用されないことを意味し得る。
[0259]本開示の態様によれば、ビデオエンコーダ20は、ビュー間予測参照と関連付けられる追加のタイプのインター予測を指定し得る、追加のシンタックス要素を符号化することができる。例えば、前に説明されたように、ビデオエンコーダ20は、InterViewOtherFlag[i][j]のようなシンタックス要素を使用することができる。InterViewOtherFlag[i][j]は、ref_view_idx[i][j]に等しいビュー順序インデックスを有するビュー間予測参照が、所与のビューiについて、他のビュー間予測、例えばビュー間テクスチャ予測又はビュー間レジデュラ予測で使用され得るかどうかを示すことができる。
[0260]本開示の態様による他の例では、ビデオエンコーダは、inter_view_texture_idc[i][j]のような別のシンタックス要素を利用することができ、inter_view_texture_idc[i][j]は、ref_view_idx[i][j]に等しいビュー順序インデックスを有するビュー間予測参照がビュー間テクスチャ予測に使用され得るかどうかと、ビュー間予測参照が他のビュー間予測に使用され得るかどうかとの、両方を示すことができる。inter_view_texture_idc[i][j]の決定に基づいて、ビデオエンコーダ20は、inter_view_texture_flag[i][j]及びInterViewOtherFlag[i][j]のような他のシンタックス要素を導出することができる。
[0261]前に説明されたように、図6に関して説明されたものと同じ技法が、依存性がビュー間の依存性とは対照的にレイヤ間の依存性に関することを除いて、スケーラブルビデオコード化の実施の状況において適用され得る。
[0262]図7は、マルチビュービットストリームを復号する例示的な方法を示す流れ図である。図7に示された例は、全体的に、ビデオデコーダ30(図1及び図5)によって実行されるものとして記載される。しかしながら、図7に関して記載されたプロセスは、様々な他のプロセッサ、処理ユニット、エンコーダ/デコーダ(コーデック)などのハードウェアベースのコード化単位などによって遂行できることを理解されたい。
[0263]図7の例では、ビデオデコーダ30は、複数のビューコンポーネント用の符号化ビデオデータを受信することができる(150)。符号化ビデオデータは、複数の異なるビューを含んでよく、各ビューは、共通のシーンの対応するビデオデータが撮影される異なる視点又は角度に対応する。
[0264]本開示の態様によれば、図6に関して説明されたように、ビデオデコーダ30は追加で、ビュー依存性の指示を受信することができる(152)。例えば、ビデオデコーダ30は、ビュー間のビュー依存関係を示す、1つ以上のシンタックス要素又は参照ピクチャリスト若しくはセットを受信することができる。
[0265]本開示の態様によれば、ビデオデコーダはまた、各依存ビューに関連付けられた指示と、依存ビューに関連付けられた予測のタイプを指定する指示とを受信することができる(154)。例えば、ビデオデコーダ30は、ビデオエンコーダ20又は介在する機器から1つ又は複数のシンタックス要素を受信することができる。図6に関して説明された、inter_view_texture_flag[i][j]、inter_view_texture_idc[i][j]、及びInterViewOtherFlag[i][j]のようなこれらのシンタックス要素は、所与のビューiと所与のビューiの依存ビューの全てとの間の、1つ又は複数の特定のタイプのインター予測関係を示すことができる。
[0266]ビデオデコーダ30はまた、受信された情報を使用して、マルチビュービデオデータを復号することができる(156)。即ち、例えば、ビデオデコーダは、ビューの各々を復号し、受信された別個の情報を使用して適切なビュー識別子を決定することができる。次いで、ビデオデコーダ30は、例えば、表示装置32に、ビューを使用する3D表現を提示することができる。
[0267]前に説明されたように、図7に関して説明された同じ技法が、依存性がビュー間の依存性とは対照的にレイヤ間の依存性に関することを除いて、スケーラブルビデオコード化の実施の状況において適用され得る。
[0268]図8は、マルチビュービットストリームを符号化する例示的な方法を示す流れ図である。図8に示された例は、全体的に、ビデオエンコーダ20(図1及び図4)によって実行されるものとして記載される。他の例では、図8に関して記載されたプロセスは、様々な他のプロセッサ、処理ユニット、エンコーダ/デコーダ(コーデック)などのハードウェアベースのコード化単位などによって遂行することができる。図8の例では、ビデオエンコーダ20は、現在のビューコンポーネントの参照ピクチャセット、参照ピクチャリストに基づいて、ビュー間動き予測又はビュー間残差予測のみに関連付けられるビュー間参照を除くビュー間参照ピクチャセットを含む参照ピクチャセットを生成することができる(210)。
[0269]本開示の態様によれば、少なくとも一例では、ビデオエンコーダ20は、ビュー間予測参照に関連付けられる特定のビュー間予測の1つ又は複数のタイプを信号伝達することができる。例えば、ビデオエンコーダ20は、本明細書で前に説明され図6に関して更に説明されたもののような、1つ又は複数のシンタックス要素を使用することができる。加えて、ビデオエンコーダ20は、RefPicSetInterView及びOtherRefSetInterViewのような、1つ又は複数の参照ピクチャセットを含む参照ピクチャセットを導出することができる。幾つかの例では、ビデオエンコーダ20は、ビュー間動き予測又はビュー間残差予測のような、ビュー間テクスチャ予測以外のビュー間予測のみに関連付けられるビュー間参照を除くように、RefPicSetInterViewを導出することができる。ビュー間テクスチャ予測以外のビュー間予測のみに関連付けられるビュー間参照をビュー間参照ピクチャセットに含めることは、コード化効率を低下させ得る。ビデオエンコーダ20は、OtherRefSetInterViewも導出することができ、これは、ビュー間テクスチャ予測以外のタイプのビュー間予測に関連付けられる全てのビュー間参照を含む参照ピクチャセットであり得る。しかし、これは、ビュー間テクスチャ予測にも関連付けられるビュー間参照を排除しない。
[0270]ビデオエンコーダ20はまた、参照ピクチャリスト内の1つ又は複数の参照ピクチャに基づいて、現在のビューコンポーネントを符号化することができる(212)。ビデオエンコーダ20は、現在のビューコンポーネントの参照ピクチャセットを示すシンタックス要素を含むビットストリームを生成することができる(214)。
[0271]図8に関して図示及び記載されたステップは、一例として提供されたにすぎないことを理解されたい。即ち、図8の方法のステップは、必ずしも図8に示された順序で実行される必要があるとは限らず、より少ない、追加の、又は代替のステップを実行することができる。
[0272]前に説明されたように、図8に関して説明された同じ技法が、依存性がビュー間の依存性とは対照的にレイヤ間の依存性に関することを除いて、スケーラブルビデオコード化の実施の状況において適用され得る。
[0273]図9は、マルチビュービットストリームを復号する例示的な方法を示す流れ図である。図9に示された例は、全体的に、ビデオデコーダ30(図1及び図5)によって実行されるものとして記載される。他の例では、図9に関して記載されたプロセスは、様々な他のプロセッサ、処理ユニット、エンコーダ/デコーダ(コーデック)などのハードウェアベースのコード化単位などによって遂行することができる。
[0274]図9に示される例では、ビデオデコーダ30は、ビットストリーム、アクセス単位の現在のビューコンポーネントの参照ピクチャセットを示すシンタックス要素から、ビュー間動き予測又はビュー間残差予測のみに関連付けられるビュー間参照を除くビュー間参照ピクチャセットを含む参照ピクチャセットを解析することができる(250)。例えば、本明細書で前に説明され図6に関して更に説明されたもののような、シンタックス要素の1つ又は複数が、依存ビューに関連付けられるインター予測関係を指定することができる。本開示の態様によれば、シンタックス要素はまた、RefPicSetInterView及びOtherRefSetInterViewのような、1つ又は複数の参照ピクチャセットを含む参照ピクチャセットを指定することができる。幾つかの例では、RefPicSetInterViewは、ビュー間動き予測又はビュー間残差予測のような、ビュー間テクスチャ予測以外のビュー間予測のみに関連付けられるビュー間参照を除く、参照ピクチャセットであり得る。OtherRefSetInterViewは、ビュー間テクスチャ予測以外のタイプのビュー間予測に関連付けられる全てのビュー間参照を含む参照ピクチャセットであり得る。しかし、これは、ビュー間テクスチャ予測にも関連付けられるビュー間参照を排除しない。幾つかの例によれば、ビデオデコーダ30は、解析されたシンタックス要素に基づいて、1つ又は複数の参照ピクチャを導出することができる。
[0275]本開示の態様によれば、少なくとも一例では、ビデオデコーダ30は、参照ピクチャセットに基づいて、現在のビューコンポーネントに対する参照ピクチャリストを生成することができる(252)。ビデオデコーダ30はまた、参照ピクチャリスト内の1つ又は複数の参照ピクチャに基づいて、現在のビューコンポーネントを符号化することができる(253)。
[0276]図9に関して図示及び記載されたステップは、一例として提供されたにすぎないことを理解されたい。即ち、図9の方法のステップは、必ずしも図9に示された順序で実行される必要があるとは限らず、より少ない、追加の、又は代替のステップを実行することができる。
[0277]前に説明されたように、図9に関して説明された同じ技法が、依存性がビュー間の依存性とは対照的にレイヤ間の依存性に関することを除いて、スケーラブルビデオコード化の実施の状況において適用され得る。
[0278]本開示に関して記載された特定のシンタックス要素は、説明の目的で例示的な名称を提供されたが、本開示に記載された概念は、名称にかかわらず、より一般的に任意のシンタックス要素に適用可能であることを理解されたい。例えば、特定の態様が「inter_view_texture_flag[i][j]」、「inter_view_texture_idc[i][j]」又は「InterViewOtherFlag[i][j]」に言及するが、そのようなシンタックス要素は、将来のコード化規約において代替の名称を与えられる可能性があることを理解されたい。
[0279]本開示の特定の技法が新HEVC規格を含むMVC/AVC及び他の修正されたコード化技法に関して記載されたが、本技法は任意の特定のコード化規格に限定されないことを理解されたい。即ち、これらの技法は全般に、例えば、依存ビューとしてビュー間参照を信号伝達することに加えて、ビュー間参照に関連付けられるビュー間予測のタイプを信号伝達することを通じて、マルチビュービデオコード化におけるコード化の効率性を達成することに関する。幾つかの例では、あるビュー間参照は、ビュー間参照に関連付けられるビュー間予測の1つ又は複数のタイプに基づいて、参照ピクチャリストから除かれ得る。他の例では、ビュー間参照は、ビュー間ピクチャ参照に関連付けられるビュー間予測のタイプの数に基づいて、参照ピクチャリストから除かれ得る。ビュー間テクスチャ予測のみ、又はより一般的には単一のタイプのビュー間予測のみのために使用され得る参照ピクチャリストに含まれるビュー間参照を最小化することは、より小さな参照ピクチャリストを可能にすることによってコード化効率を向上させ得る。
[0280]1つ又は複数の例では、記載された機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せに実装することができる。ソフトウェアに実装される場合、機能は、1つ又は複数の命令又はコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行することができる。コンピュータ可読媒体は、例えば、データ記憶媒体などの有形媒体、又は、例えば通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体に対応する、コンピュータ可読記憶媒体を含むことができる。このようにして、コンピュータ可読媒体は、一般に、(1)非一時的である有形コンピュータ可読記憶媒体、又は、(2)信号若しくは搬送波などの通信媒体に対応することができる。データ記憶媒体は、本開示に記載された技法を実装するための命令、コード及び/又はデータ構造を取り出すために、1つ又は複数のコンピュータ、又は1つ又は複数のプロセッサによってアクセスできる任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含むことができる。
[0281]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROM若しくは他の光ディスクストレージ、磁気ディスクストレージ若しくは他の磁気ストレージ機器、フラッシュメモリ、又は命令若しくはデータ構造の形態の所望のプログラムコードを記憶するために使用でき、コンピュータによってアクセスできる任意の他の媒体を備えることができる。同様に、いかなる接続も厳密にはコンピュータ可読媒体と称される。例えば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、又は赤外線、無線、及びマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、又は他のリモート発信源から送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、又は赤外線、無線、及びマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)及びディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)及びブルーレイディスク(登録商標)(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
[0282]更に他の例では、本開示は、その上に記憶されたデータ構造を備えるコンピュータ可読媒体を企図し、データ構造は本開示に一致する符号化ビットストリームを含む。具体的には、符号化ビットストリームは、ビュー依存性を信号伝達するための第1のシンタックス要素と、ビュー依存性の1つ又は複数に関連付けられる予測のタイプを信号伝達するための第2のシンタックス要素とを含み得る。そのようなシンタックス要素は、シーケンスパラメータセット(SPS)中で信号伝達され得る。
[0283]命令は、1つ又は複数のデジタル信号プロセッサ(DSP)などの1つ又は複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、又は他の等価な集積回路若しくはディスクリート論理回路によって実行することができる。従って、本明細書で使用する「プロセッサ」という用語は、前述の構造、又は本明細書に記載された技法の実装に適した任意の他の構造のいずれかを指すことができる。加えて、幾つかの態様では、本明細書に記載された機能は、符号化及び復号のために構成された専用のハードウェア及び/又はソフトウェアモジュールの内部に提供でき、又は合成コーデックに組み込むことができる。また、本技法は、1つ又は複数の回路又は論理要素に完全に実装することができる。
[0284]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、又は一組のIC(例えば、チップセット)を含む、多種多様な機器又は装置に実装することができる。開示された技法を実行するように構成された機器の機能的態様を強調するために、様々な構成要素、モジュール、又はユニットが本開示に記載されたが、それらの構成要素、モジュール、又はユニットは、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上述のように、様々なユニットが、適切なソフトウェア及び/又はファームウェアとともに、上述された1つ又は複数のプロセッサを含んで、コーデックハードウェアユニットにおいて組み合わせることができるか、又は相互動作ハードウェアユニットの集合によって提供することができる。
様々な例が記載された。これら及び他の例は以下の特許請求の範囲内に入る。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオデータを復号する方法であって、
コード化ビットストリームから、所与のレイヤに関連付けられるレイヤ依存性を取得することと、
コード化ビットストリームから、前記レイヤ依存性の1つ以上に関連付けられる予測のタイプを取得することとを備える、方法。
[C2]
前記レイヤが、
ビュー、
ビューのテクスチャコンポーネント、
ビューの深度コンポーネント、
空間スケーラブルレイヤ、及び
品質スケーラブルレイヤ
のうちの1つである、C1に記載の方法。
[C3]
コード化ビットストリームから、前記レイヤ依存性を信号伝達するための第1のシンタックス要素を取得することと、
コード化ビットストリームから、前記レイヤ依存性の1つ以上に関連付けられる予測の前記タイプを信号伝達するための第2のシンタックス要素を取得することとを更に備える、C1に記載の方法。
[C4]
予測の前記タイプを取得することが、レイヤ間テクスチャ予測に使用され得る1つ以上のレイヤの指示を取得することを備える、C1に記載の方法。
[C5]
予測の前記タイプを取得することが、レイヤ間テクスチャ予測に使用され得ない1つ以上のレイヤの指示を取得することを備える、C1に記載の方法。
[C6]
予測の前記タイプを取得することが、レイヤ間動き予測にのみ使用され得る、又は、残差予測にのみ使用され得る、1つ以上のレイヤの指示を取得することを備える、C1に記載の方法。
[C7]
レイヤ依存性を取得することと予測の前記タイプを取得することの両方が、シーケンスパラメータセットにおいて発生する、C1に記載の方法。
[C8]
ビデオデータを符号化する方法であって、
所与のレイヤに関連付けられるレイヤ依存性を生成することと、
前記レイヤ依存性の1つ以上に関連付けられる予測のタイプを生成することとを備える、方法。
[C9]
前記レイヤが、
ビュー、
ビューのテクスチャコンポーネント、
ビューの深度コンポーネント、
空間スケーラブルレイヤ、及び
品質スケーラブルレイヤ
のうちの1つである、C8に記載の方法。
[C10]
前記生成することがコード化ビットストリームで信号伝達することを含む、C8に記載の方法。
[C11]
前記レイヤ依存性を信号伝達するための第1のシンタックス要素を生成することと、
前記レイヤ依存性の1つ以上に関連付けられる予測の前記タイプを信号伝達するための第2のシンタックス要素を生成することとを更に備える、C8に記載の方法。
[C12]
予測の前記タイプを生成することが、レイヤ間テクスチャ予測に使用され得る1つ以上のレイヤの指示を生成することを備える、C8に記載の方法。
[C13]
予測の前記タイプを生成することが、レイヤ間テクスチャ予測に使用され得ない1つ以上のレイヤの指示を生成することを備える、C8に記載の方法。
[C14]
予測の前記タイプを生成することが、レイヤ間動き予測にのみ使用され得る、又は、残差予測にのみ使用され得る、1つ以上のレイヤの指示を生成することを備える、C8に記載の方法。
[C15]
前記生成することが、前記レイヤ依存性と予測の前記タイプとを生成することと、シーケンスパラメータセットで信号伝達することとを備える、C8に記載の方法。
[C16]
ビデオデータをコード化するための装置であって、
所与のレイヤに関連付けられるレイヤ依存性をコード化し、
前記レイヤ依存性の1つ以上に関連付けられる予測のタイプをコード化する
ように構成される1つ以上のプロセッサを備える、装置。
[C17]
前記レイヤが、
ビュー、
ビューのテクスチャコンポーネント、
ビューの深度コンポーネント、
空間スケーラブルレイヤ、及び
品質スケーラブルレイヤ
のうちの1つである、C16に記載の装置。
[C18]
ビデオデータを記憶するように構成され前記プロセッサと通信しているメモリを更に備える、C16に記載の装置。
[C19]
ビデオデータをコード化することが符号化することを備え、前記符号化することが、生成することとコード化ビットストリームで信号伝達することとを備え、前記生成することが、
前記レイヤ依存性を信号伝達するための第1のシンタックス要素を生成することと、
前記レイヤ依存性の1つ以上に関連付けられる予測の前記タイプを信号伝達するための第2のシンタックス要素を生成することとを備える、C16に記載の装置。
[C20]
ビデオデータをコード化することが復号することを備え、前記復号することが、
コード化ビットストリームから、前記レイヤ依存性を信号伝達する第1のシンタックス要素を取得することと、
コード化ビットストリームから、前記レイヤ依存性の1つ以上に関連付けられる予測の前記タイプを信号伝達する第2のシンタックス要素を取得することとを備える、C16に記載の装置。
[C21]
予測の前記タイプをコード化することが、レイヤ間テクスチャ予測に使用され得る1つ以上のレイヤの指示をコード化することを備える、C16に記載の装置。
[C22]
予測の前記タイプをコード化することが、レイヤ間テクスチャ予測に使用され得ない1つ以上のレイヤの指示をコード化することを備える、C16に記載の装置。
[C23]
予測の前記タイプをコード化することが、レイヤ間動き予測にのみ使用され得る、又は、残差予測にのみ使用され得る、1つ以上のレイヤの指示をコード化することを備える、C16に記載の装置。
[C24]
前記コード化することが、前記レイヤ依存性と予測の前記タイプとをコード化し、シーケンスパラメータセットで信号伝達することを備える、C16に記載の装置。
[C25]
ビデオデータをコード化する機器であって、
所与のレイヤに関連付けられるレイヤ依存性をコード化するための手段と、
前記レイヤ依存性の1つ以上に関連付けられる予測のタイプをコード化するための手段とを備える、機器。
[C26]
前記レイヤが、
ビュー、
ビューのテクスチャコンポーネント、
ビューの深度コンポーネント、
空間スケーラブルレイヤ、及び
品質スケーラブルレイヤ
のうちの1つである、C25に記載の機器。
[C27]
レイヤ依存性をコード化するための前記手段が、
前記レイヤ依存性を信号伝達するための第1のシンタックス要素を生成するための手段を備え、
予測のタイプをコード化するための手段が、前記レイヤ依存性の1つ以上に関連付けられる予測の前記タイプを信号伝達するための第2のシンタックス要素を生成するための手段を備える、C25に記載の機器。
[C28]
予測の前記タイプをコード化するための前記手段が、レイヤ間テクスチャ予測に使用され得る1つ以上のレイヤの指示をコード化するための手段を備える、C25に記載の機器。
[C29]
予測の前記タイプをコード化するための前記手段が、レイヤ間テクスチャ予測に使用され得ない1つ以上のレイヤの指示をコード化するための手段を備える、C25に記載の機器。
[C30]
予測の前記タイプをコード化するための前記手段が、レイヤ間動き予測にのみ使用され得る、又は、残差予測にのみ使用され得る、1つ以上のレイヤの指示をコード化するための手段を備える、C25に記載の機器。
[C31]
レイヤ依存性をコード化するための前記手段と予測の前記タイプをコード化するための前記手段の両方が、シーケンスパラメータセットの一部分を生成するための手段を備える、C25に記載の機器。
[C32]
実行されたとき、ビデオデータをコード化するための装置の1つ以上のプロセッサに、
所与のレイヤに関連付けられるレイヤ依存性をコード化させ、
前記レイヤ依存性の1つ以上に関連付けられる予測のタイプをコード化させる
命令を記憶した、非一時的コンピュータ可読記憶媒体。
[C33]
前記レイヤが、
ビュー、
ビューのテクスチャコンポーネント、
ビューの深度コンポーネント、
空間スケーラブルレイヤ、及び
品質スケーラブルレイヤ
のうちの1つである、C32に記載の非一時的コンピュータ可読記憶媒体。
[C34]
前記1つ以上のプロセッサに、
前記レイヤ依存性を信号伝達するための第1のシンタックス要素を生成させ、
前記レイヤ依存性の1つ以上に関連付けられる予測の前記タイプを信号伝達するための第2のシンタックス要素を生成させる
命令を更に備える、C32に記載の非一時的コンピュータ可読記憶媒体。
[C35]
予測の前記タイプを信号伝達することが、レイヤ間テクスチャ予測に使用され得る1つ以上のレイヤの指示を信号伝達するための手段を備える、C32に記載の非一時的コンピュータ可読記憶媒体。
[C36]
予測の前記タイプをコード化することが、レイヤ間テクスチャ予測に使用され得ない1つ以上のレイヤの指示をコード化することを備える、C32に記載の非一時的コンピュータ可読記憶媒体。
[C37]
予測の前記タイプをコード化することが、レイヤ間動き予測にのみ使用され得る、又は、残差予測にのみ使用され得る、1つ以上のレイヤの指示をコード化することを備える、C32に記載の非一時的コンピュータ可読記憶媒体。
[C38]
レイヤ依存性をコード化することと予測の前記タイプをコード化することの両方が、シーケンスパラメータセットのコード化部分を備える、C32に記載の非一時的コンピュータ可読記憶媒体。