本出願は、参照により本明細書に組み込まれている、名称がすべて「Simplified Intra Modes Signaling of Depth Maps for 3D−HEVC」である、2013年3月27日に出願した米国仮特許出願第61/805,901号、2013年3月27日に出願した米国仮特許出願第61/805,922号、2013年4月11日に出願した米国仮特許出願第61/811,103号、2013年10月14日に出願した米国仮特許出願第61/890,629号、および2013年10月16日に出願した米国仮特許出願第61/891,816号の利益を主張するものである。
[0034]一般に、本開示は、高効率ビデオコーディング(HEVC)コーディングモードと異なる深度コーディングモードを使用してマルチビュー・プラス・深度フォーマットで表される3次元(3D)ビデオデータに対する深度データを符号化し、復号するための技術に関するものである。マルチビュー・プラス・深度フォーマットでは、3Dビデオデータのキャプチャされたビュー(たとえば、テクスチャ)は、テクスチャデータに対する深度データを記述する対応する深度マップに関連付けられる。3D−HEVCプロセスなどの、3Dビデオコーディングプロセスに従って、テクスチャビューおよび深度マップがコーディングされ、3Dビデオビットストリームに多重化され得る。深度マップは、ルーマサンプルが深度値を表すグレースケールビデオとしてコーディングされ得る。言い換えれば、テクスチャビューの残差値は、グレースケール値にマッピングされ、深度マップの残差値は、ゼロディスパリティ平面に関するグレースケール値に対応する深度値にマッピングされる。
[0035]深度マップは、対応するテクスチャとの強い相関を提示する一定のエリアとシャープエッジとによって特徴付けられる。HEVC規格におけるモードのような、従来のインターコーディングおよびイントラコーディングモードは、深度マップをコーディングするために使用され得るが、テクスチャと対応する深度との間の統計量および相関が異なることにより、深度マップに対して追加の予測モードが設計されている。追加の深度イントラコーディングモードの例は、深度モデリングモード(DMM:Depth Modeling Mode)、簡略深度コーディング(SDC:Simplified Depth Coding)モード、およびチェーンコーディングモード(CCM:Chain Coding Mode)を含む。それに加えて、追加の深度インターコーディングモードの一例は、インターSDCモードを含む。
[0036]DDMは、複数のサブモードを含み得る。一図解例において、DMMは、本開示では、DMM_1、DMM_2、DMM_3、およびDMM_4と称される4つのサブモードを含む。深度サブモードの4つすべてにおいて、深度ブロックは、DMMパターンによって指定された2つの領域に区分され、それぞれの領域は、定数値で表される。DMMにおいて定義された2つの区分モデルがあり、これは、深度ブロックが直線によって2つの領域に区分されるウェッジレット区分と、深度ブロックが2つの不規則な領域への区分である輪郭区分(Contour Partitioning)とを含む。DMMウェッジレット区分パターンは、明示的にシグナリングされる(DMM_1)、空間的近傍ブロックによって予測される(DMM_2)、または同じ所に配置されている(co-located)テクスチャブロックによって予測される(DMM_3)、のいずれかであるものとしてよい。DMM輪郭区分パターンは、同じ所に配置されているテクスチャブロック(DMM_4)によって予測され得る。他の例では、DDMは、深度サブモードの異なる数、すなわち、4より多い、または少ない数を定義することができる。
[0037]SDCも、複数のサブモードを含み得る。たとえば、SDCモードは、本開示では、SDCM_DC、SDCM_DMM_1、およびSDCM_Planarと称される3つのサブモードを含み得る。SDCモードでは、量子化された変換係数をコーディングする代わりに、深度ブロックが、区分のタイプ、たとえば、単一のDC区分、2つのDMM_1区分、または単一の平面区分、および各区分に対する残差値としてシグナリングされる。インターSDCモードでは、SDCモードの概念は、単一の固有区分(single unique partition)を含む各深度ブロックに対してただ1つのDC残差値をコーディングすることによって深度インターコーディングに対してさらに拡張される。本開示では、もっぱら、SDCモードを簡略深度コーディング(SDC:Simplified Depth Coding)モードと称しているけれども、他の例では、SDCは、セグメンテーションワイズDCコーディング(Segmentation-wise DC Coding)(SDC)モードと称される場合がある。他の例では、SCDモードは、深度サブモードの異なる数、すなわち、3より多い、または少ない数を定義し得る。
[0038]CCMでは、深度ブロックは、「チェーン」を使用してシグナリングされる任意の区分パターンによって指定された2つの領域に区分される。チェーンは、サンプルとその8接続性サンプル(eight-connectivity sample)のうちの1つとの間の接続である。各チェーンは、方向インデックスに関連付けられ、一連の接続されたチェーンインデックス(connected chain index)は、区分パターンを定義するためにシグナリングされる。深度イントラコーディングモードおよび深度インターコーディングモードに対する深度データのシグナリングについて、以下でより詳しく説明される。
[0039]一例において、本開示の技術は、深度モデリングテーブル内の3Dビデオデータに対して深度マップをコーディングするために使用される深度イントラコーディングモードをシグナリングすることを含む。深度イントラコーディングモードは、DMM、SDCモード、およびCCMのうちの2つまたはそれ以上を含み得る。深度モデリングテーブルは、HEVCイントラコーディングモードに対するシンタックスから分離している追加の深度イントラコーディングモードに対するシンタックスをシグナリングする。それに加えて、これらの技術は、HEVCイントラコーディングモードと異なる深度イントラコーディングモードのうちのどれかが3Dビデオデータに対してイネーブルにされているかどうかを指示するためにフラグなどのシンタックス要素をシグナリングすることを含む。深度イントラコーディングモードがイネーブルにされるときに(すなわち、シグナリングされたシンタックス要素が、深度イントラコーディングモードのうちの少なくとも1つが3Dビデオデータに対してイネーブルにされていることを指示するときに)、ビデオデコーダは、深度モデリングテーブルを復号し、深度データをコーディングするために使用される深度イントラコーディングモードのうちの1つを決定する。本開示の技術は、HEVCイントラコーディングモードから分離している深度モデリングテーブル内で深度イントラコーディングモードをシグナリングすることと、深度イントラコーディングモードがイネーブルにされ、深度モデリングテーブルが復号されるべきときを指示することとによってデコーダの解析の負担を軽減することができる。
[0040]別の例において、本開示の技術は、深度コーディングモードのうちの2つまたはそれ以上にまたがって3Dビデオデータに対する深度マップの残差情報のシグナリングを統合することを含む。深度イントラコーディングモードは、DMM、SDCモード、インターSDCモード、およびCCMのうちの2つまたはそれ以上を含み得る。シンタックス要素の統合されたセットは、深度コーディングモードのうちのどれかに対して残差値がコーディングされるかどうかを指示するシンタックス要素を含み得る。シンタックス要素の統合されたセットは、深度コーディングモードのうちのどれかに対する残差値の絶対値と符号とを指示するシンタックス要素も含み得る。深度コーディングモードの2つまたはそれ以上について残差情報を指示するためにシンタックス要素の同じセットを共有することによって、シンタックス要素に対するコンテキストモデル選択および2値化方法も統合され得る。それに加えて、深度イントラモードについて、近傍参照サンプルは、残差値と称されるイントラ予測サンプルの生成時に、または残差値に基づく深度値の再構築時に、フィルタリングされ得ない。本開示の技術は、深度コーディングモードに対する残差情報コーディングメカニズムを統合することによって、デコーダの解析の負担を軽減し、必要なコンテキストモデルおよび2値化方法の数を減らすことができる。
[0041]図1は、深度データコーディングに対して本開示の技術を利用することができる例示的なビデオ符号化および復号システム10を示すブロック図である。図1に示されているように、システム10は、デスティネーションデバイス14によって後から復号されるべき符号化されたビデオデータを提供するソースデバイス12を備える。特に、ソースデバイス12は、コンピュータ可読媒体16を介してビデオデータをデスティネーションデバイス14に送る。ソースデバイス12およびデスティネーションデバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話送受器、いわゆる「スマート」パッド、テレビジョン、カメラ、表示デバイス、デジタルメディアプレーヤー、ビデオゲーム機、ビデオストリーミングデバイス、または同様のものを含む、広範なデバイスのうちのどれかを備えるものとしてよい。いくつかの場合において、ソースデバイス12およびデスティネーションデバイス14は、ワイヤレス通信に適する装備を有し得る。
[0042]デスティネーションデバイス14は、コンピュータ可読媒体16を介して復号されるべき符号化されたビデオデータを受信することができる。コンピュータ可読媒体16は、符号化されたビデオデータをソースデバイス12からデスティネーションデバイス14に移動することができるどれかの種類の媒体またはデバイスを備えることができる。一例において、コンピュータ可読媒体16は、ソースデバイス12が符号化されたビデオデータを直接、デスティネーションデバイス14にリアルタイムで送信することを可能にするための通信媒体を備えることができる。
[0043]符号化されたビデオデータは、ワイヤレス通信プロトコルなどの、通信規格に従って変調され、デスティネーションデバイス14に送信され得る。通信媒体は、高周波(RF)スペクトルなどのワイヤレスもしくは有線通信媒体、または1つまたは複数の物理的伝送路を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどの、パケットベースのネットワークの一部をなすものとしてよい。通信媒体は、ルーター、スイッチ、基地局、またはソースデバイス12からデスティネーションデバイス14への通信を円滑にするために役立ち得る他の任意の機器を含み得る。
[0044]いくつかの例では、符号化されたデータは、出力インターフェース22からストレージデバイスに出力され得る。同様に、符号化されたデータは、入力インターフェースによってストレージデバイスからアクセスされ得る。ストレージデバイスは、ハードドライブ、ブルーレイ(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または符号化されたビデオデータを記憶するための他の任意の好適なデジタル記憶媒体などの、様々な分散型の、またはローカルでアクセスされる、データ記憶媒体のうちのどれかを含み得る。さらなる例では、ストレージデバイスは、ソースデバイス12によって生成された符号化されたビデオデータを記憶することができるファイルサーバもしくは別の中間ストレージデバイスに対応し得る。
[0045] デスティネーションデバイス14は、ストリーミングまたはダウンロードを介してストレージデバイスから記憶されているビデオデータにアクセスすることができる。ファイルサーバは、符号化されたビデオデータを記憶し、その符号化されたビデオデータをデスティネーションデバイス14に送信することができる任意の種類のサーバとすることができる。例示的なファイルサーバは、ウェブサーバ(たとえば、ウェブサイト用)、FTPサーバ、ネットワークアタッチトストレージ(NAS)デバイス、またはローカルディスクドライブを含む。デスティネーションデバイス14は、インターネット接続を含む、任意の標準的なデータ接続を通じて符号化されたビデオデータにアクセスすることができる。これは、ワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、有線接続(たとえば、DSL、ケーブルモデムなど)、またはファイルサーバ上に記憶されている符号化されたビデオデータにアクセスするのに適している両方の組合せを含み得る。ストレージデバイスからの符号化されたビデオデータの伝送は、ストリーミング伝送、ダウンロード伝送、またはこれらの組合せであってよい。
[0046]本開示の技術は、ワイヤレスアプリケーションまたは設定に必ずしも制限されない。これらの技術は、オーバーザエアテレビ放送、ケーブルテレビ伝送、衛星テレビ伝送、動的適応型HTTPストリーミング(DASH)などのインターネットストリーミングビデオ伝送、データ記憶媒体上に符号化されるデジタルビデオ、データ記憶媒体上に記憶されているデジタルビデオの復号、または他のアプリケーションなどの様々なマルチメディアアプリケーションのうちのどれかをサポートするビデオコーディングに適用され得る。いくつかの例において、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオ電話などのサポートアプリケーションへの一方向または双方向ビデオ伝送をサポートするように構成され得る。
[0047]図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。デスティネーションデバイス14は、入力インターフェース28と、ビデオデコーダ30と、表示デバイス32とを含む。本開示によれば、ソースデバイス12のビデオエンコーダ20は、マルチビューコーディングにおける動きベクトル予測にこれらの技術を適用するように構成され得る。他の例では、ソースデバイスおよびデスティネーションデバイスは、他のコンポーネントまたは配置構成を含み得る。たとえば、ソースデバイス12は、外部カメラなどの、外部ビデオソース18からビデオデータを受信し得る。同様に、デスティネーションデバイス14は、一体型表示デバイスを含むのではなく、むしろ、外部表示デバイスとインターフェースし得る。
[0048]図1の図示されているシステム10は、単なる一例である。深度データコーディングに対する技術は、デジタルビデオ符号化および/または復号デバイスによって実行され得る。一般的に本開示の技術はビデオ符号化デバイスによって実行されるけれども、これらの技術は、典型的には「CODEC(コーデック)」と称される、ビデオエンコーダ/デコーダによっても実行され得る。さらに、本開示の技術は、ビデオプリプロセッサによっても実行され得る。ソースデバイス12およびデスティネーションデバイス14は、ソースデバイス12がデスティネーションデバイス14への伝送のためのコーディングされたビデオデータを生成するそのようなコーディングデバイスの単なる一例にすぎない。いくつかの例において、デバイス12、14は、デバイス12、14の各々がビデオ符号化および復号コンポーネントを含むように実質的に対称的な仕方で動作し得る。したがって、システム10は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオ電話に対するビデオデバイス12、14の間の一方向または双方向のビデオ伝送をサポートし得る。
[0049]ソースデバイス12のビデオソース18は、ビデオカメラ、すでにキャプチャされているビデオを収容しているビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオ受信するためのビデオフィードインターフェースなどの、ビデオキャプチャデバイスを含み得る。さらなる代替として、ビデオソース18は、コンピュータグラフィックスベースのデータを、ソースビデオ、またはライブビデオ、アーカイブビデオ、およびコンピュータ生成ビデオの組合せとして生成することができる。いくつかの場合において、ビデオソース18がビデオカメラである場合、ソースデバイス12およびデスティネーションデバイス14は、いわゆるカメラフォンまたはビデオフォンを形成し得る。しかし、上で述べられているように、本開示で説明されている技術は、一般にビデオコーディングに適用可能であるものとしてよく、またワイヤレスおよび/または有線アプリケーションに適用され得る。各場合において、キャプチャされた、事前キャプチャされた、またはコンピュータ生成のビデオは、ビデオエンコーダ20によって符号化され得る。次いで、符号化されたビデオ情報は、出力インターフェース22によってコンピュータ可読媒体16上に出力され得る。
[0050]コンピュータ可読媒体16は、ワイヤレス放送もしくは有線ネットワーク伝送などの、一時的媒体、またはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、ブルーレイディスク、または他のコンピュータ可読媒体などの、記憶媒体(すなわち、非一時的記憶媒体)を含み得る。いくつかの例では、ネットワークサーバ(図示せず)は、ソースデバイス12から符号化されたビデオデータを受信し、符号化されたビデオデータを、たとえば、ネットワーク伝送を介して、デスティネーションデバイス14に送ることができる。同様に、ディスクスタンピング設備などの、媒体生産設備のコンピューティングデバイスは、ソースデバイス12から符号化されたビデオデータを受信し、符号化されたビデオデータを収容しているディスクを生産することができる。したがって、コンピュータ可読媒体16は、様々な例において、様々な形態の1つまたは複数のコンピュータ可読媒体を含むものと理解され得る。
[0051]本開示では、一般的に、ビデオエンコーダ20がビデオデコーダ30などの別のデバイスに特定の情報を「シグナリング」すると称することがある。しかし、ビデオエンコーダ20は、特定のいくつかのシンタックス要素をビデオデータの様々な符号化された部分と関連付けることによって情報をシグナリングし得ると理解されるべきである。すなわち、ビデオエンコーダ20は、特定のいくつかのシンタックス要素をビデオデータの様々な符号化された部分のヘッダに記憶することによってデータを「シグナリング」することができる。いくつかの場合において、そのようなシンタックス要素は、ビデオデコーダ30によって受信され、復号される前に符号化され記憶され得る(たとえば、コンピュータ可読媒体16に記憶され得る)。したがって、「シグナリング」という用語は、一般的に、符号化の時点においてシンタックス要素を媒体に記憶するときに生じる可能性があり、次いでこの媒体に記憶された後の任意の時点において復号デバイスによって取り出され得るような、圧縮されたビデオデータを復号するためのシンタックスまたは他のデータ通信を、そのような通信がリアルタイムまたはほぼリアルタイムで、またはある時間範囲にわたって生じるかどうかに関係なく、指すものとしてよい。
[0052]デスティネーションデバイス14の入力インターフェース28は、コンピュータ可読媒体16から情報を受信する。コンピュータ可読媒体16の情報は、ブロックおよび他のコーディングされたユニットの特性および/または処理を記述するシンタックス要素、たとえば、GOPを含む、これもまたビデオデコーダ30によって使用される、ビデオエンコーダ20によって定義されたシンタックス情報を含み得る。表示デバイス32は、復号されたビデオデータをユーザに表示し、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別の種類の表示デバイスなどの、様々な表示デバイスのうちのどれかを備えることができる。
[0053] 図1には示されていないけれども、いくつかの態様において、ビデオエンコーダ20およびビデオデコーダ30は、オーディオエンコーダとデコーダとに各々一体化され、共通データストリームまたは分離しているデータストリーム内のオーディオとビデオの両方の符号化を処理するための適切なMUX−DEMUXユニット、または他のハードウェアとソフトウェアとを含み得る。該当する場合、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠するものとしてよい。
[0054]ビデオエンコーダ20およびビデオデコーダ30は、各々、1つまたは複数のマイクロプロセッサ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリートロジック回路、ソフトウェア、ハードウェア、ファームウェア、またはこれらの任意の組合せなどの、様々な好適なエンコーダもしくはデコーダ回路のうちのどれかとして、適宜実装され得る。動画像エンコーダ20および動画像デコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダに含まれるものとすることもでき、これらのいずれかが組み合わされた動画像エンコーダ/デコーダ(CODEC)の一部として一体化され得る。ビデオエンコーダ20および/またはビデオデコーダ30を含むデバイスは、集積回路、マイクロプロセッサ、および/または携帯電話などのワイヤレス通信デバイスを備えるものとしてよい。
[0055]ビデオエンコーダ20およびビデオデコーダ30は、いくつかの例において、3D−HEVCなどのビデオコーディング規格に従って動作するものとしてよく、HEVCテストモデル(HM)に準拠するものとしてよい。HEVCは、ITU−Tビデオコーディングエキスパートグループ(VCEG)とISO/IECモーションピクチャエキスパートグループ(MPEG)とのビデオコーディングに関する共同コラボレーションチーム(JCT−VC)によって開発された。HEVCのドラフト(Brossら、「High Efficiency Video Coding (HEVC) text specification draft 10 (for FDIS & Last Call)」、JCT−VC of ITU−T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11、第12回会合:Geneva、CH、2013年1月14日〜23日、JCTVC−L1003)は、http://phenix.int−evry.fr/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC−L1003−v34.zipから入手可能である。
[0056]HEVC規格化の取り組みは、HEVCテストモデル(HM)と呼ばれるビデオコーディングデバイスの発展的モデルに基づいていた。HMでは、たとえば、ITU−T H.264/AVCによる既存のデバイスに関してビデオコーディングデバイスの複数の追加の能力を想定している。たとえば、H.264では、9つのイントラ予測符号化モードを提供するのに対して、HMでは、35ほどのイントラ予測符号化モードを提供し得る。
[0057]一般に、HMの作業モデルは、ビデオピクチャ(または「フレーム」)が、ルーマとクロマの両方のサンプルを含むツリーブロックまたは最大のコーディングユニット(LCU)のシーケンスに分割され得る。ビットストリーム内のシンタックスデータは、ピクセルの数に関して最大のコーディングユニットである、LCUに対するサイズを定義することができる。スライスは、コーディング順序で連続する多数のツリーブロックを含む。ピクチャは、1つまたは複数のスライスに区分され得る。各ツリーブロックは、四分木に従ってコーディングユニット(CU)にスプリットされ得る。一般に、四分木データ構造は、CUごとに1つのノードを含み、ルートノードがツリーブロックに対応している。CUが4つのサブCUにスプリットされる場合、そのCUに対応するノードは、4つのリーフノードを含み、各々サブCUのうちの1つに対応する。
[0058]四分木データ構造の各ノードは、対応するCUに対するシンタックスデータを提供し得る。たとえば、四分木内のノードは、そのノードに対応するCUがサブCUにスプリットされるかどうかを指示する、スプリットフラグを含み得る。CUに対するシンタックス要素は、再帰的に定義され、CUがサブCUにスプリットされるかどうかに依存し得る。CUがさらにスプリットされることがない場合には、リーフCUと称される。本開示では、リーフCUの4つのサブCUも、元のリーフCUの明示的なスプリットがない場合でもリーフCUと称される。たとえば、CUが16×16のサイズではさらにスプリットされない場合、4つの8×8のサブCUも、16×16のCUが決してスプリットされなかったけれどもリーフCUと称される。
[0059]CUは、CUにサイズの区別がないことを除き、H.264規格のマクロブロックと類似の目的を有する。たとえば、ツリーブロックは、4つの子ノード(サブCUとも称される)にスプリットされ、次いで、各子ノードは親ノードとなり、別の4つの子ノードにスプリットされ得る。四分木のリーフノードと称される、最終的な、未スプリットの子ノードは、リーフCUとも称される、コーディングノードを備える。コーディングされたビットストリームに関連付けられているシンタックスデータは、最大CU深度と称される、ツリーブロックがスプリットされ得る最大回数を定義し、またコーディングノードの最小サイズも定義し得る。したがって、ビットストリームは、最小のコーディングユニット(SCU)も定義し得る。本開示では、「ブロック」という用語を用いて、HEVCの文脈におけるCU、PU、もしくはTUのどれか、または他の規格の文脈における類似のデータ構造(たとえば、H.264/AVCにおけるマクロブロックおよびそのサブブロック)を指す。
[0060]CUは、コーディングノードと予測ユニット(PU)とコーディングノードに関連付けられている変換ユニット(TU)を含む。CUのサイズは、コーディングノードのサイズに対応しており、形状は正方形でなければならない。CUのサイズは、8×8ピクセルからツリーブロックのサイズまでの範囲内であり、最大は64×64ピクセル以上であってよい。各CUは、1つまたは複数のPUと1つまたは複数のTUとを含み得る。CUに関連付けられているシンタックスデータは、たとえば、CUを1つまたは複数のPUに区分することを記述する。区分モードは、CUがスキップもしくは直接モード符号化されるか、イントラ予測モード符号化されるか、またはインター予測モード符号化されるかどうかで異なり得る。PUは、非正方形の形状に区分され得る。CUに関連付けられているシンタックスデータは、たとえば、四分木に従ってCUを1つまたは複数のTUに区分することも記述する。TUは、正方形または非正方形(たとえば、矩形)の形状とすることができる。
[0061]HEVC規格では、異なるCUに対して異なり得る、TUに従った変換を可能にする。イントラモードでは、TUは、典型的には、区分されたLCUについて定義されている与えられたCU内のPUのサイズに基づいているが、これはいつもそうであるとは限らない。TUは、典型的には、PUと同じか、またはPUよりも小さいサイズである。インターモードでは、TUは、PUよりも大きいこともあり得る。いくつかの例では、CUに対応する残差サンプルは、「残差四分木」(RQT)として知られている四分木構造を使用してより小さいユニットに細分され得る。RQTのリーフノードは、変換ユニット(TU)と称され得る。TUに関連付けられているピクセル差分値は、変換係数を生成するように変換されるものとしてよく、これは量子化され得る。
[0062]リーフCUは、1つまたは複数の予測ユニット(PU)を含み得る。一般に、PUは、対応するCUの全部または一部に対応する空間的エリアを表し、PUに対する参照サンプルを取り出すためのデータを含み得る。さらに、PUは、予測に関係するデータを含む。たとえば、PUが、イントラモード符号化されるときに、PUに対するデータは、PUに対応するTUに対するイントラ予測モードを記述するデータを含み得る、残差四分木(RQT)に含まれ得る。別の例として、PUが、インターモード符号化されるときに、PUは、PUに対する1つまたは複数の動きベクトルを定義するデータを含み得る。PUに対する動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの分解能(たとえば、1/4ピクセル精度または1/8ピクセル精度)、動きベクトルが指す参照ピクチャ、および/または動きベクトルに対する参照ピクチャリスト(たとえば、List 0、List 1、またはList C)を記述し得る。
[0063]1つまたは複数のPUを有するリーフCUは、1つまたは複数の変換ユニット(TU)も含み得る。変換ユニットは、上で説明されているように、RQT(TU4分木構造とも称される)RQTを使用して指定され得る。たとえば、スプリットフラグは、リーフCUが4つの変換ユニットにスプリットされるかどうかを指示することができる。次いで、各変換ユニットは、さらなるサブTUにさらにスプリットされ得る。TUがさらにスプリットされることがない場合には、これはリーフTUと称され得る。一般的に、イントラコーディングでは、リーフCUに属すすべてのリーフTUは、同じイントラ予測モードを共有する。すなわち、同じイントラ予測モードは、一般的に、リーフCUのすべてのTUに対する予測値を計算するために適用される。イントラコーディングでは、ビデオエンコーダ20が、TUに対応するCUの部分と元のブロックとの間の差として、イントラ予測モードを使用して各リーフTUに対する残差値を計算することができる。TUは、PUのサイズに必ずしも制限されない。したがって、TUは、PUよりも大きい場合も、小さい場合もある。イントラコーディングでは、PUは、同じCUに対する対応するリーフTUと同じ所に配置され(co-located)得る。いくつかの例では、リーフTUの最大サイズは、対応するリーフCUのサイズに対応し得る。
[0064]さらに、リーフCUのTUは、残差四分木(RQT)と称される、各四分木データ構造にも関連付けられ得る。すなわち、リーフCUは、リーフCUがTUにどのように区分されるかを指示する四分木を含み得る。TU四分木のルートノードは、リーフCUに一般的に対応するが、CU四分木のルートノードは、ツリーブロック(またはLCU)に一般的に対応する。スプリットされないRQTのTUは、リーフTUと称される。一般に、本開示では、断りのない限り、CUおよびTUという用語を使用して、リーフCUおよびリーフTUをそれぞれ指す。
[0065]ビデオシーケンスは、典型的には、一連のピクチャを含む。本明細書で説明されているように、「ピクチャ」および「フレーム」という用語は互いに入れ替えて使用され得る。すなわち、ビデオデータを含むピクチャは、ビデオフレーム、または単に「フレーム」と称され得る。ピクチャのグループ(GOP)は、一般的に、ビデオピクチャのうちの1つまたは複数からなる一連のビデオピクチャを備える。GOPは、シンタックスデータを、GOPのヘッダ内に、または1つまたは複数のピクチャのヘッダ内に、または他の所に含み得る。ピクチャの各スライスは、それぞれのスライスに対する符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ20は、典型的には、ビデオデータを符号化するために個別のビデオスライス内のビデオブロック上で動作する。ビデオブロックは、CU内のコーディングノードに対応し得る。ビデオブロックは、固定または可変サイズを有するものとしてよく、指定されたコーディング規格に従ってサイズが異なり得る。
[0066]一例として、HMは、様々なPUサイズの予測をサポートする。特定のCUに対するサイズが2N×2Nであると仮定すると、HMは、2N×2NまたはN×NのPUサイズのイントラ予測と、2N×2N、2N×N、N×2N、またはNxNの対称的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を指す。
[0067]本開示では、「N×N」と「N by N」は、入れ替えて使用することができ、たとえば、「16×16ピクセル」または「16 by 16 ピクセル」のように、垂直と水平の寸法に関するビデオブロックのピクセル寸法を指す。一般に、16×16ブロックは、垂直方向に16個のピクセル(y=16)、水平方向に16個のピクセル(x=16)を有する。同様に、N×Nブロックは、一般的に、垂直方向にN個のピクセル、水平方向にN個のピクセルを有し、Nは非負整数値を表す。ブロック内のピクセルは、行と列とに配置され得る。さらに、ブロックは、必ずしも、垂直方向のピクセルの数と同じ数のピクセルを水平方向でも有している必要はない。たとえば、ブロックは、N×Mピクセルを備えることができ、Mは必ずしもNに等しくない。
[0068]CUのPUを使用するイントラ予測またはインター予測コーディングに続いて、ビデオエンコーダ20は、CUのTUに対する残差データを計算することができる。PUは、空間領域(ピクセル領域とも称される)内の予測ピクセルデータを生成する方法またはモードを記述するシンタックスデータを備えるものとしてよく、TUは、変換、たとえば、離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または残差ビデオデータへの概念上類似する変換の適用の後の変換領域内の係数を備えるものとしてよい。残差データは、符号化されていないピクチャのピクセルとPUに対応する予測値との間のピクセル差分に対応し得る。ビデオエンコーダ20は、CUに対する残差データを含むTUを形成し、次いで、TUを変換してCUに対する変換係数を生成することができる。
[0069]変換係数を生成するための変換の後に、ビデオエンコーダ20は、変換係数の量子化を実行することができる。量子化は、一般的に、変換係数が量子化され、場合によっては、係数を表現するために使用されるデータの量を減らし、さらに圧縮を施すプロセスを指す。量子化プロセスは、係数のうちの一部または全部に関連付けられているビット深度を低減することができる。たとえば、nビット値は、切り捨てで量子化時にmビット値に下げられ、nはmより大きい。
[0070]量子化に続いて、ビデオエンコーダ20は、変換係数をスキャンして、量子化された変換係数を含む2次元行列から1次元ベクトルを生成することができる。スキャンは、より高いエネルギー(およびしたがってより低い周波数)係数を配列(array)の前部に置き、より低いエネルギー(およびしたがってより高い周波数)係数を配列の後部に置くように設計され得る。
[0071]いくつかの例では、ビデオエンコーダ20は、事前定義されたスキャン順序を利用して、量子化された変換係数をスキャンし、エントロピー符号化され得るシリアル化ベクトルを生成することができる。他の例では、ビデオエンコーダ20は、適応型スキャンを実行し得る。量子化された変換係数をスキャンして1次元ベクトルを形成した後に、ビデオエンコーダ20は、1次元ベクトルを、たとえば、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率区間区分エントロピー(PIPE)コーディング、または別のエントロピー符号化方法に従って、エントロピー符号化することができる。ビデオエンコーダ20は、ビデオデータを復号する際にビデオデコーダ30による使用のため符号化されたビデオデータに関連付けられているシンタックス要素もエントロピー符号化し得る。
[0072]ビデオエンコーダ20は、ブロックベースのシンタックスデータ、ピクチャベースのシンタックスデータ、およびGOPベースのシンタックスデータなどの、シンタックスデータをビデオデコーダ30に、たとえば、ピクチャヘッダ、ブロックヘッダ、スライスヘッダ、またはGOPヘッダでさらに送ることができる。GOPシンタックスデータは、それぞれのGOP内の多数のピクチャを記述することができ、ピクチャシンタックスデータは、対応するピクチャを符号化するために使用される符号化/予測モードを指示し得る。
[0073]ビデオエンコーダ20および/またはビデオデコーダ30は、深度データをイントラコーディングすることができる。たとえば、3D−HEVCでは、ビデオエンコーダ20および/またはビデオデコーダ30は、深度マップに対するイントラモードをシグナリングすることができる。ビデオエンコーダ20および/またはビデオデコーダ30は、本開示で説明されているように、3D−HEVCにおいて深度マットの簡略イントラモードシグナリングのための技術を実行するように構成され得るデバイスを表す。
[0074]一例において、ビデオエンコーダ20は、深度モデリングテーブル内の3Dビデオデータに対して深度マップをコーディングするために使用される深度イントラコーディングモードをシグナリングするように構成され、ビデオデコーダ30は、深度モデリングテーブルシンタックスを解析することによって深度マップをコーディングするために使用される深度イントラコーディングモードを決定するように構成され得る。深度モデリングテーブルは、HEVCイントラコーディングモードに対するシンタックスから追加の深度イントラコーディングモードに対するシンタックスを分離する。別の例において、ビデオエンコーダ20は、深度コーディングモードのうちの2つまたはそれ以上にまたがって統合されているメカニズムを使用して3Dビデオデータに対する深度マップの残差情報をシグナリングするように構成され、ビデオデコーダ30は、統合されたメカニズムを使用して2つまたはそれ以上の深度コーディングモードのうちのどれかに対する深度マップの残差情報を決定するように構成され得る。深度コーディングモードは、深度イントラコーディングモードと深度インターコーディングモードの両方を含み得る。本開示の技術は、追加の深度コーディングモードと深度コーティングモードに従ってコーディングされた深度データの残差情報とを決定するためにビデオデコーダ30にかかる解析(parsing)の負担を軽減することができる。
[0075]本開示で説明されている技術は、3次元効果を生み出すビデオデータの符号化および/または復号(概して「コーディング」)をサポートするために使用され得る。一例として、異なるビュー(すなわち、わずかに異なる水平位置を有する2台のカメラの視点に対応する)の2つの画像が、一方の画像が観察者の左目に、他方の画像が観察者の右目に見えるように実質的に同時に表示され得る。
[0076] この3D効果は、たとえば、立体視(stereoscopic)ディスプレイまたは自動立体視(autostereoscopic)ディスプレイを使用して達成され得る。立体視ディスプレイは、2つの画像を相応にフィルタ処理するアイウェア(eyewear)とともに使用され得る。たとえば、パッシブ眼鏡は、適切な眼が適切な画像を見ることを保証するために偏光レンズまたは異なるカラーレンズを使用して画像をフィルタ処理し得る。アクティブ眼鏡は、別の例として、立体視ディスプレイと協調して交互のレンズを迅速に閉じ得、それにより、左眼画像を表示することと右眼画像を表示することとを交互に行い得る。自動立体視ディスプレイは、眼鏡が必要とされないような方法で2つの画像を表示する。たとえば、自動立体視ディスプレイは、各画像が閲覧者の適切な眼に投影されるように構成されたミラーまたはプリズムを含み得る。
[0077]3Dビデオデータをコーディングすることは、テクスチャと深度データとをコーディングすることを伴い得る。一般に、「テクスチャ」という用語は、画像のルミナンス(輝度)(すなわち、明るさまたは「ルーマ」)値と、画像のクロミナンス(すなわち、色または「クロマ」)値を記述するために使用される。いくつかの例において、テクスチャ画像は、輝度データの1つのセットと、青色の色相(Cb)および赤色の色相(Cr)の2つのセットを含み得る。4:2:2または4:2:0などの、いくつかのクロマフォーマットにおいて、クロマデータは、ルーマデータに関してダウンサンプリングされる。すなわち、クロミナンスピクセルの空間分解能(spatial resolution)は、対応する輝度ピクセルの空間分解能より低く、たとえば、輝度分解能の1/2または1/4であり得る。
[0078]深度データは、一般的に、対応するテクスチャデータに対する深度値を記述する。たとえば、深度マップは、各々対応するテクスチャデータに対する深度を記述する深度ピクセル(または深度値)のセットを含み得る。ピクセルは、1つまたは複数のテクスチャ値(たとえば、輝度およびクロミナンス)を有することができ、また1つまたは複数の深度値も有することができる。深度データは、対応するテクスチャデータに対する水平ディスパリティ(視差)を決定するために使用され、いくつかの場合において、垂直ディスパリティも使用され得る。深度データは、ルーマデータに関してサブサンプリングされることが多いが、これは、複数のルーマ値が1つの特定の深度値に関連付けられ得ることを意味する。ルーマデータに関する深度データのサブサンプリングは、ルーマデータに関するクロマデータのサブサンプリングに類似するか、または異なり得る。
[0079]テクスチャと深度データとを受信するデバイスは、一方のビュー(たとえば、左目ビュー)に対して第1のテクスチャ画像を表示し、他方のビュー(たとえば、右目ビュー)に対する第2のテクスチャ画像を生成するために、深度データを使用して、第1の画像のピクセル値を深度値に基づき決定された水平ディスパリティ値だけオフセットすることによって第1のテクスチャ画像を修正し得る。一般に、水平ディスパリティ(または単に「ディスパリティ」)は、右ビュー内の対応するピクセルに対する第1のビュー内のピクセルの水平空間オフセットを記述し、これら2つのピクセルは、2つのビューで表されているのと同じオブジェクトの同じ部分に対応する。
[0080]さらに他の例において、深度データは、像面に垂直なz次元内のピクセルについて定義され、これにより、与えられたピクセルに関連付けられている深度は、その画像に対して定義されているゼロディスパリティ平面に関して定義され得る。そのような深度は、ピクセルを表示するための水平ディスパリティを生成するために使用され、これにより、ゼロパリティ平面に関するピクセルのz次元深度値に応じて、ピクセルが左目と右目とについて異なるように表示され得る。
[0081]ゼロパリティ平面は、ビデオシーケンスの異なる部分について変化し得、またゼロディスパリティ平面に関する深度の量も変化し得る。ゼロディスパリティ平面上に配置されるピクセルは、左目と右目とで同様であるように定義され得る。ゼロディスパリティ平面の前に配置されるピクセルは、左目と右目とに対して異なる位置に表示され(たとえば、水平ディスパリティ)、ピクセルが像平面に垂直なz方向に画像から出て来るように見える知覚を生み出し得る。
[0082]ゼロディスパリティ平面の背後に配置されるピクセルは、わずかにぼやけて表示されて、深度のわずかな知覚をもたらし得るか、または左目と右目とに対して異なる位置で表示され得る(たとえば、ゼロディスパリティ平面の前に配置されているピクセルとは反対の水平ディスパリティを有する)。他の多くの技術も、画像に対する深度データを伝達または定義するために使用され得る。
[0083]2次元ビデオデータは、概して、その各々が特定の時間インスタンスに対応する、個別ピクチャのシーケンスとしてコーディングされる。すなわち、各ピクチャは、シーケンス中の他の画像の再生時間に対する関連する再生時間を有する。これらのピクチャはテクスチャピクチャまたはテクスチャ画像と考えられ得る。深度ベースの3Dビデオコーディングでは、シーケンス中の各テクスチャピクチャは深度マップにも対応し得る。すなわち、テクスチャピクチャに対応する深度マップは、対応するテクスチャマップに対する深度データを記述する。マルチビュービデオデータは、様々なビューに対するデータを含むことができ、各ビューは、テクスチャピクチャおよび対応する深度ピクチャのそれぞれのシーケンスを含み得る。
[0084]上述したように、画像は特定の時間インスタンスに対応し得る。ビデオデータは、アクセスユニットのシーケンスを使用して表され得、各アクセスユニットは、特定の時間インスタンスに対応するすべてのデータを含む。したがって、たとえば、マルチビュービデオデータ・プラス・深度の場合、共通時間インスタンスについての各ビューからのテクスチャ画像・プラス・テクスチャ画像の各々についての深度マップはすべて、特定のアクセスユニット内に含まれ得る。アクセスユニットは、テクスチャ画像に対応するテクスチャコンポーネントと、深度マップに対応する深度コンポーネントとに対するデータを含み得る。
[0085]このようにして、3Dビデオデータは、キャプチャまたは生成されたビュー(テクスチャ)が対応する深度マップに関連する、マルチビュービデオ・プラス・深度フォーマットを使用して表され得る。その上、3Dビデオコーディングでは、テクスチャと深度マップとはコーディングされ、3Dビデオビットストリーム中に多重化され得る。深度マップはグレースケール画像としてコーディングされ得、深度マップの「ルーマ」サンプル(すなわち、ピクセル)は深度値を表す。一般に、深度データのブロック(深度マップのサンプルのブロック)は深度ブロックと呼ばれることがある。深度値は、深度サンプルに関連するルーマ値を指すことがある。いずれの場合も、イントラコーディングおよびインターコーティングの方法は、深度マップコーディングに適用され得る。
[0086]深度マップは、通常、シャープエッジと一定のエリアとを含み、深度マップ中のエッジは、一般に、対応するテクスチャデータとの強い相関を提示する。テクスチャと、対応する深度との間の異なる統計値および相関により、異なるコーディング方式が、2Dビデオコーデックに基づく深度マップのために設計され得る。
[0087]本開示の技術は、一般的に、深度マップの簡略コーディングモードシグナリングに関係し、高効率ビデオコーディング(HEVC)規格に適用可能であり得る。JVT(Joint Video Team)は、すでに開発されているビデオコーディング規格よりも高い効率をもたらすHEVCの基本バージョン(2D)を開発した。JCT−3V(Joint Collaboration Team on 3D Video Coding)は、現在、HEVCの拡張として2つの3次元ビデオ(3DV)ソリューションの研究を実施中である。一例の3DVソリューションは、MV−HEVCと称されるHEVCのマルチビュー拡張を含む。別の例は、3D−HEVC(depth-enhanced 3D video extension)を含む。
[0088]3D−HEVCにおいて、各アクセスユニットが複数のビューコンポーネントを含み、各々、一意的なビューid、またはビュー順序インデックス、またはレイヤidを含む。ビューコンポーネントは、テクスチャビューコンポーネントと、さらには深度ビューコンポーネントとを含む。テクスチャビューコンポーネントは1つまたは複数のテクスチャスライスとしてコーディングされ得、深度ビューコンポーネントは1つまたは複数の深度スライスとしてコーディングされ得る。
[0089]いくつかの場合において、深度データは、イントラコーディングされ得るが、これは与えられたピクチャ内の空間的冗長性を低減するか、または除去するために空間予測に頼る。たとえば、3D−HEVCにおいて、ビデオコーダ(たとえば、ビデオエンコーダまたはビデオデコーダ)は、基本(2D)HEVC規格からのイントラ予測モードを使用して、深度スライスのイントラ予測ユニットをコーディングすることができる。HEVC規格のイントラコーディングモードは、図4および図5に関して以下でより詳しく説明されている。
[0090]別の例では、ビデオコーダは、領域境界チェーンコーディングモードを使用して深度スライスのイントラ予測ユニットをコーディングし得る。領域境界チェーンコーディングモード(単にチェーンコーディングモードまたはCCMと称される)は、図6Aおよび図6Bに関して以下でより詳しく説明されている。一般に、ビデオコーダはCCMを使用して、深度データのブロックを不規則な形状の領域に区分し、次いで、イントラコーディングされ得る。
[0091]さらに別の例では、ビデオコーダは、深度スライスのイントラ予測ユニットをコーディングするために簡略深度コーディング(SDC:simplified depth coding)モードを使用し得る。SDCモードは、以下でより詳しく説明されている。他のイントラモードコーディング方式とは対照的に、SDCモード使用しているときに、ビデオコーダは、残差深度値を変換または量子化しない。むしろ、ビデオコーダは、残差深度値を直接的にコーディングし得る。
[0092]別の例において、ビデオコーダは、深度モデリングモード(DMM:depth modelingmode)を使用して深度スライスのイントラ予測ユニットをコーディングし得る。3D−HEVCのDMMは、図7Aおよび図7Bに関して以下でより詳しく説明されている。DMMを用いて、ビデオコーダは、深度データのブロック(一般に深度ブロックと称される)を予測領域に区分し得る。たとえば、ビデオコーダは、深度データのブロック中にひかれる任意のラインによって定められるウェッジレット(Wedgelet)パターン、または深度ブロックを2つの不規則形状領域に区分する輪郭(Contour)パターンを使用して、深度データのブロックを区分し得る。ウェッジレットパターンは、図8Aおよび8Bならびに図9に関して以下でより詳しく説明されている。
[0093]本開示のいくつかの技術は、3D−HEVCに関して一般的に説明され得るが、これらの技術は必ずしもこの方法に限られない。本明細書で説明されている技術は、また、他の現行の規格またはまだ策定されていない将来の規格に、特に、深度マップの簡略イントラモードシグナリングを提供するのが有利であり得る場合に、適用可能であり得る。
[0094]図2は、深度データコーディングに対する技術を実装することができるビデオエンコーダ20の一例を示すブロック図である。ビデオエンコーダ20は、本開示で説明されているように、3D−HEVCにおいて深度マットの簡略コーディングモードシグナリングのための技術を実行するように構成され得るデバイスを表す。
[0095]ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーティングとイントラコーディングとを実行することができる。イントラコーディングは、与えられたビデオフレームまたはピクチャ内のビデオの空間的冗長性を低減するか、または除去するために空間予測に頼る。インターコーディングは、ビデオシーケンスの隣接するフレームまたはピクチャ内のビデオの時間的冗長性を低減するか、または除去するために時間予測に頼る。イントラ(I)モードは、いくつかの空間ベースコーディングモードのうちのどれかを指すものとしてよい。一方向予測(Pモード)または双予測(Bモード)などのインターモードは、いくつかの時間ベースコーディングモードのうちのどれかを指すものとしてよい。
[0096]上述のように、ビデオエンコーダ20は、マルチビュービデオコーディングを実行するように適応され得る。いくつかの場合において、ビデオエンコーダ20は、マルチビューHEVCをコーティングするように構成され得、したがって、時間インスタンスにおける各ビューは、ビデオデコーダ30などのデコーダによってアクセスされ得る。3D−HEVCについて、各ビューに対するテクスチャマップ(すなわち、ルーマ値とクロマ値)を符号化することに加えて、ビデオエンコーダ20は、各ビューに対する深度マップをさらに符号化することができる。
[0097]図2に示されているように、ビデオエンコーダ20は、符号化されるべきビデオフレーム内に現在のビデオブロックを受信する。図2の例において、ビデオエンコーダ20は、ビデオデータメモリ41と、モード選択ユニット40と、復号ピクチャバッファ(DPB)64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。次いで、モード選択ユニット40は、動き補償ユニット44と、動き推定ユニット42と、イントラ予測ユニット46と、区分ユニット48とを含む。ビデオブロック再構築のため、ビデオエンコーダ20は、逆量子化ユニット58と、逆変換ユニット60と、加算器62とをさらに含む。デブロッキングフィルタ(図2には示されていない)は、ブロック境界をフィルタリングして、再構築されたビデオから濃淡むらアーチファクトを除去するために、さらに含まれ得る。望ましい場合には、デブロッキングフィルタは、典型的には、加算器62の出力をフィルタリングする。デブロッキングフィルタに加えて、追加のフィルタ(ループ内またはループの後の)も使用され得る。そのようなフィルタは、簡潔にするため図示されていないが、望ましい場合には、加算器50の出力をフィルタリングすることができる(ループ内フィルタとして)。フィルタの例は、適応型ループフィルタ、サンプル適応オフセット(SAO)フィルタ、または他の種類のフィルタを含み得る。
[0098]ビデオデータメモリ41は、ビデオエンコーダ20のコンポーネントによって符号化されるべきビデオデータを記憶することができる。ビデオデータメモリ41に記憶されるビデオデータは、たとえば、ビデオソース18から取得され得る。復号ピクチャバッファ64は、たとえば、イントラコーディングモードまたはインターコーディングモードにおいて、ビデオエンコーダ20によるビデオデータの符号化で使用するための参照ビデオデータを記憶する参照ピクチャメモリであってよい。ビデオデータメモリ41および復号ピクチャバッファ64は、シンクロナスDRAM(SDRAM)、磁気抵抗MRAM、抵抗変化RAM(RRAM(登録商標))、または他の種類のメモリデバイスを含む、ダイナミックランダムアクセスメモリ(DRAM)などの、様々なメモリデバイスのうちのどれかによって形成され得る。ビデオデータメモリ41および復号ピクチャバッファ64は、同じメモリデバイスまたは別のメモリデバイスによって実現され得る。様々な例において、ビデオデータメモリ41は、ビデオエンコーダ20の他のコンポーネントとともにオンチップであるか、またはそれらのコンポーネントに関してオフチップであるものとしてよい。
[0099]符号化プロセスの最中に、ビデオエンコーダ20は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは、複数のビデオブロックに分割され得る。動き推定ユニット42および動き補償ユニット44は、時間予測を行うため1つまたは複数の参照フレーム内の1つまたは複数のブロックに関して受信されたビデオブロックのインター予測コーディングを実行する。イントラ予測ユニット46は、空間予測を行うようにコーディングされるべきブロックと同じフレームまたはスライス内の1つまたは複数の近傍ブロックに関して受信されたビデオブロックのイントラ予測コーディングを代替的に実行することができる。ビデオエンコーダ20は、複数のコーディングパスを実行して、たとえば、ビデオデータの各ブロックに対する適切なコーディングモードを選択することができる。
[0100]さらに、区分ユニット48は、前のコーディングパスにおける前の区分方式の評価に基づき、ビデオデータのブロックをサブブロックに区分し得る。たとえば、区分ユニット48は、最初に、フレームまたはスライスをLCUに区分し、レート歪み解析(たとえば、レート歪み最適化)に基づき、LCUの各々をサブCUに区分することができる。モード選択ユニット40は、サブCUにLCUを区分することを示す四分木データ構造をさらに生成し得る。四分木のリーフノードCUは、1つまたは複数のPUと1つまたは複数のTUとを含み得る。
[0101]モード選択ユニット40は、たとえば、エラーの結果に基づき、イントラまたはインターのコーディングモードのうちの1つを選択することができ、結果として得られたイントラまたはインターコーディングされたブロックを、残差ブロックデータを生成するため加算器50に、また参照フレームとして使用する符号化されたブロックを再構築するために加算器62に与える。モードを選択ユニット40は、動きベクトル、イントラモードインジケータ、区分情報、および他のそのようなシンタックス情報などの、シンタックス要素をエントロピー符号化ユニット56にも送る。
[0102]動き推定ユニット42および動き補償ユニット44は、高度に一体化され得るが、概念を示す目的のために別々に図示されている。動き推定ユニット42によって実行される動き推定は、ビデオブロックに対する動きを推定する、動きベクトルを生成するプロセスである。動きベクトルは、たとえば、現在のフレーム(または他のコーディングされたユニット)内でコーディングされている現在のブロックに関する参照フレーム(または他のコーディングされたユニット)内の予測ブロックに関する現在のビデオフレームまたはピクチャ内のビデオブロックのPUの変位を指示し得る。
[0103]予測ブロックは、絶対差の和(SAD)、平方差の和(SSD)、または他の差分]メトリックによって決定され得るピクセル差に関して、コーディングされるべきブロックとよく一致することが分かっているブロックである。いくつかの例において、ビデオエンコーダ20は、復号ピクチャバッファ64内に記憶されている参照ピクチャのサブ整数ピクセル位置についての値を計算することができる。たとえば、ビデオエンコーダ20は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置の値を補間することができる。したがって、動き推定ユニット42は、完全ピクセル位置と分数ピクセル位置に関する動き探索を実行して、分数ピクセル精度を有する動きベクトルを出力することができる。
[0104]動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによってインターコーディングされたスライス内のPUに対する動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(List0)または第2の参照ピクチャリスト(List1)から選択され得、各々復号ピクチャバッファ64内に記憶されている1つまたは複数の参照ピクチャを識別する。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送る。
[0105]動き補償ユニット44によって実行される動き補償は、動き推定ユニット42によって決定された動きベクトルに基づき予測ブロックをフェッチまたは生成することを伴い得る。ここでもまた、動き推定ユニット42および動き補償ユニット44は、いくつかの例では、機能的に一体化され得る。現在のビデオブロックのPUに対する動きベクトルを受信した後、動き補償ユニット44は、動きベクトルが参照ピクチャリストのうちの1つにおいて指している予測ブロックを特定することができる。加算器50は、以下で説明されているように、コーディングされている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を差し引き、ピクセル差値を形成することによって残差ビデオブロックを形成する。一般に、動き推定ユニット42は、ルーマ成分に関する動き推定を実行し、動き補償ユニット44は、クロマ成分とルーマ成分の両方に対してルーマ成分に基づき計算された動きベクトルを使用する。モード選択ユニット40は、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30による使用のためにビデオブロックとビデオスライスとに関連付けられているシンタックス要素も生成し得る。
[0106] イントラ予測ユニット46は、上で説明されているように、動き推定ユニット42と動き補償ユニット44とによって実行されるインター予測の代替として、現在のブロックをイントラ予測し得る。特に、イントラ予測ユニット46は、現在のブロックを符号化するために使用するイントラ予測モードを決定することができる。いくつかの例では、イントラ予測ユニット46は、たとえば、別々の符号化パスにおいて、様々なイントラ予測モードを使用して現在のブロックを符号化し得、イントラ予測ユニット46(またはいくつかの例ではモード選択ユニット40)は、テストモードから使用するのに適切なイントラ予測モードを選択することができる。
[0107]たとえば、イントラ予測ユニット46は、様々なテストイントラ予測モードに対してレート歪み解析を使用してレート歪み値を計算し、テストモードのうちの最良のレート歪み特性を有するイントラ予測モードを選択することができる。レート歪み解析では、一般的に、符号化されたブロックと符号化されたブロックを生成するために符号化された元の符号化されていないブロックとの間の歪み(またはエラー)の量と、さらには符号化されたブロックを生成するために使用されるビットレート(すなわち、ビットの数)とを決定する。イントラ予測ユニット46は、様々な符号化されたブロックに対する歪みおよびレートから比を計算し、どのイントラ予測モードがブロックに対する最良のレート歪み値を示すかを決定することができる。
[0108]さらに、イントラ予測ユニット46は、深度マップの深度ブロックをコーディングするように構成され得る。たとえば、イントラ予測ユニット46は、基本(2D)HEVC規格からのイントラ予測モード、領域境界チェーンコーディングモード(CCM)、簡略深度コーディングもしくはセグメンテーションワイズDCコーディング(SDC)、または深度モデリングモード(DMM)を使用して、深度スライスのイントラ予測PUをコーディングすることができる。いくつかの例では、動き推定ユニット42および動き補償ユニット44は、深度マップの深度ブロックをコーディングするようにも構成され得る。動き推定ユニット42および動き補償ユニット44は、基本(2D)HEVC規格またはインターSDCモードによりインター予測を実行して、深度スライスのインター予測PUをコーディングすることができる。
[0109]変換処理ユニット52は、残差ブロックに変換を適用して、残差変換係数のブロックを生成する。この変換は、ピクセル値領域からの残差情報を周波数領域などの変換領域に変換し得る。変換処理ユニット52は、離散コサイン変換(DCT)またはDCTに概念上類似している他の変換などの、変換を実行することができる。ウェーブレット変換、整数変換、サブバンド変換、または他の種類の変換も使用されることもあり得る。変換処理ユニット52は、結果として得られる変換係数を量子化ユニット54に送ることができる。いくつかの例では、変換プロセスは、スキップされ得る。
[0110]量子化ユニット54は、変換係数を量子化してビットレートをさらに減らす。量子化プロセスは、係数のうちの一部または全部に関連付けられているビット深度を低減することができる。量子化の程度は、量子化パラメータを調整することによって修正され得る。いくつかの例では、量子化ユニット54は、次いで、量子化された変換係数を含む行列のスキャンを実行し得る。代替的に、エントロピー符号化ユニット56がスキャンを実行し得る。
[0111]量子化に続いて、エントロピー符号化ユニット56は、量子化された変換係数をエントロピーコーディングする。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型バイナリ算術コーディング(CABAC)、またはコンテキスト適応型可変長コーディング(CAVLC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、もしくは確率区間区分エントロピー(PIPE:probability interval partitioning entropy)コーディングなどの別のエントロピー符号化プロセスを実行することができる。コンテキストベースエントロピーコーディングの場合、コンテキストは、近傍ブロックに基づき得る。エントロピー符号化ユニット56によるエントロピーコーディングに続いて、符号化されたビットストリームが、別のデバイス(たとえば、ビデオデコーダ30)に送信されるか、または後で送信もしくは取り出すためにアーカイブされ得る。
[0112]逆量子化ユニット58および逆変換ユニット60は、逆量子化と逆変換とを、それぞれ適用して、ピクセル領域内に残差ブロックを、たとえば、参照ブロックとして後で使用するために、再構築する。動き補償ユニット44は、残差ブロックを復号ピクチャバッファ64のフレームのうちの1つの予測ブロックに加えることによって参照ブロックを計算することができる。動き補償ユニット44は、また、1つまたは複数の補間フィルタを再構築された残差ブロックに適用し、動き推定で使用するためのサブ整数ピクセル値を計算し得る。
[0113]加算器62は、再構築された残差ブロックを動き補償ユニット44によって生成された動き補償された予測ブロックに加えて再構築されたビデオブロックを生成し、復号ピクチャバッファ64に記憶する。再構築されたビデオブロックは、動き推定ユニット42と動き補償ユニット44とによって、その後のビデオフレーム内のブロックをインターコーディングするための参照ブロックとして使用され得る。
[0114]本開示で説明されている技術により、ビデオエンコーダ20は、HEVCコーディングモードと異なる深度コーディングモードを使用してマルチビュー・プラス・深度フォーマットで表される3Dビデオデータに対する深度データを符号化するように構成され得る。3D−HEVCプロセスなどの、3Dビデオコーディングプロセスにおいて利用可能な追加の深度イントラコーディングモードの例は、DMM、SDCモード、およびCCMのうちの少なくとも2つを含む。それに加えて、追加の深度インターコーディングモードの一例は、インターSDCモードを含む。
[0115]一例において、ビデオエンコーダ20は、深度モデリングテーブル内の3Dビデオデータに対して深度データをコーディングするために使用される深度イントラコーディングモードをシグナリングする。深度モデリングテーブルは、HEVCイントラコーディングモードに対するシンタックスから分離している追加の深度イントラコーディングモードに対するシンタックスをシグナリングする。それに加えて、ビデオエンコーダ20は、HEVCイントラコーディングモードと異なる深度イントラコーディングモードが3Dビデオデータに対してイネーブルにされているかどうかを示すために、フラグなどの、シンタックス要素をシグナリングする。いくつかの例では、シンタックス要素は、深度イントラコーディングモードのすべてが3Dビデオデータに対してイネーブルにされているかどうかを指示し得る。シンタックス要素は、ビデオデータのビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、またはピクチャパラメータセット(SPS)のうちの1つに含まれ得る。深度イントラコーディングモードがイネーブルにされているときに、ビデオエンコーダ20によってシグナリングされるフラグは、ビデオデコーダ30に対して、深度データをコーディングするために使用される深度イントラコーディングモードのうちの1つを決定するために深度モデリングテーブルを復号することを指示する。深度モデリングテーブルは、ビデオデータのコーディングユニット(CU)レベルまたは予測ユニット(PU)レベルのうちの一方で符号化され得る。ビデオエンコーダ20のシグナリングは、本開示の技術に従って、HEVCイントラコーディングモードから分離している深度モデリングテーブル内で深度イントラコーディングモードをシグナリングすることと、深度イントラコーディングモードがイネーブルにされ、深度モデリングテーブルが復号されるべきときを指示することとによって、デコーダの解析(parsing)の負担を軽減することができる。
[0116]別の例において、ビデオエンコーダ20は、深度コーディングモードのうちの2つまたはそれ以上にまたがって統合されているシンタックス要素のセットを使用して3Dビデオデータに対する深度データの残差情報をシグナリングするように構成され得る。深度コーディングモードは、深度イントラコーディングモードと深度インターコーディングモードの両方を含み得る。シンタックス要素のセットは、深度コーディングモードのうちのどれかに対して残差値がコーディングされるかどうかを指示するシンタックス要素を含み得る。シンタックス要素のセットは、深度コーディングモードのうちのどれかに対する残差値の絶対値と符号とを指示するシンタックス要素も含み得る。深度コーディングモードの2つまたはそれ以上について残差情報を指示するためにシンタックス要素の同じセットを共有することによって、ビデオエンコーダ20は、共有されるシンタックス要素の各々についてコンテキストモデル選択および2値化方法も統合することができる。それに加えて、深度イントラコーディングモードでは、ビデオエンコーダ20は、深度データの残差値の生成時に近傍参照サンプルをフィルタリングしないことを決定し得る。本開示の技術による、ビデオエンコーダ20の符号化メカニズムおよびシグナリングは、深度コーディングモードに対する残差情報シンタックスを統合することによって、デコーダの解析の負担を軽減し、必要なコンテキストモデルおよび2値化方法の数を減らすことができる。
[0117]図3は、深度データコーディングに対する技術を実装することができるビデオデコーダ30の一例を示すブロック図である。図3の例において、ビデオデコーダ30は、ビデオデータメモリ71と、エントロピー復号ユニット70と、動き補償ユニット72と、イントラ予測ユニット74と、逆量子化ユニット76と、逆変換ユニット78と、復号ピクチャバッファ(DPB)82と、加算器80とを備える。ビデオデコーダ30は、本開示で説明されているように、3D−HEVCにおいて深度マットの簡略コーディングモードシグナリングのための技術を実行するように構成され得るデバイスを表す。
[0118]ビデオデータメモリ71は、ビデオデコーダ30のコンポーネントによって復号されるべき、符号化されたビデオビットストリームなどの、ビデオデータを記憶することができる。ビデオデータメモリ71に記憶されているビデオデータは、たとえば、コンピュータ可読媒体16から、たとえば、カメラなどの、ローカルビデオソースから、ビデオデータの有線もしくはワイヤレスネットワーク通信を介して、または物理的データ記憶媒体にアクセスすることによって、取得され得る。ビデオデータメモリ71は、符号化されたビデオビットストリームからの符号化されたビデオデータを記憶するコーディングピクチャバッファ(CPB)を形成し得る。復号ピクチャバッファ82は、たとえば、イントラコーディングモードまたはインターコーディングモードにおいて、ビデオデコーダ30によるビデオデータの復号で使用するための参照ビデオデータを記憶する参照ピクチャメモリであってよい。ビデオデータメモリ71および復号ピクチャバッファ82は、シンクロナスDRAM(SDRAM)、磁気抵抗RAM(MRAM)、抵抗変化RAM(RRAM)、または他の種類のメモリデバイスを含む、ダイナミックランダムアクセスメモリ(DRAM)などの、様々なメモリデバイスのうちのどれかによって形成され得る。ビデオデータメモリ71および復号ピクチャバッファ82は、同じメモリデバイスまたは別のメモリデバイスによって実現され得る。様々な例において、ビデオデータメモリ71は、ビデオデコーダ30の他のコンポーネントとともにオンチップであるか、またはそれらのコンポーネントに関してオフチップであるものとしてよい。
[0119]復号プロセスにおいて、ビデオデコーダ30は、ビデオエンコーダ20から符号化されたビデオスライスおよび関連付けられているシンタックス要素のビデオブロックを表す符号化されたビデオビットストリームを受信する。エントロピー復号ユニット70は、ビットストリームを復号して、量子化された係数と、動きベクトルまたはイントラ予測モードインジケータと、他のシンタックス要素とを生成する。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルにおいてシンタックス要素を受信することができる。
[0120]上述のように、ビデオデコーダ30は、マルチビュービデオコーディングを実行するように適応され得る。いくつかの場合において、ビデオデコーダ30は、マルチビューHEVCを復号するように構成され得る。HEVC−3Dについて、各ビューに対するテクスチャマップ(すなわち、ルーマ値とクロマ値)を復号することに加えて、ビデオデコーダ30は、各ビューに対する深度マップをさらに復号することができる。
[0121]ビデオスライスがイントラコーディングされた(I)スライス、としてコーディングされるときに、イントラ予測ユニット74は、シグナリングされたイントラ予測モードと、現在のフレームまたはピクチャのすでに復号されているブロックからのデータとに基づき現在のビデオスライスのビデオブロックに対する予測データを生成することができる。イントラ予測ユニット74は、深度データをイントラコーディングすることも可能である。たとえば、イントラ予測ユニット74は、基本(2D)HEVC規格からのイントラ予測モード、領域境界チェーンコーディングモード(CCM)、簡略深度コーディング(SDC)モード、または深度モデリングモード(DMM)を使用して、深度スライスのイントラ予測PUをコーディングすることができる。
[0122]ビデオフレームが、インターコーディングされた(すなわち、BまたはP)スライスとしてコーディングされるときに、動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルおよび他のシンタックス要素に基づき現在のビデオスライスのビデオブロックに対する予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの1つのリスト内の参照ピクチャのうちの1つから生成され得る。ビデオデコーダ30は、復号ピクチャバッファ82内に記憶されている参照ピクチャに基づき既定の構築技術を使用して、参照フレームリスト、List0とList1とを構築することができる。
[0123]動き補償ユニット72は、動きベクトルと他のシンタックス要素とを解析することによって現在のビデオスライスのビデオブロックに対する予測情報を決定し、予測情報を使用して、復号されている現在のビデオブロックに対する予測ブロックを生成する。たとえば、動き補償ユニット72は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラもしくはインター予測)を決定するための受信されたシンタックス要素と、インター予測スライスの種類(たとえば、BスライスまたはPスライス)と、スライスに対する参照ピクチャリストのうちの1つまたは複数に対する構築情報と、スライスの各インター符号化されたビデオブロックに対する動きベクトルと、スライスの各インターコーディングされたビデオブロックに対するインター予測ステータスと、他の情報のうちのいくつかを使用して現在のビデオスライス中のビデオブロックを復号する。
[0124]動き補償ユニット72は、補間フィルタに基づき補間を実行することもできる。動き補償ユニット72は、ビデオブロックの符号化時にビデオエンコーダ20によって使用されるような補間フィルタを使用して、参照ブロックのサブ整数ピクセルに対する補間値を計算することができる。この場合、動き補償ユニット72は、受信されたシンタックス要素からビデオエンコーダ20によって使用される補間フィルタを決定し、補間フィルタを使用して予測ブロックを生成することができる。
[0125]動き補償ユニット72は、深度データをインターコーディングすることも可能である。たとえば、動き補償ユニット72は、基本(2D)HEVC規格またはインターSDCモードによりインター予測を実行して、深度スライスのイントラ予測PUをコーディングすることができる。
[0126]逆量子化ユニット76は、ビットストリーム内に用意され、エントロピー復号ユニット70によって復号される量子化された係数を逆量子化(inverse quantize(逆量子化)はde−quantizeとも言う)する。逆量子化プロセスは、ビデオスライス内の各ビデオブロックについてビデオデコーダ30によって計算された量子化パラメータQPYを使用して、量子化の程度、また同様に、適用されるべき逆量子化の程度を決定することを含み得る。逆変換ユニット78は、逆変換、たとえば、逆DCT、逆整数変換、または概念上類似している逆変換プロセスを、変換係数に適用してピクセル領域内に残差ブロックを生成する。
[0127]動き補償ユニット72またはイントラ予測ユニット74が、動きベクトルまたは他のシンタックス要素に基づき現在のビデオブロック(たとえば、テクスチャブロックもしくは深度ブロック)に対する予測ブロックを生成した後、ビデオデコーダ30は、逆変換ユニット78からの残差ブロックと動き補償ユニット72もしくはイントラ予測ユニット74によって生成された対応する予測ブロックとを加算することによって復号されたビデオブロックを形成する。加算器80は、この加算演算を実行する1つまたは複数のコンポーネントを表す。
[0128]望ましい場合に、復号されたブロックをフィルタリングするためにデブロッキングフィルタも適用され、これにより濃淡むらアーチファクトを除去することもできる。ピクセル遷移を平滑化するか、または他の何らかの方法でビデオ品質を改善するために、他のループフィルタ(コーディングループ内、またはコーディングループの後のいずれか)も使用され得る。次いで、与えられたフレームまたはピクチャ内の復号されたビデオブロックは、その後の動き補償に使用される参照ピクチャを記憶する、復号ピクチャバッファ82に記憶される。復号ピクチャバッファ82は、図1の表示デバイス32などの、表示デバイス上に後で提示するために復号されたビデオも記憶する。
[0129]本開示で説明されている技術により、ビデオデコーダ30は、HEVCコーディングモードと異なる深度コーディングモードを使用してマルチビュー・プラス・深度フォーマットで表される3Dビデオデータに対する深度データを復号するように構成される。3D−HEVCプロセスなどの、3Dビデオコーディングプロセスにおいて利用可能な追加の深度イントラコーディングモードの例は、DMM、SDCモード、およびCCMのうちの少なくとも2つを含む。それに加えて、追加の深度インターコーディングモードの一例は、インターSDCモードを含む。
[0130]一例において、ビデオデコーダ30は、深度モデリングテーブル内に3Dビデオデータについての深度データをコーディングするために使用される深度イントラコーディングモードを指示するシンタックス要素を復号する。深度モデリングテーブルは、HEVCイントラコーディングモードに対するシンタックスから分離している追加の深度イントラコーディングモードについてのシンタックスを含む。それに加えて、ビデオデコーダ30は、HEVCイントラコーディングモードと異なる深度イントラコーディングモードが3Dビデオデータに対してイネーブルにされているかどうかを指示する、フラグなどの、シンタックス要素を復号する。いくつかの例では、シンタックス要素は、深度イントラコーディングモードのすべてが3Dビデオデータに対してイネーブルにされているかどうかを指示し得る。シンタックス要素は、ビデオデータのビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、またはピクチャパラメータセット(SPS)のうちの1つに含まれ得る。ビデオデコーダ30が、復号されたシンタックス要素に基づき深度イントラコーディングモードがイネーブルにされていると決定したときに、ビデオデコーダ30は、深度データをコーディングするために使用される深度イントラコーディングモードのうちの1つを決定するために深度モデリングテーブルを復号する。深度モデリングテーブルは、ビデオデータのコーディングユニット(CU)レベルまたは予測ユニット(PU)レベルのうちの一方で復号され得る。シグナリングは、本開示の技術により、HEVCイントラコーディングモードから分離している深度モデリングテーブル内の深度イントラコーディングモードを含めることと、深度イントラコーディングモードがイネーブルにされ、深度モデリングテーブルが復号されるべきときを指示することとによってビデオデコーダ30側の解析の負担を軽減することができる。
[0131]別の例において、ビデオデコーダ30は、3Dビデオデータに対する深度データの残差情報を指示するシンタックス要素のセットを復号するように構成されるものとしてよく、シンタックス要素のセットは2つまたはそれより多くの深度コーディングモードにまたがって統合される。深度コーディングモードは、深度イントラコーディングモードと深度インターコーディングモードの両方を含み得る。シンタックス要素のセットは、残差値が、深度コーディングモードのうちのどれかに対してコーディングされるかどうかを指示するシンタックス要素を含み得る。シンタックス要素のセットは、深度コーディングモードのうちのどれかに対する残差値の絶対値と符号とを指示するシンタックス要素も含み得る。2つまたはそれより多くの深度コーディングモードについて、残差情報を指示するためにシンタックス要素の同じセットを共有することによって、ビデオデコーダ30は、共有されるシンタックス要素の各々についてコンテキストモデル選択および2値化方法も統合することができる。それに加えて、深度イントラコーディングモードでは、ビデオデコーダ30は、受信された残差値に基づきビデオデータの深度値を再構築する際に近傍参照サンプルをフィルタリングしないことを決定することができる。このコーディングメカニズムは、本開示の技術により、深度コーディングモードについての残差情報シンタックスを統合することによって、ビデオデコーダ30における解析の負担を軽減し、必要なコンテキストモデルおよび2値化方法の数を減らすことができる。
[0132]次に、3D−HEVCと一致する深度マップの簡略コーディングモードシグナリングに対する様々な技術が、さらに詳しく説明される。これらの技術は、深度イントラコーディングモードに関係付けられているものとしてよく、深度モデリングモード(DMM)、簡略深度コーディング(SDC)モード、およびチェーンコーディングモード(CCM)のうちの2つまたはそれより多くを含む。これらの技術は、インターSDCモードなどの、深度イントラコーディングモードと深度インターコーディングモードの両方に関係付けられ得る。そのような技術は、たとえば、図1〜3に示されているデバイスによって、またはそれらのデバイスと連携して実行され得る。次の説明は、様々なビデオコーディング規格と技術の説明を含む。
[0133]この節では、本開示に関係するビデオコーディング技術について、最初に検討される。ビデオコーディング規格は、ITU−T H.261、ISO/IEC MPEG−1ビジュアル、ITU−T H.262またはISO/IEC MPEG−2ビジュアル、ITU−T H.263、ISO/IEC MPEG−4ビジュアル、およびスケーラブルビデオコーディング(SVC)拡張とマルチビュービデオコーディング(MVC)拡張とを含む、ITU−T H.264(ISO/IEC MPEG−4 AVCとも称される)を含む。MVCの共同ドラフトは、「オーディオビジュアルサービス全般のための高度ビデオ符号化方式」、ITU−T勧告H.264、2010年3月において説明されている。それに加えて、新しいビデオコーディング規格、HEVCが、ITU−T VCEGとISO/IEC MPEGとのJCT−VCによって開発されている。HEVCのドラフトは、http://phenix.it−sudparis.eu/jct/doc_end_user/documents/9_Geneva/wg11/JCTVC−I1003−v5.zipから入手可能である。
[0134]JCT−3Vは、現在、HEVCの拡張として2つの3次元ビデオ(3DV)ソリューションの研究を実施中である。一例の3DVソリューションは、MV−HEVCと称されるHEVCのマルチビュー拡張を含む。別の例は、3D−HEVCと称される深度増強3Dビデオ拡張を含む。
[0135]3D−HEVCでは、3次元(3D)ビデオデータは、キャプチャされたビュー(たとえば、テクスチャ)が対応する深度マップに関連付けられている、マルチビュービデオ・プラス・深度フォーマットを使用して表される。3D−HEVCでは、テクスチャと深度マップとはコーディングされ、3Dビデオビットストリーム中に多重化される。深度マップはグレースケールビデオとしてコーディングされ、そこで、ルーマサンプルは深度値を表し、従来のイントラコーディングおよびインターコーディング方法が深度マップコーディングのために適用され得る。
[0136]深度マップは、シャープエッジと一定のエリアとによって特徴付けられ、深度マップ中のエッジは、一般に、対応するテクスチャデータとの強い相関を提示する。テクスチャと、対応する深度との間の異なる統計値および相関により、異なるコーディング方式が、2Dビデオコーデックに基づく深度マップのために設計される。
[0137]図4は、HEVCにおける方向イントラ予測モードに関連付けられている予測方向を一般的に示す。基本(2D)HEVC規格では、各予測ユニット(PU)のルーマ成分について、イントラ予測コーティング方法は、図4に示されているように、33の角度予測モード(2から34のインデックスが付けられている)と、DCモード(1のインデックスを付けられている)と、平面モード(0のインデックスを付けられている)とともに利用される。たとえば、上で指摘されているように、HEVC規格は、平面モード(モード0)と、DCモード(モード1)と、33の方向予測モード(モード2〜34)とを含む、35のイントラ予測モードを含み得る。
[0138]平面モードでは、いわゆる「平面」関数を使用して予測が実行される。DCモードの場合、ブロック内のピクセル値の平均化に基づいて予測が実行される。方向予測モードでは、予測は、特定の方向(モードによって指示されている通り)に沿って近傍ブロックの再構築されたピクセルに基づき実行される。一般に、図4に示されている矢印の末尾(tail end)は、値の取り出し元である近傍ピクセルのうちの関係する1つのピクセルを表すが、矢印の頭部(head)は取り出された値が予測ブロックを形成するために伝搬される方向を表す。
[0139]MPEGのHEVCベース3Dビデオコーディング(3D−HEVC)コーデックは、サブミッションm22570とm22571とで提案されたソリューションに基づいている。m22570に対する完全な引用は、Schwarzら、「Description of 3D Video Coding Technology Proposal by Fraunhofer HHI (HEVC compatible configuration A)」、MPEG Meeting ISO/IEC JTC1/SC29/WG11、Doc. MPEG11/M22570、スイス、ジュネーブ、2011年11月/12月、にある。m22571に対する完全な引用は、Schwarzら、「Description of 3D Video Technology Proposal by Fraunhofer HHI (HEVC compatible; configuration B)」、MPEG会合−ISO/IEC JTC1/SC29/WG11、Doc. MPEG11/M22571、スイス、ジュネーブ、2011年11月/12月、にある。
[0140]3D−HEVCに対する参照ソフトウェアHTMバージョン6.0は、https://hevc.hhi.fraunhofer.de/svn/svn_3DVCSoftware/tags/HTM−6.0/から入手可能である。3D−HEVCに対するソフトウェア説明(文書番号:C1005)は、http://phenix.it−sudparis.eu/jct2/doc_end_user/documents/3_Geneva/wg11/JCT3V−C1005−v1.zipから入手可能である。たとえば、すぐ上のリンクは、文書、「HEVC Test Model 3」、文書JCT3V−C1005_spec_d0、Techら、ITU−T SG 16 WP 3とISO/IEC JTC 1/SC 29/WG 11との3Dビデオコーディング拡張開発に関する共同コラボレーティブチーム、第3回会合:ジュネーブ、CH、2013年1月17日〜23日と、「3D−HEVC Test Model 3」、文書JCT3V−C1005_d0、Techら、ITU−T SG 16 WP 3とISO/IEC JTC 1/SC 29/WG 11との3Dビデオコーディング拡張開発に関する共同コラボレーティブチーム、第3回会合:ジュネーブ、CH、2013年1月17日〜23日を参照している。
[0141]3D−HEVCにおいて、各アクセスユニットが複数のビューコンポーネントを含み、各々、一意的なビューid、またはビュー順序インデックス、またはレイヤidを含む。ビューコンポーネントは、テクスチャビューコンポーネントと、さらには深度ビューコンポーネントとを含む。テクスチャビューコンポーネントは1つまたは複数のテクスチャスライスとしてコーディングされ、深度ビューコンポーネントは1つまたは複数の深度スライスとしてコーディングされる。
[0142]深度データコーディングに対する利用可能なイントラコーディングモードは、HEVCイントラモード、HEVCイントラパルス符号変調(I_PCM)モード、領域境界チェーンコーディングモード(CCM)、深度モデリングモード(DMM)、および簡略深度コーディングモード(SDCMまたはSDCモード)である。深度データコーディングに対する利用可能なインターコーディングモードは、HEVCインターモードおよびインターSDCモードである。これらの各々は、次の節で順に説明される。
[0143]3D−HEVCに対するHEVCイントラモードにおいて、基本(2D)HEVC規格に対する上で説明されているのと同じ、イントラ予測モードの定義が利用される。すなわち、合計35のイントラ予測モードがサポートされており、イントラ予測モード0は平面イントラ予測モードを指し、モード1はDC予測を指し、モード2から34は異なる方向を持つ角度予測モードを指し、これらは図4に示されている通りである。
[0144]図5は、角度イントラ予測モードのためのVおよびHの値を示す表である。方向イントラ予測モードの角度は、(H,V)として指示され、値はおおよそH/Vに等しい。HEVCイントラモードに対する可能な(H,V)組合せは、図5の表にまとめられており、2〜34のインデックスを付けられている各予測モードは(H,V)組合せのうちの1つに対応する。
[0145]HEVC I_PCMは、イントラコーディングについてもサポートされる。HEVC I_PCMモードでは、予測、変換、量子化、およびエントロピーコーディングのコーディングメカニズムはバイパスされるが、予測サンプルは、予め定義された数のビットによってコーディングされる。
[0146]チェーンコーディングモード(CCM)と称される、領域境界チェーンコーディングモードは、深度マップコーディングに対する1つの特別なHEVCイントラ予測モードとして導入される。CCMはJCT3V−A0070(名称、「CE.6.h Region Boundary Chain Coding for Depth−map」、Heoら、JCT2−A0070、ITU−T SG 16 WP 3とISO/IEC JTC 1/SC 29/WG 11との3Dビデオコーディング拡張開発に関する共同コラボレーティブチーム、第1回会合:ストックホルム、スウェーデン、2012年7月16日〜20日)において説明されている。
[0147]CCMでは、深度ブロックは、「チェーン(chains)」を使用してシグナリングされる任意の区分パターンによって指定された2つの領域に区分される。チェーンは、サンプルとその8接続性サンプルのうちの1つとの間の接続である。各チェーンは、方向インデックスが割り当てられ、一連の接続されたチェーンインデックスは、区分パターンを定義するためにシグナリングされる。
[0148]図6Aおよび6Bは、CCMにおける例示的な深度区分パターンと例示的なコーディングされたチェーンとを示す概念図である。図6Aのブロック200に示されているように、8つの異なるタイプのチェーンがあり、各々0から7までの範囲内の方向インデックスに割り当てられている。チェーン方向タイプは、ビデオコーダが深度ブロックの区分を決定するのを補助し得る。方向インデックス(0...7)を直接コーディングする代わりに、方向インデックスをシグナリングするために差分コーディングが適用される。
[0149]CCMにおいて、rem_intra_luma_pred_modeが31に等しく、現在のPUサイズが4×4以上、64×64未満であるときに、追加のフラグ(edge_intra_flag)がビットストリームで送信され、CCMが使用されているかいないかをシグナリングする。この追加のフラグが、CCMが現在のPUに適用されることを指示するときに、領域境界の開始点(左列または上の行から、 edge_start_left_flag)、チェーンの開始位置(edge_start_position)、チェーンコードの数−1(num_edge_codes_minus1)、および各チェーンコードについて、方向インデックス(edge_code)が、ビットストリームでさらにシグナリングされる。
[0150]図6Bに示されている例示的なPUは、区分構造を指示するチェーン206によって分離された第1の区分202と第2の区分204とを含む。ビデオエンコーダ(ビデオエンコーダ20など)は、符号化されたビットストリームにおける現在のPUに対するチェーン206を決定して、シグナリングし得るが、ビデオデコーダ(ビデオデコーダ30など)は、符号化されたビットストリームからのチェーン206を表すデータを解析し得る。
[0151]概して、チェーン206は、開始位置と、チェーン中のリンクの数(たとえば、チェーンコードの数)の指示と、チェーンコードごとの方向インデックスとを含む。図6Bの例に示されている任意の区分パターンをシグナリングするために、ビデオエンコーダ20は、チェーン206がトップ境界から始まることを指示するように1つのビット(たとえば、0)を符号化することができる。ビデオエンコーダ20は、チェーン206が、トップ境界の第3の深度サンプル、すなわち、「3」の開始位置、の後で始まることを指示するように3つのビット(たとえば、011)をさらに符号化することができる。ビデオエンコーダ20は、チェーン206内に合計7つのリンクがあることを指示するように4つのビット(たとえば、0110)をさらに符号化することができる。ビデオエンコーダ20は、(たとえば、ブロック200に従って)各チェーンリンクの方向を指示するように一連の接続されているチェーンのインデックス(たとえば、3、3、3、7、1、1、1)も符号化することができる。いくつかの例において、ビデオエンコーダ20は、ルックアップテーブルを使用して各インデックスをコードワードに変換し得る。ビデオデコーダ30などの、ビデオデコーダは、ブロックの区分パターンを決定するために上で説明されているシグナリングを解析することができる。次いで、ビデオデコーダ30は、各区分に対する深度値を復号することができる。
[0152]深度モデリングモード(DMM)方法は、インターコーディングにおいて深度マップ内のシャープエッジをより良く表すために使用され得る。DMM方法は、HEVCで指定されているイントラ予測モードの代替として一体化され得る。たとえば、1ビットフラグは、DMMまたは従来のイントラ予測(HEVCイントラモードと、HEVC I_PCMモードと、いくつかの場合において、CCMを含む)が適用されるかどうかを指定するために各PUについてシグナリングされ得る。一例において、DMMには4つのイントラモードがある、すなわち、DMM_1、DMM_2、DMM_3、およびDMM_4がある。4つすべてのモードにおいて、深度ブロックは、DMMパターンによって指定された2つの領域に区分され、それぞれの領域は、定数値で表される。DMMパターンは、明示的にシグナリングされる(DMM_1)、空間的近傍ブロックによって予測される(DMM_2)、または同じ所に配置されているテクスチャブロックによって予測される(DMM_3およびDMM_4)、のいずれかであり得る。DMMでは2つの区分モデルが定義され、これはウェッジレット区分と輪郭区分とを含む。
[0153]図7Aおよび7Bは、DMMにおける8×8ブロックに対する例示的なウェッジレットパターンと、8×8ブロックに対する例示的な輪郭パターンとを示す概念図である。図7Aは、8×8ブロックに対する1つのウェッジレットパターンを示している。ウェッジレットパターンについて、深度ブロック210は、直線216によって2つの領域212、214に区分され、図7Aに示されているように、始点218は(Xs,Ys)に配置され、終点は(Xe,Ye)に配置され、2つの領域は、P0とP1のラベルを付けられている。始点218は、点(8,0)として定義され、終点220は、点(0,8)として定義され得る。
[0154] 図7Aの例では、深度ブロック210内の各個々の正方形は、深度ブロック210のそれぞれの別個のピクセルを表す。正方形内の数値は、対応するピクセルが領域P0212(値「0」)に対応するか、領域P1214(値「1」)に対応するかを表す。図7Aではシェーディングも使用され、これにより、ピクセルが領域212(白色正方形)に属すか、領域214(灰色正方形)に属すかを指示する。各ウェッジレットパターンは、対応するサンプルがP0に属すか、P1に属すかをラベリングするサイズuB×vBの2進数の配列からなり、uBおよびvBは深度ブロック210の水平および垂直のサイズをそれぞれ表す。
[0155]この方式で、ビデオエンコーダ20およびビデオデコーダ30などのビデオコーダは、始点218と終点220とによって定義されるようなライン216を使用して、深度ブロック210のピクセルが領域212(領域「P0」とも称され得る)に属すか、領域214(領域「P1」とも称され得る)に属すかを決定することができる。ウェッジレットパターンは、符号化と復号の両方の開始時に初期化される。
[0156]図7Bは、8×8ブロックに対する1つの輪郭パターンを示している。輪郭区分に対して、深度ブロック230は、2つの不規則な領域に区分され得る。図7Bの例では、深度ブロック230は、ライン236、238によって領域232と領域234A、234Bとに区分される。領域234A内のピクセルは、領域234B内のピクセルに直に隣接してはいないけれども、領域234Aおよび234Bは、深度ブロック230のPUを予測することを目的として、1つの単一の領域を形成するように定義される。輪郭区分は、ウェッジレット区分よりも柔軟性があるが、シグナリングは比較的難しい場合がある。サブモードDMM_4において、3D−HEVCの場合、輪郭区分パターンは、同じ所に配置されているテクスチャブロックの再構築されたルーマサンプルを使用して暗黙のうち導出される。
[0157]図7Bの例では、深度ブロック230内の各個別の正方形は、深度ブロック230のそれぞれの個別のピクセルを表す。正方形内の数値は、対応するピクセルが、領域P0232(図7Bの例では値「0」)に対応するか、領域P1234A、234B(図7Bの例では値「1」)に対応するかを表す。図7Bではシェーディングも使用され、これにより、ピクセルが領域232(白色正方形)に属すか、領域234A、234B(灰色正方形)に属すかを指示する。各ウェッジレットパターンに関して上で説明されているように、各輪郭パターンは、対応するサンプル(すなわち、ピクセル)がP0に属すか、P1に属すかをラベリングするサイズuB×vBの2進数の配列によって定義され得、uBおよびvBは深度ブロック230の水平および垂直のサイズをそれぞれ表す。
[0158]この方式で、ビデオエンコーダ20およびビデオデコーダ30などのビデオコーダは、ライン236、238を使用して、深度ブロック230のピクセルが領域232(領域「P0」とも称され得る)に属すか、領域234(領域「P1」とも称され得る)に属すかを決定することができる。領域「P1」および「P2」は、DMMに従って区分された異なる領域に対する既定の命名規約であり、したがって、深度ブロック210の領域P0は、深度ブロック230の領域P0と同じ領域とはみなされない。
[0159]DMMでは、合計86、782、1394、および1503の異なるウェッジレットパターンが4×4、8×8、16×16、および32×32のブロックについてそれぞれ定義されている。これらのパターンは、符号化と復号の両方において生成され記憶される。DMMパターンのタイプ(ウェッジレットまたは輪郭区分)と導出に基づき、各々以下でより詳しく説明されているDMM_1(明示的ウェッジレットシグナリング)と、DMM_2(イントラ予測ウェッジレット区分)と、DMM_3(インターコンポーネントウェッジレット区分)と、DMM_4(インターコンポーネント輪郭区分)とを含む、4つのサブモードが、DMMにおいて定義される。
[0160]サブモードDMM_1は、例示的ウェッジレットシグナリングを定義する。サブモードDMM_1では、ウェッジレット区分が適用され、最適なものが、特定の歪み基準に基づきビデオエンコーダ20などのエンコーダ側で選択される。選択されたウェッジレットパターンのインデックスはビットストリーム中でシグナリングされる。4×4、8×8に等しい、または8×8より大きいPUサイズに対応するインデックスをコーディングするために、7、10、または11個のビンが使用される。
[0161]サブモードDMM_2は、イントラ予測されたウェッジレット区分を定義する。サブモードDMM_2において、ウェッジレット区分が適用され、選択されたウェッジレットパターンが、近傍イントラ予測モードの情報とウェッジレットパターン情報とを使用して予測される。この場合、ウェッジレットパターンインデックスの直接シグナリングは回避され、予測されるウェッジレットパターンのリファインメント(refinement)がシグナリングされる。
[0162]サブモードDMM_3は、インターコンポーネントウェッジレット区分を定義する。サブモードDMM_3において、利用可能なすべてのウェッジレットパターンが、同じアクセスユニットの同じ所に配置されているルーマテクスチャブロック領域上で網羅的に試され、テクスチャブロックと最も良く一致するものが、深度スライスにおけるPUに対するウェッジレット区分として選択される。ウェッジレット区分パターンのシグナリングは不要であるが、最良パターンの網羅的探索は、ビデオデコーダ30などの、デコーダ側で必要とされる。
[0163]3D−HEVC規格におけるJCT3V−C0044(名称、「CE6.h results on Simplification of Depth Modeling Mode 3」、Wangら、JCT3V−C0044、ITU−T SG 16 WP 3とISO/IEC JTC 1/SC 29/WG 11との3Dビデオコーディング拡張開発に関する共同コラボレーティブチーム、第3回会合:ジュネーブ、2013年1月17日〜23日)の採用により、サブモードDMM_3は、上で説明されているのと幾分異なるように修正されている。たとえば、修正されたサブモードDMM_3では、同じ所に配置されているテクスチャルーマブロックが角度イントラ予測モード2から34のうちの1つとともにイントラコーディングされる場合、ウェッジレットパターンのサブセットから所望のまたは最終的なウェッジレットパターンを識別するために追加のインデックスがシグナリングされる。ウェッジレットパターンのサブセットは、同じ所に配置されているテクスチャブロックのイントラ予測方向によって識別される。
[0164]サブセットの構築の詳細な導入については、次のように説明される。ウェッジレットパターンの始点がS(Xs,Ys)であり、終点がE(Xe,Ye)であると仮定すると、各ウェッジレットパターンに対応する対(S,E)がある。各イントラ予測モード(すなわち、モード2から34)について、方向情報(Hi,Vi)は、図5に示されている表の通りに定義される。ウェッジレットパターン((Xs,Ys)とE(Xe,Ye)とによって定義される)とイントラモード((Hi,Vi)によって定義される)との間の適合性は、D[i]=|Vi×(Xs−Xe)−Hi×(Ye−Ys)|と定義される。次いで、各ウェッジレットパターンは、すべてのイントラ予測モードのうちで最小のDを探索することによって最も近いイントラ予測モードにマッピングされ得る。それに対応して、各イントラ予測モードjについて、各パターンの最も近いイントラ予測モードがjであるウェッジレットパターンサブセットS(j)が存在する。
[0165]そうではなく、同じ所に配置されているテクスチャルーマブロックがイントラコーディングされないか、またはイントラモードが0もしくは1である場合、粗候補ウェッジレットパターンサブセット内の最良のウェッジレットパターンのインデックスがシグナリングされる。図8Aおよび8Bは、それぞれ、ウェッジレット離線(separation line)開始/終了位置の例示的な粗サブセットと、DMMのサブモードDMM_3における1つのウェッジレットパターン内の例示的なリファインメントと、を示す概念図である。図8Aおよび8Bにおいて、黒色アウトラインの円は、ウェッジレットパターン開始/終了位置を示し、灰色塗りつぶしのある黒色アウトラインの円のものは、開始/終了位置の粗サブセットを示す。粗パターンは、図8Aに示されているように、2つの開始および終了位置のすべてについて生成される。各粗候補ウェッジレットパターンサブセットは、図8Bに示されているような最大8個までの参照を含む。上で説明されている両方の場合について、シグナリングされる追加のインデックスは、同じ固定長を有することに留意されたい。
[0166]サブモードDMM_4は、インターコンポーネント輪郭区分を定義する。サブモードDMM_4において、輪郭区分パターンは、同じ所に配置されているテクスチャブロックを2つの部分に分離することによって復号プロセスにおいて生成される、すなわち、第1の部分は、ルーマサンプル値が平均値より大きいピクセルを含み、第2の部分は、ルーマサンプル値が平均値以下であるピクセルを含む。
[0167]図9は、異なるPUサイズについての利用可能なDMMサブモードとウェッジレットパターンの数とを示す表である。例示的な一実装において、4×4以下のPUサイズについては、サブモードDMM_1およびサブモードDMM_3のみがイネーブルにされ、4×4より大きく、64×64より小さいPUサイズ、すなわち、8×8、16×16、および32×32については、4つすべてのモードがイネーブルにされる。さらに、この例示的な実装において、64×64以上のPUサイズについては、4つすべてのモードがディセーブルにされる。わかりやすいように、異なるPUサイズについての利用可能なDMMサブモードおよびウェッジレットパターンの対応する数が、図9に示されている表に列挙されている。
[0168]簡略深度コーディング(SDC)モードは、他のHEVCイントラコーディングモードへの代替的イントラコーディングモードとして導入される。SDCモードは、JCT3V−B0036(名称、「3D−CE6.h: Simplified Depth Coding with an optional Depth Lookup Table」、Jagerら、ITU−T SG 16 WP 3とISO/IEC JTC 1/SC 29/WG 11との3Dビデオコーディング拡張開発に関する共同コラボレーティブチーム、第2回会合:上海、中国、2012年10月13日〜19日)において説明されている。追加のフラグは、現在のCUがSDCモードによってコーディングされているかいないかを指定するために各イントラ深度CUについてシグナリングされる。従来の3D−HEVCプロセスにおいて、SDCモードは、2N×2N区分サイズを有するCUに対してのみ適用される。
[0169]SDCモードでは、量子化された変換係数をコーディングする代わりに、深度ブロックが、区分のタイプ、たとえば、単一のDC区分、2つのDMM_1区分、または単一の平面区分、および各区分に対してシグナリングされた残差値(ピクセル領域内の)として表される。SDCM_DCと、SDCM_DMM_1と、SDCM_Planarとを含む3つのサブモードがSDCモードにおいて定義され、これらはDC、DMM_1、および平面の区分タイプにそれぞれ対応する。SDCモードでは、変換または量子化は適用されず、深度値は、オプションで、深度ルックアップテーブル(DLT)を使用してインデックスにマッピングされ得、DLTは、全シーケンスを符号化する前に第1のイントラ期間内にフレームを解析することによって構築される。DLTが使用される場合、DLT全体が、シーケンスパラメータセット(SPS)で、ビデオデコーダ30などのデコーダに送信され、復号されたインデックス値は、DLTに基づき深度値にマッピングし直される。DLTの使用法を説明するために、本開示では、テーブルDLT[・]がDLTに従って深度値をインデックス値に変換するために使用され、テーブルIDLT[・]がインデックス値を深度値にもどす変換のために使用される。
[0170]コーディングユニット(CU)に対するシンタックステーブルが以下に与えられている。シンタックスの灰色強調部分は、一般的に、深度ビューに対するイントラコーディングに関するHEVC規格と3D−HEVC規格との差異を示している。
[0171]インターSDCモードでは、SDCモードの概念は、深度インターコーディングに対してさらに拡張される。インターSDCモードは、JCT3V−E1001において説明されている(Techら、「3D−HEVC Draft Text 1 (Output Document of JCT−3V)」、ITU−T SG 16 WP 3とISO/IEC JTC 1/SC 29/WG 11との3Dビデオコーディング拡張開発に関する共同コラボレーティブチーム、第5回会合:ウィーン、オーストリア、2013年7月27日〜8月2日)。3D−HEVCの作業ドラフト(文書番号JCT3V−E1001)は、http://phenix.int−evry.fr/jct3v/doc_end_user/documents/5_Vienna/wg11/JCT3V−E1001−v3.zipから入手可能である。
[0172]インターSDCモードは、単一の一意的な区分を含む各PUについてただ1つのDC残差値を符号化することによって追加の残差コーディング方法を提供する。インターSDCでは、変換および量子化は、各PUについてスキップされ、残差ブロックは、イントラコーディングにおいて適用されるSDCモードのサブモードSDCM_DCに類似する、対応するシグナリングされたDC残差値に等しいそのすべてのサンプルを有する。非スキップCUについては、インターSDCが適用されるかどうかを指示する1ビットフラグがさらにシグナリングされる。スキップCUについては、現在の3D−HEVCにおいて行われているのと同じプロセスが維持される。インターSDCモードが適用される場合、ただ1つのDC残差値のみが各PUについてシグナリングされ、そうでない場合、従来の量子化された変換係数がシグナリングされる。
[0173]次に、深度コーディングモードにおける区分に対する残差コーディングが、より詳しく説明される。DMM、CCM、SDCモードと、インターSDCモードとを含む、深度コーディングモードでは、PUが1つまたは2つの区分を含むかどうかに関係なく、区分全体の残差(「デルタDC」とも称される)は、1つの単一値とともにシグナリングされ得る。そのような方法は、本開示ではデルタDCコーディングと呼ばれる。
[0174]DMMを使用するDCコーディングに関係するシンタックス要素およびセマンティクスは、次のように定義される。
[0175]シンタックス要素dmm_dc_flagは、DMMに対する深度データの残差値が存在しているかどうかを指示する。dmm_dc_flag[x0][y0]が1に等しいことは、dmm_dc_abs[x0][y0][i]およびdmm_dc_sign_flag[x0][y0][i]が存在していることを指定する。dmm_dc_flag[x0][y0]が0に等しいことは、dmm_dc_abs[x0][y0][i]およびdmm_dc_sign_flag[x0][y0][i]が存在していないことを指定する。
[0176]残差値が存在しているときに、dmm_dc_abs[x0][y0][i]およびdmm_dc_sign_flag[x0][y0][i]のシンタックス要素は、DMMに対する深度データの残差値の大きさ(すなわち、絶対値)と符号とをそれぞれ指示する。これらのシンタックス要素は、次のように、DcOffset[x0][y0][i]を導出するために使用される。
[0177]DMMを使用してコーディングされた各区分に対するデルタDC値の導出は、次の通りである。ビデオエンコーダ20などの、エンコーダ側において、各区分i(i=0,1)について、予測されたDC値predDC[i]が、近傍参照サンプルを使用して導出される。区分i内の元の(オリジナルの)サンプルの平均値は、origDC[i]として計算される。DLTが適用されない場合、残差値deltaDC[i]は、origDC[i]−predDC[i]として導出される。そうでない場合、DLTが適用され、deltaDC[i]は、DLT[origDC[i]]−DLT[predDC[i]]として導出される。いずれの場合も、deltaDC[i]は、エンコーダの最適化に基づきさらに調整され得る。
[0178]ビデオデコーダ30などの、デコーダ側において、各区分i(i=0,1)について、残差値deltaDC[i]が受信され、予測されたDC値predDC[i]が近傍参照サンプルを使用して導出される。DLTが適用されない場合、区分i内の各予測サンプルの値(すなわち、再構築された深度値)は、predDC[i]+deltaDC[i]として導出される。そうでない場合、DLTが適用され、区分i内の各予測サンプルの値は、IDLT[DLT[predDC[i]]+deltaDC[i]]として導出される。
[0179]CCMを使用するDCコーディングに関係するシンタックス要素およびセマンティクスは、次のように定義される。
[0180]シンタックス要素edge_dc_flagは、CCMに対する深度データの残差値が存在しているかどうかを指示する。edge_dc_flag[x0][y0]が1に等しいことは、edge_dc_abs[x0][y0][i]およびedge_dc_sign_flag[x0][y0][i]が存在していることを指定し、edge_dc_flag[x0][y0]が0に等しいことは、edge_dc_abs[x0][y0][i]およびedge_dc_sign_flag[x0][y0][i]が存在していないことを指定する。
[0181]残差値が存在しているときに、edge_dc_abs[x0][y0][i]およびedge_dc_sign_flag[x0][y0][i]のシンタックス要素は、CCMに対する深度データの残差値の大きさ(すなわち、絶対値)と符号とをそれぞれ指示する。これらのシンタックス要素は、次のように、DcOffset[x0][y0][i]を導出するために使用される。
[0182]CCMを使用してコーディングされた各区分に対するデルタDC値の導出は、次の通りである。CCMにおいて、DLTは、決して適用されず、デルタDCは、スケーリング計数scaleFで、ビデオエンコーダ20などの、エンコーダ側で量子化されるようにコーディングされる。ここで、scaleFは、2(QPY/10-2)であり、最小値1と、最大値
2(BitDepthY-1)とでクリッピングされ、QPYは、ルーマ変換係数コーディングに対して適用される量子化パラメータを表し、BitDepthYは、ルーマサンプル表現に対して適用されるビット深度を指示する。そのようなスケーリング係数は、ビデオデコーダ30などの、デコーダ側で逆量子化を使用して補償される。このようにして、CCMに対してシグナリングされるデルタDCの値はかなり小さいものとしてよい。
[0183]ビデオエンコーダ20において、各区分i(i=0,1)について、予測されたDC値predDC[i]が、近傍参照サンプルを使用して導出される。区分i内の元のサンプルの平均値は、origDC[i]として計算される。各区分iについて、量子化された残差値deltaDC[i]は、(origDC[i]−predDC[i])/scaleFとして導出され、deltaDC[i]は、エンコーダの最適化に基づきさらに調整され得る。
[0184]ビデオデコーダ30側において、各区分iについて、量子化された残差値deltaDC[i]が受信され、残差値deltaDC[i]は、deltaDC[i]=deltaDC[i]*scaleFとして逆量子化される。その後、各区分iについて、予測されたDC値predDC[i]が、近傍参照サンプルを使用して導出される。区分i内の各予測サンプルの値(すなわち、再構築された深度値)は、deltaDC[i]とpredDC[i]との総和として導出される。本明細書では、CCMにおけるデルタDC値の導出に関わる上記の量子化および逆量子化プロセスは、高度量子化および高度逆量子化と称される。
[0185]SDCモードを使用する残差コーディングに関係するシンタックス要素およびセマンティクスは、次のように定義される。
[0186]シンタックス要素sdc_residual_flagは、SDCモードに対する深度データの残差値が存在しているかどうかを指示する。sdc_residual_flag[x0][y0][i]が0に等しいことは、残差がセグメントiに対してゼロであることを指定する。sdc_residual_flagが1に等しいことは、残差が非ゼロであり、sdc_residual_sign_flagおよびsdc_residual_abs[i]シンタックス要素がセグメントiに対して存在していることを指定する。
[0187]残差値が存在しているときに、sdc_residual_abs_minus1[x0][y0][i]およびsdc_residual_sign_flag[x0][y0][i]のシンタックス要素は、SDCモードに対する深度データの残差値の大きさ(すなわち、絶対値)と符号とをそれぞれ指示する。これらのシンタックス要素は、次のように、セグメントiについてSdcResidual[x0][y0][i]を導出するために使用される。
[0188]インターSDCモードを使用する残差コーディングに関係するシンタックス要素およびセマンティクスは、次のように定義される。
[0189]シンタックス要素inter_sdc_flagは、インターSDCモードに対する深度データの残差値が存在しているかどうかを指示する。inter_sdc_flagが1に等しいことは、残差ブロックの簡略深度コーディングが現在のコーディングユニット対して使用されることを指定する。inter_sdc_flagが0に等しいことは、残差ブロックの簡略深度コーディングが現在のコーディングユニット対して使用されないことを指定する。存在しないときには、inter_sdc_flagは、0であると推論される。
[0190]残差値が存在しているときに、inter_sdc_resi_abs_minus1[x0][y0][i]およびinter_sdc_resi_sign_flag[x0][y0][i]のシンタックス要素は、インターSDCモードに対する深度データの残差値の大きさ(すなわち、絶対値)と符号とをそれぞれ指示する。これらのシンタックス要素は、次のように、InterSdcResi[x0][y0][i]を導出するために使用される。
[0191]SDCモードとインターSDCモードとを使用してコーディングされた各区分に対するデルタDC値の導出は、次の通りである。SDCモードとインターSDCモードの両方において、各区分に対するデルタDC値は、DMMに関して上で説明されているのと類似の方法で導出される。ビデオエンコーダ20などの、エンコーダ側において、各区分i(i=0,1)について、予測されたDC値predDC[i]が、近傍参照サンプルを使用して導出される。区分i内の元のサンプルの平均値は、origDC[i]として計算される。DLTが適用されない場合、残差値deltaDC[i]は、origDC[i]−predDC[i]として導出される。そうでない場合、DLTが適用され、deltaDC[i]は、DLT[origDC[i]]−DLT[predDC[i]]として導出される。
[0192]ビデオデコーダ30などの、デコーダ側において、各区分i(i=0,1)について、残差値deltaDC[i]が受信され、予測されたDC値predDC[i]が近傍参照サンプルを使用して導出される。DLTが適用されない場合、区分i内の各予測サンプルの値(すなわち、再構築された深度値)は、predDC[i]+deltaDC[i]として導出される。そうでない場合、DLTが適用され、区分i内の各予測サンプルの値(すなわち、再構築された深度値)は、IDLT[DLT[predDC[i]]+deltaDC[i]]として導出される。
[0193]HEVCおよび3D−HEVCにおいて、ルーマ成分に対して、イントラ予測サンプルに使用される近傍参照サンプル、すなわち、残差値の生成は、ビデオエンコーダ20などの、エンコーダ側の生成プロセスの前に、およびビデオデコーダ30などの、デコーダ側の深度値再構築プロセスの前に、フィルタリングされる。フィルタリングは、与えられたイントラ予測モードと変換ブロックサイズとによって制御される。たとえば、イントラ予測モードがDCであるか、または変換ブロックサイズが4×4に等しい場合、近傍サンプルはフィルタリングされない。別の例として、与えられたイントラ予測モードと垂直モード(または水平モード)との間の距離が、事前定義された閾値より大きい場合、フィルタリングプロセスはイネーブルにされる。いくつかの例において、事前定義された閾値は、変換ブロックサイズ8、16、および32の各々に対して、それぞれ、7、1、および0である。
[0194]近傍サンプルフィルタリングについて、[1,2,1]フィルタおよび双線形(bi-linear)フィルタが使用され得る。双線形フィルタリングは、HEVCにおいて定義されているようないくつかの条件が真となる場合に、条件付きで使用される。従来の3D−HEVCでは、近傍参照サンプルのフィルタリングは、DMMに対して適用されないが、CCMに対して適用される。
[0195]3D−HEVCにおける深度コーディングモードの従来のコーディングおよびシグナリングメカニズムは、ビデオデコーダ30などの、デコーダ側にいくつかの問題を引き起こし得る。一例として、異なる深度イントラコーディングモード(DMM、SDCモード、およびCCMなどの)の使用の個別のシグナリングは、デコーダの解析の負担を増やす。別の例として、異なるシンタックス要素が、深度イントラコーディングモードの各々をコーディングするために導入される。したがって、追加のコンテキストモデルが必要であり、これはデコーダにおいてメモリの複雑度を増加させる。さらなる例において、DMMの使用は、1つのCUにおけるすべてのPUを横断する1つのループでシグナリングされる。それに加えて、1つのCU内のすべてのPUを横断する複数のループが、追加の情報コーディングするために使用され、これは必要ではないが、デコーダにおいて解析の複雑度を増加させる。
[0196]本開示で説明されている技術は、HEVCコーディングモードと異なる3D−HEVC規格における深度コーディングモードを使用して3Dビデオデータに対する深度データの符号化と復号とに関係する。3D−HEVCにおいて利用可能な追加の深度イントラコーディングモードの例は、DMM、SDCモード、およびCCMのうちの少なくとも2つを含む。それに加えて、追加の深度インターコーディングモードの一例は、インターSDCモードを含む。以下でより詳しく説明されている、技術は、ビデオエンコーダ20(図1および2)および/またはビデオデコーダ30(図1および3)によって実行され得、両方ともビデオコーダと総称され得る。
[0197]第1の例において、本開示の技術は、深度モデリングテーブル内の3Dビデオデータに対して深度マップをコーディングするために使用される深度イントラコーディングモードをシグナリングすることを含む。深度モデリングテーブルは、HEVCイントラコーディングモードに対するシンタックスから分離している追加の深度イントラコーディングモードに対するシンタックスをシグナリングする。この方法で、深度イントラコーディングモードに対する追加のシンタックスは、イントラコーディングモードに対するHEVCシンタックスにおけるオリジナルとの相互作用が少なくなるように設計されている。
[0198]これらの技術は、HEVCイントラモードと異なる深度イントラコーディングモードが3Dビデオデータに対してイネーブルにされているかどうかを示すためにフラグなどのシンタックス要素をシグナリングすることも含む。現在の深度レイヤがDMMを使用しているかどうかを示すためにビデオデータのビデオパラメータセット(VPS)内にvps_dmm_flagのみを有する代わりに、これらの技術は、DMM、CCM、およびSDCモードのうちの少なくとも2つを含む、深度イントラコーディングモードのどれかがイネーブルにされているか、または深度イントラコーディングモードのすべてがディセーブルにされているかを指示するためにビデオデータのVPS、SPS、またはPPSのうちの1つで単一のフラグをシグナリングすることを含む。いくつかの例では、この単一のフラグは、深度イントラコーディングモードのすべてがイネーブルにされているかどうかを指示し得る。本開示の技術は、HEVCイントラコーディングモードから分離している深度モデリングテーブル内に深度イントラコーディングモードをシグナリングすることと、深度イントラコーディングモードがイネーブルにされ、深度モデリングテーブルが解析されるべきときを指示することと、によってビデオデコーダ30において解析の負担を軽減することができる。
[0199]深度イントラコーディングモードがディセーブルにされたときに、ビデオデコーダ30は、深度モデリングテーブルを復号せず、深度イントラコーディングモードと異なる、HEVCイントラコーディングモードのうちの1つ、たとえば、HEVCイントラコーディングモードまたはHEVC I_PCMモードを選択する。深度イントラコーディングモードがイネーブルにされているときに、ビデオデコーダ30は、深度データをコーディングするために使用される深度イントラコーディングモードのうちの1つを選択するために深度モデリングテーブルを受信し、復号する。たとえば、深度モデリングテーブルは、DMMのサブモードのうちの1つ、SDCモードのサブモードのうちの1つ、または深度データを復号するためのCCMを指示する1つまたは複数のシンタックス要素を含み得る。いくつかの例において、DMMサブモードと、SDCサブモードと、CCMとを指示する異なるシンタックス要素は、異なるモードが1つのシンタックス要素によって指示されるように一緒にグループ化され得る。
[0200]代替的に、DMMのサブモードDMM_1およびDMM_3ならびにCCMは、HEVCイントラコーディングモードの一部として取り扱われ得る。この場合、深度モデリングテーブルは、DMMの少なくとも1つのサブモード、たとえば、DMM_2および/またはDMM_4と、SDCモードの3つのサブモード、すなわち、SDCM_DM、SDCM_DMM_1、およびSDCM_Planarとに対するシンタックス要素を含み得る。CCMがHEVCイントラコーディングモードとして定義される場合、これらの技術は、深度モデリングテーブルから分離しているチェーンコーディングテーブル内のCCMに対する深度データの残差情報をシグナリングすることを含む。
[0201]それに加えて、すべてのPUのdmm_flagと、すべてのPUのDMMサブモードと、すべてのPUの他のDMM関係情報とを複数のループで別々にシグナリングする代わりに、CUシンタックステーブルまたは深度モデリングテーブルは、1つのPUのすべてのDMM情報、その後に続く別のPUについての情報、というように次々に含むように設計され得る。したがって、現在のCU内のすべてのPUを横断するただ1つのループが必要である。
[0202]第2の例において、本開示の技術は、深度コーディングモードのうちの2つまたはそれより多くにわたって3Dビデオデータのための深度マップの残差情報のシグナリングを統合することを含む。深度データに対する残差情報を示すシンタックス要素のセットが定義され、ここにおいて、シンタックス要素の同じセットは、深度コーディングモードのどれかについての残差情報を示す。シンタックス要素のセットは、深度コーディングモードのうちのどれかについて、深度データの各コーディング区分についての少なくとも1つの残差値を指示する。
[0203]シンタックス要素の統合されたセットは、DMM、CCM、SDCモード、およびインターSDCモードのうちの少なくとも2つを含む、深度コーディングモードのうちのどれかに対して残差値がコーディングされるかどうかを指示するシンタックス要素を含み得る。シンタックス要素の統合されたセットは、深度コーディングモードのうちのどれかに対する残差値の絶対値と符号とを指示するシンタックス要素も含み得る。いくつかの場合において、シンタックス要素の統合されたセットは、上で説明されているように、深度モデリングテーブルに含めることができ、深度データをコーディングするために使用される深度イントラコーディングモードのうちの1つを指示し、また深度データの残差値を指示することができる。
[0204]従来の3D−HEVCプロセスでは、DMMとCCMとに対する残差情報のシグナリングは、シンタックス要素edge_dc_flagと、edge_dc_1_absと、edge_dc_2_absと、dmm_dc_1_absと、dmm_dc_2_absと、edge_dc_1_sign_flagと、edge_dc_2_sign_flagと、dmm_dc_1_sign_flagと、dmm_dc_2_sign_flagとによるものである。一例において、本開示で説明されている技術によれば、DMMとCCMとに対する残差情報のシンタックス要素は、ビデオデコーダ30における解析の負担を軽減し、残差情報のシンタックス要素に必要なコンテキストモデルの数を減らすように統合され得る。
[0205]別の例において、これらの技術は、DMMと、CCMと、SDCモードとに対する残差情報のシグナリングを統合する。さらなる例では、インターSDCモードに対する残差情報のシグナリングも、DMMと、CCMと、SDCモードとに対する残差情報のシグナリングと統合され得る。一般に、すべての深度コーディングモードについて、PUの2つの区分の各々またはPUの固有の区分だけについて残差がシグナリングされるとき、シグナリングメカニズムは、深度コーディングモードがシンタックス要素の同じセットを共有している仕方で統合され得る。
[0206]2つまたはそれより多くの深度コーディングモードについての残差情報を指示するためにシンタックス要素の同じセットを共有することによって、シンタックス要素に対するコンテキストモデル選択および2値化方法も統合され得る。たとえば、ただ1つのコンテキストモデルが、深度コーディングモードのうちの2つまたはそれより多くにわたって共有されるシンタックス要素の各々について必要になり得る。このようにして、コンテキストモデルの同じセット、たとえば、共有されるシンタックス要素の各々に対して1つが、深度コーディングモードのどれかに適用され得る。それに加えて、単一のコンテキストモデル選択方法が、深度コーディングモードのどれかに対して使用され得る。
[0207]これらの技術により、コンテキストモデル選択は、現在の深度ブロックの区分の数に基づくものとしてよい。残差値がインターSDCモードについてコーディングされるかどうかをシグナリングするシンタックス要素に対して、コンテキストモデル選択は、現在のCUに対して適用された区分の数に依存し得る。その一方で、残差値がDMM、CCM、またはSDCモードについてコーディングされるかどうかをシグナリングする同じシンタックス要素に対して、コンテキストモデル選択は、現在のPUに対して適用された区分の数に依存し得る。
[0208]従来の3D−HEVCプロセスにおいて、DMMと、CCMと、SDCモードとに対する残差値の絶対値をシグナリングするシンタックス要素の2値化は、現在は、シンタックス要素edge_dc_absと、dmm_dc_absと、sdc_residual_abs_minus1とによってそれぞれ表されている。本開示の技術は、同じ2値化方法を使用してビデオデコーダ30において解析の複雑度を低減することによってこれらのシンタックス要素を統合することを含む。これらのシンタックス要素の統合2値化方法は、SDCモード内のシンタックス要素、すなわち、sdc_residual_abs_minus1、またはDMM、すなわち、dmm_dc_absに従来から使用されている2値化方法のどれかと同じであるものとしてよい。
[0209]インターSDCモードに対する残差値の絶対値をシグナリングするシンタックス要素の2値化も、SDCモードまたはDMMに対する2値化方法と同じになるように統合され得る。一般に、深度CU(または深度PU)を複数のセグメントに区分し、1つの残差値のみが各セグメントに対してシグナリングされるすべての深度コーディングモードでは、残差値の絶対値と符号とをシグナリングするシンタックス要素の2値化は、ビデオデコーダ30において解析の複雑度を低減するように統合され得る。本開示の技術は、深度コーディングモードに対する残差情報コーディングメカニズムを統合することによって、デコーダの解析の負担を軽減し、必要なコンテキストモデルおよび2値化方法の数を減らすことができる。
[0210]それに加えて、深度イントラモードについて、近傍参照サンプルは、残差値と称されるイントラ予測サンプルの生成時に、または残差値に基づく深度値の再構築時に、フィルタリングされ得ない。たとえば、本開示の技術によれば、イントラ予測サンプル生成における近傍参照サンプルのフィルタリングは、ディセーブルにされ、DMMと、CCMと、SDCモードのサブモードSDCM_DMM_1において適用され得ない。
[0211]上で説明されているように、従来の3D−HEVCプロセスでは、近傍参照サンプルのフィルタリングは、SDCモードのサブモードSDCM_DCを含む、DCイントラ予測モードに対してすでにディセーブルにされている。別の例において、イントラ予測サンプル生成における近傍参照サンプルのフィルタリングは、SDCモードのサブモードSDCM_Planarに対してさらにディセーブルにされ得る。このようにして、ビデオデコーダ30は、近傍参照サンプルをフィルタリングすることなく受信された残差情報と、近傍参照サンプルとに基づき深度コーディングモードのどれかに従ってビデオデータの深度値を再構築するように深度データを復号することができる。同様に、ビデオエンコーダ20は、近傍参照サンプルをフィルタリングすることなくビデオデータの元の深度値と、近傍参照サンプルとに基づき深度コーディングモードのどれかに従って深度データの残差値を生成することができる。
[0212]代替として、DMMと、CCMと、SDCモードのサブモードSDCM_DMM_1およびSDCM_Planarとに対して、イントラ予測サンプル生成における近傍参照サンプルのフィルタリングは、常に適用され得る。この場合、フィルタリング方法は、適用される深度コーディングモードに依存し得る。
[0213]さらに、これらの技術は、深度ルックアップテーブル(DLT)を使用してDMM、SDCモード、インターSDCモード、およびCMMのうちのどれか対する区分について1つの単一の送信される残差値に基づき深度値を再構築するために使用されるプロセスを統合することを含む。深度コーディングモードのどれかに対し、ビデオデコーダ30において、DLTは、予測値インデックスを区分の予測値、すなわち、再構築された深度値に変換するために使用され得、予測値インデックスは、送信される残差値と予測されたDC値インデックスとの和である。CCMに従った予測値と区分に対する1つの単一の送信される残差値とに基づき残差情報を生成するときに、単一の残差値のビデオエンコーダ20における高度量子化およびビデオデコーダ30における高度逆量子化は取り除かれ得る。高度量子化をCCMから取り除くことによって、復号プロセスは、DLTを使用するためにDMMおよびSDCモードと統合され得る。
[0214]このようにして、ビデオデコーダ30は、コーディング区分について受信された単一の残差値と、近傍参照サンプルから導出された予測値を識別するDLTインデックス値との和に等しいインデックス値を持つ値を探すためにDLTを使用して、コーディング区分内に深度値を再構築する。ビデオデコーダ30は、受信された単一の残差値の高度逆量子化を実行しない。同様に、ビデオエンコーダ20は、DLTを使用してコーディング区分に対する単一の残差値を生成し、コーディング区分に対する単一の残差値は、コーディング区分内の元の深度値の平均値を識別する第1のDLTインデックス値と近傍参照サンプルから導出される予測値を識別する第2のDLTインデックス値との差に等しい。ビデオエンコーダ20は、生成された単一の残差値の高度量子化を実行しない。
[0215]3D−HEVC内の3Dビデオデータの深度値の深度コーディングモードのシグナリングのいくつかの詳細な実装例が、以下で説明されている。
[0216]本開示の技術の第1の例において、ビデオエンコーダ20は、深度イントラコーディングモードがイネーブルにされていることを指示するフラグを符号化し、深度データを符号化するために使用される深度イントラコーディングモードのうちの選択された1つを指示する1つまたは複数のシンタックス要素を含む深度モデリングテーブルを符号化する。深度イントラコーディングモードがイネーブルにされているときに、シグナリングされたフラグによって指示されているように、ビデオデコーダ30は、深度モデリングテーブルを受信および復号して、深度イントラコーディングモードを選択し、深度データを復号する。
[0217]この例では、深度コーディングモードで複数のシンタックス要素を使用してSDCモード、DMM、またはHEVCイントラコーディングモード(CCMを含む)の使用を指示する代わりに、1つのシンタックス要素で、DMM、SDCモード、およびCCMのうちの少なくとも2つを含む、深度イントラコーディングモードのイネーブルを指示する。深度イントラコーディングモードのうちの選択された1つを指示する1つまたは複数のシンタックス要素は、HEVCシンタックスから分離している深度モデリングテーブルに含まれ、いくつかの条件が、CUに対するHEVCシンタックスから取り除かれ得る。
[0218]深度モデリングテーブルをシグナリングする第1の例示的な技術の第1の代替的形態において、CUシンタックステーブルと深度モデリングテーブルとの中の深度ビューのイントラコーディングモードを指示するために1つのシンタックス要素depth_intra_modeが追加され、CCMは、HEVCイントラ予測モードの一部になる代わりに、1つの追加の深度イントラコーディングモードとしてシグナリングされる。他の例では、複数のシンタックス要素が、CUシンタックステーブルと深度モデリングテーブルとの中の深度イントラコーディングモードを指示し得る。3D−HEVC規格への追加は、以下では灰色で強調表示され、3D−HEVC規格からの削除は、取消線(−)を使用して示されている。
[0219]新規に導入されたシンタックス「depth_modeling_table」は、次のように定義され得る。
[0220]CUシンタックステーブルと深度モデリングテーブルとに対するセマンティクスは、次のように定義される。
[0221]DepthModesFlagは、VPSにおける各深度レイヤについてシグナリングされるシンタックス要素depth_modes_flagに等しくなるように設定され得る。depth_modes_flag[i]が1に等しいことは、DMM、CCM、およびSDCモードがlayer_idがiに等しい深度レイヤに対してイネーブルにされることを指示する。depth_modes_flag[i]が0に等しいことは、DMM、CCM、およびSDCモードがlayer_idがiに等しい深度レイヤに対してディセーブルにされることを指示する。
[0222]no_residual_syntax_flag(HEVCの指定におけるrqt_root_cbf)が1に等しいことは、transform_tree( )シンタックスが現在のコーディングユニットに対して存在していることを指定する。rqt_root_cbfが0に等しいことは、transform_tree( )シンタックスが現在のコーディングユニットに対して存在していないことを指定する。rqt_root_cbfが存在せず、sdcFlag[x0][y0]が0に等しいときに、その値は1に等しいと推論される。rqt_root_cbfが存在せず、sdcFlag[x0][y0]が1に等しいときに、その値は0に等しいと推論される。
[0223]代替的に、SDCモードに対するno_residual_syntax_flagのセマンティクスおよび残差情報のシグナリング(sdc_residual_flag、sdc_residual_sign_flag、およびsdc_residual_abs_minus1を含む)は、変更されることなく保持される。この場合、上で表されている深度モデリングテーブル(表の最後から2番目の行において「else if(sdcFlag[x0][y0]) {」から始まり、「}」で終わる)は取り除かれ得る。
[0224]intra_chroma_pred_mode[x0][y0]は、クロマサンプルに対するイントラ予測モードを指定する。配列のインデックスx0、y0は、ピクチャの左上のルーマサンプルに関する考察されている予測ブロックの左上のルーマサンプルの配置(x0,y0)を指定する。現在のビューコンポーネントが深度ビューコンポーネントであるときに、このシンタックスは存在しない。代替的に、SDCモードが現在のコーディングユニットに対して適用されるときに、このシンタックスは存在しない。
[0225]depth_intra_mode[x0][y0]は、以下の表1に示されている値のうちの1つであり得る。3D−HEVC規格への追加は、以下では灰色で強調表示され、3D−HEVC規格からの削除は、取消線を使用して示されている。
[0226]いくつかの代替的形態において、DepthIntraModeを提示する他のビン列が適用され得る。それに加えて、prev_intra_luma_pred_flagは、現在のモードがDMMであるとき、たとえば、depth_intra_modeがSDCM_DMM_1とDMM_1とに等しいときに存在する。代替的に、表1において、サブモードDMM_2は、取り除かれ得る。さらに、表1において、深度イントラコーディングモードの他の順序が適用され得る。
[0227]さらなる代替として、サブモードDMM_2は、CCMで置き換えられ、上記の表1は、以下の表2のように再定義され得る。
[0228]DMM_2がCCMと置き換えられる場合、上の表2に示されているように、深度モデリングテーブルのシンタックスは、図示されているようにラインを取り除くことによって修正され得る。上に提示されている深度モデリングテーブルからの削除は、取消線を使用して示されている。
[0229]上に提示されている修正された深度モデリングテーブルに対するセマンティクスは、次のように定義される。
[0230]dmm_delta_flag[x0][y0]が0に等しいことは、DCオフセット値が利用不可能であることを指定し、dmm_delta_flag[x0][y0]が1に等しいことは、DCオフセット値が利用可能であることを指定する。dmm_delta_flag[x0][y0]が1に等しいときに、各区分に対するDCオフセット値、すなわち、残差値は、dmm_dc_absとdmm_dc_sign_flagとによってさらにシグナリングされる。
[0231]dmm_dc_abs[x0][y0][i]およびdmm_dc_sign_flag[x0][y0][i]は、次のようにQuantDCOffsetPi[x0][y0]値を導出するために使用される。
[0232]edge_dc_abs[x0][y0][i]およびedge_dc_sign_flag[x0][y0][i]およびDcOffsetPi[x0][y0]値は、次の通りである。
[0233]シンタックス要素depth_intra_modeを復号するときに、以下の表3に示されている次のコンテキストモデルは、第1および/または第2のビンをコーディングするために適用され得る。
[0234]表3に示されているコンテキストモデル仕様の一代替において、第2のビンをコーディングするためのcondLとcondAとの使用は、第1のビンが0に等しいとき、すなわち、(depth_intra_mode<3)のときにのみ適用され得る。別の代替的形態では、シンタックス要素depth_intra_modeの第1の2つのビンの各々に対して、ただ1つのコンテキストが使用され得る。さらなる代替的形態において、第1のビンに対してただ1つのコンテキストが使用され、第2のビンは、バイパスコーティングされ得る。シンタックス要素depth_intra_modeの残りのビンについては、1つのコンテキストがそれらの各々に対して使用され得る。他の例では、depth_intra_modeの残りのビンは、バイパスコーティングされ得る。シンタックス要素depth_intra_modeをコーディングするために使用されるコンテキストの初期化は、スライスタイプに依存し得る。
[0235]深度モデリングテーブルをシグナリングする第1の例示的な技術の第2の代替的形態は、上で説明されている第1の代替的形態に類似している。しかし、第2の代替的形態において、DMMおよびCCMの深度イントラコーディングモードと、関連する残差情報と、のシグナリング、すなわち、深度モデリングテーブル内でシンタックス要素dmm_delta_flagと、edge_dc_flagと、edge_dc_absと、dmm_dc_absと、edge_dc_sign_flagと、dmm_dc_sign_flagとを使用することは、次のようにさらに統合され得る。上で説明されている第1の代替的形態上の深度モデリングへの追加は、灰色で強調表示され、削除は、取消線を使用して示されている。
[0236]修正された深度モデリングテーブルに対するセマンティクスは、次のように定義される。
[0237]dmm_cmm_delta_flag[x0][y0]が0に等しいことは、DCオフセット値が利用不可能であることを指定し、dmm_cmm_delta_flag[x0][y0]が1に等しいことは、CCMまたはDMMコーディングされたPUに対してDCオフセット値が利用可能であることを指定する。dmm_cmm_delta_flag[x0][y0]が1に等しいときに、各区分に対するDCオフセット値は、dmm_cmm_dc_absとdmm_cmm_dc_sign_flagとによってさらにシグナリングされる。
[0238]dmm_cmm_dc_abs[x0][y0][i]およびdmm_cmm_dc_sign_flag[x0][y0][i]は、次のようにQuantDCOffsetPi[x0][y0]値を導出するために使用される。
[0239]深度モデリングテーブルをシグナリングする第1の例示的な技術の第3の代替的形態は、上で説明されている第1の代替的形態に類似している。しかし、第3の代替的形態では、利用可能な深度イントラモードの数は、従来の3D−HEVC規格から変更なく保持されるが、1つのシンタックス要素、すなわち、depth_intra_modeは、CUシンタックステーブルと深度モデリングテーブルとの中の1つのPUのイントラコーディングモードをシグナリングするために使用される。深度イントラコーディングモード、すなわち、DMMとSDCモードとに関係する追加のシンタックス要素は、CUシンタックステーブル内のHEVCイントラコーディングモードのシンタックスから分離している深度モデリングテーブル内に入れられる。この例では、CCMは、HEVCイントラコーディングモードの一部として定義されるので、チェーンコーディングシンタックステーブルは、深度モデリングテーブルから分離して導入される。上で説明されている第1の代替的形態の上のCUおよび深度モデリングへの追加は、灰色で強調表示され、削除は、取消線を使用して示されている。
[0240]第3の代替的形態において、CCM関係シンタックス要素は、深度モデリングテーブルから取り除かれ、その代わりに、新しいチェーンコーディングシンタックステーブル「ccm_info」が導入される。
[0241]上に提示されている修正された深度モデリングテーブルに対するセマンティクスは、次のように定義される。depth_intra_mode[x0][y0]は、以下の表4に示されている値のうちの1つであり得る。表4は、従来の3D−HEVC規格から変わっていない利用可能な深度イントラモードを表している。
[0242]一代替的形態において、0、1、および2に等しいシンタックス要素depth_intra_modeについてのビン列(すなわち、SDCM Planarと、CCMを含むHEVCイントラと、SDCM_DMM_1とを指示する)は、「000」と、「001」と、「01」とにそれぞれ設定され得る。別の代替的形態において、0、1、および2に等しいシンタックス要素depth_intra_modeについてのビン列は、「000」と、「01」と、「001」とにそれぞれ設定され得る。さらなる代替的形態において、第1の3つの深度イントラモードの他の順序が使用され得る。一般に、DepthIntraModeを提示する他のビン列が適用され得る。
[0243]たとえば、3D−HEVC規格における深度イントラモードの利用可能な数は、1だけ減らされ得、すなわち、DMM_2は削除され得る。上に提示されている深度モデリングテーブルからのセマンティクスおよびシンタックステーブルの変更は、表5および以下に提示されている修正された深度モデリングシンタックステーブルにおいて取消線を使用して示されている。
[0244]別の例では、SDCモードのサブモードSDCM_DCは、深度イントラコーディングにおいて考慮され得ない。その場合、6に等しいdepth_intra_modeは、CCMで置き換えられ得る。
[0245]深度モデリングテーブルをシグナリングする第1の例示的な技術の第4の代替的形態は、上で説明されている第3の代替的形態に類似している。しかし、第4の代替的形態において、DMMのサブモードDMM_1およびDMM_3は、HEVCイントラコーディングモードの一部として取り扱われる。上で説明されている第3の代替的形態の上のCUおよび深度モデリングテーブルのシンタックスとセマンティクスとへの追加は、灰色で強調表示され、削除は、取消線を使用して示されている。
[0246]上に提示されているCUシンタックステーブルと修正された深度モデリングテーブルとに対するセマンティクスは、次のように定義される。depth_intra_mode[x0][y0]は、以下の表6に示されている値のうちの1つであり得る。
[0247]dmm_ccm_directional_intra_idc[x0+i][y0+i]は、以下の表7に示されている値のうちの1つであり得る。
[0248]本開示の技術の第2の例において、DMMと、HEVCイントラモードと、CCMとに対するシンタックステーブルおよびシンタックス要素は、簡略化される。この例では、すべてのPUのdmm_flagと、すべてのPUのDMMサブモードと、すべてのPUの他のDMM関係情報とを複数のループで別々にシグナリングする代わりに、CUシンタックステーブルまたは深度モデリングテーブルは、1つのPUのすべてのDMM情報、その後に続く別のPUに対する情報、というように次々に含むように設計され得る。したがって、現在のCU内のすべてのPUを横断するただ1つのループが必要である。
[0249]深度イントラコーディングモードに対するシンタックステーブルと要素とを簡略化する第2の例示的な技術の第1の代替的形態において、関係するセマンティクスは変更なく保持されるが、CUシンタックステーブルは、ビデオデコーダ30側の解析プロセスに対してより簡単になるように修正される。3D−HEVC規格への追加は、以下では灰色で強調表示され、3D−HEVC規格からの削除は、取消線を使用して示されている。
[0250]深度イントラコーディングモードに対するシンタックステーブルと要素とを簡略化する第2の例示的な技術の第2の代替的形態において、DCオフセットのシグナリングに関係するシンタックス要素は、DMMまたはCCMが適用されるときに統合される。上で説明されている第2の代替的形態の上のCUシンタックステーブルのシンタックスとセマンティクスとへの追加は、灰色で強調表示され、削除は、取消線を使用して示されている。
[0251]上に提示されているCUシンタックステーブルに対するセマンティクスは、次のように定義される。
[0253]本開示の技術の第3の例において、ビデオエンコーダ20は、深度コーディングモードのうちの2つまたはそれ以上にまたがって統合されているシグナリングメカニズムを使用して3Dビデオデータに対する深度データの残差情報をシグナリングする。このようにして、ビデオデコーダ30は、シンタックス要素の同じセットを復号して、深度コーディングモードのどれかに対する残差情報を決定することができる。シンタックス要素の統合されたセットは、深度コーディングモードのうちのどれかに対して残差値がコーディングされるかどうかを指示するシンタックス要素を含み得る。シンタックス要素の統合されたセットは、深度コーディングモードのうちのどれかに対する残差値の絶対値と符号とを指示するシンタックス要素も含み得る。深度コーディングモードの2つまたはそれ以上について残差情報を指示するためにシンタックス要素の同じセットを共有することによって、シンタックス要素に対するコンテキストモデル選択および2値化方法も統合され得る。
[0254]3D−HEVC規格への追加は、以下では灰色で強調表示され、3D−HEVC規格からの削除は、取消線を使用して示されている。3D−HEVCに対する作業ドラフト(文書番号:JCT3V−E1001)は、 http://phenix.int−evry.fr/jct3v/doc_end_user/documents/5_Vienna/wg11/JCT3V−E1001−v3.zipから入手可能である。3D−HEVCのソフトウェア説明(文書番号:JCT3V−E1005)は、 http://phenix.int−evry.fr/jct3v/doc_end_user/documents/5_Vienna/wg11/JCT3V−E1005−v1.zipから入手可能である。
[0255]上に提示されている深度モードパラメータのシンタックステーブルに関連付けられているセマンティクスは、次のように定義される。
[0273]本開示の技術の第4の例は、上で説明されている第3の例に類似している。しかし、第4の例では、イントラ予測サンプル生成時に使用される近傍基準サンプルのフィルタリングは、DMMと、CCMと、少なくともSDCモードのサブモードSDCM_DMM_1に対して取り除かれる。上で説明されているように、フィルタリングは、サブモードSDCM_DCを含む、DCイントラ予測モードに対してすでにディセーブルにされている。いくつかの例では、フィルタリングも、SDCモードのサブモードSDCM_Planarに対して取り除かれ得る。
[0274]この例では、ビデオエンコーダ20は、近傍基準サンプルをフィルタリングすることなく、ビデオデータの元の深度値と近傍基準サンプルとに基づき3Dビデオデータに対する深度データの残差値を生成する。同様に、ビデオデコーダ30は、近傍基準サンプルをフィルタリングすることなく、深度データの受信された残差値と近傍基準サンプルとに基づきビデオデータの深度値を再構築する。
[0275]3D−HEVC規格への追加は、以下では灰色で強調表示され、3D−HEVC規格からの削除は、取消線を使用して示されている。
[0281]図10は、深度モデリングテーブルにおける3Dビデオデータに対する深度データを符号化するために使用される深度イントラモードを示すビデオエンコーダの例示的な動作を示す流れ図である。例示的な動作は、図1および図2からのビデオエンコーダ20に関して説明されている。ビデオエンコーダ20は、符号化されたビデオデータの少なくとも一部を表すビデオビットストリームを生成する。この例では、ビデオデータは、テクスチャデータおよび対応する深度データが3D−HEVCプロセスに従ってコーディングされるマルチビュー・プラス・深度フォーマットで表されている3Dビデオデータを備える。ビデオデータの深度データは、ビデオデータの対応するテクスチャデータに対する深度データを表す深度マップであってよい。
[0282]本開示の技術により、ビデオエンコーダ20は、HEVCイントラコーディングモードと異なる複数の深度イントラコーディングモードのうちの選択された1つを使用してビデオデータに対する深度データを符号化する(300)。深度イントラコーディングモードは、DMM、SDCモード、およびCCMのうちの少なくとも2つを含み得る。ビデオエンコーダ20は、ビデオデータの元の深度値と近傍参照サンプルとに基づき選択された深度イントラコーディングモードに従って予測された深度データの残差値を生成することができる。次いで、ビデオエンコーダ20は、深度イントラモードがビデオデータに対してイネーブルにされていることを指示するシンタックス要素を符号化する(302)。シンタックス要素は、フラグの第1の値が深度イントラコーディングモードのうちの少なくとも1つがイネーブルにされていることを指示し、フラグの第2の値が深度イントラコーディングモードのうちのどれもイネーブルにされていないことを指示する深度モードフラグである。他の例では、シンタックス要素は、フラグの第1の値が深度イントラコーディングモードのすべてがイネーブルにされていることを指示し、フラグの第2の値が深度イントラコーディングモードのうちのどれもイネーブルにされていないことを指示する深度モードフラグであってよい。
[0283]深度イントラコーディングモードがイネーブルにされていることを指示するシンタックス要素に基づき、ビデオエンコーダ20は、HEVCイントラコーディングモードに対するシンタックス要素から分離している深度イントラコーディングモードのうちの選択された1つを指示するシンタックス要素を含む深度モデリングテーブルをさらに符号化する(304)。たとえば、深度モデリングテーブルは、DMMのサブモードのうちの1つ、SDCモードのサブモードのうちの1つ、またはCCMなどの、深度データを符号化するために使用される特定の深度イントラコーディングモードを指示する1つまたは複数のシンタックス要素を含み得る。いくつかの例では、CCMおよび/またはDMMサブモードのうちの少なくとも1つがHEVCイントラコーディングモードとして定義され得、したがって、深度モデリングテーブルには含まれ得ない。
[0284]それに加えて、深度モデリングテーブルは、指定された深度イントラコーディングモードに対する深度データの残差情報を指示するシンタックス要素のセットを含み得る。シンタックス要素のセットは、深度データの残差値が存在しているかどうか、もし存在すれば、深度データの残差値の絶対値と符号とを指示するシンタックス要素を含み得る。いくつかの例において、シンタックス要素の同じセットは、複数の深度イントラコーディングモードのどれかに対する残差情報を指示し得る。
[0285]深度データが深度イントラコーディングモードと異なるHEVCイントラコーディングモードのうちの1つを使用して符号化され、シンタックス要素が、深度イントラモードのどれもがイネーブルにされていないことを指示する場合、ビデオエンコーダ20は、深度モデリングテーブルを符号化または送信することをしない。その代わりに、その場合、ビデオエンコーダ20は、HEVCイントラコーディングモードのうちの1つを指示する1つまたは複数のシンタックス要素を符号化する。たとえば、指示されたHEVCイントラコーディングモードは、HEVCイントラコーディングモードまたはHEVC I_PCMモードであってもよい。いくつかの例では、指示されたHEVCイントラコーディングモードは、HEVCイントラコーディングモードとして定義されたDDMのサブノードまたはCCMであってよい。CCMがHEVCイントラコーディングモードとして定義されている場合、CCMに対するシンタックス要素は、深度モデリングテーブルに含まれないが、その代わりに、別のチェーンコーディングテーブル内に含まれ得る。
[0286]図11は、深度モデリングテーブルから3Dビデオデータに対する深度データを復号するために深度イントラコーディングモードを選択するビデオデコーダの例示的な動作を示す流れ図である。例示的な動作は、図1および図3からのビデオデコーダ30に関して説明されている。ビデオデコーダ30は、符号化されたビデオデータの少なくとも一部を表すビデオビットストリームを受信する。この例では、ビデオデータは、テクスチャデータおよび対応する深度データが3D−HEVCプロセスに従ってコーディングされるマルチビュー・プラス・深度フォーマットで表されている3Dビデオデータを備える。ビデオデータの深度データは、ビデオデータの対応するテクスチャデータに対する深度データを表す深度マップであってよい。
[0287]本開示の技術によれば、ビデオデコーダ30は、複数の深度イントラコーディングモードがビデオデータに対してイネーブルにされているかどうかを指示するシンタックス要素をビットストリームから復号し、深度イントラコーディングモードは、HEVCイントラコーディングモードと異なる(310)。深度イントラコーディングモードは、DMM、SDCモード、およびCCMのうちの少なくとも2つを含み得る。シンタックス要素は、フラグの第1の値が深度イントラコーディングモードのうちの少なくとも1つがイネーブルにされていることを指示し、フラグの第2の値が深度イントラコーディングモードのうちのどれもイネーブルにされていないことを指示する深度モードフラグであってよい。他の例では、シンタックス要素は、フラグの第1の値が深度イントラコーディングモードのすべてがイネーブルにされていることを指示し、フラグの第2の値が深度イントラコーディングモードのうちのどれもイネーブルにされていないことを指示する深度モードフラグであってよい。深度イントラコーディングモードがイネーブルにされていることを指示するシンタックス要素を復号した後(312の「はい」分岐)、ビデオデコーダ30は、HEVCイントラコーディングモードに対するシンタックス要素から分離している深度イントラコーディングモードに対するシンタックス要素を含む深度モデリングテーブルをさらに復号する(316)。
[0288]シンタックス要素が、深度イントラモードのどれもがイネーブルにされていないことを指示する場合(312の「いいえ」分岐)、ビデオデコーダ30は、深度モデリングテーブルを復号しない。その代わりに、その場合に、ビデオデコーダ30は、深度イントラコーディングモードと異なるHEVCイントラコーディングモードのうちの1つを選択する(314)。選択されるHEVCイントラコーディングモードは、HEVCイントラコーディングモードまたはHEVC I_PCMモードであってもよい。いくつかの例では、選択されるHEVCイントラコーディングモードは、HEVCイントラコーディングモードとして定義されたDMMのサブノードまたはCCMであってよい。CCMがHEVCイントラコーディングモードとして定義されている場合、CCMに対するシンタックス要素は、深度モデリングテーブルに含まれないが、その代わりに、別のチェーンコーディングテーブル内に含まれ得る。
[0289]深度インターコーディングがビデオデータに対してイネーブルにされ、ビデオデコーダ30が、深度モデリングテーブルを復号するときに(312、316の「はい」分岐)、ビデオデコーダ30は、深度モデリングテーブル内のシンタックス要素に基づき深度イントラコーディングモードのうちの1つを選択する(318)。たとえば、深度モデリングテーブルは、DMMのサブモードのうちの1つ、SDCモードのサブモードのうちの1つ、またはCCMなどの、深度データを復号するための特定の深度イントラコーディングモードを指示する1つまたは複数のシンタックス要素を含み得る。いくつかの例では、CCMおよび/またはDMMサブモードのうちの少なくとも1つがHEVCイントラコーディングモードとして定義され得、したがって、深度モデリングテーブルには含まれ得ない。
[0290]それに加えて、深度モデリングテーブルは、指定された深度イントラコーディングモードに対する深度データの残差情報を指示するシンタックス要素のセットを含み得る。シンタックス要素のセットは、深度データの残差値が存在しているかどうか、もし存在すれば、深度データの残差値の絶対値と符号とを指示するシンタックス要素を含み得る。いくつかの例において、シンタックス要素の同じセットは、複数の深度イントラコーディングモードのどれかに対する残差情報を指示し得る。
[0291]次いで、ビデオデコーダ30は、選択された深度イントラコーディングモードを使用してビデオデータに対する深度データを復号する(320)。たとえば、ビデオデコーダ30は、深度データの残差値と近傍参照サンプルとに基づき選択された深度イントラコーディングモードに従ってビデオデータの深度値を再構築することができる。次いで、ビデオデータの再構築された深度値は、表示デバイス上に3Dビデオデータを提示するために記憶されるか、または使用され得る。
[0292]図12は、2つまたはそれより多くの深度コーディングモードに対して統合されたメカニズムを使用する3Dビデオデータに対する深度データの残差情報を示すビデオエンコーダの例示的な動作を示す流れ図である。例示的な動作は、図1および図2からのビデオエンコーダ20に関して説明されている。ビデオエンコーダ20は、符号化されたビデオデータの少なくとも一部を表すビデオビットストリームを生成する。この例では、ビデオデータは、テクスチャデータおよび対応する深度データが3D−HEVCプロセスに従ってコーディングされるマルチビュー・プラス・深度フォーマットで表されている3Dビデオデータを備える。ビデオデータの深度データは、ビデオデータの対応するテクスチャデータに対する深度データを表す深度マップであってよい。
[0293]ビデオエンコーダ20は、ビデオデータに対して深度データを符号化するための複数の深度コーディングモードのうちの1つを選択する(330)。深度イントラコーディングモードは、DMM、SDCモード、およびCCMのうちの少なくとも2つを含む深度イントラコーディングモードであり得る。他の例では、深度コーディングモードは、深度イントラコーディングモードと深度インターコーディングモードの両方を含み得る。この場合、深度コーディングモードは、DMM、SDCモード、インターSDCモード、およびCCMのうちの少なくとも2つを含み得る。
[0294]本開示の技術によれば、ビデオデコーダ30は、選択された深度コーディングモードに従って深度データを符号化する前に近傍参照サンプルをフィルタリングし得ない(332)。いくつかの場合において、近傍参照サンプルのフィルタリングは、深度イントラコーディングモードのどれかに対してディセーブルにされ得る。他の場合において、近傍参照サンプルのフィルタリングは、DDMと、CCMと、SDCモードの少なくともサブモードSDCM_DCおよびSDCM_DMM_1と、に対してディセーブルにされ得る。次いで、ビデオエンコーダ20は、選択された深度コーディングモードを使用してビデオデータに対する深度データを符号化してビデオデータの元の深度値と近傍参照サンプルとに基づき予測された深度データの残差情報を生成する(334)。
[0295]ビデオエンコーダ20は、ビデオデータに対する選択された深度コーディングモードを指示する1つまたは複数のシンタックス要素を符号化する(336)。いくつかの例において、ビデオ符号化20は、異なる深度コーディングモードの各々を指示するように異なるシンタックス要素を符号化し得る。他の例では、ビデオエンコーダ20は、深度イントラモードがビデオデータに対してイネーブルにされていることを指示するシンタックス要素を符号化し得る。シンタックス要素が、深度イントラコーディングモードがイネーブルにされていることを指示するときに、ビデオエンコーダ20は、HEVCイントラコーディングモードに対するシンタックス要素から分離している、深度イントラコーディングモードのうちの選択された1つを指示する1つまたは複数のシンタックス要素を含む深度モデリングテーブルをさらに符号化し得る。
[0296]次いで、本開示の技術によれば、ビデオエンコーダ20は、ビデオデータに対する深度データの残差情報を指示するシンタックス要素のセットを符号化し、シンタックス要素の同じセットが複数の深度コーディングモードのどれかに対する残差情報を示す(338)。たとえば、シンタックス要素のセットは、深度コーディングモードのうちのどれかに対する深度データの各コーディング区分に対する少なくとも1つの残差値を指示し得る。シンタックス要素のセットは、DMM、SDCモード、インターSDCモード、およびCCMのうちの少なくとも2つの間で共有され得る。
[0297]ビデオエンコーダ20は、単一のコンテキストモデル選択方法を使用して単一のコンテキストモデルのセットから深度コーディングモードのうちのどれかに対する残差情報を指示するシンタックス要素のセットに対するコンテキストモデルを選択し得る。たとえば、ただ1つのコンテキストモデルが、深度コーディングモデルのうちの2つまたはそれより多くにわたって共有されるシンタックス要素の各々について必要になり得る。このようにして、コンテキストモデルの同じセット、たとえば、共有されるシンタックス要素の各々に対して1つのセットが、深度コーディングモードのどれかに適用され得る。
[0298]深度データの残差情報を指示するシンタックス要素のセットは、深度データの残差値が深度コーディングモードのどれかについて存在しているかどうかを指示するシンタックス要素を含み得る。たとえば、シンタックス要素のセットが、深度イントラコーディングモードのどれかに対する残差情報を指示する場合、ビデオエンコーダ20は、深度データの現在のPUについて適用されるコーディング区分の数に基づき深度データの残差値が存在しているかどうかを指示するシンタックス要素に対するコンテキストモデルを選択し得る。シンタックス要素のセットが、インターSDCモードに対する残差情報を指示する場合、ビデオエンコーダ20は、深度データの現在のPUについてのコーディング区分の数に基づき深度データの残差値が存在しているかどうかを指示するシンタックス要素に対するコンテキストモデルを選択し得る。
[0299]それに加えて、シンタックス要素のセットは、深度コーディングモードのうちのどれかに対する深度データの残差値の絶対値と符号とを指示するシンタックス要素を含み得る。たとえば、ビデオエンコーダ20は、深度イントラコーディングモードと深度インターコーディングモードとを含む、深度コーディングモードのどれかについて、単一の2値化方法を使用して深度データの残差値の絶対値と符号とを指示するシンタックス要素を2値化し得る。単一の2値化方法は、DMM、SDCモード、またはCCMに対して従来から使用されている2値化方法のうちの1つであってよい。
[0300]図13は、2つまたはそれより多くの深度コーディングモードに対して統合されたメカニズムを使用する3Dビデオデータに対する深度データの残差情報を決定するビデオデコーダの例示的な動作を示す流れ図である。例示的な動作は、図1および図3からのビデオデコーダ30に関して説明されている。ビデオデコーダ30は、符号化されたビデオデータの少なくとも一部を表すビデオビットストリームを受信する。この例では、ビデオデータは、テクスチャデータおよび対応する深度データが3D−HEVCプロセスに従ってコーディングされるマルチビュー・プラス・深度フォーマットで表されている3Dビデオデータを備える。ビデオデータの深度データは、ビデオデータの対応するテクスチャデータに対する深度データを表す深度マップであってよい。
[0301]本開示の技術によれば、ビデオデコーダ30は、ビデオデータについての深度データの残差情報を指示するビットストリームからのシンタックス要素のセットを復号し(350)、シンタックス要素の同じセットが複数の深度コーディングモードのどれかに対する残差情報を示す。たとえば、シンタックス要素のセットは、深度コーディングモードのうちのどれかに対する深度データの各コーディング区分に対する少なくとも1つの残差値を指示し得る。深度イントラコーディングモードは、DMM、SDCモード、およびCCMのうちの少なくとも2つを含む深度イントラコーディングモードであってよい。他の例では、深度コーディングモードは、深度イントラコーディングモードと深度インターコーディングモードの両方を含み得る。その場合、深度イントラコーディングモードは、DMM、SDCモード、インターSDCモード、およびCCMのうちの少なくとも2つを含み得る。
[0302]ビデオデコーダ30は、単一のコンテキストモデル選択方法を使用して単一のコンテキストモデルのセットから深度コーディングモードのうちのどれかに対する残差情報を指示するシンタックス要素のセットに対するコンテキストモデルを選択し得る。たとえば、ただ1つのコンテキストモデルが、深度コーディングモデルのうちの2つまたはそれより多くにわたって共有されるシンタックス要素の各々について必要になり得る。このようにして、コンテキストモデルの同じセット、たとえば、共有されるシンタックス要素の各々に対して1つのセットが、深度コーディングモードのどれかに適用され得る。
[0303]深度データの残差情報を指示するシンタックス要素のセットは、深度データの残差値が深度コーディングモードのどれかについて存在しているかどうかを指示するシンタックス要素を含み得る。たとえば、シンタックス要素のセットが、深度イントラコーディングモードのどれかに対する残差情報を指示する場合、ビデオデコーダ30は、深度データの現在のPUについて適用されるコーディング区分の数に基づき、深度データの残差値が存在しているかどうかを指示するシンタックス要素に対してコンテキストモデルを選択し得る。シンタックス要素のセットが、インターSDCモードに対する残差情報を指示する場合、ビデオデコーダ30は、深度データの現在のCUについてのコーディング区分の数に基づき、深度データの残差値が存在しているかどうかを指示するシンタックス要素に対してコンテキストモデルを選択することができる。
[0304]それに加えて、シンタックス要素のセットは、深度コーディングモードのうちのどれかに対する深度データの残差値の絶対値と符号とを指示するシンタックス要素を含み得る。たとえば、ビデオデコーダ30は、深度イントラコーディングモードと深度インターコーディングモードとを含む、深度コーディングモードのどれかに対し単一の2値化方法を使用して深度データの残差値の絶対値と符号とを指示するシンタックス要素を逆2値化することができる。単一の2値化方法は、DMM、SDCモード、またはCCMに対して従来から使用されている2値化方法のうちの1つであってよい。
[0305]ビデオデコーダ30は、また、ビデオデータに対する深度コーディングモードのうちの1つを指示する1つまたは複数のシンタックス要素をビットストリームから復号する(352)。いくつかの例において、ビデオデコーダ30は、異なる深度コーディングモードの各々を指示するように異なるシンタックス要素を復号し得る。他の例では、ビデオデコーダ30は、深度イントラコーディングモードがビデオデータに対してイネーブルにされていることを指示するシンタックス要素を復号し得る。深度イントラコーディングモードがイネーブルにされていることを指示するシンタックス要素を復号した後、ビデオデコーダ30は、HEVCイントラコーディングモードに対するシンタックス要素から分離している深度イントラコーディングモードのうちの1つを指示する1つまたは複数のシンタックス要素を含む深度モデリングテーブルも復号し得る。
[0306]本開示の技術によれば、ビデオデコーダ30は、指示された深度コーディングモードに従って深度データを復号する前に近傍参照サンプルをフィルタリングし得ない(354)。いくつかの場合において、近傍参照サンプルのフィルタリングは、深度イントラコーディングモードのどれかに対してディセーブルにされ得る。他の場合において、近傍参照サンプルのフィルタリングは、DDMと、CCMと、SDCモードの少なくともサブモードSDCM_DCおよびSDCM_DMM_1と、に対してディセーブルにされ得る。次いで、ビデオデコーダ30は、指示された深度コーディングモードを使用してビデオデータに対する深度データを復号して、ビデオデータの残差情報と近傍参照サンプルとに基づきビデオデータの深度値を再構築する(356)。次いで、ビデオデータの再構築された深度値は、表示デバイス上に3Dビデオデータを提示するために記憶されるか、または使用され得る。
[0307]上で説明されているこれらの技術は、ビデオエンコーダ20(図1および2)および/またはビデオデコーダ30(図1および3)によって実行されるものとしてよく、両方ともビデオコーダと総称され得る。それに加えて、ビデオコーディングは、一般的に、適用可能なように、ビデオ符号化および/またはビデオ復号を一般的に指すものとしてよい。本開示の技術は、3D−HEVCに関して一般的に説明されているが、これらの技術はこの方法に限られない。上記で説明した技法はまた、他の現在の規格またはまだ開発されていない将来の規格に適用可能であり得る。
[0308]例に応じて、本明細書で説明されている方法のどれかの特定の活動または事象は、異なる順序で実行されてよく、追加されるか、マージされるか、または完全に省略され得る(たとえば、説明されているすべての活動または事象が方法の実施に必要とは限らない)ことは理解されるであろう。さらに、いくつかの例において、活動または事象は、たとえば、逐次的ではなくマルチスレッド処理、割り込み処理、またはマルチプロセッサを通じて、同時実行され得る。それに加えて、本開示のいくつかの態様は、わかりやすくするために単一のモジュールまたはユニットによって実行されるものとして説明されているが、本開示の技術は、ビデオコーダに関連付けられているユニットまたはモジュールの組合せによって実行され得ることは理解されるであろう。
[0309]これらの技術の様々な態様の特定の組合せが上で説明されているが、これらの組合せは、単に、本開示で説明されている技術の例を明らかにするために用意されている。したがって、本開示の技術は、これらの例示的な組合せに制限されるべきでなく、また本開示で説明されている技術の様々な態様の企図され得る組合せを包含し得る。
[0310]1つまたは複数の例において、説明されている機能は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの組合せで実装され得る。ソフトウェアで実装される場合、これらの機能は、コンピュータ可読媒体上の1つまたは複数の命令もしくはコードとして記憶または送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形の媒体に対応する、コンピュータ可読記憶媒体、またはたとえば、通信プロトコルに従って、一方の場所から別の場所へのコンピュータプログラムの転送を円滑にする媒体を含む通信媒体を含むものとしてよい。
[0311]このようにして、コンピュータ可読媒体は、一般的に、(1)非一時的である有形のコンピュータ可読記憶媒体、または(2)信号もしくは搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示において説明されている技術の実装のため命令、コード、および/またはデータ構造体を取り出すために、1つまたは複数のコンピュータまたは1つまたは複数のプロセッサによってアクセスされ得る利用可能な任意の媒体とすることができる。コンピュータプログラム製品はコンピュータ可読記憶媒体と包装材料とを含むものとしてよい。
[0312]例として、限定はしないが、このようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROM、または他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、または命令もしくはデータ構造体の形態で所望のプログラムコードを記憶するために使用され得る、コンピュータによってアクセスされ得る他の任意の媒体を備えることができる。また、接続がコンピュータ可読媒体と称されることも適切である。たとえば、命令が同軸ケーブル、光ファイバケーブル、ツイストペア線、デジタル加入者回線(DSL)、または赤外線、ラジオ、およびマイクロ波などのワイヤレス技術を使用してウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア線、DSL、または赤外線、ラジオ、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。
[0313]しかし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに、非一時的な有形の記憶媒体に向けられることは理解されるであろう。本明細書で使用されているような、「Disk」と「Disc」(両方とも日本語ではディスク)は、コンパクトディスク(CD)とレーザーディスク(登録商標)と光ディスクとデジタル多用途ディスク(DVD)とフロッピー(登録商標)ディスクとブルーレイディスクとを含み、「Disk」は通常磁気的にデータを再現し、「Disc」はレーザーを使って光学的にデータを再現する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
[0314]命令は、1つまたは複数のデジタルシグナルプロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、または他の同等の集積回路もしくはディスクリート部品による論理回路などの1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明する技法の実装に好適な任意の他の構造のいずれかを指し得る。それに加えて、いくつかの態様では、本明細書で説明されている機能は、符号化と復号の処理を行うように構成された専用ハードウェアおよび/またはソフトウェアモジュール内に備えられるか、または組み合わされたコーデックに組み込まれ得る。また、これらの技術は、1つまたは複数の回路または論理素子で完全に実装されることもあり得る。
[0315]本開示の技術は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえば、チップセット)を含む、様々なデバイスもしくは装置で実装され得る。様々なコンポーネント、モジュール、またはユニットは、開示されている技術を実行するように構成されたデバイスの機能的態様を強調するように本開示において説明されているが、異なるハードウェアユニットによる実現を必ずしも必要としない。むしろ、上で説明されているように、様々なユニットが、コーデックハードウェアユニット内に組み合わされるか、または好適なソフトウェアおよび/またはファームウェアと併せて、上述のような1つまたは複数のプロセッサを含む、相互運用性を有するハードウェアユニットの集合体によって構成され得る。
[0316]本開示の様々な態様が説明された。これらの、および他の態様は、次の請求項の範囲内にある。