概して、本開示は、ステレオビデオデータ、例えば、3次元視覚効果を生成するために使用されるビデオデータをサポートするための技法に関する。ビデオの3次元視覚効果を生成するために、あるシーンの2つの視界、例えば、左眼視界と右眼視界とが同時又はほぼ同時に示される。シーンの左眼視界と右眼視界とに対応する、同じシーンの2つのピクチャが、閲覧者の左眼と右眼との間の水平視差を表すわずかに異なる水平位置から撮影され得る。左眼視界のピクチャが閲覧者の左眼によって知覚され、右眼視界のピクチャが閲覧者の右眼によって知覚されるようにこれらの2つのピクチャを同時又はほぼ同時に表示することによって、閲覧者は3次元ビデオ効果を経験し得る。
本開示は、複数のパックフレームを有するベースレイヤと、1つ以上のフル解像度エンハンスメントレイヤとを含む、スケーラブル多重視界ビットストリームを形成するための技法を提供する。ベースレイヤのパックフレームの各々は、あるシーンの異なる視界(例えば、「右眼視界」及び「左眼視界」)に対応する2つのピクチャのためのデータを有するビデオデータの単一のフレームに対応し得る。特に、本開示の技法は、1つのフレームにパックされ、符号化される、あるシーンの左眼視界の低解像度ピクチャと、そのシーンの右眼視界の低解像度ピクチャとを有するベースレイヤを符号化することを含み得る。更に、本開示の技法は、スケーラブルな方法で、ベースレイヤ中に含まれるステレオペアの1つの視界をそれぞれ含む、2つのフル解像度エンハンスメントレイヤを符号化することを含む。例えば、ベースレイヤに加えて、本開示の技法は、右眼視界又は左眼視界のいずれかのフル解像度ピクチャを有する第1のエンハンスメントレイヤを符号化することを含み得る。本開示の技法はまた、他のそれぞれの視界(例えば、第1のエンハンスメントレイヤ中に含まれない右眼視界又は左眼視界のいずれか)のフル解像度ピクチャを有する第2のエンハンスメントレイヤを符号化することを含み得る。本開示の幾つかの態様によれば、多重視界ビットストリームはスケーラブルな方法で符号化され得る。即ち、スケーラブル多重視界ビットストリームを受信する機器は、ベースレイヤのみ、ベースレイヤ及び1つのエンハンスメントレイヤ、又はベースレイヤ及び両方のエンハンスメントレイヤを受信し、利用し得る。
幾つかの例では、本開示の技法は非対称パックフレームの使用を対象とし得る。即ち、幾つかの例では、ベースレイヤは1つのエンハンスメントレイヤと組み合わせられて、そのエンハンスメントレイヤと、ベースレイヤの一部として符号化された他の視界の低解像度ピクチャとにおいて符号化される、ある視界のフル解像度ピクチャが生成され得る。一般性の損失なしに、(例えば、第1のエンハンスメントレイヤからの)フル解像度ピクチャは右眼視界であり、低解像度ピクチャはベースレイヤの左眼視界部分であると仮定する。このようにして、宛先機器は、3次元出力を与えるために左眼視界をアップサンプリングし得る。この場合も、この例では、エンハンスメントレイヤは、(例えば、ベースレイヤ中の左眼視界のためのデータに対して)レイヤ間予測され得、及び/又は(例えば、ベースレイヤ中の右眼視界のためのデータに対して)視界間予測され得る。
本開示では、概して、ピクチャを視界のサンプルとして参照する。本開示では、概して、フレームを、特定の時間インスタンスを表すアクセスユニットの少なくとも一部分として符号化されるべきである1つ以上のピクチャを備えるものとして参照する。従って、フレームは、1つの視界(即ち、単一のピクチャ)のサンプルに対応するか、又は、パックフレームの場合、複数の視界(即ち、2つ以上のピクチャ)からのサンプルを含み得る。
更に、本開示では、概して、同様の特性を有する一連のフレームを含み得る「レイヤ」を参照する。本開示の態様によれば、「ベースレイヤ」は、一連のパックフレーム(例えば、単一の時間インスタンスにおいて2つの視界のためのデータを含むフレーム)を含み得、パックフレーム中に含まれる各視界の各ピクチャは低解像度(例えば、ハーフ解像度)で符号化され得る。本開示の態様によれば、「エンハンスメントレイヤ」は、ベースレイヤのみにおいてデータを復号することと比較して相対的により高い品質で(例えば、低減された歪みと共に)視界のフル解像度ピクチャを再生するために使用され得るベースレイヤの視界のうちの1つのためのデータを含み得る。幾つかの例によれば、上述のように、(エンハンスメントレイヤの)ある視界のフル解像度ピクチャと、ベースレイヤの他の視界からの低解像度ピクチャとが組み合わせられて、ステレオシーンの非対称表現が形成され得る。
幾つかの例によれば、ベースレイヤは、2つのピクチャが符号化のためにサブサンプリングされ、単一のフレームにパックされることを可能にする、H.264/AVCに準拠し得る。更に、エンハンスメントレイヤは、ベースレイヤに対して及び/又は別のエンハンスメントレイヤに対して符号化され得る。一例では、ベースレイヤは、特定のフレームパッキング構成、例えば、上下、並列、インターリーブされた行、インターリーブされた列、サイコロの五の目の配置(quincunx)(例えば、「チェッカーボード」)、又は他の方法で単一のフレームにパックされる、ハーフ解像度の第1のピクチャ(例えば、「左眼視界」)と、ハーフ解像度の第2のピクチャ(例えば、「右眼視界」)とを含んでいることがある。更に、第1のエンハンスメントレイヤは、ベースレイヤ中に含まれるピクチャのうちの1つに対応するフル解像度ピクチャを含み得、第2のエンハンスメントレイヤは、ベースレイヤ中に含まれる他のそれぞれのピクチャに対応する別のフル解像度ピクチャを含み得る。
一例では、第1のエンハンスメントレイヤは、ベースレイヤの第1の視界(例えば、左眼視界)に対応し得、第2のエンハンスメントレイヤは、ベースレイヤの第2の視界(例えば、右眼視界)に対応し得る。この例では、第1のエンハンスメントレイヤは、ベースレイヤの左眼視界からレイヤ間予測され、及び/又はベースレイヤの右眼視界から視界間予測されたフル解像度フレームを含み得る。その上、第2のエンハンスメントレイヤは、ベースレイヤの右眼視界からレイヤ間予測され、及び/又はベースレイヤの左眼視界から視界間予測されたフル解像度フレームを含み得る。追加又は代替として、第2のエンハンスメントレイヤは、第1のエンハンスメントレイヤから視界間予測されたフル解像度フレームを含み得る。
別の例では、第1のエンハンスメントレイヤは、ベースレイヤの第2の視界(例えば、右眼視界)に対応し得、第2のエンハンスメントレイヤは、ベースレイヤの第1の視界(例えば、左眼視界)に対応し得る。この例では、第1のエンハンスメントレイヤは、ベースレイヤの右眼視界からレイヤ間予測され、及び/又はベースレイヤの左眼視界から視界間予測されたフル解像度フレームを含み得る。その上、第2のエンハンスメントレイヤは、ベースレイヤの左眼視界からレイヤ間予測され、及び/又はベースレイヤの右眼視界から視界間予測されたフル解像度フレームを含み得る。追加又は代替として、第2のエンハンスメントレイヤは、第1のエンハンスメントレイヤから視界間予測されたフル解像度フレームを含み得る。
本開示の技法は、デコーダを有するクライアント機器などの受信機器が、ベースレイヤ、ベースレイヤ及びエンハンスメントレイヤ、又はベースレイヤ及び2つのエンハンスメントレイヤを受信し、利用することを可能にするスケーラブル符号化フォーマットに従ってデータを符号化することを含む。例えば、様々なクライアント機器は、同じ表現の異なる動作点を利用することが可能であり得る。
特に、動作点がベースレイヤのみに対応し、クライアント機器は2次元(2D)表示が可能である例では、クライアント機器は、ベースレイヤを復号し、ベースレイヤの視界のうちの1つに関連するピクチャを廃棄し得る。即ち、例えば、クライアント機器は、ベースレイヤのある視界(例えば、左眼視界)に関連するピクチャを表示し、ベースレイヤの他の視界(例えば、右眼視界)に関連するピクチャを廃棄し得る。
動作点がベースレイヤを含み、クライアント機器はステレオ又は3次元(3D)表示が可能である別の例では、クライアント機器は、ベースレイヤを復号し、ベースレイヤに関連する両方の視界のピクチャを表示し得る。即ち、クライアント機器は、ベースレイヤを受信し得、本開示の技法に従って、表示のために左眼視界と右眼視界とのピクチャを再構成し得る。クライアント機器は、ベースレイヤの左眼視界と右眼視界とのピクチャをアップサンプリングし、その後、ピクチャを表示し得る。
別の例では、動作点は、ベースレイヤと、1つのエンハンスメントレイヤとを含み得る。この例では、2D「高解像度」(HD)表示能力を有するクライアント機器は、ベースレイヤと1つのエンハンスメントレイヤとを受信し、本開示の技法に従って、エンハンスメントレイヤからフル解像度視界のみのピクチャを再構成し得る。本明細書で使用する「高解像度」は1920×1080画素のネイティブ解像度を指し得るが、「高解像度」をなすものは相対的であり、他の解像度も「高解像度」と見なされ得ることを理解されたい。
動作点がベースレイヤと1つのエンハンスメントレイヤとを含み、クライアント機器がステレオ表示能力を有する別の例では、クライアント機器は、エンハンスメントレイヤのフル解像度視界のピクチャ、ならびにベースレイヤの反対側の視界のハーフ解像度ピクチャを復号し、再構成し得る。クライアント機器は、次いで、ベースレイヤのハーフ解像度ピクチャをアップサンプリングし、その後、表示し得る。
更に別の例では、動作点は、ベースレイヤと、2つのエンハンスメントレイヤとを含み得る。この例では、クライアント機器は、ベースレイヤと2つのエンハンスメントレイヤとを受信し、本開示の技法に従って、3D HD表示のために左眼視界と右眼視界とのピクチャを再構成し得る。従って、クライアント機器は、両方の視界に対するフル解像度データを与えるためにエンハンスメントレイヤを利用し得る。従って、クライアント機器は、両方の視界のネイティブフル解像度ピクチャを表示し得る。
本開示の技法のスケーラブルな性質は、様々なクライアント機器が、ベースレイヤ、ベースレイヤ及び1つのエンハンスメントレイヤ、又はベースレイヤ及び両方のエンハンスメントレイヤを利用することを可能にする。幾つかの態様によれば、シングル視界を表示することが可能なクライアント機器は、シングル視界再構成を与えるビデオデータを利用し得る。例えば、そのような機器は、シングル視界表現を与えるために、ベースレイヤ、又はベースレイヤ及び1つのエンハンスメントレイヤを受信し得る。この例では、クライアント機器は、別の視界に関連するエンハンスメントレイヤデータを要求することを回避するか、又はそれを受信したときに廃棄し得る。機器が第2の視界のエンハンスメントレイヤデータを受信又は復号しないとき、機器は、ベースレイヤの1つの視界からのピクチャをアップサンプリングし得る。
他の態様によれば、2つ以上の視界を表示することが可能なクライアント機器(例えば、3次元テレビジョン、コンピュータ、ハンドヘルド機器など)は、ベースレイヤ、第1のエンハンスメントレイヤ、及び/又は第2のエンハンスメントレイヤからのデータを利用し得る。例えば、そのような機器は、ベースレイヤからのデータを利用して、第1の解像度でベースレイヤの両方の視界を使用してシーンの3次元表現を生成し得る。代替的に、そのような機器は、ベースレイヤと1つのエンハンスメントレイヤとからのデータを利用して、シーンの視界のうちの一方が、そのシーンの他方の視界よりも相対的に高い解像度を有する、シーンの3次元表現を生成し得る。代替的に、そのような機器は、ベースレイヤと両方のエンハンスメントレイヤとからのデータを利用して、両方の視界が相対的に高い解像度を有する、シーンの3次元表現を生成し得る。
このように、マルチメディアコンテンツの表現は、2つの視界(例えば、左視界及び右視界)のためのビデオデータを有するベースレイヤ、その2つの視界のうちの一方のための第1のエンハンスメントレイヤ、及びその2つの視界のうちの他方のための第2のエンハンスメントレイヤという、3つのレイヤを含み得る。上記で説明したように、2つの視界は、その2つの視界のデータが3次元効果を生成するために表示され得るという点で、ステレオ視界ペアを形成し得る。本開示の技法によれば、第1のエンハンスメントレイヤは、ベースレイヤ中で符号化された対応する視界の一方又は両方、及び/又はベースレイヤ中で符号化された反対側の視界から予測され得る。第2のエンハンスメントレイヤは、ベースレイヤ及び/又は第1のエンハンスメントレイヤ中で符号化された対応する視界の一方又は両方から予測され得る。本開示では、ベースレイヤの対応する視界からのエンハンスメントレイヤの予測を「レイヤ間予測」と呼び、(ベースレイヤからであるか別のエンハンスメントレイヤからであるかにかかわらず)反対側の視界からのエンハンスメントレイヤの予測を「視界間予測」と呼ぶ。エンハンスメントレイヤの一方又は両方はレイヤ間予測及び/又は視界間予測され得る。
本開示はまた、ネットワークアブストラクションレイヤ(NAL:network abstraction layer)において、例えば、NALユニットの補足エンハンスメント情報(SEI:supplemental enhancement information)メッセージ、又はシーケンスパラメータセット(SPS:sequence parameter set)中で、レイヤ依存性を信号伝達するための技法を提供する。本開示はまた、(同じ時間インスタンスの)アクセスユニット中のNALユニットの復号依存性を信号伝達するための技法を提供する。即ち、本開示は、スケーラブル多重視界ビットストリームの他のレイヤを予測するために特定のNALユニットがどのように使用されるのかを信号伝達するための技法を提供する。H.264/AVC(Advanced Video Coding)の例では、符号化ビデオセグメントは、ビデオテレフォニー、ストレージ、ブロードキャスト、又はストリーミングなどの適用例に対処する「ネットワークフレンドリーな」ビデオ表現を与えるNALユニットに編成される。NALユニットは、Video Coding Layer(VCL)NALユニット及び非VCL NALユニットとしてカテゴリー分類され得る。VCLユニットは、コア圧縮エンジンからの出力を含み得、ブロック、マクロブロック、及び/又はスライスレベルのデータを含み得る。他のNALユニットは非VCL NALユニットであり得る。幾つかの例では、通常は1次符号化ピクチャとして提示される、1つの時間インスタンス中の符号化ピクチャは、1つ以上のNALユニットを含み得るアクセスユニット中に含まれ得る。
幾つかの例では、本開示の技法は、スケーラブルビデオ符号化(SVC)、多重視界ビデオ符号化(MVC)、又はH.264/AVCの他の拡張など、Advanced Video Coding(AVC)に基づいて1つ以上のH.264/AVCコーデックに適用され得る。そのようなコーデックは、SEIメッセージがアクセスユニットに関連付けられたときにそのSEIメッセージを認識するように構成され得、SEIメッセージは、ISOベースメディアファイルフォーマット又はMPEG−2システムビットストリームでアクセスユニット内にカプセル化され得る。本技法はまた、将来の符号化規格、例えば、H.265/HEVC(高効率ビデオ符号化)に適用され得る。
SEIメッセージは、VCL NALユニットからの符号化ピクチャサンプルを復号するためには必要でないが、復号、表示、誤り耐性、及び他の目的に関係するプロセスを支援し得る情報を含んでいることがある。SEIメッセージは非VCL NALユニット中に含まれていることがある。SEIメッセージは、一部の標準規格の規範的部分であり、従って、常に標準準拠デコーダ実装のために必須であるとは限らない。SEIメッセージは、シーケンスレベルのSEIメッセージ又はピクチャレベルのSEIメッセージであり得る。SVCの例ではスケーラビリティ情報SEIメッセージ、MVCでは視界スケーラビリティ情報SEIメッセージなど、SEIメッセージ中に何らかのシーケンスレベル情報が含まれていることがある。これらの例示的なSEIメッセージは、例えば、動作点の抽出及びそれらの動作点の特性に関する情報を搬送し得る。
H.264/AVCは、2つのピクチャ、例えば、あるシーンの左視界と右視界とを含むフレームのフレームパッキングタイプを示すコーデックレベルメッセージである、フレームパッキングSEIメッセージを与える。例えば、2つのフレームの空間インターリービングのために様々なタイプのフレームパッキング方法がサポートされている。サポートされるインターリービング方法には、チェッカーボード、列インターリービング、行インターリービング、並列、上下、及びチェッカーボードアップコンバージョンを用いた並列がある。フレームパッキングSEIメッセージは、H.264/AVC規格の直近のバージョンに組み込まれる、「Information technology -- Coding of audio-visual objects -- Part 10: Advanced Video Coding, AMENDMENT 1: Constrained baseline profile, stereo high profile and frame packing arrangement SEI message」、N101303、MPEG of ISO/IEC JTC1/SC29/WG11、Xian、China、2009年10月に記載されている。このようにして、H.264/AVCは、左視界と右視界との2つのピクチャを1つのピクチャにインターリーブすることと、そのようなピクチャをビデオシーケンスに符号化することとをサポートする。
本開示は、符号化ビデオデータのために利用可能な動作点を示す動作点SEIメッセージを与える。例えば、本開示は、様々な低解像度レイヤとフル解像度レイヤとの組合せのための動作点を示す動作点SEIメッセージを与える。そのような組合せは、更に、異なるフレームレートに対応する異なる時間サブセットに基づいてカテゴリー分類され得る。デコーダは、この情報を使用して、ビットストリームが複数のレイヤを含むかどうかを決定し、ベースレイヤを2つの視界とエンハンスメント視界との構成ピクチャに適切に分離し得る。
更に、本開示の幾つかの態様によれば、本開示の技法は、H.264/AVCのシーケンスパラメータセット(「SPS」)拡張を与えることを含む。例えば、シーケンスパラメータセットは、比較的大きい数のVCL NALユニットを復号するために使用され得る情報を含んでいることがある。シーケンスパラメータセットは、符号化ビデオシーケンスと呼ばれる、一連の連続的に符号化されたピクチャに適用され得る。幾つかの例によれば、本開示の技法は、(1)ベースレイヤ中の左眼視界のピクチャのロケーション、(2)フル解像度エンハンスメントレイヤの順序(例えば、左眼視界のピクチャが右眼視界のピクチャの前に符号化されるのか又はその逆に符号化されるのか)、(3)フル解像度エンハンスメントレイヤの依存性(例えば、エンハンスメントレイヤがベースレイヤから予測されるのか別のエンハンスメントレイヤから予測されるのか)、(4)シングル視界ピクチャのフル解像度のための動作点のサポート(例えば、ベースレイヤと1つの対応するエンハンスメントレイヤとのピクチャのうちの1つのためのサポート)、(5)非対称動作点のサポート(例えば、ある視界のフル解像度ピクチャと他の視界の低解像度ピクチャとを有するフレームを含むベースレイヤのためのサポート)、(6)レイヤ間予測のサポート、及び(7)視界間予測のサポートを記述するためのSPS拡張を与えることに関係し得る。
図1は、あるシーンの2つの視界からのピクチャを含むスケーラブル多重視界ビットストリームを形成するための技法を利用し得る例示的なビデオ符号化及び復号システムを示すブロック図である。図1に示すように、システム10は、通信チャネル16を介して符号化ビデオを宛先機器14に送信する発信源機器12を含む。発信源機器12及び宛先機器14は、固定又はモバイルコンピュータ機器、セットトップボックス、ゲームコンソール、デジタルメディアプレーヤなど、広範囲にわたる機器のいずれかを備え得る。場合によっては、発信源機器12及び宛先機器14は、ワイヤレスハンドセット、所謂セルラー無線電話又は衛星無線電話などのワイヤレス通信機器を備えるか、又は通信チャネル16を介してビデオ情報を通信することができ、その場合、通信チャネル16がワイヤレスである、任意のワイヤレス機器を備え得る。
但し、スケーラブル多重視界ビットストリームを形成することに関係する本開示の技法は、必ずしもワイヤレスアプリケーション又は設定に限定されるとは限らない。例えば、これらの技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、インターネットビデオ送信、記憶媒体上に符号化される符号化デジタルビデオ、又は他のシナリオに適用され得る。従って、通信チャネル16は、符号化ビデオデータの送信に好適なワイヤレス又はワイヤード媒体の任意の組合せを備え得る。
図1の例では、発信源機器12は、ビデオ発信源18と、ビデオエンコーダ20と、変調器/復調器(モデム)22と、送信機24とを含む。宛先機器14は、受信機26と、モデム28と、ビデオデコーダ30と、表示装置32とを含む。本開示によれば、発信源機器12のビデオエンコーダ20は、スケーラブル多重視界ビットストリーム、例えば、ベースレイヤ及び1つ以上のエンハンスメントレイヤ(例えば、2つのエンハンスメントレイヤ)を形成するための技法を適用するように構成され得る。例えば、ベースレイヤは、それぞれあるシーンの異なる視界(例えば、左眼視界及び右眼視界)からの、2つのピクチャのための符号化データを含み得、ビデオエンコーダ20は、両方のピクチャの解像度を低減し、それらのピクチャを単一のフレームに組み合わせる(例えば、各ピクチャは、フル解像度フレームの解像度の1/2である)。第1のエンハンスメントレイヤは、ベースレイヤの視界のうちの1つのフル解像度表現のための符号化データを含み得、第2のエンハンスメントレイヤは、ベースレイヤの他のそれぞれの視界のフル解像度のための符号化データを含み得る。
特に、ビデオエンコーダ20は、ベースレイヤに対してエンハンスメントレイヤを符号化するために視界間予測及び/又はレイヤ間予測を実装し得る。例えば、ビデオエンコーダ20が、ベースレイヤの左眼視界のピクチャに対応するエンハンスメントレイヤを符号化していると仮定する。この例では、ビデオエンコーダ20は、ベースレイヤの左眼視界の対応するピクチャからエンハンスメントレイヤを予測するためにレイヤ間予測方式を実装し得る。幾つかの例では、ビデオエンコーダ20は、エンハンスメントレイヤのピクチャを予測する前にベースレイヤの左眼視界のピクチャを再構成し得る。例えば、ビデオエンコーダ20は、エンハンスメントレイヤのピクチャを予測する前にベースレイヤの左眼視界のピクチャをアップサンプリングし得る。ビデオエンコーダ20は、再構成されたベースレイヤに基づいてレイヤ間テクスチャ予測を実行することによって、又はベースレイヤの動きベクトルに基づいてレイヤ間動き予測を実行することによってレイヤ間予測を実行し得る。追加又は代替として、ビデオエンコーダ20は、ベースレイヤの右眼視界のピクチャからエンハンスメントレイヤを予測するために視界間予測方式を実装し得る。この例では、ビデオエンコーダ20は、エンハンスメントレイヤの視界間予測を実行する前にベースレイヤの右眼視界のフル解像度ピクチャを再構成し得る。
ベースレイヤの左眼視界のフル解像度ピクチャに対応するエンハンスメントレイヤに加えて、ビデオエンコーダ20はまた、ベースレイヤの右眼視界のフル解像度ピクチャに対応する別のエンハンスメントレイヤを符号化し得る。本開示の幾つかの態様によれば、ビデオエンコーダ20は、ベースレイヤに対する視界間予測及び/又はレイヤ間予測を使用して右眼視界のエンハンスメントレイヤピクチャを予測し得る。更に、ビデオエンコーダ20は、他の前に生成されたエンハンスメントレイヤ(例えば、左眼視界と対応するエンハンスメントレイヤ)に対する視界間予測を使用して右眼視界のエンハンスメントレイヤピクチャを予測し得る。
他の例では、発信源機器及び宛先機器は他の構成要素又は構成を含み得る。例えば、発信源機器12は、外部カメラなどの外部ビデオ発信源18からビデオデータを受信し得る。同様に、宛先機器14は、内蔵表示装置を含むのではなく、外部表示装置とインターフェースし得る。
図1の図示のシステム10は一例にすぎない。スケーラブル多重視界ビットストリームを生成するための技法は任意のデジタルビデオ符号化及び/又は復号機器によって実行され得る。概して、本開示の技法はビデオ符号化機器によって実行されるが、本技法は、一般に「コーデック」と呼ばれるビデオエンコーダ/デコーダによっても実行され得る。その上、本開示の技法の態様は、ファイルカプセル化ユニット、ファイルカプセル化解除ユニット、ビデオマルチプレクサ、又はビデオデマルチプレクサなど、ビデオプリプロセッサ又はビデオポストプロセッサによっても実行され得る。発信源機器12及び宛先機器14は、発信源機器12が宛先機器14に送信するための符号化ビデオデータを生成する、そのような符号化機器の例にすぎない。幾つかの例では、機器12、14は、機器12、14の各々がビデオ符号化構成要素とビデオ復号構成要素とを含むように、実質的に対称的に動作し得る。従って、システム10は、例えば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、ビデオゲーム、又はビデオテレフォニーのために、機器12と機器14との間の一方向又は双方向のビデオ送信をサポートし得る。
発信源機器12のビデオ発信源18は、ビデオカメラなどの撮像装置、以前に撮影されたビデオを含んでいるビデオアーカイブ、及び/又はビデオコンテンツプロバイダからのビデオフィードを含み得る。さらなる代替として、ビデオ発信源18は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、又はライブビデオとアーカイブビデオとコンピュータ生成ビデオとの組合せを生成し得る。場合によっては、ビデオ発信源18がビデオカメラである場合、発信源機器12及び宛先機器14は、所謂カメラフォン又はビデオフォンを形成し得る。但し、上述のように、本開示で説明する技法は、一般にビデオ符号化に適用可能であり得、モバイル又は概して非モバイルのコンピュータ機器によって実行されるワイヤレス及び/又はワイヤードアプリケーションに適用され得る。いずれの場合も、撮影されたビデオ、プリ撮影されたビデオ、又はコンピュータ生成されたビデオは、ビデオエンコーダ20によって符号化され得る。
ビデオ発信源18は、2つ以上の視界からのピクチャをビデオエンコーダ20に与え得る。2つのピクチャを使用して3次元効果を生成することができるように、同じシーンの2つのピクチャがわずかに異なる水平位置から同時又はほぼ同時に撮影され得る。代替的に、ビデオ発信源18(又は発信源機器12の別のユニット)は、第1の視界の第1のピクチャから第2の視界の第2のピクチャを生成するために深度情報又は視差情報を使用し得る。深度情報又は視差情報は、第1の視界を撮影しているカメラによって測定されるか、又は第1の視界中のデータから計算され得る。
MPEG−C part−3が、ビデオストリーム中にピクチャの深度マップを含めるための指定フォーマットを与えている。その仕様は、「Text of ISO/IEC FDIS 23002-3 Representation of Auxiliary Video and Supplemental Information」、ISO/IEC JTC 1/SC 29/WG 11、MPEG Doc、N81368、Marrakech、Morocoo、2007年1月に記載されている。MPEG−C part3では、補助ビデオは深度マップ又はパララックスマップであり得る。深度マップを表すとき、MPEG−C part−3は、深度マップの各深度値及び解像度を表すために使用されるビット数に関してフレキシビリティを与え得る。例えば、マップは、マップによって記述された画像の幅の1/4及び高さの1/2であり得る。マップは、単色ビデオサンプルとして、例えば、ルミナンス成分のみをもつH.264/AVCビットストリーム内で符号化され得る。代替的に、マップは、H.264/AVCにおいて定義されているように、補助ビデオデータとして符号化され得る。本開示のコンテキストでは、深度マップ又はパララックスマップは1次ビデオデータと同じ解像度を有し得る。H.264/AVC仕様は現在、深度マップを符号化するための補助ビデオデータの使用を指定していないが、本開示の技法は、そのような深度マップ又はパララックスマップを使用するための技法と併せて使用され得る。
符号化ビデオ情報は、次いで、通信規格に従ってモデム22によって変調され、送信機24を介して宛先機器14に送信され得る。モデム22は、信号変調のために設計された様々なミキサ、フィルタ、増幅器又は他の構成要素を含み得る。送信機24は、増幅器、フィルタ、及び1つ以上のアンテナを含む、データを送信するために設計された回路を含み得る。
宛先機器14の受信機26はチャネル16を介して情報を受信し、モデム28はその情報を復調する。この場合も、ビデオ符号化プロセスは、スケーラブル多重視界ビットストリームを与えるための本明細書で説明する技法のうちの1つ以上を実装し得る。即ち、ビデオ符号化プロセスは、2つの視界の低解像度ピクチャを含むベースレイヤ、及びベースレイヤの視界の対応するフル解像度ピクチャを含む2つのエンハンスメントレイヤを有するビットストリームを与えるための本明細書で説明する技法のうちの1つ以上を実装し得る。
チャネル16を介して通信される情報は、ビデオエンコーダ20によって定義され、またビデオデコーダ30によって使用される、マクロブロック及び他の符号化ユニット、例えば、GOPの特性及び/又は処理を記述するシンタックス要素を含む、シンタックス情報を含み得る。従って、ビデオデコーダ30は、ベースレイヤを視界の構成ピクチャに解凍(unpack)し、ピクチャを復号し、低解像度ピクチャをフル解像度にアップサンプリングし得る。ビデオデコーダ30はまた、1つ以上のエンハンスメントレイヤを符号化するために使用された方法(例えば、予測手法)を決定し、ベースレイヤ中に含まれる一方又は両方の視界のフル解像度ピクチャを生成するために1つ以上のエンハンスメントレイヤを復号し得る。表示装置32は、復号されたピクチャをユーザに対して表示し得る。
表示装置32は、陰極線管(CRT)、液晶表示(LCD)、プラズマ表示、有機発光ダイオード(OLED)表示、又は別のタイプの表示装置など、様々な表示装置のいずれかを備え得る。表示装置32は、多重視界ビットストリームからの2つのピクチャを同時又はほぼ同時に表示し得る。例えば、表示装置32は、2つの視界を同時又はほぼ同時に表示することが可能な立体視3次元表示装置を備え得る。
ユーザは、表示装置32がアクティブ眼鏡と同期して左視界と右視界との間で迅速に切り替わり得るように、左レンズと右レンズとを迅速に交互にシャッターするアクティブ眼鏡を着用し得る。代替的に、表示装置32は2つの視界を同時に表示し得、ユーザは、適切な視界がそれを通ってユーザの眼に届くように視界をフィルタ処理する(例えば、偏光レンズをもつ)パッシブ眼鏡を着用し得る。更に別の例として、表示装置32は、眼鏡が必要でない裸眼立体視表示を備え得る。
図1の例では、通信チャネル16は、無線周波数(RF)スペクトル又は1つ以上の物理伝送線路など、任意のワイヤレス又はワイヤード通信媒体、若しくはワイヤレス媒体とワイヤード媒体との任意の組合せを備え得る。通信チャネル16は、ローカルエリアネットワーク、ワイドエリアネットワーク、又はインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信チャネル16は、概して、ワイヤード媒体又はワイヤレス媒体の任意の好適な組合せを含む、ビデオデータを発信源機器12から宛先機器14に送信するのに好適な任意の通信媒体、又は様々な通信媒体の集合体を表す。通信チャネル16は、発信源機器12から宛先機器14への通信を可能にするのに有用であり得るルータ、スイッチ、基地局、又は任意の他の機器を含み得る。
ビデオエンコーダ20及びビデオデコーダ30は、代替的にMPEG−4、Part10、Advanced Video Coding(AVC)と呼ばれるITU−T H.264規格など、ビデオ圧縮規格に従って動作し得る。但し、本開示の技法は、いかなる特定の符号化規格にも限定されない。他の例にはMPEG−2及びITU−T H.263がある。図1には示されていないが、幾つかの態様では、ビデオエンコーダ20及びビデオデコーダ30は、それぞれオーディオエンコーダ及びデコーダと統合され得、適切なMUX−DEMUXユニット、又は他のハードウェア及びソフトウェアを含んで、共通のデータストリーム又は別個のデータストリーム中のオーディオとビデオの両方の符号化を処理し得る。適用可能な場合、MUX−DEMUXユニットはITU H.223マルチプレクサプロトコル、又はユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
ITU−T H.264/MPEG−4(AVC)規格は、Joint Video Team(JVT)として知られる共同パートナーシップの成果として、ISO/IEC Moving Picture Experts Group(MPEG)と共にITU−T Video Coding Experts Group(VCEG)によって策定された。幾つかの態様では、本開示で説明する技法は、H.264規格に概して準拠する機器に適用され得る。H.264規格は、ITU−T Study Groupによる2005年3月付けのITU−T勧告H.264「Advanced Video Coding for generic audiovisual services」に記載されており、本明細書ではH.264規格又はH.264仕様、又はH.264/AVC規格若しくは仕様と呼ぶことがある。Joint Video Team(JVT)はH.264/MPEG−4 AVCへの拡張に取り組み続けている。
本開示の技法は、H.264/AVC規格への修正された拡張を含み得る。例えば、ビデオエンコーダ20及びビデオデコーダ30は、修正されたスケーラブルビデオ符号化(SVC)、多重視界ビデオ符号化(MVC)、又はH.264/AVCの他の拡張を利用し得る。一例では、本開示の技法は、(例えば、本明細書ではベースレイヤと呼ばれる)「ベース視界」と、(例えば、本明細書ではエンハンスメントレイヤと呼ばれる)1つ以上の「エンハンスメント視界」とを含む、「多重視界フレーム互換(multi-view frame compatible)」(「MFC」)と呼ばれるH.264/AVC拡張を含む。即ち、MFC拡張の「ベース視界」は、水平方向の遠近感がわずかに異なるが、ほぼ同時に又は時間的にほぼ同時に撮影されたシーンの2つの視界の低解像度ピクチャを含み得る。従って、MFC拡張の「ベース視界」は、実際に、本明細書で説明する複数の「視界」(例えば、左眼視界及び右眼視界)からのピクチャを含み得る。更に、MFC拡張の「エンハンスメント視界」は、「ベース視界」中に含まれる視界のうちの1つのフル解像度ピクチャを含み得る。例えば、MFC拡張の「エンハンスメント視界」は、「ベース視界」の左眼視界のフル解像度ピクチャを含み得る。MFC拡張の別の「エンハンスメント視界」は、「ベース視界」の右眼視界のフル解像度ピクチャを含み得る。
ビデオエンコーダ20及びビデオデコーダ30はそれぞれ、1つ以上のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、又はそれらの任意の組合せとして実装され得る。ビデオエンコーダ20及びビデオデコーダ30の各々は1つ以上のエンコーダ又はデコーダ中に含まれ得、そのいずれも複合エンコーダ/デコーダ(コーデック)の一部としてそれぞれのカメラ、コンピュータ、モバイル機器、加入者機器、ブロードキャスト機器、セットトップボックス、サーバなどに統合され得る。
ビデオシーケンスは一般に一連のビデオフレームを含む。ピクチャのグループ(GOP:group of pictures)は、概して、一連の1つ以上のビデオフレームを備える。GOPは、GOP中に含まれる幾つかのフレームを記述するシンタックスデータを、GOPのヘッダ、GOPの1つ以上のフレームのヘッダ、又は他の場所中に含み得る。各フレームは、それぞれのフレームについての符号化モードを記述するフレームシンタックスデータを含み得る。ビデオエンコーダ20は、一般に、ビデオデータを符号化するために、個々のビデオフレーム内のビデオブロックに対して動作する。ビデオブロックは、マクロブロック又はマクロブロックのパーティションに対応し得る。ビデオブロックは、固定サイズ又は可変サイズを有し得、指定の符号化規格に応じてサイズが異なり得る。各ビデオフレームは複数のスライスを含み得る。各スライスは複数のマクロブロックを含み得、それらのマクロブロックは、サブブロックとも呼ばれるパーティションに構成され得る。
一例として、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に等しいとは限らない。
16×16よりも小さいブロックサイズは16×16マクロブロックのパーティションと呼ばれることがある。ビデオブロックは、画素領域中の画素データのブロックを備え得、あるいは、例えば、符号化ビデオブロックと予測ビデオブロックとの画素差分を表す残差ビデオブロックデータへの離散コサイン変換(DCT)、整数変換、ウェーブレット変換、又は概念的に同様の変換などの変換の適用後の、変換領域中の変換係数のブロックを備え得る。場合によっては、ビデオブロックは、変換領域中の量子化変換係数のブロックを備え得る。
小さいビデオブロックほど、より良い解像度が得られ、高い詳細レベルを含むビデオフレームのロケーションのために使用され得る。一般に、マクロブロック、及びサブブロックと呼ばれることがある様々なパーティションは、ビデオブロックと見なされ得る。更に、スライスは、マクロブロック及び/又はサブブロックなど、複数のビデオブロックであると見なされ得る。各スライスはビデオフレームの単独で復号可能なユニットであり得る。代替的に、フレーム自体が復号可能なユニットであり得るか、又はフレームの他の部分が復号可能なユニットとして定義され得る。「符号化ユニット」という用語は、フレーム全体、フレームのスライス、シーケンスとも呼ばれるピクチャのグループ(GOP)など、ビデオフレームの単独で復号可能な任意のユニット、又は適用可能な符号化技法に従って定義される別の単独で復号可能なユニットを指すことがある。
予測データと残差データとを生成するためのイントラ予測符号化又はインター予測符号化の後、及び変換係数を生成するための残差データに適用される(H.264/AVCにおいて使用される4×4又は8×8整数変換、あるいは離散コサイン変換DCTなどの)任意の変換の後、変換係数の量子化が実行され得る。量子化は、概して、係数を表すために使用されるデータ量をできるだけ低減するために変換係数を量子化するプロセスを指す。量子化プロセスは、係数の一部又は全部に関連するビット深度を低減し得る。例えば、量子化中にnビット値がmビット値に切り捨てられ得、但し、nはmよりも大きい。
量子化の後に、例えば、コンテンツ適応型可変長符号化(CAVLC)、コンテキスト適応型バイナリ算術符号化(CABAC)、又は別のエントロピー符号化方法に従って、量子化データのエントロピー符号化が実行され得る。エントロピー符号化用に構成された処理ユニット、又は別の処理ユニットは、量子化係数のゼロランレングス符号化、及び/又は符号化ブロックパターン(CBP:coded block pattern)値、マクロブロックタイプ、符号化モード、(フレーム、スライス、マクロブロック、又はシーケンスなどの)符号化ユニットの最大マクロブロックサイズなどのシンタックス情報の生成など、他の処理機能を実行し得る。
ビデオエンコーダ20は、更に、ブロックベースのシンタックスデータ、フレームベースのシンタックスデータ、及び/又はGOPベースのシンタックスデータなどのシンタックスデータを、例えば、フレームヘッダ、ブロックヘッダ、スライスヘッダ、又はGOPヘッダ中でビデオデコーダ30に送り得る。GOPシンタックスデータは、それぞれのGOP中の幾つかのフレームを記述し得、フレームシンタックスデータは、対応するフレームを符号化するために使用される符号化/予測モードを示し得る。従って、ビデオデコーダ30は、標準ビデオデコーダを備え得、必ずしも本開示の技法を実施又は利用するように特別に構成される必要はない。
ビデオエンコーダ20及びビデオデコーダ30はそれぞれ、適用可能なとき、1つ以上のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ又はデコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。ビデオエンコーダ20及びビデオデコーダ30の各々は1つ以上のエンコーダ又はデコーダ中に含まれ得、そのいずれも複合ビデオエンコーダ/デコーダ(コーデック)の一部として統合され得る。ビデオエンコーダ20及び/又はビデオデコーダ30を含む装置は、集積回路、マイクロプロセッサ、コンピュータ機器、及び/又は携帯電話などのワイヤレス通信機器を備え得る。
ビデオデコーダ30は、ベースレイヤと2つのエンハンスメントレイヤとを含むスケーラブル多重視界ビットストリームを受信するように構成され得る。ビデオデコーダ30は、更に、ベースレイヤを、ピクチャの2つの対応するセット、例えば、左眼視界の低解像度ピクチャと右眼視界の低解像度ピクチャとに解凍するように構成され得る。ビデオデコーダ30は、ピクチャを復号し、低解像度ピクチャを(例えば、補間を通して)アップサンプリングして、復号されたフル解像度ピクチャを生成し得る。更に、幾つかの例では、ビデオデコーダ30は、ベースレイヤの復号されたピクチャに関して、ベースレイヤに対応するフル解像度ピクチャを含むエンハンスメントレイヤを復号し得る。即ち、ビデオデコーダ30は視界間及びレイヤ間予測方法をもサポートし得る。
幾つかの例では、ビデオデコーダ30は、宛先機器14が3次元データを復号し、表示することが可能であるかどうかを決定するように構成され得る。可能でない場合には、ビデオデコーダ30は、受信したベースレイヤを解凍するが、低解像度ピクチャのうちの1つを廃棄し得る。ビデオデコーダ30はまた、ベースレイヤの廃棄された低解像度ピクチャに対応するフル解像度エンハンスメントレイヤを廃棄し得る。ビデオデコーダ30は、残りの低解像度ピクチャを復号し、低解像度ピクチャをアップサンプリング又はアップコンバートし、2次元ビデオデータを提示するためにビデオ表示32にこの視界からのピクチャを表示させ得る。別の例では、ビデオデコーダ30は、残りの低解像度ピクチャ及び対応するエンハンスメントレイヤを復号し、2次元ビデオデータを提示するためにビデオ表示32にこの視界からのピクチャを表示させ得る。従って、ビデオデコーダ30は、フレームの全てを復号することを試みることなしに、フレームの一部分のみを復号し、復号されたピクチャを表示装置32に与え得る。
このようにして、宛先機器14が3次元ビデオデータを表示することが可能であるか否かにかかわらず、宛先機器14は、ベースレイヤと2つのエンハンスメントレイヤとを含むスケーラブル多重視界ビットストリームを受信し得る。従って、様々な復号及びレンダリング能力をもつ様々な宛先機器は、ビデオエンコーダ20から同じビットストリームを受信するように構成され得る。即ち、幾つかの宛先機器は3次元ビデオデータを復号し、レンダリングすることが可能であり得るが、他の宛先機器は3次元ビデオデータを復号及び/又はレンダリングすることが不可能であり得、それでも機器の各々は、同じスケーラブル多重視界ビットストリームからのデータを受信し、使用するように構成され得る。
幾つかの例によれば、スケーラブル多重視界ビットストリームは、受信された符号化データのサブセットを復号し、表示することを可能にするために複数の動作点を含み得る。例えば、本開示の態様によれば、スケーラブル多重視界ビットストリームは、(1)2つの視界(例えば、左眼視界及び右眼視界)の低解像度ピクチャを含むベースレイヤ、(2)ベースレイヤ、及び左眼視界のフル解像度ピクチャを含むエンハンスメントレイヤ、(3)ベースレイヤ、及び右眼視界のフル解像度ピクチャを含むエンハンスメントレイヤ、並びに(4)ベースレイヤ、第1のエンハンスメントレイヤと第2のエンハンスメントレイヤとが共に両方の視界のフル解像度ピクチャを含むような第1のエンハンスメントレイヤ及び第2のエンハンスメントレイヤという、4つの動作点を含む。
図2Aは、あるシーンの2つの視界(例えば、左眼視界及び右眼視界)の低解像度ピクチャを含むベースレイヤ、ならびにベースレイヤの視界のうちの1つのフル解像度ピクチャを含む第1のエンハンスメントレイヤ、及びベースレイヤの他のそれぞれの視界からのフル解像度ピクチャを含む第2のエンハンスメントレイヤを有するスケーラブル多重視界ビットストリームを生成するための技法を実装し得るビデオエンコーダ20の一例を示すブロック図である。図2Aの幾つかの構成要素は、概念的な目的のために単一の構成要素に関して図示及び説明されることがあるが、1つ以上の機能ユニットを含み得ることを理解されたい。更に、図2Aの幾つかの構成要素は、単一の構成要素に関して図示及び説明されることがあるが、そのような構成要素は、物理的に1つ又は2つ以上の個別及び/又は一体型ユニットから構成され得る。
図2A、及び本開示中の他の箇所に関して、ビデオエンコーダ20について、ビデオデータの1つ以上のフレームを符号化するものとして説明される。上記で説明したように、レイヤ(例えば、ベースレイヤ及びエンハンスメントレイヤ)は、マルチメディアコンテンツを構成する一連のフレームを含み得る。従って、「ベースフレーム」は、ベースレイヤ中のビデオデータの単一のフレームを指し得る。更に、「エンハンスメントフレーム」は、エンハンスメントレイヤ中のビデオデータの単一のフレームを指し得る。
概して、ビデオエンコーダ20は、マクロブロック、又はマクロブロックのパーティション若しくはサブパーティションを含む、ビデオフレーム内のブロックのイントラ符号化及びインター符号化を実行し得る。イントラ符号化は、所与のビデオフレーム内のビデオの空間的冗長性を低減又は除去するために空間的予測に依拠する。イントラモード(Iモード)は、幾つかの空間ベースの圧縮モードのいずれかを指し、単方向予測(Pモード)又は双方向予測(Bモード)などのインターモードは、幾つかの時間ベースの圧縮モードのいずれかを指し得る。インター符号化は、ビデオシーケンスの隣接フレーム内のビデオの時間的冗長性を低減又は除去するために時間的予測に依拠する。
ビデオエンコーダ20はまた、幾つかの例では、エンハンスメントレイヤの視界間予測及びレイヤ間予測を実行するように構成され得る。例えば、ビデオエンコーダ20は、H.264/AVCの多重視界ビデオ符号化(MVC)拡張に従って視界間予測を実行するように構成され得る。更に、ビデオエンコーダ20は、H.264/AVCのスケーラブルビデオ符号化(SVC)拡張に従ってレイヤ間予測を実行するように構成され得る。従って、エンハンスメントレイヤはベースレイヤから視界間予測又はレイヤ間予測され得る。更に、あるエンハンスメントレイヤは別のエンハンスメントレイヤから視界間予測され得る。
図2Aに示すように、ビデオエンコーダ20は、符号化されるべきビデオピクチャ内の現在のビデオブロックを受信する。図2Aの例では、ビデオエンコーダ20は、動き補償ユニット44と、動き/視差推定ユニット42と、参照フレーム記憶部64と、加算器50と、変換ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。ビデオブロック再構成のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換ユニット60と、加算器62とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ(図2Aに図示せず)も含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器62の出力をフィルタ処理することになる。
符号化プロセス中に、ビデオエンコーダ20は、符号化されるべきビデオピクチャ又はスライスを受信する。ピクチャ又はスライスは複数のビデオブロックに分割され得る。動き推定/視差ユニット42及び動き補償ユニット44は、1つ以上の参照フレーム中の1つ以上のブロックに対する受信したビデオブロックのインター予測符号化を実行する。即ち、動き推定/視差ユニット42は、異なる時間インスタンスの1つ以上の参照フレーム中の1つ以上のブロックに対する受信ビデオブロックのインター予測符号化、例えば、同じ視界の1つ以上の参照フレームを使用した動き推定を実行し得る。更に、動き推定/視差ユニット42は、同じ時間インスタンスの1つ以上の参照フレーム中の1つ以上のブロックに対する受信ビデオブロックのインター予測符号化、例えば、異なる視界の1つ以上の参照フレームを使用した動き視差を実行し得る。イントラ予測ユニット46は、空間圧縮を行うために、符号化されるべきブロックと同じフレーム又はスライス中の1つ以上の隣接ブロックに対する受信ビデオブロックのイントラ予測符号化を実行し得る。モード選択ユニット40は、例えば、誤差結果に基づいて符号化モード、即ち、イントラ又はインターのうちの1つを選択し、残差ブロックデータを生成するために、得られたイントラ符号化ブロック又はインター符号化ブロックを加算器50に与え、参照フレーム中で使用するための符号化ブロックを再構成するために、得られたイントラ符号化ブロック又はインター符号化ブロックを加算器62に与え得る。
特に、ビデオエンコーダ20は、ステレオ視界ペアを形成する2つの視界からのピクチャを受信し得る。2つの視界は視界0及び視界1と呼ばれ得、視界0は左眼視界ピクチャに対応し、視界0は右眼視界ピクチャに対応する。これらの視界は別様に標示され得、代わりに、視界1が左眼視界に対応し、視界0が右眼視界に対応し得ることを理解されたい。
一例では、ビデオエンコーダ20は、視界0と視界1とのピクチャをハーフ解像度などの低解像度で符号化することによってベースレイヤを符号化し得る。即ち、ビデオエンコーダ20は、ピクチャを符号化する前に視界0と視界1とのピクチャを1/2倍にダウンサンプリングし得る。ビデオエンコーダ20は、符号化されたピクチャを更にパックフレームにパックし得る。例えば、ビデオエンコーダ20は、視界0のピクチャと視界1のピクチャとを受信し、各々はh画素の高さとw画素の幅とを有し、但し、w及びhは非負の0でない整数であると仮定する。ビデオエンコーダ20は、視界0のピクチャと視界1のピクチャとの高さをh/2画素の高さにダウンサンプリングし、ダウンサンプリングされた視界0を、ダウンサンプリングされた視界1の上方に配置することによって上下構成のパックフレームを形成し得る。別の例では、ビデオエンコーダ20は、視界0のピクチャと視界1のピクチャとの幅をw/2画素の幅にダウンサンプリングし、ダウンサンプリングされた視界0を、ダウンサンプリングされた視界1の相対的な左に配置することによって並列構成のパックフレームを形成し得る。並列及び上下フレームパッキング構成は例として与えたものにすぎず、ビデオエンコーダ20は、チェッカーボードパターン、インターリービング列、又はインターリービング行などの他の構成でベースフレームの視界0のピクチャと視界1のピクチャとをパックし得ることを理解されたい。例えば、ビデオエンコーダ20は、H.264/AVC仕様によるフレームパッキングをサポートし得る。
ベースレイヤに加えて、ビデオエンコーダ20は、ベースレイヤ中に含まれる視界に対応する2つのエンハンスメントレイヤを符号化し得る。即ち、ビデオエンコーダ20は、視界0のフル解像度ピクチャ、及び視界1のフル解像度ピクチャを符号化し得る。ビデオエンコーダ20は、2つのエンハンスメントレイヤを予測するために視界間予測とレイヤ間予測とを実行し得る。
ビデオエンコーダ20は、更に、スケーラブル多重視界ビットストリームの様々な特性を示す情報を与え得る。例えば、ビデオエンコーダ20は、ベースレイヤのパッキング構成と、エンハンスメントレイヤのシーケンス(例えば、視界0に対応するエンハンスメントレイヤが、視界1に対応するエンハンスメントレイヤの前に来るのか後に来るのか)と、エンハンスメントレイヤが互いに予測されるかどうかと、他の情報とを示すデータを与え得る。一例として、ビデオエンコーダ20は、一連の連続的に符号化されたフレームに適用される、シーケンスパラメータセット(SPS)拡張の形態でこの情報を与え得る。SPS拡張は、以下の表1の例示的なデータ構造に従って定義され得る。
SPSメッセージは、出力された復号ピクチャが、指示されたフレームパッキング構成方式を使用して複数の別個の空間的にパックされた構成フレームを含むフレームのサンプルを含んでいることをビデオデコーダ30などのビデオデコーダに通知し得る。SPSメッセージはまた、エンハンスメントフレームの特性をビデオデコーダ30に通知し得る。
特に、ビデオエンコーダ20は、各構成フレームの左上ルーマサンプルが左視界に属することを示すためにupper_left_frame_0を1の値に設定し、それによってベースレイヤのどの部分が左視界又は右視界に対応するのかを示し得る。ビデオエンコーダ20は、各構成フレームの左上ルーマサンプルが右視界に属することを示すためにupper_left_frame_0を0の値に設定し得る。
また、本開示では、特定の視界の符号化ピクチャを「視界コンポーネント」と呼ぶ。即ち、視界コンポーネントは、特定の時間における特定の視界(及び/又は特定のレイヤ)の符号化ピクチャを備え得る。従って、アクセスユニットは、共通の時間インスタンスの全ての視界コンポーネントを備えるものと定義され得る。アクセスユニットと、アクセスユニットの視界コンポーネントとの復号順序は、必ずしも出力又は表示順序と同じである必要はない。
ビデオエンコーダ20は、各アクセスユニット中の視界コンポーネントの復号順序を指定するためにleft_view_enhance_firstを設定し得る。幾つかの例では、ビデオエンコーダ20は、フル解像度左視界フレームが復号順序においてベースフレームNALユニットの後にき、フル解像度右視界フレームが復号順序においてフル解像度左視界フレームの後にくることを示すために、left_view_enhance_firstを1の値に設定し得る。ビデオエンコーダ20は、フル解像度右視界フレームが復号順序においてベースフレームNALユニットの後にき、フル解像度左視界フレームが復号順序においてフル解像度右視界フレームの後にくることを示すために、left_view_enhance_firstを0の値に設定し得る。
ビデオエンコーダ20は、フル解像度右視界フレームとフル解像度左視界フレームとの復号が独立していることを示すためにfull_left_right_dependent_flagを0の値に設定し得、これは、フル解像度左視界フレームとフル解像度右視界フレームとの復号がベース視界に依存し、互いに依存しないことを意味する。ビデオエンコーダ20は、フル解像度フレームのうちの一方(例えば、フル解像度右視界フレーム又はフル解像度左視界フレームのいずれか)が他方のフル解像度フレームに依存することを示すためにfull_left_right_dependent_flagを1の値に設定し得る。
ビデオエンコーダ20は、フル解像度シングル視界プレゼンテーションの動作点がないことを示すためにone_view_full_idcを0の値に設定し得る。ビデオエンコーダ20は、復号順序において第3の視界コンポーネントを抽出した後に可能にされるフル解像度シングル視界動作点があることを示すためにone_view_full_idcを1の値に設定し得る。ビデオエンコーダ20は、この値が1に等しいときにサポートされる動作点のほかに、復号順序において第2の視界コンポーネントを抽出した後に可能にされるフル解像度シングル視界動作点もあることを示すために、one_view_full_idcを2の値に設定し得る。
ビデオエンコーダ20は、非対称動作点が可能にされないことを示すためにasymmetric_flagを0の値に設定し得る。ビデオエンコーダ20は、いずれかのフル解像度シングル視界動作点が復号されるとき、フル解像度視界がベース視界中の他の視界と共に非対称表現を形成することを可能にされるという方法で、非対称動作点が可能にされることを示すために、asymmetric_flagを1の値に設定し得る。
ビデオエンコーダ20は、ビットストリームが符号化されるとき、及びシーケンスパラメータセットがアクティブであるとき、レイヤ間予測が使用されないことを示すために、inter_layer_pred_disable_flagを1の値に設定し得る。ビデオエンコーダ20は、レイヤ間予測が使用され得ることを示すためにinter_layer_pred_disable_flagを0の値に設定し得る。
ビデオエンコーダ20は、ビットストリームが符号化されるとき、及びシーケンスパラメータセットがアクティブであるとき、視界間予測が使用されないことを示すために、inter_view_pred_disable_flagを1の値に設定し得る。ビデオエンコーダ20は、視界間予測が使用され得ることを示すためにinter_view_pred_disable_flagを1の値に設定し得る。
SPS拡張に加えて、ビデオエンコーダ20はVUIメッセージを与え得る。特に、フル解像度フレーム(例えば、エンハンスメントフレームのうちの1つ)に対応する非対称動作点について、ビデオエンコーダは、ベース視界のクロッピングエリアを指定するためにVUIメッセージを適用し得る。フル解像度視界と組み合わせられたクロップエリアは非対称動作点の表現を形成する。クロップエリアは、フル解像度ピクチャが非対称パックフレーム中で低解像度ピクチャから区別され得るように記述され得る。
ビデオエンコーダ20はまた、ベースフレームとエンハンスメントフレームとの様々な組合せのための幾つかの動作点を定義し得る。即ち、ビデオエンコーダは、動作点SEI中で様々な動作点を信号伝達し得る。一例では、ビデオエンコーダ20は、以下の表2に与えるSEIメッセージを介して動作点を与え得る。
本開示の幾つかの態様によれば、SEIメッセージはまた、上記で説明したSPS拡張の一部であり得る。多くのビデオ符号化規格の場合と同様に、H.264/AVCは、誤りのないビットストリームのシンタックスと、セマンティクスと、復号プロセスとを定義し、そのいずれも特定のプロファイル又はレベルに準拠する。H.264/AVCはエンコーダを指定しないが、エンコーダは、生成されたビットストリームがデコーダの規格に準拠することを保証することを課される。ビデオ符号化規格のコンテキストでは、「プロファイル」は、アルゴリズム、機能、又はツール、及びそれらに適用される制約のサブセットに対応する。例えば、H.264規格によって定義される「プロファイル」は、H.264規格によって指定されたビットストリームシンタックス全体のサブセットである。「レベル」は、例えば、ピクチャの解像度、ビットレート、及びマクロブロック(MB)処理レートに関係するデコーダメモリ及び計算など、デコーダリソース消費の制限に対応する。プロファイルはprofile_idc(プロファイルインジケータ)値で信号伝達され得、レベルはlevel_idc(レベルインジケータ)値で信号伝達され得る。
表2の例示的なSEIメッセージはビデオデータの表現の動作点を記述している。max_temporal_id要素は、概して、表現の動作点の最大フレームレートに対応する。SEIメッセージはまた、動作点の各々についてのビットストリーム及びレベルのプロファイルの指示を与える。但し、動作点のlevel_idcは変動し得、動作点は、temporal_idがindex_jに等しく、layer idがindex_iに等しい、前に信号伝達された動作点と同じであり得る。SEIメッセージは、更に、average_frame_rate要素を使用してtemporal_id値の各々のための平均フレームレートを記述する。この例では表現の動作点の特性を信号伝達するために動作点SEIメッセージが使用されるが、他の例では、動作点の同様の特性を信号伝達するために他のデータ構造又は技法が使用され得ることを理解されたい。例えば、信号伝達は、シーケンスパラメータセット多重視界フレーム互換(MFC)拡張の一部を形成し得る。
ビデオエンコーダ20はまた、NALユニットヘッダ拡張を生成し得る。本開示の態様によれば、ビデオエンコーダ20は、パックベースフレームのためのNALユニットヘッダと、エンハンスメントフレームのための別個のNALユニットヘッダとを生成し得る。幾つかの例では、ベースレイヤNALユニットヘッダは、エンハンスメントレイヤの視界がベースレイヤNALユニットから予測されることを示すために使用され得る。エンハンスメントレイヤNALユニットヘッダは、NALユニットが第2の視界に属するかどうかを示し、その第2の視界が左視界であるかどうかを導出するために使用され得る。その上、エンハンスメントレイヤNALユニットヘッダは、他のフル解像度エンハンスメントフレームの視界間予測のために使用され得る。
一例では、ベースフレームのNALユニットヘッダは以下の表3に従って定義され得る。
ビデオエンコーダ20は、現在のNALユニットがアンカーアクセスユニットに属することを指定するためにanchor_pic_flagを1の値に設定し得る。一例では、non_idr_flag値が0に等しいとき、ビデオエンコーダ20はanchor_pic_flagを1の値に設定し得る。別の例では、nal_ref_idc値が0に等しいとき、ビデオエンコーダ20はanchor_pic_flagを0の値に設定し得る。本開示の幾つかの態様によれば、anchor_pic_flagの値は、アクセスユニットの全てのVCL NALユニットについて同じであり得る。
ビデオエンコーダ20は、現在の視界コンポーネント(例えば、現在のレイヤ)のフレーム0コンポーネント(例えば、左視界)が、現在のアクセスユニット中の他の視界コンポーネント(例えば、他のレイヤ)によって視界間予測のために使用されないことを指定するために、inter_view_frame_0_flagを0の値に設定し得る。ビデオエンコーダ20は、現在の視界コンポーネントのフレーム0コンポーネント(例えば、左視界)が、現在のアクセスユニット中の他の視界コンポーネントによって視界間予測のために使用され得ることを指定するために、inter_view_frame_0_flagを1の値に設定し得る。
ビデオエンコーダ20は、現在の視界コンポーネントのフレーム1部分(例えば、右視界)が、現在のアクセスユニット中の他の視界コンポーネントによって視界間予測のために使用されないことを指定するために、inter_view_frame_1_flagを0の値に設定し得る。ビデオエンコーダ20は、現在の視界コンポーネントのフレーム1部分が、現在のアクセスユニット中の他の視界コンポーネントによって視界間予測のために使用され得ることを指定するために、inter_view_frame_1_flagを1の値に設定し得る。
ビデオエンコーダ20は、現在の視界コンポーネントのフレーム0部分(例えば、左視界)が、現在のアクセスユニット中の他の視界コンポーネントによってレイヤ間予測のために使用されないことを指定するために、inter_layer_frame_0_flagを0の値に設定し得る。ビデオエンコーダ20は、現在の視界コンポーネントのフレーム0部分が、現在のアクセスユニット中の他の視界コンポーネントによってレイヤ間予測のために使用され得ることを指定するために、inter_view_frame_0_flagを1の値に設定し得る。
ビデオエンコーダ20は、現在の視界コンポーネントのフレーム1部分(例えば、左視界)が、現在のアクセスユニット中の他の視界コンポーネントによってレイヤ間予測のために使用されないことを指定するために、inter_layer_frame_1_flagを0の値に設定し得る。ビデオエンコーダ20は、現在の視界コンポーネントのフレーム1部分が、現在のアクセスユニット中の他の視界コンポーネントによってレイヤ間予測のために使用され得ることを指定するために、inter_view_frame_1_flagを1の値に設定し得る。
別の例では、inter_view_frame_0_flagとinter_view_frame_1_flagとが1つのフラグに組み合わせられ得る。例えば、ビデオエンコーダ20は、フレーム0部分又はフレーム1部分が視界間予測のために使用され得る場合、inter_view_flag、即ち、上記で説明したinter_view_frame_0_flagとinter_view_frame_1_flagとの組合せを表すフラグを1の値に設定し得る。
別の例では、inter_layer_frame_0_flagとinter_layer_frame_1_flagとが1つのフラグに組み合わせられ得る。例えば、ビデオエンコーダ20は、フレーム0部分又はフレーム1部分がレイヤ間予測のために使用され得る場合、inter_layer_flag、即ち、inter_layer_frame_0_flagとinter_layer_frame_1_flagとの組合せを表すフラグを1の値に設定し得る。
別の例では、inter_view_frame_0_flagとinter_layer_frame_0_flagとが1つのフラグに組み合わせられ得る。例えば、ビデオエンコーダ20は、フレーム0部分が他の視界コンポーネントの予測のために使用され得る場合、inter_component_frame_0_flag、即ち、inter_view_frame_0_flagとinter_layer_frame_0_flagとの組合せを表すフラグを1の値に設定し得る。
別の例では、inter_view_frame_1_flagとinter_layer_frame_1_flagとが1つのフラグに組み合わせられ得る。例えば、ビデオエンコーダ20は、フレーム1部分が他の視界コンポーネントの予測のために使用され得る場合、inter_component_frame_1_flag、即ち、inter_view_frame_1_flagとinter_layer_frame_1_flagとの組合せを表すフラグを1の値に設定し得る。
別の例では、inter_view_flagとinter_layer_flagとが1つのフラグに組み合わせられ得る。例えば、ビデオエンコーダ20は、フレーム0部分又はフレーム1部分が視界間予測又はレイヤ間予測のために使用され得る場合、inter_component_flag、即ち、inter_view_flagとinter_layer_flagとの組合せを表すフラグを1の値に設定し得る。
ビデオエンコーダ20は、帰属視界コンポーネントが第2の視界であるのか第3の視界であるのかを示すためのsecond_view_flagを設定し得、但し、「帰属視界コンポーネント」は、第2の視界フラグがそれに対応する視界コンポーネントを指す。例えば、ビデオエンコーダ20は、帰属視界コンポーネントが第2の視界であることを指定するためにsecond_view_flagを1の値に設定し得る。ビデオエンコーダ20は、帰属視界コンポーネントが第3の視界であることを指定するためにsecond_view_flagを0の値に設定し得る。
ビデオエンコーダ20は、NALユニットの時間識別子を指定するためのtemporal_idを設定し得る。temporal_idへの値の割当ては、サブビットストリーム抽出プロセスによって制約され得る。幾つかの例によれば、temporal_idの値は、アクセスユニットの全てのプレフィックスNALユニットと、MFC拡張NALユニット中の符号化スライスとについて同じである。アクセスユニットが、nal_unit_typeが5に等しいか又はidr_flagが1に等しいNALユニットを含んでいるとき、temporal_idは0に等しくなり得る。
一例では、フル解像度エンハンスメントフレームのNALユニットヘッダは以下の表4に従って定義され得る。
表4の例示的なNALユニットヘッダは、ヘッダがそれに対応するNALユニットを記述し得る。non-idr-flagは、NALユニットが瞬時復号リフレッシュ(IDR:instantaneous decoding refresh)ピクチャであるかどうかを記述し得る。IDRピクチャは、概して、独立して復号され得るピクチャのグループ(GOP)のピクチャ(例えば、イントラ符号化ピクチャ)であり、ピクチャのグループ中の全ての他のピクチャは、IDRピクチャ又はGOPの他のピクチャに対して復号され得る。従って、GOPのピクチャは、GOPの外部のピクチャに対して予測されない。anchor_pic_flagは、対応するNALユニットが、アンカーピクチャ、即ち、全てのスライスが同じアクセスユニット内のスライスのみを参照する(即ち、インター予測が使用されない)符号化ピクチャに対応するかどうかを示す。inter_view_flagは、NALユニットに対応するピクチャが、現在のアクセスユニット中の他の視界コンポーネントによって視界間予測のために使用されるかどうかを示す。second_view_flagは、NALユニットに対応する視界コンポーネントが第1のエンハンスメントレイヤであるのか第2のエンハンスメントレイヤであるのかを示す。temporal_id値は、NALユニットの(フレームレートに対応し得る)時間識別子を指定する。
モード選択ユニット40は、視界0のピクチャから、及び視界0のピクチャに時間的に対応する視界1のピクチャからブロックの形態で未加工ビデオデータを受信し得る。即ち、視界0のピクチャと視界1のピクチャとは、実質的に同時に撮影されていることがある。本開示の幾つかの態様によれば、視界0のピクチャと視界1のピクチャとはダウンサンプリングされ得、ビデオエンコーダはダウンサンプリングされたピクチャを符号化し得る。例えば、ビデオエンコーダ20は、パックフレーム中の視界0のピクチャと視界1のピクチャとを符号化し得る。ビデオエンコーダ20はまた、フル解像度エンハンスメントフレームを符号化し得る。即ち、ビデオエンコーダ20は、フル解像度の視界0のピクチャを含むエンハンスメントフレームと、フル解像度の視界1のピクチャを含むエンハンスメントフレームとを符号化し得る。ビデオエンコーダ20は、エンハンスメントフレームのレイヤ間予測と視界間予測とを可能にするために視界0のピクチャと視界1のピクチャとの復号バージョンを参照フレーム記憶部64に記憶し得る。
動き推定/視差ユニット42と動き補償ユニット44とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、例えば、現在のフレーム(又は他の符号化ユニット)内で符号化されている現在のブロックに対する予測参照フレーム(又は他の符号化ユニット)内の予測ブロックの変位を示し得る。予測ブロックは、絶対値差分和(SAD:sum of absolute difference)、2乗差分和(SSD:sum of square difference)、又は他の差分メトリックによって決定され得る画素差分に関して、符号化されるべきブロックにぴったり一致することがわかるブロックである。動きベクトルはまた、マクロブロックのパーティションの変位を示し得る。動き補償は、動き推定/視差ユニット42によって決定された動きベクトル(又は変位ベクトル)に基づいて予測ブロックをフェッチ又は生成することに関与し得る。この場合も、幾つかの例では、動き推定/視差ユニット42と動き補償ユニット44とは機能的に統合され得る。
動き推定/視差ユニット42は、ビデオブロックを参照フレーム記憶部64中の参照フレームのビデオブロックと比較することによってインター符号化ピクチャのビデオブロックの動きベクトル(又は視差ベクトル)を計算し得る。動き補償ユニット44はまた、参照フレーム、例えば、Iフレーム又はPフレームのサブ整数画素を補間し得る。ITU−T H.264規格では、参照フレームの「リスト」、例えば、リスト0及びリスト1に言及する。リスト0は、現在のピクチャよりも前の表示順序を有する参照フレームを含むが、リスト1は、現在のピクチャよりも後の表示順序を有する参照フレームを含む。動き推定/視差ユニット42は、参照フレーム記憶部64からの1つ以上の参照フレームのブロックを現在のピクチャ、例えば、Pピクチャ又はBピクチャの符号化されるべきブロックと比較する。参照フレーム記憶部64中の参照フレームがサブ整数画素の値を含むとき、動き推定/視差ユニット42によって計算される動きベクトルは参照フレームのサブ整数画素ロケーションを参照し得る。動き推定/視差ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送る。動きベクトルによって識別される参照フレームブロックは予測ブロックと呼ばれることがある。動き補償ユニット44は、参照フレームの予測ブロックの残差誤差値を計算する。
動き推定/視差ユニット42はまた、視界間予測を実行するように構成され得、その場合、動き推定/視差ユニット42は、ある視界のピクチャ(例えば、視界0)のブロックと、参照フレーム視界ピクチャ(例えば、視界1)の対応するブロックとの間の変位ベクトルを計算し得る。代替又は追加として、動き推定/視差ユニット42はレイヤ間予測を実行するように構成され得る。即ち、動き推定/視差ユニット42は、動きベースのレイヤ間予測を実行するように構成され得、その場合、動き推定/視差ユニット42は、ベースフレームに関連するスケーリングされた動きベクトルに基づいて予測子を計算し得る。
上記で説明したように、イントラ予測ユニット46は、空間圧縮を行うために、符号化されるべきブロックと同じフレーム又はスライス中の1つ以上の隣接ブロックに対して受信ビデオブロックのイントラ予測符号化を実行し得る。幾つかの例によれば、イントラ予測ユニット46は、エンハンスメントフレームのレイヤ間予測を実行するように構成され得る。即ち、イントラ予測ユニット46は、テクスチャベースのレイヤ間予測を実行するように構成され得、その場合、イントラ予測ユニット46は、ベースフレームをアップサンプリングし、ベースフレームとエンハンスメントフレームとの中のコロケートテクスチャに基づいて予測子を計算し得る。幾つかの例では、レイヤ間テクスチャベース予測は、制約付きイントラモードとして符号化された対応するベースフレーム中のコロケートブロックを有するエンハンスメントフレームのブロックのためにのみ利用可能である。例えば、制約付きイントラモードブロックは、インター符号化された隣接ブロックからのサンプルを参照することなしにイントラ符号化される。
本開示の態様によれば、レイヤの各々、例えば、ベースレイヤ、第1のエンハンスメントレイヤ、及び第2のエンハンスメントレイヤは、独立して符号化され得る。例えば、ビデオエンコーダ20が、(1)視界0(例えば、左眼視界)と視界1(例えば、右眼視界)との低解像度ピクチャをもつベースレイヤ、(2)視界0のフル解像度ピクチャをもつ第1のエンハンスメントレイヤ、及び(3)視界1のフル解像度ピクチャをもつ第2のエンハンスメントレイヤという、3つのレイヤを符号化すると仮定する。この例では、ビデオエンコーダ20は、(例えば、モード選択ユニット40を介して)レイヤごとに異なる符号化モードを実装し得る。
この例では、動き推定/視差ユニット42と動き補償ユニット44とは、ベースレイヤの2つの低解像度ピクチャをインター符号化するように構成され得る。即ち、動き推定/視差ユニット42が、ビデオブロックを参照フレーム記憶部64中の参照フレームのビデオブロックと比較することによってベースフレームのピクチャのビデオブロックの動きベクトルを計算し得る間、動き補償ユニット44は参照フレームの予測ブロックの残差誤差値を計算し得る。代替又は追加として、イントラ予測ユニット46がベースレイヤの2つの低解像度ピクチャをイントラ符号化し得る。
ビデオエンコーダ20はまた、エンハンスメントレイヤの各々、即ち、(例えば、視界0に対応する)第1のエンハンスメントレイヤと、(例えば、視界1に対応する)第2のエンハンスメントレイヤとをイントラ予測、インター予測、レイヤ間予測、又は視界間予測するように、動き推定/視差ユニット42と、動き補償ユニット44と、イントラ予測ユニット46とを実装し得る。例えば、イントラ予測モードとインター予測モードとに加えて、ビデオエンコーダ20は、第1のエンハンスメントレイヤのフル解像度ピクチャをレイヤ間予測するためにベースレイヤの視界0の低解像度ピクチャを利用し得る。代替的に、ビデオエンコーダ20は、第1のエンハンスメントレイヤのフル解像度ピクチャを視界間予測するためにベースレイヤの視界1の低解像度ピクチャを利用し得る。本開示の幾つかの態様によれば、ベースレイヤの低解像度ピクチャは、レイヤ間又は視界間予測方法を用いてエンハンスメントレイヤを予測する前にアップサンプリングされるか又は場合によっては再構成され得る。
レイヤ間予測を使用して第1のエンハンスメントレイヤを予測するとき、ビデオエンコーダ20はテクスチャ予測方法又は動き予測方法を使用し得る。第1のエンハンスメントレイヤを予測するためにテクスチャベースのレイヤ間予測を使用するとき、ビデオエンコーダ20は、ベースレイヤの視界0のピクチャをフル解像度にアップサンプリングし得、ビデオエンコーダ20は、ベースレイヤの視界0のピクチャのコロケートテクスチャを第1のエンハンスメントレイヤのピクチャの予測子として使用し得る。ビデオエンコーダ20は、適応フィルタを含む様々なフィルタを使用してベースレイヤの視界0のピクチャをアップサンプリングし得る。ビデオエンコーダ20は、動き補償残差に関して上記で説明したのと同じ方法を使用して残差(例えば、予測子と、ベースレイヤの視界0のピクチャ中の元のテクスチャとの間の残差)を符号化し得る。(例えば、図1に示すビデオデコーダ30などの)デコーダにおいて、デコーダ30は、予測子と残差値とを使用して画素値を再構成し得る。
ベースレイヤの対応する低解像度ピクチャから第1のエンハンスメントレイヤを予測するために動きベースのレイヤ間予測を使用するとき、ビデオエンコーダ20は、ベースレイヤの視界0のピクチャに関連する動きベクトルをスケーリングし得る。例えば、視界0のピクチャと視界1のピクチャとがベースレイヤ中で並列にパックされる構成では、ビデオエンコーダ20は、低解像度ベースレイヤとフル解像度エンハンスメントレイヤとの間の差を補償するために、水平方向にベースレイヤの視界0の予測されたピクチャに関連する動きベクトルをスケーリングし得る。幾つかの例では、ビデオエンコーダ20は、低解像度ベースレイヤに関連する動きベクトルと、フル解像度エンハンスメントレイヤに関連する動きベクトルとの間の差を説明する、動きベクトル差(MVD:motion vector difference)値を信号伝達することによって、ベースレイヤの視界0のピクチャに関連する動きベクトルを更に改善し得る。
別の例では、ビデオエンコーダ20は、H.264/AVCへのジョイント多重視界ビデオモデル(「JMVM」)拡張において定義されている、動きスキップ技法を使用してレイヤ間動き予測を実行し得る。JMVM拡張については、例えば、JVT−U207、21st JVT meeting、Hangzhou、China、2006年10月20〜27日において説明されており、これは、http://ftp3.itu.int/av-arch/jvt-site/2006_10_Hangzhou/JVT-U207.zipにおいて入手可能である。動きスキップ技法により、ビデオエンコーダ20は、同じ時間インスタンス中であるが所与の視差だけ別の視界のピクチャからの動きベクトルを再利用することが可能になり得る。幾つかの例では、視差値は、広域的に信号伝達され、動きスキップ技法を使用する各ブロック又はスライスに局所的に展開され得る。幾つかの態様によれば、エンハンスメントレイヤを予測するために使用されるベースレイヤの一部分がコロケートされるので、ビデオエンコーダ20は視差値を0に設定し得る。
視界間予測を使用して第1のエンハンスメントレイヤのフレームを予測するとき、ビデオエンコーダ20は、インター符号化と同様に、エンハンスメントレイヤフレームのブロックと、参照フレームの対応するブロック(例えば、ベースフレームの視界1のピクチャ)との間の変位ベクトルを計算するために動き推定/視差ユニット42を利用し得る。幾つかの例では、ビデオエンコーダ20は、第1のエンハンスメントレイヤを予測する前にベースフレームの視界1のピクチャをアップサンプリングし得る。即ち、ビデオエンコーダ20は、ベースレイヤの視界1コンポーネントのピクチャをアップサンプリングし、アップサンプリングされたピクチャが予測目的のために利用され得るようにそれらを参照フレーム記憶部64に記憶し得る。幾つかの例によれば、ビデオエンコーダ20は、ベースフレームの参照ブロック又はブロックパーティションがインター符号化されたとき、ブロック又はブロックパーティションを符号化するために視界間予測のみを使用し得る。
本開示の幾つかの態様によれば、ビデオエンコーダ20は、(例えば、視界1に対応する)第2のエンハンスメントレイヤを、第1のエンハンスメントレイヤと同様に又は同じように符号化し得る。即ち、ビデオエンコーダ20は、レイヤ間予測を使用して第2のエンハンスメントレイヤ(例えば、視界1のフル解像度ピクチャ)を予測するためにベースレイヤの視界1の低解像度ピクチャを利用し得る。ビデオエンコーダ20はまた、視界間予測を使用して第2のエンハンスメントレイヤを予測するためにベースレイヤの視界0の低解像度ピクチャを利用し得る。この例によれば、エンハンスメントレイヤ、即ち、第1のエンハンスメントレイヤと第2のエンハンスメントレイヤとは互いに依存しない。そうではなく、第2のエンハンスメントレイヤは、予測目的のためにベースレイヤのみを使用する。
追加又は代替として、ビデオエンコーダ20は、予測目的のために第1のエンハンスメントレイヤ(例えば、視界0のフル解像度ピクチャ)を使用して第2のエンハンスメントレイヤ(例えば、視界1のフル解像度ピクチャ)を符号化し得る。即ち、第1のエンハンスメントレイヤは、視界間予測を使用して第2のエンハンスメントレイヤを予測するために使用され得る。例えば、第1のエンハンスメントレイヤからの視界0のフル解像度ピクチャは、第2のエンハンスメントレイヤを符号化するときにそれらが予測目的のために利用され得るように、参照フレーム記憶部64に記憶され得る。
変換ユニット52は、離散コサイン変換(DCT)、整数変換、又は概念的に同様の変換などの変換を残差ブロックに適用し、残差変換係数値を備えるビデオブロックを生成する。変換ユニット52は、概念的にDCTと同様である、H.264規格によって定義される変換など、他の変換を実行し得る。ウェーブレット変換、整数変換、サブバンド変換又は他のタイプの変換も使用され得る。いずれの場合も、変換ユニット52は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換ユニット52は、残差情報を画素値領域から周波数領域などの変換領域に変換し得る。量子化ユニット54は、ビットレートを更に低減するために残差変換係数を量子化する。量子化プロセスは、係数の一部又は全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって修正され得る。
量子化の後、エントロピー符号化ユニット56が量子化変換係数をエントロピー符号化する。例えば、エントロピー符号化ユニット56は、コンテンツ適応型可変長符号化(CAVLC)、コンテキスト適応型バイナリ算術符号化(CABAC)、又は別のエントロピー符号化技法を実行し得る。エントロピー符号化ユニット56によるエントロピー符号化の後、符号化されたビデオは、別の機器に送信されるか、あるいは後で送信又は取り出すためにアーカイブされ得る。コンテキスト適応型バイナリ算術符号化(CABAC)の場合、コンテキストは隣接マクロブロックに基づき得る。
場合によっては、エントロピー符号化ユニット56又はビデオエンコーダ20の別のユニットは、エントロピー符号化に加えて他の符号化機能を実行するように構成され得る。例えば、エントロピー符号化ユニット56はマクロブロック及びパーティションのCBP値を決定するように構成され得る。また、場合によっては、エントロピー符号化ユニット56は、マクロブロック又はそれのパーティション中の係数のランレングス符号化を実行し得る。特に、エントロピー符号化ユニット56は、マクロブロック又はパーティション中の変換係数をスキャンするためにジグザグスキャン又は他のスキャンパターンを適用し、さらなる圧縮のためにゼロのランを符号化し得る。エントロピー符号化ユニット56はまた、符号化されたビデオビットストリーム中での送信のために適切なシンタックス要素を用いてヘッダ情報を構成し得る。
逆量子化ユニット58及び逆変換ユニット60は、それぞれ逆量子化及び逆変換を適用して、例えば、参照ブロックとして後で使用するために、画素領域中で残差ブロックを再構成する。動き補償ユニット44は、残差ブロックを参照フレーム記憶部64のフレームのうちの1つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット44はまた、再構成された残差ブロックに1つ以上の補間フィルタを適用して、動き推定において使用するサブ整数画素値を計算し得る。加算器62は、再構成された残差ブロックを、動き補償ユニット44によって生成された動き補償予測ブロックに加算して、参照フレーム記憶部64に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインター符号化するために動き推定/視差ユニット42及び動き補償ユニット44によって参照ブロックとして使用され得る。
上記で説明したように、インター予測と視界間予測とを可能にするために、ビデオエンコーダ20は1つ以上の参照リストを維持し得る。例えば、ITU−T H.264規格では、参照フレームの「リスト」、例えば、リスト0及びリスト1に言及する。本開示の態様は、インター予測と視界間予測とのために参照ピクチャのフレキシブルな順序を与える参照ピクチャリストを構成することに関係する。本開示の幾つかの態様によれば、ビデオエンコーダ20は、H.264/AVC仕様に記載されている参照ピクチャリストの修正バージョンに従って参照ピクチャリストを構成し得る。例えば、ビデオエンコーダ20は、インター予測目的のために参照ピクチャを維持する、H.264/AVC仕様に記載されている参照ピクチャリストを初期化し得る。本開示の態様によれば、次いで、リストに視界間参照ピクチャが付加される。
非ベースレイヤコンポーネント(例えば、第1又は第2のエンハンスメントレイヤ)を符号化するとき、ビデオエンコーダ20はただ1つの視界間参照を利用可能にし得る。例えば、第1のエンハンスメントレイヤを符号化するとき、視界間参照ピクチャは、同じアクセスユニット内のベースレイヤのアップサンプリングされた対応するピクチャであり得る。この例では、full_left_right_dependent_flagは1に等しくなり得、depViewIDは0に設定され得る。第2のエンハンスメントレイヤを符号化するとき、視界間参照ピクチャは、同じアクセスユニット内のベースレイヤのアップサンプリングされた対応するピクチャであり得る。この例では、full_left_right_dependent_flagは0に等しくなり得、depViewIDは0に設定され得る。代替的に、視界間参照ピクチャは、同じアクセスユニット中のフル解像度の第1のエンハンスメントレイヤであり得る。従って、full_left_right_dependent_flagは0に等しくなり得、depViewIDは1に設定され得る。クライアント機器は、この情報を使用して、エンハンスメントレイヤを正常に復号するために何のデータを取り出す必要があるかを決定し得る。
参照ピクチャリストは、参照ピクチャの順序をフレキシブルに構成するように修正され得る。例えば、ビデオエンコーダ20は以下の表5に従って参照ピクチャリストを構成し得る。
表5の例示的な参照ピクチャリスト修正は参照ピクチャリストを記述し得る。例えば、abs_diff_pic_num_minus1、long_term_pic_num、又はabs_diff_view_idx_minus1と共にmodification_of_pic_nums_idcは、参照ピクチャ又は視界間専用参照コンポーネントのどれがリマッピングされるかを指定し得る。視界間予測のために、視界間参照ピクチャと現在のピクチャとは、デフォルトで、ステレオコンテンツの2つの対向する視界に属し得る。幾つかの例では、視界間参照ピクチャは、ベースレイヤの一部である復号ピクチャに対応し得る。従って、復号ピクチャが視界間予測のために使用される前にアップサンプリングが必要とされ得る。ベースレイヤの低解像度ピクチャは、適応フィルタ、ならびにAVC6タップ補間フィルタ[1,−5,20,20,−5,1]/32を含む、様々なフィルタを使用してアップサンプリングされ得る。
別の例では、視界間予測のために、視界間参照ピクチャは、現在のピクチャと同じ視界(例えば、同じアクセスユニット中の異なる復号解像度)と、異なる視界とに対応し得る。その場合、(以下の)表6に示すように、現在のピクチャと視界間予測ピクチャとが同じ視界に対応するかどうかを示すためのcollocated_flagが導入される。collocated_flagが1に等しい場合、視界間参照ピクチャと現在のピクチャとは両方とも同じ視界の表現であり得る(例えば、レイヤ間テクスチャ予測と同様に、左視界又は右視界)。collocated_flagが0に等しい場合、視界間参照ピクチャと現在のピクチャとは、異なる視界の表現であり得る(例えば、1つの左視界ピクチャ及び1つの右視界ピクチャ)。
本開示の幾つかの態様によれば、modification_of_pic_nums_idcの値は(以下の)表7中に指定される。幾つかの例では、ref_pic_list_modification_flag_l0又はref_pic_list_modification_flag_l1の直後にくる第1のmodification_of_pic_nums_idcの値は3に等しくならないことがある。
本開示の態様によれば、abs_diff_view_idx_minus1+1が、参照ピクチャリスト中の現在のインデックスに入れるべき視界間参照インデックスと、視界間参照インデックスの予測値との間の絶対差を指定し得る。上記の表6及び表7において提示したシンタックスの復号プロセス中に、modification_of_pic_nums_idc(表7)が6に等しいとき、視界間参照ピクチャは、現在の参照ピクチャリストの現在のインデックス位置中に入れられることになる。
短期ピクチャ数picNumLXをもつピクチャをインデックス位置refIdxLX中に配置し、他の残りのピクチャの位置をリスト中の後のほうにシフトし、refIdxLXの値を増分するための以下のプロシージャが行われる。
但し、viewID( )は各視界コンポーネントのview_idに戻る。参照ピクチャがベースレイヤからのピクチャのアップサンプリングされたバージョンであるとき、viewID( )は、ベースレイヤの同じview_idに戻り得、それは0である。参照ピクチャがベースレイヤに属しない(例えば、参照ピクチャが第1のエンハンスメントレイヤである)とき、viewID( )は、適切な視界のview_idに戻り得、それは1(第1のエンハンスメントレイヤ)又は2(第2のエンハンスメントレイヤ)であり得る。
ビデオエンコーダ20はまた、符号化ビデオデータと共に、特定のシンタックス、例えば、符号化ビデオデータを適切に復号するためにデコーダ(デコーダ30、図1)によって使用される情報を与え得る。本開示の幾つかの態様によれば、レイヤ間予測を可能にするために、ビデオエンコーダ20は、(1)スライス中でブロックがレイヤ間テクスチャ予測されないこと、(2)スライス中で全てのブロックがレイヤ間テクスチャ予測されること、又は(3)スライス中で幾つかのブロックはレイヤ間テクスチャ予測され得、幾つかのブロックはレイヤ間テクスチャ予測され得ないことを示すためのシンタックス要素をスライスヘッダ中に与え得る。更に、ビデオエンコーダ20は、(1)スライス中でブロックがレイヤ間動き予測されないこと、(2)スライス中で全てのブロックがレイヤ間動き予測されること、又は(3)スライス中で幾つかのブロックはレイヤ間動き予測され得、幾つかのブロックはレイヤ間動き予測され得ないことを示すためのシンタックス要素をスライスヘッダ中に与え得る。
更に、レイヤ間予測を可能にするために、ビデオエンコーダ20は、あるシンタックスデータをブロックレベルで与え得る。例えば、本開示の態様は、mb_base_texture_flagと称するシンタックス要素を含む。このフラグは、レイヤ間テクスチャ予測がブロック全体(例えば、マクロブロック全体)のために呼び出されるかどうかを示すために使用され得る。ビデオエンコーダ20は、対応するベースレイヤ中の再構成された画素が、レイヤ間テクスチャ予測を使用して現在のブロックを再構成するための参照として使用されることを信号伝達するために、mb_base_texture_flagを1に等しく設定し得る。更に、ビデオエンコーダは、残差符号化のためのもの(即ち、CBP、8×8変換フラグ、及び係数)を除いて、現在のブロック中の他のシンタックス要素の符号化がスキップされることを信号伝達するために、mb_base_texture_flagを1に等しく設定し得る。ビデオエンコーダ20は、標準ブロック符号化が適用されることを信号伝達するためにmb_base_texture_flagを0に等しく設定し得る。ブロックが標準イントラブロックである場合、符号化プロセスは、H.264/AVC仕様に記載されている標準イントラブロック符号化と同じである。
レイヤ間予測を可能にするために、ビデオエンコーダ20は、他のシンタックスデータをブロックレベルで与え得る。例えば、本開示の態様は、ビデオエンコーダ20がパーティションmbPartIdxを符号化するためにレイヤ間予測を使用するかどうかを示すために符号化される、mbPart_texture_prediction_flag[mbPartIdx]と称するシンタックス要素を含む。このフラグは、インター16×16、8×16、16×8、及び8×8のパーティションタイプをもつブロックに適用され得るが、概して8×8を下回らない。ビデオエンコーダ20は、対応するパーティションにレイヤ間テクスチャ予測が適用されることを示すためにmbPart_texture_prediction_flagを1に等しく設定し得る。ビデオエンコーダ20は、motion_prediction_flag_l0/1[mbPartIdx]と呼ばれるフラグが符号化されることを示すために、mbPart_texture_prediction_flagを0に等しく設定し得る。ビデオエンコーダ20は、パーティションmbPartIdxの動きベクトルが、ベースレイヤ中の対応するパーティションの動きベクトルを使用して予測され得ることを示すために、motion_prediction_flag_l0/1を1に等しく設定し得る。ビデオエンコーダ20は、動きベクトルが、H.264/AVC仕様における方法と同じ方法で再構成されることを示すために、motion_prediction_flag_l0/1を0に等しく設定し得る。
以下に示す表8はブロックレベルシンタックス要素を含む。
表8に示す例では、ビデオエンコーダ20は、レイヤ間テクスチャ予測がマクロブロック全体に適用されることを示すためにmb_base_texture_flagを1に等しく設定し得る。更に、ビデオエンコーダ20は、シンタックス要素mb_typeと、他の関係するシンタックス要素とが、「多重視界フレーム互換」MFC構造におけるマクロブロック中に存在することを示すために、mb_base_texture_flagを0に等しく設定し得る。
以下に示す表9もブロックレベルシンタックス要素を含む。
表8に示した例では、ビデオエンコーダ20は、レイヤ間テクスチャ予測が、対応するパーティションmbPartIdxのために呼び出されることを示すために、mbPart_texture_prediction_flag[ mbPartIdx ]を1に等しく設定し得る。ビデオエンコーダ20は、レイヤ間テクスチャ予測がパーティションmbPartIdxのために呼び出されないことを示すためにmbPart_texture_prediction_flagを0に等しく設定し得る。更に、ビデオエンコーダ20は、参照としてベースレイヤの動きベクトルを使用する代替動きベクトル予測プロセスが、マクロブロックパーティションmbPartIdxのリスト1/0動きベクトルを導出するために使用されることと、マクロブロックパーティションmbPartIdxのリスト1/0参照インデックスがベースレイヤから推測されることとを示すために、motion_prediction_flag_l1/0[mbPartIdx]を1に等しく設定し得る。
以下に示す表10もサブブロックレベルシンタックス要素を含む。
表10に示した例では、ビデオエンコーダ20は、レイヤ間テクスチャ予測が、対応するパーティションmbPartIdxのために呼び出されることを示すために、mbPart_texture_prediction_flag[ mbPartIdx ]を1に等しく設定し得る。ビデオエンコーダ20は、レイヤ間テクスチャ予測がパーティションmbPartIdxのために呼び出されないことを示すためにmbPart_texture_prediction_flagを0に等しく設定し得る。
ビデオエンコーダ20は、参照としてベースレイヤの動きベクトルを使用する代替動きベクトル予測プロセスが、マクロブロックパーティションmbPartIdxのリスト1/0動きベクトルを導出するために使用されることと、マクロブロックパーティションmbPartIdxのリスト1/0参照インデックスがベースレイヤから推測されることとを示すために、motion_prediction_flag_l1/0[mbPartIdx]を1に等しく設定し得る。
ビデオエンコーダ20は、インターレイヤ動き予測がマクロブロックパーティションmbPartIdxのために使用されないことを示すためにmotion_prediction_flag_l1/0[mbPartIdx]フラグを設定しないことがある(例えば、フラグが存在しない)。
本開示の幾つかの態様によれば、ビデオエンコーダ20は、mb_base_texture_flagとmbPart_texture_prediction_flagとmotion_prediction_flag_l1/0とをスライスヘッダレベルで有効化又は無効化し得る。例えば、スライス中の全てのブロックが同じ特性を有するとき、これらの特性をブロックレベルではなくスライスレベルで信号伝達することにより、相対的なビット節約が与えられ得る。
このように、図2Aは、あるシーンの2つの視界(例えば、左眼視界及び右眼視界)に対応する2つの低解像度ピクチャを含むベースレイヤ、ならびに2つの追加のエンハンスメントレイヤを有するスケーラブル多重視界ビットストリームを生成するための技法を実装し得るビデオエンコーダ20の一例を示すブロック図である。第1のエンハンスメントレイヤは、ベースレイヤの視界のうちの1つのフル解像度ピクチャを含み得、第2のエンハンスメントレイヤは、ベースレイヤの他のそれぞれの視界のフル解像度ピクチャを含み得る。
この場合も、図2Aの幾つかの構成要素は、概念的な目的のために単一の構成要素に関して図示及び説明されることがあるが、1つ以上の機能ユニットを含み得ることを理解されたい。例えば、図2Bに関してより詳細に説明するように、動き推定/視差ユニット42は、動き推定及び動き視差計算を実行するための別個のユニットから構成され得る。
図2Bは、ベースレイヤと2つのエンハンスメントレイヤとを有するスケーラブル多重視界ビットストリームを生成するための技法を実装し得るビデオエンコーダの別の例を示すブロック図である。上述のように、ビデオエンコーダ20の幾つかの構成要素は、単一の構成要素に関して図示及び説明されることがあるが、2つ以上の個別及び/又は一体型ユニットを含み得る。その上、ビデオエンコーダ20の幾つかの構成要素は、高度に統合されるか、又は同じ物理的構成要素に組み込まれ得るが、概念的な目的のために別々に示してある。従って、図2Bに示す例は、図2Aに示すビデオエンコーダ20と同じ構成要素の多くを含み得るが、3つのレイヤ、例えば、ベースレイヤ142と、第1のエンハンスメントレイヤ84と、第2のエンハンスメントレイヤ86との符号化を概念的に示すために代替構成で示してある。
図2Bに示す例は、3つのレイヤを含むスケーラブル多重視界ビットストリームを生成するビデオエンコーダ20を示している。上記で説明したように、レイヤの各々は、マルチメディアコンテンツを構成する一連のフレームを含み得る。本開示の態様によれば、3つのレイヤは、ベースレイヤ82と、第1のエンハンスメントレイヤ84と、第2のエンハンスメントレイヤ86とを含む。幾つかの例では、ベースレイヤ142のフレームは、2つの並列パック低解像度ピクチャ(例えば、左眼視界(「B1」)及び右眼視界(「B2」))を含み得る。第1のエンハンスメントレイヤはベースレイヤの左眼視界のフル解像度ピクチャ(「E1」)を含み得、第2のエンハンスメントレイヤはベースレイヤの右眼視界のフル解像度ピクチャ(「E2」)を含み得る。但し、図2Bに示すベースレイヤ構成及びエンハンスメントレイヤのシーケンスは一例として与えるものにすぎない。別の例では、ベースレイヤ82は、代替パッキング構成(例えば、上下、行インターリーブ、列インターリーブ、チェッカーボードなど)で低解像度ピクチャを含み得る。その上、第1のエンハンスメントレイヤは右眼視界のフル解像度ピクチャを含み得、第2のエンハンスメントレイヤは左眼視界のフル解像度ピクチャを含み得る。
図2Bに示す例では、ビデオエンコーダ20は、3つのイントラ予測ユニット46と、(例えば、図2Aに示す、組み合わせられた動き推定/視差ユニット42及び動き補償ユニット44と同様に又は同じように構成され得る)3つの動き推定/動き補償ユニット90とを含み、各レイヤ82〜86は、関連するイントラ予測ユニット46と動き推定/補償ユニット90とを有する。更に、第1のエンハンスメントレイヤ84及び第2のエンハンスメントレイヤ86はそれぞれ、レイヤ間テクスチャ予測ユニット100とレイヤ間動き予測ユニット102とを含む(破線98でグループ化された)レイヤ間予測ユニット、及び視界間予測ユニット100に結合される。図2Bの残りの構成要素は、図2Aに示す構成要素と同様に構成され得る。即ち、加算器50及び参照フレーム記憶部64は、両方の表現において同様に構成され得、図2Bの変換及び量子化ユニット114は、図2Aに示す、組み合わせられた変換ユニット52及び量子化ユニット54と同様に構成され得る。更に、図2Bの逆量子化/逆変換ユニット/再構成/デブロッキングユニット122は、図2Aに示す、組み合わせられた逆量子化ユニット58及び逆変換ユニット60と同様に構成され得る。モード選択ユニット40は、図2Bでは予測ユニットの各々の間でトグルするスイッチとして表されており、例えば、誤差結果に基づいて、イントラ、インター、レイヤ間動き、レイヤ間テクスチャ、又は視界間など、符号化モードのうちの1つを選択し得る。
概して、ビデオエンコーダ20は、図2Aに関して上記で説明したイントラ符号化方法又はインター符号化方法を使用してベースレイヤ82を符号化し得る。例えば、ビデオエンコーダ20は、イントラ予測ユニット46を使用してベースレイヤ82中に含まれる低解像度ピクチャをイントラ符号化し得る。ビデオエンコーダ20は、(例えば、図2Aに示す、組み合わせられた動き推定/視差ユニット42及び動き補償ユニット44と同様に又は同じように構成され得る)動き推定/補償ユニット90を使用してベースレイヤ82中に含まれる低解像度ピクチャをインター符号化し得る。更に、ビデオエンコーダ20は、イントラ予測ユニット46を使用して第1のエンハンスメントレイヤ84又は第2のエンハンスメントレイヤをイントラ符号化するか、あるいは動き補償推定/補償ユニット90を使用して第1のエンハンスメントレイヤ84又は第2のエンハンスメントレイヤ86をインター符号化し得る。
本開示の態様によれば、ビデオエンコーダ20はまた、第1のエンハンスメントレイヤ84と第2のエンハンスメントレイヤ86とを符号化するために幾つかの他の視界間又はレイヤ間符号化方法を実装し得る。例えば、ビデオエンコーダ20は、第1のエンハンスメントレイヤ84と第2のエンハンスメントレイヤ86とを符号化するために(破線98でグループ化された)レイヤ間予測ユニットを使用し得る。例えば、第1のエンハンスメントレイヤ84が左眼視界のフル解像度ピクチャを含む例によれば、ビデオエンコーダ20は、レイヤ間予測ユニット98を使用して、ベースレイヤの左眼視界(例えば、B1)の低解像度ピクチャから第1のエンハンスメントレイヤ84をレイヤ間予測し得る。その上、ビデオエンコーダ20は、レイヤ間予測ユニット98を使用して、ベースレイヤの右眼視界(例えば、B2)の低解像度ピクチャから第2のエンハンスメントレイヤ86をレイヤ間予測し得る。図2Bに示す例では、レイヤ間予測ユニット98は、ベースレイヤ82に関連する動き推定/補償ユニット90からデータ(例えば、動きベクトルデータ、テクスチャデータなど)を受信し得る。
図2Bに示す例では、レイヤ間予測ユニット98は、第1のエンハンスメントフレーム84と第2のエンハンスメントフレーム86とをレイヤ間テクスチャ予測するためのレイヤ間テクスチャ予測ユニット100、ならびに第1のエンハンスメントフレーム84と第2のエンハンスメントフレーム86とをレイヤ間動き予測するためのレイヤ間動き予測ユニット102を含む。
ビデオエンコーダ20はまた、第1のエンハンスメントレイヤ84と第2のエンハンスメントレイヤ86とを視界間予測するための視界間予測ユニット106を含み得る。幾つかの例によれば、ビデオエンコーダ20は、ベースレイヤの右眼視界(B2)の低解像度ピクチャから第1のエンハンスメントレイヤ84(例えば、左眼視界のフル解像度ピクチャ)を視界間予測し得る。同様に、ビデオエンコーダ20は、ベースレイヤの左眼視界(B1)の低解像度ピクチャから第2のエンハンスメントレイヤ86(例えば、右眼視界のフル解像度ピクチャ)を視界間予測し得る。その上、幾つかの例によれば、ビデオエンコーダ20はまた、第1のエンハンスメントレイヤ84に基づいて第2のエンハンスメントレイヤ86を視界間予測し得る。
変換及び量子化ユニット114によって残差変換係数の変換及び量子化が実行された後、ビデオエンコーダ20は、エントロピー符号化及び多重化ユニット118を用いて量子化残差変換係数のエントロピー符号化及び多重化を実行し得る。即ち、エントロピー符号化及び多重化ユニット118は、量子化変換係数を符号化する、例えば、(図2Aに関して説明したように)コンテンツ適応型可変長符号化(CAVLC)、コンテキスト適応型バイナリ算術符号化(CABAC)、又は別のエントロピー符号化技法を実行し得る。更に、エントロピー符号化及び多重化ユニット118は、符号化ブロックパターン(CBP)値、マクロブロックタイプ、符号化モード、(フレーム、スライス、マクロブロック、又はシーケンスなどの)符号化ユニットの最大マクロブロックサイズなどのシンタックス情報を生成し得る。エントロピー符号化及び多重化ユニット118は、この圧縮ビデオデータを所謂「ネットワークアブストラクションレイヤユニット」又はNALユニットにフォーマットし得る。各NALユニットは、NALユニットに記憶されるデータのタイプを識別するヘッダを含む。本開示の幾つかの態様によれば、上記で図2Aに関して説明したように、ビデオエンコーダ20は、ベースレイヤ82のために、第1及び第2のエンハンスメントレイヤ84、86とは異なるNALフォーマットを使用し得る。
この場合も、図2Bに示す幾つかの構成要素は別個のユニットとして表されていることがあるが、ビデオエンコーダ20の幾つかの構成要素は、高度に統合されるか、又は同じ物理的構成要素に組み込まれ得ることを理解されたい。従って、一例として、図2Bは3つの個別のイントラ予測ユニット46を含むが、ビデオエンコーダ20は、イントラ予測を実行するために同じ物理的構成要素を使用し得る。
図3は、符号化ビデオシーケンスを復号するビデオデコーダ30の一例を示すブロック図である。図3の例では、ビデオデコーダ30は、エントロピー復号ユニット130と、動き補償ユニット132と、イントラ予測ユニット134と、逆量子化ユニット136と、逆変換ユニット138と、参照フレーム記憶部142と、加算器140とを含む。ビデオデコーダ30は、幾つかの例では、ビデオエンコーダ20(図2A及び図2B)に関して説明した符号化パスとは概して逆の復号パスを実行し得る。
特に、ビデオデコーダ30は、ベースレイヤと、第1のエンハンスメントレイヤと、第2のエンハンスメントレイヤとを含むスケーラブル多重視界ビットストリームを受信するように構成され得る。ビデオデコーダ30は、ベースレイヤのフレームパッキング構成、エンハンスメントレイヤの順序を示す情報、及びスケーラブル多重視界ビットストリームを適切に復号するための他の情報を受信し得る。例えば、ビデオデコーダ30は、「多重視界フレーム互換」(MFC)SPS及びSEIメッセージを解釈するように構成され得る。ビデオデコーダ30はまた、多重視界ビットストリームの全ての3つのレイヤを復号すべきか、レイヤのサブセットのみ(例えば、ベースレイヤ及び第1のエンハンスメントレイヤ)を復号すべきかを決定するように構成され得る。この決定は、ビデオ表示32(図1)が3次元ビデオデータを表示することが可能であるかどうか、ビデオデコーダ30が特定のビットレート及び/又はフレームレートの複数の視界を復号する(及び低解像度視界をアップサンプリングする)能力を有するかどうか、若しくはビデオデコーダ30及び/又はビデオ表示32に関する他のファクタに基づき得る。
宛先機器14が3次元ビデオデータを復号及び/又は表示することが可能でないとき、ビデオデコーダ30は、受信されたベースレイヤを構成要素である低解像度符号化ピクチャに解凍し、次いで、低解像度符号化ピクチャのうちの1つを廃棄し得る。従って、ビデオデコーダ30は、ベースレイヤの半分のみ(例えば、左眼視界のピクチャ)を復号することを選択し得る。更に、ビデオデコーダ30は、エンハンスメントレイヤのうちの1つのみを復号することを選択し得る。即ち、ビデオデコーダ30は、ベースフレームの廃棄されたピクチャに対応するエンハンスメントレイヤを廃棄しながら、ベースフレームの保持された低解像度ピクチャに対応するエンハンスメントレイヤを復号することを選択し得る。エンハンスメントレイヤのうちの1つを保持することにより、ビデオデコーダ30は、ベースレイヤの保持されたピクチャをアップサンプリング又は補間することに関連する誤りを低減することが可能になり得る。
宛先機器14が3次元ビデオデータを復号し、表示することが可能であるとき、ビデオデコーダ30は、受信されたベースレイヤを構成要素である低解像度符号化ピクチャに解凍し、低解像度ピクチャの各々を復号し得る。幾つかの例によれば、ビデオデコーダ30はまた、ビデオデコーダ30及び/又はビデオ表示32の能力に応じて、エンハンスメントレイヤの一方又は両方を復号し得る。エンハンスメントレイヤの一方又は両方を保持することにより、ビデオデコーダ30は、ベースレイヤのピクチャをアップサンプリング又は補間することに関連する誤りを低減し得る。この場合も、デコーダ30によって復号されるレイヤは、ビデオデコーダ30及び/又は宛先機器14及び/又は通信チャネル16(図1)の能力に依存し得る。
ビデオデコーダ30は、視界間符号化ピクチャの変位ベクトルを取り出すか、又はインター若しくはレイヤ間符号化ピクチャ、例えば、ベースレイヤの2つの低解像度ピクチャとエンハンスメントレイヤの2つのフル解像度ピクチャとの動きベクトルを取り出し得る。ビデオデコーダ30は、変位ベクトル又は動きベクトルを使用して予測ブロックを取り出して、ピクチャのブロックを復号し得る。幾つかの例では、ベースレイヤの低解像度ピクチャを復号した後に、ビデオデコーダ30は、エンハンスメントレイヤピクチャと同じ解像度に復号ピクチャをアップサンプリングし得る。
動き補償ユニット132は、エントロピー復号ユニット130から受信された動きベクトルに基づいて予測データを生成し得る。動き補償ユニット132は、ビットストリーム中で受信された動きベクトルを使用して、参照フレーム記憶部142中の参照フレーム中の予測ブロックを識別し得る。イントラ予測ユニット134は、ビットストリーム中で受信されたイントラ予測モードを使用して、空間的に隣接するブロックから予測ブロックを形成し得る。逆量子化ユニット136は、ビットストリーム中で供給され、エントロピー復号ユニット130によって復号された量子化ブロック係数を逆量子化(inverse quantize)、即ち、逆量子化(de-quantize)する。逆量子化プロセスは、例えば、H.264復号規格によって定義された従来のプロセスを含み得る。逆量子化プロセスはまた、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、各マクロブロックについてエンコーダ20によって計算される量子化パラメータQPYの使用を含み得る。
逆変換ユニット58は、逆変換、例えば、逆DCT、逆整数変換、又は概念的に同様の逆変換プロセスを変換係数に適用して、画素領域において残差ブロックを生成する。動き補償ユニット132は動き補償ブロックを生成し、場合によっては、補間フィルタに基づいて補間を実行する。サブ画素精度をもつ動き推定に使用されるべき補間フィルタの識別子は、シンタックス要素中に含まれ得る。動き補償ユニット132は、ビデオブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用して、参照ブロックのサブ整数画素の補間値を計算し得る。動き補償ユニット132は、受信されたシンタックス情報に従って、ビデオエンコーダ20によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。
動き補償ユニット132は、シンタックス情報の幾つかを使用して、符号化ビデオシーケンスの(1つ以上の)フレームを符号化するために使用されるマクロブロックのサイズと、符号化ビデオシーケンスのフレームの各マクロブロックがどのように区分されるのかを記述するパーティション情報と、各パーティションがどのように符号化されるのかを示すモードと、各インター符号化マクロブロック又はパーティションのための1つ以上の参照フレーム(又はリスト)と、符号化ビデオシーケンスを復号するための他の情報とを決定する。
加算器140は、残差ブロックを、動き補償ユニット132又はイントラ予測ユニットによって生成される対応する予測ブロックと加算して、復号ブロックを形成する。所望される場合、ブロックノイズ(blockiness artifacts)を除去するために、復号ブロックをフィルタ処理するためにデブロッキングフィルタも適用され得る。復号ビデオブロックは、次いで、参照フレーム記憶部142に記憶され、参照フレーム記憶部142は、参照ブロックを後続の動き補償に与え、また、(図1の表示装置32などの)表示装置上での提示のために復号ビデオを生成する。
本開示の幾つかの態様によれば、ビデオデコーダ30は、復号ピクチャ、例えば、参照フレーム記憶部142に記憶された復号ピクチャをレイヤごとに別々に管理し得る。幾つかの例では、ビデオデコーダ30は、H.264/AVC仕様に従ってレイヤごとに別々に復号ピクチャを管理する。ビデオデコーダ30が、対応するエンハンスメントレイヤを復号した後に、ビデオデコーダ30は、アップサンプリングされた復号ピクチャ、例えば、エンハンスメントレイヤ予測目的のためにアップサンプリングされたベースレイヤからの復号ピクチャを削除し得る。
一例では、ビデオデコーダ30は、左眼視界と右眼視界との低解像度ピクチャを含むベースレイヤ、及びベースフレームの左眼視界のフル解像度ピクチャを含む第1のエンハンスメントレイヤを有する符号化スケーラブル多重視界ビットストリームを受信し得る。この例では、ビデオデコーダ30は、ベースレイヤ中に含まれる左眼視界の低解像度ピクチャを復号し、第1のエンハンスメントレイヤをレイヤ間予測するために低解像度ピクチャをアップサンプリングし得る。即ち、ビデオデコーダ30は、第1のエンハンスメントレイヤを復号する前にベースレイヤの低解像度ピクチャをアップサンプリングし得る。第1のエンハンスメントレイヤを復号すると、ビデオデコーダ30は、次いで、参照フレーム記憶部142から(例えば、ベースレイヤからの)左眼視界のアップサンプリングされたピクチャを削除し得る。
ビデオデコーダ30は、受信されたフラグに従って復号ピクチャを管理するように構成され得る。例えば、ベースレイヤのどのピクチャが予測目的のためにアップサンプリングされる必要があるかを識別する幾つかのフラグが、受信された符号化ビデオデータと共に与えられ得る。一例によれば、ビデオデコーダ30が、1に等しいinter_view_frame_0_flag、inter_layer_frame_0_flag、又はinter_component_frame_0_flagを受信した場合、ビデオデコーダ30は、フレーム0部分、即ち、視界0に対応するベースレイヤの一部分がアップサンプリングされなければならないことを識別することができる。一方、ビデオデコーダが、1に等しいinter_view_frame_1_flag、inter_layer_frame_1_flag、又はinter_component_frame_1_flagを受信した場合、ビデオデコーダ30は、フレーム1部分、即ち、視界1に対応するベースレイヤの一部分がアップサンプリングされなければならないことを識別することができる。
本開示の幾つかの態様によれば、ビデオデコーダ30は、サブビットストリームを抽出し、復号するように構成され得る。即ち、例えば、ビデオデコーダ30は、様々な動作点を使用してスケーラブル多重視界ビットストリームを復号することが可能であり得る。幾つかの例では、ビデオデコーダ30は、ベースレイヤに対応する(例えば、H.264/AVC仕様に従ってパックされた)フレームパックサブビットストリームを抽出し得る。ビデオデコーダ30はまた、シングル視界動作点を復号し得る。ビデオデコーダ30はまた、非対称動作点を復号し得る。
デコーダ30は、図2A及び図2Bに示すビデオエンコーダ20などのエンコーダから、動作点を識別するシンタックス又は命令を受信し得る。例えば、ビデオデコーダ30は、可変twoFullViewsFlag(存在するとき)、可変twoHalfViewsFlag(存在するとき)、可変tIdTarget(存在するとき)、及び可変LeftViewFlag(存在するとき)を受信し得る。この例では、ビデオデコーダ30は、サブビットストリームを導出するために、上記で説明した入力変数を使用して以下の操作を適用し得る。
1. 視界0、1及び2をターゲット視界としてマークする。
2. twoFullViewsFlagが偽であるとき
a. LeftViewFlagとleft_view_enhance_firstの両方が1又は0である場合((LeftViewFlag+left_view_enhance_first) %2 == 0)、視界2を非ターゲット視界としてマークする。
b. そうではなく、(LeftViewFlag+left_view_enhance_first) %2 == 1)であるとき、
i. full_left_right_dependent_flagが1である場合、視界1を非ターゲット視界としてマークする。
3. 以下の条件のいずれかが当てはまる全てのVCL NALユニット及びフィラーデータNALユニットを「ビットストリームから削除されるべき」とマークする。
a. temporal_idがtIdTargetをよりも大きい、
b. nal_ref_idcが0に等しく、inter_component_flagが0に等しい(又は全ての以下のフラグが0に等しい:inter_view_frame_0_flag、inter_view_frame_1_flag、inter_layer_frame_0_flag、inter_layer_frame_1_flag、inter_view_flag、及びinter_layer_flag)。
c. (2-second_view_flag)に等しいview_idをもつ視界が非ターゲット視界である。
4. それの全てのVCL NALユニットが「ビットストリームから削除されるべき」とマークされた全てのアクセスユニットを削除する。
5. 「ビットストリームから削除されるべき」とマークされた全てのVCL NALユニット及びフィラーデータNALユニットを削除する。
6. twoHalfViewsFlagが1であるとき、以下のNALユニットを削除する。
a. NEWTYPE1又はNEWTYPE2に等しいnal_unit_typeをもつ全てのNALユニット。
b. (おそらく新しいタイプをもつ)SPS MFC拡張と、(異なるSEIタイプをもつ)この補正において定義されているSEIメッセージとを含んでいる全てのNALユニット。
この例では、このサブクローズ(subclause)への入力としてtwoFullViewsFlagが存在しないとき、twoFullViewsFlagは1に等しいと推測される。このサブクローズへの入力としてtwoHalfViewsFlagが存在しないとき、twoHalfViewsFlagは0に等しいと推測される。このサブクローズへの入力としてtIdTargetが存在しないとき、tIdTargetは7に等しいと推測される。このサブクローズの入力としてLeftViewFlagが存在しないとき、LeftViewFlagは真であると推測される。
ビデオデコーダ30に関して説明したが、他の例では、サブビットストリーム抽出は、宛先機器(例えば、図1に示す宛先機器14)の別の機器又は構成要素によって実行され得る。例えば、本開示の幾つかの態様によれば、サブビットストリームは、属性として、例えば、ビデオサービスのマニフェストの一部として含まれる属性として識別され得る。この例では、クライアント(例えば、宛先機器14)が動作点を選択するために属性を使用し得るように、クライアントが特定のビデオ表現を再生し始める前にマニフェストが送信され得る。即ち、クライアントは、ベースレイヤのみ、ベースレイヤ及び1つのエンハンスメントレイヤ、又はベースレイヤ及び両方のエンハンスメントレイヤを受信することを選択し得る。
図4は、左眼視界ピクチャ180と右眼視界ピクチャと182に対応する低解像度ピクチャを有するベースレイヤ184の圧縮フレーム(packed frame)(「ベースレイヤフレーム184」)を形成するためにビデオエンコーダ20によって組み合わせられた左眼視界ピクチャ180と右眼視界ピクチャ182とを示す概念図である。ビデオエンコーダ20はまた、左眼視界ピクチャ180に対応するエンハンスメントレイヤ186のフレーム(「エンハンスメントレイヤフレーム186」)を形成する。この例では、ビデオエンコーダ20は、あるシーンの左眼視界の未加工ビデオデータを含むピクチャ180と、そのシーンの右眼視界の未加工ビデオデータを含むピクチャ182とを受信する。左眼視界は視界0に対応し得、右眼視界は視界1に対応し得る。ピクチャ180、182は同じ時間インスタンスの2つのピクチャに対応し得る。例えば、ピクチャ180、182は、カメラによって実質的に同時に撮影されていることがある。
図4の例では、ピクチャ180のサンプル(例えば、画素)は×で示され、ピクチャ182のサンプルは○で示されている。図示のように、ビデオエンコーダ20は、ピクチャ180をダウンサンプリングし、ピクチャ182をダウンサンプリングし、これらのピクチャを組み合わせて、ビデオエンコーダ20が符号化し得るベースレイヤフレーム184を形成し得る。この例では、ビデオエンコーダ20は、ベースレイヤフレーム184中で、ダウンサンプリングされたピクチャ180とダウンサンプリングされたピクチャ182とを並列構成で構成する。ピクチャ180とピクチャ182とをダウンサンプリングし、ダウンサンプリングされたピクチャを並列ベースレイヤフレーム184中で構成するために、ビデオエンコーダ20は各ピクチャ180及び182の交互列をデシメートし得る。別の例として、ビデオエンコーダ20は、ピクチャ180とピクチャ182とのダウンサンプリングされたバージョンを生成するために、ピクチャ180とピクチャ182との交互列を完全に削除し得る。
但し、他の例では、ビデオエンコーダ20は、ダウンサンプリングされたピクチャ180とダウンサンプリングされたピクチャ182とを他の構成でパックし得る。例えば、ビデオエンコーダ20はピクチャ180とピクチャ182との列を交互にし得る。別の例では、ビデオエンコーダ20は、ピクチャ180とピクチャ182との行をデシメート又は削除し、ダウンサンプリングされたピクチャを上下構成又は交互構成で構成し得る。更に別の例では、ビデオエンコーダ20は、サンプルピクチャ180とサンプルピクチャ182とをサイコロの五の目の配置(チェッカーボード)にし、それらのサンプルをベースレイヤフレーム184中に構成し得る。
ベースレイヤフレーム184に加えて、ビデオエンコーダ20は、ベースレイヤフレーム184の左眼視界(例えば、視界0)のピクチャに対応するフル解像度エンハンスメントレイヤフレーム186を符号化し得る。本開示の幾つかの態様によれば、ビデオエンコーダ20は、前に説明したように、(破線188で表された)レイヤ間予測を使用してエンハンスメントレイヤフレーム186を符号化し得る。即ち、ビデオエンコーダ20は、レイヤ間テクスチャ予測を用いたレイヤ間予測、又はレイヤ間動き予測を用いたレイヤ間予測を使用してエンハンスメントレイヤフレーム186を符号化し得る。追加又は代替として、ビデオエンコーダ20は、前に説明したように、(破線190で表された)視界間予測を使用してエンハンスメントレイヤフレーム186を符号化し得る。
図4の図において、ベースレイヤフレーム184は、ピクチャ180からのデータに対応する×と、ピクチャ182からのデータに対応する○とを含む。但し、ピクチャ180とピクチャ182とに対応するベースレイヤフレーム184のデータは、必ずしもダウンサンプリング後のピクチャ180とピクチャ182とのデータと正確に整合するとは限らないことを理解されたい。同様に、符号化の後に、ベースレイヤフレーム184中のピクチャのデータは、ピクチャ180、182のデータとは異なる可能性がある。従って、ベースレイヤフレーム184中のある×又は○のデータが、ピクチャ180、182中の対応する×又は○と必ず同じであること、若しくはベースレイヤフレーム184中の×又は○が、ピクチャ180、182中の×又は○と同じ解像度であることは仮定されるべきでない。
図5は、ベースレイヤ184のフレーム(「ベースレイヤフレーム184」)と、右眼視界ピクチャ182に対応するエンハンスメントレイヤ192のフレーム(「エンハンスメントレイヤフレーム192」)とを形成するためにビデオエンコーダ20によって組み合わせられた左眼視界ピクチャ180と右眼視界ピクチャ182とを示す概念図である。この例では、ビデオエンコーダ20は、あるシーンの左眼視界の未加工ビデオデータを含むピクチャ180と、そのシーンの右眼視界の未加工ビデオデータを含むピクチャ182とを受信する。左眼視界は視界0に対応し得、右眼視界は視界1に対応し得る。ピクチャ180、182は同じ時間インスタンスの2つのピクチャに対応し得る。例えば、ピクチャ180、182は、カメラによって実質的に同時に撮影されていることがある。
図4に示す例と同様に、図5に示す例は、×で示されたピクチャ180のサンプル(例えば、画素)と、○で示されたピクチャ182のサンプルとを含む。図示のように、ビデオエンコーダ20は、図4に示す方法と同様の方法で、ピクチャ180をダウンサンプリングし、符号化し、ピクチャ182をダウンサンプリングし、符号化し、これらのピクチャを組み合わせてベースレイヤフレーム184を形成し得る。
ベースレイヤフレーム184に加えて、ビデオエンコーダ20は、ベースレイヤ184の右眼視界(例えば、視界1)のピクチャに対応するフル解像度エンハンスメントレイヤフレーム192を符号化し得る。本開示の幾つかの態様によれば、ビデオエンコーダ20は、前に説明したように、(破線188で表された)レイヤ間予測を使用してエンハンスメントレイヤフレーム192を符号化し得る。即ち、ビデオエンコーダ20は、レイヤ間テクスチャ予測を用いたレイヤ間予測、又はレイヤ間動き予測を用いたレイヤ間予測を使用してエンハンスメントレイヤフレーム192を符号化し得る。追加又は代替として、ビデオエンコーダ20は、前に説明したように、(破線190で表された)視界間予測を使用してエンハンスメントレイヤフレーム192を符号化し得る。
図6は、ベースレイヤ184のフレーム(「ベースレイヤフレーム184」)と、左眼視界180のフル解像度ピクチャを含む第1のエンハンスメントレイヤのフレーム(「第1のエンハンスメントレイヤフレーム186」)と、右眼視界182のフル解像度ピクチャを含む第2のエンハンスメントレイヤのフレーム(「第2のエンハンスメントレイヤフレーム192」)とを形成するためにビデオエンコーダ20によって組み合わせられた左眼視界ピクチャ180と右眼視界ピクチャ182とを示す概念図である。この例では、ビデオエンコーダ20は、あるシーンの左眼視界の未加工ビデオデータを含むピクチャ180と、そのシーンの右眼視界の未加工ビデオデータを含むピクチャ182とを受信する。左眼視界は視界0に対応し得、右眼視界は視界1に対応し得る。ピクチャ180、182は同じ時間インスタンスの2つのピクチャに対応し得る。例えば、ピクチャ180、182は、カメラによって実質的に同時に撮影されていることがある。
図4及び図5に示す例と同様に、図6に示す例は、Xで示されたピクチャ180のサンプル(例えば、画素)と、Oで示されたピクチャ182のサンプルとを含む。図示のように、ビデオエンコーダ20は、図4及び図5に示す方法と同様の方法で、ピクチャ180をダウンサンプリングし、符号化し、ピクチャ182をダウンサンプリングし、符号化し、これらのピクチャを組み合わせてベースレイヤフレーム184を形成し得る。
ベースレイヤフレーム184に加えて、ビデオエンコーダ20は、ベースレイヤフレーム184の左眼視界ピクチャ(例えば、視界0)に対応する第1のエンハンスメントレイヤフレーム186を符号化し得る。ビデオエンコーダ20はまた、ベースレイヤフレーム184の右眼視界ピクチャ(例えば、視界1)に対応する第2のエンハンスメントレイヤフレーム192を符号化し得る。但し、エンハンスメントレイヤフレームの順序は一例として与えたものにすぎない。即ち、他の例では、ビデオエンコーダ20は、ベースレイヤフレーム184の右眼視界のピクチャに対応する第1のエンハンスメントレイヤフレームと、ベースレイヤフレーム184の左眼視界のピクチャに対応する第2のエンハンスメントレイヤフレームとを符号化し得る。
図6に示す例では、ビデオエンコーダ20は、前に説明したように、ベースレイヤフレーム184に基づいて(破線188で表された)レイヤ間予測を使用して第1のエンハンスメントレイヤフレーム186を符号化し得る。即ち、ビデオエンコーダ20は、ベースレイヤフレーム184に基づいて、レイヤ間テクスチャ予測を用いたレイヤ間予測、又はレイヤ間動き予測を用いたレイヤ間予測を使用して第1のエンハンスメントレイヤフレーム186を符号化し得る。追加又は代替として、ビデオエンコーダ20は、前に説明したように、ベースレイヤフレーム184に基づいて(破線190で表された)視界間予測を使用して第1のエンハンスメントレイヤフレーム186を符号化し得る。
ビデオエンコーダ20はまた、上記で説明したように、ベースレイヤフレーム184に基づいて(破線194で表された)レイヤ間予測を使用して第2のエンハンスメントレイヤフレーム192を符号化し得る。即ち、ビデオエンコーダ20は、ベースレイヤフレーム184に基づいて、レイヤ間テクスチャ予測を用いたレイヤ間予測、又はレイヤ間動き予測を用いたレイヤ間予測を使用して第2のエンハンスメントレイヤフレーム192を符号化し得る。
追加又は代替として、ビデオエンコーダ20は、第1のエンハンスメントレイヤフレーム186に基づいて(破線190で表された)視界間予測を使用して第2のエンハンスメントレイヤフレーム192を符号化し得る。
本開示の態様によれば、各レイヤ、即ち、ベースレイヤ184と、第1のエンハンスメントレイヤ186と、第2のエンハンスメントレイヤ192とに専用の多重視界スケーラブルビットストリームの帯域幅の量は、レイヤの依存性に従って変動し得る。例えば、概して、ビデオエンコーダ20は、ベースレイヤ184にスケーラブル多重視界ビットストリームの帯域幅の50%〜60%を割り当て得る。即ち、ベースレイヤ184に関連するデータは、ビットストリームに専用のデータ全体の50%〜60%を占める。第1のエンハンスメントレイヤ186と第2のエンハンスメントレイヤ192とが互いに依存しない(例えば、第2のエンハンスメントレイヤ192が予測目的のために第1のエンハンスメントレイヤ186を使用しない)場合、ビデオエンコーダ20は、それぞれのエンハンスメントレイヤ186、192の各々に、ほぼ等しい量の残りの帯域幅(例えば、それぞれのエンハンスメントレイヤ186、192に帯域幅の25%〜20%)を割り当て得る。代替的に、第2のエンハンスメントレイヤ192が第1のエンハンスメントレイヤ186から予測される場合、ビデオエンコーダ20は、比較的より大きい量の帯域幅を第1のエンハンスメントレイヤ186に割り当て得る。即ち、ビデオエンコーダ20は、帯域幅の約25%〜30%のパーセントを第1のエンハンスメントレイヤ186に割り当て、帯域幅の約15%〜20%を第2のエンハンスメントレイヤ192に割り当て得る。
図7は、2つの異なる視界の2つの低解像度ピクチャを有するベースレイヤ、及び第1のエンハンスメントレイヤ並びに第2のエンハンスメントレイヤを含むスケーラブル多重視界ビットストリームを形成し、符号化するための例示的な方法200を示すフローチャートである。図1及び図2A〜2Bの例示的な構成要素に関して一般的に説明するが、他のエンコーダ、符号化ユニット、及び符号化機器が図7の方法を実行するように構成され得ることを理解されたい。その上、図7の方法のステップは必ずしも図7に示す順序で実行される必要はなく、より少ないか、追加であるか、又は代替であるステップが実行され得る。
図7の例では、ビデオエンコーダ20は、最初に左眼視界、例えば、視界0のピクチャを受信する(202)。ビデオエンコーダ20はまた、2つの受信されたピクチャがステレオ画像ペアを形成するように、右眼視界、例えば、視界1のピクチャを受信する(204)。左眼視界と右眼視界とは、相補的視界ペアとも呼ばれるステレオ視界ペアを形成し得る。右眼視界の受信されたピクチャは、左眼視界の受信されたピクチャと同じ時間ロケーションに対応し得る。即ち、左眼視界のピクチャと右眼視界のピクチャとは、実質的に同時に撮影又は生成されていることがある。ビデオエンコーダ20は、次いで、左眼視界ピクチャのピクチャと右眼視界のピクチャとの解像度を低減する(206)。幾つかの例では、ビデオエンコーダ20の前処理ユニットがピクチャを受信し得る。幾つかの例では、ビデオ前処理ユニットはビデオエンコーダ20の外部にあり得る。
図7の例では、ビデオエンコーダ20が左眼視界のピクチャと右眼視界のピクチャとの解像度を低減する(206)。例えば、ビデオエンコーダ20は、受信された左眼視界ピクチャと右眼視界ピクチャとを(例えば、行型、列型、又はサイコロの五の目の配置(チェッカーボード)サブサンプリングを使用して)サブサンプリングするか、受信された左眼視界ピクチャと右眼視界ピクチャとの行又は列をデシメートするか、若しくは場合によっては、受信された左眼視界ピクチャと右眼視界ピクチャとの解像度を低減し得る。幾つかの例では、ビデオエンコーダ20は、左眼視界の対応するフル解像度ピクチャの幅の半分又は高さの半分のいずれかを有する2つの低解像度ピクチャを生成し得る。ビデオプリプロセッサを含む他の例では、ビデオプリプロセッサは、右眼視界ピクチャの解像度を低減するように構成され得る。
ビデオエンコーダ20は、次いで、ダウンサンプリングされた左眼視界ピクチャとダウンサンプリングされた右眼視界ピクチャの両方を含むベースレイヤフレームを形成する(208)。例えば、ビデオエンコーダ20は、並列構成を有するベースレイヤフレーム、上下構成を有するベースレイヤフレーム、左視界ピクチャの列が右視界ピクチャの列とインターリーブされたベースレイヤフレーム、左視界ピクチャの行が右視界ピクチャの行とインターリーブされたベースレイヤフレーム、又は「チェッカーボード」タイプ構成におけるベースレイヤフレームを形成し得る。
ビデオエンコーダ20は、次いで、ベースレイヤフレームを符号化する(210)。本開示の態様によれば、図2A及び図2Bに関して説明したように、ビデオエンコーダ20はベースレイヤのピクチャをイントラ符号化又はインター符号化し得る。ベースレイヤフレームを符号化した後に、ビデオエンコーダ20は、次いで、第1のエンハンスメントレイヤフレームを符号化する(212)。図7に示す例によれば、ビデオエンコーダ20は第1のエンハンスメントレイヤフレームとして左視界ピクチャを符号化するが、他の例では、ビデオエンコーダ20は、第1のエンハンスメントレイヤフレームとして右視界ピクチャを符号化し得る。ビデオエンコーダ20は、第1のエンハンスメントレイヤフレームをイントラ符号化、インター符号化、レイヤ間(例えば、レイヤ間テクスチャ予測又はレイヤ間動き予測)符号化、又は視界間符号化し得る。ビデオエンコーダ20は、予測目的のための参照としてベースレイヤの対応する低解像度ピクチャ(例えば、左眼視界のピクチャ)を使用し得る。ビデオエンコーダ20がレイヤ間予測を使用して第1のエンハンスメントレイヤフレームを符号化する場合、ビデオエンコーダ20は、予測目的のために最初にベースレイヤフレームの左眼視界ピクチャをアップサンプリングし得る。代替的に、ビデオエンコーダ20が視界間予測を使用して第1のエンハンスメントレイヤフレームを符号化する場合、ビデオエンコーダ20は、予測目的のために最初にベースレイヤフレームの右眼視界ピクチャをアップサンプリングし得る。
第1のエンハンスメントレイヤフレームを符号化した後に、ビデオエンコーダ20は、次いで、第2のエンハンスメントレイヤフレームを符号化する(214)。図7に示す例によれば、ビデオエンコーダ20は第2のエンハンスメントレイヤフレームとして右視界ピクチャを符号化するが、他の例では、ビデオエンコーダ20は、第2のエンハンスメントレイヤフレームとして左視界ピクチャを符号化し得る。第1のエンハンスメントレイヤフレームと同様に、ビデオエンコーダ20は、第2のエンハンスメントレイヤフレームをイントラ符号化、インター符号化、レイヤ間(例えば、レイヤ間テクスチャ予測又はレイヤ間動き予測)符号化、又は視界間符号化し得る。ビデオエンコーダ20は、予測目的のための参照として、ベースレイヤフレームの対応するピクチャ(例えば、右眼視界のピクチャ)を使用して第2のエンハンスメントレイヤフレームを符号化し得る。例えば、ビデオエンコーダ20がレイヤ間予測を使用して第2のエンハンスメントレイヤフレームを符号化する場合、ビデオエンコーダ20は、予測目的のために最初にベースレイヤフレームの右眼視界ピクチャをアップサンプリングし得る。代替的に、ビデオエンコーダ20が視界間予測を使用して第2のエンハンスメントレイヤフレームを符号化する場合、ビデオエンコーダ20は、予測目的のために最初にベースレイヤフレームの左眼視界ピクチャをアップサンプリングし得る。
本開示の態様によれば、ビデオエンコーダ20は、更に(又は代替として)、第1のエンハンスメントレイヤフレームを使用して第2のエンハンスメントレイヤフレームを予測し得る。即ち、ビデオエンコーダは、予測目的のために第1のエンハンスメントレイヤを使用して第2のエンハンスメントレイヤフレームを視界間符号化し得る。
ビデオエンコーダ20は、次いで、符号化されたレイヤを出力する(216)。即ち、ビデオエンコーダ20は、ベースレイヤと、第1のエンハンスメントレイヤと、第2のエンハンスメントレイヤとからのフレームを含むスケーラブル多重視界ビットストリームを出力し得る。幾つかの例によれば、ビデオエンコーダ20、又はビデオエンコーダ20に結合されたユニットは、符号化されたレイヤをコンピュータ可読記憶媒体に記憶するか、符号化されたレイヤをブロードキャストするか、ネットワーク送信又はネットワークブロードキャストを介して符号化されたレイヤを送信するか、あるいは場合によっては符号化ビデオデータを与え得る。
また、ビデオエンコーダ20は、必ずしも、ベースレイヤフレームのフレームパッキング構成と、ビットストリームの各フレームのためのレイヤが与えられる順序とを示す情報を提供する必要がないことを理解されたい。幾つかの例では、ビデオエンコーダ20は、ビットストリーム全体について、単一セットの情報、例えば、SPS及びSEIメッセージを与え、ビットストリームの各フレームについてこの情報を示し得る。幾つかの例では、ビデオエンコーダ20は、周期的に、例えば、各ビデオフラグメント、ピクチャのグループ(GOP)、ビデオセグメント後に、一定数のフレームごとに、又は他の周期間隔でこの情報を提供し得る。ビデオエンコーダ20、又はビデオエンコーダ20に関連する別のユニットはまた、幾つかの例では、要求に応じて、例えば、SPS及びSEIメッセージについてのクライアント機器からの要求、又はビットストリームのヘッダデータについての一般的な要求に応答してSPS及びSEIメッセージを与え得る。
図8は、ベースレイヤと、第1のエンハンスメントレイヤと、第2のエンハンスメントレイヤとを有するスケーラブル多重視界ビットストリームを復号するための例示的な方法240を示すフローチャートである。図1及び図3の例示的な構成要素に関して一般的に説明するが、他のデコーダ、復号ユニット、及び復号機器が図8の方法を実行するように構成され得ることを理解されたい。その上、図8の方法のステップは必ずしも図8に示す順序で実行される必要はなく、より少ないか、追加であるか、又は代替であるステップが実行され得る。
初めに、ビデオデコーダ30が、特定の表現の潜在的な動作点の指示を受信する(242)。即ち、ビデオデコーダ30は、どのレイヤがスケーラブル多重視界ビットストリーム中で与えられるかの指示、及びそれらのレイヤの依存性を受信し得る。例えば、ビデオデコーダ30は、符号化ビデオデータに関する情報を提供するSPS、SEI、及びNALメッセージを受信し得る。幾つかの例では、ビデオデコーダ30は、符号化レイヤを受信する前に、ビットストリームのSPSメッセージを以前に受信していることがあり、その場合、ビデオデコーダ30は、符号化レイヤを受信する前にスケーラブル多重視界ビットストリームのレイヤをすでに決定していることがある。幾つかの例では、送信限定、例えば、伝送媒体の帯域幅制限又は限定により、幾つかの動作点が利用可能でなくなるようにエンハンスメントレイヤが劣化するか又は廃棄され得る。
ビデオデコーダ30を含むクライアント機器(例えば、図1の宛先機器14)はまた、それの復号及びレンダリング能力を決定する(244)。幾つかの例では、ビデオデコーダ30、又はビデオデコーダ30が設置されたクライアント機器は、3次元表現のためのピクチャを復号又はレンダリングする能力を有しないか、若しくはエンハンスメントレイヤの一方又は両方のためのピクチャを復号する能力を有しないことがある。更に他の例では、ネットワークの帯域幅可用性により、ベースレイヤと一方又は両方のエンハンスメントレイヤとの取出しが禁止され得る。従って、クライアント機器は、ビデオデコーダ30の復号能力、ビデオデコーダ30が設置されたクライアント機器のレンダリング能力、及び/又は現在のネットワーク状態に基づいて動作点を選択する(246)。幾つかの例では、クライアント機器は、ネットワーク状態を再評価し、新しいネットワーク状態に基づいて異なる動作点についてデータを要求するように構成され得、例えば、利用可能な帯域幅が増加するときは(一方又は両方のエンハンスメントレイヤなどの)さらなるデータを取り出し、若しくは利用可能な帯域幅が減少するときは(エンハンスメントレイヤのうちの1つのみ又はいずれもなしなどの)より少ないデータを取り出すように構成され得る。
動作点を選択した後に、ビデオデコーダ30はスケーラブル多重視界ビットストリームのベースレイヤを復号する(248)。例えば、ビデオデコーダ30は、ベースレイヤの左眼視界のピクチャと右眼視界のピクチャとを復号し、復号されたピクチャを分離し、それらのピクチャをフル解像度にアップサンプリングし得る。幾つかの例によれば、ビデオデコーダ30は、最初にベースレイヤの左眼視界のピクチャを復号し、その後、ベースレイヤの右眼視界のピクチャを復号し得る。ビデオデコーダ30が、復号されたベースレイヤを、構成ピクチャ、例えば、左眼視界のピクチャと右眼視界のピクチャとに分離した後、ビデオデコーダ30は、エンハンスメントレイヤを復号するための参照のために左眼視界ピクチャと右眼視界ピクチャとのコピーを記憶し得る。更に、ベースレイヤの左眼視界ピクチャと右眼視界ピクチャとは両方とも低解像度ピクチャであり得る。従って、ビデオデコーダ30は、左眼視界ピクチャと右眼視界ピクチャとのフル解像度バージョンを形成するために、例えば、消失した情報を補間することによって、左眼視界ピクチャと右眼視界ピクチャとをアップサンプリングし得る。
幾つかの例では、ビデオデコーダ30、又はビデオデコーダ30が設置された機器(例えば、図1に示す宛先機器14)が、エンハンスメントレイヤの一方又は両方を復号する能力を有しないことがある。他の例では、送信限定、例えば、伝送媒体の帯域幅制限又は限定により、エンハンスメントレイヤが劣化するか又は廃棄され得る。他の例では、ビデオ表示32が、2つの視界を提示する能力を有しない、例えば、3D対応でないことがある。従って、図8に示す例では、ビデオデコーダ30は、(ステップ246の)選択された動作点が、第1のエンハンスメントレイヤを復号することを含むかどうかを決定する(250)。
ビデオデコーダ30が第1のエンハンスメントレイヤを復号しないか、又は第1のエンハンスメントレイヤがもはやビットストリーム中に存在しない場合、ビデオデコーダ30は、ベースレイヤの左眼視界ピクチャと右眼視界ピクチャとをアップサンプリング(例えば、補間)し、左眼視界ピクチャと右眼視界ピクチャとのアップサンプリングされた表現をビデオ表示32に送り得、ビデオ表示32は、左眼視界ピクチャと右眼視界ピクチャとを同時又はほぼ同時に表示する(252)。別の例では、ビデオ表示32がステレオ(例えば、3D)コンテンツを表示することが可能でない場合、ビデオデコーダ30又はビデオ表示32は、表示より前に左眼視界ピクチャ又は右眼視界ピクチャを廃棄し得る。
しかしながら、ビデオデコーダ30は第1のエンハンスメントレイヤを復号する(254)。上記の図3に関して説明したように、ビデオデコーダ30は、ビデオデコーダ30が第1のエンハンスメントレイヤを復号するのを支援するためのシンタックスを受信し得る。例えば、ビデオデコーダ30は、第1のエンハンスメントレイヤを符号化するために、イントラ予測が使用されたか、インター予測が使用されたか、レイヤ間(例えば、テクスチャ又は動き)予測が使用されたか、又は視界間予測が使用されたかを決定し得る。ビデオデコーダ30は、次いで、それに応じて第1のエンハンスメントレイヤを復号し得る。本開示の幾つかの態様によれば、ビデオデコーダ30は、第1のエンハンスメントレイヤを復号する前にベースレイヤの対応するピクチャをアップサンプリングし得る。
上記で説明したように、ビデオデコーダ30、又はビデオデコーダ30が設置された機器は、エンハンスメントレイヤの両方を復号する能力を有しないか、又は送信限定により第2のエンハンスメントレイヤが劣化するか又は廃棄されることがある。従って、第1のエンハンスメントレイヤを復号した後に、ビデオデコーダ30は、選択された動作点(ステップ246)が、第2のエンハンスメントレイヤを復号することを含むかどうかを決定する(256)。
ビデオデコーダ30が第2のエンハンスメントレイヤを復号しないか、又は第2のエンハンスメントレイヤがもはやビットストリーム中に存在しない場合、ビデオデコーダ30は、第1のエンハンスメントレイヤに関連しないベースレイヤのピクチャを廃棄し、第1のエンハンスメントレイヤに関連するピクチャを表示32に送る(258)。即ち、ステレオコンテンツを表示することが可能でないビデオ表示32の場合、ビデオデコーダ30又はビデオ表示32は、表示より前に第1のエンハンスメントレイヤに関連しないベースレイヤのピクチャを廃棄し得る。例えば、第1のエンハンスメントレイヤがフル解像度左眼視界ピクチャを含む場合、ビデオデコーダ30又は表示32は、表示より前にベースレイヤの右眼視界ピクチャを廃棄し得る。代替的に、第1のエンハンスメントレイヤがフル解像度右眼視界ピクチャを含む場合、ビデオデコーダ30又は表示32は、表示より前にベースレイヤの左眼視界ピクチャを廃棄し得る。
別の例では、ビデオデコーダ20が第2のエンハンスメントレイヤを復号しないか、又は第2のエンハンスメントレイヤがもはやビットストリーム中に存在しない場合、ビデオデコーダ30は、(例えば、ベースレイヤからの)1つのアップサンプリングされたピクチャと、(例えば、エンハンスメントレイヤからの)1つのフル解像度ピクチャとを表示32に送り得、表示32は、左眼視界ピクチャと右眼視界ピクチャとを同時又はほぼ同時に表示し得る。即ち、第1のエンハンスメントレイヤが左視界ピクチャに対応する場合、ビデオデコーダ30は、第1のエンハンスメントレイヤからのフル解像度左視界ピクチャと、ベースレイヤからのアップサンプリングされた右視界ピクチャとを表示32に送り得る。代替的に、第1のエンハンスメントレイヤが右視界ピクチャに対応する場合、ビデオデコーダ30は、第1のエンハンスメントレイヤからのフル解像度右視界ピクチャと、ベースレイヤからのアップサンプリングされた左視界ピクチャとを表示32に送り得る。表示32は、1つのフル解像度ピクチャと、1つのアップサンプリングされたピクチャとを同時又はほぼ同時に提示し得る。
しかしながら、ビデオデコーダ30は第2のエンハンスメントレイヤを復号する(260)。上記の図3に関して説明したように、ビデオデコーダ30は、ビデオデコーダ30が第2のエンハンスメントレイヤを復号するのを支援するためのシンタックスを受信し得る。例えば、ビデオデコーダ30は、第2のエンハンスメントレイヤを符号化するために、イントラ予測が使用されたか、インター予測が使用されたか、レイヤ間(例えば、テクスチャ又は動き)予測が使用されたか、又は視界間予測が使用されたかを決定し得る。ビデオデコーダ30は、次いで、それに応じて第2のエンハンスメントレイヤを復号し得る。本開示の幾つかの態様によれば、ビデオデコーダ30は、第1のエンハンスメントレイヤを復号する前にベースレイヤの対応する復号ピクチャをアップサンプリングし得る。代替的に、第2のエンハンスメントレイヤが第1のエンハンスメントレイヤに基づいて予測されたとデコーダ30が決定した場合、デコーダ30は、第2のエンハンスメントレイヤを復号するとき、復号された第1のエンハンスメントレイヤを使用し得る。
第1のエンハンスメントレイヤ(254)と第2のエンハンスメントレイヤ(260)の両方を復号した後に、ビデオデコーダ30は、エンハンスメントレイヤからのフル解像度左視界ピクチャとフル解像度右視界ピクチャの両方を表示32に送り得る。表示32は、フル解像度左視界ピクチャとフル解像度右視界ピクチャとを同時又はほぼ同時に提示する(262)。
幾つかの例では、ビデオデコーダ30、又はビデオデコーダ30が設置された機器(例えば、図1に示す宛先機器14)は3次元ビデオ再生が可能でないことがある。そのような例では、ビデオデコーダ30は両方のピクチャを復号し得ない。即ち、デコーダ30は、単にベースレイヤの左眼視界ピクチャを復号し、ベースレイヤの右眼視界ピクチャをスキップ(例えば、廃棄)し得る。更に、ビデオデコーダ30は、ベースレイヤの復号された視界に対応するエンハンスメントレイヤのみを復号し得る。このようにして、機器は、機器が3次元ビデオデータを復号及び/又はレンダリングすることが可能であるか否かにかかわらず、スケーラブル多重視界ビットストリームを受信し、復号することが可能であり得る。
ビデオエンコーダとビデオデコーダとに関して一般的に説明したが、本開示の技法は他の機器及び符号化ユニットにおいて実装され得る。例えば、ベースレイヤと、第1のエンハンスメントレイヤと、第2のエンハンスメントレイヤとを含むスケーラブル多重視界ビットストリームを形成するための技法は、2つの別個の相補型ビットストリームを受信し、ベースレイヤと、第1のエンハンスメントレイヤと、第2のエンハンスメントレイヤとを含む単一のビットストリームを形成するためにこれらの2つのビットストリームをトランスコードするように構成されたトランスコーダによって実行され得る。別の例として、スケーラブル多重視界ビットストリームを分解するための技法は、ベースレイヤと、第1のエンハンスメントレイヤと、第2のエンハンスメントレイヤとを含むビットストリームを受信し、各々がそれぞれの視界の符号化ビデオデータを含む、ベースレイヤのそれぞれの視界に対応する2つの別個のビットストリームを生成するように構成されたトランスコーダによって実行され得る。
1つ以上の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つ以上の命令又はコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、例えば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体又は通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、あるいは(2)信号又は搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コード及び/又はデータ構造を取り出すために1つ以上のコンピュータあるいは1つ以上のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD−ROM又は他の光ディスクストレージ、磁気ディスクストレージ、又は他の磁気ストレージ機器、フラッシュメモリ、あるいは命令又はデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。例えば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、又は赤外線、無線、及びマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、又は他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、又は赤外線、無線、及びマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。但し、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)及びディスク(disc)は、コンパクトディスク(disc)(CD)、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)及びブルーレイ(登録商標)ディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)はデータをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
命令は、1つ以上のデジタル信号プロセッサ(DSP)などの1つ以上のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路又はディスクリート論理回路によって実行され得る。従って、本明細書で使用する「プロセッサ」という用語は、前述の構造、又は本明細書で説明した技法の実装に好適な他の構造のいずれかを指し得る。更に、幾つかの態様では、本明細書で説明した機能は、符号化及び復号のために構成された専用のハードウェア及び/又はソフトウェアモジュール内に与えられ得、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つ以上の回路又は論理要素中に十分に実装され得る。
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)又はICのセット(例えば、チップセット)を含む、多種多様な機器又は装置において実施され得る。本開示では、開示する技法を実行するように構成された機器の機能的態様を強調するために様々な構成要素、モジュール、又はユニットについて説明したが、それらの構成要素、モジュール、又はユニットを、必ずしも異なるハードウェアユニットによって実現する必要はない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェア及び/又はファームウェアと共に、上記で説明したように1つ以上のプロセッサを含んで、コーデックハードウェアユニットにおいて組み合わせられるか、又は相互動作ハードウェアユニットの集合によって与えられ得る。